I stumbled over a small issue when using an svn vcs with a svn root like: svn+ssh://sometoken@svn.example.com/. See stacktrace below.
Subversion finds in the URI an @ char and treats it as Revision marker. And the tells tha svn.example.com is not a parsable revision.
Here is the commit which added this checks, which are ok: https://github.com/phacility/phabricator/commit/c9a0ffa1cfaf171da8199f7fa79254e64ff6d0ae
The PhabricatorRepositoryDiscoveryEngine::verifySubversionRoot function generates the 'svn info' request.
I found a possible solution for this issue here: [how-to-escape-characters-in-subversion-managed-file-names](http://stackoverflow.com/questions/757435/how-to-escape-characters-in-subversion-managed-file-names)
"You need only append an @ sign to the end of the path'
I don't know if this is the only location where to fix this issue.
Stacktrace from the daemon.log:
```
[14-Jan-2015 10:17:10] [2015-01-14 10:17:10] EXCEPTION: (PhutilProxyException) Error while updating the "example" repository. {>} (CommandException) Command failed with error #255!
COMMAND
'/home/phabricator/phabricator/bin/repository' update -- 'example'
STDOUT
(empty)
STDERR
[2015-01-14 10:17:10] EXCEPTION: (CommandException) Command failed with error #1!
COMMAND
svn --non-interactive info --xml 'svn+ssh://xxxxx@svn.example.com'
STDOUT
<?xml version="1.0"?>
<info>
STDERR
svn: Try 'svn help' for more info
svn: Syntax error parsing revision 'svn.example.com'
at [<phutil>/src/future/exec/ExecFuture.php:397]
#0 ExecFuture::resolvex() called at [<phabricator>/src/applications/repository/storage/PhabricatorRepository.php:293]
#1 PhabricatorRepository::execxRemoteCommand(string, string) called at [<phabricator>/src/applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.php:220]
#2 PhabricatorRepositoryDiscoveryEngine::verifySubversionRoot(PhabricatorRepository) called at [<phabricator>/src/applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.php:148]
#3 PhabricatorRepositoryDiscoveryEngine::discoverSubversionCommits() called at [<phabricator>/src/applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.... (796 more bytes) ... at [<phutil>/src/future/exec/ExecFuture.php:397]
[14-Jan-2015 10:17:10] #0 ExecFuture::resolvex() called at [<phabricator>/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php:328]
[14-Jan-2015 10:17:10] #1 PhabricatorRepositoryPullLocalDaemon::resolveUpdateFuture(PhabricatorRepository, ExecFuture, integer) called at [<phabricator>/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php:198]
[14-Jan-2015 10:17:10] #2 PhabricatorRepositoryPullLocalDaemon::run() called at [<phutil>/src/daemon/PhutilDaemon.php:91]
[14-Jan-2015 10:17:10] #3 PhutilDaemon::execute() called at [<phutil>/scripts/daemon/exec/exec_daemon.php:111]
```
Possible Solution:
replace the
/src/applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.php
```
private function verifySubversionRoot(PhabricatorRepository $repository) {
- list($xml) = $repository->execxRemoteCommand(
- 'info --xml %s',
- $repository->getSubversionPathURI());
+
+ $subversionPathURI = $repository->getSubversionPathURI();
+
+ if (strpos($subversionPathURI, 'svn+ssh') !== false && strpos($subversionPathURI, '@') !== false) {
+ $subversionPathURI .= '@';
+ }
+
+ list($xml) = $repository->execxRemoteCommand('info --xml %s', $subversionPathURI);
```