CVS vs SVN

From ScummVM :: Wiki
Jump to navigation Jump to search

On this page, we are trying to collect argument pro and contra both staying with CVS, and switching to SVN. Behind each "argument" is a list of people who agree that this particular argument is valid. We currently have no other realistic choices (since SF.net offers us exactly those two), so I am not comparing more systems here.


Pro Subversion

  • Support for versioned renames/moves (impossible with CVS): Fingolfin, Ender
  • Supports directories natively: It's possible to remove them, and they are versioned: Fingolfin, Ender
  • File properties are versioned; no more "executable bit" hell: Fingolfin
  • Overall revision number makes build versioning and regression testing much easier: Ender, Fingolfin
  • Atomic commits: Fingolfin
  • Intuitive (directory-based) branching and tagging: Fingolfin
  • Easier hook scripts (pre/post commit, etc): SumthinWicked (I use it for Doxygen after commits)
  • Prevents accidental committing of conflicted files: Salty-horse, Fingolfin
  • Support for custom 'diff' command: Fingolfin
  • Offline diffs, and they're instant: sev

Pro CVS

  • Lots of people know how to use it: Fingolfin
  • Lots of documentation available: Fingolfin

Contra Subversion

  • Takes up twice as much disk space: Fingolfin
  • We need to put efforts into transferring repository to it: sev
    • Strictly spoken, the conversion is easy (it's a one-button click in the admin panel of SF.net), we only make it hard by our wish to manually fix problems in the existing CVS repository (says Fingolfin)

Contra CVS

  • No support for versioned renames/moves (CVS repos hackery is not even remotely a replacement): Fingolfin
  • No proper support for directories (in particular, deleting them, but also renames/moves): Fingolfin
    • I want to stress that it was a major hassle in history of our project: sev

See Also