自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SVN分支資深專家專題講解

開發(fā) 項目管理
分支,標簽,與合并幾乎是所有版本控制系統(tǒng)的基本概念.如果你不熟悉這些功能,請看本文介紹,相信通過本文的講解你一定有清晰的認識。

本節(jié)向大家簡單介紹一下什么是SVN分支,如何使用SVN分支,如何創(chuàng)建SVN分支,如何進行廉價的拷貝,對于這些問題本節(jié)會給你一一解答,歡迎大家一起來學習關(guān)于SVN分支的知識。
概述
分支,標簽,與合并幾乎是所有版本控制系統(tǒng)的基本概念.如果你不熟悉這些功能,我們在這章提供了一個很好的介紹.如果你非常熟悉了,也能很好的讓你看看Subversion是如何實現(xiàn)這些功能的.
分支是版本控制的一項基本的功能.如果你將要使用Subversion來管理你的數(shù)據(jù).這是一個特色你將最終依賴它.這章要求你已經(jīng)對Subversion的基本概念比較熟悉.
什么是SVN分支?
假設(shè)你需要在你的電腦上維護一份被分離的文檔,一個手冊或是別的什么.某天要求你對同份文檔做一個不同的修改分離,但分離后他們兩者只有一小部分不同,因此只有輕微的不同.
你將怎么解決這種處境?顯而易見的方法是不是:可以再拷貝這份文檔,然后保存兩個不同的分離版本.當某個部分要進行修改時,只要寫入對應(yīng)的文件就可以了.
經(jīng)常需要對兩個拷貝版本進行同樣的修改.例如:如果發(fā)現(xiàn)一個打印錯誤在***個文件里,這也很可能存在第二個拷貝文件里.這兩個文件是相同的的.
這就是分支的基本概念,一條基于另外一條開發(fā)線存在的分支.并共享在分離之前的日志.一個分支就象一個拷貝的存在,并從那里離開,并具有自己的歷史.
Subversion提供了一些功能來保持文件或目錄分支的平行性.允許通過拷貝數(shù)據(jù)來創(chuàng)建分支,并記錄與源文件的關(guān)系.也能幫助你將一個分支的修改復(fù)制到另外其他的支流上.總的來說,能夠映射出不同的工作拷貝.這樣就可以在不同的分支上進行工作.
使用SVN分支
假設(shè)Sally與你同時擁有"calc"項目的工作副本,并都有/calc/trunk的工作副本.所有項目相關(guān)的文件都在/calc目錄下,因為你們的團隊已經(jīng)商定/calc/trunk用于存放開發(fā)主線.
此時你被要求完成一個任務(wù)就是新增項目的一個基本新特性.這將需要很長的時間來完成,并可能回影響到項目中的大部分晚間.問題是你不想與Sally有任何沖突,她正在修改項目中的一些存在的小BUG.并依賴于***發(fā)布的項目版本,這里(/calc/trunk)主線版本是最有效的.如果你提交修改那么肯定會打亂Sally的修改工作.一種策略就是進入一個空洞:你和Sally在一到兩周內(nèi)停止共享信息.那就是開始獲取整頓在你工作副本的所有文件,并不做任何提交一直到你完成工作任務(wù).這個方案存在著很多問題,***,這樣一來做不安全.很多人喜歡頻繁的將工作結(jié)果上傳到版本庫,已防止工作副本被突發(fā)事件破壞引起的后果.第二,不夠容易.如果你在不同的機器上工作,你就需要手工的將工作副本進行拷貝修改.***,當你完成你的所有修改后,你將發(fā)現(xiàn)很難將你的工作合并到主線項目的代碼中去.更好的解決方法就是創(chuàng),建所有你自己的分支.能頻繁的提交工作在不與其他人的沖突下.也能有選擇性的共享信息.
創(chuàng)建一個SVN分支
創(chuàng)建一個分支非常簡單-只需要用svn copy命令拷貝項目就可以.Subversion不單支持單文件,也支持整個文件目錄的分支創(chuàng)建.在此例中,我們要拷貝/calc/trunk文件夾.那么應(yīng)該把拷貝放在那里呢?任何地方你想要放置的地方.這里需要提到項目的策略在庫中有/calc/branches目錄空間,并你想要拷貝的目錄名重命名為my-calc-branch.
有兩種不同的方法來進行拷貝.首先介紹有些麻煩的方法.只是為了讓概念清晰一點.首先,檢出版本庫./calc.
使用svn copy命令拷貝要進行SVN分支的文件目錄.
$ cd bigwc
$ svn copy trunk branches/my-calc-branch
$ svn status
A  +   branches/my-calc-branch
在這個例自立,拷貝命令遞歸拷貝trunk下的文件到新的工作目錄.branches/my-calc-branch.你可以從svn
status 命令,心得目錄被添加版本庫中.同時注意"+"符號前面的字母A.他表明添加的列表是一些數(shù)據(jù)的拷貝,并不是新添加的版本庫的數(shù)據(jù).當年提交修改后,版本庫就會創(chuàng)建/calc/branches/my-calc-branch在版本庫中通過拷貝/calc/trunk,而不是通過工作副本將數(shù)據(jù)傳送到版本庫.
$ svn commit -m "Creating a private branch of /calc/trunk."
Adding         branches/my-calc-branch
Committed revision 341.
現(xiàn)在介紹一種簡單的創(chuàng)建分支的方法,那就是可以通過給svn copy 命令傳入兩個URL路徑來實現(xiàn).
$ svn copy http://svn.example.com/repos/calc/trunk \
           http://svn.example.com/repos/calc/branches/my-calc-branch \
      -m "Creating a private branch of /calc/trunk."
