You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Florin Avram <fl...@sync.ro> on 2013/04/04 11:57:36 UTC

Wrong state for SWITCHED items

Hi,

Two things I've noticed:

1) svn status switched.txt   => file reported as switched

svn delete --keep-local switched.txt
svn status switched.txt      => the file is reported as DELETED, but not 
as SWITCHED anymore (although "svn info" indicates the correct URL from 
the branch)

2) Also, why can I delete a switched file, but I cannot delete a 
switched directory?!
cd wcRootDir
svn delete --keep-local switchedDirectory   => svn: E155005: No 
write-lock in 'D:\path\to\wcRootDir'

Thanks,
Florin

Re: Wrong state for SWITCHED items

Posted by Florin Avram <fl...@sync.ro>.
Hi,

Thank you for your prompt reply.

The exact behavior (just tested on my own):
SVN 1.6:
switched file
     - delete: works;
     - status: reported correctly (D + S);
     - commit: works (removes item from the branch URL, not from the parent directory URL);

switched directory
     - delete: works;
     - status: reported wrong if directly on the switched directory ("svn status switchedDir" reports as D only), but works fine if requested on parent dir ("svn status ." reports "switchedDir" as D + S);
     - commit: works fine;


SVN 1.7:
switched file
     - delete: works;
     - status: loses S state, only D reported (both if "svn status" on file or on parent);
     - commit: same as SVN 1.6 for file;

switched directory
     - delete:not working (previously mentioned error);

I don't know how things work for SVN 1.8, since I do not test it until officially available.

At this point, I assume it would be safer to not allow delete on switched items (especially if the switched status is lost) since the user might not be aware that commits something to another repository location.
But, this will prevent a user from replacing the switched item (delete + add).

Best Regards,
Florin



On 04.04.2013 15:19, Bert Huijben wrote:
>
>> -----Original Message-----
>> From: MARTIN PHILIP [mailto:codematters@ntlworld.com] On Behalf Of
>> Philip Martin
>> Sent: donderdag 4 april 2013 12:42
>> To: Florin Avram
>> Cc: users@subversion.apache.org
>> Subject: Re: Wrong state for SWITCHED items
>>
>> Florin Avram <fl...@sync.ro> writes:
>>
>>> Two things I've noticed:
>>>
>>> 1) svn status switched.txt   => file reported as switched
>>>
>>> svn delete --keep-local switched.txt
>>> svn status switched.txt => the file is reported as DELETED, but not as
>>> SWITCHED anymore (although "svn info" indicates the correct URL from
>>> the branch)
>> I think that's a bug.  In particular while info shows the switched URL
>> commit will delete the unswitched URL.  Combining switch with delete is
>> always a problem, for example this old bug:
>> http://subversion.tigris.org/issues/show_bug.cgi?id=1906
>>
>>> 2) Also, why can I delete a switched file, but I cannot delete a
>>> switched directory?!
>>> cd wcRootDir
>>> svn delete --keep-local switchedDirectory => svn: E155005: No
>>> write-lock in 'D:\path\to\wcRootDir'
>> That's a bug as well.  Preventing the delete of a switched node may be a
>> good idea but the error message should be better.
> This error is caused by our 'anchor' rules. A switched directory doesn't use
> its parent directory for many operations. (For a file it must always use the
> directory). In this case we obtain the lock for the to be deleted node only,
> while we delete a child from its ancestor.
>
> Is this 1.6 or 1.7?
>
> 	Bert

RE: Wrong state for SWITCHED items

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: MARTIN PHILIP [mailto:codematters@ntlworld.com] On Behalf Of
> Philip Martin
> Sent: donderdag 4 april 2013 12:42
> To: Florin Avram
> Cc: users@subversion.apache.org
> Subject: Re: Wrong state for SWITCHED items
> 
> Florin Avram <fl...@sync.ro> writes:
> 
> > Two things I've noticed:
> >
> > 1) svn status switched.txt   => file reported as switched
> >
> > svn delete --keep-local switched.txt
> > svn status switched.txt => the file is reported as DELETED, but not as
> > SWITCHED anymore (although "svn info" indicates the correct URL from
> > the branch)
> 
> I think that's a bug.  In particular while info shows the switched URL
> commit will delete the unswitched URL.  Combining switch with delete is
> always a problem, for example this old bug:
> http://subversion.tigris.org/issues/show_bug.cgi?id=1906
> 
> > 2) Also, why can I delete a switched file, but I cannot delete a
> > switched directory?!
> > cd wcRootDir
> > svn delete --keep-local switchedDirectory => svn: E155005: No
> > write-lock in 'D:\path\to\wcRootDir'
> 
> That's a bug as well.  Preventing the delete of a switched node may be a
> good idea but the error message should be better.

This error is caused by our 'anchor' rules. A switched directory doesn't use
its parent directory for many operations. (For a file it must always use the
directory). In this case we obtain the lock for the to be deleted node only,
while we delete a child from its ancestor.

Is this 1.6 or 1.7?

	Bert 


Re: Wrong state for SWITCHED items

Posted by Philip Martin <ph...@codematters.co.uk>.
Philip Martin <ph...@wandisco.com> writes:

> I think that's a bug.  In particular while info shows the switched URL
> commit will delete the unswitched URL.

The exact behaviour depends on the client version. I've raised
http://subversion.tigris.org/issues/show_bug.cgi?id=4345

-- 
Philip

Re: Wrong state for SWITCHED items

Posted by Philip Martin <ph...@wandisco.com>.
Florin Avram <fl...@sync.ro> writes:

> Two things I've noticed:
>
> 1) svn status switched.txt   => file reported as switched
>
> svn delete --keep-local switched.txt
> svn status switched.txt => the file is reported as DELETED, but not as
> SWITCHED anymore (although "svn info" indicates the correct URL from
> the branch)

I think that's a bug.  In particular while info shows the switched URL
commit will delete the unswitched URL.  Combining switch with delete is
always a problem, for example this old bug:
http://subversion.tigris.org/issues/show_bug.cgi?id=1906

> 2) Also, why can I delete a switched file, but I cannot delete a
> switched directory?!
> cd wcRootDir
> svn delete --keep-local switchedDirectory => svn: E155005: No
> write-lock in 'D:\path\to\wcRootDir'

That's a bug as well.  Preventing the delete of a switched node may be a
good idea but the error message should be better.

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download