merge with stable
authorMatt Mackall <mpm@selenic.com>
Thu, 30 Jun 2011 19:34:09 -0500
changeset 14823 f5bfb27b64e3
parent 14813 53ed7b560564 (current diff)
parent 14822 760d2dae4839 (diff)
child 14828 80112b87fc7f
merge with stable
--- a/Makefile	Wed Jun 29 16:05:59 2011 -0500
+++ b/Makefile	Thu Jun 30 19:34:09 2011 -0500
@@ -92,6 +92,7 @@
 i18n/hg.pot: $(PYFILES) $(DOCFILES)
 	$(PYTHON) i18n/hggettext mercurial/commands.py \
 	  hgext/*.py hgext/*/__init__.py mercurial/fileset.py mercurial/revset.py \
+	  mercurial/templatefilters.py mercurial/templatekw.py \
 	  $(DOCFILES) > i18n/hg.pot
         # All strings marked for translation in Mercurial contain
         # ASCII characters only. But some files contain string
--- a/contrib/wix/guids.wxi	Wed Jun 29 16:05:59 2011 -0500
+++ b/contrib/wix/guids.wxi	Thu Jun 30 19:34:09 2011 -0500
@@ -18,20 +18,20 @@
   <?define doc.style.css = {172F8262-98E0-4711-BD39-4DAE0D77EF05} ?>
 
   <!-- help.wxs -->
-  <?define helpFolder.guid = {21FE9CF9-933E-4C2E-B2EC-413A569FB996} ?>
+  <?define helpFolder.guid = {84025FAA-7EB7-4D79-A097-D2D18852D78E} ?>
   
   <!-- i18n.wxs -->
   <?define i18nFolder.guid = {EADFA693-A0B5-4f31-87C9-3997CFAC1B42} ?>
 
   <!-- templates.wxs -->
   <?define templates.root.guid = {111509CB-4C96-4035-80BC-F66A99CD5ACB} ?>
-  <?define templates.atom.guid = {45FCDF84-DE27-44f4-AF6C-C41F5994AE0D} ?>
+  <?define templates.atom.guid = {AB5D2908-BC95-44BE-9D79-069EF43D93E2} ?>
   <?define templates.coal.guid = {B63CCAAB-4EAF-43b4-901E-4BD13F5B78FC} ?>
-  <?define templates.gitweb.guid = {D8BFE3ED-06DD-4C4D-A00D-6D825955F922} ?>
-  <?define templates.monoblue.guid = {A394B4D5-2AF7-4AAC-AEA8-E92176E5501E} ?>
+  <?define templates.gitweb.guid = {6A33D168-F84E-45AA-912C-23CAC2D66BCA} ?>
+  <?define templates.monoblue.guid = {D27AA750-9394-4DAC-84FC-A546CE8F347A} ?>
   <?define templates.paper.guid = {D2591E56-709E-49F9-8A5F-1359E1CCD7E0} ?>
   <?define templates.raw.guid = {04DE03A2-FBFD-4c5f-8DEA-5436DDF4689D} ?>
-  <?define templates.rss.guid = {A7D608DE-0CF6-44f4-AF1E-EE30CC237FDA} ?>
+  <?define templates.rss.guid = {36069748-1E2A-472B-A212-506CB656A9C1} ?>
   <?define templates.spartan.guid = {80222625-FA8F-44b1-86CE-1781EF375D09} ?>
   <?define templates.static.guid = {B27D7311-050A-4A96-9971-B674A0EA21D0} ?>
 
--- a/contrib/wix/help.wxs	Wed Jun 29 16:05:59 2011 -0500
+++ b/contrib/wix/help.wxs	Thu Jun 30 19:34:09 2011 -0500
@@ -13,7 +13,9 @@
           <File Name="diffs.txt" />
           <File Name="environment.txt" />
           <File Name="extensions.txt" />
+          <File Name="filesets.txt" />
           <File Name="glossary.txt" />
+          <File Name="hgignore.txt" />
           <File Name="hgweb.txt" />
           <File Name="merge-tools.txt" />
           <File Name="multirevs.txt" />
--- a/contrib/wix/templates.wxs	Wed Jun 29 16:05:59 2011 -0500
+++ b/contrib/wix/templates.wxs	Thu Jun 30 19:34:09 2011 -0500
@@ -45,6 +45,8 @@
             <File Id="atom.map"                 Name="map" />
             <File Id="atom.tagentry.tmpl"       Name="tagentry.tmpl" />
             <File Id="atom.tags.tmpl"           Name="tags.tmpl" />
+            <File Id="atom.bookmarks.tmpl"      Name="bookmarks.tmpl" />
+            <File Id="atom.bookmarkentry.tmpl"  Name="bookmarkentry.tmpl" />
           </Component>
         </Directory>
 
@@ -58,6 +60,7 @@
         <Directory Id="templates.gitwebdir" Name="gitweb">
           <Component Id="templates.gitweb" Guid="$(var.templates.gitweb.guid)" Win64='$(var.IsX64)'>
             <File Id="gitweb.branches.tmpl"       Name="branches.tmpl" KeyPath="yes" />
+            <File Id="gitweb.bookmarks.tmpl"      Name="bookmarks.tmpl" />
             <File Id="gitweb.changelog.tmpl"      Name="changelog.tmpl" />
             <File Id="gitweb.changelogentry.tmpl" Name="changelogentry.tmpl" />
             <File Id="gitweb.changeset.tmpl"      Name="changeset.tmpl" />
@@ -85,6 +88,7 @@
         <Directory Id="templates.monobluedir" Name="monoblue">
           <Component Id="templates.monoblue" Guid="$(var.templates.monoblue.guid)" Win64='$(var.IsX64)'>
             <File Id="monoblue.branches.tmpl"       Name="branches.tmpl" KeyPath="yes" />
+            <File Id="monoblue.bookmarks.tmpl"      Name="bookmarks.tmpl" />
             <File Id="monoblue.changelog.tmpl"      Name="changelog.tmpl" />
             <File Id="monoblue.changelogentry.tmpl" Name="changelogentry.tmpl" />
             <File Id="monoblue.changeset.tmpl"      Name="changeset.tmpl" />
@@ -161,6 +165,8 @@
             <File Id="rss.map"                 Name="map" />
             <File Id="rss.tagentry.tmpl"       Name="tagentry.tmpl" />
             <File Id="rss.tags.tmpl"           Name="tags.tmpl" />
+            <File Id="rss.bookmarks.tmpl"      Name="bookmarks.tmpl" />
+            <File Id="rss.bookmarkentry.tmpl"  Name="bookmarkentry.tmpl" />
           </Component>
         </Directory>
 
--- a/i18n/ja.po	Wed Jun 29 16:05:59 2011 -0500
+++ b/i18n/ja.po	Thu Jun 30 19:34:09 2011 -0500
@@ -17284,6 +17284,256 @@
 msgid ".hg/cache/tags is corrupt, rebuilding it\n"
 msgstr ".hg/cache/tags が無効なため再構築中\n"
 
