1. 程式人生 > >SVN Version Control(1) --Installing SVN on CentOS

SVN Version Control(1) --Installing SVN on CentOS

這次筆者帶來版本控制SVN的系列筆記。按照筆者的慣例,系列筆記的第一篇都是基礎的環境搭建,先不說太多抽象的知識,因為筆者習慣於在接下去的筆記中貫穿這些知識,潤物無聲,潛移默化,這是筆者所希望達到的層次。

1. Checking SVN whether exist on CentOS

#查詢CentOS是否已安裝svn
rpm -aq subversion

出現下圖的情況說明已安裝
這裡寫圖片描述
為什麼我們需要先檢視SVN(subversion)是否已經安裝在了CentOS上呢?
如果你看過筆者Linux Series Notes(1)– Installing CentOS7 and configurating something essential of its

就會發現筆者在安裝的時候並不是選擇了最小化的安裝方式,而是勾選了一些常用的軟體和CentOS一同安裝,此時SVN就有可能包括在內了,這樣就省去了一些多餘的安裝時間。當然,如果說是像阿里雲、騰訊雲這類的產品,如果不選擇購買別人製作好的成套安裝映象,那就要從裸機開始了!

#如果沒有安裝,那麼就使用yum進行安裝,或者自行下載壓縮包進行安裝
yum -y install subversion

2. Creating the directory of data

mkdir -p /application/svndata#資料儲存根目錄
mkdir -p /application/svnpasswd#使用者,密碼許可權目錄

這裡我們建立了兩個目錄,其中svndata是用於儲存我們需要進行版本控制的資料,也就是說這裡是用於建立我們版本控制庫(respository)的,;而svnpasswd是用於獨立出來用於儲存連線SVN的使用者和其密碼的,主要是authz(許可權管理)和passwd(使用者和密碼管理),這裡的passwd是明文儲存的,需要十分注意資料的安全性。

3. Starting the SVN

我們先來看看svn擁有的命令,有助於我們理解。

svnserve --help
用法: svnserve [-d | -i | -t | -X] [options]
有效選項: 
  -d [--daemon] :
後臺模式
-i [--inetd] : inetd 模式 -t [--tunnel] : 隧道模式 -X [--listen-once] : 監聽一次方式(除錯用) -r [--root] ARG : 服務的根目錄 -R [--read-only] : 強制只讀;覆蓋版本庫配置檔案 --config-file ARG : 從檔案 ARG 讀取配置 --listen-port ARG : 監聽埠 [方式: daemon, listen-once] --listen-host ARG : 監聽主機名稱或IP地址 [方式: daemon, listen-once] -6 [--prefer-ipv6] : 在使用主機名稱監聽時,首選 IPv6 [預設首選 IPv4。不支援在守護程序模式中同時使用 IPv4 和 IPv6。如果需要,請使用 inetd 模式或隧道模式。] -c [--compression] ARG : 用於網路傳輸的壓縮級別 [0 .. 不壓縮, 5 .. 預設, 9 .. 最大壓縮] -M [--memory-cache-size] ARG : 用來減少冗餘操作的記憶體中的額外快取記憶體的大小(MB) 執行緒模型的預設值是 128,非執行緒模型的預設值是 16。 [僅用於 FSFS 倉庫] --cache-txdeltas ARG : 是否對舊版本之間的差異啟用快取 預設值: 否。 [僅用於 FSFS 倉庫] --cache-fulltexts ARG : 是否對檔案內容啟用快取 預設值: 是。 [僅用於 FSFS 倉庫] -T [--threads] : 使用執行緒代替程序 [方式: daemon] --foreground : 在前臺執行(除錯用) [方式: daemon] --log-file ARG : svnserve 日誌檔案 --pid-file ARG : 寫程序 PID 到檔案 ARG [方式: daemon, listen-once] --tunnel-user ARG : 隧道使用者名稱(預設是當前UID對應的使用者名稱) [方式: tunnel] -h [--help] : 顯示本幫助 --version : 顯示程式版本資訊 -q [--quiet] : 在標準錯誤輸出不顯示進度 (僅錯誤)

