Sign in to follow this  
MiyamotoAkira

About version control software

Recommended Posts

I'm working in a company that is not related to videogames. In my company the vcs used is Visual Source Safe. Why my company uses VSS when everywhere I read that is something to get away from, I have no clue. But what it puzzles me even more is that VSS has a limit for a database of 4GB. My company uses a lot of graphics (one of the projects that I am managing has near 2GB), so only the code goes into VSS. Now, couple of questions: 1 - does any other vcs have a size limit? I have not seen references of such thing for Perforce, CVS or SVN. Nor it appears in any comparison table. But I am asking just in case I have missed it. 2 - for those who work in large projects. Do you put every file of the project, code and resources, inside the vcs? As I said my company does not, and to me it screams "Wrong!!!". Thank you for your help. Akira

Share this post


Link to post
Share on other sites
1) VSS is TERRIBLE. IIRC not even Microsoft uses it internally; that should tell you something. Subversion is good and free; perforce is better and costs money.

2) Yes, everything goes into source control: code, content, whatever. We have to split into 2 databases (we use perforce). Code goes in one, content in another. But that's for machine performance reasons. We have multiple projects' source in a single depot, then each project gets their own depot for content.

-me

Share this post


Link to post
Share on other sites
My condolences. I've used several source control system and VSS is by far the worst choice available. Not even Microsoft use VSS.

And yes, your graphics should be under source control unless they are generated during the build. _Every_ source file used to build your product should be versioned and labelled with your code.

I guess all you can do is keep trying to convince your place to move to a real version control system. Look up the field of "configuration management" and try and explain to them why it is important.

Share this post


Link to post
Share on other sites
To correct something, while "visual source safe" supports only 4 GB databases, "Team Foundation" actually supports Terabytes of data. That said, I tried to find information on SVN limitations and couldn't find anything. I suspect the limit is quite large, but you could perform tests with obscenely large files with an SVN client to see what happens. I did find this link though:

http://polymorphicpodcast.com/shows/subversion/

I saw this link about perforce limitations:

http://kb.perforce.com/?article=53

I couldn't find anything on CVS

Share this post


Link to post
Share on other sites
I've remember reading something about another one, supposedly better than svn, and free, called Git. I've only ever used svn. Have any of you tried Git?

And would you say that, for a hobbyist developer, versioning control software like this is necessary?

Share this post


Link to post
Share on other sites
Quote:

And would you say that, for a hobbyist developer, versioning control software like this is necessary?

No. In exactly the same sense that an IDE isn't "neccessary."

(By which I mean, sure, you can get by without it -- you can even do some pretty excellent work without it -- but why? There are pretty much no disadvantages to getting cozy with a SCM of your choice.

Share this post


Link to post
Share on other sites
SVN works pretty well for free and has a nice explorer integration (tortoise). Perforce kicks it into touch though for professionalism. Alienbrain could be cool but I have yet to see a project hook into its best features. CVS was pretty good but I believe its replaced by SVN.

I was hoping that VSS would have improved in the years since I was bruised by it.

In my unnamed studio [and the one I worked at previously] we only put source assets under revision control. This works fine so long as there is a reasonably streamlined process for distributing any generated resources.

If someone else was paying I would pick Perforce and if not then SVN with Tortoise. I would continue to keep generated resources out of revision control (except perhaps a "latest release") and key them by tool versions.

P.s. There are rumors of a Linus Loved RVS call GIT - no personal experience of this but would be interested in what other people knew: http://git.or.cz/

Share this post


Link to post
Share on other sites
Quote:
Original post by jpetrie
Quote:

And would you say that, for a hobbyist developer, versioning control software like this is necessary?

No. In exactly the same sense that an IDE isn't "neccessary."

(By which I mean, sure, you can get by without it -- you can even do some pretty excellent work without it -- but why? There are pretty much no disadvantages to getting cozy with a SCM of your choice.


I'd be blind without it, even at home on code that only I touch.

Share this post


Link to post
Share on other sites
The last time I tried using git on Windows, admittedly this was a few months or more ago, it was something of a mess. Long story short, using git on NTFS worked fine, but when I tried transferring the system onto a FAT32 external drive, the system wouldn't work at all, and I had to end up recompiling git to work with FAT32. Unfortunately, the change necessary made git run very slowly.

I understand that the current git binary distribution for Windows/cygwin now works with FAT32 out of the box. However, I don't know if the speed issue has been addressed. I personally have no plans to retry it on Windows until they get a freestanding (non-cygwin or MSYS dependent) build working.

On the whole, for Windows development in a single user or small group environment, I prefer SVN with TortoiseSVN. It's free and it pretty much just works, though I admit I never have tried particularly large repositories or files with it.

Share this post


Link to post
Share on other sites
Quote:
Original post by Palidine
2) Yes, everything goes into source control: code, content, whatever. We have to split into 2 databases (we use perforce). Code goes in one, content in another. But that's for machine performance reasons. We have multiple projects' source in a single depot, then each project gets their own depot for content.

-me


Out of curiosity, do you have any system to make sure that the two repositories are in sync? We're thinking about splitting up our repo, but we don't want to start having constant problems caused by people having mismatched versions checked out.

Share this post


Link to post
Share on other sites
Quote:
Original post by SiCrane
The last time I tried using git on Windows, admittedly this was a few months or more ago, it was something of a mess. Long story short, using git on NTFS worked fine, but when I tried transferring the system onto a FAT32 external drive, the system wouldn't work at all, and I had to end up recompiling git to work with FAT32. Unfortunately, the change necessary made git run very slowly.


Yeah, I have been using Git on Windows (the Msys version) for a while. It works, but in some ways it's pretty terrible. Unfortunately I don't think they'll be able to do a non-cygwin-or-msys version of Git for a while, because a good amount of the tool is written in Bash and Perl.

If you are stuck on Windows and you really want to try Git, then I would say to instead try Mercurial. Deep down, it's practically the same tool; it's just a little less powerful and all the commands have different names. And it's much more Windows-compatible.

Share this post


Link to post
Share on other sites
Git is more performant than SVN, and stores the repository in a more compact manner. However, it has poor Windows support, and its user interface is unfriendly. It's far from being a generally-usable option.

For the majority of uses, Subversion is the current best balance between price and performance. Perforce outperforms in a number of instances, but it's not free. There are some legitimate caveats to using Subversion, however: prior to FSFS version 3 (SVN 1.5, IIRC), the repository does not track branch and merge points (and even in version 3, its support for branching is far inferior to, say, git). Also, repository maintenance can be heinous, especially if you need to purge a path from the repository history but it has been copied from or renamed at any point prior. (I'm actually writing a tool to generate clean dumps from the SVN FSFS representation precisely for this reason.)

SVN deltas are rather large, for some reason. I'm still trying to figure out why Git is so much more compact, and see if that can theoretically be applied to SVN in a future revision. This won't affect most of you, but if you have a repository with revision numbers in the five-digit range and up, it can start to become a concern.

Share this post


Link to post
Share on other sites
Quote:
Original post by theonecalledtom
Alienbrain could be cool but I have yet to see a project hook into its best features.

What features would those be? Last time I used Alienbrain it was an overpriced, buggy, POS which felt like it'd been written by incompetent monkeys.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this