53

Team Server 2010 に対して Visual Studio 2010 Pro を使用しており、プロジェクトを (明らかに) リポジトリからのソリューションとして開いていましたが、「Web サイト」として開く必要がありました。コンパイル中にこれを見つけたので、新しい変更を棚上げし、プロジェクトをローカル ディスクから削除してから、プロジェクトをソースから (今回は Web サイトとして) 再度開いたところ、ファイルの棚上げを解除できなくなりました。

これを回避する方法はありますか? 私は何かを爆破しましたか?サーバーでメンテナンスを行う必要がありますか?

SO #2332685 でこの質問を見つけましたが、彼が話しているキャッシュ ファイルはわかりません (私は XP を使用しています :\ ) 編集:質問を投稿した後にこのリンクを見つけました。問題を解決する

もちろん、TF203015 のエラー コードがどこにも見つからないので、解決策もありません (そのため、タイトルに番号を含めましたよね?)

編集:これらのファイルは最初からチェックインされていないことに言及する必要があります。それは問題ですか?未チェックの商品を棚上げできますか?それは私が間違ったことですか?

編集: WHAP - 見つけました!!! 保留中の変更にチェックインとして表示されるため、存在しないアイテムに対して「元に戻す」を使用します。

4

8 に答える 8

57

変更を棚上げしたにもかかわらず、ワークスペースをリロードしようとしてファイルを削除してしまいました。次に、VS2010 は、これらのファイルがまだ保存待ちであると考えました。私はそれを必要としなかったので、保留中の変更の変更を「元に戻す」方法を見つけなければなりませんでした。

それから私は棚上げを解くことができました。

2 つの操作 (保留解除、追加のコミット) が同時に実行されていると見なされ、操作 (保留解除) が 1 つしかないと見なされていました。

于 2010-05-11T21:44:38.667 に答える
49

これは、OPの質問とは少し異なります

十分な注意を払わずに、あるブランチから別のブランチに複数の変更セットをバッチマージしようとすると、TF203015 が発生する可能性があります。

MAIN トランクと DEV ブランチがある状況を考えてみましょう。MAIN から DEV を分岐し、DEV の機能に熱心に取り組みました。進行に合わせて作業を DEV にチェックバックします。ここで、1 週間か 2 週間早送りします。これで機能が完成し、MAIN に再びマージしたいと考えています。

これは、開発者の 1 人がこのエラーに遭遇した場所です。

彼は 1 つのソリューションに数週間取り組んでおり、変更セットを定期的に DEV に戻していたので、不連続な一連の変更セットを MAIN にマージしたいと考えていました。そこで、彼はマージ オプションを選択し、最初の変更セットを選択します。問題なくマージし、すぐに次の変更セットをマージしました。強打TF203015、および出力ウィンドウでの非常に役に立たないテスト。互換性のない保留中の変更。

少しいじった後、ここで何が起こっているのかがわかります。最初のマージにより、開発者ソリューションの MAIN に保留中の変更が作成されました。次のマージ試行も同じソリューションへの変更であり、TFS は同じファイルへの保留中の変更の 2 番目のセットを「キューに入れる」必要があります。これはできません。

したがって、このシナリオでは、TF203015 は次のことを意味します。「宛先ブランチには、この変更セットで変更されたいくつかのファイルに対する保留中の変更が既にあります。このマージ操作を実行する前に、宛先ブランチの変更を解決してコミットしてください」

ソリューション; 各マージ操作の後、開発者は MAIN のワークスペースをテストし、マージによって発生した保留中の変更をコミットしてから、DEV に戻って繰り返します。

実際には賢明でシンプルですが、非常にわかりにくいエラーメッセージに隠れています。

于 2012-03-06T14:38:24.077 に答える
5

コマンドを含むTeamFoundationServer Power Tools 2011年3月(http://msdn.microsoft.com/en-us/vstudio/bb980963.aspx)を使用できますtfpt unshelve

動力工具がインストールされたら、Visual Studioコマンドプロンプトを開き、目的のプロジェクトが含まれているディレクトリに移動して、tfpt unshelveコマンドを実行します。棚上げを解除してマージダイアログを表示するので、競合を解決できます。

私はこのブログ投稿をこの解決策を見つけるのを手伝ってくれたと信じています:http://fluentbytes.com/the-how-and-why-behind-tf203015-file-has-an-incompatible-change-while-unshelving-a-shelve-セットする

于 2011-06-29T20:46:03.007 に答える
2

同じ問題のように見えましたが、変更を棚上げした後にブランチを作成したので、それらの変更を新しいブランチに棚上げしたかったのです。

TFS は、シェルフが作成されたパスとは異なるパスに保留解除できません。

解決策: 元のブランチに戻してから、Beyond Compare を使用して元のブランチから新しいブランチに変更をマージし、チェックインしました。

于 2011-01-28T19:36:03.227 に答える
2

また、たとえば「テスト」でフォルダーを作成し、開発からテストにマージしたい場合、新しく作成されたフォルダー構造が TFS にチェックインされていない可能性もあります。このエラー メッセージが表示されることもあります。

したがって、このメッセージ エラーは、SHELVESETS とは関係なく、Google からこのページを見つけた他のユーザーに対しても発生する可能性があります。

于 2015-06-25T20:06:49.397 に答える
0

2 つのブランチ MAIN(ターゲット) と DEV(ソース) がある場合、DEV を MAIN にマージしたい場合、ソースからマージするすべてのファイルは、ターゲット ブランチ内の同様のファイルよりも古いものであってはなりません。

たとえば、2016 年 3 月 14 日に変更された、DEV ブランチに変更されたファイル test.cs があります。MAIN ブランチでは、2016 年 3 月 15 日に test.cs が変更されました。したがって、ターゲットはソース ファイルよりも新しく、TF203015 があります。

解決策: TFS エクスプローラーで競合ファイルに移動し、明示的にマージします。TFS は競合マネージャーを開き、手動で競合をマージできます。次に、選択した変更セットをマージできます。

備考: さらに競合がある場合は、各競合ファイルに移動して明示的にマージする必要があります。これにより、TFS は競合マネージャーを開き、手動でマージできます。

于 2016-03-16T07:21:17.453 に答える
0

このリンクは私の問題を解決しました:

https://blogs.infosupport.com/the-how-and-why-behind-tf203015-lt-file-gt-has-an-incompatible-change-while-unshelving-a-shelve-set/

理由は、同じワークスペースでの保留中の変更により、互換性のない変更が作成されたためです。したがって、保留中の変更を元に戻し、棚上げを解除してみてください。これで問題は解決するはずです。

于 2015-10-29T14:59:28.963 に答える