Merge fixes up to GIT 1.1.3
authorJunio C Hamano <junkio@cox.net>
Mon, 16 Jan 2006 06:25:35 +0000 (22:25 -0800)
committerJunio C Hamano <junkio@cox.net>
Mon, 16 Jan 2006 06:25:35 +0000 (22:25 -0800)
1  2 
describe.c

diff --combined describe.c
@@@ -98,20 -98,12 +98,20 @@@ static int compare_names(const void *_a
        return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
  }
  
- static void describe(char *arg)
 -static void describe(struct commit *cmit, int last_one)
++static void describe(char *arg, int last_one)
  {
 +      unsigned char sha1[20];
 +      struct commit *cmit;
        struct commit_list *list;
        static int initialized = 0;
        struct commit_name *n;
  
 +      if (get_sha1(arg, sha1) < 0)
 +              usage(describe_usage);
 +      cmit = lookup_commit_reference(sha1);
 +      if (!cmit)
 +              usage(describe_usage);
 +
        if (!initialized) {
                initialized = 1;
                for_each_ref(get_name);
                if (n) {
                        printf("%s-g%s\n", n->path,
                               find_unique_abbrev(cmit->object.sha1, abbrev));
-                       clear_commit_marks(cmit, SEEN);
+                       if (!last_one)
+                               clear_commit_marks(cmit, SEEN);
                        return;
                }
        }
@@@ -145,27 -138,29 +146,29 @@@ int main(int argc, char **argv
  
        for (i = 1; i < argc; i++) {
                const char *arg = argv[i];
 -              unsigned char sha1[20];
 -              struct commit *cmit;
  
 -              if (!strcmp(arg, "--all")) {
 +              if (*arg != '-')
 +                      break;
 +              else if (!strcmp(arg, "--all"))
                        all = 1;
 -                      continue;
 -              }
 -              if (!strcmp(arg, "--tags")) {
 +              else if (!strcmp(arg, "--tags"))
                        tags = 1;
 -                      continue;
 -              }
 -              if (!strncmp(arg, "--abbrev=", 9)) {
 +              else if (!strncmp(arg, "--abbrev=", 9)) {
                        abbrev = strtoul(arg + 9, NULL, 10);
                        if (abbrev < 4 || 40 <= abbrev)
                                abbrev = DEFAULT_ABBREV;
 -                      continue;
                }
 -              if (get_sha1(arg, sha1) < 0)
 -                      usage(describe_usage);
 -              cmit = lookup_commit_reference(sha1);
 -              if (!cmit)
 +              else
                        usage(describe_usage);
 -              describe(cmit, i == argc - 1);
        }
-               describe("HEAD");
 +
 +      if (i == argc)
-               while (i < argc)
-                       describe(argv[i++]);
++              describe("HEAD", 1);
 +      else
++              while (i < argc) {
++                      describe(argv[i], (i == argc - 1));
++                      i++;
++              }
 +
        return 0;
  }