当修订跨分支重叠时,使用svn log提取标记之间的提交消息

时间:2013-02-25 11:05:04

标签: svn version-control commit revision

我总是使用svn log命令,例如svn log -rXXXX:YYYY来获取我的SVN存储库中两个标记之间的提交消息。

我有时会发现的问题是,如果我正在执行一个大型版本,其中包括释放一个从未发布到该环境的标记,之后我就无法提取准确的提交消息列表。

例如,我希望释放01.02.03(r4152)和01.03.02(r4272)之间的差异,现在正常的svn log -r4152:4272可能看起来像这里的明显答案,但是02.03 branch之前从未发布过(无论如何都是这个环境),所以我注意到01.03.01的修订版 4126 ,它早于标签01.02.03。

所以我从第一次发布01.03分支的代码,所以我需要能够提取该分支下适用的所有内容的修订消息,而不仅仅是数字修订差异。

有没有办法用svn log命令执行此操作?

1 个答案:

答案 0 :(得分:0)

我不确定我是否100%理解您的请求,但如果您尚未考虑,请考虑以下内容。

下面使用您在不同位置引用的log命令,尝试找到您想要的内容。这当然取决于您的SVN目录结构,因此根据您的设置方式可能会有所帮助。

例如,如果你的SVN回购如下:

 /someproject
    /devbranch
    /01.02.03release
    /01.03.02release
    /somethingneverused

如果然后将/someproject映射到本地文件夹,则应该能够通过命令行转到该文件夹​​,并从该目录及其子目录运行svn log -r4152:4272命令。只有级别或以下的项目才会显示在日志中。

如果这还不足以为您提供所需内容,那么您可以使用某些逻辑从/someproject提取所有日志,然后运行脚本以从/someproject/somethingneverused中删除日志