web-dev-qa-db-fra.com

Quels sont les avantages d'utiliser Perforce plutôt que Subversion?

Mon équipe utilise SVN depuis quelques années. Nous avons maintenant la possibilité de passer à Perforce.

Quels seraient les avantages (et les pièges) d'un tel changement?

65
Ferruccio
  • P4 garde une trace de votre copie de travail sur le serveur. Cela signifie que
    1. Les grandes copies de travail sont traitées beaucoup plus rapidement. J'avais un grand projet SVN et une simple mise à jour prenait 15 minutes car il fallait créer une arborescence de la copie de travail locale (des milliers de dossiers). L'accès au fichier est lent. P4 stocke les informations sur la copie de travail dans la base de données, de sorte que toutes les opérations sont toujours quasi instantanées.
    2. Si vous manipulez vos fichiers sans en informer le serveur, vous avez des problèmes! Vous ne pouvez pas simplement supprimer un fichier - vous devez supprimer un fichier avec le client P4 pour que le serveur le sache. Notez que si vous supprimez un fichier localement, il ne sera pas téléchargé à nouveau lors de mises à jour successives car le serveur pense que vous l'avez déjà! Lorsque tout cela se produisait et que je me retrouvais complètement désynchronisé, je devais en général nettoyer mon exemplaire local et le télécharger à nouveau, ce qui pouvait prendre beaucoup de temps. Vous devez soyez prudent à ce sujet.
  • Le client d'extension Explorer Shell (pensez à TortoiseSVN) est nul et est complètement inutilisable.
  • Deux applications clientes à interface graphique offrent les meilleures fonctionnalités: P4Win et P4V, dont P4V est plus récent et plus facile à utiliser, mais ne contient pas autant de fonctionnalités.
  • Il existe des plug-ins Visual Studio et Eclipse, qui fonctionnent relativement bien, même s'ils ne disposent pas de nombreuses fonctionnalités avancées.
  • De manière générale, P4 offre beaucoup moins de fonctionnalités que SVN et est parfois carrément déroutant.
  • Les définitions de la copie de travail étaient agréables et flexibles. Je pense que P4 est supérieur à SVN ici: vous pouvez définir des masques pour les dossiers de copie de travail et créer toutes sortes d’arbres bizarres, de sorte que vous ne téléchargez que ce que vous voulez exactement où vous voulez, sans avoir à effectuer manuellement plusieurs chèques. Cela s’est avéré très utile lorsque j’avais des gigaoctets de données sur le serveur et que je ne voulais qu’un sous-ensemble spécifique. J'ai utilisé SVN dans une situation similaire avec beaucoup plus de tracas.
  • Ramifier sous P4 est ... étrange. Branchsets et différents types de branches et d'interface utilisateur déroutante. Je ne me souviens pas beaucoup de détails à ce sujet, malheureusement.

Autre que cela, c'est assez standard.

Je vous recommande de garder SVN sauf si vous avez affaire à d’énormes bases de code ou si vous détestez les dossiers .svn qui jonchent votre système de fichiers. SVN + TortoiseSVN est beaucoup plus confortable dans la plupart des situations.

49
Sander

J'utilise actuellement les deux sur différents projets.

  • Le mécanisme de branchement forcé est supérieur.
  • L'outil de résolution de conflit forcé est meilleur.
  • J'aime beaucoup la forte notion de liste de modifications.
  • Perforce semble plus rapide.
  • C'est plus facile à installer et à faire fonctionner.
  • Certains de nos membres aiment vraiment le plugin MS Office, je suis sur un Mac, donc je ne peux pas l'utiliser.

Mais

  • Les clients SVN sont meilleurs, en particulier le plugin Eclipse.
  • Perforce est plus cher.

Ce ne sont que des opinions, alors c'est peut-être une mauvaise réponse :) 

Si j’utilisais déjà l’un ou l’autre, j’aurais beaucoup de mal à changer, car aucun des deux ne semble offrir d’énormes avantages par rapport à l’autre, mais les interruptions pourraient être importantes.

Mise à jour: Depuis que j'ai écrit ceci, je suis complètement passé à l’utilisation de GIT à des fins personnelles et commerciales. Je le choisirais sur SVN ou Perforce n'importe quel jour.

43
Marc Hughes

Votre équipe a-t-elle évalué Git? Il a des fonctionnalités analogues à celles disponibles dans Perforce, mais est gratuit (FOSS).

Ces deux solutions constituent une excellente alternative au SVN lorsque vous travaillez avec une grande équipe.

14

Sur le site Web de Perforce, un article compare les deux: P4 vs SVN

