##// END OF EJS Templates
statichttprepo: fix `httprangereader.read()` for py3...
statichttprepo: fix `httprangereader.read()` for py3 It looks like there were a bunch of problems, not all of them py3 related: 1) The signature of BinaryIO.read() is -1, not None 2) The `end` variable can't be bytes and interpolate into str with "%s" 3) The `end` variable can't be an int and interpolate into str with "%s" 4) The result slicing could be out of bounds if more is requested than returned I guess if somebody would have called `read(-1)` (either directly or because a wrapper defaults to that), it wouldn't have been handled correctly. The fact that it is a valid value meaning to read everything requires some additional changes later in the method around when it slices the byte string that was read, but that seems to have already been broken.

File last commit:

r52756:f4733654 default
r52792:e26a0856 default
Show More
stack.py
24 lines | 758 B | text/x-python | PythonLexer
Boris Feld
stack: add a new module for stack-related commands...
r37018 # stack.py - Mercurial functions for stack definition
#
Raphaël Gomès
contributor: change mentions of mpm to olivia...
r47575 # Copyright Olivia Mackall <olivia@selenic.com> and other
Boris Feld
stack: add a new module for stack-related commands...
r37018 #
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
Matt Harbison
typing: add `from __future__ import annotations` to most files...
r52756 from __future__ import annotations
Augie Fackler
style: run a patched black on a subset of mercurial...
r43345
Boris Feld
stack: add a new module for stack-related commands...
r37018 def getstack(repo, rev=None):
Boris Feld
stack: return a sorted smartrev by default...
r37022 """return a sorted smartrev of the stack containing either rev if it is
not None or the current working directory parent.
Boris Feld
stack: add a new module for stack-related commands...
r37018
The stack will always contain all drafts changesets which are ancestors to
the revision and are not merges.
"""
if rev is None:
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 rev = b'.'
Boris Feld
stack: add a new module for stack-related commands...
r37018
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 revspec = b'only(%s) and not public() and not ::merge()'
av6
stack: use repo.revs() instead of revsetlang.formatspec() + scmutil.revrange()...
r43230 revisions = repo.revs(revspec, rev)
Boris Feld
stack: return a sorted smartrev by default...
r37022 revisions.sort()
return revisions