2009-02-06 71 views
3

剛剛從視覺工作室轉移到顛覆...。我已經喜歡它了!有人能簡單介紹一下顛覆結構問題

  1. 分行
  2. 標籤
  3. 幹線

我需要創建的每個項目新的存儲庫?還是新的後備箱?

謝謝

+0

我假設從Visual Source Safe?或者您是否也停止使用Visual Studio? – 2009-02-06 10:23:28

回答

13

你不需要一個單獨的存儲庫,但你可以如果你想。我建議您閱讀​​。抓住PDF版本或其他。這不需要太長時間,它解釋了一些很好的事情。我讀過它,發現我很高興我做到了。

+0

+1紅豆書很棒(更是如此,因爲它是免費的)。 – 2009-02-06 14:37:05

+1

+1。優秀閱讀! – 2009-02-07 07:01:19

13

請記住,顛覆只是一個支持版本控制的花哨的文件系統。將存儲庫視爲「驅動器根目錄」,如「C:/」。

每個項目都有一個trunk,tags和branches目錄。所有的日常工作都發生在行李箱中。實驗代碼在分支中完成,然後在稍後的日期合併回主幹。標籤是用於發佈軟件的。這些是要編輯的而不是。當您發佈軟件時,您將根據當前中繼中的內容創建具有唯一名稱的標籤。

我不能說你是否需要爲每個項目單獨存儲庫,這裏有優點和缺點。這blog posting詳細介紹他們:

  1. 簡化的管理。一套要部署的鉤子。一個存儲庫 進行備份。等等。
  2. 分支/標籤的靈活性。將代碼全部存儲在一個存儲庫中,它使 更易於創建涉及多個項目的分支或標記 。
  3. 輕鬆移動代碼。也許你想從 一個項目的代碼段,並在另一個項目中使用它,或 把它變成一個庫的幾個 項目。將代碼 移動到同一個存儲庫中並將 過程中的代碼歷史保留爲 很容易。

以下是 單個存儲庫方法的一些缺點,以及 到多存儲庫方法的缺點。

  1. 大小。處理很多較小的存儲庫可能比一個大的存儲庫更容易處理。例如,如果 退役項目,則可以將存儲庫 歸檔爲介質,並從磁盤中刪除它 並釋放存儲空間。 也許你需要轉儲/加載 存儲庫由於某種原因,如 利用新的Subversion 功能。這很容易做到,並且如果它是較小的 存儲庫,則影響較小。即使您最終 想要對您的所有 存儲庫執行此操作,它將對 每次只執行一個操作具有較小的影響,假設 沒有迫切需要一次執行它們。
  2. 全球修訂編號。儘管這不應該成爲問題,但有些人認爲它是一個,而 不希望看到版本庫上的版本號 預先更新,並且 未激活的項目在其修訂歷史中有較大的差距 。
  3. 訪問控制。儘管Subversion的authz機制允許您根據需要將 限制爲 存儲庫的某些部分,但在存儲庫 級別仍然可以使用 。如果您有一個項目只有 a選擇幾個人應該訪問,這對於該項目的單個存儲庫更容易。
  4. 行政靈活性。如果您有多個存儲庫,則根據 存儲庫/項目的需要,更容易實現不同的 掛接腳本。如果你想 統一的鉤子腳本,然後單 庫可能會更好,但如果 每個項目都想自己的承諾 電子郵件的風格,那麼就比較容易有 這些項目在不同的 庫
7

我同意,閱讀svnbook。這是一個很好的資源。

是否需要爲每個項目創建一個新的存儲庫?還是新的後備箱?

Kevin涵蓋了單個/多個存儲庫的權衡。當我們開始使用svn時,我們爲所有的開發項目使用了一個存儲庫。它運行良好,並具有所提到的所有優點。但是,隨着存儲庫變大,由於轉儲文件的大小以及備份期間產生的問題,管理變得更加困難。這也成爲一個問題,項目不能很容易地從存儲庫中歸檔 - 這當然是可能的,但它需要傾銷並從存儲庫中提取項目。他們不是你無法解決的問題,但需要牢記。

  1. 分行
  2. 標籤
  3. 幹線

