17

なぜこれまで気づかなかったのかはわかりませんが、TFS から "Get Latest" を実行すると、ローカルの作業フォルダー内のファイルの日付と時刻が現在の日付と時刻に設定されます。これは、変更が行われていない場合でも、Created および Modified の日付に適用されます (「Get Latest」を行ったので、それ以上のことはありません)。

ファイルが作成され、その後変更された実際の日付と時刻がファイルの日付と時刻に反映されていないことに注意する必要がありますか? 私は TFS の改訂履歴を持っているので、あまり心配していませんが、これが間違っていると感じることは認めざるを得ません。技術的にはすべて機能しますが、何が起こっているのか知りたいです。

4

3 に答える 3

23

お気づきのとおり、Team Foundation Serverのデフォルトの動作は、ファイル時刻を「現在の」時刻(ファイルを取得したとき)に書き込むことです。これは、ほとんどのバージョン管理ツールのデフォルトの動作であり、一般に安全と見なされます。

時間をリモート時間に設定すると、多くのシナリオで悪影響が生じる可能性があります。たとえばmake、最後のビルド時間よりも新しいファイルをスキャンします。ファイル時間をサーバーの時間に設定すると、最後のビルド以降に変更されたファイルを判別する機能に影響を与える可能性があります。

ただし、この動作を好み、少なくともTFS2012とVisualStudio 2012を使用している場合は、[ファイル時間]を[チェックイン]に設定することで、ワークスペースごとに有効にできます。

ここに画像の説明を入力してください

Microsoftからの追加の詳細:

ファイル時間:

  • 各ファイルの日付とタイムスタンプをワークスペース内のバージョンの変更セットのスタンプとほぼ一致させる場合は、[チェックイン]を選択します。いくつかの問題と例外は次のとおりです。

    • ローカルファイルを変更すると、日付とタイムスタンプはファイルを変更した日時と一致します。

    • この機能は、VisualStudio2012以降およびVisualStudioTeam FoundationServer2012以降を使用している場合にのみ使用できます。

    • フォルダに含まれるファイルに保留中の追加または削除操作がない限り、この設定はフォルダには適用されません。

    • コードプロジェクトを段階的にビルドできない場合があります。代わりに、再構築する必要があります)。

  • 日付とタイムスタンプをローカルファイルを最後に変更した日時と一致させる場合は、[現在]を選択します。たとえば、チームメンバーは、月曜日にファイルへの最新の変更をチェックインしました。火曜日に、get操作を実行してファイルを更新します。日付とタイムスタンプは火曜日に設定されています。

于 2013-03-05T17:41:45.670 に答える
1

前述のとおり、これが TFS のデフォルトの動作です。これは、私が使用した最初のバージョン管理システムであり、デフォルト設定です。開発者が最新のファイルを取得したときにファイルの現在の時刻を使用する際の問題は、各ファイルでファイル比較を行うことによってのみ、最新バージョンを持っているかどうかを確認できることです。同じプロジェクトの 3 人の異なる開発者は、同じバージョンのファイルに対して 3 つの異なる日時値を持ちます。いずれにせよ、ビルドを作成する前に、常にプロジェクトのクリーンを実行してください。なんで?ファイルを 1 つまたは 2 つ微調整した可能性があるため、テスト後、最新のチェックイン バージョンに戻しました。私の経験では、チェックイン時間を使用する方が常に良いです。

于 2013-11-21T16:27:20.033 に答える