SVN就是這么簡單

什么是SVN

SVN全稱:Subversion,是一個開放源代碼的版本控制系統

Svn是一種集中式文件版本管理系統。集中式代碼管理的核心是服務器,所有開發者在開始新一天的工作之前必須從服務器獲取代碼,然后開發,最后解決沖突,提交。

集中式文件版本控制器:將所有的文件都交由服務器來進行統一的管理。既然是有服務器的,那么就需要聯網進行操作了。

為什么要使用SVN

我們寫一個項目一般都是一個團隊來寫,如果我們沒有用SVN的話,那么我們只能在團隊中互相拷貝對方的代碼來完成我們的項目

SVN還有如下的好處:

  • 輕松比較不同版本間的細微差別【修改了代碼,就有版本號,還能知道修改前后的數據】
  • 及時了解團隊中其他成員的進度【如果沒有把代碼提交到服務器中,就是做得比較慢了】
  • 廣域網共享【連上局域網就可以代碼共享了】
  • 協同工作,大大提高團隊工作效率

快速了解SVN

配置庫

在SVN中有配置庫這么一個概念,那它是什么東東呢??

它儲存所有的數據,配置庫按照文件樹形式儲存數據

  • 包括目錄和文件

任意數量的客戶端可以連接到配置庫,讀寫這些文件.并且可以添加讀寫日志,有權限的用戶很方便的看到這些修改

工作副本

我們從上面已經知道了,我們可以從配置庫中得到想要的文件。那么我們要把文件從配置庫下載下來。這個下載下來的區域就是工作副本

這個工作副本其實就是我們工作的區域,我們對那些文件修改完,就能夠再次提交到配置庫中了

SVN命令

我們簡單來學習幾條SVN的命令,SVN有圖形界面的功能,因此命令學習也不是必須的。了解一下....

---創建服務器端版本庫svnadmin create 版本庫路徑 ---啟動SVN服務器端svnserve -d -r 版本庫路徑 ---在系統服務中注冊svn服務器sc create svn binPath= "C:\Program Files\TortoiseSVN\bin\svnserve.exe --service -r D:\itcast\svnserver\20150118svn" DisplayName= "svn服務"---刪除系統服務中的 服務sc delete 服務ID復制代碼

如果啟動SVN服務器的時候,不會報錯就是正常開啟了


分配權限

在我們配置庫中找到conf文件夾下的svnserve.conf配置文件。將下面的三行的注釋去掉

分配用戶

找到conf文件下的passwd,配置用戶

常見的子命令

  • import:將未納入版本控制器的文件或目錄提交到版本庫中(僅執行一次)
  • checkout: 從版本庫標簽中出工作副本
  • revert: 將工作副本文件恢復到指定版本
  • update: 將版本庫的修改合并到工作副本中
  • commit:把工作副本的修改提交到版本庫。

使用SVN

添加數據到SVN

創建配置庫,我們可以使用命令行方式,也可以使用UI點擊的方式。這里我就直接使用UI的方式了。

隨后,開啟我們的SVN服務

把一個文件夾放置到配置庫中,交由SVN管理

在SVN中查看我們添加的內容:

查看具體的日志

標識得非常清晰:


從SVN導出數據

把SVN的數據導出到用戶中。

導出后:這個local文件夾其實就是我們的工作副本!


修改SVN導出后的數據、再添加回SVN

我在工作副本中添加了一個文件

添加到SVN中:

隨后,變成了一個藍色的圖標+號,我們提交。


解決沖突

我們可能會出現這樣的一個問題:我們的SVN是一個團隊正在開發。但是在commit之前,有人就把我正在編輯的文件給修改了。于是當我在提交的時候就出現了沖突【當前的數據不一致,沖突了】

localhost2用戶導出了SVN的數據,并且修改了文件:

另一個用戶localhost也在修改該文件,但是它沒有做updata操作。并不知道該文件已經被修改了。

當他修改完,想要更新到SVN中的時候,發現沖突了。

面對沖突,我們有兩種方案:

  • 放棄本次的修改
  • 查看沖突的內容是什么,當查看完再決定要哪個的數據,或者是合并起來。

我們進去沖突修改的頁面,決定要的是哪一行的數據

最后修改完,點擊保存操作就行了。


