Page MenuHomePhorge

D25872.1740120395.diff
No OneTemporary

D25872.1740120395.diff

diff --git a/src/work/ArcanistWorkEngine.php b/src/work/ArcanistWorkEngine.php
--- a/src/work/ArcanistWorkEngine.php
+++ b/src/work/ArcanistWorkEngine.php
@@ -197,7 +197,8 @@
$task_symbol,
ArcanistSymbolRef::HARDPOINT_OBJECT);
- $task_ref = $task_symbol->getObject();
+ $task_ref = $task_symbol->getObject();
+
if (!$task_ref) {
throw new PhutilArgumentUsageException(
pht(
@@ -205,11 +206,31 @@
$symbol));
}
- throw new Exception(pht('TODO: Implement this workflow.'));
+ $task_name = $task_ref->getName();
+ // TODO: check mercurial and subversion. This is just git
+ $pattern = '#^[./]|\.\.|@{|[/.]$|^@$|[~^:\x00-\x20\x7F?*[\\\\]#';
+ $branch_name = preg_replace($pattern, '-', $task_name);
+ $branch_name = trim($branch_name, '-');
+ $branch_name = strtolower($branch_name);
+ $branch_name = $task_ref->getMonogram().'-'.$branch_name;
+ // keep length to GitHub max
+ $branch_name = rtrim(substr($branch_name, 0, 244), '-');
+ // below should work unless in detached HEAD state??
+ $start = id($this->getRepositoryAPI())->getBranchName();
+ if (!$start) {
+ // test detached HEAD??
+ $start = id($this->getRepositoryAPI())->getWorkingCopyRevision();
+ }
+
+ $this->newMarker($branch_name, $start);
- $this->loadHardpoints(
+ return id(new ArcanistMarkerRef())
+ ->setName($branch_name)
+ ->setMarkerType(ArcanistMarkerRef::TYPE_BRANCH);
+ /* $this->loadHardpoints(
$task_ref,
ArcanistTaskRef::HARDPOINT_REVISIONREFS);
+ */
}
}

File Metadata

Mime Type
text/plain
Expires
Fri, Feb 21, 06:46 (21 h, 21 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1169305
Default Alt Text
D25872.1740120395.diff (1 KB)

Event Timeline