rev-parse --branches/--tags/--remotes=pattern
Since local branch, tags and remote tracking branch namespaces are most often used, add shortcut notations for globbing those in manner similar to --glob option. With this, one can express the "what I have but origin doesn't?" as: 'git log --branches --not --remotes=origin' Original-idea-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
d08bae7e22
commit
b09fe971de
12
refs.c
12
refs.c
@ -690,15 +690,18 @@ int for_each_replace_ref(each_ref_fn fn, void *cb_data)
|
||||
return do_for_each_ref("refs/replace/", fn, 13, 0, cb_data);
|
||||
}
|
||||
|
||||
int for_each_glob_ref(each_ref_fn fn, const char *pattern, void *cb_data)
|
||||
int for_each_glob_ref_in(each_ref_fn fn, const char *pattern,
|
||||
const char *prefix, void *cb_data)
|
||||
{
|
||||
struct strbuf real_pattern = STRBUF_INIT;
|
||||
struct ref_filter filter;
|
||||
const char *has_glob_specials;
|
||||
int ret;
|
||||
|
||||
if (prefixcmp(pattern, "refs/"))
|
||||
if (!prefix && prefixcmp(pattern, "refs/"))
|
||||
strbuf_addstr(&real_pattern, "refs/");
|
||||
else if (prefix)
|
||||
strbuf_addstr(&real_pattern, prefix);
|
||||
strbuf_addstr(&real_pattern, pattern);
|
||||
|
||||
has_glob_specials = strpbrk(pattern, "?*[");
|
||||
@ -719,6 +722,11 @@ int for_each_glob_ref(each_ref_fn fn, const char *pattern, void *cb_data)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int for_each_glob_ref(each_ref_fn fn, const char *pattern, void *cb_data)
|
||||
{
|
||||
return for_each_glob_ref_in(fn, pattern, NULL, cb_data);
|
||||
}
|
||||
|
||||
int for_each_rawref(each_ref_fn fn, void *cb_data)
|
||||
{
|
||||
return do_for_each_ref("refs/", fn, 0,
|
||||
|
Reference in New Issue
Block a user