Massassi Forums Logo

This is the static archive of the Massassi Forums. The forums are closed indefinitely. Thanks for all the memories!

You can also download Super Old Archived Message Boards from when Massassi first started.

"View" counts are as of the day the forums were archived, and will no longer increase.

ForumsDiscussion Forum → RCS: SVN, git, Mercurial, TFS, WTF
RCS: SVN, git, Mercurial, TFS, WTF
2009-08-16, 9:55 AM #1
So I do a little coding here and there @ home and on laptop. I would like to be able to centralize my source **** and set up a revision control system. There are a plethora of revision control systems out there and I want to get your guy's take on which do you like and which suck. The only real requirement is that it must work on Windows. I do not have a Linux box nor do I plan on setting one up anytime soon. I just have my desktop and laptop. Although it would be very nice but not required, integration into Visual Studio.

TFS is our RCS du jour at work. It's great because we have A LOT of projects and many source files and it integrates into Visual Studio. I tried to get this work once but I found it requiring too much so I deemed it overkill for my needs. We also use SVN for our designers. I rarely use that. I looked up Mercurial and it looks like it is simple and runs on Windows.

If any of you recommend SourceSafe, I will ban you.
Code to the left of him, code to the right of him, code in front of him compil'd and thundered. Programm'd at with shot and $SHELL. Boldly he typed and well. Into the jaws of C. Into the mouth of PERL. Debug'd the 0x258.
2009-08-16, 9:57 AM #2
I'm using SVN right now because it's easy to set up a server on Windows and it integrates well into Visual Studio (AnkhSVN).
2009-08-16, 10:28 AM #3
git and mercurial are very similar for the basic things, though git has been a bit slow off the mark for windows support.

It's also very straightforward to set up a repository in both, just go into your code folder and type in git (or hg) init

I'd probably go with mercurial.
Detty. Professional Expert.
Flickr Twitter
2009-08-16, 10:47 AM #4
I don't understand 90% of what you just said.
2009-08-16, 11:07 AM #5
I've only used Git. However, it works quite well.

It's actually quite humorous to me that you're looking for a version control solution on the same day that I'm sitting here reading Ubuntu Server, Ruby on Rails, Phusion Passenger, Git & Capistrano documentation.

Coincidence? I think not.
? :)
2009-08-16, 11:14 AM #6
Originally posted by Mentat:
I've only used Git. However, it works quite well.

It's actually quite humorous to me that you're looking for a version control solution on the same day that I'm sitting here reading Ubuntu Server, Ruby on Rails, Phusion Passenger, Git & Capistrano documentation.

Coincidence? I think not.


I've just started using *all* of those. O.o
2009-08-16, 11:18 AM #7
Another coincidence? I think not.
? :)
2009-08-16, 11:20 AM #8
Originally posted by Detty:
I'd probably go with mercurial.

I agree, it has good VS integration too, using VisualHg.
Bassoon, n. A brazen instrument into which a fool blows out his brains.
2009-08-16, 11:21 AM #9
I would personally go for a DVCS like Mercurial (works well one Windows) or git (does not work well on Windows). At work, we use SVN and the TortoiseSVN client (AnhkSVN seemed okay, but the clients that integrate into Eclipse were terrible). SVN works fine, but I still like the benefits a DVCS brings to the table. SVK looks interesting, but I have not played with it yet.
[This message has been edited. Deal with it.]
2009-08-16, 11:34 AM #10
I use TFS primarily, but you're right, setting it up for home would be a PITA.

SVN is pretty good too though from my experience with it.
2009-08-16, 12:11 PM #11
So I'm trying out Mercurial.

Yeah I created the repository on the wrong ****ing directory.

Goddamnit.
Code to the left of him, code to the right of him, code in front of him compil'd and thundered. Programm'd at with shot and $SHELL. Boldly he typed and well. Into the jaws of C. Into the mouth of PERL. Debug'd the 0x258.
2009-08-16, 12:31 PM #12
We use svn at work because we develop Java and FishEye, Crucible, Hudson, and JIRA all interact nicely with it.

<3

Also, svn has the TortoiseSVN client going for it.
the idiot is the person who follows the idiot and your not following me your insulting me your following the path of a idiot so that makes you the idiot - LC Tusken
2009-08-16, 1:12 PM #13
and mercurial has the TortoiseHg client going for it, and git has TortoiseGit going for it.

I've been looking at alternatives to svn for a while for use at work. I'm sick of everyone committing to trunk just to share a minor changeset, and svn's branching/merging isn't straightforward enough to be used here.

