On Mon, Feb 26, 2018 at 04:52:41PM -0800, Alexey Neyman wrote: > Why is the behavior different in these cases? Isn't that counter-intuitive > as well that the diff's output depends on the source revision of the copy?
I think these differences in behaviour boil down to side-effects of the implementation. On the server-side, all of diff/update/merge are driven by the same code, the "reporter" in libsvn_repos. So when trying to fix diff one needs to be careful not to break the other two. I've always had a lot of fun whenever I dove in there... In other words, it looks like a simple bug on the surface, but when you dig in to figure out what needs fixing it gets tricky rather quickly. Maybe diff needs a separate driver implementation on the server.