2009-07-29 78 views
4

我剛開始學習如何使用Subversion來構建我的Web應用程序,請耐心等待。Subversion版本庫工作副本結構的最佳實踐?

這裏是我如何設置這一切:

  • 我的一個域名將舉辦我所有的項目庫。我有標準標籤/分支/主幹結構。這是在公用文件夾中,因此可以由其他開發人員訪問。
  • 我將在包含應用程序的每個版本的活動服務器上有一個文件夾,並且在Web目錄中指向當前版本的符號鏈接。這樣,當我釋放應用程序更新時,我將其導出到發佈目錄,然後切換符號鏈接,以便更改立即聯機。

這裏是我的問題:

什麼是該項目的本地工作副本的最佳結構?我將會頻繁地在分支機構和主幹上工作,所以我應該檢查整個存儲庫結構(標籤/幹線/分支)還是隻檢查幹線和每個分支到不同的文件夾?另外,如果有任何我說過我如何設置它似乎很奇怪或錯誤的方式來做到這一點,讓我知道(我是新來的!)。

回答

0

如果您真的喜歡,可以查看整個存儲庫。隨你便。就我個人而言,我只想看看我正在積極開展工作的部分。這樣,「svn update」不會永遠佔用,而且我自己的硬盤空間也會減少。至於在存儲庫中的位置之間切換,有一個特殊的命令:「svn switch」(縮寫爲「svn sw」)。使用「SVN幫助開關」或看到該鏈接的詳細信息:

http://svnbook.red-bean.com/en/1.1/ch04s05.html

+0

感謝邁克爾,這似乎是最合理和最容易實現的。 – 2009-08-29 16:18:30

0

Agreed-只保留分支你的工作是最好的主意。 svn switch的唯一呃逆是你需要使用--relocate選項在存儲庫之間翻轉,如果你真的需要本地副本。

如果您需要真正開始分發存儲庫的克隆,則可以查看git。 Git將允許您保留完整的本地副本,輕鬆地在分支機構之間移動,並將變更集推回「主」回購或其他克隆。

0

如果我是你,我還會考慮在包含當前(最新的,如果你喜歡的話)版本的活動服務器中有一個標準且有意義的名稱的工作空間,這將是發佈文件夾的簽出在您的中央存儲庫中。那麼你只需要做一個「svn update」而不是改變符號鏈接到不同的版本。這樣可以節省你的服務器上的空間,因爲存儲庫可以讓你的檔案全部摧毀。

爲清楚:如果你的SVN倉庫有這種典型結構:

/後備箱

/src 
/bin 
/docs 
/scripts 

/標籤

/released 

你可以有這個文件夾來存儲您的版本或在我們的情況是,如果你必須保存所有的檔案,那麼你可以有一個獨立的二進制檔案庫(否則版本化的源文件應該是足夠的)

那麼,你的現場服務器將有一個工作空間稱爲發佈(或任何),這是一個結帳的http:/// tags/released。通過這種方式,您可以在服務器上的工作區上運行svn更新,並且您的應用程序指向最新版本。希望這可以幫助。

對於本地工作空間,如果您是新手,擔心提交不正確,可以一勞永逸地檢出整個結構,只更新您正在提交併需要更改的內容。上述其他建議也是有效的。 YOu可以查看檢查任何給定文件夾的頂級目錄strcuture,但要確保始終保留名稱以避免混淆。

突突走:-)

1

我喜歡做的整個倉庫的sparse checkout--depth immediates。然後我使工作副本的某些部分「更深」

svn update --set-depth somedepth 

找到我想要處理的部分。您還可以使工作副本的一部分再次變淺,以獲得磁盤空間。

我不喜歡使用svn switch,因爲部分切換的工作副本不好的經驗。當交換機遇到未受版本控制的文件時,交換機會中途出錯,從而造成混亂。