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

Re: [PATCH 1/2] doc: update the documentation of pack-objects and repack

From
DRDamien Robert <damien.olivier.robert@gmail.com>
Date
Mar 3, 2020, 21:23 UTC
Message-ID
<20200303212302.znhumbjo7lywyhvh@doriath>
In-Reply-To
<xmqqa74x8e9k.fsf@gitster-ct.c.googlers.com>
From Junio C Hamano, Tue 03 Mar 2020 at 10:49:43 (-0800) :
Show 13 quoted lines
> Damien Robert <damien.olivier.robert@gmail.com> writes:
> 
> > The problem here is that
> > `--keep-true-parents`, `--no-empty`, `--all`, `--reflog`, `--indexed-objects`,
> > `--exclude-promisor-objects`
> > are always passed and not driven by any options of `git repack`, so I
> > did not know where else to put them.
> 
> Ah, I think I may have misread the patch, then.  Why do readers who
> wanted to learn 'git repack' even need to see what the command does
> under the hood, driving what other low-level commands by passing
> what options, in the first place?  Such implementation details can
> change without affecting end-users, no?

So do you suggest instead to remove all references to 'git-pack-objects' in 'git-repack'? As I explained in my previous email, if some options reference pack-objects, I think they should all do for consistency.

I also think that the situation of git-repack is a bit special: first it is a very thin wrapper around git-pack-objects, so the implementation details are not really abstracted from git-pack-objects. Furthermore it is at an intermediate 'level' between a high level command like 'git gc' and a plumbing command like 'git pack-objects'. So the user interested in 'git repack' is probably interested in some low level details.

Now to give an exemple, the doc of git-repack states:
    This command is used to combine all objects that do not currently
    reside in a "pack", into a pack.
This is a high level overview, but the user who knows a bit about Git
internals may wonder what exactly 'all' entails: non local objects, kept
objects, promisor objects, unreachable objects?
Knowing that the default options passed are:
`--keep-true-parents`, `--all`, `--reflog`, `--indexed-objects`, `--exclude-promisor-objects`
answers this questions: it is essentially all objects except unreachable ones.
Here I think that these technical details are more precise that whatever
sentence I could come up with, but I am happy to hear suggestions :)
I agree however that `--non-empty` is an implementation detail.
Previous: Junio C HamanoNext: Junio C Hamano
Message 6 of 15 in “Documentation of pack and repack”
  1. 0/2 Documentation of pack and repackDamien Robert, Feb 28, 2020
  2. 1/2 doc: update the documentation of pack-objects and repackDamien Robert, Feb 28, 2020
  3. Junio C HamanoMar 2, 2020
  4. Damien RobertMar 3, 2020
  5. Junio C HamanoMar 3, 2020
  6. Damien RobertMar 3, 2020
  7. Junio C HamanoMar 3, 2020
  8. 0/3 Documentation of pack and repackDamien Robert, Mar 12, 2020
  9. 1/3 pack-objects: change the name of add_objects_in_unpacked_packsDamien Robert, Mar 12, 2020
  10. 2/3 doc: update the documentation of pack-objects and repackDamien Robert, Mar 12, 2020
  11. 3/3 doc: add a short explanation for git-repack optionsDamien Robert, Mar 12, 2020
  12. Damien RobertMar 25, 2020
  13. Junio C HamanoMar 27, 2020
  14. 2/2 pack-objects: change the name of add_objects_in_unpacked_packsDamien Robert, Feb 28, 2020
  15. Damien RobertFeb 28, 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.