2014-10-04 83 views
0

假設我們有兩個團隊:TeamA和TeamB。
TeamA維護歷史項目「ProjectA」與顛覆和TeamB分叉項目在幾個月前創建「ProjectB」,其中維護在Git
實際上,ProjectB是ProjectA +一些額外的目錄和文件,並且必須保持這種狀態。因此,TeamB必須定期將ProjectB與ProjectA同步(比方說,每個月ProjectA被認爲足夠「穩定」),也就是說ProjectA的所有提交必須在ProjectB上重播。適合svn的Git工作流程

(從長遠來看,項目A將abandonned和項目B將成爲主要的項目。)

這將是一個正確的方法定期報告所有主幹SVN向項目B git的主分支提交? 我永遠不需要執行反向操作(Git => SVN超出範圍)。
目前,我使用git-svn來挑選ProjectA上個月的提交範圍,並將它們應用到ProjectB的主分支。 但它需要搜索我上個月申請的最後一個SVN提交,以便櫻桃選擇提交的良好範圍。

我想知道如果不是櫻桃挑選,我可以使用Subversion repo的持久Git鏡像,並且每個月都使用一個簡單的svn合併或類似的東西。

任何想法的平常工作流程?

+1

難道你不能只是將A拉入某個分支,在另一個分支上工作並定期執行一個普通的舊合併? – musiKk 2014-10-04 22:12:54

回答

1

一個持久的svn回購git鏡像正是我會做的。它不必是ProjectB倉庫的獨立倉庫,只需要一個分支,它完全對應於ProjectA的svn倉庫,並且使用git svn rebase來定期更新它。 (儘管名字上,git svn rebase基本上只是一個拉,只要你自己沒有向該分支提交任何東西。)然後使用像git merge這樣的普通git工具從該分支中​​獲取東西到你的ProjectB開發分支中。

+0

謝謝,svn鏡像的Git單個分支是一個更好的主意!那麼,我不知道除了櫻桃採摘操作之外,是否可以使用其他任何操作,因爲從「svn」分支合併或重新分配會產生很多衝突...... => ProjectB中對常見文件所做的所有修改似乎都與這些操作衝突在ProjectA :(我只是想添加從特定的Subversion版本號(大約3個月前)的差異。 – Guid 2014-10-05 13:11:27