Подтвердить что ты не робот

Как получить список комментариев коммита от CVS с последней помеченной версии?

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

Есть ли способ получить список из CVS этих комментариев об изменениях с последней помеченной версии?

Бонус, если я смогу сделать это через плагин CVS Eclipse.

ОБНОВЛЕНИЕ. Я хотел бы принять здесь ответ, но, к сожалению, ни один из ответов не является тем, что я ищу. Честно говоря, я не думаю, что это действительно возможно, что очень жаль, поскольку это может быть отличным способом создания списка изменений между версиями (Предполагая, что все коммиты сделаны с разумной детализацией и содержат значимые комментарии).

4b9b3361

Ответ 1

Я думаю,

cvs -q log -SN -rtag1:::tag2 

или

 cvs -q log -SN -dfromdate<todate  

сделает то, что вы хотите. Здесь перечислены все версии и комментарии для всех изменений, сделанных между двумя тегами или датами, только для файлов, которые были изменены. В случае тега три двоеточия исключают комментарии для первого тега. Для получения дополнительной информации см. Журнал cvs -H.

Ответ 2

Параметры команды cvs log доступны здесь. В частности, чтобы получить все коммиты с определенного тега (давайте назовем его VERSION_1_0)

cvs log -rVERSION_1_0:

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

Ответ 3

Если вы хотите получить быстрый результат в одном файле, команда cvs log хороша. Если вы хотите что-то более всеобъемлющее, лучшим инструментом, который я нашел для этого, является perl script, называемый cvs2cl.pl. Это может создать список изменений в нескольких разных форматах. У него много разных опций, но я использовал теги-теги, например:

cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8

или

cvs2cl.pl --delta dev_release_1_2_3:HEAD

Я также делал сравнения, используя даты с одним и тем же инструментом.

Ответ 4

Я знаю, что вы уже "решили" свою проблему, но у меня была такая же проблема, и вот как я быстро получил все комментарии из cvs из данной версии до последней версии:

$ mkdir ~/repo
$ cd ~/repo
$ mkdir cvs
$ cd cvs
$ scp -pr [email protected]:/cvs/CVSROOT .
$ mkdir -p my/favorite
$ cd my/favorite
$ scp -pr [email protected]:/cvs/my/favorite/project .
$ cd ~/repo
$ mkdir -p ~/repo/svn/my/favorite/project
$ cvs2svn -s ~/repo/svn/my/favorite/project/src ~/repo/cvs/my/favorite/project/src
$ mkdir ~/work
$ cd ~/work
$ svn checkout file:///home/geek/repo/svn/my/favorite/project/src/trunk ./src
$ cd src
$ # get the comments made from revision 5 until today
$ svn log -r 5:HEAD
$ # get the comments made from 2010-07-03 until today
$ svn log -r {2010-07-03}:HEAD

Основная идея - просто использовать svn или git вместо cvs:-) И это можно сделать, переведя cvs repo в svn или git с помощью cvs2svn или cvs2git, что мы должны делать в любом случае. Он получил мой ответ в течение примерно трех минут, потому что у меня был небольшой репозиторий.

Надеюсь, что это поможет.

Ответ 5

Что-то вроде этого

cvs -q log -NS -rVERSION_3_0::HEAD

Где вы, вероятно, хотите передать вывод в egrep, чтобы отфильтровать материал, который вы не хотите видеть. Я использовал это:

cvs -q log -NS -rVERSION_3_0::HEAD | egrep -v "RCS file: |revision |date:|Working file:|head:|branch:|locks:|access list:|keyword substitution:|total revisions: |============|-------------"