如何在 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) 來 新增/刪除 檔案
把四個步驟整合在一起就變成:
新增用
刪除則用
最近遭遇一個問題,就是廠商提供的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
留言
張貼留言