2009-04-16 3 views
6

Je suis un ingénieur de publication pour une équipe de 35 programmeurs. Nous travaillons sur PHP, Java, C# et SQL. Nous utilisons actuellement Subversion, qui fonctionne depuis environ un an. Nous traversons une phase où les conflits deviennent de plus en plus courants. Nos empreintes sont de plus en plus nombreuses, de sorte que les performances deviennent un problème pour les caisses et les validations.Exploration de nouveaux systèmes de contrôle de version. Mon plus grand besoin: Une fusion fiable

Je me demande ce que les systèmes de contrôle de version commerciale ou des logiciels libres et les logiciels clients peuvent recommander adaptent mon profil: - repo centralisée - simple fusion - exportations rapides, se fond, checkouts - Résolution des conflits

Merci pour ton aide!

;) .randy

- Ajout 2009-04-16 @ 06h21 PST

Plus d'infos: notre empreinte repo est ~ 6Go. Nous avons regardé Git et Bazaar. Grandes caractéristiques et les raisons de les utiliser. Nous voulons un repo centralisé.

+0

Je pense que l'exigence d'un dépôt central peut limiter beaucoup de bons choix. Vous pourriez relâcher votre exigence, disons, d'avoir toujours une copie de travail «production» ou «sortie» qui est considérée canonique. –

+0

Terminé ma réponse avec des commentaires sur la fonctionnalité de fusion entre Subversion et d'autres outils – VonC

Répondre

8

Un malentendu commun est que les systèmes de contrôle de version distribués comme git ou mercurial ne sont pas bons pour les repos centralisés. Cela dit, je vous recommande de regarder git si vous ne l'avez pas déjà fait.

2

Perforce est mon préféré.

+0

+ 1 d'accord, avait VSS avant et Perforce est bien meilleur. –

+1

Il n'est pas difficile d'être bien meilleur que VSS, en fait, il serait difficile d'être pire. –

+0

Qu'est-ce qui rend Perforce meilleur que Subversion? –

2

Il est vrai que Git est un bon choix, ne pas oublier que « de plus en plus l'empreinte de l'application » implique d'autres questions que vous aurez à traiter, peu importe ce que SCM vous finissez par utiliser.

A savoir:

  • Application Architecture afin de diviser votre application en plus des "modules" à gérer et indépendants (les uns des autres) (ou composants)
  • Merge workflow: votre SCM nécessité de traiter 3-way merge, alors que avoiding sideway-merges. Cela est particulièrement vrai en phase de maintenance, lorsque vous avez à la fois une version en production à maintenir, et un nouveau développement pour la prochaine version à faire.
  • Delivery storage afin d'interroger facilement vos livraisons dans un environnement de test, les environnements d'homologation, l'environnement de production ...

En ce qui concerne la fonction de fusion, Perforce ou Git sont meilleurs que Subversion, car ils vous permettent pour fusionner n'importe quel sous-arbre que vous voulez, en mémorisant les informations de fusion, et avec de nombreuses stratégies de fusion (les nôtres, les leurs, ...).

Même dans sa dernière version 1.6, Subversion ne supporte que fiablemerges from the root directory of a branch (vous pouvez fusionner les sous-arbres, mais le log ne sera pas précis pour se confond à SUBTREE en dehors ceux que vous avez actuellement vérifiés sur)

0

Nous avons été heureux avec Starteam de borland. L'opération checkin/checkout est rapide même à partir de systèmes distants et fournit également différents états et états de promotion.

0

Quelle que soit la façon dont vous allez, assurez-vous d'ajouter FishEye à elle .. aide à managing your code que la complexité augmente ..

soutient actuellement SVN, Perforce et CVS.

0

Vérifier:

  • Accurev
  • Plastic SCM. Regardez son arborescence 3D et explorateur de branches, et explorez les liens de fusion là
1

Bazaar peut être utilisé dans de nombreux types de flux de travail. Voir cet article sur l'utilisation dans un centralized workflow.

Questions connexes