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