Skip to contentSkip to conversation

git describe candidate filtering

DISCUSSION Eric Blake 3 participants 3 messages Jun 15, 2016

lore
Share & tools
lore

Eric Blake

author
#0 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Would it be possible to add an option to git-describe that limits the candidate tags to those matching a glob pattern or regular expression? I've got a repository imported from CVS which has a number of less interesting tags for events such as branch creation, but I'm only interested in describing the current commit relative to tags matching v[0-9]\.[0-9]*, rather than the closest tag of any spelling.

- --
Don't work too hard, make some time for fun as well!

Eric Blake [email protected]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHYMJQ84KuGfSFAYARAsd8AKCwuCZsxZBcV3nd849Saxvch/OZiACfagTe mitsZEVhXy7hyBg0KALQG0o=
=Qq8n
-----END PGP SIGNATURE-----

#1 lore raw
Quoted 6 lines · Eric Blake

Would it be possible to add an option to git-describe that limits the candidate tags to those matching a glob pattern or regular expression? I've got a repository imported from CVS which has a number of less interesting tags for events such as branch creation, but I'm only interested in describing the current commit relative to tags matching v[0-9]\.[0-9]*, rather than the closest tag of any spelling.

Sure, it shouldn't be too difficult, just need to alter the get_name() function to add the item with add_to_known_names() only if it matches the pattern. Take a look at builtin-describe.c around line 74...

We only match things that were "added". So if you don't add a tag via add_to_known_names() then git-describe won't return it.

However that's only true for the standard case; for --contains its a different story as we are actually passing everything to name-rev.

Signature · 1 line
Shawn.
#2 lore raw
Quoted 5 lines · Shawn O. Pearce

We only match things that were "added". So if you don't add a tag via add_to_known_names() then git-describe won't return it.

However that's only true for the standard case; for --contains its a different story as we are actually passing everything to name-rev.

A good news is that name-rev is supposed to respect the name limiter.