2016-09-13 2 views
0

ПРОБЛЕМАКак подсчитать несколько строк из журнала git в PowerShell?

git log --pretty=oneline $branch...$version 

позволяет мне определить, сколько фиксаций находятся между указанным ответвлением и метки. Каждая фиксация печатается в окне консоли в другой строке и начинается с 40 символов SHA этого коммита и сопровождается кратким описанием.

Использование PowerShell, я хотел бы взять счет всех этих коммитов и назначить его переменной. Я не хочу выводить эти данные в файл.

Мое предположение, что большое регулярное выражение было бы лучшим вариантом, но я думаю, что должно быть более простое решение.

ВОПРОС
Есть ли более простой способ найти количество нескольких строк, выводимых на консоль?

Кроме того, есть ли способ обойти размер буфера при обработке данных журнала без корректировки размера буфера окна консоли? Или это фактор, о котором мне нужно будет вообще беспокоиться? (при обработке большого количества фиксаций)

ответ

2

Это должно делать то, что вам нужно:

(git log --oneline $branch...$version | Measure-Object -Line).Lines 

Это даст вам необработанный номер, который можно присвоить переменной. Вам не нужно будет беспокоиться о разбиении на страницы с большим количеством коммитов; Git отключает разбиение на страницы при выводе на выходе.

2

версия Скотт работает отлично, но вы также можете сделать это следующим образом:

(git log --oneline $branch...$version).length 

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

(git log ... | select-string "^commit ").length 
Смежные вопросы