2013-01-15 25 views
0

我有舊的應用程序版本。它由過去的外部公司提供,基本上是實時版本的應用程序。從舊應用程序版本合併到主幹

雖然在此版本上執行了錯誤修復,但外部公司在現有版本上開發了新功能(重大模型更改)。現在我有舊的應用程序版本(這是現場)和最後的應用程序版本(未經測試,需要更多的更改)。

現在我希望把所有這一切對SVN和我做了以下步驟:

    在trunk文件夾
  1. 創建存儲庫,並增加了新的分支機構應用版本的文件有
  2. 創建存儲庫文件夾老應用程序版本
  3. 爲標籤文件夾中的兩個存儲庫創建了標籤。

在接下來的一段時間裏,我應該繼續在最新版本(trunk)上進行開發,同時修復舊版本(分支)上的bug。如何(每週)將我的分支版本的更改合併到主幹中?我嘗試了合併選項,但結果真的很奇怪(某些文件夾的內容完全刪除),您認爲這是最佳解決方案,我不想每次修復分支上的錯誤時手動更改中繼代碼

感謝,

Minja

回答

0

你讓初始步驟一些錯誤,並且,作爲結果,有兩個代碼無關件,爲此,Subversion不知道演進路徑。

稍加修改的工作流程可能是:

對於默認單項目佈局(當前的)

  • 導入舊編碼到/後備箱空庫(或與結賬添加文件+加+承諾)
  • 科該中繼線一些分支(svn copy URL-OF-TRUNK URL-OF-BRANCH-OLDCODE
  • 獲取軀幹的WC(svn co或來自步驟1)
  • 重新使用WC把OLD-CODE在WC通過NEW-CODE
  • 提交幹線

它後,你後續的合併將是(只是一點點)少頭痛的任務。這只是輕微的,因爲在任何情況下合併遠遠改變重構代碼都不是一件容易的事情,但是至少會有代碼和常見父母的差異歷史記錄。壞消息:對連續歷史的需求決定了倒數第二步代碼替換操作的附加要求:如果新對象是舊的後代,則不能只刪除過時的文件/目錄並添加新的對象(孩子的重構) - 你必須父母與子女之間的支持歷史svn mv而不是OS替換結果svn rm + svn add和日誌中不相關的文件)。最壞的消息:我不知道該怎麼做(在svn mv找到所有的候選人)在合理的時間防彈的方式,只使用Subversion

+0

聽起來合乎邏輯,謝謝。 – Minja