Merge branch 'sd/stash-wo-user-name'
A properly configured username/email is required under user.useConfigOnly in order to create commits; now "git stash" (even though it creates commit objects to represent stash entries) command is exempt from the requirement. * sd/stash-wo-user-name: stash: tolerate missing user identity
This commit is contained in:
commit
1328d29943
17
git-stash.sh
17
git-stash.sh
@ -55,6 +55,20 @@ untracked_files () {
|
|||||||
git ls-files -o $z $excl_opt -- "$@"
|
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 () {
|
clear_stash () {
|
||||||
if test $# != 0
|
if test $# != 0
|
||||||
then
|
then
|
||||||
@ -67,6 +81,9 @@ clear_stash () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
create_stash () {
|
create_stash () {
|
||||||
|
|
||||||
|
prepare_fallback_ident
|
||||||
|
|
||||||
stash_msg=
|
stash_msg=
|
||||||
untracked=
|
untracked=
|
||||||
while test $# != 0
|
while test $# != 0
|
||||||
|
@ -1096,4 +1096,32 @@ test_expect_success 'stash -- <subdir> works with binary files' '
|
|||||||
test_path_is_file subdir/untracked
|
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
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user