web-dev-qa-db-ja.com

Subversionの代わりにPerforceを使用する利点は何ですか?

私のチームは数年前からSVNを使用しています。 Perforceに切り替えるオプションがあります。

そのような切り替えを行うことの利点(および落とし穴)は何でしょうか。

65
Ferruccio
  • P4はサーバー上の作業コピーを追跡します。この意味は
    1. 大きな作業コピーは、はるかに高速に処理されます。以前は大規模なSVNプロジェクトを使用していましたが、ローカルの作業コピー(数千のフォルダー)のツリーを作成する必要があるため、簡単な更新には15分かかりました。ファイルアクセスが遅い。 P4は作業コピーに関する情報をデータベースに保存するため、操作は常にほぼ瞬時に行われました。
    2. ファイルをいじってサーバーに通知しないと、問題が発生します!ファイルを削除することはできません-サーバーが認識できるように、P4クライアントでファイルを削除する必要があります。ファイルをローカルで削除した場合、サーバーはすでにファイルを持っていると判断するため、連続した更新で再びダウンロードされることはありません。この多くが発生し、最終的に同期がとれなくなった場合、通常、ローカルコピーをクリーンアップして再度ダウンロードすることに頼らなければならず、時間がかかります。 mustこれに注意してください。
  • Explorer Shell拡張クライアント(TortoiseSVNを考える)はひどく使い物になりません。
  • 最高の機能を提供する2つのGUIクライアントアプリケーションがあります。P4WinとP4Vです。P4Vはより新しく使いやすくなっていますが、機能が豊富ではありません。
  • Visual StudioとEclipseのプラグインがあり、これらは比較的うまく機能しますが、高度な機能はあまりありません。
  • 一般的に、P4の機能はSVNよりもはるかに少なく、紛らわしい場合があります。
  • 作業コピーの定義は素晴らしく、柔軟性がありました。ここでP4はSVNよりも優れていると思います:作業コピーフォルダのマスクを定義し、あらゆる種類の奇妙なツリーを作成できますので、手動で複数のチェックアウトを行う必要なく、必要なものだけを必要な場所にダウンロードできます。これは、サーバー上にギガバイトのデータがあり、その特定のサブセットのみが必要な場合に非常に役立ちました。同様の状況で、SVNをはるかに面倒に使用しました。
  • P4での分岐は...奇妙です。ブランチセットとさまざまな種類のブランチと紛らわしいUI。残念ながら、これに関する詳細はあまり覚えていません。

それ以外は、かなり標準的です。

巨大なコードベースを扱う場合や、ファイルシステムを散らかす.svnフォルダーを嫌う場合を除き、SVNを保持することをお勧めします。 SVN + TortoiseSVNは、ほとんどの状況ではるかに快適です。

49
Sander

現在、異なるプロジェクトで両方を使用しています。

  • PERFORCEの分岐メカニズムは優れています。
  • Perforce競合解決ツールの方が優れています。
  • 私は、チェンジリストというperforceの強力な概念が本当に好きです。
  • PERFORCEはより高速に見えます。
  • セットアップと実行が簡単になります。
  • 私たちのメンバーの中には、PERFORCEのMS Officeプラグインが本当に好きな人もいます。私はMacを使用しているので、使用できません。

だが

  • SVNクライアント、特にEclipseプラグインが優れています。
  • Perforceはより高価です。

これらは単なる意見ですので、おそらくこれは悪い答えです:)

どちらか一方を既に使用している場合、どちらも実際に大きな利点を提供しないように思えるので、切り替えるのが非常に困難になりますが、切り替えの混乱が大きくなる可能性があります。

更新:これを書いて以来、私は個人的および商業的な目的の両方でGITを使用することに完全に切り替えました。私はいつでもSVNまたはPerforceのいずれかでそれを選択します。

43
Marc Hughes

あなたのチームはGitを評価しましたか? PERFORCEで利用可能な機能に類似した機能がありますが、無料です(FOSS)。

大規模なチームで作業する場合、どちらもSVNの優れた代替手段です。

14

PerforceのWebサイトには、2つを比較する論文があります。 P4 vs SVN

