i18n/zh_CN.po
changeset 9769 af64aa112aa3
parent 8965 4df5d07fb532
child 9804 fe0fb1cca911
--- a/i18n/zh_CN.po	Sun Oct 25 12:49:25 2009 +0100
+++ b/i18n/zh_CN.po	Sun Oct 25 12:50:12 2009 +0100
@@ -50,8 +50,8 @@
 msgstr ""
 "Project-Id-Version: Mercurial 1.3\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2009-06-24 10:03+0800\n"
-"PO-Revision-Date: 2009-03-31 20:38+0200\n"
+"POT-Creation-Date: 2009-10-25 12:38+0100\n"
+"PO-Revision-Date: 2009-10-25 12:49+0100\n"
 "Last-Translator: Dongsheng Song <dongsheng.song@gmail.com>\n"
 "Language-Team: Chinese translation team <i18n-zh@googlegroups.com>\n"
 "MIME-Version: 1.0\n"
@@ -71,7 +71,10 @@
 msgid "COMMANDS"
 msgstr "命令"
 
-msgid "    options:\n"
+#, fuzzy
+msgid ""
+"    options:\n"
+"\n"
 msgstr "    选项:\n"
 
 #, python-format
@@ -83,7 +86,635 @@
 "\n"
 
 msgid ""
-"control access to a repository using simple hooks\n"
+"Some commands allow the user to specify a date, e.g.:\n"
+"\n"
+"- backout, commit, import, tag: Specify the commit date.\n"
+"- log, revert, update: Select revision(s) by date.\n"
+"\n"
+"Many date formats are valid. Here are some examples::\n"
+"\n"
+"  \"Wed Dec 6 13:18:29 2006\" (local timezone assumed)\n"
+"  \"Dec 6 13:18 -0600\" (year assumed, time offset provided)\n"
+"  \"Dec 6 13:18 UTC\" (UTC and GMT are aliases for +0000)\n"
+"  \"Dec 6\" (midnight)\n"
+"  \"13:18\" (today assumed)\n"
+"  \"3:39\" (3:39AM assumed)\n"
+"  \"3:39pm\" (15:39)\n"
+"  \"2006-12-06 13:18:29\" (ISO 8601 format)\n"
+"  \"2006-12-6 13:18\"\n"
+"  \"2006-12-6\"\n"
+"  \"12-6\"\n"
+"  \"12/6\"\n"
+"  \"12/6/6\" (Dec 6 2006)\n"
+"\n"
+"Lastly, there is Mercurial's internal format::\n"
+"\n"
+"  \"1165432709 0\" (Wed Dec 6 13:18:29 2006 UTC)\n"
+"\n"
+"This is the internal representation format for dates. unixtime is the\n"
+"number of seconds since the epoch (1970-01-01 00:00 UTC). offset is\n"
+"the offset of the local timezone, in seconds west of UTC (negative if\n"
+"the timezone is east of UTC).\n"
+"\n"
+"The log command also accepts date ranges::\n"
+"\n"
+"  \"<{datetime}\" - at or before a given date/time\n"
+"  \">{datetime}\" - on or after a given date/time\n"
+"  \"{datetime} to {datetime}\" - a date range, inclusive\n"
+"  \"-{days}\" - within a given number of days of today\n"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Mercurial's default format for showing changes between two versions of\n"
+"a file is compatible with the unified format of GNU diff, which can be\n"
+"used by GNU patch and many other standard tools.\n"
+"\n"
+"While this standard format is often enough, it does not encode the\n"
+"following information:\n"
+"\n"
+"- executable status and other permission bits\n"
+"- copy or rename information\n"
+"- changes in binary files\n"
+"- creation or deletion of empty files\n"
+"\n"
+"Mercurial also supports the extended diff format from the git VCS\n"
+"which addresses these limitations. The git diff format is not produced\n"
+"by default because a few widespread tools still do not understand this\n"
+"format.\n"
+"\n"
+"This means that when generating diffs from a Mercurial repository\n"
+"(e.g. with \"hg export\"), you should be careful about things like file\n"
+"copies and renames or other things mentioned above, because when\n"
+"applying a standard diff to a different repository, this extra\n"
+"information is lost. Mercurial's internal operations (like push and\n"
+"pull) are not affected by this, because they use an internal binary\n"
+"format for communicating changes.\n"
+"\n"
+"To make Mercurial produce the git extended diff format, use the --git\n"
+"option available for many commands, or set 'git = True' in the [diff]\n"
+"section of your hgrc. You do not need to set this option when\n"
+"importing diffs in this format or using them in the mq extension.\n"
+msgstr ""
+"\n"
+"    水银显示文件不同版本之间差异的格式与 GNU diff 标准格式兼容,可用于\n"
+"    GNU patch 和许多标准工具。\n"
+"\n"
+"    虽然标准格式在大多数情况下都能满足要求,但是它不包含下述信息:\n"
+"\n"
+"     - 可执行状态和其它权限位\n"
+"     - 复制或改名信息\n"
+"     - 二进制文件的修改\n"
+"     - 创建或删除空文件\n"
+"\n"
+"    水银也支持解决这些限制的 git 扩展差异格式。由于一些常用的工具还不支持\n"
+"    此格式,所以它不是默认格式。\n"
+"\n"
+"    这意味着当从水银版本库(例如 \"hg export\")产生差异时,在其它版本库应用"
+"标\n"
+"    准差异时,会丢失文件复制或改名等额外信息,所以你要小心处理。水银的内部\n"
+"    操作(例如 push 和 pull)在传达改变时,使用内部的二进制格式,所以不受影\n"
+"    响。\n"
+"\n"
+"    要让水银产生 git 扩展差异格式,可以对许多命令使用选项 '--git',或者在\n"
+"    你的 hgrc 文件中的节 '[diff]' 中增加 'git = True'。当你从此格式导入时,\n"
+"    或在 mq 扩展中使用时,不需要设置此选项。\n"
+"    "
+
+msgid ""
+"HG\n"
+"    Path to the 'hg' executable, automatically passed when running\n"
+"    hooks, extensions or external tools. If unset or empty, this is\n"
+"    the hg executable's name if it's frozen, or an executable named\n"
+"    'hg' (with %PATHEXT% [defaulting to COM/EXE/BAT/CMD] extensions on\n"
+"    Windows) is searched.\n"
+"\n"
+"HGEDITOR\n"
+"    This is the name of the editor to run when committing. See EDITOR.\n"
+"\n"
+"    (deprecated, use .hgrc)\n"
+"\n"
+"HGENCODING\n"
+"    This overrides the default locale setting detected by Mercurial.\n"
+"    This setting is used to convert data including usernames,\n"
+"    changeset descriptions, tag names, and branches. This setting can\n"
+"    be overridden with the --encoding command-line option.\n"
+"\n"
+"HGENCODINGMODE\n"
+"    This sets Mercurial's behavior for handling unknown characters\n"
+"    while transcoding user input. The default is \"strict\", which\n"
+"    causes Mercurial to abort if it can't map a character. Other\n"
+"    settings include \"replace\", which replaces unknown characters, and\n"
+"    \"ignore\", which drops them. This setting can be overridden with\n"
+"    the --encodingmode command-line option.\n"
+"\n"
+"HGMERGE\n"
+"    An executable to use for resolving merge conflicts. The program\n"
+"    will be executed with three arguments: local file, remote file,\n"
+"    ancestor file.\n"
+"\n"
+"    (deprecated, use .hgrc)\n"
+"\n"
+"HGRCPATH\n"
+"    A list of files or directories to search for hgrc files. Item\n"
+"    separator is \":\" on Unix, \";\" on Windows. If HGRCPATH is not set,\n"
+"    platform default search path is used. If empty, only the .hg/hgrc\n"
+"    from the current repository is read.\n"
+"\n"
+"    For each element in HGRCPATH:\n"
+"\n"
+"    - if it's a directory, all files ending with .rc are added\n"
+"    - otherwise, the file itself will be added\n"
+"\n"
+"HGUSER\n"
+"    This is the string used as the author of a commit. If not set,\n"
+"    available values will be considered in this order:\n"
+"\n"
+"    - HGUSER (deprecated)\n"
+"    - hgrc files from the HGRCPATH\n"
+"    - EMAIL\n"
+"    - interactive prompt\n"
+"    - LOGNAME (with '@hostname' appended)\n"
+"\n"
+"    (deprecated, use .hgrc)\n"
+"\n"
+"EMAIL\n"
+"    May be used as the author of a commit; see HGUSER.\n"
+"\n"
+"LOGNAME\n"
+"    May be used as the author of a commit; see HGUSER.\n"
+"\n"
+"VISUAL\n"
+"    This is the name of the editor to use when committing. See EDITOR.\n"
+"\n"
+"EDITOR\n"
+"    Sometimes Mercurial needs to open a text file in an editor for a\n"
+"    user to modify, for example when writing commit messages. The\n"
+"    editor it uses is determined by looking at the environment\n"
+"    variables HGEDITOR, VISUAL and EDITOR, in that order. The first\n"
+"    non-empty one is chosen. If all of them are empty, the editor\n"
+"    defaults to 'vi'.\n"
+"\n"
+"PYTHONPATH\n"
+"    This is used by Python to find imported modules and may need to be\n"
+"    set appropriately if this Mercurial is not installed system-wide.\n"
+msgstr ""
+
+msgid ""
+"Mercurial has the ability to add new features through the use of\n"
+"extensions. Extensions may add new commands, add options to\n"
+"existing commands, change the default behavior of commands, or\n"
+"implement hooks.\n"
+"\n"
+"Extensions are not loaded by default for a variety of reasons:\n"
+"they can increase startup overhead; they may be meant for advanced\n"
+"usage only; they may provide potentially dangerous abilities (such\n"
+"as letting you destroy or modify history); they might not be ready\n"
+"for prime time; or they may alter some usual behaviors of stock\n"
+"Mercurial. It is thus up to the user to activate extensions as\n"
+"needed.\n"
+"\n"
+"To enable the \"foo\" extension, either shipped with Mercurial or in\n"
+"the Python search path, create an entry for it in your hgrc, like\n"
+"this::\n"
+"\n"
+"  [extensions]\n"
+"  foo =\n"
+"\n"
+"You may also specify the full path to an extension::\n"
+"\n"
+"  [extensions]\n"
+"  myfeature = ~/.hgext/myfeature.py\n"
+"\n"
+"To explicitly disable an extension enabled in an hgrc of broader\n"
+"scope, prepend its path with !::\n"
+"\n"
+"  [extensions]\n"
+"  # disabling extension bar residing in /path/to/extension/bar.py\n"
+"  hgext.bar = !/path/to/extension/bar.py\n"
+"  # ditto, but no path was supplied for extension baz\n"
+"  hgext.baz = !\n"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"When Mercurial accepts more than one revision, they may be specified\n"
+"individually, or provided as a topologically continuous range,\n"
+"separated by the \":\" character.\n"
+"\n"
+"The syntax of range notation is [BEGIN]:[END], where BEGIN and END are\n"
+"revision identifiers. Both BEGIN and END are optional. If BEGIN is not\n"
+"specified, it defaults to revision number 0. If END is not specified,\n"
+"it defaults to the tip. The range \":\" thus means \"all revisions\".\n"
+"\n"
+"If BEGIN is greater than END, revisions are treated in reverse order.\n"
+"\n"
+"A range acts as a closed interval. This means that a range of 3:5\n"
+"gives 3, 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.\n"
+msgstr ""
+"\n"
+"    当水银接受多个版本时,它们可以单独给出,或者以字符 \":\" 分割的拓扑连续\n"
+"    范围格式提供。\n"
+"\n"
+"    范围的语法是 '[BEGIN]:[END]',其中 'BEGIN' 和 'END' 是版本标识。'BEGIN'\n"
+"    和 'END' 都是可选的。'BEGIN' 默认是 0,'END' 默认是 'tip'。因此范围 \":"
+"\"\n"
+"    意味着全部版本。\n"
+"\n"
+"    如果 'BEGIN' 大于 'END',版本视为反序。\n"
+"\n"
+"    范围是闭区间。即范围 '3:5' 是 '3','4','5'。同样,范围 '9:6' 是 '9',\n"
+"    '8','7' 和 '6'。\n"
+"    "
+
+msgid ""
+"Mercurial accepts several notations for identifying one or more files\n"
+"at a time.\n"
+"\n"
+"By default, Mercurial treats filenames as shell-style extended glob\n"
+"patterns.\n"
+"\n"
+"Alternate pattern notations must be specified explicitly.\n"
+"\n"
+"To use a plain path name without any pattern matching, start it with\n"
+"``path:``. These path names must completely match starting at the\n"
+"current repository root.\n"
+"\n"
+"To use an extended glob, start a name with ``glob:``. Globs are rooted\n"
+"at the current directory; a glob such as ``*.c`` will only match files\n"
+"in the current directory ending with ``.c``.\n"
+"\n"
+"The supported glob syntax extensions are ``**`` to match any string\n"
+"across path separators and ``{a,b}`` to mean \"a or b\".\n"
+"\n"
+"To use a Perl/Python regular expression, start a name with ``re:``.\n"
+"Regexp pattern matching is anchored at the root of the repository.\n"
+"\n"
+"Plain examples::\n"
+"\n"
+"  path:foo/bar   a name bar in a directory named foo in the root\n"
+"                 of the repository\n"
+"  path:path:name a file or directory named \"path:name\"\n"
+"\n"
+"Glob examples::\n"
+"\n"
+"  glob:*.c       any name ending in \".c\" in the current directory\n"
+"  *.c            any name ending in \".c\" in the current directory\n"
+"  **.c           any name ending in \".c\" in any subdirectory of the\n"
+"                 current directory including itself.\n"
+"  foo/*.c        any name ending in \".c\" in the directory foo\n"
+"  foo/**.c       any name ending in \".c\" in any subdirectory of foo\n"
+"                 including itself.\n"
+"\n"
+"Regexp examples::\n"
+"\n"
+"  re:.*\\.c$      any name ending in \".c\", anywhere in the repository\n"
+msgstr ""
+
+msgid ""
+"Mercurial supports several ways to specify individual revisions.\n"
+"\n"
+"A plain integer is treated as a revision number. Negative integers are\n"
+"treated as sequential offsets from the tip, with -1 denoting the tip,\n"
+"-2 denoting the revision prior to the tip, and so forth.\n"
+"\n"
+"A 40-digit hexadecimal string is treated as a unique revision\n"
+"identifier.\n"
+"\n"
+"A hexadecimal string less than 40 characters long is treated as a\n"
+"unique revision identifier and is referred to as a short-form\n"
+"identifier. A short-form identifier is only valid if it is the prefix\n"
+"of exactly one full-length identifier.\n"
+"\n"
+"Any other string is treated as a tag or branch name. A tag name is a\n"
+"symbolic name associated with a revision identifier. A branch name\n"
+"denotes the tipmost revision of that branch. Tag and branch names must\n"
+"not contain the \":\" character.\n"
+"\n"
+"The reserved name \"tip\" is a special tag that always identifies the\n"
+"most recent revision.\n"
+"\n"
+"The reserved name \"null\" indicates the null revision. This is the\n"
+"revision of an empty repository, and the parent of revision 0.\n"
+"\n"
+"The reserved name \".\" indicates the working directory parent. If no\n"
+"working directory is checked out, it is equivalent to null. If an\n"
+"uncommitted merge is in progress, \".\" is the revision of the first\n"
+"parent.\n"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Mercurial allows you to customize output of commands through\n"
+"templates. You can either pass in a template from the command\n"
+"line, via the --template option, or select an existing\n"
+"template-style (--style).\n"
+"\n"
+"You can customize output for any \"log-like\" command: log,\n"
+"outgoing, incoming, tip, parents, heads and glog.\n"
+"\n"
+"Three styles are packaged with Mercurial: default (the style used\n"
+"when no explicit preference is passed), compact and changelog.\n"
+"Usage::\n"
+"\n"
+"    $ hg log -r1 --style changelog\n"
+"\n"
+"A template is a piece of text, with markup to invoke variable\n"
+"expansion::\n"
+"\n"
+"    $ hg log -r1 --template \"{node}\\n\"\n"
+"    b56ce7b07c52de7d5fd79fb89701ea538af65746\n"
+"\n"
+"Strings in curly braces are called keywords. The availability of\n"
+"keywords depends on the exact context of the templater. These\n"
+"keywords are usually available for templating a log-like command:\n"
+"\n"
+":author:    String. The unmodified author of the changeset.\n"
+":branches:  String. The name of the branch on which the changeset\n"
+"            was committed. Will be empty if the branch name was\n"
+"            default.\n"
+":date:      Date information. The date when the changeset was\n"
+"            committed.\n"
+":desc:      String. The text of the changeset description.\n"
+":diffstat:  String. Statistics of changes with the following\n"
+"            format: \"modified files: +added/-removed lines\"\n"
+":files:     List of strings. All files modified, added, or removed\n"
+"            by this changeset.\n"
+":file_adds: List of strings. Files added by this changeset.\n"
+":file_mods: List of strings. Files modified by this changeset.\n"
+":file_dels: List of strings. Files removed by this changeset.\n"
+":node:      String. The changeset identification hash, as a\n"
+"            40-character hexadecimal string.\n"
+":parents:   List of strings. The parents of the changeset.\n"
+":rev:       Integer. The repository-local changeset revision\n"
+"            number.\n"
+":tags:      List of strings. Any tags associated with the\n"
+"            changeset.\n"
+":latesttag: String. Most recent global tag in the ancestors of this\n"
+"            changeset.\n"
+":latesttagdistance: Integer. Longest path to the latest tag.\n"
+"\n"
+"The \"date\" keyword does not produce human-readable output. If you\n"
+"want to use a date in your output, you can use a filter to process\n"
+"it. Filters are functions which return a string based on the input\n"
+"variable. You can also use a chain of filters to get the desired\n"
+"output::\n"
+"\n"
+"   $ hg tip --template \"{date|isodate}\\n\"\n"
+"   2008-08-21 18:22 +0000\n"
+"\n"
+"List of filters:\n"
+"\n"
+":addbreaks:   Any text. Add an XHTML \"<br />\" tag before the end of\n"
+"              every line except the last.\n"
+":age:         Date. Returns a human-readable date/time difference\n"
+"              between the given date/time and the current\n"
+"              date/time.\n"
+":basename:    Any text. Treats the text as a path, and returns the\n"
+"              last component of the path after splitting by the\n"
+"              path separator (ignoring trailing separators). For\n"
+"              example, \"foo/bar/baz\" becomes \"baz\" and \"foo/bar//\"\n"
+"              becomes \"bar\".\n"
+":stripdir:    Treat the text as path and strip a directory level,\n"
+"              if possible. For example, \"foo\" and \"foo/bar\" becomes\n"
+"              \"foo\".\n"
+":date:        Date. Returns a date in a Unix date format, including\n"
+"              the timezone: \"Mon Sep 04 15:13:13 2006 0700\".\n"
+":domain:      Any text. Finds the first string that looks like an\n"
+"              email address, and extracts just the domain\n"
+"              component. Example: 'User <user@example.com>' becomes\n"
+"              'example.com'.\n"
+":email:       Any text. Extracts the first string that looks like\n"
+"              an email address. Example: 'User <user@example.com>'\n"
+"              becomes 'user@example.com'.\n"
+":escape:      Any text. Replaces the special XML/XHTML characters\n"
+"              \"&\", \"<\" and \">\" with XML entities.\n"
+":fill68:      Any text. Wraps the text to fit in 68 columns.\n"
+":fill76:      Any text. Wraps the text to fit in 76 columns.\n"
+":firstline:   Any text. Returns the first line of text.\n"
+":nonempty:    Any text. Returns '(none)' if the string is empty.\n"
+":hgdate:      Date. Returns the date as a pair of numbers:\n"
+"              \"1157407993 25200\" (Unix timestamp, timezone offset).\n"
+":isodate:     Date. Returns the date in ISO 8601 format:\n"
+"              \"2009-08-18 13:00 +0200\".\n"
+":isodatesec:  Date. Returns the date in ISO 8601 format, including\n"
+"              seconds: \"2009-08-18 13:00:13 +0200\". See also the\n"
+"              rfc3339date filter.\n"
+":localdate:   Date. Converts a date to local date.\n"
+":obfuscate:   Any text. Returns the input text rendered as a\n"
+"              sequence of XML entities.\n"
+":person:      Any text. Returns the text before an email address.\n"
+":rfc822date:  Date. Returns a date using the same format used in\n"
+"              email headers: \"Tue, 18 Aug 2009 13:00:13 +0200\".\n"
+":rfc3339date: Date. Returns a date using the Internet date format\n"
+"              specified in RFC 3339: \"2009-08-18T13:00:13+02:00\".\n"
+":short:       Changeset hash. Returns the short form of a changeset\n"
+"              hash, i.e. a 12-byte hexadecimal string.\n"
+":shortdate:   Date. Returns a date like \"2006-09-18\".\n"
+":strip:       Any text. Strips all leading and trailing whitespace.\n"
+":tabindent:   Any text. Returns the text, with every line except\n"
+"              the first starting with a tab character.\n"
+":urlescape:   Any text. Escapes all \"special\" characters. For\n"
+"              example, \"foo bar\" becomes \"foo%20bar\".\n"
+":user:        Any text. Returns the user portion of an email\n"
+"              address.\n"
+msgstr ""
+"\n"
+"    水银允许你通过模版定制命令的输出。你可以通过命令行选项 '--template'\n"
+"    来使用模版,或者选择已有的模版样式(--style)。\n"
+"\n"
+"    你可以定制任意输出与日志信息类似的命令,即: log,outgoing,incoming,\n"
+"    tip,parents,heads 和 glog。\n"
+"\n"
+"    水银中内置了 3 种样式: default (默认), compact 和 changelog。用法:\n"
+"\n"
+"        $ hg log -r1 --style changelog\n"
+"\n"
+"    模版是文本片断,其中的标记用于变量扩展:\n"
+"\n"
+"        $ hg log -r1 --template \"{node}\\n\"\n"
+"        b56ce7b07c52de7d5fd79fb89701ea538af65746\n"
+"\n"
+"    花括号中的字符串称为关键字。可用的关键字依赖于模版的上下文。下述关键字\n"
+"    可用于输出与日志信息类似的命令:\n"
+"\n"
+"    - author: 字符串。修改集的作者。\n"
+"    - branches: 字符串。修改集的分支。如果分支名称为 'default' 则为空。\n"
+"    - date: 日期信息。修改集的日期。\n"
+"    - desc: 字符串。修改集的描述。\n"
+"    - files: 字符串列表。修改集中被修改、增加和删除的全部文件。\n"
+"    - file_adds: 字符串列表。修改集中被增加的文件。\n"
+"    - file_mods: 字符串列表。修改集中被修改的文件\n"
+"    - file_dels: 字符串列表。修改集中被删除的文件\n"
+"    - node: 字符串。修改集的哈系标识,40 个字符的 16 进制字符串。\n"
+"    - parents: 字符串列表。修改集的父亲。\n"
+"    - rev: 整数。本地版本库的修改集的版本号。\n"
+"    - tags: 字符串列表。修改集的标签。\n"
+"\n"
+"    关键字 \"date\" 不产生人工可读的输出。如果你想在输出中使用日期,可以使"
+"用\n"
+"    过滤器来处理它。过滤器是根据输入变量返回字符串的函数。你还可以使用过滤\n"
+"    链来产生理想的输出:\n"
+"\n"
+"       $ hg tip --template \"{date|isodate}\\n\"\n"
+"       2008-08-21 18:22 +0000\n"
+"\n"
+"    过滤器列表:\n"
+"\n"
+"    - addbreaks: 输入任意文本。除了最后一行,在每行的结尾增加 XHTML 标签\n"
+"          \"<br />\"。\n"
+"    - age: 输入日期。返回指定日期与当前日期差异的人工可读的字符串。\n"
+"    - basename: 输入任意文本。将输入视为路径,返回被路径分隔符隔开的最后\n"
+"          一个组件的名称(忽略结尾的分隔符)。例如 \"foo/bar/baz\" 成为 \"baz"
+"\",\n"
+"          \"foo/bar//\" 成为 \"bar\"。\n"
+"    - date: 输入日期。返回指定日期的 Unix 日期格式字符串,包含时区,例如: \n"
+"          \"Mon Sep 04 15:13:13 2006 0700\"。\n"
+"    - domain: 输入任意文本。找到第一个 email 地址,返回其域名。例如: \n"
+"          'User <user@example.com>' 成为 'example.com'。\n"
+"    - email: 输入任意文本。返回第一个 email 地址。例如: \n"
+"          'User <user@example.com>' 成为 'user@example.com'。\n"
+"    - escape: 输入任意文本。用 XML 实体来封装 XML/XHTML 的特殊字符 \"&\",\n"
+"          \"<\" 和 \">\"。\n"
+"    - fill68: 输入任意文本。格式化为 68 列文本。\n"
+"    - fill76: 输入任意文本。格式化为 76 列文本。\n"
+"    - firstline: 输入任意文本。返回首行。\n"
+"    - hgdate: 输入日期。返回一对数字:\n"
+"          \"1157407993 25200\" (Unix 时戳,时区偏移)。\n"
+"    - isodate: 输入日期。返回 ISO 8601 格式的日期。\n"
+"    - obfuscate: 输入任意文本。返回其 XML 实体序列。\n"
+"    - person: 输入任意文本。返回 email 地址前的文本。\n"
+"    - rfc822date: 输入日期。返回 email 头部使用的日期格式。\n"
+"    - short: 修改集哈系。返回修改集哈系的短格式。例如 12 字符的 16 进制\n"
+"          字符串。\n"
+"    - shortdate: 输入日期。返回格式类似于 \"2006-09-18\"。\n"
+"    - strip: 输入任意文本。删除全部行首与行尾空白。\n"
+"    - tabindent: 输入任意文本。除了首行,在每行的开始增加制表符号。\n"
+"    - urlescape: 输入任意文本。封装全部特殊字符。例如\n"
+"          \"foo bar\" 成为 \"foo%20bar\"。\n"
+"    - user: 输入任意文本。返回 email 地址中的用户名称部分。\n"
+"    "
+
+#, fuzzy
+msgid ""
+"Valid URLs are of the form::\n"
+"\n"
+"  local/filesystem/path[#revision]\n"
+"  file://local/filesystem/path[#revision]\n"
+"  http://[user[:pass]@]host[:port]/[path][#revision]\n"
+"  https://[user[:pass]@]host[:port]/[path][#revision]\n"
+"  ssh://[user[:pass]@]host[:port]/[path][#revision]\n"
+"\n"
+"Paths in the local filesystem can either point to Mercurial\n"
+"repositories or to bundle files (as created by 'hg bundle' or 'hg\n"
+"incoming --bundle').\n"
+"\n"
+"An optional identifier after # indicates a particular branch, tag, or\n"
+"changeset to use from the remote repository. See also 'hg help\n"
+"revisions'.\n"
+"\n"
+"Some features, such as pushing to http:// and https:// URLs are only\n"
+"possible if the feature is explicitly enabled on the remote Mercurial\n"
+"server.\n"
+"\n"
+"Some notes about using SSH with Mercurial:\n"
+"\n"
+"- SSH requires an accessible shell account on the destination machine\n"
+"  and a copy of hg in the remote path or specified with as remotecmd.\n"
+"- path is relative to the remote user's home directory by default. Use\n"
+"  an extra slash at the start of a path to specify an absolute path::\n"
+"\n"
+"    ssh://example.com//tmp/repository\n"
+"\n"
+"- Mercurial doesn't use its own compression via SSH; the right thing\n"
+"  to do is to configure it in your ~/.ssh/config, e.g.::\n"
+"\n"
+"    Host *.mylocalnetwork.example.com\n"
+"      Compression no\n"
+"    Host *\n"
+"      Compression yes\n"
+"\n"
+"  Alternatively specify \"ssh -C\" as your ssh command in your hgrc or\n"
+"  with the --ssh command line option.\n"
+"\n"
+"These URLs can all be stored in your hgrc with path aliases under the\n"
+"[paths] section like so::\n"
+"\n"
+"  [paths]\n"
+"  alias1 = URL1\n"
+"  alias2 = URL2\n"
+"  ...\n"
+"\n"
+"You can then use the alias for any command that uses a URL (for\n"
+"example 'hg pull alias1' would pull from the 'alias1' path).\n"
+"\n"
+"Two path aliases are special because they are used as defaults when\n"
+"you do not provide the URL to a command:\n"
+"\n"
+"default:\n"
+"  When you create a repository with hg clone, the clone command saves\n"
+"  the location of the source repository as the new repository's\n"
+"  'default' path. This is then used when you omit path from push- and\n"
+"  pull-like commands (including incoming and outgoing).\n"
+"\n"
+"default-push:\n"
+"  The push command will look for a path named 'default-push', and\n"
+"  prefer it over 'default' if both are defined.\n"
+msgstr ""
+"\n"
+"    有效的位置格式:\n"
+"\n"
+"      local/filesystem/path (or file://local/filesystem/path)\n"
+"      http://[user[:pass]@]host[:port]/[path]\n"
+"      https://[user[:pass]@]host[:port]/[path]\n"
+"      ssh://[user[:pass]@]host[:port]/[path]\n"
+"\n"
+"    位于本地文件系统中的路径可以指向版本库,也可以指向打包的文件(被\n"
+"    'hg bundle' 或 'hg incoming --bundle' 创建)。\n"
+"\n"
+"    在 '#' 后面可选的标识符用于指定要取得的远程版本库的分支,标签或\n"
+"    修改集。\n"
+"\n"
+"    仅当远程水银服务器显式启用时,才能推到 'http://' 和 'https://'。\n"
+"\n"
+"    在水银中使用 SSH 的一些提示:\n"
+"    - 使用 SSH 时,需要在远程主机上有可登录帐号,远程路径中还需要有\n"
+"      hg,或者有指定的远程命令。\n"
+"    - 默认 'path' 是相对于远程主机上的用户家目录。\n"
+"      可以在路径前增加一个斜线指定绝对路径:\n"
+"        ssh://example.com//tmp/repository\n"
+"    - 水银使用 SSH 时不使用压缩,所以你可以在 ~/.ssh/config 中配置\n"
+"      SSH 执行压缩,例如:\n"
+"        Host *.mylocalnetwork.example.com\n"
+"          Compression no\n"
+"        Host *\n"
+"          Compression yes\n"
+"      另一个方法是在你的 hgrc 中将 \"ssh -C\" 作为你的 ssh 命令,或\n"
+"      用于命令行参数 '--ssh' 中。\n"
+"\n"
+"    这些路径可以在你的 'hgrc' 中的节 '[paths]' 中定义别名:\n"
+"    [paths]\n"
+"    alias1 = URL1\n"
+"    alias2 = URL2\n"
+"    ...\n"
+"\n"
+"    然后你就可以在任意命令中使用这些别名作为路径(例如 'hg pull alias1'\n"
+"    会从 'alias1' 定义的路径取得指定版本)。\n"
+"\n"
+"    因为用于默认路径,所以这 2 个路径别名比较特殊:\n"
+"\n"
+"    default:\n"
+"      当你使用 'hg clone' 创建版本库时,此命令会将源版本库的位置保存\n"
+"      为新版本库的 'default' 路径,然后你可以对类似 'push' 和 'pull'\n"
+"      的命令省略路径(包含进和出)。\n"
+"\n"
+"    default-push:\n"
+"      命令 'push' 会查找别名是 'default-push' 的路径,它覆盖定义 "
+"'default'。\n"
+"    "
+
+msgid ""
+"hooks for controlling repository access\n"
 "\n"
 "This hook makes it possible to allow or deny write access to portions\n"
 "of a repository when receiving incoming changesets.\n"
