我想在Ubuntu服務器上創建一個Bask腳本,該腳本應該檢查遠程SVN存儲庫中哪些文件發生更改。如果是的話,它應該執行一些任務。 在我的情況下運行doxygen並重新生成文檔。SVN遠程文件發生變化時運行bash腳本
我無法解釋svn狀態響應。 我一直在尋找整個星期,並嘗試找到幾個建議,但它仍然無法正常工作。確切地說,無論它們是否被更改文件,任務總是運行。
這裏是我的腳本至今:
#!/bin/bash
# Get the status:
svnstatus=$(svn status -u -q)
#Check for modified or new files:
#This part is not working correctly
added=$(printf "%s" "$svnstatus" | sed -n 's/[Added] *\(.*\)/\1/p')
modified=$(printf "%s" "$svnstatus" | sed -n 's/[Updated] *\(.*\)/\1/p')
if [ "x$added" != "x" -o "x$modified" != "x" ]
then
svn update
echo regenerated documentation using doxygen
fi
的主要問題是與SED的一部分。我是Ubuntu新手,這部分對我來說很困難。我從Internet上找到的腳本中複製了這些內容。
$ svnstatus是
Status against revision: 75016
沒事的時候新
* 75016 Resources/graphs/dot_tags.txt
Status against revision: 75017
當一個文件被改變。
任何意見是非常讚賞
是否'SVN update'當它的東西,否則失敗返回成功?你能做到嗎? doxygen進程是否通過make?如果它正在運行,那麼這可能不是什麼大事,因爲當沒有任何變化時它將避免做任何工作。 – 2014-09-19 14:54:32