2014-05-17 73 views
0

我們在項目中有一些外部定義。外部是用一個修訂版本號來定義的(我們希望保持這種狀態,不想使用head-revision)。svn外部檢查新版本

我們正在尋找的是某種通知,當該項目的外部更新版本可用時會觸發該通知。所以我們知道什麼時候可以(如果我們想)切換到該外部的更新版本。

目前我們在腳本中使用TortoiseSVN命令行工具,但這有一些缺點。

有沒有一種工具或腳本可以實現我們想要的功能?

如果沒有哪一個是更好的計算策略:

+0

我們選擇的路徑:我們決定使用pysvn。 Pysvn提供了獲取svn屬性的功能。這允許提取定義的外部修訂。引用的存儲庫的頭版本也可以確定。爲了更新工作副本,我們使用了烏龜svn客戶端工具。 – rherzog

回答

0

只是概念,它可以轉換成代碼

如果您有URL/OF/[email protected]表格中的外部PEG定義,則您知道最新修訂版本的URL:它將是URL/OF/[email protected]或只是URL/OF/EXTERNAL

爲了監測變化,你可以diff的兩個URL

因爲你想知道改變的事實,你可以叫差異與--summarize選項

>svn diff https://subversion.assembla.com/svn/subversion-troubleshoot-b/[email protected] https://subversion.assembla.com/svn/subversion-troubleshoot-b/[email protected] --summarize 
M  https://subversion.assembla.com/svn/subversion-troubleshoot-b/trunk 

這裏[email protected]是改版根據定義,非空輸出 - 鏈接回購中現有額外提交的符號,您必須另外指定,也許使用默認差異

>svn diff https://subversion.assembla.com/svn/subversion-troubleshoot-b/[email protected] https://subversion.assembla.com/svn/subversion-troubleshoot-b/[email protected] 
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/[email protected] lib 

可以LS外,並得到頭的版本(並將其與定義值進行比較)

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

./的第一列包含頭修訂

無編碼方式

安裝CommitMonitor(用於HTTP型回購),加入所有的外部進去,控制監視活動,檢查,檢查承諾,日誌