svn log — Afficher les entrées du journal de propagation.
Affiche 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 seront 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 --incremental --limit (-l) NUM --quiet (-q) --revision (-r) REV --stop-on-copy --targets NOM_FICHIER --use-merge-history (-g) --verbose (-v) --with-all-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 …
Examine 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 lisezmoi.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. ------------------------------------------------------------------------ |