查看SVN中目录何时被分支/标记

时间:2011-06-23 14:09:49

标签: svn tags tortoisesvn subclipse

我目前正在大型项目的发布过程中工作。

我只需要知道一个目录是否在之后被标记了(因此我们需要创建一个新标签并发布新版本)。

我可以使用TortoiseSVN,CLI和Subclipse。

尝试使用修订图,但没有发现任何有用的东西......(或者至少我无法正确使用它)

谢谢

4 个答案:

答案 0 :(得分:3)

您需要分两步完成:

  1. 获取已标记的版本。这可以通过检查标签创建的修订,从命令行使用svn info并检查上次更改的转速来完成。
  2. 检查修订后的源目录中的任何更改。从命令行使用svn log -r 470:HEAD,其中470是在步骤1中找到的修订号。

答案 1 :(得分:1)

我想从根级目录,你可以运行

svn log path/to/directory --verbose

并且应该为您提供该目录上所有活动的列表。如果你有一个修订号,你也可以用它来缩小它。

http://svnbook.red-bean.com/en/1.5/svn.ref.svn.c.log.html

答案 2 :(得分:1)

  

我只需要知道在标记后是否在主干中修改了目录(因此我们需要创建一个新标记并发布新版本)。

您可能会对此感兴趣:您是否考虑过使用像Jenkins这样的连续构建系统。每次有人提交时,Jenkins都会运行构建。

那么,这对你有什么帮助?很简单,你可以使用Jenkins来标记和标记在Jenkins中标记的构建。您只需查看项目的网页,查看标记了哪些版本。如果在最后一个标记后签入新签到,Jenkins将构建它。而且,你会在詹金斯看到它。更好的是,Jenkins甚至可以自动为你标记它。

这使开发人员可以轻松查看构建,构建的输出,更改,发生更改的原因以及进行更改的人员。如果您有缺陷跟踪系统,Jenkins可以链接到该系统,更新已构建的问题,并直接从Jenkins提供该问题的链接。

Jenkins可以运行并进行图表测试,运行像Checkstyle和Findbugs(http://findbugs.sourceforge.net/)这样的开发软件,甚至标记无法达到无可挑剔标准的构建。它会在每次糟糕的构建之后通过电子邮件发送给开发人员,这样他们就可以解决这个问题。

Jenkins易于设置,易于管理。

这不完全是你所问的,但詹金斯可能就是这么做的。

答案 3 :(得分:0)

确定当前主干是否与给定标记匹配的唯一方法是运行类似svn diff --summarize ^/trunk/ ^/tags/foobar的内容。这是因为subersion中的标签只不过是目录的命名约定。任何现有标记都可以表示从存储库中的任何位置复制的多个修订的组合。