Rand Random
Rand Random

Reputation: 7440

Subversion - why does it try to resolve a tree conflict in a new branch?

I have the following branches setup

\branches
   \Foo
   \Bar
\trunk

In branches\Foo I have a commit which renames all files (approximatly 3,000 files) with a common prefix for the files. eg. old MainWindow.xaml.cs new BrandMainWindow.xaml.cs

We noticed a performance issue while merging branches\Bar into branches\Foo because it tries to resolve the tree-confilict when branches\Bar had a change on the renamed file.

It needs to merge the change to the new location.

We struggled through this performance issue, first merge took over 24 hours.

branches\Bar is now obsolete since all changes were merged, all tree conflicts solved.

branches\Foo now has everything, every rename, every change.

Today we noticed when User A renames something in branches\Foo, not the prefix, but a regular rename to better match the meaning of the file/class. eg. old BrandMainWindow.xaml.cs new BrandAccountingWindow.xaml.cs while User B edits the file, this causes a tree conflict and the merge again tries to resolve it.

Our issue now is, in order to resolve the tree conflict it analyzes the changes of the previous mentioned large commit (prefix - 3,000 files) and we are again hitting a performance issue. ~30 minutes per file.

We tried to "re-branch" the branches\Foo to branches\New in hope that it will realize, that is a new branch where all file renames have already been merged, analyzed and what not, and every tree conflict resolve has no reason to look further back than the creation of this branch.

Is there a way to make svn stop looking at this commit, to resolve a tree conflit?

enter image description here

Revision r2113 is the commit with batch rename, which btw did NOT rename the *.sln file but it still looks at it.

Upvotes: 1

Views: 128

Answers (0)

Related Questions