Re: Moved file resolution fails

"Sands, Daniel N. via users" <[email protected]>
Newsgroups gmane.comp.version-control.subversion.user
Message-ID <SA9PR09MB5309C50958EB56CB2F84B464DB422@SA9PR09MB5309.namprd09.prod.outlook.com>
> As far as I'm aware this is all client-side behavior - nothing to do with the server. Resource move/rename
> has always been recorded as a _Delete_ of the original path and a _Copy_ (Add) from the previous path
> revision. It could be I'm missing something here, also.

As of 1.8, it now knows if an add or delete was due to a move.  For example, on my RHEL8 system that has 1.10, a move will look like this in status:

D        foo/bar
          > moved to baz/bar
A        baz/bar
          > moved from foo/bar

If I use this tree to update from even the 1.7 server, conflict resolution can find the change in the trunk to foo/bar/example.c and rewrite it to
baz/bar/example.c.  The conflict resolution gives me the option to (u)pdate the destination of the change.

However, if I check out my local branch from 1.7, the above 'moved' information is lost.  And in that case, conflict resolution fails.  There is a
published paper that 1.8+ clients implement in resolving the new path in the absence of the 'moved' information.  It involves a heuristic where
1) the delete and the add must happen in the same checkin
2) the adds will be searched for some kind of common ancestry that can be used to match the add to the delete

But whatever was implemented, the tree conflict search does not seem to find its common ancestry.  In addition, the example.c file modification
record is lost, so after resolving the tree conflict there is still an incomplete merge even though it has the merge info recorded.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.