Reproduction recipe:
#!/bin/sh -x
# Create the repo and set an environment variable to refer to it.
svnadmin create repo
R=file://`pwd`/repo
# Checkout the working copy and cd to it.
svn co $R wc
cd wc
# Create two directories that act as lines of development/branches
svn mkdir devel branch
svn commit --message 'setup'
# In devel create a directory and commit
cd devel
mkdir foo
echo 'bar' > foo/bar
echo 'baz' > foo/baz
svn add foo
svn commit --message 'add foo'
# In the branch merge the foo dir/files and commit.
cd ../branch
svn merge -r 1:2 $R/devel
# info shows copy from url and copyfrom rev
svn info -R foo
svn commit --message 'Merge r2'
# now the url and rev go away
svn info -R foo
# In devel delete foo and commit
cd ../devel
svn rm foo
svn commit --message 'delete foo'
# Now put foo back.
mkdir foo
echo 'bar2' > foo/bar
echo 'baz2' > foo/baz
svn add foo
svn commit --message 'readd foo'
# On branch merge the delete and readd of the dir.
# This will fail saying the revisions don't match.
cd ../branch
# no copy from url
svn info -R foo
svn merge -r 2:5 $R/devel
# now it's back.
svn info -R foo
# revert
svn revert -R .
# oops they're still there
svn info -R foo
The output of the last two commands is:
+ svn revert -R .
Reverted 'foo'
Reverted 'foo/bar'
Reverted 'foo/baz'
+ svn info -R foo
Path: foo
URL: file:///home/breser/ts/revert-history/repo/branch/foo
Revision: 3
Node Kind: directory
Schedule: normal
Copied From URL: file:///home/breser/ts/revert-history/repo/devel/foo
Copied From Rev: 5
Last Changed Author: breser
Last Changed Rev: 3
Last Changed Date: 2004-11-30 22:31:31 -0800 (Tue, 30 Nov 2004)
Path: foo/bar
Name: bar
URL: file:///home/breser/ts/revert-history/repo/branch/foo/bar
Repository UUID: 4b80400e-28ea-0310-a2c0-85baae8dfe07
Revision: 0
Node Kind: file
Schedule: normal
Copied From URL: file:///home/breser/ts/revert-history/repo/devel/foo/bar
Copied From Rev: 5
Last Changed Author: breser
Last Changed Rev: 5
Last Changed Date: 2004-11-30 22:31:33 -0800 (Tue, 30 Nov 2004)
Text Last Updated: 2004-11-30 22:31:34 -0800 (Tue, 30 Nov 2004)
Properties Last Updated: 2004-11-30 22:31:34 -0800 (Tue, 30 Nov 2004)
Checksum: 042967ff088f7f436015fbebdcad1f28
Path: foo/baz
Name: baz
URL: file:///home/breser/ts/revert-history/repo/branch/foo/baz
Repository UUID: 4b80400e-28ea-0310-a2c0-85baae8dfe07
Revision: 0
Node Kind: file
Schedule: normal
Copied From URL: file:///home/breser/ts/revert-history/repo/devel/foo/baz
Copied From Rev: 5
Last Changed Author: breser
Last Changed Rev: 5
Last Changed Date: 2004-11-30 22:31:33 -0800 (Tue, 30 Nov 2004)
Text Last Updated: 2004-11-30 22:31:34 -0800 (Tue, 30 Nov 2004)
Properties Last Updated: 2004-11-30 22:31:34 -0800 (Tue, 30 Nov 2004)
Checksum: 4225f9aabf86392293e45e330d8c0036
You'll also note that the files revision is set to 0 after the revert.
Currently the only way to see this issue is with the merge command as above.
But if we support copies over files that are scheduled for deletion this will
show there as well.