Re: [PATCHv5 00/14] git notes
From: Geert Bosch <hidden>
Date: 2016-06-15 22:47:23
On Sep 7, 2009, at 22:26, Johan Herland wrote:
Yet another iteration of the 'git notes' feature. Rebased on top of 'next': - Patches 1-9 are unchanged from (patches 1-7, 11-12 of) the last iteration. - Patch 10 teaches the notes code to free its data structures on request. - Patch 11 introduces the 16-tree notes lookup code that handles SHA1-based fanout schemes. This is pretty much unchanged from patch 8 in the previous iteration. - Patch 12 adds selftests that verify correct parsing of notes trees with various SHA1-based fanouts. - Patch 13 introduces a flexible parser for a variety of date-based and SHA1-based fanout schemes. This is the interesting part, as far as this iteration is concerned. - Patch 14 adds selftests that verify correct parsing of notes trees with various date-based fanouts. Note that the series does not yet include code for _writing_ notes into a suitably structured notes tree. That will be done in a later iteration. I have some performance numbers that I will send in a separate email.
Hi Johan, I've been following this series with some interest, and am curious why notes need to be stored in a separate data structure from regular objects. Note that I'm not questioning the design (and certainly would not want to, this late in the process), rather I'd like to learn about the reasons. I've wondered about this as well in the context of refs, reflog and git config. In a completely unified model, every change to the repository (except for the index, pack indices and working directory) would be a commit of the .git/ directory (again excluding indices). One of the advantages (besides allowing configuration management of the repository itself in addition to its contents) would be that no locking is ever required. This would be just an implementation detail without necessarily affecting the user interface other than direct inspection/modification of the .git directory, which is a similar to the move to packed refs. Again, I'm not proposing to change anything, just wondering about design rationale. -Geert