D3146: context: handle stringified ints in revsymbol()
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Sun Apr 8 13:04:57 EDT 2018
martinvonz updated this revision to Diff 7884.
martinvonz edited the summary of this revision.
martinvonz retitled this revision from "context: move handling of stringified ints to revsymbol (API)" to "context: handle stringified ints in revsymbol()".
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D3146?vs=7757&id=7884
REVISION DETAIL
https://phab.mercurial-scm.org/D3146
AFFECTED FILES
mercurial/scmutil.py
CHANGE DETAILS
diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py
--- a/mercurial/scmutil.py
+++ b/mercurial/scmutil.py
@@ -457,7 +457,26 @@
"repo[symbol]?" % (symbol, type(symbol)))
raise error.ProgrammingError(msg)
try:
+ if symbol in ('.', 'tip', 'null'):
+ return repo[symbol]
+
+ try:
+ r = int(symbol)
+ if '%d' % r != symbol:
+ raise ValueError
+ l = len(repo.changelog)
+ if r < 0:
+ r += l
+ if r < 0 or r >= l and r != wdirrev:
+ raise ValueError
+ return repo[r]
+ except error.FilteredIndexError:
+ raise
+ except (ValueError, OverflowError, IndexError):
+ pass
+
return repo[symbol]
+
except (error.FilteredIndexError, error.FilteredLookupError,
error.FilteredRepoLookupError):
raise _filterederror(repo, symbol)
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list