版本管理系統Subversion
Cvs、Svn、Git都是版本管理系統
基本概念:
版本庫(Repository):Subersion是一種集中式的分享信息的系統,它的核心是版本庫。
版本模型:版本控制兄臺那個的核心任務是提供協作編輯和數據共享,但是不同的兄臺那個使用不同的策略來達到目的。
文件共享問題
1.鎖定-修改-解鎖 (存在問題)
2.拷貝-修改-合併 (Subversion、CVS版本系統就是採用這種方案)
備註:儘管cvs、subversion一直主要是採用拷貝-修改-合併方案,但是它們也提供了鎖定機制。
工作拷貝: 檢出check out
版本url:
file:// 直接版本庫訪問(本地磁盤)
http:// 通過配置Subversion的Apache服務器的web協議訪問
https:// 與http://相似,但是包括SSL加密
svn:// 通過svnserve服務自定義的協議訪問
提交(commit):提交 checking in
更新(update):
修訂版本(revision):
工作拷貝如何追蹤版本庫:對於工作拷貝的每一個文件,Subversion在管理區域.svn記錄兩項關鍵信息:
1.工作文件所作爲基準的修訂版本(文件的工作修訂版本)
2.一個本地拷貝最後更新的時間戳
未修改且是當前的:文件在工作目錄裏沒有修改,在工作修訂版本之後沒有修改提交到版本庫。svn commit操作不做任何事情,svn update不做任何事情。
本地已修改且是當前的:在工作目錄已經修改,從工作修訂版本之後沒有修改提交到版本庫。本地修改沒有提交,因此svn commit會提交成功,svn update 不做任何事情。
未修改且不是當前的了:這個文件在工作目錄沒有修改,但是在版本庫中已經修改了。這個文件最終將更新到最新版本,成爲當時的公共修訂版本。Svn commit不做任何事情,svn update 將會取得最新的版本到工作拷貝。
本地已修改且不失最新的:這個文件在工作目錄和版本庫都得到修改。一個svn commit將會失敗,這個文件必須首先更新,svn update命令會合並公共和本地修改,如果Subversion不可以自動完成,將會讓用戶解決衝突。
svn status命令可以告訴你工作拷貝文件的狀態。
Subversion官網:http://subversion.apache.org/ 已經在apache了。
Subversion與CVS一樣,也是很典型的C/S系統(客戶端/服務器),所以在使用之前我們需要下載相應的服務器端和客戶端軟件。
Subversion服務器安裝,推薦安裝最新版本1.8.10(傻瓜安裝)
Subversion服務器安裝完成之後,會默認在path環境變量中加入安裝的bin目錄。如果沒有那麼我們可以自己手動加入:例如增加D:\Subversion\install\bin到path變量上。
注意:當修改了環境變量後一定要重新打開一個新的命令行窗口,修改才生效。
注意:SVN的命令是基於命令行的,所以我們不能直接雙擊bin目錄下的命令來操作它們,我們需要到命令行窗口去執行它們。
SVN的服務器軟件同樣包含了客戶端執行的一些命令,我們呢可以利用這些命令來完成我們的日常的版本控制管理工作。
首先我們要在服務器端建立倉庫(repository)
常用Subversion命令
命令行窗口輸入 svn 測試安裝是否成功。svn help 查看幫助命令。
命令行創建倉庫命令:svnadmin create 具體路徑下的倉庫名
命令行啓動服務器命令:svnserve -d -r 具體路徑下的倉庫名
-d表示後臺模式 -r指定服務器的倉庫路徑
import與check out操作
命令行導入我們自己創建的項目:svn import svn://IP地址
命令行check out(檢出)倉庫的項目:svn check out svn://localhost/項目名稱
commit與update操作
命令行提交我們修改後的文件:svn commit 文件
update操作:注意update不是對服務器進行寫操作,而是從服務器取文件,即讀操作。
命令行update我們需要的文件:svn update 文件
備註:以上import、check out 、commit、update四個操作都是需要到對應的目錄下操作
清除鎖定命令:svn cleanup
查看svn幫助命令 svn help
查看具體某個命令的幫助 svn help xxx。例如查看import具體詳解 svn help import .
或這種格式svn import --help 注意是兩個-(--)
高級操作:
在服務器端爲客戶端分配登入賬號和密碼:
在倉庫下的conf下的svnserve.conf和passwd配置。
anon-access=none、anon-access=read、anon-access=write(匿名用戶的訪問權限)
password-db = passwd(開啓用戶登入)
TortoiseSVN:是SVN客戶端軟件
實際上TortoiseSVN是對Windows操作系統的文件夾增加的一個外殼,方便大家使用鼠標右鍵點擊時就會出現TortoiseSVN的操作快捷方式。
SVN和Apache整合的時候要注意版本匹配的問題。
Eclipse安裝SVN插件方法:
1.在線安裝:最準確但是可能會受網絡影響比較慢
2.link安裝:最爲推薦,方便安裝和卸載插件。最推薦
i. 建立一個.link文件裏面存放path=插件路徑 注意分隔符爲/,不是\。
ii. 插件路徑下存放的是zip解壓後的文件
3.使用zip壓縮包離線安裝,和第一種方式類似。推薦使用