Re: Editing the root commit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]