# HG changeset patch # User Mads Kiilerich # Date 2024-07-20 17:10:24 # Node ID 419329d436fd630cc9d4c7add640dc3ed45b71db # Parent edcd5eafc8906497641a31af3c84c695b522b4f2 scripts: update i18n dev script to modern hg Support for old hg versions is not a concern for dev scripts like this. diff --git a/scripts/i18n b/scripts/i18n --- a/scripts/i18n +++ b/scripts/i18n @@ -20,6 +20,7 @@ import sys import click import i18n_utils +from mercurial import util """ @@ -90,28 +91,25 @@ def normalized_merge(local, base, other, and then invoke merge/rebase/graft with the additional argument '--tool i18n'. """ from mercurial import context, simplemerge - from mercurial import ui as uimod print('i18n normalized-merge: normalizing and merging %s' % output) i18n_utils._normalize_po_file(local, merge_pot_file=merge_pot_file, strip=strip) i18n_utils._normalize_po_file(base, merge_pot_file=merge_pot_file, strip=strip) i18n_utils._normalize_po_file(other, merge_pot_file=merge_pot_file, strip=strip) - i18n_utils._normalize_po_file(output, merge_pot_file=merge_pot_file, strip=strip) # simplemerge will write markers to 'local' if it fails, keep a copy without markers localkeep = local + '.keep' shutil.copyfile(local, localkeep) - ret = simplemerge.simplemerge(uimod.ui.load(), - context.arbitraryfilectx(local.encode('utf-8')), - context.arbitraryfilectx(base.encode('utf-8')), - context.arbitraryfilectx(other.encode('utf-8')), - label=[b'local', b'other', b'base'], + merged_text, conflicts = simplemerge.simplemerge( + simplemerge.MergeInput(context.arbitraryfilectx(local.encode('utf-8'), b'local')), + simplemerge.MergeInput(context.arbitraryfilectx(base.encode('utf-8'), b'base')), + simplemerge.MergeInput(context.arbitraryfilectx(other.encode('utf-8'), b'other')), mode='merge', ) - shutil.copyfile(local, output) # simplemerge wrote to local - either resolved or with conflict markers - if ret: + util.writefile(output, merged_text) # either resolved or with conflict markers + if conflicts: shutil.copyfile(localkeep, local) basekeep = base + '.keep' otherkeep = other + '.keep' @@ -119,7 +117,7 @@ def normalized_merge(local, base, other, shutil.copyfile(other, otherkeep) sys.stderr.write("Error: simple merge failed and %s is left with conflict markers. Resolve the conflicts, then use 'hg resolve -m'.\n" % output) sys.stderr.write('Resolve with e.g.: kdiff3 %s %s %s -o %s\n' % (basekeep, localkeep, otherkeep, output)) - sys.exit(ret) + sys.exit(1) os.remove(localkeep)