Merge branch 'sd/stash-wo-user-name'

* sd/stash-wo-user-name:
  stash: tolerate missing user identity
This commit is contained in:
Junio C Hamano 2019-01-03 15:21:13 -08:00
commit eacdb4d2f4
2 changed files with 45 additions and 0 deletions

View File

@ -55,6 +55,20 @@ untracked_files () {
git ls-files -o $z $excl_opt -- "$@"
}
prepare_fallback_ident () {
if ! git -c user.useconfigonly=yes var GIT_COMMITTER_IDENT >/dev/null 2>&1
then
GIT_AUTHOR_NAME="git stash"
GIT_AUTHOR_EMAIL=git@stash
GIT_COMMITTER_NAME="git stash"
GIT_COMMITTER_EMAIL=git@stash
export GIT_AUTHOR_NAME
export GIT_AUTHOR_EMAIL
export GIT_COMMITTER_NAME
export GIT_COMMITTER_EMAIL
fi
}
clear_stash () {
if test $# != 0
then
@ -67,6 +81,9 @@ clear_stash () {
}
create_stash () {
prepare_fallback_ident
stash_msg=
untracked=
while test $# != 0

View File

@ -1096,4 +1096,32 @@ test_expect_success 'stash -- <subdir> works with binary files' '
test_path_is_file subdir/untracked
'
test_expect_success 'stash works when user.name and user.email are not set' '
git reset &&
>1 &&
git add 1 &&
echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL>" >expect &&
git stash &&
git show -s --format="%an <%ae>" refs/stash >actual &&
test_cmp expect actual &&
>2 &&
git add 2 &&
test_config user.useconfigonly true &&
test_config stash.usebuiltin true &&
(
sane_unset GIT_AUTHOR_NAME &&
sane_unset GIT_AUTHOR_EMAIL &&
sane_unset GIT_COMMITTER_NAME &&
sane_unset GIT_COMMITTER_EMAIL &&
test_unconfig user.email &&
test_unconfig user.name &&
test_must_fail git commit -m "should fail" &&
echo "git stash <git@stash>" >expect &&
>2 &&
git stash &&
git show -s --format="%an <%ae>" refs/stash >actual &&
test_cmp expect actual
)
'
test_done