diff options
| author | Junio C Hamano <junkio@cox.net> | 2006-01-15 22:25:35 -0800 | 
|---|---|---|
| committer | Junio C Hamano <junkio@cox.net> | 2006-01-15 22:25:35 -0800 | 
| commit | fec9ebf16c948bcb4a8b88d0173ee63584bcde76 (patch) | |
| tree | 2cd39bed392fc4919068219cdb8ee2278a53bf15 | |
| parent | 0620db36f85788193de2102884ff8dd94222660f (diff) | |
| parent | 8a263aeb4f913e04e18248eb4d370157f1d253e6 (diff) | |
| download | git-fec9ebf16c948bcb4a8b88d0173ee63584bcde76.tar.gz | |
Merge fixes up to GIT 1.1.3
| -rw-r--r-- | commit.c | 6 | ||||
| -rw-r--r-- | describe.c | 13 | 
2 files changed, 12 insertions, 7 deletions
@@ -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;  	}  } diff --git a/describe.c b/describe.c index fabadb827f..4866510eaf 100644 --- a/describe.c +++ b/describe.c @@ -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(char *arg) +static void describe(char *arg, int last_one)  {  	unsigned char sha1[20];  	struct commit *cmit; @@ -132,7 +132,8 @@ static void describe(char *arg)  		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;  		}  	} @@ -162,10 +163,12 @@ int main(int argc, char **argv)  	}  	if (i == argc) -		describe("HEAD"); +		describe("HEAD", 1);  	else -		while (i < argc) -			describe(argv[i++]); +		while (i < argc) { +			describe(argv[i], (i == argc - 1)); +			i++; +		}  	return 0;  }  | 
