Skip to content

Commit

Permalink
t5538: add test to confirm deltas in shallow pushes
Browse files Browse the repository at this point in the history
It can be notoriously difficult to detect if delta bases are being
computed properly during 'git push'. Construct an example where it will
make a kilobyte worth of difference when a delta base is not found. We
can then use the progress indicators to distinguish between bytes and
KiB depending on whether the delta base is found and used.

Signed-off-by: Derrick Stolee <[email protected]>
  • Loading branch information
derrickstolee committed Oct 22, 2024
1 parent 24c5b3a commit cec2f4a
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions t/t5538-push-shallow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -137,4 +137,25 @@ test_expect_success 'push new commit from shallow clone has correct object count
test_grep "Enumerating objects: 1, done." err
'

test_expect_success 'push new commit from shallow clone has good deltas' '
git init base &&
test_seq 1 999 >base/a &&
test_commit -C base initial &&
git -C base add a &&
git -C base commit -m "big a" &&
git clone --depth=1 "file://$(pwd)/base" deltas &&
git -C deltas checkout -b deltas &&
test_seq 1 1000 >deltas/a &&
git -C deltas commit -a -m "bigger a" &&
GIT_TRACE2_PERF="$(pwd)/trace.txt" \
GIT_PROGRESS_DELAY=0 git -C deltas push --progress origin deltas 2>err &&
test_grep "Enumerating objects: 5, done" err &&
# If the delta base is found, then this message uses "bytes".
# If the delta base is not found, then this message uses "KiB".
test_grep "Writing objects: .* bytes" err
'

test_done

0 comments on commit cec2f4a

Please sign in to comment.