archive: add --mtime
commitfd2da4b1ea871df317322f33e82cb3aa1f95ee10
authorRené Scharfe <l.s.r@web.de>
Sat, 18 Feb 2023 08:36:23 +0000 (18 09:36 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sat, 18 Feb 2023 17:29:13 +0000 (18 09:29 -0800)
tree07e6b1abea1b40a40be16cb7537b1ee12cdb99a2
parentd9d677b2d8cc5f70499db04e633ba7a400f64cbf
archive: add --mtime

Allow users to specify the modification time of archive entries.  The
new option --mtime uses approxidate() to parse a time specification and
overrides the default of using the current time for trees and the commit
time for tags and commits.  It can be used to create a reproducible
archive for a tree, or to use a specific mtime without creating a commit
with GIT_COMMITTER_DATE set.

This implementation doesn't support the negated form of the new option,
i.e. --no-mtime is not accepted.  It is not possible to have no mtime at
all.  We could use the Unix epoch or revert to the default behavior, but
since negation is not necessary for the intended use it's left undecided
for now.

Requested-by: Raul E Rangel <rrangel@chromium.org>
Suggested-by: demerphq <demerphq@gmail.com>
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-archive.txt
archive.c
archive.h
t/t5000-tar-tree.sh