我有一個充滿數據的大型存儲庫(圖像,視頻,文本文件等),雖然我希望所有這些都進入實時服務器,但我不需要檢查那爲我的測試環境(我沒有視頻罰款)。如何從SVN更新中排除文件類型
有沒有辦法在檢出工作副本時排除視頻文件類型?
目前我使用一個腳本來設置文件夾的深度,我知道這些文件夾會將視頻清空,但這不是完美的解決方案,因爲它們有時包含子文件夾或海報圖像。
我有一個充滿數據的大型存儲庫(圖像,視頻,文本文件等),雖然我希望所有這些都進入實時服務器,但我不需要檢查那爲我的測試環境(我沒有視頻罰款)。如何從SVN更新中排除文件類型
有沒有辦法在檢出工作副本時排除視頻文件類型?
目前我使用一個腳本來設置文件夾的深度,我知道這些文件夾會將視頻清空,但這不是完美的解決方案,因爲它們有時包含子文件夾或海報圖像。
我發現一些作品:
$ svn co --depth=empty $REPO/branch/$proj
$ cd $proj
$ svn ls -R | while read $file
do
[[ ${file%%*.} == ".mp4" ]] && continue # Video or whatever
if [[ ${file%%*/} != $file ]] # Does file name end in a slash?
then
svn up --set-depth=empty "$file" # Directory
else
svn up --set-depth=infinity "$file" # File
fi
done
然而,這是速度奇慢,因爲今年svn up
必須到服務器,然後等待更新發生,併爲每個文件做到這一點。可能還有一個包含空白的名稱問題,雖然這對我來說不是問題。我有幾個包含一個或兩個空格的文件,但如果一個文件包含兩個或多個空格在一起或製表符,這可能不起作用。
試一試,但我認爲你現在的方法可能會更好。您始終可以使用svn ls -R
查找視頻確實存在的位置,然後通過--set-depth
(也可能包括exclude
以及immediates
,empty
和infinity
)進行修剪。
你應該做的是重新安排你的回購,這樣所有的視頻都在同一個目錄中,而不是散落在四周。您必須更改您的JavaScript,HTML以及任何可能訪問這些文件的其他文件(PHP?)。這將使您的工作更輕鬆,並使您的服務器更加靈活。例如,您可能希望將視頻安裝到高速訪問分區中(或至少是其自己的分區),因此,在同一個磁盤分區上沒有40 GB的視頻與其他文件相同。
是的,在每個文件上運行'svn up'可能不是一個完美的解決方案,但我一定會看看'svn ls -R'。如果我找到了一些可行的解決方案,我一定會在這裏發佈。 – KotuS
建立你想要更新的文件列表是可能的,然後將它們作爲單個參數傳遞(儘管你必須確保你不會超出命令行緩衝區)。這可能會更快。 –