When I run git svn fetch
it sometimes prints following warning:
W:svn cherry-pick ignored (/path/in/svn:<svn revision number list>) missing 55 commit(s) (eg 9129b28e5397c41f0a527818edd344bf264359af)
What this warning is about?
When I run git svn fetch
it sometimes prints following warning:
W:svn cherry-pick ignored (/path/in/svn:<svn revision number list>) missing 55 commit(s) (eg 9129b28e5397c41f0a527818edd344bf264359af)
What this warning is about?
When someone does a "cherry-pick merge" with Subversion, Subversion records the commit that was merged in the metadata for the files and folders involved.
When you do a
git svn fetch
, Git sees that merge metadata, and tries to interpret it as a merge between the Git remote branches. All this message means is that Git tried to do that, but failed, so it'll record it as a regular commit rather than a merge.It's not something you need to worry about unless you're seeing bugs in how Git picks up Subversion commits.
In more detail:
Say you have a Subversion repository with two branches
A
andB
, with a matching Git svn repository:If you were to reintegrate branch
B
back into branchA
, you'd use a command in a branchA
working copy likesvn merge -r 3:HEAD ^/branches/B
or justsvn merge --reintegrate ^/branches/B
. Subversion would record metadata insvn:mergeinfo
tags recording that this merge had taken place, and your nextgit svn fetch
will see this metadata, see that branchB
has been reintegrated into branchA
, and record the corresponding commit in its history as a merge too.If you just wanted a single commit from branch
B
in branchA
(say r3 added a feature you need), but you don't want to reintegrate the entire branch yet, you'd instead use a Subversion command likesvn merge -c 3 ^/branches/B
. Again, Subversion would record merge metadata, and Git would see this and try to work out if it could record a branch merge as in the previous example. In this case it can't: branchA
doesn't contain anything like branchB
's r5. That's what triggers this warning.