2017-07-07 36 views
1

我正在與一臺SVN服務器到linux計算機。我想開發自動編譯bash代碼。問題是如果沒有更新到我的SVN服務器,我不想編譯這些文件。所以我做的第一件事就是檢查更新。如果條件檢查tortoiseSVN更新到一個Linux bash

這樣:

如果SVN更新;然後

...

網絡

的問題是,即使有沒有更新它進入if條件,因爲它必須檢查更新。我想知道是否有檢查更新是否發生的方法。

謝謝。

+1

您需要解析svn update命令的輸出。 –

+0

我不能這樣做,因爲項目內的其他合作伙伴只知道使用SVN,所以我必須嘗試使用​​這些平臺 – tutamatumatu

+0

您是否嘗試過使用svn鉤子?它基本上是一個bash腳本,當svn服務器注意到「一些變化」時執行。 –

回答

0

我建議使用svn鉤子而不是特別的腳本,但你需要把它們放在服務器端。

這就是說,如果您仍然需要構建自己的腳本,則需要注意如果沒有錯誤發生,svn update命令將評估爲true。這與該命令是否真正更新文件無關。因此,您需要檢查您當前的svn版本和遠程存儲庫的svn版本。如果它們不同,那麼你可以執行svn update和其他需要的命令。

#!/bin/bash 

REMOTE_REPO="svn://path/to/remote/repo" 
LOCAL_REPO="/path/to/local/repo" 

REMOTE_REV=$(svn info $REMOTE_REPO | grep '^Revision:' | awk {' print $2 '}) 
LOCAL_REV=$(svn info $LOCAL_REPO | grep '^Revision:' | awk {' print $2 '}) 

if [ $REMOTE_REV -ne $LOCAL_REV ]; then 
    cd $LOCAL_REPO 
    svn up 

    # Add any other command here 
fi 
+0

謝謝你爲我工作 – tutamatumatu