SVN的標準目錄結構:trunk、branches、tags

我們在一些著名開源項目的版本庫中,通常可以看到trunk, branches, tags等三個目錄。由於SVN固有的特點,目錄在SVN中並沒有特別的意義,但是這三個目錄卻在大多數開源項目中存在,這是因爲這三個目錄反映了軟件開發的通常模式。

trunk是主分支,是日常開發進行的地方。

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

tags目錄一般是隻讀的,這裏存儲階段性的發佈版本,只是作爲一個里程碑的版本進行存檔。

比如一個項目有main.cpp, common.h兩個文件,假設目前在開發的是最新的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版本的發佈文件)
        +     +---- common.h
        +
        +-- r1.1
        +     |
        +     +---- main.cpp (1.1版本的發佈文件)
        +     +---- common.h
        +
        +-- r1.2
        +     |
        +     +---- main.cpp (1.2版本的發佈文件)
        +     +---- common.h
        +
        +-- r1.3
        +     |
        +     +---- main.cpp (1.3版本的發佈文件)
        +     +---- common.h
        +
        +-- r2.0
        +     |
        +     +---- main.cpp (2.0版本的發佈文件)
        +     +---- common.h
        +
        +-- r2.1
              |
              +---- main.cpp (2.1版本的發佈文件)
              +---- common.h


要使用這樣的文件夾結構,在建立項目版本庫時,可首先建好項目文件夾,並在其中建立trunk, branches, tags三個空的子目錄,再將項目文件夾連同這三個子目錄一起導入版本庫。

這樣在trunk中開始進行開發,當需要建立branch或tag時,使用SVN的copy操作進行。

其中tags目錄需要只讀,可以使用SVN中的authz文件控制該目錄的訪問權限爲只讀。


 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章