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



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



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



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

489   9  
svn

9 ответов:

, например:

svn log --limit 4

svn log -l 4

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

кроме того, что Берт сказал, что Ф многие команды, в том числе 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}

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

мне нравится использовать -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

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

svn log | less

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

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

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

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

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

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

но журнал 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

этот ответ направлен на дальнейшие вопросы, касающиеся опций подкоманд Subversion. Для любой команды (то есть добавить, журнал, состояние ...), вы можете просто добавить --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

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

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

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

svn log -r BASE:HEAD -v

Comments

    Ничего не найдено.