diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-03 13:07:52 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-03 13:07:52 -0700 |
commit | 960bba0d8c14c9eb76bbb42eebc39eff58fc452b (patch) | |
tree | 11debe811d5fcdc8cc347a4c9aab607bf91fe4cf | |
parent | Add "has_sha1_pack()" function to query whether the object is available in a ... (diff) | |
download | tgif-960bba0d8c14c9eb76bbb42eebc39eff58fc452b.tar.xz |
Add "--all" flag to rev-parse that shows all refs
And make git-rev-list just silently ignore non-commit refs if we're not
asking for all objects.
-rw-r--r-- | rev-list.c | 4 | ||||
-rw-r--r-- | rev-parse.c | 13 |
2 files changed, 14 insertions, 3 deletions
diff --git a/rev-list.c b/rev-list.c index fb75c22bc7..abb611f8b5 100644 --- a/rev-list.c +++ b/rev-list.c @@ -377,7 +377,7 @@ static struct commit *get_commit_reference(const char *name, unsigned int flags) if (object->type == tree_type) { struct tree *tree = (struct tree *)object; if (!tree_objects) - die("%s is a tree object, not a commit", name); + return NULL; if (flags & UNINTERESTING) { mark_tree_uninteresting(tree); return NULL; @@ -392,7 +392,7 @@ static struct commit *get_commit_reference(const char *name, unsigned int flags) if (object->type == blob_type) { struct blob *blob = (struct blob *)object; if (!blob_objects) - die("%s is a blob object, not a commit", name); + return NULL; if (flags & UNINTERESTING) { mark_blob_uninteresting(blob); return NULL; diff --git a/rev-parse.c b/rev-parse.c index c134ffda19..c096dc45ee 100644 --- a/rev-parse.c +++ b/rev-parse.c @@ -5,6 +5,7 @@ */ #include "cache.h" #include "commit.h" +#include "refs.h" static char *def = NULL; static int no_revs = 0; @@ -46,7 +47,7 @@ static int is_rev_argument(const char *arg) } } -static void show_rev(int type, unsigned char *sha1) +static void show_rev(int type, const unsigned char *sha1) { if (no_revs) return; @@ -142,6 +143,12 @@ static void show_default(void) } } +static int show_reference(const char *refname, const unsigned char *sha1) +{ + show_rev(NORMAL, sha1); + return 0; +} + int main(int argc, char **argv) { int i, as_is = 0; @@ -185,6 +192,10 @@ int main(int argc, char **argv) show_type ^= REVERSED; continue; } + if (!strcmp(arg, "--all")) { + for_each_ref(show_reference); + continue; + } show_arg(arg); continue; } |