我在SCM中使用多种工具(颠覆,清晰,TFS,Perforce)和技术(大多数是.NET,Java)。在我开始工作之前,正常的业务顺序是创建一个受控分支。

我将受控分支定义为: - 一个单独的分支,其中包含开发人员无法访问的促进代码。只有一组构建工程师可以访问这一点。

受控构建:-build引擎从受控分支中获取代码并生产工件开发人员无法修改。

结果,作为受控构建过程的一部分,进入该分支已成为重要的一步。这可以用速度和错误创建同时的问题(自动化大部分会减轻)。

好处:自动代码锁(因为开发人员无法修改分支)分支名称可能会有所不同(其他团队不一定遵循标准化的做法,我们不一定能够施加所需的压力。)简便的方法来查找精确版本代码状态(即一个版本的受控分支中的最新代码是prod的)

缺点:与开发人员讨论问题时(这是自动化的,但有点混乱)时,速度匹配的开发型构建与受控构建相匹配。错误(在此过程中弄乱的另一个地方)是否可以通过使用变更者/更改/不变标签来充分处理安全/角色分离功能?

问题:

我应该建议从当前的受控分支策略中移动吗?我是否缺少其他好处?

有帮助吗?

解决方案

我不建议将分支作为促销机制,除非您打算从合并的标签中进行大量修改,以将其合并到所述分支机构。
一个 分支应该隔离开发工作 (即修改文件并提交新版本的文件)

与某种元数据相关的标签(清晰属性,SVN属性,git注释,...)应足以通过各种促销水平来监视上述标签(具有不可变的内容)的促销。

其他提示

我们使用受控分支(MAIN)作为我们的官方构建分支。开发人员仅通过合并开发部门的操作才允许访问该分支。此外,主分支代码已合并到BugFix分支,该分支专用于我们当前的软件版本和Prod分支,该分支机构以每次释放为基础标记该代码。

我认为,要为测试(以及最终)生产目的而建造的任何东西都不应具有偶然的开发人员访问权限,应由SCM经理或其他类型的图书馆员角色管理。

当我们确实在主要分支机构内有构建问题时,我们也坚信开发人员将这些错误固定在开发分支中,并使决议合并回我们的SCM策略中的主要内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top