web-dev-qa-db-ja.com

TFSの棚付けとは何ですか?

TFSの棚上げは、単にソフトチェックインであるため、他のチームメンバーがソースコードを見ることができますか?

つまり、棚上げされたコードは正しくコンパイルされませんか?

302
yaya6

棚には多くの用途があります。主なものは次のとおりです。

  1. コンテキストの切り替え:現在のタスクの作業を保存して、別の優先度の高いタスクに切り替えることができます。上司が走って「ああ、バグ、バグ、バグ!」と言ったときに、自分のビジネスを念頭に置いて新しい機能に取り組んでいるとしましょう。また、機能に現在の変更をドロップして、バグを修正する必要があります。機能の作業を棚上げし、バグを修正してから、戻って棚上げを解除し、後で変更に取り組むことができます。
  2. 変更セットの共有:チェックインせずにコードの変更セットを共有したい場合は、他の人がそれを棚に入れることで簡単にアクセスできるようにすることができます。これは、不完全なタスクを他の人(貧しい魂)に渡す場合や、何らかのテストコードがある場合、他の人が実行する必要があることを決してチェックインしない場合に使用できます。 h/t これをレビューに使用することに関する他の回答に対しては、非常に良いアイデアです。
  3. 進行状況を保存する:複雑な機能に取り組んでいる間、進行状況を保存したい「良い点」にいることがあります。これは、コードを整理するのに理想的な時期です。レンダリングのバグを修正するために、いくつかのCSS/HTMLをハックしているとします。通常、あなたはそれを強打し、それが正しいように見えるまであなたが考えることができるすべての可能なクラッジを繰り返します。ただし、正しく見えたら、チェックインする前に他の人があなたが何をしたかを理解できるように、マークアップをクリーンアップするために戻ってみることができます。この場合、すべてが正しくレンダリングされたらコードを棚上げできます、マークアップを自由にリファクタリングできます。誤って再度マークアップした場合は、いつでも戻って変更セットを取得できます。

他の用途はありますか?

442
TJB

棚は、チェックインせずにボックス上のすべての変更を保存する方法です。変更はサーバー上に保持されます。後で、あなたまたはあなたのチームメイトは、あなたのマシンのいずれかにそれらを「解放」することができます。

また、レビューの目的にも最適です。私のチームでは、チェックインのために変更を棚上げし、変更の説明と変更セットの名前を記載したメールを送信します。チームのメンバーは、変更セットを表示してフィードバックを提供できます。

参考:シェルブセットを確認する最良の方法は、次のコマンドを使用することです

tfptレビュー/ shelveset:shelvesetName; userName

tfptはTeam Foundation Power Toolsの一部です

103
JaredPar

そのとおり。シェルフを作成すると、他の人が最新版を取得してもあなたのコードは見えません。

コードの変更をサーバーに保存します。サーバーはおそらく、作業用PCよりもバックアップした方がよいでしょう。

自宅で仕事をしたいという衝動を感じた場合、別のマシンで変更を取得できます。

他の人はあなたの棚を見ることができます(これはオプションかもしれませんが)ので、チェックイン前にコードを確認できます。

34
teedyay

これらの議論の多くで見落とされている1つの点は、変更を保留したSAMEマシンに戻す方法です。おそらくほとんどの人には明らかですが、私にはそうではありませんでした。保留中の変更を元に戻すと思います-そうですか?

このプロセスは次のように理解しています。

  1. 現在保留中の変更を保留するには、プロジェクトShelveを右クリックして、保留名を追加します
  2. これにより、サーバーへの変更が保存(または保留)されます(誰にも表示されません)
  3. 次に、「保留中の変更を元に戻す」を実行して、コードを最後のチェックインポイントに戻します。
  4. その後、元に戻したコードベースラインを使用して必要なことを実行できます。
  5. いつでも変更を保留解除 (マージの競合が必要になる場合があります)

したがって、シェルブする必要がある作業を開始する場合は、上記の保留中の変更を元に戻すステップを実行するときにチェックインポイントに戻るので、開始する前に必ずチェックインしてください。

14
Nick Wright

私はこれに常に出くわすので、ブランチに関する補足情報:

複数のブランチで作業している場合、シェルフセットはそれらを作成した特定のブランチに関連付けられます。そのため、シェルフ上のチェンジセットRustを長すぎて別のブランチに移動する必要がある場合、パワーツールの7月リリースでそれを行う必要があります。

tfpt unshelve /migrate
14
joshua.ewer

棚は、既存の変更に影響を与えることなく、変更がソース管理に保存されているようなものです。ソース管理でファイルをチェックインすると、既存のファイルが変更されますが、シェルビングは変更をソース管理に保存するようなものですが、実際の変更は変更しません。

2
Mr. N. Das

@JaredPar:はい、レビューにはシェルフセットを使用できますが、シェルフセットは自分や他の人によって上書きされる可能性があるため、長期的に安定しないことに注意してください。したがって、規制関連のレビューでは、ベースとしてShelvesetを使用するのではなく、チェックイン(Changeset)を使用する必要があります。非公式のレビューの場合は問題ありませんが、正式な(たとえばFTA関連の)レビューは許可されません!

1
Daniel

ゲーテッドビルドを使用している場合、ビルドがトリガーされると、ビルド用に送信されるワークスペースのシェルフセットが作成されます。ビルドが失敗すると、シェルブセットは拒否されます。ビルドが成功すると、変更セットが作成され、TFSにコミットされます。どちらの場合でも、そのチェックイン/ビルドを実行する人はワークスペースを調整する必要があります。これは、Get Latestを実行するのと同じくらい簡単です。

0
Jim Roth