De toute évidence, étant donné la source, vous devez comprendre que cela souligne les avantages de Perforce par rapport à SVN, mais cela reste une lecture utile. Vous ne savez jamais, l'un des avantages pourrait bien être l'élément décisif dont votre équipe pourrait bénéficier compte tenu de votre situation particulière. 

Je recommanderais certainement Perforce pour un certain nombre de raisons déjà évoquées dans d'autres réponses, mais je ne suis pas en mesure de proposer une comparaison avec SVN qui ne l'a jamais vraiment utilisé. 

6
Greg Whitfield

J'utilise forcément au travail, svn à la maison.

L’interface graphique est forcément jolie, mais seulement une fois que vous vous y habituez. Il y a certainement une phase d'apprentissage. Lorsque les non-programmeurs commencent à utiliser, il leur faut généralement un certain temps pour comprendre les concepts. 

La tortue est géniale, très facile à utiliser. Ma femme avocate subversionne tous ses documents en l'utilisant;)

La ramification est forcément facile. En fait, il est si facile que les gens partent sans trop de raisons. Ensuite, vous intégrez parce que vous avez ramifié. Cela peut très facilement devenir la seule chose à faire.

Svn est intégré dans plus de produits. Au moins plus de produits que j'utilise. C'est un avantage considérable, car si vous devez utiliser un environnement externe à votre environnement de développement, ils deviennent tous les deux maladroits.

De temps en temps, nous avons des problèmes avec forcément lorsque nous pensons que vos copies locales sont à jour, mais elles ne le sont pas. Ensuite, vous devez forcer la synchronisation, puis si cela n’est toujours pas bon, supprimez vos fichiers locaux et resynchronisez. Jamais eu de tels problèmes avec svn. C'est en fait un problème énorme car vous ne savez même pas que vous travaillez sur une ancienne copie.

Une autre chose à considérer est la raison pour laquelle vous voulez changer. Si vous avez un système qui fonctionne et que tout le monde le connaît et en est satisfait, pourquoi le remplacer?

6
lajos

La création de branches appropriées et l'intégration de branches dans l'espace de noms sont les principaux avantages que je vois dans Perforce. La fusion est facile. Je ne vois aucun inconvénient à m'éloigner de Subversion.

4
janm

Vous pouvez modifier des éléments hors ligne dans Perforce si vous le souhaitez. Votre espace de travail définit si les fichiers sont en lecture seule ou en écriture. Vous pouvez donc les rendre tous en écriture, les pirater puis demander à Perforce de déterminer ce qui doit être archivé.

Mieux vaut avoir des fichiers en lecture seule et vérifier ce dont vous avez besoin pour que les autres (et vous-même) sachiez ce que vous avez fait/faites.

Le meilleur système pour vous dépend de vos exigences. Si vous n'avez aucune exigence, Perforce l'emporte.

Qui utilise Subversion? Petites équipes non commerciales Équipes commerciales bon marché ou petites

Qui utilise Perforce? Google Sony Samsung nVidia Symantec

2
Tommy Allen

J'ai utilisé SVN, pas beaucoup, juste pour l'essayer. J'ai utilisé Perforce pendant environ trois ans. J'ai pensé que c'était génial. Le service client était génial, très rapide pour résoudre un problème qui s'est révélé être idiot, et ils ont même implémenté une fonctionnalité que j'ai suggérée.

Certains autres développeurs, et en particulier les non-développeurs qui devaient l’utiliser, trouvaient qu’il était un peu difficile d’apprendre à utiliser, en particulier s’agissant de la définition d’une spécification client (une carte de dossiers sur le serveur avec des dossiers locaux).

J'ai trouvé qu'il était très rapide de faire entrer et sortir des fichiers et d'être très fiable. Je pense que la plupart des développeurs avec qui j'ai travaillé ont vraiment aimé cela une fois que nous nous y sommes habitués. Nous utilisions déjà Visual Source Safe avant de changer de système, ce qui signifie que pratiquement tout est meilleur que cela.

Inconvénients, cela coûte de l'argent. Je pense que SVN est un très bon système, SVN étant gratuit, je pense que vous devriez avoir une raison impérieuse de changer, surtout que Perforce prend un certain temps à apprendre. Si SVN fait le travail pour vous et que vous ne vous en plaignez pas, je vous conseillerais de rester avec lui et d'économiser de l'argent pour un jour de pluie!

2
Scott Langham

J'ai utilisé les deux et, d'après mon expérience, Perforce est très utile si vous avez une grande équipe et/ou une base de code; sinon, je choisirais SVN - il est plus facile à configurer et à entretenir.

2

Depuis les dernières versions, Perforce propose une nouvelle fonctionnalité pour les modifications shelving :

