Merge branch 'jc/signed-fast-export-is-experimental'
Mark a new feature added during this cycle as experimental and fix its default so that existing users of the fast-export command is not broken. * jc/signed-fast-export-is-experimental: fast-export: --signed-commits is experimentalmaint
commit
bbe8a3723b
|
|
@ -102,7 +102,9 @@ Performance, Internal Implementation, Development Support etc.
|
|||
* "git fsck" becomes more careful when checking the refs.
|
||||
|
||||
* "git fast-export | git fast-import" learns to deal with commit and
|
||||
tag objects with embedded signatures a bit better.
|
||||
tag objects with embedded signatures a bit better. This is highly
|
||||
experimental and the format of the data stream may change in the
|
||||
future without compatibility guarantees.
|
||||
|
||||
* The code paths to check whether a refname X is available (by seeing
|
||||
if another ref X/Y exists, etc.) have been optimized.
|
||||
|
|
|
|||
|
|
@ -46,14 +46,12 @@ resulting tag will have an invalid signature.
|
|||
|
||||
--signed-commits=(verbatim|warn-verbatim|warn-strip|strip|abort)::
|
||||
Specify how to handle signed commits. Behaves exactly as
|
||||
'--signed-tags', but for commits. Default is 'abort'.
|
||||
'--signed-tags', but for commits. Default is 'strip', which
|
||||
is the same as how earlier versions of this command without
|
||||
this option behaved.
|
||||
+
|
||||
Earlier versions this command that did not have '--signed-commits'
|
||||
behaved as if '--signed-commits=strip'. As an escape hatch for users
|
||||
of tools that call 'git fast-export' but do not yet support
|
||||
'--signed-commits', you may set the environment variable
|
||||
'FAST_EXPORT_SIGNED_COMMITS_NOABORT=1' in order to change the default
|
||||
from 'abort' to 'warn-strip'.
|
||||
NOTE: This is highly experimental and the format of the data stream may
|
||||
change in the future without compatibility guarantees.
|
||||
|
||||
--tag-of-filtered-object=(abort|drop|rewrite)::
|
||||
Specify how to handle tags whose tagged object is filtered out.
|
||||
|
|
|
|||
|
|
@ -523,6 +523,9 @@ that signs the commit data.
|
|||
Here <alg> specifies which hashing algorithm is used for this
|
||||
signature, either `sha1` or `sha256`.
|
||||
|
||||
NOTE: This is highly experimental and the format of the data stream may
|
||||
change in the future without compatibility guarantees.
|
||||
|
||||
`encoding`
|
||||
^^^^^^^^^^
|
||||
The optional `encoding` command indicates the encoding of the commit
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ enum sign_mode { SIGN_ABORT, SIGN_VERBATIM, SIGN_STRIP, SIGN_WARN_VERBATIM, SIGN
|
|||
|
||||
static int progress;
|
||||
static enum sign_mode signed_tag_mode = SIGN_ABORT;
|
||||
static enum sign_mode signed_commit_mode = SIGN_ABORT;
|
||||
static enum sign_mode signed_commit_mode = SIGN_STRIP;
|
||||
static enum tag_of_filtered_mode { TAG_FILTERING_ABORT, DROP, REWRITE } tag_of_filtered_mode = TAG_FILTERING_ABORT;
|
||||
static enum reencode_mode { REENCODE_ABORT, REENCODE_YES, REENCODE_NO } reencode_mode = REENCODE_ABORT;
|
||||
static int fake_missing_tagger;
|
||||
|
|
@ -1269,7 +1269,6 @@ int cmd_fast_export(int argc,
|
|||
const char *prefix,
|
||||
struct repository *repo UNUSED)
|
||||
{
|
||||
const char *env_signed_commits_noabort;
|
||||
struct rev_info revs;
|
||||
struct commit *commit;
|
||||
char *export_filename = NULL,
|
||||
|
|
@ -1327,10 +1326,6 @@ int cmd_fast_export(int argc,
|
|||
if (argc == 1)
|
||||
usage_with_options (fast_export_usage, options);
|
||||
|
||||
env_signed_commits_noabort = getenv("FAST_EXPORT_SIGNED_COMMITS_NOABORT");
|
||||
if (env_signed_commits_noabort && *env_signed_commits_noabort)
|
||||
signed_commit_mode = SIGN_WARN_STRIP;
|
||||
|
||||
/* we handle encodings */
|
||||
git_config(git_default_config, NULL);
|
||||
|
||||
|
|
|
|||
|
|
@ -299,22 +299,10 @@ test_expect_success GPG 'set up signed commit' '
|
|||
|
||||
'
|
||||
|
||||
test_expect_success GPG 'signed-commits default' '
|
||||
|
||||
sane_unset FAST_EXPORT_SIGNED_COMMITS_NOABORT &&
|
||||
test_must_fail git fast-export --reencode=no commit-signing &&
|
||||
|
||||
FAST_EXPORT_SIGNED_COMMITS_NOABORT=1 git fast-export --reencode=no commit-signing >output 2>err &&
|
||||
! grep ^gpgsig output &&
|
||||
grep "^encoding ISO-8859-1" output &&
|
||||
test -s err &&
|
||||
sed "s/commit-signing/commit-strip-signing/" output | (
|
||||
cd new &&
|
||||
git fast-import &&
|
||||
STRIPPED=$(git rev-parse --verify refs/heads/commit-strip-signing) &&
|
||||
test $COMMIT_SIGNING != $STRIPPED
|
||||
)
|
||||
|
||||
test_expect_success GPG 'signed-commits default is same as strip' '
|
||||
git fast-export --reencode=no commit-signing >out1 2>err &&
|
||||
git fast-export --reencode=no --signed-commits=strip commit-signing >out2 &&
|
||||
test_cmp out1 out2
|
||||
'
|
||||
|
||||
test_expect_success GPG 'signed-commits=abort' '
|
||||
|
|
|
|||
Loading…
Reference in New Issue