10

次の問題を解決するためのサポートが必要です:

コードをソース ブランチからターゲット ブランチに保留解除しようとしています。

私は以下を使用しています:

  • VS2012 RC
  • TFS 2012
  • VS2012 x64 クロス ツール コマンド プロンプト

コマンド プロンプトを使用して保留解除操作を実行すると、次のようになります。

  1. シェルフセットの詳細ダイアログが表示され、変更ファイルのリストが表示されます。
  2. [保留解除] ボタンをクリックします。
  3. コマンド プロンプトの出力を確認します。「同じキーを持つ項目が既に追加されています。」

電動工具用の ServicePack1 をダウンロードしました。しかし、私はこの問題を解決できませんでした。

4

4 に答える 4

8

Visual Studio 2013と次のコマンドを使用すると、同じエラーが発生しました。

> tfpt unshelve /migrate /source:"$/Root/Solution" /target:"$/Root/Branches/Solution" "The name of my shelveset"
> An item with the same key has already been added


リサーチ

これが私が問題を解決しようとしたものです:

  • アンドレイの答えに従ってキャッシュをクリアする
  • Source -> Branch and Branch -> Sourceからコマンドを実行してみてください
  • 私のワークスペースには、すでにソース ブランチとターゲット ブランチの両方が含まれていました


解決

VS2013 x86 Native Tools コマンド プロンプトに相当するものを開きます。

  1. Team Foundation Power Tools がインストールされていることを確認します。

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\tfpt

  2. 保留中および除外済みの変更がないことを確認します。
    検出されたが追加されていない除外された変更がいくつかありましたが、これが私を捕まえたものです。除外された変更は次ようになります

    ここに画像の説明を入力

  3. を実行するtf statusと、次のように表示されます。.tfignoreファイルの 1 つの変更または 0 の変更
    のいずれかです。他のものはマージを混乱させます。

    C:\tfs\Root\Solution>tf status
    ファイル名変更 ローカルパス


    $/Root .tfignore edit C:\tfs\Root\Solution.tfignore

    1 件の変更

  4. tfptソースの Solution ディレクトリからコマンドを実行していることを確認してください

これで、あるブランチから別のブランチにシェルブセットを正常にマージできるはずです。

.tfsignore に関する注意:
何らかの理由で取り消したくない保留中の変更が多数ある場合は、.tfignore ファイルを変更しても問題ありません。

これが変更を残した唯一のファイルである場合、マージは中断されません。
.tfignore 参照 => stackoverflow - tfs のファイル/ディレクトリを無視するには?

于 2014-11-24T15:01:33.220 に答える
3

ソース ブランチとターゲット ブランチのすべての変更を元に戻してから、もう一度やり直してください...

于 2015-01-05T11:36:48.130 に答える
2

次のフォルダ内のすべてのファイルを削除して、VS2012(ソース)を再起動してみてください。

C:\ Users [USERNAME] \ AppData \ Local \ Microsoft \ Team Foundation \ 4.0 \ Cache

于 2013-01-05T09:07:26.640 に答える