Details
-
Improvement
-
Status: Open
-
Critical
-
Resolution: Unresolved
-
1.7.x
-
None
Description
Bug buddy: Stefan Sperling Prio P2 as it is a daily use problem when using svn:externals for code sharing Workaround: Performing separate merges for every svn:external Description: As svn:externals can be silently included into commits it is easily overseen that a commit includes externals at merging. So if these externals are not silently merged or at least warned while merging they will be overseen -> an great source for new bugs... The merge of svn:externals is not done automatically independent of if the folder at the merge target is an linked svn:externals folder or a real folder. Detailed Example: Imagine the following svn structure: svn://svn/test/main/trunc svn:external Propery: svn://svn/test/sub/trunc sub File: Mainfile.txt svn://svn/test/sub/trunc Project File: Subfile.txt Now create a branch and set the svn:external Propery: svn://svn/test/main/branch1 svn:external Propery: svn://svn/test/sub/branch1 sub File: Mainfile.txt svn://svn/test/sub/branch1 Project File: Subfile.txt On a Checkout of main Project this will result in the following file structures: mainTrunc | Mainfile.txt | sub | | Subfile.txt mainBranch | Mainfile.txt | sub | | Subfile.txt Now make changes at Mainfile.txt and Subfile.txt at trunc in one commit with version 123. To merge these changes to the branch you need: 1. Go to mainBranch folder an merge svn://svn/test/main/trunc version 123 2. Go to mainBranch/sub folder and merge svn://svn/test/sub/trunc version 123 All information required for the 2. merge of the svn:externals folder is already known by the svn client. It knows there are files at the svn://svn/test/sub/trunc folder included at these commit and it knows these files are loyally stored at mainBranch/sub folder. So these 2. merge should be done automatically if the --include-externals option is given.
Original issue reported by hessi9