svn目錄結構組成的教程

2022-04-29 14:54:09 字數 2534 閱讀 7323

svn目錄結構組成的教程

wolfwebadmin

├─projectmanagement

│ ├─trunk

│ ├─branches

│ └─tags

└─sso

├─trunk

├─branches

└─tags

大概的說一下, projectmanagement和sso是兩個專案 trunk是開發的主線**, 存放能夠執行的正確的**; 程式設計師如果開發新的程式或者改bug, 一般要先branch(svn的乙個功能) trunk目錄下的**到branches目錄的乙個子目錄,在那裡對**進行修改, 確認無誤後再提交到trunk主線下(但是有的時候為了效率, 我們也多人都在trunk目錄下開發專案). tags目錄可以看做主線**的快照, 比如你做了1.0又做了2.0, 那每個不同版本的**你就做快照放到tags資料夾下了.

一下文字** subversion版本庫布局 很多人問我」什麼是推薦的版本庫布局?」,」trunk是什麼意思?」或」trunk有什麼意義?」,本文將會嘗試回答這個問題。

乙個subversion版本庫實現了一種版本化的檔案系統,版本庫只是乙個包含目錄和檔案的檔案系統,而且它的檔案系統是版本化的,並且實現了」 廉價」拷貝,讓它的這種操作比傳統檔案系統便宜很多,但是版本庫本身還是像乙個檔案系統:subversion本身沒有特別的目錄或名稱用來代表 trunk或branches,他們只是檔案系統的普通目錄,這依賴於你給這些目錄名和結構的一種意義。

也就是說,社群已經採納了多種普通的布局作為最佳實踐,因此乙個人可以將其視為推薦方式。如果你的版本庫是公共訪問的,根據這些習慣,使用者可以方便的訪問版本庫來查詢他們所需要的。

有兩種常見的布局:

trunk

branches

tags

第一種布局是版本庫包含乙個專案或一組緊密聯絡專案的最佳選擇,這個布局非常好用,因為分支與標籤整個專案或一組專案會非常簡單,只需要乙個簡單的命令:

svn copy url://repos/trunk url://repos/tags/tagname -m 「create tagname」

這可能是最常用的版本庫布局,被許多開源專案採用,就像subversion本身和subclipse,這是大多數主機站點,如tigris.org, sourceforge.net和google code遵循的方法,這些站點的每個專案有自己的版本庫。

另一種布局是針對乙個版本庫包含不相關專案的最佳選擇。

projecta

trunk

branches

br#trunk

branches

tags

在這種布局裡,每個專案會存在頂級目錄裡,然後該目錄之下建立trunk/branches/tags,其中與第一種布局相同,這只是將專案放到自己版本庫方式的替換,他們都在乙個版本庫中。apache軟體**會使用這種布局方式來存放他們的所有專案在乙個版本庫。

通過這種布局,每個專案都有自己的分支和標籤,可以很容易使用乙個命令建立分支和標籤,就像前面展示的:

svn copy url://repos/projecta/trunk url://repos/projecta/tags/tagname -m 「create tagname」

這種布局可以簡單的建立同時包含projecta和projectb的標籤,你可以這樣做,但是需要多個命令,你也要決定是否建立乙個特別的目錄存放這種分支和標籤,如果你需要經常這樣做,你或許應該考慮第一種布局。

至於版本庫中目錄的名稱,再說一遍:只是一種習慣,他們在subversion中沒有特別含義。

「trunk」可以認為是專案的開發主線,你可以稱之為 「main」,」mainline」,」production」或任何你喜歡的名字。

「branches」是放置分支的地方,人們因各種目的使用分支,你或許希望通過特性分支或客戶修改分支來隔離你的發布或維護分支等,在這個例子裡,你可以在branches建立一層目錄,或只是在頂級目錄建立多個分支目錄。

「tags」也不會被subversion特別對待,他們只是習慣,或許通過鉤子指令碼或授權規則進行強制,來指明你建立了乙個時間點的快照,通常情況下tags與分支的區別就是tags一旦建立不能修改,你也可以將標籤目錄叫做」releases」 ,」snapshots」,」baselines」或任何你喜歡的。

記 住,名稱對你有意義,不是subversion。最後,subversion的架構,全域性修訂版本經常使得標籤沒有必要,我不知道只是因為要建立 tag而建立tag有什麼意義,如果你需要在特定時間點重建軟體,你可以通過svn log來確定相關的修訂版本號。tags對於版本庫的」外部」使用者很有用,或許qa/release團隊需要執行構建,或許是乙個內部開發小組希望在另一 個產品使用發布版本,或是外部使用者或客戶希望根據字面含義從版本庫獲取發布快照,在這些場景中,建立tag是保證獲取正確**的最簡單方法,也需要有好的 交流機制來指明發布快照。

希望本文可以為你澄清一些問題,讓你更好的理解subversion是如何工作的。

最後,我希望指出subversion版本庫的布局是可以修改的,你可以一直重組和重構布局,最壞情況下,會讓使用者調整他們的工作拷貝,但不會讓你從頭再來,你應該自由的改名,移動目錄或任何你希望改變版本庫的方式去做。

SVN常用目錄結構

svn常用目錄結構 特殊目錄名說明 trunk 主幹,儲存最新穩定版本 tag 標記,主要儲存比較完整理的版本標記,類似里程碑 tranch 分支,用於分工操作.該目錄下又以各使用者名稱及日期為目錄進行儲存 推薦 關於目錄 結構舉例,相對規範 doc 文件的 根目錄 doc trunk 文件的 版本...

關於SVN 目錄結構

subversion有乙個很標準的目錄結構,是這樣的。比如專案是proj,svn位址為svn proj 那麼標準的svn布局是 svn proj trunk branches tags 這 是乙個標準的布局,trunk為主開發目錄,branches為分支開發目錄,tags為tag存檔目錄 不允許修改...

SVN 專案的目錄結構

svn 專案的目錄結構 乙個 svn 專案的良好目錄結構如下 project1 trunk branches tags 1.project1 專案名。2.trunk 主幹目錄,用於主幹產品的維護。大部分操作都在此目錄下完成。3.branches 分支目錄,用於分支產品的維護。分支目錄通過 trunk...