真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Linux下搭建版本控制器SVN

    關于版本控制器,大致可分為集中式和分布式兩種。

華州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

    集中式的版本控制器通常會存在一個中央服務器,主要是用來存放版本庫的,(這里暫且先不說分支的事)當我們工作之前,首先需要從中央服務器得到一份最新版本的代碼,修改完畢之后,再次推送到中央服務器。集中式的版本控制器有個最大的缺點,就是必須要聯(lián)網(wǎng)才能工作,同時,一旦中央服務器掛掉,整個項目就全部奔潰,但是用起來確實要方便一些。

    

Linux下搭建版本控制器SVN

    分布式版本控制器的優(yōu)勢就很明顯了,對于分布式的版本控制器,并沒有中央服務器一說,加入該版本控制器的每個人的電腦上都有一個完整的版本庫,因此,也同時避免了聯(lián)網(wǎng)的缺點。當進行了本地的修改之后,只要推送給彼此,各自的修改就都可以看到。為了方便,通常的分布式版本控制器中也有一臺類似于中央處理器的機器,只是為了大家相互推送的時候更加地方便,即使一臺服務器down掉,只需要再拷貝一個版本庫即可,容災性要好得多。

Linux下搭建版本控制器SVN

    對于這兩種版本控制器,SVN是集中式的代表,Git是分布式的代表,兩者各有優(yōu)缺點,在互聯(lián)網(wǎng)公司中,兩者都有著一定的應用。這里要說的是SVN的搭建與操作。

環(huán)境:  CentOS6.5

操作之前:安裝svnserver,直接使用yum安裝即可,一些情況下,電腦是自動安裝了svn和git的

開始操作:

1、SVN倉庫的建立


a、創(chuàng)建項目目錄dir,并進行倉庫初始化

     mkdir  /svn_repo

     svnadmin create /svn_repo

b、修改倉庫目錄下的conf文件夾下的三個文件的內容,每行開頭沒有空格

     authz:權限相關信息

 [/]                              # 倉庫所在目錄

 muhui = rw                # 給muhui用戶rw權限

 *=                              # 其他用戶沒有任何權限

     passwd:用戶名和密碼相關信息

user = passswd

     svnserver.conf:相關配置路徑

 anon-access = none                匿名用戶權限

 auth-access = write               授權用戶有寫權限

 password-db = passwd              密碼文件,未指定路徑,表示當前目錄

 authz-db = authz                 權限文件

 realm = /svn_repo/httpd            版本庫所在目錄


2、SVN項目目錄

a、創(chuàng)建主工作目錄manager

     [root@bogon svn_test]# tree

     .

     └── manager

         └── httpd

             ├── branched       # 子分支目錄

             ├── tags

             └── trunk          # 主分支目錄

     進入到manager目錄,3將manager的目錄結構同步到倉庫,在httpd項目目錄下,有了這個三個文件夾。

     svn import httpd svn://127.0.0.1/httpd -m "init httpd"

b、創(chuàng)建用戶,并將主分支的代碼檢出到本地。

     mkdir -p  /svn_test/dev1

     cd  /svn_test/dev1

     svn  co svn://127.0.0.1/httpd/trunk httpd 

c、文件修改,并提交文件

     [root@bogon httpd]# vim main.cpp

     [root@bogon httpd]# ls

     main.cpp

     [root@bogon httpd]# svn st 

     ?       main.cpp                                                     #  ?表示該文件未納入版本控制

     [root@bogon httpd]# svn add main.cpp             # add將該文件添加到版本控制

     A         main.cpp

     [root@bogon httpd]# svn ci -m "dev1 modify"   # 將修改提交到服務器

     增加           main.cpp

     傳輸文件數(shù)據(jù).

     提交后的版本為 2。

3、多人協(xié)作

    需要說明的一點,多人協(xié)作,和多分支操作是兩個概念。一個分支上可以有多個user在操作,這里說的是在主分支下的多用戶操作。

 

a、創(chuàng)建用戶dev2,下拉代碼修改并再次提交

[root@bogon httpd]# pwd

/svn_test/dev2/httpd

[root@bogon httpd]# vim main.cpp

[root@bogon httpd]# svn st 

M       main.cpp

[root@bogon httpd]# svn up                          # 更新代碼,防止遠程庫代碼已被更改

版本 2。

[root@bogon httpd]# svn log                         # 查看提交日志信息

.........