Committed revision 341.
從版本庫的角度來看,實際上這兩種方法并無任何區(qū)別.注意區(qū)別只在與本地客戶端,后者可以立即執(zhí)行SVN分支任務(wù),簡單,并不需要你檢出龐大的工作副本.這種方法是最常用的.
廉價的拷貝
Subversion的庫經(jīng)過特別的設(shè)計.當你拷貝一個文件目錄是,你不需要擔心會占用大量的版本庫容量-實際上版本庫并不會真正的拷貝數(shù)據(jù).取而代之的是建立一個新的目錄路口來指向已存在的目錄樹.如果你是UNIX的用戶,這與磁盤連接的概念是相同的.后面對文件或是目錄的修改也是影響被拷貝文件目錄.任何能夠使用該概念的地方Subversion都會利用該理念.
這也是為什么聽到廉價拷貝這個詞.我們不需要擔心文件目錄有多大-拷貝的花費都是非常微小的.這種特性也是每次提交所做的事,每個版本都是一次廉價拷貝.除了很少的一點修改數(shù)據(jù)進行保存.
當然,這些機制或數(shù)據(jù)共享對于用戶都是隱藏不可見的.我們能簡單的看到拷貝目錄.主要點就是拷貝是非常廉價的,無論是時間還是空間.如果你用這種方法拷貝是非??斓?當然可以隨心所欲的進行分支.
使用SVN分支進行工作現(xiàn)在我們建立了項目的一個分支,我們就可以檢出該分支并開始工作使用它.
$ svn checkout http://svn.example.com/repos/calc/branches/my-calc-branch
A  my-calc-branch/Makefile
A  my-calc-branch/integer.c
A  my-calc-branch/button.c
Checked out revision 341.
這個工作副本并無任何特別之處;只是簡單鏡像了一個庫中項目.當你提交修改后,Sally并不期望當她更新工作副本的時候看到這些修改.因為她的工作副本是/calc/trunk.
讓我們假設(shè)看看一個星期里所發(fā)生的事
      You make a change to /calc/branches/my-calc-branch/button.c, which creates revision 342.
      You make a change to /calc/branches/my-calc-branch/integer.c, which creates revision 343.
      Sally makes a change to /calc/trunk/integer.c, which creates revision 344.
現(xiàn)在這里有兩條獨立的開發(fā)線
SVN分支背后的關(guān)鍵概念
這里有兩點重要的內(nèi)容需要在這里記住.***,Subversion并沒有沖突分支的概念-它只知道怎么去進行拷貝.當你拷貝一個目錄是,結(jié)果就是目錄是一個獨立的分支.你可能回想像一個不同的目錄被建立或被處理.但對于Subversion只是平常的目錄控制區(qū)別只是再擴展一個歷史日志信息.第二,因為這種拷貝機制,Subversion的分支只是平常的存儲在版本庫中,而不像其他的版本控制系統(tǒng),SVN分支是真正存儲了目錄文件.
注意,Subversion并不支持不同版本庫之間拷貝也使用映射機制,所以他只能在同版本庫下工作.
 

【編輯推薦】

  1. SVN分支與合并學習大本營
  2. 深入講解SVN分支與合并的關(guān)系
  3. SVN分支與合并實例剖析
  4. 專家在線指導(dǎo)如何搭建SVN服務(wù)
  5. SVN分支維護專家在線 
責任編輯:佚名
相關(guān)推薦

2010-05-28 15:47:29

SVN分支

2010-05-28 15:57:20

SVN分支

2010-05-20 16:01:36

SVN分支維護

2010-05-28 17:00:24

SVN分支與合并

2010-06-01 12:49:04

SVN分支模式

2010-05-31 13:54:52

2010-06-01 09:18:46

SVN創(chuàng)建項目

2010-05-20 15:50:05

SVN分支

2010-06-01 12:36:04

SVN分支與合并

2010-06-01 19:47:29

SVN分支與合并

2010-05-27 18:31:28

SVN入門

2010-05-19 16:45:26

2010-05-31 19:02:17

訪問SVN

2010-06-02 15:25:26

SVN版本控制

2010-05-27 16:18:58

SVN設(shè)置

2010-05-19 15:45:23

Apache+SVN權(quán)

2010-05-28 11:33:44

SVN代碼庫

2010-05-28 10:22:41

搭建SVN

2010-05-20 14:07:51

SVN客戶端常用命令

2012-06-05 10:09:45

AndroidManiAndroidMani
點贊
收藏

51CTO技術(shù)棧公眾號