Как вы видите последние записи журнала SVN?

Ввод svn log выливает невероятно длинный, бесполезный список в командной строке. Я понятия не имею, почему это по умолчанию. Если бы я хотел читать (или даже читать) 300 записей на терминале, я бы не прочь набрать svn log --full или что-то подобное.

Возможно, ребята SVN думают, что я хочу передать этот вывод другой программе. Однако, если это так, было бы разумнее иметь более подробный вызов для программы - не пользователь терминала.

В любом случае, как я могу увидеть только недавнюю активность, например последние 5 или 10 записей, чтобы увидеть, что изменилось?

Ответ 1

limit, например:

svn log --limit 4

svn log -l 4

Только последние 4 записи

Ответ 2

Кроме того, что Bert F сказал, многие команды, включая log, имеют опцию -r (или --revision). Ниже приведены некоторые практические примеры, использующие этот параметр для отображения диапазонов ревизий:

Перечислить все в порядке возрастания:

svn log -r 1:HEAD

Перечислить все в порядке убывания:

svn log -r HEAD:1

Перечислить все, начиная с тринадцатого и заканчивая базой текущей ревизии в порядке возрастания:

svn log -r 13:BASE

Чтобы получить все между датами:

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

Вы можете объединить все вышеприведенные выражения с опцией --limit, чтобы вы могли иметь достаточно подробный контроль над тем, что напечатано. Для получения дополнительной информации об этих выражениях -r обратитесь к svn help log или к соответствующей главе в книге Version Control with Subversion

Ответ 3

Мне нравится использовать -v для подробного режима.
Он даст вам идентификатор фиксации, комментарии и все затронутые файлы.

svn log -v --limit 4

Пример вывода:

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

Ответ 4

Произведите вывод через less или другой пейджер:

svn log | less

Ответ 5

Чтобы добавить к словам других, вы также можете создать псевдоним в файле .bashrc или .bash_aliases:

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

или все, что вы хотите по умолчанию

Ответ 6

Но журнал svn по-прежнему находится в обратном порядке, т.е. сначала выводятся самые последние записи, прокручиваются сверху моего терминала и исчезают. Я действительно хочу видеть последние записи, т.е. Порядок сортировки должен быть хронологическим. Единственная команда, которая делает это, выглядит как svn log -r 1:HEAD, но это занимает слишком много времени в репозитории с примерно 10000 записями. Я придумал это:

Отобразить последние 10 записей subversion в хронологическом порядке:

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

Ответ 7

Если кто-то смотрит на этот старый вопрос, удобная команда, чтобы увидеть изменения со времени последнего обновления:

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

LE (спасибо Гэри за комментарий)
то же самое, но гораздо короче и логичнее:

svn log -r BASE:HEAD -v

Ответ 8

Как вы уже заметили svn log команда, запущенная без каких-либо аргументов, показывает все сообщения журнала, которые относятся к указанному вами URL-адресу или к где вы запускаете команду.

Вы всегда можете уточнить/ограничить результаты svn log:

  • svn log --limit NUM будет отображаться только первый NUM изменений,
  • svn log --revision REV1(:REV2) отобразит сообщение журнала для версии REV1 или для диапазона REV1 - REV2,
  • svn log --search будут отображаться версии, соответствующие указанному шаблону поиска (команда доступна в Subversion 1.8 и более новом клиенте). Вы можете искать по
    • автор версии (т.е. имя пользователя коммиттера),
    • дата, когда была произведена ревизия,
    • текст комментария редакции (сообщение журнала),
    • список изменений, измененных в версии.

Ответ 9

Этот ответ посвящен дальнейшим вопросам относительно подкоманд Subversion. Для каждой доступной подкоманды (т.е. Add, log, status...) вы можете просто добавить параметр --help, чтобы отобразить полный список доступных параметров, которые вы можете использовать с вашей подкомандой, а также примеры того, как их использовать. Следующий фрагмент берется непосредственно из вывода команды svn log --help в разделе "Примеры":

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