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 log — Afficher les entrées du journal de propagation.
svn log [CHEMIN]
svn log URL[@REV] [CHEMIN...]
Afficher les entrées du journal de propagation du dépôt. Si aucun
argument n'est fourni, svn log affiche les entrées
du journal de propagation pour tous les fichiers et répertoires dans
(et y compris) le répertoire courant de la copie de travail. Vous
pouvez affiner votre requête en spécifiant un chemin, une ou
plusieurs révisions, ou une combinaison des deux. L'intervalle de
révisions par défaut pour un chemin local est
BASE:1
.
Si vous spécifiez une URL simple, la commande affiche les entrées
du journal pour tout ce que contient l'URL. Si vous ajoutez des
chemins après l'URL, seules les entrées relatives aux chemins
spécifiés sont affichées. L'intervalle de révisions par défaut pour
une URL est HEAD:1
.
Avec l'option --verbose
, svn
log affiche également tous les chemins modifiés pour chaque
entrée du journal. Avec l'option --quiet
,
svn log n'affiche pas le corps de l'entrée du
journal (cette option est compatible avec l'option
--verbose
).
Chaque entrée du journal est affichée seulement une fois, même
si, parmi les chemins explicitement demandés, plus d'un a été modifié
pour cette révision. Les entrées du journal suivent l'historique de
la copie de travail par défaut. Utilisez l'option
--stop-on-copy
pour désactiver ce comportement, ce
qui peut être utile pour déterminer à quel moment une branche a été
créée.
--change
(-c
)ARG
--depth
ARG
--diff
--diff-cmd
CMD
--extensions
(-x
)ARG
--incremental
--internal-diff
--limit
(-l
)NUM
--quiet
(-q
)--revision
(-r
)REV
--search
ARG
--search-and
ARG
--stop-on-copy
--targets
NOM_FICHIER
--use-merge-history
(-g
)--verbose
(-v
)--with-all-revprops
--with-no-revprops
--with-revprop
ARG
--xml
Vous pouvez visualiser les entrées du journal pour tous les
chemins qui ont été modifiés dans la copie de travail en lançant la
commande svn log
depuis le répertoire
racine :
$ svn log ------------------------------------------------------------------------ r20 | harry | 2003-01-17 22:56:19 -0600 (ven. 17 jan 2003) | 1 ligne Peaufinage. ------------------------------------------------------------------------ r17 | sally | 2003-01-16 23:21:19 -0600 (jeu. 16 jan 2003) | 2 lignes …
Examiner toutes les entrées du journal pour un fichier particulier de la copie de travail :
$ svn log machin.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (lun. 13 jan 2003) | 1 ligne Ajouté des définitions. ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (mar. 07 jan 2003) | 3 lignes …
Si vous n'avez pas de copie de travail sous la main, vous pouvez examiner les entrées du dépôt :
$ svn log http://svn.red-bean.com/repos/test/machin.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (lun. 13 jan 2003) | 1 ligne Ajouté des définitions. ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (mar. 07 jan 2003) | 3 lignes …
Si vous voulez spécifier plusieurs chemins distincts sous la même
URL, vous pouvez utiliser la syntaxe URL
[CHEMIN...]
:
$ svn log http://svn.red-bean.com/repos/test/ machin.c bidule.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (lun. 13 jan 2003) | 1 ligne Ajouté des définitions. ------------------------------------------------------------------------ r31 | harry | 2003-01-10 12:25:08 -0600 (ven. 10 jan 2003) | 1 ligne Ajouté le nouveau fichier bidule.c ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (mar. 07 jan 2003) | 3 lignes …
L'option --verbose
demande à svn
log d'inclure les informations relatives aux chemins
modifiés pour chaque révision affichée. Ces chemins sont affichés, un
chemin par ligne, avec le code d'action qui indique quel changement a
été effectué sur le chemin.
$ svn log -v http://svn.red-bean.com/repos/test/ machin.c bidule.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (lun. 13 jan 2003) | 1 ligne Chemins modifiés : M /machin.c Ajouté des définitions. ------------------------------------------------------------------------ r31 | harry | 2003-01-10 12:25:08 -0600 (ven. 10 jan 2003) | 1 ligne Chemins modifiés : A /bidule.c Ajouté le nouveau fichier bidule.c ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (mar. 07 jan 2003) | 3 lignes …
svn log n'utilise qu'une poignée de codes d'action, les mêmes que ceux utilisés par la commande svn update :
A
l'élément a été ajouté ;
D
l'élément a été supprimé (Deleted en anglais) ;
M
les propriétés ou le contenu de l'élément ont été modifiés ;
R
l'élément a été remplacé par un autre au même endroit.
En plus des codes d'action qui précèdent les chemins modifiés,
svn log avec l'option --verbose
indique si le chemin a été ajouté ou remplacé par le fait d'une
opération de copie. Il le signale en affichant (de
après le chemin.COPIE-DE-CHEMIN
:COPIE-DE-REV
)
Quand vous concaténez la sortie de plusieurs commandes
svn log, il peut être judicieux d'utiliser
l'option --incremental
. svn
log affiche normalement une ligne de tirets avant chaque
entrée de journal, après chaque entrée conséquente et après la
derniere entrée du journal. Si vous lancez svn log
sur un intervalle de deux révisions, vous obtenez la sortie
suivante :
$ svn log -r 14:15 ------------------------------------------------------------------------ r14 | … ------------------------------------------------------------------------ r15 | … ------------------------------------------------------------------------
Cependant, si vous voulez rassembler, dans un fichier, deux entrées du journal qui ne se suivent pas, vous lancerez des commandes comme ceci :
$ svn log -r 14 > mon-journal $ svn log -r 19 >> mon-journal $ svn log -r 27 >> mon-journal $ cat mon-journal ------------------------------------------------------------------------ r14 | … ------------------------------------------------------------------------ ------------------------------------------------------------------------ r19 | … ------------------------------------------------------------------------ ------------------------------------------------------------------------ r27 | … ------------------------------------------------------------------------
Vous pouvez éviter l'inconvénient des doubles lignes de tirets
dans votre fichier en utilisant l'option
--incremental
:
$ svn log --incremental -r 14 > mon-journal $ svn log --incremental -r 19 >> mon-journal $ svn log --incremental -r 27 >> mon-journal $ cat mon-journal ------------------------------------------------------------------------ r14 | … ------------------------------------------------------------------------ r19 | … ------------------------------------------------------------------------ r27 | …
L'option --incremental
fournit le même type de
fonctionnalité quand elle est utilisée avec l'option
--xml
:
$ svn log --xml --incremental -r 1 sandwich.txt <logentry revision="1"> <author>harry</author> <date>2008-06-03T06:35:53.048870Z</date> <msg>Initial Import.</msg> </logentry>
Astuce | |
---|---|
Quelquefois, quand vous lancez la commande svn log sur un chemin spécifique et une révision spécifique, vous ne voyez aucune entrée de journal, comme dans le cas suivant : $ svn log -r 20 http://svn.red-bean.com/pas-modifié.txt ------------------------------------------------------------------------ Cela signifie simplement que le chemin n'a pas été modifié lors de la révision spécifiée. Pour obtenir l'entrée de journal correspondante à cette révision, soit lancez l'opération de log sur l'URL racine du dépôt, soit sur un chemin dont vous savez qu'il a été modifié lors de cette révision : $ svn log -r 20 modifié.txt ------------------------------------------------------------------------ r20 | sally | 2003-01-17 22:56:19 -0600 (ven. 17 jan 2003) | 1 ligne Effectué un changement. ------------------------------------------------------------------------ |
À partir de Subversion 1.7, les utilisateurs disposent d'un mode
d'affichage spécial qui combine les informations de svn
log et de ce qu'affiche svn diff pour
la même cible à chaque révision. Tapez simplement svn
log avec l'option --diff
pour activer ce
mode d'affichage.
$ svn log -r 20 modifié.txt --diff ------------------------------------------------------------------------ r20 | sally | 2003-01-17 22:56:19 -0600 (ven. 17 jan 2003) | 1 ligne Effectué un changement. Index: modifié.txt =================================================================== --- modifié.txt (revision 19) +++ modifié.txt (revision 20) @@ -1 +1,2 @@ Ceci est le fichier 'modifié.txt'. +Nous ajoutons du texte très intéressant à cet endroit ! ------------------------------------------------------------------------ $
Comme pour svn diff, vous pouvez utiliser
toutes les options relatives aux différences, y compris
--depth
, --diff-cmd
et --extensions
(-x
).
À partir de Subversion 1.8, les utilisateurs peuvent filtrer la
sortie de svn log avec les options
--search
et --search-and
. Avec ces
options, l'entrée de journal n'est affichée que si l'auteur de la
révision, la date, le texte du commentaire ou la liste des chemins
modifiés correspondent au motif de recherche. La recherche sur les
chemins modifiés requiert l'option --verbose
, sinon
svn log n'affiche pas les chemins modifiés et
ceux-ci ne peuvent donc pas être filtrés.
Le motif de recherche (aussi appelé glob ou motif de filtrage du shell) peut contenir des caractères normaux et les caractères spéciaux suivants :
?
correspond à n'importe quel caractère unique ;
*
correspond à n'importe quelle chaîne de caractères, y compris la chaîne vide ;
[ABC]
correspond à n'importe quel caractère qui figure à l'intérieur des crochets.
Si vous utilisez plusieurs paramètres --search
,
vous obtenez les entrées qui correspondent à au moins un motif de
recherche. Par exemple :
$ svn log --search sally --search harry https://svn.red-bean.com/repos/test ------------------------------------------------------------------------ r1701 | sally | 2011-10-12 22:35:30 -0600 (mer. 12 oct 2011) | 1 ligne Ajouté un pense-bête. ------------------------------------------------------------------------ r1564 | harry | 2011-10-09 22:35:30 -0600 (dim. 09 oct 2011) | 1 ligne Fusionné r1560 vers la branche 1.0.x. ------------------------------------------------------------------------ $
Si vous utilisez l'option --search
avec
--search-and
, vous obtenez les entrées qui
correspondent à la combinaison des motifs de recherche des deux
options. Par exemple :
$ svn log --verbose --search sally --search-and /truc/machin https://svn.red-bean.com/repos/test ------------------------------------------------------------------------ r1555 | sally | 2011-07-15 22:33:14 -0600 (Fri, 15 Jul 2011) | 1 line Changed paths: M /truc/machin/src.c Correction de coquilles. ------------------------------------------------------------------------ r1530 | sally | 2011-07-13 07:24:11 -0600 (Wed, 13 Jul 2011) | 1 line Changed paths: M /truc/machin M /truc/build Modification de quelques propriétés svn:ignore. ------------------------------------------------------------------------ $
Astuce | |
---|---|
Les options |