Difference between revisions of "VersionControlSystem"

From Warwick Student Cinema
Jump to: navigation, search
(BZR)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  +
{{Historical}}
  +
 
==Options for the replacement of CVS==
 
==Options for the replacement of CVS==
   
Line 8: Line 10:
 
**A decentralised repository would reduce the need for branching when commiting medium sized changesets.
 
**A decentralised repository would reduce the need for branching when commiting medium sized changesets.
 
**A decentralised repository would mean that people don't have to be logged in to change the code, although they would not then benefit from the public_html facility.
 
**A decentralised repository would mean that people don't have to be logged in to change the code, although they would not then benefit from the public_html facility.
  +
  +
'''Features Required'''
  +
*Symlinks
  +
*Good per-module authentication
  +
*Commit-hooks
  +
*File moves
  +
*Faster than cvs
  +
*Easy revert to previous version
  +
  +
'''Optional Features'''
  +
*Directory moves
  +
*Web interface
  +
*Read / Write access control
  +
*Decentralised repository
  +
*CVS-link interface
   
 
== bzr ==
 
== bzr ==
Bazzar-ng will be released with etch and is a candidate that fixes all the above shortcommings
+
Bazzar-ng 0.11 will be released with etch
  +
  +
'''Advantages'''
 
*Has native windows support
 
*Has native windows support
  +
*Support for directory renames
  +
*Has mode that mimicks cvs
  +
*Fairly extensive documentation
  +
*Lots of plugins
  +
*Uncommit
  +
*Stores executable bit
  +
*Also works as a centralised repository
  +
  +
'''Disadvantages'''
  +
*Not quite so fast, but newer versions are better
  +
*Already on version 0.14 - etch already out of date
  +
*Many features are currently only implemented through plugins
   
 
== git ==
 
== git ==
Git will be released with etch and is a candidate that fixes all the above shortcommings
+
Git 0.14 will be released with etch
  +
  +
'''Advantages'''
  +
*Fast
  +
*Strong support for non-linear development (branching).
  +
*Can use a cvs client for cvs supported operations
  +
  +
'''Disadvantages'''
 
*Renames are guessed based on the contents of a file as opposed to svn & bzr which use unique-ids
 
*Renames are guessed based on the contents of a file as opposed to svn & bzr which use unique-ids
  +
*Limited documentation - but improving rapidly (although only for newer versions)
  +
*Rapidly moving target - Currently on 0.15 which is very different from 0.14
  +
*Lots of commands and scripts
   
 
== svn ==
 
== svn ==
  +
'''Advantages'''
SVN is the usual drop-in replacement for CVS.
 
  +
*Stable
*SVN fixes most of the CVS shortcommings
 
  +
*Very popular replacement for cvs
*SVN is very similar in operation to CVS
 
  +
*Stores executible bit
*SVN uses a centralised repository
 
  +
  +
'''Disadvantages'''
  +
*Centralised repository
  +
*Not as many protocal options
  +
*Cannot do a merge between files that have been renamed
  +
*Does not do merge tracking between branches - can lead to odd behaviour if a branch is merged more than once
   
 
[[Category:ToDo]]
 
[[Category:ToDo]]

Latest revision as of 23:16, 9 February 2019

Options for the replacement of CVS

  • CVS has a limited authentication model that means we need to fudge permissions every time a file is updated.
  • Symlinks are not supported
  • CVS is centralised which means that people need to be logged into the cvs pserver in order to use it
    • A decentralised repository would reduce the need for branching when commiting medium sized changesets.
    • A decentralised repository would mean that people don't have to be logged in to change the code, although they would not then benefit from the public_html facility.

Features Required

  • Symlinks
  • Good per-module authentication
  • Commit-hooks
  • File moves
  • Faster than cvs
  • Easy revert to previous version

Optional Features

  • Directory moves
  • Web interface
  • Read / Write access control
  • Decentralised repository
  • CVS-link interface

bzr

Bazzar-ng 0.11 will be released with etch

Advantages

  • Has native windows support
  • Support for directory renames
  • Has mode that mimicks cvs
  • Fairly extensive documentation
  • Lots of plugins
  • Uncommit
  • Stores executable bit
  • Also works as a centralised repository

Disadvantages

  • Not quite so fast, but newer versions are better
  • Already on version 0.14 - etch already out of date
  • Many features are currently only implemented through plugins

git

Git 0.14 will be released with etch

Advantages

  • Fast
  • Strong support for non-linear development (branching).
  • Can use a cvs client for cvs supported operations

Disadvantages

  • Renames are guessed based on the contents of a file as opposed to svn & bzr which use unique-ids
  • Limited documentation - but improving rapidly (although only for newer versions)
  • Rapidly moving target - Currently on 0.15 which is very different from 0.14
  • Lots of commands and scripts

svn

Advantages

  • Stable
  • Very popular replacement for cvs
  • Stores executible bit

Disadvantages

  • Centralised repository
  • Not as many protocal options
  • Cannot do a merge between files that have been renamed
  • Does not do merge tracking between branches - can lead to odd behaviour if a branch is merged more than once