Differences between revisions 13 and 14
Revision 13 as of 2008-09-16 08:02:32
Size: 4142
Editor: RhondaDVine
Comment: isteps required for git
Revision 14 as of 2008-09-16 08:03:58
Size: 4287
Editor: RhondaDVine
Comment: submodule step for git conversion
Deletions are marked like this. Additions are marked like this.
Line 48: Line 48:
  * Try out how submodules work and wether they might be reasonable to use for language subdirectories to al low translators partial checkouts.

Evaluation of different VCSes for the Website

The Debian website is currently in CVS. While in princple that works reasonably, cvs is rather old, and new VCSes offer all kinds of new functionality that might be very useful.

Before moving to such a new VCS (if we want to in the first place), we need to evaluate what the needs for such a system are in the light of the current web infrastructure.

Requirements

  • partial checkouts (for translators, etc)
  • possibility to port the translation check system
  • possibility to retain current file histories, including timeline and who committed stuff

VCSes

Arch

Bazaar

CVS

Steps required to move:

  • create CVS and dump copy from gluck
  • adapt scripts at www-master to point to the new repo
  • duplicate the webwml group at gluck to the WWW Alioth group project name
  • contact contributors and let them know of the new location

Advantages:

  • no work to be done, scripts as is
  • interface is known to current users
  • small checked-out size

Disadvantages:

  • no atomic operations
  • no file moves
  • no native distributed repositories
  • no native offline operation (You may use git together with cvs to achieve this.)
  • lose checkout data

JFS: These are generic disadvantages of CVS, not like the -www team really needs these features.

Darcs

Git

Steps required to move:

  • Adapt the various scripts to not check CVS revisions but use the sha1 sums.
  • Adjust translation-check translation="" value for all files to use sha1 sums.
  • Check wether a full website build would work after that changes.
  • Try out how submodules work and wether they might be reasonable to use for language subdirectories to al low translators partial checkouts.
  • ... other things, propably general common issues listed with CVS above and SVN below.

Advantages:

  • distributed VCS
  • easy access to the history ([http://lists.debian.org/debian-doc/2007/08/msg00124.html see this mail])

  • Tagging concept is similar to CVS.
  • Archive is small
  • Small checkout size
  • CVS pserver emulator available
  • similar to CVS in user interface (checkout, commit, diff, but pull replaces update), with addition of clone
  • many userfriendly tools available

Disadvantages:

  • partial checkout only possible if the repository has been setup with various "submodules". Support of this is very recent (git 1.5.3).
  • usually has full history in each "checkout" (created by git clone by default, shallow clone also possible) (concern over size, but git tends to compress the history very well)
  • Need to change scripts to other mechanism using sha1 value etc, but full local history helps a lot

Mercurial

Subversion

Steps required to move:

  • create SVN and use tools (tailor?) to move over the CVS repository from gluck
  • review that SVN captures all the data needed (history, logs...)
  • adapt scripts at www-master to use SVN and point to the new repo
  • adapt translation-related scripts so that it parses .svn/entries (through 'svn info') or a new header in english files ($Id) -
    • template/debian/translation-check.wml: Translation check included in pages
    • check_trans.pl, stattrans.pl, touch_translations.pl: CLI checks at root webwml CVS
  • duplicate the webwml group at gluck to the WWW Alioth group project name
  • contact contributors and let them know of the new VCS
  • provide information to contributors on how to use SVN (recipes)

Advantages:

  • similar to CVS in user interface.
  • many userfriendly tools available
  • known by some translators as they already use that for d-i and other projects (but not all www translators are d-i translators)

Disadvantages:

  • not distributed by nature, but one can use either svk or git-svn if they need to be able to work off-line and prepare several commits (but if we're going to use git, why not just use git?)
  • limited off-line operation, including building of pages (due to translation-check requirements on svn log)
  • Tagging concept is different from CVS.
  • very limited branching/merging functionality
  • Large checkout size
  • Tools much larger than CVS