diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 5c4cebef84..fc28cb30f0 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -262,6 +262,7 @@ phutil_register_library_map(array( 'DiffusionPathChangeQuery' => 'applications/diffusion/query/pathchange/base', 'DiffusionPathCompleteController' => 'applications/diffusion/controller/pathcomplete', 'DiffusionPathIDQuery' => 'applications/diffusion/query/pathid/base', + 'DiffusionPathQueryTestCase' => 'applications/diffusion/query/pathid/base/__tests__', 'DiffusionPathValidateController' => 'applications/diffusion/controller/pathvalidate', 'DiffusionRepositoryController' => 'applications/diffusion/controller/repository', 'DiffusionRepositoryPath' => 'applications/diffusion/data/repositorypath', @@ -918,6 +919,7 @@ phutil_register_library_map(array( 'DiffusionHomeController' => 'DiffusionController', 'DiffusionLastModifiedController' => 'DiffusionController', 'DiffusionPathCompleteController' => 'DiffusionController', + 'DiffusionPathQueryTestCase' => 'PhabricatorTestCase', 'DiffusionPathValidateController' => 'DiffusionController', 'DiffusionRepositoryController' => 'DiffusionController', 'DiffusionSvnBrowseQuery' => 'DiffusionBrowseQuery', diff --git a/src/applications/diffusion/query/browse/svn/DiffusionSvnBrowseQuery.php b/src/applications/diffusion/query/browse/svn/DiffusionSvnBrowseQuery.php index 4bc00f9650..2393e86fef 100644 --- a/src/applications/diffusion/query/browse/svn/DiffusionSvnBrowseQuery.php +++ b/src/applications/diffusion/query/browse/svn/DiffusionSvnBrowseQuery.php @@ -36,7 +36,7 @@ final class DiffusionSvnBrowseQuery extends DiffusionBrowseQuery { $conn_r = $repository->establishConnection('r'); - $parent_path = dirname($path); + $parent_path = DiffusionPathIDQuery::getParentPath($path); $path_query = new DiffusionPathIDQuery( array( $path, diff --git a/src/applications/diffusion/query/pathid/base/DiffusionPathIDQuery.php b/src/applications/diffusion/query/pathid/base/DiffusionPathIDQuery.php index ad3133e053..ae8208df92 100644 --- a/src/applications/diffusion/query/pathid/base/DiffusionPathIDQuery.php +++ b/src/applications/diffusion/query/pathid/base/DiffusionPathIDQuery.php @@ -53,4 +53,9 @@ final class DiffusionPathIDQuery { return '/'.trim($path, '/'); } + public static function getParentPath($path) { + $path = self::normalizePath($path); + return dirname($path); + } + } diff --git a/src/applications/diffusion/query/pathid/base/__tests__/DiffusionPathQueryTestCase.php b/src/applications/diffusion/query/pathid/base/__tests__/DiffusionPathQueryTestCase.php new file mode 100644 index 0000000000..5a3c0cbbcd --- /dev/null +++ b/src/applications/diffusion/query/pathid/base/__tests__/DiffusionPathQueryTestCase.php @@ -0,0 +1,37 @@ +assertEqual( + '/', + DiffusionPathIDQuery::getParentPath('/'), + 'Parent of /'); + $this->assertEqual( + '/', + DiffusionPathIDQuery::getParentPath('x.txt'), + 'Parent of x.txt'); + $this->assertEqual( + '/a', + DiffusionPathIDQuery::getParentPath('/a/b'), + 'Parent of /a/b'); + } + +} + diff --git a/src/applications/diffusion/query/pathid/base/__tests__/__init__.php b/src/applications/diffusion/query/pathid/base/__tests__/__init__.php new file mode 100644 index 0000000000..c088a54c59 --- /dev/null +++ b/src/applications/diffusion/query/pathid/base/__tests__/__init__.php @@ -0,0 +1,13 @@ +