Re: I've been pushing to one branch from both git-svn and git
- From
- Ricky Clarkson <ricky.clarkson@gmail.com>
- Date
- May 5, 2010, 09:09 UTC
- Message-ID
- <m2q7eeb06461005050209jee92b415v68d8918f13d3a406@mail.gmail.com>
- In-Reply-To
- <w2s32541b131005040934o339e3e79vf386427ed282ce64@mail.gmail.com>
Hi Avery,
Thanks. I solved it a slightly different but hopefully equivalent way:
Create a new branch named master locally, and merge the changes from trunk into it (I don't think any merge was needed as it would be a copy of trunk). Push master. From the git svn repo, git push -f origin, then git pull in the local repo and git merge trunk (the current branch is master).
Ricky.
-- Ricky Clarkson Java and Scala Programmer, AD Holdings +44 1928 706373 Skype: ricky_clarkson Google Talk: ricky.clarkson@gmail.com Google Wave: ricky.clarkson@googlewave.com
On 4 May 2010 17:34, Avery Pennarun <apenwarr@gmail.com> wrote:
Show 43 quoted lines
> On Tue, May 4, 2010 at 7:43 AM, Ricky Clarkson <ricky.clarkson@gmail.com> wrote: >> I have a git repository we'll call the git svn repo, in which I only >> perform git svn fetch and git push bare. >> >> bare is a bare git repository, which I push to from a local >> repository. The mistake I've been making is to push to the branch >> 'trunk' in bare, from my local repository. The reason this is a >> mistake is because git push bare from the git svn repo also pushes to >> there. >> >> Today I've been forced to learn of my mistake, as I cannot push from >> the git svn repo without possibly losing commits. It turns out (which >> is probably obvious to you all) that I should have been pushing to, >> say, bare's 'master' branch instead of its trunk one. >> >> I don't intend to push back to svn from any of these repos, but I >> would like to be able to continue pulling changes from svn at least >> for the time being. What should I do? > > If you don't intend to push back to svn, then life is relatively simple. > > First, on your PC where you've been making other commits, rename the > trunk branch to master and push that: > > git branch -m trunk master > git push bare master > > Then delete the 'trunk' branch on bare, and re-push it from the git svn repo: > > git push bare :trunk > git push bare trunk > > And probably you'll go back to your PC and merge the latest trunk into > your master: > > git pull bare trunk > # resolve any conflicts > git push bare master > > Have fun, > > Avery >