我正在編寫一個部署bash腳本,該腳本會將源代碼管理中的最近更改發佈到其他計算機上。我是從命令行開始學習svn的(在開發中已經使用了很多年),並且是新的bash腳本。已在指定時間段內提交的SVN簽出文件
我需要一種方法來只簽出最近修改過的文件。事情是這樣的:
svn checkout svn://server/repo/project/trunk -mtime -1d4h
的想法是這個就已經致力於在過去28小時內,只簽出的文件。
我正在編寫一個部署bash腳本,該腳本會將源代碼管理中的最近更改發佈到其他計算機上。我是從命令行開始學習svn的(在開發中已經使用了很多年),並且是新的bash腳本。已在指定時間段內提交的SVN簽出文件
我需要一種方法來只簽出最近修改過的文件。事情是這樣的:
svn checkout svn://server/repo/project/trunk -mtime -1d4h
的想法是這個就已經致力於在過去28小時內,只簽出的文件。
後果找到
-d "28 hours before"
)和stored in variable構造,這可以作爲參數electrictoolbox的劇本我發現了更簡單的東西在此基礎上,以適合我的需求: How can I keep the original file [commit] timestamp on Subversion?
我使用--config-option config:miscellany:use-commit-times=yes
簽出或更新項目的工作副本,它將文件系統上的時間戳設置爲最後一次結賬時間。然後我使用標準的find
命令。例如:
#!/bin/bash
function listfn {
while read file; do
if [[ !($file =~ ^.*\.svn.*$) ]]; then
echo $file
fi
done
}
svn checkout --config-option config:miscellany:use-commit-times=yes svn://server/repo/project/trunk project-fordeploy
find project-fordeploy -mtime -1d4h | listfn
AFAIK沒有像SVN那樣的功能。你可能需要爲那個地方寫一個腳本,在那裏用depth = empty結帳,列出日誌,找到最近28小時內的最後一個提交,並回滾包裝文件名,以更新每個文件名......不那麼難,但需要一些工作... – ceinmart