On Tue, 2004-21-12 at 23:10 -0500, Joe wrote:
> Chapter 4 of the SVN book doesn't seem to cover what I think is a common
> occurrence: branching back to the trunk a file added in a branch. The
> section discusses mostly the use of "svn merge", but that doesn't seem
> to allow such an operation. I assume the right command is to use "svn
> copy" to propagate the addition (it seems obvious, but maybe not to a
> I also have a more complicated scenario. In the branch, I added a new
> file by branching it from an existing file in the branch and modifying
> it prior to committing. For example, svn copy foo.php bar.php and edit
> bar.php prior to svn commit. Now I want to merge bar.php into the trunk.
Interesting it looks like you branched in the same directory of the url
but with a different file name. I'm not sure why, but that's ok.
Usually a branch from /trunk/ is copied to /branch/ using the same file
names but different "paths" or URL's in the repository. But if you have
a base PHP template and you want to start from there on a new file this
is perfectly fine.
> One option would be to copy foo.php to bar.php in the trunk and then use
> svn merge to attempt to apply the changes made in the branch (don't know
> if this works). The second option would be to svn copy bar.php directly
I don't think there is any need to "copy" the file back. Try this using
your svn copy command above:
svn merge foo.c@HEAD bar.c@HEAD ./foo.c
I think that should do it. See `svn help merge` example number 2.
I tested it and it "worked for me".
> from the version in the branch. In the former case, the ancestry of the
> trunk bar.php would remain within the trunk, with changes merged from
> the branch. In the latter case, the ancestry of the trunk bar.php would be
> bar.php (trunk) <- bar.php (branch) <- foo.php (branch) <- foo.php (trunk)
Is this equivalent to what you have above?
/trunk/bar.php <- /branch/bar.php <- /branch/foo.php <- /trunk/foo.php
I'm not sure why you want to change the name, but that's up to you.
> Is there any advantage to doing this one way or the other? Presumably,
> foo.php and bar.php will lead separate lives in the future, but since
> they still share some (redundant code) it's possible that a change in
> one file may have to be replicated to the other three versions.
What are the 3 versions again? I got lost along the way.
> Incidentally, is there an "error messages explained" somewhere? When I
> was trying some of the merge commands I got a "svn: Cannot replace a
> directory from within". I did a Google search but none of the results
> was very elucidating.
I think this link is relevant to your problem.
Software Engineering IV,
PGP Public Key: http://www.nesser.org/pgp-key/
12:08:50 up 1 day, 14 min, 4 users, load average: 0.08, 0.02, 0.01
Received on Wed Dec 22 18:40:06 2004