{"record":{"id":"9cf20c07a3386ef9","repo":"phacility/phabricator","slug":"this-repository-s-is-not-a-subversion-reposit","errorCode":null,"errorMessage":"This repository (\"%s\") is not a Subversion repository. Use \"%s\" to interact with this repository.","messagePattern":"This repository \\(\"(.+?)\"\\) is not a Subversion repository\\. Use \"(.+?)\" to interact with this repository\\.","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"src/applications/diffusion/ssh/DiffusionSubversionServeSSHWorkflow.php","lineNumber":457,"sourceCode":"\n    if (strncmp($uri, $internal, strlen($internal)) === 0) {\n      $uri = $external.substr($uri, strlen($internal));\n    }\n\n    return $uri;\n  }\n\n  private function normalizeSVNPath($path) {\n    // Subversion normalizes redundant slashes internally, so normalize them\n    // here as well to make sure things match up.\n    $path = preg_replace('(/+)', '/', $path);\n\n    return $path;\n  }\n\n  protected function raiseWrongVCSException(\n    PhabricatorRepository $repository) {\n    throw new Exception(\n      pht(\n        'This repository (\"%s\") is not a Subversion repository. Use \"%s\" to '.\n        'interact with this repository.',\n        $repository->getDisplayName(),\n        $repository->getVersionControlSystem()));\n  }\n\n}\n","sourceCodeStart":439,"sourceCodeEnd":466,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/diffusion/ssh/DiffusionSubversionServeSSHWorkflow.php#L439-L466","documentation":"raiseWrongVCSException() is the SVN workflow's mismatch message: loadRepositoryWithPath() with REPOSITORY_TYPE_SVN matched a repository, but it is Git or Mercurial. The text names the repository and its actual version control system so the caller knows which client to use instead.","triggerScenarios":"Running svn against a repository hosted as Git or Mercurial - usually because the svn+ssh URL path maps to that repository; or the repository was created with the wrong VCS type.","commonSituations":"Copy-pasting the wrong clone URI; repositories migrated from SVN to Git while old checkouts persist; an admin picked the wrong VCS when creating the repository.","solutions":["Interact with the repository using the client matching its real VCS (git/hg URIs from the repository page)","If the repository itself was miscreated, re-create it with the correct VCS type (VCS cannot be changed in place)","Retire stale client-side checkouts that still point at the old layout"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if (!$repository->isSVN()) {\n  // route to the git/hg workflow instead of svnserve\n}","typeGuard":"function isSVNRepository(PhabricatorRepository $repository) {\n  return $repository->isSVN();\n}","tryCatchPattern":null,"preventionTips":["Route by getVersionControlSystem() before selecting an SSH workflow","Keep one source of canonical URIs (the repository UI) for all tooling so clients never guess the VCS"],"tags":["phabricator","svn","vcs-mismatch","repository-configuration"],"backgroundTag":"vcs-type-mismatch","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}