因爲每個人都在自己的分支工作,而且分支之間沒有任何關係,所以你會過得很開心。在編程意義上,這不是合併。一個真正的合併意味着你分裂分支「A」從分支「B」,所以這兩個分支有一個共同的祖先修訂,你現在合併從「A」到「B」或「B」到「一個」。
有沒有簡單的方法來做你需要做的。如果幸運的話,所有開發人員都在開發獨立的代碼,所以合併只是將分支合併在一起,而不會產生真正的衝突。如果開發人員正在處理同一個文件,但在不同的分支中,則會遇到問題。
合併時需要使用--ignore-ancestors
參數,因爲沒有祖先。這是我唯一可以說的。但是,一旦你克服了這種痛苦,你可以決定使用更加標準的方式來處理分支和合並。有兩種範例 實際上很好用。 (有幾個人,但他們基本上無毒):
不穩定幹線:我個人最喜歡的。每個人都從樹幹上工作。這是上帝設計Subversion工作的方式。必要時分支僅需。必要時的定義有點模糊。基本上,當你需要時你可以分支,因爲你不想讓開發者閒置。
流發展時:物流發展,你有一個集成流(通常幹線)和開發人員創建_development流(又名分支機構)做好自己的工作。開發流可能是開發人員的個人工作空間,敏捷任務,Jira問題,功能。你基本上創建了一個幹線分支,完成工作,rebase(又名從主幹合併到開發
分支
流)和_deliver(又名從開發流合併回主幹)。
正如你所看到的,在不穩定樹幹,一切都非常簡單,因爲很少有分枝回事。而且,由於每個人都是幹活的,所以他們與每個人的溝通都會更好一些,而且他們會接受更小的發展。與持續集成結合使用時效果很好。
你什麼時候在Unstable Trunk中分支?通常當你開始完成一個修訂時,開發人員開始着手當前修訂,然後開始下一個修訂。假設每個人都在開發1.2版本。每個人都在幹線上工作。當你到了一些開發人員完成1.2的工作並且想要在1.3版本上工作的時候,並且1.2版本中仍然有一些清理工作要做,你可以從trunk中分支一個1.2版本的分支。
在1.3版本上工作的開發人員繼續在主幹上工作。開發人員在1.2版本上加強了1.2版本的開發工作。當我準備發佈1.2版本時,1.2版本將在1.2版本中完成,並在1.2版本上進行標記。如果需要修補程序/修補程序版本1.2.1,則它也在1.2分支上完成。
如果在1.2分支上發現了一個問題,並且它也是主幹上1.3版本的問題,那麼您可以輕鬆地將1.2上的該特定更改合併回主幹,因爲1.2分支來自主幹。
流發展受到敏捷人羣的青睞,因爲它允許您挑選並選擇包含在集成分支(又名幹線)中的內容。許多時候,軟件在衝刺幾乎完成之前不會傳送到主幹中。喜歡這種方法的人喜歡它,因爲它提供了靈活性,但我不喜歡它,因爲持續集成對此方法效果不佳。此外,通常在發佈前幾天纔會有體面的構建。