1

私は、ワークスペースと作業フォルダという概念について少し混乱しています。ソースコントロールエクスプローラで私のマシンに複数のワークスペースを設定できることがわかりました。ワークスペースの私の理解は、基本的に私のすべてのプロジェクト(無関係のもの)を含むフォルダです。たとえば、C:\ ProjectsVisual Studio 2017、TFVCプロジェクトごとに1つのワークスペース、または1つのワークスペース内に複数のTFVCプロジェクトがありますか?

私は現在、C:\ Projectsというディレクトリを指している自分のコンピュータの名前と呼ばれる単一のワークスペースを持っています。これには、Visual Studio上でそれぞれ独自のプロジェクトであるいくつかのプロジェクトがありますオンライン。例:DESKTOP-43DDV90Pには、その内部の各プロジェクトの作業フォルダがあります。

WORKSPACE: DESKTOP-43DDV90P 
Source Control Folder: $/Project1, Local Folder C:\Projects\Project1 
Source Control Folder: $/Project2, Local Folder C:\Projects\Project2 

私はこれが正しい仮定OR私は、次のようにプロジェクトごとにワークスペースを作成する必要がある場合であるかどうかを知りたい:

WORKSPACE: PROJECT1-WS 
Source Control Folder: $/Project1, Local Folder C:\Projects\Project1 
WORKSPACE: PROJECT2-WS 
Source Control Folder: $/Project2, Local Folder C:\Projects\Project2 

私は新しいASPですべての設定を完了すると。ソース管理下のNETコアWebアプリケーション私のディレクトリ構造は次のようになります:

C:\Projects\Project 1 
this contains: 
Project1 (folder vs creates for solution) 
BuildProcessTemplates (folder from vs online) 

C:\Projects\Project 1\Project1 
this folder contains: 
Project1 vs solution file 
Project1 (folder that finally takes you to the project1 site files) 

答えて

1

TFSワークスペースは、基本的にコンピュータとTFSサーバー間のアカウントですr。これにはServerPath -> Local Pathマッピングのセットと、ワークスペースがどのように維持されているかに関するいくつかの設定(例えば、権限、ファイルタイムスタンプの動作など)が含まれています。

プロジェクトで作業していると、ブランチが作成されることがよくあります。これは、ワークスペースマッピングが関連するようになったときです。ブランチがない場合は、通常、コードベース全体をマッピングするだけです。つまり、すべてのソースが必要です。しかし、を実行すると、には分岐があります。多くの場合、一度に1つの分岐だけが必要になることがよくあります。例えば、私が持っている場合は、この:

Sample repository with Master and FeatureX branches

各ブランチは、同じファイルのセットが含まれていますどのようにあなたが見ることができます。私がFeatureXブランチで何かを開発しているなら、結局私はそれをMasterブランチにマージします。

これは、あなたの質問が最も関連性が高くなるときです:これらの両方を含むワークスペースを持っているか、各ブランチに対して別々のワークスペースを持っていますか?これは優先事項です。私は複数のブランチで変更を加え、そのうちの1つの変更だけをチェックしたい場合を避けるため、別々のワークスペースを持つことを好みます。たとえば:

Showing changes across multiple branches

私は、私は2つの異なるブランチからファイルを変更した大規模プロジェクトでは気づかないかもしれません。 TFSはこれを可能にしますが、通常私がある支店で働いているときに別の支店に影響を与えたくありません。発生する可能性のある別の問題は、含まれているチェンジセットの1つが複数のブランチにまたがる場合、TFSに変更をマージする際に問題があることがあります。たとえば、私は写真の変更をチェックインします。私は新しいブランチを作成します(Feature2)。変更セットをFeature2にマージします。何が起こるはずですか?マスターにチェックインしたコピー、またはFeatureXにコピーされますか?あなたはこの仕事をすることができますが、奇妙な状況に陥ることもあります。複数のワークスペースで、私は今まで、そのワークスペースに関連するブランチの変更を確認します:

Sample workspace mapping for FeatureX branch only

+0

は答えをいただき、ありがとうございます。作業フォルダをプロジェクトとしてマッピングすると、ディレクトリ構造は次のようになります。 C:\ Projects \ Project1 ...このフォルダには、BuildProcessTemplatesフォルダとProject1フォルダがあります。次に、ここでProject1をクリックすると、そこにVSソリューションのあるフォルダが表示され、最後にProject1をクリックするとプロジェクトファイルに戻ります。これは、ASP.NET Core Webプロジェクトを含むソリューションのためのものです。それは理にかなっていますか?私はちょうど外部に余分なフォルダがあるように感じますが、これは理にかなっていると思います。 –

+0

また、どのような順序で作業をするのかを教えてください。私はまずビジュアルスタジオで新しいプロジェクトを作成してから、そのプロジェクトのワークスペースにローカルマッピングを設定してから、適切なチームプロジェクトに接続してから、最終的に新しいソリューションをクリックします新しいasp.netコアプロジェクトを追加するためのチームエクスプローラウィンドウですが、追加するときは[ソースコントロールに追加]にチェックを入れません。プロジェクトが作成されると、ソリューションを右クリックしてソース管理に追加します。これは正しいようですか? –

+0

@BlakeRivellブランチを持つ簡単なプロジェクトを表示するために私の答えを更新しました。これは通常、私が見たいものです。 BuildProcessTemplatesはTFSによって自動的に追加され、ブランチ用のフォルダがあり、その中にソリューション、プロジェクト、好きなフォルダ構造があります。 – Jimmy

2
などあなたの状況、企業のポリシーに応じています

...それは、ワークスペースであまりにも多くのマッピングがある場合に管理するのは難しいです、そうでなければ、ワークスペースはOKです。

あなたを助けることができる最適化に関するいくつかの記事:

Using multiple workspaces with Visual Studio

Optimize your workspace

関連する問題