[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Cannot submit a changelist while obstructed item exists

From: Nick <nospam_at_codesniffer.com>
Date: Fri, 27 Nov 2009 17:21:44 -0500

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

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.