+msgid ""
+":addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n"
+"    every line except the last."
+msgstr ""
+":addbreaks: 文字列。 最終行を除く各行の行末に XHTML の\n"
+"    \"<br />\" タグを追加します。"
+
+msgid ""
+":age: Date. Returns a human-readable date/time difference between the\n"
+"    given date/time and the current date/time."
+msgstr ""
+":age: 日時情報。 与えられた日時と、 現在日時との差分を表す\n"
+"    可読形式の文字列を生成します。"
+
+msgid ""
+":basename: Any text. Treats the text as a path, and returns the last\n"
+"    component of the path after splitting by the path separator\n"
+"    (ignoring trailing separators). For example, \"foo/bar/baz\" becomes\n"
+"    \"baz\" and \"foo/bar//\" becomes \"bar\"."
+msgstr ""
+":basename: 文字列。 与えられた文字列をパスとみなし、 パス区切りで\n"
+"    区切られた最後の要素だけを取り出します(末尾パス\n"
+"    区切りは無視されます)。\n"
+"    例) \"foo/bar/baz\" は \"baz\"、 \"foo/bar//\" は \"bar\""
+
+msgid ""
+":date: Date. Returns a date in a Unix date format, including the\n"
+"    timezone: \"Mon Sep 04 15:13:13 2006 0700\"."
+msgstr ""
+":date: 日時情報。 タイムゾーン込みの Unix date コマンド形式にします。\n"
+"    例) \"Mon Sep 04 15:13:13 2006 0700\""
+
+msgid ""
+":domain: Any text. Finds the first string that looks like an email\n"
+"    address, and extracts just the domain component. Example: ``User\n"
+"    <user@example.com>`` becomes ``example.com``."
+msgstr ""
+":domain: 文字列。 メールアドレスと思しき最初の文字列部分から\n"
+"    ドメイン部分だけを取り出します。\n"
+"    例) ``User <user@example.com>`` は ``example.com``"
+
+msgid ""
+":email: Any text. Extracts the first string that looks like an email\n"
+"    address. Example: ``User <user@example.com>`` becomes\n"
+"    ``user@example.com``."
+msgstr ""
+":email: 文字列。 メールアドレスと思しき最初の部分を取り出します。\n"
+"    例) ``User <user@example.com>`` は ``user@example.com``"
+
+msgid ""
+":escape: Any text. Replaces the special XML/XHTML characters \"&\", \"<\"\n"
+"    and \">\" with XML entities."
+msgstr ""
+":escape: 文字列。 XML/XHTML の特殊文字である \"&\"、 \"<\" および\n"
+"    \">\" を XML のエンティティ形式に変換します。"
+
+msgid ":fill68: Any text. Wraps the text to fit in 68 columns."
+msgstr ":fill68: 文字列。 68 桁に収まるように文字列を折り返します。"
+
+msgid ":fill76: Any text. Wraps the text to fit in 76 columns."
+msgstr ":fill76: 文字列。 76 桁に収まるように文字列を折り返します。"
+
+msgid ":firstline: Any text. Returns the first line of text."
+msgstr ":firstline: 文字列。 最初の行のみを取り出します。"
+
+msgid ""
+":hex: Any text. Convert a binary Mercurial node identifier into\n"
+"    its long hexadecimal representation."
+msgstr ""
+":hex: 文字列。 Mercurial の node 情報を 40 桁 16 進文字列に変換します。"
+
+msgid ""
+":hgdate: Date. Returns the date as a pair of numbers: \"1157407993\n"
+"    25200\" (Unix timestamp, timezone offset)."
+msgstr ""
+":hgdate: 日時情報。 Unix タイムスタンプとタイムゾーンオフセットによる\n"
+"   数値対形式で可読化します。\n"
+"   例) \"1157407993 25200\""
+
+msgid ""
+":isodate: Date. Returns the date in ISO 8601 format: \"2009-08-18 13:00\n"
+"    +0200\"."
+msgstr ""
+":isodate: 日時情報。 ISO 8601 形式で可読化します:\n"
+"   例) \"2009-08-18 13:00 +0200\""
+
+msgid ""
+":isodatesec: Date. Returns the date in ISO 8601 format, including\n"
+"    seconds: \"2009-08-18 13:00:13 +0200\". See also the rfc3339date\n"
+"    filter."
+msgstr ""
+":isodatesec: 日時情報。 秒情報付きの ISO 8601 形式で可読化します:\n"
+"   例) \"2009-08-18 13:00:13 +0200\"\n"
+"   ※ 後述する rfc3339date フィルタの説明も参照してください。"
+
+msgid ":localdate: Date. Converts a date to local date."
+msgstr ":localdate: 日時情報。 ローカル日時で可読化します。"
+
+msgid ":nonempty: Any text. Returns '(none)' if the string is empty."
+msgstr ":nonempty: 文字列。 与えられた文字列が空の場合 '(none)'となります。"
+
+msgid ""
+":obfuscate: Any text. Returns the input text rendered as a sequence of\n"
+"    XML entities."
+msgstr ":obfuscate: 文字列。 全ての文字を XML エンティティ形式に変換します。"
+
+msgid ":person: Any text. Returns the text before an email address."
+msgstr ":person: 文字列。 メールアドレス直前の部分だけを取り出します。"
+
+msgid ""
+":rfc3339date: Date. Returns a date using the Internet date format\n"
+"    specified in RFC 3339: \"2009-08-18T13:00:13+02:00\"."
+msgstr ""
+":rfc3339date: 日付情報。  RFC 3339 で定められた日付形式で可読化します。\n"
+"    例) \"2009-08-18T13:00:13+02:00\"."
+
+msgid ""
+":rfc822date: Date. Returns a date using the same format used in email\n"
+"    headers: \"Tue, 18 Aug 2009 13:00:13 +0200\"."
+msgstr ""
+":rfc822date: 日時情報。 メールのヘッダと同形式で可読化します:\n"
+"    例) \"Tue, 18 Aug 2009 13:00:13 +0200\"."
+
+msgid ""
+":short: Changeset hash. Returns the short form of a changeset hash,\n"
+"    i.e. a 12 hexadecimal digit string."
+msgstr ":short: リビジョンハッシュ 値。 12 桁程度の短縮形式にします。"
+
+msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
+msgstr ":shortdate: 日時情報。 \"2006-09-18\" 形式で可読化します。"
+
+msgid ""
+":stringify: Any type. Turns the value into text by converting values into\n"
+"    text and concatenating them."
+msgstr ":stringify: 任意のデータ。 値を文字列化して連結します"
+
+msgid ":strip: Any text. Strips all leading and trailing whitespace."
+msgstr ":strip: 文字列。 先頭/末尾の空白文字を取り除きます。"
+
+msgid ""
+":stripdir: Treat the text as path and strip a directory level, if\n"
+"    possible. For example, \"foo\" and \"foo/bar\" becomes \"foo\"."
+msgstr ""
+":stripdir: 文字列。 与えられた文字列をパスとみなし、 ディレクトリ\n"
+"    階層があればそれを取り除きます。\n"
+"    例) \"foo\" および \"foo/bar\" は \"foo\""
+
+#, fuzzy
+msgid ""
+":tabindent: Any text. Returns the text, with every line except the\n"
+"    first starting with a tab character."
+msgstr ":tabindent: 文字列。 タブ文字以外で始まる行をタブ文字で字下げします。"
+
+msgid ""
+":urlescape: Any text. Escapes all \"special\" characters. For example,\n"
+"    \"foo bar\" becomes \"foo%20bar\"."
+msgstr ""
+":urlescape: 文字列。 全ての「特殊」文字を変換します。\n"
+"    例えば \"foo bar\" は \"foo%20bar\" となります。"
+
+#, fuzzy
+msgid ":user: Any text. Returns the user portion of an email address."
+msgstr ":user: 文字列。 メールアドレスのユーザ名部分を取り出します。\n"
+
+msgid ":author: String. The unmodified author of the changeset."
+msgstr ":author: 文字列。 リビジョンの作者名(記録情報そのまま)。"
+
+msgid ""
+":branch: String. The name of the branch on which the changeset was\n"
+"    committed."
+msgstr ":branch: 文字列。 リビジョンの属するブランチ名。"
+
+msgid ""
+":branches: List of strings. The name of the branch on which the\n"
+"    changeset was committed. Will be empty if the branch name was\n"
+"    default."
+msgstr ""
+":branches: 文字列列挙。 リビジョンの属するブランチ名。\n"
+"    所属ブランチが default の場合は空。"
+
+#, fuzzy
+msgid ""
+":bookmarks: List of strings. Any bookmarks associated with the\n"
+"    changeset."
+msgstr ":tags: 文字列列挙。 当該リビジョンに付与されたタグの一覧。"
+
+msgid ":children: List of strings. The children of the changeset."
+msgstr ":children: 文字列列挙。 リビジョンの子供。"
+
+msgid ":date: Date information. The date when the changeset was committed."
+msgstr ":date: 日時情報。 リビジョンが記録された日時。"
+
+msgid ":desc: String. The text of the changeset description."
+msgstr ":desc:      文字列。 リビジョンのコミットメッセージ。"
+
+msgid ""
+":diffstat: String. Statistics of changes with the following format:\n"
+"    \"modified files: +added/-removed lines\""
+msgstr ""
+":diffstat: 文字列。 以下の形式での変更概要。\n"
+"    \"変更対象ファイル: +追加行数/-削除行数\""
+
+msgid ":file_adds: List of strings. Files added by this changeset."
+msgstr ":file_adds: 文字列列挙。 当該リビジョンでの追加ファイル一覧。"
+
+msgid ""
+":file_copies: List of strings. Files copied in this changeset with\n"
+"    their sources."
+msgstr ":file_copies: 文字列列挙。  当該リビジョンでの複製元ファイル一覧。"
+
+msgid ""
+":file_copies_switch: List of strings. Like \"file_copies\" but displayed\n"
+"    only if the --copied switch is set."
+msgstr ""
+":file_copies_switch: 文字列列挙。  \"file_copies\" と同義だが、\n"
+"    --copied 指定のある時のみ表示。"
+
+msgid ":file_dels: List of strings. Files removed by this changeset."
+msgstr ":file_dels: 文字列列挙。 当該リビジョンでの登録除外ファイル一覧。"
+
+msgid ":file_mods: List of strings. Files modified by this changeset."
+msgstr ":file_mods: 文字列列挙。 当該リビジョンでの変更ファイル一覧。"
+
+msgid ""
+":files: List of strings. All files modified, added, or removed by this\n"
+"    changeset."
+msgstr ""
+":files: 文字列列挙。 当該リビジョンでの、 変更/追加登録ないし\n"
+"    登録除外ファイルの一覧。"
+
+msgid ""
+":latesttag: String. Most recent global tag in the ancestors of this\n"
+"    changeset."
+msgstr ""
+":latesttag: 文字列。 当該リビジョンの先祖に対して最も最近に付与されたタグ"
+
+msgid ":latesttagdistance: Integer. Longest path to the latest tag."
+msgstr ":latesttagdistance: 整数。 最新タグへの最長パス"
+
+msgid ""
+":node: String. The changeset identification hash, as a 40 hexadecimal\n"
+"    digit string."
+msgstr ":node: 文字列。 リビジョン識別用の 40 桁 16 進数ハッシュ値。"
+
+msgid ":rev: Integer. The repository-local changeset revision number."
+msgstr ":rev: 整数。 各リポジトリ固有のリビジョン番号。"
+
+msgid ":tags: List of strings. Any tags associated with the changeset."
+msgstr ":tags: 文字列列挙。 当該リビジョンに付与されたタグの一覧。"
+
 #, python-format
 msgid "unknown method '%s'"
 msgstr "不明な処理 '%s' が指定されました"
