私は過去に常に SVN を使用してきましたが、プロジェクトの初期段階を過ぎた今、将来の拡張のために分岐プロセスを理解する必要があります。
これを読んでみると、TFS には Shelving があることがわかります。
それらはどのように比較されますか? それぞれの大きな落とし穴は何ですか?
一般的に、どちらが好まれますか?またその理由は?
棚は避けてください。常に新しいバージョンのファイルにシェルブを復元し、コミットされたすべての変更を失います。安定したブランチで作業を開始し、必要な変更が予想以上に大きいことに気付いた場合にのみ、シェルフを使用してください。次に、作業を棚上げし、ブランチを作成して、棚上げを解除します。
シェルフセットは、保留中の変更、コメント、および関連する作業項目のコレクションです。
シナリオ:
開発チームがプロジェクトの 2 つの異なるコピーで同時に作業する必要がある場合、ブランチが必要です。
別のブランチでの保留解除は、TFS の既定の機能ではありません。
別のブランチで棚上げを解除するには、このブログ投稿の手順に従う必要があります
これは、VS ギャラリーから TFS2010 Power Tools をインストールすることを意味します。
ブランチは、メイン ブランチのコピーです。ブランチを使用して、何かを実行するためのアイデアを試してくださいと言うことができます。何か問題が発生した場合は、ファイルのコピーを削除するのと同じように、元のファイルを破棄できるので便利です。うまくいけば、ブランチを元のブランチにマージして、「メイン」と言います。
Shelve は一時フォルダーに似ています。それらをコード レビューに使用したり、私たちが行っているように使用したり、何かを修正する必要がある場合は、TFS に保存してバックアップしたりできます。作業中のコードを棚上げして (ラベルを付けて)、メインに戻します。完了したら、メインをシェルフに交換します。人生は止まることなく続きます。
何らかの理由で変更をコミットできない場合は、変更を棚上げすることができます。次に、ローカルの変更を保持する (つまり、保留されたコピーをローカルに保持する) か、ローカルで現在のバージョンに戻す (変更は保留されたコピーにのみ存在する) かを選択できます。変更をローカルに保持する場合、シェルビングは、自分のコードのバージョンをリポジトリに保持し、ローカル ディスク クラッシュから保護するための優れた方法です。
また、シェルビングは、まだチェックインされていない多くの変更を行い、「危険で複雑な」コーディング実験に着手する前にそのバージョンを保存したい場合に役立ちます。実験がうまくいかず、それを破棄したい場合は、単に棚上げされたコピーを棚上げから外すことができます。実験が成功した場合は、シェルフセットを削除するか、目立たないようにするだけです。