X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=commit-tree.c;h=c0b07f89286c3f6cceae8122b4c3142c8efaf8e1;hb=cef661fc799a3a13ffdea4a3f69f1acd295de53d;hp=71fce3f357f2287acdeb0e6c62122f4b19e677af;hpb=b70070f0208be5d5d7b7a3b259e7ff3da19307d0;p=git.git diff --git a/commit-tree.c b/commit-tree.c index 71fce3f3..c0b07f89 100644 --- a/commit-tree.c +++ b/commit-tree.c @@ -268,15 +268,13 @@ static void check_valid(unsigned char *sha1, const char *expect) } /* - * Having more than two parents may be strange, but hey, there's - * no conceptual reason why the file format couldn't accept multi-way - * merges. It might be the "union" of several packages, for example. - * - * I don't really expect that to happen, but this is here to make - * it clear that _conceptually_ it's ok.. + * Having more than two parents is not strange at all, and this is + * how multi-way merges are represented. */ #define MAXPARENT (16) +static char *commit_tree_usage = "commit-tree [-p ]* < changelog"; + int main(int argc, char **argv) { int i, len; @@ -296,14 +294,14 @@ int main(int argc, char **argv) unsigned int size; if (argc < 2 || get_sha1_hex(argv[1], tree_sha1) < 0) - usage("commit-tree [-p ]* < changelog"); + usage(commit_tree_usage); check_valid(tree_sha1, "tree"); for (i = 2; i < argc; i += 2) { char *a, *b; a = argv[i]; b = argv[i+1]; if (!b || strcmp(a, "-p") || get_sha1_hex(b, parent_sha1[parents])) - usage("commit-tree [-p ]* < changelog"); + usage(commit_tree_usage); check_valid(parent_sha1[parents], "commit"); parents++; } @@ -317,8 +315,10 @@ int main(int argc, char **argv) memcpy(realemail, pw->pw_name, len); realemail[len] = '@'; gethostname(realemail+len+1, sizeof(realemail)-len-1); - strcat(realemail, "."); - getdomainname(realemail+strlen(realemail), sizeof(realemail)-strlen(realemail)-1); + if (!strchr(realemail+len+1, '.')) { + strcat(realemail, "."); + getdomainname(realemail+strlen(realemail), sizeof(realemail)-strlen(realemail)-1); + } time(&now); tm = localtime(&now);