Попробуйте следовать.
x="refactoring"; svn log --limit 10 | egrep -i --color=none "($x|^r[0-9]+ \|.*lines$)" | egrep -B 1 -i --color=none $x | egrep --color=none "^r[0-9]+ \|.*lines$" | awk '{print $1}' | sed 's/^r//g'
Заменить refactoring
на строку поиска.
Изменить параметры svn log
, чтобы удовлетворить ваши потребности.
Используется нечувствительность к регистру (egrep -i
).
Редактировать на комментарий.
x="ILIES-113493"; svn log | egrep -i --color=none "($x|^r[0-9]+ \|.*lines$)" | egrep -B 1 -i --color=none $x | egrep --color=none "^r[0-9]+ \|.*lines$" | awk '{print $1}' | sed 's/^r//g'
Примечания:
x
переменная содержит строку поиска, и x
используется в два места в команде.
- Чтобы использовать
x
в качестве переменной в самой оболочке, вам нужно поместить всю команду в одну строку (от x=".."; svn log ... sed '...'
). Точка с запятой ;
может использоваться для разделения нескольких команд в одной строке.
- Я использовал
--limit 10
в примере, чтобы ограничить количество записей в журнале, изменить это, а также использовать другие параметры svn log
для вашего . Использование --limit 10
ограничит поиск 10 самыми последними записями журнала.
Что значит "не работает" означает? У меня нет проблем (с 1.7) получить полный набор сообщений журнала, специфичных для любого поддерева через URL. – parsifal
Я имел в виду, как получить только те обороты, основанные на строке в комментариях svn - как номер билета. Я попытался подключиться к «svn log URL --stop-on-copy» и «svn log URL -xml» .. – iaav
Так что «не работает» означает «Я не могу извлечь то, что мне нужно из многострочного вывода 'svn log'? В этом случае я предполагаю, что строка командной строки * Sithsu * будет делать то, что вы хотите (не пробовал). К сожалению, 'svn log' не дает вам возможности генерировать собственный формат. – parsifal