When sending a diff (via `arc diff`), then paths in the diff are relative to working copy:
* working copy path: `projects/project-name`
* absolute path in repo: `projects/project-name/sub-path/index.php`
* path in diff: `sub-path/index.php`
When diff is created as a result of commit, which have `Differential Revision: ....` text in it, then paths are different:
* absolute path in repo: `projects/project-name/sub-path/index.php`
* path in diff (for fully imported repo): `projects/project-name/sub-path/index.php`
* path in diff (for sub-path only imported repo): `project-name/sub-path/index.php` (when sub-path is `projects/`)
If later we compare diff, that was last submitted via `arc diff` and one created automatically then we'll see mass remove and mass add, which isn't very helpful.
I know that Phabricator doesn't recognize branches/tags in SVN repositories, but at least what can be done is in https://secure.phabricator.com/diffusion/P/browse/master/src/applications/diffusion/query/rawdiff/DiffusionSvnRawDiffQuery.php;54f8aa8cd9f497c964b046d1de94704446a81469$23 line unify handling of repositories, that are fully and partially imported.