搭建svn服務器
vim
1、前期準備工做:服務器
一、準備兩臺服務器,我這裏是192.168.4.123和192.168.4.124ide
二、在兩臺服務器上分別安裝軟件: yum -y install subversionsvn
三、讓4.123作服務端,4.124作客戶端。測試
2、服務器的搭建spa
一、在4.123上建立數據存儲路徑:mkdir /var/svn日誌
二、svnadmin create /var/svn/project1 //建立共享目錄code
三、往共享目錄裏面導入一些文件(實際環境中就是源代碼)
ci
svn import /usr/lib/systemd/system file:///var/svn/project1 -m "導入文件 文檔
把/usr/lib/systemd/system目錄下大文件導入到/var/svn/project1
四、如何查看project文件夾下的文件
svn list file:///var/svn/project1 //本機查看文件
3、服務器配置
一、cd /var/svn/project1/conf 進到配置文件的目錄,分別配置三個文件
A、 svnserve.conf
1九、anon-access = none //匿名用戶不能訪問
20、auth-access = write //認證用戶能夠寫
2七、password-db = passwd //密碼文件
3四、authz-db = authz
B、passwd //建立用戶和密碼
[users]
zhangsan = 123456
lisi = 1234567
C、authz //設置用戶對目錄的讀取權限
[/] //改目錄表明根目錄,也就是project1目錄
zhangsan = rw
lisi = rw
二、啓動服務:選擇第一種服務
svnserve -d -r /var/svn/project1/ //共享一個目錄
systemctl start svnserve //全部的共享目錄都發布出去
三、客戶端驗證:4.124
這裏主要用於測試,首先cd /tmp目錄下,下面的code就會建立在此目錄下
svn co --username zhangsan --password 123456 svn://192.168.4.123/ code
從服務端下載文件,用戶名和密碼,後面是服務端地址,code是本地目錄,自動建立
4、單機驗證:在4.124上用lisi這個賬號來鏈接服務器
一、在code目錄下隨便找一個文件修改,zram.service
svn ci -m "zhushi" //會自動上傳該動過的文件
正在發送 zram.service
傳輸文件數據.
提交後的版本爲 2。
二、若是其它人修改了文件,你能夠選擇下面的命令來更新,以達到和服務器上同樣的版本
svn update
三、svn log svn://192.168.4.123 //可查看日誌信息,也就是查看什麼賬號在什麼時間作的事
四、在客戶端新建文件或者目錄需注意的地方
vim zzzz.sh (新建文件) svn add zzzz.sh(需添加到svn裏面,不然沒法上傳到服務器)
svn mkdir abc(新建目錄) svn mv a.sh b.sh(更名)
svn diff zzzz.sh //文件對比,需指定文件名
svn cat svn://192.168.4.123/zzzz.sh //在服務器上查看文件
五、數據還原,分下面幾種不一樣的狀況
A、本地修改,已保存,但未提交:svn revert zram.service
B、本地修改,提交:svn merge -r4:1 zram.service 從第四個版本還原到第一個版本
C、本地修改,並提交了多個文件,若是一個一個文件還原版本的話,效率太慢
svn -r2 co svn://192.168.4.123/ code2 //取出版本2的全部文件,,並存放在code2目錄下
5、多人協同下如何解決版本衝突問題
一、4.123用zhangsan登錄,4.124用lisi來登錄,導入文件到本地目錄code下
二、兩人同時在操做文檔時,分下面幾種狀況來講明
A、修改不一樣文件,
svn update //首先在修改以前,保持版本同樣
兩我的更改不一樣的文件後分別提交,zhangsan提交後版本爲5,lisi提交後的版本爲6
再更新一次,svn update ,這樣兩人獲得的就都是版本6
B、修改相同文件的不一樣行,
改完後上傳,誰先提交沒問題,後提交的提示「過時」,
後提交的先update一下,而後再上傳一下,先提交的再update
C、修改相同文件的相同行(衝突,人爲解決)
假如zhangsan先提交,上傳成功,
lisi提交,會報錯,先更新update,會提高報錯,選p推遲,線下解決
在lisi上刪除多於的版本,留下協商好的最終版本,而後上傳,
而後在zhangsan上update一下
6、備份和恢復
一、備份
svnadmin dump /var/svn/project1/ > /root/my.bak
二、還原
首先建立新的共享目錄:svnadmin create /var/svn/project2
而後導入備份文件:svnadmin load /var/svn/project2/ < /root/my.bak