回答:
Visual Studioのパワーツールは、あなたがこれを行うようにする必要があります。
C:\src\2\Merlin\Main>tfpt unshelve /?
tfpt unshelve - Unshelve into workspace with pending changes
Allows a shelveset to be unshelved into a workspace with pending changes.
Merges content between local and shelved changes. Allows migration of shelved
changes from one branch into another by rewriting server paths.
Usage: tfpt unshelve [shelvesetname[;username]] [/nobackup]
[/migrate /source:serverpath /target:serverpath]
shelvesetname The name of the shelveset to unshelve
/nobackup Skip the creation of a backup shelveset
/migrate Rewrite the server paths of the shelved items
(for example to unshelve into another branch)
/source:serverpath Source location for path rewrite (supply with /migrate)
/target:serverpath Target location for path rewrite (supply with /migrate)
/nobackup Skip the creation of a backup shelveset
たとえば、Branch1で作成された "Shelve Set Name"という名前のシェルフセットをBranch2にマージするには、次のコマンドを使用します。
>tfpt unshelve "Shelve Set Name";domain\userName /migrate /source:"$/Project/Branch1/" /target:"$/Project/Branch2/"
各ファイルを手動でマージする必要を回避するtfptの代替ソリューション
tfsパワーツールの問題は、「ベースレスマージ」を実行しているため、すべてのファイルを確認する必要があることです。800以上のファイルのシェルフセットがあり、「自動マージ」ボタンを信頼しなかったため、各ファイルを順番に処理したくありませんでした。そのため、別の方法を見つける必要がありました。
C:\temp\shelveset-name
(注:エクスポートの際に進行状況バーはありません-エクスポートに時間がかかる大きなシェルブセットがある場合は、Windowsエクスプローラー(ファイル>プロパティ>サイズ)でファイルがまだダウンしていることを確認する必要があります。凍っていると思う)。
Windowsエクスプローラーを使用して、それらを新しいブランチにコピーするだけです。
これは私のために働きました:
c:\temp\shelveset-name
、新しいブランチに対応するように名前を変更する必要があります。ヒント:必ず正しい場所にコピーしてください!!!重要:最初にTFSをオフラインにしないと、小さな赤いチェックマークが付いていない(アンシェルフチェンジセットからの)新しいファイルが表示され、それらを再度除外して含める必要があることがわかりました。追加してもらいます。誰かがこの問題の代替ソリューションを持っている場合、私は知りたいと思います-更新は機能しないようです。
私はこれを成し遂げるためにかなりの時間を費やし、克服すべき問題はほとんどありませんでした。可能ですが、ここではいくつかの問題とこれらの問題を回避するために従うべきいくつかのルール
エラー:
ワークスペースを判別できません
この特定の問題は、ソースブランチのルートフォルダーからコマンドを実行することで解決されました。これは、SOで「ターゲット」ブランチを使用すると回答しているいくつかの回答とは逆です-いいえ、「ソース」を使用します。
cd [your !!source!! branch root]
tfpt unshelve /migrate /source:"$/MyCollection/Development/Maint1.1" /target:"$/MyCollection/Development/Maint1.2" "myShelveset;UserName"
この後第2号が出ました。TFSサーバーに接続できなかったようです。複数のVSがインストールされ、さまざまなTFSサーバーに接続されています。VS12を使用していて、ワークスペースとサーバーに接続していました。しかし、TFPT2013を機能させるには、同じ接続をVS13でレプリケートする必要があることを理解していませんでした。同じサーバーとワークスペースに接続します。
私もTFPT2015を使用してそれをやろうとしましたが、それをインストールし、それはTFPT.exeをインストールしなかったため、役に立たなかった。だから私はTFPT2013からTFS2015まで試してみましたが、この特定のコマンドで動作しました。VS12 / 13がTFS2015に対して問題なく機能するのはなぜでしょうか。
要約する
次の手順は、小さなサイズの棚(20ファイル以下)に使用できます。