diff options
| author | Junio C Hamano <gitster@pobox.com> | 2017-11-15 12:14:30 +0900 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2017-11-15 12:14:30 +0900 |
| commit | b50d82b00a8fc9d24e41ae7dc30185555f8fb0a0 (patch) | |
| tree | 626a7714e775c440ea15e74583ff1f163ff20186 | |
| parent | Merge branch 'mh/tidy-ref-update-flags' (diff) | |
| parent | wt-status: actually ignore submodules when requested (diff) | |
| download | git-b50d82b00a8fc9d24e41ae7dc30185555f8fb0a0.tar.gz git-b50d82b00a8fc9d24e41ae7dc30185555f8fb0a0.zip | |
Merge branch 'bw/rebase-i-ignored-submodule-fix'
"git rebase -i" recently started misbehaving when a submodule that
is configured with 'submodule.<name>.ignore' is dirty; this has
been corrected.
* bw/rebase-i-ignored-submodule-fix:
wt-status: actually ignore submodules when requested
| -rwxr-xr-x | t/t3426-rebase-submodule.sh | 17 | ||||
| -rw-r--r-- | wt-status.c | 4 |
2 files changed, 20 insertions, 1 deletions
diff --git a/t/t3426-rebase-submodule.sh b/t/t3426-rebase-submodule.sh index ebf4f5e4b2..a2bba04ba9 100755 --- a/t/t3426-rebase-submodule.sh +++ b/t/t3426-rebase-submodule.sh @@ -40,4 +40,21 @@ git_rebase_interactive () { test_submodule_switch "git_rebase_interactive" +test_expect_success 'rebase interactive ignores modified submodules' ' + test_when_finished "rm -rf super sub" && + git init sub && + git -C sub commit --allow-empty -m "Initial commit" && + git init super && + git -C super submodule add ../sub && + git -C super config submodule.sub.ignore dirty && + >super/foo && + git -C super add foo && + git -C super commit -m "Initial commit" && + test_commit -C super a && + test_commit -C super b && + test_commit -C super/sub c && + set_fake_editor && + git -C super rebase -i HEAD^^ +' + test_done diff --git a/wt-status.c b/wt-status.c index 937a87bbd5..ef26f07446 100644 --- a/wt-status.c +++ b/wt-status.c @@ -2267,8 +2267,10 @@ int has_unstaged_changes(int ignore_submodules) int result; init_revisions(&rev_info, NULL); - if (ignore_submodules) + if (ignore_submodules) { rev_info.diffopt.flags.ignore_submodules = 1; + rev_info.diffopt.flags.override_submodule_config = 1; + } rev_info.diffopt.flags.quick = 1; diff_setup_done(&rev_info.diffopt); result = run_diff_files(&rev_info, 0); |
