2013-03-25 4 views
2

Мне нужен простой способ получить версию файла с помощью cvs. Я могу получить его, используя файл CVS/Entries. Это небезопасно, и я думаю, что должен быть другой путь. cvs log печатает слишком много, чем мне нужно. Как я могу получить только номер версии какого-либо файла с помощью команд cvs.Команда CVS для получения текущего номера версии файла

ответ

3

cvs log -h показывает только информацию заголовка. Чтобы получить только версию, достаточно легко фильтровать ее через sed, awk или Perl.

Это дает вам версию в репозитории. Если вы хотите версию извлеченного файла, вы можете использовать ident (часть RCS) - но только если вы включили правильные ключевые слова в файл. (Это не работает для двоичных файлов.)

Например, если добавить что-то вроде следующего в файл, прежде чем проверять его в:

# $Id:$ 
# $Source:$ 

затем ident foo.txt напечатает что-то вроде этого:

foo.txt: 
    $Id: foo.txt,v 1.3 2011/10/17 22:49:45 kst Exp $ 
    $Source: /path/to/repo/sandbox/foo.txt,v $ 

Имеется ряд других ключевых слов, которые вы можете использовать. Подробные сведения см. В разделе руководства CVS Keyword substitution.

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

Как я уже говорил, если вы попытаетесь сделать это с помощью двоичного файла, это может привести к повреждению файла (поэтому, если вы укажете CVS, что файл двоичный, он не будет заменять ключевые слова).

Команда ident является частью RCS, а не CVS, поэтому вам придется установить RCS на вашу систему, если она еще не существует. (Было бы разумно иметь команду cvs ident, я не уверен, почему ее там нет.)

Больше «современных» систем управления источниками, как правило, не предоставляют этого средства.

+0

Да Мне нужна версия моего извлеченного файла. Можете ли вы привести пример, как использовать 'ident' – Ashot

+0

@Ashot: см. Мой обновленный ответ –

+0

Современные системы управления версиями не предоставляют этого средства, поскольку общий консенсус в том, что Bad Idea избыточно хранит информацию о версиях в исходном коде. –

Смежные вопросы