--- a/i18n/pt_BR.po	Wed Jun 29 16:05:59 2011 -0500
+++ b/i18n/pt_BR.po	Thu Jun 30 19:34:09 2011 -0500
@@ -1275,6 +1275,23 @@
 "determinado tipo de terminal, e serão silenciosamente ignorados."
 
 msgid ""
+"Note that on some systems, terminfo mode may cause problems when using\n"
+"color with the pager extension and less -R. less with the -R option\n"
+"will only display ECMA-48 color codes, and terminfo mode may sometimes\n"
+"emit codes that less doesn't understand. You can work around this by\n"
+"either using ansi mode (or auto mode), or by using less -r (which will\n"
+"pass through all terminal control codes, not just color control\n"
+"codes)."
+msgstr ""
+"Note que, em alguns sistemas, o modo terminfo pode causar problemas ao\n"
+"usar coloração com a extensão pager e less -R. O comando less com a\n"
+"opção -R mostrará apenas códigos de cores ECMA-48, e o modo terminfo\n"
+"pode por vezes emitir códigos não suportados pelo comando less.\n"
+"Para evitar esse problema, você pode usar o modo ansi (ou o modo auto)\n"
+"ou o comando less -r (que propagará todos os códigos de terminal, não\n"
+"apenas códigos de controle de cores)."
+
+msgid ""
 "Because there are only eight standard colors, this module allows you\n"
 "to define color names for other color slots which might be available\n"
 "for your terminal type, assuming terminfo mode.  For instance::"
@@ -1308,26 +1325,28 @@
 "para definir o plano de fundo para tal cor."
 
 msgid ""
-"The color extension will try to detect whether to use terminfo, ANSI\n"
-"codes or Win32 console APIs, unless it is made explicit; e.g.::"
-msgstr ""
-"A extensão color tentará detectar se deve usar terminfo, códigos ANSI\n"
-"ou as APIs do console Win32, a não ser que isso seja configurado\n"
-"explicitamente, como em::"
+"By default, the color extension will use ANSI mode (or win32 mode on\n"
+"Windows) if it detects a terminal. To override auto mode (to enable\n"
+"terminfo mode, for example), set the following configuration option::"
+msgstr ""
+"Por padrão, a extensão color usará o modo ANSI (ou, no Windows,\n"
+"o modo win32) se um terminal for detectado. Para desabilitar o modo\n"
+"auto (e habilitar modo terminfo, por exemplo), use a seguinte\n"
+"opção de configuração::"
 
 msgid ""
 "  [color]\n"
-"  mode = ansi"
+"  mode = terminfo"
 msgstr ""
 "  [color]\n"
-"  mode = ansi"
+"  mode = terminfo"
 
 msgid ""
 "Any value other than 'ansi', 'win32', 'terminfo', or 'auto' will\n"
-"disable color."
+"disable color.\n"
 msgstr ""
 "Qualquer valor diferente de 'ansi', 'win32', 'terminfo' ou 'auto'\n"
-"desabilitará a coloração."
+"desabilitará a coloração.\n"
 
 msgid "no terminfo entry for setab/setaf: reverting to ECMA-48 color\n"
 msgstr "nenhuma entrada terminfo para setab/setaf: revertendo para cores ECMA-48\n"
@@ -19943,6 +19962,281 @@
 msgid ".hg/cache/tags is corrupt, rebuilding it\n"
 msgstr ".hg/cache/tags está corrompido, reconstruindo\n"
 
+msgid ""
+":addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n"
+"    every line except the last."
+msgstr ""
+":addbreaks: Qualquer texto. Adiciona uma tag XHTML \"<br />\"\n"
+"    antes do fim de cada linha, exceto a última."
+
+msgid ""
+":age: Date. Returns a human-readable date/time difference between the\n"
+"    given date/time and the current date/time."
+msgstr ""
+":age:         Data. Devolve uma diferença de data/tempo legível entre\n"
+"    a data/hora dada e a data/hora atual."
+
+msgid ""
+":basename: Any text. Treats the text as a path, and returns the last\n"
+"    component of the path after splitting by the path separator\n"
+"    (ignoring trailing separators). For example, \"foo/bar/baz\" becomes\n"
+"    \"baz\" and \"foo/bar//\" becomes \"bar\"."
+msgstr ""
+":basename: Qualquer texto. Trata o texto como um caminho, e\n"
+"    devolve o último componente do caminho após quebrá-lo\n"
+"    usando o separador de caminhos (ignorando separadores à\n"
+"    direita). Por exemple, \"foo/bar/baz\" se torna \"baz\"\n"
+"    e \"foo/bar//\" se torna \"bar\"."
+
+msgid ""
+":date: Date. Returns a date in a Unix date format, including the\n"
+"    timezone: \"Mon Sep 04 15:13:13 2006 0700\"."
+msgstr ""
+":date: Data. Devolve uma data em um formato de data Unix,\n"
+"    incluindo a diferença de fuso horário:\n"
+"    \"Mon Sep 04 15:13:13 2006 0700\"."
+
+msgid ""
+":domain: Any text. Finds the first string that looks like an email\n"
+"    address, and extracts just the domain component. Example: ``User\n"
+"    <user@example.com>`` becomes ``example.com``."
+msgstr ""
+":domain: Qualquer texto. Encontra a primeira string que se\n"
+"    pareça com um endereço de e-mail, e extrai apenas a parte\n"
+"    do domínio. Por exemplo:\n"
+"    ``User <user@example.com>`` se torna ``example.com``."
+
+msgid ""
+":email: Any text. Extracts the first string that looks like an email\n"
+"    address. Example: ``User <user@example.com>`` becomes\n"
+"    ``user@example.com``."
+msgstr ""
+":email: Qualquer texto. Extrai a primeira string que se pareça\n"
+"    com um endereço de e-mail. Por exemplo:\n"
+"    ``User <user@example.com>`` se torna ``user@example.com``."
+
+msgid ""
+":escape: Any text. Replaces the special XML/XHTML characters \"&\", \"<\"\n"
+"    and \">\" with XML entities."
+msgstr ""
+":escape: Qualquer texto. Substitui os caracteres especiais\n"
+"    XML/XHTML \"&\", \"<\" e \">\" por entidades XML."
+
+msgid ":fill68: Any text. Wraps the text to fit in 68 columns."
+msgstr ""
+":fill68: Qualquer texto. Quebra o texto para caber em 68\n"
+"    colunas."
+
+msgid ":fill76: Any text. Wraps the text to fit in 76 columns."
+msgstr ""
+":fill76: Qualquer texto. Quebra o texto para caber em 76\n"
+"    colunas."
+
+msgid ":firstline: Any text. Returns the first line of text."
+msgstr ":firstline: Qualquer texto. Devolve a primeira linha do texto."
+
+msgid ""
+":hex: Any text. Convert a binary Mercurial node identifier into\n"
+"    its long hexadecimal representation."
+msgstr ""
+":hex: Qualquer texto. Converte um identificador de nó binário do\n"
+"    Mercurial em sua representação longa hexadecimal."
+
+msgid ""
+":hgdate: Date. Returns the date as a pair of numbers: \"1157407993\n"
+"    25200\" (Unix timestamp, timezone offset)."
+msgstr ""
+":hgdate: Data. Devolve a data como um par de números:\n"
+"    \"1157407993 25200\" (timestamp Unix, defasagem de fuso)"
+
+msgid ""
+":isodate: Date. Returns the date in ISO 8601 format: \"2009-08-18 13:00\n"
+"    +0200\"."
+msgstr ""
+":isodate: Data. Devolve a data em formato ISO 8601:\n"
+"    \"2009-08-18 13:00 +0200\"."
+
+msgid ""
+":isodatesec: Date. Returns the date in ISO 8601 format, including\n"
+"    seconds: \"2009-08-18 13:00:13 +0200\". See also the rfc3339date\n"
+"    filter."
+msgstr ""
+":isodatesec: Data. Devolve a data em formato ISO 8601, incluindo os\n"
+"    segundos: \"2009-08-18 13:00:13 +0200\". Veja também o filtro\n"
+"    rfc3339date."
+
+msgid ":localdate: Date. Converts a date to local date."
+msgstr ":localdate: Data. Converte para data local."
+
+msgid ":nonempty: Any text. Returns '(none)' if the string is empty."
+msgstr ":nonempty: Qualquer texto. Devolve (none) se o texto for vazio."
+
+msgid ""
+":obfuscate: Any text. Returns the input text rendered as a sequence of\n"
+"    XML entities."
+msgstr ""
+":obfuscate: Qualquer texto. Devolve o texto de entrada\n"
+"    renderizado como uma sequência de entidades XML."
+
+msgid ":person: Any text. Returns the text before an email address."
+msgstr ""
+":person: Qualquer texto. Devolve o texto antes de um endereço\n"
+"    de e-mail."
+
+msgid ""
+":rfc3339date: Date. Returns a date using the Internet date format\n"
+"    specified in RFC 3339: \"2009-08-18T13:00:13+02:00\"."
+msgstr ""
+":rfc3339date: Data. Devolve uma data usando o formato de data da\n"
+"    Internet especificado na RFC 3339:\n"
+"    \"2009-08-18T13:00:13+02:00\"."
+
+msgid ""
+":rfc822date: Date. Returns a date using the same format used in email\n"
+"    headers: \"Tue, 18 Aug 2009 13:00:13 +0200\"."
+msgstr ""
+":rfc822date: Data. Devolve uma data usando o mesmo formato utilizado\n"
+"    em cabeçalhos de e-mail:\n"
+"    \"Tue, 18 Aug 2009 13:00:13 +0200\"."
+
+msgid ""
+":short: Changeset hash. Returns the short form of a changeset hash,\n"
+"    i.e. a 12 hexadecimal digit string."
+msgstr ""
+":short: Hash da revisão. Devolve a forma curta do hash de\n"
+"    uma revisão, ou seja, uma string hexadecimal de 12 dígitos."
+
+msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
+msgstr ":shortdate: Data. Devolve uma data como \"2006-09-18\"."
+
+msgid ""
+":stringify: Any type. Turns the value into text by converting values into\n"
+"    text and concatenating them."
+msgstr ""
+":stringify: Qualquer tipo. Transforma o valor em texto convertendo cada\n"
+"    parte em texto e concatenando os resultados."
+
+msgid ":strip: Any text. Strips all leading and trailing whitespace."
+msgstr ""
+":strip: Qualquer texto. Remove todos os espaços em branco no\n"
+"    início e no final do texto."
+
+msgid ""
+":stripdir: Treat the text as path and strip a directory level, if\n"
+"    possible. For example, \"foo\" and \"foo/bar\" becomes \"foo\"."
+msgstr ""
+":stripdir: Trata o texto como um caminho e remove um nível\n"
+"    de diretório, se possível. Por exemplo, \"foo\" e\n"
+"    \"foo/bar\" se tornam \"foo\"."
+
+msgid ""
+":tabindent: Any text. Returns the text, with every line except the\n"
+"    first starting with a tab character."
+msgstr ""
+":tabindent: Qualquer texto. Insere um caractere de tabulação no\n"
+"    início de cada linha do texto, exceto da primeira."
+
+msgid ""
+":urlescape: Any text. Escapes all \"special\" characters. For example,\n"
+"    \"foo bar\" becomes \"foo%20bar\"."
+msgstr ""
+":urlescape: Qualquer texto. Codifica todos os caracteres\n"
+"    \"especiais\". Por exemplo, \"foo bar\" se torna\n"
+"    \"foo%20bar\"."
+
+msgid ":user: Any text. Returns the user portion of an email address."
+msgstr ":user: Qualquer texto. Devolve a parte do usuário de um endereço de e-mail."
+
+msgid ":author: String. The unmodified author of the changeset."
+msgstr ":author: String. O autor da revisão, sem modificações."
+
+msgid ""
+":branch: String. The name of the branch on which the changeset was\n"
+"    committed."
+msgstr ":branch: String. O nome do ramo no qual a revisão foi consolidada."
+
+msgid ""
+":branches: List of strings. The name of the branch on which the\n"
+"    changeset was committed. Will be empty if the branch name was\n"
+"    default."
+msgstr ""
+":branches: Lista de strings. O nome do ramo no qual a revisão foi\n"
+"    consolidada. Será vazio se o nome do ramo for default."
+
+msgid ""
+":bookmarks: List of strings. Any bookmarks associated with the\n"
+"    changeset."
+msgstr ":bookmarks: Lista de strings. Quaisquer marcadores associados à revisão."
+
+msgid ":children: List of strings. The children of the changeset."
+msgstr ":children: Lista de strings. As revisões filhas da revisão."
+
+msgid ":date: Date information. The date when the changeset was committed."
+msgstr ":date: Informação de data. A data de consolidação da revisão."
+
+msgid ":desc: String. The text of the changeset description."
+msgstr ":desc: String. O texto da descrição da revisão."
+
+msgid ""
+":diffstat: String. Statistics of changes with the following format:\n"
+"    \"modified files: +added/-removed lines\""
+msgstr ""
+":diffstat: String. Estatísticas de mudanças no seguinte\n"
+"    formato: \"modified files: +added/-removed lines\""
+
+msgid ":file_adds: List of strings. Files added by this changeset."
+msgstr ":file_adds: Lista de strings. Arquivos adicionados por esta revisão."
+
+msgid ""
+":file_copies: List of strings. Files copied in this changeset with\n"
+"    their sources."
+msgstr ""
+":file_copies: Lista de strings. Arquivos copiados nesta revisão\n"
+"    com suas respectivas origens."
+
+msgid ""
+":file_copies_switch: List of strings. Like \"file_copies\" but displayed\n"
+"    only if the --copied switch is set."
+msgstr ""
+":file_copies_switch: Lista de strings. Como \"file_copies\", mas\n"
+"    é exibida apenas se a opção --copied estiver definida."
+
+msgid ":file_dels: List of strings. Files removed by this changeset."
+msgstr ":file_dels: Lista de strings. Arquivos removidos por esta revisão."
+
+msgid ":file_mods: List of strings. Files modified by this changeset."
+msgstr ":file_mods: Lista de strings. Arquivos modificados por esta revisão"
+
+msgid ""
+":files: List of strings. All files modified, added, or removed by this\n"
+"    changeset."
+msgstr ""
+":files: Lista de strings. Todos os arquivos modificados,\n"
+"    adicionados ou removidos por esta revisão."
+
+msgid ""
+":latesttag: String. Most recent global tag in the ancestors of this\n"
+"    changeset."
+msgstr ""
+":latesttag: String. A etiqueta global mais recente nos ancestrais desta\n"
+"    revisão."
+
+msgid ":latesttagdistance: Integer. Longest path to the latest tag."
+msgstr ":latesttagdistance: Inteiro. O caminho mais longo para a latesttag."
+
+msgid ""
+":node: String. The changeset identification hash, as a 40 hexadecimal\n"
+"    digit string."
+msgstr ""
+":node: String. O hash de identificação da revisão, como uma string\n"
+"    hexadecimal de 40 dígitos."
+
+msgid ":rev: Integer. The repository-local changeset revision number."
+msgstr ":rev: Inteiro. O número de ordem da revisão no repositório local."
+
+msgid ":tags: List of strings. Any tags associated with the changeset."
+msgstr ":tags: Lista de strings. Quaisquer etiquetas associadas à revisão."
+
 #, python-format
 msgid "unknown method '%s'"
 msgstr "método desconhecido '%s'"
