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 g...@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


_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to