Junio C Hamano <gitster@xxxxxxxxx> writes: > If you are doing "rebase -i --root", what does it _mean_ to reorder > commits and move the root commit to somewhere else, or insert > something else that is _not_ the root to the beginning of the > sequence? > > It does not make _any_ sense to me. For one thing, the root commit > is to replay "addition of all these paths" to void (if you were doing > "rebase -i --root --onto $there", then $there may not be a void, but > it needs not to have overlapping paths for the result to make any > sense), and moving it to somewhere _other than_ the root location > does not make much sense. For another, a non-root commit is mostly > replay "these changes to these existing paths", and replaying such a > change to a void does not make any sense either. As you say, it depends on the commits you're re-ordering, but in my case the first few commits were entirely additions, and I wanted to add these files in a different order, and add different batches at once, with more sensible commit messages to explain to the reader what was going on. The addition of COPYING from quite a long way forward needed to move right back into the first commit too. > So in that sense, perhaps > > rebase -i --root > > in a history > > A---B---C > > should behave as if you did > > rebase -i A > > got an insn sheet that looked like > > pick B > pick C > > and then you made it to look like > > exec false > pick B > pick C > > to get the control back when the HEAD is detached at A, in order for > you to muck with the tree and "git commit --amend" to reword the > message. That would be easier to implement, certainly, but it makes --root --onto inconsistent with --root without --onto, which does work 'in the standard way' at present. It's also just a bit of syntactic sugar for something you can already do with rebase -i at present, in exactly the way you describe above. Maybe it's the best I can sensibly do though. I'm away this weekend, but will see what I can cook up one way or the other next week when the round tuit supply is topped up! Cheers, Chris. -- 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