views:

965

answers:

10

Which version control system would you recommend for:

  • single user
  • looking for simple, easy to use
  • generally small simple projects
  • working on windows
  • usually coding python
  • no server

Use would be more finding old code than complicated branching situations.

From other similar posts, Bazaar and Mercurial seem the best distributed version control systems for my needs. I'm somewhat leaning towards Bazaar as it seems simpler.

The main complaint I read about Baazar was that it was slow, but speed was to be improved in version 2, to be released this summer. The new version has not yet been released, but there is a 2.0.0rc2.

I'm wondering if anything has changed recently or if anyone has any strong feelings on the subject.

EDIT: After reading the responses and browsing some alternatives, I'm going with Bazaar, at least for the moment. For my needs, the products mentioned seemed rather similar. Bazaar has documentation specifically aimed at a solo developer and seems rather easy to use. Others seem more aimed at groups or those with central servers. Other systems may be as good, but I thought starting to use something was more important than spending time trying to find the perfect program.

Thanks, everyone!

(Should I have written this as an edit, an answer or a comment?)

+6  A: 

If you're a Windows user, nothing IMO can beat TortoiseSVN in terms of usability and ease-of-use.

Anton Gogolev
+1. No server required, too.
Greg Hewgill
Martin Sherburn
I agree with Martin. SVN requires a server
exhuma
SVN does not require a server. You can run everything from the local file system.
Peter D
TortoiseSVN does not require a separate server. You can point the repository at any local directory using `file://` URLs. See: http://svnbook.red-bean.com/en/1.5/svn.basic.in-action.html#svn.advanced.reposurls
Greg Hewgill
I also use TortoiseSVN with repositories on CIFS shares (bad idea) and over ssh (works fine).
reinierpost
-1 for not even mentioning Bazaar/Mercurial.
Noldorin
+13  A: 

If you're just single developer working on small projects, any version control system should be fast enough.

I'm a Mercurial developer myself and will of course recommend that :-) I like how Mercurial has one central concept: the changeset graph. The graph resides inside a repository (a clone). You can have several lines of development in the same clone. This can be in the form of multiple heads, perhaps marked with the bookmarks extension or as named branches. You can also use several clones to keep things separated, or you can go back and forth: it is easy to separate a combined clone (use hg clone -r REV to obtain part of the revision graph). See this blog post for pretty pictures.

For Windows (and other platforms too) you have TortoiseHg, which gives you a very nice graphical interface. TortoiseHg also integrates with many excellent plugins for Mercurial, in particular the record extension, which lets you pick out individual changes from a file when you commit. Using that, you can edit several files, and then commit those changes as several independent changesets.

Finally, you should also know about Mercurial: The Definitive Guide, the free online book about Mercurial.

Martin Geisler
Hey, keep easy! If you don't understand "funny concepts" of Bazaar it does not mean you can treat them as something bad.
bialix
bailix: sorry about that, I've removed the reference to Bazaar and tried to focus more on what I like about Mercurial.
Martin Geisler
I am using Mercurial for about anything I do that need some version control. It is simple enough, and the TortoiseHG is really a treat to work with (IMHO)
edomaur
ditto for Mercurial. I found it much easier to warm to than the others and I also use it for pretty-much everything that needs Version Control. Using a hosted service like Kiln also means bonus offsite backup.
CAD bloke
+2  A: 

I have used SVN, Git and Bzr quite extensively on various different projects. I am currently using Bzr on a single user project and it is very easy to set up and use. No need to set up a server and comes with TortoiseBzr which works well, it may not be as feature complete as TortoiseSVN is but for a one-man project you should have everything you need. There are a few things missing such as the ability to Tag revision in which case you need to resort to using the command line interface. I considered Mercurial about a year ago, but I haven't used it in a real-world situation yet so I wouldn't be able to compare. I decided against it because TortoiseHG didn't seem very mature at the time, I expect it will have improved since then.

Martin Sherburn
+1  A: 

