2009-10-21 27 views

Répondre

4

Voir la SVN Book on External Diff Tools:

La présence de --diff-cmd et --diff3-cmd options, et le même nom paramètres de configuration d'exécution (voir the section called “Config”), peut conduire à une fausse idée de la façon dont il est d'utiliser differentiation externe facile (ou "Diff") et fusionner les outils avec Subversion. Alors que Subversion peut utiliser la plupart des outils populaires disponibles, l'effort investi dans la mise en place s'avère souvent non trivial.

...

La clé pour utiliser diff externe et outils de fusion (autres que GNU diff et diff3, bien sûr) avec Subversion est d'utiliser des scripts wrapper qui convertissent l'entrée de Subversion en quelque chose que votre outil de differentiation peut comprendre, puis de convertir la sortie de votre outil dans un format que Subversion attend: le format que les outils GNU auraient utilisé. Les sections suivantes couvrent les spécificités de ces attentes.

0

Certainement un fan de Beyond Compare, car il sert non seulement un très bon outil de différenciation/fusion pour une utilisation avec contrôle de code source, il fait un très bon travail d'aider à synchroniser des répertoires/fichiers en général. Une évidence absolue, quand il s'agit d'acheter une copie - ne peut cependant pas se porter garant de la version Linux, car je ne l'ai jamais utilisé.

+0

"Comment utiliser au-delà de la comparaison en tant qu'outil externe de svn diff"? – sbi

+0

Je pense qu'il faisait référence à "Sur une note connexe qu'est-ce que tout le monde utilise pour diff et fusionner." ce qui, si vous insérez la ponctuation correcte obtient une autre question. – Joey

+0

Dans le monde de Windows, Araxis Merge était mon application visuelle préférée (bien meilleure que Beyond Compare IMO). Mais sous GNU/Linux, pourquoi devrais-je utiliser autre chose que Meld? –

5

Comme les autres réponses ont dit - vous devez appeler au-delà de comparer d'un script et de passer à l'option que --diff-cmd de subversion. J'utilise le script suivant sur linux:

#!/bin/bash 
test `/usr/bin/bcompare "$6" "$7" -title="$3" -title2="$5" -readonly` > 2 && exit 1; exit 0 

qui est semblable à ce que le lien dans le poste de CooCooC dit, sauf qu'elle se traduit par la valeur de retour de incomparable dans ce subversion attend: 0 pour aucune différence, 1 pour la différence. Cela se débarrasse des messages d'erreur et avorte qui, autrement, dans votre chemin ...

EDIT: Voir le commentaire de colgur ci-dessous, une meilleure façon de le faire est la suivante:

/usr/bin/bcompare "$7" "$6" -title1="$5" -title2="$3" -readonly & wait $! [ $? -gt 2 ] && exit 1; exit 0 
+0

Merci pour cette réponse Nathan. Il écrit un fichier nommé '2' dans mon système (Ubuntu 12.04).J'ai fait quelques changements qui pourraient représenter votre intention: '/ usr/bin/bcompare "7 $" "$ 6" -title1 = "$ 5" -title2 = "$ 3" -readonly &' 'attendre $' '[$? -gt 2] && exit 1; exit 0' – colgur

+0

@colgur Cool, ça a l'air mieux. Je n'ai jamais remarqué que le fichier supplémentaire s'écrit, maintenant ça fait si longtemps que je ne suis pas sûr de savoir pourquoi je l'ai fait de cette façon :( –

+0

A aidé beaucoup plus que la réponse acceptée :) Merci pour le script –