+cc Jacob, who implemented --submodule=diff
On Fri, Mar 31, 2017 at 8:40 AM, David Parrish [off-list ref] wrote:
When I try to run `git diff --submodule=diff` in a submodule which has
it's own submodules that have changes I get the error: fatal: bad
object
Thanks for the bug report!
Let me know if you need an example reproduce the issue.
I could reproduce it when playing around locally with a submodule in
submodules. I think sub-submodule needs to have its HEAD moved from
the recorded commit.
Thanks,
Stefan
On Fri, Mar 31, 2017 at 10:07 AM, Stefan Beller [off-list ref] wrote:
+cc Jacob, who implemented --submodule=diff
On Fri, Mar 31, 2017 at 8:40 AM, David Parrish [off-list ref] wrote:
quoted
When I try to run `git diff --submodule=diff` in a submodule which has
it's own submodules that have changes I get the error: fatal: bad
object
Thanks for the bug report!
quoted
Let me know if you need an example reproduce the issue.
I could reproduce it when playing around locally with a submodule in
submodules. I think sub-submodule needs to have its HEAD moved from
the recorded commit.
Thanks,
Stefan
Hmm. An example reproduction would be helpful. Ideally in the form of
a test ;) But otherwise whatever helps. I will try to look at this,
but I'm busy for a few days.
Thanks,
Jake
This fails reliable for me.
Signed-off-by: Stefan Beller <redacted>
---
t/t4060-diff-submodule-option-diff-format.sh | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/t/t4060-diff-submodule-option-diff-format.sh b/t/t4060-diff-submodule-option-diff-format.sh
index 7e23b55ea4..89bced3484 100755
--- a/t/t4060-diff-submodule-option-diff-format.sh
+++ b/t/t4060-diff-submodule-option-diff-format.sh
@@ -746,4 +746,20 @@ 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 &&
+ git -C sm2 commit -a -m "nested sub"
+'
+
+test_expect_success 'move nested submodule HEAD' '
+ git -C sm2/sm2 commit --allow-empty -m "new HEAD"
+'
+
+test_expect_success 'diff --submodule=diff with moved nested submodule HEAD' '
+ git -C sm2 diff --submodule=diff >actual 2>err &&
+ test_must_be_empty err
+'
+
test_done
--
2.12.2.511.g2abb8caf66