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
Let me know if you need an example reproduce the issue.
David
threads / discuss / 45566
Subject: git diff --submodule=diff fails with submodules in a submodule
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
Let me know if you need an example reproduce the issue.
David
Re: git diff --submodule=diff fails with submodules in a submodule
+cc Jacob, who implemented --submodule=diff
On Fri, Mar 31, 2017 at 8:40 AM, David Parrish <daveparrish@gmail.com> 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
Re: git diff --submodule=diff fails with submodules in a submodule
On Fri, Mar 31, 2017 at 10:07 AM, Stefan Beller <sbeller@google.com> wrote:
> +cc Jacob, who implemented --submodule=diff > > On Fri, Mar 31, 2017 at 8:40 AM, David Parrish <daveparrish@gmail.com> 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
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
[PATCH] failure with diff --submodule=diff with moved nested submodule HEAD
This fails reliable for me.
Signed-off-by: Stefan Beller <sbeller@google.com> --- 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
Re: [PATCH] failure with diff --submodule=diff with moved nested submodule HEAD
Stefan Beller <sbeller@google.com> writes:
> This fails reliable for me. > > Signed-off-by: Stefan Beller <sbeller@google.com> > ---
I take it that this is a WIP for the testing half of the patch you are working on (i.e. you are not just throwing a patch to document known breakage to be fixed later, in which case these would have been _expect_failure).
Thanks.
> 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