Question

Existe-t-il un moyen d'indiquer à Subversion « mettre à jour/fusionner à moins que cela ne provoque un conflit » ?

Je sais que tu peux utiliser --dry-run / status -u pour vérifier avant d'exécuter la mise à jour, mais j'en ai souvent d'autres qui exécutent des mises à jour et obtiennent des pages Web cassées car ils ne remarquent pas la ligne "C index.php".

J'ai également remarqué que svn ne semble pas trop mécontent des conflits - il dit toujours "mis à jour vers la révision bla" et quitte zéro, quels que soient les conflits.Je dois donc analyser la sortie ligne par ligne pour les découvrir.Il existe sûrement un meilleur moyen ?

Était-ce utile?

La solution

Vous pouvez utiliser le paramètre --accept pour indiquer ce qui doit se passer lorsqu'un conflit survient :

--accept ARG             : specify automatic conflict resolution action
                          ('postpone', 'base', 'mine-full', 'theirs-full',
                          'edit', 'launch')

Voir aussi le résolution interactive des conflits page dans le svnbook

Autres conseils

Peut-être qu'une meilleure façon est d'utiliser un outil graphique ?Ou écrivez un script pour effectuer la mise à jour qui redirige la sortie vers un fichier et fait un "cat svnupdate.log | grep "^C "" à la fin pour vous montrer les conflits ?

Avec les outils graphiques que j'utilise (TortoiseSVN et Netbeans), ils font un bruit désagréable à la fin et vous présentent une boîte de dialogue de sélection de fusion pour les gérer.Je ne connais pas d'équivalent avec autant de puissance pour les outils de ligne de commande.

@jsight :TortoiseSVN est génial, mais je développe principalement dans un environnement *NIX, sans X.J'utilise donc généralement (restreint à) la ligne de commande.

Concernant votre suggestion de script, c'est ce sur quoi je travaille actuellement - c'est pourquoi je suis ennuyé de ne pas pouvoir simplement vérifier $ ?.Pour le moment, je saute la "sortie vers un fichier" et j'utilise un tube, mais sinon, c'est exactement ce que vous décrivez.

Vous pouvez utiliser le paramètre --diff3-cmd pour spécifier quel outil de fusion utiliser (généralement diff3 de diffutils).

vous pouvez également utiliser un script de pré-validation pour rechercher des marqueurs de conflit dans les fichiers et empêcher la validation lorsqu'ils sont présents.

Subversion 1.5 (récemment publiée) ajoute la possibilité de spécifier ce qui se passe lors d'un conflit de mise à jour, avec l'argument "--accept".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top