cherry-pick: picking a tag that resolves to a commit is OK
authorJunio C Hamano <gitster@pobox.com>
Thu, 9 May 2013 20:27:49 +0000 (13:27 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 9 May 2013 20:29:53 +0000 (13:29 -0700)
Earlier, 21246dbb9e0a (cherry-pick: make sure all input objects are
commits, 2013-04-11) tried to catch an unlikely "git cherry-pick $blob"
as an error, but broke a more important use case to cherry-pick a
tag that points at a commit.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c

index 61fdb68..f2c9d98 100644 (file)
@@ -1077,10 +1077,10 @@ int sequencer_pick_revisions(struct replay_opts *opts)
                        continue;
 
                if (!get_sha1(name, sha1)) {
-                       enum object_type type = sha1_object_info(sha1, NULL);
-
-                       if (type > 0 && type != OBJ_COMMIT)
+                       if (!lookup_commit_reference_gently(sha1, 1)) {
+                               enum object_type type = sha1_object_info(sha1, NULL);
                                die(_("%s: can't cherry-pick a %s"), name, typename(type));
+                       }
                } else
                        die(_("%s: bad revision"), name);
        }