2009-05-13 5 views
0

私のチームはVisual Studio 2008を使用してSSISパッケージを開発しており、私たちはソース管理システムとしてPERFORCEを使用しています。ユーザーがプロジェクトにファイルを追加すると、現在のバージョンであるかどうかをチェックすることなく、プロジェクトが自動的にチェックアウトされます。 ファイルがチェックアウトされる前にVisual Studioに強制的に最新バージョンのファイルをダウンロードさせる方法はありますか?Visual Studio 2008におけるPERFORCEの問題

通常、Visual Studioでファイルが「見つからない」となった後に、この問題が発生することがあります。通常は次のようになります。

  1. ユーザーAはプロジェクトにファイルを追加します。
  2. ユーザーAは、プロジェクトと新しいファイルの両方をチェックインします。
  3. ユーザBが最新バージョンを取得せずにプロジェクトをチェックアウトします
  4. ユーザBがファイルを追加します。
  5. ユーザーBは、プロジェクトと新しいファイルの両方をチェックインします。
  6. ユーザーAは最新のプロジェクト定義を取得し、ファイルが「不足しています」と通知します。

防止対策として、ファイルを追加する直前に私のチームメンバーに最新のプロジェクト定義を取得する必要があります。この予防措置にもかかわらず、間違いは起こり続け、ファイルは「消える」。 PERFORCEから手動で取得してプロジェクト定義に追加することはできますが、この痛みをまったく経験する必要はありません。私はPerforceが自動的にファイルへの変更を検出できることを知っています。 PERFORCEは自動的にローカル・コピーをサーバー・バージョンと比較し、元に戻すチェックアウトを選択したときに違いが検出された場合は、ローカル・バージョンを置き換えます。ファイルをVSSのようにチェックアウトできるようにする前に、強制的にチェックする方法が必要です。 開発者がVSSに戻ってほしいと言ったのは悲しいことです。

+1

ステップ5はどのように実行されますか?私は提出を行うためにp4vを使用し、ファイルが変更された場合は提出しません。それでも矛盾がなくても、私はまだ解決をしなければなりません。私が他の人の変更を緩める唯一の方法は、解決の間に彼らの変更を無視することです。 –

+0

私たちのサイトでは、この種の動作は見られませんでした。現在使用しているVisual Studio PERFORCEプラグインのバージョンは? VS統合をより良くした最後のいくつかのリリースには、多くの良い変更がありました。現在のバージョンは2008.2です。 手順(3)で、われわれの開発者は最新のバージョンに同期するよう求められます。私はちょうど私たちの環境で、新しいバージョンのプロジェクトではない新しいcppファイルを追加しようと試みました。プロジェクトファイルの最新バージョンに同期するように促されました。 – Mark

答えて

1

これは、P4SCCおよびVisual Studioで使用されている「共有」ワークスペースクライアントの問題である可能性があります。ワークスペース・クライアントは、各ユーザーとマシンに対して一意でなければなりません。PERFORCEはワークスペース・クライアントを使用して、特定のマシンのワークスペースの内容を追跡します。 「標準_1」クライアントを使用して 最新のリビジョンに

  • 両方のユーザーAとBの力シンク:ここで

    は、両方のユーザーが同じワークスペースクライアントを使用しているとき、それが起こる方法です。テーブル がサーバー上で更新され、 プロジェクト "foo"がリビジョン12にあることに注意してください。

  • ユーザーBは "foo"をチェックアウトし、ファイル を追加してサブミットします。今度はテーブルが に更新され、プロジェクト "foo" はstandard_1 ワークスペースのリビジョン#13にあります。

  • ユーザーAが今、プロジェクト「foo」をチェックアウトし がファイルを追加し、提出 - 競合することなく - リビジョン#14として 標準_1ワークスペースで、 のPERFORCEワークスペース はすでに#を持っていると思うので、 13。

解決策は、各ユーザーがそれぞれのマシンに固有のワークスペースクライアント仕様を持っていることを確認することです。これにより、各ユーザーワークスペースの保留リストが分離され、チェックイン時の編集と競合に関する警告が毎回機能します。

+0

私は先週金曜日にパーフォースに電話をし、技術代表者と話しました。彼は私たちの電話で彼のメモを見直した後、同じ結論に達しました。チームメンバー全員が自分のワークスペースクライアントを使用しており、問題は解決されました。投稿ありがとう! –

関連する問題