Git and Mercurial repos also exist in just a single place in your project which makes them easier to work with.
Detty. Professional Expert.
Flickr Twitter
2009-08-16, 1:13 PM #14
Also, free book: http://hgbook.red-bean.com/read/
Detty. Professional Expert.
Flickr Twitter
2009-08-16, 1:15 PM #15
A somewhat biased but good comparison between different VCS systems can be found at http://www.whygitisbetterthanx.com/.
[This message has been edited. Deal with it.]
2009-08-16, 4:44 PM #16
I don't understand some of the hype behind Git. It seems a lot of neckbeards foam at the mouth because Git was started by Linus Torvalds.
Bassoon, n. A brazen instrument into which a fool blows out his brains.
2009-08-16, 4:52 PM #17
A lot of it stems from people being fed up with svn, which by all accounts is the best of a bad bunch.

But I did have a play with git this week (to fork a public project) and was suprised at just how straightforward it was.
Detty. Professional Expert.
Flickr Twitter
2009-08-16, 5:18 PM #18
I got pretty fed up with SVN a couple years back. Needing an internet connection to commit a change got tedious, and even being the only user I somehow managed to frequently get sharing lock problems.

Mercurial is beautiful. I've really enjoyed using it. Web front end is really easy to set up and offers lots of features, eg revision graphs, diffs, &c. It also allows [in theory, I've never tried it] making a forest wherein you can have multiple repos but clone/update them all at once [for instance pulling down a set of disparate projects onto a freshly formatted machine, but still wanting to keep individual revision histories for each].

This is probably a good place to start reading: http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/
Also, I can kill you with my brain.
2009-08-17, 6:06 AM #19
Of course, it all depends on your scenario. My source control is for personal projects, so I wanted a solution whereby the repository data could be on a removable drive (i.e. USB memory stick) and not need to fire up a server on each machine I plugged it into. VSS was working fine for this but I've recently started using SVN after I found a way of doing the same thing with that.

I didn't want to have a server on the Internet so that I could be sure of accessing the repository even if I had no network access.
2009-08-17, 6:41 AM #20
That method is still more complicated than just typing 'git init' or 'hg init' though
Detty. Professional Expert.
Flickr Twitter
2009-08-17, 9:59 AM #21
Yeah, Giraffe it really sounds like you want Mercurial or Git (boo git :P). The repository is stored locally in a directory. Changes are committed locally then pushed/pulled from other repositories (such as a central repo).

If you want a Visual Studio solution under Mercurial source control, you go into the solution dir and type "hg init" and you're done. You can also do that with TortoiseHg, the visual client. Once you have a repository you can use the VisualHg plugin, which is quite nice.

Oh, and for whatever it's worth, the Python project now uses Mercurial. If you look google around for the article you can read their justifications for doing so.
Bassoon, n. A brazen instrument into which a fool blows out his brains.
2009-08-18, 7:56 AM #22
Subversion and CVS both suffer from the same branch/merge hell problems. If you don't do a lot of branching and if you don't have your developers working on their own branches, you likely won't have much of a problem with them. But if you do a lot of branching with concurrent development going on, git is so far beyond svn it's not even funny (well maybe it is).

So if you're just using it for your personal code and nobody else is going to touch it, svn likely won't bite you. But use git anyway ;)
2009-08-19, 10:43 AM #23
Originally posted by Emon:
Yeah, Giraffe it really sounds like you want Mercurial or Git (boo git :P). The repository is stored locally in a directory. Changes are committed locally then pushed/pulled from other repositories (such as a central repo).


One nice effect of this is you can just rsync your repo to a new machine/usb stick, and that's all it takes.
Also, I can kill you with my brain.
2009-08-19, 4:47 PM #24
Originally posted by Dormouse:
One nice effect of this is you can just rsync your repo to a new machine/usb stick, and that's all it takes.


Or just clone from anyone else and you get the whole repo (including all history) -- that's a major benefit of git vs. svn/cvs, you get the entire history instead of just the latest revision. Plus branching/merging rules.
2009-08-19, 7:16 PM #25
Or just copy the folder!
Bassoon, n. A brazen instrument into which a fool blows out his brains.
2009-08-19, 8:46 PM #26
Or just clone it!
2009-08-19, 10:15 PM #27
Or copy the folder. :argh:
Bassoon, n. A brazen instrument into which a fool blows out his brains.
2009-08-20, 5:24 AM #28
put it on a floppy and then use dd to copy it to a 1.5 tb hard drive
2009-08-20, 4:32 PM #29
Originally posted by Brian:
Or just clone from anyone else and you get the whole repo (including all history) -- that's a major benefit of git vs. svn/cvs, you get the entire history instead of just the latest revision. Plus branching/merging rules.


Well sure, but a lot more machines have rsync installed than mercurial. In my case at least, I nightly rsync my repos to an offsite webserver. Then if anything happens [eg my entire house burns down or someone breaks in and steals my server cabinet] I can just rsync it back, even though said webserver doesn't have hg on it.
Also, I can kill you with my brain.

↑ Up to the top!