Merge branch 'jk/diff-submodule-diff-inline'
authorJunio C Hamano <gitster@pobox.com>
Mon, 29 May 2017 03:34:42 +0000 (12:34 +0900)
committerJunio C Hamano <gitster@pobox.com>
Mon, 29 May 2017 03:34:42 +0000 (12:34 +0900)
"git diff --submodule=diff" now recurses into nested submodules.

* jk/diff-submodule-diff-inline:
diff: recurse into nested submodules for inline diff

1  2 
submodule.c
t/t4060-diff-submodule-option-diff-format.sh
diff --cc submodule.c
Simple merge
index d4a3ffa69cd2e88b19e05149d2e752bec89ee57c,33b661140d18083c7c721afc702c5b45beb584d1..33ec26d7557ab49888584396c14a1b58564c2dcd
@@@ -745,34 -745,46 +745,75 @@@ test_expect_success 'diff --submodule=d
        EOF
        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_expect_success 'diff --submodule=diff recurses into nested submodules' '
+       cat >expected <<-EOF &&
+       Submodule sm2 contains modified content
+       Submodule sm2 a5a65c9..280969a:
+       diff --git a/sm2/.gitmodules b/sm2/.gitmodules
+       new file mode 100644
+       index 0000000..3a816b8
+       --- /dev/null
+       +++ b/sm2/.gitmodules
+       @@ -0,0 +1,3 @@
+       +[submodule "nested"]
+       +       path = nested
+       +       url = ../sm2
+       Submodule nested 0000000...b55928c (new submodule)
+       diff --git a/sm2/nested/file b/sm2/nested/file
+       new file mode 100644
+       index 0000000..ca281f5
+       --- /dev/null
+       +++ b/sm2/nested/file
+       @@ -0,0 +1 @@
+       +nested content
+       diff --git a/sm2/nested/foo8 b/sm2/nested/foo8
+       new file mode 100644
+       index 0000000..db9916b
+       --- /dev/null
+       +++ b/sm2/nested/foo8
+       @@ -0,0 +1 @@
+       +foo8
+       diff --git a/sm2/nested/foo9 b/sm2/nested/foo9
+       new file mode 100644
+       index 0000000..9c3b4f6
+       --- /dev/null
+       +++ b/sm2/nested/foo9
+       @@ -0,0 +1 @@
+       +foo9
+       EOF
+       git diff --submodule=diff >actual 2>err &&
+       test_must_be_empty err &&
+       test_cmp expected actual
+ '
  test_done