目錄
- 1.SVN是什么
- 2.Svn服務(wù)端和客戶端獲取方式
- 3.svn工作流程和架構(gòu)圖;
- 4.操作svn服務(wù)器的2種方式
- 5.svn服務(wù)器目錄結(jié)構(gòu)、用戶和權(quán)限;
- 6.svn常用操作:
- 7.其他操作:
1.SVN是什么
svn是Subversion的簡稱,是一個(gè)開源的代碼版本控制系統(tǒng),svn就是用于多人共同開發(fā)同一個(gè)項(xiàng)目,達(dá)到資源共用目的工具。
版本控制是什么?
版本控制(Revision control)是指對軟件開發(fā)過程中各種程序代碼、配置文件及說明文檔等文件變更的管理。可記錄每個(gè)版本的信息,方便問題追蹤。同時(shí)版本控制還支持并行開發(fā),可有效的提高開發(fā)效率。
為什么要使用SVN?
1.項(xiàng)目備份方便,節(jié)省硬盤空間;
2.記錄每個(gè)版本,方便追溯歷史紀(jì)錄。
3.多人協(xié)作開發(fā),共享數(shù)據(jù);
4.細(xì)節(jié)化的權(quán)限控制,便于管理員掌控項(xiàng)目整體。
2.Svn服務(wù)端和客戶端獲取方式
服務(wù)端:https://www.visualsvn.com/server/download/
客戶端:https://tortoisesvn.net/downloads.html
安裝完后,在任意一個(gè)文件夾下面右鍵,如果出現(xiàn)下面這個(gè),就說明安裝成功了
3.svn工作流程和架構(gòu)圖;
3.1 svn工作方式:
(svn工作流程圖)
3.2 svn架構(gòu)圖:
(svn架構(gòu)圖)
4.操作svn服務(wù)器的2種方式
4.1 command-line 命令行方式;
4.2 GUI-client圖形界面方式;
4.2.1 svn服務(wù)連接方式:
(1) internet網(wǎng)絡(luò)連接:
apache服務(wù)器;
svn服務(wù)器;
(2) local 本地連接:
4.2.2 svn數(shù)據(jù)存儲(chǔ)方式:
文件方式:FSFS(推薦使用)
數(shù)據(jù)庫方式:BerkeleyDB(伯克利DB)
5.svn服務(wù)器目錄結(jié)構(gòu)、用戶和權(quán)限;
5.1 目錄結(jié)構(gòu):
Repositories 倉庫:存放被svn管理的項(xiàng)目文件,可以存放源碼,文檔等;
Users 用戶:創(chuàng)建和編輯用戶;
Groups 權(quán)限組:創(chuàng)建和編輯用戶組;
打開VisualAVN Server步驟:在SVN服務(wù)器的安裝目錄下進(jìn)入bin文件夾,雙擊VisualAVN Server.msc即可彈出VisualAVN Server窗口。
5.2 創(chuàng)建倉庫:
標(biāo)準(zhǔn)文件夾結(jié)構(gòu):
branches 分支:如果需要測試新技術(shù),或者大范圍修改,將主干代碼拷貝到分支中進(jìn)行,測試無誤后可以合并到主干中;
tags 發(fā)布:發(fā)布版本要放到tags中;
trunk 主干:主要開發(fā)目錄;jia
創(chuàng)建倉庫,命名為helloSvn:
創(chuàng)建項(xiàng)目,命名為dev:
5.3 創(chuàng)建用戶:每個(gè)開發(fā)人員都需要擁有自己的svn賬號(hào);
右鍵【Users】-【Create User...】,比如創(chuàng)建三個(gè)用戶siki,lain,lijiang
5.4 創(chuàng)建組:為每個(gè)部門配置不同的權(quán)限,便于管理;
5.5 分配權(quán)限:在倉庫或者目錄中為用戶/組分配權(quán)限;
右鍵【Group】-【Create Group...】,比如創(chuàng)建2個(gè)組admin,javaEE-Team
同理:創(chuàng)建組javaEE-Team:
此時(shí),就可以給項(xiàng)目helloSVN分配權(quán)限了,右鍵【helloSVN】-
6.svn常用操作:
6.1 checkout 檢出:
初次下載 - 第一次連接svn服務(wù)器時(shí)候需要下載對應(yīng)倉庫的數(shù)據(jù)(如果倉庫中有數(shù)據(jù)的話);
比如現(xiàn)在讓文件夾siki連接SVN服務(wù)器,方式如下
然后siki文件夾下面就有文件了
6.2 add 新增:
新增數(shù)據(jù)到svn服務(wù)器;
比如在trunk文件夾下面新建一個(gè)Item.java文件,將此文件添加到SVN服務(wù)器:
現(xiàn)在再commit到SVN服務(wù)器:
提交成功顯示如下界面:
現(xiàn)在我們來到SVN服務(wù)器,按F5刷新,可以看到trunk目錄下有了Item.java文件了!
6.3 update 更新:
更新數(shù)據(jù) - 檢查svn服務(wù)器中的數(shù)據(jù)是否與本地的數(shù)據(jù)一致,如果不一致就下載改變/新增部分,同時(shí)不會(huì)刪除本地?cái)?shù)據(jù);
比如在另一個(gè)lijaing文件夾下面更新SVN服務(wù)器的數(shù)據(jù),同樣要先在lijiang文件夾里面右鍵【SVN checkout...】
現(xiàn)在我們?nèi)iki/dev/trunk目錄中打開Item.java,會(huì)發(fā)現(xiàn)還沒有name屬性
此時(shí)我們右鍵【update】更新一下就可以了,就會(huì)有name屬性了
6.4 delete 刪除:
刪除svn的數(shù)據(jù)(需要搭配commit命令);
比如刪除siki/dev/trunk目錄下的Item.java文件,選中【Item.java】-【TortoiseSVN】-【Delete】,然后還沒完,一定要記得commit!?。?/p>
6.5 revert 回滾:
將指定版本的代碼回滾到本地,如要提交到服務(wù)器需要搭配commit命令;
然后可以看到Item.java已經(jīng)被回滾到文件夾里了,同樣此時(shí)一定要記得commit?。。?/p>
commit提交:
6.6 代碼沖突:
在多人同時(shí)開發(fā)一個(gè)類,提交的時(shí)候容易出現(xiàn)代碼沖突,也可以理解為版本沖突;
比如siki和lijiang同時(shí)修改并更新Item.java文件,siki給Item.java添加一個(gè)price屬性,lijiang給Item.java添加一個(gè)num屬性。siki先提交,然后lijiang再提交時(shí)就會(huì)提示是否update,選擇確定update,然后lijiang/dev/trunk里面就會(huì)有四個(gè)文件,
siki給Item.java增加price屬性:
lijiang給Item.java增加num屬性:
7.其他操作:
7.1 按照版本檢出;
右鍵【TortoiseSVN】-【show log】
選擇保存地址即可
7.2 賬號(hào)保存與注銷;
在需要注銷賬號(hào)的文件夾里面右鍵【TortoiseSVN】-【settings】-【Saved Data】-【Clear all】,
7.3 代碼對比工具;
可以高亮顯示不同版本文件的不同之處
7.4 下載指定版本號(hào)的文件;
比如新來一個(gè)隊(duì)友,要使用某個(gè)文件的舊版本
到此這篇關(guān)于SVN安裝及基本操作(圖文教程)的文章就介紹到這了,更多相關(guān)SVN安裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!