Hi Orgad, On Fri, 3 Nov 2017, Johannes Schindelin wrote: > On Thu, 2 Nov 2017, Orgad Shaneh wrote: > > > I can't reproduce this with a minimal example, but it happens in my project. Whoa, I somehow overlooked the "can't". Sorry. > > What I tried to do for reproducing is: > > rm -rf super sub > > mkdir sub; cd sub; git init > > git commit --allow-empty -m 'Initial commit' > > mkdir ../super; cd ../super > > git init > > git submodule add ../sub > > touch foo; git add foo sub > > git commit -m 'Initial commit' > > touch a; git add a; git commit -m 'a' > > touch b; git add b; git commit -m 'b' > > cd sub; git commit --allow-empty -m 'New commit'; cd .. > > git rebase -i HEAD^^ > > > > Then drop a. > > > > In my project I get: > > error: cannot rebase: You have unstaged changes. > > > > This works fine with 2.14.3. > > I tried to turn this into a regression test, but I cannot make it fail: > > -- snip -- > diff --git a/t/t3426-rebase-submodule.sh b/t/t3426-rebase-submodule.sh > index ebf4f5e4b2c..55aebe53191 100755 > --- a/t/t3426-rebase-submodule.sh > +++ b/t/t3426-rebase-submodule.sh > @@ -20,7 +20,7 @@ git_rebase () { > git rebase "$1" > } > > -test_submodule_switch "git_rebase" > +#test_submodule_switch "git_rebase" > > git_rebase_interactive () { > git status -su >expect && > @@ -38,6 +38,27 @@ git_rebase_interactive () { > git rebase -i "$1" > } > > -test_submodule_switch "git_rebase_interactive" > +#test_submodule_switch "git_rebase_interactive" > + > +test_expect_success '123' ' > + git init sub && > + test_commit -C sub init-submodule && > + git init super && > + git -C super submodule add ../sub && > + ( > + cd super && > + test_tick && > + touch foo && > + git add sub foo && > + git commit -m initial && > + test_commit a && > + test_commit b && > + test_commit -C sub new && > + set_fake_editor && > + FAKE_LINES=2 && > + export FAKE_LINES && I inserted a `git diff-files` here, and it printed exactly what I expected: ++ git diff-files :160000 160000 62cab94c8d8cf047bbb60c12def559339300efa4 0000000000000000000000000000000000000000 M sub > + git rebase -i HEAD^^ > + ) > +' There must be something else going wrong that we did not replicate here. Maybe the `error: cannot rebase: You have unstaged changes.` message was caused not by a change in the submodule? Could you run `git diff-files` before the rebase? This does *not* refresh the index, but maybe that is what is going wrong; you could call `git update-index --refresh` before the rebase and see whether that works around the issue? Ciao, Dscho