gpt4 book ai didi

git - git : Branch, fork 中相同代码的两个变体,还是创建单独的存储库?

转载 作者:太空狗 更新时间:2023-10-29 13:47:17 24 4
gpt4 key购买 nike

我有以下两个(96 文件)代码变体,它们之间的唯一区别在括号中:

  1. DOUBLE-PRECIION(每个变量都定义为 REAL*8,每个数字都定义为 1234D+02)
  2. QUADRUPLE-PRECISION(每个变量都定义为 REAL*16,每个数字都定义为 1234Q+02)

如果我每次更改软件中的任何内容,我希望此更改在上述两种代码变体中保持一致。

在 Git(Hub) 中,我应该:

  1. 构建一个单独的存储库(我将如何轻松 merge 更改?),
  2. 建立一个不同的分支(但是当所有代码要 merge 时分支似乎是最好的),
  3. 建立一个分支(但这似乎是为那些不能推送到主分支的人准备的)?

下面是一些相关的问题,但不是我想要的。我已经写下了为什么我没有吞下他们的答案:

  1. maintain different versions of the code simultaneously using git : Tobu 的回答是“git cherry-pick 在很多情况下可能不起作用”
  2. managing multiple versions of a web application using git : 建议 git submodules 但有 reasons not to .
  3. Keeping track of source code variants : 建议使用 #define ,但是是否有 FORTRAN 等效项?
  4. How to track two version of a project in one GIT repository? : 建议为“通用”代码创建第 3 个分支,但我看不到超过 2 个的好处。我不需要在这里使用 git cherry-pick 吗?

最佳答案

自从我做任何 Fortran 以来已经有很长时间了但是如果你可以像在 C 中那样拥有基于参数化的宏,你最好的选择是拥有一个类似条件的宏

#define DECLARE_HIGH_PRECISION(Name, Val, Exp) \
#ifdef QUAD_PREC \
REAL*8 %Name% = %Val%Q%Exp% \
#else \
REAL*4 %Name% = %Val%D%Exp% \
#endif

将您的值声明并初始化为 DECLARE_HIGH_PRECISION(Fred, 23, -3) 您可能还需要一个不需要名称的内联值宏,以便能够执行诸如 Fred = Fred * HIGH_PRECISION(43, +6)

关于git - git : Branch, fork 中相同代码的两个变体,还是创建单独的存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18167284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com