2

4 つのファイルでラベルを作成する状況があります (すべてのプロジェクトが 10 個のファイルで構成されているため、別の 6 つのファイルは新しいラベルに配置されていないとします)。

Get Specific Version アクションを実行し、Version Type で Label を配置し、その後、新しいラベルを選択すると、新しいラベルに含まれていないローカル フォルダーのすべてのファイル (この例では、別の 6 ファイル) が削除されます!!! これは非常に奇妙な状況です。新しいラベルでマークされた特定のバージョンのファイルを取得したいが、他のすべてのファイルの既存のバージョンを保持し、それらをローカル フォルダーに保持したいシナリオを説明してください。それは私の新しいラベルにあり、ラベルにないファイルには何もしませんか???

おそらくこれらのファイルの削除を防ぐことができるTFSの設定があると思います!

事前にTnX!

ネマニャ

4

1 に答える 1

6

これは設計どおりに機能しています。TFSのラベルには十分注意してください。ラベルは、他の種類のソース管理で使用されているラベルとは少し異なります。TFSでは、ラベルは非常に変更可能であり、1つのファイルに簡単に移動できます。それらは強力ですが、危険です。

前述のように、個々のファイルに対してget by labelを実行でき、問題はありません。ただし、フォルダーで特定のget by labelを実行すると、TFSに、そのフォルダー内のすべてをラベルに示されているのと同じバージョンに復元するように要求します。そのフォルダ内のファイルにラベルが付いていない場合、そのファイルはどのバージョンラベルとも一致せず、削除されます。

TFSの1つのファイル/バージョンに複数のラベルを付けることができるため、これを回避する1つの方法は、そのディレクトリ内のすべてのファイルに新しいラベルを付けてから、この新しいラベルを他のラベルと同じリビジョンに移動することです。 。

...の3つのファイルについて考えてみ$/Project/Folderます。2つは。でラベル付けされてLABEL_Aおり、1つはまったくラベル付けされていません。あなたはこのようなことをするでしょう。

tf label /server:http://tfs:8080 LABEL_B $/Project/Folder /recursive

これにより、すべてのファイルにLABEL_Bのラベルが付けられます。LABEL_B次に、正しいバージョンのLABEL_Aファイルに移動する必要があります。

tf label /server:http://tfs:8080 LABEL_B $/Project/Folder /recursive /version:LLABEL_A

...の後に2つあることに注意してください。これは、ファイルのあるバージョンから別のバージョンにそのラベルを移動するようにTFSに指示します。L's/version:

それが終わったら、に基づいて具体的にしLABEL_Bてください。そうすれば、うまくいくはずです。

于 2011-03-10T17:49:31.023 に答える