2016-06-13 6 views
1

Рассмотрим это:Head на журнал Svn не всегда останавливается

svn log -r HEAD:1 --search $pattern | head -4 

Иногда эта команда находит необходимое количество линий (например, 4) и останавливается. Но иногда он просто продолжает поиск (т. Е. Зависает) даже после того, как нашел необходимое количество строк.

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

ответ

1

Plain svn log всегда будет продолжать показывать историю изменений от пересмотра ГОЛОВЫ до 0, имеющего отношения к вашему запросу, если вы не убить процесс (при условии, что вы не используете переключатель --limit или указано некоторое поддерево как /branches/myfeature). Откорректируйте свой скрипт, чтобы убить процесс, как только он отобразит необходимое количество сообщений журнала.

+0

Разве это не похоже на встроенную функциональность оболочки? Я имею в виду, что после прочтения 4 строк ввода будет не просто 'head' закрывать трубку или что-то еще (что также приведет к завершению' svn log')? – NPS

+0

@NPS Я предполагаю, что вы должны явно закончить процесс. Я не уверен, закрывает ли 'head' трубку и убивает ли он исходный процесс' svn log'. – bahrep

+0

Но из того, что я вижу, 'head' как-то убивает процесс, когда он получает необходимое количество ввода. Рассмотрим «да». head'. По-видимому, 'head' просто странно взаимодействует с' svn log'. Потому что это также ** делает ** останавливаться для меня, только не всегда. – NPS

Смежные вопросы