Набор текста svn log
выдает невероятно длинный, бесполезный список в командной строке. Я понятия не имею, почему это по умолчанию. Если бы я хотел прочитать (или даже мог прочитать) 300 записей на терминале, я бы не стал печатать svn log --full
или что-то подобное.
Возможно, ребята из SVN думают, что я хотел бы передать этот вывод в другую программу. Однако, если это так, было бы более целесообразно иметь более подробный вызов для программы, а не для пользователя терминала.
Во всяком случае, как я могу увидеть только некоторые последние действия, такие как последние 5 или 10 записей, чтобы увидеть, что изменилось?
git log
...Ответы:
limit
вариант, например:Только последние 4 записи
источник
Помимо того, что сказал Берт Ф. , многие команды, в том числе,
log
имеют-r
(или--revision
) опцию. Ниже приведены некоторые практические примеры использования этой опции для отображения диапазонов ревизий:Чтобы перечислить все в порядке возрастания:
Чтобы перечислить все в порядке убывания:
Чтобы перечислить все, начиная с тринадцатого до основания текущей проверенной ревизии в порядке возрастания:
Чтобы получить все между указанными датами:
Вы можете комбинировать все вышеперечисленные выражения с
--limit
опцией, так что вы можете иметь достаточно детальный контроль над тем, что печатается. Для получения дополнительной информации об этих-r
выражениях обратитесь кsvn help log
соответствующей главе книги « Контроль версий с Subversion».источник
svn log .
могу вернуть только самую раннюю ревизию для меня (аналогично сsvn log --limit 4 .
); но если я позвонюsvn log -r HEAD:1 .
, то наконец получу все записи в списке ... Еще раз спасибо - ура!svn log
показывает только историю изменений текущего пути.Мне нравится использовать
-v
для подробного режима.Он даст вам идентификатор коммита, комментарии и все затронутые файлы.
Пример вывода:
источник
Передайте вывод через
less
другой пейджер:источник
В случае, если кто-нибудь смотрит на этот старый вопрос, удобная команда, чтобы увидеть изменения с момента вашего последнего обновления:
svn log -r $(svn info | grep Revision | cut -f 2 -d ' '):HEAD -v
LE (спасибо Гэри за комментарий)
тоже самое, но гораздо короче и логичнее:
svn log -r BASE:HEAD -v
источник
svn log -r BASE:HEAD -v
Чтобы добавить то, что сказали другие, вы также можете создать псевдоним в своем файле .bashrc или .bash_aliases:
или что вы хотите по умолчанию
источник
Как вы уже заметили,
svn log
команда, запущенная без каких-либо аргументов, отображает все сообщения журнала, которые относятся к указанному вами URL-адресу или к папке с рабочей копией, в которой вы выполняете команду.Вы всегда можете уточнить / ограничить
svn log
результаты:svn log --limit NUM
покажет только первый номер ревизий,svn log --revision REV1(:REV2)
покажет сообщение журнала для версии REV1 или для диапазона REV1 - REV2,svn log --search
покажет ревизии, которые соответствуют указанному вами шаблону поиска (команда доступна в Subversion 1.8 и более новом клиенте). Вы можете искать поисточник
Этот ответ направлен на дальнейшие вопросы, касающиеся параметров подкоманд Subversion. Для каждой доступной подкоманды (т. Е. Add, log, status ...) вы можете просто добавить
--help
опцию, чтобы отобразить полный список доступных опций, которые вы можете использовать с вашей подкомандой, а также примеры их использования. Следующий фрагмент взят непосредственно изsvn log --help
вывода команды в разделе «examples»:источник
Но svn log по-прежнему в обратном порядке, т.е. самые последние записи выводятся первыми, прокручиваются с вершины моего терминала и исчезают. Я действительно хочу увидеть последние записи, то есть порядок сортировки должен быть хронологическим. Кажется, единственная команда, которая делает это,
svn log -r 1:HEAD
но это занимает слишком много времени в репозитории с примерно 10000 записями. Я придумал это это:Показать последние 10 записей Subversion в хронологическом порядке:
источник