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?
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.
J'utilise actuellement les deux sur différents projets.
Mais
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.
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.
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é.
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?
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.
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
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!
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.
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.
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.
À 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.
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.
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.
Ê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:
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.