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), >> >> >>
