On Sunday 25 May 2008 03:21, Linus Torvalds wrote: > On Sat, 24 May 2008, Johannes Sixt wrote: > > but this does not: > > > > $ git rev-list --full-history --parents HEAD -- a > > M A B > > B A > > A > > That is the "correct" output. > > That's what "--full-history" means: do not simplify merges away when all > the data comes from just one branch (in this case from "B"). > > So it shows you commit 'M' because you asked for full-history. > > Commit 'M' has parents 'C' and 'B', but since 'C' doesn't actually modify > the file at all, the regular commit simplification will simplify 'C' away, > so now that parent 'C' will become 'A'. So 'M' has the _simplified_ > parent's 'A' and 'B'. > > Then it shows 'B' (parent 'A') and 'A' (no parent). The history was this: C--M / / A--B Now assume that both B and C change a, but so that it is identical in both B and C. I thought that --full-history makes a difference *only* for this case, because without --full-history the revision walk would choose either B or C (not quite at random, but in an unspecified manner), but not both; but with --full-history the revision walk would go both paths. This makes a difference in git-filter-branch --subdirectory-filter: We do want to simplify history to those commits that touch a path, but we don't want to simplify away the case outlined in the previous paragraph. > > Of course, I'd expected to see this: > > > > $ git rev-list --full-history --parents HEAD -- a > > B A > > A > > Why did you ask for --full-history, if you're not interested in merges > that are irrelevant? To get what you wanted, just do > > git rev-list --parents HEAD -- a > > and it should give you exactly that output. In the case at hand this would be sufficient, but in git-filter-branch we don't want to prune branches whose modifications to a path make the path identical. What shall we do in git-filter-branch --subdirectory-filter? -- Hannes -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html