Skip to main content

Planning changes

This page lists best practices that will help you decrease the likelihood of real, contradicting-change conflicts and help make their resolution easier.

Plan collaboration to minimize overlap

Especially for large changes, you should plan collaboration between users in a way that minimizes contradicting-change conflicts. If multiple people are not simultaneously working on the same parts of the same files, you won’t run into conflicts.

Frequently sync feature branches with trunk

You can make conflict resolution much easier and more manageable if you regularly perform sync merges, to synchronize the feature branch that you are working on with the trunk.

Refactor on trunk or on a short-lived branch

In general, if you are using the Subversion repository for software development, you should be aware that renaming files, directories and classes may introduce contradicting-change conflicts (typically, tree conflicts) upon merging. Especially if you have many collaborators and many active feature branches.

If a refactoring is necessary that is not directly related to the feature that you are implementing, it makes sense not to mix the refactoring with your work on the feature. Do the refactoring on a dedicated short-lived refactoring branch that you soon merge into the trunk. This way, other developers can sync your refactoring changes into their feature branches.