• 締切済み

バージョン管理ソフトのタイムスタンプについて

バージョン管理ソフト SubversionやGitなどを検討しています。 新規でプロジェクトを進める際はコミット時の時間が現在の時間で問題ありませんが、 他者からソースコードを受領した場合や既存のソースコードを管理し始める場合、 それらをコミットするとファイルの更新日時が現在の時間になってしまいます。 またプログラムをリリースする際にエクスポートするときも現在の日時に更新されてしまうようです。 これでは、ソースコートの内容自体は変わっていないにもかかわらず、更新日時が変わって いるために、他者から見ると整合性がとれなくなってしまいます。 Gitコミットの日時を設定可能のようですが、エクスポートの時に日時が変わってしまいます。 Subversionはインポートの際にコミットの日時に更新されるようです。 他者からもらったファイル/既存のファイルの内容変更が無い場合はファイルのタイムスタンプを 維持する方法はないでしょうか。 もしくはそのようなことが可能なソフトはありませんでしょうか。 ぜひ、ご助言をいただけますようお願いいたします。

みんなの回答

  • wormhole
  • ベストアンサー率28% (1621/5657)
回答No.2

>これでは、ソースコートの内容自体は変わっていないにもかかわらず、更新日時が変わっているために、他者から見ると整合性がとれなくなってしまいます。 subversionはファイルの更新日時でバージョン管理をしてないので更新日時が更新されていてもソースに変更がなければコミット対象になりませんけど。 たぶんですがファイルの更新日時でバージョンを管理しているバージョン管理ソフトはないと思いますので、ファイルの更新日時を気にするだけ無駄かと思います。

haak555
質問者

お礼

返事が遅くなってすみません。 おっしゃる通り、更新日を気にしなければよいんですが、 顧客とのやりとりもあり、不要な説明が増えそうなので 質問させてもらった次第です。 ありがとうございます。

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.1

Subversionは、コミット日時をファイル単位で管理していません。 コミット日時はリビジョンごとの記録なので、 おそらくファイルごとにばらばらであろう更新日時をコミット日時として記録したいのであれば、 登録したいファイルを更新日時の古いものから順に1つずつコミットするというおよそばかばかしいことをする羽目になります。 (CVSならファイル単位だったとは思いますが、今更CVSは・・・。) 各リビジョンのコミット日時の変更は、 dumpしたファイルに記載されている日時をいじってからloadすればできるかもしれないけど、 おすすめはしないです。 バージョン管理システムでの日時管理をファイルのタイムスタンプを基準にしてしまうと やりようによっては運用中にファイルの更新日時が巻き戻ってしまい、 タイムスタンプを基準に再コンパイルの必要性を判断している場合などで問題になるので、 普通はバージョン管理システムはそんなことはしないのではないかと思います。 > これでは、ソースコートの内容自体は変わっていないにもかかわらず、更新日時が変わって > いるために、他者から見ると整合性がとれなくなってしまいます。 更新日時が巻き戻ったならともかく、進んだなら整合性の問題になることは無くないですか?

haak555
質問者

お礼

回答ありがとうございます。 >更新日時が巻き戻ったならともかく、進んだなら整合性の問題に>なることは無くないですか? 顧客から受領したプログラムがベースになるため、ファイルのタイムスタンプもできれば維持したかったのが理由です。修正したファイル自体はコミットの日時に変わっても問題はありません。

