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

Re: [PATCH v2] doc: remove misleading documentation on pack names

From
Johannes Berg <johannes@sipsolutions.net>
Date
Jul 22, 2020, 21:14 UTC
Message-ID
<ab8993fc6840765895ad39c59af1e536582e76d7.camel@sipsolutions.net>
In-Reply-To
<xmqq5zaf5ka6.fsf@gitster.c.googlers.com>
On Wed, 2020-07-22 at 14:09 -0700, Junio C Hamano wrote:
> 
> Please avoid "seems to be" and spend a bit of effort digging the
> history especially when we are not in a hurry to get to the definite
> answer.

I did ... but between all the file renames and moves, and not understanding the code very well, I didn't really understand what was going on.

Ok, so maybe "seems to be" was a bit of a cop-out because I do understand that's what git does *now* (having just replicated it in bup), but I have no idea how it got there.

Show 6 quoted lines
> We can go "less explicit", or be a bit more informative by
> saying that it is the trailer hash that is standard practice shared
> across our binary files like the index and the packfile.
> 
> I think this is 1190a1ac (pack-objects: name pack files after
> trailer hash, 2013-12-05).

Indeed, that makes sense. Somehow I didn't come across this commit, but perhaps that's because I was looking too much at index-pack.c (and its various renames).

Show 17 quoted lines
>   It forgot to update the comment before
> write_idx_file() function when it did this change:
> 
>  /*
>   * On entry *sha1 contains the pack content SHA1 hash, on exit it is
>   * the SHA1 hash of sorted object names. The objects array passed in
>   * will be sorted by SHA1 on exit.
>   */
>  const char *write_idx_file(const char *index_name, struct pack_idx_entry **objects,
>  			   int nr_objects, const struct pack_idx_option *opts,
> -			   unsigned char *sha1)
> +			   const unsigned char *sha1)
>  {
> 
> Obviously, after it turned *sha1 into 'const', it no longer is
> possible for it to have anything different from what was passed in
> upon exit.
Indeed :-)
Show 9 quoted lines
> > +Once the index has been created, the hash that goes into the name of
> > +the pack/idx file is printed to stdout. If --stdin was also used then
> > +this is prefixed by either "pack\t", or "keep\t" if a new .keep file
> > +was successfully created. This is useful to remove a .keep file used
> > +as a lock to prevent the race with 'git repack' mentioned above.
> 
> The change is good---I made sure that among these filve lines, what
> changed was only the first one and half lines.  I however would have
> preferred not to see the line rewrapping.

Ok, fair - the text all seemed wrapped "nicely" so I preserved that rather than have one line significantly shorter than the others, but if you prefer that it's fine by me.

Really all I was trying to do is be a *little* more helpful than just point out "the documentation is wrong"...

johannes
Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 4 in “doc: remove misleading documentation on pack names”
  1. doc: remove misleading documentation on pack namesJohannes Berg, Jul 22, 2020
  2. Junio C HamanoJul 22, 2020
  3. Johannes BergJul 22, 2020
  4. Junio C HamanoJul 22, 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.