2010-06-23 36 views
2

我想從Windows上的批處理文件中確定是否需要從服務器更新本地SVN工作副本。在一個類似unix的機器上,我會運行「svn status -u」並計算'*'。如何在批處理文件中實現相同的功能?如何確定SVN工作副本是否需要更新(從腳本)?

背景:我試圖確定一個依賴庫是否過期,因爲它需要一個長的時間來重新構建它,我們只能每3個月更新一次。這是一個自動構建過程。

+0

您還需要安裝一個命令行Subversion客戶端,如sliksvn – 2011-06-13 21:39:07

+0

請參閱此主題:[我如何知道我的工作副本是否不同步](http://stackoverflow.com/questions/6516214/如果我的工作拷貝不同步) – 2015-04-08 10:12:34

回答

3

如果我跟着你,也許是這樣的:

svn st -u | find "*" 
if not "%errorlevel%"=="0" goto end 

svn update 

:end 

找到會將ERRORLEVEL設置爲0,如果它成功地找到了 「*」。

編輯:意外地忽略了%errorlevel%周圍的「」。

+0

這樣做,我會踢任何人創建一個包含'*'的文件名。 – Harvey 2010-06-23 21:21:23

+0

注意我不小心忽略了%errorlevel%左右的「」。 – 2010-06-23 21:22:27

+0

我實際上使用'if errorlevel 1 goto do_build'來代替。 (我的邏輯與你的邏輯相反。) – Harvey 2010-06-23 22:26:26