雲服務器 ECS 建站教程:SVN的搭建和使用
簡介
Subversion(SVN) 是一個開源的版本控製係統, 也就是說 Subversion 管理著隨時間改變的數據。
這些數據放置在一個中央資料檔案庫(repository) 中。
這個檔案庫很像一個普通的文件服務器, 不過它會記住每一次文件的變動。
這樣你就可以把檔案恢複到舊的版本, 或是瀏覽文件的變動曆史。
SVN 的一些概念
- repository(源代碼庫):源代碼統一存放的地方
- Checkout(提取):當你手上沒有源代碼的時候,你需要從repository checkout一份
- Commit(提交):當你已經修改了代碼,你就需要Commit到repository
- Update (更新):當你已經Checkout了一份源代碼, Update一下你就可以和Repository 上的源代碼同步,你手上的代碼就會有最新的變更
日常開發過程其實就是這樣的(假設你已經Checkout並且已經工作了幾天):Update(獲得最新的代碼) —>作出自己的修改並調試成功 —> Commit(大家就可以看到你的修改了) 。
如果兩個程序員同時修改了同一個文件呢, SVN可以合並這兩個程序員的改動,實際上SVN管理源代碼是以行為單位的,就是說兩個程序員隻要不是修改了同一行程序,SVN都會自動合並兩種修改。
如果是同一行,SVN會提示文件Confict, 衝突,需要手動確認。
安裝
兩種方法安裝
第一種
下載阿裏雲SVN版本控製鏡像。
購買完成之後,登錄”ECS 管理控製台”,在左邊導航欄裏,單擊”實例”,進入 ECS 實例列表頁,選擇所購 ECS 實例所在的地域,並找到所購 ECS 實例,在”IP 地址”列獲取該實例的公網 IP 地址。
第二種
手動安裝
1.環境
centos7
2.安裝svn
yum install subversion
查看版本
svnserve --version
3、創建版本庫
先建目錄
mkdir /var/svn
創建版本庫
cd /var/svn
svnadmin create /var/svn/svnrepos
cd svnrepos會看到自動生成的版本庫文件:
conf db format hooks locks README.txt
subversion目錄說明
db目錄:就是所有版本控製的數據存放文件。
hooks目錄:放置hook腳本文件的目錄。
locks目錄:用來放置subversion見艱苦鎖定數據的目錄,用來追蹤存取文件庫的客戶端。
format文件:是一個文本文件,裏麵隻放了一個整數,表示當前文件庫配置的版本號。
conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問賬號、權限等)。
進入conf目錄(該svn版本庫配置文件)cd conf/
authz文件是權限控製文件
passwd是帳號密碼文件
svnserve.conf SVN服務配置文件
設置帳號密碼 vi passwd
在[users]塊中添加用戶和密碼,格式:帳號=密碼,如suzhan=redhat
設置權限 vi authz
在末尾添加如下代碼:
[/]
修改svnserve.conf文件 vi svnserve.conf
打開下麵的幾個注釋:
anon-access = read #匿名用戶可讀
auth-access = write #授權用戶可寫
password-db = passwd #使用哪個文件作為賬號文件
authz-db = authz #使用哪個文件作為權限文件
realm = /var/svn/svnrepos # 認證空間名,版本庫所在目錄
啟動svn版本庫
svnserve -d -r /var/svn/svnrepos
停止SVN命令
killall svnserve
用ps -ef |grep svn 查看服務是否開啟。
在windows上測試
如果沒有TortoiseSVN客戶端,可以去這裏 下載:tortoisesvn.net/downloads.html, 根據從SVN服務器下載項目自己的實際情況下載對應版本。
在你的本地項目文件夾或隨便一個地方,右鍵空白處彈出菜單,選擇 SVN。
然後,通過從SVN服務端獲取的資源庫URL+具體的項目文件夾名下載相應項目,並可以知道下載項目的保存位置。
第一次登陸需要輸入密碼,一切以passwd文件裏麵的賬戶密碼為主!
對項目的修改與提交
1:把項目下載到本機後,其實就是一個普通的項目文件而已,你可以在裏麵添加文件、修改文件、刪除文件等等。
2:提交修改 在項目文件空白處右鍵,選擇 SVN提交 。
然後,輸入 本次提交的版本更新信息(所作修改的注釋)、勾選要提交的操作內容,點擊 確定,即可把本機項目提交到SVN服務器資源庫,覆蓋掉資源庫項目從而實現更新。
如果發生提交衝突,即兩人都提交修改,後提交者由於版本落後會提交失敗。這時可以先把自己的項目備份,然後從服務端下載最新的項目,再把自己的項目覆蓋到本地項目文件夾,最後SVN提交即可成功提交。
我剛剛刪掉了一個文件,這裏就會顯示:
3:獲取更新
如果別人修改了SVN服務端資源庫上的項目,你想下載最新的項目,則在 本機項目文件空白處單擊鼠標右鍵,選擇 SVN更新 ,即可自動完成下載,並會提示所作的更新有哪些。
注意:在原項目文件夾內選擇SVN更新的話,會自動覆蓋掉原有內容。建議:先備份,再更新,防止自己本來的項目內容丟失。
4.svn提供曆史還原功能
首先打開一個文件夾,右鍵檢出數據,
然後刪掉數據。
如果點擊提交了,那麼係統庫裏的數據也會得到同步,係統也會把它存的數據刪掉。
打開原文件夾
然後在點擊提交,係統庫裏的數據就和這個文件同步了。
最後更新:2017-08-13 22:29:07