2010-07-06 24 views
3

Nous utilisons actuellement CVS et développons de nouvelles fonctionnalités sur une branche avant de fusionner avec le tronc. Parfois, nous obtenons des conflits de fusion causés par la substitution de mots clés CVS. Ainsi, lors de l'examen du dossier des conflits que nous voyons quelque chose comme ça

<<<<<<< collect_logs.conf 
# CVS $Id: collect_logs.conf,v 1.6 2010/02/03 16:43:11 peterw Exp $ 
======= 
# CVS $Id: collect_logs.conf,v 1.13 2010-05-07 17:14:43 peterw Exp $ 
>>>>>>> 1.13 

Et ce sera la seule conflit dans le fichier.

J'ai fait un peu d'enquête et comme vous l'avez probablement remarqué il y a une légère différence dans le formatage de la date dans l'entrée. Cela est dû au fait que différentes versions de cvs sont utilisées sur différentes plates-formes (une sur Solaris, l'autre sur Linux) Je crois que c'est ce qui déclenche le conflit.

La solution consiste simplement à faire une nouvelle extraction du projet, puis à faire la mise à jour CVS à partir de là. Comme tous les mots-clés sont générés dans le même format, il est heureux de fusionner.

Ma question est: pouvez-vous ordonner à cvs de mieux gérer la fusion sur les substitutions de mots clés? Ou est-il simplement préférable de l'éviter avec des caisses fraîches comme je l'ai fait?

Merci

Peter

Répondre

2

Vous utiliseriez update -kk ... selon la documentation CVS sur Merging and keywords (section 5.10).

Le k attaché au -k (mode de substitution de mot-clé) oblige CVS à afficher simplement le mot-clé et non la valeur du mot-clé. Donc, en théorie, vos multiples formats de date ne devraient pas poser de problème. Je n'ai pas testé cette théorie.