Получить номер ревизии отмеченного файла в 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 команда.

Другие вопросы по тегам