@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Give "Track Only" repository detail proper getters/setters

Summary: Depends on D19856. Ref T13222. See D19829. Make access to "Track Only" slightly cleaner and more consistent..

Test Plan: Set, edited, and removed "Track Only" settings for a repository. Saw sensible persistence and display behaviors.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13222

Differential Revision: https://secure.phabricator.com/D19857

+20 -27
+1 -3
src/applications/diffusion/editor/DiffusionRepositoryEditEngine.php
··· 212 212 ->setObject($object) 213 213 ->execute(); 214 214 215 - $track_value = $object->getDetail('branch-filter', array()); 216 - $track_value = array_keys($track_value); 217 - 215 + $track_value = $object->getTrackOnlyRules(); 218 216 $autoclose_value = $object->getAutocloseOnlyRules(); 219 217 220 218 $automation_instructions = pht(
+5 -3
src/applications/diffusion/management/DiffusionRepositoryBranchesManagementPanel.php
··· 23 23 24 24 $has_any = 25 25 $repository->getDetail('default-branch') || 26 - $repository->getDetail('branch-filter') || 26 + $repository->getTrackOnlyRules() || 27 27 $repository->getAutocloseOnlyRules(); 28 28 29 29 if ($has_any) { ··· 74 74 ->setViewer($viewer); 75 75 76 76 $default_branch = nonempty( 77 - $repository->getHumanReadableDetail('default-branch'), 77 + $repository->getDetail('default-branch'), 78 78 phutil_tag('em', array(), $repository->getDefaultBranch())); 79 79 $view->addProperty(pht('Default Branch'), $default_branch); 80 80 81 + $track_only_rules = $repository->getTrackOnlyRules(); 82 + $track_only_rules = implode(', ', $track_only_rules); 81 83 $track_only = nonempty( 82 - $repository->getHumanReadableDetail('branch-filter', array()), 84 + $track_only_rules, 83 85 phutil_tag('em', array(), pht('Track All Branches'))); 84 86 $view->addProperty(pht('Track Only'), $track_only); 85 87
+1 -1
src/applications/diffusion/management/DiffusionRepositorySubversionManagementPanel.php
··· 68 68 ->setViewer($viewer); 69 69 70 70 $default_branch = nonempty( 71 - $repository->getHumanReadableDetail('svn-subpath'), 71 + $repository->getDetail('svn-subpath'), 72 72 phutil_tag('em', array(), pht('Import Entire Repository'))); 73 73 $view->addProperty(pht('Import Only'), $default_branch); 74 74
+10 -13
src/applications/repository/storage/PhabricatorRepository.php
··· 239 239 return idx($this->details, $key, $default); 240 240 } 241 241 242 - public function getHumanReadableDetail($key, $default = null) { 243 - $value = $this->getDetail($key, $default); 244 - 245 - switch ($key) { 246 - case 'branch-filter': 247 - $value = array_keys($value); 248 - $value = implode(', ', $value); 249 - break; 250 - } 251 - 252 - return $value; 253 - } 254 - 255 242 public function setDetail($key, $value) { 256 243 $this->details[$key] = $value; 257 244 return $this; ··· 1208 1195 public function setAutocloseOnlyRules(array $rules) { 1209 1196 $rules = array_fill_keys($rules, true); 1210 1197 $this->setDetail('close-commits-filter', $rules); 1198 + return $this; 1199 + } 1200 + 1201 + public function getTrackOnlyRules() { 1202 + return array_keys($this->getDetail('branch-filter', array())); 1203 + } 1204 + 1205 + public function setTrackOnlyRules(array $rules) { 1206 + $rules = array_fill_keys($rules, true); 1207 + $this->setDetail('branch-filter', $rules); 1211 1208 return $this; 1212 1209 } 1213 1210
+1 -5
src/applications/repository/storage/__tests__/PhabricatorRepositoryTestCase.php
··· 37 37 $repo->shouldTrackBranch('imaginary'), 38 38 pht('Track all branches by default.')); 39 39 40 - $repo->setDetail( 41 - 'branch-filter', 42 - array( 43 - 'master' => true, 44 - )); 40 + $repo->setTrackOnlyRules(array('master')); 45 41 46 42 $this->assertTrue( 47 43 $repo->shouldTrackBranch('master'),
+2 -2
src/applications/repository/xaction/PhabricatorRepositoryTrackOnlyTransaction.php
··· 6 6 const TRANSACTIONTYPE = 'repo:track-only'; 7 7 8 8 public function generateOldValue($object) { 9 - return array_keys($object->getDetail('branch-filter', array())); 9 + return $object->getTrackOnlyRules(); 10 10 } 11 11 12 12 public function applyInternalEffects($object, $value) { 13 - $object->setDetail('branch-filter', array_fill_keys($value, true)); 13 + $object->setTrackOnlyRules($value); 14 14 } 15 15 16 16 public function getTitle() {