Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 软件版本控制中的分支管理_Version Control_Branch - Fatal编程技术网

Version control 软件版本控制中的分支管理

Version control 软件版本控制中的分支管理,version-control,branch,Version Control,Branch,我在一个类似平台的软件代码库上工作。这些平台在硬件和某些软件功能上有所不同,但大部分软件是常见的。在版本控制系统中管理这样一个软件项目的最佳方法是什么?如果我基于每个平台创建多个分支,那么我必须确保对每个适用的分支进行多个提交。如何维护这些分支机构?我如何遵守“单一真理来源”的哲学?分支不是主要用于bug、特性开发等,最终合并到主线吗 重新安排项目,使您的通用代码位于一个目录(或一组文件)中,平台特定的代码位于其自己的文件/目录中。换句话说,在单个代码库中对该代码进行逻辑分离 分支机构将很快陷入

我在一个类似平台的软件代码库上工作。这些平台在硬件和某些软件功能上有所不同,但大部分软件是常见的。在版本控制系统中管理这样一个软件项目的最佳方法是什么?如果我基于每个平台创建多个分支,那么我必须确保对每个适用的分支进行多个提交。如何维护这些分支机构?我如何遵守“单一真理来源”的哲学?分支不是主要用于bug、特性开发等,最终合并到主线吗

重新安排项目,使您的通用代码位于一个目录(或一组文件)中,平台特定的代码位于其自己的文件/目录中。换句话说,在单个代码库中对该代码进行逻辑分离


分支机构将很快陷入疯狂状态,从一开始就不是实现这种分离的好方法。

谢谢您的回复。是的,但是特定于平台的代码块与通用代码是不可分割的。公共代码中有#ifdef,在某些地方与公共代码纠缠在一起。因此,文件/目录分离是不可能的。我理解这种疯狂,我想找到一种更好的方法来管理这种混乱。管理混乱的更好方法是重构你的代码,这样它就不会混杂在一起。一次的痛苦和一生的痛苦。嗯,这是双向的。如果特定于平台的内容是确保给定的数据类型在多个平台上具有一定的位宽度,那么它应该位于同一位置。如果给定的例程在除2-3行以外的所有行中都相同,则它应该在同一文件中。如果您必须以完全不同的方式获取信息(例如,在windows上获取用户凭据与在Unix上获取用户凭据),那么“特定于平台的文件”选项更有意义。在这两种情况下,您都不想分支——因为这会使修复常见代码错误变得更加困难。我希望避免分支。我的理想目标是,除了默认主干之外,只有一个dev分支。一旦功能准备好装运,在测试之后,我将把它合并到主干中。主干将具有功能级别的原子签入。我陷入了“如果没有坏,就不要修理”的两难境地。我同意花一些时间重构代码从长远来看是有益的。我们不会面临未提交、部分功能、维护等问题。