(轉載自http://dog.xmu.edu.cn/modules.php?op=modload&name=News&file=article&sid=246&mode=thread&order=0&thold=0)?
Subversion的目錄結構是很自由的,所有的規劃都必須是你自己規定,考慮一個subversion倉庫的目錄樹,你可以把任何一個目錄認定為一個項目,你可以只checkout這個目錄下的所有文件進行編碼,跟CVS不同,CVS顯式指定一個個module。所以你可以在一個倉庫內保存多個項目,也可以一個倉庫保存一個項目而使用多個倉庫。我個人比較喜歡第二種,因為Subversion的每次commit都會導致整個倉庫版本號增加一個,會使得多個項目的版本號出現斷層。而且如果多個項目參與人不同,就必須使用apache2進行細粒度的權限控制,不是太方便。一個倉庫一個項目,顯得更優雅一些。
以下是我研究出的倉庫規劃。
在server端,新建一個目錄用來存放所有的倉庫。比如c:\svnrepos。然后在這個目錄下建立每個項目獨立的倉庫。
svnadmin create "c:\svnrepos\rolex"
svnadmin create "c:\svnrepos\omega"
使用 svnserve -d -r "c:\svnrepos" 啟動。這樣你的項目的url是:
svn://IP/rolex
svn://IP/omega
在客戶端新建一個目錄,作為import的內容,比如c:\svnimport\rolex,然后在里面建立branches,tags,trunk子目錄,把你需要源代碼管理的項目放入trunk目錄,注意刪除垃圾文件。在c:\svnimport\rolex上點擊Import...,選擇url為svn://IP/rolex,導入。你可以使用倉庫瀏覽器查看導入的效果。
需要工作時,新建一個目錄比如c:\svnclient\rolex\trunk,然后在trunk上checkout出svn://IP/rolex/trunk上的內容。