2010-09-06 3 views
3

Où je travaille, nous utilisons Subversion depuis des années (apparemment, je n'ai pas été là depuis si longtemps). Il y a des gens ici qui préfèrent utiliser TFS, d'autres qui préfèrent migrer vers Mercurial et d'autres qui préfèrent garder le statu quo. Les autres contrôles de source (Git, autres) ne voleront pas en raison d'une mauvaise intégration de Visual Studio.comment puis-je développer un test de performance et un test de performance pour fusionner des fichiers sous différents systèmes de contrôle de source?

Le plus gros problème/la peur qu'un nouveau contrôle de source atténuerait est la peur de se ramifier/fusionner.

Je voudrais construire un test qui adresse directement quel contrôle de source est meilleur à fusionner deux branches. Considérant qu'il n'y a probablement pas de version «démo» de TFS, cela pourrait être difficile. Pourtant, cela semble être un problème intéressant.

Pour tester cela, je avais besoin de savoir ce qui suit:

  • Qu'est-ce qu'un algorithme de fusion généralement mauvais à?
  • Puis-je trouver des informations sur l'algorithme de fusion utilisé par un système de contrôle de source (en particulier TFS)? Puis-je trouver des avantages qu'un algo de fusion aurait sur un autre?
  • Avec quels types de fichiers la plupart des VCS ont-ils des problèmes?

Plus important encore, l'un de vous connaît-il quelqu'un qui a déjà fait cela?

Répondre

3

En ce qui concerne TFS, vous avez un petit Branching and Merging Primer, ce qui peut ne pas prendre en compte le fait que branches became first-class citizen with TFS2010.

alt text

Vous pouvez voir dans cette problématique se confond question Merging: hg/git vs. svn (Git au départ, mais peut être généralisée à d'autres VCS): tout type de criss-cross merging est généralement difficile à manipuler correctement.

De là, vous pouvez également consulter:

La plupart VCS ne fusionnera pas des éléments binaires (sauf certains documents de texte comme).

1

Je ne suis pas sûr que vous allez trouver beaucoup d'utilisation dans un test de performance pour les différents outils. Tous les outils sont rapides en ce qui concerne les fusions résolvables. Le problème et le point de comparaison sont la fréquence à laquelle ils provoquent des conflits. TFS 2008 et avant ont été terribles pour résoudre les conflits. 2010 est à égalité avec tous les autres systèmes que j'ai utilisés, y compris Git. Vous pouvez trouver des ney-sayers là-bas, mais ils pensent à 2008 (certes très mauvais à résoudre des fusions pour vous).

La clé est de pousser ou tirer souvent. Si vous bifurquez, assurez-vous de tirer souvent de la branche parente. Plus vous êtes loin, plus vous avez de chances de conflits. Cela est particulièrement vrai pour les fichiers générés tels que les fichiers resx et les fichiers .xxproj.

Questions connexes