Re: git fetch <remote> <branch> behaves weirdely when run in a worktree
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Sep 26, 2018, 16:09 UTC
- Message-ID
- <20180926160938.GA15312@duynguyen.home>
- In-Reply-To
- <CACsJy8AScp1v+R62vXWuP-45LLLYwfSBNaZJfR02=d+2CzDqhg@mail.gmail.com>
On Wed, Sep 26, 2018 at 05:24:14PM +0200, Duy Nguyen wrote:
Show 9 quoted lines
> On Wed, Sep 26, 2018 at 6:46 AM Kaartic Sivaraam > <kaartic.sivaraam@gmail.com> wrote: > > This is the most interesting part of the issue. I **did not** run > >'git fetch ...' in between those cat commands. I was surprised by > >how the contents of FETCH_HEAD are changing without me spawning any > >git processes that might change it. Am I missing something here? As > >far as i could remember, there wasn't any IDE running that might > >automatically spawn git commands especially in that work > >tree. Weird.
Maybe something like this could help track down that rogue "git fetch" process (it's definitely _some_ process writing to the wrong file; or some file synchronization thingy is going on). You can log more of course, but this is where FETCH_HEAD is updated.
-- 8< --
diff --git a/builtin/fetch.c b/builtin/fetch.c index 0696abfc2a..0dfb580e92 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -786,6 +786,13 @@ static int store_updated_refs(const char *raw_url, const char *remote_name, if (!fp) return error_errno(_("cannot open %s"), filename); + { + struct strbuf sb = STRBUF_INIT; + strbuf_addf(&sb, "( date; ls -l /proc/%d/cwd ) >>%s.log", getpid(), filename); + system(sb.buf); + strbuf_release(&sb); + } + if (raw_url) url = transport_anonymize_url(raw_url); else -- 8< -- -- Duy