From: Junio C Hamano <gitster@pobox.com>
To: Stephen Leake <stephen_leake@stephe-leake.org>
Cc: git@vger.kernel.org
Subject: Re: aborted 'git fetch' leaves workspace unusable
Date: Fri, 03 Jan 2014 09:58:43 -0800 [thread overview]
Message-ID: <xmqqsit5lzfw.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <85iou13fse.fsf@stephe-leake.org> (Stephen Leake's message of "Thu, 02 Jan 2014 21:28:17 -0600")
Stephen Leake <stephen_leake@stephe-leake.org> writes:
> Junio C Hamano <gitster@pobox.com> writes:
>
>> stephen_leake@stephe-leake.org writes:
>>
>>> However, in this case, even running the fetch was a mistake; I would
>>> have prefered that it leave FETCH_HEAD in its previous state.
>>
>> I think the clearing of leftover FETCH_HEAD is one of the early
>> things "git fetch" does, unless "--append" is in effect. I haven't
>> looked at the code for a long time, but it may be possible to move
>> the logic of doing so around so that this clearing is done as lazily
>> as possible.
>>
>> I however suspect that such a change may have fallouts on other
>> people who are writing tools like yours; they may be depending on
>> seeing FETCH_HEAD cleared after a failed fetch, and be surprised to
>> see a stale contents after they (attempt to) run "git fetch" in it.
>>
>> So it is not so clear if it is a good thing to change the behaviour
>> of "git fetch" not to touch FETCH_HEAD upon a failure.
>
> Ok; backwards compatibility is important.
>
> Perhaps FETCH_HEAD could be copied to FETCH_HEAD_prev or some such, to
> allow recovering in an error case?
As FETCH_HEAD is purely ephemeral (so are other ephemeral markers
like MERGE_HEAD and friends), and the promise between "git fetch"
and its users has always been that an invocation of "git fetch"
clears FETCH_HEAD (logical consequence of which is that the user
runs "git fetch" only when s/he are _done_ with the old FETCH_HEAD),
I doubt FETCH_HEAD_prev would add much value to the system and only
introduce more things we have to worry about, like "when will it be
cleaned?", "what happens to the old value in FETCH_HEAD_prev?".
It is like asking "Should 'rm -f foo' save the original 'foo' to
somewhere else just in case?".
If your emacs wrapper for some reason needs to know what happened in
the last fetch, I imagine that it can check and record what was in
FETCH_HEAD before issuing "git fetch", so...
next prev parent reply other threads:[~2014-01-03 17:58 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-31 8:19 aborted 'git fetch' leaves workspace unusable stephen_leake
2014-01-02 18:09 ` Junio C Hamano
2014-01-03 3:28 ` Stephen Leake
2014-01-03 17:58 ` Junio C Hamano [this message]
-- strict thread matches above, loose matches on Subject: below --
2013-12-30 17:07 stephen_leake
2013-12-30 19:37 ` Junio C Hamano
2013-12-30 19:54 ` Torsten Bögershausen
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqsit5lzfw.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=stephen_leake@stephe-leake.org \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.