GIT 1.1.3
authorJunio C Hamano <junkio@cox.net>
Mon, 16 Jan 2006 06:22:23 +0000 (22:22 -0800)
committerJunio C Hamano <junkio@cox.net>
Mon, 16 Jan 2006 06:22:23 +0000 (22:22 -0800)
commit.c
describe.c
diffcore.h
index 56efc69f1f4bf1568eaa549bed16f7cc2cd669ba..b8bf35e86081a638137c49e9eabb18c466dec1e5 100644 (file)
--- a/commit.c
+++ b/commit.c
@@ -359,8 +359,10 @@ void clear_commit_marks(struct commit *commit, unsigned int mark)
        parents = commit->parents;
        commit->object.flags &= ~mark;
        while (parents) {
-               if (parents->item && parents->item->object.parsed)
-                       clear_commit_marks(parents->item, mark);
+               struct commit *parent = parents->item;
+               if (parent && parent->object.parsed &&
+                   (parent->object.flags & mark))
+                       clear_commit_marks(parent, mark);
                parents = parents->next;
        }
 }
index 5548a16e4d97690e207a6e7cd0699aa8de73f81f..cc95eb0f213cfc95bcfb2ecf2b5d890963fdb578 100644 (file)
@@ -98,7 +98,7 @@ static int compare_names(const void *_a, const void *_b)
        return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
 }
 
-static void describe(struct commit *cmit)
+static void describe(struct commit *cmit, int last_one)
 {
        struct commit_list *list;
        static int initialized = 0;
@@ -124,7 +124,8 @@ static void describe(struct commit *cmit)
                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;
                }
        }
@@ -159,7 +160,7 @@ int main(int argc, char **argv)
                cmit = lookup_commit_reference(sha1);
                if (!cmit)
                        usage(describe_usage);
-               describe(cmit);
+               describe(cmit, i == argc - 1);
        }
        return 0;
 }
index a38acb13e19e0b3bfe9a377fefe4810c9830a11e..12cd816591aa112b5fe6a773cb5ba2acbf9cf96e 100644 (file)
@@ -15,7 +15,7 @@
  * passed around in one int (high 16-bit for merge and low 16-bit
  * for break).
  */
-#define MAX_SCORE 60000
+#define MAX_SCORE 60000.0
 #define DEFAULT_RENAME_SCORE 30000 /* rename/copy similarity minimum (50%) */
 #define DEFAULT_BREAK_SCORE  30000 /* minimum for break to happen (50%)*/
 #define DEFAULT_MERGE_SCORE  48000 /* maximum for break-merge to happen (80%)*/