06ce79152b
Now that mktag has been migrated to use the fsck machinery to check its input, it makes sense to teach it to run in the equivalent of "git fsck"'s default mode. For cases where mktag is used to (re)create a tag object using data from an existing and malformed tag object, the validation may optionally have to be loosened. Teach the command to take the "--[no-]strict" option to do so. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
67 lines
1.7 KiB
Plaintext
67 lines
1.7 KiB
Plaintext
git-mktag(1)
|
|
============
|
|
|
|
NAME
|
|
----
|
|
git-mktag - Creates a tag object with extra validation
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'git mktag'
|
|
|
|
OPTIONS
|
|
-------
|
|
|
|
--strict::
|
|
By default mktag turns on the equivalent of
|
|
linkgit:git-fsck[1] `--strict` mode. Use `--no-strict` to
|
|
disable it.
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
Reads a tag contents on standard input and creates a tag object. The
|
|
output is the new tag's <object> identifier.
|
|
|
|
This command is mostly equivalent to linkgit:git-hash-object[1]
|
|
invoked with `-t tag -w --stdin`. I.e. both of these will create and
|
|
write a tag found in `my-tag`:
|
|
|
|
git mktag <my-tag
|
|
git hash-object -t tag -w --stdin <my-tag
|
|
|
|
The difference is that mktag will die before writing the tag if the
|
|
tag doesn't pass a linkgit:git-fsck[1] check.
|
|
|
|
The "fsck" check done mktag is stricter than what linkgit:git-fsck[1]
|
|
would run by default in that all `fsck.<msg-id>` messages are promoted
|
|
from warnings to errors (so e.g. a missing "tagger" line is an error).
|
|
|
|
Extra headers in the object are also an error under mktag, but ignored
|
|
by linkgit:git-fsck[1]. This extra check can be turned off by setting
|
|
the appropriate `fsck.<msg-id>` varible:
|
|
|
|
git -c fsck.extraHeaderEntry=ignore mktag <my-tag-with-headers
|
|
|
|
Tag Format
|
|
----------
|
|
A tag signature file, to be fed to this command's standard input,
|
|
has a very simple fixed format: four lines of
|
|
|
|
object <hash>
|
|
type <typename>
|
|
tag <tagname>
|
|
tagger <tagger>
|
|
|
|
followed by some 'optional' free-form message (some tags created
|
|
by older Git may not have `tagger` line). The message, when it
|
|
exists, is separated by a blank line from the header. The
|
|
message part may contain a signature that Git itself doesn't
|
|
care about, but that can be verified with gpg.
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[1] suite
|