問題タブ [perforce]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
1469 参照

version-control - ソース管理システムで複数の変更セットを処理する

ソース管理で問題が発生することはほとんどありません。この例では、Perforce で問題が発生していましたが、多くの SCM、特に分散 SCM で同じ問題が発生すると思われます。

Perforce は、変更リスト (または必要に応じて変更セット) をサポートしています。変更リストは、次の 2 つの一般的な使用方法をサポートしています。

  1. 変更リストをコミットする場合、コミットはアトミックであるため、すべてのファイルがコミットされるか、まったくコミットされません。これは、チェンジリストを参照するときにほとんどの人が話題にする主要な機能です。

  2. Perforce は複数のチェンジリストをサポートしています。基本的に、ファイルをチェックアウトするときは、ファイルが属するチェンジリストを指定します。そのため、数か月の作業が必要で数百万ドルを稼ぐ新しい電子メール機能に取り組んでいて、テクニカル サポートの誰かが昨日修正しなければならないバグを持ってきたとしても、最初から始める必要はありません。プロジェクト全体の新しいブランチ。バグのあるファイルを新しい変更リストにチェックアウトし、問題を修正し、新しい変更リストをチェックインして、何も起こらなかったかのように、新しいメール機能の実際の作業に戻ることができます。

ほとんどの場合、すべてがうまく機能します。ただし、電子メール機能を実装するときは、特に main.h に無数の変更を加える必要があり、バグ修正に取り掛かると、小さな変更を加える必要があることに気付くことがあります。 main.h にもあります。新機能のチェンジリストにはすでに main.h がチェックアウトされているため、バグ修正用のチェンジリストに簡単に入れることはできません。

今、あなたは何をしますか?いくつかの選択肢があります:

  1. 新しい clientspec を作成します。Perforce の clientspec は、デポ内のファイル/ディレクトリのリストと、すべてがコピーされるローカルの宛先です。そのため、電子メール機能を変更することなく、プロジェクトの 2 つ目のコピーを作成できます。

  2. ファッジをします。変更した main.h のコピーをバックアップし、このファイルを元に戻します。その後、main.h をバグ修正チェンジリストに自由にチェックアウトできます。バグを修正し、バグ修正の変更リストにチェックインしてから、main.h をメール機能の変更リストにチェックアウトします。最後に、最初に作成したバックアップからすべての変更をマージします。

  3. main.h に加えたすべての変更に副作用や依存関係がないことを確認したので、main.h をバグ修正変更リストに移動し、変更を加えてチェックインします。その後、メール機能に再度チェックアウトします。変更リスト。明らかに、このアプローチには 2 つの問題があります。1 つ目は、考慮していなかった副作用が実際に存在する可能性があることと、2 つ目は、バージョン履歴が壊れていることです。

オプション 1 はおそらく最もクリーンですが、必ずしも実用的ではありません。私が取り組んでいたプロジェクトには、数百万行のコードと非常に複雑なビルド プロセスがありました。新しい環境をセットアップするには 1 日かかるため、5 分間のバグ修正は現実的ではありませんでした。

オプション 3 は悪いオプションですが、これが最も高速であるため、非常に魅力的です。

これで、私が通常使用するオプション 2 が残ります。

誰かがより良い解決策を持っていますか?

長い質問で申し訳ありませんが、StackOverflow で、十分に考え抜かれた質問がより良い答えを引き出すことを発見しました。

0 投票する
3 に答える
3910 参照

visual-studio - プロジェクト ファイルをチェックインして実行することなく、ビジュアル スタジオとの統合を実行する

私は、約 25 のプロジェクトに分解された大規模なソース ベース (約 15K ファイル) に取り組んでいます。ソースを perforce に保持したい (そしてそのために perforce を評価しています) が、セットアップが複雑なため、Visual Studio プロジェクトをソース管理に保持することはできません。理論的には、これに対する答えは次のとおりです。プロジェクトをチェックインしますが、それは現実的ではありません (チェックインされた VS のいくつかのバージョンのプロジェクトと、さらにこれらのそれぞれのいくつかのバリアントのプロジェクトになります。代わりに、それらは自動的に生成され、このセットアップは非常にうまく機能します)。

プロジェクトを perforce に追加せずに VS にファイルをチェックアウトして編集させる方法はありますか? ユーザーが perforce クライアントに移動し、編集のために各ファイルを手動でチェックアウトする必要がないようにする方法はありますか? または、プロジェクトをソース管理に追加することなく、プロジェクト内のファイルがソース管理下にあることをVSに認識させる方法はありますか?

すべてのユーザーに事前に編集する可能性のあるすべてのファイルを編集するようにチェックアウトさせ、変更を送信する前に変更されていないファイルを元に戻すこともできますが、このアプローチを採用するとパフォーマンスが低下しますか?

0 投票する
4 に答える
1132 参照

version-control - Perforce、複数のソリューション間で共有されるプロジェクト

更新

そのため、Visual Studio 2003 でバグが見つかった可能性があることが判明しました (私は知っています...驚くことではありません)。Visual Studio を使用して ([ソリューションをソース管理に追加] を使用して) ソリューションをリポジトリに追加すると、すべてうまくいくことがわかりました。


そのため、VSS リポジトリ (それを呼び出すことができる場合) を Perforce に変換していますが、複数のソリューションに含まれるプロジェクトで問題が発生しています。