明らかに、ソースを考えると、SVNに対するPerforceの利点を強調していることを理解する必要がありますが、それでも有用な読み物です。あなたは決して知らない、あなたのチームがあなた自身のユニークな状況を与えられることから恩恵を受けることができるキラーアイテムは、恩恵の一つかもしれません。

すでに他の回答で説明されているいくつかの理由からPerforceをお勧めしますが、実際に使用したことのないSVNと比較することはできません。

6
Greg Whitfield

職場ではPERFORCEを使用し、自宅ではsvnを使用します。

Perforce GUIは非常に優れていますが、慣れて初めてです。それは間違いなく学習曲線を持っています、非プログラマーがperforceを使い始めるとき、彼らが概念を得るまで通常いくらかの時間がかかります。

亀は素晴らしいです、それは非常に使いやすいです。私の弁護士の妻はそれを使用して彼女のすべての文書を破壊します;)

分岐は簡単に行えます。実際、それほど簡単ではないので、人々はあまり理由なく分岐します。その後、分岐したため統合します。簡単にできるのはあなただけです。

SVNはより多くの製品に統合されています。少なくとも私が使用する製品。開発環境の外部でどちらかを使用する必要がある場合、両方とも不格好になるため、これは大きな利点です。

時々、ローカルコピーは最新であると考えているが、そうではないというperforceの問題があります。その後、強制的に同期する必要があります。それでもまだ問題がある場合は、ローカルファイルを削除して再同期します。 svnでこのような問題が発生したことはありません。古いコピーで作業していることさえ知らないので、これは実際には大きな問題です。

考えるべきもう1つのことは、変更したい理由です。動作するシステムがあり、誰もがそれに慣れていて満足している場合、なぜそれを置き換えるのですか?

6
lajos

適切な分岐と名前空間の分岐の作成は、Perforceで見られる最大の利点です。マージは簡単です。 Subversionから離れることにマイナス面はないと思います。

4
janm

必要に応じて、Perforceでオフラインで編集できます。ワークスペースは、ファイルが読み取り専用か書き込み可能かを定義するので、ファイルをすべて書き込み可能にして、ハッキングしてから、Perforceにチェックインする必要があるものを見つけてもらうことができます。

ファイルを読み取り専用にして、必要なものをチェックして、他のユーザー(および自分自身)が自分が何をしているか、または何をしているかを確認することをお勧めします。

より良いシステムは、要件が何であるかによって異なります。要件がなければ、PERFORCEが勝ちます。

Subversionを使用するのは誰ですか?小規模な非営利チーム安価または小規模の商業チーム

誰がPerforceを使用していますか? Google Sony Samsung nVidia Symantec

2
Tommy Allen

試してみるためだけにSVNを使用しました。 Perforceを約3年間使用しました。素晴らしいと思いました。カスタマーサービスは素晴らしく、非常に高速であり、エラーが解決されただけで私が手抜きであることが判明し、提案された機能を実装しました。

特にclient-spec(サーバー上のフォルダーのローカルフォルダーへのマップ)の定義に関しては、他の一部の開発者、特にそれを使用する必要のある非開発者は、使い方を学ぶのが少し難しいと感じました。

ファイルの出し入れが非常に迅速で、非常に信頼性が高いことがわかりました。私が一緒に仕事をしたほとんどの開発者は、慣れてしまえば本当に気に入ったと思います。ただし、切り替える前にVisual Source Safeを使用していました。そのため、それ以上のものはほとんどありません。

欠点は、お金がかかることです。 SVNは非常に優れたシステムであると思います。SVNは無料なので、特にPerforceが学習に時間がかかるため、切り替えるには説得力のある理由が必要だと思います。 SVNがあなたのために仕事をしていて、それについて苦情がなければ、私はあなたがそれを使い続け、雨の日のためにお金を節約することをお勧めします!

2
Scott Langham

私は両方を使用しましたが、私のチームでは、大きなチームやコードベースがある場合、Perforceは非常に理にかなっています。それ以外の場合は、SVNを選択します。セットアップと保守が簡単です。

2

最近のバージョンでは、Perforceに shelving変更 の新しい機能があります:

棚上げとは、チェンジリストを送信せずに、進行中の作業をPerforceサーバーに一時的に保存するプロセスです。シェルフは、同じファイルセットで複数の開発タスク(優先度の高い作業からの中断、複数のプラットフォームでのテストなど)を実行する必要がある場合、または作業をデポにコミットする前にコードをレビューするためにファイルを共有する必要がある場合に役立ちます。

