aboutsummaryrefslogtreecommitdiff
path: root/rev-parse.c
diff options
context:
space:
mode:
authorSean <seanlkml@sympatico.ca>2006-05-13 21:43:00 -0400
committerJunio C Hamano <junkio@cox.net>2006-05-14 16:21:02 -0700
commita62be77f5ebdbbd46d6956dc4d07571835588389 (patch)
tree7865bc748d628ae786951067568281fc5b7158dd /rev-parse.c
parent975bf9cf5ad5d440f98f464ae8124609a4835ce1 (diff)
downloadgit-a62be77f5ebdbbd46d6956dc4d07571835588389.tar.gz
git-a62be77f5ebdbbd46d6956dc4d07571835588389.tar.xz
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.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/rev-parse.c b/rev-parse.c
index 62e16af33..4e2d9fbdf 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);