I have been using Bazaar for a while and was pretty happy with it. With all the hype going on about git, I gave it a try. And even though it has pretty complex concepts, I can only say that it was worth the switch. I now use it for all my projects. No matter how small. And I think TortoiseGit has become good enough to be usable.

I can see the following good points about it:

  • It's fast
  • Branching and merging is so simple you could even say it's fun
  • It's got funky commands I haven't seen anywhere else (f.ex.: stash and rebase)
  • It's hyped. Consequently the community is quite active and you can find a lot of material on it
  • You can grab a copy of gitorious to manage your projects privately

Some things I don't like as much:

  • branch display in gitk "feels" strange to me
exhuma
Just like Mercurial, Git uses SHA-1 hash values, not MD5 (MD5 is badly broken by now and should not be used anymore).
Martin Geisler
I used git for about 4 months at the company I worked at (about 1 year ago). At that time there was no TortoiseGIT, so that's nice to see. I found Git support on windows was pretty poor, it had no official windows support. You had to either build it yourself or download from a 3rd party website. There was also a nasty bug in that if a file was being used by another process (e.g. visual studio) while GIT was doing it's thing, you could end up in a corrupted state which could take a lot time missing about to fix. I'd advise against it for windows users.
Martin Sherburn
Also, unlike Git, Mercurial has a local revision number for each changeset, so you don't have to enter weird hexadecimal numbers to specify commits.
Martin Geisler
You don't *need* to use SHA-1 hexadecomal identifiers: you can use things like 'HEAD^', 'master~5', '@{2}' etc. to refer to revisions.
Jakub Narębski
Thanks @Martin and @Jakub. I removed the line about the checksums. First, I said MD5 instead of SHA1, and second, as Jakub mentioned using the checksums is not necessary.
exhuma
A: 

I use git and it works great for me. I use msysgit on Windows.

Nick D
A: 

I will recommend Git always. It is fast, doesn't need server, branching and merging is excellent. For Windows you need to get MsysGit.

Mercurial is also very good with a bit easier interface for user.

Marcin Gil
+1  A: 

I quite like darcs, it uses something called patch theory which is, as far is I know, unique in version control software.

Georg
I have heard (and read) that it has some critical performance and repository size issues if you go beyond small project with not too long history.
Jakub Narębski
Most of these issues should be gone with version 2. Though you have a very small chance of running into an exponential time operation.
Georg
+3  A: 

Bazaar is very good for your needs, and I'm doubt you found speed issues with your projects. Bazaar has very nice GUI front-end called Bazaar Explorer which I'd recommend over TortoiseBzr. (Bazaar Explorer bundled into standard 2.0 installer now.)

Of course if you choose Mercurial you don't lose much.

So you'd better test one and another and make your choice. Every zealot will recommend you his favorite.

bialix
+4  A: 

Definitely Subversion....

It's free, very very easy to set up and use, doesn't require a server because it can just access the local filesystem, and you can find loads and loads of documentation and help if you get stuck because I think there are far more people who use SVN than bazaar or git for example....

You can just download TortoiseSVN (http://tortoisesvn.tigris.org/) en start using it....Nothing else is required for getting started because tortoisesvn has subversion built-in I believe....

Quagmire
Wow, I had Tortoise and didn't know it was this simple to create a local repository! Thanks, I'm going to create a lot of 'em now... :-)
Christian Davén
+2  A: 

I've done some playing with all of them.

The key thing that has attracted me to Bazaar is its flexibility.

Want to operate in centralized mode (ala SVN)? You can do that. Want to operate in distributed mode (ala Mercurial or git)? You can do that.

And here's where it gets better: you can do both. Say you're working with a guy that came over from SVN and he just doesn't like the distributed concept one little bit. Fine. Let him work in centralized mode while the rest of the team works in distributed mode. If he's away from the central repository, he can even take his checkout offline and do offline commits while he's gone. Then he can commit them all when he gets back.

While some of the other systems have ways to approximate different models, none seem as committed to flexibility as bazaar.

Wade Williams