branch.c: use 'ref-filter' APIs
commitaedcb7dc75e5c260f20bebe14925f3ac4841b03d
authorKarthik Nayak <karthik.188@gmail.com>
Wed, 23 Sep 2015 18:11:12 +0000 (23 23:41 +0530)
committerJunio C Hamano <gitster@pobox.com>
Fri, 25 Sep 2015 15:54:54 +0000 (25 08:54 -0700)
tree7f2f9491b16883c75017c3c244b16114d2d1ab25
parent1511b22d40d102f397104858a617aa1662bb1c98
branch.c: use 'ref-filter' APIs

Make 'branch.c' use 'ref-filter' APIs for iterating through refs
sorting. This removes most of the code used in 'branch.c' replacing it
with calls to the 'ref-filter' library.

Make 'branch.c' use the 'filter_refs()' function provided by 'ref-filter'
to filter out tags based on the options set.

We provide a sorting option provided for 'branch.c' by using the
sorting options provided by 'ref-filter'. Also by default, we sort by
'refname'.  Since 'HEAD' is alphabatically before 'refs/...' we end up
with an array consisting of the 'HEAD' ref then the local branches and
finally the remote-tracking branches.

Also remove the 'ignore' variable from ref_array_item as it was
previously used for the '--merged' option and now that is handled by
ref-filter.

Modify some of the tests in t1430 to check the stderr for a warning
regarding the broken ref. This is done as ref-filter throws a warning
for broken refs rather than directly printing them.

Add tests and documentation for the same.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-branch.txt
builtin/branch.c
ref-filter.c
ref-filter.h
t/t1430-bad-ref-name.sh
t/t3203-branch-output.sh