Limits of svn:externals During Merge Operations
0 reputation · 17 Nov 2025, 04:53 UTC
Behavior of svn:externals During Merge
The svn:externals property enables a directory to reference another repository location, supporting modular project layouts. When a merge is performed, the operation updates only the target directory’s properties; the external target itself is not automatically updated. This is documented in the Subversion manual, yet the manual does not specify how to handle changes to the external’s source URL or revision during a merge, nor how to resolve conflicts that arise from such changes.
Nested externals add another layer of complexity: relative URLs are resolved against the repository root, but revision resolution rules differ between client and server implementations, and older clients may resolve relative URLs against the working copy root. These inconsistencies create uncertainty for users who rely on external references across branches.
Given this ambiguity, we need to clarify the expected behavior and available options.
- When the svn:externals property on a target directory changes during a merge, does the external target’s content remain unchanged, or is it considered a conflict that must be resolved manually?
- What is the recommended workflow for updating an external’s source URL or revision when merging branches that include that external?
- Is there a client‑side flag or configuration that can instruct Subversion to apply external updates as part of the merge process?