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.