關于沖突的建議

  • 修改文件之前,先進行一次update操作
  • 修改完成后,及時commit,不要在本地停留過長時間
  • 在多位團隊成員協作時,盡量修改自己撰寫的部分,盡量不要修改不屬于自己撰寫的部分
  • 出現沖突很正常,可以通過前面的方法解決,不要相互覆蓋

工作流程圖


如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術文章,想要獲取更多的Java資源的同學,可以關注微信公眾號:Java3y

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/283967.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/283967.shtml
英文地址,請注明出處:http://en.pswp.cn/news/283967.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringCloud必會知識點大全

為什么要學習Spring Cloud 在項目開發中隨著業務越來越多,導致功能之間耦合性高、開發效率低、系統運行緩慢難以維護、不穩定。微服務 架構可以解決這些問題,而Spring Cloud是微服務架構最流行的實現. 1.微服務 微服務架構是使用一套小服務來開發單個應用…

thinkphp3.22 多項目配置

1.index.php if(version_compare(PHP_VERSION,5.3.0,<)) die(require PHP > 5.3.0 !); // 開啟調試模式 建議開發階段開啟 部署階段注釋或者設為false define(APP_DEBUG,true); // 創建 //define(BIND_MODULE,Login); define(erp,true); // 定義應用目錄 define(APP_PAT…

30分鐘掌握 C#7

1. out 變量&#xff08;out variables&#xff09; 以前我們使用out變量必須在使用前進行聲明&#xff0c;C# 7.0 給我們提供了一種更簡潔的語法 “使用時進行內聯聲明” 。如下所示&#xff1a; 1 var input ReadLine(); 2 if (int.TryParse(input, out var result)) 3 …

在 C# 中如何檢查參數是否為 null

前言前不久&#xff0c;微軟宣布從 C# 11 中移除參數空值檢查功能&#xff0c;該功能允許在方法開始執行之前&#xff0c;在參數名稱的末尾提供參數空值檢查&#xff08;!!操作符&#xff09;。那么&#xff0c;在 C# 中如何檢查參數是否為 null 呢&#xff1f;1. null這個可能…

什么是Maven快照(SNAPSHOT)

本文來說下Maven的SNAPSHOT版本有什么作用 文章目錄 問題解決 正式版本"abc-1.0"快照版本"abc-1.0-SNAPSHOT"本文小結問題 在使用maven進行依賴管理時&#xff0c;有的版本號后面會帶有"-SNAPSHOT"&#xff0c;有什么作用呢&#xff1f; <dep…

帶你剖析WebGis的世界奧秘----Geojson數據加載(高級)

前言&#xff1a;前兩周我帶你們分析了WebGis中關鍵步驟瓦片加載點擊事件&#xff08;具體的看前兩篇文章&#xff09;&#xff0c;下面呢&#xff0c;我帶大家來看看Geojson的加載及其點擊事件 Geojson數據解析 GeoJSON是一種對各種地理數據結構進行編碼的格式。GeoJSON對象可…

如果要存ip地址,用什么數據類型比較好

在看高性能MySQL第3版&#xff08;4.1.7節&#xff09;時&#xff0c;作者建議當存儲IPv4地址時&#xff0c;應該使用32位的無符號整數&#xff08;UNSIGNED INT&#xff09;來存儲IP地址&#xff0c;而不是使用字符串。但是沒有給出具體原因。為了搞清楚這個原因&#xff0c;查…

微軟 .NET Core 3.1 年底將結束支持,請升級到.NET 6

微軟近日宣布&#xff0c;將于 2022 年 12 月 13 日停止為 .NET Core 3.1 提供服務更新、安全修復和技術支持。.NET Core 是一個免費開源的、用于 Windows、Linux 和 macOS 操作系統的軟件框架。該項目主要由微軟員工通過 .NET 基金會開發&#xff0c;并在 MIT 許可下發布。202…

軟件團隊的模式選擇

軟件團隊的模式分為&#xff1a;主治醫生模式、明星模式、社區模式、業余劇團模式、秘密團隊、特工團隊、交響樂團模式、爵士樂模式、功能團隊模式和官僚模式。 經過小組的討論&#xff0c;我們決定選用交響樂團模式獲得功能團隊模式。 交響樂團模式的優點是種類多&#xff0c;…

