blogこの広告は、90日以上更新していないブログに表示しています。SubversionCVSにしろSubversionにしろ、コミットログにはコミット日時を記録する。コミットログをViewVCやTracのリポジトリブラウザで、あるいはcvsコマンドを叩いて参照してみると、時間がちょうど9時間遅れている。バージョン管理システムに慣れない人はこれを不思議に思うことが多いようで、この件で過去何度か質問を受けたことがある。これは設定ミスでもなんでもない。9時間遅れの時間が表示されるのが正しい。時間がずれているように見えるのは、バージョン管理システムが時間をUTC(協定世界時)で管理しているためである。これに対して、日本で使っているタイムゾーンであるJST(日本標準時)は、UTCより9時間進んでいる。よって、バージョン管理システムに時間を問い合わせると9時間遅い時間を返してくるように見えるのである。リポジトリそのもののタイムゾーンを変更する手段は無い。全てのバージョン管理システムがそうなのかはわからないが、とりあえずCVSとSubversionはそうだ。リポジトリを載せているマシンのタイムゾーンを変更しても、それらには無関心にUTCを使い続ける。オープンソースプロジェクトで使われているリポジトリを見ればわかることだが、リポジトリは世界中の開発者から利用される場合がある。ところが、地球には時差があるため、開発者たちの時計はそれぞれ異なる時間を指している。リポジトリで時間を管理する際、いったい誰の時計を基準とすべきだろうか?こうなると、全ての時間の基準となっているUTCを使うのがベストなのだ。WinCVSやTortoiseCVSのような自分のPCにインストールして自分だけが使うツールであれば、そんな事情は気にする必要がない。これらでログを参照すると、時間は我々の目に入る前にJSTに加工される。Webベースのリポジトリブラウザのように、サーバサイドで動いて不特定多数から参照される可能性があるアプリケーションではUTCを使わざるを得ないのである*1。$Log$をキーワード置換する際にも問題になってくるはずである。ヘタにツールを噛ますよりは、そういうものだと受け入れた方がよろしい。単純に9時間足せば良いわけだし。キーワード置換の使用自体オススメできないので、可能であれば無くしてしまうべき。*1:TracJaのようにローカライズしてあるものは別。Subversionのコミットログの日時が9時間ずれる件Tweet広告を非表示にする関連記事2009-09-25署名付きタグって何?Gitを使い始めて以来、ずっと飲み込めずに残っているのが、"署...2008-06-25相変わらずバージョン管理が下手なやつらよ今週中に突貫工事であるプログラムを修正しなければならない。...2007-06-28Subversionでマイ文書を管理するメリットとコツこちらのエントリ。1.4.0から導入されたsvnsyncを触ってみた。4」を書いたCapistranoでタスクの実行対象サーバを絞り込む方法GitをHTTP経由で使うときのパスワードを安全に扱いたい月別アーカイブはてなブログをはじめよう!idesakuさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。