Centos系統下安裝SVN伺服器方法介紹(非常詳細)

來源:互聯網
上載者:User

分支開發的意義:

情境一,有客戶想對產品做定製,但是我們並不想修改原有的svn中trunk的代碼。
情境二,我們正在開發產品下階段的任務,但上階段的工作發現問題
以情境二為例,項目某一階段開發完成後,這個時候要做一個tag,tag_mfcai_V1.01.00,
然後基於這個tag發布一個新的版本,假設項目是web項目,那麼基於這個tag發布一個web包。
然後trunk進入下階段繼續開發,但是很不幸發布的版本被檢測出來了bug,有人會提議,把bug放到下階段的任務中去。假設下階段的任務才剛開始,使用者可等不起.他們會認為一個小的bug解決要這麼長時間,效率太低了.
那麼就需要基於tag_mfcai_V1.01.00做一個branch,branch_bugfix_V1.01.00,基於這個branch進行bugfix,
等到bugfix結束,做一個tag,tag名稱假設為:tag_mfcai_V1.01.01,基於這個tag再發布一個版本。
這樣,又沒有影響trunk(主分支)的開發。然後,根據需要決定branch_bugfix_V1.01.00是否併入trunk。
如何使用先進的分支技術

再介紹點打tag的知識。確認項目群組成員的代碼都commit後。

1)右擊要打tag的目錄—>TortoiseSVN—>branch/tag

2)再彈出來的對話方塊中,要求輸入分支或標記的目標路徑

3)建立分支或標記的時候,你有三個選項版本庫中的最新版本,版本庫中的指定版本,工作複本。

開始打分支第一步

1:指分支將存在的目錄

2:分支的注釋(不能丟呀,等分支多了!就搞坨數不清楚的拉)

3:這裡分別說明三個分別是說明啥意思

     1)Head revision in the repository  –直接從版本庫中最新建立,由於不需要從你的工作拷貝中傳輸資料,建立過程會很快。

     2)  Specific revision in repository   ——同樣是從版本庫中建立,不同的是你可以指定一個版本號碼。如果你忘了版本號碼,可以通過顯示版本記錄來找到你想要的版本號碼(如下圖)。這種方式同樣不需要從你的工作拷貝中傳輸資料,建立過程也很快。

     3)  Woking copy ——這種方式會依據當前工作拷貝的版本狀況(無論是你做了本地的修改,或是將其中的某些檔案更新到了一個曆史版本)來建立分支拷貝。這種建立方式會根據工作複本中每個檔案的版本情況來決定是否要從工作拷貝向版本庫中傳輸資料。

在這裡我們必需先弄明白一個合并背後的關健概念

合并的過程中發生的所有事:首先兩個版本庫樹的比較,然後將區別應用到本地拷貝.

這個命令是包括三個參數的:

初始的版本樹 2.最終的版本樹 3一個接收區別的工作拷貝。
弄明白這些概念之後我們繼續往下操作。

在彈出的視窗中,選擇主線目錄和其版本號碼(初始的版本樹),再選擇主線目錄和最新的版本號碼(最終的版本樹),這裡也可以是某一個版本號碼但應該比初始的版本樹的版本號碼要高,接收區預設為你右鍵所指的目錄,這裡是clientt。

在合并之前我們可以通過點擊“Unified diff”,查看兩版本樹之間所有檔案的內容的變化,“diff”顯示出有發生變化的檔案清單,“dry run”能顯示真正合并時的狀態資訊,但並沒有做任何的合併作業。

我們點擊“Merge”。
這裡選擇的是合并兩個不同的版本樹
分支合并到主線跟從主線上合并內容到分支上類似
不同的是
1、開始的版本庫是分支建立的版本

2、結束的版本庫是完成所以開發工作之後的版本

3、應用的目的是主線目錄
SVN伺服器代建小禮包
SVN 關閉伺服器 killall svnserve
SVN 開啟伺服器 svnserve -d -r  /SVN目錄
後面的代建的全過程
系統內容
RHEL5.4迷你安裝(關iptables,關selinux) + ssh + yum

一,安裝必須的軟體包.

yum install subversion (SVN伺服器)
mysql-server (用於codestriker)

二,基本的SVN伺服器配置

1,建立一個目錄用於儲存SVN所有檔案
# mkdir /home/svn
2,建立一個版本倉庫
# svnadmin create /home/svn/project
3,初始化版本倉庫中的目錄
# mkdir project project/server project/client project/test (建立臨時目錄)
# svn import project/ file:///home/svn/project -m “初始化SVN目錄”

SVN伺服器代建之後一定要初始化,不然根本就用不了。

4,添加使用者

要添加SVN使用者非常簡單,只需在/home/svn/project/conf/passwd檔案添加一個形如“username=password”的條目就可以了.為了測試,我添加了如下內容:


[users]
# harry = harryssecret
# sally = sallyssecret
Admin=admin

5,修改使用者存取原則

/home/svn/project/conf/authz記錄使用者的存取原則,以下是參考:


[/]
Admin=rw
Admin 所有的目錄都是讀寫的許可權


6,修改svnserve.conf檔案,讓使用者和策略配置升效.

svnserve.conf內容如下:

[general]
anon-access = none
auth-access = write
password-db = /home/svn/project/conf/passwd
authz-db = /home/svn/project/conf/authz


7,啟動伺服器

# svnserve -d -r /home/svn


8,測試伺服器


# svn co svn://192.168.60.10/project
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Password for 'root':
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Username: Admin
Password for 'admin':
svn: Authorization failed ( server_group沒用根目錄的訪問權 )
A    project/test
A    project/server
A    project/client
Checked out revision 1.  ( 測試提取成功 )
# cd project/server
# vim main.c
# svn add main.c
# svn commit main.c -m "測試一下我的C程式,看什麼看,不行啊??"
Adding         main.c
Transmitting file data .
Committed revision 2.  ( 測試提交成功 )
如果你代建的SVN伺服器都OK,但是小烏龜無法訪問:防火牆的問題。。。簡單粗暴的方法: etc/ini.d/iptables stop
當然不是好太建議直接關閉防火牆:(SVN預設是3690連接埠)


RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT

再送一個小禮包

SVN Error: Unreadable path encountered; access denied;

解決方案:

編輯[代碼倉庫目錄下]/conf/svnserve.conf
將[anon-access]的值設定為[none]
記得重啟SVN伺服器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.