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

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

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

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

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
17
0
26 280
5

Ответы 5

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

cvs log -rVERSION_1_0:

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

хмм Похоже, что -r указывает номер версии файла, а не конкретный тег.

Ron Tuffin 31.10.2008 17:10

по крайней мере, мой cvs печатает теги, автора и даты ... но не комментарии

Stroboskop 16.12.2008 17:11

HEAD - это псевдоним последней версии, если вы явно не пометили новейшие версии своего кода.

Nate 12.03.2011 11:46

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

cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8

или же

cvs2cl.pl --delta dev_release_1_2_3:HEAD

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

Я знаю, что вы уже «решили» свою проблему, но у меня была та же проблема, и вот как я быстро получил все комментарии из 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 в svn или git с помощью cvs2svn или cvs2git, что мы в любом случае должны делать. Мой ответ пришел примерно через три минуты, потому что у меня был небольшой репозиторий.

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

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

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: |============|-------------"

Я думаю

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

или же

 cvs -q log -SN -dfromdate<todate  

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

Это действительно ответ на вопрос. Я использую rlog. Я считаю, что два двоеточия работают, а не три двоеточия. Также может быть полезно оставить в тегах (поэтому опустите параметр -N). Итак: 'cvs -q rlog -S -rtag1 :: tag2' или 'cvs -q rlog -S -rtaglast ::'

gaoithe 20.02.2017 14:30

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