これはgitの分岐モデルに似ており、マルチタスクが必要なときに、あるローカルブランチから別のローカルブランチに簡単に切り替えることができます。

私の知る限り、Subversionには同様の機能はありません。

Perforceブログの詳細

2
matt b

Perforceでは、サーバーがクライアントを所有できます。

Perforceサーバーは クライアントで任意のファイルを読み書きして、任意のコードを実行します。 Perforce構成はすべてサーバー側であるため、サーバーは単にクライアントのコンピューターのハードディスク全体をリポジトリとして扱い、 望みどおりに。

SELinuxサンドボックス以外でPerforceを実行しないでください。

要確認:Perforceクライアントはサーバーのパペットです。 オペレーティングシステムのセキュリティ機能を使用して、望ましくない操作を実行しないようにする必要があります。 常にPerforceクライアントを敵対的なものとして扱います。

2
Demi

私の意見ではreason#1SVNとPerforceを選択する理由はcost

Smallリポジトリ:SVNはその仕事を無料で無料で行っています。

Bigリポジトリ:SVNを使用するのは致命的です: http://yoawsconsult.blogspot.com/2009/05/whenwhy-you-cant-afford-to- use.html 。 PERFORCEは大きなリポジトリを作成できますが、そのために、そしてそれを知るためにお金を払わなければなりません。

1
user574894

私が思い出すように、座席数が増えると、PERFORCEライセンスのコストは下がります。したがって、1座席あたり900ドルではありません。また、サーバーベースのライセンスです。それを使用するマシンクライアントごとではなく、それを使用する人間の開発者の合計数に対して支払います。したがって、200人のショップの場合、200席のライセンスにより、自宅からでもすべての人がperforceを使用できます。

1
Epu

私の練習から:

  • 巨大なblobファイル(ソフトウェア配布など)も保存するように設計されたPerforceは、svnがすべてのデータをテキストとして保存します。このようなバイナリデータをsvnに効果的に保存することは不可能です

  • Perforceは、「シェルフの変更」などの便利な機能をサポートしています。ユーザーはperforceサーバーに「パッチ」のような変更を保存するようにperforceに要求しました。作成者が要求した場合、別のユーザーが変更を確認できます。 SVNはそれをサポートしていません

  • SVNコマンドライン形式は、理解と記憶がより簡単になり、毎日の使用にも適しています

  • SVNは無料です

  • 「git」および「svn」では、リポジトリからファイルを受信した後、ローカルファイルシステムでファイルを編集することにより、変更を直接編集します。 PERFORCEでファイルを操作する「正しい」方法は、ファイルを操作することをマークすることです(p4編集)....

  • ローカルシステムでのPerforceクライアントワークスペースの準備には、追加の設定が必要なため、svnよりも長い時間が必要です

1
bruziuz

エクストーラーからTortoiseSVNを介してすべてを行うことができるのは非常に快適です!そのため、P4エクステンションもインストールされています。しかし、実際にはそれほど洗練されていません!

一方、P4クライアントはサーバーリポジトリにアクセス可能なビューを提供するため、完全なチェックアウトなしで作業できます。これは、TSVNのみを使用するSVN時代には常に少し面倒なものでした。

これを言って私はトップポスターのコメントを理解することはできません:

  • Explorer Shell拡張クライアント(TortoiseSVNを考えてください)はひどく使い物になりません。

FOSSの場合、TortoiseSVNは素晴らしいです! (アイコンの動作は少し機敏で、マシンごとに異なりますが..)

tortoiseSVNの場合:

  • 関数を並べ替えることができます
    • たとえば、「ロックを取得」を前面に表示する
  • エクスプローラーからすべての機能に実際にアクセスできる
  • シェルメニューにアイコンがある
  • アップデートについて通知されます
0
ewerybody

サブバージョンに対するperforceの欠点の1つは、svnのexportコマンドです。あるバージョンのコードをどこにでも簡単にエクスポートまたはダウンロードできます。そのためのワークスペースを作成する必要はありません。しかし、perforceでは、ワークスペースにのみバージョン付きコードを取得できます。

0
shreyas_patel21