svn - SVN 合并 - 如何防止代码删除/覆盖错误
问题描述
在代码合并过程中,我们遇到了代码被覆盖甚至删除的问题,所以我们正在寻求建议。
- 我们是一个由六名开发人员组成的团队,在两个不同的办公室使用 Tortoise SVN。
- 我们有 12 个个人分支,每个开发人员 2 个:
dev1Client
,dev1Server
,...,dev6Client
,dev6Sever
. - 我们有共享分支
QA_Client
,QA_Server
,Release_Client
,Release_Server
.
我们遵循的步骤:
所有开发人员都将工作提交到他们的分支,然后将他们的更改合并到
QA_Client
和QA_Server
.QA Build 由
QA_Client
和准备QA_Server
。一旦通过测试,管理员就会创建一个带有版本号的标签,并将代码合并到
Release_Client
和Release_Server
.
有几次是第 1 步代码在合并过程中被覆盖或删除。我们发现开发人员没有将他们的分支与 QA_Branches 同步的主要原因。
例如,Dev1 和 Dev4 已将代码合并到QA*
分支,而其余开发人员尚未将其分支与QA*
. 之后,Dev2 可能会尝试合并他的代码以QA*
获得一些冲突警告。他错误地解释了这些警告,并覆盖了 Dev1 和 Dev4 之前所做的一些更改。
解决方案
您自己指出了根本原因:
我们发现开发人员没有将他们的分支与 QA_Branches 同步的主要原因。
dev*
在开发人员QA*
将新代码合并到QA*
. 开发人员还需要了解不同的合并冲突消息的含义以及如何解决它们,SVN Book是一个很好的参考。
简而言之,你不能用工具代替个人责任(或缺乏责任)。可以通过让有罪的开发人员追溯修复损坏的合并来执行该策略;)
推荐阅读
- ios - 使用全局变量和常量是一种好习惯吗?(斯威夫特 5)
- android - 华为推送套件:令牌在华为手机上返回为空
- docker - 无法通过 docker 中的 ssh 连接到 Corda 节点
- jquery - 如何用正确的 jquery 3.x 代码替换 thise .live 函数代码?
- javascript - 离子:在离子菜单中隐藏背景
- clickhouse - Clickhouse 中的 AggregateFunction 与 simpleAggregateFunction
- python - (又一个)'ImportError:没有名为 my_module 的模块'
- sql - 我可以创建一个 SQL 数据库架构,而不是使用主键,而是为每个场景创建新表吗?它的缺点是什么?
- javascript - 如何在 d3.js 工具提示中换行?
- flutter - Flutter 中的 Algolia 手动自动完成