0

我们的项目中有一些外部定义。外部是用修订号定义的(我们希望保持这种方式并且不想使用 head-revision)。

我们正在寻找的是某种通知,当该项目的外部的更新版本可用时触发。这样我们就知道何时可以(如果我们愿意)切换到该外部的更新版本。

目前我们在脚本中使用 TortoiseSVN 命令行工具,但这有一些缺点。

是否有工具或脚本可以满足我们的需求?

如果没有哪个更好的方法:

4

1 回答 1

0

只是概念,您可以将其转换为代码

如果您在 form 中有 external 的 PEG 定义URL/OF/EXTERNAL@RevNo,您就会知道最新版本的 URL:它将是URL/OF/EXTERNAL@HEAD或只是URL/OF/EXTERNAL

为了监视更改,您可以区分两个 URL

因为你想知道变化的事实,你可以用--summarize选项调用 diff

>svn diff https://subversion.assembla.com/svn/subversion-troubleshoot-b/trunk@5 https://subversion.assembla.com/svn/subversion-troubleshoot-b/trunk@HEAD --summarize
 M      https://subversion.assembla.com/svn/subversion-troubleshoot-b/trunk

trunk@5是定义的修订,非空输出 - 链接仓库中现有附加提交的标志,您必须另外识别,可能使用默认差异

>svn diff https://subversion.assembla.com/svn/subversion-troubleshoot-b/trunk@5 https://subversion.assembla.com/svn/subversion-troubleshoot-b/trunk@HEAD
Index: .
===================================================================
--- .   (revision 5)
+++ .   (revision 7)
...

以 +++ 开头的字符串包含 HEAD 的数值

另一种方法

如果你有外部定义,fe

>svn pl https://subversion.assembla.com/svn/subversion-troubleshoot-b/tags/1.0.1 -v
Properties on 'https://subversion.assembla.com/svn/subversion-troubleshoot-b/tags/1.0.1':
  svn:externals
    -r 2 https://subversion.assembla.com/svn/subversion-trouble-shooting/trunk/lib@2 lib

您可以 ls external 并获取 head 的修订(并将其与定义的值进行比较)

>svn ls -v  https://subversion.assembla.com/svn/subversion-trouble-shooting/trunk/lib
      2 teno                  окт 17  2012 ./
      2 teno               23 окт 17  2012 lib01.txt

字符串的第一列./包含 HEAD-revision

无编码方式

安装CommitMonitor(用于 http 类型的存储库),将所有外部组件添加到其中,控制 Monitor 活动,检查,检查提交日志

于 2014-05-18T07:41:03.607 回答