接下來我們開始啟動SVN:

svnserve -d -r /application/svndata/

這裡我們以守護執行緒的方式啟動SVN,並指定SVN服務的根目錄,這樣連線到我們這個SVN的使用者所上傳的資料都是存放在這個根目錄下了。

接下來我們檢視下SVN服務所在埠

netstat -lntup|grep svn
#上面的命令檢視到埠後,可以使用接下來的命令檢視更詳細的埠情況
netstat -lnt|grep 3690
netstat -lntup|grep 3690
lsof -i tcp:3690
lsof -i :3690

這裡寫圖片描述

4. Creating the version control respository

我們可以通過檢視svn的create命令獲取一些幫助

svnserve help create

這裡寫圖片描述
這裡給出了建立demo,那麼我們跟著demo做就好了。

svnadmin create /application/svndata/sadoc

這裡我們建立了sadoc目錄,這個目錄就是我們接下來要使用TortoiseSVN(windows客戶端)連線倉庫。
這裡寫圖片描述
接著我們使用tree(筆者認為它比ls要直觀些)來觀察sadoc目錄下都有哪些檔案。

tree /application/svndata

這裡寫圖片描述
注:沒安裝的可以使用以下命令進行tree的安裝yum install tree

5.Modifying the configuration of SVN

現在我們開始對SVN進行配置檔案的配置,在修改配置檔案的時候要注意:事前備份,事後檢查(檢查重點包括:語法和配置檔案的配置更改),最後看是否需要重啟服務。
這裡寫圖片描述
在這裡我們需要對svnserve.conf進行一次備份,備份是為等下修改完後使用diff來檢查下我們修改了哪些地方,而剩下的authz和passwd我們是複製副本放到/application/svnpasswdcp authz passwd /application/svnpasswd/,也算是做了備份。
注:svnserve.conf修改後是需要重啟SVN服務,而authz和passwd修改後可以不進行SVN的重啟

5.1 svnserve.conf

修改成下面的配置
這裡寫圖片描述
在這裡如果anon-access = yes,也就是允許匿名連線,這樣會造成一個問題:使用TortoiseSVN進行檔案的上傳的時候只能選擇1970/01/01的時間,而且log的資訊,如下圖:
這裡寫圖片描述
修改完後,我們使用diffegrep檢視修改

5.1.1 diff

diff svnserve.conf.tmp svnseve.conf

這裡寫圖片描述

5.1.2 egrep

egrep "\-application|\-db =" svnserve.conf

這裡寫圖片描述

5.2 passwd

我們把passwd和authz放置到/svnpasswd下時需要先檢視檔案的許可權,如果檔案的許可權過於寬鬆我們還需要進行許可權修改,避免後期發生令人迷惑的事故。
這裡寫圖片描述
這許可權明顯過於寬鬆,我們現在開始賦予新的許可權。

