我在Git下有一个(大型)Fortran项目。有不同的活动分支,对应于正在开发的功能。我想找到一种方便的方法来维护每个分支的编译版本的代码。
代码当前使用Make编译,所有目标文件与二进制文件一起保存在单独的文件夹(如build_branch1)中。目录结构如下:
生成文件
./src
./build_branch1/objects
./build_branch1/bin
./build_branch2/objects
./build_branch2/bin
...
原则上,我可以像这样编译所有分支:
git checkout branch1
make --prefix = build_branch1
git checkout branch2
make --prefix = build_branch2
等...
Make将源(由Git新签出)的时间戳与build_branchN文件夹中的目标文件进行比较,并重新编译已更改的文件。问题是Git更改了branch1和branch2之间不同的所有源文件的时间戳,因此许多文件在不需要时会重新编译。由于代码需要很长时间才能编译(最多30分钟),这可能会带来很大的不便。
我想知道在这种情况下什么应该是最好的策略。我想在每次结账后更新时间戳,就像在这篇文章中一样:What's the equivalent of use-commit-times for git? 你会推荐什么?
答案 0 :(得分:3)
而不是modifying timestamp on each checkout,您可以使用在答案时不在的机制(包括mine):git notes
。
你可以:
想法是记录您需要的信息: