Hi all,

I've encountered a problem trying to unpick the history of the linaro
git trees, but I don't think it's specific to us:

The problem seems to be that when a merge is committed, git references
the merged commits in their original context: no information is
recorded about how the merge was resolved.  The result just appears by
magic as the new tree recorded for the merge commit.

This seems to mean that git format-patch x..y (where x is an ancestor
of y) does _not_ necessarily give you a patch series which actually
applies on x (indeed, the generated patch series may not be appliable
on any commit, in any order).  This is certainly my experience.

As a result, it seems very difficult to pick apart the history of a
branch beyond the last merge commit, because the git repo only records
the logical ancestry (i.e., which upstream patches got merged) rather
than any "physical" history (i.e., what sequence of actual changes
would be needed to reconstruct the branch).  In fact, it seems to be
nonsense to think in terms of a sequence of patches beyond a merge
commit.

What I'm actually trying to do is cherry-pick a few omap- and Thumb-
specific commits out of the linaro tree to apply on v2.6.39-rc2 --
just the minimum subset so that I can develop Thumb stuff on a tree
which is as clean and close to upstream as possible.  But I repeatedly
run into problems where patch p from branch b depends on
cherry-picking some other patch q merged branch b, but the cherry pick
fails since the actual delta recorded for q is in the context of
someone else's branch (the branch that was merged from).

If anyone knows a straightforward way to achieve this, I'd be interested ...

Of course, I may be trying to do entirely the wrong thing.

Cheers
---Dave

_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to