日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

svn分支管理的使用与经验

發布時間:2023/12/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 svn分支管理的使用与经验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

篇一


最近項目用上了svn分支管理,因為項目太過龐雜,版本迭代也過于頻繁,致使多個版本的代碼交雜在一起,難以維護,無法保證其中某個版本的穩定性。當然,我們也用過很土的辦法,代碼復制一份出來,但是,這個副本也需要加上新開發的功能。

所以,我們決定使用svn分支管理。當然,這有代價,svn版本管理對二進制文件不友好,可能文件分支合并時二進制文件會難以處理。(這里說的二進制文件,泛指所有非文本文件,比如說美術資源,策劃文檔)

?

svn分支簡述

使用分支最主要的目的是,多個分支可以并行,相互不干擾,而且任何時候都可以合并。其次,容易保證主干的穩定性。

?

沒有分支的時候,你的svn可能是這樣的:

就一份代碼存在主干(trunk),當然也不會有主干這個說法。開發完1.0,繼續開發2.0,版本一個一個迭代。

?

有了分支后,你的svn可能就是這樣的了:

主干用來存放穩定的代碼,每個版本都會開一個分支,等版本完成后再合并到主干。版本一個一個迭代,但可以并行開發。

?

?

svn分支管理

接下來,簡單講解下 如何使用svn做分支管理。

?

第一步,建立主干分支目錄結構

?

第二步,創建分支

在主干目錄 trunk 右鍵,在svn菜單選擇?Branch/tag...

步驟①是分支地址,這里直接以 /branches/1

步驟②是取trunk版本,HEAD revision表示最新版本,其他可通過 show log選擇

執行 OK 后,到?branches 目錄 svn update 就可以看到最新的分支了。

?

第三步,合并分支到主干

分支就是開發目錄了,現在分支提交一個文件做測試。

然后,合并這個文件分支到主干。

現在到主干目錄,右鍵svn菜單選?Merge...

?

這個是將分支或主干的修改合并到當前工作目錄,繼續如下。

接下來點完成,如果沒沖突的話,分支文件就合到主干了。

?

但這里還要一個操作,就是在主干提交分支合過來的文件。

題外話,之所以要有這一步,除了對分支內容進一步修改,還可以同時合并多個分支。選擇權交給用戶。

另外,主干內容合到分支,也是使用?Merge 命令。

?

svn分支應用

根據項目的不同,實際上的分支架構也會不同。以我們項目為例,我們是做游戲的,項目過于龐雜,版本迭代非常頻繁。在版本1.1還沒完成時,我們可能就要開發2.0版本,這樣,版本1.1和版本2.0就要并行開發。而且,我們對穩定性有非常高的要求。

?

為此,我們設計了這樣的svn架構。

?

測試分支

為了保證主干穩定,我們加了測試分支(如 rel_1.1的測試分支為 rel1.1_test )。測試分支1.1是在分支1.1開發結束后開的,等待測試修復bug完成后,就會把測試分支1.1合入主干及分支1.1。合并完成后,這個測試分支將會關閉。

?

多分支并行

因為項目需求較多,版本迭代繁雜,所以在版本1.1還沒結束時,就開了版本2.0的分支。當分支2.0需要測試合并到主干時,就會從主干合并最新的文件到2.0測試分支,測試通過后,再合并到主干。

?

分支合并的時機

對我們而言,不同分支的最大區別是功能上線的時間點。我們根據上線周期劃分功能,拆分到不同分支。因為開發需求多,迭代過于頻繁,所以靠后的分支對比之前的分支通常只是多了某些新功能。這樣,分支的出現,避免了未開發完成的功能影響了已開發完的功能,導致當前版本的不穩定。所以,合并分支的時機就是這個分支的功能要不要上線。

?

這樣,主干永遠是穩定的,也只有經過測試的內容,才會合入主干。同時,多個版本也可以并行。

?

參考:http://blog.csdn.NET/mycwq/article/details/51793847

?

?

?

篇二


SVN分支管理策略個人見解

本篇目錄

  • 前言

  • SVN分支管理策略

  • VisualSVN Server

  • TortoiseSVN客戶端

    • Repository的創建

    • Check out

    • trunk創建新項目MyProject

    • trunk更新提交更新,迭代版本創建Tag V1.0

    • 基于Tag的Hotfix Branch

    • Hotfix Branch改動Marge(合并)到trunk中同時創Tag_V1.1進行發布

    • 定制化分支Customize branch

  • 總結

