On Feb 7, 2020, at 02:44, Stefan Sperling <s...@elego.de> wrote:
> 
> On Thu, Feb 06, 2020 at 03:37:10PM -0500, Daniel Dickison wrote:
>> Strangely, the conflict goes away if you flip the order of steps 2 and 3,
>> or commit the merge from step 4 first.
> 
> I would say it is working as designed, but the design has its flaws.
> 
> As you have found out, the basic problem is that unlike when developers
> work on the same branch, SVN does not enforce an 'svn update' style
> operation when merges and commits interleave.
> 
> This is indeed a problem but it is not easy to fix in SVN itself.
> If this happens to your team a lot you might want to let your developers
> know about the issue and show them how to work around it.

Thanks for the detailed info and quick response. This is good to know that it’s 
a fundamental design issue that’s unlikely to be fixed in SVN itself.

As far as I know, it has only happened for us with a single developer merging 
between trunk and a branch, and accidentally interleaving the commits. We’ve 
already put in tooling to block that particular scenario in our wrapper 
scripts, so hopefully that mostly prevents this from occurring in the wild.


> An easy way to work around it is the following, which essentially
> simulates the missing 'svn update' style step. After a merge, and
> before committing this merge, if the other branch has new changes
> which were not yet merged, merge those changes as follows to "catch up":
> 
>       svn merge -r0:HEAD ^/the/other/branch

I did not know about this method to force a sync merge. I have a feeling this 
will come in handy!

Reply via email to