一些公司還在用的版本控制Svn部署

1.Svn
1.Svn簡介
SVN是C/S架構,數據存放分紅服務器端和客戶端。建立代碼庫通常指的是SVN服務器端的操做,這個庫隨便建在什麼地方均可以;你要發佈的線上代碼,這是存放在SVN的客戶端的。
SVN的服務器端和客戶端存放文件的格式是不一樣的,因此不能直接訪問SVN服務器端的存儲路徑,只能經過SVN客戶端將服務器端的存儲內容checkout或者export出來。
2.搭建過程
一、先創建一個SVN服務器(能夠專門安裝SVN服務器端安裝包,創建用http/https或svn協議訪問的SVN服務器;也能夠簡單用TortoiseSVN建立本地的用files:///方式訪問的SVN服務器);
二、在服務器端創建一個空的版本庫,將你原有的www-web-項目 文件夾 上傳到SVN服務器新建的版本庫中;
三、在你線上存放代碼的地方新建一個文件夾,並將版本庫中的內容checkout到這個新文件夾,設置這個文件夾是之後線上發佈代碼的文件夾;
四、在你開發用的工做電腦上checkout一個文件夾出來,平時在這個文件夾修改代碼,修改完成後上傳到SVN服務器,而後在線上代碼對應的文件夾那裏更新獲得上傳的新代碼。
這樣的話,你的整個工做就分紅了3個存儲位置:一、服務器端,二、開發端,三、線上發佈端,這就層次分明、互不干擾了。

2.部署Svn

準備兩臺機器,一臺作服務端,一臺作客戶端。web

1.服務端搭建
[root@server ~]#  yum -y install subversion  #安裝軟件
[root@server ~]#  mkdir -p /home/svn/test #建立版本庫目錄(自定義)
[root@server ~]# svnadmin create /home/svn/test   #建立新的repository(版本庫)
[root@server ~]# cd /home/svn/test/conf
[root@server conf]# ls      #建立版本庫後,會自動生成三個配置文件
authz  passwd  svnserve.conf
[root@server conf]# vim svnserve.conf
#進入配置文件,將下面5行註釋打開
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = My First Repository
===================================================================================
anon-access: 控制非鑑權用戶訪問版本庫的權限。
auth-access:  控制鑑權用戶訪問版本庫的權限。
password-db: 指定用戶名口令文件名。
authz-db:指定權限配置文件名,經過該文件能夠實現以路徑爲基礎的訪問控制。
realm:指定版本庫的認證域,即在登陸時提示的認證域名稱。若兩個版本庫的認證域相同,建議使用相同的用戶名口令數據文
===================================================================================

在這裏插入圖片描述

[root@server conf]# vim passwd
#在users模塊裏面添加一個用戶yjssjm,密碼是123

在這裏插入圖片描述

[root@server conf]# vim authz
[groups]
harry_and_sally = harry,sally
harry_sally_and_joe = harry,sally,&joe
yjssjm = yjssjm #定義組yjssjm,且裏面只有一個用戶yjssjm,組名能夠自定義,用戶名能夠加多個,以逗號隔開
[test:/] #定義目錄,此目錄是項目test的根目錄
@yjssjm = rw     #用戶可讀可寫
* = rw           #其它用戶也可讀可寫
======================================================================
[root@server conf]#  #svnserve –d –r /home/svn    #啓動服務
[root@server conf]# lsof -i:3690             #默認端口號
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 15464 root 3u IPv4 216724 0t0 TCP *:svn (LISTEN)
[root@server conf]# svnlook tree /home/svn/test/ --full-paths --show-ids  #查看版本庫
--full-paths 顯示路徑
--show-ids 顯示版本號
2.客戶端測試
[root@client ~]# yum -y install subversion
[root@client ~]# svn checkout svn://服務端ip/home/svn/test

若是報錯:
緣由:svn服務未啓動或者是啓動的時候未指定svn倉庫路徑,svn默認倉庫路徑爲/var/svn,因此咱們須要手動指定爲/home/svn/
解決方案:shell

ps -aux|grep svn    #查找出來svn的pid,
kill -9 svn的pid進程號    #用kill殺掉進程
svnserver –d –r /home/svn/   #重啓服務

提交代碼文件:
服務器上沒有的文件,在客戶端須要先add預提交,再commit,若是服務器端已有的文件,直接commitvim

svn add /root/davesvn/test

svn ci /root/davesvn/test -m "建立新文件" //ci是commit的縮寫, -m是添加註釋

# 提交test.txt文件
[root@client ~]# cd /root/davesvn/test
[root@client test]# vim test.txt     #隨意寫入數據
[root@client test]# svn add test.txt 
A         test.txt
[root@client test]# svn commit test.txt -m "test-version1"
Authentication realm:  My First Repository
Password for 'root':          #輸入虛擬機root密碼
Authentication realm:  My First Repository
Username: svn                 #輸入svn配置文件內建立的用戶
Password for 'svn':          #輸入用戶密碼
------
ATTENTION!  Your password for authentication realm:
\```
My First Repository
\```
can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in

## '/root/.subversion/servers'.

Store password unencrypted (yes/no)? yes            #輸入yes
Adding         test.txt
Transmitting file data .
Committed revision 1.

大家的評論和點贊是我寫文章的最大動力,蟹蟹。服務器

相關文章
相關標籤/搜索