作爲程序員的我們,還是應該多做做嘗試的。在寫rabbitmq時由於在虛擬機操作,截圖不好截,爲了給大家呈現更好的效果,所以就給大家寫一份宿主機跟虛擬機之間使用svn的操作流程。
本文主要圍繞如下幾個方面
- 安裝svn
- 在宿主機連接虛擬機的svn
- 使用鉤子同步到web目錄
- 多項目使用svn
- svn用戶權限設置
本文實現環境
- centos7.3
- 所有操作均在虛擬機
一、安裝svn
執行命令:yum install subversion
執行svn --version
查看版本號,檢測是否安裝成功
創建版本庫公共目錄,在/var/下創建一個svn的目錄mkdir /var/svn
當然這個可以自定義目錄,看個人習慣
接着來到var/svn
目錄下,創建一個版本庫
執行命令svnadmin create /var/svn/kaka
,此時你的svn目錄下會存在一個blog的版本庫(其餘倆個文件不用管,是後邊做svn管理多項目纔會用到的)
進入到kaka
的版本庫var/svn/kaka/conf
可以看到三個文件
auth:控制權限的文件
passwd:控制密碼的文件
svnserve.conf:爲svn的配置信息
修改svnserve.conf配置信息,紅色圈的都改就行。
接下來設置密碼,打開文件passwd
設置權限,這裏就是角色後邊跟上用戶設置的用戶名
然後將剛剛修改的passwd
和authz
文件移到跟版本庫一個目錄下,執行命令mv passwd authz /var/svn
到這一步就完成了svn的安裝和配置,接下來說明宿主機連接虛擬機的svn
二、宿主機連接虛擬機的svn
使用虛擬機的一定要注意ip地址
宿主機先得需要有svn客戶端,這個安裝就不說了,next到底就ok。
開啓svn服務,執行命令svnserve -d -r /var/svn/
,並檢測是否開啓成功
宿主機開始連接,地址就是虛擬機的ip地址,賬號密碼就是admin 123456 即可
此時文件就已經克隆到本地了
測試上傳文件也成功
到這裏我們就svn在宿主機連接並且提交文件到svn就成功了。
三、實現自動同步到web環境
由於是在虛擬機咔咔沒有配置web目錄,直接就在/usr/local/nginx/html
下
將/var/svn/kaka/hooks
下的post-commit.tmpl
改爲post-commit
執行指令mv post-commit.tmpl post-commit
並且權限給滿
修改post-commit
文件裏邊的內容,但是打開文件後就是一堆註釋,咔咔提示一個指令將這些全部刪掉
執行100 dd
即可,就是刪除100行的意思
並且添加一下內容
#!/bin/sh
#設定環境變量,如果沒有設定可能會出現update報錯
export LANG='zh_CN.UTF-8'
SVN_PATH=/usr/bin/svn
WEB_PATH=/usr/local/nginx/html/kaka/
LOG_PATH=/tmp/svn_update.log
$SVN_PATH update $WEB_PATH
~
保存退出,我們在本地在提交一個新文件,新建456.txt文件提交
來到web目錄看有沒有文件/usr/local/nginx/html
。
很是明顯是沒有這個文件的,別慌!
在/usr/local/nginx/html
這個目錄下在操作最後一步
執行指令:svn co --username admin --password 123456 svn://192.168.254.135/kaka
,這個時候我們宿主機的文件就已經通過svn克隆到我們的虛擬機了。
再到本地上傳一次,看是否可以直接到虛擬機裏。
經過測試已經很ok了。
四、多項目使用svn
其實在上邊的截圖裏都看到了我的版本庫裏存在一個blog
的版本。
操作步驟跟kaka
的版本庫是一模一樣的。只不過直接把blog/conf
下的passwd
和authz
的文件直接刪掉即可
也就是多個版本庫使用同一個權限和賬號密碼
同時給kaka和blog上傳一個258.txt
到這一步就把多項目使用同一個svn就搞定了。
五、用戶權限設置
爲什麼需要設置這個用戶權限區分。
例如你傳代碼到了svn,這時公司來了個新同事,他需要熟悉代碼,但是他只可拉取代碼不能提交代碼。
這個時候就需要進行用戶權限設置了。來整起
登錄用戶new
這個時候只有r權限 沒有w權限的new用戶是提交不了文件的