svn在windows下的搭建

來源:互聯網
上載者:User

windows下的svn搭建步驟總結

1.     基本概念

1.1.            什麼是版本控制

版本控制就是資料倉儲,他可以記錄你對檔案的每次更改。

svn伺服器有2種運行方式:獨立伺服器和藉助apache。2種方式各有利弊。

svn儲存版本資料也有2種方式:BDB和FSFS。因為BDB方式在伺服器中斷時,有可能鎖住資料(我在搞ldap時就深受其害,沒法根治),所以還是FSFS方式更安全一點。

1.2.            什麼是Subversion

Subversion一個自由、開源版本控制系統,或者說是一種集中的分享資訊的系統,它的核心是版本庫,它儲存所有的資料,版本庫按照檔案樹形式儲存資料——包括檔案和目錄。任意數量的用戶端可以串連到版本庫,讀寫這些檔案。通過寫,別人可以看到這些資訊,通過讀資料,可以看到別人的修改。它管理檔案和目錄可以超越時間。一組檔案存放在中心版本庫,這個版本庫很像一個普通的檔案伺服器,只是它可以記錄每一次檔案和目錄的修改,這便使你可以取得資料以前的版本,從而可以檢查所作的更改。從這個方面看,許多人把版本控制系統當作一種“時間機器”。

Subversion可以通過網路訪問它的版本庫,從而使使用者可以在不同的電腦上使用。一定程度上可以說,允許使用者在各自的地方修改同一份資料是促進協作。進展可能非常的迅速,並沒有一個所有的改變都會取得效果的通道,由於所有的工作都有曆史版本,你不必擔心由於失去某個通道而影響品質,如果存在不正確的改變,只要取消改變。

一些版本控制系統也是軟體組態管理(SCM)系統,這種系統經過特定的精巧設計來管理原始碼,有許多關於軟體開發的特性—本身理解程式設計語言、或者提供構建程式的工具。然而,Subversion不是這樣一個系統,它是一個通用系統,可以管理任何類型的檔案集,對你這可能是原始碼,對別人,可能是一個貨物報價單或者是書稿等。

2.     安裝獨立伺服器SVNServer

2.1.            準備工作

2.2.            安裝服務端和用戶端

2.3.            建立版本庫

運行Subversion伺服器需要首先要建立一個版本庫(Repository)。版本庫可以看作是伺服器上集中存放和管理資料的地方。

開始建立版本庫。首先建立 e:\svn 空檔案夾作為所有版本庫的根目錄。然後,進入命令列並切換到subversion的bin目錄。輸入如下命令:

svnadmin create E:\svn\repos1

此命令在 E:\svn 下建立一個版本庫 repos1 。repos1 下面會自動產生一些檔案夾和檔案。

我們也可以使用 TortoiseSVN 圖形化的完成這一步:

先建立空目錄E:\svn\repos1
,注意一定是要空的。然後在 repos1
檔案夾上“右鍵->TortoiseSVN->CreateRepository here...”,然後可以選擇版本庫模式,這裡使用預設的FSFS即可,然後就建立了一系列檔案夾和檔案,同命令列建立的一樣。

2.4.            運行伺服器

此時 subversion 服務還沒有開始,只是通過它的命令建立了版本庫。繼續在剛才的命令視窗輸入:

svnserve.exe --daemon

svnserve 將會在連接埠 3690 等待請求,--daemon(兩個虛線)選項告訴 svnserve 以守護進程方式運行,這樣在手動終止之前不會退出。注意不要關閉命令列視窗,關閉視窗會把 svnserve 停止。

為了驗證svnserve正常工作,使用TortoiseSVN-> Repo-browser 來查看版本庫。在彈出的 URL 對話方塊中輸入:

svn://localhost/svn/repos1

點 OK 按鈕後就可以看見 repos1 版本庫的分類樹結構了,只不過這時 repos1 是個空庫。

你也可以使用--root選項設定根位置來限制伺服器的訪問目錄,從而增加安全性和節約輸入svnserveURL的時間:

svnserve.exe --daemon --rootdrive:\path\to\repository

以前面的測試作為例,svnserve 將會運行為:

svnserve.exe --daemon --root e:\svn

然後TortoiseSVN中的版本庫瀏覽器URL縮減為:

svn://localhost/repos1

2.5.            配置使用者和許可權

用文字編輯器開啟E:\svn\repos1\conf目錄,修改svnserve.conf:

將:

# password-db = passwd

改為:

password-db = passwd

即去掉前面的 # 注釋符,注意前面不能有空格。

然後修改同目錄的passwd檔案,增加一個帳號:

將:

[users]
# harry = harryssecret
# sally = sallyssecret

增加帳號:

[users]
#harry = harryssecret
#sally = sallyssecret
test = test

2.6.            初始化匯入

下面就是將我們的資料(項目)匯入到這個版本庫,以後就由版本庫管理我們的資料。我們的任何改動都回被版本庫記錄下來,甚至我們自己丟失、改錯資料時版本庫也能幫我們找回資料。

比如,我在 e:\svn下有個 guestbook
檔案夾,裡面存放的是我編寫的代碼程式。在此檔案夾上“右鍵 -> TortoiseSVN -> Import...”
,在此之前要在命令列模式運行svnserve -d -r E:\svn\repos1這樣用戶端就可以訪問svn伺服器端下的檔案了。

