Reputation: 8447
During code merge process, we faced the issue of code being overwritten or even deleted, so we are asking for suggestions.
dev1Client
, dev1Server
,..., dev6Client
, dev6Sever
.QA_Client
, QA_Server
, Release_Client
, Release_Server
.Steps we follow:
All developers commit work to their branches, and then they merge their changes to QA_Client
and QA_Server
.
QA Build is prepared from QA_Client
and QA_Server
.
Once it passes tests, admin creates a tag with release number and merges the code to Release_Client
and Release_Server
.
A couple of times is step 1 code was overwritten or deleted during the merge process. The main reason we have found that developers are not syncing their branches with the QA_Branches.
For example, Dev1 & Dev4 have merged code to QA*
branches and the rest of the developers have not synced their branches with the QA*
. After that Dev2 may try to merge his code to QA*
get some conflict warnings. He interprets those warnings incorrectly and overwrites some of the earlier changes made by Dev1 and Dev4.
Upvotes: 1
Views: 136
Reputation: 647
You have pointed out the root cause yourself:
The main reason we have found that developers are not syncing their branches with the QA_Branches.
Your team should have a strict policy of always bringing the personal dev*
branches up to date with the latest changes in QA*
branches before developers merge their new code into QA*
. The developers also need to understand what different merge conflict messages mean and how to solve them, SVN Book is an excellent reference.
In short, you cannot replace personal responsibility (or a lack of thereof) with tools. The policy can be enforced by making the guilty developer retroactively fix the broken merge ;)
Upvotes: 1