git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 03/12] struct ref_update: move "have_old" into "flags"

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Feb 17, 2015, 14:37 UTC
Message-ID
<54E35220.3010302@alum.mit.edu>
In-Reply-To
<xmqqsiebrlez.fsf@gitster.dls.corp.google.com>
On 02/12/2015 08:15 PM, Junio C Hamano wrote:
Show 31 quoted lines
> Stefan Beller <sbeller@google.com> writes:
> 
>> On Thu, Feb 12, 2015 at 3:12 AM, Michael Haggerty <mhagger@alum.mit.edu> wrote:
>>> -       int flags; /* REF_NODEREF? */
>>> -       int have_old; /* 1 if old_sha1 is valid, 0 otherwise */
>>> +       /*
>>> +        * One or more of REF_HAVE_OLD, REF_NODEREF,
>>> +        * REF_DELETING, and REF_IS_PRUNING:
>>> +        */
>>> +       int flags;
>>
>> Nit:
>> I'd find it more readable if it would be:
>>     /*
>>      * One or more of
>>      * REF_HAVE_OLD,
>>      * REF_NODEREF,
>>      * REF_DELETING,
>>      * REF_IS_PRUNING:
>>      * whose definition is found at the top of this file.
>>      */
> 
> I wouldn't do either, though, as you would have to keep repeating
> yourself here and over there.  Wouldn't it be sufficient to:
> 
>  - Have a header that says "these are bits meant to go to struct
>    ref_update.flags" at the beginning of series of #define's;
> 
>  - Say "ref_update.flags bits are defined above" here.  The phrasing
>    can be "One or more of REF_HAVE_OLD, etc. defined above." as long
>    as it is clear that this is not meant to be an exhausitive list.

This would be an easy change but for the fact that REF_NODEREF is defined in refs.h whereas the other constants are internal to refs.c. If it's OK with you guys, I'd rather leave it the way it is for now and come back to it later.

For example I want to rename the constants to REF_NODEREF -> REF_NO_DEREF and REF_ISPRUNING -> REF_IS_PRUNING [1], but am leaving that for when the refs code is not in so much flux. I can reorganize the constants and docs then.

Michael

[1] As I type this I realize that the comment misspells the name of REF_ISPRUNING. I'll fix that, too.

-- 
Michael Haggerty
mhagger@alum.mit.edu
Previous: Junio C HamanoNext: Junio C Hamano
Message 7 of 27 in “Allow reference values to be checked in a transaction”
  1. 00/12 Allow reference values to be checked in a transactionMichael Haggerty, Feb 12, 2015
  2. 01/12 refs: move REF_DELETING to refs.cMichael Haggerty, Feb 12, 2015
  3. 02/12 refs: remove the gap in the REF_* constant valuesMichael Haggerty, Feb 12, 2015
  4. 03/12 struct ref_update: move "have_old" into "flags"Michael Haggerty, Feb 12, 2015
  5. Stefan BellerFeb 12, 2015
  6. Junio C HamanoFeb 12, 2015
  7. Michael HaggertyFeb 17, 2015
  8. Junio C HamanoFeb 17, 2015
  9. 04/12 ref_transaction_update(): remove "have_old" parameterMichael Haggerty, Feb 12, 2015
  10. Junio C HamanoFeb 12, 2015
  11. Michael HaggertyFeb 13, 2015
  12. Junio C HamanoFeb 13, 2015
  13. 05/12 ref_transaction_delete(): remove "have_old" parameterMichael Haggerty, Feb 12, 2015
  14. 06/12 commit: add tests of commit racesMichael Haggerty, Feb 12, 2015
  15. Stefan BellerFeb 12, 2015
  16. Michael HaggertyFeb 17, 2015
  17. Junio C HamanoFeb 12, 2015
  18. Michael HaggertyFeb 17, 2015
  19. 07/12 commit: avoid race when creating orphan commitsMichael Haggerty, Feb 12, 2015
  20. Junio C HamanoFeb 12, 2015
  21. 08/12 ref_transaction_create(): check that new_sha1 is validMichael Haggerty, Feb 12, 2015
  22. 09/12 ref_transaction_delete(): check that old_sha1 is not null_sha1Michael Haggerty, Feb 12, 2015
  23. 10/12 ref_transaction_verify(): new function to check a reference's valueMichael Haggerty, Feb 12, 2015
  24. Stefan BellerFeb 12, 2015
  25. 11/12 update_ref(): improve documentationMichael Haggerty, Feb 12, 2015
  26. 12/12 refs.h: Remove duplication in function docstringsMichael Haggerty, Feb 12, 2015
  27. Junio C HamanoFeb 12, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.