diff options
author | Sean <seanlkml@sympatico.ca> | 2006-05-13 21:43:00 -0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-05-14 16:21:02 -0700 |
commit | a62be77f5ebdbbd46d6956dc4d07571835588389 (patch) | |
tree | 7865bc748d628ae786951067568281fc5b7158dd /rev-parse.c | |
parent | 975bf9cf5ad5d440f98f464ae8124609a4835ce1 (diff) | |
download | git-a62be77f5ebdbbd46d6956dc4d07571835588389.tar.gz |
Add "--branches", "--tags" and "--remotes" options to git-rev-parse.
"git branch" uses "rev-parse --all" and becomes much too slow when
there are many tags (it scans all refs). Use the new "--branches"
option of rev-parse to speed things up.
Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'rev-parse.c')
-rw-r--r-- | rev-parse.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/rev-parse.c b/rev-parse.c index 62e16af33c..4e2d9fbdf6 100644 --- a/rev-parse.c +++ b/rev-parse.c @@ -36,6 +36,7 @@ static int is_rev_argument(const char *arg) "--all", "--bisect", "--dense", + "--branches", "--header", "--max-age=", "--max-count=", @@ -45,7 +46,9 @@ static int is_rev_argument(const char *arg) "--objects-edge", "--parents", "--pretty", + "--remotes", "--sparse", + "--tags", "--topo-order", "--date-order", "--unpacked", @@ -165,7 +168,7 @@ int main(int argc, char **argv) int i, as_is = 0, verify = 0; unsigned char sha1[20]; const char *prefix = setup_git_directory(); - + git_config(git_default_config); for (i = 1; i < argc; i++) { @@ -255,6 +258,18 @@ int main(int argc, char **argv) for_each_ref(show_reference); continue; } + if (!strcmp(arg, "--branches")) { + for_each_branch_ref(show_reference); + continue; + } + if (!strcmp(arg, "--tags")) { + for_each_tag_ref(show_reference); + continue; + } + if (!strcmp(arg, "--remotes")) { + for_each_remote_ref(show_reference); + continue; + } if (!strcmp(arg, "--show-prefix")) { if (prefix) puts(prefix); |