[BUG?] rebase -i -p leaves index changed
- From
Thomas Rast <trast@student.ethz.ch>
- Date
- Aug 12, 2008, 09:16 UTC
- Message-ID
- <200808121116.41535.trast@student.ethz.ch>
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@student.ethz.ch