Very basic version control system for C# and Unity?

Hi,

I am sure you know the situation: You want to try something, change some important file, add another one, and a day later nothing works and you don’t remember how it was set up previously. To avoid that, as far as I am aware, people use version control systems like subversion.

In my case, I am coding alone and it’s a very basic project: All I really want is to check in some files (both C# project files and Unity project), make some saves, and revert to previous versions easily. No need to sync with cloud. And I’d like a nice graphical interface. Can you recommend something?

Dropbox, GIT with a local commit or even simpler using stash to really ‘back up the current state for returning to it after the toying’

Hey Instability!

If you take a look at the project structure of your Game you will see that the folder is filled with different types of files. From images to code files to whatever else!
Distributed source control are probably much more suited for the type of use you would use versioning for. SVN would probably choke under a larger Unity project. I have confidence that Git or Mercurial on the other hand would work quite nicely!
Mercirual under windows is a bit more user friendly especially when you are new to source control. Neither of the mentioned require you to have a central repo. You can just initiate a repo for a folder, copy files in and there you go!
TortoiseHg and TortoiseGit are pretty common among windows developers. I would recommend picking Mercurial though simply because there is a very user friendly introduction tutorial:

http://hginit.com/

Regards

I use SVN on my linux server and it works fine.

I use tortoiseSVN as my local client, which integrates into Windows Explorer nicely.

My SVN hosts up several projects to my team mates, has been running for 6 yeays now, and contains very large projects.

No problems what so ever so far.

The system itself doesn’t necessarily “choke” in large projects. I personally think that’s a mis-quote really. The problem with SVN is that managing a large team with it is a bit of a pain. If you have like 12 members of your team, and 4 are programmers working on the same code frequently. And those 4 programmers start editing the same code files because they have to, then commit conflicts start occurring.

Now we need to start merging, branching, etc. These features, though they exist, aren’t the best in SVN. Git has a far better branching and merging system than SVN. So Git is better suited for huge teams.

So when people say SVN isn’t good for “large projects”, they don’t mean when the file size gets large. They mean when your team size gets large.

You can still use it in large teams, but it requires planning between the team.

But the thing is, I’ve used numerous open-source, and proprietary version control sytems; Git, SVN, mercurial, Vault, Perforce, as well as some weird ones on proprietary systems. For example the D3 PICK operating system with it’s Trap version control.

ALL of them become a managerial process when they got large. Your team aught to be planning where they’re working. And the only products I’ve seen that actually do anything better than another to make life easier only come into play on HUGE projects. I’m talking like 300 member teams with a dedicated IT staff. And most of these companies use expensive versioning systems. The only other projects I see with that huge of teams that use open-source is things like the linux kernel project or large linux distros, who use git, because git is their thing.

But OP, I’ll assure you this… you want a “simple clean interface”. Git ain’t that… Git is dick to set up on windows as it’s primarily a command prompt tool designed for linux. It runs on Windows too, and has several GUI shells to run with it. But srsly… set up sucks if you aren’t used to it.

Yes, I’m a linux user, but I’m also linux user who knows that the linux way really isn’t as easy as so many linux users like to pretend. I use SVN on my linux server, because my team, they’re artists. They’d pull their eyes out and chew off their fingers before learning Git.

So I suggest SVN. It’s free, easy to set up, their are tons of information out there, and MOST people you meet will be familiar with it.

Git though, despite what I think is a dick set up process, is actually becoming very similar to SVN in that sake. Where people are becoming familiar with it. But outside the command prompt, the tools have a long way to come. SVN just has several years on it in the “ease” and “wealth of online info” for it. But Git will catch… be sure the linux teams out there will make sure of that.

NOTE - as for unity, you need to turn on meta data! With out it your projects won’t be supported well in ANY version control system.

You turn on meta data, and you only version control the Assets and ProjectSettings folder.

http://docs.unity3d.com/Documentation/Manual/ExternalVersionControlSystemSupport.html

Thanks!

I’ll look into GIT, Mercurial and SVN.

I installed Plastic SCM last week with our project and it works really nice. The GUI is quite good too and installation is a breeze. Check this thread; http://forum.unity3d.com/threads/131233-Version-control-for-software-and-in-game-ideas

Ohh one more thing… You might want to look into SCM Manager.

Does not matter what is your pick of Versioning this toold might make your life easier especially when managing the repo’s user credentials.