Получить номер ревизии отмеченного файла в WinCvs
Кажется, что это должно быть так просто, но я не могу найти решение, которое кажется работающим...
Мне нужна команда CVS, которая дает имя тега, который вы применили к файлу, и даст номер ревизии.
Древовидная структура CVS:
(filename)
|
+--> 1.1-----(branch)
| |
| 1.1.1.1---(tag1)
| |
| 1.1.1.2---(tag2)
| |
| 1.1.1.3---(tag3)
| |
| :
1.2
|
|
:
Например: используя команду CVS с именем тега "tag2", как я могу получить CVS, чтобы получить номер редакции "1.1.1.2"?
Самое близкое, что я могу найти, это использовать log
команда с -Q
флаг, но это все же дает мне гораздо больше информации, чем мне нужно.
например: cvs -Q log -h filename
Передача тэга в log
Команда, кажется, не имеет никакого эффекта.
Информация о версии CVS:
Мое текущее решение состоит в том, чтобы использовать Perl-скрипт для анализа вывода из log
команда, но должен быть более простой способ...
1 ответ
Передача имени тега (с параметром -r) в команду log имеет эффект, но не особенно полезный, и его эффект скрыт "-h".
Обычно это самый простой способ получить номер ревизии для вашего VERSION
file (нормальный вариант использования для этого) - включить в него ключевое слово; то есть:
# Thu 21 May 08:40:59 BST 2015
THISREV="$Revision$"
Примечание: чтобы получить номер версии репозитория это VERSION
файл должен быть зафиксирован каждый раз, когда вы делаете коммит в репо.
Если вам нужна ревизия для определенного файла, тогда вы в основном прибегаете к сценариям из части "символических имен" журнала. Таким образом, для r-1-0-0
ты делаешь это:
cvs -Q log -h VERSION | awk '/^\tr-1-0-0:/ {print $NF;}'
Там нет прямого эквивалента git describe
команда.