Как я могу получить сводную информацию о моих конфликтах cvs при обновлении cvs в командной строке?

StackOverflow https://stackoverflow.com/questions/122301

Вопрос

Есть ли простой способ получить сводку конфликтов после запуска cvs update?

Я работаю над большим проектом, и после некоторой работы мне нужно сделать обновление.Список изменений, возвращаемых командой обновления cvs, занимает несколько страниц, и я бы хотел видеть только список конфликтов (начинающийся с буквы «C»), повторяющийся в конце вывода команды обновления cvs.

Решение должно работать из командной строки.

Если мой обычный вывод:

M src/file1.txt
M src/file2.txt
cvs server: conflicts found ...
C src/file3.txt
M src/file4.txt
M src/file5.txt

Я хочу, чтобы мой новый результат был:

M src/file1.txt
M src/file2.txt
cvs server: conflicts found ...
C src/file3.txt
M src/file4.txt
M src/file5.txt

Conflict Summary:
C src/file3.txt

Я хочу, чтобы это была одна команда (возможно, короткий сценарий или псевдоним), которая выводит обычный вывод cvs по мере его возникновения, за которым следует сводка конфликтов.

Это было полезно?

Решение

Учитывая спецификацию, кажется, что вам нужна незначительная адаптация решения Мартина Йорка (потому что оно показывает только конфликты, а не обычную информацию журнала).Что-то вроде этого, которое можно было бы назвать «cvsupd»:

tmp=${TMPDIR:-/tmp}/cvsupd.$$
trap "rm -f $tmp; exit 1" 0 1 2 3 13 15
cvs update "$@" | tee $tmp
if grep -s '^C' $tmp
then
    echo
    echo Conflict Summary:
    grep '^C' $tmp
fi
rm -f $tmp
trap 0
exit 0

Команды-ловушки гарантируют, что файл журнала не останется без внимания.Он ловит обычные сигналы — HUP, INT, QUIT, PIPE и TERM (соответственно), а 0 — любой другой выход из оболочки.

Другие советы

У меня нет под рукой cvs. Каков точный формат вывода обновления cvs?

Кажется, я помню C <имя файла>
Если это так, вы можете использовать:

Обновление CVS | Tee Log | Греп "^c"

Полный вывод cvs сохраняется в журнале для использования в другой момент.Затем мы просматриваем все строки начало с буквой С

Надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top