Heads up: major rebase -i -p rework coming up

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

 



Hi all,

as probably everybody agrees, the code to preserve merges is a big mess 
right now.

Worse, the whole concept of "pick <merge-sha1>" just does not fly well.

So I started a _major_ cleanup, which happens to reduce the code very 
nicely so far.

It will take a few days to flesh out, I guess, but these are the major 
ideas of my work:

- pick $sha1

	will only work on non-merges in the future

- merge $sha1 [$sha1...] was $sha1 "Merge ..."

	will merge the given list of commits into the current HEAD, for 
	the user's reference and to keep up-to-date what was rewritten, 
	the original merge is shown after the keyword "was" (which is not 
	a valid SHA-1, luckily)

- goto $sha1

	will reset the HEAD to the given commit

- $sha1'

	for merge and goto, if a $sha1 ends in a single quote, the 
	rewritten commit is substituted (if there is one)

Example:

A - B - - - E 
  \       /
    C - D

could yield this TODO script:

	pick A
	pick C
	pick D
	goto A'
	pick B
	merge D' was E

This should lead to a much more intuitive user experience.

I am very sorry if somebody actually scripted rebase -i -p (by setting 
GIT_EDITOR with a script), but I am very certain that this cleanup is 
absolutely necessary to make rebase -i -p useful.

As always, I am thankful for suggestions to make this even more useful, or 
even easier to operate.

Ciao,
Dscho

--
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]

  Powered by Linux