2010-10-08 6 views
1

Je comprends que CVS est un système obsolète en dehors du temps mais mon entreprise l'utilise. Le problème est le suivant. Comme d'habitude lors du développement, nous créons une branche à partir de la tête et commençons le travail. Quelques fois plus tard nous re-base la branche avec la tête et fusionne la tête avec la branche. C'est bon. Mais chaque fois que les opérations sont généralement avec un problème. Beaucoup de fichiers sont marqués comme modifiés, mais en fait les fichiers n'ont pas de changements!. Et ces fichiers ne sont pas devenus white ils red. C'est un problème, car nous devons tout revoir pour être sûr que ce fichier a été modifié.
Pour branche re-base avec la tête que nous avons faire (using WinCVS):Fusionner la branche à la tête dans le problème CVS

1.Click Update.. sur une branche;
2.Contrôler Create missing directories;
3.Contrôler Get the clean copy;
4.Contrôler Update using last check in time;
5.Sélectionnez Revision to update;
6.Sélectionnez Merge type.

Des idées pour lesquelles cela peut arriver?

Merci.

+0

Peut être CVS peut fusionner des fichiers et calculer leur CRC à comparer? – Yuriy

+0

Quand vous dites "beaucoup de fichiers sont marqués comme changement" voulez-vous dire tous les fichiers, ou la plupart, mais pas tous? Y a-t-il quelque chose de spécial à propos des fichiers marqués comme modifiés (comme les fins de ligne suggérées par @BarsMonster)? Aussi, pouvez-vous faire la commande 'csv status -v ' sur un de ces fichiers? Cela pourrait nous donner quelques indices. – rodion

Répondre

1

Marquez le HEAD après chaque rebase et, la prochaine fois que vous rebassez, définissez le tag racine sur le dernier tag que vous avez créé.

Comme ceci:

  1. création d'une branche de HEAD, étiquette HEAD avec BRANCH_ROOT_1
  2. faire un travail dans la tête
  3. Fusion HEAD dans la branche avec la branche racine BRANCH_ROOT_1, balise HEAD BRANCH_ROOT_2
  4. Do un peu plus de travail dans HEAD
  5. Fusionner HEAD dans BRANCH avec la branche racine BRANCH_ROOT_2, tag HEAD avec BRANCH_ROOT_3
  6. ...

GIT et (récemment) SVN font ce genre de chose automatiquement, mais avec CVS ​​vous devez le faire manuellement après chaque fusion. C'est l'une des nombreuses raisons pour lesquelles CVS doit être évité comme la peste.

+0

Merci à vous beaucoup! Ça aide pour moi! – Yuriy

0

Je suggère de vérifier les fins de ligne (Win/Unix).

0

J'ai vu des problèmes avec tous les fichiers marqués comme modifiés en raison de problèmes de fuseau horaire. Par exemple, les fichiers extraits sur un serveur en utilisant UTC, et copiés sur le réseau à un pc en utilisant CET. Ou un changement de l'heure d'été a causé de tels problèmes.

J'ai toujours utilisé TortoiseCVS et sa commande Merge, donc je ne connais pas beaucoup WinCVS.

Questions connexes