在彈出對話方塊的“URL of repository”輸入“svn://localhost/repos1/guestbook”。在“Import message”輸入“匯入整個留言簿”作為注釋。
點 OK 後要求輸入帳號。我們在使用者名稱和密碼處都輸入 test 。完成後 guestbook 中的內容全部匯入到了svn://localhost/svn/repos1/guestbook 。

我們看到在 e:\svn\repos1 沒有任何變化,連個 guestbook 檔案夾都沒有建立,唯一的變化就是e:\svn\repos1容量變大了。實際上我們源guestbook中的內容已經匯入 repos1 版本庫了,源 guestbook 檔案夾可以刪除了。

需要注意的是,這一步操作可以完全在另一台安裝了 TortoiseSVN 的客戶機上進行。例如運行svnserve的主機的IP是133.96.121.22,則URL部分輸入的內容就是“svn://133.96.121.22”。

2.7.            基本操作流程

1、取出(check out)

取出版本庫到一個工作拷貝:

來到任意空目錄下,比如在f分區建立一個空檔案夾 f:\work 。“右鍵 -> SVN Checkout”。在“URL of repository”中輸入“svn://localhost/svn/repos1/guestbook”,這樣我們就得到了一份 guestbook 中內容的工作拷貝。

2、存入(check in)/提交(commit)

在工作拷貝中作出修改並提交:

在 guestbook 工作拷貝中隨便開啟一個檔案,作出修改,然後“右鍵 -> SVN Commit... ”。這樣我們就把修改提交到了版本庫,版本庫根據情況儲存我們提交的資料。

在修改過的檔案上“右鍵 -> TortoiseSVN -> Show Log”,可以看到對這個檔案所有的提交。在不同的 revision 條目上“右鍵 ->Compare with working copy”,我們可以比較工作拷貝的檔案和所選 revision 版本的區別。

3.     ApacheSVN和Subversion的區別

Subversion的設計包括一個抽象的網路層,這意味著版本庫可以通過各種伺服器處理序訪問。理論上講,Subversion可以使用無限數量的網路通訊協定實現,目前實踐中存在著兩種伺服器。

·        SVNServer:svnserve 是一個小的(也叫輕型的)、獨立伺服器,使用自己定義的協議和用戶端。(作者註:以下稱這種伺服器為“svnserver伺服器”,上面的安裝配置就是安裝svnserver伺服器。)

·        ApacheSVN:Apache是最流行的web伺服器,通過使用 mod_dav_svn 模組,Apache可以訪問版本庫,並且可以使用戶端使用HTTP的擴充協議WebDAV/DeltaV進行訪問。

通過 Http 協議訪問版本庫是 Subversion 的亮點之一。ApacheSVN伺服器 具備了許多
svnserve伺服器
沒有的特性,使用上更加靈活,但是有一點難於配置,靈活通常會帶來複雜性。

由於 Subversion 需要版本化的控制,因此標準的 Http 協議不能滿足需求。要讓 Apache 與 Subversion 協同工作,需要使用 WebDAV(Web-based Distributed Authoring andVersioning:)Web 分布式創作和版本控制)。

 

 

總結二

一伺服器端

1.下載Subversion並安裝
2.建立版本庫,在命令列運行:
     svnadmin create E:/svn/doc 
     svnadmin create E:/svn/project
     將建立兩個共用資料夾。
3.設定密碼和許可權。
       開啟E:/svn/doc/conf下的svnserve.conf,把#password-db=
passwd前的#去掉,注意不要留空格,否則會報錯;如果預設所有帳戶都具有全部許可權,則不要把#authz-db= authz前的#去掉,否則要進入E:/svn/doc/conf下的authz檔案為每個帳戶設定許可權。
       進入E:/svn/doc/conf下的passwd檔案,在[users]下增加sally=sallypsw,則為使用者sally建立了密碼sallypsw
4.啟動SVN伺服器
      在命令列運行:
      svnserve -d -r E:/svn
      或者建立一個批次檔startsvn.bat,把上面內容拷進去。則伺服器的根目錄為E:/svn,下面有兩個共用資料夾。
5.匯入已有項目
svn import e:/tree svn://192.168.1.23/doc -m "importmassage"
參數說明
e:/tree  要匯入項目的目錄
svn://192.168.1.23/doc  要匯入的svn伺服器位址
-m "import massage"  參數也必須添加,不然他會提示“無法使用外部編輯器獲得日誌資訊”
6.匯出svn中項目
svn export  svn://192.168.1.23/doc e:/etest
參數說明
svn://192.168.1.23/doc  要匯出的svn伺服器位址
e:/etest匯出項目放在e:/etest檔案夾裡面,e:/etest可不建立
匯出指定版本
svn export –r version svn://192.168.1.23/doc e:/etest 匯出指定版本號碼檔案。e:/etest可不建立。
Version 可以是數字
7.查看伺服器端svn目錄結構
svn list svn://192.168.1.23/project

 

二用戶端

使用TortoiseSVN訪問伺服器:
1. 下載並安裝TortoiseSVN。
2. 選擇一個要共用的檔案夾,如E:/localsvn,點右鍵選擇SVNCheckout,url裡面填svn://127.0.0.1/doc,則將此檔案夾與伺服器上的目錄E:/svn/doc對應,點確定。
3. 從伺服器得到更新:在E:/localsvn點右鍵選擇SVNUpdate,則從伺服器下載最新的更新。
4. 提交更新到伺服器:在E:/localsvn點右鍵選擇SVNCommit...,輸入使用者名稱和密碼,點確定,則從提交更新到伺服器。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.