2013-01-10 4 views
0

Je viens juste de découvrir, un comportement surprenant pour moi de cvs.cvs: les mises à jour ne marchent pas

  • je change fichier1 localy
  • Pendant ce temps, les gens changent d'autres parties non apparentées du même fichier, et engager dans le référentiel
  • mettre à jour ma copie locale du référentiel
  • À ce stade, j'attends mon copie locale de fichier1 pour contenir toutes les modifications apportées par d'autres à ce fichier, sauf si la mise à jour ci-dessus a signalé un conflit. Cependant, quand je fais maintenant diff avec la tête, je découvre beaucoup de différences venant des changements faits par d'autres dans des parties du dossier que je n'ai pas touchées du tout.

Des idées? Est-ce seulement les capacités limitées de cvs à fusionner? Un mauvais réglage? Quelque chose dans mon flux de travail?

Répondre

1

CVS dispose d'installations de fusion très limitées. Basculez vers un système moderne tel que Git (peut-être via git-cvsimport si le mainteneur repo n'est pas coopératif) si vous voulez une meilleure expérience de fusion. Voir aussi Best practices for using git with CVS

+0

Hmmm ... Une manière de demander cvs d'utiliser un externe outil de fusion? – shealtiel

+0

Oui, c'est possible, mais nécessite le support CVS de l'outil, ou un wrapper CVS de quelque sorte. Voir par exemple http://stackoverflow.com/questions/631781/use-a-different-diff-command-with-cvs pour certaines options. – tripleee

+0

Il semble que les outils mentionnés sur votre lien ci-dessus prennent uniquement en charge les différences dans un outil externe. Y a-t-il quelque chose qui puisse * fusionner * avec un outil externe? – shealtiel

0

La solution finale est:

1. Enregistrez votre code local à un autre endroit manuellement

2. Revert les fichiers qui peuvent a conflit à la tête (plus tard) sur le serveur CVS.

3. Ajoutez de nouveau votre modification au fichier Rétabli.

Le concept de solution ci-dessus est d'effacer toute la question possible par INVERSE et obtenir une version propre à 100% du dépôt, puis rajoutera nos changements.

Il peut résoudre les problèmes ci-dessous causés par le code désuet/base de code foiré.

  1. de CVS avaient un conflit et n'a pas été modifié
  2. CVS mise à jour a échoué
  3. CVS ne se synchronise pas
Questions connexes