--- a/hgext/color.py Sun Jul 31 22:12:13 2011 +0200
+++ b/hgext/color.py Mon Aug 01 10:54:34 2011 -0500
@@ -180,6 +180,7 @@
realmode = 'ansi'
if realmode == 'win32':
+ _terminfo_params = {}
if not w32effects:
if mode == 'win32':
# only warn if color.mode is explicitly set to win32
--- a/i18n/ja.po Sun Jul 31 22:12:13 2011 +0200
+++ b/i18n/ja.po Mon Aug 01 10:54:34 2011 -0500
@@ -104,7 +104,7 @@
msgstr ""
"Project-Id-Version: Mercurial\n"
"Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2011-06-29 21:47+0900\n"
+"POT-Creation-Date: 2011-07-31 22:58+0900\n"
"PO-Revision-Date: 2009-11-16 21:24+0100\n"
"Last-Translator: Japanese translation team <mercurial-ja@googlegroups.com>\n"
"Language-Team: Japanese\n"
@@ -1042,6 +1042,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::"
@@ -1062,18 +1072,22 @@
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.::"
-msgstr ""
-
+"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 ""
+
+#, fuzzy
msgid ""
" [color]\n"
-" mode = ansi"
-msgstr ""
+" mode = terminfo"
+msgstr ""
+" [collections]\n"
+" /foo = /foo"
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"
@@ -5757,6 +5771,10 @@
msgid "nothing to rebase\n"
msgstr "リベースの必要はありません\n"
+#, fuzzy
+msgid "cannot collapse multiple named branches"
+msgstr "ファイル名 '%s' のデコードに失敗"
+
msgid "rebasing"
msgstr "リベース実施中"
@@ -6915,8 +6933,8 @@
msgid "change working directory"
msgstr "作業領域の変更"
-msgid "do not prompt, assume 'yes' for any required answers"
-msgstr "問い合わせをせず、 確認事項は全て 'yes' とみなす"
+msgid "do not prompt, automatically pick the first choice for all prompts"
+msgstr "問い合わせ無しで、 最初の選択肢を自動的に選択"
msgid "suppress output"
msgstr "出力を抑止"
@@ -10076,15 +10094,19 @@
msgid ""
" With no revision specified, revert the specified files or directories\n"
-" to the state they had in the first parent of the working directory.\n"
+" to the contents they had in the parent of the working directory.\n"
" This restores the contents of files to an unmodified\n"
-" state and unschedules adds, removes, copies, and renames."
+" state and unschedules adds, removes, copies, and renames. If the\n"
+" working directory has two parents, you must explicitly specify a\n"
+" revision."
msgstr ""
" リビジョン指定が無い場合は、 \n"
" 指定されたファイル/ディレクトリを、\n"
-" 作業領域の第1親リビジョン時点の内容へと復旧します。\n"
+" 作業領域の親リビジョン時点の内容へと復旧します。\n"
" 本コマンドは対象ファイルに対して、 状態を「改変無し」とし、\n"
-" add/remove/copy/rename の実施予定を取り消します。"
+" add/remove/copy/rename の実施予定を取り消します。\n"
+" 作業領域が複数の親リビジョンを持つ場合、\n"
+" いずれかのリビジョンを明示的に指定して下さい。"
msgid ""
" Using the -r/--rev or -d/--date options, revert the given files or\n"
@@ -10109,6 +10131,14 @@
msgid "you can't specify a revision and a date"
msgstr "リビジョンと日時は同時には指定出来ません"
+msgid "uncommitted merge with no revision specified"
+msgstr "マージが未コミットですが、対象リビジョンが明示されていません"
+
+msgid "use \"hg update\" or see \"hg help revert\""
+msgstr ""
+"リビジョンを明示して \"hg update\" するか、\"hg help revert\" を参照して下さ"
+"い"
+
msgid "no files or directories specified"
msgstr "ファイル/ディレクトリ指定がありません"
@@ -11196,8 +11226,8 @@
msgstr "リポジトリ '%s' はローカルリポジトリではありません"
#, python-format
-msgid "no repository found in %r (.hg not found)"
-msgstr "%r 配下にはリポジトリがありません (.hg が見つかりません)"
+msgid "no repository found in '%s' (.hg not found)"
+msgstr "'%s' 配下にはリポジトリがありません (.hg が見つかりません)"
msgid "warning: --repository ignored\n"
msgstr "警告: --repository 指定を無視します\n"
@@ -11384,7 +11414,7 @@
msgid ""
"``binary()``\n"
-" File that appears to be binary (contails NUL bytes)."
+" File that appears to be binary (contains NUL bytes)."
msgstr ""
"``binary()``\n"
" バイナリと思われるファイル (NUL バイトを含むファイル)"
@@ -12366,9 +12396,8 @@
"merges."
msgstr ""
-#, fuzzy
msgid "Example ``~/.hgrc``::"
-msgstr "記述例::"
+msgstr ""
msgid ""
" [merge-tools]\n"
@@ -13724,11 +13753,17 @@
" HGPLAIN is enabled. Currently the only value supported is \"i18n\",\n"
" which preserves internationalization in plain mode."
msgstr ""
+" HGPLAIN による設定無効化の際でも、\n"
+" 維持する機能をカンマ区切りで列挙します。\n"
+" 現在利用可能な機能名は \"i18n\" のみで、\n"
+" 国際化関連機能が維持されます。"
msgid ""
" Setting HGPLAINEXCEPT to anything (even an empty string) will\n"
" enable plain mode."
msgstr ""
+" HGPLAINEXCEPT に何らかの設定 (空設定でも可) をした場合、\n"
+" 設定無効化が機能します。"
msgid ""
"HGUSER\n"
@@ -13939,10 +13974,9 @@
msgid "Some sample queries:"
msgstr ""
-#, fuzzy
msgid ""
"- Show status of files that appear to be binary in the working directory::"
-msgstr "作業領域のファイル操作状況の表示"
+msgstr ""
msgid " hg status -A \"set:binary()\""
msgstr ""
@@ -13971,7 +14005,7 @@
msgid " hg revert \"set:copied() and binary() and size('>1M')\""
msgstr ""
-msgid "- Remove files listed in files.lst that contain the letter a or b::"
+msgid "- Remove files listed in foo.lst that contain the letter a or b::"
msgstr ""
msgid " hg remove \"set: 'listfile:foo.lst' and (**a* or **b*)\""
@@ -13994,7 +14028,6 @@
" 直接の親リビジョンは祖先であり、 祖先(=直接の親リビジョン含む)の\n"
" 親リビジョンも祖先となります。 'Descendant' も参照のこと。"
-#, fuzzy
msgid ""
"Bookmark\n"
" Bookmarks are pointers to certain commits that move when\n"
@@ -14003,12 +14036,6 @@
" ID, e.g., with :hg:`update`. Unlike tags, bookmarks move along\n"
" when you make a commit."
msgstr ""
-" ブックマーク (bookmark) は、 コミット操作に追従して移動する、\n"
-" リビジョン特定用の情報です。\n"
-" ブックマークのリポジトリ間伝播は、 自動的には行われません。\n"
-" ブックマークに対しては、 改名/複製/削除が可能です。\n"
-" :hg:`merge` や :hg:`update` へのリビジョン指定において、\n"
-" ブックマークを使用することが可能です。"
msgid ""
" Bookmarks can be renamed, copied and deleted. Bookmarks are local,\n"
@@ -17431,11 +17458,10 @@
" 階層があればそれを取り除きます。\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: 文字列。 タブ文字以外で始まる行をタブ文字で字下げします。"
+msgstr ":tabindent: 文字列。 最初の行以外をタブ文字で字下げします。"
msgid ""
":urlescape: Any text. Escapes all \"special\" characters. For example,\n"
@@ -17444,9 +17470,8 @@
":urlescape: 文字列。 全ての「特殊」文字を変換します。\n"
" 例えば \"foo bar\" は \"foo%20bar\" となります。"
-#, fuzzy
msgid ":user: Any text. Returns the user portion of an email address."
-msgstr ":user: 文字列。 メールアドレスのユーザ名部分を取り出します。\n"
+msgstr ":user: 文字列。 メールアドレスのユーザ名部分を取り出します。"
msgid ":author: String. The unmodified author of the changeset."
msgstr ":author: 文字列。 リビジョンの作者名(記録情報そのまま)。"
@@ -17464,11 +17489,10 @@
":branches: 文字列列挙。 リビジョンの属するブランチ名。\n"
" 所属ブランチが default の場合は空。"
-#, fuzzy
msgid ""
":bookmarks: List of strings. Any bookmarks associated with the\n"
" changeset."
-msgstr ":tags: 文字列列挙。 当該リビジョンに付与されたタグの一覧。"
+msgstr ":tags: 文字列列挙。 当該リビジョンに付与されたブックマークの一覧。"
msgid ":children: List of strings. The children of the changeset."
msgstr ":children: 文字列列挙。 リビジョンの子供。"
@@ -17934,3 +17958,6 @@
msgid "push failed:"
msgstr "履歴反映に失敗:"
+
+#~ msgid "do not prompt, assume 'yes' for any required answers"
+#~ msgstr "問い合わせをせず、 確認事項は全て 'yes' とみなす"
--- a/i18n/sv.po Sun Jul 31 22:12:13 2011 +0200
+++ b/i18n/sv.po Mon Aug 01 10:54:34 2011 -0500
@@ -13,8 +13,8 @@
msgstr ""
"Project-Id-Version: Mercurial\n"
"Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2011-06-29 09:21+0200\n"
-"PO-Revision-Date: 2011-06-29 09:24+0200\n"
+"POT-Creation-Date: 2011-07-29 20:08+0200\n"
+"PO-Revision-Date: 2011-07-30 09:39+0200\n"
"Last-Translator: Jens Bäckman <jens.backman@gmail.com>\n"
"Language-Team: Swedish\n"
"Language: Swedish\n"
@@ -961,6 +961,22 @@
"det tysta."
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 ""
+"Notera att på vissa system kan terminfo-läget orsaka problem när color-\n"
+"och pager-utökningarna används med less -R. less med flaggan -R kommer bara\n"
+"att visa ECMA-48-färgkoder, och terminfo kan sända koder som less inte\n"
+"förstår. Du kan gå runt detta genom att endera använda ansi-läge (eller\n"
+"auto-läge), eller att använda less -r (som skickar vidare alla\n"
+"terminalkoder, inte bara färgkoder)."
+
+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::"
@@ -993,25 +1009,28 @@
"bakgrunden till den färgen."
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 ""
-"Utökningen color försöker att upptäcka om terminfo, ANSI-koder eller\n"
-"APIer för konsolen i Win32 om det inte anges explicit::"
+"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 ""
+"Som standard kommer color-utökningen att använda ANSI-läge (eller\n"
+"win32-läge i Windows) om en terminal upptäcks. För att upphäva auto-läge\n"
+"(för att exempelvis aktivera terminfo-läge), sätt följande\n"
+"konfigurationsflagga::"
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 ""
"Ett värde skilt från 'ansi', 'win32', 'terminfo' eller 'auto' stänger av\n"
-"färg."
+"färg.\n"
msgid "no terminfo entry for setab/setaf: reverting to ECMA-48 color\n"
msgstr "ingen terminfo-post för setab/setaf: återgår till ECMA-48-färger\n"
@@ -5380,6 +5399,9 @@
msgid "nothing to rebase\n"
msgstr ""
+msgid "cannot collapse multiple named branches"
+msgstr "kan inte kollapsa flera namngivna grenar"
+
msgid "rebasing"
msgstr ""
@@ -6352,13 +6374,13 @@
msgstr "datum: %s\n"
msgid "files+:"
-msgstr ""
+msgstr "filer+:"
msgid "files-:"
-msgstr ""
+msgstr "filer-:"
msgid "files:"
-msgstr ""
+msgstr "filer:"
#, python-format
msgid "files: %s\n"
@@ -6413,7 +6435,7 @@
#, python-format
msgid "HG: user: %s"
-msgstr ""
+msgstr "HG: användare: %s"
msgid "HG: branch merge"
msgstr ""
@@ -6428,21 +6450,21 @@
#, python-format
msgid "HG: added %s"
-msgstr ""
+msgstr "HG: lade till %s"
#, python-format
msgid "HG: changed %s"
-msgstr ""
+msgstr "HG: ändrade %s"
#, python-format
msgid "HG: removed %s"
-msgstr ""
+msgstr "HG: raderade %s"
msgid "HG: no files changed"
-msgstr ""
+msgstr "HG: inga ändrade filer"
msgid "empty commit message"
-msgstr ""
+msgstr "tomt arkiveringsmeddelande"
msgid "repository root directory or name of overlay bundle file"
msgstr "arkivrotkatalog eller namn på påläggsbuntfil"
@@ -6453,8 +6475,8 @@
msgid "change working directory"
msgstr "ändra arbetskatalog"
-msgid "do not prompt, assume 'yes' for any required answers"
-msgstr "fråga inte, anta att svaret är 'ja' på alla frågor"
+msgid "do not prompt, automatically pick the first choice for all prompts"
+msgstr "fråga inte, välj automatiskt det första valet för alla frågor"
msgid "suppress output"
msgstr "förhindra utmatning"
@@ -9525,14 +9547,17 @@
msgid ""
" With no revision specified, revert the specified files or directories\n"
-" to the state they had in the first parent of the working directory.\n"
+" to the contents they had in the parent of the working directory.\n"
" This restores the contents of files to an unmodified\n"
-" state and unschedules adds, removes, copies, and renames."
+" state and unschedules adds, removes, copies, and renames. If the\n"
+" working directory has two parents, you must explicitly specify a\n"
+" revision."
msgstr ""
" Om ingen revision anges, så återställs de givna filerna eller\n"
-" katalogerna till läget de hade i arbetskatalogens första förälder. Det\n"
-" sätter filer i ett omodifierad läge och avbeställer adderingar,\n"
-" raderingar, kopior och namnbyten."
+" katalogerna till innehållet de hade i arbetskatalogens första förälder.\n"
+" Det sätter filer i ett omodifierad läge och avbeställer adderingar,\n"
+" raderingar, kopior och namnbyten. Om arbetskatalogen har två föräldrar,\n"
+" så måste du ange en revision."
msgid ""
" Using the -r/--rev or -d/--date options, revert the given files or\n"
@@ -9558,6 +9583,12 @@
msgid "you can't specify a revision and a date"
msgstr "du kan inte specificera en revision och ett datum"
+msgid "uncommitted merge with no revision specified"
+msgstr "oarkiverad sammanfogning utan angiven revision"
+
+msgid "use \"hg update\" or see \"hg help revert\""
+msgstr "använd \"hg update\" eller se \"hg help revert\""
+
msgid "no files or directories specified"
msgstr "inga filer eller kataloger angivna"
@@ -10625,11 +10656,11 @@
#, python-format
msgid "repository '%s' is not local"
-msgstr ""
-
-#, python-format
-msgid "no repository found in %r (.hg not found)"
-msgstr "inget arkiv hittades i %r (.hg hittades inte)"
+msgstr "arkivet '%s' är inte lokalt"
+
+#, python-format
+msgid "no repository found in '%s' (.hg not found)"
+msgstr "inget arkiv hittades i '%s' (.hg hittades inte)"
msgid "warning: --repository ignored\n"
msgstr "varning: --repository ignorerades\n"
@@ -10792,7 +10823,7 @@
msgid ""
"``binary()``\n"
-" File that appears to be binary (contails NUL bytes)."
+" File that appears to be binary (contains NUL bytes)."
msgstr ""
#. i18n: "binary" is a keyword
@@ -13270,7 +13301,7 @@
msgid " hg revert \"set:copied() and binary() and size('>1M')\""
msgstr ""
-msgid "- Remove files listed in files.lst that contain the letter a or b::"
+msgid "- Remove files listed in foo.lst that contain the letter a or b::"
msgstr ""
msgid " hg remove \"set: 'listfile:foo.lst' and (**a* or **b*)\""
@@ -16106,7 +16137,7 @@
msgid "not a symbol"
msgstr "inte en symbol"
-#, fuzzy, python-format
+#, python-format
msgid "invalid number of arguments: %s"
msgstr "felaktigt antal argument: %s"
@@ -16242,7 +16273,7 @@
"hostfingerprints or web.cacerts config setting)\n"
msgstr ""
"varning: %s-certificatet med fingeravtrycket %s overifierad (kontrollera "
-"hostfingerprints inställningen web.cacerts)\n"
+"inställningen för hostfingerprints eller web.cacerts)\n"
#, python-format
msgid "host fingerprint for %s can't be verified (Python too old)"
@@ -16254,7 +16285,7 @@
#, python-format
msgid "'%s' does not appear to be an hg repository"
-msgstr ""
+msgstr "'%s' verkar inte vara ett hg-arkiv"
msgid "cannot lock static-http repository"
msgstr ""
@@ -16401,6 +16432,209 @@
msgid ".hg/cache/tags is corrupt, rebuilding it\n"
msgstr ".hg/cache/tags är korrupt, bygger om den\n"
+msgid ""
+":addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n"
+" every line except the last."
+msgstr ""
+
+msgid ""
+":age: Date. Returns a human-readable date/time difference between the\n"
+" given date/time and the current date/time."
+msgstr ""
+
+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 ""
+
+msgid ""
+":date: Date. Returns a date in a Unix date format, including the\n"
+" timezone: \"Mon Sep 04 15:13:13 2006 0700\"."
+msgstr ""
+
+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 ""
+
+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 ""
+
+msgid ""
+":escape: Any text. Replaces the special XML/XHTML characters \"&\", \"<\"\n"
+" and \">\" with XML entities."
+msgstr ""
+
+msgid ":fill68: Any text. Wraps the text to fit in 68 columns."
+msgstr ""
+
+msgid ":fill76: Any text. Wraps the text to fit in 76 columns."
+msgstr ""
+
+msgid ":firstline: Any text. Returns the first line of text."
+msgstr ""
+
+msgid ""
+":hex: Any text. Convert a binary Mercurial node identifier into\n"
+" its long hexadecimal representation."
+msgstr ""
+
+msgid ""
+":hgdate: Date. Returns the date as a pair of numbers: \"1157407993\n"
+" 25200\" (Unix timestamp, timezone offset)."
+msgstr ""
+
+msgid ""
+":isodate: Date. Returns the date in ISO 8601 format: \"2009-08-18 13:00\n"
+" +0200\"."
+msgstr ""
+
+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 ""
+
+msgid ":localdate: Date. Converts a date to local date."
+msgstr ""
+
+msgid ":nonempty: Any text. Returns '(none)' if the string is empty."
+msgstr ""
+
+msgid ""
+":obfuscate: Any text. Returns the input text rendered as a sequence of\n"
+" XML entities."
+msgstr ""
+
+msgid ":person: Any text. Returns the text before an email address."
+msgstr ""
+
+msgid ""
+":rfc3339date: Date. Returns a date using the Internet date format\n"
+" specified in RFC 3339: \"2009-08-18T13:00:13+02:00\"."
+msgstr ""
+
+msgid ""
+":rfc822date: Date. Returns a date using the same format used in email\n"
+" headers: \"Tue, 18 Aug 2009 13:00:13 +0200\"."
+msgstr ""
+
+msgid ""
+":short: Changeset hash. Returns the short form of a changeset hash,\n"
+" i.e. a 12 hexadecimal digit string."
+msgstr ""
+
+msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
+msgstr ""
+
+msgid ""
+":stringify: Any type. Turns the value into text by converting values into\n"
+" text and concatenating them."
+msgstr ""
+
+msgid ":strip: Any text. Strips all leading and trailing whitespace."
+msgstr ""
+
+msgid ""
+":stripdir: Treat the text as path and strip a directory level, if\n"
+" possible. For example, \"foo\" and \"foo/bar\" becomes \"foo\"."
+msgstr ""
+
+msgid ""
+":tabindent: Any text. Returns the text, with every line except the\n"
+" first starting with a tab character."
+msgstr ""
+
+msgid ""
+":urlescape: Any text. Escapes all \"special\" characters. For example,\n"
+" \"foo bar\" becomes \"foo%20bar\"."
+msgstr ""
+
+msgid ":user: Any text. Returns the user portion of an email address."
+msgstr ""
+
+msgid ":author: String. The unmodified author of the changeset."
+msgstr ""
+
+msgid ""
+":branch: String. The name of the branch on which the changeset was\n"
+" committed."
+msgstr ""
+
+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 ""
+
+msgid ""
+":bookmarks: List of strings. Any bookmarks associated with the\n"
+" changeset."
+msgstr ""
+
+msgid ":children: List of strings. The children of the changeset."
+msgstr ""
+
+msgid ":date: Date information. The date when the changeset was committed."
+msgstr ""
+
+msgid ":desc: String. The text of the changeset description."
+msgstr ""
+
+msgid ""
+":diffstat: String. Statistics of changes with the following format:\n"
+" \"modified files: +added/-removed lines\""
+msgstr ""
+
+msgid ":file_adds: List of strings. Files added by this changeset."
+msgstr ""
+
+msgid ""
+":file_copies: List of strings. Files copied in this changeset with\n"
+" their sources."
+msgstr ""
+
+msgid ""
+":file_copies_switch: List of strings. Like \"file_copies\" but displayed\n"
+" only if the --copied switch is set."
+msgstr ""
+
+msgid ":file_dels: List of strings. Files removed by this changeset."
+msgstr ""
+
+msgid ":file_mods: List of strings. Files modified by this changeset."
+msgstr ""
+
+msgid ""
+":files: List of strings. All files modified, added, or removed by this\n"
+" changeset."
+msgstr ""
+
+msgid ""
+":latesttag: String. Most recent global tag in the ancestors of this\n"
+" changeset."
+msgstr ""
+
+msgid ":latesttagdistance: Integer. Longest path to the latest tag."
+msgstr ""
+
+msgid ""
+":node: String. The changeset identification hash, as a 40 hexadecimal\n"
+" digit string."
+msgstr ""
+
+msgid ":rev: Integer. The repository-local changeset revision number."
+msgstr ""
+
+msgid ":tags: List of strings. Any tags associated with the changeset."
+msgstr ""
+
#, python-format
msgid "unknown method '%s'"
msgstr "okänd metod '%s'"
--- a/mercurial/dispatch.py Sun Jul 31 22:12:13 2011 +0200
+++ b/mercurial/dispatch.py Mon Aug 01 10:54:34 2011 -0500
@@ -601,11 +601,15 @@
for cfg in cfgs:
req.repo.ui.setconfig(*cfg)
- for opt in ('verbose', 'debug', 'quiet', 'traceback'):
- val = bool(options[opt])
- if val:
+ if options['verbose'] or options['debug'] or options['quiet']:
+ for opt in ('verbose', 'debug', 'quiet'):
+ val = str(bool(options[opt]))
for ui_ in uis:
- ui_.setconfig('ui', opt, str(val))
+ ui_.setconfig('ui', opt, val)
+
+ if options['traceback']:
+ for ui_ in uis:
+ ui_.setconfig('ui', 'traceback', 'on')
if options['noninteractive']:
for ui_ in uis:
--- a/mercurial/hgweb/hgweb_mod.py Sun Jul 31 22:12:13 2011 +0200
+++ b/mercurial/hgweb/hgweb_mod.py Mon Aug 01 10:54:34 2011 -0500
@@ -129,8 +129,9 @@
# A client that sends unbundle without 100-continue will
# break if we respond early.
if (cmd == 'unbundle' and
- req.env.get('HTTP_EXPECT',
- '').lower() != '100-continue'):
+ (req.env.get('HTTP_EXPECT',
+ '').lower() != '100-continue') or
+ req.env.get('X-HgHttp2', '')):
req.drain()
req.respond(inst, protocol.HGTYPE)
return '0\n%s\n' % inst.message
--- a/mercurial/hook.py Sun Jul 31 22:12:13 2011 +0200
+++ b/mercurial/hook.py Mon Aug 01 10:54:34 2011 -0500
@@ -134,12 +134,16 @@
oldstdout = -1
if _redirect:
- stdoutno = sys.__stdout__.fileno()
- stderrno = sys.__stderr__.fileno()
- # temporarily redirect stdout to stderr, if possible
- if stdoutno >= 0 and stderrno >= 0:
- oldstdout = os.dup(stdoutno)
- os.dup2(stderrno, stdoutno)
+ try:
+ stdoutno = sys.__stdout__.fileno()
+ stderrno = sys.__stderr__.fileno()
+ # temporarily redirect stdout to stderr, if possible
+ if stdoutno >= 0 and stderrno >= 0:
+ oldstdout = os.dup(stdoutno)
+ os.dup2(stderrno, stdoutno)
+ except AttributeError:
+ # __stdout/err__ doesn't have fileno(), it's not a real file
+ pass
try:
for hname, cmd in ui.configitems('hooks'):
--- a/mercurial/httpclient/socketutil.py Sun Jul 31 22:12:13 2011 +0200
+++ b/mercurial/httpclient/socketutil.py Mon Aug 01 10:54:34 2011 -0500
@@ -78,10 +78,6 @@
CERT_NONE = ssl.CERT_NONE
CERT_OPTIONAL = ssl.CERT_OPTIONAL
CERT_REQUIRED = ssl.CERT_REQUIRED
- PROTOCOL_SSLv2 = ssl.PROTOCOL_SSLv2
- PROTOCOL_SSLv3 = ssl.PROTOCOL_SSLv3
- PROTOCOL_SSLv23 = ssl.PROTOCOL_SSLv23
- PROTOCOL_TLSv1 = ssl.PROTOCOL_TLSv1
else:
class FakeSocket(httplib.FakeSocket):
"""Socket wrapper that supports SSL.
@@ -105,10 +101,7 @@
else:
raise x
- PROTOCOL_SSLv2 = 0
- PROTOCOL_SSLv3 = 1
- PROTOCOL_SSLv23 = 2
- PROTOCOL_TLSv1 = 3
+ _PROTOCOL_SSLv23 = 2
CERT_NONE = 0
CERT_OPTIONAL = 1
@@ -116,7 +109,7 @@
def wrap_socket(sock, keyfile=None, certfile=None,
server_side=False, cert_reqs=CERT_NONE,
- ssl_version=PROTOCOL_SSLv23, ca_certs=None,
+ ssl_version=_PROTOCOL_SSLv23, ca_certs=None,
do_handshake_on_connect=True,
suppress_ragged_eofs=True):
if cert_reqs != CERT_NONE and ca_certs:
--- a/mercurial/httpclient/tests/util.py Sun Jul 31 22:12:13 2011 +0200
+++ b/mercurial/httpclient/tests/util.py Mon Aug 01 10:54:34 2011 -0500
@@ -133,7 +133,7 @@
def mocksslwrap(sock, keyfile=None, certfile=None,
server_side=False, cert_reqs=http.socketutil.CERT_NONE,
- ssl_version=http.socketutil.PROTOCOL_SSLv23, ca_certs=None,
+ ssl_version=None, ca_certs=None,
do_handshake_on_connect=True,
suppress_ragged_eofs=True):
return MockSSLSocket(sock)
--- a/mercurial/httprepo.py Sun Jul 31 22:12:13 2011 +0200
+++ b/mercurial/httprepo.py Mon Aug 01 10:54:34 2011 -0500
@@ -77,6 +77,7 @@
if data and self.ui.configbool('ui', 'usehttp2', False):
headers['Expect'] = '100-Continue'
+ headers['X-HgHttp2'] = '1'
self.ui.debug("sending %s command\n" % cmd)
q = [('cmd', cmd)]
--- a/mercurial/subrepo.py Sun Jul 31 22:12:13 2011 +0200
+++ b/mercurial/subrepo.py Mon Aug 01 10:54:34 2011 -0500
@@ -606,7 +606,7 @@
if item == 'external':
externals.append(path)
if (item not in ('', 'normal', 'unversioned', 'external')
- or props not in ('', 'none')):
+ or props not in ('', 'none', 'normal')):
changes.append(path)
for path in changes:
for ext in externals:
--- a/mercurial/util.py Sun Jul 31 22:12:13 2011 +0200
+++ b/mercurial/util.py Mon Aug 01 10:54:34 2011 -0500
@@ -1500,8 +1500,9 @@
self.path = path
+ # leave the query string escaped
for a in ('user', 'passwd', 'host', 'port',
- 'path', 'query', 'fragment'):
+ 'path', 'fragment'):
v = getattr(self, a)
if v is not None:
setattr(self, a, _urlunquote(v))
@@ -1522,6 +1523,10 @@
>>> str(url('http://user:pw@host:80/?foo#bar'))
'http://user:pw@host:80/?foo#bar'
+ >>> str(url('http://user:pw@host:80/?foo=bar&baz=42'))
+ 'http://user:pw@host:80/?foo=bar&baz=42'
+ >>> str(url('http://user:pw@host:80/?foo=bar%3dbaz'))
+ 'http://user:pw@host:80/?foo=bar%3dbaz'
>>> str(url('ssh://user:pw@[::1]:2200//home/joe#'))
'ssh://user:pw@[::1]:2200//home/joe#'
>>> str(url('http://localhost:80//'))
@@ -1570,9 +1575,13 @@
if self.host:
s += '/'
if self.path:
+ # TODO: similar to the query string, we should not unescape the
+ # path when we store it, the path might contain '%2f' = '/',
+ # which we should *not* escape.
s += urllib.quote(self.path, safe=self._safepchars)
if self.query:
- s += '?' + urllib.quote(self.query, safe=self._safepchars)
+ # we store the query in escaped form.
+ s += '?' + self.query
if self.fragment is not None:
s += '#' + urllib.quote(self.fragment, safe=self._safepchars)
return s
--- a/tests/test-hgrc.t Sun Jul 31 22:12:13 2011 +0200
+++ b/tests/test-hgrc.t Mon Aug 01 10:54:34 2011 -0500
@@ -54,12 +54,20 @@
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ unset FAKEPATH
-make sure unspecified global ui options don't override old values
+make sure global options given on the cmdline take precedence
$ hg showconfig --config ui.verbose=True --quiet
- ui.verbose=True
+ ui.verbose=False
+ ui.debug=False
ui.quiet=True
+ $ touch foobar/untracked
+ $ cat >> foobar/.hg/hgrc <<EOF
+ > [ui]
+ > verbose=True
+ > EOF
+ $ hg -R foobar st -q
+
username expansion
$ olduser=$HGUSER
@@ -140,7 +148,9 @@
$ hg showconfig --config ui.traceback=True --debug
read config from: $TESTTMP/hgrc
none: ui.traceback=True
+ none: ui.verbose=False
none: ui.debug=True
+ none: ui.quiet=False
plain mode with exceptions
@@ -156,18 +166,24 @@
read config from: $TESTTMP/hgrc
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
+ none: ui.verbose=False
none: ui.debug=True
+ none: ui.quiet=False
$ unset HGPLAIN
$ hg showconfig --config ui.traceback=True --debug
plain: True
read config from: $TESTTMP/hgrc
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
+ none: ui.verbose=False
none: ui.debug=True
+ none: ui.quiet=False
$ HGPLAINEXCEPT=i18n; export HGPLAINEXCEPT
$ hg showconfig --config ui.traceback=True --debug
plain: True
read config from: $TESTTMP/hgrc
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
+ none: ui.verbose=False
none: ui.debug=True
+ none: ui.quiet=False