web-dev-qa-db-fra.com

Comment voyez-vous les entrées récentes du journal SVN?

Taper svn log crache une liste incroyablement longue et inutile sur une ligne de commande. Je ne sais pas pourquoi c'est le cas par défaut. Si je voulais lire (ou même lire) 300 entrées sur le terminal, cela ne me dérangerait pas de taper svn log --full ou quelque chose de similaire.

Les gars de SVN pensent peut-être que je voulais transférer ce résultat dans un autre programme. Toutefois, si tel est le cas, il serait plus judicieux d’avoir l’appel le plus détaillé pour le programme - et non pour l’utilisateur du terminal.

En tout cas, comment puis-je voir quelques activités récentes comme les 5 ou 10 dernières entrées pour voir ce qui a changé?

187
Xeoncross

limit option, par exemple:

svn log --limit 4

svn log -l 4

Seulement les 4 dernières entrées

251
Bert F

Outre ce que dit Bert F , de nombreuses commandes, notamment log ont l'option -r (ou --revision). Vous trouverez ci-dessous des exemples pratiques utilisant cette option pour afficher des plages de révisions:

Pour tout lister par ordre croissant:

svn log -r 1:HEAD

Pour tout lister par ordre décroissant:

svn log -r HEAD:1

Pour lister tout, de la treizième à la base de la révision actuellement extraite, par ordre croissant:

svn log -r 13:BASE

Pour tout avoir entre les dates données:

svn log -r {2011-02-02}:{2011-02-03}

Vous pouvez combiner toutes les expressions ci-dessus avec l'option --limit afin de disposer d'un contrôle assez granulaire sur ce qui est imprimé. Pour plus d'informations sur ces expressions -r, reportez-vous à svn help log ou au chapitre correspondant du livre Version Control with Subversion

125
Daniel Dinnyes

J'aime utiliser -v pour le mode prolixe.
Il vous donnera l'identifiant de la validation, les commentaires et tous les fichiers affectés.

svn log -v --limit 4

Exemple de sortie:

I added some migrations and deleted a test xml file
------------------------------------------------------------------------
r58687 | mr_x | 2012-04-02 15:31:31 +0200 (Mon, 02 Apr 2012) | 1 line Changed
paths: 
A /trunk/Java/App/src/database/support    
A /trunk/Java/App/src/database/support/MIGRATE    
A /trunk/Java/App/src/database/support/MIGRATE/remove_device.sql
D /trunk/Java/App/src/code/test.xml
41

Transférez le résultat à travers less ou un autre pageur:

svn log | less
11
Greg Hewgill

Pour ajouter à ce que d'autres ont dit, vous pouvez également créer un alias dans votre fichier .bashrc ou .bash_aliases:

alias svnlog='svn log -l 30 | less'

ou ce que vous voulez par défaut

5
james-geldart

Au cas où quelqu'un examinerait cette vieille question, une commande pratique pour voir les modifications depuis votre dernière mise à jour:

svn log -r $(svn info | grep Revision | cut -f 2 -d ' '):HEAD -v

LE (merci Gary pour le commentaire)
même chose, mais beaucoup plus court et plus logique:

svn log -r BASE:HEAD -v

4
Catalin

Comme vous l'avez déjà remarqué svn log la commande exécutée sans aucun argument indique tous les messages de journalisation liés à l'URL vous spécifiez ou dans le dossier de la copie de travail où vous exécutez la commande.

Vous pouvez toujours affiner/limiter les résultats _svn log_:

  • svn log --limit NUM montrera uniquement le premier NUM de révisions,
  • svn log --revision REV1(:REV2) affichera le message du journal pour la révision REV1 ou pour la plage REV1 - REV2,
  • svn log --search affiche les révisions correspondant au modèle de recherche que vous avez spécifié (la commande est disponible dans les versions Subversion 1.8 et plus récente). Vous pouvez rechercher par
    • l'auteur de la révision (nom d'utilisateur du committers),
    • date à laquelle la révision a été engagée,
    • texte de commentaire de révision (message du journal),
    • liste des chemins modifiés en révision.
4
bahrep

Cette réponse s'adresse à d'autres questions concernant les options des sous-commandes Subversion. Pour chaque sous-commande disponible (c.-à-d. Ajouter, consigner, statut ...), vous pouvez simplement ajouter l'option --help pour afficher la liste complète des options disponibles que vous pouvez utiliser avec votre sous-commande, ainsi que des exemples d'utilisation. . L'extrait suivant provient directement de la sortie de la commande svn log --help sous la section "examples":

Show the latest 5 log messages for the current working copy
directory and display paths changed in each commit:
  svn log -l 5 -v
4
h3X3n

Mais svn log est toujours dans l’ordre inverse, c’est-à-dire que les entrées les plus récentes sont sorties en premier, puis défilent vers le haut de mon terminal. Je veux vraiment voir les dernières entrées, c’est-à-dire que l’ordre de tri doit être chronologique. La seule commande qui semble effectuer cela semble être svn log -r 1:HEAD, mais cela prend beaucoup trop de temps sur un référentiel contenant quelque 10 000 entrées. J'ai remonté ceci ceci:

Afficher les 10 dernières entrées de Subversion dans l’ordre chronologique:

svn log -r $(svn log -l 10 | grep '^r[0-9]* ' | tail -1 | cut -f1 -d" "):HEAD
3
Othmar Wigger