版本控制軟體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 co -m "delete test.sh"
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
#############################################################