Hello,

I've encountered a problem whilst using SVN and believe that it may be a bug. 
I've checked in the issue tracker and can't find anything similar so I just 
wanted to check with you that this is not intended behaviour and/or already 
reported/fixed.
I encountered problems when trying to merge changes to files contained within a 
directory with a dollar sign ($) in the name. The svn merge command fails and 
returns a 'Skipped Missing Target' error message. I tried to create the 
simplest reproduction recipe that I could and it is attached below 
(svncommands). I copied and pasted straight from PuTTY and then broke it up and 
added a few comments with # markers. The problem occurs at the bottom of the 
file.

I've run it on a couple of our linux servers and the same problem happens on 
both. I don't know much about subversion and so can't give you many details of 
the setup but I've copied and pasted the info from running svn -version into 
the two server attachments below.
I'm told by a colleague that they both run repository format 3, we have made no 
private modifications to Subversion and he doesn't think we run Berkely DB but 
isn't sure.

If you have any questions I will do my best to answer them.

Thanks,
Ben
[apache@testsvn1 ] ~> svn --version
svn, version 1.5.6 (r36142)
   compiled Feb 26 2009, 22:41:36

Copyright (C) 2000-2008 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
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
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - handles 'http' scheme
  - handles 'https' scheme

[apache@edinsvn3 ] ~> svn --version
svn, version 1.6.13 (r1002816)
   compiled Oct  4 2010, 17:34:17

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
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.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - handles 'http' scheme
  - handles 'https' scheme
login as: apache
apache@testsvn's password:
Last login: Wed Aug 10 16:40:28 2011 from pc3993.datcon.co.uk


# 1. Create a directory to work in and a repository
[apache@testsvn1 ] ~> mkdir mydir
[apache@testsvn1 ] ~> mkdir mydir/all
[apache@testsvn1 ] ~> mkdir mydir/trunkco
[apache@testsvn1 ] ~> mkdir mydir/branchco
[apache@testsvn1 ] ~> mkdir mydir/repos
[apache@testsvn1 ] ~> svnadmin create /svn/mydir/repos/project

# 2. Check out a working copy of the repository
[apache@testsvn1 ] ~> cd mydir/all
[apache@testsvn1 ] ~/mydir/all> svn checkout file:///svn/mydir/repos/project
Checked out revision 0.

# 3. Add trunk and branch folders to the working copy of the repository and add
folder ‘dollar$folder’in trunk then create an example file within this folder
[apache@testsvn1 ] ~/mydir/all> mkdir project/branches
[apache@testsvn1 ] ~/mydir/all> mkdir project/branches/mybranch
[apache@testsvn1 ] ~/mydir/all> mkdir project/trunk
[apache@testsvn1 ] ~/mydir/all> mkdir project/trunk/dollar\$folder
[apache@testsvn1 ] ~/mydir/all> touch project/trunk/dollar\$folder/example.txt

# 4. Commit the changes of the repository
[apache@testsvn1 ] ~/mydir/all> cd ~/mydir
[apache@testsvn1 ] ~/mydir> svn add all/project/branches
A         all/project/branches
A         all/project/branches/mybranch
[apache@testsvn1 ] ~/mydir> svn add all/project/trunk
A         all/project/trunk
A         all/project/trunk/dollar$folder
A         all/project/trunk/dollar$folder/example.txt
[apache@testsvn1 ] ~/mydir> svn commit -m "added branch and trunk folders" 
all/project
Adding         all/project/branches
Adding         all/project/branches/mybranch
Adding         all/project/trunk
Adding         all/project/trunk/dollar$folder
Adding         all/project/trunk/dollar$folder/example.txt
Transmitting file data .
Committed revision 1.

# 5. Create a branch of the trunk
[apache@testsvn1 ] ~/mydir> svn copy -m "create a branch" 
file:///svn/mydir/repos/project/trunk 
file:///svn/mydir/repos/project/branches/mybranch

Committed revision 2.

# 6. Checkout the branch into the working directory
[apache@testsvn1 ] ~/mydir> cd branchco
[apache@testsvn1 ] ~/mydir/branchco> svn checkout 
file:///svn/mydir/repos/project/branches/mybranch
A    mybranch/trunk
A    mybranch/trunk/dollar$folder
A    mybranch/trunk/dollar$folder/example.txt
Checked out revision 2.

# 7. Checkout trunk to the working directory, modify the file
# within ‘dollar$folder’ and commit the changes to the repository
[apache@testsvn1 ] ~/mydir/branchco> cd ~/mydir/trunkco
[apache@testsvn1 ] ~/mydir/trunkco> svn checkout 
file:///svn/mydir/repos/project/trunk
A    trunk/dollar$folder
A    trunk/dollar$folder/example.txt
Checked out revision 2.
[apache@testsvn1 ] ~/mydir/trunkco> cd trunk/dollar\$folder
[apache@testsvn1 ] ~/mydir/trunkco/trunk/dollar$folder> vi example.txt  # add 
some text to the file using vi
[apache@testsvn1 ] ~/mydir/trunkco/trunk/dollar$folder> svn commit -m "added 
text to example file" ~/mydir/trunkco/trunk
Sending        dollar$folder/example.txt
Transmitting file data .
Committed revision 3.

# 8. Try and merge the changes of the trunk into the checked out branch
[apache@testsvn1 ] ~/mydir/trunkco/trunk/dollar$folder> cd 
~/mydir/branchco/mybranch
[apache@testsvn1 ] ~/mydir/branchco/mybranch> svn merge 
file:///svn/mydir/repos/project/trunk
Skipped missing target: 'dollar$folder/example.txt' # ERROR!
Skipped missing target: 'dollar$folder' # ERROR!
[apache@testsvn1 ] ~/mydir/branchco/mybranch>

Reply via email to