Re: [PATCH 00/17] object_id part 14
Michael Haggerty writes: > The magic 100 blames back to our chief magician, Junio: > > 8ac65937d0 Make sure we do not write bogus reflog entries. (2007-01-26) Yup, guilty as charged. cf. "%s %s %s\n" with old and new commit object name and the message will be "2 * len(hash_in_hex) + 4" bytes long (counting the three whitespaces and the terminating NUL), and Shawn's original in 6de08ae6 ("Log ref updates to logs/refs/", 2006-05-17) actually computed this one as "strlen(...) + 2*40+4". 100 was merely me being sloppier than Shawn at 8ac65937 ("Make sure we do not write bogus reflog entries.", 2007-01-26), preferring being sufficient over not wasting even a single byte.
Re: [PATCH 00/17] object_id part 14
On Mon, Jul 9, 2018 at 6:15 AM Derrick Stolee wrote: > On 7/8/2018 11:12 PM, Jacob Keller wrote: > > On Sun, Jul 8, 2018 at 4:39 PM brian m. carlson > > wrote: > >> This is the fourteenth series of patches to switch to using struct > >> object_id and the_hash_algo. This series converts several core pieces > >> to use struct object_id, including the oid* and hex functions. > >> > >> All of these patches have been tested with both SHA-1 and a 256-bit > >> hash. > >> > > I read through the series, and didn't spot anything odd, except for > > the question about reasoning for why we use memcmp directly over using > > hashcmp. I don't think that's any sort of blocker, it just seemed an > > odd decision to me. > > I also read through the series and only found the 100/200 constants > confusing. Not worth blocking on, but I'm CC'ing Michael Haggerty to > comment if he knows how the magic 100 was computed. The magic 100 blames back to our chief magician, Junio: 8ac65937d0 Make sure we do not write bogus reflog entries. (2007-01-26) Since then, as far as I can tell, it's just been copy-pasted forward. It would be easy to compute it precisely based on the length of the two OIDs, represented as hex strings, plus the few extra characters in the format string. Michael
Re: [PATCH 00/17] object_id part 14
On 7/8/2018 11:12 PM, Jacob Keller wrote: On Sun, Jul 8, 2018 at 4:39 PM brian m. carlson wrote: This is the fourteenth series of patches to switch to using struct object_id and the_hash_algo. This series converts several core pieces to use struct object_id, including the oid* and hex functions. All of these patches have been tested with both SHA-1 and a 256-bit hash. I read through the series, and didn't spot anything odd, except for the question about reasoning for why we use memcmp directly over using hashcmp. I don't think that's any sort of blocker, it just seemed an odd decision to me. I also read through the series and only found the 100/200 constants confusing. Not worth blocking on, but I'm CC'ing Michael Haggerty to comment if he knows how the magic 100 was computed. Thanks, -Stolee
Re: [PATCH 00/17] object_id part 14
On Sun, Jul 8, 2018 at 4:39 PM brian m. carlson wrote: > > This is the fourteenth series of patches to switch to using struct > object_id and the_hash_algo. This series converts several core pieces > to use struct object_id, including the oid* and hex functions. > > All of these patches have been tested with both SHA-1 and a 256-bit > hash. > I read through the series, and didn't spot anything odd, except for the question about reasoning for why we use memcmp directly over using hashcmp. I don't think that's any sort of blocker, it just seemed an odd decision to me. Thanks, Jake
[PATCH 00/17] object_id part 14
This is the fourteenth series of patches to switch to using struct object_id and the_hash_algo. This series converts several core pieces to use struct object_id, including the oid* and hex functions. All of these patches have been tested with both SHA-1 and a 256-bit hash. brian m. carlson (17): cache: update object ID functions for the_hash_algo tree-walk: replace hard-coded constants with the_hash_algo hex: switch to using the_hash_algo commit: express tree entry constants in terms of the_hash_algo strbuf: allocate space with GIT_MAX_HEXSZ sha1-name: use the_hash_algo when parsing object names commit: increase commit message buffer size refs/files-backend: use the_hash_algo for writing refs builtin/update-index: convert to using the_hash_algo builtin/update-index: simplify parsing of cacheinfo builtin/fmt-merge-msg: make hash independent builtin/merge: switch to use the_hash_algo builtin/merge-recursive: make hash independent diff: switch GIT_SHA1_HEXSZ to use the_hash_algo log-tree: switch GIT_SHA1_HEXSZ to the_hash_algo->hexsz sha1-file: convert constants to uses of the_hash_algo pretty: switch hard-coded constants to the_hash_algo builtin/fmt-merge-msg.c | 19 ++- builtin/merge-recursive.c | 4 ++-- builtin/merge.c | 11 ++- builtin/update-index.c| 14 -- cache.h | 6 +++--- commit.c | 4 ++-- diff.c| 6 +++--- hex.c | 6 +++--- log-tree.c| 2 +- pretty.c | 4 ++-- refs/files-backend.c | 6 +++--- sha1-file.c | 8 sha1-name.c | 12 +++- strbuf.c | 2 +- tree-walk.c | 3 ++- 15 files changed, 57 insertions(+), 50 deletions(-)