зеркало из https://github.com/microsoft/git.git
Merge branch 'jc/commit-tree-ignore-commit-gpgsign'
"git commit-tree" plumbing command required the user to always sign its result when the user sets the commit.gpgsign configuration variable, which was an ancient mistake. Rework "git rebase" that relied on this mistake so that it reads commit.gpgsign and pass (or not pass) the -S option to "git commit-tree" to keep the end-user expectation the same, while teaching "git commit-tree" to ignore the configuration variable. This will stop requiring the users to sign commit objects used internally as an implementation detail of "git stash". * jc/commit-tree-ignore-commit-gpgsign: commit-tree: do not pay attention to commit.gpgsign
This commit is contained in:
Коммит
50b26f5612
|
@ -61,8 +61,8 @@ OPTIONS
|
|||
stuck to the option without a space.
|
||||
|
||||
--no-gpg-sign::
|
||||
Countermand `commit.gpgSign` configuration variable that is
|
||||
set to force each and every commit to be signed.
|
||||
Do not GPG-sign commit, to countermand a `--gpg-sign` option
|
||||
given earlier on the command line.
|
||||
|
||||
|
||||
Commit Information
|
||||
|
|
|
@ -33,10 +33,6 @@ static int commit_tree_config(const char *var, const char *value, void *cb)
|
|||
int status = git_gpg_config(var, value, NULL);
|
||||
if (status)
|
||||
return status;
|
||||
if (!strcmp(var, "commit.gpgsign")) {
|
||||
sign_commit = git_config_bool(var, value) ? "" : NULL;
|
||||
return 0;
|
||||
}
|
||||
return git_default_config(var, value, cb);
|
||||
}
|
||||
|
||||
|
|
|
@ -87,7 +87,10 @@ preserve_merges=
|
|||
autosquash=
|
||||
keep_empty=
|
||||
test "$(git config --bool rebase.autosquash)" = "true" && autosquash=t
|
||||
gpg_sign_opt=
|
||||
case "$(git config --bool commit.gpgsign)" in
|
||||
true) gpg_sign_opt=-S ;;
|
||||
*) gpg_sign_opt= ;;
|
||||
esac
|
||||
|
||||
read_basic_state () {
|
||||
test -f "$state_dir/head-name" &&
|
||||
|
|
|
@ -45,12 +45,18 @@ test_expect_success GPG 'create signed commits' '
|
|||
git tag seventh-signed &&
|
||||
|
||||
echo 8 >file && test_tick && git commit -a -m eighth -SB7227189 &&
|
||||
git tag eighth-signed-alt
|
||||
git tag eighth-signed-alt &&
|
||||
|
||||
# commit.gpgsign is still on but this must not be signed
|
||||
git tag ninth-unsigned $(echo 9 | git commit-tree HEAD^{tree}) &&
|
||||
# explicit -S of course must sign.
|
||||
git tag tenth-signed $(echo 9 | git commit-tree -S HEAD^{tree})
|
||||
'
|
||||
|
||||
test_expect_success GPG 'verify and show signatures' '
|
||||
(
|
||||
for commit in initial second merge fourth-signed fifth-signed sixth-signed seventh-signed
|
||||
for commit in initial second merge fourth-signed \
|
||||
fifth-signed sixth-signed seventh-signed tenth-signed
|
||||
do
|
||||
git verify-commit $commit &&
|
||||
git show --pretty=short --show-signature $commit >actual &&
|
||||
|
@ -60,7 +66,8 @@ test_expect_success GPG 'verify and show signatures' '
|
|||
done
|
||||
) &&
|
||||
(
|
||||
for commit in merge^2 fourth-unsigned sixth-unsigned seventh-unsigned
|
||||
for commit in merge^2 fourth-unsigned sixth-unsigned \
|
||||
seventh-unsigned ninth-unsigned
|
||||
do
|
||||
test_must_fail git verify-commit $commit &&
|
||||
git show --pretty=short --show-signature $commit >actual &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче