Am 14.05.2009, 14:16 Uhr, schrieb Alex Riesen <raa.lkml@xxxxxxxxx>:
2009/5/14 Matthias Andree <matthias.andree@xxxxxx>:
Am 14.05.2009, 05:18 Uhr, schrieb Junio C Hamano <gitster@xxxxxxxxx>:
No. You can tag any object, and a tag is an object. You can point a
signed tag with your own signed tag to attest your own belief on that
other guy's tag, be it "it's genuine", "the tagged commit suits my
need",
etc.
OK, so I can tag/sign any object, fine.
HOWEVER, I see two problems here (yes, they are corner cases):
#1: git tag -f ("replace tag") fails to "replace" a heaviweight tag if
I try
to replace a tag by itself (or create a cycle by some other means).
It is not a "cycle" ("loop"?) The tags information is the SHA1, not
the tag's name.
The new "foo" is unique in refs (OK), but it's *not unique* in objects
(FAIL), as the old "foo" is referenced by the new "foo" and bears the
same
tag name.
Of course it is unique. Look at tag's SHA1.
Hi Alex,
I'm sorry to say this is irrelevant. Please read my earlier message again,
and completely this time - you appear to have missed crucial parts, as
your next paragraph suggests:
#2: related: git tag -d cannot reliably delete tag objects
Same here: if another tag object references the tag object I'm
deleting, we
only delete the ref, but not the tag object. It doesn't (cannot) become
dangling.
As soon as an object is not referenced anymore by any reference
(including references from refs/tags/), reference log or index it will
be removed by
garbage collection (gc, prune) at the next opportunity.
Irrelevant, because your assumption "not referenced anymore" is false.
This was clearly written in my earlier message, which please see.
--
Matthias Andree
--
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