mirror of
https://github.com/git/git
synced 2024-08-28 20:20:07 +00:00
Merge branch 'nd/add-i-ignore-submodules' into maint
"git add -p" was taught to ignore local changes to submodules as they do not interfere with the partial addition of regular changes anyway. * nd/add-i-ignore-submodules: add--interactive: ignore submodule changes except HEAD
This commit is contained in:
commit
2409e1035c
|
@ -262,7 +262,7 @@ sub list_modified {
|
|||
}
|
||||
}
|
||||
|
||||
for (run_cmd_pipe(qw(git diff-files --numstat --summary --raw --), @ARGV)) {
|
||||
for (run_cmd_pipe(qw(git diff-files --ignore-submodules=dirty --numstat --summary --raw --), @ARGV)) {
|
||||
if (($add, $del, $file) =
|
||||
/^([-\d]+) ([-\d]+) (.*)/) {
|
||||
$file = unquote_path($file);
|
||||
|
|
|
@ -493,4 +493,52 @@ test_expect_success 'add -p works even with color.ui=always' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'setup different kinds of dirty submodules' '
|
||||
test_create_repo for-submodules &&
|
||||
(
|
||||
cd for-submodules &&
|
||||
test_commit initial &&
|
||||
test_create_repo dirty-head &&
|
||||
(
|
||||
cd dirty-head &&
|
||||
test_commit initial
|
||||
) &&
|
||||
cp -R dirty-head dirty-otherwise &&
|
||||
cp -R dirty-head dirty-both-ways &&
|
||||
git add dirty-head &&
|
||||
git add dirty-otherwise dirty-both-ways &&
|
||||
git commit -m initial &&
|
||||
|
||||
cd dirty-head &&
|
||||
test_commit updated &&
|
||||
cd ../dirty-both-ways &&
|
||||
test_commit updated &&
|
||||
echo dirty >>initial &&
|
||||
: >untracked &&
|
||||
cd ../dirty-otherwise &&
|
||||
echo dirty >>initial &&
|
||||
: >untracked
|
||||
) &&
|
||||
git -C for-submodules diff-files --name-only >actual &&
|
||||
cat >expected <<-\EOF &&
|
||||
dirty-both-ways
|
||||
dirty-head
|
||||
dirty-otherwise
|
||||
EOF
|
||||
test_cmp expected actual &&
|
||||
git -C for-submodules diff-files --name-only --ignore-submodules=dirty >actual &&
|
||||
cat >expected <<-\EOF &&
|
||||
dirty-both-ways
|
||||
dirty-head
|
||||
EOF
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'status ignores dirty submodules (except HEAD)' '
|
||||
git -C for-submodules add -i </dev/null >output &&
|
||||
grep dirty-head output &&
|
||||
grep dirty-both-ways output &&
|
||||
! grep dirty-otherwise output
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Loading…
Reference in a new issue