it-roy-ru.com

Получение различий между двумя верхними ревизиями файла в CVS

Есть ли способ создать разность файла ч/б его две верхние ревизии в репозитории CVS? Меня не волнуют номера ревизий и мой локальный проверенный файл. Все, что мне нужно, это разность между последним и последним коммитами.

13
Babu S

Ты можешь использовать

cvs diff -r FIRSTREVISION -r SECONDREVISION filename

сравнить две ревизии.

Может быть возможно выполнить необходимое сравнение напрямую, но мы также можем автоматизировать его, обработав результаты cvs log filename. Так, например, вы получите последний номер редакции с

cvs log filename | grep ^revision | head -n 1 | cut -c 10-

и предыдущая версия с

cvs log filename | grep ^revision | head -n 2 | tail -n 1 | cut -c 10-

Вы хотите объединить их вместе, поэтому создайте файл сценария BASH (скажем, называемый lastdiff.sh), который содержит:

cvs diff -r $(cvs log $1 | grep ^revision | head -n 2 | tail -n 1 | cut -c 10-) -r $(cvs log $1 | grep ^revision | head -n 1 | cut -c 10-) $1

и тогда вы сможете получить свой diff, выполнив его с именем файла в качестве параметра, например, ./lastdiff.sh имя файла.

29
borrible

Я надеялся, что есть очевидная опция cvs, которую я пропустил, но, похоже, решение сценария borrible таково. Если по какой-либо причине вы все еще используете cvs, вам может пригодиться это уточнение:

cvs diff $(cvs log $FILE |
grep "^revision" |
sed "s/^revision/-r/
2q") $FILE

Он использует sed для получения двух последних ревизий из одного вызова "cvs log" и создания опций -r непосредственно из этого вывода.

1
oracleif

Вы можете использовать cvs diff, чтобы узнать различия между локальной извлеченной версией и версией, представленной в заголовке.

cvs diff -r ver1 -r ver2 <FILE-NAME> 
0
crazy_prog