This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.
svn diff (di) — Afficher les différences entre deux révisions ou chemins.
diff [-c M | -r N[:M]] [CIBLE[@REV]...]
diff [-r N[:M]] --old=VCIBLE[@VREV] [--new=NCIBLE[@NREV]] [CHEMIN...]
diff VURL[@VREV] NURL[@NREV]
Afficher les différences entre deux chemins. Vous pouvez utiliser svn diff selon différentes formes :
Tapez juste svn diff pour afficher les modifications faites localement à une copie de travail.
Afficher les modifications faites à
CIBLE entre deux révisions telles
qu'elles apparaissent lors de la révision
REV. Les
CIBLEs peuvent faire référence à des
chemins de la copie de travail ou à des
URL. Si les
CIBLEs font référence à des chemins de
la copie de travail, alors N vaut par
défaut BASE et M
à la copie de travail ; si les
CIBLEs font référence à des
URL, alors
N doit être spécifié et
M vaut par défaut
HEAD. L'option -c M est
équivalente à -r N:M avec
N = M-1. L'utilisation de
-c -M correspond à l'inverse :
-r M:N avec N = M-1.
Afficher les différences entre
VCIBLE vue en
VREV et
NCIBLE vue en
NREV. Les
CHEMINs, s'ils sont spécifiés, sont
relatifs à VCIBLE et
NCIBLE et restreignent l'affichage des
différences à ces chemins. VCIBLE et
NCIBLE peuvent faire référence à des
chemins de la copie de travail ou des
URL[@REV].
NCIBLE vaut par défaut
VCIBLE si elle n'est pas spécifiée.
-r N entraine que
VREV vaut par défaut
N ; -r N:M entraine
que VREV vaut par défaut
N et NREV
vaut par défaut M.
svn diff VURL[@VREV]
NURL[@NREV] est un raccourci pour
svn diff --old=VURL[@OVREV]
--new=NURL[@NREV].
svn diff -r N:M URL est un raccourci pour
svn diff -r N:M --old=URL --new=URL.
svn diff [-r N[:M]] URL1[@N]
URL2[@M] est un raccourci pour svn
diff [-r N[:M]] --old=URL1 --new=URL2.
Si CIBLE est une URL, alors les
révisions N et M
peuvent être passées via l'option
--revision (-r) ou en utilisant la
notation « @ » décrite précédemment.
Si CIBLE est un chemin de la copie de
travail, le comportement par défaut (sans option
--revision) est d'afficher les différences entre les
versions « de base » et la copie de travail de
CIBLE. Si l'option
--revision est spécifiée dans cette forme, cela
correspond à :
--revision N:M
Le serveur compare CIBLE@N
et CIBLE@M.
--revision N
Le client compare CIBLE@N à la
copie de travail.
Si la syntaxe alternative est utilisée, le serveur compare
URL1 et URL2
aux révisions N et
M, respectivement. Si l'une ou l'autre
des révisions N et
M n'est pas spécifiée, la valeur
HEAD est prise par défaut.
Par défaut, svn diff ignore l'héritage des
fichiers et ne fait que comparer le contenu des fichiers spécifiés.
Si vous utilisez l'option --notice-ancestry,
l'héritage des chemins en question sera pris en compte lors de la
comparaison des révisions (c-à-d. que si vous lancez svn
diff sur deux fichiers dont le contenu est identique mais
qui ont des héritages différents, l'affichage correspond à un fichier
supprimé puis ajouté de nouveau).
--change(-c)ARG--changelist(--cl)ARG--depthARG--diff-cmdCMD--extensions(-x)ARG--force--git--ignore-properties--internal-diff--newARG--no-diff-added--no-diff-deleted--notice-ancestry--oldARG--patch-compatible--properties-only--revision(-r)REV--show-copies-as-adds--summarize--xml
Comparer BASE et la copie de travail (c'est
l'utilisation la plus fréquente de svn
diff) :
$ svn diff COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (révision 4404) +++ COMMITTERS (copie de travail)
Regarder ce qui a changé dans le fichier
COMMITTERS depuis la révision 9115 :
$ svn diff -c 9115 COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (révision 3900) +++ COMMITTERS (copie de travail)
Regarder ce qui change dans la copie de travail par rapport aux anciennes révisions :
$ svn diff -r 3900 COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (révision 3900) +++ COMMITTERS (copie de travail)
Comparer la révision 3000 à la révision 3500 en utilisant la syntaxe « @ » :
$ svn diff http://svn.collab.net/repos/svn/trunk/COMMITTERS@3000 \
http://svn.collab.net/repos/svn/trunk/COMMITTERS@3500
Index: COMMITTERS
===================================================================
--- COMMITTERS (révision 3000)
+++ COMMITTERS (révision 3500)
…
Comparer la révision 3000 à la révision 3500 en utilisant la notation pour les intervalles (on ne passe qu'une seule fois l'URL dans ce cas) :
$ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk/COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (révision 3000) +++ COMMITTERS (révision 3500)
Comparer la révision 3000 à la révision 3500 de tous les fichiers
dans trunk en utilisant la notation pour les
intervalles :
$ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk
Comparer la révision 3000 à la révision 3500 de seulement trois
fichiers dans trunk en utilisant la notation
pour les intervalles :
$ svn diff -r 3000:3500 --old http://svn.collab.net/repos/svn/trunk \
COMMITTERS README HACKING
Si vous avez une copie de travail, vous pouvez obtenir ces différences sans taper de longues URL :
$ svn diff -r 3000:3500 COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (révision 3000) +++ COMMITTERS (révision 3500)
Utiliser l'option --diff-cmd
CMD -x pour passer
directement des paramètres au programme diff externe :
$ svn diff --diff-cmd /usr/bin/diff -x "-i -b" COMMITTERS Index: COMMITTERS =================================================================== 0a1,2 > Ceci est un test >
Pour finir, vous pouvez utiliser l'option --xml
avec l'option --summarize pour afficher un document
XML décrivant les modifications apportées entre les révisions, mais
pas le contenu des différences en tant que tel :
$ svn diff --summarize --xml http://svn.red-bean.com/repos/test@r2 \
http://svn.red-bean.com/repos/test
<?xml version="1.0"?>
<diff>
<paths>
<path
props="none"
kind="file"
item="modified">http://svn.red-bean.com/repos/test/sandwich.txt</path>
<path
props="none"
kind="file"
item="deleted">http://svn.red-bean.com/repos/test/burrito.txt</path>
<path
props="none"
kind="dir"
item="added">http://svn.red-bean.com/repos/test/snacks</path>
</paths>
</diff>