2010-02-12 7 views

Répondre

104

Si vous avez une caisse de dépôt à portée de main, vous pouvez utiliser le ^ (caret, chercher dans la manual) pour référencer la racine du repo comme celui-ci:

svn diff --old ^/branches/0.4.x --new ^/trunk 

Cela fonctionne depuis Subversion 1.6.

Si vous avez une subversion plus ou pas la caisse à portée de main de la prise en pension, vous pouvez utiliser des chemins absolus, comme décrit dans le redbook d'origine:

svn diff --old http://.../repo/branches/0.4.x --new http://.../repo/trunk/ 

devrait vous donner la réponse que vous recherchez. Remplacez http://.../repo/ par l'URL de votre référentiel.

+1

Ceci ne fonctionnait pas avec la sous-version incluse de Mac OS X (Mountain Lion) (1.7). J'ai mis à niveau vers subversion 1.8.1 avec Homebrew et cela a fonctionné. – Jason

+2

Avec la notation caret (SVN> = 1,6): svn diff --old ^/branches/0.4.x --nouveau ^/tronc –

+0

@SteveKehlet: où '^' signifie "le référentiel de la caisse dans laquelle je suis actuellement" ? –

2

Vous pouvez utiliser l'outil de fusion pour effectuer une comparaison au lieu d'utiliser l'invite de commande pour voir la différence. Ca fait plutot comme ca.

svn diff --diff-cmd='meld' --old http://.../repo/branches/0.4.x --new http://.../repo/trunk/ 
+0

Qu'est-ce que l'outil 'meld'? – ceving

+2

@ceving: Je pense qu'il fait référence à [Meld] (http://meldmerge.org/). Dans Ubuntu, il devrait déjà être dans le référentiel [Meld Diff Viewer] (https://apps.ubuntu.com/cat/applications/lucid/meld/) –

5
svn diff ^/trunkUrl/fileName ^/branchUrl/fileName 

Cela vous donnera la différence entre un fichier dans la branche et le tronc.

1

Si vous voulez simplement comparer la branche actuelle, vous pouvez simplement utiliser un point.

svn switch ^/branches/branchName 
svn diff . ^/trunk