Code

Merge branch 'maint'
authorJunio C Hamano <gitster@pobox.com>
Sat, 2 Aug 2008 06:55:51 +0000 (23:55 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 2 Aug 2008 06:55:51 +0000 (23:55 -0700)
1  2 
builtin-revert.c

diff --combined builtin-revert.c
index e9da870d22c14c32a0e0a6cb71b933c79a2d8b53,bde28b2c4df9e0d79589a594a8d93103a4f7bd39..27881e94937dd79b9a0524eb2d9770427ec4f4fb
   */
  
  static const char * const revert_usage[] = {
 -      "git-revert [options] <commit-ish>",
 +      "git revert [options] <commit-ish>",
        NULL
  };
  
  static const char * const cherry_pick_usage[] = {
 -      "git-cherry-pick [options] <commit-ish>",
 +      "git cherry-pick [options] <commit-ish>",
        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);
         * 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;
                }
        }
  
 -      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)) {