diff options
-rw-r--r-- | builtin-for-each-ref.c | 2 | ||||
-rwxr-xr-x | t/t6300-for-each-ref.sh | 22 |
2 files changed, 23 insertions, 1 deletions
diff --git a/builtin-for-each-ref.c b/builtin-for-each-ref.c index da8c7948e..e909e66be 100644 --- a/builtin-for-each-ref.c +++ b/builtin-for-each-ref.c @@ -847,7 +847,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix) OPT_GROUP(""), OPT_INTEGER( 0 , "count", &maxcount, "show only <n> matched refs"), OPT_STRING( 0 , "format", &format, "format", "format to use for the output"), - OPT_CALLBACK(0 , "sort", &sort_tail, "key", + OPT_CALLBACK(0 , "sort", sort_tail, "key", "field name to sort on", &opt_parse_sort), OPT_END(), }; diff --git a/t/t6300-for-each-ref.sh b/t/t6300-for-each-ref.sh index d0809eb65..c72263505 100755 --- a/t/t6300-for-each-ref.sh +++ b/t/t6300-for-each-ref.sh @@ -148,4 +148,26 @@ test_expect_success 'Check format "rfc2822" date fields output' ' git diff expected actual ' +cat >expected <<\EOF +refs/heads/master +refs/tags/testtag +EOF + +test_expect_success 'Verify ascending sort' ' + git-for-each-ref --format="%(refname)" --sort=refname >actual && + git diff expected actual +' + + +cat >expected <<\EOF +refs/tags/testtag +refs/heads/master +EOF + +test_expect_success 'Verify descending sort' ' + git-for-each-ref --format="%(refname)" --sort=-refname >actual && + git diff expected actual +' + + test_done |