[root@bogon httpd]# svn diff                         # 查看修改信息

.........

[root@bogon httpd]# svn ci -m "dev2 write sub"      # 提交代碼到倉庫

.........

b、沖突解決

     沖突原因:多個用戶同時下拉一份代碼進行修改,修改完畢在提交之前,未再次svn  up更新,多個用戶同時對一個版本進行修改,造成沖突。

[root@bogon httpd]# svn ci -m "dev1--complict"             # 提交失敗,存在沖突

正在發(fā)送       main.cpp

傳輸文件數(shù)據(jù).svn: 提交失敗(細節(jié)如下):

svn: 文件 “/trunk/main.cpp” 已經(jīng)過時

[root@bogon httpd]# svn up                                           

在 “main.cpp” 中發(fā)現(xiàn)沖突。  

選擇: (p) 推遲,(df) 顯示全部差異,(e) 編輯,

        (mc) 我的版本, (tc) 他人的版本,

        (s) 顯示全部選項: p                                                # p選項,進行延時

C    main.cpp

更新到版本 4。

沖突概要:

  正文沖突:1

                       # 出現(xiàn)很多臨時文件,為各個版本的源文件

[root@bogon httpd]# svn resolve --accept working main.cpp           # 沖突雙方進行協(xié)商,修改源文件,之后臨時文件被刪除

“main.cpp”的沖突狀態(tài)已解決

[root@bogon httpd]# svn ci -m "deal complict"                      # 再次提交,沖突解決

4、分支操作

a、分支創(chuàng)建

     [root@bogon dev3]# svn copy svn://127.0.0.1/httpd/trunk svn://127.0.0.1/httpd/branched/branch2 -m "add new branch2"  
     提交后的版本為 6。

        #  svn分支創(chuàng)建的過程,實際上是對主分支的一份拷貝

b、查看共有多少個分支

    

 [root@bogon dev3]# svn list svn://127.0.0.1/httpd/branched -v
           6 muhui                 5月 28 09:38 ./
           6 muhui                 5月 28 09:38 branch2/

c、從分支branch2分支檢出代碼到當前工作目錄,并查看當前屬于那個分支

 [root@bogon dev3]# svn  co svn://127.0.0.1/httpd/branched/branch2  httpd
     A    httpd/main.cpp
     取出版本 6。
     [root@bogon httpd]# svn info
     路徑: .
     URL: svn://127.0.0.1/httpd/branched/branch2
     版本庫根: svn://127.0.0.1/httpd
     版本庫 UUID: 39c9dc13-9f79-4073-bb0e-2b58c9b71fbb
     版本: 6
     節(jié)點種類: 目錄
     調度: 正常
     最后修改的作者: muhui
     最后修改的版本: 6
     最后修改的時間: 2017-05-28 09:38:49 +0800 (日, 2017-05-28)

d、分支合并操作,要在主分支目錄下進行合并

分支上的用戶修改文件內容,并檢入到分支

   

  [root@bogon httpd]# svn ci -m "branch2 modify"
     正在發(fā)送       main.cpp
     傳輸文件數(shù)據(jù).
     提交后的版本為 7。

獲取查看分支時的版本號

    

 [root@bogon httpd]# svn log --verbose --stop-on-copy
     ------------------------------------------------------------------------
     r6 | muhui | 2017-05-28 09:38:49 +0800 (日, 2017-05-28) | 1 行
     改變的路徑:
        A /branched/branch2 (從 /trunk:5)
     add new branch2
     ------------------------------------------------------------------------

獲取主干目錄的最新版本號

 [root@bogon httpd]# svn up  
     版本 7。

分支合并

  [root@bogon httpd]# 
svn merge -r 6:7 svn://127.0.0.1/httpd/branched/branch2

5、版本回退

1、僅僅修改源文件,但還未進行ci操作

     

[root@bogon httpd]#  
svn  revert main.cpp

2、修改完畢的結果已經(jīng)進行了commit

     

[root@bogon httpd]# svn  up          # 獲取版本庫最新版本      
[root@bogon httpd]# svn  log         # 找到要回滾的版本號
[root@bogon httpd]# svn merge -r 9:8  main.cpp         # merge進行回退,9表示當前版本號,8表示要回退到的版本號


            ------muhuizz整理


網(wǎng)站名稱:Linux下搭建版本控制器SVN
網(wǎng)站URL:http://weahome.cn/article/ggogoc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部