On Thu, Apr 23, 2015 at 1:17 PM, Robert Dailey <rcdailey.lists@xxxxxxxxx> wrote: > On Fri, Apr 10, 2015 at 11:44 AM, John Keeping <john@xxxxxxxxxxxxx> wrote: >> On Fri, Apr 10, 2015 at 11:30:20AM -0500, Robert Dailey wrote: >>> I have a branch that contains a commit with a single change: A >>> submodule pointing to a new SHA1. >>> >>> When I rebase this branch onto the tip of its parent branch AND that >>> parent branch had modified that same submodule, the rebase stops at >>> the commit on my branch that modified the submodule and asks me if I >>> want to keep REMOTE or LOCAL. I say LOCAL and notice immediately that >>> the submodule is not staged (normally it would be). >>> >>> I do: >>> >>> $ git add my-submodule >>> >>> Then I do: >>> >>> $ git rebase --continue >>> >>> At this point, it fails asking me if I forgot to stage changes and >>> recommends doing --skip. This is normally what you would see if the >>> staging area was completely empty, however it isn't, since I see the >>> submodule is in there. >>> >>> Is this a bug or am I missing a fundamental here? I'm using Git 2.1.0 >>> on Windows through MSYS. I'll provide more concrete examples if my >>> summary of the issue doesn't "ring any bells". >> >> I hit something similar in the past, but it was fixed with commit >> a6754cd (rebase -i continue: don't skip commits that only change >> submodules, 2012-04-07) so I think you must be hitting a slightly >> different problem, although the tests added in that commit look like >> they do test the scenario you describe (specifically 'rebase -i continue >> with only submodule staged'). > > I am still running into this issue on git 2.3.5 on Windows. Logs > below. One interesting thing to note in the git trace output is that > it is specifying --ignore-submodules option to `git diff-files` during > the rebase continue. Is this due to a configuration option? It seems > like git should not be ignoring submodules when continuing a rebase > (this should only affect direct calls to diff) > > > |-- Robert@M5536:/e/code/frontend (timeline-ids-develop|REBASE 3/3) --| > $ git status > rebase in progress; onto bb05e7c > You are currently rebasing branch 'timeline-ids-develop' on 'bb05e7c'. > (all conflicts fixed: run "git rebase --continue") > > Changes to be committed: > (use "git reset HEAD <file>..." to unstage) > > modified: Core > > Changes not staged for commit: > (use "git add <file>..." to update what will be committed) > (use "git checkout -- <file>..." to discard changes in working directory) > > modified: Core (new commits) > > Untracked files: > (use "git add <file>..." to include in what will be committed) > > Tools/FontTool/ > > > |-- Robert@M5536:/e/code/frontend (timeline-ids-develop|REBASE 3/3) --| > $ GIT_TRACE=1 git rebase --continue > 19:15:33.569945 git.c:557 trace: exec: 'git-rebase' '--continue' > 19:15:33.569945 run-command.c:351 trace: run_command: > 'git-rebase' '--continue' > 19:15:33.775097 git.c:348 trace: built-in: git > 'rev-parse' '--parseopt' '--stuck-long' '--' '--continue' > 19:15:33.931190 git.c:348 trace: built-in: git > 'rev-parse' '--git-dir' > 19:15:34.007242 git.c:348 trace: built-in: git > 'rev-parse' '--is-bare-repository' > 19:15:34.059280 git.c:348 trace: built-in: git > 'rev-parse' '--show-toplevel' > 19:15:34.148343 git.c:348 trace: built-in: git 'config' > '--bool' 'rebase.stat' > 19:15:34.227399 git.c:348 trace: built-in: git 'config' > '--bool' 'rebase.autostash' > 19:15:34.280437 git.c:348 trace: built-in: git 'config' > '--bool' 'rebase.autosquash' > 19:15:34.335476 git.c:348 trace: built-in: git > 'rev-parse' '--verify' 'HEAD' > 19:15:34.389515 git.c:348 trace: built-in: git > 'update-index' '--ignore-submodules' '--refresh' > 19:15:34.554631 git.c:348 trace: built-in: git > 'diff-files' '--quiet' '--ignore-submodules' > 19:15:34.902879 git.c:557 trace: exec: 'git-am' > '--resolved' '--resolvemsg= > When you have resolved this problem, run "git rebase --continue". > If you prefer to skip this patch, run "git rebase --skip" instead. > To check out the original branch and stop rebasing, run "git rebase --abort". > ' > 19:15:34.902879 run-command.c:351 trace: run_command: 'git-am' > '--resolved' '--resolvemsg= > When you have resolved this problem, run "git rebase --continue". > If you prefer to skip this patch, run "git rebase --skip" instead. > To check out the original branch and stop rebasing, run "git rebase --abort". > ' > 19:15:35.113028 git.c:348 trace: built-in: git > 'rev-parse' '--parseopt' '--stuck-long' '--' '--resolved' > '--resolvemsg= > When you have resolved this problem, run "git rebase --continue". > If you prefer to skip this patch, run "git rebase --skip" instead. > To check out the original branch and stop rebasing, run "git rebase --abort". > ' > 19:15:35.290155 git.c:348 trace: built-in: git > 'rev-parse' '--git-dir' > 19:15:35.387224 git.c:348 trace: built-in: git > 'rev-parse' '--show-prefix' > 19:15:35.541332 git.c:348 trace: built-in: git > 'rev-parse' '--show-toplevel' > 19:15:35.598374 git.c:348 trace: built-in: git 'var' > 'GIT_COMMITTER_IDENT' > 19:15:35.659417 git.c:348 trace: built-in: git > 'rev-parse' '--verify' '-q' 'HEAD' > 19:15:35.724462 git.c:348 trace: built-in: git 'config' > '--bool' '--get' 'am.messageid' > 19:15:35.811524 git.c:348 trace: built-in: git 'config' > '--bool' '--get' 'am.keepcr' > 19:15:36.037685 git.c:348 trace: built-in: git > 'update-index' '-q' '--refresh' > 19:15:37.057409 git.c:557 trace: exec: > 'git-sh-i18n--envsubst' '--variables' 'Applying: $FIRSTLINE' > 19:15:37.057409 run-command.c:351 trace: run_command: > 'git-sh-i18n--envsubst' '--variables' 'Applying: $FIRSTLINE' > 19:15:37.178495 git.c:557 trace: exec: > 'git-sh-i18n--envsubst' 'Applying: $FIRSTLINE' > 19:15:37.178495 run-command.c:351 trace: run_command: > 'git-sh-i18n--envsubst' 'Applying: $FIRSTLINE' > Applying: TEMP: Update Core submodule > 19:15:37.360624 git.c:348 trace: built-in: git > 'diff-index' '--ignore-submodules' '--quiet' '--cached' 'HEAD' '--' > No changes - did you forget to use 'git add'? > If there is nothing left to stage, chances are that something else > already introduced the same changes; you might want to skip this patch. > > When you have resolved this problem, run "git rebase --continue". > If you prefer to skip this patch, run "git rebase --skip" instead. > To check out the original branch and stop rebasing, run "git rebase --abort". > > 19:15:37.456694 git.c:348 trace: built-in: git > 'rev-parse' '--verify' '-q' 'HEAD' For reference, I found an existing mailing list discussion on this from a few years ago: http://git.661346.n2.nabble.com/Interactive-rebase-with-submodules-td7197519.html Apparently a patch was proposed, i do not know if it made it in a release of Git. But based on what I'm seeing right now, it seems that it did not. -- 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