1. 程式人生 > >linux/ubuntu svn 專案拷貝/遷移/合併

linux/ubuntu svn 專案拷貝/遷移/合併

問題:假設我們有使用者A和B,A擁有原始專案副本目錄a,B擁有最新專案副本目錄b,A的副本可以廢棄了,A需要更新到B的副本繼續工作,最簡單的方法是刪除a目錄下的所有檔案,在拷貝b目錄下的所有檔案到a,這裡介紹一下基於客戶端的snv shell指令碼操作流程
1,簽出專案目錄a和專案目錄b
1.1,進入使用者根目錄
cd ~
1.2,簽出專案目錄a
svn checkout https://www.xxx.com/svn/a --username 使用者名稱 --password 密碼
1.3,簽出專案目錄b
svn checkout https://www.xxx.com/svn/b --username 使用者名稱 --password 密碼
2,刪除svn伺服器上a目錄下的所有內容
2.1,進入目錄a
cd ~/a
2.2,刪除本地目錄a中所有內容
svn rm *
2.3,更新操作到svn伺服器
svn commit -m "delete old version"
此刻svn伺服器上a目錄的所有資料都沒了,本地也沒了
3,新增目錄b中的所有內容到svn伺服器中的a目錄下
3.1,進入b目錄
cd ~/b
3.2,刪除所有.svn目錄
find . -name .svn -type d | xargs rm -rf
3.3,更新本地b目錄下的所有檔案到svn伺服器的a目錄下
svn import -m "update b to a"  ~/b https://www.xxx.com/svn/a
此刻svn伺服器上a目錄下的內容就和b目錄保持一致了.
4,驗證拷貝過程
4.1,回到使用者根目錄
cd ~/
4.2,刪除本地目錄 a和b
sudo rm -r ~/a ~/b
4.3,簽出專案目錄a
svn checkout https://www.xxx.com/svn/a --username 使用者名稱 --password 密碼
4.4,簽出專案目錄b
svn checkout https://www.xxx.com/svn/b --username 使用者名稱 --password 密碼
4.5,刪除.svn目錄
find ~/a -name .svn -type d | xargs rm -rf
find ~/b -name .svn -type d | xargs rm -rf
4.6,比較
比較過程就不多說了,我用的是圖形介面工具meld
(安裝參考 http://blog.csdn.net/shanzhizi/article/details/18253001)