On Thu, Nov 10, 2011 at 16:15, Junio C Hamano [off-list ref] wrote:
Johan Herland [off-list ref] writes:
quoted
On Wed, Nov 9, 2011 at 18:26, Junio C Hamano [off-list ref] wrote:
quoted
- "git notes" is represented as a commit that records a tree that holds
the entire mapping from commit to its annotations, and the only way to
transferr it is to send it together with its history as a whole. It
does not have the nice auto-following property that transfers only the
relevant annotations.
True. However, consider these mitigating factors:
...
My point is that although "notes" might end up transferring more
annotations than strictly necessary, I believe that in practice all the
notes being transferred are already (or will soon become) relevant.
Sorry, but I do not think you are considering what would happen when you
have many branches with different purposes, whose commits near tips will
never get merged with each other. "automatic following" semantics like
what "git fetch" does for signed tags is absolutely necessary in such a
case, and the above are not mitigating factors at all in that context.
What about having one notes ref per branch? If/when the branch is merged,
the associated notes ref containing the annotations for the commits on that
branch would be merged as well (using "git notes merge").
Sure, using one notes ref per branch is more expensive than a single notes
ref, but it's still cheaper than one ref per signed commit (which is what we
get when using annotated tags). And it prevents the added code and
complexity of the timestamped mapping approach.
...Johan
--
Johan Herland, [off-list ref]
www.herland.net