You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Patrick Mayweg <ma...@qint.de> on 2005/01/06 16:31:18 UTC

Change of functionality in svn_client_checkout call

Hallo,
after the addition of the peg revisions, there are now 2 different 
checkout functions in svn_client, svn_client_checkout and 
svn_client_checkout2. But the compability function svn_client_checkout 
is not compatible to the svn 1.1.* version. If I want to checkout some 
delete directory from a previous revision, where it still existed, I 
receive the error "svn: File not found: revision 2, path '/A/D'". With 
svn 1.1.* this is possible. Is this change wanted or a mistake?
Regards,
Patrick

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Change of functionality in svn_client_checkout call

Posted by Patrick Mayweg <ma...@qint.de>.
Hi Ben,

Ben Collins-Sussman wrote:

>
> On Jan 6, 2005, at 11:48 AM, Greg Hudson wrote:
>
>> On Thu, 2005-01-06 at 12:39, Patrick Mayweg wrote:
>>
>>>> So, this is a desired change in that it reflects the new behavior of
>>>> "svn co -r2 <repos-url>/A/D".  Of course, since svn_client_checkout()
>>>> has no peg-rev parameter, it loses the functionality corresponding to
>>>> the new "svn co <repos-url>/A/D@2".
>>>
>>
>> (I should have written 1 where I wrote 2 here, sorry.)
>>
>>> What I do is equivalent to svn co -r1 <repos-url>/A/D where /A/D was
>>> deleted in revision 2. With svn 1.1.* you can checkout this path. With
>>> the current trunk you cannot check that out, because 
>>> svn_client_checkout
>>> looks for the /A/D in the HEAD revision. I think svn 1.1.* looked for
>>> /A/D in revision 1.
>>
>>
>> I understand.  On trunk, we have expanded the new peg-rev support to
>> cover all of the commands, whereas in 1.1 we only introduced it for a
>> subset of them, such as diff.
>>
>
> I swear I'm going to document the peg-rev stuff in the book this 
> weekend!  It's one thing to subtley change behaviors;  it's dangerous 
> to do it with no documentation.

That would be very helpfull. I see I have to add the peg-rev stuff to 
almost all the methods of the javahl binding. I would like to do that soon.
Patrick

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Change of functionality in svn_client_checkout call

Posted by Ben Collins-Sussman <su...@collab.net>.
On Jan 6, 2005, at 11:48 AM, Greg Hudson wrote:

> On Thu, 2005-01-06 at 12:39, Patrick Mayweg wrote:
>>> So, this is a desired change in that it reflects the new behavior of
>>> "svn co -r2 <repos-url>/A/D".  Of course, since svn_client_checkout()
>>> has no peg-rev parameter, it loses the functionality corresponding to
>>> the new "svn co <repos-url>/A/D@2".
>
> (I should have written 1 where I wrote 2 here, sorry.)
>
>> What I do is equivalent to svn co -r1 <repos-url>/A/D where /A/D was
>> deleted in revision 2. With svn 1.1.* you can checkout this path. With
>> the current trunk you cannot check that out, because 
>> svn_client_checkout
>> looks for the /A/D in the HEAD revision. I think svn 1.1.* looked for
>> /A/D in revision 1.
>
> I understand.  On trunk, we have expanded the new peg-rev support to
> cover all of the commands, whereas in 1.1 we only introduced it for a
> subset of them, such as diff.
>

I swear I'm going to document the peg-rev stuff in the book this 
weekend!  It's one thing to subtley change behaviors;  it's dangerous 
to do it with no documentation.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Change of functionality in svn_client_checkout call

Posted by Max Bowsher <ma...@ukf.net>.
Patrick Mayweg wrote:

> I would like to suggest to change svn_client_checkout to use the
> revision parameter as the peg_revision parameter to
> svn_client__checkout_internal. That would improve the compability.

I agree, in fact, I believe our compatibility rules say that we *must* 
maintain the behaviour.

I guess this means that we need to check for similar compat bugs in every 
pegged operation.

Max.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Change of functionality in svn_client_checkout call

Posted by Patrick Mayweg <ma...@qint.de>.
Hi Greg,

Greg Hudson wrote:

