views:

183

answers:

3

I am f...fed up with Subversion. Need a version control that:

  1. Can be used without affecting the sources with embedded files (like the Subversion .svn-directories), or having to check in and then check out (If you want to version control live web-site files for example).
  2. It should always be possible to bring the repository quickly up to date whatever I have done (Without resolving conflicts or adding files first etc.)
  3. Ideally it should be possible to merge repositories starting out as separate.

I thing it should be a distributed one, I think GIT is the Lingua Franca, but there is also Mercurial and Bazaar, which should have some advantages since they exist :-)


+1 Apart from the 3 points the main criteria is what is best for a software developer to know and use:-)


+2 An example regarding poin 2.: In Drupal I might move directory-structures around, delete some structures, add some 3d party. Ideally the repository should store exactly what has happened, but sometimes I just want to have a snapshot of the actual structure in the repository without spending time on it. (In an ideal SCM-system you would be able to fill in the details later).

+1  A: 

Just talking about git:

  1. one .git directory in the root.
  2. git stash, git pull, git stash pop (if this is what you want)
  3. http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories
Vili
You could just fetch and not merge, or do all your code on something other than master
Daenyth
+1  A: 

Mercurial does all 3 points. It does have a .hg directory in the root directory though.

Paul Nathan
+2  A: 

I just answer for bazaar:

  1. One .bzr-directory in the root, just like git. Additionally there's a optional .bzrignore-file at the root which contains the list of ignored directories/files.
  2. Well when you update/pull there are potentially some conflicts. Howere you can shelve your changes if you want before a update/pull. This will basically shelve up all your changes. Then you update/pull and you have your working directory in latest version.
  3. Yes, you can do that. There's a special 'join'-command. This command will integrate the another branch and will keep the full history of both.

I think in the end all three, Git, Mecurial and Bazaar, will do the job. These three version control systems a very similar.

Gamlor