リポジトリは次のようになります...

  • //デポ
    • DevMain
      • ソリューション1
        • Project1 (DLL にビルド)
      • Solution2 (Project1 をプロジェクト参照として持つ)
        • プロジェクト2
      • Solution3 (Project1 をプロジェクト参照として持つ)
        • プロジェクト3

Solution2 の Visual Studio で統合されたソース管理を使用すると、プロジェクトが現在のソリューション フォルダーの下にないため、移動する必要があるというメッセージが表示されます。複数のソリューションがプロジェクト 1 を参照しているため、1 つのソリューションが文句を言わない場所にプロジェクト 1 を整理することはできません...

Project1 を DLL にビルドして Lib フォルダーに保存するのがベスト プラクティスですか? それとももっと良い方法がありますか?

ありがとう。

0 投票する
4 に答える
2458 参照

visual-studio - Perforce と SourceSafe は Visual Studio で共存できますか?

より具体的には、Visual Studio 2008。ソース管理のために Perforce への移行をテストしているので、P4SCC プラグインをインストールして使い回したいと思います。ただし、まだ移行されていないプロジェクトに対しても、引き続き SourceSafe の IDE 機能を使用したいと考えています。2つは平和的に共存できますか、それともVSの特定のインストールではどちらかですか?

0 投票する
4 に答える
4207 参照

version-control - すべてのコメントを変更して、2 つのラベル間の分岐を強制しますか? (マージを含む)

私たちのperforce管理者は「max-row」スキャンを制限しているため、次を実行するという私の最初のアイデアは機能しません。

  1. 特定のラベル時間 1 でのブランチへの統合を含むすべての変更
  2. 特定の以前のラベル時間 2 でのブランチへの統合を含むすべての変更
  3. 時間 1 から時間 2 の変更を減算して、コメント付きの新しい変更を取得します。

そのような大規模なクエリを使用せずに同じ結果を取得する別の方法はありますか (perforce に 7 年間の履歴が含まれており、-i が歴史の夜明けまでスキャンをトリガーする場合)

グレッグのコメントに基づいて、次のコメントが追加されました。

基本的には、特定のリリース ブランチで 2 つのラベル間 (または、より一般的には、古いラベルと現在) で修正されたバグを確認することがポイントです。リリース ブランチに入った変更を確認する、現在持っている非常に複雑なスクリプトを簡素化 (高速化) したいと思います。元の変更からすべてのチェンジセット コメントを出力するために、少なくとも 2 つのブランチに入っているファイルに従います。 (中間マージ コメントは、実際の変更コメントの説明ではなく、merge123 などのように言う傾向があるため、元のコメントまでツリーをたどる必要があります)、スクリプトは最終的に以下のようなものを出力します (品質センター ID を入力します)。変更セットのコメントに):

  1. qualityCenterId123 - いくつかのバグを修正
  2. gui qcId124 - その他の修正
  3. バグ qcId125 - その他のバグを修正しました
  4. マージ123

コメントに基づく更新:

Toby のアプローチの問題は、コード ブランチへの変更のほとんどが統合によってもたらされたということです。走る。これが、同じ結果を得るための代替アプローチを探している理由です。

0 投票する
2 に答える
361 参照

perforce - コード カバレッジ テストをサポートするツールを作成する

会社で実行しているコード カバレッジテストの一部をサポートする小さなツールを作成しようとしています。

ツールに対する私の要件は次のとおりです-

入力- (チェックインされた変更リストの一部として) 変更されたファイル (.cpp および .h) のリスト

出力- ソースで追加または変更されたすべての関数 (変更のチェックインの結果として)。

どうすればこれを行うことができますか?基本的には、どの行が変更され、変更された行に関連付けられている機能は何ですか...

詳細 - ソース管理: Perforce プラットフォーム: Windows

0 投票する
6 に答える
10262 参照

svn - Subversionユーザーがリポジトリの一部にアクセスするのを防ぐにはどうすればよいですか?

プロジェクトにDreamhostでホストされているSubversionリポジトリを使用しています。

一部のユーザーに制限付きでアクセスを許可したいと思います。少なくとも、一部のユーザーに読み取り専用アクセスを許可したいのですが、理想的には、一部のユーザーがリポジトリの一部をまったく表示しないようにしたいのです。SubversionのWebドキュメントに記載されているユーザー権限が見つからないと思いますが、見つかりませんか?

私はPERFORCEを使用することに慣れているので、私が欲しいのはPERFORCEp4 protectに対して何をするかです。

ありがとう。

0 投票する
1 に答える
769 参照

xcode - Xcode から p4merge を使用するにはどうすればよいですか?

SVN セットアップで Xcode の p4merge ツールを使用したいと考えています。トラブルを求めていますか?

0 投票する
1 に答える
463 参照

version-control - クライアント仕様にないファイルを統合できますか?

クライアントの仕様にないファイルを統合する方法はありますか?

具体的には、ローカルに構築した多数の静的ライブラリを含むディレクトリがあり (ソース管理からそれらを必要としないため)、サーバーからそれらをプルする必要がないことを望んでいます。統合。

ブランチ仕様:

//project1/project/lib/... //project2/project/external/project1/lib/...

私のクライアント仕様では:

-//project1/project/lib/... //cleintspec/project1/project/lib/...