Subversion(簡稱SVN)是一個開源的版本控制系統,管理隨時間改變的數據,SVN服務支持svnserve和http訪問模式。程序員
SVN管理的數據存放在中央資料檔案庫(Repository)中。該檔案庫會記錄文件的每一次變更,這樣您就能夠把數據恢復至舊版本或瀏覽文件的變更歷史。SVN中經常使用的概念和操做以下:安全
一、運行命令安裝SVN,查看SVN版本:tcp
yum install subversion svnserve --version
一、運行如下命令建立版本庫根目錄。svn
mkdir /var/svn
二、依次運行如下命令建立版本庫,查看自動生成的版本庫文件ui
cd /var/svn svnadmin create /var/svn/svnrepos cd svnrepos ls
一、設置帳號和密碼:阿里雲
運行命令:cd conf/ 編輯文件:vi passwd
移動光標至[users]塊中,添加用戶帳號和密碼。url
注:添加帳號和密碼的格式爲:帳號 = 密碼。例如,admin(帳號) = 123456(密碼),以下圖所示(注意等號兩端要有一個空格)。spa
按Esc鍵退出編輯模式,並輸入:wq保存並退出。3d
二、爲帳號設置讀寫權限:版本控制
運行vi authz
命令,打開權限控制文件。
按i
鍵進入編輯模式。
移動光標至文件末尾,並添加以下代碼(admin表示帳號,r表示讀權限,w表示寫權限):
[/]
admin=rw
按Esc
鍵退出編輯模式,並輸入:wq
保存並退出。
三、修改SVN服務配置:
運行vi svnserve.conf
打開SVN服務配置文件。
按i
鍵進入編輯模式。
移動光標找到以下配置行,刪除行前面的註釋符#和空格:
anon-access = read #匿名用戶可讀,您也能夠設置 anon-access = none,不容許匿名用戶訪問。設置爲 none,可使日誌日期正常顯示 auth-access = write #受權用戶可寫 password-db = passwd #使用哪一個文件做爲帳號文件 authz-db = authz #使用哪一個文件做爲權限文件 realm = /var/svn/svnrepos #認證空間名,版本庫所在目錄
注:每行不能以空格開始,且等號兩端要有一個空格。
按Esc
鍵退出編輯模式,並輸入:wq
保存並退出。
四、啓動SVN版本庫:
運行命令:svnserve -d -r /var/svn/ # 啓動svn 運行命令:ps -ef |grep svn # 查看SVN服務是否開啓
若是返回結果以下圖所示,表示SVN服務已經開啓。
killall svnserve
命令可中止SVN服務。
五、防火牆設置
開放防火牆端口,執行命令vi /etc/sysconfig/iptables,添加如下內容:
-A INPUT -p tcp -m state --state NEW -m tcp --Dport 3690 -j ACCEPT
保存並退出,執行service iptables restart重啓防火牆。
注:重啓防火牆失敗:
解決辦法:可嘗試關閉firewalld服務在重啓iptables
service iptables save systemctl stop firewalld -- 關閉firewalld服務 systemctl disable firewalld --設置開機禁用firewalld systemctl start iptables -- 啓動iptables systemctl status iptables --確認iptables狀態 systemctl enable iptables -- 設置iptables開機啓動 systemctl status firewalld --確認firewalld服務
六、阿里雲添加安全組規則
SVN服務的默認端口爲TCP 3690。您須要登陸阿里雲ECS管理控制檯,添加安全組規則放行TCP 3690端口。
一、在本機下載並安裝TortoiseSVN客戶端
二、右鍵單擊本地項目文件夾,在彈出菜單中,選擇SVN檢出,填寫以下信息後,單擊肯定。
指定資源庫URL,格式爲svn://實例公網IP地址/SVN倉庫名
。本示例中,SVN倉庫名爲svnrepos。
若是出現下圖所示信息,表示檢出成功。
# Generated by iptables-save v1.4.21 on Tue Jul 2 17:03:06 2019 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [5:5594] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 8088 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --Dport 3690 -j ACCEP -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Tue Jul 2 17:03:06 2019