git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Michael Haggerty <mhagger@alum.mit.edu>
Cc: Eric Sunshine <sunshine@sunshineco.com>, git@vger.kernel.org
Subject: Re: [PATCH 1/7] files_transaction_prepare(): don't leak flags to packed transaction
Date: Mon, 06 Nov 2017 10:28:36 +0900	[thread overview]
Message-ID: <xmqqshdsjiuz.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <4d2e6a29-e612-2eab-1b20-0c97a8871c5c@alum.mit.edu> (Michael Haggerty's message of "Sun, 5 Nov 2017 07:46:21 +0100")

Michael Haggerty <mhagger@alum.mit.edu> writes:

>> That much I can understand.  But it is not explained why (1) we do
>> not pass old_oid anymore and (2) we do give HAVE_NEW.  
>> 
>> Presumably the justification for (1) is something like "because we
>> are not passing HAVE_OLD, we shouldn't have been passing old_oid at
>> all---it was a harmless bug because lack of HAVE_OLD made the callee
>> ignore old_oid"
>
> It's debatable whether the old code should even be called a bug. The
> callee is documented to ignore `old_oid` if `HAVE_OLD` is not set. But
> it was certainly misleading to pass unneeded information to the function.
>
>>                     (2) is "we need to pass HAVE_NEW, and we have
>> been always passing HAVE_NEW because update->flags at this point is
>> guaranteed to have it" or something like that?
>
> Correct. `REF_DELETING` is set by `lock_ref_for_update()` only if
> `update->flags & REF_HAVE_NEW` was set, and this code is only called if
> `REF_DELETING` is set.

It is is extra nice for you to give answers that are customized for
me like the above to my questions, but the questions came because
the log message did not answer them, so please make sure the next
person who did not read this exchange but reads only the resulting
commit does not have to ask the same question.

Thanks.

  reply	other threads:[~2017-11-06  1:28 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-28  9:49 [PATCH 0/7] Tidy up the constants related to ref_update::flags Michael Haggerty
2017-10-28  9:49 ` [PATCH 1/7] files_transaction_prepare(): don't leak flags to packed transaction Michael Haggerty
2017-10-30  4:44   ` Junio C Hamano
2017-11-05  6:46     ` Michael Haggerty
2017-11-06  1:28       ` Junio C Hamano [this message]
2017-10-28  9:49 ` [PATCH 2/7] prune_ref(): call `ref_transaction_add_update()` directly Michael Haggerty
2017-10-28  9:49 ` [PATCH 3/7] ref_transaction_update(): die on disallowed flags Michael Haggerty
2017-10-28  9:49 ` [PATCH 4/7] ref_transaction_add_update(): remove a check Michael Haggerty
2017-10-28  9:49 ` [PATCH 5/7] refs: tidy up and adjust visibility of the `ref_update` flags Michael Haggerty
2017-11-01  8:18   ` Martin Ågren
2017-11-05  7:19     ` Michael Haggerty
2017-10-28  9:49 ` [PATCH 6/7] refs: rename constant `REF_NODEREF` to `REF_NO_DEREF` Michael Haggerty
2017-10-30  4:56   ` Junio C Hamano
2017-10-28  9:49 ` [PATCH 7/7] refs: rename constant `REF_ISPRUNING` to `REF_IS_PRUNING` Michael Haggerty

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=xmqqshdsjiuz.fsf@gitster.mtv.corp.google.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=mhagger@alum.mit.edu \
    --cc=sunshine@sunshineco.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).