[PATCH 1 of 2 V2] patch: define full messages for interactive record/revert
Denis Laxalde
denis.laxalde at logilab.fr
Tue Jun 7 11:55:33 UTC 2016
# HG changeset patch
# User Denis Laxalde <denis.laxalde at logilab.fr>
# Date 1465288639 -7200
# Tue Jun 07 10:37:19 2016 +0200
# Node ID 608c9db1b99f36e3857c2e4081c5d6629aae8bab
# Parent 1b3a0b0c414faa3d6d4dbcf4c5abbbe18aa9efd4
patch: define full messages for interactive record/revert
Followup 14eee72c8d52 to provide complete context for proper localization.
Also update cmdutil.recordfilter docstring to remove recommendation that
"operation" argument should be translated. Indeed, for record/revert, we
either go to patch.filterpatch or crecord.filterpatch (in curses mode) ; the
former now build the full ui message from the operation parameter and the
latter does not use this parameter (removing in a followup patch). For shelve,
operation is not specified and this thus falls back to "record".
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -91,9 +91,9 @@ def filterchunks(ui, originalhunks, usec
def recordfilter(ui, originalhunks, operation=None):
""" Prompts the user to filter the originalhunks and return a list of
selected hunks.
- *operation* is used for ui purposes to indicate the user
- what kind of filtering they are doing: reverting, committing, shelving, etc.
- *operation* has to be a translated string.
+ *operation* is used for to build ui messages to indicate the user what
+ kind of filtering they are doing: reverting, committing, shelving, etc.
+ (see patch.filterpatch).
"""
usecurses = crecordmod.checkcurses(ui)
testfile = ui.config('experimental', 'crecordtest', None)
@@ -3301,7 +3301,7 @@ def _performrevert(repo, parents, ctx, a
else:
diff = patch.diff(repo, None, ctx.node(), m, opts=diffopts)
originalchunks = patch.parsepatch(diff)
- operation = _('discard') if node == parent else _('revert')
+ operation = 'discard' if node == parent else 'revert'
try:
diff --git a/mercurial/patch.py b/mercurial/patch.py
--- a/mercurial/patch.py
+++ b/mercurial/patch.py
@@ -978,7 +978,19 @@ class recordhunk(object):
def filterpatch(ui, headers, operation=None):
"""Interactively filter patch chunks into applied-only chunks"""
if operation is None:
- operation = _('record')
+ operation = 'record'
+ messages = {
+ 'multiple': {
+ 'discard': _("discard change %d/%d to '%s'?"),
+ 'record': _("record change %d/%d to '%s'?"),
+ 'revert': _("revert change %d/%d to '%s'?"),
+ }[operation],
+ 'single': {
+ 'discard': _("discard this change to '%s'?"),
+ 'record': _("record this change to '%s'?"),
+ 'revert': _("revert this change to '%s'?"),
+ }[operation],
+ }
def prompt(skipfile, skipall, query, chunk):
"""prompt query, and process base inputs
@@ -1109,12 +1121,10 @@ the hunk is left unchanged.
if skipfile is None and skipall is None:
chunk.pretty(ui)
if total == 1:
- msg = _("%s this change to '%s'?") % (operation,
- chunk.filename())
+ msg = messages['single'] % chunk.filename()
else:
idx = pos - len(h.hunks) + i
- msg = _("%s change %d/%d to '%s'?") % (operation, idx, total,
- chunk.filename())
+ msg = messages['multiple'] % (idx, total, chunk.filename())
r, skipfile, skipall, newpatches = prompt(skipfile,
skipall, msg, chunk)
if r:
More information about the Mercurial-devel
mailing list