--- a/.hgsigs Tue Dec 03 17:17:57 2019 -0800
+++ b/.hgsigs Thu Dec 05 11:15:19 2019 -0500
@@ -187,3 +187,4 @@
181e52f2b62f4768aa0d988936c929dc7c4a41a0 0 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
--- a/.hgtags Tue Dec 03 17:17:57 2019 -0800
+++ b/.hgtags Thu Dec 05 11:15:19 2019 -0500
@@ -200,3 +200,4 @@
181e52f2b62f4768aa0d988936c929dc7c4a41a0 5.1.2
59338f9561099de77c684c00f76507f11e46ebe8 5.2rc0
ca3dca416f8d5863ca6f5a4a6a6bb835dcd5feeb 5.2
+a50fecefa691c9b72a99e49aa6fe9dd13943c2bf 5.2.1
--- a/hgext/githelp.py Tue Dec 03 17:17:57 2019 -0800
+++ b/hgext/githelp.py Thu Dec 05 11:15:19 2019 -0500
@@ -115,7 +115,7 @@
args = list([convert(x) for x in args])
opts = dict(
[
- (k, convert(v)) if isinstance(v, str) else (k, v)
+ (k, convert(v)) if isinstance(v, bytes) else (k, v)
for k, v in pycompat.iteritems(opts)
]
)
--- a/hgext/histedit.py Tue Dec 03 17:17:57 2019 -0800
+++ b/hgext/histedit.py Thu Dec 05 11:15:19 2019 -0500
@@ -2603,7 +2603,7 @@
def stripwrapper(orig, ui, repo, nodelist, *args, **kwargs):
- if isinstance(nodelist, str):
+ if isinstance(nodelist, bytes):
nodelist = [nodelist]
state = histeditstate(repo)
if state.inprogress():
--- a/hgext/win32mbcs.py Tue Dec 03 17:17:57 2019 -0800
+++ b/hgext/win32mbcs.py Thu Dec 05 11:15:19 2019 -0500
@@ -77,7 +77,7 @@
def decode(arg):
- if isinstance(arg, str):
+ if isinstance(arg, bytes):
uarg = arg.decode(_encoding)
if arg == uarg.encode(_encoding):
return uarg
--- a/mercurial/hgweb/common.py Tue Dec 03 17:17:57 2019 -0800
+++ b/mercurial/hgweb/common.py Thu Dec 05 11:15:19 2019 -0500
@@ -191,7 +191,7 @@
return
fpath = os.path.join(*fname.split(b'/'))
- if isinstance(directory, str):
+ if isinstance(directory, bytes):
directory = [directory]
for d in directory:
path = os.path.join(d, fpath)
--- a/mercurial/hgweb/hgwebdir_mod.py Tue Dec 03 17:17:57 2019 -0800
+++ b/mercurial/hgweb/hgwebdir_mod.py Thu Dec 05 11:15:19 2019 -0500
@@ -413,7 +413,7 @@
static = self.ui.config(b"web", b"static", untrusted=False)
if not static:
tp = self.templatepath or templater.templatepaths()
- if isinstance(tp, str):
+ if isinstance(tp, bytes):
tp = [tp]
static = [os.path.join(p, b'static') for p in tp]
--- a/mercurial/hgweb/webcommands.py Tue Dec 03 17:17:57 2019 -0800
+++ b/mercurial/hgweb/webcommands.py Thu Dec 05 11:15:19 2019 -0500
@@ -1321,7 +1321,7 @@
static = web.config(b"web", b"static", untrusted=False)
if not static:
tp = web.templatepath or templater.templatepaths()
- if isinstance(tp, str):
+ if isinstance(tp, bytes):
tp = [tp]
static = [os.path.join(p, b'static') for p in tp]
--- a/mercurial/hgweb/webutil.py Tue Dec 03 17:17:57 2019 -0800
+++ b/mercurial/hgweb/webutil.py Thu Dec 05 11:15:19 2019 -0500
@@ -873,7 +873,7 @@
raise error.ParseError(_(b'not displayable without template'))
def show(self, context, mapping):
- return self.join(context, b'')
+ return self.join(context, mapping, b'')
def tobool(self, context, mapping):
return bool(self._vars)
--- a/mercurial/logcmdutil.py Tue Dec 03 17:17:57 2019 -0800
+++ b/mercurial/logcmdutil.py Thu Dec 05 11:15:19 2019 -0500
@@ -945,6 +945,8 @@
fctx = wctx.filectx(fname)
for fctx, linerange in dagop.blockancestors(fctx, fromline, toline):
rev = fctx.introrev()
+ if rev is None:
+ rev = wdirrev
if rev not in userrevs:
continue
linerangesbyrev.setdefault(rev, {}).setdefault(
@@ -955,7 +957,7 @@
return hunks
def hunksfilter(ctx):
- fctxlineranges = linerangesbyrev.get(ctx.rev())
+ fctxlineranges = linerangesbyrev.get(scmutil.intrev(ctx))
if fctxlineranges is None:
return nofilterhunksfn
@@ -975,7 +977,7 @@
return filterfn
def filematcher(ctx):
- files = list(linerangesbyrev.get(ctx.rev(), []))
+ files = list(linerangesbyrev.get(scmutil.intrev(ctx), []))
return scmutil.matchfiles(repo, files)
revs = sorted(linerangesbyrev, reverse=True)
--- a/mercurial/pvec.py Tue Dec 03 17:17:57 2019 -0800
+++ b/mercurial/pvec.py Thu Dec 05 11:15:19 2019 -0500
@@ -183,7 +183,7 @@
class pvec(object):
def __init__(self, hashorctx):
- if isinstance(hashorctx, str):
+ if isinstance(hashorctx, bytes):
self._bs = hashorctx
self._depth, self._vec = _split(util.b85decode(hashorctx))
else:
--- a/mercurial/repair.py Tue Dec 03 17:17:57 2019 -0800
+++ b/mercurial/repair.py Thu Dec 05 11:15:19 2019 -0500
@@ -131,7 +131,7 @@
cl = repo.changelog
# TODO handle undo of merge sets
- if isinstance(nodelist, str):
+ if isinstance(nodelist, bytes):
nodelist = [nodelist]
striplist = [cl.rev(node) for node in nodelist]
striprev = min(striplist)
--- a/mercurial/scmwindows.py Tue Dec 03 17:17:57 2019 -0800
+++ b/mercurial/scmwindows.py Thu Dec 05 11:15:19 2019 -0500
@@ -38,7 +38,7 @@
value = util.lookupreg(
b'SOFTWARE\\Mercurial', None, winreg.HKEY_LOCAL_MACHINE
)
- if not isinstance(value, str) or not value:
+ if not isinstance(value, bytes) or not value:
return rcpath
value = util.localpath(value)
for p in value.split(pycompat.ospathsep):
--- a/tests/test-githelp.t Tue Dec 03 17:17:57 2019 -0800
+++ b/tests/test-githelp.t Thu Dec 05 11:15:19 2019 -0500
@@ -264,6 +264,10 @@
$ hg githelp -- git commit --reuse-message deadbeef
hg commit -M deadbeef
+githelp for reuse message using HEAD
+ $ hg githelp -- git commit --reuse-message HEAD~
+ hg commit -M .~1
+
githelp for apply with no options
$ hg githelp -- apply
hg import --no-commit
--- a/tests/test-log-linerange.t Tue Dec 03 17:17:57 2019 -0800
+++ b/tests/test-log-linerange.t Thu Dec 05 11:15:19 2019 -0500
@@ -868,6 +868,131 @@
+4
+Uncommitted changes with a rename
+
+ $ hg mv baz bazn
+ $ hg log -f -L bazn,5:7
+ changeset: 9:6af29c3a778f
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: foo -> dir/baz; 1-1+
+
+ changeset: 5:cfdf972b3971
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: foo: 3 -> 3+ and 11+ -> 11-; bar: a -> a+
+
+ changeset: 4:eaec41c1a0c9
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: 11 -> 11+; leading space before "1"
+
+ changeset: 2:63a884426fd0
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: 2 -> 2+; added bar
+
+ changeset: 0:5ae1f82b9a00
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: init
+
+
+Uncommitted changes in requested line range
+
+ $ sed 's/2/ /' bazn > bazn.new
+ $ mv bazn.new bazn
+ $ hg diff
+ diff --git a/dir/baz b/dir/bazn
+ rename from dir/baz
+ rename to dir/bazn
+ --- a/dir/baz
+ +++ b/dir/bazn
+ @@ -3,7 +3,7 @@
+ 0
+ 0
+ 1+
+ -2+
+ + +
+ 3+
+ 4
+ 5
+ $ hg log -f -L bazn,5:7
+ changeset: 9:6af29c3a778f
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: foo -> dir/baz; 1-1+
+
+ changeset: 5:cfdf972b3971
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: foo: 3 -> 3+ and 11+ -> 11-; bar: a -> a+
+
+ changeset: 4:eaec41c1a0c9
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: 11 -> 11+; leading space before "1"
+
+ changeset: 2:63a884426fd0
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: 2 -> 2+; added bar
+
+ changeset: 0:5ae1f82b9a00
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: init
+
+
+Uncommitted changes in line-range + wdir()
+
+ $ hg log -r 'wdir()' -f -L bazn,5:7 --limit 2 -p
+ changeset: 2147483647:ffffffffffff
+ parent: 9:6af29c3a778f
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+
+ diff --git a/dir/baz b/dir/bazn
+ copy from dir/baz
+ copy to dir/bazn
+ --- a/dir/baz
+ +++ b/dir/bazn
+ @@ -3,7 +3,7 @@
+ 0
+ 0
+ 1+
+ -2+
+ + +
+ 3+
+ 4
+ 5
+
+ changeset: 9:6af29c3a778f
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: foo -> dir/baz; 1-1+
+
+ diff --git a/foo b/dir/baz
+ copy from foo
+ copy to dir/baz
+ --- a/foo
+ +++ b/dir/baz
+ @@ -2,7 +2,7 @@
+ 0
+ 0
+ 0
+ - 1
+ + 1+
+ 2+
+ 3+
+ 4
+
+
+ $ hg revert -a -C -q
+
Copies.
$ hg copy baz bbaz
--- a/tests/test-merge-tools.t Tue Dec 03 17:17:57 2019 -0800
+++ b/tests/test-merge-tools.t Thu Dec 05 11:15:19 2019 -0500
@@ -72,7 +72,7 @@
override $PATH to ensure hgmerge not visible; use $PYTHON in case we're
running from a devel copy, not a temp installation
- $ PATH="$BINDIR:/usr/sbin" "$PYTHON" "$BINDIR"/hg merge -r 2
+ $ PATH="/usr/sbin" "$PYTHON" "$BINDIR"/hg merge -r 2
merging f
warning: conflicts while merging f! (edit, then use 'hg resolve --mark')
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
@@ -121,7 +121,7 @@
$ echo "echo fail" > false
$ hg up -qC 1
- $ PATH="`pwd`:$BINDIR:/usr/sbin" "$PYTHON" "$BINDIR"/hg merge -r 2
+ $ PATH="`pwd`:/usr/sbin" "$PYTHON" "$BINDIR"/hg merge -r 2
merging f
warning: conflicts while merging f! (edit, then use 'hg resolve --mark')
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
@@ -135,7 +135,7 @@
$ mkdir false
$ hg up -qC 1
- $ PATH="`pwd`:$BINDIR:/usr/sbin" "$PYTHON" "$BINDIR"/hg merge -r 2
+ $ PATH="`pwd`:/usr/sbin" "$PYTHON" "$BINDIR"/hg merge -r 2
merging f
warning: conflicts while merging f! (edit, then use 'hg resolve --mark')
0 files updated, 0 files merged, 0 files removed, 1 files unresolved