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

[PATCH v2 0/3] checkout: fix two bugs on count of updated entries

From
Matheus Tavares <matheus.bernardino@usp.br>
Date
Jul 14, 2022, 11:49 UTC
Message-ID
<cover.1657799213.git.matheus.bernardino@usp.br>
In-Reply-To
<cover.1657685948.git.matheus.bernardino@usp.br>

Changed since v1: small simplification at test t2080, to use test_oid_to_path and test_stdout_line_count.

v1 cover letter:

This fixes two issues at the "Updated %d path from the index" report at the end of a `git checkout <paths>` operation:

  - Delayed checkout entries being counted twice.
  - Failed entries being included in the count.

The first two patches add tests and the third implements the fix. I came across this while working at parallel checkout, but only managed to get back to it now.

Matheus Tavares (3):
  checkout: document bug where delayed checkout counts entries twice
  checkout: show bug about failed entries being included in final report
  checkout: fix two bugs on the final count of updated entries
 builtin/checkout.c                  |  2 +-
 convert.h                           |  6 +++-
 entry.c                             | 34 +++++++++++---------
 entry.h                             |  3 +-
 parallel-checkout.c                 | 10 ++++--
 parallel-checkout.h                 |  4 ++-
 t/lib-parallel-checkout.sh          |  6 +++-
 t/t0021-conversion.sh               | 22 +++++++++++++
 t/t2080-parallel-checkout-basics.sh | 48 +++++++++++++++++++++++++++++
 unpack-trees.c                      |  2 +-
 10 files changed, 113 insertions(+), 24 deletions(-)
Range-diff against v1:
1:  694aeb19f5 = 1:  694aeb19f5 checkout: document bug where delayed checkout counts entries twice
2:  8da18a0a8c ! 2:  4541e90224 checkout: show bug about failed entries being included in final report
    @@ t/t2080-parallel-checkout-basics.sh: test_expect_success SYMLINKS 'parallel chec
     +		git commit -m files &&
     +
     +		a_blob="$(git rev-parse :parallel-ineligible.a)" &&
    -+		dir="$(echo "$a_blob" | cut -c 1-2)" &&
    -+		file="$(echo "$a_blob" | cut -c 3-)" &&
    -+		rm ".git/objects/$dir/$file" &&
    ++		rm .git/objects/$(test_oid_to_path $a_blob) &&
     +		rm *.a *.b &&
     +
     +		test_checkout_workers 2 test_must_fail git checkout . 2>err &&
    @@ t/t2080-parallel-checkout-basics.sh: test_expect_success SYMLINKS 'parallel chec
     +		#  - parallel-*.a: the blob will be missing
     +		#
     +		grep "Updated 3 paths from the index" err &&
    -+		test "$(ls *.b | wc -l)" -eq 3 &&
    -+		test "$(ls *.a | wc -l)" -eq 0
    ++		test_stdout_line_count = 3 ls *.b &&
    ++		! ls *.a
     +	)
     +'
     +
3:  5e9452be66 = 3:  b182d74e96 checkout: fix two bugs on the final count of updated entries
-- 
2.37.0
Previous: Matheus TavaresNext: Matheus Tavares
Message 7 of 11 in “checkout: fix two bugs on count of updated entries”
  1. 0/3 checkout: fix two bugs on count of updated entriesMatheus Tavares, Jul 13, 2022
  2. 1/3 checkout: document bug where delayed checkout counts entries twiceMatheus Tavares, Jul 13, 2022
  3. Junio C HamanoJul 13, 2022
  4. 2/3 checkout: show bug about failed entries being included in final reportMatheus Tavares, Jul 13, 2022
  5. Ævar Arnfjörð BjarmasonJul 13, 2022
  6. 3/3 checkout: fix two bugs on the final count of updated entriesMatheus Tavares, Jul 13, 2022
  7. 0/3 checkout: fix two bugs on count of updated entriesMatheus Tavares, Jul 14, 2022
  8. 1/3 checkout: document bug where delayed checkout counts entries twiceMatheus Tavares, Jul 14, 2022
  9. 2/3 checkout: show bug about failed entries being included in final reportMatheus Tavares, Jul 14, 2022
  10. 3/3 checkout: fix two bugs on the final count of updated entriesMatheus Tavares, Jul 14, 2022
  11. Matheus TavaresJul 13, 2022

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.