我正在开发一个“通用”make设置,以便在处理我的项目时使用。该设置包含一个主Makefile和一个文件'module.mk',该文件应该驻留在相对于主Makefile的子目录中。主Makfile包含来自指定目录的几个module.mk。我开始使用git进行版本控制。
与开发Makefile和module.mk并行开发我想开发一个用于测试和说明目的的测试用例。理想情况下,测试用例的结构如下:
./Makefile
./dir1/module.mk
./dir2/module.mk
加上dir1和dir2中的一些附加文件
与“源代码”版本相比,文件dir1 / module.mk和dir2 / module.mk可能包含一些特定的修改。他们也会有点不同。
我的问题是:
维护make setup(Makefile和module.mk)的开发以及测试用例代码的最佳git工作流程是什么?
可以使用单个git repo(可能带分支)来完成吗?
答案 0 :(得分:1)
如果我说得对,我认为分支是答案。为什么呢?
如果“特定修改”很少,我理解可能是“源代码”版本和“测试”版本之间的许多共同代码。在这种情况下,您有时需要更正/更新两个版本中的相同代码,并且将在“源代码”和“测试”分支中合并的“修补程序”分支非常有用。
<强>更新强>
1 - 从master(您已经拥有此文件)创建一个testing_code分支,例如:
git branch -b testing_code master
2 - 当你需要在公共代码中进行一些修正时,你可以从testing_code或master创建一个“hotfix_whatever”分支,如:
git branch -b hotfix_whatever master
3 - 在hotfix_whatever中进行更正,并在master和testing_code中进行合并。
在testing_code中合并:
git checkout testing_code
git merge hotfix_whatever
并在master中合并:
git checkout master
git merge hotfix_whatever
4 - 合并后删除分支:
git branch -d hotfix_whatever
通过这种工作循环,您可以保持同步和更新的2个分支没有问题。每次需要进行更正时,打开一个新分支,进行修改,并在master和testing_code中合并。
答案 1 :(得分:1)
我最终使用分支,就像@Dherik和@spuder建议的那样。为了解决测试驻留在git repo的单独目录中的代码的问题,我在测试supdir中创建了大部分include
源代码的文件Makefile和module.mk。
特别是,回购看起来像
./Makefile
./module.mk
test/Makefile
test/dir1/module.mk
test/dir2/module.mk
目录test
仅出现在“测试”分支上,而“{test”中的文件Makefile
和module.mk
主要包括Makefile
和module.mk
来自存储库根目录。
感谢您的投入!
答案 2 :(得分:0)
Git分支非常便宜。
为模块1和2的每个排列创建一个开发分支。如有必要,您可以轻松地将分支合并到路上。
考虑这个使用许多不同分支的项目。