svn externals检查新版本

时间:2014-05-17 17:40:01

标签: svn pysvn externals svn-api

我们的项目中有一些外部定义。外部部分用修订号定义(我们希望保持这种方式,不想使用修订版)。

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

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

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

如果没有哪个是更好的approch:

1 个答案:

答案 0 :(得分:0)

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

如果你有URL/OF/EXTERNAL@RevNo形式的外部PEG定义,你知道最新版本的网址:它将是URL/OF/EXTERNAL@HEADURL/OF/EXTERNAL

为了监控更改,您可以区分两个网址

因为您想知道更改的事实,您可以使用--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的数值

另一种方法

如果你有外部定义,那么f.e

>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

你可以在外部获得头部的修订(并将其与定义的值进行比较)

>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-type repos),将所有外部添加到其中,控制Monitor活动,检查,检查commit-logs