I'm a bit unclear about merging branches in SVN and was wondering if someone could explain...
project1
trunk
foo.c
bar.c
baz.c
branches
tags
project2
trunk
foo.c
quux.c
boing.c
branches
project1-offshoot
foo.c
bar.c
baz.c
boing.c
tags
Suppose we have the following situation. There's a "project1" in our svn repository. Bob starts a new project "project2" and starts working under the trunk. Then Charlie says "Wait a minute! That's sort of like project1!" so he tells Bob he'll create a branch for project2 called "project1-offshoot" (svn copy
from project1/trunk) and modify it appropriately to get ready for merging with project2.
What's the appropriate action for Bob and Charlie to take to merge project2/branches/project1-offshoot into project2/trunk?
Files "foo.c" and "boing.c" each have two independent histories (foo from project1/trunk -> project2/branches/project1-offshoot as well as from project2/trunk; boing from project2/trunk and from project2/branches/project1-offshoot). Can a file in SVN have two ancestors? Or are you forced to choose one as the ancestor, and then do a textual merge from another file without maintaining any link to the source of that file?