|
|
|
@ -5,6 +5,7 @@
@@ -5,6 +5,7 @@
|
|
|
|
|
#include "color.h" |
|
|
|
|
#include "argv-array.h" |
|
|
|
|
#include "parse-options.h" |
|
|
|
|
#include "dir.h" |
|
|
|
|
|
|
|
|
|
static const char* show_branch_usage[] = { |
|
|
|
|
N_("git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n" |
|
|
|
@ -421,14 +422,6 @@ static int append_tag_ref(const char *refname, const struct object_id *oid,
@@ -421,14 +422,6 @@ static int append_tag_ref(const char *refname, const struct object_id *oid,
|
|
|
|
|
|
|
|
|
|
static const char *match_ref_pattern = NULL; |
|
|
|
|
static int match_ref_slash = 0; |
|
|
|
|
static int count_slash(const char *s) |
|
|
|
|
{ |
|
|
|
|
int cnt = 0; |
|
|
|
|
while (*s) |
|
|
|
|
if (*s++ == '/') |
|
|
|
|
cnt++; |
|
|
|
|
return cnt; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int append_matching_ref(const char *refname, const struct object_id *oid, |
|
|
|
|
int flag, void *cb_data) |
|
|
|
@ -438,7 +431,7 @@ static int append_matching_ref(const char *refname, const struct object_id *oid,
@@ -438,7 +431,7 @@ static int append_matching_ref(const char *refname, const struct object_id *oid,
|
|
|
|
|
* refs/tags/v0.99.9a and friends. |
|
|
|
|
*/ |
|
|
|
|
const char *tail; |
|
|
|
|
int slash = count_slash(refname); |
|
|
|
|
int slash = count_slashes(refname); |
|
|
|
|
for (tail = refname; *tail && match_ref_slash < slash; ) |
|
|
|
|
if (*tail++ == '/') |
|
|
|
|
slash--; |
|
|
|
@ -529,7 +522,7 @@ static void append_one_rev(const char *av)
@@ -529,7 +522,7 @@ static void append_one_rev(const char *av)
|
|
|
|
|
int saved_matches = ref_name_cnt; |
|
|
|
|
|
|
|
|
|
match_ref_pattern = av; |
|
|
|
|
match_ref_slash = count_slash(av); |
|
|
|
|
match_ref_slash = count_slashes(av); |
|
|
|
|
for_each_ref(append_matching_ref, NULL); |
|
|
|
|
if (saved_matches == ref_name_cnt && |
|
|
|
|
ref_name_cnt < MAX_REVS) |
|
|
|
|