Migrating gnucash website from svn to git

Geert Janssens janssens-geert at telenet.be
Tue Nov 27 09:31:54 EST 2012


On 27-11-12 15:06, Derek Atkins wrote:
> John Ralls <jralls at ceridwen.us> writes:
>
>> OK. Sounds like you've got the next action item, get the email hook
>> set up. After that, you can install git-svn-mirror from Github and
>> work out how to trigger it from svn. I think you can clone the Github
>> repos to save some time (it takes several hours to make a fresh
>> git-svn clone of an svn repo), then use git-svn-mirror to update it
>> directly from svn.
> Do we really want to continue using SVN once we migrate to git?
> Note that I'm talking about the gnucash repo, not htdocs here.
I think we should keep svn as canonical repo until we decide to drop 
support for 2.4. I think that none of my git-migration related work is 
backported. And even if that could be backported easily (I'd have to 
verify but I'm short in time right now) I wouldn't change the canonical 
repo until we are sure everything works as we want it. All that time, 
svn should be the main repo IMO and gitolite should consider the svn 
repo as upstream.

In git it's rather easy to decide later on to drop this upstream link.
>> A bare git repo is one that has no working files and puts all of the
>> git state files in the main directory instead of in a .git
>> directory. You can't commit to it, or checkout branches, but you can
>> do just about anything else, including pushing to another repo.
> Fair enough.  I'm just not sure how you specify where to push/pull from
> if it's not a clone, i.e., if it's just been pushed to from somewhere
> else.
I don't understand what you mean here.

Assuming the setup where svn is canonical, gitolite is configured with 
svn as upstream and github is considered a downstream from gitolite we get:
- a dev commits something to svn
- the svn post-commit hook runs a git command that causes gitolite to 
read in the new svn commits. I imagine some variant of our git-update 
script will be needed here (one that doesn't attempt to fast-forward 
checked-out branches)
- the updates in gitolite will eventually trigger gits post-received 
hook in which we push the changes through to github using git push 
--all. Here is also were the commit mails can be sent.

Once svn will be dropped, devs will push commits directly to gitolite, 
which will trigger the same git post-received hook to push to github and 
to send mails.

Which part is not clear for you ?

Geert


More information about the gnucash-devel mailing list