SVN常用命令與分支操作


1.基本操作

1.0 創建版本庫: 

 Svnadmin create /data/repos  

 

2.0 修改配置文件 
Auth文件   
[groups]   
admin=shguo   
[/]   
@admin=rw   
*=r  
[groups] admin=shguo [/] @admin=rw *=r

Passwd文件
[users]   
shguo=shguo  
[users] shguo=shguo

Svnserve.conf文件
anon-access = read   
auth-access = write   
password-db = passwd   
authz-db = authz  

注意:要去掉前面的空格不然會報,認證配置失敗 

 

3.0啟動:

svnserve –d –r repos  

 

4.0 創建目錄
svn mkdir svn://127.0.0.1/repos/ -m “mkdir”   (說明“”中是提交的log注釋)
svn mkdir svn://127.0.0.1/repos/sns/  -m “mkdir”   
svn mkdir svn://127.0.0.1/repos/sns/trunk  -m “mkdir”   
svn mkdir svn://127.0.0.1/repos/sns/branches -m “mkdir”   
svn mkdir svn://127.0.0.1/repos/sns/tags  -m “mkdir”
或者本地操作
svn mkdir file:///data/repos/ -m “mkdir” 
svn mkdir file:///data/repos/sns/ -m “mkdir” 
svn mkdir file:///data/repos/sns/trunk -m “mkdir” 
svn mkdir file:///data/repos/sns/branches -m “mkdir” 

svn mkdir file:///data/repos/sns/tags -m “mkdir” 

 

5.0導入項目:
Svn import sns svn://127.0.0.1/repos/sns/trunk/ –m “init project”   
查看:svn list svn://127.0.0.1/repos/sns/trunk/  


6.0導出項目開發:

Svn checkout svn://127.0.0.1/repos/sns/trunk/sns 

 

7.0進入目錄就可以進行開發操作了
Cd sns   
Svn status   
Svn add  new.txt   
Svn commit –m ‘commit’  
Svn log new.txt


其它一些命令:
Svn update    
Svn diff –r m:n path   
Svn lock some.java or svn unlock some.java   
Svn revert    
Svn add /delete / copy / move   
Svn switch –relocate svn://xxxx/one   svn://xxxx/two   

Svn list path  

 

2. Svn中分支的使用 

2.0 創建分支
Svn cp http://svn.shguo.com/repos/sns/trunk/  http://svn.shguo.com/repos/sns/branches/101128_sns_imageUpload_shguo -m “shguo_branch”  
也可以通過 TortoiseSVN 中的Branch/tag來創建分支 

 

2.1 取出分支來開發 

Svn co http://svn.shguo.com/repos/sns/branches/101128_sns_imageUpload_shguo  101128_sns_imageUpload_shguo

 

2.2開發完成后向主干提交 

檢查需要合並的分支的歷史:
svn log --stop-on-copy -q http://svn.shguo.com/repos/sns/branches/101128_sns_imageUpload_shguo
合並:
svn merge –r 16:HEAD http://svn.shguo.com/repos/sns/branches/101128_sns_imageUpload_shguo


2.3檢查沖突: 
svn status 
如果有解決沖突,沒有就svn commit命令就可以完成提交 

2.4 批量增加svn文件
svn add `svn st |grep ? |awk '{print $2}'`   
svn st |grep ? |awk '{print $2}' |xargs svn add  


2.5 批量增加svn:ignore屬性
svn propset svn:ignore  -F ~/.svnignore -R /app/work/app1  
------------------------------------------------------------------------------------------
整個具體流程總結如下 :
1.建立兩套服務器.配置一致.程序發布的目錄等設置也保持一致 如:(QA環境 生產環境)
2.其中一套作為開發測試環境使用.一套作為生產環境使用
3.SVN建立trunk目錄作為主代碼分支,,建立branch目錄作為其他分支;如svn://project/trunk    svn://project/branch
4.開發人員使用branch分支進行開發;(問題點:開發自測和QA測試環境)
5.當確認某個測試版本穩定后.將branch分支的內容合並(merge)到主干.
6.運維將測試環境主干代碼update到生產環境;
 
3.分支使用命令示例:
3.0 創建分支

svn cp http://..../project/trunk  http://..../project/branch/mall_bugid3012_order -m “order”

 

3.1 取出分支開發
3.2 開發完成后提交

3.3 檢查需要合並的分支記錄

   svn log –stop-on-copy –q http://..../project/branch/mall_bugid3012_order

3.4 合並

   svn merge –r  舊版本號:新版本號(head) http://..../project/branch/mall_bugid3012_order       

3.5 檢查沖突和提交

   svn status 
   svn commit

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM