在单个git存储库中维护源代码和测试代码

时间:2013-06-04 00:10:21

标签: git makefile

我正在开发一个“通用”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(可能带分支)来完成吗?

3 个答案:

答案 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”中的文件Makefilemodule.mk主要包括Makefilemodule.mk来自存储库根目录。

感谢您的投入!

答案 2 :(得分:0)

Git分支非常便宜。

为模块1和2的每个排列创建一个开发分支。如有必要,您可以轻松地将分支合并到路上。

考虑这个使用许多不同分支的项目。

https://github.com/adaptivecomputing/torque