On Wed, 04 Oct 2006, Mark Phippard wrote:
> I am working with a Subclipse user that is getting the "Cannot replace
> directory from within" error message when doing a merge of changes created
> on a branch back to his trunk. When he runs a similar command using the
> command line it works. For example this:
> svn merge -r9941:HEAD url://host/svnroot/path /home/username/wc
> The user did some experimenting, and if he enters the command line like
> this, then it gets the same error as Subclipse
> svn merge url://host/svnroot/path_at_9941 \
> url://host/svnroot/path_at_HEAD /home/username/wc
> Based on the arguments we have in our JavaHL merge command, it is likely
> that the second command is closer to what we are probably executing.
> This is with 1.3 or 1.4.
> Now in this user's case, they just informed me that the branch was created
> in r9942 which was the original reason I gave for the error message. They
> should likely not be including this revision in the merge. Nonetheless,
> any arguments I make in this direction are undercut by the fact the
> command line when used in the first form above does not seem to have a
> problem with this.
> Does anyone have a good explanation as to why?
I'm guessing that the 3-way URL merge isn't taking into consideration
that both URLs are the same. Instead, it's probably trying to find
url://host/svnroot/path at r9941, a path which didn't come into
existance until r9942.
Assuming this is actually the case, perhaps 'merge' could be smarter
by detecting that both URLs are the same, and doing a trace back
through history from HEAD towards r9941. Then again, we might not
want to support this behavior -- even though it's more user-friendly,
it's also not strictly doing what the user requested, since
url://host/svnroot/path really didn't exist at r9941.
Received on Wed Oct 4 19:26:16 2006
- application/pgp-signature attachment: stored