[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