2012-03-13 57 views
1

我在delphi 7Tortoise svn項目中工作,該項目是一種調查工具。 我們目前正在開發一個新版本,它將是myproject 1.8,在2個月內我們將以myproject 2.0開始。SVN(烏龜) - 如何處理這種情況?

注意:我們已經繼承了現有的svn。所以這不是我們的設計

方案: 我在我c:\c:\project\myproject\只是一個單一的文件夾,我們是一個啓動如此我們沒有與項目開始,我們就開始從myproject 1.5 ..但現在myproject 1.5代碼處理已經disapeared和myproject 1.6 ..所以打開時,我們開始myproject 1.7我們做了一個文件夾c:\project\myproject\NV1.6Code並複製整個代碼到該文件夾​​,並開始與myproject 1.7 ...現在我不知道如何維護子版本一樣myproject 1.7.1myproject 1.7.2`myproject 1.6.4在我們目前的狀態。

現在我們剛剛開始myproject 1.8,我們不知道如何開始在顛覆控制 ,因爲然後myproject 2.0也將很快來。

結構: 路徑:C:\projects\myproject

正如你可以在picture..the NV1.6code目錄中看到有1.6版本的代碼和所有的目錄外是1.7 code版本..

不是好主意? 我不薄,這將是一個好主意

AIM:我如何作出上述爛攤子正確的? 請幫助我如何讓我的烏龜SVN最好用在我的情況下保持 版本

  1. myproject version 1.6 (then the subversion like 1.6.1 , 1.6.2, 1.6.3)
  2. myproject version 1.7 (then the subversion like 1.7.1 , 1.7.2, 1.7.3)
  3. myproject version 1.8 (then the subversion like 1.8.1 , 1.8.2, 1.8.3)
  4. then the future version myproject version 2.0
+0

如果您還沒有閱讀,請考慮獲取「[使用Subversion的實用版本控制](http://pragprog.com/book/svn/pragmatic-version-control-using-subversion)」的副本。它涵蓋了版本分支,所以它會給你一些很好的背景。 – 2012-03-13 05:12:32

+0

@JoeWhite:好吧,我會去這個:) – PresleyDias 2012-03-13 05:14:44

回答

2

有兩種方法可以做到這一點:使用分支或標記功能。

一般來說,我喜歡用標籤指定釋放點和發展在相對線性的方式(1.6變爲1.7,1.7〜1.8等)繼續在

但是,如果由於某種原因,說你發佈1.6和主要發展到1.7,但你想繼續做小的變化到1.6(如1.6.1,1.6.2等),可能有利於創建一個分支。

同時使用這兩個功能也很好。

+0

這個想法,好的分支會對我更好嗎?即時通訊新手在SVN其他然後只是'提交'和'更新'..所以我很多。 – PresleyDias 2012-03-13 06:49:26

+0

我認爲使用兩者都可以解決問題(儘管只使用分支也是一個很好的解決方案)。您可以爲發佈版本添加標籤,但是可以讓開發人員在不同版本之間開發分支。 – helloworld922 2012-03-13 07:27:41

+0

好的,現在經過一些數據..我的第一份工作是製作三個主要的目錄/標籤/樹幹/分支...然後我可以把我所有的代碼放在樹幹中..然後開始創建分支,比如/ branches/myprojec1 .8? – PresleyDias 2012-03-13 09:27:58

3

您應該使用分支和標記功能來解決您的問題。但請記住,爲每個版本創建分支確實會使工作變得複雜,並且無法處理其更改。請記住:

  • 儘量減少分支機構的數量。 (通常在您的項目中2或3就足夠了)
  • 對於每個發佈的版本,創建一個標籤。
  • 如果沒有合適的機制來合併變更,請避免在源代碼管理中擁有大量分支。
  • 如果與開發時間相比花費了太多的時間來合併您的更改,那麼分支的結構會出現問題。
  • 如果您決定設立分支機構,請儘可能不要延遲合併。應該禁止任何試圖合併所有分支的所有更改(大爆炸合併)。
  • 由於沒有明顯的原因,團隊不應創建多個分支。
  • 如果在系統中創建了任何分支(正確或錯誤),則在工作結束時應將其更改合併回其父分支(如果可能)。
  • 團隊成員不應該在分支,合併或構建新基線時停止開發活動。
  • 不要使用分支來劃分開發團隊成員,而不是分割他們正在執行的工作。

看看this answer瞭解更多信息。