--- a/i18n/ru.po	Wed Jun 29 16:05:59 2011 -0500
+++ b/i18n/ru.po	Thu Jun 30 19:34:09 2011 -0500
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: Mercurial\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2011-06-29 18:27+0400\n"
+"POT-Creation-Date: 2011-07-01 00:15+0400\n"
 "PO-Revision-Date: 2011-05-12 23:48+0400\n"
 "Last-Translator: Alexander Sauta <demosito@gmail.com>\n"
 "Language-Team: Russian\n"
@@ -905,6 +905,16 @@
 msgstr ""
 
 msgid ""
+"Note that on some systems, terminfo mode may cause problems when using\n"
+"color with the pager extension and less -R. less with the -R option\n"
+"will only display ECMA-48 color codes, and terminfo mode may sometimes\n"
+"emit codes that less doesn't understand. You can work around this by\n"
+"either using ansi mode (or auto mode), or by using less -r (which will\n"
+"pass through all terminal control codes, not just color control\n"
+"codes)."
+msgstr ""
+
+msgid ""
 "Because there are only eight standard colors, this module allows you\n"
 "to define color names for other color slots which might be available\n"
 "for your terminal type, assuming terminfo mode.  For instance::"
@@ -925,18 +935,19 @@
 msgstr ""
 
 msgid ""
-"The color extension will try to detect whether to use terminfo, ANSI\n"
-"codes or Win32 console APIs, unless it is made explicit; e.g.::"
+"By default, the color extension will use ANSI mode (or win32 mode on\n"
+"Windows) if it detects a terminal. To override auto mode (to enable\n"
+"terminfo mode, for example), set the following configuration option::"
 msgstr ""
 
 msgid ""
 "  [color]\n"
-"  mode = ansi"
+"  mode = terminfo"
 msgstr ""
 
 msgid ""
 "Any value other than 'ansi', 'win32', 'terminfo', or 'auto' will\n"
-"disable color."
+"disable color.\n"
 msgstr ""
 
 msgid "no terminfo entry for setab/setaf: reverting to ECMA-48 color\n"
@@ -1668,7 +1679,7 @@
 msgstr ""
 
 msgid "revisions"
-msgstr ""
+msgstr "ревизии"
 
 msgid "scanning"
 msgstr ""
@@ -2310,7 +2321,7 @@
 msgstr ""
 
 msgid "cannot specify --rev and --change at the same time"
-msgstr ""
+msgstr "нельзя указывать одновременно --reb и --change"
 
 msgid "cleaning up temp directory\n"
 msgstr "очистка временного каталога\n"
@@ -2349,7 +2360,7 @@
 "    ревизиями. Если указана только одна ревизия, то эта ревизия\n"
 "    сравнивается с рабочей копией, а если не указано ни одной\n"
 "    ревизии, рабочая копия сравнивается с родительской ревизией\n"
-"    репозитория."
+"    из репозитория."
 
 msgid "CMD"
 msgstr "КОМАНДА"
@@ -2442,7 +2453,7 @@
 
 #, python-format
 msgid "pulling from %s\n"
-msgstr ""
+msgstr "подтягивая из %s\n"
 
 msgid ""
 "Other repository doesn't support revision lookup, so a rev cannot be "
@@ -2471,7 +2482,7 @@
 msgstr ""
 
 msgid "edit commit message"
-msgstr ""
+msgstr "редактировать комментарий к коммиту"
 
 msgid "edit commit message (DEPRECATED)"
 msgstr ""
@@ -2592,16 +2603,16 @@
 msgstr ""
 
 msgid "NUM"
-msgstr ""
+msgstr "КОЛ-ВО"
 
 msgid "limit number of changes displayed"
 msgstr "ограничивать количество отображаемых изменений"
 
 msgid "show patch"
-msgstr ""
+msgstr "показать патч"
 
 msgid "show the specified revision or range"
