web-dev-qa-db-ja.com

TFSでのシェルビング解除:それはどういう意味ですか?

私が得た部分は次のとおりです。TFSで棚上げすると、変更のサーバーコピーが作成されるため、変更は失われませんが、作業中のソースコードトランク/ブランチにはチェックインされません。

質問:どのような状況下で「棚上げ解除」機能を使用しますか? TFSサーバーからシェルブセットを削除するということですか?シェルフセットから取得できますか?それとも、実際にはシェルブセットと「実際の」ソースコードの差分の説明ですか?

51
brentlightsey

シェルブ解除とは、シェルフセットをマシンに復元し、作業を継続できるようにする方法です。サーバー上のシェルブセットは変更されません(そのためには、もう一度シェルブし、同じシェルブセット名を使用する必要があります)。

使用方法の1つの例は、作業中にマシン間で変更を移動することです。デスクトップマシンで棚上げし、ラップトップで棚上げを解除してから、ラップトップで作業を続けます。

また、コードのレビューなどの理由で、変更を誰かと共有するために使用することもできます。変更を棚上げしたら、他の人が行って棚上げを解除し、何をしたかを確認できます。

シェルフを解除しても、実際にはサーバー上のシェルブセットなどは変更されません。これは単なる取得操作です。

63
Herms

ハームズはスポットです。彼の答えを読んでください。

1つの重要な警告:シェルブセットが作成されてからGetを実行した場合、Unshelveはシェルブセットに含まれるローカルバージョンのファイルのみをロールバックします。したがって、ワークスペースに一貫性がない可能性が非常に高くなります。

常にシェルブ解除後にGetを再実行するをお勧めします。これにより、実際には半分だけ新しい/半分古い状態にあることによる単なる副作用であるファントムビルドエラーに時間を浪費することがなくなります。また、チェックイン時にのみ検出するのではなく、シェルブセットのコンテンツと最新のサーバーリビジョン間の競合を事前に解決する必要があります。

31
Richard Berg

棚を使用して、進行中のコードをバックアップします。ハードドライブがクラッシュするなどの可能性があります。私のチームの他の開発者には作業が見られないので、コードビルドについて心配する必要はありません。

保留を解除すると、変更がワークスペースに戻されます。サーバーからシェルブセットを削除すると削除されます。

リチャード・バーグが言ったことに続いて、unshelveの電動工具のバージョンには、実際に取得と解決が含まれています。

4
stannius