2012-06-21 115 views
1

假設我有以下塞納里奧:顛覆在Eclipse - 在倉庫開關分支提交的工作

幹線是我的主要發展路線,其中程序員承諾在完成時。 Branch V1.0是我在發佈1.0版本時創建的一個分支。

程序員正在工作,但需要切換到分支以修復錯誤。 當切換回trunk時,Subversion會給我SVN倉庫中的最新版本,它不包含最近的更改。 因此,爲了切換,他必須承諾他所擁有的東西,否則這些改變會「失去」。我知道他們仍然保存在本地存儲庫中,但仍然意味着一旦他切換回來,它們將一個接一個地恢復。

我在這裏錯過了什麼嗎?

編輯:

現在我在想下這些行:

每個程序員將​​有自己的「私人」的開發分支關閉trunch的。只要他願意,他可以在那裏承諾。當他完成他寫的內容時,他們可以將它合併到行李箱中。他再次開始下一項任務。 如果他在任何時候需要修復其他發行版中的錯誤,他可以將其提交給他自己的私人分支,獲取odl版本並修復它。然後,在修改修改後,他可以輕鬆切換回他自己的開發分支。

會這樣嗎?

回答

2

我認爲顛覆並不像您所描述的那樣被切換。解決辦法是有兩個工作區,一個用於分支,另一個用作主幹,因此您可以毫無問題地從一個切換到另一個。我知道這不是一件好事。

+0

問題在於,這意味着我的電腦上會有很多重複的東西。隨着時間的推移會變得非常大。 – theblitz

0

考慮切換到更適合您的方法的版本控制工具。我自己的建議是Mercurial,加上MercurialEclipse。我知道唯一的缺點是Subversion更適合存儲二進制文件,而Mercurial的子庫不如Subversion的外部工作。

在Mercurial中,您的程序員可以將其更改提交到其私有存儲庫,再次合併並提交到本地,然後將所得更改推送到官方存儲庫,其他程序員將其從他們的私有存儲庫中提取出來。

0

這種目的的最佳解決方案是有兩個單獨的工作副本。一個用於工作,另一個用於分支。