チームプロジェクト内のtfsにプロジェクトがあり、それからそのプロジェクトを別のチームプロジェクト内の別の場所に移動しました。
Jenkinsがチームプロジェクトに接続してソリューションを構築するように設定しましたが、新しいtfsチームプロジェクトに接続するように設定を変更すると、以下のエラーが表示されます。
[workspace] $ "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\tf.exe" workspace -new Hudson-ProjectName1-Build-MASTER;domain1\username1 -noprompt -server:http://domain-eg.net:8080/tfs/newteamproject ********
The path D:\jenkins\jobs\ProjectName1-Build\workspace is already mapped in workspace Hudson-ProjectName1-Build-MASTER [http://domain-eg.net:8080/tfs/oldteamproject].
それで、上記は既存のワークスペースがあることを示しているので、それを削除するためにbelowコマンドを実行しました。
tf workspace -delete Hudson-ProjectName1-Build-MASTER;domain1\username1 -noprompt -server:http://domain-eg.net:8080/tfs/oldteamproject
ワークスペースは削除されましたが、それでも同じエラーが発生します。
下記のコマンドを実行して、マッピングが削除されたかどうかも確認しました。
tf workspace -server:http://domain-eg.net:8080/tfs/oldteamproject Hudson-ProjectName1-Build-MASTER
しかし、ワークスペースは期待どおりには存在しません。
だから、私はそれがどこかにそれをキャッシュしているのではないかと思い、下記のコマンドを実行しました:
tf workspaces /remove:* /collection:http://domain-eg.net:8080/tfs/oldteamproject
そしてそれは "キャッシュ内のどのワークスペースもサーバーからの*と一致しない http://domain-eg.net:8080/tfs/oldteamproject "と言った
だから私はそれもキャッシュされていないと思います。
それでは、エラーの原因と解決方法を教えてください。
VSより
異なるマシンのVSから
リモート登録を編集できるので、VSを登録と同じマシンに置く必要はありません。 "Workspaces ..."項目を押すと表示されるダイアログには、 "Show Remote Workspaces"と書かれたチェックボックスがあります - それをクリックするだけで、あなたはすべてのあなたの登録のリストを得るでしょう:
コマンドラインから
開発者のコマンドプロンプトから "tf workspace"を呼び出します。 「ワークスペースの管理」が直接表示されます。
私は同じ問題に遭遇し、手動でTFSキャッシュのすべてのファイルを削除することでそれを修正することができました。
%LocalAppData%\Microsoft\Team Foundation\3.0\Cache
または4.0
、5.0
など.
TFSからマッピングを削除するには、次の手順に従います。
team Explorer
を開くSource Control
をクリックproject
Remove Mapping
をクリックエラーは本物です。別のマシンに同じ名前のワークスペースを作成したかもしれません。今、あなたは異なるマシン名を持つマシンを変更したかもしれません。
だからここで間違いなくうまくいく回避策があります。
私はここに提案されるように/ newownerコマンドを使用してマッピングを削除することができました:
Team Foundation Serverワークスペースにアクセスするにはどうすればよいですか?
このコマンドにより、マッピングを削除した[ワークスペースの編集]ウィンドウが開きました。その後、必要のないワークスペースを削除しました。
更新2019-01-23
The workspace wkspaceEg does not exist…
コマンドで正しいユーザー名(wkspcOwnerDomain\wkspcOwnerUsername
)を使用した後でも、次のエラーtf workspace
が繰り返し表示される場合は、
tf workspace "wkspaceEg;wkspcOwnerDomain\wkspcOwnerUsername" /collection:http://tfs.example.com:8080/tfs/collectionEg /login:TFSUsername,TFSPassword
それならtf workfold
コマンドはそれを修正するのを助けるかもしれません。この質問を参照してください。
それでもうまくいかず、 TFSサイドキック を使用できない、または使用したくない場合は、下の危険な最後のオプションに進みます。
TFS 2012を使用しています。オンラインで提案されたものすべてを試しました。キャッシュフォルダの削除、ワークスペースのドロップダウンの使用、tf workspaces/remove:*、コントロールパネルからの認証情報のクリア、IEなど.
何もうまくいきませんでした、私のワークスペースはどういうわけか破損していると思います。最後に、私はTFSデータベースに行き、以下の質問を実行しました。それはうまくいった!もちろんデータベースをいじったり、バックアップを取ったりするときは十分に注意してください。
データベースはTfs_<<your_TFS_collection_name>>
です。 Tfs_Configuration
MSSQLデータベースを無視します。よくわかりませんが、Tfs_<<your_TFS_collection_name>>
データベースがない場合、設定はTfs_DefaultCollection
データベースにある可能性があります。マッピングはtbl_WorkingFolder.LocalItem
に格納されています。
/*Find correct workspace*/
SELECT WorkspaceId, *
FROM tbl_Workspace
ORDER BY WorkspaceName
/*View the existing mapping*/
SELECT LocalItem, *
FROM tbl_WorkingFolder
WHERE WorkspaceId = <<WorkspaceId from above>>
/*Update mapping*/
UPDATE tbl_WorkingFolder
SET LocalItem = 'D:\Legacy.00\TFS\Source\Workspaces\teamProjEg' WHERE
/*LocalItem = NULL might work too but I haven't tried it*/
WorkspaceId = <<WorkspaceId from above>>
ここの答えのどれも私のワークスペースを削除しませんでした。しかし、これはあなたのために働くかもしれない一つの解決策です。
最後にすべてのワークスペースを削除し、ゼロから始めました。一定。
[ファイル] - > [ソース管理] - > [詳細] - > [ワークスペース] - > [ワークスペースの管理]でワークスペースを選択して[編集]をクリックすると、ローカルフォルダを変更できます。
私はVisual Studioを介してTFSサーバーにログインするように促されたので、サーバーアクセスに通常必要とされる私のSUアカウントを使いました。これはいくつかの問題につながりました、そして、私は私がちょうど私のものすべてを複製したということに気づかずに、私は別のフォルダーにマッピングすることになった。ある時点で、Visual Studioは私の通常のユーザーに戻って、保留中の変更を「失い」、新しい保留中の変更が古いマッピングに入れられたことに気付きました。
保留中の変更を回復するために新しい場所(SUアカウントがリンクされている場所)に再マップしようとすると、既にSUにマップされていることがわかりますが、それはできませんでした。地図を削除する方法はありません!リモートワークスペースを表示したり、コマンドラインからすべてのワークスペースを削除したりしても、何もわかりません。私はそれから「それが実際にはSUユーザーアカウントにリンクされているとしたらどうなる私のコンピューター上ではではなく、ドメインではないか」と思いました。私は自分のSUとしてローカルにログインしました、そして、確かに、そのユーザーのためにすべて設定されたワークスペースがありました。マッピングを削除し、通常のユーザーに戻って問題なく再マッピングすることができました。
物語の教訓は、おそらく他のユーザーが同じマシンにログインしていることです。これは現在ログインしているユーザーからは見えないため、マッピングを削除したり表示したりすることはできません。
Cacheフォルダ全体を削除する必要はありません。すべての設定や設定を失うことになりますワークスペースマッピングは、次のファイルに保存されています。
VersionControl.configユーザーのローカル設定/アプリケーションデータディレクトリの下。窓7にここにあります:
%LocalAppData%\ Microsoft\Team Foundation\x.0\Cache\Volatile
ここでx = 3.0、4.0、5.0、6.0など.
この中にはguidという名前のフォルダがあり、それぞれを開き、手動で前述のファイルを編集して、ワークスペースマッピングを削除します(ディレクトリパスはmappedpaths属性に存在します) TFSサーバーへのローカルフォルダ(現在は使用されていません)
TFSからプロジェクトのマッピングを削除する手順は次のとおりです。
(1)表示ボタンをクリックしてください。
(2)チームエクスプローラーを開く
(3)ソース管理をクリック
(4)プロジェクト/ディレクトリを右クリック
(5)[マッピングの削除]をクリックします
(6)最後にプロジェクトフォームのローカルディレクトリを削除します。
.slnファイルを編集してtfsバインディングのGlobalSection要素を削除するだけで、tfsマッピングを削除することもできます。
ご協力いただきありがとうございます!
問題のあるワークスペースを見つける SELECT * from tbl_Workspace WHERE WorkspaceNameは '%xxxxx%'のようになります。
希望のワークスペースを検索 SELECT * FROM tbl_Workspace WHERE WorkspaceName '%zzzzz%'のように
Edit Top 200 tbl_WorkingFolderを選択してから、問題マッピングを見つけます SELECT * FROM tbl_WorkingFolder WHERE WorkspaceId =問題WorkspaceIdを上から
WorkspaceIdを目的のWorkspaceIdに変更します
最後にプロジェクトエクスプローラに行き、プロジェクトのマッピングの削除を選択します
希望するWorkSpaceと一致するようにVB6 MSSCCPRJ.SCCを変更します
ここでの答えはすべて、すべての場合に機能しない部分的な答えのようです。あなたが適切な権限を持っていると仮定すると、この答えはすべての場合に機能すると思います。
tf workspaces
結果には、同一の構造を持ついくつかのテーブルがリストされる場合があることに注意してください。テーブルが1つしか表示されない場合は、他の回答の前提条件の一部が役立ちます。ただし、2つ以上のテーブルが表示される場合、そのCollection文字列が重要です!この例では、2つのコレクションがあると仮定します(2つは4つと同じですが、1つは他のコレクションよりも退屈です)。
https://dev.Azure.com/foo
およびhttps://bar.visualstudio.com/
運が良ければ、この2つのうちどちらを使用したいかがわかります。ただし、それらすべてを循環する必要がある場合は、一度に1つのコレクションを実行するだけで済みます。ここでの各「コレクション」は、Azure DevOpsの「組織」と同じです(私は思う)。
このコレクションの詳細を使用しない場合、エラーメッセージが表示される場合があります。
ソース管理サーバーを特定できません。
tf workspaces /computer:* /owner:* /collection:https://dev.Azure.com/foo
これにより、あなたが扱っているもののより完全な全体像が得られます。複数のMSAと組織アカウントが同じコンピューターからこのレポにアクセスしている場合、これは特に厄介です。実際、一見同一のエントリが複数ある場合があります。現在の知識に基づいてそれらを削除しようとすると、動作しない場合があります。しかし、より多くの情報を得ることができます。
/format:xml
を追加します:tf workspaces /computer:* /owner:* /collection:https://dev.Azure.com/foo /format:xml
これにより、いくつかの追加プロパティを持つXMLの束が得られます。私たちが最も気にしているのは、所有者のエイリアスです。これは、これらのワークスペースを調べて削除するために必要な情報が不足しているためです。この追加情報がなければ、壁にぶつかり、エラーメッセージが表示されてしまいます。
ワークスペースを1つ指定します。
必要な情報がすべて揃ったので、追加のOwernAliases
エントリを指定して、削除する一意のエントリを選択(または複数の場合は繰り返す)して、次のコマンドを使用します(いくつかの例を示します)リストされています):
tf workspace /delete /collection:https://dev.Azure.com/foo "MyWorkspaceName;Windows Live ID\[email protected]"
tf workspace /delete /collection:https://dev.Azure.com/foo "MyWorkspaceName;John Doe"
tf workspace /delete /collection https://dev.Azure.com/foo "MyWorkspaceName;2C3E8474-A39C-4785-8794-DC72F09981E6\[email protected]"
GUIDはAADディレクトリを識別し、エイリアス内にある可能性のあるスペースを処理するために引用符があります。 「MyWorkspaceName」は、ワークスペースをリストする以前のクエリから取得されます。
この非常に徹底的なアプローチがないと、この質問の他の答えがすべて失敗する可能性があります。これらの作業の一部はローカルワークスペースをクリアしますが、サーバーワークスペースはクリアしません。サーバーワークスペースは競合する可能性があります。さらに、以前に別のアカウントを使用していた場合、MSAからAADアカウントに切り替えた場合など、物事が困難になる可能性があります。また、MSAアカウントを持っている場合は非常に困難になりますおよび同じワークステーションから使用したものと同じ電子メールアドレスを持つ複数のAADアカウント。そして、それらのすべてがワークスペースのデフォルト名であるコンピューターのホスト名を使用している場合、それは非常に面倒です。私の場合、ワークスペース名、所有者名、コンピューター名がすべて同じ4つのワークスペースがありました(つまり、XML形式を使用しない最初のクエリには4つの同一のレコードがありました!)。
これよりもこれらを管理するためのよりグラフィカルな方法があるかどうかはわかりません。私は見て、まだこれより良い方法を見つけていません。
言及された手がかりがあなたを助けていない場合はTeam Foundation Sidekickをダウンロードし、それを使用してワークスペースを削除できます。
まずシステムにTeam Explorerプラグインをダウンロードしてインストールしてから、ソース管理エクスプローラに移動します。ナビゲーションペインで[Workspace]フィールドを見つけ、[Workspaces]オプションをクリックします。 [ワークスペース]オプションをクリックすると、マップされているすべてのワークスペースが表示されます。削除ボタンをクリックして、必要なワークスペースのマッピングを削除します。