@@ -99,7 +730,7 @@
 "Nor is it safe if remote users share an account, because then there\n"
 "is no way to distinguish them.\n"
 "\n"
-"To use this hook, configure the acl extension in your hgrc like this:\n"
+"To use this hook, configure the acl extension in your hgrc like this::\n"
 "\n"
 "  [extensions]\n"
 "  hgext.acl =\n"
@@ -112,10 +743,10 @@
 "  # (\"serve\" == ssh or http, \"push\", \"pull\", \"bundle\")\n"
 "  sources = serve\n"
 "\n"
-"The allow and deny sections take a subtree pattern as key (with a\n"
-"glob syntax by default), and a comma separated list of users as\n"
-"the corresponding value. The deny list is checked before the allow\n"
-"list is.\n"
+"The allow and deny sections take a subtree pattern as key (with a glob\n"
+"syntax by default), and a comma separated list of users as the\n"
+"corresponding value. The deny list is checked before the allow list\n"
+"is. ::\n"
 "\n"
 "  [acl.allow]\n"
 "  # If acl.allow is not present, all users are allowed by default.\n"
@@ -131,52 +762,28 @@
 msgstr ""
 
 #, python-format
-msgid "acl: %s not enabled\n"
-msgstr "acl: 未启用 %s\n"
-
-#, python-format
-msgid "acl: %s enabled, %d entries for user %s\n"
-msgstr "acl: 已启用 %s, %d 项,用户 %s\n"
-
-#, python-format
 msgid "config error - hook type \"%s\" cannot stop incoming changesets"
 msgstr "配置错误 - 钩子类型 \"%s\" 不能终止进入的修改集"
 
 #, python-format
-msgid "acl: changes have source \"%s\" - skipping\n"
-msgstr "acl: 改变源 \"%s\" - 跳过\n"
-
-#, python-format
-msgid "acl: user %s denied on %s\n"
-msgstr "acl: 用户 %s 被拒绝访问 %s\n"
-
-#, python-format
 msgid "acl: access denied for changeset %s"
 msgstr "acl: 拒绝访问修改集 %s"
 
-#, python-format
-msgid "acl: user %s not allowed on %s\n"
-msgstr "acl: 用户 %s 被拒绝访问 %s\n"
-
-#, python-format
-msgid "acl: allowing changeset %s\n"
-msgstr "acl: 允许修改集 %s\n"
-
 msgid ""
 "track a line of development with movable markers\n"
 "\n"
 "Bookmarks are local movable markers to changesets. Every bookmark\n"
 "points to a changeset identified by its hash. If you commit a\n"
-"changeset that is based on a changeset that has a bookmark on it,\n"
-"the bookmark shifts to the new changeset.\n"
-"\n"
-"It is possible to use bookmark names in every revision lookup\n"
-"(e.g. hg merge, hg update).\n"
+"changeset that is based on a changeset that has a bookmark on it, the\n"
+"bookmark shifts to the new changeset.\n"
+"\n"
+"It is possible to use bookmark names in every revision lookup (e.g. hg\n"
+"merge, hg update).\n"
 "\n"
 "By default, when several bookmarks point to the same changeset, they\n"
 "will all move forward together. It is possible to obtain a more\n"
 "git-like experience by adding the following configuration option to\n"
-"your .hgrc:\n"
+"your .hgrc::\n"
 "\n"
 "  [bookmarks]\n"
 "  track.current = True\n"
@@ -235,7 +842,7 @@
 msgstr ""
 
 msgid ""
-"integrate Mercurial with a Bugzilla bug tracker\n"
+"hooks for integrating with the Bugzilla bug tracker\n"
 "\n"
 "This hook extension adds comments on bugs in Bugzilla when changesets\n"
 "that refer to bugs by Bugzilla ID are seen. The hook does not change\n"
@@ -251,65 +858,86 @@
 "be run by Mercurial as the user pushing the change; you will need to\n"
 "ensure the Bugzilla install file permissions are set appropriately.\n"
 "\n"
-"Configuring the extension:\n"
-"\n"
-"    [bugzilla]\n"
-"\n"
-"    host       Hostname of the MySQL server holding the Bugzilla\n"
-"               database.\n"
-"    db         Name of the Bugzilla database in MySQL. Default 'bugs'.\n"
-"    user       Username to use to access MySQL server. Default 'bugs'.\n"
-"    password   Password to use to access MySQL server.\n"
-"    timeout    Database connection timeout (seconds). Default 5.\n"
-"    version    Bugzilla version. Specify '3.0' for Bugzilla versions\n"
-"               3.0 and later, '2.18' for Bugzilla versions from 2.18\n"
-"               and '2.16' for versions prior to 2.18.\n"
-"    bzuser     Fallback Bugzilla user name to record comments with, if\n"
-"               changeset committer cannot be found as a Bugzilla user.\n"
-"    bzdir      Bugzilla install directory. Used by default notify.\n"
-"               Default '/var/www/html/bugzilla'.\n"
-"    notify     The command to run to get Bugzilla to send bug change\n"
-"               notification emails. Substitutes from a map with 3\n"
-"               keys, 'bzdir', 'id' (bug id) and 'user' (committer\n"
-"               bugzilla email). Default depends on version; from 2.18\n"
-"               it is \"cd %(bzdir)s && perl -T contrib/sendbugmail.pl\n"
-"               %(id)s %(user)s\".\n"
-"    regexp     Regular expression to match bug IDs in changeset commit\n"
-"               message. Must contain one \"()\" group. The default\n"
-"               expression matches 'Bug 1234', 'Bug no. 1234', 'Bug\n"
-"               number 1234', 'Bugs 1234,5678', 'Bug 1234 and 5678' and\n"
-"               variations thereof. Matching is case insensitive.\n"
-"    style      The style file to use when formatting comments.\n"
-"    template   Template to use when formatting comments. Overrides\n"
-"               style if specified. In addition to the usual Mercurial\n"
-"               keywords, the extension specifies:\n"
-"                   {bug}       The Bugzilla bug ID.\n"
-"                   {root}      The full pathname of the Mercurial\n"
-"                               repository.\n"
-"                   {webroot}   Stripped pathname of the Mercurial\n"
-"                               repository.\n"
-"                   {hgweb}     Base URL for browsing Mercurial\n"
-"                               repositories.\n"
-"               Default 'changeset {node|short} in repo {root} refers '\n"
-"                       'to bug {bug}.\\ndetails:\\n\\t{desc|tabindent}'\n"
-"    strip      The number of slashes to strip from the front of {root}\n"
-"               to produce {webroot}. Default 0.\n"
-"    usermap    Path of file containing Mercurial committer ID to\n"
-"               Bugzilla user ID mappings. If specified, the file\n"
-"               should contain one mapping per line,\n"
-"               \"committer\"=\"Bugzilla user\". See also the [usermap]\n"
-"               section.\n"
-"\n"
-"    [usermap]\n"
-"    Any entries in this section specify mappings of Mercurial\n"
-"    committer ID to Bugzilla user ID. See also [bugzilla].usermap.\n"
-"    \"committer\"=\"Bugzilla user\"\n"
-"\n"
-"    [web]\n"
-"    baseurl    Base URL for browsing Mercurial repositories. Reference\n"
-"               from templates as {hgweb}.\n"
-"\n"
-"Activating the extension:\n"
+"The extension is configured through three different configuration\n"
+"sections. These keys are recognized in the [bugzilla] section:\n"
+"\n"
+"host\n"
+"  Hostname of the MySQL server holding the Bugzilla database.\n"
+"\n"
+"db\n"
+"  Name of the Bugzilla database in MySQL. Default 'bugs'.\n"
+"\n"
+"user\n"
+"  Username to use to access MySQL server. Default 'bugs'.\n"
+"\n"
+"password\n"
+"  Password to use to access MySQL server.\n"
+"\n"
+"timeout\n"
+"  Database connection timeout (seconds). Default 5.\n"
+"\n"
+"version\n"
+"  Bugzilla version. Specify '3.0' for Bugzilla versions 3.0 and later,\n"
+"  '2.18' for Bugzilla versions from 2.18 and '2.16' for versions prior\n"
+"  to 2.18.\n"
+"\n"
+"bzuser\n"
+"  Fallback Bugzilla user name to record comments with, if changeset\n"
+"  committer cannot be found as a Bugzilla user.\n"
+"\n"
+"bzdir\n"
+"   Bugzilla install directory. Used by default notify. Default\n"
+"   '/var/www/html/bugzilla'.\n"
+"\n"
+"notify\n"
+"  The command to run to get Bugzilla to send bug change notification\n"
+"  emails. Substitutes from a map with 3 keys, 'bzdir', 'id' (bug id)\n"
+"  and 'user' (committer bugzilla email). Default depends on version;\n"
+"  from 2.18 it is \"cd %(bzdir)s && perl -T contrib/sendbugmail.pl\n"
+"  %(id)s %(user)s\".\n"
+"\n"
+"regexp\n"
+"  Regular expression to match bug IDs in changeset commit message.\n"
+"  Must contain one \"()\" group. The default expression matches 'Bug\n"
+"  1234', 'Bug no. 1234', 'Bug number 1234', 'Bugs 1234,5678', 'Bug\n"
+"  1234 and 5678' and variations thereof. Matching is case insensitive.\n"
+"\n"
+"style\n"
+"  The style file to use when formatting comments.\n"
+"\n"
+"template\n"
+"  Template to use when formatting comments. Overrides style if\n"
+"  specified. In addition to the usual Mercurial keywords, the\n"
+"  extension specifies::\n"
+"\n"
+"    {bug}       The Bugzilla bug ID.\n"
+"    {root}      The full pathname of the Mercurial repository.\n"
+"    {webroot}   Stripped pathname of the Mercurial repository.\n"
+"    {hgweb}     Base URL for browsing Mercurial repositories.\n"
+"\n"
+"  Default 'changeset {node|short} in repo {root} refers '\n"
+"          'to bug {bug}.\\ndetails:\\n\\t{desc|tabindent}'\n"
+"\n"
+"strip\n"
+"  The number of slashes to strip from the front of {root} to produce\n"
+"  {webroot}. Default 0.\n"
+"\n"
+"usermap\n"
+"  Path of file containing Mercurial committer ID to Bugzilla user ID\n"
+"  mappings. If specified, the file should contain one mapping per\n"
+"  line, \"committer\"=\"Bugzilla user\". See also the [usermap] section.\n"
+"\n"
+"The [usermap] section is used to specify mappings of Mercurial\n"
+"committer ID to Bugzilla user ID. See also [bugzilla].usermap.\n"
+"\"committer\"=\"Bugzilla user\"\n"
+"\n"
+"Finally, the [web] section supports one entry:\n"
+"\n"
+"baseurl\n"
+"  Base URL for browsing Mercurial repositories. Reference from\n"
+"  templates as {hgweb}.\n"
+"\n"
+"Activating the extension::\n"
 "\n"
 "    [extensions]\n"
 "    hgext.bugzilla =\n"
@@ -322,7 +950,7 @@
 "\n"
 "This example configuration is for a collection of Mercurial\n"
 "repositories in /var/local/hg/repos/ used with a local Bugzilla 3.2\n"
-"installation in /opt/bugzilla-3.2.\n"
+"installation in /opt/bugzilla-3.2. ::\n"
 "\n"
 "    [bugzilla]\n"
 "    host=localhost\n"
@@ -330,8 +958,9 @@
 "    version=3.0\n"
 "    bzuser=unknown@domain.com\n"
 "    bzdir=/opt/bugzilla-3.2\n"
-"    template=Changeset {node|short} in {root|basename}.\\n{hgweb}/{webroot}/"
-"rev/{node|short}\\n\\n{desc}\\n\n"
+"    template=Changeset {node|short} in {root|basename}.\n"
+"             {hgweb}/{webroot}/rev/{node|short}\\n\n"
+"             {desc}\\n\n"
 "    strip=5\n"
 "\n"
 "    [web]\n"
