Public Git repo: Status update
John Ralls
jralls at ceridwen.us
Wed Jan 12 00:38:20 EST 2011
On Jan 11, 2011, at 8:23 PM, Yawar Amin wrote:
> Hi John,
>
> Trying to understand your suggestion. Questions below:
>
> On 2011-01-08, at 17:16, John Ralls wrote:
>
>> […]
>>
>> Maybe instead you could create a fake-master branch off of master in your git-svn repo and tie fake-master to github's master.
>
> You mean:
>
> [git-svn master] git checkout -b fake-master remotes/github/master
>
> ?
>
>> Then you can
>> git svn rebase master
>
> This is to fetch new revisions from SVN and rebase any local work in master on top of that, right?
>
>> git checkout fake-master
>> git merge master
>> git pull --rebase github fake-master
>
> I don’t get this one. The repo up on GitHub is not supposed to see fake-master, right? So why are we pulling fake-master from GitHub?
>
>> git push github fake-master
>
> Corollary of the above, why are we pushing fake-master to GitHub?
>
>> git checkout master
>> git merge fake-master
>> git dcommit
>>
>> (In a script, of course).
>> That way we can keep our throwaway branches to ourselves, the github repo will look reasonable, and you don't have to do a bunch of hand merging and branch deleting.
>
> I have to admit I tried out the throwaway branch approach and found it pretty simple, except for the part where the contributor has a dangling reference to the remote branch after the remote branch has been deleted. Oh well. Would like to understand and try your approach as well.
>
No, you've got it backwards. The idea is that in your local repo (the one that syncs between svn and github) master syncs
with svn trunk and fake-master syncs with github's master. That way, git users can merge their local branches to/from master and rebase then push to github master as usual. All of the merging back-and-forth between snv and github has to happen at the intermediary machine (yours).
git checkout -b fake-master remotes/github/master won't work: the start-point needs to be a commit, not a treeish.
git branch -t fake-master remotes/github/master instead (and I don't think that you need the "remotes/" part, but it won't do any harm)
But if you're going to start over, then github/master won't exist yet and you'll just
git branch fake-master while you have master checked out, then
git remote add -t fake-master -m github git at github.com:Gnucash/gnucash.git
to point fake-master at master on github.
I'm working from the manpages here, not experience, so one of us should try it out with local repos first... Maybe I can get to it this weekend. I want to get the database version upgrade stuff finished and committed first.
Regards,
John Ralls
More information about the gnucash-devel
mailing list