Merge branch 'ks/ref-filter-sort-numerically' into maint-2.42

"git for-each-ref --sort='contents:size'" sorts the refs according
to size numerically, giving a ref that points at a blob twelve-byte
(12) long before showing a blob hundred-byte (100) long.

* ks/ref-filter-sort-numerically:
  ref-filter: sort numerically when ":size" is used
This commit is contained in:
Junio C Hamano
2023-11-02 16:53:16 +09:00
2 changed files with 26 additions and 10 deletions

View File

@ -1017,16 +1017,16 @@ test_expect_success 'Verify sorts with raw' '
test_expect_success 'Verify sorts with raw:size' '
cat >expected <<-EOF &&
refs/myblobs/blob8
refs/myblobs/first
refs/myblobs/blob7
refs/heads/main
refs/myblobs/blob4
refs/myblobs/blob1
refs/myblobs/blob2
refs/myblobs/blob3
refs/myblobs/blob5
refs/myblobs/blob6
refs/myblobs/first
refs/mytrees/first
refs/heads/main
EOF
git for-each-ref --format="%(refname)" --sort=raw:size \
refs/heads/main refs/myblobs/ refs/mytrees/first >actual &&
@ -1138,6 +1138,17 @@ test_expect_success 'for-each-ref --format compare with cat-file --batch' '
test_cmp expected actual
'
test_expect_success 'verify sorts with contents:size' '
cat >expect <<-\EOF &&
refs/heads/main
refs/heads/newtag
refs/heads/ambiguous
EOF
git for-each-ref --format="%(refname)" \
--sort=contents:size refs/heads/ >actual &&
test_cmp expect actual
'
test_expect_success 'set up multiple-sort tags' '
for when in 100000 200000
do