git svn dcommit error ?
John Ralls
jralls at ceridwen.us
Sat May 21 10:48:33 EDT 2011
On May 21, 2011, at 2:16 AM, Geert Janssens wrote:
> I recently switched to using a git repo as described in the wiki. This has
> worked fine until yesterday.
>
> I'm currently trying to run a git svn dcommit to push some of my local commits
> to svn. This results in an error however:
>
> $ git svn dcommit
> Committing to svn+ssh://gjanssens@svn.gnucash.org/repo/gnucash/trunk ...
> M src/gnome-utils/assistant-utils.c
> Transaction is out of date: File '/gnucash/trunk/src/gnome-utils/assistant-
> utils.c' is out of date at /usr/libexec/git-core/git-svn line 576
>
>
> My tree is as follows:
>
> ... - A' - A - T - B
>
> A: revision just before trunk
> A': the revision even just before that
> T: current trunk revision, both local and remote trunks
> B: branch I'm trying to push to svn
>
> I did run a git-update on trunk before trying to push. Trunk is up to date and
> branch B is properly rebased on trunk, at least as far as I can see in gitk.
>
> What confuses me is this: the error is about src/gnome-utils/assistant-utils.c
> This file is last changed in revision A, and already pushed to svn. There are
> no further changes to this file in either trunk or branch B. For some reason
> git doesn't seem to agree on and tries to push the change anyway.
>
> I suspect this is due to how revision A got committed:
> A' and A were two revisions I created on two separate branches. When they were
> ready, I first switched to the branch with A' and ran git svn dcommit. Next I
> switched to trunk and ran git-update. This didn't change the remotes, because
> the master repo at github hadn't synched yet. So at this point, local trunk
> and the remote trunks were not pointing at the same commit. From there I
> immediatly switched to the branch with A, rebased it to trunk and dcommitted
> it as well. This worked fine on the svn side, but I wonder if this confused
> things on the git side.
>
> Basically, that leaves me with two questions:
> 1. how to recover from this situation ?
> 2. how can I/we prevent this from happening is the future ?
Take a look at `git log --full-history A'..B src/gnome-utils/assistant-utils.c` (filling in the actual commit short hashes for A' and B, of course). It should show what git thinks are the differences.
Regards,
John Ralls
More information about the gnucash-devel
mailing list