Получение различий между двумя верхними ревизиями файла в CVS - PullRequest
13 голосов
/ 27 июня 2011

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

Ответы [ 3 ]

29 голосов
/ 27 июня 2011

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

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

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

1 голос
/ 16 августа 2017

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

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

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

0 голосов
/ 08 июля 2011

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

cvs diff -r ver1 -r ver2 <FILE-NAME> 
...