diff options
| author | Junio C Hamano <gitster@pobox.com> | 2022-03-06 21:25:32 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2022-03-06 21:25:33 -0800 |
| commit | 11da0a558063a94498932ed3d73dbabf1bda6dd0 (patch) | |
| tree | 6e99d5d76ca815bbd68d9e3ea06868fa6b90e49a | |
| parent | Merge branch 'ah/advice-switch-requires-detach-to-detach' (diff) | |
| parent | stash: strip "refs/heads/" with skip_prefix (diff) | |
| download | git-11da0a558063a94498932ed3d73dbabf1bda6dd0.tar.gz git-11da0a558063a94498932ed3d73dbabf1bda6dd0.zip | |
Merge branch 'gc/stash-on-branch-with-multi-level-name'
"git checkout -b branch/with/multi/level/name && git stash" only
recorded the last level component of the branch name, which has
been corrected.
* gc/stash-on-branch-with-multi-level-name:
stash: strip "refs/heads/" with skip_prefix
| -rw-r--r-- | builtin/stash.c | 2 | ||||
| -rwxr-xr-x | t/t3903-stash.sh | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/builtin/stash.c b/builtin/stash.c index 5897febfbe..3e8af210fd 100644 --- a/builtin/stash.c +++ b/builtin/stash.c @@ -1327,7 +1327,7 @@ static int do_create_stash(const struct pathspec *ps, struct strbuf *stash_msg_b branch_ref = resolve_ref_unsafe("HEAD", 0, NULL, &flags); if (flags & REF_ISSYMREF) - branch_name = strrchr(branch_ref, '/') + 1; + skip_prefix(branch_ref, "refs/heads/", &branch_name); head_short_sha1 = find_unique_abbrev(&head_commit->object.oid, DEFAULT_ABBREV); strbuf_addf(&msg, "%s: %s ", branch_name, head_short_sha1); diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh index d5ecee4fcc..f36e121210 100755 --- a/t/t3903-stash.sh +++ b/t/t3903-stash.sh @@ -1045,6 +1045,17 @@ test_expect_success 'create stores correct message' ' test_cmp expect actual ' +test_expect_success 'create when branch name has /' ' + test_when_finished "git checkout main" && + git checkout -b some/topic && + >foo && + git add foo && + STASH_ID=$(git stash create "create test message") && + echo "On some/topic: create test message" >expect && + git show --pretty=%s -s ${STASH_ID} >actual && + test_cmp expect actual +' + test_expect_success 'create with multiple arguments for the message' ' >foo && git add foo && |
