Skip to content

Commit 92c830d

Browse files
committed
Merge branch 'kk/maint-for-each-ref-multi-sort' into maint-1.7.11
"git for-each-ref" did not honor multiple "--sort=<key>" arguments correctly. * kk/maint-for-each-ref-multi-sort: for-each-ref: Fix sort with multiple keys t6300: test sort with multiple keys
2 parents e09e402 + 3b51222 commit 92c830d

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

builtin/for-each-ref.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -962,7 +962,9 @@ static int opt_parse_sort(const struct option *opt, const char *arg, int unset)
962962
if (!arg) /* should --no-sort void the list ? */
963963
return -1;
964964

965-
*sort_tail = s = xcalloc(1, sizeof(*s));
965+
s = xcalloc(1, sizeof(*s));
966+
s->next = *sort_tail;
967+
*sort_tail = s;
966968

967969
if (*arg == '-') {
968970
s->reverse = 1;

t/t6300-for-each-ref.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,4 +456,14 @@ test_atom refs/tags/signed-long contents "subject line
456456
body contents
457457
$sig"
458458

459+
cat >expected <<\EOF
460+
408fe76d02a785a006c2e9c669b7be5589ede96d <[email protected]> refs/tags/master
461+
90b5ebede4899eda64893bc2a4c8f1d6fb6dfc40 <[email protected]> refs/tags/bogo
462+
EOF
463+
464+
test_expect_success 'Verify sort with multiple keys' '
465+
git for-each-ref --format="%(objectname) %(taggeremail) %(refname)" --sort=objectname --sort=taggeremail \
466+
refs/tags/bogo refs/tags/master > actual &&
467+
test_cmp expected actual
468+
'
459469
test_done

0 commit comments

Comments
 (0)