Difference between revisions of "VersionControlSystem"
(→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 |
+ | 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 |
+ | 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
This page is obsolete. It is kept for historical interest only. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. |
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