[BUG?] rebase -i -p leaves index changed

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

 



Hi,

'rebase -i -p' appears to be a bit confused about what it is doing.
Try a history like this:

  O -- A -- M -- B
   \       /
    \- C -/

built by:

  git init
  touch foo
  git add foo
  git ci -m initial
  git tag root
  git co -b side
  echo blah > other
  git add other
  git ci -m other
  git co master
  echo a >> foo
  git add foo
  git ci -m a
  git add foo
  git merge side
  echo b >> foo
  git add foo
  git ci -m 'b: depends on side'

First try this:

  GIT_EDITOR=true git rebase -i -p root
  git diff --cached

resulting in

  diff --git a/foo b/foo
  index 422c2b7..e69de29 100644
  --- a/foo
  +++ b/foo
  @@ -1,2 +0,0 @@
  -a
  -b
  diff --git a/other b/other
  deleted file mode 100644
  index 907b308..0000000
  --- a/other
  +++ /dev/null
  @@ -1 +0,0 @@
  -blah

Second, 'edit' is also a bit suspicious:

  git reset --hard
  GIT_EDITOR='perl -i -pe "s/pick 096/edit 096/"' git rebase -i -p root

Despite claiming "Stopped at 096[...] a", a quick 'git show' tells us
that it is actually stuck at 'initial'.  (At least 'git rebase
--continue' then ends up with the same result as the first test.)

Granted, I'm not entirely sure what it _should_ do.  In my use case
(relating to the filter-branch topic), C was a commit from elsewhere
that B depended on.  So I kind of hoped 'rebase -i -p' would let me
edit A, then rebuild M and B on top, while leaving C alone.

- Thomas

-- 
Thomas Rast
trast@xxxxxxxxxxxxxxx





Attachment: signature.asc
Description: This is a digitally signed message part.


[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