天天看點

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 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

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

上一篇: 環境變量
下一篇: 滑鼠手勢