@@ -340,7 +969,7 @@
 "    [usermap]\n"
 "    user@emaildomain.com=user.name@bugzilladomain.com\n"
 "\n"
-"Commits add a comment to the Bugzilla bug record of the form:\n"
+"Commits add a comment to the Bugzilla bug record of the form::\n"
 "\n"
 "    Changeset 3b16791d6642 in repository-name.\n"
 "    http://dev.domain.com/hg/repository-name/rev/3b16791d6642\n"
@@ -420,7 +1049,7 @@
 msgstr ""
 
 #, fuzzy
-msgid "display children changesets"
+msgid "command to display child changesets"
 msgstr "列出修改集"
 
 #, fuzzy
@@ -448,7 +1077,7 @@
 msgid "hg children [-r REV] [FILE]"
 msgstr ""
 
-msgid "display statistics about repository history"
+msgid "command to display statistics about repository history"
 msgstr ""
 
 #, python-format
@@ -472,7 +1101,7 @@
 "    alternatively the number of matching revisions if the\n"
 "    --changesets option is specified.\n"
 "\n"
-"    Examples:\n"
+"    Examples::\n"
 "\n"
 "      # display count of changed lines for every committer\n"
 "      hg churn -t '{author|email}'\n"
@@ -487,19 +1116,15 @@
 "      hg churn -f '%Y' -s\n"
 "\n"
 "    It is possible to map alternate email addresses to a main address\n"
-"    by providing a file using the following format:\n"
-"\n"
-"    <alias email> <actual email>\n"
-"\n"
-"    Such a file may be specified with the --aliases option, otherwise a\n"
-"    .hgchurn file will be looked for in the working directory root.\n"
+"    by providing a file using the following format::\n"
+"\n"
+"      <alias email> <actual email>\n"
+"\n"
+"    Such a file may be specified with the --aliases option, otherwise\n"
+"    a .hgchurn file will be looked for in the working directory root.\n"
 "    "
 msgstr ""
 
-#, python-format
-msgid "assuming %i character terminal\n"
-msgstr ""
-
 msgid "count rate for the specified revision or range"
 msgstr ""
 
@@ -542,48 +1167,54 @@
 "function (aka ANSI escape codes). This module also provides the\n"
 "render_text function, which can be used to add effects to any text.\n"
 "\n"
-"Default effects may be overridden from the .hgrc file:\n"
-"\n"
-"[color]\n"
-"status.modified = blue bold underline red_background\n"
-"status.added = green bold\n"
-"status.removed = red bold blue_background\n"
-"status.deleted = cyan bold underline\n"
-"status.unknown = magenta bold underline\n"
-"status.ignored = black bold\n"
-"\n"
-"# 'none' turns off all effects\n"
-"status.clean = none\n"
-"status.copied = none\n"
-"\n"
-"qseries.applied = blue bold underline\n"
-"qseries.unapplied = black bold\n"
-"qseries.missing = red bold\n"
-"\n"
-"diff.diffline = bold\n"
-"diff.extended = cyan bold\n"
-"diff.file_a = red bold\n"
-"diff.file_b = green bold\n"
-"diff.hunk = magenta\n"
-"diff.deleted = red\n"
-"diff.inserted = green\n"
-"diff.changed = white\n"
-"diff.trailingwhitespace = bold red_background\n"
+"Default effects may be overridden from the .hgrc file::\n"
+"\n"
+"  [color]\n"
+"  status.modified = blue bold underline red_background\n"
+"  status.added = green bold\n"
+"  status.removed = red bold blue_background\n"
+"  status.deleted = cyan bold underline\n"
+"  status.unknown = magenta bold underline\n"
+"  status.ignored = black bold\n"
+"\n"
+"  # 'none' turns off all effects\n"
+"  status.clean = none\n"
+"  status.copied = none\n"
+"\n"
+"  qseries.applied = blue bold underline\n"
+"  qseries.unapplied = black bold\n"
+"  qseries.missing = red bold\n"
+"\n"
+"  diff.diffline = bold\n"
+"  diff.extended = cyan bold\n"
+"  diff.file_a = red bold\n"
+"  diff.file_b = green bold\n"
+"  diff.hunk = magenta\n"
+"  diff.deleted = red\n"
+"  diff.inserted = green\n"
+"  diff.changed = white\n"
+"  diff.trailingwhitespace = bold red_background\n"
 msgstr ""
 
 msgid "when to colorize (always, auto, or never)"
 msgstr ""
 
-msgid "don't colorize output"
-msgstr ""
-
-msgid "import from foreign VCS repositories into Mercurial"
+#, fuzzy
+msgid "don't colorize output (DEPRECATED)"
+msgstr "编辑提交日志(不赞成)"
+
+#, python-format
+msgid "ignoring unknown color/effect %r (configured in color.%s)\n"
+msgstr ""
+
+msgid "import revisions from foreign VCS repositories into Mercurial"
 msgstr ""
 
 msgid ""
 "convert a foreign SCM repository to a Mercurial one.\n"
 "\n"
 "    Accepted source formats [identifiers]:\n"
+"\n"
 "    - Mercurial [hg]\n"
 "    - CVS [cvs]\n"
 "    - Darcs [darcs]\n"
@@ -595,6 +1226,7 @@
 "    - Perforce [p4]\n"
 "\n"
 "    Accepted destination formats [identifiers]:\n"
+"\n"
 "    - Mercurial [hg]\n"
 "    - Subversion [svn] (history on branches is not preserved)\n"
 "\n"
@@ -606,23 +1238,28 @@
 "    basename of the source with '-hg' appended. If the destination\n"
 "    repository doesn't exist, it will be created.\n"
 "\n"
-"    By default, all sources except Mercurial will use\n"
-"    --branchsort. Mercurial uses --sourcesort to preserve original\n"
-"    revision numbers order. Sort modes have the following effects:\n"
-"      --branchsort: convert from parent to child revision when\n"
-"        possible, which means branches are usually converted one after\n"
-"        the other. It generates more compact repositories.\n"
-"      --datesort: sort revisions by date. Converted repositories have\n"
-"        good-looking changelogs but are often an order of magnitude\n"
-"        larger than the same ones generated by --branchsort.\n"
-"      --sourcesort: try to preserve source revisions order, only\n"
-"        supported by Mercurial sources.\n"
+"    By default, all sources except Mercurial will use --branchsort.\n"
+"    Mercurial uses --sourcesort to preserve original revision numbers\n"
+"    order. Sort modes have the following effects:\n"
+"\n"
+"    --branchsort  convert from parent to child revision when possible,\n"
+"                  which means branches are usually converted one after\n"
+"                  the other. It generates more compact repositories.\n"
+"\n"
+"    --datesort    sort revisions by date. Converted repositories have\n"
+"                  good-looking changelogs but are often an order of\n"
+"                  magnitude larger than the same ones generated by\n"
+"                  --branchsort.\n"
+"\n"
+"    --sourcesort  try to preserve source revisions order, only\n"
+"                  supported by Mercurial sources.\n"
 "\n"
 "    If <REVMAP> isn't given, it will be put in a default location\n"
 "    (<dest>/.hg/shamap by default). The <REVMAP> is a simple text file\n"
 "    that maps each source commit ID to the destination ID for that\n"
-"    revision, like so:\n"
-"    <source ID> <destination ID>\n"
+"    revision, like so::\n"
+"\n"
+"      <source ID> <destination ID>\n"
 "\n"
 "    If the file doesn't exist, it's automatically created. It's\n"
 "    updated on each commit copied, so convert-repo can be interrupted\n"
@@ -636,7 +1273,7 @@
 "\n"
 "    The filemap is a file that allows filtering and remapping of files\n"
 "    and directories. Comment lines start with '#'. Each line can\n"
-"    contain one of the following directives:\n"
+"    contain one of the following directives::\n"
 "\n"
 "      include path/to/file\n"
 "\n"
@@ -646,11 +1283,11 @@
 "\n"
 "    The 'include' directive causes a file, or all files under a\n"
 "    directory, to be included in the destination repository, and the\n"
-"    exclusion of all other files and directories not explicitly included.\n"
-"    The 'exclude' directive causes files or directories to be omitted.\n"
-"    The 'rename' directive renames a file or directory. To rename from\n"
-"    a subdirectory into the root of the repository, use '.' as the\n"
-"    path to rename to.\n"
+"    exclusion of all other files and directories not explicitly\n"
+"    included. The 'exclude' directive causes files or directories to\n"
+"    be omitted. The 'rename' directive renames a file or directory. To\n"
+"    rename from a subdirectory into the root of the repository, use\n"
+"    '.' as the path to rename to.\n"
 "\n"
 "    The splicemap is a file that allows insertion of synthetic\n"
 "    history, letting you specify the parents of a revision. This is\n"
@@ -675,7 +1312,7 @@
 "    in one repository from \"default\" to a named branch.\n"
 "\n"
 "    Mercurial Source\n"
-"    -----------------\n"
+"    ----------------\n"
 "\n"
 "    --config convert.hg.ignoreerrors=False    (boolean)\n"
 "        ignore integrity errors when reading. Use it to fix Mercurial\n"
@@ -700,43 +1337,31 @@
 "    converted, and that any directory reorganization in the CVS\n"
 "    sandbox is ignored.\n"
 "\n"
-"    Because CVS does not have changesets, it is necessary to collect\n"
-"    individual commits to CVS and merge them into changesets. CVS\n"
-"    source uses its internal changeset merging code by default but can\n"
-"    be configured to call the external 'cvsps' program by setting:\n"
-"        --config convert.cvsps='cvsps -A -u --cvs-direct -q'\n"
-"    This option is deprecated and will be removed in Mercurial 1.4.\n"
-"\n"
 "    The options shown are the defaults.\n"
 "\n"
-"    Internal cvsps is selected by setting\n"
-"        --config convert.cvsps=builtin\n"
-"    and has a few more configurable options:\n"
-"        --config convert.cvsps.cache=True     (boolean)\n"
-"            Set to False to disable remote log caching, for testing and\n"
-"            debugging purposes.\n"
-"        --config convert.cvsps.fuzz=60        (integer)\n"
-"            Specify the maximum time (in seconds) that is allowed\n"
-"            between commits with identical user and log message in a\n"
-"            single changeset. When very large files were checked in as\n"
-"            part of a changeset then the default may not be long\n"
-"            enough.\n"
-"        --config convert.cvsps.mergeto='{{mergetobranch ([-\\w]+)}}'\n"
-"            Specify a regular expression to which commit log messages\n"
-"            are matched. If a match occurs, then the conversion\n"
-"            process will insert a dummy revision merging the branch on\n"
-"            which this log message occurs to the branch indicated in\n"
-"            the regex.\n"
-"        --config convert.cvsps.mergefrom='{{mergefrombranch ([-\\w]+)}}'\n"
-"            Specify a regular expression to which commit log messages\n"
-"            are matched. If a match occurs, then the conversion\n"
-"            process will add the most recent revision on the branch\n"
-"            indicated in the regex as the second parent of the\n"
-"            changeset.\n"
-"\n"
-"    The hgext/convert/cvsps wrapper script allows the builtin\n"
+"    --config convert.cvsps.cache=True         (boolean)\n"
+"        Set to False to disable remote log caching, for testing and\n"
+"        debugging purposes.\n"
+"    --config convert.cvsps.fuzz=60            (integer)\n"
+"        Specify the maximum time (in seconds) that is allowed between\n"
+"        commits with identical user and log message in a single\n"
+"        changeset. When very large files were checked in as part of a\n"
+"        changeset then the default may not be long enough.\n"
+"    --config convert.cvsps.mergeto='{{mergetobranch ([-\\w]+)}}'\n"
+"        Specify a regular expression to which commit log messages are\n"
+"        matched. If a match occurs, then the conversion process will\n"
+"        insert a dummy revision merging the branch on which this log\n"
+"        message occurs to the branch indicated in the regex.\n"
+"    --config convert.cvsps.mergefrom='{{mergefrombranch ([-\\w]+)}}'\n"
+"        Specify a regular expression to which commit log messages are\n"
+"        matched. If a match occurs, then the conversion process will\n"
+"        add the most recent revision on the branch indicated in the\n"
+"        regex as the second parent of the changeset.\n"
+"\n"
+"    An additional \"debugcvsps\" Mercurial command allows the builtin\n"
 "    changeset merging code to be run without doing a conversion. Its\n"
-"    parameters and output are similar to that of cvsps 2.1.\n"
+"    parameters and output are similar to that of cvsps 2.1. Please see\n"
+"    the command help for more details.\n"
 "\n"
 "    Subversion Source\n"
 "    -----------------\n"
@@ -782,7 +1407,6 @@
 "    --config convert.p4.startrev=0            (perforce changelist number)\n"
 "        specify initial Perforce revision.\n"
 "\n"
-"\n"
 "    Mercurial Destination\n"
 "    ---------------------\n"
 "\n"
@@ -900,18 +1524,10 @@
 msgstr ""
 
 #, python-format
-msgid "running: %s\n"
-msgstr ""
-
-#, python-format
 msgid "%s error:\n"
 msgstr ""
 
 #, python-format
-msgid "%s %s"
-msgstr ""
-
-#, python-format
 msgid "syntax error in %s(%d): key/value pair expected"
 msgstr ""
 
@@ -985,17 +1601,9 @@
 msgid "--sourcesort is not supported by this data source"
 msgstr ""
 
-msgid ""
-"warning: support for external cvsps is deprecated and will be removed in "
-"Mercurial 1.4\n"
-msgstr ""
-
-#, python-format
-msgid "revision %s is not a patchset number or date"
-msgstr ""
-
-msgid "using builtin cvsps\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "revision %s is not a patchset number"
+msgstr "svn: 版本 %s 不是整数"
 
 #, python-format
 msgid "connecting to %s\n"
@@ -1004,7 +1612,9 @@
 msgid "CVS pserver authentication failed"
 msgstr ""
 
-msgid "server sucks"
+#, python-format
+msgid ""
+"unexpected response from CVS server (expected \"Valid-requests\", but got %r)"
 msgstr ""
 
 #, python-format
@@ -1038,10 +1648,6 @@
 msgid "running %s\n"
 msgstr ""
 
-#, python-format
-msgid "prefix=%r directory=%r root=%r\n"
-msgstr ""
-
 msgid "RCS file must be followed by working file"
 msgstr ""
 
@@ -1054,10 +1660,6 @@
 msgid "revision must be followed by date line"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "found synthetic revision in %s: %r\n"
-msgstr "版本 %d 有未知路径: %s\n"
-
 #, python-format
 msgid "writing cvs log cache %s\n"
 msgstr ""
@@ -1082,13 +1684,13 @@
 msgid "%d changeset entries\n"
 msgstr ""
 
+#, python-format
+msgid "darcs version 2.1 or newer needed (found %r)"
+msgstr ""
+
 msgid "Python ElementTree module is not available"
 msgstr ""
 
-#, python-format
-msgid "cleaning up %s\n"
-msgstr ""
-
 msgid "internal calling inconsistency"
 msgstr ""
 
@@ -1123,22 +1725,6 @@
 msgstr ""
 
 #, python-format
-msgid "applying revision %s...\n"
-msgstr ""
-
-#, python-format
-msgid "computing changeset between %s and %s...\n"
-msgstr ""
-
-#, python-format
-msgid "obtaining revision %s...\n"
-msgstr ""
-
-#, python-format
-msgid "analyzing revision %s...\n"
-msgstr ""
-
-#, python-format
 msgid "could not parse cat-log of %s"
 msgstr ""
 
@@ -1150,12 +1736,6 @@
 msgid "initializing destination %s repository\n"
 msgstr "初始化目标版本库 %s\n"
 
-msgid "run hg sink pre-conversion action\n"
-msgstr "执行动作 hg sink pre-conversion\n"
-
-msgid "run hg sink post-conversion action\n"
-msgstr "执行动作 hg sink post-conversion action\n"
-
 #, python-format
 msgid "pulling from %s into %s\n"
 msgstr "自 %s 拉到 %s\n"
@@ -1174,12 +1754,6 @@
 msgid "ignoring: %s\n"
 msgstr "忽略: %s\n"
 
-msgid "run hg source pre-conversion action\n"
-msgstr "执行动作 hg source pre-conversion\n"
-
-msgid "run hg source post-conversion action\n"
-msgstr "执行动作 hg source post-conversion\n"
-
 #, python-format
 msgid "%s does not look like a monotone repo"
 msgstr "%s 不像是单纯的 monotone 版本库"
@@ -1194,6 +1768,9 @@
 msgid "collecting p4 changelists\n"
 msgstr "正在搜索 p4 修改集\n"
 
+msgid "Mercurial failed to run itself, check hg executable is in PATH"
+msgstr ""
+
 msgid "Subversion python bindings could not be loaded"
 msgstr "不能加载 svn 的 python 绑定"
 
@@ -1245,69 +1822,22 @@
 msgstr "在版本 %d 没有发现标签\n"
 
 #, python-format
-msgid "ignoring foreign branch %r\n"
-msgstr "忽略外部分支 %r\n"
-
-#, python-format
 msgid "%s not found up to revision %d"
 msgstr "没有发现 %s,一直到版本 %d"
 
 #, python-format
-msgid "branch renamed from %s to %s at %d\n"
-msgstr "分支从 %s 改名为 %s,在 %d\n"
-
-#, python-format
-msgid "reparent to %s\n"
-msgstr ""
-
-#, python-format
-msgid "copied to %s from %s@%s\n"
-msgstr "复制到 %s,自 %s@%s\n"
-
-#, python-format
-msgid "gone from %s\n"
-msgstr "离开 %s\n"
-
-#, fuzzy, python-format
-msgid "entry %s\n"
-msgstr "基本,入口 %s %s\n"
-
-#, python-format
-msgid "unknown path in revision %d: %s\n"
-msgstr "版本 %d 有未知路径: %s\n"
-
-#, python-format
-msgid "mark %s came from %s:%d\n"
-msgstr "标记 %s 来自 %s:%d\n"
-
-#, python-format
-msgid "parsing revision %d (%d changes)\n"
-msgstr "解析版本 %d (%d 个改变)\n"
-
-#, python-format
 msgid "found parent of branch %s at %d: %s\n"
 msgstr "发现分支 %s 的父亲,在 %d: %s\n"
 
-msgid "no copyfrom path, don't know what to do.\n"
-msgstr "没有 copyfrom 路径,不知道该怎么办。\n"
-
 #, python-format
 msgid "fetching revision log for \"%s\" from %d to %d\n"
 msgstr "为 \"%s\" 获取版本日志,自 %d 到 %d\n"
 
 #, python-format
-msgid "revision %d has no entries\n"
-msgstr "版本 %d 没有入口\n"
-
-#, python-format
 msgid "svn: branch has no revision %s"
 msgstr "svn: 分支没有版本 %s"
 
 #, python-format
-msgid "%r is not under %r, ignoring\n"
-msgstr "%r 不在 %r 之下,忽略之\n"
-
-#, python-format
 msgid "initializing svn repo %r\n"
 msgstr "初始化 svn 版本库 %r\n"
 
@@ -1325,16 +1855,16 @@
 msgstr ""
 
 msgid ""
-"allow external programs to compare revisions\n"
-"\n"
-"The `extdiff' Mercurial extension allows you to use external programs\n"
-"to compare revisions, or revision with working directory. The external diff\n"
-"programs are called with a configurable set of options and two\n"
+"command to allow external programs to compare revisions\n"
+"\n"
+"The extdiff Mercurial extension allows you to use external programs\n"
+"to compare revisions, or revision with working directory. The external\n"
+"diff programs are called with a configurable set of options and two\n"
 "non-option arguments: paths to directories containing snapshots of\n"
 "files to compare.\n"
 "\n"
-"The `extdiff' extension also allows to configure new diff commands, so\n"
-"you do not need to type \"hg extdiff -p kdiff3\" always.\n"
+"The extdiff extension also allows to configure new diff commands, so\n"
+"you do not need to type \"hg extdiff -p kdiff3\" always. ::\n"
 "\n"
 "  [extdiff]\n"
 "  # add new command that runs GNU diff(1) in 'context diff' mode\n"
@@ -1350,13 +1880,13 @@
 "  meld =\n"
 "\n"
 "  # add new command called vimdiff, runs gvimdiff with DirDiff plugin\n"
-"  # (see http://www.vim.org/scripts/script.php?script_id=102)\n"
-"  # Non English user, be sure to put \"let g:DirDiffDynamicDiffText = 1\" in\n"
+"  # (see http://www.vim.org/scripts/script.php?script_id=102) Non\n"
+"  # English user, be sure to put \"let g:DirDiffDynamicDiffText = 1\" in\n"
 "  # your .vimrc\n"
 "  vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'\n"
 "\n"
 "You can use -I/-X and list of file or directory names like normal \"hg\n"
-"diff\" command. The `extdiff' extension makes snapshots of only needed\n"
+"diff\" command. The extdiff extension makes snapshots of only needed\n"
 "files, so running the external diff program will actually be pretty\n"
 "fast (at least faster than having to compare the entire tree).\n"
 msgstr ""
@@ -1372,14 +1902,6 @@
 msgid "cannot specify --rev and --change at the same time"
 msgstr "不能同时指定 '--rev' 和 '--change'"
 
-#, python-format
-msgid "running %r in %s\n"
-msgstr ""
-
-#, python-format
-msgid "file changed while diffing. Overwriting: %s (src: %s)\n"
-msgstr ""
-
 msgid "cleaning up temp directory\n"
 msgstr ""
 
@@ -1415,6 +1937,21 @@
 msgstr ""
 
 #, python-format
+msgid ""
+"use %(path)s to diff repository (or selected files)\n"
+"\n"
+"    Show differences between revisions for the specified files, using the\n"
+"    %(path)s program.\n"
+"\n"
+"    When two revision arguments are given, then changes are shown between\n"
+"    those revisions. If only one revision is specified then that revision "
+"is\n"
+"    compared to the working directory, and, when no revisions are "
+"specified,\n"
+"    the working directory files are compared to its parent."
+msgstr ""
+
+#, python-format
 msgid "hg %s [OPTION]... [FILE]..."
 msgstr ""
 
@@ -1482,10 +2019,6 @@
 msgstr ""
 
 #, python-format
-msgid "Automated merge with %s"
-msgstr ""
-
-#, python-format
 msgid "new changeset %d:%s merges remote changes with local\n"
 msgstr "新修改集 '%d:%s' 将远程修改与本地合并\n"
 
@@ -1505,7 +2038,7 @@
 msgstr ""
 
 #, fuzzy
-msgid "sign and verify changesets"
+msgid "commands to sign and verify changesets"
 msgstr "正在增加修改集\n"
 
 msgid "error while verifying signature"
@@ -1558,10 +2091,6 @@
 "force)"
 msgstr ""
 
-#, python-format
-msgid "Added signature for changeset %s"
-msgstr ""
-
 msgid "unknown signature version"
 msgstr ""
 
@@ -1590,7 +2119,7 @@
 msgstr ""
 
 msgid ""
-"show revision graphs in terminals\n"
+"command to view revision graphs from a shell\n"
 "\n"
 "This extension adds a --graph option to the incoming, outgoing and log\n"
 "commands. When this options is given, an ASCII representation of the\n"
@@ -1635,40 +2164,40 @@
 msgstr ""
 
 msgid ""
-"integrate Mercurial with a CIA notification service\n"
-"\n"
-"This is meant to be run as a changegroup or incoming hook.\n"
-"To configure it, set the following options in your hgrc:\n"
-"\n"
-"[cia]\n"
-"# your registered CIA user name\n"
-"user = foo\n"
-"# the name of the project in CIA\n"
-"project = foo\n"
-"# the module (subproject) (optional)\n"
-"#module = foo\n"
-"# Append a diffstat to the log message (optional)\n"
-"#diffstat = False\n"
-"# Template to use for log messages (optional)\n"
-"#template = {desc}\\n{baseurl}/rev/{node}-- {diffstat}\n"
-"# Style to use (optional)\n"
-"#style = foo\n"
-"# The URL of the CIA notification service (optional)\n"
-"# You can use mailto: URLs to send by email, eg\n"
-"# mailto:cia@cia.vc\n"
-"# Make sure to set email.from if you do this.\n"
-"#url = http://cia.vc/\n"
-"# print message instead of sending it (optional)\n"
-"#test = False\n"
-"\n"
-"[hooks]\n"
-"# one of these:\n"
-"changegroup.cia = python:hgcia.hook\n"
-"#incoming.cia = python:hgcia.hook\n"
-"\n"
-"[web]\n"
-"# If you want hyperlinks (optional)\n"
-"baseurl = http://server/path/to/repo\n"
+"hooks for integrating with the CIA.vc notification service\n"
+"\n"
+"This is meant to be run as a changegroup or incoming hook. To\n"
+"configure it, set the following options in your hgrc::\n"
+"\n"
+"  [cia]\n"
+"  # your registered CIA user name\n"
+"  user = foo\n"
+"  # the name of the project in CIA\n"
+"  project = foo\n"
+"  # the module (subproject) (optional)\n"
+"  #module = foo\n"
+"  # Append a diffstat to the log message (optional)\n"
+"  #diffstat = False\n"
+"  # Template to use for log messages (optional)\n"
+"  #template = {desc}\\n{baseurl}/rev/{node}-- {diffstat}\n"
+"  # Style to use (optional)\n"
+"  #style = foo\n"
+"  # The URL of the CIA notification service (optional)\n"
+"  # You can use mailto: URLs to send by email, eg\n"
+"  # mailto:cia@cia.vc\n"
+"  # Make sure to set email.from if you do this.\n"
+"  #url = http://cia.vc/\n"
+"  # print message instead of sending it (optional)\n"
+"  #test = False\n"
+"\n"
+"  [hooks]\n"
+"  # one of these:\n"
+"  changegroup.cia = python:hgcia.hook\n"
+"  #incoming.cia = python:hgcia.hook\n"
+"\n"
+"  [web]\n"
+"  # If you want hyperlinks (optional)\n"
+"  baseurl = http://server/path/to/repo\n"
 msgstr ""
 
 #, python-format
@@ -1678,12 +2207,6 @@
 msgid "email.from must be defined when sending by email"
 msgstr ""
 
-msgid "cia: no user specified"
-msgstr ""
-
-msgid "cia: no project specified"
-msgstr ""
-
 msgid ""
 "browse the repository in a graphical way\n"
 "\n"
@@ -1699,19 +2222,19 @@
 "\n"
 "The hg view command will launch the hgk Tcl script. For this command\n"
 "to work, hgk must be in your search path. Alternately, you can specify\n"
-"the path to hgk in your .hgrc file:\n"
+"the path to hgk in your .hgrc file::\n"
 "\n"
 "  [hgk]\n"
 "  path=/location/of/hgk\n"
 "\n"
 "hgk can make use of the extdiff extension to visualize revisions.\n"
-"Assuming you had already configured extdiff vdiff command, just add:\n"
+"Assuming you had already configured extdiff vdiff command, just add::\n"
 "\n"
 "  [hgk]\n"
 "  vdiff=vdiff\n"
 "\n"
 "Revisions context menu will now display additional entries to fire\n"
-"vdiff on hovered and selected revisions."
+"vdiff on hovered and selected revisions.\n"
 msgstr ""
 
 msgid "diff trees from two commits"
@@ -1771,7 +2294,7 @@
 msgid "hg debug-config"
 msgstr ""
 
-msgid "hg debug-merge-base node node"
+msgid "hg debug-merge-base REV REV"
 msgstr ""
 
 msgid "ignored"
@@ -1792,26 +2315,24 @@
 msgid "max-count"
 msgstr ""
 
-msgid "hg debug-rev-list [options] revs"
-msgstr ""
-
-msgid ""
-"syntax highlighting for hgweb\n"
+msgid "hg debug-rev-list [OPTION]... REV..."
+msgstr ""
+
+msgid ""
+"syntax highlighting for hgweb (requires Pygments)\n"
 "\n"
 "It depends on the Pygments syntax highlighting library:\n"
 "http://pygments.org/\n"
 "\n"
-"There is a single configuration option:\n"
-"\n"
-"[web]\n"
-"pygments_style = <style>\n"
+"There is a single configuration option::\n"
+"\n"
+"  [web]\n"
+"  pygments_style = <style>\n"
 "\n"
 "The default is 'colorful'.\n"
-"\n"
-"-- Adam Hupp <adam@hupp.org>\n"
-msgstr ""
-
-msgid "accelerate status report using system level services"
+msgstr ""
+
+msgid "accelerate status report using Linux's inotify service"
 msgstr ""
 
 msgid "start an inotify server for this repository"
@@ -1839,15 +2360,12 @@
 msgid "name of file to write process ID to"
 msgstr "写入进程标识符的文件名称"
 
-msgid "hg inserve [OPT]..."
+msgid "hg inserve [OPTION]..."
 msgstr ""
 
 msgid "(found dead inotify server socket; removing it)\n"
 msgstr ""
 
-msgid "(starting inotify server)\n"
-msgstr ""
-
 #, python-format
 msgid "could not start inotify server: %s\n"
 msgstr ""
@@ -1856,9 +2374,6 @@
 msgid "could not talk to new inotify server: %s\n"
 msgstr ""
 
-msgid "(inotify server not running)\n"
-msgstr ""
-
 #, python-format
 msgid "failed to contact inotify server: %s\n"
 msgstr ""
@@ -1916,10 +2431,6 @@
 msgstr ""
 
 #, python-format
-msgid "status: %r dir(%d) -> %s\n"
-msgstr ""
-
-#, python-format
 msgid "status: %r %s -> %s\n"
 msgstr ""
 
@@ -1988,12 +2499,12 @@
 msgid ""
 "expand expressions into changelog and summaries\n"
 "\n"
-"This extension allows the use of a special syntax in summaries,\n"
-"which will be automatically expanded into links or any other\n"
-"arbitrary expression, much like InterWiki does.\n"
-"\n"
-"A few example patterns (link to bug tracking, etc.) that may\n"
-"be used in your hgrc:\n"
+"This extension allows the use of a special syntax in summaries, which\n"
+"will be automatically expanded into links or any other arbitrary\n"
+"expression, much like InterWiki does.\n"
+"\n"
+"A few example patterns (link to bug tracking, etc.) that may be used\n"
+"in your hgrc::\n"
 "\n"
 "  [interhg]\n"
 "  issues = s!issue(\\d+)!<a href=\"http://bts/issue\\1\">issue\\1</a>!\n"
@@ -2023,20 +2534,22 @@
 "Configuration is done in the [keyword] and [keywordmaps] sections of\n"
 "hgrc files.\n"
 "\n"
-"Example:\n"
+"Example::\n"
 "\n"
 "    [keyword]\n"
 "    # expand keywords in every python file except those matching \"x*\"\n"
 "    **.py =\n"
 "    x*    = ignore\n"
 "\n"
-"Note: the more specific you are in your filename patterns\n"
-"      the less you lose speed in huge repositories.\n"
+"NOTE: the more specific you are in your filename patterns the less you\n"
+"lose speed in huge repositories.\n"
 "\n"
 "For [keywordmaps] template mapping and expansion demonstration and\n"
-"control run \"hg kwdemo\".\n"
-"\n"
-"An additional date template filter {date|utcdate} is provided.\n"
+"control run \"hg kwdemo\". See \"hg help templates\" for a list of\n"
+"available templates and filters.\n"
+"\n"
+"An additional date template filter {date|utcdate} is provided. It\n"
+"returns a date like \"2006/09/18 15:13:13\".\n"
 "\n"
 "The default template mappings (view with \"hg kwdemo -d\") can be\n"
 "replaced with customized keywords and templates. Again, run \"hg\n"
@@ -2055,8 +2568,8 @@
 "have been checked in.\n"
 "\n"
 "Expansions spanning more than one line and incremental expansions,\n"
-"like CVS' $Log$, are not supported. A keyword template map\n"
-"\"Log = {desc}\" expands to the first line of the changeset description.\n"
+"like CVS' $Log$, are not supported. A keyword template map \"Log =\n"
+"{desc}\" expands to the first line of the changeset description.\n"
 msgstr ""
 
 #, python-format
@@ -2079,41 +2592,59 @@
 "    Show current, custom, or default keyword template maps and their\n"
 "    expansions.\n"
 "\n"
-"    Extend current configuration by specifying maps as arguments and\n"
-"    optionally by reading from an additional hgrc file.\n"
-"\n"
-"    Override current keyword template maps with \"default\" option.\n"
+"    Extend the current configuration by specifying maps as arguments\n"
+"    and using -f/--rcfile to source an external hgrc file.\n"
+"\n"
+"    Use -d/--default to disable current configuration.\n"
+"\n"
+"    See \"hg help templates\" for information on templates and filters.\n"
 "    "
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-"\t%s\n"
-msgstr ""
-
 #, fuzzy, python-format
 msgid "creating temporary repository at %s\n"
 msgstr ""
 "\n"
 "正在删除临时版本库 %s\n"
 
-#, python-format
-msgid ""
-"\n"
-"%s keywords written to %s:\n"
+msgid ""
+"\n"
+"\tconfiguration using custom keyword template maps\n"
+msgstr ""
+
+msgid "\textending current template maps\n"
+msgstr ""
+
+msgid "\toverriding default template maps\n"
+msgstr ""
+
+msgid ""
+"\n"
+"\tconfiguration using default keyword template maps\n"
+msgstr ""
+
+#, fuzzy
+msgid "\tdisabling current template maps\n"
+msgstr "使用指定的样式显示"
+
+msgid ""
+"\n"
+"\tconfiguration using current keyword template maps\n"
+msgstr ""
+
+#, python-format
+msgid ""
+"\n"
+"keywords written to %s:\n"
 msgstr ""
 
 msgid "unhooked all commit hooks\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-"removing temporary repository %s\n"
-msgstr ""
-"\n"
-"正在删除临时版本库 %s\n"
+msgid ""
+"\n"
+"\tkeywords expanded\n"
+msgstr ""
 
 msgid ""
 "expand keywords in the working directory\n"
@@ -2125,11 +2656,25 @@
 msgstr ""
 
 msgid ""
-"print files currently configured for keyword expansion\n"
-"\n"
-"    Crosscheck which files in working directory are potential targets\n"
-"    for keyword expansion. That is, files matched by [keyword] config\n"
-"    patterns but not symlinks.\n"
+"show files configured for keyword expansion\n"
+"\n"
+"    List which files in the working directory are matched by the\n"
+"    [keyword] configuration patterns.\n"
+"\n"
+"    Useful to prevent inadvertent keyword expansion and to speed up\n"
+"    execution by including only files that are actual candidates for\n"
+"    expansion.\n"
+"\n"
+"    See \"hg help keyword\" on how to construct patterns both for\n"
+"    inclusion and exclusion of files.\n"
+"\n"
+"    With -A/--all and -v/--verbose the codes used to show the status\n"
+"    of files are::\n"
+"\n"
+"      K = keyword expansion candidate\n"
+"      k = keyword expansion candidate (not tracked)\n"
+"      I = ignored\n"
+"      i = ignored (not tracked)\n"
 "    "
 msgstr ""
 
@@ -2161,7 +2706,15 @@
 msgid "show files excluded from expansion"
 msgstr ""
 
-msgid "additionally show untracked files"
+#, fuzzy
+msgid "only show unknown (not tracked) files"
+msgstr "只显示未知(未被跟踪)文件的状态"
+
+#, fuzzy
+msgid "show keyword status flags of all files (DEPRECATED)"
+msgstr "显示全部文件的状态"
+
+msgid "only show untracked files (DEPRECATED)"
 msgstr ""
 
 msgid "hg kwfiles [OPTION]... [FILE]..."
@@ -2171,7 +2724,7 @@
 msgstr ""
 
 msgid ""
-"work with a stack of patches\n"
+"manage a stack of patches\n"
 "\n"
 "This extension lets you work with a stack of patches in a Mercurial\n"
 "repository. It manages two stacks of patches - all known patches, and\n"
@@ -2180,19 +2733,18 @@
 "Known patches are represented as patch files in the .hg/patches\n"
 "directory. Applied patches are both patch files and changesets.\n"
 "\n"
-"Common tasks (use \"hg help command\" for more details):\n"
-"\n"
-"prepare repository to work with patches   qinit\n"
-"create new patch                          qnew\n"
-"import existing patch                     qimport\n"
-"\n"
-"print patch series                        qseries\n"
-"print applied patches                     qapplied\n"
-"print name of top applied patch           qtop\n"
-"\n"
-"add known patch to applied stack          qpush\n"
-"remove patch from applied stack           qpop\n"
-"refresh contents of top applied patch     qrefresh\n"
+"Common tasks (use \"hg help command\" for more details)::\n"
+"\n"
+"  prepare repository to work with patches   qinit\n"
+"  create new patch                          qnew\n"
+"  import existing patch                     qimport\n"
+"\n"
+"  print patch series                        qseries\n"
+"  print applied patches                     qapplied\n"
+"\n"
+"  add known patch to applied stack          qpush\n"
+"  remove patch from applied stack           qpop\n"
+"  refresh contents of top applied patch     qrefresh\n"
 msgstr ""
 
 #, python-format
@@ -2211,10 +2763,6 @@
 msgstr ""
 
 #, python-format
-msgid "active guards: %s\n"
-msgstr ""
-
-#, python-format
 msgid "guard %r too short"
 msgstr ""
 
@@ -2427,6 +2975,10 @@
 msgid "deletions found between repo revs"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "popping %s\n"
+msgstr "使用 %s\n"
+
 msgid "patch queue now empty\n"
 msgstr ""
 
@@ -2434,7 +2986,8 @@
 msgstr ""
 
 msgid ""
-"refresh interrupted while patch was popped! (revert --all, qpush to recover)\n"
+"refresh interrupted while patch was popped! (revert --all, qpush to "
+"recover)\n"
 msgstr ""
 
 msgid "patch queue directory already exists"
@@ -2531,11 +3084,9 @@
 msgid ""
 "remove patches from queue\n"
 "\n"
-"    The patches must not be applied, and at least one patch is\n"
-"    required.\n"
-"\n"
-"    With -k/--keep, the patch files are preserved in the patch\n"
-"    directory.\n"
+"    The patches must not be applied, and at least one patch is required. "
+"With\n"
+"    -k/--keep, the patch files are preserved in the patch directory.\n"
 "\n"
 "    To stop managing a patch and move it into permanent history,\n"
 "    use the qfinish command."
@@ -2544,9 +3095,15 @@
 msgid "print the patches already applied"
 msgstr ""
 
+msgid "only one patch applied\n"
+msgstr ""
+
 msgid "print the patches not yet applied"
 msgstr ""
 
+msgid "all patches applied\n"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "import a patch\n"
@@ -2656,15 +3213,9 @@
 msgid "print the name of the next patch"
 msgstr ""
 
-msgid "all patches applied\n"
-msgstr ""
-
 msgid "print the name of the previous patch"
 msgstr ""
 
-msgid "only one patch applied\n"
-msgstr ""
-
 msgid ""
 "create a new patch\n"
 "\n"
@@ -3003,7 +3554,11 @@
 msgid "print first line of patch header"
 msgstr ""
 
-msgid "hg qapplied [-s] [PATCH]"
+#, fuzzy
+msgid "show only the last patch"
+msgstr "只显示已增加文件的状态"
+
+msgid "hg qapplied [-1] [-s] [PATCH]"
 msgstr ""
 
 msgid "use pull protocol to copy metadata"
@@ -3123,7 +3678,8 @@
 msgid "queue name to pop"
 msgstr "操作的队列名称"
 
-msgid "forget any local changes"
+#, fuzzy
+msgid "forget any local changes to patched files"
 msgstr "丢弃本地修改"
 
 msgid "hg qpop [-a] [-n NAME] [-f] [PATCH | INDEX]"
@@ -3150,16 +3706,18 @@
 msgid "refresh only files already in the patch and specified files"
 msgstr "仅当文件已经在补丁或指定文件中时才更新"
 
-msgid "add/update \"From: <current user>\" in patch"
-msgstr "在补丁中增加/更新 \"From: <current user>\""
-
-msgid "add/update \"From: <given user>\" in patch"
-msgstr "在补丁中增加/更新 \"From: <given user>\""
-
-msgid "update \"Date: <current date>\" in patch (if present)"
-msgstr "在补丁中更新 \"Date: <current date>\" (如果存在)"
-
-msgid "update \"Date: <given date>\" in patch (if present)"
+msgid "add/update author field in patch with current user"
+msgstr ""
+
+msgid "add/update author field in patch with given user"
+msgstr ""
+
+#, fuzzy
+msgid "add/update date field in patch with current date"
+msgstr "在补丁中更新 \"Date: <given date>\" (如果存在)"
+
+#, fuzzy
+msgid "add/update date field in patch with given date"
 msgstr "在补丁中更新 \"Date: <given date>\" (如果存在)"
 
 msgid "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l FILE] [-s] [FILE]..."
@@ -3229,75 +3787,83 @@
 msgid "hg qtop [-s]"
 msgstr ""
 
-msgid "hg qunapplied [-s] [PATCH]"
+#, fuzzy
+msgid "show only the first patch"
+msgstr "只显示已增加文件的状态"
+
+msgid "hg qunapplied [-1] [-s] [PATCH]"
 msgstr ""
 
 msgid "finish all applied changesets"
 msgstr ""
 
-msgid "hg qfinish [-a] [REV...]"
-msgstr ""
-
-msgid ""
-"send e-mail notifications for commits/pushes\n"
-"\n"
-"Subscriptions can be managed through hgrc. Default mode is to print\n"
-"messages to stdout, for testing and configuring.\n"
-"\n"
-"To use, configure notify extension and enable in hgrc like this:\n"
-"\n"
-"   [extensions]\n"
-"   hgext.notify =\n"
-"\n"
-"   [hooks]\n"
-"   # one email for each incoming changeset\n"
-"   incoming.notify = python:hgext.notify.hook\n"
-"   # batch emails when many changesets incoming at one time\n"
-"   changegroup.notify = python:hgext.notify.hook\n"
-"\n"
-"   [notify]\n"
-"   # config items go in here\n"
-"\n"
-" config items:\n"
-"\n"
-" REQUIRED:\n"
-"   config = /path/to/file # file containing subscriptions\n"
-"\n"
-" OPTIONAL:\n"
-"   test = True            # print messages to stdout for testing\n"
-"   strip = 3              # number of slashes to strip for url paths\n"
-"   domain = example.com   # domain to use if committer missing domain\n"
-"   style = ...            # style file to use when formatting email\n"
-"   template = ...         # template to use when formatting email\n"
-"   incoming = ...         # template to use when run as incoming hook\n"
-"   changegroup = ...      # template when run as changegroup hook\n"
-"   maxdiff = 300          # max lines of diffs to include (0=none, -1=all)\n"
-"   maxsubject = 67        # truncate subject line longer than this\n"
-"   diffstat = True        # add a diffstat before the diff content\n"
-"   sources = serve        # notify if source of incoming changes in this "
+msgid "hg qfinish [-a] [REV]..."
+msgstr ""
+
+msgid ""
+"hooks for sending email notifications at commit/push time\n"
+"\n"
+"Subscriptions can be managed through a hgrc file. Default mode is to\n"
+"print messages to stdout, for testing and configuring.\n"
+"\n"
+"To use, configure the notify extension and enable it in hgrc like\n"
+"this::\n"
+"\n"
+"  [extensions]\n"
+"  hgext.notify =\n"
+"\n"
+"  [hooks]\n"
+"  # one email for each incoming changeset\n"
+"  incoming.notify = python:hgext.notify.hook\n"
+"  # batch emails when many changesets incoming at one time\n"
+"  changegroup.notify = python:hgext.notify.hook\n"
+"\n"
+"  [notify]\n"
+"  # config items go here\n"
+"\n"
+"Required configuration items::\n"
+"\n"
+"  config = /path/to/file # file containing subscriptions\n"
+"\n"
+"Optional configuration items::\n"
+"\n"
+"  test = True            # print messages to stdout for testing\n"
+"  strip = 3              # number of slashes to strip for url paths\n"
+"  domain = example.com   # domain to use if committer missing domain\n"
+"  style = ...            # style file to use when formatting email\n"
+"  template = ...         # template to use when formatting email\n"
+"  incoming = ...         # template to use when run as incoming hook\n"
+"  changegroup = ...      # template when run as changegroup hook\n"
+"  maxdiff = 300          # max lines of diffs to include (0=none, -1=all)\n"
+"  maxsubject = 67        # truncate subject line longer than this\n"
+"  diffstat = True        # add a diffstat before the diff content\n"
+"  sources = serve        # notify if source of incoming changes in this "
 "list\n"
