> From: Bernard Clark <[email protected]> > > I've been running the git filter-branch described here > <http://stackoverflow.com/questions/14759345/how-to-split-a-git-repository-and-follow-directory-renames.> > . But the resulting history includes at least two extraneous commits, i.e., > commits that appear to affect no files in the subdirectory of interest. > (The corresponding commits in the original history do affect files, but > those files are in another subdirectory.)
My guess is that the inner script doesn't correctlty notice that one of the old commits, when limited to the subdirectory, doesn't change anythihng, and does not signal to the wrapper that no new commit needs to be created. (Hmmmm, that could be messy if the old commit was a merge commit, because you'd need a new commit to record the merge, even if no file is changed (relative to one parent).) > I also noticed the occurrence of several "duplicate parent" errors during > the git filter-branch. This page > <http://stackoverflow.com/questions/15161809/git-duplicate-parent-causes-half-the-history-to-to-disappear> > > says that those errors can produce an incomplete new history, so I'm now > wondering if, in addition to including extraneous commits, my new history > might also be missing some. Along with this page > <http://stackoverflow.com/questions/7489713/git-duplicate-parent/7501703#7501703>, > > the page says that the "duplicate parent" errors should disappear if "git > filter-branch" is first run with no filter. But that didn't work for me. > > Thoughts? It could be messy -- as you create new commits, sometimes two old commits will map into identical new commits. If filter-branch notices that, it might wind up giving that one new commit twice as parents of a new commit. Does filter-branch have a strategy for dealing with that? I'd sit down and draw a diagram of what the new commit structure *should* look like, together with the mapping from the old commits, and then see whether filter-branch's output matches what you expect. That should show you the specific situations that are causing the problem, and may allow you to deduce how filter-branch is handling them. Dale -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
