From: Junio C Hamano Date: Sat, 2 Aug 2008 06:55:51 +0000 (-0700) Subject: Merge branch 'maint' X-Git-Tag: v1.6.0-rc2~41 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/2b603260f325b895baa20867bd45c8e251f19b78?ds=inline;hp=-c Merge branch 'maint' --- 2b603260f325b895baa20867bd45c8e251f19b78 diff --combined builtin-revert.c index e9da870d22,bde28b2c4d..27881e9493 --- a/builtin-revert.c +++ b/builtin-revert.c @@@ -24,12 -24,12 +24,12 @@@ */ static const char * const revert_usage[] = { - "git-revert [options] ", + "git revert [options] ", NULL }; static const char * const cherry_pick_usage[] = { - "git-cherry-pick [options] ", + "git cherry-pick [options] ", NULL }; @@@ -180,7 -180,7 +180,7 @@@ static void set_author_ident_env(const email++; timestamp = strchr(email, '>'); if (!timestamp) - die ("Could not extract author email from %s", + die ("Could not extract author time from %s", sha1_to_hex(commit->object.sha1)); *timestamp = '\0'; for (timestamp++; *timestamp && isspace(*timestamp); @@@ -206,7 -206,6 +206,7 @@@ static int merge_recursive(const char * { char buffer[256]; const char *argv[6]; + int i = 0; sprintf(buffer, "GITHEAD_%s", head_sha1); setenv(buffer, head_name, 1); @@@ -219,13 -218,12 +219,13 @@@ * and $prev on top of us (when reverting), or the change between * $prev and $commit on top of us (when cherry-picking or replaying). */ - argv[0] = "merge-recursive"; - argv[1] = base_sha1; - argv[2] = "--"; - argv[3] = head_sha1; - argv[4] = next_sha1; - argv[5] = NULL; + argv[i++] = "merge-recursive"; + if (base_sha1) + argv[i++] = base_sha1; + argv[i++] = "--"; + argv[i++] = head_sha1; + argv[i++] = next_sha1; + argv[i++] = NULL; return run_command_v_opt(argv, RUN_COMMAND_NO_STDIN | RUN_GIT_CMD); } @@@ -299,12 -297,9 +299,12 @@@ static int revert_or_cherry_pick(int ar discard_cache(); } - if (!commit->parents) - die ("Cannot %s a root commit", me); - if (commit->parents->next) { + if (!commit->parents) { + if (action == REVERT) + die ("Cannot revert a root commit"); + parent = NULL; + } + else if (commit->parents->next) { /* Reverting or cherry-picking a merge commit */ int cnt; struct commit_list *p; @@@ -373,8 -368,7 +373,8 @@@ } } - if (merge_recursive(sha1_to_hex(base->object.sha1), + if (merge_recursive(base == NULL ? + NULL : sha1_to_hex(base->object.sha1), sha1_to_hex(head), "HEAD", sha1_to_hex(next->object.sha1), oneline) || write_cache_as_tree(head, 0, NULL)) {