-"                          # (serve == ssh or http, push, pull, bundle)\n"
-"   [email]\n"
-"   from = user@host.com   # email address to send as if none given\n"
-"   [web]\n"
-"   baseurl = http://hgserver/... # root of hg web site for browsing commits\n"
-"\n"
-" notify config file has same format as regular hgrc. it has two\n"
-" sections so you can express subscriptions in whatever way is handier\n"
-" for you.\n"
-"\n"
-"   [usersubs]\n"
-"   # key is subscriber email, value is \",\"-separated list of glob patterns\n"
-"   user@host = pattern\n"
-"\n"
-"   [reposubs]\n"
-"   # key is glob pattern, value is \",\"-separated list of subscriber emails\n"
-"   pattern = user@host\n"
-"\n"
-" glob patterns are matched against path to repository root.\n"
-"\n"
-" if you like, you can put notify config file in repository that users\n"
-" can push changes to, they can manage their own subscriptions."
+"                         # (serve == ssh or http, push, pull, bundle)\n"
+"  merge = False          # send notification for merges (default True)\n"
+"  [email]\n"
+"  from = user@host.com   # email address to send as if none given\n"
+"  [web]\n"
+"  baseurl = http://hgserver/... # root of hg web site for browsing commits\n"
+"\n"
+"The notify config file has same format as a regular hgrc file. It has\n"
+"two sections so you can express subscriptions in whatever way is\n"
+"handier for you.\n"
+"\n"
+"::\n"
+"\n"
+"  [usersubs]\n"
+"  # key is subscriber email, value is \",\"-separated list of glob patterns\n"
+"  user@host = pattern\n"
+"\n"
+"  [reposubs]\n"
+"  # key is glob pattern, value is \",\"-separated list of subscriber emails\n"
+"  pattern = user@host\n"
+"\n"
+"Glob patterns are matched against path to repository root.\n"
+"\n"
+"If you like, you can put notify config file in repository that users\n"
+"can push changes to, they can manage their own subscriptions.\n"
 msgstr ""
 
 #, python-format
@@ -3323,17 +3889,13 @@
 msgstr ""
 
 #, python-format
-msgid "notify: no subscribers to repository %s\n"
-msgstr ""
-
-#, python-format
-msgid "notify: changes have source \"%s\" - skipping\n"
+msgid "notify: suppressing notification for merge %d:%s\n"
 msgstr ""
 
 msgid ""
 "browse command output with an external pager\n"
 "\n"
-"To set the pager that should be used, set the application variable:\n"
+"To set the pager that should be used, set the application variable::\n"
 "\n"
 "  [pager]\n"
 "  pager = LESS='FSRX' less\n"
@@ -3342,19 +3904,19 @@
 "$PAGER. If neither pager.pager, nor $PAGER is set, no pager is used.\n"
 "\n"
 "If you notice \"BROKEN PIPE\" error messages, you can disable them by\n"
-"setting:\n"
+"setting::\n"
 "\n"
 "  [pager]\n"
 "  quiet = True\n"
 "\n"
 "You can disable the pager for certain commands by adding them to the\n"
-"pager.ignore list:\n"
+"pager.ignore list::\n"
 "\n"
 "  [pager]\n"
 "  ignore = version, help, update\n"
 "\n"
 "You can also enable the pager only for certain commands using\n"
-"pager.attend:\n"
+"pager.attend::\n"
 "\n"
 "  [pager]\n"
 "  attend = log\n"
@@ -3371,22 +3933,22 @@
 "This extension allows you to use git-style suffixes to refer to the\n"
 "ancestors of a specific revision.\n"
 "\n"
-"For example, if you can refer to a revision as \"foo\", then:\n"
-"\n"
-"- foo^N = Nth parent of foo\n"
+"For example, if you can refer to a revision as \"foo\", then::\n"
+"\n"
+"  foo^N = Nth parent of foo\n"
 "  foo^0 = foo\n"
 "  foo^1 = first parent of foo\n"
 "  foo^2 = second parent of foo\n"
 "  foo^  = foo^1\n"
 "\n"
-"- foo~N = Nth first grandparent of foo\n"
+"  foo~N = Nth first grandparent of foo\n"
 "  foo~0 = foo\n"
 "  foo~1 = foo^1 = foo^ = first parent of foo\n"
 "  foo~2 = foo^1^1 = foo^^ = first parent of first parent of foo\n"
 msgstr ""
 
 msgid ""
-"send Mercurial changesets as a series of patch e-mails\n"
+"command to send changesets as (a series of) patch emails\n"
 "\n"
 "The series is started off with a \"[PATCH 0 of N]\" introduction, which\n"
 "describes the series as a whole.\n"
@@ -3395,11 +3957,9 @@
 "first line of the changeset description as the subject text. The\n"
 "message contains two or three body parts:\n"
 "\n"
-"  The changeset description.\n"
-"\n"
-"  [Optional] The result of running diffstat on the patch.\n"
-"\n"
-"  The patch itself, as generated by \"hg export\".\n"
+"- The changeset description.\n"
+"- [Optional] The result of running diffstat on the patch.\n"
+"- The patch itself, as generated by \"hg export\".\n"
 "\n"
 "Each message refers to the first in the series using the In-Reply-To\n"
 "and References headers, so they will show up as a sequence in threaded\n"
@@ -3410,7 +3970,7 @@
 "you are sending the right changes.\n"
 "\n"
 "To configure other defaults, add a section like this to your hgrc\n"
-"file:\n"
+"file::\n"
 "\n"
 "  [email]\n"
 "  from = My Name <my@email>\n"
@@ -3433,13 +3993,13 @@
 "patchbomb message in a pager or sending the messages directly, it will\n"
 "create a UNIX mailbox file with the patch emails. This mailbox file\n"
 "can be previewed with any mail user agent which supports UNIX mbox\n"
-"files, e.g. with mutt:\n"
+"files, e.g. with mutt::\n"
 "\n"
 "  % mutt -R -f mbox\n"
 "\n"
-"When you are previewing the patchbomb messages, you can use `formail'\n"
+"When you are previewing the patchbomb messages, you can use ``formail``\n"
 "(a utility that is commonly installed as part of the procmail\n"
-"package), to send each message out:\n"
+"package), to send each message out::\n"
 "\n"
 "  % formail -s sendmail -bm -t < mbox\n"
 "\n"
@@ -3449,7 +4009,11 @@
 "to be a sendmail compatible mailer or fill out the [smtp] section so\n"
 "that the patchbomb extension can automatically send patchbombs\n"
 "directly from the commandline. See the [email] and [smtp] sections in\n"
-"hgrc(5) for details."
+"hgrc(5) for details.\n"
+msgstr ""
+
+#, python-format
+msgid "%sPlease enter a valid value"
 msgstr ""
 
 msgid "Please enter a valid value.\n"
@@ -3489,23 +4053,24 @@
 "    single email containing a binary Mercurial bundle as an attachment\n"
 "    will be sent.\n"
 "\n"
-"    Examples:\n"
-"\n"
-"    hg email -r 3000          # send patch 3000 only\n"
-"    hg email -r 3000 -r 3001  # send patches 3000 and 3001\n"
-"    hg email -r 3000:3005     # send patches 3000 through 3005\n"
-"    hg email 3000             # send patch 3000 (deprecated)\n"
-"\n"
-"    hg email -o               # send all patches not in default\n"
-"    hg email -o DEST          # send all patches not in DEST\n"
-"    hg email -o -r 3000       # send all ancestors of 3000 not in default\n"
-"    hg email -o -r 3000 DEST  # send all ancestors of 3000 not in DEST\n"
-"\n"
-"    hg email -b               # send bundle of all patches not in default\n"
-"    hg email -b DEST          # send bundle of all patches not in DEST\n"
-"    hg email -b -r 3000       # bundle of all ancestors of 3000 not in "
+"    Examples::\n"
+"\n"
+"      hg email -r 3000          # send patch 3000 only\n"
+"      hg email -r 3000 -r 3001  # send patches 3000 and 3001\n"
+"      hg email -r 3000:3005     # send patches 3000 through 3005\n"
+"      hg email 3000             # send patch 3000 (deprecated)\n"
+"\n"
+"      hg email -o               # send all patches not in default\n"
+"      hg email -o DEST          # send all patches not in DEST\n"
+"      hg email -o -r 3000       # send all ancestors of 3000 not in default\n"
+"      hg email -o -r 3000 DEST  # send all ancestors of 3000 not in DEST\n"
+"\n"
+"      hg email -b               # send bundle of all patches not in default\n"
+"      hg email -b DEST          # send bundle of all patches not in DEST\n"
+"      hg email -b -r 3000       # bundle of all ancestors of 3000 not in "
 "default\n"
-"    hg email -b -r 3000 DEST  # bundle of all ancestors of 3000 not in DEST\n"
+"      hg email -b -r 3000 DEST  # bundle of all ancestors of 3000 not in "
+"DEST\n"
 "\n"
 "    Before using this command, you will need to enable email in your\n"
 "    hgrc. See the [email] section in hgrc(5) for details.\n"
@@ -3584,6 +4149,9 @@
 msgid "message identifier to reply to"
 msgstr ""
 
+msgid "flags to add in subject prefixes"
+msgstr ""
+
 msgid "email addresses of recipients"
 msgstr ""
 
@@ -3615,7 +4183,7 @@
 msgid "hg email [OPTION]... [DEST]..."
 msgstr ""
 
-msgid "delete files not tracked from the working directory"
+msgid "command to delete untracked files from the working directory"
 msgstr ""
 
 msgid ""
@@ -3625,13 +4193,16 @@
 "    and uncommitted changes in an otherwise-clean source tree.\n"
 "\n"
 "    This means that purge will delete:\n"
-"     - Unknown files: files marked with \"?\" by \"hg status\"\n"
-"     - Empty directories: in fact Mercurial ignores directories unless\n"
-"       they contain files under source control management\n"
+"\n"
+"    - Unknown files: files marked with \"?\" by \"hg status\"\n"
+"    - Empty directories: in fact Mercurial ignores directories unless\n"
+"      they contain files under source control management\n"
+"\n"
 "    But it will leave untouched:\n"
-"     - Modified and unmodified tracked files\n"
-"     - Ignored files (unless --all is specified)\n"
-"     - New files added to the repository (with \"hg add\")\n"
+"\n"
+"    - Modified and unmodified tracked files\n"
+"    - Ignored files (unless --all is specified)\n"
+"    - New files added to the repository (with \"hg add\")\n"
 "\n"
 "    If directories are given on the command line, only files in these\n"
 "    directories are considered.\n"
@@ -3676,16 +4247,13 @@
 msgstr ""
 
 msgid ""
-"move sets of revisions to a different ancestor\n"
+"command to move sets of revisions to a different ancestor\n"
 "\n"
 "This extension lets you rebase changesets in an existing Mercurial\n"
 "repository.\n"
 "\n"
 "For more information:\n"
-"http://www.selenic.com/mercurial/wiki/index.cgi/RebaseProject\n"
-msgstr ""
-
-msgid "first revision, do not change ancestor\n"
+"http://mercurial.selenic.com/wiki/RebaseExtension\n"
 msgstr ""
 
 msgid ""
@@ -3731,60 +4299,17 @@
 msgid "%d revisions have been skipped\n"
 msgstr ""
 
-msgid " set parents\n"
-msgstr ""
-
-#, python-format
-msgid "rebasing %d:%s\n"
-msgstr ""
-
-#, python-format
-msgid " future parents are %d and %d\n"
-msgstr ""
-
-#, python-format
-msgid " update to %d:%s\n"
-msgstr ""
-
-msgid " already in target\n"
-msgstr ""
-
-#, python-format
-msgid " merge against %d:%s\n"
-msgstr ""
-
 msgid "fix unresolved conflicts with hg resolve then run hg rebase --continue"
 msgstr ""
 
-msgid "resuming interrupted rebase\n"
-msgstr ""
-
 #, python-format
 msgid "no changes, revision %d skipped\n"
 msgstr ""
 
 #, python-format
-msgid "next revision set to %s\n"
-msgstr ""
-
-#, python-format
 msgid "cannot use revision %d as base, result would have 3 parents"
 msgstr ""
 
-#, python-format
-msgid "revision %d is an mq patch (%s), finalize it.\n"
-msgstr ""
-
-#, python-format
-msgid "import mq patch %d (%s)\n"
-msgstr ""
-
-msgid "rebase status stored\n"
-msgstr ""
-
-msgid "rebase status resumed\n"
-msgstr ""
-
 msgid "no rebase in progress"
 msgstr ""
 
@@ -3797,28 +4322,15 @@
 msgid "cannot rebase onto an applied mq patch"
 msgstr ""
 
-msgid "cannot rebase an ancestor"
-msgstr ""
-
-msgid "cannot rebase a descendant"
-msgstr ""
-
-msgid "already working on current\n"
-msgstr ""
-
-msgid "already working on the current branch\n"
-msgstr ""
-
-#, python-format
-msgid "rebase onto %d starting from %d\n"
+msgid "source is ancestor of destination"
+msgstr ""
+
+msgid "source is descendant of destination"
 msgstr ""
 
 msgid "unable to collapse, there is more than one external parent"
 msgstr ""
 
-msgid "--update and --rebase are not compatible, ignoring the update flag\n"
-msgstr ""
-
 msgid "rebase working directory to branch head"
 msgstr ""
 
@@ -3831,13 +4343,15 @@
 msgid "rebase onto a given revision"
 msgstr ""
 
-msgid "collapse the rebased revisions"
-msgstr ""
-
-msgid "keep original revisions"
-msgstr ""
-
-msgid "keep original branches"
+#, fuzzy
+msgid "collapse the rebased changesets"
+msgstr "打包不相关的修改集"
+
+#, fuzzy
+msgid "keep original changesets"
+msgstr "列出修改集"
+
+msgid "keep original branch names"
 msgstr ""
 
 msgid "continue an interrupted rebase"
@@ -3847,11 +4361,11 @@
 msgstr ""
 
 msgid ""
-"hg rebase [-s REV | -b REV] [-d REV] [--collapse] [--keep] [--keepbranches] | "
-"[-c] | [-a]"
-msgstr ""
-
-msgid "interactively select which sets of changes to commit/qrefresh"
+"hg rebase [-s REV | -b REV] [-d REV] [--collapse] [--keep] [--keepbranches] "
+"| [-c] | [-a]"
+msgstr ""
+
+msgid "commands to interactively select changes for commit/qrefresh"
 msgstr ""
 
 msgid "this modifies a binary file (all or nothing)\n"
@@ -3893,30 +4407,9 @@
 msgid "&?"
 msgstr ""
 
-msgid "y"
-msgstr ""
-
-msgid "?"
-msgstr ""
-
 msgid "y - record this change"
 msgstr ""
 
-msgid "s"
-msgstr ""
-
-msgid "f"
-msgstr ""
-
-msgid "d"
-msgstr ""
-
-msgid "a"
-msgstr ""
-
-msgid "q"
-msgstr ""
-
 msgid "user quit"
 msgstr "用户退出"
 
@@ -3927,6 +4420,9 @@
 msgid " and "
 msgstr ""
 
+msgid "y"
+msgstr ""
+
 #, python-format
 msgid "record this change to %r?"
 msgstr ""
@@ -3946,19 +4442,19 @@
 "    You will be prompted for whether to record changes to each\n"
 "    modified file, and for files with multiple changes, for each\n"
 "    change to use. For each query, the following responses are\n"
-"    possible:\n"
-"\n"
-"    y - record this change\n"
-"    n - skip this change\n"
-"\n"
-"    s - skip remaining changes to this file\n"
-"    f - record remaining changes to this file\n"
-"\n"
-"    d - done, skip remaining changes and files\n"
-"    a - record all changes to all remaining files\n"
-"    q - quit, recording no changes\n"
-"\n"
-"    ? - display help"
+"    possible::\n"
+"\n"
+"      y - record this change\n"
+"      n - skip this change\n"
+"\n"
+"      s - skip remaining changes to this file\n"
+"      f - record remaining changes to this file\n"
+"\n"
+"      d - done, skip remaining changes and files\n"
+"      a - record all changes to all remaining files\n"
+"      q - quit, recording no changes\n"
+"\n"
+"      ? - display help"
 msgstr ""
 
 msgid "'mq' extension not loaded"
@@ -3970,20 +4466,9 @@
 msgid "no changes to record\n"
 msgstr ""
 
-#, python-format
-msgid "backup %r as %r\n"
-msgstr ""
-
-msgid "applying patch\n"
-msgstr ""
-
 msgid "patch failed to apply"
 msgstr ""
 
-#, python-format
-msgid "restoring %r to %r\n"
-msgstr ""
-
 msgid "hg record [OPTION]... [FILE]..."
 msgstr ""
 
@@ -4011,7 +4496,7 @@
 msgstr ""
 
 msgid ""
-"transplant changesets from another branch\n"
+"command to transplant changesets from another branch\n"
 "\n"
 "This extension allows you to transplant patches from another branch.\n"
 "\n"
@@ -4074,9 +4559,9 @@
 "\n"
 "    Selected changesets will be applied on top of the current working\n"
 "    directory with the log of the original changeset. If --log is\n"
-"    specified, log messages will have a comment appended of the form:\n"
-"\n"
-"    (transplanted from CHANGESETHASH)\n"
+"    specified, log messages will have a comment appended of the form::\n"
+"\n"
+"      (transplanted from CHANGESETHASH)\n"
 "\n"
 "    You can rewrite the changelog message with the --filter option.\n"
 "    Its argument will be invoked with the current changelog message as\n"
@@ -4157,7 +4642,7 @@
 msgstr ""
 
 msgid ""
-"allow the use of MBCS paths with problematic encoding\n"
+"allow the use of MBCS paths with problematic encodings\n"
 "\n"
 "Some MBCS encodings are not good for some path operations (i.e.\n"
 "splitting path, case conversion, etc.) with its encoded bytes. We call\n"
@@ -4167,19 +4652,22 @@
 "operation.\n"
 "\n"
 "This extension is useful for:\n"
-" * Japanese Windows users using shift_jis encoding.\n"
-" * Chinese Windows users using big5 encoding.\n"
-" * All users who use a repository with one of problematic encodings on\n"
-"   case-insensitive file system.\n"
+"\n"
+"- Japanese Windows users using shift_jis encoding.\n"
+"- Chinese Windows users using big5 encoding.\n"
+"- All users who use a repository with one of problematic encodings on\n"
+"  case-insensitive file system.\n"
 "\n"
 "This extension is not needed for:\n"
-" * Any user who use only ASCII chars in path.\n"
-" * Any user who do not use any of problematic encodings.\n"
+"\n"
+"- Any user who use only ASCII chars in path.\n"
+"- Any user who do not use any of problematic encodings.\n"
 "\n"
 "Note that there are some limitations on using this extension:\n"
-" * You should use single encoding in one repository.\n"
-" * You should set same encoding for the repository by locale or\n"
-"   HGENCODING.\n"
+"\n"
+"- You should use single encoding in one repository.\n"
+"- You should set same encoding for the repository by locale or\n"
+"  HGENCODING.\n"
 "\n"
 "Path encoding conversion are done between Unicode and\n"
 "encoding.encoding which is decided by Mercurial from current locale\n"
@@ -4187,43 +4675,40 @@
 msgstr ""
 
 #, python-format
-msgid "[win32mbcs] filename conversion fail with %s encoding\n"
+msgid "[win32mbcs] filename conversion failed with %s encoding\n"
 msgstr ""
 
 msgid "[win32mbcs] cannot activate on this platform.\n"
 msgstr ""
 
-#, python-format
-msgid "[win32mbcs] activated with encoding: %s\n"
-msgstr ""
-
 msgid ""
 "perform automatic newline conversion\n"
 "\n"