関連するQ&A

  • Subversionコミットのタイムスタンプ

    ひとりで Subversion を使ってファイル管理をしています。 チェックアウト時には「コミットした日時」を使ってファイルのタイムスタンプを自動設定させていますが、コミット時にも、そのファイルのタイムスタンプで登録したいのです。 (2000 年に作ったファイルを 2013 年にコミットしたが、別のマシンで取り出す時には 2000 年とさせたい) インターネット検索してみたところ、オプションには存在するようなことが書かれていましたが、どうしたらよいかわかりませんでした。 コマンドラインでも svn help commit と入力してヘルプを見てみましたが、それらしいものがありません。 どなたかご存じないでしょうか?

  • 一人でもGitする価値は?

    主に一人でソフト開発している者です。 現在は、Subversionを使ってソース管理していますが、Gitが良いという話をよく聞くので乗り換えを考えています。 リモートとローカルのリポジトリの使い分けをざっくり理解したところ(だと思う)ですが、一人での開発だとGitでもSubversionでもあまり変わらないのかな?、新しい操作やコマンドを覚えるだけで終わってしまうのかなと思うと、なかなか踏ん切りがつきません。 そこで、一人で使ってもGitだとこんなことが便利とか出来るという利点があれば教えて下さい。 ちなみに、現在は開発PCは2台あり、同じプロジェクトの違う部分を別々に同時進行で修正・追加することがあります。 また、コミットの周期は短いほうだと思います。コンパイルが通らない状態でも今日の変更点のバックアップをする感覚でコミットすることもありますし、一方のPCから他方のPCへ変更点を移すためだけにコミットすることもあります。 ですので、リポジトリは汚れ気味です。ホントは、修正・変更のキリの良いタイミングだけをリポジトリに残したいのですが、Gitならそういう運用が可能でしょうか? 識者の方、ご意見をよろしくお願いします。

  • タイムスタンプ変更ソフト

    タイムスタンプを記憶し元に戻せるソフトを教えてください。 TimeStamp Stopper というソフトがあったのですが、XPでは動かないようです。 複数ファイル/フォルダをドラッグしてこれらのタイムスタンプ 作成日時/更新日付/アクセス日時(これはアクセスしたら変わってしまうけど) をします。 なんらかの編集をし保存します。 当然タイムスタンプは保存した日時になってしまうので、これを更新前の日付 (ドラッグ時に記録した)に戻すことができるソフトです。 vectorも探したんですけど任意の日付または今日に変更するソフト はたくさん見つかりますがこのようなことができるソフトがどれだかわかりませんでした。 可能であればNTFSアクセス権(一時的にeveryoneにして編集した場合など)も 記録し、元に戻せると最適ですがとりあえずタイムスタンプだけでもお願いします。

  • RapidSVNの管理方法について

    RapidSVNの管理方法について ~テーマ~ コミット時の情報を、テキストファイル内に残したい。 ソースコード(例えばc拡張子ファイル)内の特定文字を検索し、 リビジョン番号やコミット日時を入力してくれるような機能はありますでしょうか? 例えば、TortoiseSVNでは、 c拡張子ファイルに以下の文字列を書いておけば、 コミット時の、「リビジョン番号」、「コミット者」、「日付」が付加されます。 /*---- $Revision$ $Author$ $Date:: $ ----*/ RapidSVNで、このような機能はありますでしょうか?

  • シェルでGitからデータを取得する方法

    シェルでGitからソースを取得する方法があれば教えて下さい。 現在、Linuxサーバー上に配置しているシェル内で、以下の処理を行っています。 [svn export --force "Linux上のAフォルダパス" "svn://・・・・"] 1.SVNからファイルを取得 2.Linux上のフォルダに「1」で取得したファイルを配置 今度、ソース管理がSVNからGitに代わることになるのですが、 上記のシェルで行っていたことをGitに対してもできるのでしょうか? 「git archive~」や「git checkout-index~」でファイルは取得できそうですが、 シェルに書くコードとしてはどのように書けばいいのでしょうか? よろしくお願いします。

  • ファイルアップロード時のタイムスタンプ

    PHPで画像ファイルをアップロードした際、 ファイルのタイムスタンプが更新されてしまいます。 あとで、アップされたファイルのタイムスタンプをみて処理させたいのですが 、タイムスタンプ(作成日時、更新日時)を更新させないでアップロードする方法はありますでしょうか。 アップロードする前のタイムスタンプをあらかじめ取得し、DBなどに登録しておいたほうがいいのかもしれませんが、できれば画像ファイルのタイムスタンプを更新させないでアップロードしたいです。

    • ベストアンサー
    • PHP
  • タイムスタンプを一括変換するソフト

    タイムスタンプを指定した時間だっけ修正する(更新日時を1時間30分すすめる とかできる)ソフトを知ってる方がいましたら、お教えください。 旅行に行ったときにデジカメで撮影した写真があるのですが、デジカメの内蔵時計が進んでて、画像ファイルのタイムスタンプが全部一定時間だけずれています。これを全てまとめて修正したいのです。 よろしくお願いしますm(_ _)m

  • subversionからファイル取得時に更新日付が現在日時にってしまう

    subversionからファイル取得時に更新日付が現在日時にってしまう SubVersionからファイルを取得すると、ファイルの最終更新日時がRepoBrowser上のファイルの最終更新日ではなく、現在時刻になってしまうのですが、RepoBrowser上のファイルの最終更新日にすることはできますか? SubVersion 1.66 TersoiseSVN 1.6.9 Microsoft Windows XP SP2

  • tortoiseSVNのリビジョンを戻してコミット

    tortoiseSVNでプロジェクトのプログラムソースの管理をしているんですが、現在Revisionが67なのですが、これをRevision 60に戻して、その時からのプログラムを修正したいと思っているのですがどのように行えばよいでしょうか? 現在は、一度そのフォルダを丸ごと削除して、Rev.60の時のそのフォルダをExportしてそのフォルダに置き直してコミットをかけたりしているのですが、ファイル数が多いとExportの時間やコミットの時間でかなり時間を使ってしまい、ちょっと効率が悪いように感じるのですが、よい機能を教えて頂けないでしょうか。

  • Subversionのインポート操作を禁止する方法

    Subversionのインポート操作を管理側で禁止する方法がありましたら、教えて下さい。 プログラマではない人も、Subversionを使ってもらって、ソースコードを管理しています。 しかし、「Checkout」と「Import」の意味を間違えて、ソースコードを大量にコミットしてしまうケースがしばしばあります。 何らか禁止する手段はありますでしょうか?

専門家に質問してみよう