8

10 人の開発者がいるプロジェクトがある状況があります。各開発者は、その日に到着すると、その日の開発に使用するマシンがランダムに発行されます。マシン名は異なります (DEV01 - DEV10 など)。それらが開発者に発行された時点では、マシンは同一であり、開発者が日中に行った変更はマシン上に保持されません (ソース コードの変更は、ローカルではなく TFS に保存されます)。もちろん、これらは実際には仮想マシンですが、それは目前の点とはあまり関係ありません。

問題は、毎朝、開発者が 3 つの問題に遭遇することです。

1) 割り当てられたマシンが、最後に割り当てられたマシンと異なる場合があります。たとえば、DevMan A は昨日 DEV04 を使用し、今日 DEV06 を受け取った可能性があります。彼のワークスペース定義は現在、DEV06 に関連付けられています。新しいワークスペースを作成するか、古いワークスペースを DEV04 に移行する必要があります。

2) 割り当てられているマシンが昨日使用されていた可能性があり、一部のマッピングが競合している可能性があります。たとえば、DevMan A が今日 DEV04 を持っていて、プロジェクト フォルダーを "C:\MyProj\Solution" にマッピングするワークスペースを作成したいとします。ただし、DevMan B は昨日 DEV04 を持っていて、同じプロジェクト フォルダーを使用していました。TFS が不平を言うようになりました。

3)特定のマシンを使用するのはこれが初めてかもしれません。このマシン用に、新しいマシン用のすべてのソース管理マッピングを再作成する必要があります。

これらの問題はすべて、ケースバイケースで簡単に解決できますが、朝から生産性がいくらか低下します. TFS ワークスペースの定義を「緩和」して、何らかの形で定義にマシン名を含めないようにしたいと考えています。それを除けば、自動的に実行できる、またはユーザーの介入を制限して実行できる上記の問題の解決策を誰かが知っている場合、それも理想的です。

4

4 に答える 4

7

まず、非常に明白な答えは、マシンをユーザー専用にすることです。

第二に...あなたが本当に述べたように問題を解決したいなら:

特定のマシンに割り当てずにワークスペースを使用することはできません。この仮定は製品に暗黙的に含まれています。しかし、あなたはそれをだますことができます:)
警告:このレシピはうまくいくようですが、私はそれを使って個人的にプロジェクトを実行したことはありません.

  1. 各ユーザーに「仮想」マシン名を割り当てます。つまり、UseridVM
  2. 仮想マシンごとに、次の (永続的または起動スクリプトによる) セットアップが必要です。
    • 新しい環境変数「ユーザー変数」を作成します。つまり、_CLUSTER_NETWORK_NAME_=UseridVM
  3. あると便利: ユーザー ID 専用の仮想ハード ドライブを使用し、VM から VM へユーザーを追跡する "D:" にマップ (またはスクリプトを使用してマウント) します。

これで、ユーザーが Visual Studio を開くと、ワークスペースは指定された値 "UseridVM" をマシン名として使用するため、各マシンで同じワークスペースが検出されます。

永続的な仮想ハード ドライブがない場合は、ワークスペースがどのファイルが既に存在するかを記憶するため、各ユーザーはその日の開始時に「実際の」「最新の取得」(特定のバージョンを取得し、すべてのボックスにチェックを入れる) を必ず実行する必要があります。すでに存在していると思われる場合は再ダウンロードしません。

于 2010-03-30T00:49:48.403 に答える
3

1.) 作業するワークステーションごとに、ワークスペースを定義する必要があります (リモート <=> ローカル マッピング)。ネットワーク上にソース ファイルを保存できますが (VS キャッシュのため、これはお勧めしません)、ローカル ワークスペース (マッピング定義) は、特定のユーザーの特定の PC に存在する必要があります。

2.) 開発者ごとに個別のローカル フォルダーを作成して、同じフォルダーで作業しているさまざまなユーザーが混乱したり、他のユーザーのチェックアウトされたコードの最新情報を取得したりしないようにします。例えば:

c:\Projects\DevManA\...
c:\Projects\DevManB\... etc.

3.) これはおそらく多くの議論を引き起こしますが、TFS のルートをローカルの作業領域にマッピングすることをお勧めします。DevManA マッピング:

$/ to C:\Projects\DevManA\

次に、プロジェクトをチェックアウトすると、構造が得られます。

c:\Projects\DevManA\TFSProject1\..
c:\Projects\DevManA\TFSProject2\..
c:\Projects\DevManA\TFSProject3\..

これは誰でも 5 秒でできる簡単で素早いマッピングで、準備完了です。そうすれば、誰もがディスク上に同じレイアウトを持ち、TFS のように「脳にフィット」しやすくなります。

于 2010-03-29T14:00:40.420 に答える
2

I don't know if this will meet the requirements stated in the question, but you might check this out:

http://blogs.msdn.com/granth/archive/2009/11/08/tfs2010-public-workspaces.aspx

TFS 2010 has added public / shared workspaces which can be used by multiple users on the same machine.

于 2010-04-30T19:33:30.670 に答える
0

ワークスペースは共有ネットワーク ドライブに配置できるため、開発者がログインしているマシン (仮想またはその他) は関係ありません。これは問題なく動作しますが、それを維持するために、いくつかの COM を一度構成する必要があります。

于 2010-03-25T19:16:14.857 に答える