[[toc]]
++ Decision
** We have decided to keep the current history and structure in CVS, and create a new Git repository. Code will be committed to the Git repository as it is cleaned up for PHP 5 and Horde 4. **
++ Introduction to distributed version control systems
++ Description
This project is to determine what the next generation of the Horde will use to store and organize source code.
Some initial work has been done with Git and SVN conversions of the current CVS repository.
++ Requirements
+++ Must-haves
+++ Nice-to-haves
Today checking out a Horde app within an existing Horde checkout works fine. This includes making single-commit changes across applications.
Naturally no matter what we choose Chora support will either be added or will improve. However if it is already supported by Chora all the better.
++ The Contenders
In alphabetical order...
+++ Bazaar
Bazaar from Canonical (i.e. the ubuntu company)
++++ Advantages
++++ Disadvantages
++++ Well-known users
+++ Git
http://git.or.cz/
http://www.opensolaris.org/os/community/tools/scm/git-report-final.txt
http://www.gitcasts.com/git-talk
++++ Setup
#!/usr/bin/env sh
cd /var/www/git/horde/
export CVSROOT=":pserver:cvsread@anoncvs.horde.org:/repository"
FILES="agora
ansel
chora
whups
wicked"
for FILE in $FILES
do
echo $FILE": "
git-cvsimport -C$FILE $FILE
done
++++ Submodules
I added a git submodule for every horde module inside the horde/horde
repository. Now you can do:
git clone git://git.koch.ro/git/horde/horde
cd horde
git submodule init
foreach modules as MODULE // Only those you want to use
git submodule update $MODULE // checks out the module
Now there are some more things[1] to think about when actually developing, but
that's one way it could be done.
++++ Disk space
ls -C -w60
agora goops jonah nag swoosh
ansel groupware juno nic trean
chora hermes klutz occam turba
CVSROOT horde kronolith passwd ulaform
dimp hordedoc luxor pearweb update.sh
forwards hordeweb merk presentations vacation
framework imp midas sam vilma
genie incubator mimp scry volos
gitgc.sh ingo mnemo sesha whups
gollem jeta mottle skeleton wicked
/var/www/git/horde$ du -hs
928M
++++ Advantages
++++ Disadvantages
++++ Well-known users
+++ Mercurial
Alternative distributed versioning control system.
++++ Advantages
++++ Disadvantages
++++ Well-known users
+++ Subversion
++++ Well-known users
++++ Previous discussion re: migrating Horde to SVN: http://bugs.horde.org/ticket/5284
++ People
While all Horde developers are interested in this project's final recommendation the following people have done work toward making a decision on the next SCM to be used for Horde:
++ Resource Utilization Comparison
+++ Ingo
||~ SCM ||~ Full (Server) Repository Size ||~ Branch Checkout ||
|| CVS || 51MB || 7MB ||
|| SVN || 31MB || 16MB ||
|| git* || 18MB || 18MB ||
+++ Beatnik
||~ SCM ||~ Full (Server) Repository Size ||~ Branch Checkout ||
|| CVS || 736KB || 700KB ||
|| SVN || || 1.7MB ||
|| Mercurial || || 724KB ||
++ Resources
+++ Bazaar Links
+++ Git Links
+++ Mercurial Links
Back to the ((Project|Project List))