4

What are the differences between the following three free Version Management Tools? Which one is the best for a small 2-5 people project? What criteria would you take into account?

  • TortoiseSVN / Subversion
  • TortoiseHg / Mercurial
  • TortoiseGit / Git

I know there are more features which would be possible using the commandline - but in this question I only want to consider the features I can access using the frontend possibilities / TortoiseXXX offered without commandline usage.
That is the reason why I don't consider that question as a duplicate to Git vs Mercurial vs SVN

Michael Hutter
  • 1,064
  • 13
  • 33
  • Sorry to have to close this, I know you must've put a lot of work into this. However, do check the [help/dont-ask], this is a very open-ended 'list of differences' question that is too open-ended for Stack Overflow. – Martijn Pieters Aug 01 '18 at 09:37
  • @MartijnPieters: I think the question is not broader than that question: https://stackoverflow.com/questions/3183064/git-vs-mercurial-vs-svn – Michael Hutter Aug 01 '18 at 09:41
  • That post too is closed; as a duplicate of two more posts that are both closed. Note that community moderation is not perfect, don’t take the existence of another similar question as proof that yours meets our standards, and we may just have missed that the other post should be closed too. – Martijn Pieters Aug 01 '18 at 12:08

1 Answers1

13

During the last years I used all three Version Management Systems (TortoiseSVN, TortoiseHg, TortoiseGit) and tested them thoroughly. Here is my conclusion:

TortoiseSVN / Subversion (SVN)

Advantages:

  • Possibility to check out only a part/subfolder of the complete repository
  • Revision comments and revision username can be changed at a later time without changing/influencing any checksum or revision ident number.
  • Possibility to check-in empty folder (structures)

Disadvantages:

  • No distributed version management System (you always need to have connection to the server-repo)
  • The last checked-in revision cannot be changed / amended / rolled back

TortoiseHG / Mercurial (HG)

Advantages:

  • Distributed version management system
  • Renaming of files can be defined manually as well as detected automatically (in a special dialog => algorithm: similarity check of file content)
  • In TortoiseHg-Workbench all revision trees are displayed (contrary to Git)
  • There are revision numbers as well as revision checksums ("Hash") available (easier orientation for humans than e. g. in Git!)
  • Newest version still runs in Windows XP
  • Before pulling from or pushing to another Repo it is possible to review the affected revisions (and abort the action if necessary)
  • Shelve is a ingenious function to save several (unrevisioned) changes temporarily (in that way neither in SVN nor in Git ("Stash") available)
  • There is no annoying distinction between bare and non-bare repositories (in contrast to Git) -> Sending of revisions to partner repo is possible even in checked-out state, because only the history of the partner repo is affected (in contrast to Git)
  • TortoiseHg installs a "Workbench" automatically
  • The history can easily be changed using the Extension "mq" - wrong check-ins or branches don't have to stay in the repo forever but can be deleted - but be careful: this will lead to different checksums and therefore to new branches in cloned repos...
  • Short learning curve
  • Simple installation without many questions, consumes less than 100MB of hard disk space
  • Idiot safe - with standard installation it is not easy to destroy a repo

Disadvantages:

  • It is not possible to check out and commit single folders into the repo (if you have a big repo and want to have only a small part of it)
  • It is not possible to check-in empty folders / folder structures

TortoiseGit / Git

Advantages:

  • Widespread (many people use it)
  • Distributed version management system
  • History can be changed/rebuilt (single revisions can be deleted/changed)
  • SVN-Repositories can be imported
  • It is possible to send single branches to another Bare-Repo (or be imported from another Repo) => Way of thinking in "Heads"

Disadvantages:

  • Renaming of files/folders cannot be influenced! This type of info is not stored within the repo and is re-detected every time the repo is viewed. Sometimes the algorithm ends up in a wrong result.
  • Before pulling changes out of a partner repo it is not possible to review the imported revisions before pulling them. A comparison of two repos seems only to be possible in a optical(!) way
  • Sending revisions can only be done into a bare-repository (in HG this problem doesn't exist)
  • There are not "human-readable" revision numbers - only a SHA-1-Hash => orientation problems in a Repo!!
  • TortoiseGit has no Workbench by default (Handling only possible via context menu respectively multiple open windows or by terminal)
  • Function "Stash" is not so powerful and clear like function "Shelf" in Mercurial/Hg
  • Rebuilding of a repo leaves data remnants in the file system - if you accidentally check-in a huge file you won't get it out and shrink your repo easily!
  • It is not possible to check-in empty folders / folder structures
  • Using the annotate function the coloring of the individual changes in a file are dangerously deceptive! Different changes which were done within a small timespan are colored only slightly different!!!
  • If a file was changed in revision X and in Revision X+5 and you look which changes were made in Revision X+5, then the compare tool will show the revisions X+4 and X+5 in the headline. Better would be to show revisions X and X+5! => Gapless change history not possible in that way!
  • Revision comments can be done afterwards, but will not be pushed/pulled into partner repos. So they might get lost eventually :-(
  • You have to install two different software packages (Git + TortoiseGit). Together they consume more than 600 MB of your hard disc
  • It is quite easy to destroy a Repo with "the wrong click" - keep enough Backups if you want to stay happy...
  • Relatively hard learning curve - you need more time to get along with the functions

Conclusion

Although I first was biased against TortoiseHg I had to reluctantly admit that it is the system with the most advantages.
For myself I decided to use TortoiseHg / Mercurial after about 3 years of comparing.

Michael Hutter
  • 1,064
  • 13
  • 33