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

[PATCH v3 0/5] commit-graph: write non-split graphs as read-only

From
Taylor Blau <me@ttaylorr.com>
Date
Apr 29, 2020, 17:36 UTC
Message-ID
<cover.1588181626.git.me@ttaylorr.com>
In-Reply-To
<cover.1587422630.git.me@ttaylorr.com>
Hi,

Here's a brief reroll to incorporate suggestions from Junio and Peff in the sub-thread beginning at [1]. Not much at all has changed since v2, with the exception of:

  * fixing the aforementioned issue by sprinkling in some 'umask 022's
    in throughout the new tests
  * adding in a new final patch to apply the same treatment to
    the 'commit-graph-chain' file
[1]: https://lore.kernel.org/git/xmqqr1w85vtq.fsf@gitster.c.googlers.com/
Taylor Blau (5):
  tempfile.c: introduce 'create_tempfile_mode'
  lockfile.c: introduce 'hold_lock_file_for_update_mode'
  commit-graph.c: write non-split graphs as read-only
  commit-graph.c: ensure graph layers respect core.sharedRepository
  commit-graph.c: make 'commit-graph-chain's read-only
 commit-graph.c                | 12 ++++++++++--
 lockfile.c                    | 18 ++++++++++--------
 lockfile.h                    | 32 ++++++++++++++++++++++++++++----
 t/t5318-commit-graph.sh       | 15 ++++++++++++++-
 t/t5324-split-commit-graph.sh | 24 ++++++++++++++++++++++++
 t/t6600-test-reach.sh         |  2 ++
 tempfile.c                    |  6 +++---
 tempfile.h                    | 10 +++++++++-
 8 files changed, 100 insertions(+), 19 deletions(-)
Range-diff against v2:
1:  03c975b0bd = 1:  03c975b0bd tempfile.c: introduce 'create_tempfile_mode'
2:  c1c84552bc = 2:  c1c84552bc lockfile.c: introduce 'hold_lock_file_for_update_mode'
3:  86cf29ce9c ! 3:  8d5503d2e6 commit-graph.c: write non-split graphs as read-only
    @@ Commit message
         commit-graph file into place and then trying to replace it. For these,
         make these files writable.
    +    Helped-by: Junio C Hamano <gitster@pobox.com>
         Signed-off-by: Taylor Blau <me@ttaylorr.com>
      ## commit-graph.c ##
    @@ commit-graph.c: static int write_commit_graph_file(struct write_commit_graph_con
      	}
      ## t/t5318-commit-graph.sh ##
    +@@ t/t5318-commit-graph.sh: test_expect_success 'setup full repo' '
    + 	test_oid_init
    + '
    +
    ++test_expect_success POSIXPERM 'tweak umask for modebit tests' '
    ++	umask 022
    ++'
    ++
    + test_expect_success 'verify graph with no graph file' '
    + 	cd "$TRASH_DIRECTORY/full" &&
    + 	git commit-graph verify
     @@ t/t5318-commit-graph.sh: test_expect_success 'write graph' '
      	graph_read_expect "3"
      '
4:  f83437f130 ! 4:  4b74e23af2 commit-graph.c: ensure graph layers respect core.sharedRepository
    @@ commit-graph.c: static int write_commit_graph_file(struct write_commit_graph_con
      		hold_lock_file_for_update_mode(&lk, ctx->graph_name,
      ## t/t5324-split-commit-graph.sh ##
    +@@ t/t5324-split-commit-graph.sh: graph_read_expect() {
    + 	test_cmp expect output
    + }
    +
    ++test_expect_success POSIXPERM 'tweak umask for modebit tests' '
    ++	umask 022
    ++'
    ++
    + test_expect_success 'create commits and write commit-graph' '
    + 	for i in $(test_seq 3)
    + 	do
     @@ t/t5324-split-commit-graph.sh: test_expect_success 'split across alternate where alternate is not split' '
      	test_cmp commit-graph .git/objects/info/commit-graph
      '
-:  ---------- > 5:  864c916067 commit-graph.c: make 'commit-graph-chain's read-only
--
2.26.0.113.ge9739cdccc
Previous: Jeff KingNext: Taylor Blau
Message 30 of 36 in “commit-graph: write non-split graphs as read-only”
  1. 0/3 commit-graph: write non-split graphs as read-onlyTaylor Blau, Apr 20, 2020
  2. 1/3 tempfile.c: introduce 'create_tempfile_mode'Taylor Blau, Apr 20, 2020
  3. Junio C HamanoApr 20, 2020
  4. 2/3 lockfile.c: introduce 'hold_lock_file_for_update_mode'Taylor Blau, Apr 20, 2020
  5. 3/3 commit-graph.c: write non-split graphs as read-onlyTaylor Blau, Apr 20, 2020
  6. Junio C HamanoApr 20, 2020
  7. Taylor BlauApr 20, 2020
  8. Junio C HamanoApr 21, 2020
  9. Jeff KingApr 21, 2020
  10. Junio C HamanoApr 21, 2020
  11. 0/4 commit-graph: write non-split graphs as read-onlyTaylor Blau, Apr 27, 2020
  12. 1/4 tempfile.c: introduce 'create_tempfile_mode'Taylor Blau, Apr 27, 2020
  13. 2/4 lockfile.c: introduce 'hold_lock_file_for_update_mode'Taylor Blau, Apr 27, 2020
  14. 3/4 commit-graph.c: write non-split graphs as read-onlyTaylor Blau, Apr 27, 2020
  15. Junio C HamanoApr 27, 2020
  16. Taylor BlauApr 27, 2020
  17. Junio C HamanoApr 28, 2020
  18. Jeff KingApr 28, 2020
  19. Junio C HamanoApr 28, 2020
  20. Jeff KingApr 28, 2020
  21. Junio C HamanoApr 28, 2020
  22. Jeff KingApr 28, 2020
  23. Taylor BlauApr 28, 2020
  24. Jeff KingApr 28, 2020
  25. Junio C HamanoApr 28, 2020
  26. Derrick StoleeApr 29, 2020
  27. 4/4 commit-graph.c: ensure graph layers respect core.sharedRepositoryTaylor Blau, Apr 27, 2020
  28. Taylor BlauApr 27, 2020
  29. Jeff KingApr 27, 2020
  30. 0/5 commit-graph: write non-split graphs as read-onlyTaylor Blau, Apr 29, 2020
  31. 1/5 tempfile.c: introduce 'create_tempfile_mode'Taylor Blau, Apr 29, 2020
  32. 2/5 lockfile.c: introduce 'hold_lock_file_for_update_mode'Taylor Blau, Apr 29, 2020
  33. 3/5 commit-graph.c: write non-split graphs as read-onlyTaylor Blau, Apr 29, 2020
  34. 4/5 commit-graph.c: ensure graph layers respect core.sharedRepositoryTaylor Blau, Apr 29, 2020
  35. 5/5 commit-graph.c: make 'commit-graph-chain's read-onlyTaylor Blau, Apr 29, 2020
  36. Jeff KingMay 1, 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.