Le Shelving est le processus qui consiste à stocker temporairement des travaux en cours sur un serveur Perforce sans soumettre de liste de modifications. Le Shelving est utile lorsque vous devez effectuer plusieurs tâches de développement (telles que des interruptions de travaux prioritaires, des tests sur plusieurs plates-formes) sur le même ensemble de fichiers, ou partager des fichiers pour la révision de code avant de les envoyer au dépôt.

Cela ressemble au modèle de branchement de git qui vous permet de basculer sans effort d'une branche locale à une autre lorsque vous devez effectuer plusieurs tâches à la fois.

Autant que je sache, Subversion n'a pas de fonctionnalité similaire.

Plus d'infos sur le blog Perforce .

2
matt b

Perforce permet au serveur de posséder le client.

Un serveur Perforce peut lire et écrire des fichiers arbitraires sur le client et exécuter ainsi du code arbitraire. La configuration de Perforce étant entièrement côté serveur, le serveur pourrait simplement traiter le disque dur entier de l'ordinateur des clients comme un référentiel peu importe ce qu'il voulait.

Ne jamais exécuter Perforce sauf dans un bac à sable SELinux.

Rappelez-vous: le client Perforce est la marionnette du serveur. Vous devez utiliser les fonctions de sécurité du système d'exploitation pour l'empêcher de faire quelque chose que vous ne voulez pas. TOUJOURS traiter le client Perforce comme hostile.

2
Demi

À mon avis, raison n ° 1 pour sélectionner entre SVN et Perforce est coût.

Petits référentiels: SVN fait son travail correctement et gratuitement.

Big référentiels: Il est fatal d'utiliser SVN: http://yoawsconsult.blogspot.com/2009/05/whenwhy-you-cou-cant-afford-to-use.html . Perforce peut faire de grands dépôts, mais vous devez payer pour cela et pour apprendre à le connaître.

1
user574894

Les licences Perforce diminuent à mesure que le nombre de sièges augmente, si je me souviens bien. Donc, ce n'est pas exactement 900 $ par siège. C'est aussi une licence sur serveur; vous payez pour le nombre total de développeurs humains qui l'utilisent, et non par client d'ordinateur qui l'utilise. Donc, si vous êtes un magasin de 200 personnes, la licence de 200 places leur permet d’utiliser toutes les informations, même de chez elles.

1
Epu

De ma pratique:

  • Perforce a conçu pour stocker également d’énormes fichiers blob (comme des distributions de logiciels), svn stocke toutes ses données sous forme de texte. Il est impossible de stocker efficacement de telles données binaires dans svn

  • Perforce supporte des choses utiles comme "les changements de stockage". L'utilisateur a demandé forcément de stocker le changement comme un "correctif" dans le serveur perforce. Un autre utilisateur peut alors passer en revue les modifications si l'auteur le lui a demandé. Svn ne le supporte pas

  • Le format de ligne de commande Svn est plus facile à comprendre et à mémoriser et pour un usage quotidien

  • Svn est libre

  • Dans "git" et dans "svn", vous éditez vos modifications directement via l'édition de fichiers dans le système de fichiers local après avoir reçu les fichiers du référentiel. La bonne façon de travailler avec des fichiers est forcément de leur indiquer que vous allez travailler avec eux (modification p4).

  • La préparation de l'espace de travail client Perforce sur votre système local nécessite plus de temps que svn en raison de la configuration supplémentaire à effectuer.

1
bruziuz

Être capable de tout faire à partir de l'exorceur via TortoiseSVN est très confortable! Il y a même une extension P4 installée. Mais ce n'est vraiment pas si sophistiqué!

D'autre part, le client P4 offre une vue accessible sur le référentiel du serveur, ce qui permet de travailler sans vérification complète. Cela semblait toujours un peu fastidieux les jours SVN avec TSVN uniquement.

Cela dit, je ne peux pas comprendre le commentaire des meilleures affiches:

  • Le client d'extension Explorer Shell (pensez à TortoiseSVN) est nul et est complètement inutilisable.

Pour FOSS, TortoiseSVN est tout simplement génial! (Même si l'icône fonctionnait un peu chiante et différente sur chaque machine ..)

avec TortoiseSVN vous:

  • peut réorganiser les fonctions
    • apporter 'get lock ..' par exemple
  • avoir accès à TOUTES les fonctions de l'explorateur
  • avoir des icônes dans le menu Shell
  • sont informés des mises à jour
0
ewerybody

un inconvénient de la force par rapport à la version secondaire est la commande d’exportation dans svn. Il est plus facile d’exporter ou de télécharger le code d’une version donnée n’importe où. vous n'avez pas besoin de créer un espace de travail pour cela. Cependant, vous pouvez forcément obtenir le code de version vers votre espace de travail uniquement.

0
shreyas_patel21