Greg Price schrieb: > In a rebase with --onto, the correct test for whether we can skip > rewriting a commit is if it is already on top of $ONTO, not $UPSTREAM. > Without --onto, this distinction does not exist and the behavior does > not change. > > > In the situation > > X---o---o---o---M > \ / > x---x---x---x > > Y > > if we try to move the branches merged at M from their base on X to be > based on Y, so as to get > > X > > Y---o'--o'--o'--M' > \ / > x'--x'--x'--x' > > then we fail. The command `git rebase -p --onto Y X M` moves only the > first-parent chain, like so: > > X > \ > x---x---x---x > \ > Y---o'--o'--o'--M' > > because it mistakenly drops the other branch(es) x---x---x---x from > the TODO file. This tests and fixes this behavior. I think the current behavior is by design. There is nothing to fix. The purpose of rebase -p is to leave non-first children alone and rebase only the first child parenthood chain. It is not the purpose to reseat an entire history DAG. -- 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