git-restore-mtime - Restore original modification time of files
based on the date of the most recent commit that modified them
- git-restore-mtime
- [-h] [--quiet] [--verbose] [--force]
[--merge] [--first-parent]
[--skip-missing] [--no-directories] [--test]
[--commit-time]
[--oldest-commit] [--work-tree WORKDIR]
[--git-dir GITDIR]
[pathspec [pathspec...]]
Restore original modification time of files based on the date of
the most recent commit that modified them. Useful when generating release
tarballs.
- pathspec
- only modify paths (dirs or files) matching PATHSPEC, relative to current
directory. Default is to modify all non-ignored, tracked files.
- -h, --help
- show help message and exit
- --quiet,-q
- suppress informative messages and summary statistics.
- --verbose,-v
- print additional information for each processed file. Overwrites
--quiet.
- --force,-f
- force execution on trees with uncommitted changes.
- --merge,-m
- include merge commits. Leads to more recent mtimes and more files per
commit, thus with the same mtime (which may or may not be what you want).
Including merge commits may lead to less commits being evaluated (all
files are found sooner), which improves performance, sometimes
substantially. But since merge commits are usually huge, processing them
may also take longer, sometimes substantially. By default merge logs are
only used for files missing from regular commit logs.
- --first-parent
- pass --first-parent to git whatchanged to hide the second parent from the
merge commit logs. Only has any effect if --merge is also specified or
--skip-missing is not specified and there were files not found in regular
commit logs.
- --skip-missing,-s
- do not try to find missing files. If some files were not found in regular
commit logs, by default it retries using merge commit logs for these files
(if --merge was not used already). This option disables this behavior,
which may slightly improve performance, but files found only in merge
commits will not be updated.
- --no-directories,-D
- do not update directory mtime for files created, renamed or deleted in it.
Note: just modifying a file will not update its directory mtime.
- --oldest-commit,-o
- pass --reverse to git whatchanged, so that the commit history for the
current branch will be processed in reverse order (i.e. from the oldest
commit to the most recent). This will result in a file's mtime being set
to the time of the oldest commit to reference that file, instead of most
recent. This option will not work correctly on branches where multiple
files have been renamed with the same name.
- --test,-t
- test run: do not actually update any file
- --commit-time,-c
- use commit time instead of author time
- --work-tree WORKDIR
- specify where the work tree is. Default for most repositories is current
directory.
- --git-dir GITDIR
- specify where the git repository is. Default for most repositories
<work-tree>/.git
https://github.com/MestreLion/git-tools
Rodrigo Silva (MestreLion) linux@rodrigosilva.com