-msgstr ""
+msgstr "показать заданную ревизию или диапазон ревизий"
 
 msgid "hg glog [OPTION]... [FILE]"
 msgstr ""
@@ -2844,7 +2855,7 @@
 msgstr "запустить сервер в фоновом режиме"
 
 msgid "used internally by daemon mode"
-msgstr "внутренне используется в режиме сервиса"
+msgstr "используется внутренней реализацией в режиме демона"
 
 msgid "minutes to sit idle before exiting"
 msgstr ""
@@ -3409,7 +3420,7 @@
 
 #, python-format
 msgid "applying %s\n"
-msgstr ""
+msgstr "применяю %s\n"
 
 #, python-format
 msgid "unable to read %s\n"
@@ -3761,7 +3772,7 @@
 msgstr ""
 
 msgid "NAME"
-msgstr ""
+msgstr "ИМЯ"
 
 msgid "name of patch file"
 msgstr ""
@@ -3863,7 +3874,7 @@
 msgstr "не использовать сжатие при передачи (быстрее в локальной сети)"
 
 msgid "REPO"
-msgstr ""
+msgstr "РЕПОЗИТОРИЙ"
 
 msgid "location of source patch repository"
 msgstr ""
@@ -4572,7 +4583,7 @@
 msgstr ""
 
 msgid "there is no Mercurial repository here (.hg not found)"
-msgstr ""
+msgstr "здесь нет репозитория Mercurial (.hg не найден)"
 
 msgid "no queue repository"
 msgstr ""
@@ -5031,10 +5042,10 @@
 
 #, python-format
 msgid "comparing with %s\n"
-msgstr ""
+msgstr "сравниваю с %s\n"
 
 msgid "no changes found\n"
-msgstr ""
+msgstr "изменений не найдено\n"
 
 msgid "specify at least one changeset with -r or -o"
 msgstr ""
@@ -5273,7 +5284,7 @@
 msgstr ""
 
 msgid "specify merge tool"
-msgstr ""
+msgstr "задать инструмент слияния"
 
 msgid "continue an interrupted rebase"
 msgstr ""
@@ -5451,7 +5462,7 @@
 msgstr "игнорировать изменения в количестве пробельных символов"
 
 msgid "ignore changes whose lines are all blank"
-msgstr "игнорировать пустые строки"
+msgstr "игнорировать изменения, состоящие только из пустых строк"
 
 msgid "this modifies a binary file (all or nothing)\n"
 msgstr "это изменяет двоичный файл (всё или ничего)\n"
@@ -6209,7 +6220,7 @@
 
 #, python-format
 msgid "the name '%s' is reserved"
-msgstr ""
+msgstr "имя '%s' зарезервировано"
 
 msgid "options --message and --logfile are mutually exclusive"
 msgstr ""
@@ -6386,7 +6397,7 @@
 
 #, python-format
 msgid "adding %s\n"
-msgstr ""
+msgstr "добавляю %s\n"
 
 #, python-format
 msgid "skipping missing subrepository: %s\n"
@@ -6676,28 +6687,28 @@
 msgstr "не отслеживать копирования и перемещения"
 
 msgid "list the author (long with -v)"
-msgstr "писать имя автора (длинный формат с -v)"
+msgstr "показывать имя автора (длинный формат с -v)"
 
 msgid "list the filename"
-msgstr "писать имя файла"
+msgstr "показывать имя файла"
 
 msgid "list the date (short with -q)"
-msgstr "писать дату (короткий формат с -q"
+msgstr "показывать дату (короткий формат с -q)"
 
 msgid "list the revision number (default)"
-msgstr "писать номер ревизии (по умолчанию)"
+msgstr "показывать номер ревизии (по умолчанию)"
 
 msgid "list the changeset"
-msgstr "писать набор изменений"
+msgstr "показывать набор изменений"
 
 msgid "show line number at the first appearance"
-msgstr "указывать номер строки при первом появлении"
+msgstr "показывать номер строки при первом появлении"
 
 msgid "[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FILE..."
-msgstr ""
+msgstr "[-r РЕВИЗИЯ] [-f] [-a] [-u] [-d] [-n] [-c] [-l] ФАЙЛ..."
 
 msgid "show changeset information by line for each file"
-msgstr "информация о наборе изменений построчно для каждого файла"
+msgstr "показать данные ревизии построчно для каждого файла"
 
 msgid ""
 "    List changes in files, showing the revision id responsible for\n"
@@ -6753,7 +6764,7 @@
 msgstr "[ПАРАМЕТР]... НАЗНАЧЕНИЕ"
 
 msgid "create an unversioned archive of a repository revision"
-msgstr "создать неверсионируемую архивную копию ревизии репозитория"
+msgstr "создать неверсионируемую архивную копию ревизии из репозитория"
 
 msgid ""
 "    By default, the revision used is the parent of the working\n"
@@ -7041,7 +7052,7 @@
 msgstr "hg bookmarks [-f] [-d] [-i] [-m ИМЯ] [-r РЕВИЗИЯ] [ИМЯ]"
 
 msgid "track a line of development with movable markers"
-msgstr "отслеживать ветвь разработки с помощью передвигаемых меток"
+msgstr "отслеживать ветвь разработки с помощью подвижных меток"
 
 msgid ""
 "    Bookmarks are pointers to certain commits that move when\n"
@@ -7111,7 +7122,7 @@
 msgstr "использовать имя ветви, даже если оно скрывает уже существующую ветвь"
 
 msgid "reset branch name to parent branch name"
-msgstr "сбросить имя ветви в имя ветви родителя"
+msgstr "сбросить имя ветви до имени ветви родителя"
 
 msgid "[-fC] [NAME]"
 msgstr "[-fC] [ИМЯ]"
@@ -7162,6 +7173,9 @@
 "       light-weight bookmark instead. See :hg:`help glossary` for more\n"
 "       information about named branches and bookmarks."
 msgstr ""
+"       Имена ветвей постоянны. В качестве альтернативы можно использовать\n"
+"       :hg:`bookmark`, чтобы создать легковесную ветвь. Дополнительную\n"
+"       информацию о ветвях и закладках см. в :hg:`help glossary`."
 
 #, python-format
 msgid "reset working directory to branch %s\n"
@@ -7330,8 +7344,8 @@
 msgstr ""
 "    Печатает содержимое указанных файлов, каким оно бало на момент\n"
 "    указанной ревизии. Если невизия не указана, используется\n"
-"    родительская ревизия рабочего каталога или вершина (tip), если\n"
-"    работий каталог пуст."
+"    родительская ревизия рабочего каталога или оконечная ревизия (tip),\n"
+"    если работий каталог пуст."
 
 msgid ""
 "    Output may be to a file, in which case the name of the file is\n"
@@ -7376,8 +7390,8 @@
 "    If no destination directory name is specified, it defaults to the\n"
 "    basename of the source."
 msgstr ""
-"    Если директорий назначения не задан, используется имя базового\n"
-"    каталога источника."
+"    Если директория назначения не задана, используется базовая часть\n"
+"    имени каталога источника."
 
 msgid ""
 "    The location of the source is added to the new repository's\n"
@@ -7585,9 +7599,9 @@
 "    directory, copies are put in that directory. If dest is a file,\n"
 "    the source must be a single file."
 msgstr ""
-"    Помечает НАЗН как копию источника. Если НАЗН - директория,\n"
-"    копии помещаются туда. Если НАЗН - файл, источник должен\n"
-"    быть одним файлом."
+"    Помечает файл назначения как копию источника. Если НАЗНАЧЕНИЕ -\n"
+"    директория, копии помещаются туда. Если НАЗНАЧЕНИЕ - файл, источник\n"
+"    должен быть одним файлом."
 
 msgid ""
 "    By default, this command copies the contents of files as they\n"
@@ -8047,7 +8061,7 @@
 "    Use the -g/--git option to generate diffs in the git extended diff\n"
 "    format. For more information, read :hg:`help diffs`."
 msgstr ""
-"    Используйте -g/--git чтобы генерировать отличися в расширенном\n"
+"    Используйте -g/--git чтобы генерировать отличия в расширенном\n"
 "    формате git. Подробнее см. :hg:`help diffs`."
 
 msgid "diff against the second parent"
@@ -8206,7 +8220,7 @@
 msgstr "[ПАРАМЕТР]... ШАБЛОН [ФАЙЛ]..."
 
 msgid "search for a pattern in specified files and revisions"
-msgstr "искать шаблон в указанных файлах и ревизиях"
+msgstr "искать текст в указанных файлах и ревизиях"
 
 msgid "    Search revisions of files for a regular expression."
 msgstr "    Ищет регулярное выражение в указанных ревизиях файлов."
@@ -8330,7 +8344,7 @@
 msgstr "показать только справку по расширениям"
 
 msgid "show only help for commands"
-msgstr "показать справку для команд"
+msgstr "показать только справку по командам"
 
 msgid "[-ec] [TOPIC]"
 msgstr "[-ec] [ТЕМА]"
@@ -8490,13 +8504,13 @@
 msgstr "показать глобальный идентификатор ревизии"
 
 msgid "show branch"
-msgstr "показать ветку"
+msgstr "показать ветвь"
 
 msgid "show tags"
 msgstr "показать метки"
 
 msgid "show bookmarks"
-msgstr "показать закладка"
+msgstr "показать закладки"
 
 msgid "[-nibtB] [-r REV] [SOURCE]"
 msgstr "[-nibtB] [-r РЕВИЗИЯ] [ИСТОЧНИК]"
@@ -8627,6 +8641,9 @@
 "    patches will be applied on top of the working directory parent\n"
 "    revision."
 msgstr ""
+"    Используйте --bypass, чтобы применить и закоммитить патчи прямо\n"
+"    в репозиторий, не затрагивая рабочий каталог. Без --exact патчи\n"
+"    будут наложены поверх родительской ревизии рабочего каталога."
 
 msgid ""
 "    With -s/--similarity, hg will attempt to discover renames and\n"
@@ -8748,7 +8765,7 @@
 "    See :hg:`help urls` for more information."
 msgstr ""
 "    Можно задать URL вида ``ssh://`` в качестве каталога назначения.\n"
-"    См. :hg:`help urls` для дополнительной информации."
+"    См. также :hg:`help urls`."
 
 msgid "search the repository as it is in REV"
 msgstr "искать в репозитории, каким он был на момент РЕВИЗИЯ"
@@ -8926,6 +8943,8 @@
 "    If option --all is specified, the list of all files from all revisions\n"
 "    is printed. This includes deleted and renamed files."
 msgstr ""
+"    Если указан --all, печатается список всех файлов из всех ревизий,\n"
+"    включая удаленные и переименованные файлы."
 
 msgid "can't specify a revision with --all"
 msgstr "нельзя одновременно указывать ревизию и --all"
@@ -9255,13 +9274,13 @@
 msgstr "[-f] [-r РЕВ]... [-e КОМ-ДА] [--remotecmd КОМ-ДА] [НАЗН]"
 
 msgid "push changes to the specified destination"
-msgstr "\"протолкнуть\" изменения в удаленный репозиторий"
+msgstr "передать изменения в удаленный репозиторий"
 
 msgid ""
 "    Push changesets from the local repository to the specified\n"
 "    destination."
 msgstr ""
-"    Передает изменения из локального репозитория в удаленный\n"
+"    \"Проталкивает\" изменения из локального репозитория в удаленный.\n"
 "    "
 
 msgid ""
@@ -9405,6 +9424,8 @@
 "    Предупредить (Warn - W), удалить из ветви (Remove - R), удалить\n"
 "    из каталога (Delete - D)."
 
+# сбивается форматирование!!!
+#, fuzzy
 msgid ""
 "             A  C  M  !\n"
 "      none   W  RD W  R\n"
@@ -9422,6 +9443,8 @@
 "    Note that remove never deletes files in Added [A] state from the\n"
 "    working directory, not even if option --force is specified."
 msgstr ""
+"    Обратите внимание, что remove никогда не удаляет из рабочего\n"
+"    каталога файлы с состоянием Added [A], даже c опцией --force."
 
 msgid ""
 "    This command schedules the files to be removed at the next commit.\n"
@@ -9495,7 +9518,7 @@
 msgstr "не показывать префикс состояния"
 
 msgid "redo merges or set/view the merge status of files"
-msgstr "повторить слияния или задать/посмотреть статус слитых файлов"
+msgstr "повторить слияния или задать/посмотреть статус слияния файлов"
 
 msgid ""
 "    Merges with unresolved conflicts are often the result of\n"
@@ -9597,13 +9620,17 @@
 msgstr "[ПАРАМЕТР]... [-r РЕВИЗИЯ] [ИМЯ]..."
 
 msgid "restore files to their checkout state"
-msgstr ""
+msgstr "восстановить файлы до их состояния в репозитории"
 
 msgid ""
 "    .. note::\n"
 "       To check out earlier revisions, you should use :hg:`update REV`.\n"
 "       To cancel a merge (and lose your changes), use :hg:`update --clean .`."
 msgstr ""
+"    .. note::\n"
+"       Чтобы извлечь более ранние ревизии, необходимо использовать\n"
+"       :hg:`update РЕВИЗИЯ`. Чтобы отменить слияние (с потерей сделанных)\n"
+"       изменений), используйте :hg:`update --clean .`."
 
 msgid ""
 "    With no revision specified, revert the specified files or directories\n"
@@ -9662,13 +9689,12 @@
 "используйте --all чтобы восстановить все файлы, или 'hg update %s'\n"
 "чтобы обновиться"
 
-#, fuzzy
 msgid "uncommitted changes, use --all to discard all changes"
-msgstr "используйте --all чтобы сбросить все изменения"
-
-#, fuzzy
+msgstr ""
+"незакоммиченные изменения, используйте --all чтобы сбросить все изменения"
+
 msgid "use --all to revert all files"
-msgstr "используйте --all чтобы сбросить все изменения"
+msgstr "используйте --all чтобы восстановить все файлы"
 
 #, python-format
 msgid "forgetting %s\n"
@@ -9705,10 +9731,10 @@
 "    the working directory."
 msgstr ""
 "    Эту команду следует использовать очень осторожно, поскольку\n"
-"    можно откатить только на один уровень вглубь и нельзя отменить\n"
+"    можно откатываться только на один уровень вглубь и нельзя отменить\n"
 "    откат. Она также восстановит dirstate на время последней\n"
-"    транзакции, теряя все его изменения, сделанные после этого. Не\n"
-"    изменяет рабочий каталог."
+"    транзакции, теряя все его изменения, сделанные после этого. Эта\n"
+"    команда не изменяет рабочий каталог."
 
 msgid ""
 "    Transactions are used to encapsulate the effects of all commands\n"
@@ -9809,7 +9835,7 @@
 msgstr "Файл сертификата SSL"
 
 msgid "start stand-alone webserver"
-msgstr "запустить автономный веб-серве"
+msgstr "запустить автономный веб-сервер"
 
 msgid ""
 "    Start a local HTTP repository browser and pull server. You can use\n"
@@ -9997,12 +10023,12 @@
 "      I = ignored\n"
 "        = origin of the previous file listed as A (added)"
 msgstr ""
