從剛剛參加工作就開始使用svn,清晰的記得那年師姐比較生氣的來找我:“你怎么又不更新就提交代碼了,把我寫的都給覆蓋掉了”,哈哈~
雖然一直在用svn,不過在日常工作中主要用到的是簡單的操作,而且大多數是基於eclipse插件、客戶端小烏龜直接操作的。對於svn的理解還是比較單一的。當然目前除了集中式版本管理工具svn之外,比較火的還有分布式的版本管理工具git。
下面借着學習svnkit的機會,把svn也學習一遍,加深了解~
官網簡單介紹:
官網:http://subversion.apache.org/
所屬機構:Apache開源組織。
特性:集中式版本管理工具。
開發:svn本身是使用c語言開發的。
版本:目前最高的是1.9版本,1.10版本還在開發中,在即將到來的2017年可能會發布。
版本支持:官方對於1.7和更老的版本不予以支持,1.8版本予以部分支持,1.9版本予以完全支持。
相關性:客戶端工具TortoiseSVN、IDE插件(Eclipse、Netbeans、IntelliJ IDEA等)、java實現svnkit
接下來我們照着官方的例子做一個簡單的入門:1.創建倉庫 2.將工程交由版本庫控制 3.重新檢出工程
官網示例鏈接:http://svnbook.red-bean.com/nightly/en/svn.intro.quickstart.html
准備工作:下載一個VisualSVN Server(和Subversion一樣是一個服務端管理的軟件),這里我隨便在百度下了一個:VisualSVN Server 3.5.6
已知信息:①.VisualSVN Server安裝目錄:E:\VisualSVN\Repositories,使用VisualSVN新建或從其他目錄導入repository,均會在此目錄下創建repository。
②.工程目錄(projectA):E:\SVN\workProejcts\projectA
需求:假定我們有一個工程:projectA,現在想使用我們剛剛建立的倉庫來管理projectA。
SVN官方比較期望我們工程的目錄結構如下,當然我們也可以不按照這個目錄結構來:
project - branches
- tags
- trunk - 項目文件A
- 項目文件B
對於這三個目錄,官方沒有給出明確的用法,大家可以根據習慣使用,如:
trunk:開發主目錄,主線。
branches:分支開發目錄。
tags:只讀打包目錄。
好了扯遠了,回歸主題~我們姑且按照官方的標准來。
使用svn命令行操作:
1.在VisualSVN Server目錄下創建一個倉庫:svnadmin create E:\SVN\svnRepositories\myRepository
執行后,cd進去ls一下,如下圖:
使用VisualSVN Server查看此倉庫URL(SVN Repository URL):https://wangdaye-PC/svn/myRepository/
2.將工程交由版本庫控制:svn import 項目目錄 SVN Repository URL -m "提交日志信息"
svn import E:\SVN\workProejcts\projectA https://wangdaye-PC/svn/myRepository/ -m "initial import"
我們可能會遇到沒有權限的問題:
沒關系,使用VisualSVN Server添加一個用戶,並為此倉庫添加用戶的訪問權限即可:
權限操作成功后,再次執行命令,操作成功:
至此,我們發現本地磁盤中的projectA實際並未收到倉庫的版本控制!因為我們在projectA的目錄下並未看到.svn的隱藏文件。怎么辦呢?
3.檢出工程:svn checkout SVN倉庫URL 任意本地磁盤工作目錄
svn checkout https://wangdaye-PC/svn/myRepository/trunk E:\SVN\svnWorkSpace\projectA
至此,我們執行成功了,查看磁盤目錄,受到版本控制了,我們第二步導入的projectA可以刪掉了。
OK,大功告成~