web-dev-qa-db-ja.com

Subversionで元のファイル[コミット]タイムスタンプを保持するにはどうすればよいですか?

あるマシンからSubversionで何かをコミットし、別のマシンでチェックアウトすると、datetimeとtimestampに同じ値が取得されることを確認したいと思います。

現在、ファイルの変更日時は、元の値ではなく同期を行った時点からのものであることに気付きました。

私にとっては、ファイルがいつ同期されたかを知ることは意味がありません。最後のコミット時刻を確認したいだけです。

この問題はタイムゾーンに関連していません。

62
sorin

.Subversion/configで設定できます:

[miscellany]
use-commit-times = yes

ソースファイルについて話している場合は、奇妙な副作用があります。

たとえば、ソフトウェアをビルドしてsvn updateを実行します。更新されたファイルのタイムスタンプはビルド結果ファイルのタイムスタンプよりも古いため、一部のソースファイルが変更されても再ビルドされません。この設定には十分注意してください。

61
silk

TortoiseSVNを使用している場合、オプションがあります。 TortoiseSVN->設定->一般->「ファイルの日付を「最終コミット時刻」に設定します」。

Right click on your Tortoise shortcut to settings

29
nickf

Subversionは、ファイルの元のタイムスタンプを保持しません。

タイムスタンプを保持する必要がある場合は、自分で行う必要があります。たとえば、元のタイムスタンプをSubversionプロパティとして保存できます。

14
oefe

'stat -c%y $ FILE'は、svn:dateで動作するpre-revprop-changeフックの一部として使用されるようです。私が見るかもしれない唯一の問題は、日付形式です。