我们的项目中有一些外部定义。外部部分用修订号定义(我们希望保持这种方式,不想使用修订版)。
我们正在寻找的是当某个项目的外部新版本可用时触发的某种通知。因此,我们知道何时可以(如果我们想)切换到该外部的更新版本。
目前我们在脚本中使用TortoiseSVN命令行工具,但这有一些缺点。
是否有工具或脚本可以满足我们的需求?
如果没有哪个是更好的approch:
答案 0 :(得分:0)
只是概念,您可以将其转换为代码
如果你有URL/OF/EXTERNAL@RevNo
形式的外部PEG定义,你知道最新版本的网址:它将是URL/OF/EXTERNAL@HEAD
或URL/OF/EXTERNAL
为了监控更改,您可以区分两个网址
因为您想知道更改的事实,您可以使用--summarize
选项
>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