Une des raisons pour lesquelles les programmeurs préfèrent SVN à CVS est-ce que le premier autorise les commits atomiques? Qu'est-ce que ça veut dire ?
svn
versioning
cvs
Geek
la source
la source
Réponses:
Cela signifie que lorsque vous effectuez une validation dans le système de contrôle de version, tout ce que vous voulez valider est inclus OU rien ne le sera.
Dans CVS, lorsque vous essayez de valider, il est possible que la validation réussisse sur plusieurs fichiers, puis échoue sur plusieurs autres (car ils ont changé). Cela laisse le dépôt dans un état malheureux car la moitié de votre commit n'y est pas, et il est probable que vous ayez laissé des choses dans un état où elles ne compileraient pas ou pire. Maintenant, vous devez vous dépêcher et intégrer toutes les modifications afin de pouvoir valider les autres fichiers avant que quelqu'un d'autre ait besoin de mettre à jour et d'obtenir votre ensemble de modifications cassé.
Cela ne se produira pas dans SVN - SVN engagera tout ce que vous avez modifié ou échouera dans son ensemble de modifications. Ainsi, vous ne laisserez jamais le référentiel dans un état de panne en raison de problèmes de validation.
la source
Ceci est expliqué par exemple dans Bye-bye CVS. J'ai été Subverted article écrit par Andy Lester :
Le fait que CVS oblige le programmeur à réparer immédiatement la fusion est aussi contre-productif que possible. Par rapport à cela, une option permettant de retarder / annuler / fusionner soigneusement les modifications constitue un avantage substantiel.
Les autres avantages de SVN par rapport à CVS, décrits dans l'article ci-dessus, sont les suivants:
la source
Cela signifie que toutes les modifications apportées à tous les fichiers sont validées en une seule transaction. Par conséquent, toutes les opérations aboutissent ou aucune.
Cela signifie que vous êtes moins susceptible d’obtenir des modifications partielles archivées dans le référentiel, ce qui entraîne l’échec des générations. Vous pouvez toujours amener les gens à oublier d’archiver tous les fichiers pertinents, mais c’est un problème de processus plutôt qu’un problème avec le système de gestion de versions.
la source