diff options
| author | Junio C Hamano <gitster@pobox.com> | 2023-10-23 13:56:37 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2023-10-23 13:56:37 -0700 |
| commit | 626f689f7903b51342cf31ad3792ba5e9e41586d (patch) | |
| tree | f0ce5154751f6b09c184a8f9f7b73ae23d2aee36 | |
| parent | Merge branch 'so/diff-merges-dd' (diff) | |
| parent | stash: be careful what we store (diff) | |
| download | git-626f689f7903b51342cf31ad3792ba5e9e41586d.tar.gz git-626f689f7903b51342cf31ad3792ba5e9e41586d.zip | |
Merge branch 'jc/fail-stash-to-store-non-stash'
Feeding "git stash store" with a random commit that was not created
by "git stash create" now errors out.
* jc/fail-stash-to-store-non-stash:
stash: be careful what we store
| -rw-r--r-- | builtin/stash.c | 6 | ||||
| -rwxr-xr-x | t/t3903-stash.sh | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/builtin/stash.c b/builtin/stash.c index 1ad496985a..4a6771c9f4 100644 --- a/builtin/stash.c +++ b/builtin/stash.c @@ -989,6 +989,12 @@ usage: static int do_store_stash(const struct object_id *w_commit, const char *stash_msg, int quiet) { + struct stash_info info; + char revision[GIT_MAX_HEXSZ]; + + oid_to_hex_r(revision, w_commit); + assert_stash_like(&info, revision); + if (!stash_msg) stash_msg = "Created via \"git stash store\"."; diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh index 0b3dfeaea2..30b64260a8 100755 --- a/t/t3903-stash.sh +++ b/t/t3903-stash.sh @@ -931,6 +931,10 @@ test_expect_success 'store called with invalid commit' ' test_must_fail git stash store foo ' +test_expect_success 'store called with non-stash commit' ' + test_must_fail git stash store HEAD +' + test_expect_success 'store updates stash ref and reflog' ' git stash clear && git reset --hard && |
