由于SVN固有的特點(diǎn),目錄在SVN中并沒有特別的意義悔捶,但是trunk铃慷、branches、tags目錄卻在大多數(shù)開源項(xiàng)目中存在蜕该,這是因?yàn)檫@三個(gè)目錄反映了軟件開發(fā)的通常模式犁柜。
- trunk是主分支,是日常開發(fā)進(jìn)行的地方堂淡。
- branches是分支馋缅。一些階段性的release版本扒腕,這些版本是可以繼續(xù)進(jìn)行開發(fā)和維護(hù)的,則放在branches目錄中萤悴。又比如為不同用戶客制化的版本瘾腰,也可以放在分支中進(jìn)行開發(fā)。
- tags目錄一般是只讀的覆履,這里存儲階段性的發(fā)布版本蹋盆,只是作為一個(gè)里程碑的版本進(jìn)行存檔。
比如一個(gè)項(xiàng)目有main.c, common.h兩個(gè)文件硝全,假設(shè)目前在開發(fā)的是最新的3.0版本栖雾,而且1.0/2.0版本也在進(jìn)行維護(hù),那么項(xiàng)目樹將類似如下樣子:
- project
- trunk
- main.c(3.0版本的最新文件)
- branches
- v1.0
- main.c (1.x版本的最新文件)
- v2.0
- main.c (2.x版本的最新文件)
- v1.0
- tags(此目錄只讀)
- v1.0
- main.c(1.0版本的發(fā)布文件)
- v1.1
- main.c(1.1版本的發(fā)布文件)
- v1.2
- main.c(1.2版本的發(fā)布文件)
- v2.0
- main.c(2.0版本的發(fā)布文件)
- r2.1
- main.c (2.1版本的發(fā)布文件)
- v1.0
- trunk
要使用這樣的文件夾結(jié)構(gòu)伟众,在建立項(xiàng)目版本庫時(shí)析藕,可首先建好項(xiàng)目文件夾,并在其中建立trunk凳厢、branches噪径、tags三個(gè)空的子目錄,再將項(xiàng)目文件夾連同這三個(gè)子目錄一起導(dǎo)入版本庫数初。這樣在trunk中開始進(jìn)行開發(fā),當(dāng)需要建立branch或tag時(shí)梗顺,使用SVN的copy操作進(jìn)行泡孩。其中tags目錄需要只讀,可以使用SVN中的auth文件控制該目錄的訪問權(quán)限為只讀寺谤。