Add "--all" flag to rev-parse that shows all refs
authorLinus Torvalds <torvalds@g5.osdl.org>
Sun, 3 Jul 2005 20:07:52 +0000 (13:07 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sun, 3 Jul 2005 20:07:52 +0000 (13:07 -0700)
And make git-rev-list just silently ignore non-commit refs if we're not
asking for all objects.

rev-list.c
rev-parse.c

index fb75c22..abb611f 100644 (file)
@@ -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;
index c134ffd..c096dc4 100644 (file)
@@ -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;
                }