- 締切済み
バージョン管理ソフトのタイムスタンプについて
バージョン管理ソフト SubversionやGitなどを検討しています。 新規でプロジェクトを進める際はコミット時の時間が現在の時間で問題ありませんが、 他者からソースコードを受領した場合や既存のソースコードを管理し始める場合、 それらをコミットするとファイルの更新日時が現在の時間になってしまいます。 またプログラムをリリースする際にエクスポートするときも現在の日時に更新されてしまうようです。 これでは、ソースコートの内容自体は変わっていないにもかかわらず、更新日時が変わって いるために、他者から見ると整合性がとれなくなってしまいます。 Gitコミットの日時を設定可能のようですが、エクスポートの時に日時が変わってしまいます。 Subversionはインポートの際にコミットの日時に更新されるようです。 他者からもらったファイル/既存のファイルの内容変更が無い場合はファイルのタイムスタンプを 維持する方法はないでしょうか。 もしくはそのようなことが可能なソフトはありませんでしょうか。 ぜひ、ご助言をいただけますようお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- wormhole
- ベストアンサー率28% (1626/5665)
>これでは、ソースコートの内容自体は変わっていないにもかかわらず、更新日時が変わっているために、他者から見ると整合性がとれなくなってしまいます。 subversionはファイルの更新日時でバージョン管理をしてないので更新日時が更新されていてもソースに変更がなければコミット対象になりませんけど。 たぶんですがファイルの更新日時でバージョンを管理しているバージョン管理ソフトはないと思いますので、ファイルの更新日時を気にするだけ無駄かと思います。
- Gotthold
- ベストアンサー率47% (396/832)
Subversionは、コミット日時をファイル単位で管理していません。 コミット日時はリビジョンごとの記録なので、 おそらくファイルごとにばらばらであろう更新日時をコミット日時として記録したいのであれば、 登録したいファイルを更新日時の古いものから順に1つずつコミットするというおよそばかばかしいことをする羽目になります。 (CVSならファイル単位だったとは思いますが、今更CVSは・・・。) 各リビジョンのコミット日時の変更は、 dumpしたファイルに記載されている日時をいじってからloadすればできるかもしれないけど、 おすすめはしないです。 バージョン管理システムでの日時管理をファイルのタイムスタンプを基準にしてしまうと やりようによっては運用中にファイルの更新日時が巻き戻ってしまい、 タイムスタンプを基準に再コンパイルの必要性を判断している場合などで問題になるので、 普通はバージョン管理システムはそんなことはしないのではないかと思います。 > これでは、ソースコートの内容自体は変わっていないにもかかわらず、更新日時が変わって > いるために、他者から見ると整合性がとれなくなってしまいます。 更新日時が巻き戻ったならともかく、進んだなら整合性の問題になることは無くないですか?
お礼
回答ありがとうございます。 >更新日時が巻き戻ったならともかく、進んだなら整合性の問題に>なることは無くないですか? 顧客から受領したプログラムがベースになるため、ファイルのタイムスタンプもできれば維持したかったのが理由です。修正したファイル自体はコミットの日時に変わっても問題はありません。
お礼
返事が遅くなってすみません。 おっしゃる通り、更新日を気にしなければよいんですが、 顧客とのやりとりもあり、不要な説明が増えそうなので 質問させてもらった次第です。 ありがとうございます。