SVN目錄結(jié)構(gòu)設(shè)計方案

常見SVN目錄結(jié)構(gòu)如下:trunk、branches、tags

一、trunk

主分支,是日常開發(fā)進行的地方。

二、branches

branches是分支。一些階段性的release版本,這些版本是可以繼續(xù)進行開發(fā)和維護的,則放在branches目錄中。又比如為不同用戶客制化的版本,也可以放在分支中進行開發(fā)。

三、trunk

目錄一般是只讀的,這里存儲階段性的發(fā)布版本,只是作為一個里程碑的版本進行存檔。一般的,我們的所有的開 發(fā)都是基于trunk進行開發(fā),當(dāng)一個版本/release開發(fā)告一段落(開發(fā)、測試、文檔、制作安裝程序、打包等)結(jié)束后,代碼 處于凍結(jié)狀態(tài)(人為規(guī)定,可以通過hook來進行管理)。此時應(yīng)該基于當(dāng)前凍結(jié)的代碼庫,打tag。

比如一個項目有main.cpp, common.h兩個文件,假設(shè)目前在開發(fā)的是最新的3.0版本,而且1.0/2.0版本也在進行維護,那么項目樹將類似如下樣子

project
  |
  +-- trunk
  +     |
  +     +----- main.cpp  (3.0版本的最新文件)
  +     +----- common.h
  +
  +-- branches
  +     |
  +     +-- r1.0
  +     +     |
  +     +     +---- main.cpp (1.x版本的最新文件)
  +     +     +---- common.h
  +     +
  +     +-- r2.0
  +           |
  +           +---- main.cpp (2.x版本的最新文件)
  +           +---- common.h
  +     
  +-- tags   (此目錄只讀)
        |
        +-- r1.0
        +     |
        +     +---- main.cpp (1.0版本的發(fā)布文件)
        +     +---- common.h
        +
        +-- r1.1
        +     |
        +     +---- main.cpp (1.1版本的發(fā)布文件)
        +     +---- common.h
        +
        +-- r1.2
        +     |
        +     +---- main.cpp (1.2版本的發(fā)布文件)
        +     +---- common.h
        +
        +-- r1.3
        +     |
        +     +---- main.cpp (1.3版本的發(fā)布文件)
        +     +---- common.h
        +
        +-- r2.0
        +     |
        +     +---- main.cpp (2.0版本的發(fā)布文件)
        +     +---- common.h
        +
        +-- r2.1
              |
              +---- main.cpp (2.1版本的發(fā)布文件)
              +---- common.h

這樣在trunk中開始進行開發(fā),當(dāng)需要建立branch或tag時,使用SVN的copy操作進行。
其中tags目錄需要只讀,可以使用SVN中的authz文件控制該目錄的訪問權(quán)限為只讀。

  • tag,是用來做一個milestone(里程碑)的,不管是不是release,都是一個可用的版本。
  • branch,是用來做并行開發(fā)的,這里的并行是指和trunk進行比較。

比如,3.0開發(fā)完成,這個時候要做一個tag,tag_release_3_0,然后基于這個tag做release,比如安裝程序等。trunk進入3.1的開發(fā),但是3.0發(fā)現(xiàn)了bug,那么就需要基于tag_release_3_0做一個branch,branch_bugfix_3_0,基于這個branch進行bugfix,等到bugfix結(jié)束,做一個tag,tag_release_3_0_1,然后,根據(jù)需要決定branch_bugfix_3_0是否并入trunk。

四、svn目錄設(shè)計

五、參考

https://www.cnblogs.com/wntd/p/5881794.html
https://my.oschina.net/devpmp/blog/845013
https://blog.csdn.net/boy10649/article/details/37946939

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容