Merge pull request #972 from wpwoodjr/master

update git-utimes.{1,html} to add --newer flag
This commit is contained in:
罗泽轩 2022-05-11 14:12:06 +08:00 committed by GitHub
commit fdf89cd93f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 46 additions and 32 deletions

View file

@ -19,7 +19,7 @@ if [ "$1" = "--touch" ]; then
git_s=$(git --no-pager log --no-renames --pretty=format:%ct -1 @ -- "$f" 2>/dev/null)
mod_s=$(stat $stat_flags "$f" 2>/dev/null)
if [ -n "$git_s" ] && [ -n "$mod_s" ] && [ "$mod_s" -ne "$git_s" ]; then
if [ "$mod_s" -gt "$git_s" ] || [ ! -n "$newer_flag" ]; then
if [ "$mod_s" -gt "$git_s" ] || [ -z "$newer_flag" ]; then
t=$(date $date_flags$git_s '+%Y%m%d%H%M.%S')
echo "+ touch -h -t $t $f" >&2
touch -h -t "$t" "$f"
@ -32,7 +32,6 @@ else
# `-n` should be limited or parallelization will not give effect,
# because all args will go into single worker.
NPROC=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
# shellcheck disable=SC2086
# don't touch files that have been modified in the worktree or index
# bsd doesn't have `-z` option for `comm` and `cut`, so use `tr` as work around
prefix="$(git rev-parse --show-prefix) "

View file

@ -1,28 +1,33 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-UTIMES" "1" "September 2020" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-UTIMES" "1" "May 2022" "" "Git Extras"
.SH "NAME"
\fBgit\-utimes\fR \- Change files modification time to their last commit date
.
.SH "SYNOPSIS"
\fBgit\-utimes\fR
.
\fBgit\-utimes\fR [\-\-newer]
.SH "DESCRIPTION"
Change files modification time to their last commit date\.
.
Change files modification time to their last commit date\. Does not touch files that are in the working tree or index\.
.SH "OPTIONS"
No options needed\.
.
\-\-newer
.P
Preserves the original modification time of files that were committed from the local repo, by only touching files that are newer than their last commit date\.
.SH "EXAMPLES"
git utimes
.
Update all files' modification time to their last commit date, except those in working tree or index:
.IP "" 4
.nf
$ git utimes
.fi
.IP "" 0
.P
As above, but preserve original modification time of files that were committed from local repo:
.IP "" 4
.nf
$ git utimes \-\-newer
.fi
.IP "" 0
.SH "AUTHOR"
Written by Vitaly Chikunov <\fIvt@altlinux\.org\fR>, inspired by Stackexchange comments\.
.
Written by Vitaly Chikunov <\fIvt@altlinux\.org\fR>, inspired by Stackexchange comments\. Updated by Bill Wood <\fIwpwoodjr@gmail\.com\fR> to add \fB\-\-newer\fR flag and ignore files in the working tree or index\.
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,8 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<meta http-equiv='content-type' content='text/html;charset=utf8'>
<meta name='generator' content='Ronn-NG/v0.9.1 (http://github.com/apjanke/ronn-ng/tree/0.9.1)'>
<title>git-utimes(1) - Change files modification time to their last commit date</title>
<style type='text/css' media='all'>
/* style: man */
@ -69,30 +69,41 @@
<li class='tr'>git-utimes(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-utimes</code> - <span class="man-whatis">Change files modification time to their last commit date</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-utimes</code></p>
<p><code>git-utimes</code> [--newer]</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p> Change files modification time to their last commit date.</p>
<p>Change files modification time to their last commit date. Does not touch files that are in the working tree or index.</p>
<h2 id="OPTIONS">OPTIONS</h2>
<p> No options needed.</p>
<p>--newer</p>
<p>Preserves the original modification time of files that were committed from the local repo, by only touching files that are newer than their last commit date.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p> git utimes</p>
<p>Update all files' modification time to their last commit date, except those in working tree or index:</p>
<pre><code>$ git utimes
</code></pre>
<p>As above, but preserve original modification time of files that were committed from local repo:</p>
<pre><code>$ git utimes --newer
</code></pre>
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Vitaly Chikunov &lt;<a href="&#x6d;&#x61;&#x69;&#108;&#116;&#111;&#x3a;&#118;&#x74;&#64;&#97;&#x6c;&#x74;&#x6c;&#105;&#x6e;&#117;&#120;&#46;&#x6f;&#114;&#x67;" data-bare-link="true">&#118;&#x74;&#64;&#97;&#x6c;&#x74;&#x6c;&#x69;&#110;&#117;&#120;&#x2e;&#x6f;&#114;&#103;</a>&gt;, inspired by Stackexchange comments.</p>
<p>Written by Vitaly Chikunov &lt;<a href="mailto:vt@altlinux.org" data-bare-link="true">vt@altlinux.org</a>&gt;, inspired by Stackexchange comments. Updated by Bill Wood &lt;<a href="mailto:wpwoodjr@gmail.com" data-bare-link="true">wpwoodjr@gmail.com</a>&gt; to add <code>--newer</code> flag and ignore files in the working tree or index.</p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
@ -102,10 +113,9 @@
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>September 2020</li>
<li class='tc'>May 2022</li>
<li class='tr'>git-utimes(1)</li>
</ol>

View file

@ -17,11 +17,11 @@ git-utimes(1) -- Change files modification time to their last commit date
## EXAMPLES
* Update all files' modification time to their last commit date, except those in working tree or index:
Update all files' modification time to their last commit date, except those in working tree or index:
$ git utimes
* As above, but preserve original modification time of files that were committed from local repo:
As above, but preserve original modification time of files that were committed from local repo:
$ git utimes --newer