18
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

ファイルのタイムスタンプをコミット日時に合わせる

svnの場合は、 use-commit-time = true でコミットされた時間にファイルのmtimeを合わせることができる。

ここに記載する内容もほぼ全て、以下のページに記載されている。

gitの場合はそういうオプションはないので、スクリプトでサクッと対応することになるが、公式wikiのサンプルスクリプト(perl)に記載があるわりに、それ自体がバージョン管理されていないという矛盾。(wikiなのでページ自体はバージョン管理されているけど…。このサンプルばかりを集めたリポジトリはない。ひょっとしてgit自体に含まれているかと思ったけれど、そんなことはなかった。)

あと、他のツールのサポートスクリプトとして収録されていることも多いみたいで、メジャーなところでは、rsyncサポートスクリプトとして収録されている

そのため、上記wikiの記載をコピペするか、rsyncのサポートスクリプトを利用するか、というのが手っ取り早い。

rsync付属の「git-set-file-times」の導入方法

既にrsyncがパッケージで導入されている場合など

rsyncがインストールされていれば、以下の手順で導入できるんじゃね、という。

コピー -> 展開 -> 実行権限付与
cp -a /usr/share/doc/rsync/scripts/git-set-file-times.gz /usr/bin/
gzip -d /usr/bin/git-set-file-times.gz
chmod +x /usr/bin/git-set-file-times
  • パッケージ由来なので、/usr/bin に入れるのが良いかな、と。
  • ※ ソースコンパイルなどでそのままインストールしてるなら、 /usr/local/share の場合が多い。

Gitで取ってくる場合

git用のスクリプトなんだからgitで取得すれば良いよね、という。

git clone -> コピー -> 削除
git clone git://git.samba.org/rsync.git
cd ./rsync
./support/git-set-file-times
cp -a ./support/git-set-file-times /usr/local/bin/
cd ../
rm -fr ./rsync
  • 別途導入してるんだから、 /usr/local/bin かな、と。

curlで取ってくる場合

curlで放り込んで実行権限付与
curl -kLJR 'https://git.samba.org/?p=rsync.git;a=blob_plain;f=support/git-set-file-times' -o /usr/local/bin/git-set-file-times && chmod +x /usr/local/bin/git-set-file-times

rsync付属の「git-set-file-times」を導入したときの問題。

以下のページで解説されている修正が、rsync版には適用されていない…。

もう何年も前の修正なのに…。

結論

wiki掲載のサンプルをコピペするのがベスト。

どこかに公式的なファイルを置いて欲しい…。
あるいは、rsyncレベルのどこでも入ってるようなメジャーなツールで、上記の最新版を収録したものはないものか。

「コピペがベスト」だと、自動化しづらい…。

Gitのコミットのタイムスタンプについて

追記@￰2017-04-03

rsync版と、git公式wiki掲載版とで分岐進化をしてしまっているようなので、自前でマージした。
https://gist.github.com/mAster-rAdio/642fff6acb79b7a587fb3bce7ee1c9ef

追記@￰2021-03-12

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
18
Help us understand the problem. What are the problem?