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

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

2.部署Svn

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

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/
解決方案:

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

提交代碼文件:
服務器上沒有的文件,在客戶端需要先add預提交,再commit,如果服務器端已有的文件,直接commit
#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.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章