如何在 SVN 新增/刪除大量的檔案

感謝 Wolfer 大大提供教學,在此記錄一下:

最近遭遇一個問題,就是廠商提供的SDK,在套用了patch之後,
除了修改檔案之外,還可能會新增/刪除檔案。

而這些新增/刪除的檔案,可能數量不少,而且散在目錄結構的各處,
使得手動新增/刪除也既方便也容易造成錯誤。

因此從網路上找到了方法,說明如下:

1. svn status
svn status 這個指令,可以列出目前目錄下的檔案狀態。
它會把所有被 修改/新增/刪除 的檔案列出來。

畫面最左邊會列出這個檔案的狀況:
M:此檔案被修改過
?:此檔案不在 SVN 的管控下(通常是新增檔案)
!:檔案遺失(通常是被刪除)
A:新增(透過 SVN add 指令加入)
D:刪除(透過 SVN del 指令刪除)

2. grep
使用 grep ^? (或 grep ^!)來找出 新增 (或刪除)的檔案

3. sed
使用 sed ‘s/?//g’ (或 sed ‘s/!//g’) 來把 ‘?’ (或 ‘!’)移除

4. svn add (或 svn del)
使用 svn add (或 svn del) 來 新增/刪除 檔案

把四個步驟整合在一起就變成:

新增用

svn status | grep ^? | sed 's/?//g' | xargs svn add $1

刪除則用

svn status | grep ^! | sed 's/!//g' | xargs svn del $1

留言

這個網誌中的熱門文章

How to use ebtables: ebtable 的小筆記

解決 VirtualBox 無法開啟 NS_ERROR_FAILURE (0x80004005)