summaryrefslogtreecommitdiff
path: root/branch.c
diff options
context:
space:
mode:
authorDenton Liu <liu.denton@gmail.com>2019-04-27 05:02:22 -0700
committerJunio C Hamano <gitster@pobox.com>2019-05-07 13:23:13 +0900
commite3d6539d58238f046ff955330f6e10c447150164 (patch)
treea80e3a6d2e4814bf8b750edc027a05ed90d1e15e /branch.c
parent27434bf08c6c7c065e6323e8aa3f285d8f345e83 (diff)
downloadgit-e3d6539d58238f046ff955330f6e10c447150164.tar.gz
branch: make create_branch accept a merge base rev
When we ran something like $ git checkout -b test master... it would fail with the message fatal: Not a valid object name: 'master...'. This was caused by the call to `create_branch` where `start_name` is expected to be a valid rev. However, git-checkout allows the branch to be a valid _merge base_ rev (i.e. with a "...") so it was possible for an invalid rev to be passed in. Make `create_branch` accept a merge base rev so that this case does not error out. As a side-effect, teach git-branch how to handle merge base revs as well. Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Denton Liu <liu.denton@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'branch.c')
-rw-r--r--branch.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/branch.c b/branch.c
index 28b81a7e02..a84c8aaca2 100644
--- a/branch.c
+++ b/branch.c
@@ -268,7 +268,7 @@ void create_branch(struct repository *r,
}
real_ref = NULL;
- if (get_oid(start_name, &oid)) {
+ if (get_oid_mb(start_name, &oid)) {
if (explicit_tracking) {
if (advice_set_upstream_failure) {
error(_(upstream_missing), start_name);