Angular 2

1. Angular2 官網 https://angular.io/guide/quickstart Node.js 下載 https://nodejs.org/en/ 怎么在vs code中使用angualr2 https://code.visualstudio.com/docs/nodejs/angular-tutorial moment.js:(javacript日期處理庫) http://momentjs.cn/ 2. ng2-hightCharts https://…

「Docker入門指北」容器很難理解?帶你從頭到尾捋一遍

文章目錄 1. 初始虛擬化 &#x1f351; 虛擬化概念&#x1f351; 硬件虛擬化2. Docker容器 &#x1f351; Docker技術的誕生&#x1f351; 容器與虛擬化&#x1f351; 性能差別&#x1f351; Docker優勢 編排有序高效易遷移快速部署3. 容器生態系統 &#x1f351; 核心技術 容器…

微服務:事務管理

幾乎所有的信息管理系統都會涉及到事務&#xff0c;事務的目的是為了保證數據的一致性&#xff0c;這里說的一致性是數據庫狀態的一致性。說到數據庫狀態的一致性&#xff0c;相信大家都會想到 ACID &#xff1a;原子性&#xff08;Atomic&#xff09;&#xff1a;在一個事件的…

js - flex布局測試案例:完美居中

<span>I love flex layout!</span><style>body{display:flex;justify-content:center;align-items:center;font-size:3em;color:#00ffff;}</style>![enter image description here][1]<p>與自己為敵&#xff0c;</p><p>與自己為友&a…

操作數據庫(對戰小游戲)

創建數據庫 1 create database duizhan2 go3 use duizhan4 go5 create table duizhan6 (7 Code varchar(20) not null primary key,8 Name varchar(20) not null,9 Sex varchar(20) not null, 10 Blood int, 11 Attack int, 12 Defence int, 13 Mingzhong…

8-Python3從入門到實戰—基礎之數據類型(集合-Sets)

Python從入門到實戰系列——目錄 集合的定義 集合&#xff08;set&#xff09;和字典類似&#xff0c;也是一組key的集合&#xff0c;但不存儲value&#xff1b;由于key不能重復&#xff0c;所以&#xff0c;在set中&#xff0c;沒有重復的key。創建一個set&#xff0c;需要提供…

Redis的那些事:一文入門Redis的基礎操作

Redis是什么Redis&#xff0c;全稱是Remote Dictionary Service,翻譯過來就是&#xff0c;遠程字典服務。redis屬于nosql非關系型數據庫。Nosql常見的數據關系&#xff0c;基本上是以key-value鍵值對形式存在的。Key-value: 就像翻閱中文字典或者單詞字典&#xff0c;通過指定的…

10種提問型爆文標題句式 直接套用

如果你用1天的時間來寫篇好文章&#xff0c;那你花掉半天時間想一個好標題都不過分&#xff01; 你是不是覺得我有點言過其實了&#xff1f;沒關系&#xff0c;先來問你2個問題&#xff1a; 1、花了很長時間&#xff0c;寫了一篇很牛的賣貨推文&#xff0c;定稿后&#xff0c…

同域和不同域長啥樣

相同域http://www.jiangdou.com/http://www.jiangdou.com/maidou 不同域http://www.jiangdou.comhttp://bbs.jiangdou.comhttps://www.jiangdou.comhttp://www.jiangdou.com:8080轉載于:https://www.cnblogs.com/MaiJiangDou/p/6689133.html

2016 China Joy搶先看,文末有彩蛋!

這里只有你想不到的&#xff0c;沒有你看不到的。 2016 China Joy開幕在即&#xff0c;天氣成了最折磨各種媒體、展商和觀眾的小妖精&#xff0c;一會艷陽天&#xff0c;一會大暴雨&#xff0c;軒軒現在是這樣的&#xff01; 七月底的魔都&#xff0c;熱的那叫一個銷魂&#x…

JdbcTemplate+PageImpl實現多表分頁查詢

一、基礎實體  MappedSuperclass public abstract class AbsIdEntity implements Serializable {private static final long serialVersionUID 7988377299341530426L;public final static int IS_DELETE_YES 1;// 標記刪除public final static int IS_DELETE_NO 0;// 未刪除…