svn merge: "Target path does not exist"
For something I've done a hundred times before, I'm pulling my hair out. I have a release candidate branch for sub-project 'a' where we made some last minute changes. Now we've released, I need to bring those back into the trunk.
I cd to my trunk working copy, and then run:
$ svn merge https://svn.server.com/svn/branches/a/release
svn: Target path '/branches/a/release' does not exist
Wha...? The both the branch and the trunk copy most definitely exist. In fact, they are near identical. What could be missing?
Here is some more context:
$ pwd
~/working-copy/trunk/a
$ svn info
Path: .
URL: https://svn.server.com/svn/trunk/a
Repository Root: https://svn.server.com/svn
Repository UUID: 32d33e3d-8f82-497d-945e-c2c79703d92c
Revision: 5570
Node Kind: directory
Schedule: normal
Last Changed Author: me@mycompany.com
Last Changed Rev: 5560
Last Changed Date: 2011-04-22 17:41:34 -0700 (Fri, 22 Apr 2011)
$ svn info https://svn.server.com/svn/branches/a/release
Path: release
URL: https://svn.server.com/svn/branches/a/release
Repository Root: https://svn.server.com/svn
Repository UUID: 32d33e3d-8f82-497d-945e-c2c79703d92c
Revision: 5570
Node Kind: directory
Last Changed Author: me@checkpoints.com
Last Changed Rev: 5542
Last Changed Date: 2011-04-22 12:00:49 -0700 (Fri, 22 Apr 2011)
$ svn merge https://svn.server.com/svn/branches/a/release
svn: Target path '/branches/a/release' does not exist
$ svn ls https://svn.server.com/svn/branches/a/release
.svnignore
build/
build.xml
change_log.txt
docs/
libs/
release_procedure.txt
src/
$ svn merge https://svn.server.com/svn/branches/a/release .
svn: Target path '/branches/a/release' does not exist
$ cd ..
$ svn merge https://svn.server.com/svn/branches/a/release a
svn: Target path '/branches/a/release' does not exist
$ svn --verbose https://svn.server.com/svn/branches/a/release a
Subcommand 'merge' doesn't accept option '-v [--verbose]'
Type 'svn help merge' for usage.
$ svn --version
svn, version 1.6.15 (r1038135)
compiled Feb 26 2011, 21:56:07
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.or开发者_如何学Cg/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository access (RA) modules are available:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
I also tried to use --ignore-ancestry
as recommended here, but fail with conflicts attempting to reinsert the existing files.
The merge worked if I constrained my release numbers:
$ svn merge -r XXX:HEAD https://svn.server.com/svn/branches/a/release
where XXX
was the last revision number where I copied/merged from trunk to the branch.
精彩评论