On Thu, Nov 10, 2011 at 16:15, Junio C Hamano <junio@xxxxxxxxx> wrote: > Johan Herland <johan@xxxxxxxxxxx> writes: >> On Wed, Nov 9, 2011 at 18:26, Junio C Hamano <gitster@xxxxxxxxx> wrote: >>> - "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, <johan@xxxxxxxxxxx> www.herland.net -- 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