On 21.04.2016 09:24, Stefan Sperling wrote:
> On Wed, Apr 20, 2016 at 10:19:56PM +0200, Bert Huijben wrote:
>> The path calculation here 100% assumes that the working copy is always a 
>> clean check out from ^/. This might be the case in our test suite, but in 
>> almost every normal user scenario this isn’t the case.
>>
>> You can’t just calculate a repository root relative path ( ^/… ) from 
>> dirents. You always need the repos_relpath from somewhere else.
>>
>> And once you start looking at switched files/directories, things get even 
>> harder.
>>
>>
>> Bert
>>
> I'm not sure what you mean. Perhaps you're lacking some additional
> context for this diff?
>
> What's happening here is that we show a message like:
>
>  delete X and copy ^/Y@Z here
>
> where X is a local conflicted path (taken from the local_abspath which is
> being resolved), Y is a repos-relpath stored in the conflict descriptor,
> and Z is a peg revision stored in the conflict descriptor.
>
> Assuming Y and Z were stored correctly when the conflict was created (the
> conflict resolver has no reason to assume otherwise), I don't see where
> this extrapolates a local path to a repostory path.
>
> Can you elaborate? Are you saying that's wrong to say "delete X" because
> X might not come from path ^/somewhere/X in the repository?

It is wrong to use conflict->local_abspath to construct the relative
URL. In general the local path bears no relation to the location in the
repository.

-- Brane


>> From: [email protected]
>> Sent: woensdag 20 april 2016 19:05
>> To: [email protected]
>> Subject: svn commit: r1740170 
>> -/subversion/trunk/subversion/libsvn_client/conflicts.c
>>
>> Author: stsp
>> Date: Wed Apr 20 17:05:04 2016
>> New Revision: 1740170
>>
>> URL: http://svn.apache.org/viewvc?rev=1740170&view=rev
>> Log:
>> * subversion/libsvn_client/conflicts.c
>>   (configure_option_merge_incoming_added_file_replace): Tweak this resolution
>>    option's description slightly.
>>
>> Modified:
>>     subversion/trunk/subversion/libsvn_client/conflicts.c
>>
>> Modified: subversion/trunk/subversion/libsvn_client/conflicts.c
>> URL: 
>> http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/conflicts.c?rev=1740170&r1=1740169&r2=1740170&view=diff
>> ==============================================================================
>> --- subversion/trunk/subversion/libsvn_client/conflicts.c (original)
>> +++ subversion/trunk/subversion/libsvn_client/conflicts.c Wed Apr 20 
>> 17:05:04 2016
>> @@ -4527,7 +4527,7 @@ configure_option_merge_incoming_added_fi
>>                                   conflict->local_abspath, scratch_pool,
>>                                   scratch_pool));
>>        option->description =
>> -        apr_psprintf(options->pool, _("delete '%s', copy '^/%s@%ld' here"),
>> +        apr_psprintf(options->pool, _("delete '%s' and copy '^/%s@%ld' 
>> here"),
>>                       svn_dirent_local_style(
>>                         svn_dirent_skip_ancestor(wcroot_abspath,
>>                                                  conflict->local_abspath),
>>
>>
>>

Reply via email to