diff --git a/src/applications/differential/xaction/DifferentialRevisionUpdateTransaction.php b/src/applications/differential/xaction/DifferentialRevisionUpdateTransaction.php --- a/src/applications/differential/xaction/DifferentialRevisionUpdateTransaction.php +++ b/src/applications/differential/xaction/DifferentialRevisionUpdateTransaction.php @@ -137,7 +137,9 @@ continue; } - $is_attached = ($diff->getRevisionID() == $object->getID()); + $is_attached = + ($diff->getRevisionID()) && + ($diff->getRevisionID() == $object->getID()); if ($is_attached) { $is_active = ($diff_phid == $object->getActiveDiffPHID()); } else { diff --git a/src/applications/owners/storage/PhabricatorOwnersPackage.php b/src/applications/owners/storage/PhabricatorOwnersPackage.php --- a/src/applications/owners/storage/PhabricatorOwnersPackage.php +++ b/src/applications/owners/storage/PhabricatorOwnersPackage.php @@ -393,19 +393,22 @@ } public static function splitPath($path) { - $trailing_slash = preg_match('@/$@', $path) ? '/' : ''; - $path = trim($path, '/'); + $result = array( + '/', + ); + $parts = explode('/', $path); + $buffer = '/'; + foreach ($parts as $part) { + if (!strlen($part)) { + continue; + } - $result = array(); - while (count($parts)) { - $result[] = '/'.implode('/', $parts).$trailing_slash; - $trailing_slash = '/'; - array_pop($parts); + $buffer = $buffer.$part.'/'; + $result[] = $buffer; } - $result[] = '/'; - return array_reverse($result); + return $result; } public function attachPaths(array $paths) {