2009-08-18 89 views
3

我剛剛開始在C#項目中使用Subversion。我正在單獨開展這個項目,但我試圖對待,就好像我在一個團隊中工作以獲得自己的學習體驗。如果只有一個人在一個項目上工作,你應該在顛覆中使用分支嗎?

據我所知,使用顛覆的典型方式是擁有一個始終構建的主幹文件夾。然後在新分支中創建重大更改,然後在完成後將其合併回主幹。因此,不同的團隊成員可能會同時在許多分支機構工作。

但是,如果我在我自己的工作是否有任何意義,使分支?假設我在HEAD修訂版100中。我將在修訂版101中創建一個分支,然後繼續在分支上工作,直到修訂版110爲止。現在我可以將110重新合併到主幹中,但是項目中沒有其他人,所以不會有任何更改主幹合併回。我剛剛合併到我最初創建分支的修訂版100中。

回答

10

分行與有多少人正在從事項目無關。分支用於替代開發流,如不同的功能集,硬件目標或客戶端。

如果有100人正在處理單個交付物,他們應該使用同一個分支。如果一個人支持十幾種不同的交付物,他應該有十幾個分支機構。

+0

我一直在想它的方式是我的箱子總是一個工作版本,當我進行重大更改和破壞時,我通常會在分支上工作。作爲一個人我不必擔心協作問題,但是如果我沒有分支機構,當我想向某人展示最新的工作版本時,我必須記住要更新回某個特定的修訂版本號。如果我在一個分支工作,那麼我知道我總是可以在主幹上採取最新版本。 – 2009-08-19 02:01:51

4

我認爲分支機構應該始終用於分割實際的代碼,例如當你需要爲某個問題嘗試一個遠距離的解決方案時。通過分支機構,您可以分離問題和解決方案的嘗試並保持版本控制。

0

創建分支時似乎沒有太多意義,如果只是你在項目上工作 - 你可以直接使用修訂版回滾到。

如果無論您想做些重大的實驗性的事情,想嘗試一些東西,那麼您可以使用該分支來隔離您的更改並保留樹幹。

你完全可以像這樣工作,然後使用發佈標籤或分支作爲歷史目的...和其他分支進行實驗性工作。

4

一個分支(與標籤相對)是一個可維護的版本的代碼。即使作爲單個開發人員,您也可能需要維護多個版本的代碼(例如,將錯誤修正移植到舊版本)。
SVN書籍列出了SVN分支here兩個最常見的用例。
這兩種方法的分支策略與項目中開發人員的數量無直接關係。
除非您正在研究短期項目(如學術,單一版本,項目),否則請嘗試使用其中一項政策。管理開銷足夠低,它可以讓你的生活更加輕鬆。

0

我保留2個分支:開發和樹幹,因爲你永遠不知道什麼時候必須快速修復生產。在將它們移植到產品之前,我可能會在1-3周內開發新功能。與此同時,我可能不得不推出針對生產的修補程序。通過保留2個分支,我可以輕鬆部署錯誤修復。

相關問題