-"To perform automatic newline conversion, use:\n"
-"\n"
-"[extensions]\n"
-"hgext.win32text =\n"
-"[encode]\n"
-"** = cleverencode:\n"
-"# or ** = macencode:\n"
-"\n"
-"[decode]\n"
-"** = cleverdecode:\n"
-"# or ** = macdecode:\n"
-"\n"
-"If not doing conversion, to make sure you do not commit CRLF/CR by accident:\n"
-"\n"
-"[hooks]\n"
-"pretxncommit.crlf = python:hgext.win32text.forbidcrlf\n"
-"# or pretxncommit.cr = python:hgext.win32text.forbidcr\n"
+"To perform automatic newline conversion, use::\n"
+"\n"
+"  [extensions]\n"
+"  hgext.win32text =\n"
+"  [encode]\n"
+"  ** = cleverencode:\n"
+"  # or ** = macencode:\n"
+"\n"
+"  [decode]\n"
+"  ** = cleverdecode:\n"
+"  # or ** = macdecode:\n"
+"\n"
+"If not doing conversion, to make sure you do not commit CRLF/CR by "
+"accident::\n"
+"\n"
+"  [hooks]\n"
+"  pretxncommit.crlf = python:hgext.win32text.forbidcrlf\n"
+"  # or pretxncommit.cr = python:hgext.win32text.forbidcr\n"
 "\n"
 "To do the same check on a server to prevent CRLF/CR from being\n"
-"pushed or pulled:\n"
-"\n"
-"[hooks]\n"
-"pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf\n"
-"# or pretxnchangegroup.cr = python:hgext.win32text.forbidcr\n"
+"pushed or pulled::\n"
+"\n"
+"  [hooks]\n"
+"  pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf\n"
+"  # or pretxnchangegroup.cr = python:hgext.win32text.forbidcr\n"
 msgstr ""
 
 #, python-format
@@ -4269,15 +4754,15 @@
 "without knowing their actual IP address.\n"
 "\n"
 "To allow other people to discover your repository using run \"hg serve\"\n"
-"in your repository.\n"
-"\n"
-" $ cd test\n"
-" $ hg serve\n"
-"\n"
-"You can discover zeroconf enabled repositories by running \"hg paths\".\n"
-"\n"
-" $ hg paths\n"
-" zc-test = http://example.com:8000/test\n"
+"in your repository::\n"
+"\n"
+"  $ cd test\n"
+"  $ hg serve\n"
+"\n"
+"You can discover zeroconf enabled repositories by running \"hg paths\"::\n"
+"\n"
+"  $ hg paths\n"
+"  zc-test = http://example.com:8000/test\n"
 msgstr ""
 
 msgid "archive prefix contains illegal components"
@@ -4512,6 +4997,10 @@
 msgid "HG: branch '%s'"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "HG: subrepo %s"
+msgstr "已删除"
+
 #, python-format
 msgid "HG: added %s"
 msgstr ""
@@ -4565,11 +5054,11 @@
 "    commit.\n"
 "\n"
 "    Use the -s/--similarity option to detect renamed files. With a\n"
-"    parameter > 0, this compares every removed file with every added\n"
-"    file and records those similar enough as renames. This option\n"
-"    takes a percentage between 0 (disabled) and 100 (files must be\n"
-"    identical) as its parameter. Detecting renamed files this way can\n"
-"    be expensive.\n"
+"    parameter greater than 0, this compares every removed file with\n"
+"    every added file and records those similar enough as renames. This\n"
+"    option takes a percentage between 0 (disabled) and 100 (files must\n"
+"    be identical) as its parameter. Detecting renamed files this way\n"
+"    can be expensive.\n"
 "    "
 msgstr ""
 
@@ -4622,14 +5111,14 @@
 "    directory; use -r/--rev to specify a different revision.\n"
 "\n"
 "    To specify the type of archive to create, use -t/--type. Valid\n"
-"    types are:\n"
-"\n"
-"    \"files\" (default): a directory full of files\n"
-"    \"tar\": tar archive, uncompressed\n"
-"    \"tbz2\": tar archive, compressed using bzip2\n"
-"    \"tgz\": tar archive, compressed using gzip\n"
-"    \"uzip\": zip archive, uncompressed\n"
-"    \"zip\": zip archive, compressed using deflate\n"
+"    types are::\n"
+"\n"
+"      \"files\" (default): a directory full of files\n"
+"      \"tar\": tar archive, uncompressed\n"
+"      \"tbz2\": tar archive, compressed using bzip2\n"
+"      \"tgz\": tar archive, compressed using gzip\n"
+"      \"uzip\": zip archive, uncompressed\n"
+"      \"zip\": zip archive, compressed using deflate\n"
 "\n"
 "    The exact name of the destination archive or directory is given\n"
 "    using a format string; see 'hg help export' for details.\n"
@@ -4692,10 +5181,6 @@
 msgstr ""
 
 #, python-format
-msgid "Backed out changeset %s"
-msgstr ""
-
-#, python-format
 msgid "changeset %s backs out changeset %s\n"
 msgstr ""
 
@@ -4757,10 +5242,6 @@
 msgstr ""
 
 #, python-format
-msgid "cannot find executable: %s"
-msgstr ""
-
-#, python-format
 msgid "failed to execute %s"
 msgstr ""
 
@@ -4773,7 +5254,7 @@
 msgstr "修改集:      %d:%s\n"
 
 #, python-format
-msgid "Testing changeset %s:%s (%s changesets remaining, ~%s tests)\n"
+msgid "Testing changeset %d:%s (%d changesets remaining, ~%d tests)\n"
 msgstr ""
 
 msgid ""
@@ -4792,7 +5273,8 @@
 "    the parent of the working directory, negating a previous branch\n"
 "    change.\n"
 "\n"
-"    Use the command 'hg update' to switch to an existing branch.\n"
+"    Use the command 'hg update' to switch to an existing branch. Use\n"
+"    'hg commit --close-branch' to mark this branch as closed.\n"
 "    "
 msgstr ""
 
@@ -4811,9 +5293,11 @@
 "list repository named branches\n"
 "\n"
 "    List the repository's named branches, indicating which ones are\n"
-"    inactive. If active is specified, only show active branches.\n"
-"\n"
-"    A branch is considered active if it contains repository heads.\n"
+"    inactive. If -c/--closed is specified, also list branches which have\n"
+"    been marked closed (see hg commit --close-branch).\n"
+"\n"
+"    If -a/--active is specified, only show active branches. A branch\n"
+"    is considered active if it contains repository heads.\n"
 "\n"
 "    Use the command 'hg update' to switch to an existing branch.\n"
 "    "
@@ -4830,8 +5314,8 @@
 "    parameters. To create a bundle containing all changesets, use\n"
 "    -a/--all (or --base null).\n"
 "\n"
-"    To change the compression method applied, use the -t/--type\n"
-"    option. The available compression methods are: none, bzip2, and\n"
+"    You can change compression method with the -t/--type option.\n"
+"    The available compression methods are: none, bzip2, and\n"
 "    gzip (by default, bundles are compressed using bzip2).\n"
 "\n"
 "    The bundle file can then be transferred using conventional means\n"
@@ -4859,11 +5343,11 @@
 "\n"
 "    Output may be to a file, in which case the name of the file is\n"
 "    given using a format string. The formatting rules are the same as\n"
-"    for the export command, with the following additions:\n"
-"\n"
-"    %s   basename of file being printed\n"
-"    %d   dirname of file being printed, or '.' if in repository root\n"
-"    %p   root-relative path name of file being printed\n"
+"    for the export command, with the following additions::\n"
+"\n"
+"      %s   basename of file being printed\n"
+"      %d   dirname of file being printed, or '.' if in repository root\n"
+"      %p   root-relative path name of file being printed\n"
 "    "
 msgstr ""
 
@@ -4902,7 +5386,7 @@
 "    avoid hardlinking.\n"
 "\n"
 "    In some cases, you can clone repositories and checked out files\n"
-"    using full hardlinks with\n"
+"    using full hardlinks with ::\n"
 "\n"
 "      $ cp -al REPO REPOCLONE\n"
 "\n"
@@ -4912,7 +5396,6 @@
 "    breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,\n"
 "    this is not compatible with certain extensions that place their\n"
 "    metadata under the .hg directory, such as mq.\n"
-"\n"
 "    "
 msgstr ""
 
@@ -4949,6 +5432,9 @@
 "    参见 'hg help dates' 以获得 '-d/--date' 的有效格式列表。\n"
 "    "
 
+msgid "nothing changed\n"
+msgstr "没有改变\n"
+
 msgid "created new head\n"
 msgstr "已经创建新顶点\n"
 
@@ -5097,13 +5583,13 @@
 msgstr ""
 
 msgid ""
-" (Current patch tool may be incompatible with patch, or misconfigured. Please "
-"check your .hgrc file)\n"
-msgstr ""
-
-msgid ""
-" Internal patcher failure, please report this error to http://www.selenic.com/"
-"mercurial/bts\n"
+" (Current patch tool may be incompatible with patch, or misconfigured. "
+"Please check your .hgrc file)\n"
+msgstr ""
+
+msgid ""
+" Internal patcher failure, please report this error to http://mercurial."
+"selenic.com/bts/\n"
 msgstr ""
 
 msgid "Checking commit editor...\n"
@@ -5206,16 +5692,16 @@
 "    first parent only.\n"
 "\n"
 "    Output may be to a file, in which case the name of the file is\n"
-"    given using a format string. The formatting rules are as follows:\n"
-"\n"
-"    %%   literal \"%\" character\n"
-"    %H   changeset hash (40 bytes of hexadecimal)\n"
-"    %N   number of patches being generated\n"
-"    %R   changeset revision number\n"
-"    %b   basename of the exporting repository\n"
-"    %h   short-form changeset hash (12 bytes of hexadecimal)\n"
-"    %n   zero-padded sequence number, starting at 1\n"
-"    %r   zero-padded changeset revision number\n"
+"    given using a format string. The formatting rules are as follows::\n"
+"\n"
+"      %%   literal \"%\" character\n"
+"      %H   changeset hash (40 bytes of hexadecimal)\n"
+"      %N   number of patches being generated\n"
+"      %R   changeset revision number\n"
+"      %b   basename of the exporting repository\n"
+"      %h   short-form changeset hash (12 bytes of hexadecimal)\n"
+"      %n   zero-padded sequence number, starting at 1\n"
+"      %r   zero-padded changeset revision number\n"
 "\n"
 "    Without the -a/--text option, export will avoid generating diffs\n"
 "    of files it detects as binary. With -a, export will generate a\n"
@@ -5315,25 +5801,31 @@
 "\n"
 "    With no arguments, show all repository head changesets.\n"
 "\n"
-"    Repository \"heads\" are changesets that don't have child\n"
-"    changesets. They are where development generally takes place and\n"
-"    are the usual targets for update and merge operations.\n"
+"    Repository \"heads\" are changesets with no child changesets. They are\n"
+"    where development generally takes place and are the usual targets\n"
+"    for update and merge operations.\n"
 "\n"
 "    If one or more REV is given, the \"branch heads\" will be shown for\n"
-"    the named branch associated with that revision. The name of the\n"
-"    branch is called the revision's branch tag.\n"
-"\n"
-"    Branch heads are revisions on a given named branch that do not have\n"
-"    any children on the same branch. A branch head could be a true head\n"
-"    or it could be the last changeset on a branch before a new branch\n"
-"    was created. If none of the branch heads are true heads, the branch\n"
-"    is considered inactive.\n"
-"\n"
-"    If STARTREV is specified only those heads (or branch heads) that\n"
-"    are descendants of STARTREV will be displayed.\n"
+"    the named branch associated with the specified changeset(s).\n"
+"\n"
+"    Branch heads are changesets on a named branch with no descendants on\n"
+"    the same branch. A branch head could be a \"true\" (repository) head,\n"
+"    or it could be the last changeset on that branch before it was\n"
+"    merged into another branch, or it could be the last changeset on the\n"
+"    branch before a new branch was created. If none of the branch heads\n"
+"    are true heads, the branch is considered inactive.\n"
+"\n"
+"    If -c/--closed is specified, also show branch heads marked closed\n"
+"    (see hg commit --close-branch).\n"
+"\n"
+"    If STARTREV is specified, only those heads that are descendants of\n"
+"    STARTREV will be displayed.\n"
 "    "
 msgstr ""
 
+msgid "you must specify a branch to use --closed"
+msgstr ""
+
 #, fuzzy, python-format
 msgid "no open branch heads on branch %s\n"
 msgstr "svn: 分支没有版本 %s"
@@ -5406,9 +5898,11 @@
 msgid "no help text available"
 msgstr "没有可用的帮助信息"
 
-#, python-format
-msgid "%s extension - %s\n"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"%s extension - %s\n"
+"\n"
+msgstr "** 已加载的扩展: %s\n"
 
 msgid "Mercurial Distributed SCM\n"
 msgstr "分布式软件配置管理工具 - 水银\n"
@@ -5474,7 +5968,8 @@
 "    With -s/--similarity, hg will attempt to discover renames and\n"
 "    copies in the patch in the same way as 'addremove'.\n"
 "\n"
-"    To read a patch from standard input, use \"-\" as the patch name.\n"
+"    To read a patch from standard input, use \"-\" as the patch name. If\n"
+"    a URL is specified, the patch will be downloaded from it.\n"
 "    See 'hg help dates' for a list of formats valid for -d/--date.\n"
 "    "
 msgstr ""
@@ -5485,12 +5980,6 @@
 msgid "no diffs found"
 msgstr ""
 
-#, python-format
-msgid ""
-"message:\n"
-"%s\n"
-msgstr ""
-
 #, fuzzy
 msgid "not a Mercurial patch"
 msgstr "%s 不是本地的水银版本库"
@@ -5829,15 +6318,15 @@
 "\n"
 "    The following table details the behavior of remove for different\n"
 "    file states (columns) and option combinations (rows). The file\n"
-"    states are Added [A], Clean [C], Modified [M] and Missing [!]\n"
-"    (as reported by hg status). The actions are Warn, Remove (from\n"
-"    branch) and Delete (from disk).\n"
-"\n"
-"           A  C  M  !\n"
-"    none   W  RD W  R\n"
-"    -f     R  RD RD R\n"
-"    -A     W  W  W  R\n"
-"    -Af    R  R  R  R\n"
+"    states are Added [A], Clean [C], Modified [M] and Missing [!] (as\n"
+"    reported by hg status). The actions are Warn, Remove (from branch)\n"
+"    and Delete (from disk)::\n"
+"\n"
+"             A  C  M  !\n"
+"      none   W  RD W  R\n"
+"      -f     R  RD RD R\n"
+"      -A     W  W  W  R\n"
+"      -Af    R  R  R  R\n"
 "\n"
 "    This command schedules the files to be removed at the next commit.\n"
 "    To undo a remove before that, see hg revert.\n"
@@ -5913,9 +6402,10 @@
 "    indicating whether or not files are resolved. All files must be\n"
 "    marked as resolved before a commit is permitted.\n"
 "\n"
-"    The codes used to show the status of files are:\n"
-"    U = unresolved\n"
-"    R = resolved\n"
+"    The codes used to show the status of files are::\n"
+"\n"
+"      U = unresolved\n"
+"      R = resolved\n"
 "    "
 msgstr ""
 
@@ -6005,7 +6495,7 @@
 "    Transactions are used to encapsulate the effects of all commands\n"
 "    that create new changesets or propagate existing changesets into a\n"
 "    repository. For example, the following commands are transactional,\n"
-"    and their effects can be rolled back:\n"
+"    and their effects can be rolled back::\n"
 "\n"
 "      commit\n"
 "      import\n"
@@ -6075,15 +6565,16 @@
 "    If two revisions are given, the differences between them are\n"
 "    shown.\n"
 "\n"
-"    The codes used to show the status of files are:\n"
-"    M = modified\n"
-"    A = added\n"
-"    R = removed\n"
-"    C = clean\n"
-"    ! = missing (deleted by non-hg command, but still tracked)\n"
-"    ? = not tracked\n"
-"    I = ignored\n"
-"      = origin of the previous file listed as A (added)\n"
+"    The codes used to show the status of files are::\n"
+"\n"
+"      M = modified\n"
+"      A = added\n"
+"      R = removed\n"
+"      C = clean\n"
+"      ! = missing (deleted by non-hg command, but still tracked)\n"
+"      ? = not tracked\n"
+"      I = ignored\n"
+"        = origin of the previous file listed as A (added)\n"
 "    "
 msgstr ""
 "显示工作目录中已改变的文件\n"
@@ -6114,6 +6605,103 @@
 "    "
 
 msgid ""
+"summarize working directory state\n"
+"\n"
+"    This generates a brief summary of the working directory state,\n"
+"    including parents, branch, commit status, and available updates.\n"
+"\n"
+"    With the --remote option, this will check the default paths for\n"
+"    incoming and outgoing changes. This can be time-consuming.\n"
+"    "
+msgstr ""
+
+#, fuzzy
+msgid " (empty repository)"
+msgstr "创建队列版本库"
+
+#, fuzzy
+msgid " (no revision checked out)"
+msgstr "要合并的版本"
+
+#, fuzzy, python-format
+msgid "parent: %d:%s %s\n"
+msgstr "父亲:        %d:%s\n"
+
+#, fuzzy, python-format
+msgid "branch: %s\n"
+msgstr "分支:        %s\n"
+
+#, python-format
+msgid "%d added"
+msgstr ""
+
+#, python-format
+msgid "%d modified"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%d removed"
+msgstr "已删除"
+
+#, python-format
+msgid "%d deleted"
+msgstr ""
+
+#, python-format
+msgid "%d ignored"
+msgstr ""
+
+#, python-format
+msgid "%d unknown"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%d unresolved"
+msgstr "未解决"
+
+#, fuzzy
+msgid " (merge)"
+msgstr "已合并"
+
+msgid " (new branch)"
+msgstr ""
+
+msgid " (clean)"
+msgstr ""
+
+msgid " (new branch head)"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "commit: %s\n"
+msgstr "中止: %s\n"
+
+msgid "update: (current)\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "update: %d new changesets (update)\n"
+msgstr "如果有新的修改集,就更新到最新版本"
+
+#, python-format
+msgid "update: %d new changesets, %d branch heads (merge)\n"
+msgstr ""
+
+msgid "1 or more incoming"
+msgstr ""
+
+#, python-format
+msgid "%d outgoing"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "remote: %s\n"
+msgstr "领域: %s\n"
+
+msgid "remote: (synced)\n"
+msgstr ""
+
+msgid ""
 "add one or more tags for the current or given revision\n"
 "\n"
 "    Name a particular revision using <name>.\n"
@@ -6158,17 +6746,9 @@
 msgstr "非本地版本库 '%s'"
 
 #, python-format
-msgid "Removed tag %s"
-msgstr ""
-
-#, python-format
 msgid "tag '%s' already exists (use -f to force)"
 msgstr ""
 
-#, python-format
-msgid "Added tag %s for changeset %s"
-msgstr ""
-
 msgid ""
 "list repository tags\n"
 "\n"
@@ -6252,6 +6832,9 @@
 "    参见 'hg help dates' 以获得 '-d/--date' 的有效格式列表。\n"
 "    "
 
+msgid "cannot specify both -c/--check and -C/--clean"
+msgstr ""
+
 #, fuzzy
 msgid "uncommitted local changes"
 msgstr "提交修改集 %d:%s\n"
@@ -6286,7 +6869,8 @@
 "这是自由软件,具体参见版权条款。这里没有任何担保,甚至没有适合\n"
 "特定目的的隐含的担保。\n"
 
-msgid "repository root directory or symbolic path name"
+#, fuzzy
+msgid "repository root directory or name of overlay bundle file"
 msgstr "版本库的根目录或符号路径名称"
 
 msgid "change working directory"
@@ -6479,6 +7063,10 @@
 msgid "show only branches that have unmerged heads"
 msgstr ""
 
+#, fuzzy
+msgid "show normal and closed branches"
+msgstr "只显示已增加文件的状态"
+
 msgid "[-a]"
 msgstr ""
 
@@ -6625,11 +7213,12 @@
 msgid "show only heads which are descendants of REV"
 msgstr ""
 
-msgid "show only the active heads from open branches"
-msgstr ""
+#, fuzzy
+msgid "show only the active branch heads from open branches"
+msgstr "svn: 分支没有版本 %s"
 
 #, fuzzy
-msgid "show normal and closed heads"
+msgid "show normal and closed branch heads"
 msgstr "只显示已增加文件的状态"
 
 msgid "[-r STARTREV] [REV]..."
@@ -6869,6 +7458,9 @@
 msgid "[-u] [NAME]..."
 msgstr ""
 
+msgid "check for push and pull"
+msgstr ""
+
 msgid "show status of all files"
 msgstr "显示全部文件的状态"
 
@@ -6946,36 +7538,6 @@
 msgid "branch name not in UTF-8!"
 msgstr ""
 
-#, python-format
-msgid "  searching for copies back to rev %d\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"  unmatched files in local:\n"
-"   %s\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"  unmatched files in other:\n"
-"   %s\n"
-msgstr ""
-
-msgid "  all copies found (* = to merge, ! = divergent):\n"
-msgstr ""
-
-msgid "  checking for directory renames\n"
-msgstr ""
-
-#, python-format
-msgid "  dir %s -> %s\n"
-msgstr ""
-
-#, python-format
-msgid "  file %s -> %s\n"
-msgstr ""
-
 msgid "working directory state appears damaged!"
 msgstr ""
 
@@ -7022,16 +7584,16 @@
 msgstr "中止: %s\n"
 
 #, python-format
+msgid "hg: %s\n"
+msgstr ""
+
+#, python-format
 msgid ""
 "hg: command '%s' is ambiguous:\n"
 "    %s\n"
 msgstr ""
 
 #, python-format
-msgid "hg: %s\n"
-msgstr ""
-
-#, python-format
 msgid "timed out waiting for lock held by %s"
 msgstr ""
 
@@ -7102,7 +7664,8 @@
 msgid "** unknown exception encountered, details follow\n"
 msgstr "** 遇到了未知异常,详细信息如下\n"
 
