Given a repository that was previously in SVN and has now been fully converted to Git (ie. currently accessed via "pure" git
and not git svn
):
Given a mainline branch and a release branch that diverged from mainline prior to the Git conversion:
Is there any easy way (from Git) to tell which commits are present on the release branch and not on the mainline branch (ie. possible candidates to be cherry-picked back to mainline, when a fix has been made directly to the release branch)?
The problem I see is that commands like git cherry
(which is apparently the right choice for branches that diverged after the Git conversion) expect that complete commits are kept intact, but merges made in SVN prior to the conversion tend to be roll-ups -- basically squashed cherries instead of intact cherries.
In SVN, this is accomplished by inspecting the svn:mergeinfo
property (usually automatically via tools). I don't know if this information was preserved during the conversion process, or if there are any tools that know to look for it in an apparently-native-Git repository.