web-dev-qa-db-ja.com

tfs 2008で別のブランチに移行できますか?

私のチームの一部の開発者がブランチAで行った変更を棚上げしたとしましょう。ブランチBに取り組んでいます。ブランチBに変更を保留解除できますか? (GUIまたはコマンドプロンプトによる)

104
spinodal

Visual Studio Power Tools でこれが可能になります。

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/"
128

シェルフ情報には、移動先の特定のパスが含まれます。残念ながら、棚上げされた場所以外の場所に自動的に移動する方法は知りません。これを実行したかったときは、新しいブランチの同等のファイルをチェックアウトし、古いブランチから棚上げを解除し、ファイルを手動でコピーする必要がありました。

編集:まあ、私はそれを難し​​い方法でやっていたと思います。カートのソリューションを試してみる必要があります。 :)

1
Herms

これを成し遂げるためにかなりの時間を費やし、克服すべき問題はほとんどありませんでした。可能ですが、ここではこれらの問題を回避するために従うべき問題とルールはほとんどありません

エラー:

ワークスペースを特定できません

この特定の問題は、source branch root folderからコマンドを実行することで解決しました。これは、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に対して正常に機能するのであれば、なぜだろうか?

要約するために

  • CMDまたはDevCMDを使用します-関係ありません
  • source branch root folderからコマンドを実行します
  • 特定のVSのチームエクスプローラーサーバー接続を確認する
  • TF Power Tools 2013はTFS v15に対して機能し、少なくともmigrateオプションが機能します
0
T.S.