From: Junio C Hamano <gitster@pobox.com>
To: Max Horn <max@quendi.de>
Cc: git@vger.kernel.org, Felipe Contreras <felipe.contreras@gmail.com>
Subject: Re: What's cooking in git.git (Feb 2014, #06; Wed, 19)
Date: Fri, 21 Feb 2014 10:04:03 -0800 [thread overview]
Message-ID: <xmqqr46w4a24.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <FB0B19C8-65BF-49CF-8EE4-5B9D55BBCE7C@quendi.de> (Max Horn's message of "Fri, 21 Feb 2014 10:55:59 +0100")
Max Horn <max@quendi.de> writes:
>> Thanks. Let's keep it a bit longer and see how your new
>> investigation (and possibly help from others) develops to a
>> solution.
>
> So I had a closer look, and I now believe to now understand what
> the right fix is. Simply dropping transport-helper: check for
> 'forced update' message would be wrong, because it would cause the
> contrib/remote-helpers test cases to fail -- when I tested last
> night, I forgot that I had to run those separately. Silly me!
> ...
> In other words, the following patch should be the correct
> solution, as far as I can tell. I verified that it fixes t5541 and
> causes no regressions in the contrib/remote-helpers test suite.
Here is a description I wrote for a tentative commit to queue on
'pu' after seeing your response:
transport-helper.c: do not overwrite forced bit
It does not necessarily mean the update was *not* forced, when the
helper did not say "forced update". When the helper does say so, we
know the update is forced.
A workaround to fix breakage introduced by the previous step,
proposed by Max Horn.
It troubled me that "it does not necessarily mean" sounded really
wishy-washy. Isn't it possible for some helpers to _do_ want to
tell us that it did not have to force after all by _not_ saying
"forced update" and overwrite ->forced_update with zero? How do we
tell helpers that do want to do so apart from other helpers that say
"forced update" only when they noticed they are indeed forcing?
Perhaps the logic needs to be more like:
if (we know helper will tell us the push did not have to
force by *not* saying "forced update") {
(*ref)->forced_update = forced;
}
i.e. for helpers that do not use the 'forced update' feature, simply
ignore this "forced" variable altogether, no?
> -- 8< --
> diff --git a/transport-helper.c b/transport-helper.c
> index fa7c608..86e1679 100644
> --- a/transport-helper.c
> +++ b/transport-helper.c
> @@ -734,7 +734,7 @@ static int push_update_ref_status(struct strbuf *buf,
> }
>
> (*ref)->status = status;
> - (*ref)->forced_update = forced;
> + (*ref)->forced_update |= forced;
> (*ref)->remote_status = msg;
> return !(status == REF_STATUS_OK);
> }
> -- 8< --
next prev parent reply other threads:[~2014-02-21 18:04 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-19 21:41 What's cooking in git.git (Feb 2014, #06; Wed, 19) Junio C Hamano
2014-02-20 18:39 ` Max Horn
2014-02-20 19:22 ` Junio C Hamano
2014-02-21 9:55 ` Max Horn
2014-02-21 15:46 ` Torsten Bögershausen
2014-02-21 18:04 ` Junio C Hamano [this message]
2014-02-22 0:55 ` Max Horn
2014-02-24 16:57 ` Junio C Hamano
2014-02-24 17:06 ` Junio C Hamano
2014-02-24 17:55 ` Max Horn
2014-02-21 16:18 ` Ramkumar Ramachandra
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=xmqqr46w4a24.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=max@quendi.de \
/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.