>On Thu, 2005-01-06 at 12:39, Patrick Mayweg wrote:
>  
>
>>>So, this is a desired change in that it reflects the new behavior of
>>>"svn co -r2 <repos-url>/A/D".  Of course, since svn_client_checkout()
>>>has no peg-rev parameter, it loses the functionality corresponding to
>>>the new "svn co <repos-url>/A/D@2".
>>>      
>>>
>
>(I should have written 1 where I wrote 2 here, sorry.)
>
>  
>
>>What I do is equivalent to svn co -r1 <repos-url>/A/D where /A/D was 
>>deleted in revision 2. With svn 1.1.* you can checkout this path. With 
>>the current trunk you cannot check that out, because svn_client_checkout 
>>looks for the /A/D in the HEAD revision. I think svn 1.1.* looked for 
>>/A/D in revision 1.
>>    
>>
>
>I understand.  On trunk, we have expanded the new peg-rev support to
>cover all of the commands, whereas in 1.1 we only introduced it for a
>subset of them, such as diff.
>
>  
>
I would like to suggest to change svn_client_checkout to use the 
revision parameter as the peg_revision parameter to 
svn_client__checkout_internal. That would improve the compability.
Patrick

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Change of functionality in svn_client_checkout call

Posted by Greg Hudson <gh...@MIT.EDU>.
On Thu, 2005-01-06 at 12:39, Patrick Mayweg wrote:
> >So, this is a desired change in that it reflects the new behavior of
> >"svn co -r2 <repos-url>/A/D".  Of course, since svn_client_checkout()
> >has no peg-rev parameter, it loses the functionality corresponding to
> >the new "svn co <repos-url>/A/D@2".

(I should have written 1 where I wrote 2 here, sorry.)

> What I do is equivalent to svn co -r1 <repos-url>/A/D where /A/D was 
> deleted in revision 2. With svn 1.1.* you can checkout this path. With 
> the current trunk you cannot check that out, because svn_client_checkout 
> looks for the /A/D in the HEAD revision. I think svn 1.1.* looked for 
> /A/D in revision 1.

I understand.  On trunk, we have expanded the new peg-rev support to
cover all of the commands, whereas in 1.1 we only introduced it for a
subset of them, such as diff.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Change of functionality in svn_client_checkout call

Posted by Patrick Mayweg <ma...@qint.de>.
Hi Greg,

Greg Hudson wrote:

>On Thu, 2005-01-06 at 11:31, Patrick Mayweg wrote:
>  
>
>>Hallo,
>>after the addition of the peg revisions, there are now 2 different 
>>checkout functions in svn_client, svn_client_checkout and 
>>svn_client_checkout2. But the compability function svn_client_checkout 
>>is not compatible to the svn 1.1.* version. If I want to checkout some 
>>delete directory from a previous revision, where it still existed, I 
>>receive the error "svn: File not found: revision 2, path '/A/D'". With 
>>svn 1.1.* this is possible. Is this change wanted or a mistake?
>>    
>>
>
>Philosophically speaking, there is sometimes a fine line between fixing
>a bug and incompatibly changing behavior.  For instance, if we were to
>fix the encoding of diff output, we might break a script which relies on
>the encoding being broken.
>
>The addition of peg-rev functionality straddles this line somewhat.  The
>lack of history tracing in the svn client was a pretty serious flaw, and
>we've already made the decision to correct this flaw by changing the
>behavior of existing specifications of operative-rev and path.
>
>So, this is a desired change in that it reflects the new behavior of
>"svn co -r2 <repos-url>/A/D".  Of course, since svn_client_checkout()
>has no peg-rev parameter, it loses the functionality corresponding to
>the new "svn co <repos-url>/A/D@2".
>
>  
>
What I do is equivalent to svn co -r1 <repos-url>/A/D where /A/D was 
deleted in revision 2. With svn 1.1.* you can checkout this path. With 
the current trunk you cannot check that out, because svn_client_checkout 
looks for the /A/D in the HEAD revision. I think svn 1.1.* looked for 
/A/D in revision 1.
Patrick

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Change of functionality in svn_client_checkout call

Posted by Greg Hudson <gh...@MIT.EDU>.
On Thu, 2005-01-06 at 11:31, Patrick Mayweg wrote:
> Hallo,
> after the addition of the peg revisions, there are now 2 different 
> checkout functions in svn_client, svn_client_checkout and 
> svn_client_checkout2. But the compability function svn_client_checkout 
> is not compatible to the svn 1.1.* version. If I want to checkout some 
> delete directory from a previous revision, where it still existed, I 
> receive the error "svn: File not found: revision 2, path '/A/D'". With 
> svn 1.1.* this is possible. Is this change wanted or a mistake?

Philosophically speaking, there is sometimes a fine line between fixing
a bug and incompatibly changing behavior.  For instance, if we were to
fix the encoding of diff output, we might break a script which relies on
the encoding being broken.

The addition of peg-rev functionality straddles this line somewhat.  The
lack of history tracing in the svn client was a pretty serious flaw, and
we've already made the decision to correct this flaw by changing the
behavior of existing specifications of operative-rev and path.

So, this is a desired change in that it reflects the new behavior of
"svn co -r2 <repos-url>/A/D".  Of course, since svn_client_checkout()
has no peg-rev parameter, it loses the functionality corresponding to
the new "svn co <repos-url>/A/D@2".


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org