Re: [PATCH 0/9] Extending the shelf life of "git describe" output

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano <gitster@xxxxxxxxx> writes:

> This series teaches the sha1_name machinery to only look for
> unambigous commit object names when the caller knows that the name
> must refer to a commit object.
[...]
>  - You will further be able to extend the lifetime of uniqueness of
>    "git describe" output if you take advantage of the "tagname" or
>    "number". The current parser does not do this.
>
>    There are a number of ways to do this, but probably the cleanest
>    would be to (you only can do this when you have "tagname" tag
>    locally; you may not have it) pass the tag and the number down to
>    the find_short_*() routines with commit_only set, and when they
>    find a commit that match the prefix, inside is_commit_object()
>    test, check also that the commit reaches the given tag object in
>    the given number steps (otherwise discard it as it is not the one
>    you are looking for).
>
>  - Some callers that are involved in the get_sha1_1() callpath know
>    that the name they have must be referring to commit objects (e.g.
>    get_parent() and get_nth_ancestor()).  It might be worthwhile to
>    let get_sha1_1() know that the caller knows the name it is
>    feeding must refer to a commit object, and have the uniqueness
>    logic take advantage of it.
>
>    I think that most of these callers are expecting to parse a
>    committish and the user may have given them the name of a a tag
>    object that peels to a commit, so you would need to add a new
>    GET_SHORT_COMMITTISH that allows any committish, in addition to
>    the GET_SHORT_COMMIT_ONLY this series adds, if you want to do
>    this.

Two random thoughts:

* The commit_only flag is only one thing you may "know" about the
  parsing, as you state above.  E.g., we may know the distance from a
  certain tag.  Given this, wouldn't it be cleaner to patch a struct
  things_we_know into the call chain instead of only a flag?

* The treeish:path syntax also "knows" that the left side must be or
  peel to a tree, so it makes no sense to go looking for a blob.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]