A file which has been obstructed by changing it to a symbolic link
prevents
submitting changelists.
To repro, simply replace a file with a sym link of the same name, and
then try
to submit a changelist which does not include the obstructed file.
Reproduced with SVN 1.6.4, 1.6.5, and 1.6.6.
Here is an unannotated list of commands which can serve as a script to
repro the
problem (execute from within a pre-existing repo working copy):
touch a.txt b.txt c.txt d.txt
svn add a.txt b.txt c.txt d.txt
svn commit -m "Add a, b, c, d"
echo a >> a.txt
echo b >> b.txt
rm c.txt
ln -s d.txt c.txt
svn changelist cltest a.txt b.txt
svn commit --changelist cltest -m "test"
Here is an annotated step-by-step repro:
Start with a couple modified files (a.txt & b.txt in this case):
nick_at_nimble ~/test_repo $ ls -hal
total 24K
drwxr-xr-x 3 nick users 168 Sep 15 04:31 .
drwxr-xr-x 146 nick users 7.5K Sep 15 04:16 ..
drwxr-xr-x 6 nick users 216 Sep 15 04:31 .svn
-rw-r--r-- 1 nick users 4 Sep 15 04:24 a.txt
-rw-r--r-- 1 nick users 4 Sep 15 04:24 b.txt
-rw-r--r-- 1 nick users 2 Sep 15 04:31 c.txt
-rw-r--r-- 1 nick users 2 Sep 15 04:31 d.txt
nick_at_nimble ~/test_repo $ svn status
M b.txt
M a.txt
Obstruct a 3rd file (c.txt) by changing it to a symlink:
nick_at_nimble ~/test_repo $ rm c.txt
nick_at_nimble ~/test_repo $ ln -s d.txt c.txt
nick_at_nimble ~/test_repo $ ls -hal
total 20K
drwxr-xr-x 3 nick users 168 Sep 15 04:32 .
drwxr-xr-x 146 nick users 7.5K Sep 15 04:16 ..
drwxr-xr-x 6 nick users 216 Sep 15 04:31 .svn
-rw-r--r-- 1 nick users 4 Sep 15 04:24 a.txt
-rw-r--r-- 1 nick users 4 Sep 15 04:24 b.txt
lrwxrwxrwx 1 nick users 5 Sep 15 04:32 c.txt -> d.txt
-rw-r--r-- 1 nick users 2 Sep 15 04:31 d.txt
nick_at_nimble ~/test_repo $ svn status
M b.txt
~ c.txt
M a.txt
Place the modified files (a.txt & b.txt) in a changelist:
nick_at_nimble ~/test_repo $ svn cl cltest a.txt b.txt
Path 'a.txt' is now a member of changelist 'cltest'.
Path 'b.txt' is now a member of changelist 'cltest'.
nick_at_nimble ~/test_repo $ svn status
~ c.txt
--- Changelist 'cltest':
M b.txt
M a.txt
Attempt to commit the changelist:
nick_at_nimble ~/test_repo $ svn commit --changelist cltest
svn: Commit failed (details follow):
svn: Entry '/home/nick/test_repo/c.txt' has unexpectedly changed
special
status
This failure is unexpected, since the obstructed file is not in the
changelist
which is being committed.
>From the thread at
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2383349,
I've confirmed this works as expected if the obstruction is caused by
changing
the file to a directory. So I suspect this issue is due to obstructions
which
are caused by changing to a sym link.
Nick
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2424982
Please start new threads on the <users_at_subversion.apache.org> mailing list.
To subscribe to the new list, send an empty e-mail to <users-subscribe_at_subversion.apache.org>.
Received on 2009-11-27 23:22:59 CET