Skip to content

Commit

Permalink
Merge branch 'sb/show-diff-for-submodule-in-diff-fix'
Browse files Browse the repository at this point in the history
"git diff --submodule=diff" learned to work better in a project
with a submodule that in turn has its own submodules.

* sb/show-diff-for-submodule-in-diff-fix:
  diff: submodule inline diff to initialize env array.
  • Loading branch information
gitster committed Apr 17, 2017
2 parents 263fd04 + 17b254c commit 1776a71
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
1 change: 1 addition & 0 deletions submodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,7 @@ void show_submodule_inline_diff(FILE *f, const char *path,
if (!(dirty_submodule & DIRTY_SUBMODULE_MODIFIED))
argv_array_push(&cp.args, oid_to_hex(new));

prepare_submodule_repo_env(&cp.env_array);
if (run_command(&cp))
fprintf(f, "(diff failed)\n");

Expand Down
29 changes: 29 additions & 0 deletions t/t4060-diff-submodule-option-diff-format.sh
Original file line number Diff line number Diff line change
Expand Up @@ -746,4 +746,33 @@ test_expect_success 'diff --submodule=diff with .git file' '
test_cmp expected actual
'

test_expect_success 'setup nested submodule' '
git submodule add -f ./sm2 &&
git commit -a -m "add sm2" &&
git -C sm2 submodule add ../sm2 nested &&
git -C sm2 commit -a -m "nested sub"
'

test_expect_success 'move nested submodule HEAD' '
echo "nested content" >sm2/nested/file &&
git -C sm2/nested add file &&
git -C sm2/nested commit --allow-empty -m "new HEAD"
'

test_expect_success 'diff --submodule=diff with moved nested submodule HEAD' '
cat >expected <<-EOF &&
Submodule nested a5a65c9..b55928c:
diff --git a/nested/file b/nested/file
new file mode 100644
index 0000000..ca281f5
--- /dev/null
+++ b/nested/file
@@ -0,0 +1 @@
+nested content
EOF
git -C sm2 diff --submodule=diff >actual 2>err &&
test_must_be_empty err &&
test_cmp expected actual
'

test_done

0 comments on commit 1776a71

Please sign in to comment.