Hello: Some more thoughts for the "next SCM" debate:
- It appears that the CERN central svn service will be launched in summer 2008. It was not foreseen to link it with Savannah. They will look into such a linking, but they are sceptical. (BTW, the Savane software has already a full git support since summer 2007 and a beta bzr support is being worked on right now due to GNU Emacs considering bzr. This can be seen as a plus point for git over hg, should we want/need this one day.) - It appears that our code might get hosted on the CERN central svn service anyway, due to a common CERN IT policy. So we should foresee using an SCM tool with good svn interoperability; e.g. git-svn comes to mind. <http://utsl.gen.nz/talks/git-svn/intro.html> - There are several scenarios on how we might use svn or not, but I would not like to get into that too much now. Shortly, (a) we can use solely the svn, like we did with CVS, but we shall have to bear with merging pains (cf. Indico) or with lengthly release schedule (cf. Invenio 0.92->0.99 incompatible changes in CVS HEAD) due to lesser svn capabilities; (b) we can use solely a DSCM among ourselves, and push to code to the central svn service in a kind of one-way manner to satisfy the common CERN IT policy; (c) there are more options between (a) and (b) with their pros/cons that I won't discuss here; for now I only wanted to underline that a good svn interoperability might be needed, so we have to bear that in mind when comparing different SCM tools. - In order to explore git and hg in connection with CDS Invenio, I have setup two read-only public CDS Invenio repos, one with git and one with hg, both mirroring our CVS from time to time. You can browse the repos in your regular web browser here: <http://cdsdev.cern.ch/tibor-public-hg/> <http://cdsdev.cern.ch/tibor-public-git/> You can 'checkout' the code for hacking on your machines by doing: $ hg clone http://cdsdev.cern.ch/tibor-public-hg/cds-invenio $ git clone http://cdsdev.cern.ch/tibor-public-git/cds-invenio.git/ (Note that the CDSDEV machine is available inside-CERN only; I can ask our security team to open it for outside-CERN if interested.) - If you browse these repos, you may notice that git was able to import our old CVS history a little bit better than hg that broke the "release_0_01" tag date. Another good point for git. ;-) - If you have not done so, you can read some crash-course guides and play with some "hello world" projects, e.g. for git: - git crash-course tutorial: <http://www.kernel.org/pub/software/scm/git/docs/tutorial.html> - git for svn users: <http://git.or.cz/course/svn.html> - git "hello world": <http://cworth.org/hgbook-git/tour/> and for hg: - hg tutorial and "hello world": <http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial> - hg book: <http://hgbook.red-bean.com/hgbook.html> <http://hgbook.red-bean.com/hgbook.pdf> - We should not agonize too much about the choice, I guess I like both hg and git, with some preference for git. A bigger question would be (i) which DSCM model (central shared repo or personal repos with pulling), and (ii) the relation to SVN, but these are the questions I will try to address in a few days. For now on, please just try to explore hg and git a little bit to see if you would be comfortable using either of them for hacking CDS Invenio. Best regards -- Tibor Simko ** CERN Document Server ** <http://cds.cern.ch/>
