merge with stable
authorMartin Geisler <mg@aragost.com>
Wed, 02 Mar 2011 13:24:48 +0100
changeset 13518 c39e9cead0ae
parent 13426 643b8212813e (current diff)
parent 13517 da192c62f89e (diff)
child 13519 43b3b761d9d1
merge with stable
--- a/.hgsigs	Wed Feb 16 15:02:30 2011 +0100
+++ b/.hgsigs	Wed Mar 02 13:24:48 2011 +0100
@@ -34,3 +34,4 @@
 e3bf16703e2601de99e563cdb3a5d50b64e6d320 0 iD8DBQBNH8WqywK+sNU5EO8RAiQTAJ9sBO+TeiGro4si77VVaQaA6jcRUgCfSA28dBbjj0oFoQwvPoZjANiZBH8=
 a6c855c32ea081da3c3b8ff628f1847ff271482f 0 iD8DBQBNSJJ+ywK+sNU5EO8RAoJaAKCweDEF70fu+r1Zn7pYDXdlk5RuSgCeO9gK/eit8Lin/1n3pO7aYguFLok=
 2b2155623ee2559caf288fd333f30475966c4525 0 iD8DBQBNSJeBywK+sNU5EO8RAm1KAJ4hW9Cm9nHaaGJguchBaPLlAr+O3wCgqgmMok8bdAS06N6PL60PSTM//Gg=
+2616325766e3504c8ae7c84bd15ee610901fe91d 0 iD8DBQBNbWy9ywK+sNU5EO8RAlWCAJ4mW8HbzjJj9GpK98muX7k+7EvEHwCfaTLbC/DH3QEsZBhEP+M8tzL6RU4=
--- a/.hgtags	Wed Feb 16 15:02:30 2011 +0100
+++ b/.hgtags	Wed Mar 02 13:24:48 2011 +0100
@@ -46,3 +46,4 @@
 e3bf16703e2601de99e563cdb3a5d50b64e6d320 1.7.3
 a6c855c32ea081da3c3b8ff628f1847ff271482f 1.7.4
 2b2155623ee2559caf288fd333f30475966c4525 1.7.5
+2616325766e3504c8ae7c84bd15ee610901fe91d 1.8
--- a/contrib/bash_completion	Wed Feb 16 15:02:30 2011 +0100
+++ b/contrib/bash_completion	Wed Mar 02 13:24:48 2011 +0100
@@ -101,6 +101,20 @@
     COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$branches' -- "$cur"))
 }
 
+_hg_bookmarks()
+{
+    local bookmarks="$(_hg_cmd bookmarks -q)"
+    local IFS=$'\n'
+    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$bookmarks' -- "$cur"))
+}
+
+_hg_labels()
+{
+    _hg_tags
+    _hg_branches
+    _hg_bookmarks
+}
+
 # this is "kind of" ugly...
 _hg_count_non_option()
 {
@@ -200,12 +214,10 @@
 
     if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" == --rev ]; then
 	if [ $canonical = 1 ]; then
-	    _hg_tags
-	    _hg_branches
+	    _hg_labels
 	    return 0
 	elif [[ status != "$cmd"* ]]; then
-	    _hg_tags
-	    _hg_branches
+            _hg_labels
 	    return 0
 	else
 	    return 1
@@ -220,12 +232,10 @@
 	    if _hg_ext_mq_patchlist qapplied && [ "${COMPREPLY[*]}" ]; then
 		return 0
 	    fi
-	    _hg_tags
-	    _hg_branches
+	    _hg_labels
 	;;
 	manifest|update)
-	    _hg_tags
-	    _hg_branches
+	    _hg_labels
 	;;
 	pull|push|outgoing|incoming)
 	    _hg_paths
@@ -238,8 +248,7 @@
 	    _hg_status "u"
 	;;
 	merge)
-	    _hg_tags
-	    _hg_branches
+	    _hg_labels
 	;;
 	commit|record)
 	    _hg_status "mar"
@@ -378,8 +387,7 @@
 
 _hg_cmd_strip()
 {
-    _hg_tags
-    _hg_branches
+    _hg_labels
 }
 
 _hg_cmd_qcommit()
@@ -497,8 +505,7 @@
 
     case "$subcmd" in
 	good|bad)
-	    _hg_tags
-	    _hg_branches
+	    _hg_labels
 	    ;;
     esac
 
@@ -534,8 +541,7 @@
 	    ;;
     esac
 
-    _hg_tags
-    _hg_branches
+    _hg_labels
     return
 }
 
@@ -543,8 +549,7 @@
 # gpg
 _hg_cmd_sign()
 {
-    _hg_tags
-    _hg_branches
+    _hg_labels
 }
 
 
@@ -564,8 +569,7 @@
     esac
 
     # all other transplant options values and command parameters are revisions
-    _hg_tags
-    _hg_branches
+    _hg_labels
     return
 }
 
--- a/contrib/hgk	Wed Feb 16 15:02:30 2011 +0100
+++ b/contrib/hgk	Wed Mar 02 13:24:48 2011 +0100
@@ -276,6 +276,7 @@
     set comdate {}
     set rev {}
     set branch {}
+    set bookmark {}
     if {![info exists nchildren($id)]} {
 	set children($id) {}
 	set nchildren($id) 0
@@ -314,7 +315,9 @@
 		    set rev [lindex $line 1]
         } elseif {$tag == "branch"} {
 		    set branch [join [lrange $line 1 end]]
-		}
+        } elseif {$tag == "bookmark"} {
+		    set bookmark [join [lrange $line 1 end]]
+        }
 	    }
 	} else {
 	    if {$comment == {}} {
@@ -338,7 +341,7 @@
 	set comdate [clock format $comdate -format "%Y-%m-%d %H:%M:%S"]
     }
     set commitinfo($id) [list $headline $auname $audate \
-			     $comname $comdate $comment $rev $branch]
+			     $comname $comdate $comment $rev $branch $bookmark]
 
     if {[info exists firstparents]} {
         set i [lsearch $firstparents $id]
@@ -369,7 +372,7 @@
 }
 
 proc readrefs {} {
-    global tagids idtags headids idheads tagcontents env curid
+    global bookmarkcurrent bookmarkids tagids idtags idbookmarks headids idheads tagcontents env curid
 
     set status [catch {exec $env(HG) --config ui.report_untrusted=false id} curid]
     if { $status != 0 } {
@@ -417,6 +420,28 @@
         }
     }
 
+    set status [catch {exec $env(HG) --config ui.report_untrusted=false bookmarks} bookmarks]
+    if { $status != 0 } {
+        puts $::errorInfo
+        if { ![string equal $::errorCode NONE] } {
+            exit 2
+        }
+    }
+    set lines [split $bookmarks "\n"]
+    set bookmarkcurrent 0
+    foreach f $lines {
+	regexp {(\S+)$} $f full
+	regsub {\s+(\S+)$} $f "" direct
+	set sha [split $full ':']
+	set bookmark [lindex $sha 1]
+	set current [string first " * " $direct)]
+	regsub {^\s(\*|\s)\s} $direct "" direct
+	lappend bookmarkids($direct) $bookmark
+	lappend idbookmarks($bookmark) $direct
+	if {$current >= 0} {
+		set bookmarkcurrent $direct
+	}
+    }
 }
 
 proc readotherrefs {base dname excl} {
@@ -1042,7 +1067,7 @@
     global canv canv2 canv3 mainfont namefont canvy linespc
     global lineid linehtag linentag linedtag commitinfo
     global colormap numcommits currentparents dupparents
-    global idtags idline idheads idotherrefs
+    global idtags idline idheads idotherrefs idbookmarks
     global lineno lthickness mainline mainlinearrow sidelines
     global commitlisted rowtextx idpos lastuse displist
     global oldnlines olddlevel olddisplist
@@ -1100,7 +1125,7 @@
     set rowtextx($lineno) $xt
     set idpos($id) [list $x $xt $y1]
     if {[info exists idtags($id)] || [info exists idheads($id)]
-	|| [info exists idotherrefs($id)]} {
+	|| [info exists idotherrefs($id)] || [info exists idbookmarks($id)]} {
 	set xt [drawtags $id $x $xt $y1]
     }
     set headline [lindex $commitinfo($id) 0]
@@ -1131,17 +1156,22 @@
 }
 
 proc drawtags {id x xt y1} {
-    global idtags idheads idotherrefs commitinfo
+    global bookmarkcurrent idtags idbookmarks idheads idotherrefs commitinfo
     global linespc lthickness
     global canv mainfont idline rowtextx
 
     set marks {}
+    set nbookmarks 0
     set ntags 0
     set nheads 0
     if {[info exists idtags($id)]} {
 	set marks $idtags($id)
 	set ntags [llength $marks]
     }
+    if {[info exists idbookmarks($id)]} {
+	set marks [concat $marks $idbookmarks($id)]
+	set nbookmarks [llength $idbookmarks($id)]
+    }
     if {[info exists idheads($id)]} {
 	set headmark [lindex $commitinfo($id) 7]
 	if {$headmark ne "default"} {
@@ -1149,9 +1179,6 @@
 	    set nheads 1
 	}
     }
-    if {[info exists idotherrefs($id)]} {
-	set marks [concat $marks $idotherrefs($id)]
-    }
     if {$marks eq {}} {
 	return $xt
     }
@@ -1180,16 +1207,25 @@
 		       -width 1 -outline black -fill yellow -tags tag.$id]
 	    $canv bind $t <1> [list showtag $tag 1]
 	    set rowtextx($idline($id)) [expr {$xr + $linespc}]
-	} else {
-	    # draw a head or other ref
-	    if {[incr nheads -1] >= 0} {
-		set col green
-	    } else {
-		set col "#ddddff"
-	    }
-	    set xl [expr $xl - $delta/2]
-	    $canv create polygon $x $yt $xr $yt $xr $yb $x $yb \
-		-width 1 -outline black -fill $col -tags tag.$id
+	} elseif {[incr nbookmarks -1] >= 0} {
+            # draw a tag
+            set col gray50
+            if {[string compare $bookmarkcurrent $tag] == 0} {
+                set col gray
+            }
+            set xl [expr $xl - $delta/2]
+            $canv create polygon $x $yt $xr $yt $xr $yb $x $yb \
+                -width 1 -outline black -fill $col -tags tag.$id
+        } else {
+            # draw a head or other ref
+            if {[incr nheads -1] >= 0} {
+                set col green
+            } else {
+                set col "#ddddff"
+            }
+            set xl [expr $xl - $delta/2]
+            $canv create polygon $x $yt $xr $yt $xr $yb $x $yb \
+                -width 1 -outline black -fill $col -tags tag.$id
 	}
 	set t [$canv create text $xl $y1 -anchor w -text $tag \
 		   -font $mainfont -tags tag.$id]
@@ -2319,7 +2355,7 @@
     global lineid linehtag linentag linedtag
     global canvy0 linespc parents nparents children
     global cflist currentid sha1entry
-    global commentend idtags idline linknum
+    global commentend idtags idbookmarks idline linknum
 
     $canv delete hover
     normalline
@@ -2396,6 +2432,14 @@
     }
     $ctext insert end "Author: [lindex $info 1]  [lindex $info 2]\n"
     $ctext insert end "Committer: [lindex $info 3]  [lindex $info 4]\n"
+    if {[info exists idbookmarks($id)]} {
+	$ctext insert end "Bookmarks:"
+	foreach bookmark $idbookmarks($id) {
+	    $ctext insert end " $bookmark"
+	}
+	$ctext insert end "\n"
+    }
+
     if {[info exists idtags($id)]} {
 	$ctext insert end "Tags:"
 	foreach tag $idtags($id) {
@@ -3840,8 +3884,12 @@
 }
 
 proc listrefs {id} {
-    global idtags idheads idotherrefs
-
+    global idtags idheads idotherrefs idbookmarks
+
+    set w {}
+    if {[info exists idbookmarks($id)]} {
+	set w $idbookmarks($id)
+    }
     set x {}
     if {[info exists idtags($id)]} {
 	set x $idtags($id)
@@ -3854,26 +3902,29 @@
     if {[info exists idotherrefs($id)]} {
 	set z $idotherrefs($id)
     }
-    return [list $x $y $z]
+    return [list $w $x $y $z]
 }
 
 proc rereadrefs {} {
-    global idtags idheads idotherrefs
-    global tagids headids otherrefids
+    global idbookmarks idtags idheads idotherrefs
+    global bookmarkids tagids headids otherrefids
 
     set refids [concat [array names idtags] \
-		    [array names idheads] [array names idotherrefs]]
+		    [array names idheads] [array names idotherrefs] \
+		    [array names idbookmarks]]
     foreach id $refids {
 	if {![info exists ref($id)]} {
 	    set ref($id) [listrefs $id]
 	}
     }
-    foreach v {tagids idtags headids idheads otherrefids idotherrefs} {
+    foreach v {tagids idtags headids idheads otherrefids idotherrefs \
+        bookmarkids idbookmarks} {
 	catch {unset $v}
     }
     readrefs
     set refids [lsort -unique [concat $refids [array names idtags] \
-			[array names idheads] [array names idotherrefs]]]
+			[array names idheads] [array names idotherrefs] \
+			[array names idbookmarks]]]
     foreach id $refids {
 	set v [listrefs $id]
 	if {![info exists ref($id)] || $ref($id) != $v} {
--- a/contrib/tcsh_completion	Wed Feb 16 15:02:30 2011 +0100
+++ b/contrib/tcsh_completion	Wed Mar 02 13:24:48 2011 +0100
@@ -2,7 +2,7 @@
 # tcsh completion for Mercurial
 #
 # This file has been auto-generated by tcsh_completion_build.sh for
-# Mercurial Distributed SCM (version 1.5.4+154-8b452fe4bf50)
+# Mercurial Distributed SCM (version 1.7.5+157-8a220ae0b2ba)
 #
 # Copyright (C) 2005 TK Soh.
 #
@@ -30,21 +30,21 @@
     --version \
     -h --help)/' \
   'p/1/(add addremove annotate blame archive \
-    backout bisect branch branches bundle \
-    cat clone commit ci copy \
-    cp debugancestor debugbuilddag debugcheckstate debugcommands \
-    debugcomplete debugdag debugdata debugdate debugfsinfo \
-    debugindex debugindexdot debuginstall debugpushkey debugrebuildstate \
-    debugrename debugrevspec debugsetparents debugstate debugsub \
-    debugwalk diff export forget grep \
-    heads help identify id import \
-    patch incoming in init locate \
-    log history manifest merge outgoing \
-    out parents paths pull push \
-    recover remove rm rename mv \
-    resolve revert rollback root serve \
-    showconfig debugconfig status st summary \
-    sum tag tags tip unbundle \
-    update up checkout co verify \
-    version)/'
+    backout bisect bookmarks branch branches \
+    bundle cat clone commit ci \
+    copy cp debugancestor debugbuilddag debugcheckstate \
+    debugcommands debugcomplete debugdag debugdata debugdate \
+    debugfsinfo debugignore debugindex debugindexdot debuginstall \
+    debugpushkey debugrebuildstate debugrename debugrevspec debugsetparents \
+    debugstate debugsub debugwalk diff export \
+    forget grep heads help identify \
+    id import patch incoming in \
+    init locate log history manifest \
+    merge outgoing out parents paths \
+    pull push recover remove rm \
+    rename move mv resolve revert \
+    rollback root serve showconfig debugconfig \
+    status st summary sum tag \
+    tags tip unbundle update up \
+    checkout co verify version)/'
 
--- a/contrib/tcsh_completion_build.sh	Wed Feb 16 15:02:30 2011 +0100
+++ b/contrib/tcsh_completion_build.sh	Wed Mar 02 13:24:48 2011 +0100
@@ -38,6 +38,7 @@
 hg_commands=`hg --debug help | \
         sed -e '1,/^list of commands:/d' \
             -e '/^enabled extensions:/,$d' \
+            -e '/^additional help topics:/,$d' \
             -e '/^ [^ ]/!d; s/[,:]//g;' | \
         xargs -n5 | \
         sed -e '$!s/$/ \\\\/g; 2,$s/^ */    /g'`
--- a/contrib/zsh_completion	Wed Feb 16 15:02:30 2011 +0100
+++ b/contrib/zsh_completion	Wed Mar 02 13:24:48 2011 +0100
@@ -159,7 +159,12 @@
 
 _hg_revrange() {
   compset -P 1 '*:'
+  _hg_labels "$@"
+}
+
+_hg_labels() {
   _hg_tags "$@"
+  _hg_bookmarks "$@"
 }
 
 _hg_tags() {
@@ -173,6 +178,19 @@
   (( $#tags )) && _describe -t tags 'tags' tags
 }
 
+_hg_bookmarks() {
+  typeset -a bookmark bookmarks
+
+  _hg_cmd bookmarks | while read -A bookmark
+  do
+    if test -z ${bookmark[-1]:#[0-9]*}
+    then
+      bookmarks+=($bookmark[-2])
+    fi
+  done
+  (( $#bookmarks )) && _describe -t bookmarks 'bookmarks' bookmarks
+}
+
 # likely merge candidates
 _hg_mergerevs() {
   typeset -a heads
@@ -393,7 +411,7 @@
 
 _hg_cmd_annotate() {
   _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-  '(--rev -r)'{-r+,--rev}'[annotate the specified revision]:revision:_hg_tags' \
+  '(--rev -r)'{-r+,--rev}'[annotate the specified revision]:revision:_hg_labels' \
   '(--follow -f)'{-f,--follow}'[follow file copies and renames]' \
   '(--text -a)'{-a,--text}'[treat all files as text]' \
   '(--user -u)'{-u,--user}'[list the author]' \
@@ -407,7 +425,7 @@
   _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
   '--no-decode[do not pass files through decoders]' \
   '(--prefix -p)'{-p+,--prefix}'[directory prefix for files in archive]:' \
-  '(--rev -r)'{-r+,--rev}'[revision to distribute]:revision:_hg_tags' \
+  '(--rev -r)'{-r+,--rev}'[revision to distribute]:revision:_hg_labels' \
   '(--type -t)'{-t+,--type}'[type of distribution to create]:archive type:(files tar tbz2 tgz uzip zip)' \
   '*:destination:_files'
 }
@@ -418,7 +436,7 @@
     '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
     '--parent[parent to choose when backing out merge]' \
     '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
-    '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \
+    '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_labels' \
     '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \
     '(--logfile -l)'{-l+,--logfile}'[read commit message from <file>]:log file:_files -g \*.txt'
 }
@@ -426,13 +444,22 @@
 _hg_cmd_bisect() {
   _arguments -s -w : $_hg_global_opts \
   '(-)'{-r,--reset}'[reset bisect state]' \
-  '(--good -g --bad -b --skip -s --reset -r)'{-g,--good}'[mark changeset good]'::revision:_hg_tags \
-  '(--good -g --bad -b --skip -s --reset -r)'{-b,--bad}'[mark changeset bad]'::revision:_hg_tags \
+  '(--good -g --bad -b --skip -s --reset -r)'{-g,--good}'[mark changeset good]'::revision:_hg_labels \
+  '(--good -g --bad -b --skip -s --reset -r)'{-b,--bad}'[mark changeset bad]'::revision:_hg_labels \
   '(--good -g --bad -b --skip -s --reset -r)'{-s,--skip}'[skip testing changeset]' \
   '(--command -c --noupdate -U)'{-c+,--command}'[use command to check changeset state]':commands:_command_names \
   '(--command -c --noupdate -U)'{-U,--noupdate}'[do not update to target]'
 }
 
+_hg_cmd_bookmarks() {
+  _arguments -s -w : $_hg_global_opts \
+  '(--force -f)'{-f,--force}'[force]' \
+  '(--rev -r --delete -d --rename -m)'{-r+,--rev}'[revision]:revision:_hg_labels' \
+  '(--rev -r --delete -d --rename -m)'{-d,--delete}'[delete a given bookmark]' \
+  '(--rev -r --delete -d --rename -m)'{-m+,--rename}'[rename a given bookmark]:bookmark:_hg_bookmarks' \
+  ':bookmark:_hg_bookmarks'
+}
+
 _hg_cmd_branch() {
   _arguments -s -w : $_hg_global_opts \
   '(--force -f)'{-f,--force}'[set branch name even if it shadows an existing branch]' \
@@ -447,7 +474,7 @@
 _hg_cmd_bundle() {
   _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
   '(--force -f)'{-f,--force}'[run even when remote repository is unrelated]' \
-  '(2)*--base[a base changeset to specify instead of a destination]:revision:_hg_tags' \
+  '(2)*--base[a base changeset to specify instead of a destination]:revision:_hg_labels' \
   ':output file:_files' \
   ':destination repository:_files -/'
 }
@@ -455,7 +482,7 @@
 _hg_cmd_cat() {
   _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
   '(--output -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \
-  '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \
+  '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_labels' \
   '*:file:_hg_files'
 }
 
@@ -510,7 +537,7 @@
   _arguments -s -w : $_hg_global_opts $_hg_diff_opts \
   '(--outout -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \
   '--switch-parent[diff against the second parent]' \
-  '*:revision:_hg_tags'
+  '*:revision:_hg_labels'
 }
 
 _hg_cmd_grep() {
@@ -529,7 +556,7 @@
 
 _hg_cmd_heads() {
   _arguments -s -w : $_hg_global_opts $_hg_style_opts \
-  '(--rev -r)'{-r+,--rev}'[show only heads which are descendants of rev]:revision:_hg_tags'
+  '(--rev -r)'{-r+,--rev}'[show only heads which are descendants of rev]:revision:_hg_labels'
 }
 
 _hg_cmd_help() {
@@ -539,7 +566,7 @@
 
 _hg_cmd_identify() {
   _arguments -s -w : $_hg_global_opts \
-  '(--rev -r)'{-r+,--rev}'[identify the specified rev]:revision:_hg_tags' \
+  '(--rev -r)'{-r+,--rev}'[identify the specified rev]:revision:_hg_labels' \
   '(--num -n)'{-n+,--num}'[show local revision number]' \
   '(--id -i)'{-i+,--id}'[show global revision id]' \
   '(--branch -b)'{-b+,--branch}'[show branch]' \
@@ -572,7 +599,7 @@
 
 _hg_cmd_locate() {
   _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-  '(--rev -r)'{-r+,--rev}'[search repository as it stood at revision]:revision:_hg_tags' \
+  '(--rev -r)'{-r+,--rev}'[search repository as it stood at revision]:revision:_hg_labels' \
   '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \
   '(--fullpath -f)'{-f,--fullpath}'[print complete paths]' \
   '*:search pattern:_hg_files'
@@ -589,13 +616,13 @@
   '(--no-merges -M)'{-M,--no-merges}'[do not show merges]' \
   '(--only-merges -m)'{-m,--only-merges}'[show only merges]' \
   '(--patch -p)'{-p,--patch}'[show patch]' \
-  '(--prune -P)'{-P+,--prune}'[do not display revision or any of its ancestors]:revision:_hg_tags' \
+  '(--prune -P)'{-P+,--prune}'[do not display revision or any of its ancestors]:revision:_hg_labels' \
   '*:files:_hg_files'
 }
 
 _hg_cmd_manifest() {
   _arguments -s -w : $_hg_global_opts \
-  ':revision:_hg_tags'
+  ':revision:_hg_labels'
 }
 
 _hg_cmd_merge() {
@@ -618,7 +645,7 @@
 
 _hg_cmd_parents() {
   _arguments -s -w : $_hg_global_opts $_hg_style_opts \
-  '(--rev -r)'{-r+,--rev}'[show parents of the specified rev]:revision:_hg_tags' \
+  '(--rev -r)'{-r+,--rev}'[show parents of the specified rev]:revision:_hg_labels' \
   ':last modified file:_hg_files'
 }
 
@@ -638,7 +665,7 @@
 _hg_cmd_push() {
   _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
   '(--force -f)'{-f,--force}'[force push]' \
-  '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]:revision:_hg_tags' \
+  '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]:revision:_hg_labels' \
   ':destination:_hg_remote'
 }
 
@@ -679,7 +706,7 @@
 
   _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
   '(--all -a :)'{-a,--all}'[revert all changes when no arguments given]' \
-  '(--rev -r)'{-r+,--rev}'[revision to revert to]:revision:_hg_tags' \
+  '(--rev -r)'{-r+,--rev}'[revision to revert to]:revision:_hg_labels' \
   '--no-backup[do not save backup copies of files]' \
   '*:file:->diff_files'
 
@@ -729,7 +756,7 @@
   '(--no-status -n)'{-n,--no-status}'[hide status prefix]' \
   '(--copies -C)'{-C,--copies}'[show source of copied files]' \
   '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \
-  '--rev[show difference from revision]:revision:_hg_tags' \
+  '--rev[show difference from revision]:revision:_hg_labels' \
   '*:files:_files'
 }
 
@@ -744,7 +771,7 @@
   '(--message -m)'{-m+,--message}'[message for tag commit log entry]:message:' \
   '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
   '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
-  '(--rev -r)'{-r+,--rev}'[revision to tag]:revision:_hg_tags' \
+  '(--rev -r)'{-r+,--rev}'[revision to tag]:revision:_hg_labels' \
   ':tag name:'
 }
 
@@ -762,35 +789,12 @@
 _hg_cmd_update() {
   _arguments -s -w : $_hg_global_opts \
   '(--clean -C)'{-C,--clean}'[overwrite locally modified files]' \
-  '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \
-  ':revision:_hg_tags'
+  '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_labels' \
+  ':revision:_hg_labels'
 }
 
 ## extensions ##
 
-# bookmarks
-_hg_bookmarks() {
-  typeset -a bookmark bookmarks
-
-  _hg_cmd bookmarks | while read -A bookmark
-  do
-    if test -z ${bookmark[-1]:#[0-9]*}
-    then
-      bookmarks+=($bookmark[-2])
-    fi
-  done
-  (( $#bookmarks )) && _describe -t bookmarks 'bookmarks' bookmarks
-}
-
-_hg_cmd_bookmarks() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--force -f)'{-f,--force}'[force]' \
-  '(--rev -r --delete -d --rename -m)'{-r+,--rev}'[revision]:revision:_hg_tags' \
-  '(--rev -r --delete -d --rename -m)'{-d,--delete}'[delete a given bookmark]' \
-  '(--rev -r --delete -d --rename -m)'{-m+,--rename}'[rename a given bookmark]:bookmark:_hg_bookmarks' \
-  ':bookmark:_hg_bookmarks'
-}
-
 # HGK
 _hg_cmd_view() {
   _arguments -s -w : $_hg_global_opts \
@@ -970,7 +974,7 @@
   '(--force -f)'{-f,--force}'[force multi-head removal]' \
   '(--backup -b)'{-b,--backup}'[bundle unrelated changesets]' \
   '(--nobackup -n)'{-n,--nobackup}'[no backups]' \
-  ':revision:_hg_tags'
+  ':revision:_hg_labels'
 }
 
 # Patchbomb
@@ -983,7 +987,7 @@
   '--bundlename[name of the bundle attachment file (default: bundle)]:' \
   '*'{-r+,--rev}'[search in given revision range]:revision:_hg_revrange' \
   '--force[run even when remote repository is unrelated (with -b/--bundle)]' \
-  '*--base[a base changeset to specify instead of a destination (with -b/--bundle)]:revision:_hg_tags' \
+  '*--base[a base changeset to specify instead of a destination (with -b/--bundle)]:revision:_hg_labels' \
   '--intro[send an introduction email for a single patch]' \
   '(--inline -i --attach -a)'{-a,--attach}'[send patches as attachments]' \
   '(--attach -a --inline -i)'{-i,--inline}'[send patches as inline attachments]' \
--- a/hgext/convert/__init__.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/hgext/convert/__init__.py	Wed Mar 02 13:24:48 2011 +0100
@@ -145,7 +145,7 @@
         Use it to fix Mercurial repositories with missing revlogs, by
         converting from and to Mercurial. Default is False.
 
-    :convert.hg.saverev: store original. revision ID in changeset
+    :convert.hg.saverev: store original revision ID in changeset
         (forces target IDs to change). It takes and boolean argument
         and defaults to False.
 
@@ -221,13 +221,13 @@
     The following options can be set with ``--config``:
 
     :convert.svn.branches: specify the directory containing branches.
-        The defaults is ``branches``.
+        The default is ``branches``.
 
     :convert.svn.tags: specify the directory containing tags. The
         default is ``tags``.
 
-    :convert.svn.trunk: specify the name of the trunk branch The
-        defauls is ``trunk``.
+    :convert.svn.trunk: specify the name of the trunk branch. The
+        default is ``trunk``.
 
     Source history can be retrieved starting at a specific revision,
     instead of being integrally converted. Only single branch
@@ -249,7 +249,7 @@
     It is possible to limit the amount of source history to be
     converted by specifying an initial Perforce revision:
 
-    :convert.p4.startrev: specify initial Perforce revision, a
+    :convert.p4.startrev: specify initial Perforce revision (a
         Perforce changelist number).
 
     Mercurial Destination
@@ -264,7 +264,7 @@
         ``default``.
 
     :convert.hg.usebranchnames: preserve branch names. The default is
-        True
+        True.
     """
     return convcmd.convert(ui, src, dest, revmapfile, **opts)
 
--- a/hgext/convert/convcmd.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/hgext/convert/convcmd.py	Wed Mar 02 13:24:48 2011 +0100
@@ -70,6 +70,8 @@
                 return sink(ui, path)
         except NoRepo, inst:
             ui.note(_("convert: %s\n") % inst)
+        except MissingTool, inst:
+            raise util.Abort(_('%s\n') % inst)
     raise util.Abort(_('%s: unknown repository type') % path)
 
 class progresssource(object):
--- a/hgext/convert/subversion.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/hgext/convert/subversion.py	Wed Mar 02 13:24:48 2011 +0100
@@ -36,7 +36,7 @@
             category=DeprecationWarning)
 
 except ImportError:
-    pass
+    svn = None
 
 class SvnPathNotFound(Exception):
     pass
@@ -209,11 +209,8 @@
                 issvnurl(ui, url)):
             raise NoRepo(_("%s does not look like a Subversion repository")
                          % url)
-
-        try:
-            SubversionException
-        except NameError:
-            raise MissingTool(_('Subversion python bindings could not be loaded'))
+        if svn is None:
+            raise MissingTool(_('Could not load Subversion python bindings'))
 
         try:
             version = svn.core.SVN_VER_MAJOR, svn.core.SVN_VER_MINOR
@@ -314,6 +311,9 @@
                 return None
             path = (cfgpath or name).strip('/')
             if not self.exists(path, rev):
+                if self.module.endswith(path) and name == 'trunk':
+                    # we are converting from inside this directory
+                    return None
                 if cfgpath:
                     raise util.Abort(_('expected %s to be at %r, but not found')
                                  % (name, path))
@@ -761,7 +761,8 @@
             author = author and self.recode(author) or ''
             try:
                 branch = self.module.split("/")[-1]
-                if branch == 'trunk':
+                trunkname = self.ui.config('convert', 'svn.trunk', 'trunk')
+                if branch == trunkname.strip('/'):
                     branch = ''
             except IndexError:
                 branch = None
@@ -960,6 +961,9 @@
         return self.join('hg-authormap')
 
     def __init__(self, ui, path):
+
+        if svn is None:
+            raise MissingTool(_('Could not load Subversion python bindings'))
         converter_sink.__init__(self, ui, path)
         commandline.__init__(self, ui, 'svn')
         self.delete = []
--- a/hgext/eol.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/hgext/eol.py	Wed Mar 02 13:24:48 2011 +0100
@@ -6,7 +6,7 @@
 Unix/Mac, thereby letting everybody use their OS native line endings.
 
 The extension reads its configuration from a versioned ``.hgeol``
-configuration file every time you run an ``hg`` command. The
+configuration file found in the root of the working copy. The
 ``.hgeol`` file use the same syntax as all other Mercurial
 configuration files. It uses two sections, ``[patterns]`` and
 ``[repository]``.
@@ -76,13 +76,15 @@
 have been unified into a single hook named ``eol.hook``. The hook will
 lookup the expected line endings from the ``.hgeol`` file, which means
 you must migrate to a ``.hgeol`` file first before using the hook.
+Remember to enable the eol extension in the repository where you
+install the hook.
 
 See :hg:`help patterns` for more information about the glob patterns
 used.
 """
 
 from mercurial.i18n import _
-from mercurial import util, config, extensions, match
+from mercurial import util, config, extensions, match, error
 import re, os
 
 # Matches a lone LF, i.e., one that is not part of CRLF.
@@ -144,11 +146,17 @@
                 elif target == "to-crlf" and singlelf.search(data):
                     raise util.Abort(_("%s should not have LF line endings")
                                      % f)
+                # Ignore other rules for this file
+                break
 
 
 def preupdate(ui, repo, hooktype, parent1, parent2):
     #print "preupdate for %s: %s -> %s" % (repo.root, parent1, parent2)
-    repo.readhgeol(parent1)
+    try:
+        repo.readhgeol(parent1)
+    except error.ParseError, inst:
+        ui.warn(_("warning: ignoring .hgeol file due to parse error "
+                  "at %s: %s\n") % (inst.args[1], inst.args[0]))
     return False
 
 def uisetup(ui):
@@ -229,7 +237,12 @@
             return match.match(self.root, '', [], include, exclude)
 
         def _hgcleardirstate(self):
-            self._eolfile = self.readhgeol() or self.readhgeol('tip')
+            try:
+                self._eolfile = self.readhgeol() or self.readhgeol('tip')
+            except error.ParseError, inst:
+                ui.warn(_("warning: ignoring .hgeol file due to parse error "
+                          "at %s: %s\n") % (inst.args[1], inst.args[0]))
+                self._eolfile = None
 
             if not self._eolfile:
                 self._eolfile = util.never
@@ -254,13 +267,16 @@
                     for f, e in self.dirstate._map.iteritems():
                         self.dirstate._map[f] = (e[0], e[1], -1, 0)
                     self.dirstate._dirty = True
-                    # Touch the cache to update mtime. TODO: are we sure this
-                    # always enought to update the mtime, or should we write a
-                    # bit to the file?
+                    # Touch the cache to update mtime.
                     self.opener("eol.cache", "w").close()
-                finally:
-                    if wlock is not None:
-                        wlock.release()
+                    wlock.release()
+                except error.LockUnavailable:
+                    # If we cannot lock the repository and clear the
+                    # dirstate, then a commit might not see all files
+                    # as modified. But if we cannot lock the
+                    # repository, then we can also not make a commit,
+                    # so ignore the error.
+                    pass
 
         def commitctx(self, ctx, error=False):
             for f in sorted(ctx.added() + ctx.modified()):
--- a/hgext/mq.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/hgext/mq.py	Wed Mar 02 13:24:48 2011 +0100
@@ -282,11 +282,17 @@
     @util.propertycache
     def applied(self):
         if os.path.exists(self.join(self.status_path)):
-            def parse(l):
-                n, name = l.split(':', 1)
-                return statusentry(bin(n), name)
+            def parselines(lines):
+                for l in lines:
+                    entry = l.split(':', 1)
+                    if len(entry) > 1:
+                        n, name = entry
+                        yield statusentry(bin(n), name)
+                    elif l.strip():
+                        self.ui.warn(_('malformated mq status line: %s\n') % entry)
+                    # else we ignore empty lines
             lines = self.opener(self.status_path).read().splitlines()
-            return [parse(l) for l in lines]
+            return list(parselines(lines))
         return []
 
     @util.propertycache
@@ -2951,7 +2957,9 @@
 
             mqtags = [(patch.node, patch.name) for patch in q.applied]
 
-            if mqtags[-1][0] not in self:
+            try:
+                r = self.changelog.rev(mqtags[-1][0])
+            except error.RepoLookupError:
                 self.ui.warn(_('mq status file refers to unknown node %s\n')
                              % short(mqtags[-1][0]))
                 return result
@@ -2976,12 +2984,13 @@
 
             cl = self.changelog
             qbasenode = q.applied[0].node
-            if qbasenode not in self:
+            try:
+                qbase = cl.rev(qbasenode)
+            except error.LookupError:
                 self.ui.warn(_('mq status file refers to unknown node %s\n')
                              % short(qbasenode))
                 return super(mqrepo, self)._branchtags(partial, lrev)
 
-            qbase = cl.rev(qbasenode)
             start = lrev + 1
             if start < qbase:
                 # update the cache (excluding the patches) and save it
--- a/i18n/da.po	Wed Feb 16 15:02:30 2011 +0100
+++ b/i18n/da.po	Wed Mar 02 13:24:48 2011 +0100
@@ -17,8 +17,8 @@
 msgstr ""
 "Project-Id-Version: Mercurial\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2011-01-04 12:03+0100\n"
-"PO-Revision-Date: 2011-01-04 12:15+0100\n"
+"POT-Creation-Date: 2011-02-23 15:32+0100\n"
+"PO-Revision-Date: 2011-02-24 12:04+0100\n"
 "Last-Translator: <mg@lazybytes.net>\n"
 "Language-Team: Danish\n"
 "Language: Danish\n"
@@ -45,8 +45,8 @@
 "Mercurial. Help for other extensions is available in the help system."
 msgstr ""
 
-msgid "options:"
-msgstr "tilvalg:"
+msgid "Options:"
+msgstr "Valgmuligheder:"
 
 #, python-format
 msgid "    aliases: %s"
@@ -289,202 +289,6 @@
 msgid "acl: access denied for changeset %s"
 msgstr "acl: adgang nægtet til ændring %s"
 
-msgid "track a line of development with movable markers"
-msgstr ""
-
-msgid ""
-"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, the\n"
-"bookmark shifts to the new changeset."
-msgstr ""
-"Bogmærker er lokale markeringer af ændringer. Ethvert bogmærke peger\n"
-"på en ændring som er identificeret ved dennes hashværdi. Hvis du\n"
-"deponerer en ændring som er baseret på en ændring med et bogmærke\n"
-"tilknyttet, så vil bogmærket bliver flyttet til den nye ændring."
-
-msgid ""
-"It is possible to use bookmark names in every revision lookup (e.g.\n"
-":hg:`merge`, :hg:`update`)."
-msgstr ""
-"Man kan bruge navne på bogmærker alle steder hvor en revision bliver\n"
-"brugt (e.g. :hg:`merge`, :hg:`update`)."
-
-msgid ""
-"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 configuration file::"
-msgstr ""
-"Når flere bogmærker peget på samme ændring, så vil de som udgangspunkt\n"
-"bliver flyttet fremad sammen. Man kan opnå en mere git-agtig opførsel\n"
-"ved at tilføje følgende til din konfigurationsfil::"
-
-msgid ""
-"  [bookmarks]\n"
-"  track.current = True"
-msgstr ""
-"  [bookmarks]\n"
-"  track.current = True"
-
-msgid ""
-"This will cause Mercurial to track the bookmark that you are currently\n"
-"using, and only update it. This is similar to git's approach to\n"
-"branching.\n"
-msgstr ""
-"Dette vil få Mercurial til at holde styr på hvilket bogmærke du bruger\n"
-"i øjeblikket og Mercurial vil så kun opdatere dette. Det minder om\n"
-"git's måde at lave grene på.\n"
-
-msgid ""
-"    Bookmarks are pointers to certain commits that move when\n"
-"    committing. Bookmarks are local. They can be renamed, copied and\n"
-"    deleted. It is possible to use bookmark names in :hg:`merge` and\n"
-"    :hg:`update` to merge and update respectively to a given bookmark."
-msgstr ""
-"    Bogmærker er pegepinde til bestemte ændringer og pegepindene\n"
-"    flytter sig når man deponerer nye ændringer. Bogmærkerne er\n"
-"    lokale. De kan omdøbes, kopieres og slettes. Det er muligt at\n"
-"    bruge navne på bogmærker i :hg:`merge` og :hg:`update` for\n"
-"    respektivt at sammenføje eller opdatere til det givne bogmærke."
-
-msgid ""
-"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
-"    directory's parent revision with the given name. If you specify\n"
-"    a revision using -r REV (where REV may be an existing bookmark),\n"
-"    the bookmark is assigned to that revision."
-msgstr ""
-"    Du kan bruge :hg:`bookmark NAVN` for at sætte et bogmærke på\n"
-"    arbejdskatalogets forælderrevision med det givne navn. Hvis du\n"
-"    specificerer en revision med -r REV (hvor REV kan være et\n"
-"    eksisterende bogmærke), så bliver bogmærket tildelt denne\n"
-"    revision."
-
-msgid ""
-"    Bookmarks can be pushed and pulled between repositories (see :hg:`help\n"
-"    push` and :hg:`help pull`). This requires the bookmark extension to be\n"
-"    enabled for both the local and remote repositories.\n"
-"    "
-msgstr ""
-"    Bogmærker kan bliver skubbet og hevet mellem depoter (se :hg:`help\n"
-"    push` og :hg:`help pull`). Dette kræver at bookmark-udviddelsen er\n"
-"    slået til i både lokal- og fjerndepotet.\n"
-"    "
-
-msgid "a bookmark of this name does not exist"
-msgstr "et bogmærke med dette navn findes ikke"
-
-msgid "a bookmark of the same name already exists"
-msgstr "et bogmærke med samme navn findes allerede"
-
-msgid "new bookmark name required"
-msgstr "nyt bogmærkenavn påkrævet"
-
-msgid "bookmark name required"
-msgstr "bogmærkenavn påkrævet"
-
-msgid "bookmark name cannot contain newlines"
-msgstr "bogmærkenavn kan ikke indeholde linieskift"
-
-msgid "bookmark names cannot consist entirely of whitespace"
-msgstr "bogmærkenavne kan ikke bestå udelukkende af tomrum"
-
-msgid "a bookmark cannot have the name of an existing branch"
-msgstr "et bogmærke kan ikke hedde det samme som en eksisterende gren"
-
-msgid "no bookmarks set\n"
-msgstr "der er ingen bogmærker\n"
-
-#, python-format
-msgid "updating bookmark %s\n"
-msgstr "opdaterer bogmærke %s\n"
-
-#, python-format
-msgid "not updating divergent bookmark %s\n"
-msgstr "opdaterer ikke divergerende bogmærke %s\n"
-
-#, python-format
-msgid "updating bookmark %s failed!\n"
-msgstr "opdatering af bogmærke %s fejlede!\n"
-
-#, python-format
-msgid "remote bookmark %s not found!"
-msgstr "fjern-bogmærke %s blev ikke fundet!"
-
-#, python-format
-msgid "importing bookmark %s\n"
-msgstr "importerer bogmærke %s\n"
-
-#, python-format
-msgid "exporting bookmark %s\n"
-msgstr "eksporterer bogmærke %s\n"
-
-#, python-format
-msgid "deleting remote bookmark %s\n"
-msgstr "sletter fjern-bogmærke %s\n"
-
-#, python-format
-msgid "bookmark %s does not exist on the local or remote repository!\n"
-msgstr "bogmærke %s eksisterer ikke i hverken lokal- eller fjerndepotet!\n"
-
-msgid "searching for changed bookmarks\n"
-msgstr "leder efter ændrede bogmærker\n"
-
-msgid "no changed bookmarks found\n"
-msgstr "fandt ingen ændrede bogmærker\n"
-
-#, python-format
-msgid "comparing with %s\n"
-msgstr "sammenligner med %s\n"
-
-msgid "bookmark to import"
-msgstr "bogmærke der skal importeres"
-
-msgid "BOOKMARK"
-msgstr "BOGMÆRKE"
-
-msgid "bookmark to export"
-msgstr "bogmærke der skal eksporteres"
-
-msgid "compare bookmark"
-msgstr "sammenlign bogmærke"
-
-msgid ""
-"``bookmark([name])``\n"
-"    The named bookmark or all bookmarks."
-msgstr ""
-"``bookmark([name])``\n"
-"    Det navngivne bogmærke eller alle bogmærker."
-
-#. i18n: "bookmark" is a keyword
-msgid "bookmark takes one or no arguments"
-msgstr "bookmark tager et eller to argumenter"
-
-#. i18n: "bookmark" is a keyword
-msgid "the argument to bookmark must be a string"
-msgstr "argumentet til bookmark skal være en streng"
-
-msgid "force"
-msgstr "gennemtving"
-
-msgid "REV"
-msgstr "REV"
-
-msgid "revision"
-msgstr "revision"
-
-msgid "delete a given bookmark"
-msgstr "slet et givent bogmærke"
-
-msgid "NAME"
-msgstr "NAVN"
-
-msgid "rename a given bookmark"
-msgstr "omdøb et givet bogmærke"
-
-msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
-msgstr "hg bookmarks [-f] [-d] [-m NAVN] [-r REV] [NAVN]"
-
 msgid "hooks for integrating with the Bugzilla bug tracker"
 msgstr ""
 
@@ -791,6 +595,9 @@
 "    --rev, hvis givet).\n"
 "    "
 
+msgid "REV"
+msgstr "REV"
+
 msgid "show children of the specified revision"
 msgstr "vis børn af den givne revision"
 
@@ -1030,6 +837,10 @@
 "  branches.current = green\n"
 "  branches.inactive = none"
 msgstr ""
+"  branches.active = none\n"
+"  branches.closed = black bold\n"
+"  branches.current = green\n"
+"  branches.inactive = none"
 
 msgid ""
 "The color extension will try to detect whether to use ANSI codes or\n"
@@ -1262,7 +1073,7 @@
 msgstr ""
 
 msgid ""
-"    :convert.hg.saverev: store original. revision ID in changeset\n"
+"    :convert.hg.saverev: store original revision ID in changeset\n"
 "        (forces target IDs to change). It takes and boolean argument\n"
 "        and defaults to False."
 msgstr ""
@@ -1410,7 +1221,7 @@
 msgstr ""
 
 msgid ""
-"    :convert.p4.startrev: specify initial Perforce revision, a\n"
+"    :convert.p4.startrev: specify initial Perforce revision (a\n"
 "        Perforce changelist number)."
 msgstr ""
 
@@ -1434,7 +1245,7 @@
 
 msgid ""
 "    :convert.hg.usebranchnames: preserve branch names. The default is\n"
-"        True\n"
+"        True.\n"
 "    "
 msgstr ""
 
@@ -1593,7 +1404,7 @@
 msgstr "revisioner"
 
 msgid "scanning"
-msgstr ""
+msgstr "skanner"
 
 #, python-format
 msgid "unknown sort mode: %s"
@@ -1692,7 +1503,7 @@
 msgstr "samler CVS rlog\n"
 
 msgid "not a CVS sandbox"
-msgstr ""
+msgstr "ikke en CVS sandkasse"
 
 #, python-format
 msgid "reading cvs log cache %s\n"
@@ -1764,10 +1575,10 @@
 
 #, python-format
 msgid "%s repository format is unsupported, please upgrade"
-msgstr ""
+msgstr "%s depotformatet er ikke supporteret, opgrader venligst"
 
 msgid "failed to detect repository format!"
-msgstr ""
+msgstr "kunne ikke detektere depotformatet!"
 
 msgid "internal calling inconsistency"
 msgstr "intern kaldeinkonsistens"
@@ -1777,7 +1588,7 @@
 
 #, python-format
 msgid "%s:%d: path to %s is missing\n"
-msgstr ""
+msgstr "%s:%d: stien til %s mangler\n"
 
 #, python-format
 msgid "%s:%d: %r already in %s list\n"
@@ -1785,7 +1596,7 @@
 
 #, python-format
 msgid "%s:%d: superfluous / in %s %r\n"
-msgstr ""
+msgstr "%s:%d: overflødig / i %s %r\n"
 
 #, python-format
 msgid "%s:%d: unknown directive %r\n"
@@ -1972,7 +1783,7 @@
 msgstr "kan ikke håndtere svn output"
 
 msgid "writing Subversion tags is not yet implemented\n"
-msgstr ""
+msgstr "skrivning af Subversion mærkater er endnu ikke implementeret\n"
 
 msgid "automatically manage newlines in repository files"
 msgstr "automatisk håndtering af linieskift i depotfiler"
@@ -2182,16 +1993,27 @@
 "  #cmd.cdiff = gdiff\n"
 "  #opts.cdiff = -Nprc5"
 msgstr ""
+"  [extdiff]\n"
+"  # tilføj ny kommando som kører GNU diff(1) i 'context diff' modus\n"
+"  cdiff = gdiff -Nprc5\n"
+"  ## eller den gamle måde:\n"
+"  #cmd.cdiff = gdiff\n"
+"  #opts.cdiff = -Nprc5"
 
 msgid ""
 "  # add new command called vdiff, runs kdiff3\n"
 "  vdiff = kdiff3"
 msgstr ""
+"  # tilføj en ny kommando ved navn vdiff som kører kdiff3\n"
+"  vdiff = kdiff3"
 
 msgid ""
 "  # add new command called meld, runs meld (no need to name twice)\n"
 "  meld ="
 msgstr ""
+"  # tilføj en ny kommando ved navn meld som kører meld (ingen grund\n"
+"  # til at angive navnet to gange)\n"
+"  meld ="
 
 msgid ""
 "  # add new command called vimdiff, runs gvimdiff with DirDiff plugin\n"
@@ -2200,9 +2022,15 @@
 "  # your .vimrc\n"
 "  vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'"
 msgstr ""
+"  # tilføj en ny kommando ved navn vimdiff som kører gvimdiff med\n"
+"  # DirDiff udvidelsen (se\n"
+"  # http://www.vim.org/scripts/script.php?script_id=102) Brugere fra\n"
+"  # ikke-engelsktalende lande bør putte \"let g:DirDiffDynamicDiffText\n"
+"  # = 1\" i deres .vimrc\n"
+"  vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'"
 
 msgid "Tool arguments can include variables that are expanded at runtime::"
-msgstr ""
+msgstr "Argumenterne til værktøjerne kan indeholde variabler som bliver erstattet på runtime::"
 
 msgid ""
 "  $parent1, $plabel1 - filename, descriptive label of first parent\n"
@@ -2210,6 +2038,10 @@
 "  $parent2, $plabel2 - filename, descriptive label of second parent\n"
 "  $parent is an alias for $parent1."
 msgstr ""
+"  $parent1, $plabel1 - filnavn, beskrivelse af første forælder\n"
+"  $child,   $clabel  - filnavn, beskrivelse af barnerevisionen\n"
+"  $parent2, $plabel2 - filnavn, beskrivelse af anden forælder\n"
+"  $parent er et alias for $parent1."
 
 msgid ""
 "The extdiff extension will look in your [diff-tools] and [merge-tools]\n"
@@ -2282,11 +2114,14 @@
 msgstr "sammenligningsprogram der skal køres"
 
 msgid "OPT"
-msgstr ""
+msgstr "TILVALG"
 
 msgid "pass option to comparison program"
 msgstr "videregiv argument til sammenligningsprogram"
 
+msgid "revision"
+msgstr "revision"
+
 msgid "change made by revision"
 msgstr "ændring lavet i revision"
 
@@ -2311,7 +2146,7 @@
 msgstr "træk, opdater og sammenføj i en kommando"
 
 msgid "pull changes from a remote repository, merge new changes if needed."
-msgstr ""
+msgstr "hent ændringer fra fjerndepot, sammenføj nye ændringer hvis nødvendigt"
 
 msgid ""
 "    This finds all changes from the repository at the specified path\n"
@@ -2340,6 +2175,8 @@
 "    Returns 0 on success.\n"
 "    "
 msgstr ""
+"    Returnerer 0 ved succes.\n"
+"    "
 
 msgid ""
 "working dir not at branch tip (use \"hg update\" to check out branch tip)"
@@ -2493,7 +2330,7 @@
 msgstr "nøgle ID der skal underskrives med"
 
 msgid "TEXT"
-msgstr ""
+msgstr "TEKST"
 
 msgid "commit message"
 msgstr "deponeringsbesked"
@@ -2602,6 +2439,9 @@
 "  # If you want hyperlinks (optional)\n"
 "  baseurl = http://server/path/to/repo\n"
 msgstr ""
+"  [web]\n"
+"  # Hvis du vil have hyperlinks (valgfrit)\n"
+"  baseurl = http://server/sti/til/depot\n"
 
 #, python-format
 msgid "%s returned an error: %s"
@@ -2641,6 +2481,8 @@
 "  [hgk]\n"
 "  path=/location/of/hgk"
 msgstr ""
+"  [hgk]\n"
+"  path=/placering/af/hgk"
 
 msgid ""
 "hgk can make use of the extdiff extension to visualize revisions.\n"
@@ -2912,7 +2754,7 @@
 msgstr "genskanner på grund af ændring af .hgignore\n"
 
 msgid "cannot start: socket is already bound"
-msgstr ""
+msgstr "kan ikke starte: soklen er allerede i brug"
 
 msgid ""
 "cannot start: tried linking .hg/inotify.sock to a temporary socket but .hg/"
@@ -2996,7 +2838,7 @@
 msgstr ""
 
 msgid "Example::"
-msgstr ""
+msgstr "Eksempel::"
 
 msgid ""
 "    [keyword]\n"
@@ -3042,9 +2884,8 @@
 msgstr ""
 
 msgid ""
-"Before changing/disabling active keywords, run :hg:`kwshrink` to avoid\n"
-"the risk of inadvertently storing expanded keywords in the change\n"
-"history."
+"Before changing/disabling active keywords, you must run :hg:`kwshrink`\n"
+"to avoid storing expanded keywords in the change history."
 msgstr ""
 
 msgid ""
@@ -3107,15 +2948,25 @@
 msgid "\textending current template maps\n"
 msgstr "\tudvider aktuelle skabeloner\n"
 
-msgid "\toverriding default template maps\n"
-msgstr "\toverskriver standard skabelon\n"
+msgid "\toverriding default svn keywordset\n"
+msgstr "\toverskriver standard svn skabelon\n"
+
+msgid "\toverriding default cvs keywordset\n"
+msgstr "\toverskriver standard cvs skabelon\n"
 
 msgid ""
 "\n"
-"\tconfiguration using default keyword template maps\n"
+"\tconfiguration using default svn keywordset\n"
 msgstr ""
 "\n"
-"\tkonfiguration med standard nøgleordskabelon\n"
+"\tkonfiguration med standard svn nøgleordskabelon\n"
+
+msgid ""
+"\n"
+"\tconfiguration using default cvs keywordset\n"
+msgstr ""
+"\n"
+"\tkonfiguration med standard cvs nøgleordskabelon\n"
 
 msgid "\tdisabling current template maps\n"
 msgstr "deaktiverer nuævrende skabelon\n"
@@ -3194,12 +3045,8 @@
 msgid "revert expanded keywords in the working directory"
 msgstr "før ekspanderede nøgleord tilbge i arbejdskataloget"
 
-msgid ""
-"    Run before changing/disabling active keywords or if you experience\n"
-"    problems with :hg:`import` or :hg:`merge`."
-msgstr ""
-"    Brug denne kommando før du ændrer/deaktiverer nøgleord eller hvis\n"
-"    du oplever problemer med :hg:`import` eller :hg:`merge`."
+msgid "    Must be run before changing/disabling active keywords."
+msgstr ""
 
 msgid ""
 "    kwshrink refuses to run if given files contain local changes.\n"
@@ -3496,14 +3343,14 @@
 msgstr "ingen patches i serien\n"
 
 #, python-format
+msgid "qpush: %s is already at the top\n"
+msgstr "qpush: %s er allerede ved toppen\n"
+
+#, python-format
 msgid "cannot push to a previous patch: %s"
 msgstr "kan ikke skubbe til en tidligere rettelse: %s"
 
 #, python-format
-msgid "qpush: %s is already at the top\n"
-msgstr "qpush: %s er allerede ved toppen\n"
-
-#, python-format
 msgid "guarded by %r"
 msgstr "beskyttet af %r"
 
@@ -4478,6 +4325,9 @@
 msgid "import file in patch directory"
 msgstr "importer en fil i rettelsesbiblioteket"
 
+msgid "NAME"
+msgstr "NAVN"
+
 msgid "name of patch file"
 msgstr "navn på rettelse"
 
@@ -5089,6 +4939,10 @@
 "    "
 msgstr ""
 
+#, python-format
+msgid "comparing with %s\n"
+msgstr "sammenligner med %s\n"
+
 msgid "no changes found\n"
 msgstr "fandt ingen ændringer\n"
 
@@ -5275,6 +5129,21 @@
 msgid "%dh%02dm"
 msgstr ""
 
+#. i18n: format X days and YY hours as "XdYYh"
+#, python-format
+msgid "%dd%02dh"
+msgstr ""
+
+#. i18n: format X weeks and YY days as "XwYYd"
+#, python-format
+msgid "%dw%02dd"
+msgstr ""
+
+#. i18n: format X years and YY weeks as "XyYYw"
+#, python-format
+msgid "%dy%02dw"
+msgstr ""
+
 msgid "command to delete untracked files from the working directory"
 msgstr "kommando til at slette filer fra arbejdskataloget som ikke følges"
 
@@ -5662,7 +5531,8 @@
 msgstr "kører ikke interaktivt, brug commit i stedet"
 
 msgid "cannot partially commit a merge (use \"hg commit\" instead)"
-msgstr "kan ikke deponere en sammenføjning partielt (brug i stedet \"hg commit\")"
+msgstr ""
+"kan ikke deponere en sammenføjning partielt (brug i stedet \"hg commit\")"
 
 msgid "no changes to record\n"
 msgstr "ingen ændringer at optage\n"
@@ -6072,7 +5942,7 @@
 msgid ""
 "- You should use single encoding in one repository.\n"
 "- If the repository path ends with 0x5c, .hg/hgrc cannot be read.\n"
-"- win32mbcs is not compatible with fixutf8 extention."
+"- win32mbcs is not compatible with fixutf8 extension."
 msgstr ""
 
 msgid ""
@@ -6262,6 +6132,16 @@
 msgid "archiving"
 msgstr "arkiverer"
 
+#, python-format
+msgid "bookmark '%s' contains illegal character"
+msgstr ""
+
+msgid "searching for changed bookmarks\n"
+msgstr "leder efter ændrede bogmærker\n"
+
+msgid "no changed bookmarks found\n"
+msgstr "fandt ingen ændrede bogmærker\n"
+
 msgid "invalid changegroup"
 msgstr "ugyldig changegroup"
 
@@ -6276,8 +6156,12 @@
 msgstr ""
 
 #, python-format
-msgid "premature EOF reading chunk (got %d bytes, expected %d)"
-msgstr "for tidlig EOF ved læsning af chunk (fik %d bytes, forventede %d)"
+msgid "stream ended unexpectedly (got %d bytes, expected %d)"
+msgstr "stream stoppede uventet (fik %d bytes, forventede %d)"
+
+#, python-format
+msgid "invalid chunk length %d"
+msgstr "ugyldigt længde på chunk: %d"
 
 #, python-format
 msgid "%s: not a Mercurial bundle"
@@ -6405,6 +6289,10 @@
 msgstr "gren:        %s\n"
 
 #, python-format
+msgid "bookmark:    %s\n"
+msgstr "bogmærke:    %s\n"
+
+#, python-format
 msgid "tag:         %s\n"
 msgstr "mærkat:      %s\n"
 
@@ -6578,12 +6466,12 @@
 
 msgid ""
 "    New files are ignored if they match any of the patterns in\n"
-"    .hgignore. As with add, these changes take effect at the next\n"
+"    ``.hgignore``. As with add, these changes take effect at the next\n"
 "    commit."
 msgstr ""
 "    Nye filer bliver ignoreret hvis de matcher et af mønstrene i\n"
-"    .hgignore. Som ved add, så træder disse ændringer først i kræft\n"
-"    ved næste commit."
+"    ``.hgignore``. Som ved add, så træder disse ændringer først i\n"
+"    kræft ved næste commit."
 
 msgid ""
 "    Use the -s/--similarity option to detect renamed files. With a\n"
@@ -6696,37 +6584,28 @@
 msgstr "omgør effekten af tidligere ændringer"
 
 msgid ""
-"    The backout command merges the reverse effect of the reverted\n"
-"    changeset into the working directory."
-msgstr ""
-
-msgid ""
-"    With the --merge option, it first commits the reverted changes\n"
-"    as a new changeset. This new changeset is a child of the reverted\n"
-"    changeset.\n"
-"    The --merge option remembers the parent of the working directory\n"
-"    before starting the backout, then merges the new head with that\n"
-"    changeset afterwards.\n"
-"    This will result in an explicit merge in the history."
-msgstr ""
-"    Med --merge tilvalget bliver de omgjorte ændringer først deponeret\n"
-"    som en ny ændring. Denne nye ændring vil være et barn af den\n"
-"    omgjorte ændring. Derefter bliver det nye hoved sammenføjet med\n"
-"    arbejdskatalogets forælderrevision. Derved skabes der en eksplicit\n"
-"    sammenføjning i historien."
-
-msgid ""
-"    If you backout a changeset other than the original parent of the\n"
-"    working directory, the result of this merge is not committed,\n"
-"    as with a normal merge. Otherwise, no merge is needed and the\n"
-"    commit is automatic."
-msgstr ""
-
-msgid ""
-"    Note that the default behavior (without --merge) has changed in\n"
-"    version 1.7. To restore the previous default behavior, use\n"
-"    :hg:`backout --merge` and then :hg:`update --clean .` to get rid of\n"
-"    the ongoing merge."
+"    Prepare a new changeset with the effect of REV undone in the\n"
+"    current working directory."
+msgstr ""
+
+msgid ""
+"    If REV is the parent of the working directory, then this changeset\n"
+"    is committed automatically. Otherwise, hg needs to merge the\n"
+"    changes and the merged result is left uncommitted."
+msgstr ""
+
+msgid ""
+"    By default, the pending changeset will have one parent,\n"
+"    maintaining a linear history. With --merge, the pending changeset\n"
+"    will instead have two parents: the old parent of the working\n"
+"    directory and a child of REV that simply undoes REV."
+msgstr ""
+
+msgid ""
+"    Before version 1.7, the default behavior was equivalent to\n"
+"    specifying --merge followed by :hg:`update --clean .` to cancel\n"
+"    the merge and leave the child of REV as a head to be merged\n"
+"    separately."
 msgstr ""
 
 msgid "please specify just one revision"
@@ -6836,6 +6715,71 @@
 msgid "Testing changeset %d:%s (%d changesets remaining, ~%d tests)\n"
 msgstr "Tester ændring %d:%s (%d ændringer tilbage, ~%d test)\n"
 
+msgid "track a line of development with movable markers"
+msgstr ""
+
+msgid ""
+"    Bookmarks are pointers to certain commits that move when\n"
+"    committing. Bookmarks are local. They can be renamed, copied and\n"
+"    deleted. It is possible to use bookmark names in :hg:`merge` and\n"
+"    :hg:`update` to merge and update respectively to a given bookmark."
+msgstr ""
+"    Bogmærker er pegepinde til bestemte ændringer og pegepindene\n"
+"    flytter sig når man deponerer nye ændringer. Bogmærkerne er\n"
+"    lokale. De kan omdøbes, kopieres og slettes. Det er muligt at\n"
+"    bruge navne på bogmærker i :hg:`merge` og :hg:`update` for\n"
+"    respektivt at sammenføje eller opdatere til det givne bogmærke."
+
+msgid ""
+"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
+"    directory's parent revision with the given name. If you specify\n"
+"    a revision using -r REV (where REV may be an existing bookmark),\n"
+"    the bookmark is assigned to that revision."
+msgstr ""
+"    Du kan bruge :hg:`bookmark NAVN` for at sætte et bogmærke på\n"
+"    arbejdskatalogets forælderrevision med det givne navn. Hvis du\n"
+"    specificerer en revision med -r REV (hvor REV kan være et\n"
+"    eksisterende bogmærke), så bliver bogmærket tildelt denne\n"
+"    revision."
+
+msgid ""
+"    Bookmarks can be pushed and pulled between repositories (see :hg:`help\n"
+"    push` and :hg:`help pull`). This requires both the local and remote\n"
+"    repositories to support bookmarks. For versions prior to 1.8, this "
+"means\n"
+"    the bookmarks extension must be enabled.\n"
+"    "
+msgstr ""
+"    Bogmærker kan skubbes og hives mellem depoter (se :hg:`help push`\n"
+"    og :hg:`help pull`). Dette kræver at både lokal- og fjerndepotet\n"
+"    understøtter bogmærker. For versioner før 1.8 betyder det at\n"
+"    bookmark-udviddelsen skal være slået til.\n"
+"    "
+
+msgid "a bookmark of this name does not exist"
+msgstr "et bogmærke med dette navn findes ikke"
+
+msgid "a bookmark of the same name already exists"
+msgstr "et bogmærke med samme navn findes allerede"
+
+msgid "new bookmark name required"
+msgstr "nyt bogmærkenavn påkrævet"
+
+msgid "bookmark name required"
+msgstr "bogmærkenavn påkrævet"
+
+msgid "bookmark name cannot contain newlines"
+msgstr "bogmærkenavn kan ikke indeholde linieskift"
+
+msgid "bookmark names cannot consist entirely of whitespace"
+msgstr "bogmærkenavne kan ikke bestå udelukkende af tomrum"
+
+msgid "a bookmark cannot have the name of an existing branch"
+msgstr "et bogmærke kan ikke hedde det samme som en eksisterende gren"
+
+msgid "no bookmarks set\n"
+msgstr "der er ingen bogmærker\n"
+
 msgid "set or show the current branch name"
 msgstr "angiv eller vis navnet på den aktuelle gren"
 
@@ -7014,23 +6958,23 @@
 
 msgid ""
 "    The location of the source is added to the new repository's\n"
-"    .hg/hgrc file, as the default to be used for future pulls."
-msgstr ""
-"    Placeringen af kilden tilføjes til det nye depots .hg/hgrc fil som\n"
-"    den nye standard for fremtidige kald til 'hg pull'."
+"    ``.hg/hgrc`` file, as the default to be used for future pulls."
+msgstr ""
+"    Placeringen af kilden tilføjes til det nye depots ``.hg/hgrc`` fil\n"
+"    som den nye standard for fremtidige kald til :hg:`pull`."
 
 msgid "    See :hg:`help urls` for valid source format details."
 msgstr "    Se :hg:`help urls` for detaljer om gyldige formatter for kilden."
 
 msgid ""
 "    It is possible to specify an ``ssh://`` URL as the destination, but no\n"
-"    .hg/hgrc and working directory will be created on the remote side.\n"
+"    ``.hg/hgrc`` and working directory will be created on the remote side.\n"
 "    Please see :hg:`help urls` for important details about ``ssh://`` URLs."
 msgstr ""
 "    Det er muligt at specificere en ``ssh://`` URL som destination,\n"
-"    men der vil ikke bliver oprettet nogen .hg/hgrc fil eller noget\n"
-"    arbejdskatalog på den anden side. Se venligst :hg:`help urls` for\n"
-"    vigtige detaljer om ``ssh://`` URLer."
+"    men der vil ikke bliver oprettet nogen ``.hg/hgrc`` fil eller\n"
+"    noget arbejdskatalog på den anden side. Se venligst :hg:`help\n"
+"    urls` for vigtige detaljer om ``ssh://`` URLer."
 
 msgid ""
 "    A set of changesets (tags, or branch names) to pull may be specified\n"
@@ -7139,11 +7083,11 @@
 
 msgid ""
 "    Commit changes to the given files into the repository. Unlike a\n"
-"    centralized RCS, this operation is a local operation. See\n"
+"    centralized SCM, this operation is a local operation. See\n"
 "    :hg:`push` for a way to actively distribute your changes."
 msgstr ""
 "    Deponerer ændringer i de angivne filer ind i depotet. Dette er en\n"
-"    lokal operation, i modsætning til et centraliseret RCS. Se\n"
+"    lokal operation, i modsætning til et centraliseret SCM. Se\n"
 "    :hg:`push` for en måde til aktivt distribuere dine ændringer."
 
 msgid ""
@@ -7401,6 +7345,12 @@
 msgid "parse and display a date"
 msgstr "fortolk og vis en dato"
 
+msgid "display the combined ignore pattern"
+msgstr ""
+
+msgid "no ignore patterns found"
+msgstr "fandt ingen ignore mønstre"
+
 msgid "dump the contents of an index file"
 msgstr "dump indholdet af en indeksfil"
 
@@ -7763,8 +7713,10 @@
 "detaljer"
 
 #, python-format
-msgid "use \"hg -v help%s\" to show aliases and global options"
-msgstr "brug \"hg -v help%s\" for at vise aliaser og globale valgmuligheder"
+msgid "use \"hg -v help%s\" to show builtin aliases and global options"
+msgstr ""
+"brug \"hg -v help%s\" for at vise indbyggede aliaser og globale "
+"valgmuligheder"
 
 #, python-format
 msgid "use \"hg -v help %s\" to show global options"
@@ -7967,6 +7919,9 @@
 msgid "cannot combine --bundle and --subrepos"
 msgstr ""
 
+msgid "remote doesn't support bookmarks\n"
+msgstr "fjerdepotet understøtter ikke bogmærker\n"
+
 msgid "create a new repository in the given directory"
 msgstr "opret et nyt depot i det givne katalog"
 
@@ -8295,6 +8250,10 @@
 "    "
 msgstr ""
 
+#, python-format
+msgid "remote bookmark %s not found!"
+msgstr "fjern-bogmærke %s blev ikke fundet!"
+
 msgid ""
 "other repository doesn't support revision lookup, so a rev cannot be "
 "specified."
@@ -8302,6 +8261,10 @@
 "det andet depot understøtter ikke revisionsopslag, så en revision kan ikke "
 "angives."
 
+#, python-format
+msgid "importing bookmark %s\n"
+msgstr "importerer bogmærke %s\n"
+
 msgid "push changes to the specified destination"
 msgstr "skub ændringer til den angivne destination"
 
@@ -8358,6 +8321,22 @@
 msgid "pushing to %s\n"
 msgstr "skubber til %s\n"
 
+#, python-format
+msgid "exporting bookmark %s\n"
+msgstr "eksporterer bogmærke %s\n"
+
+#, python-format
+msgid "deleting remote bookmark %s\n"
+msgstr "sletter fjern-bogmærke %s\n"
+
+#, python-format
+msgid "bookmark %s does not exist on the local or remote repository!\n"
+msgstr "bogmærke %s eksisterer ikke i hverken lokal- eller fjerndepotet!\n"
+
+#, python-format
+msgid "updating bookmark %s failed!\n"
+msgstr "opdatering af bogmærke %s fejlede!\n"
+
 msgid "roll back an interrupted transaction"
 msgstr ""
 
@@ -8887,6 +8866,14 @@
 msgstr "%d udgående"
 
 #, python-format
+msgid "%d incoming bookmarks"
+msgstr "%d indgående bogmærker"
+
+#, python-format
+msgid "%d outgoing bookmarks"
+msgstr "%d udgående bogmærker"
+
+#, python-format
 msgid "remote: %s\n"
 msgstr "fjernsystem: %s\n"
 
@@ -9185,6 +9172,9 @@
 msgid "specify hg command to run on the remote side"
 msgstr "angiv hg kommando som skal udføres på fjernsystemet"
 
+msgid "do not verify server certificate (ignoring web.cacerts config)"
+msgstr ""
+
 msgid "PATTERN"
 msgstr ""
 
@@ -9341,6 +9331,18 @@
 msgid "[-gbsr] [-U] [-c CMD] [REV]"
 msgstr "[-gbsr] [-U] [-c KOMMANDO] [REV]"
 
+msgid "force"
+msgstr "gennemtving"
+
+msgid "delete a given bookmark"
+msgstr "slet et givent bogmærke"
+
+msgid "rename a given bookmark"
+msgstr "omdøb et givet bogmærke"
+
+msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
+msgstr "hg bookmarks [-f] [-d] [-m NAVN] [-r REV] [NAVN]"
+
 msgid "set branch name even if it shadows an existing branch"
 msgstr "sæt grennavnet selv hvis det overskygger en eksisterende gren"
 
@@ -9619,6 +9621,9 @@
 msgid "a remote changeset intended to be added"
 msgstr ""
 
+msgid "compare bookmarks"
+msgstr "sammenlign bogmærker"
+
 msgid "a specific branch you would like to pull"
 msgstr "en bestemt gren du gerne vil hive ned"
 
@@ -9715,12 +9720,21 @@
 msgid "run even when remote repository is unrelated"
 msgstr "kør selv hvis fjerndepotet er urelateret"
 
+msgid "BOOKMARK"
+msgstr "BOGMÆRKE"
+
+msgid "bookmark to pull"
+msgstr "bogmærke der skal hentes"
+
 msgid "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]"
 msgstr "[-u] [-f] [-r REV]... [-e KOMMANDO] [--remotecmd KOMMANDO] [KILDE]"
 
 msgid "force push"
 msgstr "gennemtving skubning"
 
+msgid "bookmark to push"
+msgstr "bogmærke der skal skubbes"
+
 msgid "allow pushing a new branch"
 msgstr ""
 
@@ -10166,6 +10180,11 @@
 
 #, python-format
 msgid ""
+"No argument found for substitution of %i variable in alias '%s' definition."
+msgstr ""
+
+#, python-format
+msgid ""
 "error in definition for alias '%s': %s may only be given on the command "
 "line\n"
 msgstr ""
@@ -11971,7 +11990,10 @@
 ":commit: commit creates a consistent snapshot of the state of the\n"
 "    entire project and its subrepositories. It does this by first\n"
 "    attempting to commit all modified subrepositories, then recording\n"
-"    their state and finally committing it in the parent repository."
+"    their state and finally committing it in the parent\n"
+"    repository. Mercurial can be made to abort if any subrepository\n"
+"    content is modified by setting \"ui.commitsubrepos=no\" in a\n"
+"    configuration file (see :hg:`help config`)."
 msgstr ""
 
 msgid ""
@@ -12300,13 +12322,13 @@
 "  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]"
+"  ssh://[user@]host[:port]/[path][#revision]"
 msgstr ""
 "  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]"
+"  ssh://[user@]host[:port]/[path][#revision]"
 
 msgid ""
 "Paths in the local filesystem can either point to Mercurial\n"
@@ -12649,12 +12671,12 @@
 msgstr "ingen afbrudt transaktion tilgængelig\n"
 
 #, python-format
-msgid "rolling back to revision %s (undo %s: %s)\n"
-msgstr ""
-
-#, python-format
-msgid "rolling back to revision %s (undo %s)\n"
-msgstr "ruller tilbage til revision %s (omgør %s)\n"
+msgid "repository tip rolled back to revision %s (undo %s: %s)\n"
+msgstr "spidsen af depotet rullet tilbage til revision %s (omgør %s: %s)\n"
+
+#, python-format
+msgid "repository tip rolled back to revision %s (undo %s)\n"
+msgstr "spidsen af depotet rullet tilbage til revision %s (omgør %s)\n"
 
 msgid "rolling back unknown transaction\n"
 msgstr "ruller ukendt transaktion tilbage\n"
@@ -12664,6 +12686,14 @@
 msgstr ""
 "Navngiven gren kunne ikke nulstilles, den nuværende gren er stadig: %s\n"
 
+#, python-format
+msgid "working directory now based on revisions %d and %d\n"
+msgstr "arbejdsbiblioteket er nu baseret på revisionerne %d og %d\n\n"
+
+#, python-format
+msgid "working directory now based on revision %d\n"
+msgstr "arbejdsbiblioteket er nu baseret på revision %d\n"
+
 msgid "no rollback information available\n"
 msgstr "ingen tilbagerulningsinformation til stede\n"
 
@@ -12691,6 +12721,10 @@
 msgid "can't commit subrepos without .hgsub"
 msgstr "kan ikke deponere underdepoter uden .hgsub"
 
+#, python-format
+msgid "uncommitted changes in subrepo %s"
+msgstr "udeponerede ændringer i underdepot %s"
+
 msgid "file not found!"
 msgstr "filen blev ikke fundet!"
 
@@ -12724,6 +12758,14 @@
 msgstr ""
 
 #, python-format
+msgid "updating bookmark %s\n"
+msgstr "opdaterer bogmærke %s\n"
+
+#, python-format
+msgid "not updating divergent bookmark %s\n"
+msgstr "opdaterer ikke divergerende bogmærke %s\n"
+
+#, python-format
 msgid "%d changesets found\n"
 msgstr "fandt %d ændringer\n"
 
@@ -12934,6 +12976,10 @@
 msgstr ""
 "udestående ikke-deponerede ændringer (brug 'hg status' for at se ændringer)"
 
+#, python-format
+msgid "outstanding uncommitted changes in subrepository '%s'"
+msgstr "udeponerede ændringer i underdepot '%s'"
+
 msgid "crosses branches (merge branches or use --clean to discard changes)"
 msgstr ""
 "krydser grene (sammenføj grenene eller brug --clean for at kassere "
@@ -13467,6 +13513,21 @@
 msgid "the argument to tag must be a string"
 msgstr "argumentet til tag skal være en streng"
 
+msgid ""
+"``bookmark([name])``\n"
+"    The named bookmark or all bookmarks."
+msgstr ""
+"``bookmark([name])``\n"
+"    Det navngivne bogmærke eller alle bogmærker."
+
+#. i18n: "bookmark" is a keyword
+msgid "bookmark takes one or no arguments"
+msgstr "bookmark tager et eller to argumenter"
+
+#. i18n: "bookmark" is a keyword
+msgid "the argument to bookmark must be a string"
+msgstr "argumentet til bookmark skal være en streng"
+
 msgid "can't negate that"
 msgstr ""
 
@@ -13563,6 +13624,18 @@
 msgstr ""
 
 #, python-format
+msgid ""
+" subrepository sources for %s differ\n"
+"use (l)ocal source (%s) or (r)emote source (%s)?\n"
+msgstr ""
+
+#, python-format
+msgid ""
+" subrepository sources for %s differ (in checked out version)\n"
+"use (l)ocal source (%s) or (r)emote source (%s)?\n"
+msgstr ""
+
+#, python-format
 msgid "default path for subrepository %s not found"
 msgstr ""
 
@@ -13641,7 +13714,7 @@
 msgid "node '%s' is not well formed"
 msgstr "knude '%s' er ikke korrekt formet"
 
-msgid ".hg/tags.cache is corrupt, rebuilding it\n"
+msgid ".hg/cache/tags is corrupt, rebuilding it\n"
 msgstr ""
 
 #, python-format
@@ -13739,6 +13812,10 @@
 msgid "edit failed"
 msgstr "redigering fejlede"
 
+#, python-format
+msgid "ignoring invalid [auth] key '%s'\n"
+msgstr "ignorerer ugyldig [auth] nøgle '%s'\n"
+
 msgid "http authorization required"
 msgstr ""
 
@@ -13760,10 +13837,6 @@
 msgid "http auth: user %s, password %s\n"
 msgstr "http godkendelse: bruger %s, kodeord %s\n"
 
-#, python-format
-msgid "ignoring invalid [auth] key '%s'\n"
-msgstr "ignorerer ugyldig [auth] nøgle '%s'\n"
-
 msgid "kb"
 msgstr ""
 
@@ -13777,12 +13850,29 @@
 msgid "certificate is for %s"
 msgstr "certifikatet er for %s"
 
-msgid "no commonName found in certificate"
-msgstr "fandt ikke noget commonName i certifikatet"
-
-#, python-format
-msgid "%s certificate error: %s"
-msgstr "%s certifikatfejl: %s"
+msgid "IDN in certificate not supported"
+msgstr "IDN er ikke supporteret i certifikatet"
+
+msgid "no commonName or subjectAltName found in certificate"
+msgstr "fandt ikke noget commonName eller subjectAltName i certifikatet"
+
+#, python-format
+msgid "%s certificate error: %s (use --insecure to connect insecurely)"
+msgstr ""
+
+#, python-format
+msgid "invalid certificate for %s with fingerprint %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"warning: %s certificate with fingerprint %s not verified (check "
+"hostfingerprints or web.cacerts config setting)\n"
+msgstr ""
+
+#, python-format
+msgid "no certificate for %s with configured hostfingerprint"
+msgstr ""
 
 #, python-format
 msgid ""
@@ -13809,9 +13899,6 @@
 msgid "path %r traverses symbolic link %r"
 msgstr "stien %r følger symbolsk link %r"
 
-msgid "Hardlinks not supported"
-msgstr "Hardlinks er ikke supporteret"
-
 #, python-format
 msgid "could not symlink to %r: %s"
 msgstr "kunne ikke lave et symbolsk link til %r: %s"
@@ -14054,17 +14141,14 @@
 msgid "(first damaged changeset appears to be %d)\n"
 msgstr "(første beskadigede ændring er tilsyneladende %d)\n"
 
-msgid "user name not available - set USERNAME environment variable"
-msgstr "der er ikke noget brugernavn - sæt USERNAME miljøvariabel"
-
 msgid "look up remote revision"
 msgstr ""
 
+msgid "push failed (unexpected response):"
+msgstr "skub fejlede (uventet svar):"
+
 msgid "look up remote changes"
 msgstr ""
 
 msgid "push failed:"
 msgstr "skub fejlede:"
-
-msgid "push failed (unexpected response):"
-msgstr "skub fejlede (uventet svar):"
--- a/i18n/de.po	Wed Feb 16 15:02:30 2011 +0100
+++ b/i18n/de.po	Wed Mar 02 13:24:48 2011 +0100
@@ -37,7 +37,7 @@
 msgstr ""
 "Project-Id-Version: Mercurial\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2010-09-22 13:26+0200\n"
+"POT-Creation-Date: 2011-02-24 11:45+0100\n"
 "PO-Revision-Date: 2010-12-24 15:09+0100\n"
 "Last-Translator: Martin Roppelt <m.p.roppelt@web.de>\n"
 "Language-Team: German (http://transifex.net/projects/p/mercurial/team/de/) "
@@ -58,8 +58,18 @@
 msgid "Commands"
 msgstr "Befehle"
 
-msgid "    options:"
-msgstr "    Optionen:"
+#, fuzzy
+msgid "Extensions"
+msgstr "%s Erweiterung - %s"
+
+msgid ""
+"This section contains help for extensions that are distributed together with "
+"Mercurial. Help for other extensions is available in the help system."
+msgstr ""
+
+#, fuzzy
+msgid "Options:"
+msgstr "Optionen"
 
 #, python-format
 msgid "    aliases: %s"
@@ -120,10 +130,8 @@
 
 msgid ""
 "Branch-based Access Control\n"
-"---------------------------"
-msgstr ""
-"Zweigbasierte Zugriffskontrolle\n"
-"-------------------------------"
+"..........................."
+msgstr ""
 
 msgid ""
 "Use the ``acl.deny.branches`` and ``acl.allow.branches`` sections to\n"
@@ -153,10 +161,8 @@
 
 msgid ""
 "Path-based Access Control\n"
-"-------------------------"
-msgstr ""
-"Pfadbasierte Zugriffskontrolle\n"
-"------------------------------"
+"........................."
+msgstr ""
 
 msgid ""
 "Use the ``acl.deny`` and ``acl.allow`` sections to have path-based\n"
@@ -172,10 +178,8 @@
 
 msgid ""
 "Groups\n"
-"------"
-msgstr ""
-"Gruppen\n"
-"-------"
+"......"
+msgstr ""
 
 msgid ""
 "Group names must be prefixed with an ``@`` symbol. Specifying a group\n"
@@ -195,12 +199,11 @@
 "läuft, wird die Liste der Benutzer vom Betriebssystem abgerufen.\n"
 "Andernfalls wird eine Ausnahme ausgelöst."
 
+#, fuzzy
 msgid ""
 "Example Configuration\n"
-"---------------------"
-msgstr ""
-"Beispiel-Konfiguration\n"
-"----------------------"
+"....................."
+msgstr "Beispielkonfiguration:"
 
 msgid "::"
 msgstr "::"
@@ -403,180 +406,6 @@
 msgid "acl: access denied for changeset %s"
 msgstr "acl: Zugriff verweigert auf den Änderungssatz %s"
 
-msgid "track a line of development with movable markers"
-msgstr "Folgt einem Entwicklungsstrang mit einer beweglichen Markierung"
-
-msgid ""
-"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, the\n"
-"bookmark shifts to the new changeset."
-msgstr ""
-"Lesezeichen sind lokale, bewegliche Markierungen für Änderungssätze. Jedes\n"
-"Lesezeichen zeigt auf einen Änderungssatz, angegeben durch dessen\n"
-"Prüfsumme. Wenn Sie einen Commit ausführen, der auf einem Änderungssatz\n"
-"mit einem Lesezeichen basiert, bewegt sich das Lesezeichen zum neuen\n"
-"Änderungssatz."
-
-msgid ""
-"It is possible to use bookmark names in every revision lookup (e.g.\n"
-":hg:`merge`, :hg:`update`)."
-msgstr ""
-"Es ist möglich, Lesezeichen in jeder Revisionsabfrage zu verwenden\n"
-"(z.B. :hg:`merge`, :hg:`update`)."
-
-msgid ""
-"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 configuration file::"
-msgstr ""
-"Standardmäßig werden, wenn mehrere Lesezeichen auf einen Änderungssatz\n"
-"zeigen, alle aktualisiert. Ist es möglich, ein Git-ähnliches Verhalten\n"
-"zu erzeugen, indem die folgenden Einstellungen in die Konfigurationsdatei\n"
-"eingefügt werden::"
-
-msgid ""
-"  [bookmarks]\n"
-"  track.current = True"
-msgstr ""
-"  [bookmarks]\n"
-"  track.current = True"
-
-msgid ""
-"This will cause Mercurial to track the bookmark that you are currently\n"
-"using, and only update it. This is similar to git's approach to\n"
-"branching.\n"
-msgstr ""
-"Dies wird Mercurial dazu bringen, das Lesezeichen, das Sie im Moment\n"
-"nutzen, zu verfolgen und nur dies zu aktualisieren. Dies ist ähnlich zur\n"
-"Vorgehensweise von Git bei Verzweigungen.\n"
-
-msgid ""
-"    Bookmarks are pointers to certain commits that move when\n"
-"    committing. Bookmarks are local. They can be renamed, copied and\n"
-"    deleted. It is possible to use bookmark names in :hg:`merge` and\n"
-"    :hg:`update` to merge and update respectively to a given bookmark."
-msgstr ""
-"    Lesezeichen sind Zeiger auf bestimmte Versionen, die mitwandern,\n"
-"    wenn eine neuen Version erzeugt wird. Lesezeichen sind nur lokal.\n"
-"    Sie können umbenannt, kopiert und gelöscht werden. Es ist möglich,\n"
-"    Lesezeichen bei :hg: `merge` und :hg:`update` zu nutzen, um auf das\n"
-"    angegebene Lesezeichen zu aktualisieren."
-
-msgid ""
-"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
-"    directory's parent revision with the given name. If you specify\n"
-"    a revision using -r REV (where REV may be an existing bookmark),\n"
-"    the bookmark is assigned to that revision.\n"
-"    "
-msgstr ""
-"    Man kann :hg:`bookmark NAME` aufrufen, um ein Lesezeichen mit dem\n"
-"    angegeben Namen auf der aktuellen Spitze (tip) zu setzen. Bei Angabe\n"
-"    einer Revision mit -r REV (REV kann ein vorhandenes Lesezeichen sein) \n"
-"    wird das Lesezeichen auf dieser Revision gesetzt.\n"
-"    "
-
-msgid "a bookmark of this name does not exist"
-msgstr "Es existiert kein Lesezeichen mit diesem Namen"
-
-msgid "a bookmark of the same name already exists"
-msgstr "Ein Lesezeichen mit diesem Namen existiert bereits"
-
-msgid "new bookmark name required"
-msgstr "Ein neuer Name für das Lesezeichen muss übergeben werden"
-
-msgid "bookmark name required"
-msgstr "Ein Name für das Lesezeichen muss übergeben werden"
-
-msgid "bookmark name cannot contain newlines"
-msgstr "Ein Lesezeichenname darf keine Zeilenumbrüche enthalten"
-
-msgid "bookmark names cannot consist entirely of whitespace"
-msgstr "Ein Lesezeichenname darf nicht ausschließlich aus Leerraum bestehen"
-
-msgid "a bookmark cannot have the name of an existing branch"
-msgstr ""
-"Ein Lesezeichen darf nicht denselben Namen wie ein existierender Zweig haben"
-
-msgid "no bookmarks set\n"
-msgstr "Keine Lesezeichen gesetzt\n"
-
-#, python-format
-msgid "updating bookmark %s\n"
-msgstr "Aktualisiere Lesezeichen %s\n"
-
-#, python-format
-msgid "not updating divergent bookmark %s\n"
-msgstr "Aktualisiere nicht divergierendes Lesezeichen %s\n"
-
-#, python-format
-msgid "updating bookmark %s failed!\n"
-msgstr "Aktualisieren des Lesezeichens %s fehlgeschlagen!\n"
-
-#, python-format
-msgid "remote bookmark %s not found!"
-msgstr "Entferntes Lesezeichen %s wurde nicht gefunden!"
-
-#, python-format
-msgid "importing bookmark %s\n"
-msgstr "Importierte Lesezeichen %s\n"
-
-#, python-format
-msgid "exporting bookmark %s\n"
-msgstr "Exportiere Lesezeichen %s\n"
-
-#, python-format
-msgid "deleting remote bookmark %s\n"
-msgstr "Lösche entferntes Lesezeichen %s\n"
-
-#, python-format
-msgid "bookmark %s does not exist on the local or remote repository!\n"
-msgstr "Lesezeichen %s existiert weder im lokalen noch im entfernten Archiv!\n"
-
-msgid "searching for changes\n"
-msgstr "Suche nach Änderungen\n"
-
-msgid "no changes found\n"
-msgstr "Keine Änderungen gefunden\n"
-
-#, python-format
-msgid "comparing with %s\n"
-msgstr "Vergleiche mit %s\n"
-
-msgid "bookmark to import"
-msgstr "Zu importierendes Lesezeichen"
-
-msgid "BOOKMARK"
-msgstr "LESEZEICHEN"
-
-msgid "bookmark to export"
-msgstr "Zu exportierendes Lesezeichen"
-
-msgid "compare bookmark"
-msgstr "Vergleiche Lesezeichen"
-
-msgid "force"
-msgstr "erzwinge"
-
-msgid "REV"
-msgstr "REV"
-
-msgid "revision"
-msgstr "Revision"
-
-msgid "delete a given bookmark"
-msgstr "Löscht ein gegebenes Lesezeichen"
-
-msgid "NAME"
-msgstr "NAME"
-
-msgid "rename a given bookmark"
-msgstr "Benennt ein gegebenes Lesezeichen um"
-
-msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
-msgstr "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
-
 msgid "hooks for integrating with the Bugzilla bug tracker"
 msgstr "Hooks zur Integration mit dem Bugzilla Bugtracker"
 
@@ -966,6 +795,9 @@
 "    dem Argument von --rev).\n"
 "    "
 
+msgid "REV"
+msgstr "REV"
+
 msgid "show children of the specified revision"
 msgstr "Zeigt die Kinder der übergebenen Revision"
 
@@ -1236,6 +1068,8 @@
 msgid "win32console not found, please install pywin32\n"
 msgstr "win32console nicht gefunden, bitte installiere pywin32\n"
 
+#. i18n: 'always', 'auto', and 'never' are keywords and should
+#. not be translated
 msgid "when to colorize (boolean, always, auto, or never)"
 msgstr "Wann soll eingefärbt werden (boolescher Wert, always, auto oder never)"
 
@@ -1338,11 +1172,12 @@
 "    --sourcesort  Versucht die Reihenfolge der Quellrevisionen zu erhalten.\n"
 "                  Dies wird nur bei Mercurial als Quelle unterstützt."
 
-msgid ""
-"    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::"
+#, fuzzy
+msgid ""
+"    If ``REVMAP`` isn't given, it will be put in a default location\n"
+"    (``<dest>/.hg/shamap`` by default). The ``REVMAP`` is a simple\n"
+"    text file that maps each source commit ID to the destination ID\n"
+"    for that revision, like so::"
 msgstr ""
 "    Wenn <REVMAP> nicht gegeben ist, wird es in einer standardisierten\n"
 "    Stelle (standardmäßig <dest>/.hg/shamap) abgelegt. Die <REVMAP> ist\n"
@@ -1498,49 +1333,53 @@
 "    Quellcode aus einem Archiv aus dem default-Zweig in einen benannten\n"
 "    Zweig zu verschieben."
 
+#, fuzzy
 msgid ""
 "    Mercurial Source\n"
-"    ----------------"
+"    ''''''''''''''''"
 msgstr ""
 "    Mercurial als Quelle\n"
 "    --------------------"
 
 msgid ""
-"    --config convert.hg.ignoreerrors=False    (boolean)\n"
-"        ignore integrity errors when reading. Use it to fix Mercurial\n"
-"        repositories with missing revlogs, by converting from and to\n"
-"        Mercurial.\n"
-"    --config convert.hg.saverev=False         (boolean)\n"
-"        store original revision ID in changeset (forces target IDs to\n"
-"        change)\n"
-"    --config convert.hg.startrev=0            (hg revision identifier)\n"
-"        convert start revision and its descendants"
-msgstr ""
-"    --config convert.hg.ignoreerrors=False    (boolescher Wert)\n"
-"        Ignoriert Integritätsfehler beim Lesen. Wird benutzt um Mercurial-\n"
-"        Archive ohne Revlog zu korrigieren, wenn von hg in hg konvertiert\n"
-"        wird.\n"
-"    --config convert.hg.saverev=False         (boolescher Wert)\n"
-"        Speichert die Original-Revisions-ID im Änderunsgsatz (erzwingt\n"
-"        Änderung der Ziel-IDs)\n"
-"    --config convert.hg.startrev=0            (hg Revisions-ID)\n"
-"        Konvertiert alle Nachfahren ab Startrevision"
-
+"    The Mercurial source recognizes the following configuration\n"
+"    options, which you can set on the command line with ``--config``:"
+msgstr ""
+
+msgid ""
+"    :convert.hg.ignoreerrors: ignore integrity errors when reading.\n"
+"        Use it to fix Mercurial repositories with missing revlogs, by\n"
+"        converting from and to Mercurial. Default is False."
+msgstr ""
+
+msgid ""
+"    :convert.hg.saverev: store original. revision ID in changeset\n"
+"        (forces target IDs to change). It takes and boolean argument\n"
+"        and defaults to False."
+msgstr ""
+
+msgid ""
+"    :convert.hg.startrev: convert start revision and its descendants.\n"
+"        It takes a hg revision identifier and defaults to 0."
+msgstr ""
+
+#, fuzzy
 msgid ""
 "    CVS Source\n"
-"    ----------"
+"    ''''''''''"
 msgstr ""
 "    CVS als Quelle\n"
 "    --------------"
 
+#, fuzzy
 msgid ""
 "    CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n"
 "    to indicate the starting point of what will be converted. Direct\n"
 "    access to the repository files is not needed, unless of course the\n"
-"    repository is :local:. The conversion uses the top level directory\n"
-"    in the sandbox to find the CVS repository, and then uses CVS rlog\n"
-"    commands to find files to convert. This means that unless a\n"
-"    filemap is given, all files under the starting directory will be\n"
+"    repository is ``:local:``. The conversion uses the top level\n"
+"    directory in the sandbox to find the CVS repository, and then uses\n"
+"    CVS rlog commands to find files to convert. This means that unless\n"
+"    a filemap is given, all files under the starting directory will be\n"
 "    converted, and that any directory reorganization in the CVS\n"
 "    sandbox is ignored."
 msgstr ""
@@ -1554,67 +1393,52 @@
 "    Startverzeichnisses konvertiert und jegliche Verzeichnis-Umordnung im \n"
 "    Sandkasten ignoriert."
 
-msgid "    The options shown are the defaults."
-msgstr "    Die folgenden Argumente zeigen die Standardwerte."
-
-msgid ""
-"    --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"
-"    --config hook.cvslog\n"
-"        Specify a Python function to be called at the end of gathering\n"
-"        the CVS log. The function is passed a list with the log entries,\n"
-"        and can modify the entries in-place, or add or delete them.\n"
-"    --config hook.cvschangesets\n"
-"        Specify a Python function to be called after the changesets\n"
-"        are calculated from the the CVS log. The function is passed\n"
-"        a list with the changeset entries, and can modify the changesets\n"
-"        in-place, or add or delete them."
-msgstr ""
-"    --config convert.cvsps.cache=True         (boolescher Wert)\n"
-"        Kann für Tests oder zur Fehlersuche deaktiviert werden, um das\n"
-"        Zwischenspeichern des Quell-Logbuchs zu unterbinden.\n"
-"    --config convert.cvsps.fuzz=60            (Ganzzahl)\n"
-"        Spezifiziert die maximale Zeit (in Sekunden) die zwischen\n"
-"        einzelnen Änderungssätzen mit selbem Benutzer und Meldung erlaubt\n"
-"        ist, damit sie in den gleichen Änderungssatz übernommen werden.\n"
-"        Wenn sehr große Dateien übernommen wurden, ist der Standardwert\n"
-"        vielleicht zu klein.\n"
-"    --config convert.cvsps.mergeto='{{mergetobranch ([-\\w]+)}}'\n"
-"        Spezifiziert einen Regulären Ausdruck, auf den Versionsmeldungen\n"
-"        geprüft werden. Wenn ein Treffer gefunden wird, wird eine\n"
-"        künstliche Revision als Zusammenführung des aktuellen mit dem\n"
-"        gefunden Zweig eingefügt.\n"
-"    --config convert.cvsps.mergefrom='{{mergefrombranch ([-\\w]+)}}'\n"
-"        Spezifiziert einen Regulären Ausdruck, auf den Versionsmeldungen\n"
-"        geprüft werden. Wenn ein Treffer gefunden wird, wird die\n"
-"        jüngste Revision des angegebenen Zweigs als zweiter Vorfahr der\n"
-"        aktuellen Revision angenommen.\n"
-"    --config hook.cvslog\n"
-"        Spezifiziert eine Python-Funktion, die nach dem Abrufen des\n"
-"        CVS-Logs ausgeführt wird. Der Funktion wird eine Liste von\n"
-"        Log-Einträgen übergeben, in der in-place Einträge bearbeitet, \n"
-"        ergänzt oder gelöscht werden können.\n"
-"    --config hook.cvschangesets\n"
-"        Spezifiziert eine Python-Funktion, die aufgerufen wird, nachdem\n"
-"        die Änderungssätze aus dem CVS-Log berechnet wurden. Der Funktion\n"
-"        wird eine Liste von Änderungssätzen übergeben, in der in-place\n"
-"        Einträge bearbeitet, ergänzt oder gelöscht werden können."
+msgid "    The following options can be used with ``--config``:"
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.cache: Set to False to disable remote log caching,\n"
+"        for testing and debugging purposes. Default is True."
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.fuzz: Specify the maximum time (in seconds) that is\n"
+"        allowed between commits with identical user and log message in\n"
+"        a single changeset. When very large files were checked in as\n"
+"        part of a changeset then the default may not be long enough.\n"
+"        The default is 60."
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.mergeto: Specify a regular expression to which\n"
+"        commit log messages are matched. If a match occurs, then the\n"
+"        conversion process will insert a dummy revision merging the\n"
+"        branch on which this log message occurs to the branch\n"
+"        indicated in the regex. Default is ``{{mergetobranch\n"
+"        ([-\\w]+)}}``"
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.mergefrom: Specify a regular expression to which\n"
+"        commit log messages are matched. If a match occurs, then the\n"
+"        conversion process will add the most recent revision on the\n"
+"        branch indicated in the regex as the second parent of the\n"
+"        changeset. Default is ``{{mergefrombranch ([-\\w]+)}}``"
+msgstr ""
+
+msgid ""
+"    :hook.cvslog: Specify a Python function to be called at the end of\n"
+"        gathering the CVS log. The function is passed a list with the\n"
+"        log entries, and can modify the entries in-place, or add or\n"
+"        delete them."
+msgstr ""
+
+msgid ""
+"    :hook.cvschangesets: Specify a Python function to be called after\n"
+"        the changesets are calculated from the the CVS log. The\n"
+"        function is passed a list with the changeset entries, and can\n"
+"        modify the changesets in-place, or add or delete them."
+msgstr ""
 
 msgid ""
 "    An additional \"debugcvsps\" Mercurial command allows the builtin\n"
@@ -1627,22 +1451,24 @@
 "    cvsps 2.1 ähnlich. Für weitere Details siehe die Hilfe zu diesem\n"
 "    Befehl."
 
+#, fuzzy
 msgid ""
 "    Subversion Source\n"
-"    -----------------"
+"    '''''''''''''''''"
 msgstr ""
 "    Subversion als Quelle\n"
 "    ---------------------"
 
+#, fuzzy
 msgid ""
 "    Subversion source detects classical trunk/branches/tags layouts.\n"
-"    By default, the supplied \"svn://repo/path/\" source URL is\n"
-"    converted as a single branch. If \"svn://repo/path/trunk\" exists it\n"
-"    replaces the default branch. If \"svn://repo/path/branches\" exists,\n"
-"    its subdirectories are listed as possible branches. If\n"
-"    \"svn://repo/path/tags\" exists, it is looked for tags referencing\n"
-"    converted branches. Default \"trunk\", \"branches\" and \"tags\" values\n"
-"    can be overridden with following options. Set them to paths\n"
+"    By default, the supplied ``svn://repo/path/`` source URL is\n"
+"    converted as a single branch. If ``svn://repo/path/trunk`` exists\n"
+"    it replaces the default branch. If ``svn://repo/path/branches``\n"
+"    exists, its subdirectories are listed as possible branches. If\n"
+"    ``svn://repo/path/tags`` exists, it is looked for tags referencing\n"
+"    converted branches. Default ``trunk``, ``branches`` and ``tags``\n"
+"    values can be overridden with following options. Set them to paths\n"
 "    relative to the source URL, or leave them blank to disable auto\n"
 "    detection."
 msgstr ""
@@ -1658,20 +1484,23 @@
 "    gesetzt oder leer gelassen werden, um die automatische Erkennung zu\n"
 "    verhindern."
 
-msgid ""
-"    --config convert.svn.branches=branches    (directory name)\n"
-"        specify the directory containing branches\n"
-"    --config convert.svn.tags=tags            (directory name)\n"
-"        specify the directory containing tags\n"
-"    --config convert.svn.trunk=trunk          (directory name)\n"
-"        specify the name of the trunk branch"
-msgstr ""
-"    --config convert.svn.branches=branches       (Verzeichnisname)\n"
-"        Spezifiziert das Verzeichnis für die Zweige\n"
-"    --config convert.svn.tags=tags               (Verzeichnisname)\n"
-"        Spezifiziert das Verzeichnis für Tags\n"
-"    --config convert.svn.trunk=trunk             (Verzeichnisname)\n"
-"        Spezifiziert den Namen des Hauptzweigs"
+msgid "    The following options can be set with ``--config``:"
+msgstr ""
+
+msgid ""
+"    :convert.svn.branches: specify the directory containing branches.\n"
+"        The defaults is ``branches``."
+msgstr ""
+
+msgid ""
+"    :convert.svn.tags: specify the directory containing tags. The\n"
+"        default is ``tags``."
+msgstr ""
+
+msgid ""
+"    :convert.svn.trunk: specify the name of the trunk branch The\n"
+"        defauls is ``trunk``."
+msgstr ""
 
 msgid ""
 "    Source history can be retrieved starting at a specific revision,\n"
@@ -1682,27 +1511,30 @@
 "    Quellhistorie kann vollständig oder ab einer gegebenen Startrevision\n"
 "    erfasst werden:"
 
-msgid ""
-"    --config convert.svn.startrev=0           (svn revision number)\n"
-"        specify start Subversion revision."
+#, fuzzy
+msgid ""
+"    :convert.svn.startrev: specify start Subversion revision number.\n"
+"        The default is 0."
 msgstr ""
 "    --config convert.svn.startrev=0              (SVN-Revisionsnummer)\n"
 "        Spezifiziert die Startrevision"
 
+#, fuzzy
 msgid ""
 "    Perforce Source\n"
-"    ---------------"
+"    '''''''''''''''"
 msgstr ""
 "    Perforce als Quelle\n"
 "    -------------------"
 
+#, fuzzy
 msgid ""
 "    The Perforce (P4) importer can be given a p4 depot path or a\n"
 "    client specification as source. It will convert all files in the\n"
 "    source to a flat Mercurial repository, ignoring labels, branches\n"
 "    and integrations. Note that when a depot path is given you then\n"
 "    usually should specify a target directory, because otherwise the\n"
-"    target may be named ...-hg."
+"    target may be named ``...-hg``."
 msgstr ""
 "    Der Perforce (P4) Importer kann einen p4 Depotpfad oder eine Client-\n"
 "    Spezifikation als Quelle annehmen. Alle Dateien werden in ein flaches\n"
@@ -1711,44 +1543,43 @@
 "    ein Zielpfad genannt werden, da dieser sonst als ...-hg ausfallen\n"
 "    kann."
 
+#, fuzzy
 msgid ""
 "    It is possible to limit the amount of source history to be\n"
-"    converted by specifying an initial Perforce revision."
+"    converted by specifying an initial Perforce revision:"
 msgstr ""
 "    Es ist möglich die zu konvertierte Quellhistorie durch Angabe einer\n"
 "    Startrevision zu begrenzen."
 
 msgid ""
-"    --config convert.p4.startrev=0            (perforce changelist number)\n"
-"        specify initial Perforce revision."
-msgstr ""
-"    --config convert.p4.startrev=0            (Perforce Changelist-Nummer)\n"
-"        Spezifiziert die Startrevision"
+"    :convert.p4.startrev: specify initial Perforce revision, a\n"
+"        Perforce changelist number)."
+msgstr ""
 
 msgid ""
 "    Mercurial Destination\n"
-"    ---------------------"
-msgstr ""
-"    Mercurial als Ziel\n"
-"    ------------------"
-
-msgid ""
-"    --config convert.hg.clonebranches=False   (boolean)\n"
-"        dispatch source branches in separate clones.\n"
-"    --config convert.hg.tagsbranch=default    (branch name)\n"
-"        tag revisions branch name\n"
-"    --config convert.hg.usebranchnames=True   (boolean)\n"
-"        preserve branch names"
-msgstr ""
-"    --config convert.hg.clonebranches=False   (boolescher Wert)\n"
-"        Lagert Quellzweige in separaten Klonen ab.\n"
-"    --config convert.hg.tagsbranch=default    (Zweigname)\n"
-"        Name des Zweigs, der die Tags enthalten soll.\n"
-"    --config convert.hg.usebranchnames=True   (boolescher Wert)\n"
-"        Erhält die Zweignamen"
-
-msgid "    "
-msgstr "    "
+"    '''''''''''''''''''''"
+msgstr ""
+
+#, fuzzy
+msgid "    The following options are supported:"
+msgstr "Die folgenden Prädikate werden unterstützt:"
+
+msgid ""
+"    :convert.hg.clonebranches: dispatch source branches in separate\n"
+"        clones. The default is False."
+msgstr ""
+
+msgid ""
+"    :convert.hg.tagsbranch: branch name for tag revisions, defaults to\n"
+"        ``default``."
+msgstr ""
+
+msgid ""
+"    :convert.hg.usebranchnames: preserve branch names. The default is\n"
+"        True\n"
+"    "
+msgstr ""
 
 msgid "create changeset information from CVS"
 msgstr "erstellt Änderungssatz-Informationen aus CVS"
@@ -2086,6 +1917,14 @@
 msgid "Python ElementTree module is not available"
 msgstr "Python-Modul ElementTree ist nicht verfügbar"
 
+#, python-format
+msgid "%s repository format is unsupported, please upgrade"
+msgstr ""
+
+#, fuzzy
+msgid "failed to detect repository format!"
+msgstr "Archiv für Patch-Reihen kann nicht geladen werden\n"
+
 msgid "internal calling inconsistency"
 msgstr "Inkonsistenz bei internem Aufruf"
 
@@ -2326,11 +2165,13 @@
 "Datei benutzt die gleiche Syntax wie alle anderen Konfigurationsdateien.\n"
 "Sie verwendet zwei Bereiche, ``[patterns]`` und ``[repository]``."
 
-msgid ""
-"The ``[patterns]`` section specifies the line endings used in the\n"
-"working directory. The format is specified by a file pattern. The\n"
-"first match is used, so put more specific patterns first. The\n"
-"available line endings are ``LF``, ``CRLF``, and ``BIN``."
+#, fuzzy
+msgid ""
+"The ``[patterns]`` section specifies how line endings should be\n"
+"converted between the working copy and the repository. The format is\n"
+"specified by a file pattern. The first match is used, so put more\n"
+"specific patterns first. The available line endings are ``LF``,\n"
+"``CRLF``, and ``BIN``."
 msgstr ""
 "Der Bereich ``[patterns]`` spezifiziert die Zeilenumbrüche, die in der\n"
 "Arbeitskopie verwendet werden. Das Format wird über ein Dateimuster\n"
@@ -2338,14 +2179,16 @@
 "schere Muster oben notieren. Die verfügbaren Zeilenenden sind ``LF``,\n"
 "``CRLF`` und ``BIN``."
 
+#, fuzzy
 msgid ""
 "Files with the declared format of ``CRLF`` or ``LF`` are always\n"
-"checked out in that format and files declared to be binary (``BIN``)\n"
-"are left unchanged. Additionally, ``native`` is an alias for the\n"
-"platform's default line ending: ``LF`` on Unix (including Mac OS X)\n"
-"and ``CRLF`` on Windows. Note that ``BIN`` (do nothing to line\n"
-"endings) is Mercurial's default behaviour; it is only needed if you\n"
-"need to override a later, more general pattern."
+"checked out and stored in the repository in that format and files\n"
+"declared to be binary (``BIN``) are left unchanged. Additionally,\n"
+"``native`` is an alias for checking out in the platform's default line\n"
+"ending: ``LF`` on Unix (including Mac OS X) and ``CRLF`` on\n"
+"Windows. Note that ``BIN`` (do nothing to line endings) is Mercurial's\n"
+"default behaviour; it is only needed if you need to override a later,\n"
+"more general pattern."
 msgstr ""
 "Dateien mit dem deklarierten Format ``CRLF`` oder ``LF`` werden immer\n"
 "in diesem Format ausgecheckt; Dateien, die als binär (``BIN``) angegeben\n"
@@ -2403,6 +2246,12 @@
 "  native = LF"
 
 msgid ""
+".. note::\n"
+"   The rules will first apply when files are touched in the working\n"
+"   copy, e.g. by updating to null and back to tip to touch all files."
+msgstr ""
+
+msgid ""
 "The extension uses an optional ``[eol]`` section in your hgrc file\n"
 "(not the ``.hgeol`` file) for settings that control the overall\n"
 "behavior. There are two settings:"
@@ -2411,9 +2260,10 @@
 "Konfigurationsdatei (nicht die ``.hgeol``-Datei), um das systemweite\n"
 "Verhalten zu definieren. Es gibt zwei Einstellungen:"
 
+#, fuzzy
 msgid ""
 "- ``eol.native`` (default ``os.linesep``) can be set to ``LF`` or\n"
-"  ``CRLF`` override the default interpretation of ``native`` for\n"
+"  ``CRLF`` to override the default interpretation of ``native`` for\n"
 "  checkout. This can be used with :hg:`archive` on Unix, say, to\n"
 "  generate an archive where files have line endings for Windows."
 msgstr ""
@@ -2438,6 +2288,20 @@
 "  gutem Grund wechselnde Zeilenumbrüche haben."
 
 msgid ""
+"The extension provides ``cleverencode:`` and ``cleverdecode:`` filters\n"
+"like the deprecated win32text extension does. This means that you can\n"
+"disable win32text and enable eol and your filters will still work. You\n"
+"only need to these filters until you have prepared a ``.hgeol`` file."
+msgstr ""
+
+msgid ""
+"The ``win32text.forbid*`` hooks provided by the win32text extension\n"
+"have been unified into a single hook named ``eol.hook``. The hook will\n"
+"lookup the expected line endings from the ``.hgeol`` file, which means\n"
+"you must migrate to a ``.hgeol`` file first before using the hook."
+msgstr ""
+
+msgid ""
 "See :hg:`help patterns` for more information about the glob patterns\n"
 "used.\n"
 msgstr ""
@@ -2643,6 +2507,9 @@
 msgid "pass option to comparison program"
 msgstr "Aufrufparameter für das Vergleichsprogramm"
 
+msgid "revision"
+msgstr "Revision"
+
 msgid "change made by revision"
 msgstr "Von dieser Revision erzeugte Änderung"
 
@@ -2705,13 +2572,15 @@
 "    Um die Reihenfolge der Zusammenführung zu ändern kann --switch-parent\n"
 "    genutzt werden."
 
-msgid ""
-"    See :hg:`help dates` for a list of formats valid for -d/--date.\n"
-"    "
-msgstr ""
-"    Siehe :hg:`help dates` für eine Liste gültiger Datumsformate für\n"
-"    -d/--date.\n"
-"    "
+#, fuzzy
+msgid "    See :hg:`help dates` for a list of formats valid for -d/--date."
+msgstr ""
+"    Siehe 'hg help dates' für eine Liste gültiger Formate für -d/--date."
+
+msgid ""
+"    Returns 0 on success.\n"
+"    "
+msgstr ""
 
 msgid ""
 "working dir not at branch tip (use \"hg update\" to check out branch tip)"
@@ -2825,6 +2694,14 @@
 "    verzeichnisses verwendet, oder die Spitze des Archivs, falls keine\n"
 "    (die null-) Version geladen ist."
 
+msgid ""
+"    See :hg:`help dates` for a list of formats valid for -d/--date.\n"
+"    "
+msgstr ""
+"    Siehe :hg:`help dates` für eine Liste gültiger Datumsformate für\n"
+"    -d/--date.\n"
+"    "
+
 msgid "uncommitted merge - please provide a specific revision"
 msgstr ""
 "Nicht versionierte Zusammenführung - bitte gib eine bestimmte Revision an"
@@ -3451,9 +3328,11 @@
 "    # bevorzugt SVN- oder CVS-artige Standard-Platzhalterzuweisungen\n"
 "    svn = True"
 
-msgid ""
-"NOTE: the more specific you are in your filename patterns the less you\n"
-"lose speed in huge repositories."
+#, fuzzy
+msgid ""
+".. note::\n"
+"   The more specific you are in your filename patterns the less you\n"
+"   lose speed in huge repositories."
 msgstr ""
 "HINWEIS: Je genauer die Muster für Dateinamen sind, desto weniger\n"
 "Geschwindigkeit geht in großen Projektarchiven verloren."
@@ -3480,20 +3359,21 @@
 "    svnutcdate   \"2006-09-18 15:13:13Z\"\n"
 "    svnisodate   \"2006-09-18 08:13:13 -700 (Mon, 18 Sep 2006)\""
 
+#, fuzzy
 msgid ""
 "The default template mappings (view with :hg:`kwdemo -d`) can be\n"
 "replaced with customized keywords and templates. Again, run\n"
-":hg:`kwdemo` to control the results of your config changes."
+":hg:`kwdemo` to control the results of your configuration changes."
 msgstr ""
 "Die Standardzuweisungen von Vorlagen (einzusehen mit :hg:`kwdemo -d`)\n"
 "können mit angepassten Platzhaltern und Vorlagen ersetzt werden. Auch hier\n"
 "sollte :hg:`kwdemo` ausgeführt werden, um die Ergebnisse der eigenen\n"
 "Konfiguration zu testen."
 
-msgid ""
-"Before changing/disabling active keywords, run :hg:`kwshrink` to avoid\n"
-"the risk of inadvertently storing expanded keywords in the change\n"
-"history."
+#, fuzzy
+msgid ""
+"Before changing/disabling active keywords, you must run :hg:`kwshrink`\n"
+"to avoid storing expanded keywords in the change history."
 msgstr ""
 "Bevor aktive Platzhalter geändert/deaktiviert werden, sollte\n"
 ":hg:`kwshrink` ausgeführt werden, um die Gefahr von versehentlich\n"
@@ -3574,12 +3454,26 @@
 msgid "\textending current template maps\n"
 msgstr "\tErweitert die aktuellen Vorlagen-Zuweisungen\n"
 
-msgid "\toverriding default template maps\n"
+#, fuzzy
+msgid "\toverriding default svn keywordset\n"
+msgstr "\tÜberschreibt die aktuellen Vorlagen-Zuweisungen\n"
+
+#, fuzzy
+msgid "\toverriding default cvs keywordset\n"
 msgstr "\tÜberschreibt die aktuellen Vorlagen-Zuweisungen\n"
 
-msgid ""
-"\n"
-"\tconfiguration using default keyword template maps\n"
+#, fuzzy
+msgid ""
+"\n"
+"\tconfiguration using default svn keywordset\n"
+msgstr ""
+"\n"
+"\tKonfiguration mittels der Standard-Platzhalter-Zuweisungen\n"
+
+#, fuzzy
+msgid ""
+"\n"
+"\tconfiguration using default cvs keywordset\n"
 msgstr ""
 "\n"
 "\tKonfiguration mittels der Standard-Platzhalter-Zuweisungen\n"
@@ -3675,12 +3569,8 @@
 msgid "revert expanded keywords in the working directory"
 msgstr "Nimmt Ersetzungen im aktuellen Arbeitsverzeichnis wieder zurück"
 
-msgid ""
-"    Run before changing/disabling active keywords or if you experience\n"
-"    problems with :hg:`import` or :hg:`merge`."
-msgstr ""
-"    Führen Sie dies aus, bevor Platzhalter geändert/deaktiviert werden\n"
-"    oder wenn Sie Probleme bei :hg:`import` oder :hg:`merge` haben."
+msgid "    Must be run before changing/disabling active keywords."
+msgstr ""
 
 msgid ""
 "    kwshrink refuses to run if given files contain local changes.\n"
@@ -3893,6 +3783,10 @@
 msgid "patch %s is empty\n"
 msgstr "Patch %s ist leer\n"
 
+#, fuzzy
+msgid "repository commit failed"
+msgstr "Übernahme der Änderungen schlug fehl"
+
 msgid "patch failed, rejects left in working dir\n"
 msgstr "Patch schlug fehl, Fehlerabschnitte noch im Arbeitsverzeichnis\n"
 
@@ -3928,6 +3822,10 @@
 msgid "working directory revision is not qtip"
 msgstr "Revision des Arbeitsverzeichnisses ist nicht qtip"
 
+#, fuzzy, python-format
+msgid "uncommitted changes in subrepository %s"
+msgstr "Speichere Unterarchiv %s\n"
+
 msgid "local changes found, refresh first"
 msgstr "Lokale Änderungen gefunden. Führe zuerst \"qrefresh\" aus!"
 
@@ -3938,6 +3836,10 @@
 msgid "\"%s\" cannot be used as the name of a patch"
 msgstr "\"%s\" kann nicht als Patchname verwendet werden"
 
+#, fuzzy, python-format
+msgid "\"%s\" already exists as a directory"
+msgstr "%s existiert bereits"
+
 #, python-format
 msgid "patch \"%s\" already exists"
 msgstr "Patch \"%s\" existiert bereits"
@@ -3945,6 +3847,10 @@
 msgid "cannot manage merge changesets"
 msgstr "Zusammenführungen können nicht mit Patches verwaltet werden"
 
+#, fuzzy, python-format
+msgid "cannot write patch \"%s\": %s"
+msgstr "Fehlerhafter Patch %s %s"
+
 #, python-format
 msgid "error unlinking %s\n"
 msgstr "Fehler beim Löschen von %s\n"
@@ -3964,14 +3870,14 @@
 msgstr "Keine Patches in Serie\n"
 
 #, python-format
+msgid "qpush: %s is already at the top\n"
+msgstr "qpush: %s ist bereits an der Serienspitze\n"
+
+#, python-format
 msgid "cannot push to a previous patch: %s"
 msgstr "Kann Änderungen nicht in einen vorherigen Patch übertragen: %s"
 
 #, python-format
-msgid "qpush: %s is already at the top\n"
-msgstr "qpush: %s ist bereits an der Serienspitze\n"
-
-#, python-format
 msgid "guarded by %r"
 msgstr "bewacht durch %r"
 
@@ -3988,6 +3894,18 @@
 msgid "patch series already fully applied\n"
 msgstr "Patchserie bereits vollständig angewendet\n"
 
+#, fuzzy
+msgid "cannot use --exact and --move together"
+msgstr "Kann mit --parent nur Zusammenführung rückgängig machen"
+
+#, fuzzy
+msgid "cannot push --exact with applied patches"
+msgstr "kann bereits angewendeten Patch %s nicht löschen"
+
+#, fuzzy, python-format
+msgid "%s does not have a parent recorded"
+msgstr "%s ist kein Vorgänger von %s"
+
 msgid "please specify the patch to move"
 msgstr "Bitte geben Sie den zu verschiebenden Patch an"
 
@@ -4070,8 +3988,9 @@
 msgid "saved queue repository parents: %s %s\n"
 msgstr "Eltern der gespeicherten Reihe: %s %s\n"
 
-msgid "queue directory updating\n"
-msgstr "Aktualisiere Reihenverzeichnis\n"
+#, fuzzy
+msgid "updating queue directory\n"
+msgstr "Aktualisiere Arbeitsverzeichnis\n"
 
 msgid "Unable to load queue repository\n"
 msgstr "Archiv für Patch-Reihen kann nicht geladen werden\n"
@@ -4165,6 +4084,9 @@
 msgid "print the patches already applied"
 msgstr "Zeigt die bereits angewendeten Patches an"
 
+msgid "    Returns 0 on success."
+msgstr ""
+
 msgid "only one patch applied\n"
 msgstr "Nur ein Patch angewendet\n"
 
@@ -4234,13 +4156,17 @@
 msgid "    To import an existing patch while renaming it::"
 msgstr "    Um einen existierenden Patch zu importieren und umzubenennen::"
 
-msgid ""
-"      hg qimport -e existing-patch -n new-name\n"
-"    "
+#, fuzzy
+msgid "      hg qimport -e existing-patch -n new-name"
 msgstr ""
 "      hg qimport -e existierender-patch -n neuer-name\n"
 "    "
 
+msgid ""
+"    Returns 0 if import succeeded.\n"
+"    "
+msgstr ""
+
 msgid "init a new queue repository (DEPRECATED)"
 msgstr "Richtet ein neues Archiv für Patch-Reihen ein (VERALTET)"
 
@@ -4290,15 +4216,20 @@
 "    Das Quell-Patcharchiv wird standardmäßig in <quelle>/.hg/patches\n"
 "    gesucht. Verwenden Sie -p <url>, um dies zu ändern."
 
+#, fuzzy
 msgid ""
 "    The patch directory must be a nested Mercurial repository, as\n"
-"    would be created by :hg:`init --mq`.\n"
-"    "
+"    would be created by :hg:`init --mq`."
 msgstr ""
 "    Das Patchverzeichnis muss ein eingebettetes Mercurial-Archiv sein,\n"
 "    wie es von :hg:`init --mq` erzeugt werden würde.\n"
 "    "
 
+msgid ""
+"    Return 0 on success.\n"
+"    "
+msgstr ""
+
 msgid "versioned patch repository not found (see init --mq)"
 msgstr "Versioniertes Patch-Archiv nicht gefunden (siehe init --mq)"
 
@@ -4377,12 +4308,12 @@
 "    wird der Kopf des Patches leer und die Versionsmeldung '[mq]: PATCH' "
 "sein."
 
+#, fuzzy
 msgid ""
 "    Use the -g/--git option to keep the patch in the git extended diff\n"
 "    format. Read the diffs help topic for more information on why this\n"
 "    is important for preserving permission changes and copy/rename\n"
-"    information.\n"
-"    "
+"    information."
 msgstr ""
 "    Verwenden Sie den Schalter -g/--git, um den Patch im erweiterten git-"
 "Format\n"
@@ -4392,6 +4323,11 @@
 "wichtig\n"
 "    ist."
 
+msgid ""
+"    Returns 0 on successful creation of a new patch.\n"
+"    "
+msgstr ""
+
 msgid "update the current patch"
 msgstr "Aktualisiert den aktuellen Patch"
 
@@ -4429,12 +4365,12 @@
 "    fehlschlägt, wird eine Sicherungskopie in ``.hg/last-message.txt`` "
 "abgelegt."
 
+#, fuzzy
 msgid ""
 "    hg add/remove/copy/rename work as usual, though you might want to\n"
 "    use git-style patches (-g/--git or [diff] git=1) to track copies\n"
 "    and renames. See the diffs help topic for more information on the\n"
-"    git diff format.\n"
-"    "
+"    git diff format."
 msgstr ""
 "    hg add/remove/copy/rename funktionieren weiter wie gewohnt, obwohl Sie\n"
 "    vermutliche Patches im git-Format (-g/--git oder [diff] git=1) "
@@ -4461,12 +4397,12 @@
 "damit,\n"
 "    wie der aktuelle Patch nach einem Aufruf von qrefresh aussehen würde)."
 
+#, fuzzy
 msgid ""
 "    Use :hg:`diff` if you only want to see the changes made since the\n"
 "    last qrefresh, or :hg:`export qtip` if you want to see changes\n"
 "    made by the current patch without including changes made since the\n"
-"    qrefresh.\n"
-"    "
+"    qrefresh."
 msgstr ""
 "    Verwenden Sie :hg:`diff`, wenn Sie nur die Änderungen seit dem letzten\n"
 "    qrefresh sehen möchten, oder :hg:`export qtip`, wenn Sie nur die "
@@ -4498,9 +4434,10 @@
 "Anschluss\n"
 "    nicht entfernt."
 
+#, fuzzy
 msgid ""
 "    The header for each folded patch will be concatenated with the\n"
-"    current patch header, separated by a line of '* * *'."
+"    current patch header, separated by a line of ``* * *``."
 msgstr ""
 "    Die Kopfzeilen der einzelnen Patches werden den den Kopf des aktuellen\n"
 "    Patches angehängt, getrennt mit einer Zeile aus '* * *'."
@@ -4545,22 +4482,24 @@
 "wenn er\n"
 "    entsprechend aktiviert wurde."
 
+#, fuzzy
 msgid ""
 "    With no arguments, print the currently active guards.\n"
-"    With arguments, set guards for the named patch.\n"
-"    NOTE: Specifying negative guards now requires '--'."
-msgstr ""
-"    Ohne Argumente werden die aktuell aktiven Wächter ausgegeben. Mit\n"
-"    Argumenten werden die Wächter für den angegebenen Patch gesetzt. "
-"HINWEIS:\n"
-"    Die Angabe negativer Wächter erfordert jetzt '--'."
+"    With arguments, set guards for the named patch."
+msgstr ""
+"    Ohne Argumente werden die aktuell aktiven Wächter ausgegeben.\n"
+"    Mit einem Argument wird der aktuelle Wächter gesetzt."
+
+msgid ""
+"    .. note::\n"
+"       Specifying negative guards now requires '--'."
+msgstr ""
 
 msgid "    To set guards on another patch::"
 msgstr "    Um die Wächter eines anderen Patches zu setzen::"
 
-msgid ""
-"      hg qguard other.patch -- +2.6.17 -stable\n"
-"    "
+#, fuzzy
+msgid "      hg qguard other.patch -- +2.6.17 -stable"
 msgstr ""
 "      hg qguard anderer.patch -- +2.6.17 -stable\n"
 "    "
@@ -4581,15 +4520,20 @@
 msgid "push the next patch onto the stack"
 msgstr "Schiebt den nächsten Patch auf den Stapel"
 
+#, fuzzy
 msgid ""
 "    When -f/--force is applied, all local changes in patched files\n"
-"    will be lost.\n"
-"    "
+"    will be lost."
 msgstr ""
 "    Wenn -f/--force angegeben ist, werden alle lokalen Änderungen in den\n"
 "    gepatchten Dateien verlorengehen.\n"
 "    "
 
+msgid ""
+"    Return 0 on succces.\n"
+"    "
+msgstr ""
+
 msgid "no saved queues found, please use -n\n"
 msgstr "Keine gespeicherten Reihen gefunden, bitte benutze -n\n"
 
@@ -4600,11 +4544,11 @@
 msgid "pop the current patch off the stack"
 msgstr "Holt den aktuellen Patch vom Stapel herunter"
 
+#, fuzzy
 msgid ""
 "    By default, pops off the top of the patch stack. If given a patch\n"
 "    name, keeps popping off patches until the named patch is at the\n"
-"    top of the stack.\n"
-"    "
+"    top of the stack."
 msgstr ""
 "    Standardmäßig wird der oberste Patch vom Stapel genommen. Wenn ein\n"
 "    Patchname angegeben ist, wird solange vom Stapel heruntergenommen, bis\n"
@@ -4694,15 +4638,19 @@
 "    lokalen Versionsnummern sich für gewöhnlich nach dem Wiederherstellen\n"
 "    ändern werden."
 
+#, fuzzy
 msgid ""
 "    Use the --no-backup option to discard the backup bundle once the\n"
-"    operation completes.\n"
-"    "
+"    operation completes."
 msgstr ""
 "    Benutzen Sie den Schalter --no-backup, um die Bündel zu entfernen,\n"
 "    wenn die Operation abgeschlossen ist.\n"
 "    "
 
+#, fuzzy
+msgid "empty revision set"
+msgstr "Revisionen ausgeben"
+
 msgid "set or print guarded patches to push"
 msgstr "Setzt die zu übertragenen bewachten Patches oder gibt sie aus"
 
@@ -4841,11 +4789,11 @@
 "    Kontrolle von mq entfernt. Ansonsten müssen die angegebenen Revisionen\n"
 "    an der Basis des Stapels der angewandten Patches liegen."
 
+#, fuzzy
 msgid ""
 "    This can be especially useful if your changes have been applied to\n"
 "    an upstream repository, or if you are about to push your changes\n"
-"    to upstream.\n"
-"    "
+"    to upstream."
 msgstr ""
 "    Dies kann insbes. nützlich sein, wenn Ihre Änderungen in einem\n"
 "    vorgelagerten Projektarchiv angewandt wurden, oder wenn Sie Ihre\n"
@@ -4892,11 +4840,11 @@
 "die\n"
 "    neue Reihe nur erzeugt und das Wechseln wird fehlschlagen."
 
+#, fuzzy
 msgid ""
 "    To delete an existing queue, use --delete. You cannot delete the "
 "currently\n"
-"    active queue.\n"
-"    "
+"    active queue."
 msgstr ""
 "    Um eine bestehende Reihe zu entfernen, benutzen Sie --delete. Sie können "
 "die\n"
@@ -5012,7 +4960,8 @@
 msgid "stop managing a revision (DEPRECATED)"
 msgstr "Hört auf, eine Revision zu verwalten (VERALTET)"
 
-msgid "hg qdelete [-k] [-r REV]... [PATCH]..."
+#, fuzzy
+msgid "hg qdelete [-k] [PATCH]..."
 msgstr "hg qdelete [-k] [-r REV]... [PATCH]..."
 
 msgid "edit patch header"
@@ -5045,6 +4994,9 @@
 msgid "import file in patch directory"
 msgstr "Import eine Datei in das Patchverzeichnis"
 
+msgid "NAME"
+msgstr "NAME"
+
 msgid "name of patch file"
 msgstr "Name der Patchdatei"
 
@@ -5105,11 +5057,17 @@
 msgid "forget any local changes to patched files"
 msgstr "Vergisst alle lokalen Änderungen an gepatchten Dateien"
 
-msgid "hg qpop [-a] [-n NAME] [-f] [PATCH | INDEX]"
+#, fuzzy
+msgid "hg qpop [-a] [-f] [PATCH | INDEX]"
 msgstr "hg qpop [-a] [-n NAME] [-f] [PATCH | INDEX]"
 
-msgid "apply if the patch has rejects"
-msgstr "Wendet Patch trotz Fehlerabschnitten an"
+#, fuzzy
+msgid "apply on top of local changes"
+msgstr "Wendet eine oder mehrere Änderungsgruppendateien an"
+
+#, fuzzy
+msgid "apply the target patch to its recorded parent"
+msgstr "Legt die benannten Patches mit dem aktuellen Patch zusammen"
 
 msgid "list patch name in commit text"
 msgstr "Listet den Patchnamen in der Versionsmeldung auf"
@@ -5126,7 +5084,8 @@
 msgid "reorder patch series and apply only the patch"
 msgstr "Sortiert die Patch-Serie neu und wendet nur den Patch an"
 
-msgid "hg qpush [-f] [-l] [-a] [-m] [-n NAME] [--move] [PATCH | INDEX]"
+#, fuzzy
+msgid "hg qpush [-f] [-l] [-a] [--move] [PATCH | INDEX]"
 msgstr "hg qpush [-f] [-l] [-a] [-m] [-n NAME] [--move] [PATCH | INDEX]"
 
 msgid "refresh only files already in the patch and specified files"
@@ -5218,7 +5177,11 @@
 msgid "no backups (DEPRECATED)"
 msgstr "Keine Sicherungskopien (VERALTET)"
 
-msgid "hg strip [-f] [-n] REV..."
+msgid "do not modify working copy during strip"
+msgstr ""
+
+#, fuzzy
+msgid "hg strip [-k] [-f] [-n] REV..."
 msgstr "hg strip [-f] [-n] REV..."
 
 msgid "hg qtop [-s]"
@@ -5338,8 +5301,8 @@
 "  template = ...        # Vorlagendatei zur Formatierung der E-Mail\n"
 "  incoming = ...        # Vorlage für den incoming-Hook\n"
 "  changegroup = ...     # Vorlage für den changegroup-Hook\n"
-"  maxdiff = 300         # max. Anzahl an Diffzeilen in E-Mails (0=keine, -"
-"1=alle)\n"
+"  maxdiff = 300         # max. Anzahl an Diffzeilen in E-Mails (0=keine, "
+"-1=alle)\n"
 "  maxsubject = 67       # Betreffzeilen bei dieser Länge abschneiden\n"
 "  diffstat = True       # Diffstat vor den Diffzeilen einfügen?\n"
 "  sources = serve       # benachrichtige nur, wenn die Quelle in der Liste "
@@ -5432,9 +5395,10 @@
 msgstr ""
 "Um den zu verwendenden Pager zu setzen, setzen Sie die folgende Variable::"
 
+#, fuzzy
 msgid ""
 "  [pager]\n"
-"  pager = LESS='FSRX' less"
+"  pager = less -FRSX"
 msgstr ""
 "  [pager]\n"
 "  pager = LESS='FSRX' less"
@@ -5500,13 +5464,24 @@
 msgid "If pager.attend is present, pager.ignore will be ignored."
 msgstr "Wenn pager.attend vorhanden ist, wird pager.ignore ignoriert."
 
+#, fuzzy
 msgid ""
 "To ignore global commands like :hg:`version` or :hg:`help`, you have\n"
-"to specify them in your user configuration file.\n"
+"to specify them in your user configuration file."
 msgstr ""
 "Um globale Befehle wie :hg:`version` oder :hg:`help` zu ignorieren,\n"
 "müssen Sie diese in Ihrer Konfigurationsdatei angeben.\n"
 
+msgid ""
+"The --pager=... option can also be used to control when the pager is\n"
+"used. Use a boolean value like yes, no, on, off, or use auto for\n"
+"normal behavior.\n"
+msgstr ""
+
+#, fuzzy
+msgid "when to paginate (boolean, always, auto, or never)"
+msgstr "Wann soll eingefärbt werden (boolescher Wert, always, auto oder never)"
+
 msgid "interpret suffixes to refer to ancestor revisions"
 msgstr "Interpretiert Suffixe, um Vorfahren zu referenzieren"
 
@@ -5585,15 +5560,6 @@
 "und -archiven als zusammengehörig angezeigt werden."
 
 msgid ""
-"With the -d/--diffstat or -c/--confirm options, you will be presented\n"
-"with a final summary of all messages and asked for confirmation before\n"
-"the messages are sent."
-msgstr ""
-"Bei der Angabe der Optionen -d/--diffstat oder -c/--confirm wird eine\n"
-"abschließende Zusammenfassung aller Nachrichten angezeigt und um\n"
-"Bestätigung gebeten, bevor die Nachrichten versendet werden."
-
-msgid ""
 "To configure other defaults, add a section like this to your hgrc\n"
 "file::"
 msgstr ""
@@ -5630,52 +5596,6 @@
 "werden."
 
 msgid ""
-"To avoid sending patches prematurely, it is a good idea to first run\n"
-"the :hg:`email` command with the \"-n\" option (test only). You will be\n"
-"prompted for an email recipient address, a subject and an introductory\n"
-"message describing the patches of your patchbomb. Then when all is\n"
-"done, patchbomb messages are displayed. If the PAGER environment\n"
-"variable is set, your pager will be fired up once for each patchbomb\n"
-"message, so you can verify everything is alright."
-msgstr ""
-"Um das Versenden vorfrüher Patches zu verhindern, sollte man :hg:`email`\n"
-"mit der Option \"-n\" (Testmodus) aufrufen. Sie werden nach einer\n"
-"Empfängeradresse, einem Betreff und einer einleitenden Nachricht gefragt,\n"
-"die die Patches Ihrer Patchbombe beschreibt. Danach werden die\n"
-"Patchbombennachrichten angezeigt. Wenn die PAGER-Umgebungsvariable gesetzt\n"
-"ist, wird Ihr Pager für jede Patchbombe einzeln aufgerufen, so dass alles\n"
-"überprüft werden kann."
-
-msgid ""
-"The -m/--mbox option is also very useful. Instead of previewing each\n"
-"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::"
-msgstr ""
-"Alternativ werden die Nachrichten mit der Option -m/--mbox in eine Datei\n"
-"geschrieben, die von jedem Emailprogramm, welches das UNIX-mbox-Format\n"
-"unterstützt, geprüft werden, zum Beispiel mit mutt::"
-
-msgid "  % mutt -R -f mbox"
-msgstr ""
-
-msgid ""
-"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::"
-msgstr ""
-"Mit ``formail`` (häufig durch das procmail-Paket installiert) können die\n"
-"Nachrichten dann aus der mbox-Datei versendet werden::"
-
-msgid "  % formail -s sendmail -bm -t < mbox"
-msgstr ""
-
-msgid "That should be all. Now your patchbomb is on its way out."
-msgstr ""
-"Das sollte es gewesen sein. Nun ist ihre Patchbombe in die Welt gesetzt."
-
-msgid ""
 "You can also either configure the method option in the email section\n"
 "to be a sendmail compatible mailer or fill out the [smtp] section so\n"
 "that the patchbomb extension can automatically send patchbombs\n"
@@ -5712,17 +5632,29 @@
 "    Each patch email has a Subject line of \"[PATCH M of N] ...\", using\n"
 "    the first line of the changeset description as the subject text.\n"
 "    The message contains two or three parts. First, the changeset\n"
-"    description. Next, (optionally) if the diffstat program is\n"
-"    installed and -d/--diffstat is used, the result of running\n"
-"    diffstat on the patch. Finally, the patch itself, as generated by\n"
-"    :hg:`export`."
-msgstr ""
-"    Die Betreffzeile jeder Patch-Email ist \"[PATCH M of N]\", gefolgt von\n"
-"    der ersten Zeile der Versionsmeldung. Im Körper folgen zwei oder drei\n"
-"    drei Teilen: Eine Beschreibung des Änderungssatzes, dann optional\n"
-"    das Ergebnis von diffstat des Patches (wenn das Programm diffstat\n"
-"    installiert ist und der Schalter -d/--diffstat angegeben ist) und\n"
-"    schliesslich der Patch selber, wie durch \"hg export\" generiert."
+"    description."
+msgstr ""
+"Der Betreff jeder Patch-E-Mail ist \"[PATCH M of N] ...\", mit der ersten\n"
+"Zeile der Änderungszusammenfassung als weiterem Text. Die Nachricht\n"
+"besteht aus zwei oder drei Teilen:"
+
+msgid ""
+"    With the -d/--diffstat option, if the diffstat program is\n"
+"    installed, the result of running diffstat on the patch is inserted."
+msgstr ""
+
+msgid "    Finally, the patch itself, as generated by :hg:`export`."
+msgstr ""
+
+#, fuzzy
+msgid ""
+"    With the -d/--diffstat or -c/--confirm options, you will be presented\n"
+"    with a final summary of all messages and asked for confirmation before\n"
+"    the messages are sent."
+msgstr ""
+"Bei der Angabe der Optionen -d/--diffstat oder -c/--confirm wird eine\n"
+"abschließende Zusammenfassung aller Nachrichten angezeigt und um\n"
+"Bestätigung gebeten, bevor die Nachrichten versendet werden."
 
 msgid ""
 "    By default the patch is included as text in the email body for\n"
@@ -5751,6 +5683,40 @@
 "    Durch -b/--bundle werden Änderungssätze wie durch --outgoing gewählt,\n"
 "    aber in einer einzelnen Email als Binärbündel (als Anhang) gesendet."
 
+#, fuzzy
+msgid ""
+"    With -m/--mbox, instead of previewing each patchbomb message in a\n"
+"    pager or sending the messages directly, it will create a UNIX\n"
+"    mailbox file with the patch emails. This mailbox file can be\n"
+"    previewed with any mail user agent which supports UNIX mbox\n"
+"    files."
+msgstr ""
+"Alternativ werden die Nachrichten mit der Option -m/--mbox in eine Datei\n"
+"geschrieben, die von jedem Emailprogramm, welches das UNIX-mbox-Format\n"
+"unterstützt, geprüft werden, zum Beispiel mit mutt::"
+
+#, fuzzy
+msgid ""
+"    With -n/--test, all steps will run, but mail will not be sent.\n"
+"    You will be prompted for an email recipient address, a subject and\n"
+"    an introductory message describing the patches of your patchbomb.\n"
+"    Then when all is done, patchbomb messages are displayed. If the\n"
+"    PAGER environment variable is set, your pager will be fired up once\n"
+"    for each patchbomb message, so you can verify everything is alright."
+msgstr ""
+"Um das Versenden vorfrüher Patches zu verhindern, sollte man :hg:`email`\n"
+"mit der Option \"-n\" (Testmodus) aufrufen. Sie werden nach einer\n"
+"Empfängeradresse, einem Betreff und einer einleitenden Nachricht gefragt,\n"
+"die die Patches Ihrer Patchbombe beschreibt. Danach werden die\n"
+"Patchbombennachrichten angezeigt. Wenn die PAGER-Umgebungsvariable gesetzt\n"
+"ist, wird Ihr Pager für jede Patchbombe einzeln aufgerufen, so dass alles\n"
+"überprüft werden kann."
+
+msgid ""
+"    In case email sending fails, you will find a backup of your series\n"
+"    introductory message in ``.hg/last-email.txt``."
+msgstr ""
+
 msgid ""
 "      hg email -r 3000          # send patch 3000 only\n"
 "      hg email -r 3000 -r 3001  # send patches 3000 and 3001\n"
@@ -5786,6 +5752,15 @@
 "      hg email -b -r 3000 ZIEL  # bündelt Vorfahren von 3000 nicht im ZIEL"
 
 msgid ""
+"      hg email -o -m mbox &&    # generate an mbox file...\n"
+"        mutt -R -f mbox         # ... and view it with mutt\n"
+"      hg email -o -m mbox &&    # generate an mbox file ...\n"
+"        formail -s sendmail \\   # ... and use formail to send from the "
+"mbox\n"
+"          -bm -t < mbox         # ... using sendmail"
+msgstr ""
+
+msgid ""
 "    Before using this command, you will need to enable email in your\n"
 "    hgrc. See the [email] section in hgrc(5) for details.\n"
 "    "
@@ -5794,6 +5769,13 @@
 "    [email] der Konfiguration aktiviert sein. Siehe hgrc(5) für Details.\n"
 "    "
 
+#, python-format
+msgid "comparing with %s\n"
+msgstr "Vergleiche mit %s\n"
+
+msgid "no changes found\n"
+msgstr "Keine Änderungen gefunden\n"
+
 msgid "specify at least one changeset with -r or -o"
 msgstr "Mindestens ein Änderungssatz mit -r oder -o wird benötigt"
 
@@ -5945,11 +5927,12 @@
 msgid "The following settings are available::"
 msgstr "Die folgenden Einstellungen sind verfügbar::"
 
+#, fuzzy
 msgid ""
 "  [progress]\n"
 "  delay = 3 # number of seconds (float) before showing the progress bar\n"
 "  refresh = 0.1 # time in seconds between refreshes of the progress bar\n"
-"  format = topic bar number # format of the progress bar\n"
+"  format = topic bar number estimate # format of the progress bar\n"
 "  width = <none> # if set, the maximum width of the progress information\n"
 "                 # (that is, min(width, term width) will be used)\n"
 "  clear-complete = True # clear the progress bar after it's done\n"
@@ -5960,7 +5943,8 @@
 "  [progress]\n"
 "  delay = 3 # Verzögerung in Sekunden (float),\n"
 "            # bevor der Fortschrittsbalken gezeigt wird\n"
-"  refresh = 0.1 # Sekunden zwischen Aktualisierungen des Fortschrittsbalkens\n"
+"  refresh = 0.1 # Sekunden zwischen Aktualisierungen des "
+"Fortschrittsbalkens\n"
 "  format = topic bar number # Format des Fortschrittsbalkens\n"
 "  width = <none> # Maximalbreite der Fortschrittsinformation\n"
 "                 # (damit wird min(width, term width) verwendet)\n"
@@ -5969,17 +5953,49 @@
 "  assume-tty = False # Mit True wird IMMER ein Fortschrittsbalken gezeigt,\n"
 "                     # es sei denn disable ist auf True gesetzt"
 
-msgid ""
-"Valid entries for the format field are topic, bar, number, unit, and\n"
-"item. item defaults to the last 20 characters of the item, but this\n"
-"can be changed by adding either ``-<num>`` which would take the last\n"
-"num characters, or ``+<num>`` for the first num characters.\n"
+#, fuzzy
+msgid ""
+"Valid entries for the format field are topic, bar, number, unit,\n"
+"estimate, and item. item defaults to the last 20 characters of the\n"
+"item, but this can be changed by adding either ``-<num>`` which would\n"
+"take the last num characters, or ``+<num>`` for the first num\n"
+"characters.\n"
 msgstr ""
 "Gültige Einträge für das Format-Feld sind topic, bar, number, unit\n"
 "und item. item zeigt normalerweise die letzten 20 Zeichen des Objektes.\n"
 "Mit dem Zusatz ``-<num>`` oder ``+<num>`` werden stattdessen entweder \n"
 "die letzten (-) oder die ersten (+) num Zeichen gezeigt.\n"
 
+#. i18n: format XX seconds as "XXs"
+#, python-format
+msgid "%02ds"
+msgstr ""
+
+#. i18n: format X minutes and YY seconds as "XmYYs"
+#, python-format
+msgid "%dm%02ds"
+msgstr ""
+
+#. i18n: format X hours and YY minutes as "XhYYm"
+#, python-format
+msgid "%dh%02dm"
+msgstr ""
+
+#. i18n: format X days and YY hours as "XdYYh"
+#, python-format
+msgid "%dd%02dh"
+msgstr ""
+
+#. i18n: format X weeks and YY days as "XwYYd"
+#, python-format
+msgid "%dw%02dd"
+msgstr ""
+
+#. i18n: format X years and YY weeks as "XyYYw"
+#, python-format
+msgid "%dy%02dw"
+msgstr ""
+
 msgid "command to delete untracked files from the working directory"
 msgstr "Löscht nicht versionierte Dateien aus dem Arbeitsverzeichnis"
 
@@ -6088,7 +6104,8 @@
 "http://mercurial.selenic.com/wiki/RebaseExtension\n"
 
 msgid "move changeset (and descendants) to a different branch"
-msgstr "Verschiebt Versionen (und ihre Nachfolger) auf einen abweichenden Zweig"
+msgstr ""
+"Verschiebt Versionen (und ihre Nachfolger) auf einen abweichenden Zweig"
 
 msgid ""
 "    Rebase uses repeated merging to graft changesets from one part of\n"
@@ -6096,7 +6113,8 @@
 "    useful for linearizing *local* changes relative to a master\n"
 "    development tree."
 msgstr ""
-"    Rebase nutzt wiederholtes Zusammenführen um Versionen von einem Teil der\n"
+"    Rebase nutzt wiederholtes Zusammenführen um Versionen von einem Teil "
+"der\n"
 "    Versionshistorie auf einen anderen zu pfropfen. Dies ist nützlich, um\n"
 "    *lokale* Änderungen in einem Hauptentwicklunszweig zu linearisieren."
 
@@ -6202,11 +6220,11 @@
 msgid "rebasing"
 msgstr "Revision"
 
-#, fuzzy
-msgid " changesets"
-msgstr "Füge Änderungssätze hinzu\n"
-
-msgid "fix unresolved conflicts with hg resolve then run hg rebase --continue"
+msgid "changesets"
+msgstr "Änderungssätze"
+
+#, fuzzy
+msgid "unresolved conflicts (see hg resolve, then hg rebase --continue)"
 msgstr ""
 "Behebe ungelöste Konflikte mit hg resolve, dann führe hg rebase --continue "
 "aus"
@@ -6365,11 +6383,6 @@
 "    Falls keine Liste von Dateien angegeben wird, gelten alle von\n"
 "    \"hg status\" gemeldeten Änderungen als Kandidaten für 'record'."
 
-#, fuzzy
-msgid "    See :hg:`help dates` for a list of formats valid for -d/--date."
-msgstr ""
-"    Siehe 'hg help dates' für eine Liste gültiger Formate für -d/--date."
-
 msgid ""
 "    You will be prompted for whether to record changes to each\n"
 "    modified file, and for files with multiple changes, for each\n"
@@ -6416,7 +6429,7 @@
 msgstr "Nicht-interaktive Ausführung, nutze stattdessen 'commit'"
 
 #, fuzzy
-msgid "cannot partially commit a merge (use hg commit instead)"
+msgid "cannot partially commit a merge (use \"hg commit\" instead)"
 msgstr ""
 "Ein Merge kann nicht teilweise versioniert werden (Gib keine Dateien oder "
 "Muster an)"
@@ -6424,9 +6437,6 @@
 msgid "no changes to record\n"
 msgstr "Keine Änderungen zu übernehmen\n"
 
-msgid "patch failed to apply"
-msgstr "Patch schlug fehl"
-
 msgid "hg record [OPTION]... [FILE]..."
 msgstr "hg record [OPTION]... [DATEI]..."
 
@@ -6505,9 +6515,6 @@
 msgid "not linkable: %s\n"
 msgstr "fester Verweis nicht möglich: %s\n"
 
-msgid " files"
-msgstr " Dateien"
-
 #, fuzzy
 msgid "pruning"
 msgstr "Führe aus: %s\n"
@@ -6594,15 +6601,16 @@
 msgstr ""
 
 msgid ""
-"    NOTE: using rollback or extensions that destroy/modify history\n"
-"    (mq, rebase, etc.) can cause considerable confusion with shared\n"
-"    clones. In particular, if two shared clones are both updated to\n"
-"    the same changeset, and one of them destroys that changeset with\n"
-"    rollback, the other clone will suddenly stop working: all\n"
-"    operations will fail with \"abort: working directory has unknown\n"
-"    parent\". The only known workaround is to use debugsetparents on\n"
-"    the broken clone to reset it to a changeset that still exists\n"
-"    (e.g. tip).\n"
+"    .. note::\n"
+"       using rollback or extensions that destroy/modify history (mq,\n"
+"       rebase, etc.) can cause considerable confusion with shared\n"
+"       clones. In particular, if two shared clones are both updated to\n"
+"       the same changeset, and one of them destroys that changeset\n"
+"       with rollback, the other clone will suddenly stop working: all\n"
+"       operations will fail with \"abort: working directory has unknown\n"
+"       parent\". The only known workaround is to use debugsetparents on\n"
+"       the broken clone to reset it to a changeset that still exists\n"
+"       (e.g. tip).\n"
 "    "
 msgstr ""
 
@@ -6759,6 +6767,14 @@
 msgid "outstanding local changes"
 msgstr ""
 
+#, fuzzy
+msgid ""
+"``transplanted(set)``\n"
+"    Transplanted changesets in set."
+msgstr ""
+"``p1(set)``\n"
+"  Erster Vorfahr der Änderungssätze in set."
+
 msgid "pull patches from REPO"
 msgstr ""
 
@@ -6823,11 +6839,13 @@
 msgid "Note that there are some limitations on using this extension:"
 msgstr ""
 
-msgid "- You should use single encoding in one repository."
-msgstr ""
-
-msgid ""
-"\n"
+msgid ""
+"- You should use single encoding in one repository.\n"
+"- If the repository path ends with 0x5c, .hg/hgrc cannot be read.\n"
+"- win32mbcs is not compatible with fixutf8 extension."
+msgstr ""
+
+msgid ""
 "By default, win32mbcs uses encoding.encoding decided by Mercurial.\n"
 "You can specify the encoding by config option::"
 msgstr ""
@@ -6943,6 +6961,14 @@
 "** = %sdecode:\n"
 msgstr ""
 
+#, fuzzy
+msgid ""
+"win32text is deprecated: http://mercurial.selenic.com/wiki/"
+"Win32TextExtension\n"
+msgstr ""
+"Weitere Informationen:\n"
+"http://mercurial.selenic.com/wiki/RebaseExtension\n"
+
 msgid "discover and advertise repositories on the local network"
 msgstr ""
 
@@ -6982,6 +7008,21 @@
 msgid "unknown archive type '%s'"
 msgstr "Unbekannter Archivtyp '%s'"
 
+msgid "archiving"
+msgstr ""
+
+#, python-format
+msgid "bookmark '%s' contains illegal character"
+msgstr "Lesezeichen '%s' enthält illegale Zeichen"
+
+#, fuzzy
+msgid "searching for changed bookmarks\n"
+msgstr "Suche nach Änderungen\n"
+
+#, fuzzy
+msgid "no changed bookmarks found\n"
+msgstr "Keine Änderungen gefunden\n"
+
 msgid "invalid changegroup"
 msgstr ""
 
@@ -7031,9 +7072,6 @@
 msgid "limit must be positive"
 msgstr "Log-Grenzwert `limit` muss positiv sein"
 
-msgid "too many revisions specified"
-msgstr "Zu viele Revisionen angegeben"
-
 #, python-format
 msgid "invalid format spec '%%%s' in output filename"
 msgstr "Ungültiges Format '%%%s' für den Namen der Ausgabedatei"
@@ -7052,6 +7090,12 @@
 "Interpretiere die Entfernung von %s als Umbenennung in %s (%d%% ähnlich)\n"
 
 #, python-format
+msgid "%s has not been committed yet, so no copy data will be stored for %s.\n"
+msgstr ""
+"%s ist nicht im Archiv, daher gilt %s als neu hinzugefügt (nicht als "
+"kopiert).\n"
+
+#, python-format
 msgid "%s: not copying - file is not managed\n"
 msgstr "%s kann nicht kopiert werden - steht nicht unter Versionskontrolle\n"
 
@@ -7091,12 +7135,6 @@
 msgid "copying %s to %s\n"
 msgstr "Kopiere %s nach %s\n"
 
-#, python-format
-msgid "%s has not been committed yet, so no copy data will be stored for %s.\n"
-msgstr ""
-"%s ist nicht im Archiv, daher gilt %s als neu hinzugefügt (nicht als "
-"kopiert).\n"
-
 msgid "no source or destination specified"
 msgstr "Weder Quelle noch Ziel angegeben"
 
@@ -7128,6 +7166,10 @@
 msgstr "Zweig:           %s\n"
 
 #, python-format
+msgid "bookmark:    %s\n"
+msgstr "Lesezeichen:     %s\n"
+
+#, python-format
 msgid "tag:         %s\n"
 msgstr "Marke:           %s\n"
 
@@ -7303,9 +7345,10 @@
 "    Füge alle neuen Dateien hinzu und lösche alle fehlenden Dateien aus\n"
 "    dem Projektarchiv."
 
+#, fuzzy
 msgid ""
 "    New files are ignored if they match any of the patterns in\n"
-"    .hgignore. As with add, these changes take effect at the next\n"
+"    ``.hgignore``. As with add, these changes take effect at the next\n"
 "    commit."
 msgstr ""
 "    Neue Dateien werden ignoriert, wenn sie einem der Muster aus .hgignore\n"
@@ -7367,11 +7410,6 @@
 "    mit unerwünschtem Ergebnis.\n"
 "    "
 
-msgid ""
-"    Returns 0 on success.\n"
-"    "
-msgstr ""
-
 msgid "at least one filename or pattern is required"
 msgstr "Mindestens ein Dateiname oder Muster benötigt"
 
@@ -7450,35 +7488,31 @@
 msgid "reverse effect of earlier changeset"
 msgstr "Macht einen vorangegangen Änderungssatz rückgängig"
 
-msgid ""
-"    Commit the backed out changes as a new changeset. The new\n"
-"    changeset is a child of the backed out changeset."
-msgstr ""
-"    Bereits vollzogene Änderungen werden noch einmal rückwärts angewendet\n"
-"    und als neuer Änderungssatz (als Kind des rückgängig gemachten) "
-"übernommen."
-
-msgid ""
-"    If you backout a changeset other than the tip, a new head is\n"
-"    created. This head will be the new tip and you should merge this\n"
-"    backout changeset with another head."
-msgstr ""
-"    Soll ein anderer Änderungssatz als die Spitze (tip) zurückgezogen "
-"werden,\n"
-"    so wird ein neuer Kopf erzeugt und dieser ist die neue Spitze."
-
-msgid ""
-"    The --merge option remembers the parent of the working directory\n"
-"    before starting the backout, then merges the new head with that\n"
-"    changeset afterwards. This saves you from doing the merge by hand.\n"
-"    The result of this merge is not committed, as with a normal merge."
-msgstr ""
-"    Die dadurch notwendige Zusammenführung kann durch die Option --merge\n"
-"    automatisch mit der Vorgängerversion des Arbeitsverzeichnisses "
-"durchgeführt\n"
-"    werden. Das Resultat dieser Zusammenführung wird wie üblich nicht "
-"sofort\n"
-"    übernommen, sondern existiert als lokale Änderung."
+#, fuzzy
+msgid ""
+"    Prepare a new changeset with the effect of REV undone in the\n"
+"    current working directory."
+msgstr "Setzt die Vorgängerversionen des Arbeitsverzeichnisses manuell"
+
+msgid ""
+"    If REV is the parent of the working directory, then this changeset\n"
+"    is committed automatically. Otherwise, hg needs to merge the\n"
+"    changes and the merged result is left uncommitted."
+msgstr ""
+
+msgid ""
+"    By default, the pending changeset will have one parent,\n"
+"    maintaining a linear history. With --merge, the pending changeset\n"
+"    will instead have two parents: the old parent of the working\n"
+"    directory and a child of REV that simply undoes REV."
+msgstr ""
+
+msgid ""
+"    Before version 1.7, the default behavior was equivalent to\n"
+"    specifying --merge followed by :hg:`update --clean .` to cancel\n"
+"    the merge and leave the child of REV as a head to be merged\n"
+"    separately."
+msgstr ""
 
 msgid "please specify just one revision"
 msgstr "Bitte nur eine Revision angeben"
@@ -7510,12 +7544,6 @@
 msgid "merging with changeset %s\n"
 msgstr "Führe mit Änderungssatz %s zusammen\n"
 
-msgid "the backout changeset is a new head - do not forget to merge\n"
-msgstr "Neuen Kopf erstellt - Zusammenführung nicht vergessen\n"
-
-msgid "(use \"backout --merge\" if you want to auto-merge)\n"
-msgstr "(nutze \"backout --merge\" für eine automatische Zusammenführung)\n"
-
 msgid "subdivision search of changesets"
 msgstr "Binäre Suche von Änderungssätzen"
 
@@ -7610,6 +7638,72 @@
 msgid "Testing changeset %d:%s (%d changesets remaining, ~%d tests)\n"
 msgstr "Teste Änderungssatz %d:%s (%d Änderungssätze verbleiben, ~%d Tests)\n"
 
+msgid "track a line of development with movable markers"
+msgstr "Folgt einem Entwicklungsstrang mit einer beweglichen Markierung"
+
+msgid ""
+"    Bookmarks are pointers to certain commits that move when\n"
+"    committing. Bookmarks are local. They can be renamed, copied and\n"
+"    deleted. It is possible to use bookmark names in :hg:`merge` and\n"
+"    :hg:`update` to merge and update respectively to a given bookmark."
+msgstr ""
+"    Lesezeichen sind Zeiger auf bestimmte Versionen, die mitwandern,\n"
+"    wenn eine neuen Version erzeugt wird. Lesezeichen sind nur lokal.\n"
+"    Sie können umbenannt, kopiert und gelöscht werden. Es ist möglich,\n"
+"    Lesezeichen bei :hg: `merge` und :hg:`update` zu nutzen, um auf das\n"
+"    angegebene Lesezeichen zu aktualisieren."
+
+msgid ""
+"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
+"    directory's parent revision with the given name. If you specify\n"
+"    a revision using -r REV (where REV may be an existing bookmark),\n"
+"    the bookmark is assigned to that revision."
+msgstr ""
+"    Man kann :hg:`bookmark NAME` aufrufen, um ein Lesezeichen mit dem\n"
+"    angegeben Namen auf der aktuellen Spitze (tip) zu setzen. Bei Angabe\n"
+"    einer Revision mit -r REV (REV kann ein vorhandenes Lesezeichen sein) \n"
+"    wird das Lesezeichen auf dieser Revision gesetzt.\n"
+"    "
+
+msgid ""
+"    Bookmarks can be pushed and pulled between repositories (see :hg:`help\n"
+"    push` and :hg:`help pull`). This requires both the local and remote\n"
+"    repositories to support bookmarks. For versions prior to 1.8, this "
+"means\n"
+"    the bookmarks extension must be enabled.\n"
+"    "
+msgstr ""
+"    Lesezeichen können zwischen Mercurial Archiven ausgetauscht werden.\n"
+"    (siehe :hg:`help push` bzw. :hg:`help pull`). Beide Archive müssen dafür\n"
+"    Lesezeichen unterstützen. Bis Mercurial version 1.8 muss hierfür die\n"
+"    Lesezeichenerweiterung (bookmarks extension) angeschaltet werden.\n"
+"    "
+
+msgid "a bookmark of this name does not exist"
+msgstr "Es existiert kein Lesezeichen mit diesem Namen"
+
+msgid "a bookmark of the same name already exists"
+msgstr "Ein Lesezeichen mit diesem Namen existiert bereits"
+
+msgid "new bookmark name required"
+msgstr "Ein neuer Name für das Lesezeichen muss übergeben werden"
+
+msgid "bookmark name required"
+msgstr "Ein Name für das Lesezeichen muss übergeben werden"
+
+msgid "bookmark name cannot contain newlines"
+msgstr "Ein Lesezeichenname darf keine Zeilenumbrüche enthalten"
+
+msgid "bookmark names cannot consist entirely of whitespace"
+msgstr "Ein Lesezeichenname darf nicht ausschließlich aus Leerraum bestehen"
+
+msgid "a bookmark cannot have the name of an existing branch"
+msgstr ""
+"Ein Lesezeichen darf nicht denselben Namen wie ein existierender Zweig haben"
+
+msgid "no bookmarks set\n"
+msgstr "Keine Lesezeichen gesetzt\n"
+
 msgid "set or show the current branch name"
 msgstr "Setzt oder zeigt den Namen des aktuellen Zweigs"
 
@@ -7816,9 +7910,10 @@
 "    Wird kein Zielverzeichnis angegeben, wird der Basisname der Quelle "
 "genutzt."
 
+#, fuzzy
 msgid ""
 "    The location of the source is added to the new repository's\n"
-"    .hg/hgrc file, as the default to be used for future pulls."
+"    ``.hg/hgrc`` file, as the default to be used for future pulls."
 msgstr ""
 "    Die Adresse der Quelle wird der .hg/hgrc Datei des neuen Archivs\n"
 "    als Standard für entfernte Aktionen (pull/push) hinzugefügt."
@@ -7830,7 +7925,7 @@
 #, fuzzy
 msgid ""
 "    It is possible to specify an ``ssh://`` URL as the destination, but no\n"
-"    .hg/hgrc and working directory will be created on the remote side.\n"
+"    ``.hg/hgrc`` and working directory will be created on the remote side.\n"
 "    Please see :hg:`help urls` for important details about ``ssh://`` URLs."
 msgstr ""
 "    Es ist möglich eine ``ssh://`` URL als Ziel anzugeben, aber es werden "
@@ -7940,7 +8035,7 @@
 #, fuzzy
 msgid ""
 "    Commit changes to the given files into the repository. Unlike a\n"
-"    centralized RCS, this operation is a local operation. See\n"
+"    centralized SCM, this operation is a local operation. See\n"
 "    :hg:`push` for a way to actively distribute your changes."
 msgstr ""
 "    Übernimmt Änderungen der angegebenen Dateien ins Archiv. Anders als\n"
@@ -8282,6 +8377,13 @@
 msgid "parse and display a date"
 msgstr "Liest ein Datum ein und gibt es wieder aus"
 
+msgid "display the combined ignore pattern"
+msgstr ""
+
+#, fuzzy
+msgid "no ignore patterns found"
+msgstr "Keine [keyword]-Muster konfiguriert"
+
 msgid "dump the contents of an index file"
 msgstr ""
 
@@ -8334,9 +8436,10 @@
 " (Aktuelles patch Werkzeug könnte mit patch inkompatibel or fehlkonfiguriert "
 "sein. Prüfe die .hgrc Datei!)\n"
 
+#, fuzzy
 msgid ""
 " Internal patcher failure, please report this error to http://mercurial."
-"selenic.com/bts/\n"
+"selenic.com/wiki/BugTracker\n"
 msgstr ""
 " Fehlschlag des internen patch Werkzeugs. Bitte melden Sie diesen Fehler bei "
 "http://www.selenic.com/mercurial/bts\n"
@@ -8471,9 +8574,10 @@
 
 #, fuzzy
 msgid ""
-"    NOTE: diff may generate unexpected results for merges, as it will\n"
-"    default to comparing against the working directory's first parent\n"
-"    changeset if no revisions are specified."
+"    .. note::\n"
+"       diff may generate unexpected results for merges, as it will\n"
+"       default to comparing against the working directory's first\n"
+"       parent changeset if no revisions are specified."
 msgstr ""
 "Zeigt Änderungen des Projektarchiv oder angegebener Dateien an\n"
 "\n"
@@ -8678,9 +8782,10 @@
 
 #, fuzzy
 msgid ""
-"    NOTE: export may generate unexpected diff output for merge\n"
-"    changesets, as it will compare the merge changeset against its\n"
-"    first parent only."
+"    .. note::\n"
+"       export may generate unexpected diff output for merge\n"
+"       changesets, as it will compare the merge changeset against its\n"
+"       first parent only."
 msgstr ""
 "Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus\n"
 "\n"
@@ -9205,8 +9310,8 @@
 msgstr ""
 "Nutze \"hg help\" für eine Liste aller Befehle oder \"hg -v\" für Details"
 
-#, python-format
-msgid "use \"hg -v help%s\" to show aliases and global options"
+#, fuzzy, python-format
+msgid "use \"hg -v help%s\" to show builtin aliases and global options"
 msgstr "Nutze \"hg -v help%s\" um Aliase und globale Optionen anzuzeigen"
 
 #, python-format
@@ -9761,7 +9866,7 @@
 
 #, fuzzy
 msgid ""
-"    If no revision range is specified, the default is tip:0 unless\n"
+"    If no revision range is specified, the default is ``tip:0`` unless\n"
 "    --follow is set, in which case the working directory parent is\n"
 "    used as the starting revision. You can specify a revision set for\n"
 "    log, see :hg:`help revsets` for more information."
@@ -9785,10 +9890,11 @@
 
 #, fuzzy
 msgid ""
-"    NOTE: log -p/--patch may generate unexpected diff output for merge\n"
-"    changesets, as it will only compare the merge changeset against\n"
-"    its first parent. Also, only files different from BOTH parents\n"
-"    will appear in files:."
+"    .. note::\n"
+"       log -p/--patch may generate unexpected diff output for merge\n"
+"       changesets, as it will only compare the merge changeset against\n"
+"       its first parent. Also, only files different from BOTH parents\n"
+"       will appear in files:."
 msgstr ""
 "    HINWEIS: log -p/--patch kann ein unerwartetes Diff für "
 "Zusammenführungen\n"
@@ -9844,6 +9950,12 @@
 "    weitere Änderungen durchgeführt werden dürfen. Nach dem Übernehmen hat\n"
 "    die neue Revision zwei Vorfahren."
 
+msgid ""
+"    ``--tool`` can be used to specify the merge tool used for file\n"
+"    merges. It overrides the HGMERGE environment variable and your\n"
+"    configuration files."
+msgstr ""
+
 #, fuzzy
 msgid ""
 "    If no revision is specified, the working directory's parent is a\n"
@@ -9860,6 +9972,10 @@
 "    explizit angegeben werden.\n"
 "    "
 
+#, fuzzy
+msgid "    :hg:`resolve` must be used to resolve unresolved files."
+msgstr "Nutze 'hg resolve', um ungelöste Merges zu wiederholen\n"
+
 msgid ""
 "    To undo an uncommitted merge, use :hg:`update --clean .` which\n"
 "    will check out a clean copy of the original merge parent, losing\n"
@@ -10113,6 +10229,10 @@
 "    "
 msgstr ""
 
+#, python-format
+msgid "remote bookmark %s not found!"
+msgstr "Entferntes Lesezeichen %s wurde nicht gefunden!"
+
 #, fuzzy
 msgid ""
 "other repository doesn't support revision lookup, so a rev cannot be "
@@ -10121,6 +10241,10 @@
 "Das andere Projektarchiv unterstützt keine Revisionsabfragen, daher kann "
 "keine Revision angegeben werden."
 
+#, python-format
+msgid "importing bookmark %s\n"
+msgstr "Importierte Lesezeichen %s\n"
+
 msgid "push changes to the specified destination"
 msgstr ""
 "Überträgt lokale Änderungen in das angegebene Ziel\n"
@@ -10262,6 +10386,22 @@
 msgid "pushing to %s\n"
 msgstr "Übertrage nach %s\n"
 
+#, python-format
+msgid "exporting bookmark %s\n"
+msgstr "Exportiere Lesezeichen %s\n"
+
+#, python-format
+msgid "deleting remote bookmark %s\n"
+msgstr "Lösche entferntes Lesezeichen %s\n"
+
+#, python-format
+msgid "bookmark %s does not exist on the local or remote repository!\n"
+msgstr "Lesezeichen %s existiert weder im lokalen noch im entfernten Archiv!\n"
+
+#, python-format
+msgid "updating bookmark %s failed!\n"
+msgstr "Aktualisieren des Lesezeichens %s fehlgeschlagen!\n"
+
 msgid "roll back an interrupted transaction"
 msgstr "Setzt eine unterbrochene Transaktion zurück"
 
@@ -10405,10 +10545,13 @@
 msgstr ""
 
 msgid ""
-"    - :hg:`resolve FILE...`: attempt to re-merge the specified files,\n"
-"      discarding any previous merge attempts. Re-merging is not\n"
+"    - :hg:`resolve [--tool TOOL] FILE...`: attempt to re-merge the "
+"specified\n"
+"      files, discarding any previous merge attempts. Re-merging is not\n"
 "      performed for files already marked as resolved. Use ``--all/-a``\n"
-"      to selects all unresolved files."
+"      to selects all unresolved files. ``--tool`` can be used to specify\n"
+"      the merge tool used for the given files. It overrides the HGMERGE\n"
+"      environment variable and your configuration files."
 msgstr ""
 
 msgid ""
@@ -10482,13 +10625,13 @@
 "    "
 
 msgid ""
-"    NOTE: This command is most likely not what you are looking for. revert\n"
-"    will partially overwrite content in the working directory without "
-"changing\n"
-"    the working directory parents. Use :hg:`update -r rev` to check out "
-"earlier\n"
-"    revisions, or :hg:`update --clean .` to undo a merge which has added\n"
-"    another parent."
+"    .. note::\n"
+"       This command is most likely not what you are looking for.\n"
+"       Revert will partially overwrite content in the working\n"
+"       directory without changing the working directory parents. Use\n"
+"       :hg:`update -r rev` to check out earlier revisions, or\n"
+"       :hg:`update --clean .` to undo a merge which has added another\n"
+"       parent."
 msgstr ""
 
 #, fuzzy
@@ -10725,6 +10868,9 @@
 msgid "you can't specify a revision and a date"
 msgstr "ungültige Angabe von Revision und Datum gleichzeitig"
 
+msgid "uncommitted merge - use \"hg update\", see \"hg help revert\""
+msgstr ""
+
 msgid "no files or directories specified; use --all to revert the whole repo"
 msgstr ""
 "keine Dateien oder Verzeichnisse angegeben; nutze --all um das gesamte "
@@ -10836,7 +10982,7 @@
 
 msgid ""
 "    Start a local HTTP repository browser and pull server. You can use\n"
-"    this for ad-hoc sharing and browing of repositories. It is\n"
+"    this for ad-hoc sharing and browsing of repositories. It is\n"
 "    recommended to use a real web server to serve a repository for\n"
 "    longer periods of time."
 msgstr ""
@@ -10900,11 +11046,13 @@
 "    Dateien aus, es sei denn sie werden explizit mit -u/--unknown oder \n"
 "    -i/--ignored angefordert."
 
-msgid ""
-"    NOTE: status may appear to disagree with diff if permissions have\n"
-"    changed or a merge has occurred. The standard diff format does not\n"
-"    report permission changes and diff only reports changes relative\n"
-"    to one merge parent."
+#, fuzzy
+msgid ""
+"    .. note::\n"
+"       status may appear to disagree with diff if permissions have\n"
+"       changed or a merge has occurred. The standard diff format does\n"
+"       not report permission changes and diff only reports changes\n"
+"       relative to one merge parent."
 msgstr ""
 "    HINWEIS: Der Status kann sich vom Diff unterscheiden, wenn sich\n"
 "    Berechtigungen geändert haben oder eine Zusammenführung aufgetreten\n"
@@ -11090,10 +11238,12 @@
 msgid "    Name a particular revision using <name>."
 msgstr "    Benennt eine bestimmte Revision mit <name>."
 
+#, fuzzy
 msgid ""
 "    Tags are used to name particular revisions of the repository and are\n"
 "    very useful to compare different revisions, to go back to significant\n"
-"    earlier versions or to mark branch points as releases, etc."
+"    earlier versions or to mark branch points as releases, etc. Changing\n"
+"    an existing tag is normally disallowed; use -f/--force to override."
 msgstr ""
 "    Etiketten sind nützlich um somit benannte Revisionen später in "
 "Vergleichen\n"
@@ -11108,12 +11258,14 @@
 "    Wenn keine Revision angegeben ist, wird der Vorgänger des Arbeits-\n"
 "    verzeichnisses (oder - falls keines existiert - die Spitze) benannt."
 
+#, fuzzy
 msgid ""
 "    To facilitate version control, distribution, and merging of tags,\n"
-"    they are stored as a file named \".hgtags\" which is managed\n"
-"    similarly to other project files and can be hand-edited if\n"
-"    necessary. The file '.hg/localtags' is used for local tags (not\n"
-"    shared among repositories)."
+"    they are stored as a file named \".hgtags\" which is managed similarly\n"
+"    to other project files and can be hand-edited if necessary. This\n"
+"    also means that tagging creates a new commit. The file\n"
+"    \".hg/localtags\" is used for local tags (not shared among\n"
+"    repositories)."
 msgstr ""
 "    Um die Versionskontrolle, Verteilung und Zusammenführung von Etiketten\n"
 "    möglich zu machen, werden sie in einer Datei '.hgtags' gespeichert, "
@@ -11124,6 +11276,13 @@
 "    liegen in der Datei .hg/localtags."
 
 msgid ""
+"    Tag commits are usually made at the head of a branch. If the parent\n"
+"    of the working directory is not a branch head, :hg:`tag` aborts; use\n"
+"    -f/--force to force the tag commit to be based on a non-head\n"
+"    changeset."
+msgstr ""
+
+msgid ""
 "    Since tag names have priority over branch names during revision\n"
 "    lookup, using an existing branch name as a tag name is discouraged."
 msgstr ""
@@ -11154,6 +11313,14 @@
 msgid "tag '%s' already exists (use -f to force)"
 msgstr "Etikett '%s' existiert bereits; erzwinge mit -f/--force"
 
+#, fuzzy
+msgid "uncommitted merge"
+msgstr "Ausstehende nicht versionierte Zusammenführung"
+
+#, fuzzy
+msgid "not at a branch head (use -f to force)"
+msgstr "Etikett '%s' existiert bereits; erzwinge mit -f/--force"
+
 msgid "list repository tags"
 msgstr "Liste alle Etiketten des Archivs auf"
 
@@ -11211,20 +11378,20 @@
 msgid "update working directory (or switch revisions)"
 msgstr "Aktualisiert das Arbeitsverzeichnis (oder wechselt die Version)"
 
+#, fuzzy
 msgid ""
 "    Update the repository's working directory to the specified\n"
-"    changeset."
+"    changeset. If no changeset is specified, update to the tip of the\n"
+"    current named branch."
 msgstr "    Hebt das Arbeitsverzeichnis auf die angegebene Revision an."
 
-#, fuzzy
-msgid ""
-"    If no changeset is specified, attempt to update to the tip of the\n"
-"    current branch. If this changeset is a descendant of the working\n"
-"    directory's parent, update to it, otherwise abort."
-msgstr ""
-"    Wird keine Revision angegeben, wird zum Kopf des derzeitigen Zweigs\n"
-"    aktualisiert, falls dieser ein Nachfahr des direkten Vorgängers der\n"
-"    Arbeitskopie ist. Ansonsten bricht die Operation ab."
+msgid ""
+"    If the changeset is not a descendant of the working directory's\n"
+"    parent, the update is aborted. With the -c/--check option, the\n"
+"    working directory is checked for uncommitted changes; if none are\n"
+"    found, the working directory is updated to the specified\n"
+"    changeset."
+msgstr ""
 
 msgid ""
 "    The following rules apply when the working directory contains\n"
@@ -11274,8 +11441,8 @@
 
 #, fuzzy
 msgid ""
-"    If you want to update just one file to an older changeset, use :hg:"
-"`revert`."
+"    If you want to update just one file to an older changeset, use\n"
+"    :hg:`revert`."
 msgstr ""
 "    Solle nur eine Datei auf eine ältere Revision gehoben werden, kann\n"
 "    'revert' genutzt werden."
@@ -11330,9 +11497,15 @@
 msgid "Mercurial Distributed SCM (version %s)\n"
 msgstr ""
 
-msgid ""
-"\n"
-"Copyright (C) 2005-2010 Matt Mackall <mpm@selenic.com> and others\n"
+#, fuzzy
+msgid "(see http://mercurial.selenic.com for more information)"
+msgstr ""
+"    Siehe auch 'hg help urls' für das Format von Adressangaben.\n"
+"    "
+
+#, fuzzy
+msgid ""
+"Copyright (C) 2005-2010 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 ""
@@ -11410,6 +11583,9 @@
 msgid "specify hg command to run on the remote side"
 msgstr "Spezifiziert den hg-Befehl, der entfernt ausgeführt wird"
 
+msgid "do not verify server certificate (ignoring web.cacerts config)"
+msgstr ""
+
 msgid "PATTERN"
 msgstr ""
 
@@ -11544,6 +11720,10 @@
 msgid "parent to choose when backing out merge"
 msgstr "Wählt einen Vorgänger bei Rücknahme einer Zusammenführung"
 
+#, fuzzy
+msgid "specify merge tool"
+msgstr "gibt cvsroot an"
+
 msgid "revision to backout"
 msgstr "Die zurückzunehmende Revision"
 
@@ -11572,6 +11752,18 @@
 msgid "[-gbsr] [-U] [-c CMD] [REV]"
 msgstr "[-gbsr] [-c BEFEHL] [REV]"
 
+msgid "force"
+msgstr "erzwinge"
+
+msgid "delete a given bookmark"
+msgstr "Löscht ein gegebenes Lesezeichen"
+
+msgid "rename a given bookmark"
+msgstr "Benennt ein gegebenes Lesezeichen um"
+
+msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
+msgstr "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
+
 msgid "set branch name even if it shadows an existing branch"
 msgstr "Setzt Branchnamen, selbst wenn es einen bestehenden Branch verdeckt"
 
@@ -11721,6 +11913,9 @@
 msgid "[PATH]"
 msgstr "[PFAD]"
 
+msgid "revlog format"
+msgstr ""
+
 msgid "REPO NAMESPACE [KEY OLD NEW]"
 msgstr ""
 
@@ -11789,9 +11984,13 @@
 msgid "[OPTION]... PATTERN [FILE]..."
 msgstr "[OPTION]... MUSTER [DATEI]..."
 
-msgid "show only heads which are descendants of REV"
+#, fuzzy
+msgid "show only heads which are descendants of STARTREV"
 msgstr "Zeigt nur Köpfe, die Nachkommen dieser Revision sind"
 
+msgid "STARTREV"
+msgstr ""
+
 msgid "show topological heads only"
 msgstr ""
 
@@ -11802,7 +12001,7 @@
 msgstr "Zeigt normale und geschlossene Branch-Köpfe"
 
 #, fuzzy
-msgid "[-ac] [-r REV] [REV]..."
+msgid "[-ac] [-r STARTREV] [REV]..."
 msgstr "[-nibt] [-r REV] [QUELLE]"
 
 msgid "[TOPIC]"
@@ -11871,6 +12070,10 @@
 msgstr "zeigt den aktuellen Änderungssatz in Vorgänger-Branches"
 
 #, fuzzy
+msgid "compare bookmarks"
+msgstr "Vergleiche Lesezeichen"
+
+#, fuzzy
 msgid "a specific branch you would like to pull"
 msgstr "Revision die geholt werden soll"
 
@@ -11976,12 +12179,23 @@
 msgid "run even when remote repository is unrelated"
 msgstr "Auch ausführen wenn das entfernte Projektarchiv keinen Bezug hat"
 
+msgid "BOOKMARK"
+msgstr "LESEZEICHEN"
+
+#, fuzzy
+msgid "bookmark to pull"
+msgstr "Zu importierendes Lesezeichen"
+
 msgid "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]"
 msgstr "[-u] [-f] [-r REV]... [-e BEFEHL] [--remotecmd BEFEHL] [QUELLE]"
 
 msgid "force push"
 msgstr "Erzwingt Push"
 
+#, fuzzy
+msgid "bookmark to push"
+msgstr "Zu importierendes Lesezeichen"
+
 msgid "allow pushing a new branch"
 msgstr ""
 
@@ -12058,7 +12272,7 @@
 "Name der auf der Webseite angezeigt wird (Standard: Arbeitsverzeichnis)"
 
 #, fuzzy
-msgid "name of the hgweb config file (serve more than one repository)"
+msgid "name of the hgweb config file (see \"hg help hgweb\")"
 msgstr ""
 "Name der webdir-Konfigurationsdatei (mehr als ein Projektarchiv ausliefern)"
 
@@ -12123,8 +12337,9 @@
 msgid "list the changed files of a revision"
 msgstr "Mindestens ein paar Revisionen sind benötigt"
 
-msgid "replace existing tag"
-msgstr "Ersetzt bereits existierendes Tag"
+#, fuzzy
+msgid "force tag"
+msgstr "erzwinge"
 
 msgid "make the tag local"
 msgstr "Tag wird nur lokal gesetzt"
@@ -12155,8 +12370,9 @@
 msgid "discard uncommitted changes (no backup)"
 msgstr "entferne nicht versionierte Änderungen (kein Backup)"
 
-msgid "check for uncommitted changes"
-msgstr "prüft auf nicht versionierte Änderungen"
+#, fuzzy
+msgid "update across branches if no uncommitted changes"
+msgstr "Ausstehende nicht versionierte Änderungen"
 
 msgid "[-c] [-C] [-d DATE] [[-r] REV]"
 msgstr "[-c] [-C] [-d DATUM] [[-r] REV]"
@@ -12278,6 +12494,9 @@
 msgid "unsupported file type (type is %s)"
 msgstr "nicht unterstützter Dateityp (Typ %s)"
 
+msgid "searching for changes\n"
+msgstr "Suche nach Änderungen\n"
+
 msgid "queries"
 msgstr ""
 
@@ -12324,6 +12543,10 @@
 msgid "abort: %s\n"
 msgstr "Abbruch: %s\n"
 
+#, python-format
+msgid "(%s)\n"
+msgstr ""
+
 #, fuzzy, python-format
 msgid "hg: parse error at %s: %s\n"
 msgstr "Abbruch: Fehler: %s\n"
@@ -12385,10 +12608,6 @@
 msgid "hg: unknown command '%s'\n"
 msgstr "hg: unbekannter Befehl '%s'\n"
 
-#, python-format
-msgid "(%s)\n"
-msgstr ""
-
 msgid "(did you forget to compile extensions?)\n"
 msgstr "(Erweiterungen nicht kompiliert?)\n"
 
@@ -12415,13 +12634,12 @@
 msgid "abort: out of memory\n"
 msgstr "Abbruch: Unzureichender Arbeitsspeicher\n"
 
-msgid "** unknown exception encountered, details follow\n"
+#, fuzzy
+msgid "** unknown exception encountered, please report by visiting\n"
 msgstr "** Unbekannter Fehler, Details folgen\n"
 
-msgid "** report bug details to http://mercurial.selenic.com/bts/\n"
-msgstr "** Problemdetails bitte bei http://www.selenic.com/mercurial/bts\n"
-
-msgid "** or mercurial@selenic.com\n"
+#, fuzzy
+msgid "**  http://mercurial.selenic.com/wiki/BugTracker\n"
 msgstr "** oder mercurial@selenic.com melden\n"
 
 #, python-format
@@ -12442,6 +12660,11 @@
 
 #, python-format
 msgid ""
+"No argument found for substitutionof %i variable in alias '%s' definition."
+msgstr ""
+
+#, python-format
+msgid ""
 "error in definition for alias '%s': %s may only be given on the command "
 "line\n"
 msgstr ""
@@ -12513,6 +12736,10 @@
 msgid "*** failed to import extension %s: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "warning: error finding commands in %s\n"
+msgstr "Führe 'notify'-Befehl aus: %s\n"
+
 #, python-format
 msgid "couldn't find merge tool %s\n"
 msgstr ""
@@ -12606,6 +12833,9 @@
 msgid "Diff Formats"
 msgstr "Diff-Formate"
 
+msgid "Merge Tools"
+msgstr ""
+
 msgid "Template Usage"
 msgstr "Nutzung von Vorlagen"
 
@@ -12615,6 +12845,10 @@
 msgid "Using additional features"
 msgstr "Benutzung erweiterter Funktionen"
 
+#, fuzzy
+msgid "Subrepositories"
+msgstr "Projektarchiv %s"
+
 msgid "Configuring hgweb"
 msgstr "hgweb-Konfiguration"
 
@@ -12942,6 +13176,15 @@
 "    Kommandozeile überschrieben werden."
 
 msgid ""
+"HGENCODINGAMBIGUOUS\n"
+"    This sets Mercurial's behavior for handling characters with\n"
+"    \"ambiguous\" widths like accented Latin characters with East Asian\n"
+"    fonts. By default, Mercurial assumes ambiguous characters are\n"
+"    narrow, set this variable to \"wide\" if such characters cause\n"
+"    formatting problems."
+msgstr ""
+
+msgid ""
 "HGMERGE\n"
 "    An executable to use for resolving merge conflicts. The program\n"
 "    will be executed with three arguments: local file, remote file,\n"
@@ -13769,6 +14012,182 @@
 "Seite gefunden werden, entfernt. Daher werden ``/foo/bar`` und\n"
 "``foo/quux/baz`` als ``bar`` und ``quux/baz`` aufgelistet.\n"
 
+msgid "To merge files Mercurial uses merge tools."
+msgstr ""
+
+msgid ""
+"A merge tool combines two different versions of a file into a merged\n"
+"file. Merge tools are given the two files and the greatest common\n"
+"ancestor of the two file versions, so they can determine the changes\n"
+"made on both branches."
+msgstr ""
+
+msgid ""
+"Merge tools are used both for :hg:`resolve`, :hg:`merge`, :hg:`update`,\n"
+":hg:`backout` and in several extensions."
+msgstr ""
+
+msgid ""
+"Usually, the merge tool tries to automatically reconcile the files by\n"
+"combining all non-overlapping changes that occurred separately in\n"
+"the two different evolutions of the same initial base file. Furthermore, "
+"some\n"
+"interactive merge programs make it easier to manually resolve\n"
+"conflicting merges, either in a graphical way, or by inserting some\n"
+"conflict markers. Mercurial does not include any interactive merge\n"
+"programs but relies on external tools for that."
+msgstr ""
+
+msgid ""
+"Available merge tools\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+msgstr ""
+
+msgid ""
+"External merge tools and their properties are configured in the\n"
+"merge-tools configuration section - see hgrc(5) - but they can often just\n"
+"be named by their executable."
+msgstr ""
+
+msgid ""
+"A merge tool is generally usable if its executable can be found on the\n"
+"system and if it can handle the merge. The executable is found if it\n"
+"is an absolute or relative executable path or the name of an\n"
+"application in the executable search path. The tool is assumed to be\n"
+"able to handle the merge if it can handle symlinks if the file is a\n"
+"symlink, if it can handle binary files if the file is binary, and if a\n"
+"GUI is available if the tool requires a GUI."
+msgstr ""
+
+msgid ""
+"There are some internal merge tools which can be used. The internal\n"
+"merge tools are:"
+msgstr ""
+
+msgid ""
+"``internal:merge``\n"
+"   Uses the internal non-interactive simple merge algorithm for merging\n"
+"   files. It will fail if there are any conflicts and leave markers in\n"
+"   the partially merged file."
+msgstr ""
+
+msgid ""
+"``internal:fail``\n"
+"   Rather than attempting to merge files that were modified on both\n"
+"   branches, it marks them as unresolved. The resolve command must be\n"
+"   used to resolve these conflicts."
+msgstr ""
+
+msgid ""
+"``internal:local``\n"
+"   Uses the local version of files as the merged version."
+msgstr ""
+
+msgid ""
+"``internal:other``\n"
+"   Uses the other version of files as the merged version."
+msgstr ""
+
+msgid ""
+"``internal:prompt``\n"
+"   Asks the user which of the local or the other version to keep as\n"
+"   the merged version."
+msgstr ""
+
+msgid ""
+"``internal:dump``\n"
+"   Creates three versions of the files to merge, containing the\n"
+"   contents of local, other and base. These files can then be used to\n"
+"   perform a merge manually. If the file to be merged is named\n"
+"   ``a.txt``, these files will accordingly be named ``a.txt.local``,\n"
+"   ``a.txt.other`` and ``a.txt.base`` and they will be placed in the\n"
+"   same directory as ``a.txt``."
+msgstr ""
+
+msgid ""
+"Internal tools are always available and do not require a GUI but will by "
+"default\n"
+"not handle symlinks or binary files."
+msgstr ""
+
+msgid ""
+"Choosing a merge tool\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+msgstr ""
+
+msgid "Mercurial uses these rules when deciding which merge tool to use:"
+msgstr ""
+
+msgid ""
+"1. If a tool has been specified with the --tool option to merge or resolve, "
+"it\n"
+"   is used.  If it is the name of a tool in the merge-tools configuration, "
+"its\n"
+"   configuration is used. Otherwise the specified tool must be executable "
+"by\n"
+"   the shell."
+msgstr ""
+
+msgid ""
+"2. If the ``HGMERGE`` environment variable is present, its value is used "
+"and\n"
+"   must be executable by the shell."
+msgstr ""
+
+msgid ""
+"3. If the filename of the file to be merged matches any of the patterns in "
+"the\n"
+"   merge-patterns configuration section, the first usable merge tool\n"
+"   corresponding to a matching pattern is used. Here, binary capabilities of "
+"the\n"
+"   merge tool are not considered."
+msgstr ""
+
+msgid ""
+"4. If ui.merge is set it will be considered next. If the value is not the "
+"name\n"
+"   of a configured tool, the specified value is used and must be executable "
+"by\n"
+"   the shell. Otherwise the named tool is used if it is usable."
+msgstr ""
+
+msgid ""
+"5. If any usable merge tools are present in the merge-tools configuration\n"
+"   section, the one with the highest priority is used."
+msgstr ""
+
+msgid ""
+"6. If a program named ``hgmerge`` can be found on the system, it is used - "
+"but\n"
+"   it will by default not be used for symlinks and binary files."
+msgstr ""
+
+msgid ""
+"7. If the file to be merged is not binary and is not a symlink, then\n"
+"   ``internal:merge`` is used."
+msgstr ""
+
+msgid "8. The merge of the file fails and must be resolved before commit."
+msgstr ""
+
+msgid ""
+".. note::\n"
+"   After selecting a merge program, Mercurial will by default attempt\n"
+"   to merge the files using a simple merge algorithm first. Only if it "
+"doesn't\n"
+"   succeed because of conflicting changes Mercurial will actually execute "
+"the\n"
+"   merge program. Whether to use the simple merge algorithm first can be\n"
+"   controlled by the premerge setting of the merge tool. Premerge is enabled "
+"by\n"
+"   default unless the file is binary or a symlink."
+msgstr ""
+
+msgid ""
+"See the merge-tools and ui sections of hgrc(5) for details on the\n"
+"configuration of merge tools.\n"
+msgstr ""
+
 msgid ""
 "When Mercurial accepts more than one revision, they may be specified\n"
 "individually, or provided as a topologically continuous range,\n"
@@ -13855,6 +14274,13 @@
 "``re:``. Erkennung mit regulären Ausdrücken ist relativ zur Wurzel des\n"
 "Projektarchivs."
 
+msgid ""
+"To read name patterns from a file, use ``listfile:`` or ``listfile0:``.\n"
+"The latter expects null delimited patterns while the former expects line\n"
+"feeds. Each string read from the file is itself treated as a file\n"
+"pattern."
+msgstr ""
+
 msgid "Plain examples::"
 msgstr "Einfache Beispiele::"
 
@@ -13890,11 +14316,20 @@
 msgid "Regexp examples::"
 msgstr "Beispiel mit regulärem Ausdruck::"
 
-msgid ""
-"  re:.*\\.c$      any name ending in \".c\", anywhere in the repository\n"
+#, fuzzy
+msgid "  re:.*\\.c$      any name ending in \".c\", anywhere in the repository"
 msgstr ""
 "  re:.*\\.c$     jeder Name endend mit \".c\" überall im Projektarchiv\n"
 
+#, fuzzy
+msgid "File examples::"
+msgstr "Glob-Beispiele::"
+
+msgid ""
+"  listfile:list.txt  read list from list.txt with one file pattern per line\n"
+"  listfile0:list.txt read list from list.txt with null byte delimiters\n"
+msgstr ""
+
 msgid "Mercurial supports several ways to specify individual revisions."
 msgstr "Mercurial unterstützt mehrere Arten individuelle Revisionen anzugeben."
 
@@ -13974,12 +14409,12 @@
 "Operatoren miteinander verbunden werden. Klammern können zur\n"
 "Gruppierung verwendet werden."
 
+#, fuzzy
 msgid ""
 "Identifiers such as branch names must be quoted with single or double\n"
 "quotes if they contain characters outside of\n"
 "``[._a-zA-Z0-9\\x80-\\xff]`` or if they match one of the predefined\n"
-"predicates. Special characters can be used in quoted identifiers by\n"
-"escaping them, e.g., ``\\n`` is interpreted as a newline."
+"predicates."
 msgstr ""
 "Bezeichner wie Zweignamen müssen mit einfachen oder doppelten\n"
 "Anführungszeichen umgeben werden, wenn sie Zeichen außerhalb von\n"
@@ -13988,6 +14423,12 @@
 "Anführungszeichen verwendet werden, indem sie escaped werden, z.B.\n"
 "wird ``\\n`` als Zeilenumbruch interpretiert."
 
+msgid ""
+"Special characters can be used in quoted identifiers by escaping them,\n"
+"e.g., ``\\n`` is interpreted as a newline. To prevent them from being\n"
+"interpreted, strings can be prefixed with ``r``, e.g. ``r'...'``."
+msgstr ""
+
 msgid "There is a single prefix operator:"
 msgstr "Es gibt einen einzigen Präfix-Operator:"
 
@@ -14054,265 +14495,8 @@
 msgid "The following predicates are supported:"
 msgstr "Die folgenden Prädikate werden unterstützt:"
 
-msgid ""
-"``adds(pattern)``\n"
-"  Changesets that add a file matching pattern."
-msgstr ""
-"``adds(muster)``\n"
-"  Änderungssätze, die Dateien hinzufügen, die auf das Muster passen."
-
-msgid ""
-"``all()``\n"
-"  All changesets, the same as ``0:tip``."
-msgstr ""
-"``all()``\n"
-"  Alle Änderungssätze, entspricht ``0:tip``."
-
-msgid ""
-"``ancestor(single, single)``\n"
-"  Greatest common ancestor of the two changesets."
-msgstr ""
-"``ancestor(single, single)``\n"
-"  Größter gemeinsamer Vorfahre der beiden Änderungssätze."
-
-msgid ""
-"``ancestors(set)``\n"
-"  Changesets that are ancestors of a changeset in set."
-msgstr ""
-"``ancestors(set)``\n"
-"  Änderungssätze, die Vorfahren der Änderungssätze aus set sind."
-
-msgid ""
-"``author(string)``\n"
-"  Alias for ``user(string)``."
-msgstr ""
-"``author(zeichenkette)``\n"
-"  Alias für ``user(zeichenkette)``."
-
-msgid ""
-"``branch(set)``\n"
-"  All changesets belonging to the branches of changesets in set."
-msgstr ""
-"``branch(set)``\n"
-"  Alle Änderungssätze, die zu den Zweigen aus den Änderungssätzen\n"
-"  aus set gehören."
-
-msgid ""
-"``children(set)``\n"
-"  Child changesets of changesets in set."
-msgstr ""
-"``children(set)``\n"
-"  Kinder-Änderungssätze der Änderungssätze in set."
-
-msgid ""
-"``closed()``\n"
-"  Changeset is closed."
-msgstr ""
-"``closed()``\n"
-"  Änderungssatz ist geschlossen."
-
-msgid ""
-"``contains(pattern)``\n"
-"  Revision contains pattern."
-msgstr ""
-"``contains(muster)``\n"
-"  Revision enthält das Muster."
-
-msgid ""
-"``date(interval)``\n"
-"  Changesets within the interval, see :hg:`help dates`."
-msgstr ""
-"``date(intervall)``\n"
-"  Änderungssätze innerhalb des Intervalls, siehe auch :hg:`help dates`."
-
-msgid ""
-"``descendants(set)``\n"
-"  Changesets which are descendants of changesets in set."
-msgstr ""
-"``descendants(set)``\n"
-"  Änderungssätze, die Nachkommen der Änderungssätze in set sind."
-
-msgid ""
-"``file(pattern)``\n"
-"  Changesets affecting files matched by pattern."
-msgstr ""
-"``file(muster)``\n"
-"  Änderungssätze, die Dateien betroffen haben, die auf das Muster passen."
-
-msgid ""
-"``follow()``\n"
-"  An alias for ``::.`` (ancestors of the working copy's first parent)."
-msgstr ""
-"``follow()``\n"
-"  Ein Alias für ``::.`` (Vorfahren in der ersten Eltern-Revision der\n"
-"  Arbeitskopie)."
-
-msgid ""
-"``grep(regex)``\n"
-"  Like ``keyword(string)`` but accepts a regex."
-msgstr ""
-"``grep(regex)``\n"
-"  Wie ``keyword(zeichenkette)``, akzeptiert aber auch einen regulären\n"
-"  Ausdruck (regex)."
-
-msgid ""
-"``head()``\n"
-"  Changeset is a head."
-msgstr ""
-"``head()``\n"
-"  Änderungssatz ist ein Kopf (hat keine Kinder)."
-
-msgid ""
-"``heads(set)``\n"
-"  Members of set with no children in set."
-msgstr ""
-"``heads(set)``\n"
-"  Elemente aus set, die keine Kinder in set haben."
-
-msgid ""
-"``keyword(string)``\n"
-"  Search commit message, user name, and names of changed files for\n"
-"  string."
-msgstr ""
-"``keyword(zeichenkette)``\n"
-"  Sucht die Zeichenketten in der Commit-Nachricht, dem Benutzernamen\n"
-"  und der Liste geänderter Dateien."
-
-msgid ""
-"``limit(set, n)``\n"
-"  First n members of set."
-msgstr ""
-"``limit(set, n)``\n"
-"  Die ersten n Elemente aus set."
-
-msgid ""
-"``max(set)``\n"
-"  Changeset with highest revision number in set."
-msgstr ""
-"``max(set)``\n"
-"  Änderungssatz mit der größten Revisionsnummer in set."
-
-msgid ""
-"``min(set)``\n"
-"  Changeset with lowest revision number in set."
-msgstr ""
-"``min(set)``\n"
-"  Änderungssatz mit der kleinsten Revisionsnummer in set."
-
-msgid ""
-"``merge()``\n"
-"  Changeset is a merge changeset."
-msgstr ""
-"``merge()``\n"
-"  Änderungssatz ist eine Zusammenführung."
-
-msgid ""
-"``modifies(pattern)``\n"
-"  Changesets modifying files matched by pattern."
-msgstr ""
-"``modifies(muster)``\n"
-"  Änderungssätze, die Dateien verändert, die auf das Muster passen."
-
-msgid ""
-"``outgoing([path])``\n"
-"  Changesets not found in the specified destination repository, or the\n"
-"  default push location."
-msgstr ""
-"``outgoing([pfad])``\n"
-"  Änderungssätze, die nicht im angegebenen Ziel-Archiv oder dem\n"
-"  Standard Push-Ziel vorhanden sind,"
-
-msgid ""
-"``p1(set)``\n"
-"  First parent of changesets in set."
-msgstr ""
-"``p1(set)``\n"
-"  Erster Vorfahr der Änderungssätze in set."
-
-msgid ""
-"``p2(set)``\n"
-"  Second parent of changesets in set."
-msgstr ""
-"``p2(set)``\n"
-"  Zweiter Vorfahr der Änderungssätze in set."
-
-msgid ""
-"``parents(set)``\n"
-"  The set of all parents for all changesets in set."
-msgstr ""
-"``parents(set)``\n"
-"  Die Menge aller Eltern für die Änderungssätze in set."
-
-msgid ""
-"``present(set)``\n"
-"  An empty set, if any revision in set isn't found; otherwise,\n"
-"  all revisions in set."
-msgstr ""
-"``present(set)``\n"
-"  Ein leeres Set, wenn keine Revision in set gefunden wurde, ansonsten\n"
-"  alle Revisionen aus dem angegebenen Set."
-
-msgid ""
-"``removes(pattern)``\n"
-"  Changesets which remove files matching pattern."
-msgstr ""
-"``removes(muster)``\n"
-"  Änderungssätze, die Dateien entfernten, die auf das Muster passen."
-
-msgid ""
-"``reverse(set)``\n"
-"  Reverse order of set."
-msgstr ""
-"``reverse(set)``\n"
-"  Kehrt die Reihenfolge von set um."
-
-msgid ""
-"``roots(set)``\n"
-"  Changesets with no parent changeset in set."
-msgstr ""
-"``roots(set)``\n"
-"  Änderungssätze ohne Eltern in set."
-
-msgid ""
-"``sort(set[, [-]key...])``\n"
-"  Sort set by keys. The default sort order is ascending, specify a key\n"
-"  as ``-key`` to sort in descending order."
-msgstr ""
-"``sort(set[, [-]key...])``\n"
-"  Sortiert set anhand des Schlüssels key. Die Standard-Reihenfolge\n"
-"  ist aufsteigend, geben Sie einen Schlüssel in der Form ``-key`` an,\n"
-"  um absteigend zu sortieren."
-
-msgid "  The keys can be:"
-msgstr "  Der key kann einer der folgenden sein:"
-
-msgid ""
-"  - ``rev`` for the revision number,\n"
-"  - ``branch`` for the branch name,\n"
-"  - ``desc`` for the commit message (description),\n"
-"  - ``user`` for user name (``author`` can be used as an alias),\n"
-"  - ``date`` for the commit date"
-msgstr ""
-"  - ``rev`` für die Revisionsnummer,\n"
-"  - ``branch`` für den Zweignamen,\n"
-"  - ``desc`` für die Commit-Nachricht (description),\n"
-"  - ``user`` für den Benutzernamen (``author`` kann als Alias\n"
-"    genutzt werden),\n"
-"  - ``date`` für das Datum des Commits"
-
-msgid ""
-"``tagged()``\n"
-"  Changeset is tagged."
-msgstr ""
-"``tagged()``\n"
-"  Der Änderungssatz wurde mit einem Tag versehen."
-
-msgid ""
-"``user(string)``\n"
-"  User name is string."
-msgstr ""
-"``user(string)``\n"
-"  Der Benutzername ist eine Zeichenkette."
+msgid ".. predicatesmarker"
+msgstr ""
 
 msgid "Command line equivalents for :hg:`log`::"
 msgstr "Äquivalente Kommandozeilen-Befehle für :hg:`log`::"
@@ -14336,21 +14520,255 @@
 "  -P x  ->  !::x\n"
 "  -l x  ->  limit(expr, x)"
 
-msgid "Some sample queries::"
+#, fuzzy
+msgid "Some sample queries:"
 msgstr "Einige Beispiel-Anfragen::"
 
-msgid ""
-"  hg log -r 'branch(default)'\n"
-"  hg log -r 'branch(default) and 1.5:: and not merge()'\n"
-"  hg log -r '1.3::1.5 and keyword(bug) and file(\"hgext/*\")'\n"
-"  hg log -r 'sort(date(\"May 2008\"), user)'\n"
-"  hg log -r '(keyword(bug) or keyword(issue)) and not ancestors(tagged())'\n"
-msgstr ""
-"  hg log -r 'branch(default)'\n"
-"  hg log -r 'branch(default) and 1.5:: and not merge()'\n"
-"  hg log -r '1.3::1.5 and keyword(bug) and file(\"hgext/*\")'\n"
-"  hg log -r 'sort(date(\"May 2008\"), user)'\n"
-"  hg log -r '(keyword(bug) or keyword(issue)) and not ancestors(tagged())'\n"
+#, fuzzy
+msgid "- Changesets on the default branch::"
+msgstr "Zeigt nur Änderungssätze innerhalb des angegebenen Branches"
+
+msgid "    hg log -r \"branch(default)\""
+msgstr ""
+
+msgid "- Changesets on the default branch since tag 1.5 (excluding merges)::"
+msgstr ""
+
+msgid "    hg log -r \"branch(default) and 1.5:: and not merge()\""
+msgstr ""
+
+#, fuzzy
+msgid "- Open branch heads::"
+msgstr "Zeigt normale und geschlossene Branch-Köpfe"
+
+msgid "    hg log -r \"head() and not closed()\""
+msgstr ""
+
+msgid ""
+"- Changesets between tags 1.3 and 1.5 mentioning \"bug\" that affect\n"
+"  ``hgext/*``::"
+msgstr ""
+
+msgid "    hg log -r \"1.3::1.5 and keyword(bug) and file('hgext/*')\""
+msgstr ""
+
+msgid "- Changesets in committed May 2008, sorted by user::"
+msgstr ""
+
+msgid "    hg log -r \"sort(date('May 2008'), user)\""
+msgstr ""
+
+msgid ""
+"- Changesets mentioning \"bug\" or \"issue\" that are not in a tagged\n"
+"  release::"
+msgstr ""
+
+msgid ""
+"    hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tagged"
+"())\"\n"
+msgstr ""
+
+msgid ""
+"Subrepositories let you nest external repositories or projects into a\n"
+"parent Mercurial repository, and make commands operate on them as a\n"
+"group. External Mercurial and Subversion projects are currently\n"
+"supported."
+msgstr ""
+
+msgid "Subrepositories are made of three components:"
+msgstr ""
+
+msgid ""
+"1. Nested repository checkouts. They can appear anywhere in the\n"
+"   parent working directory, and are Mercurial clones or Subversion\n"
+"   checkouts."
+msgstr ""
+
+msgid ""
+"2. Nested repository references. They are defined in ``.hgsub`` and\n"
+"   tell where the subrepository checkouts come from. Mercurial\n"
+"   subrepositories are referenced like:"
+msgstr ""
+
+msgid "     path/to/nested = https://example.com/nested/repo/path"
+msgstr ""
+
+msgid ""
+"   where ``path/to/nested`` is the checkout location relatively to the\n"
+"   parent Mercurial root, and ``https://example.com/nested/repo/path``\n"
+"   is the source repository path. The source can also reference a\n"
+"   filesystem path. Subversion repositories are defined with:"
+msgstr ""
+
+msgid "     path/to/nested = [svn]https://example.com/nested/trunk/path"
+msgstr ""
+
+msgid ""
+"   Note that ``.hgsub`` does not exist by default in Mercurial\n"
+"   repositories, you have to create and add it to the parent\n"
+"   repository before using subrepositories."
+msgstr ""
+
+msgid ""
+"3. Nested repository states. They are defined in ``.hgsubstate`` and\n"
+"   capture whatever information is required to restore the\n"
+"   subrepositories to the state they were committed in a parent\n"
+"   repository changeset. Mercurial automatically record the nested\n"
+"   repositories states when committing in the parent repository."
+msgstr ""
+
+msgid ""
+"   .. note::\n"
+"      The ``.hgsubstate`` file should not be edited manually."
+msgstr ""
+
+#, fuzzy
+msgid ""
+"\n"
+"Adding a Subrepository\n"
+"----------------------"
+msgstr ""
+"    Mercurial als Ziel\n"
+"    ------------------"
+
+msgid ""
+"If ``.hgsub`` does not exist, create it and add it to the parent\n"
+"repository. Clone or checkout the external projects where you want it\n"
+"to live in the parent repository. Edit ``.hgsub`` and add the\n"
+"subrepository entry as described above. At this point, the\n"
+"subrepository is tracked and the next commit will record its state in\n"
+"``.hgsubstate`` and bind it to the committed changeset."
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Synchronizing a Subrepository\n"
+"-----------------------------"
+msgstr ""
+"Zweigbasierte Zugriffskontrolle\n"
+"-------------------------------"
+
+msgid ""
+"Subrepos do not automatically track the latest changeset of their\n"
+"sources. Instead, they are updated to the changeset that corresponds\n"
+"with the changeset checked out in the top-level changeset. This is so\n"
+"developers always get a consistent set of compatible code and\n"
+"libraries when they update."
+msgstr ""
+
+msgid ""
+"Thus, updating subrepos is a manual process. Simply check out target\n"
+"subrepo at the desired revision, test in the top-level repo, then\n"
+"commit in the parent repository to record the new combination."
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Deleting a Subrepository\n"
+"------------------------"
+msgstr ""
+"Beispiel-Konfiguration\n"
+"----------------------"
+
+msgid ""
+"To remove a subrepository from the parent repository, delete its\n"
+"reference from ``.hgsub``, then remove its files."
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Interaction with Mercurial Commands\n"
+"-----------------------------------"
+msgstr ""
+"Zweigbasierte Zugriffskontrolle\n"
+"-------------------------------"
+
+msgid ""
+":add: add does not recurse in subrepos unless -S/--subrepos is\n"
+"    specified. Subversion subrepositories are currently silently\n"
+"    ignored."
+msgstr ""
+
+msgid ""
+":archive: archive does not recurse in subrepositories unless\n"
+"    -S/--subrepos is specified."
+msgstr ""
+
+msgid ""
+":commit: commit creates a consistent snapshot of the state of the\n"
+"    entire project and its subrepositories. It does this by first\n"
+"    attempting to commit all modified subrepositories, then recording\n"
+"    their state and finally committing it in the parent\n"
+"    repository. Mercurial can be made to abort if any subrepository\n"
+"    content is modified by setting \"ui.commitsubrepos=no\" in a\n"
+"    configuration file (see :hg:`help config`)."
+msgstr ""
+
+msgid ""
+":diff: diff does not recurse in subrepos unless -S/--subrepos is\n"
+"    specified. Changes are displayed as usual, on the subrepositories\n"
+"    elements. Subversion subrepositories are currently silently\n"
+"    ignored."
+msgstr ""
+
+msgid ""
+":incoming: incoming does not recurse in subrepos unless -S/--subrepos\n"
+"    is specified. Subversion subrepositories are currently silently\n"
+"    ignored."
+msgstr ""
+
+msgid ""
+":outgoing: outgoing does not recurse in subrepos unless -S/--subrepos\n"
+"    is specified. Subversion subrepositories are currently silently\n"
+"    ignored."
+msgstr ""
+
+msgid ""
+":pull: pull is not recursive since it is not clear what to pull prior\n"
+"    to running :hg:`update`. Listing and retrieving all\n"
+"    subrepositories changes referenced by the parent repository pulled\n"
+"    changesets is expensive at best, impossible in the Subversion\n"
+"    case."
+msgstr ""
+
+msgid ""
+":push: Mercurial will automatically push all subrepositories first\n"
+"    when the parent repository is being pushed. This ensures new\n"
+"    subrepository changes are available when referenced by top-level\n"
+"    repositories."
+msgstr ""
+
+msgid ""
+":status: status does not recurse into subrepositories unless\n"
+"    -S/--subrepos is specified. Subrepository changes are displayed as\n"
+"    regular Mercurial changes on the subrepository\n"
+"    elements. Subversion subrepositories are currently silently\n"
+"    ignored."
+msgstr ""
+
+msgid ""
+":update: update restores the subrepos in the state they were\n"
+"    originally committed in target changeset. If the recorded\n"
+"    changeset is not available in the current subrepository, Mercurial\n"
+"    will pull it in first before updating.  This means that updating\n"
+"    can require network access when using subrepositories."
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Remapping Subrepositories Sources\n"
+"---------------------------------"
+msgstr ""
+"Zweigbasierte Zugriffskontrolle\n"
+"-------------------------------"
+
+msgid ""
+"A subrepository source location may change during a project life,\n"
+"invalidating references stored in the parent repository history. To\n"
+"fix this, rewriting rules can be defined in parent repository ``hgrc``\n"
+"file or in Mercurial configuration. See the ``[subpaths]`` section in\n"
+"hgrc(5) for more details."
+msgstr ""
 
 msgid ""
 "Mercurial allows you to customize output of commands through\n"
@@ -14410,9 +14828,11 @@
 msgid ":author: String. The unmodified author of the changeset."
 msgstr ":author: Zeichenkette. Der unveränderte Autor eines Änderungssatzes."
 
-msgid ""
-":branches: String. The name of the branch on which the changeset was\n"
-"    committed. Will be empty if the branch name was default."
+#, fuzzy
+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: Zeichenkette. Der Name des Zweiges, in dem der Änderungssatz\n"
 "    versioniert wurde. Ist leer, wenn der Zweig-Name default ist."
@@ -14588,6 +15008,11 @@
 ":escape: Beliebiger Text. Ersetzt die besonderen XML/XHTML-Zeichen\n"
 "    \"&\", \"<\" und \">\" mit XML-Entitäten."
 
+msgid ""
+":hex: Any text. Convert a binary Mercurial node identifier into\n"
+"    its long hexadecimal representation."
+msgstr ""
+
 msgid ":fill68: Any text. Wraps the text to fit in 68 columns."
 msgstr ":fill68: Beliebiger Text. Umbricht den Text bei 68 Zeichen."
 
@@ -14699,12 +15124,13 @@
 msgid "Valid URLs are of the form::"
 msgstr "Gültige URLs haben folgende Form::"
 
+#, fuzzy
 msgid ""
 "  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]"
+"  ssh://[user@]host[:port]/[path][#revision]"
 msgstr ""
 "  lokaler/dateisystem/pfad[#revision]\n"
 "  file://lokales/dateisystem/pfad[#revision]\n"
@@ -14712,10 +15138,11 @@
 "  https://[nutzer[:pass]@]host[:port]/[pfad][#revision]\n"
 "  ssh://[nutzer[:pass]@]host[:port]/[pfad][#revision]"
 
+#, fuzzy
 msgid ""
 "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`)."
+"incoming --bundle`). See also :hg:`help paths`."
 msgstr ""
 "Pfade im lokalen Dateisystem können auf ein Mercurial-Archiv oder Bündel-\n"
 "dateien verweisen (wie sie von :hg:`bundle` oder :hg: `incoming --bundle`\n"
@@ -14739,6 +15166,11 @@
 "nur dann möglich, wenn diese Funktionen explizit auf dem entfernten\n"
 "Mercurial-Server aktiviert sind."
 
+msgid ""
+"Note that the security of HTTPS URLs depends on proper configuration of\n"
+"web.cacerts."
+msgstr ""
+
 msgid "Some notes about using SSH with Mercurial:"
 msgstr "Einige Hinweise zur Nutzung von SSH mit Mercurial:"
 
@@ -14905,6 +15337,10 @@
 msgid "(branch merge, don't forget to commit)\n"
 msgstr "(Zusammenführen von Zweigen, vergiss nicht 'hg commit' auszuführen)\n"
 
+#, fuzzy, python-format
+msgid "config file %s not found!"
+msgstr "Datei nicht gefunden!"
+
 #, python-format
 msgid "error reading %s/.hg/hgrc: %s\n"
 msgstr "Fehler beim Lesen von %s/.hg/hgrc: %s\n"
@@ -15051,6 +15487,10 @@
 msgid ".hg/sharedpath points to nonexistent directory %s"
 msgstr ".hg/sharedpath zeigt auf nicht existierendes Verzeichnis %s"
 
+#, fuzzy, python-format
+msgid "warning: ignoring unknown working parent %s!\n"
+msgstr "Arbeitsverzeichnis hat unbekannte Vaterversion '%s'!"
+
 #, python-format
 msgid "%r cannot be used in a tag name"
 msgstr "%r kann nicht in einem Tagnamen genutzt werden"
@@ -15112,6 +15552,10 @@
 msgid "working directory of %s"
 msgstr "Arbeitsverzeichnis von %s"
 
+#, python-format
+msgid "warning: can't find ancestor for '%s' copied from '%s'!\n"
+msgstr ""
+
 msgid "cannot partially commit a merge (do not specify files or patterns)"
 msgstr ""
 "Das Zusammenführen kann nicht teilweise gespeichert werden (gib keine "
@@ -15120,6 +15564,10 @@
 msgid "can't commit subrepos without .hgsub"
 msgstr "Kann Unterarchiv nicht ohne .hgsub speichern"
 
+#, fuzzy, python-format
+msgid "uncommitted changes in subrepo %s"
+msgstr "Änderungssatz %d erzeugt:%s\n"
+
 msgid "file not found!"
 msgstr "Datei nicht gefunden!"
 
@@ -15155,30 +15603,33 @@
 "changegroupsubset nicht unterstützt."
 
 #, python-format
+msgid "updating bookmark %s\n"
+msgstr "Aktualisiere Lesezeichen %s\n"
+
+#, python-format
+msgid "not updating divergent bookmark %s\n"
+msgstr "Aktualisiere nicht divergierendes Lesezeichen %s\n"
+
+#, python-format
 msgid "%d changesets found\n"
 msgstr "%d Änderungssätze gefunden\n"
 
-msgid "bundling changes"
-msgstr "Bündle Änderungen"
-
-msgid "chunks"
-msgstr "Blöcke"
-
-msgid "bundling manifests"
-msgstr "Bündle Manifeste"
+#, fuzzy
+msgid "bundling"
+msgstr "Bündle Dateien"
+
+msgid "manifests"
+msgstr "Manifeste"
 
 #, python-format
 msgid "empty or missing revlog for %s"
 msgstr "Leeres oder fehlendes Revlog für %s"
 
-msgid "bundling files"
-msgstr "Bündle Dateien"
-
 msgid "adding changesets\n"
 msgstr "Füge Änderungssätze hinzu\n"
 
-msgid "changesets"
-msgstr "Änderungssätze"
+msgid "chunks"
+msgstr "Blöcke"
 
 msgid "received changelog group is empty"
 msgstr "Erhaltene Changelog-Gruppe ist leer"
@@ -15186,9 +15637,6 @@
 msgid "adding manifests\n"
 msgstr "Füge Manifeste hinzu\n"
 
-msgid "manifests"
-msgstr "Manifeste"
-
 msgid "adding file changes\n"
 msgstr "Füge Dateiänderungen hinzu\n"
 
@@ -15230,6 +15678,13 @@
 msgid "transferred %s in %.1f seconds (%s/sec)\n"
 msgstr "%s in %.1f Sekunden übertragen (%s/Sek)\n"
 
+msgid "can't use TLS: Python SSL support not installed"
+msgstr "Kann TLS nicht benutzen: SSL-Unterstützung nicht in Python installiert"
+
+#, fuzzy
+msgid "(using smtps)\n"
+msgstr "(benutze TLS)\n"
+
 msgid "smtp.host not configured - cannot send mail"
 msgstr "smtp.host nicht konfiguriert -- kann keine E-Mail versenden"
 
@@ -15237,10 +15692,8 @@
 msgid "sending mail: smtp host %s, port %s\n"
 msgstr "Sende E-Mail: SMTP-Host %s, Port %s\n"
 
-msgid "can't use TLS: Python SSL support not installed"
-msgstr "Kann TLS nicht benutzen: SSL-Unterstützung nicht in Python installiert"
-
-msgid "(using tls)\n"
+#, fuzzy
+msgid "(using starttls)\n"
 msgstr "(benutze TLS)\n"
 
 #, python-format
@@ -15284,6 +15737,10 @@
 msgid "invalid pattern"
 msgstr "Ungültiges Muster"
 
+#, fuzzy, python-format
+msgid "unable to read file list (%s)"
+msgstr "Fehler beim Lesen der Datei %s"
+
 #, python-format
 msgid "diff context lines count must be an integer, not %r"
 msgstr "Zeilenangaben im Diff-Kontext müssen Zahlen sein, nicht %r"
@@ -15359,8 +15816,8 @@
 msgstr ""
 
 #, python-format
-msgid "warning: detected divergent renames of %s to:\n"
-msgstr "Warnung: abweichende Umbenennungen von %s entdeckt:\n"
+msgid "note: possible conflict - %s was renamed multiple times to:\n"
+msgstr ""
 
 #, python-format
 msgid "branch %s not found"
@@ -15379,16 +15836,46 @@
 "Ausstehende nicht versionierte Änderungen (nutze 'hg status' zur Auflistung "
 "der Änderungen)"
 
-msgid ""
-"crosses branches (use 'hg merge' to merge or use 'hg update -C' to discard "
-"changes)"
+#, fuzzy
+msgid "crosses branches (merge branches or use --clean to discard changes)"
 msgstr ""
 "kreuzt Zweige (nutze 'hg merge' zum Zusammenführen oder 'hg update -C' um "
 "die Änderungen zu verwerfen)"
 
-msgid "crosses branches (use 'hg merge' or use 'hg update -c')"
+#, fuzzy
+msgid "crosses branches (merge branches or use --check to force update)"
 msgstr "kreuzt Zweige (nutze 'hg merge' oder 'hg update -c')"
 
+msgid "Attention:"
+msgstr ""
+
+msgid "Caution:"
+msgstr ""
+
+msgid "!Danger!"
+msgstr ""
+
+#, fuzzy
+msgid "Error:"
+msgstr "%s-Fehler:\n"
+
+msgid "Hint:"
+msgstr ""
+
+msgid "Important:"
+msgstr ""
+
+#, fuzzy
+msgid "Note:"
+msgstr "Entfernt: "
+
+msgid "Tip:"
+msgstr ""
+
+#, fuzzy
+msgid "Warning!"
+msgstr "Führe aus: %s\n"
+
 #, python-format
 msgid "cannot create %s: destination already exists"
 msgstr "Kann %s nicht anlegen: Zielverzeichnis existiert bereits"
@@ -15409,8 +15896,8 @@
 #, python-format
 msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n"
 msgstr ""
-"%d von %d Teilstücken sind FEHLGESCHLAGEN -- speichere Ausschuss in Datei %"
-"s\n"
+"%d von %d Teilstücken sind FEHLGESCHLAGEN -- speichere Ausschuss in Datei "
+"%s\n"
 
 #, python-format
 msgid "bad hunk #%d %s (%d %d %d %d)"
@@ -15475,14 +15962,8 @@
 msgid "unsupported line endings type: %s"
 msgstr "Nicht unterstütztes Zeilenende: %s"
 
-msgid ""
-"internal patcher failed\n"
-"please report details to http://mercurial.selenic.com/bts/\n"
-"or mercurial@selenic.com\n"
-msgstr ""
-"Fehlschlag des internen patch-Werkzeugs.\n"
-"Bitte melden Sie diesen Fehler bei http://mercurial.selenic.com/bts/\n"
-"oder mercurial@selenic.com\n"
+msgid "patch failed to apply"
+msgstr "Patch schlug fehl"
 
 #, python-format
 msgid " %d files changed, %d insertions(+), %d deletions(-)\n"
@@ -15557,12 +16038,13 @@
 msgid "%s not found in the transaction"
 msgstr "%s nicht in Transaktion gefunden"
 
+#, fuzzy
+msgid "consistency error in delta"
+msgstr "Konsistenzfehler beim Hinzufügen der Gruppe"
+
 msgid "unknown base"
 msgstr "unbekannte Basis"
 
-msgid "consistency error adding group"
-msgstr "Konsistenzfehler beim Hinzufügen der Gruppe"
-
 msgid "unterminated string"
 msgstr "nicht abgeschlossene Zeichenkette"
 
@@ -15583,65 +16065,383 @@
 msgid "not a function: %s"
 msgstr "keine Funktion: %s"
 
-msgid "limit wants two arguments"
+msgid ""
+"``id(string)``\n"
+"    Revision non-ambiguously specified by the given hex string prefix."
+msgstr ""
+
+#. i18n: "id" is a keyword
+#, fuzzy
+msgid "id requires one argument"
+msgstr "head erwartet keine Argumente"
+
+#. i18n: "id" is a keyword
+#, fuzzy
+msgid "id requires a string"
+msgstr "date erwartet eine Zeichenkette"
+
+msgid ""
+"``rev(number)``\n"
+"    Revision with the given numeric identifier."
+msgstr ""
+
+#. i18n: "rev" is a keyword
+#, fuzzy
+msgid "rev requires one argument"
+msgstr "merge erwartet keine Argumente"
+
+#. i18n: "rev" is a keyword
+#, fuzzy
+msgid "rev requires a number"
+msgstr "limit erwartet eine Zahl"
+
+#. i18n: "rev" is a keyword
+#, fuzzy
+msgid "rev expects a number"
+msgstr "limit erwartet eine Zahl"
+
+#, fuzzy
+msgid ""
+"``p1([set])``\n"
+"    First parent of changesets in set, or the working directory."
+msgstr ""
+"``p1(set)``\n"
+"  Erster Vorfahr der Änderungssätze in set."
+
+#, fuzzy
+msgid ""
+"``p2([set])``\n"
+"    Second parent of changesets in set, or the working directory."
+msgstr ""
+"``p2(set)``\n"
+"  Zweiter Vorfahr der Änderungssätze in set."
+
+#, fuzzy
+msgid ""
+"``parents([set])``\n"
+"    The set of all parents for all changesets in set, or the working "
+"directory."
+msgstr ""
+"``parents(set)``\n"
+"  Die Menge aller Eltern für die Änderungssätze in set."
+
+#, fuzzy
+msgid ""
+"``max(set)``\n"
+"    Changeset with highest revision number in set."
+msgstr ""
+"``max(set)``\n"
+"  Änderungssatz mit der größten Revisionsnummer in set."
+
+#, fuzzy
+msgid ""
+"``min(set)``\n"
+"    Changeset with lowest revision number in set."
+msgstr ""
+"``min(set)``\n"
+"  Änderungssatz mit der kleinsten Revisionsnummer in set."
+
+#, fuzzy
+msgid ""
+"``limit(set, n)``\n"
+"    First n members of set."
+msgstr ""
+"``limit(set, n)``\n"
+"  Die ersten n Elemente aus set."
+
+#. i18n: "limit" is a keyword
+#, fuzzy
+msgid "limit requires two arguments"
 msgstr "limit erwartet zwei Argumente"
 
-msgid "limit wants a number"
-msgstr "limit verlangt eine Zahl"
-
+#. i18n: "limit" is a keyword
+#, fuzzy
+msgid "limit requires a number"
+msgstr "limit erwartet eine Zahl"
+
+#. i18n: "limit" is a keyword
 msgid "limit expects a number"
 msgstr "limit erwartet eine Zahl"
 
-msgid "ancestor wants two arguments"
+#, fuzzy
+msgid ""
+"``children(set)``\n"
+"    Child changesets of changesets in set."
+msgstr ""
+"``children(set)``\n"
+"  Kinder-Änderungssätze der Änderungssätze in set."
+
+#, fuzzy
+msgid ""
+"``branch(set)``\n"
+"    All changesets belonging to the branches of changesets in set."
+msgstr ""
+"``branch(set)``\n"
+"  Alle Änderungssätze, die zu den Zweigen aus den Änderungssätzen\n"
+"  aus set gehören."
+
+#, fuzzy
+msgid ""
+"``ancestor(single, single)``\n"
+"    Greatest common ancestor of the two changesets."
+msgstr ""
+"``ancestor(single, single)``\n"
+"  Größter gemeinsamer Vorfahre der beiden Änderungssätze."
+
+#. i18n: "ancestor" is a keyword
+#, fuzzy
+msgid "ancestor requires two arguments"
 msgstr "ancestor erwartet zwei Argumente"
 
+#. i18n: "ancestor" is a keyword
 msgid "ancestor arguments must be single revisions"
 msgstr "ancestors erwartet einzelne Revisionen als Argumente"
 
+#, fuzzy
+msgid ""
+"``ancestors(set)``\n"
+"    Changesets that are ancestors of a changeset in set."
+msgstr ""
+"``ancestors(set)``\n"
+"  Änderungssätze, die Vorfahren der Änderungssätze aus set sind."
+
+#, fuzzy
+msgid ""
+"``descendants(set)``\n"
+"    Changesets which are descendants of changesets in set."
+msgstr ""
+"``descendants(set)``\n"
+"  Änderungssätze, die Nachkommen der Änderungssätze in set sind."
+
+#, fuzzy
+msgid ""
+"``follow()``\n"
+"    An alias for ``::.`` (ancestors of the working copy's first parent)."
+msgstr ""
+"``follow()``\n"
+"  Ein Alias für ``::.`` (Vorfahren in der ersten Eltern-Revision der\n"
+"  Arbeitskopie)."
+
+#. i18n: "follow" is a keyword
 msgid "follow takes no arguments"
 msgstr "follow erwartet keine Argumente"
 
-msgid "date wants a string"
+#, fuzzy
+msgid ""
+"``date(interval)``\n"
+"    Changesets within the interval, see :hg:`help dates`."
+msgstr ""
+"``date(intervall)``\n"
+"  Änderungssätze innerhalb des Intervalls, siehe auch :hg:`help dates`."
+
+#. i18n: "date" is a keyword
+#, fuzzy
+msgid "date requires a string"
 msgstr "date erwartet eine Zeichenkette"
 
-msgid "keyword wants a string"
+#, fuzzy
+msgid ""
+"``keyword(string)``\n"
+"    Search commit message, user name, and names of changed files for\n"
+"    string."
+msgstr ""
+"``keyword(zeichenkette)``\n"
+"  Sucht die Zeichenketten in der Commit-Nachricht, dem Benutzernamen\n"
+"  und der Liste geänderter Dateien."
+
+#. i18n: "keyword" is a keyword
+#, fuzzy
+msgid "keyword requires a string"
 msgstr "keyword erwartet eine Zeichenkette"
 
-msgid "grep wants a string"
+msgid ""
+"``grep(regex)``\n"
+"    Like ``keyword(string)`` but accepts a regex. Use ``grep(r'...')``\n"
+"    to ensure special escape characters are handled correctly."
+msgstr ""
+
+#. i18n: "grep" is a keyword
+#, fuzzy
+msgid "grep requires a string"
 msgstr "grep erwartet eine Zeichenkette"
 
 #, fuzzy, python-format
 msgid "invalid match pattern: %s"
 msgstr "grep: Ungültiges Suchmuster: %s\n"
 
-msgid "author wants a string"
+#, fuzzy
+msgid ""
+"``author(string)``\n"
+"    Alias for ``user(string)``."
+msgstr ""
+"``author(zeichenkette)``\n"
+"  Alias für ``user(zeichenkette)``."
+
+#. i18n: "author" is a keyword
+#, fuzzy
+msgid "author requires a string"
 msgstr "author erwartet eine Zeichenkette"
 
-msgid "file wants a pattern"
+#, fuzzy
+msgid ""
+"``user(string)``\n"
+"    User name is string."
+msgstr ""
+"``user(string)``\n"
+"  Der Benutzername ist eine Zeichenkette."
+
+#, fuzzy
+msgid ""
+"``file(pattern)``\n"
+"    Changesets affecting files matched by pattern."
+msgstr ""
+"``file(muster)``\n"
+"  Änderungssätze, die Dateien betroffen haben, die auf das Muster passen."
+
+#. i18n: "file" is a keyword
+#, fuzzy
+msgid "file requires a pattern"
 msgstr "file erwartet ein Muster"
 
-msgid "contains wants a pattern"
+#, fuzzy
+msgid ""
+"``contains(pattern)``\n"
+"    Revision contains pattern."
+msgstr ""
+"``contains(muster)``\n"
+"  Revision enthält das Muster."
+
+#. i18n: "contains" is a keyword
+#, fuzzy
+msgid "contains requires a pattern"
 msgstr "contains erwartet ein Muster"
 
-msgid "modifies wants a pattern"
+#, fuzzy
+msgid ""
+"``modifies(pattern)``\n"
+"    Changesets modifying files matched by pattern."
+msgstr ""
+"``modifies(muster)``\n"
+"  Änderungssätze, die Dateien verändert, die auf das Muster passen."
+
+#. i18n: "modifies" is a keyword
+#, fuzzy
+msgid "modifies requires a pattern"
 msgstr "modifies erwartet ein Muster"
 
-msgid "adds wants a pattern"
+#, fuzzy
+msgid ""
+"``adds(pattern)``\n"
+"    Changesets that add a file matching pattern."
+msgstr ""
+"``adds(muster)``\n"
+"  Änderungssätze, die Dateien hinzufügen, die auf das Muster passen."
+
+#. i18n: "adds" is a keyword
+#, fuzzy
+msgid "adds requires a pattern"
 msgstr "adds erwartet ein Muster"
 
-msgid "removes wants a pattern"
+#, fuzzy
+msgid ""
+"``removes(pattern)``\n"
+"    Changesets which remove files matching pattern."
+msgstr ""
+"``removes(muster)``\n"
+"  Änderungssätze, die Dateien entfernten, die auf das Muster passen."
+
+#. i18n: "removes" is a keyword
+#, fuzzy
+msgid "removes requires a pattern"
 msgstr "removes erwartet ein Muster"
 
+#, fuzzy
+msgid ""
+"``merge()``\n"
+"    Changeset is a merge changeset."
+msgstr ""
+"``merge()``\n"
+"  Änderungssatz ist eine Zusammenführung."
+
+#. i18n: "merge" is a keyword
 msgid "merge takes no arguments"
 msgstr "merge erwartet keine Argumente"
 
+#, fuzzy
+msgid ""
+"``closed()``\n"
+"    Changeset is closed."
+msgstr ""
+"``closed()``\n"
+"  Änderungssatz ist geschlossen."
+
+#. i18n: "closed" is a keyword
 msgid "closed takes no arguments"
 msgstr "closed erwartet keine Argumente"
 
+#, fuzzy
+msgid ""
+"``head()``\n"
+"    Changeset is a named branch head."
+msgstr ""
+"``head()``\n"
+"  Änderungssatz ist ein Kopf (hat keine Kinder)."
+
+#. i18n: "head" is a keyword
 msgid "head takes no arguments"
 msgstr "head erwartet keine Argumente"
 
-msgid "sort wants one or two arguments"
+#, fuzzy
+msgid ""
+"``reverse(set)``\n"
+"    Reverse order of set."
+msgstr ""
+"``reverse(set)``\n"
+"  Kehrt die Reihenfolge von set um."
+
+#, fuzzy
+msgid ""
+"``present(set)``\n"
+"    An empty set, if any revision in set isn't found; otherwise,\n"
+"    all revisions in set."
+msgstr ""
+"``present(set)``\n"
+"  Ein leeres Set, wenn keine Revision in set gefunden wurde, ansonsten\n"
+"  alle Revisionen aus dem angegebenen Set."
+
+#, fuzzy
+msgid ""
+"``sort(set[, [-]key...])``\n"
+"    Sort set by keys. The default sort order is ascending, specify a key\n"
+"    as ``-key`` to sort in descending order."
+msgstr ""
+"``sort(set[, [-]key...])``\n"
+"  Sortiert set anhand des Schlüssels key. Die Standard-Reihenfolge\n"
+"  ist aufsteigend, geben Sie einen Schlüssel in der Form ``-key`` an,\n"
+"  um absteigend zu sortieren."
+
+#, fuzzy
+msgid "    The keys can be:"
+msgstr "  Der key kann einer der folgenden sein:"
+
+#, fuzzy
+msgid ""
+"    - ``rev`` for the revision number,\n"
+"    - ``branch`` for the branch name,\n"
+"    - ``desc`` for the commit message (description),\n"
+"    - ``user`` for user name (``author`` can be used as an alias),\n"
+"    - ``date`` for the commit date"
+msgstr ""
+"  - ``rev`` für die Revisionsnummer,\n"
+"  - ``branch`` für den Zweignamen,\n"
+"  - ``desc`` für die Commit-Nachricht (description),\n"
+"  - ``user`` für den Benutzernamen (``author`` kann als Alias\n"
+"    genutzt werden),\n"
+"  - ``date`` für das Datum des Commits"
+
+#. i18n: "sort" is a keyword
+#, fuzzy
+msgid "sort requires one or two arguments"
 msgstr "sort verlangt ein oder zwei Argumente"
 
 msgid "sort spec must be a string"
@@ -15651,15 +16451,78 @@
 msgid "unknown sort key %r"
 msgstr "Unbekannter Sortiermodus: %r"
 
+#, fuzzy
+msgid ""
+"``all()``\n"
+"    All changesets, the same as ``0:tip``."
+msgstr ""
+"``all()``\n"
+"  Alle Änderungssätze, entspricht ``0:tip``."
+
+#. i18n: "all" is a keyword
 msgid "all takes no arguments"
 msgstr "all erwartet keine Argumente"
 
-msgid "outgoing wants a repository path"
+#, fuzzy
+msgid ""
+"``heads(set)``\n"
+"    Members of set with no children in set."
+msgstr ""
+"``heads(set)``\n"
+"  Elemente aus set, die keine Kinder in set haben."
+
+#, fuzzy
+msgid ""
+"``roots(set)``\n"
+"    Changesets with no parent changeset in set."
+msgstr ""
+"``roots(set)``\n"
+"  Änderungssätze ohne Eltern in set."
+
+#, fuzzy
+msgid ""
+"``outgoing([path])``\n"
+"    Changesets not found in the specified destination repository, or the\n"
+"    default push location."
+msgstr ""
+"``outgoing([pfad])``\n"
+"  Änderungssätze, die nicht im angegebenen Ziel-Archiv oder dem\n"
+"  Standard Push-Ziel vorhanden sind,"
+
+#. i18n: "outgoing" is a keyword
+#, fuzzy
+msgid "outgoing requires a repository path"
 msgstr "outgoing verlangt einen Projektarchivpfad"
 
-msgid "tagged takes no arguments"
+msgid ""
+"``tag(name)``\n"
+"    The specified tag by name, or all tagged revisions if no name is given."
+msgstr ""
+
+#. i18n: "tag" is a keyword
+#, fuzzy
+msgid "tag takes one or no arguments"
 msgstr "tagged erwartet keine Argumente"
 
+#. i18n: "tag" is a keyword
+#, fuzzy
+msgid "the argument to tag must be a string"
+msgstr "Sortiermodus muss eine Zeichenkette sein"
+
+msgid ""
+"``bookmark([name])``\n"
+"    The named bookmark or all bookmarks."
+msgstr ""
+
+#. i18n: "bookmark" is a keyword
+#, fuzzy
+msgid "bookmark takes one or no arguments"
+msgstr "sort verlangt ein oder zwei Argumente"
+
+#. i18n: "bookmark" is a keyword
+msgid "the argument to bookmark must be a string"
+msgstr "'bookmark' erwartet eine Zeichenkette als Parameter"
+
 msgid "can't negate that"
 msgstr "kann dies nicht negieren"
 
@@ -15719,6 +16582,10 @@
 msgid "invalid entry in fncache, line %s"
 msgstr "Ungültiger Eintrag in fncache, Zeile %s"
 
+#, fuzzy, python-format
+msgid "warning: subrepo spec file %s not found\n"
+msgstr "Konfigurationsdatei %s für das Unterarchiv nicht gefunden"
+
 #, python-format
 msgid "subrepo spec file %s not found"
 msgstr "Konfigurationsdatei %s für das Unterarchiv nicht gefunden"
@@ -15757,13 +16624,37 @@
 " Entferntes Unterarchiv ändert %s, aber lokales löscht.\n"
 "Nutze (c) geänderte Version oder (d) lösche?"
 
+#, fuzzy, python-format
+msgid ""
+" subrepository sources for %s differ\n"
+"use (l)ocal source (%s) or (r)emote source (%s)?\n"
+msgstr ""
+" Unterarchivquellen für %s sind verschieden.\n"
+"Nutze (l)okale Quelle (%s) oder entfe(r)nte Quelle (%s)?"
+
+#, fuzzy, python-format
+msgid ""
+" subrepository sources for %s differ (in checked out version)\n"
+"use (l)ocal source (%s) or (r)emote source (%s)?\n"
+msgstr ""
+" Unterarchivquellen für %s sind verschieden.\n"
+"Nutze (l)okale Quelle (%s) oder entfe(r)nte Quelle (%s)?"
+
+#, fuzzy, python-format
+msgid "default path for subrepository %s not found"
+msgstr "Projektarchiv %s nicht gefunden"
+
 #, python-format
 msgid "unknown subrepo type %s"
 msgstr "Unbekannter Unterarchivtyp %s"
 
-#, python-format
-msgid "warning: %s in %s\n"
-msgstr "Warnung: %s in %s\n"
+#, fuzzy, python-format
+msgid "archiving (%s)"
+msgstr "Entferne %s\n"
+
+#, fuzzy, python-format
+msgid "warning: error \"%s\" in subrepository \"%s\"\n"
+msgstr "Übernehme Unterarchiv %s\n"
 
 #, python-format
 msgid "removing subrepo %s\n"
@@ -15784,6 +16675,39 @@
 msgid "not removing repo %s because it has changes.\n"
 msgstr "Entferne Projektarchiv %s nicht, da es Änderungen enthält.\n"
 
+#, fuzzy, python-format
+msgid "cloning subrepo %s\n"
+msgstr "Entferne Unterarchiv %s\n"
+
+#, fuzzy, python-format
+msgid "pulling subrepo %s\n"
+msgstr "Rufe Unterarchiv %s von %s ab\n"
+
+#, fuzzy, python-format
+msgid "revision %s does not exist in subrepo %s\n"
+msgstr "Revision %s ist keine Patchsatz-Nummer"
+
+#, python-format
+msgid "checking out detached HEAD in subrepo %s\n"
+msgstr ""
+
+msgid "check out a git branch if you intend to make changes\n"
+msgstr ""
+
+#, python-format
+msgid "unrelated git branch checked out in subrepo %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "pushing branch %s of subrepo %s\n"
+msgstr "Übertrage Unterarchiv %s zu %s\n"
+
+#, python-format
+msgid ""
+"no branch checked out in subrepo %s\n"
+"cannot push revision %s"
+msgstr ""
+
 #, python-format
 msgid "%s, line %s: %s\n"
 msgstr "%s, Zeile %s: %s\n"
@@ -15795,21 +16719,39 @@
 msgid "node '%s' is not well formed"
 msgstr "Knoten '%s' ist nicht wohlgeformt"
 
+msgid ".hg/cache/tags is corrupt, rebuilding it\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "unknown method '%s'"
+msgstr "Unbekannte Revision '%s'"
+
+#, fuzzy
+msgid "expected a symbol"
+msgstr "kein Symbol"
+
+#, fuzzy, python-format
+msgid "unknown function '%s'"
+msgstr "Unbekannte Revision '%s'"
+
+msgid "expected template specifier"
+msgstr ""
+
+#, python-format
+msgid "filter %s expects one argument"
+msgstr ""
+
 msgid "unmatched quotes"
 msgstr "unpassende Anführungszeichen"
 
 #, python-format
-msgid "error expanding '%s%%%s'"
-msgstr "Fehler beim Auflösen von '%s%%%s'"
-
-#, python-format
-msgid "unknown filter '%s'"
-msgstr "Unbekannter Filter '%s'"
-
-#, python-format
 msgid "style not found: %s"
 msgstr "Stil nicht gefunden: %s"
 
+#, fuzzy, python-format
+msgid "\"%s\" not in template map"
+msgstr "Anzeige unter Nutzung der Vorlagenzuordnungsdatei"
+
 #, python-format
 msgid "template file %s: %s"
 msgstr "Vorlagendatei %s: %s"
@@ -15840,6 +16782,10 @@
 msgstr "Ignoriert: %s\n"
 
 #, python-format
+msgid "(deprecated '%%' in path %s=%s from %s)\n"
+msgstr "(veraltete Angabe '%%' im Pfad %s=%s aus %s)\n"
+
+#, python-format
 msgid "ignoring untrusted configuration option %s.%s = %s\n"
 msgstr "Ignoriere nicht vertrauenswürdige Einstellung %s.%s = %s\n"
 
@@ -15861,10 +16807,6 @@
 msgid "username %s contains a newline\n"
 msgstr "Benutzername %s enthält einen Zeilenumbruch\n"
 
-#, python-format
-msgid "(deprecated '%%' in path %s=%s from %s)\n"
-msgstr "(veraltete Angabe '%%' im Pfad %s=%s aus %s)\n"
-
 msgid "response expected"
 msgstr "Antwort erwartet"
 
@@ -15877,6 +16819,10 @@
 msgid "edit failed"
 msgstr "Bearbeiten fehlgeschlagen"
 
+#, python-format
+msgid "ignoring invalid [auth] key '%s'\n"
+msgstr "Ignoriere ungültige [auth] Schlüssel '%s'\n"
+
 msgid "http authorization required"
 msgstr "HTTP-Autorisierung erforderlich"
 
@@ -15898,20 +16844,57 @@
 msgid "http auth: user %s, password %s\n"
 msgstr "HTTP-Auth: Benutzer %s, Passwort %s\n"
 
-#, python-format
-msgid "ignoring invalid [auth] key '%s'\n"
-msgstr "Ignoriere ungültige [auth] Schlüssel '%s'\n"
+msgid "kb"
+msgstr ""
 
 msgid "certificate checking requires Python 2.6"
 msgstr "Zur Überprüfung von Zertifikaten wird Python 2.6 benötigt"
 
-msgid "server identity verification succeeded\n"
-msgstr "Identität des Servers wurde erfolgreich verifiziert\n"
+#, fuzzy
+msgid "no certificate received"
+msgstr "SSL-Zertifikatsdatei"
+
+#, fuzzy, python-format
+msgid "certificate is for %s"
+msgstr "SSL-Zertifikatsdatei"
+
+msgid "IDN in certificate not supported"
+msgstr ""
+
+msgid "no commonName or subjectAltName found in certificate"
+msgstr ""
+
+#, python-format
+msgid "%s certificate error: %s (use --insecure to connect insecurely)"
+msgstr ""
+
+#, python-format
+msgid "invalid certificate for %s with fingerprint %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"warning: %s certificate with fingerprint %s not verified (check "
+"hostfingerprints or web.cacerts config setting)\n"
+msgstr ""
+
+#, python-format
+msgid "no certificate for %s with configured hostfingerprint"
+msgstr ""
+
+#, python-format
+msgid ""
+"warning: %s certificate not verified (check web.cacerts config setting)\n"
+msgstr ""
 
 #, python-format
 msgid "command '%s' failed: %s"
 msgstr "Befehl '%s' fehlgeschlagen: %s"
 
+#, fuzzy, python-format
+msgid "path ends in directory separator: %s"
+msgstr "Arbeitsverzeichnis wurde als Zweig %s markiert\n"
+
 #, python-format
 msgid "path contains illegal component: %s"
 msgstr "Pfad enthält ungültige Komponente: %s"
@@ -15924,13 +16907,17 @@
 msgid "path %r traverses symbolic link %r"
 msgstr "Pfad %r überschreitet symbolische Verknüpfung %r"
 
-msgid "Hardlinks not supported"
-msgstr "Hardlinks nicht unterstützt"
-
 #, python-format
 msgid "could not symlink to %r: %s"
 msgstr "Konnte symbolische Verknüpfung auf %r nicht erzeugen: %s"
 
+msgid "check your clock"
+msgstr ""
+
+#, python-format
+msgid "negative timestamp: %d"
+msgstr ""
+
 #, python-format
 msgid "invalid date: %r"
 msgstr "Ungültiges Datum: %r"
@@ -15940,6 +16927,10 @@
 msgstr "Datum überschreitet 32 Bit: %d"
 
 #, python-format
+msgid "negative date value: %d"
+msgstr ""
+
+#, python-format
 msgid "impossible time zone offset: %d"
 msgstr "Unmögliche Zeitzonen-Verschiebung: %d"
 
@@ -16056,6 +17047,9 @@
 msgid "checking changesets\n"
 msgstr "Prüfe Änderungssätze\n"
 
+msgid "checking"
+msgstr "Prüfe"
+
 #, python-format
 msgid "unpacking changeset %s"
 msgstr "Entpacke Änderungssatz %s"
@@ -16097,9 +17091,6 @@
 msgid "cannot decode filename '%s'"
 msgstr "Kann Dateinamen '%s' nicht dekodieren"
 
-msgid "checking"
-msgstr "Prüfe"
-
 #, python-format
 msgid "broken revlog! (%s)"
 msgstr "Beschädigtes Revlog! (%s)"
@@ -16159,18 +17150,401 @@
 msgid "(first damaged changeset appears to be %d)\n"
 msgstr "(erster beschädigter Änderungssatz scheint %d zu sein)\n"
 
-msgid "user name not available - set USERNAME environment variable"
-msgstr ""
-"Benutzername nicht verfügbar - bitte setze die USERNAME Umgebungsvariable"
-
 msgid "look up remote revision"
 msgstr "entfernte Revision abrufen"
 
+msgid "push failed (unexpected response):"
+msgstr "Übertragen fehlgeschlagen (unerwartete Antwort)"
+
 msgid "look up remote changes"
 msgstr "entfernte Änderungen abrufen"
 
 msgid "push failed:"
 msgstr "Übertragen fehlgeschlagen: %s"
 
-msgid "push failed (unexpected response):"
-msgstr "Übertragen fehlgeschlagen (unerwartete Antwort)"
+#~ msgid "    options:"
+#~ msgstr "    Optionen:"
+
+#~ msgid ""
+#~ "Path-based Access Control\n"
+#~ "-------------------------"
+#~ msgstr ""
+#~ "Pfadbasierte Zugriffskontrolle\n"
+#~ "------------------------------"
+
+#~ msgid ""
+#~ "Groups\n"
+#~ "------"
+#~ msgstr ""
+#~ "Gruppen\n"
+#~ "-------"
+
+#~ msgid ""
+#~ "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, the\n"
+#~ "bookmark shifts to the new changeset."
+#~ msgstr ""
+#~ "Lesezeichen sind lokale, bewegliche Markierungen für Änderungssätze. "
+#~ "Jedes\n"
+#~ "Lesezeichen zeigt auf einen Änderungssatz, angegeben durch dessen\n"
+#~ "Prüfsumme. Wenn Sie einen Commit ausführen, der auf einem Änderungssatz\n"
+#~ "mit einem Lesezeichen basiert, bewegt sich das Lesezeichen zum neuen\n"
+#~ "Änderungssatz."
+
+#~ msgid ""
+#~ "It is possible to use bookmark names in every revision lookup (e.g.\n"
+#~ ":hg:`merge`, :hg:`update`)."
+#~ msgstr ""
+#~ "Es ist möglich, Lesezeichen in jeder Revisionsabfrage zu verwenden\n"
+#~ "(z.B. :hg:`merge`, :hg:`update`)."
+
+#~ msgid ""
+#~ "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 configuration file::"
+#~ msgstr ""
+#~ "Standardmäßig werden, wenn mehrere Lesezeichen auf einen Änderungssatz\n"
+#~ "zeigen, alle aktualisiert. Ist es möglich, ein Git-ähnliches Verhalten\n"
+#~ "zu erzeugen, indem die folgenden Einstellungen in die "
+#~ "Konfigurationsdatei\n"
+#~ "eingefügt werden::"
+
+#~ msgid ""
+#~ "  [bookmarks]\n"
+#~ "  track.current = True"
+#~ msgstr ""
+#~ "  [bookmarks]\n"
+#~ "  track.current = True"
+
+#~ msgid ""
+#~ "This will cause Mercurial to track the bookmark that you are currently\n"
+#~ "using, and only update it. This is similar to git's approach to\n"
+#~ "branching.\n"
+#~ msgstr ""
+#~ "Dies wird Mercurial dazu bringen, das Lesezeichen, das Sie im Moment\n"
+#~ "nutzen, zu verfolgen und nur dies zu aktualisieren. Dies ist ähnlich zur\n"
+#~ "Vorgehensweise von Git bei Verzweigungen.\n"
+
+#~ msgid "bookmark to export"
+#~ msgstr "Zu exportierendes Lesezeichen"
+
+#~ msgid ""
+#~ "    --config convert.hg.ignoreerrors=False    (boolean)\n"
+#~ "        ignore integrity errors when reading. Use it to fix Mercurial\n"
+#~ "        repositories with missing revlogs, by converting from and to\n"
+#~ "        Mercurial.\n"
+#~ "    --config convert.hg.saverev=False         (boolean)\n"
+#~ "        store original revision ID in changeset (forces target IDs to\n"
+#~ "        change)\n"
+#~ "    --config convert.hg.startrev=0            (hg revision identifier)\n"
+#~ "        convert start revision and its descendants"
+#~ msgstr ""
+#~ "    --config convert.hg.ignoreerrors=False    (boolescher Wert)\n"
+#~ "        Ignoriert Integritätsfehler beim Lesen. Wird benutzt um "
+#~ "Mercurial-\n"
+#~ "        Archive ohne Revlog zu korrigieren, wenn von hg in hg "
+#~ "konvertiert\n"
+#~ "        wird.\n"
+#~ "    --config convert.hg.saverev=False         (boolescher Wert)\n"
+#~ "        Speichert die Original-Revisions-ID im Änderunsgsatz (erzwingt\n"
+#~ "        Änderung der Ziel-IDs)\n"
+#~ "    --config convert.hg.startrev=0            (hg Revisions-ID)\n"
+#~ "        Konvertiert alle Nachfahren ab Startrevision"
+
+#~ msgid "    The options shown are the defaults."
+#~ msgstr "    Die folgenden Argumente zeigen die Standardwerte."
+
+#~ msgid ""
+#~ "    --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"
+#~ "    --config hook.cvslog\n"
+#~ "        Specify a Python function to be called at the end of gathering\n"
+#~ "        the CVS log. The function is passed a list with the log entries,\n"
+#~ "        and can modify the entries in-place, or add or delete them.\n"
+#~ "    --config hook.cvschangesets\n"
+#~ "        Specify a Python function to be called after the changesets\n"
+#~ "        are calculated from the the CVS log. The function is passed\n"
+#~ "        a list with the changeset entries, and can modify the changesets\n"
+#~ "        in-place, or add or delete them."
+#~ msgstr ""
+#~ "    --config convert.cvsps.cache=True         (boolescher Wert)\n"
+#~ "        Kann für Tests oder zur Fehlersuche deaktiviert werden, um das\n"
+#~ "        Zwischenspeichern des Quell-Logbuchs zu unterbinden.\n"
+#~ "    --config convert.cvsps.fuzz=60            (Ganzzahl)\n"
+#~ "        Spezifiziert die maximale Zeit (in Sekunden) die zwischen\n"
+#~ "        einzelnen Änderungssätzen mit selbem Benutzer und Meldung "
+#~ "erlaubt\n"
+#~ "        ist, damit sie in den gleichen Änderungssatz übernommen werden.\n"
+#~ "        Wenn sehr große Dateien übernommen wurden, ist der Standardwert\n"
+#~ "        vielleicht zu klein.\n"
+#~ "    --config convert.cvsps.mergeto='{{mergetobranch ([-\\w]+)}}'\n"
+#~ "        Spezifiziert einen Regulären Ausdruck, auf den Versionsmeldungen\n"
+#~ "        geprüft werden. Wenn ein Treffer gefunden wird, wird eine\n"
+#~ "        künstliche Revision als Zusammenführung des aktuellen mit dem\n"
+#~ "        gefunden Zweig eingefügt.\n"
+#~ "    --config convert.cvsps.mergefrom='{{mergefrombranch ([-\\w]+)}}'\n"
+#~ "        Spezifiziert einen Regulären Ausdruck, auf den Versionsmeldungen\n"
+#~ "        geprüft werden. Wenn ein Treffer gefunden wird, wird die\n"
+#~ "        jüngste Revision des angegebenen Zweigs als zweiter Vorfahr der\n"
+#~ "        aktuellen Revision angenommen.\n"
+#~ "    --config hook.cvslog\n"
+#~ "        Spezifiziert eine Python-Funktion, die nach dem Abrufen des\n"
+#~ "        CVS-Logs ausgeführt wird. Der Funktion wird eine Liste von\n"
+#~ "        Log-Einträgen übergeben, in der in-place Einträge bearbeitet, \n"
+#~ "        ergänzt oder gelöscht werden können.\n"
+#~ "    --config hook.cvschangesets\n"
+#~ "        Spezifiziert eine Python-Funktion, die aufgerufen wird, nachdem\n"
+#~ "        die Änderungssätze aus dem CVS-Log berechnet wurden. Der "
+#~ "Funktion\n"
+#~ "        wird eine Liste von Änderungssätzen übergeben, in der in-place\n"
+#~ "        Einträge bearbeitet, ergänzt oder gelöscht werden können."
+
+#~ msgid ""
+#~ "    --config convert.svn.branches=branches    (directory name)\n"
+#~ "        specify the directory containing branches\n"
+#~ "    --config convert.svn.tags=tags            (directory name)\n"
+#~ "        specify the directory containing tags\n"
+#~ "    --config convert.svn.trunk=trunk          (directory name)\n"
+#~ "        specify the name of the trunk branch"
+#~ msgstr ""
+#~ "    --config convert.svn.branches=branches       (Verzeichnisname)\n"
+#~ "        Spezifiziert das Verzeichnis für die Zweige\n"
+#~ "    --config convert.svn.tags=tags               (Verzeichnisname)\n"
+#~ "        Spezifiziert das Verzeichnis für Tags\n"
+#~ "    --config convert.svn.trunk=trunk             (Verzeichnisname)\n"
+#~ "        Spezifiziert den Namen des Hauptzweigs"
+
+#~ msgid ""
+#~ "    --config convert.p4.startrev=0            (perforce changelist "
+#~ "number)\n"
+#~ "        specify initial Perforce revision."
+#~ msgstr ""
+#~ "    --config convert.p4.startrev=0            (Perforce Changelist-"
+#~ "Nummer)\n"
+#~ "        Spezifiziert die Startrevision"
+
+#~ msgid ""
+#~ "    --config convert.hg.clonebranches=False   (boolean)\n"
+#~ "        dispatch source branches in separate clones.\n"
+#~ "    --config convert.hg.tagsbranch=default    (branch name)\n"
+#~ "        tag revisions branch name\n"
+#~ "    --config convert.hg.usebranchnames=True   (boolean)\n"
+#~ "        preserve branch names"
+#~ msgstr ""
+#~ "    --config convert.hg.clonebranches=False   (boolescher Wert)\n"
+#~ "        Lagert Quellzweige in separaten Klonen ab.\n"
+#~ "    --config convert.hg.tagsbranch=default    (Zweigname)\n"
+#~ "        Name des Zweigs, der die Tags enthalten soll.\n"
+#~ "    --config convert.hg.usebranchnames=True   (boolescher Wert)\n"
+#~ "        Erhält die Zweignamen"
+
+#~ msgid "    "
+#~ msgstr "    "
+
+#~ msgid ""
+#~ "    Run before changing/disabling active keywords or if you experience\n"
+#~ "    problems with :hg:`import` or :hg:`merge`."
+#~ msgstr ""
+#~ "    Führen Sie dies aus, bevor Platzhalter geändert/deaktiviert werden\n"
+#~ "    oder wenn Sie Probleme bei :hg:`import` oder :hg:`merge` haben."
+
+#~ msgid "queue directory updating\n"
+#~ msgstr "Aktualisiere Reihenverzeichnis\n"
+
+#~ msgid ""
+#~ "    With no arguments, print the currently active guards.\n"
+#~ "    With arguments, set guards for the named patch.\n"
+#~ "    NOTE: Specifying negative guards now requires '--'."
+#~ msgstr ""
+#~ "    Ohne Argumente werden die aktuell aktiven Wächter ausgegeben. Mit\n"
+#~ "    Argumenten werden die Wächter für den angegebenen Patch gesetzt. "
+#~ "HINWEIS:\n"
+#~ "    Die Angabe negativer Wächter erfordert jetzt '--'."
+
+#~ msgid "apply if the patch has rejects"
+#~ msgstr "Wendet Patch trotz Fehlerabschnitten an"
+
+#~ msgid ""
+#~ "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::"
+#~ msgstr ""
+#~ "Mit ``formail`` (häufig durch das procmail-Paket installiert) können die\n"
+#~ "Nachrichten dann aus der mbox-Datei versendet werden::"
+
+#~ msgid "That should be all. Now your patchbomb is on its way out."
+#~ msgstr ""
+#~ "Das sollte es gewesen sein. Nun ist ihre Patchbombe in die Welt gesetzt."
+
+#, fuzzy
+#~ msgid ""
+#~ "    Each patch email has a Subject line of \"[PATCH M of N] ...\", using\n"
+#~ "    the first line of the changeset description as the subject text.\n"
+#~ "    The message contains two or three parts. First, the changeset\n"
+#~ "    description. Next, (optionally) if the diffstat program is\n"
+#~ "    installed and -d/--diffstat is used, the result of running\n"
+#~ "    diffstat on the patch. Finally, the patch itself, as generated by\n"
+#~ "    :hg:`export`."
+#~ msgstr ""
+#~ "    Die Betreffzeile jeder Patch-Email ist \"[PATCH M of N]\", gefolgt "
+#~ "von\n"
+#~ "    der ersten Zeile der Versionsmeldung. Im Körper folgen zwei oder "
+#~ "drei\n"
+#~ "    drei Teilen: Eine Beschreibung des Änderungssatzes, dann optional\n"
+#~ "    das Ergebnis von diffstat des Patches (wenn das Programm diffstat\n"
+#~ "    installiert ist und der Schalter -d/--diffstat angegeben ist) und\n"
+#~ "    schliesslich der Patch selber, wie durch \"hg export\" generiert."
+
+#, fuzzy
+#~ msgid " changesets"
+#~ msgstr "Füge Änderungssätze hinzu\n"
+
+#~ msgid " files"
+#~ msgstr " Dateien"
+
+#~ msgid "too many revisions specified"
+#~ msgstr "Zu viele Revisionen angegeben"
+
+#~ msgid ""
+#~ "    Commit the backed out changes as a new changeset. The new\n"
+#~ "    changeset is a child of the backed out changeset."
+#~ msgstr ""
+#~ "    Bereits vollzogene Änderungen werden noch einmal rückwärts "
+#~ "angewendet\n"
+#~ "    und als neuer Änderungssatz (als Kind des rückgängig gemachten) "
+#~ "übernommen."
+
+#~ msgid ""
+#~ "    If you backout a changeset other than the tip, a new head is\n"
+#~ "    created. This head will be the new tip and you should merge this\n"
+#~ "    backout changeset with another head."
+#~ msgstr ""
+#~ "    Soll ein anderer Änderungssatz als die Spitze (tip) zurückgezogen "
+#~ "werden,\n"
+#~ "    so wird ein neuer Kopf erzeugt und dieser ist die neue Spitze."
+
+#~ msgid ""
+#~ "    The --merge option remembers the parent of the working directory\n"
+#~ "    before starting the backout, then merges the new head with that\n"
+#~ "    changeset afterwards. This saves you from doing the merge by hand.\n"
+#~ "    The result of this merge is not committed, as with a normal merge."
+#~ msgstr ""
+#~ "    Die dadurch notwendige Zusammenführung kann durch die Option --merge\n"
+#~ "    automatisch mit der Vorgängerversion des Arbeitsverzeichnisses "
+#~ "durchgeführt\n"
+#~ "    werden. Das Resultat dieser Zusammenführung wird wie üblich nicht "
+#~ "sofort\n"
+#~ "    übernommen, sondern existiert als lokale Änderung."
+
+#~ msgid "the backout changeset is a new head - do not forget to merge\n"
+#~ msgstr "Neuen Kopf erstellt - Zusammenführung nicht vergessen\n"
+
+#~ msgid "(use \"backout --merge\" if you want to auto-merge)\n"
+#~ msgstr "(nutze \"backout --merge\" für eine automatische Zusammenführung)\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "    If no changeset is specified, attempt to update to the tip of the\n"
+#~ "    current branch. If this changeset is a descendant of the working\n"
+#~ "    directory's parent, update to it, otherwise abort."
+#~ msgstr ""
+#~ "    Wird keine Revision angegeben, wird zum Kopf des derzeitigen Zweigs\n"
+#~ "    aktualisiert, falls dieser ein Nachfahr des direkten Vorgängers der\n"
+#~ "    Arbeitskopie ist. Ansonsten bricht die Operation ab."
+
+#~ msgid "replace existing tag"
+#~ msgstr "Ersetzt bereits existierendes Tag"
+
+#~ msgid "check for uncommitted changes"
+#~ msgstr "prüft auf nicht versionierte Änderungen"
+
+#~ msgid "** report bug details to http://mercurial.selenic.com/bts/\n"
+#~ msgstr "** Problemdetails bitte bei http://www.selenic.com/mercurial/bts\n"
+
+#~ msgid ""
+#~ "``grep(regex)``\n"
+#~ "  Like ``keyword(string)`` but accepts a regex."
+#~ msgstr ""
+#~ "``grep(regex)``\n"
+#~ "  Wie ``keyword(zeichenkette)``, akzeptiert aber auch einen regulären\n"
+#~ "  Ausdruck (regex)."
+
+#~ msgid ""
+#~ "``tagged()``\n"
+#~ "  Changeset is tagged."
+#~ msgstr ""
+#~ "``tagged()``\n"
+#~ "  Der Änderungssatz wurde mit einem Tag versehen."
+
+#~ msgid ""
+#~ "  hg log -r 'branch(default)'\n"
+#~ "  hg log -r 'branch(default) and 1.5:: and not merge()'\n"
+#~ "  hg log -r '1.3::1.5 and keyword(bug) and file(\"hgext/*\")'\n"
+#~ "  hg log -r 'sort(date(\"May 2008\"), user)'\n"
+#~ "  hg log -r '(keyword(bug) or keyword(issue)) and not ancestors(tagged"
+#~ "())'\n"
+#~ msgstr ""
+#~ "  hg log -r 'branch(default)'\n"
+#~ "  hg log -r 'branch(default) and 1.5:: and not merge()'\n"
+#~ "  hg log -r '1.3::1.5 and keyword(bug) and file(\"hgext/*\")'\n"
+#~ "  hg log -r 'sort(date(\"May 2008\"), user)'\n"
+#~ "  hg log -r '(keyword(bug) or keyword(issue)) and not ancestors(tagged"
+#~ "())'\n"
+
+#~ msgid "bundling changes"
+#~ msgstr "Bündle Änderungen"
+
+#~ msgid "bundling manifests"
+#~ msgstr "Bündle Manifeste"
+
+#~ msgid "warning: detected divergent renames of %s to:\n"
+#~ msgstr "Warnung: abweichende Umbenennungen von %s entdeckt:\n"
+
+#~ msgid ""
+#~ "internal patcher failed\n"
+#~ "please report details to http://mercurial.selenic.com/bts/\n"
+#~ "or mercurial@selenic.com\n"
+#~ msgstr ""
+#~ "Fehlschlag des internen patch-Werkzeugs.\n"
+#~ "Bitte melden Sie diesen Fehler bei http://mercurial.selenic.com/bts/\n"
+#~ "oder mercurial@selenic.com\n"
+
+#~ msgid "limit wants a number"
+#~ msgstr "limit verlangt eine Zahl"
+
+#~ msgid "warning: %s in %s\n"
+#~ msgstr "Warnung: %s in %s\n"
+
+#~ msgid "error expanding '%s%%%s'"
+#~ msgstr "Fehler beim Auflösen von '%s%%%s'"
+
+#~ msgid "unknown filter '%s'"
+#~ msgstr "Unbekannter Filter '%s'"
+
+#~ msgid "server identity verification succeeded\n"
+#~ msgstr "Identität des Servers wurde erfolgreich verifiziert\n"
+
+#~ msgid "Hardlinks not supported"
+#~ msgstr "Hardlinks nicht unterstützt"
+
+#~ msgid "user name not available - set USERNAME environment variable"
+#~ msgstr ""
+#~ "Benutzername nicht verfügbar - bitte setze die USERNAME Umgebungsvariable"
--- a/i18n/ja.po	Wed Feb 16 15:02:30 2011 +0100
+++ b/i18n/ja.po	Wed Mar 02 13:24:48 2011 +0100
@@ -1,7 +1,7 @@
 # Japanese translation for Mercurial
 # Mercurial 日本語翻訳
 #
-# Copyright (C) 2009-2010 the Mercurial team
+# Copyright (C) 2009-2011 the Mercurial team
 #
 # ========================================
 # 【翻訳用語集】
@@ -15,6 +15,7 @@
 # XXXX failed           XXXX が(or に)失敗
 # error XXXX-ing        XXXX が(or に)失敗
 # error while XXXX      XXXX が(or に)失敗
+# cannot XXXX           XXXX が(or に)失敗
 # XXXX-ing YYYY         YYYY を XXXX 中 ※ メッセージ冒頭から始まる場合
 #                       YYYY を XXXX    ※ 「以後の処理は YYYY を XXXX とする」
 #                                           というニュアンスン場合
@@ -48,6 +49,7 @@
 # command(, this)       (本)コマンド
 # commit                コミット
 # commit comment        コミットログ
+# copy(of file, repo)   複製
 # default(, by)         指定が無い場合/通常は
 # delete/remove         (構成管理からの)登録除外
 # diff                  差分
@@ -75,6 +77,7 @@
 # pull                  (追加リビジョンの)取り込み
 # push                  (追加リビジョンの)反映
 # push(patch)           (パッチの)適用
+# raise(of exception)   (例外の)発生
 # remote(repo)          連携先(リポジトリ)
 # rename                改名
 # repo(sitory)          リポジトリ/(.hg を指す場合は)管理領域
@@ -86,6 +89,8 @@
 # server                サーバ
 # subrepo               副リポジトリ
 # summary               要約(情報)
+# support(, not)        (未)サポート
+# support(, un)         (未)サポート
 # tag                   タグ
 # tracked xxxx          構成管理対象の xxxx
 # xxxxx type            xxxx 種別
@@ -99,7 +104,7 @@
 msgstr ""
 "Project-Id-Version: Mercurial\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2010-10-28 23:52+0900\n"
+"POT-Creation-Date: 2011-03-01 15:32+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"
@@ -130,7 +135,7 @@
 "外のエクステンションに関しては、 各コマンドのオンラインヘルプを参照してくださ"
 "い。"
 
-msgid "options:"
+msgid "Options:"
 msgstr "オプション:"
 
 #, python-format
@@ -146,7 +151,7 @@
 "via pretxnchangegroup and pretxncommit."
 msgstr ""
 "アクセス制御用フックを使用することで、 pretxnchangegroup や pretxncommit\n"
-"契機で更新反映を受理した際に、 指定されたブランチやパスに対して、 \n"
+"契機で更新反映を受理した際に、 指定されたブランチやパスに対して、\n"
 "書き込みの可否を制御できます。"
 
 msgid ""
@@ -376,172 +381,6 @@
 msgid "acl: access denied for changeset %s"
 msgstr "acl: チェンジセット %s のアクセスは拒否されました"
 
-msgid "track a line of development with movable markers"
-msgstr ""
-
-msgid ""
-"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, the\n"
-"bookmark shifts to the new changeset."
-msgstr ""
-
-msgid ""
-"It is possible to use bookmark names in every revision lookup (e.g.\n"
-":hg:`merge`, :hg:`update`)."
-msgstr ""
-
-msgid ""
-"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 configuration file::"
-msgstr ""
-
-msgid ""
-"  [bookmarks]\n"
-"  track.current = True"
-msgstr ""
-
-msgid ""
-"This will cause Mercurial to track the bookmark that you are currently\n"
-"using, and only update it. This is similar to git's approach to\n"
-"branching.\n"
-msgstr ""
-
-msgid ""
-"    Bookmarks are pointers to certain commits that move when\n"
-"    committing. Bookmarks are local. They can be renamed, copied and\n"
-"    deleted. It is possible to use bookmark names in :hg:`merge` and\n"
-"    :hg:`update` to merge and update respectively to a given bookmark."
-msgstr ""
-
-msgid ""
-"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
-"    directory's parent revision with the given name. If you specify\n"
-"    a revision using -r REV (where REV may be an existing bookmark),\n"
-"    the bookmark is assigned to that revision."
-msgstr ""
-
-msgid ""
-"    Bookmarks can be pushed and pulled between repositories (see :hg:`help\n"
-"    push` and :hg:`help pull`). This requires the bookmark extension to be\n"
-"    enabled for both the local and remote repositories.\n"
-"    "
-msgstr ""
-
-msgid "a bookmark of this name does not exist"
-msgstr "この名前のブックマークは存在しません"
-
-msgid "a bookmark of the same name already exists"
-msgstr "同じ名前のブックマークがすでに存在します"
-
-msgid "new bookmark name required"
-msgstr "新しいブックマーク名を要求しました"
-
-msgid "bookmark name required"
-msgstr "ブックマーク名を要求しました"
-
-msgid "bookmark name cannot contain newlines"
-msgstr "ブックマーク名に改行を含めません"
-
-msgid "bookmark names cannot consist entirely of whitespace"
-msgstr "空白文字だけで構成されたタグ名は不正です"
-
-msgid "a bookmark cannot have the name of an existing branch"
-msgstr "既存ブランチと同名のブックマークは作成できません"
-
-msgid "no bookmarks set\n"
-msgstr "ブックマークは存在しません\n"
-
-#, python-format
-msgid "updating bookmark %s\n"
-msgstr "ブックマーク %s の更新中\n"
-
-#, python-format
-msgid "not updating divergent bookmark %s\n"
-msgstr ""
-
-#, python-format
-msgid "updating bookmark %s failed!\n"
-msgstr "ブックマーク %s の更新に失敗!\n"
-
-#, python-format
-msgid "remote bookmark %s not found!"
-msgstr "連携先にはブックマーク %s がありません!"
-
-#, python-format
-msgid "importing bookmark %s\n"
-msgstr "ブックマーク %s の取り込み中\n"
-
-#, python-format
-msgid "exporting bookmark %s\n"
-msgstr "ブックマーク %s の反映中\n"
-
-#, python-format
-msgid "deleting remote bookmark %s\n"
-msgstr "連携先のブックマーク %s の削除中\n"
-
-#, python-format
-msgid "bookmark %s does not exist on the local or remote repository!\n"
-msgstr ""
-
-msgid "searching for changed bookmarks\n"
-msgstr "変更されたブックマークを探索中\n"
-
-msgid "no changed bookmarks found\n"
-msgstr "変更されたブックマークはありません\n"
-
-#, python-format
-msgid "comparing with %s\n"
-msgstr "%s と比較中\n"
-
-msgid "bookmark to import"
-msgstr "ブックマークの取り込み"
-
-msgid "BOOKMARK"
-msgstr ""
-
-msgid "bookmark to export"
-msgstr "ブックマークの反映"
-
-msgid "compare bookmark"
-msgstr "ブックマークの比較"
-
-msgid ""
-"``bookmark([name])``\n"
-"    The named bookmark or all bookmarks."
-msgstr ""
-
-#. i18n: "bookmark" is a keyword
-msgid "bookmark takes one or no arguments"
-msgstr "bookmark 指定には1個ないし2個の引数が必要です"
-
-#. i18n: "bookmark" is a keyword
-msgid "the argument to bookmark must be a string"
-msgstr ""
-
-msgid "force"
-msgstr "強制実施"
-
-msgid "REV"
-msgstr "リビジョン"
-
-msgid "revision"
-msgstr "リビジョン"
-
-msgid "delete a given bookmark"
-msgstr "指定ブックマークの削除"
-
-msgid "NAME"
-msgstr "名前"
-
-msgid "rename a given bookmark"
-msgstr "指定ブックマークの改名"
-
-msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
-msgstr "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
-
 msgid "hooks for integrating with the Bugzilla bug tracker"
 msgstr ""
 
@@ -791,14 +630,14 @@
 
 #, python-format
 msgid "bugzilla version %s not supported"
-msgstr "bugzilla のバージョン %s をサポートしていません"
+msgstr "bugzilla のバージョン %s は未サポートです"
 
 msgid ""
 "changeset {node|short} in repo {root} refers to bug {bug}.\n"
 "details:\n"
 "\t{desc|tabindent}"
 msgstr ""
-"リポジトリ {root} のリビジョン {node|short} がバグ {bug} に関連。 \n"
+"リポジトリ {root} のリビジョン {node|short} がバグ {bug} に関連。\n"
 "詳細:\n"
 "\t{desc|tabindent}"
 
@@ -835,6 +674,9 @@
 "   します。\n"
 "    "
 
+msgid "REV"
+msgstr "リビジョン"
+
 msgid "show children of the specified revision"
 msgstr "指定リビジョンの子リビジョンの表示"
 
@@ -862,18 +704,18 @@
 "    date instead."
 msgstr ""
 "    本コマンドは、 変更行数ないしリビジョン数の度数分布を、 テンプレート\n"
-"    指定によってグループ化してグラフ表示します。 \n"
-"    特に指定の無い場合、 リビジョン作成者毎に変更行数をグループ化します。 \n"
-"    --dateformat が指定された場合、 度数分布は日時でグループ化されます。 "
+"    指定によってグループ化してグラフ表示します。\n"
+"    特に指定の無い場合、 リビジョン作成者毎に変更行数をグループ化します。\n"
+"    --dateformat が指定された場合、 度数分布は日時でグループ化されます。"
 
 msgid ""
 "    Statistics are based on the number of changed lines, or\n"
 "    alternatively the number of matching revisions if the\n"
 "    --changesets option is specified."
 msgstr ""
-"    特に指定の無い場合、 度数分布の統計対象は変更行数となりますが、 \n"
+"    特に指定の無い場合、 度数分布の統計対象は変更行数となりますが、\n"
 "    --changesets が指定された場合は、 対象リビジョンの数が統計対象と\n"
-"    なります。 "
+"    なります。"
 
 msgid "    Examples::"
 msgstr "    例::"
@@ -1135,10 +977,10 @@
 msgstr ""
 
 msgid ""
-"    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::"
+"    If ``REVMAP`` isn't given, it will be put in a default location\n"
+"    (``<dest>/.hg/shamap`` by default). The ``REVMAP`` is a simple\n"
+"    text file that maps each source commit ID to the destination ID\n"
+"    for that revision, like so::"
 msgstr ""
 
 msgid "      <source ID> <destination ID>"
@@ -1244,15 +1086,25 @@
 msgstr ""
 
 msgid ""
-"    --config convert.hg.ignoreerrors=False    (boolean)\n"
-"        ignore integrity errors when reading. Use it to fix Mercurial\n"
-"        repositories with missing revlogs, by converting from and to\n"
-"        Mercurial.\n"
-"    --config convert.hg.saverev=False         (boolean)\n"
-"        store original revision ID in changeset (forces target IDs to\n"
-"        change)\n"
-"    --config convert.hg.startrev=0            (hg revision identifier)\n"
-"        convert start revision and its descendants"
+"    The Mercurial source recognizes the following configuration\n"
+"    options, which you can set on the command line with ``--config``:"
+msgstr ""
+
+msgid ""
+"    :convert.hg.ignoreerrors: ignore integrity errors when reading.\n"
+"        Use it to fix Mercurial repositories with missing revlogs, by\n"
+"        converting from and to Mercurial. Default is False."
+msgstr ""
+
+msgid ""
+"    :convert.hg.saverev: store original revision ID in changeset\n"
+"        (forces target IDs to change). It takes and boolean argument\n"
+"        and defaults to False."
+msgstr ""
+
+msgid ""
+"    :convert.hg.startrev: convert start revision and its descendants.\n"
+"        It takes a hg revision identifier and defaults to 0."
 msgstr ""
 
 msgid ""
@@ -1264,45 +1116,59 @@
 "    CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n"
 "    to indicate the starting point of what will be converted. Direct\n"
 "    access to the repository files is not needed, unless of course the\n"
-"    repository is :local:. The conversion uses the top level directory\n"
-"    in the sandbox to find the CVS repository, and then uses CVS rlog\n"
-"    commands to find files to convert. This means that unless a\n"
-"    filemap is given, all files under the starting directory will be\n"
+"    repository is ``:local:``. The conversion uses the top level\n"
+"    directory in the sandbox to find the CVS repository, and then uses\n"
+"    CVS rlog commands to find files to convert. This means that unless\n"
+"    a filemap is given, all files under the starting directory will be\n"
 "    converted, and that any directory reorganization in the CVS\n"
 "    sandbox is ignored."
 msgstr ""
 
-msgid "    The options shown are the defaults."
-msgstr ""
-
-msgid ""
-"    --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"
-"    --config hook.cvslog\n"
-"        Specify a Python function to be called at the end of gathering\n"
-"        the CVS log. The function is passed a list with the log entries,\n"
-"        and can modify the entries in-place, or add or delete them.\n"
-"    --config hook.cvschangesets\n"
-"        Specify a Python function to be called after the changesets\n"
-"        are calculated from the the CVS log. The function is passed\n"
-"        a list with the changeset entries, and can modify the changesets\n"
-"        in-place, or add or delete them."
+msgid "    The following options can be used with ``--config``:"
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.cache: Set to False to disable remote log caching,\n"
+"        for testing and debugging purposes. Default is True."
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.fuzz: Specify the maximum time (in seconds) that is\n"
+"        allowed between commits with identical user and log message in\n"
+"        a single changeset. When very large files were checked in as\n"
+"        part of a changeset then the default may not be long enough.\n"
+"        The default is 60."
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.mergeto: Specify a regular expression to which\n"
+"        commit log messages are matched. If a match occurs, then the\n"
+"        conversion process will insert a dummy revision merging the\n"
+"        branch on which this log message occurs to the branch\n"
+"        indicated in the regex. Default is ``{{mergetobranch\n"
+"        ([-\\w]+)}}``"
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.mergefrom: Specify a regular expression to which\n"
+"        commit log messages are matched. If a match occurs, then the\n"
+"        conversion process will add the most recent revision on the\n"
+"        branch indicated in the regex as the second parent of the\n"
+"        changeset. Default is ``{{mergefrombranch ([-\\w]+)}}``"
+msgstr ""
+
+msgid ""
+"    :hook.cvslog: Specify a Python function to be called at the end of\n"
+"        gathering the CVS log. The function is passed a list with the\n"
+"        log entries, and can modify the entries in-place, or add or\n"
+"        delete them."
+msgstr ""
+
+msgid ""
+"    :hook.cvschangesets: Specify a Python function to be called after\n"
+"        the changesets are calculated from the the CVS log. The\n"
+"        function is passed a list with the changeset entries, and can\n"
+"        modify the changesets in-place, or add or delete them."
 msgstr ""
 
 msgid ""
@@ -1319,24 +1185,33 @@
 
 msgid ""
 "    Subversion source detects classical trunk/branches/tags layouts.\n"
-"    By default, the supplied \"svn://repo/path/\" source URL is\n"
-"    converted as a single branch. If \"svn://repo/path/trunk\" exists it\n"
-"    replaces the default branch. If \"svn://repo/path/branches\" exists,\n"
-"    its subdirectories are listed as possible branches. If\n"
-"    \"svn://repo/path/tags\" exists, it is looked for tags referencing\n"
-"    converted branches. Default \"trunk\", \"branches\" and \"tags\" values\n"
-"    can be overridden with following options. Set them to paths\n"
+"    By default, the supplied ``svn://repo/path/`` source URL is\n"
+"    converted as a single branch. If ``svn://repo/path/trunk`` exists\n"
+"    it replaces the default branch. If ``svn://repo/path/branches``\n"
+"    exists, its subdirectories are listed as possible branches. If\n"
+"    ``svn://repo/path/tags`` exists, it is looked for tags referencing\n"
+"    converted branches. Default ``trunk``, ``branches`` and ``tags``\n"
+"    values can be overridden with following options. Set them to paths\n"
 "    relative to the source URL, or leave them blank to disable auto\n"
 "    detection."
 msgstr ""
 
-msgid ""
-"    --config convert.svn.branches=branches    (directory name)\n"
-"        specify the directory containing branches\n"
-"    --config convert.svn.tags=tags            (directory name)\n"
-"        specify the directory containing tags\n"
-"    --config convert.svn.trunk=trunk          (directory name)\n"
-"        specify the name of the trunk branch"
+msgid "    The following options can be set with ``--config``:"
+msgstr ""
+
+msgid ""
+"    :convert.svn.branches: specify the directory containing branches.\n"
+"        The default is ``branches``."
+msgstr ""
+
+msgid ""
+"    :convert.svn.tags: specify the directory containing tags. The\n"
+"        default is ``tags``."
+msgstr ""
+
+msgid ""
+"    :convert.svn.trunk: specify the name of the trunk branch. The\n"
+"        default is ``trunk``."
 msgstr ""
 
 msgid ""
@@ -1346,8 +1221,8 @@
 msgstr ""
 
 msgid ""
-"    --config convert.svn.startrev=0           (svn revision number)\n"
-"        specify start Subversion revision."
+"    :convert.svn.startrev: specify start Subversion revision number.\n"
+"        The default is 0."
 msgstr ""
 
 msgid ""
@@ -1361,17 +1236,17 @@
 "    source to a flat Mercurial repository, ignoring labels, branches\n"
 "    and integrations. Note that when a depot path is given you then\n"
 "    usually should specify a target directory, because otherwise the\n"
-"    target may be named ...-hg."
+"    target may be named ``...-hg``."
 msgstr ""
 
 msgid ""
 "    It is possible to limit the amount of source history to be\n"
-"    converted by specifying an initial Perforce revision."
-msgstr ""
-
-msgid ""
-"    --config convert.p4.startrev=0            (perforce changelist number)\n"
-"        specify initial Perforce revision."
+"    converted by specifying an initial Perforce revision:"
+msgstr ""
+
+msgid ""
+"    :convert.p4.startrev: specify initial Perforce revision (a\n"
+"        Perforce changelist number)."
 msgstr ""
 
 msgid ""
@@ -1379,16 +1254,23 @@
 "    '''''''''''''''''''''"
 msgstr ""
 
-msgid ""
-"    --config convert.hg.clonebranches=False   (boolean)\n"
-"        dispatch source branches in separate clones.\n"
-"    --config convert.hg.tagsbranch=default    (branch name)\n"
-"        tag revisions branch name\n"
-"    --config convert.hg.usebranchnames=True   (boolean)\n"
-"        preserve branch names"
-msgstr ""
-
-msgid "    "
+msgid "    The following options are supported:"
+msgstr ""
+
+msgid ""
+"    :convert.hg.clonebranches: dispatch source branches in separate\n"
+"        clones. The default is False."
+msgstr ""
+
+msgid ""
+"    :convert.hg.tagsbranch: branch name for tag revisions, defaults to\n"
+"        ``default``."
+msgstr ""
+
+msgid ""
+"    :convert.hg.usebranchnames: preserve branch names. The default is\n"
+"        True.\n"
+"    "
 msgstr ""
 
 msgid "create changeset information from CVS"
@@ -1530,7 +1412,7 @@
 
 #, python-format
 msgid "%s: missing or unsupported repository"
-msgstr "%s: リポジトリが見つからないか、 サポートされていない形式です"
+msgstr "%s: リポジトリが見つからないか、 未サポートな形式です"
 
 #, python-format
 msgid "%s: invalid destination repository type"
@@ -1541,6 +1423,10 @@
 msgstr "変換: %s\n"
 
 #, python-format
+msgid "%s\n"
+msgstr "%s\n"
+
+#, python-format
 msgid "%s: unknown repository type"
 msgstr "%s: 未知のリポジトリ形式"
 
@@ -1608,7 +1494,7 @@
 msgstr "整列オプションの指定が過剰です"
 
 msgid "--sourcesort is not supported by this data source"
-msgstr "指定の変換元では --sourcesort を指定できません"
+msgstr "指定の変換元は --sourcesort が未サポートです"
 
 #, python-format
 msgid "%s does not look like a CVS checkout"
@@ -1852,7 +1738,7 @@
 msgid "%s does not look like a Subversion repository"
 msgstr "%s は Subversion 形式ではないと思われます"
 
-msgid "Subversion python bindings could not be loaded"
+msgid "Could not load Subversion python bindings"
 msgstr "Subversion python バインディングが読み込めません"
 
 #, python-format
@@ -1945,27 +1831,29 @@
 
 msgid ""
 "The extension reads its configuration from a versioned ``.hgeol``\n"
-"configuration file every time you run an ``hg`` command. The\n"
+"configuration file found in the root of the working copy. The\n"
 "``.hgeol`` file use the same syntax as all other Mercurial\n"
 "configuration files. It uses two sections, ``[patterns]`` and\n"
 "``[repository]``."
 msgstr ""
 
 msgid ""
-"The ``[patterns]`` section specifies the line endings used in the\n"
-"working directory. The format is specified by a file pattern. The\n"
-"first match is used, so put more specific patterns first. The\n"
-"available line endings are ``LF``, ``CRLF``, and ``BIN``."
+"The ``[patterns]`` section specifies how line endings should be\n"
+"converted between the working copy and the repository. The format is\n"
+"specified by a file pattern. The first match is used, so put more\n"
+"specific patterns first. The available line endings are ``LF``,\n"
+"``CRLF``, and ``BIN``."
 msgstr ""
 
 msgid ""
 "Files with the declared format of ``CRLF`` or ``LF`` are always\n"
-"checked out in that format and files declared to be binary (``BIN``)\n"
-"are left unchanged. Additionally, ``native`` is an alias for the\n"
-"platform's default line ending: ``LF`` on Unix (including Mac OS X)\n"
-"and ``CRLF`` on Windows. Note that ``BIN`` (do nothing to line\n"
-"endings) is Mercurial's default behaviour; it is only needed if you\n"
-"need to override a later, more general pattern."
+"checked out and stored in the repository in that format and files\n"
+"declared to be binary (``BIN``) are left unchanged. Additionally,\n"
+"``native`` is an alias for checking out in the platform's default line\n"
+"ending: ``LF`` on Unix (including Mac OS X) and ``CRLF`` on\n"
+"Windows. Note that ``BIN`` (do nothing to line endings) is Mercurial's\n"
+"default behaviour; it is only needed if you need to override a later,\n"
+"more general pattern."
 msgstr ""
 
 msgid ""
@@ -2000,6 +1888,12 @@
 "  native = LF"
 
 msgid ""
+".. note::\n"
+"   The rules will first apply when files are touched in the working\n"
+"   copy, e.g. by updating to null and back to tip to touch all files."
+msgstr ""
+
+msgid ""
 "The extension uses an optional ``[eol]`` section in your hgrc file\n"
 "(not the ``.hgeol`` file) for settings that control the overall\n"
 "behavior. There are two settings:"
@@ -2021,6 +1915,22 @@
 msgstr ""
 
 msgid ""
+"The extension provides ``cleverencode:`` and ``cleverdecode:`` filters\n"
+"like the deprecated win32text extension does. This means that you can\n"
+"disable win32text and enable eol and your filters will still work. You\n"
+"only need to these filters until you have prepared a ``.hgeol`` file."
+msgstr ""
+
+msgid ""
+"The ``win32text.forbid*`` hooks provided by the win32text extension\n"
+"have been unified into a single hook named ``eol.hook``. The hook will\n"
+"lookup the expected line endings from the ``.hgeol`` file, which means\n"
+"you must migrate to a ``.hgeol`` file first before using the hook.\n"
+"Remember to enable the eol extension in the repository where you\n"
+"install the hook."
+msgstr ""
+
+msgid ""
 "See :hg:`help patterns` for more information about the glob patterns\n"
 "used.\n"
 msgstr "パターン合致に関する詳細は :hg:`help patterns` を参照してください。\n"
@@ -2033,6 +1943,10 @@
 msgid "%s should not have LF line endings"
 msgstr ""
 
+#, python-format
+msgid "warning: ignoring .hgeol file due to parse error at %s: %s\n"
+msgstr ""
+
 msgid "the eol extension is incompatible with the win32text extension"
 msgstr "eol エクステンションと win32text エクステンションは併用できません"
 
@@ -2175,6 +2089,9 @@
 msgid "pass option to comparison program"
 msgstr "比較実行用プログラムへのオプション指定"
 
+msgid "revision"
+msgstr "リビジョン"
+
 msgid "change made by revision"
 msgstr "当該リビジョンにおける変更内容の表示"
 
@@ -2409,8 +2326,7 @@
 msgid ""
 "    Print a revision history alongside a revision graph drawn with\n"
 "    ASCII characters."
-msgstr ""
-"    ASCII 文字によるリビジョングラフ表示を伴った変更履歴を表示します。"
+msgstr "    ASCII 文字によるリビジョングラフ表示を伴った変更履歴を表示します。"
 
 msgid ""
 "    Nodes printed as an @ character are parents of the working\n"
@@ -2862,7 +2778,7 @@
 "Keywords expand to the changeset data pertaining to the latest change\n"
 "relative to the working directory parent of each file."
 msgstr ""
-"作業領域の各ファイルに対する直近の更新内容を使用して、 \n"
+"作業領域の各ファイルに対する直近の更新内容を使用して、\n"
 "キーワードの展開が行われます"
 
 msgid ""
@@ -2901,7 +2817,7 @@
 "   lose speed in huge repositories."
 msgstr ""
 ".. note::\n"
-"   ファイル名パターンが更に特殊になる場合、 \n"
+"   ファイル名パターンが更に特殊になる場合、\n"
 "   リポジトリサイズ次第では性能劣化が生じ得ます。"
 
 msgid ""
@@ -2928,19 +2844,19 @@
 msgid ""
 "The default template mappings (view with :hg:`kwdemo -d`) can be\n"
 "replaced with customized keywords and templates. Again, run\n"
-":hg:`kwdemo` to control the results of your config changes."
-msgstr ""
-"無指定時のテンプレート設定(:hg:`kwdemo -d` で閲覧可能)は、 キーワード\n"
-"及びテンプレートのカスタマイズで置き換えることが可能です。\n"
-"繰り返しますが設定変更の確認は :hg:`kwdemo` で行うことができます。"
-
-msgid ""
-"Before changing/disabling active keywords, run :hg:`kwshrink` to avoid\n"
-"the risk of inadvertently storing expanded keywords in the change\n"
-"history."
-msgstr ""
-"展開済みキーワードが意図せず履歴に記録されてしまうことを防ぐために、 \n"
-"キーワードの設定変更/無効化の前には :hg:`kwshrink` を実行してください。"
+":hg:`kwdemo` to control the results of your configuration changes."
+msgstr ""
+"無指定時のテンプレート設定 (:hg:`kwdemo -d` で閲覧可能) は、\n"
+"キーワード及びテンプレートのカスタマイズで、 置き換えることが可能です。\n"
+"繰り返しますが、 設定変更の確認は :hg:`kwdemo` で行うことができます。"
+
+msgid ""
+"Before changing/disabling active keywords, you must run :hg:`kwshrink`\n"
+"to avoid storing expanded keywords in the change history."
+msgstr ""
+"展開済みキーワードの、 意図せぬ履歴への記録を防ぐために、\n"
+"キーワード展開の設定変更/無効化の前には、\n"
+"必ず :hg:`kwshrink` を実行してください。"
 
 msgid ""
 "To force expansion after enabling it, or a configuration change, run\n"
@@ -2954,8 +2870,8 @@
 "like CVS' $Log$, are not supported. A keyword template map \"Log =\n"
 "{desc}\" expands to the first line of the changeset description.\n"
 msgstr ""
-"複数行に渡る展開や、 CVS の $Log$ のような増加する内容の展開はサポート\n"
-"していません。 キーワードテンプレート設定 \"Log = {desc}\" は、 \n"
+"複数行に渡る展開や、 CVS の $Log$ のような増加する内容の展開は\n"
+"未サポートです。 キーワードテンプレート設定 \"Log = {desc}\" は、\n"
 "コミットメッセージの最初の一行を埋め込みます。\n"
 
 #, python-format
@@ -2979,7 +2895,7 @@
 "    Show current, custom, or default keyword template maps and their\n"
 "    expansions."
 msgstr ""
-"    現時点、 固有ないしデフォルトのキーワードテンプレートマップ、 \n"
+"    現時点、 固有ないしデフォルトのキーワードテンプレートマップ、\n"
 "    およびその展開例を表示します。"
 
 msgid ""
@@ -3016,15 +2932,25 @@
 msgid "\textending current template maps\n"
 msgstr "\t現行テンプレートマップの終了\n"
 
-msgid "\toverriding default template maps\n"
-msgstr "\tデフォルトのテンプレートマップの設定を上書き\n"
+msgid "\toverriding default svn keywordset\n"
+msgstr "\tsvn のデフォルトキーワードを上書き\n"
+
+msgid "\toverriding default cvs keywordset\n"
+msgstr "\tcvs のデフォルトキーワードを上書き\n"
 
 msgid ""
 "\n"
-"\tconfiguration using default keyword template maps\n"
+"\tconfiguration using default svn keywordset\n"
 msgstr ""
 "\n"
-"\tデフォルトのキーワードテンプレートマップを使用\n"
+"\tsvn のデフォルトキーワード設定を使用\n"
+
+msgid ""
+"\n"
+"\tconfiguration using default cvs keywordset\n"
+msgstr ""
+"\n"
+"\tcvs のデフォルトキーワード設定を使用\n"
 
 msgid "\tdisabling current template maps\n"
 msgstr "\t現行のテンプレートマップを無効化\n"
@@ -3114,12 +3040,10 @@
 msgid "revert expanded keywords in the working directory"
 msgstr "作業領域中のキーワード展開の取り消し"
 
-msgid ""
-"    Run before changing/disabling active keywords or if you experience\n"
-"    problems with :hg:`import` or :hg:`merge`."
-msgstr ""
-"    キーワード設定の変更前や、 :hg:`import` ないし :hg:`merge` で問題が\n"
-"    発生した経験がある場合に実行してください。"
+msgid "    Must be run before changing/disabling active keywords."
+msgstr ""
+"    キーワード展開の設定変更/無効化の前に、\n"
+"    必ず実施してください。"
 
 msgid ""
 "    kwshrink refuses to run if given files contain local changes.\n"
@@ -3227,7 +3151,7 @@
 "'keep' が指定された場合、 既存の qrefresh 対象となるパッチが git 形式\n"
 "パッチである間は、 MQ は [diff] セクションの設定に従います。\n"
 "'yes' ないし 'no' が指定された場合、 MQ は [diff] セクションの設定を無視\n"
-"して、 git パッチないし通常パッチを生成します。 通常パッチを生成する場合、 \n"
+"して、 git パッチないし通常パッチを生成します。 通常パッチを生成する場合、\n"
 "情報が失われる可能性があります。"
 
 msgid ""
@@ -3239,6 +3163,10 @@
 "作成することができます。\n"
 
 #, python-format
+msgid "malformated mq status line: %s\n"
+msgstr "不正な MQ 状態行: %s\n"
+
+#, python-format
 msgid "mq.git option can be auto/keep/yes/no got %s"
 msgstr "mq.git オプションが auto/keep/yes/no 以外の %s でした"
 
@@ -3369,6 +3297,10 @@
 msgid "working directory revision is not qtip"
 msgstr "作業領域の親リビジョンは qtip ではありません"
 
+#, python-format
+msgid "uncommitted changes in subrepository %s"
+msgstr "副リポジトリ %s に未コミット変更あり"
+
 msgid "local changes found, refresh first"
 msgstr "作業領域の内容は変更されていますので qrefresh を実施してください"
 
@@ -3380,6 +3312,10 @@
 msgstr "\"%s\" はパッチ名として使用できません"
 
 #, python-format
+msgid "\"%s\" already exists as a directory"
+msgstr "\"%s\" はディレクトリとして既に存在します"
+
+#, python-format
 msgid "patch \"%s\" already exists"
 msgstr "パッチ \"%s\" は既に存在します"
 
@@ -3387,6 +3323,10 @@
 msgstr "マージリビジョンは MQ の管理対象にできません"
 
 #, python-format
+msgid "cannot write patch \"%s\": %s"
+msgstr "パッチ \"%s\" の書き出しに失敗: %s"
+
+#, python-format
 msgid "error unlinking %s\n"
 msgstr "%s の unlink に失敗\n"
 
@@ -3405,14 +3345,14 @@
 msgstr "既知のパッチはありません\n"
 
 #, python-format
+msgid "qpush: %s is already at the top\n"
+msgstr "qpush: パッチ %s は既に適用中の最上位パッチです\n"
+
+#, python-format
 msgid "cannot push to a previous patch: %s"
 msgstr "適用中のパッチ %s の再適用はできません"
 
 #, python-format
-msgid "qpush: %s is already at the top\n"
-msgstr "qpush: パッチ %s は既に適用中の最上位パッチです\n"
-
-#, python-format
 msgid "guarded by %r"
 msgstr "ガード %r が適用されました"
 
@@ -3429,6 +3369,16 @@
 msgid "patch series already fully applied\n"
 msgstr "全てのパッチが適用中です\n"
 
+msgid "cannot use --exact and --move together"
+msgstr "--exact と --move の併用はできません"
+
+msgid "cannot push --exact with applied patches"
+msgstr "パッチ適用中に、 --exact 付きでのパッチ適用はできません"
+
+#, python-format
+msgid "%s does not have a parent recorded"
+msgstr "%s には親リビジョン情報がありません"
+
 msgid "please specify the patch to move"
 msgstr "移動するパッチを指定してください"
 
@@ -3808,7 +3758,7 @@
 "    empty and the commit message is '[mq]: PATCH'."
 msgstr ""
 "    -e/--edit, -m/--message ないし -l/--logfile は、 コミットメッセージと\n"
-"    同様に、 パッチのヘッダに記録する情報を指定します。 指定が無い場合は、 \n"
+"    同様に、 パッチのヘッダに記録する情報を指定します。 指定が無い場合は、\n"
 "    ヘッダは空のまま、 コミットメッセージが '[mq]: パッチ名' となります。"
 
 msgid ""
@@ -3818,7 +3768,7 @@
 "    information."
 msgstr ""
 "    git 拡張差分形式を使用する場合は、 -g/--git を指定します。 改名/複製\n"
-"    情報や、 権限設定の情報保持にとっての git 差分形式の有用性に関しては、 \n"
+"    情報や、 権限設定の情報保持にとっての git 差分形式の有用性に関しては、\n"
 "    'help diffs' を参照してください。"
 
 msgid ""
@@ -3855,7 +3805,7 @@
 "    your message in ``.hg/last-message.txt``."
 msgstr ""
 "    -e/--edit が指定された場合、 メッセージ入力用のプログラムが\n"
-"    設定に従って起動されます。 処理が失敗した場合、 \n"
+"    設定に従って起動されます。 処理が失敗した場合、\n"
 "    入力したメッセージは ``.hg/last-message.txt`` に保存されます。"
 
 msgid ""
@@ -3865,9 +3815,9 @@
 "    git diff format."
 msgstr ""
 "    複製/改名に関する履歴保存のために git 差分形式を使用(-g/--git 指定や\n"
-"    設定ファイルでの [diff] git=1 記述)するのであれば、 \n"
-"    add/remove/copy/rename といった hg のコマンドによる履歴記録も、 \n"
-"    通常と変わりなく機能します。 git 差分形式の詳細に関しては、 \n"
+"    設定ファイルでの [diff] git=1 記述)するのであれば、\n"
+"    add/remove/copy/rename といった hg のコマンドによる履歴記録も、\n"
+"    通常と変わりなく機能します。 git 差分形式の詳細に関しては、\n"
 "    'help diffs' を参照してください。"
 
 msgid "option \"-e\" incompatible with \"-m\" or \"-l\""
@@ -3907,18 +3857,20 @@
 "    deleted. With -k/--keep, the folded patch files will not be\n"
 "    removed afterwards."
 msgstr ""
-"    対象パッチは未適用でなければなりません。 それぞれのパッチは指定された\n"
-"    順序で連続的に現行パッチに適用されます。 全ての適用が成功した場合は、 \n"
-"    現行パッチが全てのパッチの累積として更新され、 統合されたパッチは削除\n"
-"    されます。 -k/--keep が指定された場合は、 統合実施後も統合されtパッチ"
-"の\n"
-"    ファイルは残されます。"
+"    対象パッチは未適用でなければなりません。\n"
+"    それぞれのパッチは、 指定された順序で、\n"
+"    連続的に現行パッチに適用されます。\n"
+"    全ての適用が成功した場合は、\n"
+"    現行パッチが全てのパッチの累積として更新され、\n"
+"    統合されたパッチは削除されます。\n"
+"    -k/--keep が指定された場合、\n"
+"    統合されたパッチのファイルは、 統合実施後も残ります。"
 
 msgid ""
 "    The header for each folded patch will be concatenated with the\n"
 "    current patch header, separated by a line of ``* * *``."
 msgstr ""
-"    統合対象パッチのヘッダ情報は、 ``* * *`` 行を区切り記号として、 \n"
+"    統合対象パッチのヘッダ情報は、 ``* * *`` 行を区切り記号として、\n"
 "    現行のパッチに追加されます。"
 
 msgid "qfold requires at least one patch name"
@@ -3953,7 +3905,7 @@
 "    「ガード」はパッチ適用の可否を制御します。 ガードが設定されていない\n"
 "    パッチは常に適用されます。 「正」のガード(例: \"+foo\")が設定された\n"
 "    パッチは、 :hg:`qselect` によって当該ガードが設定されている場合に限り\n"
-"    適用されます。 「負」のガード(例: \"-foo\")が設定されているパッチは、 \n"
+"    適用されます。 「負」のガード(例: \"-foo\")が設定されているパッチは、\n"
 "    :hg:`qselect` によって当該ガードが設定されている場合は適用されません。"
 
 msgid ""
@@ -3996,7 +3948,7 @@
 "    When -f/--force is applied, all local changes in patched files\n"
 "    will be lost."
 msgstr ""
-"    -f/--force が指定された場合、 パッチ適用対象ファイルの、 \n"
+"    -f/--force が指定された場合、 パッチ適用対象ファイルの、\n"
 "    作業領域における変更内容は破棄されます。"
 
 msgid ""
@@ -4077,7 +4029,7 @@
 "    the operation is aborted unless the --force flag is supplied."
 msgstr ""
 "    :hg:`strip` は指定のリビジョンおよび、 指定リビジョンの子孫を\n"
-"    取り除きます。 作業領域に未コミットの変更がある場合、 \n"
+"    取り除きます。 作業領域に未コミットの変更がある場合、\n"
 "    --force が指定されない限りは処理を中断します。"
 
 msgid ""
@@ -4086,7 +4038,7 @@
 "    available ancestor of the stripped parent after the operation\n"
 "    completes."
 msgstr ""
-"    作業領域の親リビジョンが除外対象になった場合、 除外操作の完了後に、 \n"
+"    作業領域の親リビジョンが除外対象になった場合、 除外操作の完了後に、\n"
 "    除外された親リビジョンの先祖の中で最も近い有効なリビジョンを使用して\n"
 "    作業領域を更新します。"
 
@@ -4146,7 +4098,7 @@
 "    positive match)."
 msgstr ""
 "    上記の qselect 実行により、 \"stable\" ガードが選択されます。 MQ は\n"
-"    foo.patch の適用を(「負」のガードに合致するため)見送りますが、 \n"
+"    foo.patch の適用を(「負」のガードに合致するため)見送りますが、\n"
 "    bar.patch の適用は(「正」のガードに合致するため)実施します。"
 
 msgid ""
@@ -4174,9 +4126,9 @@
 "    guarded patches."
 msgstr ""
 "    本コマンドの実行により、 適用中のパッチの適用可否も変化し得ます。 特に\n"
-"    指定が無い場合、 ガードが有効なパッチの適用解除は行われません。 \n"
+"    指定が無い場合、 ガードが有効なパッチの適用解除は行われません。\n"
 "    --pop が指定された場合、 適用可否が変わる最初のパッチまでのパッチが\n"
-"    適用解除されます。 --reapply が指定された場合、 --pop 相当の処理後に、 \n"
+"    適用解除されます。 --reapply が指定された場合、 --pop 相当の処理後に、\n"
 "    ガードが有効なパッチの適用を見送りつつ、 現行パッチに至るまでパッチを\n"
 "    再適用します。"
 
@@ -4224,7 +4176,7 @@
 "    patches) by moving them out of mq control into regular repository\n"
 "    history."
 msgstr ""
-"    指定されたリビジョン(適用中パッチに相当)を、 MQ 管理下から除外し、 \n"
+"    指定されたリビジョン(適用中パッチに相当)を、 MQ 管理下から除外し、\n"
 "    通常のリビジョンとしてリポジトリに記録します。"
 
 msgid ""
@@ -4243,7 +4195,7 @@
 "    an upstream repository, or if you are about to push your changes\n"
 "    to upstream."
 msgstr ""
-"    この機能は、 上流のリポジトリでパッチが受理された場合や、 \n"
+"    この機能は、 上流のリポジトリでパッチが受理された場合や、\n"
 "    パッチ内容を上流リポジトリに反映する場合などに有用です。"
 
 msgid "no revisions specified"
@@ -4279,7 +4231,7 @@
 msgstr ""
 "    -c/--create が指定された場合、 新規キューを作成します。 当該時点で\n"
 "    アクティブなキューからパッチが適用中の場合を除き、 新規作成された\n"
-"    キューが自動的にアクティブなキューとなります。 この場合、 \n"
+"    キューが自動的にアクティブなキューとなります。 この場合、\n"
 "    新規キューは生成されますがキューの切り替えは実施されません。"
 
 msgid ""
@@ -4432,6 +4384,9 @@
 msgid "import file in patch directory"
 msgstr "パッチ管理領域中のファイルから取り込み"
 
+msgid "NAME"
+msgstr "名前"
+
 msgid "name of patch file"
 msgstr "パッチファイル名"
 
@@ -4498,6 +4453,9 @@
 msgid "apply on top of local changes"
 msgstr "作業領域の変更をそのままでパッチを適用"
 
+msgid "apply the target patch to its recorded parent"
+msgstr "パッチに記録された親リビジョンに対して適用"
+
 msgid "list patch name in commit text"
 msgstr "コミットメッセージとしてパッチ名を列挙"
 
@@ -4517,7 +4475,7 @@
 msgstr "hg qpush [-f] [-l] [-a] [--move] [PATCH | INDEX]"
 
 msgid "refresh only files already in the patch and specified files"
-msgstr "パッチ対象か、 明示指定のあったファイルのみを処理対象にする"
+msgstr "既存のパッチ対象に加え、明示されたファイルを処理対象にする"
 
 msgid "add/update author field in patch with current user"
 msgstr "パッチ作成者情報を現行ユーザに設定"
@@ -4761,7 +4719,7 @@
 
 msgid ""
 "  [pager]\n"
-"  pager = LESS='FSRX' less"
+"  pager = less -FRSX"
 msgstr ""
 
 msgid ""
@@ -4770,16 +4728,6 @@
 msgstr ""
 
 msgid ""
-"By default, the pager is only executed if a command has output. To\n"
-"force the pager to run even if a command prints nothing, set::"
-msgstr ""
-
-msgid ""
-"  [pager]\n"
-"  force = True"
-msgstr ""
-
-msgid ""
 "If you notice \"BROKEN PIPE\" error messages, you can disable them by\n"
 "setting::"
 msgstr ""
@@ -4891,7 +4839,7 @@
 "mail and news readers, and in mail archives."
 msgstr ""
 "個々のメールは、 In-Reply-To および References ヘッダを使用して、 1通目の\n"
-"メールを参照しますので、 メールリーダーやニュースリーダーでの参照時や、 \n"
+"メールを参照しますので、 メールリーダーやニュースリーダーでの参照時や、\n"
 "メールアーカイブにおいては、 一連のスレッドとして扱われます。"
 
 msgid ""
@@ -4968,7 +4916,7 @@
 "    The message contains two or three parts. First, the changeset\n"
 "    description."
 msgstr ""
-"    個々のメールの Subject ヘッダは、 \"[PATCH M of N]\" で始まり、 \n"
+"    個々のメールの Subject ヘッダは、 \"[PATCH M of N]\" で始まり、\n"
 "    対応するリビジョンのコミットメッセージの1行目が記載されます。\n"
 "    メール本文は、 2ないし3の部位から構成されます。\n"
 "    最初の部位にはコミットメッセージの続きが配置されます。"
@@ -4977,7 +4925,7 @@
 "    With the -d/--diffstat option, if the diffstat program is\n"
 "    installed, the result of running diffstat on the patch is inserted."
 msgstr ""
-"    -d/--diffstat が指定され、 diffstat コマンドが利用可能な場合、 \n"
+"    -d/--diffstat が指定され、 diffstat コマンドが利用可能な場合、\n"
 "    パッチに対する diffstat の実行結果が配置されます。"
 
 msgid "    Finally, the patch itself, as generated by :hg:`export`."
@@ -4988,8 +4936,8 @@
 "    with a final summary of all messages and asked for confirmation before\n"
 "    the messages are sent."
 msgstr ""
-"    -d/--diffstat ないし -c/--confirm が指定された場合、 \n"
-"    メッセージの送信に先立って、 全メッセージのまとめを伴って、 \n"
+"    -d/--diffstat ないし -c/--confirm が指定された場合、\n"
+"    メッセージの送信に先立って、 全メッセージのまとめを伴って、\n"
 "    確認の問い合わせがあります。"
 
 msgid ""
@@ -5008,7 +4956,7 @@
 "    of the specified revisions if any are provided)"
 msgstr ""
 "    -o/--outgoing 指定がある場合、 連携対象リポジトリに存在しない\n"
-"    (あるいは、 指定リビジョンの子孫となる)リビジョンのためのパッチのみが\n"
+"    (あるいは、 指定リビジョン以前の)リビジョンのためのパッチのみが\n"
 "    メールで送信されます。"
 
 msgid ""
@@ -5027,7 +4975,7 @@
 "    previewed with any mail user agent which supports UNIX mbox\n"
 "    files."
 msgstr ""
-"    -m/--mbox が指定された場合、 PAGER での表示やメール送信の代わりに、 \n"
+"    -m/--mbox が指定された場合、 PAGER での表示やメール送信の代わりに、\n"
 "    パッチのメールを格納した UNIX mbox 形式ファイルを作成します。\n"
 "    このファイルは UNIX mbox 形式に対応しているツールで閲覧可能です。"
 
@@ -5039,21 +4987,26 @@
 "    PAGER environment variable is set, your pager will be fired up once\n"
 "    for each patchbomb message, so you can verify everything is alright."
 msgstr ""
-"    -n/--test 指定のある場合、 一連の処理手順は実行されますが、 \n"
-"    メールの送信は行われません。 その代わりに、 送信先アドレスや、 \n"
-"    パッチ説明文の入力が促されます。 必要な入力が完了すると、 \n"
+"    -n/--test 指定のある場合、 一連の処理手順は実行されますが、\n"
+"    メールの送信は行われません。 その代わりに、 送信先アドレスや、\n"
+"    パッチ説明文の入力が促されます。 必要な入力が完了すると、\n"
 "    送信されるメールの内容が表示されます。\n"
 "    PAGER 環境変数が設定されている場合、 パッチ爆弾を構成する\n"
-"    メールごとに、 環境変数に設定されたプログラムが起動されますので、 \n"
+"    メールごとに、 環境変数に設定されたプログラムが起動されますので、\n"
 "    内容を確認することが出来ます。"
 
 msgid ""
+"    In case email sending fails, you will find a backup of your series\n"
+"    introductory message in ``.hg/last-email.txt``."
+msgstr ""
+
+msgid ""
 "      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)"
 msgstr ""
-"      hg email -r 3000          # リビジョン 3000 \n"
+"      hg email -r 3000          # リビジョン 3000\n"
 "      hg email -r 3000 -r 3001  # リビジョン 3000 および 3001\n"
 "      hg email -r 3000:3005     # リビジョン 3000 から 3005 まで\n"
 "      hg email 3000             # リビジョン 3000 (非推奨形式)"
@@ -5066,8 +5019,8 @@
 msgstr ""
 "      hg email -o               # default に無いリビジョン\n"
 "      hg email -o DEST          # DEST に無いリビジョン\n"
-"      hg email -o -r 3000       # default に無い 3000 以後\n"
-"      hg email -o -r 3000 DEST  # DEST に無い 3000 以後"
+"      hg email -o -r 3000       # 3000 以前で default 側に無いリビジョン\n"
+"      hg email -o -r 3000 DEST  # 3000 以前で DEST 側に無いリビジョン"
 
 msgid ""
 "      hg email -b               # send bundle of all patches not in default\n"
@@ -5076,10 +5029,11 @@
 "default\n"
 "      hg email -b -r 3000 DEST  # bundle of all ancestors of 3000 not in DEST"
 msgstr ""
-"      hg email -b               # default に無いものを bundle 形式で\n"
-"      hg email -b DEST          # DEST に無いものを bundle 形式で\n"
-"      hg email -b -r 3000       # default に無い 3000 以後を bundle 形式で\n"
-"      hg email -b -r 3000 DEST  # DEST に無い 3000 以後を bundle 形式で"
+"                                # ※ 以下、すべて bundle 形式\n"
+"      hg email -b               # default 側に無いリビジョン\n"
+"      hg email -b DEST          # DEST 側に無いリビジョン\n"
+"      hg email -b -r 3000       # 3000 以前で default 側に無いリビジョン\n"
+"      hg email -b -r 3000 DEST  # 3000 以前で DEST 側に無いリビジョン"
 
 msgid ""
 "      hg email -o -m mbox &&    # generate an mbox file...\n"
@@ -5105,6 +5059,10 @@
 "    ください。\n"
 "    "
 
+#, python-format
+msgid "comparing with %s\n"
+msgstr "%s と比較中\n"
+
 msgid "no changes found\n"
 msgstr "差分はありません\n"
 
@@ -5139,7 +5097,7 @@
 "統計結果:"
 
 msgid "are you sure you want to send (yn)?"
-msgstr "メールを送信しますか?(yn)"
+msgstr "メールを送信しますか? (y/n)"
 
 msgid "&No"
 msgstr "&No"
@@ -5257,7 +5215,7 @@
 "  [progress]\n"
 "  delay = 3 # number of seconds (float) before showing the progress bar\n"
 "  refresh = 0.1 # time in seconds between refreshes of the progress bar\n"
-"  format = topic bar number # format of the progress bar\n"
+"  format = topic bar number estimate # format of the progress bar\n"
 "  width = <none> # if set, the maximum width of the progress information\n"
 "                 # (that is, min(width, term width) will be used)\n"
 "  clear-complete = True # clear the progress bar after it's done\n"
@@ -5267,10 +5225,41 @@
 msgstr ""
 
 msgid ""
-"Valid entries for the format field are topic, bar, number, unit, and\n"
-"item. item defaults to the last 20 characters of the item, but this\n"
-"can be changed by adding either ``-<num>`` which would take the last\n"
-"num characters, or ``+<num>`` for the first num characters.\n"
+"Valid entries for the format field are topic, bar, number, unit,\n"
+"estimate, and item. item defaults to the last 20 characters of the\n"
+"item, but this can be changed by adding either ``-<num>`` which would\n"
+"take the last num characters, or ``+<num>`` for the first num\n"
+"characters.\n"
+msgstr ""
+
+#. i18n: format XX seconds as "XXs"
+#, python-format
+msgid "%02ds"
+msgstr ""
+
+#. i18n: format X minutes and YY seconds as "XmYYs"
+#, python-format
+msgid "%dm%02ds"
+msgstr ""
+
+#. i18n: format X hours and YY minutes as "XhYYm"
+#, python-format
+msgid "%dh%02dm"
+msgstr ""
+
+#. i18n: format X days and YY hours as "XdYYh"
+#, python-format
+msgid "%dd%02dh"
+msgstr ""
+
+#. i18n: format X weeks and YY days as "XwYYd"
+#, python-format
+msgid "%dw%02dd"
+msgstr ""
+
+#. i18n: format X years and YY weeks as "XyYYw"
+#, python-format
+msgid "%dy%02dw"
 msgstr ""
 
 msgid "command to delete untracked files from the working directory"
@@ -5385,7 +5374,7 @@
 msgstr ""
 "    他の利用者に公開済みのリビジョンは、 移動すべきではありません。\n"
 "    公開済みリビジョンの移動は、 他の利用者に同様の移動操作を強制する\n"
-"    ことになったり、 あなたが移動した後のリビジョンを取り込むことで、 \n"
+"    ことになったり、 あなたが移動した後のリビジョンを取り込むことで、\n"
 "    同一リビジョンが重複した状態になってしまったりします。"
 
 msgid ""
@@ -5414,13 +5403,13 @@
 "    移動対象リビジョンは、 \"source\" 指定と \"base\" 指定の2つの方法で\n"
 "    指定可能です。 どちらも履歴ツリー上から「移動元ブランチ」リビジョンを\n"
 "    抽出するための簡略表現です。  \"source\" (``-s/--source``) を指定した\n"
-"    場合、 指定リビジョンおよびその子孫全てを移動します。  \"base\" \n"
+"    場合、 指定リビジョンおよびその子孫全てを移動します。  \"base\"\n"
 "    (``-b/--base``) を指定した場合、 移動先リビジョンと共通となる先祖を\n"
 "    含まない範囲で指定リビジョンの先祖へと遡り、 移動対象を選択します。\n"
 "    そのため、 ``-s`` での指定と比較して、  ``-b`` での指定は精密さでは\n"
 "    劣りますが、 その分便利です。 移動元のブランチで任意のリビジョンを\n"
 "    選択することで、 ブランチ全体から対象が自動的に選択されます。\n"
-"    ``-s`` も ``-b`` も指定しない場合、 作業領域の親リビジョンを \n"
+"    ``-s`` も ``-b`` も指定しない場合、 作業領域の親リビジョンを\n"
 "    \"base\" とみなします。"
 
 msgid ""
@@ -5430,7 +5419,7 @@
 "    changesets in the source branch (e.g. merges from the destination\n"
 "    branch) may be dropped if they no longer contribute any change."
 msgstr ""
-"    特に指定が無い場合、 本コマンドは移動元ブランチのリビジョンを、 \n"
+"    特に指定が無い場合、 本コマンドは移動元ブランチのリビジョンを、\n"
 "    移動先の子孫として再生成し、 その後に元リビジョンを破棄します。\n"
 "    移動元リビジョンを残す場合、 ``--keep`` を指定してください。\n"
 "    移動元ブランチのリビジョンのうち、 何も貢献の無いリビジョン\n"
@@ -5492,8 +5481,8 @@
 msgid "changesets"
 msgstr "チェンジセット"
 
-msgid "fix unresolved conflicts with hg resolve then run hg rebase --continue"
-msgstr " 'hg resolve' で衝突解消してから 'hg rebase --continue' してください"
+msgid "unresolved conflicts (see hg resolve, then hg rebase --continue)"
+msgstr "衝突が未解決です (:hg:`resolve` と :hg:`rebase --continue` 参照)"
 
 #, python-format
 msgid "no changes, revision %d skipped\n"
@@ -5621,18 +5610,18 @@
 
 #, python-format
 msgid "examine changes to %s?"
-msgstr "%s の変更点を調べますか?"
+msgstr "%s の変更点を調べますか?"
 
 msgid " and "
 msgstr " と "
 
 #, python-format
 msgid "record this change to %r?"
-msgstr "この変更を %r に記録しますか?"
+msgstr "この変更を %r に記録しますか?"
 
 #, python-format
 msgid "record change %d/%d to %r?"
-msgstr "この変更 (%d 件目 / %d 件中) を %r に記録しますか?"
+msgstr "この変更 (%d 件目 / %d 件中) を %r に記録しますか?"
 
 msgid "interactively select changes to commit"
 msgstr "コミットする内容を対話的に選択します"
@@ -5688,8 +5677,8 @@
 msgid "running non-interactively, use commit instead"
 msgstr "非対話的に実行する場合は commit を使用してください"
 
-msgid "cannot partially commit a merge (use hg commit instead)"
-msgstr "マージの部分コミットはできません ('hg commit' を使用してください)"
+msgid "cannot partially commit a merge (use \"hg commit\" instead)"
+msgstr "マージの部分コミットはできません (\"hg commit\" を使用してください)"
 
 msgid "no changes to record\n"
 msgstr "記録可能な変更がありません\n"
@@ -5742,7 +5731,7 @@
 msgstr ""
 
 msgid "hardlinks are not supported on this system"
-msgstr "このシステム上ではハードリンクはサポートしていません"
+msgstr "このシステム上ではハードリンクが未サポートです"
 
 #, python-format
 msgid "relinking %s to %s\n"
@@ -5950,7 +5939,7 @@
 "?: ヘルプの表示\n"
 
 msgid "apply changeset? [ynmpcq?]:"
-msgstr "チェンジセットを適用しますか? [ynmpcq?]:"
+msgstr "チェンジセットを適用しますか? [ynmpcq?]:"
 
 msgid "no such option\n"
 msgstr "そのようなオプションはありません\n"
@@ -5998,7 +5987,7 @@
 "    branch (up to the named revision) onto your current working\n"
 "    directory."
 msgstr ""
-"    :hg:`transplant --branch REVISION --all` 形式での起動の場合、 \n"
+"    :hg:`transplant --branch REVISION --all` 形式での起動の場合、\n"
 "    指定 REVISION までのブランチ全体が、 現在の作業領域上に移植されます。"
 
 msgid ""
@@ -6128,15 +6117,19 @@
 msgid "Note that there are some limitations on using this extension:"
 msgstr "このエクステンションの利用には幾つかの制限があります:"
 
-msgid "- You should use single encoding in one repository."
-msgstr "- リポジトリ内では単一の文字コードを使用してください"
-
-msgid ""
-"\n"
+msgid ""
+"- You should use single encoding in one repository.\n"
+"- If the repository path ends with 0x5c, .hg/hgrc cannot be read.\n"
+"- win32mbcs is not compatible with fixutf8 extension."
+msgstr ""
+"- リポジトリ内では単一の文字コードを使用してください\n"
+"- リポジトリパス末尾が 0x5c の場合、 .hg/hgrc が読み出せません\n"
+"- win32mbcs は fixutf8 エクステンションと互換性がありません"
+
+msgid ""
 "By default, win32mbcs uses encoding.encoding decided by Mercurial.\n"
 "You can specify the encoding by config option::"
 msgstr ""
-"\n"
 "指定の無い場合、 win32mbcs は Mercurial により決定される\n"
 "(Python プログラム上の) encoding.encoding 変数値を使用します。\n"
 "以下の設定記述により、 文字コードを指定することができます::"
@@ -6294,7 +6287,7 @@
 "win32text is deprecated: http://mercurial.selenic.com/wiki/"
 "Win32TextExtension\n"
 msgstr ""
-"win32text は推奨されていません:  http://mercurial.selenic.com/wiki/"
+"win32text は推奨されていません: http://mercurial.selenic.com/wiki/"
 "Win32TextExtension 参照\n"
 
 msgid "discover and advertise repositories on the local network"
@@ -6336,6 +6329,19 @@
 msgid "unknown archive type '%s'"
 msgstr "未知のアーカイブ種別 '%s'"
 
+msgid "archiving"
+msgstr "アーカイブ中"
+
+#, python-format
+msgid "bookmark '%s' contains illegal character"
+msgstr "ブックマーク '%s' は不正な文字を含んでいます"
+
+msgid "searching for changed bookmarks\n"
+msgstr "変更されたブックマークを探索中\n"
+
+msgid "no changed bookmarks found\n"
+msgstr "変更されたブックマークはありません\n"
+
 msgid "invalid changegroup"
 msgstr "チェンジグループが不正です"
 
@@ -6350,8 +6356,12 @@
 msgstr "バンドルリポジトリの新規作成はできません"
 
 #, python-format
-msgid "premature EOF reading chunk (got %d bytes, expected %d)"
-msgstr "予期しない EOF (%d バイトのみ読込済、 本当は %d バイト)"
+msgid "stream ended unexpectedly (got %d bytes, expected %d)"
+msgstr "予期せぬデータ終端 (実データ:%d バイト 期待データ:%d バイト)"
+
+#, python-format
+msgid "invalid chunk length %d"
+msgstr "不正なデータ長: %d"
 
 #, python-format
 msgid "%s: not a Mercurial bundle"
@@ -6402,6 +6412,10 @@
 msgstr "%s の削除を %s へのファイル名変更として記録中 (類似度 %d%%)\n"
 
 #, python-format
+msgid "%s has not been committed yet, so no copy data will be stored for %s.\n"
+msgstr "%s は未コミットなので、 %s のコピーデータは残りません\n"
+
+#, python-format
 msgid "%s: not copying - file is not managed\n"
 msgstr "%s: コピー失敗 - ファイルは登録されていません\n"
 
@@ -6441,10 +6455,6 @@
 msgid "copying %s to %s\n"
 msgstr "%s を %s にコピー中\n"
 
-#, python-format
-msgid "%s has not been committed yet, so no copy data will be stored for %s.\n"
-msgstr "%s は未コミットなので、 %s のコピーデータは残りません\n"
-
 msgid "no source or destination specified"
 msgstr "作業元もしくは作業先を指定していません"
 
@@ -6462,7 +6472,7 @@
 msgstr "コピーするファイルがありません"
 
 msgid "(consider using --after)\n"
-msgstr "( --after を使ってみては? )\n"
+msgstr "(--after を使ってみては?)\n"
 
 msgid "child process failed to start"
 msgstr "子プロセスの生成に失敗"
@@ -6476,6 +6486,10 @@
 msgstr "ブランチ:         %s\n"
 
 #, python-format
+msgid "bookmark:    %s\n"
+msgstr "ブックマーク:     %s\n"
+
+#, python-format
 msgid "tag:         %s\n"
 msgstr "タグ:             %s\n"
 
@@ -6565,7 +6579,7 @@
 
 #, python-format
 msgid "HG: subrepo %s"
-msgstr "HG: サブリポジトリ %s"
+msgstr "HG: 副リポジトリ %s"
 
 #, python-format
 msgid "HG: added %s"
@@ -6653,11 +6667,12 @@
 
 msgid ""
 "    New files are ignored if they match any of the patterns in\n"
-"    .hgignore. As with add, these changes take effect at the next\n"
+"    ``.hgignore``. As with add, these changes take effect at the next\n"
 "    commit."
 msgstr ""
-"    .hgignore に記述されたパターンに合致する新規ファイルは無視されます。\n"
-"    :hg:`add` と同様に、 実行効果が発揮されるのは次回コミット時点です。"
+"    ``.hgignore`` に記述されたパターンに合致する新規ファイルは\n"
+"    無視されます。 :hg:`add` と同様に、 実行効果が発揮されるのは\n"
+"    次回コミット時点です。"
 
 msgid ""
 "    Use the -s/--similarity option to detect renamed files. With a\n"
@@ -6756,7 +6771,7 @@
 "    using a format string; see :hg:`help export` for details."
 msgstr ""
 "    アーカイブ生成先となるファイル名ないしディレクトリ名の指定には\n"
-"    置換指定を使用することができます。 置換指定に関する詳細は \n"
+"    置換指定を使用することができます。 置換指定に関する詳細は\n"
 "    :hg:`help export` を参照してください。"
 
 msgid ""
@@ -6783,54 +6798,49 @@
 msgstr "以前のチェンジセットにおける変更の打ち消し"
 
 msgid ""
-"    The backout command merges the reverse effect of the reverted\n"
-"    changeset into the working directory."
-msgstr ""
-"    本コマンドは、 対象リビジョンでの変更を打ち消す効果を持つ変更を\n"
-"    作業領域へと反映します。"
-
-msgid ""
-"    With the --merge option, it first commits the reverted changes\n"
-"    as a new changeset. This new changeset is a child of the reverted\n"
-"    changeset.\n"
-"    The --merge option remembers the parent of the working directory\n"
-"    before starting the backout, then merges the new head with that\n"
-"    changeset afterwards.\n"
-"    This will result in an explicit merge in the history."
-msgstr ""
-"    --merge が指定された場合、 まずは打ち消し効果を持つ変更が、 \n"
-"    打ち消し対象リビジョンの子リビジョンとして、 新規作成されます。\n"
-"    その後、 打ち消し効果を持つ新規リビジョンによるヘッドと、 \n"
-"    処理の実施に先立って記録された作業領域の親リビジョンに対して、 \n"
-"    :hg:`merge` 相当の処理が実施されます。\n"
-"    マージ結果を履歴に記録するには :hg:`commit` 実施が必要です。\n"
-"    (訳注: --merge が指定されない場合、 打ち消しのための変更の適用は、 \n"
-"    作業領域に対して実施され、 新たなヘッドは作成されません)"
-
-msgid ""
-"    If you backout a changeset other than the original parent of the\n"
-"    working directory, the result of this merge is not committed,\n"
-"    as with a normal merge. Otherwise, no merge is needed and the\n"
-"    commit is automatic."
-msgstr ""
-"    作業領域の親リビジョン「以外」の変更を打ち消す場合に、 \n"
-"    (--merge 指定に関わらず) 実行結果が自動的にコミットされないのは、 \n"
-"    通常の :hg:`merge` 実行相当の処理が実施されているためです。\n"
-"    作業領域の親リビジョンの変更を打ち消す場合、 \n"
-"    :hg:`merge` 相当の処理は実施されないため、 \n"
-"    打ち消し結果は自動的にコミットされます。"
-
-msgid ""
-"    Note that the default behavior (without --merge) has changed in\n"
-"    version 1.7. To restore the previous default behavior, use\n"
-"    :hg:`backout --merge` and then :hg:`update --clean .` to get rid of\n"
-"    the ongoing merge."
-msgstr ""
-"    注意: --merge 指定が無い場合の挙動は、 1.7 版において変更されました。\n"
-"    (訳注: 旧版では --merge の有無に関わらず、 常に新規ヘッドが作成)\n"
-"    以前の版における --merge 指定無し時の挙動と同等の結果を得るには、 \n"
-"    :hg:`backout --merge` 後に :hg:`update --clean .` を実行することで、 \n"
-"    仕掛かり中のマージ処理を取り消してください。"
+"    Prepare a new changeset with the effect of REV undone in the\n"
+"    current working directory."
+msgstr ""
+"    対象リビジョンでの変更を打ち消す効果を持つ変更を、\n"
+"    作業領域で作成します。"
+
+msgid ""
+"    If REV is the parent of the working directory, then this new changeset\n"
+"    is committed automatically. Otherwise, hg needs to merge the\n"
+"    changes and the merged result is left uncommitted."
+msgstr ""
+"    対象リビジョンが、 作業領域の親リビジョンの場合、\n"
+"    新規作成された打ち消しリビジョンは、 自動的にコミットされます。\n"
+"    それ以外の場合は、 マージが実施されますが、\n"
+"    マージ結果はコミットされません。"
+
+msgid ""
+"    By default, the pending changeset will have one parent,\n"
+"    maintaining a linear history. With --merge, the pending changeset\n"
+"    will instead have two parents: the old parent of the working\n"
+"    directory and a new child of REV that simply undoes REV."
+msgstr ""
+"    特に指定が無い場合、 打ち消しリビジョンは、\n"
+"    単一の親リビジョンしか持たない、\n"
+"    一直線の履歴となるように作成されます。\n"
+"    --merge を指定した場合は、 2つの親リビジョンを持つようになります。\n"
+"    一方の親は作業領域の親リビジョン、\n"
+"    もう一方は、 打ち消しリビジョン (= 打ち消し対象の新規子リビジョン)\n"
+"    です。"
+
+msgid ""
+"    Before version 1.7, the behavior without --merge was equivalent to\n"
+"    specifying --merge followed by :hg:`update --clean .` to cancel\n"
+"    the merge and leave the child of REV as a head to be merged\n"
+"    separately."
+msgstr ""
+"    1.8 版より前の本コマンドの --merge 無し時挙動は、\n"
+"    打消しを --merge 付きで実行した後で、\n"
+"    :hg:`update --clean .` を実行した場合と等価です。\n"
+"    ここでの :hg:`update --clean .` 実行は、\n"
+"    マージの実施をキャンセルし、\n"
+"    打ち消しリビジョンを後から別途マージできるように、\n"
+"    ヘッドのまま残す働きをします。"
 
 msgid "please specify just one revision"
 msgstr "リビジョン指定は1つだけです"
@@ -6875,8 +6885,8 @@
 "    bad, and bisect will either update to another candidate changeset\n"
 "    or announce that it has found the bad revision."
 msgstr ""
-"    問題発生契機となるリビジョンの特定を補助します。 使用開始の際には、 \n"
-"    問題が発生する既知のリビジョンのうち、 最古のものを bad とマークし、 \n"
+"    問題発生契機となるリビジョンの特定を補助します。 使用開始の際には、\n"
+"    問題が発生する既知のリビジョンのうち、 最古のものを bad とマークし、\n"
 "    問題が発生しない既知のリビジョンのうち、 最新のものを good とマーク\n"
 "    します。 本コマンドは、 検証対象リビジョンで作業領域を更新します(-U/\n"
 "    --noupdate 指定時除く)。 当該リビジョンを検証したなら、 bad あるいは\n"
@@ -6951,6 +6961,74 @@
 msgid "Testing changeset %d:%s (%d changesets remaining, ~%d tests)\n"
 msgstr "リビジョン %d:%s を検証中(検証残 %d、 検証済み %d)\n"
 
+msgid "track a line of development with movable markers"
+msgstr "移動可能なマーキングによる履歴進展の追跡"
+
+msgid ""
+"    Bookmarks are pointers to certain commits that move when\n"
+"    committing. Bookmarks are local. They can be renamed, copied and\n"
+"    deleted. It is possible to use bookmark names in :hg:`merge` and\n"
+"    :hg:`update` to merge and update respectively to a given bookmark."
+msgstr ""
+"    ブックマーク (bookmark) は、 コミット操作に追従して移動する、\n"
+"    リビジョン特定用の情報です。\n"
+"    ブックマークのリポジトリ間伝播は、 自動的には行われません。\n"
+"    ブックマークに対しては、 改名/複製/削除が可能です。\n"
+"    :hg:`merge` や :hg:`update` へのリビジョン指定において、\n"
+"    ブックマークを使用することが可能です。"
+
+msgid ""
+"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
+"    directory's parent revision with the given name. If you specify\n"
+"    a revision using -r REV (where REV may be an existing bookmark),\n"
+"    the bookmark is assigned to that revision."
+msgstr ""
+"    :hg:`bookmark NAME` を実行することで、 作業領域の親リビジョンに、\n"
+"    指定された名前で、 ブックマークが設定されます。\n"
+"    -r を使用して、 対象リビジョンを指定した場合\n"
+"   (対象指定自体にも、 ブックマークを使用可能)\n"
+"   そのリビジョンにブックマークが設定されます。"
+
+msgid ""
+"    Bookmarks can be pushed and pulled between repositories (see :hg:`help\n"
+"    push` and :hg:`help pull`). This requires both the local and remote\n"
+"    repositories to support bookmarks. For versions prior to 1.8, this "
+"means\n"
+"    the bookmarks extension must be enabled.\n"
+"    "
+msgstr ""
+"    ブックマークは、 リポジトリ間での取り込みや反映が可能です\n"
+"    (:hg:`help push` および :hg:`help pull` 参照)。\n"
+"    但し、 連携するリポジトリの両方が、\n"
+"    ブックマーク機能に対応している必要があります\n"
+"    1.8 版より前の Mercurial の場合、 \n"
+"    bookmarks エクステンションを有効にしなければなりません。\n"
+"    "
+
+msgid "a bookmark of this name does not exist"
+msgstr "この名前のブックマークは存在しません"
+
+msgid "a bookmark of the same name already exists"
+msgstr "同じ名前のブックマークがすでに存在します"
+
+msgid "new bookmark name required"
+msgstr "新しいブックマーク名を要求しました"
+
+msgid "bookmark name required"
+msgstr "ブックマーク名を要求しました"
+
+msgid "bookmark name cannot contain newlines"
+msgstr "ブックマーク名に改行を含めません"
+
+msgid "bookmark names cannot consist entirely of whitespace"
+msgstr "空白文字だけで構成されたタグ名は不正です"
+
+msgid "a bookmark cannot have the name of an existing branch"
+msgstr "既存ブランチと同名のブックマークは作成できません"
+
+msgid "no bookmarks set\n"
+msgstr "ブックマークは存在しません\n"
+
 msgid "set or show the current branch name"
 msgstr "ブランチ名の設定、 ないし現ブランチ名の表示"
 
@@ -6961,7 +7039,7 @@
 "    recommends that primary development take place on the 'default'\n"
 "    branch."
 msgstr ""
-"    引数無しの場合、 現ブランチ名を表示します。 引数が1つ指定された場合、 \n"
+"    引数無しの場合、 現ブランチ名を表示します。 引数が1つ指定された場合、\n"
 "    作業領域のブランチ名を設定します(次回コミット時まで、 ブランチは生成\n"
 "    されません)。 作業時に基本とするブランチには、 'default' ブランチを\n"
 "    使用することをお勧めします。"
@@ -6970,7 +7048,7 @@
 "    Unless -f/--force is specified, branch will not let you set a\n"
 "    branch name that already exists, even if it's inactive."
 msgstr ""
-"    -f/--force 指定が無い場合、 例えそれが非アクティブなものであっても、 \n"
+"    -f/--force 指定が無い場合、 例えそれが非アクティブなものであっても、\n"
 "    既存ブランチと同じ名前は設定できません。"
 
 msgid ""
@@ -7144,9 +7222,9 @@
 
 msgid ""
 "    The location of the source is added to the new repository's\n"
-"    .hg/hgrc file, as the default to be used for future pulls."
-msgstr ""
-"    将来的な 'hg pull' 実施に備えて、 複製先リポジトリの .hg/hgrc \n"
+"    ``.hg/hgrc`` file, as the default to be used for future pulls."
+msgstr ""
+"    将来的な :hg:`pull` 実施に備えて、 複製先リポジトリの ``.hg/hgrc``\n"
 "    ファイルには、 複製元リポジトリ位置が default 名義で記録されます。"
 
 msgid "    See :hg:`help urls` for valid source format details."
@@ -7154,11 +7232,12 @@
 
 msgid ""
 "    It is possible to specify an ``ssh://`` URL as the destination, but no\n"
-"    .hg/hgrc and working directory will be created on the remote side.\n"
+"    ``.hg/hgrc`` and working directory will be created on the remote side.\n"
 "    Please see :hg:`help urls` for important details about ``ssh://`` URLs."
 msgstr ""
-"    複製先として ``ssh://`` URL 形式を指定することも可能ですが、 \n"
-"    遠隔ホスト上では、 .hg/hgrc の作成も、 作業領域の更新も行われません。\n"
+"    複製先として ``ssh://`` URL 形式を指定することも可能ですが、\n"
+"    遠隔ホスト上では、 ``.hg/hgrc`` の作成も、\n"
+"    作業領域の更新も行われません。\n"
 "    ``ssh://`` URL 形式の詳細は、 :hg:`help urls` を参照してください。"
 
 msgid ""
@@ -7185,7 +7264,7 @@
 "    local source repositories."
 msgstr ""
 "    -r/--rev 指定付き(ないしは 'hg clone 複製元#リビジョン' 形式)\n"
-"    複製の場合、 同一ファイルシステム上での複製であっても、 \n"
+"    複製の場合、 同一ファイルシステム上での複製であっても、\n"
 "    暗黙的に --pull 指定を伴います。"
 
 msgid ""
@@ -7206,7 +7285,7 @@
 "    In some cases, you can clone repositories and the working directory\n"
 "    using full hardlinks with ::"
 msgstr ""
-"    リポジトリの内部管理データと作業領域中のファイル全てに対する、 \n"
+"    リポジトリの内部管理データと作業領域中のファイル全てに対する、\n"
 "    ハードリンクによる複製の作成には、 以下の方法が使えるかも知れません::"
 
 msgid "      $ cp -al REPO REPOCLONE"
@@ -7247,9 +7326,9 @@
 "    h) tip"
 msgstr ""
 "    a) -U が指定されるか、 元リポジトリ履歴が空の場合は null リビジョン\n"
-"    b) -u . が指定され、 且つ元リポジトリが同一ホストの場合、 \n"
+"    b) -u . が指定され、 且つ元リポジトリが同一ホストの場合、\n"
 "       元リポジトリの作業領域の第1親リビジョン\n"
-"    c) -u で指定されたリビジョン(ブランチ名が指定された場合、 \n"
+"    c) -u で指定されたリビジョン(ブランチ名が指定された場合、\n"
 "       当該ブランチの最新ヘッドリビジョン)\n"
 "    d) -r で指定されたリビジョン\n"
 "    e) -b で指定sれたブランチの最新ヘッドリビジョン\n"
@@ -7265,12 +7344,13 @@
 
 msgid ""
 "    Commit changes to the given files into the repository. Unlike a\n"
-"    centralized RCS, this operation is a local operation. See\n"
+"    centralized SCM, this operation is a local operation. See\n"
 "    :hg:`push` for a way to actively distribute your changes."
 msgstr ""
-"    指定されたファイルの変更内容を管理領域に記録(コミット)します。\n"
-"    RCS のような中央集権的なツールと異なり、 この操作は手元の管理領域に\n"
-"    対する記録しか行いません。 変更を能動的に公開する方法に関しては\n"
+"    指定されたファイルの変更内容を、 管理領域に記録 (コミット) します。\n"
+"    中央集権的な構成管理ツールと異なり、\n"
+"    この操作で変更が記録されるのは、 手元の管理領域に対してのみです。\n"
+"    変更を能動的に公開する方法に関しては、\n"
 "    :hg:`help push` を参照してください。"
 
 msgid ""
@@ -7294,7 +7374,7 @@
 "    ``.hg/last-message.txt``."
 msgstr ""
 "    コミットメッセージが指定されない場合、 メッセージ入力用のプログラムが\n"
-"    設定に従って起動されます。 コミット処理が失敗した場合でも、 \n"
+"    設定に従って起動されます。 コミット処理が失敗した場合でも、\n"
 "    入力したメッセージは ``.hg/last-message.txt`` に保存されます。"
 
 msgid ""
@@ -7549,9 +7629,19 @@
 msgid "parse and display a date"
 msgstr "日付の解析および表示"
 
+msgid "display the combined ignore pattern"
+msgstr ""
+
+msgid "no ignore patterns found"
+msgstr ""
+
 msgid "dump the contents of an index file"
 msgstr "インデックスファイルの内容表示"
 
+#, python-format
+msgid "unknown format %d"
+msgstr "未知のフォーマット: %d"
+
 msgid "dump an index DAG as a graphviz dot file"
 msgstr "インデックス DAG の graphviz 向け .dot ファイルを生成"
 
@@ -7602,8 +7692,8 @@
 " Internal patcher failure, please report this error to http://mercurial."
 "selenic.com/wiki/BugTracker\n"
 msgstr ""
-" 内部パッチツールが機能しません。 http://mercurial.selenic.com/wiki/"
-"BugTrackerへのエラー報告にご協力ください\n"
+"内部パッチツールが機能しません。 http://mercurial.selenic.com/wiki/"
+"BugTracker へのエラー報告にご協力ください\n"
 
 msgid "Checking commit editor...\n"
 msgstr "メッセージ入力用エディタの検証中...\n"
@@ -7661,7 +7751,7 @@
 "       parent changeset if no revisions are specified."
 msgstr ""
 "    .. note::\n"
-"       マージ実施リビジョンに対する本コマンドの差分出力が、 \n"
+"       マージ実施リビジョンに対する本コマンドの差分出力が、\n"
 "       期待と異なる場合があるのは、 対象リビジョンが無指定の場合に\n"
 "       比較対象となるのが、 作業領域の第1親に固定されているためです。"
 
@@ -7710,7 +7800,7 @@
 "       first parent only."
 msgstr ""
 "    .. note::\n"
-"       マージ実施リビジョンに対する本コマンドの差分出力が、 \n"
+"       マージ実施リビジョンに対する本コマンドの差分出力が、\n"
 "       期待と異なる場合があるのは、 比較対象が対象リビジョンの第1親に\n"
 "       固定されているためです。"
 
@@ -7785,7 +7875,7 @@
 "    entire project history, and it does not delete them from the\n"
 "    working directory."
 msgstr ""
-"    本コマンドでの登録除外は、 現ブランチにおける登録除外のみを意味し、 \n"
+"    本コマンドでの登録除外は、 現ブランチにおける登録除外のみを意味し、\n"
 "    履歴そのものは保持され続けますし、 作業領域からも削除されません。"
 
 msgid "    To undo a forget before the next commit, see :hg:`add`."
@@ -7812,11 +7902,11 @@
 "    working directory. It always prints the revision number in which a\n"
 "    match appears."
 msgstr ""
-"    本コマンドの挙動は Unix の grep とは異なります。 解釈可能な正規表現は\n"
-"    Python/Perl 形式のものだけです。 検索対象はリポジトリ内のデータのみ"
-"で、 \n"
-"    作業領域は検索対象には含まれません。 パターンに合致する内容が現れた\n"
-"    リビジョンを表示します。"
+"    本コマンドの挙動は Unix の grep とは異なります。\n"
+"    解釈可能な正規表現は Python/Perl 形式のものだけです。\n"
+"    検索対象はリポジトリ内のデータのみで、\n"
+"    作業領域は検索対象には含まれません。\n"
+"    パターンに合致する内容が現れたリビジョンを表示します。"
 
 msgid ""
 "    By default, grep only prints output for the first revision of a\n"
@@ -7854,11 +7944,12 @@
 "    for update and merge operations. Branch heads are changesets that have\n"
 "    no child changeset on the same branch."
 msgstr ""
-"    リポジトリの「ヘッド」とは、 子リビジョンを持たないリビジョンの\n"
-"    ことを指します。 改変作業の実施や、 update/merge コマンド実施の際に"
-"は、 \n"
-"    このリビジョンを対象とするのが一般的です。 「ブランチヘッド」とは、 \n"
-"    同じ名前付きブランチ内に子リビジョンを持たないリビジョンのことです。"
+"    リポジトリの「ヘッド」とは、\n"
+"    子リビジョンを持たないリビジョンのことです。\n"
+"    改変作業の実施や、 update/merge コマンド実施の際には、\n"
+"    このリビジョンを対象とするのが一般的です。\n"
+"    「ブランチヘッド」とは、 同じ名前付きブランチ内に、\n"
+"    子リビジョンを持たないリビジョンのことです。"
 
 msgid ""
 "    If one or more REVs are given, only branch heads on the branches\n"
@@ -7886,7 +7977,7 @@
 "only\n"
 "    changesets without children will be shown."
 msgstr ""
-"    -t/--topo 指定時には、 名前付きブランチに関する判定は無視され、 \n"
+"    -t/--topo 指定時には、 名前付きブランチに関する判定は無視され、\n"
 "    単に子リビジョンを持たないリビジョンが表示されます。"
 
 msgid ""
@@ -7935,8 +8026,8 @@
 "全コマンドの一覧は \"hg help\" で、 コマンド詳細は \"hg -v\" で表示されます"
 
 #, python-format
-msgid "use \"hg -v help%s\" to show aliases and global options"
-msgstr "別名およびグローバルオプションは \"hg -v help%s\" で表示されます"
+msgid "use \"hg -v help%s\" to show builtin aliases and global options"
+msgstr "組み込み別名およびグローバルオプションの表示は \"hg -v help%s\""
 
 #, python-format
 msgid "use \"hg -v help %s\" to show global options"
@@ -8056,6 +8147,9 @@
 "    一覧、 default 以外のブランチの場合にはブランチ名が、 ハッシュ値の後に\n"
 "    続きます。"
 
+msgid "can't query remote revision number, branch, tags, or bookmarks"
+msgstr "リビジョン番号/ブランチ/タグ/ブックマークは遠隔問い合わせできません"
+
 msgid "import an ordered set of patches"
 msgstr "パッチの順次取り込み"
 
@@ -8082,7 +8176,7 @@
 "    message."
 msgstr ""
 "    電子メールから直接パッチを取り込むことも可能です。 添付ファイル\n"
-"    形式のパッチであっても取り込み可能です(但し、 text/plain ないし \n"
+"    形式のパッチであっても取り込み可能です(但し、 text/plain ないし\n"
 "    text/x-patch 型でなければなりません)。 作成者およびコミットログが無い\n"
 "    場合、 電子メールの From および Subject ヘッダ値が使用されます。\n"
 "    最初のパッチデータに先立つ text/plain ボディは、 コミットログに追記\n"
@@ -8108,7 +8202,7 @@
 msgstr ""
 "    --exact が指定された場合、 作業領域をパッチの親リビジョンに更新して\n"
 "    からパッチを適用しますが、 作成されたリビジョンのハッシュ値が、 パッチ\n"
-"    に記録された値と異なる場合、 取り込みは実施されません。 この現象は、 \n"
+"    に記録された値と異なる場合、 取り込みは実施されません。 この現象は、\n"
 "    利用する文字符号化の問題や、 パッチのテキスト部分の不足などが原因で\n"
 "    発生する可能性があります。"
 
@@ -8116,7 +8210,7 @@
 "    With -s/--similarity, hg will attempt to discover renames and\n"
 "    copies in the patch in the same way as 'addremove'."
 msgstr ""
-"    -s/--similarity が指定された場合、 'hg addremove' と同様な方針で、 \n"
+"    -s/--similarity が指定された場合、 'hg addremove' と同様な方針で、\n"
 "    パッチによる変更結果から、 改名や複製を検出します。"
 
 msgid ""
@@ -8179,6 +8273,9 @@
 msgid "cannot combine --bundle and --subrepos"
 msgstr "--bundle と --subrepos は組み合わせられません"
 
+msgid "remote doesn't support bookmarks\n"
+msgstr "連携先リポジトリはブックマークが未サポートです\n"
+
 msgid "create a new repository in the given directory"
 msgstr "指定されたディレクトリでの新規リポジトリの作成"
 
@@ -8289,9 +8386,9 @@
 "       will appear in files:."
 msgstr ""
 "    .. note::\n"
-"       マージ実施リビジョンに対する -p/--patch 指定による差分出力が、 \n"
+"       マージ実施リビジョンに対する -p/--patch 指定による差分出力が、\n"
 "       期待と異なる場合があるのは、 比較対象が対象リビジョンの第1親に\n"
-"       固定されているためです。 ファイル一覧が予期せぬ内容となるのは、 \n"
+"       固定されているためです。 ファイル一覧が予期せぬ内容となるのは、\n"
 "       親同士で内容が異なるファイルのみが列挙されるためです。"
 
 msgid "output the current or given revision of the project manifest"
@@ -8303,14 +8400,14 @@
 "    is used, or the null revision if no revision is checked out."
 msgstr ""
 "    指定リビジョンにおける構成管理対象ファイルの一覧を表示します。\n"
-"    リビジョン指定が無い場合、 作業領域の(第1)親リビジョンか、 \n"
+"    リビジョン指定が無い場合、 作業領域の(第1)親リビジョンか、\n"
 "    作業領域の更新前なら null が使用されます。"
 
 msgid ""
 "    With -v, print file permissions, symlink and executable bits.\n"
 "    With --debug, print file revision hashes."
 msgstr ""
-"    -v が指定された場合、 ファイルアクセス権やシンボリックリンク、 \n"
+"    -v が指定された場合、 ファイルアクセス権やシンボリックリンク、\n"
 "    実行可能ビットといったものも表示されます。\n"
 "    --debug が指定された場合、 各ファイルのリビジョンのハッシュ値が\n"
 "    表示されます。"
@@ -8333,7 +8430,7 @@
 msgstr ""
 "    両方の親リビジョンに対して差分のあるファイルは、 次回コミットの際には\n"
 "    変更されたものとして記録されますので、 必要以上の変更が実施される前に\n"
-"    コミットを実施してください。 このコミット時に生成されるリビジョンは、 \n"
+"    コミットを実施してください。 このコミット時に生成されるリビジョンは、\n"
 "    親リビジョンを2つ持つリビジョンとなります。"
 
 msgid ""
@@ -8351,7 +8448,7 @@
 "    head, the other head is merged with by default. Otherwise, an\n"
 "    explicit revision with which to merge with must be provided."
 msgstr ""
-"    マージ対象リビジョンの指定が無く、 作業領域の親リビジョンがヘッドで、 \n"
+"    マージ対象リビジョンの指定が無く、 作業領域の親リビジョンがヘッドで、\n"
 "    且つ現行ブランチがもう1つだけヘッドを持つ場合、 そのヘッドがマージ\n"
 "    対象となります。 それ以外の場合は、 明示的なリビジョン指定が必要です。"
 
@@ -8364,7 +8461,7 @@
 "    all changes."
 msgstr ""
 "    コミット前にマージ処理を取り消す場合は、 :hg:`update --clean .`\n"
-"    が使用できますが、 マージ前の親リビジョンの内容で上書きするため、 \n"
+"    が使用できますが、 マージ前の親リビジョンの内容で上書きするため、\n"
 "    作業領域中の全ての変更内容が失われます。"
 
 msgid ""
@@ -8481,13 +8578,13 @@
 "    :hg:`bundle`) operations."
 msgstr ""
 "    ``default`` および ``default-push`` は特別な意味を持ちます。\n"
-"    push/pull の際にコマンド行で連携先リポジトリが指定されない場合、 \n"
-"    これらのパスが使用されます。 ``default-push`` が設定されている場合、 \n"
+"    push/pull の際にコマンド行で連携先リポジトリが指定されない場合、\n"
+"    これらのパスが使用されます。 ``default-push`` が設定されている場合、\n"
 "    ``default-push`` は :hg:`push` で使用され、 ``default`` は\n"
-"    :hg:`pull` で使用されます。 ``default-push`` が未設定であれば、 \n"
-"    push/pull 共に ``default`` を使用します。 リポジトリの複製では、 \n"
+"    :hg:`pull` で使用されます。 ``default-push`` が未設定であれば、\n"
+"    push/pull 共に ``default`` を使用します。 リポジトリの複製では、\n"
 "    複製元リポジトリが ``default`` として ``.hg/hgrc`` に記録されます。\n"
-"    ``default`` および ``default-push`` は全ての取り込み (例: \n"
+"    ``default`` および ``default-push`` は全ての取り込み (例:\n"
 "    :hg:`incoming`) および反映 (例: :hg:`outgoing`、 :hg:`email` および\n"
 "    :hg:`bundle`) 操作において適用されます。"
 
@@ -8529,7 +8626,7 @@
 "    to add those changes to the repository, you should use :hg:`pull\n"
 "    -r X` where ``X`` is the last changeset listed by :hg:`incoming`."
 msgstr ""
-"    :hg:`incoming` を使用することで、 実際の取り込みをせずに、 \n"
+"    :hg:`incoming` を使用することで、 実際の取り込みをせずに、\n"
 "    :hg:`pull` による取り込み対象を確認することができます。 表示された\n"
 "    内容の取り込みを決断したならば、 :hg:`incoming` 実行で表示された\n"
 "    最後のリビジョンを ``-r`` の引数にして :hg:`pull -r X` を実行します。"
@@ -8549,11 +8646,19 @@
 "    1 です。\n"
 "    "
 
+#, python-format
+msgid "remote bookmark %s not found!"
+msgstr "連携先にはブックマーク %s がありません!"
+
 msgid ""
 "other repository doesn't support revision lookup, so a rev cannot be "
 "specified."
 msgstr "連携先でリビジョンが特定出来ないため、 リビジョンは指定できません"
 
+#, python-format
+msgid "importing bookmark %s\n"
+msgstr "ブックマーク %s の取り込み中\n"
+
 msgid "push changes to the specified destination"
 msgstr "指定リポジトリへの変更履歴の反映"
 
@@ -8566,7 +8671,7 @@
 "    This operation is symmetrical to pull: it is identical to a pull\n"
 "    in the destination repository from the current one."
 msgstr ""
-"    これは :hg:`pull` と対称的な操作です:連携先リポジトリにおいて、 \n"
+"    これは :hg:`pull` と対称的な操作です:連携先リポジトリにおいて、\n"
 "    現リポジトリに対する :hg:`pull` を行った場合と同一の効果を持ちます。"
 
 msgid ""
@@ -8621,6 +8726,22 @@
 msgid "pushing to %s\n"
 msgstr "%s への反映中\n"
 
+#, python-format
+msgid "exporting bookmark %s\n"
+msgstr "ブックマーク %s の反映中\n"
+
+#, python-format
+msgid "deleting remote bookmark %s\n"
+msgstr "連携先のブックマーク %s の削除中\n"
+
+#, python-format
+msgid "bookmark %s does not exist on the local or remote repository!\n"
+msgstr "ブックマーク %s はいずれのリポジトリにも存在しません!\n"
+
+#, python-format
+msgid "updating bookmark %s failed!\n"
+msgstr "ブックマーク %s の更新に失敗!\n"
+
 msgid "roll back an interrupted transaction"
 msgstr "中断されたトランザクションの取り消し"
 
@@ -8667,9 +8788,9 @@
 "    reported by :hg:`status`). The actions are Warn, Remove (from\n"
 "    branch) and Delete (from disk)::"
 msgstr ""
-"    ファイルの状態(横)とオプション指定(縦)の組み合わせにおける挙動は、 \n"
+"    ファイルの状態(横)とオプション指定(縦)の組み合わせにおける挙動は、\n"
 "    以下の一覧を参照してください。 ファイルの状態は、 :hg:`status` の表示\n"
-"    に倣い、 追加(Added)[A]、 改変無し(Clean)[C]、 改変有り(Modified)[M] \n"
+"    に倣い、 追加(Added)[A]、 改変無し(Clean)[C]、 改変有り(Modified)[M]\n"
 "    および不在(Missing)[!] で表します。\n"
 "    挙動は、 警告(Warn)[W]、 構成管理からの登録除外(Remove)[R] および\n"
 "    作業領域からの削除(Delete)[D] で表します::"
@@ -8796,7 +8917,7 @@
 "      In the printed list, ``U`` = unresolved and ``R`` = resolved."
 msgstr ""
 "    - :hg:`resolve -l`: 衝突が検出されたファイルの解消状況を表示します。\n"
-"      一覧表示において `U`` は未解消(Unresolved)を、 \n"
+"      一覧表示において `U`` は未解消(Unresolved)を、\n"
 "      ``R`` は解消済み(Resolved)を意味します。"
 
 msgid ""
@@ -8805,7 +8926,7 @@
 "    commit after a conflicting merge."
 msgstr ""
 "    衝突未解消のファイルがある間はコミットできません。\n"
-"    マージにおける衝突解消の際には、 コミット前に \n"
+"    マージにおける衝突解消の際には、 コミット前に\n"
 "    :hg:`resolve -m ...` を実施してください。"
 
 msgid ""
@@ -8840,7 +8961,7 @@
 "       本コマンドは、 あなたの期待するものと違う可能性が高いです。\n"
 "       本コマンドは、 作業領域の親リビジョンはそのままで、 作業領域の\n"
 "       一部を上書きします。\n"
-"       作業領域の親リビジョンを変更する場合は :hg:`update -r rev` を、 \n"
+"       作業領域の親リビジョンを変更する場合は :hg:`update -r rev` を、\n"
 "       他のリビジョンとのマージを取り消す場合は\n"
 "       :hg:`update --clean .` を使用してください。"
 
@@ -8855,7 +8976,7 @@
 "    リビジョン指定が無い場合、 指定されたファイル/ディレクトリを作業\n"
 "    領域の親リビジョン時点の内容へと復旧します。 本コマンドは対象\n"
 "    ファイルに対して、 状態を「改変無し」とし、 add/remove/copy/rename\n"
-"    実行の効果を打ち消します。 作業領域の親リビジョンが2つある場合は、 \n"
+"    実行の効果を打ち消します。 作業領域の親リビジョンが2つある場合は、\n"
 "    どちらの内容で復旧するのかを明示的に指定する必要があります。"
 
 msgid ""
@@ -8864,7 +8985,7 @@
 "    to \"roll back\" some or all of an earlier change. See :hg:`help\n"
 "    dates` for a list of formats valid for -d/--date."
 msgstr ""
-"    -r/--rev が指定された場合、 指定されたファイル/ディレクトリを、 \n"
+"    -r/--rev が指定された場合、 指定されたファイル/ディレクトリを、\n"
 "    指定されたリビジョン時点の内容へと復旧します。 以前の変更内容の一部\n"
 "    ないし全部を取り消す用途にも使用できます。 -d/--date での日時表記は\n"
 "    :hg:`help dates` を参照してください。"
@@ -8906,6 +9027,9 @@
 msgid "you can't specify a revision and a date"
 msgstr "リビジョンと日時は同時には指定出来ません"
 
+msgid "uncommitted merge - use \"hg update\", see \"hg help revert\""
+msgstr "マージが未コミットです(\"hg update\" 実施又は \"hg help revert\" 参照)"
+
 msgid "no files or directories specified; use --all to revert the whole repo"
 msgstr "復旧には、 ファイル/ディレクトリか、 --all を指定してください"
 
@@ -8956,7 +9080,7 @@
 msgstr ""
 "    トランザクションとは、 新規リビジョンの作成、 ないし外部からの既存\n"
 "    リビジョンの取り込みにおけるコマンドの改変操作を一括化するものです。\n"
-"    例えば、 以下のコマンドはいずれもトランザクションを形成するもので、 \n"
+"    例えば、 以下のコマンドはいずれもトランザクションを形成するもので、\n"
 "    その効果は本コマンドにより巻き戻し可能です:"
 
 msgid ""
@@ -9005,14 +9129,14 @@
 
 msgid ""
 "    Start a local HTTP repository browser and pull server. You can use\n"
-"    this for ad-hoc sharing and browing of repositories. It is\n"
+"    this for ad-hoc sharing and browsing of repositories. It is\n"
 "    recommended to use a real web server to serve a repository for\n"
 "    longer periods of time."
 msgstr ""
 "    リポジトリ参照と :hg:`pull` のための HTTP サーバを起動します。\n"
-"    この HTTP サーバを用いることで、 即席でリポジトリの共有/参照を\n"
-"    行うことができます。 リポジトリを長期間公開する際には、 通常のウェブ\n"
-"    サーバの使用をお勧めします。"
+"    この HTTP サーバを用いることで、 リポジトリの共有/参照を、\n"
+"    即席で行うことができます。 リポジトリを長期間公開する際には、\n"
+"    通常のウェブサーバの使用をお勧めします。"
 
 msgid ""
 "    Please note that the server does not implement access control.\n"
@@ -9033,7 +9157,7 @@
 "    files."
 msgstr ""
 "    特に指定が無い場合、 サーバはアクセスログを標準出力に、 エラーを\n"
-"    標準エラー出力に表示します。 ログをファイルに記録する場合は、 \n"
+"    標準エラー出力に表示します。 ログをファイルに記録する場合は、\n"
 "    -A/--accesslog や -E/--errorlog で指定します。"
 
 msgid ""
@@ -9062,12 +9186,12 @@
 "    Unless options described with \"show only ...\" are given, the\n"
 "    options -mardu are used."
 msgstr ""
-"    作業領域のファイル状態を表示します。 名前(パターン)指定のある場合、 \n"
-"    その名前に合致するファイルのみが表示されます。 変更無し(clean)、 \n"
-"    無視(ignored)ないし複製(copy)・改名(rename)の元ファイルに関しては、 \n"
-"    それぞれ -c/--clean、 -i/--ignored ないし -C/--copy が指定されるか、 \n"
+"    作業領域のファイル状態を表示します。 名前(パターン)指定のある場合、\n"
+"    その名前に合致するファイルのみが表示されます。 変更無し(clean)、\n"
+"    無視(ignored)ないし複製(copy)・改名(rename)の元ファイルに関しては、\n"
+"    それぞれ -c/--clean、 -i/--ignored ないし -C/--copy が指定されるか、\n"
 "    あるいは -A/--all が指定されない限り表示されません。\n"
-"    いずれの表示対象選択オプションも指定されない場合、 \n"
+"    いずれの表示対象選択オプションも指定されない場合、\n"
 "    -m -a -r -d -u が指定されたものとみなします。"
 
 msgid ""
@@ -9087,7 +9211,7 @@
 "    .. note::\n"
 "       権限設定の変更やマージが行われた場合、 差分表示から期待される\n"
 "       結果とは異なる状態が表示される可能性があります。\n"
-"       標準的な差分形式は権限変更の情報を含みませんし、 \n"
+"       標準的な差分形式は権限変更の情報を含みませんし、\n"
 "       マージ実施リビジョンに対しては、 一方の親リビジョンとの差分\n"
 "       しか表示しないためです。"
 
@@ -9193,7 +9317,7 @@
 
 #, python-format
 msgid "%d subrepos"
-msgstr "サブリポジトリ数   %d"
+msgstr "副リポジトリ数     %d"
 
 msgid " (merge)"
 msgstr " (マージ)"
@@ -9226,11 +9350,19 @@
 msgstr "update 候補     : %d の新規リビジョン、 %d のブランチヘッド(マージ)\n"
 
 msgid "1 or more incoming"
-msgstr "1つ以上のリビジョンの取り込み"
+msgstr "取り込み対象リビジョン(incoming)あり"
 
 #, python-format
 msgid "%d outgoing"
-msgstr "%d 個のリビジョンの反映"
+msgstr "%d 個の反映候補リビジョン(outgoing)"
+
+#, python-format
+msgid "%d incoming bookmarks"
+msgstr "%d 個の取り込み候補ブックマーク(incoming)"
+
+#, python-format
+msgid "%d outgoing bookmarks"
+msgstr "%d 個の更新候補ブックマーク(outgoing)"
 
 #, python-format
 msgid "remote: %s\n"
@@ -9248,38 +9380,54 @@
 msgid ""
 "    Tags are used to name particular revisions of the repository and are\n"
 "    very useful to compare different revisions, to go back to significant\n"
-"    earlier versions or to mark branch points as releases, etc."
-msgstr ""
-"    リポジトリ中の特定のリビジョンに付けられた名前であるタグは、 リビジョン\n"
-"    間での比較や、 重要なリビジョンの参照、 又はリリースの際の分岐点に対す"
-"る\n"
-"    目印といった用途などに使用することが出来ます。"
+"    earlier versions or to mark branch points as releases, etc. Changing\n"
+"    an existing tag is normally disallowed; use -f/--force to override."
+msgstr ""
+"    タグの用途は、 リポジトリ中の特定リビジョンへの名前付けであり、\n"
+"    リビジョン間での比較や、 重要なリビジョンの参照、\n"
+"    リリース時の分岐点に対する目印、 などの用途に使用出来ます。\n"
+"    既存タグの改変は、 通常では出来ません。 -f/--force の指定が必要です"
 
 msgid ""
 "    If no revision is given, the parent of the working directory is\n"
 "    used, or tip if no revision is checked out."
 msgstr ""
-"    リビジョンが指定されない場合、 作業領域の親リビジョンか、 作業領域更新"
-"前\n"
-"    なら tip がタグ付けの対象となります。"
+"    対象リビジョンが指定されない場合、 作業領域の親リビジョンが\n"
+"    (作業領域更新前なら tip が) タグ付けの対象となります。"
 
 msgid ""
 "    To facilitate version control, distribution, and merging of tags,\n"
-"    they are stored as a file named \".hgtags\" which is managed\n"
-"    similarly to other project files and can be hand-edited if\n"
-"    necessary. The file '.hg/localtags' is used for local tags (not\n"
-"    shared among repositories)."
-msgstr ""
-"    分散構成管理におけるタグ付けの集約を容易にするために、 構成管理下にある\n"
-"    他のファイルと同様に、 タグの情報は \".hgtags\" ファイルで管理され、 \n"
-"    必要であれば手動での編集も可能です。 ローカルタグは '.hg/localtags' で\n"
-"    管理されます(リポジトリ間で共有されることはありません)"
+"    they are stored as a file named \".hgtags\" which is managed similarly\n"
+"    to other project files and can be hand-edited if necessary. This\n"
+"    also means that tagging creates a new commit. The file\n"
+"    \".hg/localtags\" is used for local tags (not shared among\n"
+"    repositories)."
+msgstr ""
+"    分散構成管理におけるタグ付けの集約を容易にするために、\n"
+"    構成管理下にある他のファイルと同様に、\n"
+"    タグの情報は \".hgtags\" ファイルで管理され、\n"
+"    必要であれば手動での編集も可能です。\n"
+"    これは、 タグ付け操作が、 コミット処理を伴うことを意味します。\n"
+"    ローカルタグは '.hg/localtags' で管理されます\n"
+"    (リポジトリ間で共有されることはありません)"
+
+msgid ""
+"    Tag commits are usually made at the head of a branch. If the parent\n"
+"    of the working directory is not a branch head, :hg:`tag` aborts; use\n"
+"    -f/--force to force the tag commit to be based on a non-head\n"
+"    changeset."
+msgstr ""
+"    タグ付け操作は、 ブランチのヘッドにおいて実施されるのが一般的です。\n"
+"    作業領域の親リビジョンが、 ブランチのヘッドでは無い場合、\n"
+"    :hg:`tag` 実行は中断されます。\n"
+"    ヘッド以外のリビジョンにおいて、 タグ付けを実施する場合は、\n"
+"    -f/--force を指定してください。"
 
 msgid ""
 "    Since tag names have priority over branch names during revision\n"
 "    lookup, using an existing branch name as a tag name is discouraged."
 msgstr ""
-"    リビジョン特定において、 タグ名はブランチ名よりも優先度が高いので、 \n"
+"    リビジョン特定において、 タグ名はブランチ名よりも優先度が高いので、\n"
 "    既存ブランチと同名のタグの使用は止めましょう。"
 
 msgid "tag names must be unique"
@@ -9307,6 +9455,12 @@
 msgid "tag '%s' already exists (use -f to force)"
 msgstr "タグ '%s' は存在します(強制実行する場合は -f を指定してください)"
 
+msgid "uncommitted merge"
+msgstr "マージが未コミットです"
+
+msgid "not at a branch head (use -f to force)"
+msgstr "親リビジョンがブランチのヘッドではありません(強制実行は -f 指定)"
+
 msgid "list repository tags"
 msgstr "リポジトリ中のタグ一覧の表示"
 
@@ -9375,8 +9529,8 @@
 "    found, the working directory is updated to the specified\n"
 "    changeset."
 msgstr ""
-"    指定リビジョンが、 作業領域の親リビジョンの直系の子孫でない場合、 \n"
-"    作業領域の更新は中断されます。 -c/--check が指定された場合、 \n"
+"    指定リビジョンが、 作業領域の親リビジョンの直系の子孫でない場合、\n"
+"    作業領域の更新は中断されます。 -c/--check が指定された場合、\n"
 "    作業領域中の未コミット変更の有無を確認し、 変更が無かった場合には\n"
 "    作業領域を指定リビジョンで更新します。"
 
@@ -9396,8 +9550,8 @@
 "       are preserved."
 msgstr ""
 "    1. -c/--check と -C/--clean のいずれも指定されず、 指定リビジョンが\n"
-"       作業領域の親リビジョンにとって直系の先祖ないし子孫であった場合、 \n"
-"       未コミット変更の内容は指定リビジョンへとマージされ、 \n"
+"       作業領域の親リビジョンにとって直系の先祖ないし子孫であった場合、\n"
+"       未コミット変更の内容は指定リビジョンへとマージされ、\n"
 "       マージ結果は未コミットのまま作業領域に残ります。\n"
 "       別の(名前無し)ブランチ上にあるリビジョンなど、 直系の先祖/子孫\n"
 "       以外が指定された場合、 更新は中断され、 未コミット変更は残ります。"
@@ -9413,7 +9567,7 @@
 "    3. With the -C/--clean option, uncommitted changes are discarded and\n"
 "       the working directory is updated to the requested changeset."
 msgstr ""
-"    3. -C/--clean が指定された場合、 未コミット変更は破棄され、 \n"
+"    3. -C/--clean が指定された場合、 未コミット変更は破棄され、\n"
 "       作業領域は指定のリビジョンで更新されます。"
 
 msgid ""
@@ -9427,7 +9581,7 @@
 "    If you want to update just one file to an older changeset, use\n"
 "    :hg:`revert`."
 msgstr ""
-"    特定のファイルだけを以前の状態に戻す場合は :hg:`revert` \n"
+"    特定のファイルだけを以前の状態に戻す場合は :hg:`revert`\n"
 "    を使用してください。"
 
 msgid "cannot specify both -c/--check and -C/--clean"
@@ -9464,11 +9618,11 @@
 msgstr "(詳細は http://mercurial.selenic.com を参照のこと)"
 
 msgid ""
-"Copyright (C) 2005-2010 Matt Mackall and others\n"
+"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 ""
-"Copyright (C) 2005-2010 Matt Mackall 他\n"
+"Copyright (C) 2005-2011 Matt Mackall 他\n"
 "本製品はフリーソフトウェアです。\n"
 "頒布条件に関しては同梱されるライセンス条項をお読みください。\n"
 "市場適合性や特定用途への可否を含め、 本製品は無保証です。\n"
@@ -9516,7 +9670,7 @@
 msgstr "文字エンコーディングのモード設定"
 
 msgid "always print a traceback on exception"
-msgstr "例外浮揚の際に常にトレースバックを表示"
+msgstr "例外発生の際に常にトレースバックを表示"
 
 msgid "time how long the command takes"
 msgstr "コマンド実行の所要時間を計測"
@@ -9539,6 +9693,9 @@
 msgid "specify hg command to run on the remote side"
 msgstr "遠隔ホスト側で実行される hg コマンド"
 
+msgid "do not verify server certificate (ignoring web.cacerts config)"
+msgstr "サーバ証明書の検証省略(web.cacerts 設定の無視)"
+
 msgid "PATTERN"
 msgstr "パターン"
 
@@ -9695,6 +9852,18 @@
 msgid "[-gbsr] [-U] [-c CMD] [REV]"
 msgstr "[-gbsr] [-U] [-c CMD] [REV]"
 
+msgid "force"
+msgstr "強制実施"
+
+msgid "delete a given bookmark"
+msgstr "指定ブックマークの削除"
+
+msgid "rename a given bookmark"
+msgstr "指定ブックマークの改名"
+
+msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
+msgstr "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
+
 msgid "set branch name even if it shadows an existing branch"
 msgstr "同名既存ブランチが存在する場合でもブランチ作成を実施"
 
@@ -9830,6 +9999,9 @@
 msgid "[PATH]"
 msgstr "[PATH]"
 
+msgid "revlog format"
+msgstr ""
+
 msgid "REPO NAMESPACE [KEY OLD NEW]"
 msgstr "REPO NAMESPACE [KEY OLD NEW]"
 
@@ -9929,8 +10101,11 @@
 msgid "show tags"
 msgstr "タグを表示"
 
-msgid "[-nibt] [-r REV] [SOURCE]"
-msgstr "[-nibt] [-r REV] [SOURCE]"
+msgid "show bookmarks"
+msgstr "ブックマークの表示"
+
+msgid "[-nibtB] [-r REV] [SOURCE]"
+msgstr "[-nibtB] [-r REV] [SOURCE]"
 
 msgid ""
 "directory strip option for patch. This has the same meaning as the "
@@ -9970,6 +10145,9 @@
 msgid "a remote changeset intended to be added"
 msgstr "取り込み対象リビジョン"
 
+msgid "compare bookmarks"
+msgstr "ブックマークの比較"
+
 msgid "a specific branch you would like to pull"
 msgstr "取り込み対象ブランチ"
 
@@ -10066,12 +10244,21 @@
 msgid "run even when remote repository is unrelated"
 msgstr "連携先が無関係なリポジトリでも実行"
 
+msgid "BOOKMARK"
+msgstr "ブックマーク"
+
+msgid "bookmark to pull"
+msgstr "取り込み対象ブックマーク"
+
 msgid "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]"
 msgstr "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]"
 
 msgid "force push"
 msgstr "反映先にヘッドが増える場合でも実施"
 
+msgid "bookmark to push"
+msgstr "反映対象ブックマーク"
+
 msgid "allow pushing a new branch"
 msgstr "新規ブランチの反映を許可"
 
@@ -10207,8 +10394,8 @@
 msgid "list the changed files of a revision"
 msgstr "指定リビジョンにおける更新ファイルの一覧"
 
-msgid "replace existing tag"
-msgstr "既存のタグを置き換え"
+msgid "force tag"
+msgstr "タグ付けの強制実施"
 
 msgid "make the tag local"
 msgstr "ローカルタグとして作成"
@@ -10394,7 +10581,7 @@
 msgstr "pull と merge を実施するか、 push -f で強制実行してください"
 
 msgid "did you forget to merge? use push -f to force"
-msgstr "マージは済んでいますか? push -f で強制実行できます"
+msgstr "マージは済んでいますか? push -f で強制実行できます"
 
 msgid "note: unsynced remote changes!\n"
 msgstr "注意: 連携先での変更点が取り込まれていません!\n"
@@ -10469,10 +10656,10 @@
 msgstr "hg: 未知のコマンド '%s'\n"
 
 msgid "(did you forget to compile extensions?)\n"
-msgstr "(エクステンションのコンパイルを忘れていませんか?)\n"
+msgstr "(エクステンションのコンパイルを忘れていませんか?)\n"
 
 msgid "(is your Python install correct?)\n"
-msgstr "(Python は正しくインストールされていますか?)\n"
+msgstr "(Python は正しくインストールされていますか?)\n"
 
 #, python-format
 msgid "abort: error: %s\n"
@@ -10495,7 +10682,7 @@
 msgstr "中断: メモリ不足\n"
 
 msgid "** unknown exception encountered, please report by visiting\n"
-msgstr "** 予期せぬ例外が浮揚されました。\n"
+msgstr "** 予期せぬ例外が発生しました\n"
 
 msgid "**  http://mercurial.selenic.com/wiki/BugTracker\n"
 msgstr ""
@@ -10520,6 +10707,11 @@
 
 #, python-format
 msgid ""
+"No argument found for substitution of %i variable in alias '%s' definition."
+msgstr "%i 変数の置換に対応する引数がありません(別名 '%s' 定義)"
+
+#, python-format
+msgid ""
 "error in definition for alias '%s': %s may only be given on the command "
 "line\n"
 msgstr "別名定義 '%s' のエラー: %s はコマンド行での直接指定限定です\n"
@@ -10578,7 +10770,7 @@
 "misc/lsprof/"
 msgstr ""
 "lsprof が利用できません - http://codespeak.net/svn/user/arigo/hack/misc/"
-"lsprof/からインストールしてください"
+"lsprof/ からインストールしてください"
 
 #, python-format
 msgid "*** failed to import extension %s from %s: %s\n"
@@ -10589,6 +10781,10 @@
 msgstr "*** %s のインポートに失敗: %s\n"
 
 #, python-format
+msgid "warning: error finding commands in %s\n"
+msgstr "警告: ファイル %s でのコマンド解析中にエラー発生\n"
+
+#, python-format
 msgid "couldn't find merge tool %s\n"
 msgstr "マージツール %s が見つかりません\n"
 
@@ -10610,7 +10806,7 @@
 "keep (l)ocal or take (o)ther?"
 msgstr ""
 " %s のマージに適切なツールが見つかりません\n"
-"どうしますか? 作業領域の内容:(l)ocal、 マージ対象の内容:(o)ther"
+"どちらの内容を採用しますか? 作業領域:(l)ocal マージ対象:(o)ther"
 
 msgid "&Local"
 msgstr "&Local"
@@ -10632,7 +10828,7 @@
 
 #, python-format
 msgid "was merge of '%s' successful (yn)?"
-msgstr "'%s' のマージは成功しましたか?(y/n) "
+msgstr "'%s' のマージは成功しましたか? (y/n) "
 
 #, python-format
 msgid ""
@@ -10640,7 +10836,7 @@
 "was merge successful (yn)?"
 msgstr ""
 " マージ結果ファイル %s は未変更に見えます\n"
-"マージ成功とみなしますか? (yn)"
+"マージ成功とみなしますか? (y/n)"
 
 #, python-format
 msgid "merging %s failed!\n"
@@ -10733,9 +10929,8 @@
 "- ``%USERPROFILE%\\mercurial.ini``\n"
 "- ``%HOME%\\.hgrc``\n"
 "- ``%HOME%\\mercurial.ini``\n"
-"- ``C:\\mercurial\\mercurial.ini`` (regkey、 hgrc.d\\、 mercurial.ini 不在"
-"時\n"
-"- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (hgrc.d\\ 、 mercurial.ini 不在"
+"- ``C:\\mercurial\\mercurial.ini`` (regkey, hgrc.d\\, mercurial.ini 不在時)\n"
+"- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (hgrc.d\\, mercurial.ini 不在"
 "時)\n"
 "- ``<インストール先>\\hgrc.d\\*.rc`` (mercurial.ini 不在時)\n"
 "- ``<インストール先>\\mercurial.ini``"
@@ -10762,7 +10957,7 @@
 "If there is a per-repository configuration file which is not owned by\n"
 "the active user, Mercurial will warn you that the file is skipped::"
 msgstr ""
-"実行ユーザ以外が所有となっているリポジトリ毎設定ファイルがある場合、 \n"
+"実行ユーザ以外が所有となっているリポジトリ毎設定ファイルがある場合、\n"
 "Mercurial は当該ファイルを読み込まない旨の警告を表示します::"
 
 msgid ""
@@ -10811,7 +11006,7 @@
 "description of the possible configuration values:"
 msgstr ""
 "上記記述はそれぞれ、 ``ui.username`` および ``ui.verbose`` として\n"
-"参照されます。 設定ファイルで指定可能な値の詳細に関しては、 \n"
+"参照されます。 設定ファイルで指定可能な値の詳細に関しては、\n"
 "hgrc のマニュアルページを参照してください:"
 
 msgid ""
@@ -10926,7 +11121,7 @@
 msgstr ""
 "Mercurial は、 別の構成管理ツールである git に由来する拡張差分形式にも\n"
 "対応しており、 この形式は従来の差分形式の持つ制限を解消しています。\n"
-"但し、 普及しているツールの幾つかが git 差分形式に対応していないため、 \n"
+"但し、 普及しているツールの幾つかが git 差分形式に対応していないため、\n"
 "Mercurial は指定が無い場合はこの形式では出力しません。"
 
 msgid ""
@@ -10938,9 +11133,9 @@
 "pull) are not affected by this, because they use an internal binary\n"
 "format for communicating changes."
 msgstr ""
-"つまり、 Mercurial が(:hg:`export` 等で)生成した標準の差分形式は、 \n"
-"他のリポジトリに対して適用した場合、 上述した情報の欠落があることから、 \n"
-"ファイルの複製・改名をはじめとする上記の制限に類する操作に関しては、 \n"
+"つまり、 Mercurial が(:hg:`export` 等で)生成した標準の差分形式は、\n"
+"他のリポジトリに対して適用した場合、 上述した情報の欠落があることから、\n"
+"ファイルの複製・改名をはじめとする上記の制限に類する操作に関しては、\n"
 "十分注意する必要があります。 :hg:`push` や :hg:`pull` のような\n"
 "Mercurial の内部形式で実施される操作に関しては、 バイナリ形式で変更\n"
 "情報の授受を行うことから、 情報の欠落に関しては心配する必要はありません。"
@@ -10953,7 +11148,7 @@
 msgstr ""
 "Mercurial から git 拡張差分形式の出力を得るには、 受理可能なコマンドに\n"
 "対して --git を指定するか、 設定ファイルの [diff] セクションに\n"
-"'git = True' 記述を追加してください。 :hg:`import` や \n"
+"'git = True' 記述を追加してください。 :hg:`import` や\n"
 "mq エクステンションを使用する場合は、 この指定は不要です。\n"
 
 msgid ""
@@ -10965,11 +11160,12 @@
 "    Windows) is searched."
 msgstr ""
 "HG\n"
-"    'hg' コマンドへのパス。 フック/エクステンションないし外部ツールの起動"
-"の\n"
-"    際に自動的に設定されます。 未設定や空の場合は、 frozen 形式の\n"
-"    hg 実行可能ファイルの名前か設定されるか、 'hg' という名前の実行可能\n"
-"    ファイルが検索されます(Windows の場合、 PATHEXT 環境変数に設定された\n"
+"    'hg' コマンドへのパス。 フック/エクステンション、\n"
+"    ないし外部ツールの起動の際に自動的に設定されます。\n"
+"    未設定や空の場合は、\n"
+"    frozen 形式の hg 実行可能ファイルの名前が設定されるか、\n"
+"    'hg' という名前の実行可能ファイルが検索されます\n"
+"    (Windows の場合、 PATHEXT 環境変数に設定された\n"
 "    COM/EXE/BAT/CMD 等の拡張子付き)。"
 
 msgid ""
@@ -10977,9 +11173,8 @@
 "    This is the name of the editor to run when committing. See EDITOR."
 msgstr ""
 "HGEDITOR\n"
-"    コミットの際のメッセージ入力を行うためのエディタの名前。 EDITOR 環境変"
-"数\n"
-"    についても参照してください。"
+"    コミットの際のメッセージ入力を行うためのエディタの名前。\n"
+"    EDITOR 環境変数についても参照してください。"
 
 msgid "    (deprecated, use configuration file)"
 msgstr "    (非推奨: 設定ファイル経由で指定してください)"
@@ -10992,7 +11187,7 @@
 "    be overridden with the --encoding command-line option."
 msgstr ""
 "HGENCODING\n"
-"    Mercurial によるロケール自動検出の上書き。 この設定は、 ユーザ名、 \n"
+"    Mercurial によるロケール自動検出の上書き。 この設定は、 ユーザ名、\n"
 "    コミットメッセージ、 タグ名およびブランチ名を内部データ形式に変換する\n"
 "    際に使用されます。 この環境変数設定は、 コマンドラインでの --encoding\n"
 "    使用により、 更に上書きすることが出来ます。"
@@ -11008,7 +11203,7 @@
 msgstr ""
 "HGENCODINGMODE\n"
 "    ユーザからの指定値を内部データ形式に変換する際に、 指定の符号化と\n"
-"    合致しない文字が検出された場合の Mercurial の挙動の指定。 無指定時は、 \n"
+"    合致しない文字が検出された場合の Mercurial の挙動の指定。 無指定時は、\n"
 "    「指定の符号化と合致しない場合は処理中断」を意味する \"strict\" が指定\n"
 "    されたものとみなします。 他には、 「未知の文字の置き換え」を意味する\n"
 "    \"replace\" と、 「未知の文字の切り捨て」を意味する \"ignore\" が指定\n"
@@ -11023,6 +11218,14 @@
 "    narrow, set this variable to \"wide\" if such characters cause\n"
 "    formatting problems."
 msgstr ""
+"HGENCODINGAMBIGUOUS\n"
+"    表示幅が\"曖昧な\"文字に対する Mercurial の挙動を決定します。\n"
+"    例えば、 east asian 文字集合における、 アクセント付きの Latin\n"
+"    文字などがこれに該当します。\n"
+"    指定が無い場合、 Mercurial は曖昧な文字の幅を\n"
+"    1文字分 (narrow) とみなします。\n"
+"    この手の文字が表示上の問題となる場合は、 本環境変数を \"wide\"\n"
+"    に設定してください。"
 
 msgid ""
 "HGMERGE\n"
@@ -11031,10 +11234,10 @@
 "    ancestor file."
 msgstr ""
 "HGMERGE\n"
-"    マージの際の衝突解消に使用するコマンド。 指定されたコマンドの起動に"
-"は、 \n"
-"    作業領域のファイル、 マージ対象別リビジョンのファイル、 \n"
-"    両者の親リビジョンのファイルを表す3つの引数が指定されます。"
+"    マージの際の衝突解消に使用するコマンド。\n"
+"    指定されたコマンドの起動には、\n"
+"    作業領域のファイル、 マージ対象別リビジョンのファイル、\n"
+"    両者の親リビジョンのファイルを表す、 3つの引数が指定されます。"
 
 msgid ""
 "HGRCPATH\n"
@@ -11047,7 +11250,7 @@
 "    設定ファイル読込のための、 ファイルないしディレクトリの一覧の指定。\n"
 "    一覧要素の区切り記号は、 Unix なら \":\"、 WIndows なら \";\" です。\n"
 "    HGRCPATH 環境変数が設定されていない場合、 各稼働環境に応じた\n"
-"    読み込み先から読み込まれます。 空の値が設定されている場合、 \n"
+"    読み込み先から読み込まれます。 空の値が設定されている場合、\n"
 "    現リポジトリの .hg/hgrc のみが読み込まれます。"
 
 msgid "    For each element in HGRCPATH:"
@@ -11070,11 +11273,11 @@
 msgstr ""
 "HGPLAIN\n"
 "    この環境変数が設定された場合、 Mercurial の表示設定を変更し得る\n"
-"    設定ファイル中の記述が全て無視されます。 encoding や defaults の指定、 \n"
-"    verbose モード、 debug モード、 quiet モード、 tracebacks や各国語設定"
-"が\n"
-"    対象となります。 ユーザ設定を温存したままで、 ツール等から Mercurial を\n"
-"    使用する場合に有用です。"
+"    設定ファイル中の記述が全て無視されます。\n"
+"    encoding や defaults の指定、 verbose モード、 debug モード、\n"
+"    quiet モード、 tracebacks や各国語設定が対象となります。\n"
+"    ユーザ設定を温存したままで、\n"
+"    ツール等から Mercurial を使用する場合に有用です。"
 
 msgid ""
 "    Equivalent options set via command line flags or environment\n"
@@ -11139,13 +11342,12 @@
 "    defaults to 'vi'."
 msgstr ""
 "EDITOR\n"
-"    コミット時のメッセージのように、 エディタでファイルを開き、 ユーザによ"
-"る\n"
-"    編集を促す状況があります。 そこで使用されるエディタは、 HGEDITOR、 "
-"VISUAL\n"
+"    コミット時のメッセージのように、 エディタでファイルを開き、\n"
+"    ユーザによる編集を促す状況があります。\n"
+"    そこで使用されるエディタは、 HGEDITOR、 VISUAL\n"
 "    あるいは EDITOR 環境変数に設定されたものを(この順序で)使用します。\n"
-"    最初の空で無い値に設定された環境変数の値を使用します。 いずれも未設定\n"
-"    (あるいは空)の場合は、 'vi' が使用されます。"
+"    最初の空で無い値に設定された環境変数の値を使用します。\n"
+"    いずれも未設定 (あるいは空) の場合は、 'vi' が使用されます。"
 
 msgid ""
 "PYTHONPATH\n"
@@ -11153,7 +11355,7 @@
 "    set appropriately if this Mercurial is not installed system-wide.\n"
 msgstr ""
 "PYTHONPATH\n"
-"    Mercurial が当該システムの共有領域にインストールされていない場合、 \n"
+"    Mercurial が当該システムの共有領域にインストールされていない場合、\n"
 "    Python が必要なモジュールを読み込むためには、 この環境変数の設定が\n"
 "    必要です。\n"
 
@@ -11165,7 +11367,7 @@
 msgstr ""
 "Mercurial には、 新規機能を「エクステンション」という機構を用いて\n"
 "追加する仕組みが備わっています。 エクステンションでは、 コマンドの\n"
-"新規追加、 既存コマンドへのオプションの追加、 コマンドの挙動の変更、 \n"
+"新規追加、 既存コマンドへのオプションの追加、 コマンドの挙動の変更、\n"
 "フックの実装といったことが可能です。"
 
 msgid ""
@@ -11189,8 +11391,8 @@
 "Python search path, create an entry for it in your configuration file,\n"
 "like this::"
 msgstr ""
-"\"foo\" というエクステンションを有効化するには、 \n"
-"Mercurial 同梱のものであろうと、 Python の検索パス中のものであろうと、 \n"
+"\"foo\" というエクステンションを有効化するには、\n"
+"Mercurial 同梱のものであろうと、 Python の検索パス中のものであろうと、\n"
 "設定ファイルにおいて以下のような記述が必要です::"
 
 msgid ""
@@ -11257,8 +11459,8 @@
 "    リビジョンを親として、 新規に作成された子リビジョンのこと。\n"
 "    これは「位相的 (topological) ブランチ」と呼ばれます。\n"
 "    ('Branch, topological' 参照) 位相的ブランチに名前が付与された場合は\n"
-"    「名前付きブランチ」と呼ばれます。 名前を持たない位相的ブランチは、 \n"
-"    「名前無しブランチ」と呼ばれます。 'Branch, anonymous' および \n"
+"    「名前付きブランチ」と呼ばれます。 名前を持たない位相的ブランチは、\n"
+"    「名前無しブランチ」と呼ばれます。 'Branch, anonymous' および\n"
 "    'Branch, named' も参照のこと。"
 
 msgid ""
@@ -11271,7 +11473,7 @@
 "    using bookmarks or clones and anonymous branches."
 msgstr ""
 "    ブランチは、 別のリポジトリとの間での連携 (反映/取り込み) の際に\n"
-"    連携先で生成されたリビジョンが新規ヘッドとして取り込まれることで、 \n"
+"    連携先で生成されたリビジョンが新規ヘッドとして取り込まれることで、\n"
 "    生成される場合があります。 「ブランチ」という呼称は、 利用者が独立して\n"
 "    開発を行う過程を指すのに使用される場合があります。 このような相互に\n"
 "    独立した開発は、 名前付きブランチを明示的に作成して実施されることも\n"
@@ -11353,8 +11555,8 @@
 "    [名前付きブランチ] 同一のブランチ名を持つリビジョンの集合のこと。\n"
 "    名前付きブランチに属するリビジョンの子リビジョンは、 同じ名前付き\n"
 "    ブランチに属します。 明示的に指定することで、 子リビジョンを別な\n"
-"    名前付きブランチに所属させることも可能です。 ブランチ管理の詳細は、 \n"
-"    :hg:`help branch`、 :hg:`help branches` および \n"
+"    名前付きブランチに所属させることも可能です。 ブランチ管理の詳細は、\n"
+"    :hg:`help branch`、 :hg:`help branches` および\n"
 "    :hg:`commit --close-branch` を参照のこと。"
 
 msgid ""
@@ -11366,7 +11568,7 @@
 "    further changesets are added to that previous branch, then that\n"
 "    previous branch will be a branch in name only."
 msgstr ""
-"    名前付きブランチは、 リポジトリの履歴を構成するリビジョン群を、 \n"
+"    名前付きブランチは、 リポジトリの履歴を構成するリビジョン群を、\n"
 "    重複の無い部分集合へと分割する、 名前空間の一種とも言えます。\n"
 "    名前付きブランチは、 必ずしも位相的ブランチである必要はありません。\n"
 "    任意の名前付きブランチ(default でも可)のヘッドとなるリビジョンを\n"
@@ -11404,7 +11606,7 @@
 msgstr ""
 "Changelog\n"
 "    [変更履歴/チェンジログ] 各リビジョンの内容を、 リポジトリに登録された\n"
-"    順に記録したもの。 記録内容には、 識別用ハッシュ値、  作成者名、 \n"
+"    順に記録したもの。 記録内容には、 識別用ハッシュ値、  作成者名、\n"
 "    コミットログ、 日付および変更対象ファイルの一覧が含まれます。"
 
 msgid ""
@@ -11415,7 +11617,7 @@
 "    [チェンジセット] 変更内容の記録に使用する、 リポジトリ状態の\n"
 "    スナップショット。  ※ 訳注: 歴史的な経緯から、 チェンジセットと\n"
 "    リビジョンは通常、 同じ意味で使用されるケースが多いです。 日本語訳の\n"
-"    際には、 複数ファイルに渡る差分一式のことを指す場合はチェンジセット、 \n"
+"    際には、 複数ファイルに渡る差分一式のことを指す場合はチェンジセット、\n"
 "    リポジトリに登録されることで履歴中の位置が確定済みのチェンジセット\n"
 "    のことはリビジョン、 と呼称することが多いですが、 必ずしも統一\n"
 "    されている訳ではありません。 'Revision' も参照のこと。"
@@ -11430,7 +11632,7 @@
 "    [子チェンジセット/子リビジョン] 「親リビジョン」の対義語。\n"
 "    リビジョン P がリビジョン C の親リビジョンである場合、 C は P の\n"
 "    子リビジョンとなります。 1つの親リビジョンに対して、 子リビジョンの\n"
-"    数には上限がありません。  訳注: 親/子関係を持つ、 ということは、 \n"
+"    数には上限がありません。  訳注: 親/子関係を持つ、 ということは、\n"
 "    履歴中の位置が確定していることを意味するため、 ここでは敢えて\n"
 "    changeset を「リビジョン」と訳しています。 'Changeset' も参照のこと。"
 
@@ -11525,7 +11727,7 @@
 msgstr ""
 "Clone\n"
 "    (名詞) [複製(リポジトリ)] あるリポジトリから、 全体ないし一部を複製\n"
-"   したリポジトリのこと。 部分複製リポジトリの持つ変更履歴は、 \n"
+"   したリポジトリのこと。 部分複製リポジトリの持つ変更履歴は、\n"
 "   指定リビジョンとその祖先から構成されます。"
 
 msgid "    Example: \"Is your clone up to date?\"."
@@ -11552,7 +11754,7 @@
 msgstr ""
 "Commit\n"
 "    (名詞) [コミット] リビジョンの別称。  ※ 訳注: コミット済み\n"
-"    ということは、 履歴中の位置が確定していることを意味するため、 \n"
+"    ということは、 履歴中の位置が確定していることを意味するため、\n"
 "    ここでは敢えて changeset を「リビジョン」と訳しています。\n"
 "    'Changeset' も参照のこと。"
 
@@ -11566,7 +11768,7 @@
 "    changeset, creating a new changeset in the repository."
 msgstr ""
 "    (動詞) [コミットする] 変更内容をリポジトリに記録する操作のこと。\n"
-"    コミットの際には、 コミット対象ファイルの作業領域中の内容と、 \n"
+"    コミットの際には、 コミット対象ファイルの作業領域中の内容と、\n"
 "    親リビジョン時点における内容との差分が確認され、 新規のリビジョンが\n"
 "    リポジトリに作成されます。"
 
@@ -12131,7 +12333,7 @@
 "individually, or provided as a topologically continuous range,\n"
 "separated by the \":\" character."
 msgstr ""
-"Mercurial に複数のリビジョンを指定する場合の方法には、 \n"
+"Mercurial に複数のリビジョンを指定する場合の方法には、\n"
 "個々のリビジョンをそれぞれ指定する方法以外にも、 \":\" を区切り\n"
 "記号にした範囲指定による方法があります。"
 
@@ -12170,7 +12372,7 @@
 "By default, Mercurial treats filenames as shell-style extended glob\n"
 "patterns."
 msgstr ""
-"特に指定の無い場合、 Mercurial は指定されたファイル名に対して、 \n"
+"特に指定の無い場合、 Mercurial は指定されたファイル名に対して、\n"
 "shell 形式の拡張ワイルドカード合致を行います。"
 
 msgid "Alternate pattern notations must be specified explicitly."
@@ -12181,8 +12383,8 @@
 "``path:``. These path names must completely match starting at the\n"
 "current repository root."
 msgstr ""
-"パターン合致を行わずに、 指定された名前をそのまま使用する場合、 \n"
-"名前の前に ``path:`` を記述します。 この形式を使用する場合、 \n"
+"パターン合致を行わずに、 指定された名前をそのまま使用する場合、\n"
+"名前の前に ``path:`` を記述します。 この形式を使用する場合、\n"
 "リポジトリのルートからのパスと完全に一致しなければなりません。"
 
 msgid ""
@@ -12209,6 +12411,19 @@
 "正規表現形式では、 リポジトリのルートからの合致とみなされます。\n"
 "(訳注: .hgignore での指定では付与「されません」ので注意が必要です)。"
 
+msgid ""
+"To read name patterns from a file, use ``listfile:`` or ``listfile0:``.\n"
+"The latter expects null delimited patterns while the former expects line\n"
+"feeds. Each string read from the file is itself treated as a file\n"
+"pattern."
+msgstr ""
+"ファイルからパターンを読み込む場合は、\n"
+"``listfile:`` ないし ``listfile0:`` を使用します。\n"
+"前者が改行でパターンを区切るのに対して、\n"
+"後者は null 文字でパターンを区切ります。\n"
+"ファイルから読み込まれた個々のパターンは、\n"
+"file パターンとして扱われます。"
+
 msgid "Plain examples::"
 msgstr "パターン合致未使用例::"
 
@@ -12234,19 +12449,27 @@
 msgstr ""
 "  glob:*.c       現ディレクトリ直下で、 名前が \".c\" で終わるもの\n"
 "  *.c            現ディレクトリ直下で、 名前が \".c\" で終わるもの\n"
-"  **.c           現ディレクトリないしその配下のディレクトリにおいて、 \n"
+"  **.c           現ディレクトリないしその配下のディレクトリにおいて、\n"
 "                 名前が \".c\" で終わるもの\n"
 "  foo/*.c        foo ディレクトリ直下で、 名前が \".c\" で終わるもの\n"
-"  foo/**.c       foo ディレクトリないしその配下のディレクトリにおいて、 \n"
+"  foo/**.c       foo ディレクトリないしその配下のディレクトリにおいて、\n"
 "                 名前が \".c\" で終わるもの"
 
 msgid "Regexp examples::"
 msgstr "正規表現指定例::"
 
-msgid ""
-"  re:.*\\.c$      any name ending in \".c\", anywhere in the repository\n"
-msgstr ""
-"  re:.*\\.c$     作業領域中の任意の位置で、 名前が \".c\" で終わるもの\n"
+msgid "  re:.*\\.c$      any name ending in \".c\", anywhere in the repository"
+msgstr "  re:.*\\.c$      任意のディレクトリの、 名前が \".c\" で終わるもの"
+
+msgid "File examples::"
+msgstr "ファイル読み込み例::"
+
+msgid ""
+"  listfile:list.txt  read list from list.txt with one file pattern per line\n"
+"  listfile0:list.txt read list from list.txt with null byte delimiters\n"
+msgstr ""
+"  listfile:list.txt  1行1 file パターンで list.txt から読み込み\n"
+"  listfile0:list.txt null 文字区切りで file パターンを読み込み\n"
 
 msgid "Mercurial supports several ways to specify individual revisions."
 msgstr "Mercurial に個々のリビジョン指定する際には複数の記法が使用できます。"
@@ -12297,7 +12520,7 @@
 "revision of an empty repository, and the parent of revision 0."
 msgstr ""
 "「空リビジョン」を意味する名前 \"null\" は、 特別な名前として予約\n"
-"されています。 空リポジトリにおけるリビジョンはこのリビジョンで、 \n"
+"されています。 空リポジトリにおけるリビジョンはこのリビジョンで、\n"
 "リビジョン 0 の親は \"null\" リビジョンです。"
 
 msgid ""
@@ -12563,7 +12786,10 @@
 ":commit: commit creates a consistent snapshot of the state of the\n"
 "    entire project and its subrepositories. It does this by first\n"
 "    attempting to commit all modified subrepositories, then recording\n"
-"    their state and finally committing it in the parent repository."
+"    their state and finally committing it in the parent\n"
+"    repository. Mercurial can be made to abort if any subrepository\n"
+"    content is modified by setting \"ui.commitsubrepos=no\" in a\n"
+"    configuration file (see :hg:`help config`)."
 msgstr ""
 
 msgid ""
@@ -12684,11 +12910,17 @@
 msgstr ":author: 文字列。 リビジョンの作者名(記録情報そのまま)。"
 
 msgid ""
-":branches: String. The name of the branch on which the changeset was\n"
-"    committed. Will be empty if the branch name was default."
-msgstr ""
-":branches: 文字列。 リビジョンの属するブランチ名。 所属ブランチが\n"
-"    default の場合は空文字列。"
+":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 の場合は空。"
 
 msgid ":children: List of strings. The children of the changeset."
 msgstr ":children: 文字列列挙。 リビジョンの子供。"
@@ -12725,7 +12957,7 @@
 ":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"
+":file_copies_switch: 文字列列挙。  \"file_copies\" と同義だが、\n"
 "    --copied 指定のある時のみ表示。"
 
 msgid ":file_mods: List of strings. Files modified by this changeset."
@@ -12769,7 +13001,7 @@
 "含めたい場合、 可読化するための「フィルター」を使用します。\n"
 "「フィルター」とは、 入力値に基づいて文字列を生成する機能です。\n"
 "一覧系の入力に対して文字列名のフィルターを適用する場合、 最初に stringify\n"
-"フィルターを適用してください。 複数のフィルターを連ねることで、 \n"
+"フィルターを適用してください。 複数のフィルターを連ねることで、\n"
 "様々な出力を得ることができます::"
 
 msgid ""
@@ -12786,7 +13018,7 @@
 ":addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n"
 "    every line except the last."
 msgstr ""
-":addbreaks: 文字列。 最終行を除く各行の行末に XHTML の \n"
+":addbreaks: 文字列。 最終行を除く各行の行末に XHTML の\n"
 "    \"<br />\" タグを追加します。"
 
 msgid ""
@@ -12952,29 +13184,30 @@
 "  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]"
+"  ssh://[user@]host[:port]/[path][#revision]"
 msgstr ""
 "  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]"
+"  ssh://[user@]host[:port]/[path][#revision]"
 
 msgid ""
 "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`)."
-msgstr ""
-"ローカルファイルシステム上のパスが指す先は、 Mercurial のリポジトリでも、 \n"
-"バンドルファイル(:hg:`bundle` ないし :hg:`incoming --bundle` で生成)でも\n"
-"構いません。"
+"incoming --bundle`). See also :hg:`help paths`."
+msgstr ""
+"ローカルファイルシステム上のパスが指す先は、\n"
+"Mercurial のリポジトリでも、 バンドルファイル\n"
+"(:hg:`bundle` ないし :hg:`incoming --bundle` で生成)\n"
+"でも構いません。 :hg:`help paths` も参照してください。"
 
 msgid ""
 "An optional identifier after # indicates a particular branch, tag, or\n"
 "changeset to use from the remote repository. See also :hg:`help\n"
 "revisions`."
 msgstr ""
-"連携先リポジトリ指定において、 '#' 記号に続けて識別子を指定することで、 \n"
+"連携先リポジトリ指定において、 '#' 記号に続けて識別子を指定することで、\n"
 "特定のブランチ、 タグないしチェンジセットを指定することが出来ます。\n"
 ":hg:`help revisions` も参照してください。"
 
@@ -13042,7 +13275,7 @@
 "These URLs can all be stored in your configuration file with path\n"
 "aliases under the [paths] section like so::"
 msgstr ""
-"連携先 URL は、 設定ファイルの [paths] セクションで、 \n"
+"連携先 URL は、 設定ファイルの [paths] セクションで、\n"
 "別名を付けて記述することが出来ます::"
 
 msgid ""
@@ -13094,7 +13327,7 @@
 "  こちらが優先されます。\n"
 
 msgid "remote branch lookup not supported"
-msgstr "連携先リポジトリではブランチ検索機能はサポートされていません"
+msgstr "連携先リポジトリはブランチ検索機能が未サポートです"
 
 msgid "dirstate branch not accessible"
 msgstr "dirstate のブランチ情報にアクセスできません"
@@ -13127,10 +13360,10 @@
 msgid ""
 "src repository does not support revision lookup and so doesn't support clone "
 "by revision"
-msgstr "指定の複製元では、 リビジョン指定付きでの複製ができません"
+msgstr "指定の複製元は、 リビジョン指定付き複製が未サポートです"
 
 msgid "clone from remote to remote not supported"
-msgstr "リモートからリモートの複製はサポートしていません"
+msgstr "リモートからリモートの複製は未サポートです"
 
 #, python-format
 msgid "updating to branch %s\n"
@@ -13154,6 +13387,10 @@
 msgstr "(マージ結果の commit を忘れずに)\n"
 
 #, python-format
+msgid "config file %s not found!"
+msgstr "設定ファイル %s が見つかりません!"
+
+#, python-format
 msgid "error reading %s/.hg/hgrc: %s\n"
 msgstr "%s/.hg/hgrc の読み込みに失敗: %s\n"
 
@@ -13203,7 +13440,7 @@
 
 #, python-format
 msgid "error: %s hook raised an exception: %s\n"
-msgstr "エラー: フック %s による例外浮揚: %s\n"
+msgstr "エラー: フック %s による例外発生: %s\n"
 
 #, python-format
 msgid "%s hook failed"
@@ -13230,10 +13467,10 @@
 
 #, python-format
 msgid "unsupported URL component: \"%s\""
-msgstr "URL 要素 \"%s\" はサポートされていません"
+msgstr "URL 要素 \"%s\" は未サポートです"
 
 msgid "operation not supported over http"
-msgstr "http リポジトリでは使用できない機能を必要としています"
+msgstr "http リポジトリでは未サポートの機能です"
 
 msgid "authorization failed"
 msgstr "認証に失敗"
@@ -13293,13 +13530,17 @@
 
 #, python-format
 msgid "requirement '%s' not supported"
-msgstr "必須機能 '%s' はサポートされていません"
+msgstr "必須機能 '%s' が未サポートです"
 
 #, python-format
 msgid ".hg/sharedpath points to nonexistent directory %s"
 msgstr ".hg/sharedpath の参照先 %s は存在しません"
 
 #, python-format
+msgid "warning: ignoring unknown working parent %s!\n"
+msgstr "警告: 作業領域の親 '%s' が未知のリビジョンです!\n"
+
+#, python-format
 msgid "%r cannot be used in a tag name"
 msgstr "%r はタグ名に使用できません"
 
@@ -13328,12 +13569,12 @@
 msgstr "中断されたトランザクションはありません\n"
 
 #, python-format
-msgid "rolling back to revision %s (undo %s: %s)\n"
-msgstr "リビジョン %s へ巻き戻し中 (%s の取り消し: %s)\n"
-
-#, python-format
-msgid "rolling back to revision %s (undo %s)\n"
-msgstr "リビジョン %s へ巻き戻し中 (%s の取り消し)\n"
+msgid "repository tip rolled back to revision %s (undo %s: %s)\n"
+msgstr "tip をリビジョン %s に巻き戻しました (取り消し %s: %s)\n"
+
+#, python-format
+msgid "repository tip rolled back to revision %s (undo %s)\n"
+msgstr "tip をリビジョン %s に巻き戻しました (取り消し %s)\n"
 
 msgid "rolling back unknown transaction\n"
 msgstr "未知のトランザクションの巻き戻し中\n"
@@ -13342,6 +13583,14 @@
 msgid "Named branch could not be reset, current branch still is: %s\n"
 msgstr "名前つきブランチはリセットできませんので、 %s のままです\n"
 
+#, python-format
+msgid "working directory now based on revisions %d and %d\n"
+msgstr "%d と %d が作業領域の親リビジョンになりました\n"
+
+#, python-format
+msgid "working directory now based on revision %d\n"
+msgstr "%d が作業領域の親リビジョンになりました\n"
+
 msgid "no rollback information available\n"
 msgstr "利用可能なロールバック情報がありません\n"
 
@@ -13357,12 +13606,20 @@
 msgid "working directory of %s"
 msgstr "%s の作業領域"
 
+#, python-format
+msgid "warning: can't find ancestor for '%s' copied from '%s'!\n"
+msgstr "警告: '%s'('%s' からの複製)の祖先が見つかりません\n"
+
 msgid "cannot partially commit a merge (do not specify files or patterns)"
 msgstr "マージの部分コミットはできません(ファイル名/パターンは指定できません)"
 
 msgid "can't commit subrepos without .hgsub"
 msgstr ".hgsub の無い副リポジトリはコミットできません"
 
+#, python-format
+msgid "uncommitted changes in subrepo %s"
+msgstr "副リポジトリ %s に未コミット変更があります"
+
 msgid "file not found!"
 msgstr "ファイルが見つかりません!"
 
@@ -13393,41 +13650,42 @@
 msgid ""
 "partial pull cannot be done because other repository doesn't support "
 "changegroupsubset."
-msgstr ""
-"連携先の changegroupsubset 機能未対応により、 部分取り込みできません。"
+msgstr "連携先の changegroupsubset 機能未対応により、 部分取り込みできません。"
+
+#, python-format
+msgid "updating bookmark %s\n"
+msgstr "ブックマーク %s の更新中\n"
+
+#, python-format
+msgid "not updating divergent bookmark %s\n"
+msgstr "衝突するブックマーク %s は更新しません\n"
 
 #, python-format
 msgid "%d changesets found\n"
 msgstr "%d 個のチェンジセット\n"
 
-msgid "bundling changes"
-msgstr "チェンジセットをバンドルに追加中"
-
-msgid "chunks"
-msgstr "チャンク"
-
-msgid "bundling manifests"
-msgstr "マニフェストをバンドルに追加中"
+msgid "bundling"
+msgstr "バンドル生成中"
+
+msgid "manifests"
+msgstr "マニフェスト"
 
 #, python-format
 msgid "empty or missing revlog for %s"
 msgstr "%s に対するリビジョンログが空ないし不在です"
 
-msgid "bundling files"
-msgstr "ファイルをバンドルに追加中"
-
 msgid "adding changesets\n"
 msgstr "チェンジセットを追加中\n"
 
+msgid "chunks"
+msgstr "チャンク"
+
 msgid "received changelog group is empty"
 msgstr "受信した変更履歴は空です"
 
 msgid "adding manifests\n"
 msgstr "マニフェストを追加中\n"
 
-msgid "manifests"
-msgstr "マニフェスト"
-
 msgid "adding file changes\n"
 msgstr "ファイルの変更を追加中\n"
 
@@ -13447,7 +13705,7 @@
 msgstr "%d のチェンジセット(%d の変更を %d ファイルに適用)を追加%s\n"
 
 msgid "Unexpected response from remote server:"
-msgstr "連携先のサーバから予期しない返信: "
+msgstr "連携先のサーバから予期しない返信:"
 
 msgid "operation forbidden by server"
 msgstr "その処理はサーバで禁止されています"
@@ -13469,6 +13727,12 @@
 msgid "transferred %s in %.1f seconds (%s/sec)\n"
 msgstr "%s を %.1f 秒で送信しました(%s/秒)\n"
 
+msgid "can't use TLS: Python SSL support not installed"
+msgstr "TLS を利用できません: Python SSL サポートがインストールされていません"
+
+msgid "(using smtps)\n"
+msgstr "(SMTP を使用)\n"
+
 msgid "smtp.host not configured - cannot send mail"
 msgstr "設定ファイルに smtp.host 指定がありません - メール送信に失敗"
 
@@ -13476,11 +13740,8 @@
 msgid "sending mail: smtp host %s, port %s\n"
 msgstr "メール送信中: SMTP ホスト %s、 ポート番号 %s\n"
 
-msgid "can't use TLS: Python SSL support not installed"
-msgstr "TLS を利用できません: Python SSL サポートがインストールされていません"
-
-msgid "(using tls)\n"
-msgstr "(TLS を使用中)\n"
+msgid "(using starttls)\n"
+msgstr "(starttls を使用)\n"
 
 #, python-format
 msgid "(authenticating to mail server as %s)\n"
@@ -13521,6 +13782,10 @@
 msgstr "不正パターン"
 
 #, python-format
+msgid "unable to read file list (%s)"
+msgstr "一覧ファイル(%s)が読み込めません"
+
+#, python-format
 msgid "diff context lines count must be an integer, not %r"
 msgstr "差分コンテキストでの行数指定が不正です: %r"
 
@@ -13540,16 +13805,16 @@
 "(n)one, e(x)ec or sym(l)ink?"
 msgstr ""
 "ファイル %s のビット設定に衝突があります\n"
-"どの設定にしますか?無効:(n)one, 実行可能:e(x)ec, リンク:sym(l)ink"
+"どの設定にしますか? 無効:(n)one 実行可能:e(x)ec リンク:sym(l)ink"
 
 msgid "&None"
-msgstr "なし (&N)"
+msgstr "&None"
 
 msgid "E&xec"
-msgstr "実行 (&X)"
+msgstr "E&xec"
 
 msgid "Sym&link"
-msgstr "シンボリックリンク (&L)"
+msgstr "Sym&link"
 
 msgid "resolving manifests\n"
 msgstr "管理ファイル一覧を解決しています\n"
@@ -13560,7 +13825,7 @@
 "use (c)hanged version or (d)elete?"
 msgstr ""
 "変更したファイル %s は別リビジョンで登録除外されています\n"
-"どちらを採用しますか?変更:(c)hange, 登録除外:(d)elete"
+"どちらを採用しますか? 変更:(c)hange 登録除外:(d)elete"
 
 msgid "&Changed"
 msgstr "&Changed"
@@ -13574,7 +13839,7 @@
 "use (c)hanged version or leave (d)eleted?"
 msgstr ""
 "リモートで変更された %s はローカルで削除されています\n"
-"変更されたもの(c)hangedを使用しますか?それとも削除(d)eleteしますか?"
+"どちらを採用しますか? 変更:(c)hanged 削除:(d)elete"
 
 msgid "&Deleted"
 msgstr "&Deleted"
@@ -13611,6 +13876,10 @@
 msgid "outstanding uncommitted changes (use 'hg status' to list changes)"
 msgstr "未コミット変更があります('hg status' で変更一覧表示可能)"
 
+#, python-format
+msgid "outstanding uncommitted changes in subrepository '%s'"
+msgstr "副リポジトリ %s に未コミット変更あり"
+
 msgid "crosses branches (merge branches or use --clean to discard changes)"
 msgstr ""
 "ブランチ横断の更新 (マージするか、 --clean 指定で変更を破棄してください)"
@@ -13713,7 +13982,7 @@
 
 #, python-format
 msgid "unsupported parser state: %s"
-msgstr "サポートしていないパーサの状態です: %s"
+msgstr "未サポートなパーサ状態です: %s"
 
 #, python-format
 msgid "patch command failed: %s"
@@ -13755,7 +14024,7 @@
 
 #, python-format
 msgid "cannot %s; remote repository does not support the %r capability"
-msgstr "%s できません。 機能 %s はリモートリポジトリでは未サポートです"
+msgstr "%s ができません。 連携先は機能 %r が未サポートです"
 
 #, python-format
 msgid "unknown compression type %r"
@@ -13854,18 +14123,19 @@
 msgstr "rev 指定は数値でなければなりません"
 
 msgid ""
-"``p1(set)``\n"
-"    First parent of changesets in set."
-msgstr ""
-
-msgid ""
-"``p2(set)``\n"
-"    Second parent of changesets in set."
-msgstr ""
-
-msgid ""
-"``parents(set)``\n"
-"    The set of all parents for all changesets in set."
+"``p1([set])``\n"
+"    First parent of changesets in set, or the working directory."
+msgstr ""
+
+msgid ""
+"``p2([set])``\n"
+"    Second parent of changesets in set, or the working directory."
+msgstr ""
+
+msgid ""
+"``parents([set])``\n"
+"    The set of all parents for all changesets in set, or the working "
+"directory."
 msgstr ""
 
 msgid ""
@@ -14137,6 +14407,19 @@
 msgid "the argument to tag must be a string"
 msgstr "tag 指定は文字列でなければなりません"
 
+msgid ""
+"``bookmark([name])``\n"
+"    The named bookmark or all bookmarks."
+msgstr ""
+
+#. i18n: "bookmark" is a keyword
+msgid "bookmark takes one or no arguments"
+msgstr "bookmark 指定には1個ないし2個の引数が必要です"
+
+#. i18n: "bookmark" is a keyword
+msgid "the argument to bookmark must be a string"
+msgstr ""
+
 msgid "can't negate that"
 msgstr "負値にできません"
 
@@ -14166,6 +14449,9 @@
 msgid "couldn't parse location %s"
 msgstr "URL %s の解析に失敗"
 
+msgid "password in URL not supported"
+msgstr "パスワード付き URL は未サポートです"
+
 msgid "could not create remote repo"
 msgstr "遠隔ホストとの連携に失敗"
 
@@ -14197,6 +14483,10 @@
 msgstr "ファイル名キャッシュに不正なエントリ: %s 行目"
 
 #, python-format
+msgid "warning: subrepo spec file %s not found\n"
+msgstr "警告: 副リポジトリの spec ファイル %s が見つかりません\n"
+
+#, python-format
 msgid "subrepo spec file %s not found"
 msgstr "副リポジトリの spec ファイル %s が見つかりません"
 
@@ -14212,8 +14502,8 @@
 " subrepository sources for %s differ\n"
 "use (l)ocal source (%s) or (r)emote source (%s)?"
 msgstr ""
-" サブリポジトリ %s で差分が検出されました\n"
-"どちらの内容を採用しますか?手元:(%s)、 遠隔:(%s)"
+" 副リポジトリ %s で差分が検出されました\n"
+"どちらを採用しますか? 手元(%s):(l)ocal 遠隔(%s):(r)emote"
 
 msgid "&Remote"
 msgstr "&Remote"
@@ -14223,26 +14513,46 @@
 " local changed subrepository %s which remote removed\n"
 "use (c)hanged version or (d)elete?"
 msgstr ""
-"ローカル副リポジトリで変更したファイル %s は他方で登録除外されています\n"
-"どちらを採用しますか?変更:(c)hange, 登録除外:(d)elete"
+"副リポジトリで変更したファイル %s は、 遠隔では登録除外されています\n"
+"どちらを採用しますか? 変更:(c)hange 登録除外:(d)elete"
 
 #, python-format
 msgid ""
 " remote changed subrepository %s which local removed\n"
 "use (c)hanged version or (d)elete?"
 msgstr ""
-"ローカル副リポジトリで登録除外されたファイル %s は他方で変更されています\n"
-"どちらを採用しますか?変更:(c)hange, 登録除外:(d)elete"
+"副リポジトリで登録除外されたファイル %s は、 遠隔では変更されています\n"
+"どちらを採用しますか? 変更:(c)hange 登録除外:(d)elete"
+
+#, python-format
+msgid ""
+" subrepository sources for %s differ\n"
+"use (l)ocal source (%s) or (r)emote source (%s)?\n"
+msgstr ""
+" 副リポジトリ %s の作業領域で差分が検出されました\n"
+"どちらを採用しますか? 手元(%s):(l)ocal 遠隔(%s):(r)emote\n"
+
+#, python-format
+msgid ""
+" subrepository sources for %s differ (in checked out version)\n"
+"use (l)ocal source (%s) or (r)emote source (%s)?\n"
+msgstr ""
+" 副リポジトリ %s のリビジョンに差分が検出されました\n"
+"どちらを採用しますか? 手元(%s):(l)ocal 遠隔(%s):(r)emote\n"
 
 #, python-format
 msgid "default path for subrepository %s not found"
-msgstr "デフォルトの副リポジトリ %s が見つかりません"
+msgstr "副リポジトリ %s の が見つかりません"
 
 #, python-format
 msgid "unknown subrepo type %s"
 msgstr "未知の副リポジトリ種別 '%s'"
 
 #, python-format
+msgid "archiving (%s)"
+msgstr "アーカイブ中 (%s)"
+
+#, python-format
 msgid "warning: error \"%s\" in subrepository \"%s\"\n"
 msgstr "警告: エラー \"%s\" が副リポジトリ \"%s\" で発生\n"
 
@@ -14266,6 +14576,39 @@
 msgstr "変更が含まれているため、 リポジトリ %s は削除されません\n"
 
 #, python-format
+msgid "cloning subrepo %s\n"
+msgstr "副リポジトリ %s を複製中\n"
+
+#, python-format
+msgid "pulling subrepo %s\n"
+msgstr "副リポジトリ %s の更新取り込み中\n"
+
+#, python-format
+msgid "revision %s does not exist in subrepo %s\n"
+msgstr "リビジョン %s は副リポジトリ %s には存在しません\n"
+
+#, python-format
+msgid "checking out detached HEAD in subrepo %s\n"
+msgstr ""
+
+msgid "check out a git branch if you intend to make changes\n"
+msgstr ""
+
+#, python-format
+msgid "unrelated git branch checked out in subrepo %s\n"
+msgstr "副リポジトリ %s は、 無関係な git ブランチで更新されています\n"
+
+#, python-format
+msgid "pushing branch %s of subrepo %s\n"
+msgstr "ブランチ %s を副リポジトリ %s から反映中\n"
+
+#, python-format
+msgid ""
+"no branch checked out in subrepo %s\n"
+"cannot push revision %s"
+msgstr ""
+
+#, python-format
 msgid "%s, line %s: %s\n"
 msgstr "%s %s行目: %s\n"
 
@@ -14276,25 +14619,39 @@
 msgid "node '%s' is not well formed"
 msgstr "'%s' というノードはフォーマットが不適切です"
 
-msgid ".hg/tags.cache is corrupt, rebuilding it\n"
-msgstr ".hg/tags.cache が無効なため再構築中\n"
+msgid ".hg/cache/tags is corrupt, rebuilding it\n"
+msgstr ".hg/cache/tags が無効なため再構築中\n"
+
+#, python-format
+msgid "unknown method '%s'"
+msgstr "不明な処理 '%s' が指定されました"
+
+msgid "expected a symbol"
+msgstr "シンボル指定が必要です"
+
+#, python-format
+msgid "unknown function '%s'"
+msgstr "不明な関数 '%s' が指定されました"
+
+msgid "expected template specifier"
+msgstr "テンプレート指定が必要です"
+
+#, python-format
+msgid "filter %s expects one argument"
+msgstr "フィルタ %s は引数が1つ必要です"
 
 msgid "unmatched quotes"
 msgstr "引用符の対応関係が不正です"
 
 #, python-format
-msgid "error expanding '%s%%%s'"
-msgstr "'%s%%%s' 展開の失敗"
-
-#, python-format
-msgid "unknown filter '%s'"
-msgstr "'%s' は未知のフィルタです"
-
-#, python-format
 msgid "style not found: %s"
 msgstr "スタイルが見つかりません: %s"
 
 #, python-format
+msgid "\"%s\" not in template map"
+msgstr "\"%s\" はキーワードとして認識できません"
+
+#, python-format
 msgid "template file %s: %s"
 msgstr "テンプレートファイル %s: %s"
 
@@ -14360,6 +14717,10 @@
 msgid "edit failed"
 msgstr "編集に失敗"
 
+#, python-format
+msgid "ignoring invalid [auth] key '%s'\n"
+msgstr "不正な [auth] セクションのキー'%s' を無視します\n"
+
 msgid "http authorization required"
 msgstr "HTTP 認証に失敗"
 
@@ -14381,9 +14742,8 @@
 msgid "http auth: user %s, password %s\n"
 msgstr "HTTP 認証: ユーザ名 %s, パスワード %s\n"
 
-#, python-format
-msgid "ignoring invalid [auth] key '%s'\n"
-msgstr "不正な [auth] セクションのキー'%s' を無視します\n"
+msgid "kb"
+msgstr "キロバイト"
 
 msgid "certificate checking requires Python 2.6"
 msgstr "証明書検証には Python 2.6 が必要です"
@@ -14395,20 +14755,50 @@
 msgid "certificate is for %s"
 msgstr "%s 用の証明書ファイル"
 
-msgid "no commonName found in certificate"
-msgstr "証明書に commonName が含まれていません"
-
-#, python-format
-msgid "%s certificate error: %s"
-msgstr "%s 用の証明書検証が失敗: %s"
+msgid "IDN in certificate not supported"
+msgstr "証明書の IDN は未サポートです"
+
+msgid "no commonName or subjectAltName found in certificate"
+msgstr "証明書に commonName や subjectAltName が含まれていません"
+
+#, python-format
+msgid "%s certificate error: %s (use --insecure to connect insecurely)"
+msgstr "%s の証明書不正: %s (非セキュア接続で継続するなら --insecure 指定)"
+
+#, python-format
+msgid "invalid certificate for %s with fingerprint %s"
+msgstr "%s の証明書(fingerprint は %s)が不正"
+
+#, python-format
+msgid ""
+"warning: %s certificate with fingerprint %s not verified (check "
+"hostfingerprints or web.cacerts config setting)\n"
+msgstr ""
+"警告: %s の証明書(fingerprint は %s)検証は省略 (設定ファイルの "
+"hostfingerprints ないし web.cacerts 設定を確認のこと)\n"
+
+#, python-format
+msgid "no certificate for %s with configured hostfingerprint"
+msgstr "hostfingerprint 設定された %s の証明書が取得できません"
+
+#, python-format
+msgid ""
+"warning: %s certificate not verified (check web.cacerts config setting)\n"
+msgstr ""
+"警告: %s の証明書検証は省略 (設定ファイルの hostfingerprints ないし web."
+"cacerts 設定を確認のこと)\n"
 
 #, python-format
 msgid "command '%s' failed: %s"
 msgstr "コマンド '%s' 失敗: %s"
 
 #, python-format
+msgid "path ends in directory separator: %s"
+msgstr "パスの末尾が区切り文字です: %s"
+
+#, python-format
 msgid "path contains illegal component: %s"
-msgstr "パスに不正なコンポーネントがあります: %s"
+msgstr "パスに不正な要素が含まれています: %s"
 
 #, python-format
 msgid "path %r is inside repo %r"
@@ -14418,12 +14808,16 @@
 msgid "path %r traverses symbolic link %r"
 msgstr "パス %r はシンボリックリンク '%r' が含まれています"
 
-msgid "Hardlinks not supported"
-msgstr "ハードリンクはサポートしていません"
-
 #, python-format
 msgid "could not symlink to %r: %s"
-msgstr "%r へシンボリックリンクできません: %s"
+msgstr "%r に対してシンボリックリンクできません: %s"
+
+msgid "check your clock"
+msgstr "システムの時刻設定を確認してください"
+
+#, python-format
+msgid "negative timestamp: %d"
+msgstr "負のタイムスタンプ: %d"
 
 #, python-format
 msgid "invalid date: %r"
@@ -14434,6 +14828,10 @@
 msgstr "日付が32ビットを超えています: %d"
 
 #, python-format
+msgid "negative date value: %d"
+msgstr "負の日付情報: %d"
+
+#, python-format
 msgid "impossible time zone offset: %d"
 msgstr "あり得ないタイムゾーン: %d"
 
@@ -14652,17 +15050,14 @@
 msgid "(first damaged changeset appears to be %d)\n"
 msgstr "(最初の不整合は %d の模様)\n"
 
-msgid "user name not available - set USERNAME environment variable"
-msgstr "ユーザ名が利用できません - 環境変数 USERNAME を設定してください"
-
 msgid "look up remote revision"
 msgstr "連携先でのリビジョンの検索"
 
+msgid "push failed (unexpected response):"
+msgstr "履歴反映に失敗(未知のレスポンス):"
+
 msgid "look up remote changes"
 msgstr "連携先での変更の検索"
 
 msgid "push failed:"
 msgstr "履歴反映に失敗:"
-
-msgid "push failed (unexpected response):"
-msgstr "履歴反映に失敗(未知のレスポンス):"
--- a/i18n/pt_BR.po	Wed Feb 16 15:02:30 2011 +0100
+++ b/i18n/pt_BR.po	Wed Mar 02 13:24:48 2011 +0100
@@ -60,8 +60,8 @@
 msgid "This section contains help for extensions that are distributed together with Mercurial. Help for other extensions is available in the help system."
 msgstr "Esta seção contém texto de ajuda para extensões que são distribuídas junto com o Mercurial. A ajuda para outras extensões está disponível no sistema de ajuda."
 
-msgid "options:"
-msgstr "opções:"
+msgid "Options:"
+msgstr "Opções:"
 
 #, python-format
 msgid "    aliases: %s"
@@ -396,203 +396,6 @@
 msgid "acl: access denied for changeset %s"
 msgstr "acl: acesso negado para a revisão %s"
 
-msgid "track a line of development with movable markers"
-msgstr "rastreia uma linha de desenvolvimento com marcadores móveis"
-
-msgid ""
-"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, the\n"
-"bookmark shifts to the new changeset."
-msgstr ""
-"Marcadores são ponteiros locais móveis para revisões. Todo\n"
-"marcador aponta para uma revisão identificada por seu hash. Se você\n"
-"consolidar uma revisão que se baseie em uma revisão que contenha um\n"
-"marcador, o marcador é transferido para a nova revisão."
-
-msgid ""
-"It is possible to use bookmark names in every revision lookup (e.g.\n"
-":hg:`merge`, :hg:`update`)."
-msgstr ""
-"É possível utilizar nomes de marcadores em toda referência a revisões\n"
-"(por exemplo :hg:`merge`, :hg:`update`)."
-
-msgid ""
-"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 configuration file::"
-msgstr ""
-"Por padrão, quando vários marcadores apontam para a mesma revisão,\n"
-"todos serão movidos para a frente juntos. É possível obter um\n"
-"funcionamento mais semelhante ao do sistema git com a adição das\n"
-"seguintes opções de configuração ao seu arquivo de configuração::"
-
-msgid ""
-"  [bookmarks]\n"
-"  track.current = True"
-msgstr ""
-"  [bookmarks]\n"
-"  track.current = True"
-
-msgid ""
-"This will cause Mercurial to track the bookmark that you are currently\n"
-"using, and only update it. This is similar to git's approach to\n"
-"branching.\n"
-msgstr ""
-"Isto fará com que o Mercurial rastreie o marcador que você estiver\n"
-"usando no momento, e apenas o atualize. Isto é semelhante à abordagem\n"
-"do git para ramos.\n"
-
-msgid ""
-"    Bookmarks are pointers to certain commits that move when\n"
-"    committing. Bookmarks are local. They can be renamed, copied and\n"
-"    deleted. It is possible to use bookmark names in :hg:`merge` and\n"
-"    :hg:`update` to merge and update respectively to a given bookmark."
-msgstr ""
-"    Marcadores são ponteiros para certas consolidações que se movem\n"
-"    quando novas consolidações forem feitas. Marcadores são locais.\n"
-"    Eles podem ser renomeados, copiados e removidos. É possível usar\n"
-"    o nome de um marcador em :hg:`merge` e :hg:`update` para\n"
-"    respectivamente mesclar ou atualizar para um marcador dado."
-
-msgid ""
-"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
-"    directory's parent revision with the given name. If you specify\n"
-"    a revision using -r REV (where REV may be an existing bookmark),\n"
-"    the bookmark is assigned to that revision."
-msgstr ""
-"    Você pode usar :hg:`bookmark NOME` para definir um marcador na\n"
-"    revisão pai do diretório de trabalho com o nome informado. Se você\n"
-"    especificar a revisão usando -r REV (onde REV pode ser o nome de\n"
-"    um marcador existente), o marcador é apontado para tal revisão."
-
-msgid ""
-"    Bookmarks can be pushed and pulled between repositories (see :hg:`help\n"
-"    push` and :hg:`help pull`). This requires the bookmark extension to be\n"
-"    enabled for both the local and remote repositories.\n"
-"    "
-msgstr ""
-"    Marcadores podem ser transferidos entre repositórios usando push\n"
-"    e pull (veja :hg:`help push` e :hg:`help pull`). Isto requer que\n"
-"    a extensão bookmark esteja habilitada tanto no repositório local\n"
-"    como no remoto.\n"
-"    "
-
-msgid "a bookmark of this name does not exist"
-msgstr "não existe um marcador com esse nome"
-
-msgid "a bookmark of the same name already exists"
-msgstr "já existe um marcador com o mesmo nome"
-
-msgid "new bookmark name required"
-msgstr "requerido nome do novo marcador"
-
-msgid "bookmark name required"
-msgstr "requerido nome do marcador"
-
-msgid "bookmark name cannot contain newlines"
-msgstr "o nome do marcador não pode conter novas linhas"
-
-msgid "bookmark names cannot consist entirely of whitespace"
-msgstr "nomes de marcadores não podem conter apenas espaços em branco"
-
-msgid "a bookmark cannot have the name of an existing branch"
-msgstr "um marcador não pode ter o mesmo nome de um ramo existente"
-
-msgid "no bookmarks set\n"
-msgstr "nenhum marcador definido\n"
-
-#, python-format
-msgid "updating bookmark %s\n"
-msgstr "atualizando marcador %s\n"
-
-#, python-format
-msgid "not updating divergent bookmark %s\n"
-msgstr "marcador divergente %s não atualizado\n"
-
-#, python-format
-msgid "updating bookmark %s failed!\n"
-msgstr "a atualização do marcador %s falhou!\n"
-
-#, python-format
-msgid "remote bookmark %s not found!"
-msgstr "marcador remoto %s não encontrado!"
-
-#, python-format
-msgid "importing bookmark %s\n"
-msgstr "importando marcador %s\n"
-
-#, python-format
-msgid "exporting bookmark %s\n"
-msgstr "exportando marcador %s\n"
-
-#, python-format
-msgid "deleting remote bookmark %s\n"
-msgstr "apagando marcador remoto %s\n"
-
-#, python-format
-msgid "bookmark %s does not exist on the local or remote repository!\n"
-msgstr "o marcador %s não existe nem no repositório local nem no remoto!\n"
-
-msgid "searching for changed bookmarks\n"
-msgstr "procurando por marcadores modificados\n"
-
-msgid "no changed bookmarks found\n"
-msgstr "nenhum marcador modificado encontrado\n"
-
-#, python-format
-msgid "comparing with %s\n"
-msgstr "comparando com %s\n"
-
-msgid "bookmark to import"
-msgstr "marcador a ser importado"
-
-msgid "BOOKMARK"
-msgstr "MARCADOR"
-
-msgid "bookmark to export"
-msgstr "marcador a ser exportado"
-
-msgid "compare bookmark"
-msgstr "compara marcador"
-
-msgid ""
-"``bookmark([name])``\n"
-"    The named bookmark or all bookmarks."
-msgstr ""
-"``bookmark([nome])``\n"
-"    O marcador chamado nome, ou todos os marcadores."
-
-#. i18n: "bookmark" is a keyword
-msgid "bookmark takes one or no arguments"
-msgstr "bookmark requer um ou nenhum argumento"
-
-#. i18n: "bookmark" is a keyword
-msgid "the argument to bookmark must be a string"
-msgstr "o argumento para o comando bookmark deve ser uma string"
-
-msgid "force"
-msgstr "forçar"
-
-msgid "REV"
-msgstr "REV"
-
-msgid "revision"
-msgstr "revisão"
-
-msgid "delete a given bookmark"
-msgstr "apaga o marcador pedido"
-
-msgid "NAME"
-msgstr "NOME"
-
-msgid "rename a given bookmark"
-msgstr "renomeia um marcador"
-
-msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
-msgstr "hg bookmarks [-f] [-d] [-m NOME] [-r REV] [NOME]"
-
 msgid "hooks for integrating with the Bugzilla bug tracker"
 msgstr "ganchos para integração com o bug tracker Bugzilla"
 
@@ -987,6 +790,9 @@
 "    de trabalho ou da passada em --rev) será impressa.\n"
 "    "
 
+msgid "REV"
+msgstr "REV"
+
 msgid "show children of the specified revision"
 msgstr "exibe o filho de uma revisão especifica"
 
@@ -1363,13 +1169,13 @@
 "                  suportada apenas pela origem Mercurial."
 
 msgid ""
-"    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::"
-msgstr ""
-"    Se não for dado o <REVMAP>, ele será posto em um local padrão\n"
-"    (<destino>/.hg/shamap). O <REVMAP> é um simples arquivo texto\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\n"
+"    text file that maps each source commit ID to the destination ID\n"
+"    for that revision, like so::"
+msgstr ""
+"    Se não for dado o ``REVMAP``, ele será posto em um local padrão\n"
+"    (``<destino>/.hg/shamap``). O ``REVMAP`` é um simples arquivo texto\n"
 "    que mapeia cada ID de commit da origem para o ID de destino para\n"
 "    aquela revisão, da seguinte forma::"
 
@@ -1526,25 +1332,38 @@
 "    ''''''''''''''''"
 
 msgid ""
-"    --config convert.hg.ignoreerrors=False    (boolean)\n"
-"        ignore integrity errors when reading. Use it to fix Mercurial\n"
-"        repositories with missing revlogs, by converting from and to\n"
-"        Mercurial.\n"
-"    --config convert.hg.saverev=False         (boolean)\n"
-"        store original revision ID in changeset (forces target IDs to\n"
-"        change)\n"
-"    --config convert.hg.startrev=0            (hg revision identifier)\n"
-"        convert start revision and its descendants"
-msgstr ""
-"    --config convert.hg.ignoreerrors=False    (booleana)\n"
-"        ignora erros de integridade ao ler. Use-a para corrigir\n"
-"        repositórios do Mercurial com revlogs faltando, através da\n"
-"        conversão para outro repositório do Mercurial.\n"
-"    --config convert.hg.saverev=False         (booleana)\n"
-"        armazena o identificador de revisão original na revisão de destino\n"
-"        (isso força o identificador do destino a mudar)\n"
-"    --config convert.hg.startrev=0            (id de revisão do hg)\n"
-"        converte a revisão inicial e seus descendentes"
+"    The Mercurial source recognizes the following configuration\n"
+"    options, which you can set on the command line with ``--config``:"
+msgstr ""
+"    A origem Mercurial reconhece as seguintes opções de configuração,\n"
+"    que podem ser definidas na linha de comando usando ``--config``:"
+
+msgid ""
+"    :convert.hg.ignoreerrors: ignore integrity errors when reading.\n"
+"        Use it to fix Mercurial repositories with missing revlogs, by\n"
+"        converting from and to Mercurial. Default is False."
+msgstr ""
+"    :convert.hg.ignoreerrors: ignora erros de integridade na leitura.\n"
+"        Use-a para corrigir repositórios do Mercurial com revlogs faltando,\n"
+"        através da conversão para para outro repositório do Mercurial.\n"
+"        O valor padrão é False."
+
+msgid ""
+"    :convert.hg.saverev: store original revision ID in changeset\n"
+"        (forces target IDs to change). It takes and boolean argument\n"
+"        and defaults to False."
+msgstr ""
+"    :convert.hg.saverev: armazena o identificador da revisão de origem\n"
+"        (forçando a mudança de IDs de etiquetas). Esta opção recebe um\n"
+"        argumento booleano, e seu valor padrão é False."
+
+msgid ""
+"    :convert.hg.startrev: convert start revision and its descendants.\n"
+"        It takes a hg revision identifier and defaults to 0."
+msgstr ""
+"    :convert.hg.startrev: converte a revisão inicial especificada e seus\n"
+"        descendentes. Recebe um identificador de revisão do Mercurial; seu\n"
+"        valor padrão é 0."
 
 msgid ""
 "    CVS Source\n"
@@ -1557,16 +1376,16 @@
 "    CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n"
 "    to indicate the starting point of what will be converted. Direct\n"
 "    access to the repository files is not needed, unless of course the\n"
-"    repository is :local:. The conversion uses the top level directory\n"
-"    in the sandbox to find the CVS repository, and then uses CVS rlog\n"
-"    commands to find files to convert. This means that unless a\n"
-"    filemap is given, all files under the starting directory will be\n"
+"    repository is ``:local:``. The conversion uses the top level\n"
+"    directory in the sandbox to find the CVS repository, and then uses\n"
+"    CVS rlog commands to find files to convert. This means that unless\n"
+"    a filemap is given, all files under the starting directory will be\n"
 "    converted, and that any directory reorganization in the CVS\n"
 "    sandbox is ignored."
 msgstr ""
 "    A origem CVS usará uma cópia local do CVS para indicar o ponto\n"
 "    inicial do que será convertido. Não é necessário acesso direto ao\n"
-"    repositório, a não ser é claro que o repositório seja :local:. A\n"
+"    repositório, a não ser é claro que o repositório seja ``:local:``. A\n"
 "    conversão usa o diretório do topo da cópia local para encontrar\n"
 "    o repositório CVS, e em seguida o comando CVS rlog para encontrar\n"
 "    os arquivos a serem convertidos. Isto quer dizer que a não ser\n"
@@ -1574,68 +1393,79 @@
 "    início serão convertidos, e que qualquer reorganização na cópia\n"
 "    local do CVS é ignorada."
 
-msgid "    The options shown are the defaults."
-msgstr "    As opções exibidas são os valores padrão."
-
-msgid ""
-"    --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"
-"    --config hook.cvslog\n"
-"        Specify a Python function to be called at the end of gathering\n"
-"        the CVS log. The function is passed a list with the log entries,\n"
-"        and can modify the entries in-place, or add or delete them.\n"
-"    --config hook.cvschangesets\n"
-"        Specify a Python function to be called after the changesets\n"
-"        are calculated from the the CVS log. The function is passed\n"
-"        a list with the changeset entries, and can modify the changesets\n"
-"        in-place, or add or delete them."
-msgstr ""
-"    --config convert.cvsps.cache=True         (booleana)\n"
-"        Defina como False para desabilitar o cache do log\n"
-"        remoto, para teste ou depuração.\n"
-"    --config convert.cvsps.fuzz=60            (inteiro)\n"
-"        Especifica o tempo máximo (em segundos) permitido entre\n"
-"        commits com usuário e mensagem de log em uma única\n"
-"        revisão. Se arquivos muito grandes forem armazenados\n"
-"        como parte de uma revisão, o padrão pode não ser\n"
-"        suficiente.\n"
-"    --config convert.cvsps.mergeto='{{mergetobranch ([-\\w]+)}}'\n"
-"        Especifica uma expressão regular com a qual mensagens de\n"
-"        log de commit são verificadas. Se um casamento for\n"
+msgid "    The following options can be used with ``--config``:"
+msgstr "    As seguintes opções podem ser usadas com ``--config``:"
+
+msgid ""
+"    :convert.cvsps.cache: Set to False to disable remote log caching,\n"
+"        for testing and debugging purposes. Default is True."
+msgstr ""
+"    :convert.cvsps.cache: Especifique False para desabilitar o cache do\n"
+"        log remoto, para teste ou depuração. O valor padrão é True."
+
+msgid ""
+"    :convert.cvsps.fuzz: Specify the maximum time (in seconds) that is\n"
+"        allowed between commits with identical user and log message in\n"
+"        a single changeset. When very large files were checked in as\n"
+"        part of a changeset then the default may not be long enough.\n"
+"        The default is 60."
+msgstr ""
+"    :convert.cvsps.fuzz: Especifica o tempo máximo (em segundos)\n"
+"        permitido entre commits com usuário e mensagem de log idênticos\n"
+"        que devam ser considerados como uma única revisão. Se arquivos\n"
+"        muito grandes forem armazenados como parte de uma revisão, o\n"
+"        padrão pode não ser suficiente. O valor padrão é 60."
+
+msgid ""
+"    :convert.cvsps.mergeto: Specify a regular expression to which\n"
+"        commit log messages are matched. If a match occurs, then the\n"
+"        conversion process will insert a dummy revision merging the\n"
+"        branch on which this log message occurs to the branch\n"
+"        indicated in the regex. Default is ``{{mergetobranch\n"
+"        ([-\\w]+)}}``"
+msgstr ""
+"    :convert.cvsps.mergeto: Especifica uma expressão regular com a qual\n"
+"        mensagens de log de commit são verificadas. Se um casamento for\n"
 "        encontrado, a conversão inserirá uma revisão artificial\n"
 "        mesclando o ramo onde essa mensagem de log aparece ao\n"
-"        ramo indicado na expressão regular.\n"
-"    --config convert.cvsps.mergefrom='{{mergefrombranch ([-\\w]+)}}'\n"
-"        Especifica uma expressão regular com a qual mensagens de\n"
-"        log de commit são verificadas. Se um casamento for\n"
+"        ramo indicado na expressão regular. O valor padrão é:\n"
+"        ``{{mergetobranch ([-\\w]+)}}``"
+
+msgid ""
+"    :convert.cvsps.mergefrom: Specify a regular expression to which\n"
+"        commit log messages are matched. If a match occurs, then the\n"
+"        conversion process will add the most recent revision on the\n"
+"        branch indicated in the regex as the second parent of the\n"
+"        changeset. Default is ``{{mergefrombranch ([-\\w]+)}}``"
+msgstr ""
+"    :convert.cvsps.mergefrom: Especifica uma expressão regular com a qual\n"
+"        mensagens de log de commit são verificadas. Se um casamento for\n"
 "        encontrado, a conversão inserirá a revisão mais recente\n"
 "        do ramo indicado na expressão regular como segundo pai da\n"
-"        revisão.\n"
-"    --config hook.cvslog\n"
-"        Especifica uma função Python a ser chamada ao término da coleta\n"
-"        do log do CVS. Essa função recebe uma lista com as entradas do log,\n"
-"        e pode modificar, adicionar ou remover entradas.\n"
-"    --config hook.cvschangesets\n"
-"        Especifica uma função Python a ser chamada após os conjuntos de\n"
-"        mudanças serem calculados a partir do log do CVS. Essa função\n"
-"        recebe uma lista com as entradas do conjunto de mudanças, e pode\n"
-"        modificar, adicionar ou remover suas entradas."
+"        revisão O valor padrão é:\n"
+"        ``{{mergefrombranch ([-\\w]+)}}``"
+
+msgid ""
+"    :hook.cvslog: Specify a Python function to be called at the end of\n"
+"        gathering the CVS log. The function is passed a list with the\n"
+"        log entries, and can modify the entries in-place, or add or\n"
+"        delete them."
+msgstr ""
+"    :hook.cvslog: Especifica uma função Python a ser chamada ao término\n"
+"        da coleta do log do CVS. Essa função recebe uma lista com as\n"
+"        entradas do log, e pode modificar, adicionar ou remover entradas."
+
+msgid ""
+"    :hook.cvschangesets: Specify a Python function to be called after\n"
+"        the changesets are calculated from the the CVS log. The\n"
+"        function is passed a list with the changeset entries, and can\n"
+"        modify the changesets in-place, or add or delete them."
+msgstr ""
+"    :hook.cvschangesets: Especifica uma função Python a ser chamada\n"
+"        após os conjuntos de mudanças serem calculados a partir do\n"
+"        log do CVS. Essa função recebe uma lista com as entradas do\n"
+"        conjunto de mudanças, e pode modificar, adicionar ou\n"
+"        remover suas entradas."
 
 msgid ""
 "    An additional \"debugcvsps\" Mercurial command allows the builtin\n"
@@ -1657,42 +1487,51 @@
 
 msgid ""
 "    Subversion source detects classical trunk/branches/tags layouts.\n"
-"    By default, the supplied \"svn://repo/path/\" source URL is\n"
-"    converted as a single branch. If \"svn://repo/path/trunk\" exists it\n"
-"    replaces the default branch. If \"svn://repo/path/branches\" exists,\n"
-"    its subdirectories are listed as possible branches. If\n"
-"    \"svn://repo/path/tags\" exists, it is looked for tags referencing\n"
-"    converted branches. Default \"trunk\", \"branches\" and \"tags\" values\n"
-"    can be overridden with following options. Set them to paths\n"
+"    By default, the supplied ``svn://repo/path/`` source URL is\n"
+"    converted as a single branch. If ``svn://repo/path/trunk`` exists\n"
+"    it replaces the default branch. If ``svn://repo/path/branches``\n"
+"    exists, its subdirectories are listed as possible branches. If\n"
+"    ``svn://repo/path/tags`` exists, it is looked for tags referencing\n"
+"    converted branches. Default ``trunk``, ``branches`` and ``tags``\n"
+"    values can be overridden with following options. Set them to paths\n"
 "    relative to the source URL, or leave them blank to disable auto\n"
 "    detection."
 msgstr ""
 "    A origem Subversion detecta a organização clássica\n"
 "    trunk/branches/tags . Por padrão, a URL de origem\n"
-"    \"svn://repo/path/\" fornecida é convertida como um único ramo.\n"
-"    Se \"svn://repo/path/trunk\" existir, irá substituir o ramo\n"
-"    default. Se \"svn://repo/path/branches\" existir, seus\n"
+"    ``svn://repo/path/`` fornecida é convertida como um único ramo.\n"
+"    Se ``svn://repo/path/trunk`` existir, irá substituir o ramo\n"
+"    default. Se ``svn://repo/path/branches`` existir, seus\n"
 "    subdiretórios serão listados como possíveis ramos. Se\n"
-"    \"svn://repo/path/tags\" existir, será consultado para tags\n"
-"    referenciando ramos convertidos. Os valores padrão \"trunk\",\n"
-"     \"branches\" e \"tags\" podem ser sobrepostos pelas seguintes\n"
+"    ``svn://repo/path/tags`` existir, será consultado para tags\n"
+"    referenciando ramos convertidos. Os valores padrão ``trunk``,\n"
+"    ``branches`` e ``tags`` podem ser sobrepostos pelas seguintes\n"
 "    opções. Defina-os como caminhos relativos à URL de origem, ou\n"
 "    deixe-os em branco para desabilitar a auto-detecção."
 
-msgid ""
-"    --config convert.svn.branches=branches    (directory name)\n"
-"        specify the directory containing branches\n"
-"    --config convert.svn.tags=tags            (directory name)\n"
-"        specify the directory containing tags\n"
-"    --config convert.svn.trunk=trunk          (directory name)\n"
-"        specify the name of the trunk branch"
-msgstr ""
-"    --config convert.svn.branches=branches    (nome de diretório)\n"
-"        especifica o diretório contendo ramos\n"
-"    --config convert.svn.tags=tags            (nome de diretório)\n"
-"        especifica o diretório contendo tags\n"
-"    --config convert.svn.trunk=trunk          (nome de diretório)\n"
-"        especifica o nome do ramo trunk"
+msgid "    The following options can be set with ``--config``:"
+msgstr "    As seguintes opções podem ser definidas com ``--config``:"
+
+msgid ""
+"    :convert.svn.branches: specify the directory containing branches.\n"
+"        The default is ``branches``."
+msgstr ""
+"    :convert.svn.branches: especifica o diretório que contém ramos.\n"
+"        O valor padrão é ``branches``."
+
+msgid ""
+"    :convert.svn.tags: specify the directory containing tags. The\n"
+"        default is ``tags``."
+msgstr ""
+"    :convert.svn.tags: especifica o diretório que contém tags.\n"
+"        O valor padrão é ``tags``."
+
+msgid ""
+"    :convert.svn.trunk: specify the name of the trunk branch. The\n"
+"        default is ``trunk``."
+msgstr ""
+"    :convert.svn.trunk: especifica o nome do ramo trunk.\n"
+"        O valor padrão é ``trunk``."
 
 msgid ""
 "    Source history can be retrieved starting at a specific revision,\n"
@@ -1704,11 +1543,11 @@
 "    conversões de um único ramo são suportadas."
 
 msgid ""
-"    --config convert.svn.startrev=0           (svn revision number)\n"
-"        specify start Subversion revision."
-msgstr ""
-"    --config convert.svn.startrev=0           (número de revisão svn)\n"
-"        especifica a revisão inicial do Subversion."
+"    :convert.svn.startrev: specify start Subversion revision number.\n"
+"        The default is 0."
+msgstr ""
+"    :convert.svn.startrev: especifica a revisão inicial do Subversion.\n"
+"        O valor padrão é 0."
 
 msgid ""
 "    Perforce Source\n"
@@ -1723,7 +1562,7 @@
 "    source to a flat Mercurial repository, ignoring labels, branches\n"
 "    and integrations. Note that when a depot path is given you then\n"
 "    usually should specify a target directory, because otherwise the\n"
-"    target may be named ...-hg."
+"    target may be named ``...-hg``."
 msgstr ""
 "    O importador Perforce (P4) pode receber um caminho de depot p4 ou\n"
 "    uma especificação de cliente como origem. Ele irá converter todos\n"
@@ -1731,21 +1570,21 @@
 "    ignorando labels, branches e integrações. Note que quando é dado\n"
 "    um caminho de depot você precisa tipicamente especificar um\n"
 "    diretório de destino, caso contrário o destino pode ser chamado\n"
-"    ...-hg."
+"    ``...-hg``."
 
 msgid ""
 "    It is possible to limit the amount of source history to be\n"
-"    converted by specifying an initial Perforce revision."
+"    converted by specifying an initial Perforce revision:"
 msgstr ""
 "    É possível limitar a quantidade de histórico de origem a ser\n"
-"    convertida especificando uma revisão inicial do Perforce."
-
-msgid ""
-"    --config convert.p4.startrev=0            (perforce changelist number)\n"
-"        specify initial Perforce revision."
-msgstr ""
-"    --config convert.p4.startrev=0            (número de changelist p4)\n"
-"        especifica a revisão inicial do Perforce."
+"    convertida especificando uma revisão inicial do Perforce:"
+
+msgid ""
+"    :convert.p4.startrev: specify initial Perforce revision (a\n"
+"        Perforce changelist number)."
+msgstr ""
+"    :convert.p4.startrev: especifica a revisão inicial do Perforce\n"
+"        (um número de changelist do Perforce)."
 
 msgid ""
 "    Mercurial Destination\n"
@@ -1754,23 +1593,31 @@
 "    Destino Mercurial\n"
 "    '''''''''''''''''"
 
-msgid ""
-"    --config convert.hg.clonebranches=False   (boolean)\n"
-"        dispatch source branches in separate clones.\n"
-"    --config convert.hg.tagsbranch=default    (branch name)\n"
-"        tag revisions branch name\n"
-"    --config convert.hg.usebranchnames=True   (boolean)\n"
-"        preserve branch names"
-msgstr ""
-"    --config convert.hg.clonebranches=False   (booleana)\n"
-"        separa ramos da origem em diferentes clones.\n"
-"    --config convert.hg.tagsbranch=default    (nome de ramo)\n"
-"        nome do ramo para revisões de etiqueta\n"
-"    --config convert.hg.usebranchnames=True   (booleana)\n"
-"        preserva nomes de ramo"
-
-msgid "    "
-msgstr "    "
+msgid "    The following options are supported:"
+msgstr "    As seguintes opções são suportadas:"
+
+msgid ""
+"    :convert.hg.clonebranches: dispatch source branches in separate\n"
+"        clones. The default is False."
+msgstr ""
+"    :convert.hg.clonebranches: separa ramos da origem em diferentes clones.\n"
+"        O padrão é False."
+
+msgid ""
+"    :convert.hg.tagsbranch: branch name for tag revisions, defaults to\n"
+"        ``default``."
+msgstr ""
+"    :convert.hg.tagsbranch: nome do ramo para revisões de etiqueta. O valor\n"
+"        padrão é ``default``."
+
+msgid ""
+"    :convert.hg.usebranchnames: preserve branch names. The default is\n"
+"        True.\n"
+"    "
+msgstr ""
+"    :convert.hg.usebranchnames: preserva nomes de ramo. O valor\n"
+"        padrão é True.\n"
+"    "
 
 msgid "create changeset information from CVS"
 msgstr "cria uma informação de revisão do CVS"
@@ -1922,6 +1769,10 @@
 msgstr "convert: %s\n"
 
 #, python-format
+msgid "%s\n"
+msgstr "%s\n"
+
+#, python-format
 msgid "%s: unknown repository type"
 msgstr "%s: tipo de repositório desconhecido"
 
@@ -2227,8 +2078,8 @@
 msgid "%s does not look like a Subversion repository"
 msgstr "%s não parece ser um repositório do Subversion"
 
-msgid "Subversion python bindings could not be loaded"
-msgstr "Os módulos Python para o Subversion não puderam ser carregados"
+msgid "Could not load Subversion python bindings"
+msgstr "Não foi possível carregar os módulos python do Subversion"
 
 #, python-format
 msgid "Subversion python bindings %d.%d found, 1.4 or later required"
@@ -2324,15 +2175,15 @@
 
 msgid ""
 "The extension reads its configuration from a versioned ``.hgeol``\n"
-"configuration file every time you run an ``hg`` command. The\n"
+"configuration file found in the root of the working copy. The\n"
 "``.hgeol`` file use the same syntax as all other Mercurial\n"
 "configuration files. It uses two sections, ``[patterns]`` and\n"
 "``[repository]``."
 msgstr ""
 "A extensão lê sua configuração de um arquivo versionado chamado\n"
-"``.hgeol`` cada vez que você executar um comando ``hg``. O arquivo\n"
+"``.hgeol`` localizado no raiz da cópia de trabalho. O arquivo\n"
 "``.hgeol`` usa a mesma sintaxe que outros arquivos de configuração\n"
-"do Mercurial. Ele usa duas seções ``[patterns]`` e ``[repository]``."
+"do Mercurial. Ele usa duas seções, ``[patterns]`` e ``[repository]``."
 
 msgid ""
 "The ``[patterns]`` section specifies how line endings should be\n"
@@ -2462,16 +2313,31 @@
 "  quebras de linha seja intencional."
 
 msgid ""
+"The extension provides ``cleverencode:`` and ``cleverdecode:`` filters\n"
+"like the deprecated win32text extension does. This means that you can\n"
+"disable win32text and enable eol and your filters will still work. You\n"
+"only need to these filters until you have prepared a ``.hgeol`` file."
+msgstr ""
+"A extensão fornece os filtros ``cleverencode:`` e ``cleverdecode:``, para\n"
+"compatibilidade com a extensão obsoleta win32text. Isso quer dizer que,\n"
+"ao desabilitar a extensão win32text e habilitar a eol, seus filtros ainda\n"
+"irão funcionar. Você só precisará desses filtros até preparar um arquivo\n"
+"``.hgeol``."
+
+msgid ""
 "The ``win32text.forbid*`` hooks provided by the win32text extension\n"
 "have been unified into a single hook named ``eol.hook``. The hook will\n"
 "lookup the expected line endings from the ``.hgeol`` file, which means\n"
-"you must migrate to a ``.hgeol`` file first before using the hook."
+"you must migrate to a ``.hgeol`` file first before using the hook.\n"
+"Remember to enable the eol extension in the repository where you\n"
+"install the hook."
 msgstr ""
 "Os ganchos ``win32text.forbid*`` fornecidos pela extensão win32text\n"
 "foram unificados em um único gancho chamado ``eol.hook``. Esse\n"
 "gancho procura pela configuração de quebra de linha no arquivo\n"
 "``.hgeol``, de modo que você precisa migrar para um arquivo\n"
-"``.hgeol`` para poder usar o gancho."
+"``.hgeol`` para poder usar o gancho. Lembre-se de habilitar a\n"
+"extensão eol no repositório onde você tiver instalado o gancho."
 
 msgid ""
 "See :hg:`help patterns` for more information about the glob patterns\n"
@@ -2488,6 +2354,10 @@
 msgid "%s should not have LF line endings"
 msgstr "%s não deve ter quebras de linha LF"
 
+#, python-format
+msgid "warning: ignoring .hgeol file due to parse error at %s: %s\n"
+msgstr "aviso: arquivo .hgeol ignorado por erro de leitura em %s: %s\n"
+
 msgid "the eol extension is incompatible with the win32text extension"
 msgstr "a extensão eol é incompatível com a extensão win32text"
 
@@ -2679,6 +2549,9 @@
 msgid "pass option to comparison program"
 msgstr "passa opções para o programa de comparação"
 
+msgid "revision"
+msgstr "revisão"
+
 msgid "change made by revision"
 msgstr "mudança feita pela revisão"
 
@@ -3504,13 +3377,12 @@
 "suas mudanças na configuração."
 
 msgid ""
-"Before changing/disabling active keywords, run :hg:`kwshrink` to avoid\n"
-"the risk of inadvertently storing expanded keywords in the change\n"
-"history."
-msgstr ""
-"Antes de mudar ou desabilitar palavras chave ativas, execute\n"
-":hg:`kwshrink` para evitar o risco de inadvertidamente guardar no\n"
-"histórico palavras chave expandidas."
+"Before changing/disabling active keywords, you must run :hg:`kwshrink`\n"
+"to avoid storing expanded keywords in the change history."
+msgstr ""
+"Antes de mudar ou desabilitar palavras chave ativas, você deve executar\n"
+":hg:`kwshrink` para evitar o armazenamento de palavras chave expandidas\n"
+"no histórico."
 
 msgid ""
 "To force expansion after enabling it, or a configuration change, run\n"
@@ -3586,15 +3458,25 @@
 msgid "\textending current template maps\n"
 msgstr "\texpandindo mapas de modelo atuais\n"
 
-msgid "\toverriding default template maps\n"
-msgstr "\tsobrepondo mapas de modelo padrão\n"
+msgid "\toverriding default svn keywordset\n"
+msgstr "\tsobrepondo keywordset padrão do svn\n"
+
+msgid "\toverriding default cvs keywordset\n"
+msgstr "\tsobrepondo keywordset padrão do cvs\n"
 
 msgid ""
 "\n"
-"\tconfiguration using default keyword template maps\n"
+"\tconfiguration using default svn keywordset\n"
 msgstr ""
 "\n"
-"\tconfiguração usando mapas de modelo de palavras chave padrão\n"
+"\tconfiguração usando keywordset padrão do svn\n"
+
+msgid ""
+"\n"
+"\tconfiguration using default cvs keywordset\n"
+msgstr ""
+"\n"
+"\tconfiguração usando keywordset padrão do cvs\n"
 
 msgid "\tdisabling current template maps\n"
 msgstr "\tdesabilitando mapas de modelo atuais\n"
@@ -3687,12 +3569,8 @@
 msgid "revert expanded keywords in the working directory"
 msgstr "reverte palavras chave expandidas no diretório de trabalho"
 
-msgid ""
-"    Run before changing/disabling active keywords or if you experience\n"
-"    problems with :hg:`import` or :hg:`merge`."
-msgstr ""
-"    Execute antes de mudar ou desabilitar palavras chave ativas ou\n"
-"    se você tiver problemas com :hg:`import` ou :hg:`merge`."
+msgid "    Must be run before changing/disabling active keywords."
+msgstr "    Deve ser executado após mudar / desabilitar palavras chave ativas."
 
 msgid ""
 "    kwshrink refuses to run if given files contain local changes.\n"
@@ -3813,6 +3691,10 @@
 "pode criar outras filas independentes usando o comando :hg:`qqueue`.\n"
 
 #, python-format
+msgid "malformated mq status line: %s\n"
+msgstr "linha de status da mq malformada: %s\n"
+
+#, python-format
 msgid "mq.git option can be auto/keep/yes/no got %s"
 msgstr "a opção mq.git pode ser auto/keep/yes/no mas é %s"
 
@@ -3943,6 +3825,10 @@
 msgid "working directory revision is not qtip"
 msgstr "a revisão do diretório de trabalho não é a qtip"
 
+#, python-format
+msgid "uncommitted changes in subrepository %s"
+msgstr "mudanças não consolidadas no sub-repositório %s"
+
 msgid "local changes found, refresh first"
 msgstr "mudanças locais encontradas, você deve primeiro renovar"
 
@@ -3987,14 +3873,14 @@
 msgstr "nenhum patch na série\n"
 
 #, python-format
+msgid "qpush: %s is already at the top\n"
+msgstr "qpush: %s já está no topo\n"
+
+#, python-format
 msgid "cannot push to a previous patch: %s"
 msgstr "não se pode empilhar para um patch anterior: %s"
 
 #, python-format
-msgid "qpush: %s is already at the top\n"
-msgstr "qpush: %s já está no topo\n"
-
-#, python-format
 msgid "guarded by %r"
 msgstr "guardado por %r"
 
@@ -4011,6 +3897,16 @@
 msgid "patch series already fully applied\n"
 msgstr "série de patches já completamente aplicada\n"
 
+msgid "cannot use --exact and --move together"
+msgstr "não se pode usar --exact e --move ao mesmo tempo"
+
+msgid "cannot push --exact with applied patches"
+msgstr "não se pode fazer qpush usando --exact com patches aplicados"
+
+#, python-format
+msgid "%s does not have a parent recorded"
+msgstr "%s não possui um pai armazenado"
+
 msgid "please specify the patch to move"
 msgstr "por favor especifique o patch a ser movido"
 
@@ -4059,18 +3955,6 @@
 msgid "cannot refresh a revision with children"
 msgstr "não se pode renovar uma revisão com filhos"
 
-#, python-format
-msgid "warning: not refreshing %s\n"
-msgstr "aviso: %s não será atualizado\n"
-
-#, python-format
-msgid "warning: not adding %s\n"
-msgstr "aviso: %s não será adicionado\n"
-
-#, python-format
-msgid "warning: not removing %s\n"
-msgstr "aviso: %s não será removido\n"
-
 msgid "refresh interrupted while patch was popped! (revert --all, qpush to recover)\n"
 msgstr "renovação interrompida enquanto o patch foi desempilhado! (revert --all, qpush para recuperar)\n"
 
@@ -4918,7 +4802,7 @@
 
 #, python-format
 msgid "non-queue directory \"%s\" already exists"
-msgstr "o directory \"%s\", que não é uma fila de patches, já existe"
+msgstr "o diretório \"%s\", que não é uma fila de patches, já existe"
 
 msgid "use --create to create a new queue"
 msgstr "use --create para criar uma nova fila"
@@ -5035,6 +4919,9 @@
 msgid "import file in patch directory"
 msgstr "importa um arquivo do diretório de patches"
 
+msgid "NAME"
+msgstr "NOME"
+
 msgid "name of patch file"
 msgstr "nome do arquivo de patch"
 
@@ -5099,7 +4986,10 @@
 msgstr "hg qpop [-a] [-f] [PATCH | ÍNDICE]"
 
 msgid "apply on top of local changes"
-msgstr "aplica por cima das nudanças locais"
+msgstr "aplica por cima das mudanças locais"
+
+msgid "apply the target patch to its recorded parent"
+msgstr "aplica o patch alvo em seu pai armazenado"
 
 msgid "list patch name in commit text"
 msgstr "lista o nome do patch no texto de consolidação"
@@ -5729,6 +5619,13 @@
 "    para que você possa verificar se tudo está certo."
 
 msgid ""
+"    In case email sending fails, you will find a backup of your series\n"
+"    introductory message in ``.hg/last-email.txt``."
+msgstr ""
+"    Em caso de falha de envio de emails, uma cópia de segurança de sua\n"
+"    mensagem introdutória da séria será gravada em ``.hg/last-email.txt``."
+
+msgid ""
 "      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"
@@ -5791,6 +5688,10 @@
 "    seu hgrc. Veja a seção [email] em hgrc(5) para mais detalhes.\n"
 "    "
 
+#, python-format
+msgid "comparing with %s\n"
+msgstr "comparando com %s\n"
+
 msgid "no changes found\n"
 msgstr "nenhuma alteração encontrada\n"
 
@@ -5811,7 +5712,7 @@
 "Write the introductory message for the patch series."
 msgstr ""
 "\n"
-"Escreve a mensagem introdutória para a série de patches."
+"Escreva a mensagem introdutória para a série de patches."
 
 #, python-format
 msgid "This patch series consists of %d patches."
@@ -5947,7 +5848,7 @@
 "  [progress]\n"
 "  delay = 3 # number of seconds (float) before showing the progress bar\n"
 "  refresh = 0.1 # time in seconds between refreshes of the progress bar\n"
-"  format = topic bar number # format of the progress bar\n"
+"  format = topic bar number estimate # format of the progress bar\n"
 "  width = <none> # if set, the maximum width of the progress information\n"
 "                 # (that is, min(width, term width) will be used)\n"
 "  clear-complete = True # clear the progress bar after it's done\n"
@@ -5959,7 +5860,7 @@
 "  delay = 3 # número de segundos (float) antes que a barra seja mostrada\n"
 "  refresh = 0.1 # tempo em segundos entre atualizações da\n"
 "                # barra de progresso\n"
-"  format = topic bar number # formato da barra de progresso\n"
+"  format = topic bar number estimate # formato da barra de progresso\n"
 "  width = <none> # se definido, será a largura máxima da informação de\n"
 "                 # progresso (isto é, min(largura, largura do terminal)\n"
 "                 # será usada)\n"
@@ -5969,17 +5870,49 @@
 "                     # a não ser que 'disable' seja 'true'"
 
 msgid ""
-"Valid entries for the format field are topic, bar, number, unit, and\n"
-"item. item defaults to the last 20 characters of the item, but this\n"
-"can be changed by adding either ``-<num>`` which would take the last\n"
-"num characters, or ``+<num>`` for the first num characters.\n"
+"Valid entries for the format field are topic, bar, number, unit,\n"
+"estimate, and item. item defaults to the last 20 characters of the\n"
+"item, but this can be changed by adding either ``-<num>`` which would\n"
+"take the last num characters, or ``+<num>`` for the first num\n"
+"characters.\n"
 msgstr ""
 "Entradas válidas para o campo format são topic (tópico), bar (barra),\n"
-"number (número), unit (unidade) e item (item). item por padrão são os\n"
+"number (número), unit (unidade), estimate (estimativa) e item (item).\n"
+"item por padrão são os\n"
 "últimos caracteres do item, mas isto pode ser modificado adicionando ou\n"
 "``-<num>``, que consideraria os últimos num caracteres, ou ``+<num>``\n"
 "para os primeiros num caracteres.\n"
 
+#. i18n: format XX seconds as "XXs"
+#, python-format
+msgid "%02ds"
+msgstr "%02ds"
+
+#. i18n: format X minutes and YY seconds as "XmYYs"
+#, python-format
+msgid "%dm%02ds"
+msgstr "%dm%02ds"
+
+#. i18n: format X hours and YY minutes as "XhYYm"
+#, python-format
+msgid "%dh%02dm"
+msgstr "%dh%02dm"
+
+#. i18n: format X days and YY hours as "XdYYh"
+#, python-format
+msgid "%dd%02dh"
+msgstr "%dd%02dh"
+
+#. i18n: format X weeks and YY days as "XwYYd"
+#, python-format
+msgid "%dw%02dd"
+msgstr "%dw%02dd"
+
+#. i18n: format X years and YY weeks as "XyYYw"
+#, python-format
+msgid "%dy%02dw"
+msgstr "%dy%02dw"
+
 msgid "command to delete untracked files from the working directory"
 msgstr "comando para apagar do diretório de trabalho arquivos não rastreados"
 
@@ -6423,8 +6356,8 @@
 msgid "running non-interactively, use commit instead"
 msgstr "não está executando interativamente, use commit"
 
-msgid "cannot partially commit a merge (use hg commit instead)"
-msgstr "não é possível consolidar parcialmente uma mesclagem (use hg commit)"
+msgid "cannot partially commit a merge (use \"hg commit\" instead)"
+msgstr "não é possível consolidar parcialmente uma mesclagem (use \"hg commit\")"
 
 msgid "no changes to record\n"
 msgstr "nenhuma mudança a ser gravada\n"
@@ -6930,15 +6863,6 @@
 msgid ""
 "- You should use single encoding in one repository.\n"
 "- If the repository path ends with 0x5c, .hg/hgrc cannot be read.\n"
-"- win32mbcs is not compatible with fixutf8 extention."
-msgstr ""
-"- Você deve usar uma única codificação por repositório.\n"
-"- Se o caminho do repositório for terminado por 0x5c, .hg/hgrc não poderá ser lido.\n"
-"- win32mbcs não é compatível com a extensão fixutf8."
-
-msgid ""
-"- You should use single encoding in one repository.\n"
-"- If the repository path ends with 0x5c, .hg/hgrc cannot be read.\n"
 "- win32mbcs is not compatible with fixutf8 extension."
 msgstr ""
 "- Você deve usar uma única codificação por repositório.\n"
@@ -7157,6 +7081,19 @@
 msgid "unknown archive type '%s'"
 msgstr "tipo de arquivo '%s' desconhecido"
 
+msgid "archiving"
+msgstr "empacotando"
+
+#, python-format
+msgid "bookmark '%s' contains illegal character"
+msgstr "o marcador '%s' contém um caractere ilegal"
+
+msgid "searching for changed bookmarks\n"
+msgstr "procurando por marcadores modificados\n"
+
+msgid "no changed bookmarks found\n"
+msgstr "nenhum marcador modificado encontrado\n"
+
 msgid "invalid changegroup"
 msgstr "changegroup inválido"
 
@@ -7171,8 +7108,12 @@
 msgstr "não é possível criar novo repositório de bundle"
 
 #, python-format
-msgid "premature EOF reading chunk (got %d bytes, expected %d)"
-msgstr "fim de arquivo prematuro lendo trecho (%d bytes obtidos, %d esperados)"
+msgid "stream ended unexpectedly (got %d bytes, expected %d)"
+msgstr "dados recebidos terminaram inesperadamente (%d bytes obtidos, %d esperados)"
+
+#, python-format
+msgid "invalid chunk length %d"
+msgstr "comprimento de trecho inválido %d"
 
 #, python-format
 msgid "%s: not a Mercurial bundle"
@@ -7297,6 +7238,10 @@
 msgstr "ramo:        %s\n"
 
 #, python-format
+msgid "bookmark:    %s\n"
+msgstr "marcador:    %s\n"
+
+#, python-format
 msgid "tag:         %s\n"
 msgstr "etiqueta:    %s\n"
 
@@ -7478,11 +7423,11 @@
 
 msgid ""
 "    New files are ignored if they match any of the patterns in\n"
-"    .hgignore. As with add, these changes take effect at the next\n"
+"    ``.hgignore``. As with add, these changes take effect at the next\n"
 "    commit."
 msgstr ""
 "    Novos arquivos são ignorados se casarem com qualquer dos padrões\n"
-"    em .hgignore. Assim como em add, estas mudanças fazem efeito na\n"
+"    em ``.hgignore.`` Assim como em add, estas mudanças fazem efeito na\n"
 "    próxima consolidação."
 
 msgid ""
@@ -7615,50 +7560,43 @@
 msgstr "anula o efeito de uma revisão anterior"
 
 msgid ""
-"    The backout command merges the reverse effect of the reverted\n"
-"    changeset into the working directory."
-msgstr ""
-"    O comando backout mescla o efeito reverso da revisão revertida\n"
-"    com o diretório de trabalho."
-
-msgid ""
-"    With the --merge option, it first commits the reverted changes\n"
-"    as a new changeset. This new changeset is a child of the reverted\n"
-"    changeset.\n"
-"    The --merge option remembers the parent of the working directory\n"
-"    before starting the backout, then merges the new head with that\n"
-"    changeset afterwards.\n"
-"    This will result in an explicit merge in the history."
-msgstr ""
-"    Com a opção --merge, em primeiro lugar as mudanças revertidas são\n"
-"    consolidadas como uma nova revisão. Esta nova revisão é uma filha\n"
-"    da revisão revertida.\n"
-"    A opção --merge lembra do pai do diretório de trabalho antes do\n"
-"    início da anulação, e mescla a nova cabeça com essa revisão\n"
-"    logo em seguida.\n"
-"    Isso resultará em uma mesclagem explícita gravada no histórico."
-
-msgid ""
-"    If you backout a changeset other than the original parent of the\n"
-"    working directory, the result of this merge is not committed,\n"
-"    as with a normal merge. Otherwise, no merge is needed and the\n"
-"    commit is automatic."
-msgstr ""
-"    Se você anular uma revisão diferente do pai original do diretório\n"
-"    de trabalho, o resultado dessa mesclagem não será consolidado,\n"
-"    como em uma mesclagem normal. Caso contrário, nenhuma mesclagem\n"
-"    será necessária e a consolidação será automática."
-
-msgid ""
-"    Note that the default behavior (without --merge) has changed in\n"
-"    version 1.7. To restore the previous default behavior, use\n"
-"    :hg:`backout --merge` and then :hg:`update --clean .` to get rid of\n"
-"    the ongoing merge."
-msgstr ""
-"    Note que o comportamento padrão (sem --merge) mudou na versão\n"
-"    1.7. Para obter o comportamento padrão anterior, use\n"
-"    :hg:`backout --merge` e em seguida :hg:`update --clean .` para\n"
-"    descartar a mesclagem em andamento."
+"    Prepare a new changeset with the effect of REV undone in the\n"
+"    current working directory."
+msgstr ""
+"    Prepara no diretório de trabalho atual uma nova revisão que desfaz\n"
+"    o efeito da revisão REV."
+
+msgid ""
+"    If REV is the parent of the working directory, then this new changeset\n"
+"    is committed automatically. Otherwise, hg needs to merge the\n"
+"    changes and the merged result is left uncommitted."
+msgstr ""
+"    Se REV for o pai do diretório de trabalho, a nova revisão será\n"
+"    consolidada automaticamente. Caso contrário, o Mercurial precisará\n"
+"    mesclar as mudanças, e o resultado da mesclagem deve ser consolidado\n"
+"    manualmente."
+
+msgid ""
+"    By default, the pending changeset will have one parent,\n"
+"    maintaining a linear history. With --merge, the pending changeset\n"
+"    will instead have two parents: the old parent of the working\n"
+"    directory and a new child of REV that simply undoes REV."
+msgstr ""
+"    Por padrão, a revisão pendente terá apenas um pai, mantendo assim\n"
+"    um histórico linear. Se a opção --merge for usada, a revisão\n"
+"    pendente terá dois pais: o antigo pai do diretório de trabalho e\n"
+"    uma nova revisão filha de REV que desfaz o conteúdo de REV."
+
+msgid ""
+"    Before version 1.7, the behavior without --merge was equivalent to\n"
+"    specifying --merge followed by :hg:`update --clean .` to cancel\n"
+"    the merge and leave the child of REV as a head to be merged\n"
+"    separately."
+msgstr ""
+"    Antes da versao 1.7 do Mercurial, o comportamento do comando\n"
+"    backout sem --merge era equivalente a especificar --merge seguido por\n"
+"    :hg:`update --clean .`, cancelando a mesclagem e deixando a filha\n"
+"    de REV como uma cabeça a ser mesclada explicitamente."
 
 msgid "please specify just one revision"
 msgstr "por favor especifique apenas uma revisão"
@@ -7783,6 +7721,70 @@
 msgid "Testing changeset %d:%s (%d changesets remaining, ~%d tests)\n"
 msgstr "Testando a revisão %d:%s (%d revisões restando, ~%d testes)\n"
 
+msgid "track a line of development with movable markers"
+msgstr "rastreia uma linha de desenvolvimento com marcadores móveis"
+
+msgid ""
+"    Bookmarks are pointers to certain commits that move when\n"
+"    committing. Bookmarks are local. They can be renamed, copied and\n"
+"    deleted. It is possible to use bookmark names in :hg:`merge` and\n"
+"    :hg:`update` to merge and update respectively to a given bookmark."
+msgstr ""
+"    Marcadores são ponteiros para certas consolidações que se movem\n"
+"    quando novas consolidações forem feitas. Marcadores são locais.\n"
+"    Eles podem ser renomeados, copiados e removidos. É possível usar\n"
+"    o nome de um marcador em :hg:`merge` e :hg:`update` para\n"
+"    respectivamente mesclar ou atualizar para um marcador dado."
+
+msgid ""
+"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
+"    directory's parent revision with the given name. If you specify\n"
+"    a revision using -r REV (where REV may be an existing bookmark),\n"
+"    the bookmark is assigned to that revision."
+msgstr ""
+"    Você pode usar :hg:`bookmark NOME` para definir um marcador na\n"
+"    revisão pai do diretório de trabalho com o nome informado. Se você\n"
+"    especificar a revisão usando -r REV (onde REV pode ser o nome de\n"
+"    um marcador existente), o marcador é apontado para tal revisão."
+
+msgid ""
+"    Bookmarks can be pushed and pulled between repositories (see :hg:`help\n"
+"    push` and :hg:`help pull`). This requires both the local and remote\n"
+"    repositories to support bookmarks. For versions prior to 1.8, this means\n"
+"    the bookmarks extension must be enabled.\n"
+"    "
+msgstr ""
+"    Marcadores podem ser transferidos entre repositórios usando push\n"
+"    e pull (veja :hg:`help push` e :hg:`help pull`). Isto requer que\n"
+"    a extensão bookmark esteja habilitada tanto no repositório local\n"
+"    como no remoto. Em versões anteriores à 1.8, a extensão bookmarks\n"
+"    precisa ser habilitada.\n"
+"    "
+
+msgid "a bookmark of this name does not exist"
+msgstr "não existe um marcador com esse nome"
+
+msgid "a bookmark of the same name already exists"
+msgstr "já existe um marcador com o mesmo nome"
+
+msgid "new bookmark name required"
+msgstr "requerido nome do novo marcador"
+
+msgid "bookmark name required"
+msgstr "requerido nome do marcador"
+
+msgid "bookmark name cannot contain newlines"
+msgstr "o nome do marcador não pode conter novas linhas"
+
+msgid "bookmark names cannot consist entirely of whitespace"
+msgstr "nomes de marcadores não podem conter apenas espaços em branco"
+
+msgid "a bookmark cannot have the name of an existing branch"
+msgstr "um marcador não pode ter o mesmo nome de um ramo existente"
+
+msgid "no bookmarks set\n"
+msgstr "nenhum marcador definido\n"
+
 msgid "set or show the current branch name"
 msgstr "define ou mostra o nome de ramo atual"
 
@@ -7979,9 +7981,9 @@
 
 msgid ""
 "    The location of the source is added to the new repository's\n"
-"    .hg/hgrc file, as the default to be used for future pulls."
-msgstr ""
-"    A localização da origem é adicionada ao arquivo .hg/hgrc do novo\n"
+"    ``.hg/hgrc`` file, as the default to be used for future pulls."
+msgstr ""
+"    A localização da origem é adicionada ao arquivo ``.hg/hgrc`` do novo\n"
 "    repositório, como o padrão a ser usado para futuros comandos\n"
 "    pull."
 
@@ -7990,11 +7992,11 @@
 
 msgid ""
 "    It is possible to specify an ``ssh://`` URL as the destination, but no\n"
-"    .hg/hgrc and working directory will be created on the remote side.\n"
+"    ``.hg/hgrc`` and working directory will be created on the remote side.\n"
 "    Please see :hg:`help urls` for important details about ``ssh://`` URLs."
 msgstr ""
 "    É possível especificar uma URL ``ssh://`` como destino, mas o\n"
-"    .hg/hgrc e a cópia de trabalho não serão criados do lado remoto.\n"
+"    ``.hg/hgrc`` e a cópia de trabalho não serão criados do lado remoto.\n"
 "    Por favor veja :hg:`help urls` para detalhes importantes sobre\n"
 "    URLs ``ssh://`` ."
 
@@ -8106,7 +8108,7 @@
 
 msgid ""
 "    Commit changes to the given files into the repository. Unlike a\n"
-"    centralized RCS, this operation is a local operation. See\n"
+"    centralized SCM, this operation is a local operation. See\n"
 "    :hg:`push` for a way to actively distribute your changes."
 msgstr ""
 "    Consolida no repositório local mudanças nos arquivos dados. Ao\n"
@@ -8419,9 +8421,19 @@
 msgid "parse and display a date"
 msgstr "decodifica e exibe uma data"
 
+msgid "display the combined ignore pattern"
+msgstr "exibe o padrão combinado de arquivos ignorados"
+
+msgid "no ignore patterns found"
+msgstr "nenhum padrão de arquivos ignorados encontrado"
+
 msgid "dump the contents of an index file"
 msgstr "extrai o conteúdo de um arquivo de índice"
 
+#, python-format
+msgid "unknown format %d"
+msgstr "formato desconhecido %d"
+
 msgid "dump an index DAG as a graphviz dot file"
 msgstr "extrai os dados de um índice DAG como um arquivo .dot do graphviz"
 
@@ -8928,6 +8940,9 @@
 "    etiquetas para esta revisão e um nome de ramo para ramos\n"
 "    diferentes do default."
 
+msgid "can't query remote revision number, branch, tags, or bookmarks"
+msgstr "não é possível consultar o número de revisão, ramo, etiquetas ou marcadores remotos"
+
 msgid "import an ordered set of patches"
 msgstr "importa um conjunto ordenado de patches"
 
@@ -9055,6 +9070,9 @@
 msgid "cannot combine --bundle and --subrepos"
 msgstr "não é possível combinar --bundle e --subrepos"
 
+msgid "remote doesn't support bookmarks\n"
+msgstr "o repositório remoto não suporta marcadores\n"
+
 msgid "create a new repository in the given directory"
 msgstr "cria um novo repositório no diretório pedido"
 
@@ -9431,9 +9449,17 @@
 "    em arquivos não resolvidos.\n"
 "    "
 
+#, python-format
+msgid "remote bookmark %s not found!"
+msgstr "marcador remoto %s não encontrado!"
+
 msgid "other repository doesn't support revision lookup, so a rev cannot be specified."
 msgstr "o outro repositório não suporta busca por revisão, portanto uma revisão não pode ser especificada."
 
+#, python-format
+msgid "importing bookmark %s\n"
+msgstr "importando marcador %s\n"
+
 msgid "push changes to the specified destination"
 msgstr "envia mudanças para o destino especificado"
 
@@ -9504,6 +9530,22 @@
 msgid "pushing to %s\n"
 msgstr "enviando revisões para %s\n"
 
+#, python-format
+msgid "exporting bookmark %s\n"
+msgstr "exportando marcador %s\n"
+
+#, python-format
+msgid "deleting remote bookmark %s\n"
+msgstr "apagando marcador remoto %s\n"
+
+#, python-format
+msgid "bookmark %s does not exist on the local or remote repository!\n"
+msgstr "o marcador %s não existe nem no repositório local nem no remoto!\n"
+
+#, python-format
+msgid "updating bookmark %s failed!\n"
+msgstr "a atualização do marcador %s falhou!\n"
+
 msgid "roll back an interrupted transaction"
 msgstr "desfaz uma transação interrompida"
 
@@ -9798,6 +9840,9 @@
 msgid "you can't specify a revision and a date"
 msgstr "você não pode especificar uma revisão e uma data"
 
+msgid "uncommitted merge - use \"hg update\", see \"hg help revert\""
+msgstr "mesclagem não consolidada - use \"hg update\", veja \"hg help revert\""
+
 msgid "no files or directories specified; use --all to revert the whole repo"
 msgstr "nenhum arquivo ou diretório especificado; use --all para reverter o repositório todo"
 
@@ -10132,6 +10177,14 @@
 msgstr "%d de saída"
 
 #, python-format
+msgid "%d incoming bookmarks"
+msgstr "%d marcadores a serem trazidos"
+
+#, python-format
+msgid "%d outgoing bookmarks"
+msgstr "%d marcadores a serem enviados"
+
+#, python-format
 msgid "remote: %s\n"
 msgstr "remoto: %s\n"
 
@@ -10397,11 +10450,11 @@
 msgstr "(veja http://mercurial.selenic.com para mais informações)"
 
 msgid ""
-"Copyright (C) 2005-2010 Matt Mackall and others\n"
+"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 ""
-"Copyright (C) 2005-2010 Matt Mackall e outros\n"
+"Copyright (C) 2005-2011 Matt Mackall e outros\n"
 "Este software é livre; veja os fontes para condições de cópia. Não\n"
 "há garantias, nem mesmo de adequação para qualquer propósito em\n"
 "particular.\n"
@@ -10631,6 +10684,18 @@
 msgid "[-gbsr] [-U] [-c CMD] [REV]"
 msgstr "[-gbsr] [-U] [-c CMD] [REV]"
 
+msgid "force"
+msgstr "forçar"
+
+msgid "delete a given bookmark"
+msgstr "apaga o marcador pedido"
+
+msgid "rename a given bookmark"
+msgstr "renomeia um marcador"
+
+msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
+msgstr "hg bookmarks [-f] [-d] [-m NOME] [-r REV] [NOME]"
+
 msgid "set branch name even if it shadows an existing branch"
 msgstr "especifica nome do ramo mesmo se ocultar um ramo existente"
 
@@ -10868,8 +10933,11 @@
 msgid "show tags"
 msgstr "exibe etiquetas"
 
-msgid "[-nibt] [-r REV] [SOURCE]"
-msgstr "[-nibt] [-r REV] [ORIGEM]"
+msgid "show bookmarks"
+msgstr "exibe marcadores"
+
+msgid "[-nibtB] [-r REV] [SOURCE]"
+msgstr "[-nibtB] [-r REV] [ORIGEM]"
 
 msgid "directory strip option for patch. This has the same meaning as the corresponding patch option"
 msgstr "opção de remoção de diretório para o patch. Tem o mesmo significado da opção correspondente do utilitário patch"
@@ -10907,6 +10975,9 @@
 msgid "a remote changeset intended to be added"
 msgstr "uma revisão remota que se deva adicionar"
 
+msgid "compare bookmarks"
+msgstr "compara marcadores"
+
 msgid "a specific branch you would like to pull"
 msgstr "um ramo específico que você gostaria de trazer"
 
@@ -11003,12 +11074,21 @@
 msgid "run even when remote repository is unrelated"
 msgstr "execute mesmo se o repositório remoto não for relacionado"
 
+msgid "BOOKMARK"
+msgstr "MARCADOR"
+
+msgid "bookmark to pull"
+msgstr "marcador a ser trazido"
+
 msgid "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]"
 msgstr "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [ORIGEM]"
 
 msgid "force push"
 msgstr "força um push"
 
+msgid "bookmark to push"
+msgstr "marcador a ser enviado"
+
 msgid "allow pushing a new branch"
 msgstr "permite o envio de um novo ramo nomeado"
 
@@ -11454,6 +11534,10 @@
 msgstr "nenhuma definição para o apelido '%s'\n"
 
 #, python-format
+msgid "No argument found for substitution of %i variable in alias '%s' definition."
+msgstr "Nenhum argumento encontrado para a substituição da variável %i na definição do apelido '%s'."
+
+#, python-format
 msgid "error in definition for alias '%s': %s may only be given on the command line\n"
 msgstr "erro na definição do apelido '%s': %s pode ser passado apenas na linha de comando\n"
 
@@ -11516,6 +11600,10 @@
 msgstr "*** falha ao importar a extensão %s: %s\n"
 
 #, python-format
+msgid "warning: error finding commands in %s\n"
+msgstr "aviso: erro ao localizar comandos em %s\n"
+
+#, python-format
 msgid "couldn't find merge tool %s\n"
 msgstr "não foi possível encontrar ferramenta de mesclagem %s\n"
 
@@ -13467,6 +13555,17 @@
 "``re:``. O casamento de padrões por expressão regular é feito a\n"
 "partir do raiz do repositório."
 
+msgid ""
+"To read name patterns from a file, use ``listfile:`` or ``listfile0:``.\n"
+"The latter expects null delimited patterns while the former expects line\n"
+"feeds. Each string read from the file is itself treated as a file\n"
+"pattern."
+msgstr ""
+"Para ler de um arquivo os padrões de nomes, use ``listfile:`` ou\n"
+"``listfile0:``. O primeiro lê padrões delimitados por quebras de\n"
+"linha; o segundo, por caracteres null. Cada string lida do\n"
+"arquivo também é tratada como um padrão de arquivos."
+
 msgid "Plain examples::"
 msgstr "Exemplos de caminhos simples::"
 
@@ -13505,10 +13604,20 @@
 msgid "Regexp examples::"
 msgstr "Exemplos de expressão regular::"
 
-msgid "  re:.*\\.c$      any name ending in \".c\", anywhere in the repository\n"
+msgid "  re:.*\\.c$      any name ending in \".c\", anywhere in the repository"
 msgstr ""
 "  re:.*\\.c$      qualquer nome terminado por \".c\", em qualquer\n"
-"                  lugar no repositório\n"
+"                  lugar no repositório"
+
+msgid "File examples::"
+msgstr "Exemplos de padrões lidos de arquivos::"
+
+msgid ""
+"  listfile:list.txt  read list from list.txt with one file pattern per line\n"
+"  listfile0:list.txt read list from list.txt with null byte delimiters\n"
+msgstr ""
+"  listfile:list.txt  lê a lista de list.txt com um padrão por linha\n"
+"  listfile0:list.txt lê a lista de list.txt delimitados por bytes null\n"
 
 msgid "Mercurial supports several ways to specify individual revisions."
 msgstr ""
@@ -13935,14 +14044,21 @@
 ":commit: commit creates a consistent snapshot of the state of the\n"
 "    entire project and its subrepositories. It does this by first\n"
 "    attempting to commit all modified subrepositories, then recording\n"
-"    their state and finally committing it in the parent repository."
+"    their state and finally committing it in the parent\n"
+"    repository. Mercurial can be made to abort if any subrepository\n"
+"    content is modified by setting \"ui.commitsubrepos=no\" in a\n"
+"    configuration file (see :hg:`help config`)."
 msgstr ""
 ":commit: commit cria uma referência consistente do estado do\n"
 "    projeto e seus sub-repositórios como um todo. Ele primeiro\n"
 "    tenta consolidar cada sub-repositório modificado; em seguida,\n"
 "    grava seus estados; por fim, consolida esses estados no\n"
 "    repositório pai (junto com eventuais modificações do próprio\n"
-"    repositório pai)."
+"    repositório pai).\n"
+" O Mercurial pode ser configurado para\n"
+"    abortar se o conteúdo de qualquer sub-repositório estiver\n"
+"    modificado, através da opção de configuração\n"
+"    \"ui.commitsubrepos=no\" (veja :hg:`help config`)."
 
 msgid ""
 ":diff: diff does not recurse in subrepos unless -S/--subrepos is\n"
@@ -14113,6 +14229,11 @@
 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."
@@ -14329,8 +14450,9 @@
 "    seconds: \"2009-08-18 13:00:13 +0200\". See also the rfc3339date\n"
 "    filter."
 msgstr ""
-":isodate: Data. Devolve a data em formato ISO 8601, incluindo os segundos:\n"
-"    \"2009-08-18 13:00:13 +0200\". Veja também o filtro rfc3339date."
+":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."
@@ -14414,13 +14536,13 @@
 "  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]"
+"  ssh://[user@]host[:port]/[path][#revision]"
 msgstr ""
 "  caminho/no/sistema/de/arquivos/local[#revisão]\n"
 "  file://caminho/no/sistema/de/arquivos/local[#revisão]\n"
 "  http://[usuário[:senha]@]servidor[:porta]/[caminho][#revisão]\n"
 "  https://[usuário[:senha]@]servidor[:porta]/[caminho][#revisão]\n"
-"  ssh://[usuário[:senha]@]servidor[:porta]/[caminho][#revisão]"
+"  ssh://[usuário@]servidor[:porta]/[caminho][#revisão]"
 
 msgid ""
 "Paths in the local filesystem can either point to Mercurial\n"
@@ -14761,6 +14883,10 @@
 msgstr ".hg/sharedpath aponta para diretório %s inexistente"
 
 #, python-format
+msgid "warning: ignoring unknown working parent %s!\n"
+msgstr "aviso: ignorando pai desconhecido do diretório de trabalho '%s'!\n"
+
+#, python-format
 msgid "%r cannot be used in a tag name"
 msgstr "%r não pode ser usado em um nome de etiqueta"
 
@@ -14789,12 +14915,12 @@
 msgstr "nenhuma transação interrompida disponível\n"
 
 #, python-format
-msgid "rolling back to revision %s (undo %s: %s)\n"
-msgstr "executando rollback para a revisão %s (desfazimento de %s: %s)\n"
-
-#, python-format
-msgid "rolling back to revision %s (undo %s)\n"
-msgstr "executando rollback para a revisão %s (desfazimento de %s)\n"
+msgid "repository tip rolled back to revision %s (undo %s: %s)\n"
+msgstr "executando rollback da tip do repositório para a revisão %s (desfazimento de %s: %s)\n"
+
+#, python-format
+msgid "repository tip rolled back to revision %s (undo %s)\n"
+msgstr "executando rollback da tip do repositório para a revisão %s (desfazimento de %s)\n"
 
 msgid "rolling back unknown transaction\n"
 msgstr "desfazendo transação desconhecida\n"
@@ -14803,6 +14929,14 @@
 msgid "Named branch could not be reset, current branch still is: %s\n"
 msgstr "O ramo nomeado não pode ser redefinido, o ramo corrente ainda é: %s\n"
 
+#, python-format
+msgid "working directory now based on revisions %d and %d\n"
+msgstr "o diretório de trabalho está agora baseado nas revisões %d e %d\n"
+
+#, python-format
+msgid "working directory now based on revision %d\n"
+msgstr "o diretório de trabalho está agora baseado na revisão %d\n"
+
 msgid "no rollback information available\n"
 msgstr "nenhuma informação de desfazimento disponível\n"
 
@@ -14828,6 +14962,10 @@
 msgid "can't commit subrepos without .hgsub"
 msgstr "não é possível consolidar sub-repositórios sem o arquivo .hgsub"
 
+#, python-format
+msgid "uncommitted changes in subrepo %s"
+msgstr "mudanças não consolidadas no sub-repositório %s"
+
 msgid "file not found!"
 msgstr "arquivo não encontrado!"
 
@@ -14859,37 +14997,39 @@
 msgstr "pull parcial não pode ser feito porque o outro repositório não suporta 'changegroupsubset'."
 
 #, python-format
+msgid "updating bookmark %s\n"
+msgstr "atualizando marcador %s\n"
+
+#, python-format
+msgid "not updating divergent bookmark %s\n"
+msgstr "marcador divergente %s não atualizado\n"
+
+#, python-format
 msgid "%d changesets found\n"
 msgstr "%d revisões encontradas\n"
 
-msgid "bundling changes"
-msgstr "empacotando mudanças"
-
-msgid "chunks"
-msgstr "trechos"
-
-msgid "bundling manifests"
-msgstr "empacotando manifestos"
+msgid "bundling"
+msgstr "criando bundle"
+
+msgid "manifests"
+msgstr "manifestos"
 
 #, python-format
 msgid "empty or missing revlog for %s"
 msgstr "revlog vazio ou não encontrado para %s"
 
-msgid "bundling files"
-msgstr "empacotando arquivos"
-
 msgid "adding changesets\n"
 msgstr "adicionando revisões\n"
 
+msgid "chunks"
+msgstr "trechos"
+
 msgid "received changelog group is empty"
 msgstr "grupo de changelogs recebido é vazio"
 
 msgid "adding manifests\n"
 msgstr "adicionando manifestos\n"
 
-msgid "manifests"
-msgstr "manifestos"
-
 msgid "adding file changes\n"
 msgstr "adicionando mudanças em arquivos\n"
 
@@ -14931,6 +15071,12 @@
 msgid "transferred %s in %.1f seconds (%s/sec)\n"
 msgstr "transferidos %s em %.1f segundos (%s/s)\n"
 
+msgid "can't use TLS: Python SSL support not installed"
+msgstr "impossível usar TLS: suporte Python a SSL não instalado"
+
+msgid "(using smtps)\n"
+msgstr "(usando smtps)\n"
+
 msgid "smtp.host not configured - cannot send mail"
 msgstr "servidor smtp não configurado - impossível enviar e-mail"
 
@@ -14938,11 +15084,8 @@
 msgid "sending mail: smtp host %s, port %s\n"
 msgstr "enviando e-mail: servidor smtp %s, porta %s\n"
 
-msgid "can't use TLS: Python SSL support not installed"
-msgstr "impossível usar TLS: suporte Python a SSL não instalado"
-
-msgid "(using tls)\n"
-msgstr "(usando tls)\n"
+msgid "(using starttls)\n"
+msgstr "(usando starttls)\n"
 
 #, python-format
 msgid "(authenticating to mail server as %s)\n"
@@ -14983,6 +15126,10 @@
 msgstr "padrão inválido"
 
 #, python-format
+msgid "unable to read file list (%s)"
+msgstr "incapaz de ler lista de arquivos (%s)"
+
+#, python-format
 msgid "diff context lines count must be an integer, not %r"
 msgstr "o número de linhas de contexto de diff deve ser um inteiro, e não %r"
 
@@ -15071,6 +15218,10 @@
 msgid "outstanding uncommitted changes (use 'hg status' to list changes)"
 msgstr "alterações não consolidadas pendentes (use 'hg status' para listar as mudanças)"
 
+#, python-format
+msgid "outstanding uncommitted changes in subrepository '%s'"
+msgstr "mudanças não consolidadas pendentes no sub-repositório '%s'"
+
 msgid "crosses branches (merge branches or use --clean to discard changes)"
 msgstr "atravessa ramos (mescle os ramos ou use --clean para descartar mudanças)"
 
@@ -15318,25 +15469,26 @@
 msgstr "rev espera um número"
 
 msgid ""
-"``p1(set)``\n"
-"    First parent of changesets in set."
-msgstr ""
-"``p1(conjunto)``\n"
-"    O primeiro pai das revisões no conjunto."
-
-msgid ""
-"``p2(set)``\n"
-"    Second parent of changesets in set."
-msgstr ""
-"``p2(conjunto)``\n"
-"    O segundo pai das revisões no conjunto."
-
-msgid ""
-"``parents(set)``\n"
-"    The set of all parents for all changesets in set."
-msgstr ""
-"``parents(conjunto)``\n"
-"    O conjunto de todos os pais de todas as revisões no conjunto pedido."
+"``p1([set])``\n"
+"    First parent of changesets in set, or the working directory."
+msgstr ""
+"``p1([conjunto])``\n"
+"    O primeiro pai das revisões no conjunto, ou do diretório de trabalho."
+
+msgid ""
+"``p2([set])``\n"
+"    Second parent of changesets in set, or the working directory."
+msgstr ""
+"``p2([conjunto])``\n"
+"    O segundo pai das revisões no conjunto, ou do diretório de trabalho."
+
+msgid ""
+"``parents([set])``\n"
+"    The set of all parents for all changesets in set, or the working directory."
+msgstr ""
+"``parents([conjunto])``\n"
+"    O conjunto de todos os pais de todas as revisões no conjunto pedido,\n"
+"    ou os pais do diretório de trabalho."
 
 msgid ""
 "``max(set)``\n"
@@ -15680,6 +15832,21 @@
 msgid "the argument to tag must be a string"
 msgstr "o argumento de tag deve ser uma string"
 
+msgid ""
+"``bookmark([name])``\n"
+"    The named bookmark or all bookmarks."
+msgstr ""
+"``bookmark([nome])``\n"
+"    O marcador chamado nome, ou todos os marcadores."
+
+#. i18n: "bookmark" is a keyword
+msgid "bookmark takes one or no arguments"
+msgstr "bookmark requer um ou nenhum argumento"
+
+#. i18n: "bookmark" is a keyword
+msgid "the argument to bookmark must be a string"
+msgstr "o argumento para o comando bookmark deve ser uma string"
+
 msgid "can't negate that"
 msgstr "não é possível negar essa expressão"
 
@@ -15709,6 +15876,9 @@
 msgid "couldn't parse location %s"
 msgstr "não foi possível processar localização %s"
 
+msgid "password in URL not supported"
+msgstr "senha na URL não é suportada"
+
 msgid "could not create remote repo"
 msgstr "não foi possível criar repositório remoto"
 
@@ -15782,6 +15952,22 @@
 "use (c) a versão alterada ou (d) apague?"
 
 #, python-format
+msgid ""
+" subrepository sources for %s differ\n"
+"use (l)ocal source (%s) or (r)emote source (%s)?\n"
+msgstr ""
+" as origens do sub-repositório %s diferem\n"
+"usar origem (l)ocal (%s) ou (r)emota (%s)?\n"
+
+#, python-format
+msgid ""
+" subrepository sources for %s differ (in checked out version)\n"
+"use (l)ocal source (%s) or (r)emote source (%s)?\n"
+msgstr ""
+" as origens do sub-repositório %s diferem (na versão do diretório de trabalho)\n"
+"usar origem (l)ocal (%s) ou (r)emota (%s)?\n"
+
+#, python-format
 msgid "default path for subrepository %s not found"
 msgstr "o caminho padrão para o sub-repositório %s não foi encontrado"
 
@@ -15790,6 +15976,10 @@
 msgstr "tipo de sub-repositório %s desconhecido"
 
 #, python-format
+msgid "archiving (%s)"
+msgstr "empacotando (%s)"
+
+#, python-format
 msgid "warning: error \"%s\" in subrepository \"%s\"\n"
 msgstr "aviso: erro \"%s\" no sub-repositório \"%s\"\n"
 
@@ -15813,6 +16003,41 @@
 msgstr "repositório %s não removido por possuir mudanças.\n"
 
 #, python-format
+msgid "cloning subrepo %s\n"
+msgstr "clonando sub-repositório %s\n"
+
+#, python-format
+msgid "pulling subrepo %s\n"
+msgstr "trazendo sub-repositório %s\n"
+
+#, python-format
+msgid "revision %s does not exist in subrepo %s\n"
+msgstr "a revisão %s não existe no sub-repositório %s\n"
+
+#, python-format
+msgid "checking out detached HEAD in subrepo %s\n"
+msgstr "obtendo detached HEAD no sub-repositório %s\n"
+
+msgid "check out a git branch if you intend to make changes\n"
+msgstr "obtenha um ramo do git se você pretender fazer mudanças\n"
+
+#, python-format
+msgid "unrelated git branch checked out in subrepo %s\n"
+msgstr "ramo do git não relacionado obtido no sub-repositório %s\n"
+
+#, python-format
+msgid "pushing branch %s of subrepo %s\n"
+msgstr "enviando o ramo %s do sub-repositório %s\n"
+
+#, python-format
+msgid ""
+"no branch checked out in subrepo %s\n"
+"cannot push revision %s"
+msgstr ""
+"nenhum ramo obtido no sub-repositório %s\n"
+"não é possível fazer push da revisão %s"
+
+#, python-format
 msgid "%s, line %s: %s\n"
 msgstr "%s, linha %s: %s\n"
 
@@ -15823,25 +16048,39 @@
 msgid "node '%s' is not well formed"
 msgstr "nó '%s' não é bem formado"
 
-msgid ".hg/tags.cache is corrupt, rebuilding it\n"
-msgstr ".hg/tags.cache está corrompido, reconstruindo\n"
+msgid ".hg/cache/tags is corrupt, rebuilding it\n"
+msgstr ".hg/cache/tags está corrompido, reconstruindo\n"
+
+#, python-format
+msgid "unknown method '%s'"
+msgstr "método desconhecido '%s'"
+
+msgid "expected a symbol"
+msgstr "esperado um símbolo"
+
+#, python-format
+msgid "unknown function '%s'"
+msgstr "função desconhecida '%s'"
+
+msgid "expected template specifier"
+msgstr "esperado um especificador de modelo"
+
+#, python-format
+msgid "filter %s expects one argument"
+msgstr "o filtro %s espera um argumento"
 
 msgid "unmatched quotes"
 msgstr "aspas não combinam"
 
 #, python-format
-msgid "error expanding '%s%%%s'"
-msgstr "erro ao expandir '%s%%%s'"
-
-#, python-format
-msgid "unknown filter '%s'"
-msgstr "filtro '%s' desconhecido"
-
-#, python-format
 msgid "style not found: %s"
 msgstr "estilo não encontrado: %s"
 
 #, python-format
+msgid "\"%s\" not in template map"
+msgstr "\"%s\" não está no mapa de modelo"
+
+#, python-format
 msgid "template file %s: %s"
 msgstr "arquivo de modelo %s: %s"
 
@@ -15907,6 +16146,10 @@
 msgid "edit failed"
 msgstr "falha ao editar"
 
+#, python-format
+msgid "ignoring invalid [auth] key '%s'\n"
+msgstr "ignorando chave inválida em [auth] '%s'\n"
+
 msgid "http authorization required"
 msgstr "autorização http requerida"
 
@@ -15928,9 +16171,8 @@
 msgid "http auth: user %s, password %s\n"
 msgstr "autenticação http: usuário %s, senha %s\n"
 
-#, python-format
-msgid "ignoring invalid [auth] key '%s'\n"
-msgstr "ignorando chave inválida em [auth] '%s'\n"
+msgid "kb"
+msgstr "kb"
 
 msgid "certificate checking requires Python 2.6"
 msgstr "verificação de certificado exige Python 2.6"
@@ -15961,8 +16203,8 @@
 msgstr "aviso: o certificado %s com impressão digital %s não foi verificado (verifique as opções de configuração hostfingerprints e web.cacerts)\n"
 
 #, python-format
-msgid "no certificate for %s with fingerprint"
-msgstr "nenhum certificado para %s com impressão digital"
+msgid "no certificate for %s with configured hostfingerprint"
+msgstr "nenhum certificado para %s com a impressão digital configurada"
 
 #, python-format
 msgid "warning: %s certificate not verified (check web.cacerts config setting)\n"
@@ -15973,6 +16215,10 @@
 msgstr "falha ao executar o comando '%s' : %s"
 
 #, python-format
+msgid "path ends in directory separator: %s"
+msgstr "o caminho termina em um separador de diretório: %s"
+
+#, python-format
 msgid "path contains illegal component: %s"
 msgstr "o caminho contém um componente ilegal: %s"
 
@@ -15984,9 +16230,6 @@
 msgid "path %r traverses symbolic link %r"
 msgstr "o caminho %r percorre o link simbólico %r"
 
-msgid "Hardlinks not supported"
-msgstr "Hardlinks não suportados"
-
 #, python-format
 msgid "could not symlink to %r: %s"
 msgstr "impossível criar link simbólico para %r: %s"
@@ -16229,20 +16472,274 @@
 msgid "(first damaged changeset appears to be %d)\n"
 msgstr "(primeira revisão danificada parece ser %d)\n"
 
-msgid "user name not available - set USERNAME environment variable"
-msgstr "nome de usuário indisponível - defina a variável de ambiente USERNAME"
-
 msgid "look up remote revision"
 msgstr "procurar revisão remota"
 
+msgid "push failed (unexpected response):"
+msgstr "o push falhou (resposta inesperada):"
+
 msgid "look up remote changes"
 msgstr "procurar mudanças remotas"
 
 msgid "push failed:"
 msgstr "o push falhou:"
 
-msgid "push failed (unexpected response):"
-msgstr "o push falhou (resposta inesperada):"
+msgid "Subversion python bindings could not be loaded"
+msgstr "Os módulos Python para o Subversion não puderam ser carregados"
+
+msgid "options:"
+msgstr "opções:"
+
+msgid ""
+"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, the\n"
+"bookmark shifts to the new changeset."
+msgstr ""
+"Marcadores são ponteiros locais móveis para revisões. Todo\n"
+"marcador aponta para uma revisão identificada por seu hash. Se você\n"
+"consolidar uma revisão que se baseie em uma revisão que contenha um\n"
+"marcador, o marcador é transferido para a nova revisão."
+
+msgid ""
+"It is possible to use bookmark names in every revision lookup (e.g.\n"
+":hg:`merge`, :hg:`update`)."
+msgstr ""
+"É possível utilizar nomes de marcadores em toda referência a revisões\n"
+"(por exemplo :hg:`merge`, :hg:`update`)."
+
+msgid ""
+"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 configuration file::"
+msgstr ""
+"Por padrão, quando vários marcadores apontam para a mesma revisão,\n"
+"todos serão movidos para a frente juntos. É possível obter um\n"
+"funcionamento mais semelhante ao do sistema git com a adição das\n"
+"seguintes opções de configuração ao seu arquivo de configuração::"
+
+msgid ""
+"  [bookmarks]\n"
+"  track.current = True"
+msgstr ""
+"  [bookmarks]\n"
+"  track.current = True"
+
+msgid ""
+"This will cause Mercurial to track the bookmark that you are currently\n"
+"using, and only update it. This is similar to git's approach to\n"
+"branching.\n"
+msgstr ""
+"Isto fará com que o Mercurial rastreie o marcador que você estiver\n"
+"usando no momento, e apenas o atualize. Isto é semelhante à abordagem\n"
+"do git para ramos.\n"
+
+msgid "bookmark to export"
+msgstr "marcador a ser exportado"
+
+msgid ""
+"    --config convert.hg.ignoreerrors=False    (boolean)\n"
+"        ignore integrity errors when reading. Use it to fix Mercurial\n"
+"        repositories with missing revlogs, by converting from and to\n"
+"        Mercurial.\n"
+"    --config convert.hg.saverev=False         (boolean)\n"
+"        store original revision ID in changeset (forces target IDs to\n"
+"        change)\n"
+"    --config convert.hg.startrev=0            (hg revision identifier)\n"
+"        convert start revision and its descendants"
+msgstr ""
+"    --config convert.hg.ignoreerrors=False    (booleana)\n"
+"        ignora erros de integridade ao ler. Use-a para corrigir\n"
+"        repositórios do Mercurial com revlogs faltando, através da\n"
+"        conversão para outro repositório do Mercurial.\n"
+"    --config convert.hg.saverev=False         (booleana)\n"
+"        armazena o identificador de revisão original na revisão de destino\n"
+"        (isso força o identificador do destino a mudar)\n"
+"    --config convert.hg.startrev=0            (id de revisão do hg)\n"
+"        converte a revisão inicial e seus descendentes"
+
+msgid "    The options shown are the defaults."
+msgstr "    As opções exibidas são os valores padrão."
+
+msgid ""
+"    --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"
+"    --config hook.cvslog\n"
+"        Specify a Python function to be called at the end of gathering\n"
+"        the CVS log. The function is passed a list with the log entries,\n"
+"        and can modify the entries in-place, or add or delete them.\n"
+"    --config hook.cvschangesets\n"
+"        Specify a Python function to be called after the changesets\n"
+"        are calculated from the the CVS log. The function is passed\n"
+"        a list with the changeset entries, and can modify the changesets\n"
+"        in-place, or add or delete them."
+msgstr ""
+"    --config convert.cvsps.cache=True         (booleana)\n"
+"        Defina como False para desabilitar o cache do log\n"
+"        remoto, para teste ou depuração.\n"
+"    --config convert.cvsps.fuzz=60            (inteiro)\n"
+"        Especifica o tempo máximo (em segundos) permitido entre\n"
+"        commits com usuário e mensagem de log em uma única\n"
+"        revisão. Se arquivos muito grandes forem armazenados\n"
+"        como parte de uma revisão, o padrão pode não ser\n"
+"        suficiente.\n"
+"    --config convert.cvsps.mergeto='{{mergetobranch ([-\\w]+)}}'\n"
+"        Especifica uma expressão regular com a qual mensagens de\n"
+"        log de commit são verificadas. Se um casamento for\n"
+"        encontrado, a conversão inserirá uma revisão artificial\n"
+"        mesclando o ramo onde essa mensagem de log aparece ao\n"
+"        ramo indicado na expressão regular.\n"
+"    --config convert.cvsps.mergefrom='{{mergefrombranch ([-\\w]+)}}'\n"
+"        Especifica uma expressão regular com a qual mensagens de\n"
+"        log de commit são verificadas. Se um casamento for\n"
+"        encontrado, a conversão inserirá a revisão mais recente\n"
+"        do ramo indicado na expressão regular como segundo pai da\n"
+"        revisão.\n"
+"    --config hook.cvslog\n"
+"        Especifica uma função Python a ser chamada ao término da coleta\n"
+"        do log do CVS. Essa função recebe uma lista com as entradas do log,\n"
+"        e pode modificar, adicionar ou remover entradas.\n"
+"    --config hook.cvschangesets\n"
+"        Especifica uma função Python a ser chamada após os conjuntos de\n"
+"        mudanças serem calculados a partir do log do CVS. Essa função\n"
+"        recebe uma lista com as entradas do conjunto de mudanças, e pode\n"
+"        modificar, adicionar ou remover suas entradas."
+
+msgid ""
+"    --config convert.svn.branches=branches    (directory name)\n"
+"        specify the directory containing branches\n"
+"    --config convert.svn.tags=tags            (directory name)\n"
+"        specify the directory containing tags\n"
+"    --config convert.svn.trunk=trunk          (directory name)\n"
+"        specify the name of the trunk branch"
+msgstr ""
+"    --config convert.svn.branches=branches    (nome de diretório)\n"
+"        especifica o diretório contendo ramos\n"
+"    --config convert.svn.tags=tags            (nome de diretório)\n"
+"        especifica o diretório contendo tags\n"
+"    --config convert.svn.trunk=trunk          (nome de diretório)\n"
+"        especifica o nome do ramo trunk"
+
+msgid ""
+"    --config convert.p4.startrev=0            (perforce changelist number)\n"
+"        specify initial Perforce revision."
+msgstr ""
+"    --config convert.p4.startrev=0            (número de changelist p4)\n"
+"        especifica a revisão inicial do Perforce."
+
+msgid ""
+"    --config convert.hg.clonebranches=False   (boolean)\n"
+"        dispatch source branches in separate clones.\n"
+"    --config convert.hg.tagsbranch=default    (branch name)\n"
+"        tag revisions branch name\n"
+"    --config convert.hg.usebranchnames=True   (boolean)\n"
+"        preserve branch names"
+msgstr ""
+"    --config convert.hg.clonebranches=False   (booleana)\n"
+"        separa ramos da origem em diferentes clones.\n"
+"    --config convert.hg.tagsbranch=default    (nome de ramo)\n"
+"        nome do ramo para revisões de etiqueta\n"
+"    --config convert.hg.usebranchnames=True   (booleana)\n"
+"        preserva nomes de ramo"
+
+msgid "    "
+msgstr "    "
+
+msgid ""
+"    Run before changing/disabling active keywords or if you experience\n"
+"    problems with :hg:`import` or :hg:`merge`."
+msgstr ""
+"    Execute antes de mudar ou desabilitar palavras chave ativas ou\n"
+"    se você tiver problemas com :hg:`import` ou :hg:`merge`."
+
+msgid "warning: not refreshing %s\n"
+msgstr "aviso: %s não será atualizado\n"
+
+msgid "warning: not adding %s\n"
+msgstr "aviso: %s não será adicionado\n"
+
+msgid "warning: not removing %s\n"
+msgstr "aviso: %s não será removido\n"
+
+msgid ""
+"- You should use single encoding in one repository.\n"
+"- If the repository path ends with 0x5c, .hg/hgrc cannot be read.\n"
+"- win32mbcs is not compatible with fixutf8 extention."
+msgstr ""
+"- Você deve usar uma única codificação por repositório.\n"
+"- Se o caminho do repositório for terminado por 0x5c, .hg/hgrc não poderá ser lido.\n"
+"- win32mbcs não é compatível com a extensão fixutf8."
+
+msgid ""
+"    With the --merge option, it first commits the reverted changes\n"
+"    as a new changeset. This new changeset is a child of the reverted\n"
+"    changeset.\n"
+"    The --merge option remembers the parent of the working directory\n"
+"    before starting the backout, then merges the new head with that\n"
+"    changeset afterwards.\n"
+"    This will result in an explicit merge in the history."
+msgstr ""
+"    Com a opção --merge, em primeiro lugar as mudanças revertidas são\n"
+"    consolidadas como uma nova revisão. Esta nova revisão é uma filha\n"
+"    da revisão revertida.\n"
+"    A opção --merge lembra do pai do diretório de trabalho antes do\n"
+"    início da anulação, e mescla a nova cabeça com essa revisão\n"
+"    logo em seguida.\n"
+"    Isso resultará em uma mesclagem explícita gravada no histórico."
+
+msgid ""
+"    If you backout a changeset other than the original parent of the\n"
+"    working directory, the result of this merge is not committed,\n"
+"    as with a normal merge. Otherwise, no merge is needed and the\n"
+"    commit is automatic."
+msgstr ""
+"    Se você anular uma revisão diferente do pai original do diretório\n"
+"    de trabalho, o resultado dessa mesclagem não será consolidado,\n"
+"    como em uma mesclagem normal. Caso contrário, nenhuma mesclagem\n"
+"    será necessária e a consolidação será automática."
+
+msgid ""
+"    Note that the default behavior (without --merge) has changed in\n"
+"    version 1.7. To restore the previous default behavior, use\n"
+"    :hg:`backout --merge` and then :hg:`update --clean .` to get rid of\n"
+"    the ongoing merge."
+msgstr ""
+"    Note que o comportamento padrão (sem --merge) mudou na versão\n"
+"    1.7. Para obter o comportamento padrão anterior, use\n"
+"    :hg:`backout --merge` e em seguida :hg:`update --clean .` para\n"
+"    descartar a mesclagem em andamento."
+
+msgid "bundling changes"
+msgstr "empacotando mudanças"
+
+msgid "bundling manifests"
+msgstr "empacotando manifestos"
+
+msgid "error expanding '%s%%%s'"
+msgstr "erro ao expandir '%s%%%s'"
+
+msgid "unknown filter '%s'"
+msgstr "filtro '%s' desconhecido"
+
+msgid "user name not available - set USERNAME environment variable"
+msgstr "nome de usuário indisponível - defina a variável de ambiente USERNAME"
 
 msgid "%s certificate error: %s"
 msgstr "erro no certificado de %s: %s"
--- a/i18n/sv.po	Wed Feb 16 15:02:30 2011 +0100
+++ b/i18n/sv.po	Wed Mar 02 13:24:48 2011 +0100
@@ -1,6 +1,6 @@
 # Swedish translation for Mercurial
 # Svensk översättning för Mercurial
-# Copyright (C) 2009-2010 Matt Mackall and others
+# Copyright (C) 2009-2011 Matt Mackall and others
 #
 # Translation dictionary:
 #
@@ -13,8 +13,8 @@
 msgstr ""
 "Project-Id-Version: Mercurial\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2010-12-19 19:38+0100\n"
-"PO-Revision-Date: 2010-12-19 19:40+0100\n"
+"POT-Creation-Date: 2011-02-26 09:27+0100\n"
+"PO-Revision-Date: 2011-02-26 16:39+0100\n"
 "Last-Translator: Jens Bäckman <jens.backman@gmail.com>\n"
 "Language-Team: Swedish\n"
 "Language: Swedish\n"
@@ -42,8 +42,8 @@
 "Den här sektioner innehåller hjälp för utökningar som levereras med "
 "Mercurial. Hjälp för andra utälningar är tillgängliga i hjälpsystemet."
 
-msgid "options:"
-msgstr "flaggor:"
+msgid "Options:"
+msgstr "Flaggor:"
 
 #, python-format
 msgid "    aliases: %s"
@@ -292,174 +292,6 @@
 msgid "acl: access denied for changeset %s"
 msgstr ""
 
-msgid "track a line of development with movable markers"
-msgstr ""
-
-msgid ""
-"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, the\n"
-"bookmark shifts to the new changeset."
-msgstr ""
-
-msgid ""
-"It is possible to use bookmark names in every revision lookup (e.g.\n"
-":hg:`merge`, :hg:`update`)."
-msgstr ""
-
-msgid ""
-"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 configuration file::"
-msgstr ""
-
-msgid ""
-"  [bookmarks]\n"
-"  track.current = True"
-msgstr ""
-
-msgid ""
-"This will cause Mercurial to track the bookmark that you are currently\n"
-"using, and only update it. This is similar to git's approach to\n"
-"branching.\n"
-msgstr ""
-
-msgid ""
-"    Bookmarks are pointers to certain commits that move when\n"
-"    committing. Bookmarks are local. They can be renamed, copied and\n"
-"    deleted. It is possible to use bookmark names in :hg:`merge` and\n"
-"    :hg:`update` to merge and update respectively to a given bookmark."
-msgstr ""
-
-msgid ""
-"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
-"    directory's parent revision with the given name. If you specify\n"
-"    a revision using -r REV (where REV may be an existing bookmark),\n"
-"    the bookmark is assigned to that revision."
-msgstr ""
-
-msgid ""
-"    Bookmarks can be pushed and pulled between repositories (see :hg:`help\n"
-"    push` and :hg:`help pull`). This requires the bookmark extension to be\n"
-"    enabled for both the local and remote repositories.\n"
-"    "
-msgstr ""
-
-msgid "a bookmark of this name does not exist"
-msgstr ""
-
-msgid "a bookmark of the same name already exists"
-msgstr ""
-
-msgid "new bookmark name required"
-msgstr ""
-
-msgid "bookmark name required"
-msgstr ""
-
-msgid "bookmark name cannot contain newlines"
-msgstr ""
-
-msgid "bookmark names cannot consist entirely of whitespace"
-msgstr "bokmärksnamn kan inte bestå enbart av blanktecken"
-
-msgid "a bookmark cannot have the name of an existing branch"
-msgstr ""
-
-msgid "no bookmarks set\n"
-msgstr "inga bokmärken satta\n"
-
-#, python-format
-msgid "updating bookmark %s\n"
-msgstr "uppdaterar bokmärket %s\n"
-
-#, python-format
-msgid "not updating divergent bookmark %s\n"
-msgstr ""
-
-#, python-format
-msgid "updating bookmark %s failed!\n"
-msgstr "uppdatering av bokmärket %s misslyckades!\n"
-
-#, python-format
-msgid "remote bookmark %s not found!"
-msgstr ""
-
-#, python-format
-msgid "importing bookmark %s\n"
-msgstr "importerar bokmärket %s\n"
-
-#, python-format
-msgid "exporting bookmark %s\n"
-msgstr "exporterar bokmärket %s\n"
-
-#, python-format
-msgid "deleting remote bookmark %s\n"
-msgstr "raderar fjärrbokmärket %s\n"
-
-#, python-format
-msgid "bookmark %s does not exist on the local or remote repository!\n"
-msgstr "bokmärket %s existerar inte i lokal- eller fjärrarkiv!\n"
-
-msgid "searching for changed bookmarks\n"
-msgstr "söker efter ändrade bokmärken\n"
-
-msgid "no changed bookmarks found\n"
-msgstr "inga ändrade bokmärken hittades\n"
-
-#, python-format
-msgid "comparing with %s\n"
-msgstr "jämför med %s\n"
-
-msgid "bookmark to import"
-msgstr "bokmärke att importera"
-
-msgid "BOOKMARK"
-msgstr "BOKMÄRKE"
-
-msgid "bookmark to export"
-msgstr "bokmärke att exportera"
-
-msgid "compare bookmark"
-msgstr "jämför bokmärke"
-
-msgid ""
-"``bookmark([name])``\n"
-"    The named bookmark or all bookmarks."
-msgstr ""
-"``bookmark([namn])``\n"
-"    Det angivna bokmärket eller alla bokmärken."
-
-#. i18n: "bookmark" is a keyword
-msgid "bookmark takes one or no arguments"
-msgstr "bookmark tar ett eller inga argument"
-
-#. i18n: "bookmark" is a keyword
-msgid "the argument to bookmark must be a string"
-msgstr "argumentet till bookmark måste vara en sträng"
-
-msgid "force"
-msgstr "tvinga"
-
-msgid "REV"
-msgstr "REV"
-
-msgid "revision"
-msgstr "revision"
-
-msgid "delete a given bookmark"
-msgstr ""
-
-msgid "NAME"
-msgstr "NAMN"
-
-msgid "rename a given bookmark"
-msgstr ""
-
-msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
-msgstr ""
-
 msgid "hooks for integrating with the Bugzilla bug tracker"
 msgstr ""
 
@@ -744,6 +576,9 @@
 "    "
 msgstr ""
 
+msgid "REV"
+msgstr "REV"
+
 msgid "show children of the specified revision"
 msgstr ""
 
@@ -1066,10 +901,10 @@
 msgstr ""
 
 msgid ""
-"    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::"
+"    If ``REVMAP`` isn't given, it will be put in a default location\n"
+"    (``<dest>/.hg/shamap`` by default). The ``REVMAP`` is a simple\n"
+"    text file that maps each source commit ID to the destination ID\n"
+"    for that revision, like so::"
 msgstr ""
 
 msgid "      <source ID> <destination ID>"
@@ -1177,15 +1012,25 @@
 "    '''''''''''''''"
 
 msgid ""
-"    --config convert.hg.ignoreerrors=False    (boolean)\n"
-"        ignore integrity errors when reading. Use it to fix Mercurial\n"
-"        repositories with missing revlogs, by converting from and to\n"
-"        Mercurial.\n"
-"    --config convert.hg.saverev=False         (boolean)\n"
-"        store original revision ID in changeset (forces target IDs to\n"
-"        change)\n"
-"    --config convert.hg.startrev=0            (hg revision identifier)\n"
-"        convert start revision and its descendants"
+"    The Mercurial source recognizes the following configuration\n"
+"    options, which you can set on the command line with ``--config``:"
+msgstr ""
+
+msgid ""
+"    :convert.hg.ignoreerrors: ignore integrity errors when reading.\n"
+"        Use it to fix Mercurial repositories with missing revlogs, by\n"
+"        converting from and to Mercurial. Default is False."
+msgstr ""
+
+msgid ""
+"    :convert.hg.saverev: store original revision ID in changeset\n"
+"        (forces target IDs to change). It takes and boolean argument\n"
+"        and defaults to False."
+msgstr ""
+
+msgid ""
+"    :convert.hg.startrev: convert start revision and its descendants.\n"
+"        It takes a hg revision identifier and defaults to 0."
 msgstr ""
 
 msgid ""
@@ -1199,45 +1044,59 @@
 "    CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n"
 "    to indicate the starting point of what will be converted. Direct\n"
 "    access to the repository files is not needed, unless of course the\n"
-"    repository is :local:. The conversion uses the top level directory\n"
-"    in the sandbox to find the CVS repository, and then uses CVS rlog\n"
-"    commands to find files to convert. This means that unless a\n"
-"    filemap is given, all files under the starting directory will be\n"
+"    repository is ``:local:``. The conversion uses the top level\n"
+"    directory in the sandbox to find the CVS repository, and then uses\n"
+"    CVS rlog commands to find files to convert. This means that unless\n"
+"    a filemap is given, all files under the starting directory will be\n"
 "    converted, and that any directory reorganization in the CVS\n"
 "    sandbox is ignored."
 msgstr ""
 
-msgid "    The options shown are the defaults."
-msgstr ""
-
-msgid ""
-"    --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"
-"    --config hook.cvslog\n"
-"        Specify a Python function to be called at the end of gathering\n"
-"        the CVS log. The function is passed a list with the log entries,\n"
-"        and can modify the entries in-place, or add or delete them.\n"
-"    --config hook.cvschangesets\n"
-"        Specify a Python function to be called after the changesets\n"
-"        are calculated from the the CVS log. The function is passed\n"
-"        a list with the changeset entries, and can modify the changesets\n"
-"        in-place, or add or delete them."
+msgid "    The following options can be used with ``--config``:"
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.cache: Set to False to disable remote log caching,\n"
+"        for testing and debugging purposes. Default is True."
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.fuzz: Specify the maximum time (in seconds) that is\n"
+"        allowed between commits with identical user and log message in\n"
+"        a single changeset. When very large files were checked in as\n"
+"        part of a changeset then the default may not be long enough.\n"
+"        The default is 60."
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.mergeto: Specify a regular expression to which\n"
+"        commit log messages are matched. If a match occurs, then the\n"
+"        conversion process will insert a dummy revision merging the\n"
+"        branch on which this log message occurs to the branch\n"
+"        indicated in the regex. Default is ``{{mergetobranch\n"
+"        ([-\\w]+)}}``"
+msgstr ""
+
+msgid ""
+"    :convert.cvsps.mergefrom: Specify a regular expression to which\n"
+"        commit log messages are matched. If a match occurs, then the\n"
+"        conversion process will add the most recent revision on the\n"
+"        branch indicated in the regex as the second parent of the\n"
+"        changeset. Default is ``{{mergefrombranch ([-\\w]+)}}``"
+msgstr ""
+
+msgid ""
+"    :hook.cvslog: Specify a Python function to be called at the end of\n"
+"        gathering the CVS log. The function is passed a list with the\n"
+"        log entries, and can modify the entries in-place, or add or\n"
+"        delete them."
+msgstr ""
+
+msgid ""
+"    :hook.cvschangesets: Specify a Python function to be called after\n"
+"        the changesets are calculated from the the CVS log. The\n"
+"        function is passed a list with the changeset entries, and can\n"
+"        modify the changesets in-place, or add or delete them."
 msgstr ""
 
 msgid ""
@@ -1256,24 +1115,33 @@
 
 msgid ""
 "    Subversion source detects classical trunk/branches/tags layouts.\n"
-"    By default, the supplied \"svn://repo/path/\" source URL is\n"
-"    converted as a single branch. If \"svn://repo/path/trunk\" exists it\n"
-"    replaces the default branch. If \"svn://repo/path/branches\" exists,\n"
-"    its subdirectories are listed as possible branches. If\n"
-"    \"svn://repo/path/tags\" exists, it is looked for tags referencing\n"
-"    converted branches. Default \"trunk\", \"branches\" and \"tags\" values\n"
-"    can be overridden with following options. Set them to paths\n"
+"    By default, the supplied ``svn://repo/path/`` source URL is\n"
+"    converted as a single branch. If ``svn://repo/path/trunk`` exists\n"
+"    it replaces the default branch. If ``svn://repo/path/branches``\n"
+"    exists, its subdirectories are listed as possible branches. If\n"
+"    ``svn://repo/path/tags`` exists, it is looked for tags referencing\n"
+"    converted branches. Default ``trunk``, ``branches`` and ``tags``\n"
+"    values can be overridden with following options. Set them to paths\n"
 "    relative to the source URL, or leave them blank to disable auto\n"
 "    detection."
 msgstr ""
 
-msgid ""
-"    --config convert.svn.branches=branches    (directory name)\n"
-"        specify the directory containing branches\n"
-"    --config convert.svn.tags=tags            (directory name)\n"
-"        specify the directory containing tags\n"
-"    --config convert.svn.trunk=trunk          (directory name)\n"
-"        specify the name of the trunk branch"
+msgid "    The following options can be set with ``--config``:"
+msgstr ""
+
+msgid ""
+"    :convert.svn.branches: specify the directory containing branches.\n"
+"        The defaults is ``branches``."
+msgstr ""
+
+msgid ""
+"    :convert.svn.tags: specify the directory containing tags. The\n"
+"        default is ``tags``."
+msgstr ""
+
+msgid ""
+"    :convert.svn.trunk: specify the name of the trunk branch The\n"
+"        defauls is ``trunk``."
 msgstr ""
 
 msgid ""
@@ -1283,8 +1151,8 @@
 msgstr ""
 
 msgid ""
-"    --config convert.svn.startrev=0           (svn revision number)\n"
-"        specify start Subversion revision."
+"    :convert.svn.startrev: specify start Subversion revision number.\n"
+"        The default is 0."
 msgstr ""
 
 msgid ""
@@ -1300,17 +1168,17 @@
 "    source to a flat Mercurial repository, ignoring labels, branches\n"
 "    and integrations. Note that when a depot path is given you then\n"
 "    usually should specify a target directory, because otherwise the\n"
-"    target may be named ...-hg."
+"    target may be named ``...-hg``."
 msgstr ""
 
 msgid ""
 "    It is possible to limit the amount of source history to be\n"
-"    converted by specifying an initial Perforce revision."
-msgstr ""
-
-msgid ""
-"    --config convert.p4.startrev=0            (perforce changelist number)\n"
-"        specify initial Perforce revision."
+"    converted by specifying an initial Perforce revision:"
+msgstr ""
+
+msgid ""
+"    :convert.p4.startrev: specify initial Perforce revision (a\n"
+"        Perforce changelist number)."
 msgstr ""
 
 msgid ""
@@ -1320,16 +1188,23 @@
 "    Mercurial-destination\n"
 "    '''''''''''''''''''''"
 
-msgid ""
-"    --config convert.hg.clonebranches=False   (boolean)\n"
-"        dispatch source branches in separate clones.\n"
-"    --config convert.hg.tagsbranch=default    (branch name)\n"
-"        tag revisions branch name\n"
-"    --config convert.hg.usebranchnames=True   (boolean)\n"
-"        preserve branch names"
-msgstr ""
-
-msgid "    "
+msgid "    The following options are supported:"
+msgstr ""
+
+msgid ""
+"    :convert.hg.clonebranches: dispatch source branches in separate\n"
+"        clones. The default is False."
+msgstr ""
+
+msgid ""
+"    :convert.hg.tagsbranch: branch name for tag revisions, defaults to\n"
+"        ``default``."
+msgstr ""
+
+msgid ""
+"    :convert.hg.usebranchnames: preserve branch names. The default is\n"
+"        True.\n"
+"    "
 msgstr ""
 
 msgid "create changeset information from CVS"
@@ -1477,6 +1352,10 @@
 msgstr "convert: %s\n"
 
 #, python-format
+msgid "%s\n"
+msgstr "%s\n"
+
+#, python-format
 msgid "%s: unknown repository type"
 msgstr "%s: okänd arkivtyp"
 
@@ -1784,7 +1663,7 @@
 msgid "%s does not look like a Subversion repository"
 msgstr "%s verkar inte vara ett Subversion-arkiv"
 
-msgid "Subversion python bindings could not be loaded"
+msgid "Could not load Subversion python bindings"
 msgstr ""
 
 #, python-format
@@ -1877,7 +1756,7 @@
 
 msgid ""
 "The extension reads its configuration from a versioned ``.hgeol``\n"
-"configuration file every time you run an ``hg`` command. The\n"
+"configuration file found in the root of the working copy. The\n"
 "``.hgeol`` file use the same syntax as all other Mercurial\n"
 "configuration files. It uses two sections, ``[patterns]`` and\n"
 "``[repository]``."
@@ -1959,6 +1838,13 @@
 msgstr ""
 
 msgid ""
+"The extension provides ``cleverencode:`` and ``cleverdecode:`` filters\n"
+"like the deprecated win32text extension does. This means that you can\n"
+"disable win32text and enable eol and your filters will still work. You\n"
+"only need to these filters until you have prepared a ``.hgeol`` file."
+msgstr ""
+
+msgid ""
 "The ``win32text.forbid*`` hooks provided by the win32text extension\n"
 "have been unified into a single hook named ``eol.hook``. The hook will\n"
 "lookup the expected line endings from the ``.hgeol`` file, which means\n"
@@ -2119,6 +2005,9 @@
 msgid "pass option to comparison program"
 msgstr ""
 
+msgid "revision"
+msgstr "revision"
+
 msgid "change made by revision"
 msgstr "ändring gjord av revision"
 
@@ -2847,9 +2736,8 @@
 msgstr ""
 
 msgid ""
-"Before changing/disabling active keywords, run :hg:`kwshrink` to avoid\n"
-"the risk of inadvertently storing expanded keywords in the change\n"
-"history."
+"Before changing/disabling active keywords, you must run :hg:`kwshrink`\n"
+"to avoid storing expanded keywords in the change history."
 msgstr ""
 
 msgid ""
@@ -2912,12 +2800,20 @@
 msgid "\textending current template maps\n"
 msgstr ""
 
-msgid "\toverriding default template maps\n"
+msgid "\toverriding default svn keywordset\n"
+msgstr ""
+
+msgid "\toverriding default cvs keywordset\n"
 msgstr ""
 
 msgid ""
 "\n"
-"\tconfiguration using default keyword template maps\n"
+"\tconfiguration using default svn keywordset\n"
+msgstr ""
+
+msgid ""
+"\n"
+"\tconfiguration using default cvs keywordset\n"
 msgstr ""
 
 msgid "\tdisabling current template maps\n"
@@ -2988,9 +2884,7 @@
 msgid "revert expanded keywords in the working directory"
 msgstr ""
 
-msgid ""
-"    Run before changing/disabling active keywords or if you experience\n"
-"    problems with :hg:`import` or :hg:`merge`."
+msgid "    Must be run before changing/disabling active keywords."
 msgstr ""
 
 msgid ""
@@ -3026,48 +2920,65 @@
 msgstr ""
 
 msgid "manage a stack of patches"
-msgstr ""
+msgstr "hantera en uppsättning patchar"
 
 msgid ""
 "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"
 "applied patches (subset of known patches)."
 msgstr ""
+"Denna utökning låter dej arbeta med en uppsättning patchar inuti ett\n"
+"Mercurial-arkiv. Den hantera två uppsättningar med patchar - alla kända\n"
+"patchar, och applicerade patchar (delmängd av kända patchar)."
 
 msgid ""
 "Known patches are represented as patch files in the .hg/patches\n"
 "directory. Applied patches are both patch files and changesets."
 msgstr ""
+"Kända patchar representeras av patchfiler i katalogen .hg/patches.\n"
+"Applicerade patchar är både patchfiler och ändringar."
 
 msgid "Common tasks (use :hg:`help command` for more details)::"
-msgstr ""
+msgstr "Vanliga kommandon (använd :hg:`help command` för mer detaljer):"
 
 msgid ""
 "  create new patch                          qnew\n"
 "  import existing patch                     qimport"
 msgstr ""
+"  skapa ny patch                            qnew\n"
+"  importera existerande patch               qimport"
 
 msgid ""
 "  print patch series                        qseries\n"
 "  print applied patches                     qapplied"
 msgstr ""
+"  skriv ut patchserie                       qseries\n"
+"  skriv ut applicerade patchar              qapplied"
 
 msgid ""
 "  add known patch to applied stack          qpush\n"
 "  remove patch from applied stack           qpop\n"
 "  refresh contents of top applied patch     qrefresh"
 msgstr ""
+"  applicera en redan känd patch             qpush\n"
+"  ta port en applicerad patch               qpop\n"
+"  uppdatera innehållet i senaste patchen    qrefresh"
 
 msgid ""
 "By default, mq will automatically use git patches when required to\n"
 "avoid losing file mode changes, copy records, binary files or empty\n"
 "files creations or deletions. This behaviour can be configured with::"
 msgstr ""
+"Som standard kommer mq automagiskt att använda git-patchar när det behövs\n"
+"för att inte förlora ändring av filläge, kopieringar, binära filer eller\n"
+"skapande/raderande av tomma filer. Detta beteende kan konfigureras med::"
 
 msgid ""
 "  [mq]\n"
 "  git = auto/keep/yes/no"
 msgstr ""
+"  [mq]\n"
+"  git = auto/keep/yes/no"
 
 msgid ""
 "If set to 'keep', mq will obey the [diff] section configuration while\n"
@@ -3075,22 +2986,29 @@
 "'no', mq will override the [diff] section and always generate git or\n"
 "regular patches, possibly losing data in the second case."
 msgstr ""
+"Om satt till 'keep' så kommer mq att lyda sektionen [diff] i\n"
+"konfigurationen medans existerande git-patchas bevaras vid qrefresh. Om\n"
+"satt till 'yes' eller 'no', kommer mq att ignorera sektionen [diff] och\n"
+"alltid generera git- eller vanliga patchar, även om data kan tappas i det\n"
+"andra fallet."
 
 msgid ""
 "You will by default be managing a patch queue named \"patches\". You can\n"
 "create other, independent patch queues with the :hg:`qqueue` command.\n"
 msgstr ""
+"Du kommer som standard att handera en patchkö vid namn \"patches\". Du\n"
+"kan skapa en ny, oberoende patchkö med kommandot :hg:`qqueue`.\n"
 
 #, python-format
 msgid "mq.git option can be auto/keep/yes/no got %s"
-msgstr ""
+msgstr "mq.git kan vara auto/keep/yes/no men läste %s"
 
 #, python-format
 msgid "%s appears more than once in %s"
-msgstr ""
+msgstr "%s finns mer än en gång i %s"
 
 msgid "guard cannot be an empty string"
-msgstr ""
+msgstr "guard kan inte vara en tom sträng"
 
 #, python-format
 msgid "guard %r starts with invalid character: %r"
@@ -3212,6 +3130,10 @@
 msgid "working directory revision is not qtip"
 msgstr ""
 
+#, python-format
+msgid "uncommitted changes in subrepository %s"
+msgstr "oarkiverade ändringar i underarkivet %s"
+
 msgid "local changes found, refresh first"
 msgstr ""
 
@@ -3256,14 +3178,14 @@
 msgstr ""
 
 #, python-format
+msgid "qpush: %s is already at the top\n"
+msgstr "qpush: %s är redan på toppen\n"
+
+#, python-format
 msgid "cannot push to a previous patch: %s"
 msgstr ""
 
 #, python-format
-msgid "qpush: %s is already at the top\n"
-msgstr ""
-
-#, python-format
 msgid "guarded by %r"
 msgstr ""
 
@@ -3280,6 +3202,16 @@
 msgid "patch series already fully applied\n"
 msgstr ""
 
+msgid "cannot use --exact and --move together"
+msgstr "kan inte använda --exact och --move tillsammans"
+
+msgid "cannot push --exact with applied patches"
+msgstr "kan inte trycka --exakt med applicerade patchar"
+
+#, python-format
+msgid "%s does not have a parent recorded"
+msgstr "%s har inte en angiven förälder"
+
 msgid "please specify the patch to move"
 msgstr "ange patchen som ska flyttas"
 
@@ -3328,18 +3260,6 @@
 msgid "cannot refresh a revision with children"
 msgstr ""
 
-#, python-format
-msgid "warning: not refreshing %s\n"
-msgstr "varning: uppdaterar inte %s\n"
-
-#, python-format
-msgid "warning: not adding %s\n"
-msgstr "varning: lägger inte till %s\n"
-
-#, python-format
-msgid "warning: not removing %s\n"
-msgstr "varning: tar inte bort %s\n"
-
 msgid ""
 "refresh interrupted while patch was popped! (revert --all, qpush to "
 "recover)\n"
@@ -3459,22 +3379,22 @@
 msgstr ""
 
 msgid "print the patches already applied"
-msgstr ""
+msgstr "skriv ut redan applicerade patchar"
 
 msgid "    Returns 0 on success."
 msgstr "    Returnerar 0 om kommandot lyckades."
 
 msgid "only one patch applied\n"
-msgstr ""
+msgstr "bara en patch applicerad\n"
 
 msgid "print the patches not yet applied"
-msgstr ""
+msgstr "skriv ut oapplicerade patchar"
 
 msgid "all patches applied\n"
-msgstr ""
+msgstr "alla patchar applicerade\n"
 
 msgid "import a patch"
-msgstr ""
+msgstr "importera en patch"
 
 msgid ""
 "    The patch is inserted into the series after the last applied\n"
@@ -4014,7 +3934,7 @@
 msgstr " (aktiv)\n"
 
 msgid "invalid queue name, may not contain the characters \":\\/.\""
-msgstr ""
+msgstr "ogiltigt könamn, kan inte innehålla tecknen \":\\/.\""
 
 #, python-format
 msgid "queue \"%s\" already exists"
@@ -4046,7 +3966,7 @@
 msgstr ""
 
 msgid "cannot import over an applied patch"
-msgstr ""
+msgstr "kan inte importera över en applicerad patch"
 
 msgid "only a local queue repository may be initialized"
 msgstr "bara ett lokalt köarkiv kan initialiseras"
@@ -4072,19 +3992,19 @@
 msgstr "arbeta med patcharkiv"
 
 msgid "print first line of patch header"
-msgstr ""
+msgstr "skriv ut första raden i patchheadern"
 
 msgid "show only the last patch"
 msgstr "visa bara den sista patchen"
 
 msgid "hg qapplied [-1] [-s] [PATCH]"
-msgstr ""
+msgstr "hg qapplied [-1] [-s] [PATCH]"
 
 msgid "use pull protocol to copy metadata"
 msgstr "använd pull-protokollet för att kopiera metadata"
 
 msgid "do not update the new working directories"
-msgstr ""
+msgstr "uppdatera inte de nya arbetskatalogerna"
 
 msgid "use uncompressed transfer (fast over LAN)"
 msgstr "använd okomprimerad överföring (snabbt över LAN)"
@@ -4120,7 +4040,7 @@
 msgstr ""
 
 msgid "hg qfold [-e] [-k] [-m TEXT] [-l FILE] PATCH..."
-msgstr ""
+msgstr "hg qfold [-e] [-k] [-m TEXT] [-l FIL] PATCH..."
 
 msgid "overwrite any local changes"
 msgstr ""
@@ -4138,11 +4058,14 @@
 msgstr ""
 
 msgid "hg qheader [PATCH]"
-msgstr ""
+msgstr "hg qheader [PATCH]"
 
 msgid "import file in patch directory"
 msgstr ""
 
+msgid "NAME"
+msgstr "NAMN"
+
 msgid "name of patch file"
 msgstr ""
 
@@ -4159,13 +4082,13 @@
 msgstr ""
 
 msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE..."
-msgstr ""
+msgstr "hg qimport [-e] [-n NAMN] [-f] [-g] [-P] [-r REV]... FIL..."
 
 msgid "create queue repository"
 msgstr ""
 
 msgid "hg qinit [-c]"
-msgstr ""
+msgstr "hg qinit [-c]"
 
 msgid "import uncommitted changes (DEPRECATED)"
 msgstr "importera icke arkiverade ändringar (FÖRLEGAD)"
@@ -4209,6 +4132,9 @@
 msgid "apply on top of local changes"
 msgstr ""
 
+msgid "apply the target patch to its recorded parent"
+msgstr "applicera patchen på dess angivna förälder"
+
 msgid "list patch name in commit text"
 msgstr ""
 
@@ -4569,35 +4495,48 @@
 msgstr ""
 
 msgid "command to send changesets as (a series of) patch emails"
-msgstr ""
+msgstr "kommando för att sända ändringar som (en uppsättning) mail"
 
 msgid ""
 "The series is started off with a \"[PATCH 0 of N]\" introduction, which\n"
 "describes the series as a whole."
 msgstr ""
+"Serien startas med en \"[PATCH 0 of N]\"-introduktion, som beskriver\n"
+"innehållet i serien."
 
 msgid ""
 "Each patch email has a Subject line of \"[PATCH M of N] ...\", using the\n"
 "first line of the changeset description as the subject text. The\n"
 "message contains two or three body parts:"
 msgstr ""
+"Varje patchmail har en ämnesraden \"[PATCH M of N] ...\", där den första\n"
+"raden i ändringsbeskrivningen används som ämnestext. Meddelandet innehåller\n"
+"två eller tre delar:"
 
 msgid ""
 "- The changeset description.\n"
 "- [Optional] The result of running diffstat on the patch.\n"
 "- The patch itself, as generated by :hg:`export`."
 msgstr ""
+"- Ändringsbeskrivningen.\n"
+"- [Valfritt] Resultatet av diffstat på patchen.\n"
+"- Patchen, som genererad av :hg:`export`."
 
 msgid ""
 "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"
 "mail and news readers, and in mail archives."
 msgstr ""
+"Varje meddelande refererar till den första i serien med hjälp av\n"
+"In-Reply-To och References, så de kommer att visas upp som en sekvens i\n"
+"trådade mail- och news-läsare, och i mailarkiv."
 
 msgid ""
 "To configure other defaults, add a section like this to your hgrc\n"
 "file::"
 msgstr ""
+"För att konfigurera andra inställningar, lägg till en sådan här sektion\n"
+"till din hgrc-fil::"
 
 msgid ""
 "  [email]\n"
@@ -4607,16 +4546,26 @@
 "  bcc = bcc1, bcc2, ...\n"
 "  reply-to = address1, address2, ..."
 msgstr ""
+"  [email]\n"
+"  from = Mitt Namn <min@email>\n"
+"  to = mottagare1, mottagare2, ...\n"
+"  cc = cc1, cc2, ...\n"
+"  bcc = bcc1, bcc2, ...\n"
+"  reply-to = adress1, adress2, ..."
 
 msgid ""
 "Use ``[patchbomb]`` as configuration section name if you need to\n"
 "override global ``[email]`` address settings."
 msgstr ""
+"Använd ``[patchbomb]`` som namn på konfigurationssektionen om du behöver\n"
+"ändra globala adressinställningar i ``[email]``."
 
 msgid ""
 "Then you can use the :hg:`email` command to mail a series of\n"
 "changesets as a patchbomb."
 msgstr ""
+"Därefter kan du använda kommandot :hg:`email` för att maila en serie\n"
+"ändringar som en patchbomb."
 
 msgid ""
 "You can also either configure the method option in the email section\n"
@@ -4625,6 +4574,10 @@
 "directly from the commandline. See the [email] and [smtp] sections in\n"
 "hgrc(5) for details.\n"
 msgstr ""
+"Du kan också endera konfigurera alternativet method i email-sektionen att\n"
+"vara en sendmail-kompatibel sändare eller fylla i sektionen [smtp] så att\n"
+"patchbomb-utäkningen automatiskt kan skicka patchbomber från kommandoraden.\n"
+"Se sektionerna [email] och [smtp] i hgrc(5) för detaljer.\n"
 
 #, python-format
 msgid "%s Please enter a valid value"
@@ -4634,13 +4587,16 @@
 msgstr "Ange ett giltigt värde.\n"
 
 msgid "send changesets by email"
-msgstr ""
+msgstr "sänd ändringar via email"
 
 msgid ""
 "    By default, diffs are sent in the format generated by\n"
 "    :hg:`export`, one per message. The series starts with a \"[PATCH 0\n"
 "    of N]\" introduction, which describes the series as a whole."
 msgstr ""
+"    Som standard skickas diffar i samma format som :hg:`export` genererar,\n"
+"    ett per meddelande. Serien börjar med en introduktion med rubriken\n"
+"    \"[PATCH 0 of N]\", som beskriver serien i helhet."
 
 msgid ""
 "    Each patch email has a Subject line of \"[PATCH M of N] ...\", using\n"
@@ -4648,14 +4604,20 @@
 "    The message contains two or three parts. First, the changeset\n"
 "    description."
 msgstr ""
+"    Varje patchmail har en ämnesrad med texten \"[PATCH M of N] ...\", och\n"
+"    använder den första raden i ändringsbeskrivningen som ämnestext.\n"
+"    Meddelandet innehåller två eller tre delar. Först, beskrivningen av\n"
+"    ändringen."
 
 msgid ""
 "    With the -d/--diffstat option, if the diffstat program is\n"
 "    installed, the result of running diffstat on the patch is inserted."
 msgstr ""
+"    Med flaggan -d/--diffstat, om programmet diffstat är installerat,\n"
+"    läggs resultatet av att köra diffstat på patchen in."
 
 msgid "    Finally, the patch itself, as generated by :hg:`export`."
-msgstr ""
+msgstr "    Till slut, patchen, som genererad av :hg:`export`."
 
 msgid ""
 "    With the -d/--diffstat or -c/--confirm options, you will be presented\n"
@@ -4700,6 +4662,13 @@
 msgstr ""
 
 msgid ""
+"    In case email sending fails, you will find a backup of your series\n"
+"    introductory message in ``.hg/last-email.txt``."
+msgstr ""
+"    Om sändning av mailet misslyckas, kommer du att hitta en backup av\n"
+"    introduktionsmeddelandet i ``.hg/last-email.txt``."
+
+msgid ""
 "      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"
@@ -4736,6 +4705,10 @@
 "    "
 msgstr ""
 
+#, python-format
+msgid "comparing with %s\n"
+msgstr "jämför med %s\n"
+
 msgid "no changes found\n"
 msgstr "inga ändringar hittades\n"
 
@@ -4805,7 +4778,7 @@
 msgstr ""
 
 msgid "ask for confirmation before sending"
-msgstr ""
+msgstr "bekräfta innan sändning"
 
 msgid "add diffstat output to messages"
 msgstr ""
@@ -4865,7 +4838,7 @@
 msgstr ""
 
 msgid "hg email [OPTION]... [DEST]..."
-msgstr ""
+msgstr "hg email [FLAGGA]... [DEST]..."
 
 msgid "show progress bars for some actions"
 msgstr ""
@@ -4884,7 +4857,7 @@
 "  [progress]\n"
 "  delay = 3 # number of seconds (float) before showing the progress bar\n"
 "  refresh = 0.1 # time in seconds between refreshes of the progress bar\n"
-"  format = topic bar number # format of the progress bar\n"
+"  format = topic bar number estimate # format of the progress bar\n"
 "  width = <none> # if set, the maximum width of the progress information\n"
 "                 # (that is, min(width, term width) will be used)\n"
 "  clear-complete = True # clear the progress bar after it's done\n"
@@ -4894,11 +4867,42 @@
 msgstr ""
 
 msgid ""
-"Valid entries for the format field are topic, bar, number, unit, and\n"
-"item. item defaults to the last 20 characters of the item, but this\n"
-"can be changed by adding either ``-<num>`` which would take the last\n"
-"num characters, or ``+<num>`` for the first num characters.\n"
-msgstr ""
+"Valid entries for the format field are topic, bar, number, unit,\n"
+"estimate, and item. item defaults to the last 20 characters of the\n"
+"item, but this can be changed by adding either ``-<num>`` which would\n"
+"take the last num characters, or ``+<num>`` for the first num\n"
+"characters.\n"
+msgstr ""
+
+#. i18n: format XX seconds as "XXs"
+#, python-format
+msgid "%02ds"
+msgstr "%02ds"
+
+#. i18n: format X minutes and YY seconds as "XmYYs"
+#, python-format
+msgid "%dm%02ds"
+msgstr "%dm%02ds"
+
+#. i18n: format X hours and YY minutes as "XhYYm"
+#, python-format
+msgid "%dh%02dm"
+msgstr "%dt%02dm"
+
+#. i18n: format X days and YY hours as "XdYYh"
+#, python-format
+msgid "%dd%02dh"
+msgstr "%dd%02dt"
+
+#. i18n: format X weeks and YY days as "XwYYd"
+#, python-format
+msgid "%dw%02dd"
+msgstr "%dv%02dd"
+
+#. i18n: format X years and YY weeks as "XyYYw"
+#, python-format
+msgid "%dy%02dw"
+msgstr "%då%02dv"
 
 msgid "command to delete untracked files from the working directory"
 msgstr ""
@@ -5269,8 +5273,9 @@
 msgid "running non-interactively, use commit instead"
 msgstr ""
 
-msgid "cannot partially commit a merge (use hg commit instead)"
-msgstr ""
+msgid "cannot partially commit a merge (use \"hg commit\" instead)"
+msgstr ""
+"kan inte delvis arkivera en sammanfogning (använd \"hg commit\" istället)"
 
 msgid "no changes to record\n"
 msgstr ""
@@ -5677,7 +5682,7 @@
 msgid ""
 "- You should use single encoding in one repository.\n"
 "- If the repository path ends with 0x5c, .hg/hgrc cannot be read.\n"
-"- win32mbcs is not compatible with fixutf8 extention."
+"- win32mbcs is not compatible with fixutf8 extension."
 msgstr ""
 
 msgid ""
@@ -5840,6 +5845,19 @@
 msgid "unknown archive type '%s'"
 msgstr ""
 
+msgid "archiving"
+msgstr "arkiverar"
+
+#, python-format
+msgid "bookmark '%s' contains illegal character"
+msgstr "bokmärket '%s' innehåller ogiltiga tecken"
+
+msgid "searching for changed bookmarks\n"
+msgstr "söker efter ändrade bokmärken\n"
+
+msgid "no changed bookmarks found\n"
+msgstr "inga ändrade bokmärken hittades\n"
+
 msgid "invalid changegroup"
 msgstr ""
 
@@ -5854,8 +5872,13 @@
 msgstr ""
 
 #, python-format
-msgid "premature EOF reading chunk (got %d bytes, expected %d)"
-msgstr ""
+msgid "stream ended unexpectedly (got %d bytes, expected %d)"
+msgstr "strömmen slutade abrupt (fick %d bytes av förväntade %d)"
+
+# python-format
+#, python-format
+msgid "invalid chunk length %d"
+msgstr "ogiltig styckelängd %d"
 
 #, python-format
 msgid "%s: not a Mercurial bundle"
@@ -5981,6 +6004,10 @@
 msgstr "gren:        %s\n"
 
 #, python-format
+msgid "bookmark:    %s\n"
+msgstr "bokmärke:    %s\n"
+
+#, python-format
 msgid "tag:         %s\n"
 msgstr "märke:       %s\n"
 
@@ -6154,12 +6181,12 @@
 
 msgid ""
 "    New files are ignored if they match any of the patterns in\n"
-"    .hgignore. As with add, these changes take effect at the next\n"
+"    ``.hgignore``. As with add, these changes take effect at the next\n"
 "    commit."
 msgstr ""
 "    Nya filer ignoreras om de överrensstämmer något av mönstren i\n"
-"    .hgignore. Precis som med add, kommer ändringarna att träda i kraft vid\n"
-"    nästa arkivering."
+"    ``.hgignore``. Precis som med add, kommer ändringarna att träda i kraft\n"
+"     vid nästa arkivering."
 
 msgid ""
 "    Use the -s/--similarity option to detect renamed files. With a\n"
@@ -6285,50 +6312,41 @@
 msgstr "omvänd effekten från en tidigare ändring"
 
 msgid ""
-"    The backout command merges the reverse effect of the reverted\n"
-"    changeset into the working directory."
-msgstr ""
-"    Kommandot backout sammanfogar den omvända effekven av den återkallade\n"
-"    ändringen i arbetskatalogen."
-
-msgid ""
-"    With the --merge option, it first commits the reverted changes\n"
-"    as a new changeset. This new changeset is a child of the reverted\n"
-"    changeset.\n"
-"    The --merge option remembers the parent of the working directory\n"
-"    before starting the backout, then merges the new head with that\n"
-"    changeset afterwards.\n"
-"    This will result in an explicit merge in the history."
-msgstr ""
-"    Med flaggan --merge arkiveras först de återkallade ändringarna som en\n"
-"    ny ändring. Denna ny ändring är en ättling till den återkallade\n"
-"    ändringen.\n"
-"    Flaggan --merge kommer ihåg arbetskatalogens förälder innan\n"
-"    återkallningen påbörjas, och sammanfogar sedan det nya huvudet med den\n"
-"    ändringen efteråt.\n"
-"    Detta resulterar i en explicit sammanfogning i historiken"
-
-msgid ""
-"    If you backout a changeset other than the original parent of the\n"
-"    working directory, the result of this merge is not committed,\n"
-"    as with a normal merge. Otherwise, no merge is needed and the\n"
-"    commit is automatic."
-msgstr ""
-"    Om du tar tillbaka en annan ändring än originalföräldern till\n"
-"    arbetskatalogen, så arkiveras inte resultatet av sammanfogningen, som\n"
-"    vid en normal sammanfogning. Annars behövs ingen sammanfogning, och\n"
-"    arkiveringen är automatisk."
-
-msgid ""
-"    Note that the default behavior (without --merge) has changed in\n"
-"    version 1.7. To restore the previous default behavior, use\n"
-"    :hg:`backout --merge` and then :hg:`update --clean .` to get rid of\n"
-"    the ongoing merge."
-msgstr ""
-"    Notera att standardförfarandet (utan --merge) har ändrats i version\n"
-"    1.7. För att återställa det gamla standardförfarandet, använd :hg:`\n"
-"    backout --merge` och sedan :hg:`update --clean .` för att bli av med\n"
-"    den pågående sammanfogningen."
+"    Prepare a new changeset with the effect of REV undone in the\n"
+"    current working directory."
+msgstr ""
+"    Förbered en ny ändring där effekterna av REV ogörs i arbetskatalogen."
+
+msgid ""
+"    If REV is the parent of the working directory, then this new changeset\n"
+"    is committed automatically. Otherwise, hg needs to merge the\n"
+"    changes and the merged result is left uncommitted."
+msgstr ""
+"    Om REV är förälder till arbetskatalogen, så arkiveras denna ändring\n"
+"    automatiskt. Annars krävs att hg sammanfogar ändringarna och det\n"
+"    sammanfogade resultatet lämnas oarkiverat."
+
+msgid ""
+"    By default, the pending changeset will have one parent,\n"
+"    maintaining a linear history. With --merge, the pending changeset\n"
+"    will instead have two parents: the old parent of the working\n"
+"    directory and a new child of REV that simply undoes REV."
+msgstr ""
+"    Som standard kommer ändringen att ha en förälder, för att bibehålla en\n"
+"    linjär historik. Med --merge kommer ändringen istället att ha två\n"
+"    föräldrar: den gamla föräldern från arbetskatalogen och ett nytt barn\n"
+"    av REV som helt enkelt ogör REV."
+
+msgid ""
+"    Before version 1.7, the behavior without --merge was equivalent to\n"
+"    specifying --merge followed by :hg:`update --clean .` to cancel\n"
+"    the merge and leave the child of REV as a head to be merged\n"
+"    separately."
+msgstr ""
+"    Innan version 1.7, så var beteendet utan --merge ekvivalent med att\n"
+"    specificera --merge följt av :hg:`update --clean .` för att ångra\n"
+"    sammanfogningen och lämna barnet till REV som ett huvud att\n"
+"    sammanfogas separat."
 
 msgid "please specify just one revision"
 msgstr "specificera bara en revision"
@@ -6449,6 +6467,69 @@
 msgid "Testing changeset %d:%s (%d changesets remaining, ~%d tests)\n"
 msgstr "Testar ändring %d:%s (%d ändringar kvar, ~%d test)\n"
 
+msgid "track a line of development with movable markers"
+msgstr "spåra viss utveckling med flyttbara markörer"
+
+msgid ""
+"    Bookmarks are pointers to certain commits that move when\n"
+"    committing. Bookmarks are local. They can be renamed, copied and\n"
+"    deleted. It is possible to use bookmark names in :hg:`merge` and\n"
+"    :hg:`update` to merge and update respectively to a given bookmark."
+msgstr ""
+"    Bokmärken är pekare till utvalda arkiveringar som flyttar vid\n"
+"    arkivering. Bokmärken är lokala. De kan döpas om, kopieras och\n"
+"    raderas. Det är möjligt att använda bokmärkesnamn i :hg:`merge` och\n"
+"    :hg:`update` för att sammanfoga och uppdatera till ett visst bokmärke."
+
+msgid ""
+"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
+"    directory's parent revision with the given name. If you specify\n"
+"    a revision using -r REV (where REV may be an existing bookmark),\n"
+"    the bookmark is assigned to that revision."
+msgstr ""
+"    Du kan använda :hg:`bookmark NAMN` för att sätta ett bokmärke på\n"
+"    arbetskatalogens föräldrarevision med det angivna namnet. Om du anger\n"
+"    en revision med -r REV (där REV kan vara ett existerande bokmärke), så\n"
+"    tilldelas bokmärket till den revisionen."
+
+msgid ""
+"    Bookmarks can be pushed and pulled between repositories (see :hg:`help\n"
+"    push` and :hg:`help pull`). This requires both the local and remote\n"
+"    repositories to support bookmarks. For versions prior to 1.8, this "
+"means\n"
+"    the bookmarks extension must be enabled.\n"
+"    "
+msgstr ""
+"    Bokmärken kan tryckas och dras mellan arkiv (se :hg:`help push` och\n"
+"    :hg:`help pull`). Detta kräver att både det lokala och fjärrarkivet\n"
+"    stödjer bokmärken. För versioner innan 1.8, så betyder det att\n"
+"    bookmarks-utökningen måste vara aktiverad.\n"
+"    "
+
+msgid "a bookmark of this name does not exist"
+msgstr "ett bokmärke med det namnet existerar inte"
+
+msgid "a bookmark of the same name already exists"
+msgstr "ett bokmärke med det namnet existerar redan"
+
+msgid "new bookmark name required"
+msgstr "nytt bokmärkesnamn krävs"
+
+msgid "bookmark name required"
+msgstr "bokmärkesnamn krävs"
+
+msgid "bookmark name cannot contain newlines"
+msgstr "bokmärkesnamn kan inte innehålla radbrytningar"
+
+msgid "bookmark names cannot consist entirely of whitespace"
+msgstr "bokmärkesnamn kan inte bara bestå av blanktecken"
+
+msgid "a bookmark cannot have the name of an existing branch"
+msgstr "ett bokmärket kan inte ha samma namn som en existerande gren"
+
+msgid "no bookmarks set\n"
+msgstr "inget bokmärke satt\n"
+
 msgid "set or show the current branch name"
 msgstr "sätt eller visa det aktuella grennamnet"
 
@@ -6642,21 +6723,21 @@
 
 msgid ""
 "    The location of the source is added to the new repository's\n"
-"    .hg/hgrc file, as the default to be used for future pulls."
-msgstr ""
-"    Källans plats kommer att läggas till i det nya arkivets .hg/hgrc-fil\n"
-"    som standardplats att användas för framtida dragningar."
+"    ``.hg/hgrc`` file, as the default to be used for future pulls."
+msgstr ""
+"    Källans plats kommer att läggas till i det nya arkivets\n"
+"    ``.hg/hgrc``-fil som standardplats att användas för framtida dragningar."
 
 msgid "    See :hg:`help urls` for valid source format details."
 msgstr "    Se :hg:`help urls` för detaljer om giltiga källformat."
 
 msgid ""
 "    It is possible to specify an ``ssh://`` URL as the destination, but no\n"
-"    .hg/hgrc and working directory will be created on the remote side.\n"
+"    ``.hg/hgrc`` and working directory will be created on the remote side.\n"
 "    Please see :hg:`help urls` for important details about ``ssh://`` URLs."
 msgstr ""
 "    Det är möjligt att specificera en ``ssh://``-URL som destination, men\n"
-"    ingen .hg/hgrc och arbetskatalog skapas på fjärrsidan.\n"
+"    ingen ``.hg/hgrc`` och arbetskatalog skapas på fjärrsidan.\n"
 "    Se :hg:`help urls` för viktiga detaljer om ``ssh://``-URLer."
 
 msgid ""
@@ -6761,11 +6842,11 @@
 
 msgid ""
 "    Commit changes to the given files into the repository. Unlike a\n"
-"    centralized RCS, this operation is a local operation. See\n"
+"    centralized SCM, this operation is a local operation. See\n"
 "    :hg:`push` for a way to actively distribute your changes."
 msgstr ""
 "    Arkiverar ändringar för de angivna filerna i arkivet. Till skillnad\n"
-"    från ett centralicerat RCS, är detta en lokal operation. Se :hg:`push`\n"
+"    från ett centralicerat SCM, är detta en lokal operation. Se :hg:`push`\n"
 "    för ett sätt att aktivt distribuera dina ändringar."
 
 msgid ""
@@ -7040,9 +7121,19 @@
 msgid "parse and display a date"
 msgstr ""
 
+msgid "display the combined ignore pattern"
+msgstr "visa det sammansatta ignoreringsmönstret"
+
+msgid "no ignore patterns found"
+msgstr "inget ignoreringsmönster hittades"
+
 msgid "dump the contents of an index file"
 msgstr ""
 
+#, python-format
+msgid "unknown format %d"
+msgstr "okänt format %d"
+
 msgid "dump an index DAG as a graphviz dot file"
 msgstr ""
 
@@ -7421,8 +7512,9 @@
 "använd \"hg help\" för en full kommandolista eller \"hg -v\" för detaljer"
 
 #, python-format
-msgid "use \"hg -v help%s\" to show aliases and global options"
-msgstr "använd \"hg -v help%s\" för att visa alias och globala flaggor"
+msgid "use \"hg -v help%s\" to show builtin aliases and global options"
+msgstr ""
+"använd \"hg -v help%s\" för att visa inbyggda alias och globala flaggor"
 
 #, python-format
 msgid "use \"hg -v help %s\" to show global options"
@@ -7544,6 +7636,9 @@
 "    oarkiverade ändringar i arbetskatalogen, en lista av märken för den\n"
 "    här revisionen och ett grennamn för grenar som inte är default."
 
+msgid "can't query remote revision number, branch, tags, or bookmarks"
+msgstr "kan inte efterfråga revisionsnummer, gren, märken eller bokmärken"
+
 msgid "import an ordered set of patches"
 msgstr ""
 
@@ -7643,6 +7738,9 @@
 msgid "cannot combine --bundle and --subrepos"
 msgstr ""
 
+msgid "remote doesn't support bookmarks\n"
+msgstr "fjärrserver stödjer inte bokmärken\n"
+
 msgid "create a new repository in the given directory"
 msgstr "skapa ett nytt arkiv i den angivna katalogen"
 
@@ -8002,6 +8100,10 @@
 "    filer.\n"
 "    "
 
+#, python-format
+msgid "remote bookmark %s not found!"
+msgstr "fjärrbokmärket %s hittades inte!"
+
 msgid ""
 "other repository doesn't support revision lookup, so a rev cannot be "
 "specified."
@@ -8009,6 +8111,10 @@
 "det andra arkivet stödjer inte revisionsuppslag, så en revision kan inte "
 "anges."
 
+#, python-format
+msgid "importing bookmark %s\n"
+msgstr "importerar bokmärket %s\n"
+
 msgid "push changes to the specified destination"
 msgstr "tryck ändringar till den specificerade destinationen"
 
@@ -8077,6 +8183,22 @@
 msgid "pushing to %s\n"
 msgstr "trycker till %s\n"
 
+#, python-format
+msgid "exporting bookmark %s\n"
+msgstr "exporterar bokmärket %s\n"
+
+#, python-format
+msgid "deleting remote bookmark %s\n"
+msgstr "raderar fjärrbokmärket %s\n"
+
+#, python-format
+msgid "bookmark %s does not exist on the local or remote repository!\n"
+msgstr "bokmärket %s existerar inte i lokal- eller fjärrarkiv!\n"
+
+#, python-format
+msgid "updating bookmark %s failed!\n"
+msgstr "uppdatering av bokmärket %s misslyckades!\n"
+
 msgid "roll back an interrupted transaction"
 msgstr "ångra en avbruten transaktion"
 
@@ -8344,6 +8466,9 @@
 msgid "you can't specify a revision and a date"
 msgstr "du kan inte specificera en revision och ett datum"
 
+msgid "uncommitted merge - use \"hg update\", see \"hg help revert\""
+msgstr "oarkiverad sammanfogning - använd \"hg update\", se \"hg help revert\""
+
 msgid "no files or directories specified; use --all to revert the whole repo"
 msgstr ""
 "inga filer eller kataloger angivna; använd --all för att återställa hela "
@@ -8671,6 +8796,14 @@
 msgstr "%d utgående"
 
 #, python-format
+msgid "%d incoming bookmarks"
+msgstr "%d inkommande bokmärken"
+
+#, python-format
+msgid "%d outgoing bookmarks"
+msgstr "%d utgående bokmärken"
+
+#, python-format
 msgid "remote: %s\n"
 msgstr "fjärran: %s\n"
 
@@ -8919,11 +9052,11 @@
 msgstr "(se http://mercurial.selenic.com för mer information)"
 
 msgid ""
-"Copyright (C) 2005-2010 Matt Mackall and others\n"
+"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 ""
-"Copyright (C) 2005-2010 Matt Mackall och andra\n"
+"Copyright (C) 2005-2011 Matt Mackall och andra\n"
 "Detta är fri mjukvara; se källkoden för kopieringsvillkor. Det ges INGEN\n"
 "garanti; inte ens för SÄLJBARHET eller ATT PASSA FÖR ETT VISST ÄNDAMÅL.\n"
 
@@ -8993,6 +9126,10 @@
 msgid "specify hg command to run on the remote side"
 msgstr "specificera hg-kommando att köra på andra sidan"
 
+msgid "do not verify server certificate (ignoring web.cacerts config)"
+msgstr ""
+"verifiera inte servercertifikatet (ignorerar web.cacerts-konfiguration)"
+
 msgid "PATTERN"
 msgstr "MÖNSTER"
 
@@ -9149,6 +9286,18 @@
 msgid "[-gbsr] [-U] [-c CMD] [REV]"
 msgstr "[-gbsr] [-U] [-c KMD] [REV]"
 
+msgid "force"
+msgstr "tvinga"
+
+msgid "delete a given bookmark"
+msgstr "ta bort angivet bokmärke"
+
+msgid "rename a given bookmark"
+msgstr "döp om angivet bokmärke"
+
+msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
+msgstr "hg bookmarks [-f] [-d] [-m NAMN] [-r REV] [NAMN]"
+
 msgid "set branch name even if it shadows an existing branch"
 msgstr "sätt grennamnet även om det döljer en existerande gren"
 
@@ -9387,8 +9536,11 @@
 msgid "show tags"
 msgstr "visa märken"
 
-msgid "[-nibt] [-r REV] [SOURCE]"
-msgstr "[-nibt] [-r REV] [KÄLLA]"
+msgid "show bookmarks"
+msgstr "visa bokmärken"
+
+msgid "[-nibtB] [-r REV] [SOURCE]"
+msgstr "[-nibtB] [-r REV] [KÄLLA]"
 
 msgid ""
 "directory strip option for patch. This has the same meaning as the "
@@ -9428,6 +9580,9 @@
 msgid "a remote changeset intended to be added"
 msgstr "en fjärrändring som avses att läggas till"
 
+msgid "compare bookmarks"
+msgstr "jämför bokmärken"
+
 msgid "a specific branch you would like to pull"
 msgstr "en specifik gren som du vill dra"
 
@@ -9524,12 +9679,21 @@
 msgid "run even when remote repository is unrelated"
 msgstr "kör även när fjärrarkivet är orelaterat"
 
+msgid "BOOKMARK"
+msgstr "BOKMÄRKE"
+
+msgid "bookmark to pull"
+msgstr "bokmärke att dra"
+
 msgid "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]"
 msgstr "[-u] [-f] [-r REV]... [-e KMD] [--remotecmd KMD] [KÄLLA]"
 
 msgid "force push"
 msgstr "tvinga tryckning"
 
+msgid "bookmark to push"
+msgstr "bokmärke att trycka"
+
 msgid "allow pushing a new branch"
 msgstr "tillåt att trycka en ny gren"
 
@@ -9972,6 +10136,11 @@
 
 #, python-format
 msgid ""
+"No argument found for substitution of %i variable in alias '%s' definition."
+msgstr ""
+
+#, python-format
+msgid ""
 "error in definition for alias '%s': %s may only be given on the command "
 "line\n"
 msgstr ""
@@ -10039,6 +10208,10 @@
 msgstr ""
 
 #, python-format
+msgid "warning: error finding commands in %s\n"
+msgstr "varning: kunde inte hitta kommandon i %s\n"
+
+#, python-format
 msgid "couldn't find merge tool %s\n"
 msgstr ""
 
@@ -11473,6 +11646,13 @@
 "För att använda reguljära uttryck från Perl/Python, börja ett namn med\n"
 "``re:``. Regexp-mönstermatchning har sin början i arkivroten."
 
+msgid ""
+"To read name patterns from a file, use ``listfile:`` or ``listfile0:``.\n"
+"The latter expects null delimited patterns while the former expects line\n"
+"feeds. Each string read from the file is itself treated as a file\n"
+"pattern."
+msgstr ""
+
 msgid "Plain examples::"
 msgstr "Råa exempel::"
 
@@ -11507,10 +11687,17 @@
 msgid "Regexp examples::"
 msgstr "Regexp-exempel::"
 
-msgid ""
-"  re:.*\\.c$      any name ending in \".c\", anywhere in the repository\n"
-msgstr ""
-"  re:.*\\.c$      alla namn som slutar med \".c\", var som helst i arkivet\n"
+msgid "  re:.*\\.c$      any name ending in \".c\", anywhere in the repository"
+msgstr ""
+"  re:.*\\.c$      alla namn som slutar med \".c\", var som helst i arkivet"
+
+msgid "File examples::"
+msgstr "Filexempel::"
+
+msgid ""
+"  listfile:list.txt  read list from list.txt with one file pattern per line\n"
+"  listfile0:list.txt read list from list.txt with null byte delimiters\n"
+msgstr ""
 
 msgid "Mercurial supports several ways to specify individual revisions."
 msgstr "Mercurial stöder flera sätt att ange individuella revisioner."
@@ -11828,7 +12015,10 @@
 ":commit: commit creates a consistent snapshot of the state of the\n"
 "    entire project and its subrepositories. It does this by first\n"
 "    attempting to commit all modified subrepositories, then recording\n"
-"    their state and finally committing it in the parent repository."
+"    their state and finally committing it in the parent\n"
+"    repository. Mercurial can be made to abort if any subrepository\n"
+"    content is modified by setting \"ui.commitsubrepos=no\" in a\n"
+"    configuration file (see :hg:`help config`)."
 msgstr ""
 
 msgid ""
@@ -11936,8 +12126,9 @@
 msgstr ""
 
 msgid ""
-":branches: String. The name of the branch on which the changeset was\n"
-"    committed. Will be empty if the branch name was default."
+":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 ":children: List of strings. The children of the changeset."
@@ -12152,7 +12343,7 @@
 "  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]"
+"  ssh://[user@]host[:port]/[path][#revision]"
 msgstr ""
 
 msgid ""
@@ -12308,6 +12499,10 @@
 msgstr ""
 
 #, python-format
+msgid "config file %s not found!"
+msgstr "konfigurationsfilen %s hittades inte!"
+
+#, python-format
 msgid "error reading %s/.hg/hgrc: %s\n"
 msgstr ""
 
@@ -12454,6 +12649,10 @@
 msgstr ""
 
 #, python-format
+msgid "warning: ignoring unknown working parent %s!\n"
+msgstr ""
+
+#, python-format
 msgid "%r cannot be used in a tag name"
 msgstr ""
 
@@ -12482,12 +12681,12 @@
 msgstr ""
 
 #, python-format
-msgid "rolling back to revision %s (undo %s: %s)\n"
-msgstr "återgår till revisionen %s (ångra %s: %s)\n"
-
-#, python-format
-msgid "rolling back to revision %s (undo %s)\n"
-msgstr "återgår till revisionen %s (ångra %s)\n"
+msgid "repository tip rolled back to revision %s (undo %s: %s)\n"
+msgstr "arkivtopp tillbakadragen till revision %s (ångra %s: %s)\n"
+
+#, python-format
+msgid "repository tip rolled back to revision %s (undo %s)\n"
+msgstr "arkivtopp tillbakadragen till revision %s (ångra %s)\n"
 
 msgid "rolling back unknown transaction\n"
 msgstr "återkallar okänd transaktion\n"
@@ -12496,6 +12695,14 @@
 msgid "Named branch could not be reset, current branch still is: %s\n"
 msgstr ""
 
+#, python-format
+msgid "working directory now based on revisions %d and %d\n"
+msgstr "arbetskatalogen är nu baserad på revisionerna %d och %d\n"
+
+#, python-format
+msgid "working directory now based on revision %d\n"
+msgstr "arbetskatalogen är nu baserad på revision %d\n"
+
 msgid "no rollback information available\n"
 msgstr ""
 
@@ -12517,10 +12724,15 @@
 
 msgid "cannot partially commit a merge (do not specify files or patterns)"
 msgstr ""
+"kan inte delvis arkivera en sammanfogning (ange inte filer eller mönster"
 
 msgid "can't commit subrepos without .hgsub"
 msgstr "kan inte arkivera underarkiv utan .hgsub"
 
+#, python-format
+msgid "uncommitted changes in subrepo %s"
+msgstr "oarkiverade ändringar i underarkivet %s"
+
 msgid "file not found!"
 msgstr "filen hittades inte!"
 
@@ -12556,37 +12768,39 @@
 "changegroupsubset."
 
 #, python-format
+msgid "updating bookmark %s\n"
+msgstr "uppdaterar bokmärket %s\n"
+
+#, python-format
+msgid "not updating divergent bookmark %s\n"
+msgstr "uppdaterar inte divergent bokmärke %s\n"
+
+#, python-format
 msgid "%d changesets found\n"
 msgstr "%d ändringar hittades\n"
 
-msgid "bundling changes"
-msgstr "buntar ändringar"
+msgid "bundling"
+msgstr "buntar"
+
+msgid "manifests"
+msgstr "manifest"
+
+#, python-format
+msgid "empty or missing revlog for %s"
+msgstr "tom eller ingen revlog för %s"
+
+msgid "adding changesets\n"
+msgstr "lägger till ändringar\n"
 
 msgid "chunks"
 msgstr "stycken"
 
-msgid "bundling manifests"
-msgstr "buntar manifest"
-
-#, python-format
-msgid "empty or missing revlog for %s"
-msgstr "tom eller saknad revlog för %s"
-
-msgid "bundling files"
-msgstr "buntar filer"
-
-msgid "adding changesets\n"
-msgstr "lägger till ändringar\n"
-
 msgid "received changelog group is empty"
 msgstr "mottagen ändringsgrupp är tom"
 
 msgid "adding manifests\n"
 msgstr "lägger till manifest\n"
 
-msgid "manifests"
-msgstr "manifest"
-
 msgid "adding file changes\n"
 msgstr "lägger till filändringar\n"
 
@@ -12628,6 +12842,12 @@
 msgid "transferred %s in %.1f seconds (%s/sec)\n"
 msgstr "överförde %s på %.1f sekunder (%s/sek)\n"
 
+msgid "can't use TLS: Python SSL support not installed"
+msgstr "kan inte använda TLS: Pythons SSL-stöd är inte installerat"
+
+msgid "(using smtps)\n"
+msgstr "(använder smtps)\n"
+
 msgid "smtp.host not configured - cannot send mail"
 msgstr "smtp.host är inte konfigurerad - kan inte sända mail"
 
@@ -12635,11 +12855,8 @@
 msgid "sending mail: smtp host %s, port %s\n"
 msgstr "sänder mail: smtp-server %s, port %s\n"
 
-msgid "can't use TLS: Python SSL support not installed"
-msgstr "kan inte använda TLS: Pythons SSL-stöd är inte installerat"
-
-msgid "(using tls)\n"
-msgstr "(använder tls)\n"
+msgid "(using starttls)\n"
+msgstr "(använder starttls)\n"
 
 #, python-format
 msgid "(authenticating to mail server as %s)\n"
@@ -12680,6 +12897,10 @@
 msgstr "ogiltigt mönster"
 
 #, python-format
+msgid "unable to read file list (%s)"
+msgstr "kan inte läsa fillistan (%s)"
+
+#, python-format
 msgid "diff context lines count must be an integer, not %r"
 msgstr ""
 
@@ -12764,6 +12985,10 @@
 msgid "outstanding uncommitted changes (use 'hg status' to list changes)"
 msgstr ""
 
+#, python-format
+msgid "outstanding uncommitted changes in subrepository '%s'"
+msgstr "kvarvarande oarkiverade ändringar i underarkivet '%s'"
+
 msgid "crosses branches (merge branches or use --clean to discard changes)"
 msgstr ""
 
@@ -12777,7 +13002,7 @@
 msgstr ""
 
 msgid "!Danger!"
-msgstr ""
+msgstr "!Fara!"
 
 msgid "Error:"
 msgstr "Fel:"
@@ -13006,18 +13231,19 @@
 msgstr "rev förväntar sig ett nummer"
 
 msgid ""
-"``p1(set)``\n"
-"    First parent of changesets in set."
-msgstr ""
-
-msgid ""
-"``p2(set)``\n"
-"    Second parent of changesets in set."
-msgstr ""
-
-msgid ""
-"``parents(set)``\n"
-"    The set of all parents for all changesets in set."
+"``p1([set])``\n"
+"    First parent of changesets in set, or the working directory."
+msgstr ""
+
+msgid ""
+"``p2([set])``\n"
+"    Second parent of changesets in set, or the working directory."
+msgstr ""
+
+msgid ""
+"``parents([set])``\n"
+"    The set of all parents for all changesets in set, or the working "
+"directory."
 msgstr ""
 
 msgid ""
@@ -13289,6 +13515,21 @@
 msgid "the argument to tag must be a string"
 msgstr "argumentet till tag måste vara en sträng"
 
+msgid ""
+"``bookmark([name])``\n"
+"    The named bookmark or all bookmarks."
+msgstr ""
+"``bookmark([namn])``\n"
+"    Det angivna bokmärket eller alla bokmärken."
+
+#. i18n: "bookmark" is a keyword
+msgid "bookmark takes one or no arguments"
+msgstr "bookmark tar ett eller inga argument"
+
+#. i18n: "bookmark" is a keyword
+msgid "the argument to bookmark must be a string"
+msgstr "argumentet till bookmark måste vara en sträng"
+
 msgid "can't negate that"
 msgstr "kan inte negera det"
 
@@ -13318,6 +13559,9 @@
 msgid "couldn't parse location %s"
 msgstr ""
 
+msgid "password in URL not supported"
+msgstr "lösenord i URL stödjs inte"
+
 msgid "could not create remote repo"
 msgstr ""
 
@@ -13385,6 +13629,18 @@
 msgstr ""
 
 #, python-format
+msgid ""
+" subrepository sources for %s differ\n"
+"use (l)ocal source (%s) or (r)emote source (%s)?\n"
+msgstr ""
+
+#, python-format
+msgid ""
+" subrepository sources for %s differ (in checked out version)\n"
+"use (l)ocal source (%s) or (r)emote source (%s)?\n"
+msgstr ""
+
+#, python-format
 msgid "default path for subrepository %s not found"
 msgstr ""
 
@@ -13393,6 +13649,10 @@
 msgstr ""
 
 #, python-format
+msgid "archiving (%s)"
+msgstr "arkiverar (%s)"
+
+#, python-format
 msgid "warning: error \"%s\" in subrepository \"%s\"\n"
 msgstr ""
 
@@ -13402,11 +13662,11 @@
 
 #, python-format
 msgid "pulling subrepo %s from %s\n"
-msgstr "drar subarkivet %s från %s\n"
+msgstr "drar underarkivet %s från %s\n"
 
 #, python-format
 msgid "pushing subrepo %s to %s\n"
-msgstr "trycker subarkivet %s från %s\n"
+msgstr "trycker underarkivet %s till %s\n"
 
 msgid "cannot commit svn externals"
 msgstr ""
@@ -13416,6 +13676,41 @@
 msgstr "raderar inte arkivet %s eftersom den har ändringar.\n"
 
 #, python-format
+msgid "cloning subrepo %s\n"
+msgstr "klonar underarkivet %s\n"
+
+#, python-format
+msgid "pulling subrepo %s\n"
+msgstr "drar underarkivet %s\n"
+
+#, python-format
+msgid "revision %s does not exist in subrepo %s\n"
+msgstr "revisionen %s existerar inte i underarkivet %s\n"
+
+#, python-format
+msgid "checking out detached HEAD in subrepo %s\n"
+msgstr "hämtar ut löst HEAD i underarkivet %s\n"
+
+msgid "check out a git branch if you intend to make changes\n"
+msgstr "hämta ut en git-gren om du tänker göra ändringer\n"
+
+#, python-format
+msgid "unrelated git branch checked out in subrepo %s\n"
+msgstr "obesläktar git-gren hämtar i underarkivet %s\n"
+
+#, python-format
+msgid "pushing branch %s of subrepo %s\n"
+msgstr "trycker grenen %s från underarkivet %s\n"
+
+#, python-format
+msgid ""
+"no branch checked out in subrepo %s\n"
+"cannot push revision %s"
+msgstr ""
+"ingen gren uthämtar i underarkivet %s\n"
+"kan inte trycka revison %s"
+
+#, python-format
 msgid "%s, line %s: %s\n"
 msgstr ""
 
@@ -13426,25 +13721,39 @@
 msgid "node '%s' is not well formed"
 msgstr ""
 
-msgid ".hg/tags.cache is corrupt, rebuilding it\n"
-msgstr ".hg/tags.cache är korrupt, bygger om den\n"
+msgid ".hg/cache/tags is corrupt, rebuilding it\n"
+msgstr ".hg/cache/tags är korrupt, bygger om den\n"
+
+#, python-format
+msgid "unknown method '%s'"
+msgstr "okänd metod '%s'"
+
+msgid "expected a symbol"
+msgstr "förväntade en symbol"
+
+#, python-format
+msgid "unknown function '%s'"
+msgstr "okänd funktion '%s'"
+
+msgid "expected template specifier"
+msgstr "förväntade mallspecifikation"
+
+#, python-format
+msgid "filter %s expects one argument"
+msgstr "filtret %s kräver ett argument"
 
 msgid "unmatched quotes"
 msgstr ""
 
 #, python-format
-msgid "error expanding '%s%%%s'"
-msgstr ""
-
-#, python-format
-msgid "unknown filter '%s'"
-msgstr ""
-
-#, python-format
 msgid "style not found: %s"
 msgstr ""
 
 #, python-format
+msgid "\"%s\" not in template map"
+msgstr "\"%s\" finns inte i mallistan"
+
+#, python-format
 msgid "template file %s: %s"
 msgstr ""
 
@@ -13510,6 +13819,10 @@
 msgid "edit failed"
 msgstr ""
 
+#, python-format
+msgid "ignoring invalid [auth] key '%s'\n"
+msgstr "ignorerar ogiltig [auth]-nyckel '%s'\n"
+
 msgid "http authorization required"
 msgstr "http-autenticiering krävs"
 
@@ -13531,9 +13844,8 @@
 msgid "http auth: user %s, password %s\n"
 msgstr "http-auth: användare %s, lösenord %s\n"
 
-#, python-format
-msgid "ignoring invalid [auth] key '%s'\n"
-msgstr "ignorerar ogiltig [auth]-nyckel '%s'\n"
+msgid "kb"
+msgstr "kb"
 
 msgid "certificate checking requires Python 2.6"
 msgstr "certifikatkontroll kräver Python 2.6"
@@ -13545,25 +13857,48 @@
 msgid "certificate is for %s"
 msgstr "certifikat är för %s"
 
-msgid "no commonName found in certificate"
-msgstr "inget commonName hittades i certifikat"
-
-#, python-format
-msgid "%s certificate error: %s"
-msgstr "%s certifikatfel: %s"
+msgid "IDN in certificate not supported"
+msgstr "IDN i certifikat stöds inte"
+
+msgid "no commonName or subjectAltName found in certificate"
+msgstr "inget commonName eller subjectAltName hittades i certifikat"
+
+#, python-format
+msgid "%s certificate error: %s (use --insecure to connect insecurely)"
+msgstr "%s-certifikatfel: %s (använd --insecure för att ansluta osäkert)"
+
+#, python-format
+msgid "invalid certificate for %s with fingerprint %s"
+msgstr "ogiltigt certifikat för %s med fingeravtrycket %s"
+
+#, python-format
+msgid ""
+"warning: %s certificate with fingerprint %s not verified (check "
+"hostfingerprints or web.cacerts config setting)\n"
+msgstr ""
+"varning: %s-certificatet med fingeravtrycket %s overifierad (kontrollera "
+"hostfingerprints inställningen web.cacerts)\n"
+
+#, python-format
+msgid "no certificate for %s with configured hostfingerprint"
+msgstr "inget certifikat för %s med konfigurerat fingeravtryck"
 
 #, python-format
 msgid ""
 "warning: %s certificate not verified (check web.cacerts config setting)\n"
 msgstr ""
-"varning: %s-certificatet overifierad (kontrollera inställningen "
-"web.cacerts)\n"
+"varning: %s-certificatet overifierad (kontrollera inställningen web."
+"cacerts)\n"
 
 #, python-format
 msgid "command '%s' failed: %s"
 msgstr "kommandot '%s' misslyckades: %s"
 
 #, python-format
+msgid "path ends in directory separator: %s"
+msgstr "sökvägen slutar med en katalogseparator: %s"
+
+#, python-format
 msgid "path contains illegal component: %s"
 msgstr ""
 
@@ -13575,9 +13910,6 @@
 msgid "path %r traverses symbolic link %r"
 msgstr ""
 
-msgid "Hardlinks not supported"
-msgstr ""
-
 #, python-format
 msgid "could not symlink to %r: %s"
 msgstr ""
@@ -13820,17 +14152,14 @@
 msgid "(first damaged changeset appears to be %d)\n"
 msgstr "(första skadade ändringen verkar vara %d)\n"
 
-msgid "user name not available - set USERNAME environment variable"
-msgstr "användarnamnet är inte tillgängligt - sätt miljövariabeln USERNAME"
-
 msgid "look up remote revision"
 msgstr "söker fjärrevision"
 
+msgid "push failed (unexpected response):"
+msgstr "tryckning misslyckades (oväntat svar):"
+
 msgid "look up remote changes"
 msgstr "söker fjärrändringar"
 
 msgid "push failed:"
 msgstr "tryckning misslyckades:"
-
-msgid "push failed (unexpected response):"
-msgstr "tryckning misslyckades (oväntat svar):"
--- a/mercurial/bookmarks.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/bookmarks.py	Wed Mar 02 13:24:48 2011 +0100
@@ -127,8 +127,11 @@
     update = False
     mark = repo._bookmarkcurrent
     if mark and marks[mark] in parents:
-        marks[mark] = node
-        update = True
+        old = repo[marks[mark]]
+        new = repo[node]
+        if new in old.descendants():
+            marks[mark] = new.node()
+            update = True
     if update:
         write(repo)
 
--- a/mercurial/changegroup.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/changegroup.py	Wed Mar 02 13:24:48 2011 +0100
@@ -9,20 +9,24 @@
 import util
 import struct, os, bz2, zlib, tempfile
 
-def getchunk(source):
-    """return the next chunk from changegroup 'source' as a string"""
-    d = source.read(4)
-    if not d:
-        return ""
+def readexactly(stream, n):
+    '''read n bytes from stream.read and abort if less was available'''
+    s = stream.read(n)
+    if len(s) < n:
+        raise util.Abort(_("stream ended unexpectedly"
+                           " (got %d bytes, expected %d)")
+                          % (len(s), n))
+    return s
+
+def getchunk(stream):
+    """return the next chunk from stream as a string"""
+    d = readexactly(stream, 4)
     l = struct.unpack(">l", d)[0]
     if l <= 4:
+        if l:
+            raise util.Abort(_("invalid chunk length %d") % l)
         return ""
-    d = source.read(l - 4)
-    if len(d) < l - 4:
-        raise util.Abort(_("premature EOF reading chunk"
-                           " (got %d bytes, expected %d)")
-                          % (len(d), l - 4))
-    return d
+    return readexactly(stream, l - 4)
 
 def chunkheader(length):
     """return a changegroup chunk header (string)"""
@@ -147,31 +151,28 @@
         return self._stream.close()
 
     def chunklength(self):
-        d = self.read(4)
-        if not d:
+        d = readexactly(self._stream, 4)
+        l = struct.unpack(">l", d)[0]
+        if l <= 4:
+            if l:
+                raise util.Abort(_("invalid chunk length %d") % l)
             return 0
-        l = max(0, struct.unpack(">l", d)[0] - 4)
-        if l and self.callback:
+        if self.callback:
             self.callback()
-        return l
+        return l - 4
 
     def chunk(self):
         """return the next chunk from changegroup 'source' as a string"""
         l = self.chunklength()
-        d = self.read(l)
-        if len(d) < l:
-            raise util.Abort(_("premature EOF reading chunk"
-                               " (got %d bytes, expected %d)")
-                             % (len(d), l))
-        return d
+        return readexactly(self._stream, l)
 
     def parsechunk(self):
         l = self.chunklength()
         if not l:
             return {}
-        h = self.read(80)
+        h = readexactly(self._stream, 80)
         node, p1, p2, cs = struct.unpack("20s20s20s20s", h)
-        data = self.read(l - 80)
+        data = readexactly(self._stream, l - 80)
         return dict(node=node, p1=p1, p2=p2, cs=cs, data=data)
 
 class headerlessfixup(object):
@@ -182,12 +183,12 @@
         if self._h:
             d, self._h = self._h[:n], self._h[n:]
             if len(d) < n:
-                d += self._fh.read(n - len(d))
+                d += readexactly(self._fh, n - len(d))
             return d
-        return self._fh.read(n)
+        return readexactly(self._fh, n)
 
 def readbundle(fh, fname):
-    header = fh.read(6)
+    header = readexactly(fh, 6)
 
     if not fname:
         fname = "stream"
--- a/mercurial/cmdutil.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/cmdutil.py	Wed Mar 02 13:24:48 2011 +0100
@@ -681,9 +681,10 @@
 
         shouldclose = False
         if not fp:
-            shouldclose = True
             fp = make_file(repo, template, node, total=total, seqno=seqno,
                            revwidth=revwidth, mode='ab')
+            if fp != template:
+                shouldclose = True
         if fp != sys.stdout and hasattr(fp, 'name'):
             repo.ui.note("%s\n" % fp.name)
 
--- a/mercurial/commands.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/commands.py	Wed Mar 02 13:24:48 2011 +0100
@@ -207,16 +207,16 @@
     Prepare a new changeset with the effect of REV undone in the
     current working directory.
 
-    If REV is the parent of the working directory, then this changeset
+    If REV is the parent of the working directory, then this new changeset
     is committed automatically. Otherwise, hg needs to merge the
     changes and the merged result is left uncommitted.
 
     By default, the pending changeset will have one parent,
     maintaining a linear history. With --merge, the pending changeset
     will instead have two parents: the old parent of the working
-    directory and a child of REV that simply undoes REV.
-
-    Before version 1.7, the default behavior was equivalent to
+    directory and a new child of REV that simply undoes REV.
+
+    Before version 1.7, the behavior without --merge was equivalent to
     specifying --merge followed by :hg:`update --clean .` to cancel
     the merge and leave the child of REV as a head to be merged
     separately.
@@ -521,7 +521,8 @@
             marks[mark] = repo.lookup(rev)
         else:
             marks[mark] = repo.changectx('.').node()
-        bookmarks.setcurrent(repo, mark)
+        if repo.changectx('.').node() == marks[mark]:
+            bookmarks.setcurrent(repo, mark)
         bookmarks.write(repo)
         return
 
@@ -1365,7 +1366,7 @@
 
     format = opts.get('format', 0)
     if format not in (0, 1):
-        raise util.Abort("unknown format %d" % format)
+        raise util.Abort(_("unknown format %d") % format)
 
     if not r:
         r = revlog.revlog(util.opener(os.getcwd(), audit=False), file_)
@@ -2239,8 +2240,8 @@
             else:
                 ui.write("%s\n" % opt)
 
-def identify(ui, repo, source=None,
-             rev=None, num=None, id=None, branch=None, tags=None):
+def identify(ui, repo, source=None, rev=None,
+             num=None, id=None, branch=None, tags=None, bookmarks=None):
     """identify the working copy or specified revision
 
     With no revision, print a summary of the current state of the
@@ -2262,7 +2263,7 @@
                            "(.hg not found)"))
 
     hexfunc = ui.debugflag and hex or short
-    default = not (num or id or branch or tags)
+    default = not (num or id or branch or tags or bookmarks)
     output = []
 
     revs = []
@@ -2276,9 +2277,9 @@
             rev = revs[0]
         if not rev:
             rev = "tip"
-        if num or branch or tags:
-            raise util.Abort(
-                "can't query remote revision number, branch, or tags")
+        if num or branch or tags or bookmarks:
+            raise util.Abort(_("can't query remote revision number,"
+                             " branch, tags, or bookmarks"))
         output = [hexfunc(repo.lookup(rev))]
     elif not rev:
         ctx = repo[None]
@@ -2309,12 +2310,20 @@
         if t:
             output.append(t)
 
+        # multiple bookmarks for a single parent separated by '/'
+        bm = '/'.join(ctx.bookmarks())
+        if bm:
+            output.append(bm)
+
     if branch:
         output.append(ctx.branch())
 
     if tags:
         output.extend(ctx.tags())
 
+    if bookmarks:
+        output.extend(ctx.bookmarks())
+
     ui.write("%s\n" % ' '.join(output))
 
 def import_(ui, repo, patch1, *patches, **opts):
@@ -2501,6 +2510,9 @@
         source, branches = hg.parseurl(ui.expandpath(source),
                                        opts.get('branch'))
         other = hg.repository(hg.remoteui(repo, opts), source)
+        if 'bookmarks' not in other.listkeys('namespaces'):
+            ui.warn(_("remote doesn't support bookmarks\n"))
+            return 0
         ui.status(_('comparing with %s\n') % url.hidepassword(source))
         return bookmarks.diff(ui, repo, other)
 
@@ -2785,6 +2797,9 @@
         dest = ui.expandpath(dest or 'default-push', dest or 'default')
         dest, branches = hg.parseurl(dest, opts.get('branch'))
         other = hg.repository(hg.remoteui(repo, opts), dest)
+        if 'bookmarks' not in other.listkeys('namespaces'):
+            ui.warn(_("remote doesn't support bookmarks\n"))
+            return 0
         ui.status(_('comparing with %s\n') % url.hidepassword(dest))
         return bookmarks.diff(ui, other, repo)
 
@@ -3698,6 +3713,8 @@
         ui.write(_('parent: %d:%s ') % (p.rev(), str(p)),
                  label='log.changeset')
         ui.write(' '.join(p.tags()), label='log.tag')
+        if p.bookmarks():
+            ui.write(' ' + ' '.join(p.bookmarks()), label='log.bookmark')
         if p.rev() == -1:
             if not len(repo):
                 ui.write(_(' (empty repository)'))
@@ -3817,6 +3834,15 @@
         o = repo.changelog.nodesbetween(o, None)[0]
         if o:
             t.append(_('%d outgoing') % len(o))
+        if 'bookmarks' in other.listkeys('namespaces'):
+            lmarks = repo.listkeys('bookmarks')
+            rmarks = other.listkeys('bookmarks')
+            diff = set(rmarks) - set(lmarks)
+            if len(diff) > 0:
+                t.append(_('%d incoming bookmarks') % len(diff))
+            diff = set(lmarks) - set(rmarks)
+            if len(diff) > 0:
+                t.append(_('%d outgoing bookmarks') % len(diff))
 
         if t:
             ui.write(_('remote: %s\n') % (', '.join(t)))
@@ -4078,7 +4104,7 @@
              % util.version())
     ui.status(_(
         "(see http://mercurial.selenic.com for more information)\n"
-        "\nCopyright (C) 2005-2010 Matt Mackall and others\n"
+        "\nCopyright (C) 2005-2011 Matt Mackall and others\n"
         "This is free software; see the source for copying conditions. "
         "There is NO\nwarranty; "
         "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -4442,8 +4468,9 @@
           ('n', 'num', None, _('show local revision number')),
           ('i', 'id', None, _('show global revision id')),
           ('b', 'branch', None, _('show branch')),
-          ('t', 'tags', None, _('show tags'))],
-         _('[-nibt] [-r REV] [SOURCE]')),
+          ('t', 'tags', None, _('show tags')),
+          ('B', 'bookmarks', None, _('show bookmarks'))],
+         _('[-nibtB] [-r REV] [SOURCE]')),
     "import|patch":
         (import_,
          [('p', 'strip', 1,
--- a/mercurial/context.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/context.py	Wed Mar 02 13:24:48 2011 +0100
@@ -550,15 +550,15 @@
         return None
 
     def ancestors(self):
-        seen = set(str(self))
-        visit = [self]
-        while visit:
-            for parent in visit.pop(0).parents():
-                s = str(parent)
-                if s not in seen:
-                    visit.append(parent)
-                    seen.add(s)
-                    yield parent
+        visit = {}
+        c = self
+        while True:
+            for parent in c.parents():
+                visit[(parent.rev(), parent.node())] = parent
+            if not visit:
+                break
+            c = visit.pop(max(visit))
+            yield c
 
 class workingctx(changectx):
     """A workingctx object makes access to data related to
@@ -726,6 +726,12 @@
             t.extend(p.tags())
         return t
 
+    def bookmarks(self):
+        b = []
+        for p in self.parents():
+            b.extend(p.bookmarks())
+        return b
+
     def children(self):
         return []
 
--- a/mercurial/dispatch.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/dispatch.py	Wed Mar 02 13:24:48 2011 +0100
@@ -226,7 +226,7 @@
                     elif int(m.groups()[0]) <= len(args):
                         return m.group()
                     else:
-                        ui.debug(_("No argument found for substitution"
+                        ui.debug(_("No argument found for substitution "
                                    "of %i variable in alias '%s' definition.")
                                  % (int(m.groups()[0]), self.name))
                         return ''
@@ -576,6 +576,8 @@
             if not repo.local():
                 raise util.Abort(_("repository '%s' is not local") % path)
             ui.setconfig("bundle", "mainreporoot", repo.root)
+        except error.RequirementError:
+            raise
         except error.RepoError:
             if cmd not in commands.optionalrepo.split():
                 if args and not path: # try to infer -R from command args
--- a/mercurial/error.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/error.py	Wed Mar 02 13:24:48 2011 +0100
@@ -51,6 +51,10 @@
 class CapabilityError(RepoError):
     pass
 
+class RequirementError(RepoError):
+    """Exception raised if .hg/requires has an unknown entry."""
+    pass
+
 class LockError(IOError):
     def __init__(self, errno, strerror, filename, desc):
         IOError.__init__(self, errno, strerror, filename)
--- a/mercurial/help/templates.txt	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/help/templates.txt	Wed Mar 02 13:24:48 2011 +0100
@@ -25,6 +25,9 @@
 
 :author: String. The unmodified author of the changeset.
 
+:branch: String. The name of the branch on which the changeset was
+    committed.
+
 :branches: List of strings. The name of the branch on which the
     changeset was committed. Will be empty if the branch name was
     default.
--- a/mercurial/hgweb/common.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/hgweb/common.py	Wed Mar 02 13:24:48 2011 +0100
@@ -71,13 +71,12 @@
 
 class ErrorResponse(Exception):
     def __init__(self, code, message=None, headers=[]):
-        Exception.__init__(self)
+        if message is None:
+            message = _statusmessage(code)
+        Exception.__init__(self, code, message)
         self.code = code
+        self.message = message
         self.headers = headers
-        if message is not None:
-            self.message = message
-        else:
-            self.message = _statusmessage(code)
 
 def _statusmessage(code):
     from BaseHTTPServer import BaseHTTPRequestHandler
--- a/mercurial/hgweb/hgweb_mod.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/hgweb/hgweb_mod.py	Wed Mar 02 13:24:48 2011 +0100
@@ -114,17 +114,17 @@
 
         cmd = req.form.get('cmd', [''])[0]
         if protocol.iscmd(cmd):
-            if query:
-                raise ErrorResponse(HTTP_NOT_FOUND)
-            if cmd in perms:
-                try:
+            try:
+                if query:
+                    raise ErrorResponse(HTTP_NOT_FOUND)
+                if cmd in perms:
                     self.check_perm(req, perms[cmd])
-                except ErrorResponse, inst:
-                    if cmd == 'unbundle':
-                        req.drain()
-                    req.respond(inst, protocol.HGTYPE)
-                    return '0\n%s\n' % inst.message
-            return protocol.call(self.repo, req, cmd)
+                return protocol.call(self.repo, req, cmd)
+            except ErrorResponse, inst:
+                if cmd == 'unbundle':
+                    req.drain()
+                req.respond(inst, protocol.HGTYPE)
+                return '0\n%s\n' % inst.message
 
         # translate user-visible url structure to internal structure
 
--- a/mercurial/hgweb/hgwebdir_mod.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/hgweb/hgwebdir_mod.py	Wed Mar 02 13:24:48 2011 +0100
@@ -203,11 +203,13 @@
 
         def archivelist(ui, nodeid, url):
             allowed = ui.configlist("web", "allow_archive", untrusted=True)
+            archives = []
             for i in [('zip', '.zip'), ('gz', '.tar.gz'), ('bz2', '.tar.bz2')]:
                 if i[0] in allowed or ui.configbool("web", "allow" + i[0],
                                                     untrusted=True):
-                    yield {"type" : i[0], "extension": i[1],
-                           "node": nodeid, "url": url}
+                    archives.append({"type" : i[0], "extension": i[1],
+                                     "node": nodeid, "url": url})
+            return archives
 
         def rawentries(subdir="", **map):
 
--- a/mercurial/hgweb/server.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/hgweb/server.py	Wed Mar 02 13:24:48 2011 +0100
@@ -68,7 +68,7 @@
     def do_POST(self):
         try:
             self.do_write()
-        except StandardError:
+        except Exception:
             self._start_response("500 Internal Server Error", [])
             self._write("Internal Server Error")
             tb = "".join(traceback.format_exception(*sys.exc_info()))
--- a/mercurial/localrepo.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/localrepo.py	Wed Mar 02 13:24:48 2011 +0100
@@ -75,7 +75,8 @@
                 if inst.errno != errno.ENOENT:
                     raise
             for r in requirements - self.supported:
-                raise error.RepoError(_("requirement '%s' not supported") % r)
+                raise error.RequirementError(
+                          _("requirement '%s' not supported") % r)
 
         self.sharedpath = self.path
         try:
@@ -713,11 +714,12 @@
                 try:
                     args = self.opener("undo.desc", "r").read().splitlines()
                     if len(args) >= 3 and self.ui.verbose:
-                        desc = _("rolling back to revision %s"
+                        desc = _("repository tip rolled back to revision %s"
                                  " (undo %s: %s)\n") % (
                                  int(args[0]) - 1, args[1], args[2])
                     elif len(args) >= 2:
-                        desc = _("rolling back to revision %s (undo %s)\n") % (
+                        desc = _("repository tip rolled back to revision %s"
+                                 " (undo %s)\n") % (
                                  int(args[0]) - 1, args[1])
                 except IOError:
                     desc = _("rolling back unknown transaction\n")
@@ -740,6 +742,13 @@
                 self.invalidate()
                 self.dirstate.invalidate()
                 self.destroyed()
+                parents = tuple([p.rev() for p in self.parents()])
+                if len(parents) > 1:
+                    self.ui.status(_("working directory now based on "
+                                     "revisions %d and %d\n") % parents)
+                else:
+                    self.ui.status(_("working directory now based on "
+                                     "revision %d\n") % parents)
             else:
                 self.ui.warn(_("no rollback information available\n"))
                 return 1
--- a/mercurial/match.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/match.py	Wed Mar 02 13:24:48 2011 +0100
@@ -254,7 +254,7 @@
         l = len(pats)
         if l < 2:
             raise
-        pata, a = _buildmatch(pats[:l//2], tail),
+        pata, a = _buildmatch(pats[:l//2], tail)
         patb, b = _buildmatch(pats[l//2:], tail)
         return pat, lambda s: a(s) or b(s)
     except re.error:
--- a/mercurial/merge.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/merge.py	Wed Mar 02 13:24:48 2011 +0100
@@ -508,6 +508,11 @@
             if not force and (wc.files() or wc.deleted()):
                 raise util.Abort(_("outstanding uncommitted changes "
                                    "(use 'hg status' to list changes)"))
+            for s in wc.substate:
+                if wc.sub(s).dirty():
+                    raise util.Abort(_("outstanding uncommitted changes in "
+                                       "subrepository '%s'") % s)
+
         elif not overwrite:
             if pa == p1 or pa == p2: # linear
                 pass # all good
--- a/mercurial/pure/parsers.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/pure/parsers.py	Wed Mar 02 13:24:48 2011 +0100
@@ -56,10 +56,11 @@
             n += 1
             off += s
 
-    e = list(index[0])
-    type = gettype(e[0])
-    e[0] = offset_type(0, type)
-    index[0] = tuple(e)
+    if index:
+        e = list(index[0])
+        type = gettype(e[0])
+        e[0] = offset_type(0, type)
+        index[0] = tuple(e)
 
     # add the magic null revision at -1
     index.append((0, 0, 0, -1, -1, -1, -1, nullid))
--- a/mercurial/revset.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/revset.py	Wed Mar 02 13:24:48 2011 +0100
@@ -794,7 +794,7 @@
             w = 100 # very slow
         elif f == "ancestor":
             w = 1 * smallbonus
-        elif f == "reverse limit":
+        elif f in "reverse limit":
             w = 0
         elif f in "sort":
             w = 10 # assume most sorts look at changelog
--- a/mercurial/sshrepo.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/sshrepo.py	Wed Mar 02 13:24:48 2011 +0100
@@ -29,6 +29,8 @@
             self._abort(error.RepoError(_("couldn't parse location %s") % path))
 
         self.user = m.group(2)
+        if self.user and ':' in self.user:
+            self._abort(error.RepoError(_("password in URL not supported")))
         self.host = m.group(3)
         self.port = m.group(5)
         self.path = m.group(7) or "."
--- a/mercurial/statichttprepo.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/statichttprepo.py	Wed Mar 02 13:24:48 2011 +0100
@@ -112,7 +112,8 @@
         # check them
         for r in requirements:
             if r not in self.supported:
-                raise error.RepoError(_("requirement '%s' not supported") % r)
+                raise error.RequirementError(
+                        _("requirement '%s' not supported") % r)
 
         # setup store
         self.store = store.store(requirements, self.path, opener)
@@ -128,7 +129,7 @@
         self._branchcachetip = None
         self.encodepats = None
         self.decodepats = None
-        self.capabilities.remove("pushkey")
+        self.capabilities = self.capabilities.difference(["pushkey"])
 
     def url(self):
         return self._url
--- a/mercurial/subrepo.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/subrepo.py	Wed Mar 02 13:24:48 2011 +0100
@@ -659,6 +659,7 @@
         self._path = path
         self._relpath = os.path.join(reporelpath(ctx._repo), path)
         self._abspath = ctx._repo.wjoin(path)
+        self._subparent = ctx._repo
         self._ui = ctx._repo.ui
 
     def _gitcommand(self, commands, env=None, stream=False):
@@ -729,7 +730,8 @@
                                 '%(objectname) %(refname)'])
         for line in out.split('\n'):
             revision, ref = line.split(' ')
-            if ref.startswith('refs/tags/'):
+            if (not ref.startswith('refs/heads/') and
+                not ref.startswith('refs/remotes/')):
                 continue
             if ref.startswith('refs/remotes/') and ref.endswith('/HEAD'):
                 continue # ignore remote/HEAD redirects
@@ -751,19 +753,19 @@
                          (remote, ref.split('/', 2)[2])] = b
         return tracking
 
+    def _abssource(self, source):
+        self._subsource = source
+        return _abssource(self)
+
     def _fetch(self, source, revision):
         if not os.path.exists(os.path.join(self._abspath, '.git')):
             self._ui.status(_('cloning subrepo %s\n') % self._relpath)
-            self._gitnodir(['clone', source, self._abspath])
+            self._gitnodir(['clone', self._abssource(source), self._abspath])
         if self._githavelocally(revision):
             return
         self._ui.status(_('pulling subrepo %s\n') % self._relpath)
-        # first try from origin
+        # try only origin: the originally cloned repo
         self._gitcommand(['fetch'])
-        if self._githavelocally(revision):
-            return
-        # then try from known subrepo source
-        self._gitcommand(['fetch', source])
         if not self._githavelocally(revision):
             raise util.Abort(_("revision %s does not exist in subrepo %s\n") %
                                (revision, self._relpath))
@@ -886,7 +888,8 @@
         if self.dirty():
             if self._gitstate() != revision:
                 dirty = self._gitstate() == self._state[1] or code != 0
-                if _updateprompt(self._ui, self, dirty, self._state[1], revision):
+                if _updateprompt(self._ui, self, dirty,
+                                 self._state[1][:7], revision[:7]):
                     mergefunc()
         else:
             mergefunc()
--- a/mercurial/ui.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/ui.py	Wed Mar 02 13:24:48 2011 +0100
@@ -122,8 +122,8 @@
             self.quiet = not self.debugflag and self.configbool('ui', 'quiet')
             if self.verbose and self.quiet:
                 self.quiet = self.verbose = False
-            self._reportuntrusted = self.configbool("ui", "report_untrusted",
-                                        True)
+            self._reportuntrusted = self.debugflag or self.configbool("ui",
+                "report_untrusted", True)
             self.tracebackflag = self.configbool('ui', 'traceback', False)
 
         if section in (None, 'trusted'):
--- a/mercurial/util.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/util.py	Wed Mar 02 13:24:48 2011 +0100
@@ -386,6 +386,10 @@
 
     if out is specified, it is assumed to be a file-like object that has a
     write() method. stdout and stderr will be redirected to out.'''
+    try:
+        sys.stdout.flush()
+    except Exception:
+        pass
     def py2shell(val):
         'convert python object into string that is useful to shell'
         if val is None or val is False:
--- a/mercurial/wireproto.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/wireproto.py	Wed Mar 02 13:24:48 2011 +0100
@@ -80,7 +80,12 @@
                        key=encoding.fromlocal(key),
                        old=encoding.fromlocal(old),
                        new=encoding.fromlocal(new))
-        return bool(int(d))
+        try:
+            d = bool(int(d))
+        except ValueError:
+            raise error.ResponseError(
+                _('push failed (unexpected response):'), d)
+        return d
 
     def listkeys(self, namespace):
         if not self.capable('pushkey'):
--- a/tests/hghave	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/hghave	Wed Mar 02 13:24:48 2011 +0100
@@ -108,6 +108,9 @@
     except ImportError:
         return False
 
+def has_gettext():
+    return matchoutput('msgfmt --version', 'GNU gettext-tools')
+
 def has_git():
     return matchoutput('git --version 2>&1', r'^git version')
 
@@ -189,6 +192,7 @@
     "eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"),
     "execbit": (has_executablebit, "executable bit"),
     "fifo": (has_fifo, "named pipes"),
+    "gettext": (has_gettext, "GNU Gettext (msgfmt)"),
     "git": (has_git, "git command line client"),
     "gpg": (has_gpg, "gpg client"),
     "icasefs": (has_icasefs, "case insensitive file system"),
--- a/tests/test-acl.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-acl.t	Wed Mar 02 13:24:48 2011 +0100
@@ -142,7 +142,8 @@
   added 3 changesets with 3 changes to 3 files
   updating the branch cache
   checking for updated bookmarks
-  rolling back to revision 0 (undo push)
+  repository tip rolled back to revision 0 (undo push)
+  working directory now based on revision 0
   0:6675d58eff77
   
 
@@ -221,7 +222,8 @@
   acl: changes have source "push" - skipping
   updating the branch cache
   checking for updated bookmarks
-  rolling back to revision 0 (undo push)
+  repository tip rolled back to revision 0 (undo push)
+  working directory now based on revision 0
   0:6675d58eff77
   
 
@@ -310,7 +312,8 @@
   acl: allowing changeset 911600dab2ae
   updating the branch cache
   checking for updated bookmarks
-  rolling back to revision 0 (undo push)
+  repository tip rolled back to revision 0 (undo push)
+  working directory now based on revision 0
   0:6675d58eff77
   
 
@@ -945,7 +948,8 @@
   acl: allowing changeset 911600dab2ae
   updating the branch cache
   checking for updated bookmarks
-  rolling back to revision 0 (undo push)
+  repository tip rolled back to revision 0 (undo push)
+  working directory now based on revision 0
   0:6675d58eff77
   
 
@@ -1341,7 +1345,8 @@
   acl: allowing changeset 911600dab2ae
   updating the branch cache
   checking for updated bookmarks
-  rolling back to revision 0 (undo push)
+  repository tip rolled back to revision 0 (undo push)
+  working directory now based on revision 0
   0:6675d58eff77
   
 
@@ -1438,7 +1443,8 @@
   acl: allowing changeset 911600dab2ae
   updating the branch cache
   checking for updated bookmarks
-  rolling back to revision 0 (undo push)
+  repository tip rolled back to revision 0 (undo push)
+  working directory now based on revision 0
   0:6675d58eff77
   
 
@@ -1628,7 +1634,8 @@
   acl: allowing changeset 911600dab2ae
   updating the branch cache
   checking for updated bookmarks
-  rolling back to revision 0 (undo push)
+  repository tip rolled back to revision 0 (undo push)
+  working directory now based on revision 0
   0:6675d58eff77
   
 
--- a/tests/test-alias.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-alias.t	Wed Mar 02 13:24:48 2011 +0100
@@ -1,3 +1,4 @@
+  $ HGFOO=BAR; export HGFOO
   $ cat >> $HGRCPATH <<EOF
   > [extensions]
   > graphlog=
@@ -34,6 +35,10 @@
   > idaliasshell = !echo test
   > parentsshell1 = !echo one
   > parentsshell2 = !echo two
+  > escaped1 = !echo 'test\$\$test'
+  > escaped2 = !echo "HGFOO is \$\$HGFOO"
+  > escaped3 = !echo "\$1 is \$\$\$1"
+  > escaped4 = !echo '\$\$0' '\$\$@'
   > 
   > [defaults]
   > mylog = -q
@@ -279,6 +284,18 @@
   main
 
 
+shell aliases with escaped $ chars
+
+  $ hg escaped1
+  test$test
+  $ hg escaped2
+  HGFOO is BAR
+  $ hg escaped3 HGFOO
+  HGFOO is BAR
+  $ hg escaped4 test
+  $0 $@
+
+
 invalid arguments
 
   $ hg rt foo
--- a/tests/test-backout.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-backout.t	Wed Mar 02 13:24:48 2011 +0100
@@ -204,7 +204,8 @@
   changeset 5:10e5328c8435 backs out changeset 4:b2f3bb92043e
 
   $ hg rollback
-  rolling back to revision 4 (undo commit)
+  repository tip rolled back to revision 4 (undo commit)
+  working directory now based on revision 4
   $ hg update -C
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
--- a/tests/test-bookmarks-current.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-bookmarks-current.t	Wed Mar 02 13:24:48 2011 +0100
@@ -1,8 +1,3 @@
-  $ echo "[extensions]" >> $HGRCPATH
-  $ echo "bookmarks=" >> $HGRCPATH
-
-  $ echo "[bookmarks]" >> $HGRCPATH
-
   $ hg init
 
 no bookmarks
@@ -66,6 +61,17 @@
    * Y                         0:719295282060
      Z                         -1:000000000000
 
+Verify that switching to Z updates the current bookmark:
+  $ hg update Z
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg bookmark
+     Y                         0:719295282060
+   * Z                         -1:000000000000
+
+Switch back to Y for the remaining tests in this file:
+  $ hg update Y
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
 delete bookmarks
 
   $ hg bookmark -d Y
--- a/tests/test-bookmarks-pushpull.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-bookmarks-pushpull.t	Wed Mar 02 13:24:48 2011 +0100
@@ -1,6 +1,3 @@
-  $ echo "[extensions]" >> $HGRCPATH
-  $ echo "bookmarks=" >> $HGRCPATH
-
 initialize
 
   $ hg init a
--- a/tests/test-bookmarks-rebase.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-bookmarks-rebase.t	Wed Mar 02 13:24:48 2011 +0100
@@ -1,6 +1,5 @@
   $ echo "[extensions]" >> $HGRCPATH
   $ echo "rebase=" >> $HGRCPATH
-  $ echo "bookmarks=" >> $HGRCPATH
 
 initialize repository
 
--- a/tests/test-bookmarks-strip.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-bookmarks-strip.t	Wed Mar 02 13:24:48 2011 +0100
@@ -1,5 +1,4 @@
   $ echo "[extensions]" >> $HGRCPATH
-  $ echo "bookmarks=" >> $HGRCPATH
   $ echo "mq=" >> $HGRCPATH
 
   $ hg init
@@ -77,7 +76,8 @@
   adding b
   $ hg bookmarks markb
   $ hg rollback
-  rolling back to revision 0 (undo commit)
+  repository tip rolled back to revision 0 (undo commit)
+  working directory now based on revision 0
 
 are you there?
 
--- a/tests/test-bookmarks.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-bookmarks.t	Wed Mar 02 13:24:48 2011 +0100
@@ -1,6 +1,3 @@
-  $ echo "[extensions]" >> $HGRCPATH
-  $ echo "bookmarks=" >> $HGRCPATH
-
   $ hg init
 
 no bookmarks
@@ -55,7 +52,7 @@
 
   $ hg bookmarks
      X                         0:f7b1eb17ad24
-     X2                        0:f7b1eb17ad24
+   * X2                        0:f7b1eb17ad24
      Y                         -1:000000000000
 
   $ echo b > b
@@ -67,19 +64,25 @@
   $ hg log -r 'bookmark()'
   changeset:   0:f7b1eb17ad24
   bookmark:    X
-  bookmark:    X2
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     0
   
+  changeset:   1:925d80f479bb
+  bookmark:    X2
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     1
+  
   $ hg log -r 'bookmark(Y)'
   $ hg log -r 'bookmark(X2)'
-  changeset:   0:f7b1eb17ad24
-  bookmark:    X
+  changeset:   1:925d80f479bb
   bookmark:    X2
+  tag:         tip
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     0
+  summary:     1
   
   $ hg help revsets | grep 'bookmark('
       "bookmark([name])"
@@ -88,7 +91,7 @@
 
   $ hg bookmarks
      X                         0:f7b1eb17ad24
-     X2                        0:f7b1eb17ad24
+   * X2                        1:925d80f479bb
      Y                         -1:000000000000
 
 bookmark rev 0 again
@@ -106,7 +109,7 @@
 
   $ hg bookmarks
    * X                         2:db815d6d32e6
-     X2                        0:f7b1eb17ad24
+     X2                        1:925d80f479bb
      Y                         -1:000000000000
      Z                         0:f7b1eb17ad24
 
@@ -129,7 +132,7 @@
 list bookmarks
 
   $ hg bookmark
-     X2                        0:f7b1eb17ad24
+     X2                        1:925d80f479bb
    * Y                         2:db815d6d32e6
      Z                         0:f7b1eb17ad24
 
@@ -158,7 +161,7 @@
 list bookmarks
 
   $ hg bookmarks
-     X2                        0:f7b1eb17ad24
+     X2                        1:925d80f479bb
      Y                         2:db815d6d32e6
      Z                         0:f7b1eb17ad24
    * x  y                      2:db815d6d32e6
@@ -196,7 +199,7 @@
 list bookmarks
 
   $ hg bookmark
-     X2                        0:f7b1eb17ad24
+     X2                        1:925d80f479bb
      Y                         2:db815d6d32e6
    * Z                         2:db815d6d32e6
      x  y                      2:db815d6d32e6
@@ -219,3 +222,25 @@
   abort: bookmark 'foo:bar' contains illegal character
   [255]
 
+the bookmark extension should be ignored now that it is part of core
+
+  $ echo "[extensions]" >> $HGRCPATH
+  $ echo "bookmarks=" >> $HGRCPATH
+  $ hg bookmarks
+     X2                        1:925d80f479bb
+     Y                         2:db815d6d32e6
+   * Z                         2:db815d6d32e6
+     x  y                      2:db815d6d32e6
+test summary
+
+  $ hg summary
+  parent: 2:db815d6d32e6 tip Y Z x  y
+   2
+  branch: default
+  commit: (clean)
+  update: 1 new changesets, 2 branch heads (merge)
+
+test id
+
+  $ hg id
+  db815d6d32e6 tip Y/Z/x  y
--- a/tests/test-bundle-r.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-bundle-r.t	Wed Mar 02 13:24:48 2011 +0100
@@ -200,7 +200,8 @@
   checking files
   4 files, 9 changesets, 7 total revisions
   $ hg rollback
-  rolling back to revision 4 (undo pull)
+  repository tip rolled back to revision 4 (undo pull)
+  working directory now based on revision -1
   $ cd ..
 
 should fail
@@ -276,7 +277,8 @@
   checking files
   4 files, 9 changesets, 7 total revisions
   $ hg rollback
-  rolling back to revision 2 (undo unbundle)
+  repository tip rolled back to revision 2 (undo unbundle)
+  working directory now based on revision 2
 
 revision 2
 
@@ -300,7 +302,8 @@
   checking files
   2 files, 5 changesets, 5 total revisions
   $ hg rollback
-  rolling back to revision 2 (undo unbundle)
+  repository tip rolled back to revision 2 (undo unbundle)
+  working directory now based on revision 2
   $ hg unbundle ../test-bundle-branch2.hg
   adding changesets
   adding manifests
@@ -319,7 +322,8 @@
   checking files
   3 files, 7 changesets, 6 total revisions
   $ hg rollback
-  rolling back to revision 2 (undo unbundle)
+  repository tip rolled back to revision 2 (undo unbundle)
+  working directory now based on revision 2
   $ hg unbundle ../test-bundle-cset-7.hg
   adding changesets
   adding manifests
--- a/tests/test-bundle.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-bundle.t	Wed Mar 02 13:24:48 2011 +0100
@@ -89,7 +89,8 @@
 Rollback empty
 
   $ hg -R empty rollback
-  rolling back to revision -1 (undo pull)
+  repository tip rolled back to revision -1 (undo pull)
+  working directory now based on revision -1
 
 Pull full.hg into empty again (using --cwd)
 
@@ -119,7 +120,8 @@
 Rollback empty
 
   $ hg -R empty rollback
-  rolling back to revision -1 (undo pull)
+  repository tip rolled back to revision -1 (undo pull)
+  working directory now based on revision -1
 
 Pull full.hg into empty again (using -R)
 
@@ -204,19 +206,20 @@
 hg -R bundle://../full.hg verify
 
   $ hg pull bundle://../full.hg
-  changegroup hook: HG_NODE=f9ee2f85a263049e9ae6d37a0e67e96194ffb735 HG_SOURCE=pull HG_URL=bundle:../full.hg 
   pulling from bundle://../full.hg
   requesting all changes
   adding changesets
   adding manifests
   adding file changes
   added 9 changesets with 7 changes to 4 files (+1 heads)
+  changegroup hook: HG_NODE=f9ee2f85a263049e9ae6d37a0e67e96194ffb735 HG_SOURCE=pull HG_URL=bundle:../full.hg 
   (run 'hg heads' to see heads, 'hg merge' to merge)
 
 Rollback empty
 
   $ hg rollback
-  rolling back to revision -1 (undo pull)
+  repository tip rolled back to revision -1 (undo pull)
+  working directory now based on revision -1
   $ cd ..
 
 Log -R bundle:empty+full.hg
@@ -227,13 +230,13 @@
 Pull full.hg into empty again (using -R; with hook)
 
   $ hg -R empty pull full.hg
-  changegroup hook: HG_NODE=f9ee2f85a263049e9ae6d37a0e67e96194ffb735 HG_SOURCE=pull HG_URL=bundle:empty+full.hg 
   pulling from full.hg
   requesting all changes
   adding changesets
   adding manifests
   adding file changes
   added 9 changesets with 7 changes to 4 files (+1 heads)
+  changegroup hook: HG_NODE=f9ee2f85a263049e9ae6d37a0e67e96194ffb735 HG_SOURCE=pull HG_URL=bundle:empty+full.hg 
   (run 'hg heads' to see heads, 'hg merge' to merge)
 
 Create partial clones
--- a/tests/test-commit.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-commit.t	Wed Mar 02 13:24:48 2011 +0100
@@ -92,6 +92,15 @@
   $ hg commit -d '' -m commit-no-date
   $ hg tip --template '{date|isodate}\n' | grep '1970'
   [1]
+
+Make sure we do not obscure unknown requires file entries (issue2649)
+
+  $ echo foo >> foo
+  $ echo fake >> .hg/requires
+  $ hg commit -m bla
+  abort: requirement 'fake' not supported!
+  [255]
+
   $ cd ..
 
 
--- a/tests/test-convert-cvs.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-convert-cvs.t	Wed Mar 02 13:24:48 2011 +0100
@@ -111,7 +111,8 @@
   2 Initial revision
   1 import
   filtering out empty revision
-  rolling back to revision 0 (undo commit)
+  repository tip rolled back to revision 0 (undo commit)
+  working directory now based on revision -1
   0 ci0
   updating tags
   $ hgcat b/c
--- a/tests/test-convert-svn-source.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-convert-svn-source.t	Wed Mar 02 13:24:48 2011 +0100
@@ -9,6 +9,8 @@
   > [extensions]
   > convert = 
   > graphlog =
+  > [convert]
+  > svn.trunk = mytrunk
   > EOF
 
   $ svnadmin create svn-repo
@@ -27,20 +29,20 @@
 
   $ mkdir projB
   $ cd projB
-  $ mkdir trunk
+  $ mkdir mytrunk
   $ mkdir tags
   $ cd ..
 
   $ svnurl="file://$svnpath/svn-repo/proj%20B"
   $ svn import -m "init projB" projB "$svnurl" | fixpath
-  Adding         projB/trunk
+  Adding         projB/mytrunk
   Adding         projB/tags
   
   Committed revision 1.
 
 Update svn repository
 
-  $ svn co "$svnurl"/trunk B | fixpath
+  $ svn co "$svnurl"/mytrunk B | fixpath
   Checked out revision 1.
   $ cd B
   $ echo hello > 'letter .txt'
@@ -57,7 +59,7 @@
   Transmitting file data .
   Committed revision 3.
 
-  $ svn copy -m "tag v0.1" "$svnurl"/trunk "$svnurl"/tags/v0.1
+  $ svn copy -m "tag v0.1" "$svnurl"/mytrunk "$svnurl"/tags/v0.1
   
   Committed revision 4.
 
@@ -94,7 +96,7 @@
   Transmitting file data ..
   Committed revision 6.
 
-  $ svn copy -m "tag v0.2" "$svnurl"/trunk "$svnurl"/tags/v0.2
+  $ svn copy -m "tag v0.2" "$svnurl"/mytrunk "$svnurl"/tags/v0.2
   
   Committed revision 7.
 
@@ -143,7 +145,7 @@
 
 Test filemap
   $ echo 'include letter2.txt' > filemap
-  $ hg convert --filemap filemap "$svnurl"/trunk fmap
+  $ hg convert --filemap filemap "$svnurl"/mytrunk fmap
   initializing destination fmap repository
   scanning source...
   sorting...
@@ -154,6 +156,8 @@
   2 nice day
   1 second letter
   0 work in progress
+  $ hg -R fmap branch -q
+  default
   $ hg glog -R fmap --template '{rev} {desc|firstline} files: {files}\n'
   o  1 work in progress files: letter2.txt
   |
@@ -161,12 +165,14 @@
   
 
 Test stop revision
-  $ hg convert --rev 1 "$svnurl"/trunk stoprev
+  $ hg convert --rev 1 "$svnurl"/mytrunk stoprev
   initializing destination stoprev repository
   scanning source...
   sorting...
   converting...
   0 init projB
+  $ hg -R stoprev branch -q
+  default
 
 Check convert_revision extra-records.
 This is also the only place testing more than one extra field in a revision.
@@ -174,5 +180,5 @@
   $ cd stoprev
   $ hg tip --debug | grep extra
   extra:       branch=default
-  extra:       convert_revision=svn:........-....-....-....-............/proj B/trunk@1 (re)
+  extra:       convert_revision=svn:........-....-....-....-............/proj B/mytrunk@1 (re)
   $ cd ..
--- a/tests/test-convert.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-convert.t	Wed Mar 02 13:24:48 2011 +0100
@@ -131,7 +131,7 @@
                   repositories with missing revlogs, by converting from and to
                   Mercurial. Default is False.
       convert.hg.saverev
-                  store original. revision ID in changeset (forces target IDs to
+                  store original revision ID in changeset (forces target IDs to
                   change). It takes and boolean argument and defaults to False.
       convert.hg.startrev
                   convert start revision and its descendants. It takes a hg
@@ -204,12 +204,12 @@
       The following options can be set with "--config":
   
       convert.svn.branches
-                  specify the directory containing branches. The defaults is
+                  specify the directory containing branches. The default is
                   "branches".
       convert.svn.tags
                   specify the directory containing tags. The default is "tags".
       convert.svn.trunk
-                  specify the name of the trunk branch The defauls is "trunk".
+                  specify the name of the trunk branch. The default is "trunk".
   
       Source history can be retrieved starting at a specific revision, instead
       of being integrally converted. Only single branch conversions are
@@ -231,7 +231,7 @@
       specifying an initial Perforce revision:
   
       convert.p4.startrev
-                  specify initial Perforce revision, a Perforce changelist
+                  specify initial Perforce revision (a Perforce changelist
                   number).
   
       Mercurial Destination
@@ -245,7 +245,7 @@
       convert.hg.tagsbranch
                   branch name for tag revisions, defaults to "default".
       convert.hg.usebranchnames
-                  preserve branch names. The default is True
+                  preserve branch names. The default is True.
   
   options:
   
--- a/tests/test-debugcomplete.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-debugcomplete.t	Wed Mar 02 13:24:48 2011 +0100
@@ -230,7 +230,7 @@
   grep: print0, all, follow, ignore-case, files-with-matches, line-number, rev, user, date, include, exclude
   heads: rev, topo, active, closed, style, template
   help: 
-  identify: rev, num, id, branch, tags
+  identify: rev, num, id, branch, tags, bookmarks
   import: strip, base, force, no-commit, exact, import-branch, message, logfile, date, user, similarity
   incoming: force, newest-first, bundle, rev, bookmarks, branch, patch, git, limit, no-merges, stat, style, template, ssh, remotecmd, insecure, subrepos
   locate: rev, print0, fullpath, include, exclude
--- a/tests/test-diff-color.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-diff-color.t	Wed Mar 02 13:24:48 2011 +0100
@@ -97,7 +97,8 @@
   $ echo "[extensions]" >> $HGRCPATH
   $ echo "mq=" >> $HGRCPATH
   $ hg rollback
-  rolling back to revision 0 (undo commit)
+  repository tip rolled back to revision 0 (undo commit)
+  working directory now based on revision 0
 
 qrecord
 
--- a/tests/test-eol-hook.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-eol-hook.t	Wed Mar 02 13:24:48 2011 +0100
@@ -21,6 +21,7 @@
   $ cat > .hgeol <<EOF
   > [patterns]
   > mixed.txt = BIN
+  > crlf.txt = CRLF
   > **.txt = native
   > EOF
   $ hg add .hgeol
@@ -61,3 +62,29 @@
   adding manifests
   adding file changes
   added 2 changesets with 2 changes to 1 files
+
+  $ printf "first\nsecond\nthird\n" > crlf.txt
+  $ hg add crlf.txt
+  $ hg commit -m 'LF crlf.txt'
+  $ hg push ../main
+  pushing to ../main
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  error: pretxnchangegroup hook failed: crlf.txt should not have LF line endings
+  transaction abort!
+  rollback completed
+  abort: crlf.txt should not have LF line endings
+  [255]
+
+  $ printf "first\r\nsecond\r\nthird\r\n" > crlf.txt
+  $ hg commit -m 'CRLF crlf.txt (fixed)'
+  $ hg push ../main
+  pushing to ../main
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 1 files
--- a/tests/test-eol.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-eol.t	Wed Mar 02 13:24:48 2011 +0100
@@ -383,3 +383,60 @@
   % hg commit
   % hg status
   $ rm -r mixed
+
+Test issue2569 -- eol extension takes write lock on reading:
+
+  $ echo '[extensions]' >> $HGRCPATH
+  $ echo 'eol =' >> $HGRCPATH
+  $ hg init repo
+  $ cd repo
+  $ touch .hgeol
+  $ hg status
+  ? .hgeol
+  $ chmod -R -w .hg
+  $ sleep 1
+  $ touch .hgeol
+  $ hg status --traceback
+  ? .hgeol
+  $ cd ..
+
+Test cleverencode: and cleverdecode: aliases for win32text extension
+
+  $ echo '[encode]' >> $HGRCPATH
+  $ echo '**.txt = cleverencode:' >> $HGRCPATH
+  $ echo '[decode]' >> $HGRCPATH
+  $ echo '**.txt = cleverdecode:' >> $HGRCPATH
+
+  $ hg init win32compat
+  $ cd win32compat
+  $ printf "foo\r\nbar\r\nbaz\r\n" > win.txt
+  $ printf "foo\nbar\nbaz\n" > unix.txt
+  $ hg add
+  adding unix.txt
+  adding win.txt
+  $ hg commit -m checkin
+
+Check that both files have LF line-endings in the repository:
+
+  $ hg cat win.txt
+  foo
+  bar
+  baz
+  $ hg cat unix.txt
+  foo
+  bar
+  baz
+
+Test handling of a broken .hgeol file:
+
+  $ touch .hgeol
+  $ hg add .hgeol
+  $ hg commit -m 'clean version'
+  $ echo "bad" > .hgeol
+  $ hg status
+  warning: ignoring .hgeol file due to parse error at .hgeol:1: bad
+  M .hgeol
+  $ hg revert .hgeol
+  warning: ignoring .hgeol file due to parse error at .hgeol:1: bad
+  $ hg status
+  ? .hgeol.orig
--- a/tests/test-filebranch.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-filebranch.t	Wed Mar 02 13:24:48 2011 +0100
@@ -55,10 +55,10 @@
   (run 'hg heads' to see heads, 'hg merge' to merge)
 
   $ hg merge -v
-  merging for foo
   resolving manifests
   getting bar
   merging foo
+  merging for foo
   1 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
 
--- a/tests/test-help.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-help.t	Wed Mar 02 13:24:48 2011 +0100
@@ -198,7 +198,7 @@
   Mercurial Distributed SCM (version *) (glob)
   (see http://mercurial.selenic.com for more information)
   
-  Copyright (C) 2005-2010 Matt Mackall and others
+  Copyright (C) 2005-2011 Matt Mackall and others
   This is free software; see the source for copying conditions. There is NO
   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   
@@ -351,7 +351,7 @@
   Mercurial Distributed SCM (version *) (glob)
   (see http://mercurial.selenic.com for more information)
   
-  Copyright (C) 2005-2010 Matt Mackall and others
+  Copyright (C) 2005-2011 Matt Mackall and others
   This is free software; see the source for copying conditions. There is NO
   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   
--- a/tests/test-hook.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-hook.t	Wed Mar 02 13:24:48 2011 +0100
@@ -66,7 +66,7 @@
 test generic hooks
 
   $ hg id
-  pre-identify hook: HG_ARGS=id HG_OPTS={'branch': None, 'id': None, 'num': None, 'rev': '', 'tags': None} HG_PATS=[] 
+  pre-identify hook: HG_ARGS=id HG_OPTS={'bookmarks': None, 'branch': None, 'id': None, 'num': None, 'rev': '', 'tags': None} HG_PATS=[] 
   warning: pre-identify hook exited with status 1
   [1]
   $ hg cat b
@@ -76,17 +76,17 @@
 
   $ cd ../b
   $ hg pull ../a
+  pulling from ../a
+  searching for changes
   prechangegroup hook: HG_SOURCE=pull HG_URL=file:$TESTTMP/a 
+  adding changesets
+  adding manifests
+  adding file changes
+  added 3 changesets with 2 changes to 2 files
   changegroup hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_SOURCE=pull HG_URL=file:$TESTTMP/a 
   incoming hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_SOURCE=pull HG_URL=file:$TESTTMP/a 
   incoming hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_SOURCE=pull HG_URL=file:$TESTTMP/a 
   incoming hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_SOURCE=pull HG_URL=file:$TESTTMP/a 
-  pulling from ../a
-  searching for changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 3 changesets with 2 changes to 2 files
   (run 'hg update' to get a working copy)
 
 tag hooks can see env vars
@@ -176,9 +176,9 @@
   $ echo '[hooks]' > .hg/hgrc
   $ echo 'prechangegroup.forbid = python "$TESTDIR"/printenv.py prechangegroup.forbid 1' >> .hg/hgrc
   $ hg pull ../a
-  prechangegroup.forbid hook: HG_SOURCE=pull HG_URL=file:$TESTTMP/a 
   pulling from ../a
   searching for changes
+  prechangegroup.forbid hook: HG_SOURCE=pull HG_URL=file:$TESTTMP/a 
   abort: prechangegroup.forbid hook exited with status 1
   [255]
 
@@ -189,14 +189,14 @@
   $ echo 'pretxnchangegroup.forbid0 = hg tip -q' >> .hg/hgrc
   $ echo 'pretxnchangegroup.forbid1 = python "$TESTDIR"/printenv.py pretxnchangegroup.forbid 1' >> .hg/hgrc
   $ hg pull ../a
-  4:539e4b31b6dc
-  pretxnchangegroup.forbid hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/b HG_SOURCE=pull HG_URL=file:$TESTTMP/a 
   pulling from ../a
   searching for changes
   adding changesets
   adding manifests
   adding file changes
   added 1 changesets with 1 changes to 1 files
+  4:539e4b31b6dc
+  pretxnchangegroup.forbid hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/b HG_SOURCE=pull HG_URL=file:$TESTTMP/a 
   transaction abort!
   rollback completed
   abort: pretxnchangegroup.forbid1 hook exited with status 1
@@ -211,26 +211,27 @@
   $ echo 'preoutgoing = python "$TESTDIR"/printenv.py preoutgoing' >> ../a/.hg/hgrc
   $ echo 'outgoing = python "$TESTDIR"/printenv.py outgoing' >> ../a/.hg/hgrc
   $ hg pull ../a
-  preoutgoing hook: HG_SOURCE=pull 
-  outgoing hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_SOURCE=pull 
   pulling from ../a
   searching for changes
+  preoutgoing hook: HG_SOURCE=pull 
   adding changesets
+  outgoing hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_SOURCE=pull 
   adding manifests
   adding file changes
   added 1 changesets with 1 changes to 1 files
   (run 'hg update' to get a working copy)
   $ hg rollback
-  rolling back to revision 3 (undo pull)
+  repository tip rolled back to revision 3 (undo pull)
+  working directory now based on revision 0
 
 preoutgoing hook can prevent outgoing changes
 
   $ echo 'preoutgoing.forbid = python "$TESTDIR"/printenv.py preoutgoing.forbid 1' >> ../a/.hg/hgrc
   $ hg pull ../a
+  pulling from ../a
+  searching for changes
   preoutgoing hook: HG_SOURCE=pull 
   preoutgoing.forbid hook: HG_SOURCE=pull 
-  pulling from ../a
-  searching for changes
   abort: preoutgoing.forbid hook exited with status 1
   [255]
 
--- a/tests/test-http.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-http.t	Wed Mar 02 13:24:48 2011 +0100
@@ -11,7 +11,7 @@
   adding foo.d/bAr.hg.d/BaR
   adding foo.d/baR.d.hg/bAR
   adding foo.d/foo
-  $ hg serve -p $HGPORT -d --pid-file=../hg1.pid
+  $ hg serve -p $HGPORT -d --pid-file=../hg1.pid -E ../error.log
   $ hg --config server.uncompressed=False serve -p $HGPORT1 -d --pid-file=../hg2.pid
 
 Test server address cannot be reused
@@ -76,12 +76,22 @@
   $ echo '[hooks]' >> .hg/hgrc
   $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup' >> .hg/hgrc
   $ hg pull
-  changegroup hook: HG_NODE=5fed3813f7f5e1824344fdc9cf8f63bb662c292d HG_SOURCE=pull HG_URL=http://localhost:$HGPORT1/ 
   pulling from http://localhost:$HGPORT1/
   searching for changes
   adding changesets
   adding manifests
   adding file changes
   added 1 changesets with 1 changes to 1 files
+  changegroup hook: HG_NODE=5fed3813f7f5e1824344fdc9cf8f63bb662c292d HG_SOURCE=pull HG_URL=http://localhost:$HGPORT1/ 
   (run 'hg update' to get a working copy)
   $ cd ..
+
+clone from invalid URL
+
+  $ hg clone http://localhost:$HGPORT/bad
+  abort: HTTP Error 404: Not Found
+  [255]
+
+check error log
+
+  $ cat error.log
--- a/tests/test-https.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-https.t	Wed Mar 02 13:24:48 2011 +0100
@@ -134,13 +134,13 @@
   $ echo "changegroup = python '$TESTDIR'/printenv.py changegroup" >> .hg/hgrc
   $ hg pull
   warning: localhost certificate with fingerprint 91:4f:1a:ff:87:24:9c:09:b6:85:9b:88:b1:90:6d:30:75:64:91:ca not verified (check hostfingerprints or web.cacerts config setting)
-  changegroup hook: HG_NODE=5fed3813f7f5e1824344fdc9cf8f63bb662c292d HG_SOURCE=pull HG_URL=https://localhost:$HGPORT/ 
   pulling from https://localhost:$HGPORT/
   searching for changes
   adding changesets
   adding manifests
   adding file changes
   added 1 changesets with 1 changes to 1 files
+  changegroup hook: HG_NODE=5fed3813f7f5e1824344fdc9cf8f63bb662c292d HG_SOURCE=pull HG_URL=https://localhost:$HGPORT/ 
   warning: localhost certificate with fingerprint 91:4f:1a:ff:87:24:9c:09:b6:85:9b:88:b1:90:6d:30:75:64:91:ca not verified (check hostfingerprints or web.cacerts config setting)
   (run 'hg update' to get a working copy)
   $ cd ..
@@ -243,6 +243,7 @@
 Test unvalidated https through proxy
 
   $ http_proxy=http://localhost:$HGPORT1/ hg -R copy-pull pull --insecure --traceback
+  warning: localhost certificate with fingerprint 91:4f:1a:ff:87:24:9c:09:b6:85:9b:88:b1:90:6d:30:75:64:91:ca not verified (check hostfingerprints or web.cacerts config setting)
   pulling from https://localhost:$HGPORT/
   searching for changes
   no changes found
@@ -261,8 +262,8 @@
 Test https with cert problems through proxy
 
   $ http_proxy=http://localhost:$HGPORT1/ hg -R copy-pull pull --config web.cacerts=pub-other.pem
-  abort: error: _ssl.c:499: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
+  abort: error: *:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (glob)
   [255]
   $ http_proxy=http://localhost:$HGPORT1/ hg -R copy-pull pull --config web.cacerts=pub-expired.pem https://localhost:$HGPORT2/
-  abort: error: _ssl.c:499: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
+  abort: error: *:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (glob)
   [255]
--- a/tests/test-i18n.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-i18n.t	Wed Mar 02 13:24:48 2011 +0100
@@ -1,3 +1,7 @@
+Translations are optional:
+
+  $ "$TESTDIR/hghave" gettext || exit 80
+
 Test that translations are compiled and installed correctly.
 
 Default encoding in tests is "ascii" and the translation is encoded
--- a/tests/test-identify.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-identify.t	Wed Mar 02 13:24:48 2011 +0100
@@ -62,8 +62,39 @@
   $ hg id http://localhost:$HGPORT1/
   cb9a9f314b8b
 
+remote with rev number?
+
+  $ hg id -n http://localhost:$HGPORT1/
+  abort: can't query remote revision number, branch, tags, or bookmarks
+  [255]
+
 remote with tags?
 
   $ hg id -t http://localhost:$HGPORT1/
-  abort: can't query remote revision number, branch, or tags
+  abort: can't query remote revision number, branch, tags, or bookmarks
+  [255]
+
+remote with branch?
+
+  $ hg id -b http://localhost:$HGPORT1/
+  abort: can't query remote revision number, branch, tags, or bookmarks
+  [255]
+
+remote with bookmarks?
+
+  $ hg id -B http://localhost:$HGPORT1/
+  abort: can't query remote revision number, branch, tags, or bookmarks
   [255]
+
+Make sure we do not obscure unknown requires file entries (issue2649)
+
+  $ echo fake >> .hg/requires
+  $ hg id
+  abort: requirement 'fake' not supported!
+  [255]
+
+  $ cd ..
+  $ hg id test
+  abort: requirement 'fake' not supported!
+  [255]
+
--- a/tests/test-import.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-import.t	Wed Mar 02 13:24:48 2011 +0100
@@ -364,7 +364,8 @@
   applying ../patch2
   applied 1d4bd90af0e4
   $ hg --cwd b rollback
-  rolling back to revision 1 (undo commit)
+  repository tip rolled back to revision 1 (undo commit)
+  working directory now based on revision 1
   $ hg --cwd b parents --template 'parent: {rev}\n'
   parent: 1
   $ rm -r b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-issue1502.t	Wed Mar 02 13:24:48 2011 +0100
@@ -0,0 +1,42 @@
+http://mercurial.selenic.com/bts/issue1502
+
+Initialize repository
+
+  $ hg init foo
+  $ touch foo/a && hg -R foo commit -A -m "added a"
+  adding a
+
+  $ hg clone foo foo1
+  updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+  $ echo "bar" > foo1/a && hg -R foo1 commit -m "edit a in foo1"
+  $ echo "hi" > foo/a && hg -R foo commit -m "edited a foo"
+  $ hg -R foo1 pull -u
+  pulling from $TESTTMP/foo
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files (+1 heads)
+  not updating, since new heads added
+  (run 'hg heads' to see heads, 'hg merge' to merge)
+
+  $ hg -R foo1 book branchy
+  $ hg -R foo1 book
+   * branchy                   1:e3e522925eff
+
+Pull. Bookmark should not jump to new head.
+
+  $ echo "there" >> foo/a && hg -R foo commit -m "edited a again"
+  $ hg -R foo1 pull
+  pulling from $TESTTMP/foo
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  (run 'hg update' to get a working copy)
+
+  $ hg -R foo1 book
+   * branchy                   1:e3e522925eff
--- a/tests/test-keyword.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-keyword.t	Wed Mar 02 13:24:48 2011 +0100
@@ -352,7 +352,8 @@
   +bar
 
   $ hg rollback
-  rolling back to revision 2 (undo commit)
+  repository tip rolled back to revision 2 (undo commit)
+  working directory now based on revision 2
 
 Record all chunks in file a
 
@@ -394,7 +395,8 @@
   xxx $
   bar
   $ hg --verbose rollback
-  rolling back to revision 2 (undo commit)
+  repository tip rolled back to revision 2 (undo commit)
+  working directory now based on revision 2
   overwriting a expanding keywords
   $ hg status a
   M a
@@ -411,7 +413,8 @@
   $ cat z
   $Id: z,v 45a5d3adce53 1970/01/01 00:00:00 test $
   $ hg --verbose rollback
-  rolling back to revision 2 (undo commit)
+  repository tip rolled back to revision 2 (undo commit)
+  working directory now based on revision 2
   overwriting z shrinking keywords
 
 Only z should be overwritten
@@ -437,7 +440,8 @@
   committed changeset 3:899491280810
   overwriting r expanding keywords
   $ hg --verbose rollback
-  rolling back to revision 2 (undo commit)
+  repository tip rolled back to revision 2 (undo commit)
+  working directory now based on revision 2
   overwriting r shrinking keywords
   $ hg forget r
   $ rm msg r
@@ -601,7 +605,8 @@
 Status after rollback:
 
   $ hg rollback
-  rolling back to revision 1 (undo commit)
+  repository tip rolled back to revision 1 (undo commit)
+  working directory now based on revision 1
   $ hg status
   A c
   $ hg update --clean
@@ -622,7 +627,8 @@
   $ rm x
 
   $ hg rollback
-  rolling back to revision 1 (undo commit)
+  repository tip rolled back to revision 1 (undo commit)
+  working directory now based on revision 1
   $ hg update --clean
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ rm i symignored
@@ -735,7 +741,8 @@
 Rollback, revert, and check expansion
 
   $ hg rollback
-  rolling back to revision 2 (undo commit)
+  repository tip rolled back to revision 2 (undo commit)
+  working directory now based on revision 2
   $ hg status
   R a
   ? c
@@ -811,7 +818,8 @@
   ignore $Id$
 
   $ hg rollback
-  rolling back to revision 2 (undo commit)
+  repository tip rolled back to revision 2 (undo commit)
+  working directory now based on revision 2
   $ hg update --clean
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-merge-subrepos.t	Wed Mar 02 13:24:48 2011 +0100
@@ -0,0 +1,25 @@
+  $ hg init
+
+  $ echo a > a
+  $ hg ci -qAm 'add a'
+
+  $ hg init subrepo
+  $ echo 'subrepo = http://example.net/libfoo' > .hgsub
+  $ hg ci -qAm 'added subrepo'
+
+  $ hg up -qC 0
+  $ echo ax > a
+  $ hg ci -m 'changed a'
+  created new head
+
+  $ hg up -qC 1
+  $ cd subrepo
+  $ echo b > b
+  $ hg add b
+  $ cd ..
+
+Should fail, since there are added files to subrepo:
+
+  $ hg merge
+  abort: outstanding uncommitted changes in subrepository 'subrepo'
+  [255]
--- a/tests/test-merge-symlinks.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-merge-symlinks.t	Wed Mar 02 13:24:48 2011 +0100
@@ -38,11 +38,11 @@
 merge heads
 
   $ hg merge --tool="python ../echo.py"
+  merging l
   HG_FILE l
   HG_MY_ISLINK 1
   HG_OTHER_ISLINK 0
   HG_BASE_ISLINK 0
-  merging l
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
 
@@ -54,9 +54,9 @@
   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg copy l l2
   $ HGMERGE="python ../echo.py" hg up 3
+  merging l2
   HG_FILE l2
   HG_MY_ISLINK 1
   HG_OTHER_ISLINK 0
   HG_BASE_ISLINK 0
-  merging l2
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
--- a/tests/test-merge-tools.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-merge-tools.t	Wed Mar 02 13:24:48 2011 +0100
@@ -219,13 +219,13 @@
   true.executable=cat
   # hg update -C 1
   # hg merge -r 2
+  merging f
   revision 1
   space
   revision 0
   space
   revision 2
   space
-  merging f
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   # cat f
@@ -244,13 +244,13 @@
   true.executable=cat
   # hg update -C 1
   # hg merge -r 2 --config merge-tools.true.executable=cat
+  merging f
   revision 1
   space
   revision 0
   space
   revision 2
   space
-  merging f
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   # cat f
@@ -598,6 +598,7 @@
   true.executable=cat
   # hg update -C 1
   # hg merge -r 3 --config merge-tools.true.premerge=False
+  merging f
   revision 1
   space
   revision 0
@@ -605,7 +606,6 @@
   revision 0
   space
   revision 3
-  merging f
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   # cat f
@@ -631,6 +631,7 @@
   # hg update -C 1
   $ hg merge -r 2 --config merge-tools.true.executable=head --config merge-tools.true.args='$base $local $other $output' \
   >   | sed 's,==> .* <==,==> ... <==,g'
+  merging f
   ==> ... <==
   revision 0
   space
@@ -646,7 +647,6 @@
   ==> ... <==
   revision 1
   space
-  merging f
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   $ aftermerge
@@ -757,13 +757,13 @@
   true.executable=cat
   # hg update -C 1
   # hg merge -y -r 2 --config merge-tools.true.checkchanged=1
+  merging f
   revision 1
   space
   revision 0
   space
   revision 2
   space
-  merging f
    output file f appears unchanged
   was merge successful (yn)? n
   merging f failed!
--- a/tests/test-merge1.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-merge1.t	Wed Mar 02 13:24:48 2011 +0100
@@ -72,8 +72,8 @@
   [255]
 merge of b expected
   $ hg merge -f 1
+  merging b
   merging for b
-  merging b
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   $ hg diff --nodates
@@ -153,8 +153,8 @@
   [255]
 merge of b expected
   $ hg merge -f 2
+  merging b
   merging for b
-  merging b
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   $ hg diff --nodates
--- a/tests/test-mq-qpush-fail.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-mq-qpush-fail.t	Wed Mar 02 13:24:48 2011 +0100
@@ -51,6 +51,22 @@
   summary:     add foo
   
 
+test corrupt status file
+  $ hg qpush
+  applying patch1
+  now at: patch1
+  $ cp .hg/patches/status .hg/patches/status.orig
+  $ hg qpop
+  popping patch1
+  patch queue now empty
+  $ cp .hg/patches/status.orig .hg/patches/status
+  $ hg qpush
+  mq status file refers to unknown node * (glob)
+  abort: working directory revision is not qtip
+  [255]
+  $ rm .hg/patches/status .hg/patches/status.orig
+
+
 bar should be gone; other unknown/ignored files should still be around
 
   $ hg status -A
--- a/tests/test-mq-subrepo.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-mq-subrepo.t	Wed Mar 02 13:24:48 2011 +0100
@@ -191,7 +191,8 @@
 
   $ hg qpop -qa
   patch queue now empty
-  $ EXTRA='hg qnew -m2 2.diff' testrm1 qrefresh
+  $ EXTRA='hg qnew -m2 2.diff'
+  $ testrm1 qrefresh
   adding a
   % update substate when removing .hgsub w/dirty subrepo
   M sub3/a
@@ -201,12 +202,14 @@
 
   $ hg qpop -qa
   patch queue now empty
-  $ EXTRA='hg qnew -m3 3.diff' testrm2 qrefresh
+  $ EXTRA='hg qnew -m3 3.diff'
+  $ testrm2 qrefresh
   adding a
   % update substate when removing .hgsub w/clean updated subrepo
   R .hgsub
   % qrefresh
   % debugsub should be empty
+  $ EXTRA=
 
   $ cd ..
 
@@ -315,7 +318,7 @@
 
   $ hg qpop -qa
   patch queue now empty
-  $ EXTRA= testrm1 qrecord --config ui.interactive=1 -m2 2.diff <<EOF
+  $ testrm1 qrecord --config ui.interactive=1 -m2 2.diff <<EOF
   > y
   > y
   > EOF
@@ -331,7 +334,7 @@
 
   $ hg qpop -qa
   patch queue now empty
-  $ EXTRA= testrm2 qrecord --config ui.interactive=1 -m3 3.diff <<EOF
+  $ testrm2 qrecord --config ui.interactive=1 -m3 3.diff <<EOF
   > y
   > y
   > EOF
--- a/tests/test-mq.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-mq.t	Wed Mar 02 13:24:48 2011 +0100
@@ -917,6 +917,25 @@
   copy to copy
   $ cd ..
 
+empty lines in status
+
+  $ hg init emptystatus
+  $ cd emptystatus
+  $ hg qinit
+  $ printf '\n\n' > .hg/patches/status
+  $ hg qser
+  $ cd ..
+
+bad line in status (without ":")
+
+  $ hg init badstatus
+  $ cd badstatus
+  $ hg qinit
+  $ printf 'babar has no colon in this line\n' > .hg/patches/status
+  $ hg qser
+  malformated mq status line: ['babar has no colon in this line']
+  $ cd ..
+
 
 test file addition in slow path
 
--- a/tests/test-newbranch.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-newbranch.t	Wed Mar 02 13:24:48 2011 +0100
@@ -105,7 +105,8 @@
 Test for invalid branch cache:
 
   $ hg rollback
-  rolling back to revision 4 (undo commit)
+  repository tip rolled back to revision 4 (undo commit)
+  working directory now based on revisions 4 and 3
 
   $ cp $branchcache .hg/bc-invalid
 
--- a/tests/test-notify.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-notify.t	Wed Mar 02 13:24:48 2011 +0100
@@ -152,7 +152,8 @@
 fail for config file is missing
 
   $ hg --cwd b rollback
-  rolling back to revision 0 (undo pull)
+  repository tip rolled back to revision 0 (undo pull)
+  working directory now based on revision 0
   $ hg --cwd b pull ../a 2>&1 | grep 'error.*\.notify\.conf' > /dev/null && echo pull failed
   pull failed
   $ touch ".notify.conf"
@@ -160,7 +161,8 @@
 pull
 
   $ hg --cwd b rollback
-  rolling back to revision 0 (undo pull)
+  repository tip rolled back to revision 0 (undo pull)
+  working directory now based on revision 0
   $ hg --traceback --cwd b pull ../a  | \
   >   python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),'
   pulling from ../a
@@ -204,7 +206,8 @@
 pull
 
   $ hg --cwd b rollback
-  rolling back to revision 0 (undo pull)
+  repository tip rolled back to revision 0 (undo pull)
+  working directory now based on revision 0
   $ hg --traceback --cwd b pull ../a | \
   >   python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),'
   pulling from ../a
--- a/tests/test-patchbomb.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-patchbomb.t	Wed Mar 02 13:24:48 2011 +0100
@@ -159,12 +159,12 @@
   $ hg email -m test.mbox -f quux -t foo -c bar -s test 0:tip \
   > --config extensions.progress= --config progress.assume-tty=1 \
   > --config progress.delay=0 --config progress.refresh=0
-  \rwriting [                                                                 ] 0/3\rwriting [                                                                 ] 0/3\r                                                                                \r\r                                                                                \r\rwriting [====================>                                            ] 1/3\rwriting [====================>                                            ] 1/3\r                                                                                \r\r                                                                                \r\rwriting [==========================================>                      ] 2/3\rwriting [==========================================>                      ] 2/3\r                                                                                \rThis patch series consists of 2 patches. (esc)
+  This patch series consists of 2 patches.
   
   
   Write the introductory message for the patch series.
   
-  
+  \rwriting [                                                                 ] 0/3\rwriting [                                                                 ] 0/3\r                                                                                \r\r                                                                                \r\rwriting [====================>                                            ] 1/3\rwriting [====================>                                            ] 1/3\r                                                                                \r\r                                                                                \r\rwriting [==========================================>                      ] 2/3\rwriting [==========================================>                      ] 2/3\r                                                                                \r (esc)
   Writing [PATCH 0 of 2] test ...
   Writing [PATCH 1 of 2] a ...
   Writing [PATCH 2 of 2] b ...
--- a/tests/test-pull-pull-corruption.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-pull-pull-corruption.t	Wed Mar 02 13:24:48 2011 +0100
@@ -42,10 +42,10 @@
 ... and start another pull before the first one has finished
 
   $ sleep 1
+  pulling from ../source1
+  requesting all changes
   $ hg pull ../source2 2>/dev/null
   pulling from ../source2
-  pulling from ../source1
-  requesting all changes
   adding changesets
   adding manifests
   adding file changes
--- a/tests/test-pull-r.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-pull-r.t	Wed Mar 02 13:24:48 2011 +0100
@@ -42,7 +42,8 @@
   $ hg -q parents
   0:bbd179dfa0a7
   $ hg rollback
-  rolling back to revision -1 (undo pull)
+  repository tip rolled back to revision -1 (undo pull)
+  working directory now based on revision -1
 
   $ hg pull -qr 0 ../repo
   $ hg log
--- a/tests/test-pull.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-pull.t	Wed Mar 02 13:24:48 2011 +0100
@@ -49,7 +49,7 @@
   no changes found
 
   $ hg rollback --dry-run --verbose
-  rolling back to revision -1 (undo pull: http://foo:***@localhost:$HGPORT/)
+  repository tip rolled back to revision -1 (undo pull: http://foo:***@localhost:$HGPORT/)
 
 Issue622: hg init && hg pull -u URL doesn't checkout default branch
 
--- a/tests/test-push-http.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-push-http.t	Wed Mar 02 13:24:48 2011 +0100
@@ -15,7 +15,7 @@
   >     hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
   >     cat hg.pid >> $DAEMON_PIDS
   >     hg --cwd ../test2 push http://localhost:$HGPORT/
-  >     kill `cat hg.pid`
+  >     "$TESTDIR/killdaemons.py"
   >     echo % serve errors
   >     cat errors.log
   > }
@@ -63,7 +63,8 @@
   remote: changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http:*:  (glob)
   % serve errors
   $ hg rollback
-  rolling back to revision 0 (undo serve)
+  repository tip rolled back to revision 0 (undo serve)
+  working directory now based on revision 0
 
 expect authorization error: all users denied
 
--- a/tests/test-rename-after-merge.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-rename-after-merge.t	Wed Mar 02 13:24:48 2011 +0100
@@ -97,7 +97,8 @@
   copies:      c2 (c1)
 
   $ hg rollback
-  rolling back to revision 2 (undo commit)
+  repository tip rolled back to revision 2 (undo commit)
+  working directory now based on revisions 2 and 1
 
   $ hg up -C .
   2 files updated, 0 files merged, 2 files removed, 0 files unresolved
--- a/tests/test-rename-merge1.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-rename-merge1.t	Wed Mar 02 13:24:48 2011 +0100
@@ -99,3 +99,59 @@
    b3
    b4
   2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+
+Check for issue2642
+
+  $ hg init t
+  $ cd t
+
+  $ echo c0 > f1
+  $ hg ci -Aqm0
+
+  $ hg up null -q
+  $ echo c1 > f1 # backport
+  $ hg ci -Aqm1
+  $ hg mv f1 f2
+  $ hg ci -qm2
+
+  $ hg up 0 -q
+  $ hg merge 1 -q --tool internal:local
+  $ hg ci -qm3
+
+  $ hg merge 2
+  merging f1 and f2 to f2
+  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+
+  $ cat f2
+  c0
+
+Check for issue2089
+
+  $ hg init repo2089
+  $ cd repo2089
+
+  $ echo 0 > A
+  $ hg -q ci -Am 0
+
+  $ hg -q up -C null
+  $ echo 1 > A
+  $ hg -q ci -Am 1
+
+  $ hg -q up -C 0
+  $ hg merge 1 -q --tool internal:local
+  $ echo 2 > A
+  $ hg -q ci -m 2
+
+  $ hg -q up -C 1
+  $ hg mv A a
+  $ hg -q ci -Am 3
+
+  $ hg -q up -C 2
+  $ hg merge 3
+  merging A and a to a
+  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+
+  $ cat a
+  2
--- a/tests/test-rollback.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-rollback.t	Wed Mar 02 13:24:48 2011 +0100
@@ -20,7 +20,8 @@
   
   $ hg status
   $ hg rollback
-  rolling back to revision -1 (undo commit)
+  repository tip rolled back to revision -1 (undo commit)
+  working directory now based on revision -1
   $ hg verify
   checking changesets
   checking manifests
@@ -37,7 +38,8 @@
   $ hg branch test
   marked working directory as branch test
   $ hg rollback
-  rolling back to revision -1 (undo commit)
+  repository tip rolled back to revision -1 (undo commit)
+  working directory now based on revision -1
   $ hg branch
   default
 
@@ -54,8 +56,9 @@
   marked working directory as branch test
   $ rm .hg/undo.branch
   $ hg rollback
-  rolling back to revision -1 (undo commit)
+  repository tip rolled back to revision -1 (undo commit)
   Named branch could not be reset, current branch still is: test
+  working directory now based on revision -1
   $ hg branch
   test
 
--- a/tests/test-ssh.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-ssh.t	Wed Mar 02 13:24:48 2011 +0100
@@ -40,9 +40,6 @@
   > [server]
   > uncompressed = True
   > 
-  > [extensions]
-  > bookmarks =
-  > 
   > [hooks]
   > changegroup = python "$TESTDIR"/printenv.py changegroup-in-remote 0 ../dummylog
   > EOF
@@ -121,8 +118,6 @@
   $ echo "default-push = ssh://user@dummy/remote" >> .hg/hgrc
   $ echo "[ui]" >> .hg/hgrc
   $ echo "ssh = python ../dummyssh" >> .hg/hgrc
-  $ echo '[extensions]' >> .hg/hgrc
-  $ echo 'bookmarks =' >> .hg/hgrc
 
 find outgoing
 
@@ -195,8 +190,6 @@
 test pushkeys and bookmarks
 
   $ cd ../local
-  $ echo '[extensions]' >> ../remote/.hg/hgrc
-  $ echo 'bookmarks =' >> ../remote/.hg/hgrc
   $ hg debugpushkey --config ui.ssh="python ../dummyssh" ssh://user@dummy/remote namespaces
   bookmarks	
   namespaces	
@@ -269,6 +262,13 @@
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     z
   
+
+passwords in ssh urls are not supported
+
+  $ hg push ssh://user:erroneouspwd@dummy/remote
+  abort: password in URL not supported!
+  [255]
+
   $ cd ..
   $ cat dummylog
   Got arguments 1:user@dummy 2:hg -R nonexistent serve --stdio
--- a/tests/test-static-http.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-static-http.t	Wed Mar 02 13:24:48 2011 +0100
@@ -68,13 +68,13 @@
   $ echo '[hooks]' >> .hg/hgrc
   $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup' >> .hg/hgrc
   $ hg pull
-  changegroup hook: HG_NODE=4ac2e3648604439c580c69b09ec9d93a88d93432 HG_SOURCE=pull HG_URL=http://localhost:$HGPORT/remote 
   pulling from static-http://localhost:$HGPORT/remote
   searching for changes
   adding changesets
   adding manifests
   adding file changes
   added 1 changesets with 1 changes to 1 files
+  changegroup hook: HG_NODE=4ac2e3648604439c580c69b09ec9d93a88d93432 HG_SOURCE=pull HG_URL=http://localhost:$HGPORT/remote 
   (run 'hg update' to get a working copy)
 
 trying to push
@@ -102,27 +102,36 @@
   updating to branch default
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
-test with "/" URI (issue 747)
+test with "/" URI (issue 747) and subrepo
 
   $ hg init
+  $ hg init sub
+  $ hg -R sub tag not-empty
+  $ echo sub=sub > .hgsub
   $ echo a > a
-  $ hg add a
-  $ hg ci -ma
+  $ hg add a .hgsub
+  $ hg -q ci -ma
   $ hg clone static-http://localhost:$HGPORT/ local2
   requesting all changes
   adding changesets
   adding manifests
   adding file changes
-  added 1 changesets with 1 changes to 1 files
+  added 1 changesets with 3 changes to 3 files
   updating to branch default
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  pulling subrepo sub from static-http://localhost:$HGPORT/sub
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd local2
   $ hg verify
   checking changesets
   checking manifests
   crosschecking files in changesets and manifests
   checking files
-  1 files, 1 changesets, 1 total revisions
+  3 files, 1 changesets, 3 total revisions
   $ cat a
   a
   $ hg paths
--- a/tests/test-subrepo-git.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-subrepo-git.t	Wed Mar 02 13:24:48 2011 +0100
@@ -305,6 +305,15 @@
   f
   g
 
+relative source expansion
+
+  $ cd ..
+  $ mkdir d
+  $ hg clone t d/t
+  updating to branch default
+  cloning subrepo s
+  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
 Check hg update --clean
   $ cd $TESTTMP/ta
   $ echo  > s/g
@@ -359,7 +368,7 @@
   $ cd ..
   $ hg update 4
    subrepository sources for s differ
-  use (l)ocal source (da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7) or (r)emote source (aa84837ccfbdfedcdcdeeedc309d73e6eb069edc)?
+  use (l)ocal source (da5f5b1) or (r)emote source (aa84837)?
    l
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg id -n
@@ -384,7 +393,7 @@
   $ cd ..
   $ hg update 1
    subrepository sources for s differ (in checked out version)
-  use (l)ocal source (32a343883b74769118bb1d3b4b1fbf9156f4dddc) or (r)emote source (da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7)?
+  use (l)ocal source (32a3438) or (r)emote source (da5f5b1)?
    l
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg id -n
@@ -405,7 +414,7 @@
   1+
   $ hg update 7
    subrepository sources for s differ
-  use (l)ocal source (32a343883b74769118bb1d3b4b1fbf9156f4dddc) or (r)emote source (32a343883b74769118bb1d3b4b1fbf9156f4dddc)?
+  use (l)ocal source (32a3438) or (r)emote source (32a3438)?
    l
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg id -n
--- a/tests/test-tag.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-tag.t	Wed Mar 02 13:24:48 2011 +0100
@@ -227,7 +227,8 @@
 
   $ hg tag hgtags-modified
   $ hg rollback
-  rolling back to revision 13 (undo commit)
+  repository tip rolled back to revision 13 (undo commit)
+  working directory now based on revision 13
   $ hg st
   M .hgtags
   ? .hgtags.orig
--- a/tests/test-tags.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-tags.t	Wed Mar 02 13:24:48 2011 +0100
@@ -265,7 +265,8 @@
 Undo a tag with rollback:
 
   $ hg rollback             # destroy rev 5 (restore bar)
-  rolling back to revision 4 (undo commit)
+  repository tip rolled back to revision 4 (undo commit)
+  working directory now based on revision 4
   $ hg tags
   tip                                4:0c192d7d5e6b
   bar                                1:78391a272241
--- a/tests/test-trusted.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-trusted.py	Wed Mar 02 13:24:48 2011 +0100
@@ -11,7 +11,8 @@
 f.close()
 
 def testui(user='foo', group='bar', tusers=(), tgroups=(),
-           cuser='foo', cgroup='bar', debug=False, silent=False):
+           cuser='foo', cgroup='bar', debug=False, silent=False,
+           report=True):
     # user, group => owners of the file
     # tusers, tgroups => trusted users/groups
     # cuser, cgroup => user/group of the current process
@@ -61,6 +62,7 @@
 
     u = ui.ui()
     u.setconfig('ui', 'debug', str(bool(debug)))
+    u.setconfig('ui', 'report_untrusted', str(bool(report)))
     u.readconfig('.hg/hgrc')
     if silent:
         return u
@@ -131,6 +133,12 @@
 print "# prints debug warnings"
 u = testui(user='abc', group='def', cuser='foo', debug=True)
 
+print "# report_untrusted enabled without debug hides warnings"
+u = testui(user='abc', group='def', cuser='foo', report=False)
+
+print "# report_untrusted enabled with debug shows warnings"
+u = testui(user='abc', group='def', cuser='foo', debug=True, report=False)
+
 print "# ui.readconfig sections"
 filename = 'foobar'
 f = open(filename, 'w')
--- a/tests/test-trusted.py.out	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-trusted.py.out	Wed Mar 02 13:24:48 2011 +0100
@@ -136,6 +136,25 @@
 .ignoring untrusted configuration option paths.local = /another/path
 . local = /another/path
 
+# report_untrusted enabled without debug hides warnings
+# different user, different group
+trusted
+    global = /some/path
+untrusted
+. . global = /some/path
+. . local = /another/path
+
+# report_untrusted enabled with debug shows warnings
+# different user, different group
+Not trusting file .hg/hgrc from untrusted user abc, group def
+trusted
+ignoring untrusted configuration option paths.local = /another/path
+    global = /some/path
+untrusted
+. . global = /some/path
+.ignoring untrusted configuration option paths.local = /another/path
+. local = /another/path
+
 # ui.readconfig sections
 quux
 
--- a/tests/test-url-rev.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-url-rev.t	Wed Mar 02 13:24:48 2011 +0100
@@ -101,7 +101,8 @@
 
   $ cd clone
   $ hg rollback
-  rolling back to revision 1 (undo push)
+  repository tip rolled back to revision 1 (undo push)
+  working directory now based on revision 1
 
   $ hg -q incoming
   2:faba9097cad4
@@ -145,7 +146,8 @@
   0:1f0dee641bb7
 
   $ hg rollback
-  rolling back to revision 1 (undo pull)
+  repository tip rolled back to revision 1 (undo pull)
+  working directory now based on revision 1
 
   $ hg up -C 0
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -166,7 +168,8 @@
   summary:     new head of branch foo
   
   $ hg rollback
-  rolling back to revision 1 (undo pull)
+  repository tip rolled back to revision 1 (undo pull)
+  working directory now based on revision 0
 
   $ hg up -C 0
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved