There has been a lot of interesting discussion on this topic. Some of that involves some decently significant changes from v3, so I wanted to summarize my understanding of the feedback and seek out more feedback from reviewers before rolling v4.

If we have consensus on these topics, then I'll re-roll on Friday, Feb 16th. Please let me know if you are planning on reviewing v3 and need more time than that.


* Graph Storage:

    - Move the graph files to a different directory than the "pack" directory. Currently considering ".git/objects/info"

    - Change the "--pack-dir" command-line arguments to "--object-dir" arguments.

    - Keep a "graph_head" file, but expand on the reasons (as discussed [1]) in the commit message.

    - Adjust "graph_head" and the "--graph-id" argument to use a full filename (assuming based in {object-dir}/info/).

    - Remove "pack_dir" from struct commit_graph and load_commit_graph_one().

    - Drop "git commit-graph clear" subcommand.


* Graph format:

    - remove redundant hash type & length bytes in favor of a combined type/length enum byte.

    - emphasize the fact that the file can contain chunk ids unknown to Git and will be ignored on read. Also fix the read code to not die() on unknown chunk ids.

    - Don't write the large-edge chunk if it is going to be empty. Modify tests to verify this.


* Tests:

    - Format (last apostrophe on new line)

    - Bug check (--stdin-commits should limit by reachability)


* Other style fixes.


[1] https://public-inbox.org/git/99543db0-26e4-8daa-a580-b618497e4...@gmail.com/

Reply via email to