Version control 如何从CVS获取自上次标记版本以来的提交注释列表?
我对一个项目中的许多文件做了一系列更改。每次提交(通常在文件级别)都会附带一条关于更改内容的注释 有没有办法从CVS中获取自上次标记版本以来的更改评论列表 如果我可以通过EclipseCVS插件实现这一点,那就有额外的好处了Version control 如何从CVS获取自上次标记版本以来的提交注释列表?,version-control,cvs,Version Control,Cvs,我对一个项目中的许多文件做了一系列更改。每次提交(通常在文件级别)都会附带一条关于更改内容的注释 有没有办法从CVS中获取自上次标记版本以来的更改评论列表 如果我可以通过EclipseCVS插件实现这一点,那就有额外的好处了 更新:我很想在这里接受答案,但不幸的是,没有一个答案是我想要的。坦白地说,我认为这实际上是不可能的,这真的是一个遗憾,因为这可能是在版本之间创建更改列表的一个很好的方法(假设所有提交都以合理的粒度进行,并且包含有意义的注释)。cvs log命令的选项可用。具体地说,要获取自
更新:我很想在这里接受答案,但不幸的是,没有一个答案是我想要的。坦白地说,我认为这实际上是不可能的,这真的是一个遗憾,因为这可能是在版本之间创建更改列表的一个很好的方法(假设所有提交都以合理的粒度进行,并且包含有意义的注释)。cvs log命令的选项可用。具体地说,要获取自特定标记以来的所有提交(让我们称之为VERSION_1_0)
如果您的目标是让一个命令在不知道最后一个标记的名称的情况下工作,我相信您需要编写一个脚本来获取当前分支的日志,解析以找到标记,然后针对该标记发出log命令,但是我很久以前就从CVS迁移了所有内容,因此,我的内存可能有点生锈。如果您想在单个文件上快速获得结果,那么
cvs log
命令很好。如果您想要更全面的东西,我找到的最好的工具是一个名为的perl脚本。这可以生成几种不同格式的更改列表。它有许多不同的选项,但我使用了如下标记到标记选项:
cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8
或
我还使用同一工具使用日期进行了比较。我知道您已经“解决”了您的问题,但我也遇到了同样的问题,以下是我如何快速从给定修订版的cvs中获得所有注释,直到最新版本:
$ mkdir ~/repo
$ cd ~/repo
$ mkdir cvs
$ cd cvs
$ scp -pr geek@avoid.cvs.org:/cvs/CVSROOT .
$ mkdir -p my/favorite
$ cd my/favorite
$ scp -pr geek@avoid.cvs.org:/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
$mkdir~/回购
$cd~/回购
$mkdir cvs
$cd cvs
$scp-prgeek@avoid.cvs.org:/cvs/CVSROOT。
$mkdir-p我的/最爱
$cd我的最爱
$scp-prgeek@avoid.cvs.org:/cvs/my/favorite/project。
$cd~/回购
$mkdir-p~/repo/svn/my/favorite/project
$cvs2svn-s~/repo/svn/my/favorite/project/src~/repo/cvs/my/favorite/project/src
$mkdir~/工作
$cd~/件作品
$svn结帐file:///home/geek/repo/svn/my/favorite/project/src/trunk /src
$cd src
$#获取第5版到今天的评论
$svn日志-r 5:头
$#获取从2010-07-03到今天的评论
$svn log-r{2010-07-03}:标题
基本思想是只使用svn或git而不是cvs:-)
这可以通过使用cvs2svn或cvs2git将cvs回购转换为svn或git来实现,我们无论如何都应该这样做。它在大约三分钟内得到了我的答案,因为我有一个小存储库
希望能有帮助。像这样的事情
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-dfromdatehmm看起来-r表示文件修订号,而不是特定的标记。至少我的cvs打印标记、作者和日期。。。但不是commentsHEAD是最新版本的别名,如果您没有明确标记代码的最新版本,那么这确实回答了问题。我正在使用rlog。我发现两个冒号有效,而不是三个冒号。保留在标记中也很有用(因此省略-N选项)。所以:'cvs-qrlog-S-rtag1::tag2'或'cvs-qrlog-S-rtaglast:'
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