-msgid "** report bug details to http://www.selenic.com/mercurial/bts\n"
+#, fuzzy
+msgid "** report bug details to http://mercurial.selenic.com/bts/\n"
 msgstr "** 报告问题详情到 http://www.selenic.com/mercurial/bts\n"
 
 msgid "** or mercurial@selenic.com\n"
@@ -7128,12 +7691,6 @@
 msgid "alias '%s' resolves to ambiguous command '%s'\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "alias '%s' shadows command\n"
-msgstr ""
-"命令列表:\n"
-"\n"
-
 #, python-format
 msgid "malformed --config option: %s"
 msgstr "非法 '--config' 选项: %s"
@@ -7201,10 +7758,6 @@
 msgstr "工具 '%s' 需要 GUI\n"
 
 #, python-format
-msgid "picked tool '%s' for %s (binary %s symlink %s)\n"
-msgstr "选择工具 '%s',用于 %s(二进制 %s 符号链接 %s)\n"
-
-#, python-format
 msgid ""
 " no tool found to merge %s\n"
 "keep (l)ocal or take (o)ther?"
@@ -7218,9 +7771,6 @@
 msgid "&Other"
 msgstr ""
 
-msgid "l"
-msgstr ""
-
 #, python-format
 msgid "merging %s and %s to %s\n"
 msgstr ""
@@ -7230,13 +7780,6 @@
 msgstr ""
 
 #, python-format
-msgid "my %s other %s ancestor %s\n"
-msgstr ""
-
-msgid " premerge successful\n"
-msgstr ""
-
-#, python-format
 msgid ""
 " output file %s appears unchanged\n"
 "was merge successful (yn)?"
@@ -7248,9 +7791,6 @@
 msgid "&Yes"
 msgstr ""
 
-msgid "n"
-msgstr ""
-
 #, python-format
 msgid "merging %s failed!\n"
 msgstr ""
@@ -7263,44 +7803,6 @@
 msgid "unknown bisect kind %s"
 msgstr ""
 
-msgid ""
-"\n"
-"    Mercurial has the ability to add new features through the use of\n"
-"    extensions. Extensions may add new commands, add options to\n"
-"    existing commands, change the default behavior of commands, or\n"
-"    implement hooks.\n"
-"\n"
-"    Extensions are not loaded by default for a variety of reasons:\n"
-"    they can increase startup overhead; they may be meant for\n"
-"    advanced usage only; they may provide potentially dangerous\n"
-"    abilities (such as letting you destroy or modify history); they\n"
-"    might not be ready for prime time; or they may alter some\n"
-"    usual behaviors of stock Mercurial. It is thus up to the user to\n"
-"    activate extensions as needed.\n"
-"\n"
-"    To enable the \"foo\" extension, either shipped with Mercurial\n"
-"    or in the Python search path, create an entry for it in your\n"
-"    hgrc, like this:\n"
-"\n"
-"      [extensions]\n"
-"      foo =\n"
-"\n"
-"    You may also specify the full path to an extension:\n"
-"\n"
-"      [extensions]\n"
-"      myfeature = ~/.hgext/myfeature.py\n"
-"\n"
-"    To explicitly disable an extension enabled in an hgrc of broader\n"
-"    scope, prepend its path with !:\n"
-"\n"
-"      [extensions]\n"
-"      # disabling extension bar residing in /path/to/extension/bar.py\n"
-"      hgext.bar = !/path/to/extension/bar.py\n"
-"      # ditto, but no path was supplied for extension baz\n"
-"      hgext.baz = !\n"
-"    "
-msgstr ""
-
 #, fuzzy
 msgid "disabled extensions:"
 msgstr ""
@@ -7311,614 +7813,29 @@
 msgid "Date Formats"
 msgstr ""
 
-msgid ""
-"\n"
-"    Some commands allow the user to specify a date, e.g.:\n"
-"    * backout, commit, import, tag: Specify the commit date.\n"
-"    * log, revert, update: Select revision(s) by date.\n"
-"\n"
-"    Many date formats are valid. Here are some examples:\n"
-"\n"
-"    \"Wed Dec 6 13:18:29 2006\" (local timezone assumed)\n"
-"    \"Dec 6 13:18 -0600\" (year assumed, time offset provided)\n"
-"    \"Dec 6 13:18 UTC\" (UTC and GMT are aliases for +0000)\n"
-"    \"Dec 6\" (midnight)\n"
-"    \"13:18\" (today assumed)\n"
-"    \"3:39\" (3:39AM assumed)\n"
-"    \"3:39pm\" (15:39)\n"
-"    \"2006-12-06 13:18:29\" (ISO 8601 format)\n"
-"    \"2006-12-6 13:18\"\n"
-"    \"2006-12-6\"\n"
-"    \"12-6\"\n"
-"    \"12/6\"\n"
-"    \"12/6/6\" (Dec 6 2006)\n"
-"\n"
-"    Lastly, there is Mercurial's internal format:\n"
-"\n"
-"    \"1165432709 0\" (Wed Dec 6 13:18:29 2006 UTC)\n"
-"\n"
-"    This is the internal representation format for dates. unixtime is\n"
-"    the number of seconds since the epoch (1970-01-01 00:00 UTC).\n"
-"    offset is the offset of the local timezone, in seconds west of UTC\n"
-"    (negative if the timezone is east of UTC).\n"
-"\n"
-"    The log command also accepts date ranges:\n"
-"\n"
-"    \"<{datetime}\" - at or before a given date/time\n"
-"    \">{datetime}\" - on or after a given date/time\n"
-"    \"{datetime} to {datetime}\" - a date range, inclusive\n"
-"    \"-{days}\" - within a given number of days of today\n"
-"    "
-msgstr ""
-
 msgid "File Name Patterns"
 msgstr ""
 
-msgid ""
-"\n"
-"    Mercurial accepts several notations for identifying one or more\n"
-"    files at a time.\n"
-"\n"
-"    By default, Mercurial treats filenames as shell-style extended\n"
-"    glob patterns.\n"
-"\n"
-"    Alternate pattern notations must be specified explicitly.\n"
-"\n"
-"    To use a plain path name without any pattern matching, start it\n"
-"    with \"path:\". These path names must completely match starting at\n"
-"    the current repository root.\n"
-"\n"
-"    To use an extended glob, start a name with \"glob:\". Globs are\n"
-"    rooted at the current directory; a glob such as \"*.c\" will only\n"
-"    match files in the current directory ending with \".c\".\n"
-"\n"
-"    The supported glob syntax extensions are \"**\" to match any string\n"
-"    across path separators and \"{a,b}\" to mean \"a or b\".\n"
-"\n"
-"    To use a Perl/Python regular expression, start a name with \"re:\".\n"
-"    Regexp pattern matching is anchored at the root of the repository.\n"
-"\n"
-"    Plain examples:\n"
-"\n"
-"    path:foo/bar   a name bar in a directory named foo in the root of\n"
-"                   the repository\n"
-"    path:path:name a file or directory named \"path:name\"\n"
-"\n"
-"    Glob examples:\n"
-"\n"
-"    glob:*.c       any name ending in \".c\" in the current directory\n"
-"    *.c            any name ending in \".c\" in the current directory\n"
-"    **.c           any name ending in \".c\" in any subdirectory of the\n"
-"                   current directory including itself.\n"
-"    foo/*.c        any name ending in \".c\" in the directory foo\n"
-"    foo/**.c       any name ending in \".c\" in any subdirectory of foo\n"
-"                   including itself.\n"
-"\n"
-"    Regexp examples:\n"
-"\n"
-"    re:.*\\.c$      any name ending in \".c\", anywhere in the repository\n"
-"\n"
-"    "
-msgstr ""
-
 msgid "Environment Variables"
 msgstr ""
 
-msgid ""
-"\n"
-"HG::\n"
-"    Path to the 'hg' executable, automatically passed when running\n"
-"    hooks, extensions or external tools. If unset or empty, this is\n"
-"    the hg executable's name if it's frozen, or an executable named\n"
-"    'hg' (with %PATHEXT% [defaulting to COM/EXE/BAT/CMD] extensions on\n"
-"    Windows) is searched.\n"
-"\n"
-"HGEDITOR::\n"
-"    This is the name of the editor to run when committing. See EDITOR.\n"
-"\n"
-"    (deprecated, use .hgrc)\n"
-"\n"
-"HGENCODING::\n"
-"    This overrides the default locale setting detected by Mercurial.\n"
-"    This setting is used to convert data including usernames,\n"
-"    changeset descriptions, tag names, and branches. This setting can\n"
-"    be overridden with the --encoding command-line option.\n"
-"\n"
-"HGENCODINGMODE::\n"
-"    This sets Mercurial's behavior for handling unknown characters\n"
-"    while transcoding user input. The default is \"strict\", which\n"
-"    causes Mercurial to abort if it can't map a character. Other\n"
-"    settings include \"replace\", which replaces unknown characters, and\n"
-"    \"ignore\", which drops them. This setting can be overridden with\n"
-"    the --encodingmode command-line option.\n"
-"\n"
-"HGMERGE::\n"
-"    An executable to use for resolving merge conflicts. The program\n"
-"    will be executed with three arguments: local file, remote file,\n"
-"    ancestor file.\n"
-"\n"
-"    (deprecated, use .hgrc)\n"
-"\n"
-"HGRCPATH::\n"
-"    A list of files or directories to search for hgrc files. Item\n"
-"    separator is \":\" on Unix, \";\" on Windows. If HGRCPATH is not set,\n"
-"    platform default search path is used. If empty, only the .hg/hgrc\n"
-"    from the current repository is read.\n"
-"\n"
-"    For each element in HGRCPATH:\n"
-"    * if it's a directory, all files ending with .rc are added\n"
-"    * otherwise, the file itself will be added\n"
-"\n"
-"HGUSER::\n"
-"    This is the string used as the author of a commit. If not set,\n"
-"    available values will be considered in this order:\n"
-"\n"
-"    * HGUSER (deprecated)\n"
-"    * hgrc files from the HGRCPATH\n"
-"    * EMAIL\n"
-"    * interactive prompt\n"
-"    * LOGNAME (with '@hostname' appended)\n"
-"\n"
-"    (deprecated, use .hgrc)\n"
-"\n"
-"EMAIL::\n"
-"    May be used as the author of a commit; see HGUSER.\n"
-"\n"
-"LOGNAME::\n"
-"    May be used as the author of a commit; see HGUSER.\n"
-"\n"
-"VISUAL::\n"
-"    This is the name of the editor to use when committing. See EDITOR.\n"
-"\n"
-"EDITOR::\n"
-"    Sometimes Mercurial needs to open a text file in an editor for a\n"
-"    user to modify, for example when writing commit messages. The\n"
-"    editor it uses is determined by looking at the environment\n"
-"    variables HGEDITOR, VISUAL and EDITOR, in that order. The first\n"
-"    non-empty one is chosen. If all of them are empty, the editor\n"
-"    defaults to 'vi'.\n"
-"\n"
-"PYTHONPATH::\n"
-"    This is used by Python to find imported modules and may need to be\n"
-"    set appropriately if this Mercurial is not installed system-wide.\n"
-"    "
-msgstr ""
-
 msgid "Specifying Single Revisions"
 msgstr ""
 
-msgid ""
-"\n"
-"    Mercurial supports several ways to specify individual revisions.\n"
-"\n"
-"    A plain integer is treated as a revision number. Negative integers\n"
-"    are treated as topological offsets from the tip, with -1 denoting\n"
-"    the tip. As such, negative numbers are only useful if you've\n"
-"    memorized your local tree numbers and want to save typing a single\n"
-"    digit. This editor suggests copy and paste.\n"
-"\n"
-"    A 40-digit hexadecimal string is treated as a unique revision\n"
-"    identifier.\n"
-"\n"
-"    A hexadecimal string less than 40 characters long is treated as a\n"
-"    unique revision identifier, and referred to as a short-form\n"
-"    identifier. A short-form identifier is only valid if it is the\n"
-"    prefix of exactly one full-length identifier.\n"
-"\n"
-"    Any other string is treated as a tag name, which is a symbolic\n"
-"    name associated with a revision identifier. Tag names may not\n"
-"    contain the \":\" character.\n"
-"\n"
-"    The reserved name \"tip\" is a special tag that always identifies\n"
-"    the most recent revision.\n"
-"\n"
-"    The reserved name \"null\" indicates the null revision. This is the\n"
-"    revision of an empty repository, and the parent of revision 0.\n"
-"\n"
-"    The reserved name \".\" indicates the working directory parent. If\n"
-"    no working directory is checked out, it is equivalent to null. If\n"
-"    an uncommitted merge is in progress, \".\" is the revision of the\n"
-"    first parent.\n"
-"    "
-msgstr ""
-
 msgid "Specifying Multiple Revisions"
 msgstr "指定多个版本"
 
-#, fuzzy
-msgid ""
-"\n"
-"    When Mercurial accepts more than one revision, they may be\n"
-"    specified individually, or provided as a topologically continuous\n"
-"    range, separated by the \":\" character.\n"
-"\n"
-"    The syntax of range notation is [BEGIN]:[END], where BEGIN and END\n"
-"    are revision identifiers. Both BEGIN and END are optional. If\n"
-"    BEGIN is not specified, it defaults to revision number 0. If END\n"
-"    is not specified, it defaults to the tip. The range \":\" thus means\n"
-"    \"all revisions\".\n"
-"\n"
-"    If BEGIN is greater than END, revisions are treated in reverse\n"
-"    order.\n"
-"\n"
-"    A range acts as a closed interval. This means that a range of 3:5\n"
-"    gives 3, 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.\n"
-"    "
-msgstr ""
-"\n"
-"    当水银接受多个版本时,它们可以单独给出,或者以字符 \":\" 分割的拓扑连续\n"
-"    范围格式提供。\n"
-"\n"
-"    范围的语法是 '[BEGIN]:[END]',其中 'BEGIN' 和 'END' 是版本标识。'BEGIN'\n"
-"    和 'END' 都是可选的。'BEGIN' 默认是 0,'END' 默认是 'tip'。因此范围 \":"
-"\"\n"
-"    意味着全部版本。\n"
-"\n"
-"    如果 'BEGIN' 大于 'END',版本视为反序。\n"
-"\n"
-"    范围是闭区间。即范围 '3:5' 是 '3','4','5'。同样,范围 '9:6' 是 '9',\n"
-"    '8','7' 和 '6'。\n"
-"    "
-
 msgid "Diff Formats"
 msgstr "差异格式"
 
-#, fuzzy
-msgid ""
-"\n"
-"    Mercurial's default format for showing changes between two\n"
-"    versions of a file is compatible with the unified format of GNU\n"
-"    diff, which can be used by GNU patch and many other standard\n"
-"    tools.\n"
-"\n"
-"    While this standard format is often enough, it does not encode the\n"
-"    following information:\n"
-"\n"
-"     - executable status and other permission bits\n"
-"     - copy or rename information\n"
-"     - changes in binary files\n"
-"     - creation or deletion of empty files\n"
-"\n"
-"    Mercurial also supports the extended diff format from the git VCS\n"
-"    which addresses these limitations. The git diff format is not\n"
-"    produced by default because a few widespread tools still do not\n"
-"    understand this format.\n"
-"\n"
-"    This means that when generating diffs from a Mercurial repository\n"
-"    (e.g. with \"hg export\"), you should be careful about things like\n"
-"    file copies and renames or other things mentioned above, because\n"
-"    when applying a standard diff to a different repository, this\n"
-"    extra information is lost. Mercurial's internal operations (like\n"
-"    push and pull) are not affected by this, because they use an\n"
-"    internal binary format for communicating changes.\n"
-"\n"
-"    To make Mercurial produce the git extended diff format, use the\n"
-"    --git option available for many commands, or set 'git = True' in\n"
-"    the [diff] section of your hgrc. You do not need to set this\n"
-"    option when importing diffs in this format or using them in the mq\n"
-"    extension.\n"
-"    "
-msgstr ""
-"\n"
-"    水银显示文件不同版本之间差异的格式与 GNU diff 标准格式兼容,可用于\n"
-"    GNU patch 和许多标准工具。\n"
-"\n"
-"    虽然标准格式在大多数情况下都能满足要求,但是它不包含下述信息:\n"
-"\n"
-"     - 可执行状态和其它权限位\n"
-"     - 复制或改名信息\n"
-"     - 二进制文件的修改\n"
-"     - 创建或删除空文件\n"
-"\n"
-"    水银也支持解决这些限制的 git 扩展差异格式。由于一些常用的工具还不支持\n"
-"    此格式,所以它不是默认格式。\n"
-"\n"
-"    这意味着当从水银版本库(例如 \"hg export\")产生差异时,在其它版本库应用标\n"
-"    准差异时,会丢失文件复制或改名等额外信息,所以你要小心处理。水银的内部\n"
-"    操作(例如 push 和 pull)在传达改变时,使用内部的二进制格式,所以不受影\n"
-"    响。\n"
-"\n"
-"    要让水银产生 git 扩展差异格式,可以对许多命令使用选项 '--git',或者在\n"
-"    你的 hgrc 文件中的节 '[diff]' 中增加 'git = True'。当你从此格式导入时,\n"
-"    或在 mq 扩展中使用时,不需要设置此选项。\n"
-"    "
-
 msgid "Template Usage"
 msgstr "模版用法"
 
 #, fuzzy
