git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Brandon Williams <bmwill@google.com>
To: Orgad Shaneh <orgads@gmail.com>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	git <git@vger.kernel.org>
Subject: Re: Regression[2.14.3->2.15]: Interactive rebase fails if submodule is modified
Date: Mon, 6 Nov 2017 10:37:02 -0800	[thread overview]
Message-ID: <20171106183702.GA131418@google.com> (raw)
In-Reply-To: <CAGHpTBJFR2Y+Sg-xQzBpC6qu+NKPDSYyMwSe9Py9FtD2-bRAXg@mail.gmail.com>

On 11/05, Orgad Shaneh wrote:
> On Sat, Nov 4, 2017 at 8:04 PM, Orgad Shaneh <orgads@gmail.com> wrote:
> > On Fri, Nov 3, 2017 at 6:20 PM, Johannes Schindelin
> > <Johannes.Schindelin@gmx.de> wrote:
> >> Hi Orgad,
> >>
> >> On Fri, 3 Nov 2017, Johannes Schindelin wrote:
> >>
> >>> On Thu, 2 Nov 2017, Orgad Shaneh wrote:
> >>>
> >>> > I can't reproduce this with a minimal example, but it happens in my project.
> >>
> >> Whoa, I somehow overlooked the "can't". Sorry.
> >>
> >> I inserted a `git diff-files` here, and it printed exactly what I
> >> expected:
> >>
> >> ++ git diff-files
> >> :160000 160000 62cab94c8d8cf047bbb60c12def559339300efa4 0000000000000000000000000000000000000000 M      sub
> >>
> >>> +             git rebase -i HEAD^^
> >>> +     )
> >>> +'
> >>
> >> There must be something else going wrong that we did not replicate here.
> >> Maybe the `error: cannot rebase: You have unstaged changes.` message was
> >> caused not by a change in the submodule? Could you run `git diff-files`
> >> before the rebase?
> >
> > It's the same before and during the rebase:
> > $ git diff-files
> > :160000 160000 c840225a7cf6bb2ec64da9d35d2c29210bc5e5e8
> > 0000000000000000000000000000000000000000 M      sub
> >
> >
> >>
> >> This does *not* refresh the index, but maybe that is what is going wrong;
> >> you could call `git update-index --refresh` before the rebase and see
> >> whether that works around the issue?
> >
> > Nope.
> >
> > If I run git submodule update, then rebase --continue works fine, so
> > it's definitely somehow caused by the submodule.
> 
> I just checked out v2.15.0.windows.1 and reverted ff6f1f564c - it
> solves the problem. I still have no idea how to minimally reproduce
> (in my project it's easily reproducible) :)
> 

After reading your bug report and the fact that you weren't able to
reproduce it outside of your project I think i figured out what is
happening.  Before ff6f1f564c the gitmodules file wasn't being loaded
unless a codepath explicitly wanted to work with submodules.  Now they
are being lazy-loaded so if you call into the submodule config subsystem
it'll work without having to have initialized it before.  I suspect
that the submodule which is causing the failure has a
"submodule.<name>.ignore" entry in the .gitmodules file or somewhere in
your repositories config (I actually suspect the latter based on the
code path).

When rebase calls into the diff machinery to see if there are unstaged
changes it explicitly requests that submodule's be ignored, but this
desired gets overridden by your repository's config, clearing the
ignored flag and making rebase actually pay attention to the fact that
the submodule has changes in it.

I don't have a patch available to for you to test just yet (but I'll
have some time later today to write one up) but could you verify that
(1) you have an ignore entry for the submodule in question in your
config and (2) removing it from your config avoids the failure?  If
that's the case then we would be able to put together a reproducible
recipe for this failure.

-- 
Brandon Williams

  reply	other threads:[~2017-11-06 18:37 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-02  8:30 Regression[2.14.3->2.15]: Interactive rebase fails if submodule is modified Orgad Shaneh
2017-11-02 18:34 ` Stefan Beller
2017-11-02 21:45   ` Orgad Shaneh
2017-11-03 16:06 ` Johannes Schindelin
2017-11-03 16:20   ` Johannes Schindelin
2017-11-04 18:04     ` Orgad Shaneh
2017-11-05  7:30       ` Orgad Shaneh
2017-11-06 18:37         ` Brandon Williams [this message]
2017-11-06 20:36           ` Orgad Shaneh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171106183702.GA131418@google.com \
    --to=bmwill@google.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=orgads@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).