当修订跨分支重叠时,使用 svn log 提取标签之间的提交消息
Posted
技术标签:
【中文标题】当修订跨分支重叠时,使用 svn log 提取标签之间的提交消息【英文标题】:using svn log to extract commit messages between tags when revisions overlap across branches 【发布时间】:2013-02-10 12:15:39 【问题描述】:我总是使用 svn log 命令,例如svn log -rXXXX:YYYY
来获取我的 SVN 存储库中两个标签之间的提交消息。
我有时会发现的问题是,如果我正在执行一个大型发布,其中包括从一个从未发布到该环境的分支发布一个标签,那么在提取准确的提交消息列表之前我可能会遇到问题。
例如,我希望释放 01.02.03 (r4152) 和 01.03.02 (r4272) 之间的差异,现在正常的 svn log -r4152:4272
在这里可能看起来很明显,但 02.03
分支从来没有之前发布(无论如何都针对这个环境),所以我注意到 01.03.01 的修订版是 4126,它早于标签 01.02.03。
所以我是第一次从01.03
分支发布代码,所以我需要能够提取适用于该分支的所有内容的修订消息,而不仅仅是数字修订差异。
有没有办法使用svn log
命令来做到这一点?
【问题讨论】:
你能找到解决办法吗? 【参考方案1】:我不确定我是否 100% 理解您的要求,但如果您还没有,请考虑以下事项。
Below 使用您从不同位置引用的log
命令来尝试获得您想要的。这当然取决于您的 SVN 目录结构,因此它可能有帮助,也可能没有帮助,具体取决于您的设置方式。
例如,如果您的 SVN 存储库看起来像:
/someproject
/devbranch
/01.02.03release
/01.03.02release
/somethingneverused
如果您随后将/someproject
映射到本地文件夹,那么您应该能够通过命令行转到该文件夹并从该目录及其子目录运行svn log -r4152:4272
命令。只有处于该级别或以下的项目才会显示在日志中。
如果这还不足以满足您的需求,那么您可以使用一些逻辑从/someproject
中提取所有日志,然后运行脚本从/someproject/somethingneverused
中删除日志
【讨论】:
以上是关于当修订跨分支重叠时,使用 svn log 提取标签之间的提交消息的主要内容,如果未能解决你的问题,请参考以下文章