> -----Original Message-----
> From: s...@apache.org [mailto:s...@apache.org]
> Sent: donderdag 14 augustus 2014 12:56
> To: comm...@subversion.apache.org
> Subject: svn commit: r1617909 - in /subversion/trunk/subversion:
> include/svn_wc.h libsvn_wc/conflicts.c libsvn_wc/update_editor.c
> libsvn_wc/util.c svn/util.c
> 
> Author: stsp
> Date: Thu Aug 14 10:55:42 2014
> New Revision: 1617909
> 
> URL: http://svn.apache.org/r1617909
> Log:
> Record the update/switch target revision for missing tree conflicts
> victims in the tree conflict description so the revision can always
> be retrieved during conflict resolution.
> 
> For instance, 'svn info' might show:
> 
> Tree conflict: local file edit, incoming file delete or move upon update
>   Source  left: (file) ^/trunk/alpha@2
>   Source right: (none)
> 
> With this change, 'svn info' shows the target revision ("source right')
> of the update/switch which recorded the conflict, even if the node
> was missing:
> 
> Tree conflict: local file edit, incoming file delete or move upon update
>   Source  left: (file) ^/trunk/alpha@2
>   Source right: (none) @4
> 
> There is a slight API change involved which shouldn't affect compatibility.
> The semantics of svn_wc_conflict_version_create2() change such that the
> conflict victim's repos relpath is allowed to be NULL if the node kind
> is 'none'. Previously the API required a canonical path in all cases
> and would ASSERT otherwise, a contract which made it impossible to create
> conflict versions for nodes which don't exist. The provided revision
> number must still be valid in all cases, of course.

In all these cases you still have a really interesing path, to where you tried 
to switch/update the original path to. If you don't store that you don't know 
what you tried to switch/update to.

Why don't you store *that path* and the revision?

Note: I don't care about the 'svn' output... Feel free to not show it there, if 
that might make more sense.

But if I look at the tree conflict information through an API, that path that 
you tried to switch to is 100% essential information, while a revision is 
useless information without a repository path. That the node is not there 
(kind=none) still says me that the node is not there.

"I switched that working copy to r123" doesn't tell me anything, while the 
information "I switched that working copy to 
'^/branches/major-QQQ-refactoring@r123' tells me everything.

I wish the average user, asking for support knew that...

Even if that path does not exist, I can still chop of one component and use 
that information with the parent directory's path to perhaps retry the switch 
at a different revision... Or use it to merge some missing information in.

And a smart tree conflict resolver might even use more tricks than that.... 
which would be impossible without a path.

        Bert

Reply via email to