程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> SVN入門及配置使用

SVN入門及配置使用

編輯:關於PHP編程

SVN,即Subversion,是一個自由開源的版本控制系統,可以將數據恢復到早期版本,或者檢查數據修改的歷史,這些數據可以是源代碼,也可以是其他類型的文件。

在SVN出現之前,CVS是開源世界版本控制工具的事實標准,然而CVS存在一些固有的缺陷,並且修復這些缺陷需要耗費很大的精力,因此,SVN的發起者Brian Behlendorf和CollabNet決定重新編寫一個版本控制系統,保留CVS的基本思想,但要修正其中錯誤和不合理的特性。於是,SVN作為CVS的繼任者出現了。SVN的設計者們力圖通過兩方面的努力贏得CVS用戶的青睐:保持開源系統的設計以及界面風格與CVS盡可能類似,同時盡力彌補CVS許多顯著的缺陷。這些努力的結果使得從CVS遷移到SVN不需要作出重大的變革,因此越來越多的人選擇了SVN。
http://svnbook.red-bean.com
http://www.subversion.org.cn

目錄

一、客戶端的使用
 1.1 Linux系統下一般使用(Ubuntu)
 1.2 Windows系統下一般使用
 1.3 Linux下使用SVN+ssh認證(未找到相關資料@_@)
 1.4 Windows下使用SVN+ssh認證
二、服務器端的配置
 2.1 Linux下的svnserve配置
 2.2 Windows下的svnserve配置
 2.3 Linux下的svnserve+ssh配置
 2.4 Windows下的svnserve+ssh配置(需使用Cygwin,略)
 2.5 Linux下基於APache的SVN服務器配置
 2.6 Windows下基於APache的SVN服務器配置
三、建立版本庫
 3.1 Linux下創建版本庫
 3.2 Windows下創建版本庫

大多數人都是從客戶端開始使用SVN,以下先介紹客戶端的使用。假設已經假設好了SVN服務器,其文件夾地址為http://domain/svn/trunk/myproject,用戶名為test,密碼為test。(如果服務器端配置的是SVN,則使用svn://開頭的URL訪問;如果服務器端配置的是SVN+SSH,則使用svn+ssh開頭的URL訪問)

一、客戶端的使用

1.1 Linux(Ubuntu)系統下一般使用

1)首先需要安裝svn客戶端,ubuntu下使用$sudo apt-get install subversion(其他請baigoogledu,余同)

2)checkeout命令:第一次使用時使用checkout命令,把服務器的目錄拷貝到本地的當前目錄下,同時會建立一個隱藏文件夾記錄版本信息:
  [工作目錄]$svn checkout "http://domain/svn/trunk/myproject" --username test
然後輸入密碼

3)svn update命令:獲取服務器上的最新版本
  [工作目錄]$svn update(除了第一次要加url和用戶名和密碼,之後系統會記住)

4)svn add命令:要把非版本控制的本地文件添加到版本控制:
  [工作目錄]$svn add hello.c

5)svn commit命令:把本地文件上傳到服務器

[工作目錄]$svn commit(如果有新的文件,要首先svn add)

1.2 Windows系統下一般使用

1)安裝客戶端:http://tortoisesvn.net/downloads

2)新建一個文件夾(工作目錄),右擊選擇checkout,填寫URL和用戶名密碼

3)工作目錄右鍵update

4)工作目錄右鍵add

5)工作目錄右鍵commit

1.3 Linux下使用SVN+ssh認證(未找到相關資料@_@)

1.4 Windows下使用SVN+ssh認證

(參考ubuntu下架設svn服務器及在windows建立svn+ssh客戶)

1.4.0 安裝TortoiseSVN、Puttygen、Pageant
  http://sourceforge.net/projects/tortoisesvn
  http://www.chiark.greenend.org.uk/~sgtatham/putty/

1.4.1 轉換私鑰格式
 1)將Linux下的文件<username>key拷貝到windows下,運行Puttygen;
    2)選擇菜單conversions->Import Key;選擇文件<username>key,提示"Enter passphrase for key",輸入創建公私鑰對示使用的passphrase關鍵字;
    3)選擇Parameters為“SSH-2 DSA”或“SSH-2 RSA”->Save private key->保存文件名為username>key.ppk。

1.4.2 建立TortoiseSVN與Pageant的關聯,並將私鑰加入Pageant:
    1)鼠標右鍵選擇TortoiseSVN->Settings->Network->SSH client,輸入:
     C:Program FilesTortoiseSVNinTortoisePlink.exe
    2)鼠標右鍵選擇TortoiseSVN->RepoBrowser 輸入URL:
  svn+ssh://<username>@<SvnServiceIP>/usr/local/svn/trunk
    3)運行Pageant,右鍵點擊屏幕右下角的圖標-〉Add Key,將私鑰文件<username>key.ppk加入。
——如果不想緩存ssh密碼,則第8、9步不需要,只保留第二步,但每次check out、check in中每進入一個文件夾都要輸入兩次密碼,煩死你:)

二、服務器端的配置

Web服務器部署可以有三種選擇,配置由簡單到復雜排列為

·svnserve

·svnserve over SSH

·Apache+mod_dav_svn模塊

下面從最簡單的入手,介紹svnserve。

[更新]Windows下服務器端的配置可以使用VisualSVN Server進行傻瓜化安裝。

官方網站:http://www.visualsvn.com/

參考鏈接:VisualSVN系列介紹(有詳細的安裝過程介紹,這裡就不轉述了)

2.1&2.2 配置svnserve

svnserve是一個輕型的服務器,可以同客戶端通過在TCP/IP基礎上的自定義有狀態協議通訊,客戶端通過使用開頭為svn://或者svn+ssh://svnserve的URL來訪問一個svnserve服務器。

2.1 Linux下的svnserve配置

2.1.0 同樣地,使用命令$sudo apt-get install subversion

2.1.1 svnserve作為獨立守護進程,監聽請求
  $svnserve -d
  $ #svnserve is now running, listening on port 3690
  ——可以使用--listen-port=[端口號]來指定端口,或者--listen-host=[主機名]來指定主機名
  假定已經建立一個版本庫位於/usr/local/repositories/project路徑(版本庫的建立稍後提及), 此時客戶端可以使用svn://[主機]/usr/local/repositories/project來進行訪問
  ——可以使用-r選項來限制只輸出指定路徑下的版本庫,從而使客戶端訪問更為簡潔:
  $svnserve -d -r /usr/local/repositories
  則客戶端只要使用svn://[主機]/project就可以訪問

2.1.2 通過inetd使用svnserve
  $svnserve -i
  ——此時svnserve會嘗試使用自定義協議通過stdin和stdout來與subversion客戶端通話,默認端口為3690。可以在/etc/services添加如下幾行:
  svn 3690/tcp #subversion
  svn 3690/udp #subversion
  ——如果是使用經典的類Unix的inetd守護進程,可以在/etc/inetd.conf添加如下行,則如果有客戶連接來到端口3690,inetd會產生一個svnserve進程來做服務
  svn stream tcp nowait svnowner /usr/bin/svnserve svnserve -i

2.1.3 設置svnserve的內置認證

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved