0

我正在开发一个“通用”制作设置,以便在处理我的项目时使用。该设置由一个主 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(可能带有分支)来完成吗?

4

3 回答 3

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

并合并到主人:

git checkout master
git merge hotfix_whatever

4 - 合并后删除分支:

git branch -d hotfix_whatever

通过这种工作周期,您可以毫无问题地保持 2 个分支同步和更新。每次需要更正时,打开一个新分支,进行修改,然后合并到 master 和 testing_code。

于 2013-06-04T01:22:05.127 回答
1

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

特别是,回购看起来像

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

目录test仅存在于“测试”分支和文件中Makefilemodule.mk“测试”中的 's 主要包括Makefilemodule.mk来自存储库根目录。

感谢您的投入!

于 2013-06-16T23:58:28.097 回答
0

Git 分支非常便宜。

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

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

https://github.com/adaptivecomputing/torque

于 2013-06-04T05:19:04.020 回答