2009-12-11 12 views
1

Notre équipe a remarqué que CVS ramène du code supprimé si vous avez des changements dans votre fichier de travail dans le bloc de code qui a été supprimé. CVS le fait silencieusement sans présenter les marques de conflit de fusion.CVS ramène silencieusement le code supprimé lors de la mise à jour

Quelqu'un a-t-il une solution pour cela?

Y a-t-il un moyen intelligent de détecter que cela est sur le point de se produire?

+0

Donc: Le développeur A supprime du code d'un fichier et vérifie la modification. Le développeur B modifie le code dans le bloc qui a été supprimé. Maintenant, que se passe-t-il? Est-ce que le développeur B fait une mise à jour? – Dave

+0

Oui, le développeur B effectue une mise à jour et CVS ne signale pas de conflit entre le code modifié et supprimé. – user229758

Répondre

1

De votre description, on ne sait pas ce qui se passe. Si un développeur supprime un morceau de code du fichier X, et qu'un autre développeur apporte des modifications au milieu de ce code supprimé, et c'est tout ce qui arrive, je serais très surpris si CVS était silencieux - pas que cela ne pouvait pas arriver, mais je ne l'ai jamais vu se produire dans plus de 10 ans d'utilisation de CVS.

Il est possible, à cause de la façon dont CVS suit les modifications, que des changements majeurs puissent faire penser que le développeur # 2 a ajouté le code dans un emplacement complètement différent. En particulier si le développeur n ° 1 effectue plusieurs validations avant que le développeur n ° 2 ne procède à une mise à jour.

La meilleure solution consiste probablement à vérifier l'état des fichiers avant de procéder à une mise à jour. Vous pouvez le faire avec le « -n » switch:

cvs -nq update -P 2> /dev/null 

Si vous voyez qu'un fichier que vous avez changé va être mis à jour, vous pouvez regarder de plus près.