There were a number of places that were generating nonsense queries for both hosted and non-hosted subversion repositories.
Details
- Reviewers
epriestley - Group Reviewers
Blessed Reviewers - Commits
- Restricted Diffusion Commit
rP264bef58c49e: Various fixes for hosted and non-hosted subversion queries in Diffusion.
Attempted several activities in Diffusion with both a hosted and non-hosted subversion repository, including viewing various types of diffs and raw files.
Diff Detail
- Branch
- svn-fixes
- Lint
Lint Passed - Unit
No Test Coverage
Event Timeline
Note that changes to DiffusionSvnRawDiffQuery.php are speculative, as I couldn't find anything that actually called this.
See inline -- getSubversionPathURI() is intended to simplify this construction further, provided I implemented it correctly. These changes are correct conceptually, but I think they can be mechanically simpler.
(The root issue here is a base URI without a trailing /, which we used to require explicitly but no longer do under the theory that everything is using getSubversionPathURI(), although obviously that's not entirely true.)
src/applications/diffusion/conduit/ConduitAPI_diffusion_diffquery_Method.php | ||
---|---|---|
197 | You should be able to use a single %s, with: $repository->getSubversionPathURI($ref, $rev) ...in theory. |
Changes in DiffusionSvnRawDiffQuery.php remain speculative, as I don't know how to test it.
The easiest way to test the RawDiff stuff is by calling the method through the /conduit/ console. It works correctly for me with this patch applied:
{F90864}
These objects are created somewhat-dynamically by DiffusionRawDiffQuery, which is why it's difficult to identify how they're called. We're moving away from this older style of organization (since it was generally bad for a lot of reasons) but this particular piece of code still has the vestigial, hard-to-grep-for format.
I've added you (and your other account) to Blessed Committers, which gives you commit access:
- In Settings > SSH Public Keys here in the web interface, add an SSH public key.
- Align your repository's origin to the authoritative one on this server, if you're currently pulling from GitHub: git remote set-url origin ssh://dweller@secure.phabricator.com/diffusion/P/
- Contemplate great power / great responsibility / etc.
- git push
I can also just pull this if that's a pain to setup for the moment.
Thanks for fixing this!