前言

使用svn做為源碼管理工具已有幾年,但一直都只是使用到了trunk。最近項目中發版本每次都會將一個版本的文件拷貝打包為rar壓縮文件,下個版本迭代則重新在svn服務端創建新的Repository用于管理。顯然這tag版本脫離了svn的管理,日志記錄也會發生斷層。

于是最近就查閱了一些文章,結合實際對 trunk、tags、branches 進行體驗操作,有點收獲,怕以后忘了,故做此記錄。

?

SVN分支管理策略

其中

Trunk:主開發分支,所有最新的代碼都在這里。

Tags:一個里程碑版本,一般都可保證直接上線(名字:”V1.0”,”V1.1”,”V2.1”,”School_V1.0”,”School_V1.1”…),用于存放發布的版本。

Hotfix branch:修正bug的分支(名字:”hotfix_V1.x”,”?School_hotfix_V1.x”, “School_hotfix_V1.x”),從需要修復的tag拉出分支,用于解決已上線版本的bug。

Customize branch:定制化需求的開發分支(名字:”School_Develop”…),用于定制化需求開發一個版本。

VisualSVN Server

服務端采用VisualSVN Server是免費的,而客戶端VisualSvn是收費的,可使用免費AnkhSvn替代集成至Visual Studio使用。VisualSVN Server的下載地址:https://www.visualsvn.com/server/download/,VisualSVN Server的安裝使用網上有很多文章,此處不做描述。

TortoiseSVN客戶端

Repository的創建

Check out

首先Checkout在服務端repository創建的Test,默認創建了三個空文件夾。

trunk創建新項目MyProject

trunk更新提交更新,迭代版本創建Tag V1.0

提交迭代版本更新。

基于trunk中最新版本創建Tag_V1.0。在/trunk/MyProject目錄上右鍵,依次選擇"TortoiseSVN" -> "Branch/tag...",在彈出窗口的"To path"中填入tag的地址。

提交后在文件夾更新后會在Test\tags文件夾下出現MyPro_V1.0文件夾,tags目錄下的MyPro_V1.0文件夾就是以trunk中指定的版本拷貝的副本做為版本V1.0進行的封存。

基于Tag的Hotfix Branch

當版本V1.0發布上線后,出現線上bug后需要修復,則以Tag中MyPro_V1.0創建Hotfix Branch(步驟和創建Tag類似),在Hotfix的分支中修復問題。修復完成后需要將此次的改動Marge(合并)到trunk中同時創Tag_V1.1進行發布。

提交后在文件夾更新后會在Test\branches文件夾下出現bugfix_by_account文件夾,在此基礎上修復問題并提交。

在/branches/bugfix_by_account目錄上右鍵,依次選擇"TortoiseSVN" ->"Revision graph",在彈出的窗口中可以看到版本分支圖。

?

Hotfix Branch改動Marge(合并)到trunk中同時創Tag_V1.1進行發布

在/trunk/MyProject目錄上右鍵,依次選擇"TortoiseSVN" ->"Merge...",

點Next出現如下窗口,

如果trunk中的版本修改過的文件與Hotfix分支中的修改不重合則不會產生沖突。下圖是trunk進行過版本提交,與Hotfix分支中的修改產生沖突。

點擊 Edit Confict解決沖突。

沖突處理完后點擊Resolved,沖突解決完成本地trunk中已包含Hotfix分支的內容,合并后需要提交至svn服務器。

Hotfix分支修復完成后創建Tag_V1.1與之前trunk創建Tag_V1.0類似。

完成以上動作后的版本分支圖如下。

定制化分支Customize branch

定制化分支使用的方式和之前創建branch方式類似,在此不做贅述。

總結

合并發生在本地working copy,只要你不提交就不會影響到repository。

合并前一定要先update、commit,保證不會out of day,并將本地的修改保存到repository。

使用svn創建的分支都會在指定的文件夾中創建副本,如果是在不同的分支文件夾中開發時候需要重新對項目配置(eg:IIS外部主機),也可在trunk中切換分支則不用修改配置,但是svn服務端需要保持可連接狀態。

最后說一句用過git之后,再也不想用其它[源代碼]管理器。

?

轉載自:

https://www.cnblogs.com/ddrsql/p/5909683.html

總結

以上是生活随笔為你收集整理的svn分支管理的使用与经验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。