-"      M = изменен (modified\n"
+"      M = изменен (modified)\n"
 "      A = добавлен (added)\n"
 "      R = удален (removed)\n"
 "      C = без изменений (clean)\n"
 "      ! = отсутствует (missing) (удален внешней командой, отслеживается)\n"
-"      ? = не отслеживается not tracked\n"
+"      ? = не отслеживается\n"
 "      I = игнорируется (ignored)\n"
 "        = источник предыдущего файла показанного как A (добавлен)"
 
@@ -10249,7 +10275,7 @@
 "    This lists both regular and local tags. When the -v/--verbose\n"
 "    switch is used, a third column \"local\" is printed for local tags."
 msgstr ""
-"    Печатает обычные и локальные метки. Если указан -v/--verbose\n"
+"    Печатает обычные и локальные метки. Если указан -v/--verbose,\n"
 "    для локальных меток добавляется третий столбец \"local\"."
 
 msgid "[-p] [-g]"
@@ -10264,7 +10290,7 @@
 "    recently changed head)."
 msgstr ""
 "    Оконечная ревизия (tip) - это набор последний добавленный в\n"
-"    репозиторий набор изменений (и следовательно последняя\n"
+"    репозиторий набор изменений (и, следовательно, последняя\n"
 "    измененная головная ревизия)."
 
 msgid ""
@@ -10429,24 +10455,23 @@
 msgid "(see http://mercurial.selenic.com for more information)"
 msgstr "(подробнее см. http://mercurial.selenic.com)"
 
-#, fuzzy
 msgid ""
 "Copyright (C) 2005-2011 Matt Mackall and others\n"
 "This is free software; see the source for copying conditions. There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
 msgstr ""
-"(С) 2005-2011 Matt Mackall и другие\n"
-"Mercurial - свободное ПО; см. исходники об условиях распространения.\n"
-"НЕ предоставляются НИКАКИЕ гарантии, т.ч. ПРИГОДНОСТИ ДЛЯ ПРОДАЖИ или\n"
-"КАКОЙ-ЛИБО ДРУГОЙ ЦЕЛИ."
+"(С) 2005-2011 Matt Mackall и другие.\n"
+"Это свободное ПО; условия распространения см. в исходном коде.\n"
+"НИКАКИХ ГАРАНТИЙ НЕ ПРЕДОСТАВЛЯЕТСЯ, в том числе, на пригодность для\n"
+"коммерческого использования и для решения конкертных задач.\n"
 
 #, python-format
 msgid "unknown mode %s"
-msgstr "неизвесный режим %s"
+msgstr "неизвестный режим %s"
 
 #, python-format
 msgid "unknown command %s"
-msgstr ""
+msgstr "неизвестная команда %s"
 
 #, python-format
 msgid "cannot include %s (%s)"
--- a/mercurial/subrepo.py	Wed Jun 29 16:05:59 2011 -0500
+++ b/mercurial/subrepo.py	Thu Jun 30 19:34:09 2011 -0500
@@ -663,7 +663,9 @@
         args = ['checkout']
         if self._svnversion >= (1, 5):
             args.append('--force')
-        args.extend([state[0], '--revision', state[1]])
+        # The revision must be specified at the end of the URL to properly
+        # update to a directory which has since been deleted and recreated.
+        args.append('%s@%s' % (state[0], state[1]))
         status, err = self._svncommand(args, failok=True)
         if not re.search('Checked out revision [0-9]+.', status):
             if ('is already a working copy for a different URL' in err
--- a/tests/run-tests.py	Wed Jun 29 16:05:59 2011 -0500
+++ b/tests/run-tests.py	Thu Jun 30 19:34:09 2011 -0500
@@ -78,10 +78,7 @@
                 time.sleep(1)
             p.timeout = True
             if p.returncode is None:
-                try:
-                    p.terminate()
-                except OSError:
-                    pass
+                terminate(p)
         threading.Thread(target=t).start()
 
     return p
@@ -262,10 +259,6 @@
             sys.stderr.write(
                 'warning: --timeout option ignored with --debug\n')
         options.timeout = 0
-    if options.timeout and not hasattr(subprocess.Popen, 'terminate'):
-        sys.stderr.write('warning: timeout is not supported on this '
-                         'platform and will be ignored\n')
-        options.timeout = 0
     if options.py3k_warnings:
         if sys.version_info[:2] < (2, 6) or sys.version_info[:2] >= (3, 0):
             parser.error('--py3k-warnings can only be used on Python 2.6+')
@@ -343,6 +336,17 @@
         else:
             print "WARNING: Did not find prerequisite tool: "+p
 
+def terminate(proc):
+    """Terminate subprocess (with fallback for Python versions < 2.6)"""
+    vlog('# Terminating process %d' % proc.pid)
+    try:
+        if hasattr(proc, 'terminate'):
+            proc.terminate()
+        else:
+            os.kill(proc.pid, signal.SIGTERM)
+    except OSError:
+        pass
+
 def killdaemons():
     # Kill off any leftover daemon processes
     try:
@@ -651,10 +655,7 @@
 
     proc = Popen4(cmd, wd, options.timeout)
     def cleanup():
-        try:
-            proc.terminate()
-        except OSError:
-            pass
+        terminate(proc)
         ret = proc.wait()
         if ret == 0:
             ret = signal.SIGTERM << 8
--- a/tests/test-subrepo-svn.t	Wed Jun 29 16:05:59 2011 -0500
+++ b/tests/test-subrepo-svn.t	Thu Jun 30 19:34:09 2011 -0500
@@ -519,3 +519,67 @@
   $ hg co tip
   abort: crosses branches (merge branches or use --clean to discard changes)
   [255]
+
+Point to a Subversion branch which has since been deleted and recreated
+First, create that condition in the repository.
+
+  $ hg ci -m cleanup
+  committing subrepository obstruct
+  Sending        obstruct/other
+  Transmitting file data .
+  Committed revision 7.
+  At revision 7.
+  $ svn mkdir -m "baseline" $SVNREPO/trunk
+  
+  Committed revision 8.
+  $ svn copy -m "initial branch" $SVNREPO/trunk $SVNREPO/branch
+  
+  Committed revision 9.
+  $ svn co --quiet "$SVNREPO"/branch tempwc
+  $ cd tempwc
+  $ echo "something old" > somethingold
+  $ svn add somethingold
+  A         somethingold
+  $ svn ci -m 'Something old'
+  Adding         somethingold
+  Transmitting file data .
+  Committed revision 10.
+  $ svn rm -m "remove branch" $SVNREPO/branch
+  
+  Committed revision 11.
+  $ svn copy -m "recreate branch" $SVNREPO/trunk $SVNREPO/branch
+  
+  Committed revision 12.
+  $ svn up
+  D    somethingold
+  Updated to revision 12.
+  $ echo "something new" > somethingnew
+  $ svn add somethingnew
+  A         somethingnew
+  $ svn ci -m 'Something new'
+  Adding         somethingnew
+  Transmitting file data .
+  Committed revision 13.
+  $ cd ..
+  $ rm -rf tempwc
+  $ svn co "$SVNREPO/branch"@10 recreated
+  A    recreated/somethingold
+  Checked out revision 10.
+  $ echo "recreated =        [svn]       $SVNREPO/branch" >> .hgsub
+  $ hg ci -m addsub
+  committing subrepository recreated
+  $ cd recreated
+  $ svn up
+  D    somethingold
+  A    somethingnew
+  Updated to revision 13.
+  $ cd ..
+  $ hg ci -m updatesub
+  committing subrepository recreated
+  $ hg up -r-2
+  D    $TESTTMP/rebaserepo/recreated/somethingnew
+  A    $TESTTMP/rebaserepo/recreated/somethingold
+  Checked out revision 10.
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ test -e recreated/somethingold
+