【发布时间】:2011-06-23 14:09:48
【问题描述】:
我目前正在一个大型项目的发布过程中工作。
我只需要知道一个目录在树干在被标记之后是否被修改(所以我们需要制作一个新标记并发布新版本)。
我可以使用 TortoiseSVN、CLI 和 Subclipse。
尝试使用修订图但没有发现任何有用的...(或者至少我无法正确使用它)
谢谢
【问题讨论】:
标签: svn tags tortoisesvn subclipse
我目前正在一个大型项目的发布过程中工作。
我只需要知道一个目录在树干在被标记之后是否被修改(所以我们需要制作一个新标记并发布新版本)。
我可以使用 TortoiseSVN、CLI 和 Subclipse。
尝试使用修订图但没有发现任何有用的...(或者至少我无法正确使用它)
谢谢
【问题讨论】:
标签: svn tags tortoisesvn subclipse
您需要分两步完成:
svn info 并检查最后更改的版本。svn log -r 470:HEAD,其中470 是在步骤1 中找到的修订号。【讨论】:
svn cp -r123 ^/trunk ^/tags/foobar。现在svn info ^/tags/foobar 说“上次更改的版本:470”。要稍后找出我标记的修订版本,您必须执行svn log --stop-on-copy -v ^/tags/foobar。当然,我也可以svn cp -r123 ^/trunk/onething ^/tags/foobar/onething; svn cp -r231 ^/trunk/anotherthing ^/tags/foobar/anotherthing,所以现在没有标签对应的单一修订版。
我想你可以从根目录运行
svn log path/to/directory --verbose
并且应该为您提供该目录上所有活动的列表。如果你有一个修订号,你也可以用它来缩小范围。
【讨论】:
我只需要知道一个目录在被标记后是否在trunk中被修改(所以我们需要制作一个新标签并发布新版本)。
您可能对此感兴趣:您是否想过使用像Jenkins 这样的持续构建系统。每次有人提交时,Jenkins 都会运行一个构建。
那么,这对您有什么帮助?很简单,您可以使用 Jenkins 来标记和标记在 Jenkins 中正确标记的构建。您可以简单地查看项目的网页并查看标记了哪些构建。如果在最后一个标记后有新的签入,Jenkins 将构建它。而且,你会在 Jenkins 中看到它。更棒的是,Jenkins 甚至可以自动为你标记它。
这使开发人员可以轻松查看构建、构建的输出、更改、这些更改发生的原因以及进行更改的人员。如果您有缺陷跟踪系统,Jenkins 可以链接到该系统,更新已构建的问题,并直接从 Jenkins 提供指向该问题的链接。
Jenkins 可以运行您所做的测试并绘制图表,运行 Checkstyle 和 Findbugs(http://findbugs.sourceforge.net/) 等开发软件,甚至可以标记无法达到您无可挑剔的标准的构建。它会在每次构建错误后向开发人员发送电子邮件,以便他们解决问题。
Jenkins 易于设置和管理。
这不是你问的,但詹金斯可能会做到这一点。
【讨论】:
确定当前主干是否与给定标签匹配的唯一方法是运行svn diff --summarize ^/trunk/ ^/tags/foobar 之类的东西。这是因为 subersion 中的标签只不过是目录的命名约定。任何现有标签都可以代表多个修订的组合,从存储库中的任何位置复制。
【讨论】: