歡迎您光臨本站 註冊首頁

Linux Server 5.5安裝SVN+Apache服務

←手機掃碼閱讀     火星人 @ 2014-03-25 , reply:0

Red Hat Enterprise Linux Server 5.5安裝SVN+Apache服務



前言

Subversion (簡稱svn)是近年來崛起的版本管理軟體,是cvs的接班人。Subversion 是一個自由 / 開源的版本控制系統。也就是說,在 Subversion 管理下,文件和目錄可以超越時空。也就是 Subversion 允許你的數據恢復到早期版本,或者是檢查數據修改的歷史。正因為如此,許多人將版本控制系統 SVN 當作一種神奇的「時間機器」。目前,絕大多數開源軟體都在使用 SVN 作為代碼版本管理軟體。

Subversion 支持 Linux 和 windows ,更多是安裝在 Linux 下。
svn 伺服器有 2 種運行方式:獨立伺服器和藉助Apache。2 種方式運行各有利弊。
svn 存儲版本數據也有 2 種方式:BDB和FSFS。因為BDB方式在伺服器中斷時,有可能鎖住數據,所以還是FSFS方式更安全一點,常見的創建數據版本庫也都是使用FSFS方式。

相關平台軟體

SVN+Apache軟體安裝包下載推薦,在所有平台上的安裝文件都在此站有免費下載,選擇要在什麼操作平台上進行安裝配置,就下載相應的安裝文件,進行安裝配置。

www.open.collab.net/cn/downloads/subversion/redhat.html

我所使用到的安裝文件如下:
CollabNet Subversion Command-Line Client v1.6.9 (for Red Hat Linux)
下載文件名:CollabNetSubversion-client-1.6.9-1.i386.rpm --客戶端
CollabNet Subversion Server v1.6.9 (for Red Hat Linux)
下載文件名:CollabNetSubversion-extras-1.6.9-1.i386.rpm --服務端
CollabNet Subversion Extras v1.6.9 (for Red Hat Linux)
下載文件名:CollabNetSubversion-extras-1.6.9-1.i386.rpm --擴展件
下載文件名:RPM-GPG-KEY-csvn.asc ---分離的 OpenPGP 簽名文件

安裝過程:

  安裝非常簡單容易,安裝已經編譯過的 rpm 文件即可!

  首先安裝簽名文件,安裝說明原文如下:

CollabNet Subversion RPMs are signed using our GPG key. As a one-time task,
import the CollabNet GPG key using the command:

sudo rpm --import /path/to/RPM-GPG-KEY-csvn.asc

The CollabNet GPG key is available for download at:
http://www.collab.net/nonav/down ... PM-GPG-KEY-csvn.asc

按照說明操作即可進行下一步安裝,否則會有提示告知。打開終端,切換到 root 帳號:

[root@localhost]# rpm --import RPM-GPG-KEY-csvn.asc

簽名文件安裝后,接著就可以進行下面的安裝了。

先安裝 client ,然後 server ,最後是 extras ,順序一次進行安裝下去。

[root@localhost]# rpm -ivh CollabNetSubversion-client-1.6.9-1.i386.rpm
Preparing... ########################################### [100%]
1:CollabNetSubversion-cli########################################### [100%]
[root@localhost]#

client 端安裝完成;

[root@localhost]# rpm -ivh CollabNetSubversion-server-1.6.9-1.i386.rpm
Preparing... ########################################### [100%]
1:CollabNetSubversion-ser########################################### [100%]
[root@localhost]#

server 端安裝完成;

[root@localhost]# rpm -ivh CollabNetSubversion-extras-1.6.9-1.i386.rpm
Preparing... ########################################### [100%]
1:CollabNetSubversion-ext########################################### [100%]
[root@localhost]#
extras 端也順利安裝完成;

這樣三個 rpm 安裝文件就順利安裝完成了。 此時,系統也就自動增加了一個 csvn 用戶/組。

[root@localhost]# more /etc/passwd
csvn:x:502:501:CollabNet Subversion:/opt/CollabNet_Subversion:/bin/bash

[root@localhost]# more /etc/group
csvn:x:501:

SVN相關的程序目錄也創建完成;





接著進行SVN的配置:

在 /opt/CollabNet_Subversion/bin 目錄下執行 Configure-CollabNet-Subversion ,一步一步按照提示操作即可順利完成簡單的服務配置。

[root@localhost]# ./Configure-CollabNet-Subversion

CollabNet Subversion Server is a free download of open-source Subversion,

  compiled and tested by CollabNet. For more information about CollabNet

  Subversion, visit the CollabNet community at http://open.collab.net.

  Would you like to configure the CollabNet Subversion Server now? [yes] (直接回車)

  Welcome to CollabNet Subversion Server setup.

  You will now be asked some questions to configure CollabNet Subversion.

  Defaults are given in square brackets. If a default is okay for you

  Just hit [Enter] to continue.

  This setup can configure either Apache or svnserve as Subversion

  server, for you. Would you like to configure Apache as your

  Subversion server now? [yes] (直接回車)

  Continuing with apache Subversion server configuration ...

  Specify the base directory for Subversion repositories: [/var/svn/repositories] /opt/SVNRepositories (這裡我更改了SVN倉庫存儲路徑,不使用默認的路徑。)

  Non-existing base path, Let me create and continue [yes] (直接回車)

  Base path created.

  Would you like to create a new Subversion repository? [yes] (直接回車)

  What should be your new Subversion repository name? DEOM (這裡建立一個名為 DEMO 的測試用庫)

  New repository created.

  Would you like to initialize the repository with trunk/branches/tags folders? [no] (直接回車)

  Done.

  Would you like to create another Subversion repository? [yes] (直接回車)

  What should be your new Subversion repository name? svntest (這裡再建立一個名為 svntest 的庫)

  New repository created.

  Would you like to initialize the repository with trunk/branches/tags folders? [no](直接回車)(暫時不導入初始數據)

  Done.

  Would you like to create another Subversion repository? [yes] no (已經建立了2個測試用庫,就不再建了。)

  Would you like to give the name and port that the server uses to identify itself? [yes]

  Registered DNS name or IP address: 192.168.168.159 (這裡IP是指 apache 的服務「IP」配置。)

  Server port number: 18080 (apache的服務埠號)

  Allow anonymous read access? [no] (直接回車)

  0 users currently have access to this repository:

  Would you like to create a new Subversion account? [yes] (直接回車)

  Account username

  (To re-create or delete a Subversion account, enter an existing username): svnadmin (建立一個SVN帳號)

  Account password: (密碼)

  Retype account password: (重複密碼)

  Adding password for user svnadmin

  Account created

  Would you like to create another user account? [yes] no (暫時不需要再建另一用戶了)

  Would you like to configure ViewVC? [yes] (是否啟用VierVC,直接回車)

  Stopping CollabNet Subversion: httpd (no pid file) not running

  done

  Starting CollabNet Subversion: done

  (此時,SVN+Apache服務也順利地配置完成了。最後的提示信息如下:)

  Congratulations! You have successfully configured the CollabNet

  Subversion server.

  You can access your repositories at the following URL:

  http://192.168.168.159:18080/svn/YOUR-REPOS-NAME

  http://192.168.168.159:18080/viewvc/YOUR-REPOS-NAME

最後,配置完成後進行檢查:

[root@localhost]# ps -ef|grep httpd
root 2569 1 0 18:16 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
csvn 2588 2569 0 18:16 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
csvn 2595 2569 0 18:16 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
csvn 2596 2569 0 18:16 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
csvn 2597 2569 0 18:16 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
csvn 2599 2569 0 18:16 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
csvn 2600 2569 0 18:16 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
csvn 3809 2569 0 18:18 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
csvn 3813 2569 0 18:18 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
csvn 3814 2569 0 18:18 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
csvn 3836 2569 0 18:21 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
csvn 3839 2569 0 18:21 ? 00:00:00 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -D viewvc_installed -k start
root 4696 4113 0 19:56 pts/1 00:00:00 grep httpd

在瀏覽器中訪問SVN服務;

  http://192.168.168.159:18080/svn/DEMO

注意:瀏覽器上的地址欄!





  http://192.168.168.159:18080/viewvc





小結:

  到此,SVN+Apache服務就搭建完成了,SVN 是個很好的版本控制軟體,好好的享受它帶來的無限樂趣吧!



SVN 命令行在 Linux 下的操作

1、將文件checkout到本地目錄
svn checkout path(path是伺服器上的目錄)
例如:svn checkout svn://192.168.168.159:18080/pro/domain
簡寫:svn co

2、往版本庫中添加新的文 件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加當前目錄下所有的php文件)

3、將改動的文件提交到版 本庫
svn commit -m "LogMessage" [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用--no-unlock開關)
例如:svn commit -m "add test file for my test" test.php
簡寫:svn ci

4、加鎖/解鎖
svn lock -m "LockMessage" [--force] PATH
例如:svn lock -m "lock test file" test.php
svn unlock PATH

5、更新到某個版本
svn update -r m path
例如:
svn update如果後面沒有目錄,默認將當前目錄以及子目錄下的所有文件都更新到最新版本。
svn update -r 200 test.php(將版本庫中的文件test.php還原到版本200)
svn update test.php(更新,於版本庫同步。如果在提交的時候提示過期的話,是因為衝突,需要先update,修改文件, 然後清除svn resolved,最後再提交commit)
簡寫:svn up

6、查看文件或者目錄狀態
1)svn status path(目錄下的文件和子目錄的狀態,正常狀態不顯示)
【?:不在svn的控制中;M:內容被修改;C:發生衝突;A:預定加入到版本庫;K:被鎖定】
2)svn status -v path(顯示文件和子目錄狀態)
第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最後一次修改的版本號和修改人。
註:svn status、svn diff和 svn revert這三條命令在沒有網路的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。
簡寫:svn st

7、刪除文件
svn delete path -m "delete test fle"
例如:svn delete svn://192.168.168.159:18080/pro/domain/test.php -m "delete test file"
或者直接svn delete test.php 然後再svn ci -m 'delete test file『,推薦使用這種
簡寫:svn (del, remove, rm)

8、查看日誌
svn log path
例如:svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化

9、查看文件詳細信息
svn info path
例如:svn info test.php

10、比較差異
svn diff path(將修改的文件與基礎版本比較)
例如:svn diff test.php
svn diff -r m:n path(對版本m和版本n比較差異)
例如:svn diff -r 200:201 test.php
簡寫:svn di

11、將兩個版本之間的差 異合併到當前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合併到當前文件,但是一般都會產生衝突,需要處理一下)

12、SVN 幫助
svn help
svn help ci

------------------------------------------------------------------------------

以上是常用命令,下面寫幾個不經常用的

------------------------------------------------------------------------------

13、版本庫下的文件和目 錄列表
svn list path
顯示path目錄下的所有屬於版本庫的文件和目錄
簡寫:svn ls

14、創建納入版本控制下 的新目錄
svn mkdir: 創建納入版本控制下的新目錄。
用法: 1、mkdir PATH...
2、mkdir URL...
創建版本控制的目錄。
1、每一個以工作副本 PATH 指定的目錄,都會創建在本地端,並且加入新增
調度,以待下一次的提交。
2、每個以URL指定的目錄,都會透過立即提交於倉庫中創建。
在這兩個情況下,所有的中間目錄都必須事先存在。

15、恢複本地修改
svn revert: 恢復原始未改變的工作副本文件 (恢復大部份的本地修改)。revert:
用法: revert PATH...
注意: 本子命令不會存取網路,並且會解除衝突的狀況。但是它不會恢復
被刪除的目錄

16、代碼庫URL變更
svn switch (sw): 更新工作副本至不同的URL。
用法: 1、switch URL [PATH]
2、switch --relocate FROM TO [PATH...]

1、更新你的工作副本,映射到一個新的URL,其行為跟「svn update」很像,也會將
伺服器上文件與本地文件合併。這是將工作副本對應到同一倉庫中某個分支或者標記的
方法。
2、改寫工作副本的URL元數據,以反映單純的URL上的改變。當倉庫的根URL變動
(比如方案名或是主機名稱變動),但是工作副本仍舊對映到同一倉庫的同一目錄時使用
這個命令更新工作副本與倉庫的對應關係。

17、解決衝突
svn resolved: 移除工作副本的目錄或文件的「衝突」狀態。
用法: resolved PATH...
注意: 本子命令不會依語法來解決衝突或是移除衝突標記;它只是移除衝突的
相關文件,然後讓 PATH 可以再次提交。

18、輸出指定文件或 URL的內容。
svn cat 目標[@版本]...如果指定了版本,將從指定的版本開始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也可以寫具體版本號,這樣輸出結果是可以提交的)



歡迎各位也常來我的 baidu 家園看看寫寫!

http://hi.baidu.com/yjg021

[火星人 ] Linux Server 5.5安裝SVN+Apache服務已經有699次圍觀

http://coctec.com/docs/linux/show-post-159084.html