繁体   English   中英

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

[英]Maintaining source code and testing code in a single git repository

我正在开发一个“通用”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可能包括一些特定的修改。 他们也会有点不同。

我的问题是:

什么是最佳的git工作流来维护make setup(Makefile和module.mk)和测试用例代码的开发?

是否可以使用单个git repo(可能带有分支)来完成?

如果我说得对,我认为分支是答案。 为什么?

如果“特定修改”很少,我理解可能是“源代码”版本和“测试”版本之间的许多共同代码。 在这种情况下,您有时需要在两个版本中更正/更新相同的代码,并且将在“源代码”和“测试”分支中合并的“修补程序”分支非常有用。

更新

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。

我最终使用分支,就像@Dherik和@spuder建议的那样。 为了解决测试驻留在git repo的单独目录中的代码的问题,我在测试supdir中创建了主要include源代码的文件Makefile和module.mk。

回购看起来特别像

./Makefile
./module.mk
test/Makefile
test/dir1/module.mk
test/dir2/module.mk

目录test只出现在“测试”分支上,文件Makefilemodule.mk在“test”中主要包括来自存储库根目录的Makefilemodule.mk

感谢您的投入!

Git分支非常便宜。

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

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

https://github.com/adaptivecomputing/torque

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM