PHP, Programming, Tools

Choosing Between Distributed VCS

Choosing between Distributed VCS (git) and Central VCS (Subversion) is far from being easy. Which one should you use? And why Central VCS are not satisfying?

Several things are blamed on Subversion:

  • Major reason is that branching is easy but merging is a pain (but one doesn’t go without the other). And it’s likely that any consequent project you’ll work on will need easy gymnastic with splits, dev, test branches. Subversion has no History-aware merge capability, forcing its users to manually track exactly which revisions have been merged between branches making it error-prone.
  • No way to push changes to another user (without submitting to the Central Server).
  • Subversion fails to merge changes when files or directories are renamed.
  • The trunk/tags/branches convention can be considered misleading.
  • Offline commits are not possible.
  • .svn files pollute your local directories.
  • svn:external can be harmful to handle.
  • Performance

Sebastien Auvray introduces the concept of DVCS in one of his latest articles:

Distributed Version Control Systems: A Not-So-Quick Guide Through

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s