subversion版本控制


版本控制軟件subversion
=======================
安裝軟件包 :
# yum -y install subversion


一,創建svn版本庫
1.創建svn版本庫
# mkdir  /var/svn
# svnadmin create  /svn/project1

2.導入初始化代碼
#cd  /etc/rc.d/init.d/
#svn import ./ file:///var/svn/project/ -m "init data"

#svn list file:///var/svn/project/

3.創建帳號和密碼
『注意:修改配置文件時前面不能有空格』

# vim /svn/project1/conf/svnserve.conf
anon-access = read     #{read|write|none}
//匿名只讀
auth-access = write
//認證的用戶可寫
password-db = passwd
//定義用戶和密碼文件
authz-db = authz
//定義權限

# vim /svn/project1/conf/passwd
[users]
lisi = 123456
zhangsan = 123456

# vim /svn/project1/conf/authz
[/]
lisi = rw
zhangsan = rw
* = r
『注意:修改配置文件時前面不能有空格』
[project1:/] 表示project版本庫的根
[project2:/test] 表示project2下的test目錄

4.啓動服務
# svnserver -d  
//發佈所有版本庫
或者
# svnserver -d -r /data/svn/project1
//僅發佈project這一個版本庫


5.客戶端:

1.檢出命令:checkout
#svn --username lisi --password 123456 co svn://192.168.4.5/ /data/mysvn
//首次將服務器上的根項目代碼下載到本地 /data/mysvn目錄下
# cd /data/mysvn
# svn co svn://192.168.4.5     //第二次檢出可以不需要要密碼
或者# svn checkout svn://192.168.4.5


2.檢出後,即可用在本地修改代碼,修改後還提交代碼到服務器
提交命令:commit
# svn commit -m "註釋信息"
或者 # svn ci -m "註釋信息"

3.更新命令:update
# svn update

4. 查看幫助信息:svn h
查看版本信息:
svn info(查看版本倉庫信息) ,
svn log(查看版本修改歷史)

5.本地版本庫添加新文件/目錄:mkdir,add命令
# cd /data/svn
# echo "test" > test.sh
# svn mkdir abc
# svn add test.sh
# svn add  abc
# svn list svn://192.168.4.5
# svn co -m "add test file and abc dir"


6.本地版本庫刪除新文件:del,rm命令
# svn del test.sh
# ls test.sh
# svn list svn://192.168.4.5
# svn co -m "delete test.sh"
# svn list svn://192.168.4.5

7.本地副本於服務器數據對比:diff命令,
查看本地副本數據內容:cat命令
# echo "add test file" > a.txt
# svn diff a.txt
# svn diff
# svn cat a.txt



二,版本回滾:

revert命令:
本地副本修改後,但沒有commit(ci)提交時:
1,# svn revert 文件名

merge命令:
本地副本修改commit提交後:
2,# svn -r1 co svn://ip...  svn02
    //檢出版本1所有數據
3,# svn merge -rN:M   文件名
    //將文件從N版本還原回M版本

===================================
三,修改副本:

多個用戶修改自己的文件(不同文件)
多個用戶修改自己的文件(相同文件)
多個用戶修改自己的文件(相同文件的相同行)在update時會提示衝突,需要手動處理

1.解決衝突:
#svn update      //可以選擇p(postpone)
//df  
//edit
//mine-conflict
//theirs-confilict
//postpone


2.選擇p(postpone)標記後,本地副本會多出幾個文件
#ls
halt       //本地副本文件
halt.mine  //我的修改文件
halt.r5       //第五個版本
halt.r6    //第六個版本,

3.保留需要的文件覆蓋掉halt,刪除rm其他多餘的後commit(ci)提交


四,備份與還原
使用dump指令備份
# svnadmin dump  /data/svn/project01/  > project.bak

使用load指令還原
# svnadmin create /data/svn/project02
# svnadmin load  /data/svn/project02  < project.bak

#############################################################

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章