我正在與一臺SVN服務器到linux計算機。我想開發自動編譯bash代碼。問題是如果沒有更新到我的SVN服務器,我不想編譯這些文件。所以我做的第一件事就是檢查更新。如果條件檢查tortoiseSVN更新到一個Linux bash
這樣:
如果SVN更新;然後
...
網絡
的問題是,即使有沒有更新它進入if條件,因爲它必須檢查更新。我想知道是否有檢查更新是否發生的方法。
謝謝。
我正在與一臺SVN服務器到linux計算機。我想開發自動編譯bash代碼。問題是如果沒有更新到我的SVN服務器,我不想編譯這些文件。所以我做的第一件事就是檢查更新。如果條件檢查tortoiseSVN更新到一個Linux bash
這樣:
如果SVN更新;然後
...
網絡
的問題是,即使有沒有更新它進入if條件,因爲它必須檢查更新。我想知道是否有檢查更新是否發生的方法。
謝謝。
我建議使用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
謝謝你爲我工作 – tutamatumatu
您需要解析svn update命令的輸出。 –
我不能這樣做,因爲項目內的其他合作伙伴只知道使用SVN,所以我必須嘗試使用這些平臺 – tutamatumatu
您是否嘗試過使用svn鉤子?它基本上是一個bash腳本,當svn服務器注意到「一些變化」時執行。 –