git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4 4/5] Add reftable library

From
Han-Wen Nienhuys <hanwen@google.com>
Date
Feb 10, 2020, 13:16 UTC
Message-ID
<CAFQ2z_P+sdd5+46Ov_CO8ae4j_3aA4ahdVR5D_K1qKSQ-q+OcQ@mail.gmail.com>
In-Reply-To
<20200207001612.GF6573@camp.crustytoothpaste.net>

On Fri, Feb 7, 2020 at 1:16 AM brian m. carlson <sandals@crustytoothpaste.net> wrote:

Show 12 quoted lines
> > +
> > +Bugfixes should be accompanied by a test and applied to upstream project at
> > +https://github.com/google/reftable.
>
> I think this particular statement may be problematic.  The upstream
> project requires a CLA, which is a non-starter for many folks.  I don't
> think we can expect folks who are working on Git to necessarily send
> patches upstream with that condition.
>
> For example, if I end up needing to patch this series to work with
> SHA-256, I'm happy for Google to have my changes under the BSD License,
> but I won't be signing a CLA.

The CLA requirement is something our Open Source lawyers insist on, and it's not for me to renege on. AFAIU, the CLA is essentially a legally sound formulation of "I'm happy for Google to have my changes under the BSD License"

Show 6 quoted lines
> > +#define SHA1_SIZE 20
> > +#define SHA256_SIZE 32
>
> I'd rather we didn't hard-code these values here.  If you need a size
> suitable for allocation, we have GIT_MAX_RAWSZ and GIT_MAX_HEXSZ.  Those
> are guaranteed to be the right size for any future hash.

this code is structured as a standalone library so the same code can be integrated into libgit2 unchanged, and can be unit-tested without needing complex scaffolding.

As a result some data (eg. SHA1_SIZE) is duplicate. It also comes with its own strbuf library.

