@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.

Display object shortcuts in search results

Summary: Search for D1234 currently finds everything but revision 1234.

Test Plan:
Search for:

- rX
- rX1234 under SVN
- rXabcd under GIT
- D1234
- T4

Reviewers: epriestley

Reviewed By: epriestley

CC: aran

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

vrana 021c1b5a be3c1795

+39
+35
src/applications/search/controller/search/PhabricatorSearchController.php
··· 230 230 231 231 $results = $pager->sliceResults($results); 232 232 233 + if (!$request->getInt('page')) { 234 + $jump = null; 235 + $query_str = $query->getQuery(); 236 + $match = null; 237 + if (preg_match('/^r([A-Z]+)(\S*)$/', $query_str, $match)) { 238 + $repository = id(new PhabricatorRepository()) 239 + ->loadOneWhere('callsign = %s', $match[1]); 240 + if ($match[2] == '') { 241 + $jump = $repository; 242 + } elseif ($repository) { 243 + $jump = id(new PhabricatorRepositoryCommit())->loadOneWhere( 244 + 'repositoryID = %d AND commitIdentifier = %s', 245 + $repository->getID(), 246 + $match[2]); 247 + if (!$jump) { 248 + try { 249 + $jump = id(new PhabricatorRepositoryCommit())->loadOneWhere( 250 + 'repositoryID = %d AND commitIdentifier LIKE %>', 251 + $repository->getID(), 252 + $match[2]); 253 + } catch (AphrontQueryCountException $ex) { 254 + // Ambiguous, no jump. 255 + } 256 + } 257 + } 258 + } elseif (preg_match('/^d(\d+)$/i', $query_str, $match)) { 259 + $jump = id(new DifferentialRevision())->load($match[1]); 260 + } elseif (preg_match('/^t(\d+)$/i', $query_str, $match)) { 261 + $jump = id(new ManiphestTask())->load($match[1]); 262 + } 263 + if ($jump) { 264 + array_unshift($results, $jump->getPHID()); 265 + } 266 + } 267 + 233 268 if ($results) { 234 269 235 270 $loader = new PhabricatorObjectHandleData($results);
+4
src/applications/search/controller/search/__init__.php
··· 8 8 9 9 phutil_require_module('phabricator', 'aphront/response/404'); 10 10 phutil_require_module('phabricator', 'aphront/response/redirect'); 11 + phutil_require_module('phabricator', 'applications/differential/storage/revision'); 12 + phutil_require_module('phabricator', 'applications/maniphest/storage/task'); 11 13 phutil_require_module('phabricator', 'applications/people/storage/preferences'); 12 14 phutil_require_module('phabricator', 'applications/phid/constants'); 13 15 phutil_require_module('phabricator', 'applications/phid/handle/data'); 16 + phutil_require_module('phabricator', 'applications/repository/storage/commit'); 17 + phutil_require_module('phabricator', 'applications/repository/storage/repository'); 14 18 phutil_require_module('phabricator', 'applications/search/constants/scope'); 15 19 phutil_require_module('phabricator', 'applications/search/controller/base'); 16 20 phutil_require_module('phabricator', 'applications/search/engine/jumpnav');