Author Topic: Source code management vs Dropbox vs Google Drive  (Read 4254 times)

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Source code management vs Dropbox vs Google Drive
« on: 18 January 2013, 05:06:13 »
I've been loosely following the 'MegaGlest refit' thread, and see how some of you are running into issues which have been solved elsewhere. It's may feel late for a change by now, but I think it's still worth considering, as well as for similar projects in the future:

Neither Dropbox (at least the standard non-business variant) nor Google Drive are proper team collaboration repositories for souce code or asset management. While Dropbox offers versioning, it's not really meant for source code management and lacks related features. It's also not primarily meant for group collaboration on versioned resources. There are free alternatives which are exactly meant for what you do and facilitate work in groups, such as Github, Sourceforge, Gitorious and several others.

Amongst other, these offer:
  • versioning, so you can roll back if you made a mistake, be it now or 10 months later, and you can compare changes to textual files easily.
  • repository distribution (git does), so anyone can work with your data without needing your permission, but your permission is needed to merge it back into your main repository; this allows for easy access: no waiting for approval before you can get started to hack on it / contributeM the distributed nature also provides you with a form of remote backups (while, should dropbox go out of business or change its business model, your data is lost)
Also noteworthy, here's a quote from Dropbox TOS:
Quote
Dropbox reserves the right to terminate Free Accounts at any time, with or without notice.  Without limiting the generality of the foregoing, if a Free Account is inactive for ninety (90) days, then Dropbox may delete any or all of Your Files without providing additional notice.

Several modding projects have experienced data loss in the past due to unlucky choices made regarding storage nad interoperation mechanisms and providers, as well as reliance on a single external parties. It would be great if this rate could be reduced in the future and I'll be happy to discuss the various options in more detail if anyone is interested.
« Last Edit: 18 January 2013, 05:26:04 by tomreyn »
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

Omega

  • MegaGlest Team
  • Dragon
  • ********
  • Posts: 6,167
  • Professional bug writer
    • View Profile
    • Personal site
Re: Source code management vs Dropbox vs Google Drive
« Reply #1 on: 18 January 2013, 05:59:01 »
We definitely can't use Dropbox because it doesn't provide enough space for free and shared folders take up everyone's space, compared to Drive, where shared folders only take up the owner's space.

I admit that a git repository would be more beneficial overall, but the problem that I see with them is the increased complexity of use. We tried once to get people to upload mods to a shared git repo and it was a complete flop. Git was just too complex for most people to want to bother. Even myself, having gone through github's tutorial, found myself confused at several points (and have already forgotten pretty much everything I learned). On the other hand, Drive is as simple as downloading a program and it'll pretty much handle the rest. Documents in drive can also be opened by multiple people at the same time and live collaborated (as has been done on the planning pages).

repository distribution (git does), so anyone can work with your data without needing your permission, but your permission is needed to merge it back into your main repository; this allows for easy access: no waiting for approval before you can get started to hack on it / contributeM the distributed nature also provides you with a form of remote backups (while, should dropbox go out of business or change its business model, your data is lost)
It should be noted that the Drive repo is a public shared folder. Anyone can view the repo through this link, although only a list of people can edit.

Also noteworthy, here's a quote from Dropbox TOS:
Quote
Dropbox reserves the right to terminate Free Accounts at any time, with or without notice.  Without limiting the generality of the foregoing, if a Free Account is inactive for ninety (90) days, then Dropbox may delete any or all of Your Files without providing additional notice.
While I suppose such is likely true for Google Drive, too, the data is available on a number of people's computers, and at least a few of us are keeping manual backups as well, so I don't think that data loss is an issue. It's rather unlikely that Google would try to shut Drive down without advance notice as well.

The best change from converting to a git repository would be the revisioning. As you mentioned, git has extensive revisioning, whereas Drive's is based on time and number of revisions. More information on Drive's revisioning can be found here. In short, it works similar to the recycling bin. Revisions are lost after 30 days or 100 revisions, but we can manually specify not to delete a specific revision. Doing so will consume space in the Drive (which is rather non-issue, though). This could be problematic if, such as Tomreyn's example points out, we want to rollback to a mistake made ten months ago. Granted, be careful in what we modify and delete could largely be helpful too. Making a big change to an existing file? Back up the original first. Branching out someone else's model? Make a copy of the original and modify that. We could always use the "don't delete this revision" feature of Drive, but I'd rather trust a copy of the file personally (the differences, however, is that the former only uses space on Drive and not your own hard drive while the latter uses space on both).

But anyway, I've rambled on a bit. I'm not opposed to a move to a git repository, but I do fear that it could be too complex for some of the team to want to use it. Either way, I'd rather we have unanimous agreement on the topic.
Edit the MegaGlest wiki: http://docs.megaglest.org/

My personal projects: http://github.com/KatrinaHoffert

-Archmage-

  • Moderator
  • Dragon
  • ********
  • Posts: 5,887
  • Make it so.
    • View Profile
    • My Website
Re: Source code management vs Dropbox vs Google Drive
« Reply #2 on: 18 January 2013, 14:15:27 »
With Google Drive and manual backups, I think we're fine.
Egypt Remastered!

Proof: Owner of glest@mail.com

John.d.h

  • Moderator
  • Airship
  • ********
  • Posts: 3,757
  • I have to go now. My planet needs me.
    • View Profile
Re: Source code management vs Dropbox vs Google Drive
« Reply #3 on: 19 January 2013, 03:00:17 »
Neither one is hands-down better than the other, as their differing benefits give them an edge for different purposes.  For a simple asset project between a couple people, a service like Dropbox (or presumably Google Drive) is much simpler and quicker, since it automatically backs up and synchronizes without the user having to even think about it.  It also requires virtually no learning and is easy to set up.  This speed and simplicity is not just a benefit for the lazy, but rather it creates a tangible advantage in that your time can be spent actually creating the project's assets instead of setting up a git repo and learning to use it.

For a project where everyone involved is already familiar with git, git is definitely the way to go in my opinion because there is so much more that it can do, but getting anyone new involved is a much bigger hassle because of the dramatic increase in difficulty.  They have to learn an entirely new system unlike anything else they've ever used, install an application that they probably won't use for anything else (as opposed to a service like DB/GD which you should already be using anyway), and most of its power will be lost on someone who isn't already familiar with version control systems.

If I can spend a week learning to use some new GypsumRipper 9000, or I can spend that week digging into some drywall with the regular crowbar that I already use, then I'm going to go with the latter option unless the former gives me a marked advantage that will be readily applied to what I'm doing.

hailstone

  • GAE Team
  • Battle Machine
  • ********
  • Posts: 1,568
    • View Profile
Re: Source code management vs Dropbox vs Google Drive
« Reply #4 on: 31 January 2013, 02:55:15 »
To put another option out there: Perforce is used in game development (ie integrates with Unreal Development Kit). It's a commercial solution but is free up to 20 users with unlimited space. There's hosting available at Assembla.

Boar might be worth a look too, maybe in conjunction with drive/dropbox.
Quote
Q: Is it safe to use boar with multiple users sharing a single repository?
A: Yes. Boar is designed for this situation.

Sparkelshare looks good. It's like dropbox but uses git under the hood.

http://www.mayrhofer.eu.org/dvcs-autosync
http://seafile.com/en/home/
« Last Edit: 4 February 2013, 03:58:34 by hailstone »
Glest Advanced Engine - Admin/Programmer
https://sourceforge.net/projects/glestae/