--- a/hgext3rd/evolve/compat.py Tue Aug 06 15:06:27 2019 +0200
+++ b/hgext3rd/evolve/compat.py Tue Aug 06 15:06:38 2019 +0200
@@ -62,20 +62,20 @@
# Evolution renaming compat
TROUBLES = {
- r'ORPHAN': 'orphan',
- r'CONTENTDIVERGENT': 'content-divergent',
- r'PHASEDIVERGENT': 'phase-divergent',
+ r'ORPHAN': b'orphan',
+ r'CONTENTDIVERGENT': b'content-divergent',
+ r'PHASEDIVERGENT': b'phase-divergent',
}
if util.safehasattr(uimod.ui, 'makeprogress'):
- def progress(ui, topic, pos, item="", unit="", total=None):
+ def progress(ui, topic, pos, item=b"", unit=b"", total=None):
progress = ui.makeprogress(topic, unit, total)
if pos is not None:
progress.update(pos, item=item)
else:
progress.complete()
else:
- def progress(ui, topic, pos, item="", unit="", total=None):
+ def progress(ui, topic, pos, item=b"", unit=b"", total=None):
ui.progress(topic, pos, item, unit, total)
# XXX: Better detection of property cache
@@ -92,26 +92,26 @@
if r"copysource" in varnames:
mctx = context.memfilectx(repo, ctx, fctx.path(), fctx.data(),
- islink='l' in flags,
- isexec='x' in flags,
+ islink=b'l' in flags,
+ isexec=b'x' in flags,
copysource=copied.get(path))
# compat with hg <- 4.9
elif varnames[2] == r"changectx":
mctx = context.memfilectx(repo, ctx, fctx.path(), fctx.data(),
- islink='l' in flags,
- isexec='x' in flags,
+ islink=b'l' in flags,
+ isexec=b'x' in flags,
copied=copied.get(path))
else:
mctx = context.memfilectx(repo, fctx.path(), fctx.data(),
- islink='l' in flags,
- isexec='x' in flags,
+ islink=b'l' in flags,
+ isexec=b'x' in flags,
copied=copied.get(path))
return mctx
def strdiff(a, b, fn1, fn2):
""" A version of mdiff.unidiff for comparing two strings
"""
- args = [a, '', b, '', fn1, fn2]
+ args = [a, b'', b, b'', fn1, fn2]
# hg < 4.6 compat 8b6dd3922f70
if util.safehasattr(inspect, 'signature'):
@@ -218,7 +218,7 @@
if limit is None:
# no common ancestor, no copies
return {}, {}, {}, {}, {}
- repo.ui.debug(" searching for copies back to rev %d\n" % limit)
+ repo.ui.debug(b" searching for copies back to rev %d\n" % limit)
m1 = c1.manifest()
m2 = c2.manifest()
@@ -232,18 +232,18 @@
# - incompletediverge = record divergent partial copies here
diverge = {} # divergence data is shared
incompletediverge = {}
- data1 = {'copy': {},
- 'fullcopy': {},
- 'incomplete': {},
- 'diverge': diverge,
- 'incompletediverge': incompletediverge,
- }
- data2 = {'copy': {},
- 'fullcopy': {},
- 'incomplete': {},
- 'diverge': diverge,
- 'incompletediverge': incompletediverge,
- }
+ data1 = {b'copy': {},
+ b'fullcopy': {},
+ b'incomplete': {},
+ b'diverge': diverge,
+ b'incompletediverge': incompletediverge,
+ }
+ data2 = {b'copy': {},
+ b'fullcopy': {},
+ b'incomplete': {},
+ b'diverge': diverge,
+ b'incompletediverge': incompletediverge,
+ }
# find interesting file sets from manifests
if hg48:
@@ -260,20 +260,20 @@
else:
# unmatched file from base (DAG rotation in the graft case)
u1r, u2r = copies._computenonoverlap(repo, c1, c2, addedinm1, addedinm2,
- baselabel='base')
+ baselabel=b'base')
# unmatched file from topological common ancestors (no DAG rotation)
# need to recompute this for directory move handling when grafting
mta = tca.manifest()
if hg48:
m1f = m1.filesnotin(mta, repo.narrowmatch())
m2f = m2.filesnotin(mta, repo.narrowmatch())
- baselabel = 'topological common ancestor'
+ baselabel = b'topological common ancestor'
u1u, u2u = copies._computenonoverlap(repo, c1, c2, m1f, m2f,
baselabel=baselabel)
else:
u1u, u2u = copies._computenonoverlap(repo, c1, c2, m1.filesnotin(mta),
m2.filesnotin(mta),
- baselabel='topological common ancestor')
+ baselabel=b'topological common ancestor')
for f in u1u:
copies._checkcopies(c1, c2, f, base, tca, dirtyc1, limit, data1)
@@ -281,16 +281,16 @@
for f in u2u:
copies._checkcopies(c2, c1, f, base, tca, dirtyc2, limit, data2)
- copy = dict(data1['copy'])
- copy.update(data2['copy'])
- fullcopy = dict(data1['fullcopy'])
- fullcopy.update(data2['fullcopy'])
+ copy = dict(data1[b'copy'])
+ copy.update(data2[b'copy'])
+ fullcopy = dict(data1[b'fullcopy'])
+ fullcopy.update(data2[b'fullcopy'])
if dirtyc1:
- copies._combinecopies(data2['incomplete'], data1['incomplete'], copy, diverge,
+ copies._combinecopies(data2[b'incomplete'], data1[b'incomplete'], copy, diverge,
incompletediverge)
else:
- copies._combinecopies(data1['incomplete'], data2['incomplete'], copy, diverge,
+ copies._combinecopies(data1[b'incomplete'], data2[b'incomplete'], copy, diverge,
incompletediverge)
renamedelete = {}
@@ -308,23 +308,23 @@
divergeset.update(fl) # reverse map for below
if bothnew:
- repo.ui.debug(" unmatched files new in both:\n %s\n"
- % "\n ".join(bothnew))
+ repo.ui.debug(b" unmatched files new in both:\n %s\n"
+ % b"\n ".join(bothnew))
bothdiverge = {}
bothincompletediverge = {}
remainder = {}
- both1 = {'copy': {},
- 'fullcopy': {},
- 'incomplete': {},
- 'diverge': bothdiverge,
- 'incompletediverge': bothincompletediverge
- }
- both2 = {'copy': {},
- 'fullcopy': {},
- 'incomplete': {},
- 'diverge': bothdiverge,
- 'incompletediverge': bothincompletediverge
- }
+ both1 = {b'copy': {},
+ b'fullcopy': {},
+ b'incomplete': {},
+ b'diverge': bothdiverge,
+ b'incompletediverge': bothincompletediverge
+ }
+ both2 = {b'copy': {},
+ b'fullcopy': {},
+ b'incomplete': {},
+ b'diverge': bothdiverge,
+ b'incompletediverge': bothincompletediverge
+ }
for f in bothnew:
copies._checkcopies(c1, c2, f, base, tca, dirtyc1, limit, both1)
copies._checkcopies(c2, c1, f, base, tca, dirtyc2, limit, both2)
@@ -333,17 +333,17 @@
pass
elif dirtyc1:
# incomplete copies may only be found on the "dirty" side for bothnew
- assert not both2['incomplete']
- remainder = copies._combinecopies({}, both1['incomplete'], copy, bothdiverge,
+ assert not both2[b'incomplete']
+ remainder = copies._combinecopies({}, both1[b'incomplete'], copy, bothdiverge,
bothincompletediverge)
elif dirtyc2:
- assert not both1['incomplete']
- remainder = copies._combinecopies({}, both2['incomplete'], copy, bothdiverge,
+ assert not both1[b'incomplete']
+ remainder = copies._combinecopies({}, both2[b'incomplete'], copy, bothdiverge,
bothincompletediverge)
else:
# incomplete copies and divergences can't happen outside grafts
- assert not both1['incomplete']
- assert not both2['incomplete']
+ assert not both1[b'incomplete']
+ assert not both2[b'incomplete']
assert not bothincompletediverge
for f in remainder:
assert f not in bothdiverge
@@ -356,30 +356,30 @@
copy[fl[0]] = of # not actually divergent, just matching renames
if fullcopy and repo.ui.debugflag:
- repo.ui.debug(" all copies found (* = to merge, ! = divergent, "
- "% = renamed and deleted):\n")
+ repo.ui.debug(b" all copies found (* = to merge, ! = divergent, "
+ b"% = renamed and deleted):\n")
for f in sorted(fullcopy):
- note = ""
+ note = b""
if f in copy:
- note += "*"
+ note += b"*"
if f in divergeset:
- note += "!"
+ note += b"!"
if f in renamedeleteset:
- note += "%"
- repo.ui.debug(" src: '%s' -> dst: '%s' %s\n" % (fullcopy[f], f,
- note))
+ note += b"%"
+ repo.ui.debug(b" src: '%s' -> dst: '%s' %s\n" % (fullcopy[f], f,
+ note))
del divergeset
if not fullcopy:
return copy, {}, diverge, renamedelete, {}
- repo.ui.debug(" checking for directory renames\n")
+ repo.ui.debug(b" checking for directory renames\n")
# generate a directory move map
d1, d2 = c1.dirs(), c2.dirs()
# Hack for adding '', which is not otherwise added, to d1 and d2
- d1.addpath('/')
- d2.addpath('/')
+ d1.addpath(b'/')
+ d2.addpath(b'/')
invalid = set()
dirmove = {}
@@ -392,16 +392,16 @@
continue
elif dsrc in d1 and ddst in d1:
# directory wasn't entirely moved locally
- invalid.add(dsrc + "/")
+ invalid.add(dsrc + b"/")
elif dsrc in d2 and ddst in d2:
# directory wasn't entirely moved remotely
- invalid.add(dsrc + "/")
- elif dsrc + "/" in dirmove and dirmove[dsrc + "/"] != ddst + "/":
+ invalid.add(dsrc + b"/")
+ elif dsrc + b"/" in dirmove and dirmove[dsrc + b"/"] != ddst + b"/":
# files from the same directory moved to two different places
- invalid.add(dsrc + "/")
+ invalid.add(dsrc + b"/")
else:
# looks good so far
- dirmove[dsrc + "/"] = ddst + "/"
+ dirmove[dsrc + b"/"] = ddst + b"/"
for i in invalid:
if i in dirmove:
@@ -412,7 +412,7 @@
return copy, {}, diverge, renamedelete, {}
for d in dirmove:
- repo.ui.debug(" discovered dir src: '%s' -> dst: '%s'\n" %
+ repo.ui.debug(b" discovered dir src: '%s' -> dst: '%s'\n" %
(d, dirmove[d]))
movewithdir = {}
@@ -425,8 +425,8 @@
df = dirmove[d] + f[len(d):]
if df not in copy:
movewithdir[f] = df
- repo.ui.debug((" pending file src: '%s' -> "
- "dst: '%s'\n") % (f, df))
+ repo.ui.debug((b" pending file src: '%s' -> "
+ b"dst: '%s'\n") % (f, df))
break
return copy, movewithdir, diverge, renamedelete, dirmove
@@ -494,8 +494,8 @@
return obsutil.markersusers(markers)
markersmeta = [dict(m[3]) for m in markers]
- users = set(encoding.tolocal(meta['user']) for meta in markersmeta
- if meta.get('user'))
+ users = set(encoding.tolocal(meta[b'user']) for meta in markersmeta
+ if meta.get(b'user'))
return sorted(users)
@@ -511,7 +511,7 @@
return obsutil.markersoperations(markers)
markersmeta = [dict(m[3]) for m in markers]
- operations = set(meta.get('operation') for meta in markersmeta
- if meta.get('operation'))
+ operations = set(meta.get(b'operation') for meta in markersmeta
+ if meta.get(b'operation'))
return sorted(operations)