あるマシンからSubversionで何かをコミットし、別のマシンでチェックアウトすると、datetimeとtimestampに同じ値が取得されることを確認したいと思います。
現在、ファイルの変更日時は、元の値ではなく同期を行った時点からのものであることに気付きました。
私にとっては、ファイルがいつ同期されたかを知ることは意味がありません。最後のコミット時刻を確認したいだけです。
この問題はタイムゾーンに関連していません。
.Subversion/config
で設定できます:
[miscellany]
use-commit-times = yes
ソースファイルについて話している場合は、奇妙な副作用があります。
たとえば、ソフトウェアをビルドしてsvn update
を実行します。更新されたファイルのタイムスタンプはビルド結果ファイルのタイムスタンプよりも古いため、一部のソースファイルが変更されても再ビルドされません。この設定には十分注意してください。
Subversionは、ファイルの元のタイムスタンプを保持しません。
タイムスタンプを保持する必要がある場合は、自分で行う必要があります。たとえば、元のタイムスタンプをSubversionプロパティとして保存できます。
'stat -c%y $ FILE'は、svn:dateで動作するpre-revprop-changeフックの一部として使用されるようです。私が見るかもしれない唯一の問題は、日付形式です。