diff options
Diffstat (limited to 'builtin-checkout.c')
-rw-r--r-- | builtin-checkout.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/builtin-checkout.c b/builtin-checkout.c index da04eed391..fe7c8584ca 100644 --- a/builtin-checkout.c +++ b/builtin-checkout.c @@ -689,7 +689,10 @@ int cmd_checkout(int argc, const char **argv, const char *prefix) * case 3: git checkout <something> [<paths>] * * With no paths, if <something> is a commit, that is to - * switch to the branch or detach HEAD at it. + * switch to the branch or detach HEAD at it. As a special case, + * if <something> is A...B (missing A or B means HEAD but you can + * omit at most one side), and if there is a unique merge base + * between A and B, A...B names that merge base. * * With no paths, if <something> is _not_ a commit, no -t nor -b * was given, and there is a tracking branch whose name is @@ -715,7 +718,7 @@ int cmd_checkout(int argc, const char **argv, const char *prefix) if (!strcmp(arg, "-")) arg = "@{-1}"; - if (get_sha1(arg, rev)) { + if (get_sha1_mb(arg, rev)) { if (has_dash_dash) /* case (1) */ die("invalid reference: %s", arg); if (!patch_mode && |