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/>

Reply via email to