2012-05-19 37 views
0

我正在實施更好的「工作實踐」svn在我的工作過程中。我們已經使用svn幾年了,但我們只是使用它,我認爲它的容量是20%;我們將它用於源代碼版本控制,但我們不使用標籤或分支概念。對於未來,我們希望能夠在每次修訂或發佈後,藉助標籤保留我們的應用程序代碼的快照。 Here is the article that helps me finding an orientation for the best strategyThis one also gives me some understanding但給我留下更多的問題。最佳的「工作實踐」與svn發佈版本

這是我想遵循的模式:

  • 團隊不斷地在樹幹上工作。
  • 中繼線在每次修訂以及每次發佈時均被標記,以便獲得任何版本的快照。
  • 在標記後,團隊繼續在幹線上工作。
  • 如果有團隊想要嘗試的東西,他們會分支代碼,並在完成後將更改合併回主幹。

問題是我們也有應用程序依賴的自制框架。在我們的上下文中,標籤的幫助是能夠糾正現有版本中的一個小錯誤,而不會向客戶端發送最新版本;中繼線中的版本。正如你可以想象的那樣,框架與應用程序不在同一組文件夾中,因此,我認爲創建與應用程序發行版鏈接的框架代碼標籤會非常令人傷心。考慮到框架本身也可以在沒有特定應用需求的情況下進行更改。

由於這個原因,如果在以前的應用程序版本中發現框架中的錯誤,我不知道哪個是創建標籤和減輕痛苦的最佳策略。目前,這些應用程序是指框架庫,該框架位於每個應用程序解決方案的libs文件夾中。你會在這種情況下做什麼?哦,我必須指出該框架有40萬行代碼。複製和過去的解決方案將被拒絕。 :)

如果我必須修復位於以前版本的錯誤,我該如何處理標籤?我知道每次我想要在標籤結構中籤入時,Subversion都會通知我。我必須使用標籤創建分支,糾正錯誤,然後將修改合併/檢入到標籤文件夾,即使Subversion通知我也是如此?

我的應用程序中也有依賴關係,如DataDynamics.ActiveReportsMindscape.LightSpeed,它們也是Visual Studio中的依賴項,因爲這些應用程序都集成在IDE中。如果我必須糾正以前版本中使用IDE插件先前版本的錯誤,我該如何處理這種情況?

最後,如果您能寄給我書籍或文章,可以幫助我更深入地解釋所有這些問題,我將非常感激。

非常感謝你的時間。

回答

1

那麼,框架是一個軟件產品,框架的客戶端是使用它的應用程序。所以框架應該遵循與應用程序本身相同的規則。

所以這裏的情況。您發佈了應用程序的A3.0版本。該版本使用框架的F2.4版本。該框架的SVN存儲庫有一個F2.4版本的標籤。 SVN倉庫有一個A3標籤。0發佈。

您的應用程序的客戶端發現了A3.0版本中的錯誤。您創建了一個名爲A3.0.1的新分支,您將在其中修復該錯誤。 framewok已經注意到這個bug。因此,您在此分支中修復應用程序的代碼,將修復程序合併到適用的中繼線,準備就緒後,您可以創建發行版並創建名爲A3.0.1的標記。在分支和標籤中,您仍然使用框架的F2.4版本。

客戶端發現A3.0.1中的另一個錯誤。所以你創建了一個名爲A3.0.2的新分支來修復這個bug。經過調查,你意識到這是爲了框架。所以你要求框架團隊修復這個bug,併爲你提供一個版本F2.4.1。在框架團隊中,他們創建了一個分支F2.4.1來修復這個bug。準備就緒後,他們將發佈F2.4.1併爲此版本創建一個標籤。您在分支機構A3.0.2中包含F2.4.1,確保錯誤得到解決(也許您還需要對應用程序代碼進行一些更改),準備就緒後,您將發佈A3.0.2版本並創建一個標籤它。您的版本A3.0.2現在取決於框架F2.4.1。

關於VS插件,如果它們不向後兼容,我沒有看到任何其他解決方案,而不是保留舊版本。但是我不會依賴IDE,甚至不需要依賴IDE的特定插件來創建和構建軟件。 IDE應該是可以互換的,至少應該有一種獨立於IDE的方式來構建軟件。