protected function initializeFromAphrontRequestDictionary(array $data) { parent::initializeFromAphrontRequestDictionary($data); if (!strncmp($this->path, ':', 1)) { $this->path = substr($this->path, 1); $this->path = ltrim($this->path, '/'); } }
protected function initializeFromAphrontRequestDictionary(array $data) { parent::initializeFromAphrontRequestDictionary($data); if ($this->path === null) { $subpath = $this->repository->getDetail('svn-subpath'); if ($subpath) { $this->path = $subpath; } } if (!strncmp($this->path, ':', 1)) { $this->path = substr($this->path, 1); $this->path = ltrim($this->path, '/'); } }
protected function initializeFromAphrontRequestDictionary(array $data) { parent::initializeFromAphrontRequestDictionary($data); $path = $this->path; $parts = explode('/', $path); $branch = array_shift($parts); if ($branch != ':') { $this->branch = $this->decodeBranchName($branch); } foreach ($parts as $key => $part) { if ($part == '..') { unset($parts[$key]); } } $this->path = implode('/', $parts); }
protected function initializeFromAphrontRequestDictionary(array $data) { parent::initializeFromAphrontRequestDictionary($data); $path = $this->path; $parts = explode('/', $path); $branch = array_shift($parts); if ($branch != ':') { $this->branch = $this->decodeBranchName($branch); } foreach ($parts as $key => $part) { // Prevent any hyjinx since we're ultimately shipping this to the // filesystem under a lot of git workflows. if ($part == '..') { unset($parts[$key]); } } $this->path = implode('/', $parts); if ($this->repository) { $repository = $this->repository; // TODO: This is not terribly efficient and does not produce terribly // good error messages, but it seems better to put error handling code // here than to try to do it in every query. $branch = $this->getBranch(); // TODO: Here, particularly, we should give the user a specific error // message to indicate whether they've typed in some bogus branch and/or // followed a bad link, or misconfigured the default branch in the // Repository tool. list($this->stableCommitName) = $repository->execxLocalCommand('rev-parse --verify %s/%s', DiffusionBranchInformation::DEFAULT_GIT_REMOTE, $branch); if ($this->commit) { list($commit) = $repository->execxLocalCommand('rev-parse --verify %s', $this->commit); // Beyond verifying them, expand commit short forms to full 40-character // hashes. $this->commit = trim($commit); // If we have a commit, overwrite the branch commit with the more // specific commit. $this->stableCommitName = $this->commit; /* TODO: Unclear if this is actually a good idea or not; it breaks commit views at the very least. list($contains) = $repository->execxLocalCommand( 'branch --contains %s', $this->commit); $contains = array_filter(explode("\n", $contains)); $found = false; foreach ($contains as $containing_branch) { $containing_branch = trim($containing_branch, "* \n"); if ($containing_branch == $branch) { $found = true; break; } } if (!$found) { throw new Exception( "Commit does not exist on this branch!"); } */ } } }