有没有比稀疏检出+子树合并更简单的方法将现有存储库的子目录集成到另一个存储库?

时间:2016-01-19 10:07:01

标签: git merge git-subtree

我有一个现有的代码库(相当大,由大约十几个开发人员处理),结构很像

ourproject/src/gui
ourproject/src/libs
ourproject/src/shared
ourproject/src/backend
ourproject/tests
...

我想将src/shared下面的大多数文件重新放在一个单独的项目中,托管在一个单独的Git存储库中 - 最好是在子目录中,比如

myproject/src/3rdparty/ourproject/src/shared

现在,理想情况下,我可以将该公共代码移动到单独的存储库中,然后使用Git子模块或Git subtree将该公共存储库包含到ourprojectmyproject中。但是,ourproject正在被许多人所使用,我希望它仍然是文件的“主要”来源,以便其他人不必调整其工作流程。

因此,为了实现这一点,我计划使用一个中间存储库,它包含ourproject存储库的稀疏结账(在它只保存src/shared子目录的意义上是稀疏的)。然后,我将使用subtree合并该myproject存储库中的filter-branch存储库。

但是,拥有这个中间存储库是不方便的,需要额外的工作来保持同步。有没有办法可能将两者结合起来,以便我可以进行子树合并,只考虑某些目录下的文件?也许是子树合并和Dim StartRow As Integer StartRow = 249 Dim DelRow As Integer DelRow = 600 Dim LastRow AS Integer LastRow = ActiveDocument.ActiveSheet.Cells(ActiveDocument.ActiveSheet.Rows.count, "a").End(xlUp).Row If Not (LastRow + 1) Then 'I don't know if this will work, if you can test for the end of the table 'differently, I believe this would be better (maybe even "Do Until (LastRow + 1)") ActiveDocument.ActiveSheet.Range("D" & (StartRow + 1):"D" & (StartRow + 1 + DelRow).Delete StartRow = StartRow + 1 End If 上构建的东西的组合?

0 个答案:

没有答案