chmod 700 /application/svnpasswd/*

這裡寫圖片描述
現在我們開始新增使用者和密碼。

cd /application/svnpasswd/
vim passwd#密碼為明文,需要注意密碼的許可權

這裡寫圖片描述
SVN是比較人性化的,每個配置檔案都會給出詳細的說明以及例子,我們需要認真閱讀說明並嚴格按照例子的格式進行配置,避免出現語法錯誤。

5.3 authz

authz是對我們剛剛配置使用者進行許可權的賦予,要注意不能對一個沒有出現在passwd的使用者進行許可權賦予。
這裡寫圖片描述
這裡[groups]是對使用者進行分組,[/]這裡的* =配置是為了通配任意使用者([/]準確來說是表示根目錄以及以下,根目錄是svnserve啟動時指定的,比如我們指定的是svnserve -d -r /application/svndata,此時表示對全部版本庫設定許可權),賦予空許可權,[sadoc:/]這裡是賦予sadoc respository這個根版本庫下目錄的訪問許可權給特定的使用者或者特定的一組使用者。

5.4 reboot SVN

pkill svnserve#先殺死執行緒
svnserve -d -r /application/svndata/#再次啟動

這裡寫圖片描述

6. Using TortoiseSVN to connect with SVN on remote server

6.1 SVN服務的訪問方式

主要包括以下3種:

  1. 獨立伺服器訪問
    訪問地址:svn://server_addr/respository。我們這次的TortoiseSVN主要訪問方式就是這種。
  2. 藉助apache此類http服務
    訪問地址:http://server_addr/respository。這種http的服務有兩種安裝方式,包括單獨安裝apache和SVN還有就是CSVN整合安裝(這是帶有web介面管理的SVN軟體)。
  3. 本地直接訪問
    訪問地址:file:///server_addr/respository。這主要用在伺服器端。
    給出一個表格來更加詳細地說明客戶端對服務端SVN的訪問。
訪問方式 說明
File:// 直接通過本地磁碟或者網路磁碟訪問版本庫
http:// 通過webDAV協議訪問支援subversion的apache伺服器
https:// 與http://相似,但是用SSL加密訪問
Svn:// 通過TCP/IP自定義協議訪問svnserve伺服器
Svn+ssh:// 通過認證並加密的TCP/IP自定義協議訪問svnserve伺服器

6.2 TortoiseSVN

安裝就不說了。
現在我們先新建一個目錄,這個目錄是用於同步遠端的SVN repository的。然後右鍵找到TortoiseSVN的操作選單中checkout選項,把遠端SVN respository下載下來。
下面是連線過程中的部分截圖
這裡寫圖片描述
這裡寫圖片描述
現在我們來嘗試上傳檔案,因為我們已經開始使用SVN進行了團隊的開發(即使不是,但我們仍然是使用了SVN)就要記住:任何時候先update下載SVN中最新的版本下來,再commit我們修改檔案到SVN,如果我們發生了提交的衝突,也是先update然後右鍵找到TortoiseSVN的操作選單中resolve選項解決衝突。
這裡寫圖片描述
注:檔名最好不要帶空格,會給後面我們使用hooks帶來麻煩,這是第一次示範,先不管先,以後空格記得先用下劃線“_”替代再commit
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這就上傳成功了。
我們可以通過以下方式進行檢視。
這裡寫圖片描述
這裡寫圖片描述

好了,這次就先到這了!
在這裡推薦下老男孩的linux課程。
感謝各位的支援!如果note有錯漏,懇請各位留下評論指出,筆者會及時改正!
謝謝!

相關推薦

SVN Version Control(1) --Installing SVN on CentOS

這次筆者帶來版本控制SVN的系列筆記。按照筆者的慣例,系列筆記的第一篇都是基礎的環境搭建,先不說太多抽象的知識,因為筆者習慣於在接下去的筆記中貫穿這些知識,潤物無聲,潛移默化,這是筆者所希望達到的層次。 1. Checking SVN whether ex

Version Control System using Git on Android Studio

How to add a file to to your git?To add a file to your git local repository Press Ctrl + Alt + A ( ⇧⌘A search git add)or Right click on the file you want t

svn Some of selected resources were not added to version control SVN錯誤[locked; try performing]的解決辦法

用Eclipse的svn外掛commit的時候,發生如下異常 Some of selected resources were not committed. svn: Working copy 'C:\project\xxxxx\xxxxx-web\test' locked; try performing

CentOS 7安裝1.9 SVN以及高版本SVN

安裝CentOS 7 下yum命令即可方便的完成安裝$ sudo yum install subversion測試安裝是否成功:$ svnserve --version建立版本庫建立svn資料目錄(subversion預設是把/var/svn作為資料根目錄的,開機啟動預設也是

is already under version control svn——兩種方法

原文連結:SVN is already under version control問題解決 (我出現這個問題是因為重複提交 了) 問題:更新專案出現SVN is already under version control。 解決: 方法一 刪除所有的.svn隱藏資

How to upgrade vim to version 8 on CentOS 7

-o cloud version http mce root code compile rep 同學們好,現在很多vim重度使用者呢,追求把vim打造成一流的IDE,於是很多人想著把vim升級到8.0但是編譯安裝呢又很麻煩,現在就分享一下使用yum把vim從7.0升級到8.

SVN報錯1——Could not create the view: org.tigris.subversion.subclipse.ui.repository.RepositoriesView

報錯如圖: 解決方法: A.重新安裝svn B. 關閉正在執行的myeclipse,然後開啟myeclipse安裝路徑(我的安裝在D盤): > D:\MyEclipse\MyEclipse 10\configuration > 將org.ecli

Idea svn version is too old,You need to upgrade the working copy first.

原先系統svn版本是1.7的,最近升了一次版本,發現svn用不了了,提示你的client version is too old ,you need to upgrade the working copy first。 我是用Mac的brew更新svn的,使用brew info svn

安裝SVN(TortoiseSVN-1.9.7.27907-x64-svn-1.9.7.msi) 的步驟及安裝過程中的遇到的2502,2503問題,和如何解決這種情況的問題

       就在今天,我突然發現我的SVN的圖示沒有了,之前明明有安裝過SVN,於是我就找之前安裝的軟體的資料夾,沒有找到,記得得我好想沒有解除安裝,沒有找到,我只有重灌了。結果重灌軟體好像不行啊,貌似想到了什麼就去控制面板上看下有沒有這個軟體,結果在控制面板上看到了還有

Installing FusionPBX 3.2 on CentOS 6.5 and Mysql

Install Basic CentOS Server Installation Dev SVN Branch can also be installed this way, the only difference is fusionpbx**Hi there, it seems this guide

持續整合篇之SVN版本管理系統的安裝(CentOS+Subversion+Apache+Jsvnadmin)

安裝apache # yum install httpd httpd-devel # service httpd start # chkconfig httpd on # vi /etc/httpd/conf/httpd.conf 找到ServerName 並修改成 ServerName l

Installing CUDA 7.5 on CentOS 7

First of all, all of this is done as root. I've been trying to install the CUDA 7.5 drivers on a CentOS 7 SATA DOM. The issue I'm running

Linux的SVN伺服器升級1.4至1.6[linux svn 解除安裝安裝]

1.下載好所有的相關包 wget -r -np -nd http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/la

How to fix yum errors on CentOS, RHEL or Fedora

http dsm list plain ... prop package cat cse Yum is a package management tool for installing, updating and removing rpm packages on Red

mysql5.7 Installing MySQL on Microsoft Windows Using a noinstall Zip Archive(mysql解壓版安裝)

ase order gin dmi 選項 -s 包含 xtra tar 註:參考官網文檔 mysql解壓版安裝配置大致分為以下6步: Extract the main archive to the desired install directory Optional:

使用svn鉤子腳本控制svn庫的實時備份

svn 運維 同步Svn鏡像庫實時同步實現一, 配置rsync的同步機制先實現能手動同步環境:svn源碼庫 192.168.115.120 Svn鏡像庫 192.168.115.1211,在源碼庫中配置rsync服務 (配置文件默認沒有需要手動建立 /etc/rsyncd.cong)上面 [ UG

Firewalld on Centos 7 相關配置

firewalld centos 7Centos 7 默認使用防火墻為Firewalld防火墻,如下是關於Firewalld防火墻的一些配置介紹。在使用firewalld之前,我們需要先檢查一下firewalld的狀態[[email protected]/* */ ~]# firewall-c

Install Composer on CentOS

https cto org download etc can get use nbsp First you have to go to the /tmp directory cd /tmp Download the composer.phar file curl -sS h

freeradius 啟動報錯Refusing to start with libssl version OpenSSL 1.0.1

all bss sim span family sin pop div con 改動etc/raddb下的radiusd.conf文件 找到allow_vulnerable_openssl = no,改動成allow_vulnerable_openssl = ye

How to install MySQL on CentOS

ica temporary 1.2 number list details table tcp ets 1)chekc centos中是否安裝了MySQL [[email protected]/* */ MySQL]# rpm -qa | grep maria