svn外部检查是否有新修订

svn外部检查是否有新修订,svn,pysvn,externals,svn-api,Svn,Pysvn,Externals,Svn Api,我们的项目中有一些外部定义。外部用修订号定义(我们希望保持这种方式,不希望使用头部修订) 我们正在寻找的是当该项目的外部版本有更新版本时触发的某种通知。这样我们就知道什么时候我们可以(如果我们想)切换到外部版本的更新版本 目前,我们正在脚本中使用TortoiseSVN命令行工具,但这有一些缺点 是否有一个工具或脚本可以满足我们的需要 如果没有,哪种方法更好: pysvn 本机SVN API 只是概念,您可以将其转换为代码 如果您在表单URL/of中有外部的PEG定义/EXTERNAL@RevN

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

我们正在寻找的是当该项目的外部版本有更新版本时触发的某种通知。这样我们就知道什么时候我们可以(如果我们想)切换到外部版本的更新版本

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

是否有一个工具或脚本可以满足我们的需要

如果没有,哪种方法更好:

  • pysvn
  • 本机SVN API

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

如果您在表单
URL/of中有外部的PEG定义/EXTERNAL@RevNo
,您知道最新版本的URL:它将是/EXTERNAL@HEAD或只是
URL/OF/EXTERNAL

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

因为您想知道更改的事实,所以可以使用
--summary
选项调用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)
...
以++++字符串开头,包含头的数值

另一种方法

如果你有外部定义,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
您可以使用ls-external获取头部的修订(并将其与定义的值进行比较)

字符串
/
的第一列包含标题修订

无编码方式


安装(对于http类型的repos),向其中添加所有外部,控制监视器活动,检查,检查提交日志

我们选择的路径:我们决定使用pysvn。Pysvn提供了获取svn属性的功能。允许提取已定义的外部修订。还可以确定引用存储库的头版本。要更新工作副本,我们使用tortoise svn客户端工具。
>svn ls -v  https://subversion.assembla.com/svn/subversion-trouble-shooting/trunk/lib
      2 teno                  окт 17  2012 ./
      2 teno               23 окт 17  2012 lib01.txt