分支,標籤和主幹都只是包含在庫文件的副本。它允許您在任何合適的時間(通常在發佈版或功能部門)分隔並檢查文件。

一個重要的事情要記住分支,標籤和樹幹是他們只是在svn約定。這三個地點之間沒有功能差異,它們只是一種可接受的使用模式,如果您有充分的理由,它們可以進行不同的更改或組織。我不建議你組織不同,但你會發現svn非常靈活,因爲除了約定之外,並沒有真正的強制組織結構。

根據您決定在存儲庫中擁有多少個項目,您可以組織不同。

你可以有計劃的子目錄下它:

\repo 
    \branches 
    \... 
    \tags 
    \... 
    \trunk 
    \.. 

,或者你可以擁有項目包含子目錄:

\repo 
    \Project1 
    \branches 
    \tags 
    \trunk 
    \Project2 
    \branches 
    \tags 
    \trunk 

有被覆蓋在svnbook權衡。如果每個存儲庫只有一個項目,而第二個方法通常使用,如果存儲庫中只有一個項目,則第二個方法通常使用。

好的是,你可以開始使用svn,然後找出你喜歡什麼。您應該擁有某種組織,但使用便宜的副本,隨着情況或工作流程的變化,您可以隨時重新安排文件夾。

3

與其他版本控制系統(如CVS或Git)相比,SVN需要記住的一件重要事情是SVN並沒有真正的概念,分支或標記。就SVN而言,這只是一堆文件夾和文件。所以雖然你會看到很多使用branches/tags/trunk setup的人,但這不是必需的,如果你願意,你可以偏離這一點。

一般來說,「行李箱」是您保持積極發展的地方。所以這是你做所有提交的地方。無論您是否簽出中繼線或使用標籤/分支,完全取決於您。

正如我用過的那樣,分支機構通常用於當您需要對應用程序進行較大更改但不希望它們位於主幹中時,因爲您希望能夠繼續開發主幹而不必部署其他更改。在這種情況下,你可能有類似

\repo 
    \trunk 
    \branches 
    \version_two 

在這種情況下,你可以在兩個主幹開發和version_two分開和,假設你住的網站是一個主幹結賬,你不需要擔心「意外」用您的其他更改打破您的現場。當這些更改完成並準備就緒時,只需將它們合併回主幹即可。

標籤可以類似於分支機構使用,而不是檢出中繼,只是使用'svn up'來更新您的存儲庫而不是幾個標籤,每個標籤代表一個版本。所以,你可以回購看起來像

/repo 
    /trunk 
    /branch 
    /version_one 
    /version_two 
    /tags 
    /1.0.0 
    /1.0.1 
    /1.1.0 

在這種情況下,總的想法是,當你準備做一個部署你做一個

svn copy 

要通過複製行李箱標籤(在這種情況下,下一個可能是1.1.1,1.2.0,2.0.0等)。你如何給你的標籤命名完全取決於你自己,而且還取決於你的項目和要求。有了這條路線,而不是做一個普通的'svn up',你將不得不做一個svn切換。所以你必須使用

svn switch https://svn.yourrepo.com/repo/tags/1.1.0 

交換機會自動更新,添加和刪除相應的文件。

當涉及到一個回購許多項目或單獨回購爲每一個我每一個項目回購的倡導者。它提供了輕鬆管理訪問權限的其他好處。但最重要的是,這意味着每個項目都有一個單獨的提交歷史和單獨的日誌。這m

2

閱讀您的標籤我看到您開始使用VisualSVN而不是您的舊VSS系統。 (你的問題說你停止使用Visual Studio ..這使得VisualSVN成爲一個奇怪的選擇)。

之一的SourceSafe和VSS之間的主要區別是,你可以選擇不同的工具來訪問相同的資源庫(你可以切換每次你喜歡的時間,因爲他們都有着相同的workingcopy)。

例如爲: