[Scummvm-devel] Switching ScummVM repository to Git

Eugene Sandulenko sev at scummvm.org
Sun May 23 22:20:22 CEST 2010


Hi all,

It was discussed in the past here on -devel, that it would be not a bad
idea to switch to some distributed source control system. The idea
received a great support, Git and Mercurial were mentioned, and it
seems that Git is more in favour.

Thus, as I understood from our discussion, it is just matter of free
hands to do the move. Being the advocate of moving from CVS to SVN, an
having goal of pushing the project forward, I am willing to do the work.

I am open to any ideas on how to do it. My plan is not to just pull
whole svn repo, dump it into git and declare the work as done. As with
CVS, I want to use this opportunity to put more order into our source
code. I thinking about using svn2git utility from
http://github.com/nirvdrum/svn2git and do something along the following:

  o Split repository into several. Now we have svn modules, and that is
    because of SVN restriction, not because we like it
  o Use some fancy branches

I do not yet know what exactly it would look like, and I am really open
to your ideas.

As you may know, I am going to vacation (more on this in a separate
e-mail), and one of the things which I would like to do there is
preparation for the transition. So, in short, the schedule is following:

  o now-May 27th -- I am online and we may discuss the approaches
  o June 15th -- Back and will post the results here, on -devel
  o June 20th -- the switch

The switch date is optimistic, because I have too little information
now. But for sure, it will be done only when majority of devs are
satisfied with new structure.

Now you have over 3 weeks to play with git, so you may get familiar
with it. It is pretty easy in fact. And I highly recommend to give it a
try. Actually I know that several developers are already using git-svn,
for ScummVM development, me included.

Typical workflow is this (based on a year old letter of Max to me):

1) Create a directory to contain the data and CD into it
   mkdir scummvm-git && cd scummvm-git

2) Init git-svn
  git svn init
  https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

3) Pull the last couple revisions, e.g.
   git svn fetch -r49150
(you can use any revision, it'll get that and all following revs).

Now your "checkout" is complete.

The typical workflow is:

   ..modify some files..
   git add FILES       or just     git add .
   git ci -m "commit message, blah blah"

and occassionally

   git svn rebase

to get changes from SVN, and

   git svn dcommit

to push changes to SVN.

The good reading is http://git.or.cz/course/svn.html or Git Community
Book if you got some time.

Now let's discuss.


Eugene




More information about the Scummvm-devel mailing list