This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

(Note that this page is outdated and is kept here for historical purposes)

1. Distributed SCM in GNOME

This page is for the discussion and planning of a possible move to a distributed source code management system for the Gnome project. Please back up opinions with citations or at least a reasoned argument. Try not to use vacuous and possibly heated words like "Wicked", "PERFORMANCE!", "Very Robust", etc.

1.1. Hard requirements

Needs to be able to import GNOME (cvs2svn) SVN:

Need to have server side hooks:

Need to log the GNOME userid making the push somehow

Must not allow (malicious/unintended) user to corrupt the repository

Must allow+understand some sort of 'ACL'

1.2. Soft requirements

Should be able to commit / push via SSH (to reuse existing infrastructure)

Should allow generic (GNOME-wide) server side hooks together with module specific ones

Have DSCM expert also be sysadmin

1.3. Extra points wishes (?)

Note: Not yet fully decided if these are good. More Blue Sky.

Allow signing via GPG

Allow somehow to have bot in between to only do the real commit/push after successful run of test suite

Something that allows to combine/split up repository (SVN terms)

Allow people to have their own branches (of GNOME modules) hosted by GNOME

1.4. D-SCM Implementations

An important part of the migration discussion is selecting which Distributed system to use, at the time of this writing, there are really only 3 clear contenders who are mature enough, and meet the feature set we will most likely need. They are:

There really needs to be a serious evaluation of each, with regards to what exactly the GNOME Project needs. Given the size of such an undertaking, I would like to get a list of pros and cons for each from the community.

1.4.1. For Bazaar

1.4.2. Against Bazaar

1.4.3. Bazaar FYI

1.4.4. For Git

1.4.5. Against Git

1.4.6. Git FYI

1.4.7. For Mercurial

1.4.8. Against Mercurial

1.4.9. Mercurial FYI

1.5. Other Information

DSCMClientsBenchmark

There are some nice Wiki articles BzrForGnomeDevelopers and GitForGnomeDevelopers.

1.5.1. Other Comparisons

Consider building up a list of desired features and seeing how the various systems compare for GNOME's purposes. This can be a lot more focused than just a feature list. The most useful template is probably FreeBSD's but there are several:

From the above notes here's a start at such DSCM features list:

1.6. Discarded/Invalid arguments

Instead of deleting. Move obvious non arguments here. This will probably end up as a flamefest ;)

1.7. and the winner is...

Git


2024-10-23 10:58