Show 10 quoted lines
> > +     {
> > +             struct merged_table m = {
> > +                     .stack = stack,
> > +                     .stack_len = n,
> > +                     .min = first_min,
> > +                     .max = last_max,
> > +                     .hash_size = SHA1_SIZE,
>
> This is going to cause problems with SHA-256.  We'd want to write this
> as the_hash_algo->rawsz, since it can change at runtime.

As this is within the library, the hash size should be injected somewhere. I don't see huge problems here (the hash size could be part of the 'struct write_options'), but until we have properly defined how reftable will mark the on-disk files as SHA-256, it will only supports SHA1. I intend to work set the file format in motion, once this SHA1 version is accepted into git-core.

There was one question you might be able to answer, though. Can repositories exist in dual hash configuration, i.e. where the ref database must store both SHA1 and SHA256 hashes?

> > +static byte zero[SHA256_SIZE] = {};
>
> It would be better to refer to null_oid here.
See above.
Show 21 quoted lines
>
> > +#ifndef REFTABLE_H
> > +#define REFTABLE_H
> > +
> > +#include "system.h"
> > +
> > +typedef uint8_t byte;
>
> I think we typically prefer writing "unsigned char" or "uint8_t" instead
> of "byte".
>
> > +typedef byte bool;
>
> I suspect this is going to cause a whole host of sadness if somebody
> ever includes stdbool.h, or if that header ever gets included by an
> OS-specific header, since bool is a #define constant for the built-in
> type _Bool.
>
> We typically use int for booleans, but I'm not opposed to using
> stdbool.h for it on those systems that we know have it (which, in 2020,
> is probably all of them).
fixed in https://github.com/google/reftable/commit/a0c794609f2ce8114f014f7260093d4ffdde0d5d
Show 15 quoted lines
> > +struct writer *new_writer(int (*writer_func)(void *, byte *, int),
> > +                       void *writer_arg, struct write_options *opts)
> > +{
> > +     struct writer *wp = calloc(sizeof(struct writer), 1);
> > +     options_set_defaults(opts);
> > +     if (opts->block_size >= (1 << 24)) {
> > +             /* TODO - error return? */
> > +             abort();
> > +     }
> > +     wp->hash_size = SHA1_SIZE;
>
> Another SHA-256 problem.
>
> Once this series has good test coverage, I'm happy to send a patch that
> squashes in SHA-256 support if you don't want to implement it yourself

There is really nothing to implement. The C library will accept hashes of arbitrary size (hence the hash_size field you commented on before), but it just needs a tiny bit of plumbing for the library user to specify the wanted hash size, and a change to the documented format to store it in the file format header.

-- 
Han-Wen Nienhuys - Google Munich
I work 80%. Don't expect answers from me on Fridays.
--
Google Germany GmbH, Erika-Mann-Strasse 33, 80636 Munich
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
Previous: brian m. carlsonNext: brian m. carlson
Message 70 of 409 in “Reftable support git-core”
  1. 0/5 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Jan 23, 2020
  2. 1/5 setup.c: enable repo detection for reftableHan-Wen Nienhuys via GitGitGadget, Jan 23, 2020
  3. 3/5 Document how ref iterators and symrefs interactHan-Wen Nienhuys via GitGitGadget, Jan 23, 2020
  4. 2/5 create .git/refs in files-backend.cHan-Wen Nienhuys via GitGitGadget, Jan 23, 2020
  5. 5/5 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Jan 23, 2020
  6. 4/5 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Jan 23, 2020
  7. Junio C HamanoJan 23, 2020
  8. Han-Wen NienhuysJan 27, 2020
  9. Han-Wen NienhuysJan 27, 2020
  10. Stephan BeyerJan 23, 2020
  11. Han-Wen NienhuysJan 27, 2020
  12. 0/5 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Jan 27, 2020
  13. 1/5 setup.c: enable repo detection for reftableHan-Wen Nienhuys via GitGitGadget, Jan 27, 2020
  14. 2/5 create .git/refs in files-backend.cHan-Wen Nienhuys via GitGitGadget, Jan 27, 2020
  15. Junio C HamanoJan 27, 2020
  16. Han-Wen NienhuysJan 28, 2020
  17. Junio C HamanoJan 30, 2020
  18. 3/5 Document how ref iterators and symrefs interactHan-Wen Nienhuys via GitGitGadget, Jan 27, 2020
  19. Junio C HamanoJan 27, 2020
  20. Han-Wen NienhuysJan 28, 2020
  21. Junio C HamanoJan 28, 2020
  22. 5/5 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Jan 27, 2020
  23. Jeff KingJan 28, 2020
  24. Martin FickJan 28, 2020
  25. Jeff KingJan 29, 2020
  26. Martin FickJan 29, 2020
  27. Han-Wen NienhuysJan 29, 2020
  28. Martin FickJan 29, 2020
  29. Han-Wen NienhuysJan 29, 2020
  30. Jeff KingJan 30, 2020
  31. Han-Wen NienhuysFeb 3, 2020
  32. Jeff KingFeb 3, 2020
  33. Han-Wen NienhuysFeb 3, 2020
  34. Han-Wen NienhuysFeb 4, 2020
  35. Jeff KingFeb 4, 2020
  36. Han-Wen NienhuysFeb 4, 2020
  37. Junio C HamanoJan 29, 2020
  38. Han-Wen NienhuysJan 28, 2020
  39. Jeff KingJan 29, 2020
  40. Junio C HamanoJan 29, 2020
  41. Han-Wen NienhuysJan 29, 2020
  42. Jeff KingJan 30, 2020
  43. Han-Wen NienhuysFeb 4, 2020
  44. Jeff KingFeb 4, 2020
  45. Han-Wen NienhuysFeb 4, 2020
  46. Jeff KingFeb 4, 2020
  47. 4/5 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Jan 27, 2020
  48. 0/6 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Feb 4, 2020
  49. 2/6 setup.c: enable repo detection for reftableHan-Wen Nienhuys via GitGitGadget, Feb 4, 2020
  50. Han-Wen NienhuysFeb 4, 2020
  51. 1/6 refs.h: clarify reflog iteration orderHan-Wen Nienhuys via GitGitGadget, Feb 4, 2020
  52. 3/6 create .git/refs in files-backend.cHan-Wen Nienhuys via GitGitGadget, Feb 4, 2020
  53. Junio C HamanoFeb 4, 2020
  54. Han-Wen NienhuysFeb 5, 2020
  55. SZEDER GáborFeb 5, 2020
  56. Jeff KingFeb 5, 2020
  57. 4/6 refs: document how ref_iterator_advance_fn should handle symrefsHan-Wen Nienhuys via GitGitGadget, Feb 4, 2020
  58. 6/6 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Feb 4, 2020
  59. 5/6 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Feb 4, 2020
  60. 0/5 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Feb 6, 2020
  61. 2/5 create .git/refs in files-backend.cHan-Wen Nienhuys via GitGitGadget, Feb 6, 2020
  62. 1/5 refs.h: clarify reflog iteration orderHan-Wen Nienhuys via GitGitGadget, Feb 6, 2020
  63. 3/5 refs: document how ref_iterator_advance_fn should handle symrefsHan-Wen Nienhuys via GitGitGadget, Feb 6, 2020
  64. 5/5 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Feb 6, 2020
  65. brian m. carlsonFeb 6, 2020
  66. Han-Wen NienhuysFeb 10, 2020
  67. 4/5 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Feb 6, 2020
  68. Junio C HamanoFeb 6, 2020
  69. brian m. carlsonFeb 7, 2020
  70. Han-Wen NienhuysFeb 10, 2020
  71. brian m. carlsonFeb 11, 2020
  72. Han-Wen NienhuysFeb 11, 2020
  73. Junio C HamanoFeb 11, 2020
  74. Han-Wen NienhuysFeb 11, 2020
  75. brian m. carlsonFeb 11, 2020
  76. Han-Wen NienhuysFeb 18, 2020
  77. Han-Wen NienhuysFeb 11, 2020
  78. Jonathan NiederFeb 20, 2020
  79. brian m. carlsonFeb 6, 2020
  80. 0/5 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Feb 10, 2020
  81. 1/5 refs.h: clarify reflog iteration orderHan-Wen Nienhuys via GitGitGadget, Feb 10, 2020
  82. 2/5 create .git/refs in files-backend.cHan-Wen Nienhuys via GitGitGadget, Feb 10, 2020
  83. 3/5 refs: document how ref_iterator_advance_fn should handle symrefsHan-Wen Nienhuys via GitGitGadget, Feb 10, 2020
  84. 5/5 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Feb 10, 2020
  85. 4/5 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Feb 10, 2020
  86. 0/5 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Feb 18, 2020
  87. 2/5 create .git/refs in files-backend.cHan-Wen Nienhuys via GitGitGadget, Feb 18, 2020
  88. 1/5 refs.h: clarify reflog iteration orderHan-Wen Nienhuys via GitGitGadget, Feb 18, 2020
  89. 3/5 refs: document how ref_iterator_advance_fn should handle symrefsHan-Wen Nienhuys via GitGitGadget, Feb 18, 2020
  90. 5/5 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Feb 18, 2020
  91. 4/5 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Feb 18, 2020
  92. Junio C HamanoFeb 18, 2020
  93. Jeff KingFeb 19, 2020
  94. Han-Wen NienhuysFeb 19, 2020
  95. Junio C HamanoFeb 18, 2020
  96. Han-Wen NienhuysFeb 19, 2020
  97. Junio C HamanoFeb 19, 2020
  98. Han-Wen NienhuysFeb 19, 2020
  99. Junio C HamanoFeb 19, 2020
  100. Han-Wen NienhuysFeb 19, 2020
  101. Junio C HamanoFeb 19, 2020
  102. Jeff KingFeb 20, 2020
  103. Jonathan NiederFeb 21, 2020
  104. Han-Wen NienhuysFeb 26, 2020
  105. Junio C HamanoFeb 26, 2020
  106. brian m. carlsonFeb 27, 2020
  107. 0/6 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Feb 26, 2020
  108. 3/6 refs: document how ref_iterator_advance_fn should handle symrefsHan-Wen Nienhuys via GitGitGadget, Feb 26, 2020
  109. 1/6 refs.h: clarify reflog iteration orderHan-Wen Nienhuys via GitGitGadget, Feb 26, 2020
  110. 2/6 create .git/refs in files-backend.cHan-Wen Nienhuys via GitGitGadget, Feb 26, 2020
  111. 4/6 reftable: file format documentationJonathan Nieder via GitGitGadget, Feb 26, 2020
  112. 6/6 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Feb 26, 2020
  113. Junio C HamanoFeb 26, 2020
  114. Han-Wen NienhuysFeb 26, 2020
  115. Junio C HamanoFeb 26, 2020
  116. Han-Wen NienhuysFeb 27, 2020
  117. Junio C HamanoFeb 27, 2020
  118. Han-Wen NienhuysFeb 27, 2020
  119. Junio C HamanoFeb 26, 2020
  120. Han-Wen NienhuysFeb 27, 2020
  121. Junio C HamanoFeb 27, 2020
  122. 5/6 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Feb 26, 2020
  123. Junio C HamanoFeb 26, 2020
  124. Jonathan NiederMar 24, 2020
  125. 0/9 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Apr 1, 2020
  126. 1/9 refs.h: clarify reflog iteration orderHan-Wen Nienhuys via GitGitGadget, Apr 1, 2020
  127. 4/9 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, Apr 1, 2020
  128. 3/9 refs: document how ref_iterator_advance_fn should handle symrefsHan-Wen Nienhuys via GitGitGadget, Apr 1, 2020
  129. 2/9 create .git/refs in files-backend.cHan-Wen Nienhuys via GitGitGadget, Apr 1, 2020
  130. 6/9 reftable: define version 2 of the spec to accomodate SHA256Han-Wen Nienhuys via GitGitGadget, Apr 1, 2020
  131. 7/9 reftable: clarify how empty tables should be writtenHan-Wen Nienhuys via GitGitGadget, Apr 1, 2020
  132. 9/9 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Apr 1, 2020
  133. 5/9 reftable: file format documentationJonathan Nieder via GitGitGadget, Apr 1, 2020
  134. 8/9 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Apr 1, 2020
  135. Junio C HamanoApr 15, 2020
  136. Danh DoanApr 18, 2020
  137. 00/10 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Apr 20, 2020
  138. 02/10 Iterate over the "refs/" namespace in for_each_[raw]refHan-Wen Nienhuys via GitGitGadget, Apr 20, 2020
  139. 03/10 create .git/refs in files-backend.cHan-Wen Nienhuys via GitGitGadget, Apr 20, 2020
  140. 01/10 refs.h: clarify reflog iteration orderHan-Wen Nienhuys via GitGitGadget, Apr 20, 2020
  141. 05/10 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, Apr 20, 2020
  142. 04/10 refs: document how ref_iterator_advance_fn should handle symrefsHan-Wen Nienhuys via GitGitGadget, Apr 20, 2020
  143. 07/10 reftable: define version 2 of the spec to accomodate SHA256Han-Wen Nienhuys via GitGitGadget, Apr 20, 2020
  144. 06/10 reftable: file format documentationJonathan Nieder via GitGitGadget, Apr 20, 2020
  145. 08/10 reftable: clarify how empty tables should be writtenHan-Wen Nienhuys via GitGitGadget, Apr 20, 2020
  146. 10/10 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Apr 20, 2020
  147. 09/10 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Apr 20, 2020
  148. Junio C HamanoApr 20, 2020
  149. Han-Wen NienhuysApr 21, 2020
  150. Johannes SchindelinApr 22, 2020
  151. Junio C HamanoApr 21, 2020
  152. Han-Wen NienhuysApr 23, 2020
  153. Junio C HamanoApr 23, 2020
  154. Junio C HamanoApr 23, 2020
  155. Johannes SchindelinApr 25, 2020
  156. 00/12 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  157. 08/12 reftable: clarify how empty tables should be writtenHan-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  158. 07/12 reftable: define version 2 of the spec to accomodate SHA256Han-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  159. 10/12 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  160. 02/12 Iterate over the "refs/" namespace in for_each_[raw]refHan-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  161. Emily ShafferApr 30, 2020
  162. Han-Wen NienhuysMay 4, 2020
  163. Pseudo ref handling (was Re: [PATCH v10 02/12] Iterate over the "refs/" namespace in for_each_[raw]ref)Han-Wen Nienhuys, May 5, 2020
  164. 05/12 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  165. 12/12 t: use update-ref and show-ref to reading/writing refsHan-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  166. 11/12 Add some reftable testing infrastructureHan-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  167. 03/12 create .git/refs in files-backend.cHan-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  168. Emily ShafferApr 30, 2020
  169. Junio C HamanoApr 30, 2020
  170. Han-Wen NienhuysMay 4, 2020
  171. 01/12 refs.h: clarify reflog iteration orderHan-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  172. 06/12 reftable: file format documentationJonathan Nieder via GitGitGadget, Apr 27, 2020
  173. 04/12 refs: document how ref_iterator_advance_fn should handle symrefsHan-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  174. 09/12 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Apr 27, 2020
  175. Danh DoanApr 28, 2020
  176. Junio C HamanoApr 28, 2020
  177. Junio C HamanoApr 28, 2020
  178. Han-Wen NienhuysApr 28, 2020
  179. Han-Wen NienhuysApr 28, 2020
  180. 00/12 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, May 4, 2020
  181. 01/12 refs.h: clarify reflog iteration orderHan-Wen Nienhuys via GitGitGadget, May 4, 2020
  182. 02/12 Iterate over the "refs/" namespace in for_each_[raw]refHan-Wen Nienhuys via GitGitGadget, May 4, 2020
  183. 04/12 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, May 4, 2020
  184. 06/12 reftable: define version 2 of the spec to accomodate SHA256Han-Wen Nienhuys via GitGitGadget, May 4, 2020
  185. 03/12 refs: document how ref_iterator_advance_fn should handle symrefsHan-Wen Nienhuys via GitGitGadget, May 4, 2020
  186. 07/12 reftable: clarify how empty tables should be writtenHan-Wen Nienhuys via GitGitGadget, May 4, 2020
  187. 10/12 vcxproj: adjust for the reftable changesJohannes Schindelin via GitGitGadget, May 4, 2020
  188. 05/12 reftable: file format documentationJonathan Nieder via GitGitGadget, May 4, 2020
  189. 11/12 Add some reftable testing infrastructureHan-Wen Nienhuys via GitGitGadget, May 4, 2020
  190. 09/12 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, May 4, 2020
  191. 12/12 t: use update-ref and show-ref to reading/writing refsHan-Wen Nienhuys via GitGitGadget, May 4, 2020
  192. 08/12 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, May 4, 2020
  193. Junio C HamanoMay 6, 2020
  194. 00/12 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, May 7, 2020
  195. 01/12 refs.h: clarify reflog iteration orderHan-Wen Nienhuys via GitGitGadget, May 7, 2020
  196. Junio C HamanoMay 8, 2020
  197. 02/12 Iterate over the "refs/" namespace in for_each_[raw]refHan-Wen Nienhuys via GitGitGadget, May 7, 2020
  198. Junio C HamanoMay 8, 2020
  199. Han-Wen NienhuysMay 11, 2020
  200. 03/12 refs: document how ref_iterator_advance_fn should handle symrefsHan-Wen Nienhuys via GitGitGadget, May 7, 2020
  201. Junio C HamanoMay 8, 2020
  202. Han-Wen NienhuysMay 11, 2020
  203. Junio C HamanoMay 11, 2020
  204. Han-Wen NienhuysMay 11, 2020
  205. 06/12 reftable: define version 2 of the spec to accomodate SHA256Han-Wen Nienhuys via GitGitGadget, May 7, 2020
  206. Junio C HamanoMay 8, 2020
  207. 07/12 reftable: clarify how empty tables should be writtenHan-Wen Nienhuys via GitGitGadget, May 7, 2020
  208. 05/12 reftable: file format documentationJonathan Nieder via GitGitGadget, May 7, 2020
  209. 04/12 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, May 7, 2020
  210. 10/12 vcxproj: adjust for the reftable changesJohannes Schindelin via GitGitGadget, May 7, 2020
  211. 09/12 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, May 7, 2020
  212. 08/12 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, May 7, 2020
  213. 11/12 t: use update-ref and show-ref to reading/writing refsHan-Wen Nienhuys via GitGitGadget, May 7, 2020
  214. 12/12 Add some reftable testing infrastructureHan-Wen Nienhuys via GitGitGadget, May 7, 2020
  215. 00/13 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, May 11, 2020
  216. 01/13 refs.h: clarify reflog iteration orderHan-Wen Nienhuys via GitGitGadget, May 11, 2020
  217. Junio C HamanoMay 18, 2020
  218. 03/13 refs: document how ref_iterator_advance_fn should handle symrefsHan-Wen Nienhuys via GitGitGadget, May 11, 2020
  219. Junio C HamanoMay 18, 2020
  220. 02/13 t: use update-ref and show-ref to reading/writing refsHan-Wen Nienhuys via GitGitGadget, May 11, 2020
  221. Junio C HamanoMay 18, 2020
  222. 05/13 reftable: clarify how empty tables should be writtenHan-Wen Nienhuys via GitGitGadget, May 11, 2020
  223. Junio C HamanoMay 19, 2020
  224. 06/13 reftable: define version 2 of the spec to accomodate SHA256Han-Wen Nienhuys via GitGitGadget, May 11, 2020
  225. Junio C HamanoMay 19, 2020
  226. Han-Wen NienhuysMay 20, 2020
  227. Junio C HamanoMay 20, 2020
  228. 07/13 Write pseudorefs through ref backends.Han-Wen Nienhuys via GitGitGadget, May 11, 2020
  229. Phillip WoodMay 12, 2020
  230. Han-Wen NienhuysMay 12, 2020
  231. Phillip WoodMay 13, 2020
  232. Phillip WoodMay 13, 2020
  233. 04/13 reftable: file format documentationJonathan Nieder via GitGitGadget, May 11, 2020
  234. Junio C HamanoMay 19, 2020
  235. Han-Wen NienhuysMay 20, 2020
  236. Han-Wen NienhuysMay 20, 2020
  237. Han-Wen NienhuysMay 20, 2020
  238. Junio C HamanoMay 20, 2020
  239. Jonathan NiederMay 20, 2020
  240. 08/13 Iterate over the "refs/" namespace in for_each_[raw]refHan-Wen Nienhuys via GitGitGadget, May 11, 2020
  241. 09/13 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, May 11, 2020
  242. 10/13 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, May 11, 2020
  243. 12/13 vcxproj: adjust for the reftable changesJohannes Schindelin via GitGitGadget, May 11, 2020
  244. 11/13 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, May 11, 2020
  245. Junio C HamanoMay 13, 2020
  246. 13/13 Add some reftable testing infrastructureHan-Wen Nienhuys via GitGitGadget, May 11, 2020
  247. Junio C HamanoMay 13, 2020
  248. Han-Wen NienhuysMay 19, 2020
  249. Junio C HamanoMay 19, 2020
  250. Junio C HamanoMay 12, 2020
  251. Han-Wen NienhuysMay 12, 2020
  252. Junio C HamanoMay 13, 2020
  253. 0/9 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, May 18, 2020
  254. 2/9 Move REF_LOG_ONLY to refs-internal.hHan-Wen Nienhuys via GitGitGadget, May 18, 2020
  255. 1/9 Write pseudorefs through ref backends.Han-Wen Nienhuys via GitGitGadget, May 18, 2020
  256. 3/9 Iterate over the "refs/" namespace in for_each_[raw]refHan-Wen Nienhuys via GitGitGadget, May 18, 2020
  257. 4/9 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, May 18, 2020
  258. 7/9 Add GIT_DEBUG_REFS debugging mechanismHan-Wen Nienhuys via GitGitGadget, May 18, 2020
  259. 8/9 vcxproj: adjust for the reftable changesJohannes Schindelin via GitGitGadget, May 18, 2020
  260. 9/9 Add reftable testing infrastructureHan-Wen Nienhuys via GitGitGadget, May 18, 2020
  261. 6/9 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, May 18, 2020
  262. 5/9 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, May 18, 2020
  263. 00/13 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  264. 13/13 Add reftable testing infrastructureHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  265. 10/13 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  266. 09/13 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  267. 11/13 Add GIT_DEBUG_REFS debugging mechanismHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  268. 08/13 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  269. 12/13 vcxproj: adjust for the reftable changesJohannes Schindelin via GitGitGadget, May 28, 2020
  270. 07/13 Iterate over the "refs/" namespace in for_each_[raw]refHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  271. 06/13 Move REF_LOG_ONLY to refs-internal.hHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  272. 05/13 Treat REVERT_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  273. 02/13 Make refs_ref_exists publicHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  274. 04/13 Treat CHERRY_PICK_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  275. 03/13 Treat BISECT_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, May 28, 2020
  276. Junio C HamanoMay 28, 2020
  277. 01/13 Write pseudorefs through ref backends.Han-Wen Nienhuys via GitGitGadget, May 28, 2020
  278. Junio C HamanoMay 28, 2020
  279. Junio C HamanoMay 28, 2020
  280. 00/14 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  281. 02/14 Make refs_ref_exists publicHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  282. Phillip WoodJun 9, 2020
  283. Han-Wen NienhuysJun 10, 2020
  284. Phillip WoodJun 11, 2020
  285. Phillip WoodJun 12, 2020
  286. Han-Wen NienhuysJun 15, 2020
  287. 01/14 Write pseudorefs through ref backends.Han-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  288. Phillip WoodJun 9, 2020
  289. 03/14 Treat BISECT_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  290. 05/14 Treat REVERT_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  291. 04/14 Treat CHERRY_PICK_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  292. 06/14 Move REF_LOG_ONLY to refs-internal.hHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  293. 07/14 Iterate over the "refs/" namespace in for_each_[raw]refHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  294. 08/14 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  295. 11/14 Hookup unittests for the reftable library.Han-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  296. Junio C HamanoJun 8, 2020
  297. Fixup! Add t/helper/test-reftable.chanwen@google.com, Jun 9, 2020
  298. Junio C HamanoJun 9, 2020
  299. 10/14 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  300. 13/14 vcxproj: adjust for the reftable changesJohannes Schindelin via GitGitGadget, Jun 5, 2020
  301. 09/14 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  302. 14/14 Add reftable testing infrastructureHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  303. 12/14 Add GIT_DEBUG_REFS debugging mechanismHan-Wen Nienhuys via GitGitGadget, Jun 5, 2020
  304. Junio C HamanoJun 9, 2020
  305. Han-Wen NienhuysJun 10, 2020
  306. Junio C HamanoJun 10, 2020
  307. Junio C HamanoJun 10, 2020
  308. Johannes SchindelinJun 10, 2020
  309. Han-Wen NienhuysJun 10, 2020
  310. Johannes SchindelinJun 10, 2020
  311. Han-Wen NienhuysJun 10, 2020
  312. 00/17 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  313. 01/17 lib-t6000.sh: write tag using git-update-refHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  314. 02/17 checkout: add '\n' to reflog messageHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  315. 04/17 Make refs_ref_exists publicHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  316. 03/17 Write pseudorefs through ref backends.Han-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  317. 05/17 Treat BISECT_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  318. 07/17 Treat REVERT_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  319. 12/17 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  320. SZEDER GáborJun 19, 2020
  321. 14/17 Add GIT_DEBUG_REFS debugging mechanismHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  322. 15/17 vcxproj: adjust for the reftable changesJohannes Schindelin via GitGitGadget, Jun 16, 2020
  323. 17/17 Add "test-tool dump-reftable" command.Han-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  324. 13/17 Hookup unittests for the reftable library.Han-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  325. 11/17 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  326. 16/17 Add reftable testing infrastructureHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  327. SZEDER GáborJun 19, 2020
  328. 10/17 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  329. 09/17 Iterate over the "refs/" namespace in for_each_[raw]refHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  330. 06/17 Treat CHERRY_PICK_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  331. 08/17 Move REF_LOG_ONLY to refs-internal.hHan-Wen Nienhuys via GitGitGadget, Jun 16, 2020
  332. 00/19 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  333. 02/19 checkout: add '\n' to reflog messageHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  334. 04/19 Make refs_ref_exists publicHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  335. 05/19 Treat BISECT_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  336. 06/19 Treat CHERRY_PICK_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  337. 07/19 Treat REVERT_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  338. 08/19 Move REF_LOG_ONLY to refs-internal.hHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  339. 03/19 Write pseudorefs through ref backends.Han-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  340. 01/19 lib-t6000.sh: write tag using git-update-refHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  341. 12/19 Add standalone build infrastructure for reftableHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  342. 18/19 Add reftable testing infrastructureHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  343. 11/19 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  344. 09/19 Iterate over the "refs/" namespace in for_each_[raw]refHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  345. 19/19 Add "test-tool dump-reftable" command.Han-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  346. 17/19 git-prompt: prepare for reftable refs backendSZEDER Gábor via GitGitGadget, Jun 22, 2020
  347. 10/19 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  348. 15/19 Add GIT_DEBUG_REFS debugging mechanismHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  349. 13/19 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  350. 14/19 Hookup unittests for the reftable library.Han-Wen Nienhuys via GitGitGadget, Jun 22, 2020
  351. 16/19 vcxproj: adjust for the reftable changesJohannes Schindelin via GitGitGadget, Jun 22, 2020
  352. 00/20 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  353. 05/20 Make refs_ref_exists publicHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  354. 09/20 Move REF_LOG_ONLY to refs-internal.hHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  355. 11/20 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  356. 03/20 checkout: add '\n' to reflog messageHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  357. Junio C HamanoJun 29, 2020
  358. Han-Wen NienhuysJun 30, 2020
  359. Junio C HamanoJun 30, 2020
  360. Han-Wen NienhuysJul 1, 2020
  361. Re* [PATCH v19 03/20] checkout: add '\n' to reflog messageJunio C Hamano, Jul 1, 2020
  362. Han-Wen NienhuysJul 6, 2020
  363. Junio C HamanoJul 6, 2020
  364. 17/20 vcxproj: adjust for the reftable changesJohannes Schindelin via GitGitGadget, Jun 29, 2020
  365. 08/20 Treat REVERT_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  366. 10/20 Iterate over the "refs/" namespace in for_each_[raw]refHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  367. 20/20 Add "test-tool dump-reftable" command.Han-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  368. 19/20 Add reftable testing infrastructureHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  369. 16/20 Add GIT_DEBUG_REFS debugging mechanismHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  370. 18/20 git-prompt: prepare for reftable refs backendSZEDER Gábor via GitGitGadget, Jun 29, 2020
  371. 14/20 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  372. 12/20 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  373. 15/20 Hookup unittests for the reftable library.Han-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  374. 13/20 Add standalone build infrastructure for reftableHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  375. 07/20 Treat CHERRY_PICK_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  376. 06/20 Treat BISECT_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  377. 04/20 Write pseudorefs through ref backends.Han-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  378. 01/20 lib-t6000.sh: write tag using git-update-refHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  379. 02/20 t3432: use git-reflog to inspect the reflog for HEADHan-Wen Nienhuys via GitGitGadget, Jun 29, 2020
  380. Denton LiuJun 30, 2020
  381. Junio C HamanoJun 29, 2020
  382. Han-Wen NienhuysJun 30, 2020
  383. Junio C HamanoJul 1, 2020
  384. Han-Wen NienhuysJul 1, 2020
  385. Junio C HamanoJul 1, 2020
  386. 00/21 Reftable support git-coreHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  387. 01/21 refs: add \t to reflog in the files backendHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  388. 03/21 t1400: use git rev-parse for testing PSEUDOREF existenceHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  389. 04/21 Modify pseudo refs through ref backend storageHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  390. 05/21 Make HEAD a PSEUDOREF rather than PER_WORKTREE.Han-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  391. 06/21 Make refs_ref_exists publicHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  392. 07/21 Treat CHERRY_PICK_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  393. 08/21 Treat REVERT_HEAD as a pseudo refHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  394. 10/21 Iteration over entire ref namespace is iterating over "refs/"Han-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  395. 02/21 Split off reading loose ref data in separate functionHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  396. 09/21 Move REF_LOG_ONLY to refs-internal.hHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  397. 13/21 Add standalone build infrastructure for reftableHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  398. 11/21 Add .gitattributes for the reftable/ directoryHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  399. 15/21 Read FETCH_HEAD as loose refHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  400. 16/21 Hookup unittests for the reftable library.Han-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  401. 18/21 vcxproj: adjust for the reftable changesJohannes Schindelin via GitGitGadget, Jul 31, 2020
  402. 14/21 Reftable support for git-coreHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  403. 19/21 git-prompt: prepare for reftable refs backendSZEDER Gábor via GitGitGadget, Jul 31, 2020
  404. 21/21 Add "test-tool dump-reftable" command.Han-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  405. 20/21 Add reftable testing infrastructureHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  406. 17/21 Add GIT_DEBUG_REFS debugging mechanismHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  407. 12/21 Add reftable libraryHan-Wen Nienhuys via GitGitGadget, Jul 31, 2020
  408. Jonathan NiederFeb 26, 2020
  409. Han-Wen NienhuysFeb 26, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.