-msgid ""
-"\n"
-"    Mercurial allows you to customize output of commands through\n"
-"    templates. You can either pass in a template from the command\n"
-"    line, via the --template option, or select an existing\n"
-"    template-style (--style).\n"
-"\n"
-"    You can customize output for any \"log-like\" command: log,\n"
-"    outgoing, incoming, tip, parents, heads and glog.\n"
-"\n"
-"    Three styles are packaged with Mercurial: default (the style used\n"
-"    when no explicit preference is passed), compact and changelog.\n"
-"    Usage:\n"
-"\n"
-"        $ hg log -r1 --style changelog\n"
-"\n"
-"    A template is a piece of text, with markup to invoke variable\n"
-"    expansion:\n"
-"\n"
-"        $ hg log -r1 --template \"{node}\\n\"\n"
-"        b56ce7b07c52de7d5fd79fb89701ea538af65746\n"
-"\n"
-"    Strings in curly braces are called keywords. The availability of\n"
-"    keywords depends on the exact context of the templater. These\n"
-"    keywords are usually available for templating a log-like command:\n"
-"\n"
-"    - author: String. The unmodified author of the changeset.\n"
-"    - branches: String. The name of the branch on which the changeset\n"
-"          was committed. Will be empty if the branch name was default.\n"
-"    - date: Date information. The date when the changeset was committed.\n"
-"    - desc: String. The text of the changeset description.\n"
-"    - diffstat: String. Statistics of changes with the following\n"
-"          format: \"modified files: +added/-removed lines\"\n"
-"    - files: List of strings. All files modified, added, or removed by\n"
-"          this changeset.\n"
-"    - file_adds: List of strings. Files added by this changeset.\n"
-"    - file_mods: List of strings. Files modified by this changeset.\n"
-"    - file_dels: List of strings. Files removed by this changeset.\n"
-"    - node: String. The changeset identification hash, as a\n"
-"          40-character hexadecimal string.\n"
-"    - parents: List of strings. The parents of the changeset.\n"
-"    - rev: Integer. The repository-local changeset revision number.\n"
-"    - tags: List of strings. Any tags associated with the changeset.\n"
-"\n"
-"    The \"date\" keyword does not produce human-readable output. If you\n"
-"    want to use a date in your output, you can use a filter to process\n"
-"    it. Filters are functions which return a string based on the input\n"
-"    variable. You can also use a chain of filters to get the desired\n"
-"    output:\n"
-"\n"
-"       $ hg tip --template \"{date|isodate}\\n\"\n"
-"       2008-08-21 18:22 +0000\n"
-"\n"
-"    List of filters:\n"
-"\n"
-"    - addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n"
-"          every line except the last.\n"
-"    - age: Date. Returns a human-readable date/time difference between\n"
-"          the given date/time and the current date/time.\n"
-"    - basename: Any text. Treats the text as a path, and returns the\n"
-"          last component of the path after splitting by the path\n"
-"          separator (ignoring trailing separators). For example,\n"
-"          \"foo/bar/baz\" becomes \"baz\" and \"foo/bar//\" becomes \"bar\".\n"
-"    - stripdir: Treat the text as path and strip a directory level, if\n"
-"          possible. For example, \"foo\" and \"foo/bar\" becomes \"foo\".\n"
-"    - date: Date. Returns a date in a Unix date format, including\n"
-"          the timezone: \"Mon Sep 04 15:13:13 2006 0700\".\n"
-"    - domain: Any text. Finds the first string that looks like an\n"
-"          email address, and extracts just the domain component.\n"
-"          Example: 'User <user@example.com>' becomes 'example.com'.\n"
-"    - email: Any text. Extracts the first string that looks like an\n"
-"          email address. Example: 'User <user@example.com>' becomes\n"
-"          'user@example.com'.\n"
-"    - escape: Any text. Replaces the special XML/XHTML characters \"&\",\n"
-"          \"<\" and \">\" with XML entities.\n"
-"    - fill68: Any text. Wraps the text to fit in 68 columns.\n"
-"    - fill76: Any text. Wraps the text to fit in 76 columns.\n"
-"    - firstline: Any text. Returns the first line of text.\n"
-"    - nonempty: Any text. Returns '(none)' if the string is empty.\n"
-"    - hgdate: Date. Returns the date as a pair of numbers:\n"
-"          \"1157407993 25200\" (Unix timestamp, timezone offset).\n"
-"    - isodate: Date. Returns the date in ISO 8601 format.\n"
-"    - localdate: Date. Converts a date to local date.\n"
-"    - obfuscate: Any text. Returns the input text rendered as a\n"
-"          sequence of XML entities.\n"
-"    - person: Any text. Returns the text before an email address.\n"
-"    - rfc822date: Date. Returns a date using the same format used\n"
-"          in email headers.\n"
-"    - short: Changeset hash. Returns the short form of a changeset\n"
-"          hash, i.e. a 12-byte hexadecimal string.\n"
-"    - shortdate: Date. Returns a date like \"2006-09-18\".\n"
-"    - strip: Any text. Strips all leading and trailing whitespace.\n"
-"    - tabindent: Any text. Returns the text, with every line except\n"
-"          the first starting with a tab character.\n"
-"    - urlescape: Any text. Escapes all \"special\" characters. For\n"
-"          example, \"foo bar\" becomes \"foo%20bar\".\n"
-"    - user: Any text. Returns the user portion of an email address.\n"
-"    "
-msgstr ""
-"\n"
-"    水银允许你通过模版定制命令的输出。你可以通过命令行选项 '--template'\n"
-"    来使用模版,或者选择已有的模版样式(--style)。\n"
-"\n"
-"    你可以定制任意输出与日志信息类似的命令,即: log,outgoing,incoming,\n"
-"    tip,parents,heads 和 glog。\n"
-"\n"
-"    水银中内置了 3 种样式: default (默认), compact 和 changelog。用法:\n"
-"\n"
-"        $ hg log -r1 --style changelog\n"
-"\n"
-"    模版是文本片断,其中的标记用于变量扩展:\n"
-"\n"
-"        $ hg log -r1 --template \"{node}\\n\"\n"
-"        b56ce7b07c52de7d5fd79fb89701ea538af65746\n"
-"\n"
-"    花括号中的字符串称为关键字。可用的关键字依赖于模版的上下文。下述关键字\n"
-"    可用于输出与日志信息类似的命令:\n"
-"\n"
-"    - author: 字符串。修改集的作者。\n"
-"    - branches: 字符串。修改集的分支。如果分支名称为 'default' 则为空。\n"
-"    - date: 日期信息。修改集的日期。\n"
-"    - desc: 字符串。修改集的描述。\n"
-"    - files: 字符串列表。修改集中被修改、增加和删除的全部文件。\n"
-"    - file_adds: 字符串列表。修改集中被增加的文件。\n"
-"    - file_mods: 字符串列表。修改集中被修改的文件\n"
-"    - file_dels: 字符串列表。修改集中被删除的文件\n"
-"    - node: 字符串。修改集的哈系标识,40 个字符的 16 进制字符串。\n"
-"    - parents: 字符串列表。修改集的父亲。\n"
-"    - rev: 整数。本地版本库的修改集的版本号。\n"
-"    - tags: 字符串列表。修改集的标签。\n"
-"\n"
-"    关键字 \"date\" 不产生人工可读的输出。如果你想在输出中使用日期,可以使用\n"
-"    过滤器来处理它。过滤器是根据输入变量返回字符串的函数。你还可以使用过滤\n"
-"    链来产生理想的输出:\n"
-"\n"
-"       $ hg tip --template \"{date|isodate}\\n\"\n"
-"       2008-08-21 18:22 +0000\n"
-"\n"
-"    过滤器列表:\n"
-"\n"
-"    - addbreaks: 输入任意文本。除了最后一行,在每行的结尾增加 XHTML 标签\n"
-"          \"<br />\"。\n"
-"    - age: 输入日期。返回指定日期与当前日期差异的人工可读的字符串。\n"
-"    - basename: 输入任意文本。将输入视为路径,返回被路径分隔符隔开的最后\n"
-"          一个组件的名称(忽略结尾的分隔符)。例如 \"foo/bar/baz\" 成为 \"baz"
-"\",\n"
-"          \"foo/bar//\" 成为 \"bar\"。\n"
-"    - date: 输入日期。返回指定日期的 Unix 日期格式字符串,包含时区,例如: \n"
-"          \"Mon Sep 04 15:13:13 2006 0700\"。\n"
-"    - domain: 输入任意文本。找到第一个 email 地址,返回其域名。例如: \n"
-"          'User <user@example.com>' 成为 'example.com'。\n"
-"    - email: 输入任意文本。返回第一个 email 地址。例如: \n"
-"          'User <user@example.com>' 成为 'user@example.com'。\n"
-"    - escape: 输入任意文本。用 XML 实体来封装 XML/XHTML 的特殊字符 \"&\",\n"
-"          \"<\" 和 \">\"。\n"
-"    - fill68: 输入任意文本。格式化为 68 列文本。\n"
-"    - fill76: 输入任意文本。格式化为 76 列文本。\n"
-"    - firstline: 输入任意文本。返回首行。\n"
-"    - hgdate: 输入日期。返回一对数字:\n"
-"          \"1157407993 25200\" (Unix 时戳,时区偏移)。\n"
-"    - isodate: 输入日期。返回 ISO 8601 格式的日期。\n"
-"    - obfuscate: 输入任意文本。返回其 XML 实体序列。\n"
-"    - person: 输入任意文本。返回 email 地址前的文本。\n"
-"    - rfc822date: 输入日期。返回 email 头部使用的日期格式。\n"
-"    - short: 修改集哈系。返回修改集哈系的短格式。例如 12 字符的 16 进制\n"
-"          字符串。\n"
-"    - shortdate: 输入日期。返回格式类似于 \"2006-09-18\"。\n"
-"    - strip: 输入任意文本。删除全部行首与行尾空白。\n"
-"    - tabindent: 输入任意文本。除了首行,在每行的开始增加制表符号。\n"
-"    - urlescape: 输入任意文本。封装全部特殊字符。例如\n"
-"          \"foo bar\" 成为 \"foo%20bar\"。\n"
-"    - user: 输入任意文本。返回 email 地址中的用户名称部分。\n"
-"    "
-
-#, fuzzy
 msgid "URL Paths"
 msgstr "统一资源定位路径"
 
 #, fuzzy
-msgid ""
-"\n"
-"    Valid URLs are of the form:\n"
-"\n"
-"      local/filesystem/path (or file://local/filesystem/path)\n"
-"      http://[user[:pass]@]host[:port]/[path]\n"
-"      https://[user[:pass]@]host[:port]/[path]\n"
-"      ssh://[user[:pass]@]host[:port]/[path]\n"
-"\n"
-"    Paths in the local filesystem can either point to Mercurial\n"
-"    repositories or to bundle files (as created by 'hg bundle' or\n"
-"    'hg incoming --bundle').\n"
-"\n"
-"    An optional identifier after # indicates a particular branch, tag,\n"
-"    or changeset to use from the remote repository.\n"
-"\n"
-"    Some features, such as pushing to http:// and https:// URLs are\n"
-"    only possible if the feature is explicitly enabled on the remote\n"
-"    Mercurial server.\n"
-"\n"
-"    Some notes about using SSH with Mercurial:\n"
-"    - SSH requires an accessible shell account on the destination\n"
-"      machine and a copy of hg in the remote path or specified with as\n"
-"      remotecmd.\n"
-"    - path is relative to the remote user's home directory by default.\n"
-"      Use an extra slash at the start of a path to specify an absolute path:\n"
-"        ssh://example.com//tmp/repository\n"
-"    - Mercurial doesn't use its own compression via SSH; the right\n"
-"      thing to do is to configure it in your ~/.ssh/config, e.g.:\n"
-"        Host *.mylocalnetwork.example.com\n"
-"          Compression no\n"
-"        Host *\n"
-"          Compression yes\n"
-"      Alternatively specify \"ssh -C\" as your ssh command in your hgrc\n"
-"      or with the --ssh command line option.\n"
-"\n"
-"    These URLs can all be stored in your hgrc with path aliases under\n"
-"    the [paths] section like so:\n"
-"    [paths]\n"
-"    alias1 = URL1\n"
-"    alias2 = URL2\n"
-"    ...\n"
-"\n"
-"    You can then use the alias for any command that uses a URL (for\n"
-"    example 'hg pull alias1' would pull from the 'alias1' path).\n"
-"\n"
-"    Two path aliases are special because they are used as defaults\n"
-"    when you do not provide the URL to a command:\n"
-"\n"
-"    default:\n"
-"      When you create a repository with hg clone, the clone command\n"
-"      saves the location of the source repository as the new\n"
-"      repository's 'default' path. This is then used when you omit\n"
-"      path from push- and pull-like commands (including incoming and\n"
-"      outgoing).\n"
-"\n"
-"    default-push:\n"
-"      The push command will look for a path named 'default-push', and\n"
-"      prefer it over 'default' if both are defined.\n"
-"    "
-msgstr ""
-"\n"
-"    有效的位置格式:\n"
-"\n"
-"      local/filesystem/path (or file://local/filesystem/path)\n"
-"      http://[user[:pass]@]host[:port]/[path]\n"
-"      https://[user[:pass]@]host[:port]/[path]\n"
-"      ssh://[user[:pass]@]host[:port]/[path]\n"
-"\n"
-"    位于本地文件系统中的路径可以指向版本库,也可以指向打包的文件(被\n"
-"    'hg bundle' 或 'hg incoming --bundle' 创建)。\n"
-"\n"
-"    在 '#' 后面可选的标识符用于指定要取得的远程版本库的分支,标签或\n"
-"    修改集。\n"
-"\n"
-"    仅当远程水银服务器显式启用时,才能推到 'http://' 和 'https://'。\n"
-"\n"
-"    在水银中使用 SSH 的一些提示:\n"
-"    - 使用 SSH 时,需要在远程主机上有可登录帐号,远程路径中还需要有\n"
-"      hg,或者有指定的远程命令。\n"
-"    - 默认 'path' 是相对于远程主机上的用户家目录。\n"
-"      可以在路径前增加一个斜线指定绝对路径:\n"
-"        ssh://example.com//tmp/repository\n"
-"    - 水银使用 SSH 时不使用压缩,所以你可以在 ~/.ssh/config 中配置\n"
-"      SSH 执行压缩,例如:\n"
-"        Host *.mylocalnetwork.example.com\n"
-"          Compression no\n"
-"        Host *\n"
-"          Compression yes\n"
-"      另一个方法是在你的 hgrc 中将 \"ssh -C\" 作为你的 ssh 命令,或\n"
-"      用于命令行参数 '--ssh' 中。\n"
-"\n"
-"    这些路径可以在你的 'hgrc' 中的节 '[paths]' 中定义别名:\n"
-"    [paths]\n"
-"    alias1 = URL1\n"
-"    alias2 = URL2\n"
-"    ...\n"
-"\n"
-"    然后你就可以在任意命令中使用这些别名作为路径(例如 'hg pull alias1'\n"
-"    会从 'alias1' 定义的路径取得指定版本)。\n"
-"\n"
-"    因为用于默认路径,所以这 2 个路径别名比较特殊:\n"
-"\n"
-"    default:\n"
-"      当你使用 'hg clone' 创建版本库时,此命令会将源版本库的位置保存\n"
-"      为新版本库的 'default' 路径,然后你可以对类似 'push' 和 'pull'\n"
-"      的命令省略路径(包含进和出)。\n"
-"\n"
-"    default-push:\n"
-"      命令 'push' 会查找别名是 'default-push' 的路径,它覆盖定义 'default'。\n"
-"    "
-
-#, fuzzy
 msgid "Using additional features"
 msgstr "启用额外的输出"
 
@@ -7953,27 +7870,20 @@
 msgid "clone from remote to remote not supported"
 msgstr ""
 
-msgid "updated"
-msgstr "已更新"
-
-msgid "merged"
-msgstr "已合并"
-
-msgid "removed"
-msgstr "已删除"
-
-msgid "unresolved"
-msgstr "未解决"
-
-#, python-format
-msgid "%d files %s"
-msgstr "%d 个文件%s"
+#, fuzzy, python-format
+msgid "updating to branch %s\n"
+msgstr "正在更新标签\n"
+
+#, python-format
+msgid ""
+"%d files updated, %d files merged, %d files removed, %d files unresolved\n"
+msgstr ""
 
 msgid "use 'hg resolve' to retry unresolved file merges\n"
 msgstr ""
 
 msgid ""
-"use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to "
+"use 'hg resolve' to retry unresolved file merges or 'hg update -C' to "
 "abandon\n"
 msgstr ""
 
@@ -8049,32 +7959,12 @@
 msgid "unsupported URL component: \"%s\""
 msgstr ""
 
-#, python-format
-msgid "using %s\n"
-msgstr "使用 %s\n"
-
-#, python-format
-msgid "capabilities: %s\n"
-msgstr ""
-
 msgid "operation not supported over http"
 msgstr ""
 
-#, python-format
-msgid "sending %s command\n"
-msgstr "发送命令 '%s'\n"
-
-#, python-format
-msgid "sending %s bytes\n"
-msgstr "发送 %s 字节\n"
-
 msgid "authorization failed"
 msgstr "授权失败"
 
-#, python-format
-msgid "http error while sending %s command\n"
-msgstr ""
-
 msgid "http error, possibly caused by proxy setting"
 msgstr ""
 
@@ -8082,10 +7972,6 @@
 msgid "real URL is %s\n"
 msgstr "实际 URL 是 '%s'\n"
 
-#, fuzzy, python-format
-msgid "requested URL: '%s'\n"
-msgstr "请求的 URL: '%s'\n"
-
 #, python-format
 msgid "'%s' does not appear to be an hg repository"
 msgstr "'%s' 似乎不是水银版本库"
@@ -8121,7 +8007,7 @@
 msgstr ""
 
 #, python-format
-msgid "%s: ignoring invalid syntax '%s'\n"
+msgid "ignoring invalid syntax '%s'"
 msgstr ""
 
 #, python-format
@@ -8152,17 +8038,6 @@
 msgstr ""
 
 #, python-format
-msgid "%s, line %s: %s\n"
-msgstr ""
-
-msgid "cannot parse entry"
-msgstr ""
-
-#, python-format
-msgid "node '%s' is not well formed"
-msgstr ""
-
-#, python-format
 msgid "working directory has unknown parent '%s'!"
 msgstr ""
 
@@ -8170,10 +8045,6 @@
 msgid "unknown revision '%s'"
 msgstr ""
 
-#, python-format
-msgid "filtering %s through %s\n"
-msgstr ""
-
 msgid "journal already exists - run hg recover"
 msgstr ""
 
@@ -8205,14 +8076,6 @@
 msgid "working directory of %s"
 msgstr ""
 
-#, python-format
-msgid " %s: searching for copy revision for %s\n"
-msgstr ""
-
-#, python-format
-msgid " %s: copy %s:%s\n"
-msgstr ""
-
 msgid "cannot partially commit a merge (do not specify files or patterns)"
 msgstr ""
 
@@ -8228,9 +8091,6 @@
 msgid "file not tracked!"
 msgstr "%s 没有被跟踪!\n"
 
-msgid "nothing changed\n"
-msgstr "没有改变\n"
-
 msgid "unresolved merge conflicts (see hg resolve)"
 msgstr "未解决的合并冲突(参见 'hg resolve')"
 
@@ -8283,41 +8143,6 @@
 msgid "searching for changes\n"
 msgstr "正在搜索修改\n"
 
-#, python-format
-msgid "examining %s:%s\n"
-msgstr ""
-
-msgid "branch already found\n"
-msgstr ""
-
-#, python-format
-msgid "found incomplete branch %s:%s\n"
-msgstr ""
-
-#, python-format
-msgid "found new changeset %s\n"
-msgstr ""
-
-#, python-format
-msgid "request %d: %s\n"
-msgstr ""
-
-#, python-format
-msgid "received %s:%s\n"
-msgstr ""
-
-#, python-format
-msgid "narrowing %d:%d %s\n"
-msgstr ""
-
-#, python-format
-msgid "found new branch changeset %s\n"
-msgstr ""
-
-#, python-format
-msgid "narrowed branch search to %s:%s\n"
-msgstr ""
-
 msgid "already have changeset "
 msgstr ""
 
@@ -8327,16 +8152,6 @@
 msgid "repository is unrelated"
 msgstr ""
 
-msgid "found new changesets starting at "
-msgstr ""
-
-#, python-format
-msgid "%d total queries\n"
-msgstr ""
-
-msgid "common changesets up to "
-msgstr ""
-
 msgid "requesting all changes\n"
 msgstr "正在请求全部修改\n"
 
@@ -8362,17 +8177,10 @@
 msgid "%d changesets found\n"
 msgstr "已发现 %d 个修改集\n"
 
-msgid "list of changesets:\n"
-msgstr ""
-
 #, python-format
 msgid "empty or missing revlog for %s"
 msgstr ""
 
-#, python-format
-msgid "add changeset %s\n"
-msgstr ""
-
 msgid "adding changesets\n"
 msgstr "正在增加修改集\n"
 
@@ -8385,10 +8193,6 @@
 msgid "adding file changes\n"
 msgstr "正在增加文件改变\n"
 
-#, python-format
-msgid "adding %s revisions\n"
-msgstr ""
-
 msgid "received file revlog group is empty"
 msgstr ""
 
@@ -8400,9 +8204,6 @@
 msgid "added %d changesets with %d changes to %d files%s\n"
 msgstr "已增加 %d 个修改集,包含 %d 个改变,修改了 %d 个文件%s\n"
 
-msgid "updating the branch cache\n"
-msgstr ""
-
 msgid "Unexpected response from remote server:"
 msgstr ""
 
@@ -8423,10 +8224,6 @@
 msgstr ""
 
 #, python-format
-msgid "adding %s (%s)\n"
-msgstr ""
-
-#, python-format
 msgid "transferred %s in %.1f seconds (%s/sec)\n"
 msgstr ""
 
@@ -8508,14 +8305,6 @@
 msgstr "正在解析清单\n"
 
 #, python-format
-msgid " overwrite %s partial %s\n"
-msgstr ""
-
-#, python-format
-msgid " ancestor %s local %s remote %s\n"
-msgstr ""
-
-#, python-format
 msgid ""
 " local changed %s which remote deleted\n"
 "use (c)hanged version or (d)elete?"
@@ -8527,9 +8316,6 @@
 msgid "&Delete"
 msgstr ""
 
-msgid "c"
-msgstr ""
-
 #, python-format
 msgid ""
 "remote changed %s which local deleted\n"
@@ -8540,10 +8326,6 @@
 msgstr ""
 
 #, python-format
-msgid "preserving %s for resolve of %s\n"
-msgstr ""
-
-#, python-format
 msgid "update failed to remove %s: %s!\n"
 msgstr ""
 
@@ -8590,13 +8372,6 @@
 msgstr ""
 
 #, python-format
-msgid "found patch at byte %d\n"
-msgstr ""
-
-msgid "patch generated by hg export\n"
-msgstr ""
-
-#, python-format
 msgid "unable to find '%s' for patching\n"
 msgstr ""
 
@@ -8667,7 +8442,7 @@
 msgstr ""
 
 #, python-format
-msgid "no valid hunks found; trying with %r instead\n"
+msgid " %d files changed, %d insertions(+), %d deletions(-)\n"
 msgstr ""
 
 #, python-format
@@ -8679,13 +8454,6 @@
 msgstr ""
 
 #, python-format
-msgid "stopped by signal %d"
-msgstr ""
-
-msgid "invalid exit code"
-msgstr ""
-
-#, python-format
 msgid "saving bundle to %s\n"
 msgstr ""
 
@@ -8756,12 +8524,12 @@
 msgid "could not create remote repo"
 msgstr ""
 
+msgid "no suitable response from remote hg"
+msgstr ""
+
 msgid "remote: "
 msgstr ""
 
-msgid "no suitable response from remote hg"
-msgstr ""
-
 #, python-format
 msgid "push refused: %s"
 msgstr ""
@@ -8779,17 +8547,6 @@
 msgid "invalid entry in fncache, line %s"
 msgstr ""
 
-msgid "scanning\n"
-msgstr "正在扫描\n"
-
-#, python-format
-msgid "%d files, %d bytes to transfer\n"
-msgstr "需要传输 %d 个文件,%d 字节\n"
-
-#, python-format
-msgid "sending %s (%d bytes)\n"
-msgstr "正在发送 %s (%d 字节)\n"
-
 #, python-format
 msgid ""
 " subrepository sources for %s differ\n"
@@ -8799,9 +8556,6 @@
 msgid "&Remote"
 msgstr ""
 
-msgid "r"
-msgstr ""
-
 #, python-format
 msgid ""
 " local changed subrepository %s which remote removed\n"
@@ -8826,6 +8580,17 @@
 msgid "pushing subrepo %s\n"
 msgstr "正在推到 %s\n"
 
+#, python-format
+msgid "%s, line %s: %s\n"
+msgstr ""
+
+msgid "cannot parse entry"
+msgstr ""
+
+#, python-format
+msgid "node '%s' is not well formed"
+msgstr ""
+
 msgid "unmatched quotes"
 msgstr "不匹配的引号"
 
@@ -8891,12 +8656,12 @@
 msgid "username %s contains a newline\n"
 msgstr ""
 
+msgid "response expected"
+msgstr ""
+
 msgid "unrecognized response\n"
 msgstr ""
 
-msgid "response expected"
-msgstr ""
-
 msgid "password: "
 msgstr "密码: "
 
@@ -8925,10 +8690,6 @@
 msgstr ""
 
 #, python-format
-msgid "proxying through http://%s:%s\n"
-msgstr ""
-
-#, python-format
 msgid "command '%s' failed: %s"
 msgstr ""
 
@@ -9126,11 +8887,15 @@
 msgstr ""
 
 #, python-format
+msgid "warning: copy source of '%s' not in parents of %s"
+msgstr ""
+
+#, python-format
 msgid "empty or missing copy source revlog %s:%s"
 msgstr ""
 
 #, python-format
-msgid "warning: %s@%s: copy source revision is nullid %s:%s"
+msgid "warning: %s@%s: copy source revision is nullid %s:%s\n"
 msgstr ""
 
 #, python-format