summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <daniel.silverstone@codethink.co.uk>2012-09-27 14:30:31 +0100
committerDaniel Silverstone <daniel.silverstone@codethink.co.uk>2012-09-27 14:30:31 +0100
commit4b0aa73b8c69bd5b7521337809f7bc4714209a5a (patch)
tree75f4c36771caf222280249cd1ed611d5ade8bd48
parent59a96880b5d035db83067acda8345497c75d7716 (diff)
parent921ced43c48c1d170452a7b251b94cc96ec8dd44 (diff)
downloadmercurial-tarball-4b0aa73b8c69bd5b7521337809f7bc4714209a5a.tar.gz
Merge remote-tracking branch 'origin/master' into baserock/morphbaserock/morph
This changes us to 1.9.3 which might stand a better chance of being usable by Lorry. We also undo the setup.py change because python now supports bz2
-rw-r--r--.hgignore8
-rw-r--r--.hgsigs14
-rw-r--r--.hgtags15
-rw-r--r--Makefile12
-rw-r--r--PKG-INFO2
-rw-r--r--README5
-rw-r--r--contrib/bash_completion1
-rwxr-xr-xcontrib/check-code.py202
-rwxr-xr-xcontrib/debugcmdserver.py47
-rwxr-xr-xcontrib/hg-ssh64
-rw-r--r--contrib/hgfixes/fix_bytes.py2
-rwxr-xr-xcontrib/hgweb.fcgi3
-rw-r--r--contrib/hgweb.wsgi3
-rw-r--r--contrib/mercurial.el3
-rw-r--r--contrib/mq.el3
-rw-r--r--contrib/perf.py100
-rwxr-xr-xcontrib/plan9/9diff42
-rw-r--r--contrib/plan9/README39
-rw-r--r--contrib/plan9/hgrc.d/9diff.rc7
-rw-r--r--contrib/plan9/hgrc.d/factotum.rc4
-rw-r--r--contrib/plan9/mkfile37
-rw-r--r--contrib/plan9/proto24
-rw-r--r--contrib/setup3k.py14
-rw-r--r--contrib/shrink-revlog.py29
-rw-r--r--contrib/win32/ReadMe.html2
-rw-r--r--contrib/win32/hgwebdir_wsgi.py2
-rw-r--r--contrib/win32/mercurial.ini8
-rw-r--r--contrib/wix/COPYING.rtfbin1686 -> 1755 bytes
-rw-r--r--contrib/wix/README.txt2
-rw-r--r--contrib/wix/guids.wxi6
-rw-r--r--contrib/wix/help.wxs1
-rw-r--r--contrib/wix/i18n.wxs2
-rw-r--r--contrib/wix/templates.wxs1
-rw-r--r--contrib/zsh_completion69
-rw-r--r--doc/gendoc.py17
-rw-r--r--doc/hg.12615
-rw-r--r--doc/hg.1.html2358
-rw-r--r--doc/hg.1.txt52
-rw-r--r--doc/hgignore.512
-rw-r--r--doc/hgignore.5.html13
-rw-r--r--doc/hgignore.5.txt8
-rw-r--r--doc/hgmanpage.py7
-rw-r--r--doc/hgrc.5590
-rw-r--r--doc/hgrc.5.html524
-rw-r--r--doc/hgrc.5.txt10
-rwxr-xr-xdoc/runrst2
-rw-r--r--hgext/acl.py102
-rw-r--r--hgext/bugzilla.py341
-rw-r--r--hgext/children.py7
-rw-r--r--hgext/churn.py6
-rw-r--r--hgext/color.py24
-rw-r--r--hgext/convert/__init__.py21
-rw-r--r--hgext/convert/bzr.py101
-rw-r--r--hgext/convert/common.py82
-rw-r--r--hgext/convert/convcmd.py38
-rw-r--r--hgext/convert/cvs.py7
-rw-r--r--hgext/convert/cvsps.py60
-rw-r--r--hgext/convert/darcs.py6
-rw-r--r--hgext/convert/filemap.py52
-rw-r--r--hgext/convert/git.py30
-rw-r--r--hgext/convert/hg.py31
-rw-r--r--hgext/convert/monotone.py12
-rw-r--r--hgext/convert/p4.py3
-rw-r--r--hgext/convert/subversion.py262
-rw-r--r--hgext/convert/transport.py10
-rw-r--r--hgext/eol.py30
-rw-r--r--hgext/extdiff.py7
-rw-r--r--hgext/factotum.py120
-rw-r--r--hgext/fetch.py25
-rw-r--r--hgext/gpg.py12
-rw-r--r--hgext/graphlog.py393
-rw-r--r--hgext/hgcia.py10
-rw-r--r--hgext/hgk.py8
-rw-r--r--hgext/highlight/__init__.py7
-rw-r--r--hgext/histedit.py715
-rw-r--r--hgext/inotify/__init__.py8
-rw-r--r--hgext/inotify/linuxserver.py7
-rw-r--r--hgext/inotify/server.py4
-rw-r--r--hgext/interhg.py2
-rw-r--r--hgext/keyword.py141
-rw-r--r--hgext/largefiles/CONTRIBUTORS4
-rw-r--r--hgext/largefiles/__init__.py102
-rw-r--r--hgext/largefiles/basestore.py195
-rw-r--r--hgext/largefiles/lfcommands.py549
-rw-r--r--hgext/largefiles/lfutil.py467
-rw-r--r--hgext/largefiles/localstore.py82
-rw-r--r--hgext/largefiles/overrides.py1080
-rw-r--r--hgext/largefiles/proto.py173
-rw-r--r--hgext/largefiles/remotestore.py110
-rw-r--r--hgext/largefiles/reposetup.py475
-rw-r--r--hgext/largefiles/uisetup.py167
-rw-r--r--hgext/largefiles/wirestore.py37
-rw-r--r--hgext/mq.py704
-rw-r--r--hgext/notify.py171
-rw-r--r--hgext/pager.py53
-rw-r--r--hgext/patchbomb.py197
-rw-r--r--hgext/progress.py55
-rw-r--r--hgext/purge.py8
-rw-r--r--hgext/rebase.py304
-rw-r--r--hgext/record.py101
-rw-r--r--hgext/relink.py9
-rw-r--r--hgext/schemes.py9
-rw-r--r--hgext/share.py39
-rw-r--r--hgext/transplant.py125
-rw-r--r--hgext/win32mbcs.py13
-rw-r--r--hgext/win32text.py4
-rw-r--r--hgext/zeroconf/Zeroconf.py4
-rw-r--r--hgext/zeroconf/__init__.py9
-rwxr-xr-xhgweb.cgi3
-rw-r--r--i18n/da.po8077
-rw-r--r--i18n/de.po15354
-rw-r--r--i18n/it.po5
-rw-r--r--i18n/ja.po10116
-rw-r--r--i18n/polib.py1501
-rw-r--r--i18n/pt_BR.po7470
-rw-r--r--i18n/ro.po2
-rw-r--r--i18n/ru.po13766
-rw-r--r--i18n/sv.po5876
-rw-r--r--mercurial/__version__.py2
-rw-r--r--mercurial/archival.py21
-rw-r--r--mercurial/base85.c15
-rw-r--r--mercurial/bdiff.c110
-rw-r--r--mercurial/bookmarks.py92
-rw-r--r--mercurial/bundlerepo.py56
-rw-r--r--mercurial/byterange.py16
-rw-r--r--mercurial/changegroup.py2
-rw-r--r--mercurial/changelog.py38
-rw-r--r--mercurial/cmdutil.py789
-rw-r--r--mercurial/commands.py2435
-rw-r--r--mercurial/commandserver.py8
-rw-r--r--mercurial/config.py50
-rw-r--r--mercurial/context.py330
-rw-r--r--mercurial/copies.py147
-rw-r--r--mercurial/dagparser.py11
-rw-r--r--mercurial/dagutil.py12
-rw-r--r--mercurial/demandimport.py30
-rw-r--r--mercurial/diffhelpers.c31
-rw-r--r--mercurial/dirstate.py192
-rw-r--r--mercurial/discovery.py448
-rw-r--r--mercurial/dispatch.py244
-rw-r--r--mercurial/encoding.py150
-rw-r--r--mercurial/error.py3
-rw-r--r--mercurial/exewrapper.c101
-rw-r--r--mercurial/extensions.py38
-rw-r--r--mercurial/fancyopts.py2
-rw-r--r--mercurial/filemerge.py255
-rw-r--r--mercurial/fileset.py37
-rw-r--r--mercurial/formatter.py71
-rw-r--r--mercurial/graphmod.py235
-rw-r--r--mercurial/hbisect.py123
-rw-r--r--mercurial/help.py154
-rw-r--r--mercurial/help/config.txt567
-rw-r--r--mercurial/help/filesets.txt2
-rw-r--r--mercurial/help/glossary.txt23
-rw-r--r--mercurial/help/hgignore.txt17
-rw-r--r--mercurial/help/hgweb.txt71
-rw-r--r--mercurial/help/merge-tools.txt32
-rw-r--r--mercurial/help/patterns.txt4
-rw-r--r--mercurial/help/phases.txt84
-rw-r--r--mercurial/help/revisions.txt12
-rw-r--r--mercurial/help/revsets.txt7
-rw-r--r--mercurial/help/subrepos.txt68
-rw-r--r--mercurial/hg.py189
-rw-r--r--mercurial/hgweb/common.py2
-rw-r--r--mercurial/hgweb/hgweb_mod.py11
-rw-r--r--mercurial/hgweb/hgwebdir_mod.py115
-rw-r--r--mercurial/hgweb/protocol.py5
-rw-r--r--mercurial/hgweb/request.py2
-rw-r--r--mercurial/hgweb/server.py3
-rw-r--r--mercurial/hgweb/webcommands.py232
-rw-r--r--mercurial/hgweb/webutil.py86
-rw-r--r--mercurial/hgweb/wsgicgi.py3
-rw-r--r--mercurial/hook.py32
-rw-r--r--mercurial/httpclient/__init__.py214
-rw-r--r--mercurial/httpclient/_readers.py195
-rw-r--r--mercurial/httpclient/tests/__init__.py1
-rw-r--r--mercurial/httpclient/tests/simple_http_test.py386
-rw-r--r--mercurial/httpclient/tests/test_bogus_responses.py68
-rw-r--r--mercurial/httpclient/tests/test_chunked_transfer.py137
-rw-r--r--mercurial/httpclient/tests/test_proxy_support.py135
-rw-r--r--mercurial/httpclient/tests/test_ssl.py93
-rw-r--r--mercurial/httpclient/tests/util.py195
-rw-r--r--mercurial/httpconnection.py10
-rw-r--r--mercurial/httprepo.py (renamed from mercurial/httppeer.py)30
-rw-r--r--mercurial/i18n.py3
-rw-r--r--mercurial/ignore.py1
-rw-r--r--mercurial/keepalive.py23
-rw-r--r--mercurial/localrepo.py1250
-rw-r--r--mercurial/lock.py8
-rw-r--r--mercurial/lsprof.py10
-rw-r--r--mercurial/mail.py52
-rw-r--r--mercurial/manifest.py12
-rw-r--r--mercurial/match.py26
-rw-r--r--mercurial/mdiff.py175
-rw-r--r--mercurial/merge.py124
-rw-r--r--mercurial/minirst.py331
-rw-r--r--mercurial/mpatch.c75
-rw-r--r--mercurial/obsolete.py331
-rw-r--r--mercurial/osutil.c7
-rw-r--r--mercurial/parsers.c1402
-rw-r--r--mercurial/patch.py280
-rw-r--r--mercurial/phases.py387
-rw-r--r--mercurial/posix.py155
-rw-r--r--mercurial/pure/__init__.py0
-rw-r--r--mercurial/pure/base85.py5
-rw-r--r--mercurial/pure/bdiff.py9
-rw-r--r--mercurial/pure/mpatch.py4
-rw-r--r--mercurial/pure/osutil.py21
-rw-r--r--mercurial/pure/parsers.py4
-rw-r--r--mercurial/pushkey.py9
-rw-r--r--mercurial/pvec.py210
-rw-r--r--mercurial/repair.py73
-rw-r--r--mercurial/repo.py (renamed from mercurial/peer.py)20
-rw-r--r--mercurial/revlog.py210
-rw-r--r--mercurial/revset.py1123
-rw-r--r--mercurial/scmutil.py318
-rw-r--r--mercurial/setdiscovery.py21
-rw-r--r--mercurial/similar.py3
-rw-r--r--mercurial/simplemerge.py10
-rw-r--r--mercurial/sshrepo.py (renamed from mercurial/sshpeer.py)59
-rw-r--r--mercurial/sshserver.py11
-rw-r--r--mercurial/sslutil.py75
-rw-r--r--mercurial/statichttprepo.py35
-rw-r--r--mercurial/store.py51
-rw-r--r--mercurial/subrepo.py316
-rw-r--r--mercurial/tags.py11
-rw-r--r--mercurial/templatefilters.py47
-rw-r--r--mercurial/templatekw.py29
-rw-r--r--mercurial/templater.py19
-rw-r--r--mercurial/templates/coal/map13
-rw-r--r--mercurial/templates/gitweb/changelogentry.tmpl2
-rw-r--r--mercurial/templates/gitweb/changeset.tmpl2
-rw-r--r--mercurial/templates/gitweb/fileannotate.tmpl3
-rw-r--r--mercurial/templates/gitweb/filecomparison.tmpl71
-rw-r--r--mercurial/templates/gitweb/filediff.tmpl4
-rw-r--r--mercurial/templates/gitweb/filelog.tmpl1
-rw-r--r--mercurial/templates/gitweb/filerevision.tmpl3
-rw-r--r--mercurial/templates/gitweb/graph.tmpl10
-rw-r--r--mercurial/templates/gitweb/map42
-rw-r--r--mercurial/templates/gitweb/summary.tmpl4
-rw-r--r--mercurial/templates/map-cmdline.bisect25
-rw-r--r--mercurial/templates/map-cmdline.default2
-rw-r--r--mercurial/templates/monoblue/bookmarks.tmpl2
-rw-r--r--mercurial/templates/monoblue/branches.tmpl2
-rw-r--r--mercurial/templates/monoblue/changelogentry.tmpl2
-rw-r--r--mercurial/templates/monoblue/changeset.tmpl6
-rw-r--r--mercurial/templates/monoblue/error.tmpl2
-rw-r--r--mercurial/templates/monoblue/fileannotate.tmpl5
-rw-r--r--mercurial/templates/monoblue/filecomparison.tmpl72
-rw-r--r--mercurial/templates/monoblue/filediff.tmpl1
-rw-r--r--mercurial/templates/monoblue/filelog.tmpl1
-rw-r--r--mercurial/templates/monoblue/filerevision.tmpl5
-rw-r--r--mercurial/templates/monoblue/footer.tmpl2
-rw-r--r--mercurial/templates/monoblue/graph.tmpl10
-rw-r--r--mercurial/templates/monoblue/help.tmpl2
-rw-r--r--mercurial/templates/monoblue/helptopics.tmpl2
-rw-r--r--mercurial/templates/monoblue/index.tmpl2
-rw-r--r--mercurial/templates/monoblue/map34
-rw-r--r--mercurial/templates/monoblue/notfound.tmpl2
-rw-r--r--mercurial/templates/monoblue/tags.tmpl2
-rw-r--r--mercurial/templates/paper/bookmarks.tmpl2
-rw-r--r--mercurial/templates/paper/branches.tmpl2
-rw-r--r--mercurial/templates/paper/changeset.tmpl4
-rw-r--r--mercurial/templates/paper/error.tmpl4
-rw-r--r--mercurial/templates/paper/fileannotate.tmpl5
-rw-r--r--mercurial/templates/paper/filecomparison.tmpl93
-rw-r--r--mercurial/templates/paper/filediff.tmpl5
-rw-r--r--mercurial/templates/paper/filelog.tmpl3
-rw-r--r--mercurial/templates/paper/filelogentry.tmpl2
-rw-r--r--mercurial/templates/paper/filerevision.tmpl5
-rw-r--r--mercurial/templates/paper/graph.tmpl12
-rw-r--r--mercurial/templates/paper/help.tmpl4
-rw-r--r--mercurial/templates/paper/helptopics.tmpl2
-rw-r--r--mercurial/templates/paper/index.tmpl2
-rw-r--r--mercurial/templates/paper/manifest.tmpl2
-rw-r--r--mercurial/templates/paper/map15
-rw-r--r--mercurial/templates/paper/search.tmpl2
-rw-r--r--mercurial/templates/paper/shortlog.tmpl2
-rw-r--r--mercurial/templates/paper/shortlogentry.tmpl2
-rw-r--r--mercurial/templates/paper/tags.tmpl2
-rw-r--r--mercurial/templates/raw/graph.tmpl6
-rw-r--r--mercurial/templates/raw/graphedge.tmpl1
-rw-r--r--mercurial/templates/raw/graphnode.tmpl7
-rw-r--r--mercurial/templates/raw/map8
-rw-r--r--mercurial/templates/spartan/changelogentry.tmpl4
-rw-r--r--mercurial/templates/spartan/changeset.tmpl2
-rw-r--r--mercurial/templates/spartan/fileannotate.tmpl2
-rw-r--r--mercurial/templates/spartan/filelogentry.tmpl4
-rw-r--r--mercurial/templates/spartan/filerevision.tmpl2
-rw-r--r--mercurial/templates/spartan/footer.tmpl2
-rw-r--r--mercurial/templates/spartan/graph.tmpl10
-rw-r--r--mercurial/templates/spartan/map2
-rw-r--r--mercurial/templates/spartan/shortlogentry.tmpl2
-rw-r--r--mercurial/templates/static/mercurial.js57
-rw-r--r--mercurial/templates/static/style-coal.css37
-rw-r--r--mercurial/templates/static/style-gitweb.css41
-rw-r--r--mercurial/templates/static/style-monoblue.css47
-rw-r--r--mercurial/templates/static/style-paper.css37
-rw-r--r--mercurial/transaction.py2
-rw-r--r--mercurial/treediscovery.py4
-rw-r--r--mercurial/ui.py76
-rw-r--r--mercurial/url.py9
-rw-r--r--mercurial/util.h63
-rw-r--r--mercurial/util.py400
-rw-r--r--mercurial/verify.py4
-rw-r--r--mercurial/win32.py95
-rw-r--r--mercurial/windows.py81
-rw-r--r--mercurial/wireproto.py69
-rw-r--r--setup.py188
-rw-r--r--tests/blacklists/linux-vfat35
-rw-r--r--tests/bundles/rebase-revset.hgbin1844 -> 0 bytes
-rwxr-xr-xtests/bundles/rename.sh30
-rw-r--r--tests/bundles/renames.hgbin1600 -> 0 bytes
-rw-r--r--tests/bzr-definitions2
-rwxr-xr-xtests/dummyssh6
-rwxr-xr-xtests/get-with-headers.py4
-rw-r--r--tests/heredoctest.py19
-rwxr-xr-xtests/hghave221
-rwxr-xr-xtests/hghave.py308
-rw-r--r--tests/histedit-helpers.sh6
-rw-r--r--tests/missing-comment.hgbin1077 -> 0 bytes
-rw-r--r--tests/notcapable11
-rw-r--r--tests/printenv.py12
-rwxr-xr-xtests/run-tests.py248
-rw-r--r--tests/sitecustomize.py3
-rw-r--r--tests/svn/empty.svndump129
-rwxr-xr-xtests/svn/svndump-empty.sh47
-rw-r--r--tests/svnxml.py51
-rw-r--r--tests/test-1102.t1
-rw-r--r--tests/test-1993.t2
-rw-r--r--tests/test-586.t1
-rw-r--r--tests/test-abort-checkin.t2
-rw-r--r--tests/test-acl.t385
-rw-r--r--tests/test-add.t16
-rw-r--r--tests/test-addremove-similar.t8
-rw-r--r--tests/test-addremove.t10
-rw-r--r--tests/test-alias.t181
-rw-r--r--tests/test-annotate.t69
-rw-r--r--tests/test-archive-symlinks.t8
-rw-r--r--tests/test-archive.t19
-rw-r--r--tests/test-atomictempfile.py11
-rw-r--r--tests/test-audit-path.t40
-rw-r--r--tests/test-backout.t12
-rw-r--r--tests/test-bad-pull.t31
-rw-r--r--tests/test-basic.t2
-rw-r--r--tests/test-bdiff.py14
-rw-r--r--tests/test-bdiff.py.out1
-rw-r--r--tests/test-bheads.t8
-rw-r--r--tests/test-bisect.t71
-rw-r--r--tests/test-bisect2.t362
-rw-r--r--tests/test-bisect3.t232
-rw-r--r--tests/test-bookmarks-current.t43
-rw-r--r--tests/test-bookmarks-merge.t93
-rw-r--r--tests/test-bookmarks-pushpull.t135
-rw-r--r--tests/test-bookmarks-rebase.t3
-rw-r--r--tests/test-bookmarks-strip.t6
-rw-r--r--tests/test-bookmarks.t117
-rw-r--r--tests/test-branch-option.t6
-rw-r--r--tests/test-branch-tag-confict.t3
-rw-r--r--tests/test-branches.t12
-rw-r--r--tests/test-bundle-r.t8
-rw-r--r--tests/test-bundle-type.t1
-rw-r--r--tests/test-bundle-vs-outgoing.t1
-rw-r--r--tests/test-bundle.t76
-rw-r--r--tests/test-casecollision-i18n.t43
-rw-r--r--tests/test-casecollision-merge.t209
-rw-r--r--tests/test-casecollision.t31
-rw-r--r--tests/test-casefolding.t110
-rw-r--r--tests/test-changelog-exec.t6
-rw-r--r--tests/test-check-code-hg.py24
-rw-r--r--tests/test-check-code-hg.t183
-rw-r--r--tests/test-check-code.t30
-rw-r--r--tests/test-check-pyflakes.t12
-rw-r--r--tests/test-children.t2
-rw-r--r--tests/test-churn.t2
-rw-r--r--tests/test-clone-cgi.t2
-rw-r--r--tests/test-clone-failure.t78
-rw-r--r--tests/test-clone-pull-corruption.t6
-rw-r--r--tests/test-clone-r.t38
-rw-r--r--tests/test-clone-update-order.t2
-rw-r--r--tests/test-clone.t118
-rw-r--r--tests/test-command-template.t33
-rw-r--r--tests/test-commandserver.py101
-rw-r--r--tests/test-commandserver.py.out147
-rw-r--r--tests/test-commit-amend.t357
-rw-r--r--tests/test-commit-copy.t16
-rw-r--r--tests/test-commit-multiple.t4
-rw-r--r--tests/test-commit-unresolved.t4
-rw-r--r--tests/test-commit.t36
-rw-r--r--tests/test-committer.t4
-rw-r--r--tests/test-config-case.t3
-rw-r--r--tests/test-conflict.t2
-rw-r--r--tests/test-contrib.t20
-rw-r--r--tests/test-convert-authormap.t6
-rwxr-xr-xtests/test-convert-baz79
-rw-r--r--tests/test-convert-baz.out96
-rw-r--r--tests/test-convert-baz.t163
-rw-r--r--tests/test-convert-bzr-directories.t42
-rw-r--r--tests/test-convert-bzr-ghosts.t6
-rw-r--r--tests/test-convert-bzr-merges.t14
-rw-r--r--tests/test-convert-bzr-treeroot.t2
-rw-r--r--tests/test-convert-bzr.t125
-rw-r--r--tests/test-convert-clonebranches.t4
-rw-r--r--tests/test-convert-cvs-branch.t1
-rw-r--r--tests/test-convert-cvs.t6
-rw-r--r--tests/test-convert-cvsnt-mergepoints.t7
-rw-r--r--tests/test-convert-darcs.t81
-rw-r--r--tests/test-convert-datesort.t2
-rw-r--r--tests/test-convert-filemap.t225
-rw-r--r--tests/test-convert-git.t11
-rw-r--r--tests/test-convert-hg-source.t14
-rw-r--r--tests/test-convert-hg-startrev.t1
-rw-r--r--tests/test-convert-hg-svn.t49
-rwxr-xr-xtests/test-convert-p475
-rwxr-xr-xtests/test-convert-p4-filetypes104
-rw-r--r--tests/test-convert-p4-filetypes.out642
-rw-r--r--tests/test-convert-p4-filetypes.t733
-rw-r--r--tests/test-convert-p4.out88
-rw-r--r--tests/test-convert-p4.t152
-rw-r--r--tests/test-convert-splicemap.t159
-rw-r--r--tests/test-convert-svn-branches.t2
-rw-r--r--tests/test-convert-svn-move.t27
-rw-r--r--tests/test-convert-svn-sink.t428
-rw-r--r--tests/test-convert-svn-source.t62
-rw-r--r--tests/test-convert-tagsbranch-topology.t6
-rw-r--r--tests/test-convert-tla.t2
-rw-r--r--tests/test-convert.t189
-rw-r--r--tests/test-copy-move-merge.t8
-rw-r--r--tests/test-copy.t136
-rw-r--r--tests/test-copy2.t109
-rw-r--r--tests/test-debugbuilddag.t24
-rw-r--r--tests/test-debugbundle.t1
-rw-r--r--tests/test-debugcommands.t25
-rw-r--r--tests/test-debugcomplete.t32
-rw-r--r--tests/test-debugindexdot.t2
-rw-r--r--tests/test-default-push.t4
-rw-r--r--tests/test-diff-binary-file.t3
-rw-r--r--tests/test-diff-change.t11
-rw-r--r--tests/test-diff-color.t21
-rw-r--r--tests/test-diff-hashes.t5
-rw-r--r--tests/test-diff-ignore-whitespace.t56
-rw-r--r--tests/test-diff-newlines.t2
-rw-r--r--tests/test-diff-subdir.t1
-rw-r--r--tests/test-diff-unified.t121
-rw-r--r--tests/test-diff-upgrade.t1
-rw-r--r--tests/test-diffstat.t15
-rw-r--r--tests/test-dirstate.t21
-rw-r--r--tests/test-dispatch.t19
-rw-r--r--tests/test-doctest.py15
-rw-r--r--tests/test-double-merge.t8
-rw-r--r--tests/test-duplicateoptions.py12
-rw-r--r--tests/test-empty-file.t1
-rw-r--r--tests/test-empty.t2
-rw-r--r--tests/test-encode.t2
-rw-r--r--tests/test-encoding-align.t21
-rw-r--r--tests/test-encoding-textwrap.t50
-rw-r--r--tests/test-encoding.t7
-rw-r--r--tests/test-eol-clone.t2
-rw-r--r--tests/test-eol-hook.t3
-rw-r--r--tests/test-eol-tag.t2
-rw-r--r--tests/test-eol.t89
-rw-r--r--tests/test-eolfilename.t2
-rw-r--r--tests/test-excessive-merge.t18
-rw-r--r--tests/test-export.t39
-rw-r--r--tests/test-extdiff.t20
-rw-r--r--tests/test-extension.t198
-rw-r--r--tests/test-extra-filelog-entry.t4
-rw-r--r--tests/test-fetch.t104
-rw-r--r--tests/test-filebranch.t39
-rw-r--r--tests/test-filecache.py95
-rw-r--r--tests/test-filecache.py.out15
-rwxr-xr-xtests/test-filelog (renamed from tests/test-filelog.py)9
-rw-r--r--tests/test-filelog.out (renamed from tests/test-filelog.py.out)0
-rw-r--r--tests/test-flags.t18
-rw-r--r--tests/test-fncache.t12
-rw-r--r--tests/test-gendoc.t8
-rw-r--r--tests/test-getbundle.t1
-rw-r--r--tests/test-git-export.t17
-rw-r--r--tests/test-globalopts.t297
-rw-r--r--tests/test-glog.t743
-rw-r--r--tests/test-gpg.t11
-rw-r--r--tests/test-graft.t535
-rw-r--r--tests/test-grep.t15
-rw-r--r--tests/test-hardlinks.t28
-rw-r--r--tests/test-help.t881
-rw-r--r--tests/test-hgcia.t2
-rw-r--r--tests/test-hgignore.t8
-rw-r--r--tests/test-hgk.t2
-rw-r--r--tests/test-hgrc.t82
-rw-r--r--tests/test-hgweb-commands.t380
-rw-r--r--tests/test-hgweb-descend-empties.t6
-rw-r--r--tests/test-hgweb-diffs.t523
-rw-r--r--tests/test-hgweb-empty.t22
-rw-r--r--tests/test-hgweb-filelog.t45
-rw-r--r--tests/test-hgweb-no-path-info.t2
-rw-r--r--tests/test-hgweb-no-request-uri.t2
-rw-r--r--tests/test-hgweb-non-interactive.t2
-rw-r--r--tests/test-hgweb-raw.t31
-rw-r--r--tests/test-hgweb-removed.t13
-rw-r--r--tests/test-hgweb.t71
-rw-r--r--tests/test-hgwebdir.t402
-rw-r--r--tests/test-hgwebdirsym.t20
-rw-r--r--tests/test-highlight.t92
-rw-r--r--tests/test-histedit-bookmark-motion.t187
-rw-r--r--tests/test-histedit-commute.t359
-rw-r--r--tests/test-histedit-drop.t107
-rw-r--r--tests/test-histedit-edit.t178
-rw-r--r--tests/test-histedit-fold-non-commute.t147
-rw-r--r--tests/test-histedit-fold.t238
-rw-r--r--tests/test-histedit-no-change.t187
-rw-r--r--tests/test-histedit-non-commute-abort.t131
-rw-r--r--tests/test-histedit-non-commute.t244
-rw-r--r--tests/test-histedit-outgoing.t84
-rw-r--r--tests/test-histedit-revspec.t62
-rw-r--r--tests/test-hook.t299
-rw-r--r--tests/test-http-branchmap.t2
-rw-r--r--tests/test-http-clone-r.t4
-rw-r--r--tests/test-http-proxy.t10
-rw-r--r--tests/test-http.t29
-rw-r--r--tests/test-https.t30
-rw-r--r--tests/test-hup.t24
-rw-r--r--tests/test-i18n.t16
-rw-r--r--tests/test-identify.t11
-rw-r--r--tests/test-impexp-branch.t17
-rw-r--r--tests/test-import-bypass.t29
-rw-r--r--tests/test-import-context.t1
-rw-r--r--tests/test-import-git.t189
-rw-r--r--tests/test-import-merge.t115
-rw-r--r--tests/test-import-unknown.t2
-rw-r--r--tests/test-import.t263
-rw-r--r--tests/test-incoming-outgoing.t11
-rw-r--r--tests/test-inherit-mode.t13
-rw-r--r--tests/test-init.t31
-rw-r--r--tests/test-inotify-dirty-dirstate.t2
-rw-r--r--tests/test-inotify-issue1208.t2
-rw-r--r--tests/test-inotify.t2
-rw-r--r--tests/test-install.t22
-rw-r--r--tests/test-interhg.t6
-rw-r--r--tests/test-issue1089.t5
-rw-r--r--tests/test-issue1306.t1
-rw-r--r--tests/test-issue1502.t4
-rw-r--r--tests/test-issue1802.t73
-rw-r--r--tests/test-issue1877.t1
-rw-r--r--tests/test-issue2137.t2
-rw-r--r--tests/test-issue3084.t110
-rw-r--r--tests/test-issue522.t12
-rw-r--r--tests/test-issue612.t6
-rw-r--r--tests/test-issue619.t1
-rw-r--r--tests/test-issue660.t4
-rw-r--r--tests/test-issue672.t18
-rw-r--r--tests/test-issue842.t1
-rw-r--r--tests/test-journal-exists.t2
-rw-r--r--tests/test-keyword.t124
-rw-r--r--tests/test-known.t1
-rw-r--r--tests/test-largefiles-cache.t125
-rw-r--r--tests/test-largefiles-small-disk.t67
-rw-r--r--tests/test-largefiles.t1447
-rw-r--r--tests/test-lfconvert.t272
-rw-r--r--tests/test-locate.t39
-rw-r--r--tests/test-lock-badness.t2
-rw-r--r--tests/test-log.t221
-rw-r--r--tests/test-mactext.t8
-rw-r--r--tests/test-manifest-merging.t1
-rw-r--r--tests/test-merge-closedheads.t2
-rw-r--r--tests/test-merge-commit.t53
-rw-r--r--tests/test-merge-default.t6
-rw-r--r--tests/test-merge-force.t3
-rw-r--r--tests/test-merge-local.t6
-rw-r--r--tests/test-merge-prompt.t4
-rw-r--r--tests/test-merge-revert2.t2
-rw-r--r--tests/test-merge-symlinks.t3
-rw-r--r--tests/test-merge-tools.t288
-rw-r--r--tests/test-merge-types.t48
-rw-r--r--tests/test-merge1.t14
-rw-r--r--tests/test-merge10.t2
-rw-r--r--tests/test-merge2.t2
-rw-r--r--tests/test-merge4.t5
-rw-r--r--tests/test-merge6.t2
-rw-r--r--tests/test-merge7.t22
-rw-r--r--tests/test-merge8.t2
-rw-r--r--tests/test-merge9.t4
-rw-r--r--tests/test-minirst.py76
-rw-r--r--tests/test-minirst.py.out450
-rw-r--r--tests/test-mq-caches.t12
-rw-r--r--tests/test-mq-guards.t73
-rw-r--r--tests/test-mq-header-from.t2
-rw-r--r--tests/test-mq-merge.t26
-rw-r--r--tests/test-mq-missingfiles.t47
-rw-r--r--tests/test-mq-qclone-http.t10
-rw-r--r--tests/test-mq-qdelete.t3
-rw-r--r--tests/test-mq-qdiff.t4
-rw-r--r--tests/test-mq-qgoto.t1
-rw-r--r--tests/test-mq-qimport-fail-cleanup.t14
-rw-r--r--tests/test-mq-qimport.t73
-rw-r--r--tests/test-mq-qnew.t12
-rw-r--r--tests/test-mq-qpush-exact.t1
-rw-r--r--tests/test-mq-qpush-fail.t274
-rw-r--r--tests/test-mq-qrefresh-interactive.t76
-rw-r--r--tests/test-mq-qrefresh.t21
-rw-r--r--tests/test-mq-qrename.t31
-rw-r--r--tests/test-mq-safety.t49
-rw-r--r--tests/test-mq-strip.t47
-rw-r--r--tests/test-mq-subrepo-svn.t25
-rw-r--r--tests/test-mq-subrepo.t185
-rw-r--r--tests/test-mq-symlinks.t12
-rw-r--r--tests/test-mq.t228
-rw-r--r--tests/test-mv-cp-st-diff.t6
-rw-r--r--tests/test-nested-repo.t9
-rw-r--r--tests/test-newbranch.t8
-rw-r--r--tests/test-newcgi.t2
-rw-r--r--tests/test-newercgi.t2
-rw-r--r--tests/test-notify-changegroup.t143
-rw-r--r--tests/test-notify.t217
-rw-r--r--tests/test-obsolete-changeset-exchange.t55
-rw-r--r--tests/test-obsolete.t508
-rw-r--r--tests/test-oldcgi.t2
-rw-r--r--tests/test-parents.t2
-rw-r--r--tests/test-parse-date.t20
-rw-r--r--tests/test-parseindex.t2
-rw-r--r--tests/test-parseindex2.py21
-rw-r--r--tests/test-patch-offset.t3
-rw-r--r--tests/test-patch.t2
-rw-r--r--tests/test-patchbomb.t1231
-rw-r--r--tests/test-paths.t23
-rw-r--r--tests/test-pending.t4
-rw-r--r--tests/test-permissions.t3
-rw-r--r--tests/test-phases-exchange.t1065
-rw-r--r--tests/test-phases.t479
-rw-r--r--tests/test-profile.t48
-rw-r--r--tests/test-progress.t82
-rw-r--r--tests/test-pull-branch.t5
-rw-r--r--tests/test-pull-http.t22
-rw-r--r--tests/test-pull-permission.t3
-rw-r--r--tests/test-pull-pull-corruption.t19
-rw-r--r--tests/test-pull-pull-corruption2.t44
-rw-r--r--tests/test-pull-r.t3
-rw-r--r--tests/test-pull-update.t1
-rw-r--r--tests/test-pull.t6
-rw-r--r--tests/test-purge.t34
-rw-r--r--tests/test-push-cgi.t4
-rw-r--r--tests/test-push-http.t16
-rw-r--r--tests/test-push-r.t3
-rw-r--r--tests/test-push-validation.t3
-rw-r--r--tests/test-push-warn.t14
-rw-r--r--tests/test-qrecord.t94
-rw-r--r--tests/test-rebase-abort.t66
-rw-r--r--tests/test-rebase-bookmarks.t36
-rw-r--r--tests/test-rebase-cache.t136
-rw-r--r--tests/test-rebase-check-restore.t68
-rw-r--r--tests/test-rebase-collapse.t272
-rw-r--r--tests/test-rebase-conflicts.t34
-rw-r--r--tests/test-rebase-detach.t163
-rw-r--r--tests/test-rebase-interruptions.t114
-rw-r--r--tests/test-rebase-issue-noparam-single-rev.t5
-rw-r--r--tests/test-rebase-mq-skip.t9
-rw-r--r--tests/test-rebase-mq.t68
-rw-r--r--tests/test-rebase-named-branches.t156
-rw-r--r--tests/test-rebase-newancestor.t2
-rw-r--r--tests/test-rebase-parameters.t83
-rw-r--r--tests/test-rebase-pull.t13
-rw-r--r--tests/test-rebase-rename.t1
-rw-r--r--tests/test-rebase-scenario-global.t349
-rw-r--r--tests/test-rebuildstate.t5
-rw-r--r--tests/test-record.t388
-rw-r--r--tests/test-relink.t12
-rw-r--r--tests/test-remove-new.t13
-rw-r--r--tests/test-remove.t32
-rw-r--r--tests/test-rename-after-merge.t1
-rw-r--r--tests/test-rename-dir-merge.t54
-rw-r--r--tests/test-rename-merge1.t56
-rw-r--r--tests/test-rename-merge2.t110
-rw-r--r--tests/test-rename.t98
-rw-r--r--tests/test-repair-strip.t2
-rw-r--r--tests/test-requires.t2
-rw-r--r--tests/test-resolve.t2
-rw-r--r--tests/test-revert-flags.t2
-rw-r--r--tests/test-revert.t16
-rw-r--r--tests/test-revlog-ancestry.py16
-rw-r--r--tests/test-revlog-ancestry.py.out2
-rw-r--r--tests/test-revlog-group-emptyiter.t1
-rw-r--r--tests/test-revlog-packentry.t8
-rw-r--r--tests/test-revset-dirstate-parents.t14
-rw-r--r--tests/test-revset-outgoing.t10
-rw-r--r--tests/test-revset.t402
-rw-r--r--tests/test-rollback.t124
-rw-r--r--tests/test-run-tests.t60
-rw-r--r--tests/test-schemes.t3
-rw-r--r--tests/test-serve.t10
-rw-r--r--tests/test-setdiscovery.t3
-rw-r--r--tests/test-share.t34
-rw-r--r--tests/test-simple-update.t2
-rw-r--r--tests/test-simplemerge.py3
-rw-r--r--tests/test-ssh-clone-r.t14
-rw-r--r--tests/test-ssh.t120
-rw-r--r--tests/test-static-http.t18
-rw-r--r--tests/test-status-color.t16
-rw-r--r--tests/test-status.t65
-rw-r--r--tests/test-strict.t38
-rw-r--r--tests/test-strip-cross.t66
-rw-r--r--tests/test-subrepo-deep-nested-change.t182
-rw-r--r--tests/test-subrepo-git.t79
-rw-r--r--tests/test-subrepo-missing.t20
-rw-r--r--tests/test-subrepo-paths.t30
-rw-r--r--tests/test-subrepo-recursion.t123
-rw-r--r--tests/test-subrepo-relative-path.t20
-rw-r--r--tests/test-subrepo-svn.t346
-rw-r--r--tests/test-subrepo.t314
-rw-r--r--tests/test-symlink-os-yes-fs-no.py7
-rw-r--r--tests/test-symlink-placeholder.t72
-rw-r--r--tests/test-symlinks.t18
-rw-r--r--tests/test-tag.t33
-rw-r--r--tests/test-tags.t6
-rw-r--r--tests/test-template-engine.t2
-rw-r--r--tests/test-transplant.t241
-rw-r--r--tests/test-treediscovery-legacy.t61
-rw-r--r--tests/test-treediscovery.t6
-rw-r--r--tests/test-trusted.py.out16
-rw-r--r--tests/test-unbundlehash.t1
-rw-r--r--tests/test-unrelated-pull.t2
-rw-r--r--tests/test-up-local-change.t24
-rw-r--r--tests/test-update-branches.t46
-rw-r--r--tests/test-update-issue1456.t3
-rw-r--r--tests/test-update-renames.t5
-rw-r--r--tests/test-update-reverse.t4
-rw-r--r--tests/test-url-rev.t14
-rw-r--r--tests/test-url.py15
-rw-r--r--tests/test-verify.t2
-rw-r--r--tests/test-walk.t55
-rw-r--r--tests/test-walkrepo.py11
-rw-r--r--tests/test-win32text.t64
-rw-r--r--tests/test-wireproto.py4
-rw-r--r--tests/test-wireproto.t1
-rwxr-xr-xtests/tinyproxy.py14
733 files changed, 31782 insertions, 94951 deletions
diff --git a/.hgignore b/.hgignore
index 9762593..b39bad9 100644
--- a/.hgignore
+++ b/.hgignore
@@ -8,20 +8,17 @@ syntax: glob
*.o
*.so
*.dll
-*.exe
*.pyd
*.pyc
*.pyo
*$py.class
*.swp
*.prof
-*.zip
\#*\#
.\#*
tests/.coverage*
tests/annotated
tests/*.err
-tests/htmlcov
build
contrib/hgsh/hgsh
dist
@@ -33,6 +30,7 @@ MANIFEST.in
patches
mercurial/__version__.py
mercurial.egg-info
+Output/Mercurial-*.exe
.DS_Store
tags
cscope.*
@@ -51,7 +49,3 @@ mercurial/parsers.py
syntax: regexp
^\.pc/
^\.(pydev)?project
-
-# hackable windows distribution additions
-^hg-python
-^hg.py$
diff --git a/.hgsigs b/.hgsigs
index 9ab4cf8..d1aec95 100644
--- a/.hgsigs
+++ b/.hgsigs
@@ -42,17 +42,3 @@ b032bec2c0a651ca0ddecb65714bfe6770f67d70 0 iD8DBQBNlg5kywK+sNU5EO8RAnGEAJ9gmEx6M
de9eb6b1da4fc522b1cab16d86ca166204c24f25 0 iD8DBQBODhfhywK+sNU5EO8RAr2+AJ4ugbAj8ae8/K0bYZzx3sascIAg1QCeK3b+zbbVVqd3b7CDpwFnaX8kTd4=
4a43e23b8c55b4566b8200bf69fe2158485a2634 0 iD8DBQBONzIMywK+sNU5EO8RAj5SAJ0aPS3+JHnyI6bHB2Fl0LImbDmagwCdGbDLp1S7TFobxXudOH49bX45Iik=
d629f1e89021103f1753addcef6b310e4435b184 0 iD8DBQBOWAsBywK+sNU5EO8RAht4AJwJl9oNFopuGkj5m8aKuf7bqPkoAQCeNrEm7UhFsZKYT5iUOjnMV7s2LaM=
-351a9292e430e35766c552066ed3e87c557b803b 0 iD8DBQBOh3zUywK+sNU5EO8RApFMAKCD3Y/u3avDFndznwqfG5UeTHMlvACfUivPIVQZyDZnhZMq0UhC6zhCEQg=
-384082750f2c51dc917d85a7145748330fa6ef4d 0 iD8DBQBOmd+OywK+sNU5EO8RAgDgAJ9V/X+G7VLwhTpHrZNiOHabzSyzYQCdE2kKfIevJUYB9QLAWCWP6DPwrwI=
-41453d55b481ddfcc1dacb445179649e24ca861d 0 iD8DBQBOsFhpywK+sNU5EO8RAqM6AKCyfxUae3/zLuiLdQz+JR78690eMACfQ6JTBQib4AbE+rUDdkeFYg9K/+4=
-195dbd1cef0c2f9f8bcf4ea303238105f716bda3 0 iD8DBQBO1/fWywK+sNU5EO8RAmoPAKCR5lpv1D6JLURHD8KVLSV4GRVEBgCgnd0Sy78ligNfqAMafmACRDvj7vo=
-6344043924497cd06d781d9014c66802285072e4 0 iD8DBQBPALgmywK+sNU5EO8RAlfhAJ9nYOdWnhfVDHYtDTJAyJtXBAQS9wCgnefoSQt7QABkbGxM+Q85UYEBuD0=
-db33555eafeaf9df1e18950e29439eaa706d399b 0 iD8DBQBPGdzxywK+sNU5EO8RAppkAJ9jOXhUVE/97CPgiMA0pMGiIYnesQCfengAszcBiSiKGugiI8Okc9ghU+Y=
-2aa5b51f310fb3befd26bed99c02267f5c12c734 0 iD8DBQBPKZ9bywK+sNU5EO8RAt1TAJ45r1eJ0YqSkInzrrayg4TVCh0SnQCgm0GA/Ua74jnnDwVQ60lAwROuz1Q=
-53e2cd303ecf8ca7c7eeebd785c34e5ed6b0f4a4 0 iD8DBQBPT/fvywK+sNU5EO8RAnfYAKCn7d0vwqIb100YfWm1F7nFD5B+FACeM02YHpQLSNsztrBCObtqcnfod7Q=
-b9bd95e61b49c221c4cca24e6da7c946fc02f992 0 iD8DBQBPeLsIywK+sNU5EO8RAvpNAKCtKe2gitz8dYn52IRF0hFOPCR7AQCfRJL/RWCFweu2T1vH/mUOCf8SXXc=
-d9e2f09d5488c395ae9ddbb320ceacd24757e055 0 iD8DBQBPju/dywK+sNU5EO8RArBYAJ9xtifdbk+hCOJO8OZa4JfHX8OYZQCeKPMBaBWiT8N/WHoOm1XU0q+iono=
-00182b3d087909e3c3ae44761efecdde8f319ef3 0 iD8DBQBPoFhIywK+sNU5EO8RAhzhAKCBj1n2jxPTkZNJJ5pSp3soa+XHIgCgsZZpAQxOpXwCp0eCdNGe0+pmxmg=
-5983de86462c5a9f42a3ad0f5e90ce5b1d221d25 0 iD8DBQBPovNWywK+sNU5EO8RAhgiAJ980T91FdPTRMmVONDhpkMsZwVIMACgg3bKvoWSeuCW28llUhAJtUjrMv0=
-85a358df5bbbe404ca25730c9c459b34263441dc 0 iD8DBQBPyZsWywK+sNU5EO8RAnpLAJ48qrGDJRT+pteS0mSQ11haqHstPwCdG4ccGbk+0JHb7aNy8/NRGAOqn9w=
-b013baa3898e117959984fc64c29d8c784d2f28b 0 iD8DBQBP8QOPywK+sNU5EO8RAqimAKCFRSx0lvG6y8vne2IhNG062Hn0dACeMLI5/zhpWpHBIVeAAquYfx2XFeA=
diff --git a/.hgtags b/.hgtags
index 373c0b6..d9e279b 100644
--- a/.hgtags
+++ b/.hgtags
@@ -54,18 +54,3 @@ b032bec2c0a651ca0ddecb65714bfe6770f67d70 1.8.2
de9eb6b1da4fc522b1cab16d86ca166204c24f25 1.9
4a43e23b8c55b4566b8200bf69fe2158485a2634 1.9.1
d629f1e89021103f1753addcef6b310e4435b184 1.9.2
-351a9292e430e35766c552066ed3e87c557b803b 1.9.3
-384082750f2c51dc917d85a7145748330fa6ef4d 2.0-rc
-41453d55b481ddfcc1dacb445179649e24ca861d 2.0
-195dbd1cef0c2f9f8bcf4ea303238105f716bda3 2.0.1
-6344043924497cd06d781d9014c66802285072e4 2.0.2
-db33555eafeaf9df1e18950e29439eaa706d399b 2.1-rc
-2aa5b51f310fb3befd26bed99c02267f5c12c734 2.1
-53e2cd303ecf8ca7c7eeebd785c34e5ed6b0f4a4 2.1.1
-b9bd95e61b49c221c4cca24e6da7c946fc02f992 2.1.2
-d9e2f09d5488c395ae9ddbb320ceacd24757e055 2.2-rc
-00182b3d087909e3c3ae44761efecdde8f319ef3 2.2
-5983de86462c5a9f42a3ad0f5e90ce5b1d221d25 2.2.1
-85a358df5bbbe404ca25730c9c459b34263441dc 2.2.2
-b013baa3898e117959984fc64c29d8c784d2f28b 2.2.3
-a06e2681dd1786e2354d84a5fa9c1c88dd4fa3e0 2.3-rc
diff --git a/Makefile b/Makefile
index 190f04d..dc7f827 100644
--- a/Makefile
+++ b/Makefile
@@ -18,7 +18,7 @@ help:
@echo ' install-home - install with setup.py install --home=HOME ($(HOME))'
@echo ' local - build for inplace usage'
@echo ' tests - run all tests in the automatic test suite'
- @echo ' test-foo - run only specified tests (e.g. test-merge1.t)'
+ @echo ' test-foo - run only specified tests (e.g. test-merge1)'
@echo ' dist - run all tests and create a source tarball in dist/'
@echo ' clean - remove files created by other targets'
@echo ' (except installed files or dist source tarball)'
@@ -33,7 +33,7 @@ help:
all: build doc
local:
- $(PYTHON) setup.py $(PURE) build_py -c -d . build_ext -i build_hgexe -i build_mo
+ $(PYTHON) setup.py $(PURE) build_py -c -d . build_ext -i build_mo
$(PYTHON) hg version
build:
@@ -45,8 +45,8 @@ doc:
clean:
-$(PYTHON) setup.py clean --all # ignore errors from this command
find . \( -name '*.py[cdo]' -o -name '*.so' \) -exec rm -f '{}' ';'
- rm -f $(addprefix mercurial/,$(notdir $(wildcard mercurial/pure/[a-z]*.py)))
- rm -f MANIFEST MANIFEST.in mercurial/__version__.py tests/*.err
+ rm -f $(addprefix mercurial/,$(notdir $(wildcard mercurial/pure/*.py)))
+ rm -f MANIFEST MANIFEST.in tests/*.err
rm -rf build mercurial/locale
$(MAKE) -C doc clean
@@ -91,10 +91,8 @@ update-pot: i18n/hg.pot
i18n/hg.pot: $(PYFILES) $(DOCFILES)
$(PYTHON) i18n/hggettext mercurial/commands.py \
- hgext/*.py hgext/*/__init__.py \
- mercurial/fileset.py mercurial/revset.py \
+ hgext/*.py hgext/*/__init__.py mercurial/fileset.py mercurial/revset.py \
mercurial/templatefilters.py mercurial/templatekw.py \
- mercurial/filemerge.py \
$(DOCFILES) > i18n/hg.pot
# All strings marked for translation in Mercurial contain
# ASCII characters only. But some files contain string
diff --git a/PKG-INFO b/PKG-INFO
index 1f6bd8e..3f9c964 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: mercurial
-Version: 2.3
+Version: 1.9.3
Summary: Scalable distributed SCM
Home-page: http://mercurial.selenic.com/
Author: Matt Mackall
diff --git a/README b/README
index 3f22324..a2fcf6b 100644
--- a/README
+++ b/README
@@ -11,10 +11,5 @@ Basic install:
$ hg debuginstall # sanity-check setup
$ hg # see help
-Running without installing:
-
- $ make local # build for inplace usage
- $ ./hg --version # should show the latest version
-
See http://mercurial.selenic.com/ for detailed installation
instructions, platform-specific notes, and Mercurial user information.
diff --git a/contrib/bash_completion b/contrib/bash_completion
index dfd149d..239da74 100644
--- a/contrib/bash_completion
+++ b/contrib/bash_completion
@@ -84,7 +84,6 @@ _hg_status()
{
local files="$(_hg_cmd status -n$1 .)"
local IFS=$'\n'
- compopt -o filenames 2>/dev/null
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$files' -- "$cur"))
}
diff --git a/contrib/check-code.py b/contrib/check-code.py
index b8f714c..464659e 100755
--- a/contrib/check-code.py
+++ b/contrib/check-code.py
@@ -13,7 +13,7 @@ import optparse
def repquote(m):
t = re.sub(r"\w", "x", m.group('text'))
- t = re.sub(r"[^\s\nx]", "o", t)
+ t = re.sub(r"[^\sx]", "o", t)
return m.group('quote') + t + m.group('quote')
def reppython(m):
@@ -43,44 +43,35 @@ def rephere(m):
testpats = [
[
- (r'pushd|popd', "don't use 'pushd' or 'popd', use 'cd'"),
- (r'\W\$?\(\([^\)\n]*\)\)', "don't use (()) or $(()), use 'expr'"),
+ (r'(pushd|popd)', "don't use 'pushd' or 'popd', use 'cd'"),
+ (r'\W\$?\(\([^\)]*\)\)', "don't use (()) or $(()), use 'expr'"),
+ (r'^function', "don't use 'function', use old style"),
(r'grep.*-q', "don't use 'grep -q', redirect to /dev/null"),
- (r'sed.*-i', "don't use 'sed -i', use a temporary file"),
- (r'\becho\b.*\\n', "don't use 'echo \\n', use printf"),
+ (r'echo.*\\n', "don't use 'echo \\n', use printf"),
(r'echo -n', "don't use 'echo -n', use printf"),
- (r'(^| )wc[^|]*$\n(?!.*\(re\))', "filter wc output"),
+ (r'^diff.*-\w*N', "don't use 'diff -N'"),
+ (r'(^| )wc[^|]*$', "filter wc output"),
(r'head -c', "don't use 'head -c', use 'dd'"),
- (r'sha1sum', "don't use sha1sum, use $TESTDIR/md5sum.py"),
(r'ls.*-\w*R', "don't use 'ls -R', use 'find'"),
- (r'printf.*\\([1-9]|0\d)', "don't use 'printf \NNN', use Python"),
+ (r'printf.*\\\d\d\d', "don't use 'printf \NNN', use Python"),
(r'printf.*\\x', "don't use printf \\x, use Python"),
(r'\$\(.*\)', "don't use $(expr), use `expr`"),
(r'rm -rf \*', "don't use naked rm -rf, target a directory"),
(r'(^|\|\s*)grep (-\w\s+)*[^|]*[(|]\w',
"use egrep for extended grep syntax"),
(r'/bin/', "don't use explicit paths for tools"),
+ (r'\$PWD', "don't use $PWD, use `pwd`"),
(r'[^\n]\Z', "no trailing newline"),
(r'export.*=', "don't export and assign at once"),
+ ('^([^"\']|("[^"]*")|(\'[^\']*\'))*\\^', "^ must be quoted"),
(r'^source\b', "don't use 'source', use '.'"),
(r'touch -d', "don't use 'touch -d', use 'touch -t' instead"),
- (r'ls +[^|\n-]+ +-', "options to 'ls' must come before filenames"),
- (r'[^>\n]>\s*\$HGRCPATH', "don't overwrite $HGRCPATH, append to it"),
- (r'^stop\(\)', "don't use 'stop' as a shell function name"),
- (r'(\[|\btest\b).*-e ', "don't use 'test -e', use 'test -f'"),
- (r'^alias\b.*=', "don't use alias, use a function"),
- (r'if\s*!', "don't use '!' to negate exit status"),
- (r'/dev/u?random', "don't use entropy, use /dev/zero"),
- (r'do\s*true;\s*done', "don't use true as loop body, use sleep 0"),
- (r'^( *)\t', "don't use tabs to indent"),
+ (r'ls\s+[^|-]+\s+-', "options to 'ls' must come before filenames"),
+ (r'[^>]>\s*\$HGRCPATH', "don't overwrite $HGRCPATH, append to it"),
+ (r'stop\(\)', "don't use 'stop' as a shell function name"),
],
# warnings
- [
- (r'^function', "don't use 'function', use old style"),
- (r'^diff.*-\w*N', "don't use 'diff -N'"),
- (r'\$PWD', "don't use $PWD, use `pwd`"),
- (r'^([^"\'\n]|("[^"\n]*")|(\'[^\'\n]*\'))*\^', "^ must be quoted"),
- ]
+ []
]
testfilters = [
@@ -89,19 +80,17 @@ testfilters = [
]
uprefix = r"^ \$ "
+uprefixc = r"^ > "
utestpats = [
[
- (r'^(\S| $ ).*(\S[ \t]+|^[ \t]+)\n', "trailing whitespace on non-output"),
- (uprefix + r'.*\|\s*sed[^|>\n]*\n',
- "use regex test output patterns instead of sed"),
+ (r'^(\S| $ ).*(\S\s+|^\s+)\n', "trailing whitespace on non-output"),
+ (uprefix + r'.*\|\s*sed', "use regex test output patterns instead of sed"),
(uprefix + r'(true|exit 0)', "explicit zero exit unnecessary"),
- (uprefix + r'.*(?<!\[)\$\?', "explicit exit code checks unnecessary"),
+ (uprefix + r'.*\$\?', "explicit exit code checks unnecessary"),
(uprefix + r'.*\|\| echo.*(fail|error)',
"explicit exit code checks unnecessary"),
(uprefix + r'set -e', "don't use set -e"),
- (uprefix + r'\s', "don't indent commands, use > for continued lines"),
- (r'^ saved backup bundle to \$TESTTMP.*\.hg$',
- "use (glob) to match Windows paths too"),
+ (uprefixc + r'( *)\t', "don't use tabs to indent"),
],
# warnings
[]
@@ -109,10 +98,10 @@ utestpats = [
for i in [0, 1]:
for p, m in testpats[i]:
- if p.startswith(r'^'):
- p = r"^ [$>] (%s)" % p[1:]
+ if p.startswith('^'):
+ p = uprefix + p[1:]
else:
- p = r"^ [$>] .*(%s)" % p
+ p = uprefix + p
utestpats[i].append((p, m))
utestfilters = [
@@ -130,25 +119,18 @@ pypats = [
(r'\.has_key\b', "dict.has_key is not available in Python 3+"),
(r'^\s*\t', "don't use tabs"),
(r'\S;\s*\n', "semicolon"),
- (r'[^_]_\("[^"]+"\s*%', "don't use % inside _()"),
- (r"[^_]_\('[^']+'\s*%", "don't use % inside _()"),
(r'\w,\w', "missing whitespace after ,"),
(r'\w[+/*\-<>]\w', "missing whitespace in expression"),
- (r'^\s+\w+=\w+[^,)\n]$', "missing whitespace in assignment"),
- (r'(\s+)try:\n((?:\n|\1\s.*\n)+?)\1except.*?:\n'
- r'((?:\n|\1\s.*\n)+?)\1finally:', 'no try/except/finally in Py2.4'),
- (r'.{81}', "line too long"),
- (r' x+[xo][\'"]\n\s+[\'"]x', 'string join across lines with no space'),
+ (r'^\s+\w+=\w+[^,)]$', "missing whitespace in assignment"),
+ (r'.{85}', "line too long"),
(r'[^\n]\Z', "no trailing newline"),
- (r'(\S[ \t]+|^[ \t]+)\n', "trailing whitespace"),
-# (r'^\s+[^_ \n][^_. \n]+_[^_\n]+\s*=',
-# "don't use underbars in identifiers"),
- (r'^\s+(self\.)?[A-za-z][a-z0-9]+[A-Z]\w* = ',
- "don't use camelcase in identifiers"),
- (r'^\s*(if|while|def|class|except|try)\s[^[\n]*:\s*[^\\n]#\s]+',
+ (r'(\S\s+|^\s+)\n', "trailing whitespace"),
+# (r'^\s+[^_ ][^_. ]+_[^_]+\s*=', "don't use underbars in identifiers"),
+# (r'\w*[a-z][A-Z]\w*\s*=', "don't use camelcase in identifiers"),
+ (r'^\s*(if|while|def|class|except|try)\s[^[]*:\s*[^\]#\s]+',
"linebreak after :"),
- (r'class\s[^( \n]+:', "old-style class, use class foo(object)"),
- (r'class\s[^( \n]+\(\):',
+ (r'class\s[^( ]+:', "old-style class, use class foo(object)"),
+ (r'class\s[^( ]+\(\):',
"class foo() not available in Python 2.4, use class foo(object)"),
(r'\b(%s)\(' % '|'.join(keyword.kwlist),
"Python keyword is not a function"),
@@ -166,19 +148,19 @@ pypats = [
(r'(?<!def)\s+(any|all|format)\(',
"any/all/format not available in Python 2.4"),
(r'(?<!def)\s+(callable)\(',
- "callable not available in Python 3, use getattr(f, '__call__', None)"),
+ "callable not available in Python 3, use hasattr(f, '__call__')"),
(r'if\s.*\selse', "if ... else form not available in Python 2.4"),
(r'^\s*(%s)\s\s' % '|'.join(keyword.kwlist),
"gratuitous whitespace after Python keyword"),
- (r'([\(\[][ \t]\S)|(\S[ \t][\)\]])', "gratuitous whitespace in () or []"),
+ (r'([\(\[]\s\S)|(\S\s[\)\]])', "gratuitous whitespace in () or []"),
# (r'\s\s=', "gratuitous whitespace before ="),
- (r'[^>< ](\+=|-=|!=|<>|<=|>=|<<=|>>=|%=)\S',
+ (r'[^>< ](\+=|-=|!=|<>|<=|>=|<<=|>>=)\S',
"missing whitespace around operator"),
- (r'[^>< ](\+=|-=|!=|<>|<=|>=|<<=|>>=|%=)\s',
+ (r'[^>< ](\+=|-=|!=|<>|<=|>=|<<=|>>=)\s',
"missing whitespace around operator"),
- (r'\s(\+=|-=|!=|<>|<=|>=|<<=|>>=|%=)\S',
+ (r'\s(\+=|-=|!=|<>|<=|>=|<<=|>>=)\S',
"missing whitespace around operator"),
- (r'[^^+=*/!<>&| %-](\s=|=\s)[^= ]',
+ (r'[^+=*/!<>&| -](\s=|=\s)[^= ]',
"wrong whitespace around ="),
(r'raise Exception', "don't raise generic exceptions"),
(r' is\s+(not\s+)?["\'0-9-]', "object comparison with literal"),
@@ -186,12 +168,8 @@ pypats = [
"comparison with singleton, use 'is' or 'is not' instead"),
(r'^\s*(while|if) [01]:',
"use True/False for constant Boolean expression"),
- (r'(?:(?<!def)\s+|\()hasattr',
- 'hasattr(foo, bar) is broken, use util.safehasattr(foo, bar) instead'),
(r'opener\([^)]*\).read\(',
"use opener.read() instead"),
- (r'BaseException', 'not in Py2.4, use Exception'),
- (r'os\.path\.relpath', 'os.path.relpath is not in Py2.5'),
(r'opener\([^)]*\).write\(',
"use opener.write() instead"),
(r'[\s\(](open|file)\([^)]*\)\.read\(',
@@ -204,12 +182,11 @@ pypats = [
"always assign an opened file to a variable, and close it afterwards"),
(r'(?i)descendent', "the proper spelling is descendAnt"),
(r'\.debug\(\_', "don't mark debug messages for translation"),
- (r'\.strip\(\)\.split\(\)', "no need to strip before splitting"),
- (r'^\s*except\s*:', "warning: naked except clause", r'#.*re-raises'),
- (r':\n( )*( ){1,3}[^ ]', "must indent 4 spaces"),
],
# warnings
[
+ (r'.{81}', "warning: line over 80 characters"),
+ (r'^\s*except:$', "warning: naked except clause"),
(r'ui\.(status|progress|write|note|warn)\([\'\"]x',
"warning: unwrapped ui message"),
]
@@ -227,14 +204,14 @@ cpats = [
(r'//', "don't use //-style comments"),
(r'^ ', "don't use spaces to indent"),
(r'\S\t', "don't use tabs except for indent"),
- (r'(\S[ \t]+|^[ \t]+)\n', "trailing whitespace"),
- (r'.{81}', "line too long"),
+ (r'(\S\s+|^\s+)\n', "trailing whitespace"),
+ (r'.{85}', "line too long"),
(r'(while|if|do|for)\(', "use space after while/if/do/for"),
(r'return\(', "return is not a function"),
(r' ;', "no space before ;"),
(r'\w+\* \w+', "use int *foo, not int* foo"),
(r'\([^\)]+\) \w+', "use (int)foo, not (int) foo"),
- (r'\w+ (\+\+|--)', "use foo++, not foo ++"),
+ (r'\S+ (\+\+|--)', "use foo++, not foo ++"),
(r'\w,\w', "missing whitespace after ,"),
(r'^[^#]\w[+/*]\w', "missing whitespace in expression"),
(r'^#\s+\w', "use #foo, not # foo"),
@@ -315,14 +292,14 @@ def getblame(f):
return lines
def checkfile(f, logfunc=_defaultlogger.log, maxerr=None, warnings=False,
- blame=False, debug=False, lineno=True):
+ blame=False, debug=False):
"""checks style and portability of a given file
:f: filepath
:logfunc: function used to report error
logfunc(filename, linenumber, linecontent, errormessage)
:maxerr: number of error to display before arborting.
- Set to false (default) to report all errors
+ Set to None (default) to report all errors
return True if no error is found, False otherwise.
"""
@@ -352,71 +329,32 @@ def checkfile(f, logfunc=_defaultlogger.log, maxerr=None, warnings=False,
else:
pats = pats[0]
# print post # uncomment to show filtered version
-
+ z = enumerate(zip(pre.splitlines(), post.splitlines(True)))
if debug:
print "Checking %s for %s" % (name, f)
-
- prelines = None
- errors = []
- for pat in pats:
- if len(pat) == 3:
- p, msg, ignore = pat
- else:
- p, msg = pat
- ignore = None
-
- # fix-up regexes for multiline searches
- po = p
- # \s doesn't match \n
- p = re.sub(r'(?<!\\)\\s', r'[ \\t]', p)
- # [^...] doesn't match newline
- p = re.sub(r'(?<!\\)\[\^', r'[^\\n', p)
-
- #print po, '=>', p
-
- pos = 0
- n = 0
- for m in re.finditer(p, post, re.MULTILINE):
- if prelines is None:
- prelines = pre.splitlines()
- postlines = post.splitlines(True)
-
- start = m.start()
- while n < len(postlines):
- step = len(postlines[n])
- if pos + step > start:
- break
- pos += step
- n += 1
- l = prelines[n]
-
- if "check-code" + "-ignore" in l:
- if debug:
- print "Skipping %s for %s:%s (check-code -ignore)" % (
- name, f, n)
- continue
- elif ignore and re.search(ignore, l, re.MULTILINE):
- continue
- bd = ""
- if blame:
- bd = 'working directory'
- if not blamecache:
- blamecache = getblame(f)
- if n < len(blamecache):
- bl, bu, br = blamecache[n]
- if bl == l:
- bd = '%s@%s' % (bu, br)
- errors.append((f, lineno and n + 1, l, msg, bd))
- result = False
-
- errors.sort()
- for e in errors:
- logfunc(*e)
- fc += 1
- if maxerr and fc >= maxerr:
+ for n, l in z:
+ if "check-code" + "-ignore" in l[0]:
+ if debug:
+ print "Skipping %s for %s:%s (check-code -ignore)" % (
+ name, f, n)
+ continue
+ for p, msg in pats:
+ if re.search(p, l[1]):
+ bd = ""
+ if blame:
+ bd = 'working directory'
+ if not blamecache:
+ blamecache = getblame(f)
+ if n < len(blamecache):
+ bl, bu, br = blamecache[n]
+ if bl == l[0]:
+ bd = '%s@%s' % (bu, br)
+ logfunc(f, n + 1, l[0], msg, bd)
+ fc += 1
+ result = False
+ if maxerr is not None and fc >= maxerr:
print " (too many errors, giving up)"
break
-
return result
if __name__ == "__main__":
@@ -429,11 +367,8 @@ if __name__ == "__main__":
help="use annotate to generate blame info")
parser.add_option("", "--debug", action="store_true",
help="show debug information")
- parser.add_option("", "--nolineno", action="store_false",
- dest='lineno', help="don't show line numbers")
- parser.set_defaults(per_file=15, warnings=False, blame=False, debug=False,
- lineno=True)
+ parser.set_defaults(per_file=15, warnings=False, blame=False, debug=False)
(options, args) = parser.parse_args()
if len(args) == 0:
@@ -441,10 +376,9 @@ if __name__ == "__main__":
else:
check = args
- ret = 0
for f in check:
+ ret = 0
if not checkfile(f, maxerr=options.per_file, warnings=options.warnings,
- blame=options.blame, debug=options.debug,
- lineno=options.lineno):
+ blame=options.blame, debug=options.debug):
ret = 1
sys.exit(ret)
diff --git a/contrib/debugcmdserver.py b/contrib/debugcmdserver.py
deleted file mode 100755
index 859ee9a..0000000
--- a/contrib/debugcmdserver.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python
-#
-# Dumps output generated by Mercurial's command server in a formatted style to a
-# given file or stderr if '-' is specified. Output is also written in its raw
-# format to stdout.
-#
-# $ ./hg serve --cmds pipe | ./contrib/debugcmdserver.py -
-# o, 52 -> 'capabilities: getencoding runcommand\nencoding: UTF-8'
-
-import sys, struct
-
-if len(sys.argv) != 2:
- print 'usage: debugcmdserver.py FILE'
- sys.exit(1)
-
-outputfmt = '>cI'
-outputfmtsize = struct.calcsize(outputfmt)
-
-if sys.argv[1] == '-':
- log = sys.stderr
-else:
- log = open(sys.argv[1], 'a')
-
-def read(size):
- data = sys.stdin.read(size)
- if not data:
- raise EOFError
- sys.stdout.write(data)
- sys.stdout.flush()
- return data
-
-try:
- while True:
- header = read(outputfmtsize)
- channel, length = struct.unpack(outputfmt, header)
- log.write('%s, %-4d' % (channel, length))
- if channel in 'IL':
- log.write(' -> waiting for input\n')
- else:
- data = read(length)
- log.write(' -> %r\n' % data)
- log.flush()
-except EOFError:
- pass
-finally:
- if log != sys.stderr:
- log.close()
diff --git a/contrib/hg-ssh b/contrib/hg-ssh
index 5021958..abf7a7d 100755
--- a/contrib/hg-ssh
+++ b/contrib/hg-ssh
@@ -24,9 +24,6 @@ command="cd path/to/my/repositories && hg-ssh repo1 subdir/repo2"
You can use pattern matching of your normal shell, e.g.:
command="cd repos && hg-ssh user/thomas/* projects/{mercurial,foo}"
-
-You can also add a --read-only flag to allow read-only access to a key, e.g.:
-command="hg-ssh --read-only repos/*"
"""
# enable importing on demand to reduce startup time
@@ -34,53 +31,22 @@ from mercurial import demandimport; demandimport.enable()
from mercurial import dispatch
-import sys, os, shlex
+import sys, os
-def main():
- cwd = os.getcwd()
- readonly = False
- args = sys.argv[1:]
- while len(args):
- if args[0] == '--read-only':
- readonly = True
- args.pop(0)
- else:
- break
- allowed_paths = [os.path.normpath(os.path.join(cwd,
- os.path.expanduser(path)))
- for path in args]
- orig_cmd = os.getenv('SSH_ORIGINAL_COMMAND', '?')
- try:
- cmdargv = shlex.split(orig_cmd)
- except ValueError, e:
- sys.stderr.write('Illegal command "%s": %s\n' % (orig_cmd, e))
- sys.exit(255)
+cwd = os.getcwd()
+allowed_paths = [os.path.normpath(os.path.join(cwd, os.path.expanduser(path)))
+ for path in sys.argv[1:]]
+orig_cmd = os.getenv('SSH_ORIGINAL_COMMAND', '?')
- if cmdargv[:2] == ['hg', '-R'] and cmdargv[3:] == ['serve', '--stdio']:
- path = cmdargv[2]
- repo = os.path.normpath(os.path.join(cwd, os.path.expanduser(path)))
- if repo in allowed_paths:
- cmd = ['-R', repo, 'serve', '--stdio']
- if readonly:
- cmd += [
- '--config',
- 'hooks.prechangegroup.hg-ssh=python:__main__.rejectpush',
- '--config',
- 'hooks.prepushkey.hg-ssh=python:__main__.rejectpush'
- ]
- dispatch.dispatch(dispatch.request(cmd))
- else:
- sys.stderr.write('Illegal repository "%s"\n' % repo)
- sys.exit(255)
+if orig_cmd.startswith('hg -R ') and orig_cmd.endswith(' serve --stdio'):
+ path = orig_cmd[6:-14]
+ repo = os.path.normpath(os.path.join(cwd, os.path.expanduser(path)))
+ if repo in allowed_paths:
+ dispatch.dispatch(dispatch.request(['-R', repo, 'serve', '--stdio']))
else:
- sys.stderr.write('Illegal command "%s"\n' % orig_cmd)
- sys.exit(255)
-
-def rejectpush(ui, **kwargs):
- ui.warn("Permission denied\n")
- # mercurial hooks use unix process conventions for hook return values
- # so a truthy return means failure
- return True
+ sys.stderr.write("Illegal repository %r\n" % repo)
+ sys.exit(-1)
+else:
+ sys.stderr.write("Illegal command %r\n" % orig_cmd)
+ sys.exit(-1)
-if __name__ == '__main__':
- main()
diff --git a/contrib/hgfixes/fix_bytes.py b/contrib/hgfixes/fix_bytes.py
index 0890c21..ddd22b2 100644
--- a/contrib/hgfixes/fix_bytes.py
+++ b/contrib/hgfixes/fix_bytes.py
@@ -74,7 +74,7 @@ def shouldtransform(node):
'setattr' in sggparent or \
'encode' in sggparent or \
'decode' in sggparent:
- return False
+ return False
return True
diff --git a/contrib/hgweb.fcgi b/contrib/hgweb.fcgi
index dc62e71..39ea438 100755
--- a/contrib/hgweb.fcgi
+++ b/contrib/hgweb.fcgi
@@ -5,8 +5,7 @@
# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/path/to/repo/or/config"
-# Uncomment and adjust if Mercurial is not installed system-wide
-# (consult "installed modules" path from 'hg debuginstall'):
+# Uncomment and adjust if Mercurial is not installed system-wide:
#import sys; sys.path.insert(0, "/path/to/python/lib")
# Uncomment to send python tracebacks to the browser if an error occurs:
diff --git a/contrib/hgweb.wsgi b/contrib/hgweb.wsgi
index c2baf84..8323628 100644
--- a/contrib/hgweb.wsgi
+++ b/contrib/hgweb.wsgi
@@ -4,8 +4,7 @@
# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/path/to/repo/or/config"
-# Uncomment and adjust if Mercurial is not installed system-wide
-# (consult "installed modules" path from 'hg debuginstall'):
+# Uncomment and adjust if Mercurial is not installed system-wide:
#import sys; sys.path.insert(0, "/path/to/python/lib")
# Uncomment to send python tracebacks to the browser if an error occurs:
diff --git a/contrib/mercurial.el b/contrib/mercurial.el
index c3ad538..df1623f 100644
--- a/contrib/mercurial.el
+++ b/contrib/mercurial.el
@@ -15,7 +15,8 @@
;; You should have received a copy of the GNU General Public License
;; along with mercurial.el, GNU Emacs, or XEmacs; see the file COPYING
-;; (`C-h C-l'). If not, see <http://www.gnu.org/licenses/>.
+;; (`C-h C-l'). If not, write to the Free Software Foundation, Inc.,
+;; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
;;; Commentary:
diff --git a/contrib/mq.el b/contrib/mq.el
index dbc9165..ef585aa 100644
--- a/contrib/mq.el
+++ b/contrib/mq.el
@@ -15,7 +15,8 @@
;; You should have received a copy of the GNU General Public License
;; along with mq.el, GNU Emacs, or XEmacs; see the file COPYING (`C-h
-;; C-l'). If not, see <http://www.gnu.org/licenses/>.
+;; C-l'). If not, write to the Free Software Foundation, Inc., 59
+;; Temple Place - Suite 330, Boston, MA 02111-1307, USA.
(eval-when-compile (require 'cl))
(require 'mercurial)
diff --git a/contrib/perf.py b/contrib/perf.py
index 574e899..3b70601 100644
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -1,7 +1,7 @@
# perf.py - performance test routines
'''helper extension to measure performance'''
-from mercurial import cmdutil, scmutil, util, match, commands
+from mercurial import cmdutil, scmutil, match, commands
import time, os, sys
def timer(func, title=None):
@@ -33,34 +33,20 @@ def perfwalk(ui, repo, *pats):
try:
m = scmutil.match(repo[None], pats, {})
timer(lambda: len(list(repo.dirstate.walk(m, [], True, False))))
- except Exception:
+ except:
try:
m = scmutil.match(repo[None], pats, {})
timer(lambda: len([b for a, b, c in repo.dirstate.statwalk([], m)]))
- except Exception:
+ except:
timer(lambda: len(list(cmdutil.walk(repo, pats, {}))))
def perfstatus(ui, repo, *pats):
#m = match.always(repo.root, repo.getcwd())
- #timer(lambda: sum(map(len, repo.dirstate.status(m, [], False, False,
- # False))))
+ #timer(lambda: sum(map(len, repo.dirstate.status(m, [], False, False, False))))
timer(lambda: sum(map(len, repo.status())))
-def clearcaches(cl):
- # behave somewhat consistently across internal API changes
- if util.safehasattr(cl, 'clearcaches'):
- cl.clearcaches()
- elif util.safehasattr(cl, '_nodecache'):
- from mercurial.node import nullid, nullrev
- cl._nodecache = {nullid: nullrev}
- cl._nodepos = None
-
def perfheads(ui, repo):
- cl = repo.changelog
- def d():
- len(cl.headrevs())
- clearcaches(cl)
- timer(d)
+ timer(lambda: len(repo.changelog.heads()))
def perftags(ui, repo):
import mercurial.changelog, mercurial.manifest
@@ -71,13 +57,6 @@ def perftags(ui, repo):
return len(repo.tags())
timer(t)
-def perfancestors(ui, repo):
- heads = repo.changelog.headrevs()
- def d():
- for a in repo.changelog.ancestors(heads):
- pass
- timer(d)
-
def perfdirstate(ui, repo):
"a" in repo.dirstate
def d():
@@ -92,14 +71,6 @@ def perfdirstatedirs(ui, repo):
del repo.dirstate._dirs
timer(d)
-def perfdirstatewrite(ui, repo):
- ds = repo.dirstate
- "a" in ds
- def d():
- ds._dirty = True
- ds.write()
- timer(d)
-
def perfmanifest(ui, repo):
def d():
t = repo.manifest.tip()
@@ -108,20 +79,13 @@ def perfmanifest(ui, repo):
repo.manifest._cache = None
timer(d)
-def perfchangeset(ui, repo, rev):
- n = repo[rev].node()
- def d():
- c = repo.changelog.read(n)
- #repo.changelog._cache = None
- timer(d)
-
def perfindex(ui, repo):
import mercurial.revlog
mercurial.revlog._prereadsize = 2**24 # disable lazy parser in old hg
n = repo["tip"].node()
def d():
- cl = mercurial.revlog.revlog(repo.sopener, "00changelog.i")
- cl.rev(n)
+ repo.invalidate()
+ repo[n]
timer(d)
def perfstartup(ui, repo):
@@ -140,29 +104,6 @@ def perfparents(ui, repo):
def perflookup(ui, repo, rev):
timer(lambda: len(repo.lookup(rev)))
-def perfrevrange(ui, repo, *specs):
- revrange = scmutil.revrange
- timer(lambda: len(revrange(repo, specs)))
-
-def perfnodelookup(ui, repo, rev):
- import mercurial.revlog
- mercurial.revlog._prereadsize = 2**24 # disable lazy parser in old hg
- n = repo[rev].node()
- def d():
- cl = mercurial.revlog.revlog(repo.sopener, "00changelog.i")
- cl.rev(n)
- timer(d)
-
-def perfnodelookup(ui, repo, rev):
- import mercurial.revlog
- mercurial.revlog._prereadsize = 2**24 # disable lazy parser in old hg
- n = repo[rev].node()
- cl = mercurial.revlog.revlog(repo.sopener, "00changelog.i")
- def d():
- cl.rev(n)
- clearcaches(cl)
- timer(d)
-
def perflog(ui, repo, **opts):
ui.pushbuffer()
timer(lambda: commands.log(ui, repo, rev=[], date='', user='',
@@ -176,25 +117,6 @@ def perftemplating(ui, repo):
' {author|person}: {desc|firstline}\n'))
ui.popbuffer()
-def perfcca(ui, repo):
- timer(lambda: scmutil.casecollisionauditor(ui, False, repo.dirstate))
-
-def perffncacheload(ui, repo):
- from mercurial import scmutil, store
- s = store.store(set(['store','fncache']), repo.path, scmutil.opener)
- def d():
- s.fncache._load()
- timer(d)
-
-def perffncachewrite(ui, repo):
- from mercurial import scmutil, store
- s = store.store(set(['store','fncache']), repo.path, scmutil.opener)
- s.fncache._load()
- def d():
- s.fncache._dirty = True
- s.fncache.write()
- timer(d)
-
def perfdiffwd(ui, repo):
"""Profile diff of working directory changes"""
options = {
@@ -223,25 +145,17 @@ def perfrevlog(ui, repo, file_, **opts):
timer(d)
cmdtable = {
- 'perfcca': (perfcca, []),
- 'perffncacheload': (perffncacheload, []),
- 'perffncachewrite': (perffncachewrite, []),
'perflookup': (perflookup, []),
- 'perfrevrange': (perfrevrange, []),
- 'perfnodelookup': (perfnodelookup, []),
'perfparents': (perfparents, []),
'perfstartup': (perfstartup, []),
'perfstatus': (perfstatus, []),
'perfwalk': (perfwalk, []),
'perfmanifest': (perfmanifest, []),
- 'perfchangeset': (perfchangeset, []),
'perfindex': (perfindex, []),
'perfheads': (perfheads, []),
'perftags': (perftags, []),
- 'perfancestors': (perfancestors, []),
'perfdirstate': (perfdirstate, []),
'perfdirstatedirs': (perfdirstate, []),
- 'perfdirstatewrite': (perfdirstatewrite, []),
'perflog': (perflog,
[('', 'rename', False, 'ask log to follow renames')]),
'perftemplating': (perftemplating, []),
diff --git a/contrib/plan9/9diff b/contrib/plan9/9diff
deleted file mode 100755
index 02af2a9..0000000
--- a/contrib/plan9/9diff
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/rc
-# 9diff - Mercurial extdiff wrapper for diff(1)
-
-rfork e
-
-fn getfiles {
- cd $1 &&
- for(f in `{du -as | awk '{print $2}'})
- test -f $f && echo `{cleanname $f}
-}
-
-fn usage {
- echo >[1=2] usage: 9diff [diff options] parent child root
- exit usage
-}
-
-opts=()
-while(~ $1 -*){
- opts=($opts $1)
- shift
-}
-if(! ~ $#* 3)
- usage
-
-# extdiff will set the parent and child to a single file if there is
-# only one change. If there are multiple changes, directories will be
-# set. diff(1) does not cope particularly with directories; instead we
-# do the recursion ourselves and diff each file individually.
-if(test -f $1)
- diff $opts $1 $2
-if not{
- # extdiff will create a snapshot of the working copy to prevent
- # conflicts during the diff. We circumvent this behavior by
- # diffing against the repository root to produce plumbable
- # output. This is antisocial.
- for(f in `{sort -u <{getfiles $1} <{getfiles $2}}){
- file1=$1/$f; test -f $file1 || file1=/dev/null
- file2=$3/$f; test -f $file2 || file2=/dev/null
- diff $opts $file1 $file2
- }
-}
-exit ''
diff --git a/contrib/plan9/README b/contrib/plan9/README
deleted file mode 100644
index 6adbf53..0000000
--- a/contrib/plan9/README
+++ /dev/null
@@ -1,39 +0,0 @@
-Mercurial for Plan 9 from Bell Labs
-===================================
-
-This directory contains support for Mercurial on Plan 9 from Bell Labs
-platforms. It is assumed that the version of Python running on these
-systems supports the ANSI/POSIX Environment (APE). At the time of this
-writing, the bichued/python port is the most commonly installed version
-of Python on these platforms. If a native port of Python is ever made,
-some minor modification will need to be made to support some of the more
-esoteric requirements of the platform rather than those currently made
-(cf. posix.py).
-
-By default, installations will have the factotum extension enabled; this
-extension permits factotum(4) to act as an authentication agent for
-HTTP repositories. Additionally, an extdiff command named 9diff is
-enabled which generates diff(1) compatible output suitable for use with
-the plumber(4).
-
-Commit messages are plumbed using E if no editor is defined; users must
-update the plumbed file to continue, otherwise the hg process must be
-interrupted.
-
-Some work remains with regard to documentation. Section 5 manual page
-references for hgignore and hgrc need to be re-numbered to section 6 (file
-formats) and a new man page writer should be written to support the
-Plan 9 man macro set. Until these issues can be resolved, manual pages
-are elided from the installation.
-
-Basic install:
-
- % mk install # do a system-wide install
- % hg debuginstall # sanity-check setup
- % hg # see help
-
-A proto(2) file is included in this directory as an example of how a
-binary distribution could be packaged, ostensibly with contrib(1).
-
-See http://mercurial.selenic.com/ for detailed installation
-instructions, platform-specific notes, and Mercurial user information.
diff --git a/contrib/plan9/hgrc.d/9diff.rc b/contrib/plan9/hgrc.d/9diff.rc
deleted file mode 100644
index 757e24c..0000000
--- a/contrib/plan9/hgrc.d/9diff.rc
+++ /dev/null
@@ -1,7 +0,0 @@
-# The 9diff extdiff command generates diff(1) compatible output
-# suitable for use with the plumber(4).
-[extensions]
-extdiff =
-
-[extdiff]
-9diff = 9diff -cm $parent $child $root
diff --git a/contrib/plan9/hgrc.d/factotum.rc b/contrib/plan9/hgrc.d/factotum.rc
deleted file mode 100644
index 0fa2334..0000000
--- a/contrib/plan9/hgrc.d/factotum.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-# The factotum extension permits factotum(4) to act as an
-# authentication agent for HTTP repositories.
-[extensions]
-factotum =
diff --git a/contrib/plan9/mkfile b/contrib/plan9/mkfile
deleted file mode 100644
index 6d8e8c2..0000000
--- a/contrib/plan9/mkfile
+++ /dev/null
@@ -1,37 +0,0 @@
-APE=/sys/src/ape
-<$APE/config
-
-PYTHON=python
-PYTHONBIN=/rc/bin
-SH=ape/psh
-
-PURE=--pure
-ROOT=../..
-
-# This is slightly underhanded; Plan 9 does not support GNU gettext nor
-# does it support dynamically loaded extension modules. We work around
-# this by calling build_py and build_scripts directly; this avoids
-# additional platform hacks in setup.py.
-build:VQ:
- @{
- cd $ROOT
- $SH -c '$PYTHON setup.py $PURE build_py build_scripts'
- }
-
-clean:VQ:
- @{
- cd $ROOT
- $SH -c '$PYTHON setup.py $PURE clean --all'
- }
-
-install:VQ: build
- @{
- cd $ROOT
- $SH -c '$PYTHON setup.py $PURE install \
- --install-scripts $PYTHONBIN \
- --skip-build \
- --force'
- }
- mkdir -p /lib/mercurial/hgrc.d
- dircp hgrc.d /lib/mercurial/hgrc.d/
- cp 9diff /rc/bin/
diff --git a/contrib/plan9/proto b/contrib/plan9/proto
deleted file mode 100644
index 4355209..0000000
--- a/contrib/plan9/proto
+++ /dev/null
@@ -1,24 +0,0 @@
-lib - sys sys
- mercurial - sys sys
- hgrc.d - sys sys
- 9diff.rc - sys sys
- factotum.rc - sys sys
-rc - sys sys
- bin - sys sys
- 9diff - sys sys
- hg - sys sys
-sys - sys sys
- lib - sys sys
- python - sys sys
- lib - sys sys
- python2.5 - sys sys
- site-packages - sys sys
- hgext - sys sys
- + - sys sys
- mercurial - sys sys
- + - sys sys
- mercurial-VERSION-py2.5.egg-info - sys sys
- src - sys sys
- cmd - sys sys
- hg - sys sys
- + - sys sys
diff --git a/contrib/setup3k.py b/contrib/setup3k.py
index 55cf36f..6957908 100644
--- a/contrib/setup3k.py
+++ b/contrib/setup3k.py
@@ -8,7 +8,7 @@ from distutils.command.build_py import build_py_2to3
from lib2to3.refactor import get_fixers_from_package as getfixers
import sys
-if getattr(sys, 'version_info', (0, 0, 0)) < (2, 4, 0, 'final'):
+if not hasattr(sys, 'version_info') or sys.version_info < (2, 4, 0, 'final'):
raise SystemExit("Mercurial requires Python 2.4 or later.")
if sys.version_info[0] >= 3:
@@ -26,22 +26,22 @@ else:
try:
import hashlib
sha = hashlib.sha1()
-except ImportError:
+except:
try:
import sha
- except ImportError:
+ except:
raise SystemExit(
"Couldn't import standard hashlib (incomplete Python install).")
try:
import zlib
-except ImportError:
+except:
raise SystemExit(
"Couldn't import standard zlib (incomplete Python install).")
try:
import bz2
-except ImportError:
+except:
raise SystemExit(
"Couldn't import standard bz2 (incomplete Python install).")
@@ -84,7 +84,7 @@ def hasfunction(cc, funcname):
os.dup2(devnull.fileno(), sys.stderr.fileno())
objects = cc.compile([fname], output_dir=tmpdir)
cc.link_executable(objects, os.path.join(tmpdir, "a.out"))
- except Exception:
+ except:
return False
return True
finally:
@@ -236,7 +236,7 @@ class hgbuildext(build_ext):
try:
build_ext.build_extension(self, ext)
except CCompilerError:
- if getattr(ext, 'optional', False):
+ if not hasattr(ext, 'optional') or not ext.optional:
raise
log.warn("Failed to build optional extension '%s' (skipping)",
ext.name)
diff --git a/contrib/shrink-revlog.py b/contrib/shrink-revlog.py
index 6bd006d..18c0de7 100644
--- a/contrib/shrink-revlog.py
+++ b/contrib/shrink-revlog.py
@@ -16,7 +16,7 @@ This is *not* safe to run on a changelog.
# e.g. by comparing "before" and "after" states of random changesets
# (maybe: export before, shrink, export after, diff).
-import os, errno
+import os, tempfile, errno
from mercurial import revlog, transaction, node, util, scmutil
from mercurial import changegroup
from mercurial.i18n import _
@@ -191,6 +191,7 @@ def shrink(ui, repo, **opts):
'will corrupt your repository'))
ui.write(_('shrinking %s\n') % indexfn)
+ prefix = os.path.basename(indexfn)[:-1]
tmpindexfn = util.mktempcopy(indexfn, emptyok=True)
r1 = revlog.revlog(scmutil.opener(os.getcwd(), audit=False), indexfn)
@@ -240,7 +241,7 @@ def shrink(ui, repo, **opts):
writerevs(ui, r1, r2, order, tr)
report(ui, r1, r2)
tr.close()
- except: # re-raises
+ except:
# Abort transaction first, so we truncate the files before
# deleting them.
tr.abort()
@@ -269,23 +270,19 @@ def shrink(ui, repo, **opts):
lock.release()
if not opts.get('dry_run'):
- ui.write(
- _('note: old revlog saved in:\n'
- ' %s\n'
- ' %s\n'
- '(You can delete those files when you are satisfied that your\n'
- 'repository is still sane. '
- 'Running \'hg verify\' is strongly recommended.)\n')
- % (oldindexfn, olddatafn))
+ ui.write(_('note: old revlog saved in:\n'
+ ' %s\n'
+ ' %s\n'
+ '(You can delete those files when you are satisfied that your\n'
+ 'repository is still sane. '
+ 'Running \'hg verify\' is strongly recommended.)\n')
+ % (oldindexfn, olddatafn))
cmdtable = {
'shrink': (shrink,
- [('', 'revlog', '',
- _('the revlog to shrink (.i)')),
- ('n', 'dry-run', None,
- _('do not shrink, simulate only')),
- ('', 'sort', 'reversepostorder',
- _('name of sort algorithm to use')),
+ [('', 'revlog', '', _('index (.i) file of the revlog to shrink')),
+ ('n', 'dry-run', None, _('do not shrink, simulate only')),
+ ('', 'sort', 'reversepostorder', 'name of sort algorithm to use'),
],
_('hg shrink [--revlog PATH]'))
}
diff --git a/contrib/win32/ReadMe.html b/contrib/win32/ReadMe.html
index d5d30cc..c777211 100644
--- a/contrib/win32/ReadMe.html
+++ b/contrib/win32/ReadMe.html
@@ -140,7 +140,7 @@ editor = whatever
</p>
<p>
- Mercurial is Copyright 2005-2012 Matt Mackall and others. See
+ Mercurial is Copyright 2005-2010 Matt Mackall and others. See
the <tt>Contributors.txt</tt> file for a list of contributors.
</p>
diff --git a/contrib/win32/hgwebdir_wsgi.py b/contrib/win32/hgwebdir_wsgi.py
index efa866e..b82678e 100644
--- a/contrib/win32/hgwebdir_wsgi.py
+++ b/contrib/win32/hgwebdir_wsgi.py
@@ -50,7 +50,7 @@ import sys
#sys.path.insert(0, r'c:\path\to\python\lib')
# Enable tracing. Run 'python -m win32traceutil' to debug
-if getattr(sys, 'isapidllhandle', None) is not None:
+if hasattr(sys, 'isapidllhandle'):
import win32traceutil
# To serve pages in local charset instead of UTF-8, remove the two lines below
diff --git a/contrib/win32/mercurial.ini b/contrib/win32/mercurial.ini
index b8eac56..db81645 100644
--- a/contrib/win32/mercurial.ini
+++ b/contrib/win32/mercurial.ini
@@ -36,6 +36,7 @@ editor = notepad
;
[extensions]
;acl =
+;alias =
;bugzilla =
;children =
;churn =
@@ -49,9 +50,7 @@ editor = notepad
;hgcia =
;hgk =
;highlight =
-;histedit =
;interhg =
-;largefiles =
;keyword =
;mq =
;notify =
@@ -61,9 +60,6 @@ editor = notepad
;purge =
;rebase =
;record =
-;relink =
-;schemes =
-;share =
;transplant =
;win32mbcs =
;zeroconf =
@@ -75,7 +71,7 @@ editor = notepad
;cmd.bc3diff = C:\Program Files\Beyond Compare 3\BCompare.exe
;cmd.vdiff = C:\Progra~1\TortoiseSVN\bin\TortoiseMerge.exe
;cmd.vimdiff = gvim.exe
-;opts.vimdiff = -f "+next" "+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))"
+;opts.vimdiff = -f '+next' '+execute "DirDiff ".argv(0)." ".argv(1)'
[hgk]
diff --git a/contrib/wix/COPYING.rtf b/contrib/wix/COPYING.rtf
index 3174226..3418a97 100644
--- a/contrib/wix/COPYING.rtf
+++ b/contrib/wix/COPYING.rtf
Binary files differ
diff --git a/contrib/wix/README.txt b/contrib/wix/README.txt
index 8d9ec37..0e43807 100644
--- a/contrib/wix/README.txt
+++ b/contrib/wix/README.txt
@@ -7,7 +7,7 @@ are versioned within the Mercurial source tree because the WXS files
must kept up to date with distribution changes within their branch. In
other words, the default branch WXS files are expected to diverge from
the stable branch WXS files. Storing them within the same repository is
-the only sane way to keep the source tree and the installer in sync.
+the only sane way to keep the the source tree and the installer in sync.
The MSI installer builder uses only the mercurial.ini file from the
contrib/win32 folder, the contents of which have been historically used
diff --git a/contrib/wix/guids.wxi b/contrib/wix/guids.wxi
index d4360a4..867ad27 100644
--- a/contrib/wix/guids.wxi
+++ b/contrib/wix/guids.wxi
@@ -18,13 +18,13 @@
<?define doc.style.css = {172F8262-98E0-4711-BD39-4DAE0D77EF05} ?>
<!-- help.wxs -->
- <?define helpFolder.guid = {9FA957DB-6DFE-44f2-AD03-293B2791CF17} ?>
+ <?define helpFolder.guid = {84025FAA-7EB7-4D79-A097-D2D18852D78E} ?>
<!-- i18n.wxs -->
- <?define i18nFolder.guid = {1BF8026D-CF7C-4174-AEE6-D6B7BF119248} ?>
+ <?define i18nFolder.guid = {EADFA693-A0B5-4f31-87C9-3997CFAC1B42} ?>
<!-- templates.wxs -->
- <?define templates.root.guid = {8DF97574-33E9-412F-8414-65B48BB18783} ?>
+ <?define templates.root.guid = {111509CB-4C96-4035-80BC-F66A99CD5ACB} ?>
<?define templates.atom.guid = {AB5D2908-BC95-44BE-9D79-069EF43D93E2} ?>
<?define templates.coal.guid = {B63CCAAB-4EAF-43b4-901E-4BD13F5B78FC} ?>
<?define templates.gitweb.guid = {6A33D168-F84E-45AA-912C-23CAC2D66BCA} ?>
diff --git a/contrib/wix/help.wxs b/contrib/wix/help.wxs
index 601ecdc..7dc3dd4 100644
--- a/contrib/wix/help.wxs
+++ b/contrib/wix/help.wxs
@@ -20,7 +20,6 @@
<File Name="merge-tools.txt" />
<File Name="multirevs.txt" />
<File Name="patterns.txt" />
- <File Name="phases.txt" />
<File Name="revisions.txt" />
<File Name="revsets.txt" />
<File Name="subrepos.txt" />
diff --git a/contrib/wix/i18n.wxs b/contrib/wix/i18n.wxs
index 4c97ca4..60090cd 100644
--- a/contrib/wix/i18n.wxs
+++ b/contrib/wix/i18n.wxs
@@ -5,7 +5,7 @@
<?include defines.wxi ?>
<?define hg_po_langs =
- da;de;el;fr;it;ja;pt_BR;ro;ru;sv;zh_CN;zh_TW
+ da;de;el;fr;it;ja;pt_BR;sv;zh_CN;zh_TW
?>
<Fragment>
diff --git a/contrib/wix/templates.wxs b/contrib/wix/templates.wxs
index ac2eacc..6b832a5 100644
--- a/contrib/wix/templates.wxs
+++ b/contrib/wix/templates.wxs
@@ -31,7 +31,6 @@
<File Name="map-cmdline.changelog" KeyPath="yes" />
<File Name="map-cmdline.compact" />
<File Name="map-cmdline.default" />
- <File Name="map-cmdline.bisect" />
<File Name="map-cmdline.xml" />
<File Name="template-vars.txt" />
</Component>
diff --git a/contrib/zsh_completion b/contrib/zsh_completion
index 6cbafb2..0490e16 100644
--- a/contrib/zsh_completion
+++ b/contrib/zsh_completion
@@ -165,7 +165,6 @@ _hg_revrange() {
_hg_labels() {
_hg_tags "$@"
_hg_bookmarks "$@"
- _hg_branches "$@"
}
_hg_tags() {
@@ -192,17 +191,6 @@ _hg_bookmarks() {
(( $#bookmarks )) && _describe -t bookmarks 'bookmarks' bookmarks
}
-_hg_branches() {
- typeset -a branches
- local branch
-
- _hg_cmd branches | while read branch
- do
- branches+=(${branch/ # [0-9]#:*})
- done
- (( $#branches )) && _describe -t branches 'branches' branches
-}
-
# likely merge candidates
_hg_mergerevs() {
typeset -a heads
@@ -514,7 +502,6 @@ _hg_cmd_commit() {
'(--logfile -l)'{-l+,--logfile}'[read commit message from <file>]:log file:_files -g \*.txt' \
'(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
'(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
- '--amend[amend the parent of the working dir]' \
'*:file:_hg_files'
}
@@ -553,20 +540,6 @@ _hg_cmd_export() {
'*:revision:_hg_labels'
}
-_hg_cmd_graft() {
- _arguments -s -w : $_hg_global_opts \
- '(--continue -c)'{-c,--continue}'[resume interrupted graft]' \
- '(--edit -e)'{-e,--edit}'[invoke editor on commit messages]' \
- '--log[append graft info to log message]' \
- '(--currentdate -D)'{-D,--currentdate}'[record the current date as commit date]' \
- '(--currentuser -U)'{-U,--currentuser}'[record the current user as committer]' \
- '(--date -d)'{-d,--date}'[record the specified date as commit date]' \
- '(--user -u)'{-u,--user}'[record the specified user as committer]' \
- '(--tool -t)'{-t,--tool}'[specify merge tool]' \
- '(--dry-run -n)'{-n,--dry-run}'[do not perform actions, just print output]' \
- '*:revision:_hg_labels'
-}
-
_hg_cmd_grep() {
_arguments -s -w : $_hg_global_opts $_hg_pat_opts \
'(--print0 -0)'{-0,--print0}'[end filenames with NUL]' \
@@ -605,7 +578,6 @@ _hg_cmd_import() {
'(--strip -p)'{-p+,--strip}'[directory strip option for patch (default: 1)]:count:' \
'(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \
'(--force -f)'{-f,--force}'[skip check for outstanding uncommitted changes]' \
- '--bypass[apply patch without touching the working directory]' \
'*:patch:_files'
}
@@ -645,13 +617,11 @@ _hg_cmd_log() {
'(--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_labels' \
- '(--branch -b)'{-b+,--branch}'[show changesets within the given named branch]:branch:_hg_branches' \
'*:files:_hg_files'
}
_hg_cmd_manifest() {
_arguments -s -w : $_hg_global_opts \
- '--all[list files from all revisions]' \
':revision:_hg_labels'
}
@@ -660,7 +630,6 @@ _hg_cmd_merge() {
'(--force -f)'{-f,--force}'[force a merge with outstanding changes]' \
'(--rev -r 1)'{-r,--rev}'[revision to merge]:revision:_hg_mergerevs' \
'(--preview -P)'{-P,--preview}'[review revisions to merge (no merge is performed)]' \
- '(--tool -t)'{-t,--tool}'[specify merge tool]' \
':revision:_hg_mergerevs'
}
@@ -685,16 +654,6 @@ _hg_cmd_paths() {
':path:_hg_paths'
}
-_hg_cmd_phase() {
- _arguments -s -w : $_hg_global_opts \
- '(--public -p)'{-p,--public}'[set changeset phase to public]' \
- '(--draft -d)'{-d,--draft}'[set changeset phase to draft]' \
- '(--secret -s)'{-s,--secret}'[set changeset phase to secret]' \
- '(--force -f)'{-f,--force}'[allow to move boundary backward]' \
- '(--rev -r)'{-r+,--rev}'[target revision]:revision:_hg_labels' \
- ':revision:_hg_labels'
-}
-
_hg_cmd_pull() {
_arguments -s -w : $_hg_global_opts $_hg_remote_opts \
'(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \
@@ -748,7 +707,7 @@ _hg_cmd_revert() {
_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_labels' \
- '(--no-backup -C)'{-C,--no-backup}'[do not save backup copies of files]' \
+ '--no-backup[do not save backup copies of files]' \
'*:file:->diff_files'
if [[ $state == 'diff_files' ]]
@@ -908,12 +867,6 @@ _hg_cmd_qdiff() {
'*:pattern:_hg_files'
}
-_hg_cmd_qfinish() {
- _arguments -s -w : $_hg_global_opts \
- '(--applied -a)'{-a,--applied}'[finish all applied patches]' \
- '*:patch:_hg_qapplied'
-}
-
_hg_cmd_qfold() {
_arguments -s -w : $_hg_global_opts $_h_commit_opts \
'(--keep,-k)'{-k,--keep}'[keep folded patch files]' \
@@ -977,7 +930,6 @@ _hg_cmd_qpush() {
'(--merge -m)'{-m+,--merge}'[merge from another queue]:' \
'(--name -n)'{-n+,--name}'[merge queue name]:' \
'(--force -f)'{-f,--force}'[apply if the patch has rejects]' \
- '(--exact -e)'{-e,--exact}'[apply the target patch to its recorded parent]' \
'--move[reorder patch series and apply only the patch]' \
':patch:_hg_qunapplied'
}
@@ -1030,7 +982,6 @@ _hg_cmd_email() {
_arguments -s -w : $_hg_global_opts $_hg_remote_opts \
'(--git -g)'{-g,--git}'[use git extended diff format]' \
'--plain[omit hg patch header]' \
- '--body[send patches as inline message text (default)]' \
'(--outgoing -o)'{-o,--outgoing}'[send changes not found in the target repository]' \
'(--bundle -b)'{-b,--bundle}'[send changes not in target as a binary bundle]' \
'--bundlename[name of the bundle attachment file (default: bundle)]:' \
@@ -1056,22 +1007,4 @@ _hg_cmd_email() {
':revision:_hg_revrange'
}
-# Rebase
-_hg_cmd_rebase() {
- _arguments -s -w : $_hg_global_opts \
- '*'{-r,--rev}'[rebase these revisions]:revision:_hg_revrange' \
- '(--source -s)'{-s,--source}'[rebase from the specified changeset]:revision:_hg_labels' \
- '(--base -b)'{-b,--base}'[rebase from the base of the specified changeset]:revision:_hg_labels' \
- '(--dest -d)'{-d,--dest}'[rebase onto the specified changeset]' \
- '--collapse[collapse the rebased changeset]' \
- '(--message -m)'{-m+,--message}'[use <text> as collapse commit message]:text:' \
- '(--edit -e)'{-e,--edit}'[invoke editor on commit messages]' \
- '(--logfile -l)'{-l+,--logfile}'[read collapse commit message from <file>]:log file:_files -g \*.txt' \
- '--keep[keep original changeset]' \
- '--keepbranches[keep original branch name]' \
- '(--tool -t)'{-t,--tool}'[specify merge tool]' \
- '(--continue -c)'{-c,--continue}'[continue an interrupted rebase]' \
- '(--abort -a)'{-a,--abort}'[abort an interrupted rebase]' \
-}
-
_hg "$@"
diff --git a/doc/gendoc.py b/doc/gendoc.py
index ab8e9b6..78db86a 100644
--- a/doc/gendoc.py
+++ b/doc/gendoc.py
@@ -9,7 +9,6 @@ from mercurial.commands import table, globalopts
from mercurial.i18n import _
from mercurial.help import helptable
from mercurial import extensions
-from mercurial import util
def get_desc(docstr):
if not docstr:
@@ -64,16 +63,16 @@ def get_cmd(cmd, cmdtable):
return d
def section(ui, s):
- ui.write("%s\n%s\n\n" % (s, "\"" * encoding.colwidth(s)))
+ ui.write("%s\n%s\n\n" % (s, "-" * encoding.colwidth(s)))
def subsection(ui, s):
- ui.write("%s\n%s\n\n" % (s, '=' * encoding.colwidth(s)))
+ ui.write("%s\n%s\n\n" % (s, '"' * encoding.colwidth(s)))
def subsubsection(ui, s):
- ui.write("%s\n%s\n\n" % (s, "-" * encoding.colwidth(s)))
+ ui.write("%s\n%s\n\n" % (s, "." * encoding.colwidth(s)))
def subsubsubsection(ui, s):
- ui.write("%s\n%s\n\n" % (s, "." * encoding.colwidth(s)))
+ ui.write("%s\n%s\n\n" % (s, "#" * encoding.colwidth(s)))
def show_doc(ui):
@@ -96,15 +95,15 @@ def show_doc(ui):
ui.write(".. _%s:\n" % name)
ui.write("\n")
section(ui, sec)
- if util.safehasattr(doc, '__call__'):
+ if hasattr(doc, '__call__'):
doc = doc()
ui.write(doc)
ui.write("\n")
section(ui, _("Extensions"))
- ui.write(_("This section contains help for extensions that are "
- "distributed together with Mercurial. Help for other "
- "extensions is available in the help system."))
+ ui.write(_("This section contains help for extensions that are distributed "
+ "together with Mercurial. Help for other extensions is available "
+ "in the help system."))
ui.write("\n\n"
".. contents::\n"
" :class: htmlonly\n"
diff --git a/doc/hg.1 b/doc/hg.1
index fe7865d..ed09ec4 100644
--- a/doc/hg.1
+++ b/doc/hg.1
@@ -192,15 +192,13 @@ New files are ignored if they match any of the patterns in
\fB.hgignore\fP. As with add, these changes take effect at the next
commit.
.sp
-Use the \-s/\-\-similarity option to detect renamed files. This
+Use the \-s/\-\-similarity option to detect renamed files. With a
+parameter greater than 0, this compares every removed file with
+every added file and records those similar enough as renames. This
option takes a percentage between 0 (disabled) and 100 (files must
-be identical) as its parameter. With a parameter greater than 0,
-this compares every removed file with every added file and records
-those similar enough as renames. Detecting renamed files this way
+be identical) as its parameter. Detecting renamed files this way
can be expensive. After using this option, \%\fBhg status \-C\fP\: can be
-used to check which files were identified as moved or renamed. If
-not specified, \-s/\-\-similarity defaults to 100 and only renames of
-identical files are detected.
+used to check which files were identified as moved or renamed.
.sp
Returns 0 if all files are successfully added.
.sp
@@ -287,18 +285,6 @@ list the changeset
.
show line number at the first appearance
.TP
-.B \-w, \-\-ignore\-all\-space
-.
-ignore white space when comparing lines
-.TP
-.B \-b, \-\-ignore\-space\-change
-.
-ignore changes in the amount of white space
-.TP
-.B \-B, \-\-ignore\-blank\-lines
-.
-ignore changes whose lines are all blank
-.TP
.B \-I, \-\-include
.
include names matching the given patterns
@@ -323,28 +309,6 @@ directory; use \-r/\-\-rev to specify a different revision.
The archive type is automatically detected based on file
extension (or override using \-t/\-\-type).
.sp
-Examples:
-.INDENT 0.0
-.IP \(bu 2
-.
-create a zip file containing the 1.0 release:
-.sp
-.nf
-.ft C
-hg archive \-r 1.0 project\-1.0.zip
-.ft P
-.fi
-.IP \(bu 2
-.
-create a tarball excluding .hg files:
-.sp
-.nf
-.ft C
-hg archive project.tar.gz \-X ".hg*"
-.ft P
-.fi
-.UNINDENT
-.sp
Valid types are:
.INDENT 0.0
.TP
@@ -428,21 +392,16 @@ current working directory.
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.
-.IP Note
-.
-backout cannot be used to fix either an unwanted or
-incorrect merge.
-.RE
.sp
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 new child of REV that simply undoes REV.
+maintaining a linear history. With \-\-merge, the pending changeset
+will instead have two parents: the old parent of the working
+directory and a new child of REV that simply undoes REV.
.sp
-Before version 1.7, the behavior without \-\-merge was equivalent
-to specifying \-\-merge followed by \%\fBhg update \-\-clean .\fP\: to
-cancel the merge and leave the child of REV as a head to be
-merged separately.
+Before version 1.7, the behavior without \-\-merge was equivalent to
+specifying \-\-merge followed by \%\fBhg update \-\-clean .\fP\: to cancel
+the merge and leave the child of REV as a head to be merged
+separately.
.sp
See \%\fBhg help dates\fP\: for a list of formats valid for \-d/\-\-date.
.sp
@@ -457,16 +416,16 @@ merge with old dirstate parent after backout
.TP
.B \-\-parent
.
-parent to choose when backing out merge (DEPRECATED)
-.TP
-.B \-r, \-\-rev
-.
-revision to backout
+parent to choose when backing out merge
.TP
.B \-t, \-\-tool
.
specify merge tool
.TP
+.B \-r, \-\-rev
+.
+revision to backout
+.TP
.B \-I, \-\-include
.
include names matching the given patterns
@@ -512,110 +471,10 @@ As a shortcut, you can also use the revision argument to mark a
revision as good or bad without checking it out first.
.sp
If you supply a command, it will be used for automatic bisection.
-The environment variable HG_NODE will contain the ID of the
-changeset being tested. The exit status of the command will be
-used to mark revisions as good or bad: status 0 means good, 125
-means to skip the revision, 127 (command not found) will abort the
-bisection, and any other non\-zero exit status means the revision
-is bad.
-.sp
-Some examples:
-.INDENT 0.0
-.IP \(bu 2
-.
-start a bisection with known bad revision 12, and good revision 34:
-.sp
-.nf
-.ft C
-hg bisect \-\-bad 34
-hg bisect \-\-good 12
-.ft P
-.fi
-.IP \(bu 2
-.
-advance the current bisection by marking current revision as good or
-bad:
-.sp
-.nf
-.ft C
-hg bisect \-\-good
-hg bisect \-\-bad
-.ft P
-.fi
-.IP \(bu 2
-.
-mark the current revision, or a known revision, to be skipped (eg. if
-that revision is not usable because of another issue):
-.sp
-.nf
-.ft C
-hg bisect \-\-skip
-hg bisect \-\-skip 23
-.ft P
-.fi
-.IP \(bu 2
-.
-forget the current bisection:
-.sp
-.nf
-.ft C
-hg bisect \-\-reset
-.ft P
-.fi
-.IP \(bu 2
-.
-use \(aqmake && make tests\(aq to automatically find the first broken
-revision:
-.sp
-.nf
-.ft C
-hg bisect \-\-reset
-hg bisect \-\-bad 34
-hg bisect \-\-good 12
-hg bisect \-\-command \(aqmake && make tests\(aq
-.ft P
-.fi
-.IP \(bu 2
-.
-see all changesets whose states are already known in the current
-bisection:
-.sp
-.nf
-.ft C
-hg log \-r "bisect(pruned)"
-.ft P
-.fi
-.IP \(bu 2
-.
-see the changeset currently being bisected (especially useful
-if running with \-U/\-\-noupdate):
-.sp
-.nf
-.ft C
-hg log \-r "bisect(current)"
-.ft P
-.fi
-.IP \(bu 2
-.
-see all changesets that took part in the current bisection:
-.sp
-.nf
-.ft C
-hg log \-r "bisect(range)"
-.ft P
-.fi
-.IP \(bu 2
-.
-with the graphlog extension, you can even get a nice graph:
-.sp
-.nf
-.ft C
-hg log \-\-graph \-r "bisect(range)"
-.ft P
-.fi
-.UNINDENT
-.sp
-See \%\fBhg help revsets\fP\: for more about the \fIbisect()\fP keyword.
+Its exit status will be used to mark revisions as good or bad:
+status 0 means good, 125 means to skip the revision, 127
+(command not found) will abort the bisection, and any other
+non\-zero exit status means the revision is bad.
.sp
Returns 0 on success.
.sp
@@ -658,10 +517,10 @@ hg bookmarks [\-f] [\-d] [\-i] [\-m NAME] [\-r REV] [NAME]
.ft P
.fi
.sp
-Bookmarks are pointers to certain commits that move when committing.
-Bookmarks are local. They can be renamed, copied and deleted. It is
-possible to use \%\fBhg merge NAME\fP\: to merge from a given bookmark, and
-\%\fBhg update NAME\fP\: to update to a given bookmark.
+Bookmarks are pointers to certain commits that move when
+committing. Bookmarks are local. They can be renamed, copied and
+deleted. It is possible to use bookmark names in \%\fBhg merge\fP\: and
+\%\fBhg update\fP\: to merge and update respectively to a given bookmark.
.sp
You can use \%\fBhg bookmark NAME\fP\: to set a bookmark on the working
directory\(aqs parent revision with the given name. If you specify
@@ -673,11 +532,6 @@ push\fP\: and \%\fBhg help pull\fP\:). This requires both the local and remote
repositories to support bookmarks. For versions prior to 1.8, this means
the bookmarks extension must be enabled.
.sp
-With \-i/\-\-inactive, the new bookmark will not be made the active
-bookmark. If \-r/\-\-rev is given, the new bookmark will not be made
-active even if \-i/\-\-inactive is not given. If no NAME is given, the
-current active bookmark will be marked inactive.
-.sp
Options:
.INDENT 0.0
.TP
@@ -699,7 +553,7 @@ rename a given bookmark
.TP
.B \-i, \-\-inactive
.
-mark a bookmark inactive
+do not mark a new bookmark active
.UNINDENT
.SS branch
.sp
@@ -708,12 +562,6 @@ mark a bookmark inactive
hg branch [\-fC] [NAME]
.ft P
.fi
-.IP Note
-.
-Branch names are permanent and global. Use \%\fBhg bookmark\fP\: to create a
-light\-weight bookmark instead. See \%\fBhg help glossary\fP\: for more
-information about named branches and bookmarks.
-.RE
.sp
With no argument, show the current branch name. With one argument,
set the working directory branch name (the branch will not exist
@@ -730,6 +578,12 @@ change.
.sp
Use the command \%\fBhg update\fP\: to switch to an existing branch. Use
\%\fBhg commit \-\-close\-branch\fP\: to mark this branch as closed.
+.IP Note
+.
+Branch names are permanent. Use \%\fBhg bookmark\fP\: to create a
+light\-weight bookmark instead. See \%\fBhg help glossary\fP\: for more
+information about named branches and bookmarks.
+.RE
.sp
Returns 0 on success.
.sp
@@ -914,30 +768,33 @@ basename of the source.
The location of the source is added to the new repository\(aqs
\fB.hg/hgrc\fP file, as the default to be used for future pulls.
.sp
-Only local paths and \fBssh://\fP URLs are supported as
-destinations. For \fBssh://\fP destinations, no working directory or
-\fB.hg/hgrc\fP will be created on the remote side.
+See \%\fBhg help urls\fP\: for valid source format details.
+.sp
+It is possible to specify an \fBssh://\fP URL as the destination, but no
+\fB.hg/hgrc\fP and working directory will be created on the remote side.
+Please see \%\fBhg help urls\fP\: for important details about \fBssh://\fP URLs.
.sp
-To pull only a subset of changesets, specify one or more revisions
-identifiers with \-r/\-\-rev or branches with \-b/\-\-branch. The
-resulting clone will contain only the specified changesets and
-their ancestors. These options (or \(aqclone src#rev dest\(aq) imply
-\-\-pull, even for local source repositories. Note that specifying a
-tag will include the tagged changeset but not the changeset
-containing the tag.
+A set of changesets (tags, or branch names) to pull may be specified
+by listing each changeset (tag, or branch name) with \-r/\-\-rev.
+If \-r/\-\-rev is used, the cloned repository will contain only a subset
+of the changesets of the source repository. Only the set of changesets
+defined by all \-r/\-\-rev options (including all their ancestors)
+will be pulled into the destination repository.
+No subsequent changesets (including subsequent tags) will be present
+in the destination.
.sp
-To check out a particular version, use \-u/\-\-update, or
-\-U/\-\-noupdate to create a clone with no working directory.
+Using \-r/\-\-rev (or \(aqclone src#rev dest\(aq) implies \-\-pull, even for
+local source repositories.
.sp
-For efficiency, hardlinks are used for cloning whenever the
-source and destination are on the same filesystem (note this
-applies only to the repository data, not to the working
-directory). Some filesystems, such as AFS, implement hardlinking
-incorrectly, but do not report errors. In these cases, use the
-\-\-pull option to avoid hardlinking.
+For efficiency, hardlinks are used for cloning whenever the source
+and destination are on the same filesystem (note this applies only
+to the repository data, not to the working directory). Some
+filesystems, such as AFS, implement hardlinking incorrectly, but
+do not report errors. In these cases, use the \-\-pull option to
+avoid hardlinking.
.sp
-In some cases, you can clone repositories and the working
-directory using full hardlinks with
+In some cases, you can clone repositories and the working directory
+using full hardlinks with
.sp
.nf
.ft C
@@ -947,10 +804,10 @@ $ cp \-al REPO REPOCLONE
.sp
This is the fastest way to clone, but it is not always safe. The
operation is not atomic (making sure REPO is not modified during
-the operation is up to you) and you have to make sure your
-editor breaks hardlinks (Emacs and most Linux Kernel tools do
-so). Also, this is not compatible with certain extensions that
-place their metadata under the .hg directory, such as mq.
+the operation is up to you) and you have to make sure your editor
+breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,
+this is not compatible with certain extensions that place their
+metadata under the .hg directory, such as mq.
.sp
Mercurial will update the working directory to the first applicable
revision from this list:
@@ -983,67 +840,6 @@ the tipmost head of the default branch
tip
.UNINDENT
.sp
-Examples:
-.INDENT 0.0
-.IP \(bu 2
-.
-clone a remote repository to a new directory named hg/:
-.sp
-.nf
-.ft C
-hg clone http://selenic.com/hg
-.ft P
-.fi
-.IP \(bu 2
-.
-create a lightweight local clone:
-.sp
-.nf
-.ft C
-hg clone project/ project\-feature/
-.ft P
-.fi
-.IP \(bu 2
-.
-clone from an absolute path on an ssh server (note double\-slash):
-.sp
-.nf
-.ft C
-hg clone ssh://user@server//home/projects/alpha/
-.ft P
-.fi
-.IP \(bu 2
-.
-do a high\-speed clone over a LAN while checking out a
-specified version:
-.sp
-.nf
-.ft C
-hg clone \-\-uncompressed http://server/repo \-u 1.5
-.ft P
-.fi
-.IP \(bu 2
-.
-create a repository without changesets after a particular revision:
-.sp
-.nf
-.ft C
-hg clone \-r 04e544 experimental/ good/
-.ft P
-.fi
-.IP \(bu 2
-.
-clone (and track) a particular named branch:
-.sp
-.nf
-.ft C
-hg clone http://selenic.com/hg#stable
-.ft P
-.fi
-.UNINDENT
-.sp
-See \%\fBhg help urls\fP\: for details on specifying URLs.
-.sp
Returns 0 on success.
.sp
Options:
@@ -1108,20 +904,6 @@ configured editor where you can enter a message. In case your
commit fails, you will find a backup of your message in
\fB.hg/last\-message.txt\fP.
.sp
-The \-\-amend flag can be used to amend the parent of the
-working directory with a new commit that contains the changes
-in the parent in addition to those currently reported by \%\fBhg status\fP\:,
-if there are any. The old commit is stored in a backup bundle in
-\fB.hg/strip\-backup\fP (see \%\fBhg help bundle\fP\: and \%\fBhg help unbundle\fP\:
-on how to restore it).
-.sp
-Message, user and date are taken from the amended commit unless
-specified. When a message isn\(aqt specified on the command line,
-the editor will open with the message of the amended commit.
-.sp
-It is not possible to amend public changesets (see \%\fBhg help phases\fP\:)
-or changesets that have children.
-.sp
See \%\fBhg help dates\fP\: for a list of formats valid for \-d/\-\-date.
.sp
Returns 0 on success, 1 if nothing changed.
@@ -1137,10 +919,6 @@ mark new/missing files as added/removed before committing
.
mark a branch as closed, hiding it from the branch list
.TP
-.B \-\-amend
-.
-amend the parent of the working dir
-.TP
.B \-I, \-\-include
.
include names matching the given patterns
@@ -1164,10 +942,6 @@ record the specified date as commit date
.B \-u, \-\-user
.
record the specified user as committer
-.TP
-.B \-S, \-\-subrepos
-.
-recurse into subrepositories
.sp
aliases: ci
.UNINDENT
@@ -1251,57 +1025,6 @@ anyway, probably with undesirable results.
Use the \-g/\-\-git option to generate diffs in the git extended diff
format. For more information, read \%\fBhg help diffs\fP\:.
.sp
-Examples:
-.INDENT 0.0
-.IP \(bu 2
-.
-compare a file in the current working directory to its parent:
-.sp
-.nf
-.ft C
-hg diff foo.c
-.ft P
-.fi
-.IP \(bu 2
-.
-compare two historical versions of a directory, with rename info:
-.sp
-.nf
-.ft C
-hg diff \-\-git \-r 1.0:1.2 lib/
-.ft P
-.fi
-.IP \(bu 2
-.
-get change stats relative to the last change on some date:
-.sp
-.nf
-.ft C
-hg diff \-\-stat \-r "date(\(aqmay 2\(aq)"
-.ft P
-.fi
-.IP \(bu 2
-.
-diff all newly\-added files that contain a keyword:
-.sp
-.nf
-.ft C
-hg diff "set:added() and grep(GNU)"
-.ft P
-.fi
-.IP \(bu 2
-.
-compare a revision and its parents:
-.sp
-.nf
-.ft C
-hg diff \-c 9353 # compare against first parent
-hg diff \-r 9353^:9353 # same using revset syntax
-hg diff \-r 9353^2:9353 # compare against the second parent
-.ft P
-.fi
-.UNINDENT
-.sp
Returns 0 on success.
.sp
Options:
@@ -1371,7 +1094,7 @@ recurse into subrepositories
.sp
.nf
.ft C
-hg export [OPTION]... [\-o OUTFILESPEC] [\-r] REV...
+hg export [OPTION]... [\-o OUTFILESPEC] REV...
.ft P
.fi
.sp
@@ -1415,10 +1138,6 @@ basename of the exporting repository
.sp
short\-form changeset hash (12 hexadecimal digits)
.TP
-.B \fB%m\fP
-.sp
-first line of the commit message (only alphanumeric characters)
-.TP
.B \fB%n\fP
.sp
zero\-padded sequence number, starting at 1
@@ -1438,40 +1157,6 @@ format. See \%\fBhg help diffs\fP\: for more information.
With the \-\-switch\-parent option, the diff will be against the
second parent. It can be useful to review a merge.
.sp
-Examples:
-.INDENT 0.0
-.IP \(bu 2
-.
-use export and import to transplant a bugfix to the current
-branch:
-.sp
-.nf
-.ft C
-hg export \-r 9353 | hg import \-
-.ft P
-.fi
-.IP \(bu 2
-.
-export all the changesets between two revisions to a file with
-rename information:
-.sp
-.nf
-.ft C
-hg export \-\-git \-r 123:150 > changes.txt
-.ft P
-.fi
-.IP \(bu 2
-.
-split outgoing changes into a series of patches with
-descriptive names:
-.sp
-.nf
-.ft C
-hg export \-r "outgoing()" \-o "%n\-%m.patch"
-.ft P
-.fi
-.UNINDENT
-.sp
Returns 0 on success.
.sp
Options:
@@ -1518,28 +1203,6 @@ working directory.
.sp
To undo a forget before the next commit, see \%\fBhg add\fP\:.
.sp
-Examples:
-.INDENT 0.0
-.IP \(bu 2
-.
-forget newly\-added binary files:
-.sp
-.nf
-.ft C
-hg forget "set:added() and binary()"
-.ft P
-.fi
-.IP \(bu 2
-.
-forget files that would be excluded by .hgignore:
-.sp
-.nf
-.ft C
-hg forget "set:hgignore()"
-.ft P
-.fi
-.UNINDENT
-.sp
Returns 0 on success.
.sp
Options:
@@ -1553,127 +1216,6 @@ include names matching the given patterns
.
exclude names matching the given patterns
.UNINDENT
-.SS graft
-.sp
-.nf
-.ft C
-hg graft [OPTION]... [\-r] REV...
-.ft P
-.fi
-.sp
-This command uses Mercurial\(aqs merge logic to copy individual
-changes from other branches without merging branches in the
-history graph. This is sometimes known as \(aqbackporting\(aq or
-\(aqcherry\-picking\(aq. By default, graft will copy user, date, and
-description from the source changesets.
-.sp
-Changesets that are ancestors of the current revision, that have
-already been grafted, or that are merges will be skipped.
-.sp
-If \-\-log is specified, log messages will have a comment appended
-of the form:
-.sp
-.nf
-.ft C
-(grafted from CHANGESETHASH)
-.ft P
-.fi
-.sp
-If a graft merge results in conflicts, the graft process is
-interrupted so that the current merge can be manually resolved.
-Once all conflicts are addressed, the graft process can be
-continued with the \-c/\-\-continue option.
-.IP Note
-.
-The \-c/\-\-continue option does not reapply earlier options.
-.RE
-.sp
-Examples:
-.INDENT 0.0
-.IP \(bu 2
-.
-copy a single change to the stable branch and edit its description:
-.sp
-.nf
-.ft C
-hg update stable
-hg graft \-\-edit 9393
-.ft P
-.fi
-.IP \(bu 2
-.
-graft a range of changesets with one exception, updating dates:
-.sp
-.nf
-.ft C
-hg graft \-D "2085::2093 and not 2091"
-.ft P
-.fi
-.IP \(bu 2
-.
-continue a graft after resolving conflicts:
-.sp
-.nf
-.ft C
-hg graft \-c
-.ft P
-.fi
-.IP \(bu 2
-.
-show the source of a grafted changeset:
-.sp
-.nf
-.ft C
-hg log \-\-debug \-r tip
-.ft P
-.fi
-.UNINDENT
-.sp
-Returns 0 on successful completion.
-.sp
-Options:
-.INDENT 0.0
-.TP
-.B \-r, \-\-rev
-.
-revisions to graft
-.TP
-.B \-c, \-\-continue
-.
-resume interrupted graft
-.TP
-.B \-e, \-\-edit
-.
-invoke editor on commit messages
-.TP
-.B \-\-log
-.
-append graft info to log message
-.TP
-.B \-D, \-\-currentdate
-.
-record the current date as commit date
-.TP
-.B \-U, \-\-currentuser
-.
-record the current user as committer
-.TP
-.B \-d, \-\-date
-.
-record the specified date as commit date
-.TP
-.B \-u, \-\-user
-.
-record the specified user as committer
-.TP
-.B \-t, \-\-tool
-.
-specify merge tool
-.TP
-.B \-n, \-\-dry\-run
-.
-do not perform actions, just print output
-.UNINDENT
.SS grep
.sp
.nf
@@ -1752,7 +1294,7 @@ exclude names matching the given patterns
.sp
.nf
.ft C
-hg heads [\-ct] [\-r STARTREV] [REV]...
+hg heads [\-ac] [\-r STARTREV] [REV]...
.ft P
.fi
.sp
@@ -1831,10 +1373,6 @@ show only help for extensions
.B \-c, \-\-command
.
show only help for commands
-.TP
-.B \-k, \-\-keyword
-.
-show topics matching keyword
.UNINDENT
.SS identify
.sp
@@ -1855,37 +1393,6 @@ repository.
Specifying a path to a repository root or Mercurial bundle will
cause lookup to operate on that repository/bundle.
.sp
-Examples:
-.INDENT 0.0
-.IP \(bu 2
-.
-generate a build identifier for the working directory:
-.sp
-.nf
-.ft C
-hg id \-\-id > build\-id.dat
-.ft P
-.fi
-.IP \(bu 2
-.
-find the revision corresponding to a tag:
-.sp
-.nf
-.ft C
-hg id \-n \-r 1.3
-.ft P
-.fi
-.IP \(bu 2
-.
-check the most recent revision of a remote repository:
-.sp
-.nf
-.ft C
-hg id \-r tip http://selenic.com/hg/
-.ft P
-.fi
-.UNINDENT
-.sp
Returns 0 if successful.
.sp
Options:
@@ -1914,18 +1421,6 @@ show tags
.B \-B, \-\-bookmarks
.
show bookmarks
-.TP
-.B \-e, \-\-ssh
-.
-specify ssh command to use
-.TP
-.B \-\-remotecmd
-.
-specify hg command to run on the remote side
-.TP
-.B \-\-insecure
-.
-do not verify server certificate (ignoring web.cacerts config)
.sp
aliases: id
.UNINDENT
@@ -1967,53 +1462,12 @@ patches will be applied on top of the working directory parent
revision.
.sp
With \-s/\-\-similarity, hg will attempt to discover renames and
-copies in the patch in the same way as \%\fBhg addremove\fP\:.
+copies in the patch in the same way as \(aqaddremove\(aq.
.sp
To read a patch from standard input, use "\-" as the patch name. If
a URL is specified, the patch will be downloaded from it.
See \%\fBhg help dates\fP\: for a list of formats valid for \-d/\-\-date.
.sp
-Examples:
-.INDENT 0.0
-.IP \(bu 2
-.
-import a traditional patch from a website and detect renames:
-.sp
-.nf
-.ft C
-hg import \-s 80 http://example.com/bugfix.patch
-.ft P
-.fi
-.IP \(bu 2
-.
-import a changeset from an hgweb server:
-.sp
-.nf
-.ft C
-hg import http://www.selenic.com/hg/rev/5ca8c111e9aa
-.ft P
-.fi
-.IP \(bu 2
-.
-import all the patches in an Unix\-style mbox:
-.sp
-.nf
-.ft C
-hg import incoming\-patches.mbox
-.ft P
-.fi
-.IP \(bu 2
-.
-attempt to exactly restore an exported changeset (not always
-possible):
-.sp
-.nf
-.ft C
-hg import \-\-exact proposed\-fix.patch
-.ft P
-.fi
-.UNINDENT
-.sp
Returns 0 on success.
.sp
Options:
@@ -2027,10 +1481,6 @@ directory strip option for patch. This has the same meaning as the corresponding
.
base path (DEPRECATED)
.TP
-.B \-e, \-\-edit
-.
-invoke editor on commit messages
-.TP
.B \-f, \-\-force
.
skip check for outstanding uncommitted changes
@@ -2139,10 +1589,6 @@ do not show merges
.
output diffstat\-style summary of changes
.TP
-.B \-G, \-\-graph
-.
-show the revision DAG
-.TP
.B \-\-style
.
display using template map file
@@ -2261,14 +1707,18 @@ hg log [OPTION]... [FILE]
Print the revision history of the specified files or the entire
project.
.sp
-If no revision range is specified, the default is \fBtip:0\fP unless
-\-\-follow is set, in which case the working directory parent is
-used as the starting revision.
-.sp
File history is shown without following rename or copy history of
files. Use \-f/\-\-follow with a filename to follow history across
renames and copies. \-\-follow without a filename will only show
-ancestors or descendants of the starting revision.
+ancestors or descendants of the starting revision. \-\-follow\-first
+only follows the first parent of merge revisions.
+.sp
+If no revision range is specified, the default is \fBtip:0\fP unless
+\-\-follow is set, in which case the working directory parent is
+used as the starting revision. You can specify a revision set for
+log, see \%\fBhg help revsets\fP\: for more information.
+.sp
+See \%\fBhg help dates\fP\: for a list of formats valid for \-d/\-\-date.
.sp
By default this command prints revision number and changeset id,
tags, non\-trivial parents, user, date and time, and a summary for
@@ -2281,106 +1731,6 @@ changesets, as it will only compare the merge changeset against
its first parent. Also, only files different from BOTH parents
will appear in files:.
.RE
-.IP Note
-.
-for performance reasons, log FILE may omit duplicate changes
-made on branches and will not show deletions. To see all
-changes including duplicates and deletions, use the \-\-removed
-switch.
-.RE
-.sp
-Some examples:
-.INDENT 0.0
-.IP \(bu 2
-.
-changesets with full descriptions and file lists:
-.sp
-.nf
-.ft C
-hg log \-v
-.ft P
-.fi
-.IP \(bu 2
-.
-changesets ancestral to the working directory:
-.sp
-.nf
-.ft C
-hg log \-f
-.ft P
-.fi
-.IP \(bu 2
-.
-last 10 commits on the current branch:
-.sp
-.nf
-.ft C
-hg log \-l 10 \-b .
-.ft P
-.fi
-.IP \(bu 2
-.
-changesets showing all modifications of a file, including removals:
-.sp
-.nf
-.ft C
-hg log \-\-removed file.c
-.ft P
-.fi
-.IP \(bu 2
-.
-all changesets that touch a directory, with diffs, excluding merges:
-.sp
-.nf
-.ft C
-hg log \-Mp lib/
-.ft P
-.fi
-.IP \(bu 2
-.
-all revision numbers that match a keyword:
-.sp
-.nf
-.ft C
-hg log \-k bug \-\-template "{rev}\en"
-.ft P
-.fi
-.IP \(bu 2
-.
-check if a given changeset is included is a tagged release:
-.sp
-.nf
-.ft C
-hg log \-r "a21ccf and ancestor(1.9)"
-.ft P
-.fi
-.IP \(bu 2
-.
-find all changesets by some user in a date range:
-.sp
-.nf
-.ft C
-hg log \-k alice \-d "may 2008 to jul 2008"
-.ft P
-.fi
-.IP \(bu 2
-.
-summary of all changesets after the last tag:
-.sp
-.nf
-.ft C
-hg log \-r "last(tagged())::" \-\-template "{desc|firstline}\en"
-.ft P
-.fi
-.UNINDENT
-.sp
-See \%\fBhg help dates\fP\: for a list of formats valid for \-d/\-\-date.
-.sp
-See \%\fBhg help revisions\fP\: and \%\fBhg help revsets\fP\: for more about
-specifying revisions.
-.sp
-See \%\fBhg help templates\fP\: for more about pre\-packaged styles and
-specifying custom templates.
.sp
Returns 0 on success.
.sp
@@ -2393,7 +1743,7 @@ follow changeset history, or file history across copies and renames
.TP
.B \-\-follow\-first
.
-only follow the first parent of merge changesets (DEPRECATED)
+only follow the first parent of merge changesets
.TP
.B \-d, \-\-date
.
@@ -2417,7 +1767,7 @@ include revisions where files were removed
.TP
.B \-m, \-\-only\-merges
.
-show only merges (DEPRECATED)
+show only merges
.TP
.B \-u, \-\-user
.
@@ -2437,7 +1787,7 @@ do not display revision or any of its ancestors
.TP
.B \-\-hidden
.
-show hidden changesets (DEPRECATED)
+show hidden changesets
.TP
.B \-p, \-\-patch
.
@@ -2459,10 +1809,6 @@ do not show merges
.
output diffstat\-style summary of changes
.TP
-.B \-G, \-\-graph
-.
-show the revision DAG
-.TP
.B \-\-style
.
display using template map file
@@ -2552,6 +1898,10 @@ Options:
.
force a merge with outstanding changes
.TP
+.B \-t, \-\-tool
+.
+specify merge tool
+.TP
.B \-r, \-\-rev
.
revision to merge
@@ -2559,10 +1909,6 @@ revision to merge
.B \-P, \-\-preview
.
review revisions to merge (no merge is performed)
-.TP
-.B \-t, \-\-tool
-.
-specify merge tool
.UNINDENT
.SS outgoing
.sp
@@ -2623,10 +1969,6 @@ do not show merges
.
output diffstat\-style summary of changes
.TP
-.B \-G, \-\-graph
-.
-show the revision DAG
-.TP
.B \-\-style
.
display using template map file
@@ -2716,54 +2058,6 @@ source is written as \fBdefault\fP in \fB.hg/hgrc\fP. Note that
See \%\fBhg help urls\fP\: for more information.
.sp
Returns 0 on success.
-.SS phase
-.sp
-.nf
-.ft C
-hg phase [\-p|\-d|\-s] [\-f] [\-r] REV...
-.ft P
-.fi
-.sp
-With no argument, show the phase name of specified revisions.
-.sp
-With one of \-p/\-\-public, \-d/\-\-draft or \-s/\-\-secret, change the
-phase value of the specified revisions.
-.sp
-Unless \-f/\-\-force is specified, \%\fBhg phase\fP\: won\(aqt move changeset from a
-lower phase to an higher phase. Phases are ordered as follows:
-.sp
-.nf
-.ft C
-public < draft < secret
-.ft P
-.fi
-.sp
-Return 0 on success, 1 if no phases were changed or some could not
-be changed.
-.sp
-Options:
-.INDENT 0.0
-.TP
-.B \-p, \-\-public
-.
-set changeset phase to public
-.TP
-.B \-d, \-\-draft
-.
-set changeset phase to draft
-.TP
-.B \-s, \-\-secret
-.
-set changeset phase to secret
-.TP
-.B \-f, \-\-force
-.
-allow to move boundary backward
-.TP
-.B \-r, \-\-rev
-.
-target revision
-.UNINDENT
.SS pull
.sp
.nf
@@ -2853,10 +2147,6 @@ changesets on all branches.
If \-r/\-\-rev is used, the specified revision and all its ancestors
will be pushed to the remote repository.
.sp
-If \-B/\-\-bookmark is used, the specified bookmarked revision, its
-ancestors, and the bookmark will be pushed to the remote
-repository.
-.sp
Please see \%\fBhg help urls\fP\: for important details about \fBssh://\fP
URLs. If DESTINATION is omitted, a default path will be used.
.sp
@@ -2920,86 +2210,36 @@ hg remove [OPTION]... FILE...
.ft P
.fi
.sp
-Schedule the indicated files for removal from the current branch.
-.sp
-This command schedules the files to be removed at the next commit.
-To undo a remove before that, see \%\fBhg revert\fP\:. To undo added
-files, see \%\fBhg forget\fP\:.
+Schedule the indicated files for removal from the repository.
.sp
-\-A/\-\-after can be used to remove only files that have already
-been deleted, \-f/\-\-force can be used to force deletion, and \-Af
-can be used to remove files from the next revision without
-deleting them from the working directory.
+This only removes files from the current branch, not from the
+entire project history. \-A/\-\-after can be used to remove only
+files that have already been deleted, \-f/\-\-force can be used to
+force deletion, and \-Af can be used to remove files from the next
+revision without deleting them from the working directory.
.sp
The following table details the behavior of remove for different
file states (columns) and option combinations (rows). The file
-states are Added [A], Clean [C], Modified [M] and Missing [!]
-(as reported by \%\fBhg status\fP\:). The actions are Warn, Remove
-(from branch) and Delete (from disk):
-.TS
-center;
-|l|l|l|l|l|.
-_
-T{
-T} T{
-T} T{
-T} T{
-T} T{
-T}
-_
-T{
-none
-T} T{
-W
-T} T{
-RD
-T} T{
-W
-T} T{
-R
-T}
-_
-T{
-\-f
-T} T{
-R
-T} T{
-RD
-T} T{
-RD
-T} T{
-R
-T}
-_
-T{
-\-A
-T} T{
-W
-T} T{
-W
-T} T{
-W
-T} T{
-R
-T}
-_
-T{
-\-Af
-T} T{
-R
-T} T{
-R
-T} T{
-R
-T} T{
-R
-T}
-_
-.TE
+states are Added [A], Clean [C], Modified [M] and Missing [!] (as
+reported by \%\fBhg status\fP\:). The actions are Warn, Remove (from
+branch) and Delete (from disk):
+.sp
+.nf
+.ft C
+ A C M !
+none W RD W R
+\-f R RD RD R
+\-A W W W R
+\-Af R R R R
+.ft P
+.fi
.sp
Note that remove never deletes files in Added [A] state from the
working directory, not even if option \-\-force is specified.
.sp
+This command schedules the files to be removed at the next commit.
+To undo a remove before that, see \%\fBhg revert\fP\:.
+.sp
Returns 0 on success, 1 if any warnings encountered.
.sp
Options:
@@ -3082,8 +2322,7 @@ non\-interactive merging using the \fBinternal:merge\fP configuration
setting, or a command\-line merge tool like \fBdiff3\fP. The resolve
command is used to manage the files involved in a merge, after
\%\fBhg merge\fP\: has been run, and before \%\fBhg commit\fP\: is run (i.e. the
-working directory must have two parents). See \%\fBhg help
-merge\-tools\fP\: for information on configuring merge tools.
+working directory must have two parents).
.sp
The resolve command can be used in the following ways:
.INDENT 0.0
@@ -3094,8 +2333,7 @@ files, discarding any previous merge attempts. Re\-merging is not
performed for files already marked as resolved. Use \fB\-\-all/\-a\fP
to select all unresolved files. \fB\-\-tool\fP can be used to specify
the merge tool used for the given files. It overrides the HGMERGE
-environment variable and your configuration files. Previous file
-contents are saved with a \fB.orig\fP suffix.
+environment variable and your configuration files.
.IP \(bu 2
.
\%\fBhg resolve \-m [FILE]\fP\:: mark a file as having been resolved
@@ -3136,14 +2374,14 @@ mark files as resolved
.
mark files as unresolved
.TP
-.B \-n, \-\-no\-status
-.
-hide status prefix
-.TP
.B \-t, \-\-tool
.
specify merge tool
.TP
+.B \-n, \-\-no\-status
+.
+hide status prefix
+.TP
.B \-I, \-\-include
.
include names matching the given patterns
@@ -3162,8 +2400,7 @@ hg revert [OPTION]... [\-r REV] [NAME]...
.IP Note
.
To check out earlier revisions, you should use \%\fBhg update REV\fP\:.
-To cancel an uncommitted merge (and lose your changes), use
-\%\fBhg update \-\-clean .\fP\:.
+To cancel a merge (and lose your changes), use \%\fBhg update \-\-clean .\fP\:.
.RE
.sp
With no revision specified, revert the specified files or directories
@@ -3202,7 +2439,7 @@ tipmost revision matching date
.
revert to the specified revision
.TP
-.B \-C, \-\-no\-backup
+.B \-\-no\-backup
.
do not save backup copies of files
.TP
@@ -3234,10 +2471,8 @@ the working directory.
.sp
Transactions are used to encapsulate the effects of all commands
that create new changesets or propagate existing changesets into a
-repository.
-.sp
-For example, the following commands are transactional, and their
-effects can be rolled back:
+repository. For example, the following commands are transactional,
+and their effects can be rolled back:
.INDENT 0.0
.IP \(bu 2
.
@@ -3256,10 +2491,6 @@ push (with this repository as the destination)
unbundle
.UNINDENT
.sp
-To avoid permanent data loss, rollback will refuse to rollback a
-commit transaction if it isn\(aqt checked out. Use \-\-force to
-override this protection.
-.sp
This command is not intended for use on public repositories. Once
changes are visible for pull by other users, rolling a transaction
back locally is ineffective (someone else may already have pulled
@@ -3275,10 +2506,6 @@ Options:
.B \-n, \-\-dry\-run
.
do not perform actions, just print output
-.TP
-.B \-f, \-\-force
-.
-ignore safety measures
.UNINDENT
.SS root
.sp
@@ -3466,38 +2693,6 @@ I = ignored
.ft P
.fi
.sp
-Examples:
-.INDENT 0.0
-.IP \(bu 2
-.
-show changes in the working directory relative to a
-changeset:
-.sp
-.nf
-.ft C
-hg status \-\-rev 9353
-.ft P
-.fi
-.IP \(bu 2
-.
-show all changes including copies in an existing changeset:
-.sp
-.nf
-.ft C
-hg status \-\-copies \-\-change 9353
-.ft P
-.fi
-.IP \(bu 2
-.
-get a NUL separated list of added files, suitable for xargs:
-.sp
-.nf
-.ft C
-hg status \-an0
-.ft P
-.fi
-.UNINDENT
-.sp
Returns 0 on success.
.sp
Options:
@@ -3746,18 +2941,17 @@ hg update [\-c] [\-C] [\-d DATE] [[\-r] REV]
.sp
Update the repository\(aqs working directory to the specified
changeset. If no changeset is specified, update to the tip of the
-current named branch and move the current bookmark (see \%\fBhg help
-bookmarks\fP\:).
+current named branch.
+.sp
+If the changeset is not a descendant of the working directory\(aqs
+parent, the update is aborted. With the \-c/\-\-check option, the
+working directory is checked for uncommitted changes; if none are
+found, the working directory is updated to the specified
+changeset.
.sp
Update sets the working directory\(aqs parent revison to the specified
changeset (see \%\fBhg help parents\fP\:).
.sp
-If the changeset is not a descendant or ancestor of the working
-directory\(aqs parent, the update is aborted. With the \-c/\-\-check
-option, the working directory is checked for uncommitted changes; if
-none are found, the working directory is updated to the specified
-changeset.
-.sp
The following rules apply when the working directory contains
uncommitted changes:
.INDENT 0.0
@@ -3781,9 +2975,6 @@ With the \-C/\-\-clean option, uncommitted changes are discarded and
the working directory is updated to the requested changeset.
.UNINDENT
.sp
-To cancel an uncommitted merge (and lose your changes), use
-\%\fBhg update \-\-clean .\fP\:.
-.sp
Use null as the changeset to remove the working directory (like
\%\fBhg clone \-U\fP\:).
.sp
@@ -4161,7 +3352,7 @@ hooks for integrating with the Bugzilla bug tracker
.TP
.B children
.
-command to display child changesets (DEPRECATED)
+command to display child changesets
.TP
.B churn
.
@@ -4183,13 +3374,9 @@ automatically manage newlines in repository files
.
command to allow external programs to compare revisions
.TP
-.B factotum
-.
-http authentication with factotum
-.TP
.B fetch
.
-pull, update and merge in one command (DEPRECATED)
+pull, update and merge in one command
.TP
.B gpg
.
@@ -4211,10 +3398,6 @@ browse the repository in a graphical way
.
syntax highlighting for hgweb (requires Pygments)
.TP
-.B histedit
-.
-interactive history editing
-.TP
.B inotify
.
accelerate status report using Linux\(aqs inotify service
@@ -4227,17 +3410,13 @@ expand expressions into changelog and summaries
.
expand keywords in tracked files
.TP
-.B largefiles
-.
-track large binary files
-.TP
.B mq
.
manage a stack of patches
.TP
.B notify
.
-hooks for sending email push notifications
+hooks for sending email notifications at commit/push time
.TP
.B pager
.
@@ -4413,10 +3592,6 @@ File size matches the given expression. Examples:
4k \- 1MB (files from 4096 bytes to 1048576 bytes)
.UNINDENT
.TP
-.B \fBsubrepo([pattern])\fP
-.sp
-Subrepositories whose paths match the given pattern.
-.TP
.B \fBsymlink()\fP
.sp
File that is marked as a symlink.
@@ -4466,7 +3641,7 @@ Find C files in a non\-standard encoding:
.sp
.nf
.ft C
-hg locate "set:**.c and not encoding(\(aqUTF\-8\(aq)"
+hg locate "set:**.c and not encoding(ascii)"
.ft P
.fi
.IP \(bu 2
@@ -4650,7 +3825,7 @@ See \(aqChangeset, child\(aq.
.TP
.B Close changeset
.
-See \(aqHead, closed branch\(aq
+See \(aqChangeset, close\(aq.
.TP
.B Closed branch
.
@@ -4737,12 +3912,6 @@ changeset, known as the parent of the working directory. See
to the files introduced manually or by a merge. The repository
metadata exists in the .hg directory inside the working directory.
.TP
-.B Draft
-.
-Changesets in the draft phase have not been shared with publishing
-repositories and may thus be safely changed by history\-modifying
-extensions. See \%\fBhg help phases\fP\:.
-.TP
.B Graph
.
See DAG and \%\fBhg help graphlog\fP\:.
@@ -4766,9 +3935,6 @@ A changeset that marks a head as no longer interesting. The closed
head is no longer listed by \%\fBhg heads\fP\:. A branch is considered
closed when all its heads are closed and consequently is not
listed by \%\fBhg branches\fP\:.
-.sp
-Closed heads can be re\-opened by committing new changeset as the
-child of the changeset that marks a head as closed.
.TP
.B Head, repository
.
@@ -4852,17 +4018,6 @@ changeset into another.
.sp
Example: "You will need to patch that revision."
.TP
-.B Phase
-.
-A per\-changeset state tracking how the changeset has been or
-should be shared. See \%\fBhg help phases\fP\:.
-.TP
-.B Public
-.
-Changesets in the public phase have been shared with publishing
-repositories and are therefore considered immutable. See \%\fBhg help
-phases\fP\:.
-.TP
.B Pull
.
An operation in which changesets in a remote repository which are
@@ -4923,11 +4078,6 @@ See \(aqHistory, rewriting\(aq.
A changeset that has only the null changeset as its parent. Most
repositories have only a single root changeset.
.TP
-.B Secret
-.
-Changesets in the secret phase may not be shared via push, pull,
-or clone. See \%\fBhg help phases\fP\:.
-.TP
.B Tag
.
An alternative name given to a changeset. Tags can be used in all
@@ -4969,12 +4119,12 @@ See \(aqDirectory, working\(aq.
See \(aqParent, working directory\(aq.
.UNINDENT
.SH SYNTAX FOR MERCURIAL IGNORE FILES
-.SS Synopsis
+.SH SYNOPSIS
.sp
The Mercurial system uses a file called \fB.hgignore\fP in the root
directory of a repository to control its behavior when it searches
for files that it is not currently tracking.
-.SS Description
+.SH DESCRIPTION
.sp
The working directory of a Mercurial repository will often contain
files that should not be tracked by Mercurial. These include backup
@@ -5000,12 +4150,7 @@ configure these files.
To control Mercurial\(aqs handling of files that it manages, many
commands support the \fB\-I\fP and \fB\-X\fP options; see
\%\fBhg help <command>\fP\: and \%\fBhg help patterns\fP\: for details.
-.sp
-Files that are already tracked are not affected by .hgignore, even
-if they appear in .hgignore. An untracked file X can be explicitly
-added with \%\fBhg add X\fP\:, even if X would be excluded by a pattern
-in .hgignore.
-.SS Syntax
+.SH SYNTAX
.sp
An ignore file is a plain text file consisting of a list of patterns,
with one pattern per line. Empty lines are skipped. The \fB#\fP
@@ -5042,12 +4187,7 @@ Neither glob nor regexp patterns are rooted. A glob\-syntax pattern of
the form \fB*.c\fP will match a file ending in \fB.c\fP in any directory,
and a regexp pattern of the form \fB\e.c$\fP will do the same. To root a
regexp pattern, start it with \fB^\fP.
-.IP Note
-.
-Patterns specified in other than \fB.hgignore\fP are always rooted.
-Please see \%\fBhg help patterns\fP\: for details.
-.RE
-.SS Example
+.SH EXAMPLE
.sp
Here is an example ignore file.
.sp
@@ -5068,13 +4208,12 @@ syntax: regexp
.SH CONFIGURING HGWEB
.sp
Mercurial\(aqs internal web server, hgweb, can serve either a single
-repository, or a tree of repositories. In the second case, repository
-paths and global options can be defined using a dedicated
-configuration file common to \%\fBhg serve\fP\:, \fBhgweb.wsgi\fP,
-\fBhgweb.cgi\fP and \fBhgweb.fcgi\fP.
+repository, or a collection of them. In the latter case, a special
+configuration file can be used to specify the repository paths to use
+and global web configuration options.
.sp
-This file uses the same syntax as other Mercurial configuration files
-but recognizes only the following sections:
+This file uses the same syntax as other Mercurial configuration files,
+but only the following sections are recognized:
.INDENT 0.0
.INDENT 3.5
.INDENT 0.0
@@ -5091,34 +4230,21 @@ collections
.UNINDENT
.UNINDENT
.sp
-The \fBweb\fP options are thorougly described in \%\fBhg help config\fP\:.
-.sp
-The \fBpaths\fP section maps URL paths to paths of repositories in the
-filesystem. hgweb will not expose the filesystem directly \- only
-Mercurial repositories can be published and only according to the
-configuration.
-.sp
-The left hand side is the path in the URL. Note that hgweb reserves
-subpaths like \fBrev\fP or \fBfile\fP, try using different names for
-nested repositories to avoid confusing effects.
+The \fBweb\fP section can specify all the settings described in the web
+section of the hgrc(5) documentation. See \%\fBhg help config\fP\: for
+information on where to find the manual page.
.sp
-The right hand side is the path in the filesystem. If the specified
-path ends with \fB*\fP or \fB**\fP the filesystem will be searched
-recursively for repositories below that point.
-With \fB*\fP it will not recurse into the repositories it finds (except for
-\fB.hg/patches\fP).
-With \fB**\fP it will also search inside repository working directories
-and possibly find subrepositories.
-.sp
-In this example:
+The \fBpaths\fP section provides mappings of physical repository
+paths to virtual ones. For instance:
.sp
.nf
.ft C
[paths]
-/projects/a = /srv/tmprepos/a
-/projects/b = c:/repos/b
-/ = /srv/repos/*
-/user/bob = /home/bob/repos/**
+projects/a = /foo/bar
+projects/b = /baz/quux
+web/root = /real/root/*
+/ = /real/root2/*
+virtual/root2 = /real/root2/**
.ft P
.fi
.INDENT 0.0
@@ -5128,17 +4254,34 @@ The first two entries make two repositories in different directories
appear under the same directory in the web interface
.IP \(bu 2
.
-The third entry will publish every Mercurial repository found in
-\fB/srv/repos/\fP, for instance the repository \fB/srv/repos/quux/\fP
-will appear as \fBhttp://server/quux/\fP
+The third entry maps every Mercurial repository found in \(aq/real/root\(aq
+into \(aqweb/root\(aq. This format is preferred over the [collections] one,
+since using absolute paths as configuration keys is not supported on every
+platform (especially on Windows).
+.IP \(bu 2
+.
+The fourth entry is a special case mapping all repositories in
+\(aq/real/root2\(aq in the root of the virtual directory.
.IP \(bu 2
.
-The fourth entry will publish both \fBhttp://server/user/bob/quux/\fP
-and \fBhttp://server/user/bob/quux/testsubrepo/\fP
+The fifth entry recursively finds all repositories under the real
+root, and maps their relative paths under the virtual root.
.UNINDENT
.sp
-The \fBcollections\fP section is deprecated and has been superseeded by
-\fBpaths\fP.
+The \fBcollections\fP section provides mappings of trees of physical
+repositories paths to virtual ones, though the paths syntax is generally
+preferred. For instance:
+.sp
+.nf
+.ft C
+[collections]
+/foo = /foo
+.ft P
+.fi
+.sp
+Here, the left side will be stripped off all repositories found in the
+right side. Thus \fB/foo/bar\fP and \fBfoo/quux/baz\fP will be listed as
+\fBbar\fP and \fBquux/baz\fP respectively.
.SH MERGE TOOLS
.sp
To merge files Mercurial uses merge tools.
@@ -5176,14 +4319,11 @@ There are some internal merge tools which can be used. The internal
merge tools are:
.INDENT 0.0
.TP
-.B \fBinternal:dump\fP
+.B \fBinternal:merge\fP
.sp
-Creates three versions of the files to merge, containing the
-contents of local, other and base. These files can then be used to
-perform a merge manually. If the file to be merged is named
-\fBa.txt\fP, these files will accordingly be named \fBa.txt.local\fP,
-\fBa.txt.other\fP and \fBa.txt.base\fP and they will be placed in the
-same directory as \fBa.txt\fP.
+Uses the internal non\-interactive simple merge algorithm for merging
+files. It will fail if there are any conflicts and leave markers in
+the partially merged file.
.TP
.B \fBinternal:fail\fP
.sp
@@ -5195,12 +4335,6 @@ used to resolve these conflicts.
.sp
Uses the local version of files as the merged version.
.TP
-.B \fBinternal:merge\fP
-.sp
-Uses the internal non\-interactive simple merge algorithm for merging
-files. It will fail if there are any conflicts and leave markers in
-the partially merged file.
-.TP
.B \fBinternal:other\fP
.sp
Uses the other version of files as the merged version.
@@ -5209,6 +4343,15 @@ Uses the other version of files as the merged version.
.sp
Asks the user which of the local or the other version to keep as
the merged version.
+.TP
+.B \fBinternal:dump\fP
+.sp
+Creates three versions of the files to merge, containing the
+contents of local, other and base. These files can then be used to
+perform a merge manually. If the file to be merged is named
+\fBa.txt\fP, these files will accordingly be named \fBa.txt.local\fP,
+\fBa.txt.other\fP and \fBa.txt.base\fP and they will be placed in the
+same directory as \fBa.txt\fP.
.UNINDENT
.sp
Internal tools are always available and do not require a GUI but will by default
@@ -5290,11 +4433,6 @@ By default, Mercurial treats filenames as shell\-style extended glob
patterns.
.sp
Alternate pattern notations must be specified explicitly.
-.IP Note
-.
-Patterns specified in \fB.hgignore\fP are not rooted.
-Please see \%\fBhg help hgignore\fP\: for details.
-.RE
.sp
To use a plain path name without any pattern matching, start it with
\fBpath:\fP. These path names must completely match starting at the
@@ -5357,136 +4495,6 @@ listfile0:list.txt read list from list.txt with null byte delimiters
.fi
.sp
See also \%\fBhg help filesets\fP\:.
-.SH WORKING WITH PHASES
-.SS What are phases?
-.sp
-Phases are a system for tracking which changesets have been or should
-be shared. This helps prevent common mistakes when modifying history
-(for instance, with the mq or rebase extensions).
-.sp
-Each changeset in a repository is in one of the following phases:
-.INDENT 0.0
-.INDENT 3.5
-.INDENT 0.0
-.IP \(bu 2
-.
-public : changeset is visible on a public server
-.IP \(bu 2
-.
-draft : changeset is not yet published
-.IP \(bu 2
-.
-secret : changeset should not be pushed, pulled, or cloned
-.UNINDENT
-.UNINDENT
-.UNINDENT
-.sp
-These phases are ordered (public < draft < secret) and no changeset
-can be in a lower phase than its ancestors. For instance, if a
-changeset is public, all its ancestors are also public. Lastly,
-changeset phases should only be changed towards the public phase.
-.SS How are phases managed?
-.sp
-For the most part, phases should work transparently. By default, a
-changeset is created in the draft phase and is moved into the public
-phase when it is pushed to another repository.
-.sp
-Once changesets become public, extensions like mq and rebase will
-refuse to operate on them to prevent creating duplicate changesets.
-Phases can also be manually manipulated with the \%\fBhg phase\fP\: command
-if needed. See \%\fBhg help \-v phase\fP\: for examples.
-.SS Phases and servers
-.sp
-Normally, all servers are \fBpublishing\fP by default. This means:
-.sp
-.nf
-.ft C
-\- all draft changesets that are pulled or cloned appear in phase
-public on the client
-
-\- all draft changesets that are pushed appear as public on both
-client and server
-
-\- secret changesets are neither pushed, pulled, or cloned
-.ft P
-.fi
-.IP Note
-.
-Pulling a draft changeset from a publishing server does not mark it
-as public on the server side due to the read\-only nature of pull.
-.RE
-.sp
-Sometimes it may be desirable to push and pull changesets in the draft
-phase to share unfinished work. This can be done by setting a
-repository to disable publishing in its configuration file:
-.sp
-.nf
-.ft C
-[phases]
-publish = False
-.ft P
-.fi
-.sp
-See \%\fBhg help config\fP\: for more information on config files.
-.IP Note
-.
-Servers running older versions of Mercurial are treated as
-publishing.
-.RE
-.SS Examples
-.INDENT 0.0
-.INDENT 3.5
-.INDENT 0.0
-.IP \(bu 2
-.
-list changesets in draft or secret phase:
-.sp
-.nf
-.ft C
-hg log \-r "not public()"
-.ft P
-.fi
-.IP \(bu 2
-.
-change all secret changesets to draft:
-.sp
-.nf
-.ft C
-hg phase \-\-draft "secret()"
-.ft P
-.fi
-.IP \(bu 2
-.
-forcibly move the current changeset and descendants from public to draft:
-.sp
-.nf
-.ft C
-hg phase \-\-force \-\-draft .
-.ft P
-.fi
-.IP \(bu 2
-.
-show a list of changeset revision and phase:
-.sp
-.nf
-.ft C
-hg log \-\-template "{rev} {phase}\en"
-.ft P
-.fi
-.IP \(bu 2
-.
-resynchronize draft changesets relative to a remote repository:
-.sp
-.nf
-.ft C
-hg phase \-fd \(aqoutgoing(URL)\(aq
-.ft P
-.fi
-.UNINDENT
-.UNINDENT
-.UNINDENT
-.sp
-See \%\fBhg help phase\fP\: for more information on manually manipulating phases.
.SH SPECIFYING SINGLE REVISIONS
.sp
Mercurial supports several ways to specify individual revisions.
@@ -5503,13 +4511,13 @@ unique revision identifier and is referred to as a short\-form
identifier. A short\-form identifier is only valid if it is the prefix
of exactly one full\-length identifier.
.sp
-Any other string is treated as a bookmark, tag, or branch name. A
-bookmark is a movable pointer to a revision. A tag is a permanent name
-associated with a revision. A branch name denotes the tipmost revision
-of that branch. Bookmark, tag, and branch names must not contain the ":"
-character.
+Any other string is treated as a tag or branch name. A tag name is a
+symbolic name associated with a revision identifier. A branch name
+denotes the tipmost revision of that branch. Tag and branch names must
+not contain the ":" character.
.sp
-The reserved name "tip" always identifies the most recent revision.
+The reserved name "tip" is a special tag that always identifies the
+most recent revision.
.sp
The reserved name "null" indicates the null revision. This is the
revision of an empty repository, and the parent of revision 0.
@@ -5526,9 +4534,10 @@ revisions.
The language supports a number of predicates which are joined by infix
operators. Parenthesis can be used for grouping.
.sp
-Identifiers such as branch names may need quoting with single or
-double quotes if they contain characters like \fB\-\fP or if they match
-one of the predefined predicates.
+Identifiers such as branch names must be quoted with single or double
+quotes if they contain characters outside of
+\fB[._a\-zA\-Z0\-9\ex80\-\exff]\fP or if they match one of the predefined
+predicates.
.sp
Special characters can be used in quoted identifiers by escaping them,
e.g., \fB\en\fP is interpreted as a newline. To prevent them from being
@@ -5615,49 +4624,18 @@ Changesets that are ancestors of a changeset in set.
.sp
Alias for \fBuser(string)\fP.
.TP
-.B \fBbisect(string)\fP
+.B \fBbisected(string)\fP
.sp
-Changesets marked in the specified bisect status:
-.INDENT 7.0
-.IP \(bu 2
-.
-\fBgood\fP, \fBbad\fP, \fBskip\fP: csets explicitly marked as good/bad/skip
-.IP \(bu 2
-.
-\fBgoods\fP, \fBbads\fP : csets topologicaly good/bad
-.IP \(bu 2
-.
-\fBrange\fP : csets taking part in the bisection
-.IP \(bu 2
-.
-\fBpruned\fP : csets that are goods, bads or skipped
-.IP \(bu 2
-.
-\fBuntested\fP : csets whose fate is yet unknown
-.IP \(bu 2
-.
-\fBignored\fP : csets ignored due to DAG topology
-.IP \(bu 2
-.
-\fBcurrent\fP : the cset currently being bisected
-.UNINDENT
+Changesets marked in the specified bisect state (good, bad, skip).
.TP
.B \fBbookmark([name])\fP
.sp
The named bookmark or all bookmarks.
-.sp
-If \fIname\fP starts with \fIre:\fP, the remainder of the name is treated as
-a regular expression. To match a bookmark that actually starts with \fIre:\fP,
-use the prefix \fIliteral:\fP.
.TP
.B \fBbranch(string or set)\fP
.sp
All changesets belonging to the given branch or the branches of the given
changesets.
-.sp
-If \fIstring\fP starts with \fIre:\fP, the remainder of the name is treated as
-a regular expression. To match a branch that actually starts with \fIre:\fP,
-use the prefix \fIliteral:\fP.
.TP
.B \fBchildren(set)\fP
.sp
@@ -5672,11 +4650,6 @@ Changeset is closed.
Revision contains a file matching pattern. See \%\fBhg help patterns\fP\:
for information about file patterns.
.TP
-.B \fBconverted([id])\fP
-.sp
-Changesets converted from the given identifier in the old repository if
-present, or all converted changesets if no identifier is specified.
-.TP
.B \fBdate(interval)\fP
.sp
Changesets within the interval, see \%\fBhg help dates\fP\:.
@@ -5689,47 +4662,13 @@ Search commit message for string. The match is case\-insensitive.
.sp
Changesets which are descendants of changesets in set.
.TP
-.B \fBdestination([set])\fP
-.sp
-Changesets that were created by a graft, transplant or rebase operation,
-with the given revisions specified as the source. Omitting the optional set
-is the same as passing all().
-.TP
-.B \fBdraft()\fP
-.sp
-Changeset in draft phase.
-.TP
-.B \fBextinct()\fP
-.sp
-Obsolete changesets with obsolete descendants only.
-.TP
-.B \fBextra(label, [value])\fP
-.sp
-Changesets with the given label in the extra metadata, with the given
-optional value.
-.sp
-If \fIvalue\fP starts with \fIre:\fP, the remainder of the value is treated as
-a regular expression. To match a value that actually starts with \fIre:\fP,
-use the prefix \fIliteral:\fP.
-.TP
.B \fBfile(pattern)\fP
.sp
Changesets affecting files matched by pattern.
-.sp
-For a faster but less accurate result, consider using \fBfilelog()\fP
-instead.
.TP
.B \fBfilelog(pattern)\fP
.sp
Changesets connected to the specified filelog.
-.sp
-For performance reasons, \fBfilelog()\fP does not show every changeset
-that affects the requested file(s). See \%\fBhg help log\fP\: for details. For
-a slower, more accurate result, use \fBfile()\fP.
-.TP
-.B \fBfirst(set, [n])\fP
-.sp
-An alias for limit().
.TP
.B \fBfollow([file])\fP
.sp
@@ -5760,38 +4699,13 @@ Revision non\-ambiguously specified by the given hex string prefix.
Search commit message, user name, and names of changed files for
string. The match is case\-insensitive.
.TP
-.B \fBlast(set, [n])\fP
+.B \fBlast(set, n)\fP
.sp
-Last n members of set, defaulting to 1.
+Last n members of set.
.TP
-.B \fBlimit(set, [n])\fP
-.sp
-First n members of set, defaulting to 1.
-.TP
-.B \fBmatching(revision [, field])\fP
-.sp
-Changesets in which a given set of fields match the set of fields in the
-selected revision or set.
+.B \fBlimit(set, n)\fP
.sp
-To match more than one field pass the list of fields to match separated
-by spaces (e.g. \fBauthor description\fP).
-.sp
-Valid fields are most regular revision fields and some special fields.
-.sp
-Regular revision fields are \fBdescription\fP, \fBauthor\fP, \fBbranch\fP,
-\fBdate\fP, \fBfiles\fP, \fBphase\fP, \fBparents\fP, \fBsubstate\fP, \fBuser\fP
-and \fBdiff\fP.
-Note that \fBauthor\fP and \fBuser\fP are synonyms. \fBdiff\fP refers to the
-contents of the revision. Two revisions matching their \fBdiff\fP will
-also match their \fBfiles\fP.
-.sp
-Special fields are \fBsummary\fP and \fBmetadata\fP:
-\fBsummary\fP matches the first line of the description.
-\fBmetadata\fP is equivalent to matching \fBdescription user date\fP
-(i.e. it matches the main metadata fields).
-.sp
-\fBmetadata\fP is the default field which is used when no fields are
-specified. You can match more than one field at a time.
+First n members of set.
.TP
.B \fBmax(set)\fP
.sp
@@ -5809,18 +4723,6 @@ Changeset with lowest revision number in set.
.sp
Changesets modifying files matched by pattern.
.TP
-.B \fBobsolete()\fP
-.sp
-Mutable changeset with a newer version.
-.TP
-.B \fBorigin([set])\fP
-.sp
-Changesets that were specified as a source for the grafts, transplants or
-rebases that created the given revisions. Omitting the optional set is the
-same as passing all(). If a changeset created by these operations is itself
-specified as a source for one of these operations, only the source changeset
-for the first operation is selected.
-.TP
.B \fBoutgoing([path])\fP
.sp
Changesets not found in the specified destination repository, or the
@@ -5842,20 +4744,6 @@ The set of all parents for all changesets in set, or the working directory.
.sp
An empty set, if any revision in set isn\(aqt found; otherwise,
all revisions in set.
-.sp
-If any of specified revisions is not present in the local repository,
-the query is normally aborted. But this predicate allows the query
-to continue even in such cases.
-.TP
-.B \fBpublic()\fP
-.sp
-Changeset in public phase.
-.TP
-.B \fBremote([id [,path]])\fP
-.sp
-Local revision that corresponds to the given identifier in a
-remote repository, if present. Here, the \(aq.\(aq identifier is a
-synonym for the current local branch.
.TP
.B \fBremoves(pattern)\fP
.sp
@@ -5871,11 +4759,7 @@ Reverse order of set.
.TP
.B \fBroots(set)\fP
.sp
-Changesets in set with no parent changeset in set.
-.TP
-.B \fBsecret()\fP
-.sp
-Changeset in secret phase.
+Changesets with no parent changeset in set.
.TP
.B \fBsort(set[, [\-]key...])\fP
.sp
@@ -5905,17 +4789,9 @@ The keys can be:
.sp
The specified tag by name, or all tagged revisions if no name is given.
.TP
-.B \fBunstable()\fP
-.sp
-Non\-obsolete changesets with obsolete ancestors.
-.TP
.B \fBuser(string)\fP
.sp
User name contains string. The match is case\-insensitive.
-.sp
-If \fIstring\fP starts with \fIre:\fP, the remainder of the string is treated as
-a regular expression. To match a user that actually contains \fIre:\fP, use
-the prefix \fIliteral:\fP.
.UNINDENT
.sp
New predicates (known as "aliases") can be defined, using any combination of
@@ -6023,21 +4899,19 @@ hg log \-r "(keyword(bug) or keyword(issue)) and not ancestors(tagged())"
.sp
Subrepositories let you nest external repositories or projects into a
parent Mercurial repository, and make commands operate on them as a
-group.
-.sp
-Mercurial currently supports Mercurial, Git, and Subversion
-subrepositories.
+group. External Mercurial and Subversion projects are currently
+supported.
.sp
Subrepositories are made of three components:
.INDENT 0.0
.IP 1. 3
.
Nested repository checkouts. They can appear anywhere in the
-parent working directory.
+parent working directory, and are Mercurial clones or Subversion
+checkouts.
.IP 2. 3
.
-Nested repository references. They are defined in \fB.hgsub\fP, which
-should be placed in the root of working directory, and
+Nested repository references. They are defined in \fB.hgsub\fP and
tell where the subrepository checkouts come from. Mercurial
subrepositories are referenced like:
.INDENT 3.0
@@ -6047,27 +4921,23 @@ path/to/nested = \%https://example.com/nested/repo/path\:
.UNINDENT
.UNINDENT
.sp
-Git and Subversion subrepos are also supported:
+where \fBpath/to/nested\fP is the checkout location relatively to the
+parent Mercurial root, and \fBhttps://example.com/nested/repo/path\fP
+is the source repository path. The source can also reference a
+filesystem path. Subversion repositories are defined with:
.INDENT 3.0
.INDENT 3.5
.sp
-path/to/nested = [git]git://example.com/nested/repo/path
path/to/nested = [svn]https://example.com/nested/trunk/path
.UNINDENT
.UNINDENT
.sp
-where \fBpath/to/nested\fP is the checkout location relatively to the
-parent Mercurial root, and \fBhttps://example.com/nested/repo/path\fP
-is the source repository path. The source can also reference a
-filesystem path.
-.sp
Note that \fB.hgsub\fP does not exist by default in Mercurial
repositories, you have to create and add it to the parent
repository before using subrepositories.
.IP 3. 3
.
-Nested repository states. They are defined in \fB.hgsubstate\fP, which
-is placed in the root of working directory, and
+Nested repository states. They are defined in \fB.hgsubstate\fP and
capture whatever information is required to restore the
subrepositories to the state they were committed in a parent
repository changeset. Mercurial automatically record the nested
@@ -6077,7 +4947,7 @@ repositories states when committing in the parent repository.
The \fB.hgsubstate\fP file should not be edited manually.
.RE
.UNINDENT
-.SS Adding a Subrepository
+.SH ADDING A SUBREPOSITORY
.sp
If \fB.hgsub\fP does not exist, create it and add it to the parent
repository. Clone or checkout the external projects where you want it
@@ -6085,7 +4955,7 @@ to live in the parent repository. Edit \fB.hgsub\fP and add the
subrepository entry as described above. At this point, the
subrepository is tracked and the next commit will record its state in
\fB.hgsubstate\fP and bind it to the committed changeset.
-.SS Synchronizing a Subrepository
+.SH SYNCHRONIZING A SUBREPOSITORY
.sp
Subrepos do not automatically track the latest changeset of their
sources. Instead, they are updated to the changeset that corresponds
@@ -6096,19 +4966,17 @@ libraries when they update.
Thus, updating subrepos is a manual process. Simply check out target
subrepo at the desired revision, test in the top\-level repo, then
commit in the parent repository to record the new combination.
-.SS Deleting a Subrepository
+.SH DELETING A SUBREPOSITORY
.sp
To remove a subrepository from the parent repository, delete its
reference from \fB.hgsub\fP, then remove its files.
-.SS Interaction with Mercurial Commands
+.SH INTERACTION WITH MERCURIAL COMMANDS
.INDENT 0.0
.TP
.B add
.
add does not recurse in subrepos unless \-S/\-\-subrepos is
-specified. However, if you specify the full path of a file in a
-subrepo, it will be added even without \-S/\-\-subrepos specified.
-Git and Subversion subrepositories are currently silently
+specified. Subversion subrepositories are currently silently
ignored.
.TP
.B archive
@@ -6119,37 +4987,31 @@ archive does not recurse in subrepositories unless
.B commit
.
commit creates a consistent snapshot of the state of the
-entire project and its subrepositories. If any subrepositories
-have been modified, Mercurial will abort. Mercurial can be made
-to instead commit all modified subrepositories by specifying
-\-S/\-\-subrepos, or setting "ui.commitsubrepos=True" in a
-configuration file (see \%\fBhg help config\fP\:). After there are no
-longer any modified subrepositories, it records their state and
-finally commits it in the parent repository.
+entire project and its subrepositories. It does this by first
+attempting to commit all modified subrepositories, then recording
+their state and finally committing it in the parent
+repository. Mercurial can be made to abort if any subrepository
+content is modified by setting "ui.commitsubrepos=no" in a
+configuration file (see \%\fBhg help config\fP\:).
.TP
.B diff
.
diff does not recurse in subrepos unless \-S/\-\-subrepos is
specified. Changes are displayed as usual, on the subrepositories
-elements. Git and Subversion subrepositories are currently
-silently ignored.
-.TP
-.B forget
-.
-forget currently only handles exact file matches in subrepos.
-Git and Subversion subrepositories are currently silently ignored.
+elements. Subversion subrepositories are currently silently
+ignored.
.TP
.B incoming
.
incoming does not recurse in subrepos unless \-S/\-\-subrepos
-is specified. Git and Subversion subrepositories are currently
-silently ignored.
+is specified. Subversion subrepositories are currently silently
+ignored.
.TP
.B outgoing
.
outgoing does not recurse in subrepos unless \-S/\-\-subrepos
-is specified. Git and Subversion subrepositories are currently
-silently ignored.
+is specified. Subversion subrepositories are currently silently
+ignored.
.TP
.B pull
.
@@ -6164,7 +5026,7 @@ case.
Mercurial will automatically push all subrepositories first
when the parent repository is being pushed. This ensures new
subrepository changes are available when referenced by top\-level
-repositories. Push is a no\-op for Subversion subrepositories.
+repositories.
.TP
.B status
.
@@ -6182,7 +5044,7 @@ changeset is not available in the current subrepository, Mercurial
will pull it in first before updating. This means that updating
can require network access when using subrepositories.
.UNINDENT
-.SS Remapping Subrepositories Sources
+.SH REMAPPING SUBREPOSITORIES SOURCES
.sp
A subrepository source location may change during a project life,
invalidating references stored in the parent repository history. To
@@ -6229,10 +5091,6 @@ keywords are usually available for templating a log\-like command:
.
String. The unmodified author of the changeset.
.TP
-.B bisect
-.
-String. The changeset bisection status.
-.TP
.B bookmarks
.
List of strings. Any bookmarks associated with the
@@ -6307,20 +5165,6 @@ Integer. Longest path to the latest tag.
String. The changeset identification hash, as a 40 hexadecimal
digit string.
.TP
-.B parents
-.
-List of strings. The parents of the changeset in "rev:node"
-format. If the changeset has only one "natural" parent (the predecessor
-revision) nothing is shown.
-.TP
-.B phase
-.
-String. The changeset phase name.
-.TP
-.B phaseidx
-.
-Integer. The changeset phase index.
-.TP
.B rev
.
Integer. The repository\-local changeset revision number.
@@ -6381,10 +5225,6 @@ Any text. Extracts the first string that looks like an email
address. Example: \fBUser <user@example.com>\fP becomes
\fBuser@example.com\fP.
.TP
-.B emailuser
-.
-Any text. Returns the user portion of an email address.
-.TP
.B escape
.
Any text. Replaces the special XML/XHTML characters "&", "<"
@@ -6438,8 +5278,7 @@ XML entities.
.TP
.B person
.
-Any text. Returns the name before an email address,
-interpreting it as per RFC 5322.
+Any text. Returns the text before an email address.
.TP
.B rfc3339date
.
@@ -6456,13 +5295,6 @@ headers: "Tue, 18 Aug 2009 13:00:13 +0200".
Changeset hash. Returns the short form of a changeset hash,
i.e. a 12 hexadecimal digit string.
.TP
-.B shortbisect
-.
-Any text. Treats \fItext\fP as a bisection status, and
-returns a single\-character representing the status (G: good, B: bad,
-S: skipped, U: untested, I: ignored). Returns single space if \fItext\fP
-is not a valid bisection status.
-.TP
.B shortdate
.
Date. Returns a date like "2006\-09\-18".
@@ -6493,8 +5325,7 @@ Any text. Escapes all "special" characters. For example,
.TP
.B user
.
-Any text. Returns a short representation of a user name or email
-address.
+Any text. Returns the user portion of an email address.
.UNINDENT
.SH URL PATHS
.sp
@@ -6652,9 +5483,6 @@ a comma\-separated list containing users and groups, or
.
an asterisk, to match anyone;
.UNINDENT
-.sp
-You can add the "!" prefix to a user or group name to invert the sense
-of the match.
.SS Path\-based Access Control
.sp
Use the \fBacl.deny\fP and \fBacl.allow\fP sections to have path\-based
@@ -6743,54 +5571,14 @@ docs/** = doc_writer
# under the "images" folder:
images/** = jack, @designers
-# Everyone (except for "user6" and "@hg\-denied" \- see acl.deny above)
-# will have write access to any file under the "resources" folder
-# (except for 1 file. See acl.deny):
+# Everyone (except for "user6" \- see acl.deny above) will have write
+# access to any file under the "resources" folder (except for 1
+# file. See acl.deny):
src/main/resources/** = *
\&.hgtags = release_engineer
.ft P
.fi
-.SS Examples using the "!" prefix
-.sp
-Suppose there\(aqs a branch that only a given user (or group) should be able to
-push to, and you don\(aqt want to restrict access to any other branch that may
-be created.
-.sp
-The "!" prefix allows you to prevent anyone except a given user or group to
-push changesets in a given branch or path.
-.sp
-In the examples below, we will:
-1) Deny access to branch "ring" to anyone but user "gollum"
-2) Deny access to branch "lake" to anyone but members of the group "hobbit"
-3) Deny access to a file to anyone but user "gollum"
-.sp
-.nf
-.ft C
-[acl.allow.branches]
-# Empty
-
-[acl.deny.branches]
-
-# 1) only \(aqgollum\(aq can commit to branch \(aqring\(aq;
-# \(aqgollum\(aq and anyone else can still commit to any other branch.
-ring = !gollum
-
-# 2) only members of the group \(aqhobbit\(aq can commit to branch \(aqlake\(aq;
-# \(aqhobbit\(aq members and anyone else can still commit to any other branch.
-lake = !@hobbit
-
-# You can also deny access based on file paths:
-
-[acl.allow]
-# Empty
-
-[acl.deny]
-# 3) only \(aqgollum\(aq can change the file below;
-# \(aqgollum\(aq and anyone else can still change any other file.
-/misty/mountains/cave/ring = !gollum
-.ft P
-.fi
.SS bugzilla
.sp
hooks for integrating with the Bugzilla bug tracker
@@ -6799,8 +5587,7 @@ This hook extension adds comments on bugs in Bugzilla when changesets
that refer to bugs by Bugzilla ID are seen. The comment is formatted using
the Mercurial template mechanism.
.sp
-The bug references can optionally include an update for Bugzilla of the
-hours spent working on the bug. Bugs can also be marked fixed.
+The hook does not change bug status.
.sp
Three basic modes of access to Bugzilla are provided:
.INDENT 0.0
@@ -6825,13 +5612,13 @@ permission to read Bugzilla configuration details and the necessary
MySQL user and password to have full access rights to the Bugzilla
database. For these reasons this access mode is now considered
deprecated, and will not be updated for new Bugzilla versions going
-forward. Only adding comments is supported in this access mode.
+forward.
.sp
Access via XMLRPC needs a Bugzilla username and password to be specified
in the configuration. Comments are added under that username. Since the
configuration must be readable by all Mercurial users, it is recommended
that the rights of that user are restricted in Bugzilla to the minimum
-necessary to add comments. Marking bugs fixed requires Bugzilla 4.0 and later.
+necessary to add comments.
.sp
Access via XMLRPC/email uses XMLRPC to query Bugzilla, but sends
email to the Bugzilla email interface to submit comments to bugs.
@@ -6839,8 +5626,7 @@ The From: address in the email is set to the email address of the Mercurial
user, so the comment appears to come from the Mercurial user. In the event
that the Mercurial user email is not recognised by Bugzilla as a Bugzilla
user, the email associated with the Bugzilla username used to log into
-Bugzilla is used instead as the source of the comment. Marking bugs fixed
-works on all supported Bugzilla versions.
+Bugzilla is used instead as the source of the comment.
.sp
Configuration items common to all access modes:
.INDENT 0.0
@@ -6875,37 +5661,11 @@ including 2.18.
.TP
.B bugzilla.regexp
.
-Regular expression to match bug IDs for update in changeset commit message.
-It must contain one "()" named group \fB<ids>\fP containing the bug
-IDs separated by non\-digit characters. It may also contain
-a named group \fB<hours>\fP with a floating\-point number giving the
-hours worked on the bug. If no named groups are present, the first
-"()" group is assumed to contain the bug IDs, and work time is not
-updated. The default expression matches \fBBug 1234\fP, \fBBug no. 1234\fP,
-\fBBug number 1234\fP, \fBBugs 1234,5678\fP, \fBBug 1234 and 5678\fP and
-variations thereof, followed by an hours number prefixed by \fBh\fP or
-\fBhours\fP, e.g. \fBhours 1.5\fP. Matching is case insensitive.
-.TP
-.B bugzilla.fixregexp
-.
-Regular expression to match bug IDs for marking fixed in changeset
-commit message. This must contain a "()" named group \fB<ids>\(ga containing
-the bug IDs separated by non\-digit characters. It may also contain
-a named group \(ga\(ga<hours>\fP with a floating\-point number giving the
-hours worked on the bug. If no named groups are present, the first
-"()" group is assumed to contain the bug IDs, and work time is not
-updated. The default expression matches \fBFixes 1234\fP, \fBFixes bug 1234\fP,
-\fBFixes bugs 1234,5678\fP, \fBFixes 1234 and 5678\fP and
-variations thereof, followed by an hours number prefixed by \fBh\fP or
-\fBhours\fP, e.g. \fBhours 1.5\fP. Matching is case insensitive.
-.TP
-.B bugzilla.fixstatus
-.
-The status to set a bug to when marking fixed. Default \fBRESOLVED\fP.
-.TP
-.B bugzilla.fixresolution
-.
-The resolution to set a bug to when marking fixed. Default \fBFIXED\fP.
+Regular expression to match bug IDs in changeset commit message.
+Must contain one "()" group. The default expression matches \fBBug
+1234\fP, \fBBug no. 1234\fP, \fBBug number 1234\fP, \fBBugs 1234,5678\fP,
+\fBBug 1234 and 5678\fP and variations thereof. Matching is case
+insensitive.
.TP
.B bugzilla.style
.
@@ -7154,10 +5914,7 @@ Changeset commit comment. Bug 1234.
.fi
.SS children
.sp
-command to display child changesets (DEPRECATED)
-.sp
-This extension is deprecated. You should use \%\fBhg log \-r
-"children(REV)"\fP\: instead.
+command to display child changesets
.SS Commands
.SS children
.sp
@@ -7338,9 +6095,6 @@ branches.active = none
branches.closed = black bold
branches.current = green
branches.inactive = none
-
-tags.normal = green
-tags.local = black bold
.ft P
.fi
.sp
@@ -7585,8 +6339,8 @@ converting from and to Mercurial. Default is False.
.B convert.hg.saverev
.
store original revision ID in changeset
-(forces target IDs to change). It takes a boolean argument and
-defaults to False.
+(forces target IDs to change). It takes and boolean argument
+and defaults to False.
.TP
.B convert.hg.startrev
.
@@ -7648,7 +6402,7 @@ delete them.
.B hook.cvschangesets
.
Specify a Python function to be called after
-the changesets are calculated from the CVS log. The
+the changesets are calculated from the the CVS log. The
function is passed a list with the changeset entries, and can
modify the changesets in\-place, or add or delete them.
.UNINDENT
@@ -7846,10 +6600,9 @@ The rules will first apply when files are touched in the working
copy, e.g. by updating to null and back to tip to touch all files.
.RE
.sp
-The extension uses an optional \fB[eol]\fP section read from both the
-normal Mercurial configuration files and the \fB.hgeol\fP file, with the
-latter overriding the former. You can use that section to control the
-overall behavior. There are three settings:
+The extension uses an optional \fB[eol]\fP section in your hgrc file
+(not the \fB.hgeol\fP file) for settings that control the overall
+behavior. There are two settings:
.INDENT 0.0
.IP \(bu 2
.
@@ -7864,11 +6617,6 @@ the extension convert files with inconsistent EOLs. Inconsistent
means that there is both \fBCRLF\fP and \fBLF\fP present in the file.
Such files are normally not touched under the assumption that they
have mixed EOLs on purpose.
-.IP \(bu 2
-.
-\fBeol.fix\-trailing\-newline\fP (default False) can be set to True to
-ensure that converted files end with a EOL character (either \fB\en\fP
-or \fB\er\en\fP as per the configured patterns).
.UNINDENT
.sp
The extension provides \fBcleverencode:\fP and \fBcleverdecode:\fP filters
@@ -7919,8 +6667,7 @@ meld =
# (see http://www.vim.org/scripts/script.php?script_id=102) Non
# English user, be sure to put "let g:DirDiffDynamicDiffText = 1" in
# your .vimrc
-vimdiff = gvim \-f "+next" \e
- "+execute \(aqDirDiff\(aq fnameescape(argv(0)) fnameescape(argv(1))"
+vimdiff = gvim \-f \(aq+next\(aq \(aq+execute "DirDiff" argv(0) argv(1)\(aq
.ft P
.fi
.sp
@@ -8004,45 +6751,9 @@ include names matching the given patterns
.
exclude names matching the given patterns
.UNINDENT
-.SS factotum
-.sp
-http authentication with factotum
-.sp
-This extension allows the factotum(4) facility on Plan 9 from Bell Labs
-platforms to provide authentication information for HTTP access. Configuration
-entries specified in the auth section as well as authentication information
-provided in the repository URL are fully supported. If no prefix is specified,
-a value of "*" will be assumed.
-.sp
-By default, keys are specified as:
-.sp
-.nf
-.ft C
-proto=pass service=hg prefix=<prefix> user=<username> !password=<password>
-.ft P
-.fi
-.sp
-If the factotum extension is unable to read the required key, one will be
-requested interactively.
-.sp
-A configuration section is available to customize runtime behavior. By
-default, these entries are:
-.sp
-.nf
-.ft C
-[factotum]
-executable = /bin/auth/factotum
-mountpoint = /mnt/factotum
-service = hg
-.ft P
-.fi
-.sp
-The executable entry defines the full path to the factotum binary. The
-mountpoint entry defines the path to the factotum file service. Lastly, the
-service entry controls the service name used when reading keys.
.SS fetch
.sp
-pull, update and merge in one command (DEPRECATED)
+pull, update and merge in one command
.SS Commands
.SS fetch
.sp
@@ -8060,9 +6771,10 @@ automatically merged, and the result of the merge is committed.
Otherwise, the working directory is updated to include the new
changes.
.sp
-When a merge is needed, the working directory is first updated to
-the newly pulled changes. Local changes are then merged into the
-pulled changes. To switch the merge order, use \-\-switch\-parent.
+When a merge occurs, the newly pulled changes are assumed to be
+"authoritative". The head of the new changes is used as the first
+parent, with local changes as the second. To switch the merge
+order, use \-\-switch\-parent.
.sp
See \%\fBhg help dates\fP\: for a list of formats valid for \-d/\-\-date.
.sp
@@ -8123,7 +6835,7 @@ commands to sign and verify changesets
.sp
.nf
.ft C
-hg sigcheck REV
+hg sigcheck REVISION
.ft P
.fi
.sp
@@ -8132,7 +6844,7 @@ verify all the signatures there may be for a particular revision
.sp
.nf
.ft C
-hg sign [OPTION]... [REV]...
+hg sign [OPTION]... [REVISION]...
.ft P
.fi
.sp
@@ -8206,81 +6918,17 @@ directory.
Options:
.INDENT 0.0
.TP
-.B \-f, \-\-follow
-.
-follow changeset history, or file history across copies and renames
-.TP
-.B \-\-follow\-first
-.
-only follow the first parent of merge changesets (DEPRECATED)
-.TP
-.B \-d, \-\-date
-.
-show revisions matching date spec
-.TP
-.B \-C, \-\-copies
-.
-show copied files
-.TP
-.B \-k, \-\-keyword
-.
-do case\-insensitive search for a given text
-.TP
-.B \-r, \-\-rev
-.
-show the specified revision or range
-.TP
-.B \-\-removed
-.
-include revisions where files were removed
-.TP
-.B \-m, \-\-only\-merges
-.
-show only merges (DEPRECATED)
-.TP
-.B \-u, \-\-user
-.
-revisions committed by user
-.TP
-.B \-\-only\-branch
-.
-show only changesets within the given named branch (DEPRECATED)
-.TP
-.B \-b, \-\-branch
-.
-show changesets within the given named branch
-.TP
-.B \-P, \-\-prune
-.
-do not display revision or any of its ancestors
-.TP
-.B \-\-hidden
-.
-show hidden changesets (DEPRECATED)
-.TP
-.B \-p, \-\-patch
-.
-show patch
-.TP
-.B \-g, \-\-git
-.
-use git extended diff format
-.TP
.B \-l, \-\-limit
.
limit number of changes displayed
.TP
-.B \-M, \-\-no\-merges
-.
-do not show merges
-.TP
-.B \-\-stat
+.B \-p, \-\-patch
.
-output diffstat\-style summary of changes
+show patch
.TP
-.B \-G, \-\-graph
+.B \-r, \-\-rev
.
-show the revision DAG
+show the specified revision or range
.TP
.B \-\-style
.
@@ -8289,14 +6937,6 @@ display using template map file
.B \-\-template
.
display with template
-.TP
-.B \-I, \-\-include
-.
-include names matching the given patterns
-.TP
-.B \-X, \-\-exclude
-.
-exclude names matching the given patterns
.UNINDENT
.SS hgcia
.sp
@@ -8412,206 +7052,6 @@ pygments_style = <style>
.fi
.sp
The default is \(aqcolorful\(aq.
-.SS histedit
-.sp
-interactive history editing
-.sp
-With this extension installed, Mercurial gains one new command: histedit. Usage
-is as follows, assuming the following history:
-.sp
-.nf
-.ft C
-@ 3[tip] 7c2fd3b9020c 2009\-04\-27 18:04 \-0500 durin42
-| Add delta
-|
-o 2 030b686bedc4 2009\-04\-27 18:04 \-0500 durin42
-| Add gamma
-|
-o 1 c561b4e977df 2009\-04\-27 18:04 \-0500 durin42
-| Add beta
-|
-o 0 d8d2fcd0e319 2009\-04\-27 18:04 \-0500 durin42
- Add alpha
-.ft P
-.fi
-.sp
-If you were to run \fBhg histedit c561b4e977df\fP, you would see the following
-file open in your editor:
-.sp
-.nf
-.ft C
-pick c561b4e977df Add beta
-pick 030b686bedc4 Add gamma
-pick 7c2fd3b9020c Add delta
-
-# Edit history between 633536316234 and 7c2fd3b9020c
-#
-# Commands:
-# p, pick = use commit
-# e, edit = use commit, but stop for amending
-# f, fold = use commit, but fold into previous commit
-# d, drop = remove commit from history
-# m, mess = edit message without changing commit content
-#
-.ft P
-.fi
-.sp
-In this file, lines beginning with \fB#\fP are ignored. You must specify a rule
-for each revision in your history. For example, if you had meant to add gamma
-before beta, and then wanted to add delta in the same revision as beta, you
-would reorganize the file to look like this:
-.sp
-.nf
-.ft C
-pick 030b686bedc4 Add gamma
-pick c561b4e977df Add beta
-fold 7c2fd3b9020c Add delta
-
-# Edit history between 633536316234 and 7c2fd3b9020c
-#
-# Commands:
-# p, pick = use commit
-# e, edit = use commit, but stop for amending
-# f, fold = use commit, but fold into previous commit
-# d, drop = remove commit from history
-# m, mess = edit message without changing commit content
-#
-.ft P
-.fi
-.sp
-At which point you close the editor and \fBhistedit\fP starts working. When you
-specify a \fBfold\fP operation, \fBhistedit\fP will open an editor when it folds
-those revisions together, offering you a chance to clean up the commit message:
-.sp
-.nf
-.ft C
-Add beta
-***
-Add delta
-.ft P
-.fi
-.sp
-Edit the commit message to your liking, then close the editor. For
-this example, let\(aqs assume that the commit message was changed to
-\fBAdd beta and delta.\fP After histedit has run and had a chance to
-remove any old or temporary revisions it needed, the history looks
-like this:
-.sp
-.nf
-.ft C
-@ 2[tip] 989b4d060121 2009\-04\-27 18:04 \-0500 durin42
-| Add beta and delta.
-|
-o 1 081603921c3f 2009\-04\-27 18:04 \-0500 durin42
-| Add gamma
-|
-o 0 d8d2fcd0e319 2009\-04\-27 18:04 \-0500 durin42
- Add alpha
-.ft P
-.fi
-.sp
-Note that \fBhistedit\fP does \fInot\fP remove any revisions (even its own temporary
-ones) until after it has completed all the editing operations, so it will
-probably perform several strip operations when it\(aqs done. For the above example,
-it had to run strip twice. Strip can be slow depending on a variety of factors,
-so you might need to be a little patient. You can choose to keep the original
-revisions by passing the \fB\-\-keep\fP flag.
-.sp
-The \fBedit\fP operation will drop you back to a command prompt,
-allowing you to edit files freely, or even use \fBhg record\fP to commit
-some changes as a separate commit. When you\(aqre done, any remaining
-uncommitted changes will be committed as well. When done, run \fBhg
-histedit \-\-continue\fP to finish this step. You\(aqll be prompted for a
-new commit message, but the default commit message will be the
-original message for the \fBedit\fP ed revision.
-.sp
-The \fBmessage\fP operation will give you a chance to revise a commit
-message without changing the contents. It\(aqs a shortcut for doing
-\fBedit\fP immediately followed by \fIhg histedit \-\-continue\(ga\fP.
-.sp
-If \fBhistedit\fP encounters a conflict when moving a revision (while
-handling \fBpick\fP or \fBfold\fP), it\(aqll stop in a similar manner to
-\fBedit\fP with the difference that it won\(aqt prompt you for a commit
-message when done. If you decide at this point that you don\(aqt like how
-much work it will be to rearrange history, or that you made a mistake,
-you can use \fBhg histedit \-\-abort\fP to abandon the new changes you
-have made and return to the state before you attempted to edit your
-history.
-.sp
-If we clone the example repository above and add three more changes, such that
-we have the following history:
-.sp
-.nf
-.ft C
-@ 6[tip] 038383181893 2009\-04\-27 18:04 \-0500 stefan
-| Add theta
-|
-o 5 140988835471 2009\-04\-27 18:04 \-0500 stefan
-| Add eta
-|
-o 4 122930637314 2009\-04\-27 18:04 \-0500 stefan
-| Add zeta
-|
-o 3 836302820282 2009\-04\-27 18:04 \-0500 stefan
-| Add epsilon
-|
-o 2 989b4d060121 2009\-04\-27 18:04 \-0500 durin42
-| Add beta and delta.
-|
-o 1 081603921c3f 2009\-04\-27 18:04 \-0500 durin42
-| Add gamma
-|
-o 0 d8d2fcd0e319 2009\-04\-27 18:04 \-0500 durin42
- Add alpha
-.ft P
-.fi
-.sp
-If you run \fBhg histedit \-\-outgoing\fP on the clone then it is the same
-as running \fBhg histedit 836302820282\fP. If you need plan to push to a
-repository that Mercurial does not detect to be related to the source
-repo, you can add a \fB\-\-force\fP option.
-.SS Commands
-.SS histedit
-.sp
-.nf
-.ft C
-hg histedit [PARENT]
-.ft P
-.fi
-.sp
-interactively edit changeset history
-.sp
-Options:
-.INDENT 0.0
-.TP
-.B \-\-commands
-.
-Read history edits from the specified file.
-.TP
-.B \-c, \-\-continue
-.
-continue an edit already in progress
-.TP
-.B \-k, \-\-keep
-.
-don\(aqt strip old nodes after edit is complete
-.TP
-.B \-\-abort
-.
-abort an edit in progress
-.TP
-.B \-o, \-\-outgoing
-.
-changesets not found in destination
-.TP
-.B \-f, \-\-force
-.
-force outgoing even for unrelated repositories
-.TP
-.B \-r, \-\-rev
-.
-first revision to be edited
-.UNINDENT
.SS inotify
.sp
accelerate status report using Linux\(aqs inotify service
@@ -8863,138 +7303,6 @@ include names matching the given patterns
.
exclude names matching the given patterns
.UNINDENT
-.SS largefiles
-.sp
-track large binary files
-.sp
-Large binary files tend to be not very compressible, not very
-diffable, and not at all mergeable. Such files are not handled
-efficiently by Mercurial\(aqs storage format (revlog), which is based on
-compressed binary deltas; storing large binary files as regular
-Mercurial files wastes bandwidth and disk space and increases
-Mercurial\(aqs memory usage. The largefiles extension addresses these
-problems by adding a centralized client\-server layer on top of
-Mercurial: largefiles live in a \fIcentral store\fP out on the network
-somewhere, and you only fetch the revisions that you need when you
-need them.
-.sp
-largefiles works by maintaining a "standin file" in .hglf/ for each
-largefile. The standins are small (41 bytes: an SHA\-1 hash plus
-newline) and are tracked by Mercurial. Largefile revisions are
-identified by the SHA\-1 hash of their contents, which is written to
-the standin. largefiles uses that revision ID to get/put largefile
-revisions from/to the central store. This saves both disk space and
-bandwidth, since you don\(aqt need to retrieve all historical revisions
-of large files when you clone or pull.
-.sp
-To start a new repository or add new large binary files, just add
-\-\-large to your \%\fBhg add\fP\: command. For example:
-.sp
-.nf
-.ft C
-$ dd if=/dev/urandom of=randomdata count=2000
-$ hg add \-\-large randomdata
-$ hg commit \-m \(aqadd randomdata as a largefile\(aq
-.ft P
-.fi
-.sp
-When you push a changeset that adds/modifies largefiles to a remote
-repository, its largefile revisions will be uploaded along with it.
-Note that the remote Mercurial must also have the largefiles extension
-enabled for this to work.
-.sp
-When you pull a changeset that affects largefiles from a remote
-repository, Mercurial behaves as normal. However, when you update to
-such a revision, any largefiles needed by that revision are downloaded
-and cached (if they have never been downloaded before). This means
-that network access may be required to update to changesets you have
-not previously updated to.
-.sp
-If you already have large files tracked by Mercurial without the
-largefiles extension, you will need to convert your repository in
-order to benefit from largefiles. This is done with the
-\%\fBhg lfconvert\fP\: command:
-.sp
-.nf
-.ft C
-$ hg lfconvert \-\-size 10 oldrepo newrepo
-.ft P
-.fi
-.sp
-In repositories that already have largefiles in them, any new file
-over 10MB will automatically be added as a largefile. To change this
-threshold, set \fBlargefiles.minsize\fP in your Mercurial config file
-to the minimum size in megabytes to track as a largefile, or use the
-\-\-lfsize option to the add command (also in megabytes):
-.sp
-.nf
-.ft C
-[largefiles]
-minsize = 2
-
-$ hg add \-\-lfsize 2
-.ft P
-.fi
-.sp
-The \fBlargefiles.patterns\fP config option allows you to specify a list
-of filename patterns (see \%\fBhg help patterns\fP\:) that should always be
-tracked as largefiles:
-.sp
-.nf
-.ft C
-[largefiles]
-patterns =
- *.jpg
- re:.*\e.(png|bmp)$
- library.zip
- content/audio/*
-.ft P
-.fi
-.sp
-Files that match one of these patterns will be added as largefiles
-regardless of their size.
-.sp
-The \fBlargefiles.minsize\fP and \fBlargefiles.patterns\fP config options
-will be ignored for any repositories not already containing a
-largefile. To add the first largefile to a repository, you must
-explicitly do so with the \-\-large flag passed to the \%\fBhg add\fP\:
-command.
-.SS Commands
-.SS lfconvert
-.sp
-.nf
-.ft C
-hg lfconvert SOURCE DEST [FILE ...]
-.ft P
-.fi
-.sp
-Convert repository SOURCE to a new repository DEST, identical to
-SOURCE except that certain files will be converted as largefiles:
-specifically, any file that matches any PATTERN \fIor\fP whose size is
-above the minimum size threshold is converted as a largefile. The
-size used to determine whether or not to track a file as a
-largefile is the size of the first version of the file. The
-minimum size can be specified either with \-\-size or in
-configuration as \fBlargefiles.size\fP.
-.sp
-After running this command you will need to make sure that
-largefiles is enabled anywhere you intend to push the new
-repository.
-.sp
-Use \-\-to\-normal to convert largefiles back to normal files; after
-this, the DEST repository can be used without largefiles at all.
-.sp
-Options:
-.INDENT 0.0
-.TP
-.B \-s, \-\-size
-.
-minimum size (MB) for files to be converted as largefiles
-.TP
-.B \-\-to\-normal
-.
-convert from a largefiles repo to a normal repo
-.UNINDENT
.SS mq
.sp
manage a stack of patches
@@ -9038,33 +7346,8 @@ preserving existing git patches upon qrefresh. If set to \(aqyes\(aq or
\(aqno\(aq, mq will override the [diff] section and always generate git or
regular patches, possibly losing data in the second case.
.sp
-It may be desirable for mq changesets to be kept in the secret phase (see
-\%\fBhg help phases\fP\:), which can be enabled with the following setting:
-.sp
-.nf
-.ft C
-[mq]
-secret = True
-.ft P
-.fi
-.sp
You will by default be managing a patch queue named "patches". You can
create other, independent patch queues with the \%\fBhg qqueue\fP\: command.
-.sp
-If the working directory contains uncommitted files, qpush, qpop and
-qgoto abort immediately. If \-f/\-\-force is used, the changes are
-discarded. Setting:
-.sp
-.nf
-.ft C
-[mq]
-keepchanges = True
-.ft P
-.fi
-.sp
-make them behave as if \-\-keep\-changes were passed, and non\-conflicting
-local changes will be tolerated and preserved. If incompatible options
-such as \-f/\-\-force or \-\-exact are passed, this setting is ignored.
.SS Commands
.SS qapplied
.sp
@@ -9081,7 +7364,7 @@ Options:
.TP
.B \-1, \-\-last
.
-show only the preceding applied patch
+show only the last patch
.TP
.B \-s, \-\-summary
.
@@ -9161,10 +7444,6 @@ mark new/missing files as added/removed before committing
.
mark a branch as closed, hiding it from the branch list
.TP
-.B \-\-amend
-.
-amend the parent of the working dir
-.TP
.B \-I, \-\-include
.
include names matching the given patterns
@@ -9188,10 +7467,6 @@ record the specified date as commit date
.B \-u, \-\-user
.
record the specified user as committer
-.TP
-.B \-S, \-\-subrepos
-.
-recurse into subrepositories
.sp
aliases: qci
.UNINDENT
@@ -9203,9 +7478,8 @@ hg qdelete [\-k] [PATCH]...
.ft P
.fi
.sp
-The patches must not be applied, and at least one patch is required. Exact
-patch identifiers must be given. With \-k/\-\-keep, the patch files are
-preserved in the patch directory.
+The patches must not be applied, and at least one patch is required. With
+\-k/\-\-keep, the patch files are preserved in the patch directory.
.sp
To stop managing a patch and move it into permanent history,
use the \%\fBhg qfinish\fP\: command.
@@ -9376,17 +7650,9 @@ Returns 0 on success.
Options:
.INDENT 0.0
.TP
-.B \-\-keep\-changes
-.
-tolerate non\-conflicting local changes
-.TP
.B \-f, \-\-force
.
overwrite any local changes
-.TP
-.B \-\-no\-backup
-.
-do not save backup copies of files
.UNINDENT
.SS qguard
.sp
@@ -9443,7 +7709,7 @@ Returns 0 on success.
.sp
.nf
.ft C
-hg qimport [\-e] [\-n NAME] [\-f] [\-g] [\-P] [\-r REV]... [FILE]...
+hg qimport [\-e] [\-n NAME] [\-f] [\-g] [\-P] [\-r REV]... FILE...
.ft P
.fi
.sp
@@ -9634,14 +7900,9 @@ hg qpop [\-a] [\-f] [PATCH | INDEX]
.ft P
.fi
.sp
-Without argument, pops off the top of the patch stack. If given a
-patch name, keeps popping off patches until the named patch is at
-the top of the stack.
-.sp
-By default, abort if the working directory contains uncommitted
-changes. With \-\-keep\-changes, abort only if the uncommitted files
-overlap with patched files. With \-f/\-\-force, backup and discard
-changes made to such files.
+By default, pops off the top of the patch stack. If given a patch
+name, keeps popping off patches until the named patch is at the
+top of the stack.
.sp
Return 0 on success.
.sp
@@ -9656,17 +7917,9 @@ pop all patches
.
queue name to pop (DEPRECATED)
.TP
-.B \-\-keep\-changes
-.
-tolerate non\-conflicting local changes
-.TP
.B \-f, \-\-force
.
forget any local changes to patched files
-.TP
-.B \-\-no\-backup
-.
-do not save backup copies of files
.UNINDENT
.SS qprev
.sp
@@ -9693,20 +7946,14 @@ hg qpush [\-f] [\-l] [\-a] [\-\-move] [PATCH | INDEX]
.ft P
.fi
.sp
-By default, abort if the working directory contains uncommitted
-changes. With \-\-keep\-changes, abort only if the uncommitted files
-overlap with patched files. With \-f/\-\-force, backup and patch over
-uncommitted changes.
+When \-f/\-\-force is applied, all local changes in patched files
+will be lost.
.sp
Return 0 on success.
.sp
Options:
.INDENT 0.0
.TP
-.B \-\-keep\-changes
-.
-tolerate non\-conflicting local changes
-.TP
.B \-f, \-\-force
.
apply on top of local changes
@@ -9734,10 +7981,6 @@ merge queue name (DEPRECATED)
.B \-\-move
.
reorder patch series and apply only the patch
-.TP
-.B \-\-no\-backup
-.
-do not save backup copies of files
.UNINDENT
.SS qqueue
.sp
@@ -9752,8 +7995,7 @@ new patch queues and deleting existing ones.
.sp
Omitting a queue name or specifying \-l/\-\-list will show you the registered
queues \- by default the "normal" patches queue is registered. The currently
-active queue will be marked with "(active)". Specifying \-\-active will print
-only the name of the active queue.
+active queue will be marked with "(active)".
.sp
To create a new queue, use \-c/\-\-create. The queue is automatically made
active, except in the case where there are applied patches from the
@@ -9772,10 +8014,6 @@ Options:
.
list all available queues
.TP
-.B \-\-active
-.
-print name of active queue
-.TP
.B \-c, \-\-create
.
create new queue
@@ -10067,7 +8305,7 @@ print first line of patch header
.sp
.nf
.ft C
-hg strip [\-k] [\-f] [\-n] [\-B bookmark] [\-r] REV...
+hg strip [\-k] [\-f] [\-n] REV...
.ft P
.fi
.sp
@@ -10091,19 +8329,11 @@ restore.
Use the \-\-no\-backup option to discard the backup bundle once the
operation completes.
.sp
-Strip is not a history\-rewriting operation and can be used on
-changesets in the public phase. But if the stripped changesets have
-been pushed to a remote repository you will likely pull them again.
-.sp
Return 0 on success.
.sp
Options:
.INDENT 0.0
.TP
-.B \-r, \-\-rev
-.
-strip specified revision (optional, can specify revisions without this option)
-.TP
.B \-f, \-\-force
.
force removal of changesets, discard uncommitted changes (no backup)
@@ -10112,7 +8342,7 @@ force removal of changesets, discard uncommitted changes (no backup)
.
bundle only changesets with local revision number greater than REV which are not descendants of REV (DEPRECATED)
.TP
-.B \-\-no\-backup
+.B \-n, \-\-no\-backup
.
no backups
.TP
@@ -10120,189 +8350,91 @@ no backups
.
no backups (DEPRECATED)
.TP
-.B \-n
-.
-ignored (DEPRECATED)
-.TP
.B \-k, \-\-keep
.
do not modify working copy during strip
-.TP
-.B \-B, \-\-bookmark
-.
-remove revs only reachable from given bookmark
.UNINDENT
.SS notify
.sp
-hooks for sending email push notifications
+hooks for sending email notifications at commit/push time
.sp
-This extension implements hooks to send email notifications when
-changesets are sent from or received by the local repository.
+Subscriptions can be managed through a hgrc file. Default mode is to
+print messages to stdout, for testing and configuring.
.sp
-First, enable the extension as explained in \%\fBhg help extensions\fP\:, and
-register the hook you want to run. \fBincoming\fP and \fBchangegroup\fP hooks
-are run when changesets are received, while \fBoutgoing\fP hooks are for
-changesets sent to another repository:
+To use, configure the notify extension and enable it in hgrc like
+this:
.sp
.nf
.ft C
+[extensions]
+notify =
+
[hooks]
# one email for each incoming changeset
incoming.notify = python:hgext.notify.hook
-# one email for all incoming changesets
+# batch emails when many changesets incoming at one time
changegroup.notify = python:hgext.notify.hook
-
-# one email for all outgoing changesets
+# batch emails when many changesets outgoing at one time (client side)
outgoing.notify = python:hgext.notify.hook
+
+[notify]
+# config items go here
.ft P
.fi
.sp
-This registers the hooks. To enable notification, subscribers must
-be assigned to repositories. The \fB[usersubs]\fP section maps multiple
-repositories to a given recipient. The \fB[reposubs]\fP section maps
-multiple recipients to a single repository:
+Required configuration items:
.sp
.nf
.ft C
-[usersubs]
-# key is subscriber email, value is a comma\-separated list of repo glob
-# patterns
-user@host = pattern
-
-[reposubs]
-# key is glob pattern, value is a comma\-separated list of subscriber
-# emails
-pattern = user@host
+config = /path/to/file # file containing subscriptions
.ft P
.fi
.sp
-Glob patterns are matched against absolute path to repository
-root.
-.sp
-In order to place them under direct user management, \fB[usersubs]\fP and
-\fB[reposubs]\fP sections may be placed in a separate \fBhgrc\fP file and
-incorporated by reference:
+Optional configuration items:
.sp
.nf
.ft C
-[notify]
-config = /path/to/subscriptionsfile
+test = True # print messages to stdout for testing
+strip = 3 # number of slashes to strip for url paths
+domain = example.com # domain to use if committer missing domain
+style = ... # style file to use when formatting email
+template = ... # template to use when formatting email
+incoming = ... # template to use when run as incoming hook
+outgoing = ... # template to use when run as outgoing hook
+changegroup = ... # template to use when run as changegroup hook
+maxdiff = 300 # max lines of diffs to include (0=none, \-1=all)
+maxsubject = 67 # truncate subject line longer than this
+diffstat = True # add a diffstat before the diff content
+sources = serve # notify if source of incoming changes in this list
+ # (serve == ssh or http, push, pull, bundle)
+merge = False # send notification for merges (default True)
+[email]
+from = user@host.com # email address to send as if none given
+[web]
+baseurl = http://hgserver/... # root of hg web site for browsing commits
.ft P
.fi
.sp
-Notifications will not be sent until the \fBnotify.test\fP value is set
-to \fBFalse\fP; see below.
-.sp
-Notifications content can be tweaked with the following configuration entries:
-.INDENT 0.0
-.TP
-.B notify.test
-.
-If \fBTrue\fP, print messages to stdout instead of sending them. Default: True.
-.TP
-.B notify.sources
-.
-Space\-separated list of change sources. Notifications are activated only
-when a changeset\(aqs source is in this list. Sources may be:
-.INDENT 7.0
-.TP
-.B \fBserve\fP
-.sp
-changesets received via http or ssh
-.TP
-.B \fBpull\fP
-.sp
-changesets received via \fBhg pull\fP
-.TP
-.B \fBunbundle\fP
-.sp
-changesets received via \fBhg unbundle\fP
-.TP
-.B \fBpush\fP
+The notify config file has same format as a regular hgrc file. It has
+two sections so you can express subscriptions in whatever way is
+handier for you.
.sp
-changesets sent or received via \fBhg push\fP
-.TP
-.B \fBbundle\fP
-.sp
-changesets sent via \fBhg unbundle\fP
-.UNINDENT
+.nf
+.ft C
+[usersubs]
+# key is subscriber email, value is ","\-separated list of glob patterns
+user@host = pattern
+
+[reposubs]
+# key is glob pattern, value is ","\-separated list of subscriber emails
+pattern = user@host
+.ft P
+.fi
.sp
-Default: serve.
-.TP
-.B notify.strip
-.
-Number of leading slashes to strip from url paths. By default, notifications
-reference repositories with their absolute path. \fBnotify.strip\fP lets you
-turn them into relative paths. For example, \fBnotify.strip=3\fP will change
-\fB/long/path/repository\fP into \fBrepository\fP. Default: 0.
-.TP
-.B notify.domain
-.
-Default email domain for sender or recipients with no explicit domain.
-.TP
-.B notify.style
-.
-Style file to use when formatting emails.
-.TP
-.B notify.template
-.
-Template to use when formatting emails.
-.TP
-.B notify.incoming
-.
-Template to use when run as an incoming hook, overriding \fBnotify.template\fP.
-.TP
-.B notify.outgoing
-.
-Template to use when run as an outgoing hook, overriding \fBnotify.template\fP.
-.TP
-.B notify.changegroup
-.
-Template to use when running as a changegroup hook, overriding
-\fBnotify.template\fP.
-.TP
-.B notify.maxdiff
-.
-Maximum number of diff lines to include in notification email. Set to 0
-to disable the diff, or \-1 to include all of it. Default: 300.
-.TP
-.B notify.maxsubject
-.
-Maximum number of characters in email\(aqs subject line. Default: 67.
-.TP
-.B notify.diffstat
-.
-Set to True to include a diffstat before diff content. Default: True.
-.TP
-.B notify.merge
-.
-If True, send notifications for merge changesets. Default: True.
-.TP
-.B notify.mbox
-.
-If set, append mails to this mbox file instead of sending. Default: None.
-.TP
-.B notify.fromauthor
-.
-If set, use the committer of the first changeset in a changegroup for
-the "From" field of the notification mail. If not set, take the user
-from the pushing repo. Default: False.
-.UNINDENT
+Glob patterns are matched against path to repository root.
.sp
-If set, the following entries will also be used to customize the
-notifications:
-.INDENT 0.0
-.TP
-.B email.from
-.
-Email \fBFrom\fP address to use if none can be found in the generated
-email content.
-.TP
-.B web.baseurl
-.
-Root repository URL to combine with repository paths when making
-references. See also \fBnotify.strip\fP.
-.UNINDENT
+If you like, you can put notify config file in repository that users
+can push changes to, they can manage their own subscriptions.
.SS pager
.sp
browse command output with an external pager
@@ -10312,13 +8444,23 @@ To set the pager that should be used, set the application variable:
.nf
.ft C
[pager]
-pager = less \-FRX
+pager = less \-FRSX
.ft P
.fi
.sp
If no pager is set, the pager extensions uses the environment variable
$PAGER. If neither pager.pager, nor $PAGER is set, no pager is used.
.sp
+If you notice "BROKEN PIPE" error messages, you can disable them by
+setting:
+.sp
+.nf
+.ft C
+[pager]
+quiet = True
+.ft P
+.fi
+.sp
You can disable the pager for certain commands by adding them to the
pager.ignore list:
.sp
@@ -10431,9 +8573,7 @@ the messages are sent.
By default the patch is included as text in the email body for
easy reviewing. Using the \-a/\-\-attach option will instead create
an attachment for the patch. With \-i/\-\-inline an inline attachment
-will be created. You can include a patch both as text in the email
-body and as a regular or an inline attachment by combining the
-\-a/\-\-attach or \-i/\-\-inline with the \-\-body option.
+will be created.
.sp
With \-o/\-\-outgoing, emails will be generated for patches not found
in the destination repository (or only those which are ancestors
@@ -10528,10 +8668,6 @@ a base changeset to specify instead of a destination (with \-b/\-\-bundle)
.
send an introduction email for a single patch
.TP
-.B \-\-body
-.
-send patches as inline message text (default)
-.TP
.B \-a, \-\-attach
.
send patches as attachments
@@ -10623,9 +8759,6 @@ The following settings are available:
.ft C
[progress]
delay = 3 # number of seconds (float) before showing the progress bar
-changedelay = 1 # changedelay: minimum delay before showing a new topic.
- # If set to less than 3 * refresh, that value will
- # be used instead.
refresh = 0.1 # time in seconds between refreshes of the progress bar
format = topic bar number estimate # format of the progress bar
width = <none> # if set, the maximum width of the progress information
@@ -10732,7 +8865,8 @@ For more information:
.sp
.nf
.ft C
-hg rebase [\-s REV | \-b REV] [\-d REV] [OPTION]
+hg rebase [\-s REV | \-b REV] [\-d REV] [options]
+hg rebase {\-a|\-c}
.ft P
.fi
.sp
@@ -10792,10 +8926,6 @@ rebase from the specified changeset
.
rebase from the base of the specified changeset (up to greatest common ancestor of base and dest)
.TP
-.B \-r, \-\-rev
-.
-rebase these revisions
-.TP
.B \-d, \-\-dest
.
rebase onto the specified changeset
@@ -10808,10 +8938,6 @@ collapse the rebased changesets
.
use text as collapse commit message
.TP
-.B \-e, \-\-edit
-.
-invoke editor on commit messages
-.TP
.B \-l, \-\-logfile
.
read collapse commit message from file
@@ -10824,9 +8950,9 @@ keep original changesets
.
keep original branch names
.TP
-.B \-D, \-\-detach
+.B \-\-detach
.
-(DEPRECATED)
+force detaching of source from its original branch
.TP
.B \-t, \-\-tool
.
@@ -10884,7 +9010,6 @@ possible:
.ft C
y \- record this change
n \- skip this change
-e \- edit this change manually
s \- skip remaining changes to this file
f \- record remaining changes to this file
@@ -10910,10 +9035,6 @@ mark new/missing files as added/removed before committing
.
mark a branch as closed, hiding it from the branch list
.TP
-.B \-\-amend
-.
-amend the parent of the working dir
-.TP
.B \-I, \-\-include
.
include names matching the given patterns
@@ -10938,10 +9059,6 @@ record the specified date as commit date
.
record the specified user as committer
.TP
-.B \-S, \-\-subrepos
-.
-recurse into subrepositories
-.TP
.B \-w, \-\-ignore\-all\-space
.
ignore white space when comparing lines
@@ -11074,15 +9191,6 @@ Options:
.
do not create a working copy
.UNINDENT
-.SS unshare
-.sp
-.nf
-.ft C
-hg unshare
-.ft P
-.fi
-.sp
-Copy the store data to the repo and remove the sharedpath data.
.SS transplant
.sp
command to transplant changesets from another branch
@@ -11126,7 +9234,7 @@ the branch holding the named revision, up to that revision. If
transplanted, otherwise you will be prompted to select the
changesets you want.
.sp
-\%\fBhg transplant \-\-branch REV \-\-all\fP\: will transplant the
+\%\fBhg transplant \-\-branch REVISION \-\-all\fP\: will transplant the
selected branch (up to the named revision) onto your current
working directory.
.sp
@@ -11135,9 +9243,6 @@ changesets. You will not be prompted to transplant any ancestors
of a merged transplant, and you can merge descendants of them
normally instead of transplanting them.
.sp
-Merge changesets may be transplanted directly by specifying the
-proper parent changeset by calling \%\fBhg transplant \-\-parent\fP\:.
-.sp
If no merges or revisions are provided, \%\fBhg transplant\fP\: will
start an interactive changeset browser.
.sp
@@ -11168,14 +9273,6 @@ skip over REV
.
merge at REV
.TP
-.B \-\-parent
-.
-parent to choose when transplanting merge
-.TP
-.B \-e, \-\-edit
-.
-invoke editor on commit messages
-.TP
.B \-\-log
.
append transplant info to log message
@@ -11329,47 +9426,25 @@ zc\-test = http://example.com:8000/test
.SH FILES
.INDENT 0.0
.TP
-.B \fB/etc/mercurial/hgrc\fP, \fB$HOME/.hgrc\fP, \fB.hg/hgrc\fP
-.sp
-This file contains defaults and configuration. Values in
-\fB.hg/hgrc\fP override those in \fB$HOME/.hgrc\fP, and these override
-settings made in the global \fB/etc/mercurial/hgrc\fP configuration.
-See \%\fBhgrc\fP(5)\: for details of the contents and format of these
-files.
-.TP
.B \fB.hgignore\fP
.sp
This file contains regular expressions (one per line) that
describe file names that should be ignored by \fBhg\fP. For details,
see \%\fBhgignore\fP(5)\:.
.TP
-.B \fB.hgsub\fP
-.sp
-This file defines the locations of all subrepositories, and
-tells where the subrepository checkouts came from. For details, see
-\%\fBhg help subrepos\fP\:.
-.TP
-.B \fB.hgsubstate\fP
-.sp
-This file is where Mercurial stores all nested repository states. \fINB: This
-file should not be edited manually.\fP
-.TP
.B \fB.hgtags\fP
.sp
This file contains changeset hash values and text tag names (one
of each separated by spaces) that correspond to tagged versions of
-the repository contents. The file content is encoded using UTF\-8.
-.TP
-.B \fB.hg/last\-message.txt\fP
-.sp
-This file is used by \%\fBhg commit\fP\: to store a backup of the commit message
-in case the commit fails.
+the repository contents.
.TP
-.B \fB.hg/localtags\fP
+.B \fB/etc/mercurial/hgrc\fP, \fB$HOME/.hgrc\fP, \fB.hg/hgrc\fP
.sp
-This file can be used to define local tags which are not shared among
-repositories. The file format is the same as for \fB.hgtags\fP, but it is
-encoded using the local system encoding.
+This file contains defaults and configuration. Values in
+\fB.hg/hgrc\fP override those in \fB$HOME/.hgrc\fP, and these override
+settings made in the global \fB/etc/mercurial/hgrc\fP configuration.
+See \%\fBhgrc\fP(5)\: for details of the contents and format of these
+files.
.UNINDENT
.sp
Some commands (e.g. revert) produce backup files ending in \fB.orig\fP,
@@ -11394,7 +9469,7 @@ Source code repository: \%http://selenic.com/hg\:
Mailing list: \%http://selenic.com/mailman/listinfo/mercurial\:
.SH COPYING
.sp
-Copyright (C) 2005\-2012 Matt Mackall.
+Copyright (C) 2005\-2010 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.
.\" Common link and substitution definitions.
diff --git a/doc/hg.1.html b/doc/hg.1.html
index 9a0a22f..381787f 100644
--- a/doc/hg.1.html
+++ b/doc/hg.1.html
@@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.8.1: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>hg</title>
<meta name="author" content="Matt Mackall &lt;mpm&#64;selenic.com&gt;" />
<meta name="organization" content="Mercurial" />
@@ -30,35 +30,43 @@
<div class="contents htmlonly topic" id="contents">
<p class="topic-title first">Contents</p>
<ul class="simple">
-<li><a class="reference internal" href="#synopsis" id="id39">Synopsis</a></li>
-<li><a class="reference internal" href="#description" id="id40">Description</a></li>
-<li><a class="reference internal" href="#command-elements" id="id41">Command Elements</a></li>
-<li><a class="reference internal" href="#options" id="id42">Options</a></li>
-<li><a class="reference internal" href="#commands" id="id43">Commands</a></li>
-<li><a class="reference internal" href="#date-formats" id="id44">Date Formats</a></li>
-<li><a class="reference internal" href="#diff-formats" id="id45">Diff Formats</a></li>
-<li><a class="reference internal" href="#environment-variables" id="id46">Environment Variables</a></li>
-<li><a class="reference internal" href="#using-additional-features" id="id47">Using Additional Features</a></li>
-<li><a class="reference internal" href="#specifying-file-sets" id="id48">Specifying File Sets</a></li>
-<li><a class="reference internal" href="#id1" id="id49">Glossary</a></li>
-<li><a class="reference internal" href="#syntax-for-mercurial-ignore-files" id="id50">Syntax for Mercurial Ignore Files</a></li>
-<li><a class="reference internal" href="#configuring-hgweb" id="id51">Configuring hgweb</a></li>
-<li><a class="reference internal" href="#id4" id="id52">Merge Tools</a></li>
-<li><a class="reference internal" href="#specifying-multiple-revisions" id="id53">Specifying Multiple Revisions</a></li>
-<li><a class="reference internal" href="#file-name-patterns" id="id54">File Name Patterns</a></li>
-<li><a class="reference internal" href="#working-with-phases" id="id55">Working with Phases</a></li>
+<li><a class="reference internal" href="#synopsis" id="id36">Synopsis</a></li>
+<li><a class="reference internal" href="#description" id="id37">Description</a></li>
+<li><a class="reference internal" href="#command-elements" id="id38">Command Elements</a></li>
+<li><a class="reference internal" href="#options" id="id39">Options</a></li>
+<li><a class="reference internal" href="#commands" id="id40">Commands</a></li>
+<li><a class="reference internal" href="#date-formats" id="id41">Date Formats</a></li>
+<li><a class="reference internal" href="#diff-formats" id="id42">Diff Formats</a></li>
+<li><a class="reference internal" href="#environment-variables" id="id43">Environment Variables</a></li>
+<li><a class="reference internal" href="#using-additional-features" id="id44">Using additional features</a></li>
+<li><a class="reference internal" href="#specifying-file-sets" id="id45">Specifying File Sets</a></li>
+<li><a class="reference internal" href="#id1" id="id46">Glossary</a></li>
+<li><a class="reference internal" href="#syntax-for-mercurial-ignore-files" id="id47">syntax for Mercurial ignore files</a></li>
+<li><a class="reference internal" href="#id2" id="id48">Synopsis</a></li>
+<li><a class="reference internal" href="#id3" id="id49">Description</a></li>
+<li><a class="reference internal" href="#syntax" id="id50">Syntax</a></li>
+<li><a class="reference internal" href="#example" id="id51">Example</a></li>
+<li><a class="reference internal" href="#configuring-hgweb" id="id52">Configuring hgweb</a></li>
+<li><a class="reference internal" href="#id4" id="id53">Merge Tools</a></li>
+<li><a class="reference internal" href="#specifying-multiple-revisions" id="id54">Specifying Multiple Revisions</a></li>
+<li><a class="reference internal" href="#file-name-patterns" id="id55">File Name Patterns</a></li>
<li><a class="reference internal" href="#specifying-single-revisions" id="id56">Specifying Single Revisions</a></li>
<li><a class="reference internal" href="#specifying-revision-sets" id="id57">Specifying Revision Sets</a></li>
<li><a class="reference internal" href="#subrepositories" id="id58">Subrepositories</a></li>
-<li><a class="reference internal" href="#template-usage" id="id59">Template Usage</a></li>
-<li><a class="reference internal" href="#url-paths" id="id60">URL Paths</a></li>
-<li><a class="reference internal" href="#id5" id="id61">Extensions</a></li>
-<li><a class="reference internal" href="#files" id="id62">Files</a></li>
-<li><a class="reference internal" href="#bugs" id="id63">Bugs</a></li>
-<li><a class="reference internal" href="#see-also" id="id64">See Also</a></li>
-<li><a class="reference internal" href="#author" id="id65">Author</a></li>
-<li><a class="reference internal" href="#resources" id="id66">Resources</a></li>
-<li><a class="reference internal" href="#copying" id="id67">Copying</a></li>
+<li><a class="reference internal" href="#adding-a-subrepository" id="id59">Adding a Subrepository</a></li>
+<li><a class="reference internal" href="#synchronizing-a-subrepository" id="id60">Synchronizing a Subrepository</a></li>
+<li><a class="reference internal" href="#deleting-a-subrepository" id="id61">Deleting a Subrepository</a></li>
+<li><a class="reference internal" href="#interaction-with-mercurial-commands" id="id62">Interaction with Mercurial Commands</a></li>
+<li><a class="reference internal" href="#remapping-subrepositories-sources" id="id63">Remapping Subrepositories Sources</a></li>
+<li><a class="reference internal" href="#template-usage" id="id64">Template Usage</a></li>
+<li><a class="reference internal" href="#url-paths" id="id65">URL Paths</a></li>
+<li><a class="reference internal" href="#id5" id="id66">Extensions</a></li>
+<li><a class="reference internal" href="#files" id="id67">Files</a></li>
+<li><a class="reference internal" href="#bugs" id="id68">Bugs</a></li>
+<li><a class="reference internal" href="#see-also" id="id69">See Also</a></li>
+<li><a class="reference internal" href="#author" id="id70">Author</a></li>
+<li><a class="reference internal" href="#resources" id="id71">Resources</a></li>
+<li><a class="reference internal" href="#copying" id="id72">Copying</a></li>
</ul>
</div>
<div class="section" id="synopsis">
@@ -200,15 +208,13 @@ repository.</p>
<p>New files are ignored if they match any of the patterns in
<tt class="docutils literal">.hgignore</tt>. As with add, these changes take effect at the next
commit.</p>
-<p>Use the -s/--similarity option to detect renamed files. This
+<p>Use the -s/--similarity option to detect renamed files. With a
+parameter greater than 0, this compares every removed file with
+every added file and records those similar enough as renames. This
option takes a percentage between 0 (disabled) and 100 (files must
-be identical) as its parameter. With a parameter greater than 0,
-this compares every removed file with every added file and records
-those similar enough as renames. Detecting renamed files this way
+be identical) as its parameter. Detecting renamed files this way
can be expensive. After using this option, <a class="reference external" href="hg.1.html#status"><tt class="docutils literal">hg status <span class="pre">-C</span></tt></a> can be
-used to check which files were identified as moved or renamed. If
-not specified, -s/--similarity defaults to 100 and only renames of
-identical files are detected.</p>
+used to check which files were identified as moved or renamed.</p>
<p>Returns 0 if all files are successfully added.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -282,18 +288,6 @@ nor desirable.</p>
<kbd><span class="option">-l</span>, <span class="option">--line-number</span></kbd></td>
</tr>
<tr><td>&nbsp;</td><td>show line number at the first appearance</td></tr>
-<tr><td class="option-group" colspan="2">
-<kbd><span class="option">-w</span>, <span class="option">--ignore-all-space</span></kbd></td>
-</tr>
-<tr><td>&nbsp;</td><td>ignore white space when comparing lines</td></tr>
-<tr><td class="option-group" colspan="2">
-<kbd><span class="option">-b</span>, <span class="option">--ignore-space-change</span></kbd></td>
-</tr>
-<tr><td>&nbsp;</td><td>ignore changes in the amount of white space</td></tr>
-<tr><td class="option-group" colspan="2">
-<kbd><span class="option">-B</span>, <span class="option">--ignore-blank-lines</span></kbd></td>
-</tr>
-<tr><td>&nbsp;</td><td>ignore changes whose lines are all blank</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-I</span>, <span class="option">--include</span></kbd></td>
<td>include names matching the given patterns</td></tr>
@@ -314,21 +308,6 @@ hg archive [OPTION]... DEST
directory; use -r/--rev to specify a different revision.</p>
<p>The archive type is automatically detected based on file
extension (or override using -t/--type).</p>
-<div class="verbose container">
-<p>Examples:</p>
-<ul>
-<li><p class="first">create a zip file containing the 1.0 release:</p>
-<pre class="literal-block">
-hg archive -r 1.0 project-1.0.zip
-</pre>
-</li>
-<li><p class="first">create a tarball excluding .hg files:</p>
-<pre class="literal-block">
-hg archive project.tar.gz -X &quot;.hg*&quot;
-</pre>
-</li>
-</ul>
-</div>
<p>Valid types are:</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -394,21 +373,14 @@ current working directory.</p>
<p>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.</p>
-<div class="note">
-<p class="first admonition-title">Note</p>
-<p class="last">backout cannot be used to fix either an unwanted or
-incorrect merge.</p>
-</div>
-<div class="verbose container">
<p>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 new child of REV that simply undoes REV.</p>
-<p>Before version 1.7, the behavior without --merge was equivalent
-to specifying --merge followed by <a class="reference external" href="hg.1.html#update"><tt class="docutils literal">hg update <span class="pre">--clean</span> .</tt></a> to
-cancel the merge and leave the child of REV as a head to be
-merged separately.</p>
-</div>
+maintaining a linear history. With --merge, the pending changeset
+will instead have two parents: the old parent of the working
+directory and a new child of REV that simply undoes REV.</p>
+<p>Before version 1.7, the behavior without --merge was equivalent to
+specifying --merge followed by <a class="reference external" href="hg.1.html#update"><tt class="docutils literal">hg update <span class="pre">--clean</span> .</tt></a> to cancel
+the merge and leave the child of REV as a head to be merged
+separately.</p>
<p>See <a class="reference external" href="hg.1.html#dates"><tt class="docutils literal">hg help dates</tt></a> for a list of formats valid for -d/--date.</p>
<p>Returns 0 on success.</p>
<p>Options:</p>
@@ -421,14 +393,14 @@ merged separately.</p>
<td>merge with old dirstate parent after backout</td></tr>
<tr><td class="option-group">
<kbd><span class="option">--parent</span></kbd></td>
-<td>parent to choose when backing out merge (DEPRECATED)</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-r</span>, <span class="option">--rev</span></kbd></td>
-<td>revision to backout</td></tr>
+<td>parent to choose when backing out merge</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-t</span>, <span class="option">--tool</span></kbd></td>
<td>specify merge tool</td></tr>
<tr><td class="option-group">
+<kbd><span class="option">-r</span>, <span class="option">--rev</span></kbd></td>
+<td>revision to backout</td></tr>
+<tr><td class="option-group">
<kbd><span class="option">-I</span>, <span class="option">--include</span></kbd></td>
<td>include names matching the given patterns</td></tr>
<tr><td class="option-group">
@@ -465,74 +437,10 @@ or announce that it has found the bad revision.</p>
<p>As a shortcut, you can also use the revision argument to mark a
revision as good or bad without checking it out first.</p>
<p>If you supply a command, it will be used for automatic bisection.
-The environment variable HG_NODE will contain the ID of the
-changeset being tested. The exit status of the command will be
-used to mark revisions as good or bad: status 0 means good, 125
-means to skip the revision, 127 (command not found) will abort the
-bisection, and any other non-zero exit status means the revision
-is bad.</p>
-<div class="verbose container">
-<p>Some examples:</p>
-<ul>
-<li><p class="first">start a bisection with known bad revision 12, and good revision 34:</p>
-<pre class="literal-block">
-hg bisect --bad 34
-hg bisect --good 12
-</pre>
-</li>
-<li><p class="first">advance the current bisection by marking current revision as good or
-bad:</p>
-<pre class="literal-block">
-hg bisect --good
-hg bisect --bad
-</pre>
-</li>
-<li><p class="first">mark the current revision, or a known revision, to be skipped (eg. if
-that revision is not usable because of another issue):</p>
-<pre class="literal-block">
-hg bisect --skip
-hg bisect --skip 23
-</pre>
-</li>
-<li><p class="first">forget the current bisection:</p>
-<pre class="literal-block">
-hg bisect --reset
-</pre>
-</li>
-<li><p class="first">use 'make &amp;&amp; make tests' to automatically find the first broken
-revision:</p>
-<pre class="literal-block">
-hg bisect --reset
-hg bisect --bad 34
-hg bisect --good 12
-hg bisect --command 'make &amp;&amp; make tests'
-</pre>
-</li>
-<li><p class="first">see all changesets whose states are already known in the current
-bisection:</p>
-<pre class="literal-block">
-hg log -r &quot;bisect(pruned)&quot;
-</pre>
-</li>
-<li><p class="first">see the changeset currently being bisected (especially useful
-if running with -U/--noupdate):</p>
-<pre class="literal-block">
-hg log -r &quot;bisect(current)&quot;
-</pre>
-</li>
-<li><p class="first">see all changesets that took part in the current bisection:</p>
-<pre class="literal-block">
-hg log -r &quot;bisect(range)&quot;
-</pre>
-</li>
-<li><p class="first">with the graphlog extension, you can even get a nice graph:</p>
-<pre class="literal-block">
-hg log --graph -r &quot;bisect(range)&quot;
-</pre>
-</li>
-</ul>
-<p>See <a class="reference external" href="hg.1.html#revsets"><tt class="docutils literal">hg help revsets</tt></a> for more about the <cite>bisect()</cite> keyword.</p>
-</div>
+Its exit status will be used to mark revisions as good or bad:
+status 0 means good, 125 means to skip the revision, 127
+(command not found) will abort the bisection, and any other
+non-zero exit status means the revision is bad.</p>
<p>Returns 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -568,10 +476,10 @@ hg log --graph -r &quot;bisect(range)&quot;
<pre class="literal-block">
hg bookmarks [-f] [-d] [-i] [-m NAME] [-r REV] [NAME]
</pre>
-<p>Bookmarks are pointers to certain commits that move when committing.
-Bookmarks are local. They can be renamed, copied and deleted. It is
-possible to use <a class="reference external" href="hg.1.html#merge"><tt class="docutils literal">hg merge NAME</tt></a> to merge from a given bookmark, and
-<a class="reference external" href="hg.1.html#update"><tt class="docutils literal">hg update NAME</tt></a> to update to a given bookmark.</p>
+<p>Bookmarks are pointers to certain commits that move when
+committing. Bookmarks are local. They can be renamed, copied and
+deleted. It is possible to use bookmark names in <a class="reference external" href="hg.1.html#merge"><tt class="docutils literal">hg merge</tt></a> and
+<a class="reference external" href="hg.1.html#update"><tt class="docutils literal">hg update</tt></a> to merge and update respectively to a given bookmark.</p>
<p>You can use <a class="reference external" href="hg.1.html#bookmark"><tt class="docutils literal">hg bookmark NAME</tt></a> to set a bookmark on the working
directory's parent revision with the given name. If you specify
a revision using -r REV (where REV may be an existing bookmark),
@@ -580,10 +488,6 @@ the bookmark is assigned to that revision.</p>
push</tt></a> and <a class="reference external" href="hg.1.html#pull"><tt class="docutils literal">hg help pull</tt></a>). This requires both the local and remote
repositories to support bookmarks. For versions prior to 1.8, this means
the bookmarks extension must be enabled.</p>
-<p>With -i/--inactive, the new bookmark will not be made the active
-bookmark. If -r/--rev is given, the new bookmark will not be made
-active even if -i/--inactive is not given. If no NAME is given, the
-current active bookmark will be marked inactive.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
<col class="option" />
@@ -603,7 +507,7 @@ current active bookmark will be marked inactive.</p>
<td>rename a given bookmark</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-i</span>, <span class="option">--inactive</span></kbd></td>
-<td>mark a bookmark inactive</td></tr>
+<td>do not mark a new bookmark active</td></tr>
</tbody>
</table>
</div>
@@ -612,12 +516,6 @@ current active bookmark will be marked inactive.</p>
<pre class="literal-block">
hg branch [-fC] [NAME]
</pre>
-<div class="note">
-<p class="first admonition-title">Note</p>
-<p class="last">Branch names are permanent and global. Use <a class="reference external" href="hg.1.html#bookmark"><tt class="docutils literal">hg bookmark</tt></a> to create a
-light-weight bookmark instead. See <a class="reference external" href="hg.1.html#glossary"><tt class="docutils literal">hg help glossary</tt></a> for more
-information about named branches and bookmarks.</p>
-</div>
<p>With no argument, show the current branch name. With one argument,
set the working directory branch name (the branch will not exist
in the repository until the next commit). Standard practice
@@ -630,6 +528,12 @@ the parent of the working directory, negating a previous branch
change.</p>
<p>Use the command <a class="reference external" href="hg.1.html#update"><tt class="docutils literal">hg update</tt></a> to switch to an existing branch. Use
<a class="reference external" href="hg.1.html#commit"><tt class="docutils literal">hg commit <span class="pre">--close-branch</span></tt></a> to mark this branch as closed.</p>
+<div class="note">
+<p class="first admonition-title">Note</p>
+<p class="last">Branch names are permanent. Use <a class="reference external" href="hg.1.html#bookmark"><tt class="docutils literal">hg bookmark</tt></a> to create a
+light-weight bookmark instead. See <a class="reference external" href="hg.1.html#glossary"><tt class="docutils literal">hg help glossary</tt></a> for more
+information about named branches and bookmarks.</p>
+</div>
<p>Returns 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -784,36 +688,37 @@ hg clone [OPTION]... SOURCE [DEST]
basename of the source.</p>
<p>The location of the source is added to the new repository's
<tt class="docutils literal">.hg/hgrc</tt> file, as the default to be used for future pulls.</p>
-<p>Only local paths and <tt class="docutils literal"><span class="pre">ssh://</span></tt> URLs are supported as
-destinations. For <tt class="docutils literal"><span class="pre">ssh://</span></tt> destinations, no working directory or
-<tt class="docutils literal">.hg/hgrc</tt> will be created on the remote side.</p>
-<p>To pull only a subset of changesets, specify one or more revisions
-identifiers with -r/--rev or branches with -b/--branch. The
-resulting clone will contain only the specified changesets and
-their ancestors. These options (or 'clone src#rev dest') imply
---pull, even for local source repositories. Note that specifying a
-tag will include the tagged changeset but not the changeset
-containing the tag.</p>
-<p>To check out a particular version, use -u/--update, or
--U/--noupdate to create a clone with no working directory.</p>
-<div class="verbose container">
-<p>For efficiency, hardlinks are used for cloning whenever the
-source and destination are on the same filesystem (note this
-applies only to the repository data, not to the working
-directory). Some filesystems, such as AFS, implement hardlinking
-incorrectly, but do not report errors. In these cases, use the
---pull option to avoid hardlinking.</p>
-<p>In some cases, you can clone repositories and the working
-directory using full hardlinks with</p>
+<p>See <a class="reference external" href="hg.1.html#urls"><tt class="docutils literal">hg help urls</tt></a> for valid source format details.</p>
+<p>It is possible to specify an <tt class="docutils literal"><span class="pre">ssh://</span></tt> URL as the destination, but no
+<tt class="docutils literal">.hg/hgrc</tt> and working directory will be created on the remote side.
+Please see <a class="reference external" href="hg.1.html#urls"><tt class="docutils literal">hg help urls</tt></a> for important details about <tt class="docutils literal"><span class="pre">ssh://</span></tt> URLs.</p>
+<p>A set of changesets (tags, or branch names) to pull may be specified
+by listing each changeset (tag, or branch name) with -r/--rev.
+If -r/--rev is used, the cloned repository will contain only a subset
+of the changesets of the source repository. Only the set of changesets
+defined by all -r/--rev options (including all their ancestors)
+will be pulled into the destination repository.
+No subsequent changesets (including subsequent tags) will be present
+in the destination.</p>
+<p>Using -r/--rev (or 'clone src#rev dest') implies --pull, even for
+local source repositories.</p>
+<p>For efficiency, hardlinks are used for cloning whenever the source
+and destination are on the same filesystem (note this applies only
+to the repository data, not to the working directory). Some
+filesystems, such as AFS, implement hardlinking incorrectly, but
+do not report errors. In these cases, use the --pull option to
+avoid hardlinking.</p>
+<p>In some cases, you can clone repositories and the working directory
+using full hardlinks with</p>
<pre class="literal-block">
$ cp -al REPO REPOCLONE
</pre>
<p>This is the fastest way to clone, but it is not always safe. The
operation is not atomic (making sure REPO is not modified during
-the operation is up to you) and you have to make sure your
-editor breaks hardlinks (Emacs and most Linux Kernel tools do
-so). Also, this is not compatible with certain extensions that
-place their metadata under the .hg directory, such as mq.</p>
+the operation is up to you) and you have to make sure your editor
+breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,
+this is not compatible with certain extensions that place their
+metadata under the .hg directory, such as mq.</p>
<p>Mercurial will update the working directory to the first applicable
revision from this list:</p>
<ol class="loweralpha simple">
@@ -828,42 +733,6 @@ latest head of that branch)</li>
<li>the tipmost head of the default branch</li>
<li>tip</li>
</ol>
-<p>Examples:</p>
-<ul>
-<li><p class="first">clone a remote repository to a new directory named hg/:</p>
-<pre class="literal-block">
-hg clone http://selenic.com/hg
-</pre>
-</li>
-<li><p class="first">create a lightweight local clone:</p>
-<pre class="literal-block">
-hg clone project/ project-feature/
-</pre>
-</li>
-<li><p class="first">clone from an absolute path on an ssh server (note double-slash):</p>
-<pre class="literal-block">
-hg clone ssh://user&#64;server//home/projects/alpha/
-</pre>
-</li>
-<li><p class="first">do a high-speed clone over a LAN while checking out a
-specified version:</p>
-<pre class="literal-block">
-hg clone --uncompressed http://server/repo -u 1.5
-</pre>
-</li>
-<li><p class="first">create a repository without changesets after a particular revision:</p>
-<pre class="literal-block">
-hg clone -r 04e544 experimental/ good/
-</pre>
-</li>
-<li><p class="first">clone (and track) a particular named branch:</p>
-<pre class="literal-block">
-hg clone http://selenic.com/hg#stable
-</pre>
-</li>
-</ul>
-</div>
-<p>See <a class="reference external" href="hg.1.html#urls"><tt class="docutils literal">hg help urls</tt></a> for details on specifying URLs.</p>
<p>Returns 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -917,17 +786,6 @@ filenames or -I/-X filters.</p>
configured editor where you can enter a message. In case your
commit fails, you will find a backup of your message in
<tt class="docutils literal"><span class="pre">.hg/last-message.txt</span></tt>.</p>
-<p>The --amend flag can be used to amend the parent of the
-working directory with a new commit that contains the changes
-in the parent in addition to those currently reported by <a class="reference external" href="hg.1.html#status"><tt class="docutils literal">hg status</tt></a>,
-if there are any. The old commit is stored in a backup bundle in
-<tt class="docutils literal"><span class="pre">.hg/strip-backup</span></tt> (see <a class="reference external" href="hg.1.html#bundle"><tt class="docutils literal">hg help bundle</tt></a> and <a class="reference external" href="hg.1.html#unbundle"><tt class="docutils literal">hg help unbundle</tt></a>
-on how to restore it).</p>
-<p>Message, user and date are taken from the amended commit unless
-specified. When a message isn't specified on the command line,
-the editor will open with the message of the amended commit.</p>
-<p>It is not possible to amend public changesets (see <a class="reference external" href="hg.1.html#phases"><tt class="docutils literal">hg help phases</tt></a>)
-or changesets that have children.</p>
<p>See <a class="reference external" href="hg.1.html#dates"><tt class="docutils literal">hg help dates</tt></a> for a list of formats valid for -d/--date.</p>
<p>Returns 0 on success, 1 if nothing changed.</p>
<p>Options:</p>
@@ -943,9 +801,6 @@ or changesets that have children.</p>
<kbd><span class="option">--close-branch</span></kbd></td>
<td>mark a branch as closed, hiding it from the branch list</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">--amend</span></kbd></td>
-<td>amend the parent of the working dir</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-I</span>, <span class="option">--include</span></kbd></td>
<td>include names matching the given patterns</td></tr>
<tr><td class="option-group">
@@ -962,10 +817,7 @@ or changesets that have children.</p>
<td>record the specified date as commit date</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-u</span>, <span class="option">--user</span></kbd></td>
-<td>record the specified user as committer</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-S</span>, <span class="option">--subrepos</span></kbd></td>
-<td><p class="first">recurse into subrepositories</p>
+<td><p class="first">record the specified user as committer</p>
<p class="last">aliases: ci</p>
</td></tr>
</tbody>
@@ -1035,38 +887,6 @@ files it detects as binary. With -a, diff will generate a diff
anyway, probably with undesirable results.</p>
<p>Use the -g/--git option to generate diffs in the git extended diff
format. For more information, read <a class="reference external" href="hg.1.html#diffs"><tt class="docutils literal">hg help diffs</tt></a>.</p>
-<div class="verbose container">
-<p>Examples:</p>
-<ul>
-<li><p class="first">compare a file in the current working directory to its parent:</p>
-<pre class="literal-block">
-hg diff foo.c
-</pre>
-</li>
-<li><p class="first">compare two historical versions of a directory, with rename info:</p>
-<pre class="literal-block">
-hg diff --git -r 1.0:1.2 lib/
-</pre>
-</li>
-<li><p class="first">get change stats relative to the last change on some date:</p>
-<pre class="literal-block">
-hg diff --stat -r &quot;date('may 2')&quot;
-</pre>
-</li>
-<li><p class="first">diff all newly-added files that contain a keyword:</p>
-<pre class="literal-block">
-hg diff &quot;set:added() and grep(GNU)&quot;
-</pre>
-</li>
-<li><p class="first">compare a revision and its parents:</p>
-<pre class="literal-block">
-hg diff -c 9353 # compare against first parent
-hg diff -r 9353^:9353 # same using revset syntax
-hg diff -r 9353^2:9353 # compare against the second parent
-</pre>
-</li>
-</ul>
-</div>
<p>Returns 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -1128,7 +948,7 @@ hg diff -r 9353^2:9353 # compare against the second parent
<div class="section" id="export">
<h2>export</h2>
<pre class="literal-block">
-hg export [OPTION]... [-o OUTFILESPEC] [-r] REV...
+hg export [OPTION]... [-o OUTFILESPEC] REV...
</pre>
<p>Print the changeset header and diffs for one or more revisions.</p>
<p>The information shown in the changeset header is: author, date,
@@ -1158,8 +978,6 @@ given using a format string. The formatting rules are as follows:</p>
</tr>
<tr class="field"><th class="field-name"><tt class="docutils literal">%h</tt>:</th><td class="field-body">short-form changeset hash (12 hexadecimal digits)</td>
</tr>
-<tr class="field"><th class="field-name"><tt class="docutils literal">%m</tt>:</th><td class="field-body">first line of the commit message (only alphanumeric characters)</td>
-</tr>
<tr class="field"><th class="field-name"><tt class="docutils literal">%n</tt>:</th><td class="field-body">zero-padded sequence number, starting at 1</td>
</tr>
<tr class="field"><th class="field-name"><tt class="docutils literal">%r</tt>:</th><td class="field-body">zero-padded changeset revision number</td>
@@ -1173,29 +991,6 @@ diff anyway, probably with undesirable results.</p>
format. See <a class="reference external" href="hg.1.html#diffs"><tt class="docutils literal">hg help diffs</tt></a> for more information.</p>
<p>With the --switch-parent option, the diff will be against the
second parent. It can be useful to review a merge.</p>
-<div class="verbose container">
-<p>Examples:</p>
-<ul>
-<li><p class="first">use export and import to transplant a bugfix to the current
-branch:</p>
-<pre class="literal-block">
-hg export -r 9353 | hg import -
-</pre>
-</li>
-<li><p class="first">export all the changesets between two revisions to a file with
-rename information:</p>
-<pre class="literal-block">
-hg export --git -r 123:150 &gt; changes.txt
-</pre>
-</li>
-<li><p class="first">split outgoing changes into a series of patches with
-descriptive names:</p>
-<pre class="literal-block">
-hg export -r &quot;outgoing()&quot; -o &quot;%n-%m.patch&quot;
-</pre>
-</li>
-</ul>
-</div>
<p>Returns 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -1235,21 +1030,6 @@ after the next commit.</p>
entire project history, and it does not delete them from the
working directory.</p>
<p>To undo a forget before the next commit, see <a class="reference external" href="hg.1.html#add"><tt class="docutils literal">hg add</tt></a>.</p>
-<div class="verbose container">
-<p>Examples:</p>
-<ul>
-<li><p class="first">forget newly-added binary files:</p>
-<pre class="literal-block">
-hg forget &quot;set:added() and binary()&quot;
-</pre>
-</li>
-<li><p class="first">forget files that would be excluded by .hgignore:</p>
-<pre class="literal-block">
-hg forget &quot;set:hgignore()&quot;
-</pre>
-</li>
-</ul>
-</div>
<p>Returns 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -1265,98 +1045,6 @@ hg forget &quot;set:hgignore()&quot;
</tbody>
</table>
</div>
-<div class="section" id="graft">
-<h2>graft</h2>
-<pre class="literal-block">
-hg graft [OPTION]... [-r] REV...
-</pre>
-<p>This command uses Mercurial's merge logic to copy individual
-changes from other branches without merging branches in the
-history graph. This is sometimes known as 'backporting' or
-'cherry-picking'. By default, graft will copy user, date, and
-description from the source changesets.</p>
-<p>Changesets that are ancestors of the current revision, that have
-already been grafted, or that are merges will be skipped.</p>
-<p>If --log is specified, log messages will have a comment appended
-of the form:</p>
-<pre class="literal-block">
-(grafted from CHANGESETHASH)
-</pre>
-<p>If a graft merge results in conflicts, the graft process is
-interrupted so that the current merge can be manually resolved.
-Once all conflicts are addressed, the graft process can be
-continued with the -c/--continue option.</p>
-<div class="note">
-<p class="first admonition-title">Note</p>
-<p class="last">The -c/--continue option does not reapply earlier options.</p>
-</div>
-<div class="verbose container">
-<p>Examples:</p>
-<ul>
-<li><p class="first">copy a single change to the stable branch and edit its description:</p>
-<pre class="literal-block">
-hg update stable
-hg graft --edit 9393
-</pre>
-</li>
-<li><p class="first">graft a range of changesets with one exception, updating dates:</p>
-<pre class="literal-block">
-hg graft -D &quot;2085::2093 and not 2091&quot;
-</pre>
-</li>
-<li><p class="first">continue a graft after resolving conflicts:</p>
-<pre class="literal-block">
-hg graft -c
-</pre>
-</li>
-<li><p class="first">show the source of a grafted changeset:</p>
-<pre class="literal-block">
-hg log --debug -r tip
-</pre>
-</li>
-</ul>
-</div>
-<p>Returns 0 on successful completion.</p>
-<p>Options:</p>
-<table class="docutils option-list" frame="void" rules="none">
-<col class="option" />
-<col class="description" />
-<tbody valign="top">
-<tr><td class="option-group">
-<kbd><span class="option">-r</span>, <span class="option">--rev</span></kbd></td>
-<td>revisions to graft</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-c</span>, <span class="option">--continue</span></kbd></td>
-<td>resume interrupted graft</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-e</span>, <span class="option">--edit</span></kbd></td>
-<td>invoke editor on commit messages</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--log</span></kbd></td>
-<td>append graft info to log message</td></tr>
-<tr><td class="option-group" colspan="2">
-<kbd><span class="option">-D</span>, <span class="option">--currentdate</span></kbd></td>
-</tr>
-<tr><td>&nbsp;</td><td>record the current date as commit date</td></tr>
-<tr><td class="option-group" colspan="2">
-<kbd><span class="option">-U</span>, <span class="option">--currentuser</span></kbd></td>
-</tr>
-<tr><td>&nbsp;</td><td>record the current user as committer</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-d</span>, <span class="option">--date</span></kbd></td>
-<td>record the specified date as commit date</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-u</span>, <span class="option">--user</span></kbd></td>
-<td>record the specified user as committer</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-t</span>, <span class="option">--tool</span></kbd></td>
-<td>specify merge tool</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-n</span>, <span class="option">--dry-run</span></kbd></td>
-<td>do not perform actions, just print output</td></tr>
-</tbody>
-</table>
-</div>
<div class="section" id="grep">
<h2>grep</h2>
<pre class="literal-block">
@@ -1423,7 +1111,7 @@ use the --all flag.</p>
<div class="section" id="heads">
<h2>heads</h2>
<pre class="literal-block">
-hg heads [-ct] [-r STARTREV] [REV]...
+hg heads [-ac] [-r STARTREV] [REV]...
</pre>
<p>With no arguments, show all repository branch heads.</p>
<p>Repository &quot;heads&quot; are changesets with no child changesets. They are
@@ -1488,9 +1176,6 @@ topic.</p>
<tr><td class="option-group">
<kbd><span class="option">-c</span>, <span class="option">--command</span></kbd></td>
<td>show only help for commands</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-k</span>, <span class="option">--keyword</span></kbd></td>
-<td>show topics matching keyword</td></tr>
</tbody>
</table>
</div>
@@ -1507,26 +1192,6 @@ a list of tags, and a list of bookmarks.</p>
repository.</p>
<p>Specifying a path to a repository root or Mercurial bundle will
cause lookup to operate on that repository/bundle.</p>
-<div class="verbose container">
-<p>Examples:</p>
-<ul>
-<li><p class="first">generate a build identifier for the working directory:</p>
-<pre class="literal-block">
-hg id --id &gt; build-id.dat
-</pre>
-</li>
-<li><p class="first">find the revision corresponding to a tag:</p>
-<pre class="literal-block">
-hg id -n -r 1.3
-</pre>
-</li>
-<li><p class="first">check the most recent revision of a remote repository:</p>
-<pre class="literal-block">
-hg id -r tip http://selenic.com/hg/
-</pre>
-</li>
-</ul>
-</div>
<p>Returns 0 if successful.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -1551,16 +1216,7 @@ hg id -r tip http://selenic.com/hg/
<tr><td class="option-group" colspan="2">
<kbd><span class="option">-B</span>, <span class="option">--bookmarks</span></kbd></td>
</tr>
-<tr><td>&nbsp;</td><td>show bookmarks</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-e</span>, <span class="option">--ssh</span></kbd></td>
-<td>specify ssh command to use</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--remotecmd</span></kbd></td>
-<td>specify hg command to run on the remote side</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--insecure</span></kbd></td>
-<td><p class="first">do not verify server certificate (ignoring web.cacerts config)</p>
+<tr><td>&nbsp;</td><td><p class="first">show bookmarks</p>
<p class="last">aliases: id</p>
</td></tr>
</tbody>
@@ -1595,36 +1251,10 @@ repository, not touching the working directory. Without --exact,
patches will be applied on top of the working directory parent
revision.</p>
<p>With -s/--similarity, hg will attempt to discover renames and
-copies in the patch in the same way as <a class="reference external" href="hg.1.html#addremove"><tt class="docutils literal">hg addremove</tt></a>.</p>
+copies in the patch in the same way as 'addremove'.</p>
<p>To read a patch from standard input, use &quot;-&quot; as the patch name. If
a URL is specified, the patch will be downloaded from it.
See <a class="reference external" href="hg.1.html#dates"><tt class="docutils literal">hg help dates</tt></a> for a list of formats valid for -d/--date.</p>
-<div class="verbose container">
-<p>Examples:</p>
-<ul>
-<li><p class="first">import a traditional patch from a website and detect renames:</p>
-<pre class="literal-block">
-hg import -s 80 http://example.com/bugfix.patch
-</pre>
-</li>
-<li><p class="first">import a changeset from an hgweb server:</p>
-<pre class="literal-block">
-hg import http://www.selenic.com/hg/rev/5ca8c111e9aa
-</pre>
-</li>
-<li><p class="first">import all the patches in an Unix-style mbox:</p>
-<pre class="literal-block">
-hg import incoming-patches.mbox
-</pre>
-</li>
-<li><p class="first">attempt to exactly restore an exported changeset (not always
-possible):</p>
-<pre class="literal-block">
-hg import --exact proposed-fix.patch
-</pre>
-</li>
-</ul>
-</div>
<p>Returns 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -1638,9 +1268,6 @@ hg import --exact proposed-fix.patch
<kbd><span class="option">-b</span>, <span class="option">--base</span></kbd></td>
<td>base path (DEPRECATED)</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">-e</span>, <span class="option">--edit</span></kbd></td>
-<td>invoke editor on commit messages</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-f</span>, <span class="option">--force</span></kbd></td>
<td>skip check for outstanding uncommitted changes</td></tr>
<tr><td class="option-group">
@@ -1731,9 +1358,6 @@ changesets twice if the incoming is followed by a pull.</p>
<kbd><span class="option">--stat</span></kbd></td>
<td>output diffstat-style summary of changes</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">-G</span>, <span class="option">--graph</span></kbd></td>
-<td>show the revision DAG</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">--style</span></kbd></td>
<td>display using template map file</td></tr>
<tr><td class="option-group">
@@ -1831,13 +1455,16 @@ hg log [OPTION]... [FILE]
</pre>
<p>Print the revision history of the specified files or the entire
project.</p>
-<p>If no revision range is specified, the default is <tt class="docutils literal">tip:0</tt> unless
---follow is set, in which case the working directory parent is
-used as the starting revision.</p>
<p>File history is shown without following rename or copy history of
files. Use -f/--follow with a filename to follow history across
renames and copies. --follow without a filename will only show
-ancestors or descendants of the starting revision.</p>
+ancestors or descendants of the starting revision. --follow-first
+only follows the first parent of merge revisions.</p>
+<p>If no revision range is specified, the default is <tt class="docutils literal">tip:0</tt> unless
+--follow is set, in which case the working directory parent is
+used as the starting revision. You can specify a revision set for
+log, see <a class="reference external" href="hg.1.html#revsets"><tt class="docutils literal">hg help revsets</tt></a> for more information.</p>
+<p>See <a class="reference external" href="hg.1.html#dates"><tt class="docutils literal">hg help dates</tt></a> for a list of formats valid for -d/--date.</p>
<p>By default this command prints revision number and changeset id,
tags, non-trivial parents, user, date and time, and a summary for
each commit. When the -v/--verbose switch is used, the list of
@@ -1849,68 +1476,6 @@ changesets, as it will only compare the merge changeset against
its first parent. Also, only files different from BOTH parents
will appear in files:.</p>
</div>
-<div class="note">
-<p class="first admonition-title">Note</p>
-<p class="last">for performance reasons, log FILE may omit duplicate changes
-made on branches and will not show deletions. To see all
-changes including duplicates and deletions, use the --removed
-switch.</p>
-</div>
-<div class="verbose container">
-<p>Some examples:</p>
-<ul>
-<li><p class="first">changesets with full descriptions and file lists:</p>
-<pre class="literal-block">
-hg log -v
-</pre>
-</li>
-<li><p class="first">changesets ancestral to the working directory:</p>
-<pre class="literal-block">
-hg log -f
-</pre>
-</li>
-<li><p class="first">last 10 commits on the current branch:</p>
-<pre class="literal-block">
-hg log -l 10 -b .
-</pre>
-</li>
-<li><p class="first">changesets showing all modifications of a file, including removals:</p>
-<pre class="literal-block">
-hg log --removed file.c
-</pre>
-</li>
-<li><p class="first">all changesets that touch a directory, with diffs, excluding merges:</p>
-<pre class="literal-block">
-hg log -Mp lib/
-</pre>
-</li>
-<li><p class="first">all revision numbers that match a keyword:</p>
-<pre class="literal-block">
-hg log -k bug --template &quot;{rev}\n&quot;
-</pre>
-</li>
-<li><p class="first">check if a given changeset is included is a tagged release:</p>
-<pre class="literal-block">
-hg log -r &quot;a21ccf and ancestor(1.9)&quot;
-</pre>
-</li>
-<li><p class="first">find all changesets by some user in a date range:</p>
-<pre class="literal-block">
-hg log -k alice -d &quot;may 2008 to jul 2008&quot;
-</pre>
-</li>
-<li><p class="first">summary of all changesets after the last tag:</p>
-<pre class="literal-block">
-hg log -r &quot;last(tagged())::&quot; --template &quot;{desc|firstline}\n&quot;
-</pre>
-</li>
-</ul>
-</div>
-<p>See <a class="reference external" href="hg.1.html#dates"><tt class="docutils literal">hg help dates</tt></a> for a list of formats valid for -d/--date.</p>
-<p>See <a class="reference external" href="hg.1.html#revisions"><tt class="docutils literal">hg help revisions</tt></a> and <a class="reference external" href="hg.1.html#revsets"><tt class="docutils literal">hg help revsets</tt></a> for more about
-specifying revisions.</p>
-<p>See <a class="reference external" href="hg.1.html#templates"><tt class="docutils literal">hg help templates</tt></a> for more about pre-packaged styles and
-specifying custom templates.</p>
<p>Returns 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -1922,7 +1487,7 @@ specifying custom templates.</p>
<td>follow changeset history, or file history across copies and renames</td></tr>
<tr><td class="option-group">
<kbd><span class="option">--follow-first</span></kbd></td>
-<td>only follow the first parent of merge changesets (DEPRECATED)</td></tr>
+<td>only follow the first parent of merge changesets</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-d</span>, <span class="option">--date</span></kbd></td>
<td>show revisions matching date spec</td></tr>
@@ -1941,7 +1506,7 @@ specifying custom templates.</p>
<tr><td class="option-group" colspan="2">
<kbd><span class="option">-m</span>, <span class="option">--only-merges</span></kbd></td>
</tr>
-<tr><td>&nbsp;</td><td>show only merges (DEPRECATED)</td></tr>
+<tr><td>&nbsp;</td><td>show only merges</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-u</span>, <span class="option">--user</span></kbd></td>
<td>revisions committed by user</td></tr>
@@ -1956,7 +1521,7 @@ specifying custom templates.</p>
<td>do not display revision or any of its ancestors</td></tr>
<tr><td class="option-group">
<kbd><span class="option">--hidden</span></kbd></td>
-<td>show hidden changesets (DEPRECATED)</td></tr>
+<td>show hidden changesets</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-p</span>, <span class="option">--patch</span></kbd></td>
<td>show patch</td></tr>
@@ -1974,9 +1539,6 @@ specifying custom templates.</p>
<kbd><span class="option">--stat</span></kbd></td>
<td>output diffstat-style summary of changes</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">-G</span>, <span class="option">--graph</span></kbd></td>
-<td>show the revision DAG</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">--style</span></kbd></td>
<td>display using template map file</td></tr>
<tr><td class="option-group">
@@ -2052,14 +1614,14 @@ all changes.</p>
<kbd><span class="option">-f</span>, <span class="option">--force</span></kbd></td>
<td>force a merge with outstanding changes</td></tr>
<tr><td class="option-group">
+<kbd><span class="option">-t</span>, <span class="option">--tool</span></kbd></td>
+<td>specify merge tool</td></tr>
+<tr><td class="option-group">
<kbd><span class="option">-r</span>, <span class="option">--rev</span></kbd></td>
<td>revision to merge</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-P</span>, <span class="option">--preview</span></kbd></td>
<td>review revisions to merge (no merge is performed)</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-t</span>, <span class="option">--tool</span></kbd></td>
-<td>specify merge tool</td></tr>
</tbody>
</table>
</div>
@@ -2112,9 +1674,6 @@ be pushed if a push was requested.</p>
<kbd><span class="option">--stat</span></kbd></td>
<td>output diffstat-style summary of changes</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">-G</span>, <span class="option">--graph</span></kbd></td>
-<td>show the revision DAG</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">--style</span></kbd></td>
<td>display using template map file</td></tr>
<tr><td class="option-group">
@@ -2190,44 +1749,6 @@ source is written as <tt class="docutils literal">default</tt> in <tt class="doc
<p>See <a class="reference external" href="hg.1.html#urls"><tt class="docutils literal">hg help urls</tt></a> for more information.</p>
<p>Returns 0 on success.</p>
</div>
-<div class="section" id="phase">
-<h2>phase</h2>
-<pre class="literal-block">
-hg phase [-p|-d|-s] [-f] [-r] REV...
-</pre>
-<p>With no argument, show the phase name of specified revisions.</p>
-<p>With one of -p/--public, -d/--draft or -s/--secret, change the
-phase value of the specified revisions.</p>
-<p>Unless -f/--force is specified, <a class="reference external" href="hg.1.html#phase"><tt class="docutils literal">hg phase</tt></a> won't move changeset from a
-lower phase to an higher phase. Phases are ordered as follows:</p>
-<pre class="literal-block">
-public &lt; draft &lt; secret
-</pre>
-<p>Return 0 on success, 1 if no phases were changed or some could not
-be changed.</p>
-<p>Options:</p>
-<table class="docutils option-list" frame="void" rules="none">
-<col class="option" />
-<col class="description" />
-<tbody valign="top">
-<tr><td class="option-group">
-<kbd><span class="option">-p</span>, <span class="option">--public</span></kbd></td>
-<td>set changeset phase to public</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-d</span>, <span class="option">--draft</span></kbd></td>
-<td>set changeset phase to draft</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-s</span>, <span class="option">--secret</span></kbd></td>
-<td>set changeset phase to secret</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-f</span>, <span class="option">--force</span></kbd></td>
-<td>allow to move boundary backward</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-r</span>, <span class="option">--rev</span></kbd></td>
-<td>target revision</td></tr>
-</tbody>
-</table>
-</div>
<div class="section" id="pull">
<h2>pull</h2>
<pre class="literal-block">
@@ -2297,9 +1818,6 @@ only create a new branch without forcing other changes.</p>
changesets on all branches.</p>
<p>If -r/--rev is used, the specified revision and all its ancestors
will be pushed to the remote repository.</p>
-<p>If -B/--bookmark is used, the specified bookmarked revision, its
-ancestors, and the bookmark will be pushed to the remote
-repository.</p>
<p>Please see <a class="reference external" href="hg.1.html#urls"><tt class="docutils literal">hg help urls</tt></a> for important details about <tt class="docutils literal"><span class="pre">ssh://</span></tt>
URLs. If DESTINATION is omitted, a default path will be used.</p>
<p>Returns 0 if push was successful, 1 if nothing to push.</p>
@@ -2351,66 +1869,28 @@ suggests it.</p>
<pre class="literal-block">
hg remove [OPTION]... FILE...
</pre>
-<p>Schedule the indicated files for removal from the current branch.</p>
-<p>This command schedules the files to be removed at the next commit.
-To undo a remove before that, see <a class="reference external" href="hg.1.html#revert"><tt class="docutils literal">hg revert</tt></a>. To undo added
-files, see <a class="reference external" href="hg.1.html#forget"><tt class="docutils literal">hg forget</tt></a>.</p>
-<div class="verbose container">
-<p>-A/--after can be used to remove only files that have already
-been deleted, -f/--force can be used to force deletion, and -Af
-can be used to remove files from the next revision without
-deleting them from the working directory.</p>
+<p>Schedule the indicated files for removal from the repository.</p>
+<p>This only removes files from the current branch, not from the
+entire project history. -A/--after can be used to remove only
+files that have already been deleted, -f/--force can be used to
+force deletion, and -Af can be used to remove files from the next
+revision without deleting them from the working directory.</p>
<p>The following table details the behavior of remove for different
file states (columns) and option combinations (rows). The file
-states are Added [A], Clean [C], Modified [M] and Missing [!]
-(as reported by <a class="reference external" href="hg.1.html#status"><tt class="docutils literal">hg status</tt></a>). The actions are Warn, Remove
-(from branch) and Delete (from disk):</p>
-<table border="1" class="docutils">
-<colgroup>
-<col width="47%" />
-<col width="13%" />
-<col width="13%" />
-<col width="13%" />
-<col width="13%" />
-</colgroup>
-<thead valign="bottom">
-<tr><th class="head">&nbsp;</th>
-<th class="head">&nbsp;</th>
-<th class="head">&nbsp;</th>
-<th class="head">&nbsp;</th>
-<th class="head">&nbsp;</th>
-</tr>
-</thead>
-<tbody valign="top">
-<tr><td>none</td>
-<td>W</td>
-<td>RD</td>
-<td>W</td>
-<td>R</td>
-</tr>
-<tr><td>-f</td>
-<td>R</td>
-<td>RD</td>
-<td>RD</td>
-<td>R</td>
-</tr>
-<tr><td>-A</td>
-<td>W</td>
-<td>W</td>
-<td>W</td>
-<td>R</td>
-</tr>
-<tr><td>-Af</td>
-<td>R</td>
-<td>R</td>
-<td>R</td>
-<td>R</td>
-</tr>
-</tbody>
-</table>
+states are Added [A], Clean [C], Modified [M] and Missing [!] (as
+reported by <a class="reference external" href="hg.1.html#status"><tt class="docutils literal">hg status</tt></a>). The actions are Warn, Remove (from
+branch) and Delete (from disk):</p>
+<pre class="literal-block">
+ A C M !
+none W RD W R
+-f R RD RD R
+-A W W W R
+-Af R R R R
+</pre>
<p>Note that remove never deletes files in Added [A] state from the
working directory, not even if option --force is specified.</p>
-</div>
+<p>This command schedules the files to be removed at the next commit.
+To undo a remove before that, see <a class="reference external" href="hg.1.html#revert"><tt class="docutils literal">hg revert</tt></a>.</p>
<p>Returns 0 on success, 1 if any warnings encountered.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -2483,8 +1963,7 @@ non-interactive merging using the <tt class="docutils literal">internal:merge</t
setting, or a command-line merge tool like <tt class="docutils literal">diff3</tt>. The resolve
command is used to manage the files involved in a merge, after
<a class="reference external" href="hg.1.html#merge"><tt class="docutils literal">hg merge</tt></a> has been run, and before <a class="reference external" href="hg.1.html#commit"><tt class="docutils literal">hg commit</tt></a> is run (i.e. the
-working directory must have two parents). See <a class="reference external" href="hg.1.html#merge-tools"><tt class="docutils literal">hg help
-<span class="pre">merge-tools</span></tt></a> for information on configuring merge tools.</p>
+working directory must have two parents).</p>
<p>The resolve command can be used in the following ways:</p>
<ul class="simple">
<li><a class="reference external" href="hg.1.html#resolve"><tt class="docutils literal">hg resolve <span class="pre">[--tool</span> TOOL] <span class="pre">FILE...</span></tt></a>: attempt to re-merge the specified
@@ -2492,8 +1971,7 @@ files, discarding any previous merge attempts. Re-merging is not
performed for files already marked as resolved. Use <tt class="docutils literal"><span class="pre">--all/-a</span></tt>
to select all unresolved files. <tt class="docutils literal"><span class="pre">--tool</span></tt> can be used to specify
the merge tool used for the given files. It overrides the HGMERGE
-environment variable and your configuration files. Previous file
-contents are saved with a <tt class="docutils literal">.orig</tt> suffix.</li>
+environment variable and your configuration files.</li>
<li><a class="reference external" href="hg.1.html#resolve"><tt class="docutils literal">hg resolve <span class="pre">-m</span> [FILE]</tt></a>: mark a file as having been resolved
(e.g. after having manually fixed-up the files). The default is
to mark all unresolved files.</li>
@@ -2523,14 +2001,14 @@ commit after a conflicting merge.</p>
<tr><td class="option-group">
<kbd><span class="option">-u</span>, <span class="option">--unmark</span></kbd></td>
<td>mark files as unresolved</td></tr>
+<tr><td class="option-group">
+<kbd><span class="option">-t</span>, <span class="option">--tool</span></kbd></td>
+<td>specify merge tool</td></tr>
<tr><td class="option-group" colspan="2">
<kbd><span class="option">-n</span>, <span class="option">--no-status</span></kbd></td>
</tr>
<tr><td>&nbsp;</td><td>hide status prefix</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">-t</span>, <span class="option">--tool</span></kbd></td>
-<td>specify merge tool</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-I</span>, <span class="option">--include</span></kbd></td>
<td>include names matching the given patterns</td></tr>
<tr><td class="option-group">
@@ -2547,8 +2025,7 @@ hg revert [OPTION]... [-r REV] [NAME]...
<div class="note">
<p class="first admonition-title">Note</p>
<p class="last">To check out earlier revisions, you should use <a class="reference external" href="hg.1.html#update"><tt class="docutils literal">hg update REV</tt></a>.
-To cancel an uncommitted merge (and lose your changes), use
-<a class="reference external" href="hg.1.html#update"><tt class="docutils literal">hg update <span class="pre">--clean</span> .</tt></a>.</p>
+To cancel a merge (and lose your changes), use <a class="reference external" href="hg.1.html#update"><tt class="docutils literal">hg update <span class="pre">--clean</span> .</tt></a>.</p>
</div>
<p>With no revision specified, revert the specified files or directories
to the contents they had in the parent of the working directory.
@@ -2580,10 +2057,9 @@ To disable these backups, use --no-backup.</p>
<tr><td class="option-group">
<kbd><span class="option">-r</span>, <span class="option">--rev</span></kbd></td>
<td>revert to the specified revision</td></tr>
-<tr><td class="option-group" colspan="2">
-<kbd><span class="option">-C</span>, <span class="option">--no-backup</span></kbd></td>
-</tr>
-<tr><td>&nbsp;</td><td>do not save backup copies of files</td></tr>
+<tr><td class="option-group">
+<kbd><span class="option">--no-backup</span></kbd></td>
+<td>do not save backup copies of files</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-I</span>, <span class="option">--include</span></kbd></td>
<td>include names matching the given patterns</td></tr>
@@ -2608,10 +2084,8 @@ any dirstate changes since that time. This command does not alter
the working directory.</p>
<p>Transactions are used to encapsulate the effects of all commands
that create new changesets or propagate existing changesets into a
-repository.</p>
-<div class="verbose container">
-<p>For example, the following commands are transactional, and their
-effects can be rolled back:</p>
+repository. For example, the following commands are transactional,
+and their effects can be rolled back:</p>
<ul class="simple">
<li>commit</li>
<li>import</li>
@@ -2619,10 +2093,6 @@ effects can be rolled back:</p>
<li>push (with this repository as the destination)</li>
<li>unbundle</li>
</ul>
-<p>To avoid permanent data loss, rollback will refuse to rollback a
-commit transaction if it isn't checked out. Use --force to
-override this protection.</p>
-</div>
<p>This command is not intended for use on public repositories. Once
changes are visible for pull by other users, rolling a transaction
back locally is ineffective (someone else may already have pulled
@@ -2638,9 +2108,6 @@ may fail if a rollback is performed.</p>
<tr><td class="option-group">
<kbd><span class="option">-n</span>, <span class="option">--dry-run</span></kbd></td>
<td>do not perform actions, just print output</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-f</span>, <span class="option">--force</span></kbd></td>
-<td>ignore safety measures</td></tr>
</tbody>
</table>
</div>
@@ -2797,27 +2264,6 @@ C = clean
I = ignored
= origin of the previous file listed as A (added)
</pre>
-<div class="verbose container">
-<p>Examples:</p>
-<ul>
-<li><p class="first">show changes in the working directory relative to a
-changeset:</p>
-<pre class="literal-block">
-hg status --rev 9353
-</pre>
-</li>
-<li><p class="first">show all changes including copies in an existing changeset:</p>
-<pre class="literal-block">
-hg status --copies --change 9353
-</pre>
-</li>
-<li><p class="first">get a NUL separated list of added files, suitable for xargs:</p>
-<pre class="literal-block">
-hg status -an0
-</pre>
-</li>
-</ul>
-</div>
<p>Returns 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -3027,16 +2473,14 @@ hg update [-c] [-C] [-d DATE] [[-r] REV]
</pre>
<p>Update the repository's working directory to the specified
changeset. If no changeset is specified, update to the tip of the
-current named branch and move the current bookmark (see <a class="reference external" href="hg.1.html#bookmarks"><tt class="docutils literal">hg help
-bookmarks</tt></a>).</p>
+current named branch.</p>
+<p>If the changeset is not a descendant of the working directory's
+parent, the update is aborted. With the -c/--check option, the
+working directory is checked for uncommitted changes; if none are
+found, the working directory is updated to the specified
+changeset.</p>
<p>Update sets the working directory's parent revison to the specified
changeset (see <a class="reference external" href="hg.1.html#parents"><tt class="docutils literal">hg help parents</tt></a>).</p>
-<p>If the changeset is not a descendant or ancestor of the working
-directory's parent, the update is aborted. With the -c/--check
-option, the working directory is checked for uncommitted changes; if
-none are found, the working directory is updated to the specified
-changeset.</p>
-<div class="verbose container">
<p>The following rules apply when the working directory contains
uncommitted changes:</p>
<ol class="arabic simple">
@@ -3053,9 +2497,6 @@ uncommitted changes are preserved.</li>
<li>With the -C/--clean option, uncommitted changes are discarded and
the working directory is updated to the requested changeset.</li>
</ol>
-</div>
-<p>To cancel an uncommitted merge (and lose your changes), use
-<a class="reference external" href="hg.1.html#update"><tt class="docutils literal">hg update <span class="pre">--clean</span> .</tt></a>.</p>
<p>Use null as the changeset to remove the working directory (like
<a class="reference external" href="hg.1.html#clone"><tt class="docutils literal">hg clone <span class="pre">-U</span></tt></a>).</p>
<p>If you want to revert just one file to an older revision, use
@@ -3267,7 +2708,7 @@ set appropriately if this Mercurial is not installed system-wide.</dd>
</dl>
</div>
<div class="section" id="using-additional-features">
-<span id="extensions"></span><h1><a class="toc-backref" href="#contents">Using Additional Features</a></h1>
+<span id="extensions"></span><h1><a class="toc-backref" href="#contents">Using additional features</a></h1>
<p>Mercurial has the ability to add new features through the use of
extensions. Extensions may add new commands, add options to
existing commands, change the default behavior of commands, or
@@ -3310,7 +2751,7 @@ baz = !
</tr>
<tr class="field"><th class="field-name">bugzilla:</th><td class="field-body">hooks for integrating with the Bugzilla bug tracker</td>
</tr>
-<tr class="field"><th class="field-name">children:</th><td class="field-body">command to display child changesets (DEPRECATED)</td>
+<tr class="field"><th class="field-name">children:</th><td class="field-body">command to display child changesets</td>
</tr>
<tr class="field"><th class="field-name">churn:</th><td class="field-body">command to display statistics about repository history</td>
</tr>
@@ -3322,9 +2763,7 @@ baz = !
</tr>
<tr class="field"><th class="field-name">extdiff:</th><td class="field-body">command to allow external programs to compare revisions</td>
</tr>
-<tr class="field"><th class="field-name">factotum:</th><td class="field-body">http authentication with factotum</td>
-</tr>
-<tr class="field"><th class="field-name">fetch:</th><td class="field-body">pull, update and merge in one command (DEPRECATED)</td>
+<tr class="field"><th class="field-name">fetch:</th><td class="field-body">pull, update and merge in one command</td>
</tr>
<tr class="field"><th class="field-name">gpg:</th><td class="field-body">commands to sign and verify changesets</td>
</tr>
@@ -3336,19 +2775,15 @@ baz = !
</tr>
<tr class="field"><th class="field-name">highlight:</th><td class="field-body">syntax highlighting for hgweb (requires Pygments)</td>
</tr>
-<tr class="field"><th class="field-name">histedit:</th><td class="field-body">interactive history editing</td>
-</tr>
<tr class="field"><th class="field-name">inotify:</th><td class="field-body">accelerate status report using Linux's inotify service</td>
</tr>
<tr class="field"><th class="field-name">interhg:</th><td class="field-body">expand expressions into changelog and summaries</td>
</tr>
<tr class="field"><th class="field-name">keyword:</th><td class="field-body">expand keywords in tracked files</td>
</tr>
-<tr class="field"><th class="field-name">largefiles:</th><td class="field-body">track large binary files</td>
-</tr>
<tr class="field"><th class="field-name">mq:</th><td class="field-body">manage a stack of patches</td>
</tr>
-<tr class="field"><th class="field-name">notify:</th><td class="field-body">hooks for sending email push notifications</td>
+<tr class="field"><th class="field-name">notify:</th><td class="field-body">hooks for sending email notifications at commit/push time</td>
</tr>
<tr class="field"><th class="field-name">pager:</th><td class="field-body">browse command output with an external pager</td>
</tr>
@@ -3381,7 +2816,7 @@ baz = !
</blockquote>
</div>
<div class="section" id="specifying-file-sets">
-<span id="fileset"></span><span id="filesets"></span><h1><a class="toc-backref" href="#contents">Specifying File Sets</a></h1>
+<span id="filesets"></span><span id="fileset"></span><h1><a class="toc-backref" href="#contents">Specifying File Sets</a></h1>
<p>Mercurial supports a functional language for selecting a set of
files.</p>
<p>Like other file patterns, this pattern type is indicated by a prefix,
@@ -3450,8 +2885,6 @@ considered if this predicate is used.</dd>
<li>4k - 1MB (files from 4096 bytes to 1048576 bytes)</li>
</ul>
</dd>
-<dt><tt class="docutils literal"><span class="pre">subrepo([pattern])</span></tt></dt>
-<dd>Subrepositories whose paths match the given pattern.</dd>
<dt><tt class="docutils literal">symlink()</tt></dt>
<dd>File that is marked as a symlink.</dd>
<dt><tt class="docutils literal">unknown()</tt></dt>
@@ -3479,7 +2912,7 @@ hg locate &quot;set:grep(magic) and not binary()&quot;
</li>
<li><p class="first">Find C files in a non-standard encoding:</p>
<pre class="literal-block">
-hg locate &quot;set:**.c and not encoding('UTF-8')&quot;
+hg locate &quot;set:**.c and not encoding(ascii)&quot;
</pre>
</li>
<li><p class="first">Revert copies of large binary files:</p>
@@ -3611,7 +3044,7 @@ changeset is much more appropriate than checkout in this context.</p>
<dt>Child changeset</dt>
<dd>See 'Changeset, child'.</dd>
<dt>Close changeset</dt>
-<dd>See 'Head, closed branch'</dd>
+<dd>See 'Changeset, close'.</dd>
<dt>Closed branch</dt>
<dd>See 'Branch, closed'.</dd>
<dt>Clone</dt>
@@ -3671,10 +3104,6 @@ changeset, known as the parent of the working directory. See
'Parent, working directory'. The state may be modified by changes
to the files introduced manually or by a merge. The repository
metadata exists in the .hg directory inside the working directory.</dd>
-<dt>Draft</dt>
-<dd>Changesets in the draft phase have not been shared with publishing
-repositories and may thus be safely changed by history-modifying
-extensions. See <a class="reference external" href="hg.1.html#phases"><tt class="docutils literal">hg help phases</tt></a>.</dd>
<dt>Graph</dt>
<dd>See DAG and <a class="reference external" href="hg.1.html#graphlog"><tt class="docutils literal">hg help graphlog</tt></a>.</dd>
<dt>Head</dt>
@@ -3687,13 +3116,10 @@ usual targets for update and merge operations.</p>
<dt>Head, branch</dt>
<dd>A changeset with no descendants on the same named branch.</dd>
<dt>Head, closed branch</dt>
-<dd><p class="first">A changeset that marks a head as no longer interesting. The closed
+<dd>A changeset that marks a head as no longer interesting. The closed
head is no longer listed by <a class="reference external" href="hg.1.html#heads"><tt class="docutils literal">hg heads</tt></a>. A branch is considered
closed when all its heads are closed and consequently is not
-listed by <a class="reference external" href="hg.1.html#branches"><tt class="docutils literal">hg branches</tt></a>.</p>
-<p class="last">Closed heads can be re-opened by committing new changeset as the
-child of the changeset that marks a head as closed.</p>
-</dd>
+listed by <a class="reference external" href="hg.1.html#branches"><tt class="docutils literal">hg branches</tt></a>.</dd>
<dt>Head, repository</dt>
<dd>A topological head which has not been closed.</dd>
<dt>Head, topological</dt>
@@ -3746,13 +3172,6 @@ are <a class="reference external" href="hg.1.html#summary"><tt class="docutils l
changeset into another.</p>
<p class="last">Example: &quot;You will need to patch that revision.&quot;</p>
</dd>
-<dt>Phase</dt>
-<dd>A per-changeset state tracking how the changeset has been or
-should be shared. See <a class="reference external" href="hg.1.html#phases"><tt class="docutils literal">hg help phases</tt></a>.</dd>
-<dt>Public</dt>
-<dd>Changesets in the public phase have been shared with publishing
-repositories and are therefore considered immutable. See <a class="reference external" href="hg.1.html#phases"><tt class="docutils literal">hg help
-phases</tt></a>.</dd>
<dt>Pull</dt>
<dd>An operation in which changesets in a remote repository which are
not in the local repository are brought into the local
@@ -3795,9 +3214,6 @@ pointing to the data.</dd>
<dt>Root</dt>
<dd>A changeset that has only the null changeset as its parent. Most
repositories have only a single root changeset.</dd>
-<dt>Secret</dt>
-<dd>Changesets in the secret phase may not be shared via push, pull,
-or clone. See <a class="reference external" href="hg.1.html#phases"><tt class="docutils literal">hg help phases</tt></a>.</dd>
<dt>Tag</dt>
<dd>An alternative name given to a changeset. Tags can be used in all
places where Mercurial expects a changeset ID, e.g., with
@@ -3827,15 +3243,16 @@ the working directory to that of a specific changeset. See
</dl>
</div>
<div class="section" id="syntax-for-mercurial-ignore-files">
-<span id="ignore"></span><span id="hgignore"></span><h1><a class="toc-backref" href="#contents">Syntax for Mercurial Ignore Files</a></h1>
+<span id="ignore"></span><span id="hgignore"></span><h1><a class="toc-backref" href="#contents">syntax for Mercurial ignore files</a></h1>
+</div>
<div class="section" id="id2">
-<h2>Synopsis</h2>
+<h1><a class="toc-backref" href="#contents">Synopsis</a></h1>
<p>The Mercurial system uses a file called <tt class="docutils literal">.hgignore</tt> in the root
directory of a repository to control its behavior when it searches
for files that it is not currently tracking.</p>
</div>
<div class="section" id="id3">
-<h2>Description</h2>
+<h1><a class="toc-backref" href="#contents">Description</a></h1>
<p>The working directory of a Mercurial repository will often contain
files that should not be tracked by Mercurial. These include backup
files created by editors and build products created by compilers.
@@ -3856,13 +3273,9 @@ configure these files.</p>
<p>To control Mercurial's handling of files that it manages, many
commands support the <tt class="docutils literal"><span class="pre">-I</span></tt> and <tt class="docutils literal"><span class="pre">-X</span></tt> options; see
<a class="reference external" href="hg.1.html#&lt;command&gt;"><tt class="docutils literal">hg help &lt;command&gt;</tt></a> and <a class="reference external" href="hg.1.html#patterns"><tt class="docutils literal">hg help patterns</tt></a> for details.</p>
-<p>Files that are already tracked are not affected by .hgignore, even
-if they appear in .hgignore. An untracked file X can be explicitly
-added with <a class="reference external" href="hg.1.html#add"><tt class="docutils literal">hg add X</tt></a>, even if X would be excluded by a pattern
-in .hgignore.</p>
</div>
<div class="section" id="syntax">
-<h2>Syntax</h2>
+<h1><a class="toc-backref" href="#contents">Syntax</a></h1>
<p>An ignore file is a plain text file consisting of a list of patterns,
with one pattern per line. Empty lines are skipped. The <tt class="docutils literal">#</tt>
character is treated as a comment character, and the <tt class="docutils literal">\</tt> character
@@ -3886,14 +3299,9 @@ follow, until another syntax is selected.</p>
the form <tt class="docutils literal">*.c</tt> will match a file ending in <tt class="docutils literal">.c</tt> in any directory,
and a regexp pattern of the form <tt class="docutils literal">\.c$</tt> will do the same. To root a
regexp pattern, start it with <tt class="docutils literal">^</tt>.</p>
-<div class="note">
-<p class="first admonition-title">Note</p>
-<p class="last">Patterns specified in other than <tt class="docutils literal">.hgignore</tt> are always rooted.
-Please see <a class="reference external" href="hg.1.html#patterns"><tt class="docutils literal">hg help patterns</tt></a> for details.</p>
-</div>
</div>
<div class="section" id="example">
-<h2>Example</h2>
+<h1><a class="toc-backref" href="#contents">Example</a></h1>
<p>Here is an example ignore file.</p>
<pre class="literal-block">
# use glob syntax.
@@ -3908,16 +3316,14 @@ syntax: regexp
^\.pc/
</pre>
</div>
-</div>
<div class="section" id="configuring-hgweb">
<span id="hgweb"></span><h1><a class="toc-backref" href="#contents">Configuring hgweb</a></h1>
<p>Mercurial's internal web server, hgweb, can serve either a single
-repository, or a tree of repositories. In the second case, repository
-paths and global options can be defined using a dedicated
-configuration file common to <a class="reference external" href="hg.1.html#serve"><tt class="docutils literal">hg serve</tt></a>, <tt class="docutils literal">hgweb.wsgi</tt>,
-<tt class="docutils literal">hgweb.cgi</tt> and <tt class="docutils literal">hgweb.fcgi</tt>.</p>
-<p>This file uses the same syntax as other Mercurial configuration files
-but recognizes only the following sections:</p>
+repository, or a collection of them. In the latter case, a special
+configuration file can be used to specify the repository paths to use
+and global web configuration options.</p>
+<p>This file uses the same syntax as other Mercurial configuration files,
+but only the following sections are recognized:</p>
<blockquote>
<ul class="simple">
<li>web</li>
@@ -3925,43 +3331,44 @@ but recognizes only the following sections:</p>
<li>collections</li>
</ul>
</blockquote>
-<p>The <tt class="docutils literal">web</tt> options are thorougly described in <a class="reference external" href="hg.1.html#config"><tt class="docutils literal">hg help config</tt></a>.</p>
-<p>The <tt class="docutils literal">paths</tt> section maps URL paths to paths of repositories in the
-filesystem. hgweb will not expose the filesystem directly - only
-Mercurial repositories can be published and only according to the
-configuration.</p>
-<p>The left hand side is the path in the URL. Note that hgweb reserves
-subpaths like <tt class="docutils literal">rev</tt> or <tt class="docutils literal">file</tt>, try using different names for
-nested repositories to avoid confusing effects.</p>
-<p>The right hand side is the path in the filesystem. If the specified
-path ends with <tt class="docutils literal">*</tt> or <tt class="docutils literal">**</tt> the filesystem will be searched
-recursively for repositories below that point.
-With <tt class="docutils literal">*</tt> it will not recurse into the repositories it finds (except for
-<tt class="docutils literal">.hg/patches</tt>).
-With <tt class="docutils literal">**</tt> it will also search inside repository working directories
-and possibly find subrepositories.</p>
-<p>In this example:</p>
+<p>The <tt class="docutils literal">web</tt> section can specify all the settings described in the web
+section of the hgrc(5) documentation. See <a class="reference external" href="hg.1.html#config"><tt class="docutils literal">hg help config</tt></a> for
+information on where to find the manual page.</p>
+<p>The <tt class="docutils literal">paths</tt> section provides mappings of physical repository
+paths to virtual ones. For instance:</p>
<pre class="literal-block">
[paths]
-/projects/a = /srv/tmprepos/a
-/projects/b = c:/repos/b
-/ = /srv/repos/*
-/user/bob = /home/bob/repos/**
+projects/a = /foo/bar
+projects/b = /baz/quux
+web/root = /real/root/*
+/ = /real/root2/*
+virtual/root2 = /real/root2/**
</pre>
<ul class="simple">
<li>The first two entries make two repositories in different directories
appear under the same directory in the web interface</li>
-<li>The third entry will publish every Mercurial repository found in
-<tt class="docutils literal">/srv/repos/</tt>, for instance the repository <tt class="docutils literal">/srv/repos/quux/</tt>
-will appear as <tt class="docutils literal"><span class="pre">http://server/quux/</span></tt></li>
-<li>The fourth entry will publish both <tt class="docutils literal"><span class="pre">http://server/user/bob/quux/</span></tt>
-and <tt class="docutils literal"><span class="pre">http://server/user/bob/quux/testsubrepo/</span></tt></li>
+<li>The third entry maps every Mercurial repository found in '/real/root'
+into 'web/root'. This format is preferred over the [collections] one,
+since using absolute paths as configuration keys is not supported on every
+platform (especially on Windows).</li>
+<li>The fourth entry is a special case mapping all repositories in
+'/real/root2' in the root of the virtual directory.</li>
+<li>The fifth entry recursively finds all repositories under the real
+root, and maps their relative paths under the virtual root.</li>
</ul>
-<p>The <tt class="docutils literal">collections</tt> section is deprecated and has been superseeded by
-<tt class="docutils literal">paths</tt>.</p>
+<p>The <tt class="docutils literal">collections</tt> section provides mappings of trees of physical
+repositories paths to virtual ones, though the paths syntax is generally
+preferred. For instance:</p>
+<pre class="literal-block">
+[collections]
+/foo = /foo
+</pre>
+<p>Here, the left side will be stripped off all repositories found in the
+right side. Thus <tt class="docutils literal">/foo/bar</tt> and <tt class="docutils literal">foo/quux/baz</tt> will be listed as
+<tt class="docutils literal">bar</tt> and <tt class="docutils literal">quux/baz</tt> respectively.</p>
</div>
<div class="section" id="id4">
-<span id="mergetools"></span><span id="merge-tools"></span><h1><a class="toc-backref" href="#contents">Merge Tools</a></h1>
+<span id="merge-tools"></span><h1><a class="toc-backref" href="#contents">Merge Tools</a></h1>
<p>To merge files Mercurial uses merge tools.</p>
<p>A merge tool combines two different versions of a file into a merged
file. Merge tools are given the two files and the greatest common
@@ -3991,28 +3398,28 @@ GUI is available if the tool requires a GUI.</p>
<p>There are some internal merge tools which can be used. The internal
merge tools are:</p>
<dl class="docutils">
-<dt><tt class="docutils literal">internal:dump</tt></dt>
-<dd>Creates three versions of the files to merge, containing the
-contents of local, other and base. These files can then be used to
-perform a merge manually. If the file to be merged is named
-<tt class="docutils literal">a.txt</tt>, these files will accordingly be named <tt class="docutils literal">a.txt.local</tt>,
-<tt class="docutils literal">a.txt.other</tt> and <tt class="docutils literal">a.txt.base</tt> and they will be placed in the
-same directory as <tt class="docutils literal">a.txt</tt>.</dd>
+<dt><tt class="docutils literal">internal:merge</tt></dt>
+<dd>Uses the internal non-interactive simple merge algorithm for merging
+files. It will fail if there are any conflicts and leave markers in
+the partially merged file.</dd>
<dt><tt class="docutils literal">internal:fail</tt></dt>
<dd>Rather than attempting to merge files that were modified on both
branches, it marks them as unresolved. The resolve command must be
used to resolve these conflicts.</dd>
<dt><tt class="docutils literal">internal:local</tt></dt>
<dd>Uses the local version of files as the merged version.</dd>
-<dt><tt class="docutils literal">internal:merge</tt></dt>
-<dd>Uses the internal non-interactive simple merge algorithm for merging
-files. It will fail if there are any conflicts and leave markers in
-the partially merged file.</dd>
<dt><tt class="docutils literal">internal:other</tt></dt>
<dd>Uses the other version of files as the merged version.</dd>
<dt><tt class="docutils literal">internal:prompt</tt></dt>
<dd>Asks the user which of the local or the other version to keep as
the merged version.</dd>
+<dt><tt class="docutils literal">internal:dump</tt></dt>
+<dd>Creates three versions of the files to merge, containing the
+contents of local, other and base. These files can then be used to
+perform a merge manually. If the file to be merged is named
+<tt class="docutils literal">a.txt</tt>, these files will accordingly be named <tt class="docutils literal">a.txt.local</tt>,
+<tt class="docutils literal">a.txt.other</tt> and <tt class="docutils literal">a.txt.base</tt> and they will be placed in the
+same directory as <tt class="docutils literal">a.txt</tt>.</dd>
</dl>
<p>Internal tools are always available and do not require a GUI but will by default
not handle symlinks or binary files.</p>
@@ -4056,7 +3463,7 @@ configuration of merge tools.</p>
</div>
</div>
<div class="section" id="specifying-multiple-revisions">
-<span id="mrevs"></span><span id="multirevs"></span><h1><a class="toc-backref" href="#contents">Specifying Multiple Revisions</a></h1>
+<span id="multirevs"></span><span id="mrevs"></span><h1><a class="toc-backref" href="#contents">Specifying Multiple Revisions</a></h1>
<p>When Mercurial accepts more than one revision, they may be specified
individually, or provided as a topologically continuous range,
separated by the &quot;:&quot; character.</p>
@@ -4075,11 +3482,6 @@ at a time.</p>
<p>By default, Mercurial treats filenames as shell-style extended glob
patterns.</p>
<p>Alternate pattern notations must be specified explicitly.</p>
-<div class="note">
-<p class="first admonition-title">Note</p>
-<p class="last">Patterns specified in <tt class="docutils literal">.hgignore</tt> are not rooted.
-Please see <a class="reference external" href="hg.1.html#hgignore"><tt class="docutils literal">hg help hgignore</tt></a> for details.</p>
-</div>
<p>To use a plain path name without any pattern matching, start it with
<tt class="docutils literal">path:</tt>. These path names must completely match starting at the
current repository root.</p>
@@ -4121,103 +3523,8 @@ listfile0:list.txt read list from list.txt with null byte delimiters
</pre>
<p>See also <a class="reference external" href="hg.1.html#filesets"><tt class="docutils literal">hg help filesets</tt></a>.</p>
</div>
-<div class="section" id="working-with-phases">
-<span id="phases"></span><h1><a class="toc-backref" href="#contents">Working with Phases</a></h1>
-<div class="section" id="what-are-phases">
-<h2>What are phases?</h2>
-<p>Phases are a system for tracking which changesets have been or should
-be shared. This helps prevent common mistakes when modifying history
-(for instance, with the mq or rebase extensions).</p>
-<p>Each changeset in a repository is in one of the following phases:</p>
-<blockquote>
-<ul class="simple">
-<li>public : changeset is visible on a public server</li>
-<li>draft : changeset is not yet published</li>
-<li>secret : changeset should not be pushed, pulled, or cloned</li>
-</ul>
-</blockquote>
-<p>These phases are ordered (public &lt; draft &lt; secret) and no changeset
-can be in a lower phase than its ancestors. For instance, if a
-changeset is public, all its ancestors are also public. Lastly,
-changeset phases should only be changed towards the public phase.</p>
-</div>
-<div class="section" id="how-are-phases-managed">
-<h2>How are phases managed?</h2>
-<p>For the most part, phases should work transparently. By default, a
-changeset is created in the draft phase and is moved into the public
-phase when it is pushed to another repository.</p>
-<p>Once changesets become public, extensions like mq and rebase will
-refuse to operate on them to prevent creating duplicate changesets.
-Phases can also be manually manipulated with the <a class="reference external" href="hg.1.html#phase"><tt class="docutils literal">hg phase</tt></a> command
-if needed. See <a class="reference external" href="hg.1.html#-v"><tt class="docutils literal">hg help <span class="pre">-v</span> phase</tt></a> for examples.</p>
-</div>
-<div class="section" id="phases-and-servers">
-<h2>Phases and servers</h2>
-<p>Normally, all servers are <tt class="docutils literal">publishing</tt> by default. This means:</p>
-<pre class="literal-block">
-- all draft changesets that are pulled or cloned appear in phase
-public on the client
-
-- all draft changesets that are pushed appear as public on both
-client and server
-
-- secret changesets are neither pushed, pulled, or cloned
-</pre>
-<div class="note">
-<p class="first admonition-title">Note</p>
-<p class="last">Pulling a draft changeset from a publishing server does not mark it
-as public on the server side due to the read-only nature of pull.</p>
-</div>
-<p>Sometimes it may be desirable to push and pull changesets in the draft
-phase to share unfinished work. This can be done by setting a
-repository to disable publishing in its configuration file:</p>
-<pre class="literal-block">
-[phases]
-publish = False
-</pre>
-<p>See <a class="reference external" href="hg.1.html#config"><tt class="docutils literal">hg help config</tt></a> for more information on config files.</p>
-<div class="note">
-<p class="first admonition-title">Note</p>
-<p class="last">Servers running older versions of Mercurial are treated as
-publishing.</p>
-</div>
-</div>
-<div class="section" id="examples">
-<h2>Examples</h2>
-<blockquote>
-<ul>
-<li><p class="first">list changesets in draft or secret phase:</p>
-<pre class="literal-block">
-hg log -r &quot;not public()&quot;
-</pre>
-</li>
-<li><p class="first">change all secret changesets to draft:</p>
-<pre class="literal-block">
-hg phase --draft &quot;secret()&quot;
-</pre>
-</li>
-<li><p class="first">forcibly move the current changeset and descendants from public to draft:</p>
-<pre class="literal-block">
-hg phase --force --draft .
-</pre>
-</li>
-<li><p class="first">show a list of changeset revision and phase:</p>
-<pre class="literal-block">
-hg log --template &quot;{rev} {phase}\n&quot;
-</pre>
-</li>
-<li><p class="first">resynchronize draft changesets relative to a remote repository:</p>
-<pre class="literal-block">
-hg phase -fd 'outgoing(URL)'
-</pre>
-</li>
-</ul>
-</blockquote>
-<p>See <a class="reference external" href="hg.1.html#phase"><tt class="docutils literal">hg help phase</tt></a> for more information on manually manipulating phases.</p>
-</div>
-</div>
<div class="section" id="specifying-single-revisions">
-<span id="revs"></span><span id="revisions"></span><h1><a class="toc-backref" href="#contents">Specifying Single Revisions</a></h1>
+<span id="revisions"></span><span id="revs"></span><h1><a class="toc-backref" href="#contents">Specifying Single Revisions</a></h1>
<p>Mercurial supports several ways to specify individual revisions.</p>
<p>A plain integer is treated as a revision number. Negative integers are
treated as sequential offsets from the tip, with -1 denoting the tip,
@@ -4228,12 +3535,12 @@ identifier.</p>
unique revision identifier and is referred to as a short-form
identifier. A short-form identifier is only valid if it is the prefix
of exactly one full-length identifier.</p>
-<p>Any other string is treated as a bookmark, tag, or branch name. A
-bookmark is a movable pointer to a revision. A tag is a permanent name
-associated with a revision. A branch name denotes the tipmost revision
-of that branch. Bookmark, tag, and branch names must not contain the &quot;:&quot;
-character.</p>
-<p>The reserved name &quot;tip&quot; always identifies the most recent revision.</p>
+<p>Any other string is treated as a tag or branch name. A tag name is a
+symbolic name associated with a revision identifier. A branch name
+denotes the tipmost revision of that branch. Tag and branch names must
+not contain the &quot;:&quot; character.</p>
+<p>The reserved name &quot;tip&quot; is a special tag that always identifies the
+most recent revision.</p>
<p>The reserved name &quot;null&quot; indicates the null revision. This is the
revision of an empty repository, and the parent of revision 0.</p>
<p>The reserved name &quot;.&quot; indicates the working directory parent. If no
@@ -4242,14 +3549,15 @@ uncommitted merge is in progress, &quot;.&quot; is the revision of the first
parent.</p>
</div>
<div class="section" id="specifying-revision-sets">
-<span id="revset"></span><span id="revsets"></span><h1><a class="toc-backref" href="#contents">Specifying Revision Sets</a></h1>
+<span id="revsets"></span><span id="revset"></span><h1><a class="toc-backref" href="#contents">Specifying Revision Sets</a></h1>
<p>Mercurial supports a functional language for selecting a set of
revisions.</p>
<p>The language supports a number of predicates which are joined by infix
operators. Parenthesis can be used for grouping.</p>
-<p>Identifiers such as branch names may need quoting with single or
-double quotes if they contain characters like <tt class="docutils literal">-</tt> or if they match
-one of the predefined predicates.</p>
+<p>Identifiers such as branch names must be quoted with single or double
+quotes if they contain characters outside of
+<tt class="docutils literal"><span class="pre">[._a-zA-Z0-9\x80-\xff]</span></tt> or if they match one of the predefined
+predicates.</p>
<p>Special characters can be used in quoted identifiers by escaping them,
e.g., <tt class="docutils literal">\n</tt> is interpreted as a newline. To prevent them from being
interpreted, strings can be prefixed with <tt class="docutils literal">r</tt>, e.g. <tt class="docutils literal"><span class="pre">r'...'</span></tt>.</p>
@@ -4302,31 +3610,13 @@ for n == 2, the second parent of changeset in x.</dd>
<dd>Changesets that are ancestors of a changeset in set.</dd>
<dt><tt class="docutils literal">author(string)</tt></dt>
<dd>Alias for <tt class="docutils literal">user(string)</tt>.</dd>
-<dt><tt class="docutils literal">bisect(string)</tt></dt>
-<dd><p class="first">Changesets marked in the specified bisect status:</p>
-<ul class="last simple">
-<li><tt class="docutils literal">good</tt>, <tt class="docutils literal">bad</tt>, <tt class="docutils literal">skip</tt>: csets explicitly marked as good/bad/skip</li>
-<li><tt class="docutils literal">goods</tt>, <tt class="docutils literal">bads</tt> : csets topologicaly good/bad</li>
-<li><tt class="docutils literal">range</tt> : csets taking part in the bisection</li>
-<li><tt class="docutils literal">pruned</tt> : csets that are goods, bads or skipped</li>
-<li><tt class="docutils literal">untested</tt> : csets whose fate is yet unknown</li>
-<li><tt class="docutils literal">ignored</tt> : csets ignored due to DAG topology</li>
-<li><tt class="docutils literal">current</tt> : the cset currently being bisected</li>
-</ul>
-</dd>
+<dt><tt class="docutils literal">bisected(string)</tt></dt>
+<dd>Changesets marked in the specified bisect state (good, bad, skip).</dd>
<dt><tt class="docutils literal"><span class="pre">bookmark([name])</span></tt></dt>
-<dd><p class="first">The named bookmark or all bookmarks.</p>
-<p class="last">If <cite>name</cite> starts with <cite>re:</cite>, the remainder of the name is treated as
-a regular expression. To match a bookmark that actually starts with <cite>re:</cite>,
-use the prefix <cite>literal:</cite>.</p>
-</dd>
+<dd>The named bookmark or all bookmarks.</dd>
<dt><tt class="docutils literal">branch(string or set)</tt></dt>
-<dd><p class="first">All changesets belonging to the given branch or the branches of the given
-changesets.</p>
-<p class="last">If <cite>string</cite> starts with <cite>re:</cite>, the remainder of the name is treated as
-a regular expression. To match a branch that actually starts with <cite>re:</cite>,
-use the prefix <cite>literal:</cite>.</p>
-</dd>
+<dd>All changesets belonging to the given branch or the branches of the given
+changesets.</dd>
<dt><tt class="docutils literal">children(set)</tt></dt>
<dd>Child changesets of changesets in set.</dd>
<dt><tt class="docutils literal">closed()</tt></dt>
@@ -4334,43 +3624,16 @@ use the prefix <cite>literal:</cite>.</p>
<dt><tt class="docutils literal">contains(pattern)</tt></dt>
<dd>Revision contains a file matching pattern. See <a class="reference external" href="hg.1.html#patterns"><tt class="docutils literal">hg help patterns</tt></a>
for information about file patterns.</dd>
-<dt><tt class="docutils literal"><span class="pre">converted([id])</span></tt></dt>
-<dd>Changesets converted from the given identifier in the old repository if
-present, or all converted changesets if no identifier is specified.</dd>
<dt><tt class="docutils literal">date(interval)</tt></dt>
<dd>Changesets within the interval, see <a class="reference external" href="hg.1.html#dates"><tt class="docutils literal">hg help dates</tt></a>.</dd>
<dt><tt class="docutils literal">desc(string)</tt></dt>
<dd>Search commit message for string. The match is case-insensitive.</dd>
<dt><tt class="docutils literal">descendants(set)</tt></dt>
<dd>Changesets which are descendants of changesets in set.</dd>
-<dt><tt class="docutils literal"><span class="pre">destination([set])</span></tt></dt>
-<dd>Changesets that were created by a graft, transplant or rebase operation,
-with the given revisions specified as the source. Omitting the optional set
-is the same as passing all().</dd>
-<dt><tt class="docutils literal">draft()</tt></dt>
-<dd>Changeset in draft phase.</dd>
-<dt><tt class="docutils literal">extinct()</tt></dt>
-<dd>Obsolete changesets with obsolete descendants only.</dd>
-<dt><tt class="docutils literal">extra(label, [value])</tt></dt>
-<dd><p class="first">Changesets with the given label in the extra metadata, with the given
-optional value.</p>
-<p class="last">If <cite>value</cite> starts with <cite>re:</cite>, the remainder of the value is treated as
-a regular expression. To match a value that actually starts with <cite>re:</cite>,
-use the prefix <cite>literal:</cite>.</p>
-</dd>
<dt><tt class="docutils literal">file(pattern)</tt></dt>
-<dd><p class="first">Changesets affecting files matched by pattern.</p>
-<p class="last">For a faster but less accurate result, consider using <tt class="docutils literal">filelog()</tt>
-instead.</p>
-</dd>
+<dd>Changesets affecting files matched by pattern.</dd>
<dt><tt class="docutils literal">filelog(pattern)</tt></dt>
-<dd><p class="first">Changesets connected to the specified filelog.</p>
-<p class="last">For performance reasons, <tt class="docutils literal">filelog()</tt> does not show every changeset
-that affects the requested file(s). See <a class="reference external" href="hg.1.html#log"><tt class="docutils literal">hg help log</tt></a> for details. For
-a slower, more accurate result, use <tt class="docutils literal">file()</tt>.</p>
-</dd>
-<dt><tt class="docutils literal">first(set, [n])</tt></dt>
-<dd>An alias for limit().</dd>
+<dd>Changesets connected to the specified filelog.</dd>
<dt><tt class="docutils literal"><span class="pre">follow([file])</span></tt></dt>
<dd>An alias for <tt class="docutils literal">::.</tt> (ancestors of the working copy's first parent).
If a filename is specified, the history of the given file is followed,
@@ -4388,29 +3651,10 @@ to ensure special escape characters are handled correctly. Unlike
<dt><tt class="docutils literal">keyword(string)</tt></dt>
<dd>Search commit message, user name, and names of changed files for
string. The match is case-insensitive.</dd>
-<dt><tt class="docutils literal">last(set, [n])</tt></dt>
-<dd>Last n members of set, defaulting to 1.</dd>
-<dt><tt class="docutils literal">limit(set, [n])</tt></dt>
-<dd>First n members of set, defaulting to 1.</dd>
-<dt><tt class="docutils literal">matching(revision [, field])</tt></dt>
-<dd><p class="first">Changesets in which a given set of fields match the set of fields in the
-selected revision or set.</p>
-<p>To match more than one field pass the list of fields to match separated
-by spaces (e.g. <tt class="docutils literal">author description</tt>).</p>
-<p>Valid fields are most regular revision fields and some special fields.</p>
-<p>Regular revision fields are <tt class="docutils literal">description</tt>, <tt class="docutils literal">author</tt>, <tt class="docutils literal">branch</tt>,
-<tt class="docutils literal">date</tt>, <tt class="docutils literal">files</tt>, <tt class="docutils literal">phase</tt>, <tt class="docutils literal">parents</tt>, <tt class="docutils literal">substate</tt>, <tt class="docutils literal">user</tt>
-and <tt class="docutils literal">diff</tt>.
-Note that <tt class="docutils literal">author</tt> and <tt class="docutils literal">user</tt> are synonyms. <tt class="docutils literal">diff</tt> refers to the
-contents of the revision. Two revisions matching their <tt class="docutils literal">diff</tt> will
-also match their <tt class="docutils literal">files</tt>.</p>
-<p>Special fields are <tt class="docutils literal">summary</tt> and <tt class="docutils literal">metadata</tt>:
-<tt class="docutils literal">summary</tt> matches the first line of the description.
-<tt class="docutils literal">metadata</tt> is equivalent to matching <tt class="docutils literal">description user date</tt>
-(i.e. it matches the main metadata fields).</p>
-<p class="last"><tt class="docutils literal">metadata</tt> is the default field which is used when no fields are
-specified. You can match more than one field at a time.</p>
-</dd>
+<dt><tt class="docutils literal">last(set, n)</tt></dt>
+<dd>Last n members of set.</dd>
+<dt><tt class="docutils literal">limit(set, n)</tt></dt>
+<dd>First n members of set.</dd>
<dt><tt class="docutils literal">max(set)</tt></dt>
<dd>Changeset with highest revision number in set.</dd>
<dt><tt class="docutils literal">merge()</tt></dt>
@@ -4419,14 +3663,6 @@ specified. You can match more than one field at a time.</p>
<dd>Changeset with lowest revision number in set.</dd>
<dt><tt class="docutils literal">modifies(pattern)</tt></dt>
<dd>Changesets modifying files matched by pattern.</dd>
-<dt><tt class="docutils literal">obsolete()</tt></dt>
-<dd>Mutable changeset with a newer version.</dd>
-<dt><tt class="docutils literal"><span class="pre">origin([set])</span></tt></dt>
-<dd>Changesets that were specified as a source for the grafts, transplants or
-rebases that created the given revisions. Omitting the optional set is the
-same as passing all(). If a changeset created by these operations is itself
-specified as a source for one of these operations, only the source changeset
-for the first operation is selected.</dd>
<dt><tt class="docutils literal"><span class="pre">outgoing([path])</span></tt></dt>
<dd>Changesets not found in the specified destination repository, or the
default push location.</dd>
@@ -4437,18 +3673,8 @@ default push location.</dd>
<dt><tt class="docutils literal"><span class="pre">parents([set])</span></tt></dt>
<dd>The set of all parents for all changesets in set, or the working directory.</dd>
<dt><tt class="docutils literal">present(set)</tt></dt>
-<dd><p class="first">An empty set, if any revision in set isn't found; otherwise,
-all revisions in set.</p>
-<p class="last">If any of specified revisions is not present in the local repository,
-the query is normally aborted. But this predicate allows the query
-to continue even in such cases.</p>
-</dd>
-<dt><tt class="docutils literal">public()</tt></dt>
-<dd>Changeset in public phase.</dd>
-<dt><tt class="docutils literal"><span class="pre">remote([id</span> <span class="pre">[,path]])</span></tt></dt>
-<dd>Local revision that corresponds to the given identifier in a
-remote repository, if present. Here, the '.' identifier is a
-synonym for the current local branch.</dd>
+<dd>An empty set, if any revision in set isn't found; otherwise,
+all revisions in set.</dd>
<dt><tt class="docutils literal">removes(pattern)</tt></dt>
<dd>Changesets which remove files matching pattern.</dd>
<dt><tt class="docutils literal">rev(number)</tt></dt>
@@ -4456,9 +3682,7 @@ synonym for the current local branch.</dd>
<dt><tt class="docutils literal">reverse(set)</tt></dt>
<dd>Reverse order of set.</dd>
<dt><tt class="docutils literal">roots(set)</tt></dt>
-<dd>Changesets in set with no parent changeset in set.</dd>
-<dt><tt class="docutils literal">secret()</tt></dt>
-<dd>Changeset in secret phase.</dd>
+<dd>Changesets with no parent changeset in set.</dd>
<dt><tt class="docutils literal">sort(set[, <span class="pre">[-]key...])</span></tt></dt>
<dd><p class="first">Sort set by keys. The default sort order is ascending, specify a key
as <tt class="docutils literal"><span class="pre">-key</span></tt> to sort in descending order.</p>
@@ -4473,14 +3697,8 @@ as <tt class="docutils literal"><span class="pre">-key</span></tt> to sort in de
</dd>
<dt><tt class="docutils literal"><span class="pre">tag([name])</span></tt></dt>
<dd>The specified tag by name, or all tagged revisions if no name is given.</dd>
-<dt><tt class="docutils literal">unstable()</tt></dt>
-<dd>Non-obsolete changesets with obsolete ancestors.</dd>
<dt><tt class="docutils literal">user(string)</tt></dt>
-<dd><p class="first">User name contains string. The match is case-insensitive.</p>
-<p class="last">If <cite>string</cite> starts with <cite>re:</cite>, the remainder of the string is treated as
-a regular expression. To match a user that actually contains <cite>re:</cite>, use
-the prefix <cite>literal:</cite>.</p>
-</dd>
+<dd>User name contains string. The match is case-insensitive.</dd>
</dl>
<p>New predicates (known as &quot;aliases&quot;) can be defined, using any combination of
existing predicates or other aliases. An alias definition looks like:</p>
@@ -4547,39 +3765,35 @@ hg log -r &quot;(keyword(bug) or keyword(issue)) and not ancestors(tagged())&quo
</ul>
</div>
<div class="section" id="subrepositories">
-<span id="subrepo"></span><span id="subrepos"></span><h1><a class="toc-backref" href="#contents">Subrepositories</a></h1>
+<span id="subrepos"></span><span id="subrepo"></span><h1><a class="toc-backref" href="#contents">Subrepositories</a></h1>
<p>Subrepositories let you nest external repositories or projects into a
parent Mercurial repository, and make commands operate on them as a
-group.</p>
-<p>Mercurial currently supports Mercurial, Git, and Subversion
-subrepositories.</p>
+group. External Mercurial and Subversion projects are currently
+supported.</p>
<p>Subrepositories are made of three components:</p>
<ol class="arabic">
<li><p class="first">Nested repository checkouts. They can appear anywhere in the
-parent working directory.</p>
+parent working directory, and are Mercurial clones or Subversion
+checkouts.</p>
</li>
-<li><p class="first">Nested repository references. They are defined in <tt class="docutils literal">.hgsub</tt>, which
-should be placed in the root of working directory, and
+<li><p class="first">Nested repository references. They are defined in <tt class="docutils literal">.hgsub</tt> and
tell where the subrepository checkouts come from. Mercurial
subrepositories are referenced like:</p>
<blockquote>
<p>path/to/nested = <a class="reference external" href="https://example.com/nested/repo/path">https://example.com/nested/repo/path</a></p>
</blockquote>
-<p>Git and Subversion subrepos are also supported:</p>
-<blockquote>
-<p>path/to/nested = [git]git://example.com/nested/repo/path
-path/to/nested = [svn]https://example.com/nested/trunk/path</p>
-</blockquote>
<p>where <tt class="docutils literal">path/to/nested</tt> is the checkout location relatively to the
parent Mercurial root, and <tt class="docutils literal"><span class="pre">https://example.com/nested/repo/path</span></tt>
is the source repository path. The source can also reference a
-filesystem path.</p>
+filesystem path. Subversion repositories are defined with:</p>
+<blockquote>
+<p>path/to/nested = [svn]https://example.com/nested/trunk/path</p>
+</blockquote>
<p>Note that <tt class="docutils literal">.hgsub</tt> does not exist by default in Mercurial
repositories, you have to create and add it to the parent
repository before using subrepositories.</p>
</li>
-<li><p class="first">Nested repository states. They are defined in <tt class="docutils literal">.hgsubstate</tt>, which
-is placed in the root of working directory, and
+<li><p class="first">Nested repository states. They are defined in <tt class="docutils literal">.hgsubstate</tt> and
capture whatever information is required to restore the
subrepositories to the state they were committed in a parent
repository changeset. Mercurial automatically record the nested
@@ -4590,8 +3804,9 @@ repositories states when committing in the parent repository.</p>
</div>
</li>
</ol>
+</div>
<div class="section" id="adding-a-subrepository">
-<h2>Adding a Subrepository</h2>
+<h1><a class="toc-backref" href="#contents">Adding a Subrepository</a></h1>
<p>If <tt class="docutils literal">.hgsub</tt> does not exist, create it and add it to the parent
repository. Clone or checkout the external projects where you want it
to live in the parent repository. Edit <tt class="docutils literal">.hgsub</tt> and add the
@@ -4600,7 +3815,7 @@ subrepository is tracked and the next commit will record its state in
<tt class="docutils literal">.hgsubstate</tt> and bind it to the committed changeset.</p>
</div>
<div class="section" id="synchronizing-a-subrepository">
-<h2>Synchronizing a Subrepository</h2>
+<h1><a class="toc-backref" href="#contents">Synchronizing a Subrepository</a></h1>
<p>Subrepos do not automatically track the latest changeset of their
sources. Instead, they are updated to the changeset that corresponds
with the changeset checked out in the top-level changeset. This is so
@@ -4611,49 +3826,43 @@ subrepo at the desired revision, test in the top-level repo, then
commit in the parent repository to record the new combination.</p>
</div>
<div class="section" id="deleting-a-subrepository">
-<h2>Deleting a Subrepository</h2>
+<h1><a class="toc-backref" href="#contents">Deleting a Subrepository</a></h1>
<p>To remove a subrepository from the parent repository, delete its
reference from <tt class="docutils literal">.hgsub</tt>, then remove its files.</p>
</div>
<div class="section" id="interaction-with-mercurial-commands">
-<h2>Interaction with Mercurial Commands</h2>
+<h1><a class="toc-backref" href="#contents">Interaction with Mercurial Commands</a></h1>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">add:</th><td class="field-body">add does not recurse in subrepos unless -S/--subrepos is
-specified. However, if you specify the full path of a file in a
-subrepo, it will be added even without -S/--subrepos specified.
-Git and Subversion subrepositories are currently silently
+specified. Subversion subrepositories are currently silently
ignored.</td>
</tr>
<tr class="field"><th class="field-name">archive:</th><td class="field-body">archive does not recurse in subrepositories unless
-S/--subrepos is specified.</td>
</tr>
<tr class="field"><th class="field-name">commit:</th><td class="field-body">commit creates a consistent snapshot of the state of the
-entire project and its subrepositories. If any subrepositories
-have been modified, Mercurial will abort. Mercurial can be made
-to instead commit all modified subrepositories by specifying
--S/--subrepos, or setting &quot;ui.commitsubrepos=True&quot; in a
-configuration file (see <a class="reference external" href="hg.1.html#config"><tt class="docutils literal">hg help config</tt></a>). After there are no
-longer any modified subrepositories, it records their state and
-finally commits it in the parent repository.</td>
+entire project and its subrepositories. It does this by first
+attempting to commit all modified subrepositories, then recording
+their state and finally committing it in the parent
+repository. Mercurial can be made to abort if any subrepository
+content is modified by setting &quot;ui.commitsubrepos=no&quot; in a
+configuration file (see <a class="reference external" href="hg.1.html#config"><tt class="docutils literal">hg help config</tt></a>).</td>
</tr>
<tr class="field"><th class="field-name">diff:</th><td class="field-body">diff does not recurse in subrepos unless -S/--subrepos is
specified. Changes are displayed as usual, on the subrepositories
-elements. Git and Subversion subrepositories are currently
-silently ignored.</td>
-</tr>
-<tr class="field"><th class="field-name">forget:</th><td class="field-body">forget currently only handles exact file matches in subrepos.
-Git and Subversion subrepositories are currently silently ignored.</td>
+elements. Subversion subrepositories are currently silently
+ignored.</td>
</tr>
<tr class="field"><th class="field-name">incoming:</th><td class="field-body">incoming does not recurse in subrepos unless -S/--subrepos
-is specified. Git and Subversion subrepositories are currently
-silently ignored.</td>
+is specified. Subversion subrepositories are currently silently
+ignored.</td>
</tr>
<tr class="field"><th class="field-name">outgoing:</th><td class="field-body">outgoing does not recurse in subrepos unless -S/--subrepos
-is specified. Git and Subversion subrepositories are currently
-silently ignored.</td>
+is specified. Subversion subrepositories are currently silently
+ignored.</td>
</tr>
<tr class="field"><th class="field-name">pull:</th><td class="field-body">pull is not recursive since it is not clear what to pull prior
to running <a class="reference external" href="hg.1.html#update"><tt class="docutils literal">hg update</tt></a>. Listing and retrieving all
@@ -4664,7 +3873,7 @@ case.</td>
<tr class="field"><th class="field-name">push:</th><td class="field-body">Mercurial will automatically push all subrepositories first
when the parent repository is being pushed. This ensures new
subrepository changes are available when referenced by top-level
-repositories. Push is a no-op for Subversion subrepositories.</td>
+repositories.</td>
</tr>
<tr class="field"><th class="field-name">status:</th><td class="field-body">status does not recurse into subrepositories unless
-S/--subrepos is specified. Subrepository changes are displayed as
@@ -4682,16 +3891,15 @@ can require network access when using subrepositories.</td>
</table>
</div>
<div class="section" id="remapping-subrepositories-sources">
-<h2>Remapping Subrepositories Sources</h2>
+<h1><a class="toc-backref" href="#contents">Remapping Subrepositories Sources</a></h1>
<p>A subrepository source location may change during a project life,
invalidating references stored in the parent repository history. To
fix this, rewriting rules can be defined in parent repository <tt class="docutils literal">hgrc</tt>
file or in Mercurial configuration. See the <tt class="docutils literal">[subpaths]</tt> section in
hgrc(5) for more details.</p>
</div>
-</div>
<div class="section" id="template-usage">
-<span id="style"></span><span id="template"></span><span id="templates"></span><span id="templating"></span><h1><a class="toc-backref" href="#contents">Template Usage</a></h1>
+<span id="templates"></span><span id="templating"></span><h1><a class="toc-backref" href="#contents">Template Usage</a></h1>
<p>Mercurial allows you to customize output of commands through
templates. You can either pass in a template from the command
line, via the --template option, or select an existing
@@ -4720,8 +3928,6 @@ keywords are usually available for templating a log-like command:</p>
<tbody valign="top">
<tr class="field"><th class="field-name">author:</th><td class="field-body">String. The unmodified author of the changeset.</td>
</tr>
-<tr class="field"><th class="field-name">bisect:</th><td class="field-body">String. The changeset bisection status.</td>
-</tr>
<tr class="field"><th class="field-name">bookmarks:</th><td class="field-body">List of strings. Any bookmarks associated with the
changeset.</td>
</tr>
@@ -4747,7 +3953,7 @@ default.</td>
their sources.</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">file_copies_switch:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">List of strings. Like &quot;file_copies&quot; but displayed
+<tr><td>&nbsp;</td><td class="field-body">List of strings. Like &quot;file_copies&quot; but displayed
only if the --copied switch is set.</td>
</tr>
<tr class="field"><th class="field-name">file_dels:</th><td class="field-body">List of strings. Files removed by this changeset.</td>
@@ -4761,19 +3967,11 @@ changeset.</td>
changeset.</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">latesttagdistance:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">Integer. Longest path to the latest tag.</td>
+<tr><td>&nbsp;</td><td class="field-body">Integer. Longest path to the latest tag.</td>
</tr>
<tr class="field"><th class="field-name">node:</th><td class="field-body">String. The changeset identification hash, as a 40 hexadecimal
digit string.</td>
</tr>
-<tr class="field"><th class="field-name">parents:</th><td class="field-body">List of strings. The parents of the changeset in &quot;rev:node&quot;
-format. If the changeset has only one &quot;natural&quot; parent (the predecessor
-revision) nothing is shown.</td>
-</tr>
-<tr class="field"><th class="field-name">phase:</th><td class="field-body">String. The changeset phase name.</td>
-</tr>
-<tr class="field"><th class="field-name">phaseidx:</th><td class="field-body">Integer. The changeset phase index.</td>
-</tr>
<tr class="field"><th class="field-name">rev:</th><td class="field-body">Integer. The repository-local changeset revision number.</td>
</tr>
<tr class="field"><th class="field-name">tags:</th><td class="field-body">List of strings. Any tags associated with the changeset.</td>
@@ -4817,8 +4015,6 @@ address, and extracts just the domain component. Example: <tt class="docutils li
address. Example: <tt class="docutils literal">User &lt;user&#64;example.com&gt;</tt> becomes
<tt class="docutils literal">user&#64;example.com</tt>.</td>
</tr>
-<tr class="field"><th class="field-name">emailuser:</th><td class="field-body">Any text. Returns the user portion of an email address.</td>
-</tr>
<tr class="field"><th class="field-name">escape:</th><td class="field-body">Any text. Replaces the special XML/XHTML characters &quot;&amp;&quot;, &quot;&lt;&quot;
and &quot;&gt;&quot; with XML entities.</td>
</tr>
@@ -4848,8 +4044,7 @@ filter.</td>
<tr class="field"><th class="field-name">obfuscate:</th><td class="field-body">Any text. Returns the input text rendered as a sequence of
XML entities.</td>
</tr>
-<tr class="field"><th class="field-name">person:</th><td class="field-body">Any text. Returns the name before an email address,
-interpreting it as per RFC 5322.</td>
+<tr class="field"><th class="field-name">person:</th><td class="field-body">Any text. Returns the text before an email address.</td>
</tr>
<tr class="field"><th class="field-name">rfc3339date:</th><td class="field-body">Date. Returns a date using the Internet date format
specified in RFC 3339: &quot;2009-08-18T13:00:13+02:00&quot;.</td>
@@ -4860,11 +4055,6 @@ headers: &quot;Tue, 18 Aug 2009 13:00:13 +0200&quot;.</td>
<tr class="field"><th class="field-name">short:</th><td class="field-body">Changeset hash. Returns the short form of a changeset hash,
i.e. a 12 hexadecimal digit string.</td>
</tr>
-<tr class="field"><th class="field-name">shortbisect:</th><td class="field-body">Any text. Treats <cite>text</cite> as a bisection status, and
-returns a single-character representing the status (G: good, B: bad,
-S: skipped, U: untested, I: ignored). Returns single space if <cite>text</cite>
-is not a valid bisection status.</td>
-</tr>
<tr class="field"><th class="field-name">shortdate:</th><td class="field-body">Date. Returns a date like &quot;2006-09-18&quot;.</td>
</tr>
<tr class="field"><th class="field-name">stringify:</th><td class="field-body">Any type. Turns the value into text by converting values into
@@ -4881,8 +4071,7 @@ first starting with a tab character.</td>
<tr class="field"><th class="field-name">urlescape:</th><td class="field-body">Any text. Escapes all &quot;special&quot; characters. For example,
&quot;foo bar&quot; becomes &quot;foo%20bar&quot;.</td>
</tr>
-<tr class="field"><th class="field-name">user:</th><td class="field-body">Any text. Returns a short representation of a user name or email
-address.</td>
+<tr class="field"><th class="field-name">user:</th><td class="field-body">Any text. Returns the user portion of an email address.</td>
</tr>
</tbody>
</table>
@@ -4959,45 +4148,42 @@ prefer it over 'default' if both are defined.</dd>
<p>This section contains help for extensions that are distributed together with Mercurial. Help for other extensions is available in the help system.</p>
<div class="contents htmlonly local topic" id="id6">
<ul class="simple">
-<li><a class="reference internal" href="#acl" id="id68">acl</a></li>
-<li><a class="reference internal" href="#bugzilla" id="id69">bugzilla</a></li>
-<li><a class="reference internal" href="#children" id="id70">children</a></li>
-<li><a class="reference internal" href="#churn" id="id71">churn</a></li>
-<li><a class="reference internal" href="#color" id="id72">color</a></li>
-<li><a class="reference internal" href="#convert" id="id73">convert</a></li>
-<li><a class="reference internal" href="#eol" id="id74">eol</a></li>
-<li><a class="reference internal" href="#extdiff" id="id75">extdiff</a></li>
-<li><a class="reference internal" href="#factotum" id="id76">factotum</a></li>
-<li><a class="reference internal" href="#fetch" id="id77">fetch</a></li>
-<li><a class="reference internal" href="#gpg" id="id78">gpg</a></li>
-<li><a class="reference internal" href="#graphlog" id="id79">graphlog</a></li>
-<li><a class="reference internal" href="#hgcia" id="id80">hgcia</a></li>
-<li><a class="reference internal" href="#hgk" id="id81">hgk</a></li>
-<li><a class="reference internal" href="#highlight" id="id82">highlight</a></li>
-<li><a class="reference internal" href="#histedit" id="id83">histedit</a></li>
-<li><a class="reference internal" href="#inotify" id="id84">inotify</a></li>
-<li><a class="reference internal" href="#interhg" id="id85">interhg</a></li>
-<li><a class="reference internal" href="#keyword" id="id86">keyword</a></li>
-<li><a class="reference internal" href="#largefiles" id="id87">largefiles</a></li>
-<li><a class="reference internal" href="#mq" id="id88">mq</a></li>
-<li><a class="reference internal" href="#notify" id="id89">notify</a></li>
-<li><a class="reference internal" href="#pager" id="id90">pager</a></li>
-<li><a class="reference internal" href="#patchbomb" id="id91">patchbomb</a></li>
-<li><a class="reference internal" href="#progress" id="id92">progress</a></li>
-<li><a class="reference internal" href="#purge" id="id93">purge</a></li>
-<li><a class="reference internal" href="#rebase" id="id94">rebase</a></li>
-<li><a class="reference internal" href="#record" id="id95">record</a></li>
-<li><a class="reference internal" href="#relink" id="id96">relink</a></li>
-<li><a class="reference internal" href="#schemes" id="id97">schemes</a></li>
-<li><a class="reference internal" href="#share" id="id98">share</a></li>
-<li><a class="reference internal" href="#transplant" id="id99">transplant</a></li>
-<li><a class="reference internal" href="#win32mbcs" id="id100">win32mbcs</a></li>
-<li><a class="reference internal" href="#win32text" id="id101">win32text</a></li>
-<li><a class="reference internal" href="#zeroconf" id="id102">zeroconf</a></li>
+<li><a class="reference internal" href="#acl" id="id73">acl</a></li>
+<li><a class="reference internal" href="#bugzilla" id="id74">bugzilla</a></li>
+<li><a class="reference internal" href="#children" id="id75">children</a></li>
+<li><a class="reference internal" href="#churn" id="id76">churn</a></li>
+<li><a class="reference internal" href="#color" id="id77">color</a></li>
+<li><a class="reference internal" href="#convert" id="id78">convert</a></li>
+<li><a class="reference internal" href="#eol" id="id79">eol</a></li>
+<li><a class="reference internal" href="#extdiff" id="id80">extdiff</a></li>
+<li><a class="reference internal" href="#fetch" id="id81">fetch</a></li>
+<li><a class="reference internal" href="#gpg" id="id82">gpg</a></li>
+<li><a class="reference internal" href="#graphlog" id="id83">graphlog</a></li>
+<li><a class="reference internal" href="#hgcia" id="id84">hgcia</a></li>
+<li><a class="reference internal" href="#hgk" id="id85">hgk</a></li>
+<li><a class="reference internal" href="#highlight" id="id86">highlight</a></li>
+<li><a class="reference internal" href="#inotify" id="id87">inotify</a></li>
+<li><a class="reference internal" href="#interhg" id="id88">interhg</a></li>
+<li><a class="reference internal" href="#keyword" id="id89">keyword</a></li>
+<li><a class="reference internal" href="#mq" id="id90">mq</a></li>
+<li><a class="reference internal" href="#notify" id="id91">notify</a></li>
+<li><a class="reference internal" href="#pager" id="id92">pager</a></li>
+<li><a class="reference internal" href="#patchbomb" id="id93">patchbomb</a></li>
+<li><a class="reference internal" href="#progress" id="id94">progress</a></li>
+<li><a class="reference internal" href="#purge" id="id95">purge</a></li>
+<li><a class="reference internal" href="#rebase" id="id96">rebase</a></li>
+<li><a class="reference internal" href="#record" id="id97">record</a></li>
+<li><a class="reference internal" href="#relink" id="id98">relink</a></li>
+<li><a class="reference internal" href="#schemes" id="id99">schemes</a></li>
+<li><a class="reference internal" href="#share" id="id100">share</a></li>
+<li><a class="reference internal" href="#transplant" id="id101">transplant</a></li>
+<li><a class="reference internal" href="#win32mbcs" id="id102">win32mbcs</a></li>
+<li><a class="reference internal" href="#win32text" id="id103">win32text</a></li>
+<li><a class="reference internal" href="#zeroconf" id="id104">zeroconf</a></li>
</ul>
</div>
<div class="section" id="acl">
-<h2><a class="toc-backref" href="#id68">acl</a></h2>
+<h2><a class="toc-backref" href="#id73">acl</a></h2>
<p>hooks for controlling repository access</p>
<p>This hook makes it possible to allow or deny write access to given
branches and paths of a repository when receiving incoming changesets
@@ -5033,8 +4219,6 @@ either:</p>
<li>a comma-separated list containing users and groups, or</li>
<li>an asterisk, to match anyone;</li>
</ul>
-<p>You can add the &quot;!&quot; prefix to a user or group name to invert the sense
-of the match.</p>
</div>
<div class="section" id="path-based-access-control">
<h3>Path-based Access Control</h3>
@@ -5124,59 +4308,22 @@ docs/** = doc_writer
# under the &quot;images&quot; folder:
images/** = jack, &#64;designers
-# Everyone (except for &quot;user6&quot; and &quot;&#64;hg-denied&quot; - see acl.deny above)
-# will have write access to any file under the &quot;resources&quot; folder
-# (except for 1 file. See acl.deny):
+# Everyone (except for &quot;user6&quot; - see acl.deny above) will have write
+# access to any file under the &quot;resources&quot; folder (except for 1
+# file. See acl.deny):
src/main/resources/** = *
.hgtags = release_engineer
</pre>
-<div class="section" id="examples-using-the-prefix">
-<h4>Examples using the &quot;!&quot; prefix</h4>
-<p>Suppose there's a branch that only a given user (or group) should be able to
-push to, and you don't want to restrict access to any other branch that may
-be created.</p>
-<p>The &quot;!&quot; prefix allows you to prevent anyone except a given user or group to
-push changesets in a given branch or path.</p>
-<p>In the examples below, we will:
-1) Deny access to branch &quot;ring&quot; to anyone but user &quot;gollum&quot;
-2) Deny access to branch &quot;lake&quot; to anyone but members of the group &quot;hobbit&quot;
-3) Deny access to a file to anyone but user &quot;gollum&quot;</p>
-<pre class="literal-block">
-[acl.allow.branches]
-# Empty
-
-[acl.deny.branches]
-
-# 1) only 'gollum' can commit to branch 'ring';
-# 'gollum' and anyone else can still commit to any other branch.
-ring = !gollum
-
-# 2) only members of the group 'hobbit' can commit to branch 'lake';
-# 'hobbit' members and anyone else can still commit to any other branch.
-lake = !&#64;hobbit
-
-# You can also deny access based on file paths:
-
-[acl.allow]
-# Empty
-
-[acl.deny]
-# 3) only 'gollum' can change the file below;
-# 'gollum' and anyone else can still change any other file.
-/misty/mountains/cave/ring = !gollum
-</pre>
-</div>
</div>
</div>
<div class="section" id="bugzilla">
-<h2><a class="toc-backref" href="#id69">bugzilla</a></h2>
+<h2><a class="toc-backref" href="#id74">bugzilla</a></h2>
<p>hooks for integrating with the Bugzilla bug tracker</p>
<p>This hook extension adds comments on bugs in Bugzilla when changesets
that refer to bugs by Bugzilla ID are seen. The comment is formatted using
the Mercurial template mechanism.</p>
-<p>The bug references can optionally include an update for Bugzilla of the
-hours spent working on the bug. Bugs can also be marked fixed.</p>
+<p>The hook does not change bug status.</p>
<p>Three basic modes of access to Bugzilla are provided:</p>
<ol class="arabic simple">
<li>Access via the Bugzilla XMLRPC interface. Requires Bugzilla 3.4 or later.</li>
@@ -5193,20 +4340,19 @@ permission to read Bugzilla configuration details and the necessary
MySQL user and password to have full access rights to the Bugzilla
database. For these reasons this access mode is now considered
deprecated, and will not be updated for new Bugzilla versions going
-forward. Only adding comments is supported in this access mode.</p>
+forward.</p>
<p>Access via XMLRPC needs a Bugzilla username and password to be specified
in the configuration. Comments are added under that username. Since the
configuration must be readable by all Mercurial users, it is recommended
that the rights of that user are restricted in Bugzilla to the minimum
-necessary to add comments. Marking bugs fixed requires Bugzilla 4.0 and later.</p>
+necessary to add comments.</p>
<p>Access via XMLRPC/email uses XMLRPC to query Bugzilla, but sends
email to the Bugzilla email interface to submit comments to bugs.
The From: address in the email is set to the email address of the Mercurial
user, so the comment appears to come from the Mercurial user. In the event
that the Mercurial user email is not recognised by Bugzilla as a Bugzilla
user, the email associated with the Bugzilla username used to log into
-Bugzilla is used instead as the source of the comment. Marking bugs fixed
-works on all supported Bugzilla versions.</p>
+Bugzilla is used instead as the source of the comment.</p>
<p>Configuration items common to all access modes:</p>
<dl class="docutils">
<dt>bugzilla.version</dt>
@@ -5231,31 +4377,11 @@ including 2.18.</td>
</table>
</dd>
<dt>bugzilla.regexp</dt>
-<dd>Regular expression to match bug IDs for update in changeset commit message.
-It must contain one &quot;()&quot; named group <tt class="docutils literal">&lt;ids&gt;</tt> containing the bug
-IDs separated by non-digit characters. It may also contain
-a named group <tt class="docutils literal">&lt;hours&gt;</tt> with a floating-point number giving the
-hours worked on the bug. If no named groups are present, the first
-&quot;()&quot; group is assumed to contain the bug IDs, and work time is not
-updated. The default expression matches <tt class="docutils literal">Bug 1234</tt>, <tt class="docutils literal">Bug no. 1234</tt>,
-<tt class="docutils literal">Bug number 1234</tt>, <tt class="docutils literal">Bugs 1234,5678</tt>, <tt class="docutils literal">Bug 1234 and 5678</tt> and
-variations thereof, followed by an hours number prefixed by <tt class="docutils literal">h</tt> or
-<tt class="docutils literal">hours</tt>, e.g. <tt class="docutils literal">hours 1.5</tt>. Matching is case insensitive.</dd>
-<dt>bugzilla.fixregexp</dt>
-<dd>Regular expression to match bug IDs for marking fixed in changeset
-commit message. This must contain a &quot;()&quot; named group <tt class="docutils literal">&lt;ids&gt;` containing
-the bug IDs separated by <span class="pre">non-digit</span> characters. It may also contain
-a named group <span class="pre">``&lt;hours&gt;</span></tt> with a floating-point number giving the
-hours worked on the bug. If no named groups are present, the first
-&quot;()&quot; group is assumed to contain the bug IDs, and work time is not
-updated. The default expression matches <tt class="docutils literal">Fixes 1234</tt>, <tt class="docutils literal">Fixes bug 1234</tt>,
-<tt class="docutils literal">Fixes bugs 1234,5678</tt>, <tt class="docutils literal">Fixes 1234 and 5678</tt> and
-variations thereof, followed by an hours number prefixed by <tt class="docutils literal">h</tt> or
-<tt class="docutils literal">hours</tt>, e.g. <tt class="docutils literal">hours 1.5</tt>. Matching is case insensitive.</dd>
-<dt>bugzilla.fixstatus</dt>
-<dd>The status to set a bug to when marking fixed. Default <tt class="docutils literal">RESOLVED</tt>.</dd>
-<dt>bugzilla.fixresolution</dt>
-<dd>The resolution to set a bug to when marking fixed. Default <tt class="docutils literal">FIXED</tt>.</dd>
+<dd>Regular expression to match bug IDs in changeset commit message.
+Must contain one &quot;()&quot; group. The default expression matches <tt class="docutils literal">Bug
+1234</tt>, <tt class="docutils literal">Bug no. 1234</tt>, <tt class="docutils literal">Bug number 1234</tt>, <tt class="docutils literal">Bugs 1234,5678</tt>,
+<tt class="docutils literal">Bug 1234 and 5678</tt> and variations thereof. Matching is case
+insensitive.</dd>
<dt>bugzilla.style</dt>
<dd>The style file to use when formatting comments.</dd>
<dt>bugzilla.template</dt>
@@ -5436,10 +4562,8 @@ Changeset commit comment. Bug 1234.
</pre>
</div>
<div class="section" id="children">
-<h2><a class="toc-backref" href="#id70">children</a></h2>
-<p>command to display child changesets (DEPRECATED)</p>
-<p>This extension is deprecated. You should use <a class="reference external" href="hg.1.html#log"><tt class="docutils literal">hg log <span class="pre">-r</span>
-&quot;children(REV)&quot;</tt></a> instead.</p>
+<h2><a class="toc-backref" href="#id75">children</a></h2>
+<p>command to display child changesets</p>
<div class="section" id="id7">
<h3>Commands</h3>
<div class="section" id="id8">
@@ -5472,7 +4596,7 @@ argument to --rev if given) is printed.</p>
</div>
</div>
<div class="section" id="churn">
-<h2><a class="toc-backref" href="#id71">churn</a></h2>
+<h2><a class="toc-backref" href="#id76">churn</a></h2>
<p>command to display statistics about repository history</p>
<div class="section" id="id9">
<h3>Commands</h3>
@@ -5553,7 +4677,7 @@ a .hgchurn file will be looked for in the working directory root.</p>
</div>
</div>
<div class="section" id="color">
-<h2><a class="toc-backref" href="#id72">color</a></h2>
+<h2><a class="toc-backref" href="#id77">color</a></h2>
<p>colorize output from some commands</p>
<p>This extension modifies the status and resolve commands to add color
to their output to reflect file status, the qseries command to add
@@ -5602,9 +4726,6 @@ branches.active = none
branches.closed = black bold
branches.current = green
branches.inactive = none
-
-tags.normal = green
-tags.local = black bold
</pre>
<p>The available effects in terminfo mode are 'blink', 'bold', 'dim',
'inverse', 'invisible', 'italic', 'standout', and 'underline'; in
@@ -5643,7 +4764,7 @@ mode = terminfo
disable color.</p>
</div>
<div class="section" id="convert">
-<h2><a class="toc-backref" href="#id73">convert</a></h2>
+<h2><a class="toc-backref" href="#id78">convert</a></h2>
<p>import revisions from foreign VCS repositories into Mercurial</p>
<div class="section" id="id11">
<h3>Commands</h3>
@@ -5778,17 +4899,17 @@ options, which you can set on the command line with <tt class="docutils literal"
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name" colspan="2">convert.hg.ignoreerrors:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">ignore integrity errors when reading.
+<tr><td>&nbsp;</td><td class="field-body">ignore integrity errors when reading.
Use it to fix Mercurial repositories with missing revlogs, by
converting from and to Mercurial. Default is False.</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">convert.hg.saverev:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">store original revision ID in changeset
-(forces target IDs to change). It takes a boolean argument and
-defaults to False.</td>
+<tr><td>&nbsp;</td><td class="field-body">store original revision ID in changeset
+(forces target IDs to change). It takes and boolean argument
+and defaults to False.</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">convert.hg.startrev:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">convert start revision and its descendants.
+<tr><td>&nbsp;</td><td class="field-body">convert start revision and its descendants.
It takes a hg revision identifier and defaults to 0.</td>
</tr>
</tbody>
@@ -5811,18 +4932,18 @@ sandbox is ignored.</p>
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name" colspan="2">convert.cvsps.cache:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">Set to False to disable remote log caching,
+<tr><td>&nbsp;</td><td class="field-body">Set to False to disable remote log caching,
for testing and debugging purposes. Default is True.</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">convert.cvsps.fuzz:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">Specify the maximum time (in seconds) that is
+<tr><td>&nbsp;</td><td class="field-body">Specify the maximum time (in seconds) that is
allowed between commits with identical user and log message in
a single changeset. When very large files were checked in as
part of a changeset then the default may not be long enough.
The default is 60.</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">convert.cvsps.mergeto:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">Specify a regular expression to which
+<tr><td>&nbsp;</td><td class="field-body">Specify a regular expression to which
commit log messages are matched. If a match occurs, then the
conversion process will insert a dummy revision merging the
branch on which this log message occurs to the branch
@@ -5830,7 +4951,7 @@ indicated in the regex. Default is <tt class="docutils literal">{{mergetobranch
<span class="pre">([-\w]+)}}</span></tt></td>
</tr>
<tr class="field"><th class="field-name" colspan="2">convert.cvsps.mergefrom:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">Specify a regular expression to which
+<tr><td>&nbsp;</td><td class="field-body">Specify a regular expression to which
commit log messages are matched. If a match occurs, then the
conversion process will add the most recent revision on the
branch indicated in the regex as the second parent of the
@@ -5842,8 +4963,8 @@ log entries, and can modify the entries in-place, or add or
delete them.</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">hook.cvschangesets:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">Specify a Python function to be called after
-the changesets are calculated from the CVS log. The
+<tr><td>&nbsp;</td><td class="field-body">Specify a Python function to be called after
+the changesets are calculated from the the CVS log. The
function is passed a list with the changeset entries, and can
modify the changesets in-place, or add or delete them.</td>
</tr>
@@ -5872,15 +4993,15 @@ detection.</p>
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name" colspan="2">convert.svn.branches:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">specify the directory containing branches.
+<tr><td>&nbsp;</td><td class="field-body">specify the directory containing branches.
The default is <tt class="docutils literal">branches</tt>.</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">convert.svn.tags:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">specify the directory containing tags. The
+<tr><td>&nbsp;</td><td class="field-body">specify the directory containing tags. The
default is <tt class="docutils literal">tags</tt>.</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">convert.svn.trunk:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">specify the name of the trunk branch. The
+<tr><td>&nbsp;</td><td class="field-body">specify the name of the trunk branch. The
default is <tt class="docutils literal">trunk</tt>.</td>
</tr>
</tbody>
@@ -5893,7 +5014,7 @@ conversions are supported.</p>
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name" colspan="2">convert.svn.startrev:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">specify start Subversion revision number.
+<tr><td>&nbsp;</td><td class="field-body">specify start Subversion revision number.
The default is 0.</td>
</tr>
</tbody>
@@ -5914,7 +5035,7 @@ converted by specifying an initial Perforce revision:</p>
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name" colspan="2">convert.p4.startrev:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">specify initial Perforce revision (a
+<tr><td>&nbsp;</td><td class="field-body">specify initial Perforce revision (a
Perforce changelist number).</td>
</tr>
</tbody>
@@ -5928,15 +5049,15 @@ Perforce changelist number).</td>
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name" colspan="2">convert.hg.clonebranches:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">dispatch source branches in separate
+<tr><td>&nbsp;</td><td class="field-body">dispatch source branches in separate
clones. The default is False.</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">convert.hg.tagsbranch:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">branch name for tag revisions, defaults to
+<tr><td>&nbsp;</td><td class="field-body">branch name for tag revisions, defaults to
<tt class="docutils literal">default</tt>.</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">convert.hg.usebranchnames:</th></tr>
-<tr class="field"><td>&nbsp;</td><td class="field-body">preserve branch names. The default is
+<tr><td>&nbsp;</td><td class="field-body">preserve branch names. The default is
True.</td>
</tr>
</tbody>
@@ -5989,7 +5110,7 @@ True.</td>
</div>
</div>
<div class="section" id="eol">
-<h2><a class="toc-backref" href="#id74">eol</a></h2>
+<h2><a class="toc-backref" href="#id79">eol</a></h2>
<p>automatically manage newlines in repository files</p>
<p>This extension allows you to manage the type of line endings (CRLF or
LF) that are used in the repository and in the local working
@@ -6039,10 +5160,9 @@ native = LF
<p class="last">The rules will first apply when files are touched in the working
copy, e.g. by updating to null and back to tip to touch all files.</p>
</div>
-<p>The extension uses an optional <tt class="docutils literal">[eol]</tt> section read from both the
-normal Mercurial configuration files and the <tt class="docutils literal">.hgeol</tt> file, with the
-latter overriding the former. You can use that section to control the
-overall behavior. There are three settings:</p>
+<p>The extension uses an optional <tt class="docutils literal">[eol]</tt> section in your hgrc file
+(not the <tt class="docutils literal">.hgeol</tt> file) for settings that control the overall
+behavior. There are two settings:</p>
<ul class="simple">
<li><tt class="docutils literal">eol.native</tt> (default <tt class="docutils literal">os.linesep</tt>) can be set to <tt class="docutils literal">LF</tt> or
<tt class="docutils literal">CRLF</tt> to override the default interpretation of <tt class="docutils literal">native</tt> for
@@ -6053,9 +5173,6 @@ the extension convert files with inconsistent EOLs. Inconsistent
means that there is both <tt class="docutils literal">CRLF</tt> and <tt class="docutils literal">LF</tt> present in the file.
Such files are normally not touched under the assumption that they
have mixed EOLs on purpose.</li>
-<li><tt class="docutils literal"><span class="pre">eol.fix-trailing-newline</span></tt> (default False) can be set to True to
-ensure that converted files end with a EOL character (either <tt class="docutils literal">\n</tt>
-or <tt class="docutils literal">\r\n</tt> as per the configured patterns).</li>
</ul>
<p>The extension provides <tt class="docutils literal">cleverencode:</tt> and <tt class="docutils literal">cleverdecode:</tt> filters
like the deprecated win32text extension does. This means that you can
@@ -6073,7 +5190,7 @@ invalid revisions will be pushed. To forbid them completely, use the
used.</p>
</div>
<div class="section" id="extdiff">
-<h2><a class="toc-backref" href="#id75">extdiff</a></h2>
+<h2><a class="toc-backref" href="#id80">extdiff</a></h2>
<p>command to allow external programs to compare revisions</p>
<p>The extdiff Mercurial extension allows you to use external programs
to compare revisions, or revision with working directory. The external
@@ -6100,8 +5217,7 @@ meld =
# (see http://www.vim.org/scripts/script.php?script_id=102) Non
# English user, be sure to put &quot;let g:DirDiffDynamicDiffText = 1&quot; in
# your .vimrc
-vimdiff = gvim -f &quot;+next&quot; \
- &quot;+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))&quot;
+vimdiff = gvim -f '+next' '+execute &quot;DirDiff&quot; argv(0) argv(1)'
</pre>
<p>Tool arguments can include variables that are expanded at runtime:</p>
<pre class="literal-block">
@@ -6171,35 +5287,9 @@ to its parent.</p>
</div>
</div>
</div>
-<div class="section" id="factotum">
-<h2><a class="toc-backref" href="#id76">factotum</a></h2>
-<p>http authentication with factotum</p>
-<p>This extension allows the factotum(4) facility on Plan 9 from Bell Labs
-platforms to provide authentication information for HTTP access. Configuration
-entries specified in the auth section as well as authentication information
-provided in the repository URL are fully supported. If no prefix is specified,
-a value of &quot;*&quot; will be assumed.</p>
-<p>By default, keys are specified as:</p>
-<pre class="literal-block">
-proto=pass service=hg prefix=&lt;prefix&gt; user=&lt;username&gt; !password=&lt;password&gt;
-</pre>
-<p>If the factotum extension is unable to read the required key, one will be
-requested interactively.</p>
-<p>A configuration section is available to customize runtime behavior. By
-default, these entries are:</p>
-<pre class="literal-block">
-[factotum]
-executable = /bin/auth/factotum
-mountpoint = /mnt/factotum
-service = hg
-</pre>
-<p>The executable entry defines the full path to the factotum binary. The
-mountpoint entry defines the path to the factotum file service. Lastly, the
-service entry controls the service name used when reading keys.</p>
-</div>
<div class="section" id="fetch">
-<h2><a class="toc-backref" href="#id77">fetch</a></h2>
-<p>pull, update and merge in one command (DEPRECATED)</p>
+<h2><a class="toc-backref" href="#id81">fetch</a></h2>
+<p>pull, update and merge in one command</p>
<div class="section" id="id15">
<h3>Commands</h3>
<div class="section" id="id16">
@@ -6213,9 +5303,10 @@ or URL and adds them to the local repository.</p>
automatically merged, and the result of the merge is committed.
Otherwise, the working directory is updated to include the new
changes.</p>
-<p>When a merge is needed, the working directory is first updated to
-the newly pulled changes. Local changes are then merged into the
-pulled changes. To switch the merge order, use --switch-parent.</p>
+<p>When a merge occurs, the newly pulled changes are assumed to be
+&quot;authoritative&quot;. The head of the new changes is used as the first
+parent, with local changes as the second. To switch the merge
+order, use --switch-parent.</p>
<p>See <a class="reference external" href="hg.1.html#dates"><tt class="docutils literal">hg help dates</tt></a> for a list of formats valid for -d/--date.</p>
<p>Returns 0 on success.</p>
<p>Options:</p>
@@ -6263,21 +5354,21 @@ pulled changes. To switch the merge order, use --switch-parent.</p>
</div>
</div>
<div class="section" id="gpg">
-<h2><a class="toc-backref" href="#id78">gpg</a></h2>
+<h2><a class="toc-backref" href="#id82">gpg</a></h2>
<p>commands to sign and verify changesets</p>
<div class="section" id="id17">
<h3>Commands</h3>
<div class="section" id="sigcheck">
<h4>sigcheck</h4>
<pre class="literal-block">
-hg sigcheck REV
+hg sigcheck REVISION
</pre>
<p>verify all the signatures there may be for a particular revision</p>
</div>
<div class="section" id="sign">
<h4>sign</h4>
<pre class="literal-block">
-hg sign [OPTION]... [REV]...
+hg sign [OPTION]... [REVISION]...
</pre>
<p>If no revision is given, the parent of the working directory is used,
or tip if no revision is checked out.</p>
@@ -6321,7 +5412,7 @@ hg sigs
</div>
</div>
<div class="section" id="graphlog">
-<h2><a class="toc-backref" href="#id79">graphlog</a></h2>
+<h2><a class="toc-backref" href="#id83">graphlog</a></h2>
<p>command to view revision graphs from a shell</p>
<p>This extension adds a --graph option to the incoming, outgoing and log
commands. When this options is given, an ASCII representation of the
@@ -6343,83 +5434,27 @@ directory.</p>
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
-<kbd><span class="option">-f</span>, <span class="option">--follow</span></kbd></td>
-<td>follow changeset history, or file history across copies and renames</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--follow-first</span></kbd></td>
-<td>only follow the first parent of merge changesets (DEPRECATED)</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-d</span>, <span class="option">--date</span></kbd></td>
-<td>show revisions matching date spec</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-C</span>, <span class="option">--copies</span></kbd></td>
-<td>show copied files</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-k</span>, <span class="option">--keyword</span></kbd></td>
-<td>do case-insensitive search for a given text</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-r</span>, <span class="option">--rev</span></kbd></td>
-<td>show the specified revision or range</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--removed</span></kbd></td>
-<td>include revisions where files were removed</td></tr>
-<tr><td class="option-group" colspan="2">
-<kbd><span class="option">-m</span>, <span class="option">--only-merges</span></kbd></td>
-</tr>
-<tr><td>&nbsp;</td><td>show only merges (DEPRECATED)</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-u</span>, <span class="option">--user</span></kbd></td>
-<td>revisions committed by user</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--only-branch</span></kbd></td>
-<td>show only changesets within the given named branch (DEPRECATED)</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-b</span>, <span class="option">--branch</span></kbd></td>
-<td>show changesets within the given named branch</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-P</span>, <span class="option">--prune</span></kbd></td>
-<td>do not display revision or any of its ancestors</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--hidden</span></kbd></td>
-<td>show hidden changesets (DEPRECATED)</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-p</span>, <span class="option">--patch</span></kbd></td>
-<td>show patch</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-g</span>, <span class="option">--git</span></kbd></td>
-<td>use git extended diff format</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-l</span>, <span class="option">--limit</span></kbd></td>
<td>limit number of changes displayed</td></tr>
-<tr><td class="option-group" colspan="2">
-<kbd><span class="option">-M</span>, <span class="option">--no-merges</span></kbd></td>
-</tr>
-<tr><td>&nbsp;</td><td>do not show merges</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">--stat</span></kbd></td>
-<td>output diffstat-style summary of changes</td></tr>
+<kbd><span class="option">-p</span>, <span class="option">--patch</span></kbd></td>
+<td>show patch</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">-G</span>, <span class="option">--graph</span></kbd></td>
-<td>show the revision DAG</td></tr>
+<kbd><span class="option">-r</span>, <span class="option">--rev</span></kbd></td>
+<td>show the specified revision or range</td></tr>
<tr><td class="option-group">
<kbd><span class="option">--style</span></kbd></td>
<td>display using template map file</td></tr>
<tr><td class="option-group">
<kbd><span class="option">--template</span></kbd></td>
<td>display with template</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-I</span>, <span class="option">--include</span></kbd></td>
-<td>include names matching the given patterns</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-X</span>, <span class="option">--exclude</span></kbd></td>
-<td>exclude names matching the given patterns</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="section" id="hgcia">
-<h2><a class="toc-backref" href="#id80">hgcia</a></h2>
+<h2><a class="toc-backref" href="#id84">hgcia</a></h2>
<p>hooks for integrating with the CIA.vc notification service</p>
<p>This is meant to be run as a changegroup or incoming hook. To
configure it, set the following options in your hgrc:</p>
@@ -6458,7 +5493,7 @@ baseurl = http://server/path/to/repo
</pre>
</div>
<div class="section" id="hgk">
-<h2><a class="toc-backref" href="#id81">hgk</a></h2>
+<h2><a class="toc-backref" href="#id85">hgk</a></h2>
<p>browse the repository in a graphical way</p>
<p>The hgk extension allows browsing the history of a repository in a
graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is not
@@ -6505,7 +5540,7 @@ hg view [-l LIMIT] [REVRANGE]
</div>
</div>
<div class="section" id="highlight">
-<h2><a class="toc-backref" href="#id82">highlight</a></h2>
+<h2><a class="toc-backref" href="#id86">highlight</a></h2>
<p>syntax highlighting for hgweb (requires Pygments)</p>
<p>It depends on the Pygments syntax highlighting library:
<a class="reference external" href="http://pygments.org/">http://pygments.org/</a></p>
@@ -6516,178 +5551,10 @@ pygments_style = &lt;style&gt;
</pre>
<p>The default is 'colorful'.</p>
</div>
-<div class="section" id="histedit">
-<h2><a class="toc-backref" href="#id83">histedit</a></h2>
-<p>interactive history editing</p>
-<p>With this extension installed, Mercurial gains one new command: histedit. Usage
-is as follows, assuming the following history:</p>
-<pre class="literal-block">
-&#64; 3[tip] 7c2fd3b9020c 2009-04-27 18:04 -0500 durin42
-| Add delta
-|
-o 2 030b686bedc4 2009-04-27 18:04 -0500 durin42
-| Add gamma
-|
-o 1 c561b4e977df 2009-04-27 18:04 -0500 durin42
-| Add beta
-|
-o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42
- Add alpha
-</pre>
-<p>If you were to run <tt class="docutils literal">hg histedit c561b4e977df</tt>, you would see the following
-file open in your editor:</p>
-<pre class="literal-block">
-pick c561b4e977df Add beta
-pick 030b686bedc4 Add gamma
-pick 7c2fd3b9020c Add delta
-
-# Edit history between 633536316234 and 7c2fd3b9020c
-#
-# Commands:
-# p, pick = use commit
-# e, edit = use commit, but stop for amending
-# f, fold = use commit, but fold into previous commit
-# d, drop = remove commit from history
-# m, mess = edit message without changing commit content
-#
-</pre>
-<p>In this file, lines beginning with <tt class="docutils literal">#</tt> are ignored. You must specify a rule
-for each revision in your history. For example, if you had meant to add gamma
-before beta, and then wanted to add delta in the same revision as beta, you
-would reorganize the file to look like this:</p>
-<pre class="literal-block">
-pick 030b686bedc4 Add gamma
-pick c561b4e977df Add beta
-fold 7c2fd3b9020c Add delta
-
-# Edit history between 633536316234 and 7c2fd3b9020c
-#
-# Commands:
-# p, pick = use commit
-# e, edit = use commit, but stop for amending
-# f, fold = use commit, but fold into previous commit
-# d, drop = remove commit from history
-# m, mess = edit message without changing commit content
-#
-</pre>
-<p>At which point you close the editor and <tt class="docutils literal">histedit</tt> starts working. When you
-specify a <tt class="docutils literal">fold</tt> operation, <tt class="docutils literal">histedit</tt> will open an editor when it folds
-those revisions together, offering you a chance to clean up the commit message:</p>
-<pre class="literal-block">
-Add beta
-***
-Add delta
-</pre>
-<p>Edit the commit message to your liking, then close the editor. For
-this example, let's assume that the commit message was changed to
-<tt class="docutils literal">Add beta and delta.</tt> After histedit has run and had a chance to
-remove any old or temporary revisions it needed, the history looks
-like this:</p>
-<pre class="literal-block">
-&#64; 2[tip] 989b4d060121 2009-04-27 18:04 -0500 durin42
-| Add beta and delta.
-|
-o 1 081603921c3f 2009-04-27 18:04 -0500 durin42
-| Add gamma
-|
-o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42
- Add alpha
-</pre>
-<p>Note that <tt class="docutils literal">histedit</tt> does <em>not</em> remove any revisions (even its own temporary
-ones) until after it has completed all the editing operations, so it will
-probably perform several strip operations when it's done. For the above example,
-it had to run strip twice. Strip can be slow depending on a variety of factors,
-so you might need to be a little patient. You can choose to keep the original
-revisions by passing the <tt class="docutils literal"><span class="pre">--keep</span></tt> flag.</p>
-<p>The <tt class="docutils literal">edit</tt> operation will drop you back to a command prompt,
-allowing you to edit files freely, or even use <tt class="docutils literal">hg record</tt> to commit
-some changes as a separate commit. When you're done, any remaining
-uncommitted changes will be committed as well. When done, run <tt class="docutils literal">hg
-histedit <span class="pre">--continue</span></tt> to finish this step. You'll be prompted for a
-new commit message, but the default commit message will be the
-original message for the <tt class="docutils literal">edit</tt> ed revision.</p>
-<p>The <tt class="docutils literal">message</tt> operation will give you a chance to revise a commit
-message without changing the contents. It's a shortcut for doing
-<tt class="docutils literal">edit</tt> immediately followed by <cite>hg histedit --continue`</cite>.</p>
-<p>If <tt class="docutils literal">histedit</tt> encounters a conflict when moving a revision (while
-handling <tt class="docutils literal">pick</tt> or <tt class="docutils literal">fold</tt>), it'll stop in a similar manner to
-<tt class="docutils literal">edit</tt> with the difference that it won't prompt you for a commit
-message when done. If you decide at this point that you don't like how
-much work it will be to rearrange history, or that you made a mistake,
-you can use <tt class="docutils literal">hg histedit <span class="pre">--abort</span></tt> to abandon the new changes you
-have made and return to the state before you attempted to edit your
-history.</p>
-<p>If we clone the example repository above and add three more changes, such that
-we have the following history:</p>
-<pre class="literal-block">
-&#64; 6[tip] 038383181893 2009-04-27 18:04 -0500 stefan
-| Add theta
-|
-o 5 140988835471 2009-04-27 18:04 -0500 stefan
-| Add eta
-|
-o 4 122930637314 2009-04-27 18:04 -0500 stefan
-| Add zeta
-|
-o 3 836302820282 2009-04-27 18:04 -0500 stefan
-| Add epsilon
-|
-o 2 989b4d060121 2009-04-27 18:04 -0500 durin42
-| Add beta and delta.
-|
-o 1 081603921c3f 2009-04-27 18:04 -0500 durin42
-| Add gamma
-|
-o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42
- Add alpha
-</pre>
-<p>If you run <tt class="docutils literal">hg histedit <span class="pre">--outgoing</span></tt> on the clone then it is the same
-as running <tt class="docutils literal">hg histedit 836302820282</tt>. If you need plan to push to a
-repository that Mercurial does not detect to be related to the source
-repo, you can add a <tt class="docutils literal"><span class="pre">--force</span></tt> option.</p>
-<div class="section" id="id20">
-<h3>Commands</h3>
-<div class="section" id="id21">
-<h4>histedit</h4>
-<pre class="literal-block">
-hg histedit [PARENT]
-</pre>
-<p>interactively edit changeset history</p>
-<p>Options:</p>
-<table class="docutils option-list" frame="void" rules="none">
-<col class="option" />
-<col class="description" />
-<tbody valign="top">
-<tr><td class="option-group">
-<kbd><span class="option">--commands</span></kbd></td>
-<td>Read history edits from the specified file.</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-c</span>, <span class="option">--continue</span></kbd></td>
-<td>continue an edit already in progress</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-k</span>, <span class="option">--keep</span></kbd></td>
-<td>don't strip old nodes after edit is complete</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--abort</span></kbd></td>
-<td>abort an edit in progress</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-o</span>, <span class="option">--outgoing</span></kbd></td>
-<td>changesets not found in destination</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-f</span>, <span class="option">--force</span></kbd></td>
-<td>force outgoing even for unrelated repositories</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-r</span>, <span class="option">--rev</span></kbd></td>
-<td>first revision to be edited</td></tr>
-</tbody>
-</table>
-</div>
-</div>
-</div>
<div class="section" id="inotify">
-<h2><a class="toc-backref" href="#id84">inotify</a></h2>
+<h2><a class="toc-backref" href="#id87">inotify</a></h2>
<p>accelerate status report using Linux's inotify service</p>
-<div class="section" id="id22">
+<div class="section" id="id20">
<h3>Commands</h3>
<div class="section" id="inserve">
<h4>inserve</h4>
@@ -6720,7 +5587,7 @@ hg inserve [OPTION]...
</div>
</div>
<div class="section" id="interhg">
-<h2><a class="toc-backref" href="#id85">interhg</a></h2>
+<h2><a class="toc-backref" href="#id88">interhg</a></h2>
<p>expand expressions into changelog and summaries</p>
<p>This extension allows the use of a special syntax in summaries, which
will be automatically expanded into links or any other arbitrary
@@ -6735,7 +5602,7 @@ boldify = s!(^|\s)#(\d+)\b! &lt;b&gt;#\2&lt;/b&gt;!
</pre>
</div>
<div class="section" id="keyword">
-<h2><a class="toc-backref" href="#id86">keyword</a></h2>
+<h2><a class="toc-backref" href="#id89">keyword</a></h2>
<p>expand keywords in tracked files</p>
<p>This extension expands RCS/CVS-like or self-customized $Keywords$ in
tracked text files selected by your configuration.</p>
@@ -6788,7 +5655,7 @@ to avoid storing expanded keywords in the change history.</p>
<p>Expansions spanning more than one line and incremental expansions,
like CVS' $Log$, are not supported. A keyword template map &quot;Log =
{desc}&quot; expands to the first line of the changeset description.</p>
-<div class="section" id="id23">
+<div class="section" id="id21">
<h3>Commands</h3>
<div class="section" id="kwdemo">
<h4>kwdemo</h4>
@@ -6902,118 +5769,8 @@ hg kwshrink [OPTION]... [FILE]...
</div>
</div>
</div>
-<div class="section" id="largefiles">
-<h2><a class="toc-backref" href="#id87">largefiles</a></h2>
-<p>track large binary files</p>
-<p>Large binary files tend to be not very compressible, not very
-diffable, and not at all mergeable. Such files are not handled
-efficiently by Mercurial's storage format (revlog), which is based on
-compressed binary deltas; storing large binary files as regular
-Mercurial files wastes bandwidth and disk space and increases
-Mercurial's memory usage. The largefiles extension addresses these
-problems by adding a centralized client-server layer on top of
-Mercurial: largefiles live in a <em>central store</em> out on the network
-somewhere, and you only fetch the revisions that you need when you
-need them.</p>
-<p>largefiles works by maintaining a &quot;standin file&quot; in .hglf/ for each
-largefile. The standins are small (41 bytes: an SHA-1 hash plus
-newline) and are tracked by Mercurial. Largefile revisions are
-identified by the SHA-1 hash of their contents, which is written to
-the standin. largefiles uses that revision ID to get/put largefile
-revisions from/to the central store. This saves both disk space and
-bandwidth, since you don't need to retrieve all historical revisions
-of large files when you clone or pull.</p>
-<p>To start a new repository or add new large binary files, just add
---large to your <a class="reference external" href="hg.1.html#add"><tt class="docutils literal">hg add</tt></a> command. For example:</p>
-<pre class="literal-block">
-$ dd if=/dev/urandom of=randomdata count=2000
-$ hg add --large randomdata
-$ hg commit -m 'add randomdata as a largefile'
-</pre>
-<p>When you push a changeset that adds/modifies largefiles to a remote
-repository, its largefile revisions will be uploaded along with it.
-Note that the remote Mercurial must also have the largefiles extension
-enabled for this to work.</p>
-<p>When you pull a changeset that affects largefiles from a remote
-repository, Mercurial behaves as normal. However, when you update to
-such a revision, any largefiles needed by that revision are downloaded
-and cached (if they have never been downloaded before). This means
-that network access may be required to update to changesets you have
-not previously updated to.</p>
-<p>If you already have large files tracked by Mercurial without the
-largefiles extension, you will need to convert your repository in
-order to benefit from largefiles. This is done with the
-<a class="reference external" href="hg.1.html#lfconvert"><tt class="docutils literal">hg lfconvert</tt></a> command:</p>
-<pre class="literal-block">
-$ hg lfconvert --size 10 oldrepo newrepo
-</pre>
-<p>In repositories that already have largefiles in them, any new file
-over 10MB will automatically be added as a largefile. To change this
-threshold, set <tt class="docutils literal">largefiles.minsize</tt> in your Mercurial config file
-to the minimum size in megabytes to track as a largefile, or use the
---lfsize option to the add command (also in megabytes):</p>
-<pre class="literal-block">
-[largefiles]
-minsize = 2
-
-$ hg add --lfsize 2
-</pre>
-<p>The <tt class="docutils literal">largefiles.patterns</tt> config option allows you to specify a list
-of filename patterns (see <a class="reference external" href="hg.1.html#patterns"><tt class="docutils literal">hg help patterns</tt></a>) that should always be
-tracked as largefiles:</p>
-<pre class="literal-block">
-[largefiles]
-patterns =
- *.jpg
- re:.*\.(png|bmp)$
- library.zip
- content/audio/*
-</pre>
-<p>Files that match one of these patterns will be added as largefiles
-regardless of their size.</p>
-<p>The <tt class="docutils literal">largefiles.minsize</tt> and <tt class="docutils literal">largefiles.patterns</tt> config options
-will be ignored for any repositories not already containing a
-largefile. To add the first largefile to a repository, you must
-explicitly do so with the --large flag passed to the <a class="reference external" href="hg.1.html#add"><tt class="docutils literal">hg add</tt></a>
-command.</p>
-<div class="section" id="id24">
-<h3>Commands</h3>
-<div class="section" id="lfconvert">
-<h4>lfconvert</h4>
-<pre class="literal-block">
-hg lfconvert SOURCE DEST [FILE ...]
-</pre>
-<p>Convert repository SOURCE to a new repository DEST, identical to
-SOURCE except that certain files will be converted as largefiles:
-specifically, any file that matches any PATTERN <em>or</em> whose size is
-above the minimum size threshold is converted as a largefile. The
-size used to determine whether or not to track a file as a
-largefile is the size of the first version of the file. The
-minimum size can be specified either with --size or in
-configuration as <tt class="docutils literal">largefiles.size</tt>.</p>
-<p>After running this command you will need to make sure that
-largefiles is enabled anywhere you intend to push the new
-repository.</p>
-<p>Use --to-normal to convert largefiles back to normal files; after
-this, the DEST repository can be used without largefiles at all.</p>
-<p>Options:</p>
-<table class="docutils option-list" frame="void" rules="none">
-<col class="option" />
-<col class="description" />
-<tbody valign="top">
-<tr><td class="option-group">
-<kbd><span class="option">-s</span>, <span class="option">--size</span></kbd></td>
-<td>minimum size (MB) for files to be converted as largefiles</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--to-normal</span></kbd></td>
-<td>convert from a largefiles repo to a normal repo</td></tr>
-</tbody>
-</table>
-</div>
-</div>
-</div>
<div class="section" id="mq">
-<h2><a class="toc-backref" href="#id88">mq</a></h2>
+<h2><a class="toc-backref" href="#id90">mq</a></h2>
<p>manage a stack of patches</p>
<p>This extension lets you work with a stack of patches in a Mercurial
repository. It manages two stacks of patches - all known patches, and
@@ -7043,25 +5800,9 @@ git = auto/keep/yes/no
preserving existing git patches upon qrefresh. If set to 'yes' or
'no', mq will override the [diff] section and always generate git or
regular patches, possibly losing data in the second case.</p>
-<p>It may be desirable for mq changesets to be kept in the secret phase (see
-<a class="reference external" href="hg.1.html#phases"><tt class="docutils literal">hg help phases</tt></a>), which can be enabled with the following setting:</p>
-<pre class="literal-block">
-[mq]
-secret = True
-</pre>
<p>You will by default be managing a patch queue named &quot;patches&quot;. You can
create other, independent patch queues with the <a class="reference external" href="hg.1.html#qqueue"><tt class="docutils literal">hg qqueue</tt></a> command.</p>
-<p>If the working directory contains uncommitted files, qpush, qpop and
-qgoto abort immediately. If -f/--force is used, the changes are
-discarded. Setting:</p>
-<pre class="literal-block">
-[mq]
-keepchanges = True
-</pre>
-<p>make them behave as if --keep-changes were passed, and non-conflicting
-local changes will be tolerated and preserved. If incompatible options
-such as -f/--force or --exact are passed, this setting is ignored.</p>
-<div class="section" id="id25">
+<div class="section" id="id22">
<h3>Commands</h3>
<div class="section" id="qapplied">
<h4>qapplied</h4>
@@ -7076,7 +5817,7 @@ hg qapplied [-1] [-s] [PATCH]
<tbody valign="top">
<tr><td class="option-group">
<kbd><span class="option">-1</span>, <span class="option">--last</span></kbd></td>
-<td>show only the preceding applied patch</td></tr>
+<td>show only the last patch</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-s</span>, <span class="option">--summary</span></kbd></td>
<td>print first line of patch header</td></tr>
@@ -7146,9 +5887,6 @@ hg qcommit [OPTION]... [FILE]...
<kbd><span class="option">--close-branch</span></kbd></td>
<td>mark a branch as closed, hiding it from the branch list</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">--amend</span></kbd></td>
-<td>amend the parent of the working dir</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-I</span>, <span class="option">--include</span></kbd></td>
<td>include names matching the given patterns</td></tr>
<tr><td class="option-group">
@@ -7165,10 +5903,7 @@ hg qcommit [OPTION]... [FILE]...
<td>record the specified date as commit date</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-u</span>, <span class="option">--user</span></kbd></td>
-<td>record the specified user as committer</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-S</span>, <span class="option">--subrepos</span></kbd></td>
-<td><p class="first">recurse into subrepositories</p>
+<td><p class="first">record the specified user as committer</p>
<p class="last">aliases: qci</p>
</td></tr>
</tbody>
@@ -7179,9 +5914,8 @@ hg qcommit [OPTION]... [FILE]...
<pre class="literal-block">
hg qdelete [-k] [PATCH]...
</pre>
-<p>The patches must not be applied, and at least one patch is required. Exact
-patch identifiers must be given. With -k/--keep, the patch files are
-preserved in the patch directory.</p>
+<p>The patches must not be applied, and at least one patch is required. With
+-k/--keep, the patch files are preserved in the patch directory.</p>
<p>To stop managing a patch and move it into permanent history,
use the <a class="reference external" href="hg.1.html#qfinish"><tt class="docutils literal">hg qfinish</tt></a> command.</p>
<p>Options:</p>
@@ -7335,14 +6069,8 @@ hg qgoto [OPTION]... PATCH
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
-<kbd><span class="option">--keep-changes</span></kbd></td>
-<td>tolerate non-conflicting local changes</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-f</span>, <span class="option">--force</span></kbd></td>
<td>overwrite any local changes</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--no-backup</span></kbd></td>
-<td>do not save backup copies of files</td></tr>
</tbody>
</table>
</div>
@@ -7391,7 +6119,7 @@ hg qheader [PATCH]
<div class="section" id="qimport">
<h4>qimport</h4>
<pre class="literal-block">
-hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... [FILE]...
+hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE...
</pre>
<p>The patch is inserted into the series after the last applied
patch. If no patches have been applied, qimport prepends the patch
@@ -7553,13 +6281,9 @@ hg qnext [-s]
<pre class="literal-block">
hg qpop [-a] [-f] [PATCH | INDEX]
</pre>
-<p>Without argument, pops off the top of the patch stack. If given a
-patch name, keeps popping off patches until the named patch is at
-the top of the stack.</p>
-<p>By default, abort if the working directory contains uncommitted
-changes. With --keep-changes, abort only if the uncommitted files
-overlap with patched files. With -f/--force, backup and discard
-changes made to such files.</p>
+<p>By default, pops off the top of the patch stack. If given a patch
+name, keeps popping off patches until the named patch is at the
+top of the stack.</p>
<p>Return 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -7573,14 +6297,8 @@ changes made to such files.</p>
<kbd><span class="option">-n</span>, <span class="option">--name</span></kbd></td>
<td>queue name to pop (DEPRECATED)</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">--keep-changes</span></kbd></td>
-<td>tolerate non-conflicting local changes</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-f</span>, <span class="option">--force</span></kbd></td>
<td>forget any local changes to patched files</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--no-backup</span></kbd></td>
-<td>do not save backup copies of files</td></tr>
</tbody>
</table>
</div>
@@ -7606,10 +6324,8 @@ hg qprev [-s]
<pre class="literal-block">
hg qpush [-f] [-l] [-a] [--move] [PATCH | INDEX]
</pre>
-<p>By default, abort if the working directory contains uncommitted
-changes. With --keep-changes, abort only if the uncommitted files
-overlap with patched files. With -f/--force, backup and patch over
-uncommitted changes.</p>
+<p>When -f/--force is applied, all local changes in patched files
+will be lost.</p>
<p>Return 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -7617,9 +6333,6 @@ uncommitted changes.</p>
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
-<kbd><span class="option">--keep-changes</span></kbd></td>
-<td>tolerate non-conflicting local changes</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-f</span>, <span class="option">--force</span></kbd></td>
<td>apply on top of local changes</td></tr>
<tr><td class="option-group">
@@ -7640,9 +6353,6 @@ uncommitted changes.</p>
<tr><td class="option-group">
<kbd><span class="option">--move</span></kbd></td>
<td>reorder patch series and apply only the patch</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--no-backup</span></kbd></td>
-<td>do not save backup copies of files</td></tr>
</tbody>
</table>
</div>
@@ -7655,8 +6365,7 @@ hg qqueue [OPTION] [QUEUE]
new patch queues and deleting existing ones.</p>
<p>Omitting a queue name or specifying -l/--list will show you the registered
queues - by default the &quot;normal&quot; patches queue is registered. The currently
-active queue will be marked with &quot;(active)&quot;. Specifying --active will print
-only the name of the active queue.</p>
+active queue will be marked with &quot;(active)&quot;.</p>
<p>To create a new queue, use -c/--create. The queue is automatically made
active, except in the case where there are applied patches from the
currently active queue in the repository. Then the queue will only be
@@ -7673,9 +6382,6 @@ active queue.</p>
<kbd><span class="option">-l</span>, <span class="option">--list</span></kbd></td>
<td>list all available queues</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">--active</span></kbd></td>
-<td>print name of active queue</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-c</span>, <span class="option">--create</span></kbd></td>
<td>create new queue</td></tr>
<tr><td class="option-group">
@@ -7925,7 +6631,7 @@ hg qunapplied [-1] [-s] [PATCH]
<div class="section" id="strip">
<h4>strip</h4>
<pre class="literal-block">
-hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV...
+hg strip [-k] [-f] [-n] REV...
</pre>
<p>The strip command removes the specified changesets and all their
descendants. If the working directory has uncommitted changes, the
@@ -7943,9 +6649,6 @@ the local revision numbers will in general be different after the
restore.</p>
<p>Use the --no-backup option to discard the backup bundle once the
operation completes.</p>
-<p>Strip is not a history-rewriting operation and can be used on
-changesets in the public phase. But if the stripped changesets have
-been pushed to a remote repository you will likely pull them again.</p>
<p>Return 0 on success.</p>
<p>Options:</p>
<table class="docutils option-list" frame="void" rules="none">
@@ -7953,159 +6656,105 @@ been pushed to a remote repository you will likely pull them again.</p>
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
-<kbd><span class="option">-r</span>, <span class="option">--rev</span></kbd></td>
-<td>strip specified revision (optional, can specify revisions without this option)</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-f</span>, <span class="option">--force</span></kbd></td>
<td>force removal of changesets, discard uncommitted changes (no backup)</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-b</span>, <span class="option">--backup</span></kbd></td>
<td>bundle only changesets with local revision number greater than REV which are not descendants of REV (DEPRECATED)</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">--no-backup</span></kbd></td>
-<td>no backups</td></tr>
+<tr><td class="option-group" colspan="2">
+<kbd><span class="option">-n</span>, <span class="option">--no-backup</span></kbd></td>
+</tr>
+<tr><td>&nbsp;</td><td>no backups</td></tr>
<tr><td class="option-group">
<kbd><span class="option">--nobackup</span></kbd></td>
<td>no backups (DEPRECATED)</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">-n</span></kbd></td>
-<td>ignored (DEPRECATED)</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-k</span>, <span class="option">--keep</span></kbd></td>
<td>do not modify working copy during strip</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-B</span>, <span class="option">--bookmark</span></kbd></td>
-<td>remove revs only reachable from given bookmark</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="section" id="notify">
-<h2><a class="toc-backref" href="#id89">notify</a></h2>
-<p>hooks for sending email push notifications</p>
-<p>This extension implements hooks to send email notifications when
-changesets are sent from or received by the local repository.</p>
-<p>First, enable the extension as explained in <a class="reference external" href="hg.1.html#extensions"><tt class="docutils literal">hg help extensions</tt></a>, and
-register the hook you want to run. <tt class="docutils literal">incoming</tt> and <tt class="docutils literal">changegroup</tt> hooks
-are run when changesets are received, while <tt class="docutils literal">outgoing</tt> hooks are for
-changesets sent to another repository:</p>
+<h2><a class="toc-backref" href="#id91">notify</a></h2>
+<p>hooks for sending email notifications at commit/push time</p>
+<p>Subscriptions can be managed through a hgrc file. Default mode is to
+print messages to stdout, for testing and configuring.</p>
+<p>To use, configure the notify extension and enable it in hgrc like
+this:</p>
<pre class="literal-block">
+[extensions]
+notify =
+
[hooks]
# one email for each incoming changeset
incoming.notify = python:hgext.notify.hook
-# one email for all incoming changesets
+# batch emails when many changesets incoming at one time
changegroup.notify = python:hgext.notify.hook
-
-# one email for all outgoing changesets
+# batch emails when many changesets outgoing at one time (client side)
outgoing.notify = python:hgext.notify.hook
+
+[notify]
+# config items go here
+</pre>
+<p>Required configuration items:</p>
+<pre class="literal-block">
+config = /path/to/file # file containing subscriptions
+</pre>
+<p>Optional configuration items:</p>
+<pre class="literal-block">
+test = True # print messages to stdout for testing
+strip = 3 # number of slashes to strip for url paths
+domain = example.com # domain to use if committer missing domain
+style = ... # style file to use when formatting email
+template = ... # template to use when formatting email
+incoming = ... # template to use when run as incoming hook
+outgoing = ... # template to use when run as outgoing hook
+changegroup = ... # template to use when run as changegroup hook
+maxdiff = 300 # max lines of diffs to include (0=none, -1=all)
+maxsubject = 67 # truncate subject line longer than this
+diffstat = True # add a diffstat before the diff content
+sources = serve # notify if source of incoming changes in this list
+ # (serve == ssh or http, push, pull, bundle)
+merge = False # send notification for merges (default True)
+[email]
+from = user&#64;host.com # email address to send as if none given
+[web]
+baseurl = http://hgserver/... # root of hg web site for browsing commits
</pre>
-<p>This registers the hooks. To enable notification, subscribers must
-be assigned to repositories. The <tt class="docutils literal">[usersubs]</tt> section maps multiple
-repositories to a given recipient. The <tt class="docutils literal">[reposubs]</tt> section maps
-multiple recipients to a single repository:</p>
+<p>The notify config file has same format as a regular hgrc file. It has
+two sections so you can express subscriptions in whatever way is
+handier for you.</p>
<pre class="literal-block">
[usersubs]
-# key is subscriber email, value is a comma-separated list of repo glob
-# patterns
+# key is subscriber email, value is &quot;,&quot;-separated list of glob patterns
user&#64;host = pattern
[reposubs]
-# key is glob pattern, value is a comma-separated list of subscriber
-# emails
+# key is glob pattern, value is &quot;,&quot;-separated list of subscriber emails
pattern = user&#64;host
</pre>
-<p>Glob patterns are matched against absolute path to repository
-root.</p>
-<p>In order to place them under direct user management, <tt class="docutils literal">[usersubs]</tt> and
-<tt class="docutils literal">[reposubs]</tt> sections may be placed in a separate <tt class="docutils literal">hgrc</tt> file and
-incorporated by reference:</p>
-<pre class="literal-block">
-[notify]
-config = /path/to/subscriptionsfile
-</pre>
-<p>Notifications will not be sent until the <tt class="docutils literal">notify.test</tt> value is set
-to <tt class="docutils literal">False</tt>; see below.</p>
-<p>Notifications content can be tweaked with the following configuration entries:</p>
-<dl class="docutils">
-<dt>notify.test</dt>
-<dd>If <tt class="docutils literal">True</tt>, print messages to stdout instead of sending them. Default: True.</dd>
-<dt>notify.sources</dt>
-<dd><p class="first">Space-separated list of change sources. Notifications are activated only
-when a changeset's source is in this list. Sources may be:</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field"><th class="field-name"><tt class="docutils literal">serve</tt>:</th><td class="field-body">changesets received via http or ssh</td>
-</tr>
-<tr class="field"><th class="field-name"><tt class="docutils literal">pull</tt>:</th><td class="field-body">changesets received via <tt class="docutils literal">hg pull</tt></td>
-</tr>
-<tr class="field"><th class="field-name"><tt class="docutils literal">unbundle</tt>:</th><td class="field-body">changesets received via <tt class="docutils literal">hg unbundle</tt></td>
-</tr>
-<tr class="field"><th class="field-name"><tt class="docutils literal">push</tt>:</th><td class="field-body">changesets sent or received via <tt class="docutils literal">hg push</tt></td>
-</tr>
-<tr class="field"><th class="field-name"><tt class="docutils literal">bundle</tt>:</th><td class="field-body">changesets sent via <tt class="docutils literal">hg unbundle</tt></td>
-</tr>
-</tbody>
-</table>
-<p class="last">Default: serve.</p>
-</dd>
-<dt>notify.strip</dt>
-<dd>Number of leading slashes to strip from url paths. By default, notifications
-reference repositories with their absolute path. <tt class="docutils literal">notify.strip</tt> lets you
-turn them into relative paths. For example, <tt class="docutils literal">notify.strip=3</tt> will change
-<tt class="docutils literal">/long/path/repository</tt> into <tt class="docutils literal">repository</tt>. Default: 0.</dd>
-<dt>notify.domain</dt>
-<dd>Default email domain for sender or recipients with no explicit domain.</dd>
-<dt>notify.style</dt>
-<dd>Style file to use when formatting emails.</dd>
-<dt>notify.template</dt>
-<dd>Template to use when formatting emails.</dd>
-<dt>notify.incoming</dt>
-<dd>Template to use when run as an incoming hook, overriding <tt class="docutils literal">notify.template</tt>.</dd>
-<dt>notify.outgoing</dt>
-<dd>Template to use when run as an outgoing hook, overriding <tt class="docutils literal">notify.template</tt>.</dd>
-<dt>notify.changegroup</dt>
-<dd>Template to use when running as a changegroup hook, overriding
-<tt class="docutils literal">notify.template</tt>.</dd>
-<dt>notify.maxdiff</dt>
-<dd>Maximum number of diff lines to include in notification email. Set to 0
-to disable the diff, or -1 to include all of it. Default: 300.</dd>
-<dt>notify.maxsubject</dt>
-<dd>Maximum number of characters in email's subject line. Default: 67.</dd>
-<dt>notify.diffstat</dt>
-<dd>Set to True to include a diffstat before diff content. Default: True.</dd>
-<dt>notify.merge</dt>
-<dd>If True, send notifications for merge changesets. Default: True.</dd>
-<dt>notify.mbox</dt>
-<dd>If set, append mails to this mbox file instead of sending. Default: None.</dd>
-<dt>notify.fromauthor</dt>
-<dd>If set, use the committer of the first changeset in a changegroup for
-the &quot;From&quot; field of the notification mail. If not set, take the user
-from the pushing repo. Default: False.</dd>
-</dl>
-<p>If set, the following entries will also be used to customize the
-notifications:</p>
-<dl class="docutils">
-<dt>email.from</dt>
-<dd>Email <tt class="docutils literal">From</tt> address to use if none can be found in the generated
-email content.</dd>
-<dt>web.baseurl</dt>
-<dd>Root repository URL to combine with repository paths when making
-references. See also <tt class="docutils literal">notify.strip</tt>.</dd>
-</dl>
+<p>Glob patterns are matched against path to repository root.</p>
+<p>If you like, you can put notify config file in repository that users
+can push changes to, they can manage their own subscriptions.</p>
</div>
<div class="section" id="pager">
-<h2><a class="toc-backref" href="#id90">pager</a></h2>
+<h2><a class="toc-backref" href="#id92">pager</a></h2>
<p>browse command output with an external pager</p>
<p>To set the pager that should be used, set the application variable:</p>
<pre class="literal-block">
[pager]
-pager = less -FRX
+pager = less -FRSX
</pre>
<p>If no pager is set, the pager extensions uses the environment variable
$PAGER. If neither pager.pager, nor $PAGER is set, no pager is used.</p>
+<p>If you notice &quot;BROKEN PIPE&quot; error messages, you can disable them by
+setting:</p>
+<pre class="literal-block">
+[pager]
+quiet = True
+</pre>
<p>You can disable the pager for certain commands by adding them to the
pager.ignore list:</p>
<pre class="literal-block">
@@ -8128,7 +6777,7 @@ used. Use a boolean value like yes, no, on, off, or use auto for
normal behavior.</p>
</div>
<div class="section" id="patchbomb">
-<h2><a class="toc-backref" href="#id91">patchbomb</a></h2>
+<h2><a class="toc-backref" href="#id93">patchbomb</a></h2>
<p>command to send changesets as (a series of) patch emails</p>
<p>The series is started off with a &quot;[PATCH 0 of N]&quot; introduction, which
describes the series as a whole.</p>
@@ -8162,7 +6811,7 @@ to be a sendmail compatible mailer or fill out the [smtp] section so
that the patchbomb extension can automatically send patchbombs
directly from the commandline. See the [email] and [smtp] sections in
hgrc(5) for details.</p>
-<div class="section" id="id26">
+<div class="section" id="id23">
<h3>Commands</h3>
<div class="section" id="email">
<h4>email</h4>
@@ -8185,9 +6834,7 @@ the messages are sent.</p>
<p>By default the patch is included as text in the email body for
easy reviewing. Using the -a/--attach option will instead create
an attachment for the patch. With -i/--inline an inline attachment
-will be created. You can include a patch both as text in the email
-body and as a regular or an inline attachment by combining the
--a/--attach or -i/--inline with the --body option.</p>
+will be created.</p>
<p>With -o/--outgoing, emails will be generated for patches not found
in the destination repository (or only those which are ancestors
of the specified revisions if any are provided)</p>
@@ -8265,9 +6912,6 @@ hgrc. See the [email] section in hgrc(5) for details.</p>
<kbd><span class="option">--intro</span></kbd></td>
<td>send an introduction email for a single patch</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">--body</span></kbd></td>
-<td>send patches as inline message text (default)</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-a</span>, <span class="option">--attach</span></kbd></td>
<td>send patches as attachments</td></tr>
<tr><td class="option-group">
@@ -8330,7 +6974,7 @@ hgrc. See the [email] section in hgrc(5) for details.</p>
</div>
</div>
<div class="section" id="progress">
-<h2><a class="toc-backref" href="#id92">progress</a></h2>
+<h2><a class="toc-backref" href="#id94">progress</a></h2>
<p>show progress bars for some actions</p>
<p>This extension uses the progress information logged by hg commands
to draw progress bars that are as informative as possible. Some progress
@@ -8340,9 +6984,6 @@ end point.</p>
<pre class="literal-block">
[progress]
delay = 3 # number of seconds (float) before showing the progress bar
-changedelay = 1 # changedelay: minimum delay before showing a new topic.
- # If set to less than 3 * refresh, that value will
- # be used instead.
refresh = 0.1 # time in seconds between refreshes of the progress bar
format = topic bar number estimate # format of the progress bar
width = &lt;none&gt; # if set, the maximum width of the progress information
@@ -8359,11 +7000,11 @@ would take the last num characters, or <tt class="docutils literal">+&lt;num&gt;
characters.</p>
</div>
<div class="section" id="purge">
-<h2><a class="toc-backref" href="#id93">purge</a></h2>
+<h2><a class="toc-backref" href="#id95">purge</a></h2>
<p>command to delete untracked files from the working directory</p>
-<div class="section" id="id27">
+<div class="section" id="id24">
<h3>Commands</h3>
-<div class="section" id="id28">
+<div class="section" id="id25">
<h4>purge</h4>
<pre class="literal-block">
hg purge [OPTION]... [DIR]...
@@ -8420,18 +7061,19 @@ option.</p>
</div>
</div>
<div class="section" id="rebase">
-<h2><a class="toc-backref" href="#id94">rebase</a></h2>
+<h2><a class="toc-backref" href="#id96">rebase</a></h2>
<p>command to move sets of revisions to a different ancestor</p>
<p>This extension lets you rebase changesets in an existing Mercurial
repository.</p>
<p>For more information:
<a class="reference external" href="http://mercurial.selenic.com/wiki/RebaseExtension">http://mercurial.selenic.com/wiki/RebaseExtension</a></p>
-<div class="section" id="id29">
+<div class="section" id="id26">
<h3>Commands</h3>
-<div class="section" id="id30">
+<div class="section" id="id27">
<h4>rebase</h4>
<pre class="literal-block">
-hg rebase [-s REV | -b REV] [-d REV] [OPTION]
+hg rebase [-s REV | -b REV] [-d REV] [options]
+hg rebase {-a|-c}
</pre>
<p>Rebase uses repeated merging to graft changesets from one part of
history (the source) onto another (the destination). This can be
@@ -8482,9 +7124,6 @@ continued with --continue/-c or aborted with --abort/-a.</p>
<kbd><span class="option">-b</span>, <span class="option">--base</span></kbd></td>
<td>rebase from the base of the specified changeset (up to greatest common ancestor of base and dest)</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">-r</span>, <span class="option">--rev</span></kbd></td>
-<td>rebase these revisions</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-d</span>, <span class="option">--dest</span></kbd></td>
<td>rebase onto the specified changeset</td></tr>
<tr><td class="option-group">
@@ -8494,9 +7133,6 @@ continued with --continue/-c or aborted with --abort/-a.</p>
<kbd><span class="option">-m</span>, <span class="option">--message</span></kbd></td>
<td>use text as collapse commit message</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">-e</span>, <span class="option">--edit</span></kbd></td>
-<td>invoke editor on commit messages</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-l</span>, <span class="option">--logfile</span></kbd></td>
<td>read collapse commit message from file</td></tr>
<tr><td class="option-group">
@@ -8506,8 +7142,8 @@ continued with --continue/-c or aborted with --abort/-a.</p>
<kbd><span class="option">--keepbranches</span></kbd></td>
<td>keep original branch names</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">-D</span>, <span class="option">--detach</span></kbd></td>
-<td>(DEPRECATED)</td></tr>
+<kbd><span class="option">--detach</span></kbd></td>
+<td>force detaching of source from its original branch</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-t</span>, <span class="option">--tool</span></kbd></td>
<td>specify merge tool</td></tr>
@@ -8529,9 +7165,9 @@ continued with --continue/-c or aborted with --abort/-a.</p>
</div>
</div>
<div class="section" id="record">
-<h2><a class="toc-backref" href="#id95">record</a></h2>
+<h2><a class="toc-backref" href="#id97">record</a></h2>
<p>commands to interactively select changes for commit/qrefresh</p>
-<div class="section" id="id31">
+<div class="section" id="id28">
<h3>Commands</h3>
<div class="section" id="qrecord">
<h4>qrecord</h4>
@@ -8541,7 +7177,7 @@ hg qrecord [OPTION]... PATCH [FILE]...
<p>See <a class="reference external" href="hg.1.html#qnew"><tt class="docutils literal">hg help qnew</tt></a> &amp; <a class="reference external" href="hg.1.html#record"><tt class="docutils literal">hg help record</tt></a> for more information and
usage.</p>
</div>
-<div class="section" id="id32">
+<div class="section" id="id29">
<h4>record</h4>
<pre class="literal-block">
hg record [OPTION]... [FILE]...
@@ -8556,7 +7192,6 @@ possible:</p>
<pre class="literal-block">
y - record this change
n - skip this change
-e - edit this change manually
s - skip remaining changes to this file
f - record remaining changes to this file
@@ -8581,9 +7216,6 @@ q - quit, recording no changes
<kbd><span class="option">--close-branch</span></kbd></td>
<td>mark a branch as closed, hiding it from the branch list</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">--amend</span></kbd></td>
-<td>amend the parent of the working dir</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">-I</span>, <span class="option">--include</span></kbd></td>
<td>include names matching the given patterns</td></tr>
<tr><td class="option-group">
@@ -8601,9 +7233,6 @@ q - quit, recording no changes
<tr><td class="option-group">
<kbd><span class="option">-u</span>, <span class="option">--user</span></kbd></td>
<td>record the specified user as committer</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-S</span>, <span class="option">--subrepos</span></kbd></td>
-<td>recurse into subrepositories</td></tr>
<tr><td class="option-group" colspan="2">
<kbd><span class="option">-w</span>, <span class="option">--ignore-all-space</span></kbd></td>
</tr>
@@ -8622,11 +7251,11 @@ q - quit, recording no changes
</div>
</div>
<div class="section" id="relink">
-<h2><a class="toc-backref" href="#id96">relink</a></h2>
+<h2><a class="toc-backref" href="#id98">relink</a></h2>
<p>recreates hardlinks between repository clones</p>
-<div class="section" id="id33">
+<div class="section" id="id30">
<h3>Commands</h3>
-<div class="section" id="id34">
+<div class="section" id="id31">
<h4>relink</h4>
<pre class="literal-block">
hg relink [ORIGIN]
@@ -8651,7 +7280,7 @@ writes.)</p>
</div>
</div>
<div class="section" id="schemes">
-<h2><a class="toc-backref" href="#id97">schemes</a></h2>
+<h2><a class="toc-backref" href="#id99">schemes</a></h2>
<p>extend schemes with shortcuts to repository swarms</p>
<p>This extension allows you to specify shortcuts for parent URLs with a
lot of repositories to act like a scheme, for example:</p>
@@ -8687,11 +7316,11 @@ kiln = https://{1}.kilnhg.com/Repo/
same name.</p>
</div>
<div class="section" id="share">
-<h2><a class="toc-backref" href="#id98">share</a></h2>
+<h2><a class="toc-backref" href="#id100">share</a></h2>
<p>share a common history between several working directories</p>
-<div class="section" id="id35">
+<div class="section" id="id32">
<h3>Commands</h3>
-<div class="section" id="id36">
+<div class="section" id="id33">
<h4>share</h4>
<pre class="literal-block">
hg share [-U] SOURCE [DEST]
@@ -8721,24 +7350,17 @@ the broken clone to reset it to a changeset that still exists
</tbody>
</table>
</div>
-<div class="section" id="unshare">
-<h4>unshare</h4>
-<pre class="literal-block">
-hg unshare
-</pre>
-<p>Copy the store data to the repo and remove the sharedpath data.</p>
-</div>
</div>
</div>
<div class="section" id="transplant">
-<h2><a class="toc-backref" href="#id99">transplant</a></h2>
+<h2><a class="toc-backref" href="#id101">transplant</a></h2>
<p>command to transplant changesets from another branch</p>
<p>This extension allows you to transplant patches from another branch.</p>
<p>Transplanted patches are recorded in .hg/transplant/transplants, as a
map from a changeset hash to its hash in the source repository.</p>
-<div class="section" id="id37">
+<div class="section" id="id34">
<h3>Commands</h3>
-<div class="section" id="id38">
+<div class="section" id="id35">
<h4>transplant</h4>
<pre class="literal-block">
hg transplant [-s REPO] [-b BRANCH [-a]] [-p REV] [-m REV] [REV]...
@@ -8762,15 +7384,13 @@ the branch holding the named revision, up to that revision. If
--all/-a is specified, all changesets on the branch will be
transplanted, otherwise you will be prompted to select the
changesets you want.</p>
-<p><a class="reference external" href="hg.1.html#transplant"><tt class="docutils literal">hg transplant <span class="pre">--branch</span> REV <span class="pre">--all</span></tt></a> will transplant the
+<p><a class="reference external" href="hg.1.html#transplant"><tt class="docutils literal">hg transplant <span class="pre">--branch</span> REVISION <span class="pre">--all</span></tt></a> will transplant the
selected branch (up to the named revision) onto your current
working directory.</p>
<p>You can optionally mark selected transplanted changesets as merge
changesets. You will not be prompted to transplant any ancestors
of a merged transplant, and you can merge descendants of them
normally instead of transplanting them.</p>
-<p>Merge changesets may be transplanted directly by specifying the
-proper parent changeset by calling <a class="reference external" href="hg.1.html#transplant"><tt class="docutils literal">hg transplant <span class="pre">--parent</span></tt></a>.</p>
<p>If no merges or revisions are provided, <a class="reference external" href="hg.1.html#transplant"><tt class="docutils literal">hg transplant</tt></a> will
start an interactive changeset browser.</p>
<p>If a changeset application fails, you can fix the merge by hand
@@ -8797,12 +7417,6 @@ and then resume where you left off by calling <a class="reference external" href
<kbd><span class="option">-m</span>, <span class="option">--merge</span></kbd></td>
<td>merge at REV</td></tr>
<tr><td class="option-group">
-<kbd><span class="option">--parent</span></kbd></td>
-<td>parent to choose when transplanting merge</td></tr>
-<tr><td class="option-group">
-<kbd><span class="option">-e</span>, <span class="option">--edit</span></kbd></td>
-<td>invoke editor on commit messages</td></tr>
-<tr><td class="option-group">
<kbd><span class="option">--log</span></kbd></td>
<td>append transplant info to log message</td></tr>
<tr><td class="option-group">
@@ -8817,7 +7431,7 @@ and then resume where you left off by calling <a class="reference external" href
</div>
</div>
<div class="section" id="win32mbcs">
-<h2><a class="toc-backref" href="#id100">win32mbcs</a></h2>
+<h2><a class="toc-backref" href="#id102">win32mbcs</a></h2>
<p>allow the use of MBCS paths with problematic encodings</p>
<p>Some MBCS encodings are not good for some path operations (i.e.
splitting path, case conversion, etc.) with its encoded bytes. We call
@@ -8852,7 +7466,7 @@ encoding = sjis
<p>It is useful for the users who want to commit with UTF-8 log message.</p>
</div>
<div class="section" id="win32text">
-<h2><a class="toc-backref" href="#id101">win32text</a></h2>
+<h2><a class="toc-backref" href="#id103">win32text</a></h2>
<p>perform automatic newline conversion</p>
<blockquote>
<p>Deprecation: The win32text extension requires each user to configure
@@ -8889,7 +7503,7 @@ pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf
</pre>
</div>
<div class="section" id="zeroconf">
-<h2><a class="toc-backref" href="#id102">zeroconf</a></h2>
+<h2><a class="toc-backref" href="#id104">zeroconf</a></h2>
<p>discover and advertise repositories on the local network</p>
<p>Zeroconf-enabled repositories will be announced in a network without
the need to configure a server or a service. They can be discovered
@@ -8911,34 +7525,20 @@ zc-test = http://example.com:8000/test
<div class="section" id="files">
<h1><a class="toc-backref" href="#contents">Files</a></h1>
<dl class="docutils">
-<dt><tt class="docutils literal">/etc/mercurial/hgrc</tt>, <tt class="docutils literal"><span class="pre">$HOME/.hgrc</span></tt>, <tt class="docutils literal">.hg/hgrc</tt></dt>
-<dd>This file contains defaults and configuration. Values in
-<tt class="docutils literal">.hg/hgrc</tt> override those in <tt class="docutils literal"><span class="pre">$HOME/.hgrc</span></tt>, and these override
-settings made in the global <tt class="docutils literal">/etc/mercurial/hgrc</tt> configuration.
-See <a class="reference external" href="hgrc.5.html"><strong>hgrc</strong>(5)</a> for details of the contents and format of these
-files.</dd>
<dt><tt class="docutils literal">.hgignore</tt></dt>
<dd>This file contains regular expressions (one per line) that
describe file names that should be ignored by <strong>hg</strong>. For details,
see <a class="reference external" href="hgignore.5.html"><strong>hgignore</strong>(5)</a>.</dd>
-<dt><tt class="docutils literal">.hgsub</tt></dt>
-<dd>This file defines the locations of all subrepositories, and
-tells where the subrepository checkouts came from. For details, see
-<a class="reference external" href="hg.1.html#subrepos"><tt class="docutils literal">hg help subrepos</tt></a>.</dd>
-<dt><tt class="docutils literal">.hgsubstate</tt></dt>
-<dd>This file is where Mercurial stores all nested repository states. <em>NB: This
-file should not be edited manually.</em></dd>
<dt><tt class="docutils literal">.hgtags</tt></dt>
<dd>This file contains changeset hash values and text tag names (one
of each separated by spaces) that correspond to tagged versions of
-the repository contents. The file content is encoded using UTF-8.</dd>
-<dt><tt class="docutils literal"><span class="pre">.hg/last-message.txt</span></tt></dt>
-<dd>This file is used by <a class="reference external" href="hg.1.html#commit"><tt class="docutils literal">hg commit</tt></a> to store a backup of the commit message
-in case the commit fails.</dd>
-<dt><tt class="docutils literal">.hg/localtags</tt></dt>
-<dd>This file can be used to define local tags which are not shared among
-repositories. The file format is the same as for <tt class="docutils literal">.hgtags</tt>, but it is
-encoded using the local system encoding.</dd>
+the repository contents.</dd>
+<dt><tt class="docutils literal">/etc/mercurial/hgrc</tt>, <tt class="docutils literal"><span class="pre">$HOME/.hgrc</span></tt>, <tt class="docutils literal">.hg/hgrc</tt></dt>
+<dd>This file contains defaults and configuration. Values in
+<tt class="docutils literal">.hg/hgrc</tt> override those in <tt class="docutils literal"><span class="pre">$HOME/.hgrc</span></tt>, and these override
+settings made in the global <tt class="docutils literal">/etc/mercurial/hgrc</tt> configuration.
+See <a class="reference external" href="hgrc.5.html"><strong>hgrc</strong>(5)</a> for details of the contents and format of these
+files.</dd>
</dl>
<p>Some commands (e.g. revert) produce backup files ending in <tt class="docutils literal">.orig</tt>,
if the <tt class="docutils literal">.orig</tt> file already exists and is not tracked by Mercurial,
@@ -8965,7 +7565,7 @@ below) when you find them.</p>
</div>
<div class="section" id="copying">
<h1><a class="toc-backref" href="#contents">Copying</a></h1>
-<p>Copyright (C) 2005-2012 Matt Mackall.
+<p>Copyright (C) 2005-2010 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.</p>
<!-- Common link and substitution definitions. -->
diff --git a/doc/hg.1.txt b/doc/hg.1.txt
index f88ce38..e0bb82f 100644
--- a/doc/hg.1.txt
+++ b/doc/hg.1.txt
@@ -18,16 +18,16 @@ Mercurial source code management system
Synopsis
-""""""""
+--------
**hg** *command* [*option*]... [*argument*]...
Description
-"""""""""""
+-----------
The **hg** command provides a command line interface to the Mercurial
system.
Command Elements
-""""""""""""""""
+----------------
files...
indicates one or more filename or relative path filenames; see
@@ -48,62 +48,44 @@ repository path
.. include:: hg.1.gendoc.txt
Files
-"""""
-
-``/etc/mercurial/hgrc``, ``$HOME/.hgrc``, ``.hg/hgrc``
- This file contains defaults and configuration. Values in
- ``.hg/hgrc`` override those in ``$HOME/.hgrc``, and these override
- settings made in the global ``/etc/mercurial/hgrc`` configuration.
- See |hgrc(5)|_ for details of the contents and format of these
- files.
+-----
``.hgignore``
This file contains regular expressions (one per line) that
describe file names that should be ignored by **hg**. For details,
see |hgignore(5)|_.
-``.hgsub``
- This file defines the locations of all subrepositories, and
- tells where the subrepository checkouts came from. For details, see
- :hg:`help subrepos`.
-
-``.hgsubstate``
- This file is where Mercurial stores all nested repository states. *NB: This
- file should not be edited manually.*
-
``.hgtags``
This file contains changeset hash values and text tag names (one
of each separated by spaces) that correspond to tagged versions of
- the repository contents. The file content is encoded using UTF-8.
+ the repository contents.
-``.hg/last-message.txt``
- This file is used by :hg:`commit` to store a backup of the commit message
- in case the commit fails.
+``/etc/mercurial/hgrc``, ``$HOME/.hgrc``, ``.hg/hgrc``
+ This file contains defaults and configuration. Values in
+ ``.hg/hgrc`` override those in ``$HOME/.hgrc``, and these override
+ settings made in the global ``/etc/mercurial/hgrc`` configuration.
+ See |hgrc(5)|_ for details of the contents and format of these
+ files.
-``.hg/localtags``
- This file can be used to define local tags which are not shared among
- repositories. The file format is the same as for ``.hgtags``, but it is
- encoded using the local system encoding.
-
Some commands (e.g. revert) produce backup files ending in ``.orig``,
if the ``.orig`` file already exists and is not tracked by Mercurial,
it will be overwritten.
Bugs
-""""
+----
Probably lots, please post them to the mailing list (see Resources_
below) when you find them.
See Also
-""""""""
+--------
|hgignore(5)|_, |hgrc(5)|_
Author
-""""""
+------
Written by Matt Mackall <mpm@selenic.com>
Resources
-"""""""""
+---------
Main Web Site: http://mercurial.selenic.com/
Source code repository: http://selenic.com/hg
@@ -111,8 +93,8 @@ Source code repository: http://selenic.com/hg
Mailing list: http://selenic.com/mailman/listinfo/mercurial
Copying
-"""""""
-Copyright (C) 2005-2012 Matt Mackall.
+-------
+Copyright (C) 2005-2010 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.
diff --git a/doc/hgignore.5 b/doc/hgignore.5
index 3535da7..66af0c9 100644
--- a/doc/hgignore.5
+++ b/doc/hgignore.5
@@ -61,11 +61,6 @@ configure these files.
To control Mercurial\(aqs handling of files that it manages, many
commands support the \fB\-I\fP and \fB\-X\fP options; see
\%\fBhg help <command>\fP\: and \%\fBhg help patterns\fP\: for details.
-.sp
-Files that are already tracked are not affected by .hgignore, even
-if they appear in .hgignore. An untracked file X can be explicitly
-added with \%\fBhg add X\fP\:, even if X would be excluded by a pattern
-in .hgignore.
.SH SYNTAX
.sp
An ignore file is a plain text file consisting of a list of patterns,
@@ -103,11 +98,6 @@ Neither glob nor regexp patterns are rooted. A glob\-syntax pattern of
the form \fB*.c\fP will match a file ending in \fB.c\fP in any directory,
and a regexp pattern of the form \fB\e.c$\fP will do the same. To root a
regexp pattern, start it with \fB^\fP.
-.IP Note
-.
-Patterns specified in other than \fB.hgignore\fP are always rooted.
-Please see \%\fBhg help patterns\fP\: for details.
-.RE
.SH EXAMPLE
.sp
Here is an example ignore file.
@@ -137,7 +127,7 @@ Mercurial was written by Matt Mackall <\%mpm@selenic.com\:>.
.SH COPYING
.sp
This manual page is copyright 2006 Vadim Gelfer.
-Mercurial is copyright 2005\-2012 Matt Mackall.
+Mercurial is copyright 2005\-2010 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.
.\" Common link and substitution definitions.
diff --git a/doc/hgignore.5.html b/doc/hgignore.5.html
index d760dba..dca5696 100644
--- a/doc/hgignore.5.html
+++ b/doc/hgignore.5.html
@@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.8.1: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>hgignore</title>
<meta name="author" content="Vadim Gelfer &lt;vadim.gelfer&#64;gmail.com&gt;" />
<meta name="organization" content="Mercurial" />
@@ -55,10 +55,6 @@ configure these files.</p>
<p>To control Mercurial's handling of files that it manages, many
commands support the <tt class="docutils literal"><span class="pre">-I</span></tt> and <tt class="docutils literal"><span class="pre">-X</span></tt> options; see
<a class="reference external" href="hg.1.html#&lt;command&gt;"><tt class="docutils literal">hg help &lt;command&gt;</tt></a> and <a class="reference external" href="hg.1.html#patterns"><tt class="docutils literal">hg help patterns</tt></a> for details.</p>
-<p>Files that are already tracked are not affected by .hgignore, even
-if they appear in .hgignore. An untracked file X can be explicitly
-added with <a class="reference external" href="hg.1.html#add"><tt class="docutils literal">hg add X</tt></a>, even if X would be excluded by a pattern
-in .hgignore.</p>
</div>
<div class="section" id="syntax">
<h1>Syntax</h1>
@@ -85,11 +81,6 @@ follow, until another syntax is selected.</p>
the form <tt class="docutils literal">*.c</tt> will match a file ending in <tt class="docutils literal">.c</tt> in any directory,
and a regexp pattern of the form <tt class="docutils literal">\.c$</tt> will do the same. To root a
regexp pattern, start it with <tt class="docutils literal">^</tt>.</p>
-<div class="note">
-<p class="first admonition-title">Note</p>
-<p class="last">Patterns specified in other than <tt class="docutils literal">.hgignore</tt> are always rooted.
-Please see <a class="reference external" href="hg.1.html#patterns"><tt class="docutils literal">hg help patterns</tt></a> for details.</p>
-</div>
</div>
<div class="section" id="example">
<h1>Example</h1>
@@ -119,7 +110,7 @@ syntax: regexp
<div class="section" id="copying">
<h1>Copying</h1>
<p>This manual page is copyright 2006 Vadim Gelfer.
-Mercurial is copyright 2005-2012 Matt Mackall.
+Mercurial is copyright 2005-2010 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.</p>
<!-- Common link and substitution definitions. -->
diff --git a/doc/hgignore.5.txt b/doc/hgignore.5.txt
index 7e39f3e..5c2900c 100644
--- a/doc/hgignore.5.txt
+++ b/doc/hgignore.5.txt
@@ -14,19 +14,19 @@ syntax for Mercurial ignore files
.. include:: ../mercurial/help/hgignore.txt
Author
-======
+------
Vadim Gelfer <vadim.gelfer@gmail.com>
Mercurial was written by Matt Mackall <mpm@selenic.com>.
See Also
-========
+--------
|hg(1)|_, |hgrc(5)|_
Copying
-=======
+-------
This manual page is copyright 2006 Vadim Gelfer.
-Mercurial is copyright 2005-2012 Matt Mackall.
+Mercurial is copyright 2005-2010 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.
diff --git a/doc/hgmanpage.py b/doc/hgmanpage.py
index 1d824b1..94045c0 100644
--- a/doc/hgmanpage.py
+++ b/doc/hgmanpage.py
@@ -47,10 +47,7 @@ __docformat__ = 'reStructuredText'
import re
from docutils import nodes, writers, languages
-try:
- import roman
-except ImportError:
- from docutils.utils import roman
+import roman
import inspect
FIELD_LIST_INDENT = 7
@@ -582,7 +579,7 @@ class Translator(nodes.NodeVisitor):
self._docinfo[name],
self.defs['indent'][1],
self.defs['indent'][1]))
- elif name not in skip:
+ elif not name in skip:
if name in self._docinfo_names:
label = self._docinfo_names[name]
else:
diff --git a/doc/hgrc.5 b/doc/hgrc.5
index 8d17bef..8fd0013 100644
--- a/doc/hgrc.5
+++ b/doc/hgrc.5
@@ -65,7 +65,7 @@ paths are given below, settings from earlier paths override later
ones.
.sp
.nf
-(All) \fB<repo>/.hg/hgrc\fP
+(Unix, Windows) \fB<repo>/.hg/hgrc\fP
.fi
.sp
.INDENT 0.0
@@ -75,14 +75,13 @@ Per\-repository configuration options that only apply in a
particular repository. This file is not version\-controlled, and
will not get transferred during a "clone" operation. Options in
this file override options in all other configuration files. On
-Plan 9 and Unix, most of this file will be ignored if it doesn\(aqt
-belong to a trusted user or to a trusted group. See the documentation
-for the \fB[trusted]\fP section below for more details.
+Unix, most of this file will be ignored if it doesn\(aqt belong to a
+trusted user or to a trusted group. See the documentation for the
+\fB[trusted]\fP section below for more details.
.UNINDENT
.UNINDENT
.sp
.nf
-(Plan 9) \fB$home/lib/hgrc\fP
(Unix) \fB$HOME/.hgrc\fP
(Windows) \fB%USERPROFILE%\e.hgrc\fP
(Windows) \fB%USERPROFILE%\eMercurial.ini\fP
@@ -102,8 +101,6 @@ options.
.UNINDENT
.sp
.nf
-(Plan 9) \fB/lib/mercurial/hgrc\fP
-(Plan 9) \fB/lib/mercurial/hgrc.d/*.rc\fP
(Unix) \fB/etc/mercurial/hgrc\fP
(Unix) \fB/etc/mercurial/hgrc.d/*.rc\fP
.fi
@@ -119,8 +116,6 @@ override per\-installation options.
.UNINDENT
.sp
.nf
-(Plan 9) \fB<install\-root>/lib/mercurial/hgrc\fP
-(Plan 9) \fB<install\-root>/lib/mercurial/hgrc.d/*.rc\fP
(Unix) \fB<install\-root>/etc/mercurial/hgrc\fP
(Unix) \fB<install\-root>/etc/mercurial/hgrc.d/*.rc\fP
.fi
@@ -152,7 +147,9 @@ Mercurial commands executed by any user in any directory. Registry
keys contain PATH\-like strings, every part of which must reference
a \fBMercurial.ini\fP file or be a directory where \fB*.rc\fP files will
be read. Mercurial checks each of these locations in the specified
-order until one or more configuration files are detected.
+order until one or more configuration files are detected. If the
+pywin32 extensions are not installed, Mercurial will only look for
+site\-wide configuration in \fBC:\eMercurial\eMercurial.ini\fP.
.UNINDENT
.UNINDENT
.SH SYNTAX
@@ -310,7 +307,7 @@ run arbitrary commands. As an example,
.sp
.nf
.ft C
-echo = !echo $@
+echo = !echo
.ft P
.fi
.sp
@@ -326,43 +323,12 @@ purge = !$HG status \-\-no\-status \-\-unknown \-0 | xargs \-0 rm
which will make \fBhg purge\fP delete all unknown files in the
repository in the same manner as the purge extension.
.sp
-Positional arguments like \fB$1\fP, \fB$2\fP, etc. in the alias definition
-expand to the command arguments. Unmatched arguments are
-removed. \fB$0\fP expands to the alias name and \fB$@\fP expands to all
-arguments separated by a space. These expansions happen before the
-command is passed to the shell.
-.sp
-Shell aliases are executed in an environment where \fB$HG\fP expands to
+Shell aliases are executed in an environment where \fB$HG\fP expand to
the path of the Mercurial that was used to execute the alias. This is
useful when you want to call further Mercurial commands in a shell
alias, as was done above for the purge alias. In addition,
-\fB$HG_ARGS\fP expands to the arguments given to Mercurial. In the \fBhg
+\fB$HG_ARGS\fP expand to the arguments given to Mercurial. In the \fBhg
echo foo\fP call above, \fB$HG_ARGS\fP would expand to \fBecho foo\fP.
-.IP Note
-.
-Some global configuration options such as \fB\-R\fP are
-processed before shell aliases and will thus not be passed to
-aliases.
-.RE
-.SS \fBannotate\fP
-.sp
-Settings used when displaying file annotations. All values are
-Booleans and default to False. See \fBdiff\fP section for related
-options for the diff command.
-.INDENT 0.0
-.TP
-.B \fBignorews\fP
-.sp
-Ignore white space when comparing lines.
-.TP
-.B \fBignorewsamount\fP
-.sp
-Ignore changes in the amount of white space.
-.TP
-.B \fBignoreblanklines\fP
-.sp
-Ignore changes whose lines are all blank.
-.UNINDENT
.SS \fBauth\fP
.sp
Authentication credentials for HTTP authentication. This section
@@ -516,9 +482,8 @@ defining command defaults. The command defaults will also be applied
to the aliases of the commands defined.
.SS \fBdiff\fP
.sp
-Settings used when displaying diffs. Everything except for \fBunified\fP
-is a Boolean and defaults to False. See \fBannotate\fP section for
-related options for the annotate command.
+Settings used when displaying diffs. Everything except for \fBunified\fP is a
+Boolean and defaults to False.
.INDENT 0.0
.TP
.B \fBgit\fP
@@ -652,6 +617,25 @@ mq =
myfeature = ~/.hgext/myfeature.py
.ft P
.fi
+.SS \fBhostfingerprints\fP
+.sp
+Fingerprints of the certificates of known HTTPS servers.
+A HTTPS connection to a server with a fingerprint configured here will
+only succeed if the servers certificate matches the fingerprint.
+This is very similar to how ssh known hosts works.
+The fingerprint is the SHA\-1 hash value of the DER encoded certificate.
+The CA chain and web.cacerts is not used for servers with a fingerprint.
+.sp
+For example:
+.sp
+.nf
+.ft C
+[hostfingerprints]
+hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc
+.ft P
+.fi
+.sp
+This feature is only supported when using Python 2.6 or later.
.SS \fBformat\fP
.INDENT 0.0
.TP
@@ -682,43 +666,146 @@ Mac OS X and spaces on Windows. Enabled by default. Disabling this
option ensures that the on\-disk format of newly created
repositories will be compatible with Mercurial before version 1.7.
.UNINDENT
-.SS \fBgraph\fP
+.SS \fBmerge\-patterns\fP
.sp
-Web graph view configuration. This section let you change graph
-elements display properties by branches, for instance to make the
-\fBdefault\fP branch stand out.
+This section specifies merge tools to associate with particular file
+patterns. Tools matched here will take precedence over the default
+merge tool. Patterns are globs by default, rooted at the repository
+root.
.sp
-Each line has the following format:
+Example:
.sp
.nf
.ft C
-<branch>.<argument> = <value>
+[merge\-patterns]
+**.c = kdiff3
+**.jpg = myimgmerge
.ft P
.fi
+.SS \fBmerge\-tools\fP
.sp
-where \fB<branch>\fP is the name of the branch being
-customized. Example:
+This section configures external merge tools to use for file\-level
+merges.
+.sp
+Example \fB~/.hgrc\fP:
.sp
.nf
.ft C
-[graph]
-# 2px width
-default.width = 2
-# red color
-default.color = FF0000
+[merge\-tools]
+# Override stock tool location
+kdiff3.executable = ~/bin/kdiff3
+# Specify command line
+kdiff3.args = $base $local $other \-o $output
+# Give higher priority
+kdiff3.priority = 1
+
+# Define new tool
+myHtmlTool.args = \-m $local $other $base $output
+myHtmlTool.regkey = Software\eFooSoftware\eHtmlMerge
+myHtmlTool.priority = 1
.ft P
.fi
.sp
Supported arguments:
.INDENT 0.0
.TP
-.B \fBwidth\fP
+.B \fBpriority\fP
+.sp
+The priority in which to evaluate this tool.
+Default: 0.
+.TP
+.B \fBexecutable\fP
+.sp
+Either just the name of the executable or its pathname. On Windows,
+the path can use environment variables with ${ProgramFiles} syntax.
+Default: the tool name.
+.TP
+.B \fBargs\fP
+.sp
+The arguments to pass to the tool executable. You can refer to the
+files being merged as well as the output file through these
+variables: \fB$base\fP, \fB$local\fP, \fB$other\fP, \fB$output\fP.
+Default: \fB$local $base $other\fP
+.TP
+.B \fBpremerge\fP
+.sp
+Attempt to run internal non\-interactive 3\-way merge tool before
+launching external tool. Options are \fBtrue\fP, \fBfalse\fP, or \fBkeep\fP
+to leave markers in the file if the premerge fails.
+Default: True
+.TP
+.B \fBbinary\fP
.sp
-Set branch edges width in pixels.
+This tool can merge binary files. Defaults to False, unless tool
+was selected by file pattern match.
.TP
-.B \fBcolor\fP
+.B \fBsymlink\fP
.sp
-Set branch edges color in hexadecimal RGB notation.
+This tool can merge symlinks. Defaults to False, even if tool was
+selected by file pattern match.
+.TP
+.B \fBcheck\fP
+.sp
+A list of merge success\-checking options:
+.INDENT 7.0
+.TP
+.B \fBchanged\fP
+.sp
+Ask whether merge was successful when the merged file shows no changes.
+.TP
+.B \fBconflicts\fP
+.sp
+Check whether there are conflicts even though the tool reported success.
+.TP
+.B \fBprompt\fP
+.sp
+Always prompt for merge success, regardless of success reported by tool.
+.UNINDENT
+.TP
+.B \fBcheckchanged\fP
+.sp
+True is equivalent to \fBcheck = changed\fP.
+Default: False
+.TP
+.B \fBcheckconflicts\fP
+.sp
+True is equivalent to \fBcheck = conflicts\fP.
+Default: False
+.TP
+.B \fBfixeol\fP
+.sp
+Attempt to fix up EOL changes caused by the merge tool.
+Default: False
+.TP
+.B \fBgui\fP
+.sp
+This tool requires a graphical interface to run. Default: False
+.TP
+.B \fBregkey\fP
+.sp
+Windows registry key which describes install location of this
+tool. Mercurial will search for this key first under
+\fBHKEY_CURRENT_USER\fP and then under \fBHKEY_LOCAL_MACHINE\fP.
+Default: None
+.TP
+.B \fBregkeyalt\fP
+.sp
+An alternate Windows registry key to try if the first key is not
+found. The alternate key uses the same \fBregname\fP and \fBregappend\fP
+semantics of the primary key. The most common use for this key
+is to search for 32bit applications on 64bit operating systems.
+Default: None
+.TP
+.B \fBregname\fP
+.sp
+Name of value to read from specified registry key. Defaults to the
+unnamed (default) value.
+.TP
+.B \fBregappend\fP
+.sp
+String to append to the value read from the registry, typically
+the executable name of the tool.
+Default: None
.UNINDENT
.SS \fBhooks\fP
.sp
@@ -726,10 +813,7 @@ Commands or Python functions that get automatically executed by
various actions such as starting or finishing a commit. Multiple
hooks can be run for the same action by appending a suffix to the
action. Overriding a site\-wide hook can be done by changing its
-value or setting it to an empty string. Hooks can be prioritized
-by adding a prefix of \fBpriority\fP to the hook name on a new line
-and setting the priority. The default priority is 0 if
-not specified.
+value or setting it to an empty string.
.sp
Example \fB.hg/hgrc\fP:
.sp
@@ -742,8 +826,6 @@ changegroup.update = hg update
incoming =
incoming.email = /my/email/hook
incoming.autobuild = /my/build/hook
-# force autobuild hook to run before other incoming hooks
-priority.incoming.autobuild = 1
.ft P
.fi
.sp
@@ -929,25 +1011,6 @@ environment variables above are passed as keyword arguments, with no
.sp
If a Python hook returns a "true" value or raises an exception, this
is treated as a failure.
-.SS \fBhostfingerprints\fP
-.sp
-Fingerprints of the certificates of known HTTPS servers.
-A HTTPS connection to a server with a fingerprint configured here will
-only succeed if the servers certificate matches the fingerprint.
-This is very similar to how ssh known hosts works.
-The fingerprint is the SHA\-1 hash value of the DER encoded certificate.
-The CA chain and web.cacerts is not used for servers with a fingerprint.
-.sp
-For example:
-.sp
-.nf
-.ft C
-[hostfingerprints]
-hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc
-.ft P
-.fi
-.sp
-This feature is only supported when using Python 2.6 or later.
.SS \fBhttp_proxy\fP
.sp
Used to access web\-based Mercurial repositories through a HTTP
@@ -977,146 +1040,39 @@ Optional. User name to authenticate with at the proxy server.
Optional. Always use the proxy, even for localhost and any entries
in \fBhttp_proxy.no\fP. True or False. Default: False.
.UNINDENT
-.SS \fBmerge\-patterns\fP
-.sp
-This section specifies merge tools to associate with particular file
-patterns. Tools matched here will take precedence over the default
-merge tool. Patterns are globs by default, rooted at the repository
-root.
-.sp
-Example:
-.sp
-.nf
-.ft C
-[merge\-patterns]
-**.c = kdiff3
-**.jpg = myimgmerge
-.ft P
-.fi
-.SS \fBmerge\-tools\fP
-.sp
-This section configures external merge tools to use for file\-level
-merges.
-.sp
-Example \fB~/.hgrc\fP:
-.sp
-.nf
-.ft C
-[merge\-tools]
-# Override stock tool location
-kdiff3.executable = ~/bin/kdiff3
-# Specify command line
-kdiff3.args = $base $local $other \-o $output
-# Give higher priority
-kdiff3.priority = 1
-
-# Define new tool
-myHtmlTool.args = \-m $local $other $base $output
-myHtmlTool.regkey = Software\eFooSoftware\eHtmlMerge
-myHtmlTool.priority = 1
-.ft P
-.fi
+.SS \fBsmtp\fP
.sp
-Supported arguments:
+Configuration for extensions that need to send email messages.
.INDENT 0.0
.TP
-.B \fBpriority\fP
-.sp
-The priority in which to evaluate this tool.
-Default: 0.
-.TP
-.B \fBexecutable\fP
-.sp
-Either just the name of the executable or its pathname. On Windows,
-the path can use environment variables with ${ProgramFiles} syntax.
-Default: the tool name.
-.TP
-.B \fBargs\fP
-.sp
-The arguments to pass to the tool executable. You can refer to the
-files being merged as well as the output file through these
-variables: \fB$base\fP, \fB$local\fP, \fB$other\fP, \fB$output\fP.
-Default: \fB$local $base $other\fP
-.TP
-.B \fBpremerge\fP
-.sp
-Attempt to run internal non\-interactive 3\-way merge tool before
-launching external tool. Options are \fBtrue\fP, \fBfalse\fP, or \fBkeep\fP
-to leave markers in the file if the premerge fails.
-Default: True
-.TP
-.B \fBbinary\fP
-.sp
-This tool can merge binary files. Defaults to False, unless tool
-was selected by file pattern match.
-.TP
-.B \fBsymlink\fP
-.sp
-This tool can merge symlinks. Defaults to False, even if tool was
-selected by file pattern match.
-.TP
-.B \fBcheck\fP
-.sp
-A list of merge success\-checking options:
-.INDENT 7.0
-.TP
-.B \fBchanged\fP
-.sp
-Ask whether merge was successful when the merged file shows no changes.
-.TP
-.B \fBconflicts\fP
-.sp
-Check whether there are conflicts even though the tool reported success.
-.TP
-.B \fBprompt\fP
-.sp
-Always prompt for merge success, regardless of success reported by tool.
-.UNINDENT
-.TP
-.B \fBcheckchanged\fP
-.sp
-True is equivalent to \fBcheck = changed\fP.
-Default: False
-.TP
-.B \fBcheckconflicts\fP
-.sp
-True is equivalent to \fBcheck = conflicts\fP.
-Default: False
-.TP
-.B \fBfixeol\fP
+.B \fBhost\fP
.sp
-Attempt to fix up EOL changes caused by the merge tool.
-Default: False
+Host name of mail server, e.g. "mail.example.com".
.TP
-.B \fBgui\fP
+.B \fBport\fP
.sp
-This tool requires a graphical interface to run. Default: False
+Optional. Port to connect to on mail server. Default: 25.
.TP
-.B \fBregkey\fP
+.B \fBtls\fP
.sp
-Windows registry key which describes install location of this
-tool. Mercurial will search for this key first under
-\fBHKEY_CURRENT_USER\fP and then under \fBHKEY_LOCAL_MACHINE\fP.
-Default: None
+Optional. Method to enable TLS when connecting to mail server: starttls,
+smtps or none. Default: none.
.TP
-.B \fBregkeyalt\fP
+.B \fBusername\fP
.sp
-An alternate Windows registry key to try if the first key is not
-found. The alternate key uses the same \fBregname\fP and \fBregappend\fP
-semantics of the primary key. The most common use for this key
-is to search for 32bit applications on 64bit operating systems.
-Default: None
+Optional. User name for authenticating with the SMTP server.
+Default: none.
.TP
-.B \fBregname\fP
+.B \fBpassword\fP
.sp
-Name of value to read from specified registry key. Defaults to the
-unnamed (default) value.
+Optional. Password for authenticating with the SMTP server. If not
+specified, interactive sessions will prompt the user for a
+password; non\-interactive sessions will fail. Default: none.
.TP
-.B \fBregappend\fP
+.B \fBlocal_hostname\fP
.sp
-String to append to the value read from the registry, typically
-the executable name of the tool.
-Default: None
+Optional. It\(aqs the hostname that the sender can use to identify
+itself to the MTA.
.UNINDENT
.SS \fBpatch\fP
.sp
@@ -1155,59 +1111,18 @@ cloned.
Optional. Directory or URL to use when pushing if no destination
is specified.
.UNINDENT
-.SS \fBphases\fP
-.sp
-Specifies default handling of phases. See \%\fBhg help phases\fP\: for more
-information about working with phases.
-.INDENT 0.0
-.TP
-.B \fBpublish\fP
-.sp
-Controls draft phase behavior when working as a server. When true,
-pushed changesets are set to public in both client and server and
-pulled or cloned changesets are set to public in the client.
-Default: True
-.TP
-.B \fBnew\-commit\fP
-.sp
-Phase of newly\-created commits.
-Default: draft
-.UNINDENT
.SS \fBprofiling\fP
.sp
-Specifies profiling type, format, and file output. Two profilers are
-supported: an instrumenting profiler (named \fBls\fP), and a sampling
-profiler (named \fBstat\fP).
-.sp
-In this section description, \(aqprofiling data\(aq stands for the raw data
-collected during profiling, while \(aqprofiling report\(aq stands for a
-statistical text report generated from the profiling data. The
-profiling is done using lsprof.
+Specifies profiling format and file output. In this section
+description, \(aqprofiling data\(aq stands for the raw data collected
+during profiling, while \(aqprofiling report\(aq stands for a statistical
+text report generated from the profiling data. The profiling is done
+using lsprof.
.INDENT 0.0
.TP
-.B \fBtype\fP
-.sp
-The type of profiler to use.
-Default: ls.
-.INDENT 7.0
-.TP
-.B \fBls\fP
-.sp
-Use Python\(aqs built\-in instrumenting profiler. This profiler
-works on all platforms, but each line number it reports is the
-first line of a function. This restriction makes it difficult to
-identify the expensive parts of a non\-trivial function.
-.TP
-.B \fBstat\fP
-.sp
-Use a third\-party statistical profiler, statprof. This profiler
-currently runs only on Unix systems, and is most useful for
-profiling commands that run for longer than about 0.1 seconds.
-.UNINDENT
-.TP
.B \fBformat\fP
.sp
-Profiling format. Specific to the \fBls\fP instrumenting profiler.
+Profiling format.
Default: text.
.INDENT 7.0
.TP
@@ -1224,11 +1139,6 @@ file, the generated file can directly be loaded into
kcachegrind.
.UNINDENT
.TP
-.B \fBfrequency\fP
-.sp
-Sampling frequency. Specific to the \fBstat\fP sampling profiler.
-Default: 1000.
-.TP
.B \fBoutput\fP
.sp
File path where profiling data or report should be saved. If the
@@ -1256,56 +1166,15 @@ extra data transfer overhead. This mode will also temporarily hold
the write lock while determining what data to transfer.
Default is True.
.TP
-.B \fBpreferuncompressed\fP
-.sp
-When set, clients will try to use the uncompressed streaming
-protocol. Default is False.
-.TP
.B \fBvalidate\fP
.sp
Whether to validate the completeness of pushed changesets by
checking that all new file revisions specified in manifests are
present. Default is False.
.UNINDENT
-.SS \fBsmtp\fP
-.sp
-Configuration for extensions that need to send email messages.
-.INDENT 0.0
-.TP
-.B \fBhost\fP
-.sp
-Host name of mail server, e.g. "mail.example.com".
-.TP
-.B \fBport\fP
-.sp
-Optional. Port to connect to on mail server. Default: 25.
-.TP
-.B \fBtls\fP
-.sp
-Optional. Method to enable TLS when connecting to mail server: starttls,
-smtps or none. Default: none.
-.TP
-.B \fBusername\fP
-.sp
-Optional. User name for authenticating with the SMTP server.
-Default: none.
-.TP
-.B \fBpassword\fP
-.sp
-Optional. Password for authenticating with the SMTP server. If not
-specified, interactive sessions will prompt the user for a
-password; non\-interactive sessions will fail. Default: none.
-.TP
-.B \fBlocal_hostname\fP
-.sp
-Optional. It\(aqs the hostname that the sender can use to identify
-itself to the MTA.
-.UNINDENT
.SS \fBsubpaths\fP
.sp
-Subrepository source URLs can go stale if a remote server changes name
-or becomes temporarily unavailable. This section lets you define
-rewrite rules of the form:
+Defines subrepositories source locations rewriting rules of the form:
.sp
.nf
.ft C
@@ -1313,10 +1182,10 @@ rewrite rules of the form:
.ft P
.fi
.sp
-where \fBpattern\fP is a regular expression matching a subrepository
-source URL and \fBreplacement\fP is the replacement string used to
-rewrite it. Groups can be matched in \fBpattern\fP and referenced in
-\fBreplacements\fP. For instance:
+Where \fBpattern\fP is a regular expression matching the source and
+\fBreplacement\fP is the replacement string used to rewrite it. Groups
+can be matched in \fBpattern\fP and referenced in \fBreplacements\fP. For
+instance:
.sp
.nf
.ft C
@@ -1326,9 +1195,7 @@ http://server/(.*)\-hg/ = http://hg.server/\e1/
.sp
rewrites \fBhttp://server/foo\-hg/\fP into \fBhttp://hg.server/foo/\fP.
.sp
-Relative subrepository paths are first made absolute, and the
-rewrite rules are then applied on the full (absolute) path. The rules
-are applied in definition order.
+All patterns are applied in definition order.
.SS \fBtrusted\fP
.sp
Mercurial will not use the settings in the
@@ -1379,7 +1246,7 @@ Default is False.
Whether to commit modified subrepositories when committing the
parent repository. If False and one subrepository has uncommitted
changes, abort the commit.
-Default is False.
+Default is True.
.TP
.B \fBdebug\fP
.sp
@@ -1438,11 +1305,6 @@ Reduce the amount of output printed. True or False. Default is False.
.sp
remote command to use for clone/push/pull operations. Default is \fBhg\fP.
.TP
-.B \fBreportoldssl\fP
-.sp
-Warn if an SSL certificate is unable to be due to using Python
-2.5 or earlier. True or False. Default is True.
-.TP
.B \fBreport_untrusted\fP
.sp
Warn if a \fB.hg/hgrc\fP file is ignored due to not being owned by a
@@ -1563,6 +1425,14 @@ must have been authenticated, and the authenticated user name must
be present in this list. The contents of the allow_push list are
examined after the deny_push list.
.TP
+.B \fBguessmime\fP
+.sp
+Control MIME types for raw download of file content.
+Set to True to let hgweb guess the content type from the file
+extension. This will serve HTML files as \fBtext/html\fP and might
+allow cross\-site scripting attacks when serving untrusted
+repositories. Default is False.
+.TP
.B \fBallow_read\fP
.sp
If the user has not already been denied repository access due to
@@ -1592,20 +1462,7 @@ Path to file containing a list of PEM encoded certificate
authority certificates. Environment variables and \fB~user\fP
constructs are expanded in the filename. If specified on the
client, then it will verify the identity of remote HTTPS servers
-with these certificates.
-.sp
-This feature is only supported when using Python 2.6 or later. If you wish
-to use it with earlier versions of Python, install the backported
-version of the ssl library that is available from
-\fBhttp://pypi.python.org\fP.
-.sp
-To disable SSL verification temporarily, specify \fB\-\-insecure\fP from
-command line.
-.sp
-You can use OpenSSL\(aqs CA certificate file if your platform has
-one. On most Linux systems this will be
-\fB/etc/ssl/certs/ca\-certificates.crt\fP. Otherwise you will have to
-generate this file manually. The form must be as follows:
+with these certificates. The form must be as follows:
.sp
.nf
.ft C
@@ -1617,27 +1474,22 @@ generate this file manually. The form must be as follows:
\-\-\-\-\-END CERTIFICATE\-\-\-\-\-
.ft P
.fi
-.TP
-.B \fBcache\fP
.sp
-Whether to support caching in hgweb. Defaults to True.
-.TP
-.B \fBcollapse\fP
+This feature is only supported when using Python 2.6 or later. If you wish
+to use it with earlier versions of Python, install the backported
+version of the ssl library that is available from
+\fBhttp://pypi.python.org\fP.
.sp
-With \fBdescend\fP enabled, repositories in subdirectories are shown at
-a single level alongside repositories in the current path. With
-\fBcollapse\fP also enabled, repositories residing at a deeper level than
-the current path are grouped behind navigable directory entries that
-lead to the locations of these repositories. In effect, this setting
-collapses each collection of repositories found within a subdirectory
-into a single entry for that subdirectory. Default is False.
+You can use OpenSSL\(aqs CA certificate file if your platform has one.
+On most Linux systems this will be \fB/etc/ssl/certs/ca\-certificates.crt\fP.
+Otherwise you will have to generate this file manually.
+.sp
+To disable SSL verification temporarily, specify \fB\-\-insecure\fP from
+command line.
.TP
-.B \fBcomparisoncontext\fP
+.B \fBcache\fP
.sp
-Number of lines of context to show in side\-by\-side file comparison. If
-negative or the value \fBfull\fP, whole files are shown. Default is 5.
-This setting can be overridden by a \fBcontext\fP request parameter to the
-\fBcomparison\fP command, taking the same values.
+Whether to support caching in hgweb. Defaults to True.
.TP
.B \fBcontact\fP
.sp
@@ -1688,14 +1540,6 @@ Example: "UTF\-8"
.sp
Where to output the error log. Default is stderr.
.TP
-.B \fBguessmime\fP
-.sp
-Control MIME types for raw download of file content.
-Set to True to let hgweb guess the content type from the file
-extension. This will serve HTML files as \fBtext/html\fP and might
-allow cross\-site scripting attacks when serving untrusted
-repositories. Default is False.
-.TP
.B \fBhidden\fP
.sp
Whether to hide the repository in the hgwebdir index.
@@ -1705,18 +1549,16 @@ Default is False.
.sp
Whether to use IPv6. Default is False.
.TP
-.B \fBlogoimg\fP
-.sp
-File name of the logo image that some templates display on each page.
-The file name is relative to \fBstaticurl\fP. That is, the full path to
-the logo image is "staticurl/logoimg".
-If unset, \fBhglogo.png\fP will be used.
-.TP
.B \fBlogourl\fP
.sp
Base URL to use for logos. If unset, \fBhttp://mercurial.selenic.com/\fP
will be used.
.TP
+.B \fBname\fP
+.sp
+Repository name to use in the web interface. Default is current
+working directory.
+.TP
.B \fBmaxchanges\fP
.sp
Maximum number of changes to list on the changelog. Default is 10.
@@ -1725,16 +1567,6 @@ Maximum number of changes to list on the changelog. Default is 10.
.sp
Maximum number of files to list per changeset. Default is 10.
.TP
-.B \fBmaxshortchanges\fP
-.sp
-Maximum number of changes to list on the shortlog, graph or filelog
-pages. Default is 60.
-.TP
-.B \fBname\fP
-.sp
-Repository name to use in the web interface. Default is current
-working directory.
-.TP
.B \fBport\fP
.sp
Port to listen on. Default is 8000.
@@ -1779,7 +1611,7 @@ Mercurial was written by Matt Mackall <\%mpm@selenic.com\:>.
.SH COPYING
.sp
This manual page is copyright 2005 Bryan O\(aqSullivan.
-Mercurial is copyright 2005\-2012 Matt Mackall.
+Mercurial is copyright 2005\-2010 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.
.\" Common link and substitution definitions.
diff --git a/doc/hgrc.5.html b/doc/hgrc.5.html
index c9c0222..42fbacb 100644
--- a/doc/hgrc.5.html
+++ b/doc/hgrc.5.html
@@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.8.1: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>hgrc</title>
<meta name="author" content="Bryan O'Sullivan &lt;bos&#64;serpentine.com&gt;" />
<meta name="organization" content="Mercurial" />
@@ -35,36 +35,33 @@
<li><a class="reference internal" href="#syntax" id="id3">Syntax</a></li>
<li><a class="reference internal" href="#sections" id="id4">Sections</a><ul>
<li><a class="reference internal" href="#alias" id="id5"><tt class="docutils literal">alias</tt></a></li>
-<li><a class="reference internal" href="#annotate" id="id6"><tt class="docutils literal">annotate</tt></a></li>
-<li><a class="reference internal" href="#auth" id="id7"><tt class="docutils literal">auth</tt></a></li>
-<li><a class="reference internal" href="#decode-encode" id="id8"><tt class="docutils literal">decode/encode</tt></a></li>
-<li><a class="reference internal" href="#defaults" id="id9"><tt class="docutils literal">defaults</tt></a></li>
-<li><a class="reference internal" href="#diff" id="id10"><tt class="docutils literal">diff</tt></a></li>
-<li><a class="reference internal" href="#email" id="id11"><tt class="docutils literal">email</tt></a></li>
-<li><a class="reference internal" href="#extensions" id="id12"><tt class="docutils literal">extensions</tt></a></li>
+<li><a class="reference internal" href="#auth" id="id6"><tt class="docutils literal">auth</tt></a></li>
+<li><a class="reference internal" href="#decode-encode" id="id7"><tt class="docutils literal">decode/encode</tt></a></li>
+<li><a class="reference internal" href="#defaults" id="id8"><tt class="docutils literal">defaults</tt></a></li>
+<li><a class="reference internal" href="#diff" id="id9"><tt class="docutils literal">diff</tt></a></li>
+<li><a class="reference internal" href="#email" id="id10"><tt class="docutils literal">email</tt></a></li>
+<li><a class="reference internal" href="#extensions" id="id11"><tt class="docutils literal">extensions</tt></a></li>
+<li><a class="reference internal" href="#hostfingerprints" id="id12"><tt class="docutils literal">hostfingerprints</tt></a></li>
<li><a class="reference internal" href="#format" id="id13"><tt class="docutils literal">format</tt></a></li>
-<li><a class="reference internal" href="#graph" id="id14"><tt class="docutils literal">graph</tt></a></li>
-<li><a class="reference internal" href="#hooks" id="id15"><tt class="docutils literal">hooks</tt></a></li>
-<li><a class="reference internal" href="#hostfingerprints" id="id16"><tt class="docutils literal">hostfingerprints</tt></a></li>
+<li><a class="reference internal" href="#merge-patterns" id="id14"><tt class="docutils literal"><span class="pre">merge-patterns</span></tt></a></li>
+<li><a class="reference internal" href="#merge-tools" id="id15"><tt class="docutils literal"><span class="pre">merge-tools</span></tt></a></li>
+<li><a class="reference internal" href="#hooks" id="id16"><tt class="docutils literal">hooks</tt></a></li>
<li><a class="reference internal" href="#http-proxy" id="id17"><tt class="docutils literal">http_proxy</tt></a></li>
-<li><a class="reference internal" href="#merge-patterns" id="id18"><tt class="docutils literal"><span class="pre">merge-patterns</span></tt></a></li>
-<li><a class="reference internal" href="#merge-tools" id="id19"><tt class="docutils literal"><span class="pre">merge-tools</span></tt></a></li>
-<li><a class="reference internal" href="#patch" id="id20"><tt class="docutils literal">patch</tt></a></li>
-<li><a class="reference internal" href="#paths" id="id21"><tt class="docutils literal">paths</tt></a></li>
-<li><a class="reference internal" href="#phases" id="id22"><tt class="docutils literal">phases</tt></a></li>
-<li><a class="reference internal" href="#profiling" id="id23"><tt class="docutils literal">profiling</tt></a></li>
-<li><a class="reference internal" href="#revsetalias" id="id24"><tt class="docutils literal">revsetalias</tt></a></li>
-<li><a class="reference internal" href="#server" id="id25"><tt class="docutils literal">server</tt></a></li>
-<li><a class="reference internal" href="#smtp" id="id26"><tt class="docutils literal">smtp</tt></a></li>
-<li><a class="reference internal" href="#subpaths" id="id27"><tt class="docutils literal">subpaths</tt></a></li>
-<li><a class="reference internal" href="#trusted" id="id28"><tt class="docutils literal">trusted</tt></a></li>
-<li><a class="reference internal" href="#ui" id="id29"><tt class="docutils literal">ui</tt></a></li>
-<li><a class="reference internal" href="#web" id="id30"><tt class="docutils literal">web</tt></a></li>
+<li><a class="reference internal" href="#smtp" id="id18"><tt class="docutils literal">smtp</tt></a></li>
+<li><a class="reference internal" href="#patch" id="id19"><tt class="docutils literal">patch</tt></a></li>
+<li><a class="reference internal" href="#paths" id="id20"><tt class="docutils literal">paths</tt></a></li>
+<li><a class="reference internal" href="#profiling" id="id21"><tt class="docutils literal">profiling</tt></a></li>
+<li><a class="reference internal" href="#revsetalias" id="id22"><tt class="docutils literal">revsetalias</tt></a></li>
+<li><a class="reference internal" href="#server" id="id23"><tt class="docutils literal">server</tt></a></li>
+<li><a class="reference internal" href="#subpaths" id="id24"><tt class="docutils literal">subpaths</tt></a></li>
+<li><a class="reference internal" href="#trusted" id="id25"><tt class="docutils literal">trusted</tt></a></li>
+<li><a class="reference internal" href="#ui" id="id26"><tt class="docutils literal">ui</tt></a></li>
+<li><a class="reference internal" href="#web" id="id27"><tt class="docutils literal">web</tt></a></li>
</ul>
</li>
-<li><a class="reference internal" href="#author" id="id31">Author</a></li>
-<li><a class="reference internal" href="#see-also" id="id32">See Also</a></li>
-<li><a class="reference internal" href="#copying" id="id33">Copying</a></li>
+<li><a class="reference internal" href="#author" id="id28">Author</a></li>
+<li><a class="reference internal" href="#see-also" id="id29">See Also</a></li>
+<li><a class="reference internal" href="#copying" id="id30">Copying</a></li>
</ul>
</div>
<div class="section" id="synopsis">
@@ -96,18 +93,17 @@ alphabetical order, later ones overriding earlier ones. Where multiple
paths are given below, settings from earlier paths override later
ones.</p>
<div class="line-block">
-<div class="line">(All) <tt class="docutils literal"><span class="pre">&lt;repo&gt;/.hg/hgrc</span></tt></div>
+<div class="line">(Unix, Windows) <tt class="docutils literal"><span class="pre">&lt;repo&gt;/.hg/hgrc</span></tt></div>
</div>
<blockquote>
Per-repository configuration options that only apply in a
particular repository. This file is not version-controlled, and
will not get transferred during a &quot;clone&quot; operation. Options in
this file override options in all other configuration files. On
-Plan 9 and Unix, most of this file will be ignored if it doesn't
-belong to a trusted user or to a trusted group. See the documentation
-for the <tt class="docutils literal">[trusted]</tt> section below for more details.</blockquote>
+Unix, most of this file will be ignored if it doesn't belong to a
+trusted user or to a trusted group. See the documentation for the
+<tt class="docutils literal">[trusted]</tt> section below for more details.</blockquote>
<div class="line-block">
-<div class="line">(Plan 9) <tt class="docutils literal">$home/lib/hgrc</tt></div>
<div class="line">(Unix) <tt class="docutils literal"><span class="pre">$HOME/.hgrc</span></tt></div>
<div class="line">(Windows) <tt class="docutils literal"><span class="pre">%USERPROFILE%\.hgrc</span></tt></div>
<div class="line">(Windows) <tt class="docutils literal"><span class="pre">%USERPROFILE%\Mercurial.ini</span></tt></div>
@@ -121,8 +117,6 @@ files apply to all Mercurial commands executed by this user in any
directory. Options in these files override per-system and per-installation
options.</blockquote>
<div class="line-block">
-<div class="line">(Plan 9) <tt class="docutils literal">/lib/mercurial/hgrc</tt></div>
-<div class="line">(Plan 9) <tt class="docutils literal"><span class="pre">/lib/mercurial/hgrc.d/*.rc</span></tt></div>
<div class="line">(Unix) <tt class="docutils literal">/etc/mercurial/hgrc</tt></div>
<div class="line">(Unix) <tt class="docutils literal"><span class="pre">/etc/mercurial/hgrc.d/*.rc</span></tt></div>
</div>
@@ -132,8 +126,6 @@ is running. Options in these files apply to all Mercurial commands
executed by any user in any directory. Options in these files
override per-installation options.</blockquote>
<div class="line-block">
-<div class="line">(Plan 9) <tt class="docutils literal"><span class="pre">&lt;install-root&gt;/lib/mercurial/hgrc</span></tt></div>
-<div class="line">(Plan 9) <tt class="docutils literal"><span class="pre">&lt;install-root&gt;/lib/mercurial/hgrc.d/*.rc</span></tt></div>
<div class="line">(Unix) <tt class="docutils literal"><span class="pre">&lt;install-root&gt;/etc/mercurial/hgrc</span></tt></div>
<div class="line">(Unix) <tt class="docutils literal"><span class="pre">&lt;install-root&gt;/etc/mercurial/hgrc.d/*.rc</span></tt></div>
</div>
@@ -156,7 +148,9 @@ Mercurial commands executed by any user in any directory. Registry
keys contain PATH-like strings, every part of which must reference
a <tt class="docutils literal">Mercurial.ini</tt> file or be a directory where <tt class="docutils literal">*.rc</tt> files will
be read. Mercurial checks each of these locations in the specified
-order until one or more configuration files are detected.</blockquote>
+order until one or more configuration files are detected. If the
+pywin32 extensions are not installed, Mercurial will only look for
+site-wide configuration in <tt class="docutils literal"><span class="pre">C:\Mercurial\Mercurial.ini</span></tt>.</blockquote>
</div>
<div class="section" id="syntax">
<h1><a class="toc-backref" href="#contents">Syntax</a></h1>
@@ -272,7 +266,7 @@ definitions. This is almost always a bad idea!</p>
shell alias. A shell alias is executed with the shell and will let you
run arbitrary commands. As an example,</p>
<pre class="literal-block">
-echo = !echo $&#64;
+echo = !echo
</pre>
<p>will let you do <tt class="docutils literal">hg echo foo</tt> to have <tt class="docutils literal">foo</tt> printed in your
terminal. A better example might be:</p>
@@ -281,37 +275,12 @@ purge = !$HG status --no-status --unknown -0 | xargs -0 rm
</pre>
<p>which will make <tt class="docutils literal">hg purge</tt> delete all unknown files in the
repository in the same manner as the purge extension.</p>
-<p>Positional arguments like <tt class="docutils literal">$1</tt>, <tt class="docutils literal">$2</tt>, etc. in the alias definition
-expand to the command arguments. Unmatched arguments are
-removed. <tt class="docutils literal">$0</tt> expands to the alias name and <tt class="docutils literal">$&#64;</tt> expands to all
-arguments separated by a space. These expansions happen before the
-command is passed to the shell.</p>
-<p>Shell aliases are executed in an environment where <tt class="docutils literal">$HG</tt> expands to
+<p>Shell aliases are executed in an environment where <tt class="docutils literal">$HG</tt> expand to
the path of the Mercurial that was used to execute the alias. This is
useful when you want to call further Mercurial commands in a shell
alias, as was done above for the purge alias. In addition,
-<tt class="docutils literal">$HG_ARGS</tt> expands to the arguments given to Mercurial. In the <tt class="docutils literal">hg
+<tt class="docutils literal">$HG_ARGS</tt> expand to the arguments given to Mercurial. In the <tt class="docutils literal">hg
echo foo</tt> call above, <tt class="docutils literal">$HG_ARGS</tt> would expand to <tt class="docutils literal">echo foo</tt>.</p>
-<div class="note">
-<p class="first admonition-title">Note</p>
-<p class="last">Some global configuration options such as <tt class="docutils literal"><span class="pre">-R</span></tt> are
-processed before shell aliases and will thus not be passed to
-aliases.</p>
-</div>
-</div>
-<div class="section" id="annotate">
-<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">annotate</tt></a></h2>
-<p>Settings used when displaying file annotations. All values are
-Booleans and default to False. See <tt class="docutils literal">diff</tt> section for related
-options for the diff command.</p>
-<dl class="docutils">
-<dt><tt class="docutils literal">ignorews</tt></dt>
-<dd>Ignore white space when comparing lines.</dd>
-<dt><tt class="docutils literal">ignorewsamount</tt></dt>
-<dd>Ignore changes in the amount of white space.</dd>
-<dt><tt class="docutils literal">ignoreblanklines</tt></dt>
-<dd>Ignore changes whose lines are all blank.</dd>
-</dl>
</div>
<div class="section" id="auth">
<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">auth</tt></a></h2>
@@ -432,9 +401,8 @@ to the aliases of the commands defined.</p>
</div>
<div class="section" id="diff">
<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">diff</tt></a></h2>
-<p>Settings used when displaying diffs. Everything except for <tt class="docutils literal">unified</tt>
-is a Boolean and defaults to False. See <tt class="docutils literal">annotate</tt> section for
-related options for the annotate command.</p>
+<p>Settings used when displaying diffs. Everything except for <tt class="docutils literal">unified</tt> is a
+Boolean and defaults to False.</p>
<dl class="docutils">
<dt><tt class="docutils literal">git</tt></dt>
<dd>Use git extended diff format.</dd>
@@ -524,6 +492,21 @@ mq =
myfeature = ~/.hgext/myfeature.py
</pre>
</div>
+<div class="section" id="hostfingerprints">
+<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">hostfingerprints</tt></a></h2>
+<p>Fingerprints of the certificates of known HTTPS servers.
+A HTTPS connection to a server with a fingerprint configured here will
+only succeed if the servers certificate matches the fingerprint.
+This is very similar to how ssh known hosts works.
+The fingerprint is the SHA-1 hash value of the DER encoded certificate.
+The CA chain and web.cacerts is not used for servers with a fingerprint.</p>
+<p>For example:</p>
+<pre class="literal-block">
+[hostfingerprints]
+hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc
+</pre>
+<p>This feature is only supported when using Python 2.6 or later.</p>
+</div>
<div class="section" id="format">
<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">format</tt></a></h2>
<dl class="docutils">
@@ -550,30 +533,103 @@ option ensures that the on-disk format of newly created
repositories will be compatible with Mercurial before version 1.7.</dd>
</dl>
</div>
-<div class="section" id="graph">
-<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">graph</tt></a></h2>
-<p>Web graph view configuration. This section let you change graph
-elements display properties by branches, for instance to make the
-<tt class="docutils literal">default</tt> branch stand out.</p>
-<p>Each line has the following format:</p>
+<div class="section" id="merge-patterns">
+<h2><a class="toc-backref" href="#contents"><tt class="docutils literal"><span class="pre">merge-patterns</span></tt></a></h2>
+<p>This section specifies merge tools to associate with particular file
+patterns. Tools matched here will take precedence over the default
+merge tool. Patterns are globs by default, rooted at the repository
+root.</p>
+<p>Example:</p>
<pre class="literal-block">
-&lt;branch&gt;.&lt;argument&gt; = &lt;value&gt;
+[merge-patterns]
+**.c = kdiff3
+**.jpg = myimgmerge
</pre>
-<p>where <tt class="docutils literal">&lt;branch&gt;</tt> is the name of the branch being
-customized. Example:</p>
+</div>
+<div class="section" id="merge-tools">
+<h2><a class="toc-backref" href="#contents"><tt class="docutils literal"><span class="pre">merge-tools</span></tt></a></h2>
+<p>This section configures external merge tools to use for file-level
+merges.</p>
+<p>Example <tt class="docutils literal"><span class="pre">~/.hgrc</span></tt>:</p>
<pre class="literal-block">
-[graph]
-# 2px width
-default.width = 2
-# red color
-default.color = FF0000
+[merge-tools]
+# Override stock tool location
+kdiff3.executable = ~/bin/kdiff3
+# Specify command line
+kdiff3.args = $base $local $other -o $output
+# Give higher priority
+kdiff3.priority = 1
+
+# Define new tool
+myHtmlTool.args = -m $local $other $base $output
+myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
+myHtmlTool.priority = 1
</pre>
<p>Supported arguments:</p>
<dl class="docutils">
-<dt><tt class="docutils literal">width</tt></dt>
-<dd>Set branch edges width in pixels.</dd>
-<dt><tt class="docutils literal">color</tt></dt>
-<dd>Set branch edges color in hexadecimal RGB notation.</dd>
+<dt><tt class="docutils literal">priority</tt></dt>
+<dd>The priority in which to evaluate this tool.
+Default: 0.</dd>
+<dt><tt class="docutils literal">executable</tt></dt>
+<dd>Either just the name of the executable or its pathname. On Windows,
+the path can use environment variables with ${ProgramFiles} syntax.
+Default: the tool name.</dd>
+<dt><tt class="docutils literal">args</tt></dt>
+<dd>The arguments to pass to the tool executable. You can refer to the
+files being merged as well as the output file through these
+variables: <tt class="docutils literal">$base</tt>, <tt class="docutils literal">$local</tt>, <tt class="docutils literal">$other</tt>, <tt class="docutils literal">$output</tt>.
+Default: <tt class="docutils literal">$local $base $other</tt></dd>
+<dt><tt class="docutils literal">premerge</tt></dt>
+<dd>Attempt to run internal non-interactive 3-way merge tool before
+launching external tool. Options are <tt class="docutils literal">true</tt>, <tt class="docutils literal">false</tt>, or <tt class="docutils literal">keep</tt>
+to leave markers in the file if the premerge fails.
+Default: True</dd>
+<dt><tt class="docutils literal">binary</tt></dt>
+<dd>This tool can merge binary files. Defaults to False, unless tool
+was selected by file pattern match.</dd>
+<dt><tt class="docutils literal">symlink</tt></dt>
+<dd>This tool can merge symlinks. Defaults to False, even if tool was
+selected by file pattern match.</dd>
+<dt><tt class="docutils literal">check</tt></dt>
+<dd><p class="first">A list of merge success-checking options:</p>
+<dl class="last docutils">
+<dt><tt class="docutils literal">changed</tt></dt>
+<dd>Ask whether merge was successful when the merged file shows no changes.</dd>
+<dt><tt class="docutils literal">conflicts</tt></dt>
+<dd>Check whether there are conflicts even though the tool reported success.</dd>
+<dt><tt class="docutils literal">prompt</tt></dt>
+<dd>Always prompt for merge success, regardless of success reported by tool.</dd>
+</dl>
+</dd>
+<dt><tt class="docutils literal">checkchanged</tt></dt>
+<dd>True is equivalent to <tt class="docutils literal">check = changed</tt>.
+Default: False</dd>
+<dt><tt class="docutils literal">checkconflicts</tt></dt>
+<dd>True is equivalent to <tt class="docutils literal">check = conflicts</tt>.
+Default: False</dd>
+<dt><tt class="docutils literal">fixeol</tt></dt>
+<dd>Attempt to fix up EOL changes caused by the merge tool.
+Default: False</dd>
+<dt><tt class="docutils literal">gui</tt></dt>
+<dd>This tool requires a graphical interface to run. Default: False</dd>
+<dt><tt class="docutils literal">regkey</tt></dt>
+<dd>Windows registry key which describes install location of this
+tool. Mercurial will search for this key first under
+<tt class="docutils literal">HKEY_CURRENT_USER</tt> and then under <tt class="docutils literal">HKEY_LOCAL_MACHINE</tt>.
+Default: None</dd>
+<dt><tt class="docutils literal">regkeyalt</tt></dt>
+<dd>An alternate Windows registry key to try if the first key is not
+found. The alternate key uses the same <tt class="docutils literal">regname</tt> and <tt class="docutils literal">regappend</tt>
+semantics of the primary key. The most common use for this key
+is to search for 32bit applications on 64bit operating systems.
+Default: None</dd>
+<dt><tt class="docutils literal">regname</tt></dt>
+<dd>Name of value to read from specified registry key. Defaults to the
+unnamed (default) value.</dd>
+<dt><tt class="docutils literal">regappend</tt></dt>
+<dd>String to append to the value read from the registry, typically
+the executable name of the tool.
+Default: None</dd>
</dl>
</div>
<div class="section" id="hooks">
@@ -582,10 +638,7 @@ default.color = FF0000
various actions such as starting or finishing a commit. Multiple
hooks can be run for the same action by appending a suffix to the
action. Overriding a site-wide hook can be done by changing its
-value or setting it to an empty string. Hooks can be prioritized
-by adding a prefix of <tt class="docutils literal">priority</tt> to the hook name on a new line
-and setting the priority. The default priority is 0 if
-not specified.</p>
+value or setting it to an empty string.</p>
<p>Example <tt class="docutils literal">.hg/hgrc</tt>:</p>
<pre class="literal-block">
[hooks]
@@ -595,8 +648,6 @@ changegroup.update = hg update
incoming =
incoming.email = /my/email/hook
incoming.autobuild = /my/build/hook
-# force autobuild hook to run before other incoming hooks
-priority.incoming.autobuild = 1
</pre>
<p>Most hooks are run with environment variables set that give useful
additional information. For each hook below, the environment
@@ -737,21 +788,6 @@ environment variables above are passed as keyword arguments, with no
<p>If a Python hook returns a &quot;true&quot; value or raises an exception, this
is treated as a failure.</p>
</div>
-<div class="section" id="hostfingerprints">
-<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">hostfingerprints</tt></a></h2>
-<p>Fingerprints of the certificates of known HTTPS servers.
-A HTTPS connection to a server with a fingerprint configured here will
-only succeed if the servers certificate matches the fingerprint.
-This is very similar to how ssh known hosts works.
-The fingerprint is the SHA-1 hash value of the DER encoded certificate.
-The CA chain and web.cacerts is not used for servers with a fingerprint.</p>
-<p>For example:</p>
-<pre class="literal-block">
-[hostfingerprints]
-hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc
-</pre>
-<p>This feature is only supported when using Python 2.6 or later.</p>
-</div>
<div class="section" id="http-proxy">
<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">http_proxy</tt></a></h2>
<p>Used to access web-based Mercurial repositories through a HTTP
@@ -772,103 +808,27 @@ the proxy.</dd>
in <tt class="docutils literal">http_proxy.no</tt>. True or False. Default: False.</dd>
</dl>
</div>
-<div class="section" id="merge-patterns">
-<h2><a class="toc-backref" href="#contents"><tt class="docutils literal"><span class="pre">merge-patterns</span></tt></a></h2>
-<p>This section specifies merge tools to associate with particular file
-patterns. Tools matched here will take precedence over the default
-merge tool. Patterns are globs by default, rooted at the repository
-root.</p>
-<p>Example:</p>
-<pre class="literal-block">
-[merge-patterns]
-**.c = kdiff3
-**.jpg = myimgmerge
-</pre>
-</div>
-<div class="section" id="merge-tools">
-<h2><a class="toc-backref" href="#contents"><tt class="docutils literal"><span class="pre">merge-tools</span></tt></a></h2>
-<p>This section configures external merge tools to use for file-level
-merges.</p>
-<p>Example <tt class="docutils literal"><span class="pre">~/.hgrc</span></tt>:</p>
-<pre class="literal-block">
-[merge-tools]
-# Override stock tool location
-kdiff3.executable = ~/bin/kdiff3
-# Specify command line
-kdiff3.args = $base $local $other -o $output
-# Give higher priority
-kdiff3.priority = 1
-
-# Define new tool
-myHtmlTool.args = -m $local $other $base $output
-myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
-myHtmlTool.priority = 1
-</pre>
-<p>Supported arguments:</p>
+<div class="section" id="smtp">
+<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">smtp</tt></a></h2>
+<p>Configuration for extensions that need to send email messages.</p>
<dl class="docutils">
-<dt><tt class="docutils literal">priority</tt></dt>
-<dd>The priority in which to evaluate this tool.
-Default: 0.</dd>
-<dt><tt class="docutils literal">executable</tt></dt>
-<dd>Either just the name of the executable or its pathname. On Windows,
-the path can use environment variables with ${ProgramFiles} syntax.
-Default: the tool name.</dd>
-<dt><tt class="docutils literal">args</tt></dt>
-<dd>The arguments to pass to the tool executable. You can refer to the
-files being merged as well as the output file through these
-variables: <tt class="docutils literal">$base</tt>, <tt class="docutils literal">$local</tt>, <tt class="docutils literal">$other</tt>, <tt class="docutils literal">$output</tt>.
-Default: <tt class="docutils literal">$local $base $other</tt></dd>
-<dt><tt class="docutils literal">premerge</tt></dt>
-<dd>Attempt to run internal non-interactive 3-way merge tool before
-launching external tool. Options are <tt class="docutils literal">true</tt>, <tt class="docutils literal">false</tt>, or <tt class="docutils literal">keep</tt>
-to leave markers in the file if the premerge fails.
-Default: True</dd>
-<dt><tt class="docutils literal">binary</tt></dt>
-<dd>This tool can merge binary files. Defaults to False, unless tool
-was selected by file pattern match.</dd>
-<dt><tt class="docutils literal">symlink</tt></dt>
-<dd>This tool can merge symlinks. Defaults to False, even if tool was
-selected by file pattern match.</dd>
-<dt><tt class="docutils literal">check</tt></dt>
-<dd><p class="first">A list of merge success-checking options:</p>
-<dl class="last docutils">
-<dt><tt class="docutils literal">changed</tt></dt>
-<dd>Ask whether merge was successful when the merged file shows no changes.</dd>
-<dt><tt class="docutils literal">conflicts</tt></dt>
-<dd>Check whether there are conflicts even though the tool reported success.</dd>
-<dt><tt class="docutils literal">prompt</tt></dt>
-<dd>Always prompt for merge success, regardless of success reported by tool.</dd>
-</dl>
-</dd>
-<dt><tt class="docutils literal">checkchanged</tt></dt>
-<dd>True is equivalent to <tt class="docutils literal">check = changed</tt>.
-Default: False</dd>
-<dt><tt class="docutils literal">checkconflicts</tt></dt>
-<dd>True is equivalent to <tt class="docutils literal">check = conflicts</tt>.
-Default: False</dd>
-<dt><tt class="docutils literal">fixeol</tt></dt>
-<dd>Attempt to fix up EOL changes caused by the merge tool.
-Default: False</dd>
-<dt><tt class="docutils literal">gui</tt></dt>
-<dd>This tool requires a graphical interface to run. Default: False</dd>
-<dt><tt class="docutils literal">regkey</tt></dt>
-<dd>Windows registry key which describes install location of this
-tool. Mercurial will search for this key first under
-<tt class="docutils literal">HKEY_CURRENT_USER</tt> and then under <tt class="docutils literal">HKEY_LOCAL_MACHINE</tt>.
-Default: None</dd>
-<dt><tt class="docutils literal">regkeyalt</tt></dt>
-<dd>An alternate Windows registry key to try if the first key is not
-found. The alternate key uses the same <tt class="docutils literal">regname</tt> and <tt class="docutils literal">regappend</tt>
-semantics of the primary key. The most common use for this key
-is to search for 32bit applications on 64bit operating systems.
-Default: None</dd>
-<dt><tt class="docutils literal">regname</tt></dt>
-<dd>Name of value to read from specified registry key. Defaults to the
-unnamed (default) value.</dd>
-<dt><tt class="docutils literal">regappend</tt></dt>
-<dd>String to append to the value read from the registry, typically
-the executable name of the tool.
-Default: None</dd>
+<dt><tt class="docutils literal">host</tt></dt>
+<dd>Host name of mail server, e.g. &quot;mail.example.com&quot;.</dd>
+<dt><tt class="docutils literal">port</tt></dt>
+<dd>Optional. Port to connect to on mail server. Default: 25.</dd>
+<dt><tt class="docutils literal">tls</tt></dt>
+<dd>Optional. Method to enable TLS when connecting to mail server: starttls,
+smtps or none. Default: none.</dd>
+<dt><tt class="docutils literal">username</tt></dt>
+<dd>Optional. User name for authenticating with the SMTP server.
+Default: none.</dd>
+<dt><tt class="docutils literal">password</tt></dt>
+<dd>Optional. Password for authenticating with the SMTP server. If not
+specified, interactive sessions will prompt the user for a
+password; non-interactive sessions will fail. Default: none.</dd>
+<dt><tt class="docutils literal">local_hostname</tt></dt>
+<dd>Optional. It's the hostname that the sender can use to identify
+itself to the MTA.</dd>
</dl>
</div>
<div class="section" id="patch">
@@ -904,48 +864,16 @@ cloned.</dd>
is specified.</dd>
</dl>
</div>
-<div class="section" id="phases">
-<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">phases</tt></a></h2>
-<p>Specifies default handling of phases. See <a class="reference external" href="hg.1.html#phases"><tt class="docutils literal">hg help phases</tt></a> for more
-information about working with phases.</p>
-<dl class="docutils">
-<dt><tt class="docutils literal">publish</tt></dt>
-<dd>Controls draft phase behavior when working as a server. When true,
-pushed changesets are set to public in both client and server and
-pulled or cloned changesets are set to public in the client.
-Default: True</dd>
-<dt><tt class="docutils literal"><span class="pre">new-commit</span></tt></dt>
-<dd>Phase of newly-created commits.
-Default: draft</dd>
-</dl>
-</div>
<div class="section" id="profiling">
<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">profiling</tt></a></h2>
-<p>Specifies profiling type, format, and file output. Two profilers are
-supported: an instrumenting profiler (named <tt class="docutils literal">ls</tt>), and a sampling
-profiler (named <tt class="docutils literal">stat</tt>).</p>
-<p>In this section description, 'profiling data' stands for the raw data
-collected during profiling, while 'profiling report' stands for a
-statistical text report generated from the profiling data. The
-profiling is done using lsprof.</p>
+<p>Specifies profiling format and file output. In this section
+description, 'profiling data' stands for the raw data collected
+during profiling, while 'profiling report' stands for a statistical
+text report generated from the profiling data. The profiling is done
+using lsprof.</p>
<dl class="docutils">
-<dt><tt class="docutils literal">type</tt></dt>
-<dd><p class="first">The type of profiler to use.
-Default: ls.</p>
-<dl class="last docutils">
-<dt><tt class="docutils literal">ls</tt></dt>
-<dd>Use Python's built-in instrumenting profiler. This profiler
-works on all platforms, but each line number it reports is the
-first line of a function. This restriction makes it difficult to
-identify the expensive parts of a non-trivial function.</dd>
-<dt><tt class="docutils literal">stat</tt></dt>
-<dd>Use a third-party statistical profiler, statprof. This profiler
-currently runs only on Unix systems, and is most useful for
-profiling commands that run for longer than about 0.1 seconds.</dd>
-</dl>
-</dd>
<dt><tt class="docutils literal">format</tt></dt>
-<dd><p class="first">Profiling format. Specific to the <tt class="docutils literal">ls</tt> instrumenting profiler.
+<dd><p class="first">Profiling format.
Default: text.</p>
<dl class="last docutils">
<dt><tt class="docutils literal">text</tt></dt>
@@ -958,9 +886,6 @@ file, the generated file can directly be loaded into
kcachegrind.</dd>
</dl>
</dd>
-<dt><tt class="docutils literal">frequency</tt></dt>
-<dd>Sampling frequency. Specific to the <tt class="docutils literal">stat</tt> sampling profiler.
-Default: 1000.</dd>
<dt><tt class="docutils literal">output</tt></dt>
<dd>File path where profiling data or report should be saved. If the
file exists, it is replaced. Default: None, data is printed on
@@ -986,57 +911,27 @@ about 6 Mbps), uncompressed streaming is slower, because of the
extra data transfer overhead. This mode will also temporarily hold
the write lock while determining what data to transfer.
Default is True.</dd>
-<dt><tt class="docutils literal">preferuncompressed</tt></dt>
-<dd>When set, clients will try to use the uncompressed streaming
-protocol. Default is False.</dd>
<dt><tt class="docutils literal">validate</tt></dt>
<dd>Whether to validate the completeness of pushed changesets by
checking that all new file revisions specified in manifests are
present. Default is False.</dd>
</dl>
</div>
-<div class="section" id="smtp">
-<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">smtp</tt></a></h2>
-<p>Configuration for extensions that need to send email messages.</p>
-<dl class="docutils">
-<dt><tt class="docutils literal">host</tt></dt>
-<dd>Host name of mail server, e.g. &quot;mail.example.com&quot;.</dd>
-<dt><tt class="docutils literal">port</tt></dt>
-<dd>Optional. Port to connect to on mail server. Default: 25.</dd>
-<dt><tt class="docutils literal">tls</tt></dt>
-<dd>Optional. Method to enable TLS when connecting to mail server: starttls,
-smtps or none. Default: none.</dd>
-<dt><tt class="docutils literal">username</tt></dt>
-<dd>Optional. User name for authenticating with the SMTP server.
-Default: none.</dd>
-<dt><tt class="docutils literal">password</tt></dt>
-<dd>Optional. Password for authenticating with the SMTP server. If not
-specified, interactive sessions will prompt the user for a
-password; non-interactive sessions will fail. Default: none.</dd>
-<dt><tt class="docutils literal">local_hostname</tt></dt>
-<dd>Optional. It's the hostname that the sender can use to identify
-itself to the MTA.</dd>
-</dl>
-</div>
<div class="section" id="subpaths">
<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">subpaths</tt></a></h2>
-<p>Subrepository source URLs can go stale if a remote server changes name
-or becomes temporarily unavailable. This section lets you define
-rewrite rules of the form:</p>
+<p>Defines subrepositories source locations rewriting rules of the form:</p>
<pre class="literal-block">
&lt;pattern&gt; = &lt;replacement&gt;
</pre>
-<p>where <tt class="docutils literal">pattern</tt> is a regular expression matching a subrepository
-source URL and <tt class="docutils literal">replacement</tt> is the replacement string used to
-rewrite it. Groups can be matched in <tt class="docutils literal">pattern</tt> and referenced in
-<tt class="docutils literal">replacements</tt>. For instance:</p>
+<p>Where <tt class="docutils literal">pattern</tt> is a regular expression matching the source and
+<tt class="docutils literal">replacement</tt> is the replacement string used to rewrite it. Groups
+can be matched in <tt class="docutils literal">pattern</tt> and referenced in <tt class="docutils literal">replacements</tt>. For
+instance:</p>
<pre class="literal-block">
http://server/(.*)-hg/ = http://hg.server/\1/
</pre>
<p>rewrites <tt class="docutils literal"><span class="pre">http://server/foo-hg/</span></tt> into <tt class="docutils literal"><span class="pre">http://hg.server/foo/</span></tt>.</p>
-<p>Relative subrepository paths are first made absolute, and the
-rewrite rules are then applied on the full (absolute) path. The rules
-are applied in definition order.</p>
+<p>All patterns are applied in definition order.</p>
</div>
<div class="section" id="trusted">
<h2><a class="toc-backref" href="#contents"><tt class="docutils literal">trusted</tt></a></h2>
@@ -1078,7 +973,7 @@ Default is False.</dd>
<dd>Whether to commit modified subrepositories when committing the
parent repository. If False and one subrepository has uncommitted
changes, abort the commit.
-Default is False.</dd>
+Default is True.</dd>
<dt><tt class="docutils literal">debug</tt></dt>
<dd>Print debugging information. True or False. Default is False.</dd>
<dt><tt class="docutils literal">editor</tt></dt>
@@ -1116,9 +1011,6 @@ On Windows, this configuration option is ignored and the command aborted.</dd>
<dd>Reduce the amount of output printed. True or False. Default is False.</dd>
<dt><tt class="docutils literal">remotecmd</tt></dt>
<dd>remote command to use for clone/push/pull operations. Default is <tt class="docutils literal">hg</tt>.</dd>
-<dt><tt class="docutils literal">reportoldssl</tt></dt>
-<dd>Warn if an SSL certificate is unable to be due to using Python
-2.5 or earlier. True or False. Default is True.</dd>
<dt><tt class="docutils literal">report_untrusted</tt></dt>
<dd>Warn if a <tt class="docutils literal">.hg/hgrc</tt> file is ignored due to not being owned by a
trusted user or group. True or False. Default is True.</dd>
@@ -1201,6 +1093,12 @@ push, including unauthenticated users. Otherwise, the remote user
must have been authenticated, and the authenticated user name must
be present in this list. The contents of the allow_push list are
examined after the deny_push list.</dd>
+<dt><tt class="docutils literal">guessmime</tt></dt>
+<dd>Control MIME types for raw download of file content.
+Set to True to let hgweb guess the content type from the file
+extension. This will serve HTML files as <tt class="docutils literal">text/html</tt> and might
+allow cross-site scripting attacks when serving untrusted
+repositories. Default is False.</dd>
<dt><tt class="docutils literal">allow_read</tt></dt>
<dd>If the user has not already been denied repository access due to
the contents of deny_read, this list determines whether to grant
@@ -1223,18 +1121,8 @@ URLs. Example: <tt class="docutils literal"><span class="pre">http://hgserver/re
authority certificates. Environment variables and <tt class="docutils literal">~user</tt>
constructs are expanded in the filename. If specified on the
client, then it will verify the identity of remote HTTPS servers
-with these certificates.</p>
-<p>This feature is only supported when using Python 2.6 or later. If you wish
-to use it with earlier versions of Python, install the backported
-version of the ssl library that is available from
-<tt class="docutils literal"><span class="pre">http://pypi.python.org</span></tt>.</p>
-<p>To disable SSL verification temporarily, specify <tt class="docutils literal"><span class="pre">--insecure</span></tt> from
-command line.</p>
-<p>You can use OpenSSL's CA certificate file if your platform has
-one. On most Linux systems this will be
-<tt class="docutils literal"><span class="pre">/etc/ssl/certs/ca-certificates.crt</span></tt>. Otherwise you will have to
-generate this file manually. The form must be as follows:</p>
-<pre class="last literal-block">
+with these certificates. The form must be as follows:</p>
+<pre class="literal-block">
-----BEGIN CERTIFICATE-----
... (certificate in base64 PEM encoding) ...
-----END CERTIFICATE-----
@@ -1242,22 +1130,18 @@ generate this file manually. The form must be as follows:</p>
... (certificate in base64 PEM encoding) ...
-----END CERTIFICATE-----
</pre>
+<p>This feature is only supported when using Python 2.6 or later. If you wish
+to use it with earlier versions of Python, install the backported
+version of the ssl library that is available from
+<tt class="docutils literal"><span class="pre">http://pypi.python.org</span></tt>.</p>
+<p>You can use OpenSSL's CA certificate file if your platform has one.
+On most Linux systems this will be <tt class="docutils literal"><span class="pre">/etc/ssl/certs/ca-certificates.crt</span></tt>.
+Otherwise you will have to generate this file manually.</p>
+<p class="last">To disable SSL verification temporarily, specify <tt class="docutils literal"><span class="pre">--insecure</span></tt> from
+command line.</p>
</dd>
<dt><tt class="docutils literal">cache</tt></dt>
<dd>Whether to support caching in hgweb. Defaults to True.</dd>
-<dt><tt class="docutils literal">collapse</tt></dt>
-<dd>With <tt class="docutils literal">descend</tt> enabled, repositories in subdirectories are shown at
-a single level alongside repositories in the current path. With
-<tt class="docutils literal">collapse</tt> also enabled, repositories residing at a deeper level than
-the current path are grouped behind navigable directory entries that
-lead to the locations of these repositories. In effect, this setting
-collapses each collection of repositories found within a subdirectory
-into a single entry for that subdirectory. Default is False.</dd>
-<dt><tt class="docutils literal">comparisoncontext</tt></dt>
-<dd>Number of lines of context to show in side-by-side file comparison. If
-negative or the value <tt class="docutils literal">full</tt>, whole files are shown. Default is 5.
-This setting can be overridden by a <tt class="docutils literal">context</tt> request parameter to the
-<tt class="docutils literal">comparison</tt> command, taking the same values.</dd>
<dt><tt class="docutils literal">contact</tt></dt>
<dd>Name or email address of the person in charge of the repository.
Defaults to ui.username or <tt class="docutils literal">$EMAIL</tt> or &quot;unknown&quot; if unset or empty.</dd>
@@ -1293,35 +1177,21 @@ Default is &quot;unknown&quot;.</dd>
Example: &quot;UTF-8&quot;</dd>
<dt><tt class="docutils literal">errorlog</tt></dt>
<dd>Where to output the error log. Default is stderr.</dd>
-<dt><tt class="docutils literal">guessmime</tt></dt>
-<dd>Control MIME types for raw download of file content.
-Set to True to let hgweb guess the content type from the file
-extension. This will serve HTML files as <tt class="docutils literal">text/html</tt> and might
-allow cross-site scripting attacks when serving untrusted
-repositories. Default is False.</dd>
<dt><tt class="docutils literal">hidden</tt></dt>
<dd>Whether to hide the repository in the hgwebdir index.
Default is False.</dd>
<dt><tt class="docutils literal">ipv6</tt></dt>
<dd>Whether to use IPv6. Default is False.</dd>
-<dt><tt class="docutils literal">logoimg</tt></dt>
-<dd>File name of the logo image that some templates display on each page.
-The file name is relative to <tt class="docutils literal">staticurl</tt>. That is, the full path to
-the logo image is &quot;staticurl/logoimg&quot;.
-If unset, <tt class="docutils literal">hglogo.png</tt> will be used.</dd>
<dt><tt class="docutils literal">logourl</tt></dt>
<dd>Base URL to use for logos. If unset, <tt class="docutils literal"><span class="pre">http://mercurial.selenic.com/</span></tt>
will be used.</dd>
+<dt><tt class="docutils literal">name</tt></dt>
+<dd>Repository name to use in the web interface. Default is current
+working directory.</dd>
<dt><tt class="docutils literal">maxchanges</tt></dt>
<dd>Maximum number of changes to list on the changelog. Default is 10.</dd>
<dt><tt class="docutils literal">maxfiles</tt></dt>
<dd>Maximum number of files to list per changeset. Default is 10.</dd>
-<dt><tt class="docutils literal">maxshortchanges</tt></dt>
-<dd>Maximum number of changes to list on the shortlog, graph or filelog
-pages. Default is 60.</dd>
-<dt><tt class="docutils literal">name</tt></dt>
-<dd>Repository name to use in the web interface. Default is current
-working directory.</dd>
<dt><tt class="docutils literal">port</tt></dt>
<dd>Port to listen on. Default is 8000.</dd>
<dt><tt class="docutils literal">prefix</tt></dt>
@@ -1356,7 +1226,7 @@ Default is 1; set to 0 to disable.</dd>
<div class="section" id="copying">
<h1><a class="toc-backref" href="#contents">Copying</a></h1>
<p>This manual page is copyright 2005 Bryan O'Sullivan.
-Mercurial is copyright 2005-2012 Matt Mackall.
+Mercurial is copyright 2005-2010 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.</p>
<!-- Common link and substitution definitions. -->
diff --git a/doc/hgrc.5.txt b/doc/hgrc.5.txt
index e6adaf3..9a93bdc 100644
--- a/doc/hgrc.5.txt
+++ b/doc/hgrc.5.txt
@@ -17,24 +17,24 @@ configuration files for Mercurial
Synopsis
-========
+--------
.. include:: ../mercurial/help/config.txt
Author
-======
+------
Bryan O'Sullivan <bos@serpentine.com>.
Mercurial was written by Matt Mackall <mpm@selenic.com>.
See Also
-========
+--------
|hg(1)|_, |hgignore(5)|_
Copying
-=======
+-------
This manual page is copyright 2005 Bryan O'Sullivan.
-Mercurial is copyright 2005-2012 Matt Mackall.
+Mercurial is copyright 2005-2010 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.
diff --git a/doc/runrst b/doc/runrst
index 8c9d222..fdad308 100755
--- a/doc/runrst
+++ b/doc/runrst
@@ -20,8 +20,6 @@ try:
except ImportError:
sys.stderr.write("abort: couldn't generate documentation: docutils "
"module is missing\n")
- sys.stderr.write("please install python-docutils or see "
- "http://docutils.sourceforge.net/\n")
sys.exit(-1)
def role_hg(name, rawtext, text, lineno, inliner,
diff --git a/hgext/acl.py b/hgext/acl.py
index 2bf41aa..a50fa72 100644
--- a/hgext/acl.py
+++ b/hgext/acl.py
@@ -32,7 +32,7 @@ The order in which access checks are performed is:
The allow and deny sections take key-value pairs.
Branch-based Access Control
----------------------------
+...........................
Use the ``acl.deny.branches`` and ``acl.allow.branches`` sections to
have branch-based access control. Keys in these sections can be
@@ -46,11 +46,8 @@ The corresponding values can be either:
- a comma-separated list containing users and groups, or
- an asterisk, to match anyone;
-You can add the "!" prefix to a user or group name to invert the sense
-of the match.
-
Path-based Access Control
--------------------------
+.........................
Use the ``acl.deny`` and ``acl.allow`` sections to have path-based
access control. Keys in these sections accept a subtree pattern (with
@@ -58,7 +55,7 @@ a glob syntax by default). The corresponding values follow the same
syntax as the other sections above.
Groups
-------
+......
Group names must be prefixed with an ``@`` symbol. Specifying a group
name has the same effect as specifying all the users in that group.
@@ -69,7 +66,7 @@ a Unix-like system, the list of users will be taken from the OS.
Otherwise, an exception will be raised.
Example Configuration
----------------------
+.....................
::
@@ -142,61 +139,19 @@ Example Configuration
# under the "images" folder:
images/** = jack, @designers
- # Everyone (except for "user6" and "@hg-denied" - see acl.deny above)
- # will have write access to any file under the "resources" folder
- # (except for 1 file. See acl.deny):
+ # Everyone (except for "user6" - see acl.deny above) will have write
+ # access to any file under the "resources" folder (except for 1
+ # file. See acl.deny):
src/main/resources/** = *
.hgtags = release_engineer
-Examples using the "!" prefix
-.............................
-
-Suppose there's a branch that only a given user (or group) should be able to
-push to, and you don't want to restrict access to any other branch that may
-be created.
-
-The "!" prefix allows you to prevent anyone except a given user or group to
-push changesets in a given branch or path.
-
-In the examples below, we will:
-1) Deny access to branch "ring" to anyone but user "gollum"
-2) Deny access to branch "lake" to anyone but members of the group "hobbit"
-3) Deny access to a file to anyone but user "gollum"
-
-::
-
- [acl.allow.branches]
- # Empty
-
- [acl.deny.branches]
-
- # 1) only 'gollum' can commit to branch 'ring';
- # 'gollum' and anyone else can still commit to any other branch.
- ring = !gollum
-
- # 2) only members of the group 'hobbit' can commit to branch 'lake';
- # 'hobbit' members and anyone else can still commit to any other branch.
- lake = !@hobbit
-
- # You can also deny access based on file paths:
-
- [acl.allow]
- # Empty
-
- [acl.deny]
- # 3) only 'gollum' can change the file below;
- # 'gollum' and anyone else can still change any other file.
- /misty/mountains/cave/ring = !gollum
-
'''
from mercurial.i18n import _
from mercurial import util, match
import getpass, urllib
-testedwith = 'internal'
-
def _getusers(ui, group):
# First, try to use group definition from section [acl.groups]
@@ -217,21 +172,7 @@ def _usermatch(ui, user, usersorgroups):
return True
for ug in usersorgroups.replace(',', ' ').split():
-
- if ug.startswith('!'):
- # Test for excluded user or group. Format:
- # if ug is a user name: !username
- # if ug is a group name: !@groupname
- ug = ug[1:]
- if not ug.startswith('@') and user != ug \
- or ug.startswith('@') and user not in _getusers(ui, ug[1:]):
- return True
-
- # Test for user or group. Format:
- # if ug is a user name: username
- # if ug is a group name: @groupname
- elif user == ug \
- or ug.startswith('@') and user in _getusers(ui, ug[1:]):
+ if user == ug or ug.find('@') == 0 and user in _getusers(ui, ug[1:]):
return True
return False
@@ -247,20 +188,15 @@ def buildmatch(ui, repo, user, key):
ui.debug('acl: %s enabled, %d entries for user %s\n' %
(key, len(pats), user))
- # Branch-based ACL
if not repo:
if pats:
- # If there's an asterisk (meaning "any branch"), always return True;
- # Otherwise, test if b is in pats
- if '*' in pats:
- return util.always
- return lambda b: b in pats
- return util.never
-
- # Path-based ACL
+ return lambda b: '*' in pats or b in pats
+ return lambda b: False
+
if pats:
return match.match(repo.root, '', pats)
- return util.never
+ return match.exact(repo.root, '', [])
+
def hook(ui, repo, hooktype, node=None, source=None, **kwargs):
if hooktype not in ['pretxnchangegroup', 'pretxncommit']:
@@ -280,8 +216,6 @@ def hook(ui, repo, hooktype, node=None, source=None, **kwargs):
if user is None:
user = getpass.getuser()
- ui.debug('acl: checking access for user "%s"\n' % user)
-
cfg = ui.config('acl', 'config')
if cfg:
ui.readconfig(cfg, sections = ['acl.groups', 'acl.allow.branches',
@@ -308,9 +242,9 @@ def hook(ui, repo, hooktype, node=None, source=None, **kwargs):
for f in ctx.files():
if deny and deny(f):
- raise util.Abort(_('acl: user "%s" denied on "%s"'
- ' (changeset "%s")') % (user, f, ctx))
+ ui.debug('acl: user %s denied on %s\n' % (user, f))
+ raise util.Abort(_('acl: access denied for changeset %s') % ctx)
if allow and not allow(f):
- raise util.Abort(_('acl: user "%s" not allowed on "%s"'
- ' (changeset "%s")') % (user, f, ctx))
- ui.debug('acl: path access granted: "%s"\n' % ctx)
+ ui.debug('acl: user %s not allowed on %s\n' % (user, f))
+ raise util.Abort(_('acl: access denied for changeset %s') % ctx)
+ ui.debug('acl: allowing changeset %s\n' % ctx)
diff --git a/hgext/bugzilla.py b/hgext/bugzilla.py
index 42eef74..705694c 100644
--- a/hgext/bugzilla.py
+++ b/hgext/bugzilla.py
@@ -1,7 +1,7 @@
# bugzilla.py - bugzilla integration for mercurial
#
# Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>
-# Copyright 2011-2 Jim Hague <jim.hague@acm.org>
+# Copyright 2011 Jim Hague <jim.hague@acm.org>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
@@ -12,8 +12,7 @@ This hook extension adds comments on bugs in Bugzilla when changesets
that refer to bugs by Bugzilla ID are seen. The comment is formatted using
the Mercurial template mechanism.
-The bug references can optionally include an update for Bugzilla of the
-hours spent working on the bug. Bugs can also be marked fixed.
+The hook does not change bug status.
Three basic modes of access to Bugzilla are provided:
@@ -33,13 +32,13 @@ permission to read Bugzilla configuration details and the necessary
MySQL user and password to have full access rights to the Bugzilla
database. For these reasons this access mode is now considered
deprecated, and will not be updated for new Bugzilla versions going
-forward. Only adding comments is supported in this access mode.
+forward.
Access via XMLRPC needs a Bugzilla username and password to be specified
in the configuration. Comments are added under that username. Since the
configuration must be readable by all Mercurial users, it is recommended
that the rights of that user are restricted in Bugzilla to the minimum
-necessary to add comments. Marking bugs fixed requires Bugzilla 4.0 and later.
+necessary to add comments.
Access via XMLRPC/email uses XMLRPC to query Bugzilla, but sends
email to the Bugzilla email interface to submit comments to bugs.
@@ -47,8 +46,7 @@ The From: address in the email is set to the email address of the Mercurial
user, so the comment appears to come from the Mercurial user. In the event
that the Mercurial user email is not recognised by Bugzilla as a Bugzilla
user, the email associated with the Bugzilla username used to log into
-Bugzilla is used instead as the source of the comment. Marking bugs fixed
-works on all supported Bugzilla versions.
+Bugzilla is used instead as the source of the comment.
Configuration items common to all access modes:
@@ -64,34 +62,11 @@ bugzilla.version
including 2.18.
bugzilla.regexp
- Regular expression to match bug IDs for update in changeset commit message.
- It must contain one "()" named group ``<ids>`` containing the bug
- IDs separated by non-digit characters. It may also contain
- a named group ``<hours>`` with a floating-point number giving the
- hours worked on the bug. If no named groups are present, the first
- "()" group is assumed to contain the bug IDs, and work time is not
- updated. The default expression matches ``Bug 1234``, ``Bug no. 1234``,
- ``Bug number 1234``, ``Bugs 1234,5678``, ``Bug 1234 and 5678`` and
- variations thereof, followed by an hours number prefixed by ``h`` or
- ``hours``, e.g. ``hours 1.5``. Matching is case insensitive.
-
-bugzilla.fixregexp
- Regular expression to match bug IDs for marking fixed in changeset
- commit message. This must contain a "()" named group ``<ids>` containing
- the bug IDs separated by non-digit characters. It may also contain
- a named group ``<hours>`` with a floating-point number giving the
- hours worked on the bug. If no named groups are present, the first
- "()" group is assumed to contain the bug IDs, and work time is not
- updated. The default expression matches ``Fixes 1234``, ``Fixes bug 1234``,
- ``Fixes bugs 1234,5678``, ``Fixes 1234 and 5678`` and
- variations thereof, followed by an hours number prefixed by ``h`` or
- ``hours``, e.g. ``hours 1.5``. Matching is case insensitive.
-
-bugzilla.fixstatus
- The status to set a bug to when marking fixed. Default ``RESOLVED``.
-
-bugzilla.fixresolution
- The resolution to set a bug to when marking fixed. Default ``FIXED``.
+ Regular expression to match bug IDs in changeset commit message.
+ Must contain one "()" group. The default expression matches ``Bug
+ 1234``, ``Bug no. 1234``, ``Bug number 1234``, ``Bugs 1234,5678``,
+ ``Bug 1234 and 5678`` and variations thereof. Matching is case
+ insensitive.
bugzilla.style
The style file to use when formatting comments.
@@ -280,9 +255,7 @@ All the above add a comment to the Bugzilla bug record of the form::
from mercurial.i18n import _
from mercurial.node import short
from mercurial import cmdutil, mail, templater, util
-import re, time, urlparse, xmlrpclib
-
-testedwith = 'internal'
+import re, time, xmlrpclib
class bzaccess(object):
'''Base class for access to Bugzilla.'''
@@ -301,35 +274,24 @@ class bzaccess(object):
return user
# Methods to be implemented by access classes.
- #
- # 'bugs' is a dict keyed on bug id, where values are a dict holding
- # updates to bug state. Recognised dict keys are:
- #
- # 'hours': Value, float containing work hours to be updated.
- # 'fix': If key present, bug is to be marked fixed. Value ignored.
-
- def filter_real_bug_ids(self, bugs):
- '''remove bug IDs that do not exist in Bugzilla from bugs.'''
+ def filter_real_bug_ids(self, ids):
+ '''remove bug IDs that do not exist in Bugzilla from set.'''
pass
- def filter_cset_known_bug_ids(self, node, bugs):
- '''remove bug IDs where node occurs in comment text from bugs.'''
+ def filter_cset_known_bug_ids(self, node, ids):
+ '''remove bug IDs where node occurs in comment text from set.'''
pass
- def updatebug(self, bugid, newstate, text, committer):
- '''update the specified bug. Add comment text and set new states.
+ def add_comment(self, bugid, text, committer):
+ '''add comment to bug.
If possible add the comment as being from the committer of
the changeset. Otherwise use the default Bugzilla user.
'''
pass
- def notify(self, bugs, committer):
- '''Force sending of Bugzilla notification emails.
-
- Only required if the access method does not trigger notification
- emails automatically.
- '''
+ def notify(self, ids, committer):
+ '''Force sending of Bugzilla notification emails.'''
pass
# Bugzilla via direct access to MySQL database.
@@ -338,7 +300,7 @@ class bzmysql(bzaccess):
The earliest Bugzilla version this is tested with is version 2.16.
- If your Bugzilla is version 3.4 or above, you are strongly
+ If your Bugzilla is version 3.2 or above, you are strongly
recommended to use the XMLRPC access method instead.
'''
@@ -391,35 +353,33 @@ class bzmysql(bzaccess):
raise util.Abort(_('unknown database schema'))
return ids[0][0]
- def filter_real_bug_ids(self, bugs):
- '''filter not-existing bugs from set.'''
+ def filter_real_bug_ids(self, ids):
+ '''filter not-existing bug ids from set.'''
self.run('select bug_id from bugs where bug_id in %s' %
- bzmysql.sql_buglist(bugs.keys()))
- existing = [id for (id,) in self.cursor.fetchall()]
- for id in bugs.keys():
- if id not in existing:
- self.ui.status(_('bug %d does not exist\n') % id)
- del bugs[id]
-
- def filter_cset_known_bug_ids(self, node, bugs):
+ bzmysql.sql_buglist(ids))
+ return set([c[0] for c in self.cursor.fetchall()])
+
+ def filter_cset_known_bug_ids(self, node, ids):
'''filter bug ids that already refer to this changeset from set.'''
+
self.run('''select bug_id from longdescs where
bug_id in %s and thetext like "%%%s%%"''' %
- (bzmysql.sql_buglist(bugs.keys()), short(node)))
+ (bzmysql.sql_buglist(ids), short(node)))
for (id,) in self.cursor.fetchall():
self.ui.status(_('bug %d already knows about changeset %s\n') %
(id, short(node)))
- del bugs[id]
+ ids.discard(id)
+ return ids
- def notify(self, bugs, committer):
+ def notify(self, ids, committer):
'''tell bugzilla to send mail.'''
+
self.ui.status(_('telling bugzilla to send mail:\n'))
(user, userid) = self.get_bugzilla_user(committer)
- for id in bugs.keys():
+ for id in ids:
self.ui.status(_(' bug %s\n') % id)
cmdfmt = self.ui.config('bugzilla', 'notify', self.default_notify)
- bzdir = self.ui.config('bugzilla', 'bzdir',
- '/var/www/html/bugzilla')
+ bzdir = self.ui.config('bugzilla', 'bzdir', '/var/www/html/bugzilla')
try:
# Backwards-compatible with old notify string, which
# took one string. This will throw with a new format
@@ -471,18 +431,13 @@ class bzmysql(bzaccess):
userid = self.get_user_id(defaultuser)
user = defaultuser
except KeyError:
- raise util.Abort(_('cannot find bugzilla user id for %s or %s')
- % (user, defaultuser))
+ raise util.Abort(_('cannot find bugzilla user id for %s or %s') %
+ (user, defaultuser))
return (user, userid)
- def updatebug(self, bugid, newstate, text, committer):
- '''update bug state with comment text.
-
- Try adding comment as committer of changeset, otherwise as
- default bugzilla user.'''
- if len(newstate) > 0:
- self.ui.warn(_("Bugzilla/MySQL cannot update bug state\n"))
-
+ def add_comment(self, bugid, text, committer):
+ '''add comment to bug. try adding comment as committer of
+ changeset, otherwise as default bugzilla user.'''
(user, userid) = self.get_bugzilla_user(committer)
now = time.strftime('%Y-%m-%d %H:%M:%S')
self.run('''insert into longdescs
@@ -518,16 +473,17 @@ class bzmysql_3_0(bzmysql_2_18):
# Buzgilla via XMLRPC interface.
-class cookietransportrequest(object):
- """A Transport request method that retains cookies over its lifetime.
+class CookieSafeTransport(xmlrpclib.SafeTransport):
+ """A SafeTransport that retains cookies over its lifetime.
The regular xmlrpclib transports ignore cookies. Which causes
a bit of a problem when you need a cookie-based login, as with
the Bugzilla XMLRPC interface.
- So this is a helper for defining a Transport which looks for
- cookies being set in responses and saves them to add to all future
- requests.
+ So this is a SafeTransport which looks for cookies being set
+ in responses and saves them to add to all future requests.
+ It appears a SafeTransport can do both HTTP and HTTPS sessions,
+ which saves us having to do a CookieTransport too.
"""
# Inspiration drawn from
@@ -542,7 +498,6 @@ class cookietransportrequest(object):
def request(self, host, handler, request_body, verbose=0):
self.verbose = verbose
- self.accept_gzip_encoding = False
# issue XML-RPC request
h = self.make_connection(host)
@@ -582,20 +537,6 @@ class cookietransportrequest(object):
return unmarshaller.close()
-# The explicit calls to the underlying xmlrpclib __init__() methods are
-# necessary. The xmlrpclib.Transport classes are old-style classes, and
-# it turns out their __init__() doesn't get called when doing multiple
-# inheritance with a new-style class.
-class cookietransport(cookietransportrequest, xmlrpclib.Transport):
- def __init__(self, use_datetime=0):
- if util.safehasattr(xmlrpclib.Transport, "__init__"):
- xmlrpclib.Transport.__init__(self, use_datetime)
-
-class cookiesafetransport(cookietransportrequest, xmlrpclib.SafeTransport):
- def __init__(self, use_datetime=0):
- if util.safehasattr(xmlrpclib.Transport, "__init__"):
- xmlrpclib.SafeTransport.__init__(self, use_datetime)
-
class bzxmlrpc(bzaccess):
"""Support for access to Bugzilla via the Bugzilla XMLRPC API.
@@ -612,83 +553,41 @@ class bzxmlrpc(bzaccess):
user = self.ui.config('bugzilla', 'user', 'bugs')
passwd = self.ui.config('bugzilla', 'password')
- self.fixstatus = self.ui.config('bugzilla', 'fixstatus', 'RESOLVED')
- self.fixresolution = self.ui.config('bugzilla', 'fixresolution',
- 'FIXED')
-
- self.bzproxy = xmlrpclib.ServerProxy(bzweb, self.transport(bzweb))
- ver = self.bzproxy.Bugzilla.version()['version'].split('.')
- self.bzvermajor = int(ver[0])
- self.bzverminor = int(ver[1])
+ self.bzproxy = xmlrpclib.ServerProxy(bzweb, CookieSafeTransport())
self.bzproxy.User.login(dict(login=user, password=passwd))
- def transport(self, uri):
- if urlparse.urlparse(uri, "http")[0] == "https":
- return cookiesafetransport()
- else:
- return cookietransport()
-
def get_bug_comments(self, id):
"""Return a string with all comment text for a bug."""
- c = self.bzproxy.Bug.comments(dict(ids=[id], include_fields=['text']))
+ c = self.bzproxy.Bug.comments(dict(ids=[id]))
return ''.join([t['text'] for t in c['bugs'][str(id)]['comments']])
- def filter_real_bug_ids(self, bugs):
- probe = self.bzproxy.Bug.get(dict(ids=sorted(bugs.keys()),
- include_fields=[],
- permissive=True))
- for badbug in probe['faults']:
- id = badbug['id']
- self.ui.status(_('bug %d does not exist\n') % id)
- del bugs[id]
-
- def filter_cset_known_bug_ids(self, node, bugs):
- for id in sorted(bugs.keys()):
+ def filter_real_bug_ids(self, ids):
+ res = set()
+ bugs = self.bzproxy.Bug.get(dict(ids=sorted(ids), permissive=True))
+ for bug in bugs['bugs']:
+ res.add(bug['id'])
+ return res
+
+ def filter_cset_known_bug_ids(self, node, ids):
+ for id in sorted(ids):
if self.get_bug_comments(id).find(short(node)) != -1:
self.ui.status(_('bug %d already knows about changeset %s\n') %
(id, short(node)))
- del bugs[id]
-
- def updatebug(self, bugid, newstate, text, committer):
- args = {}
- if 'hours' in newstate:
- args['work_time'] = newstate['hours']
-
- if self.bzvermajor >= 4:
- args['ids'] = [bugid]
- args['comment'] = {'body' : text}
- if 'fix' in newstate:
- args['status'] = self.fixstatus
- args['resolution'] = self.fixresolution
- self.bzproxy.Bug.update(args)
- else:
- if 'fix' in newstate:
- self.ui.warn(_("Bugzilla/XMLRPC needs Bugzilla 4.0 or later "
- "to mark bugs fixed\n"))
- args['id'] = bugid
- args['comment'] = text
- self.bzproxy.Bug.add_comment(args)
+ ids.discard(id)
+ return ids
+
+ def add_comment(self, bugid, text, committer):
+ self.bzproxy.Bug.add_comment(dict(id=bugid, comment=text))
class bzxmlrpcemail(bzxmlrpc):
"""Read data from Bugzilla via XMLRPC, send updates via email.
Advantages of sending updates via email:
1. Comments can be added as any user, not just logged in user.
- 2. Bug statuses or other fields not accessible via XMLRPC can
- potentially be updated.
-
- There is no XMLRPC function to change bug status before Bugzilla
- 4.0, so bugs cannot be marked fixed via XMLRPC before Bugzilla 4.0.
- But bugs can be marked fixed via email from 3.4 onwards.
+ 2. Bug statuses and other fields not accessible via XMLRPC can
+ be updated. This is not currently used.
"""
- # The email interface changes subtly between 3.4 and 3.6. In 3.4,
- # in-email fields are specified as '@<fieldname> = <value>'. In
- # 3.6 this becomes '@<fieldname> <value>'. And fieldname @bug_id
- # in 3.4 becomes @id in 3.6. 3.6 and 4.0 both maintain backwards
- # compatibility, but rather than rely on this use the new format for
- # 4.0 onwards.
-
def __init__(self, ui):
bzxmlrpc.__init__(self, ui)
@@ -697,14 +596,6 @@ class bzxmlrpcemail(bzxmlrpc):
raise util.Abort(_("configuration 'bzemail' missing"))
mail.validateconfig(self.ui)
- def makecommandline(self, fieldname, value):
- if self.bzvermajor >= 4:
- return "@%s %s" % (fieldname, str(value))
- else:
- if fieldname == "id":
- fieldname = "bug_id"
- return "@%s = %s" % (fieldname, str(value))
-
def send_bug_modify_email(self, bugid, commands, comment, committer):
'''send modification message to Bugzilla bug via email.
@@ -725,9 +616,8 @@ class bzxmlrpcemail(bzxmlrpc):
raise util.Abort(_("default bugzilla user %s email not found") %
user)
user = matches['users'][0]['email']
- commands.append(self.makecommandline("id", bugid))
- text = "\n".join(commands) + "\n\n" + comment
+ text = "\n".join(commands) + "\n@bug_id = %d\n\n" % bugid + comment
_charsets = mail._charsets(self.ui)
user = mail.addressencode(self.ui, user, _charsets)
@@ -739,14 +629,8 @@ class bzxmlrpcemail(bzxmlrpc):
sendmail = mail.connect(self.ui)
sendmail(user, bzemail, msg.as_string())
- def updatebug(self, bugid, newstate, text, committer):
- cmds = []
- if 'hours' in newstate:
- cmds.append(self.makecommandline("work_time", newstate['hours']))
- if 'fix' in newstate:
- cmds.append(self.makecommandline("bug_status", self.fixstatus))
- cmds.append(self.makecommandline("resolution", self.fixresolution))
- self.send_bug_modify_email(bugid, cmds, text, committer)
+ def add_comment(self, bugid, text, committer):
+ self.send_bug_modify_email(bugid, [], text, committer)
class bugzilla(object):
# supported versions of bugzilla. different versions have
@@ -760,13 +644,7 @@ class bugzilla(object):
}
_default_bug_re = (r'bugs?\s*,?\s*(?:#|nos?\.?|num(?:ber)?s?)?\s*'
- r'(?P<ids>(?:\d+\s*(?:,?\s*(?:and)?)?\s*)+)'
- r'\.?\s*(?:h(?:ours?)?\s*(?P<hours>\d*(?:\.\d+)?))?')
-
- _default_fix_re = (r'fix(?:es)?\s*(?:bugs?\s*)?,?\s*'
- r'(?:nos?\.?|num(?:ber)?s?)?\s*'
- r'(?P<ids>(?:#?\d+\s*(?:,?\s*(?:and)?)?\s*)+)'
- r'\.?\s*(?:h(?:ours?)?\s*(?P<hours>\d*(?:\.\d+)?))?')
+ r'((?:\d+\s*(?:,?\s*(?:and)?)?\s*)+)')
_bz = None
@@ -792,76 +670,38 @@ class bugzilla(object):
return getattr(self.bz(), key)
_bug_re = None
- _fix_re = None
_split_re = None
- def find_bugs(self, ctx):
- '''return bugs dictionary created from commit comment.
+ def find_bug_ids(self, ctx):
+ '''return set of integer bug IDs from commit comment.
- Extract bug info from changeset comments. Filter out any that are
+ Extract bug IDs from changeset comments. Filter out any that are
not known to Bugzilla, and any that already have a reference to
the given changeset in their comments.
'''
if bugzilla._bug_re is None:
bugzilla._bug_re = re.compile(
- self.ui.config('bugzilla', 'regexp',
- bugzilla._default_bug_re), re.IGNORECASE)
- bugzilla._fix_re = re.compile(
- self.ui.config('bugzilla', 'fixregexp',
- bugzilla._default_fix_re), re.IGNORECASE)
+ self.ui.config('bugzilla', 'regexp', bugzilla._default_bug_re),
+ re.IGNORECASE)
bugzilla._split_re = re.compile(r'\D+')
start = 0
- hours = 0.0
- bugs = {}
- bugmatch = bugzilla._bug_re.search(ctx.description(), start)
- fixmatch = bugzilla._fix_re.search(ctx.description(), start)
+ ids = set()
while True:
- bugattribs = {}
- if not bugmatch and not fixmatch:
+ m = bugzilla._bug_re.search(ctx.description(), start)
+ if not m:
break
- if not bugmatch:
- m = fixmatch
- elif not fixmatch:
- m = bugmatch
- else:
- if bugmatch.start() < fixmatch.start():
- m = bugmatch
- else:
- m = fixmatch
start = m.end()
- if m is bugmatch:
- bugmatch = bugzilla._bug_re.search(ctx.description(), start)
- if 'fix' in bugattribs:
- del bugattribs['fix']
- else:
- fixmatch = bugzilla._fix_re.search(ctx.description(), start)
- bugattribs['fix'] = None
-
- try:
- ids = m.group('ids')
- except IndexError:
- ids = m.group(1)
- try:
- hours = float(m.group('hours'))
- bugattribs['hours'] = hours
- except IndexError:
- pass
- except TypeError:
- pass
- except ValueError:
- self.ui.status(_("%s: invalid hours\n") % m.group('hours'))
-
- for id in bugzilla._split_re.split(ids):
+ for id in bugzilla._split_re.split(m.group(1)):
if not id:
continue
- bugs[int(id)] = bugattribs
- if bugs:
- self.filter_real_bug_ids(bugs)
- if bugs:
- self.filter_cset_known_bug_ids(ctx.node(), bugs)
- return bugs
-
- def update(self, bugid, newstate, ctx):
+ ids.add(int(id))
+ if ids:
+ ids = self.filter_real_bug_ids(ids)
+ if ids:
+ ids = self.filter_cset_known_bug_ids(ctx.node(), ids)
+ return ids
+
+ def update(self, bugid, ctx):
'''update bugzilla bug with reference to changeset.'''
def webroot(root):
@@ -894,7 +734,7 @@ class bugzilla(object):
root=self.repo.root,
webroot=webroot(self.repo.root))
data = self.ui.popbuffer()
- self.updatebug(bugid, newstate, data, util.email(ctx.user()))
+ self.add_comment(bugid, data, util.email(ctx.user()))
def hook(ui, repo, hooktype, node=None, **kwargs):
'''add comment to bugzilla for each changeset that refers to a
@@ -906,10 +746,11 @@ def hook(ui, repo, hooktype, node=None, **kwargs):
try:
bz = bugzilla(ui, repo)
ctx = repo[node]
- bugs = bz.find_bugs(ctx)
- if bugs:
- for bug in bugs:
- bz.update(bug, bugs[bug], ctx)
- bz.notify(bugs, util.email(ctx.user()))
+ ids = bz.find_bug_ids(ctx)
+ if ids:
+ for id in ids:
+ bz.update(id, ctx)
+ bz.notify(ids, util.email(ctx.user()))
except Exception, e:
raise util.Abort(_('Bugzilla error: %s') % e)
+
diff --git a/hgext/children.py b/hgext/children.py
index 7b477aa..da2fe9c 100644
--- a/hgext/children.py
+++ b/hgext/children.py
@@ -8,17 +8,12 @@
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-'''command to display child changesets (DEPRECATED)
-
-This extension is deprecated. You should use :hg:`log -r
-"children(REV)"` instead.
-'''
+'''command to display child changesets'''
from mercurial import cmdutil
from mercurial.commands import templateopts
from mercurial.i18n import _
-testedwith = 'internal'
def children(ui, repo, file_=None, **opts):
"""show the children of the given or working directory revision
diff --git a/hgext/churn.py b/hgext/churn.py
index 29796f0..b4883ef 100644
--- a/hgext/churn.py
+++ b/hgext/churn.py
@@ -13,8 +13,6 @@ from mercurial import patch, cmdutil, scmutil, util, templater, commands
import os
import time, datetime
-testedwith = 'internal'
-
def maketemplater(ui, repo, tmpl):
tmpl = templater.parsestring(tmpl, quoted=False)
try:
@@ -69,7 +67,7 @@ def countrate(ui, repo, amap, *pats, **opts):
else:
parents = ctx.parents()
if len(parents) > 1:
- ui.note(_('revision %d is a merge, ignoring...\n') % (rev,))
+ ui.note(_('Revision %d is a merge, ignoring...\n') % (rev,))
return
ctx1 = parents[0]
@@ -137,7 +135,7 @@ def churn(ui, repo, *pats, **opts):
except ValueError:
l = l.strip()
if l:
- ui.warn(_("skipping malformed alias: %s\n") % l)
+ ui.warn(_("skipping malformed alias: %s\n" % l))
continue
rate = countrate(ui, repo, amap, *pats, **opts).items()
diff --git a/hgext/color.py b/hgext/color.py
index 22ef360..a4fe16a 100644
--- a/hgext/color.py
+++ b/hgext/color.py
@@ -2,8 +2,19 @@
#
# Copyright (C) 2007 Kevin Christen <kevin.christen@gmail.com>
#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
'''colorize output from some commands
@@ -57,9 +68,6 @@ Default effects may be overridden from your configuration file::
branches.current = green
branches.inactive = none
- tags.normal = green
- tags.local = black bold
-
The available effects in terminfo mode are 'blink', 'bold', 'dim',
'inverse', 'invisible', 'italic', 'standout', and 'underline'; in
ECMA-48 mode, the options are 'bold', 'inverse', 'italic', and
@@ -105,8 +113,6 @@ import os
from mercurial import commands, dispatch, extensions, ui as uimod, util
from mercurial.i18n import _
-testedwith = 'internal'
-
# start and stop parameters for effects
_effects = {'none': 0, 'black': 30, 'red': 31, 'green': 32, 'yellow': 33,
'blue': 34, 'magenta': 35, 'cyan': 36, 'white': 37, 'bold': 1,
@@ -251,9 +257,7 @@ _styles = {'grep.match': 'red bold',
'status.ignored': 'black bold',
'status.modified': 'blue bold',
'status.removed': 'red bold',
- 'status.unknown': 'magenta bold underline',
- 'tags.normal': 'green',
- 'tags.local': 'black bold'}
+ 'status.unknown': 'magenta bold underline'}
def _effect_str(effect):
diff --git a/hgext/convert/__init__.py b/hgext/convert/__init__.py
index e53c82c..abaa68a 100644
--- a/hgext/convert/__init__.py
+++ b/hgext/convert/__init__.py
@@ -13,8 +13,6 @@ import subversion
from mercurial import commands, templatekw
from mercurial.i18n import _
-testedwith = 'internal'
-
# Commands definition was moved elsewhere to ease demandload job.
def convert(ui, src, dest=None, revmapfile=None, **opts):
@@ -138,7 +136,7 @@ def convert(ui, src, dest=None, revmapfile=None, **opts):
repository from "default" to a named branch.
Mercurial Source
- ################
+ ''''''''''''''''
The Mercurial source recognizes the following configuration
options, which you can set on the command line with ``--config``:
@@ -148,14 +146,14 @@ def convert(ui, src, dest=None, revmapfile=None, **opts):
converting from and to Mercurial. Default is False.
:convert.hg.saverev: store original revision ID in changeset
- (forces target IDs to change). It takes a boolean argument and
- defaults to False.
+ (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 revision identifier and defaults to 0.
CVS Source
- ##########
+ ''''''''''
CVS source will use a sandbox (i.e. a checked-out copy) from CVS
to indicate the starting point of what will be converted. Direct
@@ -197,7 +195,7 @@ def convert(ui, src, dest=None, revmapfile=None, **opts):
delete them.
:hook.cvschangesets: Specify a Python function to be called after
- the changesets are calculated from the CVS log. The
+ the changesets are calculated from the the CVS log. The
function is passed a list with the changeset entries, and can
modify the changesets in-place, or add or delete them.
@@ -207,7 +205,7 @@ def convert(ui, src, dest=None, revmapfile=None, **opts):
the command help for more details.
Subversion Source
- #################
+ '''''''''''''''''
Subversion source detects classical trunk/branches/tags layouts.
By default, the supplied ``svn://repo/path/`` source URL is
@@ -239,7 +237,7 @@ def convert(ui, src, dest=None, revmapfile=None, **opts):
The default is 0.
Perforce Source
- ###############
+ '''''''''''''''
The Perforce (P4) importer can be given a p4 depot path or a
client specification as source. It will convert all files in the
@@ -255,7 +253,7 @@ def convert(ui, src, dest=None, revmapfile=None, **opts):
Perforce changelist number).
Mercurial Destination
- #####################
+ '''''''''''''''''''''
The following options are supported:
@@ -330,8 +328,7 @@ cmdtable = {
('', 'root', '', _('specify cvsroot')),
# Options specific to builtin cvsps
('', 'parents', '', _('show parent changesets')),
- ('', 'ancestors', '',
- _('show current changeset in ancestor branches')),
+ ('', 'ancestors', '', _('show current changeset in ancestor branches')),
# Options that are ignored for compatibility with cvsps-2.1
('A', 'cvs-direct', None, _('ignored for compatibility')),
],
diff --git a/hgext/convert/bzr.py b/hgext/convert/bzr.py
index 5eef902..cc16258 100644
--- a/hgext/convert/bzr.py
+++ b/hgext/convert/bzr.py
@@ -23,7 +23,7 @@ from common import NoRepo, commit, converter_source
try:
# bazaar imports
- from bzrlib import bzrdir, revision, errors
+ from bzrlib import branch, revision, errors
from bzrlib.revisionspec import RevisionSpec
except ImportError:
pass
@@ -42,17 +42,14 @@ class bzr_source(converter_source):
try:
# access bzrlib stuff
- bzrdir
+ branch
except NameError:
raise NoRepo(_('Bazaar modules could not be loaded'))
path = os.path.abspath(path)
self._checkrepotype(path)
- try:
- self.sourcerepo = bzrdir.BzrDir.open(path).open_repository()
- except errors.NoRepositoryPresent:
- raise NoRepo(_('%s does not look like a Bazaar repository')
- % path)
+ self.branch = branch.Branch.open(path)
+ self.sourcerepo = self.branch.repository
self._parentids = {}
def _checkrepotype(self, path):
@@ -72,7 +69,7 @@ class bzr_source(converter_source):
self.ui.warn(_('warning: lightweight checkouts may cause '
'conversion failures, try with a regular '
'branch instead.\n'))
- except Exception:
+ except:
self.ui.note(_('bzr source type could not be determined\n'))
def before(self):
@@ -91,28 +88,16 @@ class bzr_source(converter_source):
def after(self):
self.sourcerepo.unlock()
- def _bzrbranches(self):
- return self.sourcerepo.find_branches(using=True)
-
def getheads(self):
if not self.rev:
- # Set using=True to avoid nested repositories (see issue3254)
- heads = sorted([b.last_revision() for b in self._bzrbranches()])
- else:
- revid = None
- for branch in self._bzrbranches():
- try:
- r = RevisionSpec.from_string(self.rev)
- info = r.in_history(branch)
- except errors.BzrError:
- pass
- revid = info.rev_id
- if revid is None:
- raise util.Abort(_('%s is not a valid revision') % self.rev)
- heads = [revid]
- # Empty repositories return 'null:', which cannot be retrieved
- heads = [h for h in heads if h != 'null:']
- return heads
+ return [self.branch.last_revision()]
+ try:
+ r = RevisionSpec.from_string(self.rev)
+ info = r.in_history(self.branch)
+ except errors.BzrError:
+ raise util.Abort(_('%s is not a valid revision in current branch')
+ % self.rev)
+ return [info.rev_id]
def getfile(self, name, rev):
revtree = self.sourcerepo.revision_tree(rev)
@@ -155,24 +140,20 @@ class bzr_source(converter_source):
parents = self._filterghosts(rev.parent_ids)
self._parentids[version] = parents
- branch = self.recode(rev.properties.get('branch-nick', u'default'))
- if branch == 'trunk':
- branch = 'default'
return commit(parents=parents,
date='%d %d' % (rev.timestamp, -rev.timezone),
author=self.recode(rev.committer),
+ # bzr returns bytestrings or unicode, depending on the content
desc=self.recode(rev.message),
- branch=branch,
rev=version)
def gettags(self):
+ if not self.branch.supports_tags():
+ return {}
+ tagdict = self.branch.tags.get_tag_dict()
bytetags = {}
- for branch in self._bzrbranches():
- if not branch.supports_tags():
- return {}
- tagdict = branch.tags.get_tag_dict()
- for name, rev in tagdict.iteritems():
- bytetags[self.recode(name)] = rev
+ for name, rev in tagdict.iteritems():
+ bytetags[self.recode(name)] = rev
return bytetags
def getchangedfiles(self, rev, i):
@@ -192,14 +173,8 @@ class bzr_source(converter_source):
revid = current._revision_id
changes = []
renames = {}
- seen = set()
- # Process the entries by reverse lexicographic name order to
- # handle nested renames correctly, most specific first.
- curchanges = sorted(current.iter_changes(origin),
- key=lambda c: c[1][0] or c[1][1],
- reverse=True)
for (fileid, paths, changed_content, versioned, parent, name,
- kind, executable) in curchanges:
+ kind, executable) in current.iter_changes(origin):
if paths[0] == u'' or paths[1] == u'':
# ignore changes to tree root
@@ -213,8 +188,7 @@ class bzr_source(converter_source):
# so it can be removed.
changes.append((self.recode(paths[0]), revid))
- if kind[0] == 'directory' and None not in paths:
- renaming = paths[0] != paths[1]
+ if None not in paths and paths[0] != paths[1]:
# neither an add nor an delete - a move
# rename all directory contents manually
subdir = origin.inventory.path2id(paths[0])
@@ -224,16 +198,6 @@ class bzr_source(converter_source):
if entry.kind == 'directory':
continue
frompath = self.recode(paths[0] + '/' + name)
- if frompath in seen:
- # Already handled by a more specific change entry
- # This is important when you have:
- # a => b
- # a/c => a/c
- # Here a/c must not be renamed into b/c
- continue
- seen.add(frompath)
- if not renaming:
- continue
topath = self.recode(paths[1] + '/' + name)
# register the files as changed
changes.append((frompath, revid))
@@ -250,12 +214,7 @@ class bzr_source(converter_source):
continue
# we got unicode paths, need to convert them
- path, topath = paths
- if path is not None:
- path = self.recode(path)
- if topath is not None:
- topath = self.recode(topath)
- seen.add(path or topath)
+ path, topath = [self.recode(part) for part in paths]
if topath is None:
# file deleted
@@ -283,3 +242,19 @@ class bzr_source(converter_source):
parentmap = self.sourcerepo.get_parent_map(ids)
parents = tuple([parent for parent in ids if parent in parentmap])
return parents
+
+ def recode(self, s, encoding=None):
+ """This version of recode tries to encode unicode to bytecode,
+ and preferably using the UTF-8 codec.
+ Other types than Unicode are silently returned, this is by
+ intention, e.g. the None-type is not going to be encoded but instead
+ just passed through
+ """
+ if not encoding:
+ encoding = self.encoding or 'utf-8'
+
+ if isinstance(s, unicode):
+ return s.encode(encoding)
+ else:
+ # leave it alone
+ return s
diff --git a/hgext/convert/common.py b/hgext/convert/common.py
index e30ef2d..29b01b5 100644
--- a/hgext/convert/common.py
+++ b/hgext/convert/common.py
@@ -11,8 +11,6 @@ import cPickle as pickle
from mercurial import util
from mercurial.i18n import _
-propertycache = util.propertycache
-
def encodeargs(args):
def encodearg(s):
lines = base64.encodestring(s)
@@ -76,7 +74,7 @@ class converter_source(object):
def getheads(self):
"""Return a list of this repository's heads"""
- raise NotImplementedError
+ raise NotImplementedError()
def getfile(self, name, rev):
"""Return a pair (data, mode) where data is the file content
@@ -84,7 +82,7 @@ class converter_source(object):
identifier returned by a previous call to getchanges(). Raise
IOError to indicate that name was deleted in rev.
"""
- raise NotImplementedError
+ raise NotImplementedError()
def getchanges(self, version):
"""Returns a tuple of (files, copies).
@@ -95,18 +93,18 @@ class converter_source(object):
copies is a dictionary of dest: source
"""
- raise NotImplementedError
+ raise NotImplementedError()
def getcommit(self, version):
"""Return the commit object for version"""
- raise NotImplementedError
+ raise NotImplementedError()
def gettags(self):
"""Return the tags as a dictionary of name: revision
Tag names must be UTF-8 strings.
"""
- raise NotImplementedError
+ raise NotImplementedError()
def recode(self, s, encoding=None):
if not encoding:
@@ -116,10 +114,10 @@ class converter_source(object):
return s.encode("utf-8")
try:
return s.decode(encoding).encode("utf-8")
- except UnicodeError:
+ except:
try:
return s.decode("latin-1").encode("utf-8")
- except UnicodeError:
+ except:
return s.decode(encoding, "replace").encode("utf-8")
def getchangedfiles(self, rev, i):
@@ -133,7 +131,7 @@ class converter_source(object):
This function is only needed to support --filemap
"""
- raise NotImplementedError
+ raise NotImplementedError()
def converted(self, rev, sinkrev):
'''Notify the source that a revision has been converted.'''
@@ -175,13 +173,13 @@ class converter_sink(object):
def getheads(self):
"""Return a list of this repository's heads"""
- raise NotImplementedError
+ raise NotImplementedError()
def revmapfile(self):
"""Path to a file that will contain lines
source_rev_id sink_rev_id
mapping equivalent revision identifiers for each system."""
- raise NotImplementedError
+ raise NotImplementedError()
def authorfile(self):
"""Path to a file that will contain lines
@@ -203,7 +201,7 @@ class converter_sink(object):
a particular revision (or even what that revision would be)
before it receives the file data.
"""
- raise NotImplementedError
+ raise NotImplementedError()
def puttags(self, tags):
"""Put tags into sink.
@@ -212,7 +210,7 @@ class converter_sink(object):
Return a pair (tag_revision, tag_parent_revision), or (None, None)
if nothing was changed.
"""
- raise NotImplementedError
+ raise NotImplementedError()
def setbranch(self, branch, pbranches):
"""Set the current branch name. Called before the first putcommit
@@ -245,10 +243,6 @@ class converter_sink(object):
"""
pass
- def hascommit(self, rev):
- """Return True if the sink contains rev"""
- raise NotImplementedError
-
class commandline(object):
def __init__(self, ui, command):
self.ui = ui
@@ -327,13 +321,15 @@ class commandline(object):
self.checkexit(status, ''.join(output))
return output
- @propertycache
- def argmax(self):
+ def getargmax(self):
+ if '_argmax' in self.__dict__:
+ return self._argmax
+
# POSIX requires at least 4096 bytes for ARG_MAX
- argmax = 4096
+ self._argmax = 4096
try:
- argmax = os.sysconf("SC_ARG_MAX")
- except (AttributeError, ValueError):
+ self._argmax = os.sysconf("SC_ARG_MAX")
+ except:
pass
# Windows shells impose their own limits on command line length,
@@ -343,11 +339,13 @@ class commandline(object):
# Since ARG_MAX is for command line _and_ environment, lower our limit
# (and make happy Windows shells while doing this).
- return argmax // 2 - 1
+
+ self._argmax = self._argmax / 2 - 1
+ return self._argmax
def limit_arglist(self, arglist, cmd, closestdin, *args, **kwargs):
cmdlen = len(self._cmdline(cmd, closestdin, *args, **kwargs))
- limit = self.argmax - cmdlen
+ limit = self.getargmax() - cmdlen
bytes = 0
fl = []
for fn in arglist:
@@ -385,12 +383,8 @@ class mapfile(dict):
raise
return
for i, line in enumerate(fp):
- line = line.splitlines()[0].rstrip()
- if not line:
- # Ignore blank lines
- continue
try:
- key, value = line.rsplit(' ', 1)
+ key, value = line.splitlines()[0].rsplit(' ', 1)
except ValueError:
raise util.Abort(
_('syntax error in %s(%d): key/value pair expected')
@@ -415,31 +409,3 @@ class mapfile(dict):
if self.fp:
self.fp.close()
self.fp = None
-
-def parsesplicemap(path):
- """Parse a splicemap, return a child/parents dictionary."""
- if not path:
- return {}
- m = {}
- try:
- fp = open(path, 'r')
- for i, line in enumerate(fp):
- line = line.splitlines()[0].rstrip()
- if not line:
- # Ignore blank lines
- continue
- try:
- child, parents = line.split(' ', 1)
- parents = parents.replace(',', ' ').split()
- except ValueError:
- raise util.Abort(_('syntax error in %s(%d): child parent1'
- '[,parent2] expected') % (path, i + 1))
- pp = []
- for p in parents:
- if p not in pp:
- pp.append(p)
- m[child] = pp
- except IOError, e:
- if e.errno != errno.ENOENT:
- raise
- return m
diff --git a/hgext/convert/convcmd.py b/hgext/convert/convcmd.py
index c8fe845..578272a 100644
--- a/hgext/convert/convcmd.py
+++ b/hgext/convert/convcmd.py
@@ -15,7 +15,7 @@ from monotone import monotone_source
from gnuarch import gnuarch_source
from bzr import bzr_source
from p4 import p4_source
-import filemap, common
+import filemap
import os, shutil
from mercurial import hg, util, encoding
@@ -118,7 +118,7 @@ class converter(object):
self.readauthormap(opts.get('authormap'))
self.authorfile = self.dest.authorfile()
- self.splicemap = common.parsesplicemap(opts.get('splicemap'))
+ self.splicemap = mapfile(ui, opts.get('splicemap'))
self.branchmap = mapfile(ui, opts.get('branchmap'))
def walktree(self, heads):
@@ -142,29 +142,6 @@ class converter(object):
return parents
- def mergesplicemap(self, parents, splicemap):
- """A splicemap redefines child/parent relationships. Check the
- map contains valid revision identifiers and merge the new
- links in the source graph.
- """
- for c in splicemap:
- if c not in parents:
- if not self.dest.hascommit(self.map.get(c, c)):
- # Could be in source but not converted during this run
- self.ui.warn(_('splice map revision %s is not being '
- 'converted, ignoring\n') % c)
- continue
- pc = []
- for p in splicemap[c]:
- # We do not have to wait for nodes already in dest.
- if self.dest.hascommit(self.map.get(p, p)):
- continue
- # Parent is not in dest and not being converted, not good
- if p not in parents:
- raise util.Abort(_('unknown splice map parent: %s') % p)
- pc.append(p)
- parents[c] = pc
-
def toposort(self, parents, sortmode):
'''Return an ordering such that every uncommitted changeset is
preceeded by all its uncommitted ancestors.'''
@@ -190,7 +167,7 @@ class converter(object):
children.setdefault(n, [])
hasparent = False
for p in parents[n]:
- if p not in self.map:
+ if not p in self.map:
visit.append(p)
hasparent = True
children.setdefault(p, []).append(n)
@@ -280,7 +257,7 @@ class converter(object):
def writeauthormap(self):
authorfile = self.authorfile
if authorfile:
- self.ui.status(_('writing author map file %s\n') % authorfile)
+ self.ui.status(_('Writing author map file %s\n') % authorfile)
ofile = open(authorfile, 'w+')
for author in self.authors:
ofile.write("%s=%s\n" % (author, self.authors[author]))
@@ -297,7 +274,7 @@ class converter(object):
try:
srcauthor, dstauthor = line.split('=', 1)
except ValueError:
- msg = _('ignoring bad line in author map file %s: %s\n')
+ msg = _('Ignoring bad line in author map file %s: %s\n')
self.ui.warn(msg % (authorfile, line.rstrip()))
continue
@@ -342,7 +319,7 @@ class converter(object):
self.commitcache[prev].branch))
self.dest.setbranch(commit.branch, pbranches)
try:
- parents = self.splicemap[rev]
+ parents = self.splicemap[rev].replace(',', ' ').split()
self.ui.status(_('spliced in %s as parents of %s\n') %
(parents, rev))
parents = [self.map.get(p, p) for p in parents]
@@ -363,7 +340,6 @@ class converter(object):
self.ui.status(_("scanning source...\n"))
heads = self.source.getheads()
parents = self.walktree(heads)
- self.mergesplicemap(parents, self.splicemap)
self.ui.status(_("sorting...\n"))
t = self.toposort(parents, sortmode)
num = len(t)
@@ -462,7 +438,7 @@ def convert(ui, src, dest=None, revmapfile=None, **opts):
if not revmapfile:
try:
revmapfile = destc.revmapfile()
- except Exception:
+ except:
revmapfile = os.path.join(destc, "map")
c = converter(ui, srcc, destc, revmapfile, opts)
diff --git a/hgext/convert/cvs.py b/hgext/convert/cvs.py
index 38b1d34..d07ea20 100644
--- a/hgext/convert/cvs.py
+++ b/hgext/convert/cvs.py
@@ -70,7 +70,7 @@ class convert_cvs(converter_source):
cs.author = self.recode(cs.author)
self.lastbranch[cs.branch] = id
cs.comment = self.recode(cs.comment)
- date = util.datestr(cs.date, '%Y-%m-%d %H:%M:%S %1%2')
+ date = util.datestr(cs.date)
self.tags.update(dict.fromkeys(cs.tags, id))
files = {}
@@ -121,13 +121,12 @@ class convert_cvs(converter_source):
pf = open(cvspass)
for line in pf.read().splitlines():
part1, part2 = line.split(' ', 1)
- # /1 :pserver:user@example.com:2401/cvsroot/foo
- # Ah<Z
if part1 == '/1':
+ # /1 :pserver:user@example.com:2401/cvsroot/foo Ah<Z
part1, part2 = part2.split(' ', 1)
format = format1
- # :pserver:user@example.com:/cvsroot/foo Ah<Z
else:
+ # :pserver:user@example.com:/cvsroot/foo Ah<Z
format = format0
if part1 == format:
passw = part2
diff --git a/hgext/convert/cvsps.py b/hgext/convert/cvsps.py
index 97184d5..1519d41 100644
--- a/hgext/convert/cvsps.py
+++ b/hgext/convert/cvsps.py
@@ -11,7 +11,6 @@ import cPickle as pickle
from mercurial import util
from mercurial.i18n import _
from mercurial import hook
-from mercurial import util
class logentry(object):
'''Class logentry has the following attributes:
@@ -336,8 +335,7 @@ def createlog(ui, directory=None, root="", rlog=True, cache=None):
else:
myrev = '.'.join(myrev[:-2] + ['0', myrev[-2]])
branches = [b for b in branchmap if branchmap[b] == myrev]
- assert len(branches) == 1, ('unknown branch: %s'
- % e.mergepoint)
+ assert len(branches) == 1, 'unknown branch: %s' % e.mergepoint
e.mergepoint = branches[0]
else:
e.mergepoint = None
@@ -364,14 +362,8 @@ def createlog(ui, directory=None, root="", rlog=True, cache=None):
elif state == 8:
# store commit log message
if re_31.match(line):
- cpeek = peek
- if cpeek.endswith('\n'):
- cpeek = cpeek[:-1]
- if re_50.match(cpeek):
- state = 5
- store = True
- else:
- e.comment.append(line)
+ state = 5
+ store = True
elif re_32.match(line):
state = 0
store = True
@@ -521,8 +513,8 @@ def createchangeset(ui, log, fuzz=60, mergefrom=None, mergeto=None):
e.comment == c.comment and
e.author == c.author and
e.branch == c.branch and
- (not util.safehasattr(e, 'branchpoints') or
- not util.safehasattr (c, 'branchpoints') or
+ (not hasattr(e, 'branchpoints') or
+ not hasattr (c, 'branchpoints') or
e.branchpoints == c.branchpoints) and
((c.date[0] + c.date[1]) <=
(e.date[0] + e.date[1]) <=
@@ -557,25 +549,27 @@ def createchangeset(ui, log, fuzz=60, mergefrom=None, mergeto=None):
# Sort files in each changeset
- def entitycompare(l, r):
- 'Mimic cvsps sorting order'
- l = l.file.split('/')
- r = r.file.split('/')
- nl = len(l)
- nr = len(r)
- n = min(nl, nr)
- for i in range(n):
- if i + 1 == nl and nl < nr:
- return -1
- elif i + 1 == nr and nl > nr:
- return +1
- elif l[i] < r[i]:
- return -1
- elif l[i] > r[i]:
- return +1
- return 0
-
for c in changesets:
+ def pathcompare(l, r):
+ 'Mimic cvsps sorting order'
+ l = l.split('/')
+ r = r.split('/')
+ nl = len(l)
+ nr = len(r)
+ n = min(nl, nr)
+ for i in range(n):
+ if i + 1 == nl and nl < nr:
+ return -1
+ elif i + 1 == nr and nl > nr:
+ return +1
+ elif l[i] < r[i]:
+ return -1
+ elif l[i] > r[i]:
+ return +1
+ return 0
+ def entitycompare(l, r):
+ return pathcompare(l.file, r.file)
+
c.entries.sort(entitycompare)
# Sort changesets by date
@@ -706,11 +700,11 @@ def createchangeset(ui, log, fuzz=60, mergefrom=None, mergeto=None):
if mergeto:
m = mergeto.search(c.comment)
if m:
- if m.groups():
+ try:
m = m.group(1)
if m == 'HEAD':
m = None
- else:
+ except:
m = None # if no group found then merge to HEAD
if m in branches and c.branch != m:
# insert empty changeset for merge
diff --git a/hgext/convert/darcs.py b/hgext/convert/darcs.py
index b10a533..38d79ba 100644
--- a/hgext/convert/darcs.py
+++ b/hgext/convert/darcs.py
@@ -24,7 +24,7 @@ except ImportError:
try:
from elementtree.ElementTree import ElementTree, XMLParser
except ImportError:
- pass
+ ElementTree = None
class darcs_source(converter_source, commandline):
def __init__(self, ui, path, rev=None):
@@ -42,7 +42,7 @@ class darcs_source(converter_source, commandline):
raise util.Abort(_('darcs version 2.1 or newer needed (found %r)') %
version)
- if "ElementTree" not in globals():
+ if ElementTree is None:
raise util.Abort(_("Python ElementTree module is not available"))
self.path = os.path.realpath(path)
@@ -139,7 +139,7 @@ class darcs_source(converter_source, commandline):
# etree can return unicode objects for name, comment, and author,
# so recode() is used to ensure str objects are emitted.
return commit(author=self.recode(elt.get('author')),
- date=util.datestr(date, '%Y-%m-%d %H:%M:%S %1%2'),
+ date=util.datestr(date),
desc=self.recode(desc).strip(),
parents=self.parents[rev])
diff --git a/hgext/convert/filemap.py b/hgext/convert/filemap.py
index c14df16..34033c7 100644
--- a/hgext/convert/filemap.py
+++ b/hgext/convert/filemap.py
@@ -99,8 +99,6 @@ class filemapper(object):
if newpre == '.':
return suf
if suf:
- if newpre.endswith('/'):
- return newpre + suf
return newpre + '/' + suf
return newpre
return name
@@ -294,34 +292,23 @@ class filemap_source(converter_source):
# A parent p is interesting if its mapped version (self.parentmap[p]):
# - is not SKIPREV
# - is still not in the list of parents (we don't want duplicates)
- # - is not an ancestor of the mapped versions of the other parents or
- # there is no parent in the same branch than the current revision.
+ # - is not an ancestor of the mapped versions of the other parents
mparents = []
- knownparents = set()
- branch = self.commits[rev].branch
- hasbranchparent = False
+ wp = None
for i, p1 in enumerate(parents):
mp1 = self.parentmap[p1]
- if mp1 == SKIPREV or mp1 in knownparents:
+ if mp1 == SKIPREV or mp1 in mparents:
continue
- isancestor = util.any(p2 for p2 in parents
- if p1 != p2 and mp1 != self.parentmap[p2]
- and mp1 in self.wantedancestors[p2])
- if not isancestor and not hasbranchparent and len(parents) > 1:
- # This could be expensive, avoid unnecessary calls.
- if self._cachedcommit(p1).branch == branch:
- hasbranchparent = True
- mparents.append((p1, mp1, i, isancestor))
- knownparents.add(mp1)
- # Discard parents ancestors of other parents if there is a
- # non-ancestor one on the same branch than current revision.
- if hasbranchparent:
- mparents = [p for p in mparents if not p[3]]
- wp = None
- if mparents:
- wp = max(p[2] for p in mparents)
- mparents = [p[1] for p in mparents]
- elif parents:
+ for p2 in parents:
+ if p1 == p2 or mp1 == self.parentmap[p2]:
+ continue
+ if mp1 in self.wantedancestors[p2]:
+ break
+ else:
+ mparents.append(mp1)
+ wp = i
+
+ if wp is None and parents:
wp = 0
self.origparents[rev] = parents
@@ -330,6 +317,7 @@ class filemap_source(converter_source):
if 'close' in self.commits[rev].extra:
# A branch closing revision is only useful if one of its
# parents belong to the branch being closed
+ branch = self.commits[rev].branch
pbranches = [self._cachedcommit(p).branch for p in mparents]
if branch in pbranches:
closed = True
@@ -357,12 +345,13 @@ class filemap_source(converter_source):
# able to get the files later on in getfile, we hide the
# original filename in the rev part of the return value.
changes, copies = self.base.getchanges(rev)
- files = {}
+ newnames = {}
+ files = []
for f, r in changes:
newf = self.filemapper(f)
- if newf and (newf != f or newf not in files):
- files[newf] = (f, r)
- files = sorted(files.items())
+ if newf:
+ files.append((newf, (f, r)))
+ newnames[f] = newf
ncopies = {}
for c in copies:
@@ -386,6 +375,3 @@ class filemap_source(converter_source):
def lookuprev(self, rev):
return self.base.lookuprev(rev)
-
- def getbookmarks(self):
- return self.base.getbookmarks()
diff --git a/hgext/convert/git.py b/hgext/convert/git.py
index 8058399..e35e128 100644
--- a/hgext/convert/git.py
+++ b/hgext/convert/git.py
@@ -16,7 +16,7 @@ class convert_git(converter_source):
# Windows does not support GIT_DIR= construct while other systems
# cannot remove environment variable. Just assume none have
# both issues.
- if util.safehasattr(os, 'unsetenv'):
+ if hasattr(os, 'unsetenv'):
def gitopen(self, s, noerr=False):
prevgitdir = os.environ.get('GIT_DIR')
os.environ['GIT_DIR'] = self.path
@@ -69,7 +69,7 @@ class convert_git(converter_source):
def catfile(self, rev, type):
if rev == hex(nullid):
- raise IOError
+ raise IOError()
data, ret = self.gitread("git cat-file %s %s" % (type, rev))
if ret:
raise util.Abort(_('cannot read %r object at %s') % (type, rev))
@@ -97,8 +97,6 @@ class convert_git(converter_source):
seen.add(f)
entry = entry.split()
h = entry[3]
- if entry[1] == '160000':
- raise util.Abort('git submodules are not supported!')
p = (entry[1] == "100755")
s = (entry[1] == "120000")
self.modecache[(f, h)] = (p and "x") or (s and "l") or ""
@@ -145,30 +143,20 @@ class convert_git(converter_source):
def gettags(self):
tags = {}
- alltags = {}
fh = self.gitopen('git ls-remote --tags "%s"' % self.path)
prefix = 'refs/tags/'
-
- # Build complete list of tags, both annotated and bare ones
for line in fh:
line = line.strip()
+ if not line.endswith("^{}"):
+ continue
node, tag = line.split(None, 1)
if not tag.startswith(prefix):
continue
- alltags[tag[len(prefix):]] = node
+ tag = tag[len(prefix):-3]
+ tags[tag] = node
if fh.close():
raise util.Abort(_('cannot read tags from %s') % self.path)
- # Filter out tag objects for annotated tag refs
- for tag in alltags:
- if tag.endswith('^{}'):
- tags[tag[:-3]] = alltags[tag]
- else:
- if tag + '^{}' in alltags:
- continue
- else:
- tags[tag] = alltags[tag]
-
return tags
def getchangedfiles(self, version, i):
@@ -181,8 +169,8 @@ class convert_git(converter_source):
m, f = l[:-1].split("\t")
changes.append(f)
else:
- fh = self.gitopen('git diff-tree --name-only --root -r %s '
- '"%s^%s" --' % (version, version, i + 1))
+ fh = self.gitopen('git diff-tree --name-only --root -r %s "%s^%s" --'
+ % (version, version, i + 1))
changes = [f.rstrip('\n') for f in fh]
if fh.close():
raise util.Abort(_('cannot read changes in %s') % version)
@@ -211,7 +199,7 @@ class convert_git(converter_source):
continue
name = '%s%s' % (reftype, name[prefixlen:])
bookmarks[name] = rev
- except Exception:
+ except:
pass
return bookmarks
diff --git a/hgext/convert/hg.py b/hgext/convert/hg.py
index 287c771..26c43a5 100644
--- a/hgext/convert/hg.py
+++ b/hgext/convert/hg.py
@@ -70,10 +70,10 @@ class mercurial_sink(converter_sink):
self.wlock.release()
def revmapfile(self):
- return self.repo.join("shamap")
+ return os.path.join(self.path, ".hg", "shamap")
def authorfile(self):
- return self.repo.join("authormap")
+ return os.path.join(self.path, ".hg", "authormap")
def getheads(self):
h = self.repo.changelog.heads()
@@ -95,7 +95,7 @@ class mercurial_sink(converter_sink):
self.after()
try:
self.repo = hg.repository(self.ui, branchpath)
- except Exception:
+ except:
self.repo = hg.repository(self.ui, branchpath, create=True)
self.before()
@@ -105,7 +105,7 @@ class mercurial_sink(converter_sink):
for b in pbranches:
try:
self.repo.lookup(b[0])
- except Exception:
+ except:
missings.setdefault(b[1], []).append(b[0])
if missings:
@@ -178,7 +178,7 @@ class mercurial_sink(converter_sink):
closed = 'close' in commit.extra
if not closed and not man.cmp(m1node, man.revision(mnode)):
self.ui.status(_("filtering out empty revision\n"))
- self.repo.rollback(force=True)
+ self.repo.rollback()
return parent
return p2
@@ -192,7 +192,7 @@ class mercurial_sink(converter_sink):
try:
oldlines = sorted(parentctx['.hgtags'].data().splitlines(True))
- except Exception:
+ except:
oldlines = []
newlines = sorted([("%s %s\n" % (tags[tag], tag)) for tag in tags])
@@ -223,12 +223,6 @@ class mercurial_sink(converter_sink):
self.repo._bookmarks[bookmark] = bin(updatedbookmark[bookmark])
bookmarks.write(self.repo)
- def hascommit(self, rev):
- if rev not in self.repo and self.clonebranches:
- raise util.Abort(_('revision %s not found in destination '
- 'repository (lookups with clonebranches=true '
- 'are not implemented)') % rev)
- return rev in self.repo
class mercurial_source(converter_source):
def __init__(self, ui, path, rev=None):
@@ -241,7 +235,7 @@ class mercurial_source(converter_source):
# try to provoke an exception if this isn't really a hg
# repo, but some other bogus compatible-looking url
if not self.repo.local():
- raise error.RepoError
+ raise error.RepoError()
except error.RepoError:
ui.traceback()
raise NoRepo(_("%s is not a local Mercurial repository") % path)
@@ -259,7 +253,7 @@ class mercurial_source(converter_source):
% startnode)
startrev = self.repo.changelog.rev(startnode)
children = {startnode: 1}
- for rev in self.repo.changelog.descendants([startrev]):
+ for rev in self.repo.changelog.descendants(startrev):
children[self.repo.changelog.node(rev)] = 1
self.keep = children.__contains__
else:
@@ -294,8 +288,7 @@ class mercurial_source(converter_source):
if not parents:
files = sorted(ctx.manifest())
# getcopies() is not needed for roots, but it is a simple way to
- # detect missing revlogs and abort on errors or populate
- # self.ignored
+ # detect missing revlogs and abort on errors or populate self.ignored
self.getcopies(ctx, parents, files)
return [(f, rev) for f in files if f not in self.ignored], {}
if self._changescache and self._changescache[0] == rev:
@@ -343,8 +336,7 @@ class mercurial_source(converter_source):
crev = rev
else:
crev = None
- return commit(author=ctx.user(),
- date=util.datestr(ctx.date(), '%Y-%m-%d %H:%M:%S %1%2'),
+ return commit(author=ctx.user(), date=util.datestr(ctx.date()),
desc=ctx.description(), rev=crev, parents=parents,
branch=ctx.branch(), extra=ctx.extra(),
sortkey=ctx.rev())
@@ -372,7 +364,8 @@ class mercurial_source(converter_source):
def converted(self, rev, destrev):
if self.convertfp is None:
- self.convertfp = open(self.repo.join('shamap'), 'a')
+ self.convertfp = open(os.path.join(self.path, '.hg', 'shamap'),
+ 'a')
self.convertfp.write('%s %s\n' % (destrev, rev))
self.convertfp.flush()
diff --git a/hgext/convert/monotone.py b/hgext/convert/monotone.py
index 969e0e5..c951089 100644
--- a/hgext/convert/monotone.py
+++ b/hgext/convert/monotone.py
@@ -30,7 +30,7 @@ class monotone_source(converter_source, commandline):
f = file(path, 'rb')
header = f.read(16)
f.close()
- except IOError:
+ except:
header = ''
if header != 'SQLite format 3\x00':
raise norepo
@@ -113,7 +113,7 @@ class monotone_source(converter_source, commandline):
stream = self.mtnreadfp.read(1)
if stream not in 'mewptl':
- raise util.Abort(_('bad mtn packet - bad stream type %s') % stream)
+ raise util.Abort(_('bad mtn packet - bad stream type %s' % stream))
read = self.mtnreadfp.read(1)
if read != ':':
@@ -283,11 +283,11 @@ class monotone_source(converter_source, commandline):
def getfile(self, name, rev):
if not self.mtnisfile(name, rev):
- raise IOError # file was deleted or renamed
+ raise IOError() # file was deleted or renamed
try:
data = self.mtnrun("get_file_of", name, r=rev)
- except Exception:
- raise IOError # file was deleted or renamed
+ except:
+ raise IOError() # file was deleted or renamed
self.mtnloadmanifest(rev)
node, attr = self.files.get(name, (None, ""))
return data, attr
@@ -317,7 +317,7 @@ class monotone_source(converter_source, commandline):
def getchangedfiles(self, rev, i):
# This function is only needed to support --filemap
# ... and we don't support that
- raise NotImplementedError
+ raise NotImplementedError()
def before(self):
# Check if we have a new enough version to use automate stdio
diff --git a/hgext/convert/p4.py b/hgext/convert/p4.py
index 76b28e7..5d640ad 100644
--- a/hgext/convert/p4.py
+++ b/hgext/convert/p4.py
@@ -119,8 +119,7 @@ class p4_source(converter_source):
parents = []
date = (int(d["time"]), 0) # timezone not set
- c = commit(author=self.recode(d["user"]),
- date=util.datestr(date, '%Y-%m-%d %H:%M:%S %1%2'),
+ c = commit(author=self.recode(d["user"]), date=util.datestr(date),
parents=parents, desc=desc, branch='',
extra={"p4": change})
diff --git a/hgext/convert/subversion.py b/hgext/convert/subversion.py
index 094988b..3e64ce6 100644
--- a/hgext/convert/subversion.py
+++ b/hgext/convert/subversion.py
@@ -2,14 +2,17 @@
#
# Copyright(C) 2007 Daniel Holth et al
-import os, re, sys, tempfile, urllib, urllib2, xml.dom.minidom
+import os
+import re
+import sys
import cPickle as pickle
+import tempfile
+import urllib
+import urllib2
from mercurial import strutil, scmutil, util, encoding
from mercurial.i18n import _
-propertycache = util.propertycache
-
# Subversion stuff. Works best with very recent Python SVN bindings
# e.g. SVN 1.5 or backports. Thanks to the bzr folks for enhancing
# these bindings.
@@ -47,21 +50,10 @@ def revsplit(rev):
mod = '/' + parts[1]
return parts[0][4:], mod, int(revnum)
-def quote(s):
- # As of svn 1.7, many svn calls expect "canonical" paths. In
- # theory, we should call svn.core.*canonicalize() on all paths
- # before passing them to the API. Instead, we assume the base url
- # is canonical and copy the behaviour of svn URL encoding function
- # so we can extend it safely with new components. The "safe"
- # characters were taken from the "svn_uri__char_validity" table in
- # libsvn_subr/path.c.
- return urllib.quote(s, "!$&'()*+,-./:=@_~")
-
def geturl(path):
try:
return svn.client.url_from_path(svn.core.svn_path_canonicalize(path))
except SubversionException:
- # svn.client.url_from_path() fails with local repositories
pass
if os.path.isdir(path):
path = os.path.normpath(os.path.abspath(path))
@@ -70,8 +62,8 @@ def geturl(path):
# Module URL is later compared with the repository URL returned
# by svn API, which is UTF-8.
path = encoding.tolocal(path)
- path = 'file://%s' % quote(path)
- return svn.core.svn_path_canonicalize(path)
+ return 'file://%s' % urllib.quote(path)
+ return path
def optrev(number):
optrev = svn.core.svn_opt_revision_t()
@@ -85,8 +77,8 @@ class changedpath(object):
self.copyfrom_rev = p.copyfrom_rev
self.action = p.action
-def get_log_child(fp, url, paths, start, end, limit=0,
- discover_changed_paths=True, strict_node_history=False):
+def get_log_child(fp, url, paths, start, end, limit=0, discover_changed_paths=True,
+ strict_node_history=False):
protocol = -1
def receiver(orig_paths, revnum, author, date, message, pool):
if orig_paths is not None:
@@ -103,11 +95,11 @@ def get_log_child(fp, url, paths, start, end, limit=0,
discover_changed_paths,
strict_node_history,
receiver)
+ except SubversionException, (inst, num):
+ pickle.dump(num, fp, protocol)
except IOError:
# Caller may interrupt the iteration
pickle.dump(None, fp, protocol)
- except Exception, inst:
- pickle.dump(str(inst), fp, protocol)
else:
pickle.dump(None, fp, protocol)
fp.close()
@@ -120,10 +112,6 @@ def debugsvnlog(ui, **opts):
"""Fetch SVN log in a subprocess and channel them back to parent to
avoid memory collection issues.
"""
- if svn is None:
- raise util.Abort(_('debugsvnlog could not load Subversion python '
- 'bindings'))
-
util.setbinary(sys.stdin)
util.setbinary(sys.stdout)
args = decodeargs(sys.stdin.read())
@@ -143,10 +131,10 @@ class logstream(object):
' hg executable is in PATH'))
try:
orig_paths, revnum, author, date, message = entry
- except (TypeError, ValueError):
+ except:
if entry is None:
break
- raise util.Abort(_("log stream exception '%s'") % entry)
+ raise SubversionException("child raised exception", entry)
yield entry
def close(self):
@@ -180,7 +168,7 @@ def httpcheck(ui, path, proto):
'know better.\n'))
return True
data = inst.fp.read()
- except Exception:
+ except:
# Could be urllib2.URLError if the URL is invalid or anything else.
return False
return '<m:human-readable errcode="160013">' in data
@@ -193,15 +181,12 @@ def issvnurl(ui, url):
try:
proto, path = url.split('://', 1)
if proto == 'file':
- if (os.name == 'nt' and path[:1] == '/' and path[1:2].isalpha()
- and path[2:6].lower() == '%3a/'):
- path = path[:2] + ':/' + path[6:]
path = urllib.url2pathname(path)
except ValueError:
proto = 'file'
path = os.path.abspath(url)
if proto == 'file':
- path = util.pconvert(path)
+ path = path.replace(os.sep, '/')
check = protomap.get(proto, lambda *args: False)
while '/' in path:
if check(ui, path, proto):
@@ -234,7 +219,7 @@ class svn_source(converter_source):
raise NoRepo(_("%s does not look like a Subversion repository")
% url)
if svn is None:
- raise MissingTool(_('could not load Subversion python bindings'))
+ raise MissingTool(_('Could not load Subversion python bindings'))
try:
version = svn.core.SVN_VER_MAJOR, svn.core.SVN_VER_MINOR
@@ -283,8 +268,7 @@ class svn_source(converter_source):
except ValueError:
raise util.Abort(_('svn: revision %s is not an integer') % rev)
- self.trunkname = self.ui.config('convert', 'svn.trunk',
- 'trunk').strip('/')
+ self.trunkname = self.ui.config('convert', 'svn.trunk', 'trunk').strip('/')
self.startrev = self.ui.config('convert', 'svn.startrev', default=0)
try:
self.startrev = int(self.startrev)
@@ -322,7 +306,7 @@ class svn_source(converter_source):
def exists(self, path, optrev):
try:
- svn.client.ls(self.url.rstrip('/') + '/' + quote(path),
+ svn.client.ls(self.url.rstrip('/') + '/' + urllib.quote(path),
optrev, False, self.ctx)
return True
except SubversionException:
@@ -374,7 +358,7 @@ class svn_source(converter_source):
# Check if branches bring a few more heads to the list
if branches:
rpath = self.url.strip('/')
- branchnames = svn.client.ls(rpath + '/' + quote(branches),
+ branchnames = svn.client.ls(rpath + '/' + urllib.quote(branches),
rev, False, self.ctx)
for branch in branchnames.keys():
module = '%s/%s/%s' % (oldmodule, branches, branch)
@@ -410,7 +394,7 @@ class svn_source(converter_source):
else:
# Perform a full checkout on roots
uuid, module, revnum = revsplit(rev)
- entries = svn.client.ls(self.baseurl + quote(module),
+ entries = svn.client.ls(self.baseurl + urllib.quote(module),
optrev(revnum), True, self.ctx)
files = [n for n, e in entries.iteritems()
if e.kind == svn.core.svn_node_file]
@@ -444,8 +428,6 @@ class svn_source(converter_source):
if revnum < stop:
stop = revnum + 1
self._fetch_revisions(revnum, stop)
- if rev not in self.commits:
- raise util.Abort(_('svn: revision %s not found') % revnum)
commit = self.commits[rev]
# caller caches the result, so free it here to release memory
del self.commits[rev]
@@ -519,11 +501,11 @@ class svn_source(converter_source):
and not p[2].startswith(badroot + '/')]
# Tell tag renamings from tag creations
- renamings = []
+ remainings = []
for source, sourcerev, dest in pendings:
tagname = dest.split('/')[-1]
if source.startswith(srctagspath):
- renamings.append([source, sourcerev, tagname])
+ remainings.append([source, sourcerev, tagname])
continue
if tagname in tags:
# Keep the latest tag value
@@ -539,7 +521,7 @@ class svn_source(converter_source):
# but were really created in the tag
# directory.
pass
- pendings = renamings
+ pendings = remainings
tagspath = srctagspath
finally:
stream.close()
@@ -560,47 +542,18 @@ class svn_source(converter_source):
def revnum(self, rev):
return int(rev.split('@')[-1])
- def latest(self, path, stop=None):
- """Find the latest revid affecting path, up to stop revision
- number. If stop is None, default to repository latest
- revision. It may return a revision in a different module,
- since a branch may be moved without a change being
- reported. Return None if computed module does not belong to
- rootmodule subtree.
+ def latest(self, path, stop=0):
+ """Find the latest revid affecting path, up to stop. It may return
+ a revision in a different module, since a branch may be moved without
+ a change being reported. Return None if computed module does not
+ belong to rootmodule subtree.
"""
- def findchanges(path, start, stop=None):
- stream = self._getlog([path], start, stop or 1)
- try:
- for entry in stream:
- paths, revnum, author, date, message = entry
- if stop is None and paths:
- # We do not know the latest changed revision,
- # keep the first one with changed paths.
- break
- if revnum <= stop:
- break
-
- for p in paths:
- if (not path.startswith(p) or
- not paths[p].copyfrom_path):
- continue
- newpath = paths[p].copyfrom_path + path[len(p):]
- self.ui.debug("branch renamed from %s to %s at %d\n" %
- (path, newpath, revnum))
- path = newpath
- break
- if not paths:
- revnum = None
- return revnum, path
- finally:
- stream.close()
-
if not path.startswith(self.rootmodule):
# Requests on foreign branches may be forbidden at server level
self.ui.debug('ignoring foreign branch %r\n' % path)
return None
- if stop is None:
+ if not stop:
stop = svn.ra.get_latest_revnum(self.ra)
try:
prevmodule = self.reparent('')
@@ -615,30 +568,34 @@ class svn_source(converter_source):
# stat() gives us the previous revision on this line of
# development, but it might be in *another module*. Fetch the
# log and detect renames down to the latest revision.
- revnum, realpath = findchanges(path, stop, dirent.created_rev)
- if revnum is None:
- # Tools like svnsync can create empty revision, when
- # synchronizing only a subtree for instance. These empty
- # revisions created_rev still have their original values
- # despite all changes having disappeared and can be
- # returned by ra.stat(), at least when stating the root
- # module. In that case, do not trust created_rev and scan
- # the whole history.
- revnum, realpath = findchanges(path, stop)
- if revnum is None:
- self.ui.debug('ignoring empty branch %r\n' % realpath)
- return None
+ stream = self._getlog([path], stop, dirent.created_rev)
+ try:
+ for entry in stream:
+ paths, revnum, author, date, message = entry
+ if revnum <= dirent.created_rev:
+ break
- if not realpath.startswith(self.rootmodule):
- self.ui.debug('ignoring foreign branch %r\n' % realpath)
+ for p in paths:
+ if not path.startswith(p) or not paths[p].copyfrom_path:
+ continue
+ newpath = paths[p].copyfrom_path + path[len(p):]
+ self.ui.debug("branch renamed from %s to %s at %d\n" %
+ (path, newpath, revnum))
+ path = newpath
+ break
+ finally:
+ stream.close()
+
+ if not path.startswith(self.rootmodule):
+ self.ui.debug('ignoring foreign branch %r\n' % path)
return None
- return self.revid(revnum, realpath)
+ return self.revid(dirent.created_rev, path)
def reparent(self, module):
"""Reparent the svn transport and return the previous parent."""
if self.prevmodule == module:
return module
- svnurl = self.baseurl + quote(module)
+ svnurl = self.baseurl + urllib.quote(module)
prevmodule = self.prevmodule
if prevmodule is None:
prevmodule = ''
@@ -813,7 +770,7 @@ class svn_source(converter_source):
branch = None
cset = commit(author=author,
- date=util.datestr(date, '%Y-%m-%d %H:%M:%S %1%2'),
+ date=util.datestr(date),
desc=log,
parents=parents,
branch=branch,
@@ -870,14 +827,13 @@ class svn_source(converter_source):
pass
except SubversionException, (inst, num):
if num == svn.core.SVN_ERR_FS_NO_SUCH_REVISION:
- raise util.Abort(_('svn: branch has no revision %s')
- % to_revnum)
+ raise util.Abort(_('svn: branch has no revision %s') % to_revnum)
raise
def getfile(self, file, rev):
# TODO: ra.get_file transmits the whole file instead of diffs.
if file in self.removed:
- raise IOError
+ raise IOError()
mode = ''
try:
new_module, revnum = revsplit(rev)[1:]
@@ -898,7 +854,7 @@ class svn_source(converter_source):
notfound = (svn.core.SVN_ERR_FS_NOT_FOUND,
svn.core.SVN_ERR_RA_DAV_PATH_NOT_FOUND)
if e.apr_err in notfound: # File not found
- raise IOError
+ raise IOError()
raise
if mode == 'l':
link_prefix = "link "
@@ -910,7 +866,7 @@ class svn_source(converter_source):
"""Enumerate all files in path at revnum, recursively."""
path = path.strip('/')
pool = Pool()
- rpath = '/'.join([self.baseurl, quote(path)]).strip('/')
+ rpath = '/'.join([self.baseurl, urllib.quote(path)]).strip('/')
entries = svn.client.ls(rpath, optrev(revnum), True, self.ctx, pool)
if path:
path += '/'
@@ -958,8 +914,8 @@ class svn_source(converter_source):
if not p.startswith('/'):
p = self.module + '/' + p
relpaths.append(p.strip('/'))
- args = [self.baseurl, relpaths, start, end, limit,
- discover_changed_paths, strict_node_history]
+ args = [self.baseurl, relpaths, start, end, limit, discover_changed_paths,
+ strict_node_history]
arg = encodeargs(args)
hgexe = util.hgexecutable()
cmd = '%s debugsvnlog' % util.shellquote(hgexe)
@@ -1020,25 +976,26 @@ class svn_sink(converter_sink, commandline):
self.wc = None
self.cwd = os.getcwd()
+ path = os.path.realpath(path)
+
created = False
if os.path.isfile(os.path.join(path, '.svn', 'entries')):
- self.wc = os.path.realpath(path)
+ self.wc = path
self.run0('update')
else:
- if not re.search(r'^(file|http|https|svn|svn\+ssh)\://', path):
- path = os.path.realpath(path)
- if os.path.isdir(os.path.dirname(path)):
- if not os.path.exists(os.path.join(path, 'db', 'fs-type')):
- ui.status(_('initializing svn repository %r\n') %
- os.path.basename(path))
- commandline(ui, 'svnadmin').run0('create', path)
- created = path
- path = util.normpath(path)
- if not path.startswith('/'):
- path = '/' + path
- path = 'file://' + path
-
wcpath = os.path.join(os.getcwd(), os.path.basename(path) + '-wc')
+
+ if os.path.isdir(os.path.dirname(path)):
+ if not os.path.exists(os.path.join(path, 'db', 'fs-type')):
+ ui.status(_('initializing svn repository %r\n') %
+ os.path.basename(path))
+ commandline(ui, 'svnadmin').run0('create', path)
+ created = path
+ path = util.normpath(path)
+ if not path.startswith('/'):
+ path = '/' + path
+ path = 'file://' + path
+
ui.status(_('initializing svn working copy %r\n')
% os.path.basename(wcpath))
self.run0('checkout', path, wcpath)
@@ -1062,29 +1019,6 @@ class svn_sink(converter_sink, commandline):
def wjoin(self, *names):
return os.path.join(self.wc, *names)
- @propertycache
- def manifest(self):
- # As of svn 1.7, the "add" command fails when receiving
- # already tracked entries, so we have to track and filter them
- # ourselves.
- m = set()
- output = self.run0('ls', recursive=True, xml=True)
- doc = xml.dom.minidom.parseString(output)
- for e in doc.getElementsByTagName('entry'):
- for n in e.childNodes:
- if n.nodeType != n.ELEMENT_NODE or n.tagName != 'name':
- continue
- name = ''.join(c.data for c in n.childNodes
- if c.nodeType == c.TEXT_NODE)
- # Entries are compared with names coming from
- # mercurial, so bytes with undefined encoding. Our
- # best bet is to assume they are in local
- # encoding. They will be passed to command line calls
- # later anyway, so they better be.
- m.add(encoding.tolocal(name.encode('utf-8')))
- break
- return m
-
def putfile(self, filename, flags, data):
if 'l' in flags:
self.wopener.symlink(data, filename)
@@ -1097,13 +1031,20 @@ class svn_sink(converter_sink, commandline):
self.wopener.write(filename, data)
if self.is_exec:
- if self.is_exec(self.wjoin(filename)):
- if 'x' not in flags:
- self.delexec.append(filename)
- else:
- if 'x' in flags:
- self.setexec.append(filename)
- util.setflags(self.wjoin(filename), False, 'x' in flags)
+ was_exec = self.is_exec(self.wjoin(filename))
+ else:
+ # On filesystems not supporting execute-bit, there is no way
+ # to know if it is set but asking subversion. Setting it
+ # systematically is just as expensive and much simpler.
+ was_exec = 'x' not in flags
+
+ util.setflags(self.wjoin(filename), False, 'x' in flags)
+ if was_exec:
+ if 'x' not in flags:
+ self.delexec.append(filename)
+ else:
+ if 'x' in flags:
+ self.setexec.append(filename)
def _copyfile(self, source, dest):
# SVN's copy command pukes if the destination file exists, but
@@ -1120,7 +1061,6 @@ class svn_sink(converter_sink, commandline):
try:
self.run0('copy', source, dest)
finally:
- self.manifest.add(dest)
if exists:
try:
os.unlink(wdest)
@@ -1139,16 +1079,13 @@ class svn_sink(converter_sink, commandline):
def add_dirs(self, files):
add_dirs = [d for d in sorted(self.dirs_of(files))
- if d not in self.manifest]
+ if not os.path.exists(self.wjoin(d, '.svn', 'entries'))]
if add_dirs:
- self.manifest.update(add_dirs)
self.xargs(add_dirs, 'add', non_recursive=True, quiet=True)
return add_dirs
def add_files(self, files):
- files = [f for f in files if f not in self.manifest]
if files:
- self.manifest.update(files)
self.xargs(files, 'add', quiet=True)
return files
@@ -1158,7 +1095,6 @@ class svn_sink(converter_sink, commandline):
wd = self.wjoin(d)
if os.listdir(wd) == '.svn':
self.run0('delete', d)
- self.manifest.remove(d)
deleted.append(d)
return deleted
@@ -1169,12 +1105,6 @@ class svn_sink(converter_sink, commandline):
return u"svn:%s@%s" % (self.uuid, rev)
def putcommit(self, files, copies, parents, commit, source, revmap):
- for parent in parents:
- try:
- return self.revid(self.childmap[parent])
- except KeyError:
- pass
-
# Apply changes to working copy
for f, v in files:
try:
@@ -1187,6 +1117,11 @@ class svn_sink(converter_sink, commandline):
self.copies.append([copies[f], f])
files = [f[0] for f in files]
+ for parent in parents:
+ try:
+ return self.revid(self.childmap[parent])
+ except KeyError:
+ pass
entries = set(self.delete)
files = frozenset(files)
entries.update(self.add_dirs(files.difference(entries)))
@@ -1196,8 +1131,6 @@ class svn_sink(converter_sink, commandline):
self.copies = []
if self.delete:
self.xargs(self.delete, 'delete')
- for f in self.delete:
- self.manifest.remove(f)
self.delete = []
entries.update(self.add_files(files.difference(entries)))
entries.update(self.tidy_dirs(entries))
@@ -1240,12 +1173,3 @@ class svn_sink(converter_sink, commandline):
def puttags(self, tags):
self.ui.warn(_('writing Subversion tags is not yet implemented\n'))
return None, None
-
- def hascommit(self, rev):
- # This is not correct as one can convert to an existing subversion
- # repository and childmap would not list all revisions. Too bad.
- if rev in self.childmap:
- return True
- raise util.Abort(_('splice map revision %s not found in subversion '
- 'child map (revision lookups are not implemented)')
- % rev)
diff --git a/hgext/convert/transport.py b/hgext/convert/transport.py
index 6a8c565..db68ede 100644
--- a/hgext/convert/transport.py
+++ b/hgext/convert/transport.py
@@ -15,9 +15,9 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-from mercurial import util
from svn.core import SubversionException, Pool
import svn.ra
import svn.client
@@ -54,7 +54,7 @@ def _create_auth_baton(pool):
if p:
providers.append(p)
else:
- if util.safehasattr(svn.client, 'get_windows_simple_provider'):
+ if hasattr(svn.client, 'get_windows_simple_provider'):
providers.append(svn.client.get_windows_simple_provider(pool))
return svn.core.svn_auth_open(providers, pool)
@@ -73,7 +73,7 @@ class SvnRaTransport(object):
self.password = ''
# Only Subversion 1.4 has reparent()
- if ra is None or not util.safehasattr(svn.ra, 'reparent'):
+ if ra is None or not hasattr(svn.ra, 'reparent'):
self.client = svn.client.create_context(self.pool)
ab = _create_auth_baton(self.pool)
if False:
@@ -85,7 +85,7 @@ class SvnRaTransport(object):
self.client.config = svn_config
try:
self.ra = svn.client.open_ra_session(
- self.svn_url,
+ self.svn_url.encode('utf8'),
self.client, self.pool)
except SubversionException, (inst, num):
if num in (svn.core.SVN_ERR_RA_ILLEGAL_URL,
diff --git a/hgext/eol.py b/hgext/eol.py
index 951922c..52592fa 100644
--- a/hgext/eol.py
+++ b/hgext/eol.py
@@ -52,10 +52,9 @@ Example versioned ``.hgeol`` file::
The rules will first apply when files are touched in the working
copy, e.g. by updating to null and back to tip to touch all files.
-The extension uses an optional ``[eol]`` section read from both the
-normal Mercurial configuration files and the ``.hgeol`` file, with the
-latter overriding the former. You can use that section to control the
-overall behavior. There are three settings:
+The extension uses an optional ``[eol]`` section in your hgrc file
+(not the ``.hgeol`` file) for settings that control the overall
+behavior. There are two settings:
- ``eol.native`` (default ``os.linesep``) can be set to ``LF`` or
``CRLF`` to override the default interpretation of ``native`` for
@@ -68,10 +67,6 @@ overall behavior. There are three settings:
Such files are normally not touched under the assumption that they
have mixed EOLs on purpose.
-- ``eol.fix-trailing-newline`` (default False) can be set to True to
- ensure that converted files end with a EOL character (either ``\\n``
- or ``\\r\\n`` as per the configured patterns).
-
The extension provides ``cleverencode:`` and ``cleverdecode:`` filters
like the deprecated win32text extension does. This means that you can
disable win32text and enable eol and your filters will still work. You
@@ -94,8 +89,6 @@ from mercurial.i18n import _
from mercurial import util, config, extensions, match, error
import re, os
-testedwith = 'internal'
-
# Matches a lone LF, i.e., one that is not part of CRLF.
singlelf = re.compile('(^|[^\r])\n')
# Matches a single EOL which can either be a CRLF where repeated CR
@@ -113,9 +106,6 @@ def tolf(s, params, ui, **kwargs):
return s
if ui.configbool('eol', 'only-consistent', True) and inconsistenteol(s):
return s
- if (ui.configbool('eol', 'fix-trailing-newline', False)
- and s and s[-1] != '\n'):
- s = s + '\n'
return eolre.sub('\n', s)
def tocrlf(s, params, ui, **kwargs):
@@ -124,9 +114,6 @@ def tocrlf(s, params, ui, **kwargs):
return s
if ui.configbool('eol', 'only-consistent', True) and inconsistenteol(s):
return s
- if (ui.configbool('eol', 'fix-trailing-newline', False)
- and s and s[-1] != '\n'):
- s = s + '\n'
return eolre.sub('\r\n', s)
def isbinary(s, params):
@@ -171,7 +158,7 @@ class eolfile(object):
# about inconsistent newlines.
self.match = match.match(root, '', [], include, exclude)
- def copytoui(self, ui):
+ def setfilters(self, ui):
for pattern, style in self.cfg.items('patterns'):
key = style.upper()
try:
@@ -180,9 +167,6 @@ class eolfile(object):
except KeyError:
ui.warn(_("ignoring unknown EOL style '%s' from %s\n")
% (style, self.cfg.source('patterns', pattern)))
- # eol.only-consistent can be specified in ~/.hgrc or .hgeol
- for k, v in self.cfg.items('eol'):
- ui.setconfig('eol', k, v)
def checkrev(self, repo, ctx, files):
failed = []
@@ -256,6 +240,7 @@ def checkheadshook(ui, repo, node, hooktype, **kwargs):
hook = checkheadshook
def preupdate(ui, repo, hooktype, parent1, parent2):
+ #print "preupdate for %s: %s -> %s" % (repo.root, parent1, parent2)
repo.loadeol([parent1])
return False
@@ -273,6 +258,7 @@ def extsetup(ui):
def reposetup(ui, repo):
uisetup(repo.ui)
+ #print "reposetup for", repo.root
if not repo.local():
return
@@ -287,7 +273,7 @@ def reposetup(ui, repo):
eol = parseeol(self.ui, self, nodes)
if eol is None:
return None
- eol.copytoui(self.ui)
+ eol.setfilters(self.ui)
return eol.match
def _hgcleardirstate(self):
@@ -317,7 +303,7 @@ def reposetup(ui, repo):
# again since the new .hgeol file might no
# longer match a file it matched before
self.dirstate.normallookup(f)
- # Create or touch the cache to update mtime
+ # Touch the cache to update mtime.
self.opener("eol.cache", "w").close()
wlock.release()
except error.LockUnavailable:
diff --git a/hgext/extdiff.py b/hgext/extdiff.py
index bae60e8..8c2519e 100644
--- a/hgext/extdiff.py
+++ b/hgext/extdiff.py
@@ -33,8 +33,7 @@ you do not need to type :hg:`extdiff -p kdiff3` always. ::
# (see http://www.vim.org/scripts/script.php?script_id=102) Non
# English user, be sure to put "let g:DirDiffDynamicDiffText = 1" in
# your .vimrc
- vimdiff = gvim -f "+next" \\
- "+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))"
+ vimdiff = gvim -f '+next' '+execute "DirDiff" argv(0) argv(1)'
Tool arguments can include variables that are expanded at runtime::
@@ -66,8 +65,6 @@ from mercurial.node import short, nullid
from mercurial import scmutil, scmutil, util, commands, encoding
import os, shlex, shutil, tempfile, re
-testedwith = 'internal'
-
def snapshot(ui, repo, files, node, tmproot):
'''snapshot files as of some revision
if not using snapshot, -I/-X does not work and recursive diff
@@ -90,7 +87,7 @@ def snapshot(ui, repo, files, node, tmproot):
ctx = repo[node]
for fn in files:
wfn = util.pconvert(fn)
- if wfn not in ctx:
+ if not wfn in ctx:
# File doesn't exist; could be a bogus modify
continue
ui.note(' %s\n' % wfn)
diff --git a/hgext/factotum.py b/hgext/factotum.py
deleted file mode 100644
index 098c5a2..0000000
--- a/hgext/factotum.py
+++ /dev/null
@@ -1,120 +0,0 @@
-# factotum.py - Plan 9 factotum integration for Mercurial
-#
-# Copyright (C) 2012 Steven Stallion <sstallion@gmail.com>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2 of the License, or (at your
-# option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-'''http authentication with factotum
-
-This extension allows the factotum(4) facility on Plan 9 from Bell Labs
-platforms to provide authentication information for HTTP access. Configuration
-entries specified in the auth section as well as authentication information
-provided in the repository URL are fully supported. If no prefix is specified,
-a value of "*" will be assumed.
-
-By default, keys are specified as::
-
- proto=pass service=hg prefix=<prefix> user=<username> !password=<password>
-
-If the factotum extension is unable to read the required key, one will be
-requested interactively.
-
-A configuration section is available to customize runtime behavior. By
-default, these entries are::
-
- [factotum]
- executable = /bin/auth/factotum
- mountpoint = /mnt/factotum
- service = hg
-
-The executable entry defines the full path to the factotum binary. The
-mountpoint entry defines the path to the factotum file service. Lastly, the
-service entry controls the service name used when reading keys.
-
-'''
-
-from mercurial.i18n import _
-from mercurial.url import passwordmgr
-from mercurial import httpconnection, urllib2, util
-import os
-
-ERRMAX = 128
-
-def auth_getkey(self, params):
- if not self.ui.interactive():
- raise util.Abort(_('factotum not interactive'))
- if 'user=' not in params:
- params = '%s user?' % params
- params = '%s !password?' % params
- os.system("%s -g '%s'" % (_executable, params))
-
-def auth_getuserpasswd(self, getkey, params):
- params = 'proto=pass %s' % params
- while True:
- fd = os.open('%s/rpc' % _mountpoint, os.O_RDWR)
- try:
- try:
- os.write(fd, 'start %s' % params)
- l = os.read(fd, ERRMAX).split()
- if l[0] == 'ok':
- os.write(fd, 'read')
- l = os.read(fd, ERRMAX).split()
- if l[0] == 'ok':
- return l[1:]
- except (OSError, IOError):
- raise util.Abort(_('factotum not responding'))
- finally:
- os.close(fd)
- getkey(self, params)
-
-def monkeypatch_method(cls):
- def decorator(func):
- setattr(cls, func.__name__, func)
- return func
- return decorator
-
-@monkeypatch_method(passwordmgr)
-def find_user_password(self, realm, authuri):
- user, passwd = urllib2.HTTPPasswordMgrWithDefaultRealm.find_user_password(
- self, realm, authuri)
- if user and passwd:
- self._writedebug(user, passwd)
- return (user, passwd)
-
- prefix = ''
- res = httpconnection.readauthforuri(self.ui, authuri, user)
- if res:
- _, auth = res
- prefix = auth.get('prefix')
- user, passwd = auth.get('username'), auth.get('password')
- if not user or not passwd:
- if not prefix:
- prefix = '*'
- params = 'service=%s prefix=%s' % (_service, prefix)
- if user:
- params = '%s user=%s' % (params, user)
- user, passwd = auth_getuserpasswd(self, auth_getkey, params)
-
- self.add_password(realm, authuri, user, passwd)
- self._writedebug(user, passwd)
- return (user, passwd)
-
-def uisetup(ui):
- global _executable
- _executable = ui.config('factotum', 'executable', '/bin/auth/factotum')
- global _mountpoint
- _mountpoint = ui.config('factotum', 'mountpoint', '/mnt/factotum')
- global _service
- _service = ui.config('factotum', 'service', 'hg')
diff --git a/hgext/fetch.py b/hgext/fetch.py
index 491d8b2..23061cd 100644
--- a/hgext/fetch.py
+++ b/hgext/fetch.py
@@ -5,15 +5,13 @@
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-'''pull, update and merge in one command (DEPRECATED)'''
+'''pull, update and merge in one command'''
from mercurial.i18n import _
from mercurial.node import nullid, short
from mercurial import commands, cmdutil, hg, util, error
from mercurial.lock import release
-testedwith = 'internal'
-
def fetch(ui, repo, source='default', **opts):
'''pull changes from a remote repository, merge new changes if needed.
@@ -25,9 +23,10 @@ def fetch(ui, repo, source='default', **opts):
Otherwise, the working directory is updated to include the new
changes.
- When a merge is needed, the working directory is first updated to
- the newly pulled changes. Local changes are then merged into the
- pulled changes. To switch the merge order, use --switch-parent.
+ When a merge occurs, the newly pulled changes are assumed to be
+ "authoritative". The head of the new changes is used as the first
+ parent, with local changes as the second. To switch the merge
+ order, use --switch-parent.
See :hg:`help dates` for a list of formats valid for -d/--date.
@@ -40,10 +39,7 @@ def fetch(ui, repo, source='default', **opts):
parent, p2 = repo.dirstate.parents()
branch = repo.dirstate.branch()
- try:
- branchnode = repo.branchtip(branch)
- except error.RepoLookupError:
- branchnode = None
+ branchnode = repo.branchtags().get(branch)
if parent != branchnode:
raise util.Abort(_('working dir not at branch tip '
'(use "hg update" to check out branch tip)'))
@@ -75,7 +71,7 @@ def fetch(ui, repo, source='default', **opts):
try:
revs = [other.lookup(rev) for rev in opts['rev']]
except error.CapabilityError:
- err = _("other repository doesn't support revision lookup, "
+ err = _("Other repository doesn't support revision lookup, "
"so a rev cannot be specified.")
raise util.Abort(err)
@@ -87,9 +83,9 @@ def fetch(ui, repo, source='default', **opts):
# Is this a simple fast-forward along the current branch?
newheads = repo.branchheads(branch)
newchildren = repo.changelog.nodesbetween([parent], newheads)[2]
- if len(newheads) == 1 and len(newchildren):
+ if len(newheads) == 1:
if newchildren[0] != parent:
- return hg.update(repo, newchildren[0])
+ return hg.clean(repo, newchildren[0])
else:
return 0
@@ -106,9 +102,6 @@ def fetch(ui, repo, source='default', **opts):
(len(newheads) - 1))
return 1
- if not newheads:
- return 0
-
# Otherwise, let's merge.
err = False
if newheads:
diff --git a/hgext/gpg.py b/hgext/gpg.py
index 2ded54c..3ffd836 100644
--- a/hgext/gpg.py
+++ b/hgext/gpg.py
@@ -12,7 +12,6 @@ from mercurial.i18n import _
cmdtable = {}
command = cmdutil.command(cmdtable)
-testedwith = 'internal'
class gpg(object):
def __init__(self, path, key=None):
@@ -44,7 +43,7 @@ class gpg(object):
try:
if f:
os.unlink(f)
- except OSError:
+ except:
pass
keys = []
key, fingerprint = None, None
@@ -164,7 +163,7 @@ def sigs(ui, repo):
r = "%5d:%s" % (rev, hgnode.hex(repo.changelog.node(rev)))
ui.write("%-30s %s\n" % (keystr(ui, k), r))
-@command("sigcheck", [], _('hg sigcheck REV'))
+@command("sigcheck", [], _('hg sigcheck REVISION'))
def check(ui, repo, rev):
"""verify all the signatures there may be for a particular revision"""
mygpg = newgpg(ui)
@@ -180,7 +179,7 @@ def check(ui, repo, rev):
keys.extend(k)
if not keys:
- ui.write(_("no valid signature for %s\n") % hgnode.short(rev))
+ ui.write(_("No valid signature for %s\n") % hgnode.short(rev))
return
# print summary
@@ -206,7 +205,7 @@ def keystr(ui, key):
('m', 'message', '',
_('commit message'), _('TEXT')),
] + commands.commitopts2,
- _('hg sign [OPTION]... [REV]...'))
+ _('hg sign [OPTION]... [REVISION]...'))
def sign(ui, repo, *revs, **opts):
"""add a signature for the current or given revision
@@ -237,7 +236,7 @@ def sign(ui, repo, *revs, **opts):
for n in nodes:
hexnode = hgnode.hex(n)
- ui.write(_("signing %d:%s\n") % (repo.changelog.rev(n),
+ ui.write(_("Signing %d:%s\n") % (repo.changelog.rev(n),
hgnode.short(n)))
# build data
data = node2txt(repo, n, sigver)
@@ -287,3 +286,4 @@ def node2txt(repo, node, ver):
return "%s\n" % hgnode.hex(node)
else:
raise util.Abort(_("unknown signature version"))
+
diff --git a/hgext/graphlog.py b/hgext/graphlog.py
index 9caed24..27366c1 100644
--- a/hgext/graphlog.py
+++ b/hgext/graphlog.py
@@ -12,36 +12,308 @@ commands. When this options is given, an ASCII representation of the
revision graph is also shown.
'''
+from mercurial.cmdutil import show_changeset
+from mercurial.commands import templateopts
from mercurial.i18n import _
-from mercurial import cmdutil, commands
+from mercurial.node import nullrev
+from mercurial import cmdutil, commands, extensions, scmutil
+from mercurial import hg, util, graphmod
cmdtable = {}
command = cmdutil.command(cmdtable)
-testedwith = 'internal'
+
+ASCIIDATA = 'ASC'
+
+def asciiedges(type, char, lines, seen, rev, parents):
+ """adds edge info to changelog DAG walk suitable for ascii()"""
+ if rev not in seen:
+ seen.append(rev)
+ nodeidx = seen.index(rev)
+
+ knownparents = []
+ newparents = []
+ for parent in parents:
+ if parent in seen:
+ knownparents.append(parent)
+ else:
+ newparents.append(parent)
+
+ ncols = len(seen)
+ nextseen = seen[:]
+ nextseen[nodeidx:nodeidx + 1] = newparents
+ edges = [(nodeidx, nextseen.index(p)) for p in knownparents]
+
+ while len(newparents) > 2:
+ # ascii() only knows how to add or remove a single column between two
+ # calls. Nodes with more than two parents break this constraint so we
+ # introduce intermediate expansion lines to grow the active node list
+ # slowly.
+ edges.append((nodeidx, nodeidx))
+ edges.append((nodeidx, nodeidx + 1))
+ nmorecols = 1
+ yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
+ char = '\\'
+ lines = []
+ nodeidx += 1
+ ncols += 1
+ edges = []
+ del newparents[0]
+
+ if len(newparents) > 0:
+ edges.append((nodeidx, nodeidx))
+ if len(newparents) > 1:
+ edges.append((nodeidx, nodeidx + 1))
+ nmorecols = len(nextseen) - ncols
+ seen[:] = nextseen
+ yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
+
+def fix_long_right_edges(edges):
+ for (i, (start, end)) in enumerate(edges):
+ if end > start:
+ edges[i] = (start, end + 1)
+
+def get_nodeline_edges_tail(
+ node_index, p_node_index, n_columns, n_columns_diff, p_diff, fix_tail):
+ if fix_tail and n_columns_diff == p_diff and n_columns_diff != 0:
+ # Still going in the same non-vertical direction.
+ if n_columns_diff == -1:
+ start = max(node_index + 1, p_node_index)
+ tail = ["|", " "] * (start - node_index - 1)
+ tail.extend(["/", " "] * (n_columns - start))
+ return tail
+ else:
+ return ["\\", " "] * (n_columns - node_index - 1)
+ else:
+ return ["|", " "] * (n_columns - node_index - 1)
+
+def draw_edges(edges, nodeline, interline):
+ for (start, end) in edges:
+ if start == end + 1:
+ interline[2 * end + 1] = "/"
+ elif start == end - 1:
+ interline[2 * start + 1] = "\\"
+ elif start == end:
+ interline[2 * start] = "|"
+ else:
+ if 2 * end >= len(nodeline):
+ continue
+ nodeline[2 * end] = "+"
+ if start > end:
+ (start, end) = (end, start)
+ for i in range(2 * start + 1, 2 * end):
+ if nodeline[i] != "+":
+ nodeline[i] = "-"
+
+def get_padding_line(ni, n_columns, edges):
+ line = []
+ line.extend(["|", " "] * ni)
+ if (ni, ni - 1) in edges or (ni, ni) in edges:
+ # (ni, ni - 1) (ni, ni)
+ # | | | | | | | |
+ # +---o | | o---+
+ # | | c | | c | |
+ # | |/ / | |/ /
+ # | | | | | |
+ c = "|"
+ else:
+ c = " "
+ line.extend([c, " "])
+ line.extend(["|", " "] * (n_columns - ni - 1))
+ return line
+
+def asciistate():
+ """returns the initial value for the "state" argument to ascii()"""
+ return [0, 0]
+
+def ascii(ui, state, type, char, text, coldata):
+ """prints an ASCII graph of the DAG
+
+ takes the following arguments (one call per node in the graph):
+
+ - ui to write to
+ - Somewhere to keep the needed state in (init to asciistate())
+ - Column of the current node in the set of ongoing edges.
+ - Type indicator of node data == ASCIIDATA.
+ - Payload: (char, lines):
+ - Character to use as node's symbol.
+ - List of lines to display as the node's text.
+ - Edges; a list of (col, next_col) indicating the edges between
+ the current node and its parents.
+ - Number of columns (ongoing edges) in the current revision.
+ - The difference between the number of columns (ongoing edges)
+ in the next revision and the number of columns (ongoing edges)
+ in the current revision. That is: -1 means one column removed;
+ 0 means no columns added or removed; 1 means one column added.
+ """
+
+ idx, edges, ncols, coldiff = coldata
+ assert -2 < coldiff < 2
+ if coldiff == -1:
+ # Transform
+ #
+ # | | | | | |
+ # o | | into o---+
+ # |X / |/ /
+ # | | | |
+ fix_long_right_edges(edges)
+
+ # add_padding_line says whether to rewrite
+ #
+ # | | | | | | | |
+ # | o---+ into | o---+
+ # | / / | | | # <--- padding line
+ # o | | | / /
+ # o | |
+ add_padding_line = (len(text) > 2 and coldiff == -1 and
+ [x for (x, y) in edges if x + 1 < y])
+
+ # fix_nodeline_tail says whether to rewrite
+ #
+ # | | o | | | | o | |
+ # | | |/ / | | |/ /
+ # | o | | into | o / / # <--- fixed nodeline tail
+ # | |/ / | |/ /
+ # o | | o | |
+ fix_nodeline_tail = len(text) <= 2 and not add_padding_line
+
+ # nodeline is the line containing the node character (typically o)
+ nodeline = ["|", " "] * idx
+ nodeline.extend([char, " "])
+
+ nodeline.extend(
+ get_nodeline_edges_tail(idx, state[1], ncols, coldiff,
+ state[0], fix_nodeline_tail))
+
+ # shift_interline is the line containing the non-vertical
+ # edges between this entry and the next
+ shift_interline = ["|", " "] * idx
+ if coldiff == -1:
+ n_spaces = 1
+ edge_ch = "/"
+ elif coldiff == 0:
+ n_spaces = 2
+ edge_ch = "|"
+ else:
+ n_spaces = 3
+ edge_ch = "\\"
+ shift_interline.extend(n_spaces * [" "])
+ shift_interline.extend([edge_ch, " "] * (ncols - idx - 1))
+
+ # draw edges from the current node to its parents
+ draw_edges(edges, nodeline, shift_interline)
+
+ # lines is the list of all graph lines to print
+ lines = [nodeline]
+ if add_padding_line:
+ lines.append(get_padding_line(idx, ncols, edges))
+ lines.append(shift_interline)
+
+ # make sure that there are as many graph lines as there are
+ # log strings
+ while len(text) < len(lines):
+ text.append("")
+ if len(lines) < len(text):
+ extra_interline = ["|", " "] * (ncols + coldiff)
+ while len(lines) < len(text):
+ lines.append(extra_interline)
+
+ # print lines
+ indentation_level = max(ncols, ncols + coldiff)
+ for (line, logstr) in zip(lines, text):
+ ln = "%-*s %s" % (2 * indentation_level, "".join(line), logstr)
+ ui.write(ln.rstrip() + '\n')
+
+ # ... and start over
+ state[0] = coldiff
+ state[1] = idx
+
+def get_revs(repo, rev_opt):
+ if rev_opt:
+ revs = scmutil.revrange(repo, rev_opt)
+ if len(revs) == 0:
+ return (nullrev, nullrev)
+ return (max(revs), min(revs))
+ else:
+ return (len(repo) - 1, 0)
+
+def check_unsupported_flags(pats, opts):
+ for op in ["follow_first", "copies", "newest_first"]:
+ if op in opts and opts[op]:
+ raise util.Abort(_("-G/--graph option is incompatible with --%s")
+ % op.replace("_", "-"))
+ if pats and opts.get('follow'):
+ raise util.Abort(_("-G/--graph option is incompatible with --follow "
+ "with file argument"))
+
+def revset(pats, opts):
+ """Return revset str built of revisions, log options and file patterns.
+ """
+ opt2revset = {
+ 'follow': (0, 'follow()'),
+ 'no_merges': (0, 'not merge()'),
+ 'only_merges': (0, 'merge()'),
+ 'removed': (0, 'removes("*")'),
+ 'date': (1, 'date($)'),
+ 'branch': (2, 'branch($)'),
+ 'exclude': (2, 'not file($)'),
+ 'include': (2, 'file($)'),
+ 'keyword': (2, 'keyword($)'),
+ 'only_branch': (2, 'branch($)'),
+ 'prune': (2, 'not ($ or ancestors($))'),
+ 'user': (2, 'user($)'),
+ }
+ optrevset = []
+ revset = []
+ for op, val in opts.iteritems():
+ if not val:
+ continue
+ if op == 'rev':
+ # Already a revset
+ revset.extend(val)
+ if op not in opt2revset:
+ continue
+ arity, revop = opt2revset[op]
+ revop = revop.replace('$', '%(val)r')
+ if arity == 0:
+ optrevset.append(revop)
+ elif arity == 1:
+ optrevset.append(revop % {'val': val})
+ else:
+ for f in val:
+ optrevset.append(revop % {'val': f})
+
+ for path in pats:
+ optrevset.append('file(%r)' % path)
+
+ if revset or optrevset:
+ if revset:
+ revset = ['(' + ' or '.join(revset) + ')']
+ if optrevset:
+ revset.append('(' + ' and '.join(optrevset) + ')')
+ revset = ' and '.join(revset)
+ else:
+ revset = 'all()'
+ return revset
+
+def generate(ui, dag, displayer, showparents, edgefn):
+ seen, state = [], asciistate()
+ for rev, type, ctx, parents in dag:
+ char = ctx.node() in showparents and '@' or 'o'
+ displayer.show(ctx)
+ lines = displayer.hunk.pop(rev).split('\n')[:-1]
+ displayer.flush(rev)
+ edges = edgefn(type, char, lines, seen, rev, parents)
+ for type, char, lines, coldata in edges:
+ ascii(ui, state, type, char, lines, coldata)
+ displayer.close()
@command('glog',
- [('f', 'follow', None,
- _('follow changeset history, or file history across copies and renames')),
- ('', 'follow-first', None,
- _('only follow the first parent of merge changesets (DEPRECATED)')),
- ('d', 'date', '', _('show revisions matching date spec'), _('DATE')),
- ('C', 'copies', None, _('show copied files')),
- ('k', 'keyword', [],
- _('do case-insensitive search for a given text'), _('TEXT')),
+ [('l', 'limit', '',
+ _('limit number of changes displayed'), _('NUM')),
+ ('p', 'patch', False, _('show patch')),
('r', 'rev', [], _('show the specified revision or range'), _('REV')),
- ('', 'removed', None, _('include revisions where files were removed')),
- ('m', 'only-merges', None, _('show only merges (DEPRECATED)')),
- ('u', 'user', [], _('revisions committed by user'), _('USER')),
- ('', 'only-branch', [],
- _('show only changesets within the given named branch (DEPRECATED)'),
- _('BRANCH')),
- ('b', 'branch', [],
- _('show changesets within the given named branch'), _('BRANCH')),
- ('P', 'prune', [],
- _('do not display revision or any of its ancestors'), _('REV')),
- ('', 'hidden', False, _('show hidden changesets (DEPRECATED)')),
- ] + commands.logopts + commands.walkopts,
- _('[OPTION]... [FILE]'))
+ ] + templateopts,
+ _('hg glog [OPTION]... [FILE]'))
def graphlog(ui, repo, *pats, **opts):
"""show revision history alongside an ASCII revision graph
@@ -51,4 +323,77 @@ def graphlog(ui, repo, *pats, **opts):
Nodes printed as an @ character are parents of the working
directory.
"""
- return cmdutil.graphlog(ui, repo, *pats, **opts)
+
+ check_unsupported_flags(pats, opts)
+
+ revs = sorted(scmutil.revrange(repo, [revset(pats, opts)]), reverse=1)
+ limit = cmdutil.loglimit(opts)
+ if limit is not None:
+ revs = revs[:limit]
+ revdag = graphmod.dagwalker(repo, revs)
+
+ displayer = show_changeset(ui, repo, opts, buffered=True)
+ showparents = [ctx.node() for ctx in repo[None].parents()]
+ generate(ui, revdag, displayer, showparents, asciiedges)
+
+def graphrevs(repo, nodes, opts):
+ limit = cmdutil.loglimit(opts)
+ nodes.reverse()
+ if limit is not None:
+ nodes = nodes[:limit]
+ return graphmod.nodes(repo, nodes)
+
+def goutgoing(ui, repo, dest=None, **opts):
+ """show the outgoing changesets alongside an ASCII revision graph
+
+ Print the outgoing changesets alongside a revision graph drawn with
+ ASCII characters.
+
+ Nodes printed as an @ character are parents of the working
+ directory.
+ """
+
+ check_unsupported_flags([], opts)
+ o = hg._outgoing(ui, repo, dest, opts)
+ if o is None:
+ return
+
+ revdag = graphrevs(repo, o, opts)
+ displayer = show_changeset(ui, repo, opts, buffered=True)
+ showparents = [ctx.node() for ctx in repo[None].parents()]
+ generate(ui, revdag, displayer, showparents, asciiedges)
+
+def gincoming(ui, repo, source="default", **opts):
+ """show the incoming changesets alongside an ASCII revision graph
+
+ Print the incoming changesets alongside a revision graph drawn with
+ ASCII characters.
+
+ Nodes printed as an @ character are parents of the working
+ directory.
+ """
+ def subreporecurse():
+ return 1
+
+ check_unsupported_flags([], opts)
+ def display(other, chlist, displayer):
+ revdag = graphrevs(other, chlist, opts)
+ showparents = [ctx.node() for ctx in repo[None].parents()]
+ generate(ui, revdag, displayer, showparents, asciiedges)
+
+ hg._incoming(display, subreporecurse, ui, repo, source, opts, buffered=True)
+
+def uisetup(ui):
+ '''Initialize the extension.'''
+ _wrapcmd('log', commands.table, graphlog)
+ _wrapcmd('incoming', commands.table, gincoming)
+ _wrapcmd('outgoing', commands.table, goutgoing)
+
+def _wrapcmd(cmd, table, wrapfn):
+ '''wrap the command'''
+ def graph(orig, *args, **kwargs):
+ if kwargs['graph']:
+ return wrapfn(*args, **kwargs)
+ return orig(*args, **kwargs)
+ entry = extensions.wrapcommand(table, cmd, graph)
+ entry[1].append(('G', 'graph', None, _("show the revision DAG")))
diff --git a/hgext/hgcia.py b/hgext/hgcia.py
index 075840a..6a3ea66 100644
--- a/hgext/hgcia.py
+++ b/hgext/hgcia.py
@@ -46,15 +46,17 @@ from mercurial.node import bin, short
from mercurial import cmdutil, patch, templater, util, mail
import email.Parser
-import socket, xmlrpclib
+import xmlrpclib
from xml.sax import saxutils
-testedwith = 'internal'
socket_timeout = 30 # seconds
-if util.safehasattr(socket, 'setdefaulttimeout'):
+try:
# set a timeout for the socket so you don't have to wait so looooong
# when cia.vc is having problems. requires python >= 2.3:
+ import socket
socket.setdefaulttimeout(socket_timeout)
+except:
+ pass
HGCIA_VERSION = '0.1'
HGCIA_URL = 'http://hg.kublai.com/mercurial/hgcia'
@@ -111,7 +113,7 @@ class ciamsg(object):
# diffstat is stupid
self.name = 'cia'
def write(self, data):
- self.lines += data.splitlines(True)
+ self.lines.append(data)
def close(self):
pass
diff --git a/hgext/hgk.py b/hgext/hgk.py
index 304b910..e57d1aa 100644
--- a/hgext/hgk.py
+++ b/hgext/hgk.py
@@ -39,8 +39,6 @@ from mercurial import commands, util, patch, revlog, scmutil
from mercurial.node import nullid, nullrev, short
from mercurial.i18n import _
-testedwith = 'internal'
-
def difftree(ui, repo, node1=None, node2=None, *files, **opts):
"""diff trees from two commits"""
def __difftree(repo, node1, node2, files=[]):
@@ -97,8 +95,7 @@ def catcommit(ui, repo, n, prefix, ctx=None):
nlprefix = '\n' + prefix
if ctx is None:
ctx = repo[n]
- # use ctx.node() instead ??
- ui.write("tree %s\n" % short(ctx.changeset()[0]))
+ ui.write("tree %s\n" % short(ctx.changeset()[0])) # use ctx.node() instead ??
for p in ctx.parents():
ui.write("parent %s\n" % p)
@@ -116,8 +113,7 @@ def catcommit(ui, repo, n, prefix, ctx=None):
ui.write("branch %s\n\n" % ctx.branch())
if prefix != "":
- ui.write("%s%s\n" % (prefix,
- description.replace('\n', nlprefix).strip()))
+ ui.write("%s%s\n" % (prefix, description.replace('\n', nlprefix).strip()))
else:
ui.write(description + "\n")
if prefix:
diff --git a/hgext/highlight/__init__.py b/hgext/highlight/__init__.py
index fc47815..55e3c18 100644
--- a/hgext/highlight/__init__.py
+++ b/hgext/highlight/__init__.py
@@ -24,7 +24,6 @@ The default is 'colorful'.
import highlight
from mercurial.hgweb import webcommands, webutil, common
from mercurial import extensions, encoding
-testedwith = 'internal'
def filerevision_highlight(orig, web, tmpl, fctx):
mt = ''.join(tmpl('mimetype', encoding=encoding.encoding))
@@ -52,13 +51,11 @@ def generate_css(web, req, tmpl):
pg_style = web.config('web', 'pygments_style', 'colorful')
fmter = highlight.HtmlFormatter(style = pg_style)
req.respond(common.HTTP_OK, 'text/css')
- return ['/* pygments_style = %s */\n\n' % pg_style,
- fmter.get_style_defs('')]
+ return ['/* pygments_style = %s */\n\n' % pg_style, fmter.get_style_defs('')]
def extsetup():
# monkeypatch in the new version
- extensions.wrapfunction(webcommands, '_filerevision',
- filerevision_highlight)
+ extensions.wrapfunction(webcommands, '_filerevision', filerevision_highlight)
extensions.wrapfunction(webcommands, 'annotate', annotate_highlight)
webcommands.highlightcss = generate_css
webcommands.__all__.append('highlightcss')
diff --git a/hgext/histedit.py b/hgext/histedit.py
deleted file mode 100644
index 88e0e93..0000000
--- a/hgext/histedit.py
+++ /dev/null
@@ -1,715 +0,0 @@
-# histedit.py - interactive history editing for mercurial
-#
-# Copyright 2009 Augie Fackler <raf@durin42.com>
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-"""interactive history editing
-
-With this extension installed, Mercurial gains one new command: histedit. Usage
-is as follows, assuming the following history::
-
- @ 3[tip] 7c2fd3b9020c 2009-04-27 18:04 -0500 durin42
- | Add delta
- |
- o 2 030b686bedc4 2009-04-27 18:04 -0500 durin42
- | Add gamma
- |
- o 1 c561b4e977df 2009-04-27 18:04 -0500 durin42
- | Add beta
- |
- o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42
- Add alpha
-
-If you were to run ``hg histedit c561b4e977df``, you would see the following
-file open in your editor::
-
- pick c561b4e977df Add beta
- pick 030b686bedc4 Add gamma
- pick 7c2fd3b9020c Add delta
-
- # Edit history between 633536316234 and 7c2fd3b9020c
- #
- # Commands:
- # p, pick = use commit
- # e, edit = use commit, but stop for amending
- # f, fold = use commit, but fold into previous commit
- # d, drop = remove commit from history
- # m, mess = edit message without changing commit content
- #
-
-In this file, lines beginning with ``#`` are ignored. You must specify a rule
-for each revision in your history. For example, if you had meant to add gamma
-before beta, and then wanted to add delta in the same revision as beta, you
-would reorganize the file to look like this::
-
- pick 030b686bedc4 Add gamma
- pick c561b4e977df Add beta
- fold 7c2fd3b9020c Add delta
-
- # Edit history between 633536316234 and 7c2fd3b9020c
- #
- # Commands:
- # p, pick = use commit
- # e, edit = use commit, but stop for amending
- # f, fold = use commit, but fold into previous commit
- # d, drop = remove commit from history
- # m, mess = edit message without changing commit content
- #
-
-At which point you close the editor and ``histedit`` starts working. When you
-specify a ``fold`` operation, ``histedit`` will open an editor when it folds
-those revisions together, offering you a chance to clean up the commit message::
-
- Add beta
- ***
- Add delta
-
-Edit the commit message to your liking, then close the editor. For
-this example, let's assume that the commit message was changed to
-``Add beta and delta.`` After histedit has run and had a chance to
-remove any old or temporary revisions it needed, the history looks
-like this::
-
- @ 2[tip] 989b4d060121 2009-04-27 18:04 -0500 durin42
- | Add beta and delta.
- |
- o 1 081603921c3f 2009-04-27 18:04 -0500 durin42
- | Add gamma
- |
- o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42
- Add alpha
-
-Note that ``histedit`` does *not* remove any revisions (even its own temporary
-ones) until after it has completed all the editing operations, so it will
-probably perform several strip operations when it's done. For the above example,
-it had to run strip twice. Strip can be slow depending on a variety of factors,
-so you might need to be a little patient. You can choose to keep the original
-revisions by passing the ``--keep`` flag.
-
-The ``edit`` operation will drop you back to a command prompt,
-allowing you to edit files freely, or even use ``hg record`` to commit
-some changes as a separate commit. When you're done, any remaining
-uncommitted changes will be committed as well. When done, run ``hg
-histedit --continue`` to finish this step. You'll be prompted for a
-new commit message, but the default commit message will be the
-original message for the ``edit`` ed revision.
-
-The ``message`` operation will give you a chance to revise a commit
-message without changing the contents. It's a shortcut for doing
-``edit`` immediately followed by `hg histedit --continue``.
-
-If ``histedit`` encounters a conflict when moving a revision (while
-handling ``pick`` or ``fold``), it'll stop in a similar manner to
-``edit`` with the difference that it won't prompt you for a commit
-message when done. If you decide at this point that you don't like how
-much work it will be to rearrange history, or that you made a mistake,
-you can use ``hg histedit --abort`` to abandon the new changes you
-have made and return to the state before you attempted to edit your
-history.
-
-If we clone the example repository above and add three more changes, such that
-we have the following history::
-
- @ 6[tip] 038383181893 2009-04-27 18:04 -0500 stefan
- | Add theta
- |
- o 5 140988835471 2009-04-27 18:04 -0500 stefan
- | Add eta
- |
- o 4 122930637314 2009-04-27 18:04 -0500 stefan
- | Add zeta
- |
- o 3 836302820282 2009-04-27 18:04 -0500 stefan
- | Add epsilon
- |
- o 2 989b4d060121 2009-04-27 18:04 -0500 durin42
- | Add beta and delta.
- |
- o 1 081603921c3f 2009-04-27 18:04 -0500 durin42
- | Add gamma
- |
- o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42
- Add alpha
-
-If you run ``hg histedit --outgoing`` on the clone then it is the same
-as running ``hg histedit 836302820282``. If you need plan to push to a
-repository that Mercurial does not detect to be related to the source
-repo, you can add a ``--force`` option.
-"""
-
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
-import tempfile
-import os
-
-from mercurial import bookmarks
-from mercurial import cmdutil
-from mercurial import discovery
-from mercurial import error
-from mercurial import hg
-from mercurial import lock as lockmod
-from mercurial import node
-from mercurial import patch
-from mercurial import repair
-from mercurial import scmutil
-from mercurial import util
-from mercurial.i18n import _
-
-cmdtable = {}
-command = cmdutil.command(cmdtable)
-
-testedwith = 'internal'
-
-editcomment = _("""# Edit history between %s and %s
-#
-# Commands:
-# p, pick = use commit
-# e, edit = use commit, but stop for amending
-# f, fold = use commit, but fold into previous commit (combines N and N-1)
-# d, drop = remove commit from history
-# m, mess = edit message without changing commit content
-#
-""")
-
-def between(repo, old, new, keep):
- revs = [old]
- current = old
- while current != new:
- ctx = repo[current]
- if not keep and len(ctx.children()) > 1:
- raise util.Abort(_('cannot edit history that would orphan nodes'))
- if len(ctx.parents()) != 1 and ctx.parents()[1] != node.nullid:
- raise util.Abort(_("can't edit history with merges"))
- if not ctx.children():
- current = new
- else:
- current = ctx.children()[0].node()
- revs.append(current)
- if len(repo[current].children()) and not keep:
- raise util.Abort(_('cannot edit history that would orphan nodes'))
- return revs
-
-
-def pick(ui, repo, ctx, ha, opts):
- oldctx = repo[ha]
- if oldctx.parents()[0] == ctx:
- ui.debug('node %s unchanged\n' % ha)
- return oldctx, [], [], []
- hg.update(repo, ctx.node())
- fd, patchfile = tempfile.mkstemp(prefix='hg-histedit-')
- fp = os.fdopen(fd, 'w')
- diffopts = patch.diffopts(ui, opts)
- diffopts.git = True
- diffopts.ignorews = False
- diffopts.ignorewsamount = False
- diffopts.ignoreblanklines = False
- gen = patch.diff(repo, oldctx.parents()[0].node(), ha, opts=diffopts)
- for chunk in gen:
- fp.write(chunk)
- fp.close()
- try:
- files = set()
- try:
- patch.patch(ui, repo, patchfile, files=files, eolmode=None)
- if not files:
- ui.warn(_('%s: empty changeset')
- % node.hex(ha))
- return ctx, [], [], []
- finally:
- os.unlink(patchfile)
- except Exception:
- raise util.Abort(_('Fix up the change and run '
- 'hg histedit --continue'))
- n = repo.commit(text=oldctx.description(), user=oldctx.user(),
- date=oldctx.date(), extra=oldctx.extra())
- return repo[n], [n], [oldctx.node()], []
-
-
-def edit(ui, repo, ctx, ha, opts):
- oldctx = repo[ha]
- hg.update(repo, ctx.node())
- fd, patchfile = tempfile.mkstemp(prefix='hg-histedit-')
- fp = os.fdopen(fd, 'w')
- diffopts = patch.diffopts(ui, opts)
- diffopts.git = True
- diffopts.ignorews = False
- diffopts.ignorewsamount = False
- diffopts.ignoreblanklines = False
- gen = patch.diff(repo, oldctx.parents()[0].node(), ha, opts=diffopts)
- for chunk in gen:
- fp.write(chunk)
- fp.close()
- try:
- files = set()
- try:
- patch.patch(ui, repo, patchfile, files=files, eolmode=None)
- finally:
- os.unlink(patchfile)
- except Exception:
- pass
- raise util.Abort(_('Make changes as needed, you may commit or record as '
- 'needed now.\nWhen you are finished, run hg'
- ' histedit --continue to resume.'))
-
-def fold(ui, repo, ctx, ha, opts):
- oldctx = repo[ha]
- hg.update(repo, ctx.node())
- fd, patchfile = tempfile.mkstemp(prefix='hg-histedit-')
- fp = os.fdopen(fd, 'w')
- diffopts = patch.diffopts(ui, opts)
- diffopts.git = True
- diffopts.ignorews = False
- diffopts.ignorewsamount = False
- diffopts.ignoreblanklines = False
- gen = patch.diff(repo, oldctx.parents()[0].node(), ha, opts=diffopts)
- for chunk in gen:
- fp.write(chunk)
- fp.close()
- try:
- files = set()
- try:
- patch.patch(ui, repo, patchfile, files=files, eolmode=None)
- if not files:
- ui.warn(_('%s: empty changeset')
- % node.hex(ha))
- return ctx, [], [], []
- finally:
- os.unlink(patchfile)
- except Exception:
- raise util.Abort(_('Fix up the change and run '
- 'hg histedit --continue'))
- n = repo.commit(text='fold-temp-revision %s' % ha, user=oldctx.user(),
- date=oldctx.date(), extra=oldctx.extra())
- return finishfold(ui, repo, ctx, oldctx, n, opts, [])
-
-def finishfold(ui, repo, ctx, oldctx, newnode, opts, internalchanges):
- parent = ctx.parents()[0].node()
- hg.update(repo, parent)
- fd, patchfile = tempfile.mkstemp(prefix='hg-histedit-')
- fp = os.fdopen(fd, 'w')
- diffopts = patch.diffopts(ui, opts)
- diffopts.git = True
- diffopts.ignorews = False
- diffopts.ignorewsamount = False
- diffopts.ignoreblanklines = False
- gen = patch.diff(repo, parent, newnode, opts=diffopts)
- for chunk in gen:
- fp.write(chunk)
- fp.close()
- files = set()
- try:
- patch.patch(ui, repo, patchfile, files=files, eolmode=None)
- finally:
- os.unlink(patchfile)
- newmessage = '\n***\n'.join(
- [ctx.description()] +
- [repo[r].description() for r in internalchanges] +
- [oldctx.description()]) + '\n'
- # If the changesets are from the same author, keep it.
- if ctx.user() == oldctx.user():
- username = ctx.user()
- else:
- username = ui.username()
- newmessage = ui.edit(newmessage, username)
- n = repo.commit(text=newmessage, user=username,
- date=max(ctx.date(), oldctx.date()), extra=oldctx.extra())
- return repo[n], [n], [oldctx.node(), ctx.node()], [newnode]
-
-def drop(ui, repo, ctx, ha, opts):
- return ctx, [], [repo[ha].node()], []
-
-
-def message(ui, repo, ctx, ha, opts):
- oldctx = repo[ha]
- hg.update(repo, ctx.node())
- fd, patchfile = tempfile.mkstemp(prefix='hg-histedit-')
- fp = os.fdopen(fd, 'w')
- diffopts = patch.diffopts(ui, opts)
- diffopts.git = True
- diffopts.ignorews = False
- diffopts.ignorewsamount = False
- diffopts.ignoreblanklines = False
- gen = patch.diff(repo, oldctx.parents()[0].node(), ha, opts=diffopts)
- for chunk in gen:
- fp.write(chunk)
- fp.close()
- try:
- files = set()
- try:
- patch.patch(ui, repo, patchfile, files=files, eolmode=None)
- finally:
- os.unlink(patchfile)
- except Exception:
- raise util.Abort(_('Fix up the change and run '
- 'hg histedit --continue'))
- message = oldctx.description() + '\n'
- message = ui.edit(message, ui.username())
- new = repo.commit(text=message, user=oldctx.user(), date=oldctx.date(),
- extra=oldctx.extra())
- newctx = repo[new]
- if oldctx.node() != newctx.node():
- return newctx, [new], [oldctx.node()], []
- # We didn't make an edit, so just indicate no replaced nodes
- return newctx, [new], [], []
-
-
-def makedesc(c):
- summary = ''
- if c.description():
- summary = c.description().splitlines()[0]
- line = 'pick %s %d %s' % (c.hex()[:12], c.rev(), summary)
- return line[:80] # trim to 80 chars so it's not stupidly wide in my editor
-
-actiontable = {'p': pick,
- 'pick': pick,
- 'e': edit,
- 'edit': edit,
- 'f': fold,
- 'fold': fold,
- 'd': drop,
- 'drop': drop,
- 'm': message,
- 'mess': message,
- }
-
-@command('histedit',
- [('', 'commands', '',
- _('Read history edits from the specified file.')),
- ('c', 'continue', False, _('continue an edit already in progress')),
- ('k', 'keep', False,
- _("don't strip old nodes after edit is complete")),
- ('', 'abort', False, _('abort an edit in progress')),
- ('o', 'outgoing', False, _('changesets not found in destination')),
- ('f', 'force', False,
- _('force outgoing even for unrelated repositories')),
- ('r', 'rev', [], _('first revision to be edited'))],
- _("[PARENT]"))
-def histedit(ui, repo, *parent, **opts):
- """interactively edit changeset history
- """
- # TODO only abort if we try and histedit mq patches, not just
- # blanket if mq patches are applied somewhere
- mq = getattr(repo, 'mq', None)
- if mq and mq.applied:
- raise util.Abort(_('source has mq patches applied'))
-
- parent = list(parent) + opts.get('rev', [])
- if opts.get('outgoing'):
- if len(parent) > 1:
- raise util.Abort(
- _('only one repo argument allowed with --outgoing'))
- elif parent:
- parent = parent[0]
-
- dest = ui.expandpath(parent or 'default-push', parent or 'default')
- dest, revs = hg.parseurl(dest, None)[:2]
- ui.status(_('comparing with %s\n') % util.hidepassword(dest))
-
- revs, checkout = hg.addbranchrevs(repo, repo, revs, None)
- other = hg.peer(repo, opts, dest)
-
- if revs:
- revs = [repo.lookup(rev) for rev in revs]
-
- parent = discovery.findcommonoutgoing(
- repo, other, [], force=opts.get('force')).missing[0:1]
- else:
- if opts.get('force'):
- raise util.Abort(_('--force only allowed with --outgoing'))
-
- if opts.get('continue', False):
- if len(parent) != 0:
- raise util.Abort(_('no arguments allowed with --continue'))
- (parentctxnode, created, replaced,
- tmpnodes, existing, rules, keep, tip, replacemap) = readstate(repo)
- currentparent, wantnull = repo.dirstate.parents()
- parentctx = repo[parentctxnode]
- # existing is the list of revisions initially considered by
- # histedit. Here we use it to list new changesets, descendants
- # of parentctx without an 'existing' changeset in-between. We
- # also have to exclude 'existing' changesets which were
- # previously dropped.
- descendants = set(c.node() for c in
- repo.set('(%n::) - %n', parentctxnode, parentctxnode))
- existing = set(existing)
- notdropped = set(n for n in existing if n in descendants and
- (n not in replacemap or replacemap[n] in descendants))
- # Discover any nodes the user has added in the interim. We can
- # miss changesets which were dropped and recreated the same.
- newchildren = list(c.node() for c in repo.set(
- 'sort(%ln - (%ln or %ln::))', descendants, existing, notdropped))
- action, currentnode = rules.pop(0)
- if action in ('f', 'fold'):
- tmpnodes.extend(newchildren)
- else:
- created.extend(newchildren)
-
- m, a, r, d = repo.status()[:4]
- oldctx = repo[currentnode]
- message = oldctx.description() + '\n'
- if action in ('e', 'edit', 'm', 'mess'):
- message = ui.edit(message, ui.username())
- elif action in ('f', 'fold'):
- message = 'fold-temp-revision %s' % currentnode
- new = None
- if m or a or r or d:
- new = repo.commit(text=message, user=oldctx.user(),
- date=oldctx.date(), extra=oldctx.extra())
-
- # If we're resuming a fold and we have new changes, mark the
- # replacements and finish the fold. If not, it's more like a
- # drop of the changesets that disappeared, and we can skip
- # this step.
- if action in ('f', 'fold') and (new or newchildren):
- if new:
- tmpnodes.append(new)
- else:
- new = newchildren[-1]
- (parentctx, created_, replaced_, tmpnodes_) = finishfold(
- ui, repo, parentctx, oldctx, new, opts, newchildren)
- replaced.extend(replaced_)
- created.extend(created_)
- tmpnodes.extend(tmpnodes_)
- elif action not in ('d', 'drop'):
- if new != oldctx.node():
- replaced.append(oldctx.node())
- if new:
- if new != oldctx.node():
- created.append(new)
- parentctx = repo[new]
-
- elif opts.get('abort', False):
- if len(parent) != 0:
- raise util.Abort(_('no arguments allowed with --abort'))
- (parentctxnode, created, replaced, tmpnodes,
- existing, rules, keep, tip, replacemap) = readstate(repo)
- ui.debug('restore wc to old tip %s\n' % node.hex(tip))
- hg.clean(repo, tip)
- ui.debug('should strip created nodes %s\n' %
- ', '.join([node.hex(n)[:12] for n in created]))
- ui.debug('should strip temp nodes %s\n' %
- ', '.join([node.hex(n)[:12] for n in tmpnodes]))
- for nodes in (created, tmpnodes):
- lock = None
- try:
- lock = repo.lock()
- for n in reversed(nodes):
- try:
- repair.strip(ui, repo, n)
- except error.LookupError:
- pass
- finally:
- lockmod.release(lock)
- os.unlink(os.path.join(repo.path, 'histedit-state'))
- return
- else:
- cmdutil.bailifchanged(repo)
- if os.path.exists(os.path.join(repo.path, 'histedit-state')):
- raise util.Abort(_('history edit already in progress, try '
- '--continue or --abort'))
-
- tip, empty = repo.dirstate.parents()
-
-
- if len(parent) != 1:
- raise util.Abort(_('histedit requires exactly one parent revision'))
- parent = scmutil.revsingle(repo, parent[0]).node()
-
- keep = opts.get('keep', False)
- revs = between(repo, parent, tip, keep)
-
- ctxs = [repo[r] for r in revs]
- existing = [r.node() for r in ctxs]
- rules = opts.get('commands', '')
- if not rules:
- rules = '\n'.join([makedesc(c) for c in ctxs])
- rules += '\n\n'
- rules += editcomment % (node.hex(parent)[:12], node.hex(tip)[:12])
- rules = ui.edit(rules, ui.username())
- # Save edit rules in .hg/histedit-last-edit.txt in case
- # the user needs to ask for help after something
- # surprising happens.
- f = open(repo.join('histedit-last-edit.txt'), 'w')
- f.write(rules)
- f.close()
- else:
- f = open(rules)
- rules = f.read()
- f.close()
- rules = [l for l in (r.strip() for r in rules.splitlines())
- if l and not l[0] == '#']
- rules = verifyrules(rules, repo, ctxs)
-
- parentctx = repo[parent].parents()[0]
- keep = opts.get('keep', False)
- replaced = []
- replacemap = {}
- tmpnodes = []
- created = []
-
-
- while rules:
- writestate(repo, parentctx.node(), created, replaced,
- tmpnodes, existing, rules, keep, tip, replacemap)
- action, ha = rules.pop(0)
- (parentctx, created_, replaced_, tmpnodes_) = actiontable[action](
- ui, repo, parentctx, ha, opts)
-
- if replaced_:
- clen, rlen = len(created_), len(replaced_)
- if clen == rlen == 1:
- ui.debug('histedit: exact replacement of %s with %s\n' % (
- node.short(replaced_[0]), node.short(created_[0])))
-
- replacemap[replaced_[0]] = created_[0]
- elif clen > rlen:
- assert rlen == 1, ('unexpected replacement of '
- '%d changes with %d changes' % (rlen, clen))
- # made more changesets than we're replacing
- # TODO synthesize patch names for created patches
- replacemap[replaced_[0]] = created_[-1]
- ui.debug('histedit: created many, assuming %s replaced by %s' %
- (node.short(replaced_[0]), node.short(created_[-1])))
- elif rlen > clen:
- if not created_:
- # This must be a drop. Try and put our metadata on
- # the parent change.
- assert rlen == 1
- r = replaced_[0]
- ui.debug('histedit: %s seems replaced with nothing, '
- 'finding a parent\n' % (node.short(r)))
- pctx = repo[r].parents()[0]
- if pctx.node() in replacemap:
- ui.debug('histedit: parent is already replaced\n')
- replacemap[r] = replacemap[pctx.node()]
- else:
- replacemap[r] = pctx.node()
- ui.debug('histedit: %s best replaced by %s\n' % (
- node.short(r), node.short(replacemap[r])))
- else:
- assert len(created_) == 1
- for r in replaced_:
- ui.debug('histedit: %s replaced by %s\n' % (
- node.short(r), node.short(created_[0])))
- replacemap[r] = created_[0]
- else:
- assert False, (
- 'Unhandled case in replacement mapping! '
- 'replacing %d changes with %d changes' % (rlen, clen))
- created.extend(created_)
- replaced.extend(replaced_)
- tmpnodes.extend(tmpnodes_)
-
- hg.update(repo, parentctx.node())
-
- if not keep:
- if replacemap:
- ui.note(_('histedit: Should update metadata for the following '
- 'changes:\n'))
-
- def copybms(old, new):
- if old in tmpnodes or old in created:
- # can't have any metadata we'd want to update
- return
- while new in replacemap:
- new = replacemap[new]
- ui.note(_('histedit: %s to %s\n') % (node.short(old),
- node.short(new)))
- octx = repo[old]
- marks = octx.bookmarks()
- if marks:
- ui.note(_('histedit: moving bookmarks %s\n') %
- ', '.join(marks))
- for mark in marks:
- repo._bookmarks[mark] = new
- bookmarks.write(repo)
-
- # We assume that bookmarks on the tip should remain
- # tipmost, but bookmarks on non-tip changesets should go
- # to their most reasonable successor. As a result, find
- # the old tip and new tip and copy those bookmarks first,
- # then do the rest of the bookmark copies.
- oldtip = sorted(replacemap.keys(), key=repo.changelog.rev)[-1]
- newtip = sorted(replacemap.values(), key=repo.changelog.rev)[-1]
- copybms(oldtip, newtip)
-
- for old, new in sorted(replacemap.iteritems()):
- copybms(old, new)
- # TODO update mq state
-
- ui.debug('should strip replaced nodes %s\n' %
- ', '.join([node.hex(n)[:12] for n in replaced]))
- lock = None
- try:
- lock = repo.lock()
- for n in sorted(replaced, key=lambda x: repo[x].rev()):
- try:
- repair.strip(ui, repo, n)
- except error.LookupError:
- pass
- finally:
- lockmod.release(lock)
-
- ui.debug('should strip temp nodes %s\n' %
- ', '.join([node.hex(n)[:12] for n in tmpnodes]))
- lock = None
- try:
- lock = repo.lock()
- for n in reversed(tmpnodes):
- try:
- repair.strip(ui, repo, n)
- except error.LookupError:
- pass
- finally:
- lockmod.release(lock)
- os.unlink(os.path.join(repo.path, 'histedit-state'))
- if os.path.exists(repo.sjoin('undo')):
- os.unlink(repo.sjoin('undo'))
-
-
-def writestate(repo, parentctxnode, created, replaced,
- tmpnodes, existing, rules, keep, oldtip, replacemap):
- fp = open(os.path.join(repo.path, 'histedit-state'), 'w')
- pickle.dump((parentctxnode, created, replaced,
- tmpnodes, existing, rules, keep, oldtip, replacemap),
- fp)
- fp.close()
-
-def readstate(repo):
- """Returns a tuple of (parentnode, created, replaced, tmp, existing, rules,
- keep, oldtip, replacemap ).
- """
- fp = open(os.path.join(repo.path, 'histedit-state'))
- return pickle.load(fp)
-
-
-def verifyrules(rules, repo, ctxs):
- """Verify that there exists exactly one edit rule per given changeset.
-
- Will abort if there are to many or too few rules, a malformed rule,
- or a rule on a changeset outside of the user-given range.
- """
- parsed = []
- if len(rules) != len(ctxs):
- raise util.Abort(_('must specify a rule for each changeset once'))
- for r in rules:
- if ' ' not in r:
- raise util.Abort(_('malformed line "%s"') % r)
- action, rest = r.split(' ', 1)
- if ' ' in rest.strip():
- ha, rest = rest.split(' ', 1)
- else:
- ha = r.strip()
- try:
- if repo[ha] not in ctxs:
- raise util.Abort(
- _('may not use changesets other than the ones listed'))
- except error.RepoError:
- raise util.Abort(_('unknown changeset %s listed') % ha)
- if action not in actiontable:
- raise util.Abort(_('unknown action "%s"') % action)
- parsed.append([action, ha])
- return parsed
diff --git a/hgext/inotify/__init__.py b/hgext/inotify/__init__.py
index 09c8bef..5e9f2cd 100644
--- a/hgext/inotify/__init__.py
+++ b/hgext/inotify/__init__.py
@@ -11,12 +11,9 @@
# todo: socket permissions
from mercurial.i18n import _
-from mercurial import util
import server
from client import client, QueryFailed
-testedwith = 'internal'
-
def serve(ui, repo, **opts):
'''start an inotify server for this repository'''
server.start(ui, repo.dirstate, repo.root, opts)
@@ -34,7 +31,7 @@ def debuginotify(ui, repo, **opts):
ui.write((' %s/\n') % path)
def reposetup(ui, repo):
- if not util.safehasattr(repo, 'dirstate'):
+ if not hasattr(repo, 'dirstate'):
return
class inotifydirstate(repo.dirstate.__class__):
@@ -48,8 +45,7 @@ def reposetup(ui, repo):
files = match.files()
if '.' in files:
files = []
- if (self._inotifyon and not ignored and not subrepos and
- not self._dirty):
+ if self._inotifyon and not ignored and not subrepos and not self._dirty:
cli = client(ui, repo)
try:
result = cli.statusquery(files, match, False,
diff --git a/hgext/inotify/linuxserver.py b/hgext/inotify/linuxserver.py
index a92b540..e2b9115 100644
--- a/hgext/inotify/linuxserver.py
+++ b/hgext/inotify/linuxserver.py
@@ -7,7 +7,7 @@
# GNU General Public License version 2 or any later version.
from mercurial.i18n import _
-from mercurial import osutil, util, error
+from mercurial import osutil, util
import server
import errno, os, select, stat, sys, time
@@ -431,10 +431,7 @@ class master(object):
def shutdown(self):
for obj in pollable.instances.itervalues():
- try:
- obj.shutdown()
- except error.SignalInterrupt:
- pass
+ obj.shutdown()
def run(self):
self.repowatcher.setup()
diff --git a/hgext/inotify/server.py b/hgext/inotify/server.py
index b654b17..b2dcaad 100644
--- a/hgext/inotify/server.py
+++ b/hgext/inotify/server.py
@@ -355,7 +355,7 @@ class socketlistener(object):
except (OSError, socket.error), inst:
try:
os.unlink(self.realsockpath)
- except OSError:
+ except:
pass
os.rmdir(tempdir)
if inst.errno == errno.EEXIST:
@@ -416,7 +416,7 @@ class socketlistener(object):
# try to send back our version to the client
# this way, the client too is informed of the mismatch
sock.sendall(chr(common.version))
- except socket.error:
+ except:
pass
return
diff --git a/hgext/interhg.py b/hgext/interhg.py
index a998a35..60c4255 100644
--- a/hgext/interhg.py
+++ b/hgext/interhg.py
@@ -28,8 +28,6 @@ from mercurial.hgweb import hgweb_mod
from mercurial import templatefilters, extensions
from mercurial.i18n import _
-testedwith = 'internal'
-
interhg_table = []
def uisetup(ui):
diff --git a/hgext/keyword.py b/hgext/keyword.py
index 54bab17..90654b9 100644
--- a/hgext/keyword.py
+++ b/hgext/keyword.py
@@ -1,6 +1,6 @@
# keyword.py - $Keyword$ expansion for Mercurial
#
-# Copyright 2007-2012 Christian Ebert <blacktrash@gmx.net>
+# Copyright 2007-2010 Christian Ebert <blacktrash@gmx.net>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
@@ -92,7 +92,6 @@ commands.optionalrepo += ' kwdemo'
cmdtable = {}
command = cmdutil.command(cmdtable)
-testedwith = 'internal'
# hg commands that do not act on keywords
nokwcommands = ('add addremove annotate bundle export grep incoming init log'
@@ -188,7 +187,7 @@ class kwtemplater(object):
self.repo = repo
self.match = match.match(repo.root, '', [], inc, exc)
self.restrict = kwtools['hgcmd'] in restricted.split()
- self.postcommit = False
+ self.record = False
kwmaps = self.ui.configitems('keywordmaps')
if kwmaps: # override default templates
@@ -238,26 +237,22 @@ class kwtemplater(object):
def iskwfile(self, cand, ctx):
'''Returns subset of candidates which are configured for keyword
- expansion but are not symbolic links.'''
- return [f for f in cand if self.match(f) and 'l' not in ctx.flags(f)]
+ expansion are not symbolic links.'''
+ return [f for f in cand if self.match(f) and not 'l' in ctx.flags(f)]
def overwrite(self, ctx, candidates, lookup, expand, rekw=False):
'''Overwrites selected files expanding/shrinking keywords.'''
- if self.restrict or lookup or self.postcommit: # exclude kw_copy
+ if self.restrict or lookup or self.record: # exclude kw_copy
candidates = self.iskwfile(candidates, ctx)
if not candidates:
return
kwcmd = self.restrict and lookup # kwexpand/kwshrink
if self.restrict or expand and lookup:
mf = ctx.manifest()
- if self.restrict or rekw:
- re_kw = self.rekw
- else:
- re_kw = self.rekwexp
- if expand:
- msg = _('overwriting %s expanding keywords\n')
- else:
- msg = _('overwriting %s shrinking keywords\n')
+ lctx = ctx
+ re_kw = (self.restrict or rekw) and self.rekw or self.rekwexp
+ msg = (expand and _('overwriting %s expanding keywords\n')
+ or _('overwriting %s shrinking keywords\n'))
for f in candidates:
if self.restrict:
data = self.repo.file(f).read(mf[f])
@@ -267,20 +262,21 @@ class kwtemplater(object):
continue
if expand:
if lookup:
- ctx = self.linkctx(f, mf[f])
- data, found = self.substitute(data, f, ctx, re_kw.subn)
+ lctx = self.linkctx(f, mf[f])
+ data, found = self.substitute(data, f, lctx, re_kw.subn)
elif self.restrict:
found = re_kw.search(data)
else:
data, found = _shrinktext(data, re_kw.subn)
if found:
self.ui.note(msg % f)
- fp = self.repo.wopener(f, "wb", atomictemp=True)
- fp.write(data)
- fp.close()
+ fpath = self.repo.wjoin(f)
+ mode = os.lstat(fpath).st_mode
+ self.repo.wwrite(f, data, ctx.flags(f))
+ os.chmod(fpath, mode)
if kwcmd:
self.repo.dirstate.normal(f)
- elif self.postcommit:
+ elif self.record:
self.repo.dirstate.normallookup(f)
def shrink(self, fname, text):
@@ -300,9 +296,7 @@ class kwtemplater(object):
def wread(self, fname, data):
'''If in restricted mode returns data read from wdir with
keyword substitutions removed.'''
- if self.restrict:
- return self.shrink(fname, data)
- return data
+ return self.restrict and self.shrink(fname, data) or data
class kwfilelog(filelog.filelog):
'''
@@ -331,11 +325,11 @@ class kwfilelog(filelog.filelog):
text = self.kwt.shrink(self.path, text)
return super(kwfilelog, self).cmp(node, text)
-def _status(ui, repo, wctx, kwt, *pats, **opts):
+def _status(ui, repo, kwt, *pats, **opts):
'''Bails out if [keyword] configuration is not active.
Returns status of working directory.'''
if kwt:
- return repo.status(match=scmutil.match(wctx, pats, opts), clean=True,
+ return repo.status(match=scmutil.match(repo[None], pats, opts), clean=True,
unknown=opts.get('unknown') or opts.get('all'))
if ui.configitems('keyword'):
raise util.Abort(_('[keyword] patterns cannot match'))
@@ -349,7 +343,7 @@ def _kwfwrite(ui, repo, expand, *pats, **opts):
kwt = kwtools['templater']
wlock = repo.wlock()
try:
- status = _status(ui, repo, wctx, kwt, *pats, **opts)
+ status = _status(ui, repo, kwt, *pats, **opts)
modified, added, removed, deleted, unknown, ignored, clean = status
if modified or added or removed or deleted:
raise util.Abort(_('outstanding uncommitted changes'))
@@ -421,10 +415,7 @@ def demo(ui, repo, *args, **opts):
ui.setconfig('keywordmaps', k, v)
else:
ui.status(_('\n\tconfiguration using current keyword template maps\n'))
- if uikwmaps:
- kwmaps = dict(uikwmaps)
- else:
- kwmaps = _defaultkwmaps(ui)
+ kwmaps = dict(uikwmaps) or _defaultkwmaps(ui)
uisetup(ui)
reposetup(ui, repo)
@@ -442,7 +433,7 @@ def demo(ui, repo, *args, **opts):
if name.split('.', 1)[0].find('commit') > -1:
repo.ui.setconfig('hooks', name, '')
msg = _('hg keyword configuration and expansion example')
- ui.note("hg ci -m '%s'\n" % msg) # check-code-ignore
+ ui.note("hg ci -m '%s'\n" % msg)
repo.commit(text=msg)
ui.status(_('\n\tkeywords expanded\n'))
ui.write(repo.wread(fn))
@@ -487,13 +478,13 @@ def files(ui, repo, *pats, **opts):
i = ignored (not tracked)
'''
kwt = kwtools['templater']
- wctx = repo[None]
- status = _status(ui, repo, wctx, kwt, *pats, **opts)
+ status = _status(ui, repo, kwt, *pats, **opts)
cwd = pats and repo.getcwd() or ''
modified, added, removed, deleted, unknown, ignored, clean = status
files = []
if not opts.get('unknown') or opts.get('all'):
files = sorted(modified + added + clean)
+ wctx = repo[None]
kwfiles = kwt.iskwfile(files, wctx)
kwdeleted = kwt.iskwfile(deleted, wctx)
kwunknown = kwt.iskwfile(unknown, wctx)
@@ -505,18 +496,11 @@ def files(ui, repo, *pats, **opts):
showfiles += ([f for f in files if f not in kwfiles],
[f for f in unknown if f not in kwunknown])
kwlabels = 'enabled deleted enabledunknown ignored ignoredunknown'.split()
- kwstates = zip(kwlabels, 'K!kIi', showfiles)
- fm = ui.formatter('kwfiles', opts)
- fmt = '%.0s%s\n'
- if opts.get('all') or ui.verbose:
- fmt = '%s %s\n'
- for kwstate, char, filenames in kwstates:
- label = 'kwfiles.' + kwstate
+ kwstates = zip('K!kIi', showfiles, kwlabels)
+ for char, filenames, kwstate in kwstates:
+ fmt = (opts.get('all') or ui.verbose) and '%s %%s\n' % char or '%s\n'
for f in filenames:
- fm.startitem()
- fm.write('kwstatus path', fmt, char,
- repo.pathto(f, cwd), label=label)
- fm.end()
+ ui.write(fmt % repo.pathto(f, cwd), label='kwfiles.' + kwstate)
@command('kwshrink', commands.walkopts, _('hg kwshrink [OPTION]... [FILE]...'))
def shrink(ui, repo, *pats, **opts):
@@ -590,7 +574,7 @@ def reposetup(ui, repo):
def kwcommitctx(self, ctx, error=False):
n = super(kwrepo, self).commitctx(ctx, error)
# no lock needed, only called from repo.commit() which already locks
- if not kwt.postcommit:
+ if not kwt.record:
restrict = kwt.restrict
kwt.restrict = True
kwt.overwrite(self[n], sorted(ctx.added() + ctx.modified()),
@@ -598,12 +582,12 @@ def reposetup(ui, repo):
kwt.restrict = restrict
return n
- def rollback(self, dryrun=False, force=False):
+ def rollback(self, dryrun=False):
wlock = self.wlock()
try:
if not dryrun:
changed = self['.'].files()
- ret = super(kwrepo, self).rollback(dryrun, force)
+ ret = super(kwrepo, self).rollback(dryrun)
if not dryrun:
ctx = self['.']
modified, added = _preselect(self[None].status(), changed)
@@ -632,21 +616,6 @@ def reposetup(ui, repo):
kwt.match = util.never
return orig(web, req, tmpl)
- def kw_amend(orig, ui, repo, commitfunc, old, extra, pats, opts):
- '''Wraps cmdutil.amend expanding keywords after amend.'''
- wlock = repo.wlock()
- try:
- kwt.postcommit = True
- newid = orig(ui, repo, commitfunc, old, extra, pats, opts)
- if newid != old.node():
- ctx = repo[newid]
- kwt.restrict = True
- kwt.overwrite(ctx, ctx.files(), False, True)
- kwt.restrict = False
- return newid
- finally:
- wlock.release()
-
def kw_copy(orig, ui, repo, pats, opts, rename=False):
'''Wraps cmdutil.copy so that copy/rename destinations do not
contain expanded keywords.
@@ -657,29 +626,25 @@ def reposetup(ui, repo):
For the latter we have to follow the symlink to find out whether its
target is configured for expansion and we therefore must unexpand the
keywords in the destination.'''
- wlock = repo.wlock()
- try:
- orig(ui, repo, pats, opts, rename)
- if opts.get('dry_run'):
- return
- wctx = repo[None]
- cwd = repo.getcwd()
-
- def haskwsource(dest):
- '''Returns true if dest is a regular file and configured for
- expansion or a symlink which points to a file configured for
- expansion. '''
- source = repo.dirstate.copied(dest)
- if 'l' in wctx.flags(source):
- source = scmutil.canonpath(repo.root, cwd,
- os.path.realpath(source))
- return kwt.match(source)
-
- candidates = [f for f in repo.dirstate.copies() if
- 'l' not in wctx.flags(f) and haskwsource(f)]
- kwt.overwrite(wctx, candidates, False, False)
- finally:
- wlock.release()
+ orig(ui, repo, pats, opts, rename)
+ if opts.get('dry_run'):
+ return
+ wctx = repo[None]
+ cwd = repo.getcwd()
+
+ def haskwsource(dest):
+ '''Returns true if dest is a regular file and configured for
+ expansion or a symlink which points to a file configured for
+ expansion. '''
+ source = repo.dirstate.copied(dest)
+ if 'l' in wctx.flags(source):
+ source = scmutil.canonpath(repo.root, cwd,
+ os.path.realpath(source))
+ return kwt.match(source)
+
+ candidates = [f for f in repo.dirstate.copies() if
+ not 'l' in wctx.flags(f) and haskwsource(f)]
+ kwt.overwrite(wctx, candidates, False, False)
def kw_dorecord(orig, ui, repo, commitfunc, *pats, **opts):
'''Wraps record.dorecord expanding keywords after recording.'''
@@ -687,7 +652,7 @@ def reposetup(ui, repo):
try:
# record returns 0 even when nothing has changed
# therefore compare nodes before and after
- kwt.postcommit = True
+ kwt.record = True
ctx = repo['.']
wstatus = repo[None].status()
ret = orig(ui, repo, commitfunc, *pats, **opts)
@@ -707,8 +672,7 @@ def reposetup(ui, repo):
# not make sense
if (fctx._filerev is None and
(self._repo._encodefilterpats or
- kwt.match(fctx.path()) and 'l' not in fctx.flags() or
- self.size() - 4 == fctx.size()) or
+ kwt.match(fctx.path()) and not 'l' in fctx.flags()) or
self.size() == fctx.size()):
return self._filelog.cmp(self._filenode, fctx.data())
return True
@@ -716,7 +680,6 @@ def reposetup(ui, repo):
extensions.wrapfunction(context.filectx, 'cmp', kwfilectx_cmp)
extensions.wrapfunction(patch.patchfile, '__init__', kwpatchfile_init)
extensions.wrapfunction(patch, 'diff', kw_diff)
- extensions.wrapfunction(cmdutil, 'amend', kw_amend)
extensions.wrapfunction(cmdutil, 'copy', kw_copy)
for c in 'annotate changeset rev filediff diff'.split():
extensions.wrapfunction(webcommands, c, kwweb_skip)
diff --git a/hgext/largefiles/CONTRIBUTORS b/hgext/largefiles/CONTRIBUTORS
deleted file mode 100644
index 9bef457..0000000
--- a/hgext/largefiles/CONTRIBUTORS
+++ /dev/null
@@ -1,4 +0,0 @@
-Greg Ward, author of the original bfiles extension
-Na'Tosha Bard of Unity Technologies
-Fog Creek Software
-Special thanks to the University of Toronto and the UCOSP program
diff --git a/hgext/largefiles/__init__.py b/hgext/largefiles/__init__.py
deleted file mode 100644
index 12c80fa..0000000
--- a/hgext/largefiles/__init__.py
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright 2009-2010 Gregory P. Ward
-# Copyright 2009-2010 Intelerad Medical Systems Incorporated
-# Copyright 2010-2011 Fog Creek Software
-# Copyright 2010-2011 Unity Technologies
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-'''track large binary files
-
-Large binary files tend to be not very compressible, not very
-diffable, and not at all mergeable. Such files are not handled
-efficiently by Mercurial's storage format (revlog), which is based on
-compressed binary deltas; storing large binary files as regular
-Mercurial files wastes bandwidth and disk space and increases
-Mercurial's memory usage. The largefiles extension addresses these
-problems by adding a centralized client-server layer on top of
-Mercurial: largefiles live in a *central store* out on the network
-somewhere, and you only fetch the revisions that you need when you
-need them.
-
-largefiles works by maintaining a "standin file" in .hglf/ for each
-largefile. The standins are small (41 bytes: an SHA-1 hash plus
-newline) and are tracked by Mercurial. Largefile revisions are
-identified by the SHA-1 hash of their contents, which is written to
-the standin. largefiles uses that revision ID to get/put largefile
-revisions from/to the central store. This saves both disk space and
-bandwidth, since you don't need to retrieve all historical revisions
-of large files when you clone or pull.
-
-To start a new repository or add new large binary files, just add
---large to your :hg:`add` command. For example::
-
- $ dd if=/dev/urandom of=randomdata count=2000
- $ hg add --large randomdata
- $ hg commit -m 'add randomdata as a largefile'
-
-When you push a changeset that adds/modifies largefiles to a remote
-repository, its largefile revisions will be uploaded along with it.
-Note that the remote Mercurial must also have the largefiles extension
-enabled for this to work.
-
-When you pull a changeset that affects largefiles from a remote
-repository, Mercurial behaves as normal. However, when you update to
-such a revision, any largefiles needed by that revision are downloaded
-and cached (if they have never been downloaded before). This means
-that network access may be required to update to changesets you have
-not previously updated to.
-
-If you already have large files tracked by Mercurial without the
-largefiles extension, you will need to convert your repository in
-order to benefit from largefiles. This is done with the
-:hg:`lfconvert` command::
-
- $ hg lfconvert --size 10 oldrepo newrepo
-
-In repositories that already have largefiles in them, any new file
-over 10MB will automatically be added as a largefile. To change this
-threshold, set ``largefiles.minsize`` in your Mercurial config file
-to the minimum size in megabytes to track as a largefile, or use the
---lfsize option to the add command (also in megabytes)::
-
- [largefiles]
- minsize = 2
-
- $ hg add --lfsize 2
-
-The ``largefiles.patterns`` config option allows you to specify a list
-of filename patterns (see :hg:`help patterns`) that should always be
-tracked as largefiles::
-
- [largefiles]
- patterns =
- *.jpg
- re:.*\.(png|bmp)$
- library.zip
- content/audio/*
-
-Files that match one of these patterns will be added as largefiles
-regardless of their size.
-
-The ``largefiles.minsize`` and ``largefiles.patterns`` config options
-will be ignored for any repositories not already containing a
-largefile. To add the first largefile to a repository, you must
-explicitly do so with the --large flag passed to the :hg:`add`
-command.
-'''
-
-from mercurial import commands
-
-import lfcommands
-import reposetup
-import uisetup
-
-testedwith = 'internal'
-
-reposetup = reposetup.reposetup
-uisetup = uisetup.uisetup
-
-commands.norepo += " lfconvert"
-
-cmdtable = lfcommands.cmdtable
diff --git a/hgext/largefiles/basestore.py b/hgext/largefiles/basestore.py
deleted file mode 100644
index 55aa4a0..0000000
--- a/hgext/largefiles/basestore.py
+++ /dev/null
@@ -1,195 +0,0 @@
-# Copyright 2009-2010 Gregory P. Ward
-# Copyright 2009-2010 Intelerad Medical Systems Incorporated
-# Copyright 2010-2011 Fog Creek Software
-# Copyright 2010-2011 Unity Technologies
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-'''base class for store implementations and store-related utility code'''
-
-import binascii
-import re
-
-from mercurial import util, node, hg
-from mercurial.i18n import _
-
-import lfutil
-
-class StoreError(Exception):
- '''Raised when there is a problem getting files from or putting
- files to a central store.'''
- def __init__(self, filename, hash, url, detail):
- self.filename = filename
- self.hash = hash
- self.url = url
- self.detail = detail
-
- def longmessage(self):
- if self.url:
- return ('%s: %s\n'
- '(failed URL: %s)\n'
- % (self.filename, self.detail, self.url))
- else:
- return ('%s: %s\n'
- '(no default or default-push path set in hgrc)\n'
- % (self.filename, self.detail))
-
- def __str__(self):
- return "%s: %s" % (self.url, self.detail)
-
-class basestore(object):
- def __init__(self, ui, repo, url):
- self.ui = ui
- self.repo = repo
- self.url = url
-
- def put(self, source, hash):
- '''Put source file into the store under <filename>/<hash>.'''
- raise NotImplementedError('abstract method')
-
- def exists(self, hashes):
- '''Check to see if the store contains the given hashes.'''
- raise NotImplementedError('abstract method')
-
- def get(self, files):
- '''Get the specified largefiles from the store and write to local
- files under repo.root. files is a list of (filename, hash)
- tuples. Return (success, missing), lists of files successfuly
- downloaded and those not found in the store. success is a list
- of (filename, hash) tuples; missing is a list of filenames that
- we could not get. (The detailed error message will already have
- been presented to the user, so missing is just supplied as a
- summary.)'''
- success = []
- missing = []
- ui = self.ui
-
- at = 0
- for filename, hash in files:
- ui.progress(_('getting largefiles'), at, unit='lfile',
- total=len(files))
- at += 1
- ui.note(_('getting %s:%s\n') % (filename, hash))
-
- storefilename = lfutil.storepath(self.repo, hash)
- tmpfile = util.atomictempfile(storefilename,
- createmode=self.repo.store.createmode)
-
- try:
- hhash = binascii.hexlify(self._getfile(tmpfile, filename, hash))
- except StoreError, err:
- ui.warn(err.longmessage())
- hhash = ""
-
- if hhash != hash:
- if hhash != "":
- ui.warn(_('%s: data corruption (expected %s, got %s)\n')
- % (filename, hash, hhash))
- tmpfile.discard() # no-op if it's already closed
- missing.append(filename)
- continue
-
- tmpfile.close()
- lfutil.linktousercache(self.repo, hash)
- success.append((filename, hhash))
-
- ui.progress(_('getting largefiles'), None)
- return (success, missing)
-
- def verify(self, revs, contents=False):
- '''Verify the existence (and, optionally, contents) of every big
- file revision referenced by every changeset in revs.
- Return 0 if all is well, non-zero on any errors.'''
- write = self.ui.write
- failed = False
-
- write(_('searching %d changesets for largefiles\n') % len(revs))
- verified = set() # set of (filename, filenode) tuples
-
- for rev in revs:
- cctx = self.repo[rev]
- cset = "%d:%s" % (cctx.rev(), node.short(cctx.node()))
-
- failed = util.any(self._verifyfile(
- cctx, cset, contents, standin, verified) for standin in cctx)
-
- numrevs = len(verified)
- numlfiles = len(set([fname for (fname, fnode) in verified]))
- if contents:
- write(_('verified contents of %d revisions of %d largefiles\n')
- % (numrevs, numlfiles))
- else:
- write(_('verified existence of %d revisions of %d largefiles\n')
- % (numrevs, numlfiles))
-
- return int(failed)
-
- def _getfile(self, tmpfile, filename, hash):
- '''Fetch one revision of one file from the store and write it
- to tmpfile. Compute the hash of the file on-the-fly as it
- downloads and return the binary hash. Close tmpfile. Raise
- StoreError if unable to download the file (e.g. it does not
- exist in the store).'''
- raise NotImplementedError('abstract method')
-
- def _verifyfile(self, cctx, cset, contents, standin, verified):
- '''Perform the actual verification of a file in the store.
- '''
- raise NotImplementedError('abstract method')
-
-import localstore, wirestore
-
-_storeprovider = {
- 'file': [localstore.localstore],
- 'http': [wirestore.wirestore],
- 'https': [wirestore.wirestore],
- 'ssh': [wirestore.wirestore],
- }
-
-_scheme_re = re.compile(r'^([a-zA-Z0-9+-.]+)://')
-
-# During clone this function is passed the src's ui object
-# but it needs the dest's ui object so it can read out of
-# the config file. Use repo.ui instead.
-def _openstore(repo, remote=None, put=False):
- ui = repo.ui
-
- if not remote:
- lfpullsource = getattr(repo, 'lfpullsource', None)
- if lfpullsource:
- path = ui.expandpath(lfpullsource)
- else:
- path = ui.expandpath('default-push', 'default')
-
- # ui.expandpath() leaves 'default-push' and 'default' alone if
- # they cannot be expanded: fallback to the empty string,
- # meaning the current directory.
- if path == 'default-push' or path == 'default':
- path = ''
- remote = repo
- else:
- remote = hg.peer(repo, {}, path)
-
- # The path could be a scheme so use Mercurial's normal functionality
- # to resolve the scheme to a repository and use its path
- path = util.safehasattr(remote, 'url') and remote.url() or remote.path
-
- match = _scheme_re.match(path)
- if not match: # regular filesystem path
- scheme = 'file'
- else:
- scheme = match.group(1)
-
- try:
- storeproviders = _storeprovider[scheme]
- except KeyError:
- raise util.Abort(_('unsupported URL scheme %r') % scheme)
-
- for classobj in storeproviders:
- try:
- return classobj(ui, repo, remote)
- except lfutil.storeprotonotcapable:
- pass
-
- raise util.Abort(_('%s does not appear to be a largefile store') % path)
diff --git a/hgext/largefiles/lfcommands.py b/hgext/largefiles/lfcommands.py
deleted file mode 100644
index de42edd..0000000
--- a/hgext/largefiles/lfcommands.py
+++ /dev/null
@@ -1,549 +0,0 @@
-# Copyright 2009-2010 Gregory P. Ward
-# Copyright 2009-2010 Intelerad Medical Systems Incorporated
-# Copyright 2010-2011 Fog Creek Software
-# Copyright 2010-2011 Unity Technologies
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-'''High-level command function for lfconvert, plus the cmdtable.'''
-
-import os
-import shutil
-
-from mercurial import util, match as match_, hg, node, context, error, \
- cmdutil, scmutil
-from mercurial.i18n import _
-from mercurial.lock import release
-
-import lfutil
-import basestore
-
-# -- Commands ----------------------------------------------------------
-
-def lfconvert(ui, src, dest, *pats, **opts):
- '''convert a normal repository to a largefiles repository
-
- Convert repository SOURCE to a new repository DEST, identical to
- SOURCE except that certain files will be converted as largefiles:
- specifically, any file that matches any PATTERN *or* whose size is
- above the minimum size threshold is converted as a largefile. The
- size used to determine whether or not to track a file as a
- largefile is the size of the first version of the file. The
- minimum size can be specified either with --size or in
- configuration as ``largefiles.size``.
-
- After running this command you will need to make sure that
- largefiles is enabled anywhere you intend to push the new
- repository.
-
- Use --to-normal to convert largefiles back to normal files; after
- this, the DEST repository can be used without largefiles at all.'''
-
- if opts['to_normal']:
- tolfile = False
- else:
- tolfile = True
- size = lfutil.getminsize(ui, True, opts.get('size'), default=None)
-
- if not hg.islocal(src):
- raise util.Abort(_('%s is not a local Mercurial repo') % src)
- if not hg.islocal(dest):
- raise util.Abort(_('%s is not a local Mercurial repo') % dest)
-
- rsrc = hg.repository(ui, src)
- ui.status(_('initializing destination %s\n') % dest)
- rdst = hg.repository(ui, dest, create=True)
-
- success = False
- dstwlock = dstlock = None
- try:
- # Lock destination to prevent modification while it is converted to.
- # Don't need to lock src because we are just reading from its history
- # which can't change.
- dstwlock = rdst.wlock()
- dstlock = rdst.lock()
-
- # Get a list of all changesets in the source. The easy way to do this
- # is to simply walk the changelog, using changelog.nodesbewteen().
- # Take a look at mercurial/revlog.py:639 for more details.
- # Use a generator instead of a list to decrease memory usage
- ctxs = (rsrc[ctx] for ctx in rsrc.changelog.nodesbetween(None,
- rsrc.heads())[0])
- revmap = {node.nullid: node.nullid}
- if tolfile:
- lfiles = set()
- normalfiles = set()
- if not pats:
- pats = ui.configlist(lfutil.longname, 'patterns', default=[])
- if pats:
- matcher = match_.match(rsrc.root, '', list(pats))
- else:
- matcher = None
-
- lfiletohash = {}
- for ctx in ctxs:
- ui.progress(_('converting revisions'), ctx.rev(),
- unit=_('revision'), total=rsrc['tip'].rev())
- _lfconvert_addchangeset(rsrc, rdst, ctx, revmap,
- lfiles, normalfiles, matcher, size, lfiletohash)
- ui.progress(_('converting revisions'), None)
-
- if os.path.exists(rdst.wjoin(lfutil.shortname)):
- shutil.rmtree(rdst.wjoin(lfutil.shortname))
-
- for f in lfiletohash.keys():
- if os.path.isfile(rdst.wjoin(f)):
- os.unlink(rdst.wjoin(f))
- try:
- os.removedirs(os.path.dirname(rdst.wjoin(f)))
- except OSError:
- pass
-
- # If there were any files converted to largefiles, add largefiles
- # to the destination repository's requirements.
- if lfiles:
- rdst.requirements.add('largefiles')
- rdst._writerequirements()
- else:
- for ctx in ctxs:
- ui.progress(_('converting revisions'), ctx.rev(),
- unit=_('revision'), total=rsrc['tip'].rev())
- _addchangeset(ui, rsrc, rdst, ctx, revmap)
-
- ui.progress(_('converting revisions'), None)
- success = True
- finally:
- rdst.dirstate.clear()
- release(dstlock, dstwlock)
- if not success:
- # we failed, remove the new directory
- shutil.rmtree(rdst.root)
-
-def _addchangeset(ui, rsrc, rdst, ctx, revmap):
- # Convert src parents to dst parents
- parents = _convertparents(ctx, revmap)
-
- # Generate list of changed files
- files = _getchangedfiles(ctx, parents)
-
- def getfilectx(repo, memctx, f):
- if lfutil.standin(f) in files:
- # if the file isn't in the manifest then it was removed
- # or renamed, raise IOError to indicate this
- try:
- fctx = ctx.filectx(lfutil.standin(f))
- except error.LookupError:
- raise IOError
- renamed = fctx.renamed()
- if renamed:
- renamed = lfutil.splitstandin(renamed[0])
-
- hash = fctx.data().strip()
- path = lfutil.findfile(rsrc, hash)
- ### TODO: What if the file is not cached?
- data = ''
- fd = None
- try:
- fd = open(path, 'rb')
- data = fd.read()
- finally:
- if fd:
- fd.close()
- return context.memfilectx(f, data, 'l' in fctx.flags(),
- 'x' in fctx.flags(), renamed)
- else:
- return _getnormalcontext(repo.ui, ctx, f, revmap)
-
- dstfiles = []
- for file in files:
- if lfutil.isstandin(file):
- dstfiles.append(lfutil.splitstandin(file))
- else:
- dstfiles.append(file)
- # Commit
- _commitcontext(rdst, parents, ctx, dstfiles, getfilectx, revmap)
-
-def _lfconvert_addchangeset(rsrc, rdst, ctx, revmap, lfiles, normalfiles,
- matcher, size, lfiletohash):
- # Convert src parents to dst parents
- parents = _convertparents(ctx, revmap)
-
- # Generate list of changed files
- files = _getchangedfiles(ctx, parents)
-
- dstfiles = []
- for f in files:
- if f not in lfiles and f not in normalfiles:
- islfile = _islfile(f, ctx, matcher, size)
- # If this file was renamed or copied then copy
- # the lfileness of its predecessor
- if f in ctx.manifest():
- fctx = ctx.filectx(f)
- renamed = fctx.renamed()
- renamedlfile = renamed and renamed[0] in lfiles
- islfile |= renamedlfile
- if 'l' in fctx.flags():
- if renamedlfile:
- raise util.Abort(
- _('renamed/copied largefile %s becomes symlink')
- % f)
- islfile = False
- if islfile:
- lfiles.add(f)
- else:
- normalfiles.add(f)
-
- if f in lfiles:
- dstfiles.append(lfutil.standin(f))
- # largefile in manifest if it has not been removed/renamed
- if f in ctx.manifest():
- fctx = ctx.filectx(f)
- if 'l' in fctx.flags():
- renamed = fctx.renamed()
- if renamed and renamed[0] in lfiles:
- raise util.Abort(_('largefile %s becomes symlink') % f)
-
- # largefile was modified, update standins
- fullpath = rdst.wjoin(f)
- util.makedirs(os.path.dirname(fullpath))
- m = util.sha1('')
- m.update(ctx[f].data())
- hash = m.hexdigest()
- if f not in lfiletohash or lfiletohash[f] != hash:
- try:
- fd = open(fullpath, 'wb')
- fd.write(ctx[f].data())
- finally:
- if fd:
- fd.close()
- executable = 'x' in ctx[f].flags()
- os.chmod(fullpath, lfutil.getmode(executable))
- lfutil.writestandin(rdst, lfutil.standin(f), hash,
- executable)
- lfiletohash[f] = hash
- else:
- # normal file
- dstfiles.append(f)
-
- def getfilectx(repo, memctx, f):
- if lfutil.isstandin(f):
- # if the file isn't in the manifest then it was removed
- # or renamed, raise IOError to indicate this
- srcfname = lfutil.splitstandin(f)
- try:
- fctx = ctx.filectx(srcfname)
- except error.LookupError:
- raise IOError
- renamed = fctx.renamed()
- if renamed:
- # standin is always a largefile because largefile-ness
- # doesn't change after rename or copy
- renamed = lfutil.standin(renamed[0])
-
- return context.memfilectx(f, lfiletohash[srcfname] + '\n', 'l' in
- fctx.flags(), 'x' in fctx.flags(), renamed)
- else:
- return _getnormalcontext(repo.ui, ctx, f, revmap)
-
- # Commit
- _commitcontext(rdst, parents, ctx, dstfiles, getfilectx, revmap)
-
-def _commitcontext(rdst, parents, ctx, dstfiles, getfilectx, revmap):
- mctx = context.memctx(rdst, parents, ctx.description(), dstfiles,
- getfilectx, ctx.user(), ctx.date(), ctx.extra())
- ret = rdst.commitctx(mctx)
- rdst.setparents(ret)
- revmap[ctx.node()] = rdst.changelog.tip()
-
-# Generate list of changed files
-def _getchangedfiles(ctx, parents):
- files = set(ctx.files())
- if node.nullid not in parents:
- mc = ctx.manifest()
- mp1 = ctx.parents()[0].manifest()
- mp2 = ctx.parents()[1].manifest()
- files |= (set(mp1) | set(mp2)) - set(mc)
- for f in mc:
- if mc[f] != mp1.get(f, None) or mc[f] != mp2.get(f, None):
- files.add(f)
- return files
-
-# Convert src parents to dst parents
-def _convertparents(ctx, revmap):
- parents = []
- for p in ctx.parents():
- parents.append(revmap[p.node()])
- while len(parents) < 2:
- parents.append(node.nullid)
- return parents
-
-# Get memfilectx for a normal file
-def _getnormalcontext(ui, ctx, f, revmap):
- try:
- fctx = ctx.filectx(f)
- except error.LookupError:
- raise IOError
- renamed = fctx.renamed()
- if renamed:
- renamed = renamed[0]
-
- data = fctx.data()
- if f == '.hgtags':
- data = _converttags (ui, revmap, data)
- return context.memfilectx(f, data, 'l' in fctx.flags(),
- 'x' in fctx.flags(), renamed)
-
-# Remap tag data using a revision map
-def _converttags(ui, revmap, data):
- newdata = []
- for line in data.splitlines():
- try:
- id, name = line.split(' ', 1)
- except ValueError:
- ui.warn(_('skipping incorrectly formatted tag %s\n'
- % line))
- continue
- try:
- newid = node.bin(id)
- except TypeError:
- ui.warn(_('skipping incorrectly formatted id %s\n'
- % id))
- continue
- try:
- newdata.append('%s %s\n' % (node.hex(revmap[newid]),
- name))
- except KeyError:
- ui.warn(_('no mapping for id %s\n') % id)
- continue
- return ''.join(newdata)
-
-def _islfile(file, ctx, matcher, size):
- '''Return true if file should be considered a largefile, i.e.
- matcher matches it or it is larger than size.'''
- # never store special .hg* files as largefiles
- if file == '.hgtags' or file == '.hgignore' or file == '.hgsigs':
- return False
- if matcher and matcher(file):
- return True
- try:
- return ctx.filectx(file).size() >= size * 1024 * 1024
- except error.LookupError:
- return False
-
-def uploadlfiles(ui, rsrc, rdst, files):
- '''upload largefiles to the central store'''
-
- if not files:
- return
-
- store = basestore._openstore(rsrc, rdst, put=True)
-
- at = 0
- ui.debug("sending statlfile command for %d largefiles\n" % len(files))
- retval = store.exists(files)
- files = filter(lambda h: not retval[h], files)
- ui.debug("%d largefiles need to be uploaded\n" % len(files))
-
- for hash in files:
- ui.progress(_('uploading largefiles'), at, unit='largefile',
- total=len(files))
- source = lfutil.findfile(rsrc, hash)
- if not source:
- raise util.Abort(_('largefile %s missing from store'
- ' (needs to be uploaded)') % hash)
- # XXX check for errors here
- store.put(source, hash)
- at += 1
- ui.progress(_('uploading largefiles'), None)
-
-def verifylfiles(ui, repo, all=False, contents=False):
- '''Verify that every big file revision in the current changeset
- exists in the central store. With --contents, also verify that
- the contents of each big file revision are correct (SHA-1 hash
- matches the revision ID). With --all, check every changeset in
- this repository.'''
- if all:
- # Pass a list to the function rather than an iterator because we know a
- # list will work.
- revs = range(len(repo))
- else:
- revs = ['.']
-
- store = basestore._openstore(repo)
- return store.verify(revs, contents=contents)
-
-def cachelfiles(ui, repo, node, filelist=None):
- '''cachelfiles ensures that all largefiles needed by the specified revision
- are present in the repository's largefile cache.
-
- returns a tuple (cached, missing). cached is the list of files downloaded
- by this operation; missing is the list of files that were needed but could
- not be found.'''
- lfiles = lfutil.listlfiles(repo, node)
- if filelist:
- lfiles = set(lfiles) & set(filelist)
- toget = []
-
- for lfile in lfiles:
- # If we are mid-merge, then we have to trust the standin that is in the
- # working copy to have the correct hashvalue. This is because the
- # original hg.merge() already updated the standin as part of the normal
- # merge process -- we just have to udpate the largefile to match.
- if (getattr(repo, "_ismerging", False) and
- os.path.exists(repo.wjoin(lfutil.standin(lfile)))):
- expectedhash = lfutil.readstandin(repo, lfile)
- else:
- expectedhash = repo[node][lfutil.standin(lfile)].data().strip()
-
- # if it exists and its hash matches, it might have been locally
- # modified before updating and the user chose 'local'. in this case,
- # it will not be in any store, so don't look for it.
- if ((not os.path.exists(repo.wjoin(lfile)) or
- expectedhash != lfutil.hashfile(repo.wjoin(lfile))) and
- not lfutil.findfile(repo, expectedhash)):
- toget.append((lfile, expectedhash))
-
- if toget:
- store = basestore._openstore(repo)
- ret = store.get(toget)
- return ret
-
- return ([], [])
-
-def downloadlfiles(ui, repo, rev=None):
- matchfn = scmutil.match(repo[None],
- [repo.wjoin(lfutil.shortname)], {})
- def prepare(ctx, fns):
- pass
- totalsuccess = 0
- totalmissing = 0
- for ctx in cmdutil.walkchangerevs(repo, matchfn, {'rev' : rev},
- prepare):
- success, missing = cachelfiles(ui, repo, ctx.node())
- totalsuccess += len(success)
- totalmissing += len(missing)
- ui.status(_("%d additional largefiles cached\n") % totalsuccess)
- if totalmissing > 0:
- ui.status(_("%d largefiles failed to download\n") % totalmissing)
- return totalsuccess, totalmissing
-
-def updatelfiles(ui, repo, filelist=None, printmessage=True):
- wlock = repo.wlock()
- try:
- lfdirstate = lfutil.openlfdirstate(ui, repo)
- lfiles = set(lfutil.listlfiles(repo)) | set(lfdirstate)
-
- if filelist is not None:
- lfiles = [f for f in lfiles if f in filelist]
-
- printed = False
- if printmessage and lfiles:
- ui.status(_('getting changed largefiles\n'))
- printed = True
- cachelfiles(ui, repo, '.', lfiles)
-
- updated, removed = 0, 0
- for i in map(lambda f: _updatelfile(repo, lfdirstate, f), lfiles):
- # increment the appropriate counter according to _updatelfile's
- # return value
- updated += i > 0 and i or 0
- removed -= i < 0 and i or 0
- if printmessage and (removed or updated) and not printed:
- ui.status(_('getting changed largefiles\n'))
- printed = True
-
- lfdirstate.write()
- if printed and printmessage:
- ui.status(_('%d largefiles updated, %d removed\n') % (updated,
- removed))
- finally:
- wlock.release()
-
-def _updatelfile(repo, lfdirstate, lfile):
- '''updates a single largefile and copies the state of its standin from
- the repository's dirstate to its state in the lfdirstate.
-
- returns 1 if the file was modified, -1 if the file was removed, 0 if the
- file was unchanged, and None if the needed largefile was missing from the
- cache.'''
- ret = 0
- abslfile = repo.wjoin(lfile)
- absstandin = repo.wjoin(lfutil.standin(lfile))
- if os.path.exists(absstandin):
- if os.path.exists(absstandin+'.orig'):
- shutil.copyfile(abslfile, abslfile+'.orig')
- expecthash = lfutil.readstandin(repo, lfile)
- if (expecthash != '' and
- (not os.path.exists(abslfile) or
- expecthash != lfutil.hashfile(abslfile))):
- if not lfutil.copyfromcache(repo, expecthash, lfile):
- # use normallookup() to allocate entry in largefiles dirstate,
- # because lack of it misleads lfilesrepo.status() into
- # recognition that such cache missing files are REMOVED.
- lfdirstate.normallookup(lfile)
- return None # don't try to set the mode
- else:
- # Synchronize largefile dirstate to the last modified time of
- # the file
- lfdirstate.normal(lfile)
- ret = 1
- mode = os.stat(absstandin).st_mode
- if mode != os.stat(abslfile).st_mode:
- os.chmod(abslfile, mode)
- ret = 1
- else:
- # Remove lfiles for which the standin is deleted, unless the
- # lfile is added to the repository again. This happens when a
- # largefile is converted back to a normal file: the standin
- # disappears, but a new (normal) file appears as the lfile.
- if os.path.exists(abslfile) and lfile not in repo[None]:
- util.unlinkpath(abslfile)
- ret = -1
- state = repo.dirstate[lfutil.standin(lfile)]
- if state == 'n':
- # When rebasing, we need to synchronize the standin and the largefile,
- # because otherwise the largefile will get reverted. But for commit's
- # sake, we have to mark the file as unclean.
- if getattr(repo, "_isrebasing", False):
- lfdirstate.normallookup(lfile)
- else:
- lfdirstate.normal(lfile)
- elif state == 'r':
- lfdirstate.remove(lfile)
- elif state == 'a':
- lfdirstate.add(lfile)
- elif state == '?':
- lfdirstate.drop(lfile)
- return ret
-
-def catlfile(repo, lfile, rev, filename):
- hash = lfutil.readstandin(repo, lfile, rev)
- if not lfutil.inusercache(repo.ui, hash):
- store = basestore._openstore(repo)
- success, missing = store.get([(lfile, hash)])
- if len(success) != 1:
- raise util.Abort(
- _('largefile %s is not in cache and could not be downloaded')
- % lfile)
- path = lfutil.usercachepath(repo.ui, hash)
- fpout = cmdutil.makefileobj(repo, filename)
- fpin = open(path, "rb")
- fpout.write(fpin.read())
- fpout.close()
- fpin.close()
- return 0
-
-# -- hg commands declarations ------------------------------------------------
-
-cmdtable = {
- 'lfconvert': (lfconvert,
- [('s', 'size', '',
- _('minimum size (MB) for files to be converted '
- 'as largefiles'),
- 'SIZE'),
- ('', 'to-normal', False,
- _('convert from a largefiles repo to a normal repo')),
- ],
- _('hg lfconvert SOURCE DEST [FILE ...]')),
- }
diff --git a/hgext/largefiles/lfutil.py b/hgext/largefiles/lfutil.py
deleted file mode 100644
index 6a64d89..0000000
--- a/hgext/largefiles/lfutil.py
+++ /dev/null
@@ -1,467 +0,0 @@
-# Copyright 2009-2010 Gregory P. Ward
-# Copyright 2009-2010 Intelerad Medical Systems Incorporated
-# Copyright 2010-2011 Fog Creek Software
-# Copyright 2010-2011 Unity Technologies
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-'''largefiles utility code: must not import other modules in this package.'''
-
-import os
-import errno
-import platform
-import shutil
-import stat
-
-from mercurial import dirstate, httpconnection, match as match_, util, scmutil
-from mercurial.i18n import _
-
-shortname = '.hglf'
-longname = 'largefiles'
-
-
-# -- Portability wrappers ----------------------------------------------
-
-def dirstatewalk(dirstate, matcher, unknown=False, ignored=False):
- return dirstate.walk(matcher, [], unknown, ignored)
-
-def repoadd(repo, list):
- add = repo[None].add
- return add(list)
-
-def reporemove(repo, list, unlink=False):
- def remove(list, unlink):
- wlock = repo.wlock()
- try:
- if unlink:
- for f in list:
- try:
- util.unlinkpath(repo.wjoin(f))
- except OSError, inst:
- if inst.errno != errno.ENOENT:
- raise
- repo[None].forget(list)
- finally:
- wlock.release()
- return remove(list, unlink=unlink)
-
-def repoforget(repo, list):
- forget = repo[None].forget
- return forget(list)
-
-def findoutgoing(repo, remote, force):
- from mercurial import discovery
- common, _anyinc, _heads = discovery.findcommonincoming(repo,
- remote.peer(), force=force)
- return repo.changelog.findmissing(common)
-
-# -- Private worker functions ------------------------------------------
-
-def getminsize(ui, assumelfiles, opt, default=10):
- lfsize = opt
- if not lfsize and assumelfiles:
- lfsize = ui.config(longname, 'minsize', default=default)
- if lfsize:
- try:
- lfsize = float(lfsize)
- except ValueError:
- raise util.Abort(_('largefiles: size must be number (not %s)\n')
- % lfsize)
- if lfsize is None:
- raise util.Abort(_('minimum size for largefiles must be specified'))
- return lfsize
-
-def link(src, dest):
- try:
- util.oslink(src, dest)
- except OSError:
- # if hardlinks fail, fallback on atomic copy
- dst = util.atomictempfile(dest)
- for chunk in util.filechunkiter(open(src, 'rb')):
- dst.write(chunk)
- dst.close()
- os.chmod(dest, os.stat(src).st_mode)
-
-def usercachepath(ui, hash):
- path = ui.configpath(longname, 'usercache', None)
- if path:
- path = os.path.join(path, hash)
- else:
- if os.name == 'nt':
- appdata = os.getenv('LOCALAPPDATA', os.getenv('APPDATA'))
- if appdata:
- path = os.path.join(appdata, longname, hash)
- elif platform.system() == 'Darwin':
- home = os.getenv('HOME')
- if home:
- path = os.path.join(home, 'Library', 'Caches',
- longname, hash)
- elif os.name == 'posix':
- path = os.getenv('XDG_CACHE_HOME')
- if path:
- path = os.path.join(path, longname, hash)
- else:
- home = os.getenv('HOME')
- if home:
- path = os.path.join(home, '.cache', longname, hash)
- else:
- raise util.Abort(_('unknown operating system: %s\n') % os.name)
- return path
-
-def inusercache(ui, hash):
- path = usercachepath(ui, hash)
- return path and os.path.exists(path)
-
-def findfile(repo, hash):
- if instore(repo, hash):
- repo.ui.note(_('found %s in store\n') % hash)
- return storepath(repo, hash)
- elif inusercache(repo.ui, hash):
- repo.ui.note(_('found %s in system cache\n') % hash)
- path = storepath(repo, hash)
- util.makedirs(os.path.dirname(path))
- link(usercachepath(repo.ui, hash), path)
- return path
- return None
-
-class largefilesdirstate(dirstate.dirstate):
- def __getitem__(self, key):
- return super(largefilesdirstate, self).__getitem__(unixpath(key))
- def normal(self, f):
- return super(largefilesdirstate, self).normal(unixpath(f))
- def remove(self, f):
- return super(largefilesdirstate, self).remove(unixpath(f))
- def add(self, f):
- return super(largefilesdirstate, self).add(unixpath(f))
- def drop(self, f):
- return super(largefilesdirstate, self).drop(unixpath(f))
- def forget(self, f):
- return super(largefilesdirstate, self).forget(unixpath(f))
- def normallookup(self, f):
- return super(largefilesdirstate, self).normallookup(unixpath(f))
-
-def openlfdirstate(ui, repo):
- '''
- Return a dirstate object that tracks largefiles: i.e. its root is
- the repo root, but it is saved in .hg/largefiles/dirstate.
- '''
- admin = repo.join(longname)
- opener = scmutil.opener(admin)
- lfdirstate = largefilesdirstate(opener, ui, repo.root,
- repo.dirstate._validate)
-
- # If the largefiles dirstate does not exist, populate and create
- # it. This ensures that we create it on the first meaningful
- # largefiles operation in a new clone.
- if not os.path.exists(os.path.join(admin, 'dirstate')):
- util.makedirs(admin)
- matcher = getstandinmatcher(repo)
- for standin in dirstatewalk(repo.dirstate, matcher):
- lfile = splitstandin(standin)
- hash = readstandin(repo, lfile)
- lfdirstate.normallookup(lfile)
- try:
- if hash == hashfile(repo.wjoin(lfile)):
- lfdirstate.normal(lfile)
- except OSError, err:
- if err.errno != errno.ENOENT:
- raise
- return lfdirstate
-
-def lfdirstatestatus(lfdirstate, repo, rev):
- match = match_.always(repo.root, repo.getcwd())
- s = lfdirstate.status(match, [], False, False, False)
- unsure, modified, added, removed, missing, unknown, ignored, clean = s
- for lfile in unsure:
- if repo[rev][standin(lfile)].data().strip() != \
- hashfile(repo.wjoin(lfile)):
- modified.append(lfile)
- else:
- clean.append(lfile)
- lfdirstate.normal(lfile)
- return (modified, added, removed, missing, unknown, ignored, clean)
-
-def listlfiles(repo, rev=None, matcher=None):
- '''return a list of largefiles in the working copy or the
- specified changeset'''
-
- if matcher is None:
- matcher = getstandinmatcher(repo)
-
- # ignore unknown files in working directory
- return [splitstandin(f)
- for f in repo[rev].walk(matcher)
- if rev is not None or repo.dirstate[f] != '?']
-
-def instore(repo, hash):
- return os.path.exists(storepath(repo, hash))
-
-def storepath(repo, hash):
- return repo.join(os.path.join(longname, hash))
-
-def copyfromcache(repo, hash, filename):
- '''Copy the specified largefile from the repo or system cache to
- filename in the repository. Return true on success or false if the
- file was not found in either cache (which should not happened:
- this is meant to be called only after ensuring that the needed
- largefile exists in the cache).'''
- path = findfile(repo, hash)
- if path is None:
- return False
- util.makedirs(os.path.dirname(repo.wjoin(filename)))
- # The write may fail before the file is fully written, but we
- # don't use atomic writes in the working copy.
- shutil.copy(path, repo.wjoin(filename))
- return True
-
-def copytostore(repo, rev, file, uploaded=False):
- hash = readstandin(repo, file)
- if instore(repo, hash):
- return
- copytostoreabsolute(repo, repo.wjoin(file), hash)
-
-def copyalltostore(repo, node):
- '''Copy all largefiles in a given revision to the store'''
-
- ctx = repo[node]
- for filename in ctx.files():
- if isstandin(filename) and filename in ctx.manifest():
- realfile = splitstandin(filename)
- copytostore(repo, ctx.node(), realfile)
-
-
-def copytostoreabsolute(repo, file, hash):
- util.makedirs(os.path.dirname(storepath(repo, hash)))
- if inusercache(repo.ui, hash):
- link(usercachepath(repo.ui, hash), storepath(repo, hash))
- else:
- dst = util.atomictempfile(storepath(repo, hash),
- createmode=repo.store.createmode)
- for chunk in util.filechunkiter(open(file, 'rb')):
- dst.write(chunk)
- dst.close()
- linktousercache(repo, hash)
-
-def linktousercache(repo, hash):
- path = usercachepath(repo.ui, hash)
- if path:
- util.makedirs(os.path.dirname(path))
- link(storepath(repo, hash), path)
-
-def getstandinmatcher(repo, pats=[], opts={}):
- '''Return a match object that applies pats to the standin directory'''
- standindir = repo.pathto(shortname)
- if pats:
- # patterns supplied: search standin directory relative to current dir
- cwd = repo.getcwd()
- if os.path.isabs(cwd):
- # cwd is an absolute path for hg -R <reponame>
- # work relative to the repository root in this case
- cwd = ''
- pats = [os.path.join(standindir, cwd, pat) for pat in pats]
- elif os.path.isdir(standindir):
- # no patterns: relative to repo root
- pats = [standindir]
- else:
- # no patterns and no standin dir: return matcher that matches nothing
- match = match_.match(repo.root, None, [], exact=True)
- match.matchfn = lambda f: False
- return match
- return getmatcher(repo, pats, opts, showbad=False)
-
-def getmatcher(repo, pats=[], opts={}, showbad=True):
- '''Wrapper around scmutil.match() that adds showbad: if false,
- neuter the match object's bad() method so it does not print any
- warnings about missing files or directories.'''
- match = scmutil.match(repo[None], pats, opts)
-
- if not showbad:
- match.bad = lambda f, msg: None
- return match
-
-def composestandinmatcher(repo, rmatcher):
- '''Return a matcher that accepts standins corresponding to the
- files accepted by rmatcher. Pass the list of files in the matcher
- as the paths specified by the user.'''
- smatcher = getstandinmatcher(repo, rmatcher.files())
- isstandin = smatcher.matchfn
- def composedmatchfn(f):
- return isstandin(f) and rmatcher.matchfn(splitstandin(f))
- smatcher.matchfn = composedmatchfn
-
- return smatcher
-
-def standin(filename):
- '''Return the repo-relative path to the standin for the specified big
- file.'''
- # Notes:
- # 1) Most callers want an absolute path, but _createstandin() needs
- # it repo-relative so lfadd() can pass it to repoadd(). So leave
- # it up to the caller to use repo.wjoin() to get an absolute path.
- # 2) Join with '/' because that's what dirstate always uses, even on
- # Windows. Change existing separator to '/' first in case we are
- # passed filenames from an external source (like the command line).
- return shortname + '/' + util.pconvert(filename)
-
-def isstandin(filename):
- '''Return true if filename is a big file standin. filename must be
- in Mercurial's internal form (slash-separated).'''
- return filename.startswith(shortname + '/')
-
-def splitstandin(filename):
- # Split on / because that's what dirstate always uses, even on Windows.
- # Change local separator to / first just in case we are passed filenames
- # from an external source (like the command line).
- bits = util.pconvert(filename).split('/', 1)
- if len(bits) == 2 and bits[0] == shortname:
- return bits[1]
- else:
- return None
-
-def updatestandin(repo, standin):
- file = repo.wjoin(splitstandin(standin))
- if os.path.exists(file):
- hash = hashfile(file)
- executable = getexecutable(file)
- writestandin(repo, standin, hash, executable)
-
-def readstandin(repo, filename, node=None):
- '''read hex hash from standin for filename at given node, or working
- directory if no node is given'''
- return repo[node][standin(filename)].data().strip()
-
-def writestandin(repo, standin, hash, executable):
- '''write hash to <repo.root>/<standin>'''
- writehash(hash, repo.wjoin(standin), executable)
-
-def copyandhash(instream, outfile):
- '''Read bytes from instream (iterable) and write them to outfile,
- computing the SHA-1 hash of the data along the way. Close outfile
- when done and return the binary hash.'''
- hasher = util.sha1('')
- for data in instream:
- hasher.update(data)
- outfile.write(data)
-
- # Blecch: closing a file that somebody else opened is rude and
- # wrong. But it's so darn convenient and practical! After all,
- # outfile was opened just to copy and hash.
- outfile.close()
-
- return hasher.digest()
-
-def hashrepofile(repo, file):
- return hashfile(repo.wjoin(file))
-
-def hashfile(file):
- if not os.path.exists(file):
- return ''
- hasher = util.sha1('')
- fd = open(file, 'rb')
- for data in blockstream(fd):
- hasher.update(data)
- fd.close()
- return hasher.hexdigest()
-
-class limitreader(object):
- def __init__(self, f, limit):
- self.f = f
- self.limit = limit
-
- def read(self, length):
- if self.limit == 0:
- return ''
- length = length > self.limit and self.limit or length
- self.limit -= length
- return self.f.read(length)
-
- def close(self):
- pass
-
-def blockstream(infile, blocksize=128 * 1024):
- """Generator that yields blocks of data from infile and closes infile."""
- while True:
- data = infile.read(blocksize)
- if not data:
- break
- yield data
- # same blecch as copyandhash() above
- infile.close()
-
-def writehash(hash, filename, executable):
- util.makedirs(os.path.dirname(filename))
- util.writefile(filename, hash + '\n')
- os.chmod(filename, getmode(executable))
-
-def getexecutable(filename):
- mode = os.stat(filename).st_mode
- return ((mode & stat.S_IXUSR) and
- (mode & stat.S_IXGRP) and
- (mode & stat.S_IXOTH))
-
-def getmode(executable):
- if executable:
- return 0755
- else:
- return 0644
-
-def urljoin(first, second, *arg):
- def join(left, right):
- if not left.endswith('/'):
- left += '/'
- if right.startswith('/'):
- right = right[1:]
- return left + right
-
- url = join(first, second)
- for a in arg:
- url = join(url, a)
- return url
-
-def hexsha1(data):
- """hexsha1 returns the hex-encoded sha1 sum of the data in the file-like
- object data"""
- h = util.sha1()
- for chunk in util.filechunkiter(data):
- h.update(chunk)
- return h.hexdigest()
-
-def httpsendfile(ui, filename):
- return httpconnection.httpsendfile(ui, filename, 'rb')
-
-def unixpath(path):
- '''Return a version of path normalized for use with the lfdirstate.'''
- return util.pconvert(os.path.normpath(path))
-
-def islfilesrepo(repo):
- return ('largefiles' in repo.requirements and
- util.any(shortname + '/' in f[0] for f in repo.store.datafiles()))
-
-class storeprotonotcapable(Exception):
- def __init__(self, storetypes):
- self.storetypes = storetypes
-
-def getcurrentheads(repo):
- branches = repo.branchmap()
- heads = []
- for branch in branches:
- newheads = repo.branchheads(branch)
- heads = heads + newheads
- return heads
-
-def getstandinsstate(repo):
- standins = []
- matcher = getstandinmatcher(repo)
- for standin in dirstatewalk(repo.dirstate, matcher):
- lfile = splitstandin(standin)
- standins.append((lfile, readstandin(repo, lfile)))
- return standins
-
-def getlfilestoupdate(oldstandins, newstandins):
- changedstandins = set(oldstandins).symmetric_difference(set(newstandins))
- filelist = []
- for f in changedstandins:
- if f[0] not in filelist:
- filelist.append(f[0])
- return filelist
diff --git a/hgext/largefiles/localstore.py b/hgext/largefiles/localstore.py
deleted file mode 100644
index 4995743..0000000
--- a/hgext/largefiles/localstore.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright 2009-2010 Gregory P. Ward
-# Copyright 2009-2010 Intelerad Medical Systems Incorporated
-# Copyright 2010-2011 Fog Creek Software
-# Copyright 2010-2011 Unity Technologies
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-'''store class for local filesystem'''
-
-import os
-
-from mercurial import util
-from mercurial.i18n import _
-
-import lfutil
-import basestore
-
-class localstore(basestore.basestore):
- '''localstore first attempts to grab files out of the store in the remote
- Mercurial repository. Failling that, it attempts to grab the files from
- the user cache.'''
-
- def __init__(self, ui, repo, remote):
- url = os.path.join(remote.local().path, '.hg', lfutil.longname)
- super(localstore, self).__init__(ui, repo, util.expandpath(url))
- self.remote = remote.local()
-
- def put(self, source, hash):
- util.makedirs(os.path.dirname(lfutil.storepath(self.remote, hash)))
- if lfutil.instore(self.remote, hash):
- return
- lfutil.link(lfutil.storepath(self.repo, hash),
- lfutil.storepath(self.remote, hash))
-
- def exists(self, hash):
- return lfutil.instore(self.remote, hash)
-
- def _getfile(self, tmpfile, filename, hash):
- if lfutil.instore(self.remote, hash):
- path = lfutil.storepath(self.remote, hash)
- elif lfutil.inusercache(self.ui, hash):
- path = lfutil.usercachepath(self.ui, hash)
- else:
- raise basestore.StoreError(filename, hash, '',
- _("can't get file locally"))
- fd = open(path, 'rb')
- try:
- return lfutil.copyandhash(fd, tmpfile)
- finally:
- fd.close()
-
- def _verifyfile(self, cctx, cset, contents, standin, verified):
- filename = lfutil.splitstandin(standin)
- if not filename:
- return False
- fctx = cctx[standin]
- key = (filename, fctx.filenode())
- if key in verified:
- return False
-
- expecthash = fctx.data()[0:40]
- verified.add(key)
- if not lfutil.instore(self.remote, expecthash):
- self.ui.warn(
- _('changeset %s: %s missing\n'
- ' (looked for hash %s)\n')
- % (cset, filename, expecthash))
- return True # failed
-
- if contents:
- storepath = lfutil.storepath(self.remote, expecthash)
- actualhash = lfutil.hashfile(storepath)
- if actualhash != expecthash:
- self.ui.warn(
- _('changeset %s: %s: contents differ\n'
- ' (%s:\n'
- ' expected hash %s,\n'
- ' but got %s)\n')
- % (cset, filename, storepath, expecthash, actualhash))
- return True # failed
- return False
diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py
deleted file mode 100644
index 3b42695..0000000
--- a/hgext/largefiles/overrides.py
+++ /dev/null
@@ -1,1080 +0,0 @@
-# Copyright 2009-2010 Gregory P. Ward
-# Copyright 2009-2010 Intelerad Medical Systems Incorporated
-# Copyright 2010-2011 Fog Creek Software
-# Copyright 2010-2011 Unity Technologies
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-'''Overridden Mercurial commands and functions for the largefiles extension'''
-
-import os
-import copy
-
-from mercurial import hg, commands, util, cmdutil, scmutil, match as match_, \
- node, archival, error, merge
-from mercurial.i18n import _
-from mercurial.node import hex
-from hgext import rebase
-
-import lfutil
-import lfcommands
-
-# -- Utility functions: commonly/repeatedly needed functionality ---------------
-
-def installnormalfilesmatchfn(manifest):
- '''overrides scmutil.match so that the matcher it returns will ignore all
- largefiles'''
- oldmatch = None # for the closure
- def overridematch(ctx, pats=[], opts={}, globbed=False,
- default='relpath'):
- match = oldmatch(ctx, pats, opts, globbed, default)
- m = copy.copy(match)
- notlfile = lambda f: not (lfutil.isstandin(f) or lfutil.standin(f) in
- manifest)
- m._files = filter(notlfile, m._files)
- m._fmap = set(m._files)
- origmatchfn = m.matchfn
- m.matchfn = lambda f: notlfile(f) and origmatchfn(f) or None
- return m
- oldmatch = installmatchfn(overridematch)
-
-def installmatchfn(f):
- oldmatch = scmutil.match
- setattr(f, 'oldmatch', oldmatch)
- scmutil.match = f
- return oldmatch
-
-def restorematchfn():
- '''restores scmutil.match to what it was before installnormalfilesmatchfn
- was called. no-op if scmutil.match is its original function.
-
- Note that n calls to installnormalfilesmatchfn will require n calls to
- restore matchfn to reverse'''
- scmutil.match = getattr(scmutil.match, 'oldmatch', scmutil.match)
-
-def addlargefiles(ui, repo, *pats, **opts):
- large = opts.pop('large', None)
- lfsize = lfutil.getminsize(
- ui, lfutil.islfilesrepo(repo), opts.pop('lfsize', None))
-
- lfmatcher = None
- if lfutil.islfilesrepo(repo):
- lfpats = ui.configlist(lfutil.longname, 'patterns', default=[])
- if lfpats:
- lfmatcher = match_.match(repo.root, '', list(lfpats))
-
- lfnames = []
- m = scmutil.match(repo[None], pats, opts)
- m.bad = lambda x, y: None
- wctx = repo[None]
- for f in repo.walk(m):
- exact = m.exact(f)
- lfile = lfutil.standin(f) in wctx
- nfile = f in wctx
- exists = lfile or nfile
-
- # Don't warn the user when they attempt to add a normal tracked file.
- # The normal add code will do that for us.
- if exact and exists:
- if lfile:
- ui.warn(_('%s already a largefile\n') % f)
- continue
-
- if (exact or not exists) and not lfutil.isstandin(f):
- wfile = repo.wjoin(f)
-
- # In case the file was removed previously, but not committed
- # (issue3507)
- if not os.path.exists(wfile):
- continue
-
- abovemin = (lfsize and
- os.lstat(wfile).st_size >= lfsize * 1024 * 1024)
- if large or abovemin or (lfmatcher and lfmatcher(f)):
- lfnames.append(f)
- if ui.verbose or not exact:
- ui.status(_('adding %s as a largefile\n') % m.rel(f))
-
- bad = []
- standins = []
-
- # Need to lock, otherwise there could be a race condition between
- # when standins are created and added to the repo.
- wlock = repo.wlock()
- try:
- if not opts.get('dry_run'):
- lfdirstate = lfutil.openlfdirstate(ui, repo)
- for f in lfnames:
- standinname = lfutil.standin(f)
- lfutil.writestandin(repo, standinname, hash='',
- executable=lfutil.getexecutable(repo.wjoin(f)))
- standins.append(standinname)
- if lfdirstate[f] == 'r':
- lfdirstate.normallookup(f)
- else:
- lfdirstate.add(f)
- lfdirstate.write()
- bad += [lfutil.splitstandin(f)
- for f in lfutil.repoadd(repo, standins)
- if f in m.files()]
- finally:
- wlock.release()
- return bad
-
-def removelargefiles(ui, repo, *pats, **opts):
- after = opts.get('after')
- if not pats and not after:
- raise util.Abort(_('no files specified'))
- m = scmutil.match(repo[None], pats, opts)
- try:
- repo.lfstatus = True
- s = repo.status(match=m, clean=True)
- finally:
- repo.lfstatus = False
- manifest = repo[None].manifest()
- modified, added, deleted, clean = [[f for f in list
- if lfutil.standin(f) in manifest]
- for list in [s[0], s[1], s[3], s[6]]]
-
- def warn(files, reason):
- for f in files:
- ui.warn(_('not removing %s: %s (use forget to undo)\n')
- % (m.rel(f), reason))
-
- if after:
- remove, forget = deleted, []
- warn(modified + added + clean, _('file still exists'))
- else:
- remove, forget = deleted + clean, []
- warn(modified, _('file is modified'))
- warn(added, _('file has been marked for add'))
-
- for f in sorted(remove + forget):
- if ui.verbose or not m.exact(f):
- ui.status(_('removing %s\n') % m.rel(f))
-
- # Need to lock because standin files are deleted then removed from the
- # repository and we could race inbetween.
- wlock = repo.wlock()
- try:
- lfdirstate = lfutil.openlfdirstate(ui, repo)
- for f in remove:
- if not after:
- # If this is being called by addremove, notify the user that we
- # are removing the file.
- if getattr(repo, "_isaddremove", False):
- ui.status(_('removing %s\n') % f)
- if os.path.exists(repo.wjoin(f)):
- util.unlinkpath(repo.wjoin(f))
- lfdirstate.remove(f)
- lfdirstate.write()
- forget = [lfutil.standin(f) for f in forget]
- remove = [lfutil.standin(f) for f in remove]
- lfutil.repoforget(repo, forget)
- # If this is being called by addremove, let the original addremove
- # function handle this.
- if not getattr(repo, "_isaddremove", False):
- lfutil.reporemove(repo, remove, unlink=True)
- else:
- lfutil.reporemove(repo, remove, unlink=False)
- finally:
- wlock.release()
-
-# For overriding mercurial.hgweb.webcommands so that largefiles will
-# appear at their right place in the manifests.
-def decodepath(orig, path):
- return lfutil.splitstandin(path) or path
-
-# -- Wrappers: modify existing commands --------------------------------
-
-# Add works by going through the files that the user wanted to add and
-# checking if they should be added as largefiles. Then it makes a new
-# matcher which matches only the normal files and runs the original
-# version of add.
-def overrideadd(orig, ui, repo, *pats, **opts):
- normal = opts.pop('normal')
- if normal:
- if opts.get('large'):
- raise util.Abort(_('--normal cannot be used with --large'))
- return orig(ui, repo, *pats, **opts)
- bad = addlargefiles(ui, repo, *pats, **opts)
- installnormalfilesmatchfn(repo[None].manifest())
- result = orig(ui, repo, *pats, **opts)
- restorematchfn()
-
- return (result == 1 or bad) and 1 or 0
-
-def overrideremove(orig, ui, repo, *pats, **opts):
- installnormalfilesmatchfn(repo[None].manifest())
- orig(ui, repo, *pats, **opts)
- restorematchfn()
- removelargefiles(ui, repo, *pats, **opts)
-
-def overridestatusfn(orig, repo, rev2, **opts):
- try:
- repo._repo.lfstatus = True
- return orig(repo, rev2, **opts)
- finally:
- repo._repo.lfstatus = False
-
-def overridestatus(orig, ui, repo, *pats, **opts):
- try:
- repo.lfstatus = True
- return orig(ui, repo, *pats, **opts)
- finally:
- repo.lfstatus = False
-
-def overridedirty(orig, repo, ignoreupdate=False):
- try:
- repo._repo.lfstatus = True
- return orig(repo, ignoreupdate)
- finally:
- repo._repo.lfstatus = False
-
-def overridelog(orig, ui, repo, *pats, **opts):
- try:
- repo.lfstatus = True
- orig(ui, repo, *pats, **opts)
- finally:
- repo.lfstatus = False
-
-def overrideverify(orig, ui, repo, *pats, **opts):
- large = opts.pop('large', False)
- all = opts.pop('lfa', False)
- contents = opts.pop('lfc', False)
-
- result = orig(ui, repo, *pats, **opts)
- if large:
- result = result or lfcommands.verifylfiles(ui, repo, all, contents)
- return result
-
-# Override needs to refresh standins so that update's normal merge
-# will go through properly. Then the other update hook (overriding repo.update)
-# will get the new files. Filemerge is also overriden so that the merge
-# will merge standins correctly.
-def overrideupdate(orig, ui, repo, *pats, **opts):
- lfdirstate = lfutil.openlfdirstate(ui, repo)
- s = lfdirstate.status(match_.always(repo.root, repo.getcwd()), [], False,
- False, False)
- (unsure, modified, added, removed, missing, unknown, ignored, clean) = s
-
- # Need to lock between the standins getting updated and their
- # largefiles getting updated
- wlock = repo.wlock()
- try:
- if opts['check']:
- mod = len(modified) > 0
- for lfile in unsure:
- standin = lfutil.standin(lfile)
- if repo['.'][standin].data().strip() != \
- lfutil.hashfile(repo.wjoin(lfile)):
- mod = True
- else:
- lfdirstate.normal(lfile)
- lfdirstate.write()
- if mod:
- raise util.Abort(_('uncommitted local changes'))
- # XXX handle removed differently
- if not opts['clean']:
- for lfile in unsure + modified + added:
- lfutil.updatestandin(repo, lfutil.standin(lfile))
- finally:
- wlock.release()
- return orig(ui, repo, *pats, **opts)
-
-# Before starting the manifest merge, merge.updates will call
-# _checkunknown to check if there are any files in the merged-in
-# changeset that collide with unknown files in the working copy.
-#
-# The largefiles are seen as unknown, so this prevents us from merging
-# in a file 'foo' if we already have a largefile with the same name.
-#
-# The overridden function filters the unknown files by removing any
-# largefiles. This makes the merge proceed and we can then handle this
-# case further in the overridden manifestmerge function below.
-def overridecheckunknownfile(origfn, repo, wctx, mctx, f):
- if lfutil.standin(f) in wctx:
- return False
- return origfn(repo, wctx, mctx, f)
-
-# The manifest merge handles conflicts on the manifest level. We want
-# to handle changes in largefile-ness of files at this level too.
-#
-# The strategy is to run the original manifestmerge and then process
-# the action list it outputs. There are two cases we need to deal with:
-#
-# 1. Normal file in p1, largefile in p2. Here the largefile is
-# detected via its standin file, which will enter the working copy
-# with a "get" action. It is not "merge" since the standin is all
-# Mercurial is concerned with at this level -- the link to the
-# existing normal file is not relevant here.
-#
-# 2. Largefile in p1, normal file in p2. Here we get a "merge" action
-# since the largefile will be present in the working copy and
-# different from the normal file in p2. Mercurial therefore
-# triggers a merge action.
-#
-# In both cases, we prompt the user and emit new actions to either
-# remove the standin (if the normal file was kept) or to remove the
-# normal file and get the standin (if the largefile was kept). The
-# default prompt answer is to use the largefile version since it was
-# presumably changed on purpose.
-#
-# Finally, the merge.applyupdates function will then take care of
-# writing the files into the working copy and lfcommands.updatelfiles
-# will update the largefiles.
-def overridemanifestmerge(origfn, repo, p1, p2, pa, overwrite, partial):
- actions = origfn(repo, p1, p2, pa, overwrite, partial)
- processed = []
-
- for action in actions:
- if overwrite:
- processed.append(action)
- continue
- f, m = action[:2]
-
- choices = (_('&Largefile'), _('&Normal file'))
- if m == "g" and lfutil.splitstandin(f) in p1 and f in p2:
- # Case 1: normal file in the working copy, largefile in
- # the second parent
- lfile = lfutil.splitstandin(f)
- standin = f
- msg = _('%s has been turned into a largefile\n'
- 'use (l)argefile or keep as (n)ormal file?') % lfile
- if repo.ui.promptchoice(msg, choices, 0) == 0:
- processed.append((lfile, "r"))
- processed.append((standin, "g", p2.flags(standin)))
- else:
- processed.append((standin, "r"))
- elif m == "g" and lfutil.standin(f) in p1 and f in p2:
- # Case 2: largefile in the working copy, normal file in
- # the second parent
- standin = lfutil.standin(f)
- lfile = f
- msg = _('%s has been turned into a normal file\n'
- 'keep as (l)argefile or use (n)ormal file?') % lfile
- if repo.ui.promptchoice(msg, choices, 0) == 0:
- processed.append((lfile, "r"))
- else:
- processed.append((standin, "r"))
- processed.append((lfile, "g", p2.flags(lfile)))
- else:
- processed.append(action)
-
- return processed
-
-# Override filemerge to prompt the user about how they wish to merge
-# largefiles. This will handle identical edits, and copy/rename +
-# edit without prompting the user.
-def overridefilemerge(origfn, repo, mynode, orig, fcd, fco, fca):
- # Use better variable names here. Because this is a wrapper we cannot
- # change the variable names in the function declaration.
- fcdest, fcother, fcancestor = fcd, fco, fca
- if not lfutil.isstandin(orig):
- return origfn(repo, mynode, orig, fcdest, fcother, fcancestor)
- else:
- if not fcother.cmp(fcdest): # files identical?
- return None
-
- # backwards, use working dir parent as ancestor
- if fcancestor == fcother:
- fcancestor = fcdest.parents()[0]
-
- if orig != fcother.path():
- repo.ui.status(_('merging %s and %s to %s\n')
- % (lfutil.splitstandin(orig),
- lfutil.splitstandin(fcother.path()),
- lfutil.splitstandin(fcdest.path())))
- else:
- repo.ui.status(_('merging %s\n')
- % lfutil.splitstandin(fcdest.path()))
-
- if fcancestor.path() != fcother.path() and fcother.data() == \
- fcancestor.data():
- return 0
- if fcancestor.path() != fcdest.path() and fcdest.data() == \
- fcancestor.data():
- repo.wwrite(fcdest.path(), fcother.data(), fcother.flags())
- return 0
-
- if repo.ui.promptchoice(_('largefile %s has a merge conflict\n'
- 'keep (l)ocal or take (o)ther?') %
- lfutil.splitstandin(orig),
- (_('&Local'), _('&Other')), 0) == 0:
- return 0
- else:
- repo.wwrite(fcdest.path(), fcother.data(), fcother.flags())
- return 0
-
-# Copy first changes the matchers to match standins instead of
-# largefiles. Then it overrides util.copyfile in that function it
-# checks if the destination largefile already exists. It also keeps a
-# list of copied files so that the largefiles can be copied and the
-# dirstate updated.
-def overridecopy(orig, ui, repo, pats, opts, rename=False):
- # doesn't remove largefile on rename
- if len(pats) < 2:
- # this isn't legal, let the original function deal with it
- return orig(ui, repo, pats, opts, rename)
-
- def makestandin(relpath):
- path = scmutil.canonpath(repo.root, repo.getcwd(), relpath)
- return os.path.join(repo.wjoin(lfutil.standin(path)))
-
- fullpats = scmutil.expandpats(pats)
- dest = fullpats[-1]
-
- if os.path.isdir(dest):
- if not os.path.isdir(makestandin(dest)):
- os.makedirs(makestandin(dest))
- # This could copy both lfiles and normal files in one command,
- # but we don't want to do that. First replace their matcher to
- # only match normal files and run it, then replace it to just
- # match largefiles and run it again.
- nonormalfiles = False
- nolfiles = False
- try:
- try:
- installnormalfilesmatchfn(repo[None].manifest())
- result = orig(ui, repo, pats, opts, rename)
- except util.Abort, e:
- if str(e) != _('no files to copy'):
- raise e
- else:
- nonormalfiles = True
- result = 0
- finally:
- restorematchfn()
-
- # The first rename can cause our current working directory to be removed.
- # In that case there is nothing left to copy/rename so just quit.
- try:
- repo.getcwd()
- except OSError:
- return result
-
- try:
- try:
- # When we call orig below it creates the standins but we don't add
- # them to the dir state until later so lock during that time.
- wlock = repo.wlock()
-
- manifest = repo[None].manifest()
- oldmatch = None # for the closure
- def overridematch(ctx, pats=[], opts={}, globbed=False,
- default='relpath'):
- newpats = []
- # The patterns were previously mangled to add the standin
- # directory; we need to remove that now
- for pat in pats:
- if match_.patkind(pat) is None and lfutil.shortname in pat:
- newpats.append(pat.replace(lfutil.shortname, ''))
- else:
- newpats.append(pat)
- match = oldmatch(ctx, newpats, opts, globbed, default)
- m = copy.copy(match)
- lfile = lambda f: lfutil.standin(f) in manifest
- m._files = [lfutil.standin(f) for f in m._files if lfile(f)]
- m._fmap = set(m._files)
- origmatchfn = m.matchfn
- m.matchfn = lambda f: (lfutil.isstandin(f) and
- (f in manifest) and
- origmatchfn(lfutil.splitstandin(f)) or
- None)
- return m
- oldmatch = installmatchfn(overridematch)
- listpats = []
- for pat in pats:
- if match_.patkind(pat) is not None:
- listpats.append(pat)
- else:
- listpats.append(makestandin(pat))
-
- try:
- origcopyfile = util.copyfile
- copiedfiles = []
- def overridecopyfile(src, dest):
- if (lfutil.shortname in src and
- dest.startswith(repo.wjoin(lfutil.shortname))):
- destlfile = dest.replace(lfutil.shortname, '')
- if not opts['force'] and os.path.exists(destlfile):
- raise IOError('',
- _('destination largefile already exists'))
- copiedfiles.append((src, dest))
- origcopyfile(src, dest)
-
- util.copyfile = overridecopyfile
- result += orig(ui, repo, listpats, opts, rename)
- finally:
- util.copyfile = origcopyfile
-
- lfdirstate = lfutil.openlfdirstate(ui, repo)
- for (src, dest) in copiedfiles:
- if (lfutil.shortname in src and
- dest.startswith(repo.wjoin(lfutil.shortname))):
- srclfile = src.replace(repo.wjoin(lfutil.standin('')), '')
- destlfile = dest.replace(repo.wjoin(lfutil.standin('')), '')
- destlfiledir = os.path.dirname(repo.wjoin(destlfile)) or '.'
- if not os.path.isdir(destlfiledir):
- os.makedirs(destlfiledir)
- if rename:
- os.rename(repo.wjoin(srclfile), repo.wjoin(destlfile))
- lfdirstate.remove(srclfile)
- else:
- util.copyfile(repo.wjoin(srclfile),
- repo.wjoin(destlfile))
-
- lfdirstate.add(destlfile)
- lfdirstate.write()
- except util.Abort, e:
- if str(e) != _('no files to copy'):
- raise e
- else:
- nolfiles = True
- finally:
- restorematchfn()
- wlock.release()
-
- if nolfiles and nonormalfiles:
- raise util.Abort(_('no files to copy'))
-
- return result
-
-# When the user calls revert, we have to be careful to not revert any
-# changes to other largefiles accidentally. This means we have to keep
-# track of the largefiles that are being reverted so we only pull down
-# the necessary largefiles.
-#
-# Standins are only updated (to match the hash of largefiles) before
-# commits. Update the standins then run the original revert, changing
-# the matcher to hit standins instead of largefiles. Based on the
-# resulting standins update the largefiles. Then return the standins
-# to their proper state
-def overriderevert(orig, ui, repo, *pats, **opts):
- # Because we put the standins in a bad state (by updating them)
- # and then return them to a correct state we need to lock to
- # prevent others from changing them in their incorrect state.
- wlock = repo.wlock()
- try:
- lfdirstate = lfutil.openlfdirstate(ui, repo)
- (modified, added, removed, missing, unknown, ignored, clean) = \
- lfutil.lfdirstatestatus(lfdirstate, repo, repo['.'].rev())
- for lfile in modified:
- lfutil.updatestandin(repo, lfutil.standin(lfile))
- for lfile in missing:
- if (os.path.exists(repo.wjoin(lfutil.standin(lfile)))):
- os.unlink(repo.wjoin(lfutil.standin(lfile)))
-
- try:
- ctx = scmutil.revsingle(repo, opts.get('rev'))
- oldmatch = None # for the closure
- def overridematch(ctx, pats=[], opts={}, globbed=False,
- default='relpath'):
- match = oldmatch(ctx, pats, opts, globbed, default)
- m = copy.copy(match)
- def tostandin(f):
- if lfutil.standin(f) in ctx:
- return lfutil.standin(f)
- elif lfutil.standin(f) in repo[None]:
- return None
- return f
- m._files = [tostandin(f) for f in m._files]
- m._files = [f for f in m._files if f is not None]
- m._fmap = set(m._files)
- origmatchfn = m.matchfn
- def matchfn(f):
- if lfutil.isstandin(f):
- # We need to keep track of what largefiles are being
- # matched so we know which ones to update later --
- # otherwise we accidentally revert changes to other
- # largefiles. This is repo-specific, so duckpunch the
- # repo object to keep the list of largefiles for us
- # later.
- if origmatchfn(lfutil.splitstandin(f)) and \
- (f in repo[None] or f in ctx):
- lfileslist = getattr(repo, '_lfilestoupdate', [])
- lfileslist.append(lfutil.splitstandin(f))
- repo._lfilestoupdate = lfileslist
- return True
- else:
- return False
- return origmatchfn(f)
- m.matchfn = matchfn
- return m
- oldmatch = installmatchfn(overridematch)
- scmutil.match
- matches = overridematch(repo[None], pats, opts)
- orig(ui, repo, *pats, **opts)
- finally:
- restorematchfn()
- lfileslist = getattr(repo, '_lfilestoupdate', [])
- lfcommands.updatelfiles(ui, repo, filelist=lfileslist,
- printmessage=False)
-
- # empty out the largefiles list so we start fresh next time
- repo._lfilestoupdate = []
- for lfile in modified:
- if lfile in lfileslist:
- if os.path.exists(repo.wjoin(lfutil.standin(lfile))) and lfile\
- in repo['.']:
- lfutil.writestandin(repo, lfutil.standin(lfile),
- repo['.'][lfile].data().strip(),
- 'x' in repo['.'][lfile].flags())
- lfdirstate = lfutil.openlfdirstate(ui, repo)
- for lfile in added:
- standin = lfutil.standin(lfile)
- if standin not in ctx and (standin in matches or opts.get('all')):
- if lfile in lfdirstate:
- lfdirstate.drop(lfile)
- util.unlinkpath(repo.wjoin(standin))
- lfdirstate.write()
- finally:
- wlock.release()
-
-def hgupdate(orig, repo, node):
- # Only call updatelfiles the standins that have changed to save time
- oldstandins = lfutil.getstandinsstate(repo)
- result = orig(repo, node)
- newstandins = lfutil.getstandinsstate(repo)
- filelist = lfutil.getlfilestoupdate(oldstandins, newstandins)
- lfcommands.updatelfiles(repo.ui, repo, filelist=filelist, printmessage=True)
- return result
-
-def hgclean(orig, repo, node, show_stats=True):
- result = orig(repo, node, show_stats)
- lfcommands.updatelfiles(repo.ui, repo)
- return result
-
-def hgmerge(orig, repo, node, force=None, remind=True):
- # Mark the repo as being in the middle of a merge, so that
- # updatelfiles() will know that it needs to trust the standins in
- # the working copy, not in the standins in the current node
- repo._ismerging = True
- try:
- result = orig(repo, node, force, remind)
- lfcommands.updatelfiles(repo.ui, repo)
- finally:
- repo._ismerging = False
- return result
-
-# When we rebase a repository with remotely changed largefiles, we need to
-# take some extra care so that the largefiles are correctly updated in the
-# working copy
-def overridepull(orig, ui, repo, source=None, **opts):
- revsprepull = len(repo)
- if opts.get('rebase', False):
- repo._isrebasing = True
- try:
- if opts.get('update'):
- del opts['update']
- ui.debug('--update and --rebase are not compatible, ignoring '
- 'the update flag\n')
- del opts['rebase']
- cmdutil.bailifchanged(repo)
- origpostincoming = commands.postincoming
- def _dummy(*args, **kwargs):
- pass
- commands.postincoming = _dummy
- repo.lfpullsource = source
- if not source:
- source = 'default'
- try:
- result = commands.pull(ui, repo, source, **opts)
- finally:
- commands.postincoming = origpostincoming
- revspostpull = len(repo)
- if revspostpull > revsprepull:
- result = result or rebase.rebase(ui, repo)
- finally:
- repo._isrebasing = False
- else:
- repo.lfpullsource = source
- if not source:
- source = 'default'
- oldheads = lfutil.getcurrentheads(repo)
- result = orig(ui, repo, source, **opts)
- # If we do not have the new largefiles for any new heads we pulled, we
- # will run into a problem later if we try to merge or rebase with one of
- # these heads, so cache the largefiles now direclty into the system
- # cache.
- ui.status(_("caching new largefiles\n"))
- numcached = 0
- heads = lfutil.getcurrentheads(repo)
- newheads = set(heads).difference(set(oldheads))
- for head in newheads:
- (cached, missing) = lfcommands.cachelfiles(ui, repo, head)
- numcached += len(cached)
- ui.status(_("%d largefiles cached\n") % numcached)
- if opts.get('all_largefiles'):
- revspostpull = len(repo)
- revs = []
- for rev in xrange(revsprepull + 1, revspostpull):
- revs.append(repo[rev].rev())
- lfcommands.downloadlfiles(ui, repo, revs)
- return result
-
-def overrideclone(orig, ui, source, dest=None, **opts):
- if dest is None:
- dest = hg.defaultdest(source)
- if opts.get('all_largefiles') and not hg.islocal(dest):
- raise util.Abort(_(
- '--all-largefiles is incompatible with non-local destination %s' %
- dest))
- result = hg.clone(ui, opts, source, dest,
- pull=opts.get('pull'),
- stream=opts.get('uncompressed'),
- rev=opts.get('rev'),
- update=True, # required for successful walkchangerevs
- branch=opts.get('branch'))
- if result is None:
- return True
- if opts.get('all_largefiles'):
- sourcerepo, destrepo = result
- success, missing = lfcommands.downloadlfiles(ui, destrepo.local(), None)
- return missing != 0
- return result is None
-
-def overriderebase(orig, ui, repo, **opts):
- repo._isrebasing = True
- try:
- orig(ui, repo, **opts)
- finally:
- repo._isrebasing = False
-
-def overridearchive(orig, repo, dest, node, kind, decode=True, matchfn=None,
- prefix=None, mtime=None, subrepos=None):
- # No need to lock because we are only reading history and
- # largefile caches, neither of which are modified.
- lfcommands.cachelfiles(repo.ui, repo, node)
-
- if kind not in archival.archivers:
- raise util.Abort(_("unknown archive type '%s'") % kind)
-
- ctx = repo[node]
-
- if kind == 'files':
- if prefix:
- raise util.Abort(
- _('cannot give prefix when archiving to files'))
- else:
- prefix = archival.tidyprefix(dest, kind, prefix)
-
- def write(name, mode, islink, getdata):
- if matchfn and not matchfn(name):
- return
- data = getdata()
- if decode:
- data = repo.wwritedata(name, data)
- archiver.addfile(prefix + name, mode, islink, data)
-
- archiver = archival.archivers[kind](dest, mtime or ctx.date()[0])
-
- if repo.ui.configbool("ui", "archivemeta", True):
- def metadata():
- base = 'repo: %s\nnode: %s\nbranch: %s\n' % (
- hex(repo.changelog.node(0)), hex(node), ctx.branch())
-
- tags = ''.join('tag: %s\n' % t for t in ctx.tags()
- if repo.tagtype(t) == 'global')
- if not tags:
- repo.ui.pushbuffer()
- opts = {'template': '{latesttag}\n{latesttagdistance}',
- 'style': '', 'patch': None, 'git': None}
- cmdutil.show_changeset(repo.ui, repo, opts).show(ctx)
- ltags, dist = repo.ui.popbuffer().split('\n')
- tags = ''.join('latesttag: %s\n' % t for t in ltags.split(':'))
- tags += 'latesttagdistance: %s\n' % dist
-
- return base + tags
-
- write('.hg_archival.txt', 0644, False, metadata)
-
- for f in ctx:
- ff = ctx.flags(f)
- getdata = ctx[f].data
- if lfutil.isstandin(f):
- path = lfutil.findfile(repo, getdata().strip())
- if path is None:
- raise util.Abort(
- _('largefile %s not found in repo store or system cache')
- % lfutil.splitstandin(f))
- f = lfutil.splitstandin(f)
-
- def getdatafn():
- fd = None
- try:
- fd = open(path, 'rb')
- return fd.read()
- finally:
- if fd:
- fd.close()
-
- getdata = getdatafn
- write(f, 'x' in ff and 0755 or 0644, 'l' in ff, getdata)
-
- if subrepos:
- for subpath in ctx.substate:
- sub = ctx.sub(subpath)
- submatch = match_.narrowmatcher(subpath, matchfn)
- sub.archive(repo.ui, archiver, prefix, submatch)
-
- archiver.done()
-
-def hgsubrepoarchive(orig, repo, ui, archiver, prefix, match=None):
- rev = repo._state[1]
- ctx = repo._repo[rev]
-
- lfcommands.cachelfiles(ui, repo._repo, ctx.node())
-
- def write(name, mode, islink, getdata):
- # At this point, the standin has been replaced with the largefile name,
- # so the normal matcher works here without the lfutil variants.
- if match and not match(f):
- return
- data = getdata()
-
- archiver.addfile(prefix + repo._path + '/' + name, mode, islink, data)
-
- for f in ctx:
- ff = ctx.flags(f)
- getdata = ctx[f].data
- if lfutil.isstandin(f):
- path = lfutil.findfile(repo._repo, getdata().strip())
- if path is None:
- raise util.Abort(
- _('largefile %s not found in repo store or system cache')
- % lfutil.splitstandin(f))
- f = lfutil.splitstandin(f)
-
- def getdatafn():
- fd = None
- try:
- fd = open(os.path.join(prefix, path), 'rb')
- return fd.read()
- finally:
- if fd:
- fd.close()
-
- getdata = getdatafn
-
- write(f, 'x' in ff and 0755 or 0644, 'l' in ff, getdata)
-
- for subpath in ctx.substate:
- sub = ctx.sub(subpath)
- submatch = match_.narrowmatcher(subpath, match)
- sub.archive(ui, archiver, os.path.join(prefix, repo._path) + '/',
- submatch)
-
-# If a largefile is modified, the change is not reflected in its
-# standin until a commit. cmdutil.bailifchanged() raises an exception
-# if the repo has uncommitted changes. Wrap it to also check if
-# largefiles were changed. This is used by bisect and backout.
-def overridebailifchanged(orig, repo):
- orig(repo)
- repo.lfstatus = True
- modified, added, removed, deleted = repo.status()[:4]
- repo.lfstatus = False
- if modified or added or removed or deleted:
- raise util.Abort(_('outstanding uncommitted changes'))
-
-# Fetch doesn't use cmdutil.bailifchanged so override it to add the check
-def overridefetch(orig, ui, repo, *pats, **opts):
- repo.lfstatus = True
- modified, added, removed, deleted = repo.status()[:4]
- repo.lfstatus = False
- if modified or added or removed or deleted:
- raise util.Abort(_('outstanding uncommitted changes'))
- return orig(ui, repo, *pats, **opts)
-
-def overrideforget(orig, ui, repo, *pats, **opts):
- installnormalfilesmatchfn(repo[None].manifest())
- orig(ui, repo, *pats, **opts)
- restorematchfn()
- m = scmutil.match(repo[None], pats, opts)
-
- try:
- repo.lfstatus = True
- s = repo.status(match=m, clean=True)
- finally:
- repo.lfstatus = False
- forget = sorted(s[0] + s[1] + s[3] + s[6])
- forget = [f for f in forget if lfutil.standin(f) in repo[None].manifest()]
-
- for f in forget:
- if lfutil.standin(f) not in repo.dirstate and not \
- os.path.isdir(m.rel(lfutil.standin(f))):
- ui.warn(_('not removing %s: file is already untracked\n')
- % m.rel(f))
-
- for f in forget:
- if ui.verbose or not m.exact(f):
- ui.status(_('removing %s\n') % m.rel(f))
-
- # Need to lock because standin files are deleted then removed from the
- # repository and we could race inbetween.
- wlock = repo.wlock()
- try:
- lfdirstate = lfutil.openlfdirstate(ui, repo)
- for f in forget:
- if lfdirstate[f] == 'a':
- lfdirstate.drop(f)
- else:
- lfdirstate.remove(f)
- lfdirstate.write()
- lfutil.reporemove(repo, [lfutil.standin(f) for f in forget],
- unlink=True)
- finally:
- wlock.release()
-
-def getoutgoinglfiles(ui, repo, dest=None, **opts):
- dest = ui.expandpath(dest or 'default-push', dest or 'default')
- dest, branches = hg.parseurl(dest, opts.get('branch'))
- revs, checkout = hg.addbranchrevs(repo, repo, branches, opts.get('rev'))
- if revs:
- revs = [repo.lookup(rev) for rev in scmutil.revrange(repo, revs)]
-
- try:
- remote = hg.peer(repo, opts, dest)
- except error.RepoError:
- return None
- o = lfutil.findoutgoing(repo, remote, False)
- if not o:
- return None
- o = repo.changelog.nodesbetween(o, revs)[0]
- if opts.get('newest_first'):
- o.reverse()
-
- toupload = set()
- for n in o:
- parents = [p for p in repo.changelog.parents(n) if p != node.nullid]
- ctx = repo[n]
- files = set(ctx.files())
- if len(parents) == 2:
- mc = ctx.manifest()
- mp1 = ctx.parents()[0].manifest()
- mp2 = ctx.parents()[1].manifest()
- for f in mp1:
- if f not in mc:
- files.add(f)
- for f in mp2:
- if f not in mc:
- files.add(f)
- for f in mc:
- if mc[f] != mp1.get(f, None) or mc[f] != mp2.get(f, None):
- files.add(f)
- toupload = toupload.union(
- set([f for f in files if lfutil.isstandin(f) and f in ctx]))
- return toupload
-
-def overrideoutgoing(orig, ui, repo, dest=None, **opts):
- orig(ui, repo, dest, **opts)
-
- if opts.pop('large', None):
- toupload = getoutgoinglfiles(ui, repo, dest, **opts)
- if toupload is None:
- ui.status(_('largefiles: No remote repo\n'))
- else:
- ui.status(_('largefiles to upload:\n'))
- for file in toupload:
- ui.status(lfutil.splitstandin(file) + '\n')
- ui.status('\n')
-
-def overridesummary(orig, ui, repo, *pats, **opts):
- try:
- repo.lfstatus = True
- orig(ui, repo, *pats, **opts)
- finally:
- repo.lfstatus = False
-
- if opts.pop('large', None):
- toupload = getoutgoinglfiles(ui, repo, None, **opts)
- if toupload is None:
- ui.status(_('largefiles: No remote repo\n'))
- else:
- ui.status(_('largefiles: %d to upload\n') % len(toupload))
-
-def overrideaddremove(orig, ui, repo, *pats, **opts):
- if not lfutil.islfilesrepo(repo):
- return orig(ui, repo, *pats, **opts)
- # Get the list of missing largefiles so we can remove them
- lfdirstate = lfutil.openlfdirstate(ui, repo)
- s = lfdirstate.status(match_.always(repo.root, repo.getcwd()), [], False,
- False, False)
- (unsure, modified, added, removed, missing, unknown, ignored, clean) = s
-
- # Call into the normal remove code, but the removing of the standin, we want
- # to have handled by original addremove. Monkey patching here makes sure
- # we don't remove the standin in the largefiles code, preventing a very
- # confused state later.
- if missing:
- m = [repo.wjoin(f) for f in missing]
- repo._isaddremove = True
- removelargefiles(ui, repo, *m, **opts)
- repo._isaddremove = False
- # Call into the normal add code, and any files that *should* be added as
- # largefiles will be
- addlargefiles(ui, repo, *pats, **opts)
- # Now that we've handled largefiles, hand off to the original addremove
- # function to take care of the rest. Make sure it doesn't do anything with
- # largefiles by installing a matcher that will ignore them.
- installnormalfilesmatchfn(repo[None].manifest())
- result = orig(ui, repo, *pats, **opts)
- restorematchfn()
- return result
-
-# Calling purge with --all will cause the largefiles to be deleted.
-# Override repo.status to prevent this from happening.
-def overridepurge(orig, ui, repo, *dirs, **opts):
- oldstatus = repo.status
- def overridestatus(node1='.', node2=None, match=None, ignored=False,
- clean=False, unknown=False, listsubrepos=False):
- r = oldstatus(node1, node2, match, ignored, clean, unknown,
- listsubrepos)
- lfdirstate = lfutil.openlfdirstate(ui, repo)
- modified, added, removed, deleted, unknown, ignored, clean = r
- unknown = [f for f in unknown if lfdirstate[f] == '?']
- ignored = [f for f in ignored if lfdirstate[f] == '?']
- return modified, added, removed, deleted, unknown, ignored, clean
- repo.status = overridestatus
- orig(ui, repo, *dirs, **opts)
- repo.status = oldstatus
-
-def overriderollback(orig, ui, repo, **opts):
- result = orig(ui, repo, **opts)
- merge.update(repo, node=None, branchmerge=False, force=True,
- partial=lfutil.isstandin)
- wlock = repo.wlock()
- try:
- lfdirstate = lfutil.openlfdirstate(ui, repo)
- lfiles = lfutil.listlfiles(repo)
- oldlfiles = lfutil.listlfiles(repo, repo[None].parents()[0].rev())
- for file in lfiles:
- if file in oldlfiles:
- lfdirstate.normallookup(file)
- else:
- lfdirstate.add(file)
- lfdirstate.write()
- finally:
- wlock.release()
- return result
-
-def overridetransplant(orig, ui, repo, *revs, **opts):
- try:
- oldstandins = lfutil.getstandinsstate(repo)
- repo._istransplanting = True
- result = orig(ui, repo, *revs, **opts)
- newstandins = lfutil.getstandinsstate(repo)
- filelist = lfutil.getlfilestoupdate(oldstandins, newstandins)
- lfcommands.updatelfiles(repo.ui, repo, filelist=filelist,
- printmessage=True)
- finally:
- repo._istransplanting = False
- return result
-
-def overridecat(orig, ui, repo, file1, *pats, **opts):
- ctx = scmutil.revsingle(repo, opts.get('rev'))
- if not lfutil.standin(file1) in ctx:
- result = orig(ui, repo, file1, *pats, **opts)
- return result
- return lfcommands.catlfile(repo, file1, ctx.rev(), opts.get('output'))
diff --git a/hgext/largefiles/proto.py b/hgext/largefiles/proto.py
deleted file mode 100644
index de89e32..0000000
--- a/hgext/largefiles/proto.py
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright 2011 Fog Creek Software
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-import os
-import urllib2
-
-from mercurial import error, httppeer, util, wireproto
-from mercurial.wireproto import batchable, future
-from mercurial.i18n import _
-
-import lfutil
-
-LARGEFILES_REQUIRED_MSG = ('\nThis repository uses the largefiles extension.'
- '\n\nPlease enable it in your Mercurial config '
- 'file.\n')
-
-def putlfile(repo, proto, sha):
- '''Put a largefile into a repository's local store and into the
- user cache.'''
- proto.redirect()
-
- path = lfutil.storepath(repo, sha)
- util.makedirs(os.path.dirname(path))
- tmpfp = util.atomictempfile(path, createmode=repo.store.createmode)
-
- try:
- try:
- proto.getfile(tmpfp)
- tmpfp._fp.seek(0)
- if sha != lfutil.hexsha1(tmpfp._fp):
- raise IOError(0, _('largefile contents do not match hash'))
- tmpfp.close()
- lfutil.linktousercache(repo, sha)
- except IOError, e:
- repo.ui.warn(_('largefiles: failed to put %s into store: %s') %
- (sha, e.strerror))
- return wireproto.pushres(1)
- finally:
- tmpfp.discard()
-
- return wireproto.pushres(0)
-
-def getlfile(repo, proto, sha):
- '''Retrieve a largefile from the repository-local cache or system
- cache.'''
- filename = lfutil.findfile(repo, sha)
- if not filename:
- raise util.Abort(_('requested largefile %s not present in cache') % sha)
- f = open(filename, 'rb')
- length = os.fstat(f.fileno())[6]
-
- # Since we can't set an HTTP content-length header here, and
- # Mercurial core provides no way to give the length of a streamres
- # (and reading the entire file into RAM would be ill-advised), we
- # just send the length on the first line of the response, like the
- # ssh proto does for string responses.
- def generator():
- yield '%d\n' % length
- for chunk in f:
- yield chunk
- return wireproto.streamres(generator())
-
-def statlfile(repo, proto, sha):
- '''Return '2\n' if the largefile is missing, '1\n' if it has a
- mismatched checksum, or '0\n' if it is in good condition'''
- filename = lfutil.findfile(repo, sha)
- if not filename:
- return '2\n'
- fd = None
- try:
- fd = open(filename, 'rb')
- return lfutil.hexsha1(fd) == sha and '0\n' or '1\n'
- finally:
- if fd:
- fd.close()
-
-def wirereposetup(ui, repo):
- class lfileswirerepository(repo.__class__):
- def putlfile(self, sha, fd):
- # unfortunately, httprepository._callpush tries to convert its
- # input file-like into a bundle before sending it, so we can't use
- # it ...
- if issubclass(self.__class__, httppeer.httppeer):
- res = None
- try:
- res = self._call('putlfile', data=fd, sha=sha,
- headers={'content-type':'application/mercurial-0.1'})
- d, output = res.split('\n', 1)
- for l in output.splitlines(True):
- self.ui.warn(_('remote: '), l, '\n')
- return int(d)
- except (ValueError, urllib2.HTTPError):
- self.ui.warn(_('unexpected putlfile response: %s') % res)
- return 1
- # ... but we can't use sshrepository._call because the data=
- # argument won't get sent, and _callpush does exactly what we want
- # in this case: send the data straight through
- else:
- try:
- ret, output = self._callpush("putlfile", fd, sha=sha)
- if ret == "":
- raise error.ResponseError(_('putlfile failed:'),
- output)
- return int(ret)
- except IOError:
- return 1
- except ValueError:
- raise error.ResponseError(
- _('putlfile failed (unexpected response):'), ret)
-
- def getlfile(self, sha):
- stream = self._callstream("getlfile", sha=sha)
- length = stream.readline()
- try:
- length = int(length)
- except ValueError:
- self._abort(error.ResponseError(_("unexpected response:"),
- length))
- return (length, stream)
-
- @batchable
- def statlfile(self, sha):
- f = future()
- result = {'sha': sha}
- yield result, f
- try:
- yield int(f.value)
- except (ValueError, urllib2.HTTPError):
- # If the server returns anything but an integer followed by a
- # newline, newline, it's not speaking our language; if we get
- # an HTTP error, we can't be sure the largefile is present;
- # either way, consider it missing.
- yield 2
-
- repo.__class__ = lfileswirerepository
-
-# advertise the largefiles=serve capability
-def capabilities(repo, proto):
- return capabilitiesorig(repo, proto) + ' largefiles=serve'
-
-# duplicate what Mercurial's new out-of-band errors mechanism does, because
-# clients old and new alike both handle it well
-def webprotorefuseclient(self, message):
- self.req.header([('Content-Type', 'application/hg-error')])
- return message
-
-def sshprotorefuseclient(self, message):
- self.ui.write_err('%s\n-\n' % message)
- self.fout.write('\n')
- self.fout.flush()
-
- return ''
-
-def heads(repo, proto):
- if lfutil.islfilesrepo(repo):
- return wireproto.ooberror(LARGEFILES_REQUIRED_MSG)
- return wireproto.heads(repo, proto)
-
-def sshrepocallstream(self, cmd, **args):
- if cmd == 'heads' and self.capable('largefiles'):
- cmd = 'lheads'
- if cmd == 'batch' and self.capable('largefiles'):
- args['cmds'] = args['cmds'].replace('heads ', 'lheads ')
- return ssholdcallstream(self, cmd, **args)
-
-def httprepocallstream(self, cmd, **args):
- if cmd == 'heads' and self.capable('largefiles'):
- cmd = 'lheads'
- if cmd == 'batch' and self.capable('largefiles'):
- args['cmds'] = args['cmds'].replace('heads ', 'lheads ')
- return httpoldcallstream(self, cmd, **args)
diff --git a/hgext/largefiles/remotestore.py b/hgext/largefiles/remotestore.py
deleted file mode 100644
index 6c3d371..0000000
--- a/hgext/largefiles/remotestore.py
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright 2010-2011 Fog Creek Software
-# Copyright 2010-2011 Unity Technologies
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-'''remote largefile store; the base class for servestore'''
-
-import urllib2
-
-from mercurial import util
-from mercurial.i18n import _
-from mercurial.wireproto import remotebatch
-
-import lfutil
-import basestore
-
-class remotestore(basestore.basestore):
- '''a largefile store accessed over a network'''
- def __init__(self, ui, repo, url):
- super(remotestore, self).__init__(ui, repo, url)
-
- def put(self, source, hash):
- if self.sendfile(source, hash):
- raise util.Abort(
- _('remotestore: could not put %s to remote store %s')
- % (source, self.url))
- self.ui.debug(
- _('remotestore: put %s to remote store %s') % (source, self.url))
-
- def exists(self, hashes):
- return self._verify(hashes)
-
- def sendfile(self, filename, hash):
- self.ui.debug('remotestore: sendfile(%s, %s)\n' % (filename, hash))
- fd = None
- try:
- try:
- fd = lfutil.httpsendfile(self.ui, filename)
- except IOError, e:
- raise util.Abort(
- _('remotestore: could not open file %s: %s')
- % (filename, str(e)))
- return self._put(hash, fd)
- finally:
- if fd:
- fd.close()
-
- def _getfile(self, tmpfile, filename, hash):
- # quit if the largefile isn't there
- stat = self._stat(hash)
- if stat == 1:
- raise util.Abort(_('remotestore: largefile %s is invalid') % hash)
- elif stat == 2:
- raise util.Abort(_('remotestore: largefile %s is missing') % hash)
-
- try:
- length, infile = self._get(hash)
- except urllib2.HTTPError, e:
- # 401s get converted to util.Aborts; everything else is fine being
- # turned into a StoreError
- raise basestore.StoreError(filename, hash, self.url, str(e))
- except urllib2.URLError, e:
- # This usually indicates a connection problem, so don't
- # keep trying with the other files... they will probably
- # all fail too.
- raise util.Abort('%s: %s' % (self.url, e.reason))
- except IOError, e:
- raise basestore.StoreError(filename, hash, self.url, str(e))
-
- # Mercurial does not close its SSH connections after writing a stream
- if length is not None:
- infile = lfutil.limitreader(infile, length)
- return lfutil.copyandhash(lfutil.blockstream(infile), tmpfile)
-
- def _verify(self, hashes):
- return self._stat(hashes)
-
- def _verifyfile(self, cctx, cset, contents, standin, verified):
- filename = lfutil.splitstandin(standin)
- if not filename:
- return False
- fctx = cctx[standin]
- key = (filename, fctx.filenode())
- if key in verified:
- return False
-
- verified.add(key)
-
- stat = self._stat(hash)
- if not stat:
- return False
- elif stat == 1:
- self.ui.warn(
- _('changeset %s: %s: contents differ\n')
- % (cset, filename))
- return True # failed
- elif stat == 2:
- self.ui.warn(
- _('changeset %s: %s missing\n')
- % (cset, filename))
- return True # failed
- else:
- raise RuntimeError('verify failed: unexpected response from '
- 'statlfile (%r)' % stat)
-
- def batch(self):
- '''Support for remote batching.'''
- return remotebatch(self)
-
diff --git a/hgext/largefiles/reposetup.py b/hgext/largefiles/reposetup.py
deleted file mode 100644
index 04ab704..0000000
--- a/hgext/largefiles/reposetup.py
+++ /dev/null
@@ -1,475 +0,0 @@
-# Copyright 2009-2010 Gregory P. Ward
-# Copyright 2009-2010 Intelerad Medical Systems Incorporated
-# Copyright 2010-2011 Fog Creek Software
-# Copyright 2010-2011 Unity Technologies
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-'''setup for largefiles repositories: reposetup'''
-import copy
-import types
-import os
-
-from mercurial import context, error, manifest, match as match_, util
-from mercurial import node as node_
-from mercurial.i18n import _
-
-import lfcommands
-import proto
-import lfutil
-
-def reposetup(ui, repo):
- # wire repositories should be given new wireproto functions but not the
- # other largefiles modifications
- if not repo.local():
- return proto.wirereposetup(ui, repo)
-
- for name in ('status', 'commitctx', 'commit', 'push'):
- method = getattr(repo, name)
- if (isinstance(method, types.FunctionType) and
- method.func_name == 'wrap'):
- ui.warn(_('largefiles: repo method %r appears to have already been'
- ' wrapped by another extension: '
- 'largefiles may behave incorrectly\n')
- % name)
-
- class lfilesrepo(repo.__class__):
- lfstatus = False
- def status_nolfiles(self, *args, **kwargs):
- return super(lfilesrepo, self).status(*args, **kwargs)
-
- # When lfstatus is set, return a context that gives the names
- # of largefiles instead of their corresponding standins and
- # identifies the largefiles as always binary, regardless of
- # their actual contents.
- def __getitem__(self, changeid):
- ctx = super(lfilesrepo, self).__getitem__(changeid)
- if self.lfstatus:
- class lfilesmanifestdict(manifest.manifestdict):
- def __contains__(self, filename):
- if super(lfilesmanifestdict,
- self).__contains__(filename):
- return True
- return super(lfilesmanifestdict,
- self).__contains__(lfutil.standin(filename))
- class lfilesctx(ctx.__class__):
- def files(self):
- filenames = super(lfilesctx, self).files()
- return [lfutil.splitstandin(f) or f for f in filenames]
- def manifest(self):
- man1 = super(lfilesctx, self).manifest()
- man1.__class__ = lfilesmanifestdict
- return man1
- def filectx(self, path, fileid=None, filelog=None):
- try:
- if filelog is not None:
- result = super(lfilesctx, self).filectx(
- path, fileid, filelog)
- else:
- result = super(lfilesctx, self).filectx(
- path, fileid)
- except error.LookupError:
- # Adding a null character will cause Mercurial to
- # identify this as a binary file.
- if filelog is not None:
- result = super(lfilesctx, self).filectx(
- lfutil.standin(path), fileid, filelog)
- else:
- result = super(lfilesctx, self).filectx(
- lfutil.standin(path), fileid)
- olddata = result.data
- result.data = lambda: olddata() + '\0'
- return result
- ctx.__class__ = lfilesctx
- return ctx
-
- # Figure out the status of big files and insert them into the
- # appropriate list in the result. Also removes standin files
- # from the listing. Revert to the original status if
- # self.lfstatus is False.
- def status(self, node1='.', node2=None, match=None, ignored=False,
- clean=False, unknown=False, listsubrepos=False):
- listignored, listclean, listunknown = ignored, clean, unknown
- if not self.lfstatus:
- return super(lfilesrepo, self).status(node1, node2, match,
- listignored, listclean, listunknown, listsubrepos)
- else:
- # some calls in this function rely on the old version of status
- self.lfstatus = False
- if isinstance(node1, context.changectx):
- ctx1 = node1
- else:
- ctx1 = repo[node1]
- if isinstance(node2, context.changectx):
- ctx2 = node2
- else:
- ctx2 = repo[node2]
- working = ctx2.rev() is None
- parentworking = working and ctx1 == self['.']
-
- def inctx(file, ctx):
- try:
- if ctx.rev() is None:
- return file in ctx.manifest()
- ctx[file]
- return True
- except KeyError:
- return False
-
- if match is None:
- match = match_.always(self.root, self.getcwd())
-
- # First check if there were files specified on the
- # command line. If there were, and none of them were
- # largefiles, we should just bail here and let super
- # handle it -- thus gaining a big performance boost.
- lfdirstate = lfutil.openlfdirstate(ui, self)
- if match.files() and not match.anypats():
- for f in lfdirstate:
- if match(f):
- break
- else:
- return super(lfilesrepo, self).status(node1, node2,
- match, listignored, listclean,
- listunknown, listsubrepos)
-
- # Create a copy of match that matches standins instead
- # of largefiles.
- def tostandins(files):
- if not working:
- return files
- newfiles = []
- dirstate = repo.dirstate
- for f in files:
- sf = lfutil.standin(f)
- if sf in dirstate:
- newfiles.append(sf)
- elif sf in dirstate.dirs():
- # Directory entries could be regular or
- # standin, check both
- newfiles.extend((f, sf))
- else:
- newfiles.append(f)
- return newfiles
-
- # Create a function that we can use to override what is
- # normally the ignore matcher. We've already checked
- # for ignored files on the first dirstate walk, and
- # unecessarily re-checking here causes a huge performance
- # hit because lfdirstate only knows about largefiles
- def _ignoreoverride(self):
- return False
-
- m = copy.copy(match)
- m._files = tostandins(m._files)
-
- # Get ignored files here even if we weren't asked for them; we
- # must use the result here for filtering later
- result = super(lfilesrepo, self).status(node1, node2, m,
- True, clean, unknown, listsubrepos)
- if working:
- try:
- # Any non-largefiles that were explicitly listed must be
- # taken out or lfdirstate.status will report an error.
- # The status of these files was already computed using
- # super's status.
- # Override lfdirstate's ignore matcher to not do
- # anything
- origignore = lfdirstate._ignore
- lfdirstate._ignore = _ignoreoverride
-
- def sfindirstate(f):
- sf = lfutil.standin(f)
- dirstate = repo.dirstate
- return sf in dirstate or sf in dirstate.dirs()
- match._files = [f for f in match._files
- if sfindirstate(f)]
- # Don't waste time getting the ignored and unknown
- # files again; we already have them
- s = lfdirstate.status(match, [], False,
- listclean, False)
- (unsure, modified, added, removed, missing, unknown,
- ignored, clean) = s
- # Replace the list of ignored and unknown files with
- # the previously caclulated lists, and strip out the
- # largefiles
- lfiles = set(lfdirstate._map)
- ignored = set(result[5]).difference(lfiles)
- unknown = set(result[4]).difference(lfiles)
- if parentworking:
- for lfile in unsure:
- standin = lfutil.standin(lfile)
- if standin not in ctx1:
- # from second parent
- modified.append(lfile)
- elif ctx1[standin].data().strip() \
- != lfutil.hashfile(self.wjoin(lfile)):
- modified.append(lfile)
- else:
- clean.append(lfile)
- lfdirstate.normal(lfile)
- else:
- tocheck = unsure + modified + added + clean
- modified, added, clean = [], [], []
-
- for lfile in tocheck:
- standin = lfutil.standin(lfile)
- if inctx(standin, ctx1):
- if ctx1[standin].data().strip() != \
- lfutil.hashfile(self.wjoin(lfile)):
- modified.append(lfile)
- else:
- clean.append(lfile)
- else:
- added.append(lfile)
- finally:
- # Replace the original ignore function
- lfdirstate._ignore = origignore
-
- for standin in ctx1.manifest():
- if not lfutil.isstandin(standin):
- continue
- lfile = lfutil.splitstandin(standin)
- if not match(lfile):
- continue
- if lfile not in lfdirstate:
- removed.append(lfile)
-
- # Filter result lists
- result = list(result)
-
- # Largefiles are not really removed when they're
- # still in the normal dirstate. Likewise, normal
- # files are not really removed if it's still in
- # lfdirstate. This happens in merges where files
- # change type.
- removed = [f for f in removed if f not in repo.dirstate]
- result[2] = [f for f in result[2] if f not in lfdirstate]
-
- # Unknown files
- unknown = set(unknown).difference(ignored)
- result[4] = [f for f in unknown
- if (repo.dirstate[f] == '?' and
- not lfutil.isstandin(f))]
- # Ignored files were calculated earlier by the dirstate,
- # and we already stripped out the largefiles from the list
- result[5] = ignored
- # combine normal files and largefiles
- normals = [[fn for fn in filelist
- if not lfutil.isstandin(fn)]
- for filelist in result]
- lfiles = (modified, added, removed, missing, [], [], clean)
- result = [sorted(list1 + list2)
- for (list1, list2) in zip(normals, lfiles)]
- else:
- def toname(f):
- if lfutil.isstandin(f):
- return lfutil.splitstandin(f)
- return f
- result = [[toname(f) for f in items] for items in result]
-
- if not listunknown:
- result[4] = []
- if not listignored:
- result[5] = []
- if not listclean:
- result[6] = []
- self.lfstatus = True
- return result
-
- # As part of committing, copy all of the largefiles into the
- # cache.
- def commitctx(self, *args, **kwargs):
- node = super(lfilesrepo, self).commitctx(*args, **kwargs)
- lfutil.copyalltostore(self, node)
- return node
-
- # Before commit, largefile standins have not had their
- # contents updated to reflect the hash of their largefile.
- # Do that here.
- def commit(self, text="", user=None, date=None, match=None,
- force=False, editor=False, extra={}):
- orig = super(lfilesrepo, self).commit
-
- wlock = repo.wlock()
- try:
- # Case 0: Rebase or Transplant
- # We have to take the time to pull down the new largefiles now.
- # Otherwise, any largefiles that were modified in the
- # destination changesets get overwritten, either by the rebase
- # or in the first commit after the rebase or transplant.
- # updatelfiles will update the dirstate to mark any pulled
- # largefiles as modified
- if getattr(repo, "_isrebasing", False) or \
- getattr(repo, "_istransplanting", False):
- lfcommands.updatelfiles(repo.ui, repo, filelist=None,
- printmessage=False)
- result = orig(text=text, user=user, date=date, match=match,
- force=force, editor=editor, extra=extra)
- return result
- # Case 1: user calls commit with no specific files or
- # include/exclude patterns: refresh and commit all files that
- # are "dirty".
- if ((match is None) or
- (not match.anypats() and not match.files())):
- # Spend a bit of time here to get a list of files we know
- # are modified so we can compare only against those.
- # It can cost a lot of time (several seconds)
- # otherwise to update all standins if the largefiles are
- # large.
- lfdirstate = lfutil.openlfdirstate(ui, self)
- dirtymatch = match_.always(repo.root, repo.getcwd())
- s = lfdirstate.status(dirtymatch, [], False, False, False)
- modifiedfiles = []
- for i in s:
- modifiedfiles.extend(i)
- lfiles = lfutil.listlfiles(self)
- # this only loops through largefiles that exist (not
- # removed/renamed)
- for lfile in lfiles:
- if lfile in modifiedfiles:
- if os.path.exists(
- self.wjoin(lfutil.standin(lfile))):
- # this handles the case where a rebase is being
- # performed and the working copy is not updated
- # yet.
- if os.path.exists(self.wjoin(lfile)):
- lfutil.updatestandin(self,
- lfutil.standin(lfile))
- lfdirstate.normal(lfile)
-
- result = orig(text=text, user=user, date=date, match=match,
- force=force, editor=editor, extra=extra)
-
- if result is not None:
- for lfile in lfdirstate:
- if lfile in modifiedfiles:
- if (not os.path.exists(repo.wjoin(
- lfutil.standin(lfile)))) or \
- (not os.path.exists(repo.wjoin(lfile))):
- lfdirstate.drop(lfile)
-
- # This needs to be after commit; otherwise precommit hooks
- # get the wrong status
- lfdirstate.write()
- return result
-
- for f in match.files():
- if lfutil.isstandin(f):
- raise util.Abort(
- _('file "%s" is a largefile standin') % f,
- hint=('commit the largefile itself instead'))
-
- # Case 2: user calls commit with specified patterns: refresh
- # any matching big files.
- smatcher = lfutil.composestandinmatcher(self, match)
- standins = lfutil.dirstatewalk(self.dirstate, smatcher)
-
- # No matching big files: get out of the way and pass control to
- # the usual commit() method.
- if not standins:
- return orig(text=text, user=user, date=date, match=match,
- force=force, editor=editor, extra=extra)
-
- # Refresh all matching big files. It's possible that the
- # commit will end up failing, in which case the big files will
- # stay refreshed. No harm done: the user modified them and
- # asked to commit them, so sooner or later we're going to
- # refresh the standins. Might as well leave them refreshed.
- lfdirstate = lfutil.openlfdirstate(ui, self)
- for standin in standins:
- lfile = lfutil.splitstandin(standin)
- if lfdirstate[lfile] <> 'r':
- lfutil.updatestandin(self, standin)
- lfdirstate.normal(lfile)
- else:
- lfdirstate.drop(lfile)
-
- # Cook up a new matcher that only matches regular files or
- # standins corresponding to the big files requested by the
- # user. Have to modify _files to prevent commit() from
- # complaining "not tracked" for big files.
- lfiles = lfutil.listlfiles(repo)
- match = copy.copy(match)
- origmatchfn = match.matchfn
-
- # Check both the list of largefiles and the list of
- # standins because if a largefile was removed, it
- # won't be in the list of largefiles at this point
- match._files += sorted(standins)
-
- actualfiles = []
- for f in match._files:
- fstandin = lfutil.standin(f)
-
- # ignore known largefiles and standins
- if f in lfiles or fstandin in standins:
- continue
-
- # append directory separator to avoid collisions
- if not fstandin.endswith(os.sep):
- fstandin += os.sep
-
- actualfiles.append(f)
- match._files = actualfiles
-
- def matchfn(f):
- if origmatchfn(f):
- return f not in lfiles
- else:
- return f in standins
-
- match.matchfn = matchfn
- result = orig(text=text, user=user, date=date, match=match,
- force=force, editor=editor, extra=extra)
- # This needs to be after commit; otherwise precommit hooks
- # get the wrong status
- lfdirstate.write()
- return result
- finally:
- wlock.release()
-
- def push(self, remote, force=False, revs=None, newbranch=False):
- o = lfutil.findoutgoing(repo, remote, force)
- if o:
- toupload = set()
- o = repo.changelog.nodesbetween(o, revs)[0]
- for n in o:
- parents = [p for p in repo.changelog.parents(n)
- if p != node_.nullid]
- ctx = repo[n]
- files = set(ctx.files())
- if len(parents) == 2:
- mc = ctx.manifest()
- mp1 = ctx.parents()[0].manifest()
- mp2 = ctx.parents()[1].manifest()
- for f in mp1:
- if f not in mc:
- files.add(f)
- for f in mp2:
- if f not in mc:
- files.add(f)
- for f in mc:
- if mc[f] != mp1.get(f, None) or mc[f] != mp2.get(f,
- None):
- files.add(f)
-
- toupload = toupload.union(
- set([ctx[f].data().strip()
- for f in files
- if lfutil.isstandin(f) and f in ctx]))
- lfcommands.uploadlfiles(ui, self, remote, toupload)
- return super(lfilesrepo, self).push(remote, force, revs,
- newbranch)
-
- repo.__class__ = lfilesrepo
-
- def checkrequireslfiles(ui, repo, **kwargs):
- if 'largefiles' not in repo.requirements and util.any(
- lfutil.shortname+'/' in f[0] for f in repo.store.datafiles()):
- repo.requirements.add('largefiles')
- repo._writerequirements()
-
- ui.setconfig('hooks', 'changegroup.lfiles', checkrequireslfiles)
- ui.setconfig('hooks', 'commit.lfiles', checkrequireslfiles)
diff --git a/hgext/largefiles/uisetup.py b/hgext/largefiles/uisetup.py
deleted file mode 100644
index e50190b..0000000
--- a/hgext/largefiles/uisetup.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright 2009-2010 Gregory P. Ward
-# Copyright 2009-2010 Intelerad Medical Systems Incorporated
-# Copyright 2010-2011 Fog Creek Software
-# Copyright 2010-2011 Unity Technologies
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-'''setup for largefiles extension: uisetup'''
-
-from mercurial import archival, cmdutil, commands, extensions, filemerge, hg, \
- httppeer, localrepo, merge, sshpeer, sshserver, wireproto
-from mercurial.i18n import _
-from mercurial.hgweb import hgweb_mod, protocol, webcommands
-from mercurial.subrepo import hgsubrepo
-
-import overrides
-import proto
-
-def uisetup(ui):
- # Disable auto-status for some commands which assume that all
- # files in the result are under Mercurial's control
-
- entry = extensions.wrapcommand(commands.table, 'add',
- overrides.overrideadd)
- addopt = [('', 'large', None, _('add as largefile')),
- ('', 'normal', None, _('add as normal file')),
- ('', 'lfsize', '', _('add all files above this size '
- '(in megabytes) as largefiles '
- '(default: 10)'))]
- entry[1].extend(addopt)
-
- entry = extensions.wrapcommand(commands.table, 'addremove',
- overrides.overrideaddremove)
- entry = extensions.wrapcommand(commands.table, 'remove',
- overrides.overrideremove)
- entry = extensions.wrapcommand(commands.table, 'forget',
- overrides.overrideforget)
-
- # Subrepos call status function
- entry = extensions.wrapcommand(commands.table, 'status',
- overrides.overridestatus)
- entry = extensions.wrapfunction(hgsubrepo, 'status',
- overrides.overridestatusfn)
-
- entry = extensions.wrapcommand(commands.table, 'log',
- overrides.overridelog)
- entry = extensions.wrapcommand(commands.table, 'rollback',
- overrides.overriderollback)
- entry = extensions.wrapcommand(commands.table, 'verify',
- overrides.overrideverify)
-
- verifyopt = [('', 'large', None, _('verify largefiles')),
- ('', 'lfa', None,
- _('verify all revisions of largefiles not just current')),
- ('', 'lfc', None,
- _('verify largefile contents not just existence'))]
- entry[1].extend(verifyopt)
-
- entry = extensions.wrapcommand(commands.table, 'outgoing',
- overrides.overrideoutgoing)
- outgoingopt = [('', 'large', None, _('display outgoing largefiles'))]
- entry[1].extend(outgoingopt)
- entry = extensions.wrapcommand(commands.table, 'summary',
- overrides.overridesummary)
- summaryopt = [('', 'large', None, _('display outgoing largefiles'))]
- entry[1].extend(summaryopt)
-
- entry = extensions.wrapcommand(commands.table, 'update',
- overrides.overrideupdate)
- entry = extensions.wrapcommand(commands.table, 'pull',
- overrides.overridepull)
- pullopt = [('', 'all-largefiles', None,
- _('download all pulled versions of largefiles'))]
- entry[1].extend(pullopt)
- entry = extensions.wrapcommand(commands.table, 'clone',
- overrides.overrideclone)
- cloneopt = [('', 'all-largefiles', None,
- _('download all versions of all largefiles'))]
-
- entry[1].extend(cloneopt)
- entry = extensions.wrapcommand(commands.table, 'cat',
- overrides.overridecat)
- entry = extensions.wrapfunction(merge, '_checkunknownfile',
- overrides.overridecheckunknownfile)
- entry = extensions.wrapfunction(merge, 'manifestmerge',
- overrides.overridemanifestmerge)
- entry = extensions.wrapfunction(filemerge, 'filemerge',
- overrides.overridefilemerge)
- entry = extensions.wrapfunction(cmdutil, 'copy',
- overrides.overridecopy)
-
- # Summary calls dirty on the subrepos
- entry = extensions.wrapfunction(hgsubrepo, 'dirty',
- overrides.overridedirty)
-
- # Backout calls revert so we need to override both the command and the
- # function
- entry = extensions.wrapcommand(commands.table, 'revert',
- overrides.overriderevert)
- entry = extensions.wrapfunction(commands, 'revert',
- overrides.overriderevert)
-
- # clone uses hg._update instead of hg.update even though they are the
- # same function... so wrap both of them)
- extensions.wrapfunction(hg, 'update', overrides.hgupdate)
- extensions.wrapfunction(hg, '_update', overrides.hgupdate)
- extensions.wrapfunction(hg, 'clean', overrides.hgclean)
- extensions.wrapfunction(hg, 'merge', overrides.hgmerge)
-
- extensions.wrapfunction(archival, 'archive', overrides.overridearchive)
- extensions.wrapfunction(hgsubrepo, 'archive', overrides.hgsubrepoarchive)
- extensions.wrapfunction(cmdutil, 'bailifchanged',
- overrides.overridebailifchanged)
-
- # create the new wireproto commands ...
- wireproto.commands['putlfile'] = (proto.putlfile, 'sha')
- wireproto.commands['getlfile'] = (proto.getlfile, 'sha')
- wireproto.commands['statlfile'] = (proto.statlfile, 'sha')
-
- # ... and wrap some existing ones
- wireproto.commands['capabilities'] = (proto.capabilities, '')
- wireproto.commands['heads'] = (proto.heads, '')
- wireproto.commands['lheads'] = (wireproto.heads, '')
-
- # make putlfile behave the same as push and {get,stat}lfile behave
- # the same as pull w.r.t. permissions checks
- hgweb_mod.perms['putlfile'] = 'push'
- hgweb_mod.perms['getlfile'] = 'pull'
- hgweb_mod.perms['statlfile'] = 'pull'
-
- extensions.wrapfunction(webcommands, 'decodepath', overrides.decodepath)
-
- # the hello wireproto command uses wireproto.capabilities, so it won't see
- # our largefiles capability unless we replace the actual function as well.
- proto.capabilitiesorig = wireproto.capabilities
- wireproto.capabilities = proto.capabilities
-
- # these let us reject non-largefiles clients and make them display
- # our error messages
- protocol.webproto.refuseclient = proto.webprotorefuseclient
- sshserver.sshserver.refuseclient = proto.sshprotorefuseclient
-
- # can't do this in reposetup because it needs to have happened before
- # wirerepo.__init__ is called
- proto.ssholdcallstream = sshpeer.sshpeer._callstream
- proto.httpoldcallstream = httppeer.httppeer._callstream
- sshpeer.sshpeer._callstream = proto.sshrepocallstream
- httppeer.httppeer._callstream = proto.httprepocallstream
-
- # don't die on seeing a repo with the largefiles requirement
- localrepo.localrepository.supported |= set(['largefiles'])
-
- # override some extensions' stuff as well
- for name, module in extensions.extensions():
- if name == 'fetch':
- extensions.wrapcommand(getattr(module, 'cmdtable'), 'fetch',
- overrides.overridefetch)
- if name == 'purge':
- extensions.wrapcommand(getattr(module, 'cmdtable'), 'purge',
- overrides.overridepurge)
- if name == 'rebase':
- extensions.wrapcommand(getattr(module, 'cmdtable'), 'rebase',
- overrides.overriderebase)
- if name == 'transplant':
- extensions.wrapcommand(getattr(module, 'cmdtable'), 'transplant',
- overrides.overridetransplant)
diff --git a/hgext/largefiles/wirestore.py b/hgext/largefiles/wirestore.py
deleted file mode 100644
index a394cf0..0000000
--- a/hgext/largefiles/wirestore.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 2010-2011 Fog Creek Software
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-'''largefile store working over Mercurial's wire protocol'''
-
-import lfutil
-import remotestore
-
-class wirestore(remotestore.remotestore):
- def __init__(self, ui, repo, remote):
- cap = remote.capable('largefiles')
- if not cap:
- raise lfutil.storeprotonotcapable([])
- storetypes = cap.split(',')
- if 'serve' not in storetypes:
- raise lfutil.storeprotonotcapable(storetypes)
- self.remote = remote
- super(wirestore, self).__init__(ui, repo, remote.url())
-
- def _put(self, hash, fd):
- return self.remote.putlfile(hash, fd)
-
- def _get(self, hash):
- return self.remote.getlfile(hash)
-
- def _stat(self, hashes):
- batch = self.remote.batch()
- futures = {}
- for hash in hashes:
- futures[hash] = batch.statlfile(hash)
- batch.submit()
- retval = {}
- for hash in hashes:
- retval[hash] = not futures[hash].value
- return retval
diff --git a/hgext/mq.py b/hgext/mq.py
index 33a31c4..a1b4e81 100644
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -38,32 +38,15 @@ preserving existing git patches upon qrefresh. If set to 'yes' or
'no', mq will override the [diff] section and always generate git or
regular patches, possibly losing data in the second case.
-It may be desirable for mq changesets to be kept in the secret phase (see
-:hg:`help phases`), which can be enabled with the following setting::
-
- [mq]
- secret = True
-
You will by default be managing a patch queue named "patches". You can
create other, independent patch queues with the :hg:`qqueue` command.
-
-If the working directory contains uncommitted files, qpush, qpop and
-qgoto abort immediately. If -f/--force is used, the changes are
-discarded. Setting::
-
- [mq]
- keepchanges = True
-
-make them behave as if --keep-changes were passed, and non-conflicting
-local changes will be tolerated and preserved. If incompatible options
-such as -f/--force or --exact are passed, this setting is ignored.
'''
from mercurial.i18n import _
from mercurial.node import bin, hex, short, nullid, nullrev
from mercurial.lock import release
from mercurial import commands, cmdutil, hg, scmutil, util, revset
-from mercurial import repair, extensions, url, error, phases
+from mercurial import repair, extensions, url, error
from mercurial import patch as patchmod
import os, re, errno, shutil
@@ -73,7 +56,6 @@ seriesopts = [('s', 'summary', None, _('print first line of patch header'))]
cmdtable = {}
command = cmdutil.command(cmdtable)
-testedwith = 'internal'
# Patch names looks like unix-file names.
# They must be joinable with queue directory and result in the patch path.
@@ -269,32 +251,6 @@ class patchheader(object):
ci += 1
del self.comments[ci]
-def newcommit(repo, phase, *args, **kwargs):
- """helper dedicated to ensure a commit respect mq.secret setting
-
- It should be used instead of repo.commit inside the mq source for operation
- creating new changeset.
- """
- if phase is None:
- if repo.ui.configbool('mq', 'secret', False):
- phase = phases.secret
- if phase is not None:
- backup = repo.ui.backupconfig('phases', 'new-commit')
- # Marking the repository as committing an mq patch can be used
- # to optimize operations like _branchtags().
- repo._committingpatch = True
- try:
- if phase is not None:
- repo.ui.setconfig('phases', 'new-commit', phase)
- return repo.commit(*args, **kwargs)
- finally:
- repo._committingpatch = False
- if phase is not None:
- repo.ui.restoreconfig(backup)
-
-class AbortNoCleanup(error.Abort):
- pass
-
class queue(object):
def __init__(self, ui, path, patchdir=None):
self.basepath = path
@@ -311,8 +267,8 @@ class queue(object):
self.path = patchdir or curpath
self.opener = scmutil.opener(self.path)
self.ui = ui
- self.applieddirty = False
- self.seriesdirty = False
+ self.applieddirty = 0
+ self.seriesdirty = 0
self.added = []
self.seriespath = "series"
self.statuspath = "status"
@@ -323,7 +279,7 @@ class queue(object):
try:
gitmode = ui.configbool('mq', 'git', None)
if gitmode is None:
- raise error.ConfigError
+ raise error.ConfigError()
self.gitmode = gitmode and 'yes' or 'no'
except error.ConfigError:
self.gitmode = ui.config('mq', 'git', 'auto').lower()
@@ -331,31 +287,25 @@ class queue(object):
@util.propertycache
def applied(self):
- 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
- try:
+ if os.path.exists(self.join(self.statuspath)):
+ 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.read(self.statuspath).splitlines()
return list(parselines(lines))
- except IOError, e:
- if e.errno == errno.ENOENT:
- return []
- raise
+ return []
@util.propertycache
def fullseries(self):
- try:
+ if os.path.exists(self.join(self.seriespath)):
return self.opener.read(self.seriespath).splitlines()
- except IOError, e:
- if e.errno == errno.ENOENT:
- return []
- raise
+ return []
@util.propertycache
def series(self):
@@ -371,8 +321,8 @@ class queue(object):
for a in 'applied fullseries series seriesguards'.split():
if a in self.__dict__:
delattr(self, a)
- self.applieddirty = False
- self.seriesdirty = False
+ self.applieddirty = 0
+ self.seriesdirty = 0
self.guardsdirty = False
self.activeguards = None
@@ -547,13 +497,10 @@ class queue(object):
fp.close()
if self.applieddirty:
writelist(map(str, self.applied), self.statuspath)
- self.applieddirty = False
if self.seriesdirty:
writelist(self.fullseries, self.seriespath)
- self.seriesdirty = False
if self.guardsdirty:
writelist(self.activeguards, self.guardspath)
- self.guardsdirty = False
if self.added:
qrepo = self.qrepo()
if qrepo:
@@ -569,18 +516,6 @@ class queue(object):
except OSError, inst:
self.ui.warn(_('error removing undo: %s\n') % str(inst))
- def backup(self, repo, files, copy=False):
- # backup local changes in --force case
- for f in sorted(files):
- absf = repo.wjoin(f)
- if os.path.lexists(absf):
- self.ui.note(_('saving current version of %s as %s\n') %
- (f, f + '.orig'))
- if copy:
- util.copyfile(absf, absf + '.orig')
- else:
- util.rename(absf, absf + '.orig')
-
def printdiff(self, repo, diffopts, node1, node2=None, files=None,
fp=None, changes=None, opts={}):
stat = opts.get('stat')
@@ -609,12 +544,12 @@ class queue(object):
ret = hg.merge(repo, rev)
if ret:
raise util.Abort(_("update returned %d") % ret)
- n = newcommit(repo, None, ctx.description(), ctx.user(), force=True)
+ n = repo.commit(ctx.description(), ctx.user(), force=True)
if n is None:
raise util.Abort(_("repo commit failed"))
try:
ph = patchheader(mergeq.join(patch), self.plainmode)
- except Exception:
+ except:
raise util.Abort(_("unable to read %s") % patch)
diffopts = self.patchopts(diffopts, patch)
@@ -649,10 +584,10 @@ class queue(object):
# the first patch in the queue is never a merge patch
#
pname = ".hg.patches.merge.marker"
- n = newcommit(repo, None, '[mq]: merge marker', force=True)
+ n = repo.commit('[mq]: merge marker', force=True)
self.removeundo(repo)
self.applied.append(statusentry(n, pname))
- self.applieddirty = True
+ self.applieddirty = 1
head = self.qparents(repo)
@@ -673,7 +608,7 @@ class queue(object):
err, head = self.mergeone(repo, mergeq, head, patch, rev, diffopts)
if head:
self.applied.append(statusentry(head, patch))
- self.applieddirty = True
+ self.applieddirty = 1
if err:
return (err, head)
self.savedirty()
@@ -691,12 +626,10 @@ class queue(object):
self.ui.note(str(inst) + '\n')
if not self.ui.verbose:
self.ui.warn(_("patch failed, unable to continue (try -v)\n"))
- self.ui.traceback()
return (False, list(files), False)
def apply(self, repo, series, list=False, update_status=True,
- strict=False, patchdir=None, merge=None, all_files=None,
- tobackup=None, keepchanges=False):
+ strict=False, patchdir=None, merge=None, all_files=None):
wlock = lock = tr = None
try:
wlock = repo.wlock()
@@ -704,36 +637,25 @@ class queue(object):
tr = repo.transaction("qpush")
try:
ret = self._apply(repo, series, list, update_status,
- strict, patchdir, merge, all_files=all_files,
- tobackup=tobackup, keepchanges=keepchanges)
+ strict, patchdir, merge, all_files=all_files)
tr.close()
self.savedirty()
return ret
- except AbortNoCleanup:
- tr.close()
- self.savedirty()
- return 2, repo.dirstate.p1()
- except: # re-raises
+ except:
try:
tr.abort()
finally:
repo.invalidate()
repo.dirstate.invalidate()
- self.invalidate()
raise
finally:
release(tr, lock, wlock)
self.removeundo(repo)
def _apply(self, repo, series, list=False, update_status=True,
- strict=False, patchdir=None, merge=None, all_files=None,
- tobackup=None, keepchanges=False):
- """returns (error, hash)
-
- error = 1 for unable to read, 2 for patch failed, 3 for patch
- fuzz. tobackup is None or a set of files to backup before they
- are modified by a patch.
- """
+ strict=False, patchdir=None, merge=None, all_files=None):
+ '''returns (error, hash)
+ error = 1 for unable to read, 2 for patch failed, 3 for patch fuzz'''
# TODO unify with commands.py
if not patchdir:
patchdir = self.path
@@ -765,14 +687,6 @@ class queue(object):
message = '\n'.join(message)
if ph.haspatch:
- if tobackup:
- touched = patchmod.changedfiles(self.ui, repo, pf)
- touched = set(touched) & tobackup
- if touched and keepchanges:
- raise AbortNoCleanup(
- _("local changes found, refresh first"))
- self.backup(repo, touched, copy=True)
- tobackup = tobackup - touched
(patcherr, files, fuzz) = self.patch(repo, pf)
if all_files is not None:
all_files.update(files)
@@ -795,14 +709,11 @@ class queue(object):
for f in merged:
repo.dirstate.merge(f)
p1, p2 = repo.dirstate.parents()
- repo.setparents(p1, merge)
+ repo.dirstate.setparents(p1, merge)
match = scmutil.matchfiles(repo, files or [])
- oldtip = repo['tip']
- n = newcommit(repo, None, message, ph.user, ph.date, match=match,
- force=True)
- if repo['tip'] == oldtip:
- raise util.Abort(_("qpush exactly duplicates child changeset"))
+ n = repo.commit(message, ph.user, ph.date, match=match, force=True)
+
if n is None:
raise util.Abort(_("repository commit failed"))
@@ -828,11 +739,10 @@ class queue(object):
for p in patches:
os.unlink(self.join(p))
- qfinished = []
if numrevs:
qfinished = self.applied[:numrevs]
del self.applied[:numrevs]
- self.applieddirty = True
+ self.applieddirty = 1
unknown = []
@@ -854,8 +764,7 @@ class queue(object):
raise util.Abort(''.join(msg % p for p in unknown))
self.parseseries()
- self.seriesdirty = True
- return [entry.node for entry in qfinished]
+ self.seriesdirty = 1
def _revpatches(self, repo, revs):
firstrev = repo[self.applied[0].node].rev()
@@ -882,17 +791,8 @@ class queue(object):
return patches
def finish(self, repo, revs):
- # Manually trigger phase computation to ensure phasedefaults is
- # executed before we remove the patches.
- repo._phasecache
patches = self._revpatches(repo, sorted(revs))
- qfinished = self._cleanup(patches, len(patches))
- if qfinished and repo.ui.configbool('mq', 'secret', False):
- # only use this logic when the secret option is added
- oldqbase = repo[qfinished[0]]
- tphase = repo.ui.config('phases', 'new-commit', phases.draft)
- if oldqbase.phase() > tphase and oldqbase.p1().phase() <= tphase:
- phases.advanceboundary(repo, tphase, qfinished)
+ self._cleanup(patches, len(patches))
def delete(self, repo, patches, opts):
if not patches and not opts.get('rev'):
@@ -933,35 +833,19 @@ class queue(object):
return top, patch
return None, None
- def checksubstate(self, repo, baserev=None):
+ def checksubstate(self, repo):
'''return list of subrepos at a different revision than substate.
Abort if any subrepos have uncommitted changes.'''
inclsubs = []
wctx = repo[None]
- if baserev:
- bctx = repo[baserev]
- else:
- bctx = wctx.parents()[0]
for s in wctx.substate:
if wctx.sub(s).dirty(True):
raise util.Abort(
_("uncommitted changes in subrepository %s") % s)
- elif s not in bctx.substate or bctx.sub(s).dirty():
+ elif wctx.sub(s).dirty():
inclsubs.append(s)
return inclsubs
- def putsubstate2changes(self, substatestate, changes):
- for files in changes[:3]:
- if '.hgsubstate' in files:
- return # already listed up
- # not yet listed up
- if substatestate in 'a?':
- changes[1].append('.hgsubstate')
- elif substatestate in 'r':
- changes[2].append('.hgsubstate')
- else: # modified
- changes[0].append('.hgsubstate')
-
def localchangesfound(self, refresh=True):
if refresh:
raise util.Abort(_("local changes found, refresh first"))
@@ -997,10 +881,6 @@ class queue(object):
else:
raise util.Abort(_('patch "%s" already exists') % name)
- def checkkeepchanges(self, keepchanges, force):
- if force and keepchanges:
- raise util.Abort(_('cannot use both --force and --keep-changes'))
-
def new(self, repo, patchfn, *pats, **opts):
"""options:
msg: a string or a no-argument function returning a string
@@ -1016,7 +896,6 @@ class queue(object):
inclsubs = self.checksubstate(repo)
if inclsubs:
inclsubs.append('.hgsubstate')
- substatestate = repo.dirstate['.hgsubstate']
if opts.get('include') or opts.get('exclude') or pats:
if inclsubs:
pats = list(pats or []) + inclsubs
@@ -1026,12 +905,10 @@ class queue(object):
if f != '.hgsubstate': # .hgsubstate is auto-created
raise util.Abort('%s: %s' % (f, msg))
match.bad = badfn
- changes = repo.status(match=match)
- m, a, r, d = changes[:4]
+ m, a, r, d = repo.status(match=match)[:4]
else:
- changes = self.checklocalchanges(repo, force=True)
- m, a, r, d = changes
- match = scmutil.matchfiles(repo, m + a + r + inclsubs)
+ m, a, r, d = self.checklocalchanges(repo, force=True)
+ match = scmutil.matchfiles(repo, m + a + r + inclsubs)
if len(repo[None].parents()) > 1:
raise util.Abort(_('cannot manage merge changesets'))
commitfiles = m + a + r
@@ -1061,42 +938,41 @@ class queue(object):
p.write("# User " + user + "\n")
if date:
p.write("# Date %s %s\n\n" % date)
- if util.safehasattr(msg, '__call__'):
+ if hasattr(msg, '__call__'):
msg = msg()
commitmsg = msg and msg or ("[mq]: %s" % patchfn)
- n = newcommit(repo, None, commitmsg, user, date, match=match,
- force=True)
+ n = repo.commit(commitmsg, user, date, match=match, force=True)
if n is None:
raise util.Abort(_("repo commit failed"))
try:
self.fullseries[insert:insert] = [patchfn]
self.applied.append(statusentry(n, patchfn))
self.parseseries()
- self.seriesdirty = True
- self.applieddirty = True
+ self.seriesdirty = 1
+ self.applieddirty = 1
if msg:
msg = msg + "\n\n"
p.write(msg)
if commitfiles:
parent = self.qparents(repo, n)
- if inclsubs:
- self.putsubstate2changes(substatestate, changes)
chunks = patchmod.diff(repo, node1=parent, node2=n,
- changes=changes, opts=diffopts)
+ match=match, opts=diffopts)
for chunk in chunks:
p.write(chunk)
p.close()
+ wlock.release()
+ wlock = None
r = self.qrepo()
if r:
r[None].add([patchfn])
- except: # re-raises
+ except:
repo.rollback()
raise
except Exception:
patchpath = self.join(patchfn)
try:
os.unlink(patchpath)
- except OSError:
+ except:
self.ui.warn(_('error unlinking %s\n') % patchpath)
raise
self.removeundo(repo)
@@ -1115,7 +991,12 @@ class queue(object):
hg.clean(repo, urev)
repo.dirstate.write()
- repair.strip(self.ui, repo, revs, backup)
+ self.removeundo(repo)
+ for rev in revs:
+ repair.strip(self.ui, repo, rev, backup)
+ # strip may have unbundled a set of backed up revisions after
+ # the actual strip
+ self.removeundo(repo)
finally:
release(lock, wlock)
@@ -1129,10 +1010,12 @@ class queue(object):
# if the exact patch name does not exist, we try a few
# variations. If strict is passed, we try only #1
#
- # 1) a number (as string) to indicate an offset in the series file
+ # 1) a number to indicate an offset in the series file
# 2) a unique substring of the patch name was given
# 3) patchname[-+]num to indicate an offset in the series file
def lookup(self, patch, strict=False):
+ patch = patch and str(patch)
+
def partialname(s):
if s in self.series:
return s
@@ -1151,6 +1034,8 @@ class queue(object):
return self.series[0]
return None
+ if patch is None:
+ return None
if patch in self.series:
return patch
@@ -1193,10 +1078,8 @@ class queue(object):
return self.series[i + off]
raise util.Abort(_("patch %s not in series") % patch)
- def push(self, repo, patch=None, force=False, list=False, mergeq=None,
- all=False, move=False, exact=False, nobackup=False,
- keepchanges=False):
- self.checkkeepchanges(keepchanges, force)
+ def push(self, repo, patch=None, force=False, list=False,
+ mergeq=None, all=False, move=False, exact=False):
diffopts = self.diffopts()
wlock = repo.wlock()
try:
@@ -1212,12 +1095,12 @@ class queue(object):
self.ui.warn(_('no patches in series\n'))
return 0
+ patch = self.lookup(patch)
# Suppose our series file is: A B C and the current 'top'
# patch is B. qpush C should be performed (moving forward)
# qpush B is a NOP (no change) qpush A is an error (can't
# go backwards with qpush)
if patch:
- patch = self.lookup(patch)
info = self.isapplied(patch)
if info and info[0] >= len(self.applied) - 1:
self.ui.warn(
@@ -1251,47 +1134,37 @@ class queue(object):
if start == len(self.series):
self.ui.warn(_('patch series already fully applied\n'))
return 1
- if not force and not keepchanges:
+ if not force:
self.checklocalchanges(repo, refresh=self.applied)
if exact:
- if keepchanges:
- raise util.Abort(
- _("cannot use --exact and --keep-changes together"))
if move:
- raise util.Abort(_('cannot use --exact and --move '
- 'together'))
+ raise util.Abort(_("cannot use --exact and --move together"))
if self.applied:
- raise util.Abort(_('cannot push --exact with applied '
- 'patches'))
+ raise util.Abort(_("cannot push --exact with applied patches"))
root = self.series[start]
target = patchheader(self.join(root), self.plainmode).parent
if not target:
- raise util.Abort(
- _("%s does not have a parent recorded") % root)
+ raise util.Abort(_("%s does not have a parent recorded" % root))
if not repo[target] == repo['.']:
hg.update(repo, target)
if move:
if not patch:
raise util.Abort(_("please specify the patch to move"))
- for fullstart, rpn in enumerate(self.fullseries):
- # strip markers for patch guards
- if self.guard_re.split(rpn, 1)[0] == self.series[start]:
- break
- for i, rpn in enumerate(self.fullseries[fullstart:]):
+ for i, rpn in enumerate(self.fullseries[start:]):
# strip markers for patch guards
if self.guard_re.split(rpn, 1)[0] == patch:
break
- index = fullstart + i
+ index = start + i
assert index < len(self.fullseries)
fullpatch = self.fullseries[index]
del self.fullseries[index]
- self.fullseries.insert(fullstart, fullpatch)
+ self.fullseries.insert(start, fullpatch)
self.parseseries()
- self.seriesdirty = True
+ self.seriesdirty = 1
- self.applieddirty = True
+ self.applieddirty = 1
if start > 0:
self.checktoppatch(repo)
if not patch:
@@ -1300,23 +1173,14 @@ class queue(object):
else:
end = self.series.index(patch, start) + 1
- tobackup = set()
- if (not nobackup and force) or keepchanges:
- m, a, r, d = self.checklocalchanges(repo, force=True)
- if keepchanges:
- tobackup.update(m + a + r + d)
- else:
- tobackup.update(m + a)
-
s = self.series[start:end]
all_files = set()
try:
if mergeq:
ret = self.mergepatch(repo, mergeq, s, diffopts)
else:
- ret = self.apply(repo, s, list, all_files=all_files,
- tobackup=tobackup, keepchanges=keepchanges)
- except: # re-raises
+ ret = self.apply(repo, s, list, all_files=all_files)
+ except:
self.ui.warn(_('cleaning up working directory...'))
node = repo.dirstate.p1()
hg.revert(repo, node, None)
@@ -1345,9 +1209,7 @@ class queue(object):
finally:
wlock.release()
- def pop(self, repo, patch=None, force=False, update=True, all=False,
- nobackup=False, keepchanges=False):
- self.checkkeepchanges(keepchanges, force)
+ def pop(self, repo, patch=None, force=False, update=True, all=False):
wlock = repo.wlock()
try:
if patch:
@@ -1392,17 +1254,10 @@ class queue(object):
break
update = needupdate
- tobackup = set()
- if update:
- m, a, r, d = self.checklocalchanges(
- repo, force=force or keepchanges)
- if force:
- if not nobackup:
- tobackup.update(m + a)
- elif keepchanges:
- tobackup.update(m + a + r + d)
-
- self.applieddirty = True
+ if not force and update:
+ self.checklocalchanges(repo)
+
+ self.applieddirty = 1
end = len(self.applied)
rev = self.applied[start].node
if update:
@@ -1417,10 +1272,6 @@ class queue(object):
if heads != [self.applied[-1].node]:
raise util.Abort(_("popping would remove a revision not "
"managed by this patch queue"))
- if not repo[self.applied[-1].node].mutable():
- raise util.Abort(
- _("popping would remove an immutable revision"),
- hint=_('see "hg help phases" for details'))
# we know there are no local changes, so we can make a simplified
# form of hg.update.
@@ -1430,12 +1281,6 @@ class queue(object):
m, a, r, d = repo.status(qp, top)[:4]
if d:
raise util.Abort(_("deletions found between repo revs"))
-
- tobackup = set(a + m + r) & tobackup
- if keepchanges and tobackup:
- self.localchangesfound()
- self.backup(repo, tobackup)
-
for f in a:
try:
util.unlinkpath(repo.wjoin(f))
@@ -1447,7 +1292,7 @@ class queue(object):
fctx = ctx[f]
repo.wwrite(f, fctx.data(), fctx.flags())
repo.dirstate.normal(f)
- repo.setparents(qp, nullid)
+ repo.dirstate.setparents(qp, nullid)
for patch in reversed(self.applied[start:end]):
self.ui.status(_("popping %s\n") % patch.name)
del self.applied[start:end]
@@ -1488,18 +1333,11 @@ class queue(object):
(top, patchfn) = (self.applied[-1].node, self.applied[-1].name)
if repo.changelog.heads(top) != [top]:
raise util.Abort(_("cannot refresh a revision with children"))
- if not repo[top].mutable():
- raise util.Abort(_("cannot refresh immutable revision"),
- hint=_('see "hg help phases" for details'))
+
+ inclsubs = self.checksubstate(repo)
cparents = repo.changelog.parents(top)
patchparent = self.qparents(repo, top)
-
- inclsubs = self.checksubstate(repo, hex(patchparent))
- if inclsubs:
- inclsubs.append('.hgsubstate')
- substatestate = repo.dirstate['.hgsubstate']
-
ph = patchheader(self.join(patchfn), self.plainmode)
diffopts = self.diffopts({'git': opts.get('git')}, patchfn)
if msg:
@@ -1577,6 +1415,10 @@ class queue(object):
a = list(aa)
c = [filter(matchfn, l) for l in (m, a, r)]
match = scmutil.matchfiles(repo, set(c[0] + c[1] + c[2] + inclsubs))
+ chunks = patchmod.diff(repo, patchparent, match=match,
+ changes=c, opts=diffopts)
+ for chunk in chunks:
+ patchf.write(chunk)
try:
if diffopts.git or diffopts.upgrade:
@@ -1635,35 +1477,24 @@ class queue(object):
user = ph.user or changes[1]
- oldphase = repo[top].phase()
-
# assumes strip can roll itself back if interrupted
- repo.setparents(*cparents)
+ repo.dirstate.setparents(*cparents)
self.applied.pop()
- self.applieddirty = True
+ self.applieddirty = 1
self.strip(repo, [top], update=False,
backup='strip')
- except: # re-raises
+ except:
repo.dirstate.invalidate()
raise
try:
# might be nice to attempt to roll back strip after this
-
- # Ensure we create a new changeset in the same phase than
- # the old one.
- n = newcommit(repo, oldphase, message, user, ph.date,
- match=match, force=True)
+ n = repo.commit(message, user, ph.date, match=match,
+ force=True)
# only write patch after a successful commit
- if inclsubs:
- self.putsubstate2changes(substatestate, c)
- chunks = patchmod.diff(repo, patchparent,
- changes=c, opts=diffopts)
- for chunk in chunks:
- patchf.write(chunk)
- patchf.close()
+ patchf.rename()
self.applied.append(statusentry(n, patchfn))
- except: # re-raises
+ except:
ctx = repo[cparents[0]]
repo.dirstate.rebuild(ctx.node(), ctx.manifest())
self.savedirty()
@@ -1790,14 +1621,14 @@ class queue(object):
else:
series.append(l)
if datastart is None:
- self.ui.warn(_("no saved patch data found\n"))
+ self.ui.warn(_("No saved patch data found\n"))
return 1
self.ui.warn(_("restoring status: %s\n") % lines[0])
self.fullseries = series
self.applied = applied
self.parseseries()
- self.seriesdirty = True
- self.applieddirty = True
+ self.seriesdirty = 1
+ self.applieddirty = 1
heads = repo.changelog.heads()
if delete:
if rev not in heads:
@@ -1817,7 +1648,7 @@ class queue(object):
self.ui.status(_("updating queue directory\n"))
r = self.qrepo()
if not r:
- self.ui.warn(_("unable to load queue repository\n"))
+ self.ui.warn(_("Unable to load queue repository\n"))
return 1
hg.clean(r, qpp[0])
@@ -1845,7 +1676,7 @@ class queue(object):
self.ui.warn(_("repo commit failed\n"))
return 1
self.applied.append(statusentry(n, '.hg.patches.save.line'))
- self.applieddirty = True
+ self.applieddirty = 1
self.removeundo(repo)
def fullseriesend(self):
@@ -1869,9 +1700,9 @@ class queue(object):
for i in xrange(start, len(self.series)):
p, reason = self.pushable(i)
if p:
- return i
+ break
self.explainpushable(i)
- return len(self.series)
+ return i
if self.applied:
p = self.applied[-1].name
try:
@@ -1902,12 +1733,9 @@ class queue(object):
'files'))
rev = scmutil.revrange(repo, rev)
rev.sort(reverse=True)
- elif not files:
- raise util.Abort(_('no files or revisions specified'))
if (len(files) > 1 or len(rev) > 1) and patchname:
raise util.Abort(_('option "-n" not valid when importing multiple '
'patches'))
- imported = []
if rev:
# If mq patches are applied, we can only import revisions
# that form a linear path to qbase.
@@ -1934,9 +1762,6 @@ class queue(object):
diffopts = self.diffopts({'git': git})
for r in rev:
- if not repo[r].mutable():
- raise util.Abort(_('revision %d is not mutable') % r,
- hint=_('see "hg help phases" for details'))
p1, p2 = repo.changelog.parentrevs(r)
n = repo.changelog.node(r)
if p2 != nullrev:
@@ -1960,13 +1785,9 @@ class queue(object):
self.applied.insert(0, se)
self.added.append(patchname)
- imported.append(patchname)
patchname = None
- if rev and repo.ui.configbool('mq', 'secret', False):
- # if we added anything with --rev, we must move the secret root
- phases.retractboundary(repo, phases.secret, [n])
self.parseseries()
- self.applieddirty = True
+ self.applieddirty = 1
self.seriesdirty = True
for i, filename in enumerate(files):
@@ -2015,19 +1836,9 @@ class queue(object):
self.seriesdirty = True
self.ui.warn(_("adding %s to series file\n") % patchname)
self.added.append(patchname)
- imported.append(patchname)
patchname = None
self.removeundo(repo)
- return imported
-
-def fixkeepchangesopts(ui, opts):
- if (not ui.configbool('mq', 'keepchanges') or opts.get('force')
- or opts.get('exact')):
- return opts
- opts = dict(opts)
- opts['keep_changes'] = True
- return opts
@command("qdelete|qremove|qrm",
[('k', 'keep', None, _('keep patch file')),
@@ -2037,9 +1848,8 @@ def fixkeepchangesopts(ui, opts):
def delete(ui, repo, *patches, **opts):
"""remove patches from queue
- The patches must not be applied, and at least one patch is required. Exact
- patch identifiers must be given. With -k/--keep, the patch files are
- preserved in the patch directory.
+ The patches must not be applied, and at least one patch is required. With
+ -k/--keep, the patch files are preserved in the patch directory.
To stop managing a patch and move it into permanent history,
use the :hg:`qfinish` command."""
@@ -2049,7 +1859,7 @@ def delete(ui, repo, *patches, **opts):
return 0
@command("qapplied",
- [('1', 'last', None, _('show only the preceding applied patch'))
+ [('1', 'last', None, _('show only the last patch'))
] + seriesopts,
_('hg qapplied [-1] [-s] [PATCH]'))
def applied(ui, repo, patch=None, **opts):
@@ -2115,9 +1925,9 @@ def unapplied(ui, repo, patch=None, **opts):
_('place existing revisions under mq control'), _('REV')),
('g', 'git', None, _('use git extended diff format')),
('P', 'push', None, _('qpush after importing'))],
- _('hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... [FILE]...'))
+ _('hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE...'))
def qimport(ui, repo, *filename, **opts):
- """import a patch or existing changeset
+ """import a patch
The patch is inserted into the series after the last applied
patch. If no patches have been applied, qimport prepends the patch
@@ -2149,21 +1959,16 @@ def qimport(ui, repo, *filename, **opts):
Returns 0 if import succeeded.
"""
- lock = repo.lock() # cause this may move phase
+ q = repo.mq
try:
- q = repo.mq
- try:
- imported = q.qimport(
- repo, filename, patchname=opts.get('name'),
- existing=opts.get('existing'), force=opts.get('force'),
- rev=opts.get('rev'), git=opts.get('git'))
- finally:
- q.savedirty()
+ q.qimport(repo, filename, patchname=opts.get('name'),
+ existing=opts.get('existing'), force=opts.get('force'),
+ rev=opts.get('rev'), git=opts.get('git'))
finally:
- lock.release()
+ q.savedirty()
- if imported and opts.get('push') and not opts.get('rev'):
- return q.push(repo, imported[-1])
+ if opts.get('push') and not opts.get('rev'):
+ return q.push(repo, None)
return 0
def qinit(ui, repo, create):
@@ -2210,8 +2015,7 @@ def init(ui, repo, **opts):
@command("qclone",
[('', 'pull', None, _('use pull protocol to copy metadata')),
- ('U', 'noupdate', None,
- _('do not update the new working directories')),
+ ('U', 'noupdate', None, _('do not update the new working directories')),
('', 'uncompressed', None,
_('use uncompressed transfer (fast over LAN)')),
('p', 'patches', '',
@@ -2236,63 +2040,53 @@ def clone(ui, source, dest=None, **opts):
Return 0 on success.
'''
def patchdir(repo):
- """compute a patch repo url from a repo object"""
url = repo.url()
if url.endswith('/'):
url = url[:-1]
return url + '/.hg/patches'
-
- # main repo (destination and sources)
if dest is None:
dest = hg.defaultdest(source)
- sr = hg.peer(ui, opts, ui.expandpath(source))
-
- # patches repo (source only)
+ sr = hg.repository(hg.remoteui(ui, opts), ui.expandpath(source))
if opts.get('patches'):
patchespath = ui.expandpath(opts.get('patches'))
else:
patchespath = patchdir(sr)
try:
- hg.peer(ui, opts, patchespath)
+ hg.repository(ui, patchespath)
except error.RepoError:
raise util.Abort(_('versioned patch repository not found'
' (see init --mq)'))
qbase, destrev = None, None
if sr.local():
- repo = sr.local()
- if repo.mq.applied and repo[qbase].phase() != phases.secret:
- qbase = repo.mq.applied[0].node
+ if sr.mq.applied:
+ qbase = sr.mq.applied[0].node
if not hg.islocal(dest):
- heads = set(repo.heads())
- destrev = list(heads.difference(repo.heads(qbase)))
- destrev.append(repo.changelog.parents(qbase)[0])
+ heads = set(sr.heads())
+ destrev = list(heads.difference(sr.heads(qbase)))
+ destrev.append(sr.changelog.parents(qbase)[0])
elif sr.capable('lookup'):
try:
qbase = sr.lookup('qbase')
except error.RepoError:
pass
-
ui.note(_('cloning main repository\n'))
sr, dr = hg.clone(ui, opts, sr.url(), dest,
pull=opts.get('pull'),
rev=destrev,
update=False,
stream=opts.get('uncompressed'))
-
ui.note(_('cloning patch repository\n'))
hg.clone(ui, opts, opts.get('patches') or patchdir(sr), patchdir(dr),
pull=opts.get('pull'), update=not opts.get('noupdate'),
stream=opts.get('uncompressed'))
-
if dr.local():
- repo = dr.local()
if qbase:
ui.note(_('stripping applied patches from destination '
'repository\n'))
- repo.mq.strip(repo, [qbase], update=False, backup=None)
+ dr.mq.strip(dr, [qbase], update=False, backup=None)
if not opts.get('noupdate'):
ui.note(_('updating destination repository\n'))
- hg.update(repo, repo.changelog.tip())
+ hg.update(dr, dr.changelog.tip())
@command("qcommit|qci",
commands.table["^commit|ci"][1],
@@ -2315,8 +2109,7 @@ def series(ui, repo, **opts):
"""print the entire series file
Returns 0 on success."""
- repo.mq.qseries(repo, missing=opts.get('missing'),
- summary=opts.get('summary'))
+ repo.mq.qseries(repo, missing=opts.get('missing'), summary=opts.get('summary'))
return 0
@command("qtop", seriesopts, _('hg qtop [-s]'))
@@ -2335,7 +2128,7 @@ def top(ui, repo, **opts):
@command("qnext", seriesopts, _('hg qnext [-s]'))
def next(ui, repo, **opts):
- """print the name of the next pushable patch
+ """print the name of the next patch
Returns 0 on success."""
q = repo.mq
@@ -2347,7 +2140,7 @@ def next(ui, repo, **opts):
@command("qprev", seriesopts, _('hg qprev [-s]'))
def prev(ui, repo, **opts):
- """print the name of the preceding applied patch
+ """print the name of the previous patch
Returns 0 on success."""
q = repo.mq
@@ -2358,8 +2151,7 @@ def prev(ui, repo, **opts):
if not l:
ui.write(_("no patches applied\n"))
return 1
- idx = q.series.index(q.applied[-2].name)
- q.qseries(repo, start=idx, length=1, status='A',
+ q.qseries(repo, start=l - 2, length=1, status='A',
summary=opts.get('summary'))
def setupheaderopts(ui, opts):
@@ -2517,7 +2309,9 @@ def fold(ui, repo, *files, **opts):
current patch header, separated by a line of ``* * *``.
Returns 0 on success."""
+
q = repo.mq
+
if not files:
raise util.Abort(_('qfold requires at least one patch name'))
if not q.checktoppatch(repo)[0]:
@@ -2535,10 +2329,9 @@ def fold(ui, repo, *files, **opts):
for f in files:
p = q.lookup(f)
if p in patches or p == parent:
- ui.warn(_('skipping already folded patch %s\n') % p)
+ ui.warn(_('Skipping already folded patch %s\n') % p)
if q.isapplied(p):
- raise util.Abort(_('qfold cannot fold already applied patch %s')
- % p)
+ raise util.Abort(_('qfold cannot fold already applied patch %s') % p)
patches.append(p)
for p in patches:
@@ -2572,26 +2365,18 @@ def fold(ui, repo, *files, **opts):
wlock.release()
@command("qgoto",
- [('', 'keep-changes', None,
- _('tolerate non-conflicting local changes')),
- ('f', 'force', None, _('overwrite any local changes')),
- ('', 'no-backup', None, _('do not save backup copies of files'))],
+ [('f', 'force', None, _('overwrite any local changes'))],
_('hg qgoto [OPTION]... PATCH'))
def goto(ui, repo, patch, **opts):
'''push or pop patches until named patch is at top of stack
Returns 0 on success.'''
- opts = fixkeepchangesopts(ui, opts)
q = repo.mq
patch = q.lookup(patch)
- nobackup = opts.get('no_backup')
- keepchanges = opts.get('keep_changes')
if q.isapplied(patch):
- ret = q.pop(repo, patch, force=opts.get('force'), nobackup=nobackup,
- keepchanges=keepchanges)
+ ret = q.pop(repo, patch, force=opts.get('force'))
else:
- ret = q.push(repo, patch, force=opts.get('force'), nobackup=nobackup,
- keepchanges=keepchanges)
+ ret = q.push(repo, patch, force=opts.get('force'))
q.savedirty()
return ret
@@ -2647,8 +2432,7 @@ def guard(ui, repo, *args, **opts):
args = list(args)
if opts.get('list'):
if args or opts.get('none'):
- raise util.Abort(_('cannot mix -l/--list with options or '
- 'arguments'))
+ raise util.Abort(_('cannot mix -l/--list with options or arguments'))
for i in xrange(len(q.series)):
status(i)
return
@@ -2712,34 +2496,26 @@ def savename(path):
return newpath
@command("^qpush",
- [('', 'keep-changes', None,
- _('tolerate non-conflicting local changes')),
- ('f', 'force', None, _('apply on top of local changes')),
- ('e', 'exact', None,
- _('apply the target patch to its recorded parent')),
+ [('f', 'force', None, _('apply on top of local changes')),
+ ('e', 'exact', None, _('apply the target patch to its recorded parent')),
('l', 'list', None, _('list patch name in commit text')),
('a', 'all', None, _('apply all patches')),
('m', 'merge', None, _('merge from another queue (DEPRECATED)')),
('n', 'name', '',
_('merge queue name (DEPRECATED)'), _('NAME')),
- ('', 'move', None,
- _('reorder patch series and apply only the patch')),
- ('', 'no-backup', None, _('do not save backup copies of files'))],
+ ('', 'move', None, _('reorder patch series and apply only the patch'))],
_('hg qpush [-f] [-l] [-a] [--move] [PATCH | INDEX]'))
def push(ui, repo, patch=None, **opts):
"""push the next patch onto the stack
- By default, abort if the working directory contains uncommitted
- changes. With --keep-changes, abort only if the uncommitted files
- overlap with patched files. With -f/--force, backup and patch over
- uncommitted changes.
+ When -f/--force is applied, all local changes in patched files
+ will be lost.
Return 0 on success.
"""
q = repo.mq
mergeq = None
- opts = fixkeepchangesopts(ui, opts)
if opts.get('merge'):
if opts.get('name'):
newpath = repo.join(opts.get('name'))
@@ -2748,48 +2524,37 @@ def push(ui, repo, patch=None, **opts):
if not newpath:
ui.warn(_("no saved queues found, please use -n\n"))
return 1
- mergeq = queue(ui, repo.path, newpath)
+ mergeq = queue(ui, repo.join(""), newpath)
ui.warn(_("merging with queue at: %s\n") % mergeq.path)
ret = q.push(repo, patch, force=opts.get('force'), list=opts.get('list'),
mergeq=mergeq, all=opts.get('all'), move=opts.get('move'),
- exact=opts.get('exact'), nobackup=opts.get('no_backup'),
- keepchanges=opts.get('keep_changes'))
+ exact=opts.get('exact'))
return ret
@command("^qpop",
[('a', 'all', None, _('pop all patches')),
('n', 'name', '',
_('queue name to pop (DEPRECATED)'), _('NAME')),
- ('', 'keep-changes', None,
- _('tolerate non-conflicting local changes')),
- ('f', 'force', None, _('forget any local changes to patched files')),
- ('', 'no-backup', None, _('do not save backup copies of files'))],
+ ('f', 'force', None, _('forget any local changes to patched files'))],
_('hg qpop [-a] [-f] [PATCH | INDEX]'))
def pop(ui, repo, patch=None, **opts):
"""pop the current patch off the stack
- Without argument, pops off the top of the patch stack. If given a
- patch name, keeps popping off patches until the named patch is at
- the top of the stack.
-
- By default, abort if the working directory contains uncommitted
- changes. With --keep-changes, abort only if the uncommitted files
- overlap with patched files. With -f/--force, backup and discard
- changes made to such files.
+ By default, pops off the top of the patch stack. If given a patch
+ name, keeps popping off patches until the named patch is at the
+ top of the stack.
Return 0 on success.
"""
- opts = fixkeepchangesopts(ui, opts)
localupdate = True
if opts.get('name'):
- q = queue(ui, repo.path, repo.join(opts.get('name')))
+ q = queue(ui, repo.join(""), repo.join(opts.get('name')))
ui.warn(_('using patch queue: %s\n') % q.path)
localupdate = False
else:
q = repo.mq
ret = q.pop(repo, patch, force=opts.get('force'), update=localupdate,
- all=opts.get('all'), nobackup=opts.get('no_backup'),
- keepchanges=opts.get('keep_changes'))
+ all=opts.get('all'))
q.savedirty()
return ret
@@ -2801,7 +2566,9 @@ def rename(ui, repo, patch, name=None, **opts):
With two arguments, renames PATCH1 to PATCH2.
Returns 0 on success."""
+
q = repo.mq
+
if not name:
name = patch
patch = None
@@ -2824,12 +2591,12 @@ def rename(ui, repo, patch, name=None, **opts):
guards = q.guard_re.findall(q.fullseries[i])
q.fullseries[i] = name + ''.join([' #' + g for g in guards])
q.parseseries()
- q.seriesdirty = True
+ q.seriesdirty = 1
info = q.isapplied(patch)
if info:
q.applied[info[0]] = statusentry(info[1], name)
- q.applieddirty = True
+ q.applieddirty = 1
destdir = os.path.dirname(absdest)
if not os.path.isdir(destdir):
@@ -2844,6 +2611,8 @@ def rename(ui, repo, patch, name=None, **opts):
r.dirstate.drop(patch)
r.dirstate.add(name)
else:
+ if r.dirstate[name] == 'r':
+ wctx.undelete([name])
wctx.copy(patch, name)
wctx.forget([patch])
finally:
@@ -2882,7 +2651,7 @@ def save(ui, repo, **opts):
ret = q.save(repo, msg=message)
if ret:
return ret
- q.savedirty() # save to .hg/patches before copying
+ q.savedirty()
if opts.get('copy'):
path = q.path
if opts.get('name'):
@@ -2899,28 +2668,22 @@ def save(ui, repo, **opts):
ui.warn(_("copy %s to %s\n") % (path, newpath))
util.copyfiles(path, newpath)
if opts.get('empty'):
- del q.applied[:]
- q.applieddirty = True
- q.savedirty()
+ try:
+ os.unlink(q.join(q.statuspath))
+ except:
+ pass
return 0
@command("strip",
- [
- ('r', 'rev', [], _('strip specified revision (optional, '
- 'can specify revisions without this '
- 'option)'), _('REV')),
- ('f', 'force', None, _('force removal of changesets, discard '
+ [('f', 'force', None, _('force removal of changesets, discard '
'uncommitted changes (no backup)')),
('b', 'backup', None, _('bundle only changesets with local revision'
' number greater than REV which are not'
' descendants of REV (DEPRECATED)')),
- ('', 'no-backup', None, _('no backups')),
+ ('n', 'no-backup', None, _('no backups')),
('', 'nobackup', None, _('no backups (DEPRECATED)')),
- ('n', '', None, _('ignored (DEPRECATED)')),
- ('k', 'keep', None, _("do not modify working copy during strip")),
- ('B', 'bookmark', '', _("remove revs only reachable from given"
- " bookmark"))],
- _('hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV...'))
+ ('k', 'keep', None, _("do not modify working copy during strip"))],
+ _('hg strip [-k] [-f] [-n] REV...'))
def strip(ui, repo, *revs, **opts):
"""strip changesets and all their descendants from the repository
@@ -2944,10 +2707,6 @@ def strip(ui, repo, *revs, **opts):
Use the --no-backup option to discard the backup bundle once the
operation completes.
- Strip is not a history-rewriting operation and can be used on
- changesets in the public phase. But if the stripped changesets have
- been pushed to a remote repository you will likely pull them again.
-
Return 0 on success.
"""
backup = 'all'
@@ -2957,38 +2716,11 @@ def strip(ui, repo, *revs, **opts):
backup = 'none'
cl = repo.changelog
- revs = list(revs) + opts.get('rev')
revs = set(scmutil.revrange(repo, revs))
-
- if opts.get('bookmark'):
- mark = opts.get('bookmark')
- marks = repo._bookmarks
- if mark not in marks:
- raise util.Abort(_("bookmark '%s' not found") % mark)
-
- # If the requested bookmark is not the only one pointing to a
- # a revision we have to only delete the bookmark and not strip
- # anything. revsets cannot detect that case.
- uniquebm = True
- for m, n in marks.iteritems():
- if m != mark and n == repo[mark].node():
- uniquebm = False
- break
- if uniquebm:
- rsrevs = repo.revs("ancestors(bookmark(%s)) - "
- "ancestors(head() and not bookmark(%s)) - "
- "ancestors(bookmark() and not bookmark(%s))",
- mark, mark, mark)
- revs.update(set(rsrevs))
- if not revs:
- del marks[mark]
- repo._writebookmarks(mark)
- ui.write(_("bookmark '%s' deleted\n") % mark)
-
if not revs:
raise util.Abort(_('empty revision set'))
- descendants = set(cl.descendants(revs))
+ descendants = set(cl.descendants(*revs))
strippedrevs = revs.union(descendants)
roots = revs.difference(descendants)
@@ -3030,14 +2762,8 @@ def strip(ui, repo, *revs, **opts):
finally:
wlock.release()
- if opts.get('bookmark'):
- del marks[mark]
- repo._writebookmarks(marks)
- ui.write(_("bookmark '%s' deleted\n") % mark)
-
repo.mq.strip(repo, revs, backup=backup, update=update,
force=opts.get('force'))
-
return 0
@command("qselect",
@@ -3141,7 +2867,7 @@ def select(ui, repo, *args, **opts):
if i == 0:
q.pop(repo, all=True)
else:
- q.pop(repo, str(i - 1))
+ q.pop(repo, i - 1)
break
if popped:
try:
@@ -3183,22 +2909,12 @@ def finish(ui, repo, *revrange, **opts):
return 0
revs = scmutil.revrange(repo, revrange)
- if repo['.'].rev() in revs and repo[None].files():
- ui.warn(_('warning: uncommitted changes in the working directory\n'))
- # queue.finish may changes phases but leave the responsability to lock the
- # repo to the caller to avoid deadlock with wlock. This command code is
- # responsability for this locking.
- lock = repo.lock()
- try:
- q.finish(repo, revs)
- q.savedirty()
- finally:
- lock.release()
+ q.finish(repo, revs)
+ q.savedirty()
return 0
@command("qqueue",
[('l', 'list', False, _('list all available queues')),
- ('', 'active', False, _('print name of active queue')),
('c', 'create', False, _('create new queue')),
('', 'rename', False, _('rename active queue')),
('', 'delete', False, _('delete reference to queue')),
@@ -3213,8 +2929,7 @@ def qqueue(ui, repo, name=None, **opts):
Omitting a queue name or specifying -l/--list will show you the registered
queues - by default the "normal" patches queue is registered. The currently
- active queue will be marked with "(active)". Specifying --active will print
- only the name of the active queue.
+ active queue will be marked with "(active)".
To create a new queue, use -c/--create. The queue is automatically made
active, except in the case where there are applied patches from the
@@ -3226,7 +2941,9 @@ def qqueue(ui, repo, name=None, **opts):
Returns 0 on success.
'''
+
q = repo.mq
+
_defaultqueue = 'patches'
_allqueues = 'patches.queues'
_activequeue = 'patches.queue'
@@ -3305,11 +3022,8 @@ def qqueue(ui, repo, name=None, **opts):
fh.close()
util.rename(repo.join('patches.queues.new'), repo.join(_allqueues))
- if not name or opts.get('list') or opts.get('active'):
+ if not name or opts.get('list'):
current = _getcurrent()
- if opts.get('active'):
- ui.write('%s\n' % (current,))
- return
for queue in _getqueues():
ui.write('%s' % (queue,))
if queue == current and not ui.quiet:
@@ -3369,22 +3083,11 @@ def qqueue(ui, repo, name=None, **opts):
raise util.Abort(_('use --create to create a new queue'))
_setactive(name)
-def mqphasedefaults(repo, roots):
- """callback used to set mq changeset as secret when no phase data exists"""
- if repo.mq.applied:
- if repo.ui.configbool('mq', 'secret', False):
- mqphase = phases.secret
- else:
- mqphase = phases.draft
- qbase = repo[repo.mq.applied[0].node]
- roots[mqphase].add(qbase.node())
- return roots
-
def reposetup(ui, repo):
class mqrepo(repo.__class__):
@util.propertycache
def mq(self):
- return queue(self.ui, self.path)
+ return queue(self.ui, self.join(""))
def abortifwdirpatched(self, errmsg, force=False):
if self.mq.applied and not force:
@@ -3404,22 +3107,15 @@ def reposetup(ui, repo):
def checkpush(self, force, revs):
if self.mq.applied and not force:
- outapplied = [e.node for e in self.mq.applied]
+ haspatches = True
if revs:
- # Assume applied patches have no non-patch descendants and
- # are not on remote already. Filtering any changeset not
- # pushed.
- heads = set(revs)
- for node in reversed(outapplied):
- if node in heads:
- break
- else:
- outapplied.pop()
- # looking for pushed and shared changeset
- for node in outapplied:
- if repo[node].phase() < phases.secret:
- raise util.Abort(_('source has mq patches applied'))
- # no non-secret patches pushed
+ # Assume applied patches have no non-patch descendants
+ # and are not on remote already. If they appear in the
+ # set of resolved 'revs', bail out.
+ applied = set(e.node for e in self.mq.applied)
+ haspatches = bool([n for n in revs if n in applied])
+ if haspatches:
+ raise util.Abort(_('source has mq patches applied'))
super(mqrepo, self).checkpush(force, revs)
def _findtags(self):
@@ -3445,8 +3141,8 @@ def reposetup(ui, repo):
tags = result[0]
for patch in mqtags:
if patch[1] in tags:
- self.ui.warn(_('tag %s overrides mq patch of the same '
- 'name\n') % patch[1])
+ self.ui.warn(_('Tag %s overrides mq patch of the same name\n')
+ % patch[1])
else:
tags[patch[1]] = patch[0]
@@ -3454,20 +3150,16 @@ def reposetup(ui, repo):
def _branchtags(self, partial, lrev):
q = self.mq
- cl = self.changelog
- qbase = None
if not q.applied:
- if getattr(self, '_committingpatch', False):
- # Committing a new patch, must be tip
- qbase = len(cl) - 1
- else:
- qbasenode = q.applied[0].node
- try:
- qbase = cl.rev(qbasenode)
- except error.LookupError:
- self.ui.warn(_('mq status file refers to unknown node %s\n')
- % short(qbasenode))
- if qbase is None:
+ return super(mqrepo, self)._branchtags(partial, lrev)
+
+ cl = self.changelog
+ qbasenode = q.applied[0].node
+ 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)
start = lrev + 1
@@ -3490,10 +3182,8 @@ def reposetup(ui, repo):
if repo.local():
repo.__class__ = mqrepo
- repo._phasedefaults.append(mqphasedefaults)
-
def mqimport(orig, ui, repo, *args, **kwargs):
- if (util.safehasattr(repo, 'abortifwdirpatched')
+ if (hasattr(repo, 'abortifwdirpatched')
and not kwargs.get('no_commit', False)):
repo.abortifwdirpatched(_('cannot import over an applied patch'),
kwargs.get('force'))
@@ -3556,12 +3246,13 @@ def revsetmq(repo, subset, x):
applied = set([repo[r.node].rev() for r in repo.mq.applied])
return [r for r in subset if r in applied]
+def extsetup(ui):
+ revset.symbols['mq'] = revsetmq
+
# tell hggettext to extract docstrings from these functions:
i18nfunctions = [revsetmq]
-def extsetup(ui):
- # Ensure mq wrappers are called first, regardless of extension load order by
- # NOT wrapping in uisetup() and instead deferring to init stage two here.
+def uisetup(ui):
mqopt = [('', 'mq', None, _("operate on patch repository"))]
extensions.wrapcommand(commands.table, 'import', mqimport)
@@ -3586,7 +3277,6 @@ def extsetup(ui):
if extmodule.__file__ != __file__:
dotable(getattr(extmodule, 'cmdtable', {}))
- revset.symbols['mq'] = revsetmq
colortable = {'qguard.negative': 'red',
'qguard.positive': 'yellow',
diff --git a/hgext/notify.py b/hgext/notify.py
index b0fbcee..5e96f11 100644
--- a/hgext/notify.py
+++ b/hgext/notify.py
@@ -5,135 +5,77 @@
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-'''hooks for sending email push notifications
+'''hooks for sending email notifications at commit/push time
-This extension implements hooks to send email notifications when
-changesets are sent from or received by the local repository.
+Subscriptions can be managed through a hgrc file. Default mode is to
+print messages to stdout, for testing and configuring.
-First, enable the extension as explained in :hg:`help extensions`, and
-register the hook you want to run. ``incoming`` and ``changegroup`` hooks
-are run when changesets are received, while ``outgoing`` hooks are for
-changesets sent to another repository::
+To use, configure the notify extension and enable it in hgrc like
+this::
+
+ [extensions]
+ notify =
[hooks]
# one email for each incoming changeset
incoming.notify = python:hgext.notify.hook
- # one email for all incoming changesets
+ # batch emails when many changesets incoming at one time
changegroup.notify = python:hgext.notify.hook
-
- # one email for all outgoing changesets
+ # batch emails when many changesets outgoing at one time (client side)
outgoing.notify = python:hgext.notify.hook
-This registers the hooks. To enable notification, subscribers must
-be assigned to repositories. The ``[usersubs]`` section maps multiple
-repositories to a given recipient. The ``[reposubs]`` section maps
-multiple recipients to a single repository::
+ [notify]
+ # config items go here
+
+Required configuration items::
+
+ config = /path/to/file # file containing subscriptions
+
+Optional configuration items::
+
+ test = True # print messages to stdout for testing
+ strip = 3 # number of slashes to strip for url paths
+ domain = example.com # domain to use if committer missing domain
+ style = ... # style file to use when formatting email
+ template = ... # template to use when formatting email
+ incoming = ... # template to use when run as incoming hook
+ outgoing = ... # template to use when run as outgoing hook
+ changegroup = ... # template to use when run as changegroup hook
+ maxdiff = 300 # max lines of diffs to include (0=none, -1=all)
+ maxsubject = 67 # truncate subject line longer than this
+ diffstat = True # add a diffstat before the diff content
+ sources = serve # notify if source of incoming changes in this list
+ # (serve == ssh or http, push, pull, bundle)
+ merge = False # send notification for merges (default True)
+ [email]
+ from = user@host.com # email address to send as if none given
+ [web]
+ baseurl = http://hgserver/... # root of hg web site for browsing commits
+
+The notify config file has same format as a regular hgrc file. It has
+two sections so you can express subscriptions in whatever way is
+handier for you.
+
+::
[usersubs]
- # key is subscriber email, value is a comma-separated list of repo glob
- # patterns
+ # key is subscriber email, value is ","-separated list of glob patterns
user@host = pattern
[reposubs]
- # key is glob pattern, value is a comma-separated list of subscriber
- # emails
+ # key is glob pattern, value is ","-separated list of subscriber emails
pattern = user@host
-Glob patterns are matched against absolute path to repository
-root.
-
-In order to place them under direct user management, ``[usersubs]`` and
-``[reposubs]`` sections may be placed in a separate ``hgrc`` file and
-incorporated by reference::
-
- [notify]
- config = /path/to/subscriptionsfile
-
-Notifications will not be sent until the ``notify.test`` value is set
-to ``False``; see below.
-
-Notifications content can be tweaked with the following configuration entries:
-
-notify.test
- If ``True``, print messages to stdout instead of sending them. Default: True.
-
-notify.sources
- Space-separated list of change sources. Notifications are activated only
- when a changeset's source is in this list. Sources may be:
-
- :``serve``: changesets received via http or ssh
- :``pull``: changesets received via ``hg pull``
- :``unbundle``: changesets received via ``hg unbundle``
- :``push``: changesets sent or received via ``hg push``
- :``bundle``: changesets sent via ``hg unbundle``
-
- Default: serve.
-
-notify.strip
- Number of leading slashes to strip from url paths. By default, notifications
- reference repositories with their absolute path. ``notify.strip`` lets you
- turn them into relative paths. For example, ``notify.strip=3`` will change
- ``/long/path/repository`` into ``repository``. Default: 0.
-
-notify.domain
- Default email domain for sender or recipients with no explicit domain.
-
-notify.style
- Style file to use when formatting emails.
-
-notify.template
- Template to use when formatting emails.
-
-notify.incoming
- Template to use when run as an incoming hook, overriding ``notify.template``.
-
-notify.outgoing
- Template to use when run as an outgoing hook, overriding ``notify.template``.
-
-notify.changegroup
- Template to use when running as a changegroup hook, overriding
- ``notify.template``.
-
-notify.maxdiff
- Maximum number of diff lines to include in notification email. Set to 0
- to disable the diff, or -1 to include all of it. Default: 300.
-
-notify.maxsubject
- Maximum number of characters in email's subject line. Default: 67.
-
-notify.diffstat
- Set to True to include a diffstat before diff content. Default: True.
-
-notify.merge
- If True, send notifications for merge changesets. Default: True.
-
-notify.mbox
- If set, append mails to this mbox file instead of sending. Default: None.
-
-notify.fromauthor
- If set, use the committer of the first changeset in a changegroup for
- the "From" field of the notification mail. If not set, take the user
- from the pushing repo. Default: False.
-
-If set, the following entries will also be used to customize the
-notifications:
-
-email.from
- Email ``From`` address to use if none can be found in the generated
- email content.
-
-web.baseurl
- Root repository URL to combine with repository paths when making
- references. See also ``notify.strip``.
+Glob patterns are matched against path to repository root.
+If you like, you can put notify config file in repository that users
+can push changes to, they can manage their own subscriptions.
'''
from mercurial.i18n import _
from mercurial import patch, cmdutil, templater, util, mail
import email.Parser, email.Errors, fnmatch, socket, time
-testedwith = 'internal'
-
# template for single changeset can include email headers.
single_template = '''
Subject: changeset in {webroot}: {desc|firstline|strip}
@@ -170,7 +112,6 @@ class notifier(object):
self.stripcount = int(self.ui.config('notify', 'strip', 0))
self.root = self.strip(self.repo.root)
self.domain = self.ui.config('notify', 'domain')
- self.mbox = self.ui.config('notify', 'mbox')
self.test = self.ui.configbool('notify', 'test', True)
self.charsets = mail._charsets(self.ui)
self.subs = self.subscribers()
@@ -226,6 +167,9 @@ class notifier(object):
return [mail.addressencode(self.ui, s, self.charsets, self.test)
for s in sorted(subs)]
+ def url(self, path=None):
+ return self.ui.config('web', 'baseurl') + (path or self.root)
+
def node(self, ctx, **props):
'''format one changeset, unless it is a suppressed merge.'''
if not self.merge and len(ctx.parents()) > 1:
@@ -303,7 +247,7 @@ class notifier(object):
self.ui.status(_('notify: sending %d subscribers %d changes\n') %
(len(self.subs), count))
mail.sendmail(self.ui, util.email(msg['From']),
- self.subs, msgtext, mbox=self.mbox)
+ self.subs, msgtext)
def diff(self, ctx, ref=None):
@@ -349,18 +293,15 @@ def hook(ui, repo, hooktype, node=None, source=None, **kwargs):
ui.pushbuffer()
data = ''
count = 0
- author = ''
if hooktype == 'changegroup' or hooktype == 'outgoing':
start, end = ctx.rev(), len(repo)
for rev in xrange(start, end):
if n.node(repo[rev]):
count += 1
- if not author:
- author = repo[rev].user()
else:
data += ui.popbuffer()
- ui.note(_('notify: suppressing notification for merge %d:%s\n')
- % (rev, repo[rev].hex()[:12]))
+ ui.note(_('notify: suppressing notification for merge %d:%s\n') %
+ (rev, repo[rev].hex()[:12]))
ui.pushbuffer()
if count:
n.diff(ctx, repo['tip'])
@@ -374,9 +315,5 @@ def hook(ui, repo, hooktype, node=None, source=None, **kwargs):
n.diff(ctx)
data += ui.popbuffer()
- fromauthor = ui.config('notify', 'fromauthor')
- if author and fromauthor:
- data = '\n'.join(['From: %s' % author, data])
-
if count:
n.send(ctx, count, data)
diff --git a/hgext/pager.py b/hgext/pager.py
index ae430ef..ccf0bd5 100644
--- a/hgext/pager.py
+++ b/hgext/pager.py
@@ -17,11 +17,17 @@
To set the pager that should be used, set the application variable::
[pager]
- pager = less -FRX
+ pager = less -FRSX
If no pager is set, the pager extensions uses the environment variable
$PAGER. If neither pager.pager, nor $PAGER is set, no pager is used.
+If you notice "BROKEN PIPE" error messages, you can disable them by
+setting::
+
+ [pager]
+ quiet = True
+
You can disable the pager for certain commands by adding them to the
pager.ignore list::
@@ -47,16 +53,14 @@ used. Use a boolean value like yes, no, on, off, or use auto for
normal behavior.
'''
-import atexit, sys, os, signal, subprocess
+import sys, os, signal, shlex, errno
from mercurial import commands, dispatch, util, extensions
from mercurial.i18n import _
-testedwith = 'internal'
-
-def _pagerfork(ui, p):
- if not util.safehasattr(os, 'fork'):
+def _runpager(p):
+ if not hasattr(os, 'fork'):
sys.stdout = util.popen(p, 'wb')
- if ui._isatty(sys.stderr):
+ if util.isatty(sys.stderr):
sys.stderr = sys.stdout
return
fdin, fdout = os.pipe()
@@ -64,7 +68,7 @@ def _pagerfork(ui, p):
if pid == 0:
os.close(fdin)
os.dup2(fdout, sys.stdout.fileno())
- if ui._isatty(sys.stderr):
+ if util.isatty(sys.stderr):
os.dup2(fdout, sys.stderr.fileno())
os.close(fdout)
return
@@ -81,35 +85,8 @@ def _pagerfork(ui, p):
else:
raise
-def _pagersubprocess(ui, p):
- pager = subprocess.Popen(p, shell=True, bufsize=-1,
- close_fds=util.closefds, stdin=subprocess.PIPE,
- stdout=sys.stdout, stderr=sys.stderr)
-
- stdout = os.dup(sys.stdout.fileno())
- stderr = os.dup(sys.stderr.fileno())
- os.dup2(pager.stdin.fileno(), sys.stdout.fileno())
- if ui._isatty(sys.stderr):
- os.dup2(pager.stdin.fileno(), sys.stderr.fileno())
-
- @atexit.register
- def killpager():
- pager.stdin.close()
- os.dup2(stdout, sys.stdout.fileno())
- os.dup2(stderr, sys.stderr.fileno())
- pager.wait()
-
-def _runpager(ui, p):
- # The subprocess module shipped with Python <= 2.4 is buggy (issue3533).
- # The compat version is buggy on Windows (issue3225), but has been shipping
- # with hg for a long time. Preserve existing functionality.
- if sys.version_info >= (2, 5):
- _pagersubprocess(ui, p)
- else:
- _pagerfork(ui, p)
-
def uisetup(ui):
- if '--debugger' in sys.argv or not ui.formatted():
+ if ui.plain() or '--debugger' in sys.argv or not util.isatty(sys.stdout):
return
def pagecmd(orig, ui, options, cmd, cmdfunc):
@@ -124,9 +101,9 @@ def uisetup(ui):
(cmd not in ui.configlist('pager', 'ignore') and not attend))):
ui.setconfig('ui', 'formatted', ui.formatted())
ui.setconfig('ui', 'interactive', False)
- if util.safehasattr(signal, "SIGPIPE"):
+ _runpager(p)
+ if ui.configbool('pager', 'quiet'):
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
- _runpager(ui, p)
return orig(ui, options, cmd, cmdfunc)
extensions.wrapfunction(dispatch, '_runcommand', pagecmd)
diff --git a/hgext/patchbomb.py b/hgext/patchbomb.py
index 7ac8e27..dfc3cb0 100644
--- a/hgext/patchbomb.py
+++ b/hgext/patchbomb.py
@@ -45,28 +45,36 @@ directly from the commandline. See the [email] and [smtp] sections in
hgrc(5) for details.
'''
-import os, errno, socket, tempfile, cStringIO
+import os, errno, socket, tempfile, cStringIO, time
import email.MIMEMultipart, email.MIMEBase
import email.Utils, email.Encoders, email.Generator
-from mercurial import cmdutil, commands, hg, mail, patch, util
+from mercurial import cmdutil, commands, hg, mail, patch, util, discovery
from mercurial import scmutil
from mercurial.i18n import _
from mercurial.node import bin
cmdtable = {}
command = cmdutil.command(cmdtable)
-testedwith = 'internal'
def prompt(ui, prompt, default=None, rest=':'):
+ if not ui.interactive() and default is None:
+ raise util.Abort(_("%s Please enter a valid value" % (prompt + rest)))
if default:
prompt += ' [%s]' % default
- return ui.prompt(prompt + rest, default)
+ prompt += rest
+ while True:
+ r = ui.prompt(prompt, default=default)
+ if r:
+ return r
+ if default is not None:
+ return default
+ ui.warn(_('Please enter a valid value.\n'))
-def introwanted(opts, number):
- '''is an introductory message apparently wanted?'''
+def introneeded(opts, number):
+ '''is an introductory message required?'''
return number > 1 or opts.get('intro') or opts.get('desc')
-def makepatch(ui, repo, patchlines, opts, _charsets, idx, total, numbered,
+def makepatch(ui, repo, patchlines, opts, _charsets, idx, total,
patchname=None):
desc = []
@@ -85,7 +93,7 @@ def makepatch(ui, repo, patchlines, opts, _charsets, idx, total, numbered,
if not patchname and not node:
raise ValueError
- if opts.get('attach') and not opts.get('body'):
+ if opts.get('attach'):
body = ('\n'.join(desc[1:]).strip() or
'Patch subject is complete summary.')
body += '\n\n\n'
@@ -102,16 +110,11 @@ def makepatch(ui, repo, patchlines, opts, _charsets, idx, total, numbered,
if opts.get('diffstat'):
body += ds + '\n\n'
- addattachment = opts.get('attach') or opts.get('inline')
- if not addattachment or opts.get('body'):
- body += '\n'.join(patchlines)
-
- if addattachment:
+ if opts.get('attach') or opts.get('inline'):
msg = email.MIMEMultipart.MIMEMultipart()
if body:
msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test')))
- p = mail.mimetextpatch('\n'.join(patchlines), 'x-patch',
- opts.get('test'))
+ p = mail.mimetextpatch('\n'.join(patchlines), 'x-patch', opts.get('test'))
binnode = bin(node)
# if node is mq patch, it will have the patch file's name as a tag
if not patchname:
@@ -121,8 +124,7 @@ def makepatch(ui, repo, patchlines, opts, _charsets, idx, total, numbered,
patchname = patchtags[0]
elif total > 1:
patchname = cmdutil.makefilename(repo, '%b-%n.patch',
- binnode, seqno=idx,
- total=total)
+ binnode, seqno=idx, total=total)
else:
patchname = cmdutil.makefilename(repo, '%b.patch', binnode)
disposition = 'inline'
@@ -131,6 +133,7 @@ def makepatch(ui, repo, patchlines, opts, _charsets, idx, total, numbered,
p['Content-Disposition'] = disposition + '; filename=' + patchname
msg.attach(p)
else:
+ body += '\n'.join(patchlines)
msg = mail.mimetextpatch(body, display=opts.get('test'))
flag = ' '.join(opts.get('flag'))
@@ -138,7 +141,7 @@ def makepatch(ui, repo, patchlines, opts, _charsets, idx, total, numbered,
flag = ' ' + flag
subj = desc[0].strip().rstrip('. ')
- if not numbered:
+ if not introneeded(opts, total):
subj = '[PATCH%s] %s' % (flag, opts.get('subject') or subj)
else:
tlen = len(str(total))
@@ -148,7 +151,6 @@ def makepatch(ui, repo, patchlines, opts, _charsets, idx, total, numbered,
return msg, subj, ds
emailopts = [
- ('', 'body', None, _('send patches as inline message text (default)')),
('a', 'attach', None, _('send patches as attachments')),
('i', 'inline', None, _('send patches as inline attachments')),
('', 'bcc', [], _('email addresses of blind carbon copy recipients')),
@@ -206,9 +208,7 @@ def patchbomb(ui, repo, *revs, **opts):
By default the patch is included as text in the email body for
easy reviewing. Using the -a/--attach option will instead create
an attachment for the patch. With -i/--inline an inline attachment
- will be created. You can include a patch both as text in the email
- body and as a regular or an inline attachment by combining the
- -a/--attach or -i/--inline with the --body option.
+ will be created.
With -o/--outgoing, emails will be generated for patches not found
in the destination repository (or only those which are ancestors
@@ -273,18 +273,18 @@ def patchbomb(ui, repo, *revs, **opts):
def getoutgoing(dest, revs):
'''Return the revisions present locally but not in dest'''
- url = ui.expandpath(dest or 'default-push', dest or 'default')
- url = hg.parseurl(url)[0]
- ui.status(_('comparing with %s\n') % util.hidepassword(url))
-
- revs = [r for r in scmutil.revrange(repo, revs) if r >= 0]
- if not revs:
- revs = [len(repo) - 1]
- revs = repo.revs('outgoing(%s) and ::%ld', dest or '', revs)
- if not revs:
+ dest = ui.expandpath(dest or 'default-push', dest or 'default')
+ dest, branches = hg.parseurl(dest)
+ revs, checkout = hg.addbranchrevs(repo, repo, branches, revs)
+ other = hg.peer(repo, opts, dest)
+ ui.status(_('comparing with %s\n') % util.hidepassword(dest))
+ common, _anyinc, _heads = discovery.findcommonincoming(repo, other)
+ nodes = revs and map(repo.lookup, revs) or revs
+ o = repo.changelog.findmissing(common, heads=nodes)
+ if not o:
ui.status(_("no changes found\n"))
return []
- return [str(r) for r in revs]
+ return [str(repo.changelog.rev(r)) for r in o]
def getpatches(revs):
for r in scmutil.revrange(repo, revs):
@@ -305,7 +305,7 @@ def patchbomb(ui, repo, *revs, **opts):
finally:
try:
os.unlink(tmpfn)
- except OSError:
+ except:
pass
os.rmdir(tmpdir)
@@ -352,66 +352,51 @@ def patchbomb(ui, repo, *revs, **opts):
ui.write(_('\nWrite the introductory message for the '
'patch series.\n\n'))
body = ui.edit(body, sender)
- # Save series description in case sendmail fails
+ # Save serie description in case sendmail fails
msgfile = repo.opener('last-email.txt', 'wb')
msgfile.write(body)
msgfile.close()
return body
def getpatchmsgs(patches, patchnames=None):
+ jumbo = []
msgs = []
- ui.write(_('this patch series consists of %d patches.\n\n')
+ ui.write(_('This patch series consists of %d patches.\n\n')
% len(patches))
- # build the intro message, or skip it if the user declines
- if introwanted(opts, len(patches)):
- msg = makeintro(patches)
- if msg:
- msgs.append(msg)
-
- # are we going to send more than one message?
- numbered = len(msgs) + len(patches) > 1
-
- # now generate the actual patch messages
name = None
for i, p in enumerate(patches):
+ jumbo.extend(p)
if patchnames:
name = patchnames[i]
msg = makepatch(ui, repo, p, opts, _charsets, i + 1,
- len(patches), numbered, name)
+ len(patches), name)
msgs.append(msg)
- return msgs
-
- def makeintro(patches):
- tlen = len(str(len(patches)))
+ if introneeded(opts, len(patches)):
+ tlen = len(str(len(patches)))
- flag = opts.get('flag') or ''
- if flag:
- flag = ' ' + ' '.join(flag)
- prefix = '[PATCH %0*d of %d%s]' % (tlen, 0, len(patches), flag)
-
- subj = (opts.get('subject') or
- prompt(ui, '(optional) Subject: ', rest=prefix, default=''))
- if not subj:
- return None # skip intro if the user doesn't bother
+ flag = ' '.join(opts.get('flag'))
+ if flag:
+ subj = '[PATCH %0*d of %d %s]' % (tlen, 0, len(patches), flag)
+ else:
+ subj = '[PATCH %0*d of %d]' % (tlen, 0, len(patches))
+ subj += ' ' + (opts.get('subject') or
+ prompt(ui, 'Subject: ', rest=subj))
- subj = prefix + ' ' + subj
+ body = ''
+ ds = patch.diffstat(jumbo)
+ if ds and opts.get('diffstat'):
+ body = '\n' + ds
- body = ''
- if opts.get('diffstat'):
- # generate a cumulative diffstat of the whole patch series
- diffstat = patch.diffstat(sum(patches, []))
- body = '\n' + diffstat
- else:
- diffstat = None
+ body = getdescription(body, sender)
+ msg = mail.mimeencode(ui, body, _charsets, opts.get('test'))
+ msg['Subject'] = mail.headencode(ui, subj, _charsets,
+ opts.get('test'))
- body = getdescription(body, sender)
- msg = mail.mimeencode(ui, body, _charsets, opts.get('test'))
- msg['Subject'] = mail.headencode(ui, subj, _charsets,
- opts.get('test'))
- return (msg, subj, diffstat)
+ msgs.insert(0, (msg, subj, ds))
+ return msgs
def getbundlemsgs(bundle):
subj = (opts.get('subject')
@@ -444,33 +429,29 @@ def patchbomb(ui, repo, *revs, **opts):
showaddrs = []
- def getaddrs(header, ask=False, default=None):
- configkey = header.lower()
- opt = header.replace('-', '_').lower()
- addrs = opts.get(opt)
+ def getaddrs(opt, prpt=None, default=None):
+ addrs = opts.get(opt.replace('-', '_'))
+ if opt != 'reply-to':
+ showaddr = '%s:' % opt.capitalize()
+ else:
+ showaddr = 'Reply-To:'
+
if addrs:
- showaddrs.append('%s: %s' % (header, ', '.join(addrs)))
+ showaddrs.append('%s %s' % (showaddr, ', '.join(addrs)))
return mail.addrlistencode(ui, addrs, _charsets, opts.get('test'))
- # not on the command line: fallback to config and then maybe ask
- addr = (ui.config('email', configkey) or
- ui.config('patchbomb', configkey) or
- '')
- if not addr and ask:
- addr = prompt(ui, header, default=default)
- if addr:
- showaddrs.append('%s: %s' % (header, addr))
- return mail.addrlistencode(ui, [addr], _charsets, opts.get('test'))
- else:
- return default
+ addrs = ui.config('email', opt) or ui.config('patchbomb', opt) or ''
+ if not addrs and prpt:
+ addrs = prompt(ui, prpt, default)
+
+ if addrs:
+ showaddrs.append('%s %s' % (showaddr, addrs))
+ return mail.addrlistencode(ui, [addrs], _charsets, opts.get('test'))
- to = getaddrs('To', ask=True)
- if not to:
- # we can get here in non-interactive mode
- raise util.Abort(_('no recipient addresses provided'))
- cc = getaddrs('Cc', ask=True, default='') or []
- bcc = getaddrs('Bcc') or []
- replyto = getaddrs('Reply-To')
+ to = getaddrs('to', 'To')
+ cc = getaddrs('cc', 'Cc', '')
+ bcc = getaddrs('bcc')
+ replyto = getaddrs('reply-to')
if opts.get('diffstat') or opts.get('confirm'):
ui.write(_('\nFinal summary:\n\n'))
@@ -526,7 +507,7 @@ def patchbomb(ui, repo, *revs, **opts):
if replyto:
m['Reply-To'] = ', '.join(replyto)
if opts.get('test'):
- ui.status(_('displaying '), subj, ' ...\n')
+ ui.status(_('Displaying '), subj, ' ...\n')
ui.flush()
if 'PAGER' in os.environ and not ui.plain():
fp = util.popen(os.environ['PAGER'], 'w')
@@ -541,18 +522,30 @@ def patchbomb(ui, repo, *revs, **opts):
raise
if fp is not ui:
fp.close()
+ elif mbox:
+ ui.status(_('Writing '), subj, ' ...\n')
+ ui.progress(_('writing'), i, item=subj, total=len(msgs))
+ fp = open(mbox, 'In-Reply-To' in m and 'ab+' or 'wb+')
+ generator = email.Generator.Generator(fp, mangle_from_=True)
+ # Should be time.asctime(), but Windows prints 2-characters day
+ # of month instead of one. Make them print the same thing.
+ date = time.strftime('%a %b %d %H:%M:%S %Y',
+ time.localtime(start_time[0]))
+ fp.write('From %s %s\n' % (sender_addr, date))
+ generator.flatten(m, 0)
+ fp.write('\n\n')
+ fp.close()
else:
if not sendmail:
- sendmail = mail.connect(ui, mbox=mbox)
- ui.status(_('sending '), subj, ' ...\n')
+ sendmail = mail.connect(ui)
+ ui.status(_('Sending '), subj, ' ...\n')
ui.progress(_('sending'), i, item=subj, total=len(msgs))
- if not mbox:
- # Exim does not remove the Bcc field
- del m['Bcc']
+ # Exim does not remove the Bcc field
+ del m['Bcc']
fp = cStringIO.StringIO()
generator = email.Generator.Generator(fp, mangle_from_=False)
generator.flatten(m, 0)
- sendmail(sender_addr, to + bcc + cc, fp.getvalue())
+ sendmail(sender, to + bcc + cc, fp.getvalue())
ui.progress(_('writing'), None)
ui.progress(_('sending'), None)
diff --git a/hgext/progress.py b/hgext/progress.py
index 3cc3747..652fafe 100644
--- a/hgext/progress.py
+++ b/hgext/progress.py
@@ -2,8 +2,19 @@
#
# Copyright (C) 2010 Augie Fackler <durin42@gmail.com>
#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""show progress bars for some actions
@@ -16,9 +27,6 @@ The following settings are available::
[progress]
delay = 3 # number of seconds (float) before showing the progress bar
- changedelay = 1 # changedelay: minimum delay before showing a new topic.
- # If set to less than 3 * refresh, that value will
- # be used instead.
refresh = 0.1 # time in seconds between refreshes of the progress bar
format = topic bar number estimate # format of the progress bar
width = <none> # if set, the maximum width of the progress information
@@ -38,14 +46,14 @@ characters.
import sys
import time
+from mercurial import util
from mercurial.i18n import _
-testedwith = 'internal'
def spacejoin(*args):
return ' '.join(s for s in args if s)
def shouldprint(ui):
- return ui._isatty(sys.stderr) or ui.configbool('progress', 'assume-tty')
+ return (util.isatty(sys.stderr) or ui.configbool('progress', 'assume-tty'))
def fmtremaining(seconds):
if seconds < 60:
@@ -97,13 +105,9 @@ class progbar(object):
self.printed = False
self.lastprint = time.time() + float(self.ui.config(
'progress', 'delay', default=3))
- self.lasttopic = None
self.indetcount = 0
self.refresh = float(self.ui.config(
'progress', 'refresh', default=0.1))
- self.changedelay = max(3 * self.refresh,
- float(self.ui.config(
- 'progress', 'changedelay', default=1)))
self.order = self.ui.configlist(
'progress', 'format',
default=['topic', 'bar', 'number', 'estimate'])
@@ -180,7 +184,6 @@ class progbar(object):
else:
out = spacejoin(head, tail)
sys.stderr.write('\r' + out[:termwidth])
- self.lasttopic = topic
sys.stderr.flush()
def clear(self):
@@ -237,7 +240,7 @@ class progbar(object):
# truncate the list of topics assuming all topics within
# this one are also closed
if topic in self.topics:
- self.topics = self.topics[:self.topics.index(topic)]
+ self.topics = self.topics[:self.topics.index(topic)]
else:
if topic not in self.topics:
self.starttimes[topic] = now
@@ -245,36 +248,24 @@ class progbar(object):
self.topics.append(topic)
self.topicstates[topic] = pos, item, unit, total
if now - self.lastprint >= self.refresh and self.topics:
- if (self.lasttopic is None # first time we printed
- # not a topic change
- or topic == self.lasttopic
- # it's been long enough we should print anyway
- or now - self.lastprint >= self.changedelay):
- self.lastprint = now
- self.show(now, topic, *self.topicstates[topic])
-
-_singleton = None
+ self.lastprint = now
+ self.show(now, topic, *self.topicstates[topic])
def uisetup(ui):
- global _singleton
class progressui(ui.__class__):
_progbar = None
- def _quiet(self):
- return self.debugflag or self.quiet
-
def progress(self, *args, **opts):
- if not self._quiet():
- self._progbar.progress(*args, **opts)
+ self._progbar.progress(*args, **opts)
return super(progressui, self).progress(*args, **opts)
def write(self, *args, **opts):
- if not self._quiet() and self._progbar.printed:
+ if self._progbar.printed:
self._progbar.clear()
return super(progressui, self).write(*args, **opts)
def write_err(self, *args, **opts):
- if not self._quiet() and self._progbar.printed:
+ if self._progbar.printed:
self._progbar.clear()
return super(progressui, self).write_err(*args, **opts)
@@ -287,9 +278,7 @@ def uisetup(ui):
# we instantiate one globally shared progress bar to avoid
# competing progress bars when multiple UI objects get created
if not progressui._progbar:
- if _singleton is None:
- _singleton = progbar(ui)
- progressui._progbar = _singleton
+ progressui._progbar = progbar(ui)
def reposetup(ui, repo):
uisetup(repo.ui)
diff --git a/hgext/purge.py b/hgext/purge.py
index 8ec0da4..4179ea4 100644
--- a/hgext/purge.py
+++ b/hgext/purge.py
@@ -20,7 +20,8 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
'''command to delete untracked files from the working directory'''
@@ -30,7 +31,6 @@ import os, stat
cmdtable = {}
command = cmdutil.command(cmdtable)
-testedwith = 'internal'
@command('purge|clean',
[('a', 'abort-on-err', None, _('abort if an error occurs')),
@@ -101,10 +101,10 @@ def purge(ui, repo, *dirs, **opts):
status = repo.status(match=match, ignored=opts['all'], unknown=True)
for f in sorted(status[4] + status[5]):
- ui.note(_('removing file %s\n') % f)
+ ui.note(_('Removing file %s\n') % f)
remove(removefile, f)
for f in sorted(directories, reverse=True):
if match(f) and not os.listdir(repo.wjoin(f)):
- ui.note(_('removing directory %s\n') % f)
+ ui.note(_('Removing directory %s\n') % f)
remove(os.rmdir, f)
diff --git a/hgext/rebase.py b/hgext/rebase.py
index f276fcf..ad62f8a 100644
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -15,7 +15,7 @@ http://mercurial.selenic.com/wiki/RebaseExtension
'''
from mercurial import hg, util, repair, merge, cmdutil, commands, bookmarks
-from mercurial import extensions, patch, scmutil, phases
+from mercurial import extensions, copies, patch
from mercurial.commands import templateopts
from mercurial.node import nullrev
from mercurial.lock import release
@@ -26,7 +26,6 @@ nullmerge = -2
cmdtable = {}
command = cmdutil.command(cmdtable)
-testedwith = 'internal'
@command('rebase',
[('s', 'source', '',
@@ -35,25 +34,23 @@ testedwith = 'internal'
_('rebase from the base of the specified changeset '
'(up to greatest common ancestor of base and dest)'),
_('REV')),
- ('r', 'rev', [],
- _('rebase these revisions'),
- _('REV')),
('d', 'dest', '',
_('rebase onto the specified changeset'), _('REV')),
('', 'collapse', False, _('collapse the rebased changesets')),
('m', 'message', '',
_('use text as collapse commit message'), _('TEXT')),
- ('e', 'edit', False, _('invoke editor on commit messages')),
('l', 'logfile', '',
_('read collapse commit message from file'), _('FILE')),
('', 'keep', False, _('keep original changesets')),
('', 'keepbranches', False, _('keep original branch names')),
- ('D', 'detach', False, _('(DEPRECATED)')),
+ ('', 'detach', False, _('force detaching of source from its original '
+ 'branch')),
('t', 'tool', '', _('specify merge tool')),
('c', 'continue', False, _('continue an interrupted rebase')),
('a', 'abort', False, _('abort an interrupted rebase'))] +
templateopts,
- _('[-s REV | -b REV] [-d REV] [OPTION]'))
+ _('hg rebase [-s REV | -b REV] [-d REV] [options]\n'
+ 'hg rebase {-a|-c}'))
def rebase(ui, repo, **opts):
"""move changeset (and descendants) to a different branch
@@ -108,20 +105,15 @@ def rebase(ui, repo, **opts):
skipped = set()
targetancestors = set()
- editor = None
- if opts.get('edit'):
- editor = cmdutil.commitforceeditor
-
lock = wlock = None
try:
- wlock = repo.wlock()
lock = repo.lock()
+ wlock = repo.wlock()
# Validate input and define rebasing points
destf = opts.get('dest', None)
srcf = opts.get('source', None)
basef = opts.get('base', None)
- revf = opts.get('rev', [])
contf = opts.get('continue')
abortf = opts.get('abort')
collapsef = opts.get('collapse', False)
@@ -129,6 +121,7 @@ def rebase(ui, repo, **opts):
extrafn = opts.get('extrafn') # internal, used by e.g. hgsubversion
keepf = opts.get('keep', False)
keepbranchesf = opts.get('keepbranches', False)
+ detachf = opts.get('detach', False)
# keepopen is not meant for use on the command line, but by
# other extensions
keepopen = opts.get('keepopen', False)
@@ -143,6 +136,8 @@ def rebase(ui, repo, **opts):
if collapsef:
raise util.Abort(
_('cannot use collapse with continue or abort'))
+ if detachf:
+ raise util.Abort(_('cannot use detach with continue or abort'))
if srcf or basef or destf:
raise util.Abort(
_('abort and continue do not allow specifying revisions'))
@@ -156,56 +151,16 @@ def rebase(ui, repo, **opts):
else:
if srcf and basef:
raise util.Abort(_('cannot specify both a '
- 'source and a base'))
- if revf and basef:
- raise util.Abort(_('cannot specify both a '
'revision and a base'))
- if revf and srcf:
- raise util.Abort(_('cannot specify both a '
- 'revision and a source'))
+ if detachf:
+ if not srcf:
+ raise util.Abort(
+ _('detach requires a revision to be specified'))
+ if basef:
+ raise util.Abort(_('cannot specify a base with detach'))
cmdutil.bailifchanged(repo)
-
- if not destf:
- # Destination defaults to the latest revision in the
- # current branch
- branch = repo[None].branch()
- dest = repo[branch]
- else:
- dest = scmutil.revsingle(repo, destf)
-
- if revf:
- rebaseset = repo.revs('%lr', revf)
- elif srcf:
- src = scmutil.revrange(repo, [srcf])
- rebaseset = repo.revs('(%ld)::', src)
- else:
- base = scmutil.revrange(repo, [basef or '.'])
- rebaseset = repo.revs(
- '(children(ancestor(%ld, %d)) and ::(%ld))::',
- base, dest, base)
-
- if rebaseset:
- root = min(rebaseset)
- else:
- root = None
-
- if not rebaseset:
- repo.ui.debug('base is ancestor of destination\n')
- result = None
- elif not keepf and list(repo.revs('first(children(%ld) - %ld)',
- rebaseset, rebaseset)):
- raise util.Abort(
- _("can't remove original changesets with"
- " unrebased descendants"),
- hint=_('use --keep to keep original changesets'))
- elif not keepf and not repo[root].mutable():
- raise util.Abort(_("can't rebase immutable changeset %s")
- % repo[root],
- hint=_('see hg help phases for details'))
- else:
- result = buildstate(repo, dest, rebaseset, collapsef)
-
+ result = buildstate(repo, destf, srcf, basef, detachf)
if not result:
# Empty state built, nothing to rebase
ui.status(_('nothing to rebase\n'))
@@ -213,8 +168,7 @@ def rebase(ui, repo, **opts):
else:
originalwd, target, state = result
if collapsef:
- targetancestors = set(repo.changelog.ancestors([target]))
- targetancestors.add(target)
+ targetancestors = set(repo.changelog.ancestors(target))
external = checkexternal(repo, state, targetancestors)
if keepbranchesf:
@@ -232,14 +186,11 @@ def rebase(ui, repo, **opts):
# Rebase
if not targetancestors:
- targetancestors = set(repo.changelog.ancestors([target]))
+ targetancestors = set(repo.changelog.ancestors(target))
targetancestors.add(target)
# Keep track of the current bookmarks in order to reset them later
currentbookmarks = repo._bookmarks.copy()
- activebookmark = repo._bookmarkcurrent
- if activebookmark:
- bookmarks.unsetcurrent(repo)
sortedstate = sorted(state)
total = len(sortedstate)
@@ -258,19 +209,18 @@ def rebase(ui, repo, **opts):
else:
try:
ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
- stats = rebasenode(repo, rev, p1, state, collapsef)
+ stats = rebasenode(repo, rev, p1, state)
if stats and stats[3] > 0:
raise util.Abort(_('unresolved conflicts (see hg '
'resolve, then hg rebase --continue)'))
finally:
ui.setconfig('ui', 'forcemerge', '')
- cmdutil.duplicatecopies(repo, rev, target)
+ updatedirstate(repo, rev, target, p2)
if not collapsef:
- newrev = concludenode(repo, rev, p1, p2, extrafn=extrafn,
- editor=editor)
+ newrev = concludenode(repo, rev, p1, p2, extrafn=extrafn)
else:
# Skip commit if we are collapsing
- repo.setparents(repo[p1].node())
+ repo.dirstate.setparents(repo[p1].node())
newrev = None
# Update the state
if newrev is not None:
@@ -297,7 +247,7 @@ def rebase(ui, repo, **opts):
commitmsg += '\n* %s' % repo[rebased].description()
commitmsg = ui.edit(commitmsg, repo.ui.username())
newrev = concludenode(repo, rev, p1, external, commitmsg=commitmsg,
- extrafn=extrafn, editor=editor)
+ extrafn=extrafn)
if 'qtip' in repo.tags():
updatemq(repo, state, skipped, **opts)
@@ -313,7 +263,7 @@ def rebase(ui, repo, **opts):
# Remove no more useful revisions
rebased = [rev for rev in state if state[rev] != nullmerge]
if rebased:
- if set(repo.changelog.descendants([min(rebased)])) - set(state):
+ if set(repo.changelog.descendants(min(rebased))) - set(state):
ui.warn(_("warning: new changesets detected "
"on source branch, not stripping\n"))
else:
@@ -329,11 +279,6 @@ def rebase(ui, repo, **opts):
util.unlinkpath(repo.sjoin('undo'))
if skipped:
ui.note(_("%d revisions have been skipped\n") % len(skipped))
-
- if (activebookmark and
- repo['tip'].node() == repo._bookmarks[activebookmark]):
- bookmarks.setcurrent(repo, activebookmark)
-
finally:
release(lock, wlock)
@@ -356,10 +301,24 @@ def checkexternal(repo, state, targetancestors):
external = p.rev()
return external
-def concludenode(repo, rev, p1, p2, commitmsg=None, editor=None, extrafn=None):
+def updatedirstate(repo, rev, p1, p2):
+ """Keep track of renamed files in the revision that is going to be rebased
+ """
+ # Here we simulate the copies and renames in the source changeset
+ cop, diver = copies.copies(repo, repo[rev], repo[p1], repo[p2], True)
+ m1 = repo[rev].manifest()
+ m2 = repo[p1].manifest()
+ for k, v in cop.iteritems():
+ if k in m1:
+ if v in m1 or v in m2:
+ repo.dirstate.copy(v, k)
+ if v in m2 and v not in m1 and k in m2:
+ repo.dirstate.remove(v)
+
+def concludenode(repo, rev, p1, p2, commitmsg=None, extrafn=None):
'Commit the changes and store useful information in extra'
try:
- repo.setparents(repo[p1].node(), repo[p2].node())
+ repo.dirstate.setparents(repo[p1].node(), repo[p2].node())
ctx = repo[rev]
if commitmsg is None:
commitmsg = ctx.description()
@@ -368,20 +327,15 @@ def concludenode(repo, rev, p1, p2, commitmsg=None, editor=None, extrafn=None):
extrafn(ctx, extra)
# Commit might fail if unresolved files exist
newrev = repo.commit(text=commitmsg, user=ctx.user(),
- date=ctx.date(), extra=extra, editor=editor)
+ date=ctx.date(), extra=extra)
repo.dirstate.setbranch(repo[newrev].branch())
- targetphase = max(ctx.phase(), phases.draft)
- # retractboundary doesn't overwrite upper phase inherited from parent
- newnode = repo[newrev].node()
- if newnode:
- phases.retractboundary(repo, targetphase, [newnode])
return newrev
except util.Abort:
# Invalidate the previous setparents
repo.dirstate.invalidate()
raise
-def rebasenode(repo, rev, p1, state, collapse):
+def rebasenode(repo, rev, p1, state):
'Rebase a single revision'
# Merge phase
# Update to target and merge it with local
@@ -395,9 +349,7 @@ def rebasenode(repo, rev, p1, state, collapse):
base = None
if repo[rev].rev() != repo[min(state)].rev():
base = repo[rev].p1().node()
- # When collapsing in-place, the parent is the common ancestor, we
- # have to allow merging with it.
- return merge.update(repo, rev, True, True, False, base, collapse)
+ return merge.update(repo, rev, True, True, False, base)
def defineparents(repo, rev, target, state, targetancestors):
'Return the new parent relationship of the revision that will be rebased'
@@ -446,7 +398,6 @@ def updatemq(repo, state, skipped, **opts):
mqrebase = {}
mq = repo.mq
original_series = mq.fullseries[:]
- skippedpatches = set()
for p in mq.applied:
rev = repo[p.node].rev()
@@ -454,9 +405,6 @@ def updatemq(repo, state, skipped, **opts):
repo.ui.debug('revision %d is an mq patch (%s), finalize it.\n' %
(rev, p.name))
mqrebase[rev] = (p.name, isagitpatch(repo, p.name))
- else:
- # Applied but not rebased, not sure this should happen
- skippedpatches.add(p.name)
if mqrebase:
mq.finish(repo, mqrebase.keys())
@@ -468,26 +416,21 @@ def updatemq(repo, state, skipped, **opts):
repo.ui.debug('import mq patch %d (%s)\n' % (state[rev], name))
mq.qimport(repo, (), patchname=name, git=isgit,
rev=[str(state[rev])])
- else:
- # Rebased and skipped
- skippedpatches.add(mqrebase[rev][0])
-
- # Patches were either applied and rebased and imported in
- # order, applied and removed or unapplied. Discard the removed
- # ones while preserving the original series order and guards.
- newseries = [s for s in original_series
- if mq.guard_re.split(s, 1)[0] not in skippedpatches]
- mq.fullseries[:] = newseries
- mq.seriesdirty = True
+
+ # restore old series to preserve guards
+ mq.fullseries = original_series
+ mq.series_dirty = True
mq.savedirty()
def updatebookmarks(repo, nstate, originalbookmarks, **opts):
'Move bookmarks to their correct changesets'
+ current = repo._bookmarkcurrent
for k, v in originalbookmarks.iteritems():
if v in nstate:
if nstate[v] != nullmerge:
- # update the bookmarks for revs that have moved
- repo._bookmarks[k] = nstate[v]
+ # reset the pointer if the bookmark was moved incorrectly
+ if k != current:
+ repo._bookmarks[k] = nstate[v]
bookmarks.write(repo)
@@ -503,10 +446,7 @@ def storestatus(repo, originalwd, target, state, collapse, keep, keepbranches,
f.write('%d\n' % int(keepbranches))
for d, v in state.iteritems():
oldrev = repo[d].hex()
- if v != nullmerge:
- newrev = repo[v].hex()
- else:
- newrev = v
+ newrev = repo[v].hex()
f.write("%s:%s\n" % (oldrev, newrev))
f.close()
repo.ui.debug('rebase status stored\n')
@@ -539,10 +479,7 @@ def restorestatus(repo):
keepbranches = bool(int(l))
else:
oldrev, newrev = l.split(':')
- if newrev != str(nullmerge):
- state[repo[oldrev].rev()] = repo[newrev].rev()
- else:
- state[repo[oldrev].rev()] = int(newrev)
+ state[repo[oldrev].rev()] = repo[newrev].rev()
skipped = set()
# recompute the set of skipped revs
if not collapse:
@@ -562,19 +499,9 @@ def restorestatus(repo):
def abort(repo, originalwd, target, state):
'Restore the repository to its original state'
- dstates = [s for s in state.values() if s != nullrev]
- immutable = [d for d in dstates if not repo[d].mutable()]
- if immutable:
- raise util.Abort(_("can't abort rebase due to immutable changesets %s")
- % ', '.join(str(repo[r]) for r in immutable),
- hint=_('see hg help phases for details'))
-
- descendants = set()
- if dstates:
- descendants = set(repo.changelog.descendants(dstates))
- if descendants - set(dstates):
+ if set(repo.changelog.descendants(target)) - set(state.values()):
repo.ui.warn(_("warning: new changesets detected on target branch, "
- "can't abort\n"))
+ "can't abort\n"))
return -1
else:
# Strip from the first rebased revision
@@ -588,81 +515,68 @@ def abort(repo, originalwd, target, state):
repo.ui.warn(_('rebase aborted\n'))
return 0
-def buildstate(repo, dest, rebaseset, collapse):
- '''Define which revisions are going to be rebased and where
+def buildstate(repo, dest, src, base, detach):
+ 'Define which revisions are going to be rebased and where'
+ targetancestors = set()
+ detachset = set()
- repo: repo
- dest: context
- rebaseset: set of rev
- '''
+ if not dest:
+ # Destination defaults to the latest revision in the current branch
+ branch = repo[None].branch()
+ dest = repo[branch].rev()
+ else:
+ dest = repo[dest].rev()
# This check isn't strictly necessary, since mq detects commits over an
# applied patch. But it prevents messing up the working directory when
# a partially completed rebase is blocked by mq.
- if 'qtip' in repo.tags() and (dest.node() in
+ if 'qtip' in repo.tags() and (repo[dest].node() in
[s.node for s in repo.mq.applied]):
raise util.Abort(_('cannot rebase onto an applied mq patch'))
- roots = list(repo.set('roots(%ld)', rebaseset))
- if not roots:
- raise util.Abort(_('no matching revisions'))
- if len(roots) > 1:
- raise util.Abort(_("can't rebase multiple roots"))
- root = roots[0]
-
- commonbase = root.ancestor(dest)
- if commonbase == root:
- raise util.Abort(_('source is ancestor of destination'))
- if commonbase == dest:
- samebranch = root.branch() == dest.branch()
- if not collapse and samebranch and root in dest.children():
- repo.ui.debug('source is a child of destination\n')
+ if src:
+ commonbase = repo[src].ancestor(repo[dest])
+ samebranch = repo[src].branch() == repo[dest].branch()
+ if commonbase == repo[src]:
+ raise util.Abort(_('source is ancestor of destination'))
+ if samebranch and commonbase == repo[dest]:
+ raise util.Abort(_('source is descendant of destination'))
+ source = repo[src].rev()
+ if detach:
+ # We need to keep track of source's ancestors up to the common base
+ srcancestors = set(repo.changelog.ancestors(source))
+ baseancestors = set(repo.changelog.ancestors(commonbase.rev()))
+ detachset = srcancestors - baseancestors
+ detachset.discard(commonbase.rev())
+ else:
+ if base:
+ cwd = repo[base].rev()
+ else:
+ cwd = repo['.'].rev()
+
+ if cwd == dest:
+ repo.ui.debug('source and destination are the same\n')
+ return None
+
+ targetancestors = set(repo.changelog.ancestors(dest))
+ if cwd in targetancestors:
+ repo.ui.debug('source is ancestor of destination\n')
+ return None
+
+ cwdancestors = set(repo.changelog.ancestors(cwd))
+ if dest in cwdancestors:
+ repo.ui.debug('source is descendant of destination\n')
return None
- repo.ui.debug('rebase onto %d starting from %d\n' % (dest, root))
- state = dict.fromkeys(rebaseset, nullrev)
- # Rebase tries to turn <dest> into a parent of <root> while
- # preserving the number of parents of rebased changesets:
- #
- # - A changeset with a single parent will always be rebased as a
- # changeset with a single parent.
- #
- # - A merge will be rebased as merge unless its parents are both
- # ancestors of <dest> or are themselves in the rebased set and
- # pruned while rebased.
- #
- # If one parent of <root> is an ancestor of <dest>, the rebased
- # version of this parent will be <dest>. This is always true with
- # --base option.
- #
- # Otherwise, we need to *replace* the original parents with
- # <dest>. This "detaches" the rebased set from its former location
- # and rebases it onto <dest>. Changes introduced by ancestors of
- # <root> not common with <dest> (the detachset, marked as
- # nullmerge) are "removed" from the rebased changesets.
- #
- # - If <root> has a single parent, set it to <dest>.
- #
- # - If <root> is a merge, we cannot decide which parent to
- # replace, the rebase operation is not clearly defined.
- #
- # The table below sums up this behavior:
- #
- # +--------------------+----------------------+-------------------------+
- # | | one parent | merge |
- # +--------------------+----------------------+-------------------------+
- # | parent in ::<dest> | new parent is <dest> | parents in ::<dest> are |
- # | | | remapped to <dest> |
- # +--------------------+----------------------+-------------------------+
- # | unrelated source | new parent is <dest> | ambiguous, abort |
- # +--------------------+----------------------+-------------------------+
- #
- # The actual abort is handled by `defineparents`
- if len(root.parents()) <= 1:
- # (strict) ancestors of <root> not ancestors of <dest>
- detachset = repo.revs('::%d - ::%d - %d', root, commonbase, root)
- state.update(dict.fromkeys(detachset, nullmerge))
- return repo['.'].rev(), dest.rev(), state
+ cwdancestors.add(cwd)
+ rebasingbranch = cwdancestors - targetancestors
+ source = min(rebasingbranch)
+
+ repo.ui.debug('rebase onto %d starting from %d\n' % (dest, source))
+ state = dict.fromkeys(repo.changelog.descendants(source), nullrev)
+ state.update(dict.fromkeys(detachset, nullmerge))
+ state[source] = nullrev
+ return repo['.'].rev(), repo[dest].rev(), state
def pullrebase(orig, ui, repo, *args, **opts):
'Call rebase after pull if the latter has been invoked with --rebase'
@@ -672,7 +586,6 @@ def pullrebase(orig, ui, repo, *args, **opts):
ui.debug('--update and --rebase are not compatible, ignoring '
'the update flag\n')
- movemarkfrom = repo['.'].node()
cmdutil.bailifchanged(repo)
revsprepull = len(repo)
origpostincoming = commands.postincoming
@@ -691,9 +604,6 @@ def pullrebase(orig, ui, repo, *args, **opts):
if dest != repo['.'].rev():
# there was nothing to rebase we force an update
hg.update(repo, dest)
- if bookmarks.update(repo, [movemarkfrom], repo['.'].node()):
- ui.status(_("updating bookmark %s\n")
- % repo._bookmarkcurrent)
else:
if opts.get('tool'):
raise util.Abort(_('--tool can only be used with --rebase'))
diff --git a/hgext/record.py b/hgext/record.py
index ec9e384..1bbfb11 100644
--- a/hgext/record.py
+++ b/hgext/record.py
@@ -14,7 +14,6 @@ import copy, cStringIO, errno, os, re, shutil, tempfile
cmdtable = {}
command = cmdutil.command(cmdtable)
-testedwith = 'internal'
lines_re = re.compile(r'@@ -(\d+),(\d+) \+(\d+),(\d+) @@\s*(.*)')
@@ -262,7 +261,7 @@ def parsepatch(fp):
def filterpatch(ui, headers):
"""Interactively filter patch chunks into applied-only chunks"""
- def prompt(skipfile, skipall, query, chunk):
+ def prompt(skipfile, skipall, query):
"""prompt query, and process base inputs
- y/n for the rest of file
@@ -272,16 +271,14 @@ def filterpatch(ui, headers):
Return True/False and possibly updated skipfile and skipall.
"""
- newpatches = None
if skipall is not None:
- return skipall, skipfile, skipall, newpatches
+ return skipall, skipfile, skipall
if skipfile is not None:
- return skipfile, skipfile, skipall, newpatches
+ return skipfile, skipfile, skipall
while True:
- resps = _('[Ynesfdaq?]')
+ resps = _('[Ynsfdaq?]')
choices = (_('&Yes, record this change'),
_('&No, skip this change'),
- _('&Edit the change manually'),
_('&Skip remaining changes to this file'),
_('Record remaining changes to this &file'),
_('&Done, skip remaining changes and files'),
@@ -290,7 +287,7 @@ def filterpatch(ui, headers):
_('&?'))
r = ui.promptchoice("%s %s" % (query, resps), choices)
ui.write("\n")
- if r == 8: # ?
+ if r == 7: # ?
doc = gettext(record.__doc__)
c = doc.find('::') + 2
for l in doc[c:].splitlines():
@@ -301,70 +298,17 @@ def filterpatch(ui, headers):
ret = True
elif r == 1: # no
ret = False
- elif r == 2: # Edit patch
- if chunk is None:
- ui.write(_('cannot edit patch for whole file'))
- ui.write("\n")
- continue
- if chunk.header.binary():
- ui.write(_('cannot edit patch for binary file'))
- ui.write("\n")
- continue
- # Patch comment based on the Git one (based on comment at end of
- # http://mercurial.selenic.com/wiki/RecordExtension)
- phelp = '---' + _("""
-To remove '-' lines, make them ' ' lines (context).
-To remove '+' lines, delete them.
-Lines starting with # will be removed from the patch.
-
-If the patch applies cleanly, the edited hunk will immediately be
-added to the record list. If it does not apply cleanly, a rejects
-file will be generated: you can use that when you try again. If
-all lines of the hunk are removed, then the edit is aborted and
-the hunk is left unchanged.
-""")
- (patchfd, patchfn) = tempfile.mkstemp(prefix="hg-editor-",
- suffix=".diff", text=True)
- ncpatchfp = None
- try:
- # Write the initial patch
- f = os.fdopen(patchfd, "w")
- chunk.header.write(f)
- chunk.write(f)
- f.write('\n'.join(['# ' + i for i in phelp.splitlines()]))
- f.close()
- # Start the editor and wait for it to complete
- editor = ui.geteditor()
- util.system("%s \"%s\"" % (editor, patchfn),
- environ={'HGUSER': ui.username()},
- onerr=util.Abort, errprefix=_("edit failed"),
- out=ui.fout)
- # Remove comment lines
- patchfp = open(patchfn)
- ncpatchfp = cStringIO.StringIO()
- for line in patchfp:
- if not line.startswith('#'):
- ncpatchfp.write(line)
- patchfp.close()
- ncpatchfp.seek(0)
- newpatches = parsepatch(ncpatchfp)
- finally:
- os.unlink(patchfn)
- del ncpatchfp
- # Signal that the chunk shouldn't be applied as-is, but
- # provide the new patch to be used instead.
- ret = False
- elif r == 3: # Skip
+ elif r == 2: # Skip
ret = skipfile = False
- elif r == 4: # file (Record remaining)
+ elif r == 3: # file (Record remaining)
ret = skipfile = True
- elif r == 5: # done, skip remaining
+ elif r == 4: # done, skip remaining
ret = skipall = False
- elif r == 6: # all
+ elif r == 5: # all
ret = skipall = True
- elif r == 7: # quit
+ elif r == 6: # quit
raise util.Abort(_('user quit'))
- return ret, skipfile, skipall, newpatches
+ return ret, skipfile, skipall
seen = set()
applied = {} # 'filename' -> [] of chunks
@@ -381,8 +325,8 @@ the hunk is left unchanged.
if skipall is None:
h.pretty(ui)
msg = (_('examine changes to %s?') %
- _(' and ').join("'%s'" % f for f in h.files()))
- r, skipfile, skipall, np = prompt(skipfile, skipall, msg, None)
+ _(' and ').join(map(repr, h.files())))
+ r, skipfile, skipall = prompt(skipfile, skipall, msg)
if not r:
continue
applied[h.filename()] = [h]
@@ -398,19 +342,12 @@ the hunk is left unchanged.
idx = pos - len(h.hunks) + i
msg = _('record change %d/%d to %r?') % (idx, total,
chunk.filename())
- r, skipfile, skipall, newpatches = prompt(skipfile,
- skipall, msg, chunk)
+ r, skipfile, skipall = prompt(skipfile, skipall, msg)
if r:
if fixoffset:
chunk = copy.copy(chunk)
chunk.toline += fixoffset
applied[chunk.filename()].append(chunk)
- elif newpatches is not None:
- for newpatch in newpatches:
- for newhunk in newpatch.hunks:
- if fixoffset:
- newhunk.toline += fixoffset
- applied[newhunk.filename()].append(newhunk)
else:
fixoffset += chunk.removed - chunk.added
return sum([h for h in applied.itervalues()
@@ -435,7 +372,6 @@ def record(ui, repo, *pats, **opts):
y - record this change
n - skip this change
- e - edit this change manually
s - skip remaining changes to this file
f - record remaining changes to this file
@@ -517,11 +453,10 @@ def dorecord(ui, repo, commitfunc, cmdsuggest, backupall, *pats, **opts):
'(use "hg commit" instead)'))
changes = repo.status(match=match)[:3]
- diffopts = mdiff.diffopts(
- git=True, nodates=True,
- ignorews=opts.get('ignore_all_space'),
- ignorewsamount=opts.get('ignore_space_change'),
- ignoreblanklines=opts.get('ignore_blank_lines'))
+ diffopts = mdiff.diffopts(git=True, nodates=True,
+ ignorews=opts.get('ignore_all_space'),
+ ignorewsamount=opts.get('ignore_space_change'),
+ ignoreblanklines=opts.get('ignore_blank_lines'))
chunks = patch.diff(repo, changes=changes, opts=diffopts)
fp = cStringIO.StringIO()
fp.write(''.join(chunks))
diff --git a/hgext/relink.py b/hgext/relink.py
index f2e6bf1..f4d8f09 100644
--- a/hgext/relink.py
+++ b/hgext/relink.py
@@ -11,8 +11,6 @@ from mercurial import hg, util
from mercurial.i18n import _
import os, stat
-testedwith = 'internal'
-
def relink(ui, repo, origin=None, **opts):
"""recreate hardlinks between two repositories
@@ -38,11 +36,12 @@ def relink(ui, repo, origin=None, **opts):
command is running. (Both repositories will be locked against
writes.)
"""
- if (not util.safehasattr(util, 'samefile') or
- not util.safehasattr(util, 'samedevice')):
+ if not hasattr(util, 'samefile') or not hasattr(util, 'samedevice'):
raise util.Abort(_('hardlinks are not supported on this system'))
src = hg.repository(ui, ui.expandpath(origin or 'default-relink',
origin or 'default'))
+ if not src.local():
+ raise util.Abort(_('must specify local origin repository'))
ui.status(_('relinking %s to %s\n') % (src.store.path, repo.store.path))
if repo.root == src.root:
ui.status(_('there is nothing to relink\n'))
@@ -79,7 +78,7 @@ def collect(src, ui):
dirnames.sort()
relpath = dirpath[len(src) + seplen:]
for filename in sorted(filenames):
- if filename[-2:] not in ('.d', '.i'):
+ if not filename[-2:] in ('.d', '.i'):
continue
st = os.stat(os.path.join(dirpath, filename))
if not stat.S_ISREG(st.st_mode):
diff --git a/hgext/schemes.py b/hgext/schemes.py
index 51ab3ed..5ea285f 100644
--- a/hgext/schemes.py
+++ b/hgext/schemes.py
@@ -44,8 +44,6 @@ import os, re
from mercurial import extensions, hg, templater, util
from mercurial.i18n import _
-testedwith = 'internal'
-
class ShortRepository(object):
def __init__(self, url, scheme, templater):
@@ -74,10 +72,9 @@ class ShortRepository(object):
return hg._peerlookup(url).instance(ui, url, create)
def hasdriveletter(orig, path):
- if path:
- for scheme in schemes:
- if path.startswith(scheme + ':'):
- return False
+ for scheme in schemes:
+ if path.startswith(scheme + ':'):
+ return False
return orig(path)
schemes = {
diff --git a/hgext/share.py b/hgext/share.py
index fb11921..cc33148 100644
--- a/hgext/share.py
+++ b/hgext/share.py
@@ -6,9 +6,7 @@
'''share a common history between several working directories'''
from mercurial.i18n import _
-from mercurial import hg, commands, util
-
-testedwith = 'internal'
+from mercurial import hg, commands
def share(ui, source, dest=None, noupdate=False):
"""create a new shared repository
@@ -30,46 +28,11 @@ def share(ui, source, dest=None, noupdate=False):
return hg.share(ui, source, dest, not noupdate)
-def unshare(ui, repo):
- """convert a shared repository to a normal one
-
- Copy the store data to the repo and remove the sharedpath data.
- """
-
- if repo.sharedpath == repo.path:
- raise util.Abort(_("this is not a shared repo"))
-
- destlock = lock = None
- lock = repo.lock()
- try:
- # we use locks here because if we race with commit, we
- # can end up with extra data in the cloned revlogs that's
- # not pointed to by changesets, thus causing verify to
- # fail
-
- destlock = hg.copystore(ui, repo, repo.path)
-
- sharefile = repo.join('sharedpath')
- util.rename(sharefile, sharefile + '.old')
-
- repo.requirements.discard('sharedpath')
- repo._writerequirements()
- finally:
- destlock and destlock.release()
- lock and lock.release()
-
- # update store, spath, sopener and sjoin of repo
- repo.__init__(ui, repo.root)
-
cmdtable = {
"share":
(share,
[('U', 'noupdate', None, _('do not create a working copy'))],
_('[-U] SOURCE [DEST]')),
- "unshare":
- (unshare,
- [],
- ''),
}
commands.norepo += " share"
diff --git a/hgext/transplant.py b/hgext/transplant.py
index a506c0c..90f99eb 100644
--- a/hgext/transplant.py
+++ b/hgext/transplant.py
@@ -20,12 +20,8 @@ from mercurial import bundlerepo, hg, merge, match
from mercurial import patch, revlog, scmutil, util, error, cmdutil
from mercurial import revset, templatekw
-class TransplantError(error.Abort):
- pass
-
cmdtable = {}
command = cmdutil.command(cmdtable)
-testedwith = 'internal'
class transplantentry(object):
def __init__(self, lnode, rnode):
@@ -85,25 +81,19 @@ class transplanter(object):
self.opener = scmutil.opener(self.path)
self.transplants = transplants(self.path, 'transplants',
opener=self.opener)
- self.editor = None
def applied(self, repo, node, parent):
'''returns True if a node is already an ancestor of parent
- or is parent or has already been transplanted'''
- if hasnode(repo, parent):
- parentrev = repo.changelog.rev(parent)
+ or has already been transplanted'''
if hasnode(repo, node):
- rev = repo.changelog.rev(node)
- reachable = repo.changelog.incancestors([parentrev], rev)
- if rev in reachable:
+ if node in repo.changelog.reachable(parent, stop=node):
return True
for t in self.transplants.get(node):
# it might have been stripped
if not hasnode(repo, t.lnode):
self.transplants.remove(t)
return False
- lnoderev = repo.changelog.rev(t.lnode)
- if lnoderev in repo.changelog.incancestors([parentrev], lnoderev):
+ if t.lnode in repo.changelog.reachable(parent, stop=t.lnode):
return True
return False
@@ -115,11 +105,10 @@ class transplanter(object):
diffopts = patch.diffopts(self.ui, opts)
diffopts.git = True
- lock = wlock = tr = None
+ lock = wlock = None
try:
wlock = repo.wlock()
lock = repo.lock()
- tr = repo.transaction('transplant')
for rev in revs:
node = revmap[rev]
revstr = '%s:%s' % (rev, short(node))
@@ -130,7 +119,7 @@ class transplanter(object):
continue
parents = source.changelog.parents(node)
- if not (opts.get('filter') or opts.get('log')):
+ if not opts.get('filter'):
# If the changeset parent is the same as the
# wdir's parent, just pull it.
if parents[0] == p1:
@@ -139,7 +128,7 @@ class transplanter(object):
continue
if pulls:
if source != repo:
- repo.pull(source.peer(), heads=pulls)
+ repo.pull(source, heads=pulls)
merge.update(repo, pulls[-1], False, False, None)
p1, p2 = repo.dirstate.parents()
pulls = []
@@ -153,26 +142,14 @@ class transplanter(object):
if not hasnode(repo, node):
repo.pull(source, heads=[node])
- skipmerge = False
if parents[1] != revlog.nullid:
- if not opts.get('parent'):
- self.ui.note(_('skipping merge changeset %s:%s\n')
- % (rev, short(node)))
- skipmerge = True
- else:
- parent = source.lookup(opts['parent'])
- if parent not in parents:
- raise util.Abort(_('%s is not a parent of %s') %
- (short(parent), short(node)))
- else:
- parent = parents[0]
-
- if skipmerge:
+ self.ui.note(_('skipping merge changeset %s:%s\n')
+ % (rev, short(node)))
patchfile = None
else:
fd, patchfile = tempfile.mkstemp(prefix='hg-transplant-')
fp = os.fdopen(fd, 'w')
- gen = patch.diff(source, parent, node, opts=diffopts)
+ gen = patch.diff(source, parents[0], node, opts=diffopts)
for chunk in gen:
fp.write(chunk)
fp.close()
@@ -180,17 +157,11 @@ class transplanter(object):
del revmap[rev]
if patchfile or domerge:
try:
- try:
- n = self.applyone(repo, node,
- source.changelog.read(node),
- patchfile, merge=domerge,
- log=opts.get('log'),
- filter=opts.get('filter'))
- except TransplantError:
- # Do not rollback, it is up to the user to
- # fix the merge or cancel everything
- tr.close()
- raise
+ n = self.applyone(repo, node,
+ source.changelog.read(node),
+ patchfile, merge=domerge,
+ log=opts.get('log'),
+ filter=opts.get('filter'))
if n and domerge:
self.ui.status(_('%s merged at %s\n') % (revstr,
short(n)))
@@ -201,15 +172,12 @@ class transplanter(object):
finally:
if patchfile:
os.unlink(patchfile)
- tr.close()
if pulls:
- repo.pull(source.peer(), heads=pulls)
+ repo.pull(source, heads=pulls)
merge.update(repo, pulls[-1], False, False, None)
finally:
self.saveseries(revmap, merges)
self.transplants.write()
- if tr:
- tr.release()
lock.release()
wlock.release()
@@ -263,6 +231,9 @@ class transplanter(object):
files = set()
patch.patch(self.ui, repo, patchfile, files=files, eolmode=None)
files = list(files)
+ if not files:
+ self.ui.warn(_('%s: empty changeset') % revlog.hex(node))
+ return None
except Exception, inst:
seriespath = os.path.join(self.path, 'series')
if os.path.exists(seriespath):
@@ -271,22 +242,27 @@ class transplanter(object):
p2 = node
self.log(user, date, message, p1, p2, merge=merge)
self.ui.write(str(inst) + '\n')
- raise TransplantError(_('fix up the merge and run '
- 'hg transplant --continue'))
+ raise util.Abort(_('fix up the merge and run '
+ 'hg transplant --continue'))
else:
files = None
if merge:
p1, p2 = repo.dirstate.parents()
- repo.setparents(p1, node)
+ repo.dirstate.setparents(p1, node)
m = match.always(repo.root, '')
else:
m = match.exact(repo.root, '', files)
- n = repo.commit(message, user, date, extra=extra, match=m,
- editor=self.editor)
+ n = repo.commit(message, user, date, extra=extra, match=m)
if not n:
- self.ui.warn(_('skipping emptied changeset %s\n') % short(node))
- return None
+ # Crash here to prevent an unclear crash later, in
+ # transplants.write(). This can happen if patch.patch()
+ # does nothing but claims success or if repo.status() fails
+ # to report changes done by patch.patch(). These both
+ # appear to be bugs in other parts of Mercurial, but dying
+ # here, as soon as we can detect the problem, is preferable
+ # to silently dropping changesets on the floor.
+ raise RuntimeError('nothing committed after transplant')
if not merge:
self.transplants.set(n, node)
@@ -313,33 +289,22 @@ class transplanter(object):
def recover(self, repo):
'''commit working directory using journal metadata'''
node, user, date, message, parents = self.readlog()
- merge = False
+ merge = len(parents) == 2
if not user or not date or not message or not parents[0]:
raise util.Abort(_('transplant log file is corrupt'))
- parent = parents[0]
- if len(parents) > 1:
- if opts.get('parent'):
- parent = source.lookup(opts['parent'])
- if parent not in parents:
- raise util.Abort(_('%s is not a parent of %s') %
- (short(parent), short(node)))
- else:
- merge = True
-
extra = {'transplant_source': node}
wlock = repo.wlock()
try:
p1, p2 = repo.dirstate.parents()
- if p1 != parent:
+ if p1 != parents[0]:
raise util.Abort(
_('working dir not at transplant parent %s') %
- revlog.hex(parent))
+ revlog.hex(parents[0]))
if merge:
- repo.setparents(p1, parents[1])
- n = repo.commit(message, user, date, extra=extra,
- editor=self.editor)
+ repo.dirstate.setparents(p1, parents[1])
+ n = repo.commit(message, user, date, extra=extra)
if not n:
raise util.Abort(_('commit failed'))
if not merge:
@@ -496,9 +461,6 @@ def browserevs(ui, repo, nodes, opts):
('a', 'all', None, _('pull all changesets up to BRANCH')),
('p', 'prune', [], _('skip over REV'), _('REV')),
('m', 'merge', [], _('merge at REV'), _('REV')),
- ('', 'parent', '',
- _('parent to choose when transplanting merge'), _('REV')),
- ('e', 'edit', False, _('invoke editor on commit messages')),
('', 'log', None, _('append transplant info to log message')),
('c', 'continue', None, _('continue last transplant session '
'after repair')),
@@ -531,7 +493,7 @@ def transplant(ui, repo, *revs, **opts):
transplanted, otherwise you will be prompted to select the
changesets you want.
- :hg:`transplant --branch REV --all` will transplant the
+ :hg:`transplant --branch REVISION --all` will transplant the
selected branch (up to the named revision) onto your current
working directory.
@@ -540,9 +502,6 @@ def transplant(ui, repo, *revs, **opts):
of a merged transplant, and you can merge descendants of them
normally instead of transplanting them.
- Merge changesets may be transplanted directly by specifying the
- proper parent changeset by calling :hg:`transplant --parent`.
-
If no merges or revisions are provided, :hg:`transplant` will
start an interactive changeset browser.
@@ -590,8 +549,6 @@ def transplant(ui, repo, *revs, **opts):
opts['filter'] = ui.config('transplant', 'filter')
tp = transplanter(ui, repo)
- if opts.get('edit'):
- tp.editor = cmdutil.commitforceeditor
p1, p2 = repo.dirstate.parents()
if len(repo) > 0 and p1 == revlog.nullid:
@@ -605,9 +562,9 @@ def transplant(ui, repo, *revs, **opts):
sourcerepo = opts.get('source')
if sourcerepo:
- peer = hg.peer(ui, opts, ui.expandpath(sourcerepo))
- branches = map(peer.lookup, opts.get('branch', ()))
- source, csets, cleanupfn = bundlerepo.getremotechanges(ui, repo, peer,
+ source = hg.peer(ui, opts, ui.expandpath(sourcerepo))
+ branches = map(source.lookup, opts.get('branch', ()))
+ source, csets, cleanupfn = bundlerepo.getremotechanges(ui, repo, source,
onlyheads=branches, force=True)
else:
source = repo
@@ -657,9 +614,9 @@ def revsettransplanted(repo, subset, x):
Transplanted changesets in set, or all transplanted changesets.
"""
if x:
- s = revset.getset(repo, subset, x)
+ s = revset.getset(repo, subset, x)
else:
- s = subset
+ s = subset
return [r for r in s if repo[r].extra().get('transplant_source')]
def kwtransplanted(repo, ctx, **args):
diff --git a/hgext/win32mbcs.py b/hgext/win32mbcs.py
index 65f0854..8cda3f0 100644
--- a/hgext/win32mbcs.py
+++ b/hgext/win32mbcs.py
@@ -48,7 +48,6 @@ It is useful for the users who want to commit with UTF-8 log message.
import os, sys
from mercurial.i18n import _
from mercurial import util, encoding
-testedwith = 'internal'
_encoding = None # see extsetup
@@ -128,14 +127,11 @@ def wrapname(name, wrapper):
# NOTE: os.path.dirname() and os.path.basename() are safe because
# they use result of os.path.split()
funcs = '''os.path.join os.path.split os.path.splitext
- os.path.normpath os.makedirs
+ os.path.splitunc os.path.normpath os.path.normcase os.makedirs
mercurial.util.endswithsep mercurial.util.splitpath mercurial.util.checkcase
mercurial.util.fspath mercurial.util.pconvert mercurial.util.normpath
mercurial.util.checkwinfilename mercurial.util.checkosfilename'''
-# List of Windows specific functions to be wrapped.
-winfuncs = '''os.path.splitunc'''
-
# codec and alias names of sjis and big5 to be faked.
problematic_encodings = '''big5 big5-tw csbig5 big5hkscs big5-hkscs
hkscs cp932 932 ms932 mskanji ms-kanji shift_jis csshiftjis shiftjis
@@ -144,8 +140,7 @@ problematic_encodings = '''big5 big5-tw csbig5 big5hkscs big5-hkscs
def extsetup(ui):
# TODO: decide use of config section for this extension
- if ((not os.path.supports_unicode_filenames) and
- (sys.platform != 'cygwin')):
+ if not os.path.supports_unicode_filenames:
ui.warn(_("[win32mbcs] cannot activate on this platform.\n"))
return
# determine encoding for filename
@@ -155,9 +150,6 @@ def extsetup(ui):
if _encoding.lower() in problematic_encodings.split():
for f in funcs.split():
wrapname(f, wrapper)
- if os.name == 'nt':
- for f in winfuncs.split():
- wrapname(f, wrapper)
wrapname("mercurial.osutil.listdir", wrapperforlistdir)
# Check sys.args manually instead of using ui.debug() because
# command line options is not yet applied when
@@ -165,3 +157,4 @@ def extsetup(ui):
if '--debug' in sys.argv:
ui.write("[win32mbcs] activated with encoding: %s\n"
% _encoding)
+
diff --git a/hgext/win32text.py b/hgext/win32text.py
index a26c997..82e6aed 100644
--- a/hgext/win32text.py
+++ b/hgext/win32text.py
@@ -46,8 +46,6 @@ from mercurial.node import short
from mercurial import util
import re
-testedwith = 'internal'
-
# regexp for single LF without CR preceding.
re_single_lf = re.compile('(^|[^\r])\n', re.MULTILINE)
@@ -130,7 +128,7 @@ def forbidnewline(ui, repo, hooktype, node, newline, **kwargs):
data = c[f].data()
if not util.binary(data) and newline in data:
if not halt:
- ui.warn(_('attempt to commit or push text file(s) '
+ ui.warn(_('Attempt to commit or push text file(s) '
'using %s line endings\n') %
newlinestr[newline])
ui.warn(_('in %s: %s\n') % (short(c.node()), f))
diff --git a/hgext/zeroconf/Zeroconf.py b/hgext/zeroconf/Zeroconf.py
index e8dfa14..30bdc1a 100644
--- a/hgext/zeroconf/Zeroconf.py
+++ b/hgext/zeroconf/Zeroconf.py
@@ -17,8 +17,8 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see
- <http://www.gnu.org/licenses/>.
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
diff --git a/hgext/zeroconf/__init__.py b/hgext/zeroconf/__init__.py
index 52ceffa..e7d7364 100644
--- a/hgext/zeroconf/__init__.py
+++ b/hgext/zeroconf/__init__.py
@@ -32,8 +32,6 @@ from mercurial import extensions
from mercurial.hgweb import hgweb_mod
from mercurial.hgweb import hgwebdir_mod
-testedwith = 'internal'
-
# publish
server = None
@@ -46,7 +44,7 @@ def getip():
s.connect(('1.0.0.1', 0))
ip = s.getsockname()[0]
return ip
- except socket.error:
+ except:
pass
# Generic method, sometimes gives useless results
@@ -63,7 +61,7 @@ def getip():
s.connect(('1.0.0.1', 1))
ip = s.getsockname()[0]
return ip
- except socket.error:
+ except:
pass
return dumbip
@@ -121,8 +119,7 @@ class hgwebdirzc(hgwebdir_mod.hgwebdir):
name = os.path.basename(repo)
path = (prefix + repo).strip('/')
desc = u.config('web', 'description', name)
- publish(name, desc, path,
- util.getport(u.config("web", "port", 8000)))
+ publish(name, desc, path, util.getport(u.config("web", "port", 8000)))
# listen
diff --git a/hgweb.cgi b/hgweb.cgi
index b5698a0..8ba4dfb 100755
--- a/hgweb.cgi
+++ b/hgweb.cgi
@@ -6,8 +6,7 @@
# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/path/to/repo/or/config"
-# Uncomment and adjust if Mercurial is not installed system-wide
-# (consult "installed modules" path from 'hg debuginstall'):
+# Uncomment and adjust if Mercurial is not installed system-wide:
#import sys; sys.path.insert(0, "/path/to/python/lib")
# Uncomment to send python tracebacks to the browser if an error occurs:
diff --git a/i18n/da.po b/i18n/da.po
index 4268c7b..58c020c 100644
--- a/i18n/da.po
+++ b/i18n/da.po
@@ -17,8 +17,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mercurial\n"
"Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2011-11-09 18:27+0100\n"
-"PO-Revision-Date: 2011-11-09 19:00+0100\n"
+"POT-Creation-Date: 2011-04-19 09:32+0200\n"
+"PO-Revision-Date: 2011-06-28 09:26+0200\n"
"Last-Translator: <mg@lazybytes.net>\n"
"Language-Team: Danish\n"
"Language: Danish\n"
@@ -289,12 +289,8 @@ msgid "acl: user \"%s\" not allowed on branch \"%s\" (changeset \"%s\")"
msgstr ""
#, python-format
-msgid "acl: user \"%s\" denied on \"%s\" (changeset \"%s\")"
-msgstr "acl: bruger \"%s\" nægtet adgang til \"%s\" (ændring \"%s\")"
-
-#, fuzzy, python-format
-msgid "acl: user \"%s\" not allowed on \"%s\" (changeset \"%s\")"
-msgstr "acl: bruger \"%s\" har ikke adgang \"%s\" (ændring \"%s\")"
+msgid "acl: access denied for changeset %s"
+msgstr "acl: adgang nægtet til ændring %s"
msgid "hooks for integrating with the Bugzilla bug tracker"
msgstr ""
@@ -586,7 +582,7 @@ msgstr ""
msgid ""
"XMLRPC+email example configuration. This uses the Bugzilla at\n"
"``http://my-project.org/bugzilla``, logging in as user\n"
-"``bugmail@my-project.org`` with password ``plugh``. It is used with a\n"
+"``bugmail@my-project.org`` wityh password ``plugh``. It is used with a\n"
"collection of Mercurial repositories in ``/var/local/hg/repos/``,\n"
"with a web interface at ``http://my-project.org/hg``. Bug comments\n"
"are sent to the Bugzilla email address\n"
@@ -919,12 +915,9 @@ msgstr ""
"fremhæver tilføjelser, fjernelser, diff-hoveder og mellemrum i\n"
"slutningen af linier."
-#, fuzzy
msgid ""
"Other effects in addition to color, like bold and underlined text, are\n"
-"also available. By default, the terminfo database is used to find the\n"
-"terminal codes used to change color and effect. If terminfo is not\n"
-"available, then effects are rendered with the ECMA-48 SGR control\n"
+"also available. Effects are rendered with the ECMA-48 SGR control\n"
"function (aka ANSI escape codes)."
msgstr ""
"Ud over farver er der også andre effekter tilgængelig, såsom fed og\n"
@@ -1012,78 +1005,28 @@ msgstr ""
" branches.inactive = none"
msgid ""
-" tags.normal = green\n"
-" tags.local = black bold"
-msgstr ""
-
-msgid ""
-"The available effects in terminfo mode are 'blink', 'bold', 'dim',\n"
-"'inverse', 'invisible', 'italic', 'standout', and 'underline'; in\n"
-"ECMA-48 mode, the options are 'bold', 'inverse', 'italic', and\n"
-"'underline'. How each is rendered depends on the terminal emulator.\n"
-"Some may not be available for a given terminal type, and will be\n"
-"silently ignored."
-msgstr ""
-
-msgid ""
-"Note that on some systems, terminfo mode may cause problems when using\n"
-"color with the pager extension and less -R. less with the -R option\n"
-"will only display ECMA-48 color codes, and terminfo mode may sometimes\n"
-"emit codes that less doesn't understand. You can work around this by\n"
-"either using ansi mode (or auto mode), or by using less -r (which will\n"
-"pass through all terminal control codes, not just color control\n"
-"codes)."
-msgstr ""
-
-msgid ""
-"Because there are only eight standard colors, this module allows you\n"
-"to define color names for other color slots which might be available\n"
-"for your terminal type, assuming terminfo mode. For instance::"
-msgstr ""
-
-msgid ""
-" color.brightblue = 12\n"
-" color.pink = 207\n"
-" color.orange = 202"
-msgstr ""
-
-msgid ""
-"to set 'brightblue' to color slot 12 (useful for 16 color terminals\n"
-"that have brighter colors defined in the upper eight) and, 'pink' and\n"
-"'orange' to colors in 256-color xterm's default color cube. These\n"
-"defined colors may then be used as any of the pre-defined eight,\n"
-"including appending '_background' to set the background to that color."
-msgstr ""
-
-msgid ""
-"By default, the color extension will use ANSI mode (or win32 mode on\n"
-"Windows) if it detects a terminal. To override auto mode (to enable\n"
-"terminfo mode, for example), set the following configuration option::"
+"The color extension will try to detect whether to use ANSI codes or\n"
+"Win32 console APIs, unless it is made explicit::"
msgstr ""
msgid ""
" [color]\n"
-" mode = terminfo"
+" mode = ansi"
msgstr ""
" [color]\n"
-" mode = terminfo"
+" mode = ansi"
-msgid ""
-"Any value other than 'ansi', 'win32', 'terminfo', or 'auto' will\n"
-"disable color.\n"
+msgid "Any value other than 'ansi', 'win32', or 'auto' will disable color."
msgstr ""
-msgid "no terminfo entry for setab/setaf: reverting to ECMA-48 color\n"
-msgstr ""
+#, python-format
+msgid "ignoring unknown color/effect %r (configured in color.%s)\n"
+msgstr "ignorerer ukendt farve/effekt %r (konfigureret i color.%s)\n"
#, python-format
msgid "warning: failed to set color mode to %s\n"
msgstr ""
-#, python-format
-msgid "ignoring unknown color/effect %r (configured in color.%s)\n"
-msgstr "ignorerer ukendt farve/effekt %r (konfigureret i color.%s)\n"
-
#. i18n: 'always', 'auto', and 'never' are keywords and should
#. not be translated
msgid "when to colorize (boolean, always, auto, or never)"
@@ -1294,8 +1237,8 @@ msgstr ""
msgid ""
" :convert.hg.saverev: store original revision ID in changeset\n"
-" (forces target IDs to change). It takes a boolean argument and\n"
-" defaults to False."
+" (forces target IDs to change). It takes and boolean argument\n"
+" and defaults to False."
msgstr ""
msgid ""
@@ -2162,15 +2105,13 @@ msgid ""
msgstr ""
msgid ""
-"The extension uses an optional ``[eol]`` section read from both the\n"
-"normal Mercurial configuration files and the ``.hgeol`` file, with the\n"
-"latter overriding the former. You can use that section to control the\n"
-"overall behavior. There are three settings:"
+"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:"
msgstr ""
-"Udvidelsen bruger en valgfri ``[eol]`` sektion som bliver læst fra\n"
-"både de normale konfigurationsfiler og fra ``.hgeol`` filen, hvor den\n"
-"sidste har mere betydning end den første. Du kan bruge denne sektion\n"
-"til at bestemme den overordnede opførsel. Der er tre indstillinger:"
+"Udvidelsen bruger en valgfri ``[eol]`` sektion i den hgrc fil (ikke\n"
+"``.hgeol`` filen) til at bestemme den overordnede opførsel. Der er to\n"
+"indstillinger:"
msgid ""
"- ``eol.native`` (default ``os.linesep``) can be set to ``LF`` or\n"
@@ -2198,12 +2139,6 @@ msgstr ""
" antagelse af at de har miksede linieskift med vilje."
msgid ""
-"- ``eol.fix-trailing-newline`` (default False) can be set to True to\n"
-" ensure that converted files end with a EOL character (either ``\\n``\n"
-" or ``\\r\\n`` as per the configured patterns)."
-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"
@@ -2262,7 +2197,7 @@ msgid ""
msgstr ""
msgid ""
-"The extdiff extension also allows you to configure new diff commands, so\n"
+"The extdiff extension also allows to configure new diff commands, so\n"
"you do not need to type :hg:`extdiff -p kdiff3` always. ::"
msgstr ""
@@ -2319,13 +2254,11 @@ msgid ""
" $parent1, $plabel1 - filename, descriptive label of first parent\n"
" $child, $clabel - filename, descriptive label of child revision\n"
" $parent2, $plabel2 - filename, descriptive label of second parent\n"
-" $root - repository root\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"
-" $root - depotets rodbibliotek\n"
" $parent er et alias for $parent1."
msgid ""
@@ -2548,9 +2481,6 @@ msgstr "%s Bemærk: underskriften er udløbet (underskrevet af \"%s\")\n"
msgid "%s Note: This key has expired (signed by: \"%s\")\n"
msgstr "%s Bemærk: denne nøgle er udløbet (underskrevet af \"%s\")\n"
-msgid "hg sigs"
-msgstr "hg sigs"
-
msgid "list signed changesets"
msgstr "vis underskrevne ændringer"
@@ -2558,9 +2488,6 @@ msgstr "vis underskrevne ændringer"
msgid "%s:%d node does not exist\n"
msgstr "%s:%d knude findes ikke\n"
-msgid "hg sigcheck REVISION"
-msgstr "hg sigcheck REVISION"
-
msgid "verify all the signatures there may be for a particular revision"
msgstr "verificer alle underskrifter der måtte være for en given revision"
@@ -2568,30 +2495,6 @@ msgstr "verificer alle underskrifter der måtte være for en given revision"
msgid "No valid signature for %s\n"
msgstr "Ingen gyldig signatur for %s\n"
-msgid "make the signature local"
-msgstr "lav underskriften lokal"
-
-msgid "sign even if the sigfile is modified"
-msgstr "underskriv selv hvis signaturfilen er ændret"
-
-msgid "do not commit the sigfile after signing"
-msgstr "deponer ikke signaturfilen efter underskrivning"
-
-msgid "ID"
-msgstr "ID"
-
-msgid "the key id to sign with"
-msgstr "nøgle ID der skal underskrives med"
-
-msgid "TEXT"
-msgstr "TEKST"
-
-msgid "commit message"
-msgstr "deponeringsbesked"
-
-msgid "hg sign [OPTION]... [REVISION]..."
-msgstr "hg sign [TILVALG]... [REVISION]..."
-
msgid "add a signature for the current or given revision"
msgstr "tilføj en underskrift til den aktuelle eller en given revision"
@@ -2629,6 +2532,36 @@ msgstr ""
msgid "unknown signature version"
msgstr "ukendt underskrift-version"
+msgid "make the signature local"
+msgstr "lav underskriften lokal"
+
+msgid "sign even if the sigfile is modified"
+msgstr "underskriv selv hvis signaturfilen er ændret"
+
+msgid "do not commit the sigfile after signing"
+msgstr "deponer ikke signaturfilen efter underskrivning"
+
+msgid "ID"
+msgstr "ID"
+
+msgid "the key id to sign with"
+msgstr "nøgle ID der skal underskrives med"
+
+msgid "TEXT"
+msgstr "TEKST"
+
+msgid "commit message"
+msgstr "deponeringsbesked"
+
+msgid "hg sign [OPTION]... [REVISION]..."
+msgstr "hg sign [TILVALG]... [REVISION]..."
+
+msgid "hg sigcheck REVISION"
+msgstr "hg sigcheck REVISION"
+
+msgid "hg sigs"
+msgstr "hg sigs"
+
msgid "command to view revision graphs from a shell"
msgstr "kommando til at se revisionsgrafer fra en kommandofortolker"
@@ -2642,26 +2575,8 @@ msgstr ""
"ASCII-repræsentation af revisionsgrafen også blive vist.\n"
#, python-format
-msgid "-G/--graph option is incompatible with --%s"
-msgstr "-G/--graph tilvalget er ikke kompatibelt med --%s"
-
-msgid "-G/--graph option is incompatible with --follow with file argument"
-msgstr "-G/--graph tilvalget er ikke kompatibelt med --follow sammen med et filargument"
-
-msgid "NUM"
-msgstr "TAL"
-
-msgid "limit number of changes displayed"
-msgstr "begræns antaln viste ændringer"
-
-msgid "show patch"
-msgstr "vis rettelse"
-
-msgid "show the specified revision or range"
-msgstr "vis den angivne revision eller interval"
-
-msgid "hg glog [OPTION]... [FILE]"
-msgstr "hg glog [TILVALG]... [FIL]"
+msgid "--graph option is incompatible with --%s"
+msgstr "--graph tilvalget er ikke kompatibelt med --%s"
msgid "show revision history alongside an ASCII revision graph"
msgstr "vis revisionshistorie ved siden af en ASCII revisionsgraf"
@@ -2681,9 +2596,27 @@ msgstr ""
" Knuder udskrevet med et @-tegn er forældre til arbejdskataloget.\n"
" "
+msgid "--graph option allows at most one file"
+msgstr ""
+
msgid "show the revision DAG"
msgstr "vis revisionsgrafen"
+msgid "NUM"
+msgstr "TAL"
+
+msgid "limit number of changes displayed"
+msgstr "begræns antaln viste ændringer"
+
+msgid "show patch"
+msgstr "vis rettelse"
+
+msgid "show the specified revision or range"
+msgstr "vis den angivne revision eller interval"
+
+msgid "hg glog [OPTION]... [FILE]"
+msgstr "hg glog [TILVALG]... [FIL]"
+
msgid "hooks for integrating with the CIA.vc notification service"
msgstr ""
@@ -2703,7 +2636,7 @@ msgid ""
" # Append a diffstat to the log message (optional)\n"
" #diffstat = False\n"
" # Template to use for log messages (optional)\n"
-" #template = {desc}\\n{baseurl}{webroot}/rev/{node}-- {diffstat}\n"
+" #template = {desc}\\n{baseurl}/rev/{node}-- {diffstat}\n"
" # Style to use (optional)\n"
" #style = foo\n"
" # The URL of the CIA notification service (optional)\n"
@@ -2712,9 +2645,7 @@ msgid ""
" # Make sure to set email.from if you do this.\n"
" #url = http://cia.vc/\n"
" # print message instead of sending it (optional)\n"
-" #test = False\n"
-" # number of slashes to strip for url paths\n"
-" #strip = 0"
+" #test = False"
msgstr ""
msgid ""
@@ -2851,7 +2782,6 @@ msgstr "hg debug-config"
msgid "hg debug-merge-base REV REV"
msgstr "hg debug-merge-base REV REV"
-#. i18n: bisect changeset status
msgid "ignored"
msgstr "ignoreret"
@@ -3204,15 +3134,6 @@ msgstr "[keyword] mønstre kan ikke matche"
msgid "no [keyword] patterns configured"
msgstr "ingen [keyword] mønstre konfigureret"
-msgid "show default keyword template maps"
-msgstr "vis standard keyword skabelon-afbildninger"
-
-msgid "read maps from rcfile"
-msgstr ""
-
-msgid "hg kwdemo [-d] [-f RCFILE] [TEMPLATEMAP]..."
-msgstr "hg kwdemo [-d] [-f RCFILE] [TEMPLATEMAP]..."
-
msgid "print [keywordmaps] configuration and an expansion example"
msgstr ""
@@ -3296,9 +3217,6 @@ msgstr ""
"\n"
"\tnøgleord udvidet\n"
-msgid "hg kwexpand [OPTION]... [FILE]..."
-msgstr "hg kwexpand [TILVALG]... [FIL]..."
-
msgid "expand keywords in the working directory"
msgstr "udvid nøgleord i arbejdskataloget"
@@ -3313,18 +3231,6 @@ msgstr ""
"ændringer.\n"
" "
-msgid "show keyword status flags of all files"
-msgstr "vis keyword status for alle filer"
-
-msgid "show files excluded from expansion"
-msgstr "vis filer ekskluderet fra ekspansion"
-
-msgid "only show unknown (not tracked) files"
-msgstr "vis kun ukendte (ikke-fulgte) filer"
-
-msgid "hg kwfiles [OPTION]... [FILE]..."
-msgstr "hg kwfiles [TILVALG]... [FIL]..."
-
msgid "show files configured for keyword expansion"
msgstr ""
@@ -3357,9 +3263,6 @@ msgid ""
" "
msgstr ""
-msgid "hg kwshrink [OPTION]... [FILE]..."
-msgstr "hg kwshrink [TILVALG]... [FIL]..."
-
msgid "revert expanded keywords in the working directory"
msgstr "før ekspanderede nøgleord tilbge i arbejdskataloget"
@@ -3374,398 +3277,32 @@ msgstr ""
" ændringer.\n"
" "
-msgid "track large binary files"
-msgstr "håndtering af store binære filer"
-
-msgid ""
-"Large binary files tend to be not very compressible, not very\n"
-"diffable, and not at all mergeable. Such files are not handled\n"
-"efficiently by Mercurial's storage format (revlog), which is based on\n"
-"compressed binary deltas; storing large binary files as regular\n"
-"Mercurial files wastes bandwidth and disk space and increases\n"
-"Mercurial's memory usage. The largefiles extension addresses these\n"
-"problems by adding a centralized client-server layer on top of\n"
-"Mercurial: largefiles live in a *central store* out on the network\n"
-"somewhere, and you only fetch the revisions that you need when you\n"
-"need them."
-msgstr ""
-
-msgid ""
-"largefiles works by maintaining a \"standin file\" in .hglf/ for each\n"
-"largefile. The standins are small (41 bytes: an SHA-1 hash plus\n"
-"newline) and are tracked by Mercurial. Largefile revisions are\n"
-"identified by the SHA-1 hash of their contents, which is written to\n"
-"the standin. largefiles uses that revision ID to get/put largefile\n"
-"revisions from/to the central store. This saves both disk space and\n"
-"bandwidth, since you don't need to retrieve all historical revisions\n"
-"of large files when you clone or pull."
-msgstr ""
-
-msgid ""
-"To start a new repository or add new large binary files, just add\n"
-"--large to your :hg:`add` command. For example::"
-msgstr ""
-
-msgid ""
-" $ dd if=/dev/urandom of=randomdata count=2000\n"
-" $ hg add --large randomdata\n"
-" $ hg commit -m 'add randomdata as a largefile'"
-msgstr ""
-
-msgid ""
-"When you push a changeset that adds/modifies largefiles to a remote\n"
-"repository, its largefile revisions will be uploaded along with it.\n"
-"Note that the remote Mercurial must also have the largefiles extension\n"
-"enabled for this to work."
-msgstr ""
-
-msgid ""
-"When you pull a changeset that affects largefiles from a remote\n"
-"repository, Mercurial behaves as normal. However, when you update to\n"
-"such a revision, any largefiles needed by that revision are downloaded\n"
-"and cached (if they have never been downloaded before). This means\n"
-"that network access may be required to update to changesets you have\n"
-"not previously updated to."
-msgstr ""
-
-msgid ""
-"If you already have large files tracked by Mercurial without the\n"
-"largefiles extension, you will need to convert your repository in\n"
-"order to benefit from largefiles. This is done with the\n"
-":hg:`lfconvert` command::"
-msgstr ""
-
-msgid " $ hg lfconvert --size 10 oldrepo newrepo"
-msgstr ""
-
-msgid ""
-"In repositories that already have largefiles in them, any new file\n"
-"over 10MB will automatically be added as a largefile. To change this\n"
-"threshold, set ``largefiles.minsize`` in your Mercurial config file\n"
-"to the minimum size in megabytes to track as a largefile, or use the\n"
-"--lfsize option to the add command (also in megabytes)::"
-msgstr ""
-
-msgid ""
-" [largefiles]\n"
-" minsize = 2"
-msgstr ""
-
-msgid " $ hg add --lfsize 2"
-msgstr ""
-
-msgid ""
-"The ``largefiles.patterns`` config option allows you to specify a list\n"
-"of filename patterns (see :hg:`help patterns`) that should always be\n"
-"tracked as largefiles::"
-msgstr ""
-
-msgid ""
-" [largefiles]\n"
-" patterns =\n"
-" *.jpg\n"
-" re:.*\\.(png|bmp)$\n"
-" library.zip\n"
-" content/audio/*"
-msgstr ""
-
-msgid ""
-"Files that match one of these patterns will be added as largefiles\n"
-"regardless of their size.\n"
-msgstr ""
-
-msgid "convert a normal repository to a largefiles repository"
-msgstr "konverter et normalt depot til et largefiles-depot"
-
-msgid ""
-" Convert repository SOURCE to a new repository DEST, identical to\n"
-" SOURCE except that certain files will be converted as largefiles:\n"
-" specifically, any file that matches any PATTERN *or* whose size is\n"
-" above the minimum size threshold is converted as a largefile. The\n"
-" size used to determine whether or not to track a file as a\n"
-" largefile is the size of the first version of the file. The\n"
-" minimum size can be specified either with --size or in\n"
-" configuration as ``largefiles.size``."
-msgstr ""
-
-msgid ""
-" After running this command you will need to make sure that\n"
-" largefiles is enabled anywhere you intend to push the new\n"
-" repository."
-msgstr ""
-
-msgid ""
-" Use --to-normal to convert largefiles back to normal files; after\n"
-" this, the DEST repository can be used without largefiles at all."
-msgstr ""
-
-msgid "getting largefiles"
-msgstr "henter largefiles"
-
-#, python-format
-msgid "getting %s:%s\n"
-msgstr "henter %s:%s\n"
-
-#, python-format
-msgid "%s: data corruption (expected %s, got %s)\n"
-msgstr ""
-
-#, python-format
-msgid "searching %d changesets for largefiles\n"
-msgstr "leder efter largefiles i %d ændringer\n"
-
-#, python-format
-msgid "verified contents of %d revisions of %d largefiles\n"
-msgstr ""
-
-#, python-format
-msgid "verified existence of %d revisions of %d largefiles\n"
-msgstr ""
-
-#, python-format
-msgid "unsupported URL scheme %r"
-msgstr "ikke-understøttet URL-skema %r"
-
-#, python-format
-msgid "%s does not appear to be a largefile store"
-msgstr "%s ser ikke ud til at være et largefile-lager"
-
-#, python-format
-msgid "%s is not a local Mercurial repo"
-msgstr "%s er ikke et lokalt Mercurial depot"
-
-#, python-format
-msgid "initializing destination %s\n"
-msgstr "initialiserer målet %s\n"
-
-msgid "converting revisions"
-msgstr "konverterer revisioner"
-
-#, python-format
-msgid "renamed/copied largefile %s becomes symlink"
-msgstr ""
-
-#, python-format
-msgid "largefile %s becomes symlink"
-msgstr ""
-
-msgid "uploading largefiles"
-msgstr ""
-
-#, python-format
-msgid "largefile %s missing from store (needs to be uploaded)"
-msgstr ""
-
-msgid "getting changed largefiles\n"
-msgstr "henter ændrede largefiles\n"
-
-#, python-format
-msgid "%d largefiles updated, %d removed\n"
-msgstr ""
-
-msgid "minimum size (MB) for files to be converted as largefiles"
-msgstr ""
-
-msgid "convert from a largefiles repo to a normal repo"
-msgstr ""
-
-msgid "hg lfconvert SOURCE DEST [FILE ...]"
-msgstr "hg lfconvert KILDE MÃ…L [FIL ...]"
-
-#, python-format
-msgid "largefiles: size must be number (not %s)\n"
-msgstr ""
-
-msgid "minimum size for largefiles must be specified"
-msgstr ""
-
-#, python-format
-msgid "unknown operating system: %s\n"
-msgstr "ukendt operativsystem: %s\n"
-
-#, python-format
-msgid "Found %s in store\n"
-msgstr ""
-
-#, python-format
-msgid "Found %s in system cache\n"
-msgstr ""
-
-#, python-format
-msgid "bad hash in '%s' (only %d bytes long)"
-msgstr ""
-
-msgid "Can't get file locally"
-msgstr ""
-
-#, python-format
-msgid ""
-"changeset %s: %s missing\n"
-" (looked for hash %s)\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"changeset %s: %s: contents differ\n"
-" (%s:\n"
-" expected hash %s,\n"
-" but got %s)\n"
-msgstr ""
-
-#, python-format
-msgid "%s already a largefile\n"
-msgstr "%s er allerede en largefile\n"
-
-#, python-format
-msgid "adding %s as a largefile\n"
-msgstr "tilføjer %s som en largefile\n"
-
-msgid "no files specified"
-msgstr "ingen filer angivet"
-
-#, python-format
-msgid "not removing %s: %s (use -f to force removal)\n"
-msgstr "fjerner ikke %s: %s (brug -f for at forcere fjernelsen)\n"
-
-msgid "file still exists"
-msgstr "%s eksisterer stadig"
-
-msgid "file is modified"
-msgstr "filen er ændret"
-
-msgid "file has been marked for add"
-msgstr "filen er markeret til sletning"
-
-#, python-format
-msgid "removing %s\n"
-msgstr "fjerner %s\n"
-
-msgid "uncommitted local changes"
-msgstr "udeponerede lokale ændringer"
-
-#, python-format
-msgid "merging %s and %s to %s\n"
-msgstr "føjer %s og %s sammen til %s\n"
-
-#, python-format
-msgid "merging %s\n"
-msgstr "sammenføjer %s\n"
-
-#, python-format
-msgid ""
-"largefile %s has a merge conflict\n"
-"keep (l)ocal or take (o)ther?"
-msgstr ""
-
-msgid "&Local"
-msgstr ""
-
-msgid "&Other"
-msgstr ""
-
-msgid "destination largefile already exists"
-msgstr "destinations largefile eksisterer allerede"
-
-msgid "no files to copy"
-msgstr "ingen filer at kopiere"
-
-#, python-format
-msgid "unknown archive type '%s'"
-msgstr "ukendt depottype '%s'"
-
-msgid "cannot give prefix when archiving to files"
-msgstr "kan ikke give præfix ved arkivering til filer"
-
-#, python-format
-msgid "not removing %s: file is already untracked\n"
-msgstr "fjerner ikke %s: filen følges ikke\n"
-
-msgid "largefiles: No remote repo\n"
-msgstr ""
-
-msgid "largefiles to upload:\n"
-msgstr ""
-
-#, python-format
-msgid "largefiles: %d to upload\n"
-msgstr ""
-
-msgid "addremove cannot be run on a repo with largefiles"
-msgstr ""
-
-#, python-format
-msgid "largefiles: failed to put %s (%s) into store: %s"
-msgstr ""
-
-#, python-format
-msgid "requested largefile %s not present in cache"
-msgstr ""
-
-msgid "putlfile failed:"
-msgstr ""
-
-msgid "putlfile failed (unexpected response):"
-msgstr ""
-
-msgid "unexpected response:"
-msgstr "uventet svar:"
-
-#, python-format
-msgid "remotestore: could not put %s to remote store %s"
-msgstr ""
-
-#, python-format
-msgid "remotestore: put %s to remote store %s"
-msgstr ""
-
-#, python-format
-msgid "remotestore: could not open file %s: %s"
-msgstr "fjernlager: kunne ikke åbne fil %s: %s"
-
-#, python-format
-msgid "remotestore: largefile %s is invalid"
-msgstr ""
-
-#, python-format
-msgid "remotestore: largefile %s is missing"
-msgstr ""
-
-#, python-format
-msgid "changeset %s: %s: contents differ\n"
-msgstr ""
-
-#, python-format
-msgid "changeset %s: %s missing\n"
-msgstr ""
+msgid "show default keyword template maps"
+msgstr "vis standard keyword skabelon-afbildninger"
-#, python-format
-msgid ""
-"largefiles: repo method %r appears to have already been wrapped by another "
-"extension: largefiles may behave incorrectly\n"
+msgid "read maps from rcfile"
msgstr ""
-#, python-format
-msgid "file \"%s\" is a largefile standin"
-msgstr ""
+msgid "hg kwdemo [-d] [-f RCFILE] [TEMPLATEMAP]..."
+msgstr "hg kwdemo [-d] [-f RCFILE] [TEMPLATEMAP]..."
-msgid "add as largefile"
-msgstr ""
+msgid "hg kwexpand [OPTION]... [FILE]..."
+msgstr "hg kwexpand [TILVALG]... [FIL]..."
-msgid ""
-"add all files above this size (in megabytes) as largefiles (default: 10)"
-msgstr ""
+msgid "show keyword status flags of all files"
+msgstr "vis keyword status for alle filer"
-msgid "verify largefiles"
-msgstr ""
+msgid "show files excluded from expansion"
+msgstr "vis filer ekskluderet fra ekspansion"
-msgid "verify all revisions of largefiles not just current"
-msgstr ""
+msgid "only show unknown (not tracked) files"
+msgstr "vis kun ukendte (ikke-fulgte) filer"
-msgid "verify largefile contents not just existence"
-msgstr ""
+msgid "hg kwfiles [OPTION]... [FILE]..."
+msgstr "hg kwfiles [TILVALG]... [FIL]..."
-msgid "display outgoing largefiles"
-msgstr ""
+msgid "hg kwshrink [OPTION]... [FILE]..."
+msgstr "hg kwshrink [TILVALG]... [FIL]..."
msgid "manage a stack of patches"
msgstr "håndter en stak af rettelser"
@@ -3848,9 +3385,6 @@ msgid ""
"create other, independent patch queues with the :hg:`qqueue` command.\n"
msgstr ""
-msgid "print first line of patch header"
-msgstr "udskriv første linie i rettelsens hoved"
-
#, python-format
msgid "malformated mq status line: %s\n"
msgstr "misdannet mq statuslinie: %s\n"
@@ -3891,12 +3425,12 @@ msgid "allowing %s - no matching negative guards\n"
msgstr "tillader %s - ingen negative filtre matcher\n"
#, python-format
-msgid "allowing %s - guarded by %s\n"
-msgstr "tillader %s - filtreret af %s\n"
+msgid "allowing %s - guarded by %r\n"
+msgstr "tillader %s - filtreret af %r\n"
#, python-format
-msgid "skipping %s - guarded by %s\n"
-msgstr "springer %s over - filtreret af %s\n"
+msgid "skipping %s - guarded by %r\n"
+msgstr "springer %s over - filtreret af %r\n"
#, python-format
msgid "skipping %s - no matching guards\n"
@@ -3958,14 +3492,6 @@ msgid "fuzz found when applying patch, stopping\n"
msgstr ""
#, python-format
-msgid "revision %s refers to unknown patches: %s\n"
-msgstr ""
-
-#, python-format
-msgid "unknown patches: %s\n"
-msgstr "ukendt rettelser %s\n"
-
-#, python-format
msgid "revision %d is not managed"
msgstr ""
@@ -4009,14 +3535,6 @@ msgid "\"%s\" cannot be used as the name of a patch"
msgstr "\"%s\" kan ikke bruges som navnet på en rettelse"
#, python-format
-msgid "patch name cannot begin with \"%s\""
-msgstr ""
-
-#, python-format
-msgid "\"%s\" cannot be used in the name of a patch"
-msgstr "\"%s\" kan ikke bruges i navnet på en rettelse"
-
-#, python-format
msgid "\"%s\" already exists as a directory"
msgstr "\"%s\" eksisterer allerede som et katalog"
@@ -4058,8 +3576,8 @@ msgid "cannot push to a previous patch: %s"
msgstr "kan ikke skubbe til en tidligere rettelse: %s"
#, python-format
-msgid "guarded by %s"
-msgstr "beskyttet af %s"
+msgid "guarded by %r"
+msgstr "beskyttet af %r"
msgid "no matching guards"
msgstr "ingen matchende filtre"
@@ -4236,15 +3754,6 @@ msgstr "kan ikke læse filen %s"
msgid "adding %s to series file\n"
msgstr "tilføjer %s til series filen\n"
-msgid "keep patch file"
-msgstr "behold rettelsesfil"
-
-msgid "stop managing a revision (DEPRECATED)"
-msgstr ""
-
-msgid "hg qdelete [-k] [PATCH]..."
-msgstr "hg qdelete [-k] [RETTELSE]..."
-
msgid "remove patches from queue"
msgstr ""
@@ -4259,12 +3768,6 @@ msgid ""
" use the :hg:`qfinish` command."
msgstr ""
-msgid "show only the last patch"
-msgstr "vis kun den sidste rettelse"
-
-msgid "hg qapplied [-1] [-s] [PATCH]"
-msgstr "hg qapplied [-1] [-s] [RETTELSE]"
-
msgid "print the patches already applied"
msgstr "udskriver rettelserne som allerede er anvendt"
@@ -4274,42 +3777,12 @@ msgstr ""
msgid "only one patch applied\n"
msgstr "kun én rettelse er anvendt\n"
-msgid "show only the first patch"
-msgstr "vis kun den første rettelse"
-
-msgid "hg qunapplied [-1] [-s] [PATCH]"
-msgstr "hg qunapplied [-1] [-s] [RETTELSE]"
-
msgid "print the patches not yet applied"
msgstr "udskriver rettelserne som ikke er anvendt endnu"
msgid "all patches applied\n"
msgstr "alle rettelser er anvendt\n"
-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"
-
-msgid "overwrite existing files"
-msgstr "overskriv eksisterende filer"
-
-msgid "place existing revisions under mq control"
-msgstr "placer eksisterende revisioner under mq-kontrol"
-
-msgid "use git extended diff format"
-msgstr "brug git udvidet diff-format"
-
-msgid "qpush after importing"
-msgstr "qpush efter import"
-
-msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE..."
-msgstr "hg qimport [-e] [-n NAVN] [-f] [-g] [-P] [-r REV]... FIL..."
-
msgid "import a patch"
msgstr "importer en patch"
@@ -4382,12 +3855,6 @@ msgstr ""
" Returnerer 0 hvis importeringen lykkedes.\n"
" "
-msgid "create queue repository"
-msgstr "opret kø-repository"
-
-msgid "hg qinit [-c]"
-msgstr "hg qinit [-c]"
-
msgid "init a new queue repository (DEPRECATED)"
msgstr "opret et nyt kø-depot (FORÆLDET)"
@@ -4411,24 +3878,6 @@ msgstr ""
" Denne kommando er forældet. Uden -c er kommandoen ikke nødvendig,\n"
" med -c bør :hg:`init --mq` bruges i stedet."
-msgid "use pull protocol to copy metadata"
-msgstr "brug træk-protokol til at kopiere metadata"
-
-msgid "do not update the new working directories"
-msgstr "undlad at opdatere det nye arbejdskatalog"
-
-msgid "use uncompressed transfer (fast over LAN)"
-msgstr "brug ukomprimeret overførsel (hurtig over LAN)"
-
-msgid "REPO"
-msgstr "DEPOT"
-
-msgid "location of source patch repository"
-msgstr "placering af kilde rettelse-depotet"
-
-msgid "hg qclone [OPTION]... SOURCE [DEST]"
-msgstr "hg qclone [TILVALG]... KILDE [MÃ…L]"
-
msgid "clone main and patch repository at same time"
msgstr ""
@@ -4472,63 +3921,24 @@ msgstr "stripper anvendte rettelser fra destinationsdepotet\n"
msgid "updating destination repository\n"
msgstr "opdaterer destinationsdepotet\n"
-msgid "hg qcommit [OPTION]... [FILE]..."
-msgstr "hg qcommit [TILVALG]... [FIL]..."
-
msgid "commit changes in the queue repository (DEPRECATED)"
msgstr ""
msgid " This command is deprecated; use :hg:`commit --mq` instead."
msgstr " Denne kommando er forældet. Brug :hg:`init --mq` i stedet."
-msgid "print patches not in series"
-msgstr "udskriv rettelser som ikke er i serien"
-
-msgid "hg qseries [-ms]"
-msgstr "hg qseries [-ms]"
-
msgid "print the entire series file"
msgstr "udskriver hele series filen"
-msgid "hg qtop [-s]"
-msgstr "hg qtop [-s]"
-
msgid "print the name of the current patch"
msgstr "udskriver navnet på den nuværende rettelse"
-msgid "hg qnext [-s]"
-msgstr "hg qnext [-s]"
-
msgid "print the name of the next patch"
msgstr "udskriver navnet på den næste rettelse"
-msgid "hg qprev [-s]"
-msgstr "hg qprev [-s]"
-
msgid "print the name of the previous patch"
msgstr "udskriver navnet på den forgående rettelse"
-msgid "import uncommitted changes (DEPRECATED)"
-msgstr "importer udeponerede ændringer (FORÆLDET)"
-
-msgid "add \"From: <current user>\" to patch"
-msgstr "tilføj \"From: <aktuel bruger>\" til rettelsen"
-
-msgid "USER"
-msgstr "BRUGER"
-
-msgid "add \"From: <USER>\" to patch"
-msgstr "tilføj \"From: <BRUGER>\" til rettelsen"
-
-msgid "add \"Date: <current date>\" to patch"
-msgstr "tilføj \"Date: <aktuel dato>\" til rettelsen"
-
-msgid "add \"Date: <DATE>\" to patch"
-msgstr "tilføj \"Date: <DATO>\" til rettelsen"
-
-msgid "hg qnew [-e] [-m TEXT] [-l FILE] PATCH [FILE]..."
-msgstr "hg qnew [-e] [-m TEKST] [-l FIL] RETTELSE [FIL]..."
-
msgid "create a new patch"
msgstr ""
@@ -4571,24 +3981,6 @@ msgstr ""
" Returnerer 0 hvis patchen blev oprettet.\n"
" "
-msgid "refresh only files already in the patch and specified files"
-msgstr "genopfrisk kun filer som allerede findes i rettelsen og angivne filer"
-
-msgid "add/update author field in patch with current user"
-msgstr "tilføj/opdater forfatterfeltet i rettelsen med den aktuelle bruger"
-
-msgid "add/update author field in patch with given user"
-msgstr "tilføj/opdater forfatterfeltet i rettelsen med den angivne bruger"
-
-msgid "add/update date field in patch with current date"
-msgstr "tilføj/opdater datofeltet i rettelsen med den aktuelle dato"
-
-msgid "add/update date field in patch with given date"
-msgstr "tilføj/opdater datofeltet i rettelsen med den angivne dato"
-
-msgid "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l FILE] [-s] [FILE]..."
-msgstr "hg qrefresh [-I] [-X] [-e] [-m TEKST] [-l FIL] [-s] [FIL]..."
-
msgid "update the current patch"
msgstr "opdater den aktuelle patch"
@@ -4630,9 +4022,6 @@ msgstr ""
msgid "option \"-e\" incompatible with \"-m\" or \"-l\""
msgstr "tilvalg \"-e\" er inkompatibelt med \"-m\" eller \"-l\""
-msgid "hg qdiff [OPTION]... [FILE]..."
-msgstr "hg qdiff [TILVALG]... [FIL]..."
-
msgid "diff of the current patch and subsequent modifications"
msgstr "forskelle mellem den nuværende patch og efterfølgende modifikationer"
@@ -4658,15 +4047,6 @@ msgstr ""
" lavet af den nuværende patch uden at inkludere ændringer lavet\n"
" siden qrefresh."
-msgid "edit patch header"
-msgstr "rediger rettelsens hoved"
-
-msgid "keep folded patch files"
-msgstr "behold foldede rettelsesfiler"
-
-msgid "hg qfold [-e] [-k] [-m TEXT] [-l FILE] PATCH..."
-msgstr "hg qfold [-e] [-k] [-m TEKST] [-l FIL] RETTELSE..."
-
msgid "fold the named patches into the current patch"
msgstr ""
@@ -4699,26 +4079,11 @@ msgstr "qfold kan ikke folde allerede anvendt rettelse %s"
msgid "error folding patch %s"
msgstr "fejl ved foldning af rettelse %s"
-msgid "overwrite any local changes"
-msgstr "overskrive eventuelle lokale ændringer"
-
-msgid "hg qgoto [OPTION]... PATCH"
-msgstr "hg qgoto [TILVALG]... RETTELSE"
-
msgid "push or pop patches until named patch is at top of stack"
msgstr ""
"tilføj eller fjern rettelser indtil den navngivne rettelser er på toppen af "
"stakken"
-msgid "list all patches and guards"
-msgstr "vis alle rettelser og filtre"
-
-msgid "drop all guards"
-msgstr "drop alle filtre"
-
-msgid "hg qguard [-l] [-n] [PATCH] [-- [+GUARD]... [-GUARD]...]"
-msgstr "hg qguard [-l] [-n] [RETTELSE] [-- [+VAGT]... [-VAGT]...]"
-
msgid "set or print guards for a patch"
msgstr "sæt eller vis filtre for en rettelse"
@@ -4765,36 +4130,9 @@ msgstr "ingen rettelse at arbejde med"
msgid "no patch named %s"
msgstr "ingen patch ved navn %s"
-msgid "hg qheader [PATCH]"
-msgstr "hg qheader [RETTELSE]"
-
msgid "print the header of the topmost or specified patch"
msgstr "udskriv hovedet af den øverste eller den angivne rettelse"
-msgid "apply on top of local changes"
-msgstr "anvend ovenpå lokale ændringer"
-
-msgid "apply the target patch to its recorded parent"
-msgstr ""
-
-msgid "list patch name in commit text"
-msgstr ""
-
-msgid "apply all patches"
-msgstr "anvend alle rettelser"
-
-msgid "merge from another queue (DEPRECATED)"
-msgstr "sammenføj med en anden kø (FORÆLDET)"
-
-msgid "merge queue name (DEPRECATED)"
-msgstr "sammenføj med navngiven kø (FORÆLDET)"
-
-msgid "reorder patch series and apply only the patch"
-msgstr ""
-
-msgid "hg qpush [-f] [-l] [-a] [--move] [PATCH | INDEX]"
-msgstr "hg qpush [-f] [-l] [-a] [--move] [RETTELSE | INDEKS]"
-
msgid "push the next patch onto the stack"
msgstr "skub den næste rettelse på stakken"
@@ -4812,18 +4150,6 @@ msgstr "fandt ingen gemte køer, brug venligst -r\n"
msgid "merging with queue at: %s\n"
msgstr "sammenføjer med kø ved: %s\n"
-msgid "pop all patches"
-msgstr "fjern alle rettelser"
-
-msgid "queue name to pop (DEPRECATED)"
-msgstr ""
-
-msgid "forget any local changes to patched files"
-msgstr "glem eventuelle lokale ændringer i de rettede filer"
-
-msgid "hg qpop [-a] [-f] [PATCH | INDEX]"
-msgstr "hg qpop [-a] [-f] [RETTELSE | INDEKS]"
-
msgid "pop the current patch off the stack"
msgstr "fjern den aktuelle rettelse fra stakken"
@@ -4840,9 +4166,6 @@ msgstr ""
msgid "using patch queue: %s\n"
msgstr "bruger rettelse-kø: %s\n"
-msgid "hg qrename PATCH1 [PATCH2]"
-msgstr "hg qrename RETTELSE1 [RETTELSE2]"
-
msgid "rename a patch"
msgstr "omdøb en rettelse"
@@ -4853,14 +4176,13 @@ msgstr ""
" Med et argument omdøbes den nuværende rettelse til RETTELSE1. Med\n"
" to argumenter omdøbes RETTELSE1 til RETTELSE2."
-msgid "delete save entry"
-msgstr ""
-
-msgid "update queue working directory"
-msgstr ""
+#, python-format
+msgid "%s already exists"
+msgstr "%s eksisterer allerede"
-msgid "hg qrestore [-d] [-u] REV"
-msgstr "hg qrestore [-d] [-u] REV"
+#, python-format
+msgid "A patch named %s already exists in the series file"
+msgstr "En rettelse ved navn %s eksisterer allerede i serien"
msgid "restore the queue state saved by a revision (DEPRECATED)"
msgstr ""
@@ -4868,21 +4190,6 @@ msgstr ""
msgid " This command is deprecated, use :hg:`rebase` instead."
msgstr " Denne kommando er forældet. Brug :hg:`rebase` i stedet."
-msgid "copy patch directory"
-msgstr ""
-
-msgid "copy directory name"
-msgstr ""
-
-msgid "clear queue status file"
-msgstr ""
-
-msgid "force copy"
-msgstr "gennemtving kopiering"
-
-msgid "hg qsave [-m TEXT] [-l FILE] [-c] [-n NAME] [-e] [-f]"
-msgstr "hg qsave [-m TEKST] [-l FIL] [-c] [-n NAVN] [-e] [-f]"
-
msgid "save current queue state (DEPRECATED)"
msgstr ""
@@ -4898,39 +4205,13 @@ msgstr "målet %s eksisterer, brug -f for at gennemtvinge"
msgid "copy %s to %s\n"
msgstr "kopier %s til %s\n"
-msgid ""
-"strip specified revision (optional, can specify revisions without this "
-"option)"
-msgstr ""
-
-msgid "force removal of changesets, discard uncommitted changes (no backup)"
-msgstr ""
-
-msgid ""
-"bundle only changesets with local revision number greater than REV which are "
-"not descendants of REV (DEPRECATED)"
-msgstr ""
-
-msgid "no backups"
-msgstr "ingen backupper"
-
-msgid "no backups (DEPRECATED)"
-msgstr "ingen backupper (FORÆLDET)"
-
-msgid "do not modify working copy during strip"
-msgstr ""
-
-msgid "hg strip [-k] [-f] [-n] REV..."
-msgstr "hg strip [-k] [-f] [-n] REV..."
-
msgid "strip changesets and all their descendants from the repository"
msgstr "strip ændringer og alle deres efterkommere fra depotet"
msgid ""
" The strip command removes the specified changesets and all their\n"
-" descendants. If the working directory has uncommitted changes, the\n"
-" operation is aborted unless the --force flag is supplied, in which\n"
-" case changes will be discarded."
+" descendants. If the working directory has uncommitted changes,\n"
+" the operation is aborted unless the --force flag is supplied."
msgstr ""
msgid ""
@@ -4960,21 +4241,6 @@ msgstr ""
msgid "empty revision set"
msgstr ""
-msgid "disable all guards"
-msgstr "slå alle filtre fra"
-
-msgid "list all guards in series file"
-msgstr "vis alle filtre i seriefilen"
-
-msgid "pop to before first guarded applied patch"
-msgstr "fjern rettelser indtil før første filtrerede og anvendte rettelse"
-
-msgid "pop, then reapply patches"
-msgstr ""
-
-msgid "hg qselect [OPTION]... [GUARD]..."
-msgstr "hg qselect [TILVALG]... [VAGT]..."
-
msgid "set or print guarded patches to push"
msgstr "sæt eller vis filtrerede rettelser der skal skubbes"
@@ -5082,12 +4348,6 @@ msgstr "fjerne filtrerede rettelser\n"
msgid "reapplying unguarded patches\n"
msgstr "anvender ufiltrerede rettelser\n"
-msgid "finish all applied changesets"
-msgstr "afslut alle anvendte ændringer"
-
-msgid "hg qfinish [-a] [REV]..."
-msgstr "hg qfinish [-a] [REV]..."
-
msgid "move applied patches into repository history"
msgstr ""
@@ -5113,27 +4373,6 @@ msgstr ""
msgid "no revisions specified"
msgstr "ingen revisioner specificeret"
-msgid "list all available queues"
-msgstr ""
-
-msgid "print name of active queue"
-msgstr "udskriv navnet på den aktive kø"
-
-msgid "create new queue"
-msgstr "opret en ny kø"
-
-msgid "rename active queue"
-msgstr "omdøb den aktive kø"
-
-msgid "delete reference to queue"
-msgstr ""
-
-msgid "delete queue, and remove patch dir"
-msgstr ""
-
-msgid "[OPTION] [QUEUE]"
-msgstr "[TILVALG] [KØ]"
-
msgid "manage multiple patch queues"
msgstr "håndter flere stakke af rettelser"
@@ -5147,9 +4386,7 @@ msgid ""
"registered\n"
" queues - by default the \"normal\" patches queue is registered. The "
"currently\n"
-" active queue will be marked with \"(active)\". Specifying --active will "
-"print\n"
-" only the name of the active queue."
+" active queue will be marked with \"(active)\"."
msgstr ""
msgid ""
@@ -5232,189 +4469,379 @@ msgstr "%d ikke-anvendte"
msgid "mq: (empty queue)\n"
msgstr "mq: (tom kø)\n"
-msgid ""
-"``mq()``\n"
-" Changesets managed by MQ."
+msgid "operate on patch repository"
+msgstr "arbejd på rettelsesdepot"
+
+msgid "print first line of patch header"
+msgstr "udskriv første linie i rettelsens hoved"
+
+msgid "show only the last patch"
+msgstr "vis kun den sidste rettelse"
+
+msgid "hg qapplied [-1] [-s] [PATCH]"
+msgstr "hg qapplied [-1] [-s] [RETTELSE]"
+
+msgid "use pull protocol to copy metadata"
+msgstr "brug træk-protokol til at kopiere metadata"
+
+msgid "do not update the new working directories"
+msgstr "undlad at opdatere det nye arbejdskatalog"
+
+msgid "use uncompressed transfer (fast over LAN)"
+msgstr "brug ukomprimeret overførsel (hurtig over LAN)"
+
+msgid "REPO"
+msgstr "DEPOT"
+
+msgid "location of source patch repository"
+msgstr "placering af kilde rettelse-depotet"
+
+msgid "hg qclone [OPTION]... SOURCE [DEST]"
+msgstr "hg qclone [TILVALG]... KILDE [MÃ…L]"
+
+msgid "hg qcommit [OPTION]... [FILE]..."
+msgstr "hg qcommit [TILVALG]... [FIL]..."
+
+msgid "hg qdiff [OPTION]... [FILE]..."
+msgstr "hg qdiff [TILVALG]... [FIL]..."
+
+msgid "keep patch file"
+msgstr "behold rettelsesfil"
+
+msgid "stop managing a revision (DEPRECATED)"
msgstr ""
-msgid "mq takes no arguments"
-msgstr "mq tager ingen argumenter"
+msgid "hg qdelete [-k] [PATCH]..."
+msgstr "hg qdelete [-k] [RETTELSE]..."
-msgid "operate on patch repository"
-msgstr "arbejd på rettelsesdepot"
+msgid "edit patch header"
+msgstr "rediger rettelsens hoved"
+
+msgid "keep folded patch files"
+msgstr "behold foldede rettelsesfiler"
+
+msgid "hg qfold [-e] [-k] [-m TEXT] [-l FILE] PATCH..."
+msgstr "hg qfold [-e] [-k] [-m TEKST] [-l FIL] RETTELSE..."
+
+msgid "overwrite any local changes"
+msgstr "overskrive eventuelle lokale ændringer"
+
+msgid "hg qgoto [OPTION]... PATCH"
+msgstr "hg qgoto [TILVALG]... RETTELSE"
+
+msgid "list all patches and guards"
+msgstr "vis alle rettelser og filtre"
+
+msgid "drop all guards"
+msgstr "drop alle filtre"
+
+msgid "hg qguard [-l] [-n] [PATCH] [-- [+GUARD]... [-GUARD]...]"
+msgstr "hg qguard [-l] [-n] [RETTELSE] [-- [+VAGT]... [-VAGT]...]"
+
+msgid "hg qheader [PATCH]"
+msgstr "hg qheader [RETTELSE]"
+
+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"
+
+msgid "overwrite existing files"
+msgstr "overskriv eksisterende filer"
+
+msgid "place existing revisions under mq control"
+msgstr "placer eksisterende revisioner under mq-kontrol"
+
+msgid "use git extended diff format"
+msgstr "brug git udvidet diff-format"
+
+msgid "qpush after importing"
+msgstr "qpush efter import"
+
+msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE..."
+msgstr "hg qimport [-e] [-n NAVN] [-f] [-g] [-P] [-r REV]... FIL..."
+
+msgid "create queue repository"
+msgstr "opret kø-repository"
+
+msgid "hg qinit [-c]"
+msgstr "hg qinit [-c]"
+
+msgid "import uncommitted changes (DEPRECATED)"
+msgstr "importer udeponerede ændringer (FORÆLDET)"
+
+msgid "add \"From: <current user>\" to patch"
+msgstr "tilføj \"From: <aktuel bruger>\" til rettelsen"
+
+msgid "USER"
+msgstr "BRUGER"
+
+msgid "add \"From: <USER>\" to patch"
+msgstr "tilføj \"From: <BRUGER>\" til rettelsen"
+
+msgid "add \"Date: <current date>\" to patch"
+msgstr "tilføj \"Date: <aktuel dato>\" til rettelsen"
+
+msgid "add \"Date: <DATE>\" to patch"
+msgstr "tilføj \"Date: <DATO>\" til rettelsen"
+
+msgid "hg qnew [-e] [-m TEXT] [-l FILE] PATCH [FILE]..."
+msgstr "hg qnew [-e] [-m TEKST] [-l FIL] RETTELSE [FIL]..."
-msgid "hooks for sending email push notifications"
+msgid "hg qnext [-s]"
+msgstr "hg qnext [-s]"
+
+msgid "hg qprev [-s]"
+msgstr "hg qprev [-s]"
+
+msgid "pop all patches"
+msgstr "fjern alle rettelser"
+
+msgid "queue name to pop (DEPRECATED)"
msgstr ""
-msgid ""
-"This extension let you run hooks sending email notifications when\n"
-"changesets are being pushed, from the sending or receiving side."
+msgid "forget any local changes to patched files"
+msgstr "glem eventuelle lokale ændringer i de rettede filer"
+
+msgid "hg qpop [-a] [-f] [PATCH | INDEX]"
+msgstr "hg qpop [-a] [-f] [RETTELSE | INDEKS]"
+
+msgid "apply on top of local changes"
+msgstr "anvend ovenpå lokale ændringer"
+
+msgid "apply the target patch to its recorded parent"
msgstr ""
-msgid ""
-"First, enable the extension as explained in :hg:`help extensions`, and\n"
-"register the hook you want to run. ``incoming`` and ``outgoing`` hooks\n"
-"are run by the changesets receiver while the ``outgoing`` one is for\n"
-"the sender::"
+msgid "list patch name in commit text"
msgstr ""
-msgid ""
-" [hooks]\n"
-" # one email for each incoming changeset\n"
-" incoming.notify = python:hgext.notify.hook\n"
-" # one email for all incoming changesets\n"
-" changegroup.notify = python:hgext.notify.hook"
+msgid "apply all patches"
+msgstr "anvend alle rettelser"
+
+msgid "merge from another queue (DEPRECATED)"
+msgstr "sammenføj med en anden kø (FORÆLDET)"
+
+msgid "merge queue name (DEPRECATED)"
+msgstr "sammenføj med navngiven kø (FORÆLDET)"
+
+msgid "reorder patch series and apply only the patch"
msgstr ""
-msgid ""
-" # one email for all outgoing changesets\n"
-" outgoing.notify = python:hgext.notify.hook"
+msgid "hg qpush [-f] [-l] [-a] [--move] [PATCH | INDEX]"
+msgstr "hg qpush [-f] [-l] [-a] [--move] [RETTELSE | INDEKS]"
+
+msgid "refresh only files already in the patch and specified files"
+msgstr "genopfrisk kun filer som allerede findes i rettelsen og angivne filer"
+
+msgid "add/update author field in patch with current user"
+msgstr "tilføj/opdater forfatterfeltet i rettelsen med den aktuelle bruger"
+
+msgid "add/update author field in patch with given user"
+msgstr "tilføj/opdater forfatterfeltet i rettelsen med den angivne bruger"
+
+msgid "add/update date field in patch with current date"
+msgstr "tilføj/opdater datofeltet i rettelsen med den aktuelle dato"
+
+msgid "add/update date field in patch with given date"
+msgstr "tilføj/opdater datofeltet i rettelsen med den angivne dato"
+
+msgid "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l FILE] [-s] [FILE]..."
+msgstr "hg qrefresh [-I] [-X] [-e] [-m TEKST] [-l FIL] [-s] [FIL]..."
+
+msgid "hg qrename PATCH1 [PATCH2]"
+msgstr "hg qrename RETTELSE1 [RETTELSE2]"
+
+msgid "delete save entry"
msgstr ""
-msgid ""
-"Now the hooks are running, subscribers must be assigned to\n"
-"repositories. Use the ``[usersubs]`` section to map repositories to a\n"
-"given email or the ``[reposubs]`` section to map emails to a single\n"
-"repository::"
+msgid "update queue working directory"
msgstr ""
-msgid ""
-" [usersubs]\n"
-" # key is subscriber email, value is a comma-separated list of glob\n"
-" # patterns\n"
-" user@host = pattern"
+msgid "hg qrestore [-d] [-u] REV"
+msgstr "hg qrestore [-d] [-u] REV"
+
+msgid "copy patch directory"
msgstr ""
-msgid ""
-" [reposubs]\n"
-" # key is glob pattern, value is a comma-separated list of subscriber\n"
-" # emails\n"
-" pattern = user@host"
+msgid "copy directory name"
msgstr ""
-msgid ""
-"Glob patterns are matched against absolute path to repository\n"
-"root. The subscriptions can be defined in their own file and\n"
-"referenced with::"
+msgid "clear queue status file"
msgstr ""
-msgid ""
-" [notify]\n"
-" config = /path/to/subscriptionsfile"
+msgid "force copy"
+msgstr "gennemtving kopiering"
+
+msgid "hg qsave [-m TEXT] [-l FILE] [-c] [-n NAME] [-e] [-f]"
+msgstr "hg qsave [-m TEKST] [-l FIL] [-c] [-n NAVN] [-e] [-f]"
+
+msgid "disable all guards"
+msgstr "slå alle filtre fra"
+
+msgid "list all guards in series file"
+msgstr "vis alle filtre i seriefilen"
+
+msgid "pop to before first guarded applied patch"
+msgstr "fjern rettelser indtil før første filtrerede og anvendte rettelse"
+
+msgid "pop, then reapply patches"
msgstr ""
+msgid "hg qselect [OPTION]... [GUARD]..."
+msgstr "hg qselect [TILVALG]... [VAGT]..."
+
+msgid "print patches not in series"
+msgstr "udskriv rettelser som ikke er i serien"
+
+msgid "hg qseries [-ms]"
+msgstr "hg qseries [-ms]"
+
msgid ""
-"Alternatively, they can be added to Mercurial configuration files by\n"
-"setting the previous entry to an empty value."
+"force removal of changesets even if the working directory has uncommitted "
+"changes"
msgstr ""
msgid ""
-"At this point, notifications should be generated but will not be sent until "
-"you\n"
-"set the ``notify.test`` entry to ``False``."
+"bundle only changesets with local revision number greater than REV which are "
+"not descendants of REV (DEPRECATED)"
msgstr ""
-msgid ""
-"Notifications content can be tweaked with the following configuration "
-"entries:"
+msgid "no backups"
+msgstr "ingen backupper"
+
+msgid "no backups (DEPRECATED)"
+msgstr "ingen backupper (FORÆLDET)"
+
+msgid "do not modify working copy during strip"
msgstr ""
-msgid ""
-"notify.test\n"
-" If ``True``, print messages to stdout instead of sending them. Default: "
-"True."
+msgid "hg strip [-k] [-f] [-n] REV..."
+msgstr "hg strip [-k] [-f] [-n] REV..."
+
+msgid "hg qtop [-s]"
+msgstr "hg qtop [-s]"
+
+msgid "show only the first patch"
+msgstr "vis kun den første rettelse"
+
+msgid "hg qunapplied [-1] [-s] [PATCH]"
+msgstr "hg qunapplied [-1] [-s] [RETTELSE]"
+
+msgid "finish all applied changesets"
+msgstr "afslut alle anvendte ændringer"
+
+msgid "hg qfinish [-a] [REV]..."
+msgstr "hg qfinish [-a] [REV]..."
+
+msgid "list all available queues"
msgstr ""
-msgid ""
-"notify.sources\n"
-" Space separated list of change sources. Notifications are sent only\n"
-" if it includes the incoming or outgoing changes source. Incoming\n"
-" sources can be ``serve`` for changes coming from http or ssh,\n"
-" ``pull`` for pulled changes, ``unbundle`` for changes added by\n"
-" :hg:`unbundle` or ``push`` for changes being pushed\n"
-" locally. Outgoing sources are the same except for ``unbundle`` which\n"
-" is replaced by ``bundle``. Default: serve."
+msgid "create new queue"
+msgstr "opret en ny kø"
+
+msgid "rename active queue"
+msgstr "omdøb den aktive kø"
+
+msgid "delete reference to queue"
msgstr ""
-msgid ""
-"notify.strip\n"
-" Number of leading slashes to strip from url paths. By default, "
-"notifications\n"
-" references repositories with their absolute path. ``notify.strip`` let "
-"you\n"
-" turn them into relative paths. For example, ``notify.strip=3`` will "
-"change\n"
-" ``/long/path/repository`` into ``repository``. Default: 0."
+msgid "delete queue, and remove patch dir"
msgstr ""
-msgid ""
-"notify.domain\n"
-" If subscribers emails or the from email have no domain set, complete them\n"
-" with this value."
+msgid "[OPTION] [QUEUE]"
+msgstr "[TILVALG] [KØ]"
+
+msgid "hooks for sending email notifications at commit/push time"
msgstr ""
msgid ""
-"notify.style\n"
-" Style file to use when formatting emails."
+"Subscriptions can be managed through a hgrc file. Default mode is to\n"
+"print messages to stdout, for testing and configuring."
msgstr ""
msgid ""
-"notify.template\n"
-" Template to use when formatting emails."
+"To use, configure the notify extension and enable it in hgrc like\n"
+"this::"
msgstr ""
msgid ""
-"notify.incoming\n"
-" Template to use when run as incoming hook, override ``notify.template``."
+" [extensions]\n"
+" notify ="
msgstr ""
+" [extensions]\n"
+" notify ="
msgid ""
-"notify.outgoing\n"
-" Template to use when run as outgoing hook, override ``notify.template``."
+" [hooks]\n"
+" # one email for each incoming changeset\n"
+" incoming.notify = python:hgext.notify.hook\n"
+" # batch emails when many changesets incoming at one time\n"
+" changegroup.notify = python:hgext.notify.hook"
msgstr ""
msgid ""
-"notify.changegroup\n"
-" Template to use when running as changegroup hook, override\n"
-" ``notify.template``."
+" [notify]\n"
+" # config items go here"
msgstr ""
-msgid ""
-"notify.maxdiff\n"
-" Maximum number of diff lines to include in notification email. Set to 0\n"
-" to disable the diff, -1 to include all of it. Default: 300."
+msgid "Required configuration items::"
msgstr ""
-msgid ""
-"notify.maxsubject\n"
-" Maximum number of characters in emails subject line. Default: 67."
+msgid " config = /path/to/file # file containing subscriptions"
+msgstr ""
+
+msgid "Optional configuration items::"
msgstr ""
msgid ""
-"notify.diffstat\n"
-" Set to True to include a diffstat before diff content. Default: True."
+" test = True # print messages to stdout for testing\n"
+" strip = 3 # number of slashes to strip for url paths\n"
+" domain = example.com # domain to use if committer missing domain\n"
+" style = ... # style file to use when formatting email\n"
+" template = ... # template to use when formatting email\n"
+" incoming = ... # template to use when run as incoming hook\n"
+" changegroup = ... # template when run as changegroup hook\n"
+" maxdiff = 300 # max lines of diffs to include (0=none, -1=all)\n"
+" maxsubject = 67 # truncate subject line longer than this\n"
+" diffstat = True # add a diffstat before the diff content\n"
+" sources = serve # notify if source of incoming changes in this "
+"list\n"
+" # (serve == ssh or http, push, pull, bundle)\n"
+" merge = False # send notification for merges (default True)\n"
+" [email]\n"
+" from = user@host.com # email address to send as if none given\n"
+" [web]\n"
+" baseurl = http://hgserver/... # root of hg web site for browsing commits"
msgstr ""
msgid ""
-"notify.merge\n"
-" If True, send notifications for merge changesets. Default: True."
+"The notify config file has same format as a regular hgrc file. It has\n"
+"two sections so you can express subscriptions in whatever way is\n"
+"handier for you."
msgstr ""
msgid ""
-"If set, the following entries will also be used to customize the "
-"notifications:"
+" [usersubs]\n"
+" # key is subscriber email, value is \",\"-separated list of glob patterns\n"
+" user@host = pattern"
msgstr ""
msgid ""
-"email.from\n"
-" Email ``From`` address to use if none can be found in generated email "
-"content."
+" [reposubs]\n"
+" # key is glob pattern, value is \",\"-separated list of subscriber emails\n"
+" pattern = user@host"
+msgstr ""
+
+msgid "Glob patterns are matched against path to repository root."
msgstr ""
msgid ""
-"web.baseurl\n"
-" Root repository browsing URL to combine with repository paths when making\n"
-" references. See also ``notify.strip``."
+"If you like, you can put notify config file in repository that users\n"
+"can push changes to, they can manage their own subscriptions.\n"
msgstr ""
#, python-format
@@ -5521,6 +4948,43 @@ msgstr ""
"hvornår der skal farvelægges (boolks værdi, \"always\", \"auto\" eller "
"\"never\")"
+msgid "interpret suffixes to refer to ancestor revisions"
+msgstr "fortolk suffikser for at referere til forfader-revisioner"
+
+msgid ""
+"This extension allows you to use git-style suffixes to refer to the\n"
+"ancestors of a specific revision."
+msgstr ""
+"Denne udvidelse lader dig bruge suffikser i stil med git for at\n"
+"referere til forfædrerne til en bestemt revision."
+
+msgid "For example, if you can refer to a revision as \"foo\", then::"
+msgstr "For eksempel, hvis du har referere til en revision som \"foo\", så::"
+
+msgid ""
+" foo^N = Nth parent of foo\n"
+" foo^0 = foo\n"
+" foo^1 = first parent of foo\n"
+" foo^2 = second parent of foo\n"
+" foo^ = foo^1"
+msgstr ""
+" foo^N = N'te forældre til foo\n"
+" foo^0 = foo\n"
+" foo^1 = første forældre til foo\n"
+" foo^2 = anden forældre til foo\n"
+" foo^ = foo^1"
+
+msgid ""
+" foo~N = Nth first grandparent of foo\n"
+" foo~0 = foo\n"
+" foo~1 = foo^1 = foo^ = first parent of foo\n"
+" foo~2 = foo^1^1 = foo^^ = first parent of first parent of foo\n"
+msgstr ""
+" foo~N = N'te første bedsteforældre til foo\n"
+" foo~0 = foo\n"
+" foo~1 = foo^1 = foo^ = første forældre til foo\n"
+" foo~2 = foo^1^1 = foo^^ = første forældre til første forældre til foo\n"
+
msgid "command to send changesets as (a series of) patch emails"
msgstr ""
@@ -5579,80 +5043,12 @@ msgid ""
"hgrc(5) for details.\n"
msgstr ""
-msgid "send patches as attachments"
-msgstr "send rettelser som vedhæftede filer"
-
-msgid "send patches as inline attachments"
-msgstr "send rettelser som integreret tekst"
-
-msgid "email addresses of blind carbon copy recipients"
-msgstr ""
-
-msgid "email addresses of copy recipients"
-msgstr ""
-
-msgid "ask for confirmation before sending"
-msgstr ""
-
-msgid "add diffstat output to messages"
-msgstr "tilføj diffstat resultat til beskeder"
-
-msgid "use the given date as the sending date"
-msgstr "brug den givne dato som afsendelsesdatoen"
-
-msgid "use the given file as the series description"
-msgstr "brug den givne fil som seriens beskrivelse"
-
-msgid "email address of sender"
-msgstr "afsenderadresse"
-
-msgid "print messages that would be sent"
-msgstr "udskriv beskeder som ville være blevet sendt"
-
-msgid "write messages to mbox file instead of sending them"
-msgstr "skriv beskeder til mbox-fil i stedet for at sende dem"
-
-msgid "email addresses replies should be sent to"
-msgstr "adresser som svar skal sendes til"
-
-msgid "subject of first message (intro or single patch)"
-msgstr "emne for den første besked (intro eller en enkelt rettelse)"
-
-msgid "message identifier to reply to"
-msgstr "message identifier der skal svares på"
-
-msgid "flags to add in subject prefixes"
-msgstr "flag som skal tilføjes i emne-præfixer"
-
-msgid "email addresses of recipients"
-msgstr "adresser på modtagere"
-
-msgid "omit hg patch header"
-msgstr "undlad hg rettelseshoved"
-
-msgid "send changes not found in the target repository"
-msgstr "send ændringer som ikke findes i måldepotet"
-
-msgid "send changes not in target as a binary bundle"
-msgstr "send de ændringer målet mangler som et binært bundt"
-
-msgid "name of the bundle attachment file"
-msgstr "navn på det vedhæftede bundt"
-
-msgid "a revision to send"
-msgstr "en revision der skal sendes"
-
-msgid "run even when remote repository is unrelated (with -b/--bundle)"
-msgstr "kør selv hvis fjerndepotet er urelateret (med -b/--bundle)"
-
-msgid "a base changeset to specify instead of a destination (with -b/--bundle)"
-msgstr ""
-
-msgid "send an introduction email for a single patch"
-msgstr "send en introduktionsmail for en enkelt rettelse"
+#, python-format
+msgid "%s Please enter a valid value"
+msgstr "%s Angiv venligst en gyldig værdi"
-msgid "hg email [OPTION]... [DEST]..."
-msgstr "hg email [TILVALG]... [MÃ…L]..."
+msgid "Please enter a valid value.\n"
+msgstr "Angiv venligst en gyldig værdi.\n"
msgid "send changesets by email"
msgstr ""
@@ -5794,9 +5190,6 @@ msgstr ""
msgid "This patch series consists of %d patches."
msgstr "Denne rettelsesserie består af %d rettelser."
-msgid "no recipient addresses provided"
-msgstr ""
-
msgid ""
"\n"
"Final summary:"
@@ -5831,6 +5224,81 @@ msgstr "Sender "
msgid "sending"
msgstr "sender"
+msgid "send patches as attachments"
+msgstr "send rettelser som vedhæftede filer"
+
+msgid "send patches as inline attachments"
+msgstr "send rettelser som integreret tekst"
+
+msgid "email addresses of blind carbon copy recipients"
+msgstr ""
+
+msgid "email addresses of copy recipients"
+msgstr ""
+
+msgid "ask for confirmation before sending"
+msgstr ""
+
+msgid "add diffstat output to messages"
+msgstr "tilføj diffstat resultat til beskeder"
+
+msgid "use the given date as the sending date"
+msgstr "brug den givne dato som afsendelsesdatoen"
+
+msgid "use the given file as the series description"
+msgstr "brug den givne fil som seriens beskrivelse"
+
+msgid "email address of sender"
+msgstr "afsenderadresse"
+
+msgid "print messages that would be sent"
+msgstr "udskriv beskeder som ville være blevet sendt"
+
+msgid "write messages to mbox file instead of sending them"
+msgstr "skriv beskeder til mbox-fil i stedet for at sende dem"
+
+msgid "email addresses replies should be sent to"
+msgstr "adresser som svar skal sendes til"
+
+msgid "subject of first message (intro or single patch)"
+msgstr "emne for den første besked (intro eller en enkelt rettelse)"
+
+msgid "message identifier to reply to"
+msgstr "message identifier der skal svares på"
+
+msgid "flags to add in subject prefixes"
+msgstr "flag som skal tilføjes i emne-præfixer"
+
+msgid "email addresses of recipients"
+msgstr "adresser på modtagere"
+
+msgid "omit hg patch header"
+msgstr "undlad hg rettelseshoved"
+
+msgid "send changes not found in the target repository"
+msgstr "send ændringer som ikke findes i måldepotet"
+
+msgid "send changes not in target as a binary bundle"
+msgstr "send de ændringer målet mangler som et binært bundt"
+
+msgid "name of the bundle attachment file"
+msgstr "navn på det vedhæftede bundt"
+
+msgid "a revision to send"
+msgstr "en revision der skal sendes"
+
+msgid "run even when remote repository is unrelated (with -b/--bundle)"
+msgstr "kør selv hvis fjerndepotet er urelateret (med -b/--bundle)"
+
+msgid "a base changeset to specify instead of a destination (with -b/--bundle)"
+msgstr ""
+
+msgid "send an introduction email for a single patch"
+msgstr "send en introduktionsmail for en enkelt rettelse"
+
+msgid "hg email [OPTION]... [DEST]..."
+msgstr "hg email [TILVALG]... [MÃ…L]..."
+
msgid "show progress bars for some actions"
msgstr ""
@@ -5847,9 +5315,6 @@ msgstr ""
msgid ""
" [progress]\n"
" delay = 3 # number of seconds (float) before showing the progress bar\n"
-" changedelay = 1 # changedelay: minimum delay before showing a new topic.\n"
-" # If set to less than 3 * refresh, that value will\n"
-" # be used instead.\n"
" refresh = 0.1 # time in seconds between refreshes 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"
@@ -5862,9 +5327,9 @@ msgstr ""
msgid ""
"Valid entries for the format field are topic, bar, number, unit,\n"
-"estimate, speed, and item. item defaults to the last 20 characters of\n"
-"the item, but this can be changed by adding either ``-<num>`` which\n"
-"would take the last num characters, or ``+<num>`` for the first num\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 ""
@@ -5898,28 +5363,9 @@ msgstr ""
msgid "%dy%02dw"
msgstr ""
-#, python-format
-msgid "%d %s/sec"
-msgstr ""
-
msgid "command to delete untracked files from the working directory"
msgstr "kommando til at slette filer fra arbejdskataloget som ikke følges"
-msgid "abort if an error occurs"
-msgstr "afbryd hvis der opstår en fejl"
-
-msgid "purge ignored files too"
-msgstr "udrens også ignorerede filer"
-
-msgid "print filenames instead of deleting them"
-msgstr "udskriv filnavne i stedet for at slette dem"
-
-msgid "end filenames with NUL, for use with xargs (implies -p/--print)"
-msgstr "afslut filnavne med NUL, for brug med xargs (medfører -p/--print)"
-
-msgid "hg purge [OPTION]... [DIR]..."
-msgstr "hg purge [TILVALG]... [KATALOG]..."
-
msgid "removes files not tracked by Mercurial"
msgstr ""
@@ -5975,6 +5421,21 @@ msgstr "Fjerner fil %s\n"
msgid "Removing directory %s\n"
msgstr "Fjerner katalog %s\n"
+msgid "abort if an error occurs"
+msgstr "afbryd hvis der opstår en fejl"
+
+msgid "purge ignored files too"
+msgstr "udrens også ignorerede filer"
+
+msgid "print filenames instead of deleting them"
+msgstr "udskriv filnavne i stedet for at slette dem"
+
+msgid "end filenames with NUL, for use with xargs (implies -p/--print)"
+msgstr "afslut filnavne med NUL, for brug med xargs (medfører -p/--print)"
+
+msgid "hg purge [OPTION]... [DIR]..."
+msgstr "hg purge [TILVALG]... [KATALOG]..."
+
msgid "command to move sets of revisions to a different ancestor"
msgstr "kommando til at flytte revisioner til en anden forfader"
@@ -5992,57 +5453,6 @@ msgstr ""
"For mere information:\n"
"http://mercurial.selenic.com/wiki/RebaseExtension\n"
-msgid "rebase from the specified changeset"
-msgstr ""
-
-msgid ""
-"rebase from the base of the specified changeset (up to greatest common "
-"ancestor of base and dest)"
-msgstr ""
-
-msgid "rebase these revisions"
-msgstr ""
-
-msgid "rebase onto the specified changeset"
-msgstr ""
-
-msgid "collapse the rebased changesets"
-msgstr ""
-
-msgid "use text as collapse commit message"
-msgstr "brug tekst som deponeringsbesked"
-
-msgid "invoke editor on commit messages"
-msgstr ""
-
-msgid "read collapse commit message from file"
-msgstr "læs deponeringsbeskeden fra fil"
-
-msgid "keep original changesets"
-msgstr "behold de originale ændringer"
-
-msgid "keep original branch names"
-msgstr "behold originale grennavne"
-
-msgid "force detaching of source from its original branch"
-msgstr ""
-
-msgid "specify merge tool"
-msgstr "angiv sammenføjningsværktøj"
-
-msgid "continue an interrupted rebase"
-msgstr ""
-
-msgid "abort an interrupted rebase"
-msgstr ""
-
-msgid ""
-"hg rebase [-s REV | -b REV] [-d REV] [options]\n"
-"hg rebase {-a|-c}"
-msgstr ""
-"hg rebase [-s REV | -b REV] [-d REV] [tilvalg]\n"
-"hg rebase {-a|-c}"
-
msgid "move changeset (and descendants) to a different branch"
msgstr ""
@@ -6126,33 +5536,18 @@ msgstr "abort og continue tillader ikke at der angives revisioner"
msgid "tool option will be ignored\n"
msgstr ""
-msgid "cannot specify both a source and a base"
-msgstr "man kan ikke angive både en kilde og en basis"
-
msgid "cannot specify both a revision and a base"
msgstr "man kan ikke angive både en revision og en basis"
-msgid "cannot specify both a revision and a source"
-msgstr "man kan ikke angive både en revision og en kilde"
-
msgid "detach requires a revision to be specified"
msgstr "der skal angives en revision til detach"
msgid "cannot specify a base with detach"
msgstr "kan ikke angive --rev og --change på samme tid"
-msgid "can't remove original changesets with unrebased descendants"
-msgstr ""
-
-msgid "use --keep to keep original changesets"
-msgstr "brug --keep for at behold de originale ændringer"
-
msgid "nothing to rebase\n"
msgstr ""
-msgid "cannot collapse multiple named branches"
-msgstr ""
-
msgid "rebasing"
msgstr ""
@@ -6199,35 +5594,62 @@ msgstr ""
msgid "cannot rebase onto an applied mq patch"
msgstr ""
-msgid "no matching revisions"
+msgid "source is ancestor of destination"
+msgstr "kilden er forfader til destination"
+
+msgid "source is descendant of destination"
+msgstr "kilden nedstammer fra destinationen"
+
+msgid "rebase working directory to branch head"
msgstr ""
-msgid "can't rebase multiple roots"
+msgid "rebase from the specified changeset"
msgstr ""
-msgid "source is ancestor of destination"
-msgstr "kilden er forfader til destination"
+msgid ""
+"rebase from the base of the specified changeset (up to greatest common "
+"ancestor of base and dest)"
+msgstr ""
-msgid "--tool can only be used with --rebase"
+msgid "rebase onto the specified changeset"
msgstr ""
-msgid "rebase working directory to branch head"
+msgid "collapse the rebased changesets"
msgstr ""
-msgid "specify merge tool for rebase"
+msgid "use text as collapse commit message"
+msgstr "brug tekst som deponeringsbesked"
+
+msgid "read collapse commit message from file"
+msgstr "læs deponeringsbeskeden fra fil"
+
+msgid "keep original changesets"
+msgstr "behold de originale ændringer"
+
+msgid "keep original branch names"
+msgstr "behold originale grennavne"
+
+msgid "force detaching of source from its original branch"
msgstr ""
-msgid "commands to interactively select changes for commit/qrefresh"
+msgid "specify merge tool"
+msgstr "angiv sammenføjningsværktøj"
+
+msgid "continue an interrupted rebase"
msgstr ""
-msgid "ignore white space when comparing lines"
-msgstr "ignorer blanktegn når linier sammenlignes"
+msgid "abort an interrupted rebase"
+msgstr ""
-msgid "ignore changes in the amount of white space"
-msgstr "ignorer ændringer i mængden af blanktegn"
+msgid ""
+"hg rebase [-s REV | -b REV] [-d REV] [options]\n"
+"hg rebase {-a|-c}"
+msgstr ""
+"hg rebase [-s REV | -b REV] [-d REV] [tilvalg]\n"
+"hg rebase {-a|-c}"
-msgid "ignore changes whose lines are all blank"
-msgstr "ignorer ændringer hvis linier alle er blanke"
+msgid "commands to interactively select changes for commit/qrefresh"
+msgstr ""
msgid "this modifies a binary file (all or nothing)\n"
msgstr "dette ændrer en binær fil (alt eller intet)\n"
@@ -6284,9 +5706,6 @@ msgstr "optag denne ændring i %r?"
msgid "record change %d/%d to %r?"
msgstr "optag ændring %d/%d i %r?"
-msgid "hg record [OPTION]... [FILE]..."
-msgstr "hg record [TILVALG]... [FIL]..."
-
msgid "interactively select changes to commit"
msgstr "vælg ændringer interaktivt til deponering"
@@ -6350,9 +5769,8 @@ msgstr ""
msgid "'mq' extension not loaded"
msgstr "'mq' udvidelsen er ikke indlæst"
-#, python-format
-msgid "running non-interactively, use %s instead"
-msgstr "kører ikke interaktivt, brug %s i stedet"
+msgid "running non-interactively, use commit instead"
+msgstr "kører ikke interaktivt, brug commit i stedet"
msgid "cannot partially commit a merge (use \"hg commit\" instead)"
msgstr ""
@@ -6361,12 +5779,12 @@ msgstr ""
msgid "no changes to record\n"
msgstr "ingen ændringer at optage\n"
+msgid "hg record [OPTION]... [FILE]..."
+msgstr "hg record [TILVALG]... [FIL]..."
+
msgid "hg qrecord [OPTION]... PATCH [FILE]..."
msgstr "hg qrecord [TILVALG]... RETTELSE [FIL]..."
-msgid "interactively select changes to refresh"
-msgstr ""
-
msgid "recreates hardlinks between repository clones"
msgstr ""
@@ -6438,6 +5856,10 @@ msgstr "opsamlede %d kandidatfiler\n"
msgid "source and destination are on different devices"
msgstr "kilden og destinationen er på forskellige enheder"
+#, python-format
+msgid "not linkable: %s\n"
+msgstr "kan ikke sammenkædes: %s\n"
+
msgid "pruning"
msgstr "beskærer"
@@ -6548,17 +5970,6 @@ msgid ""
" "
msgstr ""
-msgid "convert a shared repository to a normal one"
-msgstr ""
-
-msgid ""
-" Copy the store data to the repo and remove the sharedpath data.\n"
-" "
-msgstr ""
-
-msgid "this is not a shared repo"
-msgstr "dette er ikke et delt depot"
-
msgid "do not create a working copy"
msgstr "opret ikke en arbejdskopi"
@@ -6642,36 +6053,6 @@ msgstr ""
msgid "no such option\n"
msgstr "tilvalget findes ikke\n"
-msgid "pull patches from REPO"
-msgstr "hiv rettelser fra DEPOT"
-
-msgid "BRANCH"
-msgstr "GREN"
-
-msgid "pull patches from branch BRANCH"
-msgstr "hiv rettelser fra gren GREN"
-
-msgid "pull all changesets up to BRANCH"
-msgstr "his alle ændringer indtil GREN"
-
-msgid "skip over REV"
-msgstr "spring over REV"
-
-msgid "merge at REV"
-msgstr "sammenføj ved REV"
-
-msgid "append transplant info to log message"
-msgstr "tilføj information on transplantationen i deponeringsbeskeden"
-
-msgid "continue last transplant session after repair"
-msgstr "fortsæt sidste transplantation efter reparation"
-
-msgid "filter changesets through command"
-msgstr "filtrer ændringer igennem kommando"
-
-msgid "hg transplant [-s REPO] [-b BRANCH [-a]] [-p REV] [-m REV] [REV]..."
-msgstr "hg transplant [-s DEPOT] [-b GREN [-a]] [-p REV] [-m REV] [REV]..."
-
msgid "transplant changesets from another branch"
msgstr ""
@@ -6753,8 +6134,8 @@ msgid "outstanding local changes"
msgstr "udestående lokale ændringer"
msgid ""
-"``transplanted([set])``\n"
-" Transplanted changesets in set, or all transplanted changesets."
+"``transplanted(set)``\n"
+" Transplanted changesets in set."
msgstr ""
msgid ""
@@ -6762,6 +6143,36 @@ msgid ""
" changeset if any."
msgstr ""
+msgid "pull patches from REPO"
+msgstr "hiv rettelser fra DEPOT"
+
+msgid "BRANCH"
+msgstr "GREN"
+
+msgid "pull patches from branch BRANCH"
+msgstr "hiv rettelser fra gren GREN"
+
+msgid "pull all changesets up to BRANCH"
+msgstr "his alle ændringer indtil GREN"
+
+msgid "skip over REV"
+msgstr "spring over REV"
+
+msgid "merge at REV"
+msgstr "sammenføj ved REV"
+
+msgid "append transplant info to log message"
+msgstr "tilføj information on transplantationen i deponeringsbeskeden"
+
+msgid "continue last transplant session after repair"
+msgstr "fortsæt sidste transplantation efter reparation"
+
+msgid "filter changesets through command"
+msgstr "filtrer ændringer igennem kommando"
+
+msgid "hg transplant [-s REPO] [-b BRANCH [-a]] [-p REV] [-m REV] [REV]..."
+msgstr "hg transplant [-s DEPOT] [-b GREN [-a]] [-p REV] [-m REV] [REV]..."
+
msgid "allow the use of MBCS paths with problematic encodings"
msgstr ""
@@ -6978,12 +6389,15 @@ msgstr ""
msgid "archive prefix contains illegal components"
msgstr "depotpræfix indeholder ugyldige komponenter"
-msgid "archiving"
-msgstr "arkiverer"
+msgid "cannot give prefix when archiving to files"
+msgstr "kan ikke give præfix ved arkivering til filer"
#, python-format
-msgid "malformed line in .hg/bookmarks: %r\n"
-msgstr ""
+msgid "unknown archive type '%s'"
+msgstr "ukendt depottype '%s'"
+
+msgid "archiving"
+msgstr "arkiverer"
#, python-format
msgid "bookmark '%s' contains illegal character"
@@ -7007,6 +6421,9 @@ 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"
+
msgid "unknown parent"
msgstr "ukendt forælder"
@@ -7044,10 +6461,6 @@ msgstr "brugernavn %s indeholder et linieskift"
msgid "the name '%s' is reserved"
msgstr "navnet '%s' er reserveret"
-#, python-format
-msgid "uncommitted changes in subrepo %s"
-msgstr "udeponerede ændringer i underdepot %s"
-
msgid "options --message and --logfile are mutually exclusive"
msgstr "tilvalgene --message og --logfile udelukker hinanden"
@@ -7065,21 +6478,23 @@ msgstr "grænsen skal være positiv"
msgid "invalid format spec '%%%s' in output filename"
msgstr "ugyldig formatspecifikation '%%%s' i output filnavn"
-msgid "cannot specify --changelog and --manifest at the same time"
-msgstr "kan ikke angive --changelog og --manifest på samme tid"
-
-msgid "cannot specify filename with --changelog or --manifest"
-msgstr ""
+#, python-format
+msgid "adding %s\n"
+msgstr "tilføjer %s\n"
-msgid "cannot specify --changelog or --manifest without a repository"
-msgstr ""
+#, python-format
+msgid "removing %s\n"
+msgstr "fjerner %s\n"
-msgid "invalid arguments"
-msgstr "ugyldige parametre"
+#, python-format
+msgid "recording removal of %s as rename to %s (%d%% similar)\n"
+msgstr "noterer fjernelse af %s som en omdøbning til %s (%d%% lighed)\n"
#, python-format
-msgid "revlog '%s' not found"
-msgstr "revlog '%s' blev ikke fundet"
+msgid "%s has not been committed yet, so no copy data will be stored for %s.\n"
+msgstr ""
+"%s er endnu ikke comitted, så der vil ikke blive gemt kopieringsdata for "
+"%s.\n"
#, python-format
msgid "%s: not copying - file is not managed\n"
@@ -7135,6 +6550,9 @@ msgstr ""
msgid "destination %s is not a directory"
msgstr "destinationen %s er ikke en mappe"
+msgid "no files to copy"
+msgstr "ingen filer at kopiere"
+
msgid "(consider using --after)\n"
msgstr "(overvej at bruge --after)\n"
@@ -7220,10 +6638,6 @@ msgid "can only follow copies/renames for explicit filenames"
msgstr "kan kun følge kopier/omdøbninger for eksplicitte filnavne"
#, python-format
-msgid "adding %s\n"
-msgstr "tilføjer %s\n"
-
-#, python-format
msgid "skipping missing subrepository: %s\n"
msgstr "springer manglende underdepot over: %s\n"
@@ -7267,138 +6681,6 @@ msgstr "HG: ingen filændringer"
msgid "empty commit message"
msgstr "tom deponeringsbesked"
-msgid "repository root directory or name of overlay bundle file"
-msgstr ""
-
-msgid "DIR"
-msgstr ""
-
-msgid "change working directory"
-msgstr "skift arbejdskatalog"
-
-msgid "do not prompt, automatically pick the first choice for all prompts"
-msgstr ""
-
-msgid "suppress output"
-msgstr "undertryk output"
-
-msgid "enable additional output"
-msgstr "aktiver yderlig output"
-
-msgid "set/override config option (use 'section.name=value')"
-msgstr "angiv eller overskriv tilvalg (brug 'sektion.navn=værdi')"
-
-msgid "CONFIG"
-msgstr ""
-
-msgid "enable debugging output"
-msgstr "aktiver fejlsøgningsinformation"
-
-msgid "start debugger"
-msgstr "start fejlsøgningsprogram"
-
-msgid "set the charset encoding"
-msgstr "angiv tegnkodningen"
-
-msgid "ENCODE"
-msgstr ""
-
-msgid "MODE"
-msgstr ""
-
-msgid "set the charset encoding mode"
-msgstr "angiv tegnkodningstilstand"
-
-msgid "always print a traceback on exception"
-msgstr "udskriv altid traceback ved fejlsituationer"
-
-msgid "time how long the command takes"
-msgstr "tag tid på hvor lang tid kommandoen tager"
-
-msgid "print command execution profile"
-msgstr ""
-
-msgid "output version information and exit"
-msgstr "udskriv versionsinformation og afslut"
-
-msgid "display help and exit"
-msgstr "vis hjælp og afslut"
-
-msgid "do not perform actions, just print output"
-msgstr "udfør ingen handlinger, udskriv kun outputttet"
-
-msgid "specify ssh command to use"
-msgstr "specificer ssh kommandoen som skal bruges"
-
-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 ""
-
-msgid "include names matching the given patterns"
-msgstr "inkluder navne som matcher det givne mønster"
-
-msgid "exclude names matching the given patterns"
-msgstr "ekskluder navne som matcher det givne mønster"
-
-msgid "use text as commit message"
-msgstr "brug tekst som deponeringsbesked"
-
-msgid "read commit message from file"
-msgstr "læs deponeringsbeskeden fra fil"
-
-msgid "record the specified date as commit date"
-msgstr "noter den angivne dato som integrationsdato"
-
-msgid "record the specified user as committer"
-msgstr ""
-
-msgid "STYLE"
-msgstr ""
-
-msgid "display using template map file"
-msgstr "vis med skabelon-fil"
-
-msgid "display with template"
-msgstr "vis med skabelon"
-
-msgid "do not show merges"
-msgstr "vis ikke sammenføjninger"
-
-msgid "output diffstat-style summary of changes"
-msgstr ""
-
-msgid "treat all files as text"
-msgstr "behandl alle filer som tekst"
-
-msgid "omit dates from diff headers"
-msgstr "inkluder ikke datoer i diff-hoveder"
-
-msgid "show which function each change is in"
-msgstr "vis hvilken funktion hver ændring er i"
-
-msgid "produce a diff that undoes the changes"
-msgstr ""
-
-msgid "number of lines of context to show"
-msgstr "antal linier kontekst der skal vises"
-
-msgid "SIMILARITY"
-msgstr ""
-
-msgid "guess renamed files by similarity (0<=s<=100)"
-msgstr "gæt omdøbte filer ud fra enshed (0<=s<=100)"
-
-msgid "recurse into subrepositories"
-msgstr "fortsæt rekursivt ind i underdepoter"
-
-msgid "[OPTION]... [FILE]..."
-msgstr "[TILVALG]... [FIL]..."
-
msgid "add the specified files on the next commit"
msgstr "tilføj de angivne filer ved næste deponering"
@@ -7493,36 +6775,6 @@ msgstr "lighedsgrad skal være et tal"
msgid "similarity must be between 0 and 100"
msgstr "lighedsgrad skal være mellem 0 og 100"
-msgid "annotate the specified revision"
-msgstr "annotér den angivne revision"
-
-msgid "follow copies/renames and list the filename (DEPRECATED)"
-msgstr "følg kopier/omdøbninger og vis filnavnet (FORÆLDET)"
-
-msgid "don't follow copies and renames"
-msgstr "følg ikke kopier og omdøbninger"
-
-msgid "list the author (long with -v)"
-msgstr "vis forfatteren (lang med -v)"
-
-msgid "list the filename"
-msgstr "vis filnavnet"
-
-msgid "list the date (short with -q)"
-msgstr "vis datoen (kort med -q)"
-
-msgid "list the revision number (default)"
-msgstr "vis revisionsnummeret (standard)"
-
-msgid "list the changeset"
-msgstr "vis ændringen"
-
-msgid "show line number at the first appearance"
-msgstr "vil linienummeret for den første forekomst"
-
-msgid "[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FILE..."
-msgstr "[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FIL..."
-
msgid "show changeset information by line for each file"
msgstr "vis information om ændringer pr linie for hver fil"
@@ -7561,24 +6813,6 @@ msgstr "brug af -l kræver mindst en af -n/-c"
msgid "%s: binary file\n"
msgstr "%s: binær fil\n"
-msgid "do not pass files through decoders"
-msgstr "kør ikke filerne igennem dekodere"
-
-msgid "directory prefix for files in archive"
-msgstr "katalogpræfiks for filerne i arkivet"
-
-msgid "PREFIX"
-msgstr ""
-
-msgid "revision to distribute"
-msgstr "revision som skal distribueres"
-
-msgid "type of distribution to create"
-msgstr "distributionstype der skal oprettes"
-
-msgid "[OPTION]... DEST"
-msgstr "[TILVALG]... MÃ…L"
-
msgid "create an unversioned archive of a repository revision"
msgstr ""
@@ -7592,21 +6826,6 @@ msgid ""
" extension (or override using -t/--type)."
msgstr ""
-msgid " Examples:"
-msgstr " Eksempler:"
-
-msgid " - create a zip file containing the 1.0 release::"
-msgstr ""
-
-msgid " hg archive -r 1.0 project-1.0.zip"
-msgstr ""
-
-msgid " - create a tarball excluding .hg files::"
-msgstr ""
-
-msgid " hg archive project.tar.gz -X \".hg*\""
-msgstr ""
-
msgid " Valid types are:"
msgstr ""
@@ -7640,18 +6859,6 @@ msgstr "depotets rod kan ikke bruges som destination"
msgid "cannot archive plain files to stdout"
msgstr "flade filer kan ikke arkiveres til standarduddata"
-msgid "merge with old dirstate parent after backout"
-msgstr ""
-
-msgid "parent to choose when backing out merge (DEPRECATED)"
-msgstr ""
-
-msgid "revision to backout"
-msgstr "revision som skal bakkes ud"
-
-msgid "[OPTION]... [-r] REV"
-msgstr "[TILVALG]... [-r] REV"
-
msgid "reverse effect of earlier changeset"
msgstr "omgør effekten af tidligere ændringer"
@@ -7667,23 +6874,17 @@ msgid ""
msgstr ""
msgid ""
-" .. note::\n"
-" backout cannot be used to fix either an unwanted or\n"
-" incorrect merge."
-msgstr ""
-
-msgid ""
-" By default, the pending changeset will have one parent,\n"
-" maintaining a linear history. With --merge, the pending\n"
-" changeset will instead have two parents: the old parent of the\n"
-" working directory and a new child of REV that simply undoes REV."
+" 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 ""
msgid ""
-" Before version 1.7, the behavior without --merge was equivalent\n"
-" to specifying --merge followed by :hg:`update --clean .` to\n"
-" cancel the merge and leave the child of REV as a head to be\n"
-" merged separately."
+" 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 ""
msgid "please specify just one revision"
@@ -7698,8 +6899,8 @@ msgstr "kan ikke omgøre en ændring på en anden gren"
msgid "cannot backout a change with no parents"
msgstr "kan ikke omgøre en ændring uden forældre"
-msgid "cannot backout a merge changeset"
-msgstr ""
+msgid "cannot backout a merge changeset without --parent"
+msgstr "kan ikke omgøre en sammenføjning uden --parent"
#, python-format
msgid "%s is not a parent of %s"
@@ -7716,30 +6917,6 @@ msgstr "ændring %s bakker ændring %s ud\n"
msgid "merging with changeset %s\n"
msgstr "sammenføjer med ændring %s\n"
-msgid "reset bisect state"
-msgstr "nulstil tilstand for halvering"
-
-msgid "mark changeset good"
-msgstr "marker ændring som god"
-
-msgid "mark changeset bad"
-msgstr "marker ændring som dårlig"
-
-msgid "skip testing changeset"
-msgstr "spring testen af denne ændring over"
-
-msgid "extend the bisect range"
-msgstr "udvid halveringsområdet"
-
-msgid "use command to check changeset state"
-msgstr "brug kommando for at kontrollere tilstanden af ændringen"
-
-msgid "do not update to target"
-msgstr "undlad at opdatere til målet"
-
-msgid "[-gbsr] [-U] [-c CMD] [REV]"
-msgstr "[-gbsr] [-U] [-c KOMMANDO] [REV]"
-
msgid "subdivision search of changesets"
msgstr ""
@@ -7767,81 +6944,6 @@ msgid ""
" non-zero exit status means the revision is bad."
msgstr ""
-msgid " Some examples:"
-msgstr " Nogle eksempler::"
-
-msgid ""
-" - start a bisection with known bad revision 12, and good revision 34::"
-msgstr ""
-
-msgid ""
-" hg bisect --bad 34\n"
-" hg bisect --good 12"
-msgstr ""
-
-msgid ""
-" - advance the current bisection by marking current revision as good "
-"or\n"
-" bad::"
-msgstr ""
-
-msgid ""
-" hg bisect --good\n"
-" hg bisect --bad"
-msgstr ""
-
-msgid ""
-" - mark the current revision, or a known revision, to be skipped (eg. "
-"if\n"
-" that revision is not usable because of another issue)::"
-msgstr ""
-
-msgid ""
-" hg bisect --skip\n"
-" hg bisect --skip 23"
-msgstr ""
-
-msgid " - forget the current bisection::"
-msgstr ""
-
-msgid " hg bisect --reset"
-msgstr ""
-
-msgid ""
-" - use 'make && make tests' to automatically find the first broken\n"
-" revision::"
-msgstr ""
-
-msgid ""
-" hg bisect --reset\n"
-" hg bisect --bad 34\n"
-" hg bisect --good 12\n"
-" hg bisect --command 'make && make tests'"
-msgstr ""
-
-msgid ""
-" - see all changesets whose states are already known in the current\n"
-" bisection::"
-msgstr ""
-
-msgid " hg log -r \"bisect(pruned)\""
-msgstr " hg log -r \"bisect(pruned)\""
-
-msgid " - see all changesets that took part in the current bisection::"
-msgstr ""
-
-msgid " hg log -r \"bisect(range)\""
-msgstr " hg log -r \"bisect(range)\""
-
-msgid " - with the graphlog extension, you can even get a nice graph::"
-msgstr ""
-
-msgid " hg log --graph -r \"bisect(range)\""
-msgstr ""
-
-msgid " See :hg:`help revsets` for more about the `bisect()` keyword."
-msgstr ""
-
msgid "The first good revision is:\n"
msgstr "Den første gode revision er:\n"
@@ -7900,21 +7002,6 @@ msgstr "kan ikke udvidde"
msgid "Testing changeset %d:%s (%d changesets remaining, ~%d tests)\n"
msgstr "Tester ændring %d:%s (%d ændringer tilbage, ~%d test)\n"
-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 "do not mark a new bookmark active"
-msgstr ""
-
-msgid "hg bookmarks [-f] [-d] [-i] [-m NAME] [-r REV] [NAME]"
-msgstr "hg bookmarks [-f] [-d] [-i] [-m NAVN] [-r REV] [NAVN]"
-
msgid "track a line of development with movable markers"
msgstr ""
@@ -7982,15 +7069,6 @@ 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 branch name even if it shadows an existing branch"
-msgstr "sæt grennavnet selv hvis det overskygger en eksisterende gren"
-
-msgid "reset branch name to parent branch name"
-msgstr "nulstil grennavnet til forældre-grennavnet"
-
-msgid "[-fC] [NAME]"
-msgstr "[-fC] [NAVN]"
-
msgid "set or show the current branch name"
msgstr "angiv eller vis navnet på den aktuelle gren"
@@ -8029,37 +7107,20 @@ msgstr ""
" gren. Brug 'hg commit --close-branch' for at markere denne gren\n"
" som lukket."
-msgid ""
-" .. note::\n"
-" Branch names are permanent. Use :hg:`bookmark` to create a\n"
-" light-weight bookmark instead. See :hg:`help glossary` for more\n"
-" information about named branches and bookmarks."
-msgstr ""
-
#, python-format
msgid "reset working directory to branch %s\n"
msgstr "nulstil arbejdskataloget til gren %s\n"
-msgid "a branch of the same name already exists"
-msgstr "en gren af samme navn eksisterer allerede"
-
-#. i18n: "it" refers to an existing branch
-msgid "use 'hg update' to switch to it"
-msgstr "brug 'hg update' for at skifte til den"
+msgid ""
+"a branch of the same name already exists (use 'hg update' to switch to it)"
+msgstr ""
+"en gren af samme navn eksisterer allerede (brug 'hg update' for at skifte "
+"til den)"
#, python-format
msgid "marked working directory as branch %s\n"
msgstr "markerede arbejdskataloget som gren %s\n"
-msgid "show only branches that have unmerged heads"
-msgstr "vil kun grene som har usammenføjne hoveder"
-
-msgid "show normal and closed branches"
-msgstr "vis normale og lukkede grene"
-
-msgid "[-ac]"
-msgstr "[-ac]"
-
msgid "list repository named branches"
msgstr "vis navngivne grene i depotet"
@@ -8095,27 +7156,6 @@ msgstr " (lukket)"
msgid " (inactive)"
msgstr " (inaktiv)"
-msgid "run even when the destination is unrelated"
-msgstr "kør selv hvis fjerndepotet er urelateret"
-
-msgid "a changeset intended to be added to the destination"
-msgstr ""
-
-msgid "a specific branch you would like to bundle"
-msgstr "en bestemt gren som du gerne vil pakke sammen"
-
-msgid "a base changeset assumed to be available at the destination"
-msgstr ""
-
-msgid "bundle all changesets in the repository"
-msgstr ""
-
-msgid "bundle compression type to use"
-msgstr ""
-
-msgid "[-f] [-t TYPE] [-a] [-r REV]... [--base REV]... FILE [DEST]"
-msgstr "[-f] [-t TYPE] [-a] [-r REV]... [--base REV]... FIL [MÃ…L]"
-
msgid "create a changegroup file"
msgstr ""
@@ -8160,18 +7200,6 @@ msgstr "--base er inkompatibelt med at angive en destination"
msgid "unknown bundle type specified with --type"
msgstr "ukendt bundt-type angivet med --type"
-msgid "print output to file with formatted name"
-msgstr ""
-
-msgid "print the given revision"
-msgstr "udskriv den angivne revision"
-
-msgid "apply any matching decode filter"
-msgstr ""
-
-msgid "[OPTION]... FILE..."
-msgstr "[TILVALG]... FIL..."
-
msgid "output the current or given revision of files"
msgstr "udskriv den aktuelle eller en given revision af filer"
@@ -8204,21 +7232,6 @@ msgstr ""
" eller '.' hvis filen er i katalogets rod\n"
" :``%p``: rod-relativ sti for filen som bliver udskrevet"
-msgid "the clone will include an empty working copy (only a repository)"
-msgstr "klonen vil indeholde et tomt arbejdsbibliotek (kun et depot)"
-
-msgid "revision, tag or branch to check out"
-msgstr "revision, mærkat eller gren som skal hentes ud"
-
-msgid "include the specified changeset"
-msgstr "inkluder den angivne revision"
-
-msgid "clone only the specified branch"
-msgstr "klon kun den angivne gren"
-
-msgid "[OPTION]... SOURCE [DEST]"
-msgstr "[TILVALG]... KILDE [MÃ…L]"
-
msgid "make a copy of an existing repository"
msgstr "lav en kopi af et eksisterende depot"
@@ -8239,35 +7252,52 @@ 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 ""
-" Only local paths and ``ssh://`` URLs are supported as\n"
-" destinations. For ``ssh://`` destinations, no working directory or\n"
-" ``.hg/hgrc`` will be created on the remote side."
+" 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"
+" 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\n"
+" noget arbejdskatalog på den anden side. Se venligst :hg:`help\n"
+" urls` for vigtige detaljer om ``ssh://`` URLer."
msgid ""
-" To pull only a subset of changesets, specify one or more revisions\n"
-" identifiers with -r/--rev or branches with -b/--branch. The\n"
-" resulting clone will contain only the specified changesets and\n"
-" their ancestors. These options (or 'clone src#rev dest') imply\n"
-" --pull, even for local source repositories. Note that specifying a\n"
-" tag will include the tagged changeset but not the changeset\n"
-" containing the tag."
+" A set of changesets (tags, or branch names) to pull may be specified\n"
+" by listing each changeset (tag, or branch name) with -r/--rev.\n"
+" If -r/--rev is used, the cloned repository will contain only a subset\n"
+" of the changesets of the source repository. Only the set of changesets\n"
+" defined by all -r/--rev options (including all their ancestors)\n"
+" will be pulled into the destination repository.\n"
+" No subsequent changesets (including subsequent tags) will be present\n"
+" in the destination."
msgstr ""
+" Der kan angives en mængde af ændringer (mærkater eller navne på\n"
+" grene) som skal hives ved at angive hver ændring (mærkat eller\n"
+" grennavn) med -r/--rev. Hvis -r/--rev tilvalget bruges, så vil det\n"
+" klonede depot kun indeholde en delmængde af ændringerne i\n"
+" kildedepotet. Det er kun mængden af ændringer defineret af alle\n"
+" -r/--rev tilvalgene (inklusiv alle deres forfædre) som vil blive\n"
+" hevet ind i destinationsdepotet. Ingen efterfølgende revisioner\n"
+" (inklusiv efterfølgende mærkater) vil findes i destinationen."
msgid ""
-" To check out a particular version, use -u/--update, or\n"
-" -U/--noupdate to create a clone with no working directory."
+" Using -r/--rev (or 'clone src#rev dest') implies --pull, even for\n"
+" local source repositories."
msgstr ""
+" Brug af -r/--rev (eller 'clone kilde#rev destination') medfører\n"
+" --pull, selv ved lokale depoter."
-#, fuzzy
msgid ""
-" For efficiency, hardlinks are used for cloning whenever the\n"
-" source and destination are on the same filesystem (note this\n"
-" applies only to the repository data, not to the working\n"
-" directory). Some filesystems, such as AFS, implement hardlinking\n"
-" incorrectly, but do not report errors. In these cases, use the\n"
-" --pull option to avoid hardlinking."
+" For efficiency, hardlinks are used for cloning whenever the source\n"
+" and destination are on the same filesystem (note this applies only\n"
+" to the repository data, not to the working directory). Some\n"
+" filesystems, such as AFS, implement hardlinking incorrectly, but\n"
+" do not report errors. In these cases, use the --pull option to\n"
+" avoid hardlinking."
msgstr ""
" Af effektivitetsgrunde bruges hårde lænker ved kloning når kilden\n"
" og destinationen er på det samme filsystem (bemærk at dette kun\n"
@@ -8277,115 +7307,66 @@ msgstr ""
" for at undgå hårde lænker."
msgid ""
-" In some cases, you can clone repositories and the working\n"
-" directory using full hardlinks with ::"
-msgstr ""
-" I nogle tilfælde kan du klone depoter og arbejdsbiblioteket og\n"
-" bruge hårde lænker til alle filer med ::"
-
-msgid " $ cp -al REPO REPOCLONE"
-msgstr " $ cp -al DEPOT DEPOTKLON"
-
-msgid ""
-" This is the fastest way to clone, but it is not always safe. The\n"
-" operation is not atomic (making sure REPO is not modified during\n"
-" the operation is up to you) and you have to make sure your\n"
-" editor breaks hardlinks (Emacs and most Linux Kernel tools do\n"
-" so). Also, this is not compatible with certain extensions that\n"
-" place their metadata under the .hg directory, such as mq."
-msgstr ""
-" Dette er den hurtigste måde at klone på, men det er ikke altid\n"
-" sikkert. Operationen er ikke atomisk (det er op til dig at sikre\n"
-" at DEPOT ikke bliver modificeret undervejs) og du skal selv\n"
-" sørge for at din tekstbehandler bryder hårde lænker (Emacs og de\n"
-" fleste Linux Kernel værktøjer gør det). Dette er desuden ikke\n"
-" kompatibelt med visse udvidelser som placerer deres metadata\n"
-" under .hg mappen, såsom mq."
-
-msgid ""
-" Mercurial will update the working directory to the first applicable\n"
-" revision from this list:"
-msgstr ""
-" Mercurial vil opdatere arbejdsbiblioteket til den første brugbare\n"
-" revision fra denne liste:"
-
-msgid ""
-" a) null if -U or the source repository has no changesets\n"
-" b) if -u . and the source repository is local, the first parent of\n"
-" the source repository's working directory\n"
-" c) the changeset specified with -u (if a branch name, this means the\n"
-" latest head of that branch)\n"
-" d) the changeset specified with -r\n"
-" e) the tipmost head specified with -b\n"
-" f) the tipmost head specified with the url#branch source syntax\n"
-" g) the tipmost head of the default branch\n"
-" h) tip"
-msgstr ""
-" a) null, hvis -U tilvalget er brugt eller hvis kildedepotet ikke\n"
-" indeholder nogen ændringer\n"
-" b) den første forælder til kildedepotets arbejdsbiblioteket hvis\n"
-" -u . er brugt og hvis kildedepotet er lokalt\n"
-" c) ændringer specificeret med -u (hvis det er navnet på en gren,\n"
-" så tolkes det som denne grens hoved)\n"
-" d) ændringen angivet med -r\n"
-" e) hovedet med størst revisionsnummer angivet med -b\n"
-" f) hovedet med størst revisionsnummer angivet med url#gren\n"
-" syntaksen\n"
-" g) hovedet med størst revisionsnummer på default grenen\n"
-" h) revisionen med størst revisionsnummer"
-
-msgid " - clone a remote repository to a new directory named hg/::"
+" In some cases, you can clone repositories and the working directory\n"
+" using full hardlinks with ::"
msgstr ""
+" I nogle tilfælde kan du klone depoter og arbejdsbiblioteket og\n"
+" bruge hårde lænker til alle filer med ::"
-msgid " hg clone http://selenic.com/hg"
-msgstr " hg clone http://selenic.com/hg"
-
-msgid " - create a lightweight local clone::"
-msgstr ""
-
-msgid " hg clone project/ project-feature/"
-msgstr ""
+msgid " $ cp -al REPO REPOCLONE"
+msgstr " $ cp -al DEPOT DEPOTKLON"
msgid ""
-" - clone from an absolute path on an ssh server (note double-slash)::"
-msgstr ""
-
-msgid " hg clone ssh://user@server//home/projects/alpha/"
+" This is the fastest way to clone, but it is not always safe. The\n"
+" operation is not atomic (making sure REPO is not modified during\n"
+" the operation is up to you) and you have to make sure your editor\n"
+" breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,\n"
+" this is not compatible with certain extensions that place their\n"
+" metadata under the .hg directory, such as mq."
msgstr ""
+" Dette er den hurtigste måde at klone på, men det er ikke altid\n"
+" sikkert. Operationen er ikke atomisk (det er op til dig at sikre\n"
+" at DEPOT ikke bliver modificeret undervejs) og du skal selv sørge\n"
+" for at din tekstbehandler bryder hårde lænker (Emacs og de fleste\n"
+" Linux Kernel værktøjer gør det). Dette er desuden ikke kompatibelt\n"
+" med visse udvidelser som placerer deres metadata under .hg mappen,\n"
+" såsom mq."
msgid ""
-" - do a high-speed clone over a LAN while checking out a\n"
-" specified version::"
-msgstr ""
-
-msgid " hg clone --uncompressed http://server/repo -u 1.5"
+" Mercurial will update the working directory to the first applicable\n"
+" revision from this list:"
msgstr ""
+" Mercurial vil opdatere arbejdsbiblioteket til den første brugbare\n"
+" revision fra denne liste:"
msgid ""
-" - create a repository without changesets after a particular revision::"
-msgstr ""
-
-msgid " hg clone -r 04e544 experimental/ good/"
-msgstr ""
-
-msgid " - clone (and track) a particular named branch::"
-msgstr ""
-
-msgid " hg clone http://selenic.com/hg#stable"
+" a) null if -U or the source repository has no changesets\n"
+" b) if -u . and the source repository is local, the first parent of\n"
+" the source repository's working directory\n"
+" c) the changeset specified with -u (if a branch name, this means the\n"
+" latest head of that branch)\n"
+" d) the changeset specified with -r\n"
+" e) the tipmost head specified with -b\n"
+" f) the tipmost head specified with the url#branch source syntax\n"
+" g) the tipmost head of the default branch\n"
+" h) tip"
msgstr ""
-
-msgid " See :hg:`help urls` for details on specifying URLs."
-msgstr " Se :hg:`help urls` for mere information om angivelse af URLer."
+" a) null, hvis -U tilvalget er brugt eller hvis kildedepotet ikke\n"
+" indeholder nogen ændringer\n"
+" b) den første forælder til kildedepotets arbejdsbiblioteket hvis\n"
+" -u . er brugt og hvis kildedepotet er lokalt\n"
+" c) ændringer specificeret med -u (hvis det er navnet på en gren,\n"
+" så tolkes det som denne grens hoved)\n"
+" d) ændringen angivet med -r\n"
+" e) hovedet med størst revisionsnummer angivet med -b\n"
+" f) hovedet med størst revisionsnummer angivet med url#gren\n"
+" syntaksen\n"
+" g) hovedet med størst revisionsnummer på default grenen\n"
+" h) revisionen med størst revisionsnummer"
msgid "cannot specify both --noupdate and --updaterev"
msgstr "man kan ikke angive både --noupdate og --updaterev"
-msgid "mark new/missing files as added/removed before committing"
-msgstr "marker nye/manglende filer som tilføjede/fjernede før deponering"
-
-msgid "mark a branch as closed, hiding it from the branch list"
-msgstr "marker en gren som lukket, skuler den fra listen af grene"
-
msgid "commit the specified files or all outstanding changes"
msgstr "lægger de specificerede filer eller alle udestående ændringer i depot"
@@ -8445,15 +7426,6 @@ msgstr "genåbner lukket grenhovede %d\n"
msgid "committed changeset %d:%s\n"
msgstr "deponerede ændring %d:%s\n"
-msgid "record a copy that has already occurred"
-msgstr ""
-
-msgid "forcibly copy over an existing managed file"
-msgstr ""
-
-msgid "[OPTION]... [SOURCE]... DEST"
-msgstr "[TILVALG]... [KILDE]... MÃ…L"
-
msgid "mark files as copied for the next commit"
msgstr ""
@@ -8483,33 +7455,13 @@ msgstr ""
" Returnerer 0 ved succes, 1 hvis opstod fejl.\n"
" "
-msgid "[INDEX] REV1 REV2"
-msgstr "[INDEKS] REV1 REV2"
-
msgid "find the ancestor revision of two revisions in a given index"
msgstr "find forfader-revisionen til to revisioner i det angivne indeks"
msgid "either two or three arguments required"
msgstr "kræver enten to eller tre argumenter"
-msgid "add single file mergeable changes"
-msgstr ""
-
-msgid "add single file all revs overwrite"
-msgstr ""
-
-msgid "add new file at each rev"
-msgstr ""
-
-msgid "[OPTION]... [TEXT]"
-msgstr "[TILVALG]... [TEKST]"
-
-msgid "builds a repo with a given DAG from scratch in the current empty repo"
-msgstr ""
-
-msgid ""
-" The description of the DAG is read from stdin if not given on the\n"
-" command line."
+msgid "builds a repo with a given dag from scratch in the current empty repo"
msgstr ""
msgid " Elements:"
@@ -8527,6 +7479,8 @@ msgid ""
" - \"/p2\" is a merge of the preceding node and p2\n"
" - \":tag\" defines a local tag for the preceding node\n"
" - \"@branch\" sets the named branch for subsequent nodes\n"
+" - \"!command\" runs the command using your shell\n"
+" - \"!!my command\\n\" is like \"!\", but to the end of the line\n"
" - \"#...\\n\" is a comment up to the end of the line"
msgstr ""
@@ -8546,25 +7500,36 @@ msgstr ""
msgid ""
" All string valued-elements are either strictly alphanumeric, or must\n"
-" be enclosed in double quotes (\"...\"), with \"\\\" as escape "
-"character.\n"
+" be enclosed in double quotes (\"...\"), with \"\\\" as escape character."
+msgstr ""
+
+msgid ""
+" Note that the --overwritten-file and --appended-file options imply the\n"
+" use of \"HGMERGE=internal:local\" during DAG buildup.\n"
" "
msgstr ""
-msgid "reading DAG from stdin\n"
+msgid "need at least one of -m, -a, -o, -n"
msgstr ""
msgid "repository is not empty"
msgstr "depotet er ikke tomt"
-msgid "building"
+#, python-format
+msgid "%s command %s"
+msgstr "%s kommando %s"
+
+msgid "list all available commands and options"
+msgstr "list alle tilgængelige kommandoer og tilvalg"
+
+msgid "returns the completion list associated with the given command"
msgstr ""
-msgid "show all details"
-msgstr "vis alle detaljer"
+msgid "show information detected about current filesystem"
+msgstr ""
-msgid "lists the contents of a bundle"
-msgstr "vis indholdet af et bundt"
+msgid "rebuild the dirstate as it would look like for the given revision"
+msgstr "genopbygger dirstate som den ville se ud for den angivne revision"
msgid "validate the correctness of the current dirstate"
msgstr "valider korrektheden af den nuværende dirstate"
@@ -8589,129 +7554,119 @@ msgid ".hg/dirstate inconsistent with current parent's manifest"
msgstr ""
".hg/dirstate er inkonsistent i forhold til den nuværende forælders manifest"
-msgid "[COMMAND]"
-msgstr "[KOMMANDO]"
-
-msgid "list all available commands and options"
-msgstr "list alle tilgængelige kommandoer og tilvalg"
-
-msgid "show the command options"
-msgstr "vis kommando-flag"
-
-msgid "[-o] CMD"
-msgstr "[-o] KOMMANDO"
-
-msgid "returns the completion list associated with the given command"
+msgid "show combined config settings from all hgrc files"
msgstr ""
-msgid "use tags as labels"
+msgid " With no arguments, print names and values of all config items."
msgstr ""
-msgid "annotate with branch names"
+msgid ""
+" With one argument of the form section.name, print just the value\n"
+" of that config item."
msgstr ""
-msgid "use dots for runs"
+msgid ""
+" With multiple arguments, print names and values of all config\n"
+" items with matching section names."
msgstr ""
-msgid "separate elements by spaces"
+msgid ""
+" With --debug, the source (filename and line number) is printed\n"
+" for each config item."
msgstr ""
-msgid "[OPTION]... [FILE [REV]...]"
-msgstr "[TILVALG]... [FIL [REV]...]"
+#, python-format
+msgid "read config from: %s\n"
+msgstr ""
-msgid "format the changelog or an index DAG as a concise textual description"
+msgid "only one config item permitted"
msgstr ""
-msgid ""
-" If you pass a revlog index, the revlog's DAG is emitted. If you list\n"
-" revision numbers, they get labelled in the output as rN."
+msgid "test whether node ids are known to a repo"
msgstr ""
msgid ""
-" Otherwise, the changelog DAG of the current repo is emitted.\n"
+" Every ID must be a full-length hex node id string. Returns a list of 0s "
+"and 1s\n"
+" indicating unknown/known.\n"
" "
msgstr ""
-msgid "need repo for changelog dag"
-msgstr ""
+msgid "lists the contents of a bundle"
+msgstr "vis indholdet af et bundt"
-msgid "open changelog"
+msgid "retrieves a bundle from a repo"
msgstr ""
-msgid "open manifest"
+msgid ""
+" Every ID must be a full-length hex node id string. Saves the bundle to "
+"the\n"
+" given file.\n"
+" "
msgstr ""
-msgid "-c|-m|FILE REV"
-msgstr "-c|-m|FIL REV"
-
-msgid "dump the contents of a data file revision"
+msgid "access the pushkey key/value protocol"
msgstr ""
-#, python-format
-msgid "invalid revision identifier %s"
-msgstr "ugyldig revisionsidentification %s"
-
-msgid "try extended date formats"
-msgstr "prøv udvidede datoformater"
-
-msgid "[-e] DATE [RANGE]"
-msgstr "[-e] DATO [INTERVAL]"
-
-msgid "parse and display a date"
-msgstr "fortolk og vis en dato"
-
-msgid "use old-style discovery"
+msgid " With two args, list the keys in the given namespace."
msgstr ""
-msgid "use old-style discovery with non-heads included"
+msgid ""
+" With five args, set a key to new if it currently is set to old.\n"
+" Reports success or failure.\n"
+" "
msgstr ""
-msgid "[-l REV] [-r REV] [-b BRANCH]... [OTHER]"
+msgid "parse and apply a revision specification"
msgstr ""
-msgid "runs the changeset discovery protocol in isolation"
+msgid "manually set the parents of the current working directory"
msgstr ""
-msgid "parse and apply a fileset specification"
+msgid ""
+" This is useful for writing repository conversion tools, but should\n"
+" be used with care."
msgstr ""
-msgid "[PATH]"
-msgstr "[STI]"
+msgid "show the contents of the current dirstate"
+msgstr "vil indholdet af den nuværende dirstate"
-msgid "show information detected about current filesystem"
-msgstr ""
+#, python-format
+msgid "copy: %s -> %s\n"
+msgstr "kopi: %s -> %s\n"
-msgid "id of head node"
+msgid "format the changelog or an index DAG as a concise textual description"
msgstr ""
-msgid "id of common node"
-msgstr "id på fælles knude"
+msgid ""
+" If you pass a revlog index, the revlog's DAG is emitted. If you list\n"
+" revision numbers, they get labelled in the output as rN."
+msgstr ""
-msgid "REPO FILE [-H|-C ID]..."
+msgid ""
+" Otherwise, the changelog DAG of the current repo is emitted.\n"
+" "
msgstr ""
-msgid "retrieves a bundle from a repo"
+msgid "need repo for changelog dag"
msgstr ""
-msgid ""
-" Every ID must be a full-length hex node id string. Saves the bundle to "
-"the\n"
-" given file.\n"
-" "
+msgid "dump the contents of a data file revision"
msgstr ""
+#, python-format
+msgid "invalid revision identifier %s"
+msgstr "ugyldig revisionsidentification %s"
+
+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 "revlog format"
-msgstr ""
-
-msgid "[-f FORMAT] -c|-m|FILE"
-msgstr ""
-
msgid "dump the contents of an index file"
msgstr "dump indholdet af en indeksfil"
@@ -8742,8 +7697,7 @@ msgstr ""
msgid " (check that you compiled the extensions)\n"
msgstr ""
-#, python-format
-msgid "Checking templates (%s)...\n"
+msgid "Checking templates...\n"
msgstr ""
msgid " (templates seem to have been installed incorrectly)\n"
@@ -8775,49 +7729,6 @@ msgstr "Fandt ingen problemer\n"
msgid "%s problems detected, please check your install!\n"
msgstr ""
-msgid "REPO ID..."
-msgstr ""
-
-msgid "test whether node ids are known to a repo"
-msgstr ""
-
-msgid ""
-" Every ID must be a full-length hex node id string. Returns a list of 0s "
-"and 1s\n"
-" indicating unknown/known.\n"
-" "
-msgstr ""
-
-msgid "REPO NAMESPACE [KEY OLD NEW]"
-msgstr ""
-
-msgid "access the pushkey key/value protocol"
-msgstr ""
-
-msgid " With two args, list the keys in the given namespace."
-msgstr ""
-
-msgid ""
-" With five args, set a key to new if it currently is set to old.\n"
-" Reports success or failure.\n"
-" "
-msgstr ""
-
-msgid "revision to rebuild to"
-msgstr "revision til hvilken der skal gendannes til"
-
-msgid "[-r REV] [REV]"
-msgstr "[-r REV] [REV]"
-
-msgid "rebuild the dirstate as it would look like for the given revision"
-msgstr "genopbygger dirstate som den ville se ud for den angivne revision"
-
-msgid "revision to debug"
-msgstr "revision der skal fejlsøges"
-
-msgid "[-r REV] FILE"
-msgstr "[-r REV] FIL"
-
msgid "dump rename information"
msgstr ""
@@ -8829,57 +7740,9 @@ msgstr "%s omdøbt fra %s:%s\n"
msgid "%s not renamed\n"
msgstr "%s ikke omdøbt\n"
-msgid "dump index data"
-msgstr ""
-
-msgid "-c|-m|FILE"
-msgstr ""
-
-msgid "show data and statistics about a revlog"
-msgstr ""
-
-msgid "parse and apply a revision specification"
-msgstr ""
-
-msgid "REV1 [REV2]"
-msgstr "REV1 [REV2]"
-
-msgid "manually set the parents of the current working directory"
-msgstr ""
-
-msgid ""
-" This is useful for writing repository conversion tools, but should\n"
-" be used with care."
-msgstr ""
-
-msgid "do not display the saved mtime"
-msgstr "vis ikke den gemte mtime"
-
-msgid "sort by saved mtime"
-msgstr "sorter efter den gemte mtime"
-
-msgid "[OPTION]..."
-msgstr "[TILVALG]..."
-
-msgid "show the contents of the current dirstate"
-msgstr "vil indholdet af den nuværende dirstate"
-
-#, python-format
-msgid "copy: %s -> %s\n"
-msgstr "kopi: %s -> %s\n"
-
-msgid "revision to check"
-msgstr "revision som skal undersøges"
-
msgid "show how files match on given patterns"
msgstr ""
-msgid "REPO [OPTIONS]... [ONE [TWO]]"
-msgstr "DEPOT [TILVALG]... [EN [TO]]"
-
-msgid "[OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]..."
-msgstr "[TILVALG]... ([-c REV] | [-r REV1 [-r REV2]]) [FIL]..."
-
msgid "diff repository (or selected files)"
msgstr "find ændringer i hele depotet (eller udvalgte filer)"
@@ -8923,49 +7786,6 @@ msgstr ""
" Brug -g/--git tilvalget for at generere ændringer i det udvidede\n"
" git diff-format. For mere information, læs :hg:`help diffs`."
-msgid " - compare a file in the current working directory to its parent::"
-msgstr ""
-
-msgid " hg diff foo.c"
-msgstr ""
-
-msgid ""
-" - compare two historical versions of a directory, with rename info::"
-msgstr ""
-
-msgid " hg diff --git -r 1.0:1.2 lib/"
-msgstr ""
-
-msgid " - get change stats relative to the last change on some date::"
-msgstr ""
-
-msgid " hg diff --stat -r \"date('may 2')\""
-msgstr ""
-
-msgid " - diff all newly-added files that contain a keyword::"
-msgstr ""
-
-msgid " hg diff \"set:added() and grep(GNU)\""
-msgstr ""
-
-msgid " - compare a revision and its parents::"
-msgstr ""
-
-msgid ""
-" hg diff -c 9353 # compare against first parent\n"
-" hg diff -r 9353^:9353 # same using revset syntax\n"
-" hg diff -r 9353^2:9353 # compare against the second parent"
-msgstr ""
-
-msgid "diff against the second parent"
-msgstr "find forskelle i forhold til den anden forældre"
-
-msgid "revisions to export"
-msgstr "revision der skal eksporteres"
-
-msgid "[OPTION]... [-o OUTFILESPEC] REV..."
-msgstr "[TILVALG]... [-o UDFILSPECIFIKATION] REV..."
-
msgid "dump the header and diffs for one or more changesets"
msgstr "dump hovedet og ændringerne for en eller flere ændringer"
@@ -9008,8 +7828,6 @@ msgid ""
" :``%R``: changeset revision number\n"
" :``%b``: basename of the exporting repository\n"
" :``%h``: short-form changeset hash (12 hexadecimal digits)\n"
-" :``%m``: first line of the commit message (only alphanumeric "
-"characters)\n"
" :``%n``: zero-padded sequence number, starting at 1\n"
" :``%r``: zero-padded changeset revision number"
msgstr ""
@@ -9019,7 +7837,6 @@ msgstr ""
" :``%R``: revisionnummer for ændringen\n"
" :``%b``: grundnavn for det eksporterede depot\n"
" :``%h``: kortform ændringshash (12 hexadecimale cifre)\n"
-" :``%m``: første linie af deponeringsbeskeden (kun alfanumeriske tegn)\n"
" :``%n``: nul-fyldt sekvensnummer, startende ved 1\n"
" :``%r``: nul-fyldt revisionsnummer for ændringen"
@@ -9047,30 +7864,6 @@ msgstr ""
" forhold til den anden forælder. Dette kan være nyttigt til at\n"
" gennemse en sammenføjning."
-msgid ""
-" - use export and import to transplant a bugfix to the current\n"
-" branch::"
-msgstr ""
-
-msgid " hg export -r 9353 | hg import -"
-msgstr ""
-
-msgid ""
-" - export all the changesets between two revisions to a file with\n"
-" rename information::"
-msgstr ""
-
-msgid " hg export --git -r 123:150 > changes.txt"
-msgstr ""
-
-msgid ""
-" - split outgoing changes into a series of patches with\n"
-" descriptive names::"
-msgstr ""
-
-msgid " hg export -r \"outgoing()\" -o \"%n-%m.patch\""
-msgstr ""
-
msgid "export requires at least one changeset"
msgstr ""
@@ -9102,140 +7895,12 @@ msgstr ""
msgid " To undo a forget before the next commit, see :hg:`add`."
msgstr " For at omgøre forget før næste deponering, se :hg:`add`."
-msgid " - forget newly-added binary files::"
-msgstr ""
-
-msgid " hg forget \"set:added() and binary()\""
-msgstr ""
-
-msgid " - forget files that would be excluded by .hgignore::"
-msgstr ""
-
-msgid " hg forget \"set:hgignore()\""
-msgstr ""
-
-msgid "resume interrupted graft"
-msgstr ""
-
-msgid "record the current date as commit date"
-msgstr "noter dags dato som integrationsdato"
-
-msgid "record the current user as committer"
-msgstr "noter nuværende bruger som ham der har deponeret"
-
-msgid "[OPTION]... REVISION..."
-msgstr "[TILVALG]... [REVISION]..."
-
-msgid "copy changes from other branches onto the current branch"
-msgstr ""
-
-msgid ""
-" This command uses Mercurial's merge logic to copy individual\n"
-" changes from other branches without merging branches in the\n"
-" history graph. This is sometimes known as 'backporting' or\n"
-" 'cherry-picking'. By default, graft will copy user, date, and\n"
-" description from the source changesets."
-msgstr ""
-
-msgid ""
-" Changesets that are ancestors of the current revision, that have\n"
-" already been grafted, or that are merges will be skipped."
-msgstr ""
-
-msgid ""
-" If a graft merge results in conflicts, the graft process is\n"
-" aborted so that the current merge can be manually resolved. Once\n"
-" all conflicts are addressed, the graft process can be continued\n"
-" with the -c/--continue option."
-msgstr ""
-
-msgid ""
-" .. note::\n"
-" The -c/--continue option does not reapply earlier options."
-msgstr ""
-
-msgid ""
-" - copy a single change to the stable branch and edit its description::"
-msgstr ""
-
-msgid ""
-" hg update stable\n"
-" hg graft --edit 9393"
-msgstr ""
-
-msgid ""
-" - graft a range of changesets with one exception, updating dates::"
-msgstr ""
-
-msgid " hg graft -D \"2085::2093 and not 2091\""
-msgstr ""
-
-msgid " - continue a graft after resolving conflicts::"
-msgstr ""
-
-msgid " hg graft -c"
-msgstr ""
-
-msgid " - show the source of a grafted changeset::"
-msgstr ""
-
-msgid " hg log --debug -r tip"
-msgstr ""
-
-msgid ""
-" Returns 0 on successful completion.\n"
-" "
-msgstr ""
-" Returnerer 0 ved succes afslutning.\n"
-" "
-
-msgid "can't specify --continue and revisions"
-msgstr "kan ikke angive --continue og revisioner"
-
-msgid "no graft state found, can't continue"
-msgstr ""
-
-#, python-format
-msgid "skipping ungraftable merge revision %s\n"
-msgstr ""
-
-#, python-format
-msgid "skipping ancestor revision %s\n"
-msgstr ""
+msgid "no files specified"
+msgstr "ingen filer angivet"
#, python-format
-msgid "skipping already grafted revision %s\n"
-msgstr ""
-
-msgid "unresolved conflicts, can't continue"
-msgstr "uløste konflikter, kan ikke fortsætte"
-
-msgid "use hg resolve and hg graft --continue"
-msgstr "brug hg resolve og hg graft --continue"
-
-msgid "end fields with NUL"
-msgstr "afslut felter med NUL"
-
-msgid "print all revisions that match"
-msgstr "udskriv alle revisioner som matcher"
-
-msgid "follow changeset history, or file history across copies and renames"
-msgstr ""
-
-msgid "ignore case when matching"
-msgstr ""
-
-msgid "print only filenames and revisions that match"
-msgstr "udskriv kun filnavne og revisioner som matcher"
-
-msgid "print matching line numbers"
-msgstr "udskriv matchende linienumre"
-
-msgid "only search files changed within revision range"
-msgstr "søg kun i filer som er ændret i det angivne interval"
-
-msgid "[OPTION]... PATTERN [FILE]..."
-msgstr "[TILVALG]... MØNSTER [FIL]..."
+msgid "not removing %s: file is already untracked\n"
+msgstr "fjerner ikke %s: filen følges ikke\n"
msgid "search for a pattern in specified files and revisions"
msgstr ""
@@ -9267,24 +7932,6 @@ msgstr ""
msgid "grep: invalid match pattern: %s\n"
msgstr "grep: ugyldigt søgemønster: %s\n"
-msgid "STARTREV"
-msgstr "STARTREV"
-
-msgid "show only heads which are descendants of STARTREV"
-msgstr "vis kun hoveder som er efterkommere af STARTREV"
-
-msgid "show topological heads only"
-msgstr ""
-
-msgid "show active branchheads only (DEPRECATED)"
-msgstr "vis kun aktive gren-hoveder (FORÆLDET)"
-
-msgid "show normal and closed branch heads"
-msgstr "vis normale og lukkede grenhoveder"
-
-msgid "[-ac] [-r STARTREV] [REV]..."
-msgstr "[-ac] [-r STARTREV] [REV]..."
-
msgid "show current repository heads or show branch heads"
msgstr ""
@@ -9300,9 +7947,7 @@ msgstr ""
msgid ""
" If one or more REVs are given, only branch heads on the branches\n"
-" associated with the specified changesets are shown. This means\n"
-" that you can use :hg:`heads foo` to see the heads on a branch\n"
-" named ``foo``."
+" associated with the specified changesets are shown."
msgstr ""
msgid ""
@@ -9337,15 +7982,6 @@ msgstr "fandt ingen åbne gren-hoveder på grenene %s"
msgid " (started at %s)"
msgstr " (startet ved %s)"
-msgid "show only help for extensions"
-msgstr ""
-
-msgid "show only help for commands"
-msgstr ""
-
-msgid "[-ec] [TOPIC]"
-msgstr "[-ec] [EMNE]"
-
msgid "show help for a given topic or a help overview"
msgstr ""
@@ -9363,17 +7999,6 @@ msgid ""
" "
msgstr ""
-msgid "VALUE"
-msgstr ""
-
-msgid "DEPRECATED"
-msgstr ""
-
-msgid ""
-"\n"
-"[+] marked option can be specified multiple times\n"
-msgstr ""
-
msgid "global options:"
msgstr "globale indstillinger:"
@@ -9396,8 +8021,11 @@ msgstr ""
"valgmuligheder"
#, python-format
-msgid "use \"hg -v help %s\" to show more info"
-msgstr "brug \"hg -v help %s\" for mere information"
+msgid "use \"hg -v help %s\" to show global options"
+msgstr "brug \"hg -v help %s\" for at vise globale valgmuligheder"
+
+msgid "list of commands:"
+msgstr "liste af kommandoer:"
#, python-format
msgid ""
@@ -9427,46 +8055,19 @@ msgid "%s"
msgstr "%s"
#, python-format
-msgid "use \"hg help -e %s\" to show help for the %s extension"
-msgstr ""
-
-#, python-format
msgid ""
"\n"
-"use \"hg help %s\" to show the full help text\n"
+"use \"hg -v help %s\" to show verbose help\n"
msgstr ""
-
-#, python-format
-msgid ""
"\n"
-"use \"hg -v help %s\" to show more info\n"
-msgstr "\nbrug \"hg -v help %s\" for at se mere information\n"
-
-msgid "basic commands:"
-msgstr "basale kommandoer:"
+"brug \"hg -v help %s\" for at se udførlig hjælp\n"
-msgid "list of commands:"
-msgstr "liste af kommandoer:"
+msgid "options:\n"
+msgstr "valgmuligheder:\n"
msgid "no commands defined\n"
msgstr "ingen kommandoer defineret\n"
-msgid "enabled extensions:"
-msgstr "aktiverede udvidelser:"
-
-msgid ""
-"\n"
-"additional help topics:"
-msgstr ""
-"\n"
-"yderligere hjælpeemner:"
-
-#, python-format
-msgid ""
-"\n"
-"use \"hg help -c %s\" to see help for the %s command\n"
-msgstr ""
-
msgid "no help text available"
msgstr "ingen hjælpetekst tilgængelig"
@@ -9484,35 +8085,38 @@ msgstr ""
msgid "Mercurial Distributed SCM\n"
msgstr "Mercurial Distribueret SCM\n"
-msgid "identify the specified revision"
-msgstr "identificer den angivne revision"
-
-msgid "show local revision number"
-msgstr "vis lokalt revisionsnummer"
+msgid "basic commands:"
+msgstr "basale kommandoer:"
-msgid "show global revision id"
-msgstr "vis globalt revisionsnummer"
+msgid "enabled extensions:"
+msgstr "aktiverede udvidelser:"
-msgid "show branch"
-msgstr "vis gren"
+msgid "VALUE"
+msgstr ""
-msgid "show tags"
-msgstr "vis mærkater"
+msgid "DEPRECATED"
+msgstr ""
-msgid "show bookmarks"
-msgstr "vis bogmærker"
+msgid ""
+"\n"
+"[+] marked option can be specified multiple times"
+msgstr ""
-msgid "[-nibtB] [-r REV] [SOURCE]"
-msgstr "[-nibtB] [-r REV] [KILDE]"
+msgid ""
+"\n"
+"additional help topics:"
+msgstr ""
+"\n"
+"yderligere hjælpeemner:"
msgid "identify the working copy or specified revision"
msgstr ""
msgid ""
-" Print a summary identifying the repository state at REV using one or\n"
-" two parent hash identifiers, followed by a \"+\" if the working\n"
-" directory has uncommitted changes, the branch name (if not default),\n"
-" a list of tags, and a list of bookmarks."
+" Print a summary identifiying the repository state at REV\n"
+" using one or two parent hash identifiers, followed by a\n"
+" \"+\" if there are uncommitted changes in the working directory,\n"
+" the branch name (omitted if default) and a list of tags, bookmarks."
msgstr ""
msgid ""
@@ -9525,56 +8129,9 @@ msgid ""
" cause lookup to operate on that repository/bundle."
msgstr ""
-msgid " - generate a build identifier for the working directory::"
-msgstr ""
-
-msgid " hg id --id > build-id.dat"
-msgstr ""
-
-msgid " - find the revision corresponding to a tag::"
-msgstr ""
-
-msgid " hg id -n -r 1.3"
-msgstr ""
-
-msgid " - check the most recent revision of a remote repository::"
-msgstr ""
-
-msgid " hg id -r tip http://selenic.com/hg/"
-msgstr ""
-
msgid "can't query remote revision number, branch, or tags"
msgstr ""
-msgid ""
-"directory strip option for patch. This has the same meaning as the "
-"corresponding patch option"
-msgstr ""
-
-msgid "PATH"
-msgstr "STI"
-
-msgid "base path (DEPRECATED)"
-msgstr ""
-
-msgid "skip check for outstanding uncommitted changes"
-msgstr "spring kontrollen for udeponerede ændringer over"
-
-msgid "don't commit, just update the working directory"
-msgstr "deponer ikke, opdater blot arbejdskataloget"
-
-msgid "apply patch without touching the working directory"
-msgstr ""
-
-msgid "apply patch to the nodes from which it was generated"
-msgstr "anvend rettelse på den knude hvorfra den var genereret"
-
-msgid "use any branch information in patch (implied by --exact)"
-msgstr ""
-
-msgid "[OPTION]... PATCH..."
-msgstr "[TILVALG]... RETTELSE..."
-
msgid "import an ordered set of patches"
msgstr ""
@@ -9613,13 +8170,6 @@ msgid ""
msgstr ""
msgid ""
-" Use --bypass to apply and commit patches directly to the\n"
-" repository, not touching the working directory. Without --exact,\n"
-" patches will be applied on top of the working directory parent\n"
-" revision."
-msgstr ""
-
-msgid ""
" With -s/--similarity, hg will attempt to discover renames and\n"
" copies in the patch in the same way as 'addremove'."
msgstr ""
@@ -9630,82 +8180,24 @@ msgid ""
" See :hg:`help dates` for a list of formats valid for -d/--date."
msgstr ""
-msgid " - import a traditional patch from a website and detect renames::"
-msgstr ""
-
-msgid " hg import -s 80 http://example.com/bugfix.patch"
-msgstr ""
-
-msgid " - import a changeset from an hgweb server::"
-msgstr ""
-
-msgid " hg import http://www.selenic.com/hg/rev/5ca8c111e9aa"
-msgstr ""
-
-msgid " - import all the patches in an Unix-style mbox::"
-msgstr ""
-
-msgid " hg import incoming-patches.mbox"
-msgstr ""
-
-msgid ""
-" - attempt to exactly restore an exported changeset (not always\n"
-" possible)::"
-msgstr ""
-
-msgid " hg import --exact proposed-fix.patch"
-msgstr ""
-
-msgid "need at least one patch to import"
-msgstr ""
-
-msgid "cannot use --no-commit with --bypass"
-msgstr "kan ikke bruge --no-commit med --bypass"
-
-msgid "cannot use --similarity with --bypass"
-msgstr "kan ikke bruge --similarity med --bypass"
-
-msgid "patch is damaged or loses information"
-msgstr "rettelsen er beskadiget eller mister information"
-
-msgid "applied to working directory"
-msgstr "anvendt på arbejdskatalog"
+msgid "to working directory"
+msgstr "til arbejdskatalog"
msgid "not a Mercurial patch"
msgstr "ikke en Mercurial patch"
-#. i18n: refers to a short changeset id
-#, python-format
-msgid "created %s"
-msgstr "oprettede %s"
+msgid "patch is damaged or loses information"
+msgstr "rettelsen er beskadiget eller mister information"
msgid "applying patch from stdin\n"
msgstr "anvender rettelse fra standardinddata\n"
#, python-format
-msgid "%s: no diffs found"
-msgstr "%s: fandt ingen ændringer"
-
-msgid "run even if remote repository is unrelated"
-msgstr "kør selv hvis fjerndepotet er urelateret"
-
-msgid "show newest record first"
-msgstr "vis nyeste postering først"
-
-msgid "file to store the bundles into"
-msgstr "fil hvor bundterne skal gemmes"
-
-msgid "a remote changeset intended to be added"
-msgstr ""
-
-msgid "compare bookmarks"
-msgstr "sammenlign bogmærker"
+msgid "applied %s\n"
+msgstr "anvendte %s\n"
-msgid "a specific branch you would like to pull"
-msgstr "en bestemt gren du gerne vil hive ned"
-
-msgid "[-p] [-n] [-M] [-f] [-r REV]... [--bundle FILENAME] [SOURCE]"
-msgstr "[-p] [-n] [-M] [-f] [-r REV]... [--bundle FILNAVN] [KILDE]"
+msgid "no diffs found"
+msgstr "fandt ingen ændringer"
msgid "show new changesets found in source"
msgstr ""
@@ -9735,9 +8227,6 @@ msgstr ""
msgid "remote doesn't support bookmarks\n"
msgstr "fjerdepotet understøtter ikke bogmærker\n"
-msgid "[-e CMD] [--remotecmd CMD] [DEST]"
-msgstr "[-e KOMMANDO] [--remotecmd KOMMANDO] [MÃ…L]"
-
msgid "create a new repository in the given directory"
msgstr "opret et nyt depot i det givne katalog"
@@ -9760,18 +8249,6 @@ msgstr ""
" Det er muligt at angive en ``ssh://`` URL som destination.\n"
" Se :hg:`help urls` for mere information."
-msgid "search the repository as it is in REV"
-msgstr ""
-
-msgid "end filenames with NUL, for use with xargs"
-msgstr "afslut filnavne med NUL, til brug med xargs"
-
-msgid "print complete paths from the filesystem root"
-msgstr "udskriv fulde stier fra filsystemets rod"
-
-msgid "[OPTION]... [PATTERN]..."
-msgstr "[TILVALG]... [MØNSTER]..."
-
msgid "locate files matching specific patterns"
msgstr ""
@@ -9798,42 +8275,6 @@ msgid ""
" contain whitespace as multiple filenames."
msgstr ""
-msgid "only follow the first parent of merge changesets"
-msgstr "følg kun den første forælder for sammenføjningsændringer"
-
-msgid "show revisions matching date spec"
-msgstr "vis revisioner som matcher datoangivelsen"
-
-msgid "show copied files"
-msgstr "vis kopierede filer"
-
-msgid "do case-insensitive search for a given text"
-msgstr "lav søgning efter nøgleord uden forskel på små/store bogstaver"
-
-msgid "include revisions where files were removed"
-msgstr "inkluder revisioner hvor filer blev slettet"
-
-msgid "show only merges"
-msgstr "vis kun sammenføjninger"
-
-msgid "revisions committed by user"
-msgstr "revisioner deponeret af bruger"
-
-msgid "show only changesets within the given named branch (DEPRECATED)"
-msgstr "vis kun ændringer på den angivne navngivne gren (FORÆLDET)"
-
-msgid "show changesets within the given named branch"
-msgstr "vis ændringer på den angivne navngivne gren"
-
-msgid "do not display revision or any of its ancestors"
-msgstr "vis ikke revision eller nogen af den forfædre"
-
-msgid "show hidden changesets"
-msgstr "vis skjulte ændringer"
-
-msgid "[OPTION]... [FILE]"
-msgstr "[TILVALG]... [FIL]"
-
msgid "show revision history of entire repository or files"
msgstr "vis revisionhistorik for hele depotet eller udvalgte filer"
@@ -9845,20 +8286,11 @@ msgstr ""
" projektet."
msgid ""
-" 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."
-msgstr ""
-" Hvis der ikke angives et revisionsinterval, da bruges ``tip:0``\n"
-" som standard, med mindre --follow er brugt, i hvilket tilfælde\n"
-" arbejdskatalogets forælder bruges som startrevision."
-
-#, fuzzy
-msgid ""
" File history is shown without following rename or copy history of\n"
" files. Use -f/--follow with a filename to follow history across\n"
" renames and copies. --follow without a filename will only show\n"
-" ancestors or descendants of the starting revision."
+" ancestors or descendants of the starting revision. --follow-first\n"
+" only follows the first parent of merge revisions."
msgstr ""
" Filhistorik vises uden at følge omdøbninger eller kopieringer.\n"
" Brug -f/--follow med et filnavn for at følge historien hen over\n"
@@ -9867,6 +8299,18 @@ msgstr ""
" følger kun den første forældre for sammenføjningsrevisioner."
msgid ""
+" 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."
+msgstr ""
+" Hvis der ikke angives et revisionsinterval, da bruges ``tip:0``\n"
+" som standard, med mindre --follow er brugt, i hvilket tilfælde\n"
+" arbejdskatalogets forælder bruges som startrevision. Du kan\n"
+" specificere en mængde af ændringer til log, se :hg:`help revsets`\n"
+" for mere information."
+
+msgid ""
" By default this command prints revision number and changeset id,\n"
" tags, non-trivial parents, user, date and time, and a summary for\n"
" each commit. When the -v/--verbose switch is used, the list of\n"
@@ -9890,85 +8334,6 @@ msgstr ""
" dennes første forælder. Ydermere vises kun filer som er\n"
" forskellige fra BEGGE forældre i files:."
-msgid ""
-" .. note::\n"
-" for performance reasons, log FILE may omit duplicate changes\n"
-" made on branches and will not show deletions. To see all\n"
-" changes including duplicates and deletions, use the --removed\n"
-" switch."
-msgstr ""
-
-msgid " - changesets with full descriptions and file lists::"
-msgstr ""
-
-msgid " hg log -v"
-msgstr ""
-
-msgid " - changesets ancestral to the working directory::"
-msgstr ""
-
-msgid " hg log -f"
-msgstr ""
-
-msgid " - last 10 commits on the current branch::"
-msgstr ""
-
-msgid " hg log -l 10 -b ."
-msgstr ""
-
-msgid ""
-" - changesets showing all modifications of a file, including removals::"
-msgstr ""
-
-msgid " hg log --removed file.c"
-msgstr ""
-
-msgid ""
-" - all changesets that touch a directory, with diffs, excluding merges::"
-msgstr ""
-
-msgid " hg log -Mp lib/"
-msgstr ""
-
-msgid " - all revision numbers that match a keyword::"
-msgstr ""
-
-msgid " hg log -k bug --template \"{rev}\\n\""
-msgstr ""
-
-msgid " - check if a given changeset is included is a tagged release::"
-msgstr ""
-
-msgid " hg log -r \"a21ccf and ancestor(1.9)\""
-msgstr " hg log -r \"a21ccf and ancestor(1.9)\""
-
-msgid " - find all changesets by some user in a date range::"
-msgstr ""
-
-msgid " hg log -k alice -d \"may 2008 to jul 2008\""
-msgstr ""
-
-msgid " - summary of all changesets after the last tag::"
-msgstr ""
-
-msgid ""
-" hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
-msgstr ""
-
-msgid ""
-" See :hg:`help revisions` and :hg:`help revsets` for more about\n"
-" specifying revisions."
-msgstr ""
-
-msgid "revision to display"
-msgstr "revision der skal vises"
-
-msgid "list files from all revisions"
-msgstr ""
-
-msgid "[-r REV]"
-msgstr "[-r REV]"
-
msgid "output the current or given revision of the project manifest"
msgstr ""
@@ -9983,26 +8348,6 @@ msgid ""
" With --debug, print file revision hashes."
msgstr ""
-msgid ""
-" If option --all is specified, the list of all files from all revisions\n"
-" is printed. This includes deleted and renamed files."
-msgstr ""
-
-msgid "can't specify a revision with --all"
-msgstr "du kan ikke specificeret en revision sammen med --all"
-
-msgid "force a merge with outstanding changes"
-msgstr ""
-
-msgid "revision to merge"
-msgstr "revision der skal sammenføjes"
-
-msgid "review revisions to merge (no merge is performed)"
-msgstr ""
-
-msgid "[-P] [-f] [[-r] REV]"
-msgstr "[-P] [-f] [[-r] REV]"
-
msgid "merge working directory with another revision"
msgstr "sammenføj arbejdskataloget med en anden revision"
@@ -10057,18 +8402,22 @@ msgid ""
msgstr ""
#, python-format
-msgid "branch '%s' has %d heads - please merge with an explicit rev"
-msgstr "afbrudt: gren '%s' har %d hoveder - sammenføj venligst med en eksplicit revision"
-
-msgid "run 'hg heads .' to see heads"
-msgstr "kør 'hg heads .' for at se hoveder"
+msgid ""
+"branch '%s' has %d heads - please merge with an explicit rev\n"
+"(run 'hg heads .' to see heads)"
+msgstr ""
+"afbrudt: gren '%s' har %d hoveder - sammenføj venligst med en eksplicit "
+"revision\n"
+"(kør 'hg heads .' for se hovederne)"
#, python-format
-msgid "branch '%s' has one head - please merge with an explicit rev"
-msgstr "afbrudt: gren '%s' har et hoved - sammenføj venligst med en eksplicit revision"
-
-msgid "run 'hg heads' to see all heads"
-msgstr "kør 'hg heads' for at se alle hoveder"
+msgid ""
+"branch '%s' has one head - please merge with an explicit rev\n"
+"(run 'hg heads' to see all heads)"
+msgstr ""
+"afbrudt: gren '%s' har et hoved - sammenføj venligst med en eksplicit "
+"revision\n"
+"(kør 'hg heads' for at se alle hoveder)"
msgid "there is nothing to merge"
msgstr "der er ikke noget at sammenføje"
@@ -10077,20 +8426,12 @@ msgstr "der er ikke noget at sammenføje"
msgid "%s - use \"hg update\" instead"
msgstr "%s - brug \"hg update\" istedet"
-msgid "working directory not at a head revision"
-msgstr "arbejdskatalog er ikke ved et hoved"
-
-msgid "use 'hg update' or merge with an explicit revision"
-msgstr "brug 'hg update' eller sammenføj med en eksplicit revision"
-
-msgid "a changeset intended to be included in the destination"
+msgid ""
+"working dir not at a head rev - use \"hg update\" or merge with an explicit "
+"rev"
msgstr ""
-
-msgid "a specific branch you would like to push"
-msgstr "en bestemt gren du gerne vil skubbe ud"
-
-msgid "[-M] [-p] [-n] [-f] [-r REV]... [DEST]"
-msgstr "[-M] [-p] [-n] [-f] [-r REV]... [MÃ…L]"
+"arbejdskataloget er ikke ved en hovedrevision - brug \"hg update\" eller "
+"sammenføj med en eksplicit revision"
msgid "show changesets not found in the destination"
msgstr ""
@@ -10109,12 +8450,6 @@ msgid ""
" "
msgstr ""
-msgid "show parents of the specified revision"
-msgstr "vis forældre for den angivne revision"
-
-msgid "[-r REV] [FILE]"
-msgstr "[-r REV] [FIL]"
-
msgid "show the parents of the working directory or revision"
msgstr "vis forældrene til arbejdskataloget eller en revision"
@@ -10138,9 +8473,6 @@ msgstr ""
msgid "'%s' not found in manifest!"
msgstr "'%s' ikke fundet i manifest!"
-msgid "[NAME]"
-msgstr "[NAVN]"
-
msgid "show aliases for remote repositories"
msgstr ""
@@ -10150,11 +8482,6 @@ msgid ""
msgstr ""
msgid ""
-" Option -q/--quiet suppresses all output when searching for NAME\n"
-" and shows only the path names when listing all definitions."
-msgstr ""
-
-msgid ""
" Path names are defined in the [paths] section of your\n"
" configuration file and in ``/etc/mercurial/hgrc``. If run inside a\n"
" repository, ``.hg/hgrc`` is used, too."
@@ -10179,9 +8506,8 @@ msgstr " Se :hg:`help urls` for mere information."
msgid "not found!\n"
msgstr "ikke fundet!\n"
-#, python-format
-msgid "not updating: %s\n"
-msgstr "opdaterer ikke: %s\n"
+msgid "not updating, since new heads added\n"
+msgstr "opdaterer ikke idet nye hoveder er tilføjet\n"
msgid "(run 'hg heads' to see heads, 'hg merge' to merge)\n"
msgstr "(kør 'hg heads' for at se hoveder, 'hg merge' for at sammenføje)\n"
@@ -10195,21 +8521,6 @@ msgstr "(kør 'hg heads' for at se hoveder)\n"
msgid "(run 'hg update' to get a working copy)\n"
msgstr "(kør 'hg update' for at få en arbejdskopi)\n"
-msgid "update to new branch head if changesets were pulled"
-msgstr "opdater til det nye gren-hovede hvis ændringer blev trukket ned"
-
-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 "pull changes from the specified source"
msgstr "hent ændringer fra den angivne kilde"
@@ -10265,18 +8576,6 @@ msgstr ""
msgid "importing bookmark %s\n"
msgstr "importerer bogmærke %s\n"
-msgid "force push"
-msgstr "gennemtving skubning"
-
-msgid "bookmark to push"
-msgstr "bogmærke der skal skubbes"
-
-msgid "allow pushing a new branch"
-msgstr ""
-
-msgid "[-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]"
-msgstr "[-f] [-r REV]... [-e KOMMANDO] [--remotecmd KOMMANDO] [MÃ…L]"
-
msgid "push changes to the specified destination"
msgstr "skub ændringer til den angivne destination"
@@ -10366,35 +8665,18 @@ msgid ""
" "
msgstr ""
-msgid "record delete for missing files"
-msgstr ""
-
-msgid "remove (and delete) file even if added or modified"
-msgstr "fjern (og slet) fil selv hvis tilføjet eller ændret"
-
msgid "remove the specified files on the next commit"
msgstr "fjern de angivne filer ved næste deponering"
-#, fuzzy
-msgid " Schedule the indicated files for removal from the current branch."
+msgid " Schedule the indicated files for removal from the repository."
msgstr " Planlæg de angivne filer til sletning fra depotet."
-#, fuzzy
msgid ""
-" This command schedules the files to be removed at the next commit.\n"
-" To undo a remove before that, see :hg:`revert`. To undo added\n"
-" files, see :hg:`forget`."
-msgstr ""
-" Denne kommando planlægger filerne til at blive fjernet ved næste\n"
-" deponering. For at omgøre en fjernelse før det, se :hg:`revert`.\n"
-" "
-
-#, fuzzy
-msgid ""
-" -A/--after can be used to remove only files that have already\n"
-" been deleted, -f/--force can be used to force deletion, and -Af\n"
-" can be used to remove files from the next revision without\n"
-" deleting them from the working directory."
+" This only removes files from the current branch, not from the\n"
+" entire project history. -A/--after can be used to remove only\n"
+" files that have already been deleted, -f/--force can be used to\n"
+" force deletion, and -Af can be used to remove files from the next\n"
+" revision without deleting them from the working directory."
msgstr ""
" Dette fjerner kun filerne fra den nuværende gren, ikke fra hele\n"
" projektets historie. -A/--after kan bruges til kun at fjerne filer\n"
@@ -10402,13 +8684,12 @@ msgstr ""
" en sletning, og -Af kan bruges til at fjerne filer fra næste\n"
" revision uden at slette dem fra arbejdskataloget."
-#, fuzzy
msgid ""
-" The following table details the behavior of remove for different\n"
-" file states (columns) and option combinations (rows). The file\n"
-" states are Added [A], Clean [C], Modified [M] and Missing [!]\n"
-" (as reported by :hg:`status`). The actions are Warn, Remove\n"
-" (from branch) and Delete (from disk):"
+" The following table details the behavior of remove for different\n"
+" file states (columns) and option combinations (rows). The file\n"
+" states are Added [A], Clean [C], Modified [M] and Missing [!] (as\n"
+" reported by :hg:`status`). The actions are Warn, Remove (from\n"
+" branch) and Delete (from disk)::"
msgstr ""
" Den følgende tabel viser opførslen af remove for forskellige\n"
" filtilstande (søjler) og kombinationer af tilvalg (rækker). Mulige\n"
@@ -10416,16 +8697,12 @@ msgstr ""
" (som rapporteret af :hg:`status`). Handlingerne er Warn, Remove\n"
" (fra gren) og Delete (fra disk)::"
-#, fuzzy
msgid ""
-" ======= == == == ==\n"
-" A C M !\n"
-" ======= == == == ==\n"
-" none W RD W R\n"
-" -f R RD RD R\n"
-" -A W W W R\n"
-" -Af R R R R\n"
-" ======= == == == =="
+" A C M !\n"
+" none W RD W R\n"
+" -f R RD RD R\n"
+" -A W W W R\n"
+" -Af R R R R"
msgstr ""
" A C M !\n"
" none W RD W R\n"
@@ -10434,9 +8711,12 @@ msgstr ""
" -Af R R R R"
msgid ""
-" Note that remove never deletes files in Added [A] state from the\n"
-" working directory, not even if option --force is specified."
+" This command schedules the files to be removed at the next commit.\n"
+" To undo a remove before that, see :hg:`revert`."
msgstr ""
+" Denne kommando planlægger filerne til at blive fjernet ved næste\n"
+" deponering. For at omgøre en fjernelse før det, se :hg:`revert`.\n"
+" "
msgid ""
" Returns 0 on success, 1 if any warnings encountered.\n"
@@ -10457,18 +8737,13 @@ msgstr ""
msgid "not removing %s: file is modified (use -f to force removal)\n"
msgstr "fjerner ikke %s: filen er ændret (brug -f for at forcere fjernelsen)\n"
-#, fuzzy, python-format
-msgid "not removing %s: file has been marked for add (use forget to undo)\n"
+#, python-format
+msgid ""
+"not removing %s: file has been marked for add (use -f to force removal)\n"
msgstr ""
"fjerner ikke %s: filen er markeret som tilføjt (brug -f for at forcere "
"fjernelsen)\n"
-msgid "record a rename that has already occurred"
-msgstr ""
-
-msgid "[OPTION]... SOURCE... DEST"
-msgstr "[TILVALG]... KILDE... MÃ…L"
-
msgid "rename files; equivalent of copy + remove"
msgstr ""
@@ -10485,21 +8760,6 @@ msgstr ""
" Denne kommando planlægger filerne til at blive fjernet ved næste\n"
" deponering. For at omgøre en fjernelse før det, se :hg:`revert`."
-msgid "select all unresolved files"
-msgstr "vælg alle uløste filer"
-
-msgid "list state of files needing merge"
-msgstr "vis tilstand af filer som har brug for sammenføjning"
-
-msgid "mark files as resolved"
-msgstr "marker filer som løste"
-
-msgid "mark files as unresolved"
-msgstr "marker filer som uløste"
-
-msgid "hide status prefix"
-msgstr "skjul statuspræfix"
-
msgid "redo merges or set/view the merge status of files"
msgstr ""
@@ -10520,10 +8780,9 @@ msgid ""
"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 select all unresolved files. ``--tool`` can be used to specify\n"
+" 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. Previous file\n"
-" contents are saved with a ``.orig`` suffix."
+" environment variable and your configuration files."
msgstr ""
msgid ""
@@ -10564,90 +8823,69 @@ msgstr ""
"ingen filer eller mapper specificeret; brug --all for at gen-sammenføje alle "
"filerne"
-msgid "revert all changes when no arguments given"
-msgstr "før alle ændringer tilbage når inget argument angives"
-
-msgid "tipmost revision matching date"
-msgstr ""
-
-msgid "revert to the specified revision"
-msgstr "vend tilbage til den angivne revision"
-
-msgid "do not save backup copies of files"
-msgstr "gem ikke sikkerhedskopier af filer"
-
-msgid "[OPTION]... [-r REV] [NAME]..."
-msgstr "[TILVALG]... [-r REV] [NAVN]..."
-
-msgid "restore files to their checkout state"
+msgid "restore individual files or directories to an earlier state"
msgstr ""
msgid ""
" .. note::\n"
-" To check out earlier revisions, you should use :hg:`update REV`.\n"
-" To cancel a merge (and lose your changes), use :hg:`update --clean .`."
+" 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 ""
msgid ""
-" With no revision specified, revert the specified files or directories\n"
+" With no revision specified, revert the named files or directories\n"
" to the contents they had in the parent of the working directory.\n"
-" This restores the contents of files to an unmodified\n"
+" This restores the contents of the affected files to an unmodified\n"
" state and unschedules adds, removes, copies, and renames. If the\n"
" working directory has two parents, you must explicitly specify a\n"
" revision."
msgstr ""
msgid ""
-" Using the -r/--rev or -d/--date options, revert the given files or\n"
-" directories to their states as of a specific revision. Because\n"
-" revert does not change the working directory parents, this will\n"
-" cause these files to appear modified. This can be helpful to \"back\n"
-" out\" some or all of an earlier change. See :hg:`backout` for a\n"
-" related method."
+" Using the -r/--rev option, revert the given files or directories\n"
+" to their contents as of a specific revision. This can be helpful\n"
+" 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 ""
msgid ""
-" Modified files are saved with a .orig suffix before reverting.\n"
-" To disable these backups, use --no-backup."
+" Revert modifies the working directory. It does not commit any\n"
+" changes, or change the parent of the working directory. If you\n"
+" revert to a revision other than the parent of the working\n"
+" directory, the reverted files will thus appear modified\n"
+" afterwards."
msgstr ""
-msgid "you can't specify a revision and a date"
-msgstr "du kan ikke specificeret en revision og en dato"
-
-#, fuzzy
-msgid "uncommitted merge with no revision specified"
-msgstr "udeponeret sammenføjning - angiv venligst en specifik revision"
-
-msgid "use \"hg update\" or see \"hg help revert\""
+msgid ""
+" If a file has been deleted, it is restored. Files scheduled for\n"
+" addition are just unscheduled and left as they are. If the\n"
+" executable mode of a file was changed, it is reset."
msgstr ""
-#, fuzzy
-msgid "no files or directories specified"
-msgstr "ingen filer angivet"
-
msgid ""
-"uncommitted merge, use --all to discard all changes, or 'hg update -C .' to "
-"abort the merge"
+" If names are given, all files matching the names are reverted.\n"
+" If no arguments are given, no files are reverted."
msgstr ""
-#, python-format
msgid ""
-"uncommitted changes, use --all to discard all changes, or 'hg update %s' to "
-"update"
+" Modified files are saved with a .orig suffix before reverting.\n"
+" To disable these backups, use --no-backup."
msgstr ""
-#, python-format
-msgid "use --all to revert all files, or 'hg update %s' to update"
-msgstr ""
+msgid "you can't specify a revision and a date"
+msgstr "du kan ikke specificeret en revision og en dato"
-#, fuzzy
-msgid "uncommitted changes, use --all to discard all changes"
+msgid "uncommitted merge - use \"hg update\", see \"hg help revert\""
msgstr ""
-"udestående ikke-deponerede ændringer (brug 'hg status' for at se ændringer)"
-#, fuzzy
-msgid "use --all to revert all files"
-msgstr "kan ikke læse filen %s"
+msgid "no files or directories specified; use --all to revert the whole repo"
+msgstr ""
+"ingen filer eller mapper specificeret; brug --all for at føre hele repo'et "
+"tilbage"
#, python-format
msgid "forgetting %s\n"
@@ -10673,9 +8911,6 @@ msgstr "filen er ikke håndteret: %s\n"
msgid "no changes needed to %s\n"
msgstr "%s behøver ingen ændringer\n"
-msgid "ignore safety measures"
-msgstr ""
-
msgid "roll back the last transaction (dangerous)"
msgstr "ruller sidste transaktion tilbage (farligt)"
@@ -10703,14 +8938,6 @@ msgid ""
msgstr ""
msgid ""
-" It's possible to lose data with rollback: commit, update back to\n"
-" an older changeset, and then rollback. The update removes the\n"
-" changes you committed from the working directory, and rollback\n"
-" removes them from history. To avoid data loss, you must pass\n"
-" --force in this case."
-msgstr ""
-
-msgid ""
" This command is not intended for use on public repositories. Once\n"
" changes are visible for pull by other users, rolling a transaction\n"
" back locally is ineffective (someone else may already have pulled\n"
@@ -10730,51 +8957,6 @@ msgstr ""
msgid " Print the root directory of the current repository."
msgstr ""
-msgid "name of access log file to write to"
-msgstr "navn på adgangslogfilen der skrives til"
-
-msgid "name of error log file to write to"
-msgstr "navn på fejlllog fil der skrives til"
-
-msgid "PORT"
-msgstr "PORT"
-
-msgid "port to listen on (default: 8000)"
-msgstr "port der skal lyttes på (standard: 8000)"
-
-msgid "address to listen on (default: all interfaces)"
-msgstr "adresse der skal lyttes til (standard: alle grænseflader)"
-
-msgid "ADDR"
-msgstr ""
-
-msgid "prefix path to serve from (default: server root)"
-msgstr "prefiks sti at udstille fra (default: server-rod)"
-
-msgid "name to show in web pages (default: working directory)"
-msgstr "navn der skal vises på websider (standard: arbejdskatalog)"
-
-msgid "name of the hgweb config file (see \"hg help hgweb\")"
-msgstr "navn på hgweb konfigurationsfil (se \"hg help hgweb\")"
-
-msgid "name of the hgweb config file (DEPRECATED)"
-msgstr "navn på hgweb konfigurationsfilen (FORÆLDET)"
-
-msgid "for remote clients"
-msgstr "for fjernklienter"
-
-msgid "web templates to use"
-msgstr "web-skabelon"
-
-msgid "template style to use"
-msgstr "skabelon-stil"
-
-msgid "use IPv6 in addition to IPv4"
-msgstr "brug IPv6 og IPv4"
-
-msgid "SSL certificate file"
-msgstr "SSL certifikatfil"
-
msgid "start stand-alone webserver"
msgstr ""
@@ -10811,10 +8993,6 @@ msgstr ""
" angiv da portnummer 0; så vil serveren skrive det portnummer den\n"
" bruger."
-#, fuzzy
-msgid "cannot use --stdio with --cmdserver"
-msgstr "kan ikke bruge --exact og --move sammen"
-
msgid "There is no Mercurial repository here (.hg not found)"
msgstr "Der er intet Mercurial depot her (.hg ikke fundet)"
@@ -10822,69 +9000,6 @@ msgstr "Der er intet Mercurial depot her (.hg ikke fundet)"
msgid "listening at http://%s%s/%s (bound to %s:%d)\n"
msgstr "lytter på http://%s%s/%s (bundet til %s:%d)\n"
-msgid "show untrusted configuration options"
-msgstr "vis ikke-betroede konfigurationsværdier"
-
-msgid "[-u] [NAME]..."
-msgstr "[-u] [NAVN]..."
-
-msgid "show combined config settings from all hgrc files"
-msgstr ""
-
-msgid " With no arguments, print names and values of all config items."
-msgstr ""
-
-msgid ""
-" With one argument of the form section.name, print just the value\n"
-" of that config item."
-msgstr ""
-
-msgid ""
-" With multiple arguments, print names and values of all config\n"
-" items with matching section names."
-msgstr ""
-
-msgid ""
-" With --debug, the source (filename and line number) is printed\n"
-" for each config item."
-msgstr ""
-
-msgid "only one config item permitted"
-msgstr ""
-
-msgid "show status of all files"
-msgstr "vis status på alle filer"
-
-msgid "show only modified files"
-msgstr "vis kun ændrede filer"
-
-msgid "show only added files"
-msgstr "vis kun tilføjede filer"
-
-msgid "show only removed files"
-msgstr "vis kun fjernede filer"
-
-msgid "show only deleted (but tracked) files"
-msgstr "vis kun slettede (men kendte) filer"
-
-msgid "show only files without changes"
-msgstr "vis kun filer unden ændringer"
-
-msgid "show only unknown (not tracked) files"
-msgstr "vis kun ukendte filer"
-
-msgid "show only ignored files"
-msgstr "vis kun ignorerede filer"
-
-msgid "show source of copied files"
-msgstr "vis kilder for kopierede filer"
-
-msgid "show difference from revision"
-msgstr "vis forskelle fra revision"
-
-msgid "list the changed files of a revision"
-msgstr "vis de ændrede filer i en revision"
-
msgid "show changed files in the working directory"
msgstr "vis ændrede filer i arbejdskataloget"
@@ -10958,28 +9073,6 @@ msgstr ""
" I = ignoreret\n"
" = den foregående fil markeret som A (tilføjet) stammer herfra"
-#, fuzzy
-msgid " - show changes in the working directory relative to a changeset:"
-msgstr "vis ændrede filer i arbejdskataloget"
-
-msgid " hg status --rev 9353"
-msgstr ""
-
-msgid " - show all changes including copies in an existing changeset::"
-msgstr ""
-
-msgid " hg status --copies --change 9353"
-msgstr ""
-
-msgid " - get a NUL separated list of added files, suitable for xargs::"
-msgstr ""
-
-msgid " hg status -an0"
-msgstr ""
-
-msgid "check for push and pull"
-msgstr ""
-
msgid "summarize working directory state"
msgstr ""
@@ -11007,10 +9100,6 @@ msgstr "(ingen revision hentet frem)"
msgid "branch: %s\n"
msgstr "gren: %s\n"
-#, fuzzy
-msgid "bookmarks:"
-msgstr "vis bogmærker"
-
#, python-format
msgid "%d modified"
msgstr "%d ændret"
@@ -11103,24 +9192,6 @@ msgstr "fjernsystem: %s\n"
msgid "remote: (synced)\n"
msgstr "fjernsystem: (synkroniseret)\n"
-msgid "force tag"
-msgstr "gennemtving markering"
-
-msgid "make the tag local"
-msgstr "gør mærkaten lokal"
-
-msgid "revision to tag"
-msgstr "revision der skal mærkes"
-
-msgid "remove a tag"
-msgstr "fjern en mærkat"
-
-msgid "use <text> as commit message"
-msgstr "brug <tekst> som deponeringsbesked"
-
-msgid "[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME..."
-msgstr "[-f] [-l] [-m TEKST] [-d DATO] [-u BRUGER] [-r REV] NAVN..."
-
msgid "add one or more tags for the current or given revision"
msgstr ""
@@ -11201,9 +9272,6 @@ msgstr ""
" Viser både normale og lokale mærkater. Når -v/--verbose flaget\n"
" bruges, udskrives en tredje kolonne \"local\" for lokale mærkater."
-msgid "[-p] [-g]"
-msgstr "[-p] [-g]"
-
msgid "show the tip revision"
msgstr ""
@@ -11220,12 +9288,6 @@ msgid ""
" and cannot be renamed or assigned to a different changeset."
msgstr ""
-msgid "update to new branch head if changesets were unbundled"
-msgstr "opdater til nyt gren-hoved hvis ændringer blev pakket ud"
-
-msgid "[-u] FILE..."
-msgstr "[-u] FIL..."
-
msgid "apply one or more changegroup files"
msgstr ""
@@ -11239,15 +9301,6 @@ msgid ""
" "
msgstr ""
-msgid "discard uncommitted changes (no backup)"
-msgstr "kasser ikke-deponerede ændringer (ingen sikkerhedskopi)"
-
-msgid "update across branches if no uncommitted changes"
-msgstr "opdater på tværs af grene hvis der er ingen udeponerede ændringer"
-
-msgid "[-c] [-C] [-d DATE] [[-r] REV]"
-msgstr "[-c] [-C] [-d DATO] [[-r] REV]"
-
msgid "update working directory (or switch revisions)"
msgstr "opdater arbejdskataloget (eller skift til en anden revision)"
@@ -11269,11 +9322,6 @@ msgid ""
msgstr ""
msgid ""
-" Update sets the working directory's parent revison to the specified\n"
-" changeset (see :hg:`help parents`)."
-msgstr ""
-
-msgid ""
" The following rules apply when the working directory contains\n"
" uncommitted changes:"
msgstr ""
@@ -11320,10 +9368,9 @@ msgstr ""
" Brug null som ændring for at fjerne arbejdskataloget (ligesom\n"
" :hg:`clone -U`)."
-#, fuzzy
msgid ""
-" If you want to revert just one file to an older revision, use\n"
-" :hg:`revert [-r REV] NAME`."
+" If you want to update just one file to an older changeset, use\n"
+" :hg:`revert`."
msgstr ""
" Hvis du vil opdatere blot en enkelt fil til en ældre revision,\n"
" brug da :hg:`revert`."
@@ -11331,6 +9378,9 @@ msgstr ""
msgid "cannot specify both -c/--check and -C/--clean"
msgstr "man kan ikke angive både -c/--check og -C/--clean"
+msgid "uncommitted local changes"
+msgstr "udeponerede lokale ændringer"
+
msgid "verify the integrity of the repository"
msgstr "verificer depotets integritet"
@@ -11368,2587 +9418,1401 @@ msgstr ""
"gives INGEN GARANTI; ikke engang for SALGBARHED eller EGNETHED FOR\n"
"NOGET BESTEMT FORMÃ…L.\n"
-#, fuzzy, python-format
-msgid "unknown mode %s"
-msgstr "ukendt sortering: %s"
-
-#, fuzzy, python-format
-msgid "unknown command %s"
-msgstr "hg: ukendt kommando '%s'\n"
-
-#, python-format
-msgid "cannot include %s (%s)"
-msgstr "kan ikke inkludere %s (%s)"
-
-msgid "not found in manifest"
-msgstr "blev ikke fundet i manifest"
-
-#, python-format
-msgid "no such file in rev %s"
-msgstr "ingen sådan fil i revision %s"
-
-msgid "branch name not in UTF-8!"
-msgstr "grennavn er ikke i UTF-8!"
-
-#, python-format
-msgid "%s does not exist!\n"
-msgstr "%s eksisterer ikke!\n"
-
-#, python-format
-msgid ""
-"%s: up to %d MB of RAM may be required to manage this file\n"
-"(use 'hg revert %s' to cancel the pending addition)\n"
+msgid "repository root directory or name of overlay bundle file"
msgstr ""
-#, python-format
-msgid "%s not added: only files and symlinks supported currently\n"
+msgid "DIR"
msgstr ""
-"%s ikke tilføjet: i øjeblikket understøttes kun filer og symbolske lænker\n"
-
-#, python-format
-msgid "%s already tracked!\n"
-msgstr "%s følges allerede!\n"
-
-#, python-format
-msgid "%s not tracked!\n"
-msgstr "%s følges ikke\n"
-#, python-format
-msgid "%s not removed!\n"
-msgstr "%s ikke fjernet!\n"
+msgid "change working directory"
+msgstr "skift arbejdskatalog"
-#, python-format
-msgid "copy failed: %s is not a file or a symbolic link\n"
-msgstr "kopiering fejlede: %s er ikke en fil eller en symbolsk længe\n"
+msgid "do not prompt, assume 'yes' for any required answers"
+msgstr "spørg ikke, antag alle svar er 'ja'"
-#, python-format
-msgid "invalid character in dag description: %s..."
-msgstr "ugyldig tegn i DAG-beskrivelsen: %s..."
+msgid "suppress output"
+msgstr "undertryk output"
-#, python-format
-msgid "expected id %i, got %i"
-msgstr ""
+msgid "enable additional output"
+msgstr "aktiver yderlig output"
-#, python-format
-msgid "parent id %i is larger than current id %i"
-msgstr ""
+msgid "set/override config option (use 'section.name=value')"
+msgstr "angiv eller overskriv tilvalg (brug 'sektion.navn=værdi')"
-#, python-format
-msgid "invalid event type in dag: %s"
+msgid "CONFIG"
msgstr ""
-msgid "nullid"
-msgstr ""
+msgid "enable debugging output"
+msgstr "aktiver fejlsøgningsinformation"
-msgid "working directory state appears damaged!"
-msgstr "arbejdskatalogtilstand virker beskadiget!"
+msgid "start debugger"
+msgstr "start fejlsøgningsprogram"
-#, python-format
-msgid "directory %r already in dirstate"
-msgstr "katalog %r er allerede i dirstate"
+msgid "set the charset encoding"
+msgstr "angiv tegnkodningen"
-#, python-format
-msgid "file %r in dirstate clashes with %r"
+msgid "ENCODE"
msgstr ""
-#, python-format
-msgid "setting %r to other parent only allowed in merges"
+msgid "MODE"
msgstr ""
-msgid "unknown"
-msgstr "ukendt"
-
-msgid "character device"
-msgstr "tegn-specialfil"
-
-msgid "block device"
-msgstr "blok-specialfil"
-
-msgid "fifo"
-msgstr "fifo"
-
-msgid "socket"
-msgstr "sokkel"
-
-msgid "directory"
-msgstr "katalog"
-
-#, python-format
-msgid "unsupported file type (type is %s)"
-msgstr "usupporteret filtype (typen er %s)"
-
-#, python-format
-msgid "push creates new remote branches: %s!"
-msgstr "skub laver nye grene i fjerndepotet: %s!"
-
-msgid "use 'hg push --new-branch' to create new remote branches"
-msgstr "brug 'hg push --new-branch' for at lave nye grene i fjerndepotet"
-
-#, fuzzy, python-format
-msgid "push creates new remote head %s on branch '%s'!"
-msgstr "skub laver nye fjern-hoveder på grenen '%s'!"
+msgid "set the charset encoding mode"
+msgstr "angiv tegnkodningstilstand"
-#, fuzzy, python-format
-msgid "push creates new remote head %s!"
-msgstr "skub laver nye fjern-hoveder!"
+msgid "always print a traceback on exception"
+msgstr "udskriv altid traceback ved fejlsituationer"
-msgid "you should pull and merge or use push -f to force"
-msgstr "du bør hive og sammenføje eller bruge -f for at gennemtvinge"
+msgid "time how long the command takes"
+msgstr "tag tid på hvor lang tid kommandoen tager"
-msgid "did you forget to merge? use push -f to force"
-msgstr "glemte du at sammenføje? brug push -f for at gennemtvinge"
+msgid "print command execution profile"
+msgstr ""
-msgid "note: unsynced remote changes!\n"
-msgstr "bemærk: usynkroniserede ændringer i fjernsystemet!\n"
+msgid "output version information and exit"
+msgstr "udskriv versionsinformation og afslut"
-#, python-format
-msgid "abort: %s\n"
-msgstr "afbrudt: %s\n"
+msgid "display help and exit"
+msgstr "vis hjælp og afslut"
-#, python-format
-msgid "(%s)\n"
-msgstr "(%s)\n"
+msgid "do not perform actions, just print output"
+msgstr "udfør ingen handlinger, udskriv kun outputttet"
-#, python-format
-msgid "hg: parse error at %s: %s\n"
-msgstr "hg: konfigurationsfejl på %s: %s\n"
+msgid "specify ssh command to use"
+msgstr "specificer ssh kommandoen som skal bruges"
-#, python-format
-msgid "hg: parse error: %s\n"
-msgstr "hg: parse fejl: %s\n"
+msgid "specify hg command to run on the remote side"
+msgstr "angiv hg kommando som skal udføres på fjernsystemet"
-msgid "entering debugger - type c to continue starting hg or h for help\n"
+msgid "do not verify server certificate (ignoring web.cacerts config)"
msgstr ""
-#, python-format
-msgid ""
-"hg: command '%s' is ambiguous:\n"
-" %s\n"
+msgid "PATTERN"
msgstr ""
-"hg: kommandoen '%s' is tvetydig:\n"
-" %s\n"
-
-#, python-format
-msgid "timed out waiting for lock held by %s"
-msgstr "tiden løb ud ved vent på lås holdt af %s"
-
-#, python-format
-msgid "lock held by %s"
-msgstr "lås holdt af %s"
-
-#, python-format
-msgid "abort: %s: %s\n"
-msgstr "afbrudt: %s: %s\n"
-
-#, python-format
-msgid "abort: could not lock %s: %s\n"
-msgstr "afbrudt: kunne ikke låse %s: %s\n"
-
-#, python-format
-msgid "hg %s: %s\n"
-msgstr "hg %s: %s\n"
-
-#, python-format
-msgid "hg: %s\n"
-msgstr "hg: %s\n"
-
-#, python-format
-msgid "abort: %s!\n"
-msgstr "afbrudt: %s!\n"
-
-#, python-format
-msgid "abort: %s"
-msgstr "afbrudt: %s"
-
-msgid " empty string\n"
-msgstr " tom streng\n"
-
-msgid "killed!\n"
-msgstr "dræbt!\n"
-
-#, python-format
-msgid "hg: unknown command '%s'\n"
-msgstr "hg: ukendt kommando '%s'\n"
-msgid "(did you forget to compile extensions?)\n"
-msgstr "(glemte du at kompilere udvidelserne?)\n"
+msgid "include names matching the given patterns"
+msgstr "inkluder navne som matcher det givne mønster"
-msgid "(is your Python install correct?)\n"
-msgstr "(er din Python installeret korrekt?)\n"
+msgid "exclude names matching the given patterns"
+msgstr "ekskluder navne som matcher det givne mønster"
-#, python-format
-msgid "abort: error: %s\n"
-msgstr "afbrudt: fejl: %s\n"
+msgid "use text as commit message"
+msgstr "brug tekst som deponeringsbesked"
-msgid "broken pipe\n"
-msgstr "afbrudt pipe\n"
+msgid "read commit message from file"
+msgstr "læs deponeringsbeskeden fra fil"
-msgid "interrupted!\n"
-msgstr "standset!\n"
+msgid "record datecode as commit date"
+msgstr "noter dato som integrationsdato"
-msgid ""
-"\n"
-"broken pipe\n"
+msgid "record the specified user as committer"
msgstr ""
-"\n"
-"afbrudt pipe\n"
-
-msgid "abort: out of memory\n"
-msgstr "afbrudt: løbet tør for hukommelse\n"
-
-msgid "** unknown exception encountered, please report by visiting\n"
-msgstr "** der opstod en ukendt fejl, meld den venligst ved at besøge\n"
-msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
-msgstr "** http://mercurial.selenic.com/wiki/BugTracker\n"
-
-#, python-format
-msgid "** Python %s\n"
-msgstr "** Python %s\n"
+msgid "STYLE"
+msgstr ""
-#, python-format
-msgid "** Mercurial Distributed SCM (version %s)\n"
-msgstr "** Mercurial Distributed SCM (version %s)\n"
+msgid "display using template map file"
+msgstr "vis med skabelon-fil"
-#, python-format
-msgid "** Extensions loaded: %s\n"
-msgstr "** Udvidelser indlæst: %s\n"
+msgid "display with template"
+msgstr "vis med skabelon"
-#, python-format
-msgid "no definition for alias '%s'\n"
-msgstr "ingen definition for alias '%s'\n"
+msgid "do not show merges"
+msgstr "vis ikke sammenføjninger"
-#, python-format
-msgid ""
-"error in definition for alias '%s': %s may only be given on the command "
-"line\n"
+msgid "output diffstat-style summary of changes"
msgstr ""
-#, python-format
-msgid "alias '%s' resolves to unknown command '%s'\n"
-msgstr "alias '%s' oversætter til ukendt kommando '%s'\n"
+msgid "treat all files as text"
+msgstr "behandl alle filer som tekst"
-#, python-format
-msgid "alias '%s' resolves to ambiguous command '%s'\n"
-msgstr "alias '%s' oversætter til tvetydig kommando '%s'\n"
+msgid "omit dates from diff headers"
+msgstr "inkluder ikke datoer i diff-hoveder"
-#, python-format
-msgid "malformed --config option: %r (use --config section.name=value)"
-msgstr "misdannet --config tilvalg: %r (brug --config sektion.navn=værdi)"
+msgid "show which function each change is in"
+msgstr "vis hvilken funktion hver ændring er i"
-#, python-format
-msgid "error getting current working directory: %s"
-msgstr "fejl ved opslag af nuværende arbejdskatalog: %s"
+msgid "produce a diff that undoes the changes"
+msgstr ""
-#, python-format
-msgid "extension '%s' overrides commands: %s\n"
-msgstr "udvidelse '%s' overskriver kommandoer: %s\n"
+msgid "ignore white space when comparing lines"
+msgstr "ignorer blanktegn når linier sammenlignes"
-msgid "option --config may not be abbreviated!"
-msgstr "tilvalget --config må ikke forkortes!"
+msgid "ignore changes in the amount of white space"
+msgstr "ignorer ændringer i mængden af blanktegn"
-msgid "option --cwd may not be abbreviated!"
-msgstr "tilvalget --cwd må ikke forkortes!"
+msgid "ignore changes whose lines are all blank"
+msgstr "ignorer ændringer hvis linier alle er blanke"
-msgid ""
-"Option -R has to be separated from other options (e.g. not -qR) and --"
-"repository may only be abbreviated as --repo!"
-msgstr ""
-"Tilvalget -R skal adskilles fra andre tilvalg (fx ikke -qR) og --repository "
-"må kun forkortes som --repo!"
+msgid "number of lines of context to show"
+msgstr "antal linier kontekst der skal vises"
-#, python-format
-msgid "Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
+msgid "SIMILARITY"
msgstr ""
-#, python-format
-msgid "repository '%s' is not local"
-msgstr "depot '%s' er ikke lokalt"
-
-#, fuzzy, python-format
-msgid "no repository found in '%s' (.hg not found)"
-msgstr "depotet %s blev ikke fundet"
+msgid "guess renamed files by similarity (0<=s<=100)"
+msgstr "gæt omdøbte filer ud fra enshed (0<=s<=100)"
-msgid "warning: --repository ignored\n"
-msgstr "advarsel: --repository ignoreret\n"
+msgid "recurse into subrepositories"
+msgstr "fortsæt rekursivt ind i underdepoter"
-#, python-format
-msgid "unrecognized profiling format '%s' - Ignored\n"
-msgstr "profileringsformat '%s' ikke genkendt - Ignoreret\n"
+msgid "[OPTION]... [FILE]..."
+msgstr "[TILVALG]... [FIL]..."
-msgid ""
-"lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/"
-"misc/lsprof/"
-msgstr ""
-"lsprof er ikke tilgængelig - installer fra http://codespeak.net/svn/user/"
-"arigo/hack/misc/lsprof/"
+msgid "annotate the specified revision"
+msgstr "annotér den angivne revision"
-#, python-format
-msgid "*** failed to import extension %s from %s: %s\n"
-msgstr "*** import af udvidelse %s fra %s fejlede: %s\n"
+msgid "follow copies/renames and list the filename (DEPRECATED)"
+msgstr "følg kopier/omdøbninger og vis filnavnet (FORÆLDET)"
-#, python-format
-msgid "*** failed to import extension %s: %s\n"
-msgstr "*** import af udvidelse %s fejlede: %s\n"
+msgid "don't follow copies and renames"
+msgstr "følg ikke kopier og omdøbninger"
-#, python-format
-msgid "warning: error finding commands in %s\n"
-msgstr "advarsel: fejl ved søgning efter kommandoer i %s\n"
+msgid "list the author (long with -v)"
+msgstr "vis forfatteren (lang med -v)"
-#, python-format
-msgid "couldn't find merge tool %s\n"
-msgstr "kunne ikke finde sammenføjningsværktøj %s\n"
+msgid "list the filename"
+msgstr "vis filnavnet"
-#, python-format
-msgid "tool %s can't handle symlinks\n"
-msgstr "værktøj %s kan ikke håndtere symbolske lænker\n"
+msgid "list the date (short with -q)"
+msgstr "vis datoen (kort med -q)"
-#, python-format
-msgid "tool %s can't handle binary\n"
-msgstr "værktøj %s kan ikke håndtere binære filer\n"
+msgid "list the revision number (default)"
+msgstr "vis revisionsnummeret (standard)"
-#, python-format
-msgid "tool %s requires a GUI\n"
-msgstr "værktøj %s kræver et GUI\n"
+msgid "list the changeset"
+msgstr "vis ændringen"
-#, python-format
-msgid ""
-" no tool found to merge %s\n"
-"keep (l)ocal or take (o)ther?"
-msgstr ""
+msgid "show line number at the first appearance"
+msgstr "vil linienummeret for den første forekomst"
-#, python-format
-msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
-msgstr ""
+msgid "[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FILE..."
+msgstr "[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FIL..."
-#, python-format
-msgid "was merge of '%s' successful (yn)?"
-msgstr ""
+msgid "do not pass files through decoders"
+msgstr "kør ikke filerne igennem dekodere"
-#, python-format
-msgid ""
-" output file %s appears unchanged\n"
-"was merge successful (yn)?"
+msgid "PREFIX"
msgstr ""
-#, python-format
-msgid "merging %s failed!\n"
-msgstr "sammenføjning af %s fejlede!\n"
-
-msgid "unterminated string"
-msgstr ""
+msgid "directory prefix for files in archive"
+msgstr "katalogpræfiks for filerne i arkivet"
-msgid "syntax error"
-msgstr "syntaksfejl"
+msgid "revision to distribute"
+msgstr "revision som skal distribueres"
-msgid "missing argument"
-msgstr "manglende parameter"
+msgid "type of distribution to create"
+msgstr "distributionstype der skal oprettes"
-msgid "can't use a list in this context"
-msgstr "en liste kan ikke bruges i denne konteks"
+msgid "[OPTION]... DEST"
+msgstr "[TILVALG]... MÃ…L"
-msgid ""
-"``modified()``\n"
-" File that is modified according to status."
+msgid "merge with old dirstate parent after backout"
msgstr ""
-#. i18n: "modified" is a keyword
-#, fuzzy
-msgid "modified takes no arguments"
-msgstr "tag tager et eller to argumenter"
-
-msgid ""
-"``added()``\n"
-" File that is added according to status."
+msgid "parent to choose when backing out merge"
msgstr ""
-#. i18n: "added" is a keyword
-#, fuzzy
-msgid "added takes no arguments"
-msgstr "tag tager et eller to argumenter"
-
-msgid ""
-"``removed()``\n"
-" File that is removed according to status."
-msgstr ""
+msgid "revision to backout"
+msgstr "revision som skal bakkes ud"
-#. i18n: "removed" is a keyword
-#, fuzzy
-msgid "removed takes no arguments"
-msgstr "tag tager et eller to argumenter"
+msgid "[OPTION]... [-r] REV"
+msgstr "[TILVALG]... [-r] REV"
-msgid ""
-"``deleted()``\n"
-" File that is deleted according to status."
-msgstr ""
+msgid "reset bisect state"
+msgstr "nulstil tilstand for halvering"
-#. i18n: "deleted" is a keyword
-#, fuzzy
-msgid "deleted takes no arguments"
-msgstr "tag tager et eller to argumenter"
+msgid "mark changeset good"
+msgstr "marker ændring som god"
-msgid ""
-"``unknown()``\n"
-" File that is unknown according to status. These files will only be\n"
-" considered if this predicate is used."
-msgstr ""
+msgid "mark changeset bad"
+msgstr "marker ændring som dårlig"
-#. i18n: "unknown" is a keyword
-#, fuzzy
-msgid "unknown takes no arguments"
-msgstr "tag tager et eller to argumenter"
+msgid "skip testing changeset"
+msgstr "spring testen af denne ændring over"
-msgid ""
-"``ignored()``\n"
-" File that is ignored according to status. These files will only be\n"
-" considered if this predicate is used."
-msgstr ""
+msgid "extend the bisect range"
+msgstr "udvid halveringsområdet"
-#. i18n: "ignored" is a keyword
-#, fuzzy
-msgid "ignored takes no arguments"
-msgstr "tag tager et eller to argumenter"
+msgid "use command to check changeset state"
+msgstr "brug kommando for at kontrollere tilstanden af ændringen"
-msgid ""
-"``clean()``\n"
-" File that is clean according to status."
-msgstr ""
+msgid "do not update to target"
+msgstr "undlad at opdatere til målet"
-#. i18n: "clean" is a keyword
-#, fuzzy
-msgid "clean takes no arguments"
-msgstr "tag tager et eller to argumenter"
+msgid "[-gbsr] [-U] [-c CMD] [REV]"
+msgstr "[-gbsr] [-U] [-c KOMMANDO] [REV]"
-#, python-format
-msgid "not a function: %s"
-msgstr "ikke en funktion: %s"
+msgid "force"
+msgstr "gennemtving"
-msgid ""
-"``binary()``\n"
-" File that appears to be binary (contains NUL bytes)."
-msgstr ""
+msgid "delete a given bookmark"
+msgstr "slet et givent bogmærke"
-#. i18n: "binary" is a keyword
-#, fuzzy
-msgid "binary takes no arguments"
-msgstr "bookmark tager et eller to argumenter"
+msgid "rename a given bookmark"
+msgstr "omdøb et givet bogmærke"
-msgid ""
-"``exec()``\n"
-" File that is marked as executable."
-msgstr ""
+msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
+msgstr "hg bookmarks [-f] [-d] [-m NAVN] [-r REV] [NAVN]"
-#. i18n: "exec" is a keyword
-#, fuzzy
-msgid "exec takes no arguments"
-msgstr "tag tager et eller to argumenter"
+msgid "set branch name even if it shadows an existing branch"
+msgstr "sæt grennavnet selv hvis det overskygger en eksisterende gren"
-msgid ""
-"``symlink()``\n"
-" File that is marked as a symlink."
-msgstr ""
+msgid "reset branch name to parent branch name"
+msgstr "nulstil grennavnet til forældre-grennavnet"
-#. i18n: "symlink" is a keyword
-#, fuzzy
-msgid "symlink takes no arguments"
-msgstr "%s.%s symbolsk lænke er ikke noget mål"
+msgid "[-fC] [NAME]"
+msgstr "[-fC] [NAVN]"
-msgid ""
-"``resolved()``\n"
-" File that is marked resolved according to the resolve state."
-msgstr ""
+msgid "show only branches that have unmerged heads"
+msgstr "vil kun grene som har usammenføjne hoveder"
-#. i18n: "resolved" is a keyword
-#, fuzzy
-msgid "resolved takes no arguments"
-msgstr "tag tager et eller to argumenter"
+msgid "show normal and closed branches"
+msgstr "vis normale og lukkede grene"
-msgid ""
-"``unresolved()``\n"
-" File that is marked unresolved according to the resolve state."
-msgstr ""
+msgid "[-ac]"
+msgstr "[-ac]"
-#. i18n: "unresolved" is a keyword
-#, fuzzy
-msgid "unresolved takes no arguments"
-msgstr "tag tager et eller to argumenter"
+msgid "run even when the destination is unrelated"
+msgstr "kør selv hvis fjerndepotet er urelateret"
-msgid ""
-"``hgignore()``\n"
-" File that matches the active .hgignore pattern."
+msgid "a changeset intended to be added to the destination"
msgstr ""
-#, fuzzy
-msgid "hgignore takes no arguments"
-msgstr "tag tager et eller to argumenter"
+msgid "a specific branch you would like to bundle"
+msgstr "en bestemt gren som du gerne vil pakke sammen"
-msgid ""
-"``grep(regex)``\n"
-" File contains the given regular expression."
+msgid "a base changeset assumed to be available at the destination"
msgstr ""
-#, fuzzy
-msgid "grep requires a pattern"
-msgstr "rev kræver et tal"
-
-#, fuzzy, python-format
-msgid "couldn't parse size: %s"
-msgstr "kan ikke parse cat-log af %s"
-
-msgid ""
-"``size(expression)``\n"
-" File size matches the given expression. Examples:"
+msgid "bundle all changesets in the repository"
msgstr ""
-msgid ""
-" - 1k (files from 1024 to 2047 bytes)\n"
-" - < 20k (files less than 20480 bytes)\n"
-" - >= .5MB (files at least 524288 bytes)\n"
-" - 4k - 1MB (files from 4096 bytes to 1048576 bytes)"
+msgid "bundle compression type to use"
msgstr ""
-#. i18n: "size" is a keyword
-#, fuzzy
-msgid "size requires an expression"
-msgstr "id kræver en streng"
+msgid "[-f] [-t TYPE] [-a] [-r REV]... [--base REV]... FILE [DEST]"
+msgstr "[-f] [-t TYPE] [-a] [-r REV]... [--base REV]... FIL [MÃ…L]"
-msgid ""
-"``encoding(name)``\n"
-" File can be successfully decoded with the given character\n"
-" encoding. May not be useful for encodings other than ASCII and\n"
-" UTF-8."
+msgid "print output to file with formatted name"
msgstr ""
-#. i18n: "encoding" is a keyword
-#, fuzzy
-msgid "encoding requires an encoding name"
-msgstr "qfold kræver navnet på mindst én rettelse"
-
-#, fuzzy, python-format
-msgid "unknown encoding '%s'"
-msgstr "ukendt funktion '%s'"
+msgid "print the given revision"
+msgstr "udskriv den angivne revision"
-msgid ""
-"``copied()``\n"
-" File that is recorded as being copied."
+msgid "apply any matching decode filter"
msgstr ""
-#. i18n: "copied" is a keyword
-#, fuzzy
-msgid "copied takes no arguments"
-msgstr "tag tager et eller to argumenter"
-
-#, fuzzy
-msgid "invalid token"
-msgstr "ugyldig mønster"
-
-msgid "starting revisions are not directly related"
-msgstr "startrevisionerne er ikke direkte relaterede"
+msgid "[OPTION]... FILE..."
+msgstr "[TILVALG]... FIL..."
-#, python-format
-msgid "inconsistent state, %s:%s is good and bad"
-msgstr "inkonsistent tilstant, %s:%s er god og dårlig"
+msgid "the clone will include an empty working copy (only a repository)"
+msgstr "klonen vil indeholde et tomt arbejdsbibliotek (kun et depot)"
-#, python-format
-msgid "unknown bisect kind %s"
-msgstr "ukendt halverings-type %s"
+msgid "revision, tag or branch to check out"
+msgstr "revision, mærkat eller gren som skal hentes ud"
-msgid "invalid bisect state"
-msgstr "ugyldig tilstand for halvering"
+msgid "include the specified changeset"
+msgstr "inkluder den angivne revision"
-#. i18n: bisect changeset status
-msgid "good"
-msgstr ""
+msgid "clone only the specified branch"
+msgstr "klon kun den angivne gren"
-#. i18n: bisect changeset status
-msgid "bad"
-msgstr ""
+msgid "[OPTION]... SOURCE [DEST]"
+msgstr "[TILVALG]... KILDE [MÃ…L]"
-#. i18n: bisect changeset status
-msgid "skipped"
-msgstr ""
+msgid "mark new/missing files as added/removed before committing"
+msgstr "marker nye/manglende filer som tilføjede/fjernede før deponering"
-#. i18n: bisect changeset status
-msgid "untested"
-msgstr ""
+msgid "mark a branch as closed, hiding it from the branch list"
+msgstr "marker en gren som lukket, skuler den fra listen af grene"
-#. i18n: bisect changeset status
-msgid "good (implicit)"
+msgid "record a copy that has already occurred"
msgstr ""
-#. i18n: bisect changeset status
-msgid "bad (implicit)"
+msgid "forcibly copy over an existing managed file"
msgstr ""
-msgid "disabled extensions:"
-msgstr "deaktiverede udvidelser:"
-
-msgid "Configuration Files"
-msgstr "Konfigurationsfiler"
-
-msgid "Date Formats"
-msgstr "Datoformater"
-
-msgid "File Name Patterns"
-msgstr "Mønstre for filnavne"
-
-msgid "Environment Variables"
-msgstr "Miljøvariable"
-
-msgid "Specifying Single Revisions"
-msgstr "Angivning af en enkelt revision"
+msgid "[OPTION]... [SOURCE]... DEST"
+msgstr "[TILVALG]... [KILDE]... MÃ…L"
-msgid "Specifying Multiple Revisions"
-msgstr "Angivning af flere revisioner"
+msgid "[INDEX] REV1 REV2"
+msgstr "[INDEKS] REV1 REV2"
-msgid "Specifying Revision Sets"
-msgstr "Angivning af af mængder af revisioner"
+msgid "add single file mergeable changes"
+msgstr ""
-#, fuzzy
-msgid "Specifying File Sets"
-msgstr "Angivning af af mængder af revisioner"
+msgid "add single file all revs append to"
+msgstr ""
-msgid "Diff Formats"
+msgid "add single file all revs overwrite"
msgstr ""
-msgid "Merge Tools"
+msgid "add new file at each rev"
msgstr ""
-msgid "Template Usage"
-msgstr "Brug af skabeloner"
+msgid "[OPTION]... TEXT"
+msgstr "[TILVALG]... TEKST"
-msgid "URL Paths"
-msgstr "URL-stier"
+msgid "show all details"
+msgstr "vis alle detaljer"
-msgid "Using additional features"
-msgstr "Brug af yderligere funktioner"
+msgid "[COMMAND]"
+msgstr "[KOMMANDO]"
-msgid "Subrepositories"
-msgstr "Underdepoter"
+msgid "show the command options"
+msgstr "vis kommando-flag"
-msgid "Configuring hgweb"
-msgstr "Konfigurering af hgweb"
+msgid "[-o] CMD"
+msgstr "[-o] KOMMANDO"
-msgid "Glossary"
+msgid "use tags as labels"
msgstr ""
-#, fuzzy
-msgid "syntax for Mercurial ignore files"
-msgstr "%s: ej et Mercurial bundt"
-
-msgid ""
-"The Mercurial system uses a set of configuration files to control\n"
-"aspects of its behavior."
+msgid "annotate with branch names"
msgstr ""
-#, fuzzy
-msgid ""
-"The configuration files use a simple ini-file format. A configuration\n"
-"file consists of sections, led by a ``[section]`` header and followed\n"
-"by ``name = value`` entries::"
+msgid "use dots for runs"
msgstr ""
-"Konfigurationsfilerne til Mercurial bruger et simpelt ini-filformat.\n"
-"En konfigurationsfil består af sektioner, som startes af et\n"
-"``[sektion]`` hovede og efterfølges af ``navn = værdi`` indgange::"
-msgid ""
-" [ui]\n"
-" username = Firstname Lastname <firstname.lastname@example.net>\n"
-" verbose = True"
+msgid "separate elements by spaces"
msgstr ""
-" [ui]\n"
-" username = Fornavn Efternavn <fornavn.efternavn@example.net>\n"
-" verbose = True"
-#, fuzzy
-msgid ""
-"The above entries will be referred to as ``ui.username`` and\n"
-"``ui.verbose``, respectively. See the Syntax section below."
-msgstr ""
-"Indgangene ovenfor vil blive refereret til som henholdsvis\n"
-"``ui.username`` og ``ui.verbose``. Se venligst hgrc manualsiden for en\n"
-"fuld beskrivelse af de mulige konfigurationsværdier:"
+msgid "[OPTION]... [FILE [REV]...]"
+msgstr "[TILVALG]... [FIL [REV]...]"
-msgid ""
-"Files\n"
-"-----"
-msgstr ""
+msgid "try extended date formats"
+msgstr "prøv udvidede datoformater"
-msgid ""
-"Mercurial reads configuration data from several files, if they exist.\n"
-"These files do not exist by default and you will have to create the\n"
-"appropriate configuration files yourself: global configuration like\n"
-"the username setting is typically put into\n"
-"``%USERPROFILE%\\mercurial.ini`` or ``$HOME/.hgrc`` and local\n"
-"configuration is put into the per-repository ``<repo>/.hg/hgrc`` file."
-msgstr ""
+msgid "[-e] DATE [RANGE]"
+msgstr "[-e] DATO [INTERVAL]"
-msgid ""
-"The names of these files depend on the system on which Mercurial is\n"
-"installed. ``*.rc`` files from a single directory are read in\n"
-"alphabetical order, later ones overriding earlier ones. Where multiple\n"
-"paths are given below, settings from earlier paths override later\n"
-"ones."
-msgstr ""
+msgid "FILE REV"
+msgstr "FIL REV"
-msgid "| (Unix, Windows) ``<repo>/.hg/hgrc``"
-msgstr ""
+msgid "[PATH]"
+msgstr "[STI]"
-msgid ""
-" Per-repository configuration options that only apply in a\n"
-" particular repository. This file is not version-controlled, and\n"
-" will not get transferred during a \"clone\" operation. Options in\n"
-" this file override options in all other configuration files. On\n"
-" Unix, most of this file will be ignored if it doesn't belong to a\n"
-" trusted user or to a trusted group. See the documentation for the\n"
-" ``[trusted]`` section below for more details."
+msgid "id of head node"
msgstr ""
-msgid ""
-"| (Unix) ``$HOME/.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
-"| (Windows) ``%HOME%\\.hgrc``\n"
-"| (Windows) ``%HOME%\\Mercurial.ini``"
-msgstr ""
+msgid "id of common node"
+msgstr "id på fælles knude"
-msgid ""
-" Per-user configuration file(s), for the user running Mercurial. On\n"
-" Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these\n"
-" files apply to all Mercurial commands executed by this user in any\n"
-" directory. Options in these files override per-system and per-"
-"installation\n"
-" options."
+msgid "REPO FILE [-H|-C ID]..."
msgstr ""
-msgid ""
-"| (Unix) ``/etc/mercurial/hgrc``\n"
-"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
+msgid "revlog format"
msgstr ""
-msgid ""
-" Per-system configuration files, for the system on which Mercurial\n"
-" is running. Options in these files apply to all Mercurial commands\n"
-" executed by any user in any directory. Options in these files\n"
-" override per-installation options."
+msgid "REPO ID..."
msgstr ""
-#, fuzzy
-msgid ""
-"| (Unix) ``<install-root>/etc/mercurial/hgrc``\n"
-"| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
+msgid "REPO NAMESPACE [KEY OLD NEW]"
msgstr ""
-"- ``<repo>/.hg/hgrc``\n"
-"- ``$HOME/.hgrc``\n"
-"- ``/etc/mercurial/hgrc``\n"
-"- ``/etc/mercurial/hgrc.d/*.rc``\n"
-"- ``<install-root>/etc/mercurial/hgrc``\n"
-"- ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
-msgid ""
-" Per-installation configuration files, searched for in the\n"
-" directory where Mercurial is installed. ``<install-root>`` is the\n"
-" parent directory of the **hg** executable (or symlink) being run. For\n"
-" example, if installed in ``/shared/tools/bin/hg``, Mercurial will look\n"
-" in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply\n"
-" to all Mercurial commands executed by any user in any directory."
-msgstr ""
+msgid "revision to rebuild to"
+msgstr "revision til hvilken der skal gendannes til"
-msgid ""
-"| (Windows) ``<install-dir>\\Mercurial.ini`` **or**\n"
-"| (Windows) ``<install-dir>\\hgrc.d\\*.rc`` **or**\n"
-"| (Windows) ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``"
-msgstr ""
+msgid "[-r REV] [REV]"
+msgstr "[-r REV] [REV]"
-msgid ""
-" Per-installation/system configuration files, for the system on\n"
-" which Mercurial is running. Options in these files apply to all\n"
-" Mercurial commands executed by any user in any directory. Registry\n"
-" keys contain PATH-like strings, every part of which must reference\n"
-" a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will\n"
-" be read. Mercurial checks each of these locations in the specified\n"
-" order until one or more configuration files are detected. If the\n"
-" pywin32 extensions are not installed, Mercurial will only look for\n"
-" site-wide configuration in ``C:\\Mercurial\\Mercurial.ini``."
-msgstr ""
+msgid "revision to debug"
+msgstr "revision der skal fejlsøges"
-msgid ""
-"Syntax\n"
-"------"
-msgstr ""
+msgid "[-r REV] FILE"
+msgstr "[-r REV] FIL"
-#, fuzzy
-msgid ""
-"A configuration file consists of sections, led by a ``[section]`` header\n"
-"and followed by ``name = value`` entries (sometimes called\n"
-"``configuration keys``)::"
-msgstr ""
-"Konfigurationsfilerne til Mercurial bruger et simpelt ini-filformat.\n"
-"En konfigurationsfil består af sektioner, som startes af et\n"
-"``[sektion]`` hovede og efterfølges af ``navn = værdi`` indgange::"
+msgid "REV1 [REV2]"
+msgstr "REV1 [REV2]"
-msgid ""
-" [spam]\n"
-" eggs=ham\n"
-" green=\n"
-" eggs"
-msgstr ""
+msgid "do not display the saved mtime"
+msgstr "vis ikke den gemte mtime"
-msgid ""
-"Each line contains one entry. If the lines that follow are indented,\n"
-"they are treated as continuations of that entry. Leading whitespace is\n"
-"removed from values. Empty lines are skipped. Lines beginning with\n"
-"``#`` or ``;`` are ignored and may be used to provide comments."
-msgstr ""
+msgid "sort by saved mtime"
+msgstr "sorter efter den gemte mtime"
-msgid ""
-"Configuration keys can be set multiple times, in which case Mercurial\n"
-"will use the value that was configured last. As an example::"
-msgstr ""
+msgid "[OPTION]..."
+msgstr "[TILVALG]..."
-msgid ""
-" [spam]\n"
-" eggs=large\n"
-" ham=serrano\n"
-" eggs=small"
-msgstr ""
+msgid "revision to check"
+msgstr "revision som skal undersøges"
-msgid "This would set the configuration key named ``eggs`` to ``small``."
-msgstr ""
+msgid "REPO [OPTIONS]... [ONE [TWO]]"
+msgstr "DEPOT [TILVALG]... [EN [TO]]"
-msgid ""
-"It is also possible to define a section multiple times. A section can\n"
-"be redefined on the same and/or on different configuration files. For\n"
-"example::"
-msgstr ""
+msgid "[OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]..."
+msgstr "[TILVALG]... ([-c REV] | [-r REV1 [-r REV2]]) [FIL]..."
-msgid ""
-" [foo]\n"
-" eggs=large\n"
-" ham=serrano\n"
-" eggs=small"
-msgstr ""
+msgid "diff against the second parent"
+msgstr "find forskelle i forhold til den anden forældre"
-msgid ""
-" [bar]\n"
-" eggs=ham\n"
-" green=\n"
-" eggs"
-msgstr ""
+msgid "revisions to export"
+msgstr "revision der skal eksporteres"
-msgid ""
-" [foo]\n"
-" ham=prosciutto\n"
-" eggs=medium\n"
-" bread=toasted"
-msgstr ""
+msgid "[OPTION]... [-o OUTFILESPEC] REV..."
+msgstr "[TILVALG]... [-o UDFILSPECIFIKATION] REV..."
-msgid ""
-"This would set the ``eggs``, ``ham``, and ``bread`` configuration keys\n"
-"of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``,\n"
-"respectively. As you can see there only thing that matters is the last\n"
-"value that was set for each of the configuration keys."
-msgstr ""
+msgid "end fields with NUL"
+msgstr "afslut felter med NUL"
-msgid ""
-"If a configuration key is set multiple times in different\n"
-"configuration files the final value will depend on the order in which\n"
-"the different configuration files are read, with settings from earlier\n"
-"paths overriding later ones as described on the ``Files`` section\n"
-"above."
-msgstr ""
+msgid "print all revisions that match"
+msgstr "udskriv alle revisioner som matcher"
-msgid ""
-"A line of the form ``%include file`` will include ``file`` into the\n"
-"current configuration file. The inclusion is recursive, which means\n"
-"that included files can include other files. Filenames are relative to\n"
-"the configuration file in which the ``%include`` directive is found.\n"
-"Environment variables and ``~user`` constructs are expanded in\n"
-"``file``. This lets you do something like::"
+msgid "follow changeset history, or file history across copies and renames"
msgstr ""
-msgid " %include ~/.hgrc.d/$HOST.rc"
+msgid "ignore case when matching"
msgstr ""
-msgid "to include a different configuration file on each computer you use."
-msgstr ""
+msgid "print only filenames and revisions that match"
+msgstr "udskriv kun filnavne og revisioner som matcher"
-msgid ""
-"A line with ``%unset name`` will remove ``name`` from the current\n"
-"section, if it has been set previously."
-msgstr ""
+msgid "print matching line numbers"
+msgstr "udskriv matchende linienumre"
-msgid ""
-"The values are either free-form text strings, lists of text strings,\n"
-"or Boolean values. Boolean values can be set to true using any of \"1\",\n"
-"\"yes\", \"true\", or \"on\" and to false using \"0\", \"no\", \"false\", or "
-"\"off\"\n"
-"(all case insensitive)."
-msgstr ""
+msgid "only search files changed within revision range"
+msgstr "søg kun i filer som er ændret i det angivne interval"
-msgid ""
-"List values are separated by whitespace or comma, except when values are\n"
-"placed in double quotation marks::"
-msgstr ""
+msgid "[OPTION]... PATTERN [FILE]..."
+msgstr "[TILVALG]... MØNSTER [FIL]..."
-msgid " allow_read = \"John Doe, PhD\", brian, betty"
-msgstr ""
+msgid "show only heads which are descendants of STARTREV"
+msgstr "vis kun hoveder som er efterkommere af STARTREV"
-msgid ""
-"Quotation marks can be escaped by prefixing them with a backslash. Only\n"
-"quotation marks at the beginning of a word is counted as a quotation\n"
-"(e.g., ``foo\"bar baz`` is the list of ``foo\"bar`` and ``baz``)."
-msgstr ""
+msgid "STARTREV"
+msgstr "STARTREV"
-msgid ""
-"Sections\n"
-"--------"
+msgid "show topological heads only"
msgstr ""
-msgid ""
-"This section describes the different sections that may appear in a\n"
-"Mercurial configuration file, the purpose of each section, its possible\n"
-"keys, and their possible values."
-msgstr ""
+msgid "show active branchheads only (DEPRECATED)"
+msgstr "vis kun aktive gren-hoveder (FORÆLDET)"
-msgid ""
-"``alias``\n"
-"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "show normal and closed branch heads"
+msgstr "vis normale og lukkede grenhoveder"
-msgid ""
-"Defines command aliases.\n"
-"Aliases allow you to define your own commands in terms of other\n"
-"commands (or aliases), optionally including arguments. Positional\n"
-"arguments in the form of ``$1``, ``$2``, etc in the alias definition\n"
-"are expanded by Mercurial before execution. Positional arguments not\n"
-"already used by ``$N`` in the definition are put at the end of the\n"
-"command to be executed."
-msgstr ""
+msgid "[-ac] [-r STARTREV] [REV]..."
+msgstr "[-ac] [-r STARTREV] [REV]..."
-msgid "Alias definitions consist of lines of the form::"
-msgstr ""
+msgid "[TOPIC]"
+msgstr "[EMNE]"
-msgid " <alias> = <command> [<argument>]..."
-msgstr ""
+msgid "identify the specified revision"
+msgstr "identificer den angivne revision"
-msgid "For example, this definition::"
-msgstr ""
+msgid "show local revision number"
+msgstr "vis lokalt revisionsnummer"
-msgid " latest = log --limit 5"
-msgstr ""
+msgid "show global revision id"
+msgstr "vis globalt revisionsnummer"
-msgid ""
-"creates a new command ``latest`` that shows only the five most recent\n"
-"changesets. You can define subsequent aliases using earlier ones::"
-msgstr ""
+msgid "show branch"
+msgstr "vis gren"
-msgid " stable5 = latest -b stable"
-msgstr ""
+msgid "show tags"
+msgstr "vis mærkater"
-msgid ""
-".. note:: It is possible to create aliases with the same names as\n"
-" existing commands, which will then override the original\n"
-" definitions. This is almost always a bad idea!"
-msgstr ""
+msgid "show bookmarks"
+msgstr "vis bogmærker"
+
+msgid "[-nibtB] [-r REV] [SOURCE]"
+msgstr "[-nibtB] [-r REV] [KILDE]"
msgid ""
-"An alias can start with an exclamation point (``!``) to make it a\n"
-"shell alias. A shell alias is executed with the shell and will let you\n"
-"run arbitrary commands. As an example, ::"
+"directory strip option for patch. This has the same meaning as the "
+"corresponding patch option"
msgstr ""
-msgid " echo = !echo"
-msgstr ""
+msgid "PATH"
+msgstr "STI"
-msgid ""
-"will let you do ``hg echo foo`` to have ``foo`` printed in your\n"
-"terminal. A better example might be::"
+msgid "base path"
msgstr ""
-msgid " purge = !$HG status --no-status --unknown -0 | xargs -0 rm"
-msgstr ""
+msgid "skip check for outstanding uncommitted changes"
+msgstr "spring kontrollen for udeponerede ændringer over"
-msgid ""
-"which will make ``hg purge`` delete all unknown files in the\n"
-"repository in the same manner as the purge extension."
-msgstr ""
+msgid "don't commit, just update the working directory"
+msgstr "deponer ikke, opdater blot arbejdskataloget"
-msgid ""
-"Shell aliases are executed in an environment where ``$HG`` expand to\n"
-"the path of the Mercurial that was used to execute the alias. This is\n"
-"useful when you want to call further Mercurial commands in a shell\n"
-"alias, as was done above for the purge alias. In addition,\n"
-"``$HG_ARGS`` expand to the arguments given to Mercurial. In the ``hg\n"
-"echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``."
-msgstr ""
+msgid "apply patch to the nodes from which it was generated"
+msgstr "anvend rettelse på den knude hvorfra den var genereret"
-msgid ""
-".. note:: Some global configuration options such as ``-R`` are\n"
-" processed before shell aliases and will thus not be passed to\n"
-" aliases."
+msgid "use any branch information in patch (implied by --exact)"
msgstr ""
-msgid ""
-"``auth``\n"
-"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "[OPTION]... PATCH..."
+msgstr "[TILVALG]... RETTELSE..."
-msgid ""
-"Authentication credentials for HTTP authentication. This section\n"
-"allows you to store usernames and passwords for use when logging\n"
-"*into* HTTP servers. See the ``[web]`` configuration section if\n"
-"you want to configure *who* can login to your HTTP server."
-msgstr ""
+msgid "run even if remote repository is unrelated"
+msgstr "kør selv hvis fjerndepotet er urelateret"
-msgid "Each line has the following format::"
-msgstr ""
+msgid "show newest record first"
+msgstr "vis nyeste postering først"
-msgid " <name>.<argument> = <value>"
-msgstr ""
+msgid "file to store the bundles into"
+msgstr "fil hvor bundterne skal gemmes"
-msgid ""
-"where ``<name>`` is used to group arguments into authentication\n"
-"entries. Example::"
+msgid "a remote changeset intended to be added"
msgstr ""
-msgid ""
-" foo.prefix = hg.intevation.org/mercurial\n"
-" foo.username = foo\n"
-" foo.password = bar\n"
-" foo.schemes = http https"
-msgstr ""
+msgid "compare bookmarks"
+msgstr "sammenlign bogmærker"
-msgid ""
-" bar.prefix = secure.example.org\n"
-" bar.key = path/to/file.key\n"
-" bar.cert = path/to/file.cert\n"
-" bar.schemes = https"
-msgstr ""
+msgid "a specific branch you would like to pull"
+msgstr "en bestemt gren du gerne vil hive ned"
-#, fuzzy
-msgid "Supported arguments:"
-msgstr "inkompatible argumenter"
+msgid "[-p] [-n] [-M] [-f] [-r REV]... [--bundle FILENAME] [SOURCE]"
+msgstr "[-p] [-n] [-M] [-f] [-r REV]... [--bundle FILNAVN] [KILDE]"
-msgid ""
-"``prefix``\n"
-" Either ``*`` or a URI prefix with or without the scheme part.\n"
-" The authentication entry with the longest matching prefix is used\n"
-" (where ``*`` matches everything and counts as a match of length\n"
-" 1). If the prefix doesn't include a scheme, the match is performed\n"
-" against the URI with its scheme stripped as well, and the schemes\n"
-" argument, q.v., is then subsequently consulted."
-msgstr ""
+msgid "[-e CMD] [--remotecmd CMD] [DEST]"
+msgstr "[-e KOMMANDO] [--remotecmd KOMMANDO] [MÃ…L]"
-msgid ""
-"``username``\n"
-" Optional. Username to authenticate with. If not given, and the\n"
-" remote site requires basic or digest authentication, the user will\n"
-" be prompted for it. Environment variables are expanded in the\n"
-" username letting you do ``foo.username = $USER``. If the URI\n"
-" includes a username, only ``[auth]`` entries with a matching\n"
-" username or without a username will be considered."
+msgid "search the repository as it is in REV"
msgstr ""
-msgid ""
-"``password``\n"
-" Optional. Password to authenticate with. If not given, and the\n"
-" remote site requires basic or digest authentication, the user\n"
-" will be prompted for it."
-msgstr ""
+msgid "end filenames with NUL, for use with xargs"
+msgstr "afslut filnavne med NUL, til brug med xargs"
-msgid ""
-"``key``\n"
-" Optional. PEM encoded client certificate key file. Environment\n"
-" variables are expanded in the filename."
-msgstr ""
+msgid "print complete paths from the filesystem root"
+msgstr "udskriv fulde stier fra filsystemets rod"
-msgid ""
-"``cert``\n"
-" Optional. PEM encoded client certificate chain file. Environment\n"
-" variables are expanded in the filename."
-msgstr ""
+msgid "[OPTION]... [PATTERN]..."
+msgstr "[TILVALG]... [MØNSTER]..."
-msgid ""
-"``schemes``\n"
-" Optional. Space separated list of URI schemes to use this\n"
-" authentication entry with. Only used if the prefix doesn't include\n"
-" a scheme. Supported schemes are http and https. They will match\n"
-" static-http and static-https respectively, as well.\n"
-" Default: https."
-msgstr ""
+msgid "only follow the first parent of merge changesets"
+msgstr "følg kun den første forælder for sammenføjningsændringer"
-msgid ""
-"If no suitable authentication entry is found, the user is prompted\n"
-"for credentials as usual if required by the remote."
-msgstr ""
+msgid "show revisions matching date spec"
+msgstr "vis revisioner som matcher datoangivelsen"
-msgid ""
-"\n"
-"``decode/encode``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "show copied files"
+msgstr "vis kopierede filer"
-msgid ""
-"Filters for transforming files on checkout/checkin. This would\n"
-"typically be used for newline processing or other\n"
-"localization/canonicalization of files."
-msgstr ""
+msgid "do case-insensitive search for a given text"
+msgstr "lav søgning efter nøgleord uden forskel på små/store bogstaver"
-msgid ""
-"Filters consist of a filter pattern followed by a filter command.\n"
-"Filter patterns are globs by default, rooted at the repository root.\n"
-"For example, to match any file ending in ``.txt`` in the root\n"
-"directory only, use the pattern ``*.txt``. To match any file ending\n"
-"in ``.c`` anywhere in the repository, use the pattern ``**.c``.\n"
-"For each file only the first matching filter applies."
-msgstr ""
+msgid "include revisions where files were removed"
+msgstr "inkluder revisioner hvor filer blev slettet"
-msgid ""
-"The filter command can start with a specifier, either ``pipe:`` or\n"
-"``tempfile:``. If no specifier is given, ``pipe:`` is used by default."
-msgstr ""
+msgid "show only merges"
+msgstr "vis kun sammenføjninger"
-msgid ""
-"A ``pipe:`` command must accept data on stdin and return the transformed\n"
-"data on stdout."
-msgstr ""
+msgid "revisions committed by user"
+msgstr "revisioner deponeret af bruger"
-#, fuzzy
-msgid "Pipe example::"
-msgstr "Fillisteeksempler::"
+msgid "show only changesets within the given named branch (DEPRECATED)"
+msgstr "vis kun ændringer på den angivne navngivne gren (FORÆLDET)"
-msgid ""
-" [encode]\n"
-" # uncompress gzip files on checkin to improve delta compression\n"
-" # note: not necessarily a good idea, just an example\n"
-" *.gz = pipe: gunzip"
-msgstr ""
+msgid "show changesets within the given named branch"
+msgstr "vis ændringer på den angivne navngivne gren"
-msgid ""
-" [decode]\n"
-" # recompress gzip files when writing them to the working dir (we\n"
-" # can safely omit \"pipe:\", because it's the default)\n"
-" *.gz = gzip"
-msgstr ""
+msgid "do not display revision or any of its ancestors"
+msgstr "vis ikke revision eller nogen af den forfædre"
-msgid ""
-"A ``tempfile:`` command is a template. The string ``INFILE`` is replaced\n"
-"with the name of a temporary file that contains the data to be\n"
-"filtered by the command. The string ``OUTFILE`` is replaced with the name\n"
-"of an empty temporary file, where the filtered data must be written by\n"
-"the command."
-msgstr ""
+msgid "[OPTION]... [FILE]"
+msgstr "[TILVALG]... [FIL]"
-msgid ""
-".. note:: The tempfile mechanism is recommended for Windows systems,\n"
-" where the standard shell I/O redirection operators often have\n"
-" strange effects and may corrupt the contents of your files."
-msgstr ""
+msgid "revision to display"
+msgstr "revision der skal vises"
-msgid ""
-"This filter mechanism is used internally by the ``eol`` extension to\n"
-"translate line ending characters between Windows (CRLF) and Unix (LF)\n"
-"format. We suggest you use the ``eol`` extension for convenience."
-msgstr ""
+msgid "[-r REV]"
+msgstr "[-r REV]"
-msgid ""
-"\n"
-"``defaults``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\""
+msgid "force a merge with outstanding changes"
msgstr ""
-msgid "(defaults are deprecated. Don't use them. Use aliases instead)"
-msgstr ""
+msgid "revision to merge"
+msgstr "revision der skal sammenføjes"
-msgid ""
-"Use the ``[defaults]`` section to define command defaults, i.e. the\n"
-"default options/arguments to pass to the specified commands."
+msgid "review revisions to merge (no merge is performed)"
msgstr ""
-msgid ""
-"The following example makes :hg:`log` run in verbose mode, and\n"
-":hg:`status` show only the modified files, by default::"
-msgstr ""
+msgid "[-P] [-f] [[-r] REV]"
+msgstr "[-P] [-f] [[-r] REV]"
-msgid ""
-" [defaults]\n"
-" log = -v\n"
-" status = -m"
+msgid "a changeset intended to be included in the destination"
msgstr ""
-msgid ""
-"The actual commands, instead of their aliases, must be used when\n"
-"defining command defaults. The command defaults will also be applied\n"
-"to the aliases of the commands defined."
-msgstr ""
+msgid "a specific branch you would like to push"
+msgstr "en bestemt gren du gerne vil skubbe ud"
-msgid ""
-"\n"
-"``diff``\n"
-"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "[-M] [-p] [-n] [-f] [-r REV]... [DEST]"
+msgstr "[-M] [-p] [-n] [-f] [-r REV]... [MÃ…L]"
-msgid ""
-"Settings used when displaying diffs. Everything except for ``unified`` is a\n"
-"Boolean and defaults to False."
-msgstr ""
+msgid "show parents of the specified revision"
+msgstr "vis forældre for den angivne revision"
-#, fuzzy
-msgid ""
-"``git``\n"
-" Use git extended diff format."
-msgstr "brug git udvidet diff-format"
+msgid "[-r REV] [FILE]"
+msgstr "[-r REV] [FIL]"
-msgid ""
-"``nodates``\n"
-" Don't include dates in diff headers."
-msgstr ""
+msgid "[NAME]"
+msgstr "[NAVN]"
-#, fuzzy
-msgid ""
-"``showfunc``\n"
-" Show which function each change is in."
-msgstr "vis hvilken funktion hver ændring er i"
+msgid "update to new branch head if changesets were pulled"
+msgstr "opdater til det nye gren-hovede hvis ændringer blev trukket ned"
-#, fuzzy
-msgid ""
-"``ignorews``\n"
-" Ignore white space when comparing lines."
-msgstr "ignorer blanktegn når linier sammenlignes"
+msgid "run even when remote repository is unrelated"
+msgstr "kør selv hvis fjerndepotet er urelateret"
-#, fuzzy
-msgid ""
-"``ignorewsamount``\n"
-" Ignore changes in the amount of white space."
-msgstr "ignorer ændringer i mængden af blanktegn"
+msgid "BOOKMARK"
+msgstr "BOGMÆRKE"
-#, fuzzy
-msgid ""
-"``ignoreblanklines``\n"
-" Ignore changes whose lines are all blank."
-msgstr "ignorer ændringer hvis linier alle er blanke"
+msgid "bookmark to pull"
+msgstr "bogmærke der skal hentes"
-#, fuzzy
-msgid ""
-"``unified``\n"
-" Number of lines of context to show."
-msgstr "antal linier kontekst der skal vises"
+msgid "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]"
+msgstr "[-u] [-f] [-r REV]... [-e KOMMANDO] [--remotecmd KOMMANDO] [KILDE]"
-msgid ""
-"``email``\n"
-"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "force push"
+msgstr "gennemtving skubning"
-msgid "Settings for extensions that send email messages."
-msgstr ""
+msgid "bookmark to push"
+msgstr "bogmærke der skal skubbes"
-msgid ""
-"``from``\n"
-" Optional. Email address to use in \"From\" header and SMTP envelope\n"
-" of outgoing messages."
+msgid "allow pushing a new branch"
msgstr ""
-msgid ""
-"``to``\n"
-" Optional. Comma-separated list of recipients' email addresses."
-msgstr ""
+msgid "[-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]"
+msgstr "[-f] [-r REV]... [-e KOMMANDO] [--remotecmd KOMMANDO] [MÃ…L]"
-msgid ""
-"``cc``\n"
-" Optional. Comma-separated list of carbon copy recipients'\n"
-" email addresses."
+msgid "record delete for missing files"
msgstr ""
-msgid ""
-"``bcc``\n"
-" Optional. Comma-separated list of blind carbon copy recipients'\n"
-" email addresses."
-msgstr ""
+msgid "remove (and delete) file even if added or modified"
+msgstr "fjern (og slet) fil selv hvis tilføjet eller ændret"
-msgid ""
-"``method``\n"
-" Optional. Method to use to send email messages. If value is ``smtp``\n"
-" (default), use SMTP (see the ``[smtp]`` section for configuration).\n"
-" Otherwise, use as name of program to run that acts like sendmail\n"
-" (takes ``-f`` option for sender, list of recipients on command line,\n"
-" message on stdin). Normally, setting this to ``sendmail`` or\n"
-" ``/usr/sbin/sendmail`` is enough to use sendmail to send messages."
+msgid "record a rename that has already occurred"
msgstr ""
-msgid ""
-"``charsets``\n"
-" Optional. Comma-separated list of character sets considered\n"
-" convenient for recipients. Addresses, headers, and parts not\n"
-" containing patches of outgoing messages will be encoded in the\n"
-" first character set to which conversion from local encoding\n"
-" (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct\n"
-" conversion fails, the text in question is sent as is. Defaults to\n"
-" empty (explicit) list."
-msgstr ""
+msgid "[OPTION]... SOURCE... DEST"
+msgstr "[TILVALG]... KILDE... MÃ…L"
-msgid " Order of outgoing email character sets:"
-msgstr ""
+msgid "select all unresolved files"
+msgstr "vælg alle uløste filer"
-msgid ""
-" 1. ``us-ascii``: always first, regardless of settings\n"
-" 2. ``email.charsets``: in order given by user\n"
-" 3. ``ui.fallbackencoding``: if not in email.charsets\n"
-" 4. ``$HGENCODING``: if not in email.charsets\n"
-" 5. ``utf-8``: always last, regardless of settings"
-msgstr ""
+msgid "list state of files needing merge"
+msgstr "vis tilstand af filer som har brug for sammenføjning"
-#, fuzzy
-msgid "Email example::"
-msgstr "Fillisteeksempler::"
+msgid "mark files as resolved"
+msgstr "marker filer som løste"
-msgid ""
-" [email]\n"
-" from = Joseph User <joe.user@example.com>\n"
-" method = /usr/sbin/sendmail\n"
-" # charsets for western Europeans\n"
-" # us-ascii, utf-8 omitted, as they are tried first and last\n"
-" charsets = iso-8859-1, iso-8859-15, windows-1252"
-msgstr ""
+msgid "mark files as unresolved"
+msgstr "marker filer som uløste"
-msgid ""
-"\n"
-"``extensions``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "hide status prefix"
+msgstr "skjul statuspræfix"
-msgid ""
-"Mercurial has an extension mechanism for adding new features. To\n"
-"enable an extension, create an entry for it in this section."
-msgstr ""
+msgid "revert all changes when no arguments given"
+msgstr "før alle ændringer tilbage når inget argument angives"
-msgid ""
-"If you know that the extension is already in Python's search path,\n"
-"you can give the name of the module, followed by ``=``, with nothing\n"
-"after the ``=``."
+msgid "tipmost revision matching date"
msgstr ""
-msgid ""
-"Otherwise, give a name that you choose, followed by ``=``, followed by\n"
-"the path to the ``.py`` file (including the file name extension) that\n"
-"defines the extension."
-msgstr ""
+msgid "revert to the specified revision"
+msgstr "vend tilbage til den angivne revision"
-#, fuzzy
-msgid ""
-"To explicitly disable an extension that is enabled in an hgrc of\n"
-"broader scope, prepend its path with ``!``, as in ``foo = !/ext/path``\n"
-"or ``foo = !`` when path is not supplied."
-msgstr ""
-"For eksplicit at deaktivere en udvidelse som er slået til i en mere\n"
-"bredt dækkende konfigurationsfil, så skal man sætte et ! foran dens\n"
-"sti::"
+msgid "do not save backup copies of files"
+msgstr "gem ikke sikkerhedskopier af filer"
-#, fuzzy
-msgid "Example for ``~/.hgrc``::"
-msgstr "Et eksempel på en versioneret ``.hgeol`` fil::"
+msgid "[OPTION]... [-r REV] [NAME]..."
+msgstr "[TILVALG]... [-r REV] [NAVN]..."
-msgid ""
-" [extensions]\n"
-" # (the mq extension will get loaded from Mercurial's path)\n"
-" mq =\n"
-" # (this extension will get loaded from the file specified)\n"
-" myfeature = ~/.hgext/myfeature.py"
-msgstr ""
+msgid "name of access log file to write to"
+msgstr "navn på adgangslogfilen der skrives til"
-msgid ""
-"\n"
-"``hostfingerprints``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "name of error log file to write to"
+msgstr "navn på fejlllog fil der skrives til"
-msgid ""
-"Fingerprints of the certificates of known HTTPS servers.\n"
-"A HTTPS connection to a server with a fingerprint configured here will\n"
-"only succeed if the servers certificate matches the fingerprint.\n"
-"This is very similar to how ssh known hosts works.\n"
-"The fingerprint is the SHA-1 hash value of the DER encoded certificate.\n"
-"The CA chain and web.cacerts is not used for servers with a fingerprint."
-msgstr ""
+msgid "PORT"
+msgstr "PORT"
-#, fuzzy
-msgid "For example::"
-msgstr "Fillisteeksempler::"
+msgid "port to listen on (default: 8000)"
+msgstr "port der skal lyttes på (standard: 8000)"
-msgid ""
-" [hostfingerprints]\n"
-" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:"
-"d6:4b:ee:cc"
+msgid "ADDR"
msgstr ""
-msgid "This feature is only supported when using Python 2.6 or later."
-msgstr ""
+msgid "address to listen on (default: all interfaces)"
+msgstr "adresse der skal lyttes til (standard: alle grænseflader)"
-msgid ""
-"\n"
-"``format``\n"
-"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "prefix path to serve from (default: server root)"
+msgstr "prefiks sti at udstille fra (default: server-rod)"
-msgid ""
-"``usestore``\n"
-" Enable or disable the \"store\" repository format which improves\n"
-" compatibility with systems that fold case or otherwise mangle\n"
-" filenames. Enabled by default. Disabling this option will allow\n"
-" you to store longer filenames in some situations at the expense of\n"
-" compatibility and ensures that the on-disk format of newly created\n"
-" repositories will be compatible with Mercurial before version 0.9.4."
-msgstr ""
+msgid "name to show in web pages (default: working directory)"
+msgstr "navn der skal vises på websider (standard: arbejdskatalog)"
-msgid ""
-"``usefncache``\n"
-" Enable or disable the \"fncache\" repository format which enhances\n"
-" the \"store\" repository format (which has to be enabled to use\n"
-" fncache) to allow longer filenames and avoids using Windows\n"
-" reserved names, e.g. \"nul\". Enabled by default. Disabling this\n"
-" option ensures that the on-disk format of newly created\n"
-" repositories will be compatible with Mercurial before version 1.1."
-msgstr ""
+msgid "name of the hgweb config file (see \"hg help hgweb\")"
+msgstr "navn på hgweb konfigurationsfil (se \"hg help hgweb\")"
-msgid ""
-"``dotencode``\n"
-" Enable or disable the \"dotencode\" repository format which enhances\n"
-" the \"fncache\" repository format (which has to be enabled to use\n"
-" dotencode) to avoid issues with filenames starting with ._ on\n"
-" Mac OS X and spaces on Windows. Enabled by default. Disabling this\n"
-" option ensures that the on-disk format of newly created\n"
-" repositories will be compatible with Mercurial before version 1.7."
-msgstr ""
+msgid "name of the hgweb config file (DEPRECATED)"
+msgstr "navn på hgweb konfigurationsfilen (FORÆLDET)"
-msgid ""
-"``merge-patterns``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "for remote clients"
+msgstr "for fjernklienter"
-msgid ""
-"This section specifies merge tools to associate with particular file\n"
-"patterns. Tools matched here will take precedence over the default\n"
-"merge tool. Patterns are globs by default, rooted at the repository\n"
-"root."
-msgstr ""
+msgid "web templates to use"
+msgstr "web-skabelon"
-msgid ""
-" [merge-patterns]\n"
-" **.c = kdiff3\n"
-" **.jpg = myimgmerge"
-msgstr ""
+msgid "template style to use"
+msgstr "skabelon-stil"
-msgid ""
-"``merge-tools``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "use IPv6 in addition to IPv4"
+msgstr "brug IPv6 og IPv4"
-msgid ""
-"This section configures external merge tools to use for file-level\n"
-"merges."
-msgstr ""
+msgid "SSL certificate file"
+msgstr "SSL certifikatfil"
-#, fuzzy
-msgid "Example ``~/.hgrc``::"
-msgstr "Et eksempel på en versioneret ``.hgeol`` fil::"
+msgid "show untrusted configuration options"
+msgstr "vis ikke-betroede konfigurationsværdier"
-msgid ""
-" [merge-tools]\n"
-" # Override stock tool location\n"
-" kdiff3.executable = ~/bin/kdiff3\n"
-" # Specify command line\n"
-" kdiff3.args = $base $local $other -o $output\n"
-" # Give higher priority\n"
-" kdiff3.priority = 1"
-msgstr ""
+msgid "[-u] [NAME]..."
+msgstr "[-u] [NAVN]..."
-msgid ""
-" # Define new tool\n"
-" myHtmlTool.args = -m $local $other $base $output\n"
-" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
-" myHtmlTool.priority = 1"
+msgid "check for push and pull"
msgstr ""
-msgid ""
-"``priority``\n"
-" The priority in which to evaluate this tool.\n"
-" Default: 0."
-msgstr ""
+msgid "show status of all files"
+msgstr "vis status på alle filer"
-msgid ""
-"``executable``\n"
-" Either just the name of the executable or its pathname. On Windows,\n"
-" the path can use environment variables with ${ProgramFiles} syntax.\n"
-" Default: the tool name."
-msgstr ""
+msgid "show only modified files"
+msgstr "vis kun ændrede filer"
-msgid ""
-"``args``\n"
-" The arguments to pass to the tool executable. You can refer to the\n"
-" files being merged as well as the output file through these\n"
-" variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
-" Default: ``$local $base $other``"
-msgstr ""
+msgid "show only added files"
+msgstr "vis kun tilføjede filer"
-msgid ""
-"``premerge``\n"
-" Attempt to run internal non-interactive 3-way merge tool before\n"
-" launching external tool. Options are ``true``, ``false``, or ``keep``\n"
-" to leave markers in the file if the premerge fails.\n"
-" Default: True"
-msgstr ""
+msgid "show only removed files"
+msgstr "vis kun fjernede filer"
-msgid ""
-"``binary``\n"
-" This tool can merge binary files. Defaults to False, unless tool\n"
-" was selected by file pattern match."
-msgstr ""
+msgid "show only deleted (but tracked) files"
+msgstr "vis kun slettede (men kendte) filer"
-msgid ""
-"``symlink``\n"
-" This tool can merge symlinks. Defaults to False, even if tool was\n"
-" selected by file pattern match."
-msgstr ""
+msgid "show only files without changes"
+msgstr "vis kun filer unden ændringer"
-msgid ""
-"``check``\n"
-" A list of merge success-checking options:"
-msgstr ""
+msgid "show only unknown (not tracked) files"
+msgstr "vis kun ukendte filer"
-msgid ""
-" ``changed``\n"
-" Ask whether merge was successful when the merged file shows no changes.\n"
-" ``conflicts``\n"
-" Check whether there are conflicts even though the tool reported "
-"success.\n"
-" ``prompt``\n"
-" Always prompt for merge success, regardless of success reported by tool."
-msgstr ""
+msgid "show only ignored files"
+msgstr "vis kun ignorerede filer"
-msgid ""
-"``checkchanged``\n"
-" True is equivalent to ``check = changed``.\n"
-" Default: False"
-msgstr ""
+msgid "show source of copied files"
+msgstr "vis kilder for kopierede filer"
-msgid ""
-"``checkconflicts``\n"
-" True is equivalent to ``check = conflicts``.\n"
-" Default: False"
-msgstr ""
+msgid "show difference from revision"
+msgstr "vis forskelle fra revision"
-msgid ""
-"``fixeol``\n"
-" Attempt to fix up EOL changes caused by the merge tool.\n"
-" Default: False"
-msgstr ""
+msgid "list the changed files of a revision"
+msgstr "vis de ændrede filer i en revision"
-msgid ""
-"``gui``\n"
-" This tool requires a graphical interface to run. Default: False"
-msgstr ""
+msgid "force tag"
+msgstr "gennemtving markering"
-msgid ""
-"``regkey``\n"
-" Windows registry key which describes install location of this\n"
-" tool. Mercurial will search for this key first under\n"
-" ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.\n"
-" Default: None"
-msgstr ""
+msgid "make the tag local"
+msgstr "gør mærkaten lokal"
-msgid ""
-"``regkeyalt``\n"
-" An alternate Windows registry key to try if the first key is not\n"
-" found. The alternate key uses the same ``regname`` and ``regappend``\n"
-" semantics of the primary key. The most common use for this key\n"
-" is to search for 32bit applications on 64bit operating systems.\n"
-" Default: None"
-msgstr ""
+msgid "revision to tag"
+msgstr "revision der skal mærkes"
-msgid ""
-"``regname``\n"
-" Name of value to read from specified registry key. Defaults to the\n"
-" unnamed (default) value."
-msgstr ""
+msgid "remove a tag"
+msgstr "fjern en mærkat"
-msgid ""
-"``regappend``\n"
-" String to append to the value read from the registry, typically\n"
-" the executable name of the tool.\n"
-" Default: None"
-msgstr ""
+msgid "use <text> as commit message"
+msgstr "brug <tekst> som deponeringsbesked"
-msgid ""
-"\n"
-"``hooks``\n"
-"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME..."
+msgstr "[-f] [-l] [-m TEKST] [-d DATO] [-u BRUGER] [-r REV] NAVN..."
-msgid ""
-"Commands or Python functions that get automatically executed by\n"
-"various actions such as starting or finishing a commit. Multiple\n"
-"hooks can be run for the same action by appending a suffix to the\n"
-"action. Overriding a site-wide hook can be done by changing its\n"
-"value or setting it to an empty string."
-msgstr ""
+msgid "[-p] [-g]"
+msgstr "[-p] [-g]"
-msgid "Example ``.hg/hgrc``::"
-msgstr ""
+msgid "update to new branch head if changesets were unbundled"
+msgstr "opdater til nyt gren-hoved hvis ændringer blev pakket ud"
-msgid ""
-" [hooks]\n"
-" # update working directory after adding changesets\n"
-" changegroup.update = hg update\n"
-" # do not use the site-wide hook\n"
-" incoming =\n"
-" incoming.email = /my/email/hook\n"
-" incoming.autobuild = /my/build/hook"
-msgstr ""
+msgid "[-u] FILE..."
+msgstr "[-u] FIL..."
-msgid ""
-"Most hooks are run with environment variables set that give useful\n"
-"additional information. For each hook below, the environment\n"
-"variables it is passed are listed with names of the form ``$HG_foo``."
-msgstr ""
+msgid "discard uncommitted changes (no backup)"
+msgstr "kasser ikke-deponerede ændringer (ingen sikkerhedskopi)"
-msgid ""
-"``changegroup``\n"
-" Run after a changegroup has been added via push, pull or unbundle.\n"
-" ID of the first new changeset is in ``$HG_NODE``. URL from which\n"
-" changes came is in ``$HG_URL``."
-msgstr ""
+msgid "update across branches if no uncommitted changes"
+msgstr "opdater på tværs af grene hvis der er ingen udeponerede ændringer"
-msgid ""
-"``commit``\n"
-" Run after a changeset has been created in the local repository. ID\n"
-" of the newly created changeset is in ``$HG_NODE``. Parent changeset\n"
-" IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``."
-msgstr ""
+msgid "[-c] [-C] [-d DATE] [[-r] REV]"
+msgstr "[-c] [-C] [-d DATO] [[-r] REV]"
-msgid ""
-"``incoming``\n"
-" Run after a changeset has been pulled, pushed, or unbundled into\n"
-" the local repository. The ID of the newly arrived changeset is in\n"
-" ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``."
-msgstr ""
+#, python-format
+msgid "cannot include %s (%s)"
+msgstr "kan ikke inkludere %s (%s)"
-msgid ""
-"``outgoing``\n"
-" Run after sending changes from local repository to another. ID of\n"
-" first changeset sent is in ``$HG_NODE``. Source of operation is in\n"
-" ``$HG_SOURCE``; see \"preoutgoing\" hook for description."
-msgstr ""
+msgid "not found in manifest"
+msgstr "blev ikke fundet i manifest"
-msgid ""
-"``post-<command>``\n"
-" Run after successful invocations of the associated command. The\n"
-" contents of the command line are passed as ``$HG_ARGS`` and the result\n"
-" code in ``$HG_RESULT``. Parsed command line arguments are passed as \n"
-" ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of\n"
-" the python data internally passed to <command>. ``$HG_OPTS`` is a \n"
-" dictionary of options (with unspecified options set to their defaults).\n"
-" ``$HG_PATS`` is a list of arguments. Hook failure is ignored."
-msgstr ""
+#, python-format
+msgid "no such file in rev %s"
+msgstr "ingen sådan fil i revision %s"
-msgid ""
-"``pre-<command>``\n"
-" Run before executing the associated command. The contents of the\n"
-" command line are passed as ``$HG_ARGS``. Parsed command line arguments\n"
-" are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string\n"
-" representations of the data internally passed to <command>. ``$HG_OPTS``\n"
-" is a dictionary of options (with unspecified options set to their\n"
-" defaults). ``$HG_PATS`` is a list of arguments. If the hook returns \n"
-" failure, the command doesn't execute and Mercurial returns the failure\n"
-" code."
-msgstr ""
+msgid "branch name not in UTF-8!"
+msgstr "grennavn er ikke i UTF-8!"
-msgid ""
-"``prechangegroup``\n"
-" Run before a changegroup is added via push, pull or unbundle. Exit\n"
-" status 0 allows the changegroup to proceed. Non-zero status will\n"
-" cause the push, pull or unbundle to fail. URL from which changes\n"
-" will come is in ``$HG_URL``."
-msgstr ""
+#, python-format
+msgid "%s does not exist!\n"
+msgstr "%s eksisterer ikke!\n"
+#, python-format
msgid ""
-"``precommit``\n"
-" Run before starting a local commit. Exit status 0 allows the\n"
-" commit to proceed. Non-zero status will cause the commit to fail.\n"
-" Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``."
+"%s: up to %d MB of RAM may be required to manage this file\n"
+"(use 'hg revert %s' to cancel the pending addition)\n"
msgstr ""
-msgid ""
-"``prelistkeys``\n"
-" Run before listing pushkeys (like bookmarks) in the\n"
-" repository. Non-zero status will cause failure. The key namespace is\n"
-" in ``$HG_NAMESPACE``."
+#, python-format
+msgid "%s not added: only files and symlinks supported currently\n"
msgstr ""
+"%s ikke tilføjet: i øjeblikket understøttes kun filer og symbolske lænker\n"
-msgid ""
-"``preoutgoing``\n"
-" Run before collecting changes to send from the local repository to\n"
-" another. Non-zero status will cause failure. This lets you prevent\n"
-" pull over HTTP or SSH. Also prevents against local pull, push\n"
-" (outbound) or bundle commands, but not effective, since you can\n"
-" just copy files instead then. Source of operation is in\n"
-" ``$HG_SOURCE``. If \"serve\", operation is happening on behalf of remote\n"
-" SSH or HTTP repository. If \"push\", \"pull\" or \"bundle\", operation\n"
-" is happening on behalf of repository on same system."
-msgstr ""
+#, python-format
+msgid "%s already tracked!\n"
+msgstr "%s følges allerede!\n"
-msgid ""
-"``prepushkey``\n"
-" Run before a pushkey (like a bookmark) is added to the\n"
-" repository. Non-zero status will cause the key to be rejected. The\n"
-" key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,\n"
-" the old value (if any) is in ``$HG_OLD``, and the new value is in\n"
-" ``$HG_NEW``."
-msgstr ""
+#, python-format
+msgid "%s not added!\n"
+msgstr "%s ikke tilføjet!\n"
-msgid ""
-"``pretag``\n"
-" Run before creating a tag. Exit status 0 allows the tag to be\n"
-" created. Non-zero status will cause the tag to fail. ID of\n"
-" changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag "
-"is\n"
-" local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``."
-msgstr ""
+#, python-format
+msgid "%s still exists!\n"
+msgstr "%s eksisterer stadig!\n"
-msgid ""
-"``pretxnchangegroup``\n"
-" Run after a changegroup has been added via push, pull or unbundle,\n"
-" but before the transaction has been committed. Changegroup is\n"
-" visible to hook program. This lets you validate incoming changes\n"
-" before accepting them. Passed the ID of the first new changeset in\n"
-" ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero\n"
-" status will cause the transaction to be rolled back and the push,\n"
-" pull or unbundle will fail. URL that was source of changes is in\n"
-" ``$HG_URL``."
-msgstr ""
+#, python-format
+msgid "%s not tracked!\n"
+msgstr "%s følges ikke\n"
-msgid ""
-"``pretxncommit``\n"
-" Run after a changeset has been created but the transaction not yet\n"
-" committed. Changeset is visible to hook program. This lets you\n"
-" validate commit message and changes. Exit status 0 allows the\n"
-" commit to proceed. Non-zero status will cause the transaction to\n"
-" be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset\n"
-" IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``."
-msgstr ""
+#, python-format
+msgid "%s not removed!\n"
+msgstr "%s ikke fjernet!\n"
-msgid ""
-"``preupdate``\n"
-" Run before updating the working directory. Exit status 0 allows\n"
-" the update to proceed. Non-zero status will prevent the update.\n"
-" Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID\n"
-" of second new parent is in ``$HG_PARENT2``."
-msgstr ""
+#, python-format
+msgid "copy failed: %s is not a file or a symbolic link\n"
+msgstr "kopiering fejlede: %s er ikke en fil eller en symbolsk længe\n"
-msgid ""
-"``listkeys``\n"
-" Run after listing pushkeys (like bookmarks) in the repository. The\n"
-" key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a\n"
-" dictionary containing the keys and values."
-msgstr ""
+#, python-format
+msgid "invalid character in dag description: %s..."
+msgstr "ugyldig tegn i DAG-beskrivelsen: %s..."
-msgid ""
-"``pushkey``\n"
-" Run after a pushkey (like a bookmark) is added to the\n"
-" repository. The key namespace is in ``$HG_NAMESPACE``, the key is in\n"
-" ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new\n"
-" value is in ``$HG_NEW``."
+#, python-format
+msgid "expected id %i, got %i"
msgstr ""
-msgid ""
-"``tag``\n"
-" Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.\n"
-" Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in\n"
-" repository if ``$HG_LOCAL=0``."
+#, python-format
+msgid "parent id %i is larger than current id %i"
msgstr ""
-msgid ""
-"``update``\n"
-" Run after updating the working directory. Changeset ID of first\n"
-" new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is\n"
-" in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the\n"
-" update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``."
+#, python-format
+msgid "invalid event type in dag: %s"
msgstr ""
-msgid ""
-".. note:: It is generally better to use standard hooks rather than the\n"
-" generic pre- and post- command hooks as they are guaranteed to be\n"
-" called in the appropriate contexts for influencing transactions.\n"
-" Also, hooks like \"commit\" will be called in all contexts that\n"
-" generate a commit (e.g. tag) and not just the commit command."
-msgstr ""
+msgid "working directory state appears damaged!"
+msgstr "arbejdskatalogtilstand virker beskadiget!"
-msgid ""
-".. note:: Environment variables with empty values may not be passed to\n"
-" hooks on platforms such as Windows. As an example, ``$HG_PARENT2``\n"
-" will have an empty value under Unix-like platforms for non-merge\n"
-" changesets, while it will not be available at all under Windows."
-msgstr ""
+#, python-format
+msgid "directory %r already in dirstate"
+msgstr "katalog %r er allerede i dirstate"
-msgid "The syntax for Python hooks is as follows::"
+#, python-format
+msgid "file %r in dirstate clashes with %r"
msgstr ""
-msgid ""
-" hookname = python:modulename.submodule.callable\n"
-" hookname = python:/path/to/python/module.py:callable"
+#, python-format
+msgid "setting %r to other parent only allowed in merges"
msgstr ""
-msgid ""
-"Python hooks are run within the Mercurial process. Each hook is\n"
-"called with at least three keyword arguments: a ui object (keyword\n"
-"``ui``), a repository object (keyword ``repo``), and a ``hooktype``\n"
-"keyword that tells what kind of hook is used. Arguments listed as\n"
-"environment variables above are passed as keyword arguments, with no\n"
-"``HG_`` prefix, and names in lower case."
-msgstr ""
+#, python-format
+msgid "not in dirstate: %s\n"
+msgstr "ikke i dirstate: %s\n"
-msgid ""
-"If a Python hook returns a \"true\" value or raises an exception, this\n"
-"is treated as a failure."
-msgstr ""
+msgid "unknown"
+msgstr "ukendt"
-msgid ""
-"\n"
-"``http_proxy``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "character device"
+msgstr "tegn-specialfil"
-msgid ""
-"Used to access web-based Mercurial repositories through a HTTP\n"
-"proxy."
-msgstr ""
+msgid "block device"
+msgstr "blok-specialfil"
-msgid ""
-"``host``\n"
-" Host name and (optional) port of the proxy server, for example\n"
-" \"myproxy:8000\"."
-msgstr ""
+msgid "fifo"
+msgstr "fifo"
-msgid ""
-"``no``\n"
-" Optional. Comma-separated list of host names that should bypass\n"
-" the proxy."
-msgstr ""
+msgid "socket"
+msgstr "sokkel"
-msgid ""
-"``passwd``\n"
-" Optional. Password to authenticate with at the proxy server."
-msgstr ""
+msgid "directory"
+msgstr "katalog"
-msgid ""
-"``user``\n"
-" Optional. User name to authenticate with at the proxy server."
-msgstr ""
+#, python-format
+msgid "unsupported file type (type is %s)"
+msgstr "usupporteret filtype (typen er %s)"
-msgid ""
-"``always``\n"
-" Optional. Always use the proxy, even for localhost and any entries\n"
-" in ``http_proxy.no``. True or False. Default: False."
-msgstr ""
+msgid "searching for changes\n"
+msgstr "leder efter ændringer\n"
-msgid ""
-"``smtp``\n"
-"\"\"\"\"\"\"\"\""
+msgid "queries"
msgstr ""
-msgid "Configuration for extensions that need to send email messages."
-msgstr ""
+msgid "searching"
+msgstr "søger"
-msgid ""
-"``host``\n"
-" Host name of mail server, e.g. \"mail.example.com\"."
-msgstr ""
+msgid "already have changeset "
+msgstr "har allerede ændringen "
-msgid ""
-"``port``\n"
-" Optional. Port to connect to on mail server. Default: 25."
-msgstr ""
+msgid "warning: repository is unrelated\n"
+msgstr "advarsel: depotet er urelateret\n"
-msgid ""
-"``tls``\n"
-" Optional. Method to enable TLS when connecting to mail server: "
-"starttls,\n"
-" smtps or none. Default: none."
-msgstr ""
+msgid "repository is unrelated"
+msgstr "depotet er urelateret"
-msgid ""
-"``username``\n"
-" Optional. User name for authenticating with the SMTP server.\n"
-" Default: none."
-msgstr ""
+#, python-format
+msgid "push creates new remote branches: %s!"
+msgstr "skub laver nye grene i fjerndepotet: %s!"
-msgid ""
-"``password``\n"
-" Optional. Password for authenticating with the SMTP server. If not\n"
-" specified, interactive sessions will prompt the user for a\n"
-" password; non-interactive sessions will fail. Default: none."
-msgstr ""
+msgid "use 'hg push --new-branch' to create new remote branches"
+msgstr "brug 'hg push --new-branch' for at lave nye grene i fjerndepotet"
-msgid ""
-"``local_hostname``\n"
-" Optional. It's the hostname that the sender can use to identify\n"
-" itself to the MTA."
-msgstr ""
+#, python-format
+msgid "push creates new remote heads on branch '%s'!"
+msgstr "skub laver nye fjern-hoveder på grenen '%s'!"
-msgid ""
-"\n"
-"``patch``\n"
-"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "push creates new remote heads!"
+msgstr "skub laver nye fjern-hoveder!"
-msgid ""
-"Settings used when applying patches, for instance through the 'import'\n"
-"command or with Mercurial Queues extension."
-msgstr ""
+msgid "you should pull and merge or use push -f to force"
+msgstr "du bør hive og sammenføje eller bruge -f for at gennemtvinge"
-msgid ""
-"``eol``\n"
-" When set to 'strict' patch content and patched files end of lines\n"
-" are preserved. When set to ``lf`` or ``crlf``, both files end of\n"
-" lines are ignored when patching and the result line endings are\n"
-" normalized to either LF (Unix) or CRLF (Windows). When set to\n"
-" ``auto``, end of lines are again ignored while patching but line\n"
-" endings in patched files are normalized to their original setting\n"
-" on a per-file basis. If target file does not exist or has no end\n"
-" of line, patch line endings are preserved.\n"
-" Default: strict."
-msgstr ""
+msgid "did you forget to merge? use push -f to force"
+msgstr "glemte du at sammenføje? brug push -f for at gennemtvinge"
-msgid ""
-"\n"
-"``paths``\n"
-"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "note: unsynced remote changes!\n"
+msgstr "bemærk: usynkroniserede ændringer i fjernsystemet!\n"
-msgid ""
-"Assigns symbolic names to repositories. The left side is the\n"
-"symbolic name, and the right gives the directory or URL that is the\n"
-"location of the repository. Default paths can be declared by setting\n"
-"the following entries."
-msgstr ""
+#, python-format
+msgid "abort: %s\n"
+msgstr "afbrudt: %s\n"
-msgid ""
-"``default``\n"
-" Directory or URL to use when pulling if no source is specified.\n"
-" Default is set to repository from which the current repository was\n"
-" cloned."
-msgstr ""
+#, python-format
+msgid "(%s)\n"
+msgstr "(%s)\n"
-msgid ""
-"``default-push``\n"
-" Optional. Directory or URL to use when pushing if no destination\n"
-" is specified."
-msgstr ""
+#, python-format
+msgid "hg: parse error at %s: %s\n"
+msgstr "hg: konfigurationsfejl på %s: %s\n"
-msgid ""
-"\n"
-"``profiling``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+#, python-format
+msgid "hg: parse error: %s\n"
+msgstr "hg: parse fejl: %s\n"
-msgid ""
-"Specifies profiling format and file output. In this section\n"
-"description, 'profiling data' stands for the raw data collected\n"
-"during profiling, while 'profiling report' stands for a statistical\n"
-"text report generated from the profiling data. The profiling is done\n"
-"using lsprof."
+msgid "entering debugger - type c to continue starting hg or h for help\n"
msgstr ""
+#, python-format
msgid ""
-"``format``\n"
-" Profiling format.\n"
-" Default: text."
+"hg: command '%s' is ambiguous:\n"
+" %s\n"
msgstr ""
+"hg: kommandoen '%s' is tvetydig:\n"
+" %s\n"
-msgid ""
-" ``text``\n"
-" Generate a profiling report. When saving to a file, it should be\n"
-" noted that only the report is saved, and the profiling data is\n"
-" not kept.\n"
-" ``kcachegrind``\n"
-" Format profiling data for kcachegrind use: when saving to a\n"
-" file, the generated file can directly be loaded into\n"
-" kcachegrind."
-msgstr ""
+#, python-format
+msgid "timed out waiting for lock held by %s"
+msgstr "tiden løb ud ved vent på lås holdt af %s"
-msgid ""
-"``output``\n"
-" File path where profiling data or report should be saved. If the\n"
-" file exists, it is replaced. Default: None, data is printed on\n"
-" stderr"
-msgstr ""
+#, python-format
+msgid "lock held by %s"
+msgstr "lås holdt af %s"
-msgid ""
-"``revsetalias``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+#, python-format
+msgid "abort: %s: %s\n"
+msgstr "afbrudt: %s: %s\n"
-msgid "Alias definitions for revsets. See :hg:`help revsets` for details."
-msgstr ""
+#, python-format
+msgid "abort: could not lock %s: %s\n"
+msgstr "afbrudt: kunne ikke låse %s: %s\n"
-msgid ""
-"``server``\n"
-"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+#, python-format
+msgid "hg %s: %s\n"
+msgstr "hg %s: %s\n"
-msgid "Controls generic server settings."
-msgstr ""
+#, python-format
+msgid "hg: %s\n"
+msgstr "hg: %s\n"
-msgid ""
-"``uncompressed``\n"
-" Whether to allow clients to clone a repository using the\n"
-" uncompressed streaming protocol. This transfers about 40% more\n"
-" data than a regular clone, but uses less memory and CPU on both\n"
-" server and client. Over a LAN (100 Mbps or better) or a very fast\n"
-" WAN, an uncompressed streaming clone is a lot faster (~10x) than a\n"
-" regular clone. Over most WAN connections (anything slower than\n"
-" about 6 Mbps), uncompressed streaming is slower, because of the\n"
-" extra data transfer overhead. This mode will also temporarily hold\n"
-" the write lock while determining what data to transfer.\n"
-" Default is True."
-msgstr ""
+#, python-format
+msgid "abort: %s!\n"
+msgstr "afbrudt: %s!\n"
-msgid ""
-"``validate``\n"
-" Whether to validate the completeness of pushed changesets by\n"
-" checking that all new file revisions specified in manifests are\n"
-" present. Default is False."
-msgstr ""
+#, python-format
+msgid "abort: %s"
+msgstr "afbrudt: %s"
-msgid ""
-"``subpaths``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid " empty string\n"
+msgstr " tom streng\n"
-msgid "Defines subrepositories source locations rewriting rules of the form::"
-msgstr ""
+msgid "killed!\n"
+msgstr "dræbt!\n"
-msgid " <pattern> = <replacement>"
-msgstr ""
+#, python-format
+msgid "hg: unknown command '%s'\n"
+msgstr "hg: ukendt kommando '%s'\n"
-msgid ""
-"Where ``pattern`` is a regular expression matching the source and\n"
-"``replacement`` is the replacement string used to rewrite it. Groups\n"
-"can be matched in ``pattern`` and referenced in ``replacements``. For\n"
-"instance::"
-msgstr ""
+msgid "(did you forget to compile extensions?)\n"
+msgstr "(glemte du at kompilere udvidelserne?)\n"
-msgid " http://server/(.*)-hg/ = http://hg.server/\\1/"
-msgstr ""
+msgid "(is your Python install correct?)\n"
+msgstr "(er din Python installeret korrekt?)\n"
-msgid "rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``."
-msgstr ""
+#, python-format
+msgid "abort: error: %s\n"
+msgstr "afbrudt: fejl: %s\n"
-msgid "All patterns are applied in definition order."
-msgstr ""
+msgid "broken pipe\n"
+msgstr "afbrudt pipe\n"
-msgid ""
-"``trusted``\n"
-"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "interrupted!\n"
+msgstr "standset!\n"
msgid ""
-"Mercurial will not use the settings in the\n"
-"``.hg/hgrc`` file from a repository if it doesn't belong to a trusted\n"
-"user or to a trusted group, as various hgrc features allow arbitrary\n"
-"commands to be run. This issue is often encountered when configuring\n"
-"hooks or extensions for shared repositories or servers. However,\n"
-"the web interface will use some safe settings from the ``[web]``\n"
-"section."
+"\n"
+"broken pipe\n"
msgstr ""
+"\n"
+"afbrudt pipe\n"
-msgid ""
-"This section specifies what users and groups are trusted. The\n"
-"current user is always trusted. To trust everybody, list a user or a\n"
-"group with name ``*``. These settings must be placed in an\n"
-"*already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the\n"
-"user or service running Mercurial."
-msgstr ""
+msgid "abort: out of memory\n"
+msgstr "afbrudt: løbet tør for hukommelse\n"
-msgid ""
-"``users``\n"
-" Comma-separated list of trusted users."
-msgstr ""
+msgid "** unknown exception encountered, please report by visiting\n"
+msgstr "** der opstod en ukendt fejl, meld den venligst ved at besøge\n"
-msgid ""
-"``groups``\n"
-" Comma-separated list of trusted groups."
-msgstr ""
+msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
+msgstr "** http://mercurial.selenic.com/wiki/BugTracker\n"
-msgid ""
-"\n"
-"``ui``\n"
-"\"\"\"\"\"\""
-msgstr ""
+#, python-format
+msgid "** Python %s\n"
+msgstr "** Python %s\n"
-msgid "User interface controls."
-msgstr ""
+#, python-format
+msgid "** Mercurial Distributed SCM (version %s)\n"
+msgstr "** Mercurial Distributed SCM (version %s)\n"
-msgid ""
-"``archivemeta``\n"
-" Whether to include the .hg_archival.txt file containing meta data\n"
-" (hashes for the repository base and for tip) in archives created\n"
-" by the :hg:`archive` command or downloaded via hgweb.\n"
-" Default is True."
-msgstr ""
+#, python-format
+msgid "** Extensions loaded: %s\n"
+msgstr "** Udvidelser indlæst: %s\n"
-msgid ""
-"``askusername``\n"
-" Whether to prompt for a username when committing. If True, and\n"
-" neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user "
-"will\n"
-" be prompted to enter a username. If no username is entered, the\n"
-" default ``USER@HOST`` is used instead.\n"
-" Default is False."
-msgstr ""
+#, python-format
+msgid "no definition for alias '%s'\n"
+msgstr "ingen definition for alias '%s'\n"
+#, python-format
msgid ""
-"``commitsubrepos``\n"
-" Whether to commit modified subrepositories when committing the\n"
-" parent repository. If False and one subrepository has uncommitted\n"
-" changes, abort the commit.\n"
-" Default is False."
+"No argument found for substitution of %i variable in alias '%s' definition."
msgstr ""
+#, python-format
msgid ""
-"``debug``\n"
-" Print debugging information. True or False. Default is False."
+"error in definition for alias '%s': %s may only be given on the command "
+"line\n"
msgstr ""
-msgid ""
-"``editor``\n"
-" The editor to use during a commit. Default is ``$EDITOR`` or ``vi``."
-msgstr ""
+#, python-format
+msgid "alias '%s' resolves to unknown command '%s'\n"
+msgstr "alias '%s' oversætter til ukendt kommando '%s'\n"
-msgid ""
-"``fallbackencoding``\n"
-" Encoding to try if it's not possible to decode the changelog using\n"
-" UTF-8. Default is ISO-8859-1."
-msgstr ""
+#, python-format
+msgid "alias '%s' resolves to ambiguous command '%s'\n"
+msgstr "alias '%s' oversætter til tvetydig kommando '%s'\n"
-msgid ""
-"``ignore``\n"
-" A file to read per-user ignore patterns from. This file should be\n"
-" in the same format as a repository-wide .hgignore file. This\n"
-" option supports hook syntax, so if you want to specify multiple\n"
-" ignore files, you can do so by setting something like\n"
-" ``ignore.other = ~/.hgignore2``. For details of the ignore file\n"
-" format, see the ``hgignore(5)`` man page."
-msgstr ""
+#, python-format
+msgid "malformed --config option: %r (use --config section.name=value)"
+msgstr "misdannet --config tilvalg: %r (brug --config sektion.navn=værdi)"
-msgid ""
-"``interactive``\n"
-" Allow to prompt the user. True or False. Default is True."
-msgstr ""
+#, python-format
+msgid "error getting current working directory: %s"
+msgstr "fejl ved opslag af nuværende arbejdskatalog: %s"
-msgid ""
-"``logtemplate``\n"
-" Template string for commands that print changesets."
-msgstr ""
+#, python-format
+msgid "extension '%s' overrides commands: %s\n"
+msgstr "udvidelse '%s' overskriver kommandoer: %s\n"
-msgid ""
-"``merge``\n"
-" The conflict resolution program to use during a manual merge.\n"
-" For more information on merge tools see :hg:`help merge-tools`.\n"
-" For configuring merge tools see the ``[merge-tools]`` section."
-msgstr ""
+msgid "option --config may not be abbreviated!"
+msgstr "tilvalget --config må ikke forkortes!"
-msgid ""
-"``portablefilenames``\n"
-" Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.\n"
-" Default is ``warn``.\n"
-" If set to ``warn`` (or ``true``), a warning message is printed on POSIX\n"
-" platforms, if a file with a non-portable filename is added (e.g. a file\n"
-" with a name that can't be created on Windows because it contains "
-"reserved\n"
-" parts like ``AUX``, reserved characters like ``:``, or would cause a "
-"case\n"
-" collision with an existing file).\n"
-" If set to ``ignore`` (or ``false``), no warning is printed.\n"
-" If set to ``abort``, the command is aborted.\n"
-" On Windows, this configuration option is ignored and the command aborted."
-msgstr ""
+msgid "option --cwd may not be abbreviated!"
+msgstr "tilvalget --cwd må ikke forkortes!"
msgid ""
-"``quiet``\n"
-" Reduce the amount of output printed. True or False. Default is False."
+"Option -R has to be separated from other options (e.g. not -qR) and --"
+"repository may only be abbreviated as --repo!"
msgstr ""
+"Tilvalget -R skal adskilles fra andre tilvalg (fx ikke -qR) og --repository "
+"må kun forkortes som --repo!"
-msgid ""
-"``remotecmd``\n"
-" remote command to use for clone/push/pull operations. Default is ``hg``."
+#, python-format
+msgid "Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
msgstr ""
-msgid ""
-"``report_untrusted``\n"
-" Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a\n"
-" trusted user or group. True or False. Default is True."
-msgstr ""
+#, python-format
+msgid "repository '%s' is not local"
+msgstr "depot '%s' er ikke lokalt"
-msgid ""
-"``slash``\n"
-" Display paths using a slash (``/``) as the path separator. This\n"
-" only makes a difference on systems where the default path\n"
-" separator is not the slash character (e.g. Windows uses the\n"
-" backslash character (``\\``)).\n"
-" Default is False."
-msgstr ""
+msgid "warning: --repository ignored\n"
+msgstr "advarsel: --repository ignoreret\n"
-msgid ""
-"``ssh``\n"
-" command to use for SSH connections. Default is ``ssh``."
-msgstr ""
+msgid "invalid arguments"
+msgstr "ugyldige parametre"
-msgid ""
-"``strict``\n"
-" Require exact command names, instead of allowing unambiguous\n"
-" abbreviations. True or False. Default is False."
-msgstr ""
+#, python-format
+msgid "unrecognized profiling format '%s' - Ignored\n"
+msgstr "profileringsformat '%s' ikke genkendt - Ignoreret\n"
msgid ""
-"``style``\n"
-" Name of style to use for command output."
+"lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/"
+"misc/lsprof/"
msgstr ""
+"lsprof er ikke tilgængelig - installer fra http://codespeak.net/svn/user/"
+"arigo/hack/misc/lsprof/"
-msgid ""
-"``timeout``\n"
-" The timeout used when a lock is held (in seconds), a negative value\n"
-" means no timeout. Default is 600."
-msgstr ""
+#, python-format
+msgid "*** failed to import extension %s from %s: %s\n"
+msgstr "*** import af udvidelse %s fra %s fejlede: %s\n"
-msgid ""
-"``traceback``\n"
-" Mercurial always prints a traceback when an unknown exception\n"
-" occurs. Setting this to True will make Mercurial print a traceback\n"
-" on all exceptions, even those recognized by Mercurial (such as\n"
-" IOError or MemoryError). Default is False."
-msgstr ""
+#, python-format
+msgid "*** failed to import extension %s: %s\n"
+msgstr "*** import af udvidelse %s fejlede: %s\n"
-msgid ""
-"``username``\n"
-" The committer of a changeset created when running \"commit\".\n"
-" Typically a person's name and email address, e.g. ``Fred Widget\n"
-" <fred@example.com>``. Default is ``$EMAIL`` or ``username@hostname``. "
-"If\n"
-" the username in hgrc is empty, it has to be specified manually or\n"
-" in a different hgrc file (e.g. ``$HOME/.hgrc``, if the admin set\n"
-" ``username =`` in the system hgrc). Environment variables in the\n"
-" username are expanded."
-msgstr ""
+#, python-format
+msgid "warning: error finding commands in %s\n"
+msgstr "advarsel: fejl ved søgning efter kommandoer i %s\n"
-msgid ""
-"``verbose``\n"
-" Increase the amount of output printed. True or False. Default is False."
-msgstr ""
+#, python-format
+msgid "couldn't find merge tool %s\n"
+msgstr "kunne ikke finde sammenføjningsværktøj %s\n"
-msgid ""
-"\n"
-"``web``\n"
-"\"\"\"\"\"\"\""
-msgstr ""
+#, python-format
+msgid "tool %s can't handle symlinks\n"
+msgstr "værktøj %s kan ikke håndtere symbolske lænker\n"
-msgid ""
-"Web interface configuration. The settings in this section apply to\n"
-"both the builtin webserver (started by :hg:`serve`) and the script you\n"
-"run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI\n"
-"and WSGI)."
-msgstr ""
+#, python-format
+msgid "tool %s can't handle binary\n"
+msgstr "værktøj %s kan ikke håndtere binære filer\n"
-msgid ""
-"The Mercurial webserver does no authentication (it does not prompt for\n"
-"usernames and passwords to validate *who* users are), but it does do\n"
-"authorization (it grants or denies access for *authenticated users*\n"
-"based on settings in this section). You must either configure your\n"
-"webserver to do authentication for you, or disable the authorization\n"
-"checks."
-msgstr ""
+#, python-format
+msgid "tool %s requires a GUI\n"
+msgstr "værktøj %s kræver et GUI\n"
+#, python-format
msgid ""
-"For a quick setup in a trusted environment, e.g., a private LAN, where\n"
-"you want it to accept pushes from anybody, you can use the following\n"
-"command line::"
+" no tool found to merge %s\n"
+"keep (l)ocal or take (o)ther?"
msgstr ""
-msgid " $ hg --config web.allow_push=* --config web.push_ssl=False serve"
+msgid "&Local"
msgstr ""
-msgid ""
-"Note that this will allow anybody to push anything to the server and\n"
-"that this should not be used for public servers."
+msgid "&Other"
msgstr ""
-#, fuzzy
-msgid "The full set of options is:"
-msgstr "Den første gode revision er:\n"
-
-msgid ""
-"``accesslog``\n"
-" Where to output the access log. Default is stdout."
-msgstr ""
+#, python-format
+msgid "merging %s and %s to %s\n"
+msgstr "føjer %s og %s sammen til %s\n"
-msgid ""
-"``address``\n"
-" Interface address to bind to. Default is all."
-msgstr ""
+#, python-format
+msgid "merging %s\n"
+msgstr "sammenføjer %s\n"
-msgid ""
-"``allow_archive``\n"
-" List of archive format (bz2, gz, zip) allowed for downloading.\n"
-" Default is empty."
+#, python-format
+msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
msgstr ""
-msgid ""
-"``allowbz2``\n"
-" (DEPRECATED) Whether to allow .tar.bz2 downloading of repository\n"
-" revisions.\n"
-" Default is False."
+#, python-format
+msgid "was merge of '%s' successful (yn)?"
msgstr ""
+#, python-format
msgid ""
-"``allowgz``\n"
-" (DEPRECATED) Whether to allow .tar.gz downloading of repository\n"
-" revisions.\n"
-" Default is False."
+" output file %s appears unchanged\n"
+"was merge successful (yn)?"
msgstr ""
-msgid ""
-"``allowpull``\n"
-" Whether to allow pulling from the repository. Default is True."
-msgstr ""
+#, python-format
+msgid "merging %s failed!\n"
+msgstr "sammenføjning af %s fejlede!\n"
-msgid ""
-"``allow_push``\n"
-" Whether to allow pushing to the repository. If empty or not set,\n"
-" push is not allowed. If the special value ``*``, any remote user can\n"
-" push, including unauthenticated users. Otherwise, the remote user\n"
-" must have been authenticated, and the authenticated user name must\n"
-" be present in this list. The contents of the allow_push list are\n"
-" examined after the deny_push list."
-msgstr ""
+msgid "starting revisions are not directly related"
+msgstr "startrevisionerne er ikke direkte relaterede"
-msgid ""
-"``guessmime``\n"
-" Control MIME types for raw download of file content.\n"
-" Set to True to let hgweb guess the content type from the file\n"
-" extension. This will serve HTML files as ``text/html`` and might\n"
-" allow cross-site scripting attacks when serving untrusted\n"
-" repositories. Default is False."
-msgstr ""
+#, python-format
+msgid "inconsistent state, %s:%s is good and bad"
+msgstr "inkonsistent tilstant, %s:%s er god og dårlig"
-msgid ""
-"``allow_read``\n"
-" If the user has not already been denied repository access due to\n"
-" the contents of deny_read, this list determines whether to grant\n"
-" repository access to the user. If this list is not empty, and the\n"
-" user is unauthenticated or not present in the list, then access is\n"
-" denied for the user. If the list is empty or not set, then access\n"
-" is permitted to all users by default. Setting allow_read to the\n"
-" special value ``*`` is equivalent to it not being set (i.e. access\n"
-" is permitted to all users). The contents of the allow_read list are\n"
-" examined after the deny_read list."
-msgstr ""
+#, python-format
+msgid "unknown bisect kind %s"
+msgstr "ukendt halverings-type %s"
-msgid ""
-"``allowzip``\n"
-" (DEPRECATED) Whether to allow .zip downloading of repository\n"
-" revisions. Default is False. This feature creates temporary files."
-msgstr ""
+msgid "disabled extensions:"
+msgstr "deaktiverede udvidelser:"
-msgid ""
-"``baseurl``\n"
-" Base URL to use when publishing URLs in other locations, so\n"
-" third-party tools like email notification hooks can construct\n"
-" URLs. Example: ``http://hgserver/repos/``."
-msgstr ""
+msgid "Configuration Files"
+msgstr "Konfigurationsfiler"
-msgid ""
-"``cacerts``\n"
-" Path to file containing a list of PEM encoded certificate\n"
-" authority certificates. Environment variables and ``~user``\n"
-" constructs are expanded in the filename. If specified on the\n"
-" client, then it will verify the identity of remote HTTPS servers\n"
-" with these certificates. The form must be as follows::"
-msgstr ""
+msgid "Date Formats"
+msgstr "Datoformater"
-msgid ""
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----\n"
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----"
-msgstr ""
+msgid "File Name Patterns"
+msgstr "Mønstre for filnavne"
-msgid ""
-" This feature is only supported when using Python 2.6 or later. If you "
-"wish\n"
-" to use it with earlier versions of Python, install the backported\n"
-" version of the ssl library that is available from\n"
-" ``http://pypi.python.org``."
-msgstr ""
+msgid "Environment Variables"
+msgstr "Miljøvariable"
-msgid ""
-" You can use OpenSSL's CA certificate file if your platform has one.\n"
-" On most Linux systems this will be ``/etc/ssl/certs/ca-certificates."
-"crt``.\n"
-" Otherwise you will have to generate this file manually."
-msgstr ""
+msgid "Specifying Single Revisions"
+msgstr "Angivning af en enkelt revision"
-msgid ""
-" To disable SSL verification temporarily, specify ``--insecure`` from\n"
-" command line."
-msgstr ""
+msgid "Specifying Multiple Revisions"
+msgstr "Angivning af flere revisioner"
-msgid ""
-"``cache``\n"
-" Whether to support caching in hgweb. Defaults to True."
-msgstr ""
+msgid "Specifying Revision Sets"
+msgstr "Angivning af af mængder af revisioner"
-msgid ""
-"``contact``\n"
-" Name or email address of the person in charge of the repository.\n"
-" Defaults to ui.username or ``$EMAIL`` or \"unknown\" if unset or empty."
+msgid "Diff Formats"
msgstr ""
-msgid ""
-"``deny_push``\n"
-" Whether to deny pushing to the repository. If empty or not set,\n"
-" push is not denied. If the special value ``*``, all remote users are\n"
-" denied push. Otherwise, unauthenticated users are all denied, and\n"
-" any authenticated user name present in this list is also denied. The\n"
-" contents of the deny_push list are examined before the allow_push list."
+msgid "Merge Tools"
msgstr ""
-msgid ""
-"``deny_read``\n"
-" Whether to deny reading/viewing of the repository. If this list is\n"
-" not empty, unauthenticated users are all denied, and any\n"
-" authenticated user name present in this list is also denied access to\n"
-" the repository. If set to the special value ``*``, all remote users\n"
-" are denied access (rarely needed ;). If deny_read is empty or not set,\n"
-" the determination of repository access depends on the presence and\n"
-" content of the allow_read list (see description). If both\n"
-" deny_read and allow_read are empty or not set, then access is\n"
-" permitted to all users by default. If the repository is being\n"
-" served via hgwebdir, denied users will not be able to see it in\n"
-" the list of repositories. The contents of the deny_read list have\n"
-" priority over (are examined before) the contents of the allow_read\n"
-" list."
-msgstr ""
+msgid "Template Usage"
+msgstr "Brug af skabeloner"
-msgid ""
-"``descend``\n"
-" hgwebdir indexes will not descend into subdirectories. Only "
-"repositories\n"
-" directly in the current path will be shown (other repositories are "
-"still\n"
-" available from the index corresponding to their containing path)."
-msgstr ""
+msgid "URL Paths"
+msgstr "URL-stier"
-msgid ""
-"``description``\n"
-" Textual description of the repository's purpose or contents.\n"
-" Default is \"unknown\"."
-msgstr ""
+msgid "Using additional features"
+msgstr "Brug af yderligere funktioner"
-msgid ""
-"``encoding``\n"
-" Character encoding name. Default is the current locale charset.\n"
-" Example: \"UTF-8\""
-msgstr ""
+msgid "Subrepositories"
+msgstr "Underdepoter"
-msgid ""
-"``errorlog``\n"
-" Where to output the error log. Default is stderr."
-msgstr ""
+msgid "Configuring hgweb"
+msgstr "Konfigurering af hgweb"
-msgid ""
-"``hidden``\n"
-" Whether to hide the repository in the hgwebdir index.\n"
-" Default is False."
+msgid "Glossary"
msgstr ""
msgid ""
-"``ipv6``\n"
-" Whether to use IPv6. Default is False."
-msgstr ""
+"Mercurial reads configuration data from several files, if they exist.\n"
+"Below we list the most specific file first."
+msgstr ""
+"Mercurial læser konfigurationsdata fra flere filer, hvis de\n"
+"eksisterer. Filerne er angivet nedenfor med den mest specifikke fil\n"
+"først."
+
+msgid "On Windows, these configuration files are read:"
+msgstr "På Windows læses disse konfigurationsfiler:"
+
+msgid ""
+"- ``<repo>\\.hg\\hgrc``\n"
+"- ``%USERPROFILE%\\.hgrc``\n"
+"- ``%USERPROFILE%\\mercurial.ini``\n"
+"- ``%HOME%\\.hgrc``\n"
+"- ``%HOME%\\mercurial.ini``\n"
+"- ``C:\\mercurial\\mercurial.ini`` (unless regkey or hgrc.d\\ or mercurial."
+"ini found)\n"
+"- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (unless hgrc.d\\ or mercurial."
+"ini found)\n"
+"- ``<hg.exe-dir>\\hgrc.d\\*.rc`` (unless mercurial.ini found)\n"
+"- ``<hg.exe-dir>\\mercurial.ini``"
+msgstr ""
+"- ``<repo>\\.hg\\hgrc``\n"
+"- ``%USERPROFILE%\\.hgrc``\n"
+"- ``%USERPROFILE%\\Mercurial.ini``\n"
+"- ``%HOME%\\.hgrc``\n"
+"- ``%HOME%\\Mercurial.ini``\n"
+"- ``C:\\Mercurial\\Mercurial.ini`` (med mindre regkey eller hgrc.d\\\n"
+" eller mercurial.ini blev fundet)\n"
+"- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (med mindre hgrc.d\\ eller\n"
+" mercurial.ini blev fundet)\n"
+"- ``<install-dir>\\Mercurial.ini``"
+
+msgid "On Unix, these files are read:"
+msgstr "På Unix læses disse filer:"
msgid ""
-"``logoimg``\n"
-" File name of the logo image that some templates display on each page.\n"
-" The file name is relative to ``staticurl``. That is, the full path to\n"
-" the logo image is \"staticurl/logoimg\".\n"
-" If unset, ``hglogo.png`` will be used."
+"- ``<repo>/.hg/hgrc``\n"
+"- ``$HOME/.hgrc``\n"
+"- ``/etc/mercurial/hgrc``\n"
+"- ``/etc/mercurial/hgrc.d/*.rc``\n"
+"- ``<install-root>/etc/mercurial/hgrc``\n"
+"- ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
msgstr ""
+"- ``<repo>/.hg/hgrc``\n"
+"- ``$HOME/.hgrc``\n"
+"- ``/etc/mercurial/hgrc``\n"
+"- ``/etc/mercurial/hgrc.d/*.rc``\n"
+"- ``<install-root>/etc/mercurial/hgrc``\n"
+"- ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
msgid ""
-"``logourl``\n"
-" Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``\n"
-" will be used."
+"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 ""
msgid ""
-"``name``\n"
-" Repository name to use in the web interface. Default is current\n"
-" working directory."
+" not trusting file <repo>/.hg/hgrc from untrusted user USER, group GROUP"
msgstr ""
+" stoler ikke på filen <depot>/.hg/hgrc fra ubetroet bruger BRUGER, gruppe "
+"GRUPPE"
msgid ""
-"``maxchanges``\n"
-" Maximum number of changes to list on the changelog. Default is 10."
+"If this bothers you, the warning can be silenced (the file would still\n"
+"be ignored) or trust can be established. Use one of the following\n"
+"settings, the syntax is explained below:"
msgstr ""
msgid ""
-"``maxfiles``\n"
-" Maximum number of files to list per changeset. Default is 10."
+"- ``ui.report_untrusted = False``\n"
+"- ``trusted.users = USER``\n"
+"- ``trusted.groups = GROUP``"
msgstr ""
-#, fuzzy
-msgid ""
-"``port``\n"
-" Port to listen on. Default is 8000."
-msgstr "port der skal lyttes på (standard: 8000)"
-
-#, fuzzy
msgid ""
-"``prefix``\n"
-" Prefix path to serve from. Default is '' (server root)."
-msgstr "prefiks sti at udstille fra (default: server-rod)"
-
-msgid ""
-"``push_ssl``\n"
-" Whether to require that inbound pushes be transported over SSL to\n"
-" prevent password sniffing. Default is True."
+"The configuration files for Mercurial use a simple ini-file format. A\n"
+"configuration file consists of sections, led by a ``[section]`` header\n"
+"and followed by ``name = value`` entries::"
msgstr ""
+"Konfigurationsfilerne til Mercurial bruger et simpelt ini-filformat.\n"
+"En konfigurationsfil består af sektioner, som startes af et\n"
+"``[sektion]`` hovede og efterfølges af ``navn = værdi`` indgange::"
msgid ""
-"``staticurl``\n"
-" Base URL to use for static files. If unset, static files (e.g. the\n"
-" hgicon.png favicon) will be served by the CGI script itself. Use\n"
-" this setting to serve them directly with the HTTP server.\n"
-" Example: ``http://hgserver/static/``."
+" [ui]\n"
+" username = Firstname Lastname <firstname.lastname@example.net>\n"
+" verbose = True"
msgstr ""
+" [ui]\n"
+" username = Fornavn Efternavn <fornavn.efternavn@example.net>\n"
+" verbose = True"
msgid ""
-"``stripes``\n"
-" How many lines a \"zebra stripe\" should span in multiline output.\n"
-" Default is 1; set to 0 to disable."
+"The above entries will be referred to as ``ui.username`` and\n"
+"``ui.verbose``, respectively. Please see the hgrc man page for a full\n"
+"description of the possible configuration values:"
msgstr ""
-
-#, fuzzy
-msgid ""
-"``style``\n"
-" Which template map style to use."
-msgstr "skabelon-stil"
+"Indgangene ovenfor vil blive refereret til som henholdsvis\n"
+"``ui.username`` og ``ui.verbose``. Se venligst hgrc manualsiden for en\n"
+"fuld beskrivelse af de mulige konfigurationsværdier:"
msgid ""
-"``templates``\n"
-" Where to find the HTML templates. Default is install path.\n"
+"- on Unix-like systems: ``man hgrc``\n"
+"- online: http://www.selenic.com/mercurial/hgrc.5.html\n"
msgstr ""
+"- på Unix-agtige systemer: ``man hgrc``\n"
+"- online: http://www.selenic.com/mercurial/hgrc.5.html\n"
msgid "Some commands allow the user to specify a date, e.g.:"
msgstr "Nogle kommandoer tillader brugeren at specificere en dato, f.eks.:"
@@ -14278,110 +11142,6 @@ msgstr ""
" baz = !\n"
msgid ""
-"Mercurial supports a functional language for selecting a set of\n"
-"files. "
-msgstr ""
-
-msgid ""
-"Like other file patterns, this pattern type is indicated by a prefix,\n"
-"'set:'. The language supports a number of predicates which are joined\n"
-"by infix operators. Parenthesis can be used for grouping."
-msgstr ""
-
-msgid ""
-"Identifiers such as filenames or patterns must be quoted with single\n"
-"or double quotes if they contain characters outside of\n"
-"``[.*{}[]?/\\_a-zA-Z0-9\\x80-\\xff]`` or if they match one of the\n"
-"predefined predicates. This generally applies to file patterns other\n"
-"than globs and arguments for predicates."
-msgstr ""
-
-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 ""
-
-msgid ""
-"``not x``\n"
-" Files not in x. Short form is ``! x``."
-msgstr ""
-
-msgid "These are the supported infix operators:"
-msgstr ""
-
-msgid ""
-"``x and y``\n"
-" The intersection of files in x and y. Short form is ``x & y``."
-msgstr ""
-
-msgid ""
-"``x or y``\n"
-" The union of files in x and y. There are two alternative short\n"
-" forms: ``x | y`` and ``x + y``."
-msgstr ""
-
-msgid ""
-"``x - y``\n"
-" Files in x but not in y."
-msgstr ""
-
-msgid "The following predicates are supported:"
-msgstr ""
-
-msgid ".. predicatesmarker"
-msgstr ""
-
-msgid "Some sample queries:"
-msgstr ""
-
-#, fuzzy
-msgid ""
-"- Show status of files that appear to be binary in the working directory::"
-msgstr "vis ændrede filer i arbejdskataloget"
-
-msgid " hg status -A \"set:binary()\""
-msgstr ""
-
-msgid "- Forget files that are in .hgignore but are already tracked::"
-msgstr ""
-
-#, fuzzy
-msgid " hg forget \"set:hgignore() and not ignored()\""
-msgstr " hg log -r \"head() and not closed()\""
-
-msgid "- Find text files that contain a string::"
-msgstr ""
-
-msgid " hg locate \"set:grep(magic) and not binary()\""
-msgstr ""
-
-msgid "- Find C files in a non-standard encoding::"
-msgstr ""
-
-#, fuzzy
-msgid " hg locate \"set:**.c and not encoding(ascii)\""
-msgstr " hg log -r \"head() and not closed()\""
-
-msgid "- Revert copies of large binary files::"
-msgstr ""
-
-msgid " hg revert \"set:copied() and binary() and size('>1M')\""
-msgstr ""
-
-msgid "- Remove files listed in foo.lst that contain the letter a or b::"
-msgstr ""
-
-msgid " hg remove \"set: 'listfile:foo.lst' and (**a* or **b*)\""
-msgstr ""
-
-msgid "See also :hg:`help patterns`.\n"
-msgstr ""
-
-msgid ""
"Ancestor\n"
" Any changeset that can be reached by an unbroken chain of parent\n"
" changesets from a given changeset. More precisely, the ancestors\n"
@@ -14390,28 +11150,6 @@ msgid ""
" ancestor. See also: 'Descendant'."
msgstr ""
-#, fuzzy
-msgid ""
-"Bookmark\n"
-" Bookmarks are pointers to certain commits that move when\n"
-" committing. They are similar to tags in that it is possible to use\n"
-" bookmark names in all places where Mercurial expects a changeset\n"
-" ID, e.g., with :hg:`update`. Unlike tags, bookmarks move along\n"
-" when you make a commit."
-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 ""
-" Bookmarks can be renamed, copied and deleted. Bookmarks are local,\n"
-" unless they are explicitly pushed or pulled between repositories.\n"
-" Pushing and pulling bookmarks allow you to collaborate with others\n"
-" on a branch without creating a named branch."
-msgstr ""
-
msgid ""
"Branch\n"
" (Noun) A child changeset that has been created from a parent that\n"
@@ -14889,14 +11627,6 @@ msgid ""
msgstr ""
msgid ""
-"Tag\n"
-" An alternative name given to a changeset. Tags can be used in all\n"
-" places where Mercurial expects a changeset ID, e.g., with\n"
-" :hg:`update`. The creation of a tag is stored in the history and\n"
-" will thus automatically be shared with other using push and pull."
-msgstr ""
-
-msgid ""
"Tip\n"
" The changeset with the highest revision number. It is the changeset\n"
" most recently added in a repository."
@@ -14939,123 +11669,6 @@ msgid ""
msgstr ""
msgid ""
-"Synopsis\n"
-"--------"
-msgstr ""
-
-msgid ""
-"The Mercurial system uses a file called ``.hgignore`` in the root\n"
-"directory of a repository to control its behavior when it searches\n"
-"for files that it is not currently tracking."
-msgstr ""
-
-#, fuzzy
-msgid ""
-"Description\n"
-"-----------"
-msgstr "beskrivelse:\n"
-
-msgid ""
-"The working directory of a Mercurial repository will often contain\n"
-"files that should not be tracked by Mercurial. These include backup\n"
-"files created by editors and build products created by compilers.\n"
-"These files can be ignored by listing them in a ``.hgignore`` file in\n"
-"the root of the working directory. The ``.hgignore`` file must be\n"
-"created manually. It is typically put under version control, so that\n"
-"the settings will propagate to other repositories with push and pull."
-msgstr ""
-
-msgid ""
-"An untracked file is ignored if its path relative to the repository\n"
-"root directory, or any prefix path of that path, is matched against\n"
-"any pattern in ``.hgignore``."
-msgstr ""
-
-msgid ""
-"For example, say we have an untracked file, ``file.c``, at\n"
-"``a/b/file.c`` inside our repository. Mercurial will ignore ``file.c``\n"
-"if any pattern in ``.hgignore`` matches ``a/b/file.c``, ``a/b`` or ``a``."
-msgstr ""
-
-msgid ""
-"In addition, a Mercurial configuration file can reference a set of\n"
-"per-user or global ignore files. See the ``ignore`` configuration\n"
-"key on the ``[ui]`` section of :hg:`help config` for details of how to\n"
-"configure these files."
-msgstr ""
-
-msgid ""
-"To control Mercurial's handling of files that it manages, many\n"
-"commands support the ``-I`` and ``-X`` options; see\n"
-":hg:`help <command>` and :hg:`help patterns` for details."
-msgstr ""
-
-msgid ""
-"An ignore file is a plain text file consisting of a list of patterns,\n"
-"with one pattern per line. Empty lines are skipped. The ``#``\n"
-"character is treated as a comment character, and the ``\\`` character\n"
-"is treated as an escape character."
-msgstr ""
-
-msgid ""
-"Mercurial supports several pattern syntaxes. The default syntax used\n"
-"is Python/Perl-style regular expressions."
-msgstr ""
-
-msgid "To change the syntax used, use a line of the following form::"
-msgstr ""
-
-msgid " syntax: NAME"
-msgstr ""
-
-msgid "where ``NAME`` is one of the following:"
-msgstr ""
-
-msgid ""
-"``regexp``\n"
-" Regular expression, Python/Perl syntax.\n"
-"``glob``\n"
-" Shell-style glob."
-msgstr ""
-
-msgid ""
-"The chosen syntax stays in effect when parsing all patterns that\n"
-"follow, until another syntax is selected."
-msgstr ""
-
-msgid ""
-"Neither glob nor regexp patterns are rooted. A glob-syntax pattern of\n"
-"the form ``*.c`` will match a file ending in ``.c`` in any directory,\n"
-"and a regexp pattern of the form ``\\.c$`` will do the same. To root a\n"
-"regexp pattern, start it with ``^``."
-msgstr ""
-
-msgid ""
-"Example\n"
-"-------"
-msgstr ""
-
-msgid "Here is an example ignore file. ::"
-msgstr ""
-
-msgid ""
-" # use glob syntax.\n"
-" syntax: glob"
-msgstr ""
-
-msgid ""
-" *.elc\n"
-" *.pyc\n"
-" *~"
-msgstr ""
-
-msgid ""
-" # switch to regexp syntax.\n"
-" syntax: regexp\n"
-" ^\\.pc/\n"
-msgstr ""
-
-msgid ""
"Mercurial's internal web server, hgweb, can serve either a single\n"
"repository, or a collection of them. In the latter case, a special\n"
"configuration file can be used to specify the repository paths to use\n"
@@ -15413,10 +12026,7 @@ msgstr "Fillisteeksempler::"
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"
-msgstr ""
-
-msgid "See also :hg:`help filesets`.\n"
+" listfile0:list.txt read list from list.txt with null byte delimiters\n"
msgstr ""
msgid "Mercurial supports several ways to specify individual revisions."
@@ -15482,10 +12092,22 @@ msgid ""
msgstr ""
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 ""
+
+msgid ""
"``not x``\n"
" Changesets not in x. Short form is ``! x``."
msgstr ""
+msgid "These are the supported infix operators:"
+msgstr ""
+
msgid ""
"``x::y``\n"
" A DAG range, meaning all changesets that are descendants of x and\n"
@@ -15520,61 +12142,10 @@ msgid ""
" Changesets in x but not in y."
msgstr ""
-msgid ""
-"``x^n``\n"
-" The nth parent of x, n == 0, 1, or 2.\n"
-" For n == 0, x; for n == 1, the first parent of each changeset in x;\n"
-" for n == 2, the second parent of changeset in x."
-msgstr ""
-
-msgid ""
-"``x~n``\n"
-" The nth first ancestor of x; ``x~0`` is x; ``x~3`` is ``x^^^``."
-msgstr ""
-
-#, fuzzy
-msgid "There is a single postfix operator:"
-msgstr "Der er en enkelt konfigurationsmulighed::"
-
-msgid ""
-"``x^``\n"
-" Equivalent to ``x^1``, the first parent of each changeset in x."
-msgstr ""
-
-msgid ""
-"\n"
-"The following predicates are supported:"
-msgstr ""
-
-msgid ""
-"New predicates (known as \"aliases\") can be defined, using any combination "
-"of\n"
-"existing predicates or other aliases. An alias definition looks like::"
-msgstr ""
-
-msgid " <alias> = <definition>"
-msgstr ""
-
-msgid ""
-"in the ``revsetalias`` section of a Mercurial configuration file. Arguments\n"
-"of the form `$1`, `$2`, etc. are substituted from the alias into the\n"
-"definition."
-msgstr ""
-
-#, fuzzy
-msgid "For example,"
-msgstr "Fillisteeksempler::"
-
-msgid ""
-" [revsetalias]\n"
-" h = heads()\n"
-" d($1) = sort($1, date)\n"
-" rs($1, $2) = reverse(sort($1, $2))"
+msgid "The following predicates are supported:"
msgstr ""
-msgid ""
-"defines three aliases, ``h``, ``d``, and ``rs``. ``rs(0:tip, author)`` is\n"
-"exactly equivalent to ``reverse(sort(0:tip, author))``."
+msgid ".. predicatesmarker"
msgstr ""
msgid "Command line equivalents for :hg:`log`::"
@@ -15599,6 +12170,9 @@ msgstr ""
" -P x -> !::x\n"
" -l x -> limit(expr, x)"
+msgid "Some sample queries:"
+msgstr ""
+
msgid "- Changesets on the default branch::"
msgstr "- Ændringer på default grenen::"
@@ -15646,12 +12220,8 @@ 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."
-msgstr ""
-
-msgid ""
-"Mercurial currently supports Mercurial, Git, and Subversion\n"
-"subrepositories."
+"group. External Mercurial and Subversion projects are currently\n"
+"supported."
msgstr ""
msgid "Subrepositories are made of three components:"
@@ -15659,7 +12229,8 @@ msgstr ""
msgid ""
"1. Nested repository checkouts. They can appear anywhere in the\n"
-" parent working directory."
+" parent working directory, and are Mercurial clones or Subversion\n"
+" checkouts."
msgstr ""
msgid ""
@@ -15671,19 +12242,14 @@ msgstr ""
msgid " path/to/nested = https://example.com/nested/repo/path"
msgstr ""
-msgid " Git and Subversion subrepos are also supported:"
-msgstr ""
-
-msgid ""
-" path/to/nested = [git]git://example.com/nested/repo/path\n"
-" path/to/nested = [svn]https://example.com/nested/trunk/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."
+" filesystem path. Subversion repositories are defined with:"
+msgstr ""
+
+msgid " path/to/nested = [svn]https://example.com/nested/trunk/path"
msgstr ""
msgid ""
@@ -15756,8 +12322,8 @@ msgstr ""
msgid ""
":add: add does not recurse in subrepos unless -S/--subrepos is\n"
-" specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
msgid ""
@@ -15767,32 +12333,31 @@ msgstr ""
msgid ""
":commit: commit creates a consistent snapshot of the state of the\n"
-" entire project and its subrepositories. If any subrepositories\n"
-" have been modified, Mercurial will abort. Mercurial can be made\n"
-" to instead commit all modified subrepositories by specifying\n"
-" -S/--subrepos, or setting \"ui.commitsubrepos=True\" in a\n"
-" configuration file (see :hg:`help config`). After there are no\n"
-" longer any modified subrepositories, it records their state and\n"
-" finally commits it in the parent repository."
+" 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. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" elements. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
msgid ""
":incoming: incoming does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
msgid ""
":outgoing: outgoing does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
msgid ""
@@ -15807,7 +12372,7 @@ 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. Push is a no-op for Subversion subrepositories."
+" repositories."
msgstr ""
msgid ""
@@ -16101,10 +12666,6 @@ msgid "cannot start server at '%s:%d': %s"
msgstr "kan ikke starte server på '%s:%d': %s"
#, python-format
-msgid " %d files changed, %d insertions(+), %d deletions(-)\n"
-msgstr "%d filer ændret, %d indsættelser(+), %d sletninger(-)\n"
-
-#, python-format
msgid "calling hook %s: %s\n"
msgstr ""
@@ -16158,13 +12719,6 @@ msgstr ""
msgid "warning: %s hook %s\n"
msgstr ""
-msgid "kb"
-msgstr ""
-
-#, python-format
-msgid "ignoring invalid [auth] key '%s'\n"
-msgstr "ignorerer ugyldig [auth] nøgle '%s'\n"
-
msgid "connection ended unexpectedly"
msgstr "forbindelsen blev uventet afsluttet"
@@ -16232,6 +12786,10 @@ msgid "repository %s already exists"
msgstr "depotet %s eksisterer allerede"
#, python-format
+msgid "requirement '%s' not supported"
+msgstr "betingelse '%s' er ikke understøttet"
+
+#, python-format
msgid ".hg/sharedpath points to nonexistent directory %s"
msgstr ".hg/sharedpath peger på et ikke-eksisterende katalog %s"
@@ -16267,9 +12825,6 @@ msgstr "ruller afbrudt transaktion tilbage\n"
msgid "no interrupted transaction available\n"
msgstr "ingen afbrudt transaktion tilgængelig\n"
-msgid "no rollback information available\n"
-msgstr "ingen tilbagerulningsinformation til stede\n"
-
#, python-format
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"
@@ -16281,14 +12836,8 @@ 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"
-msgid "rollback of last commit while not checked out may lose data"
-msgstr ""
-
-msgid "use -f to force"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "named branch could not be reset: current branch is still '%s'\n"
+#, python-format
+msgid "Named branch could not be reset, current branch still is: %s\n"
msgstr ""
"Navngiven gren kunne ikke nulstilles, den nuværende gren er stadig: %s\n"
@@ -16302,6 +12851,9 @@ msgstr ""
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"
+
#, python-format
msgid "waiting for lock on %s held by %r\n"
msgstr "venter på lås af %s holdt af %r\n"
@@ -16326,8 +12878,9 @@ msgstr ""
msgid "can't commit subrepos without .hgsub"
msgstr "kan ikke deponere underdepoter uden .hgsub"
-msgid "use --subrepos for recursive commit"
-msgstr ""
+#, python-format
+msgid "uncommitted changes in subrepo %s"
+msgstr "udeponerede ændringer i underdepot %s"
msgid "file not found!"
msgstr "filen blev ikke fundet!"
@@ -16581,8 +13134,7 @@ msgstr ""
"krydser grene (sammenføj grenene eller brug --clean for at kassere "
"ændringerne)"
-#, fuzzy
-msgid "crosses branches (merge branches or update --check to force update)"
+msgid "crosses branches (merge branches or use --check to force update)"
msgstr ""
"krydser grene (sammenføj grenene eller brug --check for at forcere "
"opdateringen)"
@@ -16614,25 +13166,13 @@ msgstr "Tip:"
msgid "Warning!"
msgstr "Advarsel!"
-#, fuzzy, python-format
-msgid "unexpected token: %s"
-msgstr "uventet svar:"
-
-#, fuzzy, python-format
-msgid "not a prefix: %s"
-msgstr "ikke en funktion: %s"
-
-#, fuzzy, python-format
-msgid "not an infix: %s"
-msgstr "ikke en funktion: %s"
-
#, python-format
-msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n"
-msgstr ""
+msgid "cannot create %s: destination already exists"
+msgstr "kan ikke oprette %s: destinationen findes allerede"
-#, fuzzy, python-format
-msgid "cannot patch %s: file is not tracked"
-msgstr "fjerner ikke %s: filen følges ikke\n"
+#, python-format
+msgid "cannot create %s: unable to create destination directory"
+msgstr "kan ikke oprette %s: ikke i stand til at oprette biblioteket"
#, python-format
msgid "unable to find '%s' for patching\n"
@@ -16643,12 +13183,12 @@ msgid "patching file %s\n"
msgstr "retter fil %s\n"
#, python-format
-msgid "bad hunk #%d %s (%d %d %d %d)"
+msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n"
msgstr ""
-#, fuzzy, python-format
-msgid "cannot create %s: destination already exists\n"
-msgstr "kan ikke oprette %s: destinationen findes allerede"
+#, python-format
+msgid "bad hunk #%d %s (%d %d %d %d)"
+msgstr ""
#, python-format
msgid "file %s already exists\n"
@@ -16689,10 +13229,6 @@ msgid "undefined source and destination files"
msgstr ""
#, python-format
-msgid "cannot create %s: destination already exists"
-msgstr "kan ikke oprette %s: destinationen findes allerede"
-
-#, python-format
msgid "unsupported parser state: %s"
msgstr ""
@@ -16708,6 +13244,10 @@ msgid "patch failed to apply"
msgstr "rettelse kunne ikke tilføjes"
#, python-format
+msgid " %d files changed, %d insertions(+), %d deletions(-)\n"
+msgstr "%d filer ændret, %d indsættelser(+), %d sletninger(-)\n"
+
+#, python-format
msgid "exited with status %d"
msgstr "afsluttede med status %d"
@@ -16777,14 +13317,29 @@ msgstr "%s ikke fundet i transaktionen"
msgid "consistency error in delta"
msgstr "konsistensfejl i delta"
-#, fuzzy
-msgid "unknown delta base"
-msgstr "ukendt databaseskema"
+msgid "unknown base"
+msgstr ""
+
+msgid "unterminated string"
+msgstr ""
+
+msgid "syntax error"
+msgstr "syntaksfejl"
+
+msgid "missing argument"
+msgstr "manglende parameter"
#, python-format
msgid "can't use %s here"
msgstr "kan ikke bruge %s her"
+msgid "can't use a list in this context"
+msgstr "en liste kan ikke bruges i denne konteks"
+
+#, python-format
+msgid "not a function: %s"
+msgstr "ikke en funktion: %s"
+
msgid ""
"``adds(pattern)``\n"
" Changesets that add a file matching pattern."
@@ -16812,10 +13367,6 @@ msgid ""
" Changesets that are ancestors of a changeset in set."
msgstr ""
-#, fuzzy
-msgid "~ expects a number"
-msgstr "rev forventer et revisionsnummer"
-
msgid ""
"``author(string)``\n"
" Alias for ``user(string)``."
@@ -16826,22 +13377,16 @@ msgid "author requires a string"
msgstr ""
msgid ""
-"``bisect(string)``\n"
-" Changesets marked in the specified bisect status:"
-msgstr ""
-
-msgid ""
-" - ``good``, ``bad``, ``skip``: csets explicitly marked as good/bad/skip\n"
-" - ``goods``, ``bads`` : csets topologicaly good/bad\n"
-" - ``range`` : csets taking part in the bisection\n"
-" - ``pruned`` : csets that are goods, bads or skipped\n"
-" - ``untested`` : csets whose fate is yet unknown\n"
-" - ``ignored`` : csets ignored due to DAG topology"
+"``bisected(string)``\n"
+" Changesets marked in the specified bisect state (good, bad, skip)."
msgstr ""
msgid "bisect requires a string"
msgstr "bisect kræver en streng"
+msgid "invalid bisect state"
+msgstr "ugyldig tilstand for halvering"
+
msgid ""
"``bookmark([name])``\n"
" The named bookmark or all bookmarks."
@@ -16880,8 +13425,7 @@ msgstr ""
msgid ""
"``contains(pattern)``\n"
-" Revision contains a file matching pattern. See :hg:`help patterns`\n"
-" for information about file patterns."
+" Revision contains pattern."
msgstr ""
#. i18n: "contains" is a keyword
@@ -16898,50 +13442,16 @@ msgid "date requires a string"
msgstr ""
msgid ""
-"``desc(string)``\n"
-" Search commit message for string. The match is case-insensitive."
-msgstr ""
-
-#. i18n: "desc" is a keyword
-#, fuzzy
-msgid "desc requires a string"
-msgstr "id kræver en streng"
-
-msgid ""
"``descendants(set)``\n"
" Changesets which are descendants of changesets in set."
msgstr ""
msgid ""
-"``filelog(pattern)``\n"
-" Changesets connected to the specified filelog."
-msgstr ""
-
-#, fuzzy
-msgid "filelog requires a pattern"
-msgstr "id kræver en streng"
-
-msgid ""
-"``first(set, [n])``\n"
-" An alias for limit()."
-msgstr ""
-
-msgid ""
-"``follow([file])``\n"
-" An alias for ``::.`` (ancestors of the working copy's first parent).\n"
-" If a filename is specified, the history of the given file is followed,\n"
-" including copies."
+"``follow()``\n"
+" An alias for ``::.`` (ancestors of the working copy's first parent)."
msgstr ""
#. i18n: "follow" is a keyword
-msgid "follow takes no arguments or a filename"
-msgstr ""
-
-#, fuzzy
-msgid "follow expected a filename"
-msgstr "vis filnavnet"
-
-#. i18n: "follow" is a keyword
msgid "follow takes no arguments"
msgstr ""
@@ -16957,8 +13467,7 @@ msgstr ""
msgid ""
"``grep(regex)``\n"
" Like ``keyword(string)`` but accepts a regex. Use ``grep(r'...')``\n"
-" to ensure special escape characters are handled correctly. Unlike\n"
-" ``keyword(string)``, the match is case-sensitive."
+" to ensure special escape characters are handled correctly."
msgstr ""
#. i18n: "grep" is a keyword
@@ -16995,7 +13504,7 @@ msgstr ""
msgid ""
"``keyword(string)``\n"
" Search commit message, user name, and names of changed files for\n"
-" string. The match is case-insensitive."
+" string."
msgstr ""
#. i18n: "keyword" is a keyword
@@ -17003,13 +13512,12 @@ msgid "keyword requires a string"
msgstr ""
msgid ""
-"``limit(set, [n])``\n"
-" First n members of set, defaulting to 1."
+"``limit(set, n)``\n"
+" First n members of set."
msgstr ""
#. i18n: "limit" is a keyword
-#, fuzzy
-msgid "limit requires one or two arguments"
+msgid "limit requires two arguments"
msgstr "limit kræver to argumenter"
#. i18n: "limit" is a keyword
@@ -17021,26 +13529,6 @@ msgid "limit expects a number"
msgstr ""
msgid ""
-"``last(set, [n])``\n"
-" Last n members of set, defaulting to 1."
-msgstr ""
-
-#. i18n: "last" is a keyword
-#, fuzzy
-msgid "last requires one or two arguments"
-msgstr "limit kræver to argumenter"
-
-#. i18n: "last" is a keyword
-#, fuzzy
-msgid "last requires a number"
-msgstr "limit kræver et tal"
-
-#. i18n: "last" is a keyword
-#, fuzzy
-msgid "last expects a number"
-msgstr "rev forventer et revisionsnummer"
-
-msgid ""
"``max(set)``\n"
" Changeset with highest revision number in set."
msgstr ""
@@ -17088,11 +13576,6 @@ msgid ""
msgstr ""
#. i18n: "outgoing" is a keyword
-#, fuzzy
-msgid "outgoing takes one or no arguments"
-msgstr "tag tager et eller to argumenter"
-
-#. i18n: "outgoing" is a keyword
msgid "outgoing requires a repository path"
msgstr ""
@@ -17112,10 +13595,6 @@ msgid ""
"directory."
msgstr ""
-#, fuzzy
-msgid "^ expects a number 0, 1, or 2"
-msgstr "rev forventer et revisionsnummer"
-
msgid ""
"``present(set)``\n"
" An empty set, if any revision in set isn't found; otherwise,\n"
@@ -17186,9 +13665,8 @@ msgstr ""
msgid "unknown sort key %r"
msgstr "ukendt sorteringsnøgle %r"
-#, fuzzy
msgid ""
-"``tag([name])``\n"
+"``tag(name)``\n"
" The specified tag by name, or all tagged revisions if no name is given."
msgstr ""
"``tag(navn)``\n"
@@ -17205,7 +13683,7 @@ msgstr "argumentet til tag skal være en streng"
msgid ""
"``user(string)``\n"
-" User name contains string. The match is case-insensitive."
+" User name is string."
msgstr ""
msgid "can't negate that"
@@ -17214,73 +13692,9 @@ msgstr ""
msgid "not a symbol"
msgstr "ikke et symbol"
-#, fuzzy, python-format
-msgid "invalid number of arguments: %s"
-msgstr "ugyldige parametre"
-
msgid "empty query"
msgstr "tomt forespørgsel"
-#, python-format
-msgid "ui.portablefilenames value is invalid ('%s')"
-msgstr ""
-
-#, python-format
-msgid "possible case-folding collision for %s"
-msgstr ""
-
-#, python-format
-msgid "path ends in directory separator: %s"
-msgstr ""
-
-#, python-format
-msgid "path contains illegal component: %s"
-msgstr "stien indeholder ugyldig komponent: %s"
-
-#, python-format
-msgid "path %r is inside nested repo %r"
-msgstr "stien %r er inden i depotet %r"
-
-#, python-format
-msgid "path %r traverses symbolic link %r"
-msgstr "stien %r følger symbolsk link %r"
-
-#, python-format
-msgid "could not symlink to %r: %s"
-msgstr "kunne ikke lave et symbolsk link til %r: %s"
-
-#, python-format
-msgid "recording removal of %s as rename to %s (%d%% similar)\n"
-msgstr "noterer fjernelse af %s som en omdøbning til %s (%d%% lighed)\n"
-
-#, python-format
-msgid "%s has not been committed yet, so no copy data will be stored for %s.\n"
-msgstr ""
-"%s er endnu ikke comitted, så der vil ikke blive gemt kopieringsdata for "
-"%s.\n"
-
-msgid ".hg/requires file is corrupt"
-msgstr ""
-
-#, python-format
-msgid "unknown repository format: requires features '%s' (upgrade Mercurial)"
-msgstr ""
-
-msgid "searching for changes\n"
-msgstr "leder efter ændringer\n"
-
-msgid "queries"
-msgstr ""
-
-msgid "searching"
-msgstr "søger"
-
-msgid "repository is unrelated"
-msgstr "depotet er urelateret"
-
-msgid "warning: repository is unrelated\n"
-msgstr "advarsel: depotet er urelateret\n"
-
msgid "searching for exact renames"
msgstr "leder efter eksakte omdøbninger"
@@ -17313,56 +13727,13 @@ msgstr "intet brugbart svar fra fjernsystemets hg"
msgid "remote: "
msgstr "fjernsystem: "
+msgid "unexpected response:"
+msgstr "uventet svar:"
+
#, python-format
msgid "push refused: %s"
msgstr "skub afvist: %s"
-#, fuzzy
-msgid "Python SSL support not found"
-msgstr "kan ikke bruge TLS: Python SSL support er ikke installeret"
-
-msgid "certificate checking requires Python 2.6"
-msgstr ""
-
-msgid "no certificate received"
-msgstr "modtog ikke noget certifikat"
-
-#, python-format
-msgid "certificate is for %s"
-msgstr "certifikatet er for %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 "could not find web.cacerts: %s"
-msgstr "kunne ikke finde web.cacerts: %s"
-
-#, 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 "host fingerprint for %s can't be verified (Python too old)"
-msgstr ""
-
-#, python-format
-msgid "warning: certificate for %s can't be verified (Python too old)\n"
-msgstr ""
-
#, python-format
msgid "'%s' does not appear to be an hg repository"
msgstr "'%s' ser ikke ud til at være et hg depot"
@@ -17385,13 +13756,13 @@ msgstr "advarsel: underdepot spec-fil %s blev ikke fundet\n"
msgid "subrepo spec file %s not found"
msgstr "underdepot spec-fil %s blev ikke fundet"
+msgid "missing ] in subrepo source"
+msgstr "manglende ] i underdepot kilde"
+
#, python-format
msgid "bad subrepository pattern in %s: %s"
msgstr ""
-msgid "missing ] in subrepo source"
-msgstr "manglende ] i underdepot kilde"
-
#, python-format
msgid ""
" subrepository sources for %s differ\n"
@@ -17446,10 +13817,6 @@ msgid "removing subrepo %s\n"
msgstr "fjerner underdepot %s\n"
#, python-format
-msgid "cloning subrepo %s from %s\n"
-msgstr "kloner underdepot %s fra %s\n"
-
-#, python-format
msgid "pulling subrepo %s from %s\n"
msgstr "hiver underdepot %s fra %s\n"
@@ -17457,14 +13824,6 @@ msgstr "hiver underdepot %s fra %s\n"
msgid "pushing subrepo %s to %s\n"
msgstr "skubber underdepot %s til %s\n"
-#, python-format
-msgid "'svn' executable not found for subrepo '%s'"
-msgstr ""
-
-#, fuzzy
-msgid "cannot retrieve svn tool version"
-msgstr "kan ikke hente hoveder fra git"
-
msgid "cannot commit svn externals"
msgstr "kan ikke deponere svn externals"
@@ -17473,6 +13832,10 @@ msgid "not removing repo %s because it has changes.\n"
msgstr "fjerner ikke depotet %s fordi det er ændret.\n"
#, python-format
+msgid "cloning subrepo %s from %s\n"
+msgstr "kloner underdepot %s fra %s\n"
+
+#, python-format
msgid "revision %s does not exist in subrepo %s\n"
msgstr "revision %s findes ikke i underdepot %s\n"
@@ -17515,219 +13878,6 @@ msgstr "knude '%s' er ikke korrekt formet"
msgid ".hg/cache/tags is corrupt, rebuilding it\n"
msgstr ""
-msgid ""
-":addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n"
-" every line except the last."
-msgstr ""
-
-msgid ""
-":age: Date. Returns a human-readable date/time difference between the\n"
-" given date/time and the current date/time."
-msgstr ""
-
-msgid ""
-":basename: Any text. Treats the text as a path, and returns the last\n"
-" component of the path after splitting by the path separator\n"
-" (ignoring trailing separators). For example, \"foo/bar/baz\" becomes\n"
-" \"baz\" and \"foo/bar//\" becomes \"bar\"."
-msgstr ""
-
-msgid ""
-":date: Date. Returns a date in a Unix date format, including the\n"
-" timezone: \"Mon Sep 04 15:13:13 2006 0700\"."
-msgstr ""
-
-msgid ""
-":domain: Any text. Finds the first string that looks like an email\n"
-" address, and extracts just the domain component. Example: ``User\n"
-" <user@example.com>`` becomes ``example.com``."
-msgstr ""
-
-msgid ""
-":email: Any text. Extracts the first string that looks like an email\n"
-" address. Example: ``User <user@example.com>`` becomes\n"
-" ``user@example.com``."
-msgstr ""
-
-msgid ""
-":escape: Any text. Replaces the special XML/XHTML characters \"&\", \"<\"\n"
-" and \">\" with XML entities."
-msgstr ""
-
-msgid ":fill68: Any text. Wraps the text to fit in 68 columns."
-msgstr ""
-
-msgid ":fill76: Any text. Wraps the text to fit in 76 columns."
-msgstr ""
-
-msgid ":firstline: Any text. Returns the first line of text."
-msgstr ""
-
-msgid ""
-":hex: Any text. Convert a binary Mercurial node identifier into\n"
-" its long hexadecimal representation."
-msgstr ""
-
-msgid ""
-":hgdate: Date. Returns the date as a pair of numbers: \"1157407993\n"
-" 25200\" (Unix timestamp, timezone offset)."
-msgstr ""
-
-msgid ""
-":isodate: Date. Returns the date in ISO 8601 format: \"2009-08-18 13:00\n"
-" +0200\"."
-msgstr ""
-
-msgid ""
-":isodatesec: Date. Returns the date in ISO 8601 format, including\n"
-" seconds: \"2009-08-18 13:00:13 +0200\". See also the rfc3339date\n"
-" filter."
-msgstr ""
-
-msgid ":localdate: Date. Converts a date to local date."
-msgstr ""
-
-msgid ":nonempty: Any text. Returns '(none)' if the string is empty."
-msgstr ""
-
-msgid ""
-":obfuscate: Any text. Returns the input text rendered as a sequence of\n"
-" XML entities."
-msgstr ""
-
-msgid ":person: Any text. Returns the text before an email address."
-msgstr ""
-
-msgid ""
-":rfc3339date: Date. Returns a date using the Internet date format\n"
-" specified in RFC 3339: \"2009-08-18T13:00:13+02:00\"."
-msgstr ""
-
-msgid ""
-":rfc822date: Date. Returns a date using the same format used in email\n"
-" headers: \"Tue, 18 Aug 2009 13:00:13 +0200\"."
-msgstr ""
-
-msgid ""
-":short: Changeset hash. Returns the short form of a changeset hash,\n"
-" i.e. a 12 hexadecimal digit string."
-msgstr ""
-
-msgid ""
-":shortbisect: Any text. Treats `text` as a bisection status, and\n"
-" returns a single-character representing the status (G: good, B: bad,\n"
-" S: skipped, U: untested, I: ignored). Returns single space if `text`\n"
-" is not a valid bisection status."
-msgstr ""
-
-msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
-msgstr ""
-
-msgid ""
-":stringify: Any type. Turns the value into text by converting values into\n"
-" text and concatenating them."
-msgstr ""
-
-msgid ":strip: Any text. Strips all leading and trailing whitespace."
-msgstr ""
-
-msgid ""
-":stripdir: Treat the text as path and strip a directory level, if\n"
-" possible. For example, \"foo\" and \"foo/bar\" becomes \"foo\"."
-msgstr ""
-
-msgid ""
-":tabindent: Any text. Returns the text, with every line except the\n"
-" first starting with a tab character."
-msgstr ""
-
-msgid ""
-":urlescape: Any text. Escapes all \"special\" characters. For example,\n"
-" \"foo bar\" becomes \"foo%20bar\"."
-msgstr ""
-
-msgid ":user: Any text. Returns the user portion of an email address."
-msgstr ""
-
-msgid ":author: String. The unmodified author of the changeset."
-msgstr ""
-
-msgid ":bisect: String. The changeset bisection status."
-msgstr ""
-
-msgid ""
-":branch: String. The name of the branch on which the changeset was\n"
-" committed."
-msgstr ""
-
-msgid ""
-":branches: List of strings. The name of the branch on which the\n"
-" changeset was committed. Will be empty if the branch name was\n"
-" default."
-msgstr ""
-
-msgid ""
-":bookmarks: List of strings. Any bookmarks associated with the\n"
-" changeset."
-msgstr ""
-
-msgid ":children: List of strings. The children of the changeset."
-msgstr ""
-
-msgid ":date: Date information. The date when the changeset was committed."
-msgstr ""
-
-msgid ":desc: String. The text of the changeset description."
-msgstr ""
-
-msgid ""
-":diffstat: String. Statistics of changes with the following format:\n"
-" \"modified files: +added/-removed lines\""
-msgstr ""
-
-msgid ":file_adds: List of strings. Files added by this changeset."
-msgstr ""
-
-msgid ""
-":file_copies: List of strings. Files copied in this changeset with\n"
-" their sources."
-msgstr ""
-
-msgid ""
-":file_copies_switch: List of strings. Like \"file_copies\" but displayed\n"
-" only if the --copied switch is set."
-msgstr ""
-
-msgid ":file_dels: List of strings. Files removed by this changeset."
-msgstr ""
-
-msgid ":file_mods: List of strings. Files modified by this changeset."
-msgstr ""
-
-msgid ""
-":files: List of strings. All files modified, added, or removed by this\n"
-" changeset."
-msgstr ""
-
-msgid ""
-":latesttag: String. Most recent global tag in the ancestors of this\n"
-" changeset."
-msgstr ""
-
-msgid ":latesttagdistance: Integer. Longest path to the latest tag."
-msgstr ""
-
-msgid ""
-":node: String. The changeset identification hash, as a 40 hexadecimal\n"
-" digit string."
-msgstr ""
-
-msgid ":rev: Integer. The repository-local changeset revision number."
-msgstr ""
-
-msgid ":tags: List of strings. Any tags associated with the changeset."
-msgstr ""
-
#, python-format
msgid "unknown method '%s'"
msgstr "ukendt metode '%s'"
@@ -17777,9 +13927,6 @@ msgstr "tilbagerulning gennemført\n"
msgid "rollback failed - please run hg recover\n"
msgstr "tilbagerulning fejlede - kør venligst hg recover\n"
-msgid "already have changeset "
-msgstr "har allerede ændringen "
-
#, python-format
msgid "Not trusting file %s from untrusted user %s, group %s\n"
msgstr "Stoler ikke på filen %s fra ubetroet bruger %s, gruppe %s\n"
@@ -17792,12 +13939,12 @@ msgstr "Ignoreret: %s\n"
msgid "(deprecated '%%' in path %s=%s from %s)\n"
msgstr ""
-#, fuzzy, python-format
-msgid "%s.%s is not a boolean ('%s')"
-msgstr "%s.%s er ikke en sandhedsværdi ('%s')"
+#, python-format
+msgid "ignoring untrusted configuration option %s.%s = %s\n"
+msgstr ""
-#, fuzzy, python-format
-msgid "%s.%s is not an integer ('%s')"
+#, python-format
+msgid "%s.%s not a boolean ('%s')"
msgstr "%s.%s er ikke en sandhedsværdi ('%s')"
msgid "enter a commit username:"
@@ -17826,6 +13973,13 @@ msgstr "kodeord: "
msgid "edit failed"
msgstr "redigering fejlede"
+msgid "file:// URLs can only refer to localhost"
+msgstr ""
+
+#, python-format
+msgid "ignoring invalid [auth] key '%s'\n"
+msgstr "ignorerer ugyldig [auth] nøgle '%s'\n"
+
msgid "http authorization required"
msgstr ""
@@ -17847,6 +14001,52 @@ msgstr "bruger:"
msgid "http auth: user %s, password %s\n"
msgstr "http godkendelse: bruger %s, kodeord %s\n"
+msgid "kb"
+msgstr ""
+
+msgid "certificate checking requires Python 2.6"
+msgstr ""
+
+msgid "no certificate received"
+msgstr "modtog ikke noget certifikat"
+
+#, python-format
+msgid "certificate is for %s"
+msgstr "certifikatet er for %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 "could not find web.cacerts: %s"
+msgstr "kunne ikke finde web.cacerts: %s"
+
+#, 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 "kommandoen '%s' fejlede: %s"
@@ -17863,6 +14063,26 @@ msgstr ""
msgid "filename ends with '%s', which is not allowed on Windows"
msgstr ""
+#, python-format
+msgid "path ends in directory separator: %s"
+msgstr ""
+
+#, python-format
+msgid "path contains illegal component: %s"
+msgstr "stien indeholder ugyldig komponent: %s"
+
+#, python-format
+msgid "path %r is inside nested repo %r"
+msgstr "stien %r er inden i depotet %r"
+
+#, python-format
+msgid "path %r traverses symbolic link %r"
+msgstr "stien %r følger symbolsk link %r"
+
+#, python-format
+msgid "could not symlink to %r: %s"
+msgstr "kunne ikke lave et symbolsk link til %r: %s"
+
msgid "check your clock"
msgstr ""
@@ -17947,9 +14167,6 @@ msgstr "%.0f byte"
msgid "no port number associated with service '%s'"
msgstr "der er ikke knyttet noget portnummer til servicen '%s'"
-msgid "file:// URLs can only refer to localhost"
-msgstr ""
-
msgid "cannot verify bundle or remote repos"
msgstr "kan ikke verificere bundt eller fjerndepoter"
@@ -18128,201 +14345,3 @@ msgstr ""
msgid "push failed:"
msgstr "skub fejlede:"
-
-#~ msgid "%s already exists"
-#~ msgstr "%s eksisterer allerede"
-
-#~ msgid "A patch named %s already exists in the series file"
-#~ msgstr "En rettelse ved navn %s eksisterer allerede i serien"
-
-#~ msgid ""
-#~ " [extensions]\n"
-#~ " notify ="
-#~ msgstr ""
-#~ " [extensions]\n"
-#~ " notify ="
-
-#~ msgid "interpret suffixes to refer to ancestor revisions"
-#~ msgstr "fortolk suffikser for at referere til forfader-revisioner"
-
-#~ msgid ""
-#~ "This extension allows you to use git-style suffixes to refer to the\n"
-#~ "ancestors of a specific revision."
-#~ msgstr ""
-#~ "Denne udvidelse lader dig bruge suffikser i stil med git for at\n"
-#~ "referere til forfædrerne til en bestemt revision."
-
-#~ msgid "For example, if you can refer to a revision as \"foo\", then::"
-#~ msgstr ""
-#~ "For eksempel, hvis du har referere til en revision som \"foo\", så::"
-
-#~ msgid ""
-#~ " foo^N = Nth parent of foo\n"
-#~ " foo^0 = foo\n"
-#~ " foo^1 = first parent of foo\n"
-#~ " foo^2 = second parent of foo\n"
-#~ " foo^ = foo^1"
-#~ msgstr ""
-#~ " foo^N = N'te forældre til foo\n"
-#~ " foo^0 = foo\n"
-#~ " foo^1 = første forældre til foo\n"
-#~ " foo^2 = anden forældre til foo\n"
-#~ " foo^ = foo^1"
-
-#~ msgid ""
-#~ " foo~N = Nth first grandparent of foo\n"
-#~ " foo~0 = foo\n"
-#~ " foo~1 = foo^1 = foo^ = first parent of foo\n"
-#~ " foo~2 = foo^1^1 = foo^^ = first parent of first parent of foo\n"
-#~ msgstr ""
-#~ " foo~N = N'te første bedsteforældre til foo\n"
-#~ " foo~0 = foo\n"
-#~ " foo~1 = foo^1 = foo^ = første forældre til foo\n"
-#~ " foo~2 = foo^1^1 = foo^^ = første forældre til første forældre til foo\n"
-
-#~ msgid "%s Please enter a valid value"
-#~ msgstr "%s Angiv venligst en gyldig værdi"
-
-#~ msgid "Please enter a valid value.\n"
-#~ msgstr "Angiv venligst en gyldig værdi.\n"
-
-#~ msgid "source is descendant of destination"
-#~ msgstr "kilden nedstammer fra destinationen"
-
-#~ msgid "not linkable: %s\n"
-#~ msgstr "kan ikke sammenkædes: %s\n"
-
-#~ msgid "invalid changegroup"
-#~ msgstr "ugyldig changegroup"
-
-#~ msgid "cannot backout a merge changeset without --parent"
-#~ msgstr "kan ikke omgøre en sammenføjning uden --parent"
-
-#~ 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"
-#~ " 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\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"
-#~ " by listing each changeset (tag, or branch name) with -r/--rev.\n"
-#~ " If -r/--rev is used, the cloned repository will contain only a "
-#~ "subset\n"
-#~ " of the changesets of the source repository. Only the set of "
-#~ "changesets\n"
-#~ " defined by all -r/--rev options (including all their ancestors)\n"
-#~ " will be pulled into the destination repository.\n"
-#~ " No subsequent changesets (including subsequent tags) will be present\n"
-#~ " in the destination."
-#~ msgstr ""
-#~ " Der kan angives en mængde af ændringer (mærkater eller navne på\n"
-#~ " grene) som skal hives ved at angive hver ændring (mærkat eller\n"
-#~ " grennavn) med -r/--rev. Hvis -r/--rev tilvalget bruges, så vil det\n"
-#~ " klonede depot kun indeholde en delmængde af ændringerne i\n"
-#~ " kildedepotet. Det er kun mængden af ændringer defineret af alle\n"
-#~ " -r/--rev tilvalgene (inklusiv alle deres forfædre) som vil blive\n"
-#~ " hevet ind i destinationsdepotet. Ingen efterfølgende revisioner\n"
-#~ " (inklusiv efterfølgende mærkater) vil findes i destinationen."
-
-#~ msgid ""
-#~ " Using -r/--rev (or 'clone src#rev dest') implies --pull, even for\n"
-#~ " local source repositories."
-#~ msgstr ""
-#~ " Brug af -r/--rev (eller 'clone kilde#rev destination') medfører\n"
-#~ " --pull, selv ved lokale depoter."
-
-#~ msgid "%s command %s"
-#~ msgstr "%s kommando %s"
-
-#~ msgid "options:\n"
-#~ msgstr "valgmuligheder:\n"
-
-#~ msgid "applied %s\n"
-#~ msgstr "anvendte %s\n"
-
-#~ msgid "not updating, since new heads added\n"
-#~ msgstr "opdaterer ikke idet nye hoveder er tilføjet\n"
-
-#~ msgid ""
-#~ "no files or directories specified; use --all to revert the whole repo"
-#~ msgstr ""
-#~ "ingen filer eller mapper specificeret; brug --all for at føre hele "
-#~ "repo'et tilbage"
-
-#~ msgid "do not prompt, assume 'yes' for any required answers"
-#~ msgstr "spørg ikke, antag alle svar er 'ja'"
-
-#~ msgid "%s not added!\n"
-#~ msgstr "%s ikke tilføjet!\n"
-
-#~ msgid "not in dirstate: %s\n"
-#~ msgstr "ikke i dirstate: %s\n"
-
-#~ msgid ""
-#~ "Mercurial reads configuration data from several files, if they exist.\n"
-#~ "Below we list the most specific file first."
-#~ msgstr ""
-#~ "Mercurial læser konfigurationsdata fra flere filer, hvis de\n"
-#~ "eksisterer. Filerne er angivet nedenfor med den mest specifikke fil\n"
-#~ "først."
-
-#~ msgid "On Windows, these configuration files are read:"
-#~ msgstr "På Windows læses disse konfigurationsfiler:"
-
-#~ msgid ""
-#~ "- ``<repo>\\.hg\\hgrc``\n"
-#~ "- ``%USERPROFILE%\\.hgrc``\n"
-#~ "- ``%USERPROFILE%\\mercurial.ini``\n"
-#~ "- ``%HOME%\\.hgrc``\n"
-#~ "- ``%HOME%\\mercurial.ini``\n"
-#~ "- ``C:\\mercurial\\mercurial.ini`` (unless regkey or hgrc.d\\ or "
-#~ "mercurial.ini found)\n"
-#~ "- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (unless hgrc.d\\ or "
-#~ "mercurial.ini found)\n"
-#~ "- ``<hg.exe-dir>\\hgrc.d\\*.rc`` (unless mercurial.ini found)\n"
-#~ "- ``<hg.exe-dir>\\mercurial.ini``"
-#~ msgstr ""
-#~ "- ``<repo>\\.hg\\hgrc``\n"
-#~ "- ``%USERPROFILE%\\.hgrc``\n"
-#~ "- ``%USERPROFILE%\\Mercurial.ini``\n"
-#~ "- ``%HOME%\\.hgrc``\n"
-#~ "- ``%HOME%\\Mercurial.ini``\n"
-#~ "- ``C:\\Mercurial\\Mercurial.ini`` (med mindre regkey eller hgrc.d\\\n"
-#~ " eller mercurial.ini blev fundet)\n"
-#~ "- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (med mindre hgrc.d\\ eller\n"
-#~ " mercurial.ini blev fundet)\n"
-#~ "- ``<install-dir>\\Mercurial.ini``"
-
-#~ msgid "On Unix, these files are read:"
-#~ msgstr "På Unix læses disse filer:"
-
-#~ msgid ""
-#~ " not trusting file <repo>/.hg/hgrc from untrusted user USER, group GROUP"
-#~ msgstr ""
-#~ " stoler ikke på filen <depot>/.hg/hgrc fra ubetroet bruger BRUGER, "
-#~ "gruppe GRUPPE"
-
-#~ msgid ""
-#~ "- on Unix-like systems: ``man hgrc``\n"
-#~ "- online: http://www.selenic.com/mercurial/hgrc.5.html\n"
-#~ msgstr ""
-#~ "- på Unix-agtige systemer: ``man hgrc``\n"
-#~ "- online: http://www.selenic.com/mercurial/hgrc.5.html\n"
-
-#~ msgid "requirement '%s' not supported"
-#~ msgstr "betingelse '%s' er ikke understøttet"
-
-#~ msgid "cannot create %s: unable to create destination directory"
-#~ msgstr "kan ikke oprette %s: ikke i stand til at oprette biblioteket"
diff --git a/i18n/de.po b/i18n/de.po
index 7a068f0..74f183d 100644
--- a/i18n/de.po
+++ b/i18n/de.po
@@ -2,28 +2,46 @@
# Deutsche Übersetzungen für Mercurial
# Copyright (C) 2009 Matt Mackall and others
#
-# Ãœbersetzer:
-# Tobias Bell
-# Fabian Kreutz
-# Christoph Mewes
-# Martin Roppelt
-# Georg Brandl
-# Martin Schröder
-#
# Ãœbersetzungshilfen
# ==================
-# Die Ãœbersetzungshilfen wurden in das Wiki verlegt
-# und sind auf jeden Fall einen Blick wert!
-# http://mercurial.selenic.com/wiki/GermanTranslation
-#
+#
+# Der Benutzer sollte mit formeller Anrede angesprochen werden. Je nach
+# Fall kann aber auch eine unpersönliche Anrede ("man") verwendet werden.
+#
+# Deutsche Begriffe sind fein, man sollte es aber nicht übertreiben. Ein
+# Hilfstext à la "Beim Versionieren von Etiketten auf Zweigen" hilft
+# niemandem. Erfahrene Benutzer sind kurz irritiert, weil sie bekannte
+# Begriffe vermissen, während neue Nutzer sich eh noch nichts unter den
+# Begriffen vorstellen können und entweder `hg help` oder Google bemühen
+# müssen.
+# Gleichzeitig fördert die Suche nach "Mercurial Etikett" wenig
+# Brauchbares zu Tage.
+# Hier sollten diese krassen Eindeutschungen nur in der Erklärung zu "tag"
+# verwendet, sonst aber eher vermieden werden.
+#
+# branch Branch/Zweig/Verzweigung
+# bundle Bündel
+# change Änderung
+# changeset Änderungssatz
+# check out auschecken
+# commit Commit
+# commit (v) übernehmen
+# deprecated veraltet
+# hook Hook
+# merge zusammenführen
+# notation Schreibweise
+# repository Projektarchiv
+# manage/track versionieren
+#
msgid ""
msgstr ""
"Project-Id-Version: Mercurial\n"
"Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2012-06-15 19:14+0200\n"
-"PO-Revision-Date: 2012-06-19 16:07+0100\n"
-"Last-Translator: Martin Schröder <martinschroeder@vcp-sh.de>\n"
-"Language-Team: \n"
+"POT-Creation-Date: 2011-03-15 10:18+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/) "
+"<>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -32,7 +50,7 @@ msgstr ""
#, python-format
msgid " (default: %s)"
-msgstr " (Voreinstellung: %s)"
+msgstr " (Standard: %s)"
msgid "Options"
msgstr "Optionen"
@@ -109,22 +127,22 @@ msgstr ""
msgid "The allow and deny sections take key-value pairs."
msgstr ""
-"Die Erlaubnis- und Verbotslisten werden in Schlüssel-Wert-Paaren angegeben."
+"Die allow- und deny-Abschnitte werden in Schlüssel-Wert-Paaren angegeben."
msgid ""
"Branch-based Access Control\n"
"..........................."
msgstr ""
-"Zweig-basierte Zugriffskontrolle\n"
-"................................"
+"Branch-basierte Zugriffskontrolle\n"
+"..........................."
msgid ""
"Use the ``acl.deny.branches`` and ``acl.allow.branches`` sections to\n"
"have branch-based access control. Keys in these sections can be\n"
"either:"
msgstr ""
-"Verwenden Sie Abschnitte ``acl.deny.branches`` und ``acl.allow.branches``,\n"
-"um Zugriffe zweigbasiert zu realisieren.\n"
+"Verwenden Sie die Abschnitte ``acl.deny.branches`` und\n"
+"``acl.allow.branches``, um Zugriffe auf Basis von Zweigen zu realisieren.\n"
"Die Schlüssel in diesem Abschnitt können sein:"
msgid ""
@@ -149,7 +167,7 @@ msgid ""
"........................."
msgstr ""
"Pfad-basierte Zugriffskontrolle\n"
-"..............................."
+"........................."
msgid ""
"Use the ``acl.deny`` and ``acl.allow`` sections to have path-based\n"
@@ -157,7 +175,7 @@ msgid ""
"a glob syntax by default). The corresponding values follow the same\n"
"syntax as the other sections above."
msgstr ""
-"Benutzen Sie die ``acl.deny`` und ``acl.allow``-Abschnitte, um eine\n"
+"Benutzen Sie die ``acl.deny`` und ``acl.allow``-Bereiche, um eine\n"
"pfadbasierte Zugriffskontrolle umzusetzen. Schlüssel in diesen Bereichen\n"
"akzeptieren ein Verzeichnismuster (standardmäßig mit glob-Syntax). Die\n"
"entsprechenden Werte folgen derselben Syntax wie in den anderen o.g.\n"
@@ -168,7 +186,7 @@ msgid ""
"......"
msgstr ""
"Gruppen\n"
-"......."
+"......"
msgid ""
"Group names must be prefixed with an ``@`` symbol. Specifying a group\n"
@@ -186,13 +204,12 @@ msgstr ""
"Sie können Gruppen-Mitglieder im ``acl.groups``-Bereich definieren. Wenn\n"
"eine Gruppe nicht existiert und Mercurial auf einem Unix-artigen System\n"
"läuft, wird die Liste der Benutzer vom Betriebssystem abgerufen.\n"
-"Andernfalls wird ein Ausnahmefehler ausgelöst."
+"Andernfalls wird eine Ausnahme ausgelöst."
msgid ""
"Example Configuration\n"
"....................."
-msgstr ""
-"Beispielkonfiguration\n"
+msgstr "Beispielkonfiguration:\n"
"....................."
msgid "::"
@@ -205,8 +222,7 @@ msgid ""
" # Use this if you want to check access restrictions at commit time\n"
" pretxncommit.acl = python:hgext.acl.hook"
msgstr ""
-" # Verwenden Sie dies, wenn Sie den Zugriff zur Zeit der lokalen Ãœbernahme\n"
-" # (commit) prüfen wollen:\n"
+" # Verwenden Sie dies, wenn Sie den Zugriff zur Commitzeit prüfen wollen:\n"
" pretxncommit.acl = python:hgext.acl.hook"
msgid ""
@@ -214,9 +230,9 @@ msgid ""
" # bundle and serve.\n"
" pretxnchangegroup.acl = python:hgext.acl.hook"
msgstr ""
-" # Verwenden Sie dies, wenn Sie den Zugriff beim Synchronisieren mit\n"
-" # anderen Archiven (Übertragen, Abrufen, Bündeln oder Ausliefern (serve))\n"
-" # prüfen wollen.\n"
+" # Verwenden Sie dies, wenn Sie den Zugriff beim Ãœbertragen (push),\n"
+" # Abrufen (pull), Bündeln (bundle) oder Ausliefern (serve) prüfen\n"
+" # wollen.\n"
" pretxnchangegroup.acl = python:hgext.acl.hook"
msgid ""
@@ -235,7 +251,7 @@ msgstr ""
" # oder ssh), \"push\", \"pull\" oder \"bundle\" wenn die zugehörigen "
"Befehle\n"
" # lokal ausgeführt werden.\n"
-" # Voreinstellung: serve\n"
+" # Standard: serve\n"
" sources = serve"
msgid " [acl.deny.branches]"
@@ -245,8 +261,8 @@ msgid ""
" # Everyone is denied to the frozen branch:\n"
" frozen-branch = *"
msgstr ""
-" # Jedem wird der Zugriff auf den Zweig \"gesperrt\" verweigert:\n"
-" gesperrt = *"
+" # Jedem wird der Zugriff auf den frozen-Zweig verweigert:\n"
+" frozen-zweig = *"
msgid ""
" # A bad user is denied on all branches:\n"
@@ -276,8 +292,8 @@ msgid ""
" # The super user is allowed on any branch:\n"
" * = super-user"
msgstr ""
-" # Der Administrator darf auf jeden Zweig zugreifen:\n"
-" * = benutzer-admin"
+" # Der Super-User darf auf jeden Zweig zugreifen:\n"
+" * = super-user"
msgid ""
" # Everyone is allowed on branch-for-tests:\n"
@@ -316,7 +332,7 @@ msgid ""
" # Group \"hg-denied\" will not have write access to any file:\n"
" ** = @hg-denied"
msgstr ""
-" # Die Gruppe \"hg-verboten\" wird auf keine Datei Schreibzugriff haben:\n"
+" # Die Gruppe \"hd-verboten\" wird auf keine Datei Schreibzugriff haben:\n"
" ** = @hg-verboten"
msgid ""
@@ -356,15 +372,15 @@ msgstr ""
" bilder/** = jack, @designer"
msgid ""
-" # Everyone (except for \"user6\" and \"@hg-denied\" - see acl.deny above)\n"
-" # will have write access to any file under the \"resources\" folder\n"
-" # (except for 1 file. See acl.deny):\n"
+" # Everyone (except for \"user6\" - see acl.deny above) will have write\n"
+" # access to any file under the \"resources\" folder (except for 1\n"
+" # file. See acl.deny):\n"
" src/main/resources/** = *"
msgstr ""
" # Jeder (ausgenommen \"benutzer6\", siehe acl.deny oben) wird Schreib-\n"
-" # zugriff auf jede Datei innerhalb des \"ressources\"-Verzeichnisses\n"
+" # zugriff auf jede Datei innerhalb des \"ressourcen\"-Verzeichnisses\n"
" # erhalten (ausgenommen eine Datei; siehe acl.deny):\n"
-" src/main/resources/** = *"
+" src/main/ressourcen/** = *"
msgid " .hgtags = release_engineer"
msgstr " .hgtags = release_engineer"
@@ -379,428 +395,233 @@ msgid ""
msgstr ""
"Konfigurationsfehler - Hook-Typ \"%s\" kann weder eingehende "
"Änderungssätze \n"
-"noch lokales Ãœbernehmen stoppen"
+"noch Commits stoppen"
#, python-format
msgid "acl: user \"%s\" denied on branch \"%s\" (changeset \"%s\")"
msgstr ""
-"acl: Zugriff für \"%s\" auf Zweig \"%s\" abgelehnt (Änderungssatz \"%s\")"
+"acl: Benutzer \"%s\" hat keinen Zugriff auf Zweig \"%s\" (Änderungssatz \"%s"
+"\")"
#, python-format
msgid "acl: user \"%s\" not allowed on branch \"%s\" (changeset \"%s\")"
msgstr ""
-"acl: Zugriff für \"%s\" auf Zweig \"%s\" nicht erlaubt (Änderungssatz \"%s\")"
-
-#, python-format
-msgid "acl: user \"%s\" denied on \"%s\" (changeset \"%s\")"
-msgstr "acl: Zugriff für \"%s\" auf \"%s\" abgelehnt (Änderungssatz \"%s\")"
+"acl: Benutzer \"%s\" hat keinen Zugriff auf Zweig \"%s\" (Änderungssatz \"%s"
+"\")"
#, python-format
-msgid "acl: user \"%s\" not allowed on \"%s\" (changeset \"%s\")"
-msgstr ""
-"acl: Zugriff für \"%s\" auf \"%s\" nicht erlaubt (Änderungssatz \"%s\")"
+msgid "acl: access denied for changeset %s"
+msgstr "acl: Zugriff verweigert auf den Änderungssatz %s"
msgid "hooks for integrating with the Bugzilla bug tracker"
msgstr "Hooks zur Integration mit dem Bugzilla Bugtracker"
msgid ""
"This hook extension adds comments on bugs in Bugzilla when changesets\n"
-"that refer to bugs by Bugzilla ID are seen. The comment is formatted using\n"
-"the Mercurial template mechanism."
+"that refer to bugs by Bugzilla ID are seen. The hook does not change\n"
+"bug status."
msgstr ""
-"Diese Hook-Erweiterung fügt Kommentare zu einem Ticket in Bugzilla hinzu,\n"
-"wenn ein Änderungssatz, der eine Bugzilla-ID enthält, gefunden wird. Der\n"
-"Kommentar wird mithilfe des Mercurial-Vorlagen-Mechanismus formatiert."
+"Diese Hook-Erweiterung fügt Kommentare zu Fehlern in Bugzilla hinzu,\n"
+"wenn ein Änderungssatz gesehen wird, der eine Bugzilla-ID enthält. Der\n"
+"Status des Bugs wird nicht verändert."
-#, fuzzy
msgid ""
-"The bug references can optionally include an update for Bugzilla of the\n"
-"hours spent working on the bug. Bugs can also be marked fixed."
+"The hook updates the Bugzilla database directly. Only Bugzilla\n"
+"installations using MySQL are supported."
msgstr ""
-"Bug-Referenzen können optional eine Angabe zur Aktualisierung der\n"
-"für die Bearbeitung des Bugs benötigten Stundenzahl beinhalten.\n"
-"Bugs können auch als gelöst markiert werden."
-
-msgid "Three basic modes of access to Bugzilla are provided:"
-msgstr "Drei Zugriffsmethoden auf Bugzilla werden unterstützt:"
+"Die Bugzilla-Datenbank wird direkt verändert, daher werden nur MySQL-"
+"Installationen unterstützt."
msgid ""
-"1. Access via the Bugzilla XMLRPC interface. Requires Bugzilla 3.4 or later."
+"The hook relies on a Bugzilla script to send bug change notification\n"
+"emails. That script changes between Bugzilla versions; the\n"
+"'processmail' script used prior to 2.18 is replaced in 2.18 and\n"
+"subsequent versions by 'config/sendbugmail.pl'. Note that these will\n"
+"be run by Mercurial as the user pushing the change; you will need to\n"
+"ensure the Bugzilla install file permissions are set appropriately."
msgstr ""
-"1. Zugriff über die XMLRPC-Schnittstelle. Benötigt Bugzilla 3.4 oder später."
+"Der Hook verlässt sich auf ein Bugzilla-Skript, um E-Mails mit Änderungs-\n"
+"benachrichtungen zu verschicken. Dieses Skript hat sich zwischen\n"
+"den Bugzilla-Versionen verändert; das 'processmail'-Skript aus Versionen\n"
+"vor 2.18 wird in 2.18 und nachfolgenden Versionen durch\n"
+"'config/sendbugmail.pl' ersetzt. Beachten Sie, dass diese Skripts von\n"
+"Mercurial als der Benutzer ausgeführt werden, der die Änderungen\n"
+"überträgt; Sie müssen sicherstellen, dass die Dateiberechtigungen für die\n"
+"Installationsdatei von Bugzilla korrekt gesetzt sind."
msgid ""
-"2. Check data via the Bugzilla XMLRPC interface and submit bug change\n"
-" via email to Bugzilla email interface. Requires Bugzilla 3.4 or later."
+"The extension is configured through three different configuration\n"
+"sections. These keys are recognized in the [bugzilla] section:"
msgstr ""
-"2. Prüft Daten über die XMLRPC-Schnittstelle und sendet Ticket-Änderungen\n"
-" per Email an die Bugzilla Email-Schnittstelle. Benötigt Bugzilla 3.4\n"
-" oder später."
+"Die Erweiterung wird durch drei Abschnitte in der hgrc konfiguriert. Der\n"
+"Abschnitt [bugzilla] kann die folgenden Einträge enthalten:"
msgid ""
-"3. Writing directly to the Bugzilla database. Only Bugzilla installations\n"
-" using MySQL are supported. Requires Python MySQLdb."
+"host\n"
+" Hostname of the MySQL server holding the Bugzilla database."
msgstr ""
-"3. Direktes Schreiben in die Bugzilla Datenbank. Funktioniert nur, wenn die\n"
-" Bugzilla-Instanz MySQL verwendet. Benötigt das Python MySQLdb Modul."
+"host\n"
+" Hostname des Servers auf dem die Bugzilla MySQL-Datenbank läuft."
msgid ""
-"Writing directly to the database is susceptible to schema changes, and\n"
-"relies on a Bugzilla contrib script to send out bug change\n"
-"notification emails. This script runs as the user running Mercurial,\n"
-"must be run on the host with the Bugzilla install, and requires\n"
-"permission to read Bugzilla configuration details and the necessary\n"
-"MySQL user and password to have full access rights to the Bugzilla\n"
-"database. For these reasons this access mode is now considered\n"
-"deprecated, and will not be updated for new Bugzilla versions going\n"
-"forward. Only adding comments is supported in this access mode."
+"db\n"
+" Name of the Bugzilla database in MySQL. Default 'bugs'."
msgstr ""
-"Direktes Schreiben in die Datenbank führt leicht zu Problemen bei Schema-\n"
-"veränderungen und benötigt ein externes Bugzilla Script, um\n"
-"Benachrichtigungsemails zu versenden. Dieses Script wird mit den Rechten "
-"des\n"
-"Mercurial-Benutzers ausgeführt, benötigt eine lokale Bugzilla-Installation\n"
-"sowie Leserechte an der Bugzilla-Konfigurationsdatei und MySQL-Benutzername\n"
-"und -Passwort, um vollen Zugriff auf die Bugzilla Datenbank zu haben. Aus\n"
-"diesen Gründen wird diese Zugriffsmethode als veraltet angesehen und nicht\n"
-"mehr für zukünftigen Bugzillaversionen angepasst. In diesem Zugriffsmodus "
-"ist\n"
-"nur das Hinzufügen von Kommentaren erlaubt."
-
-msgid ""
-"Access via XMLRPC needs a Bugzilla username and password to be specified\n"
-"in the configuration. Comments are added under that username. Since the\n"
-"configuration must be readable by all Mercurial users, it is recommended\n"
-"that the rights of that user are restricted in Bugzilla to the minimum\n"
-"necessary to add comments. Marking bugs fixed requires Bugzilla 4.0 and "
-"later."
-msgstr ""
-"Zugriff über XMLRPC benötigt einen Bugzilla-Benutzernamen und -Passwort in\n"
-"der Konfigurationsdatei. Kommentare werden unter diesem Benutzer eingefügt.\n"
-"Da es notwendig ist, dass alle Mercurial-Benutzer Lesezugriff auf diese "
-"Datei\n"
-"haben, ist es empfohlen dieses Benutzerkonto in Bugzilla mit den minimal\n"
-"nötigen Rechten um Kommentare einzufügen auszustatten.\n"
-"Bugs als gelöst zu markieren benötigt Bugzilla 4.0 oder neuer."
-
-msgid ""
-"Access via XMLRPC/email uses XMLRPC to query Bugzilla, but sends\n"
-"email to the Bugzilla email interface to submit comments to bugs.\n"
-"The From: address in the email is set to the email address of the Mercurial\n"
-"user, so the comment appears to come from the Mercurial user. In the event\n"
-"that the Mercurial user email is not recognised by Bugzilla as a Bugzilla\n"
-"user, the email associated with the Bugzilla username used to log into\n"
-"Bugzilla is used instead as the source of the comment. Marking bugs fixed\n"
-"works on all supported Bugzilla versions."
-msgstr ""
-"Zugriff über XMLRPC/Email verwendet XMLRPC für Anfragen an Bugzilla, aber\n"
-"sendet Emails an die Email-Schnittstelle um Kommentare einzufügen. Die\n"
-"Adresse im 'Absender:'-Feld wird auf die Emailadresse des Mercurial-"
-"Benutzers\n"
-"gesetzt, sodass der Kommentar als vom Mercurial-Benutzer kommend erkannt\n"
-"wird. Falls Bugzilla die Email-Adresse des Mercurial-Benutzers nicht als "
-"Bugzilla-\n"
-"Benutzer erkennt, wird alternativ die Email mit dem Bugzilla-Benutzernamen \n"
-"verknüpft, der zum Anmelden in Bugzilla verwendet wird, und als Quelle des\n"
-"Kommentars verwendet. Bugs als gelöst zu markieren funktioniert in allen\n"
-"Bugzilla-Versionen."
-
-msgid "Configuration items common to all access modes:"
-msgstr "Konfigurationseinträge für alle Zugriffsmethoden:"
-
-msgid ""
-"bugzilla.version\n"
-" This access type to use. Values recognised are:"
-msgstr ""
-"bugzilla.version\n"
-" Die zu verwendende Zugriffsmethod. Erlaubte Werte sind:"
-
-msgid ""
-" :``xmlrpc``: Bugzilla XMLRPC interface.\n"
-" :``xmlrpc+email``: Bugzilla XMLRPC and email interfaces.\n"
-" :``3.0``: MySQL access, Bugzilla 3.0 and later.\n"
-" :``2.18``: MySQL access, Bugzilla 2.18 and up to but not\n"
-" including 3.0.\n"
-" :``2.16``: MySQL access, Bugzilla 2.16 and up to but not\n"
-" including 2.18."
-msgstr ""
-" :``xmlrpc``: Bugzilla XMLRPC Schnittstelle.\n"
-" :``xmlrpc+email``: Bugzilla XMLRPC und Email Schnittstellen.\n"
-" :``3.0``: MySQL Zugriff, Bugzilla 3.0 oder höher.\n"
-" :``2.18``: MySQL Zugriff, Bugzilla 2.18 bis ausschliesslich 3.0.\n"
-" :``2.16``: MySQL Zugriff, Bugzilla 2.16 bis ausschliesslich 2.18."
-
-#, fuzzy
-msgid ""
-"bugzilla.regexp\n"
-" Regular expression to match bug IDs for update in changeset commit "
-"message.\n"
-" It must contain one \"()\" named group ``<ids>`` containing the bug\n"
-" IDs separated by non-digit characters. It may also contain\n"
-" a named group ``<hours>`` with a floating-point number giving the\n"
-" hours worked on the bug. If no named groups are present, the first\n"
-" \"()\" group is assumed to contain the bug IDs, and work time is not\n"
-" updated. The default expression matches ``Bug 1234``, ``Bug no. 1234``,\n"
-" ``Bug number 1234``, ``Bugs 1234,5678``, ``Bug 1234 and 5678`` and\n"
-" variations thereof, followed by an hours number prefixed by ``h`` or\n"
-" ``hours``, e.g. ``hours 1.5``. Matching is case insensitive."
-msgstr ""
-"bugzilla.regexp\n"
-" Regulärer Ausdruck, der auf die zu aktualisierende Bug-ID in der\n"
-" Versionsmeldung passt. Er muss eine `<ids>`` benannte Gruppe \"()\"\n"
-" enthalten, die auf die Bug-IDs getrennt durch Nicht-Zahlen-Zeichen\n"
-" passt. Außerdem kann er eine ``<hours>`` benannte Gruppe mit einer\n"
-" Fließkommazahl enthalten, die die Zahl der Arbeitsstunden für den\n"
-" Bug angibt. Wenn keine benannten Gruppen vorhanden sind, wird \n"
-" angenommen, dass die erste \"()\"-Gruppe die Bug-IDs enthält, und die\n"
-" Arbeitszeit nicht aktualisiert. Der voreingestellte Ausdruck passt auf\n"
-" ``Bug 1234``, ``Bug no. 1234``, ``Bug number 1234``, ``Bugs 1234,5678``,\n"
-" ``Bug 1234 and 5678`` und Variationen davon, gefolgt von einer\n"
-" Stundenzahl, der ein ``h`` oder ``hours`` vorrangestellt ist,\n"
-" beispielsweise ``hours 1.5``.\n"
-" Die Passung ist von Groß-/Kleinschreibung unabhängig."
-
-msgid ""
-"bugzilla.fixregexp\n"
-" Regular expression to match bug IDs for marking fixed in changeset\n"
-" commit message. This must contain a \"()\" named group ``<ids>` "
-"containing\n"
-" the bug IDs separated by non-digit characters. It may also contain\n"
-" a named group ``<hours>`` with a floating-point number giving the\n"
-" hours worked on the bug. If no named groups are present, the first\n"
-" \"()\" group is assumed to contain the bug IDs, and work time is not\n"
-" updated. The default expression matches ``Fixes 1234``, ``Fixes bug "
-"1234``,\n"
-" ``Fixes bugs 1234,5678``, ``Fixes 1234 and 5678`` and\n"
-" variations thereof, followed by an hours number prefixed by ``h`` or\n"
-" ``hours``, e.g. ``hours 1.5``. Matching is case insensitive."
-msgstr ""
-
-#, fuzzy
-msgid ""
-"bugzilla.fixstatus\n"
-" The status to set a bug to when marking fixed. Default ``RESOLVED``."
-msgstr ""
-"bugzilla.fixstatus\n"
-" Der Status, auf den ein Bug gesetzt wird, wenn er als \"fixed\" markiert\n"
-" wurde. Voreinstellung ``RESOLVED``."
-
-#, fuzzy
-msgid ""
-"bugzilla.fixresolution\n"
-" The resolution to set a bug to when marking fixed. Default ``FIXED``."
-msgstr ""
-"bugzilla.fixresolution\n"
-" Die Lösung, die für einen Bug eingestellt wird, der als \"fixed\" "
-"markiert\n"
-" wurde. Voreinstellung ``FIXED``."
+"db\n"
+" Name der Bugzilla-Datenbank in MySQL. Standard: 'bugs'."
msgid ""
-"bugzilla.style\n"
-" The style file to use when formatting comments."
+"user\n"
+" Username to use to access MySQL server. Default 'bugs'."
msgstr ""
-"bugzilla.style\n"
-" Stil-Datei für das Formatieren der Kommentare."
+"user\n"
+" Benutzername zum Zugriff auf den MySQL-Server. Standard: 'bugs'."
msgid ""
-"bugzilla.template\n"
-" Template to use when formatting comments. Overrides style if\n"
-" specified. In addition to the usual Mercurial keywords, the\n"
-" extension specifies:"
-msgstr ""
-"bugzilla.template\n"
-" Vorlagentext für die Bugzilla-Kommentare (anstelle der Stil-Datei).\n"
-" Zusätzlich zu den üblichen Mercurial-Schlüsselworten gibt es:"
-
-msgid ""
-" :``{bug}``: The Bugzilla bug ID.\n"
-" :``{root}``: The full pathname of the Mercurial repository.\n"
-" :``{webroot}``: Stripped pathname of the Mercurial repository.\n"
-" :``{hgweb}``: Base URL for browsing Mercurial repositories."
+"password\n"
+" Password to use to access MySQL server."
msgstr ""
-" :``{bug}``: Die Bugzilla-Ticket-ID.\n"
-" :``{root}``: Der volle Pfad des Mercurial-Archivs.\n"
-" :``{webroot}``: Angepasster Pfad des Mercurial-Archivs.\n"
-" :``{hgweb}``: Basis-URL für alle Mercurial-Archive."
+"password\n"
+" Password zum Zugriff auf den MySQL-Server."
msgid ""
-" Default ``changeset {node|short} in repo {root} refers to bug\n"
-" {bug}.\\ndetails:\\n\\t{desc|tabindent}``"
+"timeout\n"
+" Database connection timeout (seconds). Default 5."
msgstr ""
-" Voreinstellung: ``Änderung {node|short} in Archiv {root}\n"
-" erwähnt Bug {bug}.\\nDetails:\\n\\t{desc|tabindent}``"
+"timeout\n"
+" Datenbank Verbindungs-Zeitgrenze (in Sekunden). Standard: 5."
msgid ""
-"bugzilla.strip\n"
-" The number of path separator characters to strip from the front of\n"
-" the Mercurial repository path (``{root}`` in templates) to produce\n"
-" ``{webroot}``. For example, a repository with ``{root}``\n"
-" ``/var/local/my-project`` with a strip of 2 gives a value for\n"
-" ``{webroot}`` of ``my-project``. Default 0."
+"version\n"
+" Bugzilla version. Specify '3.0' for Bugzilla versions 3.0 and later,\n"
+" '2.18' for Bugzilla versions from 2.18 and '2.16' for versions prior\n"
+" to 2.18."
msgstr ""
-"bugzilla.strip\n"
-" Die Anzahl von Verzeichnisebenen, die vom Anfang des Archivpfads\n"
-" (``{root}`` in Vorlagen) abgeschnitten wird, um ``{webroot}`` zu "
-"erhalten.\n"
-" Zum Beispiel mit ``{root}`` als ``/var/local/mein-projekt`` und einem\n"
-" Wert 2, wird ``{webroot}`` auf ``mein-projekt`` gesetzt. Voreinstellung 0."
+"version\n"
+" Bugzilla-Version. '3.0' für Versionen nach und inklusive 3.0,\n"
+" '2.18' für Versionen seit 2.18 und '2.16' für Versionen davor."
msgid ""
-"web.baseurl\n"
-" Base URL for browsing Mercurial repositories. Referenced from\n"
-" templates as ``{hgweb}``."
+"bzuser\n"
+" Fallback Bugzilla user name to record comments with, if changeset\n"
+" committer cannot be found as a Bugzilla user."
msgstr ""
-"web.baseurl\n"
-" Basis-URL für alle Mercurial-Archive. Kann in Kommentar-Vorlagen als\n"
-" ``{hgweb}`` verwendet werden."
-
-msgid "Configuration items common to XMLRPC+email and MySQL access modes:"
-msgstr "Gemeinsame Zugriffskonfiguration für XMLRPC+email und MySQL:"
+"bzuser\n"
+" Ausweich-Benutzername zum Setzen von Kommentaren, falls der Autor der\n"
+" Änderungen kein Benutzer in Bugzilla ist."
msgid ""
-"bugzilla.usermap\n"
-" Path of file containing Mercurial committer email to Bugzilla user email\n"
-" mappings. If specified, the file should contain one mapping per\n"
-" line::"
+"bzdir\n"
+" Bugzilla install directory. Used by default notify. Default\n"
+" '/var/www/html/bugzilla'."
msgstr ""
-"bugzilla.usermap\n"
-" Pfad zu einer Datei, die Mercurial-Benutzern eine Bugzilla-Benutzer-ID\n"
-" zuweist. Falls angegeben, sollte jede Zeile der Form::"
-
-msgid " committer = Bugzilla user"
-msgstr " Mercurial-Benutzer = Bugzilla-Benutzer"
-
-msgid " See also the ``[usermap]`` section."
-msgstr " entsprechen. Siehe auch ``[usermap]``."
+"bzdir\n"
+" Bugzilla Installationsverzeichnis. Notwendig für die Standard\n"
+" 'notify'-Aktion; Standard: '/var/www/html/bugzilla'."
msgid ""
-"The ``[usermap]`` section is used to specify mappings of Mercurial\n"
-"committer email to Bugzilla user email. See also ``bugzilla.usermap``.\n"
-"Contains entries of the form ``committer = Bugzilla user``."
-msgstr ""
-"Einträge im ``[usermap]``-Abschnitt weisen Mercurial-Benutzern eine\n"
-"Bugzilla-Emailadresse zu. Siehe auch Option ``bugzilla.usermap``.\n"
-"Enthält Einträge der Form ``Mercurial-Benutzer = Bugzilla-Benutzer``"
-
-msgid "XMLRPC access mode configuration:"
-msgstr "XMLRPC Zugriffskonfiguration:"
+"notify\n"
+" The command to run to get Bugzilla to send bug change notification\n"
+" emails. Substitutes from a map with 3 keys, 'bzdir', 'id' (bug id)\n"
+" and 'user' (committer bugzilla email). Default depends on version;\n"
+" from 2.18 it is \"cd %(bzdir)s && perl -T contrib/sendbugmail.pl\n"
+" %(id)s %(user)s\"."
+msgstr ""
+"notify\n"
+" Das Kommando um Hinweis-E-Mails zu versenden. Die drei Schlüssel 'bzdir',\n"
+" 'id' (Bug ID) und 'user' (Überträger) werden ersetzt. Der Standard hängt\n"
+" von der Version ab. Ab 2.18 ist es\n"
+" \"cd %(bzdir)s && perl -T contrib/sendbugmail.pl %(id)s %(user)s\""
msgid ""
-"bugzilla.bzurl\n"
-" The base URL for the Bugzilla installation.\n"
-" Default ``http://localhost/bugzilla``."
+"regexp\n"
+" Regular expression to match bug IDs in changeset commit message.\n"
+" Must contain one \"()\" group. The default expression matches 'Bug\n"
+" 1234', 'Bug no. 1234', 'Bug number 1234', 'Bugs 1234,5678', 'Bug\n"
+" 1234 and 5678' and variations thereof. Matching is case insensitive."
msgstr ""
-"bugzilla.bzurl\n"
-" Die Basis-URL der Bugzilla Installation\n"
-" Voreinstellung ``http://localhost/bugzilla``."
+"regexp\n"
+" Der Reguläre Ausdruck, mit dem Bug-IDs in der Versionsmeldung erkannt\n"
+" werden. Er muss eine \"()\"-Gruppe enthalten. Der Standardwert erkennt:\n"
+" 'Bug 1234', 'Bug no. 1234', 'Bug number 1234', 'Bugs 1234,5678',\n"
+" 'Bug 1234 and 5678' und Variationen. Großschreibung wird ignoriert."
msgid ""
-"bugzilla.user\n"
-" The username to use to log into Bugzilla via XMLRPC. Default\n"
-" ``bugs``."
+"style\n"
+" The style file to use when formatting comments."
msgstr ""
-"bugzilla.user\n"
-" Der Benutzername für den Bugzilla-Zugriff via XMLRPC. Voreinstellung "
-"``bugs``."
+"style\n"
+" Stil-Datei für das Formatieren der Kommentare."
msgid ""
-"bugzilla.password\n"
-" The password for Bugzilla login."
+"template\n"
+" Template to use when formatting comments. Overrides style if\n"
+" specified. In addition to the usual Mercurial keywords, the\n"
+" extension specifies::"
msgstr ""
-"bugzilla.password\n"
-" Das Passwort für den Bugzilla-Zugriff."
-
-msgid ""
-"XMLRPC+email access mode uses the XMLRPC access mode configuration items,\n"
-"and also:"
-msgstr "XMLRPC+email nutzt die gleichen Zugriffskonfiguration wie XMLRPC plus:"
+"template\n"
+" Vorlagentext für die Bugzilla-Kommentare (anstelle der Stil-Datei).\n"
+" Zusätzlich zu den Mercurial-Schlüsselworten gibt es::"
msgid ""
-"bugzilla.bzemail\n"
-" The Bugzilla email address."
+" {bug} The Bugzilla bug ID.\n"
+" {root} The full pathname of the Mercurial repository.\n"
+" {webroot} Stripped pathname of the Mercurial repository.\n"
+" {hgweb} Base URL for browsing Mercurial repositories."
msgstr ""
-"bugzilla.bzemail\n"
-" Die Bugzilla Emailadresse."
+" {bug} Die Bugzilla Bug-ID.\n"
+" {root} Der volle Pfad des Mercurial Archivs.\n"
+" {webroot} Angepasster Pfad des Mercurial Archivs.\n"
+" {hgweb} Basis-URL für alle Mercurial Archive."
msgid ""
-"In addition, the Mercurial email settings must be configured. See the\n"
-"documentation in hgrc(5), sections ``[email]`` and ``[smtp]``."
+" Default 'changeset {node|short} in repo {root} refers '\n"
+" 'to bug {bug}.\\ndetails:\\n\\t{desc|tabindent}'"
msgstr ""
-"Zusütlich müssen der Emailversand für Mercurial konfiguriert werden. Sie\n"
-"dazu die Dokumentation von hgrc(5), Abschnitte ``[email]`` und ``[smtp]``."
-
-msgid "MySQL access mode configuration:"
-msgstr "MySQL Zugriffskonfiguration:"
+" Standard: 'Änderung {node|short} in Archiv {root} erwähnt Bug {bug}.\\n'\n"
+" 'Details:\\n\\t{desc|tabindent}'"
msgid ""
-"bugzilla.host\n"
-" Hostname of the MySQL server holding the Bugzilla database.\n"
-" Default ``localhost``."
+"strip\n"
+" The number of slashes to strip from the front of {root} to produce\n"
+" {webroot}. Default 0."
msgstr ""
-"bugzilla.host\n"
-" Hostname des Servers auf dem die Bugzilla MySQL-Datenbank läuft.\n"
-" Voreinstellung ``localhost``."
+"strip\n"
+" Anzahl der Schrägstriche, die vom Beginn von {root} entfernt werden, um\n"
+" {webroot} zu erhalten. Standard: 0."
msgid ""
-"bugzilla.db\n"
-" Name of the Bugzilla database in MySQL. Default ``bugs``."
+"usermap\n"
+" Path of file containing Mercurial committer ID to Bugzilla user ID\n"
+" mappings. If specified, the file should contain one mapping per\n"
+" line, \"committer\"=\"Bugzilla user\". See also the [usermap] section."
msgstr ""
-"bugzilla.db\n"
-" Name der Bugzilla-Datenbank in MySQL. Voreinstellung: ``bugs``."
+"usermap\n"
+" Pfad zu einer Datei, die Mercurial Benutzern eine Bugzilla-Benutzer-ID\n"
+" zuweist. Falls angegeben, sollte jede Zeile der Form\n"
+" \"Mercurial-Benutzer\"=\"Bugzilla-Benutzer\"\n"
+" entsprechen. Siehe auch [usermap]."
msgid ""
-"bugzilla.user\n"
-" Username to use to access MySQL server. Default ``bugs``."
+"The [usermap] section is used to specify mappings of Mercurial\n"
+"committer ID to Bugzilla user ID. See also [bugzilla].usermap.\n"
+"\"committer\"=\"Bugzilla user\""
msgstr ""
-"bugzilla.user\n"
-" Benutzername zum Zugriff auf den MySQL-Server. Voreinstellung:\n"
-" ``bugs``."
+"Einträge in dieser [usermap] Sektion weisen Mercurial Benutzern eine\n"
+"Bugzilla-BenutzerID zu. Siehe auch Option [bugzilla].usermap.\n"
+"\"Mercurial-Benutzer\"=\"Bugzilla-Benutzer\""
-msgid ""
-"bugzilla.password\n"
-" Password to use to access MySQL server."
-msgstr ""
-"bugzilla.password\n"
-" Password zum Zugriff auf den MySQL-Server."
+msgid "Finally, the [web] section supports one entry:"
+msgstr "Letztlich definiert der Abschnitt [web] noch einen Eintrag:"
msgid ""
-"bugzilla.timeout\n"
-" Database connection timeout (seconds). Default 5."
+"baseurl\n"
+" Base URL for browsing Mercurial repositories. Reference from\n"
+" templates as {hgweb}."
msgstr ""
-"bugzilla.timeout\n"
-" Datenbank Verbindungs-Zeitgrenze (in Sekunden). Voreinstellung 5."
-
-msgid ""
-"bugzilla.bzuser\n"
-" Fallback Bugzilla user name to record comments with, if changeset\n"
-" committer cannot be found as a Bugzilla user."
-msgstr ""
-"bugzilla.bzuser\n"
-" Ausweich-Benutzername zum Setzen von Kommentaren, falls der Autor der\n"
-" Änderungen kein Benutzer in Bugzilla ist."
-
-msgid ""
-"bugzilla.bzdir\n"
-" Bugzilla install directory. Used by default notify. Default\n"
-" ``/var/www/html/bugzilla``."
-msgstr ""
-"bugzilla.bzdir\n"
-" Bugzilla Installationsverzeichnis. Notwendig für die standardmäßige\n"
-" 'notify'-Aktion. Voreinstellung: ``/var/www/html/bugzilla``."
-
-msgid ""
-"bugzilla.notify\n"
-" The command to run to get Bugzilla to send bug change notification\n"
-" emails. Substitutes from a map with 3 keys, ``bzdir``, ``id`` (bug\n"
-" id) and ``user`` (committer bugzilla email). Default depends on\n"
-" version; from 2.18 it is \"cd %(bzdir)s && perl -T\n"
-" contrib/sendbugmail.pl %(id)s %(user)s\"."
-msgstr ""
-"bugzilla.notify\n"
-" Das Kommando um Hinweis-E-Mails zu versenden. Die drei Schlüssel\n"
-" ``bzdir``, ``id`` (Ticket ID) und ``user`` (Autor) werden ersetzt.\n"
-" Die Voreinstellung hängt von der Version ab; ab 2.18 ist es\n"
-" \"cd %(bzdir)s && perl -T contrib/sendbugmail.pl %(id)s %(user)s\""
+"baseurl\n"
+" Basis-URL für alle Mercurial Archive. Kann in Kommentar-Vorlagen als\n"
+" {hgweb} verwendet werden."
msgid "Activating the extension::"
msgstr "Um diese Erweiterung zu aktivieren::"
@@ -818,42 +639,40 @@ msgid ""
" incoming.bugzilla = python:hgext.bugzilla.hook"
msgstr ""
" [hooks]\n"
-" # führt Hook für jede Änderung aus, die hierher abgerufen oder\n"
-" # übertragen wird\n"
+" # führt Einhängeaktion für jede Änderung aus, die hierher geholt oder\n"
+" # geschoben wird\n"
" incoming.bugzilla = python:hgext.bugzilla.hook"
-msgid "Example configurations:"
-msgstr "Beispielkonfigurationen:"
+msgid "Example configuration:"
+msgstr "Beispielkonfiguration:"
msgid ""
-"XMLRPC example configuration. This uses the Bugzilla at\n"
-"``http://my-project.org/bugzilla``, logging in as user\n"
-"``bugmail@my-project.org`` with password ``plugh``. It is used with a\n"
-"collection of Mercurial repositories in ``/var/local/hg/repos/``,\n"
-"with a web interface at ``http://my-project.org/hg``. ::"
+"This example configuration is for a collection of Mercurial\n"
+"repositories in /var/local/hg/repos/ used with a local Bugzilla 3.2\n"
+"installation in /opt/bugzilla-3.2. ::"
msgstr ""
-"XMLRPC Beispielkonfiguration. Genutzt wird Bugzilla auf\n"
-"``http://mein-projekt.org/bugzilla``, mit dem Benutzer\n"
-"``bugmail@mein-projekt.org`` und Password ``plugh``. Die Archive, deren\n"
-"Änderungen dort kommentiert werden, sind in ``/var/local/hg/repos/``,\n"
-"mit einem Web-Interface auf ``http://mein-projekt.org/hg``. ::"
+"Dieses Beispiel geht von einer lokalen Bugzilla 3.2 Installation im\n"
+"Verzeichnis /opt/bugzilla-3.2 und Mercurial-Archiven in\n"
+"/var/local/hg/repos/ aus. ::"
msgid ""
" [bugzilla]\n"
-" bzurl=http://my-project.org/bugzilla\n"
-" user=bugmail@my-project.org\n"
-" password=plugh\n"
-" version=xmlrpc\n"
+" host=localhost\n"
+" password=XYZZY\n"
+" version=3.0\n"
+" bzuser=unknown@domain.com\n"
+" bzdir=/opt/bugzilla-3.2\n"
" template=Changeset {node|short} in {root|basename}.\n"
" {hgweb}/{webroot}/rev/{node|short}\\n\n"
" {desc}\\n\n"
" strip=5"
msgstr ""
" [bugzilla]\n"
-" bzurl=http://mein-project.org/bugzilla\n"
-" user=bugmail@mein-projekt.org\n"
-" password=plugh\n"
-" version=xmlrpc\n"
+" host=localhost\n"
+" password=XYZZY\n"
+" version=3.0\n"
+" bzuser=unbekannt@domain.com\n"
+" bzdir=/opt/bugzilla-3.2\n"
" template=Änderung {node|short} in Archiv {root|basename}.\n"
" {hgweb}/{webroot}/rev/{node|short}\\n\n"
" {desc}\\n\n"
@@ -861,49 +680,10 @@ msgstr ""
msgid ""
" [web]\n"
-" baseurl=http://my-project.org/hg"
+" baseurl=http://dev.domain.com/hg"
msgstr ""
" [web]\n"
-" baseurl=http://mein-projekt.com/hg"
-
-msgid ""
-"XMLRPC+email example configuration. This uses the Bugzilla at\n"
-"``http://my-project.org/bugzilla``, logging in as user\n"
-"``bugmail@my-project.org`` with password ``plugh``. It is used with a\n"
-"collection of Mercurial repositories in ``/var/local/hg/repos/``,\n"
-"with a web interface at ``http://my-project.org/hg``. Bug comments\n"
-"are sent to the Bugzilla email address\n"
-"``bugzilla@my-project.org``. ::"
-msgstr ""
-"XMLRPC+email Beispielkonfiguration. Genutzt wird Bugzilla auf\n"
-"``http://mein-projekt.org/bugzilla``, mit dem Benutzer\n"
-"``bugmail@mein-projekt.org`` und Password ``plugh``. Die Archive, deren\n"
-"Änderungen dort kommentiert werden, sind in ``/var/local/hg/repos/``,\n"
-"mit einem Web-Interface auf ``http://mein-projekt.org/hg``. Die Kommentare\n"
-"werden an die Emailadresse ``bugzilla@mein-projekt.org`` gesendet. ::"
-
-msgid ""
-" [bugzilla]\n"
-" bzurl=http://my-project.org/bugzilla\n"
-" user=bugmail@my-project.org\n"
-" password=plugh\n"
-" version=xmlrpc\n"
-" bzemail=bugzilla@my-project.org\n"
-" template=Changeset {node|short} in {root|basename}.\n"
-" {hgweb}/{webroot}/rev/{node|short}\\n\n"
-" {desc}\\n\n"
-" strip=5"
-msgstr ""
-" [bugzilla]\n"
-" bzurl=http://mein-projekt.org/bugzilla\n"
-" user=bugmail@mein-projekt.org\n"
-" password=plugh\n"
-" version=xmlrpc\n"
-" bzemail=bugzilla@mein-projekt.org\n"
-" template=Änderung {node|short} in Archiv {root|basename}.\n"
-" {hgweb}/{webroot}/rev/{node|short}\\n\n"
-" {desc}\\n\n"
-" strip=5"
+" baseurl=http://dev.domain.com/hg"
msgid ""
" [usermap]\n"
@@ -912,63 +692,20 @@ msgstr ""
" [usermap]\n"
" benutzer@emaildomain.com=benutzer.name@bugzilladomain.com"
-msgid ""
-"MySQL example configuration. This has a local Bugzilla 3.2 installation\n"
-"in ``/opt/bugzilla-3.2``. The MySQL database is on ``localhost``,\n"
-"the Bugzilla database name is ``bugs`` and MySQL is\n"
-"accessed with MySQL username ``bugs`` password ``XYZZY``. It is used\n"
-"with a collection of Mercurial repositories in ``/var/local/hg/repos/``,\n"
-"with a web interface at ``http://my-project.org/hg``. ::"
-msgstr ""
-"MySQL Beispielkonfiguration. Bugzilla 3.2 ist lokal in ``/opt/"
-"bugzilla-3.2``\n"
-"installiert. Die MySQL Datenbank wird per ``localhost`` angesprochen,\n"
-"der Name der Bugzilla Datenbank ist ``bugs`` und der MySQL Zugriff ist für\n"
-"enutzer ``bugs`` mit Password ``XYZZY`` erlaubt. Die Archive, deren\n"
-"Änderungen dort kommentiert werden, sind in ``/var/local/hg/repos/``,\n"
-"mit einem Web-Interface auf ``http://mein-projekt.org/hg``. ::"
-
-msgid ""
-" [bugzilla]\n"
-" host=localhost\n"
-" password=XYZZY\n"
-" version=3.0\n"
-" bzuser=unknown@domain.com\n"
-" bzdir=/opt/bugzilla-3.2\n"
-" template=Changeset {node|short} in {root|basename}.\n"
-" {hgweb}/{webroot}/rev/{node|short}\\n\n"
-" {desc}\\n\n"
-" strip=5"
-msgstr ""
-" [bugzilla]\n"
-" host=localhost\n"
-" password=XYZZY\n"
-" version=3.0\n"
-" bzuser=unbekannt@domain.com\n"
-" bzdir=/opt/bugzilla-3.2\n"
-" template=Änderung {node|short} in Archiv {root|basename}.\n"
-" {hgweb}/{webroot}/rev/{node|short}\\n\n"
-" {desc}\\n\n"
-" strip=5"
-
-msgid "All the above add a comment to the Bugzilla bug record of the form::"
+msgid "Commits add a comment to the Bugzilla bug record of the form::"
msgstr "Eine neue Änderung führt dann zu einem solchen Bugzilla-Kommentar::"
msgid ""
" Changeset 3b16791d6642 in repository-name.\n"
-" http://my-project.org/hg/repository-name/rev/3b16791d6642"
+" http://dev.domain.com/hg/repository-name/rev/3b16791d6642"
msgstr ""
" Änderung 3b16791d6642 in Archivname.\n"
-" http://mein-projekt.org/hg/archivname/rev/3b16791d6642"
+" http://dev.domain.com/hg/archivname/rev/3b16791d6642"
msgid " Changeset commit comment. Bug 1234.\n"
msgstr " Änderungsnachricht des Commits. Bug 1234.\n"
#, python-format
-msgid "python mysql support not available: %s"
-msgstr "MySQL-Unterstützung in Python nicht verfügbar: %s"
-
-#, python-format
msgid "connecting to %s:%s as %s, password %s\n"
msgstr "Verbinde mit %s:%s als %s, Passwort %s\n"
@@ -984,10 +721,6 @@ msgid "unknown database schema"
msgstr "Unbekanntes Datenbankschema"
#, python-format
-msgid "bug %d does not exist\n"
-msgstr "Bug %d existiert nicht\n"
-
-#, python-format
msgid "bug %d already knows about changeset %s\n"
msgstr "Fehler %d hat bereits einen Kommentar über Änderung %s\n"
@@ -1007,7 +740,7 @@ msgid "bugzilla notify command %s"
msgstr "Fehler beim 'notify'-Befehl: %s"
msgid "done\n"
-msgstr "fertig\n"
+msgstr "erledigt\n"
#, python-format
msgid "looking up user %s\n"
@@ -1021,29 +754,10 @@ msgstr "Kann keine Bugzilla Benutzer-ID für %s finden"
msgid "cannot find bugzilla user id for %s or %s"
msgstr "Kann keine Bugzilla Benutzer-ID für %s oder %s finden"
-msgid "Bugzilla/MySQL cannot update bug state\n"
-msgstr "Bugzilla/MySQL kann den Bug-Status nicht aktualisieren\n"
-
-msgid "Bugzilla/XMLRPC needs Bugzilla 4.0 or later to mark bugs fixed\n"
-msgstr ""
-"Bugzilla/XMLRPC benötigt Bugzilla 4.0 oder neuer um Bugs als gelöst zu\n"
-" markieren\n"
-
-msgid "configuration 'bzemail' missing"
-msgstr "Konfiguration für 'bzemail' fehlt"
-
-#, python-format
-msgid "default bugzilla user %s email not found"
-msgstr "Standardmäßige Bugzilla-Benutzer %s Email nicht gefunden"
-
#, python-format
msgid "bugzilla version %s not supported"
msgstr "Bugzilla-Version %s wird nicht unterstützt"
-#, python-format
-msgid "%s: invalid hours\n"
-msgstr "%s: Ungültige Stunden\n"
-
msgid ""
"changeset {node|short} in repo {root} refers to bug {bug}.\n"
"details:\n"
@@ -1054,22 +768,19 @@ msgstr ""
"\t{desc|tabindent}"
#, python-format
+msgid "python mysql support not available: %s"
+msgstr "MySQL-Unterstützung in Python nicht verfügbar: %s"
+
+#, python-format
msgid "hook type %s does not pass a changeset id"
msgstr "Hook-Typ %s übergibt keine Änderungs-ID"
#, python-format
-msgid "Bugzilla error: %s"
-msgstr "Bugzilla Fehler: %s"
+msgid "database error: %s"
+msgstr "Datenbankfehler: %s"
-msgid "command to display child changesets (DEPRECATED)"
-msgstr "Befehl zum Anzeigen von Kindrevisionen (VERALTET)"
-
-msgid ""
-"This extension is deprecated. You should use :hg:`log -r\n"
-"\"children(REV)\"` instead.\n"
-msgstr ""
-"Diese Erweiterung ist veraltet. Benutzen Sie stattdessen:hg:`log -r "
-"\"children(REV)\"`.\n"
+msgid "command to display child changesets"
+msgstr "Befehl zum Anzeigen von Kindrevisionen"
msgid "show the children of the given or working directory revision"
msgstr ""
@@ -1095,7 +806,7 @@ msgid "REV"
msgstr "REV"
msgid "show children of the specified revision"
-msgstr "Zeigt die Kinder der gegebenen Revision"
+msgstr "Zeigt die Kinder der übergebenen Revision"
msgid "hg children [-r REV] [FILE]"
msgstr "hg children [-r REV] [DATEI]"
@@ -1105,7 +816,7 @@ msgstr "Zeigt Statistiken über die Projekthistorie"
#, python-format
msgid "Revision %d is a merge, ignoring...\n"
-msgstr "Revision %d ist eine Zusammenführung. Ignoriere...\n"
+msgstr "Revision %d ist eine Zusammenführung, wird ignoriert...\n"
msgid "analyzing"
msgstr "Analysiere"
@@ -1215,7 +926,7 @@ msgid "count rate by number of changesets"
msgstr "Zählt Anzahl der Änderungssätze"
msgid "sort by key (default: sort by count)"
-msgstr "Sortiere nach Schlüssel (Voreinstellung: nach Anzahl)"
+msgstr "Sortiere nach Schlüssel (Standard: nach Anzahl)"
msgid "display added/removed lines separately"
msgstr "Zeige hinzugefügte/entfernte Zeilen einzeln"
@@ -1233,11 +944,12 @@ msgid "colorize output from some commands"
msgstr "Färbt die Ausgabe einiger Befehle"
msgid ""
-"This extension modifies the status and resolve commands to add color\n"
-"to their output to reflect file status, the qseries command to add\n"
-"color to reflect patch status (applied, unapplied, missing), and to\n"
-"diff-related commands to highlight additions, removals, diff headers,\n"
-"and trailing whitespace."
+"This extension modifies the status and resolve commands to add color to "
+"their\n"
+"output to reflect file status, the qseries command to add color to reflect\n"
+"patch status (applied, unapplied, missing), and to diff-related\n"
+"commands to highlight additions, removals, diff headers, and trailing\n"
+"whitespace."
msgstr ""
"Diese Erweiterung färbt die Ausgabe der Befehle 'status' und 'resolve'\n"
"anhand des Dateistatus, die Ausgabe von 'qseries' anhand des Patchstatus\n"
@@ -1247,19 +959,15 @@ msgstr ""
msgid ""
"Other effects in addition to color, like bold and underlined text, are\n"
-"also available. By default, the terminfo database is used to find the\n"
-"terminal codes used to change color and effect. If terminfo is not\n"
-"available, then effects are rendered with the ECMA-48 SGR control\n"
+"also available. Effects are rendered with the ECMA-48 SGR control\n"
"function (aka ANSI escape codes)."
msgstr ""
"Neben Farbänderungen sind auch andere Effekte wie Fettschreibung oder\n"
-"Unterstreichung möglich. Standardmäßig wird die terminfo Datenbank für die\n"
-"Terminalkommandos befragt. Falls terminfo nicht erreichbar ist, werden die\n"
-"Effekte durch die ECMA-48 SGR Funktionen (ANSI Escape Codes) realisiert."
+"Unterstreichung möglich. Die Effekte werden durch die ECMA-48 SGR\n"
+"Funktionen (ANSI Escape Codes) realisiert."
msgid "Default effects may be overridden from your configuration file::"
-msgstr ""
-"Standardeffekte können durch die Konfigurationsdatei verändert werden::"
+msgstr "Standardeffekte können durch die .hgrc-Datei verändert werden::"
msgid ""
" [color]\n"
@@ -1339,109 +1047,32 @@ msgstr ""
" branches.inactive = none"
msgid ""
-" tags.normal = green\n"
-" tags.local = black bold"
+"The color extension will try to detect whether to use ANSI codes or\n"
+"Win32 console APIs, unless it is made explicit::"
msgstr ""
-" tags.normal = green\n"
-" tags.local = black bold"
-
-msgid ""
-"The available effects in terminfo mode are 'blink', 'bold', 'dim',\n"
-"'inverse', 'invisible', 'italic', 'standout', and 'underline'; in\n"
-"ECMA-48 mode, the options are 'bold', 'inverse', 'italic', and\n"
-"'underline'. How each is rendered depends on the terminal emulator.\n"
-"Some may not be available for a given terminal type, and will be\n"
-"silently ignored."
-msgstr ""
-"Die verfügbaren Effekte im terminfo-Modus sind 'blink' (blinkend), 'bold'\n"
-"(fettgeschrieben), 'dim' (gedämmt), 'inverse' (Vorder- und Hintergrund\n"
-"getauscht), 'italic' (Schrägschrift), 'standout' (hervorstehend) und\n"
-"'underline' (unterstrichen); im ECMA-48 Modus nur 'bold', 'inverse',\n"
-"'italic' und 'underline'. Wie dies tatsächlich aussieht, hängt vom "
-"Terminal-\n"
-"emulator ab. Effekte, die nicht realisiert werden können, werden ohne\n"
-"Warnung ignoriert."
-
-msgid ""
-"Note that on some systems, terminfo mode may cause problems when using\n"
-"color with the pager extension and less -R. less with the -R option\n"
-"will only display ECMA-48 color codes, and terminfo mode may sometimes\n"
-"emit codes that less doesn't understand. You can work around this by\n"
-"either using ansi mode (or auto mode), or by using less -r (which will\n"
-"pass through all terminal control codes, not just color control\n"
-"codes)."
-msgstr ""
-"Beachten Sie, dass terminfo-Farben in Verbindung mit der pager-Erweiterung\n"
-"und 'less -R' zu Problemen führen kann. 'less' wird mit der -R Option nur\n"
-"ECMA-48 Farbcodes anzeigen und der terminfo-Modus sendet manchmal Werte,\n"
-"die 'less' nicht versteht. Eine Abhilfe ist der ansi (oder auto) -Modus\n"
-"oder 'less -r', was alle Terminalkodes unverändert durchleitet."
-
-msgid ""
-"Because there are only eight standard colors, this module allows you\n"
-"to define color names for other color slots which might be available\n"
-"for your terminal type, assuming terminfo mode. For instance::"
-msgstr ""
-"Dieses Modul erlaubt im terminfo-Modus die Definition neuer Farben für\n"
-"die Plätze oberhalb der acht Standardfarben. Zum Beispiel::"
-
-msgid ""
-" color.brightblue = 12\n"
-" color.pink = 207\n"
-" color.orange = 202"
-msgstr ""
-" color.brightblue = 12\n"
-" color.pink = 207\n"
-" color.orange = 202"
-
-msgid ""
-"to set 'brightblue' to color slot 12 (useful for 16 color terminals\n"
-"that have brighter colors defined in the upper eight) and, 'pink' and\n"
-"'orange' to colors in 256-color xterm's default color cube. These\n"
-"defined colors may then be used as any of the pre-defined eight,\n"
-"including appending '_background' to set the background to that color."
-msgstr ""
-"um Hellblau (brightblue) auf Platz 12 zu setzen (nützlich für 16-Farben-\n"
-"Terminale, die in den oberen acht Plätzen die helleren Farben setzen) und\n"
-"Rosa und Orange auf ihre Plätze im Standard-Farbwürfel eines 256-Farben\n"
-"XTerms. Diese Farben können nun genau wie die vordefinierten Acht verwendet\n"
-"werden, auch als Hintergrundfarbe durch Anhängen von '_background'."
-
-msgid ""
-"By default, the color extension will use ANSI mode (or win32 mode on\n"
-"Windows) if it detects a terminal. To override auto mode (to enable\n"
-"terminfo mode, for example), set the following configuration option::"
-msgstr ""
-"Standardmäßig wird die Fareberweiterung den ANSI-Modus (bzw. win32-Modus\n"
-"auf Windows) verwenden, falls ein Terminal gefunden wird (also keine\n"
-"Umleitung in eine Datei). Um den auto-Modus zu überschreiben (z.B. mit dem\n"
-"terminfo-Modus), muss die folgende Konfigurationsoption gesetzt werden::"
+"Die color-Erweiterung wird versuchen, herauszufinden, ob ANSI-Codes oder\n"
+"die Win32-Konsolen-API verwendet werden muss, es sei denn, dies wird\n"
+"explizit angegeben::"
msgid ""
" [color]\n"
-" mode = terminfo"
+" mode = ansi"
msgstr ""
" [color]\n"
-" mode = terminfo"
+" mode = ansi"
-msgid ""
-"Any value other than 'ansi', 'win32', 'terminfo', or 'auto' will\n"
-"disable color.\n"
+msgid "Any value other than 'ansi', 'win32', or 'auto' will disable color."
msgstr ""
-"Jeder Wert außer 'ansi', 'win32', 'terminfo' oder 'auto' wird Farben\n"
-"deaktivieren.\n"
-
-msgid "no terminfo entry for setab/setaf: reverting to ECMA-48 color\n"
-msgstr "Kein terminfo-Eintrag für setab/setaf: Falle auf ECMA-48 zurück\n"
-
-#, python-format
-msgid "warning: failed to set color mode to %s\n"
-msgstr "Warnung: Konnte Farbmodus nicht auf %s setzen\n"
+"Jeder Wert außer 'ansi', 'win32' oder 'auto' wird die Farben deaktivieren."
#, python-format
msgid "ignoring unknown color/effect %r (configured in color.%s)\n"
msgstr "Ignoriere unbekannte Farbe/Effekt %r (gesetzt in color.%s)\n"
+#, python-format
+msgid "warning: failed to set color mode to %s\n"
+msgstr ""
+
#. i18n: 'always', 'auto', and 'never' are keywords and should
#. not be translated
msgid "when to colorize (boolean, always, auto, or never)"
@@ -1552,9 +1183,9 @@ msgid ""
" 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 standardmäßigen\n"
-" Stelle (standardmäßig ``<dest>/.hg/shamap``) abgelegt. Die ``REVMAP``\n"
-" ist eine einfache Textdatei, die die IDs aus dem Quellarchiv mit denen\n"
+" Wenn <REVMAP> nicht gegeben ist, wird es in einer standardisierten\n"
+" Stelle (standardmäßig <dest>/.hg/shamap) abgelegt. Die <REVMAP> ist\n"
+" eine einfache Textdatei, die die IDs aus dem Quellarchiv mit denen\n"
" aus dem Zielarchiv verknüpft. Das Format ist::"
msgid " <source ID> <destination ID>"
@@ -1584,7 +1215,8 @@ msgid " source author = destination author"
msgstr " Quellautor = Zielautor"
msgid " Empty lines and lines starting with a ``#`` are ignored."
-msgstr " Leere Zeilen und Zeilen, die mit ``#`` beginnen, werden ignoriert."
+msgstr ""
+" Leere Zeilen werden ignoriert, ebenso Zeilen, die mit ``#`` beginnen."
msgid ""
" The filemap is a file that allows filtering and remapping of files\n"
@@ -1690,7 +1322,7 @@ msgstr ""
" Datei haben das folgende Format::"
msgid " original_branch_name new_branch_name"
-msgstr " originaler_zweig_name neuer_zweig_name"
+msgstr " original_zweig_name neuer_zweig_name"
msgid ""
" where \"original_branch_name\" is the name of the branch in the\n"
@@ -1699,10 +1331,10 @@ msgid ""
" branch names. This can be used to (for instance) move code in one\n"
" repository from \"default\" to a named branch."
msgstr ""
-" Dabei ist \"originaler_zweig_name\" der Name des Zweigs im Quellarchiv\n"
-" und \"neuer_zweig_name\" der Name im Zielarchiv. Leerzeichen sind in\n"
-" Zweignamen nicht erlaubt. Dies kann benutzt werden, um beispielsweise\n"
-" Quellcode in einem Archiv aus dem \"default\"-Zweig in einen benannten\n"
+" Dabei ist \"original_zweig_name\" der Name des Zweigs im Quellarchiv\n"
+" und \"neuer_zweig_name\" der Name im Zielarchiv. Leerraum ist in\n"
+" Zweignamen nicht erlaubt. Dies kann benutzt werden, um zum Beispiel\n"
+" Quellcode aus einem Archiv aus dem default-Zweig in einen benannten\n"
" Zweig zu verschieben."
msgid ""
@@ -1710,13 +1342,13 @@ msgid ""
" ''''''''''''''''"
msgstr ""
" Mercurial als Quelle\n"
-" ''''''''''''''''''''"
+" --------------------"
msgid ""
" The Mercurial source recognizes the following configuration\n"
" options, which you can set on the command line with ``--config``:"
msgstr ""
-" Die Mercurial-Quelle kennt die folgenden Konfigurations-Optionen\n"
+" Die Mercurial Source kennt die folgenden Konfigurations-Optionen\n"
" die Sie auf der Kommando-Zeile mit ``--config`` setzen können"
msgid ""
@@ -1725,32 +1357,32 @@ msgid ""
" converting from and to Mercurial. Default is False."
msgstr ""
" :convert.hg.ignoreerrors: Ignoriere Integritäts-Fehler beim Lesen.\n"
-" Benutzen Sie dies, um Mercurial-Archive mit fehlenden revlogs\n"
+" Benutzen Sie dies, um Mercurial Repositories mit fehlenden revlogs\n"
" zu reparieren, während Sie von oder nach Mercurial konvertieren.\n"
-" Voreinstellung ist False."
+" Default ist False."
msgid ""
" :convert.hg.saverev: store original revision ID in changeset\n"
-" (forces target IDs to change). It takes a boolean argument and\n"
-" defaults to False."
+" (forces target IDs to change). It takes and boolean argument\n"
+" and defaults to False."
msgstr ""
" :convert.hg.saverev: Speichere die originale Revision ID im Changeset\n"
" (erzwingt geänderte Target IDs). Nimmt ein boolean Argument\n"
-" und hat die Voreinstellung False."
+" und hat den Default 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: Konvertiere Start Revision und ihre Decendants.\n"
-" Erwartet eine hg-Revisions-ID, standardmäßig 0."
+" Nimmt einen hg Revision ID, der Default ist 0."
msgid ""
" CVS Source\n"
" ''''''''''"
msgstr ""
" CVS als Quelle\n"
-" ''''''''''''''"
+" --------------"
msgid ""
" CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n"
@@ -1776,13 +1408,12 @@ msgstr ""
msgid " The following options can be used with ``--config``:"
msgstr " Die folgenden Optionen können mit ``--config`` genutzt werden:"
-#, fuzzy
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: Setzen Sie dies auf False, um Remote Log Caching\n"
-" auszuschalten, zum Testen und Debuggen. Voreinstellung ist True."
+" auszuschalten, zum Testen und Debuggen. Default is True."
msgid ""
" :convert.cvsps.fuzz: Specify the maximum time (in seconds) that is\n"
@@ -1791,11 +1422,11 @@ msgid ""
" part of a changeset then the default may not be long enough.\n"
" The default is 60."
msgstr ""
-" :convert.cvsps.fuzz: Gibt die maximale Zeit (in Sekunden) an, die\n"
+" :convert.cvsps.fuzz: Spezifiziere die maximale Zeit (in Sekunden), die\n"
" zwischen Commits mit identischem User und Log Meldung in einem\n"
-" einzelnen Änderungssatz erlaubt ist. Wenn sehr große Files\n"
-" übernommen als Teil eines Änderungssatzes, ist die Voreinstellung\n"
-" möglicherweise nicht lang genug. Die Voreinstellung ist 60."
+" einzelnen Changeset erlaubt ist. Wenn sehr große Files eingecheckt\n"
+" werden als Teil eines Changesets, ist der Default möglicherweise\n"
+" nicht lang genug. Der Default ist 60."
msgid ""
" :convert.cvsps.mergeto: Specify a regular expression to which\n"
@@ -1810,7 +1441,7 @@ msgstr ""
" auftritt, fügt der Konvertierungsvorgang eine Dummy Revision\n"
" ein, bei der der Branch, in dem die Ãœbereinstimmung aufgetreten\n"
" ist, mit dem Branch zusammengeführt wird, den die Regex anzeigt.\n"
-" Voreinstellung ist ``{{mergetobranch ([-\\w]+)}}``"
+" Default ist ``{{mergetobranch ([-\\w]+)}}``"
msgid ""
" :convert.cvsps.mergefrom: Specify a regular expression to which\n"
@@ -1823,8 +1454,8 @@ msgstr ""
" auf Commit Log Meldungen angewandt wird. Wenn eine Ãœbereinstimmung\n"
" auftritt, wird der Konvertierungsvorgang die jüngste Revision auf\n"
" auf dem Branch zufügen, der in der Regex als zweiter Parent des\n"
-" Changesets angezeigt wird.\n"
-" Voreinstellung ist ``{{mergefrombranch ([-\\w]+)}}``"
+" Changesets angezeigt wird. Default ist ``{{mergefrombranch\n"
+" ([-\\w]+)}}``"
msgid ""
" :hook.cvslog: Specify a Python function to be called at the end of\n"
@@ -1864,9 +1495,8 @@ msgid ""
" '''''''''''''''''"
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"
@@ -1881,7 +1511,7 @@ msgid ""
msgstr ""
" Die trunk/branch/tag-Konvention von Subversion wird automatisch\n"
" erkannt: Standardmäßig wird entweder die angegebene Quell-URL\n"
-" ``svn://repo/pfad/`` oder ein Unterverzeichnis \"trunk\" (falls dies \n"
+" \"svn://repo/pfad\" oder ein Unterverzeichnis \"trunk\" (falls dies \n"
" existiert) als einzelner (default) Zweig angenommen. Wenn ein\n"
" \"branches\"-Unterverzeichnis gefunden wird, so werden dessen\n"
" Unterverzeichnisse als mögliche Zweige aufgenommen. Wenn \"tags\" \n"
@@ -1899,21 +1529,21 @@ msgid ""
" The default is ``branches``."
msgstr ""
" :convert.svn.branches: Spezifiziere das Verzeichnis, das die Branches\n"
-" enthält. Voreinstellung ist ``branches``."
+" enthält. Der Default ist ``branches``."
msgid ""
" :convert.svn.tags: specify the directory containing tags. The\n"
" default is ``tags``."
msgstr ""
" :convert.svn.tags: Spezifiziere das Verzeichnis, das die Tags enthält.\n"
-" Voreinstellung ist ``tags``."
+" Der Default ist ``tags``."
msgid ""
" :convert.svn.trunk: specify the name of the trunk branch. The\n"
" default is ``trunk``."
msgstr ""
" :convert.svn.trunk: Spezifiziere den Namen des trunk Branches. Der\n"
-" Voreinstellung ist ``trunk``."
+" Default ist ``trunk``."
msgid ""
" Source history can be retrieved starting at a specific revision,\n"
@@ -1936,7 +1566,7 @@ msgid ""
" '''''''''''''''"
msgstr ""
" Perforce als Quelle\n"
-" '''''''''''''''''''"
+" -------------------"
msgid ""
" The Perforce (P4) importer can be given a p4 depot path or a\n"
@@ -1971,8 +1601,8 @@ msgid ""
" Mercurial Destination\n"
" '''''''''''''''''''''"
msgstr ""
-" Mercurial als Ziel\n"
-" ''''''''''''''''''"
+" Mercurial Ziel\n"
+" ''''''''''''''"
msgid " The following options are supported:"
msgstr " Die folgenden Optionen werden unterstützt:"
@@ -1982,22 +1612,22 @@ msgid ""
" clones. The default is False."
msgstr ""
" :convert.hg.clonebranches: Verteile Source Branches in unterschiedliche\n"
-" Clones. Voreinstellung ist False."
+" Clones. Der Default ist False."
msgid ""
" :convert.hg.tagsbranch: branch name for tag revisions, defaults to\n"
" ``default``."
msgstr ""
-" :convert.hg.tagsbranch: Branch Name für Tag Revisionen.\n"
-" Voreinstellung ist ``default``."
+" :convert.hg.tagsbranch: Branch Name für Tag Revisionen. Der Default\n"
+" ist ``default``."
msgid ""
" :convert.hg.usebranchnames: preserve branch names. The default is\n"
" True.\n"
" "
msgstr ""
-" :convert.hg.usebranchnames: Erhalte Branch Names.\n"
-" Voreinstellung ist True.\n"
+" :convert.hg.usebranchnames: Erhalte Branch Names. Der Default ist\n"
+" True.\n"
" "
msgid "create changeset information from CVS"
@@ -2092,15 +1722,6 @@ msgstr "ignoriert aus Kompatibilitätsgründen"
msgid "hg debugcvsps [OPTION]... [PATH]..."
msgstr "hg debugcvsps [OPTION]... [PATH]..."
-msgid ":svnrev: String. Converted subversion revision number."
-msgstr ":svnrev: Zeichenkette. Die konvertierte subversion-Revisionsnummer."
-
-msgid ":svnpath: String. Converted subversion revision project path."
-msgstr ":svnpath: Zeichenkette. Der konvertierte subversion-Projektpfad."
-
-msgid ":svnuuid: String. Converted subversion revision repository identifier."
-msgstr ":svnuuid: Zeichenkette. Der konvertierte subversion-Archivbezeichner."
-
#, python-format
msgid "%s does not look like a Bazaar repository"
msgstr "%s scheint kein Bazaar-Archiv zu sein"
@@ -2119,8 +1740,8 @@ msgid "bzr source type could not be determined\n"
msgstr "Bazaar-Quelltyp konnte nicht ermittelt werden\n"
#, python-format
-msgid "%s is not a valid revision"
-msgstr "%s ist keine gültige Revision"
+msgid "%s is not a valid revision in current branch"
+msgstr "%s ist keine gültige Revision im aktuellen Zweig"
#, python-format
msgid "%s is not available in %s anymore"
@@ -2147,10 +1768,6 @@ msgid "could not open map file %r: %s"
msgstr "Konnte Abbildungsdatei %r nicht öffnen: %s"
#, python-format
-msgid "syntax error in %s(%d): child parent1[,parent2] expected"
-msgstr "Syntaxfehler in %s(%d): Nachfolger Vorgänger1[,Vorgänger2] erwartet"
-
-#, python-format
msgid "%s: invalid source repository type"
msgstr "%s: Ungültiger Quellarchiv-Typ"
@@ -2168,6 +1785,10 @@ msgid "convert: %s\n"
msgstr "convert: %s\n"
#, python-format
+msgid "%s\n"
+msgstr ""
+
+#, python-format
msgid "%s: unknown repository type"
msgstr "%s: Unbekannter Archivtyp"
@@ -2180,14 +1801,6 @@ msgstr "Revisionen"
msgid "scanning"
msgstr "Durchsuchen"
-#, fuzzy, python-format
-msgid "splice map revision %s is not being converted, ignoring\n"
-msgstr "Spleißdatei-Revision %s wird nicht konvertiert und ignoriert\n"
-
-#, fuzzy, python-format
-msgid "unknown splice map parent: %s"
-msgstr "Unbekannte Spleißdatei-Vorgänger %s"
-
#, python-format
msgid "unknown sort mode: %s"
msgstr "Unbekannte Sortiermethode: %s"
@@ -2449,18 +2062,7 @@ msgid "filtering out empty revision\n"
msgstr "Filtere leere Revision aus\n"
msgid "updating tags\n"
-msgstr "Aktualisiere Etiketten\n"
-
-msgid "updating bookmarks\n"
-msgstr "Aktualisiere Lesezeichen\n"
-
-#, fuzzy, python-format
-msgid ""
-"revision %s not found in destination repository (lookups with "
-"clonebranches=true are not implemented)"
-msgstr ""
-"Revision %s wurde im Ziel-Archiv nicht gefunden (Lookups mit "
-"clonebranches=true sind nicht implementiert)"
+msgstr "Aktualisiere Tags\n"
#, python-format
msgid "%s is not a valid start revision"
@@ -2474,46 +2076,10 @@ msgstr "Ignoriere: %s\n"
msgid "%s does not look like a monotone repository"
msgstr "%s scheint kein monotone-Archiv zu sein"
-msgid "bad mtn packet - no end of commandnbr"
-msgstr "Fehlerhaftes mtn-Paket - Ende von commandnbr nicht gefunden"
-
-#, python-format
-msgid "bad mtn packet - bad stream type %s"
-msgstr "Fehlerhaftes mtn-Paket - Falscher Stromtyp %s"
-
-msgid "bad mtn packet - no divider before size"
-msgstr "Fehlerhaftes mtn-Paket - Kein Teiler vor der Größenangabe"
-
-msgid "bad mtn packet - no end of packet size"
-msgstr "Fehlerhaftes mtn-Paket - Ende der Größenangabe nicht gefunden"
-
-#, python-format
-msgid "bad mtn packet - bad packet size %s"
-msgstr "Fehlerhaftes mtn-Paket - Ungültige Größenangabe %s"
-
-#, python-format
-msgid "bad mtn packet - unable to read full packet read %s of %s"
-msgstr ""
-"Fehlerhaftes mtn-Paket - Konnte Paket %s von %s nicht vollständig auslesen"
-
-#, python-format
-msgid "mtn command '%s' returned %s"
-msgstr "mtn Befehl '%s' gab %s zurück"
-
#, python-format
msgid "copying file in renamed directory from '%s' to '%s'"
msgstr "Kopiere Dateien in unbenanntem Verzeichnis von '%s' nach '%s'"
-msgid "unable to determine mtn automate interface version"
-msgstr "Konnte die Version der mtn automate-Schnittstelle nicht herausfinden"
-
-#, python-format
-msgid "mtn automate stdio header unexpected: %s"
-msgstr ""
-
-msgid "failed to reach end of mtn automate stdio headers"
-msgstr "Konnte den Endpunkt der mtn automate-Schnittstelle nicht erreichen"
-
#, python-format
msgid "%s does not look like a P4 repository"
msgstr "%s scheint kein P4-Archiv zu sein"
@@ -2529,24 +2095,20 @@ msgstr ""
"Mercurial konnte sich selbst nicht ausführen, prüfe, ob die Programmdatei\n"
"in PATH enthalten ist."
-#, fuzzy, python-format
-msgid "log stream exception '%s'"
-msgstr "Log-Stream-Ausnahme'%s'"
-
msgid ""
"svn: cannot probe remote repository, assume it could be a subversion "
"repository. Use --source-type if you know better.\n"
msgstr ""
"SVN: Kann entferntes Projektarchiv nicht untersuchen; nehme an, es handelt "
"sich um ein Subversion-Projektarchiv.\n"
-"Verwende --source, wenn Sie es besser wissen.\n"
+"Verwende --source, wenn du es besser weißt.\n"
#, python-format
msgid "%s does not look like a Subversion repository"
msgstr "%s scheint kein Subversion-Archiv zu sein"
msgid "Could not load Subversion python bindings"
-msgstr "Subversion Python-API konnte nicht geladen werden"
+msgstr ""
#, python-format
msgid "Subversion python bindings %d.%d found, 1.4 or later required"
@@ -2594,10 +2156,6 @@ msgid "svn: no revision found after start revision %d"
msgstr "SVN: Keine Revision nach Startrevision %d gefunden"
#, python-format
-msgid "svn: revision %s not found"
-msgstr "SVN: Revision %s nicht gefunden"
-
-#, python-format
msgid "%s not found up to revision %d"
msgstr "%s nicht bis Revision %d gefunden"
@@ -2633,12 +2191,6 @@ msgstr "Konnte mit SVN-Ausgabe nichts anfangen"
msgid "writing Subversion tags is not yet implemented\n"
msgstr "Schreiben von Subversion-Tags ist noch nicht implementiert\n"
-#, python-format
-msgid ""
-"splice map revision %s not found in subversion child map (revision lookups "
-"are not implemented)"
-msgstr ""
-
msgid "automatically manage newlines in repository files"
msgstr "Verwaltet automatisch Zeilenumbrüche in Archivdateien"
@@ -2691,8 +2243,7 @@ msgstr ""
"Dateien mit dem deklarierten Format ``CRLF`` oder ``LF`` werden immer\n"
"in diesem Format ausgecheckt; Dateien, die als binär (``BIN``) angegeben\n"
"sind, werden nicht verändert. Zusätzlich kann ``native`` als Alias für\n"
-"die Voreinstellung des jeweiligen Systems verwendet werden: ``LF`` unter "
-"Unix\n"
+"den Standard des jeweiligen Systems verwendet werden: ``LF`` unter Unix\n"
"(inkl. Mac OS X) und ``CRLF`` unter Windows. Beachten Sie, dass ``BIN ``\n"
"(nichts ändern) Mercurials Standardverhalten ist; es dient nur dazu,\n"
"um ein späteres, allgemeineres Muster zu überschreiben."
@@ -2713,12 +2264,11 @@ msgstr ""
"einer einzelnen Einstellung, ``native``, die angibt, wie Dateien, die\n"
"als ``native`` gespeichert werden sollen (``[patterns]``-Bereich),\n"
"behandelt werden. Der Wert kann auf ``CRLF`` oder ``LF`` gesetzt werden.\n"
-"Die Voreinstellung ist ``LF``. Zum Beispiel bedeutet dies, dass unter\n"
-"Windows Dateien, die als ``native`` (standardmäßig ``CRLF``)\n"
-" gespeichert werden sollen, nach ``LF`` konvertiert werden, bevor sie im\n"
-"Archiv abgelegt werden. Dateien, die als ``LF``, ``CRLF`` oder ``BIN``\n"
-"in ``[patterns]`` angeben wurden, werden immer ungeändert ins Archiv\n"
-"übernommen."
+"Der Standard ist ``LF``. Zum Beispiel bedeutet dies, dass unter Windows\n"
+"Dateien, die als ``native`` (standardmäßig ``CRLF``) gespeichert werden\n"
+"sollen, nach ``LF`` konvertiert werden, bevor sie im Archiv abgelegt\n"
+"werden. Dateien, die als ``LF``, ``CRLF`` oder ``BIN`` in ``[patterns]``\n"
+"angeben wurden, werden immer ungeändert ins Archiv übernommen."
msgid "Example versioned ``.hgeol`` file::"
msgstr "Beispiel ``.hgeol``-Datei::"
@@ -2756,14 +2306,13 @@ msgstr ""
" um alle Dateien zu berühren."
msgid ""
-"The extension uses an optional ``[eol]`` section read from both the\n"
-"normal Mercurial configuration files and the ``.hgeol`` file, with the\n"
-"latter overriding the former. You can use that section to control the\n"
-"overall behavior. There are three settings:"
+"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:"
msgstr ""
"Die Erweiterung verwendet einen optionalen ``[eol]``-Bereich in der\n"
-"Konfigurationsdatei und mit höherer Priorität in der ``.hgeol``-Datei, um\n"
-"das systemweite Verhalten zu definieren. Es gibt drei Einstellungen:"
+"Konfigurationsdatei (nicht die ``.hgeol``-Datei), um das systemweite\n"
+"Verhalten zu definieren. Es gibt zwei Einstellungen:"
msgid ""
"- ``eol.native`` (default ``os.linesep``) can be set to ``LF`` or\n"
@@ -2771,9 +2320,9 @@ msgid ""
" checkout. This can be used with :hg:`archive` on Unix, say, to\n"
" generate an archive where files have line endings for Windows."
msgstr ""
-"- ``eol.native`` (Voreinstellung ``os.linesep``) kann auf ``LF`` oder\n"
+"- ``eol.native`` (Standard ist ``os.linesep``) kann auf ``LF`` oder\n"
" ``CRLF`` gesetzt werden, um die Interpretation von ``native`` beim\n"
-" Aktualisieren zu überschreiben. Dies kann mit :hg:``archive`` unter Unix\n"
+" Auschecken zu überschreiben. Dies kann mit :hg:``archive`` unter Unix\n"
" verwendet werden, um bspw. ein Archiv zu erzeugen, in dem alle Dateien\n"
" Windows-Zeilenumbrüche haben."
@@ -2792,15 +2341,6 @@ msgstr ""
" gutem Grund wechselnde Zeilenumbrüche haben."
msgid ""
-"- ``eol.fix-trailing-newline`` (default False) can be set to True to\n"
-" ensure that converted files end with a EOL character (either ``\\n``\n"
-" or ``\\r\\n`` as per the configured patterns)."
-msgstr ""
-"- ``eol.fix-trailing-newline`` (standardmäßig False) kann auf True gesetzt\n"
-" werden um sicherzustellen, dass die konvertierten Dateien mit einem\n"
-" konfigurierten Zeilenumbruch enden (entweder ``\\n`` oder ``\\r\\n``)."
-
-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"
@@ -2814,22 +2354,17 @@ msgstr ""
msgid ""
"The ``win32text.forbid*`` hooks provided by the win32text extension\n"
-"have been unified into a single hook named ``eol.checkheadshook``. The\n"
-"hook will lookup the expected line endings from the ``.hgeol`` file,\n"
-"which means you must migrate to a ``.hgeol`` file first before using\n"
-"the hook. ``eol.checkheadshook`` only checks heads, intermediate\n"
-"invalid revisions will be pushed. To forbid them completely, use the\n"
-"``eol.checkallhook`` hook. These hooks are best used as\n"
-"``pretxnchangegroup`` hooks."
-msgstr ""
-"Die ``win32text.forbid*`` Hooks, die von der win32text Extension zur\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 ""
+"The ``win32text.forbid*`` Hooks, die von der win32text Extension zur\n"
"Verfügung gestellt werden, sind in einem einzelnen Hook zusammengeführt\n"
-"worden: ``eol.checkheadshook``. Der Hook liest die erwarteten Zeilenenden\n"
-"aus der ``.hgeol`` Datei aus, daher muss zuerst eine ``.hgeol`` Datei\n"
-"anlegen werden, bevor Sie den Hook verwenden können. Er werden nur\n"
-"Kopfversionen geprüft; intermediäre Revisionen mit ungültigen Zeilenenden\n"
-"werden übertragen. Um auch dies zu verbieten, kann der ``eol.checkallhook``\n"
-"verwendet werden. Sie eignen sich am besten für ``pretxnchangegroup`` Hooks."
+"worden, ``eol.hook``. Der Hook wird die erwarteten Zeilenendungen aus der\n"
+"``.hgeol`` Datei auslesen, was bedeutet, daß Sie zuerst eine ``.hgeol``\n"
+"Datei anlegen müssen, bevor Sie den Hook benutzen können."
msgid ""
"See :hg:`help patterns` for more information about the glob patterns\n"
@@ -2839,24 +2374,25 @@ msgstr ""
"Glob-Muster.\n"
#, python-format
-msgid "ignoring unknown EOL style '%s' from %s\n"
-msgstr "Ignoriere unbekannten EOL-Stil '%s' aus '%s'\n"
+msgid "%s should not have CRLF line endings"
+msgstr "%s sollte keine CRLF-Zeilenumbrüche haben"
#, python-format
-msgid "warning: ignoring .hgeol file due to parse error at %s: %s\n"
-msgstr "Warning: Ignoriere .hgeol Datei wegen eines Parserfehlers bei %s: %s\n"
+msgid "%s should not have LF line endings"
+msgstr "%s sollte keine LF-Zeilenumbrüche haben"
#, python-format
-msgid " %s in %s should not have %s line endings"
-msgstr " %s in %s sollte keine %s-Zeilenumbrüche haben"
-
-msgid "end-of-line check failed:\n"
-msgstr "Zeilende-Prüfung fehlgeschlagen:\n"
+msgid "warning: ignoring .hgeol file due to parse error at %s: %s\n"
+msgstr ""
msgid "the eol extension is incompatible with the win32text extension\n"
msgstr "Die eol-Erweiterung ist inkompatibel mit der win32text-Erweiterung.\n"
#, python-format
+msgid "ignoring unknown EOL style '%s' from %s\n"
+msgstr "Ignoriere unbekannten EOL-Stil '%s' aus '%s'\n"
+
+#, python-format
msgid "inconsistent newline style in %s\n"
msgstr "Inkonsistente Zeilenumbrüche in %s\n"
@@ -2876,7 +2412,7 @@ msgstr ""
"Optionen aufgerufen. Dies sind die Pfad zu den zu vergleichenden Daten."
msgid ""
-"The extdiff extension also allows you to configure new diff commands, so\n"
+"The extdiff extension also allows to configure new diff commands, so\n"
"you do not need to type :hg:`extdiff -p kdiff3` always. ::"
msgstr ""
"Die extdiff-Erweiterung erlaubt auch die Definition von neuen\n"
@@ -2918,15 +2454,13 @@ msgid ""
" # (see http://www.vim.org/scripts/script.php?script_id=102) Non\n"
" # English user, be sure to put \"let g:DirDiffDynamicDiffText = 1\" in\n"
" # your .vimrc\n"
-" vimdiff = gvim -f \"+next\" \\\n"
-" \"+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))\""
+" vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'"
msgstr ""
-" # Fügt Kommando \"vimdiff\" hinzu, welches gvimdiff mit dem DirDiff-"
+" # Fügt Kommando \"vimdiff\" hinzu, welches gvimdiff mit dem DirDiff "
"Plugin\n"
" # ausführt. (http://www.vim.org/scripts/script.php?script_id=102).\n"
" # Die .vimrc sollte dazu \"let g:DirDiffDynamicDiffText = 1\" enthalten.\n"
-" vimdiff = gvim -f \"+next\" \\\n"
-" \"+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))\""
+" vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'"
msgid "Tool arguments can include variables that are expanded at runtime::"
msgstr ""
@@ -2937,13 +2471,11 @@ msgid ""
" $parent1, $plabel1 - filename, descriptive label of first parent\n"
" $child, $clabel - filename, descriptive label of child revision\n"
" $parent2, $plabel2 - filename, descriptive label of second parent\n"
-" $root - repository root\n"
" $parent is an alias for $parent1."
msgstr ""
" $parent1, $plabel1 - Dateiname, Beschreibung des ersten Vorfahren\n"
" $child, $clabel - Dateiname, Beschreibung der Kindrevision\n"
" $parent2, $plabel2 - Dateiname, Beschreibung des zweiten Vorfahren\n"
-" $root - Wurzelverzeichnis des Projektarchivs\n"
" $parent ist ein Alias für $parent1."
msgid ""
@@ -3069,78 +2601,14 @@ msgstr ""
msgid "hg %s [OPTION]... [FILE]..."
msgstr "hg %s [OPTION]... [DATEI]..."
-msgid "http authentication with factotum"
-msgstr "HTTP-Authentifizierung mit factotum"
-
-msgid ""
-"This extension allows the factotum(4) facility on Plan 9 from Bell Labs\n"
-"platforms to provide authentication information for HTTP access. "
-"Configuration\n"
-"entries specified in the auth section as well as authentication information\n"
-"provided in the repository URL are fully supported. If no prefix is "
-"specified,\n"
-"a value of \"*\" will be assumed."
+msgid "pull, update and merge in one command"
msgstr ""
-
-msgid "By default, keys are specified as::"
-msgstr "Standardmäßig werden Schlüssel wie folgt angegeben::"
-
-msgid ""
-" proto=pass service=hg prefix=<prefix> user=<username> !password=<password>"
-msgstr ""
-" proto=pass service=hg prefix=<Präfix> user=<Benutzername> !"
-"password=<Passwort>"
-
-msgid ""
-"If the factotum extension is unable to read the required key, one will be\n"
-"requested interactively."
-msgstr ""
-"Wenn die Factotum-Erweiterung den benötigten Schlüssel nicht lesen kann,\n"
-" wird man interaktiv danach gefragt."
-
-msgid ""
-"A configuration section is available to customize runtime behavior. By\n"
-"default, these entries are::"
-msgstr ""
-"Ein Konfigurations-Abschnitt ist verfügbar, um das Laufzeitverhalten\n"
-"anzupassen. Standartmäßig sind die Einträge die folgenden::"
-
-msgid ""
-" [factotum]\n"
-" executable = /bin/auth/factotum\n"
-" mountpoint = /mnt/factotum\n"
-" service = hg"
-msgstr ""
-" [factotum]\n"
-" executable = /bin/auth/factotum\n"
-" mountpoint = /mnt/factotum\n"
-" service = hg"
-
-msgid ""
-"The executable entry defines the full path to the factotum binary. The\n"
-"mountpoint entry defines the path to the factotum file service. Lastly, the\n"
-"service entry controls the service name used when reading keys."
-msgstr ""
-"Der \"executable\"-Eintrag gibt den vollen Pfad zur Programmdatei von\n"
-"Factotum am. Der \"mountpoint\"-Eintrag gibt den Pfad zum\n"
-"Factotum-Dateidienst an. Zum Schluss setzt der \"service\"-Eintrag den\n"
-"Dienstnamen, der beim Lesen der Schlüssel verwendet wird."
-
-msgid "factotum not interactive"
-msgstr "Factotum ist nicht interaktiv"
-
-msgid "factotum not responding"
-msgstr "Factotum reagiert nicht"
-
-msgid "pull, update and merge in one command (DEPRECATED)"
-msgstr ""
-"Abrufen, Aktualisieren und Zusammenführen in einem Befehl zusammengefasst "
-"(VERALTET)"
+"Holen, Aktualisieren und Zusammenführen in einem Befehl zusammengefasst"
msgid "pull changes from a remote repository, merge new changes if needed."
msgstr ""
-"Ruft Änderungen aus einem entfernten Projektarchiv ab und führt sie, falls "
-"nötig, zusammen."
+"Holt Änderungen aus einem entfernten Projektarchiv, führt neue Änderungen "
+"zusammen wenn nötig."
msgid ""
" This finds all changes from the repository at the specified path\n"
@@ -3155,25 +2623,27 @@ msgid ""
" Otherwise, the working directory is updated to include the new\n"
" changes."
msgstr ""
-" Wenn die abgerufenen Änderungen einen neuen Zweigkopf erzeugen, wird\n"
-" dieser Kopf automatisch zusammengeführt und das Resultat als neue\n"
-" Revision übernommen. Andernfalls wird das Arbeitsverzeichnis mit den\n"
-" neue Änderungen aktualisiert."
+" Wenn die geholten Änderungen einen neuen Zweigkopf erzeugen, wird "
+"dieser\n"
+" Kopf automatisch zusammengeführt, und das Resultat der Zusammenführung\n"
+" wird eine neue Version. Andernfalls wird das Arbeitsverzeichnis mit den\n"
+" geholten Änderungen aktualisiert."
msgid ""
-" When a merge is needed, the working directory is first updated to\n"
-" the newly pulled changes. Local changes are then merged into the\n"
-" pulled changes. To switch the merge order, use --switch-parent."
+" When a merge occurs, the newly pulled changes are assumed to be\n"
+" \"authoritative\". The head of the new changes is used as the first\n"
+" parent, with local changes as the second. To switch the merge\n"
+" order, use --switch-parent."
msgstr ""
-" Wenn eine Zusammenführung benötigt wird, wird zunächst das\n"
-" Arbeitsverzeichnis auf die neuen Änderungen aktualisiert.\n"
-" Lokale Änderungen werden dann mit den heruntergeladenen\n"
-" zusammengeführt. Um die Reihenfolge zu ändern, benutzen Sie\n"
-" --switch-parent."
+" Sollte eine Zusammenführung ausgelöst werden, gelten die neu geholten\n"
+" Änderungen als \"führend\"· Der Kopf der neuen Änderungen wird als\n"
+" erste Vorgängerversion genutzt, die lokalen Änderungen darauffolgend.\n"
+" 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."
msgstr ""
-" Siehe :hg:`help dates` für eine Liste gültiger Formate für -d/--date."
+" Siehe 'hg help dates' für eine Liste gültiger Formate für -d/--date."
msgid ""
" Returns 0 on success.\n"
@@ -3185,8 +2655,8 @@ msgstr ""
msgid ""
"working dir not at branch tip (use \"hg update\" to check out branch tip)"
msgstr ""
-"Arbeitsverzeichnis ist nicht Spitze des Zweiges (nutze \"hg update\" um auf\n"
-"die Zweigspitze zu wechseln)"
+"Arbeitsverzeichnis ist nicht Spitze (tip) des Zweiges (nutze 'hg update' um\n"
+"auf die Zweigspitze zu wechseln)"
msgid "outstanding uncommitted merge"
msgstr "Ausstehende nicht versionierte Zusammenführung"
@@ -3206,7 +2676,7 @@ msgstr ""
#, python-format
msgid "pulling from %s\n"
-msgstr "Rufe von %s ab\n"
+msgstr "Hole von %s\n"
msgid ""
"Other repository doesn't support revision lookup, so a rev cannot be "
@@ -3237,7 +2707,7 @@ msgstr ""
"Neuer Änderungssatz %d:%s führt entfernte Änderungen mit lokalen zusammen\n"
msgid "a specific revision you would like to pull"
-msgstr "Revision, die geholt werden soll"
+msgstr "Revision die geholt werden soll"
msgid "edit commit message"
msgstr "Editiere Versionsmeldung"
@@ -3269,9 +2739,6 @@ msgstr "%s Anmerkung: Signatur ist veraltet (signiert von: \"%s\")\n"
msgid "%s Note: This key has expired (signed by: \"%s\")\n"
msgstr "%s Anmerkung: Dieser Schlüssel ist veraltet (signiert von: \"%s\")\n"
-msgid "hg sigs"
-msgstr "hg sigs"
-
msgid "list signed changesets"
msgstr "Zeigt signierte Änderungssätze"
@@ -3279,9 +2746,6 @@ msgstr "Zeigt signierte Änderungssätze"
msgid "%s:%d node does not exist\n"
msgstr "%s:%d Knoten existiert nicht\n"
-msgid "hg sigcheck REVISION"
-msgstr "hg sigcheck REVISION"
-
msgid "verify all the signatures there may be for a particular revision"
msgstr "überprüfe alle für eine bestimmte Revision vorhandenen Signaturen"
@@ -3289,30 +2753,6 @@ msgstr "überprüfe alle für eine bestimmte Revision vorhandenen Signaturen"
msgid "No valid signature for %s\n"
msgstr "Keine gültige Signatur für %s\n"
-msgid "make the signature local"
-msgstr "signiert nur lokal"
-
-msgid "sign even if the sigfile is modified"
-msgstr "signiert auch, wenn die Signaturdatei geändert ist"
-
-msgid "do not commit the sigfile after signing"
-msgstr "Signaturdatei nach dem Signieren nicht übernehmen"
-
-msgid "ID"
-msgstr "ID"
-
-msgid "the key id to sign with"
-msgstr "Die Schlüssel-ID zum Signieren"
-
-msgid "TEXT"
-msgstr "TEXT"
-
-msgid "commit message"
-msgstr "Versionsmeldung"
-
-msgid "hg sign [OPTION]... [REVISION]..."
-msgstr "hg sign [OPTION]... [REVISION]..."
-
msgid "add a signature for the current or given revision"
msgstr "Fügt der aktuellen oder gegebenen Revision eine Signatur hinzu"
@@ -3353,83 +2793,51 @@ msgstr ""
msgid "unknown signature version"
msgstr "Unbekannte Version der Signatur"
-msgid "command to view revision graphs from a shell"
-msgstr "Befehl zum Anzeigen eines Revisionsgraphs auf dem Terminal"
-
-msgid ""
-"This extension adds a --graph option to the incoming, outgoing and log\n"
-"commands. When this options is given, an ASCII representation of the\n"
-"revision graph is also shown.\n"
-msgstr ""
-"Diese Erweiterung für bei den Befehlen incoming, outgoing und log die\n"
-"Option --graph hinzu, die, wenn sie angegeben wird, zusätzlich eine\n"
-"ASCII-Darstellung des Änderungsgraphen angezeigt.\n"
-
-#, python-format
-msgid "-G/--graph option is incompatible with --%s"
-msgstr "Option -G/--graph ist inkompatibel zu --%s"
-
-#, python-format
-msgid "cannot follow file not in parent revision: \"%s\""
-msgstr "Kann in Vorgängerrevision fehlender Datei nicht folgen: \"%s\""
-
-#, python-format
-msgid "cannot follow nonexistent file: \"%s\""
-msgstr "Kann fehlender Datei nicht folgen: \"%s\""
-
-msgid "can only follow copies/renames for explicit filenames"
-msgstr ""
-"Kopien/Umbenennungen können nur zu expliziten Dateinamen verfolgt werden"
-
-msgid "follow changeset history, or file history across copies and renames"
-msgstr ""
-"Folgt der Versionshistorie oder Dateihistorie über Kopien und Umbenennungen "
-"hinweg"
+msgid "make the signature local"
+msgstr "signiert nur lokal"
-msgid "only follow the first parent of merge changesets (DEPRECATED)"
-msgstr "Folgt nur dem ersten Vorgänger von Zusammenführungen (VERALTET)"
+msgid "sign even if the sigfile is modified"
+msgstr "signiert auch, wenn die Signaturdatei geändert ist"
-msgid "show revisions matching date spec"
-msgstr "Zeigt Revisionen passend zur Datums-Spezifikation"
+msgid "do not commit the sigfile after signing"
+msgstr "Signaturdatei nach dem Signieren nicht übernehmen"
-msgid "show copied files"
-msgstr "Zeigt kopierte Dateien"
+msgid "ID"
+msgstr "ID"
-msgid "do case-insensitive search for a given text"
-msgstr "Sucht ein Stichwort unabhängig von Groß- und Kleinschreibung"
+msgid "the key id to sign with"
+msgstr "Die Schlüssel-ID zum Signieren"
-msgid "show the specified revision or range"
-msgstr "Zeigt die angegebene Revision oder den Bereich"
+msgid "TEXT"
+msgstr "TEXT"
-msgid "include revisions where files were removed"
-msgstr "Revisionen einschließen, in denen Dateien entfernt wurden"
+msgid "commit message"
+msgstr "Versionsmeldung"
-msgid "show only merges (DEPRECATED)"
-msgstr "Zeigt nur Zusammenführungen (VERALTET)"
+msgid "hg sign [OPTION]... [REVISION]..."
+msgstr "hg sign [OPTION]... [REVISION]..."
-msgid "USER"
-msgstr "BENUTZER"
+msgid "hg sigcheck REVISION"
+msgstr "hg sigcheck REVISION"
-msgid "revisions committed by user"
-msgstr "Revisionen vom Nutzer"
+msgid "hg sigs"
+msgstr "hg sigs"
-msgid "show only changesets within the given named branch (DEPRECATED)"
-msgstr "Zeigt nur Änderungssätze innerhalb des angegebenen Zweigs (VERALTET)"
+msgid "command to view revision graphs from a shell"
+msgstr "Befehl zum Anzeigen eines Revisionsgraphs auf dem Terminal"
-msgid "BRANCH"
+msgid ""
+"This extension adds a --graph option to the incoming, outgoing and log\n"
+"commands. When this options is given, an ASCII representation of the\n"
+"revision graph is also shown.\n"
msgstr ""
+"Diese Erweiterung für bei den Befehlen incoming, outgoing und log die\n"
+"Option --graph hinzu, die, wenn sie angegeben wird, zusätzlich eine\n"
+"ASCII-Darstellung des Änderungsgraphen angezeigt.\n"
-msgid "show changesets within the given named branch"
-msgstr "Zeigt nur Änderungssätze innerhalb des angegebenen Zweigs"
-
-msgid "do not display revision or any of its ancestors"
-msgstr "Gibt weder diese Revision noch ihre Vorgänger aus"
-
-msgid "show hidden changesets (DEPRECATED)"
-msgstr "Zeigt versteckte Änderungssätze (VERALTET)"
-
-msgid "[OPTION]... [FILE]"
-msgstr "[OPTION]... [DATEI]"
+#, python-format
+msgid "--graph option is incompatible with --%s"
+msgstr "Option --graph ist inkompatibel mit --%s"
msgid "show revision history alongside an ASCII revision graph"
msgstr "Zeigt die Revisionshistorie zusammen mit einem ASCII Revisionsgraphen"
@@ -3437,7 +2845,7 @@ msgstr "Zeigt die Revisionshistorie zusammen mit einem ASCII Revisionsgraphen"
msgid ""
" Print a revision history alongside a revision graph drawn with\n"
" ASCII characters."
-msgstr " Zeigt die Revisionshistorie und einen ASCII-Graphen an."
+msgstr " Zeigt die Revisionshistorie und zusammen mit einem ASCII-Graphen."
msgid ""
" Nodes printed as an @ character are parents of the working\n"
@@ -3447,9 +2855,27 @@ msgstr ""
" Das @-Zeichen kennzeichnet die Vorgänger des Arbeitsverzeichnisses.\n"
" "
+msgid "--graph option allows at most one file"
+msgstr ""
+
msgid "show the revision DAG"
msgstr "Zeigt den Revisions-DAG"
+msgid "NUM"
+msgstr "NUM"
+
+msgid "limit number of changes displayed"
+msgstr "Begrenzt die Anzahl der angezeigten Änderungen"
+
+msgid "show patch"
+msgstr "Patch anzeigen"
+
+msgid "show the specified revision or range"
+msgstr "Zeigt die angegebene Revision oder den Bereich"
+
+msgid "hg glog [OPTION]... [FILE]"
+msgstr "hg glog [OPTION]... [DATEI]"
+
msgid "hooks for integrating with the CIA.vc notification service"
msgstr "Hooks zur Integration mit dem CIA.cv-Benachrichtigungsdienst"
@@ -3472,7 +2898,7 @@ msgid ""
" # Append a diffstat to the log message (optional)\n"
" #diffstat = False\n"
" # Template to use for log messages (optional)\n"
-" #template = {desc}\\n{baseurl}{webroot}/rev/{node}-- {diffstat}\n"
+" #template = {desc}\\n{baseurl}/rev/{node}-- {diffstat}\n"
" # Style to use (optional)\n"
" #style = foo\n"
" # The URL of the CIA notification service (optional)\n"
@@ -3481,9 +2907,7 @@ msgid ""
" # Make sure to set email.from if you do this.\n"
" #url = http://cia.vc/\n"
" # print message instead of sending it (optional)\n"
-" #test = False\n"
-" # number of slashes to strip for url paths\n"
-" #strip = 0"
+" #test = False"
msgstr ""
" [cia]\n"
" # Ihr registrierter CIA-Benutzername\n"
@@ -3492,11 +2916,11 @@ msgstr ""
" project = foo\n"
" # das Modul (Unterprojekt) (optional)\n"
" #module = foo\n"
-" # Hänge eine Statistik über Änderungen an die Versionsmeldung an\n"
+" # Hänge eine Statistik über die Änderungen an die Commit-Nachricht an\n"
" # (optional)\n"
" #diffstat = False\n"
-" # Vorlage für die Versionsmeldungen (optional)\n"
-" #template = {desc}\\n{baseurl}{webroot}/rev/{node}-- {diffstat}\n"
+" # Vorlage für die Commit-Nachrichten (optional)\n"
+" #template = {desc}\\n{baseurl}/rev/{node}-- {diffstat}\n"
" # zu verwendender Stil (optional)\n"
" #style = foo\n"
" # Die URL des CIA Benachrichtigungsdienstes (optional)\n"
@@ -3506,9 +2930,7 @@ msgstr ""
" # wenn Sie dies tun.\n"
" #url = http://cia.vc/\n"
" # Nachrichten ausgeben statt sie zu senden (optional)\n"
-" #test = False\n"
-" # Anzahl von Verzeichnissen, die von URL-Pfaden entfernt werden sollen\n"
-" #strip = 0"
+" #test = False"
msgid ""
" [hooks]\n"
@@ -3544,15 +2966,14 @@ msgstr "email.from muss definiert werden, wenn E-Mails gesendet werden"
msgid "browse the repository in a graphical way"
msgstr "durchstöbert das Projektarchiv auf grafische Weise"
-#, fuzzy
msgid ""
"The hgk extension allows browsing the history of a repository in a\n"
"graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is not\n"
"distributed with Mercurial.)"
msgstr ""
-"Die hgk-Erweiterung erlaubt das Durchstöbern der Historie eines\n"
-"Projektarchivs auf grafische Weise. Sie benötigt Tcl/Tk in Version 8.4\n"
-"oder neuer. (Tcl/Tk wird nicht mit Mercurial ausgeliefert.)"
+"Die hgk-Erweiterung erlaubt das Durchstöbern des Projektarchivs auf\n"
+"gratische Weise. Sie benötigt Tcl/Tk in Version 8.4 oder neuer. (Tcl/Tk\n"
+"wird nicht mit Mercurial ausgeliefert.)"
msgid ""
"hgk consists of two parts: a Tcl script that does the displaying and\n"
@@ -3607,7 +3028,7 @@ msgstr ""
"auszuführen.\n"
msgid "diff trees from two commits"
-msgstr "Vergleicht (Teil)bäume von zwei Revisionen"
+msgstr "Vergleicht (Teil)bäume von zwei Commits"
msgid "output common ancestor information"
msgstr "gibt Informationen über gemeinsame Vorfahren aus"
@@ -3631,13 +3052,7 @@ msgid "print extension options"
msgstr "Gibt die Optionen der Erweiterung aus"
msgid "start interactive history viewer"
-msgstr "Startet den interaktiven Historienbetrachter"
-
-msgid "NUM"
-msgstr "NUM"
-
-msgid "limit number of changes displayed"
-msgstr "Begrenzt die Anzahl der angezeigten Änderungen"
+msgstr "Startet den interaktiven Historie-Betrachter"
msgid "hg view [-l LIMIT] [REVRANGE]"
msgstr "hg view [-l LIMIT] [REVBEREICH]"
@@ -3672,7 +3087,6 @@ msgstr "hg debug-config"
msgid "hg debug-merge-base REV REV"
msgstr "hg debug-merge-base REV REV"
-#. i18n: bisect changeset status
msgid "ignored"
msgstr "ignoriert"
@@ -3715,7 +3129,7 @@ msgstr ""
" pygments_style = <style>"
msgid "The default is 'colorful'.\n"
-msgstr "Die Voreinstellung ist 'colorful'.\n"
+msgstr "Der Standard ist 'colorful'.\n"
msgid "accelerate status report using Linux's inotify service"
msgstr "Beschleunigt die Statusabfrage mit dem inotify-Dient von Linux"
@@ -3837,7 +3251,7 @@ msgstr "%s-Ereignis: %s geändert\n"
#, python-format
msgid "filesystem containing %s was unmounted\n"
-msgstr "Dateisystem, das %s enthielt, wurde ausgehängt\n"
+msgstr "Dateisystem, das %s enthielt, wurde ausgehangen\n"
#, python-format
msgid "%s readable: %d bytes\n"
@@ -3845,7 +3259,7 @@ msgstr "%s lesbar: %d Bytes\n"
#, python-format
msgid "%s below threshold - unhooking\n"
-msgstr "%s unterhalb der Grenze - hänge aus\n"
+msgstr "%s unterhalb der Grenze - aushängen\n"
#, python-format
msgid "%s reading %d events\n"
@@ -3991,7 +3405,7 @@ msgid ""
" The more specific you are in your filename patterns the less you\n"
" lose speed in huge repositories."
msgstr ""
-".. note::\n"
+".. HINWEIS::\n"
" Je genauer die Muster für Dateinamen sind, desto weniger\n"
" Geschwindigkeit geht in großen Projektarchiven verloren."
@@ -4004,20 +3418,19 @@ msgstr ""
"sowie die Einstellungen, führen Sie :hg:`kwdemo` aus. Siehe auch\n"
":hg:`templates` für eine Liste verfügbarer Vorlagen und Filter."
-msgid "Three additional date template filters are provided:"
+msgid "Three additional date template filters are provided::"
msgstr ""
"Drei weitere Filter für Datumsangaben in Vorlagen werden bereitgestellt:"
msgid ""
-":``utcdate``: \"2006/09/18 15:13:13\"\n"
-":``svnutcdate``: \"2006-09-18 15:13:13Z\"\n"
-":``svnisodate``: \"2006-09-18 08:13:13 -700 (Mon, 18 Sep 2006)\""
+" utcdate \"2006/09/18 15:13:13\"\n"
+" svnutcdate \"2006-09-18 15:13:13Z\"\n"
+" svnisodate \"2006-09-18 08:13:13 -700 (Mon, 18 Sep 2006)\""
msgstr ""
-":``utcdate``: \"2006/09/18 15:13:13\"\n"
-":``svnutcdate``: \"2006-09-18 15:13:13Z\"\n"
-":``svnisodate``: \"2006-09-18 08:13:13 -700 (Mon, 18 Sep 2006)\""
+" utcdate \"2006/09/18 15:13:13\"\n"
+" 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"
@@ -4067,20 +3480,9 @@ msgstr "[keyword]-Muster können nicht gefunden werden"
msgid "no [keyword] patterns configured"
msgstr "Keine [keyword]-Muster konfiguriert"
-#, fuzzy
-msgid "show default keyword template maps"
-msgstr "Zeigt die Standard-Vorlagenzuweisungen"
-
-msgid "read maps from rcfile"
-msgstr "Liest die Zuweisungen aus der rcfile-Datei"
-
-msgid "hg kwdemo [-d] [-f RCFILE] [TEMPLATEMAP]..."
-msgstr "hg kwdemo [-d] [-f RCDATEI] [VORLAGENZUWEISUNGEN]..."
-
msgid "print [keywordmaps] configuration and an expansion example"
msgstr "Gibt [keywordmaps]-Einstellungen und ein Ersetzungsbeispiel aus"
-#, fuzzy
msgid ""
" Show current, custom, or default keyword template maps and their\n"
" expansions."
@@ -4105,7 +3507,7 @@ msgid ""
" See :hg:`help templates` for information on templates and filters.\n"
" "
msgstr ""
-" Siehe :hg:`help templates` für Informationen über Vorlagen und Filter.\n"
+" Siehe :hg:`hg templates' für Informationen über Vorlagen und Filter.\n"
" "
#, python-format
@@ -4122,15 +3524,12 @@ msgstr ""
msgid "\textending current template maps\n"
msgstr "\tErweitert die aktuellen Vorlagen-Zuweisungen\n"
-#, fuzzy
msgid "\toverriding default svn keywordset\n"
msgstr "\tÃœberschreibt das stndard svn keywordset\n"
-#, fuzzy
msgid "\toverriding default cvs keywordset\n"
msgstr "\tÃœberschreibt das standard CVS keywordset\n"
-#, fuzzy
msgid ""
"\n"
"\tconfiguration using default svn keywordset\n"
@@ -4138,7 +3537,6 @@ msgstr ""
"\n"
"\tKonfiguration mittels der standard svn keywordset\n"
-#, fuzzy
msgid ""
"\n"
"\tconfiguration using default cvs keywordset\n"
@@ -4146,6 +3544,7 @@ msgstr ""
"\n"
"\tKonfiguration mittels der standard csv keywordset\n"
+
msgid "\tdisabling current template maps\n"
msgstr "\tdeaktiviert die aktuellen Vorlagen-Zuweisungen\n"
@@ -4174,9 +3573,6 @@ msgstr ""
"\n"
"\tersetzte Platzhalter\n"
-msgid "hg kwexpand [OPTION]... [FILE]..."
-msgstr "hg kwexpand [OPTION]... [DATEI]..."
-
msgid "expand keywords in the working directory"
msgstr "Ersetzt Platzhalter in der Arbeitskopie"
@@ -4191,18 +3587,6 @@ msgstr ""
" lokale Änderungen enthalten.\n"
" "
-msgid "show keyword status flags of all files"
-msgstr "Zeigt den Ersetzungsstatus aller Dateien"
-
-msgid "show files excluded from expansion"
-msgstr "Zeigt Dateien, die von den Mustern ausgeschlossen werden"
-
-msgid "only show unknown (not tracked) files"
-msgstr "Zeigt nur unbekannte (nicht überwachte) Dateien"
-
-msgid "hg kwfiles [OPTION]... [FILE]..."
-msgstr "hg kwfiles [OPTION]... [DATEI]..."
-
msgid "show files configured for keyword expansion"
msgstr "Zeigt die für die Ersetzung konfigurierten Dateien"
@@ -4249,9 +3633,6 @@ msgstr ""
" i = ignoriert (nicht versioniert)\n"
" "
-msgid "hg kwshrink [OPTION]... [FILE]..."
-msgstr "hg kwshrink [OPTION]... [DATEI]..."
-
msgid "revert expanded keywords in the working directory"
msgstr "Nimmt Ersetzungen im aktuellen Arbeitsverzeichnis wieder zurück"
@@ -4267,566 +3648,32 @@ msgstr ""
" lokale Änderungen enthalten.\n"
" "
-msgid "track large binary files"
-msgstr "versioniere auch grosse Binärdateien"
-
-msgid ""
-"Large binary files tend to be not very compressible, not very\n"
-"diffable, and not at all mergeable. Such files are not handled\n"
-"efficiently by Mercurial's storage format (revlog), which is based on\n"
-"compressed binary deltas; storing large binary files as regular\n"
-"Mercurial files wastes bandwidth and disk space and increases\n"
-"Mercurial's memory usage. The largefiles extension addresses these\n"
-"problems by adding a centralized client-server layer on top of\n"
-"Mercurial: largefiles live in a *central store* out on the network\n"
-"somewhere, and you only fetch the revisions that you need when you\n"
-"need them."
-msgstr ""
-"Grosse Binärdateien sind für gewöhnlich schlecht komprimierbar, Änderungen\n"
-"können nicht verständlich angezeigt werden und automatische Zusammenführung\n"
-"ist unmöglich. Derartige Dateien können von Mercurials Speicherformat\n"
-"'revlog' nicht effizient gehandhabt werden, da es auf komprimierten bin-\n"
-"deltas basiert. Grosse Binärdateien als reguläre Dateien zu versionieren\n"
-"verschwendet Bandbreite, Speicherplatz und erhöht den Hauptspeicher-\n"
-"verbrauch. Die Erweiterung 'largefiles' versucht dies einzudämmen, indem\n"
-"sie ein zusätzliches *zentrales Lager* für diese Binärriesen (irgendwo\n"
-"im Netzwerk) einrichtet. Für jede Arbeitskopie werden dann nur die\n"
-"benötigten Revisionen abgerufen."
-
-msgid ""
-"largefiles works by maintaining a \"standin file\" in .hglf/ for each\n"
-"largefile. The standins are small (41 bytes: an SHA-1 hash plus\n"
-"newline) and are tracked by Mercurial. Largefile revisions are\n"
-"identified by the SHA-1 hash of their contents, which is written to\n"
-"the standin. largefiles uses that revision ID to get/put largefile\n"
-"revisions from/to the central store. This saves both disk space and\n"
-"bandwidth, since you don't need to retrieve all historical revisions\n"
-"of large files when you clone or pull."
-msgstr ""
-"Dies funktioniert, indem für jeden Binärriesen ein kleiner Stellvertreter\n"
-"in .hglf/ regulär von Mercurial überwacht wird. Diese Dateien enthalten\n"
-"nur 41 Bytes: eine SHA-1 Prüfsumme und ein Zeilenumsprung. Die Revision\n"
-"der Binärdatei wird durch die Prüfsumme identifiziert, so dass die\n"
-"eigentliche Datei von der Erweiterung aus dem zentralen Lager abgerufen\n"
-"bzw. hinein übertragen werden kann. Damit wird sowohl Speicherplatz als\n"
-"auch Bandbreite gespart, da clone- and pull-Operationen nicht die ganze\n"
-"Historie der Änderungen übertragen müssen."
-
-msgid ""
-"To start a new repository or add new large binary files, just add\n"
-"--large to your :hg:`add` command. For example::"
-msgstr ""
-"Um ein neues Archiv zu starten, oder einen neuen Binärriesen hinzuzufügen,\n"
-"wird einfach :hg:`add --large` angegeben. Zum Beispiel::"
-
-msgid ""
-" $ dd if=/dev/urandom of=randomdata count=2000\n"
-" $ hg add --large randomdata\n"
-" $ hg commit -m 'add randomdata as a largefile'"
-msgstr ""
-" $ dd if=/dev/urandom of=binaerchaos count=2000\n"
-" $ hg add --large binaerchaos\n"
-" $ hg commit -m 'Füge binaerchaos als Binärriese hinzu'"
-
-msgid ""
-"When you push a changeset that adds/modifies largefiles to a remote\n"
-"repository, its largefile revisions will be uploaded along with it.\n"
-"Note that the remote Mercurial must also have the largefiles extension\n"
-"enabled for this to work."
-msgstr ""
-"Wird ein Änderungssatz, welcher einen Binärriesen ändert oder hinzufügt,\n"
-"in ein entferntes Archiv übertragen, so werden gleichzeitig (asymmetrisch\n"
-"zum Abrufen per pull) auch die (neuen) Revisionen der Binärdatei "
-"übertragen.\n"
-"Das entfernte Mercurial muss hierfür die largefiles-Erweiterung unterstützen."
-
-msgid ""
-"When you pull a changeset that affects largefiles from a remote\n"
-"repository, Mercurial behaves as normal. However, when you update to\n"
-"such a revision, any largefiles needed by that revision are downloaded\n"
-"and cached (if they have never been downloaded before). This means\n"
-"that network access may be required to update to changesets you have\n"
-"not previously updated to."
-msgstr ""
-"Wird ein Änderungssatz, der Binärriesen betrifft, von einem entfernten\n"
-"Archiv abgerufen, verhält sich Mercurial zunächst normal. Erst wenn das\n"
-"Arbeitsverzeichnis auf eine Revision aktualisiert wird, die eine solche\n"
-"Datei enthält, wird die Binärdatei heruntergeladen. Durch permanente\n"
-"Zwischenspeicherung jeder Revision wird wiederholtes Herunterladen "
-"verhindert.\n"
-"Das bedeutet allerdings, dass zum Zeitpunkt der Aktualisierung auf eine\n"
-"bisher unbekannte Revision, Netzwerkzugriff möglich sein muss."
-
-msgid ""
-"If you already have large files tracked by Mercurial without the\n"
-"largefiles extension, you will need to convert your repository in\n"
-"order to benefit from largefiles. This is done with the\n"
-":hg:`lfconvert` command::"
-msgstr ""
-"Falls ein Archiv bereits grosse Binärdateien regulär (ohne die Erweiterung)\n"
-"versioniert, muss es zunächst konvertiert werden, um die Vorteile von\n"
-"largefiles zu nutzen. Dies geschieht duch den :hg:`lfconvert` Befehl."
-
-msgid " $ hg lfconvert --size 10 oldrepo newrepo"
-msgstr " $ hg lfconvert --size 10 altes-archiv neues-archiv"
-
-msgid ""
-"In repositories that already have largefiles in them, any new file\n"
-"over 10MB will automatically be added as a largefile. To change this\n"
-"threshold, set ``largefiles.minsize`` in your Mercurial config file\n"
-"to the minimum size in megabytes to track as a largefile, or use the\n"
-"--lfsize option to the add command (also in megabytes)::"
-msgstr ""
-"Ein derart konvertiertes Archiv wird neue Dateien, die über 10MB gross sind\n"
-"automatisch als Binärriesen handhaben. Diese Grenze kann entweder mit\n"
-"``largefiles.minsize`` in der Konfigurationsdatei oder der --lfsize Option\n"
-"des 'add'-Befehls geändert werden (Angabe in MB)::"
-
-msgid ""
-" [largefiles]\n"
-" minsize = 2"
-msgstr ""
-" [largefiles]\n"
-" minsize = 2"
-
-msgid " $ hg add --lfsize 2"
-msgstr " $ hg add --lfsize 2"
-
-msgid ""
-"The ``largefiles.patterns`` config option allows you to specify a list\n"
-"of filename patterns (see :hg:`help patterns`) that should always be\n"
-"tracked as largefiles::"
-msgstr ""
-"Mit der Konfigurationsoption ``largefiles.patterns`` kann man Dateimuster\n"
-"angeben (siehe :hg:`help patterns`), die bestimmen, welche Dateien als\n"
-"Binärriesen gehandhabt werden sollen::"
-
-msgid ""
-" [largefiles]\n"
-" patterns =\n"
-" *.jpg\n"
-" re:.*\\.(png|bmp)$\n"
-" library.zip\n"
-" content/audio/*"
-msgstr ""
-" [largefiles]\n"
-" patterns =\n"
-" *.jpg\n"
-" re:.*\\.(png|bmp)$\n"
-" library.zip\n"
-" content/audio/*"
-
-msgid ""
-"Files that match one of these patterns will be added as largefiles\n"
-"regardless of their size."
-msgstr ""
-"Dateien, die auf ein solches Muster passen, werden unabhängig von ihrer\n"
-"Größe als Binärriesen hinzugefügt."
-
-msgid ""
-"The ``largefiles.minsize`` and ``largefiles.patterns`` config options\n"
-"will be ignored for any repositories not already containing a\n"
-"largefile. To add the first largefile to a repository, you must\n"
-"explicitly do so with the --large flag passed to the :hg:`add`\n"
-"command.\n"
-msgstr ""
-
-msgid "convert a normal repository to a largefiles repository"
-msgstr "Konvertiert ein normales Archiv in ein Archiv mit Binärriesen"
-
-msgid ""
-" Convert repository SOURCE to a new repository DEST, identical to\n"
-" SOURCE except that certain files will be converted as largefiles:\n"
-" specifically, any file that matches any PATTERN *or* whose size is\n"
-" above the minimum size threshold is converted as a largefile. The\n"
-" size used to determine whether or not to track a file as a\n"
-" largefile is the size of the first version of the file. The\n"
-" minimum size can be specified either with --size or in\n"
-" configuration as ``largefiles.size``."
-msgstr ""
-" Konvertiert das Archiv QUELLE in ein neues Archiv ZIEL, welches sich\n"
-" nur dadurch unterscheidet, dass gewisse Dateien als Binärriesen\n"
-" behandlet werden. Genauer sind es die, die auf ein MUSTER passen,\n"
-" *oder* deren Größe die konfigurierte Grenze überschreitet. Die Größe,\n"
-" welche zur Entscheidung verwendet wird, ist die zur Zeit des ersten\n"
-" Hinzufügens der Datei (ob die Datei in späteren Revisionen größer wird\n"
-" wird nicht geprüft). Der Grenzwert wird mit --size oder dem\n"
-" Konfigurationseintrag ``largefiles.size`` (je in MB) definiert."
-
-msgid ""
-" After running this command you will need to make sure that\n"
-" largefiles is enabled anywhere you intend to push the new\n"
-" repository."
-msgstr ""
-" Nach der Ausführung dieses Befehls muss sichergestellt werden, dass die\n"
-" Erweiterung largefiles in allen entfernten Archiven, mit denen die\n"
-" Änderungen synchonisiert werden, aktiv ist."
-
-msgid ""
-" Use --to-normal to convert largefiles back to normal files; after\n"
-" this, the DEST repository can be used without largefiles at all."
-msgstr ""
-" Verwende --to-normal um die Konversion in Binärriesen rückgängig zu\n"
-" machen. Danach kann ZIEL völlig ohne Binärriesen verwendet werden."
-
-msgid "getting largefiles"
-msgstr "Hole Binärriesen"
-
-#, python-format
-msgid "getting %s:%s\n"
-msgstr "Hole %s:%s\n"
-
-#, python-format
-msgid "%s: data corruption (expected %s, got %s)\n"
-msgstr "%s: Beschädigte Daten (erwartete %s, erhielt %s)\n"
-
-#, python-format
-msgid "searching %d changesets for largefiles\n"
-msgstr "Durchsuche %d Änderungssätze nach Binärriesen\n"
-
-#, python-format
-msgid "verified contents of %d revisions of %d largefiles\n"
-msgstr "Inhalt von %d Revisionen von %d Binärriesen verifiziert\n"
-
-#, python-format
-msgid "verified existence of %d revisions of %d largefiles\n"
-msgstr "Existenz von %d Revisionen von %d Binärriesen verifiziert\n"
-
-#, python-format
-msgid "unsupported URL scheme %r"
-msgstr "Nicht unterstütztes URL-Schema %r"
-
-#, python-format
-msgid "%s does not appear to be a largefile store"
-msgstr "%s scheint kein Lager für Binärriesen zu sein"
-
-#, python-format
-msgid "%s is not a local Mercurial repo"
-msgstr "%s ist kein lokales Mercurial-Projektarchiv"
-
-#, python-format
-msgid "initializing destination %s\n"
-msgstr "Initialisiere Ziel %s\n"
-
-msgid "converting revisions"
-msgstr "Konvertiere Revisionen"
-
-#, python-format
-msgid "renamed/copied largefile %s becomes symlink"
-msgstr "Umbenannter/kopierter Binärriese %s wird ein symbolischer Verweis"
-
-#, python-format
-msgid "largefile %s becomes symlink"
-msgstr "Binärriese %s wird ein symbolischer Verweis"
-
-#, python-format
-msgid "skipping incorrectly formatted tag %s\n"
-msgstr "Ãœberspringe fehlerhaft formatiertes Etikett: %s\n"
-
-#, python-format
-msgid "skipping incorrectly formatted id %s\n"
-msgstr "Ãœberspringe fehlerhaft formatierte ID: %s\n"
-
-#, python-format
-msgid "no mapping for id %s\n"
-msgstr "Keine Abbildung für ID %s\n"
-
-msgid "uploading largefiles"
-msgstr "Lade Binärriesen hoch"
-
-#, python-format
-msgid "largefile %s missing from store (needs to be uploaded)"
-msgstr "Binärriese %s fehlt im Lager (muss hochgeladen werden)"
-
-#, python-format
-msgid "%d additional largefiles cached\n"
-msgstr "%d zusätzliche Binärriesen in den Zwischenspeicher geladen\n"
-
-#, python-format
-msgid "%d largefiles failed to download\n"
-msgstr "%d Binärriesen konnten nicht heruntergeladen werden\n"
-
-msgid "getting changed largefiles\n"
-msgstr "Lade veränderte Binärriesen herunter\n"
-
-#, python-format
-msgid "%d largefiles updated, %d removed\n"
-msgstr "%d Binärriesen verändert, %d entfernt\n"
-
-#, python-format
-msgid "largefile %s is not in cache and could not be downloaded"
-msgstr ""
-"Binärriese %s fehlt im Zwischenspeicher und konnte nicht heruntergeladen "
-"werden"
-
-msgid "minimum size (MB) for files to be converted as largefiles"
-msgstr ""
-"Minimale Dateigröße in MB von Dateien, die in Binärriesen konvertiert werden"
-
-msgid "convert from a largefiles repo to a normal repo"
-msgstr "Konvertiert ein Binärriesen-Archiv in ein reguläres Archiv"
-
-msgid "hg lfconvert SOURCE DEST [FILE ...]"
-msgstr "hg lfconvert QUELLE ZIEL [DATEI ...]"
-
-#, python-format
-msgid "largefiles: size must be number (not %s)\n"
-msgstr "largefiles: Dateigröße muss eine Zahl sein (nicht %s)\n"
-
-msgid "minimum size for largefiles must be specified"
-msgstr "Grenzgröße für Binärriesen muss angegeben werden"
-
-#, python-format
-msgid "unknown operating system: %s\n"
-msgstr "Unbekanntes Betriebssytem: %s\n"
-
-#, python-format
-msgid "Found %s in store\n"
-msgstr "%s im Lager gefunden\n"
-
-#, python-format
-msgid "Found %s in system cache\n"
-msgstr "%s im Zwischenspeicher gefunden\n"
-
-msgid "Can't get file locally"
-msgstr "Kann Datei nicht lokal abrufen"
-
-#, python-format
-msgid ""
-"changeset %s: %s missing\n"
-" (looked for hash %s)\n"
-msgstr ""
-"Änderungssatz %s: %s fehlt\n"
-" (Prüfsumme %s)\n"
-
-#, python-format
-msgid ""
-"changeset %s: %s: contents differ\n"
-" (%s:\n"
-" expected hash %s,\n"
-" but got %s)\n"
-msgstr ""
-"Änderungssatz %s: %s: verschiedene Inhalte\n"
-" (%s:\n"
-" erwartete Prüfsumme %s,\n"
-" tatsächlich %s)\n"
-
-#, python-format
-msgid "%s already a largefile\n"
-msgstr "%s ist bereits ein Binärriese\n"
-
-#, python-format
-msgid "adding %s as a largefile\n"
-msgstr "Füge %s als Binärriese hinzu\n"
-
-msgid "no files specified"
-msgstr "Keine Dateien angegeben"
-
-#, python-format
-msgid "not removing %s: %s (use forget to undo)\n"
-msgstr "Entferne nicht %s: %s (Nutze ``forget`` um rückgängig zu machen)\n"
-
-msgid "file still exists"
-msgstr "Datei existiert noch"
-
-msgid "file is modified"
-msgstr "Datei ist modifiziert"
-
-msgid "file has been marked for add"
-msgstr "Datei ist als hinzuzufügen markiert"
-
-#, python-format
-msgid "removing %s\n"
-msgstr "Entferne %s\n"
-
-msgid "--normal cannot be used with --large"
-msgstr "--normal kann nicht zusammen mit --large verwendet werden"
-
-msgid "uncommitted local changes"
-msgstr "Ausstehende nicht versionierte Änderungen"
-
-msgid "&Largefile"
-msgstr "&Binärriese"
-
-msgid "&Normal file"
-msgstr "&Normale Datei"
-
-#, python-format
-msgid ""
-"%s has been turned into a largefile\n"
-"use (l)argefile or keep as (n)ormal file?"
-msgstr ""
-"%s wurde in einen Binärriesen umgewandelt.\n"
-"Nutze als (B)inärriese oder als (n)ormale Datei?"
-
-#, python-format
-msgid ""
-"%s has been turned into a normal file\n"
-"keep as (l)argefile or use (n)ormal file?"
-msgstr ""
-"%s wurde in eine normale Datei umgewandelt.\n"
-"Nutze als (B)inärriese oder als (n)ormale Datei?"
-
-#, python-format
-msgid "merging %s and %s to %s\n"
-msgstr "Führe %s und %s zusammen zu %s\n"
-
-#, python-format
-msgid "merging %s\n"
-msgstr "Führe %s zusammen\n"
-
-#, python-format
-msgid ""
-"largefile %s has a merge conflict\n"
-"keep (l)ocal or take (o)ther?"
-msgstr ""
-"Zusammenführung führt zu Konflikt im Binärriesen %s\n"
-"(l)okale Version, oder (a)ndere verwenden?"
-
-msgid "&Local"
-msgstr "&Lokal"
-
-msgid "&Other"
-msgstr "&Andere"
-
-msgid "destination largefile already exists"
-msgstr "Ziel-Binärriese existiert bereits"
-
-msgid "no files to copy"
-msgstr "Keine Dateien zu kopieren"
-
-msgid "caching new largefiles\n"
-msgstr "Lade neue Binärriesen in den Zwischenspeicher\n"
-
-#, python-format
-msgid "%d largefiles cached\n"
-msgstr "%d Binärriesen in den Zwischenspeicher geladen\n"
-
-#, python-format
-msgid "--all-largefiles is incompatible with non-local destination %s"
-msgstr "--all-largefiles ist inkompatibel mit dem nicht-lokalen Ziel %s"
-
-#, python-format
-msgid "unknown archive type '%s'"
-msgstr "Unbekannter Archivtyp '%s'"
-
-msgid "cannot give prefix when archiving to files"
-msgstr "Bei Archivierung in Dateien kann kein Präfix angegeben werden"
-
-#, python-format
-msgid "largefile %s not found in repo store or system cache"
-msgstr "Binärriese %s weder im Archivlager noch Zwischenspeicher gefunden"
-
-#, python-format
-msgid "not removing %s: file is already untracked\n"
-msgstr "Entferne %s nicht: Datei ist nicht versioniert\n"
-
-msgid "largefiles: No remote repo\n"
-msgstr "largefiles: Kein entferntes Archiv\n"
-
-msgid "largefiles to upload:\n"
-msgstr "Hochzuladende Binärriesen:\n"
-
-#, python-format
-msgid "largefiles: %d to upload\n"
-msgstr "largefiles: %d hochzuladen\n"
-
-msgid "largefile contents do not match hash"
-msgstr "Inhalt des Binärriesen passt nicht auf Prüfsumme"
-
-#, python-format
-msgid "largefiles: failed to put %s into store: %s"
-msgstr "largefiles: Konnte %s nicht in einlagern: %s"
-
-#, python-format
-msgid "requested largefile %s not present in cache"
-msgstr "Angeforderer Binärriese %s ist nicht im Zwischenspeicher"
-
-msgid "remote: "
-msgstr "Entfernt: "
-
-#, python-format
-msgid "unexpected putlfile response: %s"
-msgstr "Unerwartete Antwort von putlfile: %s"
-
-msgid "putlfile failed:"
-msgstr "putlfile fehlgeschlagen:"
-
-msgid "putlfile failed (unexpected response):"
-msgstr "putlfile fehlgeschlagen (unerwartete Anwort):"
-
-msgid "unexpected response:"
-msgstr "Unerwartete Antwort:"
-
-#, python-format
-msgid "remotestore: could not put %s to remote store %s"
-msgstr "remotestore: Konnte %s nicht ins entfernte Lager %s packen"
-
-#, python-format
-msgid "remotestore: put %s to remote store %s"
-msgstr "remotestore: %s ins entfernte Lager %s gepackt"
-
-#, python-format
-msgid "remotestore: could not open file %s: %s"
-msgstr "remotestore: Konnte Datei %s nicht öffnen: %s"
-
-#, python-format
-msgid "remotestore: largefile %s is invalid"
-msgstr "remotestore: Binärriese %s ist ungültig"
-
-#, python-format
-msgid "remotestore: largefile %s is missing"
-msgstr "remotestore: Binärriese %s fehlt"
-
-#, python-format
-msgid "changeset %s: %s: contents differ\n"
-msgstr "Änderungssatz %s: %s: Unterschiedliche Inhalte\n"
-
-#, python-format
-msgid "changeset %s: %s missing\n"
-msgstr "Änderungssatz %s: %s fehlt\n"
-
-#, python-format
-msgid ""
-"largefiles: repo method %r appears to have already been wrapped by another "
-"extension: largefiles may behave incorrectly\n"
-msgstr ""
-"largefiles: Aktion %r scheint bereits von einer anderen Erweiterung "
-"verändert zu sein. Dadurch kann es zu Fehlern in largefiles kommen\n"
-
-#, python-format
-msgid "file \"%s\" is a largefile standin"
-msgstr "Datei \"%s\" ist Stellvertreter für einen Binärriesen"
-
-msgid "add as largefile"
-msgstr "Füge als Binärriese hinzu"
+msgid "show default keyword template maps"
+msgstr "Zeigt die Standard-Vorlagenzuweisungen"
-msgid "add as normal file"
-msgstr "Füge als normale Datei hinzu"
+msgid "read maps from rcfile"
+msgstr "Liest die Zuweisungen aus der rcfile-Datei"
-msgid ""
-"add all files above this size (in megabytes) as largefiles (default: 10)"
-msgstr ""
-"Größe in MB ab der Dateien als Binärriesen hinzugefügt werden "
-"(Voreinstellung: 10)"
+msgid "hg kwdemo [-d] [-f RCFILE] [TEMPLATEMAP]..."
+msgstr "hg kwdemo [-d] [-f RCDATEI] [VORLAGENZUWEISUNGEN]..."
-msgid "verify largefiles"
-msgstr "Verifiziere Binärriesen"
+msgid "hg kwexpand [OPTION]... [FILE]..."
+msgstr "hg kwexpand [OPTION]... [DATEI]..."
-msgid "verify all revisions of largefiles not just current"
-msgstr "Verifiziere alle Revisionen der Binärriesen, nicht nur die aktuelle"
+msgid "show keyword status flags of all files"
+msgstr "Zeigt den Ersetzungsstatus aller Dateien"
-msgid "verify largefile contents not just existence"
-msgstr "Verifiziere Inhalte der Binärriesen und nicht nur die Existenz"
+msgid "show files excluded from expansion"
+msgstr "Zeigt Dateien, die von den Mustern ausgeschlossen werden"
-msgid "display outgoing largefiles"
-msgstr "Zeigt zu übertragende Binärriesen an"
+msgid "only show unknown (not tracked) files"
+msgstr "Zeigt nur unbekannte (nicht überwachte) Dateien"
-msgid "download all pulled versions of largefiles"
-msgstr "Alle abgerufenen Versionen von Binärriesen herunterladen"
+msgid "hg kwfiles [OPTION]... [FILE]..."
+msgstr "hg kwfiles [OPTION]... [DATEI]..."
-msgid "download all versions of all largefiles"
-msgstr "Alle Versionen aller Binärriesen herunterladen"
+msgid "hg kwshrink [OPTION]... [FILE]..."
+msgstr "hg kwshrink [OPTION]... [DATEI]..."
msgid "manage a stack of patches"
msgstr "Verwaltet einen Stapel von Patches"
@@ -4904,52 +3751,12 @@ msgstr ""
"normal Format erzeugen, wobei bei letzterem ein Datenverlust möglich ist."
msgid ""
-"It may be desirable for mq changesets to be kept in the secret phase (see\n"
-":hg:`help phases`), which can be enabled with the following setting::"
-msgstr ""
-"Es kann für mq-Änderungssätze wünschenswert sein, dass sie in der geheimen\n"
-"Phase gehalten werden (siehe :hg:`help phases`), was mit der folgenden\n"
-"Einstellung aktiviert werden kann."
-
-msgid ""
-" [mq]\n"
-" secret = True"
-msgstr ""
-" [mq]\n"
-" secret = True"
-
-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."
+"create other, independent patch queues with the :hg:`qqueue` command.\n"
msgstr ""
"Sie werden standardmäßig einen Patch-Reihe namens \"patches\" verwalten. "
"Sie\n"
-"können andere, unabhängige Warteschlangen mit :hg:`qqueue` erzeugen."
-
-msgid ""
-"If the working directory contains uncommitted files, qpush, qpop and\n"
-"qgoto abort immediately. If -f/--force is used, the changes are\n"
-"discarded. Setting::"
-msgstr ""
-"Wenn das Arbeitsverzeichnis Änderungen enthält, die noch nicht übernommen\n"
-"wurden, brechen qpush, qpop und qgoto sofort ab. Wenn -f/--force angegeben\n"
-"ist, werden die Änderungen verworfen. Einstellung::"
-
-msgid ""
-" [mq]\n"
-" keepchanges = True"
-msgstr ""
-" [mq]\n"
-" keepchanges = True"
-
-msgid ""
-"make them behave as if --keep-changes were passed, and non-conflicting\n"
-"local changes will be tolerated and preserved. If incompatible options\n"
-"such as -f/--force or --exact are passed, this setting is ignored.\n"
-msgstr ""
-
-msgid "print first line of patch header"
-msgstr "Gibt die erste Zeile eines Patch-Kopfes aus"
+"können andere, unabhängige Warteschlangen mit :hg:`qqueue` erzeugen.\n"
#, python-format
msgid "malformated mq status line: %s\n"
@@ -4991,12 +3798,12 @@ msgid "allowing %s - no matching negative guards\n"
msgstr "Erlaube %s - von keinem Wächter abgelehnt\n"
#, python-format
-msgid "allowing %s - guarded by %s\n"
-msgstr "Erlaube %s - bewacht durch %s\n"
+msgid "allowing %s - guarded by %r\n"
+msgstr "Erlaube %s - bewacht durch %r\n"
#, python-format
-msgid "skipping %s - guarded by %s\n"
-msgstr "Ãœberspringe %s - bewacht durch %s\n"
+msgid "skipping %s - guarded by %r\n"
+msgstr "Ãœberspringe %s - bewacht durch %r\n"
#, python-format
msgid "skipping %s - no matching guards\n"
@@ -5007,10 +3814,6 @@ msgid "error removing undo: %s\n"
msgstr "Fehler beim Entfernen von undo: %s\n"
#, python-format
-msgid "saving current version of %s as %s\n"
-msgstr "speichere aktuelle Version von %s als %s\n"
-
-#, python-format
msgid "apply failed for patch %s"
msgstr "Anwendung von Patch %s schlug fehl"
@@ -5048,16 +3851,11 @@ msgstr "Wende %s an\n"
msgid "unable to read %s\n"
msgstr "Kann %s nicht lesen\n"
-msgid "local changes found, refresh first"
-msgstr "Lokale Änderungen gefunden. Führe zuerst \"qrefresh\" aus!"
-
#, python-format
msgid "patch %s is empty\n"
msgstr "Patch %s ist leer\n"
-msgid "qpush exactly duplicates child changeset"
-msgstr "qpush dupliziert die Nachfolgeänderung exakt"
-
+#, fuzzy
msgid "repository commit failed"
msgstr "Übernahme der Änderungen schlug fehl"
@@ -5068,14 +3866,6 @@ msgid "fuzz found when applying patch, stopping\n"
msgstr "Unschärfe bei Anwendung des Patches gefunden - breche ab\n"
#, python-format
-msgid "revision %s refers to unknown patches: %s\n"
-msgstr "Änderungssatz %s referenziert unbekannte Patche: %s\n"
-
-#, python-format
-msgid "unknown patches: %s\n"
-msgstr "Unbekannte Patche: %s\n"
-
-#, python-format
msgid "revision %d is not managed"
msgstr "Revision %d steht nicht unter Versionskontrolle"
@@ -5108,6 +3898,9 @@ msgstr "Revision des Arbeitsverzeichnisses ist nicht qtip"
msgid "uncommitted changes in subrepository %s"
msgstr "nicht eingetragene Änderungen in Subrepository %s"
+msgid "local changes found, refresh first"
+msgstr "Lokale Änderungen gefunden. Führe zuerst \"qrefresh\" aus!"
+
msgid "local changes found"
msgstr "Lokale Änderungen gefunden"
@@ -5116,25 +3909,13 @@ msgid "\"%s\" cannot be used as the name of a patch"
msgstr "\"%s\" kann nicht als Patchname verwendet werden"
#, python-format
-msgid "patch name cannot begin with \"%s\""
-msgstr "Patchname darf nicht mit \"%s\" anfangen"
-
-#, python-format
-msgid "\"%s\" cannot be used in the name of a patch"
-msgstr "\"%s\" kann nicht in einem Patchnamen verwendet werden"
-
-#, python-format
msgid "\"%s\" already exists as a directory"
-msgstr "\"%s\" existiert bereits als Verzeichnis"
+msgstr "\"%s\" existiert bereits"
#, python-format
msgid "patch \"%s\" already exists"
msgstr "Patch \"%s\" existiert bereits"
-msgid "cannot use both --force and --keep-changes"
-msgstr ""
-"Es können nicht gleichzeitig --force und --keep-changes angegeben werden"
-
msgid "cannot manage merge changesets"
msgstr "Zusammenführungen können nicht mit Patches verwaltet werden"
@@ -5169,8 +3950,8 @@ msgid "cannot push to a previous patch: %s"
msgstr "Kann Änderungen nicht in einen vorherigen Patch übertragen: %s"
#, python-format
-msgid "guarded by %s"
-msgstr "bewacht durch %s"
+msgid "guarded by %r"
+msgstr "bewacht durch %r"
msgid "no matching guards"
msgstr "keine passenden Wächter"
@@ -5185,9 +3966,6 @@ msgstr "Alle bekannten Patches sind zur Zeit angewendet\n"
msgid "patch series already fully applied\n"
msgstr "Patchserie bereits vollständig angewendet\n"
-msgid "cannot use --exact and --keep-changes together"
-msgstr "--exact und --keep-changes können nicht gleichzeitig verwendet werden"
-
msgid "cannot use --exact and --move together"
msgstr "--exact und --move können nicht gleichzeitig verwendet werden"
@@ -5235,12 +4013,6 @@ msgstr ""
"qpop würde eine Revision entfernen, die nicht von dieser Patch-Reihe\n"
"verwaltet wird"
-msgid "popping would remove an immutable revision"
-msgstr ""
-
-msgid "see \"hg help phases\" for details"
-msgstr "siehe \"hg help phases\" für Details"
-
msgid "deletions found between repo revs"
msgstr "Zwischen den Revisionen haben Löschungen stattgefunden"
@@ -5254,9 +4026,6 @@ msgstr "Patch-Reihe ist jetzt leer\n"
msgid "cannot refresh a revision with children"
msgstr "Kann keine Revision mit Kindern aktualisieren"
-msgid "cannot refresh immutable revision"
-msgstr "Kann keine unveränderbare Revision aktualisieren"
-
msgid ""
"refresh interrupted while patch was popped! (revert --all, qpush to "
"recover)\n"
@@ -5289,8 +4058,9 @@ msgstr "Entferne Speicher-Eintrag %s\n"
msgid "saved queue repository parents: %s %s\n"
msgstr "Eltern der gespeicherten Reihe: %s %s\n"
+#, fuzzy
msgid "updating queue directory\n"
-msgstr "Aktualisiere Patchreihenverzeichnis\n"
+msgstr "Aktualisiere Arbeitsverzeichnis\n"
msgid "Unable to load queue repository\n"
msgstr "Archiv für Patch-Reihen kann nicht geladen werden\n"
@@ -5334,10 +4104,6 @@ msgid "revision %d has unmanaged children"
msgstr "Nachfahren der Revision %d werden nicht verwaltet"
#, python-format
-msgid "revision %d is not mutable"
-msgstr "Revision %d ist unveränderbar"
-
-#, python-format
msgid "cannot import merge revision %d"
msgstr "Kann Zusammenführung %d nicht importieren"
@@ -5357,8 +4123,7 @@ msgid "renaming %s to %s\n"
msgstr "Benenne %s in %s um\n"
msgid "need --name to import a patch from -"
-msgstr ""
-"Beim Import von der Standardeingabe muss die Option --name angegeben werden"
+msgstr "Option --name muss beim Import via stdin angegeben werden"
#, python-format
msgid "unable to read file %s"
@@ -5368,27 +4133,16 @@ msgstr "Fehler beim Lesen der Datei %s"
msgid "adding %s to series file\n"
msgstr "Füge %s zur Seriendatei hinzu\n"
-msgid "keep patch file"
-msgstr "Behält die Patchdatei bei"
-
-msgid "stop managing a revision (DEPRECATED)"
-msgstr "Hört auf, eine Revision zu verwalten (VERALTET)"
-
-msgid "hg qdelete [-k] [PATCH]..."
-msgstr "hg qdelete [-k] [PATCH]..."
-
msgid "remove patches from queue"
msgstr "Entfernt Patches aus der Patch-Reihe"
msgid ""
" The patches must not be applied, and at least one patch is required. "
-"Exact\n"
-" patch identifiers must be given. With -k/--keep, the patch files are\n"
-" preserved in the patch directory."
+"With\n"
+" -k/--keep, the patch files are preserved in the patch directory."
msgstr ""
" Die Patches dürfen nicht angewendet sein und mindestens einer muss\n"
-" angegeben sein. Exakte Patch-IDs müssen verwendet werden. Mit -k/--keep\n"
-" werden die Patchdateien erhalten."
+" angegeben sein. Mit -k/--keep werden die Patchdateien erhalten."
msgid ""
" To stop managing a patch and move it into permanent history,\n"
@@ -5397,12 +4151,6 @@ msgstr ""
" Um die Entwicklung eines Patches zu beenden und ihn in die permanente\n"
" Historie zu legen, verwenden Sie :hg:`qfinish`."
-msgid "show only the preceding applied patch"
-msgstr "Zeigt nur den letzten angewendeten Patch"
-
-msgid "hg qapplied [-1] [-s] [PATCH]"
-msgstr "hg qapplied [-1] [-s] [PATCH]"
-
msgid "print the patches already applied"
msgstr "Zeigt die bereits angewendeten Patches an"
@@ -5412,44 +4160,14 @@ msgstr " Gibt 0 bei Erfolg zurück."
msgid "only one patch applied\n"
msgstr "Nur ein Patch angewendet\n"
-msgid "show only the first patch"
-msgstr "Zeigt nur den ersten Patch"
-
-msgid "hg qunapplied [-1] [-s] [PATCH]"
-msgstr "hg qunapplied [-1] [-s] [PATCH]"
-
msgid "print the patches not yet applied"
msgstr "Zweigt die noch nicht angewendeten Patches an"
msgid "all patches applied\n"
msgstr "Alle Patches angewendet\n"
-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"
-
-msgid "overwrite existing files"
-msgstr "Ãœberschreibt bestehende Dateien"
-
-msgid "place existing revisions under mq control"
-msgstr "Ãœbergibt bestehende Revisionen der Kontrolle von mq"
-
-msgid "use git extended diff format"
-msgstr "Verwende git-erweitertes diff-Format"
-
-msgid "qpush after importing"
-msgstr "Führt qpush nach dem Import aus"
-
-msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE..."
-msgstr "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... DATEI..."
-
-msgid "import a patch or existing changeset"
-msgstr "Importiert einen Patch oder einen existierenden Änderungssatz"
+msgid "import a patch"
+msgstr "Importiert einen Patch"
msgid ""
" The patch is inserted into the series after the last applied\n"
@@ -5487,16 +4205,14 @@ msgid ""
" With -g/--git, patches imported with --rev will use the git diff\n"
" format. See the diffs help topic for information on why this is\n"
" important for preserving rename/copy information and permission\n"
-" changes. Use :hg:`qfinish` to remove changesets from mq control."
+" changes."
msgstr ""
" Ein existierender Änderungssatz kann mit -r/--rev (zum Beispiel\n"
" wird qimport --rev tip -n patch die Spitze importieren) unter\n"
" Kontrolle von mq gestellt werden. Mit -g/--git werden über --rev\n"
" importierte Patches das git-Format benutzen. Siehe auch die Hilfe\n"
-" von diffs für weitere Informationen, warum dies für das Erhalten\n"
-" von Umbenennen/Kopier-Operationen und Dateirechte wichtig ist.\n"
-" Verwende :hg:`qfinish` um Änderungssätze der Kontrolle durch mq zu\n"
-" entziehen."
+" von diff für weitere Informationen, warum dies für das Erhalten\n"
+" von Umbenennen/Kopier-Operationen und Dateirechte wichtig ist."
msgid ""
" To import a patch from standard input, pass - as the patch file.\n"
@@ -5510,8 +4226,11 @@ msgstr ""
msgid " To import an existing patch while renaming it::"
msgstr " Um einen existierenden Patch zu importieren und umzubenennen::"
+#, fuzzy
msgid " hg qimport -e existing-patch -n new-name"
-msgstr " hg qimport -e existierender-patch -n neuer-name"
+msgstr ""
+" hg qimport -e existierender-patch -n neuer-name\n"
+" "
msgid ""
" Returns 0 if import succeeded.\n"
@@ -5520,12 +4239,6 @@ msgstr ""
" Gibt 0 zurück, wenn der Import erfolgreich war.\n"
" "
-msgid "create queue repository"
-msgstr "Erstellt ein Reihen-Archiv"
-
-msgid "hg qinit [-c]"
-msgstr "hg qinit [-c]"
-
msgid "init a new queue repository (DEPRECATED)"
msgstr "Richtet ein neues Archiv für Patch-Reihen ein (VERALTET)"
@@ -5551,24 +4264,6 @@ msgstr ""
" relevanten Befehlen aufgerufen. Statt -c sollte :hg:`init --mq`\n"
" verwendet werden."
-msgid "use pull protocol to copy metadata"
-msgstr "Nutzt das 'Pull'-Protokoll um Metadaten zu kopieren"
-
-msgid "do not update the new working directories"
-msgstr "Aktualisiert die Arbeitsverzeichnisse nicht"
-
-msgid "use uncompressed transfer (fast over LAN)"
-msgstr "Nutzt unkomprimierte Ãœbertragung (schnell im LAN)"
-
-msgid "REPO"
-msgstr "ARCHIV"
-
-msgid "location of source patch repository"
-msgstr "Ort des Quell-Patcharchivs"
-
-msgid "hg qclone [OPTION]... SOURCE [DEST]"
-msgstr "hg qclone [OPTION]... QUELLE [ZIEL]"
-
msgid "clone main and patch repository at same time"
msgstr "Klont gleichzeitig das Haupt- und Patch-Archiv"
@@ -5623,9 +4318,6 @@ msgstr "Entferne angewandte Patches vom Zielarchiv\n"
msgid "updating destination repository\n"
msgstr "Aktualisiere Zielarchiv\n"
-msgid "hg qcommit [OPTION]... [FILE]..."
-msgstr "hg qcommit [OPTION]... [DATEI]..."
-
msgid "commit changes in the queue repository (DEPRECATED)"
msgstr "Speichert Änderungen im Reihen-Archiv (VERALTET)"
@@ -5634,50 +4326,17 @@ msgstr ""
" Dieser Befehl ist veraltet; verwenden Sie stattdessen\n"
" :hg:`commit --mq`."
-msgid "print patches not in series"
-msgstr "Gibt die Patches aus, die in keiner Serie sind"
-
-msgid "hg qseries [-ms]"
-msgstr "hg qseries [-ms]"
-
msgid "print the entire series file"
msgstr "Gibt die ganze Seriendatei aus"
-msgid "hg qtop [-s]"
-msgstr "hg qtop [-s]"
-
msgid "print the name of the current patch"
msgstr "Gibt den Namen des aktuellen Patches aus"
-msgid "hg qnext [-s]"
-msgstr "hg qnext [-s]"
-
-msgid "print the name of the next pushable patch"
-msgstr "Gibt den Namen des nächsten übertragbaren Patches aus"
+msgid "print the name of the next patch"
+msgstr "Gibt den Namen des nächsten Patches aus"
-msgid "hg qprev [-s]"
-msgstr "hg qprev [-s]"
-
-msgid "print the name of the preceding applied patch"
-msgstr "Gibt den Namen des letzten angewendeten Patches aus"
-
-msgid "import uncommitted changes (DEPRECATED)"
-msgstr "Importiere ungespeicherte Änderungen (VERALTET)"
-
-msgid "add \"From: <current user>\" to patch"
-msgstr "Fügt \"From: <aktueller Benutzer>\" zum Patch hinzu"
-
-msgid "add \"From: <USER>\" to patch"
-msgstr "Fügt \"From: <BENUTZER>\" zum Patch hinzu"
-
-msgid "add \"Date: <current date>\" to patch"
-msgstr "Fügt \"Date: <aktuelles Datum>\" zum Patch hinzu"
-
-msgid "add \"Date: <DATE>\" to patch"
-msgstr "Fügt \"Date: <DATUM>\" zum Patch hinzu"
-
-msgid "hg qnew [-e] [-m TEXT] [-l FILE] PATCH [FILE]..."
-msgstr "hg qnew [-e] [-m TEXT] [-l DATEI] PATCH [DATEI]..."
+msgid "print the name of the previous patch"
+msgstr "Gibt den Name des vorherigen Patches aus"
msgid "create a new patch"
msgstr "Erstellt einen neuen Patch"
@@ -5722,16 +4381,20 @@ msgstr ""
" 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."
msgstr ""
-" Verwenden Sie den Schalter -g/--git, um den Patch im erweiterten\n"
-" git-Format beizubehalten. Siehe auch die Hilfe von diffs für weitere\n"
-" Informationen, warum dies für das Erhalten von Umbenennen/Kopier-\n"
-" Operationen und Dateirechte wichtig ist."
+" Verwenden Sie den Schalter -g/--git, um den Patch im erweiterten git-"
+"Format\n"
+" beizubehalten. Siehe auch die Hilfe von diff für weitere Informationen, "
+"warum\n"
+" dies für das Erhalten von Umbenennen/Kopier-Operationen und Dateirechte "
+"wichtig\n"
+" ist."
msgid ""
" Returns 0 on successful creation of a new patch.\n"
@@ -5740,27 +4403,6 @@ msgstr ""
" Gibt 0 bei einer erfolgreichen Erstellung eines neuen Patches zurück.\n"
" "
-msgid "refresh only files already in the patch and specified files"
-msgstr "Aktualisiert nur angegebene und bereits in Patches enthaltene Dateien"
-
-msgid "add/update author field in patch with current user"
-msgstr ""
-"Erstellt/aktualisiert das Autor-Feld im Patch mit dem aktuellen Benutzer"
-
-msgid "add/update author field in patch with given user"
-msgstr ""
-"Erstellt/aktualisiert das Autor-Feld im Patch mit dem angegebenen Benutzer"
-
-msgid "add/update date field in patch with current date"
-msgstr "Erstellt/Aktualisiert das Datumsfeld im Patch mit dem aktuellen Datum"
-
-msgid "add/update date field in patch with given date"
-msgstr ""
-"Erstellt/aktualisiert das Datumsfeld im Patch mit dem angegebenen Datum"
-
-msgid "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l FILE] [-s] [FILE]..."
-msgstr "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l DATEI] [-s] [DATEI]..."
-
msgid "update the current patch"
msgstr "Aktualisiert den aktuellen Patch"
@@ -5795,7 +4437,7 @@ msgstr ""
" Wenn -e/--edit angegeben wird, wird Mercurial den konfigurierten Editor\n"
" starten, in dem Sie die Versionsmeldung eintragen können. Falls "
"qrefresh\n"
-" fehlschlägt, wird eine Sicherheitskopie in ``.hg/last-message.txt`` "
+" fehlschlägt, wird eine Sicherungskopie in ``.hg/last-message.txt`` "
"abgelegt."
msgid ""
@@ -5814,9 +4456,6 @@ msgstr ""
msgid "option \"-e\" incompatible with \"-m\" or \"-l\""
msgstr "Der Schalter \"-e\" ist inkompatibel mit \"-m\" oder \"-l\""
-msgid "hg qdiff [OPTION]... [FILE]..."
-msgstr "hg qdiff [OPTION]... [DATEI]..."
-
msgid "diff of the current patch and subsequent modifications"
msgstr "Vergleicht den aktuellen Patch mit nachträglichen Änderungen"
@@ -5843,16 +4482,8 @@ msgstr ""
"Änderungen\n"
" des aktuellen Patches ohne die nachträglichen Änderungen seit dem "
"letzten\n"
-" qrefresh sehen möchten."
-
-msgid "edit patch header"
-msgstr "Bearbeitet den Kopf eines Patches"
-
-msgid "keep folded patch files"
-msgstr "Behält zusammengelegte Patches bei"
-
-msgid "hg qfold [-e] [-k] [-m TEXT] [-l FILE] PATCH..."
-msgstr "hg qfold [-e] [-k] [-m TEXT] [-l DATEI] PATCH..."
+" qrefresh sehen möchten.\n"
+" "
msgid "fold the named patches into the current patch"
msgstr "Legt die benannten Patches mit dem aktuellen Patch zusammen"
@@ -5898,31 +4529,10 @@ msgstr "qfold kann den bereits angewandten Patch %s nicht zusammenlegen"
msgid "error folding patch %s"
msgstr "Fehler beim Zusammenlegen des Patches %s"
-msgid "tolerate non-conflicting local changes"
-msgstr "Toleriert lokale Änderungen ohne Konflikte"
-
-msgid "overwrite any local changes"
-msgstr "Überschreibt alle lokalen Änderungen"
-
-msgid "do not save backup copies of files"
-msgstr "Keine Sicherheitskopie (.orig) anlegen"
-
-msgid "hg qgoto [OPTION]... PATCH"
-msgstr "hg qgoto [OPTION]... PATCH"
-
msgid "push or pop patches until named patch is at top of stack"
msgstr ""
-"Verschiebt (push/pop) die Patches bis der genannte Patch oben auf dem Stapel "
-"ist"
-
-msgid "list all patches and guards"
-msgstr "Zeigt alle Patches und Wächter an"
-
-msgid "drop all guards"
-msgstr "Entfernt alle Wächter"
-
-msgid "hg qguard [-l] [-n] [PATCH] [-- [+GUARD]... [-GUARD]...]"
-msgstr "hg qguard [-l] [-n] [PATCH] [-- [+WÄCHTER]... [-WÄCHTER]...]"
+"Verschiebt (push/pop) die Patches bis der genannte Patch oben auf dem "
+"Stapel ist"
msgid "set or print guards for a patch"
msgstr "Setzt einen Wächter oder gibt die Wächter eines Patches aus"
@@ -5956,7 +4566,7 @@ msgid ""
" Specifying negative guards now requires '--'."
msgstr ""
" .. note::\n"
-" Spezifizieren von negativen Wächtern erfordert jetzt '--'."
+" Spezifizieren von negativen Guards erfordert jetzt '--'."
msgid " To set guards on another patch::"
msgstr " Um die Wächter eines anderen Patches zu setzen::"
@@ -5976,45 +4586,26 @@ msgstr "Kein Patch zum Arbeiten"
msgid "no patch named %s"
msgstr "Kein Patch namens %s gefunden"
-msgid "hg qheader [PATCH]"
-msgstr "hg qheader [PATCH]"
-
msgid "print the header of the topmost or specified patch"
msgstr "Gibt den Kopf des obersten oder angegebenen Patches aus"
-msgid "apply on top of local changes"
-msgstr "Wendet Patch über die lokalen Änderungen an"
-
-msgid "apply the target patch to its recorded parent"
-msgstr "Wendet den Ziel-Patch auf dessen aufgezeichneten Vorgänger an"
-
-msgid "list patch name in commit text"
-msgstr "Listet den Patchnamen in der Versionsmeldung auf"
-
-msgid "apply all patches"
-msgstr "Wendet alle Patches an"
-
-msgid "merge from another queue (DEPRECATED)"
-msgstr "Zusammenführung aus einer anderen Patch-Reihe (VERALTET)"
-
-msgid "merge queue name (DEPRECATED)"
-msgstr "Name der Reihe zum Zusammenführen (VERALTET)"
-
-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] [--move] [PATCH | INDEX]"
-msgstr "hg qpush [-f] [-l] [-a] [--move] [PATCH | INDEX]"
-
msgid "push the next patch onto the stack"
msgstr "Schiebt den nächsten Patch auf den Stapel"
msgid ""
-" By default, abort if the working directory contains uncommitted\n"
-" changes. With --keep-changes, abort only if the uncommitted files\n"
-" overlap with patched files. With -f/--force, backup and patch over\n"
-" uncommitted changes."
+" When -f/--force is applied, all local changes in patched files\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 ""
+" Gibt 0 bei Erfolg zurück.\n"
+" "
msgid "no saved queues found, please use -n\n"
msgstr "Keine gespeicherten Reihen gefunden, bitte benutze -n\n"
@@ -6023,44 +4614,23 @@ msgstr "Keine gespeicherten Reihen gefunden, bitte benutze -n\n"
msgid "merging with queue at: %s\n"
msgstr "Führe mit Reihe bei %s zusammen\n"
-msgid "pop all patches"
-msgstr "Entnimmt (pop) alle Patches"
-
-msgid "queue name to pop (DEPRECATED)"
-msgstr "Name der zu entnehmenden Reihe (VERALTET)"
-
-msgid "forget any local changes to patched files"
-msgstr "Vergisst alle lokalen Änderungen an zu ändernden Dateien"
-
-msgid "hg qpop [-a] [-f] [PATCH | INDEX]"
-msgstr "hg qpop [-a] [-f] [PATCH | INDEX]"
-
msgid "pop the current patch off the stack"
msgstr "Holt den aktuellen Patch vom Stapel herunter"
msgid ""
-" Without argument, pops off the top of the patch stack. If given a\n"
-" patch name, keeps popping off patches until the named patch is at\n"
-" the top of the stack."
-msgstr ""
-" Ohne Argumente wird der oberste Patch vom Stapel genommen. Wenn ein\n"
-" Patch-Name angegeben ist, wird solange vom Stapel heruntergenommen, bis\n"
-" der angegebene Patch der oberste ist."
-
-msgid ""
-" By default, abort if the working directory contains uncommitted\n"
-" changes. With --keep-changes, abort only if the uncommitted files\n"
-" overlap with patched files. With -f/--force, backup and discard\n"
-" changes made to such files."
+" 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."
msgstr ""
+" Standardmäßig wird der oberste Patch vom Stapel genommen. Wenn ein\n"
+" Patchname angegeben ist, wird solange vom Stapel heruntergenommen, bis\n"
+" der angegebene Patch der oberste ist.\n"
+" "
#, python-format
msgid "using patch queue: %s\n"
msgstr "Benutzer Patch-Reihe: %s\n"
-msgid "hg qrename PATCH1 [PATCH2]"
-msgstr "hg qrename PATCH1 [PATCH2]"
-
msgid "rename a patch"
msgstr "Benennt einen Patch um"
@@ -6071,14 +4641,13 @@ msgstr ""
" Mit einem Argument wird der aktuelle Patch in PATCH1 umbenannt.\n"
" Mit zwei Argumenten wird PATCH1 in PATCH2 umbenannt."
-msgid "delete save entry"
-msgstr "Löscht Speicher-Eintrag"
-
-msgid "update queue working directory"
-msgstr "Aktualisiert das Arbeitsverzeichnis der Reihe"
+#, python-format
+msgid "%s already exists"
+msgstr "%s existiert bereits"
-msgid "hg qrestore [-d] [-u] REV"
-msgstr "hg qrestore [-d] [-u] REV"
+#, python-format
+msgid "A patch named %s already exists in the series file"
+msgstr "Ein Patch namens %s existiert bereits in der Seriendatei"
msgid "restore the queue state saved by a revision (DEPRECATED)"
msgstr ""
@@ -6088,21 +4657,6 @@ msgid " This command is deprecated, use :hg:`rebase` instead."
msgstr ""
" Dieser Befehl ist veraltet, verwenden Sie stattdessen :hg:`rebase`."
-msgid "copy patch directory"
-msgstr "Kopiert das Patchverzeichnis"
-
-msgid "copy directory name"
-msgstr "Kopiert den Verzeichnisnamen"
-
-msgid "clear queue status file"
-msgstr "Löscht die Statusdatei der Reihe"
-
-msgid "force copy"
-msgstr "Erzwingt eine Kopie"
-
-msgid "hg qsave [-m TEXT] [-l FILE] [-c] [-n NAME] [-e] [-f]"
-msgstr "hg qsave [-m TEXT] [-l DATEI] [-c] [-n NAME] [-e] [-f]"
-
msgid "save current queue state (DEPRECATED)"
msgstr "Gegenwärtigen Patchstatus speichern (VERALTET)"
@@ -6112,64 +4666,23 @@ msgstr "Das Ziel %s existiert und ist kein Verzeichnis"
#, python-format
msgid "destination %s exists, use -f to force"
-msgstr "Das Ziel %s existiert bereits. Verwende -f zum Erzwingen"
+msgstr "Das Ziel %s existiert bereits, verwende -f zum Erzwingen"
#, python-format
msgid "copy %s to %s\n"
msgstr "Kopiert %s nach %s\n"
-msgid ""
-"strip specified revision (optional, can specify revisions without this "
-"option)"
-msgstr ""
-"Entfernt die gegebene Revision (optional, da schon die Argumente Revisionen "
-"sind)"
-
-msgid "force removal of changesets, discard uncommitted changes (no backup)"
-msgstr ""
-"erzwingt Entfernung von Änderungssätzen und unversionierten Änderungen\n"
-"(keine Sicherheitskopie)"
-
-msgid ""
-"bundle only changesets with local revision number greater than REV which are "
-"not descendants of REV (DEPRECATED)"
-msgstr ""
-"Bündelt nur Änderungssätze mit einer lokalen Revisionsnummer größer als REV, "
-"die nicht Nachfahren von REV sind (VERALTET)"
-
-msgid "no backups"
-msgstr "Keine Sicherheitskopien"
-
-msgid "no backups (DEPRECATED)"
-msgstr "Keine Sicherheitskopien (VERALTET)"
-
-msgid "ignored (DEPRECATED)"
-msgstr "ignorieren (VERALTET)"
-
-msgid "do not modify working copy during strip"
-msgstr "ändern Sie nicht die Working Copy während des strip Vorgangs"
-
-#, fuzzy
-msgid "remove revs only reachable from given bookmark"
-msgstr ""
-"Entfernt Revisionen, die nur vom angegebenen Lesezeichen aus erreichbar sind"
-
-msgid "hg strip [-k] [-f] [-n] [-B bookmark] REV..."
-msgstr "hg strip [-k] [-f] [-n] [-B Lesezeichen] REV..."
-
msgid "strip changesets and all their descendants from the repository"
msgstr "Entfernt Änderungssätze und alle Nachfahren aus dem Projektarchiv"
msgid ""
" The strip command removes the specified changesets and all their\n"
-" descendants. If the working directory has uncommitted changes, the\n"
-" operation is aborted unless the --force flag is supplied, in which\n"
-" case changes will be discarded."
+" descendants. If the working directory has uncommitted changes,\n"
+" the operation is aborted unless the --force flag is supplied."
msgstr ""
" Der strip-Befehl entfernt die angegebenen Änderungssätze und alle\n"
-" Nachfahren. Unversionierte Änderungen im Arbeitsverzeichnis können\n"
-" durch Angabe von --force verworfen werden, ansonsten unterbrechen sie\n"
-" diesen Vorgang."
+" Nachfahren. Wenn das Arbeitsverzeichnis ungespeicherte Änderungen\n"
+" hat, wird dieser Vorgang unterbrochen, es sei denn, --force ist gegeben."
msgid ""
" If a parent of the working directory is stripped, then the working\n"
@@ -6202,34 +4715,12 @@ msgid ""
" operation completes."
msgstr ""
" Benutzen Sie den Schalter --no-backup, um die Bündel zu entfernen,\n"
-" wenn die Operation abgeschlossen ist."
-
-#, python-format
-msgid "bookmark '%s' not found"
-msgstr "Lesezeichen '%s' wurde nicht gefunden"
-
-#, python-format
-msgid "bookmark '%s' deleted\n"
-msgstr "Lesezeichen '%s' wurde gelöscht\n"
+" wenn die Operation abgeschlossen ist.\n"
+" "
msgid "empty revision set"
msgstr "Revisionsmenge ist leer"
-msgid "disable all guards"
-msgstr "Deaktiviert alle Wächter"
-
-msgid "list all guards in series file"
-msgstr "Listet alle Wächter in der Seriendatei auf"
-
-msgid "pop to before first guarded applied patch"
-msgstr "Entnimmt Patches bis vor den ersten geschützten angewandten Patch"
-
-msgid "pop, then reapply patches"
-msgstr "Entnimmt Patches und wendet sie dann wieder an"
-
-msgid "hg qselect [OPTION]... [GUARD]..."
-msgstr "hg qselect [OPTION]... [WAECHTER]..."
-
msgid "set or print guarded patches to push"
msgstr "Setzt die zu übertragenen bewachten Patches oder gibt sie aus"
@@ -6252,12 +4743,12 @@ msgstr ""
" Beispiel::"
msgid ""
-" qguard foo.patch -- -stable (negative guard)\n"
-" qguard bar.patch +stable (positive guard)\n"
+" qguard foo.patch -stable (negative guard)\n"
+" qguard bar.patch +stable (positive guard)\n"
" qselect stable"
msgstr ""
-" qguard foo.patch -- -stable (negativer Wächter)\n"
-" qguard bar.patch +stable (positiver Wächter)\n"
+" qguard foo.patch -stable (negativer Wächter)\n"
+" qguard bar.patch +stable (positiver Wächter)\n"
" qselect stable"
msgid ""
@@ -6345,12 +4836,6 @@ msgstr "Entferne geschützte Patches vom Stapel\n"
msgid "reapplying unguarded patches\n"
msgstr "Wende ungeschützte Patches erneut an\n"
-msgid "finish all applied changesets"
-msgstr "Schließt alle angewandten Änderungssätze ab"
-
-msgid "hg qfinish [-a] [REV]..."
-msgstr "hg qfinish [-a] [REV]..."
-
msgid "move applied patches into repository history"
msgstr "Verschiebt angewandte Patches in die Historie des Projektarchivs"
@@ -6361,7 +4846,7 @@ msgid ""
msgstr ""
" Schließt die angegebenen Revisionen ab (entspricht den angewandten\n"
" Patches), indem sie aus der Kontrolle von mq entfernt und in die\n"
-" reguläre Projekthistorie übernommen werden."
+" reguläre Projektgeschichte übernommen werden."
msgid ""
" Accepts a revision range or the -a/--applied option. If --applied\n"
@@ -6381,35 +4866,12 @@ msgid ""
msgstr ""
" Dies kann insbes. nützlich sein, wenn Ihre Änderungen in einem\n"
" vorgelagerten Projektarchiv angewandt wurden, oder wenn Sie Ihre\n"
-" Änderungen in ein vorgelagertes Archiv übertragen wollen."
+" Änderungen in ein vorgelagertes Archiv übertragen wollen.\n"
+" "
msgid "no revisions specified"
msgstr "Keine Revisionen angegeben"
-msgid "warning: uncommitted changes in the working directory\n"
-msgstr "Warnung: Unversionierte Änderungen im Arbeitsverzeichnis\n"
-
-msgid "list all available queues"
-msgstr "Zeigt alle verfügbaren Patch-Reihen"
-
-msgid "print name of active queue"
-msgstr "Zeigt den Namen der aktive Patch-Reihe"
-
-msgid "create new queue"
-msgstr "Erstellt eine neue Patch-Reihe"
-
-msgid "rename active queue"
-msgstr "Benennt die aktive Patch-Reihe um"
-
-msgid "delete reference to queue"
-msgstr "Löscht den Verweis auf die Patch-Reihe"
-
-msgid "delete queue, and remove patch dir"
-msgstr "Löscht eine Patch-Reihe und entfernt das Patch-Verzeichnis"
-
-msgid "[OPTION] [QUEUE]"
-msgstr "[OPTION] [REIHE]"
-
msgid "manage multiple patch queues"
msgstr "Verwaltet mehrere Patch-Reihen"
@@ -6417,24 +4879,22 @@ msgid ""
" Supports switching between different patch queues, as well as creating\n"
" new patch queues and deleting existing ones."
msgstr ""
-" Unterstützt das Wechseln zwischen verschiedener Patch-Reihen, sowie\n"
-" das Erstellen neuer Reihen und das Löschen bereits bestehender."
+" Unterstützt das Wechseln zwischen verschiedener Patch-Reihen, ebenso "
+"wie\n"
+" das erstellen neuer Reihen und das Löschen bereits bestehender."
msgid ""
" Omitting a queue name or specifying -l/--list will show you the "
"registered\n"
" queues - by default the \"normal\" patches queue is registered. The "
"currently\n"
-" active queue will be marked with \"(active)\". Specifying --active will "
-"print\n"
-" only the name of the active queue."
+" active queue will be marked with \"(active)\"."
msgstr ""
" Wenn ein Reihenname ausgelassen wird oder -l/--list angegeben wird, "
"werden\n"
" die registrierten Reihen angezeigt - standardmäßig ist die Reihe \"normal"
"\"\n"
-" registriert. Die aktuelle Reihe ist mit \"(aktiv)\" markiert. Durch\n"
-" Angabe von --active wird nur der Name der aktiven Reihe angezeigt."
+" registriert. Die aktuelle Reihe wird mit \"(aktiv)\" markiert."
msgid ""
" To create a new queue, use -c/--create. The queue is automatically made\n"
@@ -6484,7 +4944,7 @@ msgstr "Kann \"%s\" nicht zu ihrem aktuellen Namen umbenennen"
#, python-format
msgid "non-queue directory \"%s\" already exists"
-msgstr "Verzeichnis \"%s\" existiert bereits, ist aber keine Reihe"
+msgstr "Nicht-Reihen-Verzeichnis \"%s\" existiert bereits"
msgid "use --create to create a new queue"
msgstr "Verwenden Sie --create, um eine neue Reihe zu erzeugen"
@@ -6526,302 +4986,442 @@ msgstr "%d entfernt"
msgid "mq: (empty queue)\n"
msgstr "mq: (leere Reihe)\n"
-msgid ""
-"``mq()``\n"
-" Changesets managed by MQ."
-msgstr ""
-"``mq()``\n"
-" Änderungssätze unter der Kontrolle von MQ."
-
-msgid "mq takes no arguments"
-msgstr "mq erwartet keine Argumente"
-
msgid "operate on patch repository"
msgstr "Arbeite mit Patch-Archiv"
-msgid "hooks for sending email push notifications"
-msgstr "Hooks zum Senden von E-Mail-Benachrichtigungen beim Ãœbertragen"
+msgid "print first line of patch header"
+msgstr "Gibt die erste Zeile eines Patch-Kopfes aus"
-msgid ""
-"This extension let you run hooks sending email notifications when\n"
-"changesets are being pushed, from the sending or receiving side."
-msgstr ""
-"Diese Erweiterung ermöglicht das Senden von Benachrichtigungsemails,\n"
-"wannimmer Änderungssätze übertragen werden. Dies kann von der über-\n"
-"tragenden oder der empfangenden Seite aus geschehen."
+msgid "show only the last patch"
+msgstr "Zeigt nur den letzten Patch"
-msgid ""
-"First, enable the extension as explained in :hg:`help extensions`, and\n"
-"register the hook you want to run. ``incoming`` and ``changegroup`` hooks\n"
-"are run by the changesets receiver while the ``outgoing`` one is for\n"
-"the sender::"
-msgstr ""
-"Zunächst muss die Erweiterung aktiviert werden \n"
-"(wie in :hg:`help extensions` beschrieben) und dann \n"
-"als Hook registriert werden.Die ``incoming``- und ``changegroup``-Hooks "
-"werden\n"
-"vom Änderungssatz-Empfänger ausgeführt, der\n"
-"``outgoing``-Hook ist für den Sender::"
+msgid "hg qapplied [-1] [-s] [PATCH]"
+msgstr "hg qapplied [-1] [-s] [PATCH]"
-msgid ""
-" [hooks]\n"
-" # one email for each incoming changeset\n"
-" incoming.notify = python:hgext.notify.hook\n"
-" # one email for all incoming changesets\n"
-" changegroup.notify = python:hgext.notify.hook"
-msgstr ""
-" [hooks]\n"
-" # eine E-Mail für jeden eingehenden Änderungssatz\n"
-" incoming.notify = python:hgext.notify.hook\n"
-" # zusammengefasste E-Mails wenn viele Änderungen auf einmal eingehen\n"
-" changegroup.notify = python:hgext.notify.hook"
+msgid "use pull protocol to copy metadata"
+msgstr "Nutzt das 'Pull'-Protokoll um Metadaten zu kopieren"
-msgid ""
-" # one email for all outgoing changesets\n"
-" outgoing.notify = python:hgext.notify.hook"
-msgstr ""
-" # eine E-Mail für jeden übertragenen Änderungssatz\n"
-" outgoing.notify = python:hgext.notify.hook"
+msgid "do not update the new working directories"
+msgstr "Aktualisiert die Arbeitsverzeichnisse nicht"
-msgid ""
-"Now the hooks are running, subscribers must be assigned to\n"
-"repositories. Use the ``[usersubs]`` section to map repositories to a\n"
-"given email or the ``[reposubs]`` section to map emails to a single\n"
-"repository::"
-msgstr ""
-"Schliesslich müssen noch die Abonnements für die Projektarchive definiert\n"
-"werden. Im Abschnitt ``[usersubs]`` kann man mehrere Archive einer Email\n"
-"zuweisen, in ``[reposubs]`` umgekehrt mehrere Emails für ein Archiv angeben."
+msgid "use uncompressed transfer (fast over LAN)"
+msgstr "Nutzt unkomprimierte Ãœbertragung (schnell im LAN)"
-msgid ""
-" [usersubs]\n"
-" # key is subscriber email, value is a comma-separated list of glob\n"
-" # patterns\n"
-" user@host = pattern"
-msgstr ""
-" [usersubs]\n"
-" # Schlüssel ist die Email-Adresse des Abonnenten\n"
-" # Wert ist eine kommaseparierte Liste von glob-Mustern\n"
-" benutzer@rechner = muster"
+msgid "REPO"
+msgstr "ARCHIV"
-msgid ""
-" [reposubs]\n"
-" # key is glob pattern, value is a comma-separated list of subscriber\n"
-" # emails\n"
-" pattern = user@host"
-msgstr ""
-" [reposubs]\n"
-" # Schlüssel ist ein glob-Muster\n"
-" # Wert ist eine kommaseparierte Liste von Abonnenten-Emails\n"
-" muster = benutzer@rechner"
+msgid "location of source patch repository"
+msgstr "Ort des Quell-Patcharchivs"
-msgid ""
-"Glob patterns are matched against absolute path to repository\n"
-"root. The subscriptions can be defined in their own file and\n"
-"referenced with::"
-msgstr ""
-"Die glob-Muster müssen auf den absoluten Pfad zum Archiv passen. Alle\n"
-"Abonnements können in einer eigenen Datei gesammelt werden und folgender-\n"
-"maßen in der Konfiguration eingebunden werden::"
+msgid "hg qclone [OPTION]... SOURCE [DEST]"
+msgstr "hg qclone [OPTION]... QUELLE [ZIEL]"
-msgid ""
-" [notify]\n"
-" config = /path/to/subscriptionsfile"
-msgstr ""
-" [notify]\n"
-" config = /pfad/zur/abonnentendatei"
+msgid "hg qcommit [OPTION]... [FILE]..."
+msgstr "hg qcommit [OPTION]... [DATEI]..."
-msgid ""
-"Alternatively, they can be added to Mercurial configuration files by\n"
-"setting the previous entry to an empty value."
-msgstr ""
-"Alternativ (mit leerem Wert für ``notify.config``) können die Abonnements\n"
-"in der Mercurial-Konfigurationsdatei angegeben werden."
+msgid "hg qdiff [OPTION]... [FILE]..."
+msgstr "hg qdiff [OPTION]... [DATEI]..."
-msgid ""
-"At this point, notifications should be generated but will not be sent until "
-"you\n"
-"set the ``notify.test`` entry to ``False``."
-msgstr ""
-"Nach dieser Konfiguration werden die Benachrichtigungen nun generiert, aber\n"
-"noch nicht gesendet, bis der Wert von ``notify.test`` auf ``False`` gesetzt\n"
-"wird."
+msgid "keep patch file"
+msgstr "Behält die Patchdatei bei"
-msgid ""
-"Notifications content can be tweaked with the following configuration "
-"entries:"
+msgid "stop managing a revision (DEPRECATED)"
+msgstr "Hört auf, eine Revision zu verwalten (VERALTET)"
+
+msgid "hg qdelete [-k] [PATCH]..."
msgstr ""
-"Der Inhalt der Benachrichtigungen kann mit der folgenden Konfiguration\n"
-"angepasst werden:"
-msgid ""
-"notify.test\n"
-" If ``True``, print messages to stdout instead of sending them. Default: "
-"True."
+msgid "edit patch header"
+msgstr "Bearbeitet den Kopf eines Patches"
+
+msgid "keep folded patch files"
+msgstr "Behält zusammengelegte Patches bei"
+
+msgid "hg qfold [-e] [-k] [-m TEXT] [-l FILE] PATCH..."
+msgstr "hg qfold [-e] [-k] [-m TEXT] [-l DATEI] PATCH..."
+
+msgid "overwrite any local changes"
+msgstr "Überschreibt alle lokalen Änderungen"
+
+msgid "hg qgoto [OPTION]... PATCH"
+msgstr "hg qgoto [OPTION]... PATCH"
+
+msgid "list all patches and guards"
+msgstr "Zeigt alle Patches und Wächter an"
+
+msgid "drop all guards"
+msgstr "Entfernt alle Wächter"
+
+msgid "hg qguard [-l] [-n] [PATCH] [-- [+GUARD]... [-GUARD]...]"
+msgstr "hg qguard [-l] [-n] [PATCH] [-- [+GUARD]... [-GUARD]...]"
+
+msgid "hg qheader [PATCH]"
+msgstr "hg qheader [PATCH]"
+
+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"
+
+msgid "overwrite existing files"
+msgstr "Ãœberschreibt bestehende Dateien"
+
+msgid "place existing revisions under mq control"
+msgstr "Ãœbergibt bestehende Revisionen der Kontrolle von mq"
+
+msgid "use git extended diff format"
+msgstr "Verwende git-erweitertes diff-Format"
+
+msgid "qpush after importing"
+msgstr "Führt qpush nach dem Import aus"
+
+msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE..."
+msgstr "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... DATEI..."
+
+msgid "create queue repository"
+msgstr "Erstellt ein Reihen-Archiv"
+
+msgid "hg qinit [-c]"
+msgstr "hg qinit [-c]"
+
+msgid "import uncommitted changes (DEPRECATED)"
+msgstr "Importiere ungespeicherte Änderungen (VERALTET)"
+
+msgid "add \"From: <current user>\" to patch"
+msgstr "Fügt \"From: <aktueller Benutzer>\" zum Patch hinzu"
+
+msgid "USER"
+msgstr "BENUTZER"
+
+msgid "add \"From: <USER>\" to patch"
+msgstr "Fügt \"From: <BENUTZER>\" zum Patch hinzu"
+
+msgid "add \"Date: <current date>\" to patch"
+msgstr "Fügt \"Date: <aktuelles Datum>\" zum Patch hinzu"
+
+msgid "add \"Date: <DATE>\" to patch"
+msgstr "Fügt \"Date: <DATUM>\" zum Patch hinzu"
+
+msgid "hg qnew [-e] [-m TEXT] [-l FILE] PATCH [FILE]..."
+msgstr "hg qnew [-e] [-m TEXT] [-l DATEI] PATCH [DATEI]..."
+
+msgid "hg qnext [-s]"
+msgstr "hg qnext [-s]"
+
+msgid "hg qprev [-s]"
+msgstr "hg qprev [-s]"
+
+msgid "pop all patches"
+msgstr "Entnimmt (pop) alle Patches"
+
+msgid "queue name to pop (DEPRECATED)"
+msgstr "Name der zu entnehmenden Reihe (VERALTET)"
+
+msgid "forget any local changes to patched files"
+msgstr "Vergisst alle lokalen Änderungen an gepatchten Dateien"
+
+msgid "hg qpop [-a] [-f] [PATCH | INDEX]"
msgstr ""
-"notify.test\n"
-" Falls ``True`` werden die Nachrichten auf die Standardausgabe und nicht\n"
-" als Email versendet. Standard: True."
-msgid ""
-"notify.sources\n"
-" Space separated list of change sources. Notifications are sent only\n"
-" if it includes the incoming or outgoing changes source. Incoming\n"
-" sources can be ``serve`` for changes coming from http or ssh,\n"
-" ``pull`` for pulled changes, ``unbundle`` for changes added by\n"
-" :hg:`unbundle` or ``push`` for changes being pushed\n"
-" locally. Outgoing sources are the same except for ``unbundle`` which\n"
-" is replaced by ``bundle``. Default: serve."
+#, 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"
+
+msgid "apply all patches"
+msgstr "Wendet alle Patches an"
+
+msgid "merge from another queue (DEPRECATED)"
+msgstr "Zusammenführung aus einer anderen Patch-Reihe (VERALTET)"
+
+msgid "merge queue name (DEPRECATED)"
+msgstr "Name der Reihe zum Zusammenführen (VERALTET)"
+
+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] [--move] [PATCH | INDEX]"
msgstr ""
-"notify.sources\n"
-" Kommaseparierte Liste von Quellaktionen. Benachrichtigungen werden nur\n"
-" gesendet, wenn die Änderungen von einer solchen Aktion ausgelöst wurden.\n"
-" Quellen für ankommende Änderungen sind ``serve`` (Änderungen via http\n"
-" oder ssh), ``pull`` (aktiv abgerufen), ``unbundle`` (per :hg:`unbundle`\n"
-" eingefügt) oder ``push`` (lokal übertragen). Für ausgehende Änderungen\n"
-" gibt es die gleichen, nur mit ``unbundle`` gegen ``bundle`` getauscht.\n"
-" Voreinstellung: serve."
-msgid ""
-"notify.strip\n"
-" Number of leading slashes to strip from url paths. By default, "
-"notifications\n"
-" references repositories with their absolute path. ``notify.strip`` let "
-"you\n"
-" turn them into relative paths. For example, ``notify.strip=3`` will "
-"change\n"
-" ``/long/path/repository`` into ``repository``. Default: 0."
+msgid "refresh only files already in the patch and specified files"
+msgstr "Aktualisiert nur angegebene und bereits in Patches enthaltene Dateien"
+
+msgid "add/update author field in patch with current user"
msgstr ""
-"notify.strip\n"
-" Anzahl der Schrägstriche, die vom URL-Pfad abgeschnitten werden sollen.\n"
-" Standardmäßig werden Archive mit ihrem absoluten Pfad benannt.\n"
-" Mit ``notify.strip`` lässt sich das in relative Pfade abwandeln. Zum\n"
-" Beispiel wird ``/langer/pfad/zum/archiv`` mit ``strip=4`` zu ``archiv``.\n"
-" Standard: 0."
+"Erstellt/Aktualisiert das Autor-Feld im Patch mit dem aktuellen Benutzer"
-msgid ""
-"notify.domain\n"
-" If subscribers emails or the from email have no domain set, complete them\n"
-" with this value."
+msgid "add/update author field in patch with given user"
msgstr ""
-"notify.domain\n"
-" Falls eine Abonnementen- oder die Sender-Adresse keine Domäne haben,\n"
-" wird dieser Wert eingefügt."
+"Erstellt/Aktualisiert das Autor-Feld im Patch mit dem angegebenen Benutzer"
-msgid ""
-"notify.style\n"
-" Style file to use when formatting emails."
+msgid "add/update date field in patch with current date"
+msgstr "Erstellt/Aktualisiert das Datumsfeld im Patch mit dem aktuellen Datum"
+
+msgid "add/update date field in patch with given date"
msgstr ""
-"notify.style\n"
-" Stil-Datei für das Formatieren der Emails."
+"Erstellt/Aktualisiert das Datumsfeld im Patch mit dem angegebenen Datum"
+
+msgid "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l FILE] [-s] [FILE]..."
+msgstr "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l DATEI] [-s] [DATEI]..."
+
+msgid "hg qrename PATCH1 [PATCH2]"
+msgstr "hg qrename PATCH1 [PATCH2]"
+
+msgid "delete save entry"
+msgstr "Löscht Speicher-Eintrag"
+
+msgid "update queue working directory"
+msgstr "Aktualisiert das Arbeitsverzeichnis der Reihe"
+
+msgid "hg qrestore [-d] [-u] REV"
+msgstr "hg qrestore [-d] [-u] REV"
+
+msgid "copy patch directory"
+msgstr "Kopiert das Patchverzeichnis"
+
+msgid "copy directory name"
+msgstr "Kopiert den Verzeichnisnamen"
+
+msgid "clear queue status file"
+msgstr "Löscht die Statusdatei der Reihe"
+
+msgid "force copy"
+msgstr "Erzwingt eine Kopie"
+
+msgid "hg qsave [-m TEXT] [-l FILE] [-c] [-n NAME] [-e] [-f]"
+msgstr "hg qsave [-m TEXT] [-l DATEI] [-c] [-n NAME] [-e] [-f]"
+
+msgid "disable all guards"
+msgstr "Deaktiviert alle Wächter"
+
+msgid "list all guards in series file"
+msgstr "Listet alle Wächter in der Seriendatei auf"
+
+msgid "pop to before first guarded applied patch"
+msgstr "Entnimmt Patches bis vor den ersten geschützten angewandten Patch"
+
+msgid "pop, then reapply patches"
+msgstr "Entnimmt Patches und wendet sie dann wieder an"
+
+msgid "hg qselect [OPTION]... [GUARD]..."
+msgstr "hg qselect [OPTION]... [WAECHTER]..."
+
+msgid "print patches not in series"
+msgstr "Gibt die Patches aus, die in keiner Serie sind"
+
+msgid "hg qseries [-ms]"
+msgstr "hg qseries [-ms]"
msgid ""
-"notify.template\n"
-" Template to use when formatting emails."
+"force removal of changesets even if the working directory has uncommitted "
+"changes"
msgstr ""
-"notify.template\n"
-" Vorlage für das Formatieren der Emails."
+"Erzwingt die Entfernung der Änderungssätze, sogar wenn das "
+"Arbeitsverzeichnis ungespeicherte Änderungen enthält"
msgid ""
-"notify.incoming\n"
-" Template to use when run as incoming hook, override ``notify.template``."
+"bundle only changesets with local revision number greater than REV which are "
+"not descendants of REV (DEPRECATED)"
msgstr ""
-"notify.incoming\n"
-" Vorlage (mit höherer Priorität als ``notify.template``), falls die Aktion\n"
-" durch einen 'incoming'-Hook ausgelöst wurde."
+"Bündelt nur Änderungssätze mit einer lokalen Revisionsnummer größer als REV, "
+"die nicht Nachfahren von REV sind (VERALTET)"
-msgid ""
-"notify.outgoing\n"
-" Template to use when run as outgoing hook, override ``notify.template``."
+msgid "no backups"
+msgstr "Keine Sicherungskopien"
+
+msgid "no backups (DEPRECATED)"
+msgstr "Keine Sicherungskopien (VERALTET)"
+
+msgid "do not modify working copy during strip"
+msgstr "ändern Sie nicht die Working Copy während des strip Vorgangs"
+
+msgid "hg strip [-k] [-f] [-n] REV..."
msgstr ""
-"notify.outcoming\n"
-" Vorlage (mit höherer Priorität als ``notify.template``), falls die Aktion\n"
-" durch einen 'outcoming'-Hook ausgelöst wurde."
+
+msgid "hg qtop [-s]"
+msgstr "hg qtop [-s]"
+
+msgid "show only the first patch"
+msgstr "Zeigt nur den ersten Patch"
+
+msgid "hg qunapplied [-1] [-s] [PATCH]"
+msgstr "hg qunapplied [-1] [-s] [PATCH]"
+
+msgid "finish all applied changesets"
+msgstr "Schließt alle angewandten Änderungssätze ab"
+
+msgid "hg qfinish [-a] [REV]..."
+msgstr "hg qfinish [-a] [REV]..."
+
+msgid "list all available queues"
+msgstr "Zeigt alle verfügbaren Patch-Reihen"
+
+msgid "create new queue"
+msgstr "Erstellt eine neue Patch-Reihe"
+
+msgid "rename active queue"
+msgstr "Benennt die aktive Patch-Reihe um"
+
+msgid "delete reference to queue"
+msgstr "Löscht den Verweis auf die Patch-Reihe"
+
+msgid "delete queue, and remove patch dir"
+msgstr "Löscht eine Patch-Reihe und entfernt das Patch-Verzeichnis"
+
+msgid "[OPTION] [QUEUE]"
+msgstr "[OPTION] [REIHE]"
+
+msgid "hooks for sending email notifications at commit/push time"
+msgstr "Hooks zum Senden von E-Mail-Benachrichtigungen beim Commit/Ãœbertragen"
msgid ""
-"notify.changegroup\n"
-" Template to use when running as changegroup hook, override\n"
-" ``notify.template``."
+"Subscriptions can be managed through a hgrc file. Default mode is to\n"
+"print messages to stdout, for testing and configuring."
msgstr ""
-"notify.changegroup\n"
-" Vorlage (mit höherer Priorität als ``notify.template``), falls die Aktion\n"
-" durch einen 'changegroup'-Hook ausgelöst wurde."
+"Abonnements können über eine hgrc-Datei verwaltet werden. Standardmäßig "
+"werden\n"
+"die Nachrichten zum Testen und Konfigurieren auf der Standardausgabe "
+"ausgegeben."
msgid ""
-"notify.maxdiff\n"
-" Maximum number of diff lines to include in notification email. Set to 0\n"
-" to disable the diff, -1 to include all of it. Default: 300."
+"To use, configure the notify extension and enable it in hgrc like\n"
+"this::"
msgstr ""
-"notify.maxdiff\n"
-" Maximale Zeilenanzahl des Diffs in der Benachrichtigungsemail. Der Wert\n"
-" 0 unterbindet die Anzeige des Diffs, -1 wird das gesamte Diff ausgeben.\n"
-" Voreinstellung: 300."
+"Um diese Erweiterung zu benutzen, konfigurieren und aktivieren Sie notify "
+"in\n"
+"der hgrc-Datei wie folgt::"
msgid ""
-"notify.maxsubject\n"
-" Maximum number of characters in emails subject line. Default: 67."
+" [extensions]\n"
+" notify ="
msgstr ""
-"notify.maxsubject\n"
-" Maximale Länge der Betreffszeile. Voreinstellung: 67."
+" [extensions]\n"
+" notify ="
msgid ""
-"notify.diffstat\n"
-" Set to True to include a diffstat before diff content. Default: True."
+" [hooks]\n"
+" # one email for each incoming changeset\n"
+" incoming.notify = python:hgext.notify.hook\n"
+" # batch emails when many changesets incoming at one time\n"
+" changegroup.notify = python:hgext.notify.hook"
msgstr ""
-"notify.diffstat\n"
-" Zeige eine Diff-Statistik vor dem eigentlich Diff an. Voreinstellung: True."
+" [hooks]\n"
+" # eine E-Mail für jeden eingehenden Änderungssatz\n"
+" incoming.notify = python:hgext.notify.hook\n"
+" # zusammengefasste E-Mails wenn viele Änderungen auf einmal eingehen\n"
+" changegroup.notify = python:hgext.notify.hook"
msgid ""
-"notify.merge\n"
-" If True, send notifications for merge changesets. Default: True."
+" [notify]\n"
+" # config items go here"
msgstr ""
-"notify.merge\n"
-" Sende Nachrichten auch für Zusammenführungen. Voreinstellung: True."
+" [notify]\n"
+" # Konfigurationselemente werden hier notiert."
+
+msgid "Required configuration items::"
+msgstr "Benötigte Einstellungen::"
+
+msgid " config = /path/to/file # file containing subscriptions"
+msgstr " config = /pfad/zur/datei # Datei, die die Abonnements enthält"
+
+msgid "Optional configuration items::"
+msgstr "Optionale Einstellungen::"
+
+msgid ""
+" test = True # print messages to stdout for testing\n"
+" strip = 3 # number of slashes to strip for url paths\n"
+" domain = example.com # domain to use if committer missing domain\n"
+" style = ... # style file to use when formatting email\n"
+" template = ... # template to use when formatting email\n"
+" incoming = ... # template to use when run as incoming hook\n"
+" changegroup = ... # template when run as changegroup hook\n"
+" maxdiff = 300 # max lines of diffs to include (0=none, -1=all)\n"
+" maxsubject = 67 # truncate subject line longer than this\n"
+" diffstat = True # add a diffstat before the diff content\n"
+" sources = serve # notify if source of incoming changes in this "
+"list\n"
+" # (serve == ssh or http, push, pull, bundle)\n"
+" merge = False # send notification for merges (default True)\n"
+" [email]\n"
+" from = user@host.com # email address to send as if none given\n"
+" [web]\n"
+" baseurl = http://hgserver/... # root of hg web site for browsing commits"
+msgstr ""
+" test = True # Nachrichten auf der Standardausgabe ausgeben?\n"
+" strip = 3 # Anzahl der zu entfernenden Slashes von URLs\n"
+" domain = example.com # zu verwendende Domain, falls der Autor sie "
+"vergisst\n"
+" style = ... # Stildatei zur Formatierung der E-Mail\n"
+" 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"
+" 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 "
+"ist\n"
+" # (serve == ssh oder http, push, pull, bundle)\n"
+" merge = False # Sende E-Mails für Zusammenführungen? (Standard: "
+"False)\n"
+" [email]\n"
+" from = benutzer@rechner # Absender, falls im Änderungssatz\n"
+" # keine gegeben ist\n"
+" [web]\n"
+" baseurl = http://hgserver/... # Wurzel der hg-Website zum Durchstöbern\n"
+" # der Commits"
msgid ""
-"notify.mbox\n"
-" If set, append mails to this mbox file instead of sending. Default: None."
+"The notify config file has same format as a regular hgrc file. It has\n"
+"two sections so you can express subscriptions in whatever way is\n"
+"handier for you."
msgstr ""
-"notify.mbox\n"
-" Schreibe Nachrichten in mbox Datei, anstatt sie zu versenden. "
-"Voreinstellung: None"
+"Die notify-Konfigurationsdatei folgt dem selben Format wie eine reguläre\n"
+"hgrc-Datei. Sie besteht aus zwei Bereichen, sodass Sie Abonnements so\n"
+"notieren können, wie es Ihnen am besten passt."
msgid ""
-"notify.fromauthor\n"
-" If set, use the first committer of the changegroup for the \"From\" field "
-"of\n"
-" the notification mail. If not set, take the user from the pushing repo.\n"
-" Default: False."
+" [usersubs]\n"
+" # key is subscriber email, value is \",\"-separated list of glob patterns\n"
+" user@host = pattern"
msgstr ""
-"notify.fromauthor\n"
-" Verwende den Autoren der ersten Änderungsgruppe als Absender der\n"
-" Benachrichtigungsemail. Falls nicht gesetzt, verwende den Nutzer im\n"
-" übertragenden Archiv. Voreinstellung: False."
+" [usersubs]\n"
+" # Schlüssel ist die E-Mail-Adresse des Abonnenten\n"
+" # Wert ist eine kommaseparierte Liste von glob-Mustern\n"
+" benutzer@rechner = muster"
msgid ""
-"If set, the following entries will also be used to customize the "
-"notifications:"
+" [reposubs]\n"
+" # key is glob pattern, value is \",\"-separated list of subscriber emails\n"
+" pattern = user@host"
msgstr ""
-"Durch Setzen der folgenden Einträge können die Benachrichtigungen weiter\n"
-"angepasst werden:"
+" [reposubs]\n"
+" # Schlüssel ist ein glob-Muster\n"
+" # Wert ist eine kommaseparierte Liste von Abonnenten-E-Mails\n"
+" muster = benutzer@rechner"
-msgid ""
-"email.from\n"
-" Email ``From`` address to use if none can be found in generated email "
-"content."
+msgid "Glob patterns are matched against path to repository root."
msgstr ""
-"email.from\n"
-" Die zu verwendende Senderadresse (``From``), falls die Vorlage keinen\n"
-" Wert setzt."
+"Die glob-Ausdrücke werden relativ zum Wurzelverzeichnis des Archivs\n"
+"ausgewertet."
msgid ""
-"web.baseurl\n"
-" Root repository browsing URL to combine with repository paths when making\n"
-" references. See also ``notify.strip``."
+"If you like, you can put notify config file in repository that users\n"
+"can push changes to, they can manage their own subscriptions.\n"
msgstr ""
-"web.baseurl\n"
-" Die Basis-URL für alle Archive, die mit dem abgeschnittenen (siehe\n"
-" ``notify.strip``) Archivpfad für Referenzen verwendet wird."
+"Wenn Sie möchten, können Sie die notify-Konfiguration in ein Archiv\n"
+"legen, in das die Benutzer Änderungen übertragen können. Dann können\n"
+"diese ihre Abonnements selber verwalten.\n"
#, python-format
msgid "%s: %d new changesets"
@@ -6875,6 +5475,20 @@ msgstr ""
"kein Pager verwendet."
msgid ""
+"If you notice \"BROKEN PIPE\" error messages, you can disable them by\n"
+"setting::"
+msgstr ""
+"Wenn Sie \"BROKEN PIPE\"-Fehlermeldungen erhalten, können Sie diese über\n"
+"die folgende Einstellung deaktivieren::"
+
+msgid ""
+" [pager]\n"
+" quiet = True"
+msgstr ""
+" [pager]\n"
+" quiet = True"
+
+msgid ""
"You can disable the pager for certain commands by adding them to the\n"
"pager.ignore list::"
msgstr ""
@@ -6888,7 +5502,6 @@ msgstr ""
" [pager]\n"
" ignore = version, help, update"
-#, fuzzy
msgid ""
"You can also enable the pager only for certain commands using\n"
"pager.attend. Below is the default list of commands to be paged::"
@@ -6912,7 +5525,7 @@ msgstr ""
"Befehle den Pager benutzen."
msgid "If pager.attend is present, pager.ignore will be ignored."
-msgstr "Wenn pager.attend vorhanden ist, ist pager.ignore wirkungslos."
+msgstr "Wenn pager.attend vorhanden ist, wird pager.ignore ignoriert."
msgid ""
"To ignore global commands like :hg:`version` or :hg:`help`, you have\n"
@@ -6930,8 +5543,49 @@ msgstr ""
"Pagers zu kontrollieren. Benutzen Sie Werte wie yes, no, on, off, oder auto\n"
"für normales Verhalten.\n"
+#, fuzzy
msgid "when to paginate (boolean, always, auto, or never)"
-msgstr "Wann soll die Seite umgebrochen werden (always, auto oder 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"
+
+msgid ""
+"This extension allows you to use git-style suffixes to refer to the\n"
+"ancestors of a specific revision."
+msgstr ""
+"Diese Erweiterung erlaubt es, Suffixe im Stil von git zu verwenden, um\n"
+"die Vorfahren einer bestimmten Revision anzusprechen."
+
+msgid "For example, if you can refer to a revision as \"foo\", then::"
+msgstr ""
+"Zum Beispiel, wenn eine Revision als \"foo\" angesprochen werden kann,\n"
+"dann gilt::"
+
+msgid ""
+" foo^N = Nth parent of foo\n"
+" foo^0 = foo\n"
+" foo^1 = first parent of foo\n"
+" foo^2 = second parent of foo\n"
+" foo^ = foo^1"
+msgstr ""
+" foo^N = N-ter Vorfahr von foo\n"
+" foo^0 = foo\n"
+" foo^1 = erster Elternteil von foo\n"
+" foo^2 = zweiter Elternteil von foo\n"
+" foo^ = foo^1"
+
+msgid ""
+" foo~N = Nth first grandparent of foo\n"
+" foo~0 = foo\n"
+" foo~1 = foo^1 = foo^ = first parent of foo\n"
+" foo~2 = foo^1^1 = foo^^ = first parent of first parent of foo\n"
+msgstr ""
+" foo~N = N-ter erster Großelternteil von foo\n"
+" foo~0 = foo\n"
+" foo~1 = foo^1 = foo^ = erster Elternteil von foo\n"
+" foo~2 = foo^1^1 = foo^^ = erster Elternteil des ersten Elternteils\n"
+" von foo\n"
msgid "command to send changesets as (a series of) patch emails"
msgstr "Befehl, um Änderungssätze als (Reihe von) Patch-E-Mails zu versenden"
@@ -6971,11 +5625,11 @@ msgstr ""
"und -archiven als zusammengehörig angezeigt werden."
msgid ""
-"To configure other defaults, add a section like this to your\n"
-"configuration file::"
+"To configure other defaults, add a section like this to your hgrc\n"
+"file::"
msgstr ""
-"Andere Vorgabewerte können beispielsweise durch den folgenden Abschnitt\n"
-"in der Konfigurationsdatei gesetzt werden::"
+"Andere Standardwerte können durch beispielsweise durch den\n"
+"folgenden Abschnitt in der hgrc konfiguriert werden::"
msgid ""
" [email]\n"
@@ -6996,8 +5650,8 @@ msgid ""
"Use ``[patchbomb]`` as configuration section name if you need to\n"
"override global ``[email]`` address settings."
msgstr ""
-"Benutzen Sie ``[patchbomb]`` als Abschnittsnamen, falls Sie globale\n"
-"``[email]``-Einstellungen überschreiben müssen."
+"Benutzen Sie [patchbomb] als Abschnittsnamen, falls Sie globale\n"
+"[email]-Einstellungen überschreiben müssen."
msgid ""
"Then you can use the :hg:`email` command to mail a series of\n"
@@ -7019,84 +5673,12 @@ msgstr ""
"Befehlszeile senden kann. Siehe die [email]- und [smtp]-Abschnitte in\n"
"hgrc(5) für Einzelheiten.\n"
-msgid "send patches as inline message text (default)"
-msgstr "Sendet Patches als inline-Nachrichtentext (Voreinstellung)"
-
-msgid "send patches as attachments"
-msgstr "Sendet Patches als Anhänge"
-
-msgid "send patches as inline attachments"
-msgstr "Sendet Patches als inline-Anhänge"
-
-msgid "email addresses of blind carbon copy recipients"
-msgstr "Emailadressen von BCC-Empfängern"
-
-msgid "email addresses of copy recipients"
-msgstr "Emailadressen von CC-Empfängern"
-
-msgid "ask for confirmation before sending"
-msgstr "Vor dem Abschicken bestätigen"
-
-msgid "add diffstat output to messages"
-msgstr "Fügt Ausgabe von diffstat hinzu"
-
-msgid "use the given date as the sending date"
-msgstr "Nutze gegebenes Datum als Sendedatum"
-
-msgid "use the given file as the series description"
-msgstr "Nutze gegebene Datei als Serienbeschreibung"
-
-msgid "email address of sender"
-msgstr "Emailadresse des Senders"
-
-msgid "print messages that would be sent"
-msgstr "Zeige Nachrichten an, die gesendet werden würden"
-
-msgid "write messages to mbox file instead of sending them"
-msgstr "Schreibe Nachrichten in mbox Datei, anstatt sie zu versenden"
-
-msgid "email addresses replies should be sent to"
-msgstr "Emailadressen zu denen Antworten geschickt werden sollen"
-
-msgid "subject of first message (intro or single patch)"
-msgstr "Betreff der ersten Nachricht (Serieneinführung oder einzelner Patch)"
-
-msgid "message identifier to reply to"
-msgstr "Antwortadresse (reply-to)"
-
-msgid "flags to add in subject prefixes"
-msgstr "Diese Stichwörter zu Betreffs-Präfixen hinzufügen"
-
-msgid "email addresses of recipients"
-msgstr "Emailadressen der Empfänger"
-
-msgid "omit hg patch header"
-msgstr "Lasse \"hg patch\"-Kopf aus"
-
-msgid "send changes not found in the target repository"
-msgstr "Wähle Änderungen aus, die nicht im Zielarchiv sind"
-
-msgid "send changes not in target as a binary bundle"
-msgstr "Wähle Änderungen, die nicht im Ziel als Binärbündel sind"
-
-msgid "name of the bundle attachment file"
-msgstr "Name der Bündel-Anhangsdatei"
-
-msgid "a revision to send"
-msgstr "Eine zu sendende Revision"
-
-msgid "run even when remote repository is unrelated (with -b/--bundle)"
-msgstr ""
-"Auch ausführen, wenn das entfernte Archiv keinen Bezug hat (mit -b/--bundle)"
-
-msgid "a base changeset to specify instead of a destination (with -b/--bundle)"
-msgstr "Eine Basisrevision anstelle eines Ziels (mit -b/--bundle)"
-
-msgid "send an introduction email for a single patch"
-msgstr "Sende eine Einführungsemail auch für einzelnen Patch"
+#, python-format
+msgid "%s Please enter a valid value"
+msgstr "%s Bitte einen gültigen Wert angeben"
-msgid "hg email [OPTION]... [DEST]..."
-msgstr "hg email [OPTION]... [ZIEL]..."
+msgid "Please enter a valid value.\n"
+msgstr "Bitte einen gültigen Wert angeben.\n"
msgid "send changesets by email"
msgstr "Sende Änderungssätze per Email"
@@ -7110,16 +5692,16 @@ msgstr ""
" je eine pro Nachricht. Die Serie wird durch \"[PATCH 0 of N]\"\n"
" eingeleitet, die die Serie als Ganzes beschreibt."
+#, 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."
msgstr ""
-" Der Betreff jeder Patch-E-Mail ist \"[PATCH M of N] ...\", mit der\n"
-" ersten Zeile der Änderungszusammenfassung als weiterem Text. Die\n"
-" Nachricht besteht aus zwei oder drei Teilen. Zuerst die Beschreibung\n"
-" des Änderungsssatzes."
+"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"
@@ -7137,26 +5719,19 @@ msgid ""
" 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."
+"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"
" easy reviewing. Using the -a/--attach option will instead create\n"
" an attachment for the patch. With -i/--inline an inline attachment\n"
-" will be created. You can include a patch both as text in the email\n"
-" body and as a regular or an inline attachment by combining the\n"
-" -a/--attach or -i/--inline with the --body option."
+" will be created."
msgstr ""
-" Standardmäßig ist der Patch direkt im Text der Email enthalten,\n"
-" damit er leicht überprüft werden kann. Mit dem Schalter\n"
-" -a/--attach stattdessen ein Anhang für den Patch erzeugt.\n"
-" Der Schalter -i/--inline erzeugt einen Inline-Anhang. Ein Patch\n"
-" kann sowohl als Nachrichtentext als auch als normaler oder \n"
-" Inline-Anhang eingebunden werden, indem die Schalter\n"
-" -a/--attach und -i/--inline mit dem --body - Schalter\n"
-" kombiniert werden."
+" Standardmäßig ist der Patch direkt im Text der Email enthalten. Mit dem\n"
+" Schalter -a/--attach wird er in einen Anhang verlegt. Der Schalter\n"
+" -i/--inline erzeugt einen inline-Anhang."
msgid ""
" With -o/--outgoing, emails will be generated for patches not found\n"
@@ -7182,9 +5757,9 @@ msgid ""
" previewed with any mail user agent which supports UNIX mbox\n"
" files."
msgstr ""
-" Alternativ werden die Nachrichten mit der Option -m/--mbox in eine\n"
-" Datei geschrieben, die von jedem Emailprogramm, welches das UNIX-mbox-\n"
-" Format unterstützt, geprüft werden, zum Beispiel mit mutt::"
+"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 ""
" With -n/--test, all steps will run, but mail will not be sent.\n"
@@ -7194,13 +5769,13 @@ msgid ""
" 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 ""
-" Mit der Option -n/--test werden alle Schritte ausgeführt und das\n"
-" Ergebnis angezeigt, aber keine Email versendet. Sie werden also nach\n"
-" einer Empfängeradresse, einem Betreff und einer einleitenden Nachricht,\n"
-" die die Patches Ihrer Patchbombe beschreibt, gefragt. Dann werden alle\n"
-" Patchbombennachrichten angezeigt. Wenn die PAGER-Umgebungsvariable\n"
-" gesetzt ist, wird Ihr Pager für jede Patchbombe einzeln aufgerufen, so\n"
-" dass alles überprüft werden kann."
+"Um das Versenden verfrühter 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"
@@ -7220,7 +5795,6 @@ msgstr ""
" hg email -r 3000:3005 # sendet Patches 3000 bis 3005\n"
" hg email 3000 # sendet Patch 3000 (veraltet)"
-#, fuzzy
msgid ""
" hg email -o # send all patches not in default\n"
" hg email -o DEST # send all patches not in DEST\n"
@@ -7232,7 +5806,6 @@ msgstr ""
" hg email -o -r 3000 # Vorfahren von 3000 nicht im default-Ziel\n"
" hg email -o -r 3000 ZIEL # Vorfahren von 3000 nicht im ZIEL"
-#, fuzzy
msgid ""
" hg email -b # send bundle of all patches not in default\n"
" hg email -b DEST # send bundle of all patches not in DEST\n"
@@ -7265,7 +5838,7 @@ msgid ""
" hgrc. See the [email] section in hgrc(5) for details.\n"
" "
msgstr ""
-" Um dieses Kommando zu benutzen muss der Emailversand im Abschnitt\n"
+" Um dieses Kommando zu benutzen muss das Email-Versenden in der Sektion\n"
" [email] der Konfiguration aktiviert sein. Siehe hgrc(5) für Details.\n"
" "
@@ -7299,24 +5872,21 @@ msgstr ""
msgid "This patch series consists of %d patches."
msgstr "Diese Patch-Serie besteht aus %d Patches."
-msgid "no recipient addresses provided"
-msgstr "Keine Empfängeradresse angegeben"
-
msgid ""
"\n"
"Final summary:"
msgstr ""
"\n"
-"Engültige Zusammenfassung:"
+"Zusammenfassung:"
msgid "are you sure you want to send (yn)?"
-msgstr "Sicher, dass Sie jetzt senden möchten (j/n)?"
+msgstr "Sicher, dass Sie jetzt senden möchten (y/n)?"
msgid "&No"
msgstr "&Nein"
msgid "&Yes"
-msgstr "&Ja"
+msgstr "Ja (&y)"
msgid "patchbomb canceled"
msgstr "patchbomb abgebrochen"
@@ -7324,14 +5894,94 @@ msgstr "patchbomb abgebrochen"
msgid "Displaying "
msgstr "Zeige "
+msgid "Writing "
+msgstr "Schreibe "
+
+msgid "writing"
+msgstr "Schreibe"
+
msgid "Sending "
msgstr "Sende "
msgid "sending"
msgstr "Sende"
-msgid "writing"
-msgstr "Schreibe"
+msgid "send patches as attachments"
+msgstr "Sendet Patches als Anhänge"
+
+msgid "send patches as inline attachments"
+msgstr "Sendet Patches als inline-Anhänge"
+
+msgid "email addresses of blind carbon copy recipients"
+msgstr "Emailadressen von BCC-Empfängern"
+
+msgid "email addresses of copy recipients"
+msgstr "Emailadressen von CC-Empfängern"
+
+msgid "ask for confirmation before sending"
+msgstr "Vor dem Abschicken bestätigen"
+
+msgid "add diffstat output to messages"
+msgstr "Fügt Ausgabe von diffstat hinzu"
+
+msgid "use the given date as the sending date"
+msgstr "Nutze gegebenes Datum als Sendedatum"
+
+msgid "use the given file as the series description"
+msgstr "Nutze gegebene Datei als Serienbeschreibung"
+
+msgid "email address of sender"
+msgstr "Emailadresse des Senders"
+
+msgid "print messages that would be sent"
+msgstr "Zeige Nachrichten an, die gesendet werden würden"
+
+msgid "write messages to mbox file instead of sending them"
+msgstr "Schreibe Nachrichten in mbox Datei, anstatt sie zu versenden"
+
+#, fuzzy
+msgid "email addresses replies should be sent to"
+msgstr "Emailadressen der Empfänger"
+
+msgid "subject of first message (intro or single patch)"
+msgstr "Betreff der ersten Nachricht (Serieneinführung oder einzelner Patch)"
+
+msgid "message identifier to reply to"
+msgstr "Antwortadresse (reply-to)"
+
+msgid "flags to add in subject prefixes"
+msgstr "Diese Stichwörter zu Betreffs-Präfixen hinzufügen"
+
+msgid "email addresses of recipients"
+msgstr "Emailadressen der Empfänger"
+
+msgid "omit hg patch header"
+msgstr "Lasse \"hg patch\"-Kopf aus"
+
+msgid "send changes not found in the target repository"
+msgstr "Wähle Änderungen aus, die nicht im Zielarchiv sind"
+
+msgid "send changes not in target as a binary bundle"
+msgstr "Wähle Änderungen, die nicht im Ziel als Binärbündel sind"
+
+msgid "name of the bundle attachment file"
+msgstr "Name der Bündel-Anhangsdatei"
+
+msgid "a revision to send"
+msgstr "Eine zu sendende Revision"
+
+msgid "run even when remote repository is unrelated (with -b/--bundle)"
+msgstr ""
+"Auch ausführen wenn das entfernte Archiv keinen Bezug hat (mit -b/--bundle)"
+
+msgid "a base changeset to specify instead of a destination (with -b/--bundle)"
+msgstr "Eine Basisrevision anstelle eines Ziels (mit -b/--bundle)"
+
+msgid "send an introduction email for a single patch"
+msgstr "Sende eine Einführungsemail auch für einzelnen Patch"
+
+msgid "hg email [OPTION]... [DEST]..."
+msgstr "hg email [OPTION]... [ZIEL]..."
msgid "show progress bars for some actions"
msgstr "Bei einigen Befehlen Fortschrittsbalken zeigen"
@@ -7350,12 +6000,10 @@ msgstr ""
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"
-" changedelay = 1 # changedelay: minimum delay before showing a new topic.\n"
-" # If set to less than 3 * refresh, that value will\n"
-" # be used instead.\n"
" refresh = 0.1 # time in seconds between refreshes 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"
@@ -7368,10 +6016,9 @@ msgstr ""
" [progress]\n"
" delay = 3 # Verzögerung in Sekunden (float),\n"
" # bevor der Fortschrittsbalken gezeigt wird\n"
-" changedelay = 1 # Mindestverzögerung bevor ein neues Thema gezeigt wird.\n"
-" # Falls 3 * refresh größer ist, wird dies verwendet.\n"
-" refresh = 0.1 # Sek. zwischen Aktualisierungen des Fortschrittsbalkens\n"
-" format = topic bar number estimate # Format 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"
" clear-complete = True # löscht den Fortschrittsbalken, wenn er fertig ist\n"
@@ -7381,69 +6028,49 @@ msgstr ""
msgid ""
"Valid entries for the format field are topic, bar, number, unit,\n"
-"estimate, speed, and item. item defaults to the last 20 characters of\n"
-"the item, but this can be changed by adding either ``-<num>`` which\n"
-"would take the last num characters, or ``+<num>`` for the first num\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"
-"estimate, speed und item. item zeigt normalerweise die letzten 20 Zeichen\n"
-"des Objektes. Mit dem Zusatz ``-<num>`` oder ``+<num>`` werden stattdessen\n"
-"entweder die letzten (-) oder die ersten (+) num Zeichen gezeigt.\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 "%02dsek"
+msgstr ""
#. i18n: format X minutes and YY seconds as "XmYYs"
#, python-format
msgid "%dm%02ds"
-msgstr "%d:%02d"
+msgstr ""
#. i18n: format X hours and YY minutes as "XhYYm"
#, python-format
msgid "%dh%02dm"
-msgstr "%d:%02d"
+msgstr ""
#. i18n: format X days and YY hours as "XdYYh"
#, python-format
msgid "%dd%02dh"
-msgstr "%dd%02dh"
+msgstr ""
#. i18n: format X weeks and YY days as "XwYYd"
#, python-format
msgid "%dw%02dd"
-msgstr "%dw%02dd"
+msgstr ""
#. i18n: format X years and YY weeks as "XyYYw"
#, python-format
msgid "%dy%02dw"
-msgstr "%dy%02dw"
-
-#, python-format
-msgid "%d %s/sec"
-msgstr "%d %s/Sek"
+msgstr ""
msgid "command to delete untracked files from the working directory"
msgstr "Löscht nicht versionierte Dateien aus dem Arbeitsverzeichnis"
-msgid "abort if an error occurs"
-msgstr "Bei Fehler abbrechen"
-
-msgid "purge ignored files too"
-msgstr "Auch ignorierte Dateien entfernen"
-
-msgid "print filenames instead of deleting them"
-msgstr "Zeigt Dateinamen an, statt sie zu entfernen"
-
-msgid "end filenames with NUL, for use with xargs (implies -p/--print)"
-msgstr ""
-"Beendet Dateinamen mit NUL zur Nutzung mit xargs (implizert -p/--print)"
-
-msgid "hg purge [OPTION]... [DIR]..."
-msgstr "hg purge [OPTION]... [DIR]..."
-
msgid "removes files not tracked by Mercurial"
msgstr "Entfernt nicht von Mercurial versionierte Dateien"
@@ -7493,7 +6120,7 @@ msgid ""
" option.\n"
" "
msgstr ""
-" Seien Sie mit purge vorsichtig, da Sie Dateien unwiederbringlich\n"
+" Seien Sie mit purge vorsichtig, da Sie Dateien unwiderbringlich\n"
" löschen könnten, die Sie nicht zum Projektarchiv hinzugefügt\n"
" haben. Wenn Sie nur die Liste der Dateien sehen wollen, die dieses\n"
" Programm entfernen würde, nutzen Sie die Option --print.\n"
@@ -7515,6 +6142,22 @@ msgstr "Entferne Datei %s\n"
msgid "Removing directory %s\n"
msgstr "Entferne Verzeichnis %s\n"
+msgid "abort if an error occurs"
+msgstr "Bei Fehler abbrechen"
+
+msgid "purge ignored files too"
+msgstr "Auch ignorierte Dateien entfernen"
+
+msgid "print filenames instead of deleting them"
+msgstr "Zeigt Dateinamen an, statt sie zu entfernen"
+
+msgid "end filenames with NUL, for use with xargs (implies -p/--print)"
+msgstr ""
+"Beendet Dateinamen mit NUL zur Nutzung mit xargs (implizert -p/--print)"
+
+msgid "hg purge [OPTION]... [DIR]..."
+msgstr "hg purge [OPTION]... [DIR]..."
+
msgid "command to move sets of revisions to a different ancestor"
msgstr "Verknüpft Änderungssätze mit einem anderen Vorgänger"
@@ -7523,7 +6166,7 @@ msgid ""
"repository."
msgstr ""
"Mit dieser Erweiterung können Sie Versionen in einem existierenden\n"
-"Mercurial-Projektarchiv auf einen anderen Ansatzpunkt verschieben."
+"Mercurial Projektarchiv auf einen anderen Ansatzpunkt verschieben."
msgid ""
"For more information:\n"
@@ -7532,60 +6175,6 @@ msgstr ""
"Weitere Informationen:\n"
"http://mercurial.selenic.com/wiki/RebaseExtension\n"
-#, fuzzy
-msgid "rebase from the specified changeset"
-msgstr "Verschiebe angefangen vom gegebenen Änderungssatz"
-
-msgid ""
-"rebase from the base of the specified changeset (up to greatest common "
-"ancestor of base and dest)"
-msgstr ""
-"verschiebt von der Basis des spezifizierten Changesets (bis zum größten "
-"gemeinsamen Vorgänger von base und dest)"
-
-msgid "rebase these revisions"
-msgstr "Verschiebe diese Revisionen"
-
-msgid "rebase onto the specified changeset"
-msgstr "Verschiebe auf den gegebenen Änderungssatz"
-
-msgid "collapse the rebased changesets"
-msgstr "Fügt die verschobenen Änderungssätze zu einem einzelnen zusammen"
-
-msgid "use text as collapse commit message"
-msgstr "Setzt die Versionsmeldung des zusammengefügten Änderungssatzes"
-
-msgid "invoke editor on commit messages"
-msgstr "Ruft Editor zum Setzen der Versionsmeldung auf"
-
-msgid "read collapse commit message from file"
-msgstr "Liest Versionsmeldung für den zusammengefügten Änderungssatz aus Datei"
-
-msgid "keep original changesets"
-msgstr "Behält die ursprünglichen Änderungssätze bei"
-
-msgid "keep original branch names"
-msgstr "Erhält die ursprünglichen Zweignamen"
-
-msgid "force detaching of source from its original branch"
-msgstr "erzwingt ein Abkoppeln der Quelle von ihrem ursprünglichen Zweig"
-
-msgid "specify merge tool"
-msgstr "Methode für das Zusammenführen"
-
-msgid "continue an interrupted rebase"
-msgstr "Führt eine unterbrochene Pfropfung fort"
-
-msgid "abort an interrupted rebase"
-msgstr "Bricht eine unterbrochene Pfropfung ab"
-
-msgid ""
-"hg rebase [-s REV | -b REV] [-d REV] [options]\n"
-"hg rebase {-a|-c}"
-msgstr ""
-"hg rebase [-s REV | -b REV] [-d REV] [Optionen]\n"
-"hg rebase {-a|-c}"
-
msgid "move changeset (and descendants) to a different branch"
msgstr ""
"Verschiebt Versionen (und ihre Nachfolger) auf einen abweichenden Zweig"
@@ -7607,10 +6196,10 @@ msgid ""
" same rebase or they will end up with duplicated changesets after\n"
" pulling in your rebased changesets."
msgstr ""
-" Sie sollten keine Änderungssätze umpfropfen, die auch andere bereits\n"
+" Sie sollten keine changesets rebasen, die auch andere bereits\n"
" haben, ansonsten zwingen Sie jeden anderen die gleiche rebase-\n"
" Operation durchzuführen, um die verschobenen Versionen nicht\n"
-" doppelt zu haben, sobald sie Ihre Änderungen abrufen."
+" doppelt zu haben, wenn sie Ihre Änderungen ziehen."
msgid ""
" If you don't specify a destination changeset (``-d/--dest``),\n"
@@ -7618,10 +6207,10 @@ msgid ""
" destination. (The destination changeset is not modified by\n"
" rebasing, but new changesets are added as its descendants.)"
msgstr ""
-" Wenn Sie keine Zielversion spezifizieren (``-d/--dest``), verwendet\n"
-" rebase als Ziel den Kopf des aktuellen benannten Zweigs, der\n"
-" der Projektspitze (tip) am nächsten ist. (Die Zielversion wird durch\n"
-" die Verschiebung nicht verändert, aber erhält neue Kinder.)"
+" Wenn Sie keine Zielversion spezifizieren (``-d/--dest``),\n"
+" verwendet rebase den head des aktuellen named branch, der am \n"
+" nächsten an tip ist als Ziel (die Zielversion wird durch rebase\n"
+" nicht verändert. Sie erhält nur neue changesets als Kinder)."
msgid ""
" You can specify which changesets to rebase in two ways: as a\n"
@@ -7636,17 +6225,19 @@ msgid ""
" the whole branch. If you specify neither ``-s`` nor ``-b``, rebase\n"
" uses the parent of the working directory as the base."
msgstr ""
-" Sie können die zu verschiebenden Versionen auf zwei Arten angeben: Als\n"
-" \"Quell-\" oder als \"Basisversion\". Mit diesen ist jeweils eine Menge\n"
-" von topologisch verwandten Revisionen gemeint (der \"Quell\"-zweig).\n"
-" Wenn Sie eine Quellversion (``-s/--source``) angeben, wird Mercurial\n"
-" diese Version und alle ihrer Nachfahren verschieben. Geben Sie eine\n"
-" Basisversion (``-b/--base``) an, so sucht Mercurial den jüngsten\n"
-" gemeinsamen Vorfahren der Basis und des Ziels und verschiebt den Zweig,\n"
-" der die Basis enthält, nicht jedoch den gemeinsamen Vorfahren.\n"
-" Somit ist ``-s`` genauer, aber ``-b`` praktischer: Man gibt irgendeine\n"
-" Version im zu verschiebenden Zweig an. Wenn Sie weder ``-s`` noch\n"
-" ``-b`` angeben, wird den Vorfahr der Arbeitskopie als Basis verwendet."
+" Sie können auf zwei Arten angeben, welche Changesets rebased werden\n"
+" sollen: als \"source\" oder als \"base\" Changesets. Beide sind\n"
+" Abkürzungen für ein Menge von Changesets, die topologisch\n"
+" zusammenhängen (die \"source\" Branch). Wenn Sie source angeben\n"
+" (``-s/--source``), rebase wird dieses Changeset und all seine\n"
+" Descendants nach dest rebasen. Wenn Sie base angeben (``-b/--base``),\n"
+" rebase wird Vorgänger von base auswählen, bis zu aber nicht\n"
+" einschließlich dem gemeinsamen Vorgänger mit dest. Es ist also\n"
+" ``-b`` weniger präzise, aber bequemer, als ``-s``: Sie können\n"
+" jegliches Changeset im Quell-Branch angeben, und rebase wird den\n"
+" gesamten Branch auswählen. Wenn Sie weder ``-s``noch ``-b`` angeben,\n"
+" wird rebase den Parent des aktuellen Verzeichnisses als Base\n"
+" auswählen."
msgid ""
" By default, rebase recreates the changesets in the source branch\n"
@@ -7655,11 +6246,12 @@ msgid ""
" changesets in the source branch (e.g. merges from the destination\n"
" branch) may be dropped if they no longer contribute any change."
msgstr ""
-" Standardmäßig werden die Änderungssätze des Quellzweigs als Nachfahren\n"
-" des Ziels erzeugt und ihr Original zerstört. Mit ``--keep`` werden\n"
-" die Originale erhalten. Einige Änderungssätze des Quellzweigs könnten\n"
-" entfernt werden (z.B. Zusammenführungen aus dem Zielzweig, die keine\n"
-" eigenen Änderungen über die Zusammenführung hinaus enthalten)."
+" Per Default erzeugt rebase die Changesets im Quell-Branch als\n"
+" Descendants von dest neu, und zerstört dann die Originale. Benutzen\n"
+" Sie ``--keep``, um die originalen Quell-Changesets zu bewahren.\n"
+" Einige Changeset im Quell-Branch (z.B. Merges vom Ziel-Branch),\n"
+" können gelöscht werden, wenn sie keine weiteren Änderungen\n"
+" mehr beisteuern."
msgid ""
" One result of the rules for selecting the destination changeset\n"
@@ -7669,22 +6261,21 @@ msgid ""
" destination (or ``update`` to the other head, if it's the head of\n"
" the intended source branch)."
msgstr ""
-" Als Folge der automatischen Auswahlregeln für Quelle und Ziel wird\n"
-" (im Gegensatz zu einer Zusammenführung) keine Verschiebung "
-"durchgeführt,\n"
-" wenn der jüngere von zwei Köpfen eines Zweiges aktuell ist. In diesem\n"
-" Falle (z.B. bei lokaler Versionsübernahme nach einem Abrufen), muss\n"
-" eine Quelle und/oder ein Ziel explizit angegeben werden. Dieser Fall\n"
-" tritt aber vor allem ein, wenn das Arbeitsverzeichnis im Zielzweig\n"
-" liegt, also zunächst auf den Quellzweig aktualisiert werden muss."
+" Ein Ergebnis der Regeln für das Auswählen der Ziel-Changesets und des\n"
+" Quell-Branches ist, daß, im Gegensatz zu ``merge``, rebase nichts\n"
+" tun wird, wenn Sie auf dem neuesten (tipmost) Head eines benannten\n"
+" Branches mit zwei Heads sind. Sie müssen Quelle und/oder Ziel angeben\n"
+" (oder auf den anderen Head ``update``en)."
+#, fuzzy
msgid ""
" If a rebase is interrupted to manually resolve a merge, it can be\n"
" continued with --continue/-c or aborted with --abort/-a."
msgstr ""
" Sollte eine Verschiebung zwecks manueller Konfliktbehebung unterbrochen\n"
-" werden, kann sie mit --continue/-c wieder aufgenommen oder mit\n"
-" --abort/-a abgebrochen werden."
+" werden, kann sie mit --continue wieder aufgenommen oder mit --abort\n"
+" abgebrochen werden.\n"
+" "
msgid ""
" Returns 0 on success, 1 if nothing to rebase.\n"
@@ -7693,82 +6284,61 @@ msgstr ""
" Gibt 0 bei Erfolg zurück, oder 1, wenn es nichts zu verschieben gibt.\n"
" "
-msgid "message can only be specified with collapse"
-msgstr ""
-"Eine Versionsmeldung kann nur für beim Zusammenfalten (--collapse) gegeben\n"
-"werden"
-
msgid "cannot use both abort and continue"
-msgstr "abort und continue dürfen nicht gleichzeitig angegeben werden"
+msgstr "abort und continue können nicht gleichzeitig genutzt werden"
msgid "cannot use collapse with continue or abort"
msgstr "collapse kann nicht mit continue oder abort genutzt werden"
+#, fuzzy
msgid "cannot use detach with continue or abort"
-msgstr "detach kann nicht mit continue oder abort genutzt werden"
+msgstr "collapse kann nicht mit continue oder abort genutzt werden"
msgid "abort and continue do not allow specifying revisions"
-msgstr "abort und continue erlauben keine Angabe einer Revision"
-
-msgid "tool option will be ignored\n"
-msgstr "Die Option tool wird ignoriert\n"
-
-msgid "cannot specify both a source and a base"
-msgstr "Quelle und Basis dürfen nicht gleichzeitig angegeben werden"
+msgstr "abort und continue erlauben die Angabe einer Revision nicht"
msgid "cannot specify both a revision and a base"
-msgstr "Revision und Basis dürfen nicht gleichzeitig angegeben werden"
-
-msgid "cannot specify both a revision and a source"
-msgstr "Revision und Quelle dürfen nicht gleichzeitig angegeben werden"
+msgstr "Es können nicht revision und base gleichzeitig angegeben werden"
+#, fuzzy
msgid "detach requires a revision to be specified"
-msgstr "detach benötigt eine Revision"
+msgstr "Zu viele Revisionen angegeben"
+#, fuzzy
msgid "cannot specify a base with detach"
-msgstr "detach erwartet keine Basis"
-
-msgid "can't remove original changesets with unrebased descendants"
-msgstr "Kann Änderungssatz nicht ohne dessen Nachfahren verschieben"
-
-msgid "use --keep to keep original changesets"
-msgstr "Verwende --keep, um die ursprünglichen Änderungssätze zu behalten"
-
-#, python-format
-msgid "can't rebase immutable changeset %s"
-msgstr "Nicht veränderbarer Änderungssatz %s kann nicht verschoben werden"
-
-msgid "see hg help phases for details"
-msgstr "Siehe hg help phases für Details"
+msgstr "--rev und --change können nicht gleichzeitig angegeben werden"
msgid "nothing to rebase\n"
-msgstr "Kein Verschiebung nötig\n"
+msgstr "Kein Rebase nötig\n"
-msgid "cannot collapse multiple named branches"
-msgstr "Mehrere benannte Zweige können nicht zusammengefaltet werden"
+msgid "cannot use both keepbranches and extrafn"
+msgstr "keepbranches und extrafn können nicht gleichzeitig genutzt werden"
+#, fuzzy
msgid "rebasing"
-msgstr "Verschiebe"
+msgstr "Revision"
msgid "changesets"
msgstr "Änderungssätze"
+#, fuzzy
msgid "unresolved conflicts (see hg resolve, then hg rebase --continue)"
msgstr ""
-"ungelöste Konflikte (siehe hg resolve, fahre mit hg rebase --continue fort)"
+"Behebe ungelöste Konflikte mit hg resolve, dann führe hg rebase --continue "
+"aus"
#, python-format
msgid "no changes, revision %d skipped\n"
msgstr "keine Änderungen, Revision %d übersprungen\n"
msgid "rebase merging completed\n"
-msgstr "Zusammenführungen der Verschiebung abgeschlossen\n"
+msgstr "Zusammenführungen des Rebase abgeschlossen\n"
msgid "warning: new changesets detected on source branch, not stripping\n"
msgstr "Warnung: Neue Änderungssätze auf Quellzweig gefunden, lösche nicht\n"
msgid "rebase completed\n"
-msgstr "Verschiebung abgeschlossen\n"
+msgstr "Rebase abgeschlossen\n"
#, python-format
msgid "%d revisions have been skipped\n"
@@ -7781,59 +6351,71 @@ msgstr ""
#, python-format
msgid "cannot use revision %d as base, result would have 3 parents"
msgstr ""
-"Revision %d kann nicht als Basis genutzt werden: das Ergebnis hätte 3 "
+"Revision %d kann nicht als Basis genutzt werden, das Ergebnis hätte 3 "
"Vorgänger"
msgid "no rebase in progress"
-msgstr "Keine vorherige Verschiebung zur Wiederaufnahme"
-
-msgid "warning: immutable rebased changeset detected, can't abort\n"
-msgstr ""
-"Warnung: Unveränderbare Änderungssätze gefunden. Kann nicht abbrechen\n"
+msgstr "Kein vorheriger Rebase zur Wiederaufnahme"
+#, fuzzy
msgid "warning: new changesets detected on target branch, can't abort\n"
-msgstr ""
-"Warnung: Neue Änderungssätze auf Zielzweig gefunden. Kann nicht abbrechen\n"
+msgstr "Warnung: Neue Änderungssätze auf Zielzweig gefunden, lösche nicht\n"
msgid "rebase aborted\n"
-msgstr "Verschiebung abgebrochen\n"
+msgstr "Rebase abgebrochen\n"
msgid "cannot rebase onto an applied mq patch"
-msgstr "Verschiebung kann nicht auf einem angewandten MQ-Patch aufsetzen"
-
-msgid "no matching revisions"
-msgstr "keine passenden Revisionen"
-
-msgid "can't rebase multiple roots"
-msgstr "Mehrere Wurzeln können nicht verschoben werden"
+msgstr "Rebase kann auf einem angewandten MQ-Patch nicht aufsetzen"
msgid "source is ancestor of destination"
msgstr "Quelle ist ein Vorfahr des Ziels"
-#, python-format
-msgid "updating bookmark %s\n"
-msgstr "Aktualisiere Lesezeichen %s\n"
-
-msgid "--tool can only be used with --rebase"
-msgstr "--tool kann nicht gleichzeitig mit --rebase verwendet werden"
+msgid "source is descendant of destination"
+msgstr "Quelle ist Nachfahr des Ziels"
msgid "rebase working directory to branch head"
-msgstr "Führt Verschiebung des Arbeitsverzeichnisses auf den Zweigkopf"
+msgstr "Führt Rebase zu einem Zweigkopf auf dem Arbeitsverzeichnis aus"
-msgid "specify merge tool for rebase"
-msgstr "Methode für Zusammenführungen innerhalb der Verschiebung"
+#, fuzzy
+msgid "rebase from the specified changeset"
+msgstr "Zeigt die Vorgänger der angegeben Revision"
-msgid "commands to interactively select changes for commit/qrefresh"
-msgstr "Befehle um interaktiv Änderungen für commit/qrefresh zu wählen"
+msgid ""
+"rebase from the base of the specified changeset (up to greatest common "
+"ancestor of base and dest)"
+msgstr ""
+"verschiebt von der Basis des spezifizierten Changesets (bis zum größten "
+"gemeinsamen Vorgänger von base und dest)"
-msgid "ignore white space when comparing lines"
-msgstr "Ignoriert Leerzeichen beim Vergleich von Zeilen"
+#, fuzzy
+msgid "rebase onto the specified changeset"
+msgstr "Revision %d zeigt auf unerwarteten Änderungssatz %d"
-msgid "ignore changes in the amount of white space"
-msgstr "Ignoriert Änderungen bei der Anzahl von Leerzeichen"
+msgid "collapse the rebased changesets"
+msgstr "Faltet die erzeugten Änderungssätze nach dem Rebase zusammen"
-msgid "ignore changes whose lines are all blank"
-msgstr "Ignoriert Änderungen, die nur aus Leerzeilen bestehen"
+msgid "keep original changesets"
+msgstr "Behält die ursprünglichen Änderungssätze bei"
+
+msgid "keep original branch names"
+msgstr "Erhält die ursprünglichen Zweignamen"
+
+msgid "force detaching of source from its original branch"
+msgstr "erzwingt ein Abkoppeln der Quelle von ihrem ursprünglichen Zweig"
+
+msgid "continue an interrupted rebase"
+msgstr "Führt einen unterbrochenen Rebase fort"
+
+msgid "abort an interrupted rebase"
+msgstr "Bricht einen unterbrochenen Rebase ab"
+
+msgid ""
+"hg rebase [-s REV | -b REV] [-d REV] [options]\n"
+"hg rebase {-a|-c}"
+msgstr ""
+
+msgid "commands to interactively select changes for commit/qrefresh"
+msgstr "Befehle um interaktiv Änderungen für commit/qrefresh zu wählen"
msgid "this modifies a binary file (all or nothing)\n"
msgstr "Dies modifiziert eine Binärdatei (alles oder nicht)\n"
@@ -7845,20 +6427,17 @@ msgstr "Dies ist eine Binärdatei\n"
msgid "%d hunks, %d lines changed\n"
msgstr "%d Hunks, %d Zeilen geändert\n"
-msgid "[Ynesfdaq?]"
-msgstr "[jnbsdfab?]"
+msgid "[Ynsfdaq?]"
+msgstr ""
msgid "&Yes, record this change"
-msgstr "&Ja - übernimmt diese Änderung"
+msgstr "&Yes - übernimmt diese Änderung"
msgid "&No, skip this change"
-msgstr "&Nein, überspringt diese Änderung"
-
-msgid "&Edit the change manually"
-msgstr "Änderung manuell &bearbeiten"
+msgstr "&No, überspringt diese Änderung"
msgid "&Skip remaining changes to this file"
-msgstr "Über&springe die restlichen Änderungen an dieser Datei"
+msgstr "&Überspringe die restlichen Änderungen an dieser Datei"
msgid "Record remaining changes to this &file"
msgstr "Zeichne die restlichen Änderungen an dieser &Datei auf"
@@ -7867,38 +6446,14 @@ msgid "&Done, skip remaining changes and files"
msgstr "&Fertig, überspringe die restlichen Änderungen und Dateien"
msgid "Record &all changes to all remaining files"
-msgstr "Zeichne &alle Änderungen der verbleibenden Dateien auf"
+msgstr "Übernimmt &alle Änderungen aller restlichen Dateien"
msgid "&Quit, recording no changes"
-msgstr "&Beende, zeichnet keine Änderungen auf"
+msgstr "&Quit, übernimmt keine Änderungen"
msgid "&?"
-msgstr "&?"
-
-msgid "cannot edit patch for whole file"
-msgstr "Patch für ganze Datei kann nicht bearbeitet werden"
-
-msgid "cannot edit patch for binary file"
-msgstr "Patch für eine Binär-Datei kann nicht bearbeitet werden"
-
-msgid ""
-"\n"
-"To remove '-' lines, make them ' ' lines (context).\n"
-"To remove '+' lines, delete them.\n"
-"Lines starting with # will be removed from the patch."
msgstr ""
-msgid ""
-"If the patch applies cleanly, the edited hunk will immediately be\n"
-"added to the record list. If it does not apply cleanly, a rejects\n"
-"file will be generated: you can use that when you try again. If\n"
-"all lines of the hunk are removed, then the edit is aborted and\n"
-"the hunk is left unchanged.\n"
-msgstr ""
-
-msgid "edit failed"
-msgstr "Bearbeiten fehlgeschlagen"
-
msgid "user quit"
msgstr "Abbruch durch Benutzer"
@@ -7917,18 +6472,16 @@ msgstr "Übernehme die Änderung an %r?"
msgid "record change %d/%d to %r?"
msgstr "Übernehme die Änderung %d/%d an %r?"
-msgid "hg record [OPTION]... [FILE]..."
-msgstr "hg record [OPTION]... [DATEI]..."
-
msgid "interactively select changes to commit"
msgstr "Interaktive Auswahl der Änderungen zur Übernahme ins Archiv"
+#, fuzzy
msgid ""
" If a list of files is omitted, all changes reported by :hg:`status`\n"
" will be candidates for recording."
msgstr ""
" Falls keine Liste von Dateien angegeben wird, gelten alle von\n"
-" hg:`status` gemeldeten Änderungen als Kandidaten für 'record'."
+" \"hg status\" gemeldeten Änderungen als Kandidaten für 'record'."
msgid ""
" You will be prompted for whether to record changes to each\n"
@@ -7942,12 +6495,10 @@ msgstr ""
msgid ""
" y - record this change\n"
-" n - skip this change\n"
-" e - edit this change manually"
+" n - skip this change"
msgstr ""
-" j - Diese Änderung übernehmen\n"
-" n - Diese Änderung überspringen\n"
-" b - Diese Änderung manuell bearbeiten"
+" y - übernimmt diese Änderung\n"
+" n - überspringt diese Änderung"
msgid ""
" s - skip remaining changes to this file\n"
@@ -7961,96 +6512,82 @@ msgid ""
" a - record all changes to all remaining files\n"
" q - quit, recording no changes"
msgstr ""
-" f - fertig, überspringt verbleibende Änderungen und Dateien\n"
+" d - fertig, überspringt verbleibende Änderungen und Dateien\n"
" a - übernimmt alle Änderungen aller verbleibenden Dateien\n"
-" b - beendet ohne Änderungen zu übernehmen"
+" q - beendet ohne Änderungen zu übernehmen"
msgid " ? - display help"
msgstr " ? - zeigt Hilfe an"
msgid " This command is not available when committing a merge."
msgstr ""
-" Dieses Kommando ist nicht verfügbar, wenn Sie einen Zusammenführung\n"
-" übernehmen."
-
-msgid "interactively record a new patch"
-msgstr "Interaktive Aufnahme eines neuen Patches"
-
-msgid ""
-" See :hg:`help qnew` & :hg:`help record` for more information and\n"
-" usage.\n"
-" "
-msgstr ""
-" Siehe auch :hg:`help qnew` und :hg:`help record` für weitere Infos.\n"
-" "
+" Dieses Kommando ist nicht verfügbar, wenn Sie einen Merge committen."
msgid "'mq' extension not loaded"
msgstr "'mq' Erweiterung nicht geladen"
-#, python-format
-msgid "running non-interactively, use %s instead"
-msgstr "Nicht-interaktive Ausführung, nutze stattdessen '%s'"
+msgid "running non-interactively, use commit instead"
+msgstr "Nicht-interaktive Ausführung, nutze stattdessen 'commit'"
+#, fuzzy
msgid "cannot partially commit a merge (use \"hg commit\" instead)"
msgstr ""
-"Eine Zusammenführung kann nicht teilweise übernommen werden (verwende :hg:"
-"`commit`)"
+"Ein Merge kann nicht teilweise versioniert werden (Gib keine Dateien oder "
+"Muster an)"
msgid "no changes to record\n"
msgstr "Keine Änderungen zu übernehmen\n"
+msgid "hg record [OPTION]... [FILE]..."
+msgstr "hg record [OPTION]... [DATEI]..."
+
msgid "hg qrecord [OPTION]... PATCH [FILE]..."
msgstr "hg qrecord [OPTION]... PATCH [DATEI]..."
-msgid "interactively select changes to refresh"
-msgstr "Interaktive Auswahl der Änderungen für refresh"
-
msgid "recreates hardlinks between repository clones"
-msgstr "stellt Hardlinks zwischen Archivklonen wieder her"
+msgstr "stellt Hardlinks zwischen Repository Clones wieder her"
msgid "recreate hardlinks between two repositories"
-msgstr "stellt harte Verknüpfungen zwischen zwei Archiven wieder her"
+msgstr "stellt Hardlinks zwischen zwei Repositories wieder her"
msgid ""
" When repositories are cloned locally, their data files will be\n"
" hardlinked so that they only use the space of a single repository."
msgstr ""
-" Wenn Archive lokal geklont werden, werden ihre Datendateien hart\n"
-" verknüpft, sodass sie nur den Platz eines einzelnen Archivs belegen."
+" Wenn Repositories lokal geklont werden, werden ihre Datendateien\n"
+" hart gelinkt, sodaß sie nur den Platz eines einzelnen Repositories\n"
+" belegen."
msgid ""
" Unfortunately, subsequent pulls into either repository will break\n"
" hardlinks for any files touched by the new changesets, even if\n"
" both repositories end up pulling the same changes."
msgstr ""
-" Unglücklicherweise brechen spätere Archivänderungen (z.B. Abrufen) die\n"
-" Verknüpfungen aller Dateien, die von neuen Änderungssätzen betroffen\n"
-" sind, selbst wenn beide Archive letzlich dieselben Änderungen enthalten."
+" Unglücklicherweise werden nachfolgende ``pull``s in jedes von diesen\n"
+" Repositories Hardlinks für alle Dateien, die von dem neuen Changeset\n"
+" betroffen sind, brechen, selbst wenn beide Repositories schlussendlich\n"
+" die gleichen Änderungen einbeziehen."
msgid ""
" Similarly, passing --rev to \"hg clone\" will fail to use any\n"
" hardlinks, falling back to a complete copy of the source\n"
" repository."
msgstr ""
-" In gleicher Weise scheitert \"hg clone\" mit --rev an harten\n"
-" Verknüpfungen und nutzt eine komplette Kopie des Quellarchivs."
+" In gleicher Weise scheitert \"hg clone\" mit --rev an Hardlinks,\n"
+" sondern nutzt eine komplette Kopie des Quell-Repositories."
msgid ""
" This command lets you recreate those hardlinks and reclaim that\n"
" wasted space."
msgstr ""
-" Dieses Kommando erlaubt es, diese Verknüpfungen wieder herzustellen\n"
-" und den verlorenen Platz zurückzugewinnen."
+" Dieses Kommando erlaubt Ihnen, diese Hardlinks wieder herzustellen und\n"
+" den verlorenen Platz wieder zurück zu gewinnen."
msgid ""
" This repository will be relinked to share space with ORIGIN, which\n"
" must be on the same local disk. If ORIGIN is omitted, looks for\n"
" \"default-relink\", then \"default\", in [paths]."
msgstr ""
-" Dieses Archiv wird neu verknüpft um den Speicher mit HERKUNFT, welches\n"
-" auf derselben lokalen Platte sein muss, zu teilen. Wenn HERKUNFT nicht\n"
-" angegeben ist, wird der Pfad mit dem Namen \"default-relink\" oder\n"
-" anschließend \"default\" aus dem Abschnitt [paths] verwendet."
msgid ""
" Do not attempt any read operations on this repository while the\n"
@@ -8058,32 +6595,26 @@ msgid ""
" writes.)\n"
" "
msgstr ""
-" Versuchen Sie nicht, während der Aktion Leseoperationen auf diesem\n"
-" Archiv durchzuführen. Schreiben wird von beiden Archive verhindert.\n"
-" "
+#, fuzzy
msgid "hardlinks are not supported on this system"
-msgstr "Harte Verknüpfungen werden von diesem System nicht unterstützt"
-
-msgid "must specify local origin repository"
-msgstr "Lokales Quellarchiv muss angegeben werden"
+msgstr "Hardlinks nicht unterstützt"
#, python-format
msgid "relinking %s to %s\n"
msgstr "Wiederverknüpft: %s nach %s\n"
-msgid "there is nothing to relink\n"
-msgstr "Es gibt nichts zum wiederverknüpfen\n"
-
#, python-format
msgid "tip has %d files, estimated total number of files: %s\n"
-msgstr "Die Archivspitze (tip) hat %d Dateien. Geschätzte Gesamtzahl: %s\n"
+msgstr ""
+#, fuzzy
msgid "collecting"
-msgstr "Sammle"
+msgstr "Sammle CVS rlog\n"
+#, fuzzy
msgid "files"
-msgstr "Dateien"
+msgstr " Dateien"
#, python-format
msgid "collected %d candidate storage files\n"
@@ -8092,48 +6623,47 @@ msgstr "%d Kandidaten gesammelt\n"
msgid "source and destination are on different devices"
msgstr "Quelle und Ziel sind auf unterschiedlichen Geräten"
+#, python-format
+msgid "not linkable: %s\n"
+msgstr "fester Verweis nicht möglich: %s\n"
+
+#, fuzzy
msgid "pruning"
-msgstr "Schränke ein"
+msgstr "Führe aus: %s\n"
#, python-format
msgid "pruned down to %d probably relinkable files\n"
-msgstr "Schränke auf %d wahrscheinlich wiederverknüpfbare Dateien ein\n"
+msgstr ""
+#, fuzzy
msgid "relinking"
-msgstr "Verknüpfe erneut"
+msgstr "Wiederverknüpft: %s nach %s\n"
#, python-format
-msgid "relinked %d files (%s reclaimed)\n"
-msgstr "%d Dateien wiederverknüpft (%s zurückgewonnen)\n"
+msgid "relinked %d files (%d bytes reclaimed)\n"
+msgstr ""
msgid "[ORIGIN]"
-msgstr "[HERKUNFT]"
+msgstr ""
msgid "extend schemes with shortcuts to repository swarms"
msgstr ""
-#, fuzzy
msgid ""
"This extension allows you to specify shortcuts for parent URLs with a\n"
"lot of repositories to act like a scheme, for example::"
msgstr ""
-"Diese Erweiterung erlaubt es, Abkürzungen für übergeordnete URLs\n"
-"anzugeben, deren Verzeichnisse sich nach einem Muster verhalten,\n"
-"beispielsweise::"
msgid ""
" [schemes]\n"
" py = http://code.python.org/hg/"
msgstr ""
-" [schemes]\n"
-" py = http://code.python.org/hg/"
-#, fuzzy
msgid "After that you can use it like::"
-msgstr "Danach kann man es wie folgt benutzen::"
+msgstr ""
msgid " hg clone py://trunk/"
-msgstr " hg clone py://trunk/"
+msgstr ""
msgid ""
"Additionally there is support for some more complex schemas, for\n"
@@ -8169,19 +6699,13 @@ msgid ""
"You can override a predefined scheme by defining a new scheme with the\n"
"same name.\n"
msgstr ""
-"Ein vordefiniertes Schema kann mit einem neuen Schema überschrieben werden,\n"
-"indem der gleiche Name angegeben wird.\n"
-
-#, python-format
-msgid "custom scheme %s:// conflicts with drive letter %s:\\\n"
-msgstr ""
msgid "share a common history between several working directories"
msgstr ""
-"Eine gemeinsame Historie zwischen mehreren Arbeitsverzeichnissen teilen"
+#, fuzzy
msgid "create a new shared repository"
-msgstr "Erzeuge ein neues gemeinsames Archiv"
+msgstr "Kann neues HTTP-Projektarchiv nicht erzeugen"
msgid ""
" Initialize a new repository and working directory that shares its\n"
@@ -8202,17 +6726,6 @@ msgid ""
" "
msgstr ""
-msgid "convert a shared repository to a normal one"
-msgstr "Konvertiert ein gemeinsames Archiv in ein normales"
-
-msgid ""
-" Copy the store data to the repo and remove the sharedpath data.\n"
-" "
-msgstr ""
-
-msgid "this is not a shared repo"
-msgstr "Dies ist kein gemeinsames Archiv"
-
msgid "do not create a working copy"
msgstr "erstelle keine Arbeitskopie"
@@ -8232,17 +6745,13 @@ msgstr ""
#, python-format
msgid "skipping already applied revision %s\n"
-msgstr "Ãœberspringe bereits angewendete Revision %s\n"
+msgstr ""
#, python-format
msgid "skipping merge changeset %s:%s\n"
msgstr ""
#, python-format
-msgid "%s is not a parent of %s"
-msgstr "%s ist kein Vorgänger von %s"
-
-#, python-format
msgid "%s merged at %s\n"
msgstr ""
@@ -8255,14 +6764,14 @@ msgid "filtering %s\n"
msgstr ""
msgid "filter failed"
-msgstr "Filter fehlgeschlagen"
+msgstr ""
msgid "can only omit patchfile if merging"
msgstr ""
#, python-format
msgid "%s: empty changeset"
-msgstr "%s: leerer Änderungssatz"
+msgstr ""
msgid "fix up the merge and run hg transplant --continue"
msgstr ""
@@ -8272,17 +6781,14 @@ msgid "%s transplanted as %s\n"
msgstr ""
msgid "transplant log file is corrupt"
-msgstr "transplant Logdatei ist beschädigt"
+msgstr ""
#, python-format
msgid "working dir not at transplant parent %s"
msgstr ""
msgid "commit failed"
-msgstr "Übernahme der Änderungen schlug fehl"
-
-msgid "filter corrupted changeset (no user or date)"
-msgstr "filtriere beschädigte Änderungssätze (ohne Nutzer oder Datum)"
+msgstr ""
msgid ""
"y: transplant this changeset\n"
@@ -8294,41 +6800,10 @@ msgid ""
"?: show this help\n"
msgstr ""
-#, fuzzy
msgid "apply changeset? [ynmpcq?]:"
-msgstr "Änderung anwenden? [ynmpcq?]:"
-
-msgid "no such option\n"
-msgstr "Keine solche Option\n"
-
-msgid "pull patches from REPO"
-msgstr "Patches von REPO abrufen"
-
-msgid "pull patches from branch BRANCH"
-msgstr "Patches vom Zweig BRANCH abrufen"
-
-msgid "pull all changesets up to BRANCH"
-msgstr "Alle Änderungssätze bis BRANCH abrufen"
-
-msgid "skip over REV"
-msgstr "REV überspringen"
-
-msgid "merge at REV"
-msgstr "Bei REV zusammenführen"
-
-msgid "parent to choose when transplanting merge"
-msgstr "Auszuwählender Vorgänger wenn eine Änderung transplantiert wird"
-
-msgid "append transplant info to log message"
-msgstr ""
-
-msgid "continue last transplant session after repair"
msgstr ""
-msgid "filter changesets through command"
-msgstr "Filtriere Änderungssätze durch Programm"
-
-msgid "hg transplant [-s REPO] [-b BRANCH [-a]] [-p REV] [-m REV] [REV]..."
+msgid "no such option\n"
msgstr ""
msgid "transplant changesets from another branch"
@@ -8379,11 +6854,6 @@ msgid ""
msgstr ""
msgid ""
-" Merge changesets may be transplanted directly by specifying the\n"
-" proper parent changeset by calling :hg:`transplant --parent`."
-msgstr ""
-
-msgid ""
" If no merges or revisions are provided, :hg:`transplant` will\n"
" start an interactive changeset browser."
msgstr ""
@@ -8395,15 +6865,14 @@ msgid ""
" "
msgstr ""
-#, fuzzy
msgid "--continue is incompatible with branch, all or merge"
-msgstr "--continue ist inkompatibel mit branch, all oder merge"
+msgstr ""
msgid "no source URL, branch tag or revision list provided"
msgstr ""
msgid "--all requires a branch revision"
-msgstr "--all benötigt eine Zweig-Version"
+msgstr ""
msgid "--all is incompatible with a revision list"
msgstr ""
@@ -8417,14 +6886,43 @@ msgstr ""
msgid "outstanding local changes"
msgstr ""
+#, fuzzy
msgid ""
-"``transplanted([set])``\n"
-" Transplanted changesets in set, or all transplanted changesets."
+"``transplanted(set)``\n"
+" Transplanted changesets in set."
msgstr ""
+"``p1(set)``\n"
+" Erster Vorfahr der Änderungssätze in set."
-msgid ""
-":transplanted: String. The node identifier of the transplanted\n"
-" changeset if any."
+msgid "pull patches from REPO"
+msgstr ""
+
+msgid "BRANCH"
+msgstr ""
+
+msgid "pull patches from branch BRANCH"
+msgstr ""
+
+msgid "pull all changesets up to BRANCH"
+msgstr ""
+
+msgid "skip over REV"
+msgstr ""
+
+msgid "merge at REV"
+msgstr ""
+
+msgid "append transplant info to log message"
+msgstr ""
+
+msgid "continue last transplant session after repair"
+msgstr ""
+
+#, fuzzy
+msgid "filter changesets through command"
+msgstr "%d Änderungssätze gefunden\n"
+
+msgid "hg transplant [-s REPO] [-b BRANCH [-a]] [-p REV] [-m REV] [REV]..."
msgstr ""
msgid "allow the use of MBCS paths with problematic encodings"
@@ -8582,12 +7080,13 @@ msgid ""
"** = %sdecode:\n"
msgstr ""
+#, fuzzy
msgid ""
"win32text is deprecated: http://mercurial.selenic.com/wiki/"
"Win32TextExtension\n"
msgstr ""
-"win32text ist veraltet: http://mercurial.selenic.com/wiki/"
-"Win32TextExtension\n"
+"Weitere Informationen:\n"
+"http://mercurial.selenic.com/wiki/RebaseExtension\n"
msgid "discover and advertise repositories on the local network"
msgstr ""
@@ -8621,35 +7120,29 @@ msgstr ""
msgid "archive prefix contains illegal components"
msgstr "Präfix des Archivs enthält nicht zulässige Komponenten"
-msgid "archiving"
-msgstr "Archiviere"
+msgid "cannot give prefix when archiving to files"
+msgstr "Bei Archivierung in Dateien kann kein Präfix angegeben werden"
#, python-format
-msgid "malformed line in .hg/bookmarks: %r\n"
+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"
-#, python-format
-msgid "branch %s not found"
-msgstr "Zweig '%s' nicht gefunden"
-
-#, python-format
-msgid "divergent bookmark %s stored as %s\n"
-msgstr "Divergierendes Lesezeichen %s als %s gespeichert\n"
-
-#, python-format
-msgid "adding remote bookmark %s\n"
-msgstr "Hinzufügen des entfernten Lesezeichens %s\n"
-
msgid "searching for changed bookmarks\n"
msgstr "Suche nach geänderten Lesezeichen\n"
msgid "no changed bookmarks found\n"
msgstr "Keine geänderten Lesezeichen gefunden\n"
+msgid "invalid changegroup"
+msgstr ""
+
msgid "unknown parent"
msgstr "Unbekannte Vorgängerversion"
@@ -8660,21 +7153,21 @@ msgstr "Integritätsprüfung fehlgeschlagen bei %s:%d"
msgid "cannot create new bundle repository"
msgstr "Neues Bündelarchiv kann nicht erzeugt werden"
-#, python-format
+#, fuzzy, python-format
msgid "stream ended unexpectedly (got %d bytes, expected %d)"
-msgstr "vorzeitiges Ende des Stroms (%d Byte erhalten, %d erwartet)"
+msgstr "vorzeitiges Dateiende beim Lesen (%d Byte erhalten, %d erwartet)"
-#, python-format
+#, fuzzy, python-format
msgid "invalid chunk length %d"
-msgstr "Ungültige Abschnitsslänge %d"
+msgstr "grep: Ungültiges Suchmuster: %s\n"
-#, python-format
+#, fuzzy, python-format
msgid "%s: not a Mercurial bundle"
-msgstr "%s: keine Mercurial-Bündeldatei"
+msgstr "%s: keine Mercurial Bündeldatei"
-#, python-format
+#, fuzzy, python-format
msgid "%s: unknown bundle version %s"
-msgstr "%s: unbekannte Bündelversion %s"
+msgstr "%s: unbekannte Bündelversion"
msgid "empty username"
msgstr "Leerere Benutzername"
@@ -8687,10 +7180,6 @@ msgstr "Benutzername %s enthält einen Zeilenumbruch"
msgid "the name '%s' is reserved"
msgstr "der name '%s' ist reserviert"
-#, python-format
-msgid "uncommitted changes in subrepo %s"
-msgstr "Unversionierte Änderungen in Unterarchiv %s"
-
msgid "options --message and --logfile are mutually exclusive"
msgstr "Optionen --message und --logfile schließen sich gegenseitig aus"
@@ -8708,21 +7197,24 @@ msgstr "Log-Grenzwert `limit` muss positiv sein"
msgid "invalid format spec '%%%s' in output filename"
msgstr "Ungültiges Format '%%%s' für den Namen der Ausgabedatei"
-msgid "cannot specify --changelog and --manifest at the same time"
-msgstr "--changelog und --manifest können nicht gleichzeitig angegeben werden"
+#, python-format
+msgid "adding %s\n"
+msgstr "Füge %s hinzu\n"
-msgid "cannot specify filename with --changelog or --manifest"
-msgstr ""
+#, python-format
+msgid "removing %s\n"
+msgstr "Entferne %s\n"
-msgid "cannot specify --changelog or --manifest without a repository"
+#, python-format
+msgid "recording removal of %s as rename to %s (%d%% similar)\n"
msgstr ""
-
-msgid "invalid arguments"
-msgstr "ungültige Parameter"
+"Interpretiere die Entfernung von %s als Umbenennung in %s (%d%% ähnlich)\n"
#, python-format
-msgid "revlog '%s' not found"
-msgstr "revlog '%s' nicht gefunden"
+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"
@@ -8737,20 +7229,16 @@ msgid "%s: not overwriting - %s collides with %s\n"
msgstr "%s: kann nicht kopiert werden - %s wird von %s blockiert\n"
#, python-format
-msgid "%s: can't copy - same file\n"
-msgstr "%s: kann nicht kopiert werden - selbe Datei\n"
-
-#, python-format
msgid "%s: not overwriting - file exists\n"
msgstr "%s: kann nicht kopiert werden - Datei existiert bereits\n"
-#, python-format
+#, fuzzy, python-format
msgid "%s: not recording move - %s does not exist\n"
-msgstr "%s: Verschiebung nicht aufgezeichnet - %s existiert nicht\n"
+msgstr "%s:%d Knoten existiert nicht\n"
-#, python-format
+#, fuzzy, python-format
msgid "%s: not recording copy - %s does not exist\n"
-msgstr "%s: Kopieren nicht aufgezeichnet - %s existiert nicht\n"
+msgstr "%s:%d Knoten existiert nicht\n"
#, python-format
msgid "%s: deleted in working copy\n"
@@ -8781,6 +7269,9 @@ msgstr "Bei mehreren Quelldateien muss das Ziel ein Verzeichnis sein"
msgid "destination %s is not a directory"
msgstr "Ziel %s ist kein Verzeichnis"
+msgid "no files to copy"
+msgstr "Keine Dateien zu kopieren"
+
msgid "(consider using --after)\n"
msgstr "(erwäge die Option --after)\n"
@@ -8804,10 +7295,6 @@ msgid "tag: %s\n"
msgstr "Marke: %s\n"
#, python-format
-msgid "phase: %s\n"
-msgstr "Phase: %s\n"
-
-#, python-format
msgid "parent: %d:%s\n"
msgstr "Vorgänger: %d:%s\n"
@@ -8863,46 +7350,35 @@ msgid "revision matching date not found"
msgstr "Keine zum Datum passende Revision gefunden"
#, python-format
-msgid "adding %s\n"
-msgstr "Füge %s hinzu\n"
-
-#, python-format
-msgid "skipping missing subrepository: %s\n"
-msgstr "Ãœberspringe fehlendes Unterarchiv: %s\n"
-
-#, python-format
-msgid "amending changeset %s\n"
-msgstr "Berichtigt Änderungssatz %s\n"
-
-#, python-format
-msgid "copying changeset %s to %s\n"
-msgstr "Kopiert Änderungssatz %s nach %s\n"
+msgid "cannot follow nonexistent file: \"%s\""
+msgstr "Kann fehlender Datei nicht folgen: \"%s\""
-#, python-format
-msgid "stripping intermediate changeset %s\n"
-msgstr "Entfernt intermediären Änderungssatz %s\n"
+msgid "can only follow copies/renames for explicit filenames"
+msgstr ""
+"Kopien/Umbenennungen können nur zu expliziten Dateinamen verfolgt werden"
-#, python-format
-msgid "stripping amended changeset %s\n"
-msgstr "Entfernt berichtigten Änderungssatz %s\n"
+#, fuzzy, python-format
+msgid "skipping missing subrepository: %s\n"
+msgstr "Ãœbernehme Unterarchiv %s\n"
msgid "HG: Enter commit message. Lines beginning with 'HG:' are removed."
msgstr ""
-"HG: Bitte gib eine Versions-Meldung ein. Zeilen beginnend mit 'HG:' werden"
+"HG: Bitte gib eine Versions-Meldung ein. Zeilen beginnend mit 'HG:' werden "
+"entfernt."
msgid "HG: Leave message empty to abort commit."
-msgstr "HG: entfernt. Leere Versionsmeldung wird das Ãœbernehmen abbrechen."
+msgstr "HG: Leere Versionsmeldung wird das Ãœbernehmen abbrechen."
#, python-format
msgid "HG: user: %s"
msgstr "HG: Benutzer: %s"
msgid "HG: branch merge"
-msgstr "HG: Zweigzusammenführung"
+msgstr ""
#, python-format
msgid "HG: branch '%s'"
-msgstr "HG: Zweig '%s'"
+msgstr ""
#, python-format
msgid "HG: subrepo %s"
@@ -8910,7 +7386,7 @@ msgstr "HG: Unterarchiv %s"
#, python-format
msgid "HG: added %s"
-msgstr "HG: Hinzugefügt %s"
+msgstr ""
#, python-format
msgid "HG: changed %s"
@@ -8918,7 +7394,7 @@ msgstr "HG: Geändert %s"
#, python-format
msgid "HG: removed %s"
-msgstr "HG: Entfernt %s"
+msgstr "HG: entfernt %s"
msgid "HG: no files changed"
msgstr "HG: Keine Dateiänderungen"
@@ -8926,166 +7402,6 @@ msgstr "HG: Keine Dateiänderungen"
msgid "empty commit message"
msgstr "Leere Versions-Meldung"
-#, python-format
-msgid "forgetting %s\n"
-msgstr "vergesse: %s\n"
-
-#, python-format
-msgid "reverting %s\n"
-msgstr "setze zurück: %s\n"
-
-#, python-format
-msgid "undeleting %s\n"
-msgstr "stelle wieder her: %s\n"
-
-#, python-format
-msgid "file not managed: %s\n"
-msgstr "Datei nicht unter Versionskontrolle: %s\n"
-
-#, python-format
-msgid "no changes needed to %s\n"
-msgstr "keine Änderungen notwendig für %s\n"
-
-msgid "repository root directory or name of overlay bundle file"
-msgstr "Wurzelverzeichnis des Archivs oder Name einer Bündeldatei"
-
-msgid "DIR"
-msgstr ""
-
-msgid "change working directory"
-msgstr "Wechselt das Arbeitsverzeichnis"
-
-msgid "do not prompt, automatically pick the first choice for all prompts"
-msgstr ""
-"Nicht nachfragen, automatisch die erste Auswahlmöglichkeit für alle Fragen "
-"wählen"
-
-msgid "suppress output"
-msgstr "Unterdrückt Ausgabe"
-
-msgid "enable additional output"
-msgstr "Ausgabe weiterer Informationen"
-
-msgid "set/override config option (use 'section.name=value')"
-msgstr ""
-"Setze/Ãœberschreibe Konfigurationsoption: %s (nutze --config Abschnitt."
-"Name=Wert)"
-
-msgid "CONFIG"
-msgstr ""
-
-msgid "enable debugging output"
-msgstr "Aktiviert Debugausgaben"
-
-msgid "start debugger"
-msgstr "Startet den Debugger"
-
-msgid "set the charset encoding"
-msgstr "Setzt die Zeichenkodierung"
-
-msgid "ENCODE"
-msgstr ""
-
-msgid "MODE"
-msgstr ""
-
-msgid "set the charset encoding mode"
-msgstr "Setzt den Modus der Zeichenkodierung"
-
-msgid "always print a traceback on exception"
-msgstr "Gibt die Aufrufhierarchie einer Ausnahmebedingung aus"
-
-msgid "time how long the command takes"
-msgstr "Gibt die Dauer des Befehls aus"
-
-msgid "print command execution profile"
-msgstr "Gibt das Ausführungsprofil des Befehls aus"
-
-msgid "output version information and exit"
-msgstr "Gibt Versionsinformation aus und beendet sich"
-
-msgid "display help and exit"
-msgstr "Gibt Hilfe aus und beendet sich"
-
-msgid "do not perform actions, just print output"
-msgstr "Führt die Aktionen nicht aus, sondern zeigt nur die Ausgabe"
-
-msgid "specify ssh command to use"
-msgstr "Spezifiziert den zu nutzenden SSH-Befehl"
-
-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 ""
-"Server-Zertifikat nicht überprüfen (web.cacerts-Konfiguration ignorieren)"
-
-msgid "PATTERN"
-msgstr ""
-
-msgid "include names matching the given patterns"
-msgstr "Namen hinzufügen, die auf das angegebene Muster passen"
-
-msgid "exclude names matching the given patterns"
-msgstr "Namen ausschließen, die auf das angegebene Muster passen"
-
-msgid "use text as commit message"
-msgstr "Nutzt Text als Commit-Nachricht"
-
-msgid "read commit message from file"
-msgstr "Liest Commit-Nachricht aus Datei"
-
-msgid "record the specified date as commit date"
-msgstr "Protokolliert das angegebenen Datum als Ãœbernahmedatum"
-
-msgid "record the specified user as committer"
-msgstr "Protokolliert den angegebenen Nutzer als Autor"
-
-msgid "STYLE"
-msgstr ""
-
-msgid "display using template map file"
-msgstr "Anzeige unter Nutzung der Vorlagenzuordnungsdatei"
-
-msgid "display with template"
-msgstr "Anzeige mit Vorlage"
-
-msgid "show patch"
-msgstr "Patch anzeigen"
-
-msgid "do not show merges"
-msgstr "Zeigt keine Merges"
-
-msgid "output diffstat-style summary of changes"
-msgstr "Zusammenfassung der Änderungen im diffstat-Stil"
-
-msgid "treat all files as text"
-msgstr "Behandelt alle Dateien als Text"
-
-msgid "omit dates from diff headers"
-msgstr "Fügt Datum nicht im Kopf des Diffs ein"
-
-msgid "show which function each change is in"
-msgstr "Zeigt die Funktion, in der die Änderung passiert ist"
-
-msgid "produce a diff that undoes the changes"
-msgstr ""
-
-msgid "number of lines of context to show"
-msgstr "Anzahl der anzuzeigenden Kontextzeilen"
-
-msgid "SIMILARITY"
-msgstr ""
-
-msgid "guess renamed files by similarity (0<=s<=100)"
-msgstr "rät Umbenennungn anhand der Ähnlichkeit (0<=s<=100)"
-
-msgid "recurse into subrepositories"
-msgstr "Durchläuft rekursiv Unterarchive"
-
-msgid "[OPTION]... [FILE]..."
-msgstr "[OPTION]... [DATEI]..."
-
msgid "add the specified files on the next commit"
msgstr "Fügt die angegebenen Dateien der nächsten Version hinzu"
@@ -9094,13 +7410,16 @@ msgid ""
" repository."
msgstr " Merkt Dateien zur Versionskontrolle im Projektarchiv vor."
+#, fuzzy
msgid ""
" The files will be added to the repository at the next commit. To\n"
" undo an add before that, see :hg:`forget`."
msgstr ""
" Die Dateien werden dem Projektarchiv beim nächsten Übernehmen (commit)\n"
-" hinzugefügt. Um dies vorher rückgängig zu machen, siehe:hg:`forget`."
+" hinzugefügt. Um diese Aktion vorher rückgängig zu machen, siehe hg "
+"revert."
+#, fuzzy
msgid " If no names are given, add all files to the repository."
msgstr ""
" Wenn keine Namen angegeben sind, füge alle Dateien dem Projektarchiv\n"
@@ -9115,6 +7434,7 @@ msgid ""
" automatically by :hg:`add`::"
msgstr ""
+#, fuzzy
msgid ""
" $ ls\n"
" foo.c\n"
@@ -9125,21 +7445,16 @@ msgid ""
" $ hg status\n"
" A foo.c"
msgstr ""
-" $ ls\n"
-" foo.c\n"
-" $ hg status\n"
-" ? foo.c\n"
-" $ hg add\n"
-" adding foo.c\n"
-" $ hg status\n"
-" A foo.c"
+" A C M !\n"
+" keine W EL W E\n"
+" -f E EL EL E\n"
+" -A W W W E\n"
+" -Af E E E E"
msgid ""
" Returns 0 if all files are successfully added.\n"
" "
msgstr ""
-" Gibt 0 zurück, wenn alle Dateien erfolgreich hinzugefügt wurden.\n"
-" "
msgid "add all new files, delete all missing files"
msgstr "Fügt alle neuen Dateien hinzu, löscht alle fehlenden Dateien"
@@ -9151,16 +7466,17 @@ msgstr ""
" 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"
" commit."
msgstr ""
-" Neue Dateien werden ignoriert, wenn sie einem der Muster aus ``."
-"hgignore``\n"
+" Neue Dateien werden ignoriert, wenn sie einem der Muster aus .hgignore\n"
" entsprechen. Genau wie add, wirken diese Änderungen erst beim nächsten\n"
" Ãœbernehmen (commit)."
+#, fuzzy
msgid ""
" Use the -s/--similarity option to detect renamed files. With a\n"
" parameter greater than 0, this compares every removed file with\n"
@@ -9168,20 +7484,16 @@ msgid ""
" option takes a percentage between 0 (disabled) and 100 (files must\n"
" be identical) as its parameter. Detecting renamed files this way\n"
" can be expensive. After using this option, :hg:`status -C` can be\n"
-" used to check which files were identified as moved or renamed.\n"
-" If this option is not specified, only renames of identical files\n"
-" are detected."
-msgstr ""
-" Nutze die Option -s/--similarity, um umbenannte Dateien zu entdecken.\n"
-" Mit einem Parameter größer 0 wird jede gelöschte Datei mit jeder\n"
-" hinzugefügten verglichen und bei genügender Ähnlichkeit als Umbenennung\n"
-" markiert. Diese Option erwartet eine Prozentangabe zwischen 0\n"
-" (deaktiviert) und 100 (Dateien müssen identisch sein) als Parameter.\n"
-" Umbenennungen auf diese Weise zu erkennen, kann aufwändig sein.\n"
-" Nachdem Benutzung dieser Option kann :hg:`status -C` verwendet\n"
-" werden, um zu überprüfen, welche Dateien als verschoben oder\n"
-" umbenannt erkannt wurden. Wenn diese Option nicht angegeben\n"
-" ist, werden nur Umbenennungen identischer Dateien erkannt."
+" used to check which files were identified as moved or renamed."
+msgstr ""
+" Nutze die Option -s um umbenannte Dateien zu entdecken. Mit einem\n"
+" Parameter > 0 wird jede gelöschte Datei mit jeder hinzugefügten "
+"verglichen\n"
+" und bei genügender Ähnlichkeit als Umbenennung markiert. Diese Option\n"
+" erwartet eine Prozentangabe zwischen 0 (deaktiviert) und 100 (Dateien\n"
+" müssen identisch sein) als Parameter. Umbenennungen auf diese Weise zu\n"
+" erkennen, kann aufwändig sein.\n"
+" "
msgid "similarity must be a number"
msgstr "similarity muss eine Zahl sein"
@@ -9189,36 +7501,6 @@ msgstr "similarity muss eine Zahl sein"
msgid "similarity must be between 0 and 100"
msgstr "similarity muss zwischen 0 und 100 liegen"
-msgid "annotate the specified revision"
-msgstr "Annotiert die angegebene Revision"
-
-msgid "follow copies/renames and list the filename (DEPRECATED)"
-msgstr "Folge Kopien/Umbenennungen und liste Dateinamen auf (VERALTET)"
-
-msgid "don't follow copies and renames"
-msgstr "Unterläßt das Folgen von Dateikopien und Umbenennungen"
-
-msgid "list the author (long with -v)"
-msgstr "Listet den Autor auf (lang mit -v)"
-
-msgid "list the filename"
-msgstr "Listet den Dateinamen auf"
-
-msgid "list the date (short with -q)"
-msgstr "Listet das Datum auf (kurz mit -q)"
-
-msgid "list the revision number (default)"
-msgstr "Listet die Revisionsnummer auf (Voreinstellung)"
-
-msgid "list the changeset"
-msgstr "Listet den Änderungssatz auf"
-
-msgid "show line number at the first appearance"
-msgstr "Zeigt die Zeilennummer beim ersten Auftreten "
-
-msgid "[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FILE..."
-msgstr "[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] DATEI..."
-
msgid "show changeset information by line for each file"
msgstr "Zeigt Informationen über Änderungssätze pro Dateizeile an"
@@ -9236,6 +7518,7 @@ msgstr ""
" Dieser Befehl ist nützlich, um herauszufinden wer eine Änderung gemacht\n"
" hat oder wann eine Änderung stattgefunden hat."
+#, fuzzy
msgid ""
" Without the -a/--text option, annotate will avoid processing files\n"
" it detects as binary. With -a, annotate will annotate the file\n"
@@ -9245,7 +7528,8 @@ msgstr ""
" Ohne den Schalter -a/--text wird die Verarbeitung von Binärdateien\n"
" vermieden. Mit -a werden auch solche Dateien verarbeitet, "
"wahrscheinlich\n"
-" mit unerwünschtem Ergebnis."
+" mit unerwünschtem Ergebnis.\n"
+" "
msgid "at least one filename or pattern is required"
msgstr "Mindestens ein Dateiname oder Muster benötigt"
@@ -9257,24 +7541,6 @@ msgstr "Zumindest -n oder -c werden für -l benötigt"
msgid "%s: binary file\n"
msgstr "%s: Binärdatei\n"
-msgid "do not pass files through decoders"
-msgstr "Dateien nicht dekodieren"
-
-msgid "directory prefix for files in archive"
-msgstr "Verzeichnispräfix für Dateien im Archiv"
-
-msgid "PREFIX"
-msgstr ""
-
-msgid "revision to distribute"
-msgstr "zu verteilende Revision"
-
-msgid "type of distribution to create"
-msgstr "zu erstellender Distributionstyp"
-
-msgid "[OPTION]... DEST"
-msgstr "[OPTION]... ZIEL"
-
msgid "create an unversioned archive of a repository revision"
msgstr "Erzeugt ein unversioniertes Archiv einer Projektarchiv-Revision"
@@ -9291,24 +7557,10 @@ msgid ""
" extension (or override using -t/--type)."
msgstr ""
-msgid " Examples:"
-msgstr " Beispiele:"
-
-msgid " - create a zip file containing the 1.0 release::"
-msgstr ""
-
-msgid " hg archive -r 1.0 project-1.0.zip"
-msgstr ""
-
-msgid " - create a tarball excluding .hg files::"
-msgstr ""
-
-msgid " hg archive project.tar.gz -X \".hg*\""
-msgstr ""
-
msgid " Valid types are:"
msgstr ""
+#, fuzzy
msgid ""
" :``files``: a directory full of files (default)\n"
" :``tar``: tar archive, uncompressed\n"
@@ -9317,20 +7569,22 @@ msgid ""
" :``uzip``: zip archive, uncompressed\n"
" :``zip``: zip archive, compressed using deflate"
msgstr ""
-" :``files``: (Voreinstellung): ein Verzeichnis voller Dateien\n"
-" :``tar``: tar Archiv, unkomprimiert\n"
-" :``tbz2``: tar Archiv, komprimiert mit bzip2\n"
-" :``tgz``: tar Archiv, komprimiert mit gzip\n"
-" :``uzip``: zip Archiv, unkomprimiert\n"
-" :``zip``: zip Archiv, komprimiert mit deflate"
+" \"files\" (Standard): ein Verzeichnis voller Dateien\n"
+" \"tar\": tar Archiv, unkomprimiert\n"
+" \"tbz2\": tar Archiv, komprimiert mit bzip2\n"
+" \"tgz\": tar Archiv, komprimiert mit gzip\n"
+" \"uzip\": zip Archiv, unkomprimiert\n"
+" \"zip\": zip Archiv, komprimiert mit deflate"
+#, fuzzy
msgid ""
" The exact name of the destination archive or directory is given\n"
" using a format string; see :hg:`help export` for details."
msgstr ""
" Der exakte Name des Zielarchivs oder -verzeichnises wird mit\n"
-" einem Format-String angegeben; siehe :hg:`help export` für Details."
+" einem Format-String angegeben; siehe 'hg help export' für Details."
+#, fuzzy
msgid ""
" Each member added to an archive file has a directory prefix\n"
" prepended. Use -p/--prefix to specify a format string for the\n"
@@ -9339,8 +7593,8 @@ msgid ""
msgstr ""
" Jedem Element des Archivs wird ein Verzeichnis-Präfix vorangestellt.\n"
" Nutze -p/--prefix um eine Format-String für das Präfix anzugeben.\n"
-" Als Voreinstellung wird der Dateiname des Archive ohne Dateiendung\n"
-" genutzt."
+" Als Standard wird der Dateiname des Archive ohne Dateiendung genutzt.\n"
+" "
msgid "no working directory: please specify a revision"
msgstr "Kein Arbeitsverzeichnis: Bitte gib eine Revision an"
@@ -9352,27 +7606,14 @@ msgid "cannot archive plain files to stdout"
msgstr ""
"Ungepacktes Archiv kann nicht auf der Standardausgabe ausgegeben werden"
-msgid "merge with old dirstate parent after backout"
-msgstr "Führt mit Vorgänger im Status vor Rücknahme zusammen"
-
-msgid "parent to choose when backing out merge (DEPRECATED)"
-msgstr "Wählt einen Vorgänger bei Rücknahme einer Zusammenführung (VERALTET)"
-
-msgid "revision to backout"
-msgstr "Die zurückzunehmende Revision"
-
-msgid "[OPTION]... [-r] REV"
-msgstr ""
-
msgid "reverse effect of earlier changeset"
msgstr "Macht einen vorangegangen Änderungssatz rückgängig"
+#, fuzzy
msgid ""
" Prepare a new changeset with the effect of REV undone in the\n"
" current working directory."
-msgstr ""
-" Erstelle eine (unversionierte) Änderung im Arbeitsverzeichnis, die den\n"
-" Effekt von REV zurücknimmt."
+msgstr "Setzt die Vorgängerversionen des Arbeitsverzeichnisses manuell"
msgid ""
" If REV is the parent of the working directory, then this new changeset\n"
@@ -9381,23 +7622,17 @@ msgid ""
msgstr ""
msgid ""
-" .. note::\n"
-" backout cannot be used to fix either an unwanted or\n"
-" incorrect merge."
-msgstr ""
-
-msgid ""
-" By default, the pending changeset will have one parent,\n"
-" maintaining a linear history. With --merge, the pending\n"
-" changeset will instead have two parents: the old parent of the\n"
-" working directory and a new child of REV that simply undoes REV."
+" 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 ""
msgid ""
-" Before version 1.7, the behavior without --merge was equivalent\n"
-" to specifying --merge followed by :hg:`update --clean .` to\n"
-" cancel the merge and leave the child of REV as a head to be\n"
-" merged separately."
+" 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 ""
msgid "please specify just one revision"
@@ -9412,8 +7647,12 @@ msgstr "Kann die Änderung auf einem abweichenden Zweig nicht rückgängig mache
msgid "cannot backout a change with no parents"
msgstr "Kann eine Änderung ohne Vorgängerversion nicht rückgängig machen"
-msgid "cannot backout a merge changeset"
-msgstr "Kann eine Zusammenführungen nicht rückgängig machen"
+msgid "cannot backout a merge changeset without --parent"
+msgstr "Kann eine Zusammenführung nicht ohne --parent rückgängig machen"
+
+#, python-format
+msgid "%s is not a parent of %s"
+msgstr "%s ist kein Vorgänger von %s"
msgid "cannot use --parent on non-merge changeset"
msgstr "Kann mit --parent nur Zusammenführung rückgängig machen"
@@ -9426,30 +7665,6 @@ msgstr "Änderungssatz %s macht Änderungssatz %s rückgängig\n"
msgid "merging with changeset %s\n"
msgstr "Führe mit Änderungssatz %s zusammen\n"
-msgid "reset bisect state"
-msgstr "Setzt Status der Suche zurück"
-
-msgid "mark changeset good"
-msgstr "Markiert Änderungssatz als fehlerfrei"
-
-msgid "mark changeset bad"
-msgstr "Markiert Änderungssatz als fehlerbehaftet"
-
-msgid "skip testing changeset"
-msgstr "Überspringt das Testen dieses Änderungssatzes"
-
-msgid "extend the bisect range"
-msgstr "Erweitert den Bereich der Suche"
-
-msgid "use command to check changeset state"
-msgstr "Nutzt eine Programm um den Fehlerstatus zu bestimmen"
-
-msgid "do not update to target"
-msgstr "Führe keine Aktualisierung der Dateien durch"
-
-msgid "[-gbsr] [-U] [-c CMD] [REV]"
-msgstr "[-gbsr] [-U] [-c BEFEHL] [REV]"
-
msgid "subdivision search of changesets"
msgstr "Binäre Suche von Änderungssätzen"
@@ -9483,105 +7698,16 @@ msgstr ""
#, fuzzy
msgid ""
" If you supply a command, it will be used for automatic bisection.\n"
-" The environment variable HG_NODE will contain the ID of the\n"
-" changeset being tested. The exit status of the command will be\n"
-" used to mark revisions as good or bad: status 0 means good, 125\n"
-" means to skip the revision, 127 (command not found) will abort the\n"
-" bisection, and any other non-zero exit status means the revision\n"
-" is bad."
-msgstr ""
-" Wenn ein Kommando angegen wurde, wird es für eine automatische\n"
-" Bisektion verwendet. Die Umgebungsvariable HG_NODE wird die ID\n"
-" des gerade getesteten Änderungssatz enthalten. Der Exit-Status des\n"
-" Kommandos wird verwendet, um Revisionen als gut oder schlecht zu\n"
-" markieren: 0 bedeutet gut, 125 bedeutet überspringen, 127\n"
-" (Kommando nicht gefunden) bedeutet Abbruch der Bisektion und\n"
-" jeder andere von Null verschiedene Exit-Status bedeutet, dass die\n"
-" Revision schlecht ist."
-
-msgid " Some examples:"
-msgstr " Einige Beispiele:"
-
-msgid ""
-" - start a bisection with known bad revision 12, and good revision 34::"
-msgstr ""
-
-msgid ""
-" hg bisect --bad 34\n"
-" hg bisect --good 12"
-msgstr ""
-
-msgid ""
-" - advance the current bisection by marking current revision as good "
-"or\n"
-" bad::"
-msgstr ""
-
-msgid ""
-" hg bisect --good\n"
-" hg bisect --bad"
-msgstr ""
-
-msgid ""
-" - mark the current revision, or a known revision, to be skipped (eg. "
-"if\n"
-" that revision is not usable because of another issue)::"
-msgstr ""
-
-msgid ""
-" hg bisect --skip\n"
-" hg bisect --skip 23"
-msgstr ""
-
-msgid " - forget the current bisection::"
-msgstr ""
-
-msgid " hg bisect --reset"
-msgstr ""
-
-msgid ""
-" - use 'make && make tests' to automatically find the first broken\n"
-" revision::"
-msgstr ""
-
-msgid ""
-" hg bisect --reset\n"
-" hg bisect --bad 34\n"
-" hg bisect --good 12\n"
-" hg bisect --command 'make && make tests'"
-msgstr ""
-
-msgid ""
-" - see all changesets whose states are already known in the current\n"
-" bisection::"
-msgstr ""
-
-msgid " hg log -r \"bisect(pruned)\""
-msgstr ""
-
-msgid ""
-" - see the changeset currently being bisected (especially useful\n"
-" if running with -U/--noupdate)::"
-msgstr ""
-
-msgid " hg log -r \"bisect(current)\""
-msgstr " hg log -r \"bisect(current)\""
-
-msgid " - see all changesets that took part in the current bisection::"
-msgstr ""
-
-msgid " hg log -r \"bisect(range)\""
-msgstr " hg log -r \"bisect(range)\""
-
-msgid " - with the graphlog extension, you can even get a nice graph::"
-msgstr ""
-
-msgid " hg log --graph -r \"bisect(range)\""
-msgstr ""
-
-msgid " See :hg:`help revsets` for more about the `bisect()` keyword."
-msgstr ""
-" Siehe :hg:`help revsets' für mehr Infos über den bisect() Schlüssel."
+" Its exit status will be used to mark revisions as good or bad:\n"
+" status 0 means good, 125 means to skip the revision, 127\n"
+" (command not found) will abort the bisection, and any other\n"
+" non-zero exit status means the revision is bad."
+msgstr ""
+" Die Markierung kann automatisch durch einem Testprogramm stattfinden.\n"
+" Ein Rückgabewert von 0 bedeutet dabei Erfolg, 125 Überspringen, 127\n"
+" (Kommando nicht gefunden) Abbruch und jeder andere positive Wert "
+"Fehler.\n"
+" "
msgid "The first good revision is:\n"
msgstr "Die erste fehlerfreie Revision ist:\n"
@@ -9592,8 +7718,7 @@ msgstr "Die erste fehlerhafte Revision ist:\n"
#, python-format
msgid ""
"Not all ancestors of this changeset have been checked.\n"
-"Use bisect --extend to continue the bisection from\n"
-"the common ancestor, %s.\n"
+"To check the other ancestors, start from the common ancestor, %s.\n"
msgstr ""
msgid "Due to skipped revisions, the first good revision could be any of:\n"
@@ -9618,12 +7743,6 @@ msgstr "(Die Syntax 'hg bisect <cmd>' ist veraltet)\n"
msgid "incompatible arguments"
msgstr "Inkompatible Argumente"
-msgid "current bisect revision is unknown - start a new bisect to fix"
-msgstr ""
-
-msgid "current bisect revision is a merge"
-msgstr ""
-
#, python-format
msgid "failed to execute %s"
msgstr "Fehler bei der Ausführung von %s"
@@ -9637,45 +7756,23 @@ msgid "Changeset %d:%s: %s\n"
msgstr "Änderungssatz %d:%s: %s\n"
#, python-format
-msgid "Extending search to changeset %d:%s\n"
-msgstr "Erweitere Suchbereich auf Änderungssatz %d:%s\n"
-
-msgid "nothing to extend"
-msgstr "Keine Erweiterung des Bereichs nötig"
-
-#, python-format
msgid "Testing changeset %d:%s (%d changesets remaining, ~%d tests)\n"
msgstr "Teste Änderungssatz %d:%s (%d Änderungssätze verbleiben, ~%d Tests)\n"
-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 "mark a bookmark inactive"
-msgstr "Ein Lesezeichen als inaktiv markieren"
-
-msgid "hg bookmarks [-f] [-d] [-i] [-m NAME] [-r REV] [NAME]"
-msgstr "hg bookmarks [-f] [-d] [-i] [-m NAME] [-r REV] [NAME]"
-
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 committing.\n"
-" Bookmarks are local. They can be renamed, copied and deleted. It is\n"
-" possible to use :hg:`merge NAME` to merge from a given bookmark, and\n"
-" :hg:`update NAME` to update to a given bookmark."
+" 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` anzugeben, um das an-\n"
-" gegebene Lesezeichen zusammenzuführen, bzw. darauf zu aktualisieren."
+" 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"
@@ -9694,42 +7791,28 @@ msgid ""
" 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."
+" the bookmarks extension must be enabled.\n"
+" "
msgstr ""
-" Lesezeichen können zwischen Mercurial-Archiven ausgetauscht werden\n"
+" 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 Version 1.8 muss hierfür die\n"
-" Lesezeichenerweiterung (bookmarks extension) eingeschaltet werden."
-
-msgid ""
-" With -i/--inactive, the new bookmark will not be made the active\n"
-" bookmark. If -r/--rev is given, the new bookmark will not be made\n"
-" active even if -i/--inactive is not given. If no NAME is given, the\n"
-" current active bookmark will be marked inactive.\n"
-" "
-msgstr ""
-" Mit -i/--inactive wird das neue Lesezeichen nicht das aktive.\n"
-" Wenn -r/--rev angegeben ist, wird das neue Lesezeichen nicht\n"
-" das aktive, selbst wenn -i/--inactive nicht angegeben ist.\n"
-" Falls kein NAME angegeben ist, wird das gerade aktive\n"
-" Lesezeichen als inaktiv markiert.\n"
+" Lesezeichen unterstützen. Bis Mercurial version 1.8 muss hierfür die\n"
+" Lesezeichenerweiterung (bookmarks extension) angeschaltet werden.\n"
" "
-msgid "bookmark name required"
-msgstr "Ein Name für das Lesezeichen muss übergeben werden"
+msgid "a bookmark of this name does not exist"
+msgstr "Es existiert kein Lesezeichen mit diesem Namen"
-#, python-format
-msgid "bookmark '%s' does not exist"
-msgstr "Lesezeichen '%s' existiert nicht"
-
-#, python-format
-msgid "bookmark '%s' already exists (use -f to force)"
-msgstr "Lesezeichen '%s' existiert bereits; erzwinge mit -f/--force"
+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"
@@ -9743,27 +7826,10 @@ msgstr ""
msgid "no bookmarks set\n"
msgstr "Keine Lesezeichen gesetzt\n"
-msgid "set branch name even if it shadows an existing branch"
-msgstr "Setzt Branchnamen, selbst wenn es einen bestehenden Branch verdeckt"
-
-msgid "reset branch name to parent branch name"
-msgstr "Setzt Branchnamen zum Namen des Vorgängers zurück"
-
-msgid "[-fC] [NAME]"
-msgstr ""
-
msgid "set or show the current branch name"
msgstr "Setzt oder zeigt den Namen des aktuellen Zweigs"
msgid ""
-" .. note::\n"
-" Branch names are permanent and global. Use :hg:`bookmark` to create "
-"a\n"
-" light-weight bookmark instead. See :hg:`help glossary` for more\n"
-" information about named branches and bookmarks."
-msgstr ""
-
-msgid ""
" With no argument, show the current branch name. With one argument,\n"
" set the working directory branch name (the branch will not exist\n"
" in the repository until the next commit). Standard practice\n"
@@ -9792,51 +7858,40 @@ msgstr ""
"Arbeitskopie\n"
" hat dann wieder den selben Namen wie der Vorgänger im Projektarchiv."
+#, fuzzy
msgid ""
" Use the command :hg:`update` to switch to an existing branch. Use\n"
" :hg:`commit --close-branch` to mark this branch as closed."
msgstr ""
-" Um auf einen anderen (existierenden) Zweig zu wechseln, nutze\n"
-" :hg:`update`. Mit :hg:`commit --close-branch` wird der aktuelle Zweig\n"
-" geschlossen."
+" Um auf einen anderen (existierenden) Zweig zu wechseln, siehe 'hg "
+"update'.\n"
+" "
#, python-format
msgid "reset working directory to branch %s\n"
msgstr "Setze Arbeitsverzeichnis auf Zweig %s zurück\n"
-msgid "a branch of the same name already exists"
-msgstr "Ein Zweig mit diesem Namen existiert bereits"
-
-#. i18n: "it" refers to an existing branch
-msgid "use 'hg update' to switch to it"
-msgstr "Benutzen Sie 'hg update' um zu ihm zu wechseln"
+#, fuzzy
+msgid ""
+"a branch of the same name already exists (use 'hg update' to switch to it)"
+msgstr "Ein Zweig mit diesem Namen existiert bereits (--force zum Erzwingen)"
#, python-format
msgid "marked working directory as branch %s\n"
msgstr "Arbeitsverzeichnis wurde als Zweig %s markiert\n"
-msgid "(branches are permanent and global, did you want a bookmark?)\n"
-msgstr ""
-
-msgid "show only branches that have unmerged heads"
-msgstr "Zeigt nur Branches deren Köpfe nicht zusammengeführt wurden"
-
-msgid "show normal and closed branches"
-msgstr "Zeigt normale und geschlossene Branches"
-
-msgid "[-ac]"
-msgstr ""
-
msgid "list repository named branches"
msgstr "Zeigt alle benannten Zweige des Projektarchiv an"
+#, fuzzy
msgid ""
" List the repository's named branches, indicating which ones are\n"
" inactive. If -c/--closed is specified, also list branches which have\n"
" been marked closed (see :hg:`commit --close-branch`)."
msgstr ""
" Listet die benannten Zweige des Projektarchiv auf und zeigt an, welche\n"
-" inaktiv sind. Zweige, die durch :hg:`commit --close-branch` geschlossen\n"
+" inaktiv sind. Zweige, die durch \"hg commit --close-branch\" "
+"geschlossen\n"
" wurden, werden nur mit dem Schalter -c/--closed angezeigt."
msgid ""
@@ -9846,43 +7901,23 @@ msgstr ""
" Mit der Option -a/--active werden nur aktive Zweige ausgegeben. Ein\n"
" Zweig gilt als aktiv, wenn er echte Köpfe besitzt."
+#, fuzzy
msgid " Use the command :hg:`update` to switch to an existing branch."
msgstr ""
-" Zum Wechsel auf einen anderen (existierenden) Zweig siehe :hg:`update`."
+" Um auf einen anderen (existierenden) Zweig zu wechseln, siehe 'hg "
+"update'.\n"
+" "
msgid ""
" Returns 0.\n"
" "
msgstr ""
-" Gibt 0 zurück.\n"
-" "
msgid " (closed)"
-msgstr " (geschlossen)"
+msgstr ""
msgid " (inactive)"
-msgstr " (inaktiv)"
-
-msgid "run even when the destination is unrelated"
-msgstr "Auch ausführen, wenn das Ziel keinen Bezug hat"
-
-msgid "a changeset intended to be added to the destination"
-msgstr "Ein Änderungssatz der zum Ziel hinzugefügt werden soll"
-
-msgid "a specific branch you would like to bundle"
-msgstr "Revision die gebündelt werden soll"
-
-msgid "a base changeset assumed to be available at the destination"
-msgstr "Ein Änderungssatz der im Ziel bereits existiert"
-
-msgid "bundle all changesets in the repository"
-msgstr "Bündelt alle Änderungssätze des Projektarchivs"
-
-msgid "bundle compression type to use"
-msgstr "Kompressionstyp für die Ausgabedatei"
-
-msgid "[-f] [-t TYPE] [-a] [-r REV]... [--base REV]... FILE [DEST]"
-msgstr "[-f] [-t TYP] [-a] [-r REV]... [--base REV]... DATEI [ZIEL]"
+msgstr ""
msgid "create a changegroup file"
msgstr "Erzeugt eine Datei mit Änderungsgruppen"
@@ -9894,6 +7929,7 @@ msgstr ""
" Erzeuge eine gepackte Datei der Änderungsgruppen, die alle Änderungs-\n"
" sätze enthält, die in einem anderen Archiv nicht vorhanden sind."
+#, fuzzy
msgid ""
" If you omit the destination repository, then hg assumes the\n"
" destination will have all the nodes you specify with --base\n"
@@ -9911,8 +7947,7 @@ msgid ""
" gzip (by default, bundles are compressed using bzip2)."
msgstr ""
" Die angewendete Kompressionsmethode kann mit der Option -t/--type\n"
-" gewählt werden: none (nicht komprimieren), bzip2 (Voreinstellung)\n"
-" oder gzip."
+" gewählt werden: none (nicht komprimieren), bzip2 (standard) oder gzip."
msgid ""
" The bundle file can then be transferred using conventional means\n"
@@ -9927,38 +7962,26 @@ msgstr ""
" Änderungen nicht verfügbar ist oder der Export eines kompletten Archivs\n"
" unerwünscht ist."
+#, fuzzy
msgid ""
" Applying bundles preserves all changeset contents including\n"
" permissions, copy/rename information, and revision history."
msgstr ""
" Die Anwendung von Bündeln bewahrt die Inhalte aller Änderungssätze,\n"
" Berechtigungen, Kopier/Umbennungs-Informationen und die "
-"Revisionshistorie."
+"Revisionshistorie.\n"
+" "
msgid ""
" Returns 0 on success, 1 if no changes found.\n"
" "
msgstr ""
-" Gibt 0 bei Erfolg zurück, 1 wenn keine Änderungen gefunden wurden.\n"
-" "
-
-msgid "unknown bundle type specified with --type"
-msgstr "Unbekannter Bündeltyp mit --type angegeben"
msgid "--base is incompatible with specifying a destination"
msgstr "Bei Nutzung von --base kann kein Zielarchiv angegeben werden"
-msgid "print output to file with formatted name"
-msgstr "Schreibt Ausgabe in Datei mit formatiertem Namen"
-
-msgid "print the given revision"
-msgstr "Gibt die gegebene Revision aus"
-
-msgid "apply any matching decode filter"
-msgstr "Führt alle passenden Dekodier-Filter aus"
-
-msgid "[OPTION]... FILE..."
-msgstr "[OPTION]... DATEI..."
+msgid "unknown bundle type specified with --type"
+msgstr "Unbekannter Bündeltyp mit --type angegeben"
msgid "output the current or given revision of files"
msgstr ""
@@ -9974,6 +7997,7 @@ msgstr ""
" Arbeitsverzeichnisses genutzt, oder die Spitze, falls keine\n"
" Revision geladen ist."
+#, fuzzy
msgid ""
" Output may be to a file, in which case the name of the file is\n"
" given using a format string. The formatting rules are the same as\n"
@@ -9984,31 +8008,17 @@ msgstr ""
"sind\n"
" dem 'export'-Befehl analog, mit folgenden Ergänzungen::"
+#, fuzzy
msgid ""
" :``%s``: basename of file being printed\n"
" :``%d``: dirname of file being printed, or '.' if in repository root\n"
" :``%p``: root-relative path name of file being printed"
msgstr ""
-" :``%s``: Dateiname der ausgegebenen Datei\n"
-" :``%d``: Verzeichnisname der Datei oder '.' in der Wurzel des Archivs\n"
-" :``%p``: Pfad und Dateiname relativ zur Archiv-Wurzel\n"
+" %s Dateiname der ausgegebenen Datei\n"
+" %d Verzeichnisname der Datei oder '.' in der Wurzel des Archivs\n"
+" %p Pfad und Dateiname relativ zur Archiv-Wurzel\n"
" "
-msgid "the clone will include an empty working copy (only a repository)"
-msgstr "Der Klon wird nur das Projektarchiv enthalten (keine Arbeitskopie)"
-
-msgid "revision, tag or branch to check out"
-msgstr "Revision, Etikett oder Zweig auf den aktualisiert werden soll"
-
-msgid "include the specified changeset"
-msgstr "Beziehe gegebenen Änderungssatz ein"
-
-msgid "clone only the specified branch"
-msgstr "Klone nur den gegebenen Zweig"
-
-msgid "[OPTION]... SOURCE [DEST]"
-msgstr "[OPTION]... QUELLE [ZIEL]"
-
msgid "make a copy of an existing repository"
msgstr "Erzeugt eine Kopie eines bestehenden Projektarchivs"
@@ -10022,190 +8032,129 @@ msgstr ""
" 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."
msgstr ""
-" Die Adresse der Quelle wird der ``.hg/hgrc`` Datei des neuen Archivs\n"
-" als Voreinstellung für entfernte Aktionen (pull/push) hinzugefügt."
+" Die Adresse der Quelle wird der .hg/hgrc Datei des neuen Archivs\n"
+" als Standard für entfernte Aktionen (pull/push) hinzugefügt."
-msgid ""
-" Only local paths and ``ssh://`` URLs are supported as\n"
-" destinations. For ``ssh://`` destinations, no working directory or\n"
-" ``.hg/hgrc`` will be created on the remote side."
-msgstr ""
-" Nur lokale Pfade und ``ssh://``-URLs werden als Ziele unterstützt.\n"
-" Für ``ssh://``-Ziele wird kein Arbeitsverzeichnis und keine\n"
-" ``.hg/hgrc``-Datei auf der entfernten Seite erstellt."
-
-msgid ""
-" To pull only a subset of changesets, specify one or more revisions\n"
-" identifiers with -r/--rev or branches with -b/--branch. The\n"
-" resulting clone will contain only the specified changesets and\n"
-" their ancestors. These options (or 'clone src#rev dest') imply\n"
-" --pull, even for local source repositories. Note that specifying a\n"
-" tag will include the tagged changeset but not the changeset\n"
-" containing the tag."
-msgstr ""
-" Um nur eine Untermenge von Änderungssätzen abzurufen, können eine\n"
-" oder mehrere Revisions-IDs mit -r/--rev oder Zweige mit\n"
-" -b/--branch angegeben werden. Der entstehende Klon wird nur die \n"
-" angegebenen Änderungssätze und ihre Nachfolger enthalten. Diese\n"
-" Optionen (oder 'clone src#rev dest') implizieren '--pull', sogar\n"
-" für lokale Archive als Quelle. Bei Angabe eines Etiketts (tag)\n"
-" ist zwar der benannte Änderungssatz enthalten, nicht aber der\n"
-" Änderungssatz, der das Etikett enthält."
-
-msgid ""
-" To check out a particular version, use -u/--update, or\n"
-" -U/--noupdate to create a clone with no working directory."
-msgstr ""
-" Um eine bestimmte Version abzurufen, verwenden Sie\n"
-" -u/--update, oder -U/--noupdate um einen Klon ohne\n"
-" Arbeitsverzeichnis zu erstellen."
+#, fuzzy
+msgid " See :hg:`help urls` for valid source format details."
+msgstr " Siehe 'hg help urls' für Details gültiger Quellformate."
+#, fuzzy
msgid ""
-" For efficiency, hardlinks are used for cloning whenever the\n"
-" source and destination are on the same filesystem (note this\n"
-" applies only to the repository data, not to the working\n"
-" directory). Some filesystems, such as AFS, implement hardlinking\n"
-" incorrectly, but do not report errors. In these cases, use the\n"
-" --pull option to avoid hardlinking."
+" 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"
+" Please see :hg:`help urls` for important details about ``ssh://`` URLs."
msgstr ""
-" Aus Effizienzgründen werden 'hardlinks' für das Klonen genutzt, wann\n"
-" immer Quelle und Ziel auf dem selben Dateisystem liegen (dies gilt "
-"nur\n"
-" für die Daten des Archivs, nicht für die Arbeitskopie). Einige\n"
-" Dateisyteme, wie etwa AFS, implementieren 'hardlinks' fehlerhaft,\n"
-" erzeugen dabei aber keine Fehlermeldung. Dann muss die --pull Option\n"
-" genutzt werden, um das Erzeugen von 'hardlinks' zu vermeiden."
+" Es ist möglich eine ``ssh://`` URL als Ziel anzugeben, aber es werden "
+"weder\n"
+" .hg/hgrc noch Arbeitsverzeichnis auf der entfernten Seite angelegt.\n"
+" Wichtige Details zu URLs mit ``ssh://`` finden sich unter 'hg help urls'."
msgid ""
-" In some cases, you can clone repositories and the working\n"
-" directory using full hardlinks with ::"
+" A set of changesets (tags, or branch names) to pull may be specified\n"
+" by listing each changeset (tag, or branch name) with -r/--rev.\n"
+" If -r/--rev is used, the cloned repository will contain only a subset\n"
+" of the changesets of the source repository. Only the set of changesets\n"
+" defined by all -r/--rev options (including all their ancestors)\n"
+" will be pulled into the destination repository.\n"
+" No subsequent changesets (including subsequent tags) will be present\n"
+" in the destination."
msgstr ""
-" In einigen Fällen können Archiv und Arbeitskopie unter Nutzung\n"
-" von 'hardlinks' kopiert werden mit ::"
-
-msgid " $ cp -al REPO REPOCLONE"
-msgstr " $ cp -al REPO REPOCLONE"
+" Eine Liste von Änderungssätzen (oder Etiketten/Zweignamen) kann durch\n"
+" wiederholte Angabe der Option -r/--rev geklont werden. In diesem Fall\n"
+" enthält das Ziel nur diese Untermenge von Änderungssätzen der Quelle,\n"
+" einschliesslich ihrer Vorgänger. Nachfahren der aufgelisteten\n"
+" Änderungssätze (und Etiketten die auf Nachfahren verweisen) werden\n"
+" vollständig ausgelassen."
msgid ""
-" This is the fastest way to clone, but it is not always safe. The\n"
-" operation is not atomic (making sure REPO is not modified during\n"
-" the operation is up to you) and you have to make sure your\n"
-" editor breaks hardlinks (Emacs and most Linux Kernel tools do\n"
-" so). Also, this is not compatible with certain extensions that\n"
-" place their metadata under the .hg directory, such as mq."
+" Using -r/--rev (or 'clone src#rev dest') implies --pull, even for\n"
+" local source repositories."
msgstr ""
-" Dies ist der schnellste Weg zu klonen, aber nicht immer sicher.\n"
-" Diese Operation ist nicht atomar (das Archiv darf während der "
-"Operation\n"
-" nicht modifiziert wird) und es muss sichergestellt werden, dass der\n"
-" genutzte Editor 'hardlinks' auflöst (vim, emacs und die meisten Linux\n"
-" Kernel Tools tun dies). Außerdem ist dies inkompatibel mit einigen\n"
-" Erweiterungen, die Metadaten unter dem .hg Verzeichnis ablegen, z.B. "
-"mq."
+" Die Benutzung von -r/--rev (oder 'clone quelle#rev ziel') impliziert\n"
+" in jedem Falle --pull, auch bei lokalen Archiven."
+#, fuzzy
msgid ""
-" Mercurial will update the working directory to the first applicable\n"
-" revision from this list:"
+" For efficiency, hardlinks are used for cloning whenever the source\n"
+" and destination are on the same filesystem (note this applies only\n"
+" to the repository data, not to the working directory). Some\n"
+" filesystems, such as AFS, implement hardlinking incorrectly, but\n"
+" do not report errors. In these cases, use the --pull option to\n"
+" avoid hardlinking."
msgstr ""
-" Mercurial wird das Arbeitsverzeichnis auf die erste anwendbare\n"
-" Revision der folgenden Liste aktualisieren:"
+" Aus Effizienzgründen werden 'hardlinks' für das Klonen genutzt, wann "
+"immer\n"
+" Quelle und Ziel auf dem selben Dateisystem liegen (dies gilt nur für "
+"die\n"
+" Daten des Archivs, nicht für die Arbeitskopie). Einige Dateisyteme, wie\n"
+" etwa AFS, implementieren 'hardlinks' fehlerhaft, erzeugen dabei aber "
+"keine\n"
+" Fehlermeldung. In diesen Fällen muss die --pull Option genutzt werden,\n"
+" um das Erzeugen von 'hardlinks' zu vermeiden."
+#, fuzzy
msgid ""
-" a) null if -U or the source repository has no changesets\n"
-" b) if -u . and the source repository is local, the first parent of\n"
-" the source repository's working directory\n"
-" c) the changeset specified with -u (if a branch name, this means the\n"
-" latest head of that branch)\n"
-" d) the changeset specified with -r\n"
-" e) the tipmost head specified with -b\n"
-" f) the tipmost head specified with the url#branch source syntax\n"
-" g) the tipmost head of the default branch\n"
-" h) tip"
+" In some cases, you can clone repositories and the working directory\n"
+" using full hardlinks with ::"
msgstr ""
-" a) null , bei -U oder wenn das Quellarchiv keine Änderungssätze hat\n"
-" b) Bei -u . und wenn es sich um ein lokales Archiv handelt, den "
-"ersten\n"
-" Vorgänger der Arbeitskopie des Quellarchivs\n"
-" c) Den Änderungssatz, der mit -u angegeben wurde (falls dies der Name\n"
-" eines Zweiges ist, bedeutet das der neueste Kopf dieses Zweiges)\n"
-" d) Den Änderungssatz, der mit -r angegeben wurde\n"
-" e) Den Kopf, der sich am nächsten an der Spitze befindet und mit -b\n"
-" angegeben wurde\n"
-" f) Den Kopf, der sich am nächsten an der Spitze befindet und mit\n"
-" der 'url#branch source'-Syntax angegeben wurde\n"
-" g) Den Kopf aus dem 'default'-Zweig, der sich am nächsten an der\n"
-" Spitze befindet h) Die Spitze"
+" In einigen Fällen können Archiv und Arbeitskopie unter Nutzung\n"
+" von 'hardlinks' kopiert werden mit ::"
-msgid " - clone a remote repository to a new directory named hg/::"
-msgstr ""
-" - Klont ein entferntes Projektarchiv in ein neues Verzeichnis hg/::"
-
-msgid " hg clone http://selenic.com/hg"
-msgstr " hg clone http://selenic.com/hg"
-
-msgid " - create a lightweight local clone::"
-msgstr " - Einen leichten lokalen Klon erzeugen::"
-
-msgid " hg clone project/ project-feature/"
-msgstr " hg clone project/ project-feature/"
+msgid " $ cp -al REPO REPOCLONE"
+msgstr " $ cp -al REPO REPOCLONE"
+#, fuzzy
msgid ""
-" - clone from an absolute path on an ssh server (note double-slash)::"
-msgstr ""
-" - Von einem absoluten Pfad auf einem SSH-Server klonen (Beachten Sie "
-"den Doppelschrägstrich)::"
-
-msgid " hg clone ssh://user@server//home/projects/alpha/"
-msgstr " hg clone ssh://user@server//home/projects/alpha/"
+" This is the fastest way to clone, but it is not always safe. The\n"
+" operation is not atomic (making sure REPO is not modified during\n"
+" the operation is up to you) and you have to make sure your editor\n"
+" breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,\n"
+" this is not compatible with certain extensions that place their\n"
+" metadata under the .hg directory, such as mq."
+msgstr ""
+" Dies ist der schnellste Weg zu klonen, aber nicht immer sicher.\n"
+" Diese Operation ist nicht atomar (das Archiv darf während der Operation\n"
+" nicht modifiziert wird) und es muss sichergestellt werden, dass der\n"
+" genutzte Editor 'hardlinks' auflöst (vim, emacs und die meisten Linux\n"
+" Kernel Tools tun dies). Außerdem ist dies inkompatibel mit einigen\n"
+" Erweiterungen, die Metadaten unter dem .hg Verzeichnis ablegen, z.B. "
+"mq.\n"
+" "
msgid ""
-" - do a high-speed clone over a LAN while checking out a\n"
-" specified version::"
+" Mercurial will update the working directory to the first applicable\n"
+" revision from this list:"
msgstr ""
-msgid " hg clone --uncompressed http://server/repo -u 1.5"
-msgstr " hg clone --uncompressed http://server/repo -u 1.5"
-
msgid ""
-" - create a repository without changesets after a particular revision::"
-msgstr ""
-
-msgid " hg clone -r 04e544 experimental/ good/"
-msgstr " hg clone -r 04e544 experimental/ good/"
-
-msgid " - clone (and track) a particular named branch::"
-msgstr ""
-
-msgid " hg clone http://selenic.com/hg#stable"
+" a) null if -U or the source repository has no changesets\n"
+" b) if -u . and the source repository is local, the first parent of\n"
+" the source repository's working directory\n"
+" c) the changeset specified with -u (if a branch name, this means the\n"
+" latest head of that branch)\n"
+" d) the changeset specified with -r\n"
+" e) the tipmost head specified with -b\n"
+" f) the tipmost head specified with the url#branch source syntax\n"
+" g) the tipmost head of the default branch\n"
+" h) tip"
msgstr ""
-msgid " See :hg:`help urls` for details on specifying URLs."
-msgstr " Siehe auch :hg:`help urls` für das Format von Adressangaben."
-
msgid "cannot specify both --noupdate and --updaterev"
msgstr ""
"Es können nicht gleichzeitig --noupdate und --updaterev angegeben werden"
-msgid "mark new/missing files as added/removed before committing"
-msgstr "Markiert neue/fehlende Dateien als hinzugefügt/entfernt"
-
-msgid "mark a branch as closed, hiding it from the branch list"
-msgstr ""
-"Markiert einen Branch als geschlossen und blendet ihn in der Branchlist aus"
-
-#, fuzzy
-msgid "amend the parent of the working dir"
-msgstr "Berichtige die Vorgängerversion des Arbeitsverzeichnisses"
-
msgid "commit the specified files or all outstanding changes"
msgstr ""
"Übernimmt Änderungen der angegebenen Dateien oder alle ausstehenden "
"Änderungen ins Archiv"
+#, fuzzy
msgid ""
" Commit changes to the given files into the repository. Unlike a\n"
" centralized SCM, this operation is a local operation. See\n"
@@ -10213,13 +8162,14 @@ msgid ""
msgstr ""
" Übernimmt Änderungen der angegebenen Dateien ins Archiv. Anders als\n"
" bei zentralen Versionsverwaltungssystem ist dies eine lokale Operation.\n"
-" Vergleiche :hg:`push` für Wege zur aktiven Verteilung der Änderungen."
+" Vergleiche hg push für Wege zur aktiven Verteilung der Änderungen."
+#, fuzzy
msgid ""
" If a list of files is omitted, all changes reported by :hg:`status`\n"
" will be committed."
msgstr ""
-" Sollten keine Dateien übergeben werden, werden alle von :hg:`status`\n"
+" Sollten keine Dateien übergeben werden, werden alle von \"hg status\"\n"
" angezeigten Änderungen Bestandteil der neuen Revision."
msgid ""
@@ -10235,84 +8185,30 @@ msgid ""
" commit fails, you will find a backup of your message in\n"
" ``.hg/last-message.txt``."
msgstr ""
-" Falls keine Ãœbernahmenachricht angegeben wurde, startet\n"
-" Mercurial Ihren konfigurierten Editor, wo Sie eine\n"
-" Nachricht eingeben können. Falls die Übernahme scheitert,\n"
-" wird eine Kopie Ihrer Nachricht in ``.hg/last-message.txt``\n"
-" abgelegt."
-
-msgid ""
-" The --amend flag can be used to amend the parent of the\n"
-" working directory with a new commit that contains the changes\n"
-" in the parent in addition to those currently reported by :hg:`status`,\n"
-" if there are any. The old commit is stored in a backup bundle in\n"
-" ``.hg/strip-backup`` (see :hg:`help bundle` and :hg:`help unbundle`\n"
-" on how to restore it)."
-msgstr ""
-
-msgid ""
-" Message, user and date are taken from the amended commit unless\n"
-" specified. When a message isn't specified on the command line,\n"
-" the editor will open with the message of the amended commit."
-msgstr ""
-
-msgid ""
-" It is not possible to amend public changesets (see :hg:`help phases`)\n"
-" or changesets that have children."
-msgstr ""
msgid ""
" Returns 0 on success, 1 if nothing changed.\n"
" "
msgstr ""
-" Gibt 0 bei Erfolg zurück, wenn nichts geändert wurde.\n"
-" "
+#, fuzzy
msgid "can only close branch heads"
-msgstr "Kann nur eindeutige Kopfrevisionen von Zweigen schliessen"
-
-msgid "cannot amend recursively"
-msgstr "Es kann nicht rekursiv berichtigt werden"
-
-msgid "cannot amend public changesets"
-msgstr "Öffentliche Änderungssätze können nicht berichtigt werden"
-
-msgid "cannot amend merge changesets"
-msgstr "Zusammenführungen können nicht berichtigt werden"
-
-msgid "cannot amend while merging"
-msgstr "Beim Zusammenführen kann nicht berichtigt werden"
-
-msgid "cannot amend changeset with children"
-msgstr "Kann keine Änderungssätze mit Nachfolgern berichtigen"
+msgstr "Zeigt normale und geschlossene Branch-Köpfe"
msgid "nothing changed\n"
msgstr "Keine Änderung\n"
-#, python-format
-msgid "nothing changed (%d missing files, see 'hg status')\n"
-msgstr ""
-
msgid "created new head\n"
msgstr "neuer Kopf erzeugt\n"
-#, python-format
+#, fuzzy, python-format
msgid "reopening closed branch head %d\n"
-msgstr "Zweig %d wird wieder geöffnet\n"
+msgstr "Zeigt normale und geschlossene Branch-Köpfe"
#, python-format
msgid "committed changeset %d:%s\n"
msgstr "Änderungssatz %d erzeugt:%s\n"
-msgid "record a copy that has already occurred"
-msgstr "Identifiziert eine Kopie, die bereits stattgefunden hat"
-
-msgid "forcibly copy over an existing managed file"
-msgstr "Erzwingt ein Ãœberschreiben des Kopierziels"
-
-msgid "[OPTION]... [SOURCE]... DEST"
-msgstr "[OPTION]... [QUELLE]... ZIEL"
-
msgid "mark files as copied for the next commit"
msgstr "Markiert Dateien als Kopien bereits versionierter Dateien"
@@ -10340,24 +8236,22 @@ msgstr ""
"markiert\n"
" werden."
+#, fuzzy
msgid ""
" This command takes effect with the next commit. To undo a copy\n"
" before that, see :hg:`revert`."
msgstr ""
" Die neue Datei wird wie üblich nicht sofort übernommen, sondern "
"existiert\n"
-" als lokale Änderung im Arbeitsverzeichnis. Sie kann durch :hg:`revert`\n"
-" rückgängig gemacht werden."
+" als lokale Änderung im Arbeitsverzeichnis. Sie kann durch \"hg revert"
+"\"\n"
+" rückgängig gemacht werden.\n"
+" "
msgid ""
" Returns 0 on success, 1 if errors are encountered.\n"
" "
msgstr ""
-" Gibt 0 bei Erfolg zurück, 1 wenn Fehler gefunden wurden.\n"
-" "
-
-msgid "[INDEX] REV1 REV2"
-msgstr ""
msgid "find the ancestor revision of two revisions in a given index"
msgstr "Finde die Vorgängerversion zweier Revisionen im angegebenen Index"
@@ -10365,28 +8259,42 @@ msgstr "Finde die Vorgängerversion zweier Revisionen im angegebenen Index"
msgid "either two or three arguments required"
msgstr "Entweder zwei oder drei Parameter angeben"
-msgid "add single file mergeable changes"
-msgstr ""
-
-msgid "add single file all revs overwrite"
-msgstr ""
-
-msgid "add new file at each rev"
-msgstr ""
-
-msgid "[OPTION]... [TEXT]"
-msgstr "[OPTION]... [TEXT]"
-
-msgid "builds a repo with a given DAG from scratch in the current empty repo"
-msgstr ""
-
-msgid ""
-" The description of the DAG is read from stdin if not given on the\n"
-" command line."
+msgid "builds a repo with a given dag from scratch in the current empty repo"
msgstr ""
+#, fuzzy
msgid " Elements:"
-msgstr " Elemente:"
+msgstr ""
+"Zeigt gruppierte Statistiken über Anzahl der Revisionen/Änderungen an\n"
+"\n"
+" Zählt Revisionen oder veränderte Zeilen anhand einer gegebenen "
+"Gruppierung\n"
+" und zeigt sie als Graph an. Gruppiert wird anhand von Vorlagen (siehe\n"
+" 'hg help templating') oder Datum, falls ein Datumsformat angegeben ist.\n"
+"\n"
+" Standardmäßig werden die veränderten Zeilen gezählt.\n"
+"\n"
+" Beispiele::\n"
+"\n"
+" # Zeigt Anzahl der veränderten Zeilen pro Entwickler\n"
+" hg churn -t '{author|email}'\n"
+"\n"
+" # Zeigt Aktivität im Tagesverlauf (Gruppiert nach Stunde)\n"
+" hg churn -f '%H' -s -c\n"
+"\n"
+" # Zeigt Aktivität pro Monat\n"
+" hg churn -f '%Y-%m' -s -c\n"
+"\n"
+" # Zeigt Anzahl der veränderten Zeilen über die Jahre\n"
+" hg churn -f '%Y' -s\n"
+"\n"
+" Als Zuweisungsdatei für Alias-Emails zu echten Emails wird "
+"standardmäßig\n"
+" die .hgchurn Datei in der Archivwurzel verwendet. Die Option --aliases\n"
+" verändert diese Vorgabe. Das Format ist recht einfach::\n"
+"\n"
+" <alias Email> <echte Email>\n"
+" "
msgid ""
" - \"+n\" is a linear run of n nodes based on the current default "
@@ -10400,6 +8308,8 @@ msgid ""
" - \"/p2\" is a merge of the preceding node and p2\n"
" - \":tag\" defines a local tag for the preceding node\n"
" - \"@branch\" sets the named branch for subsequent nodes\n"
+" - \"!command\" runs the command using your shell\n"
+" - \"!!my command\\n\" is like \"!\", but to the end of the line\n"
" - \"#...\\n\" is a comment up to the end of the line"
msgstr ""
@@ -10419,25 +8329,49 @@ msgstr ""
msgid ""
" All string valued-elements are either strictly alphanumeric, or must\n"
-" be enclosed in double quotes (\"...\"), with \"\\\" as escape "
-"character.\n"
+" be enclosed in double quotes (\"...\"), with \"\\\" as escape character."
+msgstr ""
+
+msgid ""
+" Note that the --overwritten-file and --appended-file options imply the\n"
+" use of \"HGMERGE=internal:local\" during DAG buildup.\n"
" "
msgstr ""
-msgid "reading DAG from stdin\n"
-msgstr "Lese DAG von der Standardeingabe\n"
+msgid "need at least one of -m, -a, -o, -n"
+msgstr ""
+#, fuzzy
msgid "repository is not empty"
-msgstr "Projektarchiv nicht leer"
+msgstr "Projektarchiv %s nicht gefunden"
-msgid "building"
-msgstr "Erstelle"
+#, fuzzy, python-format
+msgid "%s command %s"
+msgstr "Grundlegende Befehle:"
-msgid "show all details"
-msgstr "Zeigt alle Details"
+#, fuzzy
+msgid "list all available commands and options"
+msgstr "Zeigt alle Optionen des Befehls"
-msgid "lists the contents of a bundle"
-msgstr "Listet den Inhalt eines Bündels"
+msgid "returns the completion list associated with the given command"
+msgstr "Listet mögliche Befehle zu gegebener Abkürzung auf"
+
+#, fuzzy
+msgid "show information detected about current filesystem"
+msgstr "Zeigt nur gelöschte (aber versionierte) Dateien"
+
+#, fuzzy
+msgid "rebuild the dirstate as it would look like for the given revision"
+msgstr ""
+"Markiert aktuellen Status als Änderungen seit gegebener Revision\n"
+"\n"
+" Interpretiert das Arbeitsverzeichnis als lokale Änderung seit der "
+"gegebenen\n"
+" Revision. Die Vorgängerversion ist die gegebene und die Änderungen "
+"aller\n"
+" Versionen seit dem (oder bis dahin) sind vorgemerkt und können als neue\n"
+" Revision (und Kopf) übernommen werden.\n"
+" "
msgid "validate the correctness of the current dirstate"
msgstr "Prüft die Richtigkeit der bisher vorgemerkten Änderungen"
@@ -10461,35 +8395,80 @@ msgstr "%s im Manifest 1, aber aufgeführt im Status %s"
msgid ".hg/dirstate inconsistent with current parent's manifest"
msgstr ".hg/dirstate inkonsistent mit dem Manifest des aktuellen Vorgängers"
-msgid "[COMMAND]"
-msgstr "[BEFEHL]"
+msgid "show combined config settings from all hgrc files"
+msgstr "Zeigt die kombinierten Konfigurationswerte aller hgrc-Dateien an"
-msgid "list all available commands and options"
-msgstr "Zeigt alle verfügbaren Befehl und Optionen"
+msgid " With no arguments, print names and values of all config items."
+msgstr ""
+" Ohne Argumente werden die Namen und Werte aller Konfigurationseinträge\n"
+" angezeigt."
-msgid "show the command options"
-msgstr "Zeigt alle Optionen des Befehls"
+msgid ""
+" With one argument of the form section.name, print just the value\n"
+" of that config item."
+msgstr ""
+" Mit einem Argument der Form sektion.name wird nur der Wert dieses\n"
+" Konfigurationseintrages angezeigt."
-msgid "[-o] CMD"
-msgstr "[-o] BEFEHL"
+msgid ""
+" With multiple arguments, print names and values of all config\n"
+" items with matching section names."
+msgstr ""
+" Mit mehreren Argumenten werden die Namen und Werte aller passenden\n"
+" Konfigurationseinträge angezeigt."
-msgid "returns the completion list associated with the given command"
-msgstr "Listet mögliche Befehle zu gegebener Abkürzung auf"
+#, fuzzy
+msgid ""
+" With --debug, the source (filename and line number) is printed\n"
+" for each config item."
+msgstr ""
+" Mit dem --debug Schalter wird der Dateiname und die Zeilennummer der\n"
+" Definitionsquelle mit jedem Eintrag ausgegeben.\n"
+" "
-msgid "use tags as labels"
+#, fuzzy, python-format
+msgid "read config from: %s\n"
+msgstr "%s umbenannt von %s:%s\n"
+
+msgid "only one config item permitted"
+msgstr "Nur ein Konfigurationseintrag ist erlaubt"
+
+msgid "access the pushkey key/value protocol"
msgstr ""
-msgid "annotate with branch names"
+msgid " With two args, list the keys in the given namespace."
msgstr ""
-msgid "use dots for runs"
+msgid ""
+" With five args, set a key to new if it currently is set to old.\n"
+" Reports success or failure.\n"
+" "
msgstr ""
-msgid "separate elements by spaces"
+#, fuzzy
+msgid "parse and apply a revision specification"
+msgstr "Zu viele Revisionen angegeben"
+
+msgid "manually set the parents of the current working directory"
+msgstr "Setzt die Vorgängerversionen des Arbeitsverzeichnisses manuell"
+
+#, fuzzy
+msgid ""
+" This is useful for writing repository conversion tools, but should\n"
+" be used with care."
msgstr ""
+" Die kann für externe Konversionswerkzeuge nützlich sein, sollte aber "
+"mit\n"
+" großer Vorsicht angewendet werden.\n"
+" "
-msgid "[OPTION]... [FILE [REV]...]"
-msgstr "[OPTION]... [DATEI [REV]]..."
+msgid "show the contents of the current dirstate"
+msgstr ""
+"Zeigt die interne Repräsentation der aktuellen Änderungen (dirstate) an"
+
+#, python-format
+msgid "copy: %s -> %s\n"
+msgstr "Kopiere: %s -> %s\n"
msgid "format the changelog or an index DAG as a concise textual description"
msgstr ""
@@ -10499,23 +8478,17 @@ msgid ""
" revision numbers, they get labelled in the output as rN."
msgstr ""
+#, fuzzy
msgid ""
" Otherwise, the changelog DAG of the current repo is emitted.\n"
" "
msgstr ""
+" Gibt das Wurzelverzeichnis des aktuellen Arbeitsverzeichnisses aus.\n"
+" "
msgid "need repo for changelog dag"
msgstr ""
-msgid "open changelog"
-msgstr "Öffne Changelog"
-
-msgid "open manifest"
-msgstr "Öffne Manifest"
-
-msgid "-c|-m|FILE REV"
-msgstr "-c|-m|DATEI REV"
-
msgid "dump the contents of a data file revision"
msgstr ""
@@ -10523,79 +8496,28 @@ msgstr ""
msgid "invalid revision identifier %s"
msgstr ""
-msgid "try extended date formats"
-msgstr "versuche erweiterte Datumsformate"
-
-msgid "[-e] DATE [RANGE]"
-msgstr "[-e] DATUM [BEREICH]"
-
msgid "parse and display a date"
msgstr "Liest ein Datum ein und gibt es wieder aus"
-msgid "use old-style discovery"
-msgstr ""
-
-msgid "use old-style discovery with non-heads included"
-msgstr ""
-
-msgid "[-l REV] [-r REV] [-b BRANCH]... [OTHER]"
-msgstr ""
-
-msgid "runs the changeset discovery protocol in isolation"
-msgstr ""
-
-msgid "parse and apply a fileset specification"
-msgstr ""
-
-msgid "[PATH]"
-msgstr "[PFAD]"
-
-msgid "show information detected about current filesystem"
-msgstr ""
-
-msgid "id of head node"
-msgstr ""
-
-msgid "id of common node"
-msgstr ""
-
-msgid "REPO FILE [-H|-C ID]..."
-msgstr ""
-
-msgid "retrieves a bundle from a repo"
-msgstr ""
-
-msgid ""
-" Every ID must be a full-length hex node id string. Saves the bundle to "
-"the\n"
-" given file.\n"
-" "
-msgstr ""
-
msgid "display the combined ignore pattern"
msgstr ""
+#, fuzzy
msgid "no ignore patterns found"
-msgstr ""
-
-msgid "revlog format"
-msgstr ""
-
-msgid "[-f FORMAT] -c|-m|FILE"
-msgstr ""
+msgstr "Keine [keyword]-Muster konfiguriert"
msgid "dump the contents of an index file"
msgstr ""
-#, python-format
+#, fuzzy, python-format
msgid "unknown format %d"
-msgstr "Unbekanntes Format %d"
+msgstr "Index %s hat unbekanntes Format %d"
msgid "dump an index DAG as a graphviz dot file"
msgstr ""
msgid "test Mercurial installation"
-msgstr "Testet die Mercurial-Installation"
+msgstr "Testet die Mercurial Installation"
#, python-format
msgid "Checking encoding (%s)...\n"
@@ -10604,9 +8526,9 @@ msgstr "Prüfe Kodierung (%s)...\n"
msgid " (check that your locale is properly set)\n"
msgstr " (Stelle sicher, dass locale richtig gesetzt ist!)\n"
-#, python-format
+#, fuzzy, python-format
msgid "Checking installed modules (%s)...\n"
-msgstr "Prüfe installierte Module (%s)...\n"
+msgstr "Prüfe Kodierung (%s)...\n"
msgid " One or more extensions could not be found"
msgstr " Eine oder mehrere Erweiterungen nicht gefunden"
@@ -10614,19 +8536,47 @@ msgstr " Eine oder mehrere Erweiterungen nicht gefunden"
msgid " (check that you compiled the extensions)\n"
msgstr " (Stelle sicher, dass die Erweiterungen compiliert wurden!)\n"
-#, python-format
-msgid "Checking templates (%s)...\n"
-msgstr "Prüfe Vorlagen (%s)...\n"
+msgid "Checking templates...\n"
+msgstr "Prüfe Vorlagen...\n"
msgid " (templates seem to have been installed incorrectly)\n"
msgstr "(Vorlagen scheinen falsch installiert worden zu sein)\n"
+msgid "Checking patch...\n"
+msgstr "Prüfe patch...\n"
+
+msgid " patch call failed:\n"
+msgstr " Aufruf von patch gescheitert:\n"
+
+msgid " unexpected patch output!\n"
+msgstr " Unerwartete Ausgabe von patch\n"
+
+msgid " patch test failed!\n"
+msgstr " patch Test gescheitert\n"
+
+#, fuzzy
+msgid ""
+" (Current patch tool may be incompatible with patch, or misconfigured. "
+"Please check your configuration file)\n"
+msgstr ""
+" (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/wiki/BugTracker\n"
+msgstr ""
+" Fehlschlag des internen patch Werkzeugs. Bitte melden Sie diesen Fehler bei "
+"http://www.selenic.com/mercurial/bts\n"
+
msgid "Checking commit editor...\n"
msgstr "Prüfe Editor für Versionsmeldungen...\n"
msgid " No commit editor set and can't find vi in PATH\n"
msgstr " Kein Editor für Versionsmeldungen angegeben und vi nicht im PATH\n"
+#, fuzzy
msgid " (specify a commit editor in your configuration file)\n"
msgstr " (Gib einen Editor in der .hgrc Datei an!)\n"
@@ -10637,6 +8587,7 @@ msgstr " Kann Editor '%s' nicht im PATH finden\n"
msgid "Checking username...\n"
msgstr "Prüfe Benutzernamen...\n"
+#, fuzzy
msgid " (specify a username in your configuration file)\n"
msgstr " (Gib einen Benutzernamen in der .hgrc Datei an!)\n"
@@ -10647,67 +8598,6 @@ msgstr "Keine Probleme gefunden\n"
msgid "%s problems detected, please check your install!\n"
msgstr "%s Probleme gefunden. Erwäge die obigen Lösungsvorschläge!\n"
-msgid "REPO ID..."
-msgstr ""
-
-msgid "test whether node ids are known to a repo"
-msgstr ""
-
-msgid ""
-" Every ID must be a full-length hex node id string. Returns a list of 0s\n"
-" and 1s indicating unknown/known.\n"
-" "
-msgstr ""
-
-msgid "REPO NAMESPACE [KEY OLD NEW]"
-msgstr ""
-
-msgid "access the pushkey key/value protocol"
-msgstr ""
-
-msgid " With two args, list the keys in the given namespace."
-msgstr ""
-
-msgid ""
-" With five args, set a key to new if it currently is set to old.\n"
-" Reports success or failure.\n"
-" "
-msgstr ""
-
-msgid "A B"
-msgstr ""
-
-#, python-format
-msgid "a: %s\n"
-msgstr "a: %s\n"
-
-#, python-format
-msgid "b: %s\n"
-msgstr "b: %s\n"
-
-#, python-format
-msgid "depth(a): %d depth(b): %d\n"
-msgstr ""
-
-#, python-format
-msgid "delta: %d hdist: %d distance: %d relation: %s\n"
-msgstr ""
-
-msgid "revision to rebuild to"
-msgstr "Basisrevision für die Änderungen"
-
-msgid "[-r REV] [REV]"
-msgstr ""
-
-msgid "rebuild the dirstate as it would look like for the given revision"
-msgstr ""
-
-msgid "revision to debug"
-msgstr ""
-
-msgid "[-r REV] FILE"
-msgstr "[-r REV] DATEI"
-
msgid "dump rename information"
msgstr ""
@@ -10719,188 +8609,380 @@ msgstr "%s umbenannt von %s:%s\n"
msgid "%s not renamed\n"
msgstr "%s ist nicht unbenannt\n"
-msgid "dump index data"
-msgstr ""
-
-msgid "-c|-m|FILE"
-msgstr ""
-
-msgid "show data and statistics about a revlog"
-msgstr ""
-
-msgid "parse and apply a revision specification"
-msgstr ""
-
-msgid ""
-" Use --verbose to print the parsed tree before and after aliases\n"
-" expansion.\n"
-" "
-msgstr ""
-
-msgid "REV1 [REV2]"
-msgstr ""
-
-msgid "manually set the parents of the current working directory"
-msgstr "Setzt die Vorgängerversionen des Arbeitsverzeichnisses manuell"
-
-msgid ""
-" This is useful for writing repository conversion tools, but should\n"
-" be used with care."
-msgstr ""
-
-msgid "do not display the saved mtime"
-msgstr "Zeigt gespeicherte Modifikationszeit nicht an"
-
-msgid "sort by saved mtime"
-msgstr "Sortiert nach gespeicherter Modifikationszeit"
-
-msgid "[OPTION]..."
-msgstr ""
-
-msgid "show the contents of the current dirstate"
-msgstr ""
-"Zeigt die interne Repräsentation der aktuellen Änderungen (dirstate) an"
-
-#, python-format
-msgid "copy: %s -> %s\n"
-msgstr "Kopiere: %s -> %s\n"
-
-msgid "revision to check"
-msgstr "Die zu prüfende Revision"
-
msgid "show how files match on given patterns"
msgstr ""
-msgid "REPO [OPTIONS]... [ONE [TWO]]"
-msgstr "ARCHIV [OPTIONEN]... [EINS [ZWEI]]"
-
-msgid "[OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]..."
-msgstr "[OPTION]... ([-c REV] | [-r REV1] [-r REV2]]) [DATEI]..."
-
msgid "diff repository (or selected files)"
-msgstr "Zeigt Änderungen des Projektarchivs oder angegebener Dateien an"
+msgstr ""
+"Zeigt Änderungen des Projektarchivs oder angegebener Dateien an\n"
+"\n"
+" Zeigt Unterschiede von Dateien zwischen Revisionen im unified-diff-\n"
+" Format an.\n"
+"\n"
+" HINWEIS: diff kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit einer (der ersten wenn keine Revision angegeben ist)\n"
+" Vorgängerversion vergleicht.\n"
+"\n"
+" Bei Angabe zweier Revisionen als Parameter werden Unterschiede\n"
+" zwischen diesen beiden angezeigt. Wenn nur eine Revision angegeben\n"
+" wurde, wird diese mit dem Arbeitsverzeichnis verglichen. Sollte keine\n"
+" Revision angegeben worden sein, wird das Arbeitsverzeichnis mit der\n"
+" Vorgängerversion verglichen.\n"
+"\n"
+" Ohne die Option -a vermeidet export den Vergleich von binären Dateien.\n"
+" Mit -a wird der Vergleich in jedem Fall durchgeführt, wahrscheinlich "
+"mit\n"
+" unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option --git um Vergleiche im git-erweiterten diff-Format zu\n"
+" erzeugen. Zur weiteren Information ist \"hg help diff\" "
+"aufschlussreich.\n"
+" "
+#, fuzzy
msgid " Show differences between revisions for the specified files."
msgstr ""
-" Zeigt Änderungen zwischen den Revisionen der angegebenen Dateien an."
+"Zeigt Änderungen des Projektarchiv oder angegebener Dateien an\n"
+"\n"
+" Zeigt Unterschiede von Dateien zwischen Revisionen im unified-diff-\n"
+" Format an.\n"
+"\n"
+" HINWEIS: diff kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit einer (der ersten wenn keine Revision angegeben ist)\n"
+" Vorgängerversion vergleicht.\n"
+"\n"
+" Bei Angabe zweier Revisionen als Parameter werden Unterschiede\n"
+" zwischen diesen beiden angezeigt. Wenn nur eine Revision angegeben\n"
+" wurde, wird diese mit dem Arbeitsverzeichnis verglichen. Sollte keine\n"
+" Revision angegeben worden sein, wird das Arbeitsverzeichnis mit der\n"
+" Vorgängerversion verglichen.\n"
+"\n"
+" Ohne die Option -a vermeidet export den Vergleich von binären Dateien.\n"
+" Mit -a wird der Vergleich in jedem Fall durchgeführt, wahrscheinlich "
+"mit\n"
+" unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option --git um Vergleiche im git-erweiterten diff-Format zu\n"
+" erzeugen. Zur weiteren Information ist \"hg help diff\" "
+"aufschlussreich.\n"
+" "
+#, fuzzy
msgid " Differences between files are shown using the unified diff format."
msgstr ""
-" Unterschiede von Dateien zwischen Revisionen werden im unified-diff-\n"
-" Format angezeigt."
+"Zeigt Änderungen des Projektarchiv oder angegebener Dateien an\n"
+"\n"
+" Zeigt Unterschiede von Dateien zwischen Revisionen im unified-diff-\n"
+" Format an.\n"
+"\n"
+" HINWEIS: diff kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit einer (der ersten wenn keine Revision angegeben ist)\n"
+" Vorgängerversion vergleicht.\n"
+"\n"
+" Bei Angabe zweier Revisionen als Parameter werden Unterschiede\n"
+" zwischen diesen beiden angezeigt. Wenn nur eine Revision angegeben\n"
+" wurde, wird diese mit dem Arbeitsverzeichnis verglichen. Sollte keine\n"
+" Revision angegeben worden sein, wird das Arbeitsverzeichnis mit der\n"
+" Vorgängerversion verglichen.\n"
+"\n"
+" Ohne die Option -a vermeidet export den Vergleich von binären Dateien.\n"
+" Mit -a wird der Vergleich in jedem Fall durchgeführt, wahrscheinlich "
+"mit\n"
+" unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option --git um Vergleiche im git-erweiterten diff-Format zu\n"
+" erzeugen. Zur weiteren Information ist \"hg help diff\" "
+"aufschlussreich.\n"
+" "
+#, fuzzy
msgid ""
" .. 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 ""
-" .. note::\n"
-" diff kann bei Zusammenführungen unerwartete Resultate anzeigen, da\n"
-" es nur mit einer (der ersten wenn keine Revision angegeben ist)\n"
-" Vorgängerversion vergleicht."
+"Zeigt Änderungen des Projektarchiv oder angegebener Dateien an\n"
+"\n"
+" Zeigt Unterschiede von Dateien zwischen Revisionen im unified-diff-\n"
+" Format an.\n"
+"\n"
+" HINWEIS: diff kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit einer (der ersten wenn keine Revision angegeben ist)\n"
+" Vorgängerversion vergleicht.\n"
+"\n"
+" Bei Angabe zweier Revisionen als Parameter werden Unterschiede\n"
+" zwischen diesen beiden angezeigt. Wenn nur eine Revision angegeben\n"
+" wurde, wird diese mit dem Arbeitsverzeichnis verglichen. Sollte keine\n"
+" Revision angegeben worden sein, wird das Arbeitsverzeichnis mit der\n"
+" Vorgängerversion verglichen.\n"
+"\n"
+" Ohne die Option -a vermeidet export den Vergleich von binären Dateien.\n"
+" Mit -a wird der Vergleich in jedem Fall durchgeführt, wahrscheinlich "
+"mit\n"
+" unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option --git um Vergleiche im git-erweiterten diff-Format zu\n"
+" erzeugen. Zur weiteren Information ist \"hg help diff\" "
+"aufschlussreich.\n"
+" "
msgid ""
" Alternatively you can specify -c/--change with a revision to see\n"
" the changes in that changeset relative to its first parent."
msgstr ""
-" Alternativ können mit -c/--change die Änderungen einer Revision relativ\n"
-" zu dessen ersten Vorgänger angezeigt werden."
+#, fuzzy
msgid ""
" Without the -a/--text option, diff will avoid generating diffs of\n"
" files it detects as binary. With -a, diff will generate a diff\n"
" anyway, probably with undesirable results."
msgstr ""
-" Ohne die Option -a/--text vermeidet export den Vergleich von binären\n"
-" Dateien. Mit -a wird der Vergleich in jedem Fall durchgeführt,\n"
-" wahrscheinlich mit unerwünschtem Resultat."
+"Zeigt Änderungen des Projektarchiv oder angegebener Dateien an\n"
+"\n"
+" Zeigt Unterschiede von Dateien zwischen Revisionen im unified-diff-\n"
+" Format an.\n"
+"\n"
+" HINWEIS: diff kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit einer (der ersten wenn keine Revision angegeben ist)\n"
+" Vorgängerversion vergleicht.\n"
+"\n"
+" Bei Angabe zweier Revisionen als Parameter werden Unterschiede\n"
+" zwischen diesen beiden angezeigt. Wenn nur eine Revision angegeben\n"
+" wurde, wird diese mit dem Arbeitsverzeichnis verglichen. Sollte keine\n"
+" Revision angegeben worden sein, wird das Arbeitsverzeichnis mit der\n"
+" Vorgängerversion verglichen.\n"
+"\n"
+" Ohne die Option -a vermeidet export den Vergleich von binären Dateien.\n"
+" Mit -a wird der Vergleich in jedem Fall durchgeführt, wahrscheinlich "
+"mit\n"
+" unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option --git um Vergleiche im git-erweiterten diff-Format zu\n"
+" erzeugen. Zur weiteren Information ist \"hg help diff\" "
+"aufschlussreich.\n"
+" "
+#, fuzzy
msgid ""
" Use the -g/--git option to generate diffs in the git extended diff\n"
" format. For more information, read :hg:`help diffs`."
msgstr ""
-" Nutze die Option -g/--git um Vergleiche im git-erweiterten diff-Format\n"
-" zu erzeugen. Für mehr Information ist :hg:`help diff` aufschlussreich."
-
-msgid " - compare a file in the current working directory to its parent::"
-msgstr ""
-" - vergleiche eine Datei im Arbeitsverzeichnis mit dem Vorgänger::"
-
-msgid " hg diff foo.c"
-msgstr ""
-
-msgid ""
-" - compare two historical versions of a directory, with rename info::"
-msgstr ""
-
-msgid " hg diff --git -r 1.0:1.2 lib/"
-msgstr ""
-
-msgid " - get change stats relative to the last change on some date::"
-msgstr ""
-
-msgid " hg diff --stat -r \"date('may 2')\""
-msgstr ""
-
-msgid " - diff all newly-added files that contain a keyword::"
-msgstr ""
-
-msgid " hg diff \"set:added() and grep(GNU)\""
-msgstr ""
-
-msgid " - compare a revision and its parents::"
-msgstr ""
-
-msgid ""
-" hg diff -c 9353 # compare against first parent\n"
-" hg diff -r 9353^:9353 # same using revset syntax\n"
-" hg diff -r 9353^2:9353 # compare against the second parent"
-msgstr ""
-
-msgid "diff against the second parent"
-msgstr "Vergleicht mit der zweiten Vorgängerversion"
-
-msgid "revisions to export"
-msgstr "zu exportierende Revisionen"
-
-msgid "[OPTION]... [-o OUTFILESPEC] REV..."
-msgstr "[OPTION]... [-o DATEINAMENMUSTER] REV..."
+"Zeigt Änderungen des Projektarchiv oder angegebener Dateien an\n"
+"\n"
+" Zeigt Unterschiede von Dateien zwischen Revisionen im unified-diff-\n"
+" Format an.\n"
+"\n"
+" HINWEIS: diff kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit einer (der ersten wenn keine Revision angegeben ist)\n"
+" Vorgängerversion vergleicht.\n"
+"\n"
+" Bei Angabe zweier Revisionen als Parameter werden Unterschiede\n"
+" zwischen diesen beiden angezeigt. Wenn nur eine Revision angegeben\n"
+" wurde, wird diese mit dem Arbeitsverzeichnis verglichen. Sollte keine\n"
+" Revision angegeben worden sein, wird das Arbeitsverzeichnis mit der\n"
+" Vorgängerversion verglichen.\n"
+"\n"
+" Ohne die Option -a vermeidet export den Vergleich von binären Dateien.\n"
+" Mit -a wird der Vergleich in jedem Fall durchgeführt, wahrscheinlich "
+"mit\n"
+" unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option --git um Vergleiche im git-erweiterten diff-Format zu\n"
+" erzeugen. Zur weiteren Information ist \"hg help diff\" "
+"aufschlussreich.\n"
+" "
msgid "dump the header and diffs for one or more changesets"
-msgstr "Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus"
+msgstr ""
+"Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus\n"
+"\n"
+" Die angezeigten Daten in den Kopfzeilen sind: Autor,\n"
+" Änderungssatz-Prüfsumme, Vorgängerversion(en) und Versionsmeldung.\n"
+"\n"
+" HINWEIS: export kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit der ersten Vorgängerversion vergleicht.\n"
+"\n"
+" Die Ausgabe kann in eine Datei erfolgen. In diesem Fall wird der Name\n"
+" für jede ausgegebene Revision anhand einer Formatangabe erzeugt::\n"
+"\n"
+" %% literales \"%\" Zeichen\n"
+" %H Prüfsumme des Änderungssatzes (40 Byte hexadezimal)\n"
+" %N Anzahl der generierten Patches\n"
+" %R Revisionnummer des Änderungssatzes\n"
+" %b Basisname des exportierten Archivs\n"
+" %h Kurzform der Prüfsumme des Änderungssatzes (12 Byte hexadezimal)\n"
+" %n laufende Nummer mit führenden Nullen, beginnend bei 1\n"
+" %r Revisionsnummer mit führenden Nullen\n"
+"\n"
+" Ohne die Option -a/--text vermeidet export den Vergleich von binären\n"
+" Dateien. Mit -a wird der Vergleich in jedem Fall durchgeführt,\n"
+" wahrscheinlich mit unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option -g/--git um Vergleiche im git-erweiterten diff-Format\n"
+" zu erzeugen. Siehe dazu auch \"hg help diff\".\n"
+"\n"
+" Mit dem Schalter --switch-parent kann im Falle einer Zusammenführung\n"
+" mit dem zweiten Vorfahren verglichen werden.\n"
+" "
+#, fuzzy
msgid " Print the changeset header and diffs for one or more revisions."
msgstr ""
-" Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus."
+"Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus\n"
+"\n"
+" Die angezeigten Daten in den Kopfzeilen sind: Autor,\n"
+" Änderungssatz-Prüfsumme, Vorgängerversion(en) und Versionsmeldung.\n"
+"\n"
+" HINWEIS: export kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit der ersten Vorgängerversion vergleicht.\n"
+"\n"
+" Die Ausgabe kann in eine Datei erfolgen. In diesem Fall wird der Name\n"
+" für jede ausgegebene Revision anhand einer Formatangabe erzeugt::\n"
+"\n"
+" %% literales \"%\" Zeichen\n"
+" %H Prüfsumme des Änderungssatzes (40 Byte hexadezimal)\n"
+" %N Anzahl der generierten Patches\n"
+" %R Revisionnummer des Änderungssatzes\n"
+" %b Basisname des exportierten Archivs\n"
+" %h Kurzform der Prüfsumme des Änderungssatzes (12 Byte hexadezimal)\n"
+" %n laufende Nummer mit führenden Nullen, beginnend bei 1\n"
+" %r Revisionsnummer mit führenden Nullen\n"
+"\n"
+" Ohne die Option -a/--text vermeidet export den Vergleich von binären\n"
+" Dateien. Mit -a wird der Vergleich in jedem Fall durchgeführt,\n"
+" wahrscheinlich mit unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option -g/--git um Vergleiche im git-erweiterten diff-Format\n"
+" zu erzeugen. Siehe dazu auch \"hg help diff\".\n"
+"\n"
+" Mit dem Schalter --switch-parent kann im Falle einer Zusammenführung\n"
+" mit dem zweiten Vorfahren verglichen werden.\n"
+" "
+#, fuzzy
msgid ""
" The information shown in the changeset header is: author, date,\n"
" branch name (if non-default), changeset hash, parent(s) and commit\n"
" comment."
msgstr ""
-" Die angezeigten Daten in den Kopfzeilen sind: Autor, Datum, Zweigname\n"
-" (falls nicht \"default\"), Änderungssatz-Prüfsumme, Vorgängerversion"
-"(en)\n"
-" und Versionsmeldung."
+"Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus\n"
+"\n"
+" Die angezeigten Daten in den Kopfzeilen sind: Autor,\n"
+" Änderungssatz-Prüfsumme, Vorgängerversion(en) und Versionsmeldung.\n"
+"\n"
+" HINWEIS: export kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit der ersten Vorgängerversion vergleicht.\n"
+"\n"
+" Die Ausgabe kann in eine Datei erfolgen. In diesem Fall wird der Name\n"
+" für jede ausgegebene Revision anhand einer Formatangabe erzeugt::\n"
+"\n"
+" %% literales \"%\" Zeichen\n"
+" %H Prüfsumme des Änderungssatzes (40 Byte hexadezimal)\n"
+" %N Anzahl der generierten Patches\n"
+" %R Revisionnummer des Änderungssatzes\n"
+" %b Basisname des exportierten Archivs\n"
+" %h Kurzform der Prüfsumme des Änderungssatzes (12 Byte hexadezimal)\n"
+" %n laufende Nummer mit führenden Nullen, beginnend bei 1\n"
+" %r Revisionsnummer mit führenden Nullen\n"
+"\n"
+" Ohne die Option -a/--text vermeidet export den Vergleich von binären\n"
+" Dateien. Mit -a wird der Vergleich in jedem Fall durchgeführt,\n"
+" wahrscheinlich mit unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option -g/--git um Vergleiche im git-erweiterten diff-Format\n"
+" zu erzeugen. Siehe dazu auch \"hg help diff\".\n"
+"\n"
+" Mit dem Schalter --switch-parent kann im Falle einer Zusammenführung\n"
+" mit dem zweiten Vorfahren verglichen werden.\n"
+" "
+#, fuzzy
msgid ""
" .. 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 ""
-" .. note::\n"
-" export kann bei Zusammenführungen unerwartete Resultate anzeigen,\n"
-" da es nur mit der ersten Vorgängerversion vergleicht."
+"Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus\n"
+"\n"
+" Die angezeigten Daten in den Kopfzeilen sind: Autor,\n"
+" Änderungssatz-Prüfsumme, Vorgängerversion(en) und Versionsmeldung.\n"
+"\n"
+" HINWEIS: export kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit der ersten Vorgängerversion vergleicht.\n"
+"\n"
+" Die Ausgabe kann in eine Datei erfolgen. In diesem Fall wird der Name\n"
+" für jede ausgegebene Revision anhand einer Formatangabe erzeugt::\n"
+"\n"
+" %% literales \"%\" Zeichen\n"
+" %H Prüfsumme des Änderungssatzes (40 Byte hexadezimal)\n"
+" %N Anzahl der generierten Patches\n"
+" %R Revisionnummer des Änderungssatzes\n"
+" %b Basisname des exportierten Archivs\n"
+" %h Kurzform der Prüfsumme des Änderungssatzes (12 Byte hexadezimal)\n"
+" %n laufende Nummer mit führenden Nullen, beginnend bei 1\n"
+" %r Revisionsnummer mit führenden Nullen\n"
+"\n"
+" Ohne die Option -a/--text vermeidet export den Vergleich von binären\n"
+" Dateien. Mit -a wird der Vergleich in jedem Fall durchgeführt,\n"
+" wahrscheinlich mit unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option -g/--git um Vergleiche im git-erweiterten diff-Format\n"
+" zu erzeugen. Siehe dazu auch \"hg help diff\".\n"
+"\n"
+" Mit dem Schalter --switch-parent kann im Falle einer Zusammenführung\n"
+" mit dem zweiten Vorfahren verglichen werden.\n"
+" "
+#, fuzzy
msgid ""
" Output may be to a file, in which case the name of the file is\n"
" given using a format string. The formatting rules are as follows:"
msgstr ""
+"Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus\n"
+"\n"
+" Die angezeigten Daten in den Kopfzeilen sind: Autor,\n"
+" Änderungssatz-Prüfsumme, Vorgängerversion(en) und Versionsmeldung.\n"
+"\n"
+" HINWEIS: export kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit der ersten Vorgängerversion vergleicht.\n"
+"\n"
" Die Ausgabe kann in eine Datei erfolgen. In diesem Fall wird der Name\n"
-" für jede ausgegebene Revision anhand einer Formatangabe erzeugt:"
+" für jede ausgegebene Revision anhand einer Formatangabe erzeugt::\n"
+"\n"
+" %% literales \"%\" Zeichen\n"
+" %H Prüfsumme des Änderungssatzes (40 Byte hexadezimal)\n"
+" %N Anzahl der generierten Patches\n"
+" %R Revisionnummer des Änderungssatzes\n"
+" %b Basisname des exportierten Archivs\n"
+" %h Kurzform der Prüfsumme des Änderungssatzes (12 Byte hexadezimal)\n"
+" %n laufende Nummer mit führenden Nullen, beginnend bei 1\n"
+" %r Revisionsnummer mit führenden Nullen\n"
+"\n"
+" Ohne die Option -a/--text vermeidet export den Vergleich von binären\n"
+" Dateien. Mit -a wird der Vergleich in jedem Fall durchgeführt,\n"
+" wahrscheinlich mit unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option -g/--git um Vergleiche im git-erweiterten diff-Format\n"
+" zu erzeugen. Siehe dazu auch \"hg help diff\".\n"
+"\n"
+" Mit dem Schalter --switch-parent kann im Falle einer Zusammenführung\n"
+" mit dem zweiten Vorfahren verglichen werden.\n"
+" "
+#, fuzzy
msgid ""
" :``%%``: literal \"%\" character\n"
" :``%H``: changeset hash (40 hexadecimal digits)\n"
@@ -10908,75 +8990,152 @@ msgid ""
" :``%R``: changeset revision number\n"
" :``%b``: basename of the exporting repository\n"
" :``%h``: short-form changeset hash (12 hexadecimal digits)\n"
-" :``%m``: first line of the commit message (only alphanumeric "
-"characters)\n"
" :``%n``: zero-padded sequence number, starting at 1\n"
" :``%r``: zero-padded changeset revision number"
msgstr ""
-" :``%%``: literales \"%\" Zeichen\n"
-" :``%H``: Prüfsumme des Änderungssatzes (40 Byte hexadezimal)\n"
-" :``%N``: Anzahl der generierten Patches\n"
-" :``%R``: Revisionnummer des Änderungssatzes\n"
-" :``%b``: Basisname des exportierten Archivs\n"
-" :``%h``: Kurzform der Prüfsumme des Änderungssatzes (12 Byte "
-"hexadezimal)\n"
-" :``%m``: Erste Zeile der Ãœbernahmenachricht (nur alphanumerische "
-"Zeichen)\n"
-" :``%n``: Laufende Nummer mit führenden Nullen, beginnend bei 1\n"
-" :``%r``: Revisionsnummer mit führenden Nullen"
+"Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus\n"
+"\n"
+" Die angezeigten Daten in den Kopfzeilen sind: Autor,\n"
+" Änderungssatz-Prüfsumme, Vorgängerversion(en) und Versionsmeldung.\n"
+"\n"
+" HINWEIS: export kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit der ersten Vorgängerversion vergleicht.\n"
+"\n"
+" Die Ausgabe kann in eine Datei erfolgen. In diesem Fall wird der Name\n"
+" für jede ausgegebene Revision anhand einer Formatangabe erzeugt::\n"
+"\n"
+" %% literales \"%\" Zeichen\n"
+" %H Prüfsumme des Änderungssatzes (40 Byte hexadezimal)\n"
+" %N Anzahl der generierten Patches\n"
+" %R Revisionnummer des Änderungssatzes\n"
+" %b Basisname des exportierten Archivs\n"
+" %h Kurzform der Prüfsumme des Änderungssatzes (12 Byte hexadezimal)\n"
+" %n laufende Nummer mit führenden Nullen, beginnend bei 1\n"
+" %r Revisionsnummer mit führenden Nullen\n"
+"\n"
+" Ohne die Option -a/--text vermeidet export den Vergleich von binären\n"
+" Dateien. Mit -a wird der Vergleich in jedem Fall durchgeführt,\n"
+" wahrscheinlich mit unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option -g/--git um Vergleiche im git-erweiterten diff-Format\n"
+" zu erzeugen. Siehe dazu auch \"hg help diff\".\n"
+"\n"
+" Mit dem Schalter --switch-parent kann im Falle einer Zusammenführung\n"
+" mit dem zweiten Vorfahren verglichen werden.\n"
+" "
+#, fuzzy
msgid ""
" Without the -a/--text option, export will avoid generating diffs\n"
" of files it detects as binary. With -a, export will generate a\n"
" diff anyway, probably with undesirable results."
msgstr ""
+"Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus\n"
+"\n"
+" Die angezeigten Daten in den Kopfzeilen sind: Autor,\n"
+" Änderungssatz-Prüfsumme, Vorgängerversion(en) und Versionsmeldung.\n"
+"\n"
+" HINWEIS: export kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit der ersten Vorgängerversion vergleicht.\n"
+"\n"
+" Die Ausgabe kann in eine Datei erfolgen. In diesem Fall wird der Name\n"
+" für jede ausgegebene Revision anhand einer Formatangabe erzeugt::\n"
+"\n"
+" %% literales \"%\" Zeichen\n"
+" %H Prüfsumme des Änderungssatzes (40 Byte hexadezimal)\n"
+" %N Anzahl der generierten Patches\n"
+" %R Revisionnummer des Änderungssatzes\n"
+" %b Basisname des exportierten Archivs\n"
+" %h Kurzform der Prüfsumme des Änderungssatzes (12 Byte hexadezimal)\n"
+" %n laufende Nummer mit führenden Nullen, beginnend bei 1\n"
+" %r Revisionsnummer mit führenden Nullen\n"
+"\n"
" Ohne die Option -a/--text vermeidet export den Vergleich von binären\n"
" Dateien. Mit -a wird der Vergleich in jedem Fall durchgeführt,\n"
-" wahrscheinlich mit unerwünschtem Resultat."
+" wahrscheinlich mit unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option -g/--git um Vergleiche im git-erweiterten diff-Format\n"
+" zu erzeugen. Siehe dazu auch \"hg help diff\".\n"
+"\n"
+" Mit dem Schalter --switch-parent kann im Falle einer Zusammenführung\n"
+" mit dem zweiten Vorfahren verglichen werden.\n"
+" "
+#, fuzzy
msgid ""
" Use the -g/--git option to generate diffs in the git extended diff\n"
" format. See :hg:`help diffs` for more information."
msgstr ""
+"Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus\n"
+"\n"
+" Die angezeigten Daten in den Kopfzeilen sind: Autor,\n"
+" Änderungssatz-Prüfsumme, Vorgängerversion(en) und Versionsmeldung.\n"
+"\n"
+" HINWEIS: export kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit der ersten Vorgängerversion vergleicht.\n"
+"\n"
+" Die Ausgabe kann in eine Datei erfolgen. In diesem Fall wird der Name\n"
+" für jede ausgegebene Revision anhand einer Formatangabe erzeugt::\n"
+"\n"
+" %% literales \"%\" Zeichen\n"
+" %H Prüfsumme des Änderungssatzes (40 Byte hexadezimal)\n"
+" %N Anzahl der generierten Patches\n"
+" %R Revisionnummer des Änderungssatzes\n"
+" %b Basisname des exportierten Archivs\n"
+" %h Kurzform der Prüfsumme des Änderungssatzes (12 Byte hexadezimal)\n"
+" %n laufende Nummer mit führenden Nullen, beginnend bei 1\n"
+" %r Revisionsnummer mit führenden Nullen\n"
+"\n"
+" Ohne die Option -a/--text vermeidet export den Vergleich von binären\n"
+" Dateien. Mit -a wird der Vergleich in jedem Fall durchgeführt,\n"
+" wahrscheinlich mit unerwünschtem Resultat.\n"
+"\n"
" Nutze die Option -g/--git um Vergleiche im git-erweiterten diff-Format\n"
-" zu erzeugen. Siehe dazu auch :hg:`help diff`."
+" zu erzeugen. Siehe dazu auch \"hg help diff\".\n"
+"\n"
+" Mit dem Schalter --switch-parent kann im Falle einer Zusammenführung\n"
+" mit dem zweiten Vorfahren verglichen werden.\n"
+" "
+#, fuzzy
msgid ""
" With the --switch-parent option, the diff will be against the\n"
" second parent. It can be useful to review a merge."
msgstr ""
+"Gibt Kopfzeilen und Änderungsverlauf einer oder mehrerer Versionen aus\n"
+"\n"
+" Die angezeigten Daten in den Kopfzeilen sind: Autor,\n"
+" Änderungssatz-Prüfsumme, Vorgängerversion(en) und Versionsmeldung.\n"
+"\n"
+" HINWEIS: export kann bei Zusammenführungen unerwartete Resultate "
+"anzeigen,\n"
+" da es nur mit der ersten Vorgängerversion vergleicht.\n"
+"\n"
+" Die Ausgabe kann in eine Datei erfolgen. In diesem Fall wird der Name\n"
+" für jede ausgegebene Revision anhand einer Formatangabe erzeugt::\n"
+"\n"
+" %% literales \"%\" Zeichen\n"
+" %H Prüfsumme des Änderungssatzes (40 Byte hexadezimal)\n"
+" %N Anzahl der generierten Patches\n"
+" %R Revisionnummer des Änderungssatzes\n"
+" %b Basisname des exportierten Archivs\n"
+" %h Kurzform der Prüfsumme des Änderungssatzes (12 Byte hexadezimal)\n"
+" %n laufende Nummer mit führenden Nullen, beginnend bei 1\n"
+" %r Revisionsnummer mit führenden Nullen\n"
+"\n"
+" Ohne die Option -a/--text vermeidet export den Vergleich von binären\n"
+" Dateien. Mit -a wird der Vergleich in jedem Fall durchgeführt,\n"
+" wahrscheinlich mit unerwünschtem Resultat.\n"
+"\n"
+" Nutze die Option -g/--git um Vergleiche im git-erweiterten diff-Format\n"
+" zu erzeugen. Siehe dazu auch \"hg help diff\".\n"
+"\n"
" Mit dem Schalter --switch-parent kann im Falle einer Zusammenführung\n"
-" mit dem zweiten Vorfahren verglichen werden."
-
-msgid ""
-" - use export and import to transplant a bugfix to the current\n"
-" branch::"
-msgstr ""
-" - verwendet export und import um einen Bugfix auf den aktuellen Zweig\n"
-" zu transplantieren::"
-
-msgid " hg export -r 9353 | hg import -"
-msgstr " hg export -r 9353 | hg import -"
-
-msgid ""
-" - export all the changesets between two revisions to a file with\n"
-" rename information::"
-msgstr ""
-" - exportiere alle Änderungssätze zwischen zwei Revision in eine Datei\n"
-" mit Informationen über Umbenennungen::"
-
-msgid " hg export --git -r 123:150 > changes.txt"
-msgstr " hg export --git -r 123:150 > aenderungen.txt"
-
-msgid ""
-" - split outgoing changes into a series of patches with\n"
-" descriptive names::"
-msgstr ""
-" - spalte neue Änderungen in eine Reihe von Patches mit erklärenden\n"
-" Namen::"
-
-msgid " hg export -r \"outgoing()\" -o \"%n-%m.patch\""
-msgstr " hg export -r \"outgoing()\" -o \"%n-%m.patch\""
+" mit dem zweiten Vorfahren verglichen werden.\n"
+" "
msgid "export requires at least one changeset"
msgstr "export benötigt zumindest eine Versionsangabe"
@@ -11006,159 +9165,12 @@ msgstr ""
msgid " To undo a forget before the next commit, see :hg:`add`."
msgstr ""
-msgid " - forget newly-added binary files::"
-msgstr ""
-
-msgid " hg forget \"set:added() and binary()\""
-msgstr ""
-
-msgid " - forget files that would be excluded by .hgignore::"
-msgstr ""
-
-msgid " hg forget \"set:hgignore()\""
-msgstr ""
-
-msgid "resume interrupted graft"
-msgstr "Führt ein unterbrochenes graft fort"
-
-msgid "append graft info to log message"
-msgstr ""
-
-msgid "record the current date as commit date"
-msgstr "Protokolliert das aktuelle Datum als Commit-Datum"
-
-msgid "record the current user as committer"
-msgstr "Protokolliert den aktuellen Nutzer als Autor"
-
-msgid "[OPTION]... REVISION..."
-msgstr "[OPTION]... REVISION..."
-
-msgid "copy changes from other branches onto the current branch"
-msgstr ""
-
-msgid ""
-" This command uses Mercurial's merge logic to copy individual\n"
-" changes from other branches without merging branches in the\n"
-" history graph. This is sometimes known as 'backporting' or\n"
-" 'cherry-picking'. By default, graft will copy user, date, and\n"
-" description from the source changesets."
-msgstr ""
-
-msgid ""
-" Changesets that are ancestors of the current revision, that have\n"
-" already been grafted, or that are merges will be skipped."
-msgstr ""
-
-msgid " (grafted from CHANGESETHASH)"
-msgstr ""
-
-msgid ""
-" If a graft merge results in conflicts, the graft process is\n"
-" interrupted so that the current merge can be manually resolved.\n"
-" Once all conflicts are addressed, the graft process can be\n"
-" continued with the -c/--continue option."
-msgstr ""
-
-msgid ""
-" .. note::\n"
-" The -c/--continue option does not reapply earlier options."
-msgstr ""
-
-msgid ""
-" - copy a single change to the stable branch and edit its description::"
-msgstr ""
-
-msgid ""
-" hg update stable\n"
-" hg graft --edit 9393"
-msgstr ""
-
-msgid ""
-" - graft a range of changesets with one exception, updating dates::"
-msgstr ""
-
-msgid " hg graft -D \"2085::2093 and not 2091\""
-msgstr ""
-
-msgid " - continue a graft after resolving conflicts::"
-msgstr ""
-
-msgid " hg graft -c"
-msgstr ""
-
-msgid " - show the source of a grafted changeset::"
-msgstr ""
-
-msgid " hg log --debug -r tip"
-msgstr ""
-
-msgid ""
-" Returns 0 on successful completion.\n"
-" "
-msgstr ""
-" Gibt 0 bei Erfolg zurück.\n"
-" "
-
-msgid "can't specify --continue and revisions"
-msgstr "--continue und Revisionen können nicht gleichzeitig angegeben werden"
-
-msgid "no graft state found, can't continue"
-msgstr "Kein graft Status gefunden, kann nicht fortsetzen"
-
-#, python-format
-msgid "skipping ungraftable merge revision %s\n"
-msgstr "Überspringe nicht transplantierbare Zusammenführung %s\n"
-
-#, python-format
-msgid "skipping ancestor revision %s\n"
-msgstr "Überspringe Vorgängerrevision %s\n"
-
-#, python-format
-msgid "skipping already grafted revision %s\n"
-msgstr "Ãœberspringe bereits transplantierte Revision %s\n"
-
-#, python-format
-msgid "skipping already grafted revision %s (same origin %d)\n"
-msgstr ""
-
-#, python-format
-msgid "skipping already grafted revision %s (was grafted from %d)\n"
-msgstr ""
+msgid "no files specified"
+msgstr "Keine Dateien angegeben"
#, python-format
-msgid "grafting revision %s\n"
-msgstr ""
-
-msgid "unresolved conflicts, can't continue"
-msgstr ""
-
-msgid "use hg resolve and hg graft --continue"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "graft for revision %s is empty\n"
-msgstr "Pfropf für Revision %s ist leer\n"
-
-msgid "end fields with NUL"
-msgstr "Trennt Einträge mit NULL statt Leerzeichen"
-
-msgid "print all revisions that match"
-msgstr "Zeigt alle zutreffenden Revisionen"
-
-msgid "ignore case when matching"
-msgstr "Ignoriert Groß- und Kleinschreibung beim Suchen"
-
-msgid "print only filenames and revisions that match"
-msgstr "Zeigt nur zutreffende Dateinamen und Revisionen"
-
-msgid "print matching line numbers"
-msgstr "Zeigt zutreffende Zeilennummern"
-
-msgid "only search files changed within revision range"
-msgstr "Sucht Dateien, die in gegebenem Revisionsbereich geändert wurden"
-
-msgid "[OPTION]... PATTERN [FILE]..."
-msgstr "[OPTION]... MUSTER [DATEI]..."
+msgid "not removing %s: file is already untracked\n"
+msgstr "Entferne %s nicht: Datei ist nicht versioniert\n"
msgid "search for a pattern in specified files and revisions"
msgstr "Sucht ein Muster in angegebenen Dateien und Revisionen"
@@ -11179,6 +9191,7 @@ msgstr ""
"Revisionen\n"
" im Archiv durchsucht, nicht jedoch das Arbeitsverzeichnis."
+#, fuzzy
msgid ""
" By default, grep only prints output for the first revision of a\n"
" file in which it finds a match. To get it to print every revision\n"
@@ -11191,7 +9204,8 @@ msgstr ""
" aus, die das Suchmuster enthält. Mit der Option --all werden "
"stattdessen\n"
" alle Revisionen ausgegeben, in der das Muster hinzugefügt (\"+\") oder\n"
-" entfernt (\"-\") wurde."
+" entfernt (\"-\") wurde.\n"
+" "
msgid ""
" Returns 0 if a match is found, 1 otherwise.\n"
@@ -11202,103 +9216,195 @@ msgstr ""
msgid "grep: invalid match pattern: %s\n"
msgstr "grep: Ungültiges Suchmuster: %s\n"
-msgid "STARTREV"
-msgstr ""
-
-msgid "show only heads which are descendants of STARTREV"
-msgstr "Zeigt nur Köpfe, die Nachkommen von STARTREV sind"
-
-msgid "show topological heads only"
-msgstr ""
-
-msgid "show active branchheads only (DEPRECATED)"
-msgstr ""
-
-msgid "show normal and closed branch heads"
-msgstr "Zeigt normale und geschlossene Branch-Köpfe"
-
-msgid "[-ct] [-r STARTREV] [REV]..."
-msgstr "[-ct] [-r STARTREV] [REV]..."
-
msgid "show current repository heads or show branch heads"
-msgstr "Zeigt die Köpfe des Archivs oder von Entwicklungszweigen"
+msgstr ""
+"Zeigt die Köpfe des Archivs oder von Entwicklungszweigen\n"
+"\n"
+" Ohne Argumente werden alle Köpfe des Archivs angezeigt.\n"
+"\n"
+" Archivköpfe sind Revisionen, die keine Kinder haben. Typischerweise "
+"geht\n"
+" die Entwicklung hier weiter und die Köpfe sind häufig Ziel von\n"
+" Aktualisierungen und Zusammenführungen.\n"
+"\n"
+" Wenn eine oder mehrere REV Argumente gegeben sind, werden die Köpfe von\n"
+" den benannten Zweigen dieser Revisionen angezeigt. Der Name des Zweigs\n"
+" wird auch das Zweigetikett der Revision genannt.\n"
+"\n"
+" Zweigköpfe sind Revisionen eines bestimmten Zweigs, die keine Kinder\n"
+" im selben Zweig besitzen. Dies kann ein \"echter\" Kopf sein, oder die\n"
+" letzte Revision bevor ein neuer Zweig erstellt wurde. Falls kein Kopf\n"
+" eines Zweigs ein echter Kopf ist, gilt der Zweig als inaktiv. Zweige\n"
+" die mit dem Ãœbernahmeoption \"--close-branch\" geschlossen wurden,\n"
+" werden nur mit dem -c/--closed Schalter angezeigt.\n"
+"\n"
+" Bei Angabe einer STARTREV werden nur solche Köpfe (oder Zweigköpfe)\n"
+" angezeigt, die Nachfahren der gegebenen Revision sind.\n"
+" "
+#, fuzzy
msgid " With no arguments, show all repository branch heads."
-msgstr " Ohne Argumente werden alle Köpfe des Archivs angezeigt."
+msgstr ""
+"Zeigt die Köpfe des Archivs oder von Entwicklungszweigen\n"
+"\n"
+" Ohne Argumente werden alle Köpfe des Archivs angezeigt.\n"
+"\n"
+" Archivköpfe sind Revisionen, die keine Kinder haben. Typischerweise "
+"geht\n"
+" die Entwicklung hier weiter und die Köpfe sind häufig Ziel von\n"
+" Aktualisierungen und Zusammenführungen.\n"
+"\n"
+" Wenn eine oder mehrere REV Argumente gegeben sind, werden die Köpfe von\n"
+" den benannten Zweigen dieser Revisionen angezeigt. Der Name des Zweigs\n"
+" wird auch das Zweigetikett der Revision genannt.\n"
+"\n"
+" Zweigköpfe sind Revisionen eines bestimmten Zweigs, die keine Kinder\n"
+" im selben Zweig besitzen. Dies kann ein \"echter\" Kopf sein, oder die\n"
+" letzte Revision bevor ein neuer Zweig erstellt wurde. Falls kein Kopf\n"
+" eines Zweigs ein echter Kopf ist, gilt der Zweig als inaktiv. Zweige\n"
+" die mit dem Ãœbernahmeoption \"--close-branch\" geschlossen wurden,\n"
+" werden nur mit dem -c/--closed Schalter angezeigt.\n"
+"\n"
+" Bei Angabe einer STARTREV werden nur solche Köpfe (oder Zweigköpfe)\n"
+" angezeigt, die Nachfahren der gegebenen Revision sind.\n"
+" "
+#, fuzzy
msgid ""
" Repository \"heads\" are changesets with no child changesets. They are\n"
" where development generally takes place and are the usual targets\n"
" for update and merge operations. Branch heads are changesets that have\n"
" no child changeset on the same branch."
msgstr ""
-" Archivköpfe sind Revisionen, die keine Nachfahren haben. Typischerweise\n"
-" geht die Entwicklung hier weiter und die Köpfe sind häufig Ziel von\n"
+"Zeigt die Köpfe des Archivs oder von Entwicklungszweigen\n"
+"\n"
+" Ohne Argumente werden alle Köpfe des Archivs angezeigt.\n"
+"\n"
+" Archivköpfe sind Revisionen, die keine Kinder haben. Typischerweise "
+"geht\n"
+" die Entwicklung hier weiter und die Köpfe sind häufig Ziel von\n"
" Aktualisierungen und Zusammenführungen.\n"
+"\n"
+" Wenn eine oder mehrere REV Argumente gegeben sind, werden die Köpfe von\n"
+" den benannten Zweigen dieser Revisionen angezeigt. Der Name des Zweigs\n"
+" wird auch das Zweigetikett der Revision genannt.\n"
+"\n"
" Zweigköpfe sind Revisionen eines bestimmten Zweigs, die keine Kinder\n"
" im selben Zweig besitzen. Dies kann ein \"echter\" Kopf sein, oder die\n"
" letzte Revision bevor ein neuer Zweig erstellt wurde. Falls kein Kopf\n"
-" eines Zweigs ein echter Kopf ist, gilt der Zweig als inaktiv."
+" eines Zweigs ein echter Kopf ist, gilt der Zweig als inaktiv. Zweige\n"
+" die mit dem Ãœbernahmeoption \"--close-branch\" geschlossen wurden,\n"
+" werden nur mit dem -c/--closed Schalter angezeigt.\n"
+"\n"
+" Bei Angabe einer STARTREV werden nur solche Köpfe (oder Zweigköpfe)\n"
+" angezeigt, die Nachfahren der gegebenen Revision sind.\n"
+" "
+#, fuzzy
msgid ""
" If one or more REVs are given, only branch heads on the branches\n"
-" associated with the specified changesets are shown. This means\n"
-" that you can use :hg:`heads foo` to see the heads on a branch\n"
-" named ``foo``."
+" associated with the specified changesets are shown."
msgstr ""
+"Zeigt die Köpfe des Archivs oder von Entwicklungszweigen\n"
+"\n"
+" Ohne Argumente werden alle Köpfe des Archivs angezeigt.\n"
+"\n"
+" Archivköpfe sind Revisionen, die keine Kinder haben. Typischerweise "
+"geht\n"
+" die Entwicklung hier weiter und die Köpfe sind häufig Ziel von\n"
+" Aktualisierungen und Zusammenführungen.\n"
+"\n"
" Wenn eine oder mehrere REV Argumente gegeben sind, werden die Köpfe von\n"
-" den benannten Zweigen dieser Revisionen angezeigt. Das bedeutet, dass\n"
-" :hg:`heads foo` verwendet werden kann, um die Köpfe des Zweigs ``foo``\n"
-" anzuzeigen."
+" den benannten Zweigen dieser Revisionen angezeigt. Der Name des Zweigs\n"
+" wird auch das Zweigetikett der Revision genannt.\n"
+"\n"
+" Zweigköpfe sind Revisionen eines bestimmten Zweigs, die keine Kinder\n"
+" im selben Zweig besitzen. Dies kann ein \"echter\" Kopf sein, oder die\n"
+" letzte Revision bevor ein neuer Zweig erstellt wurde. Falls kein Kopf\n"
+" eines Zweigs ein echter Kopf ist, gilt der Zweig als inaktiv. Zweige\n"
+" die mit dem Ãœbernahmeoption \"--close-branch\" geschlossen wurden,\n"
+" werden nur mit dem -c/--closed Schalter angezeigt.\n"
+"\n"
+" Bei Angabe einer STARTREV werden nur solche Köpfe (oder Zweigköpfe)\n"
+" angezeigt, die Nachfahren der gegebenen Revision sind.\n"
+" "
+#, fuzzy
msgid ""
" If -c/--closed is specified, also show branch heads marked closed\n"
" (see :hg:`commit --close-branch`)."
msgstr ""
-" Zweige die mit :hg:`commit --close-branch` geschlossen wurden, werden\n"
-" nur mit dem -c/--closed Schalter angezeigt."
+"Zeigt die Köpfe des Archivs oder von Entwicklungszweigen\n"
+"\n"
+" Ohne Argumente werden alle Köpfe des Archivs angezeigt.\n"
+"\n"
+" Archivköpfe sind Revisionen, die keine Kinder haben. Typischerweise "
+"geht\n"
+" die Entwicklung hier weiter und die Köpfe sind häufig Ziel von\n"
+" Aktualisierungen und Zusammenführungen.\n"
+"\n"
+" Wenn eine oder mehrere REV Argumente gegeben sind, werden die Köpfe von\n"
+" den benannten Zweigen dieser Revisionen angezeigt. Der Name des Zweigs\n"
+" wird auch das Zweigetikett der Revision genannt.\n"
+"\n"
+" Zweigköpfe sind Revisionen eines bestimmten Zweigs, die keine Kinder\n"
+" im selben Zweig besitzen. Dies kann ein \"echter\" Kopf sein, oder die\n"
+" letzte Revision bevor ein neuer Zweig erstellt wurde. Falls kein Kopf\n"
+" eines Zweigs ein echter Kopf ist, gilt der Zweig als inaktiv. Zweige\n"
+" die mit dem Ãœbernahmeoption \"--close-branch\" geschlossen wurden,\n"
+" werden nur mit dem -c/--closed Schalter angezeigt.\n"
+"\n"
+" Bei Angabe einer STARTREV werden nur solche Köpfe (oder Zweigköpfe)\n"
+" angezeigt, die Nachfahren der gegebenen Revision sind.\n"
+" "
+#, fuzzy
msgid ""
" If STARTREV is specified, only those heads that are descendants of\n"
" STARTREV will be displayed."
msgstr ""
+"Zeigt die Köpfe des Archivs oder von Entwicklungszweigen\n"
+"\n"
+" Ohne Argumente werden alle Köpfe des Archivs angezeigt.\n"
+"\n"
+" Archivköpfe sind Revisionen, die keine Kinder haben. Typischerweise "
+"geht\n"
+" die Entwicklung hier weiter und die Köpfe sind häufig Ziel von\n"
+" Aktualisierungen und Zusammenführungen.\n"
+"\n"
+" Wenn eine oder mehrere REV Argumente gegeben sind, werden die Köpfe von\n"
+" den benannten Zweigen dieser Revisionen angezeigt. Der Name des Zweigs\n"
+" wird auch das Zweigetikett der Revision genannt.\n"
+"\n"
+" Zweigköpfe sind Revisionen eines bestimmten Zweigs, die keine Kinder\n"
+" im selben Zweig besitzen. Dies kann ein \"echter\" Kopf sein, oder die\n"
+" letzte Revision bevor ein neuer Zweig erstellt wurde. Falls kein Kopf\n"
+" eines Zweigs ein echter Kopf ist, gilt der Zweig als inaktiv. Zweige\n"
+" die mit dem Ãœbernahmeoption \"--close-branch\" geschlossen wurden,\n"
+" werden nur mit dem -c/--closed Schalter angezeigt.\n"
+"\n"
" Bei Angabe einer STARTREV werden nur solche Köpfe (oder Zweigköpfe)\n"
-" angezeigt, die Nachfahren der gegebenen Revision sind."
+" angezeigt, die Nachfahren der gegebenen Revision sind.\n"
+" "
msgid ""
" If -t/--topo is specified, named branch mechanics will be ignored and "
"only\n"
" changesets without children will be shown."
msgstr ""
-" Mit -t/--topo wird Zweiginformation ignoriert und nur Änderungssätze\n"
-" ohne Nachfahren angezeigt."
msgid ""
" Returns 0 if matching heads are found, 1 if not.\n"
" "
msgstr ""
-" Gibt 0 zurück, wenn zutreffende Köpfe gefunden wurden, sonst 1.\n"
-" "
-#, python-format
+#, fuzzy, python-format
msgid "no open branch heads found on branches %s"
-msgstr "Keine offenen Zweigköpfe auf Zweig %s"
+msgstr "Keine offenen Zweigköpfe auf Zweig %s\n"
-#, python-format
+#, fuzzy, python-format
msgid " (started at %s)"
-msgstr " (fängt bei %s an)"
-
-msgid "show only help for extensions"
-msgstr "Zeigt Hilfe nur für Erweiterungen"
-
-msgid "show only help for commands"
-msgstr "Zeigt Hilfe für Befehle"
-
-msgid "show topics matching keyword"
-msgstr ""
-
-msgid "[-ec] [TOPIC]"
-msgstr "[-ec] [THEMA]"
+msgstr " (Standard: %s)"
msgid "show help for a given topic or a help overview"
msgstr "Zeigt die Hilfe für ein gegebenes Thema oder eine Hilfsübersicht"
@@ -11319,8 +9425,27 @@ msgid ""
" Returns 0 if successful.\n"
" "
msgstr ""
-" Gibt 0 bei Erfolg zurück.\n"
-" "
+
+msgid "global options:"
+msgstr "Globale Optionen:"
+
+msgid "use \"hg help\" for the full list of commands"
+msgstr "Nutze \"hg help\" für eine Liste aller Befehle"
+
+msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
+msgstr ""
+"Nutze \"hg help\" für eine Liste aller Befehle oder \"hg -v\" für Details"
+
+#, 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
+msgid "use \"hg -v help %s\" to show global options"
+msgstr "Nutze \"hg -v help %s\" um globale Optionen anzuzeigen"
+
+msgid "list of commands:"
+msgstr "Liste der Befehle:"
#, python-format
msgid ""
@@ -11337,86 +9462,242 @@ msgstr "(keine Hilfe verfügbar)"
msgid "shell alias for::"
msgstr ""
-#, python-format
+#, fuzzy, python-format
msgid " %s"
-msgstr " %s"
-
-#, python-format
-msgid "alias for: hg %s"
-msgstr "Alias für: hg %s"
-
-#, python-format
-msgid "%s"
-msgstr ""
-
-#, python-format
-msgid "use \"hg help -e %s\" to show help for the %s extension"
msgstr ""
-"Benutzen Sie \"hg -v help %s\" um Hilfe für die Erweitung %s anzuzeigen"
-
-msgid "options:"
-msgstr "Optionen:"
-
-msgid "global options:"
-msgstr "Globale Optionen:"
-
-#, python-format
-msgid ""
+"Konvertiert Archive unter anderem VCS in ein Mercurial Archiv\n"
"\n"
-"use \"hg help %s\" to show the full help text\n"
-msgstr ""
+" Erkannte Quellformate [Befehlsoption]:\n"
"\n"
-"Nutze \"hg help %s\" um den vollen Hilfetext anzuzeigen\n"
-
-#, python-format
-msgid ""
+" - Mercurial [hg]\n"
+" - CVS [cvs]\n"
+" - Darcs [darcs]\n"
+" - git [git]\n"
+" - Subversion [svn]\n"
+" - Monotone [mtn]\n"
+" - GNU Arch [gnuarch]\n"
+" - Bazaar [bzr]\n"
+" - Perforce [p4]\n"
"\n"
-"use \"hg -v help %s\" to show more info\n"
-msgstr ""
+" Erlaubte Zielformate [Befehlsoption]:\n"
"\n"
-"Nutze \"hg -v help %s\" um mehr Informationen anzuzeigen\n"
-
-msgid "basic commands:"
-msgstr "Grundlegende Befehle:"
-
-msgid "list of commands:"
-msgstr "Liste der Befehle:"
-
-msgid "no commands defined\n"
-msgstr "keine Befehle definiert\n"
-
-msgid "enabled extensions:"
-msgstr "Aktive Erweiterungen:"
-
-msgid ""
+" - Mercurial [hg]\n"
+" - Subversion [svn] (Historie con Zweigen wird nicht erhalten)\n"
"\n"
-"additional help topics:"
-msgstr ""
+" Wenn keine Revision angegeben ist, werden alle konvertiert.\n"
+" Andernfalls werden alle Revision bis zur angegebenen konvertiert.\n"
+" Die Revisionsangabe muss für das Quellsystem verständlich sein.\n"
"\n"
-"Zusätzliche Hilfethemen:"
-
-msgid "use \"hg help\" for the full list of commands"
-msgstr "Nutze \"hg help\" für eine Liste aller Befehle"
+" Wenn kein Zielverzeichnisname angegeben ist, wird die Endung \"-hg\"\n"
+" an den Namen der Quelle angehängt. Wenn das Ziel nicht existiert, wird\n"
+" es erstellt.\n"
+"\n"
+" Standardmäßig wird die Option \"--branchsort\" für alle Quellen ausser\n"
+" Mercurial verwendet. Mercurial verwendet \"--sourcesort\", um die\n"
+" ursprüngliche Reihenfolge der Revisionsnummern zu erhalten.\n"
+" Die Sortieroptionen haben folgende Effekte:\n"
+"\n"
+" --branchsort Konvertiert von Vorfahr zum Kind wenn möglich. Das\n"
+" bedeutet, dass Zweige nacheinander konvertiert "
+"werden. Dies führt zu kompakteren Archiven.\n"
+"\n"
+" --datesort Sortiert die Revisionen nach Datum. Die fertigen Archive\n"
+" haben ein gut lesbares Meldungs-Logbuch, sind aber häufig\n"
+" eine Zehnerpotenz größer als mit \"branchsort\" "
+"erstellte.\n"
+"\n"
+" --sourcesort Versucht die Reihenfolge der Quellrevisionen zu erhalten.\n"
+" Dies ist nur von Mercurial als Quelle unterstützt.\n"
+"\n"
+" Die Datei <REVMAP> (standardmäßig .hg/shamap im Zielarchiv) ist eine\n"
+" einfache Textdatei, durch die jede Quellrevision per Id mit der Ziel-\n"
+" revision assoziiert. Das Format ist::\n"
+"\n"
+" <Quell ID> <Ziel ID>\n"
+"\n"
+" Diese Datei wird erstellt, wenn sie nicht existiert. Sie wird durch\n"
+" jeden konvertierten Änderungssatz erweitert, so dass unterbrochene\n"
+" Konvertierungen durch erneuten Aufruf fortgesetzt werden können.\n"
+"\n"
+" Die [Nutzernamen-Zuordnungsdatei] ist eine Textdatei die jeden Autor\n"
+" von Revisionen in der Quelle einem Ziel-Autor zuweist. Dies ist\n"
+" praktisch für VCS, die Unix-Login zur Identifikation von Autoren\n"
+" verwenden, wie z.B. CVS. Das Format ist pro Zeile::\n"
+"\n"
+" <Quellauthor>=<Zeichenkette, z.B. Email und Benutzername>\n"
+"\n"
+" Eine weitere Abbildungsdatei für Dateinamen erlaubt eine Filterung und\n"
+" Umbenennung von Dateien und Verzeichnissen. Kommentarzeilen beginnen "
+"mit\n"
+" einem #. Jede Zeile kann eine der folgenden Direktiven enthalten::\n"
+"\n"
+" include pfad/zu/datei\n"
+"\n"
+" exclude pfad/zu/datei\n"
+"\n"
+" rename von/datei zu/datei\n"
+"\n"
+" Ist eine \"include\" Direktive angegeben, so werden genau diese Dateien\n"
+" bzw. alle Dateien in diesen Verzeichnissen ins Zielarchiv übernommen\n"
+" alle anderen nicht. Durch die \"exclude\" Direktive werden solche\n"
+" Dateien oder Verzeichnisse angegeben, die nicht übernommen werden "
+"sollen.\n"
+" Und \"rename\" schliesslich benennt eine Datei oder Verzeichnis um.\n"
+" Um von einem Unterverzeichnis der Quelle in die Wurzel des Zielarchivs\n"
+" umzubenennen, kann '.' als Pfad der Zieldatei angegeben werden.\n"
+"\n"
+" Die Spleißdatei erlaubt die künstliche Einführung von Vorfahrver-\n"
+" bindungen. Die ist nützlich, wenn einer Zusammenführung unter "
+"Subversion\n"
+" der andere Vorfahr angegeben werden soll oder zwei ansonsten "
+"unabhängige\n"
+" Entwicklungslinien verbunden werden sollen. Jeder Eintrag enthält eine\n"
+" Revisions-ID des Quellarchivs, eine Leerstelle und eine oder (mit "
+"Komma)\n"
+" zwei Revisions-IDs, die als Vorfahren der ersten angenommen werden\n"
+" sollen. Wurde z.B. \"trunk\" mit \"release-1.0\" zusammengeführt, so\n"
+" sollte die Revision aus \"trunk\" als erster und die aus dem Zweig\n"
+" \"release-1.0\" als zweiter Vorfahr angegeben werden. Die Vorfahren-IDs\n"
+" können entweder im Format der Quelle oder des Ziels angegeben werden.\n"
+"\n"
+" Die Zweig-Abbildungsdatei erlaubt das Umbenennen von Zweigen. Zusammen\n"
+" mit der Spleißdatei können so auch sehr unorganisierte Archive in\n"
+" ein gute strukturiertes Mercurial-Archiv konvertiert werden.\n"
+" Die Zeilen dieser Datei sind von der Form \"original neuer_name\".\n"
+" Damit kann z.B. Code aus \"default\" eines Archivs in einen benannten\n"
+" Zweig des Ziels gebracht werden.\n"
+"\n"
+" Mercurial als Quelle\n"
+" --------------------\n"
+"\n"
+" --config convert.hg.ignoreerrors=False (boolean)\n"
+" Ignoriert Integritätsfehler beim Lesen. Wir benutzt um Mercurial-\n"
+" Archive ohne RevLog und eines mit RevLog zu konvertieren.\n"
+" --config convert.hg.saverev=False (boolean)\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\n"
+"\n"
+" CVS als Quelle\n"
+" --------------\n"
+"\n"
+" Mit CVS als Quelle wird eine Sandkastenumgebung (also eine "
+"Arbeitskopie)\n"
+" verwenden, um den Beginn der Konversion anzuzeigen. Direkter Zugriff\n"
+" auf das Archiv ist nicht nötig, es sei denn es ist ein :lokales: "
+"Archiv.\n"
+" Die Konversion sucht das CVS Verzeichnis in der Wurzel der Arbeitskopie\n"
+" und verwendet die CVS rlog Kommandos um alle Dateien für die Konversion\n"
+" zu finden. Wird also keine Abbildungsdatei für Dateinamen verwendet, so\n"
+" werden alle Dateien unterhalb des Startverzeichnisses konvertiert und\n"
+" jegliche Verzeichnis-Umordnung im Sandkasten ignoriert.\n"
+"\n"
+" Die oben folgenden Argumente entsprechend dem Standardaufruf.\n"
+"\n"
+" --config convert.cvsps.cache=True (boolean)\n"
+" Kann für Tests oder Debugging deaktiviert werden, um das Zwischen-\n"
+" speichern des Quell-Logbuchs zu unterbinden.\n"
+" --config convert.cvsps.fuzz=60 (Ganzzahl)\n"
+" Spezifiziert die maximale Zeit (in Sekunden) die zwischen einzelnen\n"
+" Dateiübernahmen mit selbem Benutzer und Meldung erlaubt sind, damit\n"
+" sie in den gleichen Änderungssatz übernommen werden. Wenn sehr\n"
+" große Dateien übernommen wurden, ist der Standard vielleicht zu "
+"klein.\n"
+" --config convert.cvsps.mergeto='{{mergetobranch ([-\\w]+)}}'\n"
+" Spezifiziert Zweignamen durch einen Regulären Ausdruck, auf die hin\n"
+" Versionsmeldungen untersucht werden. Bei Entsprechung 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 Zweignamen durch einen Regulären Ausdruck, auf die hin\n"
+" Versionsmeldungen untersucht werden. Bei Entsprechung wird die\n"
+" jüngste Revision des angegebenen Zweigs als zweiter Vorfahr der\n"
+" aktuellen Revision angenommen.\n"
+"\n"
+" Das zusätzliche Kommando \"debugcvsps\" erlaubt es, die Zusammenführung\n"
+" auch ohne Konversation ausführen. Die Parameter sind denen von cvsps "
+"2.1\n"
+" ähnlich. Für weitere Details siehe die Hilfe zu diesem Kommando.\n"
+"\n"
+" Subversion als Quelle\n"
+" ---------------------\n"
+"\n"
+" Die trunk/branch/tag Konvention von Subversion wird erkannt:\n"
+" Standardmäßig wird entweder die angegebene Quell-URL \"svn://repo/pfad"
+"\"\n"
+" oder ein Unterverzeichnis 'trunk' (falls dies existiert) als einzelner\n"
+" (default) Zweig angenommen. Wenn ein 'branches' Unterverzeichnis\n"
+" gefunden wird, so werden dessen Unterverzeichnisse als mögliche Zweige\n"
+" aufgenommen. Wenn 'tags' existiert, wird es auf Zweigverweise hin "
+"unter-\n"
+" sucht. Die Standardwerte 'trunk', 'branches' und 'tags' können mit den\n"
+" folgenden Optionen überschrieben werden. Sie können auf einen Pfad\n"
+" relativ zur Quell-URL gesetzt oder leer gelassen werden, um die\n"
+" automatische Erkennung zu verhindern.\n"
+"\n"
+" --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 Etiketten\n"
+" --config convert.svn.trunk=trunk (Verzeichnisname)\n"
+" Spezifiziert den Namen des Hauptzweigs\n"
+"\n"
+" Nur die Konversion von einzelnen Zweigen ist unterstützt. Die Quell-\n"
+" historie kann vollständig oder ab einer gegebenen Startrevision erfasst\n"
+" werden:\n"
+"\n"
+" --config convert.svn.startrev=0 (svn Revisionsnummer)\n"
+" Spezifiziert eine Startrevision\n"
+"\n"
+" Perforce als Quelle\n"
+" -------------------\n"
+"\n"
+" Der Perforce (P4) Importierer kann einen p4 Depotpfad oder eine Client-\n"
+" Spezifikation als Quelle annehmen. Alle Dateien werden in ein flaches\n"
+" Mercurial-Archiv konvertiert und ignoriert dabei Label, Zweige und\n"
+" Integrationen. Bei Angabe eines Depotpfads wollte auch ein Zielpfad\n"
+" genannt werden, da dieser sonst als ...-hg ausfallen kann.\n"
+"\n"
+" Es ist möglich die zu konvertierte Quellhistorie durch Angabe einer\n"
+" Startrevision zu begrenzen.\n"
+"\n"
+" --config convert.p4.startrev=0 (perforce changelist-Nummer)\n"
+" Spezifiziert eine Startrevision\n"
+"\n"
+" Mercurial als Ziel\n"
+" ------------------\n"
+"\n"
+" --config convert.hg.clonebranches=False (boolean)\n"
+" Lagert Quellzweige in separaten Klonen ab.\n"
+" --config convert.hg.tagsbranch=default (Zweigname)\n"
+" tag revisions branch name\n"
+" --config convert.hg.usebranchnames=True (boolean)\n"
+" Erhält die Zweignamen\n"
+"\n"
+" "
-msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
+#, fuzzy, python-format
+msgid "alias for: hg %s"
msgstr ""
-"Nutze \"hg help\" für eine Liste aller Befehle oder \"hg -v\" für Details"
-
-#, python-format
-msgid "use \"hg help %s\" to show the full help text"
-msgstr "Nutze \"hg -v help %s\" um den vollen Hilfetext anzuzeigen"
+"\n"
+"Aliase: %s\n"
#, 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"
+msgid "%s"
+msgstr ""
-#, python-format
+#, fuzzy, python-format
msgid ""
"\n"
-"use \"hg help -c %s\" to see help for the %s command\n"
-msgstr ""
-"\n"
-"Nutze \"hg help -c %s\" für die Hilfe zum Befehl %s\n"
+"use \"hg -v help %s\" to show verbose help\n"
+msgstr "Nutze \"hg -v help %s\" um globale Optionen anzuzeigen"
+
+msgid "options:\n"
+msgstr "Optionen:\n"
+
+msgid "no commands defined\n"
+msgstr "keine Befehle definiert\n"
msgid "no help text available"
msgstr "keine Hilfe verfügbar"
@@ -11432,57 +9713,43 @@ msgstr ""
msgid "'%s' is provided by the following extension:"
msgstr ""
-msgid "Topics"
-msgstr ""
-
-msgid "Extension Commands"
-msgstr "Erweiterungs-Kommandos"
-
msgid "Mercurial Distributed SCM\n"
msgstr ""
-msgid "identify the specified revision"
-msgstr "Identifiziert die angegebene Revision"
-
-msgid "show local revision number"
-msgstr "Zeigt die lokale Revisionsnummer"
+msgid "basic commands:"
+msgstr "Grundlegende Befehle:"
-msgid "show global revision id"
-msgstr "Zeigt die globale Revisions-ID"
+msgid "enabled extensions:"
+msgstr "Aktive Erweiterungen:"
-msgid "show branch"
-msgstr "Zeigt gegebenen Branch"
+msgid "VALUE"
+msgstr ""
-msgid "show tags"
-msgstr "Zeigt Tags"
+msgid "DEPRECATED"
+msgstr "VERALTET"
-msgid "show bookmarks"
-msgstr "Zeige Lesezeichen"
+msgid ""
+"\n"
+"[+] marked option can be specified multiple times"
+msgstr ""
+"\n"
+"Mit [+] markierte Optionen können mehrfach angegeben werden"
-msgid "[-nibtB] [-r REV] [SOURCE]"
-msgstr "[-nibtB] [-r REV] [QUELLE]"
+msgid ""
+"\n"
+"additional help topics:"
+msgstr ""
+"\n"
+"Zusätzliche Hilfethemen:"
msgid "identify the working copy or specified revision"
msgstr "Beschreibt die Arbeitskopie oder die angegebene Revision"
msgid ""
-" Print a summary identifying the repository state at REV using one or\n"
-" two parent hash identifiers, followed by a \"+\" if the working\n"
-" directory has uncommitted changes, the branch name (if not default),\n"
-" a list of tags, and a list of bookmarks."
-msgstr ""
-" Die Zusammenfassung beschreibt den Zustand des Projektarchivs unter\n"
-" Nutzung von ein oder zwei Prüfsummenbezeichnern, gefolgt von einem \"+"
-"\"\n"
-" falls unversionierte Änderungen im Arbeitsverzeichnis vorliegen. Zudem\n"
-" werden eine Liste der Tags und eine der Lesezeichen dieser Revision\n"
-" ausgegeben sowie der Zweigname falls nicht der 'default'-Zweig vorliegt."
-
-msgid ""
-" When REV is not given, print a summary of the current state of the\n"
+" With no revision, print a summary of the current state of the\n"
" repository."
msgstr ""
-" Ohne REV wird eine Zusammenfassung des aktuellen Status des\n"
+" Ohne Revision wird eine Zusammenfassung des aktuellen Status des\n"
" Projektarchivs angezeigt."
msgid ""
@@ -11492,57 +9759,22 @@ msgstr ""
" Mit einem Pfad auf ein Projektverzeichnis oder ein Bündel wird eine\n"
" Abfrage auf dies andere Archiv/Bündel ausgeführt."
-msgid " - generate a build identifier for the working directory::"
-msgstr ""
-
-msgid " hg id --id > build-id.dat"
-msgstr ""
-
-msgid " - find the revision corresponding to a tag::"
-msgstr ""
-
-msgid " hg id -n -r 1.3"
-msgstr ""
-
-msgid " - check the most recent revision of a remote repository::"
-msgstr " - Prüft die aktuellste Version eines entfernten Archivs::"
-
-msgid " hg id -r tip http://selenic.com/hg/"
-msgstr ""
-
-msgid "can't query remote revision number, branch, or tags"
-msgstr ""
-
+#, fuzzy
msgid ""
-"directory strip option for patch. This has the same meaning as the "
-"corresponding patch option"
-msgstr ""
-"Entfernt führende Verzeichnisnamen. Dies hat dieselbe Bedeutung wie die "
-"gleichnamige Option von patch"
-
-msgid "PATH"
-msgstr "PFAD"
-
-msgid "base path (DEPRECATED)"
-msgstr "Basispfad (VERALTET)"
-
-msgid "skip check for outstanding uncommitted changes"
-msgstr ""
-"überspringt die Überprüfungen auf ausstehende, unversionierte Änderungen"
-
-msgid "don't commit, just update the working directory"
-msgstr "Kein Commit, nur Aktualisierung des Arbeitsverzeichnisses"
-
-msgid "apply patch without touching the working directory"
-msgstr "Wendet Patch an ohne das Arbeitsverzeichnis zu verändern"
-
-msgid "apply patch to the nodes from which it was generated"
-msgstr "Wendet Patch auf die Knoten an, von denen er erstellt wurde"
-
-msgid "use any branch information in patch (implied by --exact)"
+" This summary identifies the repository state using one or two\n"
+" parent hash identifiers, followed by a \"+\" if there are\n"
+" uncommitted changes in the working directory, a list of tags for\n"
+" this revision and a branch name for non-default branches."
msgstr ""
+" Die Zusammenfassung beschreibt den Zustand des Projektarchivs unter\n"
+" Nutzung von ein oder zwei Prüfsummenbezeichnern, gefolgt von einem \"+"
+"\"\n"
+" falls unversionierte Änderungen im Arbeitsverzeichnis vorliegen. Zudem\n"
+" werden eine Liste von Tags dieser Revision ausgegeben und der Zweigname\n"
+" falls nicht der 'default'-Zweig vorliegt.\n"
+" "
-msgid "[OPTION]... PATCH..."
+msgid "can't query remote revision number, branch, tags, or bookmarks"
msgstr ""
msgid "import an ordered set of patches"
@@ -11577,13 +9809,14 @@ msgstr ""
"Patch\n"
" werden als Benutzername bzw. Versionsmeldung bei der Ãœbernahme verwendet."
+#, fuzzy
msgid ""
" If the imported patch was generated by :hg:`export`, user and\n"
" description from patch override values from message headers and\n"
" body. Values given on command line with -m/--message and -u/--user\n"
" override these."
msgstr ""
-" Falls der einzulesende Patch von :hg:`export` erzeugt wurde, werden\n"
+" Falls der einzulesende Patch von \"hg export\" erzeugt wurde, werden\n"
" Benutzername und Versionsmeldung aus dem Patch und nicht aus der Email\n"
" verwendet. Die Optionen -m/--message und -u/--user überschreiben aber\n"
" auch diese Angaben."
@@ -11603,19 +9836,13 @@ msgstr ""
" Problemen mit dem Patch Format), wird die Operation abgebrochen."
msgid ""
-" Use --bypass to apply and commit patches directly to the\n"
-" repository, not touching the working directory. Without --exact,\n"
-" patches will be applied on top of the working directory parent\n"
-" revision."
-msgstr ""
-
-msgid ""
" With -s/--similarity, hg will attempt to discover renames and\n"
-" copies in the patch in the same way as :hg:`addremove`."
+" copies in the patch in the same way as 'addremove'."
msgstr ""
" Mit der Option -s/--similarity werden Umbenennungen und Kopien auf\n"
-" gleiche Weise wie mit dem Befehl :hg:`addremove` erkannt."
+" gleiche Weise wie mit dem Befehl \"hg addremove\" erkannt."
+#, fuzzy
msgid ""
" To read a patch from standard input, use \"-\" as the patch name. If\n"
" a URL is specified, the patch will be downloaded from it.\n"
@@ -11624,86 +9851,29 @@ msgstr ""
" Um einen Patch von der Standardeingabe zu lesen, kann der Dateiname \"-"
"\"\n"
" verwendet werden. Falls eine URL angegeben ist, wird der Patch von dort\n"
-" heruntergeladen. Siehe :hg:`help dates` für eine Liste aller gültigen\n"
+" heruntergeladen. Siehe 'hg help dates' für eine Liste aller gültigen\n"
" Formate für -d/--date.\n"
" "
-msgid " - import a traditional patch from a website and detect renames::"
-msgstr ""
-
-msgid " hg import -s 80 http://example.com/bugfix.patch"
-msgstr ""
-
-msgid " - import a changeset from an hgweb server::"
-msgstr ""
-
-msgid " hg import http://www.selenic.com/hg/rev/5ca8c111e9aa"
-msgstr ""
-
-msgid " - import all the patches in an Unix-style mbox::"
-msgstr ""
-
-msgid " hg import incoming-patches.mbox"
-msgstr ""
-
-msgid ""
-" - attempt to exactly restore an exported changeset (not always\n"
-" possible)::"
-msgstr ""
-
-msgid " hg import --exact proposed-fix.patch"
-msgstr ""
-
-msgid "need at least one patch to import"
-msgstr "Benötigt mindestens einen Patchnamen zum Importieren"
-
-msgid "cannot use --no-commit with --bypass"
-msgstr ""
-
-msgid "cannot use --similarity with --bypass"
-msgstr ""
-
-msgid "patch is damaged or loses information"
-msgstr "Prüfsumme stimmt nicht überein: Patch beschädigt"
-
-msgid "applied to working directory"
-msgstr "Angewendet aufs Arbeitsverzeichnis"
+#, fuzzy
+msgid "to working directory"
+msgstr "Aktualisiert das Arbeitsverzeichnis"
msgid "not a Mercurial patch"
-msgstr "Kein Mercurial-Patch"
+msgstr "Kein Mercurial Patch"
-#. i18n: refers to a short changeset id
-#, python-format
-msgid "created %s"
-msgstr "erstellt %s"
+msgid "patch is damaged or loses information"
+msgstr "Prüfsumme stimmt nicht überein: Patch korrumpiert"
msgid "applying patch from stdin\n"
msgstr "Wende Patch von der Standardeingabe an\n"
-#, python-format
-msgid "%s: no diffs found"
-msgstr "%s: Keine Diffs gefunden"
-
-msgid "run even if remote repository is unrelated"
-msgstr "Auch ausführen, wenn das entfernte Projektarchiv keinen Bezug hat"
-
-msgid "show newest record first"
-msgstr "Zeigt neueste Änderung zuerst"
-
-msgid "file to store the bundles into"
-msgstr "Dateiname zum Speichern der Bündel"
-
-msgid "a remote changeset intended to be added"
-msgstr "Ein entfernter Änderungssatz, der hinzugefügt werden soll"
-
-msgid "compare bookmarks"
-msgstr "Vergleiche Lesezeichen"
-
-msgid "a specific branch you would like to pull"
-msgstr "Spezifischer Zweig, der geholt werden soll"
+#, fuzzy, python-format
+msgid "applied %s\n"
+msgstr "Wende %s an\n"
-msgid "[-p] [-n] [-M] [-f] [-r REV]... [--bundle FILENAME] [SOURCE]"
-msgstr "[-p] [-n] [-M] [-f] [-r REV]... [--bundle DATEINAME] [QUELLE]"
+msgid "no diffs found"
+msgstr "Keine Diffs gefunden"
msgid "show new changesets found in source"
msgstr "Zeigt neue Revisionen in einer externen Quelle an"
@@ -11724,23 +9894,24 @@ msgstr ""
"Änderungen\n"
" bei einem folgenden \"hg pull\" nicht ein zweites Mal geholt werden."
+#, fuzzy
msgid " See pull for valid source format details."
-msgstr " Siehe :hg:`help pull` für gültige Angaben für die Quelle."
+msgstr ""
+" Siehe \"hg help pull\" für gültige Angaben für die Quelle.\n"
+" "
msgid ""
" Returns 0 if there are incoming changes, 1 otherwise.\n"
" "
msgstr ""
+#, fuzzy
msgid "cannot combine --bundle and --subrepos"
-msgstr "Kann --bundle und --subrepos nicht kombinieren"
+msgstr "Neues Bündelarchiv kann nicht erzeugt werden"
msgid "remote doesn't support bookmarks\n"
msgstr "Quellarchiv unterstützt keine Lesezeichen\n"
-msgid "[-e CMD] [--remotecmd CMD] [DEST]"
-msgstr ""
-
msgid "create a new repository in the given directory"
msgstr "Erzeugt ein neues Projektarchiv im angegebenen Verzeichnis"
@@ -11754,24 +9925,14 @@ msgstr ""
msgid " If no directory is given, the current directory is used."
msgstr " Ist kein Zielverzeichnis angegeben, wird das aktuelle genutzt."
+#, fuzzy
msgid ""
" It is possible to specify an ``ssh://`` URL as the destination.\n"
" See :hg:`help urls` for more information."
msgstr ""
" Es ist möglich eine ``ssh://`` URL als Ziel anzugeben.\n"
-" Siehe :hg:`help urls` für mehr Informationen."
-
-msgid "search the repository as it is in REV"
-msgstr "Sucht in der Revision REV"
-
-msgid "end filenames with NUL, for use with xargs"
-msgstr "Beendet Dateinamen mit NUL zur Nutzung mit xargs"
-
-msgid "print complete paths from the filesystem root"
-msgstr "Gibt absolute Dateinamen aus"
-
-msgid "[OPTION]... [PATTERN]..."
-msgstr "[OPTION]... [MUSTER]..."
+" Siehe 'hg help urls' für mehr Informationen.\n"
+" "
msgid "locate files matching specific patterns"
msgstr "Suche Dateien mit bestimmtem Namen"
@@ -11797,6 +9958,7 @@ msgid ""
" of all files under Mercurial control in the working directory."
msgstr " Ohne angegebenes Suchmuster werden alle Dateinamen ausgegeben."
+#, fuzzy
msgid ""
" If you want to feed the output of this command into the \"xargs\"\n"
" command, use the -0 option to both this command and \"xargs\". This\n"
@@ -11807,7 +9969,8 @@ msgstr ""
" sollte die Option \"-0\" (Null) in beiden Befehle angegeben werden.\n"
" Dadurch werden die Dateinamen mit einem Null-Byte getrennt, was "
"Probleme\n"
-" mit Leerzeichen in Dateinamen vermeidet."
+" mit Leerzeichen in Dateinamen vermeidet.\n"
+" "
msgid "show revision history of entire repository or files"
msgstr "Zeigt die Revisionshistorie des Archivs oder von Dateien an"
@@ -11820,25 +9983,30 @@ msgstr ""
" Projektes aus."
msgid ""
-" 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."
-msgstr ""
-" Wird kein Revisionsbereich angegeben, so wird ``tip:0`` angenommen,\n"
-" außer --follow wurde angegeben. In dem Fall wird die Vorgängerversion\n"
-" des Arbeitsverzeichnis als Startversion genommen."
-
-msgid ""
" File history is shown without following rename or copy history of\n"
" files. Use -f/--follow with a filename to follow history across\n"
" renames and copies. --follow without a filename will only show\n"
-" ancestors or descendants of the starting revision."
+" ancestors or descendants of the starting revision. --follow-first\n"
+" only follows the first parent of merge revisions."
msgstr ""
" Die Dateihistorie wird angezeigt ohne der Umbenennungs- oder Kopier-\n"
" historie zu folgen. Bei Angabe von -f/--follow mit einem Dateinamen\n"
" wird die Historie über Kopien und Umbenennungen hinweg verfolgt.\n"
" --follow ohne Dateinamen wird nur Vorläufer und Nachfolger ab der\n"
-" Startrevision anzeigen."
+" Startrevision anzeigen. --follow-first folgt nur dem ersten Vorgänger\n"
+" einer Zusammenführungsversion."
+
+#, fuzzy
+msgid ""
+" 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."
+msgstr ""
+" Solle kein Revisionsbereich angegeben sein, wird tip:0 angenommen, "
+"außer\n"
+" --follow wurde angegeben. In diesem Fall wird die Vorgängerversion des\n"
+" Arbeitsverzeichnis als Startversion genommen."
msgid ""
" By default this command prints revision number and changeset id,\n"
@@ -11852,6 +10020,7 @@ msgstr ""
" des -v/--verbose Schalters, wird eine Liste aller geänderten Dateien\n"
" und die komplette Versionsmeldung angezeigt."
+#, fuzzy
msgid ""
" .. note::\n"
" log -p/--patch may generate unexpected diff output for merge\n"
@@ -11859,106 +10028,14 @@ msgid ""
" its first parent. Also, only files different from BOTH parents\n"
" will appear in files:."
msgstr ""
-" .. note::\n"
-" log -p/--patch kann ein unerwartetes Diff für Zusammenführungen\n"
-" erzeugen, da es standardmäßig die Zusammenführungsversion mit der\n"
-" ersten Vorgängerversion vergleicht. Auch in der Dateiliste werden\n"
-" nur Dateien berücksichtigt, die zu BEIDEN Vorgängernversionen\n"
-" verschieden sind:."
-
-msgid ""
-" .. note::\n"
-" for performance reasons, log FILE may omit duplicate changes\n"
-" made on branches and will not show deletions. To see all\n"
-" changes including duplicates and deletions, use the --removed\n"
-" switch."
-msgstr ""
-
-msgid " - changesets with full descriptions and file lists::"
-msgstr " - Änderungssätze mit vollen Beschreibungen und Dateilisten::"
-
-msgid " hg log -v"
-msgstr ""
-
-msgid " - changesets ancestral to the working directory::"
-msgstr ""
-" - Alle Änderungssätze, die Vorfahren des Arbeitsverzeichnisses sind"
-
-msgid " hg log -f"
-msgstr ""
-
-msgid " - last 10 commits on the current branch::"
-msgstr " - Die letzten 10 Revisionen des aktuellen Zweigs::"
-
-msgid " hg log -l 10 -b ."
-msgstr ""
-
-msgid ""
-" - changesets showing all modifications of a file, including removals::"
-msgstr ""
-
-msgid " hg log --removed file.c"
-msgstr ""
-
-msgid ""
-" - all changesets that touch a directory, with diffs, excluding merges::"
-msgstr ""
-" - Alle Änderungssätze die ein Verzeichnis betreffen, mit diffs ohne\n"
-" Zusammenführungen::"
-
-msgid " hg log -Mp lib/"
-msgstr ""
-
-msgid " - all revision numbers that match a keyword::"
-msgstr " - Die Nummern von Revisionen, die ein Schlüsselwort beinhalten::"
-
-msgid " hg log -k bug --template \"{rev}\\n\""
-msgstr ""
-
-msgid " - check if a given changeset is included is a tagged release::"
-msgstr ""
-
-msgid " hg log -r \"a21ccf and ancestor(1.9)\""
-msgstr ""
-
-msgid " - find all changesets by some user in a date range::"
-msgstr " - Alle Änderungen eines Benutzers innerhalb eines Intervalls::"
-
-msgid " hg log -k alice -d \"may 2008 to jul 2008\""
-msgstr ""
-
-msgid " - summary of all changesets after the last tag::"
-msgstr ""
-" - Zusammenfassung aller Änderungssätze seit dem letzten Etikett::"
-
-msgid ""
-" hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
-msgstr ""
-
-msgid ""
-" See :hg:`help revisions` and :hg:`help revsets` for more about\n"
-" specifying revisions."
-msgstr ""
-" Siehe :hg:`help revisions` und :hg:`help revsets` darüber, wie man\n"
-" Revisionen angeben kann."
-
-#, fuzzy
-msgid ""
-" See :hg:`help templates` for more about pre-packaged styles and\n"
-" specifying custom templates."
-msgstr ""
-" Siehe :hg:`help templates` für Informationen über Vorlagen und Filter.\n"
+" HINWEIS: log -p/--patch kann ein unerwartetes Diff für "
+"Zusammenführungen\n"
+" erzeugen, da es standardmäßig die Zusammenführungsversion mit der "
+"ersten\n"
+" Vorgängerversion vergleicht. Auch in der Dateiliste werden nur Dateien\n"
+" berücksichtigt, die zu BEIDEN Vorgängernversionen verschieden sind.\n"
" "
-msgid "revision to display"
-msgstr "Auszugebende Revision"
-
-msgid "list files from all revisions"
-msgstr "Listet Dateien aller Revisionen"
-
-msgid "[-r REV]"
-msgstr ""
-
msgid "output the current or given revision of the project manifest"
msgstr "Gibt das Manifest der angegebenen oder aktuellen Revision aus"
@@ -11973,6 +10050,7 @@ msgstr ""
" Vorgängerversion des Arbeitsverzeichnis genutzt oder die Spitze (tip)\n"
" falls keine Revision ausgecheckt ist."
+#, fuzzy
msgid ""
" With -v, print file permissions, symlink and executable bits.\n"
" With --debug, print file revision hashes."
@@ -11983,26 +10061,6 @@ msgstr ""
" die Prüfsumme.\n"
" "
-msgid ""
-" If option --all is specified, the list of all files from all revisions\n"
-" is printed. This includes deleted and renamed files."
-msgstr ""
-
-msgid "can't specify a revision with --all"
-msgstr "Kann nicht eine bestimmte Revision und --all gleichzeitig angeben"
-
-msgid "force a merge with outstanding changes"
-msgstr "Erzwingt einen Merge mit ausstehenden Änderungen"
-
-msgid "revision to merge"
-msgstr "zu mergende Revision"
-
-msgid "review revisions to merge (no merge is performed)"
-msgstr ""
-
-msgid "[-P] [-f] [[-r] REV]"
-msgstr "[-P] [-f] [[-r] REV]"
-
msgid "merge working directory with another revision"
msgstr "Führt das Arbeitsverzeichnis mit einer anderen Revision zusammen"
@@ -12027,9 +10085,10 @@ msgstr ""
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. See :hg:`help merge-tools` for options."
+" configuration files."
msgstr ""
+#, fuzzy
msgid ""
" If no revision is specified, the working directory's parent is a\n"
" head revision, and the current branch contains exactly one other\n"
@@ -12042,10 +10101,12 @@ msgstr ""
" dann wird der andere Kopf für die Zusammenführung verwendet.\n"
" Bei mehr oder weniger als zwei Köpfen im Zweig muss eine andere "
"Revision\n"
-" explizit angegeben werden."
+" explizit angegeben werden.\n"
+" "
+#, fuzzy
msgid " :hg:`resolve` must be used to resolve unresolved files."
-msgstr " Konflikte müssen erst mit :hg:`resolve` gelöst werden."
+msgstr "Nutze 'hg resolve', um ungelöste Merges zu wiederholen\n"
msgid ""
" To undo an uncommitted merge, use :hg:`update --clean .` which\n"
@@ -12057,61 +10118,32 @@ msgid ""
" Returns 0 on success, 1 if there are unresolved files.\n"
" "
msgstr ""
-" Gibt 0 bei Erfolg zurück, 1 wenn ungelöste Konflikte auftraten.\n"
-" "
-
-msgid ""
-"multiple matching bookmarks to merge - please merge with an explicit rev or "
-"bookmark"
-msgstr ""
-"Mehrere passende Lesezeichen zum Zusammenführen gefunden. Bitte wählen Sie "
-"eine explizite Revision oder ein Lesezeichen"
-
-msgid "run 'hg heads' to see all heads"
-msgstr "'hg heads' zeigt alle Köpfe"
+#, fuzzy, python-format
msgid ""
-"no matching bookmark to merge - please merge with an explicit rev or bookmark"
-msgstr ""
-"Kein passendes Lesezeichen zum Zusammenführen gefunden. Bitte wählen Sie "
-"eine explizite Revision oder ein Lesezeichen"
-
-#, python-format
-msgid "branch '%s' has %d heads - please merge with an explicit rev"
+"branch '%s' has %d heads - please merge with an explicit rev\n"
+"(run 'hg heads .' to see heads)"
msgstr "Zweig '%s' hat %d Köpfe - Bitte wähle eine explizite Revision"
-msgid "run 'hg heads .' to see heads"
-msgstr "'hg heads .' zeigt Köpfe"
-
-msgid "heads are bookmarked - please merge with an explicit rev"
-msgstr ""
-"Es existieren Lesezeichen für die Köpfe. Bitte geben Sie explizit eine "
-"Revision an"
-
-#, python-format
-msgid "branch '%s' has one head - please merge with an explicit rev"
+#, fuzzy, python-format
+msgid ""
+"branch '%s' has one head - please merge with an explicit rev\n"
+"(run 'hg heads' to see all heads)"
msgstr "Zweig '%s' hat einen Kopf - Bitte wähle eine explizite Revision"
-msgid "nothing to merge"
+msgid "there is nothing to merge"
msgstr "Es gibt nichts zum Zusammenführen"
-msgid "use 'hg update' instead"
-msgstr "Nutze stattdessen 'hg update'"
-
-msgid "working directory not at a head revision"
-msgstr "Arbeitsverzeichnis ist nicht auf Stand der Kopfversion"
-
-msgid "use 'hg update' or merge with an explicit revision"
-msgstr "Verwende 'hg update' oder führe mit einer expliziten Revision zusammen"
-
-msgid "a changeset intended to be included in the destination"
-msgstr "Ein Änderungssatz, den das Ziel einschliessen soll"
-
-msgid "a specific branch you would like to push"
-msgstr "Revision, die geschoben werden soll"
+#, python-format
+msgid "%s - use \"hg update\" instead"
+msgstr "%s - Nutze \"hg update\" stattdessen"
-msgid "[-M] [-p] [-n] [-f] [-r REV]... [DEST]"
-msgstr "[-M] [-p] [-n] [-f] [-r REV]... [ZIEL]"
+msgid ""
+"working dir not at a head rev - use \"hg update\" or merge with an explicit "
+"rev"
+msgstr ""
+"Arbeitsverzeichnis ist keine Kopfversion - Nutze \"hg update\" oder gib eine "
+"explizite Revision an"
msgid "show changesets not found in the destination"
msgstr "Zeigt Änderungssätze, die nicht im Zielarchiv sind"
@@ -12125,23 +10157,21 @@ msgstr ""
" Zielarchiv oder dem Standardziel vorhanden sind. Dies sind genau jene,\n"
" die durch ein 'hg push' übertragen werden würden."
+#, fuzzy
msgid " See pull for details of valid destination formats."
-msgstr " Siehe Hilfe zu 'pull' für das Format der Zieladresse."
+msgstr ""
+" Siehe Hilfe zu 'pull' für das Format der Zieladresse.\n"
+" "
msgid ""
" Returns 0 if there are outgoing changes, 1 otherwise.\n"
" "
msgstr ""
-msgid "show parents of the specified revision"
-msgstr "Zeigt die Vorgänger der angegeben Revision"
-
-msgid "[-r REV] [FILE]"
-msgstr "[-r REV] [DATEI]"
-
msgid "show the parents of the working directory or revision"
msgstr "Zeigt die Vorgänger des Arbeitsverzeichnisses oder einer Revision"
+#, fuzzy
msgid ""
" Print the working directory's parent revisions. If a revision is\n"
" given via -r/--rev, the parent of that revision will be printed.\n"
@@ -12154,7 +10184,8 @@ msgstr ""
" Version ausgegeben. Bei Angabe einer Datei wird die Version\n"
" ausgegeben, in der diese Datei zuletzt geändert wurde (noch vor der\n"
" Version des Arbeitsverzeichnisses oder dem Argument zu --rev falls\n"
-" angegeben)."
+" angegeben).\n"
+" "
msgid "can only specify an explicit filename"
msgstr "Ein expliziter Dateiname muss angegeben werden"
@@ -12163,9 +10194,6 @@ msgstr "Ein expliziter Dateiname muss angegeben werden"
msgid "'%s' not found in manifest!"
msgstr "'%s' nicht im Manifest gefunden!"
-msgid "[NAME]"
-msgstr "[NAME]"
-
msgid "show aliases for remote repositories"
msgstr "Zeigt Adresse für Aliasnamen von entfernten Projektarchiven an"
@@ -12177,20 +10205,15 @@ msgstr ""
"gegeben\n"
" ist, werden alle Alias-Definitionen angezeigt."
-msgid ""
-" Option -q/--quiet suppresses all output when searching for NAME\n"
-" and shows only the path names when listing all definitions."
-msgstr ""
-
+#, fuzzy
msgid ""
" Path names are defined in the [paths] section of your\n"
" configuration file and in ``/etc/mercurial/hgrc``. If run inside a\n"
" repository, ``.hg/hgrc`` is used, too."
msgstr ""
-" Kurznamen für entfernte Archive werden im Abschnitt [paths] der\n"
-" Konfigurationsdatei und ``/etc/mercurial/hgrc`` definiert. Wenn der\n"
-" Befehl in einem Projektarchiv ausgeführt wird, wird auch die Datei\n"
-" ``.hg/hgrc`` durchsucht."
+" Kurznamen für entfernte Archive werden im Abschnitt [paths] der Dateien\n"
+" /etc/mercurial/hgrc und $HOME/.hgrc definiert. Wenn der Befehl in einem\n"
+" Projektarchiv ausgeführt wird, wird auch die .hg/hgrc durchsucht."
msgid ""
" The path names ``default`` and ``default-push`` have a special\n"
@@ -12205,192 +10228,212 @@ msgid ""
" :hg:`bundle`) operations."
msgstr ""
-msgid " See :hg:`help urls` for more information."
-msgstr " Siehe auch :hg:`help urls` für das Format von Adressangaben."
-
-msgid "not found!\n"
-msgstr "nicht gefunden!\n"
-
-msgid "set changeset phase to public"
-msgstr ""
-
-msgid "set changeset phase to draft"
-msgstr ""
-
-msgid "set changeset phase to secret"
-msgstr ""
-
-msgid "allow to move boundary backward"
-msgstr ""
-
-msgid "target revision"
-msgstr ""
-
-msgid "[-p|-d|-s] [-f] [-r] REV..."
-msgstr ""
-
-msgid "set or show the current phase name"
-msgstr ""
-
-msgid " With no argument, show the phase name of specified revisions."
-msgstr ""
-
-msgid ""
-" With one of -p/--public, -d/--draft or -s/--secret, change the\n"
-" phase value of the specified revisions."
-msgstr ""
-
-msgid ""
-" Unless -f/--force is specified, :hg:`phase` won't move changeset from a\n"
-" lower phase to an higher phase. Phases are ordered as follows::"
-msgstr ""
-
-msgid " public < draft < secret"
-msgstr ""
-
#, fuzzy
-msgid ""
-" Return 0 on success, 1 if no phases were changed or some could not\n"
-" be changed.\n"
-" "
+msgid " See :hg:`help urls` for more information."
msgstr ""
-" Gibt 0 bei Erfolg zurück, 1 wenn keine Änderungen gefunden wurden.\n"
+" Siehe auch 'hg help urls' für das Format von Adressangaben.\n"
" "
-msgid "only one phase can be specified"
-msgstr ""
-
-#, python-format
-msgid "cannot move %i changesets to a more permissive phase, use --force\n"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "phase changed for %i changesets\n"
-msgstr "Suche nach Änderungen\n"
-
-msgid "no phases changed\n"
-msgstr ""
+msgid "not found!\n"
+msgstr "nicht gefunden!\n"
-#, python-format
-msgid "not updating: %s\n"
-msgstr "aktualisiere nicht: %s\n"
+msgid "not updating, since new heads added\n"
+msgstr "Aktualisierung nicht durchgeführt, da neue Köpfe hinzugefügt wurden\n"
msgid "(run 'hg heads' to see heads, 'hg merge' to merge)\n"
msgstr ""
"(\"hg heads\" zeigt alle Köpfe, nutze \"hg merge\" um sie zusammenzuführen)\n"
-msgid "(run 'hg heads .' to see heads, 'hg merge' to merge)\n"
-msgstr ""
-"('hg heads' zeigt alle Köpfe, nutze 'hg merge' um sie zusammenzuführen)\n"
-
-msgid "(run 'hg heads' to see heads)\n"
-msgstr "('hg heads' zeigt alle Köpfe)\n"
-
msgid "(run 'hg update' to get a working copy)\n"
msgstr "(führe \"hg update\" aus, um ein Arbeitsverzeichnis zu erstellen)\n"
-msgid "update to new branch head if changesets were pulled"
-msgstr "Auf neuen Zweigkopf aktualisieren, falls Änderungssätze geholt wurden"
-
-msgid "run even when remote repository is unrelated"
-msgstr "Auch ausführen, wenn das entfernte Projektarchiv keinen Bezug hat"
-
-msgid "BOOKMARK"
-msgstr "LESEZEICHEN"
-
-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 "pull changes from the specified source"
-msgstr "Ruft Änderungen von der angegebenen Quelle ab"
+msgstr ""
+"Holt Änderungen aus dem angegebenen Projektarchiv\n"
+"\n"
+" Überträgt Änderungen aus einem entfernten Archiv in das lokale.\n"
+"\n"
+" Dabei werden alle Änderungen vom Archiv am angegebenen Pfad oder\n"
+" URL gesucht und dem lokalen Archiv hinzugefügt. Standardmäßig\n"
+" wird die Kopie des Projektes im Arbeitsverzeichnis nicht aktualisiert.\n"
+"\n"
+" Um zu sehen, was beim nächsten 'pull' geholt würde, ohne dem Archiv\n"
+" tatsächlich Änderungen hinzuzufügen, nutze \"hg incoming\". Wenn diese\n"
+" dann hinzugefügt werden sollen, kann man mit \"pull -r X\" als X der\n"
+" letzte von incoming gezeigte Änderungssatz angegeben werden.\n"
+" Ohne Angabe der QUELLE wird standardmäßig der 'default'-Pfad genutzt.\n"
+" Siehe Hilfe zu 'paths' zu Pfad-Kurznamen und 'urls' für erlaubte\n"
+" Formate für die Quellangabe.\n"
+" "
+#, fuzzy
msgid " Pull changes from a remote repository to a local one."
-msgstr " Überträgt Änderungen aus einem entfernten Archiv in das lokale."
+msgstr ""
+"Holt Änderungen aus dem angegebenen Projektarchiv\n"
+"\n"
+" Überträgt Änderungen aus einem entfernten Archiv in das lokale.\n"
+"\n"
+" Dabei werden alle Änderungen vom Archiv am angegebenen Pfad oder\n"
+" URL gesucht und dem lokalen Archiv hinzugefügt. Standardmäßig\n"
+" wird die Kopie des Projektes im Arbeitsverzeichnis nicht aktualisiert.\n"
+"\n"
+" Um zu sehen, was beim nächsten 'pull' geholt würde, ohne dem Archiv\n"
+" tatsächlich Änderungen hinzuzufügen, nutze \"hg incoming\". Wenn diese\n"
+" dann hinzugefügt werden sollen, kann man mit \"pull -r X\" als X der\n"
+" letzte von incoming gezeigte Änderungssatz angegeben werden.\n"
+" Ohne Angabe der QUELLE wird standardmäßig der 'default'-Pfad genutzt.\n"
+" Siehe Hilfe zu 'paths' zu Pfad-Kurznamen und 'urls' für erlaubte\n"
+" Formate für die Quellangabe.\n"
+" "
+#, fuzzy
msgid ""
" This finds all changes from the repository at the specified path\n"
" or URL and adds them to a local repository (the current one unless\n"
" -R is specified). By default, this does not update the copy of the\n"
" project in the working directory."
msgstr ""
+"Holt Änderungen aus dem angegebenen Projektarchiv\n"
+"\n"
+" Überträgt Änderungen aus einem entfernten Archiv in das lokale.\n"
+"\n"
" Dabei werden alle Änderungen vom Archiv am angegebenen Pfad oder\n"
-" URL gesucht und dem lokalen Archiv hinzugefügt (das aktuelle, oder das\n"
-" mit -R gegebene). Standardmäßig wird die Kopie des Projektes im\n"
-" Arbeitsverzeichnis nicht aktualisiert."
+" URL gesucht und dem lokalen Archiv hinzugefügt. Standardmäßig\n"
+" wird die Kopie des Projektes im Arbeitsverzeichnis nicht aktualisiert.\n"
+"\n"
+" Um zu sehen, was beim nächsten 'pull' geholt würde, ohne dem Archiv\n"
+" tatsächlich Änderungen hinzuzufügen, nutze \"hg incoming\". Wenn diese\n"
+" dann hinzugefügt werden sollen, kann man mit \"pull -r X\" als X der\n"
+" letzte von incoming gezeigte Änderungssatz angegeben werden.\n"
+" Ohne Angabe der QUELLE wird standardmäßig der 'default'-Pfad genutzt.\n"
+" Siehe Hilfe zu 'paths' zu Pfad-Kurznamen und 'urls' für erlaubte\n"
+" Formate für die Quellangabe.\n"
+" "
+#, fuzzy
msgid ""
" Use :hg:`incoming` if you want to see what would have been added\n"
" by a pull at the time you issued this command. If you then decide\n"
" 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 ""
+"Holt Änderungen aus dem angegebenen Projektarchiv\n"
+"\n"
+" Überträgt Änderungen aus einem entfernten Archiv in das lokale.\n"
+"\n"
+" Dabei werden alle Änderungen vom Archiv am angegebenen Pfad oder\n"
+" URL gesucht und dem lokalen Archiv hinzugefügt. Standardmäßig\n"
+" wird die Kopie des Projektes im Arbeitsverzeichnis nicht aktualisiert.\n"
+"\n"
" Um zu sehen, was beim nächsten 'pull' geholt würde, ohne dem Archiv\n"
-" tatsächlich Änderungen hinzuzufügen, nutze :hg:`incoming`. Wenn diese\n"
-" dann hinzugefügt werden sollen, kann mit :hg:`pull -r X` als X der\n"
-" letzte von incoming gezeigte Änderungssatz angegeben werden."
+" tatsächlich Änderungen hinzuzufügen, nutze \"hg incoming\". Wenn diese\n"
+" dann hinzugefügt werden sollen, kann man mit \"pull -r X\" als X der\n"
+" letzte von incoming gezeigte Änderungssatz angegeben werden.\n"
+" Ohne Angabe der QUELLE wird standardmäßig der 'default'-Pfad genutzt.\n"
+" Siehe Hilfe zu 'paths' zu Pfad-Kurznamen und 'urls' für erlaubte\n"
+" Formate für die Quellangabe.\n"
+" "
+#, fuzzy
msgid ""
" If SOURCE is omitted, the 'default' path will be used.\n"
" See :hg:`help urls` for more information."
msgstr ""
+"Holt Änderungen aus dem angegebenen Projektarchiv\n"
+"\n"
+" Überträgt Änderungen aus einem entfernten Archiv in das lokale.\n"
+"\n"
+" Dabei werden alle Änderungen vom Archiv am angegebenen Pfad oder\n"
+" URL gesucht und dem lokalen Archiv hinzugefügt. Standardmäßig\n"
+" wird die Kopie des Projektes im Arbeitsverzeichnis nicht aktualisiert.\n"
+"\n"
+" Um zu sehen, was beim nächsten 'pull' geholt würde, ohne dem Archiv\n"
+" tatsächlich Änderungen hinzuzufügen, nutze \"hg incoming\". Wenn diese\n"
+" dann hinzugefügt werden sollen, kann man mit \"pull -r X\" als X der\n"
+" letzte von incoming gezeigte Änderungssatz angegeben werden.\n"
" Ohne Angabe der QUELLE wird standardmäßig der 'default'-Pfad genutzt.\n"
" Siehe Hilfe zu 'paths' zu Pfad-Kurznamen und 'urls' für erlaubte\n"
-" Formate für die Quellangabe."
+" Formate für die Quellangabe.\n"
+" "
msgid ""
" Returns 0 on success, 1 if an update had unresolved files.\n"
" "
msgstr ""
-" Gibt 0 bei Erfolg zurück, 1 bei Konfliken während der Aktualisierung.\n"
-" "
#, 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 "
"specified."
msgstr ""
-"Das andere Projektarchiv unterstützt keine Revisionsabfragen, daher kann\n"
+"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 "force push"
-msgstr "Erzwingt Push"
-
-msgid "bookmark to push"
-msgstr "Zu exportierendes Lesezeichen"
-
-msgid "allow pushing a new branch"
-msgstr ""
-
-msgid "[-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]"
-msgstr "[-f] [-r REV]... [-e BEFEHL] [--remotecmd BEFEHL] [ZIEL]"
-
msgid "push changes to the specified destination"
-msgstr "Überträgt lokale Änderungen zum angegebenen Ziel"
+msgstr ""
+"Überträgt lokale Änderungen in das angegebene Ziel\n"
+"\n"
+" Dies ist das Gegenteil der 'pull' Operation. Die lokalen Änderungen\n"
+" des aktuellen Archivs werden in ein anderes übertragen. Bei lokalem\n"
+" Ziel ist diese Aktion identisch zu einem 'hg pull' von diesem Archiv "
+"zum\n"
+" aktuellen.\n"
+"\n"
+" Im Regelfall wird \"hg push\" die Ausführung verweigern, wenn das\n"
+" Resultat die Anzahl der Kopfversionen im entfernten Archiv erhöht, da\n"
+" dies normalerweise bedeutet, dass der Nutzer vergessen hat vor der\n"
+" Übertragung die entfernten Änderungen zu holen und zusammenzuführen.\n"
+"\n"
+" Bei Nutzung von -r/--rev wird die benannte Revision mit allen "
+"Vorgängern\n"
+" in das entfernte Archiv übertragen.\n"
+"\n"
+" Für wichtige Details zu ``ssh://``-URLS kann die URL-Hilfe zu Rate "
+"gezogen\n"
+" werden. Beim Weglassen des ZIELs wird standardmäßig der 'default'-Pfad\n"
+" genutzt. Weitere Hilfe gibt unter 'hg help urls'.\n"
+" "
+#, fuzzy
msgid ""
" Push changesets from the local repository to the specified\n"
" destination."
-msgstr " Überträgt lokale Änderungen in das angegebene Ziel."
-
-msgid ""
-" This operation is symmetrical to pull: it is identical to a pull\n"
-" in the destination repository from the current one."
msgstr ""
+"Überträgt lokale Änderungen in das angegebene Ziel\n"
+"\n"
" Dies ist das Gegenteil der 'pull' Operation. Die lokalen Änderungen\n"
" des aktuellen Archivs werden in ein anderes übertragen. Bei lokalem\n"
" Ziel ist diese Aktion identisch zu einem 'hg pull' von diesem Archiv "
"zum\n"
-" aktuellen."
+" aktuellen.\n"
+"\n"
+" Im Regelfall wird \"hg push\" die Ausführung verweigern, wenn das\n"
+" Resultat die Anzahl der Kopfversionen im entfernten Archiv erhöht, da\n"
+" dies normalerweise bedeutet, dass der Nutzer vergessen hat vor der\n"
+" Übertragung die entfernten Änderungen zu holen und zusammenzuführen.\n"
+"\n"
+" Bei Nutzung von -r/--rev wird die benannte Revision mit allen "
+"Vorgängern\n"
+" in das entfernte Archiv übertragen.\n"
+"\n"
+" Für wichtige Details zu ``ssh://``-URLS kann die URL-Hilfe zu Rate "
+"gezogen\n"
+" werden. Beim Weglassen des ZIELs wird standardmäßig der 'default'-Pfad\n"
+" genutzt. Weitere Hilfe gibt unter 'hg help urls'.\n"
+" "
+
+msgid ""
+" This operation is symmetrical to pull: it is identical to a pull\n"
+" in the destination repository from the current one."
+msgstr ""
msgid ""
" By default, push will not allow creation of new heads at the\n"
@@ -12398,49 +10441,78 @@ msgid ""
" to use. In this situation, it is recommended to pull and merge\n"
" before pushing."
msgstr ""
-" Im Regelfall wird \"push\" die Ausführung verweigern, wenn das\n"
-" Resultat die Anzahl der Kopfversionen im entfernten Archiv erhöht, da\n"
-" dies normalerweise bedeutet, dass der Nutzer vergessen hat, vor der\n"
-" Übertragung die entfernten Änderungen zu holen und zusammenzuführen."
msgid ""
" Use --new-branch if you want to allow push to create a new named\n"
" branch that is not present at the destination. This allows you to\n"
" only create a new branch without forcing other changes."
msgstr ""
-" Der Schalter --new-branch erlaubt es, einen neuen Zweig in das Ziel\n"
-" zu schieben. Damit kann diese gewünschte Operation erlaubt, aber\n"
-" jede andere Kopferstellung verboten werden."
msgid ""
" Use -f/--force to override the default behavior and push all\n"
" changesets on all branches."
msgstr ""
-" Nutze -f/--force um diese Vorkehrungen abzuschalten und alle Änderungs-\n"
-" sätze zu übertragen."
+#, fuzzy
msgid ""
" If -r/--rev is used, the specified revision and all its ancestors\n"
" will be pushed to the remote repository."
msgstr ""
+"Überträgt lokale Änderungen in das angegebene Ziel\n"
+"\n"
+" Dies ist das Gegenteil der 'pull' Operation. Die lokalen Änderungen\n"
+" des aktuellen Archivs werden in ein anderes übertragen. Bei lokalem\n"
+" Ziel ist diese Aktion identisch zu einem 'hg pull' von diesem Archiv "
+"zum\n"
+" aktuellen.\n"
+"\n"
+" Im Regelfall wird \"hg push\" die Ausführung verweigern, wenn das\n"
+" Resultat die Anzahl der Kopfversionen im entfernten Archiv erhöht, da\n"
+" dies normalerweise bedeutet, dass der Nutzer vergessen hat vor der\n"
+" Übertragung die entfernten Änderungen zu holen und zusammenzuführen.\n"
+"\n"
" Bei Nutzung von -r/--rev wird die benannte Revision mit allen "
"Vorgängern\n"
-" in das entfernte Archiv übertragen."
+" in das entfernte Archiv übertragen.\n"
+"\n"
+" Für wichtige Details zu ``ssh://``-URLS kann die URL-Hilfe zu Rate "
+"gezogen\n"
+" werden. Beim Weglassen des ZIELs wird standardmäßig der 'default'-Pfad\n"
+" genutzt. Weitere Hilfe gibt unter 'hg help urls'.\n"
+" "
+#, fuzzy
msgid ""
" Please see :hg:`help urls` for important details about ``ssh://``\n"
" URLs. If DESTINATION is omitted, a default path will be used."
msgstr ""
-" Siehe :hg:`help urls` für wichtige Details zu ``ssh://``-URLS.\n"
-" Beim Weglassen von ZIEL wird standardmäßig der 'default'-Pfad\n"
-" genutzt."
+"Überträgt lokale Änderungen in das angegebene Ziel\n"
+"\n"
+" Dies ist das Gegenteil der 'pull' Operation. Die lokalen Änderungen\n"
+" des aktuellen Archivs werden in ein anderes übertragen. Bei lokalem\n"
+" Ziel ist diese Aktion identisch zu einem 'hg pull' von diesem Archiv "
+"zum\n"
+" aktuellen.\n"
+"\n"
+" Im Regelfall wird \"hg push\" die Ausführung verweigern, wenn das\n"
+" Resultat die Anzahl der Kopfversionen im entfernten Archiv erhöht, da\n"
+" dies normalerweise bedeutet, dass der Nutzer vergessen hat vor der\n"
+" Übertragung die entfernten Änderungen zu holen und zusammenzuführen.\n"
+"\n"
+" Bei Nutzung von -r/--rev wird die benannte Revision mit allen "
+"Vorgängern\n"
+" in das entfernte Archiv übertragen.\n"
+"\n"
+" Für wichtige Details zu ``ssh://``-URLS kann die URL-Hilfe zu Rate "
+"gezogen\n"
+" werden. Beim Weglassen des ZIELs wird standardmäßig der 'default'-Pfad\n"
+" genutzt. Weitere Hilfe gibt unter 'hg help urls'.\n"
+" "
msgid ""
" Returns 0 if push was successful, 1 if nothing to push.\n"
" "
msgstr ""
-" Gibt 0 bei Erfolg zurück, 1 wenn nichts übertragen wurde.\n"
-" "
#, python-format
msgid "pushing to %s\n"
@@ -12469,6 +10541,7 @@ msgid " Recover from an interrupted commit or pull."
msgstr ""
" Setzt ein unterbrochenes Übernehmen (commit) oder Abholen (pull) zurück."
+#, fuzzy
msgid ""
" This command tries to fix the repository status after an\n"
" interrupted operation. It should only be necessary when Mercurial\n"
@@ -12476,117 +10549,92 @@ msgid ""
msgstr ""
" Der ungültige Status durch die Unterbrechung wird repariert. Dies "
"sollte\n"
-" nur dann nötig sein, wenn eine Meldung von Mercurial es vorschlägt."
+" nur dann nötig sein, wenn eine Meldung von Mercurial es vorschlägt.\n"
+" "
msgid ""
" Returns 0 if successful, 1 if nothing to recover or verify fails.\n"
" "
msgstr ""
-msgid "record delete for missing files"
-msgstr "Protokolliert die Löschung fehlender Dateien"
-
-msgid "remove (and delete) file even if added or modified"
-msgstr "Entfernt (und löscht) Datei sogar wenn hinzugefügt oder modifiziert"
-
msgid "remove the specified files on the next commit"
msgstr "Entfernt die angegebenen Dateien in der nächsten Version"
-msgid " Schedule the indicated files for removal from the current branch."
-msgstr ""
-" Merkt die benannten Dateien für Entfernung aus dem aktuellen Zweig vor."
+msgid " Schedule the indicated files for removal from the repository."
+msgstr " Merkt die benannten Dateien für die Entfernung aus dem Archiv vor."
msgid ""
-" This command schedules the files to be removed at the next commit.\n"
-" To undo a remove before that, see :hg:`revert`. To undo added\n"
-" files, see :hg:`forget`."
-msgstr ""
-" Die Dateien werden im Projektarchiv beim nächsten Übernehmen (commit)\n"
-" entfernt. Um diese Aktion vorher rückgängig zu machen, siehe\n"
-" :hg:`revert`. Um das Hinzufügen von Dateien rückgängig zu machen, siehe\n"
-" :hg:`forget`."
-
-msgid ""
-" -A/--after can be used to remove only files that have already\n"
-" been deleted, -f/--force can be used to force deletion, and -Af\n"
-" can be used to remove files from the next revision without\n"
-" deleting them from the working directory."
+" This only removes files from the current branch, not from the\n"
+" entire project history. -A/--after can be used to remove only\n"
+" files that have already been deleted, -f/--force can be used to\n"
+" force deletion, and -Af can be used to remove files from the next\n"
+" revision without deleting them from the working directory."
msgstr ""
-" Option -A/--after kann genutzt werden, um Dateien zu entfernen, die\n"
-" bereits gelöscht wurden, -f/--force kann genutzt werden, um die\n"
-" Löschung zu erzwingen. -Af entfernt Dateien aus der nächsten "
-"Revision,\n"
-" ohne sie im Arbeitsverzeichnis zu löschen"
+" Dabei werden nur Dateien aus dem aktuellen Zweig gelöscht, nicht aus\n"
+" der gesamten Projekthistorie. Option -A/--after kann genutzt werden,\n"
+" um Dateien zu entfernen, die bereits gelöscht wurden, -f/--force kann\n"
+" genutzt werden, um die Löschung zu erzwingen. -Af entfernt Dateien aus\n"
+" der nächsten Revision, ohne sie zu löschen"
+#, fuzzy
msgid ""
-" The following table details the behavior of remove for different\n"
-" file states (columns) and option combinations (rows). The file\n"
-" states are Added [A], Clean [C], Modified [M] and Missing [!]\n"
-" (as reported by :hg:`status`). The actions are Warn, Remove\n"
-" (from branch) and Delete (from disk):"
+" The following table details the behavior of remove for different\n"
+" file states (columns) and option combinations (rows). The file\n"
+" states are Added [A], Clean [C], Modified [M] and Missing [!] (as\n"
+" reported by :hg:`status`). The actions are Warn, Remove (from\n"
+" branch) and Delete (from disk)::"
msgstr ""
-" Die folgende Tabelle beschreibt detailliert das Verhalten von "
-"'remove'\n"
-" für unterschiedliche Dateizustände (Spalten) und Optionskombinationen\n"
-" (Reihen). Die Dateizustände sind Hinzugefügt (A), Unverändert (C),\n"
-" Verändert (M) und Fehlend (!) (wie von :hg:`status` angezeigt). Die\n"
-" Aktionen sind Warnen, Entfernen (aus dem Zweig) und Löschen\n"
-" (von der Festplatte)::"
+" Die folgende Tabelle beschreibt detailliert das Verhalten von 'remove'\n"
+" für unterschiedliche Dateizustände (Spalten) und Optionskombinationen\n"
+" (Reihen). Die Dateizustände sind Hinzugefügt (A), Unverändert (C),\n"
+" Verändert (M) und Fehlend (!) (wie von 'hg status' angezeigt). Die\n"
+" Aktionen sind Warnen, Entfernen (aus dem Zweig) und Löschen\n"
+" (von der Festplatte)::"
msgid ""
-" ======= == == == ==\n"
-" A C M !\n"
-" ======= == == == ==\n"
-" none W RD W R\n"
-" -f R RD RD R\n"
-" -A W W W R\n"
-" -Af R R R R\n"
-" ======= == == == =="
+" A C M !\n"
+" none W RD W R\n"
+" -f R RD RD R\n"
+" -A W W W R\n"
+" -Af R R R R"
msgstr ""
-" ======= == == == ==\n"
-" A C M !\n"
-" ======= == == == ==\n"
-" keine W EL W E\n"
-" -f E EL EL E\n"
-" -A W W W E\n"
-" -Af E E E E\n"
-" ======= == == == =="
+" A C M !\n"
+" keine W EL W E\n"
+" -f E EL EL E\n"
+" -A W W W E\n"
+" -Af E E E E"
+#, fuzzy
msgid ""
-" Note that remove never deletes files in Added [A] state from the\n"
-" working directory, not even if option --force is specified."
+" This command schedules the files to be removed at the next commit.\n"
+" To undo a remove before that, see :hg:`revert`."
msgstr ""
+" Die Dateien werden im Projektarchiv beim nächsten Übernehmen (commit)\n"
+" entfernt. Um diese Aktion vorher rückgängig zu machen, siehe 'hg "
+"revert'.\n"
+" "
msgid ""
" Returns 0 on success, 1 if any warnings encountered.\n"
" "
msgstr ""
-" Gibt 0 bei Erfolg zurück, 1 wenn Warnungen ausgegeben wurden.\n"
-" "
#, python-format
msgid "not removing %s: file is untracked\n"
msgstr "Entferne %s nicht: Datei ist nicht versioniert\n"
-#, python-format
+#, fuzzy, python-format
msgid "not removing %s: file still exists (use -f to force removal)\n"
-msgstr "Entferne nicht %s: Datei existiert noch (-f zum Erzwingen)\n"
+msgstr "Entferne nicht %s: Datei %s (Nutze -f um Entfernung zu erzwingen)\n"
-#, python-format
+#, fuzzy, python-format
msgid "not removing %s: file is modified (use -f to force removal)\n"
-msgstr "Entferne nicht %s: Datei ist verändert (-f zum Erzwingen)\n"
-
-#, python-format
-msgid "not removing %s: file has been marked for add (use forget to undo)\n"
-msgstr ""
-"Entferne nicht %s: Datei soll hinzugefügt werden ('hg forget' um dies "
-"rückgängig zu machen)\n"
-
-msgid "record a rename that has already occurred"
-msgstr ""
+msgstr "Entferne nicht %s: Datei %s (Nutze -f um Entfernung zu erzwingen)\n"
-msgid "[OPTION]... SOURCE... DEST"
-msgstr "[OPTION]... QUELLE... ZIEL"
+#, fuzzy, python-format
+msgid ""
+"not removing %s: file has been marked for add (use -f to force removal)\n"
+msgstr "Entferne nicht %s: Datei %s (Nutze -f um Entfernung zu erzwingen)\n"
msgid "rename files; equivalent of copy + remove"
msgstr "Benennt Dateien um; Äquivalent zu \"copy\" und \"remove\""
@@ -12600,28 +10648,16 @@ msgstr ""
" Die Quelle wird ausserdem als gelöscht markiert. Wenn mehrere Quellen\n"
" angegeben sind, muss das Ziel ein Verzeichnis sein."
+#, fuzzy
msgid ""
" This command takes effect at the next commit. To undo a rename\n"
" before that, see :hg:`revert`."
msgstr ""
-" Die Umbenennung hat wie üblich keinn sofortigen Effekt, sondern ist\n"
-" als lokale Änderung vorgemerkt. Die Umbenennung kann durch :hg:`revert`\n"
-" rückgängig gemacht werden."
-
-msgid "select all unresolved files"
-msgstr "Wählt alle konfliktbehafteten Dateien aus"
-
-msgid "list state of files needing merge"
-msgstr "Zeigt Dateien, die einen manuellen Merge erfordern"
-
-msgid "mark files as resolved"
-msgstr "Markiert eine Datei als konfliktfrei"
-
-msgid "mark files as unresolved"
-msgstr "Markiert eine Datei als konfliktbehaftet"
-
-msgid "hide status prefix"
-msgstr "Versteckt das Status-Präfix"
+" Die neue Datei wird wie üblich nicht sofort übernommen, sondern "
+"existiert\n"
+" als lokale Änderung im Arbeitsverzeichnis. Die Umbenennung kann durch\n"
+" \"hg revert\" rückgängig gemacht werden.\n"
+" "
msgid "redo merges or set/view the merge status of files"
msgstr ""
@@ -12634,8 +10670,7 @@ msgid ""
" setting, or a command-line merge tool like ``diff3``. The resolve\n"
" command is used to manage the files involved in a merge, after\n"
" :hg:`merge` has been run, and before :hg:`commit` is run (i.e. the\n"
-" working directory must have two parents). See :hg:`help\n"
-" merge-tools` for information on configuring merge tools."
+" working directory must have two parents)."
msgstr ""
msgid " The resolve command can be used in the following ways:"
@@ -12646,10 +10681,9 @@ msgid ""
"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 select all unresolved files. ``--tool`` can be used to specify\n"
+" 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. Previous file\n"
-" contents are saved with a ``.orig`` suffix."
+" environment variable and your configuration files."
msgstr ""
msgid ""
@@ -12688,113 +10722,315 @@ msgstr "Verwende nicht --all gleichzeitig mit einem Dateimuster"
msgid "no files or directories specified; use --all to remerge all files"
msgstr "Keine Dateien oder Verzeichnisse angegeben; nutze --all für alle"
-msgid "revert all changes when no arguments given"
-msgstr "Nimmt (ohne andere Parameter) alle Änderungen zurück"
-
-msgid "tipmost revision matching date"
-msgstr "dem tip nächste Revision mit passendem Datum"
-
-msgid "revert to the specified revision"
-msgstr "Geht bis zur angegebene Revision zurück"
-
-msgid "[OPTION]... [-r REV] [NAME]..."
+msgid "restore individual files or directories to an earlier state"
msgstr ""
-
-msgid "restore files to their checkout state"
-msgstr "Setzt gegebene Dateien oder Verzeichnisse auf frühere Version zurück"
+"Setzt gegebene Dateien oder Verzeichnisse auf eine frühere Version zurück\n"
+"\n"
+" (Im Gegensatz zu 'update -r' verändert 'revert' nicht die Angabe der\n"
+" Vorgängerversion des Arbeitsverzeichnisses)\n"
+"\n"
+" Ohne gegebene Revision wird der Inhalt der benannten Dateien oder\n"
+" Verzeichnisse auf die Vorgängerversion zurückgesetzt. Die betroffenen\n"
+" Dateien gelten danach wieder als unmodifiziert und nicht übernommene\n"
+" Hinzufügungen, Entfernungen, Kopien und Umbenennungen werden vergessen.\n"
+" Falls das Arbeitsverzeichnis zwei Vorgänger hat, muss eine Revision\n"
+" explizit angegeben werden.\n"
+"\n"
+" Mit der -r/--rev Option werden die Dateien oder Verzeichnisse auf die\n"
+" gegebene Revision zurückgesetzt. Auf diese Weise können ungewollte\n"
+" Änderungen rückgängig gemacht werden. Die betroffenen Dateien gelten "
+"dann\n"
+" als modifiziert (seit dem Vorgänger) und müssen per 'commit' als neue\n"
+" Revision übernommen werden. Siehe auch 'hg help dates' für erlaubte "
+"Formate\n"
+" der -d/--date Option.\n"
+"\n"
+" Eine gelöschte Datei wird wieder hergestellt. Wurde die Ausführbarkeit\n"
+" einer Datei verändert, wird auch dieser Wert zurückgesetzt.\n"
+"\n"
+" Nur die angegebenen Dateien und Verzeichnisse werden zurückgesetzt. "
+"Ohne\n"
+" Angabe werden keine Dateien verändert.\n"
+"\n"
+" Modifizierte Dateien werden vor der Änderung mit der Endung .orig\n"
+" gespeichert. Um dieses Backup zu verhindern, verwende --no-backup.\n"
+" "
msgid ""
" .. note::\n"
-" To check out earlier revisions, you should use :hg:`update REV`.\n"
-" To cancel a merge (and lose your changes), use :hg:`update --clean .`."
+" 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 ""
-" .. note::\n"
-" Um das Arbeitsverzeichnis auf eine ältere Version zu setzen, nutze\n"
-" :hg:`update REV`. Um eine nicht übernommene Zusammenführung "
-"rückgängig\n"
-" zu machen, nutze :hg:`update --clean .`."
+#, fuzzy
msgid ""
-" With no revision specified, revert the specified files or directories\n"
+" With no revision specified, revert the named files or directories\n"
" to the contents they had in the parent of the working directory.\n"
-" This restores the contents of files to an unmodified\n"
+" This restores the contents of the affected files to an unmodified\n"
" state and unschedules adds, removes, copies, and renames. If the\n"
" working directory has two parents, you must explicitly specify a\n"
" revision."
msgstr ""
+"Setzt gegebene Dateien oder Verzeichnisse auf frühere Version zurück\n"
+"\n"
+" (Im Gegensatz zu 'update -r' verändert 'revert' nicht die Angabe der\n"
+" Vorgängerversion des Arbeitsverzeichnisses)\n"
+"\n"
+" Ohne gegebene Revision wird der Inhalt der benannten Dateien oder\n"
+" Verzeichnisse auf die Vorgängerversion zurückgesetzt. Die betroffenen\n"
+" Dateien gelten danach wieder als unmodifiziert und nicht übernommene\n"
+" Hinzufügungen, Entfernungen, Kopien und Umbenennungen werden vergessen.\n"
+" Falls das Arbeitsverzeichnis zwei Vorgänger hat, muss eine Revision\n"
+" explizit angegeben werden.\n"
+"\n"
+" Mit der -r/--rev Option werden die Dateien oder Verzeichnisse auf die\n"
+" gegebene Revision zurückgesetzt. Auf diese Weise können ungewollte\n"
+" Änderungen rückgängig gemacht werden. Die betroffenen Dateien gelten "
+"dann\n"
+" als modifiziert (seit dem Vorgänger) und müssen per 'commit' als neue\n"
+" Revision übernommen werden. Siehe auch 'hg help dates' für erlaubte "
+"Formate\n"
+" der -d/--date Option.\n"
+"\n"
+" Eine gelöschte Datei wird wieder hergestellt. Wurde die Ausführbarkeit\n"
+" einer Datei verändert, wird auch dieser Wert zurückgesetzt.\n"
+"\n"
+" Nur die angegebenen Dateien und Verzeichnisse werden zurückgesetzt. "
+"Ohne\n"
+" Angabe werden keine Dateien verändert.\n"
+"\n"
+" Modifizierte Dateien werden vor der Änderung mit der Endung .orig\n"
+" gespeichert. Um dieses Backup zu verhindern, verwende --no-backup.\n"
+" "
+
+#, fuzzy
+msgid ""
+" Using the -r/--rev option, revert the given files or directories\n"
+" to their contents as of a specific revision. This can be helpful\n"
+" 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 ""
+"Setzt gegebene Dateien oder Verzeichnisse auf frühere Version zurück\n"
+"\n"
+" (Im Gegensatz zu 'update -r' verändert 'revert' nicht die Angabe der\n"
+" Vorgängerversion des Arbeitsverzeichnisses)\n"
+"\n"
+" Ohne gegebene Revision wird der Inhalt der benannten Dateien oder\n"
+" Verzeichnisse auf die Vorgängerversion zurückgesetzt. Die betroffenen\n"
+" Dateien gelten danach wieder als unmodifiziert und nicht übernommene\n"
+" Hinzufügungen, Entfernungen, Kopien und Umbenennungen werden vergessen.\n"
+" Falls das Arbeitsverzeichnis zwei Vorgänger hat, muss eine Revision\n"
+" explizit angegeben werden.\n"
+"\n"
+" Mit der -r/--rev Option werden die Dateien oder Verzeichnisse auf die\n"
+" gegebene Revision zurückgesetzt. Auf diese Weise können ungewollte\n"
+" Änderungen rückgängig gemacht werden. Die betroffenen Dateien gelten "
+"dann\n"
+" als modifiziert (seit dem Vorgänger) und müssen per 'commit' als neue\n"
+" Revision übernommen werden. Siehe auch 'hg help dates' für erlaubte "
+"Formate\n"
+" der -d/--date Option.\n"
+"\n"
+" Eine gelöschte Datei wird wieder hergestellt. Wurde die Ausführbarkeit\n"
+" einer Datei verändert, wird auch dieser Wert zurückgesetzt.\n"
+"\n"
+" Nur die angegebenen Dateien und Verzeichnisse werden zurückgesetzt. "
+"Ohne\n"
+" Angabe werden keine Dateien verändert.\n"
+"\n"
+" Modifizierte Dateien werden vor der Änderung mit der Endung .orig\n"
+" gespeichert. Um dieses Backup zu verhindern, verwende --no-backup.\n"
+" "
+
+#, fuzzy
+msgid ""
+" Revert modifies the working directory. It does not commit any\n"
+" changes, or change the parent of the working directory. If you\n"
+" revert to a revision other than the parent of the working\n"
+" directory, the reverted files will thus appear modified\n"
+" afterwards."
+msgstr ""
+"Setzt gegebene Dateien oder Verzeichnisse auf frühere Version zurück\n"
+"\n"
+" (Im Gegensatz zu 'update -r' verändert 'revert' nicht die Angabe der\n"
+" Vorgängerversion des Arbeitsverzeichnisses)\n"
+"\n"
" Ohne gegebene Revision wird der Inhalt der benannten Dateien oder\n"
" Verzeichnisse auf die Vorgängerversion zurückgesetzt. Die betroffenen\n"
" Dateien gelten danach wieder als unmodifiziert und nicht übernommene\n"
" Hinzufügungen, Entfernungen, Kopien und Umbenennungen werden vergessen.\n"
" Falls das Arbeitsverzeichnis zwei Vorgänger hat, muss eine Revision\n"
-" explizit angegeben werden."
+" explizit angegeben werden.\n"
+"\n"
+" Mit der -r/--rev Option werden die Dateien oder Verzeichnisse auf die\n"
+" gegebene Revision zurückgesetzt. Auf diese Weise können ungewollte\n"
+" Änderungen rückgängig gemacht werden. Die betroffenen Dateien gelten "
+"dann\n"
+" als modifiziert (seit dem Vorgänger) und müssen per 'commit' als neue\n"
+" Revision übernommen werden. Siehe auch 'hg help dates' für erlaubte "
+"Formate\n"
+" der -d/--date Option.\n"
+"\n"
+" Eine gelöschte Datei wird wieder hergestellt. Wurde die Ausführbarkeit\n"
+" einer Datei verändert, wird auch dieser Wert zurückgesetzt.\n"
+"\n"
+" Nur die angegebenen Dateien und Verzeichnisse werden zurückgesetzt. "
+"Ohne\n"
+" Angabe werden keine Dateien verändert.\n"
+"\n"
+" Modifizierte Dateien werden vor der Änderung mit der Endung .orig\n"
+" gespeichert. Um dieses Backup zu verhindern, verwende --no-backup.\n"
+" "
+#, fuzzy
msgid ""
-" Using the -r/--rev or -d/--date options, revert the given files or\n"
-" directories to their states as of a specific revision. Because\n"
-" revert does not change the working directory parents, this will\n"
-" cause these files to appear modified. This can be helpful to \"back\n"
-" out\" some or all of an earlier change. See :hg:`backout` for a\n"
-" related method."
+" If a file has been deleted, it is restored. If the executable mode\n"
+" of a file was changed, it is reset."
msgstr ""
-" Mit der -r/--rev oder der -d/--date Option werden die Dateien oder\n"
-" Verzeichnisse auf die gegebene Revision zurückgesetzt. Da 'revert' aber\n"
-" nicht die mit dem Arbeitsverzeichnis assoziierte Revisionsnummer "
-"ändert,\n"
-" gelten die betroffenen Dateien dann als modifiziert. Damit kann man\n"
-" ungewollte aber bereits übernommene Änderungen rückgängig machen. Siehe\n"
-" auch :hg:`backout` für eine ähnliche Methode."
+"Setzt gegebene Dateien oder Verzeichnisse auf frühere Version zurück\n"
+"\n"
+" (Im Gegensatz zu 'update -r' verändert 'revert' nicht die Angabe der\n"
+" Vorgängerversion des Arbeitsverzeichnisses)\n"
+"\n"
+" Ohne gegebene Revision wird der Inhalt der benannten Dateien oder\n"
+" Verzeichnisse auf die Vorgängerversion zurückgesetzt. Die betroffenen\n"
+" Dateien gelten danach wieder als unmodifiziert und nicht übernommene\n"
+" Hinzufügungen, Entfernungen, Kopien und Umbenennungen werden vergessen.\n"
+" Falls das Arbeitsverzeichnis zwei Vorgänger hat, muss eine Revision\n"
+" explizit angegeben werden.\n"
+"\n"
+" Mit der -r/--rev Option werden die Dateien oder Verzeichnisse auf die\n"
+" gegebene Revision zurückgesetzt. Auf diese Weise können ungewollte\n"
+" Änderungen rückgängig gemacht werden. Die betroffenen Dateien gelten "
+"dann\n"
+" als modifiziert (seit dem Vorgänger) und müssen per 'commit' als neue\n"
+" Revision übernommen werden. Siehe auch 'hg help dates' für erlaubte "
+"Formate\n"
+" der -d/--date Option.\n"
+"\n"
+" Eine gelöschte Datei wird wieder hergestellt. Wurde die Ausführbarkeit\n"
+" einer Datei verändert, wird auch dieser Wert zurückgesetzt.\n"
+"\n"
+" Nur die angegebenen Dateien und Verzeichnisse werden zurückgesetzt. "
+"Ohne\n"
+" Angabe werden keine Dateien verändert.\n"
+"\n"
+" Modifizierte Dateien werden vor der Änderung mit der Endung .orig\n"
+" gespeichert. Um dieses Backup zu verhindern, verwende --no-backup.\n"
+" "
+
+#, fuzzy
+msgid ""
+" If names are given, all files matching the names are reverted.\n"
+" If no arguments are given, no files are reverted."
+msgstr ""
+"Setzt gegebene Dateien oder Verzeichnisse auf frühere Version zurück\n"
+"\n"
+" (Im Gegensatz zu 'update -r' verändert 'revert' nicht die Angabe der\n"
+" Vorgängerversion des Arbeitsverzeichnisses)\n"
+"\n"
+" Ohne gegebene Revision wird der Inhalt der benannten Dateien oder\n"
+" Verzeichnisse auf die Vorgängerversion zurückgesetzt. Die betroffenen\n"
+" Dateien gelten danach wieder als unmodifiziert und nicht übernommene\n"
+" Hinzufügungen, Entfernungen, Kopien und Umbenennungen werden vergessen.\n"
+" Falls das Arbeitsverzeichnis zwei Vorgänger hat, muss eine Revision\n"
+" explizit angegeben werden.\n"
+"\n"
+" Mit der -r/--rev Option werden die Dateien oder Verzeichnisse auf die\n"
+" gegebene Revision zurückgesetzt. Auf diese Weise können ungewollte\n"
+" Änderungen rückgängig gemacht werden. Die betroffenen Dateien gelten "
+"dann\n"
+" als modifiziert (seit dem Vorgänger) und müssen per 'commit' als neue\n"
+" Revision übernommen werden. Siehe auch 'hg help dates' für erlaubte "
+"Formate\n"
+" der -d/--date Option.\n"
+"\n"
+" Eine gelöschte Datei wird wieder hergestellt. Wurde die Ausführbarkeit\n"
+" einer Datei verändert, wird auch dieser Wert zurückgesetzt.\n"
+"\n"
+" Nur die angegebenen Dateien und Verzeichnisse werden zurückgesetzt. "
+"Ohne\n"
+" Angabe werden keine Dateien verändert.\n"
+"\n"
+" Modifizierte Dateien werden vor der Änderung mit der Endung .orig\n"
+" gespeichert. Um dieses Backup zu verhindern, verwende --no-backup.\n"
+" "
+#, fuzzy
msgid ""
" Modified files are saved with a .orig suffix before reverting.\n"
" To disable these backups, use --no-backup."
msgstr ""
+"Setzt gegebene Dateien oder Verzeichnisse auf frühere Version zurück\n"
+"\n"
+" (Im Gegensatz zu 'update -r' verändert 'revert' nicht die Angabe der\n"
+" Vorgängerversion des Arbeitsverzeichnisses)\n"
+"\n"
+" Ohne gegebene Revision wird der Inhalt der benannten Dateien oder\n"
+" Verzeichnisse auf die Vorgängerversion zurückgesetzt. Die betroffenen\n"
+" Dateien gelten danach wieder als unmodifiziert und nicht übernommene\n"
+" Hinzufügungen, Entfernungen, Kopien und Umbenennungen werden vergessen.\n"
+" Falls das Arbeitsverzeichnis zwei Vorgänger hat, muss eine Revision\n"
+" explizit angegeben werden.\n"
+"\n"
+" Mit der -r/--rev Option werden die Dateien oder Verzeichnisse auf die\n"
+" gegebene Revision zurückgesetzt. Auf diese Weise können ungewollte\n"
+" Änderungen rückgängig gemacht werden. Die betroffenen Dateien gelten "
+"dann\n"
+" als modifiziert (seit dem Vorgänger) und müssen per 'commit' als neue\n"
+" Revision übernommen werden. Siehe auch 'hg help dates' für erlaubte "
+"Formate\n"
+" der -d/--date Option.\n"
+"\n"
+" Eine gelöschte Datei wird wieder hergestellt. Wurde die Ausführbarkeit\n"
+" einer Datei verändert, wird auch dieser Wert zurückgesetzt.\n"
+"\n"
+" Nur die angegebenen Dateien und Verzeichnisse werden zurückgesetzt. "
+"Ohne\n"
+" Angabe werden keine Dateien verändert.\n"
+"\n"
" Modifizierte Dateien werden vor der Änderung mit der Endung .orig\n"
-" gespeichert. Um dieses Backup zu verhindern, verwende --no-backup."
+" gespeichert. Um dieses Backup zu verhindern, verwende --no-backup.\n"
+" "
msgid "you can't specify a revision and a date"
msgstr "ungültige Angabe von Revision und Datum gleichzeitig"
-msgid "uncommitted merge with no revision specified"
+msgid "uncommitted merge - use \"hg update\", see \"hg help revert\""
msgstr ""
-"Nicht übernommene Zusammenführung - bitte gib eine bestimmte Revision an"
-
-msgid "use \"hg update\" or see \"hg help revert\""
-msgstr "Verwende :h:`update` oder lies :h:`help revert`"
-msgid "no files or directories specified"
-msgstr "Keine Dateien order Verzeichnisse angegeben"
-
-msgid ""
-"uncommitted merge, use --all to discard all changes, or 'hg update -C .' to "
-"abort the merge"
+msgid "no files or directories specified; use --all to revert the whole repo"
msgstr ""
-"Nicht übernommene Zusammenführung - nutze --all um alle Änderungen eines "
-"Vorgängers zu vergessen, oder 'hg update -C .' um die Zusammenführung nicht "
-"durchzuführen"
+"keine Dateien oder Verzeichnisse angegeben; nutze --all um das gesamte "
+"Arbeitsverzeichnis zurückzusetzen"
#, python-format
-msgid ""
-"uncommitted changes, use --all to discard all changes, or 'hg update %s' to "
-"update"
-msgstr ""
-"Ausstehende nicht versionierte Änderungen - nutze -all um alle Änderungen zu "
-"verwerfen, oder 'hg update %s' zum Aktualisieren"
+msgid "forgetting %s\n"
+msgstr "vergesse: %s\n"
#, python-format
-msgid "use --all to revert all files, or 'hg update %s' to update"
-msgstr ""
+msgid "reverting %s\n"
+msgstr "setze zurück: %s\n"
-msgid "uncommitted changes, use --all to discard all changes"
-msgstr ""
-"Ausstehende nicht versionierte Änderungen - nutze -all um alle Änderungen zu "
-"verwerfen"
+#, python-format
+msgid "undeleting %s\n"
+msgstr "stelle wieder her: %s\n"
-msgid "use --all to revert all files"
-msgstr "nutze -all, um alle Dateien zurückzusetzen"
+#, python-format
+msgid "saving current version of %s as %s\n"
+msgstr "speichere aktuelle Version von %s als %s\n"
-msgid "ignore safety measures"
-msgstr ""
+#, python-format
+msgid "file not managed: %s\n"
+msgstr "Datei nicht unter Versionskontrolle: %s\n"
+
+#, python-format
+msgid "no changes needed to %s\n"
+msgstr "keine Änderungen notwendig für %s\n"
msgid "roll back the last transaction (dangerous)"
msgstr "Rollt die letzte Transaktion zurück (gefährlich!)"
@@ -12813,6 +11049,7 @@ msgstr ""
" auf die letzte Transaktion zurückgesetzt. Neuere Änderungen gehen damit\n"
" verloren."
+#, fuzzy
msgid ""
" Transactions are used to encapsulate the effects of all commands\n"
" that create new changesets or propagate existing changesets into a\n"
@@ -12822,8 +11059,9 @@ msgstr ""
" Transaktionen werden verwendet um den Effekt aller Befehle, die "
"Änderungs-\n"
" sätze erstellen oder verteilen, zu kapseln. Die folgenden Befehle\n"
-" werden durch Transaktionen geschützt und können zurückgerollt werden:"
+" werden durch Transaktionen geschützt::"
+#, fuzzy
msgid ""
" - commit\n"
" - import\n"
@@ -12831,22 +11069,13 @@ msgid ""
" - push (with this repository as the destination)\n"
" - unbundle"
msgstr ""
-" - commit\n"
-" - import\n"
-" - pull\n"
-" - push (mit diesem Archiv als Ziel)\n"
-" - unbundle"
-
-msgid ""
-" To avoid permanent data loss, rollback will refuse to rollback a\n"
-" commit transaction if it isn't checked out. Use --force to\n"
-" override this protection."
-msgstr ""
-" Um einen versehentlichen Datenverlust zu verhindern, wird rollback\n"
-" keine Änderungssätze aus der Historie entfernen, die nicht im\n"
-" Arbeitsverzeichnis aktuell sind. Um diesen Schutz abzuschalten,\n"
-" muss --force (erzwingen) angegeben werden."
+" commit\n"
+" import\n"
+" pull\n"
+" push (mit diesem Archiv als Ziel)\n"
+" unbundle"
+#, fuzzy
msgid ""
" This command is not intended for use on public repositories. Once\n"
" changes are visible for pull by other users, rolling a transaction\n"
@@ -12863,69 +11092,22 @@ msgstr ""
"Wettlaufsituation,\n"
" wenn beispielsweise ein Zurückrollen ausgeführt wird, während jemand "
"anders\n"
-" ein 'pull' ausführt."
+" ein 'pull' ausführt.\n"
+" "
msgid ""
" Returns 0 on success, 1 if no rollback data is available.\n"
" "
msgstr ""
-" Gibt 0 bei Erfolg zurück, 1 wenn kein Transaktionsprotokoll gefunden "
-"wird.\n"
-" "
msgid "print the root (top) of the current working directory"
msgstr "Gibt die Wurzel (top) des aktuellen Arbeitsverzeichnisses aus"
+#, fuzzy
msgid " Print the root directory of the current repository."
msgstr ""
-" Gibt das Wurzelverzeichnis des aktuellen Arbeitsverzeichnisses aus."
-
-msgid "name of access log file to write to"
-msgstr "Name der Zugriffs-Logdatei"
-
-msgid "name of error log file to write to"
-msgstr "Name der Fehler-Logdatei"
-
-msgid "PORT"
-msgstr ""
-
-msgid "port to listen on (default: 8000)"
-msgstr "Port auf dem gehorcht wird (Voreinstellung: 8000)"
-
-msgid "address to listen on (default: all interfaces)"
-msgstr "Adresse auf der gehorcht wird (Voreinstellung: alle Schnittstellen)"
-
-msgid "ADDR"
-msgstr ""
-
-msgid "prefix path to serve from (default: server root)"
-msgstr ""
-"Pfadpräfix von dem ausgeliefert wird (Voreinstellung: Serverwurzel '/')"
-
-msgid "name to show in web pages (default: working directory)"
-msgstr ""
-"Name der auf der Webseite angezeigt wird (Voreinstellung: Arbeitsverzeichnis)"
-
-msgid "name of the hgweb config file (see \"hg help hgweb\")"
-msgstr "Name der hgweb-Konfigurationsdatei (siehe \"hg help hgweb\")"
-
-msgid "name of the hgweb config file (DEPRECATED)"
-msgstr ""
-
-msgid "for remote clients"
-msgstr "für entfernte Clients"
-
-msgid "web templates to use"
-msgstr "Zu nutzende Web-Vorlagen"
-
-msgid "template style to use"
-msgstr "Zu verwendender Stil"
-
-msgid "use IPv6 in addition to IPv4"
-msgstr "Nutzt IPv6 zusätzlich zu IPv4"
-
-msgid "SSL certificate file"
-msgstr "SSL-Zertifikatsdatei"
+" Gibt das Wurzelverzeichnis des aktuellen Arbeitsverzeichnisses aus.\n"
+" "
msgid "start stand-alone webserver"
msgstr "Startet einen eigenständigen Webserver"
@@ -12945,6 +11127,7 @@ msgid ""
" should use a real web server if you need to authenticate users."
msgstr ""
+#, fuzzy
msgid ""
" By default, the server logs accesses to stdout and errors to\n"
" stderr. Use the -A/--accesslog and -E/--errorlog options to log to\n"
@@ -12952,7 +11135,8 @@ msgid ""
msgstr ""
" Standardmäßig schreibt der Server Zugriffe auf die Standardausgabe\n"
" und Fehler auf die Standardfehlerausgabe. Nutze die Optionen \n"
-" -A/--accesslog und -E/--errorlog, um die Ausgabe in Dateien umzulenken."
+" -A/--accesslog und -E/--errorlog, um die Ausgabe in Dateien umzulenken.\n"
+" "
msgid ""
" To have the server choose a free port number to listen on, specify\n"
@@ -12960,9 +11144,6 @@ msgid ""
" number it uses."
msgstr ""
-msgid "cannot use --stdio with --cmdserver"
-msgstr "--stdio und --cmdserver können nicht gleichzeitig verwendet werden"
-
msgid "There is no Mercurial repository here (.hg not found)"
msgstr "Es gibt hier kein Mercurial-Archiv (.hg nicht vorhanden)"
@@ -12970,77 +11151,6 @@ msgstr "Es gibt hier kein Mercurial-Archiv (.hg nicht vorhanden)"
msgid "listening at http://%s%s/%s (bound to %s:%d)\n"
msgstr "Höre auf http://%s%s/%s (gebunden an %s:%d)\n"
-msgid "show untrusted configuration options"
-msgstr ""
-
-msgid "[-u] [NAME]..."
-msgstr ""
-
-msgid "show combined config settings from all hgrc files"
-msgstr "Zeigt die kombinierten Konfigurationswerte aller hgrc-Dateien an"
-
-msgid " With no arguments, print names and values of all config items."
-msgstr ""
-" Ohne Argumente werden die Namen und Werte aller Konfigurationseinträge\n"
-" angezeigt."
-
-msgid ""
-" With one argument of the form section.name, print just the value\n"
-" of that config item."
-msgstr ""
-" Mit einem Argument der Form sektion.name wird nur der Wert dieses\n"
-" Konfigurationseintrages angezeigt."
-
-msgid ""
-" With multiple arguments, print names and values of all config\n"
-" items with matching section names."
-msgstr ""
-" Mit mehreren Argumenten werden die Namen und Werte aller passenden\n"
-" Konfigurationseinträge angezeigt."
-
-msgid ""
-" With --debug, the source (filename and line number) is printed\n"
-" for each config item."
-msgstr ""
-" Mit dem --debug Schalter wird der Dateiname und die Zeilennummer der\n"
-" Definitionsquelle mit jedem Eintrag ausgegeben."
-
-msgid "only one config item permitted"
-msgstr "Nur ein Konfigurationseintrag ist erlaubt"
-
-msgid "show status of all files"
-msgstr "Zeigt den Status aller Dateien"
-
-msgid "show only modified files"
-msgstr "Zeigt nur geänderte Dateien"
-
-msgid "show only added files"
-msgstr "Zeigt nur hinzugefügte Dateien"
-
-msgid "show only removed files"
-msgstr "Zeigt nur entfernte Dateien"
-
-msgid "show only deleted (but tracked) files"
-msgstr "Zeigt nur gelöschte (aber versionierte) Dateien"
-
-msgid "show only files without changes"
-msgstr "Zeigt nur Dateien ohne Änderungen"
-
-msgid "show only unknown (not tracked) files"
-msgstr "Zeigt nur unbekannte (nicht versionierte) Dateien"
-
-msgid "show only ignored files"
-msgstr "Zeigt nur ignorierte Dateien"
-
-msgid "show source of copied files"
-msgstr "Zeigt die Quelle von kopierten Dateien"
-
-msgid "show difference from revision"
-msgstr "Zeigt die Unterschiede zu einer Revision"
-
-msgid "list the changed files of a revision"
-msgstr "Listet geänderte Dateien einer Revision"
-
msgid "show changed files in the working directory"
msgstr "Zeigt geänderte Dateien im Arbeitsverzeichnis"
@@ -13068,6 +11178,7 @@ msgstr ""
" Dateien aus, es sei denn sie werden explizit mit -u/--unknown oder \n"
" -i/--ignored angefordert."
+#, fuzzy
msgid ""
" .. note::\n"
" status may appear to disagree with diff if permissions have\n"
@@ -13075,14 +11186,14 @@ msgid ""
" not report permission changes and diff only reports changes\n"
" relative to one merge parent."
msgstr ""
-" .. note:\n"
-" Der Status kann sich vom Diff unterscheiden, wenn sich "
-"Berechtigungen\n"
-" geändert haben oder eine Zusammenführung durchgeführt wurde. Das\n"
-" Vorgabe-Diff-Format zeigt keine Berechtigungsänderungen an und\n"
-" 'diff' zeigt nur Änderungen relativ zu einer Vorgängerversion einer\n"
-" Zusammenführung an."
+" HINWEIS: Der Status kann sich vom Diff unterscheiden, wenn sich\n"
+" Berechtigungen geändert haben oder eine Zusammenführung aufgetreten\n"
+" ist. Das Standard-Diff-Format zeigt keine Berechtigungsänderungen an "
+"und\n"
+" 'diff' zeigt nur Änderungen relativ zu einer Vorgängerversion einer\n"
+" Zusammenführung an."
+#, fuzzy
msgid ""
" If one revision is given, it is used as the base revision.\n"
" If two revisions are given, the differences between them are\n"
@@ -13091,12 +11202,33 @@ msgid ""
msgstr ""
" Bei Angabe einer Revision wird diese als Basisrevision genutzt.\n"
" Bei Angabe zweier Revisionen werden die Unterschiede zwischen diesen\n"
-" beiden gezeigt. Die -c/--change Option kann verwendet werden, um\n"
-" die Änderungen einer Revision (relativ zu dessen Vorgänger) zu zeigen."
+" beiden gezeigt."
+#, fuzzy
msgid " The codes used to show the status of files are::"
-msgstr " Die Zeichen, die den Status anzeigen, bedeuten::"
+msgstr ""
+"Wiederholt eine Dateizusammenführung oder Aktualisierung\n"
+"\n"
+" Der Prozess, zwei Versionen automatisch zusammenzuführen (nach "
+"expliziter\n"
+" Zusammenführung oder nach Aktualisierung mit lokalen Änderungen), wird\n"
+" erneut auf die ursprünglichen Versionen angewendet.\n"
+" Dies überschreibt manuelle Versuche, den Konflikt zu lösen. Damit dies\n"
+" nicht geschieht (und damit ein Übernehmen der Änderungen zugelassen\n"
+" wird), müssen die Dateien mit der Option -m/--mark als manuell gelöst\n"
+" markiert werden.\n"
+"\n"
+" Man kann entweder eine Liste von zu bearbeitenden Dateien angeben, oder\n"
+" mit der Option -a/--all alle konfliktbehafteten Dateien auswählen.\n"
+"\n"
+" Der aktuelle Status wird mit -l/--list angezeigt. Die dabei verwendeten\n"
+" Zeichen bedeuten::\n"
+"\n"
+" U = noch konfliktbehaftet (unresolved)\n"
+" R = konfliktfrei (resolved)\n"
+" "
+#, fuzzy
msgid ""
" M = modified\n"
" A = added\n"
@@ -13115,32 +11247,8 @@ msgstr ""
" noch überwacht)\n"
" ? = nicht überwacht\n"
" I = ignoriert\n"
-" = die zuvor hinzugefügt Datei (A) wurde von hier kopiert"
-
-msgid ""
-" - show changes in the working directory relative to a\n"
-" changeset::"
-msgstr ""
-" - zeigt Änderungen zwischen dem Arbeitsverzeichnis und einer\n"
-" Revision::"
-
-msgid " hg status --rev 9353"
-msgstr ""
-
-msgid " - show all changes including copies in an existing changeset::"
-msgstr ""
-
-msgid " hg status --copies --change 9353"
-msgstr ""
-
-msgid " - get a NUL separated list of added files, suitable for xargs::"
-msgstr ""
-
-msgid " hg status -an0"
-msgstr ""
-
-msgid "check for push and pull"
-msgstr ""
+" = die zuvor hinzugefügt Datei wurde von hier kopiert\n"
+" "
msgid "summarize working directory state"
msgstr "Fasst den Status des Arbeitsverzeichnisses zusammen"
@@ -13155,9 +11263,9 @@ msgid ""
" incoming and outgoing changes. This can be time-consuming."
msgstr ""
-#, python-format
+#, fuzzy, python-format
msgid "parent: %d:%s "
-msgstr "Vorgänger: %d:%s "
+msgstr "Vorgänger: %d:%s %s\n"
msgid " (empty repository)"
msgstr " (leeres Archiv)"
@@ -13169,9 +11277,6 @@ msgstr " (keine Revision geladen)"
msgid "branch: %s\n"
msgstr "Zweig: %s\n"
-msgid "bookmarks:"
-msgstr "Lesezeichen:"
-
#, python-format
msgid "%d modified"
msgstr "%d modifiziert"
@@ -13184,13 +11289,13 @@ msgstr "%d hinzugefügt"
msgid "%d removed"
msgstr "%d entfernt"
-#, python-format
+#, fuzzy, python-format
msgid "%d renamed"
-msgstr "%d umbenannt"
+msgstr "%d entfernt"
-#, python-format
+#, fuzzy, python-format
msgid "%d copied"
-msgstr "%d kopiert"
+msgstr "%d modifiziert"
#, python-format
msgid "%d deleted"
@@ -13208,9 +11313,9 @@ msgstr "%d ignoriert"
msgid "%d unresolved"
msgstr "%d konfliktbehaftet"
-#, python-format
+#, fuzzy, python-format
msgid "%d subrepos"
-msgstr "%d Unterarchive"
+msgstr "HG: Unterarchiv %s"
msgid " (merge)"
msgstr "(Zusammenführung)"
@@ -13218,8 +11323,9 @@ msgstr "(Zusammenführung)"
msgid " (new branch)"
msgstr "(neuer Zeig)"
+#, fuzzy
msgid " (head closed)"
-msgstr " (Köpfe geschlossen)"
+msgstr " (%+d Köpfe)"
msgid " (clean)"
msgstr ""
@@ -13265,24 +11371,6 @@ msgstr "Entfernt: %s\n"
msgid "remote: (synced)\n"
msgstr "Entfernt: (synchonisiert)\n"
-msgid "force tag"
-msgstr "erzwinge Etikett"
-
-msgid "make the tag local"
-msgstr "Tag wird nur lokal gesetzt"
-
-msgid "revision to tag"
-msgstr "Zu taggende Revision"
-
-msgid "remove a tag"
-msgstr "Entfernt ein Tag"
-
-msgid "use <text> as commit message"
-msgstr "Nutzt <Text> als Commit-Nachricht"
-
-msgid "[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME..."
-msgstr "[-f] [-l] [-m TEXT] [-d DATUM] [-u BENUTZER] [-r REV] NAME..."
-
msgid "add one or more tags for the current or given revision"
msgstr ""
"Setze ein oder mehrere Etiketten für die aktuelle oder gegebene Revision"
@@ -13290,6 +11378,7 @@ msgstr ""
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"
@@ -13300,8 +11389,7 @@ msgstr ""
"Vergleichen\n"
" zu verwenden, in der Historie dorthin zurückzugehen oder wichtige "
"Zweig-\n"
-" stellen zu markieren. Daher sind Änderungen existierender Etiketten\n"
-" normalerweise verboten, können aber mit -f/--force erzwungen werden."
+" stellen zu markieren."
msgid ""
" If no revision is given, the parent of the working directory is\n"
@@ -13310,6 +11398,7 @@ msgstr ""
" 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 similarly\n"
@@ -13321,10 +11410,10 @@ msgstr ""
" Um die Versionskontrolle, Verteilung und Zusammenführung von Etiketten\n"
" möglich zu machen, werden sie in einer Datei '.hgtags' gespeichert, "
"welche\n"
-" zusammen mit den anderen Projektdateien überwacht wird und manuell\n"
-" bearbeitet werden kann. Das bedeutet, dass Etikettierung automatisch\n"
-" eine neue Revision übernimmt. Lokale Etiketten (nicht mit anderen\n"
-" Archiven geteilt) liegen in der Datei .hg/localtags."
+" zusammen mit den anderen Projektdateien überwacht wird und manuell be-\n"
+" arbeitet werden kann. Lokale Etiketten (nicht mit anderen Archiven "
+"geteilt)\n"
+" liegen in der Datei .hg/localtags."
msgid ""
" Tag commits are usually made at the head of a branch. If the parent\n"
@@ -13341,8 +11430,9 @@ msgstr ""
msgid "tag names must be unique"
msgstr "Etikettnamen müssen einzigartig sein"
+#, fuzzy
msgid "tag names cannot consist entirely of whitespace"
-msgstr "Gegebener Etikettname ist leer"
+msgstr "Ignoriert Änderungen bei der Anzahl von Leerzeichen"
msgid "--rev and --remove are incompatible"
msgstr "Die Optionen --rev und --remove sind inkompatibel"
@@ -13363,24 +11453,26 @@ msgstr "Etikett '%s' ist nicht lokal"
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 "Nicht auf einem Zweigkopf - erzwinge mit -f/--force"
+msgstr "Etikett '%s' existiert bereits; erzwinge mit -f/--force"
msgid "list repository tags"
msgstr "Liste alle Etiketten des Archivs auf"
+#, fuzzy
msgid ""
" This lists both regular and local tags. When the -v/--verbose\n"
" switch is used, a third column \"local\" is printed for local tags."
msgstr ""
-" Listet sowohl reguläre wie auch lokale Etiketten auf. Mit dem Schalter\n"
-" -v/--verbose werden lokale in einer dritten Spalte als solche markiert."
-
-msgid "[-p] [-g]"
-msgstr ""
+" Listet sowohl globale wie auch lokale Etiketten auf. Mit dem Schalter -"
+"v/\n"
+" --verbose werden lokale in einer dritten Spalte als solche markiert.\n"
+" "
msgid "show the tip revision"
msgstr "Zeigt die zuletzt übernommene Revision"
@@ -13393,6 +11485,7 @@ msgstr ""
" Die Spitze (tip) bezeichnet den zuletzt hinzugefügten Änderungssatz und\n"
" damit den zuletzt geänderten Kopf."
+#, fuzzy
msgid ""
" If you have just made a commit, that commit will be the tip. If\n"
" you have just pulled changes from another repository, the tip of\n"
@@ -13402,71 +11495,45 @@ msgstr ""
" Nach einem Ãœbernehmen mit commit wird die neue Revision die Spitze.\n"
" Nach einem Holen mit pull wird die Spitze des anderen Archives\n"
" übernommen. Als Etikettname ist \"tip\" ein Spezialfall und kann nicht\n"
-" umbenannt oder manuell einem anderen Änderungssatz angehängt werden."
-
-msgid "update to new branch head if changesets were unbundled"
-msgstr ""
-"aktualisiere auf den neuen Zweigkopf when Änderungssätze entpackt wurden"
-
-msgid "[-u] FILE..."
-msgstr "[-u] DATEI..."
+" umbenannt oder manuell einem anderen Änderungssatz angehängt werden.\n"
+" "
msgid "apply one or more changegroup files"
msgstr "Wendet eine oder mehrere Änderungsgruppendateien an"
+#, fuzzy
msgid ""
" Apply one or more compressed changegroup files generated by the\n"
" bundle command."
msgstr ""
" Die angegebenen Dateien müssen komprimierte Änderungsgruppen enthalten,\n"
-" wie sie durch den Befehl 'bundle' erzeugt werden."
+" wie sie durch den Befehl 'bundle' erzeugt werden\n"
+" "
msgid ""
" Returns 0 on success, 1 if an update has unresolved files.\n"
" "
msgstr ""
-msgid "discard uncommitted changes (no backup)"
-msgstr "entferne nicht versionierte Änderungen (kein Backup)"
-
-msgid "update across branches if no uncommitted changes"
-msgstr ""
-"Aktualisiere auf anderen Zweig (falls keine unversionierten Änderungen "
-"ausstehen)"
-
-msgid "[-c] [-C] [-d DATE] [[-r] REV]"
-msgstr "[-c] [-C] [-d DATUM] [[-r] REV]"
-
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. If no changeset is specified, update to the tip of the\n"
-" current named branch and move the current bookmark (see :hg:`help\n"
-" bookmarks`)."
-msgstr ""
-" Aktualisiert das Arbeitsverzeichnis auf den angegebenen Änderungssatz.\n"
-" Ohne Angabe eines Änderungssatzes wird auf die Spitze des aktuellen\n"
-" Zweigs aktualisiert und das aktuelle Lesezeichen verschoben. (siehe\n"
-" :hg:`help bookmarks`)."
+" current named branch."
+msgstr " Hebt das Arbeitsverzeichnis auf die angegebene Revision an."
msgid ""
-" If the changeset is not a descendant or ancestor of the working\n"
-" directory's parent, the update is aborted. With the -c/--check\n"
-" option, the working directory is checked for uncommitted changes; if\n"
-" none are found, the working directory is updated to the specified\n"
+" 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 ""
-" Update sets the working directory's parent revison to the specified\n"
-" changeset (see :hg:`help parents`)."
-msgstr ""
-" Die gegebene Revision wird die Vorgängerversion des Arbeits-\n"
-" verzeichnisses (siehe :hg:`help parents`)."
-
-msgid ""
" The following rules apply when the working directory contains\n"
" uncommitted changes:"
msgstr ""
@@ -13504,24 +11571,29 @@ msgstr ""
" 3. Mit der Option -C/--clean werden die nicht übernommenen Änderungen\n"
" vernachlässigt und durch die Zielversion vollständig ersetzt."
+#, fuzzy
msgid ""
" Use null as the changeset to remove the working directory (like\n"
" :hg:`clone -U`)."
msgstr ""
" Bei der Verwendung von null als Revision wird die Arbeitskopie\n"
-" entfernt (wie :hg:`clone -U`)."
+" entfernt (wie 'hg clone -U')."
+#, fuzzy
msgid ""
-" If you want to revert just one file to an older revision, use\n"
-" :hg:`revert [-r REV] NAME`."
+" 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"
-" :hg:`revert [-r REV] NAME` genutzt werden."
+" 'revert' genutzt werden."
msgid "cannot specify both -c/--check and -C/--clean"
msgstr ""
"Es können nicht gleichzeitig -c/--check und -C/--clean angegeben werden"
+msgid "uncommitted local changes"
+msgstr "Ausstehende nicht versionierte Änderungen"
+
msgid "verify the integrity of the repository"
msgstr ""
"Prüft die Integrität des Projektarchivs\n"
@@ -13532,19 +11604,31 @@ msgstr ""
" Auch die Integrität von Referenzen und Indizes wird geprüft.\n"
" "
+#, fuzzy
msgid " Verify the integrity of the current repository."
-msgstr " Prüft die Integrität des aktuellen Projektarchivs"
+msgstr ""
+"Prüft die Integrität des Projektarchivs\n"
+"\n"
+" Führt eine umfassende Prüfung des aktuellen Projektarchivs durch, "
+"rechnet\n"
+" alle Prüfsummen in Historie, Manifest und überwachten Dateien nach.\n"
+" Auch die Integrität von Referenzen und Indizes wird geprüft.\n"
+" "
+#, fuzzy
msgid ""
" This will perform an extensive check of the repository's\n"
" integrity, validating the hashes and checksums of each entry in\n"
" the changelog, manifest, and tracked files, as well as the\n"
" integrity of their crosslinks and indices."
msgstr ""
+"Prüft die Integrität des Projektarchivs\n"
+"\n"
" Führt eine umfassende Prüfung des aktuellen Projektarchivs durch, "
"rechnet\n"
" alle Prüfsummen in Historie, Manifest und überwachten Dateien nach.\n"
-" Auch die Integrität von Referenzen und Indizes wird geprüft."
+" Auch die Integrität von Referenzen und Indizes wird geprüft.\n"
+" "
msgid "output version and copyright information"
msgstr "Gibt Version und Copyright Information aus"
@@ -13553,2859 +11637,1476 @@ msgstr "Gibt Version und Copyright Information aus"
msgid "Mercurial Distributed SCM (version %s)\n"
msgstr ""
+#, fuzzy
msgid "(see http://mercurial.selenic.com for more information)"
-msgstr "(siehe http://mercurial.selenic.com für mehr Information)"
+msgstr ""
+" Siehe auch 'hg help urls' für das Format von Adressangaben.\n"
+" "
+#, fuzzy
msgid ""
-"Copyright (C) 2005-2012 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-2012 Matt Mackall und andere\n"
+"\n"
+"Copyright (C) 2005-2010 Matt Mackall <mpm@selenic.com> und andere\n"
"Dies ist freie Software; siehe Quellen für Kopierbestimmungen. Es besteht\n"
"KEINE Gewährleistung für das Programm, nicht einmal der Marktreife oder der\n"
"Verwendbarkeit für einen bestimmten Zweck.\n"
-#, python-format
-msgid "unknown mode %s"
-msgstr "Unbekannter Modus: %s"
-
-#, python-format
-msgid "unknown command %s"
-msgstr "unbekannter Befehl %s"
-
-#, python-format
-msgid "cannot include %s (%s)"
-msgstr "%s kann nicht einbezogen werden (%s)"
-
-#, python-format
-msgid "working directory has unknown parent '%s'!"
-msgstr "Arbeitsverzeichnis hat unbekannte Vorgängerversion '%s'!"
-
-#, python-format
-msgid "unknown revision '%s'"
-msgstr "Unbekannte Revision '%s'"
-
-msgid "not found in manifest"
-msgstr "nicht im Manifest gefunden"
-
-#, python-format
-msgid "no such file in rev %s"
-msgstr "Datei in Revision %s nicht gefunden"
-
-msgid "branch name not in UTF-8!"
-msgstr "Branchname ist nicht in UTF-8!"
-
-#, python-format
-msgid "%s does not exist!\n"
-msgstr "%s existiert nicht!\n"
-
-#, python-format
-msgid ""
-"%s: up to %d MB of RAM may be required to manage this file\n"
-"(use 'hg revert %s' to cancel the pending addition)\n"
-msgstr ""
-
-#, python-format
-msgid "%s not added: only files and symlinks supported currently\n"
-msgstr ""
-"%s nicht hinzugefügt: Nur Dateien und symbolische Verknüpfungen werden\n"
-"zur Zeit unterstützt\n"
-
-#, python-format
-msgid "%s already tracked!\n"
-msgstr "%s ist bereits versioniert!\n"
-
-#, python-format
-msgid "%s not tracked!\n"
-msgstr "%s nicht versioniert!\n"
-
-#, python-format
-msgid "%s not removed!\n"
-msgstr "%s nicht entfernt!\n"
-
-#, python-format
-msgid "copy failed: %s is not a file or a symbolic link\n"
-msgstr ""
-"Kopieren fehlgeschlagen: %s ist keine Datei oder eine symbolische "
-"Verknüpfung\n"
-
-#, python-format
-msgid "invalid character in dag description: %s..."
-msgstr "Ungültiges Zeichen in dag Beschreibung: %s..."
-
-#, python-format
-msgid "expected id %i, got %i"
-msgstr ""
-
-#, python-format
-msgid "parent id %i is larger than current id %i"
-msgstr ""
-
-#, python-format
-msgid "invalid event type in dag: %s"
-msgstr "Ungültiger Ereignistyp in dag: %s"
-
-msgid "nullid"
-msgstr ""
-
-msgid "working directory state appears damaged!"
-msgstr "Status des Arbeitsverzeichnis scheint beschädigt zu sein!"
-
-#, python-format
-msgid "directory %r already in dirstate"
-msgstr "Verzeichnis %r ist bereits im dirstate"
-
-#, python-format
-msgid "file %r in dirstate clashes with %r"
-msgstr "Datei %r im dirstate steht im Konflikt mit %r"
-
-#, python-format
-msgid "setting %r to other parent only allowed in merges"
-msgstr ""
-
-msgid "unknown"
-msgstr "Unbekannt"
-
-msgid "character device"
-msgstr "Zeichenorientiertes Gerät"
-
-msgid "block device"
-msgstr "Blockorientiertes Gerät"
-
-msgid "fifo"
-msgstr "FIFO"
-
-msgid "socket"
-msgstr "Socket"
-
-msgid "directory"
-msgstr "Verzeichnis"
-
-#, python-format
-msgid "unsupported file type (type is %s)"
-msgstr "nicht unterstützter Dateityp (Typ %s)"
-
-#, python-format
-msgid "push creates new remote branches: %s!"
-msgstr "Push erzeugt neuen entfernten Zweig '%s'!"
-
-msgid "use 'hg push --new-branch' to create new remote branches"
-msgstr "Verwende 'hg push --new-branch' um dies zu erlauben."
-
-#, python-format
-msgid "push creates new remote head %s on branch '%s'!"
-msgstr "Push erzeugt neuen Kopf %s auf entfernten Zweig '%s'!"
-
-#, python-format
-msgid "push creates new remote head %s!"
-msgstr "Push erzeugt neuen entfernten Kopfe %s!"
-
-msgid "you should pull and merge or use push -f to force"
-msgstr ""
-"Sie sollten zuerst synchronisieren (pull) und Zusammenführen (merge), oder -"
-"f/--force zum Erzwingen verwenden"
-
-msgid "did you forget to merge? use push -f to force"
-msgstr "(Haben Sie vergessen zu mergen? Nutze push -f um zu erzwingen)"
-
-#, python-format
-msgid "new remote heads on branch '%s'\n"
-msgstr "Neuer entfernter Kopf auf Zweig '%s'\n"
-
-#, python-format
-msgid "new remote head %s\n"
-msgstr "Neuer entfernter Kopf %s\n"
-
-msgid "note: unsynced remote changes!\n"
-msgstr "Hinweis: Nicht synchronisierte entfernte Änderungen!\n"
-
-#, python-format
-msgid "abort: %s\n"
-msgstr "Abbruch: %s\n"
-
-#, python-format
-msgid "(%s)\n"
-msgstr ""
-
-#, python-format
-msgid "hg: parse error at %s: %s\n"
-msgstr "hg: Parserfehler bei %s: %s\n"
-
-#, python-format
-msgid "hg: parse error: %s\n"
-msgstr "hg: Parserfehler: %s\n"
-
-msgid "entering debugger - type c to continue starting hg or h for help\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"hg: command '%s' is ambiguous:\n"
-" %s\n"
-msgstr ""
-"hg: Kommando '%s' ist mehrdeutig:\n"
-" %s\n"
-
-#, python-format
-msgid "timed out waiting for lock held by %s"
-msgstr "Zeitüberschreitung beim Warten auf Sperre von %s"
-
-#, python-format
-msgid "lock held by %s"
-msgstr "Zur Zeit von %s gesperrt"
-
-#, python-format
-msgid "abort: %s: %s\n"
-msgstr "Abbruch: %s: %s\n"
-
-#, python-format
-msgid "abort: could not lock %s: %s\n"
-msgstr "Abbruch: Kann %s nicht sperren: %s\n"
-
-#, python-format
-msgid "hg %s: %s\n"
-msgstr ""
+msgid "repository root directory or name of overlay bundle file"
+msgstr "Wurzelverzeichnis des Archivs oder Name einer Bündeldatei"
-#, python-format
-msgid "hg: %s\n"
+msgid "DIR"
msgstr ""
-msgid "abort: remote error:\n"
-msgstr "Abbruch: Entfernter Fehler:\n"
-
-#, python-format
-msgid "abort: %s!\n"
-msgstr "Abbruch: %s!\n"
-
-#, python-format
-msgid "abort: %s"
-msgstr "Abbruch: %s"
-
-msgid " empty string\n"
-msgstr " leere Zeichenkette\n"
-
-msgid "killed!\n"
-msgstr "getötet!\n"
-
-#, python-format
-msgid "hg: unknown command '%s'\n"
-msgstr "hg: unbekannter Befehl '%s'\n"
-
-msgid "(did you forget to compile extensions?)\n"
-msgstr "(Erweiterungen nicht kompiliert?)\n"
-
-msgid "(is your Python install correct?)\n"
-msgstr "(Python-Installation korrekt?)\n"
+msgid "change working directory"
+msgstr "Wechselt das Arbeitsverzeichnis"
-#, python-format
-msgid "abort: error: %s\n"
-msgstr "Abbruch: Fehler: %s\n"
+msgid "do not prompt, assume 'yes' for any required answers"
+msgstr "Keine Abfragen, nimmt 'ja' für jede Nachfrage an"
-msgid "broken pipe\n"
-msgstr "Datenübergabe unterbrochen\n"
+msgid "suppress output"
+msgstr "Unterdrückt Ausgabe"
-msgid "interrupted!\n"
-msgstr "unterbrochen!\n"
+msgid "enable additional output"
+msgstr "Ausgabe weiterer Informationen"
-msgid ""
-"\n"
-"broken pipe\n"
+msgid "set/override config option (use 'section.name=value')"
msgstr ""
-"\n"
-"Datenübergabe unterbrochen\n"
-
-msgid "abort: out of memory\n"
-msgstr "Abbruch: Unzureichender Arbeitsspeicher\n"
-
-msgid "the extension author."
-msgstr "Der Autor der Erweiterung"
+"Setze/Ãœberschreibe Konfigurationsoption: %s (nutze --config Sektion."
+"Name=Wert)"
-#, python-format
-msgid ""
-"** Unknown exception encountered with possibly-broken third-party extension "
-"%s\n"
-"** which supports versions %s of Mercurial.\n"
-"** Please disable %s and try your action again.\n"
-"** If that fixes the bug please report it to %s\n"
+msgid "CONFIG"
msgstr ""
-msgid "** unknown exception encountered, please report by visiting\n"
-msgstr "** Unbekannter Fehler - bitte melden auf:\n"
-
-msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
-msgstr "** http://mercurial.selenic.com/wiki/BugTracker\n"
-
-#, python-format
-msgid "** Python %s\n"
-msgstr "** Python %s\n"
-
-#, python-format
-msgid "** Mercurial Distributed SCM (version %s)\n"
-msgstr "** Mercurial Distributed SCM (Version %s)\n"
-
-#, python-format
-msgid "** Extensions loaded: %s\n"
-msgstr "** Erweiterungen geladen: %s\n"
+msgid "enable debugging output"
+msgstr "Aktiviert Debugausgaben"
-msgid "too few arguments for command alias"
-msgstr ""
+msgid "start debugger"
+msgstr "Startet den Debugger"
-#, python-format
-msgid "no definition for alias '%s'\n"
-msgstr ""
+msgid "set the charset encoding"
+msgstr "Setzt die Zeichenkodierung"
-#, python-format
-msgid ""
-"error in definition for alias '%s': %s may only be given on the command "
-"line\n"
+msgid "ENCODE"
msgstr ""
-#, python-format
-msgid "alias '%s' resolves to unknown command '%s'\n"
-msgstr "Alias '%s' verweist auf unbekannten Befehl '%s'\n"
-
-#, python-format
-msgid "alias '%s' resolves to ambiguous command '%s'\n"
+msgid "MODE"
msgstr ""
-#, python-format
-msgid "malformed --config option: %r (use --config section.name=value)"
-msgstr "fehlerhafte --config Option: %s (nutze --config Abschnitt.Name=Wert)"
-
-#, python-format
-msgid "error getting current working directory: %s"
-msgstr "Fehler beim Finden des aktuellen Arbeitsverzeichnisses: %s"
-
-#, python-format
-msgid "extension '%s' overrides commands: %s\n"
-msgstr "Erweiterung '%s' überschreibt die Befehle: %s\n"
-
-msgid "option --config may not be abbreviated!"
-msgstr "Option --config kann nicht abgekürzt werden!"
+msgid "set the charset encoding mode"
+msgstr "Setzt den Modus der Zeichenkodierung"
-msgid "option --cwd may not be abbreviated!"
-msgstr "Option --cwd kann nicht abgekürzt werden!"
+msgid "always print a traceback on exception"
+msgstr "Gibt die Aufrufhierarchie einer Ausnahmebedingung aus"
-msgid ""
-"option -R has to be separated from other options (e.g. not -qR) and --"
-"repository may only be abbreviated as --repo!"
-msgstr ""
-"Option -R muss von anderen Optionen getrennt werden (also z.B. nicht -qR) "
-"und --repository kann nur als --repo abgekürzt werden!"
+msgid "time how long the command takes"
+msgstr "Gibt die Dauer des Befehls aus"
-#, python-format
-msgid "Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
-msgstr ""
+msgid "print command execution profile"
+msgstr "Gibt das Ausführungsprofil des Befehls aus"
-#, python-format
-msgid "repository '%s' is not local"
-msgstr "Projektarchiv '%s' ist nicht lokal"
+msgid "output version information and exit"
+msgstr "Gibt Versionsinformation aus und beendet sich"
-#, python-format
-msgid "no repository found in '%s' (.hg not found)"
-msgstr "Kein Projektarchiv (.hg Verzeichnis) in %s gefunden"
+msgid "display help and exit"
+msgstr "Gibt Hilfe aus und beendet sich"
-msgid "warning: --repository ignored\n"
-msgstr "Warnung: --repository Option ignoriert\n"
+msgid "do not perform actions, just print output"
+msgstr "Führt die Aktionen nicht aus, sondern zeigt nur die Ausgabe"
-#, python-format
-msgid "unrecognized profiling format '%s' - Ignored\n"
-msgstr ""
+msgid "specify ssh command to use"
+msgstr "Spezifiziert den zu nutzenden SSH-Befehl"
-msgid ""
-"lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/"
-"misc/lsprof/"
-msgstr ""
+msgid "specify hg command to run on the remote side"
+msgstr "Spezifiziert den hg-Befehl, der entfernt ausgeführt wird"
-msgid "statprof not available - install using \"easy_install statprof\""
+msgid "do not verify server certificate (ignoring web.cacerts config)"
msgstr ""
-#, python-format
-msgid "invalid sampling frequency '%s' - ignoring\n"
+msgid "PATTERN"
msgstr ""
-#, python-format
-msgid "unrecognized profiler '%s' - ignored\n"
-msgstr "Unbekannter Profiler '%s' - wird ignoriert\n"
+msgid "include names matching the given patterns"
+msgstr "Namen hinzufügen, die auf das angegebene Muster passen"
-#, python-format
-msgid "*** failed to import extension %s from %s: %s\n"
-msgstr ""
+msgid "exclude names matching the given patterns"
+msgstr "Namen ausschließen, die auf das angegebene Muster passen"
-#, python-format
-msgid "*** failed to import extension %s: %s\n"
-msgstr ""
+#, fuzzy
+msgid "use text as commit message"
+msgstr "Nutzt <Text> als Commit-Nachricht"
-#, python-format
-msgid "warning: error finding commands in %s\n"
-msgstr "Warnung: Fehler beim Suchen von Kommandos in %s\n"
+#, fuzzy
+msgid "read commit message from file"
+msgstr "Liest Commit-Nachricht aus <Datei>"
-#, python-format
-msgid "couldn't find merge tool %s\n"
-msgstr ""
+msgid "record datecode as commit date"
+msgstr "Protokolliert Datumscode als Commit-Datum"
-#, python-format
-msgid "tool %s can't handle symlinks\n"
-msgstr ""
+msgid "record the specified user as committer"
+msgstr "Protokolliert den angegebenen Nutzer als Autor"
-#, python-format
-msgid "tool %s can't handle binary\n"
+msgid "STYLE"
msgstr ""
-#, python-format
-msgid "tool %s requires a GUI\n"
-msgstr ""
+msgid "display using template map file"
+msgstr "Anzeige unter Nutzung der Vorlagenzuordnungsdatei"
-msgid ""
-"``internal:prompt``\n"
-"Asks the user which of the local or the other version to keep as\n"
-" the merged version."
-msgstr ""
+msgid "display with template"
+msgstr "Anzeige mit Vorlage"
-#, python-format
-msgid ""
-" no tool found to merge %s\n"
-"keep (l)ocal or take (o)ther?"
-msgstr ""
+msgid "do not show merges"
+msgstr "Zeigt keine Merges"
-msgid ""
-"``internal:local``\n"
-"Uses the local version of files as the merged version."
-msgstr ""
+msgid "output diffstat-style summary of changes"
+msgstr "Zusammenfassung der Änderungen im diffstat-Stil"
-msgid ""
-"``internal:other``\n"
-"Uses the other version of files as the merged version."
-msgstr ""
+msgid "treat all files as text"
+msgstr "Behandelt alle Dateien als Text"
-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 ""
+#, fuzzy
+msgid "omit dates from diff headers"
+msgstr "Fügt Datum nicht im Kopf des Diff ein"
-#, python-format
-msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
-msgstr ""
+msgid "show which function each change is in"
+msgstr "Zeigt die Funktion, in der die Änderung passiert ist"
-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."
+msgid "produce a diff that undoes the changes"
msgstr ""
-#, python-format
-msgid "merging %s incomplete! (edit conflicts, then use 'hg resolve --mark')\n"
-msgstr ""
+msgid "ignore white space when comparing lines"
+msgstr "Ignoriert Leerzeichen beim Vergleich von Zeilen"
-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 "ignore changes in the amount of white space"
+msgstr "Ignoriert Änderungen bei der Anzahl von Leerzeichen"
-#, python-format
-msgid "merging %s failed!\n"
-msgstr ""
+msgid "ignore changes whose lines are all blank"
+msgstr "Ignoriert Änderungen, die nur aus Leerzeilen bestehen"
-#, python-format
-msgid "was merge of '%s' successful (yn)?"
-msgstr ""
+msgid "number of lines of context to show"
+msgstr "Anzahl der anzuzeigenden Kontextzeilen"
-#, python-format
-msgid ""
-" output file %s appears unchanged\n"
-"was merge successful (yn)?"
+msgid "SIMILARITY"
msgstr ""
-msgid "unterminated string"
-msgstr "nicht abgeschlossene Zeichenkette"
-
-msgid "syntax error"
-msgstr "Syntaxfehler"
-
-msgid "missing argument"
-msgstr "fehlendes Argument"
+msgid "guess renamed files by similarity (0<=s<=100)"
+msgstr "rät Umbenennungn anhand der Ähnlichkeit (0<=s<=100)"
-msgid "can't use a list in this context"
-msgstr "In diesem Kontext kann keine Liste verwendet werden"
+#, fuzzy
+msgid "recurse into subrepositories"
+msgstr "Zielarchivtyp"
-msgid ""
-"``modified()``\n"
-" File that is modified according to status."
-msgstr ""
+msgid "[OPTION]... [FILE]..."
+msgstr "[OPTION]... [DATEI]..."
-#. i18n: "modified" is a keyword
-msgid "modified takes no arguments"
-msgstr "'modified' erwartet keine Argumente"
+msgid "annotate the specified revision"
+msgstr "Annotiert die angegebene Revision"
-msgid ""
-"``added()``\n"
-" File that is added according to status."
+#, fuzzy
+msgid "follow copies/renames and list the filename (DEPRECATED)"
msgstr ""
+"Kopien/Umbenennungen können nur zu expliziten Dateinamen verfolgt werden"
-#. i18n: "added" is a keyword
-msgid "added takes no arguments"
-msgstr "'added' erwartet keine Argumente"
+#, fuzzy
+msgid "don't follow copies and renames"
+msgstr "Folgt Dateikopien und Umbenennungen"
-msgid ""
-"``removed()``\n"
-" File that is removed according to status."
-msgstr ""
+msgid "list the author (long with -v)"
+msgstr "Listet den Autor auf (lang mit -v)"
-#. i18n: "removed" is a keyword
-msgid "removed takes no arguments"
-msgstr "'erwartet' erwartet keine Argumente"
+#, fuzzy
+msgid "list the filename"
+msgstr "Listet den Änderungssatz auf"
-msgid ""
-"``deleted()``\n"
-" File that is deleted according to status."
-msgstr ""
+msgid "list the date (short with -q)"
+msgstr "Listet das Datum auf (kurz mit -q)"
-#. i18n: "deleted" is a keyword
-msgid "deleted takes no arguments"
-msgstr "'deleted' erwartet keine Argumente"
+msgid "list the revision number (default)"
+msgstr "Listet die Revisionsnummer auf (Standard)"
-msgid ""
-"``unknown()``\n"
-" File that is unknown according to status. These files will only be\n"
-" considered if this predicate is used."
-msgstr ""
+msgid "list the changeset"
+msgstr "Listet den Änderungssatz auf"
-#. i18n: "unknown" is a keyword
-msgid "unknown takes no arguments"
-msgstr "'unknown' erwartet keine Argumente"
+msgid "show line number at the first appearance"
+msgstr "Zeigt die Zeilennummer beim ersten Auftreten "
-msgid ""
-"``ignored()``\n"
-" File that is ignored according to status. These files will only be\n"
-" considered if this predicate is used."
-msgstr ""
+msgid "[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FILE..."
+msgstr "[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] DATEI..."
-#. i18n: "ignored" is a keyword
-msgid "ignored takes no arguments"
-msgstr "'ignored' erwartet keine Argumente"
+msgid "do not pass files through decoders"
+msgstr "Dateien nicht dekodieren"
-msgid ""
-"``clean()``\n"
-" File that is clean according to status."
+msgid "PREFIX"
msgstr ""
-#. i18n: "clean" is a keyword
-msgid "clean takes no arguments"
-msgstr "'clean' erwartet keine Argumente"
-
-#, python-format
-msgid "not a function: %s"
-msgstr "keine Funktion: %s"
-
-msgid ""
-"``binary()``\n"
-" File that appears to be binary (contains NUL bytes)."
-msgstr ""
+msgid "directory prefix for files in archive"
+msgstr "Verzeichnispräfix für Dateien im Archiv"
-#. i18n: "binary" is a keyword
-msgid "binary takes no arguments"
-msgstr "'binary' erwartet keine Argumente"
+msgid "revision to distribute"
+msgstr "zu verteilende Revision"
-msgid ""
-"``exec()``\n"
-" File that is marked as executable."
-msgstr ""
-"``exec()``\n"
-" Datei ist als ausführbar markiert."
+msgid "type of distribution to create"
+msgstr "zu erstellender Distributionstyp"
-#. i18n: "exec" is a keyword
-msgid "exec takes no arguments"
-msgstr "'exec' erwartet keine Argumente"
+msgid "[OPTION]... DEST"
+msgstr "[OPTION]... ZIEL"
-msgid ""
-"``symlink()``\n"
-" File that is marked as a symlink."
-msgstr ""
+msgid "merge with old dirstate parent after backout"
+msgstr "Führt mit Vorgänger im Status vor Rücknahme zusammen"
-#. i18n: "symlink" is a keyword
-msgid "symlink takes no arguments"
-msgstr "'symlink' erwartet keine Argumente"
+msgid "parent to choose when backing out merge"
+msgstr "Wählt einen Vorgänger bei Rücknahme einer Zusammenführung"
-msgid ""
-"``resolved()``\n"
-" File that is marked resolved according to the resolve state."
-msgstr ""
-"``resolved()``\n"
-" Datei, deren Konflikt als aufgelöst markiert ist."
+#, fuzzy
+msgid "specify merge tool"
+msgstr "gibt cvsroot an"
-#. i18n: "resolved" is a keyword
-msgid "resolved takes no arguments"
-msgstr "'resolved' erwartet keine Argumente"
+msgid "revision to backout"
+msgstr "Die zurückzunehmende Revision"
-msgid ""
-"``unresolved()``\n"
-" File that is marked unresolved according to the resolve state."
+msgid "[OPTION]... [-r] REV"
msgstr ""
-#. i18n: "unresolved" is a keyword
-msgid "unresolved takes no arguments"
-msgstr "'unresolved' erwartet keine Argumente"
-
-msgid ""
-"``hgignore()``\n"
-" File that matches the active .hgignore pattern."
-msgstr ""
-"``hgignore()``\n"
-" Datei, die einem aktives .hgignore-Muster entspricht."
+msgid "reset bisect state"
+msgstr "Setzt Status der Suche zurück"
-msgid "hgignore takes no arguments"
-msgstr "'hgignore' erwartet keine Argumente"
+msgid "mark changeset good"
+msgstr "Markiert Änderungssatz als fehlerfrei"
-msgid ""
-"``grep(regex)``\n"
-" File contains the given regular expression."
-msgstr ""
+msgid "mark changeset bad"
+msgstr "Markiert Änderungssatz als fehlerbehaftet"
-msgid "grep requires a pattern"
-msgstr "'grep' erwartet ein Muster"
+msgid "skip testing changeset"
+msgstr "Überspringt das Testen dieses Änderungssatzes"
-#, python-format
-msgid "couldn't parse size: %s"
-msgstr "Konnte Größe %s nicht verarbeiten"
+msgid "use command to check changeset state"
+msgstr "Nutzt eine Programm um den Fehlerstatus zu bestimmen"
-msgid ""
-"``size(expression)``\n"
-" File size matches the given expression. Examples:"
-msgstr ""
+msgid "do not update to target"
+msgstr "Führe keine Aktualisierung der Dateien durch"
-msgid ""
-" - 1k (files from 1024 to 2047 bytes)\n"
-" - < 20k (files less than 20480 bytes)\n"
-" - >= .5MB (files at least 524288 bytes)\n"
-" - 4k - 1MB (files from 4096 bytes to 1048576 bytes)"
-msgstr ""
+#, fuzzy
+msgid "[-gbsr] [-U] [-c CMD] [REV]"
+msgstr "[-gbsr] [-c BEFEHL] [REV]"
-#. i18n: "size" is a keyword
-msgid "size requires an expression"
-msgstr "'size' erwartet einen Ausdruck"
+msgid "force"
+msgstr "erzwinge"
-msgid ""
-"``encoding(name)``\n"
-" File can be successfully decoded with the given character\n"
-" encoding. May not be useful for encodings other than ASCII and\n"
-" UTF-8."
-msgstr ""
+msgid "delete a given bookmark"
+msgstr "Löscht ein gegebenes Lesezeichen"
-#. i18n: "encoding" is a keyword
-msgid "encoding requires an encoding name"
-msgstr "'encoding' erwartet einen Kodierungsnamen"
+msgid "rename a given bookmark"
+msgstr "Benennt ein gegebenes Lesezeichen um"
-#, python-format
-msgid "unknown encoding '%s'"
-msgstr "Unbekannte Kodierung '%s'"
+msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
+msgstr "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]"
-msgid ""
-"``copied()``\n"
-" File that is recorded as being copied."
-msgstr ""
-"``copied()``\n"
-" Datei, die als kopiert markiert ist."
+msgid "set branch name even if it shadows an existing branch"
+msgstr "Setzt Branchnamen, selbst wenn es einen bestehenden Branch verdeckt"
-#. i18n: "copied" is a keyword
-msgid "copied takes no arguments"
-msgstr "'copied' erwartet keine Argumente"
+msgid "reset branch name to parent branch name"
+msgstr "Setzt Branchnamen zum Namen des Vorgängers zurück"
-msgid ""
-"``subrepo([pattern])``\n"
-" Subrepositories whose paths match the given pattern."
+msgid "[-fC] [NAME]"
msgstr ""
-"``subrepo([Muster])``\n"
-" Unterarchive (Subrepositories) deren Pfad auf das\n"
-" Muster passen."
-
-#. i18n: "subrepo" is a keyword
-msgid "subrepo takes at most one argument"
-msgstr "subrepo erwartet mindestens ein Argument"
-
-msgid "subrepo requires a pattern or no arguments"
-msgstr "subrepo erwartet ein Muster oder keine Argumente"
-msgid "invalid token"
-msgstr "Ungültiges Token"
-
-msgid "starting revisions are not directly related"
-msgstr "Startrevisionen haben keinen direkten Bezug"
+msgid "show only branches that have unmerged heads"
+msgstr "Zeigt nur Branches deren Köpfe nicht zusammengeführt wurden"
-#, python-format
-msgid "inconsistent state, %s:%s is good and bad"
-msgstr "Mehrdeutiger Status, %s:%s ist sowohl gut als auch schlecht"
+msgid "show normal and closed branches"
+msgstr "Zeigt normale und geschlossene Branches"
-#, python-format
-msgid "unknown bisect kind %s"
+msgid "[-ac]"
msgstr ""
-msgid "invalid bisect state"
-msgstr "Ungültiger bisect-Status"
-
-#. i18n: bisect changeset status
-msgid "good"
-msgstr "gut"
-
-#. i18n: bisect changeset status
-msgid "bad"
-msgstr "schlecht"
-
-#. i18n: bisect changeset status
-msgid "skipped"
-msgstr "übersprungen"
-
-#. i18n: bisect changeset status
-msgid "untested"
-msgstr "ungetestet"
-
-#. i18n: bisect changeset status
-msgid "good (implicit)"
-msgstr "gut (implizit)"
-
-#. i18n: bisect changeset status
-msgid "bad (implicit)"
-msgstr "schlecht (implizit)"
+#, fuzzy
+msgid "run even when the destination is unrelated"
+msgstr "Auch ausführen wenn das entfernte Projektarchiv keinen Bezug hat"
-msgid "disabled extensions:"
-msgstr "Inaktive Erweiterungen:"
+#, fuzzy
+msgid "a changeset intended to be added to the destination"
+msgstr "Ein Basisänderungssatz anstelle eines Ziels"
-msgid "VALUE"
-msgstr "WERT"
+#, fuzzy
+msgid "a specific branch you would like to bundle"
+msgstr "Revision die geholt werden soll"
-msgid "DEPRECATED"
-msgstr "VERALTET"
+#, fuzzy
+msgid "a base changeset assumed to be available at the destination"
+msgstr "Ein Basisänderungssatz anstelle eines Ziels"
-msgid ""
-"\n"
-"[+] marked option can be specified multiple times\n"
-msgstr ""
-"\n"
-"Mit [+] markierte Optionen können mehrfach angegeben werden\n"
+msgid "bundle all changesets in the repository"
+msgstr "Bündelt alle Änderungssätze des Projektarchivs"
-msgid "Configuration Files"
-msgstr "Konfigurationsdateien"
+msgid "bundle compression type to use"
+msgstr "Kompressionstyp für die Ausgabedatei"
-msgid "Date Formats"
-msgstr "Datumsformate"
+#, fuzzy
+msgid "[-f] [-t TYPE] [-a] [-r REV]... [--base REV]... FILE [DEST]"
+msgstr "[-f] [-a] [-r REV]... [--base REV]... DATEI [ZIEL]"
-msgid "File Name Patterns"
-msgstr "Dateimuster"
+msgid "print output to file with formatted name"
+msgstr "Schreibt Ausgabe in Datei mit formatiertem Namen"
-msgid "Environment Variables"
-msgstr "Umgebungsvariablen"
+msgid "print the given revision"
+msgstr "Gibt die gegebene Revision aus"
-msgid "Specifying Single Revisions"
-msgstr "Angabe einzelner Revisionen"
+msgid "apply any matching decode filter"
+msgstr "Führt alle passenden Dekodier-Filter aus"
-msgid "Specifying Multiple Revisions"
-msgstr "Angabe mehrerer Revisionen"
+msgid "[OPTION]... FILE..."
+msgstr "[OPTION]... DATEI..."
-msgid "Specifying Revision Sets"
-msgstr "Angabe von Änderungssatzbereichen"
+#, fuzzy
+msgid "the clone will include an empty working copy (only a repository)"
+msgstr "Der Klon wird nur das Projektarchiv enthalten (keine Arbeitskopie)"
-msgid "Specifying File Sets"
+msgid "revision, tag or branch to check out"
msgstr ""
-msgid "Diff Formats"
-msgstr "Diff-Formate"
-
-msgid "Merge Tools"
-msgstr "Werkzeuge zum Zusammenführen"
-
-msgid "Template Usage"
-msgstr "Nutzung von Vorlagen"
-
-msgid "URL Paths"
-msgstr "URL-Pfade"
-
-msgid "Using Additional Features"
-msgstr "Benutzung erweiterter Funktionen"
-
-msgid "Subrepositories"
-msgstr "Unterarchive"
-
-msgid "Configuring hgweb"
-msgstr "hgweb-Konfiguration"
+#, fuzzy
+msgid "include the specified changeset"
+msgstr "Faltet die erzeugten Änderungssätze nach dem Rebase zusammen"
-msgid "Glossary"
-msgstr "Glossar"
+#, fuzzy
+msgid "clone only the specified branch"
+msgstr "nur die Änderungen des angegebenen Branches zurückgeben"
-msgid "Syntax for Mercurial Ignore Files"
-msgstr "Syntax für Mercurials 'ignore'-Dateien"
+msgid "[OPTION]... SOURCE [DEST]"
+msgstr "[OPTION]... QUELLE [ZIEL]"
-msgid "Working with Phases"
-msgstr "Arbeiten mit Phasen"
+msgid "mark new/missing files as added/removed before committing"
+msgstr "Markiert neue/fehlende Dateien als hinzugefügt/entfernt"
-msgid ""
-"The Mercurial system uses a set of configuration files to control\n"
-"aspects of its behavior."
+msgid "mark a branch as closed, hiding it from the branch list"
msgstr ""
+"Markiert einen Branch als geschlossen und blendet ihn in der Branchlist aus"
-msgid ""
-"The configuration files use a simple ini-file format. A configuration\n"
-"file consists of sections, led by a ``[section]`` header and followed\n"
-"by ``name = value`` entries::"
-msgstr ""
-"Für die Konfigurationsdateien wird ein einfaches ini-Dateiformat verwendet.\n"
-"Die Datei enthält Abschnitte (durch ``[Abschnittsname]`` eingeleitet),\n"
-"welche ihrerseits Zeilen der Form ``name = wert`` enthalten::"
+msgid "record a copy that has already occurred"
+msgstr "Identifiziert eine Kopie, die bereits stattgefunden hat"
-msgid ""
-" [ui]\n"
-" username = Firstname Lastname <firstname.lastname@example.net>\n"
-" verbose = True"
-msgstr ""
-" [ui]\n"
-" username = Vorname Nachname <vorname.nachname@example.net>\n"
-" verbose = True"
+msgid "forcibly copy over an existing managed file"
+msgstr "Erzwingt ein Ãœberschreiben des Kopierziels"
-msgid ""
-"The above entries will be referred to as ``ui.username`` and\n"
-"``ui.verbose``, respectively. See the Syntax section below."
-msgstr ""
-"Die obigen Beispieleinträge werden als ``ui.username`` bzw. ``ui.verbose``\n"
-"bezeichnet. Siehe auch unten den Abschnitt Syntax."
+msgid "[OPTION]... [SOURCE]... DEST"
+msgstr "[OPTION]... [QUELLE]... ZIEL"
-msgid ""
-"Files\n"
-"-----"
+msgid "[INDEX] REV1 REV2"
msgstr ""
-msgid ""
-"Mercurial reads configuration data from several files, if they exist.\n"
-"These files do not exist by default and you will have to create the\n"
-"appropriate configuration files yourself: global configuration like\n"
-"the username setting is typically put into\n"
-"``%USERPROFILE%\\mercurial.ini`` or ``$HOME/.hgrc`` and local\n"
-"configuration is put into the per-repository ``<repo>/.hg/hgrc`` file."
-msgstr ""
+#, fuzzy
+msgid "add single file mergeable changes"
+msgstr "Füge Dateiänderungen hinzu\n"
-msgid ""
-"The names of these files depend on the system on which Mercurial is\n"
-"installed. ``*.rc`` files from a single directory are read in\n"
-"alphabetical order, later ones overriding earlier ones. Where multiple\n"
-"paths are given below, settings from earlier paths override later\n"
-"ones."
+msgid "add single file all revs append to"
msgstr ""
-msgid "| (All) ``<repo>/.hg/hgrc``"
+msgid "add single file all revs overwrite"
msgstr ""
-msgid ""
-" Per-repository configuration options that only apply in a\n"
-" particular repository. This file is not version-controlled, and\n"
-" will not get transferred during a \"clone\" operation. Options in\n"
-" this file override options in all other configuration files. On\n"
-" Plan 9 and Unix, most of this file will be ignored if it doesn't\n"
-" belong to a trusted user or to a trusted group. See the documentation\n"
-" for the ``[trusted]`` section below for more details."
+msgid "add new file at each rev"
msgstr ""
-msgid ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
-"| (Unix) ``$HOME/.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
-"| (Windows) ``%HOME%\\.hgrc``\n"
-"| (Windows) ``%HOME%\\Mercurial.ini``"
-msgstr ""
+#, fuzzy
+msgid "[OPTION]... TEXT"
+msgstr "[OPTION]... ZIEL"
-msgid ""
-" Per-user configuration file(s), for the user running Mercurial. On\n"
-" Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these\n"
-" files apply to all Mercurial commands executed by this user in any\n"
-" directory. Options in these files override per-system and per-"
-"installation\n"
-" options."
-msgstr ""
+msgid "[COMMAND]"
+msgstr "[BEFEHL]"
-msgid ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``/etc/mercurial/hgrc``\n"
-"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
-msgstr ""
+msgid "show the command options"
+msgstr "Zeigt alle Optionen des Befehls"
-msgid ""
-" Per-system configuration files, for the system on which Mercurial\n"
-" is running. Options in these files apply to all Mercurial commands\n"
-" executed by any user in any directory. Options in these files\n"
-" override per-installation options."
-msgstr ""
+msgid "[-o] CMD"
+msgstr "[-o] BEFEHL"
-msgid ""
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``<install-root>/etc/mercurial/hgrc``\n"
-"| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
+msgid "use tags as labels"
msgstr ""
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``<install-root>/etc/mercurial/hgrc``\n"
-"| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
-msgid ""
-" Per-installation configuration files, searched for in the\n"
-" directory where Mercurial is installed. ``<install-root>`` is the\n"
-" parent directory of the **hg** executable (or symlink) being run. For\n"
-" example, if installed in ``/shared/tools/bin/hg``, Mercurial will look\n"
-" in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply\n"
-" to all Mercurial commands executed by any user in any directory."
-msgstr ""
+#, fuzzy
+msgid "annotate with branch names"
+msgstr "Erhält die ursprünglichen Zweignamen"
-msgid ""
-"| (Windows) ``<install-dir>\\Mercurial.ini`` **or**\n"
-"| (Windows) ``<install-dir>\\hgrc.d\\*.rc`` **or**\n"
-"| (Windows) ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``"
-msgstr ""
+#, fuzzy
+msgid "use dots for runs"
+msgstr "Stil nicht gefunden: %s"
-msgid ""
-" Per-installation/system configuration files, for the system on\n"
-" which Mercurial is running. Options in these files apply to all\n"
-" Mercurial commands executed by any user in any directory. Registry\n"
-" keys contain PATH-like strings, every part of which must reference\n"
-" a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will\n"
-" be read. Mercurial checks each of these locations in the specified\n"
-" order until one or more configuration files are detected."
+msgid "separate elements by spaces"
msgstr ""
-msgid ""
-"Syntax\n"
-"------"
-msgstr ""
+#, fuzzy
+msgid "[OPTION]... [FILE [REV]...]"
+msgstr "[OPTION]... [DATEI]..."
-msgid ""
-"A configuration file consists of sections, led by a ``[section]`` header\n"
-"and followed by ``name = value`` entries (sometimes called\n"
-"``configuration keys``)::"
-msgstr ""
-"Die Datei enthält Abschnitte (durch ``[Abschnittsname]`` eingeleitet),\n"
-"welche ihrerseits Zeilen der Form ``name = wert`` enthalten (manchmal als\n"
-"``Konfigurationsschlüssel`` bezeichnet)::"
+msgid "try extended date formats"
+msgstr "versuche erweiterte Datumsformate"
-msgid ""
-" [spam]\n"
-" eggs=ham\n"
-" green=\n"
-" eggs"
-msgstr ""
+msgid "[-e] DATE [RANGE]"
+msgstr "[-e] DATUM [BEREICH]"
-msgid ""
-"Each line contains one entry. If the lines that follow are indented,\n"
-"they are treated as continuations of that entry. Leading whitespace is\n"
-"removed from values. Empty lines are skipped. Lines beginning with\n"
-"``#`` or ``;`` are ignored and may be used to provide comments."
-msgstr ""
+msgid "FILE REV"
+msgstr "DATEI REV"
-msgid ""
-"Configuration keys can be set multiple times, in which case Mercurial\n"
-"will use the value that was configured last. As an example::"
-msgstr ""
+msgid "[PATH]"
+msgstr "[PFAD]"
-msgid ""
-" [spam]\n"
-" eggs=large\n"
-" ham=serrano\n"
-" eggs=small"
+msgid "revlog format"
msgstr ""
-msgid "This would set the configuration key named ``eggs`` to ``small``."
+msgid "REPO NAMESPACE [KEY OLD NEW]"
msgstr ""
-msgid ""
-"It is also possible to define a section multiple times. A section can\n"
-"be redefined on the same and/or on different configuration files. For\n"
-"example::"
-msgstr ""
+msgid "revision to rebuild to"
+msgstr "Basisrevision für die Änderungen"
-msgid ""
-" [foo]\n"
-" eggs=large\n"
-" ham=serrano\n"
-" eggs=small"
+msgid "[-r REV] [REV]"
msgstr ""
-msgid ""
-" [bar]\n"
-" eggs=ham\n"
-" green=\n"
-" eggs"
+msgid "revision to debug"
msgstr ""
-msgid ""
-" [foo]\n"
-" ham=prosciutto\n"
-" eggs=medium\n"
-" bread=toasted"
-msgstr ""
+msgid "[-r REV] FILE"
+msgstr "[-r REV] DATEI"
-msgid ""
-"This would set the ``eggs``, ``ham``, and ``bread`` configuration keys\n"
-"of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``,\n"
-"respectively. As you can see there only thing that matters is the last\n"
-"value that was set for each of the configuration keys."
+msgid "REV1 [REV2]"
msgstr ""
-msgid ""
-"If a configuration key is set multiple times in different\n"
-"configuration files the final value will depend on the order in which\n"
-"the different configuration files are read, with settings from earlier\n"
-"paths overriding later ones as described on the ``Files`` section\n"
-"above."
-msgstr ""
+msgid "do not display the saved mtime"
+msgstr "Zeigt gespeicherte Modifikationszeit nicht an"
-msgid ""
-"A line of the form ``%include file`` will include ``file`` into the\n"
-"current configuration file. The inclusion is recursive, which means\n"
-"that included files can include other files. Filenames are relative to\n"
-"the configuration file in which the ``%include`` directive is found.\n"
-"Environment variables and ``~user`` constructs are expanded in\n"
-"``file``. This lets you do something like::"
+msgid "[OPTION]..."
msgstr ""
-msgid " %include ~/.hgrc.d/$HOST.rc"
-msgstr ""
+msgid "revision to check"
+msgstr "Die zu prüfende Revision"
-msgid "to include a different configuration file on each computer you use."
-msgstr ""
+#, fuzzy
+msgid "[OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]..."
+msgstr "[OPTION]... [-r REV1 [-r REV2]] [DATEI]..."
-msgid ""
-"A line with ``%unset name`` will remove ``name`` from the current\n"
-"section, if it has been set previously."
-msgstr ""
+msgid "diff against the second parent"
+msgstr "Vergleicht mit der zweiten Vorgängerversion"
-msgid ""
-"The values are either free-form text strings, lists of text strings,\n"
-"or Boolean values. Boolean values can be set to true using any of \"1\",\n"
-"\"yes\", \"true\", or \"on\" and to false using \"0\", \"no\", \"false\", or "
-"\"off\"\n"
-"(all case insensitive)."
-msgstr ""
+#, fuzzy
+msgid "revisions to export"
+msgstr "zu mergende Revision"
-msgid ""
-"List values are separated by whitespace or comma, except when values are\n"
-"placed in double quotation marks::"
-msgstr ""
+msgid "[OPTION]... [-o OUTFILESPEC] REV..."
+msgstr "[OPTION]... [-o DATEINAMENMUSTER] REV..."
-msgid " allow_read = \"John Doe, PhD\", brian, betty"
-msgstr ""
+msgid "end fields with NUL"
+msgstr "Trennt Einträge mit NULL statt Leerzeichen"
-msgid ""
-"Quotation marks can be escaped by prefixing them with a backslash. Only\n"
-"quotation marks at the beginning of a word is counted as a quotation\n"
-"(e.g., ``foo\"bar baz`` is the list of ``foo\"bar`` and ``baz``)."
-msgstr ""
+msgid "print all revisions that match"
+msgstr "Zeigt alle zutreffenden Revisionen"
-msgid ""
-"Sections\n"
-"--------"
+msgid "follow changeset history, or file history across copies and renames"
msgstr ""
-"Abschnitte\n"
-"----------"
+"Folgt der Versionshistorie oder Dateihistorie über Kopien und Umbenennungen "
+"hinweg"
-msgid ""
-"This section describes the different sections that may appear in a\n"
-"Mercurial configuration file, the purpose of each section, its possible\n"
-"keys, and their possible values."
-msgstr ""
+msgid "ignore case when matching"
+msgstr "Ignoriert Groß- und Kleinschreibung beim Suchen"
-msgid ""
-"``alias``\n"
-"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "print only filenames and revisions that match"
+msgstr "Zeigt nur zutreffende Dateinamen und Revisionen"
-msgid ""
-"Defines command aliases.\n"
-"Aliases allow you to define your own commands in terms of other\n"
-"commands (or aliases), optionally including arguments. Positional\n"
-"arguments in the form of ``$1``, ``$2``, etc in the alias definition\n"
-"are expanded by Mercurial before execution. Positional arguments not\n"
-"already used by ``$N`` in the definition are put at the end of the\n"
-"command to be executed."
-msgstr ""
+msgid "print matching line numbers"
+msgstr "Zeigt zutreffende Zeilennummern"
-msgid "Alias definitions consist of lines of the form::"
-msgstr ""
+#, fuzzy
+msgid "only search files changed within revision range"
+msgstr "Sucht in gegebenem Revisionsbereich"
-msgid " <alias> = <command> [<argument>]..."
-msgstr ""
+msgid "[OPTION]... PATTERN [FILE]..."
+msgstr "[OPTION]... MUSTER [DATEI]..."
-msgid "For example, this definition::"
-msgstr ""
+#, fuzzy
+msgid "show only heads which are descendants of STARTREV"
+msgstr "Zeigt nur Köpfe, die Nachkommen dieser Revision sind"
-msgid " latest = log --limit 5"
+msgid "STARTREV"
msgstr ""
-msgid ""
-"creates a new command ``latest`` that shows only the five most recent\n"
-"changesets. You can define subsequent aliases using earlier ones::"
+msgid "show topological heads only"
msgstr ""
-msgid " stable5 = latest -b stable"
+msgid "show active branchheads only (DEPRECATED)"
msgstr ""
-msgid ""
-".. note:: It is possible to create aliases with the same names as\n"
-" existing commands, which will then override the original\n"
-" definitions. This is almost always a bad idea!"
-msgstr ""
+msgid "show normal and closed branch heads"
+msgstr "Zeigt normale und geschlossene Branch-Köpfe"
-msgid ""
-"An alias can start with an exclamation point (``!``) to make it a\n"
-"shell alias. A shell alias is executed with the shell and will let you\n"
-"run arbitrary commands. As an example, ::"
-msgstr ""
+#, fuzzy
+msgid "[-ac] [-r STARTREV] [REV]..."
+msgstr "[-nibt] [-r REV] [QUELLE]"
-msgid " echo = !echo $@"
-msgstr ""
+msgid "[TOPIC]"
+msgstr "[THEMA]"
-msgid ""
-"will let you do ``hg echo foo`` to have ``foo`` printed in your\n"
-"terminal. A better example might be::"
-msgstr ""
+msgid "identify the specified revision"
+msgstr "Identifiziert die angegebene Revision"
-msgid " purge = !$HG status --no-status --unknown -0 | xargs -0 rm"
-msgstr ""
+msgid "show local revision number"
+msgstr "Zeigt die lokale Revisionsnummer"
-msgid ""
-"which will make ``hg purge`` delete all unknown files in the\n"
-"repository in the same manner as the purge extension."
-msgstr ""
+msgid "show global revision id"
+msgstr "Zeigt die globale Revisions-ID"
-msgid ""
-"Positional arguments like ``$1``, ``$2``, etc. in the alias definition\n"
-"expand to the command arguments. Unmatched arguments are\n"
-"removed. ``$0`` expands to the alias name and ``$@`` expands to all\n"
-"arguments separated by a space. These expansions happen before the\n"
-"command is passed to the shell."
-msgstr ""
+msgid "show branch"
+msgstr "Zeigt gegebenen Branch"
-msgid ""
-"Shell aliases are executed in an environment where ``$HG`` expands to\n"
-"the path of the Mercurial that was used to execute the alias. This is\n"
-"useful when you want to call further Mercurial commands in a shell\n"
-"alias, as was done above for the purge alias. In addition,\n"
-"``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg\n"
-"echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``."
-msgstr ""
+msgid "show tags"
+msgstr "Zeigt Tags"
-msgid ""
-".. note:: Some global configuration options such as ``-R`` are\n"
-" processed before shell aliases and will thus not be passed to\n"
-" aliases."
-msgstr ""
+#, fuzzy
+msgid "show bookmarks"
+msgstr "Keine Lesezeichen gesetzt\n"
-msgid ""
-"\n"
-"``annotate``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+#, fuzzy
+msgid "[-nibtB] [-r REV] [SOURCE]"
+msgstr "[-nibt] [-r REV] [QUELLE]"
msgid ""
-"Settings used when displaying file annotations. All values are\n"
-"Booleans and default to False. See ``diff`` section for related\n"
-"options for the diff command."
+"directory strip option for patch. This has the same meaning as the "
+"corresponding patch option"
msgstr ""
+"Entfernt führende Verzeichnisnamen. Dies hat dieselbe Bedeutung wie die "
+"gleichnamige Option von patch"
-msgid ""
-"``ignorews``\n"
-" Ignore white space when comparing lines."
-msgstr ""
+#, fuzzy
+msgid "PATH"
+msgstr "[PFAD]"
-msgid ""
-"``ignorewsamount``\n"
-" Ignore changes in the amount of white space."
-msgstr ""
+msgid "base path"
+msgstr "Basispfad"
-msgid ""
-"``ignoreblanklines``\n"
-" Ignore changes whose lines are all blank."
+msgid "skip check for outstanding uncommitted changes"
msgstr ""
+"überspringt die Überprüfungen auf ausstehende, unversionierte Änderungen"
-msgid ""
-"\n"
-"``auth``\n"
-"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "don't commit, just update the working directory"
+msgstr "Kein Commit, nur Aktualisierung des Arbeitsverzeichnisses"
-msgid ""
-"Authentication credentials for HTTP authentication. This section\n"
-"allows you to store usernames and passwords for use when logging\n"
-"*into* HTTP servers. See the ``[web]`` configuration section if\n"
-"you want to configure *who* can login to your HTTP server."
-msgstr ""
+msgid "apply patch to the nodes from which it was generated"
+msgstr "Wendet Patch auf die Knoten an, von denen er erstellt wurde"
-msgid "Each line has the following format::"
+msgid "use any branch information in patch (implied by --exact)"
msgstr ""
-msgid " <name>.<argument> = <value>"
+msgid "[OPTION]... PATCH..."
msgstr ""
-msgid ""
-"where ``<name>`` is used to group arguments into authentication\n"
-"entries. Example::"
-msgstr ""
+#, fuzzy
+msgid "run even if remote repository is unrelated"
+msgstr "Auch ausführen wenn das entfernte Projektarchiv keinen Bezug hat"
-msgid ""
-" foo.prefix = hg.intevation.org/mercurial\n"
-" foo.username = foo\n"
-" foo.password = bar\n"
-" foo.schemes = http https"
-msgstr ""
+msgid "show newest record first"
+msgstr "Zeigt neueste Änderung zuerst"
-msgid ""
-" bar.prefix = secure.example.org\n"
-" bar.key = path/to/file.key\n"
-" bar.cert = path/to/file.cert\n"
-" bar.schemes = https"
-msgstr ""
+msgid "file to store the bundles into"
+msgstr "Dateiname zum Speichern der Bündel"
-msgid "Supported arguments:"
-msgstr "Unterstützte Argumente:"
+#, fuzzy
+msgid "a remote changeset intended to be added"
+msgstr "zeigt den aktuellen Änderungssatz in Vorgänger-Branches"
-msgid ""
-"``prefix``\n"
-" Either ``*`` or a URI prefix with or without the scheme part.\n"
-" The authentication entry with the longest matching prefix is used\n"
-" (where ``*`` matches everything and counts as a match of length\n"
-" 1). If the prefix doesn't include a scheme, the match is performed\n"
-" against the URI with its scheme stripped as well, and the schemes\n"
-" argument, q.v., is then subsequently consulted."
-msgstr ""
+msgid "compare bookmarks"
+msgstr "Vergleiche Lesezeichen"
-msgid ""
-"``username``\n"
-" Optional. Username to authenticate with. If not given, and the\n"
-" remote site requires basic or digest authentication, the user will\n"
-" be prompted for it. Environment variables are expanded in the\n"
-" username letting you do ``foo.username = $USER``. If the URI\n"
-" includes a username, only ``[auth]`` entries with a matching\n"
-" username or without a username will be considered."
-msgstr ""
+#, fuzzy
+msgid "a specific branch you would like to pull"
+msgstr "Revision die geholt werden soll"
-msgid ""
-"``password``\n"
-" Optional. Password to authenticate with. If not given, and the\n"
-" remote site requires basic or digest authentication, the user\n"
-" will be prompted for it."
-msgstr ""
+msgid "[-p] [-n] [-M] [-f] [-r REV]... [--bundle FILENAME] [SOURCE]"
+msgstr "[-p] [-n] [-M] [-f] [-r REV]... [--bundle DATEINAME] [QUELLE]"
-msgid ""
-"``key``\n"
-" Optional. PEM encoded client certificate key file. Environment\n"
-" variables are expanded in the filename."
+msgid "[-e CMD] [--remotecmd CMD] [DEST]"
msgstr ""
-msgid ""
-"``cert``\n"
-" Optional. PEM encoded client certificate chain file. Environment\n"
-" variables are expanded in the filename."
-msgstr ""
+#, fuzzy
+msgid "search the repository as it is in REV"
+msgstr "Durchsucht nur die Revision REV"
-msgid ""
-"``schemes``\n"
-" Optional. Space separated list of URI schemes to use this\n"
-" authentication entry with. Only used if the prefix doesn't include\n"
-" a scheme. Supported schemes are http and https. They will match\n"
-" static-http and static-https respectively, as well.\n"
-" Default: https."
-msgstr ""
+msgid "end filenames with NUL, for use with xargs"
+msgstr "Beendet Dateinamen mit NUL zur Nutzung mit xargs"
-msgid ""
-"If no suitable authentication entry is found, the user is prompted\n"
-"for credentials as usual if required by the remote."
-msgstr ""
+msgid "print complete paths from the filesystem root"
+msgstr "Gibt absolute Dateinamen aus"
-msgid ""
-"\n"
-"``decode/encode``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "[OPTION]... [PATTERN]..."
+msgstr "[OPTION]... [MUSTER]..."
-msgid ""
-"Filters for transforming files on checkout/checkin. This would\n"
-"typically be used for newline processing or other\n"
-"localization/canonicalization of files."
-msgstr ""
+msgid "only follow the first parent of merge changesets"
+msgstr "Folgt nur dem ersten Vorgänger von Merges"
-msgid ""
-"Filters consist of a filter pattern followed by a filter command.\n"
-"Filter patterns are globs by default, rooted at the repository root.\n"
-"For example, to match any file ending in ``.txt`` in the root\n"
-"directory only, use the pattern ``*.txt``. To match any file ending\n"
-"in ``.c`` anywhere in the repository, use the pattern ``**.c``.\n"
-"For each file only the first matching filter applies."
-msgstr ""
+msgid "show revisions matching date spec"
+msgstr "Zeigt Revisionen passend zur Datums-Spezifikation"
-msgid ""
-"The filter command can start with a specifier, either ``pipe:`` or\n"
-"``tempfile:``. If no specifier is given, ``pipe:`` is used by default."
-msgstr ""
+msgid "show copied files"
+msgstr "Zeigt kopierte Dateien"
-msgid ""
-"A ``pipe:`` command must accept data on stdin and return the transformed\n"
-"data on stdout."
-msgstr ""
+#, fuzzy
+msgid "do case-insensitive search for a given text"
+msgstr "Sucht unabhängig von Groß- und Kleinschreibung ein Stichwort"
-msgid "Pipe example::"
-msgstr "Pipe-Beispiele::"
+msgid "include revisions where files were removed"
+msgstr "Revisionen einschließen, in denen Dateien entfernt wurden"
-msgid ""
-" [encode]\n"
-" # uncompress gzip files on checkin to improve delta compression\n"
-" # note: not necessarily a good idea, just an example\n"
-" *.gz = pipe: gunzip"
-msgstr ""
+msgid "show only merges"
+msgstr "Zeigt nur Merges"
-msgid ""
-" [decode]\n"
-" # recompress gzip files when writing them to the working dir (we\n"
-" # can safely omit \"pipe:\", because it's the default)\n"
-" *.gz = gzip"
-msgstr ""
+msgid "revisions committed by user"
+msgstr "Revisionen vom Nutzer"
-msgid ""
-"A ``tempfile:`` command is a template. The string ``INFILE`` is replaced\n"
-"with the name of a temporary file that contains the data to be\n"
-"filtered by the command. The string ``OUTFILE`` is replaced with the name\n"
-"of an empty temporary file, where the filtered data must be written by\n"
-"the command."
-msgstr ""
+#, fuzzy
+msgid "show only changesets within the given named branch (DEPRECATED)"
+msgstr "Zeigt nur Änderungssätze innerhalb des angegebenen Branches"
-msgid ""
-".. note:: The tempfile mechanism is recommended for Windows systems,\n"
-" where the standard shell I/O redirection operators often have\n"
-" strange effects and may corrupt the contents of your files."
-msgstr ""
+#, fuzzy
+msgid "show changesets within the given named branch"
+msgstr "Zeigt nur Änderungssätze innerhalb des angegebenen Branches"
-msgid ""
-"This filter mechanism is used internally by the ``eol`` extension to\n"
-"translate line ending characters between Windows (CRLF) and Unix (LF)\n"
-"format. We suggest you use the ``eol`` extension for convenience."
-msgstr ""
+msgid "do not display revision or any of its ancestors"
+msgstr "Gibt weder diese Revision noch ihre Vorgänger aus"
-msgid ""
-"\n"
-"``defaults``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "[OPTION]... [FILE]"
+msgstr "[OPTION]... [DATEI]"
-msgid "(defaults are deprecated. Don't use them. Use aliases instead)"
-msgstr ""
+msgid "revision to display"
+msgstr "Auszugebende Revision"
-msgid ""
-"Use the ``[defaults]`` section to define command defaults, i.e. the\n"
-"default options/arguments to pass to the specified commands."
+msgid "[-r REV]"
msgstr ""
-msgid ""
-"The following example makes :hg:`log` run in verbose mode, and\n"
-":hg:`status` show only the modified files, by default::"
-msgstr ""
+msgid "force a merge with outstanding changes"
+msgstr "Erzwingt einen Merge mit ausstehenden Änderungen"
-msgid ""
-" [defaults]\n"
-" log = -v\n"
-" status = -m"
-msgstr ""
+msgid "revision to merge"
+msgstr "zu mergende Revision"
-msgid ""
-"The actual commands, instead of their aliases, must be used when\n"
-"defining command defaults. The command defaults will also be applied\n"
-"to the aliases of the commands defined."
+msgid "review revisions to merge (no merge is performed)"
msgstr ""
-msgid ""
-"\n"
-"``diff``\n"
-"\"\"\"\"\"\"\"\""
-msgstr ""
+#, fuzzy
+msgid "[-P] [-f] [[-r] REV]"
+msgstr "[-c] [-C] [-d DATUM] [[-r] REV]"
-msgid ""
-"Settings used when displaying diffs. Everything except for ``unified``\n"
-"is a Boolean and defaults to False. See ``annotate`` section for\n"
-"related options for the annotate command."
-msgstr ""
+#, fuzzy
+msgid "a changeset intended to be included in the destination"
+msgstr "Zeigt Änderungssätze, die nicht im Zielarchiv sind"
-msgid ""
-"``git``\n"
-" Use git extended diff format."
-msgstr ""
-"``git``\n"
-" Verwende git-erweitertes diff-Format"
+#, fuzzy
+msgid "a specific branch you would like to push"
+msgstr "Revision die geholt werden soll"
-msgid ""
-"``nodates``\n"
-" Don't include dates in diff headers."
-msgstr ""
+msgid "[-M] [-p] [-n] [-f] [-r REV]... [DEST]"
+msgstr "[-M] [-p] [-n] [-f] [-r REV]... [ZIEL]"
-msgid ""
-"``showfunc``\n"
-" Show which function each change is in."
-msgstr ""
-"``showfunc``\n"
-" Zeigt die Funktion, in der die Änderung passiert ist"
+#, fuzzy
+msgid "show parents of the specified revision"
+msgstr "Zeigt die Vorgänger der angegeben Revision"
-msgid ""
-"``unified``\n"
-" Number of lines of context to show."
-msgstr ""
-"``unified``\n"
-" Anzahl der anzuzeigenden Kontextzeilen"
+msgid "[-r REV] [FILE]"
+msgstr "[-r REV] [DATEI]"
-msgid ""
-"``email``\n"
-"\"\"\"\"\"\"\"\"\""
+msgid "[NAME]"
msgstr ""
-msgid "Settings for extensions that send email messages."
-msgstr ""
+#, fuzzy
+msgid "update to new branch head if changesets were pulled"
+msgstr "Auf den neuen tip aktualisieren, falls Änderungssätze geholt wurden"
-msgid ""
-"``from``\n"
-" Optional. Email address to use in \"From\" header and SMTP envelope\n"
-" of outgoing messages."
-msgstr ""
+msgid "run even when remote repository is unrelated"
+msgstr "Auch ausführen wenn das entfernte Projektarchiv keinen Bezug hat"
-msgid ""
-"``to``\n"
-" Optional. Comma-separated list of recipients' email addresses."
-msgstr ""
+msgid "BOOKMARK"
+msgstr "LESEZEICHEN"
-msgid ""
-"``cc``\n"
-" Optional. Comma-separated list of carbon copy recipients'\n"
-" email addresses."
-msgstr ""
+msgid "bookmark to pull"
+msgstr "Zu importierendes Lesezeichen"
-msgid ""
-"``bcc``\n"
-" Optional. Comma-separated list of blind carbon copy recipients'\n"
-" email addresses."
-msgstr ""
+msgid "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]"
+msgstr "[-u] [-f] [-r REV]... [-e BEFEHL] [--remotecmd BEFEHL] [QUELLE]"
-msgid ""
-"``method``\n"
-" Optional. Method to use to send email messages. If value is ``smtp``\n"
-" (default), use SMTP (see the ``[smtp]`` section for configuration).\n"
-" Otherwise, use as name of program to run that acts like sendmail\n"
-" (takes ``-f`` option for sender, list of recipients on command line,\n"
-" message on stdin). Normally, setting this to ``sendmail`` or\n"
-" ``/usr/sbin/sendmail`` is enough to use sendmail to send messages."
-msgstr ""
+msgid "force push"
+msgstr "Erzwingt Push"
-msgid ""
-"``charsets``\n"
-" Optional. Comma-separated list of character sets considered\n"
-" convenient for recipients. Addresses, headers, and parts not\n"
-" containing patches of outgoing messages will be encoded in the\n"
-" first character set to which conversion from local encoding\n"
-" (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct\n"
-" conversion fails, the text in question is sent as is. Defaults to\n"
-" empty (explicit) list."
-msgstr ""
+msgid "bookmark to push"
+msgstr "Zu exportierendes Lesezeichen"
-msgid " Order of outgoing email character sets:"
+msgid "allow pushing a new branch"
msgstr ""
-msgid ""
-" 1. ``us-ascii``: always first, regardless of settings\n"
-" 2. ``email.charsets``: in order given by user\n"
-" 3. ``ui.fallbackencoding``: if not in email.charsets\n"
-" 4. ``$HGENCODING``: if not in email.charsets\n"
-" 5. ``utf-8``: always last, regardless of settings"
-msgstr ""
+msgid "[-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]"
+msgstr "[-f] [-r REV]... [-e BEFEHL] [--remotecmd BEFEHL] [ZIEL]"
-msgid "Email example::"
-msgstr "Email-Beispiele::"
+msgid "record delete for missing files"
+msgstr "Protokolliert die Löschung fehlender Dateien"
-msgid ""
-" [email]\n"
-" from = Joseph User <joe.user@example.com>\n"
-" method = /usr/sbin/sendmail\n"
-" # charsets for western Europeans\n"
-" # us-ascii, utf-8 omitted, as they are tried first and last\n"
-" charsets = iso-8859-1, iso-8859-15, windows-1252"
-msgstr ""
+msgid "remove (and delete) file even if added or modified"
+msgstr "Entfernt (und löscht) Datei sogar wenn hinzugefügt oder modifiziert"
-msgid ""
-"\n"
-"``extensions``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+msgid "record a rename that has already occurred"
msgstr ""
-msgid ""
-"Mercurial has an extension mechanism for adding new features. To\n"
-"enable an extension, create an entry for it in this section."
-msgstr ""
+msgid "[OPTION]... SOURCE... DEST"
+msgstr "[OPTION]... QUELLE... ZIEL"
-msgid ""
-"If you know that the extension is already in Python's search path,\n"
-"you can give the name of the module, followed by ``=``, with nothing\n"
-"after the ``=``."
-msgstr ""
+msgid "select all unresolved files"
+msgstr "Wählt alle konfliktbehafteten Dateien aus"
-msgid ""
-"Otherwise, give a name that you choose, followed by ``=``, followed by\n"
-"the path to the ``.py`` file (including the file name extension) that\n"
-"defines the extension."
-msgstr ""
+msgid "list state of files needing merge"
+msgstr "Zeigt Dateien, die einen manuellen Merge erfordern"
-msgid ""
-"To explicitly disable an extension that is enabled in an hgrc of\n"
-"broader scope, prepend its path with ``!``, as in ``foo = !/ext/path``\n"
-"or ``foo = !`` when path is not supplied."
-msgstr ""
-"Um eine Erweiterung explizit zu deaktivieren, die von einer allgemeineren\n"
-"hgrc aktiviert wurde, setzen Sie ein ! vor den Pfad, also z.B. ``foo = !``."
+msgid "mark files as resolved"
+msgstr "Markiert eine Datei als konfliktfrei"
-msgid "Example for ``~/.hgrc``::"
-msgstr "Beispiel ``~/.hgrc``-Datei::"
+#, fuzzy
+msgid "mark files as unresolved"
+msgstr "Markiert eine Datei als konfliktfrei"
-msgid ""
-" [extensions]\n"
-" # (the mq extension will get loaded from Mercurial's path)\n"
-" mq =\n"
-" # (this extension will get loaded from the file specified)\n"
-" myfeature = ~/.hgext/myfeature.py"
-msgstr ""
+msgid "hide status prefix"
+msgstr "Versteckt das Status-Präfix"
-msgid ""
-"\n"
-"``format``\n"
-"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "revert all changes when no arguments given"
+msgstr "Nimmt alle Änderungen zurück (wenn ohne andere Parameter aufgerufen)"
-msgid ""
-"``usestore``\n"
-" Enable or disable the \"store\" repository format which improves\n"
-" compatibility with systems that fold case or otherwise mangle\n"
-" filenames. Enabled by default. Disabling this option will allow\n"
-" you to store longer filenames in some situations at the expense of\n"
-" compatibility and ensures that the on-disk format of newly created\n"
-" repositories will be compatible with Mercurial before version 0.9.4."
-msgstr ""
+msgid "tipmost revision matching date"
+msgstr "dem tip nächste Revision mit passendem Datum"
-msgid ""
-"``usefncache``\n"
-" Enable or disable the \"fncache\" repository format which enhances\n"
-" the \"store\" repository format (which has to be enabled to use\n"
-" fncache) to allow longer filenames and avoids using Windows\n"
-" reserved names, e.g. \"nul\". Enabled by default. Disabling this\n"
-" option ensures that the on-disk format of newly created\n"
-" repositories will be compatible with Mercurial before version 1.1."
-msgstr ""
+#, fuzzy
+msgid "revert to the specified revision"
+msgstr "Annotiert die angegebene Revision"
-msgid ""
-"``dotencode``\n"
-" Enable or disable the \"dotencode\" repository format which enhances\n"
-" the \"fncache\" repository format (which has to be enabled to use\n"
-" dotencode) to avoid issues with filenames starting with ._ on\n"
-" Mac OS X and spaces on Windows. Enabled by default. Disabling this\n"
-" option ensures that the on-disk format of newly created\n"
-" repositories will be compatible with Mercurial before version 1.7."
-msgstr ""
+msgid "do not save backup copies of files"
+msgstr "Keine Sicherheitskopien (.orig) anlegen"
-msgid ""
-"``graph``\n"
-"\"\"\"\"\"\"\"\"\""
+msgid "[OPTION]... [-r REV] [NAME]..."
msgstr ""
-msgid ""
-"Web graph view configuration. This section let you change graph\n"
-"elements display properties by branches, for instance to make the\n"
-"``default`` branch stand out."
-msgstr ""
+msgid "name of access log file to write to"
+msgstr "Name der Zugriffs-Logdatei"
-msgid " <branch>.<argument> = <value>"
-msgstr ""
+msgid "name of error log file to write to"
+msgstr "Name der Fehler-Logdatei"
-msgid ""
-"where ``<branch>`` is the name of the branch being\n"
-"customized. Example::"
+msgid "PORT"
msgstr ""
-msgid ""
-" [graph]\n"
-" # 2px width\n"
-" default.width = 2\n"
-" # red color\n"
-" default.color = FF0000"
-msgstr ""
+msgid "port to listen on (default: 8000)"
+msgstr "Port auf dem gehorcht wird (Standard: 8000)"
-msgid ""
-"``width``\n"
-" Set branch edges width in pixels."
+msgid "ADDR"
msgstr ""
-msgid ""
-"``color``\n"
-" Set branch edges color in hexadecimal RGB notation."
-msgstr ""
+msgid "address to listen on (default: all interfaces)"
+msgstr "Adresse auf der gehorcht wird (Standard: alle Schnittstellen)"
-msgid ""
-"``hooks``\n"
-"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "prefix path to serve from (default: server root)"
+msgstr "Pfadpräfix von dem ausgeliefert wird (Standard: Serverwurzel '/')"
-msgid ""
-"Commands or Python functions that get automatically executed by\n"
-"various actions such as starting or finishing a commit. Multiple\n"
-"hooks can be run for the same action by appending a suffix to the\n"
-"action. Overriding a site-wide hook can be done by changing its\n"
-"value or setting it to an empty string. Hooks can be prioritized\n"
-"by adding a prefix of ``priority`` to the hook name on a new line\n"
-"and setting the priority. The default priority is 0 if\n"
-"not specified."
+msgid "name to show in web pages (default: working directory)"
msgstr ""
+"Name der auf der Webseite angezeigt wird (Standard: Arbeitsverzeichnis)"
-msgid "Example ``.hg/hgrc``::"
-msgstr "Beispiel ``.hg/hgrc``-Datei::"
-
-msgid ""
-" [hooks]\n"
-" # update working directory after adding changesets\n"
-" changegroup.update = hg update\n"
-" # do not use the site-wide hook\n"
-" incoming =\n"
-" incoming.email = /my/email/hook\n"
-" incoming.autobuild = /my/build/hook\n"
-" # force autobuild hook to run before other incoming hooks\n"
-" priority.incoming.autobuild = 1"
+#, fuzzy
+msgid "name of the hgweb config file (see \"hg help hgweb\")"
msgstr ""
+"Name der webdir-Konfigurationsdatei (mehr als ein Projektarchiv ausliefern)"
-msgid ""
-"Most hooks are run with environment variables set that give useful\n"
-"additional information. For each hook below, the environment\n"
-"variables it is passed are listed with names of the form ``$HG_foo``."
+msgid "name of the hgweb config file (DEPRECATED)"
msgstr ""
-msgid ""
-"``changegroup``\n"
-" Run after a changegroup has been added via push, pull or unbundle.\n"
-" ID of the first new changeset is in ``$HG_NODE``. URL from which\n"
-" changes came is in ``$HG_URL``."
-msgstr ""
+msgid "for remote clients"
+msgstr "für entfernte Clients"
-msgid ""
-"``commit``\n"
-" Run after a changeset has been created in the local repository. ID\n"
-" of the newly created changeset is in ``$HG_NODE``. Parent changeset\n"
-" IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``."
-msgstr ""
+msgid "web templates to use"
+msgstr "Zu nutzende Web-Vorlagen"
-msgid ""
-"``incoming``\n"
-" Run after a changeset has been pulled, pushed, or unbundled into\n"
-" the local repository. The ID of the newly arrived changeset is in\n"
-" ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``."
-msgstr ""
+msgid "template style to use"
+msgstr "Zu verwendender Stil"
-msgid ""
-"``outgoing``\n"
-" Run after sending changes from local repository to another. ID of\n"
-" first changeset sent is in ``$HG_NODE``. Source of operation is in\n"
-" ``$HG_SOURCE``; see \"preoutgoing\" hook for description."
-msgstr ""
+msgid "use IPv6 in addition to IPv4"
+msgstr "Nutzt IPv6 zusätzlich zu IPv4"
-msgid ""
-"``post-<command>``\n"
-" Run after successful invocations of the associated command. The\n"
-" contents of the command line are passed as ``$HG_ARGS`` and the result\n"
-" code in ``$HG_RESULT``. Parsed command line arguments are passed as \n"
-" ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of\n"
-" the python data internally passed to <command>. ``$HG_OPTS`` is a \n"
-" dictionary of options (with unspecified options set to their defaults).\n"
-" ``$HG_PATS`` is a list of arguments. Hook failure is ignored."
-msgstr ""
+msgid "SSL certificate file"
+msgstr "SSL-Zertifikatsdatei"
-msgid ""
-"``pre-<command>``\n"
-" Run before executing the associated command. The contents of the\n"
-" command line are passed as ``$HG_ARGS``. Parsed command line arguments\n"
-" are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string\n"
-" representations of the data internally passed to <command>. ``$HG_OPTS``\n"
-" is a dictionary of options (with unspecified options set to their\n"
-" defaults). ``$HG_PATS`` is a list of arguments. If the hook returns \n"
-" failure, the command doesn't execute and Mercurial returns the failure\n"
-" code."
+msgid "show untrusted configuration options"
msgstr ""
-msgid ""
-"``prechangegroup``\n"
-" Run before a changegroup is added via push, pull or unbundle. Exit\n"
-" status 0 allows the changegroup to proceed. Non-zero status will\n"
-" cause the push, pull or unbundle to fail. URL from which changes\n"
-" will come is in ``$HG_URL``."
+msgid "[-u] [NAME]..."
msgstr ""
-msgid ""
-"``precommit``\n"
-" Run before starting a local commit. Exit status 0 allows the\n"
-" commit to proceed. Non-zero status will cause the commit to fail.\n"
-" Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``."
+msgid "check for push and pull"
msgstr ""
-msgid ""
-"``prelistkeys``\n"
-" Run before listing pushkeys (like bookmarks) in the\n"
-" repository. Non-zero status will cause failure. The key namespace is\n"
-" in ``$HG_NAMESPACE``."
-msgstr ""
+msgid "show status of all files"
+msgstr "Zeigt den Status aller Dateien"
-msgid ""
-"``preoutgoing``\n"
-" Run before collecting changes to send from the local repository to\n"
-" another. Non-zero status will cause failure. This lets you prevent\n"
-" pull over HTTP or SSH. Also prevents against local pull, push\n"
-" (outbound) or bundle commands, but not effective, since you can\n"
-" just copy files instead then. Source of operation is in\n"
-" ``$HG_SOURCE``. If \"serve\", operation is happening on behalf of remote\n"
-" SSH or HTTP repository. If \"push\", \"pull\" or \"bundle\", operation\n"
-" is happening on behalf of repository on same system."
-msgstr ""
+msgid "show only modified files"
+msgstr "Zeigt nur geänderte Dateien"
-msgid ""
-"``prepushkey``\n"
-" Run before a pushkey (like a bookmark) is added to the\n"
-" repository. Non-zero status will cause the key to be rejected. The\n"
-" key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,\n"
-" the old value (if any) is in ``$HG_OLD``, and the new value is in\n"
-" ``$HG_NEW``."
-msgstr ""
+msgid "show only added files"
+msgstr "Zeigt nur hinzugefügte Dateien"
-msgid ""
-"``pretag``\n"
-" Run before creating a tag. Exit status 0 allows the tag to be\n"
-" created. Non-zero status will cause the tag to fail. ID of\n"
-" changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag "
-"is\n"
-" local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``."
-msgstr ""
+msgid "show only removed files"
+msgstr "Zeigt nur entfernte Dateien"
-msgid ""
-"``pretxnchangegroup``\n"
-" Run after a changegroup has been added via push, pull or unbundle,\n"
-" but before the transaction has been committed. Changegroup is\n"
-" visible to hook program. This lets you validate incoming changes\n"
-" before accepting them. Passed the ID of the first new changeset in\n"
-" ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero\n"
-" status will cause the transaction to be rolled back and the push,\n"
-" pull or unbundle will fail. URL that was source of changes is in\n"
-" ``$HG_URL``."
-msgstr ""
+msgid "show only deleted (but tracked) files"
+msgstr "Zeigt nur gelöschte (aber versionierte) Dateien"
-msgid ""
-"``pretxncommit``\n"
-" Run after a changeset has been created but the transaction not yet\n"
-" committed. Changeset is visible to hook program. This lets you\n"
-" validate commit message and changes. Exit status 0 allows the\n"
-" commit to proceed. Non-zero status will cause the transaction to\n"
-" be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset\n"
-" IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``."
-msgstr ""
+msgid "show only files without changes"
+msgstr "Zeigt nur Dateien ohne Änderungen"
-msgid ""
-"``preupdate``\n"
-" Run before updating the working directory. Exit status 0 allows\n"
-" the update to proceed. Non-zero status will prevent the update.\n"
-" Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID\n"
-" of second new parent is in ``$HG_PARENT2``."
-msgstr ""
+msgid "show only unknown (not tracked) files"
+msgstr "Zeigt nur unbekannte (nicht versionierte) Dateien"
-msgid ""
-"``listkeys``\n"
-" Run after listing pushkeys (like bookmarks) in the repository. The\n"
-" key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a\n"
-" dictionary containing the keys and values."
-msgstr ""
+msgid "show only ignored files"
+msgstr "Zeigt nur ignorierte Dateien"
-msgid ""
-"``pushkey``\n"
-" Run after a pushkey (like a bookmark) is added to the\n"
-" repository. The key namespace is in ``$HG_NAMESPACE``, the key is in\n"
-" ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new\n"
-" value is in ``$HG_NEW``."
-msgstr ""
+msgid "show source of copied files"
+msgstr "Zeigt die Quelle von kopierten Dateien"
-msgid ""
-"``tag``\n"
-" Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.\n"
-" Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in\n"
-" repository if ``$HG_LOCAL=0``."
-msgstr ""
+msgid "show difference from revision"
+msgstr "Zeigt die Unterschiede zu einer Revision"
-msgid ""
-"``update``\n"
-" Run after updating the working directory. Changeset ID of first\n"
-" new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is\n"
-" in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the\n"
-" update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``."
-msgstr ""
+#, fuzzy
+msgid "list the changed files of a revision"
+msgstr "Mindestens ein paar Revisionen sind benötigt"
-msgid ""
-".. note:: It is generally better to use standard hooks rather than the\n"
-" generic pre- and post- command hooks as they are guaranteed to be\n"
-" called in the appropriate contexts for influencing transactions.\n"
-" Also, hooks like \"commit\" will be called in all contexts that\n"
-" generate a commit (e.g. tag) and not just the commit command."
-msgstr ""
+#, fuzzy
+msgid "force tag"
+msgstr "erzwinge"
-msgid ""
-".. note:: Environment variables with empty values may not be passed to\n"
-" hooks on platforms such as Windows. As an example, ``$HG_PARENT2``\n"
-" will have an empty value under Unix-like platforms for non-merge\n"
-" changesets, while it will not be available at all under Windows."
-msgstr ""
+msgid "make the tag local"
+msgstr "Tag wird nur lokal gesetzt"
-msgid "The syntax for Python hooks is as follows::"
-msgstr ""
+msgid "revision to tag"
+msgstr "Zu taggende Revision"
-msgid ""
-" hookname = python:modulename.submodule.callable\n"
-" hookname = python:/path/to/python/module.py:callable"
-msgstr ""
+msgid "remove a tag"
+msgstr "Entfernt ein Tag"
-msgid ""
-"Python hooks are run within the Mercurial process. Each hook is\n"
-"called with at least three keyword arguments: a ui object (keyword\n"
-"``ui``), a repository object (keyword ``repo``), and a ``hooktype``\n"
-"keyword that tells what kind of hook is used. Arguments listed as\n"
-"environment variables above are passed as keyword arguments, with no\n"
-"``HG_`` prefix, and names in lower case."
-msgstr ""
+msgid "use <text> as commit message"
+msgstr "Nutzt <Text> als Commit-Nachricht"
-msgid ""
-"If a Python hook returns a \"true\" value or raises an exception, this\n"
-"is treated as a failure."
-msgstr ""
+#, fuzzy
+msgid "[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME..."
+msgstr "[-l] [-m TEXT] [-d DATUM] [-u BENUTZER] [-r REV] NAME..."
-msgid ""
-"\n"
-"``hostfingerprints``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+msgid "[-p] [-g]"
msgstr ""
-msgid ""
-"Fingerprints of the certificates of known HTTPS servers.\n"
-"A HTTPS connection to a server with a fingerprint configured here will\n"
-"only succeed if the servers certificate matches the fingerprint.\n"
-"This is very similar to how ssh known hosts works.\n"
-"The fingerprint is the SHA-1 hash value of the DER encoded certificate.\n"
-"The CA chain and web.cacerts is not used for servers with a fingerprint."
-msgstr ""
+#, fuzzy
+msgid "update to new branch head if changesets were unbundled"
+msgstr "aktualisiere auf den neuen tip when Änderungssätze entpackt wurden"
-msgid "For example::"
-msgstr "Zum Beispiel::"
+msgid "[-u] FILE..."
+msgstr "[-u] DATEI..."
-msgid ""
-" [hostfingerprints]\n"
-" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:"
-"d6:4b:ee:cc"
-msgstr ""
+msgid "discard uncommitted changes (no backup)"
+msgstr "entferne nicht versionierte Änderungen (kein Backup)"
-msgid "This feature is only supported when using Python 2.6 or later."
-msgstr ""
+#, fuzzy
+msgid "update across branches if no uncommitted changes"
+msgstr "Ausstehende nicht versionierte Änderungen"
-msgid ""
-"\n"
-"``http_proxy``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "[-c] [-C] [-d DATE] [[-r] REV]"
+msgstr "[-c] [-C] [-d DATUM] [[-r] REV]"
-msgid ""
-"Used to access web-based Mercurial repositories through a HTTP\n"
-"proxy."
-msgstr ""
+#, fuzzy, python-format
+msgid "cannot include %s (%s)"
+msgstr "Patch '%s' kann nicht angewendet werden - %s\n"
-msgid ""
-"``host``\n"
-" Host name and (optional) port of the proxy server, for example\n"
-" \"myproxy:8000\"."
-msgstr ""
+msgid "not found in manifest"
+msgstr "nicht im Manifest gefunden"
-msgid ""
-"``no``\n"
-" Optional. Comma-separated list of host names that should bypass\n"
-" the proxy."
-msgstr ""
+#, fuzzy, python-format
+msgid "no such file in rev %s"
+msgstr "Keine Patches in Serie\n"
-msgid ""
-"``passwd``\n"
-" Optional. Password to authenticate with at the proxy server."
-msgstr ""
-"``passwd``\n"
-" Optional. Password zur Authentifikation mit einem Proxy-Server."
+msgid "branch name not in UTF-8!"
+msgstr "Branchname ist nicht in UTF-8!"
-msgid ""
-"``user``\n"
-" Optional. User name to authenticate with at the proxy server."
-msgstr ""
+#, python-format
+msgid "%s does not exist!\n"
+msgstr "%s existiert nicht!\n"
+#, python-format
msgid ""
-"``always``\n"
-" Optional. Always use the proxy, even for localhost and any entries\n"
-" in ``http_proxy.no``. True or False. Default: False."
+"%s: up to %d MB of RAM may be required to manage this file\n"
+"(use 'hg revert %s' to cancel the pending addition)\n"
msgstr ""
-msgid ""
-"``merge-patterns``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+#, python-format
+msgid "%s not added: only files and symlinks supported currently\n"
msgstr ""
+"%s nicht hinzugefügt: Nur Dateien und symbolische Verknüpfungen werden\n"
+"zur Zeit unterstützt\n"
-msgid ""
-"This section specifies merge tools to associate with particular file\n"
-"patterns. Tools matched here will take precedence over the default\n"
-"merge tool. Patterns are globs by default, rooted at the repository\n"
-"root."
-msgstr ""
+#, python-format
+msgid "%s already tracked!\n"
+msgstr "%s ist bereits versioniert!\n"
-msgid ""
-" [merge-patterns]\n"
-" **.c = kdiff3\n"
-" **.jpg = myimgmerge"
-msgstr ""
+#, python-format
+msgid "%s not added!\n"
+msgstr "%s nicht hinzugefügt!\n"
-msgid ""
-"``merge-tools``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+#, python-format
+msgid "%s still exists!\n"
+msgstr "%s existiert noch!\n"
-msgid ""
-"This section configures external merge tools to use for file-level\n"
-"merges."
-msgstr ""
+#, python-format
+msgid "%s not tracked!\n"
+msgstr "%s nicht versioniert!\n"
-msgid "Example ``~/.hgrc``::"
-msgstr "Beispiel ``.hgrc``-Datei::"
+#, python-format
+msgid "%s not removed!\n"
+msgstr "%s nicht entfernt!\n"
-msgid ""
-" [merge-tools]\n"
-" # Override stock tool location\n"
-" kdiff3.executable = ~/bin/kdiff3\n"
-" # Specify command line\n"
-" kdiff3.args = $base $local $other -o $output\n"
-" # Give higher priority\n"
-" kdiff3.priority = 1"
+#, python-format
+msgid "copy failed: %s is not a file or a symbolic link\n"
msgstr ""
+"Kopieren fehlgeschlagen: %s ist keine Datei oder eine symbolische "
+"Verknüpfung\n"
-msgid ""
-" # Define new tool\n"
-" myHtmlTool.args = -m $local $other $base $output\n"
-" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
-" myHtmlTool.priority = 1"
-msgstr ""
+#, fuzzy, python-format
+msgid "invalid character in dag description: %s..."
+msgstr "Ungültiges Zeichen in Wächter %r: %r"
-msgid ""
-"``priority``\n"
-" The priority in which to evaluate this tool.\n"
-" Default: 0."
+#, python-format
+msgid "expected id %i, got %i"
msgstr ""
-msgid ""
-"``executable``\n"
-" Either just the name of the executable or its pathname. On Windows,\n"
-" the path can use environment variables with ${ProgramFiles} syntax.\n"
-" Default: the tool name."
+#, python-format
+msgid "parent id %i is larger than current id %i"
msgstr ""
-msgid ""
-"``args``\n"
-" The arguments to pass to the tool executable. You can refer to the\n"
-" files being merged as well as the output file through these\n"
-" variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
-" Default: ``$local $base $other``"
-msgstr ""
+#, fuzzy, python-format
+msgid "invalid event type in dag: %s"
+msgstr "Ungültiger Eintrag in fncache, Zeile %s"
-msgid ""
-"``premerge``\n"
-" Attempt to run internal non-interactive 3-way merge tool before\n"
-" launching external tool. Options are ``true``, ``false``, or ``keep``\n"
-" to leave markers in the file if the premerge fails.\n"
-" Default: True"
-msgstr ""
+msgid "working directory state appears damaged!"
+msgstr "Status des Arbeitsverzeichnis scheint beschädigt zu sein!"
-msgid ""
-"``binary``\n"
-" This tool can merge binary files. Defaults to False, unless tool\n"
-" was selected by file pattern match."
-msgstr ""
+#, python-format
+msgid "'\\n' and '\\r' disallowed in filenames: %r"
+msgstr "'\\n' und '\\r' sind nicht in Dateinamen erlaubt: %r"
-msgid ""
-"``symlink``\n"
-" This tool can merge symlinks. Defaults to False, even if tool was\n"
-" selected by file pattern match."
-msgstr ""
+#, python-format
+msgid "directory %r already in dirstate"
+msgstr "Verzeichnis %r ist bereits im dirstate"
-msgid ""
-"``check``\n"
-" A list of merge success-checking options:"
-msgstr ""
+#, python-format
+msgid "file %r in dirstate clashes with %r"
+msgstr "Datei %r im dirstate steht im Konflikt mit %r"
-msgid ""
-" ``changed``\n"
-" Ask whether merge was successful when the merged file shows no changes.\n"
-" ``conflicts``\n"
-" Check whether there are conflicts even though the tool reported "
-"success.\n"
-" ``prompt``\n"
-" Always prompt for merge success, regardless of success reported by tool."
+#, python-format
+msgid "setting %r to other parent only allowed in merges"
msgstr ""
-msgid ""
-"``checkchanged``\n"
-" True is equivalent to ``check = changed``.\n"
-" Default: False"
-msgstr ""
+#, python-format
+msgid "not in dirstate: %s\n"
+msgstr "nicht im dirstate: %s\n"
-msgid ""
-"``checkconflicts``\n"
-" True is equivalent to ``check = conflicts``.\n"
-" Default: False"
-msgstr ""
+msgid "unknown"
+msgstr "Unbekannt"
-msgid ""
-"``fixeol``\n"
-" Attempt to fix up EOL changes caused by the merge tool.\n"
-" Default: False"
-msgstr ""
+msgid "character device"
+msgstr "Zeichenorientiertes Gerät"
-msgid ""
-"``gui``\n"
-" This tool requires a graphical interface to run. Default: False"
-msgstr ""
+msgid "block device"
+msgstr "Blockorientiertes Gerät"
-msgid ""
-"``regkey``\n"
-" Windows registry key which describes install location of this\n"
-" tool. Mercurial will search for this key first under\n"
-" ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.\n"
-" Default: None"
-msgstr ""
+msgid "fifo"
+msgstr "FIFO"
-msgid ""
-"``regkeyalt``\n"
-" An alternate Windows registry key to try if the first key is not\n"
-" found. The alternate key uses the same ``regname`` and ``regappend``\n"
-" semantics of the primary key. The most common use for this key\n"
-" is to search for 32bit applications on 64bit operating systems.\n"
-" Default: None"
-msgstr ""
+msgid "socket"
+msgstr "Socket"
-msgid ""
-"``regname``\n"
-" Name of value to read from specified registry key. Defaults to the\n"
-" unnamed (default) value."
-msgstr ""
+msgid "directory"
+msgstr "Verzeichnis"
-msgid ""
-"``regappend``\n"
-" String to append to the value read from the registry, typically\n"
-" the executable name of the tool.\n"
-" Default: None"
-msgstr ""
+#, python-format
+msgid "unsupported file type (type is %s)"
+msgstr "nicht unterstützter Dateityp (Typ %s)"
-msgid ""
-"\n"
-"``patch``\n"
-"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "searching for changes\n"
+msgstr "Suche nach Änderungen\n"
-msgid ""
-"Settings used when applying patches, for instance through the 'import'\n"
-"command or with Mercurial Queues extension."
+msgid "queries"
msgstr ""
-msgid ""
-"``eol``\n"
-" When set to 'strict' patch content and patched files end of lines\n"
-" are preserved. When set to ``lf`` or ``crlf``, both files end of\n"
-" lines are ignored when patching and the result line endings are\n"
-" normalized to either LF (Unix) or CRLF (Windows). When set to\n"
-" ``auto``, end of lines are again ignored while patching but line\n"
-" endings in patched files are normalized to their original setting\n"
-" on a per-file basis. If target file does not exist or has no end\n"
-" of line, patch line endings are preserved.\n"
-" Default: strict."
+msgid "searching"
msgstr ""
-msgid ""
-"\n"
-"``paths``\n"
-"\"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid "already have changeset "
+msgstr "Änderungssatz bereits vorhanden "
-msgid ""
-"Assigns symbolic names to repositories. The left side is the\n"
-"symbolic name, and the right gives the directory or URL that is the\n"
-"location of the repository. Default paths can be declared by setting\n"
-"the following entries."
-msgstr ""
+msgid "warning: repository is unrelated\n"
+msgstr "Warnung: Projektarchiv steht in keinem Zusammenhang\n"
-msgid ""
-"``default``\n"
-" Directory or URL to use when pulling if no source is specified.\n"
-" Default is set to repository from which the current repository was\n"
-" cloned."
-msgstr ""
+msgid "repository is unrelated"
+msgstr "Projektarchiv steht in keinem Zusammenhang"
-msgid ""
-"``default-push``\n"
-" Optional. Directory or URL to use when pushing if no destination\n"
-" is specified."
-msgstr ""
+#, fuzzy, python-format
+msgid "push creates new remote branches: %s!"
+msgstr "Abbruch: Push erzeugt neuen entfernten Branch '%s'!\n"
-msgid ""
-"``phases``\n"
-"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+#, fuzzy
+msgid "use 'hg push --new-branch' to create new remote branches"
+msgstr "Abbruch: Push erzeugt neuen entfernten Branch '%s'!\n"
-msgid ""
-"Specifies default handling of phases. See :hg:`help phases` for more\n"
-"information about working with phases."
-msgstr ""
+#, fuzzy, python-format
+msgid "push creates new remote heads on branch '%s'!"
+msgstr "Abbruch: Push erzeugt neuen entfernten Branch '%s'!\n"
-msgid ""
-"``publish``\n"
-" Controls draft phase behavior when working as a server. When true,\n"
-" pushed changesets are set to public in both client and server and\n"
-" pulled or cloned changesets are set to public in the client.\n"
-" Default: True"
-msgstr ""
+#, fuzzy
+msgid "push creates new remote heads!"
+msgstr "Abbruch: Push erzeugt neue entfernte Köpfe!\n"
-msgid ""
-"``new-commit``\n"
-" Phase of newly-created commits.\n"
-" Default: draft"
-msgstr ""
+#, fuzzy
+msgid "you should pull and merge or use push -f to force"
+msgstr "(Hast du vergessen zu mergen? Nutze push -f um zu erzwingen)\n"
-msgid ""
-"``profiling``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+#, fuzzy
+msgid "did you forget to merge? use push -f to force"
+msgstr "(Hast du vergessen zu mergen? Nutze push -f um zu erzwingen)\n"
-msgid ""
-"Specifies profiling type, format, and file output. Two profilers are\n"
-"supported: an instrumenting profiler (named ``ls``), and a sampling\n"
-"profiler (named ``stat``)."
-msgstr ""
+msgid "note: unsynced remote changes!\n"
+msgstr "Hinweis: Nicht synchronisierte entfernte Änderungen!\n"
-msgid ""
-"In this section description, 'profiling data' stands for the raw data\n"
-"collected during profiling, while 'profiling report' stands for a\n"
-"statistical text report generated from the profiling data. The\n"
-"profiling is done using lsprof."
-msgstr ""
+#, python-format
+msgid "abort: %s\n"
+msgstr "Abbruch: %s\n"
-msgid ""
-"``type``\n"
-" The type of profiler to use.\n"
-" Default: ls."
+#, python-format
+msgid "(%s)\n"
msgstr ""
-msgid ""
-" ``ls``\n"
-" Use Python's built-in instrumenting profiler. This profiler\n"
-" works on all platforms, but each line number it reports is the\n"
-" first line of a function. This restriction makes it difficult to\n"
-" identify the expensive parts of a non-trivial function.\n"
-" ``stat``\n"
-" Use a third-party statistical profiler, statprof. This profiler\n"
-" currently runs only on Unix systems, and is most useful for\n"
-" profiling commands that run for longer than about 0.1 seconds."
-msgstr ""
+#, fuzzy, python-format
+msgid "hg: parse error at %s: %s\n"
+msgstr "Abbruch: Fehler: %s\n"
-msgid ""
-"``format``\n"
-" Profiling format. Specific to the ``ls`` instrumenting profiler.\n"
-" Default: text."
-msgstr ""
+#, fuzzy, python-format
+msgid "hg: parse error: %s\n"
+msgstr "Abbruch: Fehler: %s\n"
-msgid ""
-" ``text``\n"
-" Generate a profiling report. When saving to a file, it should be\n"
-" noted that only the report is saved, and the profiling data is\n"
-" not kept.\n"
-" ``kcachegrind``\n"
-" Format profiling data for kcachegrind use: when saving to a\n"
-" file, the generated file can directly be loaded into\n"
-" kcachegrind."
+msgid "entering debugger - type c to continue starting hg or h for help\n"
msgstr ""
+#, python-format
msgid ""
-"``frequency``\n"
-" Sampling frequency. Specific to the ``stat`` sampling profiler.\n"
-" Default: 1000."
+"hg: command '%s' is ambiguous:\n"
+" %s\n"
msgstr ""
+"hg: Kommando '%s' ist mehrdeutig:\n"
+" %s\n"
-msgid ""
-"``output``\n"
-" File path where profiling data or report should be saved. If the\n"
-" file exists, it is replaced. Default: None, data is printed on\n"
-" stderr"
-msgstr ""
+#, python-format
+msgid "timed out waiting for lock held by %s"
+msgstr "Zeitüberschreitung beim Warten auf Sperre von %s"
-msgid ""
-"``revsetalias``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+#, python-format
+msgid "lock held by %s"
+msgstr "Zur Zeit von %s gesperrt"
-msgid "Alias definitions for revsets. See :hg:`help revsets` for details."
-msgstr ""
+#, python-format
+msgid "abort: %s: %s\n"
+msgstr "Abbruch: %s: %s\n"
-msgid ""
-"``server``\n"
-"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
+#, python-format
+msgid "abort: could not lock %s: %s\n"
+msgstr "Abbruch: Kann %s nicht sperren: %s\n"
-msgid "Controls generic server settings."
+#, python-format
+msgid "hg %s: %s\n"
msgstr ""
-msgid ""
-"``uncompressed``\n"
-" Whether to allow clients to clone a repository using the\n"
-" uncompressed streaming protocol. This transfers about 40% more\n"
-" data than a regular clone, but uses less memory and CPU on both\n"
-" server and client. Over a LAN (100 Mbps or better) or a very fast\n"
-" WAN, an uncompressed streaming clone is a lot faster (~10x) than a\n"
-" regular clone. Over most WAN connections (anything slower than\n"
-" about 6 Mbps), uncompressed streaming is slower, because of the\n"
-" extra data transfer overhead. This mode will also temporarily hold\n"
-" the write lock while determining what data to transfer.\n"
-" Default is True."
+#, python-format
+msgid "hg: %s\n"
msgstr ""
-msgid ""
-"``preferuncompressed``\n"
-" When set, clients will try to use the uncompressed streaming\n"
-" protocol. Default is False."
-msgstr ""
+#, python-format
+msgid "abort: %s!\n"
+msgstr "Abbruch: %s!\n"
-msgid ""
-"``validate``\n"
-" Whether to validate the completeness of pushed changesets by\n"
-" checking that all new file revisions specified in manifests are\n"
-" present. Default is False."
-msgstr ""
+#, python-format
+msgid "abort: %s"
+msgstr "Abbruch: %s"
-msgid ""
-"``smtp``\n"
-"\"\"\"\"\"\"\"\""
-msgstr ""
+msgid " empty string\n"
+msgstr " leere Zeichenkette\n"
-msgid "Configuration for extensions that need to send email messages."
-msgstr ""
+msgid "killed!\n"
+msgstr "getötet!\n"
-msgid ""
-"``host``\n"
-" Host name of mail server, e.g. \"mail.example.com\"."
-msgstr ""
+#, python-format
+msgid "hg: unknown command '%s'\n"
+msgstr "hg: unbekannter Befehl '%s'\n"
-msgid ""
-"``port``\n"
-" Optional. Port to connect to on mail server. Default: 25."
-msgstr ""
+msgid "(did you forget to compile extensions?)\n"
+msgstr "(Erweiterungen nicht kompiliert?)\n"
-msgid ""
-"``tls``\n"
-" Optional. Method to enable TLS when connecting to mail server: "
-"starttls,\n"
-" smtps or none. Default: none."
-msgstr ""
+msgid "(is your Python install correct?)\n"
+msgstr "(Python-Installation korrekt?)\n"
-msgid ""
-"``username``\n"
-" Optional. User name for authenticating with the SMTP server.\n"
-" Default: none."
-msgstr ""
+#, python-format
+msgid "abort: error: %s\n"
+msgstr "Abbruch: Fehler: %s\n"
-msgid ""
-"``password``\n"
-" Optional. Password for authenticating with the SMTP server. If not\n"
-" specified, interactive sessions will prompt the user for a\n"
-" password; non-interactive sessions will fail. Default: none."
-msgstr ""
+msgid "broken pipe\n"
+msgstr "Datenübergabe unterbrochen\n"
-msgid ""
-"``local_hostname``\n"
-" Optional. It's the hostname that the sender can use to identify\n"
-" itself to the MTA."
-msgstr ""
+msgid "interrupted!\n"
+msgstr "unterbrochen!\n"
msgid ""
"\n"
-"``subpaths``\n"
-"\"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
-
-msgid ""
-"Subrepository source URLs can go stale if a remote server changes name\n"
-"or becomes temporarily unavailable. This section lets you define\n"
-"rewrite rules of the form::"
-msgstr ""
-
-msgid " <pattern> = <replacement>"
-msgstr ""
-
-msgid ""
-"where ``pattern`` is a regular expression matching a subrepository\n"
-"source URL and ``replacement`` is the replacement string used to\n"
-"rewrite it. Groups can be matched in ``pattern`` and referenced in\n"
-"``replacements``. For instance::"
-msgstr ""
-
-msgid " http://server/(.*)-hg/ = http://hg.server/\\1/"
-msgstr ""
-
-msgid "rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``."
-msgstr ""
-
-msgid ""
-"Relative subrepository paths are first made absolute, and the the\n"
-"rewrite rules are then applied on the full (absolute) path. The rules\n"
-"are applied in definition order."
-msgstr ""
-
-msgid ""
-"``trusted``\n"
-"\"\"\"\"\"\"\"\"\"\"\""
-msgstr ""
-
-msgid ""
-"Mercurial will not use the settings in the\n"
-"``.hg/hgrc`` file from a repository if it doesn't belong to a trusted\n"
-"user or to a trusted group, as various hgrc features allow arbitrary\n"
-"commands to be run. This issue is often encountered when configuring\n"
-"hooks or extensions for shared repositories or servers. However,\n"
-"the web interface will use some safe settings from the ``[web]``\n"
-"section."
-msgstr ""
-
-msgid ""
-"This section specifies what users and groups are trusted. The\n"
-"current user is always trusted. To trust everybody, list a user or a\n"
-"group with name ``*``. These settings must be placed in an\n"
-"*already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the\n"
-"user or service running Mercurial."
-msgstr ""
-
-msgid ""
-"``users``\n"
-" Comma-separated list of trusted users."
-msgstr ""
-
-msgid ""
-"``groups``\n"
-" Comma-separated list of trusted groups."
+"broken pipe\n"
msgstr ""
-
-msgid ""
"\n"
-"``ui``\n"
-"\"\"\"\"\"\""
-msgstr ""
-
-msgid "User interface controls."
-msgstr ""
-
-msgid ""
-"``archivemeta``\n"
-" Whether to include the .hg_archival.txt file containing meta data\n"
-" (hashes for the repository base and for tip) in archives created\n"
-" by the :hg:`archive` command or downloaded via hgweb.\n"
-" Default is True."
-msgstr ""
-
-msgid ""
-"``askusername``\n"
-" Whether to prompt for a username when committing. If True, and\n"
-" neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user "
-"will\n"
-" be prompted to enter a username. If no username is entered, the\n"
-" default ``USER@HOST`` is used instead.\n"
-" Default is False."
-msgstr ""
+"Datenübergabe unterbrochen\n"
-msgid ""
-"``commitsubrepos``\n"
-" Whether to commit modified subrepositories when committing the\n"
-" parent repository. If False and one subrepository has uncommitted\n"
-" changes, abort the commit.\n"
-" Default is False."
-msgstr ""
-"``commitsubrepos``\n"
-" Angabe, ob veränderte Unterarchive beim Übernehmen des\n"
-" übergeordneten Archivs auch übernommen werden sollen.\n"
-" Falls der Wert False ist und ein Unterarchiv\n"
-" nichtübernommene Änderungen hat, wird die Übernahme\n"
-" abgebrochen.\n"
-" Voreinstellung ist False."
+msgid "abort: out of memory\n"
+msgstr "Abbruch: Unzureichender Arbeitsspeicher\n"
-msgid ""
-"``debug``\n"
-" Print debugging information. True or False. Default is False."
-msgstr ""
+#, fuzzy
+msgid "** unknown exception encountered, please report by visiting\n"
+msgstr "** Unbekannter Fehler, Details folgen\n"
-msgid ""
-"``editor``\n"
-" The editor to use during a commit. Default is ``$EDITOR`` or ``vi``."
-msgstr ""
+#, fuzzy
+msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
+msgstr "** oder mercurial@selenic.com melden\n"
-msgid ""
-"``fallbackencoding``\n"
-" Encoding to try if it's not possible to decode the changelog using\n"
-" UTF-8. Default is ISO-8859-1."
+#, python-format
+msgid "** Python %s\n"
msgstr ""
-msgid ""
-"``ignore``\n"
-" A file to read per-user ignore patterns from. This file should be\n"
-" in the same format as a repository-wide .hgignore file. This\n"
-" option supports hook syntax, so if you want to specify multiple\n"
-" ignore files, you can do so by setting something like\n"
-" ``ignore.other = ~/.hgignore2``. For details of the ignore file\n"
-" format, see the ``hgignore(5)`` man page."
+#, python-format
+msgid "** Mercurial Distributed SCM (version %s)\n"
msgstr ""
-msgid ""
-"``interactive``\n"
-" Allow to prompt the user. True or False. Default is True."
-msgstr ""
+#, python-format
+msgid "** Extensions loaded: %s\n"
+msgstr "** Erweiterungen geladen: %s\n"
-msgid ""
-"``logtemplate``\n"
-" Template string for commands that print changesets."
+#, python-format
+msgid "no definition for alias '%s'\n"
msgstr ""
+#, python-format
msgid ""
-"``merge``\n"
-" The conflict resolution program to use during a manual merge.\n"
-" For more information on merge tools see :hg:`help merge-tools`.\n"
-" For configuring merge tools see the ``[merge-tools]`` section."
+"No argument found for substitution of %i variable in alias '%s' definition."
msgstr ""
+#, python-format
msgid ""
-"``portablefilenames``\n"
-" Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.\n"
-" Default is ``warn``.\n"
-" If set to ``warn`` (or ``true``), a warning message is printed on POSIX\n"
-" platforms, if a file with a non-portable filename is added (e.g. a file\n"
-" with a name that can't be created on Windows because it contains "
-"reserved\n"
-" parts like ``AUX``, reserved characters like ``:``, or would cause a "
-"case\n"
-" collision with an existing file).\n"
-" If set to ``ignore`` (or ``false``), no warning is printed.\n"
-" If set to ``abort``, the command is aborted.\n"
-" On Windows, this configuration option is ignored and the command aborted."
+"error in definition for alias '%s': %s may only be given on the command "
+"line\n"
msgstr ""
-msgid ""
-"``quiet``\n"
-" Reduce the amount of output printed. True or False. Default is False."
-msgstr ""
+#, python-format
+msgid "alias '%s' resolves to unknown command '%s'\n"
+msgstr "Alias '%s' verweist auf unbekannten Befehl '%s'\n"
-msgid ""
-"``remotecmd``\n"
-" remote command to use for clone/push/pull operations. Default is ``hg``."
+#, python-format
+msgid "alias '%s' resolves to ambiguous command '%s'\n"
msgstr ""
-msgid ""
-"``reportoldssl``\n"
-" Warn if an SSL certificate is unable to be due to using Python\n"
-" 2.5 or earlier. True or False. Default is True."
-msgstr ""
+#, python-format
+msgid "malformed --config option: %r (use --config section.name=value)"
+msgstr "fehlerhafte --config Option: %s (nutze --config Sektion.Name=Wert)"
-msgid ""
-"``report_untrusted``\n"
-" Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a\n"
-" trusted user or group. True or False. Default is True."
-msgstr ""
+#, fuzzy, python-format
+msgid "error getting current working directory: %s"
+msgstr "Gibt die Wurzel (top) des aktuellen Arbeitsverzeichnisses aus"
-msgid ""
-"``slash``\n"
-" Display paths using a slash (``/``) as the path separator. This\n"
-" only makes a difference on systems where the default path\n"
-" separator is not the slash character (e.g. Windows uses the\n"
-" backslash character (``\\``)).\n"
-" Default is False."
-msgstr ""
+#, python-format
+msgid "extension '%s' overrides commands: %s\n"
+msgstr "Erweiterung '%s' überschreibt die Befehle: %s\n"
-msgid ""
-"``ssh``\n"
-" command to use for SSH connections. Default is ``ssh``."
-msgstr ""
+#, fuzzy
+msgid "option --config may not be abbreviated!"
+msgstr "Option --config kann nicht abgekürzt werden!"
-msgid ""
-"``strict``\n"
-" Require exact command names, instead of allowing unambiguous\n"
-" abbreviations. True or False. Default is False."
-msgstr ""
+#, fuzzy
+msgid "option --cwd may not be abbreviated!"
+msgstr "Option --cwd kann nicht abgekürzt werden!"
msgid ""
-"``style``\n"
-" Name of style to use for command output."
+"Option -R has to be separated from other options (e.g. not -qR) and --"
+"repository may only be abbreviated as --repo!"
msgstr ""
-"``style``\n"
-" Names des Stils für Befehlsausgabe."
+"Option -R muss von anderen Optionen getrennt werden (also z.B. nicht -qR) "
+"und --repository kann nur als --repo abgekürzt werden!"
-msgid ""
-"``timeout``\n"
-" The timeout used when a lock is held (in seconds), a negative value\n"
-" means no timeout. Default is 600."
+#, python-format
+msgid "Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
msgstr ""
-msgid ""
-"``traceback``\n"
-" Mercurial always prints a traceback when an unknown exception\n"
-" occurs. Setting this to True will make Mercurial print a traceback\n"
-" on all exceptions, even those recognized by Mercurial (such as\n"
-" IOError or MemoryError). Default is False."
-msgstr ""
+#, python-format
+msgid "repository '%s' is not local"
+msgstr "Projektarchiv '%s' ist nicht lokal"
-msgid ""
-"``username``\n"
-" The committer of a changeset created when running \"commit\".\n"
-" Typically a person's name and email address, e.g. ``Fred Widget\n"
-" <fred@example.com>``. Default is ``$EMAIL`` or ``username@hostname``. "
-"If\n"
-" the username in hgrc is empty, it has to be specified manually or\n"
-" in a different hgrc file (e.g. ``$HOME/.hgrc``, if the admin set\n"
-" ``username =`` in the system hgrc). Environment variables in the\n"
-" username are expanded."
-msgstr ""
+#, fuzzy
+msgid "warning: --repository ignored\n"
+msgstr "Warnung: Projektarchiv steht in keinem Zusammenhang\n"
-msgid ""
-"``verbose``\n"
-" Increase the amount of output printed. True or False. Default is False."
-msgstr ""
+msgid "invalid arguments"
+msgstr "ungültige Parameter"
-msgid ""
-"\n"
-"``web``\n"
-"\"\"\"\"\"\"\""
+#, python-format
+msgid "unrecognized profiling format '%s' - Ignored\n"
msgstr ""
msgid ""
-"Web interface configuration. The settings in this section apply to\n"
-"both the builtin webserver (started by :hg:`serve`) and the script you\n"
-"run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI\n"
-"and WSGI)."
+"lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/"
+"misc/lsprof/"
msgstr ""
-msgid ""
-"The Mercurial webserver does no authentication (it does not prompt for\n"
-"usernames and passwords to validate *who* users are), but it does do\n"
-"authorization (it grants or denies access for *authenticated users*\n"
-"based on settings in this section). You must either configure your\n"
-"webserver to do authentication for you, or disable the authorization\n"
-"checks."
+#, python-format
+msgid "*** failed to import extension %s from %s: %s\n"
msgstr ""
-msgid ""
-"For a quick setup in a trusted environment, e.g., a private LAN, where\n"
-"you want it to accept pushes from anybody, you can use the following\n"
-"command line::"
+#, python-format
+msgid "*** failed to import extension %s: %s\n"
msgstr ""
-msgid " $ hg --config web.allow_push=* --config web.push_ssl=False serve"
-msgstr ""
+#, fuzzy, python-format
+msgid "warning: error finding commands in %s\n"
+msgstr "Führe 'notify'-Befehl aus: %s\n"
-msgid ""
-"Note that this will allow anybody to push anything to the server and\n"
-"that this should not be used for public servers."
+#, python-format
+msgid "couldn't find merge tool %s\n"
msgstr ""
-msgid "The full set of options is:"
-msgstr "Eine vollständige Liste der Optionen ist::"
-
-msgid ""
-"``accesslog``\n"
-" Where to output the access log. Default is stdout."
+#, python-format
+msgid "tool %s can't handle symlinks\n"
msgstr ""
-msgid ""
-"``address``\n"
-" Interface address to bind to. Default is all."
+#, python-format
+msgid "tool %s can't handle binary\n"
msgstr ""
-msgid ""
-"``allow_archive``\n"
-" List of archive format (bz2, gz, zip) allowed for downloading.\n"
-" Default is empty."
+#, python-format
+msgid "tool %s requires a GUI\n"
msgstr ""
+#, python-format
msgid ""
-"``allowbz2``\n"
-" (DEPRECATED) Whether to allow .tar.bz2 downloading of repository\n"
-" revisions.\n"
-" Default is False."
+" no tool found to merge %s\n"
+"keep (l)ocal or take (o)ther?"
msgstr ""
-msgid ""
-"``allowgz``\n"
-" (DEPRECATED) Whether to allow .tar.gz downloading of repository\n"
-" revisions.\n"
-" Default is False."
+msgid "&Local"
msgstr ""
-msgid ""
-"``allowpull``\n"
-" Whether to allow pulling from the repository. Default is True."
+msgid "&Other"
msgstr ""
-msgid ""
-"``allow_push``\n"
-" Whether to allow pushing to the repository. If empty or not set,\n"
-" push is not allowed. If the special value ``*``, any remote user can\n"
-" push, including unauthenticated users. Otherwise, the remote user\n"
-" must have been authenticated, and the authenticated user name must\n"
-" be present in this list. The contents of the allow_push list are\n"
-" examined after the deny_push list."
+#, python-format
+msgid "merging %s and %s to %s\n"
msgstr ""
-msgid ""
-"``guessmime``\n"
-" Control MIME types for raw download of file content.\n"
-" Set to True to let hgweb guess the content type from the file\n"
-" extension. This will serve HTML files as ``text/html`` and might\n"
-" allow cross-site scripting attacks when serving untrusted\n"
-" repositories. Default is False."
+#, python-format
+msgid "merging %s\n"
msgstr ""
-msgid ""
-"``allow_read``\n"
-" If the user has not already been denied repository access due to\n"
-" the contents of deny_read, this list determines whether to grant\n"
-" repository access to the user. If this list is not empty, and the\n"
-" user is unauthenticated or not present in the list, then access is\n"
-" denied for the user. If the list is empty or not set, then access\n"
-" is permitted to all users by default. Setting allow_read to the\n"
-" special value ``*`` is equivalent to it not being set (i.e. access\n"
-" is permitted to all users). The contents of the allow_read list are\n"
-" examined after the deny_read list."
+#, python-format
+msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
msgstr ""
-msgid ""
-"``allowzip``\n"
-" (DEPRECATED) Whether to allow .zip downloading of repository\n"
-" revisions. Default is False. This feature creates temporary files."
+#, python-format
+msgid "was merge of '%s' successful (yn)?"
msgstr ""
+#, python-format
msgid ""
-"``baseurl``\n"
-" Base URL to use when publishing URLs in other locations, so\n"
-" third-party tools like email notification hooks can construct\n"
-" URLs. Example: ``http://hgserver/repos/``."
+" output file %s appears unchanged\n"
+"was merge successful (yn)?"
msgstr ""
-msgid ""
-"``cacerts``\n"
-" Path to file containing a list of PEM encoded certificate\n"
-" authority certificates. Environment variables and ``~user``\n"
-" constructs are expanded in the filename. If specified on the\n"
-" client, then it will verify the identity of remote HTTPS servers\n"
-" with these certificates."
+#, python-format
+msgid "merging %s failed!\n"
msgstr ""
-msgid ""
-" This feature is only supported when using Python 2.6 or later. If you "
-"wish\n"
-" to use it with earlier versions of Python, install the backported\n"
-" version of the ssl library that is available from\n"
-" ``http://pypi.python.org``."
-msgstr ""
+#, fuzzy
+msgid "starting revisions are not directly related"
+msgstr "svn: Startrevision %s ist keine Ganzzahl"
-msgid ""
-" To disable SSL verification temporarily, specify ``--insecure`` from\n"
-" command line."
+#, python-format
+msgid "inconsistent state, %s:%s is good and bad"
msgstr ""
-msgid ""
-" You can use OpenSSL's CA certificate file if your platform has\n"
-" one. On most Linux systems this will be\n"
-" ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to\n"
-" generate this file manually. The form must be as follows::"
+#, python-format
+msgid "unknown bisect kind %s"
msgstr ""
-msgid ""
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----\n"
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----"
-msgstr ""
+msgid "disabled extensions:"
+msgstr "Inaktive Erweiterungen:"
-msgid ""
-"``cache``\n"
-" Whether to support caching in hgweb. Defaults to True."
-msgstr ""
+msgid "Configuration Files"
+msgstr "Konfigurationsdateien"
-msgid ""
-"``collapse``\n"
-" With ``descend`` enabled, repositories in subdirectories are shown at\n"
-" a single level alongside repositories in the current path. With\n"
-" ``collapse`` also enabled, repositories residing at a deeper level than\n"
-" the current path are grouped behind navigable directory entries that\n"
-" lead to the locations of these repositories. In effect, this setting\n"
-" collapses each collection of repositories found within a subdirectory\n"
-" into a single entry for that subdirectory. Default is False."
-msgstr ""
+msgid "Date Formats"
+msgstr "Datumsformate"
-msgid ""
-"``contact``\n"
-" Name or email address of the person in charge of the repository.\n"
-" Defaults to ui.username or ``$EMAIL`` or \"unknown\" if unset or empty."
-msgstr ""
+msgid "File Name Patterns"
+msgstr "Dateimuster"
-msgid ""
-"``deny_push``\n"
-" Whether to deny pushing to the repository. If empty or not set,\n"
-" push is not denied. If the special value ``*``, all remote users are\n"
-" denied push. Otherwise, unauthenticated users are all denied, and\n"
-" any authenticated user name present in this list is also denied. The\n"
-" contents of the deny_push list are examined before the allow_push list."
-msgstr ""
+msgid "Environment Variables"
+msgstr "Umgebungsvariablen"
-msgid ""
-"``deny_read``\n"
-" Whether to deny reading/viewing of the repository. If this list is\n"
-" not empty, unauthenticated users are all denied, and any\n"
-" authenticated user name present in this list is also denied access to\n"
-" the repository. If set to the special value ``*``, all remote users\n"
-" are denied access (rarely needed ;). If deny_read is empty or not set,\n"
-" the determination of repository access depends on the presence and\n"
-" content of the allow_read list (see description). If both\n"
-" deny_read and allow_read are empty or not set, then access is\n"
-" permitted to all users by default. If the repository is being\n"
-" served via hgwebdir, denied users will not be able to see it in\n"
-" the list of repositories. The contents of the deny_read list have\n"
-" priority over (are examined before) the contents of the allow_read\n"
-" list."
-msgstr ""
+msgid "Specifying Single Revisions"
+msgstr "Angabe einzelner Revisionen"
-msgid ""
-"``descend``\n"
-" hgwebdir indexes will not descend into subdirectories. Only "
-"repositories\n"
-" directly in the current path will be shown (other repositories are "
-"still\n"
-" available from the index corresponding to their containing path)."
-msgstr ""
+msgid "Specifying Multiple Revisions"
+msgstr "Angabe mehrerer Revisionen"
-msgid ""
-"``description``\n"
-" Textual description of the repository's purpose or contents.\n"
-" Default is \"unknown\"."
-msgstr ""
+msgid "Specifying Revision Sets"
+msgstr "Angabe von Änderungssatzbereichen"
-msgid ""
-"``encoding``\n"
-" Character encoding name. Default is the current locale charset.\n"
-" Example: \"UTF-8\""
-msgstr ""
+msgid "Diff Formats"
+msgstr "Diff-Formate"
-msgid ""
-"``errorlog``\n"
-" Where to output the error log. Default is stderr."
+msgid "Merge Tools"
msgstr ""
-msgid ""
-"``hidden``\n"
-" Whether to hide the repository in the hgwebdir index.\n"
-" Default is False."
-msgstr ""
+msgid "Template Usage"
+msgstr "Nutzung von Vorlagen"
-msgid ""
-"``ipv6``\n"
-" Whether to use IPv6. Default is False."
-msgstr ""
+msgid "URL Paths"
+msgstr "URL-Pfade"
-msgid ""
-"``logoimg``\n"
-" File name of the logo image that some templates display on each page.\n"
-" The file name is relative to ``staticurl``. That is, the full path to\n"
-" the logo image is \"staticurl/logoimg\".\n"
-" If unset, ``hglogo.png`` will be used."
-msgstr ""
+msgid "Using additional features"
+msgstr "Benutzung erweiterter Funktionen"
-msgid ""
-"``logourl``\n"
-" Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``\n"
-" will be used."
+msgid "Subrepositories"
msgstr ""
-msgid ""
-"``name``\n"
-" Repository name to use in the web interface. Default is current\n"
-" working directory."
-msgstr ""
+msgid "Configuring hgweb"
+msgstr "hgweb-Konfiguration"
-msgid ""
-"``maxchanges``\n"
-" Maximum number of changes to list on the changelog. Default is 10."
-msgstr ""
+msgid "Glossary"
+msgstr "Glossar"
msgid ""
-"``maxfiles``\n"
-" Maximum number of files to list per changeset. Default is 10."
+"Mercurial reads configuration data from several files, if they exist.\n"
+"Below we list the most specific file first."
+msgstr ""
+"Mercurial liest die Konfiguration aus mehreren Dateien, falls diese\n"
+"existieren. Es folgen Listen, die von der jeweils archivspezifischen\n"
+"Datei angeführt werden."
+
+msgid "On Windows, these configuration files are read:"
+msgstr "Unter Windows werden diese Dateien gelesen:"
+
+msgid ""
+"- ``<repo>\\.hg\\hgrc``\n"
+"- ``%USERPROFILE%\\.hgrc``\n"
+"- ``%USERPROFILE%\\mercurial.ini``\n"
+"- ``%HOME%\\.hgrc``\n"
+"- ``%HOME%\\mercurial.ini``\n"
+"- ``C:\\mercurial\\mercurial.ini`` (unless regkey or hgrc.d\\ or mercurial."
+"ini found)\n"
+"- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (unless hgrc.d\\ or mercurial."
+"ini found)\n"
+"- ``<hg.exe-dir>\\hgrc.d\\*.rc`` (unless mercurial.ini found)\n"
+"- ``<hg.exe-dir>\\mercurial.ini``"
+msgstr ""
+"- ``<archiv>\\.hg\\hgrc``\n"
+"- ``%USERPROFILE%\\.hgrc``\n"
+"- ``%USERPROFILE%\\Mercurial.ini``\n"
+"- ``%HOME%\\.hgrc``\n"
+"- ``%HOME%\\Mercurial.ini``\n"
+"- ``C:\\Mercurial\\Mercurial.ini`` (solange kein Registrierungsschlüssel, "
+"eine hgrc.d oder mercurial.ini gefunden wurde)\n"
+"- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (solange keine hgrc.d oder "
+"mercurial.ini gefunden wurde)\n"
+"- ``<installations-pfad>\\hgrc.d\\*.rc`` (solange keine mercurial.ini "
+"gefunden wurde)\n"
+"- ``<installations-pfad>\\mercurial.ini``"
+
+msgid "On Unix, these files are read:"
+msgstr "Unter Unix werden diese Dateien gelesen:"
+
+msgid ""
+"- ``<repo>/.hg/hgrc``\n"
+"- ``$HOME/.hgrc``\n"
+"- ``/etc/mercurial/hgrc``\n"
+"- ``/etc/mercurial/hgrc.d/*.rc``\n"
+"- ``<install-root>/etc/mercurial/hgrc``\n"
+"- ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
+msgstr ""
+"- ``<archiv>/.hg/hgrc``\n"
+"- ``$HOME/.hgrc``\n"
+"- ``/etc/mercurial/hgrc``\n"
+"- ``/etc/mercurial/hgrc.d/*.rc``\n"
+"- ``<installation-pfad>/etc/mercurial/hgrc``\n"
+"- ``<installation-pfad>/etc/mercurial/hgrc.d/*.rc``"
+
+msgid ""
+"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 ""
+#, fuzzy
msgid ""
-"``port``\n"
-" Port to listen on. Default is 8000."
-msgstr ""
-"``port``\n"
-" Port auf dem gehorcht wird (Voreinstellung: 8000)"
+" not trusting file <repo>/.hg/hgrc from untrusted user USER, group GROUP"
+msgstr "Nicht vertrauenswürdige Datei %s vom Nutzer %s, Gruppe %s\n"
msgid ""
-"``prefix``\n"
-" Prefix path to serve from. Default is '' (server root)."
+"If this bothers you, the warning can be silenced (the file would still\n"
+"be ignored) or trust can be established. Use one of the following\n"
+"settings, the syntax is explained below:"
msgstr ""
-"``prefix``\n"
-" Pfadpräfix von dem ausgeliefert wird (Voreinstellung: Serverwurzel '/')"
msgid ""
-"``push_ssl``\n"
-" Whether to require that inbound pushes be transported over SSL to\n"
-" prevent password sniffing. Default is True."
+"- ``ui.report_untrusted = False``\n"
+"- ``trusted.users = USER``\n"
+"- ``trusted.groups = GROUP``"
msgstr ""
msgid ""
-"``staticurl``\n"
-" Base URL to use for static files. If unset, static files (e.g. the\n"
-" hgicon.png favicon) will be served by the CGI script itself. Use\n"
-" this setting to serve them directly with the HTTP server.\n"
-" Example: ``http://hgserver/static/``."
+"The configuration files for Mercurial use a simple ini-file format. A\n"
+"configuration file consists of sections, led by a ``[section]`` header\n"
+"and followed by ``name = value`` entries::"
msgstr ""
+"Für die Konfigurationsdateien wird ein einfaches ini-Dateiformat verwendet.\n"
+"Die Datei enthält Sektionen (durch ``[Sektionsname]`` eingeleitet), welche\n"
+"ihrerseits Zeilen der Form ``name = wert`` enthalten::"
msgid ""
-"``stripes``\n"
-" How many lines a \"zebra stripe\" should span in multiline output.\n"
-" Default is 1; set to 0 to disable."
+" [ui]\n"
+" username = Firstname Lastname <firstname.lastname@example.net>\n"
+" verbose = True"
msgstr ""
+" [ui]\n"
+" username = Vorname Nachname <vorname.nachname@example.net>\n"
+" verbose = True"
+#, fuzzy
msgid ""
-"``style``\n"
-" Which template map style to use."
+"The above entries will be referred to as ``ui.username`` and\n"
+"``ui.verbose``, respectively. Please see the hgrc man page for a full\n"
+"description of the possible configuration values:"
msgstr ""
-"``style``\n"
-" Zu verwendender Stil"
+"Die obigen Beispieleinträge werden als ``ui.username`` bzw. ``ui.verbose``\n"
+"bezeichnet. Der hgrc man-Eintrag listet und beschreibt alle Konfigurations-\n"
+"werte auf:"
msgid ""
-"``templates``\n"
-" Where to find the HTML templates. Default is install path.\n"
+"- on Unix-like systems: ``man hgrc``\n"
+"- online: http://www.selenic.com/mercurial/hgrc.5.html\n"
msgstr ""
+"- auf Unix-ähnlichen Systemen: ``man hgrc``\n"
+"- online: http://www.selenic.com/mercurial/hgrc.5.html\n"
msgid "Some commands allow the user to specify a date, e.g.:"
msgstr "Einige Befehle erlauben dem Benutzer ein Datum anzugeben, z.B.:"
@@ -16417,9 +13118,11 @@ msgstr ""
"- backout, commit, import, tag: Angabe des Versionsdatums.\n"
"- log, revert, update: Selektion von Revisionen anhand ihres Datums."
+#, fuzzy
msgid "Many date formats are valid. Here are some examples:"
-msgstr "Viele Datumsformate sind erlaubt. Hier einige Beispiele:"
+msgstr "Viele Datumsformate sind erlaubt. Hier einige Beispiele::"
+#, fuzzy
msgid ""
"- ``Wed Dec 6 13:18:29 2006`` (local timezone assumed)\n"
"- ``Dec 6 13:18 -0600`` (year assumed, time offset provided)\n"
@@ -16435,57 +13138,61 @@ msgid ""
"- ``12/6``\n"
"- ``12/6/6`` (Dec 6 2006)"
msgstr ""
-" ``Wed Dec 6 13:18:29 2006`` (Lokale Zeitzone angenommen)\n"
-" ``Dec 6 13:18 -0600`` (Jahr angenommen, Zeitverschiebung angegeben)\n"
-" ``Dec 6 13:18 UTC`` (UTC und GMT sind Aliase für +0000)\n"
-" ``Dec 6`` (Mitternacht)\n"
-" ``13:18`` (Heute angenommen)\n"
-" ``3:39`` (3:39 morgens angenommen)\n"
-" ``3:39pm`` (15:39)\n"
-" ``2006-12-06 13:18:29`` (ISO 8601 format)\n"
-" ``2006-12-6 13:18``\n"
-" ``2006-12-6``\n"
-" ``12-6``\n"
-" ``12/6``\n"
-" ``12/6/6`` (Dec 6 2006)"
+" \"Wed Dec 6 13:18:29 2006\" (Lokale Zeitzone angenommen)\n"
+" \"Dec 6 13:18 -0600\" (Jahr angenommen, Zeitverschiebung angegeben)\n"
+" \"Dec 6 13:18 UTC\" (UTC und GMT sind Aliase für +0000)\n"
+" \"Dec 6\" (Mitternacht)\n"
+" \"13:18\" (Heute angenommen)\n"
+" \"3:39\" (3:39 morgens angenommen)\n"
+" \"3:39pm\" (15:39)\n"
+" \"2006-12-06 13:18:29\" (ISO 8601 format)\n"
+" \"2006-12-6 13:18\"\n"
+" \"2006-12-6\"\n"
+" \"12-6\"\n"
+" \"12/6\"\n"
+" \"12/6/6\" (Dec 6 2006)"
+#, fuzzy
msgid "Lastly, there is Mercurial's internal format:"
-msgstr "Schließlich gibt es Mercurials internes Format:"
+msgstr "Schließlich gibt es Mercurials internes Format::"
+#, fuzzy
msgid "- ``1165432709 0`` (Wed Dec 6 13:18:29 2006 UTC)"
-msgstr "- ``1165432709 0`` (Wed Dec 6 13:18:29 2006 UTC)"
+msgstr " \"1165432709 0\" (Wed Dec 6 13:18:29 2006 UTC)"
msgid ""
-"This is the internal representation format for dates. The first number\n"
-"is the number of seconds since the epoch (1970-01-01 00:00 UTC). The\n"
-"second is the offset of the local timezone, in seconds west of UTC\n"
-"(negative if the timezone is east of UTC)."
+"This is the internal representation format for dates. unixtime is the\n"
+"number of seconds since the epoch (1970-01-01 00:00 UTC). offset is\n"
+"the offset of the local timezone, in seconds west of UTC (negative if\n"
+"the timezone is east of UTC)."
msgstr ""
"Dies ist das interne Darstellungsformat für Daten. \"Unixzeit\" ist die\n"
"Anzahl von Sekunden seit der UNIX Epoche (1970-01-01 00:00 UTC).\n"
"Abgesetzt davon steht die Verschiebung zur lokalen Zeitzone in Sekunden\n"
"westlich der UTC (negativ wenn die Zeitzone östlich der UTC ist)."
+#, fuzzy
msgid "The log command also accepts date ranges:"
-msgstr "Der log-Befehl akzeptiert auch Datumsbereiche:"
+msgstr "Der log-Befehl akzeptiert auch Datumsbereiche::"
+#, fuzzy
msgid ""
-"- ``<DATE`` - at or before a given date/time\n"
-"- ``>DATE`` - on or after a given date/time\n"
-"- ``DATE to DATE`` - a date range, inclusive\n"
-"- ``-DAYS`` - within a given number of days of today\n"
+"- ``<{datetime}`` - at or before a given date/time\n"
+"- ``>{datetime}`` - on or after a given date/time\n"
+"- ``{datetime} to {datetime}`` - a date range, inclusive\n"
+"- ``-{days}`` - within a given number of days of today\n"
msgstr ""
-" ``<DATUM`` - an oder vor einem/r angegebenen Datum/Uhrzeit\n"
-" ``>DATUM`` - zu oder nach einem/r angegebenen Datum/Uhrzeit\n"
-" ``DATUM to DATUM`` - ein Datumsbereich, inklusive\n"
-" ``-TAGE`` - innerhalb der angegebenen Anzahl von Tagen vor heute\n"
+" \"<{datetime}\" - an oder vor einem/r angegebenen Datum/Uhrzeit\n"
+" \">{datetime}\" - zu oder nach einem/r angegebenen Datum/Uhrzeit\n"
+" \"{datetime} to {datetime}\" - ein Datumsbereich, inklusive\n"
+" \"-{tage}\" - innerhalb der angegebenen Anzahl von Tagen vor heute\n"
msgid ""
"Mercurial's default format for showing changes between two versions of\n"
"a file is compatible with the unified format of GNU diff, which can be\n"
"used by GNU patch and many other standard tools."
msgstr ""
-"Das Vorgabeformat von Mercurial für das Anzeigen von Änderungen\n"
+"Das Standardformat von Mercurial für das Anzeigen von Änderungen\n"
"zwischen zwei Versionen einer Datei ist mit dem Unified-Format von GNU\n"
"diff kompatibel und kann mit GNU patch und vielen anderen\n"
"Standard-Werkzeugen genutzt werden."
@@ -16519,6 +13226,7 @@ msgstr ""
"standardmäßig erzeugt, da einige weit verbreitete Werkzeuge es noch\n"
"nicht unterstützen."
+#, fuzzy
msgid ""
"This means that when generating diffs from a Mercurial repository\n"
"(e.g. with :hg:`export`), you should be careful about things like file\n"
@@ -16529,13 +13237,14 @@ msgid ""
"format for communicating changes."
msgstr ""
"Das bedeutet, dass beim Erzeugen von Diffs für ein Mercurial\n"
-"Projektarchiv (z.B. mit :hg:`export`) auf Operationen wie Kopieren,\n"
+"Projektarchiv (z.B. mit \"hg export\") auf Operationen wie Kopieren,\n"
"Verschieben und die anderen oben genannten Dinge achten sollte,\n"
"da beim Anwenden eines Standard-Diffs auf ein anderes Projektarchiv\n"
"diese Zusatzinformationen verlorengehen. Mercurials interne Operationen\n"
-"(wie Push und Pull) sind davon nicht betroffen, da sie ein internes,\n"
-"binäres Format zur Kommunikation verwenden."
+"(wie Push und Pull) sind davon nicht betroffen, da sie über ein\n"
+"internes, binäres Format zur Kommunikation verwenden."
+#, fuzzy
msgid ""
"To make Mercurial produce the git extended diff format, use the --git\n"
"option available for many commands, or set 'git = True' in the [diff]\n"
@@ -16544,10 +13253,9 @@ msgid ""
msgstr ""
"Um Mercurial dazu zu bringen, das erweiterte Git-Format zu erzeugen,\n"
"kann man entweder den für viele Befehle verfügbaren Schalter --git\n"
-"verwenden werden oder 'git = True' im Abschnitt [diff] in der\n"
-"Konfigurationsdatei angeben. Wenn Diffs in diesem Format importiert oder\n"
-"mit der mq Erweiterung genutzt werden, muss diese Option nicht angegeben\n"
-"werden.\n"
+"verwenden werden oder 'git = True' in der Sektion [diff] in der\n"
+"hgrc angeben. Wenn Diffs in diesem Format importiert oder mit der mq\n"
+"Erweiterung genutzt werden, muss diese Option nicht angegeben werden.\n"
msgid ""
"HG\n"
@@ -16573,10 +13281,10 @@ msgstr ""
" Dies ist der Name des Editors, der zum Bearbeiten der Versions-"
"Meldung verwendet wird. Siehe auch EDITOR."
+#, fuzzy
msgid " (deprecated, use configuration file)"
-msgstr " (veraltet, benutze Konfigurationsdatei)"
+msgstr " (veraltet, benutze .hgrc)"
-#, fuzzy
msgid ""
"HGENCODING\n"
" This overrides the default locale setting detected by Mercurial.\n"
@@ -16585,7 +13293,7 @@ msgid ""
" be overridden with the --encoding command-line option."
msgstr ""
"HGENCODING\n"
-" Dies überschreibt die von Mercurial ermittelte Vorgabe-\n"
+" Dies überschreibt die von Mercurial ermittelte Standard-\n"
" Lokalisierung. Diese Einstellung wird zum Konvertieren von\n"
" Benutzernamen, Versions-Meldungen, Etiketten und Zweigen. Diese\n"
" Einstellung kann über den Schalter --encoding überschrieben werden."
@@ -16601,7 +13309,7 @@ msgid ""
msgstr ""
"HGENCODINGMODE\n"
" Dieses steuert, wie sich Mercurial beim Auftreten unbekannter Zeichen\n"
-" verhält, wenn es Benutzereingaben verarbeitet. Die Voreinstellung ist\n"
+" verhält, wenn es Benutzereingaben verarbeitet. Der Standard ist\n"
" \"strict\", das zu einem Abbruch führt, wenn ein Zeichen nicht erkannt\n"
" werden konnte. Andere Einstellungen sind \"replace\", das unbekannte\n"
" Zeichen ersetzt, und \"ignore\", das diese Zeichen verwirft. Diese\n"
@@ -16628,6 +13336,7 @@ msgstr ""
" soll. Das Programm wird mit drei Argumenten aufgerufen: die lokale\n"
" Datei, die entfernte Datei und die Vorgängerdatei."
+#, fuzzy
msgid ""
"HGRCPATH\n"
" A list of files or directories to search for configuration\n"
@@ -16636,9 +13345,8 @@ msgid ""
" the .hg/hgrc from the current repository is read."
msgstr ""
"HGRCPATH\n"
-" Eine Liste von Dateien oder Verzeichnissen, in denen nach "
-"Konfigurations-\n"
-" dateien gesucht werden soll. Als Trenner zwischen zwei Elementen\n"
+" Eine Liste von Dateien oder Verzeichnissen, in denen nach hgrc-\n"
+" Dateien gesucht werden soll. Als Trenner zwischen zwei Elementen\n"
" dient \":\" unter Unix und \";\" unter Windows. Wenn HGRCPATH nicht\n"
" gesetzt ist, wird der plattformspezifische Standardwert verwendet.\n"
" Wenn die Variable gesetzt, aber leer ist, wird nur .hg/hgrc aus dem\n"
@@ -16670,18 +13378,6 @@ msgid ""
msgstr ""
msgid ""
-"HGPLAINEXCEPT\n"
-" This is a comma-separated list of features to preserve when\n"
-" HGPLAIN is enabled. Currently the only value supported is \"i18n\",\n"
-" which preserves internationalization in plain mode."
-msgstr ""
-
-msgid ""
-" Setting HGPLAINEXCEPT to anything (even an empty string) will\n"
-" enable plain mode."
-msgstr ""
-
-msgid ""
"HGUSER\n"
" This is the string used as the author of a commit. If not set,\n"
" available values will be considered in this order:"
@@ -16691,6 +13387,7 @@ msgstr ""
" gesetzt ist, werden die verfügbaren Werte in der folgenden\n"
" Reihenfolge ausgewertet:"
+#, fuzzy
msgid ""
" - HGUSER (deprecated)\n"
" - configuration files from the HGRCPATH\n"
@@ -16699,7 +13396,7 @@ msgid ""
" - LOGNAME (with ``@hostname`` appended)"
msgstr ""
" - HGUSER (veraltet)\n"
-" - Konfigurationsdateien aus dem HGRCPATH\n"
+" - hgrc-Dateien aus dem HGRCPATH\n"
" - EMAIL\n"
" - Wert aus einer ineraktiven Eingabeaufforderung\n"
" - LOGNAME (mit angefügtem ``@hostname``)"
@@ -16737,12 +13434,11 @@ msgid ""
msgstr ""
"EDITOR\n"
" Manchmal muss Mercurial eine Textdatei in einem Editor öffnen, damit\n"
-" der Nutzer sie bearbeiten kann, zum Beispiel wenn eine Versionsmeldung\n"
-" geschrieben wird. Der verwendete Editor wird aus den drei Umgebungs-\n"
-" variablen HGEDITOR, VISUAL und EDITOR (in dieser Reihenfolge) "
-"ermittelt.\n"
-" Der erste nicht-leere wird verwendet. Wenn alle Angaben leer sind,\n"
-" wird die Voreinstellung 'vi' verwendet."
+" der Nutzer sie bearbeiten kann, zum Beispiel when eine Commit-\n"
+" Nachricht geschrieben wird. Der verwendete Editor wird aus den drei\n"
+" Umgebungsvariablen HGEDITOR, VISUAL und EDITOR (in dieser Reihenfolge)\n"
+" ermittelt. Der erste nicht-leere wird verwendet. Wenn alle Angaben\n"
+" leer sind, wird der Standard 'vi' verwendet."
msgid ""
"PYTHONPATH\n"
@@ -16762,7 +13458,7 @@ msgid ""
msgstr ""
"Mercurial hat die Fähigkeit, neue Funktionen über Erweiterungen\n"
"einzubinden. Erweiterungen können neue Befehle oder Schalter für\n"
-"bestehende Befehle hinzufügen, das Vorgabeverhalten ändern\n"
+"bestehende Befehle hinzufügen, das Standardverhalten ändern\n"
"oder Hooks implementieren."
msgid ""
@@ -16782,6 +13478,7 @@ msgstr ""
"sein; oder sie verändern das übliche Verhalten des Kerns von Mercurial.\n"
"Daher müssen Erweiterungen erst vom Benutzer bei Bedarf aktiviert werden."
+#, fuzzy
msgid ""
"To enable the \"foo\" extension, either shipped with Mercurial or in the\n"
"Python search path, create an entry for it in your configuration file,\n"
@@ -16789,7 +13486,7 @@ msgid ""
msgstr ""
"Um die Erweiterung \"foo\", die entweder mit Mercurial ausgeliefert wird\n"
"oder sich im Python-Suchpfad befindet, zu aktivieren, erstellen Sie einen\n"
-"Eintrag wie den folgenden in Ihrer Konfigurationsdatei::"
+"Eintrag wie den folgenden in Ihrer hgrc::"
msgid ""
" [extensions]\n"
@@ -16808,12 +13505,13 @@ msgstr ""
" [extensions]\n"
" meinefunktion = ~/.hgext/meinefunktion.py"
+#, fuzzy
msgid ""
"To explicitly disable an extension enabled in a configuration file of\n"
"broader scope, prepend its path with !::"
msgstr ""
"Um eine Erweiterung explizit zu deaktivieren, die von einer allgemeineren\n"
-"Konfigurationsdatei aktiviert wurde, setzen Sie ein ! vor den Pfad::"
+"hgrc aktiviert wurde, setzen Sie ein ! vor den Pfad::"
msgid ""
" [extensions]\n"
@@ -16829,129 +13527,6 @@ msgstr ""
" baz = !\n"
msgid ""
-"Mercurial supports a functional language for selecting a set of\n"
-"files. "
-msgstr ""
-"Mercurial unterstützt eine funktionale Sprache, um eine Liste von\n"
-"Dateien auszuwählen."
-
-msgid ""
-"Like other file patterns, this pattern type is indicated by a prefix,\n"
-"'set:'. The language supports a number of predicates which are joined\n"
-"by infix operators. Parenthesis can be used for grouping."
-msgstr ""
-"Dieses Muster ist (wie andere Dateimuster) durch ein Präfix angegeben:\n"
-"'set:'. Die Sprache unterstützt eine Reihe von Prädikaten, die über Infix-\n"
-"Operatoren miteinander verbunden werden. Klammern können zur\n"
-"Gruppierung verwendet werden."
-
-msgid ""
-"Identifiers such as filenames or patterns must be quoted with single\n"
-"or double quotes if they contain characters outside of\n"
-"``[.*{}[]?/\\_a-zA-Z0-9\\x80-\\xff]`` or if they match one of the\n"
-"predefined predicates. This generally applies to file patterns other\n"
-"than globs and arguments for predicates."
-msgstr ""
-"Bezeichner wie Dateinamen oder -muster müssen mit einfachen oder doppelten\n"
-"Anführungszeichen umgeben werden, wenn sie Zeichen außerhalb von\n"
-"``[._a-zA-Z0-9\\x80-\\xff]`` oder wenn sie einem der vordefinierten\n"
-"Prädikate entsprechen. Sonderzeichen können in Bezeichnern mit\n"
-"Anführungszeichen verwendet werden, indem sie \\-maskiert 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:"
-
-msgid ""
-"``not x``\n"
-" Files not in x. Short form is ``! x``."
-msgstr ""
-"``not x``\n"
-" Änderungssätze, die nicht in x enthalten sind. Kurzform ist ``! x``."
-
-msgid "These are the supported infix operators:"
-msgstr "Dies sind die unterstützten Infix-Operatoren:"
-
-msgid ""
-"``x and y``\n"
-" The intersection of files in x and y. Short form is ``x & y``."
-msgstr ""
-"``x and y``\n"
-" Die Schnittmenge der Änderungssätze aus x und y. Kurzform ist ``x & y``."
-
-msgid ""
-"``x or y``\n"
-" The union of files in x and y. There are two alternative short\n"
-" forms: ``x | y`` and ``x + y``."
-msgstr ""
-"``x or y``\n"
-" Die Vereinigung der Änderungssätze aus x und y. Es gibt zwei\n"
-" alternative Kurzformen: ``x | y`` und ``x + y``."
-
-msgid ""
-"``x - y``\n"
-" Files in x but not in y."
-msgstr ""
-"``x - y``\n"
-" Änderungssätze in x, aber nicht in y."
-
-msgid "The following predicates are supported:"
-msgstr "Die folgenden Prädikate werden unterstützt:"
-
-msgid ".. predicatesmarker"
-msgstr ""
-
-msgid "Some sample queries:"
-msgstr "Einige Beispiel-Anfragen:"
-
-msgid ""
-"- Show status of files that appear to be binary in the working directory::"
-msgstr ""
-"- Zeigt den Status von als binär erkannten Dateien im Arbeitsverzeichnis::"
-
-msgid " hg status -A \"set:binary()\""
-msgstr ""
-
-msgid "- Forget files that are in .hgignore but are already tracked::"
-msgstr "- Vergiss Dateien die in .hgignore, aber bereits versioniert sind::"
-
-msgid " hg forget \"set:hgignore() and not ignored()\""
-msgstr ""
-
-msgid "- Find text files that contain a string::"
-msgstr ""
-
-msgid " hg locate \"set:grep(magic) and not binary()\""
-msgstr ""
-
-msgid "- Find C files in a non-standard encoding::"
-msgstr ""
-
-msgid " hg locate \"set:**.c and not encoding('UTF-8')\""
-msgstr ""
-
-msgid "- Revert copies of large binary files::"
-msgstr ""
-
-msgid " hg revert \"set:copied() and binary() and size('>1M')\""
-msgstr ""
-
-msgid "- Remove files listed in foo.lst that contain the letter a or b::"
-msgstr ""
-
-msgid " hg remove \"set: 'listfile:foo.lst' and (**a* or **b*)\""
-msgstr ""
-
-msgid "See also :hg:`help patterns`.\n"
-msgstr ""
-
-msgid ""
"Ancestor\n"
" Any changeset that can be reached by an unbroken chain of parent\n"
" changesets from a given changeset. More precisely, the ancestors\n"
@@ -16961,32 +13536,6 @@ msgid ""
msgstr ""
msgid ""
-"Bookmark\n"
-" Bookmarks are pointers to certain commits that move when\n"
-" committing. They are similar to tags in that it is possible to use\n"
-" bookmark names in all places where Mercurial expects a changeset\n"
-" ID, e.g., with :hg:`update`. Unlike tags, bookmarks move along\n"
-" when you make a commit."
-msgstr ""
-"Lesezeichen\n"
-" Lesezeichen sind Zeiger auf bestimmte Versionen, die mitwandern,\n"
-" wenn eine neuen Version erzeugt wird. Ähnlich wie Etiketten, können\n"
-" Lesezeichen überall, wo Mercurial eine Änderungssatz-ID erwartet\n"
-" angeben, z.B. bei :hg:`update`. Im Unterschied zu Etiketten wandern\n"
-" Lesezeichen auf neue erstellte Revisionen im Zweig."
-
-msgid ""
-" Bookmarks can be renamed, copied and deleted. Bookmarks are local,\n"
-" unless they are explicitly pushed or pulled between repositories.\n"
-" Pushing and pulling bookmarks allow you to collaborate with others\n"
-" on a branch without creating a named branch."
-msgstr ""
-" Lesezeichen können umbenannt, kopiert und gelöscht werden. Sie sind\n"
-" nur lokal, wenn sie nicht explizit zwischen Archiven übertragen werden.\n"
-" Die Ãœbertragung von Lesezeichen (push oder pull) erlaubt die Zusammen-\n"
-" arbeit auf einem Entwicklungszweig, ohne ihn als Zweig zu benennen."
-
-msgid ""
"Branch\n"
" (Noun) A child changeset that has been created from a parent that\n"
" is not a head. These are known as topological branches, see\n"
@@ -17138,12 +13687,11 @@ msgstr ""
msgid " Example: \"I'm using checkout X.\""
msgstr ""
+#, fuzzy
msgid ""
" (Verb) Updating the working directory to a specific changeset. See\n"
" :hg:`help update`."
-msgstr ""
-" (Verb) Anheben des Arbeitsverzeichnisses auf die angegebene Revision.\n"
-" Siehe :hg:`help update`."
+msgstr " Hebt das Arbeitsverzeichnis auf die angegebene Revision an."
msgid " Example: \"I'm going to check out changeset X.\""
msgstr ""
@@ -17155,7 +13703,7 @@ msgstr ""
msgid ""
"Close changeset\n"
-" See 'Head, closed branch'"
+" See 'Changeset, close'."
msgstr ""
msgid ""
@@ -17266,13 +13814,6 @@ msgid ""
msgstr ""
msgid ""
-"Draft\n"
-" Changesets in the draft phase have not been shared with publishing\n"
-" repositories and may thus be safely changed by history-modifying\n"
-" extensions. See :hg:`help phases`."
-msgstr ""
-
-msgid ""
"Graph\n"
" See DAG and :hg:`help graphlog`."
msgstr ""
@@ -17283,24 +13824,40 @@ msgid ""
" repository head, depending on the context. See 'Head, branch' and\n"
" 'Head, repository' for specific definitions."
msgstr ""
-"Kopf\n"
-" Der Begriff 'Kopf' bezeichnet je nach Kontext einen Zweigkopf oder\n"
-" einen Archivkopf. Siehe 'Kopf, Zweig' und 'Kopf, Archiv' für die\n"
-" entsprechende Definition."
+#, fuzzy
msgid ""
" Heads are where development generally takes place and are the\n"
" usual targets for update and merge operations."
msgstr ""
-" Typischerweise findet die Entwicklung an Köpfen statt und sie sind\n"
-" häufig Ziel von Aktualisierungen und Zusammenführungen."
+"Zeigt die Köpfe des Archivs oder von Entwicklungszweigen\n"
+"\n"
+" Ohne Argumente werden alle Köpfe des Archivs angezeigt.\n"
+"\n"
+" Archivköpfe sind Revisionen, die keine Kinder haben. Typischerweise "
+"geht\n"
+" die Entwicklung hier weiter und die Köpfe sind häufig Ziel von\n"
+" Aktualisierungen und Zusammenführungen.\n"
+"\n"
+" Wenn eine oder mehrere REV Argumente gegeben sind, werden die Köpfe von\n"
+" den benannten Zweigen dieser Revisionen angezeigt. Der Name des Zweigs\n"
+" wird auch das Zweigetikett der Revision genannt.\n"
+"\n"
+" Zweigköpfe sind Revisionen eines bestimmten Zweigs, die keine Kinder\n"
+" im selben Zweig besitzen. Dies kann ein \"echter\" Kopf sein, oder die\n"
+" letzte Revision bevor ein neuer Zweig erstellt wurde. Falls kein Kopf\n"
+" eines Zweigs ein echter Kopf ist, gilt der Zweig als inaktiv. Zweige\n"
+" die mit dem Ãœbernahmeoption \"--close-branch\" geschlossen wurden,\n"
+" werden nur mit dem -c/--closed Schalter angezeigt.\n"
+"\n"
+" Bei Angabe einer STARTREV werden nur solche Köpfe (oder Zweigköpfe)\n"
+" angezeigt, die Nachfahren der gegebenen Revision sind.\n"
+" "
msgid ""
"Head, branch\n"
" A changeset with no descendants on the same named branch."
msgstr ""
-"Kopf, Zweig\n"
-" Ein Änderungssatz ohne Nachfahren im selben benannten Zweig."
msgid ""
"Head, closed branch\n"
@@ -17309,30 +13866,16 @@ msgid ""
" closed when all its heads are closed and consequently is not\n"
" listed by :hg:`branches`."
msgstr ""
-"Kopf, geschlossener Zweig\n"
-" Ein Änderungssatz, der einen Zweig als nunmehr uninteressant markiert.\n"
-" Der (schliessende) Kopf wird nicht mehr von :hg:`heads` angezeigt.\n"
-" Ein Zweig gilt als geschlossen, wenn all dessen Köpfe geschlossen sind,\n"
-" und wird nicht mehr von :hg:`branches` gezeigt."
-
-msgid ""
-" Closed heads can be re-opened by committing new changeset as the\n"
-" child of the changeset that marks a head as closed."
-msgstr ""
msgid ""
"Head, repository\n"
" A topological head which has not been closed."
msgstr ""
-"Kopf, Archiv\n"
-" Ein topologischer Kopf, der noch nicht geschlossen wurde."
msgid ""
"Head, topological\n"
" A changeset with no children in the repository."
msgstr ""
-"Kopf, topologisch\n"
-" Ein Änderungssatz ohne Nachfahren im Archiv."
msgid ""
"History, immutable\n"
@@ -17375,12 +13918,11 @@ msgid ""
" as a merge changeset, bringing two branches together in the DAG."
msgstr ""
+#, fuzzy
msgid ""
"Named branch\n"
" See 'Branch, named'."
-msgstr ""
-"Benannter Zweig\n"
-" Siehe 'Zweig, benannt'."
+msgstr "Setzt Branchnamen zum Namen des Vorgängers zurück"
msgid ""
"Null changeset\n"
@@ -17427,19 +13969,6 @@ msgid " Example: \"You will need to patch that revision.\""
msgstr ""
msgid ""
-"Phase\n"
-" A per-changeset state tracking how the changeset has been or\n"
-" should be shared. See :hg:`help phases`."
-msgstr ""
-
-msgid ""
-"Public\n"
-" Changesets in the public phase have been shared with publishing\n"
-" repositories and are therefore considered immutable. See :hg:`help\n"
-" phases`."
-msgstr ""
-
-msgid ""
"Pull\n"
" An operation in which changesets in a remote repository which are\n"
" not in the local repository are brought into the local\n"
@@ -17509,20 +14038,6 @@ msgid ""
msgstr ""
msgid ""
-"Secret\n"
-" Changesets in the secret phase may not be shared via push, pull,\n"
-" or clone. See :hg:`help phases`."
-msgstr ""
-
-msgid ""
-"Tag\n"
-" An alternative name given to a changeset. Tags can be used in all\n"
-" places where Mercurial expects a changeset ID, e.g., with\n"
-" :hg:`update`. The creation of a tag is stored in the history and\n"
-" will thus automatically be shared with other using push and pull."
-msgstr ""
-
-msgid ""
"Tip\n"
" The changeset with the highest revision number. It is the changeset\n"
" most recently added in a repository."
@@ -17559,146 +14074,11 @@ msgid ""
" See 'Directory, working'."
msgstr ""
+#, fuzzy
msgid ""
"Working directory parent\n"
" See 'Parent, working directory'.\n"
-msgstr ""
-"Vorfahr des Arbeitsverzeichnisses\n"
-" Siehe 'Vorfahr, Arbeitsverzeichnisses'.\n"
-
-msgid ""
-"Synopsis\n"
-"--------"
-msgstr ""
-"Zusammenfassung\n"
-"-------"
-
-msgid ""
-"The Mercurial system uses a file called ``.hgignore`` in the root\n"
-"directory of a repository to control its behavior when it searches\n"
-"for files that it is not currently tracking."
-msgstr ""
-
-msgid ""
-"Description\n"
-"-----------"
-msgstr ""
-"Beschreibung\n"
-"-----------"
-
-msgid ""
-"The working directory of a Mercurial repository will often contain\n"
-"files that should not be tracked by Mercurial. These include backup\n"
-"files created by editors and build products created by compilers.\n"
-"These files can be ignored by listing them in a ``.hgignore`` file in\n"
-"the root of the working directory. The ``.hgignore`` file must be\n"
-"created manually. It is typically put under version control, so that\n"
-"the settings will propagate to other repositories with push and pull."
-msgstr ""
-
-msgid ""
-"An untracked file is ignored if its path relative to the repository\n"
-"root directory, or any prefix path of that path, is matched against\n"
-"any pattern in ``.hgignore``."
-msgstr ""
-
-msgid ""
-"For example, say we have an untracked file, ``file.c``, at\n"
-"``a/b/file.c`` inside our repository. Mercurial will ignore ``file.c``\n"
-"if any pattern in ``.hgignore`` matches ``a/b/file.c``, ``a/b`` or ``a``."
-msgstr ""
-
-msgid ""
-"In addition, a Mercurial configuration file can reference a set of\n"
-"per-user or global ignore files. See the ``ignore`` configuration\n"
-"key on the ``[ui]`` section of :hg:`help config` for details of how to\n"
-"configure these files."
-msgstr ""
-
-msgid ""
-"To control Mercurial's handling of files that it manages, many\n"
-"commands support the ``-I`` and ``-X`` options; see\n"
-":hg:`help <command>` and :hg:`help patterns` for details."
-msgstr ""
-
-msgid ""
-"An ignore file is a plain text file consisting of a list of patterns,\n"
-"with one pattern per line. Empty lines are skipped. The ``#``\n"
-"character is treated as a comment character, and the ``\\`` character\n"
-"is treated as an escape character."
-msgstr ""
-"Eine ignore-Datei ist eine Textdatei, die aus einer Liste von Dateimustern\n"
-"besteht, mit einem Ausdruck pro Zeile. Leere Zeilen werden übersprungen.\n"
-"Das ``#``-Zeichen wird als Kommentarzeichen behandelt und das \n"
-"``\\``-Zeichen als Escape-Zeichen."
-
-msgid ""
-"Mercurial supports several pattern syntaxes. The default syntax used\n"
-"is Python/Perl-style regular expressions."
-msgstr ""
-"Mercurial unterstützt verschiedene Dateimuster-Syntaxen. Im Normalfall\n"
-"werden Python/Perl-artige Reguläre Ausdrücke verwendet."
-
-msgid "To change the syntax used, use a line of the following form::"
-msgstr "Die folgende Zeile ändert die von diesem Punkt an verwendete Syntax::"
-
-msgid " syntax: NAME"
-msgstr " Syntax: NAME"
-
-msgid "where ``NAME`` is one of the following:"
-msgstr "wobei ``NAME`` einer der folgenden ist:"
-
-msgid ""
-"``regexp``\n"
-" Regular expression, Python/Perl syntax.\n"
-"``glob``\n"
-" Shell-style glob."
-msgstr ""
-
-msgid ""
-"The chosen syntax stays in effect when parsing all patterns that\n"
-"follow, until another syntax is selected."
-msgstr ""
-"Die gewählte Syntax wird auf auf alle folgenden Muster angewendet\n"
-"bis eine andere Syntax ausgewählt wird."
-
-msgid ""
-"Neither glob nor regexp patterns are rooted. A glob-syntax pattern of\n"
-"the form ``*.c`` will match a file ending in ``.c`` in any directory,\n"
-"and a regexp pattern of the form ``\\.c$`` will do the same. To root a\n"
-"regexp pattern, start it with ``^``."
-msgstr ""
-
-msgid ""
-".. note::\n"
-" Patterns specified in other than ``.hgignore`` are always rooted.\n"
-" Please see :hg:`help patterns` for details."
-msgstr ""
-
-msgid ""
-"Example\n"
-"-------"
-msgstr ""
-
-msgid "Here is an example ignore file. ::"
-msgstr ""
-
-msgid ""
-" # use glob syntax.\n"
-" syntax: glob"
-msgstr ""
-
-msgid ""
-" *.elc\n"
-" *.pyc\n"
-" *~"
-msgstr ""
-
-msgid ""
-" # switch to regexp syntax.\n"
-" syntax: regexp\n"
-" ^\\.pc/\n"
-msgstr ""
+msgstr "Setzt die Vorgängerversionen des Arbeitsverzeichnisses manuell"
msgid ""
"Mercurial's internal web server, hgweb, can serve either a single\n"
@@ -17708,8 +14088,8 @@ msgid ""
msgstr ""
msgid ""
-"This file uses the same syntax as other Mercurial configuration files,\n"
-"but only the following sections are recognized:"
+"This file uses the same syntax as hgrc configuration files, but only\n"
+"the following sections are recognized:"
msgstr ""
msgid ""
@@ -17720,8 +14100,7 @@ msgstr ""
msgid ""
"The ``web`` section can specify all the settings described in the web\n"
-"section of the hgrc(5) documentation. See :hg:`help config` for\n"
-"information on where to find the manual page."
+"section of the hgrc documentation."
msgstr ""
msgid ""
@@ -17826,7 +14205,44 @@ msgid ""
"merge tools are:"
msgstr ""
-msgid ".. internaltoolsmarker"
+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 ""
@@ -17958,19 +14374,13 @@ msgid ""
"By default, Mercurial treats filenames as shell-style extended glob\n"
"patterns."
msgstr ""
-"Standardmäßig behandelt Mercurial-Dateinamen wie erweiterte \"Glob\"-Muster\n"
+"Standardmäßig behandelt Mercurial Dateinamen wie erweiterte \"Glob\"-Muster\n"
"der Shell (shell-style extended glob patterns)."
msgid "Alternate pattern notations must be specified explicitly."
msgstr "Andere Schreibweisen von Mustern müssen explizit angegeben werden."
msgid ""
-".. note::\n"
-" Patterns specified in ``.hgignore`` are not rooted. \n"
-" Please see :hg:`help hgignore` for details."
-msgstr ""
-
-msgid ""
"To use a plain path name without any pattern matching, start it with\n"
"``path:``. These path names must completely match starting at the\n"
"current repository root."
@@ -18047,166 +14457,19 @@ msgstr ""
msgid "Regexp examples::"
msgstr "Beispiel mit regulärem Ausdruck::"
+#, fuzzy
msgid " re:.*\\.c$ any name ending in \".c\", anywhere in the repository"
-msgstr " re:.*\\.c$ jeder Name endend mit \".c\" überall im Projektarchiv"
-
-msgid "File examples::"
-msgstr "Datei-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"
-msgstr ""
-
-msgid "See also :hg:`help filesets`.\n"
-msgstr ""
-
-msgid ""
-"What are phases?\n"
-"----------------"
-msgstr ""
-
-msgid ""
-"Phases are a system for tracking which changesets have been or should\n"
-"be shared. This helps prevent common mistakes when modifying history\n"
-"(for instance, with the mq or rebase extensions)."
-msgstr ""
-
-msgid "Each changeset in a repository is in one of the following phases:"
-msgstr ""
-"Jeder Änderungssatz in einem Projektarchiv ist in einer der folgenden Phasen:"
-
-msgid ""
-" - public : changeset is visible on a public server\n"
-" - draft : changeset is not yet published\n"
-" - secret : changeset should not be pushed, pulled, or cloned"
-msgstr ""
-
-msgid ""
-"These phases are ordered (public < draft < secret) and no changeset\n"
-"can be in a lower phase than its ancestors. For instance, if a\n"
-"changeset is public, all its ancestors are also public. Lastly,\n"
-"changeset phases should only be changed towards the public phase."
-msgstr ""
-
-msgid ""
-"How are phases managed?\n"
-"-----------------------"
-msgstr ""
-"Wie werden Phasen verwaltet?\n"
-"--------------------------"
-
-msgid ""
-"For the most part, phases should work transparently. By default, a\n"
-"changeset is created in the draft phase and is moved into the public\n"
-"phase when it is pushed to another repository."
-msgstr ""
-
-msgid ""
-"Once changesets become public, extensions like mq and rebase will\n"
-"refuse to operate on them to prevent creating duplicate changesets.\n"
-"Phases can also be manually manipulated with the :hg:`phase` command\n"
-"if needed. See :hg:`help -v phase` for examples."
-msgstr ""
-
-msgid ""
-"Phases and servers\n"
-"------------------"
-msgstr ""
-"Phasen und Server\n"
-"--------------------------"
-
-msgid "Normally, all servers are ``publishing`` by default. This means::"
-msgstr ""
-
-msgid ""
-" - all draft changesets that are pulled or cloned appear in phase\n"
-" public on the client"
-msgstr ""
-
-msgid ""
-" - all draft changesets that are pushed appear as public on both\n"
-" client and server"
-msgstr ""
-
-msgid " - secret changesets are neither pushed, pulled, or cloned"
-msgstr ""
-
-msgid ""
-".. note::\n"
-" Pulling a draft changeset from a publishing server does not mark it\n"
-" as public on the server side due to the read-only nature of pull."
-msgstr ""
-
-msgid ""
-"Sometimes it may be desirable to push and pull changesets in the draft\n"
-"phase to share unfinished work. This can be done by setting a\n"
-"repository to disable publishing in its configuration file::"
-msgstr ""
-
-msgid ""
-" [phases]\n"
-" publish = False"
-msgstr ""
-" [phases]\n"
-" publish = False"
-
-msgid "See :hg:`help config` for more information on config files."
-msgstr ""
-"Siehe :hg:`help config` für weitere Informationen über Konfigurationsdateien."
-
-msgid ""
-".. note::\n"
-" Servers running older versions of Mercurial are treated as\n"
-" publishing."
-msgstr ""
-
-msgid ""
-"Examples\n"
-"--------"
-msgstr ""
-"Beispiele\n"
-"----------"
-
-msgid " - list changesets in draft or secret phase::"
-msgstr ""
-
-msgid " hg log -r \"not public()\""
-msgstr " hg log -r \"not public()\""
-
-msgid " - change all secret changesets to draft::"
-msgstr ""
-
-msgid " hg phase --draft \"secret()\""
-msgstr ""
-
-msgid ""
-" - forcibly move the current changeset and descendants from public to draft::"
-msgstr ""
-
-msgid " hg phase --force --draft ."
-msgstr ""
-
-msgid " - show a list of changeset revision and phase::"
-msgstr ""
-
-msgid " hg log --template \"{rev} {phase}\\n\""
msgstr ""
+" re:.*\\.c$ jeder Name endend mit \".c\" überall im Projektarchiv\n"
#, fuzzy
-msgid " - resynchronize draft changesets relative to a remote repository::"
-msgstr ""
-" - Änderungssätze in der Entwurfsphase (draft) erneut bezüglich eines "
-"entfernten Projektarchivs synchronisieren::"
-
-msgid " hg phase -fd 'outgoing(URL)' "
-msgstr ""
+msgid "File examples::"
+msgstr "Glob-Beispiele::"
msgid ""
-"See :hg:`help phase` for more information on manually manipulating phases.\n"
+" 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 ""
-"Siehe :hg:`help phase` für mehr Informationen über die manuelle Manipulation "
-"von Phasen.\n"
msgid "Mercurial supports several ways to specify individual revisions."
msgstr "Mercurial unterstützt mehrere Arten individuelle Revisionen anzugeben."
@@ -18237,21 +14500,22 @@ msgstr ""
"der Langform genau einer Revisions-ID ist."
msgid ""
-"Any other string is treated as a bookmark, tag, or branch name. A\n"
-"bookmark is a movable pointer to a revision. A tag is a permanent name\n"
-"associated with a revision. A branch name denotes the tipmost revision\n"
-"of that branch. Bookmark, tag, and branch names must not contain the \":\"\n"
-"character."
+"Any other string is treated as a tag or branch name. A tag name is a\n"
+"symbolic name associated with a revision identifier. A branch name\n"
+"denotes the tipmost revision of that branch. Tag and branch names must\n"
+"not contain the \":\" character."
msgstr ""
-"Jede andere Zeichenfolge wird als Lesezeichen, oder Name eines Etiketts\n"
-"oder Zweiges behandelt. Ein Lesezeichen ist ein beweglicher Zeiger auf eine\n"
-"Revision. Ein Etikett ist ein permanenter Name für eine Revision.\n"
-"Ein Zweigname bezeichnet hier die jüngste Kopfrevision des Zweigs.\n"
-"Lesezeichen, Etiketten und Zweignamen dürfen das Zeichen \":\" nicht "
-"enthalten."
+"Jede andere Zeichenfolge wird als Name eines Tags oder Zweiges behandelt.\n"
+"Ein Tag ist ein symbolischer Name für eine Revisions-ID. Ein Zweigname\n"
+"bezeichnet hier die jüngste Kopfrevision des Zweigs. Tags und Zweignamen\n"
+"dürfen das Zeichen \":\" nicht enthalten."
-msgid "The reserved name \"tip\" always identifies the most recent revision."
-msgstr "Der reservierte Name \"tip\" identifiziert immer die neueste Revision."
+msgid ""
+"The reserved name \"tip\" is a special tag that always identifies the\n"
+"most recent revision."
+msgstr ""
+"Der reservierte Name \"tip\" ist ein spezielles Tag, welches immer auf\n"
+"die jüngste Revision verweist."
msgid ""
"The reserved name \"null\" indicates the null revision. This is the\n"
@@ -18286,15 +14550,28 @@ msgstr ""
"Operatoren miteinander verbunden werden. Klammern können zur\n"
"Gruppierung verwendet werden."
+#, fuzzy
msgid ""
-"Identifiers such as branch names may need quoting with single or\n"
-"double quotes if they contain characters like ``-`` or if they match\n"
-"one of the predefined predicates."
+"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."
msgstr ""
"Bezeichner wie Zweignamen müssen mit einfachen oder doppelten\n"
-"Anführungszeichen umgeben werden, wenn sie Zeichen wie ``-``\n"
-"enthalten oder wenn sie einem der vordefinierten Prädikateņ\n"
-"entsprechen."
+"Anführungszeichen umgeben werden, wenn sie Zeichen außerhalb von\n"
+"``[._a-zA-Z0-9\\x80-\\xff]`` oder wenn sie einem der vordefinierten\n"
+"Prädikate entsprechen. Sonderzeichen können in Bezeichnern mit\n"
+"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:"
msgid ""
"``not x``\n"
@@ -18303,6 +14580,9 @@ msgstr ""
"``not x``\n"
" Änderungssätze, die nicht in x enthalten sind. Kurzform von ``! x``."
+msgid "These are the supported infix operators:"
+msgstr "Dies sind die unterstützten Infix-Operatoren:"
+
msgid ""
"``x::y``\n"
" A DAG range, meaning all changesets that are descendants of x and\n"
@@ -18353,61 +14633,10 @@ msgstr ""
"``x - y``\n"
" Änderungssätze in x, aber nicht in y."
-msgid ""
-"``x^n``\n"
-" The nth parent of x, n == 0, 1, or 2.\n"
-" For n == 0, x; for n == 1, the first parent of each changeset in x;\n"
-" for n == 2, the second parent of changeset in x."
-msgstr ""
-
-msgid ""
-"``x~n``\n"
-" The nth first ancestor of x; ``x~0`` is x; ``x~3`` is ``x^^^``."
-msgstr ""
-
-msgid "There is a single postfix operator:"
-msgstr "Es gibt einen einzigen Postfix-Operator:"
-
-msgid ""
-"``x^``\n"
-" Equivalent to ``x^1``, the first parent of each changeset in x."
-msgstr ""
-
-msgid ""
-"\n"
-"The following predicates are supported:"
-msgstr ""
-"\n"
-"Die folgenden Prädikate werden unterstützt:"
-
-msgid ""
-"New predicates (known as \"aliases\") can be defined, using any combination "
-"of\n"
-"existing predicates or other aliases. An alias definition looks like::"
-msgstr ""
-
-msgid " <alias> = <definition>"
-msgstr ""
-
-msgid ""
-"in the ``revsetalias`` section of a Mercurial configuration file. Arguments\n"
-"of the form `$1`, `$2`, etc. are substituted from the alias into the\n"
-"definition."
-msgstr ""
-
-msgid "For example,"
-msgstr "Zum Beispiel,"
-
-msgid ""
-" [revsetalias]\n"
-" h = heads()\n"
-" d($1) = sort($1, date)\n"
-" rs($1, $2) = reverse(sort($1, $2))"
-msgstr ""
+msgid "The following predicates are supported:"
+msgstr "Die folgenden Prädikate werden unterstützt:"
-msgid ""
-"defines three aliases, ``h``, ``d``, and ``rs``. ``rs(0:tip, author)`` is\n"
-"exactly equivalent to ``reverse(sort(0:tip, author))``."
+msgid ".. predicatesmarker"
msgstr ""
msgid "Command line equivalents for :hg:`log`::"
@@ -18432,8 +14661,13 @@ msgstr ""
" -P x -> !::x\n"
" -l x -> limit(expr, x)"
+#, fuzzy
+msgid "Some sample queries:"
+msgstr "Einige Beispiel-Anfragen::"
+
+#, fuzzy
msgid "- Changesets on the default branch::"
-msgstr "- Änderungssätze auf dem Vorgabezweig (default)::"
+msgstr "Zeigt nur Änderungssätze innerhalb des angegebenen Branches"
msgid " hg log -r \"branch(default)\""
msgstr ""
@@ -18444,8 +14678,9 @@ msgstr ""
msgid " hg log -r \"branch(default) and 1.5:: and not merge()\""
msgstr ""
+#, fuzzy
msgid "- Open branch heads::"
-msgstr "- Offene Zweigköpfe::"
+msgstr "Zeigt normale und geschlossene Branch-Köpfe"
msgid " hg log -r \"head() and not closed()\""
msgstr ""
@@ -18458,7 +14693,7 @@ msgstr ""
msgid " hg log -r \"1.3::1.5 and keyword(bug) and file('hgext/*')\""
msgstr ""
-msgid "- Changesets committed in May 2008, sorted by user::"
+msgid "- Changesets in committed May 2008, sorted by user::"
msgstr ""
msgid " hg log -r \"sort(date('May 2008'), user)\""
@@ -18477,53 +14712,36 @@ 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."
-msgstr ""
-
-msgid ""
-"Mercurial currently supports Mercurial, Git, and Subversion\n"
-"subrepositories."
+"group. External Mercurial and Subversion projects are currently\n"
+"supported."
msgstr ""
-"Mercurial unterstützt im Augenblick Mercurial-, Git- und Subversion-\n"
-"Unterarchive."
msgid "Subrepositories are made of three components:"
-msgstr "Unterarchive bestehen aus drei Komponenten:"
+msgstr ""
msgid ""
"1. Nested repository checkouts. They can appear anywhere in the\n"
-" parent working directory."
+" parent working directory, and are Mercurial clones or Subversion\n"
+" checkouts."
msgstr ""
-"1. Verschachtelte Archivaktualisierungen. Sie können überall im\n"
-" übergeordneten Arbeitsverzeichnis auftauchen."
msgid ""
-"2. Nested repository references. They are defined in ``.hgsub``, which\n"
-" should be placed in the root of working directory, and\n"
+"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 ""
-"2. Verschachtelte Archivreferenzen. Sie werden in ``.hgsub`` definiert, "
-"was in der Wurzel des Arbeitsverzeichnisses abgelegt werden sollte,\n"
-" und geben an, wo Aktualisierungen für Unterarchive herkommen.\n"
-" Mercurial-Unterarchive werden wie folgt angegeben:"
msgid " path/to/nested = https://example.com/nested/repo/path"
msgstr ""
-msgid " Git and Subversion subrepos are also supported:"
-msgstr ""
-
-msgid ""
-" path/to/nested = [git]git://example.com/nested/repo/path\n"
-" path/to/nested = [svn]https://example.com/nested/trunk/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."
+" filesystem path. Subversion repositories are defined with:"
+msgstr ""
+
+msgid " path/to/nested = [svn]https://example.com/nested/trunk/path"
msgstr ""
msgid ""
@@ -18533,8 +14751,7 @@ msgid ""
msgstr ""
msgid ""
-"3. Nested repository states. They are defined in ``.hgsubstate``, which\n"
-" is placed in the root of working directory, and\n"
+"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"
@@ -18546,14 +14763,14 @@ msgid ""
" The ``.hgsubstate`` file should not be edited manually."
msgstr ""
+#, fuzzy
msgid ""
"\n"
"Adding a Subrepository\n"
"----------------------"
msgstr ""
-"\n"
-"Hinzufügen eines Unterarchivs\n"
-"-----------------------------"
+" Mercurial als Ziel\n"
+" ------------------"
msgid ""
"If ``.hgsub`` does not exist, create it and add it to the parent\n"
@@ -18563,23 +14780,15 @@ msgid ""
"subrepository is tracked and the next commit will record its state in\n"
"``.hgsubstate`` and bind it to the committed changeset."
msgstr ""
-"Wenn ``.hgsub`` nicht existiert, wird die Datei erstellt und dem "
-"übergeordneten Archiv hinzugefügt. Erstellen Sie eine Arbeitskopie\n"
-"(beispielsweise mit clone oder checkout) der externen Projekte dort,\n"
-"wo sie im übergeordneten Projektarchiv liegen soll. Bearbeiten Sie\n"
-"``.hgsub`` und fügen Sie den Unterarchiv-Eintrag wie oben beschrieben\n"
-"hinzu. Anschließend wird das Unterarchiv überwacht und bei der \n"
-"nächsten Übernahme wird sein Stand in ``.hgsubstate`` erfasst\n"
-"und an die übernommene Änderung gebunden."
+#, fuzzy
msgid ""
"Synchronizing a Subrepository\n"
"-----------------------------"
msgstr ""
-"Synchronisieren eines Unterarchivs\n"
-"----------------------------------"
+"Zweigbasierte Zugriffskontrolle\n"
+"-------------------------------"
-#, fuzzy
msgid ""
"Subrepos do not automatically track the latest changeset of their\n"
"sources. Instead, they are updated to the changeset that corresponds\n"
@@ -18587,122 +14796,73 @@ msgid ""
"developers always get a consistent set of compatible code and\n"
"libraries when they update."
msgstr ""
-"Unterarchive übernehmen nicht automatisch den neuesten Änderungssatz\n"
-"ihrer Quellen. Stattdessen werden sie auf die Version aktualisiert,\n"
-"die der Version des übergeordneten Änderungssatzes entspricht.\n"
-"Dies geschieht, damit Entwickler immer eine konsistente Menge von\n"
-"Code und Bibliotheken erhalten, wenn sie aktualisieren."
-#, fuzzy
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 ""
-"Deshalb ist die Aktualisierung von Unterarchiven ein manueller Prozess.\n"
-"Erstellen Sie dazu einfach eine neue Arbeitskopie des Unterarchivs in\n"
-"der gewünschten Revision, testen Sie das übergeordnete Archiv und\n"
-"übernehmen sie das übergeordnete Projektarchiv, um die neue Kombination\n"
-"zu erfassen."
+#, fuzzy
msgid ""
"Deleting a Subrepository\n"
"------------------------"
msgstr ""
-"Löschen eines Unterarchivs\n"
-"--------------------------"
+"Beispiel-Konfiguration\n"
+"----------------------"
msgid ""
"To remove a subrepository from the parent repository, delete its\n"
"reference from ``.hgsub``, then remove its files."
msgstr ""
-"Um ein Unterarchiv aus seinem Elternarchiv zu entfernen, löschen Sie\n"
-"seine Verweise aus ``.hgsub`` und seine Dateien."
+#, fuzzy
msgid ""
"Interaction with Mercurial Commands\n"
"-----------------------------------"
msgstr ""
-"Interaktion mit Mercurial-Befehlen\n"
-"----------------------------------"
+"Zweigbasierte Zugriffskontrolle\n"
+"-------------------------------"
msgid ""
":add: add does not recurse in subrepos unless -S/--subrepos is\n"
-" specified. However, if you specify the full path of a file in a\n"
-" subrepo, it will be added even without -S/--subrepos specified.\n"
-" Git and Subversion subrepositories are currently silently\n"
+" specified. Subversion subrepositories are currently silently\n"
" ignored."
msgstr ""
-":add: \"add\" behandelt keine Unterarchive, es sei denn, es ist \n"
-" -S/--subrepos angegeben. Wenn Sie allerdings den vollen Pfad\n"
-" einer Datei in einem Unterarchiv angeben, wird sie sogar ohne den \n"
-" -S/--subrepos-Schalter hinzugefügt.\n"
-" Git- und Subversion-Unterarchive werden zur Zeit still ignoriert."
msgid ""
":archive: archive does not recurse in subrepositories unless\n"
" -S/--subrepos is specified."
msgstr ""
-":archive: \"archive\" behandelt keine Unterarchive, es sei denn es ist\n"
-" -S/--subrepos angegeben."
msgid ""
":commit: commit creates a consistent snapshot of the state of the\n"
-" entire project and its subrepositories. If any subrepositories\n"
-" have been modified, Mercurial will abort. Mercurial can be made\n"
-" to instead commit all modified subrepositories by specifying\n"
-" -S/--subrepos, or setting \"ui.commitsubrepos=True\" in a\n"
-" configuration file (see :hg:`help config`). After there are no\n"
-" longer any modified subrepositories, it records their state and\n"
-" finally commits it in the parent repository."
-msgstr ""
-":commit: \"commit\" erzeugt einen konsistenten Schnappschuss des\n"
-" Standes des gesamten Projekts und seiner Unterarchive. Falls\n"
-" Unterarchive modifiziert wurden, bricht Mercurial ab.\n"
-" Statt dessen kann Mercurial auch dazu gebracht werden, alle\n"
-" modifizierten Unterarchive zu übernehmen, indem -S/--subrepos\n"
-" angegeben wird oder \"ui.commitsubrepos=True\" in einer\n"
-" Konfigurations in angegeben wird (siehe :hg:`help config`).\n"
-" Nachdem keine modifizierten Unterarchive mehr vorhanden sind,\n"
-" übernimmt Mercurial ihren Stand und übernimmt ihn schließlich im\n"
-" übergeordneten Projektarchiv."
+" 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. Git and Subversion subrepositories are currently\n"
-" silently ignored."
-msgstr ""
-":diff: \"diff\" behandelt keine Unterarchive, es sei denn es ist\n"
-" -S/--subrepos angegeben. Änderungen werden wie gewohnt auch für \n"
-" Elemente von Unterarchiven angezeigt.\n"
-" Git- und Subversion-Unterarchive werden zur Zeit still ignoriert."
-
-msgid ""
-":forget: forget currently only handles exact file matches in subrepos.\n"
-" Git and Subversion subrepositories are currently silently ignored."
+" elements. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
-":forget: \"forget\" behandelt zur Zeit nur exakte Passungen (matches)\n"
-" in Unterarchiven.\n"
-" Git- und Subversion-Unterarchive werden zur Zeit still ignoriert."
msgid ""
":incoming: incoming does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
-":incoming: \"incoming\" behandelt keine Unterarchive, es sei denn es\n"
-" ist -S/--subrepos angegeben.\n"
-" Git- und Subversion-Unterarchive werden zur Zeit still ignoriert."
msgid ""
":outgoing: outgoing does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
-":outgoing: \"outgoing\" behandelt keine Unterarchive, es sei denn es\n"
-" ist -S/--subrepos angegeben.\n"
-" Git- und Subversion-Unterarchive werden zur Zeit still ignoriert."
msgid ""
":pull: pull is not recursive since it is not clear what to pull prior\n"
@@ -18711,26 +14871,13 @@ msgid ""
" changesets is expensive at best, impossible in the Subversion\n"
" case."
msgstr ""
-":pull: \"pull\" behandelt keine Unterverzeichnisse, weil es nicht klar\n"
-" ist, was abgerufen werden soll, bevor :hg:`update` ausgeführt\n"
-" wird. Alle Änderungen von Unterarchiven zu laden und aufzulisten,\n"
-" auf die von neu abgerufenen Änderungssätzen des übergeordneten\n"
-" Archivs verwiesen wird, ist bestenfalls teuer und unmöglich im\n"
-" Falle von Subversion."
-#, fuzzy
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. Push is a no-op for Subversion subrepositories."
+" repositories."
msgstr ""
-":push: Mercurial überträgt automatisch zuerst alle Unterverzeichnisse\n"
-" wenn das übergeordnete Archiv übertragen wird. Dies stellt sicher,\n"
-" dass neue Änderungen von Unterarchiven verfügbar sind, wenn sich\n"
-" übergeordnete Archive sich auf sie beziehen.\n"
-" \"push\" ist keine\n"
-" Option für Subversion-Unterarchive."
msgid ""
":status: status does not recurse into subrepositories unless\n"
@@ -18739,10 +14886,6 @@ msgid ""
" elements. Subversion subrepositories are currently silently\n"
" ignored."
msgstr ""
-":status: \"status\" behandelt keine Unterarchive, es sei denn es ist\n"
-" -S/--subrepos angegeben. Änderungen von Unterarchiven werden \n"
-" als normale Mercurial-Änderungen am Unterverzeichnis angezeigt.\n"
-" Subversion-Unterarchive werden zur Zeit still ignoriert."
msgid ""
":update: update restores the subrepos in the state they were\n"
@@ -18751,19 +14894,14 @@ msgid ""
" will pull it in first before updating. This means that updating\n"
" can require network access when using subrepositories."
msgstr ""
-":update: \"update\" setzt Unterarchive zurück auf den Stand, in dem sie\n"
-" ursprünglich im Zieländerungssatz übernommen wurden. Falls der\n"
-" angegebene Änderungssatz nicht verfügbar ist, ruft Mercurial\n"
-" es zunächst vor der Aktualisierung ab. Das bedeutet, dass die\n"
-" Aktualisierung einen Netzwerk-Zugang benötigt, wenn\n"
-" Unterverzeichnisse verwendet werden."
+#, fuzzy
msgid ""
"Remapping Subrepositories Sources\n"
"---------------------------------"
msgstr ""
-"Umleitung der Quellen von Unterarchiven\n"
-"---------------------------------------"
+"Zweigbasierte Zugriffskontrolle\n"
+"-------------------------------"
msgid ""
"A subrepository source location may change during a project life,\n"
@@ -18772,13 +14910,6 @@ msgid ""
"file or in Mercurial configuration. See the ``[subpaths]`` section in\n"
"hgrc(5) for more details."
msgstr ""
-"Der Ablageort eines Unterverzeichnisses kann sich während der\n"
-"Lebenszeit eines Projektes ändern, sodass im übergeordneten\n"
-"Archiv gespeicherte Referenzen zerstört werden können. Um dies zu\n"
-"beheben, können in der ``hgrc``-Datei des übergeordneten Archivs\n"
-"oder der Mercurial-Konfiguration Ãœberschreibregeln (rewriting rules)\n"
-"angegeben werden. Siehe ``[subpaths]``-Eintrag in hgrc(5) für mehr\n"
-"Details."
msgid ""
"Mercurial allows you to customize output of commands through\n"
@@ -18835,8 +14966,102 @@ msgstr ""
"ausgeführten Befehl ab. Diese Schlüsselwörter stehen üblicherweise für\n"
"Vorlagen von \"log-ähnlichen\" Befehlen zur Verfügung:"
-msgid ".. keywordsmarker"
+msgid ":author: String. The unmodified author of the changeset."
+msgstr ":author: Zeichenkette. Der unveränderte Autor eines Änderungssatzes."
+
+#, fuzzy
+msgid ""
+":branch: String. The name of the branch on which the changeset was\n"
+" committed."
msgstr ""
+":branches: Zeichenkette. Der Name des Zweiges, in dem der Änderungssatz\n"
+" versioniert wurde. Ist leer, wenn der Zweig-Name default ist."
+
+#, 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."
+
+msgid ":children: List of strings. The children of the changeset."
+msgstr ":children: Liste von Zeichenketten. Die Kinder dieses Änderungssatzes."
+
+msgid ":date: Date information. The date when the changeset was committed."
+msgstr ""
+":date: Datumsangabe. Das Datum, wann ein Änderungssatz versioniert wurde."
+
+msgid ":desc: String. The text of the changeset description."
+msgstr ":desc: Zeichenkette. Der Text der Beschreibung eines Änderungssatzes."
+
+msgid ""
+":diffstat: String. Statistics of changes with the following format:\n"
+" \"modified files: +added/-removed lines\""
+msgstr ""
+":diffstat: Zeichenkette. Statistik über die Änderungen in dem folgenden\n"
+" Format: \"geänderte Dateien: +hinzugefügt/-entfernte Zeilen\""
+
+msgid ""
+":files: List of strings. All files modified, added, or removed by this\n"
+" changeset."
+msgstr ""
+":files: Liste von Zeichenketten. Alle geänderten, hinzugefügten oder\n"
+" gelöschten Dateien dieses Änderungssatzes."
+
+msgid ":file_adds: List of strings. Files added by this changeset."
+msgstr ":file_adds: Liste von Zeichenketten. Alle hinzugefügten Dateien."
+
+msgid ""
+":file_copies: List of strings. Files copied in this changeset with\n"
+" their sources."
+msgstr ""
+":file_copies_switch: Liste von Zeichenketten. Dateien, die in diesem\n"
+" Änderungssatz kopiert wurden, zusammen mit den Quelldateien."
+
+msgid ""
+":file_copies_switch: List of strings. Like \"file_copies\" but displayed\n"
+" only if the --copied switch is set."
+msgstr ""
+":file_copies_switch: Liste von Zeichenketten. Wie \"file_copies\", wird\n"
+" aber nur angezeigt, wenn der Schalter --copied gesetzt wurde."
+
+msgid ":file_mods: List of strings. Files modified by this changeset."
+msgstr ":file_mods: Liste von Zeichenketten. Alle geänderten Dateien."
+
+msgid ":file_dels: List of strings. Files removed by this changeset."
+msgstr ":file_dels: Liste von Zeichenketten. Alle gelöschten Dateien."
+
+msgid ""
+":node: String. The changeset identification hash, as a 40 hexadecimal\n"
+" digit string."
+msgstr ""
+":node: Zeichenkette. Die Prüfsumme, die einen Änderungssatz identifiziert,\n"
+" als 40 Zeichen lange hexadezimale Zeichenkette."
+
+msgid ":parents: List of strings. The parents of the changeset."
+msgstr ":parents: Liste von Zeichenketten. Die Eltern des Änderungssatzes."
+
+msgid ":rev: Integer. The repository-local changeset revision number."
+msgstr ""
+":rev: Zahl. Die für dieses Projektarchiv geltende Nummer eines\n"
+" Änderungssatzes."
+
+msgid ":tags: List of strings. Any tags associated with the changeset."
+msgstr ""
+":tags: Liste von Zeichenketten. Alle Tags, die diesem Änderungssatz\n"
+" zugewiesen wurden."
+
+msgid ""
+":latesttag: String. Most recent global tag in the ancestors of this\n"
+" changeset."
+msgstr ""
+":latesttag: Zeichenkette. Aktuellstes globales Tag in den Nachfahren\n"
+" dieses Änderungssatzes."
+
+msgid ":latesttagdistance: Integer. Longest path to the latest tag."
+msgstr ":latesttagdistance: Zahl. Längster Pfad zum aktuellsten Tag."
msgid ""
"The \"date\" keyword does not produce human-readable output. If you\n"
@@ -18865,12 +15090,190 @@ msgstr ""
msgid "List of filters:"
msgstr "Liste aller Filter:"
-msgid ".. filtersmarker\n"
+msgid ""
+":addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n"
+" every line except the last."
+msgstr ""
+":addbreaks: Beliebiger Text. Führt ein XHTML \"<br />\"-Tag vor das Ende\n"
+" jeder Zeile bis auf die letzte ein."
+
+msgid ""
+":age: Date. Returns a human-readable date/time difference between the\n"
+" given date/time and the current date/time."
+msgstr ""
+":age: Datumsangabe. Gibt eine menschenlesbare Datums- und Zeitdifferenz\n"
+" zwischen dem gegebenen Datum und der aktuellen Zeit aus."
+
+msgid ""
+":basename: Any text. Treats the text as a path, and returns the last\n"
+" component of the path after splitting by the path separator\n"
+" (ignoring trailing separators). For example, \"foo/bar/baz\" becomes\n"
+" \"baz\" and \"foo/bar//\" becomes \"bar\"."
+msgstr ""
+":basename: Beliebiger Text. Behandelt jeden Text als Pfadangabe und gibt\n"
+" den letzten Bestandteil des Pfades nach dem Auftrennen mit dem\n"
+" Trennzeichen für Verzeichnisse zurück (überhängende Trenner werden\n"
+" ignoriert). Zum Beispiel wird aus \"foo/bar/baz\" dann \"baz\" und\n"
+" \"foo/bar//\" wird zu \"bar\"."
+
+msgid ""
+":stripdir: Treat the text as path and strip a directory level, if\n"
+" possible. For example, \"foo\" and \"foo/bar\" becomes \"foo\"."
+msgstr ""
+":stripdir: Behandelt den Text als Pfadangabe und entfernt das letzte\n"
+" Verzeichnis, wenn möglich. Zum Beispiel wird aus \"foo\" und \"foo/bar//"
+"\" \n"
+" dann \"bar\"."
+
+msgid ""
+":date: Date. Returns a date in a Unix date format, including the\n"
+" timezone: \"Mon Sep 04 15:13:13 2006 0700\"."
+msgstr ""
+":date: Datumsangabe. Gibt ein Datum als Unix Datum zurück,\n"
+" inklusive der Zeitzone: \"Mon Sep 04 15:13:13 2006 0700\"."
+
+msgid ""
+":domain: Any text. Finds the first string that looks like an email\n"
+" address, and extracts just the domain component. Example: ``User\n"
+" <user@example.com>`` becomes ``example.com``."
+msgstr ""
+":domain: Beliebiger Text. Findet die erste Zeichenkette, die wie eine\n"
+" E-Mail-Adresse aussieht, und extrahiert davon die Domain-Komponente:\n"
+" Beispiel: ``Nutzer <user@example.com>`` wird zu ``example.com``."
+
+msgid ""
+":email: Any text. Extracts the first string that looks like an email\n"
+" address. Example: ``User <user@example.com>`` becomes\n"
+" ``user@example.com``."
+msgstr ""
+":email: Beliebiger Text. Extrahiert die erste Zeichenkette, die wie eine\n"
+" E-Mail-Adresse aussieht. Beispiel: ``Nutzer <user@example.com>`` wird\n"
+" zu ``user@example.com``."
+
+msgid ""
+":escape: Any text. Replaces the special XML/XHTML characters \"&\", \"<\"\n"
+" and \">\" with XML entities."
+msgstr ""
+":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."
+
+msgid ":fill76: Any text. Wraps the text to fit in 76 columns."
+msgstr ":fill76: Beliebiger Text. Umbricht den Text bei 76 Zeichen."
+
+msgid ":firstline: Any text. Returns the first line of text."
+msgstr ":firstline: Beliebiger Text. Gibt die erste Zeile des Texts zurück."
+
+msgid ":nonempty: Any text. Returns '(none)' if the string is empty."
+msgstr ""
+":nonempty: Beliebiger Text. Gibt '(none)' für eine leere Zeichenkette\n"
+" zurück."
+
+msgid ""
+":hgdate: Date. Returns the date as a pair of numbers: \"1157407993\n"
+" 25200\" (Unix timestamp, timezone offset)."
+msgstr ""
+":hgdate: Datumsangabe. Gibt das Datum als Zahlpaar zurück:\n"
+" \"1157407993 25200\" (Unix Zeitstempel, Zeitzonenverschiebung)"
+
+msgid ""
+":isodate: Date. Returns the date in ISO 8601 format: \"2009-08-18 13:00\n"
+" +0200\"."
+msgstr ""
+":isodate: Datumsangabe. Gibt das Datum im ISO 8601-Format zurück:\n"
+" \"2009-08-18 13:00 +0200\"."
+
+msgid ""
+":isodatesec: Date. Returns the date in ISO 8601 format, including\n"
+" seconds: \"2009-08-18 13:00:13 +0200\". See also the rfc3339date\n"
+" filter."
+msgstr ""
+":isodatesec: Datumsangabe. Gibt das Datum im ISO 8601-Format inklusive\n"
+" Sekunden zurück: \"2009-08-18 13:00 +0200\". Siehe auch den\n"
+" rfc3339date-Filter."
+
+msgid ":localdate: Date. Converts a date to local date."
+msgstr ""
+":localdate: Datumsangabe. Konvertiert ein Datum in das lokale Datumsformat."
+
+msgid ""
+":obfuscate: Any text. Returns the input text rendered as a sequence of\n"
+" XML entities."
+msgstr ""
+":obfuscate: Beliebiger Text. Gibt den Text als Folge von XML-Entitäten\n"
+" zurück."
+
+msgid ":person: Any text. Returns the text before an email address."
+msgstr ""
+":person: Beliebiger Text. Gibt den Text vor einer E-Mail-Adresse zurück."
+
+msgid ""
+":rfc822date: Date. Returns a date using the same format used in email\n"
+" headers: \"Tue, 18 Aug 2009 13:00:13 +0200\"."
+msgstr ""
+":rfc822date: Datumsangabe. Gibt das Datum im gleichen Format zurück,\n"
+" das auch in Kopfzeilen von E-Mails verwendet wird:\n"
+" \"Tue, 18 Aug 2009 13:00:13 +0200\"."
+
+msgid ""
+":rfc3339date: Date. Returns a date using the Internet date format\n"
+" specified in RFC 3339: \"2009-08-18T13:00:13+02:00\"."
+msgstr ""
+":rfc3339date: Datumsangabe. Gibt das Datum im Internet-Datumsformat,\n"
+" spezifiziert im RFC 3339, zurück: \"2009-08-18T13:00:13+02:00\"."
+
+msgid ""
+":short: Changeset hash. Returns the short form of a changeset hash,\n"
+" i.e. a 12 hexadecimal digit string."
+msgstr ""
+":short: Prüfsumme. Gibt die Kurzform der Prüfsumme zurück, d.h.\n"
+" als 12 Zeichen lange hexadezimale Zeichenkette."
+
+msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
+msgstr ":shortdate: Datumsangabe. Gibt ein Datum wie \"2006-09-18\" zurück."
+
+msgid ""
+":stringify: Any type. Turns the value into text by converting values into\n"
+" text and concatenating them."
+msgstr ""
+":stringify: Beliebiger Typ. Wandelt jeden Wert in einen Text um, indem die\n"
+" Werte in Zeichenketten konvertiert und dann aneinander gehängt werden."
+
+msgid ":strip: Any text. Strips all leading and trailing whitespace."
+msgstr ""
+":strip: Beliebiger Text. Entfernt jeden führenden und überhängenden\n"
+" Leerraum."
+
+msgid ""
+":tabindent: Any text. Returns the text, with every line except the\n"
+" first starting with a tab character."
+msgstr ""
+":tabindent: Beliebiger Text. Gibt den Text zurück, wobei jede Zeile bis\n"
+" auf die erste mit einem Tabulator eingerückt ist."
+
+msgid ""
+":urlescape: Any text. Escapes all \"special\" characters. For example,\n"
+" \"foo bar\" becomes \"foo%20bar\"."
+msgstr ""
+":urlescape: Beliebiger Text. Maskiert alle \"besonderen\" Zeichen.\n"
+" Aus \"foo bar\" wird zum Beispiel \"foo%20bar\"."
+
+msgid ":user: Any text. Returns the user portion of an email address.\n"
msgstr ""
+":user: Beliebiger Text. Gibt den Nutzerteil einer E-Mail-Adresse\n"
+" (vor dem @-Zeichen) zurück.\n"
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"
@@ -18882,16 +15285,17 @@ msgstr ""
" file://lokales/dateisystem/pfad[#revision]\n"
" http://[nutzer[:pass]@]host[:port]/[pfad][#revision]\n"
" https://[nutzer[:pass]@]host[:port]/[pfad][#revision]\n"
-" ssh://[nutzer@]host[:port]/[pfad][#revision]"
+" 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`). 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"
-"erzeugt werden). Siehe auch :hg:`help paths`."
+"dateien verweisen (wie sie von :hg:`bundle` oder :hg: `incoming --bundle`\n"
+"erzeugt werden)."
msgid ""
"An optional identifier after # indicates a particular branch, tag, or\n"
@@ -18915,9 +15319,6 @@ msgid ""
"Note that the security of HTTPS URLs depends on proper configuration of\n"
"web.cacerts."
msgstr ""
-"Beachten Sie, dass die Sicherheit von HTTPS-URLs von der richtigen "
-"Konfiguration\n"
-"von web.cacerts abhängt."
msgid "Some notes about using SSH with Mercurial:"
msgstr "Einige Hinweise zur Nutzung von SSH mit Mercurial:"
@@ -18968,7 +15369,7 @@ msgid ""
"These URLs can all be stored in your configuration file with path\n"
"aliases under the [paths] section like so::"
msgstr ""
-"Diese URLs können alle in der hgrc als Aliase unter dem Abschnitt [paths]\n"
+"Diese URLs können alle in der hgrc als Aliase unter der Sektion [paths]\n"
"wie folgt abgelegt werden::"
msgid ""
@@ -19004,12 +15405,12 @@ msgid ""
" pull-like commands (including incoming and outgoing)."
msgstr ""
"default:\n"
-" Bei Erstellung eines Projektarchivs mit 'hg clone' sichert der clone-"
+" Bei Erstellung eines Projektarchivs mit hg clone, sichert der clone-"
"Befehl\n"
" die Herkunft des Quellarchivs als 'default'-Pfad des neuen Archivs. "
"Dieser\n"
-" Pfad wird immer dann genutzt, wenn bei Befehlen wie 'push'- oder 'pull'\n"
-" der Pfad nicht angegeben wurde (auch 'incoming' und 'outgoing')."
+" Pfad wird immer dann genutzt, wenn bei 'push' oder 'pull'-ähnlichen\n"
+" Befehlen der Pfad nicht angegeben wurde (auch 'incoming' und 'outgoing')."
msgid ""
"default-push:\n"
@@ -19085,9 +15486,9 @@ msgstr ""
msgid "(branch merge, don't forget to commit)\n"
msgstr "(Zusammenführen von Zweigen, vergiss nicht 'hg commit' auszuführen)\n"
-#, python-format
+#, fuzzy, python-format
msgid "config file %s not found!"
-msgstr "Konfigurationsdatei %s nicht gefunden!"
+msgstr "Datei nicht gefunden!"
#, python-format
msgid "error reading %s/.hg/hgrc: %s\n"
@@ -19108,11 +15509,6 @@ msgid "cannot start server at '%s:%d': %s"
msgstr "Kann Server nicht auf '%s:%d' starten: %s"
#, python-format
-msgid " %d files changed, %d insertions(+), %d deletions(-)\n"
-msgstr ""
-" %d Dateien verändert, %d Zeilen hinzugefügt(+), %d Zeilen entfernt(-)\n"
-
-#, python-format
msgid "calling hook %s: %s\n"
msgstr "Rufe Hook %s auf: %s\n"
@@ -19166,13 +15562,6 @@ msgstr "%s-Hook %s"
msgid "warning: %s hook %s\n"
msgstr "Warnung: %s-Hook %s\n"
-msgid "kb"
-msgstr ""
-
-#, python-format
-msgid "ignoring invalid [auth] key '%s'\n"
-msgstr "Ignoriere ungültige [auth] Schlüssel '%s'\n"
-
msgid "connection ended unexpectedly"
msgstr "Verbindung wurde unerwartet beendet"
@@ -19240,13 +15629,16 @@ msgid "repository %s already exists"
msgstr "Projektarchiv %s existiert bereits"
#, python-format
+msgid "requirement '%s' not supported"
+msgstr "Anforderung '%s' nicht unterstützt"
+
+#, python-format
msgid ".hg/sharedpath points to nonexistent directory %s"
msgstr ".hg/sharedpath zeigt auf nicht existierendes Verzeichnis %s"
-#, python-format
+#, fuzzy, python-format
msgid "warning: ignoring unknown working parent %s!\n"
-msgstr ""
-"Warnung: Ignoriere unbekannte Elternversion %s des Arbeitsverzeichnisses!\n"
+msgstr "Arbeitsverzeichnis hat unbekannte Vaterversion '%s'!"
#, python-format
msgid "%r cannot be used in a tag name"
@@ -19260,6 +15652,14 @@ msgid "working copy of .hgtags is changed (please commit .hgtags manually)"
msgstr ""
"Arbeitskopie von .hgtags wurde geändert (bitte speichere .hgtags manuell)"
+#, python-format
+msgid "working directory has unknown parent '%s'!"
+msgstr "Arbeitsverzeichnis hat unbekannte Vaterversion '%s'!"
+
+#, python-format
+msgid "unknown revision '%s'"
+msgstr "Unbekannte Revision '%s'"
+
msgid "abandoned transaction found - run hg recover"
msgstr "abgebrochene Transaktion gefunden - bitte führe hg recover aus"
@@ -19269,39 +15669,33 @@ msgstr "Setze unterbrochene Transaktion zurück\n"
msgid "no interrupted transaction available\n"
msgstr "Keine unterbrochene Transaktion vorhanden\n"
-msgid "no rollback information available\n"
-msgstr "Keine rollback-Information verfügbar\n"
-
-#, python-format
+#, fuzzy, python-format
msgid "repository tip rolled back to revision %s (undo %s: %s)\n"
-msgstr "Archivspitze (tip) auf Revision %s zurückgerollt (%s zurück: %s)\n"
+msgstr "Setze auf Revision %s zurück (%s zurücknehmen: %s)\n"
-#, python-format
+#, fuzzy, python-format
msgid "repository tip rolled back to revision %s (undo %s)\n"
-msgstr "Archivspitze (tip) auf Revision %s zurückgerollt (%s zurück)\n"
+msgstr "Setze auf Revision %s zurück (%s zurücknehmen)\n"
msgid "rolling back unknown transaction\n"
msgstr "Setze letzte Transaktion zurück\n"
-msgid "rollback of last commit while not checked out may lose data"
-msgstr ""
-
-msgid "use -f to force"
-msgstr "Benutzen Sie -f zum erzwingen"
-
#, python-format
-msgid "named branch could not be reset: current branch is still '%s'\n"
+msgid "Named branch could not be reset, current branch still is: %s\n"
msgstr ""
-"Benannter Zweig konnte nicht zurückgesetzt werden: aktueller Zweig ist "
-"weiterhin '%s'\n"
+"Benannter Zweig konnte nicht zurückgesetzt werden, aktueller Zweig ist "
+"weiterhin: %s\n"
-#, python-format
+#, fuzzy, python-format
msgid "working directory now based on revisions %d and %d\n"
-msgstr "Arbeitsverzeichnis basiert nun auf Revisionen %d und %d\n"
+msgstr "Revision des Arbeitsverzeichnisses ist nicht qtip"
-#, python-format
+#, fuzzy, python-format
msgid "working directory now based on revision %d\n"
-msgstr "Arbeitsverzeichnis basiert nun auf Revision %d\n"
+msgstr "Führt das Arbeitsverzeichnis mit einer anderen Revision zusammen"
+
+msgid "no rollback information available\n"
+msgstr "Keine rollback-Information verfügbar\n"
#, python-format
msgid "waiting for lock on %s held by %r\n"
@@ -19324,16 +15718,13 @@ msgstr ""
"Das Zusammenführen kann nicht teilweise gespeichert werden (gib keine "
"Dateien oder Muster an)"
-#, python-format
-msgid "commit with new subrepo %s excluded"
-msgstr "Ohne neues Unterarchiv %s übernehmen"
-
-msgid "use --subrepos for recursive commit"
-msgstr ""
-
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!"
@@ -19343,12 +15734,9 @@ msgstr "Kein Treffer unterhalb des Verzeichnisses!"
msgid "file not tracked!"
msgstr "Datei wird nicht versioniert!"
-msgid "cannot commit merge with missing files"
-msgstr ""
-"Zusammenführung kann aufgrund fehlender Dateien nicht übernommen werden"
-
+#, fuzzy
msgid "unresolved merge conflicts (see hg help resolve)"
-msgstr "Ungelöste Konflikte beim Zusammenführen (siehe hg help resolve)"
+msgstr "Ungelöster Konflikt beim Zusammenführen (siehe hg resolve)"
#, python-format
msgid "committing subrepository %s\n"
@@ -19373,15 +15761,20 @@ msgstr ""
"changegroupsubset nicht unterstützt."
#, python-format
-msgid "updating %s to public failed!\n"
-msgstr ""
+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"
+#, fuzzy
msgid "bundling"
-msgstr "Bündle"
+msgstr "Bündle Dateien"
msgid "manifests"
msgstr "Manifeste"
@@ -19439,9 +15832,6 @@ msgstr "Sende alle Änderungen\n"
msgid "%d files to transfer, %s of data\n"
msgstr "%d Dateien zum Ãœbertragen, %s an Daten\n"
-msgid "clone"
-msgstr ""
-
#, python-format
msgid "transferred %s in %.1f seconds (%s/sec)\n"
msgstr "%s in %.1f Sekunden übertragen (%s/Sek)\n"
@@ -19449,8 +15839,9 @@ 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 SMTPS)\n"
+msgstr "(benutze TLS)\n"
msgid "smtp.host not configured - cannot send mail"
msgstr "smtp.host nicht konfiguriert -- kann keine E-Mail versenden"
@@ -19459,8 +15850,9 @@ msgstr "smtp.host nicht konfiguriert -- kann keine E-Mail versenden"
msgid "sending mail: smtp host %s, port %s\n"
msgstr "Sende E-Mail: SMTP-Host %s, Port %s\n"
+#, fuzzy
msgid "(using starttls)\n"
-msgstr "(benutze starttls)\n"
+msgstr "(benutze TLS)\n"
#, python-format
msgid "(authenticating to mail server as %s)\n"
@@ -19493,10 +15885,6 @@ msgid "invalid local address: %s"
msgstr "Ungültige lokale Adresse: %s"
#, python-format
-msgid "'\\n' and '\\r' disallowed in filenames: %r"
-msgstr "'\\n' und '\\r' sind nicht in Dateinamen erlaubt: %r"
-
-#, python-format
msgid "failed to remove %s from manifest"
msgstr "Konnte %s nicht aus dem Manifest entfernen"
@@ -19507,22 +15895,20 @@ msgstr "Ungültiges Muster (%s): %s"
msgid "invalid pattern"
msgstr "Ungültiges Muster"
-#, python-format
+#, fuzzy, python-format
msgid "unable to read file list (%s)"
-msgstr "Kann Dateiliste nicht lesen (%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"
#, python-format
-msgid "%s: untracked file differs\n"
-msgstr "%s: Unversionierte Datei verändert\n"
-
msgid ""
-"untracked files in working directory differ from files in requested revision"
+"untracked file in working directory differs from file in requested revision: "
+"'%s'"
msgstr ""
-"Unversionierte Dateien in der Arbeitskopie unterscheidet sich von der "
+"Unversionierte Datei in der Arbeitskopie unterscheidet sich von der "
"angeforderten Revision: '%s'"
#, python-format
@@ -19552,7 +15938,7 @@ msgid ""
" local changed %s which remote deleted\n"
"use (c)hanged version or (d)elete?"
msgstr ""
-" Lokales Archiv ändert %s, aber entferntes löscht.\n"
+" Lokales Archiv ändert %s, aber lokales löscht.\n"
"Nutze (c) geänderte Version oder (d) lösche?"
msgid "&Changed"
@@ -19581,90 +15967,84 @@ msgstr "update konnte %s nicht entfernen: %s!\n"
#, python-format
msgid "getting %s\n"
-msgstr "Hole %s\n"
+msgstr ""
#, python-format
msgid "getting %s to %s\n"
-msgstr "Hole %s nach %s\n"
+msgstr ""
#, python-format
msgid "note: possible conflict - %s was renamed multiple times to:\n"
-msgstr "Anmerkung: Möglicher Konflikt - %s wurde mehrere Male umbenannt zu:\n"
+msgstr ""
#, python-format
-msgid "note: possible conflict - %s was deleted and renamed to:\n"
-msgstr "Anmerkung: Möglicher Konflikt - %s wurde gelöscht und umbenannt zu:\n"
+msgid "branch %s not found"
+msgstr "Zweig '%s' nicht gefunden"
msgid "merging with a working directory ancestor has no effect"
msgstr "Zusammenführen mit einem Vorfahren der Arbeitskopie hat keinen Effekt"
-msgid "use 'hg update' or check 'hg heads'"
-msgstr "nutze 'hg update' oder überprüfe 'hg heads'"
+msgid "nothing to merge (use 'hg update' or check 'hg heads')"
+msgstr ""
+"Nichts zum Zusammenführen gefunden (nutze 'hg update' oder überprüfe 'hg "
+"heads')"
-msgid "use 'hg status' to list changes"
-msgstr "nutze 'hg status' zur Auflistung der Änderungen"
+msgid "outstanding uncommitted changes (use 'hg status' to list changes)"
+msgstr ""
+"Ausstehende nicht versionierte Änderungen (nutze 'hg status' zur Auflistung "
+"der Änderungen)"
-#, python-format
+#, fuzzy, python-format
msgid "outstanding uncommitted changes in subrepository '%s'"
-msgstr "Ausstehende, unversionierte Änderungen im Unterarchiv '%s'"
+msgstr "Speichere Unterarchiv %s\n"
+#, 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 "
+"kreuzt Zweige (nutze 'hg merge' zum Zusammenführen oder 'hg update -C' um "
"die Änderungen zu verwerfen)"
-msgid "crosses branches (merge branches or update --check to force update)"
-msgstr ""
-"kreuzt Zweige (nutze :hg:`merge` oder :hg:`update --check` zum Erzwingen)"
+#, 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 "Obacht:"
+msgstr ""
msgid "Caution:"
-msgstr "Vorsicht:"
+msgstr ""
msgid "!Danger!"
-msgstr "!Gefahr!"
+msgstr ""
+#, fuzzy
msgid "Error:"
-msgstr "Fehler:"
+msgstr "%s-Fehler:\n"
msgid "Hint:"
-msgstr "Tipp:"
+msgstr ""
msgid "Important:"
-msgstr "Wichtig:"
+msgstr ""
+#, fuzzy
msgid "Note:"
-msgstr "Hinweis: "
+msgstr "Entfernt: "
msgid "Tip:"
-msgstr "Tipp:"
+msgstr ""
+#, fuzzy
msgid "Warning!"
-msgstr "Warnung!"
-
-#, python-format
-msgid "unexpected token: %s"
-msgstr "Unerwartetes Token: %s"
-
-#, python-format
-msgid "not a prefix: %s"
-msgstr "kein Präfix: %s"
+msgstr "Führe aus: %s\n"
#, python-format
-msgid "not an infix: %s"
-msgstr "kein Infix: %s"
-
-#, 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"
+msgid "cannot create %s: destination already exists"
+msgstr "Kann %s nicht anlegen: Zielverzeichnis existiert bereits"
#, python-format
-msgid "cannot patch %s: file is not tracked"
-msgstr "Kann patch nicht auf %s anwenden: Datei ist nicht versioniert"
+msgid "cannot create %s: unable to create destination directory"
+msgstr "Kann %s nicht anlegen: Zielverzeichnis kann nicht angelegt werden"
#, python-format
msgid "unable to find '%s' for patching\n"
@@ -19676,12 +16056,14 @@ msgid "patching file %s\n"
msgstr "Wende Patch auf Datei %s an\n"
#, python-format
-msgid "bad hunk #%d %s (%d %d %d %d)"
-msgstr "Fehlerhaftes Teilstück #%d %s (%d %d %d %d)"
+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"
#, python-format
-msgid "cannot create %s: destination already exists\n"
-msgstr "Kann %s nicht anlegen: Zielverzeichnis existiert bereits\n"
+msgid "bad hunk #%d %s (%d %d %d %d)"
+msgstr "Fehlerhaftes Teilstück #%d %s (%d %d %d %d)"
#, python-format
msgid "file %s already exists\n"
@@ -19712,17 +16094,12 @@ msgstr "Fehlerhaftes Teilstück #%d"
msgid "bad hunk #%d old text line %d"
msgstr "Fehlerhaftes Teilstück #%d, alte Textzeile %d"
-#, python-format
-msgid "could not extract \"%s\" binary data"
-msgstr "Konnte binäre Daten \"%s\" nicht extrahieren"
-
-#, python-format
-msgid "could not decode \"%s\" binary patch: %s"
-msgstr "Konnte binären Patch \"%s\" nicht dekodieren: %s"
+msgid "could not extract binary patch"
+msgstr "Konnte Binärpatch nicht extrahieren"
#, python-format
-msgid "\"%s\" length is %d bytes, should be %d"
-msgstr "Länge von\"%s\" ist %d bytes, sollte aber %d sein"
+msgid "binary patch is %d bytes, not %d"
+msgstr "Binärpatch ist %d Bytes groß, nicht %d"
#, python-format
msgid "unable to strip away %d of %d dirs from %s"
@@ -19732,12 +16109,8 @@ msgid "undefined source and destination files"
msgstr "undefinierte Quell- und Zieldateien"
#, python-format
-msgid "failed to synchronize metadata for \"%s\""
-msgstr "Metadaten für \"%s\" konnten nicht synchronisiert werden"
-
-#, python-format
-msgid "cannot create %s: destination already exists"
-msgstr "Kann %s nicht anlegen: Zielverzeichnis existiert bereits"
+msgid "malformed patch %s %s"
+msgstr "Fehlerhafter Patch %s %s"
#, python-format
msgid "unsupported parser state: %s"
@@ -19754,20 +16127,10 @@ msgstr "Nicht unterstütztes Zeilenende: %s"
msgid "patch failed to apply"
msgstr "Patch schlug fehl"
-msgid "cannot change null revision phase"
-msgstr "Kann die Phase der Null-Revision nicht ändern"
-
-#, python-format
-msgid "ignoring inconsistent public root from remote: %s\n"
-msgstr ""
-
#, python-format
-msgid "ignoring unexpected root from remote: %i %s\n"
-msgstr "Ignorieren einer unerwarteten Wurzel von entfernt: %i %s\n"
-
-#, python-format
-msgid "phases.new-commit: not a valid phase name ('%s')"
+msgid " %d files changed, %d insertions(+), %d deletions(-)\n"
msgstr ""
+" %d Dateien verändert, %d Zeilen hinzugefügt(+), %d Zeilen entfernt(-)\n"
#, python-format
msgid "exited with status %d"
@@ -19779,16 +16142,12 @@ msgstr "Getötet von Signal %d"
#, python-format
msgid "saved backup bundle to %s\n"
-msgstr "Speichere Bündel-Sicherheitskopie in %s\n"
+msgstr "Speichere Bündel-Sicherungskopie in %s\n"
msgid "adding branch\n"
msgstr "füge Zweig hinzu\n"
#, python-format
-msgid "error removing %s: %s\n"
-msgstr "Fehler beim Entfernen von %s: %s\n"
-
-#, python-format
msgid "strip failed, full bundle stored in '%s'\n"
msgstr "Bereinigen fehlgeschlagen, vollständiges Bündle in '%s' gespeichert\n"
@@ -19841,615 +16200,393 @@ msgstr "Inkompatibler Revisions-Schalter %x"
msgid "%s not found in the transaction"
msgstr "%s nicht in Transaktion gefunden"
+#, fuzzy
msgid "consistency error in delta"
-msgstr "Konsistenzfehler im delta"
+msgstr "Konsistenzfehler beim Hinzufügen der Gruppe"
-msgid "unknown delta base"
-msgstr "unbekannte delta-Basis"
+msgid "unknown base"
+msgstr "unbekannte Basis"
+
+msgid "unterminated string"
+msgstr "nicht abgeschlossene Zeichenkette"
+
+msgid "syntax error"
+msgstr "Syntaxfehler"
+
+msgid "missing argument"
+msgstr "fehlendes Argument"
#, python-format
msgid "can't use %s here"
msgstr "Kann %s hier nicht verwenden"
-msgid ""
-"``adds(pattern)``\n"
-" Changesets that add a file matching pattern."
-msgstr ""
-"``adds(muster)``\n"
-" Änderungssätze, die auf das Muster passende Dateien hinzufügen."
+msgid "can't use a list in this context"
+msgstr "In diesem Kontext kann keine Liste verwendet werden"
-#. i18n: "adds" is a keyword
-msgid "adds requires a pattern"
-msgstr "'adds' erwartet ein Muster"
+#, python-format
+msgid "not a function: %s"
+msgstr "keine Funktion: %s"
msgid ""
-"``ancestor(single, single)``\n"
-" Greatest common ancestor of the two changesets."
+"``id(string)``\n"
+" Revision non-ambiguously specified by the given hex string prefix."
msgstr ""
-"``ancestor(single, single)``\n"
-" Jüngster gemeinsamer Vorfahre der beiden Änderungssätze."
-#. i18n: "ancestor" is a keyword
-msgid "ancestor requires two arguments"
-msgstr "'ancestor' erwartet zwei Argumente"
+#. i18n: "id" is a keyword
+#, fuzzy
+msgid "id requires one argument"
+msgstr "head erwartet keine Argumente"
-#. i18n: "ancestor" is a keyword
-msgid "ancestor arguments must be single revisions"
-msgstr "'ancestor' erwartet einzelne Revisionen als Argumente"
+#. i18n: "id" is a keyword
+#, fuzzy
+msgid "id requires a string"
+msgstr "date erwartet eine Zeichenkette"
msgid ""
-"``ancestors(set)``\n"
-" Changesets that are ancestors of a changeset in set."
+"``rev(number)``\n"
+" Revision with the given numeric identifier."
msgstr ""
-"``ancestors(Liste)``\n"
-" Änderungssätze, die Vorfahren der Änderungssätze aus der Liste sind."
-msgid "~ expects a number"
-msgstr "~ erwartet eine Zahl"
+#. i18n: "rev" is a keyword
+#, fuzzy
+msgid "rev requires one argument"
+msgstr "merge erwartet keine Argumente"
-msgid ""
-"``author(string)``\n"
-" Alias for ``user(string)``."
-msgstr ""
-"``author(zeichenkette)``\n"
-" Alias für ``user(zeichenkette)``."
+#. i18n: "rev" is a keyword
+#, fuzzy
+msgid "rev requires a number"
+msgstr "limit erwartet eine Zahl"
-#. i18n: "author" is a keyword
-msgid "author requires a string"
-msgstr "'author' erwartet eine Zeichenkette"
+#. i18n: "rev" is a keyword
+#, fuzzy
+msgid "rev expects a number"
+msgstr "limit erwartet eine Zahl"
+#, fuzzy
msgid ""
-"``bisect(string)``\n"
-" Changesets marked in the specified bisect status:"
+"``p1([set])``\n"
+" First parent of changesets in set, or the working directory."
msgstr ""
-"``bisect(zeichenkette)``\n"
-" Änderungssätze im gegebenen bisect-Status:"
+"``p1(set)``\n"
+" Erster Vorfahr der Änderungssätze in set."
+#, fuzzy
msgid ""
-" - ``good``, ``bad``, ``skip``: csets explicitly marked as good/bad/skip\n"
-" - ``goods``, ``bads`` : csets topologicaly good/bad\n"
-" - ``range`` : csets taking part in the bisection\n"
-" - ``pruned`` : csets that are goods, bads or skipped\n"
-" - ``untested`` : csets whose fate is yet unknown\n"
-" - ``ignored`` : csets ignored due to DAG topology\n"
-" - ``current`` : the cset currently being bisected"
+"``p2([set])``\n"
+" Second parent of changesets in set, or the working directory."
msgstr ""
+"``p2(set)``\n"
+" Zweiter Vorfahr der Änderungssätze in set."
-msgid "bisect requires a string"
-msgstr "bisect erwartet eine Zeichenkette"
-
+#, fuzzy
msgid ""
-"``bookmark([name])``\n"
-" The named bookmark or all bookmarks."
+"``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 ""
-" If `name` starts with `re:`, the remainder of the name is treated as\n"
-" a regular expression. To match a bookmark that actually starts with `re:"
-"`,\n"
-" use the prefix `literal:`."
-msgstr ""
-
-#. i18n: "bookmark" is a keyword
-msgid "bookmark takes one or no arguments"
-msgstr "bookmark 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"
-
-#, python-format
-msgid "no bookmarks exist that match '%s'"
+"``max(set)``\n"
+" Changeset with highest revision number in set."
msgstr ""
+"``max(set)``\n"
+" Änderungssatz mit der größten Revisionsnummer in set."
+#, fuzzy
msgid ""
-"``branch(string or set)``\n"
-" All changesets belonging to the given branch or the branches of the "
-"given\n"
-" changesets."
+"``min(set)``\n"
+" Changeset with lowest revision number in set."
msgstr ""
-"``branch(zeichenkette oder liste)``\n"
-" Alle Änderungssätze des gegebenen Zweigs oder den Zweigen der gegebenen\n"
-" Liste von Änderungssätzen."
+"``min(set)``\n"
+" Änderungssatz mit der kleinsten Revisionsnummer in set."
+#, fuzzy
msgid ""
-" If `string` starts with `re:`, the remainder of the name is treated as\n"
-" a regular expression. To match a branch that actually starts with `re:"
-"`,\n"
-" use the prefix `literal:`."
+"``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"
+
+#. 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"
+
+#, fuzzy
msgid ""
"``children(set)``\n"
" Child changesets of changesets in set."
msgstr ""
-"``children(liste)``\n"
-" Direkte Nachfahren der Änderungssätze in der Liste."
+"``children(set)``\n"
+" Kinder-Änderungssätze der Änderungssätze in set."
+#, fuzzy
msgid ""
-"``closed()``\n"
-" Changeset is closed."
+"``branch(set)``\n"
+" All changesets belonging to the branches of changesets in set."
msgstr ""
-"``closed()``\n"
-" Änderungssatz ist geschlossen."
-
-#. i18n: "closed" is a keyword
-msgid "closed takes no arguments"
-msgstr "'closed' erwartet keine Argumente"
+"``branch(set)``\n"
+" Alle Änderungssätze, die zu den Zweigen aus den Änderungssätzen\n"
+" aus set gehören."
+#, fuzzy
msgid ""
-"``contains(pattern)``\n"
-" Revision contains a file matching pattern. See :hg:`help patterns`\n"
-" for information about file patterns."
+"``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: "contains" is a keyword
-msgid "contains requires a pattern"
-msgstr "'contains' erwartet ein 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`."
+#. i18n: "ancestor" is a keyword
+#, fuzzy
+msgid "ancestor requires two arguments"
+msgstr "ancestor erwartet zwei Argumente"
-#. i18n: "date" is a keyword
-msgid "date requires a string"
-msgstr "date erwartet eine Zeichenkette"
+#. i18n: "ancestor" is a keyword
+msgid "ancestor arguments must be single revisions"
+msgstr "ancestors erwartet einzelne Revisionen als Argumente"
+#, fuzzy
msgid ""
-"``desc(string)``\n"
-" Search commit message for string. The match is case-insensitive."
+"``ancestors(set)``\n"
+" Changesets that are ancestors of a changeset in set."
msgstr ""
-"``desc(zeichenkette)``\n"
-" Sucht die Zeichenketten in der Commit-Nachricht (Großschreibung wird\n"
-" ignoriert)."
-
-#. i18n: "desc" is a keyword
-msgid "desc requires a string"
-msgstr "'desc' erwartet eine Zeichenkette"
+"``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(liste)``\n"
-" Nachkommen der Änderungssätze in der Liste sind."
-
-msgid ""
-"``draft()``\n"
-" Changeset in draft phase."
-msgstr ""
-
-msgid "draft takes no arguments"
-msgstr "draft erwartet keine Argumente"
-
-msgid ""
-"``extra(label, [value])``\n"
-" Changesets with the given label in the extra metadata, with the given\n"
-" optional value."
-msgstr ""
-
-msgid ""
-" If `value` starts with `re:`, the remainder of the value is treated as\n"
-" a regular expression. To match a value that actually starts with `re:`,\n"
-" use the prefix `literal:`."
-msgstr ""
-
-msgid "extra takes at least 1 and at most 2 arguments"
-msgstr "extra erwartet mindestens eins und höchstens zwei Argumente"
-
-msgid "first argument to extra must be a string"
-msgstr "Erstes Argument für extra muss eine Zeichenkette sein"
-
-msgid "second argument to extra must be a string"
-msgstr "Zweites Argument für extra muss eine Zeichenkette sein"
+"``descendants(set)``\n"
+" Änderungssätze, die Nachkommen der Änderungssätze in set sind."
+#, fuzzy
msgid ""
-"``filelog(pattern)``\n"
-" Changesets connected to the specified filelog."
+"``follow()``\n"
+" An alias for ``::.`` (ancestors of the working copy's first parent)."
msgstr ""
-"``filelog(muster)``\n"
-" Änderungssätze, die das gegebene filelog betreffen."
+"``follow()``\n"
+" Ein Alias für ``::.`` (Vorfahren in der ersten Eltern-Revision der\n"
+" Arbeitskopie)."
-msgid "filelog requires a pattern"
-msgstr "'filelog' erwartet ein Muster"
+#. i18n: "follow" is a keyword
+msgid "follow takes no arguments"
+msgstr "follow erwartet keine Argumente"
+#, fuzzy
msgid ""
-"``first(set, [n])``\n"
-" An alias for limit()."
+"``date(interval)``\n"
+" Changesets within the interval, see :hg:`help dates`."
msgstr ""
-"``first(liste, [n])``\n"
-" Alias für limit()."
-
-#, python-format
-msgid "%s takes no arguments or a filename"
-msgstr "%s erwartet keine Argumente oder einen Dateinamen"
-
-#, python-format
-msgid "%s expected a filename"
-msgstr "%s erwartete einen Dateinamen"
+"``date(intervall)``\n"
+" Änderungssätze innerhalb des Intervalls, siehe auch :hg:`help dates`."
-msgid ""
-"``follow([file])``\n"
-" An alias for ``::.`` (ancestors of the working copy's first parent).\n"
-" If a filename is specified, the history of the given file is followed,\n"
-" including copies."
-msgstr ""
-"``follow([dateiname])``\n"
-" Ein Alias für ``::.`` (Vorfahren in der ersten Eltern-Revision der\n"
-" Arbeitskopie). Wenn ein Dateiname gegeben ist, wird der Historie der\n"
-" Datei über Kopien hinweg gefolgt."
+#. i18n: "date" is a keyword
+#, fuzzy
+msgid "date requires a string"
+msgstr "date erwartet eine Zeichenkette"
+#, fuzzy
msgid ""
-"``all()``\n"
-" All changesets, the same as ``0:tip``."
+"``keyword(string)``\n"
+" Search commit message, user name, and names of changed files for\n"
+" string."
msgstr ""
-"``all()``\n"
-" Alle Änderungssätze, entspricht ``0:tip``."
+"``keyword(zeichenkette)``\n"
+" Sucht die Zeichenketten in der Commit-Nachricht, dem Benutzernamen\n"
+" und der Liste geänderter Dateien."
-#. i18n: "all" is a keyword
-msgid "all takes no arguments"
-msgstr "all erwartet keine Argumente"
+#. i18n: "keyword" is a keyword
+#, fuzzy
+msgid "keyword requires a string"
+msgstr "keyword erwartet eine Zeichenkette"
msgid ""
"``grep(regex)``\n"
" Like ``keyword(string)`` but accepts a regex. Use ``grep(r'...')``\n"
-" to ensure special escape characters are handled correctly. Unlike\n"
-" ``keyword(string)``, the match is case-sensitive."
+" 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"
+msgstr "grep erwartet eine Zeichenkette"
-#, python-format
+#, fuzzy, python-format
msgid "invalid match pattern: %s"
-msgstr "Ungültiges Suchmuster: %s"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles requires at least one argument"
-msgstr "_matchfiles erwartet mindestens ein Argument"
+msgstr "grep: Ungültiges Suchmuster: %s\n"
-msgid "_matchfiles requires string arguments"
-msgstr "_matchfiles erwartet Zeichenketten als Argumente"
+#, fuzzy
+msgid ""
+"``author(string)``\n"
+" Alias for ``user(string)``."
+msgstr ""
+"``author(zeichenkette)``\n"
+" Alias für ``user(zeichenkette)``."
-msgid "_matchfiles expected at most one revision"
-msgstr "_matchfiles erwartete mindestens eine Revision"
+#. i18n: "author" is a keyword
+#, fuzzy
+msgid "author requires a string"
+msgstr "author erwartet eine Zeichenkette"
-msgid "_matchfiles expected at most one default mode"
+#, fuzzy
+msgid ""
+"``user(string)``\n"
+" User name is string."
msgstr ""
+"``user(string)``\n"
+" Der Benutzername ist eine Zeichenkette."
-#, python-format
-msgid "invalid _matchfiles prefix: %s"
-msgstr "Ungültiges Präfix für _matchfiles: %s"
-
+#, fuzzy
msgid ""
"``file(pattern)``\n"
" Changesets affecting files matched by pattern."
msgstr ""
"``file(muster)``\n"
-" Änderungssätze, die auf das Muster passende Dateien betreffen."
+" Ä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 ""
-"``head()``\n"
-" Changeset is a named branch head."
-msgstr ""
-"``head()``\n"
-" Änderungssatz ist ein Kopf eines benannten Zweigs."
-
-#. i18n: "head" is a keyword
-msgid "head takes no arguments"
-msgstr "head erwartet keine Argumente"
-
-msgid ""
-"``heads(set)``\n"
-" Members of set with no children in set."
-msgstr ""
-"``heads(liste)``\n"
-" Elemente der Liste, die keine Kinder in der Liste haben."
-
-msgid ""
-"``keyword(string)``\n"
-" Search commit message, user name, and names of changed files for\n"
-" string. The match is case-insensitive."
-msgstr ""
-"``keyword(zeichenkette)``\n"
-" Sucht die Zeichenketten in der Commit-Nachricht, dem Benutzernamen\n"
-" und der Liste geänderter Dateien. Großschreibung wird ignoriert."
-
-#. i18n: "keyword" is a keyword
-msgid "keyword requires a string"
-msgstr "'keyword' erwartet eine Zeichenkette"
-
-msgid ""
-"``limit(set, [n])``\n"
-" First n members of set, defaulting to 1."
-msgstr ""
-"``limit(liste, [n])``\n"
-" Die erste, bzw. die ersten n Elemente Liste."
-
-#. i18n: "limit" is a keyword
-msgid "limit requires one or two arguments"
-msgstr "'limit' verlangt ein oder zwei Argumente"
-
-#. i18n: "limit" is a keyword
-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 ""
-"``last(set, [n])``\n"
-" Last n members of set, defaulting to 1."
-msgstr ""
-"``last(liste, [n])``\n"
-" Das letzte, bzw. die letzten n Elemente der Liste."
-
-#. i18n: "last" is a keyword
-msgid "last requires one or two arguments"
-msgstr "'last' verlangt ein oder zwei Argumente"
-
-#. i18n: "last" is a keyword
-msgid "last requires a number"
-msgstr "'last' benötigt eine Zahl"
-
-#. i18n: "last" is a keyword
-msgid "last expects a number"
-msgstr "'last' erwartet eine Zahl"
-
-msgid ""
-"``max(set)``\n"
-" Changeset with highest revision number in set."
-msgstr ""
-"``max(set)``\n"
-" Änderungssatz mit der größten Revisionsnummer in set."
+msgstr "file erwartet ein Muster"
+#, fuzzy
msgid ""
-"``merge()``\n"
-" Changeset is a merge changeset."
+"``contains(pattern)``\n"
+" Revision contains pattern."
msgstr ""
-"``merge()``\n"
-" Änderungssatz ist eine Zusammenführung."
-
-#. i18n: "merge" is a keyword
-msgid "merge takes no arguments"
-msgstr "merge erwartet keine Argumente"
+"``contains(muster)``\n"
+" Revision enthält das Muster."
-msgid ""
-"``min(set)``\n"
-" Changeset with lowest revision number in set."
-msgstr ""
-"``min(liste)``\n"
-" Änderungssatz mit der kleinsten Revisionsnummer in der Liste."
+#. i18n: "contains" is a keyword
+#, fuzzy
+msgid "contains requires a pattern"
+msgstr "contains erwartet ein Muster"
+#, fuzzy
msgid ""
"``modifies(pattern)``\n"
" Changesets modifying files matched by pattern."
msgstr ""
"``modifies(muster)``\n"
-" Änderungssätze, die auf das Muster passende Dateien verändern."
+" Ä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 Dateinamenmuster"
-
-msgid ""
-"``id(string)``\n"
-" Revision non-ambiguously specified by the given hex string prefix."
-msgstr ""
-"``id(zeichenkette)``\n"
-" Revision, die eindeutig durch den gegebenen Hex-Wert(-Präfix)\n"
-" identifiziert wird."
-
-#. i18n: "id" is a keyword
-msgid "id requires one argument"
-msgstr "'id' erwartet keine Argumente"
-
-#. i18n: "id" is a keyword
-msgid "id requires a string"
-msgstr "'id' erwartet eine Zeichenkette"
-
-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"
-" Vorgabe-Push-Ziel vorhanden sind."
-
-#. i18n: "outgoing" is a keyword
-msgid "outgoing takes one or no arguments"
-msgstr "'outgoing' erwartet keine Argumente"
-
-#. i18n: "outgoing" is a keyword
-msgid "outgoing requires a repository path"
-msgstr "'outgoing' verlangt einen Projektarchivpfad"
-
-msgid ""
-"``p1([set])``\n"
-" First parent of changesets in set, or the working directory."
-msgstr ""
-"``p1([liste])``\n"
-" Erster Vorfahr der Änderungssätze der Liste oder des Arbeits-\n"
-" verzeichnisses."
-
-msgid ""
-"``p2([set])``\n"
-" Second parent of changesets in set, or the working directory."
-msgstr ""
-"``p2([liste])``\n"
-" Zweiter Vorfahr der Änderungssätze der Liste oder des Arbeits-\n"
-" verzeichnisses."
-
-msgid ""
-"``parents([set])``\n"
-" The set of all parents for all changesets in set, or the working "
-"directory."
-msgstr ""
-"``parents([liste])``\n"
-" Die Menge aller Eltern für die Änderungssätze der Liste oder des\n"
-" Arbeitverzeichnisses.."
-
-msgid "^ expects a number 0, 1, or 2"
-msgstr "^ erwartet eine Zahl (0, 1 oder 2)"
-
-msgid ""
-"``present(set)``\n"
-" An empty set, if any revision in set isn't found; otherwise,\n"
-" all revisions in set."
-msgstr ""
-"``present(liste)``\n"
-" Die gegebene Liste, wenn alle Revisionen darin gefunden wurden. Wenn\n"
-" ein Eintrag nicht gefunden wird, die leere Menge."
-
-msgid ""
-" If any of specified revisions is not present in the local repository,\n"
-" the query is normally aborted. But this predicate allows the query\n"
-" to continue even in such cases."
-msgstr ""
-
-msgid ""
-"``public()``\n"
-" Changeset in public phase."
-msgstr ""
-
-msgid "public takes no arguments"
-msgstr "public erwartet keine Argumente"
+msgstr "modifies erwartet ein Muster"
+#, fuzzy
msgid ""
-"``remote([id [,path]])``\n"
-" Local revision that corresponds to the given identifier in a\n"
-" remote repository, if present. Here, the '.' identifier is a\n"
-" synonym for the current local branch."
+"``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: "remote" is a keyword
-msgid "remote takes one, two or no arguments"
-msgstr "remote erwartet ein, zwei oder keine Argumente"
-
-#. i18n: "remote" is a keyword
-msgid "remote requires a string id"
-msgstr "remote erwartet eine Zeichenkette (ID)"
-
-#. i18n: "remote" is a keyword
-msgid "remote requires a repository path"
-msgstr "'remote' erwartet einen Projektarchivpfad"
+#. i18n: "adds" is a keyword
+#, fuzzy
+msgid "adds requires a pattern"
+msgstr "adds erwartet ein Muster"
+#, fuzzy
msgid ""
"``removes(pattern)``\n"
" Changesets which remove files matching pattern."
msgstr ""
"``removes(muster)``\n"
-" Änderungssätze, die auf das Muster passende Dateien entfernten."
+" Ä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"
-
-msgid ""
-"``rev(number)``\n"
-" Revision with the given numeric identifier."
-msgstr ""
-
-#. i18n: "rev" is a keyword
-msgid "rev requires one argument"
-msgstr "'rev' erwartet eine Argumente"
-
-#. i18n: "rev" is a keyword
-msgid "rev requires a number"
-msgstr "'rev' benötigt eine Zahl"
-
-#. i18n: "rev" is a keyword
-msgid "rev expects a number"
-msgstr "'rev' erwartet eine Zahl"
-
-msgid ""
-"``matching(revision [, field])``\n"
-" Changesets in which a given set of fields match the set of fields in "
-"the\n"
-" selected revision or set."
-msgstr ""
+msgstr "removes erwartet ein Muster"
+#, fuzzy
msgid ""
-" To match more than one field pass the list of fields to match separated\n"
-" by spaces (e.g. ``author description``)."
+"``merge()``\n"
+" Changeset is a merge changeset."
msgstr ""
+"``merge()``\n"
+" Änderungssatz ist eine Zusammenführung."
-msgid ""
-" Valid fields are most regular revision fields and some special fields."
-msgstr ""
+#. i18n: "merge" is a keyword
+msgid "merge takes no arguments"
+msgstr "merge erwartet keine Argumente"
+#, fuzzy
msgid ""
-" Regular revision fields are ``description``, ``author``, ``branch``,\n"
-" ``date``, ``files``, ``phase``, ``parents``, ``substate`` and ``user``.\n"
-" Note that ``author`` and ``user`` are synonyms."
+"``closed()``\n"
+" Changeset is closed."
msgstr ""
+"``closed()``\n"
+" Änderungssatz ist geschlossen."
-msgid ""
-" Special fields are ``summary`` and ``metadata``:\n"
-" ``summary`` matches the first line of the description.\n"
-" ``metadata`` is equivalent to matching ``description user date``\n"
-" (i.e. it matches the main metadata fields)."
-msgstr ""
+#. i18n: "closed" is a keyword
+msgid "closed takes no arguments"
+msgstr "closed erwartet keine Argumente"
+#, fuzzy
msgid ""
-" ``metadata`` is the default field which is used when no fields are\n"
-" specified. You can match more than one field at a time."
+"``head()``\n"
+" Changeset is a named branch head."
msgstr ""
+"``head()``\n"
+" Änderungssatz ist ein Kopf (hat keine Kinder)."
-msgid "matching takes 1 or 2 arguments"
-msgstr "matching erwartet 1 oder 2 Argumente"
-
-msgid "matching requires a string as its second argument"
-msgstr "matching erwartet eine Zeichenkette als sein zweites Argument"
-
-#, python-format
-msgid "unexpected field name passed to matching: %s"
-msgstr "Unerwarteter Feldname wurde an matching übergeben: %s"
+#. i18n: "head" is a keyword
+msgid "head takes no arguments"
+msgstr "head erwartet keine Argumente"
+#, fuzzy
msgid ""
"``reverse(set)``\n"
" Reverse order of set."
msgstr ""
"``reverse(set)``\n"
-" Kehrt die Liste um."
-
-msgid ""
-"``roots(set)``\n"
-" Changesets in set with no parent changeset in set."
-msgstr ""
-"``roots(Menge)``\n"
-" Änderungssätze in der Menge, die keine Vorgänger in der Menge haben."
+" Kehrt die Reihenfolge von set um."
+#, fuzzy
msgid ""
-"``secret()``\n"
-" Changeset in secret phase."
+"``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 "secret takes no arguments"
-msgstr "secret erwartet keine Argumente"
-
+#, 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(menge[, [-]schlüssel...])``\n"
-" Sortiert die Menge anhand der Schlüssel. Mit einem vorgestellten ``-``\n"
-" wird absteigend, standardmäßig aufsteigend sortiert."
+"``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 " Folgende Schlüssel können verwendet werden:"
+msgstr " Der key kann einer der folgenden sein:"
+#, fuzzy
msgid ""
" - ``rev`` for the revision number,\n"
" - ``branch`` for the branch name,\n"
@@ -20457,15 +16594,17 @@ msgid ""
" - ``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 Versionsmeldung (description),\n"
-" - ``user`` für den Benutzernamen (Alias ``author``),\n"
-" - ``date`` für das Datum des Commits"
+" - ``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"
+msgstr "sort verlangt ein oder zwei Argumente"
msgid "sort spec must be a string"
msgstr "Sortiermodus muss eine Zeichenkette sein"
@@ -20474,132 +16613,85 @@ msgstr "Sortiermodus muss eine Zeichenkette sein"
msgid "unknown sort key %r"
msgstr "Unbekannter Sortiermodus: %r"
-#, python-format
-msgid "invalid regular expression: %s"
-msgstr "Ungültiger regulärer Ausdruck: %s"
-
+#, fuzzy
msgid ""
-"``tag([name])``\n"
-" The specified tag by name, or all tagged revisions if no name is given."
+"``all()``\n"
+" All changesets, the same as ``0:tip``."
msgstr ""
+"``all()``\n"
+" Alle Änderungssätze, entspricht ``0:tip``."
-#. i18n: "tag" is a keyword
-msgid "tag takes one or no arguments"
-msgstr "'tag' erwartet eins oder keine Argumente"
-
-#. i18n: "tag" is a keyword
-msgid "the argument to tag must be a string"
-msgstr "'tag' erwartet eine Zeichenkette"
-
-#, python-format
-msgid "no tags exist that match '%s'"
-msgstr "Es existiert kein Etikett, dass auf '%s' passt"
+#. i18n: "all" is a keyword
+msgid "all takes no arguments"
+msgstr "all erwartet keine Argumente"
+#, fuzzy
msgid ""
-"``user(string)``\n"
-" User name contains string. The match is case-insensitive."
+"``heads(set)``\n"
+" Members of set with no children in set."
msgstr ""
-"``user(zeichenkette)``\n"
-" Der Benutzername enthält die Zeichenkette. Großschreibung wird ignoriert."
+"``heads(set)``\n"
+" Elemente aus set, die keine Kinder in set haben."
+#, fuzzy
msgid ""
-" If `string` starts with `re:`, the remainder of the string is treated "
-"as\n"
-" a regular expression. To match a user that actually contains `re:`, use\n"
-" the prefix `literal:`."
-msgstr ""
-
-msgid "can't negate that"
-msgstr "kann dies nicht negieren"
-
-msgid "not a symbol"
-msgstr "kein Symbol"
-
-#, python-format
-msgid "infinite expansion of revset alias \"%s\" detected"
-msgstr ""
-
-#, python-format
-msgid "invalid number of arguments: %s"
-msgstr "ungültige Parameteranzahl: %s"
-
-msgid "empty query"
-msgstr "Leere Anfrage"
-
-#, python-format
-msgid "no changes found (ignored %d secret changesets)\n"
+"``roots(set)``\n"
+" Changesets with no parent changeset in set."
msgstr ""
-"Keine Änderungen gefunden (%d geheime Änderungssätze wurden ignoriert)\n"
+"``roots(set)``\n"
+" Änderungssätze ohne Eltern in set."
-#, python-format
-msgid "ui.portablefilenames value is invalid ('%s')"
+#, 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,"
-#, python-format
-msgid "possible case-folding collision for %s"
-msgstr "Groß-/Kleinschreibungskonflikt bei %s"
-
-#, python-format
-msgid "path ends in directory separator: %s"
-msgstr "Pfad endet mit Verzeichnis Separator: %s"
-
-#, python-format
-msgid "path contains illegal component: %s"
-msgstr "Pfad enthält ungültige Komponente: %s"
-
-#, python-format
-msgid "path '%s' is inside nested repo %r"
-msgstr "Pfad '%s' ist innerhalb des geschachtelten Archivs %r"
-
-#, python-format
-msgid "path %r traverses symbolic link %r"
-msgstr "Pfad %r überschreitet symbolische Verknüpfung %r"
-
-#, python-format
-msgid "could not symlink to %r: %s"
-msgstr "Konnte symbolische Verknüpfung auf %r nicht erzeugen: %s"
-
-msgid "empty revision range"
-msgstr "Leerer Revisionsbereich"
-
-#, python-format
-msgid "recording removal of %s as rename to %s (%d%% similar)\n"
-msgstr ""
-"Interpretiere die Entfernung von %s als Umbenennung in %s (%d%% ähnlich)\n"
+#. i18n: "outgoing" is a keyword
+#, fuzzy
+msgid "outgoing requires a repository path"
+msgstr "outgoing verlangt einen Projektarchivpfad"
-#, python-format
-msgid "%s has not been committed yet, so no copy data will be stored for %s.\n"
+msgid ""
+"``tag(name)``\n"
+" The specified tag by name, or all tagged revisions if no name is given."
msgstr ""
-"%s ist nicht im Archiv, daher gilt %s als neu hinzugefügt (nicht als "
-"kopiert).\n"
-msgid ".hg/requires file is corrupt"
-msgstr ".hg/requires file ist beschädigt"
-
-#, python-format
-msgid "unknown repository format: requires features '%s' (upgrade Mercurial)"
-msgstr ""
+#. i18n: "tag" is a keyword
+#, fuzzy
+msgid "tag takes one or no arguments"
+msgstr "tagged erwartet keine Argumente"
-msgid "searching for changes\n"
-msgstr "Suche nach Änderungen\n"
+#. i18n: "tag" is a keyword
+#, fuzzy
+msgid "the argument to tag must be a string"
+msgstr "Sortiermodus muss eine Zeichenkette sein"
-msgid "all local heads known remotely\n"
+msgid ""
+"``bookmark([name])``\n"
+" The named bookmark or all bookmarks."
msgstr ""
-msgid "sampling from both directions\n"
-msgstr "Nehme Proben von beiden Verzeichnissen\n"
+#. i18n: "bookmark" is a keyword
+msgid "bookmark takes one or no arguments"
+msgstr "bookmark verlangt ein oder zwei Argumente"
-msgid "queries"
-msgstr ""
+#. i18n: "bookmark" is a keyword
+msgid "the argument to bookmark must be a string"
+msgstr "'bookmark' erwartet eine Zeichenkette als Parameter"
-msgid "searching"
-msgstr ""
+msgid "can't negate that"
+msgstr "kann dies nicht negieren"
-msgid "repository is unrelated"
-msgstr "Projektarchiv steht in keinem Zusammenhang"
+msgid "not a symbol"
+msgstr "kein Symbol"
-msgid "warning: repository is unrelated\n"
-msgstr "Warnung: Projektarchiv steht in keinem Zusammenhang\n"
+msgid "empty query"
+msgstr "Leere Anfrage"
msgid "searching for exact renames"
msgstr "Suche nach exakten Umbenennungen"
@@ -20621,8 +16713,9 @@ msgstr "Warnung: Konflikte beim Zusammenführen.\n"
msgid "couldn't parse location %s"
msgstr "Konnte Adresse %s nicht verarbeiten"
+#, fuzzy
msgid "password in URL not supported"
-msgstr "Passwort in URL nicht unterstützt"
+msgstr "Hardlinks nicht unterstützt"
msgid "could not create remote repo"
msgstr "Konnte entferntes Projektarchiv nicht erstellen"
@@ -20630,77 +16723,15 @@ msgstr "Konnte entferntes Projektarchiv nicht erstellen"
msgid "no suitable response from remote hg"
msgstr "Keine passende Antwort des entfernten hg"
-#, python-format
-msgid "push refused: %s"
-msgstr "Hochladen abgewiesen: %s"
-
-msgid "ssl connection failed"
-msgstr "ssk-Verbindung fehlgeschlagen"
-
-msgid "Python SSL support not found"
-msgstr "SSL-Unterstützung für Python nicht gefunden"
-
-msgid "certificate checking requires Python 2.6"
-msgstr "Zur Überprüfung von Zertifikaten wird Python 2.6 benötigt"
-
-msgid "no certificate received"
-msgstr "Kein Zertifikat empfangen"
-
-#, python-format
-msgid "certificate is for %s"
-msgstr "Zertifikat ist für %s"
-
-msgid "IDN in certificate not supported"
-msgstr ""
-
-msgid "no commonName or subjectAltName found in certificate"
-msgstr "Kein commonName oder subjectAltName im Zertifikat gefunden"
-
-#, python-format
-msgid "could not find web.cacerts: %s"
-msgstr "Konnte web.cacerts nicht finden: %s"
-
-#, python-format
-msgid "host fingerprint for %s can't be verified (Python too old)"
-msgstr ""
-"Server Authentizität für %s kann nicht verifiziert werden (Python ist zu alt)"
-
-#, python-format
-msgid "warning: certificate for %s can't be verified (Python too old)\n"
-msgstr ""
-"Warnung: Zertifikat für %s kann nicht verifiziert werden (Python ist zu "
-"alt)\n"
-
-#, python-format
-msgid "%s ssl connection error"
-msgstr ""
-
-#, python-format
-msgid "%s certificate error: no certificate received"
-msgstr "%s Zertifikatfehler: Kein Zertifikat empfangen"
-
-#, python-format
-msgid "certificate for %s has unexpected fingerprint %s"
-msgstr ""
-
-msgid "check hostfingerprint configuration"
-msgstr ""
-
-#, python-format
-msgid "%s certificate error: %s"
-msgstr "%s Zertifikatfehler: %s"
+msgid "remote: "
+msgstr "Entfernt: "
-#, python-format
-msgid "configure hostfingerprint %s or use --insecure to connect insecurely"
-msgstr ""
-"Erlauben Sie Serverkennung %s in der Konfiguration oder benutzen Sie --"
-"insecure, um unsicher zu verbinden"
+msgid "unexpected response:"
+msgstr "Unerwartete Antwort:"
#, python-format
-msgid ""
-"warning: %s certificate with fingerprint %s not verified (check "
-"hostfingerprints or web.cacerts config setting)\n"
-msgstr ""
+msgid "push refused: %s"
+msgstr "Hochladen abgewiesen: %s"
#, python-format
msgid "'%s' does not appear to be an hg repository"
@@ -20716,25 +16747,21 @@ msgstr "Kann kein neues, static-http Projektarchiv erstellen"
msgid "invalid entry in fncache, line %s"
msgstr "Ungültiger Eintrag in fncache, Zeile %s"
-#, python-format
+#, fuzzy, python-format
msgid "warning: subrepo spec file %s not found\n"
-msgstr "Warnung: Spezifikationsdatei für Unterarchive %s nicht gefunden\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"
-#, python-format
-msgid "invalid subrepository revision specifier in .hgsubstate line %d"
-msgstr ""
+msgid "missing ] in subrepo source"
+msgstr "Fehlendes ] in der Unterarchivquelle"
#, python-format
msgid "bad subrepository pattern in %s: %s"
msgstr "Fehlerhaftes Muster für Unterarchive in %s: %s"
-msgid "missing ] in subrepo source"
-msgstr "Fehlendes ] in der Unterarchivquelle"
-
#, python-format
msgid ""
" subrepository sources for %s differ\n"
@@ -20762,47 +16789,43 @@ msgstr ""
" Entferntes Unterarchiv ändert %s, aber lokales löscht.\n"
"Nutze (c) geänderte Version oder (d) lösche?"
-#, python-format
+#, 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)?\n"
+"Nutze (l)okale Quelle (%s) oder entfe(r)nte Quelle (%s)?"
-#, python-format
+#, 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 unterscheiden sich im Arbeitsverzeichnis.\n"
-"Nutze (l)okale Quelle (%s) oder entfe(r)nte Quelle (%s)?\n"
+" Unterarchivquellen für %s sind verschieden.\n"
+"Nutze (l)okale Quelle (%s) oder entfe(r)nte Quelle (%s)?"
-#, python-format
+#, fuzzy, python-format
msgid "default path for subrepository %s not found"
-msgstr "Vorgabepfad für Unterarchiv %s nicht gefunden"
+msgstr "Projektarchiv %s nicht gefunden"
#, python-format
msgid "unknown subrepo type %s"
msgstr "Unbekannter Unterarchivtyp %s"
-#, python-format
+#, fuzzy, python-format
msgid "archiving (%s)"
-msgstr "Archiviere (%s)"
+msgstr "Entferne %s\n"
-#, python-format
+#, fuzzy, python-format
msgid "warning: error \"%s\" in subrepository \"%s\"\n"
-msgstr "Warnung: Fahler \"%s\" im Unterarchiv \"%s\"\n"
+msgstr "Ãœbernehme Unterarchiv %s\n"
#, python-format
msgid "removing subrepo %s\n"
msgstr "Entferne Unterarchiv %s\n"
#, python-format
-msgid "cloning subrepo %s from %s\n"
-msgstr "Klone Unterarchiv %s von %s\n"
-
-#, python-format
msgid "pulling subrepo %s from %s\n"
msgstr "Rufe Unterarchiv %s von %s ab\n"
@@ -20810,33 +16833,24 @@ msgstr "Rufe Unterarchiv %s von %s ab\n"
msgid "pushing subrepo %s to %s\n"
msgstr "Ãœbertrage Unterarchiv %s zu %s\n"
-#, python-format
-msgid "reverting subrepo %s\n"
-msgstr "Zurücksetzen von Unterarchiv %s\n"
-
-#, python-format
-msgid "'svn' executable not found for subrepo '%s'"
-msgstr ""
-
-msgid "cannot retrieve svn tool version"
-msgstr "Kann svn-Version nicht herausfinden"
-
msgid "cannot commit svn externals"
msgstr "Kann SVN-Externals nicht speichern"
-msgid "cannot commit missing svn entries"
-msgstr "Kann fehlende SVN-Einträge nicht übernehmen"
-
-msgid "failed to commit svn changes"
-msgstr "Übernahme von SVN-Änderungen fehlgeschlagen"
-
#, python-format
msgid "not removing repo %s because it has changes.\n"
msgstr "Entferne Projektarchiv %s nicht, da es Änderungen enthält.\n"
-#, python-format
+#, 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 existiert nicht im Unterarchiv %s\n"
+msgstr "Revision %s ist keine Patchsatz-Nummer"
#, python-format
msgid "checking out detached HEAD in subrepo %s\n"
@@ -20845,25 +16859,23 @@ msgstr ""
msgid "check out a git branch if you intend to make changes\n"
msgstr ""
-#, python-format
+#, fuzzy, python-format
msgid "subrepo %s is missing"
-msgstr "Unterarchiv %s fehlt"
+msgstr "%s:%d: Pfad zu %s fehlt\n"
#, python-format
msgid "unrelated git branch checked out in subrepo %s\n"
msgstr ""
-#, python-format
+#, fuzzy, python-format
msgid "pushing branch %s of subrepo %s\n"
-msgstr "Ãœbertrage Zweig %s von Unterarchiv %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 ""
-"kein Zweig in Unterarchiv %s aktuell\n"
-"Revision %s kann nicht übertragen werden"
#, python-format
msgid "%s, line %s: %s\n"
@@ -20877,353 +16889,26 @@ msgid "node '%s' is not well formed"
msgstr "Knoten '%s' ist nicht wohlgeformt"
msgid ".hg/cache/tags is corrupt, rebuilding it\n"
-msgstr ".hg/cache/tags ist korrupt, wird wiederhergestellt\n"
-
-msgid ""
-":addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n"
-" every line except the last."
-msgstr ""
-":addbreaks: Beliebiger Text. Führt ein XHTML \"<br />\"-Tag vor das Ende\n"
-" jeder Zeile bis auf die letzte ein."
-
-msgid ""
-":age: Date. Returns a human-readable date/time difference between the\n"
-" given date/time and the current date/time."
-msgstr ""
-":age: Datumsangabe. Gibt eine menschenlesbare Datums- und Zeitdifferenz\n"
-" zwischen dem gegebenen Datum und der aktuellen Zeit aus."
-
-msgid ""
-":basename: Any text. Treats the text as a path, and returns the last\n"
-" component of the path after splitting by the path separator\n"
-" (ignoring trailing separators). For example, \"foo/bar/baz\" becomes\n"
-" \"baz\" and \"foo/bar//\" becomes \"bar\"."
-msgstr ""
-":basename: Beliebiger Text. Behandelt jeden Text als Pfadangabe und gibt\n"
-" den letzten Bestandteil des Pfades nach dem Auftrennen mit dem\n"
-" Trennzeichen für Verzeichnisse zurück (überhängende Trenner werden\n"
-" ignoriert). Zum Beispiel wird aus \"foo/bar/baz\" dann \"baz\" und\n"
-" \"foo/bar//\" wird zu \"bar\"."
-
-msgid ""
-":date: Date. Returns a date in a Unix date format, including the\n"
-" timezone: \"Mon Sep 04 15:13:13 2006 0700\"."
-msgstr ""
-":date: Datumsangabe. Gibt ein Datum als Unix Datum zurück,\n"
-" inklusive der Zeitzone: \"Mon Sep 04 15:13:13 2006 0700\"."
-
-msgid ""
-":domain: Any text. Finds the first string that looks like an email\n"
-" address, and extracts just the domain component. Example: ``User\n"
-" <user@example.com>`` becomes ``example.com``."
-msgstr ""
-":domain: Beliebiger Text. Findet die erste Zeichenkette, die wie eine\n"
-" E-Mail-Adresse aussieht, und extrahiert davon die Domain-Komponente:\n"
-" Beispiel: ``Nutzer <user@example.com>`` wird zu ``example.com``."
-
-msgid ""
-":email: Any text. Extracts the first string that looks like an email\n"
-" address. Example: ``User <user@example.com>`` becomes\n"
-" ``user@example.com``."
-msgstr ""
-":email: Beliebiger Text. Extrahiert die erste Zeichenkette, die wie eine\n"
-" E-Mail-Adresse aussieht. Beispiel: ``Nutzer <user@example.com>`` wird\n"
-" zu ``user@example.com``."
-
-msgid ""
-":escape: Any text. Replaces the special XML/XHTML characters \"&\", \"<\"\n"
-" and \">\" with XML entities."
-msgstr ""
-":escape: Beliebiger Text. Ersetzt die besonderen XML/XHTML-Zeichen\n"
-" \"&\", \"<\" und \">\" mit XML-Entitäten."
-
-msgid ":fill68: Any text. Wraps the text to fit in 68 columns."
-msgstr ":fill68: Beliebiger Text. Umbricht den Text bei 68 Zeichen."
-
-msgid ":fill76: Any text. Wraps the text to fit in 76 columns."
-msgstr ":fill76: Beliebiger Text. Umbricht den Text bei 76 Zeichen."
-
-msgid ":firstline: Any text. Returns the first line of text."
-msgstr ":firstline: Beliebiger Text. Gibt die erste Zeile des Texts zurück."
-
-msgid ""
-":hex: Any text. Convert a binary Mercurial node identifier into\n"
-" its long hexadecimal representation."
-msgstr ""
-":hex: Beliebiger Text. Konvertiert eine binäre Mercurial-Knoten-ID\n"
-" in eine lange hexadezimale Repräsentation."
-
-msgid ""
-":hgdate: Date. Returns the date as a pair of numbers: \"1157407993\n"
-" 25200\" (Unix timestamp, timezone offset)."
-msgstr ""
-":hgdate: Datumsangabe. Gibt das Datum als Zahlpaar zurück:\n"
-" \"1157407993 25200\" (Unix Zeitstempel, Zeitzonenverschiebung)"
-
-msgid ""
-":isodate: Date. Returns the date in ISO 8601 format: \"2009-08-18 13:00\n"
-" +0200\"."
-msgstr ""
-":isodate: Datumsangabe. Gibt das Datum im ISO 8601-Format zurück:\n"
-" \"2009-08-18 13:00 +0200\"."
-
-msgid ""
-":isodatesec: Date. Returns the date in ISO 8601 format, including\n"
-" seconds: \"2009-08-18 13:00:13 +0200\". See also the rfc3339date\n"
-" filter."
-msgstr ""
-":isodatesec: Datumsangabe. Gibt das Datum im ISO 8601-Format inklusive\n"
-" Sekunden zurück: \"2009-08-18 13:00 +0200\". Siehe auch den\n"
-" rfc3339date-Filter."
-
-msgid ":localdate: Date. Converts a date to local date."
-msgstr ""
-":localdate: Datumsangabe. Konvertiert ein Datum in das lokale Datumsformat."
-
-msgid ":nonempty: Any text. Returns '(none)' if the string is empty."
-msgstr ""
-":nonempty: Beliebiger Text. Gibt '(none)' für eine leere Zeichenkette\n"
-" zurück."
-
-msgid ""
-":obfuscate: Any text. Returns the input text rendered as a sequence of\n"
-" XML entities."
-msgstr ""
-":obfuscate: Beliebiger Text. Gibt den Text als Folge von XML-Entitäten\n"
-" zurück."
-
-msgid ""
-":person: Any text. Returns the name before an email address,\n"
-" interpreting it as per RFC 5322."
-msgstr ""
-":person: Beliebiger Text. Gibt den Text vor einer E-Mail-Adresse\n"
-" zurück, interpretiert als RFC 5322."
-
-msgid ""
-" >>> person('foo@bar')\n"
-" 'foo'\n"
-" >>> person('Foo Bar <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo Bar\" <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo \"buz\" Bar\" <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> # The following are invalid, but do exist in real-life\n"
-" ...\n"
-" >>> person('Foo \"buz\" Bar <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> person('\"Foo Bar <foo@bar>')\n"
-" 'Foo Bar'"
-msgstr ""
-
-msgid ""
-":rfc3339date: Date. Returns a date using the Internet date format\n"
-" specified in RFC 3339: \"2009-08-18T13:00:13+02:00\"."
-msgstr ""
-":rfc3339date: Datumsangabe. Gibt das Datum im Internet-Datumsformat,\n"
-" spezifiziert im RFC 3339, zurück: \"2009-08-18T13:00:13+02:00\"."
-
-msgid ""
-":rfc822date: Date. Returns a date using the same format used in email\n"
-" headers: \"Tue, 18 Aug 2009 13:00:13 +0200\"."
-msgstr ""
-":rfc822date: Datumsangabe. Gibt das Datum im gleichen Format zurück,\n"
-" das auch in Kopfzeilen von E-Mails verwendet wird:\n"
-" \"Tue, 18 Aug 2009 13:00:13 +0200\"."
-
-msgid ""
-":short: Changeset hash. Returns the short form of a changeset hash,\n"
-" i.e. a 12 hexadecimal digit string."
-msgstr ""
-":short: Prüfsumme. Gibt die Kurzform der Prüfsumme zurück, d.h.\n"
-" als 12 Zeichen lange hexadezimale Zeichenkette."
-
-msgid ""
-":shortbisect: Any text. Treats `text` as a bisection status, and\n"
-" returns a single-character representing the status (G: good, B: bad,\n"
-" S: skipped, U: untested, I: ignored). Returns single space if `text`\n"
-" is not a valid bisection status."
-msgstr ""
-":shortbisect: Beliebiger text. Behandelt `text` als Teilungsstatus, und\n"
-" gibt einen repräsentatives Buchstaben zurück (G: gut, B: schlecht,\n"
-" S: übersprungen, U: ungetestet, I: ignoriert). Wenn `text` kein\n"
-" gültiger Teilungsstatus ist, wird ein Leerzeichen zurückgegeben."
-
-msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
-msgstr ":shortdate: Datumsangabe. Gibt ein Datum wie \"2006-09-18\" zurück."
-
-msgid ""
-":stringify: Any type. Turns the value into text by converting values into\n"
-" text and concatenating them."
-msgstr ""
-":stringify: Beliebiger Typ. Wandelt jeden Wert in einen Text um, indem die\n"
-" Werte in Zeichenketten konvertiert und dann aneinander gehängt werden."
-
-msgid ":strip: Any text. Strips all leading and trailing whitespace."
-msgstr ""
-":strip: Beliebiger Text. Entfernt jeden führenden und überhängenden\n"
-" Leerraum."
-
-msgid ""
-":stripdir: Treat the text as path and strip a directory level, if\n"
-" possible. For example, \"foo\" and \"foo/bar\" becomes \"foo\"."
-msgstr ""
-":stripdir: Behandelt den Text als Pfadangabe und entfernt das letzte\n"
-" Verzeichnis, wenn möglich. Zum Beispiel wird aus \"foo\" und \"foo/bar//"
-"\" \n"
-" dann \"bar\"."
-
-msgid ""
-":tabindent: Any text. Returns the text, with every line except the\n"
-" first starting with a tab character."
-msgstr ""
-":tabindent: Beliebiger Text. Gibt den Text zurück, wobei jede Zeile bis\n"
-" auf die erste mit einem Tabulator eingerückt ist."
-
-msgid ""
-":urlescape: Any text. Escapes all \"special\" characters. For example,\n"
-" \"foo bar\" becomes \"foo%20bar\"."
-msgstr ""
-":urlescape: Beliebiger Text. Maskiert alle \"besonderen\" Zeichen.\n"
-" Aus \"foo bar\" wird zum Beispiel \"foo%20bar\"."
-
-msgid ""
-":user: Any text. Returns a short representation of a user name or email\n"
-" address."
-msgstr ""
-":user: Beliebiger Text. Gibt die Kurzdarstellung eines Benutzernamens\n"
-" oder einer E-Mail-Adresse zurück."
-
-msgid ":emailuser: Any text. Returns the user portion of an email address."
-msgstr ""
-":emailuser: Beliebiger Text. Gibt den Nutzerteil einer E-Mail-Adresse\n"
-" (vor dem @-Zeichen) zurück."
-
-msgid ":author: String. The unmodified author of the changeset."
-msgstr ":author: Zeichenkette. Der unveränderte Autor eines Änderungssatzes."
-
-msgid ":bisect: String. The changeset bisection status."
-msgstr ":bisect: Zeichenkette. Der bisect Status des Änderungssatzes."
-
-msgid ""
-":branch: String. The name of the branch on which the changeset was\n"
-" committed."
-msgstr ""
-":branch: Zeichenkette. Der Name des Zweiges, in dem der Änderungssatz\n"
-" versioniert wurde."
-
-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."
-
-msgid ""
-":bookmarks: List of strings. Any bookmarks associated with the\n"
-" changeset."
-msgstr ""
-":bookmarks: Liste von Zeichenketten. Alle Lesezeichen, die diesem\n"
-" Änderungssatz zugewiesen wurden."
-
-msgid ":children: List of strings. The children of the changeset."
-msgstr ":children: Liste von Zeichenketten. Die Kinder dieses Änderungssatzes."
-
-msgid ":date: Date information. The date when the changeset was committed."
-msgstr ""
-":date: Datumsangabe. Das Datum, wann ein Änderungssatz versioniert wurde."
-
-msgid ":desc: String. The text of the changeset description."
-msgstr ":desc: Zeichenkette. Der Text der Beschreibung eines Änderungssatzes."
-
-msgid ""
-":diffstat: String. Statistics of changes with the following format:\n"
-" \"modified files: +added/-removed lines\""
-msgstr ""
-":diffstat: Zeichenkette. Statistik über die Änderungen in dem folgenden\n"
-" Format: \"geänderte Dateien: +hinzugefügt/-entfernte Zeilen\""
-
-msgid ":file_adds: List of strings. Files added by this changeset."
-msgstr ":file_adds: Liste von Zeichenketten. Alle hinzugefügten Dateien."
-
-msgid ""
-":file_copies: List of strings. Files copied in this changeset with\n"
-" their sources."
-msgstr ""
-":file_copies_switch: Liste von Zeichenketten. Dateien, die in diesem\n"
-" Änderungssatz kopiert wurden, zusammen mit den Quelldateien."
-
-msgid ""
-":file_copies_switch: List of strings. Like \"file_copies\" but displayed\n"
-" only if the --copied switch is set."
-msgstr ""
-":file_copies_switch: Liste von Zeichenketten. Wie \"file_copies\", wird\n"
-" aber nur angezeigt, wenn der Schalter --copied gesetzt wurde."
-
-msgid ":file_dels: List of strings. Files removed by this changeset."
-msgstr ":file_dels: Liste von Zeichenketten. Alle gelöschten Dateien."
-
-msgid ":file_mods: List of strings. Files modified by this changeset."
-msgstr ":file_mods: Liste von Zeichenketten. Alle geänderten Dateien."
-
-msgid ""
-":files: List of strings. All files modified, added, or removed by this\n"
-" changeset."
-msgstr ""
-":files: Liste von Zeichenketten. Alle geänderten, hinzugefügten oder\n"
-" gelöschten Dateien dieses Änderungssatzes."
-
-msgid ""
-":latesttag: String. Most recent global tag in the ancestors of this\n"
-" changeset."
-msgstr ""
-":latesttag: Zeichenkette. Aktuellstes globales Tag in den Nachfahren\n"
-" dieses Änderungssatzes."
-
-msgid ":latesttagdistance: Integer. Longest path to the latest tag."
-msgstr ":latesttagdistance: Zahl. Längster Pfad zum aktuellsten Tag."
-
-msgid ""
-":node: String. The changeset identification hash, as a 40 hexadecimal\n"
-" digit string."
-msgstr ""
-":node: Zeichenkette. Die Prüfsumme, die einen Änderungssatz identifiziert,\n"
-" als 40 Zeichen lange hexadezimale Zeichenkette."
-
-msgid ":phase: String. The changeset phase name."
-msgstr ":phase: Zeichenkette. Der Name der Phase des Änderungssatzes."
-
-msgid ":phaseidx: Integer. The changeset phase index."
msgstr ""
-msgid ":rev: Integer. The repository-local changeset revision number."
-msgstr ""
-":rev: Zahl. Die für dieses Projektarchiv geltende Nummer eines\n"
-" Änderungssatzes."
-
-msgid ":tags: List of strings. Any tags associated with the changeset."
-msgstr ""
-":tags: Liste von Zeichenketten. Alle Tags, die diesem Änderungssatz\n"
-" zugewiesen wurden."
-
-#, python-format
+#, fuzzy, python-format
msgid "unknown method '%s'"
-msgstr "Unbekannte Method '%s'"
+msgstr "Unbekannte Revision '%s'"
+#, fuzzy
msgid "expected a symbol"
-msgstr "erwartete ein Symbol"
+msgstr "kein Symbol"
-#, python-format
+#, fuzzy, python-format
msgid "unknown function '%s'"
-msgstr "Unbekannte Funktion '%s'"
+msgstr "Unbekannte Revision '%s'"
msgid "expected template specifier"
msgstr ""
#, python-format
msgid "filter %s expects one argument"
-msgstr "Filter %s erwartet ein Argument"
+msgstr ""
msgid "unmatched quotes"
msgstr "unpassende Anführungszeichen"
@@ -21232,9 +16917,9 @@ msgstr "unpassende Anführungszeichen"
msgid "style not found: %s"
msgstr "Stil nicht gefunden: %s"
-#, python-format
+#, fuzzy, python-format
msgid "\"%s\" not in template map"
-msgstr "\"%s\" nicht in der Vorlagenzuordnungsdatei gefunden"
+msgstr "Anzeige unter Nutzung der Vorlagenzuordnungsdatei"
#, python-format
msgid "template file %s: %s"
@@ -21257,9 +16942,6 @@ msgstr "Zurückrollen abgeschlossen\n"
msgid "rollback failed - please run hg recover\n"
msgstr "Zurückrollen fehlgeschlagen - bitte führe hg recover aus\n"
-msgid "already have changeset "
-msgstr "Änderungssatz bereits vorhanden "
-
#, python-format
msgid "Not trusting file %s from untrusted user %s, group %s\n"
msgstr "Nicht vertrauenswürdige Datei %s vom Nutzer %s, Gruppe %s\n"
@@ -21273,12 +16955,12 @@ msgid "(deprecated '%%' in path %s=%s from %s)\n"
msgstr "(veraltete Angabe '%%' im Pfad %s=%s aus %s)\n"
#, python-format
-msgid "%s.%s is not a boolean ('%s')"
-msgstr "%s.%s ist kein boolescher Wert ('%s')"
+msgid "ignoring untrusted configuration option %s.%s = %s\n"
+msgstr "Ignoriere nicht vertrauenswürdige Einstellung %s.%s = %s\n"
#, python-format
-msgid "%s.%s is not an integer ('%s')"
-msgstr "%s.%s ist keine Zahl ('%s')"
+msgid "%s.%s not a boolean ('%s')"
+msgstr "%s.%s ist kein boolescher Wert ('%s')"
msgid "enter a commit username:"
msgstr "Geben Sie einen Benutzernamen für den Commit ein:"
@@ -21303,6 +16985,13 @@ msgstr "Unbekannte Antwort\n"
msgid "password: "
msgstr "Passwort: "
+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"
@@ -21324,28 +17013,83 @@ msgstr "Benutzer:"
msgid "http auth: user %s, password %s\n"
msgstr "HTTP-Auth: Benutzer %s, Passwort %s\n"
+msgid "kb"
+msgstr ""
+
+msgid "certificate checking requires Python 2.6"
+msgstr "Zur Überprüfung von Zertifikaten wird Python 2.6 benötigt"
+
+#, 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 ""
+
+#, fuzzy, python-format
+msgid "could not find web.cacerts: %s"
+msgstr "Konnte Abbildungsdatei %r nicht öffnen: %s"
+
+#, 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 "filename contains '%s', which is reserved on Windows"
-msgstr "Dateiname enthält '%s', was in Windows reserviert ist"
+msgid "path contains illegal component: %s"
+msgstr "Pfad enthält ungültige Komponente: %s"
#, python-format
-msgid "filename contains %r, which is invalid on Windows"
-msgstr "Dateiname enthält '%r', was in Windows ungültig ist"
+msgid "path %r is inside repo %r"
+msgstr "Pfad %r ist innerhalb des Archivs %r"
#, python-format
-msgid "filename ends with '%s', which is not allowed on Windows"
-msgstr "Dateiname endet mit '%s', was in Windows nicht erlaubt ist"
+msgid "path %r traverses symbolic link %r"
+msgstr "Pfad %r überschreitet symbolische Verknüpfung %r"
+
+#, python-format
+msgid "could not symlink to %r: %s"
+msgstr "Konnte symbolische Verknüpfung auf %r nicht erzeugen: %s"
msgid "check your clock"
-msgstr "überprüfen Sie ihre Uhr"
+msgstr ""
#, python-format
msgid "negative timestamp: %d"
-msgstr "negativer Zeitstempel: %d"
+msgstr ""
#, python-format
msgid "invalid date: %r"
@@ -21357,30 +17101,17 @@ msgstr "Datum überschreitet 32 Bit: %d"
#, python-format
msgid "negative date value: %d"
-msgstr "negativer Datumswert: %d"
+msgstr ""
#, python-format
msgid "impossible time zone offset: %d"
msgstr "Unmögliche Zeitzonen-Verschiebung: %d"
-msgid "dates cannot consist entirely of whitespace"
-msgstr "Ein Datum kann nicht nur aus Leerzeichen bestehen"
-
-msgid "invalid day spec, use '<DATE'"
-msgstr "Ungültige Datumsangabe, verwende '<DATUM'"
-
-msgid "invalid day spec, use '>DATE'"
-msgstr "Ungültige Datumsangabe, verwende '>DATUM'"
-
#, python-format
msgid "invalid day spec: %s"
msgstr "Ungültige Datumsangabe: %s"
#, python-format
-msgid "%s must be nonnegative (see 'hg help dates')"
-msgstr "%s muss nichtnegativ sein (siehe 'hg help dates')"
-
-#, python-format
msgid "%.0f GB"
msgstr "%.0f GB"
@@ -21424,9 +17155,6 @@ msgstr "%.0f Bytes"
msgid "no port number associated with service '%s'"
msgstr "Dem Dient '%s' ist keine Portnummer zugewiesen"
-msgid "file:// URLs can only refer to localhost"
-msgstr "file://-URLs können nur auf localhost verweisen"
-
msgid "cannot verify bundle or remote repos"
msgstr "Kann Bündel oder entfernte Projektarchive nicht verifizieren"
@@ -21607,56 +17335,392 @@ msgstr "entfernte Änderungen abrufen"
msgid "push failed:"
msgstr "Ãœbertragen fehlgeschlagen: %s"
-#~ msgid "The hook does not change bug status."
-#~ msgstr "Diese Erweiterung ändert den Status des Bugzilla-Tickets nicht."
+#~ msgid "win32console not found, please install pywin32\n"
+#~ msgstr "win32console nicht gefunden, bitte installiere pywin32\n"
+
+#~ msgid "Subversion python bindings could not be loaded"
+#~ msgstr "Pythons Subversion-Unterstützung konnte nicht geladen werden"
+
+#~ 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 ""
-#~ "bugzilla.regexp\n"
-#~ " Regular expression to match bug IDs in changeset commit message.\n"
-#~ " Must contain one \"()\" group. The default expression matches ``Bug\n"
-#~ " 1234``, ``Bug no. 1234``, ``Bug number 1234``, ``Bugs 1234,5678``,\n"
-#~ " ``Bug 1234 and 5678`` and variations thereof. Matching is case\n"
-#~ " insensitive."
+#~ " --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 ""
-#~ "bugzilla.regexp\n"
-#~ " Der Reguläre Ausdruck, mit dem Ticket-IDs in der Versionsmeldung "
-#~ "erkannt\n"
-#~ " werden. Er muss eine \"()\"-Gruppe enthalten. Der Standardwert "
-#~ "erkennt:\n"
-#~ " 'Bug 1234', 'Bug no. 1234', 'Bug number 1234', 'Bugs 1234,5678',\n"
-#~ " 'Bug 1234 and 5678' und Variationen. Großschreibung wird ignoriert."
+#~ " --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 "%s is not a valid revision in current branch"
-#~ msgstr "%s ist keine gültige Revision im aktuellen Zweig"
+#~ 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 "-G/--graph option is incompatible with --follow with file argument"
-#~ msgstr "Option -G/--graph ist inkompatibel zu --follow mit Dateiparameter"
+#~ 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 "hg glog [OPTION]... [FILE]"
-#~ msgstr "hg glog [OPTION]... [DATEI]"
+#~ 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 "import a patch"
-#~ msgstr "Importiert einen Patch"
+#~ msgid "queue directory updating\n"
+#~ msgstr "Aktualisiere Reihenverzeichnis\n"
#~ msgid ""
-#~ " When -f/--force is applied, all local changes in patched files\n"
-#~ " will be lost."
+#~ " 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 ""
-#~ " Wenn -f/--force angegeben ist, werden alle lokalen Änderungen in den\n"
-#~ " vom Patch betroffenen Dateien verlorengehen."
+#~ " 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 ""
-#~ "If you notice \"BROKEN PIPE\" error messages, you can disable them by\n"
-#~ "setting::"
+#~ "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 ""
-#~ "Wenn Sie \"BROKEN PIPE\"-Fehlermeldungen erhalten, können Sie diese über\n"
-#~ "die folgende Einstellung deaktivieren::"
+#~ "Mit ``formail`` (häufig durch das procmail-Paket installiert) können die\n"
+#~ "Nachrichten dann aus der mbox-Datei versendet werden::"
-#~ msgid "use \"hg -v help %s\" to show more info"
-#~ msgstr "Nutze \"hg -v help %s\" um mehr Informationen anzuzeigen"
+#~ 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 "follow takes no arguments"
-#~ msgstr "follow erwartet keine Argumente"
+#, 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 "outgoing takes one or two arguments"
-#~ msgstr "'outgoing' erwartet ein oder zwei Argumente"
+#~ 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 "user name not available - set USERNAME environment variable"
+#~ msgstr ""
+#~ "Benutzername nicht verfügbar - bitte setze die USERNAME Umgebungsvariable"
diff --git a/i18n/it.po b/i18n/it.po
index ccad9e8..ab44c93 100644
--- a/i18n/it.po
+++ b/i18n/it.po
@@ -5291,15 +5291,12 @@ msgstr "&Salta le modifiche rimanenti a questo file"
msgid "Record remaining changes to this &file"
msgstr "Registra le modifiche rimanenti a questo &file"
-#, fuzzy
msgid "&Done, skip remaining changes and files"
msgstr "&Fatto, salta le modifiche e i file rimanenti"
-#, fuzzy
msgid "Record &all changes to all remaining files"
msgstr "Registra &tutte le modifiche a tutti i file rimanenti"
-#, fuzzy
msgid "&Quit, recording no changes"
msgstr "&Esce, non registrando alcuna modifica"
@@ -6202,7 +6199,7 @@ msgstr "sto saltando il subrepository mancante: %s\n"
msgid "HG: Enter commit message. Lines beginning with 'HG:' are removed."
msgstr ""
-"HG: Inserisci il messaggio di commit. Le linee che iniziano con 'HG:' "
+"HG: Inserisci il messaggio di commit. Le linee che iniziano HG: con 'HG:' "
"vengono rimosse."
msgid "HG: Leave message empty to abort commit."
diff --git a/i18n/ja.po b/i18n/ja.po
index 1dd70c0..0c89697 100644
--- a/i18n/ja.po
+++ b/i18n/ja.po
@@ -1,7 +1,7 @@
# Japanese translation for Mercurial
# Mercurial 日本語翻訳
#
-# Copyright (C) 2009-2012 the Mercurial team
+# Copyright (C) 2009-2011 the Mercurial team
#
# ========================================
# ã€ç¿»è¨³ç”¨èªžé›†ã€‘
@@ -18,9 +18,9 @@
# cannot XXXX XXXX ãŒ(or ã«)失敗
# XXXX-ing YYYY YYYY ã‚’ XXXX 中 ※ メッセージ冒頭ã‹ã‚‰å§‹ã¾ã‚‹å ´åˆ
# YYYY ã‚’ XXXX ※ 「以後ã®å‡¦ç†ã¯ YYYY ã‚’ XXXX ã¨ã™ã‚‹ã€
-# ã¨ã„ã†ãƒ‹ãƒ¥ã‚¢ãƒ³ã‚¹ã®å ´åˆ
-# --XXXX option --XXXX ※ 「オプションã€ã§ã‚ã‚‹ã“ã¨ãŒè‡ªæ˜Žãªå ´åˆ
-# option --XXXX --XXXX ※ 「オプションã€ã§ã‚ã‚‹ã“ã¨ãŒè‡ªæ˜Žãªå ´åˆ
+# ã¨ã„ã†ãƒ‹ãƒ¥ã‚¢ãƒ³ã‚¹ï¾å ´åˆ
+# --XXXX option --XXXX ※ 「オプションã€ã§ã‚ã‚‹ã“ã¨ãŒè‡ªæ˜Žãªã®ã§
+# option --XXXX --XXXX ※ 「オプションã€ã§ã‚ã‚‹ã“ã¨ãŒè‡ªæ˜Žãªã®ã§
# invalid XXXX XXXX ãŒä¸æ­£ã§ã™ or ä¸æ­£ãª XXXX
# malformed XXXX XXXX ãŒä¸æ­£ã§ã™ or ä¸æ­£ãª XXXX
#
@@ -30,64 +30,45 @@
#
# abort 中断
# add (構æˆç®¡ç†ã¸ã®)追加登録
-# alias 別å
-# amend 改変 (※ 『破壊的修正ã€ã®ãƒ‹ãƒ¥ã‚¢ãƒ³ã‚¹)
-# ancestor 祖先
# apply é©ç”¨
# archive アーカイブ
# argument(, with no) 引数(指定ãŒç„¡ã„å ´åˆ)
-# authenticate/-ion èªè¨¼
# author 作æˆè€…
-# authorize/-ation æ‰¿èª or アクセスå¯å¦
-# (※ HTTP 系エラー㯠authorization も「èªè¨¼ã€)
# backout 打ã¡æ¶ˆã—
-# basename パスå末尾è¦ç´ 
+# basename ベースå
# binary ãƒã‚¤ãƒŠãƒª
# branch ブランãƒ
# bundle( file) ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«
# change ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ/差分
# changegroup( file) ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«
-# changeset リビジョン (or 「ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã€ï¼ã€Œå¤‰æ›´å†…容ã€)
+# changeset ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ
# changeset hash ãƒãƒƒã‚·ãƒ¥å€¤
# changeset header ヘッダ情報
-# changeset log コミットログ
# checkout/update (作業領域ã®)æ›´æ–°
# close(of branch) 閉鎖
# command(, this) (本)コマンド
# commit コミット
# commit comment コミットログ
-# commit message コミットログ
# copy(of file, repo) 複製
# default(, by) 指定ãŒç„¡ã„å ´åˆ/通常ã¯
-# delete (作業領域ã‹ã‚‰ã®)ファイル削除
+# delete/remove (構æˆç®¡ç†ã‹ã‚‰ã®)登録除外
# diff 差分
# directory ディレクトリ
# dirstate dirstate
# entry エントリ
# extend(ed) æ‹¡å¼µ
# extension (Mercurialã®)エクステンション
-# fold (revision/patch) (リビジョンï¼ãƒ‘ッãƒã®)ä½µåˆ
-# glob(, rooted at ...) ワイルドカード形å¼
-# (... ã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã«å¯¾ã—ã¦ã€
-# パス先頭ã‹ã‚‰ã®ãƒ‘ターンåˆè‡´ã§åˆ¤å®šã™ã‚‹)
-# graft 移æ¤
# hash identifier(s) ãƒãƒƒã‚·ãƒ¥å€¤
# head ヘッド
# head changeset(s) ヘッド
# header ヘッダ
# history(, revision) 変更履歴
-# hunk 差分
-# identifier ID
# import å–ã‚Šè¾¼ã¿(patch ç³»)/読ã¿è¾¼ã¿(module/extension)
-# immutable( revision) 改変ä¸èƒ½(リビジョン)
# interrupt 中断
-# largefile(s) 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«
# list of .... 列挙ã•ã‚ŒãŸ..../.... ã®ä¸€è¦§
# local (repo) 手元(ã®ãƒªãƒã‚¸ãƒˆãƒª)
-# lock ロック
# manifest マニフェスト or 管ç†å¯¾è±¡(一覧)
# merge マージ
-# must(A must B) A 㯠B ã—ã¦ãã ã•ã„
# node リビジョン
# note 備考
# patch パッãƒ
@@ -97,10 +78,7 @@
# push (追加リビジョンã®)å映
# push(patch) (パッãƒã®)é©ç”¨
# raise(of exception) (例外ã®)発生
-# reject(s) å´ä¸‹å·®åˆ†
-# remote(host) é éš”(ホスト)
# remote(repo) 連æºå…ˆ(リãƒã‚¸ãƒˆãƒª)
-# remove (構æˆç®¡ç†ã‹ã‚‰ã®)登録除外
# rename 改å
# repo(sitory) リãƒã‚¸ãƒˆãƒª/(.hg を指ã™å ´åˆã¯)管ç†é ˜åŸŸ
# resolve/unresolve (è¡çª)解消/(è¡çª)未解消
@@ -109,17 +87,15 @@
# schedule (add/remove ã®)予約
# search 探索
# server サーãƒ
-# source url (of subrepo) (副リãƒã‚¸ãƒˆãƒªã®)å‚照先 URL
# subrepo 副リãƒã‚¸ãƒˆãƒª
# summary è¦ç´„(情報)
# support(, not) (未)サãƒãƒ¼ãƒˆ
# support(, un) (未)サãƒãƒ¼ãƒˆ
# tag ã‚¿ã‚°
# tracked xxxx 構æˆç®¡ç†å¯¾è±¡ã® xxxx
-# tracked, un 未登録
-# type, xxxxx xxxx 種別
-# unknown xxxx 未知㮠xxxx
+# xxxxx type xxxx 種別
# user ユーザ
+# unknown xxxx 未知㮠xxxx
# working copy(of xxx) 作業領域(中㮠xxx)
# working directory 作業領域
# ========================================
@@ -128,7 +104,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Mercurial\n"
"Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2012-08-01 04:42+0900\n"
+"POT-Creation-Date: 2011-09-21 15:49+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"
@@ -177,16 +153,13 @@ msgid ""
msgstr ""
"アクセス制御用フックを使用ã™ã‚‹ã“ã¨ã§ã€ pretxnchangegroup ã‚„ pretxncommit\n"
"契機ã§æ›´æ–°å映をå—ç†ã—ãŸéš›ã«ã€ 指定ã•ã‚ŒãŸãƒ–ランãƒã‚„パスã«å¯¾ã—ã¦ã€\n"
-"アクセス (= 改変) ã®å¯å¦ã‚’制御ã§ãã¾ã™ã€‚"
+"書ãè¾¼ã¿ã®å¯å¦ã‚’制御ã§ãã¾ã™ã€‚"
msgid ""
"The authorization is matched based on the local user name on the\n"
"system where the hook runs, and not the committer of the original\n"
"changeset (since the latter is merely informative)."
msgstr ""
-"本エクステンションã§ã¯ã€ å„リビジョンã®ã‚³ãƒŸãƒƒãƒˆå®Ÿæ–½è€… (ã“ã®æƒ…å ±ã¯ã€\n"
-"ã‚ã¾ã‚Šæœ‰ç›Šã§ã¯ã‚ã‚Šã¾ã›ã‚“) ã®åå‰ã§ã¯ãªã〠フックãŒå®Ÿè¡Œã•ã‚Œã‚‹ç’°å¢ƒã§ã®ã€\n"
-"ログインユーザå情報をベースã«ã€ アクセスå¯å¦ãŒåˆ¤å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"The acl hook is best used along with a restricted shell like hgsh,\n"
@@ -196,16 +169,9 @@ msgid ""
"remote users share an account, because then there is no way to\n"
"distinguish them."
msgstr ""
-"ACL エクステンションã®ãƒ•ãƒƒã‚¯ã¯ã€ hgsh (※ 訳注: contrib æˆæžœç‰©ã¨ã—ã¦ã€\n"
-"é…布ã•ã‚Œã¦ã„ã¾ã™) ã®ã‚ˆã†ãªã€åˆ¶é™ä»˜ãã®ã‚·ã‚§ãƒ«ã¨ä½µç”¨ã™ã‚‹ã“ã¨ã§ã€\n"
-"push/pull 以外ã®æ“作ã«é–¢ã—ã¦ã€ ログイン済ã¿ãƒ¦ãƒ¼ã‚¶ã«å¯¾ã™ã‚‹æŠ‘止を行ã†ã€\n"
-"ã¨ã„ã†æ§˜ãªç”¨é€”ã«é©ã—ã¦ã„ã¾ã™ã€‚ ユーザãŒãƒ­ã‚°ã‚¤ãƒ³ã§ãる一般的ãªç’°å¢ƒã§ã¯ã€\n"
-"ユーザã«ã‚ˆã£ã¦è¨­å®šãŒç„¡åŠ¹åŒ–ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹ãŸã‚〠ACL フックã§ã®åˆ¶é™ã¯ã€\n"
-"安全ã¨ã¯è¨€ãˆã¾ã›ã‚“。 åŒä¸€ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’〠複数人ã§å…±æœ‰ã™ã‚‹ã‚ˆã†ãªå ´åˆã‚‚ã€\n"
-"アクセス元ã®ãƒ¦ãƒ¼ã‚¶ã‚’特定ã§ããªã„ãŸã‚〠安全ã¨ã¯è¨€ãˆã¾ã›ã‚“。"
msgid "The order in which access checks are performed is:"
-msgstr "アクセスå¯å¦ã®åˆ¤å®šé †åºã¯ã€ 以下ã®é€šã‚Šã§ã™:"
+msgstr ""
msgid ""
"1) Deny list for branches (section ``acl.deny.branches``)\n"
@@ -213,60 +179,38 @@ msgid ""
"3) Deny list for paths (section ``acl.deny``)\n"
"4) Allow list for paths (section ``acl.allow``)"
msgstr ""
-"1) ブランãƒã¸ã®ç¦æ­¢ä¸€è¦§ (``acl.deny.branches`` セクション)\n"
-"2) ブランãƒã¸ã®è¨±å¯ä¸€è¦§ (``acl.allow.branches`` セクション)\n"
-"3) パスã¸ã®ç¦æ­¢ä¸€è¦§ (``acl.deny`` セクション)\n"
-"4) パスã¸ã®è¨±å¯ä¸€è¦§ (``acl.allow`` セクション)"
msgid "The allow and deny sections take key-value pairs."
-msgstr "許å¯ï¼ç¦æ­¢ã®ã„ãšã‚Œã‚‚〠キーï¼å€¤ã®å¯¾ã§è¨­å®šã—ã¾ã™ã€‚"
+msgstr ""
msgid ""
"Branch-based Access Control\n"
-"---------------------------"
+"..........................."
msgstr ""
-"ブランãƒãƒ™ãƒ¼ã‚¹ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡\n"
-"----------------------------"
msgid ""
"Use the ``acl.deny.branches`` and ``acl.allow.branches`` sections to\n"
"have branch-based access control. Keys in these sections can be\n"
"either:"
msgstr ""
-"ブランãƒãƒ™ãƒ¼ã‚¹ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã«ã¯ã€ ``acl.deny.branches`` ãŠã‚ˆã³\n"
-"``acl.allow.branches`` セクションã§ã®è¨­å®šãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-"ã“れらã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã§ã¯ã€ 以下ã®ã„ãšã‚Œã‹ã‚’〠キーã¨ã—ã¦æŒ‡å®šã—ã¾ã™:"
msgid ""
"- a branch name, or\n"
"- an asterisk, to match any branch;"
msgstr ""
-"- ブランãƒåã€ãªã„ã—\n"
-"- 「全ブランãƒã€ã‚’æ„味ã™ã‚‹ã‚¢ã‚¹ã‚¿ãƒªã‚¹ã‚¯(``*``)"
msgid "The corresponding values can be either:"
-msgstr "キーã«å¯¾å¿œã™ã‚‹å€¤ã«ã¯ã€ 以下ã®ã„ãšã‚Œã‹ã‚’指定ã—ã¾ã™:"
+msgstr ""
msgid ""
"- a comma-separated list containing users and groups, or\n"
"- an asterisk, to match anyone;"
msgstr ""
-"- ユーザï¼ã‚°ãƒ«ãƒ¼ãƒ—ã®åå‰ã‚’〠カンマ区切りã§ä¸¦ã¹ãŸä¸€è¦§ã€ ãªã„ã—\n"
-"- 「全ã¦ã€ã‚’æ„味ã™ã‚‹ã‚¢ã‚¹ã‚¿ãƒªã‚¹ã‚¯"
-
-msgid ""
-"You can add the \"!\" prefix to a user or group name to invert the sense\n"
-"of the match."
-msgstr ""
-"ユーザï¼ã‚°ãƒ«ãƒ¼ãƒ—å指定ã®å†’é ­ã« \"!\" を付ã‘ã‚‹ã“ã¨ã§ã€ åˆè‡´åˆ¤å®šæ¡ä»¶ã‚’ã€\n"
-"å転ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
msgid ""
"Path-based Access Control\n"
-"-------------------------"
+"........................."
msgstr ""
-"パスベースã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡\n"
-"------------------------"
msgid ""
"Use the ``acl.deny`` and ``acl.allow`` sections to have path-based\n"
@@ -274,25 +218,16 @@ msgid ""
"a glob syntax by default). The corresponding values follow the same\n"
"syntax as the other sections above."
msgstr ""
-"パスベースã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã«ã¯ ``acl.deny`` ãŠã‚ˆã³ ``acl.allow``\n"
-"セクションã§ã®è¨­å®šãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ ã“れらã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã§ã¯ã€\n"
-"パスã®åˆè‡´åˆ¤å®šã‚’ã™ã‚‹ãƒ‘ターン (無指定時ã®è¨˜è¿°æ–‡æ³•ã¯ glob) ã‚’ã€\n"
-"キーã¨ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚ キーã«å¯¾å¿œã™ã‚‹å€¤ã®è¨˜è¿°æ–¹å¼ã¯ã€\n"
-"ä»–ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã¨åŒã˜ã§ã™ã€‚"
msgid ""
"Groups\n"
-"------"
+"......"
msgstr ""
-"グループ\n"
-"--------"
msgid ""
"Group names must be prefixed with an ``@`` symbol. Specifying a group\n"
"name has the same effect as specifying all the users in that group."
msgstr ""
-"グループåを記述ã™ã‚‹å ´åˆã€ 接頭辞ã¨ã—㦠``@`` を付与ã—ã¾ã™ã€‚\n"
-"グループå記述ã¯ã€ グループã«å±žã™ã‚‹å…¨ãƒ¦ãƒ¼ã‚¶ã®åˆ—挙ã¨ã€ åŒã˜åŠ¹æžœã‚’æŒã¡ã¾ã™ã€‚"
msgid ""
"You can define group members in the ``acl.groups`` section.\n"
@@ -300,20 +235,14 @@ msgid ""
"a Unix-like system, the list of users will be taken from the OS.\n"
"Otherwise, an exception will be raised."
msgstr ""
-"グループã®ãƒ¡ãƒ³ãƒãƒ¼ã¯ã€ ``acl.groups`` セクションã§å®šç¾©ã§ãã¾ã™ã€‚\n"
-"ã“ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã«ãŠã„ã¦ã€ グループåãŒå®šç¾©ã•ã‚Œã¦ã„ãªã„å ´åˆã€\n"
-"UNIX ç³»ã®ç’°å¢ƒä¸‹ã§ã‚ã‚Œã°ã€ グループã®ãƒ¡ãƒ³ãƒãƒ¼ã«é–¢ã™ã‚‹æƒ…å ±ã¯ã€\n"
-"OS ã‹ã‚‰å–å¾—ã•ã‚Œã¾ã™ã€‚ ãれ以外ã®å ´åˆã¯ã€ 例外ãŒç™ºç”Ÿã—ã¾ã™ã€‚"
msgid ""
"Example Configuration\n"
-"---------------------"
+"....................."
msgstr ""
-"設定例\n"
-"------"
msgid "::"
-msgstr "::"
+msgstr ""
msgid " [hooks]"
msgstr " [hooks]"
@@ -322,16 +251,12 @@ msgid ""
" # Use this if you want to check access restrictions at commit time\n"
" pretxncommit.acl = python:hgext.acl.hook"
msgstr ""
-" # コミット実行ã«åˆ¶é™ã‚’掛ã‘ãŸã„å ´åˆã®è¨­å®š\n"
-" pretxncommit.acl = python:hgext.acl.hook"
msgid ""
" # Use this if you want to check access restrictions for pull, push,\n"
" # bundle and serve.\n"
" pretxnchangegroup.acl = python:hgext.acl.hook"
msgstr ""
-" # pull push bundle serve 実行ã«åˆ¶é™ã‚’掛ã‘ãŸã„å ´åˆã®è¨­å®š\n"
-" pretxnchangegroup.acl = python:hgext.acl.hook"
msgid ""
" [acl]\n"
@@ -342,61 +267,42 @@ msgid ""
" # Default: serve\n"
" sources = serve"
msgstr ""
-" [acl]\n"
-" # 変更å映元種別ãŒã€ä»¥ä¸‹ã«åˆ—挙ã•ã‚Œã¦ã„ã‚‹å ´åˆã®ã¿ã€è¨±å¯ï¼ç¦æ­¢ã‚’è¡Œã„ã€\n"
-" # ãれ以外ã®å ´åˆã¯ã€åˆ¶é™ã‚’è¡Œã‚ãªã„。 指定å¯èƒ½ãªç¨®åˆ¥ã¯ã€http ãªã„ã—\n"
-" # ssh 経由ã§ã®å…¨ã‚¢ã‚¯ã‚»ã‚¹ã‚’指㙠\"serve\" ã‹ã€å¯¾å¿œã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã®\n"
-" # (ローカルã§ã®)実行ã«å¯¾å¿œã™ã‚‹ \"push\" \"pull\" \"bundle\" ã§ã™ã€‚\n"
-" # デフォルト値: serve\n"
-" sources = serve"
msgid " [acl.deny.branches]"
-msgstr " [acl.deny.branches]"
+msgstr ""
msgid ""
" # Everyone is denied to the frozen branch:\n"
" frozen-branch = *"
msgstr ""
-" # ã„ãšã‚Œã®ãƒ¦ãƒ¼ã‚¶ã‚‚ frozen-branch ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’ç¦æ­¢:\n"
-" frozen-branch = *"
msgid ""
" # A bad user is denied on all branches:\n"
" * = bad-user"
msgstr ""
-" # bad-user ã¯å…¨ã¦ã®ãƒ–ランãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’ç¦æ­¢:\n"
-" * = bad-user"
msgid " [acl.allow.branches]"
-msgstr " [acl.allow.branches]"
+msgstr ""
msgid ""
" # A few users are allowed on branch-a:\n"
" branch-a = user-1, user-2, user-3"
msgstr ""
-" # branch-a ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’特定ã®ãƒ¦ãƒ¼ã‚¶ã«ã®ã¿è¨±å¯:\n"
-" branch-a = user-1, user-2, user-3"
msgid ""
" # Only one user is allowed on branch-b:\n"
" branch-b = user-1"
msgstr ""
-" # branch-b ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’一人ã®ãƒ¦ãƒ¼ã‚¶ã«ã®ã¿è¨±å¯:\n"
-" branch-b = user-1"
msgid ""
" # The super user is allowed on any branch:\n"
" * = super-user"
msgstr ""
-" # super-user ã¯å…¨ã¦ã®ãƒ–ランãƒã«ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½:\n"
-" * = super-user"
msgid ""
" # Everyone is allowed on branch-for-tests:\n"
" branch-for-tests = *"
msgstr ""
-" # å…¨ã¦ã®ãƒ¦ãƒ¼ã‚¶ã¯ branch-for-tests ã«ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½:\n"
-" branch-for-tests = *"
msgid ""
" [acl.deny]\n"
@@ -404,171 +310,59 @@ msgid ""
" # checked. All users are granted access if acl.deny is not present.\n"
" # Format for both lists: glob pattern = user, ..., @group, ..."
msgstr ""
-" [acl.deny]\n"
-" # acl.allow よりも先ã«ã€ 本セクションã®è¨­å®šã«å¯¾ã—ã¦ç¢ºèªãŒå®Ÿæ–½ã•ã‚Œã¾ã™ã€‚\n"
-" # åˆè‡´ã™ã‚‹è¨­å®šãŒã‚ã£ãŸå ´åˆã€acl.allow セクションã®è¨­å®šã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚\n"
-" # acl.deny 設定ãŒç„¡ã„å ´åˆã€å…¨ãƒ¦ãƒ¼ã‚¶ã«ã‚¢ã‚¯ã‚»ã‚¹ãŒè¨±å¯ã•ã‚Œã¾ã™ã€‚\n"
-" # 記述形å¼: åˆè‡´ãƒ‘ターン = ユーザå, ..., @グループå, ..."
msgid ""
" # To match everyone, use an asterisk for the user:\n"
" # my/glob/pattern = *"
msgstr ""
-" # 全ユーザã«ãƒžãƒƒãƒã•ã›ã‚‹å ´åˆã¯ã€å€¤ã«ã‚¢ã‚¹ã‚¿ãƒªã‚¹ã‚¯ã‚’指定:\n"
-" # my/glob/pattern = *"
msgid ""
" # user6 will not have write access to any file:\n"
" ** = user6"
msgstr ""
-" # user6 ã¯å…¨ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã—ã¦ã‚¢ã‚¯ã‚»ã‚¹ç¦æ­¢:\n"
-" ** = user6"
msgid ""
" # Group \"hg-denied\" will not have write access to any file:\n"
" ** = @hg-denied"
msgstr ""
-" # グループ \"hg-denied\" ã¯å…¨ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã—ã¦ã‚¢ã‚¯ã‚»ã‚¹ç¦æ­¢:\n"
-" ** = @hg-denied"
msgid ""
" # Nobody will be able to change \"DONT-TOUCH-THIS.txt\", despite\n"
" # everyone being able to change all other files. See below.\n"
" src/main/resources/DONT-TOUCH-THIS.txt = *"
msgstr ""
-" # 全ユーザã«å¯¾ã—㦠\"DONT-TOUCH-THIS.txt\" ã¯ã‚¢ã‚¯ã‚»ã‚¹ç¦æ­¢ã€‚\n"
-" # (ä»–ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½ãªãƒ¦ãƒ¼ã‚¶ã§ã‚ã£ã¦ã‚‚åŒæ§˜)\n"
-" src/main/resources/DONT-TOUCH-THIS.txt = *"
msgid ""
" [acl.allow]\n"
" # if acl.allow is not present, all users are allowed by default\n"
" # empty acl.allow = no users allowed"
msgstr ""
-" [acl.allow]\n"
-" # 設定ファイル㫠acl.allow セクションãŒç„¡ã„å ´åˆã€å…¨ãƒ¦ãƒ¼ã‚¶ã«å¯¾ã—ã¦ã€\n"
-" # 全アクセスãŒè¨±å¯ã•ã‚Œã¾ã™ã€‚ 空㮠acl.allow セクションã¯ã€\n"
-" # 全ユーザã«å¯¾ã—ã¦ã€Œè¨±å¯ã‚’与ãˆãªã„ã€ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚"
msgid ""
" # User \"doc_writer\" has write access to any file under the \"docs\"\n"
" # folder:\n"
" docs/** = doc_writer"
msgstr ""
-" # ユーザ \"doc_writer\" 㯠\"docs\" é…下ã®ä»»æ„ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½:\n"
-" docs/** = doc_writer"
msgid ""
" # User \"jack\" and group \"designers\" have write access to any file\n"
" # under the \"images\" folder:\n"
" images/** = jack, @designers"
msgstr ""
-" # ユーザ \"jack\" ã¨ã‚°ãƒ«ãƒ¼ãƒ— \"designers\" 㯠\"images\" é…下ã®ä»»æ„ã®\n"
-" # ファイルã«ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½:\n"
-" images/** = jack, @designers"
msgid ""
-" # Everyone (except for \"user6\" and \"@hg-denied\" - see acl.deny above)\n"
-" # will have write access to any file under the \"resources\" folder\n"
-" # (except for 1 file. See acl.deny):\n"
+" # Everyone (except for \"user6\" - see acl.deny above) will have write\n"
+" # access to any file under the \"resources\" folder (except for 1\n"
+" # file. See acl.deny):\n"
" src/main/resources/** = *"
msgstr ""
-" # acl.deny ã§ç¦æ­¢ã•ã‚Œã¦ã„ã‚‹ \"user6\" ユーザãŠã‚ˆã³ \"hg-denied\"\n"
-" # グループã«å±žã™ã‚‹ãƒ¦ãƒ¼ã‚¶ä»¥å¤–ã®ã€å…¨ã¦ã®ãƒ¦ãƒ¼ã‚¶ã«å¯¾ã—ã¦\n"
-" # \"resources\" é…下ã®ä»»æ„ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ã€‚\n"
-" # 但㗠acl.deny ã§å…¨ãƒ¦ãƒ¼ã‚¶ã«ã‚¢ã‚¯ã‚»ã‚¹ç¦æ­¢ã•ã‚Œã¦ã„ã‚‹\n"
-" # src/main/resources/DONT-TOUCH-THIS.txt を除ã:\n"
-" src/main/resources/** = *"
msgid " .hgtags = release_engineer"
-msgstr " .hgtags = release_engineer"
-
-msgid ""
-"Examples using the \"!\" prefix\n"
-"............................."
-msgstr ""
-"æ¡ä»¶å転(\"!\")設定例\n"
-"..................."
-
-msgid ""
-"Suppose there's a branch that only a given user (or group) should be able "
-"to\n"
-"push to, and you don't want to restrict access to any other branch that may\n"
-"be created."
-msgstr ""
-"ä»®ã«ã€ 指定ユーザ (åˆã¯ã‚°ãƒ«ãƒ¼ãƒ—) ã®å±¥æ­´ã®ã¿ã‚’å映ã•ã›ãŸã„ブランãƒãŒã‚ã‚Šã€\n"
-"ブランãƒç”Ÿæˆã‚‚å«ã‚ã¦ã€ ãれ以外ã®ã‚¢ã‚¯ã‚»ã‚¹ã¯åˆ¶é™ã—ãŸããªã„ã€ã¨ã—ã¾ã™ã€‚"
-
-msgid ""
-"The \"!\" prefix allows you to prevent anyone except a given user or group "
-"to\n"
-"push changesets in a given branch or path."
-msgstr ""
-"\"!\" 指定を使ã†ã“ã¨ã§ã€ 指定ユーザï¼ã‚°ãƒ«ãƒ¼ãƒ—以外ã«ã‚ˆã‚‹å±¥æ­´ã®å映をã€\n"
-"特定ブランãƒï¼ãƒ‘スã«å¯¾ã—ã¦æŠ‘æ­¢ã§ãã¾ã™ã€‚"
-
-msgid ""
-"In the examples below, we will:\n"
-"1) Deny access to branch \"ring\" to anyone but user \"gollum\"\n"
-"2) Deny access to branch \"lake\" to anyone but members of the group \"hobbit"
-"\"\n"
-"3) Deny access to a file to anyone but user \"gollum\""
-msgstr ""
-"以下ã®è¨­å®šã«ã‚ˆã‚Š:\n"
-"1) ユーザ \"gollum\" 以外ã®ãƒ–ランム\"ring\" ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã€\n"
-"2) グループ \"hobbit\" 以外ã®ãƒ–ランム\"lake\" ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã€\n"
-"3) ユーザ \"gollum\" 以外㮠``/misty/mountains/cave/ring``\n"
-"ファイルã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ãŒã€ç¦æ­¢ã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-" [acl.allow.branches]\n"
-" # Empty"
msgstr ""
-" [acl.allow.branches]\n"
-" # 空"
-
-msgid ""
-" # 1) only 'gollum' can commit to branch 'ring';\n"
-" # 'gollum' and anyone else can still commit to any other branch.\n"
-" ring = !gollum"
-msgstr ""
-" # 1) ユーザ 'gollum' ã®ã¿ãŒãƒ–ランム'ring' ã«ã‚³ãƒŸãƒƒãƒˆå¯èƒ½ã€‚\n"
-" # ãã®ä»–ã®ãƒ–ランãƒã¸ã® 'gollum' ï¼ä»–ã®ãƒ¦ãƒ¼ã‚¶ã®ã‚³ãƒŸãƒƒãƒˆå¯å¦ã¯å¤‰ã‚らãšã€‚\n"
-" ring = !gollum"
-
-msgid ""
-" # 2) only members of the group 'hobbit' can commit to branch 'lake';\n"
-" # 'hobbit' members and anyone else can still commit to any other branch.\n"
-" lake = !@hobbit"
-msgstr ""
-" # 2) グループ 'hobbit' ã®ãƒ¡ãƒ³ãƒãƒ¼ã¿ãŒãƒ–ランム'lake' ã«ã‚³ãƒŸãƒƒãƒˆå¯èƒ½ã€‚\n"
-" # ãã®ä»–ã®ãƒ–ランãƒã¸ã® 'hobbit' ï¼ä»–ã®ãƒ¦ãƒ¼ã‚¶ã®ã‚³ãƒŸãƒƒãƒˆå¯å¦ã¯å¤‰ã‚らãšã€‚\n"
-" lake = !@hobbit"
-
-msgid " # You can also deny access based on file paths:"
-msgstr " # ファイルパスã«ã‚ˆã‚‹ã‚¢ã‚¯ã‚»ã‚¹ç¦æ­¢ã‚‚å¯èƒ½:"
-
-msgid ""
-" [acl.allow]\n"
-" # Empty"
-msgstr ""
-" [acl.allow]\n"
-" # 空"
-
-msgid ""
-" [acl.deny]\n"
-" # 3) only 'gollum' can change the file below;\n"
-" # 'gollum' and anyone else can still change any other file.\n"
-" /misty/mountains/cave/ring = !gollum"
-msgstr ""
-" [acl.deny]\n"
-" # 3) ユーザ 'gollum' ã®ã¿ãŒä»¥ä¸‹ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’変更å¯èƒ½ã€‚\n"
-" # ä»–ã®ãƒ•ã‚¡ã‚¤ãƒ«ã® 'gollum' ï¼ä»–ã®ãƒ¦ãƒ¼ã‚¶ã®æ”¹å¤‰å¯å¦ã¯å¤‰ã‚らãšã€‚\n"
-" /misty/mountains/cave/ring = !gollum"
#, python-format
msgid "group '%s' is undefined"
-msgstr "グループ '%s' ã¯æœªå®šç¾©ã§ã™"
+msgstr ""
#, python-format
msgid ""
@@ -583,58 +377,39 @@ msgstr ""
#, python-format
msgid "acl: user \"%s\" not allowed on branch \"%s\" (changeset \"%s\")"
msgstr ""
-"acl: ユーザ \"%s\" ã¯ãƒ–ランム\"%s\" ãŒè¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“(リビジョン \"%s\")"
#, python-format
-msgid "acl: user \"%s\" denied on \"%s\" (changeset \"%s\")"
-msgstr ""
-"acl: ユーザ \"%s\" ã¯ãƒ•ã‚¡ã‚¤ãƒ« \"%s\" ã§æ‹’å¦ã•ã‚Œã¾ã—ãŸ(リビジョン \"%s\")"
-
-#, python-format
-msgid "acl: user \"%s\" not allowed on \"%s\" (changeset \"%s\")"
-msgstr ""
-"acl: ユーザ \"%s\" ã¯ãƒ•ã‚¡ã‚¤ãƒ« \"%s\" ãŒè¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“(リビジョン \"%s\")"
+msgid "acl: access denied for changeset %s"
+msgstr "acl: ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ %s ã®ã‚¢ã‚¯ã‚»ã‚¹ã¯æ‹’å¦ã•ã‚Œã¾ã—ãŸ"
msgid "hooks for integrating with the Bugzilla bug tracker"
-msgstr "Bugzilla ãƒã‚°ç®¡ç†ã‚·ã‚¹ãƒ†ãƒ ã¨ã®é€£æºç”¨ãƒ•ãƒƒã‚¯é›†"
+msgstr ""
msgid ""
"This hook extension adds comments on bugs in Bugzilla when changesets\n"
"that refer to bugs by Bugzilla ID are seen. The comment is formatted using\n"
"the Mercurial template mechanism."
msgstr ""
-"本エクステンションã®ãƒ•ãƒƒã‚¯ã¯ã€ 記録ã•ã‚ŒãŸãƒªãƒ“ジョンã‹ã‚‰ã® Bugzilla ãƒã‚°\n"
-"ID 検出を契機ã«ã€ Bugzilla 上ã®ãƒã‚°æƒ…å ±ã«å¯¾ã—ã¦ã€ コメントを追加ã—ã¾ã™ã€‚\n"
-"Mercurial ã®ãƒ†ãƒ³ãƒ—レート機能を使ã†ã“ã¨ã§ã€ コメント形å¼ã‚’変更å¯èƒ½ã§ã™ã€‚"
-msgid ""
-"The bug references can optionally include an update for Bugzilla of the\n"
-"hours spent working on the bug. Bugs can also be marked fixed."
+msgid "The hook does not change bug status."
msgstr ""
-"コミットログã‹ã‚‰ã®ãƒã‚°IDã®æŠ½å‡ºã§ã¯ã€ Bugzilla ã®ã€Œä½œæ¥­æ™‚é–“ã€ã‚’æ›´æ–°ã™ã‚‹ã€\n"
-"所è¦æ™‚間情報ã®å–り出ã—ã‚‚å¯èƒ½ã§ã™ (オプション)。 ãƒã‚°çŠ¶æ…‹ã‚’「解決済ã¿ã€\n"
-"ã«ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚"
msgid "Three basic modes of access to Bugzilla are provided:"
-msgstr "Bugzilla ã¨ã®é€£æºæ–¹å¼ã¯ã€ 以下ã®3種類ã‹ã‚‰é¸æŠžã§ãã¾ã™:"
+msgstr ""
msgid ""
"1. Access via the Bugzilla XMLRPC interface. Requires Bugzilla 3.4 or later."
-msgstr "1. Bugzilla XMLRPC インタフェースを使用。 Bugzilla 3.4 以é™ãŒå¿…è¦ã€‚"
+msgstr ""
msgid ""
"2. Check data via the Bugzilla XMLRPC interface and submit bug change\n"
" via email to Bugzilla email interface. Requires Bugzilla 3.4 or later."
msgstr ""
-"2. データã®ç¢ºèªã« Bugzilla XMLRPC を〠コメントã®è¿½åŠ ã« Bugzilla\n"
-" メールインタフェースを使用。 Bugzilla 3.4 以é™ãŒå¿…è¦ã€‚"
msgid ""
"3. Writing directly to the Bugzilla database. Only Bugzilla installations\n"
" using MySQL are supported. Requires Python MySQLdb."
msgstr ""
-"3. Bugzilla データベースを直接æ“作。 MySQL を使用ã™ã‚‹ Bugzilla é™å®šã€‚\n"
-" Python MySQLdb ãŒå¿…è¦ã€‚"
msgid ""
"Writing directly to the database is susceptible to schema changes, and\n"
@@ -645,32 +420,16 @@ msgid ""
"MySQL user and password to have full access rights to the Bugzilla\n"
"database. For these reasons this access mode is now considered\n"
"deprecated, and will not be updated for new Bugzilla versions going\n"
-"forward. Only adding comments is supported in this access mode."
+"forward."
msgstr ""
-"データベースã®ç›´æŽ¥æ“作ã§ã®é€£æºã¯ã€ スキーマ変更ã®å½±éŸ¿ã‚’å—ã‘易ãã€\n"
-"且ã¤ã€ コメント追加通知ã®ãƒ¡ãƒ¼ãƒ«é€ä¿¡ã«ã€ 寄贈扱ㄠ(contrib) ã® Bugzilla\n"
-"スクリプトを必è¦ã¨ã—ã¾ã™ã€‚ Mercurial ã®å®Ÿè¡Œãƒ¦ãƒ¼ã‚¶ã®æ¨©é™ãŒãã®ã¾ã¾ã€\n"
-"ã“ã®ã‚¹ã‚¯ãƒªãƒ—トã®å®Ÿè¡Œæ¨©é™ã¨ãªã‚Šã¾ã™ãŒã€ Bugzilla ã®ç¨¼å‹•ãƒ›ã‚¹ãƒˆä¸Šã§ã®å®Ÿè¡Œã§ã€\n"
-"且㤠Bugzilla ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã®èª­ã¿å‡ºã—権é™ã‚’æŒã£ã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚\n"
-"ãã‚Œã«åŠ ãˆã¦ã€ Bugzilla データベースã«å¯¾ã—ã¦ã€ フルアクセスå¯èƒ½ãª MySQL\n"
-"ユーザã®ã€ ユーザåã¨ãƒ‘スワードãŒå¿…è¦ã¨ãªã‚Šã¾ã™ã€‚ 以上ã®æ¡ä»¶ã‹ã‚‰ã€\n"
-"ã“ã®é€£æºæ–¹å¼ã¯ã€ ç¾åœ¨ã¯éžæŽ¨å¥¨ã§ã‚り〠Bugzilla ã®æ›´æ–°ã«ã‚‚対応ã—ã¾ã›ã‚“。\n"
-"ã“ã®é€£æºæ–¹å¼ã§ã¯ã€ コメントã®è¿½åŠ ã®ã¿ãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã™ã€‚"
msgid ""
"Access via XMLRPC needs a Bugzilla username and password to be specified\n"
"in the configuration. Comments are added under that username. Since the\n"
"configuration must be readable by all Mercurial users, it is recommended\n"
"that the rights of that user are restricted in Bugzilla to the minimum\n"
-"necessary to add comments. Marking bugs fixed requires Bugzilla 4.0 and "
-"later."
+"necessary to add comments."
msgstr ""
-"XMLRPC 連æºã§ã¯ã€ Bugzilla ユーザåã¨ãƒ‘スワードを設定ファイルã«è¨˜è¿°ã—ã€\n"
-"当該ユーザã®æ¨©é™ã§ã‚³ãƒ¡ãƒ³ãƒˆãŒè¿½åŠ ã•ã‚Œã¾ã™ã€‚ ユーザåã¨ãƒ‘スワードã¯ã€\n"
-"当該リãƒã‚¸ãƒˆãƒªä¸Šã§ Mercurial を実行ã™ã‚‹ã€ 全ユーザã‹ã‚‰å‚ç…§å¯èƒ½ãªãŸã‚ã€\n"
-"コメント追加ã«å¿…è¦ãªæ¨©é™ã—ã‹æŒãŸãªã„〠Bugzilla 連æºå°‚用ユーザã§ã€\n"
-"é‹ç”¨ã™ã‚‹äº‹ã‚’推奨ã—ã¾ã™ã€‚ ãƒã‚°ã®çŠ¶æ…‹ã‚’「解決済ã¿ã€ (fixed) ã«ã™ã‚‹ã«ã¯ã€\n"
-"Bugzilla 4.0 版以é™ãŒå¿…è¦ã§ã™ã€‚"
msgid ""
"Access via XMLRPC/email uses XMLRPC to query Bugzilla, but sends\n"
@@ -679,26 +438,16 @@ msgid ""
"user, so the comment appears to come from the Mercurial user. In the event\n"
"that the Mercurial user email is not recognised by Bugzilla as a Bugzilla\n"
"user, the email associated with the Bugzilla username used to log into\n"
-"Bugzilla is used instead as the source of the comment. Marking bugs fixed\n"
-"works on all supported Bugzilla versions."
+"Bugzilla is used instead as the source of the comment."
msgstr ""
-"XMLRPC/email 連æºã§ã¯ã€ Bugzilla ã¸ã®å•ã„åˆã‚ã›ã« XMLRPC を使用ã—ã¾ã™ãŒã€\n"
-"ãƒã‚°ã¸ã®ã‚³ãƒ¡ãƒ³ãƒˆè¿½åŠ ã«ã¯ã€ メールを使用ã—ã¾ã™ã€‚ メール㮠From 欄ã«ã¯ã€\n"
-"å„リビジョンã«è¨˜éŒ²ã•ã‚ŒãŸãƒ¦ãƒ¼ã‚¶æƒ…報中ã®ã€ メールアドレスãŒä½¿ç”¨ã•ã‚Œã‚‹ãŸã‚〠\n"
-"å„リビジョンã®ä½œæˆè€…ã«ã‚ˆã£ã¦ã€ コメントãŒè¿½åŠ ã•ã‚ŒãŸã‚ˆã†ã«è¦‹ãˆã¾ã™ã€‚\n"
-"リビジョンã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹æƒ…å ±ãŒã€ Bugzilla ユーザã®ã‚‚ã®ã¨å¯¾å¿œã—ãªã„å ´åˆã€\n"
-"Bugzilla ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã§ä½¿ç”¨ã•ã‚Œã‚‹ãƒ¦ãƒ¼ã‚¶åã§ã€ メールãŒé€ä¿¡ã•ã‚Œã¾ã™ã€‚\n"
-"サãƒãƒ¼ãƒˆå¯¾è±¡ã®å…¨ã¦ã®ç‰ˆã® Bugzilla ã§ã€ ãƒã‚°ã®çŠ¶æ…‹ã‚’「解決ã€ã«ã§ãã¾ã™ã€‚"
msgid "Configuration items common to all access modes:"
-msgstr "全連æºæ–¹å¼ã§å…±é€šã®è¨­å®šé …ç›®ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™:"
+msgstr ""
msgid ""
"bugzilla.version\n"
" This access type to use. Values recognised are:"
msgstr ""
-"bugzilla.version\n"
-" 連æºæ–¹å¼ã®é¸æŠžã€‚ 指定å¯èƒ½ãªå€¤ã¯ä»¥ä¸‹ã®é€šã‚Š:"
msgid ""
" :``xmlrpc``: Bugzilla XMLRPC interface.\n"
@@ -709,87 +458,20 @@ msgid ""
" :``2.16``: MySQL access, Bugzilla 2.16 and up to but not\n"
" including 2.18."
msgstr ""
-" :``xmlrpc``: Bugzilla XMLRPC 経由ã§ã®é€£æº\n"
-" :``xmlrpc+email``: Bugzilla XMLRPC ã¨ãƒ¡ãƒ¼ãƒ«çµŒç”±ã§ã®é€£æº\n"
-" :``3.0``: MySQL 経由ã§ã®é€£æº: Bugzilla 3.0 以é™é™å®š\n"
-" :``2.18``: MySQL 経由ã§ã®é€£æº: Bugzilla 2.18 以上 3.0 未満é™å®š\n"
-" :``2.16``: MySQL 経由ã§ã®é€£æº: Bugzilla 2.16 以上 2.18 未満é™å®š"
msgid ""
"bugzilla.regexp\n"
-" Regular expression to match bug IDs for update in changeset commit "
-"message.\n"
-" It must contain one \"()\" named group ``<ids>`` containing the bug\n"
-" IDs separated by non-digit characters. It may also contain\n"
-" a named group ``<hours>`` with a floating-point number giving the\n"
-" hours worked on the bug. If no named groups are present, the first\n"
-" \"()\" group is assumed to contain the bug IDs, and work time is not\n"
-" updated. The default expression matches ``Bug 1234``, ``Bug no. 1234``,\n"
-" ``Bug number 1234``, ``Bugs 1234,5678``, ``Bug 1234 and 5678`` and\n"
-" variations thereof, followed by an hours number prefixed by ``h`` or\n"
-" ``hours``, e.g. ``hours 1.5``. Matching is case insensitive."
+" Regular expression to match bug IDs in changeset commit message.\n"
+" Must contain one \"()\" group. The default expression matches ``Bug\n"
+" 1234``, ``Bug no. 1234``, ``Bug number 1234``, ``Bugs 1234,5678``,\n"
+" ``Bug 1234 and 5678`` and variations thereof. Matching is case\n"
+" insensitive."
msgstr ""
-"bugzilla.regexp\n"
-" 状態更新対象ã®ãƒã‚°ID群を〠コミットログã‹ã‚‰æŠ½å‡ºã™ã‚‹ãŸã‚ã®æ­£è¦è¡¨ç¾ã€‚\n"
-" éžæ•°å€¤æ–‡å­—ã§åŒºåˆ‡ã‚‰ã‚ŒãŸãƒã‚°ID群ã«åˆè‡´ã™ã‚‹ ``<ids>`` åã®ã‚°ãƒ«ãƒ¼ãƒ—記述\n"
-" ( \"()\") ãŒå¿…é ˆã§ã™ã€‚ ãƒã‚°ã«å¯¾ã™ã‚‹ä½œæ¥­æ™‚間を表ã™ã€ 少数点数ã«åˆè‡´ã™ã‚‹\n"
-" ``<hours>`` åグループも記述å¯èƒ½ã§ã™ã€‚ åå‰ä»˜ãグループ記述ãŒç„¡ã„å ´åˆã€\n"
-" 最åˆã® \"()\" グループãŒãƒã‚°ID群ã«ã€ 作業時間ã®æ›´æ–°ã¯ç„¡ã—ã€\n"
-" ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚ デフォルトã®æ­£è¦è¡¨ç¾ã¯ ``Bug 1234``〠``Bug no.\n"
-" 1234``〠``Bug number 1234``〠``Bugs 1234,5678``〠``Bug 1234 and\n"
-" 5678`` ãŠã‚ˆã³é¡žä¼¼ã®å½¢å¼ã«åŠ ãˆã¦ã€ å‰ç½®è©žã« ``h`` ãªã„ã— ``hours``\n"
-" ãŒä»˜ã‘られãŸæ™‚é–“æ•° (例: ``hours 1.5``) ãŒç¶šãã‚‚ã®ã«åˆè‡´ã—ã¾ã™ã€‚\n"
-" 文字大å°ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-"bugzilla.fixregexp\n"
-" Regular expression to match bug IDs for marking fixed in changeset\n"
-" commit message. This must contain a \"()\" named group ``<ids>` "
-"containing\n"
-" the bug IDs separated by non-digit characters. It may also contain\n"
-" a named group ``<hours>`` with a floating-point number giving the\n"
-" hours worked on the bug. If no named groups are present, the first\n"
-" \"()\" group is assumed to contain the bug IDs, and work time is not\n"
-" updated. The default expression matches ``Fixes 1234``, ``Fixes bug "
-"1234``,\n"
-" ``Fixes bugs 1234,5678``, ``Fixes 1234 and 5678`` and\n"
-" variations thereof, followed by an hours number prefixed by ``h`` or\n"
-" ``hours``, e.g. ``hours 1.5``. Matching is case insensitive."
-msgstr ""
-"bugzilla.fixregexp\n"
-" 「解決済ã¿ã€åŒ–ã™ã‚‹ãƒã‚°ID群を〠コミットログã‹ã‚‰æŠ½å‡ºã™ã‚‹ãŸã‚ã®æ­£è¦è¡¨ç¾ã€‚\n"
-" éžæ•°å€¤æ–‡å­—ã§åŒºåˆ‡ã‚‰ã‚ŒãŸãƒã‚°ID群ã«åˆè‡´ã™ã‚‹ ``<ids>`` åã®ã‚°ãƒ«ãƒ¼ãƒ—記述\n"
-" ( \"()\") ãŒå¿…é ˆã§ã™ã€‚ ãƒã‚°ã«å¯¾ã™ã‚‹ä½œæ¥­æ™‚間を表ã™ã€ 少数点数ã«åˆè‡´ã™ã‚‹\n"
-" ``<hours>`` åグループも記述å¯èƒ½ã§ã™ã€‚ åå‰ä»˜ãグループ記述ãŒç„¡ã„å ´åˆã€\n"
-" 最åˆã® \"()\" グループãŒãƒã‚°ID群ã«ã€ 作業時間ã®æ›´æ–°ã¯ç„¡ã—ã€\n"
-" ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚ デフォルトã®æ­£è¦è¡¨ç¾ã¯ã€ ``Fixes 1234``〠``Fixes bug\n"
-" 1234``〠``Fixes bugs 1234,5678``〠``Fixes 1234 and 5678``\n"
-" ãŠã‚ˆã³é¡žä¼¼ã®å½¢å¼ã«åŠ ãˆã¦ã€ å‰ç½®è©žã« ``h`` ãªã„ã— ``hours``\n"
-" ãŒä»˜ã‘られãŸæ™‚é–“æ•° (例: ``hours 1.5``) ãŒç¶šãã‚‚ã®ã«åˆè‡´ã—ã¾ã™ã€‚\n"
-" 文字大å°ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-"bugzilla.fixstatus\n"
-" The status to set a bug to when marking fixed. Default ``RESOLVED``."
-msgstr ""
-"bugzilla.fixstatus\n"
-" ãƒã‚°ã‚’「解決ã€çŠ¶æ…‹ã«ã™ã‚‹éš›ã®ã€ŒçŠ¶æ…‹ã€å€¤ã€‚ デフォルト値:\n"
-" ``RESOLVED`` (対象済ã¿)"
-
-msgid ""
-"bugzilla.fixresolution\n"
-" The resolution to set a bug to when marking fixed. Default ``FIXED``."
-msgstr ""
-"bugzilla.fixresolution\n"
-" ãƒã‚°ã‚’「解決ã€çŠ¶æ…‹ã«ã™ã‚‹éš›ã®ã€Œå¯¾å‡¦æ–¹æ³•ã€å€¤ã€‚デフォルト値:\n"
-" ``FIXED`` (修正済ã¿)"
msgid ""
"bugzilla.style\n"
" The style file to use when formatting comments."
msgstr ""
-"bugzilla.style\n"
-" コメントã®æ•´å½¢ã«ä½¿ç”¨ã™ã‚‹ã‚¹ã‚¿ã‚¤ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã€‚"
msgid ""
"bugzilla.template\n"
@@ -797,9 +479,6 @@ msgid ""
" specified. In addition to the usual Mercurial keywords, the\n"
" extension specifies:"
msgstr ""
-"bugzilla.template\n"
-" コメントã®æ•´å½¢ã«ä½¿ç”¨ã™ã‚‹ãƒ†ãƒ³ãƒ—レート。 スタイルファイル指定よりもã€\n"
-" ã“ã¡ã‚‰ãŒå„ªå…ˆã—ã¾ã™ã€‚ 通常ã®ã‚‚ã®ã«åŠ ãˆã¦ã€ 以下ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ãŒä½¿ç”¨ã§ãã¾ã™:"
msgid ""
" :``{bug}``: The Bugzilla bug ID.\n"
@@ -807,17 +486,11 @@ msgid ""
" :``{webroot}``: Stripped pathname of the Mercurial repository.\n"
" :``{hgweb}``: Base URL for browsing Mercurial repositories."
msgstr ""
-" :``{bug}``: Bugzilla ã®ãƒã‚° ID\n"
-" :``{root}``: Mercurial リãƒã‚¸ãƒˆãƒªã®ãƒ•ãƒ«ãƒ‘ス\n"
-" :``{webroot}``: Mercurial リãƒã‚¸ãƒˆãƒªã®ã‚¹ãƒ©ãƒƒã‚·ãƒ¥é™¤å¤– (strip) 後パス\n"
-" :``{hgweb}``: Mercurial リãƒã‚¸ãƒˆãƒªã® URL 生æˆç”¨ã®ãƒ™ãƒ¼ã‚¹ URL"
msgid ""
" Default ``changeset {node|short} in repo {root} refers to bug\n"
" {bug}.\\ndetails:\\n\\t{desc|tabindent}``"
msgstr ""
-" 無指定ã®å ´åˆã€ ``リãƒã‚¸ãƒˆãƒª {root} ã®ãƒªãƒ“ジョン {node|short} ãŒãƒã‚°\n"
-" {bug} ã«é–¢é€£ã€‚\\n詳細:\\n\\t{desc|tabindent}`` ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid ""
"bugzilla.strip\n"
@@ -827,24 +500,15 @@ msgid ""
" ``/var/local/my-project`` with a strip of 2 gives a value for\n"
" ``{webroot}`` of ``my-project``. Default 0."
msgstr ""
-"bugzilla.strip\n"
-" テンプレートã«ãŠã‘ã‚‹ ``{webroot}`` 相当を得るãŸã‚ã«ã€ Mercurial\n"
-" リãƒã‚¸ãƒˆãƒªã®ãƒ‘ス (テンプレート㮠``{root}`` 相当) 冒頭ã‹ã‚‰ã€\n"
-" å–り除ãスラッシュã®æ•°ã€‚ 例ãˆã° ``{root}`` ㌠``/var/local/my-project``\n"
-" ã®ãƒªãƒã‚¸ãƒˆãƒªã§ã€ ``{webroot}`` ã‚’ ``my-project`` ã«ã™ã‚‹ãŸã‚ã«ã¯ã€\n"
-" strip ã« 2 を指定ã—ã¾ã™ã€‚ デフォルト値㯠0。"
msgid ""
"web.baseurl\n"
" Base URL for browsing Mercurial repositories. Referenced from\n"
" templates as ``{hgweb}``."
msgstr ""
-"web.baseurl\n"
-" Mercurial リãƒã‚¸ãƒˆãƒªã® URL 生æˆç”¨ãƒ™ãƒ¼ã‚¹ URL。 テンプレートキーワード\n"
-" ``{hgweb}`` ã§å‚ç…§å¯èƒ½ã€‚"
msgid "Configuration items common to XMLRPC+email and MySQL access modes:"
-msgstr "連æºæ–¹å¼ XMLRPC+email 㨠MySQL ã§å…±é€šã®è¨­å®šé …ç›®ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™:"
+msgstr ""
msgid ""
"bugzilla.usermap\n"
@@ -852,134 +516,94 @@ msgid ""
" mappings. If specified, the file should contain one mapping per\n"
" line::"
msgstr ""
-"bugzilla.usermap\n"
-" Mercurial ã®å„リビジョンã®ã€ 生æˆè€…情報ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ã€ Bugzilla\n"
-" ユーザã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ã€ 対応一覧ファイルã¸ã®ãƒ‘ス。 対象ファイルã¯ã€\n"
-" 1è¡Œ1対応付ã‘ã®ã€ 以下ã®å½¢å¼ã§è¨˜è¿°ã—ã¦ãã ã•ã„::"
msgid " committer = Bugzilla user"
-msgstr " リビジョン作æˆè€… = Bugzilla ユーザ"
+msgstr ""
msgid " See also the ``[usermap]`` section."
-msgstr " ``[usermap]`` セクションã®èª¬æ˜Žã‚‚å‚ç…§ã—ã¦ãã ã•ã„。"
+msgstr ""
msgid ""
"The ``[usermap]`` section is used to specify mappings of Mercurial\n"
"committer email to Bugzilla user email. See also ``bugzilla.usermap``.\n"
"Contains entries of the form ``committer = Bugzilla user``."
msgstr ""
-"``[usermap]`` セクションã¯ã€ Mercurial ã®å„リビジョンã®ã€\n"
-"生æˆè€…情報ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ã€ Bugzilla ユーザã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ã€\n"
-"対応付ã‘ã‚’è¡Œã„ã¾ã™ã€‚ ``bugzilla.usermap`` 設定ã®èª¬æ˜Žã‚‚å‚ç…§ã—ã¦ãã ã•ã„。\n"
-"記述形å¼ã¯ ``リビジョン生æˆè€… = Bugzilla ユーザ`` ã§ã™ã€‚"
msgid "XMLRPC access mode configuration:"
-msgstr "XMLRPC 連æºå›ºæœ‰ã®è¨­å®šé …ç›®ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™:"
+msgstr ""
msgid ""
"bugzilla.bzurl\n"
" The base URL for the Bugzilla installation.\n"
" Default ``http://localhost/bugzilla``."
msgstr ""
-"bugzilla.bzurl\n"
-" アクセス先 Bugzilla ã®ãƒ™ãƒ¼ã‚¹ URL。\n"
-" デフォルト値㯠``http://localhost/bugzilla`` 。"
msgid ""
"bugzilla.user\n"
" The username to use to log into Bugzilla via XMLRPC. Default\n"
" ``bugs``."
msgstr ""
-"bugzilla.user\n"
-" Bugzilla ã¨ã® XMLRPC 連æºã§ã€ ログインã«ä½¿ç”¨ã™ã‚‹ãƒ¦ãƒ¼ã‚¶å。\n"
-" デフォルト値㯠``bugs`` 。"
msgid ""
"bugzilla.password\n"
" The password for Bugzilla login."
msgstr ""
-"bugzilla.password\n"
-" Bugzilla 連æºã§ã€ ログインã«ä½¿ç”¨ã™ã‚‹ãƒ‘スワード。"
msgid ""
"XMLRPC+email access mode uses the XMLRPC access mode configuration items,\n"
"and also:"
msgstr ""
-"XMLRPC+email 経由ã§ã®é€£æºã§ã¯ã€ XMLRPC 経由連æºã«é–¢ã™ã‚‹è¨­å®šã«åŠ ãˆã¦ã€\n"
-"以下ã®è¨­å®šãŒå¿…è¦ã§ã™:"
msgid ""
"bugzilla.bzemail\n"
" The Bugzilla email address."
msgstr ""
-"bugzilla.bzemail\n"
-" Bugzilla ã¸é€ä¿¡ã™ã‚‹éš›ã®å®›å…ˆãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã€‚"
msgid ""
"In addition, the Mercurial email settings must be configured. See the\n"
"documentation in hgrc(5), sections ``[email]`` and ``[smtp]``."
msgstr ""
-"以上ã®è¨­å®šã«åŠ ãˆã¦ã€ Mercurial ã®ãƒ¡ãƒ¼ãƒ«è¨­å®šã‚‚å¿…è¦ã§ã™ã€‚ hgrc(5)\n"
-"ドキュメント (※ 訳注: :hg:`help config` ã§ã‚‚å‚ç…§å¯èƒ½) ã® ``[email]``\n"
-"ãŠã‚ˆã³ ``[smtp]`` セクションをå‚ç…§ã—ã¦ãã ã•ã„。"
msgid "MySQL access mode configuration:"
-msgstr "MySQL 経由連æºå›ºæœ‰ã®è¨­å®šé …ç›®ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™:"
+msgstr ""
msgid ""
"bugzilla.host\n"
" Hostname of the MySQL server holding the Bugzilla database.\n"
" Default ``localhost``."
msgstr ""
-"bugzilla.host\n"
-" Bugzilla データベースをæŒã¤ MySQL サーãƒã®ãƒ›ã‚¹ãƒˆå。\n"
-" デフォルト値㯠``localhost`` 。"
msgid ""
"bugzilla.db\n"
" Name of the Bugzilla database in MySQL. Default ``bugs``."
msgstr ""
-"bugzilla.db\n"
-" MySQL ã«ãŠã‘ã‚‹ Bugzilla データベースã®åå‰ã€‚ デフォルト値㯠``bugs`` 。"
msgid ""
"bugzilla.user\n"
" Username to use to access MySQL server. Default ``bugs``."
msgstr ""
-"bugzilla.user\n"
-" MySQL サーãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã«ä½¿ç”¨ã™ã‚‹ãƒ¦ãƒ¼ã‚¶å。 デフォルト値㯠``bugs`` 。"
msgid ""
"bugzilla.password\n"
" Password to use to access MySQL server."
msgstr ""
-"bugzilla.password\n"
-" MySQL サーãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã«ä½¿ç”¨ã™ã‚‹ãƒ‘スワード。"
msgid ""
"bugzilla.timeout\n"
" Database connection timeout (seconds). Default 5."
msgstr ""
-"bugzilla.timeout\n"
-" データベース接続ã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆæŒ‡å®š (å˜ä½:秒)。 デフォルト値㯠5。"
msgid ""
"bugzilla.bzuser\n"
" Fallback Bugzilla user name to record comments with, if changeset\n"
" committer cannot be found as a Bugzilla user."
msgstr ""
-"bugzilla.bzuser\n"
-" リビジョン生æˆè€…åãŒã€ Bugzilla ユーザã¨å¯¾å¿œã—ãªã„å ´åˆã«ã€\n"
-" コメント追加ã«ä½¿ç”¨ã™ã‚‹ Bugzilla ユーザå (予備設定)"
msgid ""
"bugzilla.bzdir\n"
" Bugzilla install directory. Used by default notify. Default\n"
" ``/var/www/html/bugzilla``."
msgstr ""
-"bugzilla.bzdir\n"
-" Bugzilla ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«å…ˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€‚ デフォルト㮠``notify``\n"
-" 設定ã«ãŠã„ã¦ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ デフォルト値㯠``/var/www/html/bugzilla`` 。"
msgid ""
"bugzilla.notify\n"
@@ -989,33 +613,20 @@ msgid ""
" version; from 2.18 it is \"cd %(bzdir)s && perl -T\n"
" contrib/sendbugmail.pl %(id)s %(user)s\"."
msgstr ""
-"bugzilla.notify\n"
-" ãƒã‚°æƒ…å ±ã®æ›´æ–°é€šçŸ¥ã‚’〠Bugzilla ã«ãƒ¡ãƒ¼ãƒ«é€ä¿¡ã•ã›ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã€‚\n"
-" 3ã¤ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ ``bzdir``〠``id`` (ãƒã‚° ID) ãŠã‚ˆã³ ``user``\n"
-" (リビジョン作æˆè€…ã® Bugzilla メールアドレス) ãŒã€ ç½®æ›æŒ‡å®šå¯èƒ½ã§ã™ã€‚\n"
-" デフォルト値㯠MySQL ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ä¾å­˜ã—ã¦ãŠã‚Šã€ 2.18 版以é™ã§ã¯ã€\n"
-" \"cd %(bzdir)s && perl -T contrib/sendbugmail.pl %(id)s %(user)s\"\n"
-" ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid "Activating the extension::"
-msgstr "エクステンションã®æœ‰åŠ¹åŒ–::"
+msgstr ""
msgid ""
" [extensions]\n"
" bugzilla ="
msgstr ""
-" [extensions]\n"
-" bugzilla ="
msgid ""
" [hooks]\n"
" # run bugzilla hook on every change pulled or pushed in here\n"
" incoming.bugzilla = python:hgext.bugzilla.hook"
msgstr ""
-" [hooks]\n"
-" # リビジョンãŒå½“該リãƒã‚¸ãƒˆãƒªã« push/pull ã§å–ã‚Šè¾¼ã¾ã‚ŒãŸå¥‘æ©Ÿã§\n"
-" # Bugzilla 連æºã®ãƒ•ãƒƒã‚¯ã‚’実行\n"
-" incoming.bugzilla = python:hgext.bugzilla.hook"
msgid "Example configurations:"
msgstr "設定例:"
@@ -1027,11 +638,6 @@ msgid ""
"collection of Mercurial repositories in ``/var/local/hg/repos/``,\n"
"with a web interface at ``http://my-project.org/hg``. ::"
msgstr ""
-"以下㯠XMLRPC 連æºã®è¨­å®šä¾‹ã§ã™ã€‚ ``http://my-project.org/bugzilla`` ã®\n"
-"Bugzilla ã¨é€£æºã—〠ユーザå ``bugmail@my-project.org``〠パスワード\n"
-"``plugh`` ã§ãƒ­ã‚°ã‚¤ãƒ³ã—ã¾ã™ã€‚ URL ``http://my-project.org/hg``\n"
-"é…下ã§ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã€ ``/var/local/hg/repos/`` é…下ã®è¤‡æ•°ãƒªãƒã‚¸ãƒˆãƒªã§ã®ã€\n"
-"設定共有を想定ã—ã¦ã„ã¾ã™::"
msgid ""
" [bugzilla]\n"
@@ -1044,22 +650,11 @@ msgid ""
" {desc}\\n\n"
" strip=5"
msgstr ""
-" [bugzilla]\n"
-" bzurl=http://my-project.org/bugzilla\n"
-" user=bugmail@my-project.org\n"
-" password=plugh\n"
-" version=xmlrpc\n"
-" template=Changeset {node|short} in {root|basename}.\n"
-" {hgweb}/{webroot}/rev/{node|short}\\n\n"
-" {desc}\\n\n"
-" strip=5"
msgid ""
" [web]\n"
" baseurl=http://my-project.org/hg"
msgstr ""
-" [web]\n"
-" baseurl=http://my-project.org/hg"
msgid ""
"XMLRPC+email example configuration. This uses the Bugzilla at\n"
@@ -1070,12 +665,6 @@ msgid ""
"are sent to the Bugzilla email address\n"
"``bugzilla@my-project.org``. ::"
msgstr ""
-"以下㯠XMLRPC+email 連æºã®è¨­å®šä¾‹ã§ã™ã€‚ ``http://my-project.org/bugzilla``\n"
-"ã® Bugzilla ã¨é€£æºã—〠ユーザå ``bugmail@my-project.org``〠パスワード\n"
-"``plugh`` ã§ãƒ­ã‚°ã‚¤ãƒ³ã—ã¾ã™ã€‚ URL ``http://my-project.org/hg``\n"
-"é…下ã§ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã€ ``/var/local/hg/repos/`` é…下ã®è¤‡æ•°ãƒªãƒã‚¸ãƒˆãƒªã§ã®ã€\n"
-"設定共有を想定ã—ã¦ã„ã¾ã™ã€‚ コメントã®è¿½åŠ ã¯ã€ Bugzilla ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹\n"
-"``bugzilla@my-project.org`` å®›ã«é€ä¿¡ã•ã‚Œã¾ã™::"
msgid ""
" [bugzilla]\n"
@@ -1089,23 +678,11 @@ msgid ""
" {desc}\\n\n"
" strip=5"
msgstr ""
-" [bugzilla]\n"
-" bzurl=http://my-project.org/bugzilla\n"
-" user=bugmail@my-project.org\n"
-" password=plugh\n"
-" version=xmlrpc\n"
-" bzemail=bugzilla@my-project.org\n"
-" template=Changeset {node|short} in {root|basename}.\n"
-" {hgweb}/{webroot}/rev/{node|short}\\n\n"
-" {desc}\\n\n"
-" strip=5"
msgid ""
" [usermap]\n"
" user@emaildomain.com=user.name@bugzilladomain.com"
msgstr ""
-" [usermap]\n"
-" user@emaildomain.com=user.name@bugzilladomain.com"
msgid ""
"MySQL example configuration. This has a local Bugzilla 3.2 installation\n"
@@ -1115,14 +692,6 @@ msgid ""
"with a collection of Mercurial repositories in ``/var/local/hg/repos/``,\n"
"with a web interface at ``http://my-project.org/hg``. ::"
msgstr ""
-"以下㯠MySQL 連æºã®è¨­å®šä¾‹ã§ã™ã€‚ ``/opt/bugzilla-3.2`` ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚ŒãŸ\n"
-"Bugzilla 3.2 を想定ã—ã¦ã„ã¾ã™ã€‚ MySQL サーãƒã®ãƒ›ã‚¹ãƒˆå㌠``localhost``ã€\n"
-"Bugzilla データベースå㌠``bugs``〠MySQL サーãƒã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã«ã€\n"
-"ユーザå ``bugs``〠パスワード ``XYZZY`` を使用ã—ã¾ã™ã€‚ URL\n"
-"``http://my-project.org/hg``\n"
-"é…下ã§ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã€\n"
-"``/var/local/hg/repos/`` é…下ã®è¤‡æ•°ãƒªãƒã‚¸ãƒˆãƒªã§ã®ã€\n"
-"設定共有を想定ã—ã¦ã„ã¾ã™::"
msgid ""
" [bugzilla]\n"
@@ -1136,30 +705,17 @@ msgid ""
" {desc}\\n\n"
" strip=5"
msgstr ""
-" [bugzilla]\n"
-" host=localhost\n"
-" password=XYZZY\n"
-" version=3.0\n"
-" bzuser=unknown@domain.com\n"
-" bzdir=/opt/bugzilla-3.2\n"
-" template=Changeset {node|short} in {root|basename}.\n"
-" {hgweb}/{webroot}/rev/{node|short}\\n\n"
-" {desc}\\n\n"
-" strip=5"
msgid "All the above add a comment to the Bugzilla bug record of the form::"
msgstr ""
-"上記設定例㧠Bugzilla ã«è¿½åŠ ã•ã‚Œã‚‹ã‚³ãƒ¡ãƒ³ãƒˆã¯ã€ å…¨ã¦ä»¥ä¸‹ã®å½¢å¼ã¨ãªã‚Šã¾ã™::"
msgid ""
" Changeset 3b16791d6642 in repository-name.\n"
" http://my-project.org/hg/repository-name/rev/3b16791d6642"
msgstr ""
-" Changeset 3b16791d6642 in repository-name.\n"
-" http://my-project.org/hg/repository-name/rev/3b16791d6642"
msgid " Changeset commit comment. Bug 1234.\n"
-msgstr " (※ ã“ã“ã«ã¯å„リビジョンã®ã‚³ãƒŸãƒƒãƒˆãƒ­ã‚°ãŒå±•é–‹ã•ã‚Œã¾ã™)\n"
+msgstr ""
#, python-format
msgid "python mysql support not available: %s"
@@ -1181,10 +737,6 @@ msgid "unknown database schema"
msgstr "未知ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚¹ã‚­ãƒ¼ãƒž"
#, python-format
-msgid "bug %d does not exist\n"
-msgstr "ãƒã‚° %d ã¯å­˜åœ¨ã—ã¾ã›ã‚“\n"
-
-#, python-format
msgid "bug %d already knows about changeset %s\n"
msgstr "ãƒã‚° %d ã«ã¨ã£ã¦ãƒªãƒ“ジョン %s ã¯æ—¢çŸ¥ã®ã‚‚ã®ã§ã™\n"
@@ -1218,12 +770,6 @@ msgstr "%s ã® buzilla ユーザ ID を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“"
msgid "cannot find bugzilla user id for %s or %s"
msgstr "%s ã‹ %s ã® buzilla ユーザ ID を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“"
-msgid "Bugzilla/MySQL cannot update bug state\n"
-msgstr "Bugzilla/MySQL 連æºã§ã¯ãƒã‚°çŠ¶æ…‹ã‚’æ›´æ–°ã§ãã¾ã›ã‚“\n"
-
-msgid "Bugzilla/XMLRPC needs Bugzilla 4.0 or later to mark bugs fixed\n"
-msgstr "Bugzilla/XMLRPC 連æºã§ã®ãƒã‚°çŠ¶æ…‹æ›´æ–°ã¯ Bugzilla 4.0 以é™ãŒå¿…è¦ã§ã™\n"
-
msgid "configuration 'bzemail' missing"
msgstr "'bzemail' 設定ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
@@ -1235,10 +781,6 @@ msgstr "デフォルト㮠bugzilla ユーザ %s ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒè¦‹ã
msgid "bugzilla version %s not supported"
msgstr "bugzilla ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s ã¯æœªã‚µãƒãƒ¼ãƒˆã§ã™"
-#, python-format
-msgid "%s: invalid hours\n"
-msgstr "%s: ä¸æ­£ãªæ™‚間指定ã§ã™\n"
-
msgid ""
"changeset {node|short} in repo {root} refers to bug {bug}.\n"
"details:\n"
@@ -1250,21 +792,14 @@ msgstr ""
#, python-format
msgid "hook type %s does not pass a changeset id"
-msgstr "フック種別 %s ã«ãƒªãƒ“ジョン ID ãŒæŒ‡å®šã•ã‚Œã¾ã›ã‚“ã§ã—ãŸ"
+msgstr "フック種別 %s ã«ã‚ˆã‚Šãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®å‡¦ç†ãŒæŠ‘æ­¢ã•ã‚Œã¾ã—ãŸ"
#, python-format
msgid "Bugzilla error: %s"
msgstr "Bugzilla エラー: %s"
-msgid "command to display child changesets (DEPRECATED)"
-msgstr "å­ãƒªãƒ“ジョン表示ã®ã‚³ãƒžãƒ³ãƒ‰ (éžæŽ¨å¥¨)"
-
-msgid ""
-"This extension is deprecated. You should use :hg:`log -r\n"
-"\"children(REV)\"` instead.\n"
-msgstr ""
-"本エクステンションã¯éžæŽ¨å¥¨ã§ã™ã€‚:hg:`log -r \"children(REV)\"`\n"
-"を使用ã—ã¦ãã ã•ã„。\n"
+msgid "command to display child changesets"
+msgstr "å­ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆè¡¨ç¤ºã®ã‚³ãƒžãƒ³ãƒ‰"
msgid "show the children of the given or working directory revision"
msgstr "指定リビジョンã®å­ãƒªãƒ“ジョンã®è¡¨ç¤º"
@@ -1281,7 +816,7 @@ msgstr ""
" ã‚ã‚‹å ´åˆã¯ã€ 指定リビジョンã®å­ãƒªãƒ“ジョンを表示ã—ã¾ã™ã€‚ 引数ã¨ã—ã¦\n"
" ファイルãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ ファイルãŒ(作業領域ã®ãƒªãƒ“ジョンãªã„ã—\n"
" --rev ã§æŒ‡å®šã•ã‚ŒãŸãƒªãƒ“ジョンã®å¾Œã§)最後ã«å¤‰æ›´ã•ã‚ŒãŸãƒªãƒ“ジョンを表示\n"
-" ã—ã¾ã™ã€‚\n"
+" ã—ã¾ã™ã€‚\n"
" "
msgid "REV"
@@ -1297,7 +832,7 @@ msgid "command to display statistics about repository history"
msgstr "変更履歴ã®çµ±è¨ˆæƒ…報表示ã®ã‚³ãƒžãƒ³ãƒ‰"
#, python-format
-msgid "revision %d is a merge, ignoring...\n"
+msgid "Revision %d is a merge, ignoring...\n"
msgstr "マージ実施リビジョン %d を無視...\n"
msgid "analyzing"
@@ -1380,7 +915,7 @@ msgstr ""
#, python-format
msgid "skipping malformed alias: %s\n"
-msgstr "ä¸æ­£ãªå½¢å¼ã®åˆ¥åã¯ç„¡è¦–ã—ã¾ã™: %s\n"
+msgstr "ä¸æ­£ãªå½¢å¼ã®ã‚¨ã‚¤ãƒªã‚¢ã‚¹ã¯ç„¡è¦–ã—ã¾ã™: %s\n"
msgid "count rate for the specified revision or range"
msgstr "処ç†å¯¾è±¡ã¨ã™ã‚‹ç‰¹å®šãƒªãƒ“ジョンï¼ç¯„囲ã®æŒ‡å®š"
@@ -1395,7 +930,7 @@ msgid "TEMPLATE"
msgstr "テンプレート"
msgid "template to group changesets"
-msgstr "リビジョン表示をグループ化ã™ã‚‹ãŸã‚ã®ãƒ†ãƒ³ãƒ—レート"
+msgstr "表示をグループ化ã™ã‚‹ãŸã‚ã®ãƒ†ãƒ³ãƒ—レート"
msgid "FORMAT"
msgstr "書å¼"
@@ -1404,7 +939,7 @@ msgid "strftime-compatible format for grouping by date"
msgstr "日時グループ化ã®ãŸã‚ã® strftime 互æ›å½¢å¼ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ"
msgid "count rate by number of changesets"
-msgstr "リビジョン数ã§çµ±è¨ˆ"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆæ•°ã§çµ±è¨ˆ"
msgid "sort by key (default: sort by count)"
msgstr "キーã«ã‚ˆã‚‹æ•´åˆ—(無指定時: 統計é‡ã§æ•´åˆ—)"
@@ -1431,11 +966,6 @@ msgid ""
"diff-related commands to highlight additions, removals, diff headers,\n"
"and trailing whitespace."
msgstr ""
-"本エクステンションã¯ã€ status ãŠã‚ˆã³ resolve コマンドã®å ´åˆã¯ã€\n"
-"å„ファイル状態ã«å¿œã˜ã¦ã€ qseries コマンドã®å ´åˆã¯ã€ パッãƒã®é©ç”¨çŠ¶æ³\n"
-"(é©ç”¨æ¸ˆã¿ã€ 未é©ç”¨ã€ ä¸åœ¨) ã«å¿œã˜ã¦ã€ diff 関連コマンドã®å ´åˆã¯ã€\n"
-"追加〠削除〠差分ヘッダãŠã‚ˆã³æœ«å°¾ç©ºç™½æ–‡å­—ã®å„è¦ç´ ã«å¯¾å¿œã—ã¦ã€\n"
-"出力ã«å¯¾ã™ã‚‹è‰²ä»˜ã‘ã‚’è¡Œã„ã¾ã™ã€‚"
msgid ""
"Other effects in addition to color, like bold and underlined text, are\n"
@@ -1444,13 +974,9 @@ msgid ""
"available, then effects are rendered with the ECMA-48 SGR control\n"
"function (aka ANSI escape codes)."
msgstr ""
-"色付ã‘以外ã®åŠ¹æžœã¨ã—ã¦ã€ 文字ã®å¼·èª¿ã‚„〠下線付ã‘ã‚‚å¯èƒ½ã§ã™ã€‚\n"
-"色付ã‘や効果を行ã†ãŸã‚ã®ã€ 端末情報ã®å–å¾—ã«ã¯ã€ デフォルトã§ã¯ terminfo\n"
-"データベースãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ terminfo ãŒä½¿ç”¨ã§ããªã„å ´åˆã¯ã€\n"
-"ECMA-48 SGR 制御機能 (「ANSI エスケープコードã€ã®åˆ¥å) を使用ã—ã¾ã™ã€‚"
msgid "Default effects may be overridden from your configuration file::"
-msgstr "デフォルトã®æŒ™å‹•ã¯ã€ 設定ファイルã§ã®è¨˜è¿°ã«ã‚ˆã‚Šä¸Šæ›¸ãã•ã‚Œã¾ã™::"
+msgstr ""
msgid ""
" [color]\n"
@@ -1461,31 +987,18 @@ msgid ""
" status.unknown = magenta bold underline\n"
" status.ignored = black bold"
msgstr ""
-" [color]\n"
-" status.modified = blue bold underline red_background\n"
-" status.added = green bold\n"
-" status.removed = red bold blue_background\n"
-" status.deleted = cyan bold underline\n"
-" status.unknown = magenta bold underline\n"
-" status.ignored = black bold"
msgid ""
" # 'none' turns off all effects\n"
" status.clean = none\n"
" status.copied = none"
msgstr ""
-" # 'none' 指定ã«ã‚ˆã‚ŠåŠ¹æžœãŒå…¨ã¦ç„¡åŠ¹åŒ–ã•ã‚Œã¾ã™\n"
-" status.clean = none\n"
-" status.copied = none"
msgid ""
" qseries.applied = blue bold underline\n"
" qseries.unapplied = black bold\n"
" qseries.missing = red bold"
msgstr ""
-" qseries.applied = blue bold underline\n"
-" qseries.unapplied = black bold\n"
-" qseries.missing = red bold"
msgid ""
" diff.diffline = bold\n"
@@ -1498,25 +1011,14 @@ msgid ""
" diff.changed = white\n"
" diff.trailingwhitespace = bold red_background"
msgstr ""
-" diff.diffline = bold\n"
-" diff.extended = cyan bold\n"
-" diff.file_a = red bold\n"
-" diff.file_b = green bold\n"
-" diff.hunk = magenta\n"
-" diff.deleted = red\n"
-" diff.inserted = green\n"
-" diff.changed = white\n"
-" diff.trailingwhitespace = bold red_background"
msgid ""
" resolve.unresolved = red bold\n"
" resolve.resolved = green bold"
msgstr ""
-" resolve.unresolved = red bold\n"
-" resolve.resolved = green bold"
msgid " bookmarks.current = green"
-msgstr " bookmarks.current = green"
+msgstr ""
msgid ""
" branches.active = none\n"
@@ -1524,17 +1026,6 @@ msgid ""
" 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 ""
-" tags.normal = green\n"
-" tags.local = black bold"
-msgstr ""
-" tags.normal = green\n"
-" tags.local = black bold"
msgid ""
"The available effects in terminfo mode are 'blink', 'bold', 'dim',\n"
@@ -1544,12 +1035,6 @@ msgid ""
"Some may not be available for a given terminal type, and will be\n"
"silently ignored."
msgstr ""
-"terminfo 使用時ã«æœ‰åŠ¹ãªåŠ¹æžœã¯ã€ 'blink' 'bold' 'dim' 'inverse'\n"
-"'invisible' 'italic' 'standout' ãŠã‚ˆã³ 'underline' ã§ã™ã€‚\n"
-"ECMA-48 使用時ã«æœ‰åŠ¹ãªåŠ¹æžœã¯ã€ 'bold' 'inverse' 'italic' ãŠã‚ˆã³\n"
-"'underline' ã§ã™ã€‚ å„指定ãŒå®Ÿéš›ã®è¡¨ç¤ºã«ä¸Žãˆã‚‹åŠ¹æžœã¯ã€\n"
-"端末ã®å®Ÿè£…ã«ä¾å­˜ã—ã¾ã™ã€‚ 当該端末ã§ç„¡åŠ¹ãªåŠ¹æžœã«é–¢ã—ã¦ã¯ã€\n"
-"警告等を発ã›ãšã«ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
msgid ""
"Note that on some systems, terminfo mode may cause problems when using\n"
@@ -1560,31 +1045,18 @@ msgid ""
"pass through all terminal control codes, not just color control\n"
"codes)."
msgstr ""
-"pager エクステンションã§ã® ``less -R`` 使用ã¨ã€ terminfo 使用ã®ä½µç”¨ã¯ã€\n"
-"稼動環境ã«ã‚ˆã£ã¦ã¯ã€ 色付ã‘ãŒæ­£ã—ã機能ã—ãªã„å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚\n"
-"``less -R`` ㌠ECMA-48 ã®è‰²æŒ‡å®šã—ã‹è§£é‡ˆã—ãªã„ã“ã¨ã‹ã‚‰ã€ less\n"
-"ãŒè§£é‡ˆã—ãªã„色指定制御㌠terminfo 使用時ã«é™¤å¤–ã•ã‚Œã‚‹å ´åˆãŒã‚ã‚‹ãŸã‚ã§ã™ã€‚\n"
-"ã“ã®ã‚ˆã†ãªå ´åˆã€ 端末指定㫠ansi (ãªã„ã— auto) を用ã„ã‚‹ã‹ã€ ``less -r``\n"
-"(色指定以外ã®å…¨ã¦ã®ç«¯æœ«åˆ¶å¾¡ãŒã€ é€éŽçš„ã«ä¼æ’­ã•ã‚Œã¾ã™) を使用ã™ã‚‹ã“ã¨ã§ã€\n"
-"状æ³ãŒæ”¹å–„ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
"Because there are only eight standard colors, this module allows you\n"
"to define color names for other color slots which might be available\n"
"for your terminal type, assuming terminfo mode. For instance::"
msgstr ""
-"terminfo 使用ã®å ´åˆã€ 基本色定義ãŒ8色ã®ã¿ãªã®ã§ã€ 本エクステンションã§ã¯ã€\n"
-"利用端末種別ã«å¿œã˜ã¦åˆ©ç”¨å¯èƒ½ã«ãªã‚‹ (ã§ã‚ã‚ã†) 色スロットã«å¯¾ã—ã¦ã€\n"
-"色å称を定義ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚例ãˆã°::"
msgid ""
" color.brightblue = 12\n"
" color.pink = 207\n"
" color.orange = 202"
msgstr ""
-" color.brightblue = 12\n"
-" color.pink = 207\n"
-" color.orange = 202"
msgid ""
"to set 'brightblue' to color slot 12 (useful for 16 color terminals\n"
@@ -1593,43 +1065,29 @@ msgid ""
"defined colors may then be used as any of the pre-defined eight,\n"
"including appending '_background' to set the background to that color."
msgstr ""
-"上記設定ã«ã‚ˆã‚Šã€ 'brightblue' ã¨ã„ã†åå‰ãŒã€ 色スロット 12\n"
-"(16色端末ã§åˆ©ç”¨å¯èƒ½ã€‚ 16色端末ã§ã¯ã€ 明度ã®é«˜ã„色ãŒã€ 後åŠ8色ã§å®šç¾©)\n"
-"ã¨ã—ã¦ã€ ã¾ãŸ 'pink' ãŠã‚ˆã³ 'orange' ã¨ã„ã†åå‰ãŒã€ 256色 xterm ã®ã€\n"
-"色立体中ã«å®šç¾©ã•ã‚Œã¾ã™ã€‚ 色åã« '_background' を付加ã™ã‚‹ã“ã¨ã§ã€\n"
-"背景色を指定å¯èƒ½ãªç‚¹ã‚‚ãµãã‚ã¦ã€ æ–°è¦å®šç¾©ã•ã‚ŒãŸè‰²å称ã¯ã€\n"
-"事å‰å®šç¾©ã•ã‚ŒãŸ8色ã¨åŒæ§˜ã«ä½¿ãˆã¾ã™ã€‚"
msgid ""
"By default, the color extension will use ANSI mode (or win32 mode on\n"
"Windows) if it detects a terminal. To override auto mode (to enable\n"
"terminfo mode, for example), set the following configuration option::"
msgstr ""
-"本エクステンションã¯ã€ 端末検出時ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆç«¯æœ«è¨­å®šã¨ã—㦠ANSI\n"
-"(Windows 環境ã®å ´åˆã¯ win32) を使用ã—ã¾ã™ã€‚ ã“ã®è‡ªå‹•åˆ¤å®šæ©Ÿèƒ½ã¯ã€\n"
-"以下ã®ã‚ˆã†ãªè¨˜è¿° (ã“ã®ä¾‹ã§ã¯ã€ terminfo 使用ã®å¼·åˆ¶) ã§ä¸Šæ›¸ãã§ãã¾ã™::"
msgid ""
" [color]\n"
" mode = terminfo"
msgstr ""
-" [color]\n"
-" mode = terminfo"
msgid ""
"Any value other than 'ansi', 'win32', 'terminfo', or 'auto' will\n"
"disable color.\n"
msgstr ""
-"'ansi' 'win32' 'terminfo' ãªã„ã— 'auto' 以外ã®å€¤ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€\n"
-"色付ã‘ã¯ç„¡åŠ¹åŒ–ã•ã‚Œã¾ã™ã€‚\n"
msgid "no terminfo entry for setab/setaf: reverting to ECMA-48 color\n"
msgstr ""
-"terminfo ã® setab/setaf エントリãŒã‚ã‚Šã¾ã›ã‚“: ECMA-48 color を使用ã—ã¾ã™\n"
#, python-format
msgid "warning: failed to set color mode to %s\n"
-msgstr "警告: カラーモード %s ã®è¨­å®šã«å¤±æ•—\n"
+msgstr ""
#, python-format
msgid "ignoring unknown color/effect %r (configured in color.%s)\n"
@@ -1651,7 +1109,7 @@ msgid "convert a foreign SCM repository to a Mercurial one."
msgstr "別 SCM ã®ãƒªãƒã‚¸ãƒˆãƒªã‹ã‚‰ Mercurial リãƒã‚¸ãƒˆãƒªã¸ã®å¤‰æ›"
msgid " Accepted source formats [identifiers]:"
-msgstr " 変æ›å…ƒã¨ã—ã¦ä½¿ç”¨å¯èƒ½ãªå½¢å¼ã¯ä»¥ä¸‹ã®é€šã‚Š [括弧内ã¯è­˜åˆ¥å]:"
+msgstr ""
msgid ""
" - Mercurial [hg]\n"
@@ -1664,61 +1122,38 @@ msgid ""
" - Bazaar [bzr]\n"
" - Perforce [p4]"
msgstr ""
-" - Mercurial [hg]\n"
-" - CVS [cvs]\n"
-" - Darcs [darcs]\n"
-" - git [git]\n"
-" - Subversion [svn]\n"
-" - Monotone [mtn]\n"
-" - GNU Arch [gnuarch]\n"
-" - Bazaar [bzr]\n"
-" - Perforce [p4]"
msgid " Accepted destination formats [identifiers]:"
-msgstr " 変æ›å…ˆã¨ã—ã¦ä½¿ç”¨å¯èƒ½ãªå½¢å¼ã¯ä»¥ä¸‹ã®é€šã‚Š [括弧内ã¯è­˜åˆ¥å]:"
+msgstr ""
msgid ""
" - Mercurial [hg]\n"
" - Subversion [svn] (history on branches is not preserved)"
msgstr ""
-" - Mercurial [hg]\n"
-" - Subversion [svn] (ブランãƒä¸Šã®å±¥æ­´ã¯ç¶­æŒã•ã‚Œã¾ã›ã‚“)"
msgid ""
" If no revision is given, all revisions will be converted.\n"
" Otherwise, convert will only import up to the named revision\n"
" (given in a format understood by the source)."
msgstr ""
-" リビジョン指定ãŒç„¡ã„å ´åˆã€ å…¨ã¦ã®å±¥æ­´ãŒå¤‰æ›ã•ã‚Œã¾ã™ã€‚\n"
-" リビジョンãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã¯ã€ 当該リビジョンã¾ã§ãŒå¤‰æ›å¯¾è±¡ã§ã™ã€‚\n"
-" (変æ›å…ƒå½¢å¼ã«ã¨ã£ã¦ã€ å—ç†å¯èƒ½ãªå½¢å¼ã§æŒ‡å®šã—ã¦ãã ã•ã„)"
msgid ""
" If no destination directory name is specified, it defaults to the\n"
" basename of the source with ``-hg`` appended. If the destination\n"
" repository doesn't exist, it will be created."
msgstr ""
-" 変æ›å…ˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªæŒ‡å®šãŒç„¡ã„å ´åˆã€ 変æ›å…ƒãƒ‘スåã®æœ«å°¾è¦ç´ ã« ``-hg``\n"
-" を追加ã—ãŸã‚‚ã®ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ 変æ›å…ˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒå­˜åœ¨ã—ãªã„å ´åˆã€\n"
-" æ–°è¦ä½œæˆã•ã‚Œã¾ã™ã€‚"
msgid ""
" By default, all sources except Mercurial will use --branchsort.\n"
" Mercurial uses --sourcesort to preserve original revision numbers\n"
" order. Sort modes have the following effects:"
msgstr ""
-" 特ã«æŒ‡å®šã®ç„¡ã„å ´åˆã€ Mercurial 以外ã®å¤‰æ›å…ƒã«å¯¾ã—ã¦ã¯ã€ --branchsort\n"
-" ãŒé©ç”¨ã•ã‚Œã¾ã™ã€‚ Mercurial å½¢å¼ã«å¯¾ã—ã¦ã¯ã€ --sourcesort é©ç”¨ã«ã‚ˆã‚Šã€\n"
-" 変æ›å…ƒã®ãƒªãƒ“ジョン番å·ãŒç¶­æŒã•ã‚Œã¾ã™ã€‚ å„並ã³æ›¿ãˆæŒ‡å®šã«ã¯ã€\n"
-" 以下ã®ã‚ˆã†ãªåŠ¹æžœãŒã‚ã‚Šã¾ã™:"
msgid ""
" --branchsort convert from parent to child revision when possible,\n"
" which means branches are usually converted one after\n"
" the other. It generates more compact repositories."
msgstr ""
-" --branchsort 親ã‹ã‚‰å­ã¸ã®å¤‰æ›å®Ÿæ–½ã«ã‚ˆã‚Šã€ å„ブランãƒæ¯Žã«ã€\n"
-" 順次変æ›ã•ã‚Œã¾ã™ã€‚ 比較的コンパクトãªå¤‰æ›çµæžœã«ãªã‚Šã¾ã™ã€‚"
msgid ""
" --datesort sort revisions by date. Converted repositories have\n"
@@ -1726,15 +1161,11 @@ msgid ""
" magnitude larger than the same ones generated by\n"
" --branchsort."
msgstr ""
-" --datesort 日付順ã§å¤‰æ›ã—ã¾ã™ã€‚ 変æ›çµæžœã®ãƒ­ã‚°ã®ä½“è£ã¯è‰¯ã„ã§ã™ãŒã€\n"
-" --branchsort 指定ã«å¯¾ã—ã¦ã€ 変æ›çµæžœãŒå¤§ãããªã‚Šã¾ã™ã€‚"
msgid ""
" --sourcesort try to preserve source revisions order, only\n"
" supported by Mercurial sources."
msgstr ""
-" --sourcesort 変æ›å…ƒã®ãƒªãƒ“ジョン順åºã‚’維æŒã—ã¾ã™ã€‚ 変æ›å…ƒå½¢å¼ãŒ\n"
-" Mercurial ã§ã®ã¿ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã™ã€‚"
msgid ""
" If ``REVMAP`` isn't given, it will be put in a default location\n"
@@ -1742,23 +1173,15 @@ msgid ""
" text file that maps each source commit ID to the destination ID\n"
" for that revision, like so::"
msgstr ""
-" ``REVMAP`` ãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ 既定ã®å ´æ‰€ (``<変æ›å…ˆ>/.hg/shamap``)\n"
-" ã«æ›¸ã出ã•ã‚Œã¾ã™ã€‚ ``REVMAP`` ファイルã®å„è¡Œã¯ã€ 変æ›å…ƒã‚³ãƒŸãƒƒãƒˆæ¯Žã«ã€\n"
-" 変æ›å…ƒã¨å¤‰æ›å…ˆã§ã® ID ã®å¯¾å¿œé–¢ä¿‚ (「キー/値ã€ã®å¯¾ã§è¡¨ç¾) ã‚’ã€\n"
-" 以下ã®å½¢å¼ã§åˆ—挙ã—ãŸã‚‚ã®ã«ãªã‚Šã¾ã™::"
msgid " <source ID> <destination ID>"
-msgstr " <変æ›å…ƒã§ã® ID> <変æ›å…ˆã§ã® ID>"
+msgstr ""
msgid ""
" If the file doesn't exist, it's automatically created. It's\n"
" updated on each commit copied, so :hg:`convert` can be interrupted\n"
" and can be run repeatedly to copy new commits."
msgstr ""
-" ファイルãŒå­˜åœ¨ã—ãªã„å ´åˆã€ 自動的ã«ä½œæˆã•ã‚Œã¾ã™ã€‚ ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€\n"
-" 変æ›å…ƒã‚³ãƒŸãƒƒãƒˆãŒå¤‰æ›å…ˆã«æ ¼ç´ã•ã‚Œã‚‹æ¯Žã«ã€ æ›´æ–°ã•ã‚Œã¾ã™ã®ã§ã€\n"
-" :hg:`convert` を中断ã—ãŸå ´åˆã§ã‚‚〠å復的ã«å®Ÿè¡Œã™ã‚‹å ´åˆã§ã‚‚ã€\n"
-" æ–°è¦ã®ã‚³ãƒŸãƒƒãƒˆã®ã¿ãŒå¤‰æ›å¯¾è±¡ã«ãªã‚Šã¾ã™ã€‚"
msgid ""
" The authormap is a simple text file that maps each source commit\n"
@@ -1766,33 +1189,27 @@ msgid ""
" that use unix logins to identify authors (eg: CVS). One line per\n"
" author mapping and the line format is::"
msgstr ""
-" authormap ã¯ã€ 変æ›å…ƒã¨å¤‰æ›å…ˆã®é–“ã§ã€ コミットã®ãƒ¦ãƒ¼ã‚¶åを変æ›ã—ã¾ã™ã€‚\n"
-" UNIX çš„ãªãƒ­ã‚°ã‚¤ãƒ³åを〠èªè¨¼ã«ä½¿ç”¨ã—ã¦ã„ã‚‹ SCM ツール (例: CVS)\n"
-" ã‹ã‚‰ã®å¤‰æ›ã«ä¾¿åˆ©ã§ã™ã€‚ authormap ファイルã®å„è¡Œã¯ã€ 以下ã®å½¢å¼ã‚’æŒã¡ã€\n"
-" 1行1ユーザ変æ›ã¨ãªã‚Šã¾ã™::"
msgid " source author = destination author"
-msgstr " 変æ›å…ƒãƒ¦ãƒ¼ã‚¶å = 変æ›å…ˆãƒ¦ãƒ¼ã‚¶å"
+msgstr ""
msgid " Empty lines and lines starting with a ``#`` are ignored."
-msgstr " 空行㨠``#`` ã§å§‹ã¾ã‚‹è¡Œã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
+msgstr ""
msgid ""
" The filemap is a file that allows filtering and remapping of files\n"
" and directories. Each line can contain one of the following\n"
" directives::"
msgstr ""
-" filemap ファイルã¯ã€ ファイルやディレクトリã®è¦å¦ã‚„変æ›ã‚’指示ã—ã¾ã™ã€‚\n"
-" filemap ファイルã®å„è¡Œã«ã¯ã€ 以下ã®æŒ‡ç¤ºã®ã„ãšã‚Œã‹ã‚’記述ã—ã¾ã™::"
msgid " include path/to/file-or-dir"
-msgstr " include ファイルや/ディレクトリã¸ã®/パス"
+msgstr ""
msgid " exclude path/to/file-or-dir"
-msgstr " exclude ファイルや/ディレクトリã¸ã®/パス"
+msgstr ""
msgid " rename path/to/source path/to/destination"
-msgstr " rename 変æ›å…ƒ/ã§ã®/パス 変æ›å…ˆ/ã§ã®/パス"
+msgstr ""
msgid ""
" Comment lines start with ``#``. A specified path matches if it\n"
@@ -1800,10 +1217,6 @@ msgid ""
" directories. The ``include`` or ``exclude`` directive with the\n"
" longest matching path applies, so line order does not matter."
msgstr ""
-" コメント行㯠``#`` ã§å§‹ã‚ã¾ã™ã€‚ ファイルã®ç›¸å¯¾ãƒ‘スã¨å®Œå…¨ä¸€è‡´ã™ã‚‹ã‹ã€\n"
-" 親ディレクトリã¨ä¸€è‡´ã—ãŸå ´åˆã«ã€ パスãŒåˆè‡´ã—ãŸã¨åˆ¤å®šã•ã‚Œã¾ã™ã€‚\n"
-" ``include`` ã‚„ ``exclude`` ã¯ã€ 最長åˆè‡´ã—ãŸæŒ‡ç¤ºãŒé¸æŠžã•ã‚Œã¾ã™ã®ã§ã€\n"
-" 記述ã®é †åºã¯æ„味をæŒã¡ã¾ã›ã‚“。"
msgid ""
" The ``include`` directive causes a file, or all files under a\n"
@@ -1814,14 +1227,6 @@ msgid ""
" it is converted. To rename from a subdirectory into the root of\n"
" the repository, use ``.`` as the path to rename to."
msgstr ""
-" ファイルやディレクトリ㌠``include`` 指定ã«åˆè‡´ã—ãŸå ´åˆã€\n"
-" 当該ファイルや〠ディレクトリé…下ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ 変æ›å¯¾è±¡ã«ãªã‚Šã¾ã™ãŒã€\n"
-" ãれ以外ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ 明示的㫠``include`` 指定ã«åˆè‡´ã—ãªã„é™ã‚Šã€\n"
-" 変æ›å¯¾è±¡ã‹ã‚‰é™¤å¤–ã•ã‚Œã¾ã™ã€‚ ファイルやディレクトリ㌠``exclude``\n"
-" 指定ã«åˆè‡´ã—ãŸå ´åˆã€ ãれらã¯å¤‰æ›å¯¾è±¡ã‹ã‚‰é™¤å¤–ã•ã‚Œã¾ã™ã€‚\n"
-" 変æ›å¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ãŒ ``rename`` 指定ã«åˆè‡´ã™ã‚‹å ´åˆã€ ファイルåã‚„ã€\n"
-" ディレクトリåãŒæ”¹å (ï¼ ç§»å‹•) ã•ã‚Œã¾ã™ã€‚ サブディレクトリé…下ã‹ã‚‰ã€\n"
-" リãƒã‚¸ãƒˆãƒªãƒ«ãƒ¼ãƒˆç›´ä¸‹ã«æ”¹åã™ã‚‹å ´åˆã€ 改å先㫠``.`` を使ã„ã¾ã™ã€‚"
msgid ""
" The splicemap is a file that allows insertion of synthetic\n"
@@ -1831,14 +1236,9 @@ msgid ""
" contains a key, followed by a space, followed by one or two\n"
" comma-separated values::"
msgstr ""
-" splicemap ファイルã¯ã€ 親リビジョン指定ã«ã‚ˆã‚‹å±¥æ­´ã®åˆæˆ (synthesize)\n"
-" を指示ã—ã¾ã™ã€‚ 例ãˆã°ã€ Subversion ã«ãŠã‘るマージ実施リビジョンã«ã€\n"
-" 2ã¤ã®è¦ªã‚’æŒãŸã›ã‚‹ã¨ã‹ã€ 個別ã®ãƒªãƒ“ジョン群を〠ã²ã¨ã¾ã¨ã¾ã‚Šã«ã™ã‚‹ã€\n"
-" ã¨ã„ã£ãŸå ´åˆã«æœ‰ç”¨ã§ã™ã€‚ splicemap ファイルã®å„è¡Œã¯ã€ キーã€\n"
-" 空白文字〠1ã¤ãªã„ã—ï¼’ã¤ã®ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã®å€¤ã§æ§‹æˆã•ã‚Œã¾ã™::"
msgid " key parent1, parent2"
-msgstr " キー 親1, 親2"
+msgstr ""
msgid ""
" The key is the revision ID in the source\n"
@@ -1850,13 +1250,6 @@ msgid ""
" specify the revision on \"trunk\" as the first parent and the one on\n"
" the \"release-1.0\" branch as the second."
msgstr ""
-" キーã«ã¯ã€ 改変対象 (親リビジョンãŒæ”¹å¤‰ã•ã‚Œã¾ã™) リビジョンã®ã€\n"
-" 変æ›å…ƒã«ãŠã‘ã‚‹ ID を指定ã—ã¾ã™ (.hg/shamap ã«ãŠã‘るキーã¨åŒä¸€å½¢å¼)。\n"
-" 値指定ã«ã¯ã€ 変æ›å¾Œã®å½“該リビジョンã®ã€ 親ã¨ãªã‚‹ãƒªãƒ“ジョン㮠ID\n"
-" (変æ›å…ƒï¼å¤‰æ›å…ˆã®ã€ ã„ãšã‚Œã‹ã«ãŠã‘ã‚‹å½¢å¼) を指定ã—ã¾ã™ã€‚ 例ãˆã°ã€\n"
-" \"release-1.0\" ブランãƒã‹ã‚‰ \"trunk\" ã¸ã®ãƒžãƒ¼ã‚¸å®Ÿæ–½ãƒªãƒ“ジョンãŒã€\n"
-" åˆæˆå¯¾è±¡ã¨ãªã‚‹å ´åˆã¯ã€ 第1親ã«ã¯ \"trunk\" 上ã®ã€ 第2親ã«ã¯\n"
-" \"release-1.0\" 上ã®ãƒªãƒ“ジョンを指定ã—ã¾ã™ã€‚"
msgid ""
" The branchmap is a file that allows you to rename a branch when it is\n"
@@ -1866,14 +1259,9 @@ msgid ""
" into nicely structured Mercurial repositories. The branchmap contains\n"
" lines of the form::"
msgstr ""
-" branchmap ファイルã¯ã€ 変æ›å…ƒã‹ã‚‰ (åå‰ä»˜ã) ブランãƒã‚’å–り込む際ã«ã€\n"
-" ブランãƒã®æ”¹åを指示ã—ã¾ã™ã€‚ splicemap ファイルã¨ä½µç”¨ã—ãŸå ´åˆã€\n"
-" 最悪ã®ç®¡ç†çŠ¶æ³ã«ã‚るリãƒã‚¸ãƒˆãƒªã‹ã‚‰ã€ é©åˆ‡ãªæ§‹æˆã® Mercurial\n"
-" リãƒã‚¸ãƒˆãƒªã¸ã®å¤‰æ›ã‚‚å¯èƒ½ã¨ã™ã‚‹ã€ 強力ãªæ©Ÿèƒ½ãŒç™ºæ®ã•ã‚Œã¾ã™ã€‚ branchmap\n"
-" ファイルã®å„è¡Œã¯ã€ 以下ã®å½¢å¼ã§è¨˜è¿°ã•ã‚Œã¾ã™::"
msgid " original_branch_name new_branch_name"
-msgstr " 変æ›å…ƒãƒ–ランãƒå 変æ›å…ˆãƒ–ランãƒå"
+msgstr ""
msgid ""
" where \"original_branch_name\" is the name of the branch in the\n"
@@ -1882,58 +1270,38 @@ msgid ""
" branch names. This can be used to (for instance) move code in one\n"
" repository from \"default\" to a named branch."
msgstr ""
-" \"変æ›å…ƒãƒ–ランãƒå\" ãŒå¤‰æ›å…ƒãƒªãƒã‚¸ãƒˆãƒªã«ãŠã‘るブランãƒåã§ã€\n"
-" \"変æ›å…ˆãƒ–ランãƒå\" ãŒå¤‰æ›å…ˆãƒªãƒã‚¸ãƒˆãƒªã«ãŠã‘るブランãƒåã§ã™ã€‚\n"
-" ブランãƒåã«ã¯ã€ 空白文字を使用ã§ãã¾ã›ã‚“。 変æ›ã®ä½¿ç”¨ä¾‹ã¨ã—ã¦ã¯ã€\n"
-" 変æ›å…ƒã® \"default\" ブランãƒã‹ã‚‰ã€ 特定ã®ãƒªãƒ“ジョンをã€\n"
-" åå‰ä»˜ãブランãƒã«ç§»å‹•ã™ã‚‹ã‚ˆã†ãªã‚±ãƒ¼ã‚¹ãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
" Mercurial Source\n"
-" ################"
+" ''''''''''''''''"
msgstr ""
-" Mercurial å½¢å¼ã‹ã‚‰ã®å¤‰æ›\n"
-" ########################"
msgid ""
" The Mercurial source recognizes the following configuration\n"
" options, which you can set on the command line with ``--config``:"
msgstr ""
-" Mercurial å½¢å¼ã‹ã‚‰ã®å¤‰æ›ã®å ´åˆã€ コマンド行ã§ã® ``--config``\n"
-" 使用ã«ã‚ˆã‚Šã€ 以下ã®ã‚ªãƒ—ションを指定ã§ãã¾ã™:"
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: 読ã¿è¾¼ã¿ã«ãŠã‘ã‚‹æ•´åˆæ€§ã‚¨ãƒ©ãƒ¼ã‚’無視ã—ã¾ã™ã€‚\n"
-" Mercurial å½¢å¼ã‹ã‚‰ Mercurial å½¢å¼ã¸ã®å¤‰æ›ã®éš›ã«ä½¿ç”¨ã™ã‚‹ã“ã¨ã§ã€\n"
-" revlog ã«å•é¡Œã®ã‚るリãƒã‚¸ãƒˆãƒªã‚’復旧å¯èƒ½ã§ã™ã€‚ デフォルト値㯠False"
msgid ""
" :convert.hg.saverev: store original revision ID in changeset\n"
-" (forces target IDs to change). It takes a boolean argument and\n"
-" defaults to False."
+" (forces target IDs to change). It takes and boolean argument\n"
+" and defaults to False."
msgstr ""
-" :convert.hg.saverev: 変æ›å…ƒã«ãŠã‘るリビジョン ID ã®ã€ \n"
-" 埋ã‚è¾¼ã¿è¦å¦ã‚’示ã™çœŸå½å€¤ (変æ›å…ˆã§ã®ãƒªãƒ“ジョン ID ã¯ã€\n"
-" 確実ã«å¤‰æ›´ã•ã‚Œã¾ã™) (※ 訳注: ãƒãƒƒã‚·ãƒ¥å€¤è¨ˆç®—å…ƒã¨ãªã‚‹ãƒ‡ãƒ¼ã‚¿ãŒã€\n"
-" ID 埋ã‚è¾¼ã¿ã§å¤‰åŒ–ã™ã‚‹ãŸã‚)。 デフォルト値㯠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: 指定リビジョンã¨ãã®å­å­«ã‚’変æ›ã—ã¾ã™ã€‚\n"
-" Mercurial ã®ãƒªãƒ“ジョン ID ãŒæŒ‡å®šå¯èƒ½ã§ã™ã€‚ デフォルト値㯠0"
msgid ""
" CVS Source\n"
-" ##########"
+" ''''''''''"
msgstr ""
-" CVS å½¢å¼ã‹ã‚‰ã®å¤‰æ›\n"
-" ##################"
msgid ""
" CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n"
@@ -1946,25 +1314,14 @@ msgid ""
" converted, and that any directory reorganization in the CVS\n"
" sandbox is ignored."
msgstr ""
-" CVS å½¢å¼ã‹ã‚‰ã®å¤‰æ›ã§ã®ã€ 変æ›å¯¾è±¡ã®èµ·ç‚¹ã¨ãªã‚‹ãƒªãƒ“ジョンã®æŒ‡å®šã§ã¯ã€\n"
-" CVS リãƒã‚¸ãƒˆãƒªã‹ã‚‰ã®ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã®ã‚ˆã†ãªã€ 「サンドボックスã€\n"
-" (sandbox) ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ リãƒã‚¸ãƒˆãƒªé ˜åŸŸã¸ã®ç›´æŽ¥ã‚¢ã‚¯ã‚»ã‚¹ã¯ã€\n"
-" ``:local:`` ãªãƒªãƒã‚¸ãƒˆãƒªä»¥å¤–ã§ã¯ã€ å¿…è¦ã‚ã‚Šã¾ã›ã‚“。 変æ›ã®éš›ã«ã¯ã€\n"
-" サンドボックスã®æœ€ä¸Šä½ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‹ã‚‰ã€ CVS リãƒã‚¸ãƒˆãƒªãŒæ¤œå‡ºã•ã‚Œã€\n"
-" CVS rlog コマンドã«ã‚ˆã£ã¦ã€ 変æ›å¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ãŒæ¤œå‡ºã•ã‚Œã¾ã™ã€‚\n"
-" ãã®ãŸã‚〠filemap ファイルã®æŒ‡å®šãŒç„¡ã„é™ã‚Šã€ 起点ディレクトリé…下ã®ã€\n"
-" å…¨ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒå¤‰æ›å¯¾è±¡ã¨ãªã‚Šã¾ã™ã—〠サンドボックスé…下ã«ãŠã‘ã‚‹ã€\n"
-" ディレクトリã®å†ç·¨æˆã¯ã€ å…¨ã¦ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
msgid " The following options can be used with ``--config``:"
-msgstr " ``--config`` 使用ã«ã‚ˆã‚Šã€ 以下ã®ã‚ªãƒ—ションを指定ã§ãã¾ã™:"
+msgstr ""
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: リモートログã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’抑止ã—ã¾ã™\n"
-" (試験ãŠã‚ˆã³ãƒ‡ãƒãƒƒã‚°ç”¨)。 デフォルト値㯠True。"
msgid ""
" :convert.cvsps.fuzz: Specify the maximum time (in seconds) that is\n"
@@ -1973,10 +1330,6 @@ msgid ""
" part of a changeset then the default may not be long enough.\n"
" The default is 60."
msgstr ""
-" :convert.cvsps.fuzz: åŒä¸€ãƒ¦ãƒ¼ã‚¶ï¼ã‚³ãƒŸãƒƒãƒˆãƒ­ã‚°ã®ãƒªãƒ“ジョン検出ã®ã€\n"
-" 最大所è¦æ™‚é–“ (å˜ä½:秒)。 変æ›å…ƒã«ãŠã„ã¦ã€éžå¸¸ã«å¤§é‡ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒã€\n"
-" åŒæ™‚ã«ã‚³ãƒŸãƒƒãƒˆã•ã‚Œã¦ã„ã‚‹å ´åˆã€ デフォルト値 (60秒) ã§ã¯ã€\n"
-" ä¸å分ãªæã‚ŒãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
" :convert.cvsps.mergeto: Specify a regular expression to which\n"
@@ -1986,10 +1339,6 @@ msgid ""
" indicated in the regex. Default is ``{{mergetobranch\n"
" ([-\\w]+)}}``"
msgstr ""
-" :convert.cvsps.mergeto: コミットログã«å¯¾ã™ã‚‹æ­£è¦è¡¨ç¾ã€‚\n"
-" æ­£è¦è¡¨ç¾ã®åˆè‡´ãŒæ¤œå‡ºã•ã‚ŒãŸå ´åˆã€ ダミーã®ãƒªãƒ“ジョンを追加ã—ã¦ã€\n"
-" åˆè‡´ãƒªãƒ“ジョンã®ãƒ–ランãƒã‹ã‚‰ã€ æ­£è¦è¡¨ç¾ãŒç¤ºã™ãƒ–ランãƒã¸ã¨ã€\n"
-" マージを実施ã—ã¾ã™ã€‚ デフォルト値㯠``{{mergetobranch ([-\\w]+)}}``"
msgid ""
" :convert.cvsps.mergefrom: Specify a regular expression to which\n"
@@ -1998,10 +1347,6 @@ msgid ""
" branch indicated in the regex as the second parent of the\n"
" changeset. Default is ``{{mergefrombranch ([-\\w]+)}}``"
msgstr ""
-" :convert.cvsps.mergefrom: コミットログã«å¯¾ã™ã‚‹æ­£è¦è¡¨ç¾ã€‚\n"
-" æ­£è¦è¡¨ç¾ã®åˆè‡´ãŒæ¤œå‡ºã•ã‚ŒãŸå ´åˆã€ æ­£è¦è¡¨ç¾ãŒç¤ºã™ãƒ–ランãƒã«ã€\n"
-" æ–°è¦ãƒªãƒ“ジョンを追加ã—ã¦ã€ åˆè‡´ãƒªãƒ“ジョンã®ç¬¬2親ã¨ã—ã¾ã™ã€‚\n"
-" デフォルト値㯠``{{mergefrombranch ([-\\w]+)}}``"
msgid ""
" :hook.cvslog: Specify a Python function to be called at the end of\n"
@@ -2009,19 +1354,13 @@ msgid ""
" log entries, and can modify the entries in-place, or add or\n"
" delete them."
msgstr ""
-" :hook.cvslog: CVS ã®ãƒ­ã‚°åŽé›†å‡¦ç†å¾Œã«å‘¼ã°ã‚Œã‚‹ Python 関数。\n"
-" 関数呼ã³å‡ºã—ã®éš›ã«ã¯ã€ ログエントリã®ä¸€è¦§ãŒæ¸¡ã•ã‚Œã€\n"
-" 一覧è¦ç´ ã®æ”¹å¤‰ã‚„〠追加ï¼å‰Šé™¤ã‚’〠直接実施ã§ãã¾ã™ã€‚"
msgid ""
" :hook.cvschangesets: Specify a Python function to be called after\n"
-" the changesets are calculated from the CVS log. The\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: CVS ログã‹ã‚‰ã®ãƒªãƒ“ジョン算出完了後ã«å‘¼ã°ã‚Œã‚‹\n"
-" Python 関数。 関数呼ã³å‡ºã—ã®éš›ã«ã¯ã€ リビジョン一覧ãŒæ¸¡ã•ã‚Œã€\n"
-" リビジョンã®æ”¹å¤‰ã‚„〠追加ï¼å‰Šé™¤ã‚’〠直接実施ã§ãã¾ã™ã€‚"
msgid ""
" An additional \"debugcvsps\" Mercurial command allows the builtin\n"
@@ -2029,17 +1368,11 @@ msgid ""
" parameters and output are similar to that of cvsps 2.1. Please see\n"
" the command help for more details."
msgstr ""
-" 付加的㪠\"debugcvsps\" Mercurial コマンドを使ã†ã“ã¨ã§ã€\n"
-" 変æ›å‡¦ç†æŠœãã«ã€ 内部ã®ãƒªãƒ“ジョンマージ機能を実行ã§ãã¾ã™ã€‚\n"
-" 引数や出力ã¯ã€ cvsps 2.1 ã¨äº’æ›æ€§ãŒã‚ã‚Šã¾ã™ã€‚\n"
-" 詳細ã¯ã‚³ãƒžãƒ³ãƒ‰ã®ãƒ˜ãƒ«ãƒ—出力をå‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
" Subversion Source\n"
-" #################"
+" '''''''''''''''''"
msgstr ""
-" Subversion å½¢å¼ã‹ã‚‰ã®å¤‰æ›\n"
-" #########################"
msgid ""
" Subversion source detects classical trunk/branches/tags layouts.\n"
@@ -2053,62 +1386,40 @@ msgid ""
" relative to the source URL, or leave them blank to disable auto\n"
" detection."
msgstr ""
-" Subversion å½¢å¼ã‹ã‚‰ã®å¤‰æ›ã§ã¯ã€ ä¼çµ±çš„㪠trunk/branches/tags\n"
-" 構造ãŒæ¤œå‡ºã•ã‚Œã¾ã™ã€‚ 特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ 変æ›å…ƒ URL 指定ã®\n"
-" ``svn://repo/path/`` ã¯å˜ä¸€ãƒ–ランãƒã«å¤‰æ›ã•ã‚Œã¾ã™ã€‚\n"
-" ``svn://repo/path/trunk`` ãŒå­˜åœ¨ã™ã‚‹å ´åˆã€ default ブランãƒã«ã¯ã€\n"
-" ãã¡ã‚‰ã®å†…容ãŒæ ¼ç´ã•ã‚Œã¾ã™ã€‚ ``svn://repo/path/branches``\n"
-" ãŒå­˜åœ¨ã™ã‚‹å ´åˆã€ サブディレクトリ群を〠ブランãƒä¸€è¦§å€™è£œã¨ã¿ãªã—ã¾ã™ã€‚\n"
-" ``svn://repo/path/tags`` ãŒå­˜åœ¨ã™ã‚‹å ´åˆã€ 変æ›å¾Œãƒªãƒ“ジョンを指ã™ã€\n"
-" ã‚¿ã‚°ã®ç‰¹å®šã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ ``trunk``〠``branches`` ãŠã‚ˆã³ ``tags``\n"
-" ã®å‚照先ã¯ã€ 以下ã®ã‚ªãƒ—ションã§ä¸Šæ›¸ãå¯èƒ½ã§ã™ã€‚ ã“れらã®æŒ‡å®šã®éš›ã«ã¯ã€\n"
-" 変æ›å…ƒ URL ã«å¯¾ã™ã‚‹ç›¸å¯¾ãƒ‘スã‹ã€ 空白 (ï¼ è‡ªå‹•æ¤œå‡ºæŠ‘æ­¢) を指定ã—ã¾ã™ã€‚"
msgid " The following options can be set with ``--config``:"
-msgstr " ``--config`` 使用ã«ã‚ˆã‚Šã€ 以下ã®ã‚ªãƒ—ションを指定ã§ãã¾ã™:"
+msgstr ""
msgid ""
" :convert.svn.branches: specify the directory containing branches.\n"
" The default is ``branches``."
msgstr ""
-" :convert.svn.branches: ブランãƒã‚’æ ¼ç´ã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€‚\n"
-" デフォルト値㯠``branches`` 。"
msgid ""
" :convert.svn.tags: specify the directory containing tags. The\n"
" default is ``tags``."
msgstr ""
-" :convert.svn.tags: ã‚¿ã‚°ã‚’æ ¼ç´ã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€‚\n"
-" デフォルト値㯠``tags`` 。"
msgid ""
" :convert.svn.trunk: specify the name of the trunk branch. The\n"
" default is ``trunk``."
msgstr ""
-" :convert.svn.trunk: trunk ブランãƒã®ãƒ–ランãƒå。\n"
-" デフォルト値㯠``trunk`` 。"
msgid ""
" Source history can be retrieved starting at a specific revision,\n"
" instead of being integrally converted. Only single branch\n"
" conversions are supported."
msgstr ""
-" 全履歴変æ›ã®ä»£ã‚ã‚Šã«ã€ 履歴変æ›ã®èµ·ç‚¹ãƒªãƒ“ジョンを指定å¯èƒ½ã§ã™ã€‚\n"
-" å˜ä¸€ãƒ–ランãƒå¤‰æ›ã®ã¿ãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã™ã€‚"
msgid ""
" :convert.svn.startrev: specify start Subversion revision number.\n"
" The default is 0."
msgstr ""
-" :convert.svn.startrev: 変æ›é–‹å§‹ Subversion リビジョン番å·ã€‚\n"
-" デフォルト値㯠0。"
msgid ""
" Perforce Source\n"
-" ###############"
+" '''''''''''''''"
msgstr ""
-" Perforce å½¢å¼ã‹ã‚‰ã®å¤‰æ›\n"
-" #######################"
msgid ""
" The Perforce (P4) importer can be given a p4 depot path or a\n"
@@ -2118,62 +1429,43 @@ msgid ""
" usually should specify a target directory, because otherwise the\n"
" target may be named ``...-hg``."
msgstr ""
-" Perforce (P4) å½¢å¼ã§ã®å–ã‚Šè¾¼ã¿å…ƒæŒ‡å®šã«ã¯ã€ p4 depot ã¸ã®ãƒ‘スã‹ã€\n"
-" クライアント仕様を指定ã—ã¾ã™ã€‚ 変æ›å…ƒã®å…¨ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒã€\n"
-" å¹³å¦ãª Mercurial リãƒã‚¸ãƒˆãƒªã«å¤‰æ›ã•ã‚Œã¾ã™: ラベルやブランãƒã€\n"
-" çµ±åˆ (※ 訳注: \"integration\" 㯠Mercurial ã§è¨€ã†ãƒžãƒ¼ã‚¸ã®ã“ã¨ï¼Ÿ)\n"
-" ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚ depot ã¸ã®ãƒ‘ス指定ã®å ´åˆã€ 変æ›å…ˆæŒ‡å®šãŒç„¡ã„å ´åˆã€\n"
-" 変æ›å…ˆã®åå‰ãŒ ``...-hg`` ã«ãªã‚‹ç‚¹ã«æ³¨æ„ã—ã¦ãã ã•ã„。"
msgid ""
" It is possible to limit the amount of source history to be\n"
" converted by specifying an initial Perforce revision:"
msgstr ""
-" åˆæœŸ Perforce リビジョン指定ã«ã‚ˆã‚Šã€ 変æ›å¯¾è±¡ã¨ãªã‚‹ãƒªãƒ“ジョンç·é‡ã‚’ã€\n"
-" 制é™ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™:"
msgid ""
" :convert.p4.startrev: specify initial Perforce revision (a\n"
" Perforce changelist number)."
msgstr ""
-" :convert.p4.startrev: åˆæœŸ Perforce リビジョン\n"
-" (Perforce ãƒã‚§ãƒ³ã‚¸ãƒªã‚¹ãƒˆç•ªå·)。."
msgid ""
" Mercurial Destination\n"
-" #####################"
+" '''''''''''''''''''''"
msgstr ""
-" Mercurial å½¢å¼ã¸ã®å¤‰æ›\n"
-" ######################"
msgid " The following options are supported:"
-msgstr " 以下ã®ã‚ªãƒ—ションを指定ã§ãã¾ã™:"
+msgstr ""
msgid ""
" :convert.hg.clonebranches: dispatch source branches in separate\n"
" clones. The default is False."
msgstr ""
-" :convert.hg.clonebranches: 変æ›å…ƒãƒ–ランãƒã®åˆ¥è¤‡è£½ã¸ã®æŒ¯ã‚Šåˆ†ã‘ã®è¦å¦ã€‚\n"
-" デフォルト値㯠False。"
msgid ""
" :convert.hg.tagsbranch: branch name for tag revisions, defaults to\n"
" ``default``."
msgstr ""
-" :convert.hg.tagsbranch: タグ付ã‘を実施ã™ã‚‹ãƒªãƒ“ジョンã®ãƒ–ランãƒå。\n"
-" デフォルト値㯠``default`` 。"
msgid ""
" :convert.hg.usebranchnames: preserve branch names. The default is\n"
" True.\n"
" "
msgstr ""
-" :convert.hg.usebranchnames: ブランãƒå維æŒã®è¦å¦ã€‚\n"
-" デフォルト値㯠True。\n"
-" "
msgid "create changeset information from CVS"
-msgstr "CVS ã‹ã‚‰ã®ãƒªãƒ“ジョン情報ã®ä½œæˆ"
+msgstr "CVS ã‹ã‚‰ã®ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆæƒ…報作æˆ"
msgid ""
" This command is intended as a debugging tool for the CVS to\n"
@@ -2189,11 +1481,12 @@ msgid ""
" series of changesets based on matching commit log entries and\n"
" dates."
msgstr ""
-" 本コマンドã¯ã€ ç¾ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª (ãªã„ã—指定ディレクトリ) 中㮠CVS rlog\n"
-" を読ã¿è¾¼ã¿ã€ コミットログã®å†…容ã¨æ—¥ä»˜ã‚’å…ƒã«ãƒªãƒ“ジョンを推測ã—ã¾ã™ã€‚"
+" 本コマンドã¯ã€ ç¾ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª(ãªã„ã—指定ディレクトリ)中㮠CVS rlog ã‚’\n"
+" 読ã¿è¾¼ã¿ã€ コミットログã®å†…容ã¨æ—¥ä»˜ã‚’å…ƒã«æŽ¨æ¸¬ã•ã‚Œã‚‹ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã¸ã¨\n"
+" 変æ›ã—ã¾ã™ã€‚"
msgid "username mapping filename (DEPRECATED, use --authormap instead)"
-msgstr "ユーザå変æ›ãƒ•ã‚¡ã‚¤ãƒ«ã®æŒ‡å®š (éžæŽ¨å¥¨: --authormap を使用ã—ã¦ãã ã•ã„)"
+msgstr ""
msgid "source repository type"
msgstr "変æ›å…ƒãƒªãƒã‚¸ãƒˆãƒªç¨®åˆ¥"
@@ -2211,19 +1504,19 @@ msgid "remap file names using contents of file"
msgstr "変æ›æ™‚ã®ãƒ•ã‚¡ã‚¤ãƒ«å変æ›ç”¨ãƒ•ã‚¡ã‚¤ãƒ«"
msgid "splice synthesized history into place"
-msgstr "継ãŽåˆã‚ã›ã«ã‚ˆã‚‹å±¥æ­´ã®åˆæˆ"
+msgstr "履歴ã®åˆæˆ"
msgid "change branch names while converting"
msgstr "変æ›æ™‚ã®ãƒ–ランãƒå変æ›ç”¨ãƒ•ã‚¡ã‚¤ãƒ«"
msgid "try to sort changesets by branches"
-msgstr "ブランãƒã«ã‚ˆã‚‹ãƒªãƒ“ジョンã®ä¸¦ã³æ›¿ãˆã‚’試ã™"
+msgstr "ブランãƒã«ã‚ˆã‚‹ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®ä¸¦ã³æ›¿ãˆã‚’試ã™"
msgid "try to sort changesets by date"
-msgstr "日付ã«ã‚ˆã‚‹ãƒªãƒ“ジョンã®ä¸¦ã³æ›¿ãˆã‚’試ã™"
+msgstr "日付ã«ã‚ˆã‚‹ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®ä¸¦ã³æ›¿ãˆã‚’試ã™"
msgid "preserve source changesets order"
-msgstr "元リãƒã‚¸ãƒˆãƒªã§ã®ãƒªãƒ“ジョンã®ä¸¦ã³é †ã‚’å°Šé‡"
+msgstr "元リãƒã‚¸ãƒˆãƒªã§ã®ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆä¸¦ã³é †ã‚’å°Šé‡"
msgid "hg convert [OPTION]... SOURCE [DEST [REVMAP]]"
msgstr "hg convert [OPTION]... SOURCE [DEST [REVMAP]]"
@@ -2250,10 +1543,10 @@ msgid "specify cvsroot"
msgstr "cvsroot ã®æŒ‡å®š"
msgid "show parent changesets"
-msgstr "親リビジョンã®è¡¨ç¤º"
+msgstr "親ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®è¡¨ç¤º"
msgid "show current changeset in ancestor branches"
-msgstr "祖先ã®ãƒ–ランãƒã«ãŠã‘ã‚‹ç¾è¡Œãƒªãƒ“ジョンã®è¡¨ç¤º"
+msgstr "祖先ã®ãƒ–ランãƒã«ãŠã‘ã‚‹ç¾è¡Œãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®è¡¨ç¤º"
msgid "ignored for compatibility"
msgstr "※ 後方互æ›æ€§ã®ãŸã‚ã®ã‚ªãƒ—ション"
@@ -2262,13 +1555,13 @@ msgid "hg debugcvsps [OPTION]... [PATH]..."
msgstr "hg debugcvsps [OPTION]... [PATH]..."
msgid ":svnrev: String. Converted subversion revision number."
-msgstr ":svnrev: 文字列。 変æ›å…ƒã® subversion リビジョン番å·ã€‚"
+msgstr ""
msgid ":svnpath: String. Converted subversion revision project path."
-msgstr ":svnpath: 文字列。 変æ›å…ƒ subversion リビジョンã«ãŠã‘るパス。"
+msgstr ""
msgid ":svnuuid: String. Converted subversion revision repository identifier."
-msgstr ":svnuuid: 文字列。 変æ›å…ƒ subversion リビジョンã®ãƒªãƒã‚¸ãƒˆãƒª ID。"
+msgstr ""
#, python-format
msgid "%s does not look like a Bazaar repository"
@@ -2286,8 +1579,8 @@ msgid "bzr source type could not be determined\n"
msgstr "変æ›å…ƒã®ç¨®åˆ¥ãŒ bzr ã§ã‚ã‚‹ã¨ç‰¹å®šã§ãã¾ã›ã‚“\n"
#, python-format
-msgid "%s is not a valid revision"
-msgstr "%s ã¯æœ‰åŠ¹ãªãƒªãƒ“ジョンã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+msgid "%s is not a valid revision in current branch"
+msgstr "%s ã¯ç¾åœ¨ã®ãƒ–ランãƒã®æ­£ã—ã„リビジョンã§ã¯ã‚ã‚Šã¾ã›ã‚“"
#, python-format
msgid "%s is not available in %s anymore"
@@ -2314,10 +1607,6 @@ msgid "could not open map file %r: %s"
msgstr "変æ›ãƒ•ã‚¡ã‚¤ãƒ« %r ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“: %s"
#, python-format
-msgid "syntax error in %s(%d): child parent1[,parent2] expected"
-msgstr "%s(%d) ã§ã®æ–‡æ³•ã‚¨ãƒ©ãƒ¼: æ­£ã—ã„å½¢å¼ã¯ å­ è¦ª1[,親2]"
-
-#, python-format
msgid "%s: invalid source repository type"
msgstr "%s: 変æ›å…ƒãƒªãƒã‚¸ãƒˆãƒªç¨®åˆ¥ãŒä¸æ­£ã§ã™"
@@ -2347,16 +1636,8 @@ msgid "scanning"
msgstr "走査中"
#, python-format
-msgid "splice map revision %s is not being converted, ignoring\n"
-msgstr "継ãŽåˆã‚ã›æŒ‡å®šä¸­ã® %s ãŒå¤‰æ›å¯¾è±¡ã§ã¯ãªã„ãŸã‚無視ã—ã¾ã™\n"
-
-#, python-format
-msgid "unknown splice map parent: %s"
-msgstr "継ãŽåˆã‚ã›æŒ‡å®šã«æœªçŸ¥ã®è¦ªãƒªãƒ“ジョンãŒã‚ã‚Šã¾ã™: %s"
-
-#, python-format
msgid "unknown sort mode: %s"
-msgstr "未知ã®æ•´åˆ—æ–¹å¼: %s"
+msgstr "未知ã®æ•´åˆ—æ–¹å¼ %s"
#, python-format
msgid "cycle detected between %s and %s"
@@ -2366,11 +1647,11 @@ msgid "not all revisions were sorted"
msgstr "æ ¼ç´ã•ã‚Œã¦ã„ãªã„リビジョンãŒã‚ã‚Šã¾ã™"
#, python-format
-msgid "writing author map file %s\n"
+msgid "Writing author map file %s\n"
msgstr "作æˆè€…å変æ›ãƒ•ã‚¡ã‚¤ãƒ« %s ã¸ã®æ›¸ãè¾¼ã¿ä¸­\n"
#, python-format
-msgid "ignoring bad line in author map file %s: %s\n"
+msgid "Ignoring bad line in author map file %s: %s\n"
msgstr "作æˆè€…å変æ›ãƒ•ã‚¡ã‚¤ãƒ« %s ã®ä¸æ­£ãªè¡Œã‚’無視: %s\n"
#, python-format
@@ -2383,7 +1664,7 @@ msgstr "作æˆè€… %s ã® %s ã¸ã®å¤‰æ›ã‚’〠%s ã¸ã®å¤‰æ›ã§ä¸Šæ›¸ãã—ã¾
#, python-format
msgid "spliced in %s as parents of %s\n"
-msgstr "%s ã‚’ %s ã®è¦ªã¨ã—ã¦ç¶™ãŽåˆã‚ã›\n"
+msgstr "%s ã‚’ %s ã®è¦ªã¨ã—ã¦åˆæˆ\n"
msgid "scanning source...\n"
msgstr "変æ›å…ƒãƒªãƒã‚¸ãƒˆãƒªã®èµ°æŸ»ä¸­...\n"
@@ -2482,8 +1763,6 @@ msgstr "リビジョン情報ã¯æ—¥ä»˜æƒ…報を伴ã†ç­ˆã§ã™"
msgid "log cache overlaps with new log entries, re-run without cache."
msgstr ""
-"ログキャッシュãŒæ–°è¦ã‚¨ãƒ³ãƒˆãƒªã¨é‡è¤‡ã™ã‚‹ãŸã‚ã€ã‚­ãƒ£ãƒƒã‚·ãƒ¥ç„¡ã—ã§å†å®Ÿè¡Œã—ã¦ãã ã•"
-"ã„"
#, python-format
msgid "writing cvs log cache %s\n"
@@ -2494,22 +1773,22 @@ msgid "%d log entries\n"
msgstr "%d 件ã®ãƒ­ã‚°ã‚¨ãƒ³ãƒˆãƒª\n"
msgid "creating changesets\n"
-msgstr "リビジョン作æˆä¸­\n"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆä½œæˆä¸­\n"
msgid "synthetic changeset cannot have multiple parents"
-msgstr "åˆæˆãƒªãƒ“ジョンã¯è¤‡æ•°ã®è¦ªã‚’æŒã¦ã¾ã›ã‚“"
+msgstr "åˆæˆãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã¯è¤‡æ•°ã®è¦ªã‚’ã‚‚ã¦ã¾ã›ã‚“"
#, python-format
msgid ""
"warning: CVS commit message references non-existent branch %r:\n"
"%s\n"
msgstr ""
-"警告: CVS コミットログãŒæœªçŸ¥ã®ãƒ–ランム%r ã‚’å‚ç…§ã—ã¦ã„ã¾ã™:\n"
+"警告: CVS コミットメッセージãŒæœªçŸ¥ã®ãƒ–ランム%r ã‚’å‚ç…§ã—ã¦ã„ã¾ã™:\n"
"%s\n"
#, python-format
msgid "%d changeset entries\n"
-msgstr "%d 件ã®ãƒªãƒ“ジョンè¦ç´ \n"
+msgstr "%d 件ã®ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã‚¨ãƒ³ãƒˆãƒª\n"
#, python-format
msgid "%s does not look like a darcs repository"
@@ -2524,7 +1803,7 @@ msgstr "Python ã® ElementTree モジュールãŒåˆ©ç”¨ã§ãã¾ã›ã‚“"
#, python-format
msgid "%s repository format is unsupported, please upgrade"
-msgstr "%s å½¢å¼ãƒªãƒã‚¸ãƒˆãƒªã¯éžå¯¾å¿œã§ã™ã®ã§ã€ã‚¢ãƒƒãƒ—グレードã—ã¦ãã ã•ã„"
+msgstr ""
msgid "failed to detect repository format!"
msgstr "リãƒã‚¸ãƒˆãƒªå½¢å¼ã®åˆ¤å®šã«å¤±æ•—!"
@@ -2537,7 +1816,7 @@ msgstr "ファイルマップã§ã®è§£æžã‚¨ãƒ©ãƒ¼"
#, python-format
msgid "%s:%d: path to %s is missing\n"
-msgstr "%s:%d: %s 指定ã®ãƒ‘スãŒä¸åœ¨ã§ã™\n"
+msgstr ""
#, python-format
msgid "%s:%d: %r already in %s list\n"
@@ -2545,7 +1824,7 @@ msgstr "%s:%d: %r ã¯æ—¢ã« %s 中ã«ã‚ã‚Šã¾ã™\n"
#, python-format
msgid "%s:%d: superfluous / in %s %r\n"
-msgstr "%s:%d: %s 指定 %r ã«ä½™è¨ˆãª / ãŒã‚ã‚Šã¾ã™\n"
+msgstr ""
#, python-format
msgid "%s:%d: unknown directive %r\n"
@@ -2559,11 +1838,11 @@ msgid "%s does not look like a Git repository"
msgstr "%s 㯠Git å½¢å¼ã§ã¯ãªã„ã¨æ€ã‚ã‚Œã¾ã™"
msgid "cannot retrieve git heads"
-msgstr "git ã®ãƒ˜ãƒƒãƒ‰ãŒå–å¾—ã§ãã¾ã›ã‚“"
+msgstr ""
#, python-format
msgid "cannot read %r object at %s"
-msgstr "%r オブジェクト㌠%s ã‹ã‚‰èª­ã¿è¾¼ã‚ã¾ã›ã‚“"
+msgstr ""
#, python-format
msgid "cannot read changes in %s"
@@ -2571,7 +1850,7 @@ msgstr "%s ã®å¤‰æ›´ã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“"
#, python-format
msgid "cannot read tags from %s"
-msgstr "%s ã‹ã‚‰ã‚¿ã‚°ãŒèª­ã¿è¾¼ã‚ã¾ã›ã‚“"
+msgstr ""
#, python-format
msgid "%s does not look like a GNU Arch repository"
@@ -2603,7 +1882,7 @@ msgstr "変æ›å…ˆãƒªãƒã‚¸ãƒˆãƒª %s ã®åˆæœŸåŒ–中\n"
#, python-format
msgid "could not create hg repository %s as sink"
-msgstr "変æ›å…ˆã® Mercurial リãƒã‚¸ãƒˆãƒª %s ãŒç”Ÿæˆã§ãã¾ã›ã‚“"
+msgstr ""
#, python-format
msgid "pulling from %s into %s\n"
@@ -2619,14 +1898,6 @@ msgid "updating bookmarks\n"
msgstr "ブックマークã®æ›´æ–°ä¸­\n"
#, python-format
-msgid ""
-"revision %s not found in destination repository (lookups with "
-"clonebranches=true are not implemented)"
-msgstr ""
-"変æ›å…ˆãƒªãƒã‚¸ãƒˆãƒªã«ãƒªãƒ“ジョン %s ãŒã‚ã‚Šã¾ã›ã‚“(clonebranches=true ã§ã®æ¤œç´¢ã¯æœª"
-"実装ã§ã™)"
-
-#, python-format
msgid "%s is not a valid start revision"
msgstr "%s ã¯æ­£ã—ã„開始リビジョンã§ã¯ã‚ã‚Šã¾ã›ã‚“"
@@ -2639,25 +1910,25 @@ msgid "%s does not look like a monotone repository"
msgstr "%s 㯠monotone å½¢å¼ã§ã¯ãªã„ã¨æ€ã‚ã‚Œã¾ã™"
msgid "bad mtn packet - no end of commandnbr"
-msgstr "ä¸æ­£ãª mtn パケット - no end of commandnbr"
+msgstr ""
#, python-format
msgid "bad mtn packet - bad stream type %s"
-msgstr "ä¸æ­£ãª mtn パケット - bad stream type %s"
+msgstr ""
msgid "bad mtn packet - no divider before size"
-msgstr "ä¸æ­£ãª mtn パケット - no divider before size"
+msgstr ""
msgid "bad mtn packet - no end of packet size"
-msgstr "ä¸æ­£ãª mtn パケット - no end of packet size"
+msgstr ""
#, python-format
msgid "bad mtn packet - bad packet size %s"
-msgstr "ä¸æ­£ãª mtn パケット - bad packet size %s"
+msgstr ""
#, python-format
msgid "bad mtn packet - unable to read full packet read %s of %s"
-msgstr "ä¸æ­£ãª mtn パケット - unable to read full packet read %s of %s"
+msgstr ""
#, python-format
msgid "mtn command '%s' returned %s"
@@ -2668,14 +1939,14 @@ msgid "copying file in renamed directory from '%s' to '%s'"
msgstr "改å先ディレクトリ㮠'%s' ã‹ã‚‰ '%s' ã¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’複製中"
msgid "unable to determine mtn automate interface version"
-msgstr "mtn automate インターフェイスã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒç‰¹å®šã§ãã¾ã›ã‚“"
+msgstr ""
#, python-format
msgid "mtn automate stdio header unexpected: %s"
-msgstr "mtn automate stdio ヘッダãŒæƒ³å®šå¤–ã§ã™: %s"
+msgstr ""
msgid "failed to reach end of mtn automate stdio headers"
-msgstr "mtn automate stdio ヘッダを最後ã¾ã§èª­ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ"
+msgstr ""
#, python-format
msgid "%s does not look like a P4 repository"
@@ -2687,28 +1958,21 @@ msgstr "p4 ビューã®èª­ã¿è¾¼ã¿ä¸­\n"
msgid "collecting p4 changelists\n"
msgstr "p4 ãƒã‚§ãƒ³ã‚¸ãƒªã‚¹ãƒˆã®åŽé›†ä¸­\n"
-msgid "debugsvnlog could not load Subversion python bindings"
-msgstr "debugsvnlog ㌠Subversion python ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“"
-
msgid "Mercurial failed to run itself, check hg executable is in PATH"
msgstr "Mercurial 自身ã®å®Ÿè¡Œã«å¤±æ•—。 PATH 設定㨠hg コマンドを確èªã—ã¦ãã ã•ã„"
-#, python-format
-msgid "log stream exception '%s'"
-msgstr "ログ入力ã§ã®ä¾‹å¤–発生 '%s'"
-
msgid ""
"svn: cannot probe remote repository, assume it could be a subversion "
"repository. Use --source-type if you know better.\n"
msgstr ""
-"svn: subversion ã®é€£æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã®ç¢ºèªã«å¤±æ•—ã—ã¾ã—ãŸã€‚ --source-type ã®ä½¿ç”¨"
-"を検討ã—ã¦ãã ã•ã„。\n"
+"svn: subversion ã®é éš”リãƒã‚¸ãƒˆãƒªã®ç¢ºèªã«å¤±æ•—ã—ã¾ã—ãŸã€‚ --source-type ã®ä½¿ç”¨ã‚’"
+"検討ã—ã¦ãã ã•ã„。\n"
#, python-format
msgid "%s does not look like a Subversion repository"
msgstr "%s 㯠Subversion å½¢å¼ã§ã¯ãªã„ã¨æ€ã‚ã‚Œã¾ã™"
-msgid "could not load Subversion python bindings"
+msgid "Could not load Subversion python bindings"
msgstr "Subversion python ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ãŒèª­ã¿è¾¼ã‚ã¾ã›ã‚“"
#, python-format
@@ -2754,12 +2018,8 @@ msgid "svn: no revision found after start revision %d"
msgstr "svn: 開始リビジョン %d 以é™ã«ãƒªãƒ“ジョンã¯ã‚ã‚Šã¾ã›ã‚“"
#, python-format
-msgid "svn: revision %s not found"
-msgstr "svn: リビジョン %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-
-#, python-format
msgid "%s not found up to revision %d"
-msgstr "リビジョン %s 㯠%d ã¾ã§ã®ãƒªãƒ“ジョンã«è¦‹å½“ãŸã‚Šã¾ã›ã‚“"
+msgstr "リビジョン %s 㯠%d ã¾ã§ã®ã‚Šãƒ“ジョンã«è¦‹å½“ãŸã‚Šã¾ã›ã‚“"
msgid "scanning paths"
msgstr "パスã®èµ°æŸ»ä¸­"
@@ -2791,15 +2051,7 @@ msgid "unable to cope with svn output"
msgstr "予期ã›ã¬ svn 出力ã®ãŸã‚継続ã§ãã¾ã›ã‚“"
msgid "writing Subversion tags is not yet implemented\n"
-msgstr "Subversion ã®ã‚¿ã‚°æ›¸ã出ã—機能ã¯æœªå®Ÿè£…ã§ã™\n"
-
-#, python-format
-msgid ""
-"splice map revision %s not found in subversion child map (revision lookups "
-"are not implemented)"
msgstr ""
-"subversion ã®å­ãƒªãƒ“ジョン中ã«ã€ç¶™ãŽåˆã‚ã›æŒ‡å®šã® %s ãŒã‚ã‚Šã¾ã›ã‚“(リビジョン検"
-"ç´¢ã¯æœªå®Ÿè£…ã§ã™)"
msgid "automatically manage newlines in repository files"
msgstr "管ç†å¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã«ãŠã‘る改行形å¼ã®è‡ªå‹•ç®¡ç†"
@@ -2810,10 +2062,6 @@ msgid ""
"directory. That way you can get CRLF line endings on Windows and LF on\n"
"Unix/Mac, thereby letting everybody use their OS native line endings."
msgstr ""
-"本エクステンションã¯ã€ リãƒã‚¸ãƒˆãƒªãŠã‚ˆã³ä½œæ¥­é ˜åŸŸä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ãŠã‘ã‚‹ã€\n"
-"æ”¹è¡Œå½¢å¼ (CRLF ãªã„ã— LF) を管ç†ã™ã‚‹ãŸã‚ã®ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ã§ã™ã€‚\n"
-"Windows 環境ã§ã¯ CRLF å½¢å¼ã€ Unix/Mac 環境ã§ã¯ LF å½¢å¼ã¨è¨€ã†æ§˜ã«ã€\n"
-"å„ OS 固有ã®æ”¹è¡Œå½¢å¼ã‚’使用ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã€‚"
msgid ""
"The extension reads its configuration from a versioned ``.hgeol``\n"
@@ -2822,10 +2070,6 @@ msgid ""
"configuration files. It uses two sections, ``[patterns]`` and\n"
"``[repository]``."
msgstr ""
-"本エクステンションã¯ã€ 作業領域ã®ãƒ«ãƒ¼ãƒˆç›´ä¸‹ã®ãƒ•ã‚¡ã‚¤ãƒ« ``.hgeol``\n"
-"(構æˆç®¡ç†å¯èƒ½) ã‹ã‚‰è¨­å®šã‚’読ã¿è¾¼ã¿ã¾ã™ã€‚ ``.hgeol`` ファイルã®æ–‡æ³•ã¯ã€\n"
-"ä»–ã® Mercurial 設定ファイルã¨åŒã˜ã§ã™ã€‚ 本設定ファイルã§ã¯ã€\n"
-"``[patterns]`` 㨠``[repository]`` ã®2ã¤ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’記述å¯èƒ½ã§ã™ã€‚"
msgid ""
"The ``[patterns]`` section specifies how line endings should be\n"
@@ -2834,11 +2078,6 @@ msgid ""
"specific patterns first. The available line endings are ``LF``,\n"
"``CRLF``, and ``BIN``."
msgstr ""
-"``[patterns]`` セクションã¯ã€ 作業領域ã¨ãƒªãƒã‚¸ãƒˆãƒªè¨˜éŒ²ã®é–“ã«ãŠã‘ã‚‹ã€\n"
-"改行変æ›æ–¹æ³•ã«é–¢ã—ã¦è¨˜è¿°ã—ã¾ã™ã€‚ ファイルパターン形å¼ã§è¨˜è¿°ã—ã¾ã™ã€‚\n"
-"å…ˆã«åˆè‡´ã—ãŸãƒ‘ターンãŒæŽ¡ç”¨ã•ã‚Œã¾ã™ã®ã§ã€ より特徴的ãªãƒ‘ターンã»ã©ã€\n"
-"より先頭ã§è¨˜è¿°ã—ã¦ãã ã•ã„。 指定å¯èƒ½ãªæ”¹è¡Œå½¢å¼ã¯ ``LF``ã€\n"
-"``CRLF`` ãŠã‚ˆã³ ``BIN`` ã§ã™ã€‚"
msgid ""
"Files with the declared format of ``CRLF`` or ``LF`` are always\n"
@@ -2850,14 +2089,6 @@ msgid ""
"default behaviour; it is only needed if you need to override a later,\n"
"more general pattern."
msgstr ""
-"``CRLF`` ãªã„ã— ``LF`` ãŒæŒ‡å®šã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ 作業領域ã¸ã®å–り出ã—ã‚„ã€\n"
-"リãƒã‚¸ãƒˆãƒªã¸ã®æ ¼ç´ã®éš›ã«ã€ 指定ã®æ”¹è¡Œå½¢å¼ã«å¤‰æ›ã•ã‚Œã¾ã™ãŒã€ ãƒã‚¤ãƒŠãƒª\n"
-"(``BIN``) 指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ 改行変æ›ã•ã‚Œã¾ã›ã‚“。 ã“れらã«åŠ ãˆã¦ã€\n"
-"実行環境固有ã®æ”¹è¡Œå½¢å¼ã®ä½¿ç”¨ã‚’æ„味ã™ã‚‹ ``native`` も使用å¯èƒ½ã§ã™:\n"
-"Unix (Mac OS X å«ã‚€) 環境ã§ã¯ ``LF``〠Windows 環境ã§ã¯ ``CRLF``。\n"
-"``BIN`` (改行変æ›ç„¡ã—) ã¯ã€ Mercurial ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®æŒ™å‹•ã§ã™:\n"
-"一般的ãªãƒ‘ターン指定ã«ã€ æ„図ã›ãšåˆè‡´ã—ã¦ã—ã¾ã†ã®ã‚’回é¿ã—ãŸã„å ´åˆã«ã€\n"
-"当該パターンよりも先ã«åˆè‡´ã•ã›ã‚‹å ´åˆã«ã®ã¿æœ‰ç”¨ã§ã™ã€‚"
msgid ""
"The optional ``[repository]`` section specifies the line endings to\n"
@@ -2870,18 +2101,9 @@ msgid ""
"declared as ``LF``, ``CRLF``, or ``BIN`` in the ``[patterns]`` section\n"
"are always stored as-is in the repository."
msgstr ""
-"``[repository]`` セクションã¯ä»˜åŠ çš„ãªã‚‚ã®ã§ã€ リãƒã‚¸ãƒˆãƒªæ ¼ç´ã®éš›ã®ã€\n"
-"改行形å¼ã‚’指定ã—ã¾ã™ã€‚ 記述å¯èƒ½ãªè¨­å®šã¯ ``native`` ã®ã¿ã§ã€\n"
-"``[patterns]`` セクションã«ãŠã„㦠``native`` 指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’ã€\n"
-"履歴ã«è¨˜éŒ²ã™ã‚‹éš›ã®æ”¹è¡Œå½¢å¼ã‚’指定ã—ã¾ã™ã€‚ 指定å¯èƒ½ãªå€¤ã¯ ``LF`` ãªã„ã—\n"
-"``CRLF`` ã§ã™ã€‚ 無指定時㯠``LF`` ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚ 例ãˆã° Windows 上ã§\n"
-"``native`` (デフォルト設定㯠``CRLF``) 指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€\n"
-"改行形å¼ãŒ ``LF`` ã«å¤‰æ›ã•ã‚ŒãŸä¸Šã§ã€ 履歴ã«è¨˜éŒ²ã•ã‚Œã¾ã™ã€‚\n"
-"``[patterns]`` セクションã«ãŠã„㦠``LF``〠``CRLF`` ãªã„ã— ``BIN``\n"
-"ãŒæŒ‡å®šã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ ãã®ã¾ã¾ã®æ”¹è¡Œå½¢å¼ã§å±¥æ­´ã«è¨˜éŒ²ã•ã‚Œã¾ã™ã€‚"
msgid "Example versioned ``.hgeol`` file::"
-msgstr "``.hgeol`` ファイルã®è¨˜è¿°ä¾‹::"
+msgstr ""
msgid ""
" [patterns]\n"
@@ -2891,12 +2113,6 @@ msgid ""
" Makefile = LF\n"
" **.jpg = BIN"
msgstr ""
-" [patterns]\n"
-" **.py = native\n"
-" **.vcproj = CRLF\n"
-" **.txt = native\n"
-" Makefile = LF\n"
-" **.jpg = BIN"
msgid ""
" [repository]\n"
@@ -2910,21 +2126,12 @@ msgid ""
" 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 ""
-".. note::\n"
-" 変æ›è¨­å®šã®é©ç”¨å¥‘æ©Ÿã¯ã€ 作業領域中ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã™ã‚‹æœ€åˆã®æ›´æ–°ã§ã™ã€‚\n"
-" 例ãˆã°ã€ :hg:`update null` 後㮠:hg:`update tip` ã«ã‚ˆã‚Šã€\n"
-" å…¨ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒæ›´æ–°ã•ã‚Œã¾ã™ã€‚"
msgid ""
-"The extension uses an optional ``[eol]`` section read from both the\n"
-"normal Mercurial configuration files and the ``.hgeol`` file, with the\n"
-"latter overriding the former. You can use that section to control the\n"
-"overall behavior. There are three settings:"
+"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:"
msgstr ""
-"本エクステンションã¯ã€ 通常㮠Mercurial 設定ファイル㨠``.hgeol``\n"
-"ã®ä¸¡æ–¹ã‹ã‚‰ã€ 付加的㪠``[eol]`` セクションを読ã¿è¾¼ã¿ã¾ã™ãŒã€\n"
-"後者ã®è¨­å®šãŒå‰è€…ã«å„ªå…ˆã—ã¾ã™ã€‚ 本セクションã¯å…¨èˆ¬çš„ãªæŒ™å‹•ã‚’制御ã—ã¾ã™ã€‚\n"
-"記述å¯èƒ½ãªè¨­å®šã¯ä»¥ä¸‹ã®3種類ã§ã™:"
msgid ""
"- ``eol.native`` (default ``os.linesep``) can be set to ``LF`` or\n"
@@ -2932,11 +2139,6 @@ msgid ""
" checkout. This can be used with :hg:`archive` on Unix, say, to\n"
" generate an archive where files have line endings for Windows."
msgstr ""
-"- ``eol.native`` (無指定時㯠``os.linesep`` ã¨åŒå€¤) ã«ã¯ã€ ``LF`` ãªã„ã—\n"
-" ``CRLF`` ãŒæŒ‡å®šå¯èƒ½ã§ã€ ``native`` 指定ファイルã®ä½œæ¥­é ˜åŸŸå–り出ã—ã‚’ã€\n"
-" ã©ã®æ”¹è¡Œå½¢å¼ã§å®Ÿæ–½ã™ã‚‹ã‹ã‚’指定ã—ã¾ã™ã€‚ :hg:`archive` 実施ã®éš›ã«ã€\n"
-" ã“ã®è¨­å®šã‚’è¡Œã†ã“ã¨ã§ã€ Unix 上ã§ç”Ÿæˆã—ãŸã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã«ã€ Windows\n"
-" ã®æ”¹è¡Œå½¢å¼ã‚’æŒã¤ãƒ•ã‚¡ã‚¤ãƒ«ã‚’æ ¼ç´ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚"
msgid ""
"- ``eol.only-consistent`` (default True) can be set to False to make\n"
@@ -2945,21 +2147,6 @@ msgid ""
" Such files are normally not touched under the assumption that they\n"
" have mixed EOLs on purpose."
msgstr ""
-"- ``eol.only-consistent`` (無指定時㯠True) ã® False 設定ã«ã‚ˆã‚Šã€\n"
-" 本エクステンションã«ã€ ä¸æ•´åˆãªæ”¹è¡Œå½¢å¼ã‚’許容ã•ã›ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚\n"
-" 「ä¸æ•´åˆã€ã¨ã¯ã€ ``CRLF`` 㨠``LF`` ã®ä¸¡æ–¹ã®æ”¹è¡Œå½¢å¼ã‚’æŒã¤è¡ŒãŒã€\n"
-" åŒä¸€ãƒ•ã‚¡ã‚¤ãƒ«ä¸­ã«æ··åœ¨ã—ã¦ã„ã‚‹ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚ ã“ã®ã‚ˆã†ãªæ”¹è¡Œå½¢å¼ã¯ã€\n"
-" 特定用途å‘ã‘ã®æ„図的ãªã‚‚ã®ã¨ã„ã†ä»®å®šã®å…ƒã§ã€ 改行形å¼ã®å¤‰æ›å¯¾è±¡ã‹ã‚‰ã¯ã€\n"
-" 除外ã™ã‚‹ã®ãŒä¸€èˆ¬çš„ã§ã™ã€‚"
-
-msgid ""
-"- ``eol.fix-trailing-newline`` (default False) can be set to True to\n"
-" ensure that converted files end with a EOL character (either ``\\n``\n"
-" or ``\\r\\n`` as per the configured patterns)."
-msgstr ""
-"- ``eol.fix-trailing-newline`` (無指定時㯠False) ã® True 設定ã«ã‚ˆã‚Šã€\n"
-" 改行形å¼å¤‰æ›å¾Œã®ãƒ•ã‚¡ã‚¤ãƒ«ã®æœ«å°¾ãŒã€ 改行 (設定ã«å¿œã˜ã¦ ``\\n`` ãªã„ã—\n"
-" ``\\r\\n``) ã§çµ‚了ã™ã‚‹ã“ã¨ãŒä¿è¨¼ã•ã‚Œã¾ã™ã€‚"
msgid ""
"The extension provides ``cleverencode:`` and ``cleverdecode:`` filters\n"
@@ -2967,11 +2154,6 @@ msgid ""
"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 ""
-"本エクステンションã¯ã€ éžæŽ¨å¥¨ã® win32text エクステンションã¨åŒæ§˜ã«ã€\n"
-"``cleverencode:`` ãŠã‚ˆã³ ``cleverdecode:`` フィルタをæä¾›ã—ã¦ã„ã¾ã™ã€‚\n"
-"ãã®ãŸã‚〠win32text ã®ç„¡åŠ¹åŒ–㨠eol ã®æœ‰åŠ¹åŒ–ã‚’è¡Œã£ã¦ã‚‚ã€\n"
-"既存ã®ãƒ•ã‚£ãƒ«ã‚¿è¨­å®šã¯æ©Ÿèƒ½ã—続ã‘ã¾ã™ã€‚ 既存ã®ãƒ•ã‚£ãƒ«ã‚¿è¨­å®šãŒå¿…è¦ãªã®ã¯ã€\n"
-"``.hgeol`` 設定を記述ã™ã‚‹ã¾ã§ã§ã™ã€‚"
msgid ""
"The ``win32text.forbid*`` hooks provided by the win32text extension\n"
@@ -2983,14 +2165,6 @@ msgid ""
"``eol.checkallhook`` hook. These hooks are best used as\n"
"``pretxnchangegroup`` hooks."
msgstr ""
-"win32text エクステンションã«ã‚ˆã‚‹ ``win32text.forbid*`` フック群ã¯ã€\n"
-"å˜ä¸€ã® ``eol.checkheadshook`` フックã«çµ±åˆã•ã‚Œã¾ã—ãŸã€‚ ã“ã®ãƒ•ãƒƒã‚¯ã¯ã€\n"
-"期待ã™ã‚‹æ”¹è¡Œå½¢å¼ã‚’ ``.hgeol`` ã‹ã‚‰ç‰¹å®šã—ã¾ã™ã®ã§ã€ フック使用ã®éš›ã«ã¯ã€\n"
-"ã¾ãšã¯ ``.hgeol`` 利用ã¸ã¨ç§»è¡Œã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ ``eol.checkheadshook``\n"
-"ãŒç¢ºèªã™ã‚‹ã®ã¯ã€ ヘッド (head) リビジョンã®ã¿ã§ã€ ãれ以外ã®ãƒªãƒ“ジョンã¯ã€\n"
-"改行形å¼ãŒä¸æ­£ã§ã‚‚無視ã•ã‚Œã¾ã™ã€‚ å…¨ã¦ã®ãƒªãƒ“ジョンã«ãŠã„ã¦ã€\n"
-"ä¸æ­£ãªæ”¹è¡Œå½¢å¼ã‚’ç¦æ­¢ã—ãŸã„å ´åˆã¯ ``eol.checkallhook`` を使用ã—ã¾ã™ã€‚\n"
-"ã“れらã®ãƒ•ãƒƒã‚¯ã¯ ``pretxnchangegroup`` フックã¨ã—ã¦ã®ä½¿ç”¨ã‚’想定ã—ã¦ã„ã¾ã™ã€‚"
msgid ""
"See :hg:`help patterns` for more information about the glob patterns\n"
@@ -2999,28 +2173,28 @@ msgstr "パターンåˆè‡´ã«é–¢ã™ã‚‹è©³ç´°ã¯ :hg:`help patterns` ã‚’å‚ç…§ã—
#, python-format
msgid "ignoring unknown EOL style '%s' from %s\n"
-msgstr "未知ã®æ”¹è¡Œå½¢å¼ '%s' (%s ç”±æ¥) を無視ã—ã¾ã™\n"
+msgstr ""
#, python-format
msgid "warning: ignoring .hgeol file due to parse error at %s: %s\n"
-msgstr "警告: 解æžã‚¨ãƒ©ãƒ¼ã«ã‚ˆã‚Š .hgeol ファイルを無視ã—ã¾ã™ (%s 行目: %s)\n"
+msgstr ""
#, python-format
msgid " %s in %s should not have %s line endings"
-msgstr " %s (リビジョン %s) ã®æ”¹è¡Œå½¢å¼ %s ã¯ä¸é©åˆ‡ã§ã™"
+msgstr ""
msgid "end-of-line check failed:\n"
-msgstr "改行形å¼ç¢ºèªã«å¤±æ•—:\n"
+msgstr ""
msgid "the eol extension is incompatible with the win32text extension\n"
msgstr "eol エクステンション㨠win32text エクステンションã¯ä½µç”¨ã§ãã¾ã›ã‚“\n"
#, python-format
msgid "inconsistent newline style in %s\n"
-msgstr "%s ã«ãŠã‘る改行形å¼ä¸æ•´åˆ\n"
+msgstr ""
msgid "command to allow external programs to compare revisions"
-msgstr "リビジョン間差分表示ã§ã®å¤–部コマンドã®åˆ©ç”¨"
+msgstr ""
msgid ""
"The extdiff Mercurial extension allows you to use external programs\n"
@@ -3029,17 +2203,11 @@ msgid ""
"non-option arguments: paths to directories containing snapshots of\n"
"files to compare."
msgstr ""
-"本エクステンションã¯ã€ リビジョン間〠ãªã„ã—リビジョンã¨ä½œæ¥­é ˜åŸŸã®é–“ã§ã€\n"
-"差分表示を行ã†éš›ã«ã€ 外部コマンドを利用å¯èƒ½ã«ã—ã¾ã™ã€‚ 外部コマンドã¯ã€\n"
-"設定ã§æ”¹å¤‰å¯èƒ½ãªã‚ªãƒ—ション群ã¨ã€ 2ã¤ã®å¼•æ•° (比較対象ファイルを格ç´ã—ãŸã€\n"
-"スナップショットディレクトリã¸ã®ãƒ‘ス) を使ã£ã¦èµ·å‹•ã•ã‚Œã¾ã™ã€‚"
msgid ""
"The extdiff extension also allows you to configure new diff commands, so\n"
"you do not need to type :hg:`extdiff -p kdiff3` always. ::"
msgstr ""
-"本エクステンションã§ã¯ã€ 差分コマンドを定義å¯èƒ½ãªã®ã§ã€ 実行ã®éƒ½åº¦ã€\n"
-":hg:`extdiff -p kdiff3` ã®ã‚ˆã†ãªæŒ‡å®šã‚’ã™ã‚‹å¿…è¦ã‚ã‚Šã¾ã›ã‚“::"
msgid ""
" [extdiff]\n"
@@ -3049,44 +2217,27 @@ msgid ""
" #cmd.cdiff = gdiff\n"
" #opts.cdiff = -Nprc5"
msgstr ""
-" [extdiff]\n"
-" # 'context diff' モード㧠GNU diff(1) ã‚’èµ·å‹•ã™ã‚‹è¨­å®šã‚’追加\n"
-" cdiff = gdiff -Nprc5\n"
-" ## æ—§æ¥ã®æ–¹å¼ã§ã®è¨­å®š:\n"
-" #cmd.cdiff = gdiff\n"
-" #opts.cdiff = -Nprc5"
msgid ""
" # add new command called vdiff, runs kdiff3\n"
" vdiff = kdiff3"
msgstr ""
-" # kdiff3 ã‚’èµ·å‹•ã™ã‚‹ vdiff 設定ã®è¿½åŠ \n"
-" vdiff = kdiff3"
msgid ""
" # add new command called meld, runs meld (no need to name twice)\n"
" meld ="
msgstr ""
-" # meld ã‚’èµ·å‹•ã™ã‚‹è¨­å®šã®è¿½åŠ  (åŒåã®å ´åˆã¯è¨­å®šå³è¾ºã‚’çœç•¥å¯èƒ½)\n"
-" meld ="
msgid ""
" # add new command called vimdiff, runs gvimdiff with DirDiff plugin\n"
" # (see http://www.vim.org/scripts/script.php?script_id=102) Non\n"
" # English user, be sure to put \"let g:DirDiffDynamicDiffText = 1\" in\n"
" # your .vimrc\n"
-" vimdiff = gvim -f \"+next\" \\\n"
-" \"+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))\""
+" vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'"
msgstr ""
-" # DirDiff (http://www.vim.org/scripts/script.php?script_id=102 å‚ç…§)\n"
-" # プラグイン併用㮠gvimdiff ã‚’ èµ·å‹•ã™ã‚‹ vimdiff 設定ã®è¿½åŠ ã€‚\n"
-" # éžè‹±èªžåœã®åˆ©ç”¨è€…ã¯ã€ .vimrc 設定ファイルã«ãŠã‘ã‚‹\n"
-" # \"let g:DirDiffDynamicDiffText = 1\" 指定ãŒå¿…è¦ã€‚\n"
-" vimdiff = gvim -f \"+next\" \\\n"
-" \"+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))\""
msgid "Tool arguments can include variables that are expanded at runtime::"
-msgstr "外部コマンドã¸ã®å¼•æ•°ã«ã¯ã€ 実行時ã«ç½®æ›ã•ã‚Œã‚‹å¤‰æ•°ã‚’指定ã§ãã¾ã™::"
+msgstr ""
msgid ""
" $parent1, $plabel1 - filename, descriptive label of first parent\n"
@@ -3095,18 +2246,11 @@ msgid ""
" $root - repository root\n"
" $parent is an alias for $parent1."
msgstr ""
-" $parent1, $plabel1 - 第1親リビジョンã®ãƒ•ã‚¡ã‚¤ãƒ«åã¨èª¬æ˜Žæ–‡å­—列\n"
-" $child, $clabel - å­ãƒªãƒ“ジョンã®ãƒ•ã‚¡ã‚¤ãƒ«åã¨èª¬æ˜Žæ–‡å­—列\n"
-" $parent2, $plabel2 - 第2親リビジョンã®ãƒ•ã‚¡ã‚¤ãƒ«åã¨èª¬æ˜Žæ–‡å­—列\n"
-" $root - リãƒã‚¸ãƒˆãƒªã®ãƒ«ãƒ¼ãƒˆ\n"
-" $parent1 ã®åˆ¥åã¨ã—㦠$parent も使用å¯èƒ½"
msgid ""
"The extdiff extension will look in your [diff-tools] and [merge-tools]\n"
"sections for diff tool arguments, when none are specified in [extdiff]."
msgstr ""
-"差分表示ã®å¤–部コマンドã¸ã®å¼•æ•°è¨­å®šãŒ [extdiff] セクションã«ç„¡ã„å ´åˆã€\n"
-"本エクステンション㯠[diff-tools] ãŠã‚ˆã³ [merge-tools] ã®è¨­å®šã‚’å‚ç…§ã—ã¾ã™ã€‚"
msgid ""
" [extdiff]\n"
@@ -3119,8 +2263,6 @@ msgid ""
" [diff-tools]\n"
" kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child"
msgstr ""
-" [diff-tools]\n"
-" kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child"
msgid ""
"You can use -I/-X and list of file or directory names like normal\n"
@@ -3128,11 +2270,6 @@ msgid ""
"needed files, so running the external diff program will actually be\n"
"pretty fast (at least faster than having to compare the entire tree).\n"
msgstr ""
-"通常㮠:hg:`diff` 実行ã¨åŒæ§˜ã«ã€ -I/-X〠ãŠã‚ˆã³ãƒ•ã‚¡ã‚¤ãƒ«åã€\n"
-"ディレクトリåã®æŒ‡å®šãŒå¯èƒ½ã§ã™ã€‚ ã“ã®å ´åˆã€ 本エクステンションã¯ã€\n"
-"差分表示ã«å¿…è¦ãªåˆ†ã ã‘〠スナップショットを作æˆã—ã¾ã™ã®ã§ã€\n"
-"外部ã®å·®åˆ†è¡¨ç¤ºã‚³ãƒžãƒ³ãƒ‰ã®å®Ÿè¡Œã¯ã€ ã‚る程度高速化ã•ã‚Œã¾ã™ (å°‘ãªãã¨ã‚‚ã€\n"
-"リãƒã‚¸ãƒˆãƒªå…¨ä½“ã«å¯¾ã™ã‚‹å·®åˆ†è¡¨ç¤ºã‚ˆã‚Šã¯ã€ 確実ã«æ—©ã„ç­ˆã§ã™)。\n"
#, python-format
msgid "making snapshot of %d files from rev %s\n"
@@ -3143,22 +2280,19 @@ msgid "making snapshot of %d files from working directory\n"
msgstr "%d 個ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚¹ãƒŠãƒƒãƒ—ショットを作業領域ã‹ã‚‰ç”Ÿæˆä¸­\n"
msgid "cannot specify --rev and --change at the same time"
-msgstr "--rev 㨠--change ã¯åŒæ™‚ã«ã¯æŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "--rev 㨠--change ã¯åŒæ™‚ã«ã¯æŒ‡å®šå‡ºæ¥ã¾ã›ã‚“"
msgid "cleaning up temp directory\n"
-msgstr "一時ディレクトリを破棄ã—ã¦ã„ã¾ã™\n"
+msgstr "一時ディレクトリã®æ•´ç†ã‚’ã—ã¦ã„ã¾ã™\n"
msgid "use external program to diff repository (or selected files)"
-msgstr "外部コマンドを使用ã—ãŸãƒªãƒã‚¸ãƒˆãƒª(ãªã„ã—指定ファイル)ã®å·®åˆ†è¡¨ç¤º"
+msgstr ""
msgid ""
" Show differences between revisions for the specified files, using\n"
" an external program. The default program used is diff, with\n"
" default options \"-Npru\"."
msgstr ""
-" 指定ファイルã®ãƒªãƒ“ジョン間差分を〠外部コマンドを使ã£ã¦è¡¨ç¤ºã—ã¾ã™ã€‚\n"
-" 特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ 外部プログラムã«ã¯ã€\"-Npru\" オプション付ãã®\n"
-" \"diff\" コマンドãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid ""
" To select a different program, use the -p/--program option. The\n"
@@ -3166,11 +2300,6 @@ msgid ""
" pass additional options to the program, use -o/--option. These\n"
" will be passed before the names of the directories to compare."
msgstr ""
-" 外部プログラムを変更ã™ã‚‹å ´åˆã¯ã€ -p/--program ã§æŒ‡å®šã—ã¾ã™ã€‚\n"
-" 外部プログラム起動時ã«ã¯ã€ 比較対象ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒ2ã¤æŒ‡å®šã•ã‚Œã¾ã™ã€‚\n"
-" 付加的ãªã‚ªãƒ—ションãŒå¿…è¦ãªå ´åˆã¯ã€ -o/--option ã§æŒ‡å®šã—ã¾ã™ã€‚\n"
-" 外部プログラムã®èµ·å‹•å¼•æ•°ã¨ã—ã¦ã¯ã€ オプション指定ã®æ–¹ãŒã€\n"
-" 比較対象ディレクトリよりも先ã«æŒ‡å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
" When two revision arguments are given, then changes are shown\n"
@@ -3179,21 +2308,22 @@ msgid ""
" revisions are specified, the working directory files are compared\n"
" to its parent."
msgstr ""
-" リビジョンãŒ2ã¤æŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 指定リビジョン間ã®å·®åˆ†ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚\n"
-" リビジョンãŒ1ã¤æŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 作業領域ã¨ã®é–“ã®å·®åˆ†ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚\n"
-" リビジョンãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ 作業領域ã¨è¦ªã¨ã®å·®åˆ†ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚"
+" 2ã¤ã®ãƒªãƒ“ジョンãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ リビジョン間ã®å·®åˆ†ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚\n"
+" 1ã¤ã®ãƒªãƒ“ジョンãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 指定リビジョンã¨ä½œæ¥­é ˜åŸŸé–“ã®å·®åˆ†ãŒ\n"
+" 表示ã•ã‚Œã¾ã™ã€‚ 何もリビジョンãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ 作業領域ã¨ãã®\n"
+" 親リビジョン間ã®å·®åˆ†ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚"
msgid "CMD"
msgstr "コマンド"
msgid "comparison program to run"
-msgstr "差分表示プログラム"
+msgstr "比較実行用プログラム"
msgid "OPT"
-msgstr "オプション"
+msgstr ""
msgid "pass option to comparison program"
-msgstr "差分表示プログラムã¸ã®ã‚ªãƒ—ション指定"
+msgstr "比較実行用プログラムã¸ã®ã‚ªãƒ—ション指定"
msgid "revision"
msgstr "リビジョン"
@@ -3206,98 +2336,28 @@ msgstr "hg extdiff [OPT]... [FILE]..."
#, python-format
msgid "use %(path)s to diff repository (or selected files)"
-msgstr "%(path)s ã«ã‚ˆã‚‹ãƒªãƒã‚¸ãƒˆãƒª(ãªã„ã—指定ファイル)ã®å·®åˆ†è¡¨ç¤º"
+msgstr ""
#, python-format
msgid ""
" Show differences between revisions for the specified files, using\n"
" the %(path)s program."
msgstr ""
-" 外部プログラム %(path)s を使用ã—ã¦ã€ リビジョン間ã«ãŠã‘ã‚‹ã€\n"
-" 指定ファイルã®å·®åˆ†ã‚’表示ã—ã¾ã™ã€‚"
#, python-format
msgid "hg %s [OPTION]... [FILE]..."
msgstr "hg %s [OPTION]... [FILE]..."
-msgid "http authentication with factotum"
-msgstr "factotum ã§ã® http èªè¨¼"
-
-msgid ""
-"This extension allows the factotum(4) facility on Plan 9 from Bell Labs\n"
-"platforms to provide authentication information for HTTP access. "
-"Configuration\n"
-"entries specified in the auth section as well as authentication information\n"
-"provided in the repository URL are fully supported. If no prefix is "
-"specified,\n"
-"a value of \"*\" will be assumed."
-msgstr ""
-"本エクステンションã¯ã€ ベル研㮠Plan 9 環境ã«ãŠã‘ã‚‹ factotum(4) 機能をã€\n"
-"HTTP アクセスã§ã®èªè¨¼æƒ…å ±å–å¾—ã§ã€ 利用ã§ãるよã†ã«ã—ã¾ã™ã€‚ 連æºå¯¾è±¡ã®\n"
-"URL 中ã®èªè¨¼æƒ…å ±åŒæ§˜ã«ã€ 設定ファイル㮠auth セクションã«ãŠã‘る設定もã€\n"
-"サãƒãƒ¼ãƒˆå¯¾è±¡ã§ã™ã€‚ 設定ã«ãŠã„ã¦ã€ 値ãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã¯ã€\n"
-"``*`` 指定ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
-
-msgid "By default, keys are specified as::"
-msgstr "デフォルトã§ã¯ã€ キーã®æŒ‡å®šã¯ä»¥ä¸‹ã®ã‚ˆã†ã«è¡Œã„ã¾ã™::"
-
-msgid ""
-" proto=pass service=hg prefix=<prefix> user=<username> !password=<password>"
-msgstr ""
-" proto=pass service=hg prefix=<prefix> user=<username> !password=<password>"
-
-msgid ""
-"If the factotum extension is unable to read the required key, one will be\n"
-"requested interactively."
-msgstr ""
-"å¿…è¦ãªã‚­ãƒ¼ã‚’読ã¿è¾¼ã‚ãªã„å ´åˆã€ factotum エクステンションã¯ã€\n"
-"対話的ãªã‚­ãƒ¼ã®è¦æ±‚ã‚’è¡Œã„ã¾ã™ã€‚"
-
-msgid ""
-"A configuration section is available to customize runtime behavior. By\n"
-"default, these entries are::"
-msgstr ""
-"実行時ã®æŒ™å‹•ã¯ã€ 設定ã«ã‚ˆã£ã¦å¤‰æ›´å¯èƒ½ã§ã™ã€‚ デフォルトã®è¨­å®šã¯ã€\n"
-"以下ã®ã‚ˆã†ã«ãªã£ã¦ã„ã¾ã™::"
-
-msgid ""
-" [factotum]\n"
-" executable = /bin/auth/factotum\n"
-" mountpoint = /mnt/factotum\n"
-" service = hg"
-msgstr ""
-" [factotum]\n"
-" executable = /bin/auth/factotum\n"
-" mountpoint = /mnt/factotum\n"
-" service = hg"
-
-msgid ""
-"The executable entry defines the full path to the factotum binary. The\n"
-"mountpoint entry defines the path to the factotum file service. Lastly, the\n"
-"service entry controls the service name used when reading keys."
-msgstr ""
-"executable 設定ã¯ã€ factotum ãƒã‚¤ãƒŠãƒªã¸ã®ãƒ•ãƒ«ãƒ‘スを指定ã—ã¾ã™ã€‚\n"
-"mountpoint 設定ã¯ã€ factotum ファイルサービスを指定ã—ã¾ã™ã€‚\n"
-"service 設定ã¯ã€ キーã®èª­ã¿è¾¼ã¿ã«ä½¿ç”¨ã™ã‚‹ã‚µãƒ¼ãƒ“スåを制御ã—ã¾ã™ã€‚"
-
-msgid "factotum not interactive"
-msgstr "factotum ãŒå¯¾è©±çš„ã«å®Ÿè¡Œã•ã‚Œã¦ã„ã¾ã›ã‚“"
-
-msgid "factotum not responding"
-msgstr "factotum ãŒå¿œç­”ã—ã¾ã›ã‚“"
-
-msgid "pull, update and merge in one command (DEPRECATED)"
-msgstr "pull, update, merge ã®ä¸€æ‹¬å®Ÿè¡Œ (éžæŽ¨å¥¨)"
+msgid "pull, update and merge in one command"
+msgstr "pull, update, merge ã®ä¸€æ‹¬å®Ÿè¡Œ"
msgid "pull changes from a remote repository, merge new changes if needed."
-msgstr "連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã‹ã‚‰ã®å–ã‚Šè¾¼ã¿ã¨ã€ å¿…è¦ã«å¿œã˜ãŸãƒžãƒ¼ã‚¸å®Ÿæ–½"
+msgstr "é éš”リãƒã‚¸ãƒˆãƒªã‹ã‚‰ã®å–ã‚Šè¾¼ã¿ã¨ã€ å¿…è¦ã«ãŠã†ã˜ãŸãƒžãƒ¼ã‚¸å®Ÿæ–½"
msgid ""
" This finds all changes from the repository at the specified path\n"
" or URL and adds them to the local repository."
msgstr ""
-" 指定ã®ãƒ‘ス/URL ãŒæŒ‡ã™ãƒªãƒã‚¸ãƒˆãƒªã‹ã‚‰ã€ 手元ã®ãƒªãƒã‚¸ãƒˆãƒªã«å¯¾ã—ã¦ã€\n"
-" å…¨ã¦ã®å¤‰æ›´ã‚’å–ã‚Šè¾¼ã¿ã¾ã™ã€‚"
msgid ""
" If the pulled changes add a new branch head, the head is\n"
@@ -3305,18 +2365,13 @@ msgid ""
" Otherwise, the working directory is updated to include the new\n"
" changes."
msgstr ""
-" 変更å–ã‚Šè¾¼ã¿ã«ã‚ˆã£ã¦ã€ æ–°è¦ã®ãƒ–ランãƒãƒ˜ãƒƒãƒ‰ãŒç”Ÿæˆã•ã‚Œã‚‹å ´åˆã€\n"
-" ヘッドã®ãƒžãƒ¼ã‚¸ã¨ã€ マージçµæžœã®ã‚³ãƒŸãƒƒãƒˆãŒã€ 自動的ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" ãれ以外ã®å ´åˆã¯ã€ 作業領域ãŒæœ€æ–°ã®ãƒªãƒ“ジョンã«æ›´æ–°ã•ã‚Œã¾ã™ã€‚"
msgid ""
-" When a merge is needed, the working directory is first updated to\n"
-" the newly pulled changes. Local changes are then merged into the\n"
-" pulled changes. To switch the merge order, use --switch-parent."
+" When a merge occurs, the newly pulled changes are assumed to be\n"
+" \"authoritative\". The head of the new changes is used as the first\n"
+" parent, with local changes as the second. To switch the merge\n"
+" order, use --switch-parent."
msgstr ""
-" マージã®å¿…è¦ãŒã‚ã‚‹å ´åˆã€ å–ã‚Šè¾¼ã¾ã‚ŒãŸå¤‰æ›´ã«ã‚ˆã‚‹ä½œæ¥­é ˜åŸŸã®æ›´æ–°ãŒã€\n"
-" 最åˆã«å®Ÿæ–½ã•ã‚Œã¾ã™ã€‚ 次ã«ã€ 手元ã®å¤‰æ›´ãŒä½œæ¥­é ˜åŸŸã«ãƒžãƒ¼ã‚¸ã•ã‚Œã¾ã™ã€‚\n"
-" マージã®é †åºã‚’変更ã™ã‚‹å ´åˆã¯ã€ --switch-parent を指定ã—ã¾ã™ã€‚"
msgid " See :hg:`help dates` for a list of formats valid for -d/--date."
msgstr " -d/--date ã§ã®æ—¥æ™‚表記㯠:hg:`help dates` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
@@ -3330,13 +2385,13 @@ msgstr ""
msgid ""
"working dir not at branch tip (use \"hg update\" to check out branch tip)"
-msgstr "作業領域ã¯ãƒ–ランãƒã®æœ€æ–°ã§ã¯ã‚ã‚Šã¾ã›ã‚“(\"hg update\" ã§æœ€æ–°ã«æ›´æ–°å¯èƒ½)"
+msgstr "作業領域ã¯ãƒ–ランãƒã®æœ€æ–°ã§ã¯ã‚ã‚Šã¾ã›ã‚“(:hg:`update` ã§æœ€æ–°ã«æ›´æ–°å¯èƒ½)"
msgid "outstanding uncommitted merge"
msgstr "マージãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™"
msgid "outstanding uncommitted changes"
-msgstr "変更ãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™"
+msgstr "未コミットã®å¤‰æ›´ãŒã‚ã‚Šã¾ã™"
msgid "working directory is missing some files"
msgstr "作業領域ã«å­˜åœ¨ã—ãªã„ファイルãŒã‚ã‚Šã¾ã™"
@@ -3344,25 +2399,23 @@ msgstr "作業領域ã«å­˜åœ¨ã—ãªã„ファイルãŒã‚ã‚Šã¾ã™"
msgid ""
"multiple heads in this branch (use \"hg heads .\" and \"hg merge\" to merge)"
msgstr ""
-"ブランãƒã«è¤‡æ•°ã®ãƒ˜ãƒƒãƒ‰ãŒã‚ã‚Šã¾ã™(\"hg heads .\" ã§ç¢ºèªã€\"hg merge\" ã§ãƒžãƒ¼"
-"ジ)"
+"ブランãƒã«è¤‡æ•°ã®ãƒ˜ãƒƒãƒ‰ãŒã‚ã‚Šã¾ã™(:hg:`heads .` ã§ç¢ºèªã€ :hg:`merge` ã§ãƒžãƒ¼ã‚¸)"
#, python-format
msgid "pulling from %s\n"
msgstr "%s ã‹ã‚‰å–ã‚Šè¾¼ã¿ä¸­\n"
msgid ""
-"other repository doesn't support revision lookup, so a rev cannot be "
+"Other repository doesn't support revision lookup, so a rev cannot be "
"specified."
-msgstr "連æºå…ˆã§ãƒªãƒ“ジョンãŒç‰¹å®šã§ããªã„ãŸã‚〠リビジョンã¯æŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "連æºå…ˆã§ãƒªãƒ“ジョンãŒç‰¹å®šå‡ºæ¥ãªã„ãŸã‚〠リビジョンã¯æŒ‡å®šã§ãã¾ã›ã‚“"
#, python-format
msgid ""
"not merging with %d other new branch heads (use \"hg heads .\" and \"hg merge"
"\" to merge them)\n"
msgstr ""
-"æ–°è¦ãƒ˜ãƒƒãƒ‰ %d 個ã¯ãƒžãƒ¼ã‚¸æœªå®Ÿæ–½(\"hg heads .\" ã§ç¢ºèªã€\"hg merge\" ã§ãƒžãƒ¼"
-"ジ)\n"
+"æ–°è¦ãƒ˜ãƒƒãƒ‰ %d 個ã¯ãƒžãƒ¼ã‚¸æœªå®Ÿæ–½(:hg:`heads .` ã§ç¢ºèªã€ :hg:`merge` ã§ãƒžãƒ¼ã‚¸)\n"
#, python-format
msgid "updating to %d:%s\n"
@@ -3374,16 +2427,16 @@ msgstr "%d ã¨ãƒžãƒ¼ã‚¸ã—ã¦ã„ã¾ã™:%s\n"
#, python-format
msgid "new changeset %d:%s merges remote changes with local\n"
-msgstr "æ–°è¦ãƒªãƒ“ジョン %d:%s ã«ã‚ˆã‚Šã€é€£æºå…ˆã¨ãƒ­ãƒ¼ã‚«ãƒ«ã®ãƒªãƒ“ジョンをマージ\n"
+msgstr "æ–°è¦ãƒªãƒ“ジョン %d:%s ã§é éš”ã¨ãƒ­ãƒ¼ã‚«ãƒ«ã®ãƒªãƒ“ジョンをマージ\n"
msgid "a specific revision you would like to pull"
msgstr "å–ã‚Šè¾¼ã¿å¯¾è±¡ãƒªãƒ“ジョンã®æŒ‡å®š"
msgid "edit commit message"
-msgstr "コミットログã®ç·¨é›†"
+msgstr "コミットメッセージã®ç·¨é›†"
msgid "edit commit message (DEPRECATED)"
-msgstr "コミットログã®ç·¨é›†(éžæŽ¨å¥¨)"
+msgstr "コミットメッセージã®ç·¨é›†(éžæŽ¨å¥¨)"
msgid "switch parents when merging"
msgstr "マージã®éš›ã®ç¬¬1親リビジョンを切り替ãˆ"
@@ -3392,7 +2445,7 @@ msgid "hg fetch [SOURCE]"
msgstr "hg fetch [SOURCE]"
msgid "commands to sign and verify changesets"
-msgstr "リビジョンã¸ã®ç½²åãŠã‚ˆã³æ¤œè¨¼ã‚³ãƒžãƒ³ãƒ‰"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®ç½²åãŠã‚ˆã³æ¤œè¨¼ã®ã‚³ãƒžãƒ³ãƒ‰"
msgid "error while verifying signature"
msgstr "ç½²å検証中ã®ã‚¨ãƒ©ãƒ¼"
@@ -3419,14 +2472,14 @@ msgstr "ç½²å済ã¿ãƒªãƒ“ジョンã®ä¸€è¦§è¡¨ç¤º"
msgid "%s:%d node does not exist\n"
msgstr "%s:%d ノードã¯å­˜åœ¨ã—ã¾ã›ã‚“\n"
-msgid "hg sigcheck REV"
-msgstr "hg sigcheck REV"
+msgid "hg sigcheck REVISION"
+msgstr "hg sigcheck REVISION"
msgid "verify all the signatures there may be for a particular revision"
msgstr "特定リビジョンã«é–¢ã™ã‚‹å…¨ç½²åã®æ¤œè¨¼"
#, python-format
-msgid "no valid signature for %s\n"
+msgid "No valid signature for %s\n"
msgstr "%s ã®æ­£ã—ã„ç½²åã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
msgid "make the signature local"
@@ -3448,10 +2501,10 @@ msgid "TEXT"
msgstr "テキスト"
msgid "commit message"
-msgstr "コミットログ"
+msgstr "コミットメッセージ"
-msgid "hg sign [OPTION]... [REV]..."
-msgstr "hg sign [OPTION]... [REV]..."
+msgid "hg sign [OPTION]... [REVISION]..."
+msgstr "hg sign [OPTION]... [REVISION]..."
msgid "add a signature for the current or given revision"
msgstr "指定リビジョンã¸ã®ç½²åã®ä»˜ä¸Ž"
@@ -3460,21 +2513,19 @@ msgid ""
" If no revision is given, the parent of the working directory is used,\n"
" or tip if no revision is checked out."
msgstr ""
-" リビジョンãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ 作業領域ã®è¦ªãƒªãƒ“ジョンãŒã€\n"
-" 親リビジョン㌠null ã®å ´åˆã¯ tip ãŒå¯¾è±¡ã«ãªã‚Šã¾ã™ã€‚"
msgid ""
" See :hg:`help dates` for a list of formats valid for -d/--date.\n"
" "
msgstr ""
-" -d/--date ã§ã®æ—¥æ™‚表記㯠:hg:`help dates` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。\n"
+" -d/--date ã§ã®æ—¥æ™‚表記㯠:he:`help dates` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。\n"
" "
msgid "uncommitted merge - please provide a specific revision"
msgstr "マージãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™ - 対象リビジョンを指定ã—ã¦ãã ã•ã„"
#, python-format
-msgid "signing %d:%s\n"
+msgid "Signing %d:%s\n"
msgstr "%d:%s ã¸ã®ç½²å中\n"
msgid "error while signing"
@@ -3490,72 +2541,46 @@ msgid "unknown signature version"
msgstr "未知ã®ç½²åãƒãƒ¼ã‚¸ãƒ§ãƒ³"
msgid "command to view revision graphs from a shell"
-msgstr "端末ã§ã®å±¥æ­´ãƒ„リー表示ã®ã‚³ãƒžãƒ³ãƒ‰"
+msgstr "端末ã§ã®ãƒªãƒ“ジョングラフ表示ã®ã‚³ãƒžãƒ³ãƒ‰"
msgid ""
"This extension adds a --graph option to the incoming, outgoing and log\n"
"commands. When this options is given, an ASCII representation of the\n"
"revision graph is also shown.\n"
msgstr ""
-"本エクステンションã¯ã€ incoming, outgoing ãŠã‚ˆã³ log コマンドã«ã€\n"
-"æ–°è¦ã‚ªãƒ—ション --graph を付与ã—ã¾ã™ã€‚ --graph 指定ã«ã‚ˆã‚Šã€ ASCII\n"
-"文字ã«ã‚ˆã‚‹å±¥æ­´ãƒ„リーãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚\n"
+"本エクステンションã¯ã€ incoming, outgoing ãŠã‚ˆã³ log コマンド㫠--graph\n"
+"オプションを付与ã—ã¾ã™ã€‚ ã“ã®ã‚ªãƒ—ションãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ ASCII 文字ã«ã‚ˆã‚‹\n"
+"リビジョングラフãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚\n"
-msgid "follow changeset history, or file history across copies and renames"
-msgstr "複製元や改åå…ƒã®å±¥æ­´ã‚‚é¡ã‚‹"
+#, python-format
+msgid "-G/--graph option is incompatible with --%s"
+msgstr "-G/--graph 㨠--%s ã¯ä½µç”¨å‡ºæ¥ã¾ã›ã‚“"
-msgid "only follow the first parent of merge changesets (DEPRECATED)"
-msgstr "マージã®éš›ã«ã¯ç¬¬1親ã®ã¿ã‚’é¡ã‚‹ (DEPRECATED)"
+msgid "-G/--graph option is incompatible with --follow with file argument"
+msgstr "-G/--graph ã¨ã€ãƒ•ã‚¡ã‚¤ãƒ«å指定付ãã® --follow ã¯ä½µç”¨å‡ºæ¥ã¾ã›ã‚“"
-msgid "show revisions matching date spec"
-msgstr "指定日時ã«åˆè‡´ã™ã‚‹ãƒªãƒ“ジョンを表示"
+msgid "NUM"
+msgstr "数値"
-msgid "show copied files"
-msgstr "複製ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示"
+msgid "limit number of changes displayed"
+msgstr "最大表示リビジョン数"
-msgid "do case-insensitive search for a given text"
-msgstr "指定キーワードã«ã‚ˆã‚‹æ¤œç´¢(大文字å°æ–‡å­—ã¯ç„¡è¦–)"
+msgid "show patch"
+msgstr "パッãƒå½¢å¼ã§ã®è¡¨ç¤º"
msgid "show the specified revision or range"
msgstr "指定ã•ã‚ŒãŸå˜ä¸€ã€ ãªã„ã—リビジョン区間ã®è¡¨ç¤º"
-msgid "include revisions where files were removed"
-msgstr "ファイルãŒç™»éŒ²é™¤å¤–ã•ã‚ŒãŸãƒªãƒ“ジョンをå«ã‚ã‚‹"
-
-msgid "show only merges (DEPRECATED)"
-msgstr "マージ実施リビジョンã®ã¿ã‚’表示 (DEPRECATED)"
-
-msgid "USER"
-msgstr "ユーザ"
-
-msgid "revisions committed by user"
-msgstr "当該ユーザã«ã‚ˆã‚‹ãƒªãƒ“ジョンを表示"
-
-msgid "show only changesets within the given named branch (DEPRECATED)"
-msgstr "指定ã®åå‰ä»˜ãブランãƒã«å±žã™ã‚‹ãƒªãƒ“ジョンを表示 (éžæŽ¨å¥¨)"
-
-msgid "BRANCH"
-msgstr "ブランãƒ"
-
-msgid "show changesets within the given named branch"
-msgstr "指定ã®åå‰ä»˜ãブランãƒã«å±žã™ã‚‹ãƒªãƒ“ジョンを表示"
-
-msgid "do not display revision or any of its ancestors"
-msgstr "当該リビジョンã¨ãã®ç¥–å…ˆã®è¡¨ç¤ºã‚’抑止"
-
-msgid "show hidden changesets (DEPRECATED)"
-msgstr "éš ã‚ŒãŸãƒªãƒ“ジョンã®è¡¨ç¤º (DEPRECATED)"
-
-msgid "[OPTION]... [FILE]"
-msgstr "[OPTION]... [FILE]"
+msgid "hg glog [OPTION]... [FILE]"
+msgstr "hg glog [OPTION]... [FILE]"
msgid "show revision history alongside an ASCII revision graph"
-msgstr "ASCII 文字ã«ã‚ˆã‚‹å±¥æ­´ãƒ„リー併用ã®å±¥æ­´è¡¨ç¤º"
+msgstr "ASCII 文字ã«ã‚ˆã‚‹ãƒªãƒ“ジョングラフ表示をæŒã¤å±¥æ­´è¡¨ç¤º"
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"
@@ -3565,6 +2590,9 @@ msgstr ""
" @ 文字ã§è¡¨ç¤ºã•ã‚Œã‚‹ãƒªãƒ“ジョンã¯ã€ 作業領域ã®è¦ªãƒªãƒ“ジョンã§ã™ã€‚\n"
" "
+msgid "show the revision DAG"
+msgstr "リビジョングラフã®è¡¨ç¤º"
+
msgid "hooks for integrating with the CIA.vc notification service"
msgstr "CIA.vc 通知サービスã¨ã®çµ±åˆå‘ã‘ã®ãƒ•ãƒƒã‚¯é›†"
@@ -3572,8 +2600,6 @@ msgid ""
"This is meant to be run as a changegroup or incoming hook. To\n"
"configure it, set the following options in your hgrc::"
msgstr ""
-"changegroup ãªã„ã— incoming フックã¨ã—ã¦ã®å®Ÿè¡Œã‚’想定ã—ã¦ã„ã¾ã™ã€‚\n"
-"以下ã®ã‚ˆã†ãªè¨­å®šã‚’〠Mercurial 設定ファイルã«è¨˜è¿°ã—ã¦ãã ã•ã„::"
msgid ""
" [cia]\n"
@@ -3599,28 +2625,6 @@ msgid ""
" # number of slashes to strip for url paths\n"
" #strip = 0"
msgstr ""
-" [cia]\n"
-" # CIA ã®ç™»éŒ²ãƒ¦ãƒ¼ã‚¶å\n"
-" user = foo\n"
-" # CIA ã«ãŠã‘るプロジェクトå\n"
-" project = foo\n"
-" # モジュール (副プロジェクト) (çœç•¥å¯èƒ½)\n"
-" #module = foo\n"
-" # ログメッセージã¸ã® diffstat ã®è¿½åŠ  (çœç•¥å¯èƒ½)\n"
-" #diffstat = False\n"
-" # ログメッセージ用テンプレート指定 (çœç•¥å¯èƒ½)\n"
-" #template = {desc}\\n{baseurl}{webroot}/rev/{node}-- {diffstat}\n"
-" # スタイル指定 (çœç•¥å¯èƒ½)\n"
-" #style = foo\n"
-" # CIA 通知サービス㮠URL (çœç•¥å¯èƒ½)\n"
-" # é›»å­ãƒ¡ãƒ¼ãƒ«ã§é€šçŸ¥ã™ã‚‹å ´åˆã€ 以下ã®ã‚ˆã†ãª mailto: URL を使用å¯èƒ½\n"
-" # mailto:cia@cia.vc\n"
-" # é›»å­ãƒ¡ãƒ¼ãƒ«ä½¿ç”¨ã®éš›ã«ã¯ email.from 設定ãŒå¿…須。\n"
-" #url = http://cia.vc/\n"
-" # メッセージをé€ä¿¡ã›ãšã«è¡¨ç¤º (çœç•¥å¯èƒ½)\n"
-" #test = False\n"
-" # URL パスã‹ã‚‰å–り除ãスラッシュ数\n"
-" #strip = 0"
msgid ""
" [hooks]\n"
@@ -3628,19 +2632,12 @@ msgid ""
" changegroup.cia = python:hgcia.hook\n"
" #incoming.cia = python:hgcia.hook"
msgstr ""
-" [hooks]\n"
-" # 以下ã®ã„ãšã‚Œã‹:\n"
-" changegroup.cia = python:hgcia.hook\n"
-" #incoming.cia = python:hgcia.hook"
msgid ""
" [web]\n"
" # If you want hyperlinks (optional)\n"
" baseurl = http://server/path/to/repo\n"
msgstr ""
-" [web]\n"
-" # ãƒã‚¤ãƒ‘ーリンクãŒå¿…è¦ãªå ´åˆ (çœç•¥å¯èƒ½)\n"
-" baseurl = http://server/path/to/repo\n"
#, python-format
msgid "%s returned an error: %s"
@@ -3661,9 +2658,6 @@ msgid ""
"graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is not\n"
"distributed with Mercurial.)"
msgstr ""
-"本エクステンションã¯ã€ GUI ã«ã‚ˆã‚‹å±¥æ­´ã®å‚照をå¯èƒ½ã«ã—ã¾ã™ã€‚\n"
-"利用ã«å½“ãŸã£ã¦ã¯ã€ 8.4 以é™ã® Tcl/Tk ãŒå¿…è¦ã§ã™\n"
-"(Tcl/Tk 㯠Mercurial ã«ã¯åŒæ¢±ã•ã‚Œã¦ã„ã¾ã›ã‚“)"
msgid ""
"hgk consists of two parts: a Tcl script that does the displaying and\n"
@@ -3672,56 +2666,38 @@ msgid ""
"the contrib directory, and the extension is shipped in the hgext\n"
"repository, and needs to be enabled."
msgstr ""
-"本エクステンション (hgk) ã¯ã€ 2ã¤ã®éƒ¨ä½ã‹ã‚‰æ§‹æˆã•ã‚Œã¾ã™:\n"
-"情報ã®è¡¨ç¤ºï¼å…¥åŠ›ç”¨ã® Tcl スクリプト部ã¨ã€ Mercurial\n"
-"ã‹ã‚‰ã®æƒ…報入手フックを定義ã™ã‚‹ã€ Mercurial エクステンションã¨ã—ã¦ã®\n"
-"hgk.py スクリプトã§ã™ã€‚ Tcl スクリプト部 (hgk) 㯠contrib\n"
-"ディレクトリé…下ã«ã€ エクステンション部 (hgk.py) 㯠hgext\n"
-"ディレクトリé…下ã«æ ¼ç´ã•ã‚Œã¦ãŠã‚Šã€ 使用ã«å½“ãŸã£ã¦ã¯ã€\n"
-"エクステンションã®æœ‰åŠ¹åŒ–ãŒå¿…è¦ã§ã™ã€‚"
msgid ""
"The :hg:`view` command will launch the hgk Tcl script. For this command\n"
"to work, hgk must be in your search path. Alternately, you can specify\n"
"the path to hgk in your configuration file::"
msgstr ""
-":hg:`view` コマンドã«ã‚ˆã‚Šã€ hgk ã® Tcl スクリプトãŒèµ·å‹•ã•ã‚Œã¾ã™ã€‚\n"
-"実行ã®éš›ã«ã¯ã€ コマンド検索パス上㫠hgk スクリプトãŒãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。\n"
-"ã‚ã‚‹ã„ã¯ã€ 設定ファイルã«ãŠã„ã¦ã€ hgk ã¸ã®ãƒ‘スを指定ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™::"
msgid ""
" [hgk]\n"
" path=/location/of/hgk"
msgstr ""
-" [hgk]\n"
-" path=/location/of/hgk"
msgid ""
"hgk can make use of the extdiff extension to visualize revisions.\n"
"Assuming you had already configured extdiff vdiff command, just add::"
msgstr ""
-"extdiff エクステンションã®ä½µç”¨ã§ã€ 差分をグラフィカルã«è¡¨ç¤ºã§ãã¾ã™ã€‚\n"
-"extdiff 㧠vdiff コマンドãŒè¨­å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã€ 以下ã®è¨˜è¿°ã‚’追加ã—ã¾ã™::"
msgid ""
" [hgk]\n"
" vdiff=vdiff"
msgstr ""
-" [hgk]\n"
-" vdiff=vdiff"
msgid ""
"Revisions context menu will now display additional entries to fire\n"
"vdiff on hovered and selected revisions.\n"
msgstr ""
-"上記設定ã«ã‚ˆã‚Šã€ リビジョンã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆãƒ¡ãƒ‹ãƒ¥ãƒ¼ã«ã¯ã€ 対象リビジョンã¨ã€\n"
-"指定ã—ãŸãƒªãƒ“ジョンã«å¯¾ã—ã¦ã€ vdiff ã‚’èµ·å‹•ã™ã‚‹é …ç›®ãŒè¿½åŠ ã•ã‚Œã¾ã™ã€‚\n"
msgid "diff trees from two commits"
-msgstr "2リビジョン間ã®å·®åˆ†ãƒ„リー表示"
+msgstr ""
msgid "output common ancestor information"
-msgstr "共通ã®ç¥–先リビジョンã®æƒ…報表示"
+msgstr "共通ã®å…ˆç¥–リビジョンã®æƒ…報表示"
msgid "cat a specific revision"
msgstr "指定リビジョン時点ã®å†…容表示"
@@ -3730,7 +2706,7 @@ msgid "cat-file: type or revision not supplied\n"
msgstr "cat-file: 種別もリビジョンも指定ã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
msgid "aborting hg cat-file only understands commits\n"
-msgstr "中断: catfile 㯠commit 種別ã§ã®ã¿å®Ÿè¡Œå¯èƒ½ã§ã™\n"
+msgstr ""
msgid "parse given revisions"
msgstr "指定リビジョンã®è§£æž"
@@ -3744,12 +2720,6 @@ msgstr "エクステンション設定ã®è¡¨ç¤º"
msgid "start interactive history viewer"
msgstr "対話的ãªå±¥æ­´å‚ç…§ã®é–‹å§‹"
-msgid "NUM"
-msgstr "数値"
-
-msgid "limit number of changes displayed"
-msgstr "最大表示リビジョン数"
-
msgid "hg view [-l LIMIT] [REVRANGE]"
msgstr "hg view [-l LIMIT] [REVRANGE]"
@@ -3760,7 +2730,7 @@ msgid "recursive"
msgstr "å†èµ·"
msgid "pretty"
-msgstr "ヘッダã®æ•´å½¢å‡ºåŠ›"
+msgstr ""
msgid "stdin"
msgstr "標準入力"
@@ -3783,7 +2753,6 @@ msgstr "hg debug-config"
msgid "hg debug-merge-base REV REV"
msgstr "hg debug-merge-base REV REV"
-#. i18n: bisect changeset status
msgid "ignored"
msgstr "無視ã—ã¾ã—ãŸ"
@@ -3806,406 +2775,23 @@ msgid "hg debug-rev-list [OPTION]... REV..."
msgstr "hg debug-rev-list [OPTION]... REV..."
msgid "syntax highlighting for hgweb (requires Pygments)"
-msgstr "hgweb ã«ãŠã‘るシンタックスãƒã‚¤ãƒ©ã‚¤ãƒˆ (è¦ Pygments)"
+msgstr "hgweb ã«ãŠã‘るシンタックスãƒã‚¤ãƒ©ã‚¤ãƒˆã®å®Ÿæ–½(è¦ Pygments)"
msgid ""
"It depends on the Pygments syntax highlighting library:\n"
"http://pygments.org/"
msgstr ""
-"本エクステンションã«ã¯ã€ シンタックスãƒã‚¤ãƒ©ã‚¤ãƒˆãƒ©ã‚¤ãƒ–ラリ㮠Pygments\n"
-"ãŒå¿…è¦ã§ã™: http://pygments.org/"
msgid "There is a single configuration option::"
-msgstr "本エクステンションã«å¯¾ã—ã¦ã¯ã€ä»¥ä¸‹ã®è¨­å®šã®ã¿ãŒå¯èƒ½ã§ã™::"
+msgstr ""
msgid ""
" [web]\n"
" pygments_style = <style>"
msgstr ""
-" [web]\n"
-" pygments_style = <style>"
msgid "The default is 'colorful'.\n"
-msgstr "無指定時ã®è¨­å®šã¯ 'colorful' ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚\n"
-
-msgid "interactive history editing"
-msgstr "対話的ãªå±¥æ­´æ”¹å¤‰"
-
-msgid ""
-"With this extension installed, Mercurial gains one new command: histedit. "
-"Usage\n"
-"is as follows, assuming the following history::"
-msgstr ""
-"本エクステンションã®æœ‰åŠ¹åŒ–ã«ã‚ˆã‚Š histedit コマンドãŒåˆ©ç”¨å¯èƒ½ã«ãªã‚Šã¾ã™ã€‚\n"
-"以é™ã®èª¬æ˜Žã§ã¯ã€ 以下ã®å±¥æ­´ã‚’å‰æã¨ã—ã¦ã„ã¾ã™::"
-
-msgid ""
-" @ 3[tip] 7c2fd3b9020c 2009-04-27 18:04 -0500 durin42\n"
-" | Add delta\n"
-" |\n"
-" o 2 030b686bedc4 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 1 c561b4e977df 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-" @ 3[tip] 7c2fd3b9020c 2009-04-27 18:04 -0500 durin42\n"
-" | Add delta\n"
-" |\n"
-" o 2 030b686bedc4 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 1 c561b4e977df 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-
-msgid ""
-"If you were to run ``hg histedit c561b4e977df``, you would see the "
-"following\n"
-"file open in your editor::"
-msgstr ""
-"``hg histedit c561b4e977df`` 実行ã«ã‚ˆã‚Šã€ エディタãŒèµ·å‹•ã•ã‚ŒãŸä¸Šã§ã€\n"
-"以下ã®å†…容ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒé–‹ã‹ã‚Œã¾ã™::"
-
-msgid ""
-" pick c561b4e977df Add beta\n"
-" pick 030b686bedc4 Add gamma\n"
-" pick 7c2fd3b9020c Add delta"
-msgstr ""
-" pick c561b4e977df Add beta\n"
-" pick 030b686bedc4 Add gamma\n"
-" pick 7c2fd3b9020c Add delta"
-
-msgid ""
-" # Edit history between 633536316234 and 7c2fd3b9020c\n"
-" #\n"
-" # Commands:\n"
-" # p, pick = use commit\n"
-" # e, edit = use commit, but stop for amending\n"
-" # f, fold = use commit, but fold into previous commit\n"
-" # d, drop = remove commit from history\n"
-" # m, mess = edit message without changing commit content\n"
-" #"
-msgstr ""
-" # Edit history between 633536316234 and 7c2fd3b9020c\n"
-" #\n"
-" # Commands:\n"
-" # p, pick = use commit\n"
-" # e, edit = use commit, but stop for amending\n"
-" # f, fold = use commit, but fold into previous commit\n"
-" # d, drop = remove commit from history\n"
-" # m, mess = edit message without changing commit content\n"
-" #"
-
-msgid ""
-"In this file, lines beginning with ``#`` are ignored. You must specify a "
-"rule\n"
-"for each revision in your history. For example, if you had meant to add "
-"gamma\n"
-"before beta, and then wanted to add delta in the same revision as beta, you\n"
-"would reorganize the file to look like this::"
-msgstr ""
-"ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ä¸­ã® ``#`` ã§å§‹ã¾ã‚‹è¡Œã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚ 履歴編集対象ã«å¯¾ã—ã¦ã€\n"
-"å„リビジョン毎ã®å‡¦ç†å†…容 (rule) を指定ã—ã¦ãã ã•ã„。 例ãˆã° \"Add beta\"\n"
-"ã«ã‚ˆã‚‹æ”¹å¤‰ã‚ˆã‚Šã‚‚ \"Add gamma\" ã«ã‚ˆã‚‹æ”¹å¤‰ã‚’å…ˆã«å®Ÿæ–½ã—ãŸä¸Šã§ã€ \"Add\n"
-"delta\" ã«ã‚ˆã‚‹æ”¹å¤‰ã‚’ \"Add beta\" ã¸ã¨ä½µåˆ (fold) ã™ã‚‹å ´åˆãªã‚‰ã€\n"
-"以下ã®ã‚ˆã†ã«è¨˜è¿°ã—ã¾ã™::"
-
-msgid ""
-" pick 030b686bedc4 Add gamma\n"
-" pick c561b4e977df Add beta\n"
-" fold 7c2fd3b9020c Add delta"
-msgstr ""
-" pick 030b686bedc4 Add gamma\n"
-" pick c561b4e977df Add beta\n"
-" fold 7c2fd3b9020c Add delta"
-
-msgid ""
-"At which point you close the editor and ``histedit`` starts working. When "
-"you\n"
-"specify a ``fold`` operation, ``histedit`` will open an editor when it "
-"folds\n"
-"those revisions together, offering you a chance to clean up the commit "
-"message::"
-msgstr ""
-"``histedit`` ã®å®Ÿéš›ã®å‡¦ç†ã¯ã€ エディタを終了ã•ã›ãŸæ™‚点ã‹ã‚‰å§‹ã¾ã‚Šã¾ã™ã€‚\n"
-"``fold`` æ“作を指定ã—ãŸå ´åˆã€ ä½µåˆå¾Œãƒªãƒ“ジョンã®ã‚³ãƒŸãƒƒãƒˆãƒ­ã‚°å…¥åŠ›ã®ãŸã‚ã«ã€\n"
-"ä½µåˆå¯¾è±¡ã¨ä½µåˆå…ˆã®å„コミットログを〠以下ã®æ§˜ã«çµåˆã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’ã€\n"
-"``histedit`` ãŒã‚¨ãƒ‡ã‚£ã‚¿ã§é–‹ãã¾ã™::"
-
-msgid ""
-" Add beta\n"
-" ***\n"
-" Add delta"
-msgstr ""
-" Add beta\n"
-" ***\n"
-" Add delta"
-
-msgid ""
-"Edit the commit message to your liking, then close the editor. For\n"
-"this example, let's assume that the commit message was changed to\n"
-"``Add beta and delta.`` After histedit has run and had a chance to\n"
-"remove any old or temporary revisions it needed, the history looks\n"
-"like this::"
-msgstr ""
-"コミットログã®ç·¨é›†ã‚’終ãˆãŸãªã‚‰ã€ エディタを終了ã—ã¾ã™ã€‚ ã“ã“ã§ã¯ã€\n"
-"コミットログを ``Add beta and delta.`` ã«å¤‰æ›´ã—ãŸã‚‚ã®ã¨ä»®å®šã—ã¾ã™ã€‚\n"
-"histedit ã«ã‚ˆã‚‹æ”¹å¤‰å‡¦ç†ãŒå®Œäº†ã™ã‚‹ã¨ã€ 以下ã®æ§˜ãªå±¥æ­´ã«ãªã‚Šã¾ã™::"
-
-msgid ""
-" @ 2[tip] 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-" @ 2[tip] 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-
-msgid ""
-"Note that ``histedit`` does *not* remove any revisions (even its own "
-"temporary\n"
-"ones) until after it has completed all the editing operations, so it will\n"
-"probably perform several strip operations when it's done. For the above "
-"example,\n"
-"it had to run strip twice. Strip can be slow depending on a variety of "
-"factors,\n"
-"so you might need to be a little patient. You can choose to keep the "
-"original\n"
-"revisions by passing the ``--keep`` flag."
-msgstr ""
-"``histedit`` ã®å±¥æ­´æ”¹å¤‰å‡¦ç†ã§ã¯ã€ 改変処ç†ãŒå®Œäº†ã™ã‚‹ã¾ã§ã¯ã€(例ãˆãã‚ŒãŒã€\n"
-"作業用ã®ä¸€æ™‚çš„ãªã‚‚ã®ã§ã‚ã£ã¦ã‚‚) 履歴ãŒå‰Šé™¤ã•ã‚Œã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“ã®ã§ã€\n"
-"処ç†çµ‚了直å‰ã«ã¯ã€ ãŠãらã複数ã®ãƒªãƒ“ジョンã®ç ´æ£„ãŒè¡Œã‚ã‚Œã¾ã™ã€‚\n"
-"上記ã®ä¾‹ã®å ´åˆã€ 2回ã®å±¥æ­´ç ´æ£„ãŒè¡Œã‚れる筈ã§ã™ã€‚ 履歴破棄ã®å®Ÿè¡Œé€Ÿåº¦ã¯ã€\n"
-"様々ãªè¦å› ãŒå…ƒã§ä½Žä¸‹ã—å¾—ã¾ã™ã®ã§ã€ 多少ã®æˆ‘æ…¢ãŒå¿…è¦ã«ãªã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。\n"
-"``--keep`` を指定ã™ã‚‹ã“ã¨ã§ã€ 履歴ã®ç ´æ£„を抑止å¯èƒ½ã§ã™ã€‚"
-
-msgid ""
-"The ``edit`` operation will drop you back to a command prompt,\n"
-"allowing you to edit files freely, or even use ``hg record`` to commit\n"
-"some changes as a separate commit. When you're done, any remaining\n"
-"uncommitted changes will be committed as well. When done, run ``hg\n"
-"histedit --continue`` to finish this step. You'll be prompted for a\n"
-"new commit message, but the default commit message will be the\n"
-"original message for the ``edit`` ed revision."
-msgstr ""
-"``edit`` æ“作を指定ã—ãŸå ´åˆã€ 一旦コマンド入力ã«æˆ»ã‚Šã¾ã™ã®ã§ã€\n"
-"ファイル内容ã®ç·¨é›†ã‚„〠``hg record`` ã«ã‚ˆã‚‹é¸æŠžçš„ãªå¤‰æ›´ã®å–ã‚Šè¾¼ã¿ãªã©ã‚’ã€\n"
-"自由ã«è¡Œã£ã¦ãã ã•ã„。 変更作業ãŒå®Œäº†ã—ãŸãªã‚‰ã€ ``hg histedit --continue``\n"
-"を実行ã™ã‚‹ã“ã¨ã§ã€ 作業領域中ã®å¤‰æ›´å†…容ãŒã€ 変更後リビジョンã¨ã—ã¦ã€\n"
-"コミットã•ã‚Œã¾ã™ã€‚ ã“ã®éš›ã«ã€ コミットログã®å•ã„åˆã‚ã›ãŒã‚ã‚Šã¾ã™ãŒã€\n"
-"デフォルト値㯠``edit`` 対処リビジョンã®ã€ 元々ã®ã‚³ãƒŸãƒƒãƒˆãƒ­ã‚°ã®å†…容ã§ã™ã€‚"
-
-msgid ""
-"The ``message`` operation will give you a chance to revise a commit\n"
-"message without changing the contents. It's a shortcut for doing\n"
-"``edit`` immediately followed by `hg histedit --continue``."
-msgstr ""
-"``message`` æ“作ã¯ã€ 対象リビジョンã§ã®å¤‰æ›´å†…容ã¯ãã®ã¾ã¾ã«ã€\n"
-"コミットログã®ã¿ã‚’変更ã—ã¾ã™ã€‚ ã“れ㯠``edit`` æ“作を指定ã—ãŸä¸Šã§ã€\n"
-"コマンド入力ã«æˆ»ã£ã¦ã™ãã« ``hg histedit --continue`` を実施ã™ã‚‹ã®ã¨ã€\n"
-"å…¨ãåŒã˜æŒ™å‹•ã¨ãªã‚Šã¾ã™ã€‚"
-
-msgid ""
-"If ``histedit`` encounters a conflict when moving a revision (while\n"
-"handling ``pick`` or ``fold``), it'll stop in a similar manner to\n"
-"``edit`` with the difference that it won't prompt you for a commit\n"
-"message when done. If you decide at this point that you don't like how\n"
-"much work it will be to rearrange history, or that you made a mistake,\n"
-"you can use ``hg histedit --abort`` to abandon the new changes you\n"
-"have made and return to the state before you attempted to edit your\n"
-"history."
-msgstr ""
-"履歴改変ã«ã‚ˆã‚‹è¡çªãŒ ``histedit`` ã«ã‚ˆã£ã¦ (``pick`` ã‚„ ``fold``\n"
-"æ“作ã«ãŠã„ã¦) 検出ã•ã‚ŒãŸå ´åˆã«ã€ 一旦コマンド入力ã«æˆ»ã‚‹ç‚¹ã¯ ``edit``\n"
-"æ“作ã¨åŒã˜ã§ã™ãŒã€ è¡çªè§£æ¶ˆä½œæ¥­ãŒå®Œäº†ã—㦠``hg histedit --continue``\n"
-"を実行ã—ã¦ã‚‚〠コミットログã®å•ã„åˆã‚ã›ãŒç„¡ã„点㯠``edit`` ã¨ç•°ãªã‚Šã¾ã™ã€‚\n"
-"ã“ã®æ™‚点ã§ã€ 履歴改変ã«ä¼´ã†ä½œæ¥­é‡ã®å•é¡Œã‚„〠間é•ã„ã«æ°—付ã„ãŸå ´åˆã¯ã€\n"
-"``hg histedit --abort`` 実行ã«ã‚ˆã£ã¦ã€ ã“ã‚Œã¾ã§ã®ä½œæ¥­æˆæžœãŒç ´æ£„ã•ã‚Œã€\n"
-"履歴ã¯æ”¹å¤‰å‰ã®çŠ¶æ…‹ã«æˆ»ã‚Šã¾ã™ã€‚"
-
-msgid ""
-"If we clone the example repository above and add three more changes, such "
-"that\n"
-"we have the following history::"
-msgstr ""
-"上記ã®å®Ÿè¡Œä¾‹ã«ãŠã‘るリãƒã‚¸ãƒˆãƒªã‚’複製ã—〠ãã“ã§å±¥æ­´ã‚’3ã¤è¿½åŠ ã—ãŸçµæžœã€\n"
-"以下ã®æ§˜ãªå±¥æ­´ã«ãªã£ãŸã‚‚ã®ã¨ä»®å®šã—ã¾ã™::"
-
-msgid ""
-" @ 6[tip] 038383181893 2009-04-27 18:04 -0500 stefan\n"
-" | Add theta\n"
-" |\n"
-" o 5 140988835471 2009-04-27 18:04 -0500 stefan\n"
-" | Add eta\n"
-" |\n"
-" o 4 122930637314 2009-04-27 18:04 -0500 stefan\n"
-" | Add zeta\n"
-" |\n"
-" o 3 836302820282 2009-04-27 18:04 -0500 stefan\n"
-" | Add epsilon\n"
-" |\n"
-" o 2 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-" @ 6[tip] 038383181893 2009-04-27 18:04 -0500 stefan\n"
-" | Add theta\n"
-" |\n"
-" o 5 140988835471 2009-04-27 18:04 -0500 stefan\n"
-" | Add eta\n"
-" |\n"
-" o 4 122930637314 2009-04-27 18:04 -0500 stefan\n"
-" | Add zeta\n"
-" |\n"
-" o 3 836302820282 2009-04-27 18:04 -0500 stefan\n"
-" | Add epsilon\n"
-" |\n"
-" o 2 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-
-msgid ""
-"If you run ``hg histedit --outgoing`` on the clone then it is the same\n"
-"as running ``hg histedit 836302820282``. If you need plan to push to a\n"
-"repository that Mercurial does not detect to be related to the source\n"
-"repo, you can add a ``--force`` option.\n"
-msgstr ""
-"複製『先ã€ã®ãƒªãƒã‚¸ãƒˆãƒªã§ ``hg histedit --outgoing`` を実行ã—ãŸå ´åˆã€\n"
-"``hg histedit 836302820282`` 実行ã¨åŒã˜çµæžœã¨ãªã‚Šã¾ã™ã€‚ Mercurial ãŒã€\n"
-"連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã¨ã®é–¢é€£æ€§ã‚’〠検出ã§ããªã„å ´åˆã§ã‚‚〠``--force``\n"
-"を指定ã™ã‚‹ã“ã¨ã§ã€ 元リãƒã‚¸ãƒˆãƒªã¨ã®é–¢é€£ã‚ã‚Šã¨ã¿ãªã™ã“ã¨ãŒã§ãã¾ã™ã€‚\n"
-
-msgid "cannot edit history that would orphan nodes"
-msgstr "履歴ツリーãŒåˆ†æ–­ã•ã‚Œã‚‹ã‚ˆã†ãªå±¥æ­´æ”¹å¤‰ã¯ã§ãã¾ã›ã‚“"
-
-msgid "can't edit history with merges"
-msgstr "マージã«é–¢ã‚る履歴ã®æ”¹å¤‰ã¯ã§ãã¾ã›ã‚“"
-
-#, python-format
-msgid "%s: empty changeset"
-msgstr "%s: 空ã®ãƒªãƒ“ジョン"
-
-msgid "Fix up the change and run hg histedit --continue"
-msgstr "è¡çªè§£æ¶ˆå¾Œã« \"hg histedit --continue\" ã—ã¦ãã ã•ã„"
-
-msgid ""
-"Make changes as needed, you may commit or record as needed now.\n"
-"When you are finished, run hg histedit --continue to resume."
-msgstr ""
-"å¿…è¦ã«å¿œã˜ã¦å¤‰æ›´ï¼è¨˜éŒ²ã‚’è¡Œã£ã¦ãã ã•ã„。 作業ãŒå®Œäº†ã—ãŸãªã‚‰ã°ã€\n"
-"改変å†é–‹ã®ãŸã‚ã« hg histedit --continue を実行ã—ã¦ãã ã•ã„。"
-
-msgid "Read history edits from the specified file."
-msgstr "履歴改変手順を指定ファイルã‹ã‚‰èª­ã¿è¾¼ã¿"
-
-msgid "continue an edit already in progress"
-msgstr "中断ã•ã‚ŒãŸå±¥æ­´æ”¹å¤‰ã‚’å†é–‹"
-
-msgid "don't strip old nodes after edit is complete"
-msgstr "改変元ã®å±¥æ­´ã‚’改変完了後もä¿æŒ"
-
-msgid "abort an edit in progress"
-msgstr "進行中ã®å±¥æ­´æ”¹å¤‰ã‚’中止"
-
-msgid "changesets not found in destination"
-msgstr "連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã«ã€ å«ã¾ã‚Œãªã„リビジョンを〠改変対象化"
-
-msgid "force outgoing even for unrelated repositories"
-msgstr "連æºå…ˆãŒç„¡é–¢ä¿‚ãªãƒªãƒã‚¸ãƒˆãƒªã§ã‚‚〠比較を実施"
-
-msgid "first revision to be edited"
-msgstr "改変対象ã®æœ€åˆã®ãƒªãƒ“ジョン"
-
-msgid "[PARENT]"
-msgstr "[PARENT]"
-
-msgid ""
-"interactively edit changeset history\n"
-" "
msgstr ""
-"対話的ãªå±¥æ­´ã®æ”¹å¤‰\n"
-" "
-
-msgid "source has mq patches applied"
-msgstr "元リãƒã‚¸ãƒˆãƒªã§ã¯ MQ パッãƒãŒé©ç”¨ä¸­ã§ã™"
-
-msgid "only one repo argument allowed with --outgoing"
-msgstr "--outgoing 指定時ã«ã¯ã€å¼•æ•°ã¯ï¼‘ã¤ã—ã‹æŒ‡å®šã§ãã¾ã›ã‚“"
-
-#, python-format
-msgid "comparing with %s\n"
-msgstr "%s ã¨æ¯”較中\n"
-
-msgid "--force only allowed with --outgoing"
-msgstr "--outgoing 指定時ã®ã¿ --force を指定å¯èƒ½ã§ã™"
-
-msgid "no arguments allowed with --continue"
-msgstr "--continue 指定時ã¯å¼•æ•°ã‚’指定ã§ãã¾ã›ã‚“"
-
-msgid "no arguments allowed with --abort"
-msgstr "--abort 指定時ã¯å¼•æ•°ã‚’指定ã§ãã¾ã›ã‚“"
-
-msgid "history edit already in progress, try --continue or --abort"
-msgstr "履歴改変ã¯ç¶™ç¶šä¸­ã§ã™ã€‚ --continue ã¾ãŸã¯ --abort を指定ã—ã¦ãã ã•ã„"
-
-msgid "histedit requires exactly one parent revision"
-msgstr "履歴改変ã«ã¯å˜ä¸€ã®è¦ªãƒªãƒ“ジョンを指定ã—ã¦ãã ã•ã„"
-
-msgid "histedit: Should update metadata for the following changes:\n"
-msgstr "histedit: 以下ã®ãƒªãƒ“ジョンã®ãŸã‚ã«ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®æ›´æ–°ãŒå¿…è¦ã§ã™:\n"
-
-#, python-format
-msgid "histedit: %s to %s\n"
-msgstr "histedit: %s ã‹ã‚‰ %s ã¸\n"
-
-#, python-format
-msgid "histedit: moving bookmarks %s\n"
-msgstr "histedit: ブックマーク %s ã®ç§»å‹•ä¸­\n"
-
-msgid "must specify a rule for each changeset once"
-msgstr "1リビジョン毎ã«ï¼‘ã¤ã®ãƒ«ãƒ¼ãƒ«æŒ‡å®šãŒå¿…è¦ã§ã™"
-
-#, python-format
-msgid "malformed line \"%s\""
-msgstr "ä¸æ­£ãªè¡Œ \"%s\""
-
-msgid "may not use changesets other than the ones listed"
-msgstr "対象範囲以外ã®ãƒªãƒ“ジョンã¯æŒ‡å®šã§ãã¾ã›ã‚“"
-
-#, python-format
-msgid "unknown changeset %s listed"
-msgstr "未知ã®ãƒªãƒ“ジョン %s ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸ"
-
-#, python-format
-msgid "unknown action \"%s\""
-msgstr "未知ã®æ“作 \"%s\" ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸ"
msgid "accelerate status report using Linux's inotify service"
msgstr "Linux ã® inoitfy サービスã«ã‚ˆã‚‹çŠ¶æ…‹å ±å‘Šã®é«˜é€ŸåŒ–"
@@ -4657,7 +3243,7 @@ msgid ""
" kwexpand refuses to run if given files contain local changes.\n"
" "
msgstr ""
-" 指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã®å¤‰æ›´ãŒæœªã‚³ãƒŸãƒƒãƒˆã®å ´åˆã€ 実行ã¯ä¸­æ–­ã•ã‚Œã¾ã™ã€‚\n"
+" 指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã«æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ãŒã‚ã‚‹å ´åˆã€ 実行ã¯ä¸­æ–­ã•ã‚Œã¾ã™ã€‚\n"
" "
msgid "show keyword status flags of all files"
@@ -4731,571 +3317,9 @@ msgid ""
" kwshrink refuses to run if given files contain local changes.\n"
" "
msgstr ""
-" 指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã®å¤‰æ›´ãŒæœªã‚³ãƒŸãƒƒãƒˆã®å ´åˆã€ 実行ã¯ä¸­æ–­ã•ã‚Œã¾ã™ã€‚\n"
+" 指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã«æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ãŒã‚ã‚‹å ´åˆã€ 実行ã¯ä¸­æ–­ã•ã‚Œã¾ã™ã€‚\n"
" "
-msgid "track large binary files"
-msgstr "大容é‡ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã®ç®¡ç†"
-
-msgid ""
-"Large binary files tend to be not very compressible, not very\n"
-"diffable, and not at all mergeable. Such files are not handled\n"
-"efficiently by Mercurial's storage format (revlog), which is based on\n"
-"compressed binary deltas; storing large binary files as regular\n"
-"Mercurial files wastes bandwidth and disk space and increases\n"
-"Mercurial's memory usage. The largefiles extension addresses these\n"
-"problems by adding a centralized client-server layer on top of\n"
-"Mercurial: largefiles live in a *central store* out on the network\n"
-"somewhere, and you only fetch the revisions that you need when you\n"
-"need them."
-msgstr ""
-"大容é‡ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã®å–り扱ã„ã¯ã€ 圧縮〠差分å–得〠マージã®ç‚¹ã§ã€\n"
-"éžå¸¸ã«é›£ã—ã„ã§ã™ã€‚ ãƒã‚¤ãƒŠãƒªå·®åˆ†ã®åœ§ç¸®ã‚’ベースã«ã—㟠Mercurial ã®æ ¼ç´å½¢å¼\n"
-"(revlog å½¢å¼) ã§ãã®ã‚ˆã†ãªãƒ•ã‚¡ã‚¤ãƒ«ã‚’扱ã†ã®ã¯ã€ 効率ãŒè‰¯ãã‚ã‚Šã¾ã›ã‚“:\n"
-"大容é‡ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã‚’〠通常ファイルã¨åŒæ§˜ã«æ ¼ç´ã—ãŸå ´åˆã€ \n"
-"転é€å¸¯åŸŸã‚„ã€ãƒ‡ã‚£ã‚¹ã‚¯ï¼ãƒ¡ãƒ¢ãƒªã®æ¶ˆè²»é‡ã‚’増加ã•ã›ã¦ã—ã¾ã„ã¾ã™ã€‚\n"
-"largefiles エクステンションã¯ã€ Mercurial ã®ä»•çµ„ã¿ã®ä¸Šã«ã€ クライアント/\n"
-"サーãƒçš„ãªã€ 中央集約的ãªæ©Ÿèƒ½ã‚’追加ã™ã‚‹ã“ã¨ã§ã€ ã“ã®å•é¡Œã«å¯¾å‡¦ã—ã¾ã™:\n"
-"大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ä¸Šã® *中央格ç´é ˜åŸŸ* ã§ä¿æŒã•ã‚Œã€\n"
-"リビジョンå‚照時ã«å¿…è¦ã¨ãªã£ãŸæ™‚点ã§ã€ å¿…è¦ãªç‰ˆã ã‘ãŒå–å¾—ã•ã‚Œã¾ã™ã€‚\n"
-"(※ 訳注: 「中央格ç´é ˜åŸŸã€ (central store) ã¯ã€ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ä¸Šã«1ã¤ã ã‘ã€\n"
-"ã¨é™å®šã•ã‚Œã¦ã„ã‚‹ã‚ã‘ã§ã¯ã‚ã‚Šã¾ã›ã‚“。 通常㮠Mercurial リãƒã‚¸ãƒˆãƒªåŒæ§˜ã€\n"
-"åŒä¸€ã®å¤§å®¹é‡ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã‚’〠複数ã®å ´æ‰€ã«æ ¼ç´ã•ã›ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚\n"
-"「中央ã€ã¨ã„ã†ã®ã¯ã€ ã‚ãã¾ã§èª¬æ˜Žã®ä¾¿å®œä¸Šã®è¡¨ç¾ã«éŽãŽã¾ã›ã‚“)"
-
-msgid ""
-"largefiles works by maintaining a \"standin file\" in .hglf/ for each\n"
-"largefile. The standins are small (41 bytes: an SHA-1 hash plus\n"
-"newline) and are tracked by Mercurial. Largefile revisions are\n"
-"identified by the SHA-1 hash of their contents, which is written to\n"
-"the standin. largefiles uses that revision ID to get/put largefile\n"
-"revisions from/to the central store. This saves both disk space and\n"
-"bandwidth, since you don't need to retrieve all historical revisions\n"
-"of large files when you clone or pull."
-msgstr ""
-"largefiles エクステンションã¯ã€ å„大容é‡ãƒ•ã‚¡ã‚¤ãƒ«æ¯Žã® \"代ç†ãƒ•ã‚¡ã‚¤ãƒ«\"\n"
-"(standin file) を〠.hglf/ é…下ã§ç®¡ç†ã™ã‚‹ã“ã¨ã§æ©Ÿèƒ½ã‚’実ç¾ã—ã¦ã„ã¾ã™ã€‚\n"
-"代ç†ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ Mercurial 管ç†ä¸‹ã«ç½®ã‹ã‚ŒãŸã€ å°å®¹é‡ (41 ãƒã‚¤ãƒˆ: SHA-1\n"
-"ã¨æ”¹è¡Œæ–‡å­—) ã®ãƒ•ã‚¡ã‚¤ãƒ«ã§ã™ã€‚ 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®å†…容ã‹ã‚‰ç®—出ã•ã‚ŒãŸ SHA-1\n"
-"ãƒãƒƒã‚·ãƒ¥å€¤ãŒä»£ç†ãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ã出ã•ã‚Œã€ ファイル自身ã®ãƒªãƒ“ジョン識別ã«ã¯ã€\n"
-"ã“ã®ãƒãƒƒã‚·ãƒ¥å€¤ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ largefiles エクステンションãŒã€\n"
-"中央格ç´é ˜åŸŸã¨ã®é–“ã§ã€ 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®æŽˆå—ã‚’è¡Œã†å ´åˆã€ ID ã¨ã—ã¦ã€\n"
-"ã“ã®ãƒãƒƒã‚·ãƒ¥å€¤ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ ã“ã®æ–¹å¼ã§ã¯ã€ リãƒã‚¸ãƒˆãƒªã®è¤‡è£½ã‚„ã€\n"
-"履歴ã®å–ã‚Šè¾¼ã¿ã®éš›ã«ã€ 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã«é–¢ã—ã¦ã¯ã€\n"
-"履歴ã®å…¨ã¦ã‚’å–å¾—ã›ãšã«æ¸ˆã‚€ãŸã‚〠転é€å¸¯åŸŸã‚„ディスクã®æ¶ˆè²»ãŒä½Žæ¸›ã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-"To start a new repository or add new large binary files, just add\n"
-"--large to your :hg:`add` command. For example::"
-msgstr ""
-"æ–°è¦ã«å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã‚’追加登録ã™ã‚‹å ´åˆã¯ã€ 以下ã®ä¾‹ã®ã‚ˆã†ã«ã€:hg:`add`\n"
-"ã«å¯¾ã—㦠--large を指定ã—ã¾ã™::"
-
-msgid ""
-" $ dd if=/dev/urandom of=randomdata count=2000\n"
-" $ hg add --large randomdata\n"
-" $ hg commit -m 'add randomdata as a largefile'"
-msgstr ""
-" $ dd if=/dev/urandom of=randomdata count=2000\n"
-" $ hg add --large randomdata\n"
-" $ hg commit -m '大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã—ã¦ä¹±æ•°ãƒ‡ãƒ¼ã‚¿ã‚’追加'"
-
-msgid ""
-"When you push a changeset that adds/modifies largefiles to a remote\n"
-"repository, its largefile revisions will be uploaded along with it.\n"
-"Note that the remote Mercurial must also have the largefiles extension\n"
-"enabled for this to work."
-msgstr ""
-"連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã«å映ã—よã†ã¨ã™ã‚‹ãƒªãƒ“ジョンãŒã€ 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã—ã¦ã€\n"
-"追加ï¼æ”¹å¤‰ã‚’実施ã—ã¦ã„ã‚‹å ´åˆã€ 該当ã™ã‚‹ãƒªãƒ“ジョンã®å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ãŒã€\n"
-"連æºå…ˆã«è»¢é€ã•ã‚Œã¾ã™ã€‚ ã“ã®éš›ã€ 連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã§ç¨¼å‹•ã™ã‚‹ Mercurial ã¯ã€\n"
-"largefiles エクステンションãŒæœ‰åŠ¹ã«ãªã£ã¦ã„ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。"
-
-msgid ""
-"When you pull a changeset that affects largefiles from a remote\n"
-"repository, Mercurial behaves as normal. However, when you update to\n"
-"such a revision, any largefiles needed by that revision are downloaded\n"
-"and cached (if they have never been downloaded before). This means\n"
-"that network access may be required to update to changesets you have\n"
-"not previously updated to."
-msgstr ""
-"連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã‹ã‚‰å–ã‚Šè¾¼ã¾ã‚Œã‚‹ãƒªãƒ“ジョンãŒã€ 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã—ã¦ã€\n"
-"影響ã®ã‚ã‚‹ã‚‚ã®ã§ã‚ã‚‹å ´åˆã€ Mercurial ã®æŒ™å‹•ã¯é€šå¸¸ã¨å¤‰ã‚ã‚Šã¾ã›ã‚“。\n"
-"但ã—〠当該リビジョンã§ã®ä½œæ¥­é ˜åŸŸæ›´æ–°ã®éš›ã«ã€ å¿…è¦ãªå¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ãŒã€\n"
-"転é€ï¼ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã•ã‚Œã¾ã™ (事å‰å…¥æ‰‹ã•ã‚Œã¦ã„ãªã„å ´åˆã®ã¿)。 ãã®ãŸã‚ã€\n"
-"ã“ã‚Œã¾ã§ :hg:`update` 対象ã«ãªã£ã¦ã„ãªã„リビジョンを使用ã™ã‚‹éš›ã«ã¯ã€\n"
-"ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶šã‚’å¿…è¦ã¨ã™ã‚‹å¯èƒ½æ€§ãŒç”Ÿã˜ã¾ã™ã€‚"
-
-msgid ""
-"If you already have large files tracked by Mercurial without the\n"
-"largefiles extension, you will need to convert your repository in\n"
-"order to benefit from largefiles. This is done with the\n"
-":hg:`lfconvert` command::"
-msgstr ""
-"largefiles エクステンション無ã—ã§ã€ 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã‚’〠既㫠Mercurial\n"
-"ã§æ§‹æˆç®¡ç†ã—ã¦ã„ã‚‹å ´åˆã€ largefiles ã®æ©æµã‚’å—ã‘ã‚‹ãŸã‚ã«ã¯ã€\n"
-"リãƒã‚¸ãƒˆãƒªã®å¤‰æ›ãŒå¿…è¦ã§ã™ã€‚ 変æ›ã¯ :hg:`lfconvert` コマンドã§å®Ÿæ–½ã—ã¾ã™::"
-
-msgid " $ hg lfconvert --size 10 oldrepo newrepo"
-msgstr " $ hg lfconvert --size 10 旧リãƒã‚¸ãƒˆãƒª 変æ›å¾Œãƒªãƒã‚¸ãƒˆãƒª"
-
-msgid ""
-"In repositories that already have largefiles in them, any new file\n"
-"over 10MB will automatically be added as a largefile. To change this\n"
-"threshold, set ``largefiles.minsize`` in your Mercurial config file\n"
-"to the minimum size in megabytes to track as a largefile, or use the\n"
-"--lfsize option to the add command (also in megabytes)::"
-msgstr ""
-"æ—¢ã«å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã‚’管ç†ã—ã¦ã„るリãƒã‚¸ãƒˆãƒªã§ã¯ã€ ファイルサイズãŒ\n"
-"10MB 以上ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®è¿½åŠ ç™»éŒ²ã¯ã€ 自動的ã«å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚\n"
-"ã“ã®é–¾å€¤ã¯ã€ 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã¿ãªã™æœ€å°ã®ã‚µã‚¤ã‚º (å˜ä½: MB) を〠Mercurial\n"
-"ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã«ãŠã„㦠``largefiles.minsize`` ã«è¨­å®šã™ã‚‹ã‹ã€ :hg:`add`\n"
-"ã«å¯¾ã—㦠--lfsize ã§æŒ‡å®šã™ã‚‹ã“ã¨ã§ã€ 変更ã§ãã¾ã™ã€‚::"
-
-msgid ""
-" [largefiles]\n"
-" minsize = 2"
-msgstr ""
-" [largefiles]\n"
-" minsize = 2"
-
-msgid " $ hg add --lfsize 2"
-msgstr " $ hg add --lfsize 2"
-
-msgid ""
-"The ``largefiles.patterns`` config option allows you to specify a list\n"
-"of filename patterns (see :hg:`help patterns`) that should always be\n"
-"tracked as largefiles::"
-msgstr ""
-"``largefiles.patterns`` を指定ã™ã‚‹ã“ã¨ã§ã€ 特定パターンã®ãƒ•ã‚¡ã‚¤ãƒ«å\n"
-"(:hg:`help patterns` å‚ç…§) を〠常ã«å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã¿ãªã›ã¾ã™::"
-
-msgid ""
-" [largefiles]\n"
-" patterns =\n"
-" *.jpg\n"
-" re:.*\\.(png|bmp)$\n"
-" library.zip\n"
-" content/audio/*"
-msgstr ""
-" [largefiles]\n"
-" patterns =\n"
-" *.jpg\n"
-" re:.*\\.(png|bmp)$\n"
-" library.zip\n"
-" content/audio/*"
-
-msgid ""
-"Files that match one of these patterns will be added as largefiles\n"
-"regardless of their size."
-msgstr ""
-"パターンã«åˆè‡´ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’追加登録ã™ã‚‹éš›ã«ã¯ã€ã‚µã‚¤ã‚ºã«é–¢ã‚ã‚Šãªãã€\n"
-"大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-"The ``largefiles.minsize`` and ``largefiles.patterns`` config options\n"
-"will be ignored for any repositories not already containing a\n"
-"largefile. To add the first largefile to a repository, you must\n"
-"explicitly do so with the --large flag passed to the :hg:`add`\n"
-"command.\n"
-msgstr ""
-"管ç†ä¸‹ã«å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ãŒ1ã¤ã‚‚ç„¡ã„リãƒã‚¸ãƒˆãƒªã§ã¯ã€ ``largefiles.minsize``\n"
-"ãŠã‚ˆã³ ``largefiles.patterns`` ã®è¨­å®šã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚ ãã®ãŸã‚ã€\n"
-"最åˆã®å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã‚’追加登録ã™ã‚‹éš›ã«ã¯ã€ :hg:`add` ã«æ˜Žç¤ºçš„ã« --large \n"
-"を指定ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚\n"
-
-msgid "convert a normal repository to a largefiles repository"
-msgstr "既存リãƒã‚¸ãƒˆãƒªã‹ã‚‰ largefiles を利用ã™ã‚‹ãƒªãƒã‚¸ãƒˆãƒªã¸ã®å¤‰æ›"
-
-msgid ""
-" Convert repository SOURCE to a new repository DEST, identical to\n"
-" SOURCE except that certain files will be converted as largefiles:\n"
-" specifically, any file that matches any PATTERN *or* whose size is\n"
-" above the minimum size threshold is converted as a largefile. The\n"
-" size used to determine whether or not to track a file as a\n"
-" largefile is the size of the first version of the file. The\n"
-" minimum size can be specified either with --size or in\n"
-" configuration as ``largefiles.size``."
-msgstr ""
-" リãƒã‚¸ãƒˆãƒª SOURCE を変æ›ã—〠新è¦ãƒªãƒã‚¸ãƒˆãƒª DEST を生æˆã—ã¾ã™ã€‚\n"
-" SOURCE ã«å¯¾ã™ã‚‹ DEST ã®é•ã„ã¯ã€ 指定パターンã¸ã®åå‰ã®åˆè‡´ã€ ãªã„ã—ã€\n"
-" 指定閾値以上ã®ã‚µã‚¤ã‚ºã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒã€ 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«æ‰±ã„ã«ãªã£ã¦ã„ã‚‹ã€\n"
-" ã¨ã„ã†ç‚¹ã§ã™ã€‚ 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«æ‰±ã„ã®è¦å¦åˆ¤å®šã«ä½¿ç”¨ã™ã‚‹ã‚µã‚¤ã‚ºå€¤ã«ã¯ã€\n"
-" å„ファイルãŒæœ€åˆã«ç™»éŒ²ã•ã‚ŒãŸæ™‚点ã®ã‚µã‚¤ã‚ºãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" サイズ閾値ã®æŒ‡å®šã¯ã€ --size ã‹ã€ ``largefiles.size``\n"
-" 設定ã«ã‚ˆã£ã¦è¡Œã„ã¾ã™ã€‚"
-
-msgid ""
-" After running this command you will need to make sure that\n"
-" largefiles is enabled anywhere you intend to push the new\n"
-" repository."
-msgstr ""
-" ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã®å®Ÿæ–½å¾Œã¯ã€ 変æ›å¾Œãƒªãƒã‚¸ãƒˆãƒªã®é€£æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã§ã‚‚ã€\n"
-" largefiles エクステンションãŒæœ‰åŠ¹ã«ãªã£ã¦ã„る事を確èªã—ã¦ãã ã•ã„。"
-
-msgid ""
-" Use --to-normal to convert largefiles back to normal files; after\n"
-" this, the DEST repository can be used without largefiles at all."
-msgstr ""
-" largefiles エクステンションを使用ã—ãªã„リãƒã‚¸ãƒˆãƒªã¸ã®å¤‰æ›ã«ã¯ã€\n"
-" --to-normal を指定ã—ã¾ã™ã€‚ 変æ›å¾Œãƒªãƒã‚¸ãƒˆãƒªã¯ã€ largefiles\n"
-" エクステンション無ã—ã§ã‚‚使用ã§ãã¾ã™ã€‚"
-
-msgid "getting largefiles"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®å–得中"
-
-#, python-format
-msgid "getting %s:%s\n"
-msgstr "ファイル %s ã®å–得中:%s\n"
-
-#, python-format
-msgid "%s: data corruption (expected %s, got %s)\n"
-msgstr "%s: データ破æを検出 (想定ãƒãƒƒã‚·ãƒ¥å€¤ %s ã«å¯¾ã—㦠%s)\n"
-
-#, python-format
-msgid "searching %d changesets for largefiles\n"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®ãŸã‚ã« %d 個ã®ãƒªãƒ“ジョンを検索中\n"
-
-#, python-format
-msgid "verified contents of %d revisions of %d largefiles\n"
-msgstr "%d 個ã®ãƒªãƒ“ジョン㧠%d 個ã®å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®å†…容を検証\n"
-
-#, python-format
-msgid "verified existence of %d revisions of %d largefiles\n"
-msgstr "%d 個ã®ãƒªãƒ“ジョン㧠%d 個ã®å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®å­˜åœ¨ã‚’検証\n"
-
-#, python-format
-msgid "unsupported URL scheme %r"
-msgstr "%r ã¯æœªã‚µãƒãƒ¼ãƒˆãª URL å½¢å¼ã§ã™"
-
-#, python-format
-msgid "%s does not appear to be a largefile store"
-msgstr "%s 㯠largefiles 対応ã¨ã¯æ€ã‚ã‚Œã¾ã›ã‚“"
-
-#, python-format
-msgid "%s is not a local Mercurial repo"
-msgstr "%s ã¯ãƒ­ãƒ¼ã‚«ãƒ«ã® Mercurial リãƒã‚¸ãƒˆãƒªã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-
-#, python-format
-msgid "initializing destination %s\n"
-msgstr "変æ›å…ˆãƒªãƒã‚¸ãƒˆãƒª %s ã®åˆæœŸåŒ–中\n"
-
-msgid "converting revisions"
-msgstr "リビジョンã®å¤‰æ›ä¸­"
-
-#, python-format
-msgid "renamed/copied largefile %s becomes symlink"
-msgstr "改åï¼è¤‡è£½å¯¾è±¡ã®å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ« %s ãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯åŒ–ã•ã‚Œã¦ã„ã¾ã™"
-
-#, python-format
-msgid "largefile %s becomes symlink"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ« %s ãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯åŒ–ã•ã‚Œã¦ã„ã¾ã™"
-
-#, python-format
-msgid "skipping incorrectly formatted tag %s\n"
-msgstr "ä¸æ­£ãªå½¢å¼ã®ã‚¿ã‚° %s を無視\n"
-
-#, python-format
-msgid "skipping incorrectly formatted id %s\n"
-msgstr "ä¸æ­£ãªå½¢å¼ã® ID %s を無視\n"
-
-#, python-format
-msgid "no mapping for id %s\n"
-msgstr "ID %s ã¯æœªçŸ¥ã®å€¤ã§ã™\n"
-
-msgid "uploading largefiles"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®è»¢é€ä¸­"
-
-#, python-format
-msgid "largefile %s missing from store (needs to be uploaded)"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ« %s ãŒä¸åœ¨ã§ã™ (連æºå…ˆã¸è»¢é€ã§ãã¾ã›ã‚“)"
-
-#, python-format
-msgid "%d additional largefiles cached\n"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ« %d 個を追加å–å¾—\n"
-
-#, python-format
-msgid "%d largefiles failed to download\n"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ« %d 個ã®å–å¾—ã«å¤±æ•—\n"
-
-msgid "getting changed largefiles\n"
-msgstr "æ›´æ–°ã•ã‚ŒãŸå¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®å–得中\n"
-
-#, python-format
-msgid "%d largefiles updated, %d removed\n"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®æ›´æ–°æ•° %d〠削除数 %d\n"
-
-#, python-format
-msgid "largefile %s is not in cache and could not be downloaded"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ« %s ã¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã•ã‚Œã¦ãŠã‚‰ãšã€ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã‚‚ã§ãã¾ã›ã‚“"
-
-msgid "minimum size (MB) for files to be converted as largefiles"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«åŒ–ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®æœ€å°ã‚µã‚¤ã‚º (MB)"
-
-msgid "convert from a largefiles repo to a normal repo"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ä½¿ç”¨ãƒªãƒã‚¸ãƒˆãƒªã‹ã‚‰é€šå¸¸ãƒªãƒã‚¸ãƒˆãƒªã¸ã®å¤‰æ›"
-
-msgid "hg lfconvert SOURCE DEST [FILE ...]"
-msgstr "hg lfconvert SOURCE DEST [FILE ...]"
-
-#, python-format
-msgid "largefiles: size must be number (not %s)\n"
-msgstr "largefiles: サイズã¯æ•°å€¤ã§æŒ‡å®šã—ã¦ãã ã•ã„ (%s ã¯ä¸æ­£ã§ã™)\n"
-
-msgid "minimum size for largefiles must be specified"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®æœ€å°å€¤ã‚’指定ã—ã¦ãã ã•ã„"
-
-#, python-format
-msgid "unknown operating system: %s\n"
-msgstr "未知㮠OS ã§ã™: %s\n"
-
-#, python-format
-msgid "found %s in store\n"
-msgstr "%s ã¯ãƒªãƒã‚¸ãƒˆãƒªã«å–得済ã¿\n"
-
-#, python-format
-msgid "found %s in system cache\n"
-msgstr "%s ã¯ã‚·ã‚¹ãƒ†ãƒ ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã«å–得済ã¿\n"
-
-msgid "can't get file locally"
-msgstr "ファイルãŒæ‰‹å…ƒã«ã‚ã‚Šã¾ã›ã‚“"
-
-#, python-format
-msgid ""
-"changeset %s: %s missing\n"
-" (looked for hash %s)\n"
-msgstr ""
-"リビジョン %s: %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\n"
-" (ãƒãƒƒã‚·ãƒ¥å€¤ %s を想定)\n"
-
-#, python-format
-msgid ""
-"changeset %s: %s: contents differ\n"
-" (%s:\n"
-" expected hash %s,\n"
-" but got %s)\n"
-msgstr ""
-"リビジョン %s: %s ã®å†…容ãŒç•°ãªã‚Šã¾ã™\n"
-" (%s:\n"
-" 想定ãƒãƒƒã‚·ãƒ¥å€¤ %s ã«å¯¾ã—ã¦\n"
-" 実際ã®ãƒãƒƒã‚·ãƒ¥å€¤ã¯ %s)\n"
-
-#, python-format
-msgid "%s already a largefile\n"
-msgstr "%s ã¯å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã—ã¦ç™»éŒ²æ¸ˆã§ã™\n"
-
-#, python-format
-msgid "adding %s as a largefile\n"
-msgstr "%s を大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã—ã¦è¿½åŠ ç™»éŒ²ä¸­\n"
-
-msgid "no files specified"
-msgstr "ファイルå指定ãŒã‚ã‚Šã¾ã›ã‚“"
-
-#, python-format
-msgid "not removing %s: %s (use forget to undo)\n"
-msgstr "%s ã¯å‰Šé™¤ã•ã‚Œã¾ã›ã‚“: %s (å–り消ã—機能㯠forget)\n"
-
-msgid "file still exists"
-msgstr "ファイルã¯ç¶­æŒã•ã‚Œã¾ã™"
-
-msgid "file is modified"
-msgstr "ファイルã¯æ”¹å¤‰ã•ã‚Œã¦ã„ã¾ã™"
-
-msgid "file has been marked for add"
-msgstr "追加登録予定ã®ãƒ•ã‚¡ã‚¤ãƒ«ã§ã™"
-
-#, python-format
-msgid "removing %s\n"
-msgstr "%s を登録除外中\n"
-
-msgid "--normal cannot be used with --large"
-msgstr "--normal 㨠--large ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
-
-msgid "uncommitted local changes"
-msgstr "作業領域ã®å¤‰æ›´ãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™"
-
-msgid "&Largefile"
-msgstr "&Largefile"
-
-msgid "&Normal file"
-msgstr "&Normal file"
-
-#, python-format
-msgid ""
-"%s has been turned into a largefile\n"
-"use (l)argefile or keep as (n)ormal file?"
-msgstr ""
-"ファイル %s ãŒå¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«åŒ–ã•ã‚Œã¦ã„ã¾ã™ã€‚\n"
-"ã©ã¡ã‚‰ã®å½¢å¼ã‚’採用ã—ã¾ã™ã‹ï¼Ÿ 大容é‡:(l)argefile 通常:(n)ormal file"
-
-#, python-format
-msgid ""
-"%s has been turned into a normal file\n"
-"keep as (l)argefile or use (n)ormal file?"
-msgstr ""
-"ファイル %s ãŒé€šå¸¸ãƒ•ã‚¡ã‚¤ãƒ«åŒ–ã•ã‚Œã¦ã„ã¾ã™ã€‚\n"
-"ã©ã¡ã‚‰ã®å½¢å¼ã‚’採用ã—ã¾ã™ã‹ï¼Ÿ 大容é‡:(l)argefile 通常:(n)ormal file"
-
-#, python-format
-msgid "merging %s and %s to %s\n"
-msgstr "%s 㨠%s ã‚’ %s ã«ãƒžãƒ¼ã‚¸ä¸­\n"
-
-#, python-format
-msgid "merging %s\n"
-msgstr "%s をマージ中\n"
-
-#, python-format
-msgid ""
-"largefile %s has a merge conflict\n"
-"keep (l)ocal or take (o)ther?"
-msgstr ""
-"大容é‡ãƒ•ã‚¡ã‚¤ãƒ« %s ã®ãƒžãƒ¼ã‚¸ã§è¡çªãŒæ¤œå‡ºã•ã‚Œã¾ã—ãŸã€‚\n"
-"ã©ã¡ã‚‰ã®å†…容を採用ã—ã¾ã™ã‹ï¼Ÿ 作業領域:(l)ocal マージ対象:(o)ther"
-
-msgid "&Local"
-msgstr "&Local"
-
-msgid "&Other"
-msgstr "&Other"
-
-msgid "no files to copy"
-msgstr "コピーã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ãŒã‚ã‚Šã¾ã›ã‚“"
-
-msgid "destination largefile already exists"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®è¤‡è£½å…ˆã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™"
-
-msgid "caching new largefiles\n"
-msgstr "æ›´æ–°ã•ã‚ŒãŸå¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥ä¸­\n"
-
-#, python-format
-msgid "%d largefiles cached\n"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ« %d 個をキャッシュ\n"
-
-#, python-format
-msgid "--all-largefiles is incompatible with non-local destination %s"
-msgstr "éžãƒ­ãƒ¼ã‚«ãƒ«ãªãƒªãƒã‚¸ãƒˆãƒª %s ã§ã¯ --all-largefiles を指定ã§ãã¾ã›ã‚“"
-
-#, python-format
-msgid "unknown archive type '%s'"
-msgstr "未知ã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–種別 '%s'"
-
-msgid "cannot give prefix when archiving to files"
-msgstr "アーカイブã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’追加ã™ã‚‹ã¨ãã¯æŽ¥é ­è¾žã‚’指定ã§ãã¾ã›ã‚“"
-
-#, python-format
-msgid "largefile %s not found in repo store or system cache"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ« %s ãŒãƒªãƒã‚¸ãƒˆãƒªã«ã‚‚システムキャッシュã«ã‚‚ã‚ã‚Šã¾ã›ã‚“"
-
-#, python-format
-msgid "not removing %s: file is already untracked\n"
-msgstr "%s ã¯å‰Šé™¤ã•ã‚Œã¾ã›ã‚“: ファイルã¯æ—¢ã«æœªç™»éŒ²ã§ã™\n"
-
-msgid "largefiles: No remote repo\n"
-msgstr "largefiles: 連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-
-msgid "largefiles to upload:\n"
-msgstr "転é€äºˆå®šå¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«:\n"
-
-#, python-format
-msgid "largefiles: %d to upload\n"
-msgstr "largefiles: 転é€äºˆå®šãƒ•ã‚¡ã‚¤ãƒ«æ•° %d\n"
-
-msgid "largefile contents do not match hash"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®å†…容ãŒæƒ³å®šãƒãƒƒã‚·ãƒ¥å€¤ã¨ä¸€è‡´ã—ã¾ã›ã‚“"
-
-#, python-format
-msgid "largefiles: failed to put %s into store: %s"
-msgstr "largefiles: ファイル %s ã®æ ¼ç´ã«å¤±æ•—: %s"
-
-#, python-format
-msgid "requested largefile %s not present in cache"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ« %s ã¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-
-msgid "remote: "
-msgstr "連æºå…ˆ: "
-
-#, python-format
-msgid "unexpected putlfile response: %s"
-msgstr "想定外㮠putlfile 応答: %s"
-
-msgid "putlfile failed:"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®è»¢é€ã«å¤±æ•—:"
-
-msgid "putlfile failed (unexpected response):"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®è»¢é€ã«å¤±æ•— (未知ã®å¿œç­”):"
-
-msgid "unexpected response:"
-msgstr "未知ã®å¿œç­”:"
-
-#, python-format
-msgid "remotestore: could not put %s to remote store %s"
-msgstr "remotestore: %s を連æºå…ˆ %s ã«æ ¼ç´ã§ãã¾ã›ã‚“"
-
-#, python-format
-msgid "remotestore: put %s to remote store %s"
-msgstr "remotestore: %s を連æºå…ˆ %s ã«æ ¼ç´"
-
-#, python-format
-msgid "remotestore: could not open file %s: %s"
-msgstr "remotestore: ファイル %s ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“: %s"
-
-#, python-format
-msgid "remotestore: largefile %s is invalid"
-msgstr "remotestore: 大容é‡ãƒ•ã‚¡ã‚¤ãƒ« %s ã¯ç„¡åŠ¹ã§ã™"
-
-#, python-format
-msgid "remotestore: largefile %s is missing"
-msgstr "remotestore: 大容é‡ãƒ•ã‚¡ã‚¤ãƒ« %s ã¯å­˜åœ¨ã—ã¾ã›ã‚“"
-
-#, python-format
-msgid "changeset %s: %s: contents differ\n"
-msgstr "リビジョン %s: %s: 内容ãŒç•°ãªã‚Šã¾ã™\n"
-
-#, python-format
-msgid "changeset %s: %s missing\n"
-msgstr "リビジョン %s: ファイル %s ãŒä¸åœ¨ã§ã™\n"
-
-#, python-format
-msgid ""
-"largefiles: repo method %r appears to have already been wrapped by another "
-"extension: largefiles may behave incorrectly\n"
-msgstr ""
-"largefiles: ä»–ã®ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ãŒ %r 機能を書ãæ›ãˆã¦ã„る模様ã§ã™:"
-"largefiles ãŒæƒ³å®šå¤–ã®æŒ™å‹•ã‚’ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™\n"
-
-#, python-format
-msgid "file \"%s\" is a largefile standin"
-msgstr "\"%s\" ã¯å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®ä»£ç†ãƒ•ã‚¡ã‚¤ãƒ«ã§ã™"
-
-msgid "add as largefile"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã—ã¦è¿½åŠ "
-
-msgid "add as normal file"
-msgstr "通常ファイルã¨ã—ã¦è¿½åŠ "
-
-msgid ""
-"add all files above this size (in megabytes) as largefiles (default: 10)"
-msgstr ""
-"指定サイズ (å˜ä½:MB) 以上ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’〠大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã—ã¦è¿½åŠ  (既定値:10)"
-
-msgid "verify largefiles"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã‚’検証"
-
-msgid "verify all revisions of largefiles not just current"
-msgstr "ç¾ãƒªãƒ“ジョン以外ã§ã‚‚〠大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã«é–¢ã™ã‚‹æ¤œè¨¼ã‚’実施"
-
-msgid "verify largefile contents not just existence"
-msgstr "大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã®å­˜åœ¨ç¢ºèªä»¥å¤–ã«ã€ 内容ã®æ¤œè¨¼ã‚‚実施"
-
-msgid "display outgoing largefiles"
-msgstr "転é€å¯¾è±¡å¤§å®¹é‡ãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示"
-
-msgid "download all pulled versions of largefiles"
-msgstr "å–ã‚Šè¾¼ã¿ãƒªãƒ“ジョンã«ãŠã„ã¦ã€ 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã‚’å…¨ã¦å–å¾—"
-
-msgid "download all versions of all largefiles"
-msgstr "全リビジョンã«ãŠã„ã¦ã€ 大容é‡ãƒ•ã‚¡ã‚¤ãƒ«ã‚’å…¨ã¦å–å¾—"
-
msgid "manage a stack of patches"
msgstr "パッãƒä½µç”¨ã®ç®¡ç†"
@@ -5372,50 +3396,12 @@ msgstr ""
"情報ãŒå¤±ã‚れるå¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
-"It may be desirable for mq changesets to be kept in the secret phase (see\n"
-":hg:`help phases`), which can be enabled with the following setting::"
-msgstr ""
-"以下ã®ã‚ˆã†ã«è¨­å®šã™ã‚‹ã“ã¨ã§ã€ MQ 管ç†ä¸‹ã®ãƒªãƒ“ジョンã®ãƒ•ã‚§ãƒ¼ã‚º\n"
-"(:hg:`help phases` å‚ç…§) ã‚’ secret ã«ç¶­æŒã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™::"
-
-msgid ""
-" [mq]\n"
-" secret = True"
-msgstr ""
-" [mq]\n"
-" secret = True"
-
-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."
+"create other, independent patch queues with the :hg:`qqueue` command.\n"
msgstr ""
-"通常㯠\"patches\" ã¨ã„ã†åå‰ã®ã‚­ãƒ¥ãƒ¼é…下ã§ã€ãƒ‘ッãƒãŒç®¡ç†ã•ã‚Œã¾ã™ã€‚\n"
-":hg:`qqueue` を使ã†ã“ã¨ã§ã€ 独立ã—ãŸå€‹åˆ¥ã®ç®¡ç†ã‚­ãƒ¥ãƒ¼ã‚’作æˆå¯èƒ½ã§ã™ã€‚"
-
-msgid ""
-"If the working directory contains uncommitted files, qpush, qpop and\n"
-"qgoto abort immediately. If -f/--force is used, the changes are\n"
-"discarded. Setting::"
-msgstr ""
-"作業領域中ã«ã€ 未コミット変更ãŒã‚ã‚‹å ´åˆã€ qpush, qpop ã‚„ qgoto ã®å®Ÿè¡Œã¯ã€\n"
-"å³åº§ã«ä¸­æ–­ã•ã‚Œã¾ã™ã€‚ -f/--force 指定時ã¯ã€ 変更内容ãŒç ´æ£„ã•ã‚Œã¾ã™ã€‚\n"
-"ã“れらã®ã‚³ãƒžãƒ³ãƒ‰ã®æŒ™å‹•ã¯ã€ 以下ã®è¨­å®šã«ã‚ˆã‚Š::"
-
-msgid ""
-" [mq]\n"
-" keepchanges = True"
-msgstr ""
-" [mq]\n"
-" keepchanges = True"
-
-msgid ""
-"make them behave as if --keep-changes were passed, and non-conflicting\n"
-"local changes will be tolerated and preserved. If incompatible options\n"
-"such as -f/--force or --exact are passed, this setting is ignored.\n"
-msgstr ""
-"--keep-changes 指定時ã¨åŒã˜ã«ãªã‚‹ãŸã‚〠作業領域中ã®å¤‰æ›´ã¯ã€\n"
-"è¡çªãŒç„¡ã„é™ã‚Šã€ ãã®ã¾ã¾ç¶­æŒã•ã‚Œã¾ã™ã€‚ -f/--force ã‚„ --exact ã®ã‚ˆã†ãªã€\n"
-"併用ã§ããªã„オプションãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ ã“ã®è¨­å®šã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚\n"
+"特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ パッãƒã¯ \"patches\" ã¨ã„ã†åå‰ã®ã‚­ãƒ¥ãƒ¼ã§ç®¡ç†\n"
+"ã•ã‚Œã¾ã™ã€‚ :hg:`qqueue` を使ã†ã“ã¨ã§ã€ 相互ã«ç‹¬ç«‹ã—ãŸåˆ¥ã®ç®¡ç†ã‚­ãƒ¥ãƒ¼ã‚’\n"
+"作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚\n"
msgid "print first line of patch header"
msgstr "パッãƒãƒ˜ãƒƒãƒ€ã®æœ€åˆã®è¡Œã‚’表示"
@@ -5476,10 +3462,6 @@ msgid "error removing undo: %s\n"
msgstr "å–り消ã—情報ã®ç ´æ£„ã«å¤±æ•—: %s\n"
#, python-format
-msgid "saving current version of %s as %s\n"
-msgstr "ç¾è¡Œç‰ˆã® %s ã‚’ %s ã«ä¿å­˜ä¸­\n"
-
-#, python-format
msgid "apply failed for patch %s"
msgstr "パッム%s ã®é©ç”¨ã«å¤±æ•—"
@@ -5517,16 +3499,10 @@ msgstr "%s ã‚’é©ç”¨ä¸­\n"
msgid "unable to read %s\n"
msgstr "ファイル %s ãŒèª­ã¿è¾¼ã‚ã¾ã›ã‚“\n"
-msgid "local changes found, refresh first"
-msgstr "作業領域ã®å†…容ã¯å¤‰æ›´ã•ã‚Œã¦ã„ã¾ã™ã®ã§ qrefresh を実施ã—ã¦ãã ã•ã„"
-
#, python-format
msgid "patch %s is empty\n"
msgstr "パッム%s ã¯ç©ºã§ã™\n"
-msgid "qpush exactly duplicates child changeset"
-msgstr "qpush ã®å†…容ãŒé©ç”¨å…ˆãƒªãƒ“ジョンã¨å®Œå…¨ã«ä¸€è‡´ã—ã¾ã™"
-
msgid "repository commit failed"
msgstr "リãƒã‚¸ãƒˆãƒªã®ã‚³ãƒŸãƒƒãƒˆæ“作ã«å¤±æ•—"
@@ -5575,7 +3551,10 @@ msgstr "作業領域ã®è¦ªãƒªãƒ“ジョン㯠qtip ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
#, python-format
msgid "uncommitted changes in subrepository %s"
-msgstr "副リãƒã‚¸ãƒˆãƒª %s ã®å¤‰æ›´ãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™"
+msgstr "副リãƒã‚¸ãƒˆãƒª %s ã«æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ã‚ã‚Š"
+
+msgid "local changes found, refresh first"
+msgstr "作業領域ã®å†…容ã¯å¤‰æ›´ã•ã‚Œã¦ã„ã¾ã™ã®ã§ qrefresh を実施ã—ã¦ãã ã•ã„"
msgid "local changes found"
msgstr "作業領域ã®å†…容ã¯å¤‰æ›´ã•ã‚Œã¦ã„ã¾ã™"
@@ -5586,11 +3565,11 @@ msgstr "\"%s\" ã¯ãƒ‘ッãƒåã¨ã—ã¦ä½¿ç”¨ã§ãã¾ã›ã‚“"
#, python-format
msgid "patch name cannot begin with \"%s\""
-msgstr "パッãƒåã®æœ€åˆã®æ–‡å­—ã« \"%s\" ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“"
+msgstr "パッãƒåã®æœ€åˆã®æ–‡å­—ã« \"%s\" ã¯ä½¿ç”¨å‡ºæ¥ã¾ã›ã‚“"
#, python-format
msgid "\"%s\" cannot be used in the name of a patch"
-msgstr "\"%s\" ã‚’å«ã‚€åå‰ã¯ãƒ‘ッãƒåã«ä½¿ç”¨ã§ãã¾ã›ã‚“"
+msgstr "\"%s\" ã‚’å«ã‚€åå‰ã¯ãƒ‘ッãƒåã«ä½¿ç”¨å‡ºæ¥ã¾ã›ã‚“"
#, python-format
msgid "\"%s\" already exists as a directory"
@@ -5600,9 +3579,6 @@ msgstr "\"%s\" ã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨ã—ã¦æ—¢ã«å­˜åœ¨ã—ã¾ã™"
msgid "patch \"%s\" already exists"
msgstr "パッム\"%s\" ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™"
-msgid "cannot use both --force and --keep-changes"
-msgstr "--force 㨠--keep-changes ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
-
msgid "cannot manage merge changesets"
msgstr "マージリビジョン㯠MQ ã®ç®¡ç†å¯¾è±¡ã«ã§ãã¾ã›ã‚“"
@@ -5653,9 +3629,6 @@ msgstr "å…¨ã¦ã®ãƒ‘ッãƒãŒé©ç”¨ä¸­ã§ã™\n"
msgid "patch series already fully applied\n"
msgstr "å…¨ã¦ã®ãƒ‘ッãƒãŒé©ç”¨ä¸­ã§ã™\n"
-msgid "cannot use --exact and --keep-changes together"
-msgstr "--exact and --keep-changes ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
-
msgid "cannot use --exact and --move together"
msgstr "--exact 㨠--move ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
@@ -5701,12 +3674,6 @@ msgstr "未知ã®ãƒªãƒ“ジョン %s ãŒè§£é™¤å¯¾è±¡ã«æŒ‡å®šã•ã‚Œã¾ã—ãŸ"
msgid "popping would remove a revision not managed by this patch queue"
msgstr "管ç†å¯¾è±¡å¤–ã®ãƒªãƒ“ジョンãŒè§£é™¤å¯¾è±¡ã«æŒ‡å®šã•ã‚Œã¾ã—ãŸ"
-msgid "popping would remove an immutable revision"
-msgstr "é©ç”¨è§£é™¤å¯¾è±¡ã¯æ”¹å¤‰ä¸èƒ½ãƒªãƒ“ジョンã§ã™"
-
-msgid "see \"hg help phases\" for details"
-msgstr "詳細㯠\"hg help phases\" å‚ç…§"
-
msgid "deletions found between repo revs"
msgstr "リビジョン間ã§å‰Šé™¤ãŒæ¤œå‡ºã•ã‚Œã¾ã—ãŸ"
@@ -5720,9 +3687,6 @@ msgstr "å…¨ã¦ã®ãƒ‘ッãƒã®é©ç”¨ãŒè§£é™¤ã•ã‚Œã¾ã—ãŸ\n"
msgid "cannot refresh a revision with children"
msgstr "ヘッド以外㯠qrefresh ã®å¯¾è±¡ã«æŒ‡å®šã§ãã¾ã›ã‚“"
-msgid "cannot refresh immutable revision"
-msgstr "改変ä¸èƒ½ãƒªãƒ“ジョン㯠qrefresh ã§ãã¾ã›ã‚“"
-
msgid ""
"refresh interrupted while patch was popped! (revert --all, qpush to "
"recover)\n"
@@ -5735,7 +3699,7 @@ msgstr "パッãƒç®¡ç†é ˜åŸŸã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™"
msgid "patch %s is not in series file"
msgstr "パッム%s ã¯æœªçŸ¥ã®ãƒ‘ッãƒã§ã™"
-msgid "no saved patch data found\n"
+msgid "No saved patch data found\n"
msgstr "ä¿å­˜ã•ã‚ŒãŸãƒ‘ッãƒçŠ¶æ…‹ãƒ‡ãƒ¼ã‚¿ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\n"
#, python-format
@@ -5756,8 +3720,8 @@ msgstr "パッãƒçŠ¶æ…‹ä¿å­˜ãƒªãƒ“ジョンã®è¦ª: %s %s\n"
msgid "updating queue directory\n"
msgstr "パッãƒç®¡ç†é ˜åŸŸã®æ›´æ–°ä¸­\n"
-msgid "unable to load queue repository\n"
-msgstr "パッãƒç®¡ç†é ˜åŸŸã®ãƒªãƒã‚¸ãƒˆãƒªæƒ…報を読ã¿è¾¼ã‚ã¾ã›ã‚“\n"
+msgid "Unable to load queue repository\n"
+msgstr "パッãƒç®¡ç†é ˜åŸŸã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“\n"
msgid "save: no patches applied, exiting\n"
msgstr "save: é©ç”¨ä¸­ã®ãƒ‘ッãƒãŒç„¡ã„ãŸã‚終了ã—ã¾ã™\n"
@@ -5778,9 +3742,6 @@ msgstr "åŒåã®ãƒ‘ッム%s ãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™"
msgid "option \"-r\" not valid when importing files"
msgstr "ファイルå–ã‚Šè¾¼ã¿ã®éš›ã® \"-r\" 指定ã¯ä¸é©åˆ‡ã§ã™"
-msgid "no files or revisions specified"
-msgstr "ファイルï¼ãƒªãƒ“ジョンã®æŒ‡å®šãŒã‚ã‚Šã¾ã›ã‚“"
-
msgid "option \"-n\" not valid when importing multiple patches"
msgstr "複数パッãƒå–ã‚Šè¾¼ã¿ã®éš›ã® \"-n\" 指定ã¯ä¸é©åˆ‡ã§ã™"
@@ -5801,10 +3762,6 @@ msgid "revision %d has unmanaged children"
msgstr "リビジョン %d ã«ã¯ MQ 管ç†ä¸‹ã«ç„¡ã„å­ãƒªãƒ“ジョンãŒã‚ã‚Šã¾ã™"
#, python-format
-msgid "revision %d is not mutable"
-msgstr "リビジョン %d ã¯æ”¹å¤‰ã§ãã¾ã›ã‚“"
-
-#, python-format
msgid "cannot import merge revision %d"
msgstr "マージ実施リビジョン %d ã¯å–ã‚Šè¾¼ã‚ã¾ã›ã‚“"
@@ -5848,13 +3805,12 @@ msgstr "管ç†å¯¾è±¡ã‹ã‚‰ã®ãƒ‘ッãƒé™¤å¤–"
msgid ""
" The patches must not be applied, and at least one patch is required. "
-"Exact\n"
-" patch identifiers must be given. With -k/--keep, the patch files are\n"
-" preserved in the patch directory."
+"With\n"
+" -k/--keep, the patch files are preserved in the patch directory."
msgstr ""
-" パッãƒå指定ã«ã¯ã€ 最低1ã¤ã®æœªé©ç”¨ãƒ‘ッãƒåã®æŒ‡å®šãŒå¿…è¦ã§ã™ã€‚\n"
-" ã¾ãŸã€ åå‰ã¯åŽ³å¯†ãªã‚‚ã®ã‚’指定ã—ã¦ãã ã•ã„。 -k/--keep を指定ã—ãŸå ´åˆã€\n"
-" パッãƒãƒ•ã‚¡ã‚¤ãƒ«ãã®ã‚‚ã®ã¯ç®¡ç†é ˜åŸŸã«æ®‹ã•ã‚ŒãŸã¾ã¾ã¨ãªã‚Šã¾ã™ã€‚"
+" 対象パッãƒã¯æœªé©ç”¨ã§ãªã‘ã‚Œã°ãªã‚‰ãšã€ 最低1ã¤ã®ãƒ‘ッãƒåã®æŒ‡å®šãŒ\n"
+" å¿…è¦ã§ã™ã€‚ -k/--keep を指定ã—ãŸå ´åˆã€ パッãƒãƒ•ã‚¡ã‚¤ãƒ«ãã®ã‚‚ã®ã¯\n"
+" 管ç†é ˜åŸŸã«æ®‹ã•ã‚ŒãŸã¾ã¾ã¨ãªã‚Šã¾ã™ã€‚"
msgid ""
" To stop managing a patch and move it into permanent history,\n"
@@ -5863,8 +3819,8 @@ msgstr ""
" 管ç†å¯¾è±¡å¤–ã¨ãªã£ãŸãƒ‘ッãƒã‚’通常リビジョン化ã™ã‚‹å ´åˆã¯ :hg:`qfinish`\n"
" を使用ã—ã¦ãã ã•ã„。"
-msgid "show only the preceding applied patch"
-msgstr "ç›´å‰ã«é©ç”¨ã—ãŸãƒ‘ッãƒã®ã¿ã‚’表示"
+msgid "show only the last patch"
+msgstr "最終é©ç”¨ãƒ‘ッãƒã®ã¿ã‚’表示"
msgid "hg qapplied [-1] [-s] [PATCH]"
msgstr "hg qapplied [-1] [-s] [PATCH]"
@@ -5911,11 +3867,11 @@ msgstr "git 拡張差分形å¼ã®ä½¿ç”¨"
msgid "qpush after importing"
msgstr "パッãƒå–ã‚Šè¾¼ã¿å¾Œã«ãƒ‘ッãƒé©ç”¨(qpush)を実施"
-msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... [FILE]..."
-msgstr "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... [FILE]..."
+msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE..."
+msgstr "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE..."
-msgid "import a patch or existing changeset"
-msgstr "パッãƒãªã„ã—既存リビジョンã®å–ã‚Šè¾¼ã¿"
+msgid "import a patch"
+msgstr "パッãƒã®å–ã‚Šè¾¼ã¿"
msgid ""
" The patch is inserted into the series after the last applied\n"
@@ -6110,14 +4066,14 @@ msgstr "ç¾è¡Œãƒ‘ッãƒã®åå‰è¡¨ç¤º"
msgid "hg qnext [-s]"
msgstr "hg qnext [-s]"
-msgid "print the name of the next pushable patch"
-msgstr "ç¾è¡Œãƒ‘ッãƒã®ã€Œæ¬¡ã€ã«é©ç”¨ã•ã‚Œã‚‹ãƒ‘ッãƒã®åå‰è¡¨ç¤º"
+msgid "print the name of the next patch"
+msgstr "ç¾è¡Œãƒ‘ッãƒã®ã€Œæ¬¡ã€ã®æ—¢çŸ¥ã®ãƒ‘ッãƒã®åå‰è¡¨ç¤º"
msgid "hg qprev [-s]"
msgstr "hg qprev [-s]"
-msgid "print the name of the preceding applied patch"
-msgstr "ç›´å‰ã«é©ç”¨ã•ã‚ŒãŸãƒ‘ッãƒåã®è¡¨ç¤º"
+msgid "print the name of the previous patch"
+msgstr "ç¾è¡Œãƒ‘ッãƒã®ã€Œå‰ã€ã®æ—¢çŸ¥ã®ãƒ‘ッãƒã®åå‰è¡¨ç¤º"
msgid "import uncommitted changes (DEPRECATED)"
msgstr "作業領域ã®å¤‰æ›´å†…容ã®ãƒ‘ッãƒã¸ã®å–ã‚Šè¾¼ã¿(éžæŽ¨å¥¨)"
@@ -6125,6 +4081,9 @@ msgstr "作業領域ã®å¤‰æ›´å†…容ã®ãƒ‘ッãƒã¸ã®å–ã‚Šè¾¼ã¿(éžæŽ¨å¥¨)"
msgid "add \"From: <current user>\" to patch"
msgstr "\"From: <ç¾ãƒ¦ãƒ¼ã‚¶å>\" をパッãƒã«è¿½åŠ "
+msgid "USER"
+msgstr "ユーザ"
+
msgid "add \"From: <USER>\" to patch"
msgstr "\"From: <ユーザ>\" をパッãƒã«è¿½åŠ "
@@ -6148,12 +4107,12 @@ msgid ""
" only changes to matching files to the new patch, leaving the rest\n"
" as uncommitted modifications."
msgstr ""
-" 本コマンドã¯ã€ (パッãƒé©ç”¨ä¸­ã®å ´åˆã¯) é©ç”¨ä¸­ãƒ‘ッãƒã®æœ€ä¸Šä½ã®ä½ç½®ã«ã€\n"
-" æ–°è¦ãƒ‘ッãƒã‚’作æˆã—ã¾ã™ã€‚ æ–°è¦ãƒ‘ッãƒã«ã¯ã€ 作業領域中ã®å…¨ã¦ã®å¤‰æ›´ãŒã€\n"
-" æ ¼ç´ã•ã‚Œã¾ã™ã€‚ -I/--include〠-X/--exclude や〠パッãƒåã«ç¶šãã€\n"
-" ファイルå指定ã®çµ„ã¿åˆã‚ã›ã«ã‚ˆã‚Šã€ 変更ãŒå–ã‚Šè¾¼ã¾ã‚Œã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ã€\n"
-" é™å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ å–ã‚Šè¾¼ã¿å¯¾è±¡å¤–ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ãŠã‘る変更ã¯ã€\n"
-" 未コミットãªã¾ã¾ã€ 作業領域ã«æ®‹ã‚Šã¾ã™ã€‚"
+" 本コマンドã¯ã€ (パッãƒé©ç”¨ä¸­ã®å ´åˆã¯)é©ç”¨ä¸­ãƒ‘ッãƒã®æœ€ä¸Šä½ã®ä½ç½®ã«\n"
+" æ–°è¦ãƒ‘ッãƒã‚’作æˆã—ã¾ã™ã€‚ æ–°è¦ã®ãƒ‘ッãƒã¯ã€ 作業領域中ã®å…¨ã¦ã®å¤‰æ›´ã‚’\n"
+" ä¿æŒã—ã¾ã™ã€‚ -I/--include〠-X/--exclude ã¨ã€ パッãƒåã«ç¶šã‘ã¦æŒ‡å®š\n"
+" ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«åã®çµ„ã¿åˆã‚ã›ã«ã‚ˆã£ã¦ã€ æ–°è¦ãƒ‘ッãƒã«å¤‰æ›´ãŒå–ã‚Šè¾¼ã¾ã‚Œã‚‹\n"
+" ファイルをé™å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ å–ã‚Šè¾¼ã¿å¯¾è±¡å¤–ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ãŠã‘ã‚‹\n"
+" 変更ã¯æœªã‚³ãƒŸãƒƒãƒˆãªã¾ã¾æ®‹ã‚Šã¾ã™ã€‚"
msgid ""
" -u/--user and -d/--date can be used to set the (given) user and\n"
@@ -6169,9 +4128,9 @@ msgid ""
" well as the commit message. If none is specified, the header is\n"
" empty and the commit message is '[mq]: PATCH'."
msgstr ""
-" -e/--edit, -m/--message, -l/--logfile ã¯ã€ コミットログã¨åŒæ§˜ã«ã€\n"
-" パッãƒã®ãƒ˜ãƒƒãƒ€ã«è¨˜éŒ²ã™ã‚‹æƒ…報を指定ã—ã¾ã™ã€‚ 指定ãŒç„¡ã„å ´åˆã¯ã€\n"
-" ヘッダã¯ç©ºã®ã¾ã¾ã€ コミットログ㌠'[mq]: パッãƒå' ã¨ãªã‚Šã¾ã™ã€‚"
+" -e/--edit, -m/--message ãªã„ã— -l/--logfile ã¯ã€ コミットメッセージã¨\n"
+" åŒæ§˜ã«ã€ パッãƒã®ãƒ˜ãƒƒãƒ€ã«è¨˜éŒ²ã™ã‚‹æƒ…報を指定ã—ã¾ã™ã€‚ 指定ãŒç„¡ã„å ´åˆã¯ã€\n"
+" ヘッダã¯ç©ºã®ã¾ã¾ã€ コミットメッセージ㌠'[mq]: パッãƒå' ã¨ãªã‚Šã¾ã™ã€‚"
msgid ""
" Use the -g/--git option to keep the patch in the git extended diff\n"
@@ -6191,7 +4150,7 @@ msgstr ""
" "
msgid "refresh only files already in the patch and specified files"
-msgstr "明示ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã«åŠ ãˆã¦ã€ 既存ã®ãƒ‘ッãƒå¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã‚‚æ›´æ–°"
+msgstr "既存ã®ãƒ‘ッãƒå¯¾è±¡ã«åŠ ãˆã€æ˜Žç¤ºã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’処ç†å¯¾è±¡ã«ã™ã‚‹"
msgid "add/update author field in patch with current user"
msgstr "パッãƒä½œæˆè€…情報をç¾è¡Œãƒ¦ãƒ¼ã‚¶ã«è¨­å®š"
@@ -6224,8 +4183,8 @@ msgid ""
" If -s/--short is specified, files currently included in the patch\n"
" will be refreshed just like matched files and remain in the patch."
msgstr ""
-" -s/--short ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ ç¾è¡Œãƒ‘ッãƒãŒå¤‰æ›´ã‚’ä¿æŒã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€\n"
-" ファイル指定ã•ã‚ŒãŸã‚‚ã®ã¨ã¿ãªã•ã‚Œã€ パッãƒã«ã¨ã©ã¾ã‚Šç¶šã‘ã¾ã™ã€‚"
+" -s/--short ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ ç¾è¡Œãƒ‘ッãƒãŒå¤‰æ›´ã‚’ä¿æŒã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®ã¿ãŒ\n"
+" パッãƒå†…容更新ã®å¯¾è±¡ã¨ãªã£ã¦ã€ パッãƒã«ã¨ã©ã¾ã‚Šç¶šã‘ã¾ã™ã€‚"
msgid ""
" If -e/--edit is specified, Mercurial will start your configured editor "
@@ -6283,13 +4242,13 @@ msgid "edit patch header"
msgstr "パッãƒãƒ˜ãƒƒãƒ€å†…容ã®ç·¨é›†"
msgid "keep folded patch files"
-msgstr "ä½µåˆå¯¾è±¡ãƒ‘ッãƒã®ãƒ‘ッãƒãƒ•ã‚¡ã‚¤ãƒ«å‰Šé™¤ã‚’抑止"
+msgstr "çµåˆå¯¾è±¡ãƒ‘ッãƒã®ãƒ‘ッãƒãƒ•ã‚¡ã‚¤ãƒ«å‰Šé™¤ã‚’抑止"
msgid "hg qfold [-e] [-k] [-m TEXT] [-l FILE] PATCH..."
msgstr "hg qfold [-e] [-k] [-m TEXT] [-l FILE] PATCH..."
msgid "fold the named patches into the current patch"
-msgstr "指定パッãƒã®ç¾è¡Œãƒ‘ッãƒã¸ã®ä½µåˆ"
+msgstr "指定パッãƒã®ç¾è¡Œãƒ‘ッãƒã¸ã®çµ±åˆ"
msgid ""
" Patches must not yet be applied. Each patch will be successively\n"
@@ -6299,44 +4258,40 @@ msgid ""
" deleted. With -k/--keep, the folded patch files will not be\n"
" removed afterwards."
msgstr ""
-" ä½µåˆå¯¾è±¡ãƒ‘ッãƒã¯ã€ 未é©ç”¨ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 個々ã®ãƒ‘ッãƒã¯ã€\n"
-" 指定ã•ã‚ŒãŸé †åºã§ã€ ç¾è¡Œãƒ‘ッãƒã®ä¸Šã«ã€ 連続ã—ã¦é©ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" ä½µåˆå¯¾è±¡ãƒ‘ッãƒã®é©ç”¨ãŒã€ å…¨ã¦æˆåŠŸã—ãŸå ´åˆã€ ç¾è¡Œã®ãƒ‘ッãƒã¯ã€\n"
-" 対象パッãƒå…¨ã¦ã®ç´¯ç©ã¨ã—ã¦æ›´æ–°ã•ã‚Œã€ ä½µåˆãƒ‘ッãƒã¯å‰Šé™¤ã•ã‚Œã¾ã™ã€‚\n"
-" -k/--keep ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ ä½µåˆå¯¾è±¡ãƒ‘ッãƒã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€\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"
-msgstr "ä½µåˆå®Ÿæ–½ã«ã¯æœ€ä½Ž1ã¤ã®ãƒ‘ッãƒå指定ãŒå¿…è¦ã§ã™"
+msgstr "çµ±åˆå®Ÿæ–½ã«ã¯æœ€ä½Ž1ã¤ã®ãƒ‘ッãƒå指定ãŒå¿…è¦ã§ã™"
#, python-format
-msgid "skipping already folded patch %s\n"
-msgstr "æ—¢ã«ä½µåˆæ¸ˆã¿ã®ãƒ‘ッム%s ã¯ç„¡è¦–ã—ã¾ã™\n"
+msgid "Skipping already folded patch %s\n"
+msgstr "æ—¢ã«çµ±åˆæ¸ˆã¿ã®ãƒ‘ッム%s ã¯ç„¡è¦–ã—ã¾ã™\n"
#, python-format
msgid "qfold cannot fold already applied patch %s"
-msgstr "パッム%s ã¯é©ç”¨ä¸­ãªã®ã§ä½µåˆã§ãã¾ã›ã‚“"
+msgstr "パッム%s ã¯é©ç”¨ä¸­ãªã®ã§çµ±åˆã§ãã¾ã›ã‚“"
#, python-format
msgid "error folding patch %s"
-msgstr "パッム%s ã®ä½µåˆã«å¤±æ•—"
-
-msgid "tolerate non-conflicting local changes"
-msgstr "è¡çªã—ãªã„作業領域中ã®å¤‰æ›´ã‚’許容"
+msgstr "パッム%s ã®çµ±åˆã«å¤±æ•—"
msgid "overwrite any local changes"
msgstr "作業領域中ã®å¤‰æ›´ã‚’上書ã"
-msgid "do not save backup copies of files"
-msgstr "å–り消ã—実施å‰å†…容ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—を抑止"
-
msgid "hg qgoto [OPTION]... PATCH"
msgstr "hg qgoto [OPTION]... PATCH"
@@ -6433,16 +4388,11 @@ msgid "push the next patch onto the stack"
msgstr "次ã®ãƒ‘ッãƒã®é©ç”¨"
msgid ""
-" By default, abort if the working directory contains uncommitted\n"
-" changes. With --keep-changes, abort only if the uncommitted files\n"
-" overlap with patched files. With -f/--force, backup and patch over\n"
-" uncommitted changes."
+" When -f/--force is applied, all local changes in patched files\n"
+" will be lost."
msgstr ""
-" 作業領域ã«æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ãŒã‚ã‚‹å ´åˆã€ 通常ã¯ã‚³ãƒžãƒ³ãƒ‰ãŒä¸­æ–­ã•ã‚Œã¾ã™ã€‚\n"
-" --keep-changes ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 未コミット変更ã¨ãƒ‘ッãƒã¨ã®é–“ã§ã€\n"
-" é‡è¤‡ãŒã‚ã‚‹å ´åˆã®ã¿ã€ 中断ã•ã‚Œã¾ã™ã€‚ -f/--force ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€\n"
-" 変更内容をãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã—ãŸä¸Šã§ã€ 未コミット変更ã®ä¸Šã‹ã‚‰ã€\n"
-" パッãƒãŒé©ç”¨ã•ã‚Œã¾ã™ã€‚"
+" -f/--force ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ パッãƒé©ç”¨å¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã®ã€\n"
+" 作業領域ã«ãŠã‘る変更内容ã¯ç ´æ£„ã•ã‚Œã¾ã™ã€‚"
msgid "no saved queues found, please use -n\n"
msgstr "ä¿å­˜ã•ã‚ŒãŸãƒ‘ッãƒç®¡ç†é ˜åŸŸãŒã‚ã‚Šã¾ã›ã‚“。 -n を使用ã—ã¦ãã ã•ã„\n"
@@ -6467,24 +4417,13 @@ msgid "pop the current patch off the stack"
msgstr "ç¾è¡Œãƒ‘ッãƒã®é©ç”¨è§£é™¤"
msgid ""
-" Without argument, pops off the top of the patch stack. If given a\n"
-" patch name, keeps popping off patches until the named patch is at\n"
-" the top of the stack."
-msgstr ""
-" 引数指定ãŒç„¡ã„å ´åˆã€ é©ç”¨ä¸­ãƒ‘ッãƒç¾¤ã®ã†ã¡ã€ 最上ä½ãƒ‘ッãƒã‚’解除ã—ã¾ã™ã€‚\n"
-" パッãƒåãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 当該パッãƒãŒé©ç”¨æœ€ä¸Šä½ãƒ‘ッãƒã«ãªã‚‹ã¾ã§ã€\n"
-" ä»–ã®ãƒ‘ッãƒã®é©ç”¨è§£é™¤ã‚’è¡Œã„ã¾ã™ã€‚"
-
-msgid ""
-" By default, abort if the working directory contains uncommitted\n"
-" changes. With --keep-changes, abort only if the uncommitted files\n"
-" overlap with patched files. With -f/--force, backup and discard\n"
-" changes made to such files."
+" 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."
msgstr ""
-" 作業領域ã«æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ãŒã‚ã‚‹å ´åˆã€ 通常ã¯ã‚³ãƒžãƒ³ãƒ‰ãŒä¸­æ–­ã•ã‚Œã¾ã™ã€‚\n"
-" --keep-changes ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 未コミット変更ã¨ãƒ‘ッãƒã¨ã®é–“ã§ã€\n"
-" é‡è¤‡ãŒã‚ã‚‹å ´åˆã®ã¿ã€ 中断ã•ã‚Œã¾ã™ã€‚ -f/--force ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€\n"
-" 変更内容をãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã—ãŸä¸Šã§ã€ 未コミット変更ã®å†…容を破棄ã—ã¾ã™ã€‚"
+" 特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ é©ç”¨ä¸­ã®æœ€ä¸Šä½ãƒ‘ッãƒã‚’解除ã—ã¾ã™ã€‚ パッãƒåãŒæŒ‡å®š\n"
+" ã•ã‚ŒãŸå ´åˆã€ 当該パッãƒãŒé©ç”¨ä¸­ã®æœ€ä¸Šä½ãƒ‘ッãƒã«ãªã‚‹ã¾ã§ã€ ä»–ã®ãƒ‘ッãƒã®\n"
+" é©ç”¨è§£é™¤ã‚’è¡Œã„ã¾ã™ã€‚"
#, python-format
msgid "using patch queue: %s\n"
@@ -6548,11 +4487,6 @@ msgstr "ä¿å­˜å…ˆ %s ãŒå­˜åœ¨ã—ã¾ã™ã€‚ 実施ã™ã‚‹å ´åˆã¯ -f を指定ã—
msgid "copy %s to %s\n"
msgstr "%s ã‹ã‚‰ %s ã«è¤‡è£½ã—ã¾ã™\n"
-msgid ""
-"strip specified revision (optional, can specify revisions without this "
-"option)"
-msgstr "指定リビジョンã®å‰Šé™¤ (本オプション無ã—ã§ã‚‚リビジョン指定å¯èƒ½)"
-
msgid "force removal of changesets, discard uncommitted changes (no backup)"
msgstr "リビジョンを強制的ã«å‰Šé™¤ã—〠未コミット変更内容を破棄(ä¿å­˜ç„¡ã—)"
@@ -6568,17 +4502,11 @@ msgstr "ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—作æˆã®æŠ‘æ­¢"
msgid "no backups (DEPRECATED)"
msgstr "ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—作æˆã®æŠ‘æ­¢(éžæŽ¨å¥¨)"
-msgid "ignored (DEPRECATED)"
-msgstr "※ ã“ã®ã‚ªãƒ—ションã¯ç„¡è¦–ã•ã‚Œã¾ã™ (éžæŽ¨å¥¨)"
-
msgid "do not modify working copy during strip"
msgstr "処ç†ä¸­ã®ä½œæ¥­é ˜åŸŸæ›´æ–°ã‚’抑止"
-msgid "remove revs only reachable from given bookmark"
-msgstr "指定ブックマークã‹ã‚‰ã€ 到é”å¯èƒ½ãªãƒªãƒ“ジョンã®ã¿ã‚’除外"
-
-msgid "hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV..."
-msgstr "hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV..."
+msgid "hg strip [-k] [-f] [-n] REV..."
+msgstr "hg strip [-k] [-f] [-n] REV..."
msgid "strip changesets and all their descendants from the repository"
msgstr "リãƒã‚¸ãƒˆãƒªã‹ã‚‰ã®ã€ 特定リビジョンãŠã‚ˆã³ãã®å­å­«ã®é™¤å¤–"
@@ -6590,7 +4518,7 @@ msgid ""
" case changes will be discarded."
msgstr ""
" :hg:`strip` ã¯æŒ‡å®šã®ãƒªãƒ“ジョンãŠã‚ˆã³ã€ 指定リビジョンã®å­å­«ã‚’\n"
-" å–り除ãã¾ã™ã€‚ 作業領域ã®å¤‰æ›´ãŒæœªã‚³ãƒŸãƒƒãƒˆã®å ´åˆã€\n"
+" å–り除ãã¾ã™ã€‚ 作業領域ã«æœªã‚³ãƒŸãƒƒãƒˆã®å¤‰æ›´ãŒã‚ã‚‹å ´åˆã€\n"
" --force ãŒæŒ‡å®šã•ã‚Œãªã„é™ã‚Šã¯å‡¦ç†ã‚’中断ã—ã¾ã™ã€‚\n"
" --force ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 変更内容ã¯ç ´æ£„ã•ã‚Œã¾ã™ã€‚"
@@ -6601,7 +4529,7 @@ msgid ""
" completes."
msgstr ""
" 作業領域ã®è¦ªãƒªãƒ“ジョンãŒé™¤å¤–対象ã«ãªã£ãŸå ´åˆã€ 除外æ“作ã®å®Œäº†å¾Œã«ã€\n"
-" 除外ã•ã‚ŒãŸè¦ªãƒªãƒ“ジョンã®ç¥–å…ˆã®ä¸­ã§ã€ 最も近ã„有効ãªãƒªãƒ“ジョンã§ã€\n"
+" 除外ã•ã‚ŒãŸè¦ªãƒªãƒ“ジョンã®å…ˆç¥–ã®ä¸­ã§æœ€ã‚‚è¿‘ã„有効ãªãƒªãƒ“ジョンを使用ã—ã¦\n"
" 作業領域を更新ã—ã¾ã™ã€‚"
msgid ""
@@ -6626,24 +4554,6 @@ msgstr ""
" 除外処ç†å®Œäº†æ™‚点㧠bundle ファイルを破棄ã™ã‚‹å ´åˆã¯\n"
" --no-backup を指定ã—ã¦ãã ã•ã„。"
-msgid ""
-" Strip is not a history-rewriting operation and can be used on\n"
-" changesets in the public phase. But if the stripped changesets have\n"
-" been pushed to a remote repository you will likely pull them again."
-msgstr ""
-" 本コマンドã§ã®æ“作ã¯ã€ 履歴ã®æ›¸ãæ›ãˆã§ã¯ãªã„ã®ã§ã€ 対象リビジョンãŒ\n"
-" public フェーズã§ã‚‚〠実行å¯èƒ½ã§ã™ã€‚ 但ã—〠除外対象リビジョンãŒã€\n"
-" 他リãƒã‚¸ãƒˆãƒªã«å映済ã¿ã§ã‚ã‚‹å ´åˆã€ ãã®ãƒªãƒ“ジョン㯠pull æ“作ã«ã‚ˆã‚Šã€\n"
-" å†ã³æ‰‹å…ƒã®ãƒªãƒã‚¸ãƒˆãƒªã«å‡ºç¾ã™ã‚‹ã“ã¨ã§ã—ょã†ã€‚"
-
-#, python-format
-msgid "bookmark '%s' not found"
-msgstr "ブックマーク '%s' ãŒã‚ã‚Šã¾ã›ã‚“"
-
-#, python-format
-msgid "bookmark '%s' deleted\n"
-msgstr "ブックマーク '%s' ãŒç ´æ£„ã•ã‚Œã¾ã—ãŸ\n"
-
msgid "empty revision set"
msgstr "指定ã«è©²å½“ã™ã‚‹ãƒªãƒ“ジョンã¯ã‚ã‚Šã¾ã›ã‚“"
@@ -6720,12 +4630,12 @@ msgid ""
" --pop) to push back to the current patch afterwards, but skip\n"
" guarded patches."
msgstr ""
-" 本コマンドã®å®Ÿè¡Œã«ã‚ˆã‚Šã€ é©ç”¨ä¸­ã®ãƒ‘ッãƒã®é©ç”¨å¯å¦ã‚‚変化ã—å¾—ã¾ã™ã€‚ \n"
-" 特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ ガードãŒæœ‰åŠ¹ãªãƒ‘ッãƒã®é©ç”¨è§£é™¤ã¯è¡Œã‚ã‚Œã¾ã›ã‚“。\n"
-" --pop ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ é©ç”¨å¯å¦ãŒå¤‰ã‚る最åˆã®ãƒ‘ッãƒã¾ã§ã®ãƒ‘ッãƒãŒã€\n"
+" 本コマンドã®å®Ÿè¡Œã«ã‚ˆã‚Šã€ é©ç”¨ä¸­ã®ãƒ‘ッãƒã®é©ç”¨å¯å¦ã‚‚変化ã—å¾—ã¾ã™ã€‚ 特ã«\n"
+" 指定ãŒç„¡ã„å ´åˆã€ ガードãŒæœ‰åŠ¹ãªãƒ‘ッãƒã®é©ç”¨è§£é™¤ã¯è¡Œã‚ã‚Œã¾ã›ã‚“。\n"
+" --pop ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ é©ç”¨å¯å¦ãŒå¤‰ã‚る最åˆã®ãƒ‘ッãƒã¾ã§ã®ãƒ‘ッãƒãŒ\n"
" é©ç”¨è§£é™¤ã•ã‚Œã¾ã™ã€‚ --reapply ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ --pop 相当ã®å‡¦ç†å¾Œã«ã€\n"
-" ガードãŒæœ‰åŠ¹ãªãƒ‘ッãƒã®é©ç”¨ã‚’見é€ã‚Šã¤ã¤ã€ ç¾è¡Œãƒ‘ッãƒã«è‡³ã‚‹ã¾ã§ã€\n"
-" パッãƒã‚’å†é©ç”¨ã—ã¾ã™ã€‚"
+" ガードãŒæœ‰åŠ¹ãªãƒ‘ッãƒã®é©ç”¨ã‚’見é€ã‚Šã¤ã¤ã€ ç¾è¡Œãƒ‘ッãƒã«è‡³ã‚‹ã¾ã§ãƒ‘ッãƒã‚’\n"
+" å†é©ç”¨ã—ã¾ã™ã€‚"
msgid ""
" Use -s/--series to print a list of all guards in the series file\n"
@@ -6802,15 +4712,9 @@ msgstr ""
msgid "no revisions specified"
msgstr "リビジョン指定ãŒã‚ã‚Šã¾ã›ã‚“"
-msgid "warning: uncommitted changes in the working directory\n"
-msgstr "警告: 作業領域ã®å¤‰æ›´ãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™\n"
-
msgid "list all available queues"
msgstr "有効ãªã‚­ãƒ¥ãƒ¼ã®ä¸€è¦§è¡¨ç¤º"
-msgid "print name of active queue"
-msgstr "アクティブãªã‚­ãƒ¥ãƒ¼åã®è¡¨ç¤º"
-
msgid "create new queue"
msgstr "æ–°è¦ã‚­ãƒ¥ãƒ¼ã®ä½œæˆ"
@@ -6841,15 +4745,12 @@ msgid ""
"registered\n"
" queues - by default the \"normal\" patches queue is registered. The "
"currently\n"
-" active queue will be marked with \"(active)\". Specifying --active will "
-"print\n"
-" only the name of the active queue."
+" active queue will be marked with \"(active)\"."
msgstr ""
" キューå称を指定ã—ãªã„ã‹ã€ -l/--list ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 登録済ã¿ã®\n"
" キューã®ä¸€è¦§ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ - 通常㯠\"normal\" パッãƒã‚­ãƒ¥ãƒ¼ãŒç™»éŒ²\n"
" 済ã¿ã§ã™ã€‚ 当該時点ã§ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªã‚­ãƒ¥ãƒ¼ã«ã¯ \"(アクティブ)\" ãŒè¡¨ç¤º\n"
-" ã•ã‚Œã¾ã™ã€‚ --active ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 表示対象ã¨ãªã‚‹ã‚­ãƒ¥ãƒ¼ã¯ã€\n"
-" アクティブãªã‚­ãƒ¥ãƒ¼ã®ã¿ã§ã™"
+" ã•ã‚Œã¾ã™ã€‚"
msgid ""
" To create a new queue, use -c/--create. The queue is automatically made\n"
@@ -6903,12 +4804,15 @@ msgstr "æ–°è¦ã‚­ãƒ¥ãƒ¼ã®ä½œæˆã«ã¯ --create を指定ã—ã¦ãã ã•ã„"
msgid "cannot commit over an applied mq patch"
msgstr "MQ パッãƒé©ç”¨ä¸­ã¯ã‚³ãƒŸãƒƒãƒˆã‚’実施ã§ãã¾ã›ã‚“"
+msgid "source has mq patches applied"
+msgstr "元リãƒã‚¸ãƒˆãƒªã§ã¯ MQ パッãƒãŒé©ç”¨ä¸­ã§ã™"
+
#, python-format
msgid "mq status file refers to unknown node %s\n"
msgstr "MQ ã®çŠ¶æ…‹ç®¡ç†ãƒ•ã‚¡ã‚¤ãƒ«ãŒæœªçŸ¥ã®ãƒªãƒ“ジョン %s ã‚’å‚ç…§ã—ã¦ã„ã¾ã™\n"
#, python-format
-msgid "tag %s overrides mq patch of the same name\n"
+msgid "Tag %s overrides mq patch of the same name\n"
msgstr "ã‚¿ã‚° %s 㯠MQ パッãƒã®åŒåタグを上書ãã—ã¾ã™\n"
msgid "cannot import over an applied patch"
@@ -6942,291 +4846,104 @@ msgstr ""
" MQ 管ç†ä¸‹ã«ã‚るリビジョン"
msgid "mq takes no arguments"
-msgstr "mq ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "mq 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid "operate on patch repository"
msgstr "パッãƒç®¡ç†ãƒªãƒã‚¸ãƒˆãƒªã¸ã®æ“作"
-msgid "hooks for sending email push notifications"
-msgstr "é›»å­ãƒ¡ãƒ¼ãƒ«ã«ã‚ˆã‚‹ push 通知é€ä¿¡ç”¨ãƒ•ãƒƒã‚¯é›†"
+msgid "hooks for sending email notifications at commit/push time"
+msgstr "commit/push 契機ã§ã®ãƒ¡ãƒ¼ãƒ«é€šçŸ¥ç”¨ãƒ•ãƒƒã‚¯é›†"
msgid ""
-"This extension implements hooks to send email notifications when\n"
-"changesets are sent from or received by the local repository."
+"Subscriptions can be managed through a hgrc file. Default mode is to\n"
+"print messages to stdout, for testing and configuring."
msgstr ""
-"本エクステンションã§ã¯ã€ 変更履歴ãŒã€ 手元ã®ãƒªãƒã‚¸ãƒˆãƒªã«å–ã‚Šè¾¼ã¾ã‚ŒãŸã‚Šã€\n"
-"ä»–ã®ãƒªãƒã‚¸ãƒˆãƒªã¸ã¨å映ã•ã‚ŒãŸã®ã‚’契機ã«ã€ é›»å­ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã™ã‚‹ãŸã‚ã®ã€\n"
-"フックをæä¾›ã—ã¾ã™ã€‚"
msgid ""
-"First, enable the extension as explained in :hg:`help extensions`, and\n"
-"register the hook you want to run. ``incoming`` and ``changegroup`` hooks\n"
-"are run when changesets are received, while ``outgoing`` hooks are for\n"
-"changesets sent to another repository::"
+"To use, configure the notify extension and enable it in hgrc like\n"
+"this::"
msgstr ""
-":hg:`help extensions` ã«ãªã‚‰ã£ã¦ã€ 本エクステンションを有効ã«ã—ãŸä¸Šã§ã€\n"
-"実行ã—ãŸã„フックを登録ã—ã¦ãã ã•ã„。 `incoming`` ãŠã‚ˆã³ ``changegroup``\n"
-"フックã¯å±¥æ­´ã®å–ã‚Šè¾¼ã¿ã§ã€ ``outgoing`` ã¯å±¥æ­´ã®å映ã®éš›ã«å®Ÿè¡Œã•ã‚Œã¾ã™::"
msgid ""
-" [hooks]\n"
-" # one email for each incoming changeset\n"
-" incoming.notify = python:hgext.notify.hook\n"
-" # one email for all incoming changesets\n"
-" changegroup.notify = python:hgext.notify.hook"
+" [extensions]\n"
+" notify ="
msgstr ""
-" [hooks]\n"
-" # å–ã‚Šè¾¼ã¿å‡¦ç†æ™‚ã«ãƒªãƒ“ジョン毎ã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡\n"
-" incoming.notify = python:hgext.notify.hook\n"
-" # å–ã‚Šè¾¼ã¿å‡¦ç†æ¯Žã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡\n"
-" changegroup.notify = python:hgext.notify.hook"
msgid ""
-" # one email for all outgoing changesets\n"
-" outgoing.notify = python:hgext.notify.hook"
-msgstr ""
-" # å映処ç†æ¯Žã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡\n"
+" [hooks]\n"
+" # one email for each incoming changeset\n"
+" incoming.notify = python:hgext.notify.hook\n"
+" # batch emails when many changesets incoming at one time\n"
+" changegroup.notify = python:hgext.notify.hook\n"
+" # batch emails when many changesets outgoing at one time (client side)\n"
" outgoing.notify = python:hgext.notify.hook"
-
-msgid ""
-"This registers the hooks. To enable notification, subscribers must\n"
-"be assigned to repositories. The ``[usersubs]`` section maps multiple\n"
-"repositories to a given recipient. The ``[reposubs]`` section maps\n"
-"multiple recipients to a single repository::"
-msgstr ""
-"上記ã®è¨­å®šã«ã‚ˆã‚Šã€ フックãŒç™»éŒ²ã•ã‚Œã¾ã™ã€‚ メール通知を有効ã«ã™ã‚‹ã«ã¯ã€\n"
-"リãƒã‚¸ãƒˆãƒªæ¯Žã®ãƒ¡ãƒ¼ãƒ«é€ä¿¡å…ˆ (subscriber:購読者) 設定ãŒå¿…è¦ã§ã™ã€‚\n"
-"``[usersubs]`` ã¯å˜ä¸€è³¼èª­è€…ã«è¤‡æ•°ã®ãƒªãƒã‚¸ãƒˆãƒªã‚’設定ã—ã¾ã™ã€‚\n"
-"``[reposubs]`` ã¯å˜ä¸€ãƒªãƒã‚¸ãƒˆãƒªã«è¤‡æ•°ã®è³¼èª­è€…を設定ã—ã¾ã™ã€‚"
-
-msgid ""
-" [usersubs]\n"
-" # key is subscriber email, value is a comma-separated list of repo glob\n"
-" # patterns\n"
-" user@host = pattern"
msgstr ""
-" [usersubs]\n"
-" # 左辺ã«ã¯é€ä¿¡å…ˆãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã€å³è¾ºã«ã¯ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã®\n"
-" # リãƒã‚¸ãƒˆãƒªåˆè‡´(glob)パターンを記述ã—ã¦ãã ã•ã„\n"
-" user@host = pattern"
-
-msgid ""
-" [reposubs]\n"
-" # key is glob pattern, value is a comma-separated list of subscriber\n"
-" # emails\n"
-" pattern = user@host"
-msgstr ""
-" # 左辺ã«ã¯åˆè‡´ãƒ‘ターンã€å³è¾ºã«ã¯ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã®é€ä¿¡å…ˆãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’\n"
-" # 記述ã—ã¦ãã ã•ã„\n"
-" pattern = user@host"
-
-msgid ""
-"Glob patterns are matched against absolute path to repository\n"
-"root."
-msgstr "åˆè‡´ãƒ‘ターンã®é©ç”¨å¯¾è±¡ã¯ã€ リãƒã‚¸ãƒˆãƒªãƒ«ãƒ¼ãƒˆã®çµ¶å¯¾ãƒ‘スã§ã™ã€‚"
-
-msgid ""
-"In order to place them under direct user management, ``[usersubs]`` and\n"
-"``[reposubs]`` sections may be placed in a separate ``hgrc`` file and\n"
-"incorporated by reference::"
-msgstr ""
-"``[usersubs]`` ãŠã‚ˆã³ ``[reposubs]`` 設定を〠別ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«è¨˜è¿°ã—ã¦ã€\n"
-"ãã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’読ã¿è¾¼ã‚€ã‚ˆã†ã«ã™ã‚‹ã“ã¨ã§ã€ メールé€ä¿¡å…ˆãƒ¦ãƒ¼ã‚¶ã®ç®¡ç†ã‚’ã€\n"
-"独立ã•ã›ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™::"
msgid ""
" [notify]\n"
-" config = /path/to/subscriptionsfile"
+" # config items go here"
msgstr ""
-" [notify]\n"
-" config = /path/to/subscriptionsfile"
-msgid ""
-"Notifications will not be sent until the ``notify.test`` value is set\n"
-"to ``False``; see below."
+msgid "Required configuration items::"
msgstr ""
-"``notify.test`` 設定を ``False`` ã«ã—ãªã„é™ã‚Šã€ メールã¯é€ä¿¡ã•ã‚Œã¾ã›ã‚“。\n"
-"詳細ã¯å¾Œè¿°ã®èª¬æ˜Žã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-
-msgid ""
-"Notifications content can be tweaked with the following configuration "
-"entries:"
-msgstr "通知内容ã¯ã€ 以下ã®è¨­å®šã«ã‚ˆã‚Šå¤‰æ›´å¯èƒ½ã§ã™:"
-msgid ""
-"notify.test\n"
-" If ``True``, print messages to stdout instead of sending them. Default: "
-"True."
+msgid " config = /path/to/file # file containing subscriptions"
msgstr ""
-"notify.test\n"
-" 真値ã®å ´åˆã€ 生æˆã•ã‚ŒãŸé€šçŸ¥å†…容ã¯ã€ 標準出力ã«æ›¸ã出ã•ã‚Œã¾ã™\n"
-" (メールé€ä¿¡ç„¡ã—)。 デフォルト値㯠True"
-msgid ""
-"notify.sources\n"
-" Space-separated list of change sources. Notifications are activated only\n"
-" when a changeset's source is in this list. Sources may be:"
+msgid "Optional configuration items::"
msgstr ""
-"notify.sources\n"
-" 空白区切りã®å¤‰æ›´å映元一覧。 変更å映元ãŒä¸€è¦§è¦ç´ ã¨åˆè‡´ã™ã‚‹å ´åˆã®ã¿ã€\n"
-" メールé€ä¿¡ãŒæœ‰åŠ¹ã«ãªã‚Šã¾ã™ã€‚ 指定å¯èƒ½ãªè¦ç´ ã¯:"
msgid ""
-" :``serve``: changesets received via http or ssh\n"
-" :``pull``: changesets received via ``hg pull``\n"
-" :``unbundle``: changesets received via ``hg unbundle``\n"
-" :``push``: changesets sent or received via ``hg push``\n"
-" :``bundle``: changesets sent via ``hg unbundle``"
-msgstr ""
-" :``serve``: http ã¾ãŸã¯ ssh 経由ã§ã®å–ã‚Šè¾¼ã¿\n"
-" :``pull``: ``hg pull`` 経由ã§ã®å–ã‚Šè¾¼ã¿\n"
-" :``unbundle``: ``hg unbundle`` 経由ã§ã®å–ã‚Šè¾¼ã¿\n"
-" :``push``: ``hg push`` 経由ã§ã®å映ï¼å–ã‚Šè¾¼ã¿\n"
-" :``bundle``: ``hg unbundle`` 経由ã§ã®å映"
-
-msgid " Default: serve."
-msgstr " デフォルト値㯠serve ã§ã™ã€‚"
-
-msgid ""
-"notify.strip\n"
-" Number of leading slashes to strip from url paths. By default, "
-"notifications\n"
-" reference repositories with their absolute path. ``notify.strip`` lets "
-"you\n"
-" turn them into relative paths. For example, ``notify.strip=3`` will "
-"change\n"
-" ``/long/path/repository`` into ``repository``. Default: 0."
-msgstr ""
-"notify.strip\n"
-" URL パス冒頭ã‹ã‚‰å–り除ã〠スラッシュ数。 無指定時ã¯ã€\n"
-" リãƒã‚¸ãƒˆãƒªã®çµ¶å¯¾ãƒ‘スãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ ``notify.strip`` ã«ã‚ˆã£ã¦ã€\n"
-" リãƒã‚¸ãƒˆãƒªã®ãƒ‘スを〠相対パス化ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 例ãˆã°ã€\n"
-" ``notify.strip=3`` 㯠``/long/path/repository`` を ``repository``\n"
-" ã«æ”¹å¤‰ã—ã¾ã™ã€‚ デフォルト値㯠0。"
-
-msgid ""
-"notify.domain\n"
-" Default email domain for sender or recipients with no explicit domain."
-msgstr ""
-"notify.domain\n"
-" 明示的ãªãƒ‰ãƒ¡ã‚¤ãƒ³ãŒç„¡ã„å ´åˆã®ã€ é€ä¿¡å…ƒï¼å…ˆãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ã€‚"
-
-msgid ""
-"notify.style\n"
-" Style file to use when formatting emails."
-msgstr ""
-"notify.style\n"
-" メール本文ã®æ•´å½¢ã«ç”¨ã„る〠スタイルファイルå。"
-
-msgid ""
-"notify.template\n"
-" Template to use when formatting emails."
-msgstr ""
-"notify.template\n"
-" メール本文ã®æ•´å½¢ã«ç”¨ã„る〠テンプレート指定。"
-
-msgid ""
-"notify.incoming\n"
-" Template to use when run as an incoming hook, overriding ``notify."
-"template``."
-msgstr ""
-"notify.incoming\n"
-" incoming フックã§ä½¿ç”¨ã™ã‚‹ãƒ†ãƒ³ãƒ—レート指定。 設定ã•ã‚ŒãŸå ´åˆã¯ã€\n"
-" ``notify.template`` ã«å„ªå…ˆã—ã¾ã™ã€‚"
-
-msgid ""
-"notify.outgoing\n"
-" Template to use when run as an outgoing hook, overriding ``notify."
-"template``."
-msgstr ""
-"notify.outgoing\n"
-" outgoing フックã§ä½¿ç”¨ã™ã‚‹ãƒ†ãƒ³ãƒ—レート設定。 設定ã•ã‚ŒãŸå ´åˆã¯ã€\n"
-" ``notify.template`` ã«å„ªå…ˆã—ã¾ã™ã€‚"
-
-msgid ""
-"notify.changegroup\n"
-" Template to use when running as a changegroup hook, overriding\n"
-" ``notify.template``."
-msgstr ""
-"notify.changegroup\n"
-" changegroup フックã§ä½¿ç”¨ã™ã‚‹ãƒ†ãƒ³ãƒ—レート設定。 設定ã•ã‚ŒãŸå ´åˆã¯ã€\n"
-" ``notify.template`` ã«å„ªå…ˆã—ã¾ã™ã€‚"
-
-msgid ""
-"notify.maxdiff\n"
-" Maximum number of diff lines to include in notification email. Set to 0\n"
-" to disable the diff, or -1 to include all of it. Default: 300."
-msgstr ""
-"notify.maxdiff\n"
-" メール本文ã«å«ã‚る〠差分情報ã®æœ€å¤§è¡Œæ•°ã€‚ 0 ã®å ´åˆã¯ã€ 差分ãŒå«ã¾ã‚Œãšã€\n"
-" -1 ã®å ´åˆã¯ã€ 全差分行ãŒå«ã¾ã‚Œã¾ã™ã€‚ デフォルト値㯠300。"
-
-msgid ""
-"notify.maxsubject\n"
-" Maximum number of characters in email's subject line. Default: 67."
-msgstr ""
-"notify.maxsubject\n"
-" メール表題 (subject) ã®æœ€å¤§æ–‡å­—数。 デフォルト値㯠67。"
-
-msgid ""
-"notify.diffstat\n"
-" Set to True to include a diffstat before diff content. Default: True."
+" test = True # print messages to stdout for testing\n"
+" strip = 3 # number of slashes to strip for url paths\n"
+" domain = example.com # domain to use if committer missing domain\n"
+" style = ... # style file to use when formatting email\n"
+" template = ... # template to use when formatting email\n"
+" incoming = ... # template to use when run as incoming hook\n"
+" outgoing = ... # template to use when run as outgoing hook\n"
+" changegroup = ... # template to use when run as changegroup hook\n"
+" maxdiff = 300 # max lines of diffs to include (0=none, -1=all)\n"
+" maxsubject = 67 # truncate subject line longer than this\n"
+" diffstat = True # add a diffstat before the diff content\n"
+" sources = serve # notify if source of incoming changes in this "
+"list\n"
+" # (serve == ssh or http, push, pull, bundle)\n"
+" merge = False # send notification for merges (default True)\n"
+" [email]\n"
+" from = user@host.com # email address to send as if none given\n"
+" [web]\n"
+" baseurl = http://hgserver/... # root of hg web site for browsing commits"
msgstr ""
-"notify.diffstat\n"
-" 差分統計 (diffstat) 通知ã®æœ‰ç„¡ã€‚ デフォルト値㯠True。"
msgid ""
-"notify.merge\n"
-" If True, send notifications for merge changesets. Default: True."
+"The notify config file has same format as a regular hgrc file. It has\n"
+"two sections so you can express subscriptions in whatever way is\n"
+"handier for you."
msgstr ""
-"notify.merge\n"
-" マージ実施リビジョンã«é–¢ã™ã‚‹ã€ 通知ã®æœ‰ç„¡ã€‚ デフォルト値㯠True。"
msgid ""
-"notify.mbox\n"
-" If set, append mails to this mbox file instead of sending. Default: None."
+" [usersubs]\n"
+" # key is subscriber email, value is \",\"-separated list of glob patterns\n"
+" user@host = pattern"
msgstr ""
-"notify.mbox\n"
-" 値ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€ mbox ファイル指定ã¨ã¿ãªã—〠メールé€ä¿¡ã®ä»£ã‚ã‚Šã«ã€\n"
-" é€ä¿¡å†…容を mbox ファイルã«è¿½è¨˜ã—ã¾ã™ã€‚ デフォルト値ã¯ç„¡è¨­å®šã€‚"
msgid ""
-"notify.fromauthor\n"
-" If set, use the committer of the first changeset in a changegroup for\n"
-" the \"From\" field of the notification mail. If not set, take the user\n"
-" from the pushing repo. Default: False."
+" [reposubs]\n"
+" # key is glob pattern, value is \",\"-separated list of subscriber emails\n"
+" pattern = user@host"
msgstr ""
-"notify.fromauthor\n"
-" 真値ã®å ´åˆã€ 通知契機リビジョン群ã®ã€ 先頭リビジョンã®ãƒ¦ãƒ¼ã‚¶åã‚’ã€\n"
-" 通知メール㮠\"From\" フィールドã«ä½¿ç”¨ã—ã¾ã™ã€‚ ãれ以外ã®å ´åˆã¯ã€\n"
-" 変更å映元ã‹ã‚‰ã®ã€ ユーザå情報を利用ã—ã¾ã™ã€‚ デフォルト値㯠False。"
-
-msgid ""
-"If set, the following entries will also be used to customize the\n"
-"notifications:"
-msgstr "通知ã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã«ã¯ã€ 以下ã®è¨­å®šã‚‚利用å¯èƒ½ã§ã™:"
-msgid ""
-"email.from\n"
-" Email ``From`` address to use if none can be found in the generated\n"
-" email content."
+msgid "Glob patterns are matched against path to repository root."
msgstr ""
-"email.from\n"
-" 生æˆã•ã‚ŒãŸé€šçŸ¥ãƒ¡ãƒ¼ãƒ«æœ¬æ–‡ã«ã€ 相当ã™ã‚‹æƒ…å ±ãŒç„¡ã„å ´åˆã¯ã€ ã“ã®å€¤ãŒ\n"
-" ``From`` フィールドã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid ""
-"web.baseurl\n"
-" Root repository URL to combine with repository paths when making\n"
-" references. See also ``notify.strip``."
+"If you like, you can put notify config file in repository that users\n"
+"can push changes to, they can manage their own subscriptions.\n"
msgstr ""
-"web.baseurl\n"
-" リãƒã‚¸ãƒˆãƒªã®ãƒ‘スã¨çµ„ã¿åˆã‚ã›ã¦ã€ å‚照用 URL を生æˆã™ã‚‹ URL ベース。\n"
-" ``notify.strip`` ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。"
#, python-format
msgid "%s: %d new changesets"
-msgstr "%s: %d 件ã®æ–°ã—ã„リビジョン"
+msgstr "%s: %d 件ã®æ–°ã—ã„ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ"
#, python-format
msgid "notify: sending %d subscribers %d changes\n"
@@ -7256,78 +4973,69 @@ msgid "browse command output with an external pager"
msgstr "コマンド出力ã«å¯¾ã™ã‚‹å¤–部ページャーã®ä½¿ç”¨"
msgid "To set the pager that should be used, set the application variable::"
-msgstr "使用ã™ã‚‹ãƒšãƒ¼ã‚¸ãƒ£ãƒ¼ã®è¨­å®šã¯ã€ 以下ã®ã‚ˆã†ãªè¨­å®šã§è¡Œã„ã¾ã™::"
+msgstr ""
msgid ""
" [pager]\n"
-" pager = less -FRX"
+" pager = less -FRSX"
msgstr ""
-" [pager]\n"
-" pager = less -FRX"
msgid ""
"If no pager is set, the pager extensions uses the environment variable\n"
"$PAGER. If neither pager.pager, nor $PAGER is set, no pager is used."
msgstr ""
-"上記設定ãŒç„¡ã„å ´åˆã€ 本エクステンション㯠PAGER 環境変数をå‚ç…§ã—ã¾ã™ã€‚\n"
-"pager.pager ã‚‚ PAGER も未設定ã®å ´åˆã€ 本エクステンションã¯ä½•ã‚‚ã—ã¾ã›ã‚“。"
+
+msgid ""
+"If you notice \"BROKEN PIPE\" error messages, you can disable them by\n"
+"setting::"
+msgstr ""
+
+msgid ""
+" [pager]\n"
+" quiet = True"
+msgstr ""
msgid ""
"You can disable the pager for certain commands by adding them to the\n"
"pager.ignore list::"
msgstr ""
-"pager.ignore 設定ã«ã‚³ãƒžãƒ³ãƒ‰åを列挙ã™ã‚‹ã“ã¨ã§ã€ 当該コマンド実行ã§ã®ã€\n"
-"ページャーã®ä½¿ç”¨ã‚’抑止ã§ãã¾ã™::"
msgid ""
" [pager]\n"
" ignore = version, help, update"
msgstr ""
-" [pager]\n"
-" ignore = version, help, update"
msgid ""
"You can also enable the pager only for certain commands using\n"
"pager.attend. Below is the default list of commands to be paged::"
msgstr ""
-"pager.attend 設定ã«ã‚³ãƒžãƒ³ãƒ‰åを列挙ã™ã‚‹ã“ã¨ã§ã€ ページャーã®ä½¿ç”¨ã‚’ã€\n"
-"当該コマンド実行時ã«é™å®šã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ 以下ã®è¨­å®šä¾‹ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ã€\n"
-"デフォルトã®ãƒšãƒ¼ã‚¸ãƒ£ãƒ¼ä½¿ç”¨å¯¾è±¡ã§ã™::"
msgid ""
" [pager]\n"
" attend = annotate, cat, diff, export, glog, log, qdiff"
msgstr ""
-" [pager]\n"
-" attend = annotate, cat, diff, export, glog, log, qdiff"
msgid ""
"Setting pager.attend to an empty value will cause all commands to be\n"
"paged."
-msgstr "pager.attend 設定を空ã«ã™ã‚‹ã“ã¨ã§ã€ å…¨ã¦ã®ã‚³ãƒžãƒ³ãƒ‰ãŒå¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚"
+msgstr ""
msgid "If pager.attend is present, pager.ignore will be ignored."
-msgstr "pager.attend 設定時㯠pager.ignore 設定ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
+msgstr ""
msgid ""
"To ignore global commands like :hg:`version` or :hg:`help`, you have\n"
"to specify them in your user configuration file."
msgstr ""
-":hg:`version` ã‚„ :hg:`help` ã®ã‚ˆã†ãªã‚°ãƒ­ãƒ¼ãƒãƒ«ã‚³ãƒžãƒ³ãƒ‰ã§ã€\n"
-"ページャー使用を抑止ã—ãŸã„å ´åˆã€ 個人ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ä¸­ã§ã€\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 ""
-"ページャーã®ä½¿ç”¨ã¯ã€ --pager=... ã§ã‚‚制御ã§ãã¾ã™ã€‚\n"
-"真å½å€¤ã® yes no on off 以外ã«ã€ 無指定時挙動ã«ç›¸å½“ã™ã‚‹ auto\n"
-"を指定ã§ãã¾ã™ã€‚\n"
msgid "when to paginate (boolean, always, auto, or never)"
-msgstr "ページャーã®è¦å¦ (真å½å€¤ã€ always auto ãªã„ã— never)"
+msgstr ""
msgid "command to send changesets as (a series of) patch emails"
msgstr "é›»å­ãƒ¡ãƒ¼ãƒ«ã«ã‚ˆã‚‹å¤‰æ›´å†…容パッãƒé€ä»˜ã®ã‚³ãƒžãƒ³ãƒ‰"
@@ -7413,11 +5121,14 @@ msgstr ""
"互æ›ã®ãƒ¡ãƒ¼ãƒ«é€ä¿¡ãƒ—ログラムを指定ã™ã‚‹ã“ã¨ã‚‚ã§ãã‚Œã°ã€ [smtp] セクションã«\n"
"å¿…è¦ãªæƒ…報を記述ã™ã‚‹ã“ã¨ã§ã€ 外部プログラムã®åŠ©ã‘を借りãšã« Mercurial ã‹ã‚‰\n"
"直接パッãƒçˆ†å¼¾ã‚’é€ä¿¡ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚ ã“れらã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã«é–¢ã™ã‚‹è©³ç´°ã¯\n"
-"設定ファイルã«é–¢ã™ã‚‹ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ (hgrc(5)) ã‚’å‚ç…§ã—ã¦ãã ã•ã„。\n"
-"(※ 訳注: :hg:`help config` ã§ã‚‚å‚ç…§å¯èƒ½)\n"
+"設定ファイルã«é–¢ã™ã‚‹ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ(hgrc(5))ã‚’å‚ç…§ã—ã¦ãã ã•ã„。\n"
+
+#, python-format
+msgid "%s Please enter a valid value"
+msgstr "%s é©åˆ‡ãªå€¤ã‚’入力ã—ã¦ãã ã•ã„"
-msgid "send patches as inline message text (default)"
-msgstr "インラインメッセージã¨ã—ã¦ãƒ‘ッãƒã‚’é€ä¿¡ (デフォルト)"
+msgid "Please enter a valid value.\n"
+msgstr "é©åˆ‡ãªå€¤ã‚’入力ã—ã¦ãã ã•ã„。\n"
msgid "send patches as attachments"
msgstr "添付ファイルã¨ã—ã¦ãƒ‘ッãƒã‚’é€ä¿¡"
@@ -7483,10 +5194,10 @@ msgid "a revision to send"
msgstr "é€ä¿¡ã™ã‚‹ãƒªãƒ“ジョン"
msgid "run even when remote repository is unrelated (with -b/--bundle)"
-msgstr "連æºå…ˆãŒç„¡é–¢ä¿‚ãªãƒªãƒã‚¸ãƒˆãƒªã§ã‚‚é€ä¿¡ (-b/--bundle 指定時)"
+msgstr "連æºå…ˆãŒç„¡é–¢ä¿‚ãªãƒªãƒã‚¸ãƒˆãƒªã§ã‚‚é€ä¿¡(-b/--bundle 指定時)"
msgid "a base changeset to specify instead of a destination (with -b/--bundle)"
-msgstr "連æºå…ˆæŒ‡å®šã®ä»£ã‚ã‚Šã¨ãªã‚‹åŸºåº•ãƒªãƒ“ジョン (-b/--bundle 指定時)"
+msgstr "連æºå…ˆæŒ‡å®šã®ä»£ã‚ã‚Šã¨ãªã‚‹åŸºåº•ãƒªãƒ“ジョン(-b/--bundle 指定時)"
msgid "send an introduction email for a single patch"
msgstr "説明文を独立ã—ãŸãƒ¡ãƒ¼ãƒ«ã§é€ä¿¡"
@@ -7540,16 +5251,11 @@ msgid ""
" By default the patch is included as text in the email body for\n"
" easy reviewing. Using the -a/--attach option will instead create\n"
" an attachment for the patch. With -i/--inline an inline attachment\n"
-" will be created. You can include a patch both as text in the email\n"
-" body and as a regular or an inline attachment by combining the\n"
-" -a/--attach or -i/--inline with the --body option."
+" will be created."
msgstr ""
-" 特ã«æŒ‡å®šã®ç„¡ã„å ´åˆã€ メール本文中ã®é€šå¸¸ãƒ†ã‚­ã‚¹ãƒˆã¨ã—ã¦ã€\n"
-" パッãƒãŒåŸ‹ã‚è¾¼ã¾ã‚Œã¾ã™ã€‚ -a/--attach ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã¯ã€\n"
-" パッãƒã¯æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«åŒ–ã•ã‚Œã¾ã™ã€‚ -i/--inline ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã¯ã€\n"
-" インライン添付ファイルã¨ãªã‚Šã¾ã™ã€‚ -a/--attach ãªã„ã— -i/--inline ã¨\n"
-" --body を組ã¿åˆã‚ã›ã‚‹ã“ã¨ã§ã€ パッãƒã®æ ¼ç´å…ˆã‚’〠メール本文やã€\n"
-" インラインãªã„ã—通常ã®æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã€ é¸æŠžã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
+" 特ã«æŒ‡å®šã®ç„¡ã„å ´åˆã€ パッãƒã¯ãƒ¡ãƒ¼ãƒ«æœ¬æ–‡ä¸­ã«é€šå¸¸ãƒ†ã‚­ã‚¹ãƒˆã¨ã—ã¦åŸ‹ã‚è¾¼ã¾\n"
+" ã‚Œã¾ã™ã€‚ -a/--attach 指定ã«ã‚ˆã‚Šã€ パッãƒãŒæ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«åŒ–ã•ã‚Œã¾ã™ã€‚\n"
+" -i/--inline 指定ã«ã‚ˆã‚Šã€ インライン添付ファイルã¨ãªã‚Šã¾ã™ã€‚"
msgid ""
" With -o/--outgoing, emails will be generated for patches not found\n"
@@ -7594,7 +5300,7 @@ msgstr ""
" é€ä¿¡ã•ã‚Œã‚‹ãƒ¡ãƒ¼ãƒ«ã®å†…容ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚\n"
" PAGER 環境変数ãŒè¨­å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã€ パッãƒçˆ†å¼¾ã‚’構æˆã™ã‚‹\n"
" メールã”ã¨ã«ã€ 環境変数ã«è¨­å®šã•ã‚ŒãŸãƒ—ログラムãŒèµ·å‹•ã•ã‚Œã¾ã™ã®ã§ã€\n"
-" 内容を確èªã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
+" 内容を確èªã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚"
msgid ""
" In case email sending fails, you will find a backup of your series\n"
@@ -7658,10 +5364,14 @@ msgid ""
" "
msgstr ""
" 本コマンドを使用ã™ã‚‹å‰ã«ã€ 設定ファイルã«é›»å­ãƒ¡ãƒ¼ãƒ«é–¢é€£è¨­å®šã‚’記述ã™ã‚‹\n"
-" å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ 設定ファイルã«é–¢ã™ã‚‹ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ (hgrc(5))\n"
-" ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 (※ 訳注: :hg:`help config` ã§ã‚‚å‚ç…§å¯èƒ½)\n"
+" å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ 設定ファイルã«é–¢ã™ã‚‹ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ(hgrc(5))ã‚’å‚ç…§ã—ã¦\n"
+" ãã ã•ã„。\n"
" "
+#, python-format
+msgid "comparing with %s\n"
+msgstr "%s ã¨æ¯”較中\n"
+
msgid "no changes found\n"
msgstr "差分ã¯ã‚ã‚Šã¾ã›ã‚“\n"
@@ -7685,12 +5395,9 @@ msgstr ""
"一連ã®ãƒ‘ッãƒã®ãŸã‚ã®èª¬æ˜Žæ–‡ã‚’記述ã—ã¦ãã ã•ã„。"
#, python-format
-msgid "this patch series consists of %d patches."
+msgid "This patch series consists of %d patches."
msgstr "一連ã®ãƒ‘ッãƒã¯ %d 個ã®ãƒ‘ッãƒã‹ã‚‰æ§‹æˆã•ã‚Œã¦ã„ã¾ã™ã€‚"
-msgid "no recipient addresses provided"
-msgstr "宛先アドレスãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
-
msgid ""
"\n"
"Final summary:"
@@ -7710,20 +5417,23 @@ msgstr "&Yes"
msgid "patchbomb canceled"
msgstr "メールã¯é€ä¿¡ã—ã¾ã›ã‚“"
-msgid "displaying "
+msgid "Displaying "
msgstr "表示中 "
-msgid "sending "
+msgid "Writing "
+msgstr "書ã出ã—中 "
+
+msgid "writing"
+msgstr "書ã出ã—中"
+
+msgid "Sending "
msgstr "é€ä¿¡ä¸­ "
msgid "sending"
msgstr "é€ä¿¡ä¸­"
-msgid "writing"
-msgstr "書ã出ã—中"
-
msgid "show progress bars for some actions"
-msgstr "処ç†ã«ãŠã‘る進æ—率ã®è¡¨ç¤º"
+msgstr "処ç†ã«ãŠã‘る進æ—状æ³è¡¨ç¤º"
msgid ""
"This extension uses the progress information logged by hg commands\n"
@@ -7731,20 +5441,13 @@ msgid ""
"bars only offer indeterminate information, while others have a definite\n"
"end point."
msgstr ""
-"本エクステンションã¯ã€ hg コマンドã‹ã‚‰ã®é€²æ—情報を元ã«ã€\n"
-"å¯èƒ½ãªé™ã‚Šæœ‰ç›Šãªé€²æ—率を表示ã—ã¾ã™ã€‚ 多ãã®å‡¦ç†ã§ã®é€²æ—率表示ãŒã€\n"
-"明確ãªå‡¦ç†ç·é‡ã«åŸºã¥ã„ã¦ã„る一方ã§ã€ å¹¾ã¤ã‹ã®å‡¦ç†ã«ãŠã„ã¦ã¯ã€\n"
-"ä¸ç¢ºå®šãªæƒ…å ±ã«åŸºã¥ã„ãŸé€²æ—率を表示ã™ã‚‹å ´åˆã‚‚ã‚ã‚Šã¾ã™ã€‚"
msgid "The following settings are available::"
-msgstr "指定å¯èƒ½ãªè¨­å®šã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™::"
+msgstr ""
msgid ""
" [progress]\n"
" delay = 3 # number of seconds (float) before showing the progress bar\n"
-" changedelay = 1 # changedelay: minimum delay before showing a new topic.\n"
-" # If set to less than 3 * refresh, that value will\n"
-" # be used instead.\n"
" refresh = 0.1 # time in seconds between refreshes 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"
@@ -7754,19 +5457,6 @@ msgid ""
" assume-tty = False # if true, ALWAYS show a progress bar, unless\n"
" # disable is given"
msgstr ""
-" [progress]\n"
-" delay = 3 # 進æ—率表示ã¾ã§ã®çŒ¶äºˆç§’æ•° (浮動少数指定)\n"
-" changedelay = 1 # æ–°è¦ãƒˆãƒ”ック表示ã¾ã§ã®æœ€å°çŒ¶äºˆæ™‚間。\n"
-" # 3 * refresh よりもå°ã•ã„値ã®å ´åˆã¯ã€\n"
-" # ã“ã®è¨­å®šã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚\n"
-" refresh = 0.1 # 進æ—率表示更新間隔ã®ç§’æ•°\n"
-" format = topic bar number estimate # format of the progress bar\n"
-" width = <none> # 進æ—率表示ã®æœ€å¤§ã‚«ãƒ©ãƒ æ•°\n"
-" # (width 設定ã¨ç”»é¢å¹…ã®å°ã•ã„æ–¹ãŒæœ‰åŠ¹ã«ãªã‚Šã¾ã™)\n"
-" clear-complete = True # 実行完了時ã®é€²æ—率表示クリアã®æœ‰ç„¡\n"
-" disable = False # 真値ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€é€²æ—率ã¯è¡¨ç¤ºã•ã‚Œã¾ã›ã‚“\n"
-" assume-tty = False # 真値ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€ disable ãŒæŒ‡å®šã•ã‚Œãªã„é™ã‚Š\n"
-" # 常ã«é€²æ—率ãŒè¡¨ç¤ºã•ã‚Œã¾ã™"
msgid ""
"Valid entries for the format field are topic, bar, number, unit,\n"
@@ -7775,43 +5465,40 @@ msgid ""
"would take the last num characters, or ``+<num>`` for the first num\n"
"characters.\n"
msgstr ""
-"format 指定ã§æœ‰åŠ¹ãªè¦ç´ ã¯ topic bar number unit estimate speed item\n"
-"ã§ã™ã€‚ デフォルト㮠item ã¯æœ«å°¾ 20 文字ã§ã™ãŒã€ ``-<num>`` (末尾 num\n"
-"文字) ã‚„ ``+<num>`` (冒頭 num 文字) 指定ã®è¿½åŠ ã§å¤‰æ›´å¯èƒ½ã§ã™ã€‚\n"
#. i18n: format XX seconds as "XXs"
#, python-format
msgid "%02ds"
-msgstr "%02d秒"
+msgstr ""
#. i18n: format X minutes and YY seconds as "XmYYs"
#, python-format
msgid "%dm%02ds"
-msgstr "%d分%02d秒"
+msgstr ""
#. i18n: format X hours and YY minutes as "XhYYm"
#, python-format
msgid "%dh%02dm"
-msgstr "%d時間%02d分"
+msgstr ""
#. i18n: format X days and YY hours as "XdYYh"
#, python-format
msgid "%dd%02dh"
-msgstr "%d日%02d時間"
+msgstr ""
#. i18n: format X weeks and YY days as "XwYYd"
#, python-format
msgid "%dw%02dd"
-msgstr "%d週%02d日"
+msgstr ""
#. i18n: format X years and YY weeks as "XyYYw"
#, python-format
msgid "%dy%02dw"
-msgstr "%d年%02d週"
+msgstr ""
#, python-format
msgid "%d %s/sec"
-msgstr "%d %s/秒"
+msgstr ""
msgid "command to delete untracked files from the working directory"
msgstr "作業領域中ã®æœªç™»éŒ²ãƒ•ã‚¡ã‚¤ãƒ«ã‚’削除ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰"
@@ -7832,46 +5519,35 @@ msgid "hg purge [OPTION]... [DIR]..."
msgstr "hg purge [OPTION]... [DIR]...\""
msgid "removes files not tracked by Mercurial"
-msgstr "Mercurial ã®ç®¡ç†å¯¾è±¡å¤–ファイルã®å‰Šé™¤"
+msgstr "Mercurial ã«ã‚ˆã‚‹ç®¡ç†å¯¾è±¡ã§ã¯ãªã„ファイルã®å‰Šé™¤"
msgid ""
" Delete files not known to Mercurial. This is useful to test local\n"
" and uncommitted changes in an otherwise-clean source tree."
msgstr ""
-" 本コマンド㯠Mercurial ã®ç®¡ç†å¯¾è±¡å¤–ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’削除ã—ã¾ã™ã€‚\n"
-" 記録済ã¿ã®ãƒªãƒ“ジョンや〠未コミット変更をテストã™ã‚‹å ´åˆãªã©ã€\n"
-" 作業領域を綺麗ã«ã—ãŸã„å ´åˆã«æœ‰ç”¨ã§ã™ã€‚"
msgid " This means that purge will delete:"
-msgstr " 本コマンドã¯ã€ 以下ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’削除ã—ã¾ã™:"
+msgstr ""
msgid ""
" - Unknown files: files marked with \"?\" by :hg:`status`\n"
" - Empty directories: in fact Mercurial ignores directories unless\n"
" they contain files under source control management"
msgstr ""
-" - 未知ã®ãƒ•ã‚¡ã‚¤ãƒ«: :hg:`status` ã«ãŠã‘ã‚‹ \"?\" 扱ã„ã®ãƒ•ã‚¡ã‚¤ãƒ«\n"
-" - 空ディレクトリ: 実際ã«ã¯ã€ ファイル (登録除外対象å«ã‚€)\n"
-" を一切æŒãŸãªã„ディレクトリã¯ã€ 削除ã•ã‚Œã¾ã›ã‚“"
msgid " But it will leave untouched:"
-msgstr " ãã®ä¸€æ–¹ã§ã€ 以下ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ä¿æŒã•ã‚Œã¾ã™:"
+msgstr ""
msgid ""
" - Modified and unmodified tracked files\n"
" - Ignored files (unless --all is specified)\n"
" - New files added to the repository (with :hg:`add`)"
msgstr ""
-" - 改変ã®æœ‰ç„¡ã«é–¢ã‚らãšã€ç®¡ç†ä¸‹ã«ã‚るファイル\n"
-" - 無視対象ファイル (--all 指定ã®ç„¡ã„å ´åˆ)\n"
-" - æ–°è¦ç™»éŒ²ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ« (:hg:`add` 実施対象)"
msgid ""
" If directories are given on the command line, only files in these\n"
" directories are considered."
msgstr ""
-" 引数ã¨ã—ã¦ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 指定ディレクトリé…下ã®ã¿ãŒã€\n"
-" 処ç†å¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚"
msgid ""
" Be careful with purge, as you could irreversibly delete some files\n"
@@ -7880,11 +5556,6 @@ msgid ""
" option.\n"
" "
msgstr ""
-" 本コマンドã®å®Ÿæ–½ã«ã‚ˆã‚Šã€ 登録ã—忘れãŸãƒ•ã‚¡ã‚¤ãƒ«ãŒå‰Šé™¤ã•ã‚ŒãŸå ´åˆã€\n"
-" 当該ファイルã¯å¾©æ—§ã§ãã¾ã›ã‚“ã®ã§ã€ å分注æ„ã—ã¦ãã ã•ã„。\n"
-" 削除対象ファイルã®åå‰ã‚’確èªã—ãŸã„ã ã‘ã®å ´åˆã¯ã€\n"
-" --print を指定ã—ã¦ãã ã•ã„。\n"
-" "
#, python-format
msgid "%s cannot be removed"
@@ -7895,22 +5566,22 @@ msgid "warning: %s\n"
msgstr "警告: %s\n"
#, python-format
-msgid "removing file %s\n"
-msgstr "ファイル %s ã®å‰Šé™¤ä¸­\n"
+msgid "Removing file %s\n"
+msgstr "ファイル %s を削除ã—ã¦ã„ã¾ã™\n"
#, python-format
-msgid "removing directory %s\n"
-msgstr "ディレクトリ %s ã®å‰Šé™¤ä¸­\n"
+msgid "Removing directory %s\n"
+msgstr "ディレクトリ %s を削除ã—ã¦ã„ã¾ã™\n"
msgid "command to move sets of revisions to a different ancestor"
-msgstr "履歴上ã®ç•°ãªã‚‹ä½ç½®ã¸ã®ä¸€é€£ã®ãƒªãƒ“ジョンã®ç§»å‹•"
+msgstr "一連ã®ãƒªãƒ“ジョンを異ãªã‚‹å±¥æ­´ãƒ„リー上ã®ä½ç½®ã«ç§»å‹•ã•ã›ã‚‹ã‚³ãƒžãƒ³ãƒ‰"
msgid ""
"This extension lets you rebase changesets in an existing Mercurial\n"
"repository."
msgstr ""
-"本エクステンションã¯ã€ 既存㮠Mercurial リãƒã‚¸ãƒˆãƒªä¸Šã§ã®ã€\n"
-"リビジョン群ã®ç§»å‹•ã‚’実ç¾ã—ã¾ã™"
+"本エクステンションã¯ã€ 既存㮠Mercurial リãƒã‚¸ãƒˆãƒªã«ãŠã‘るリビジョンã®\n"
+"リベースをå¯èƒ½ã«ã—ã¾ã™ã€‚"
msgid ""
"For more information:\n"
@@ -7920,30 +5591,24 @@ msgstr ""
"http://mercurial.selenic.com/wiki/RebaseExtension\n"
msgid "rebase from the specified changeset"
-msgstr "指定リビジョンã‹ã‚‰ã®ç§»å‹•"
+msgstr "指定リビジョンã‹ã‚‰ç§»å‹•"
msgid ""
"rebase from the base of the specified changeset (up to greatest common "
"ancestor of base and dest)"
-msgstr "指定リビジョンã®ç¥–å…ˆã‹ã‚‰ç§»å‹• (移動先ã¨ã®å…±é€šç¥–å…ˆã¾ã§é¡ã‚Šã¾ã™)"
-
-msgid "rebase these revisions"
-msgstr "指定リビジョン群ã®ç§»å‹•"
+msgstr "指定リビジョンã®å…ˆç¥–ã‹ã‚‰ç§»å‹• (移動先ã¨ã®å…±é€šç¥–å…ˆã¾ã§é¡ã‚Šã¾ã™)"
msgid "rebase onto the specified changeset"
-msgstr "移動先リビジョン"
+msgstr "複製先リビジョン"
msgid "collapse the rebased changesets"
-msgstr "移動後ã«ç§»å‹•ãƒªãƒ“ジョンをå˜ä¸€åŒ–"
+msgstr "リベース後ã«ç§»å‹•ãƒªãƒ“ジョンをå˜ä¸€åŒ–"
msgid "use text as collapse commit message"
-msgstr "指定テキストをè¦ç´„コミットログã¨ã—ã¦ä½¿ç”¨"
-
-msgid "invoke editor on commit messages"
-msgstr "コミットログ入力ã«ã‚¨ãƒ‡ã‚£ã‚¿ã‚’èµ·å‹•"
+msgstr "指定テキストをè¦ç´„コミットメッセージã¨ã—ã¦ä½¿ç”¨"
msgid "read collapse commit message from file"
-msgstr "è¦ç´„コミットログをファイルã‹ã‚‰èª­ã¿è¾¼ã¿"
+msgstr "è¦ç´„コミットメッセージをファイルã‹ã‚‰èª­ã¿è¾¼ã¿"
msgid "keep original changesets"
msgstr "元リビジョンを維æŒ"
@@ -7951,17 +5616,17 @@ msgstr "元リビジョンを維æŒ"
msgid "keep original branch names"
msgstr "元ブランãƒåを維æŒ"
-msgid "(DEPRECATED)"
-msgstr "(éžæŽ¨å¥¨)"
+msgid "force detaching of source from its original branch"
+msgstr "リベース元を元ブランãƒã‹ã‚‰å¼·åˆ¶çš„ã«ç§»å‹•"
msgid "specify merge tool"
msgstr "マージツールã®æŒ‡å®š"
msgid "continue an interrupted rebase"
-msgstr "中断ã•ã‚ŒãŸç§»å‹•ã‚’å†é–‹"
+msgstr "中断ã•ã‚ŒãŸãƒªãƒ™ãƒ¼ã‚¹ã‚’å†é–‹"
msgid "abort an interrupted rebase"
-msgstr "中断ã•ã‚ŒãŸç§»å‹•ã‚’中断"
+msgstr "中断ã•ã‚ŒãŸãƒªãƒ™ãƒ¼ã‚¹ã‚’中止"
msgid ""
"hg rebase [-s REV | -b REV] [-d REV] [options]\n"
@@ -7979,10 +5644,10 @@ msgid ""
" useful for linearizing *local* changes relative to a master\n"
" development tree."
msgstr ""
-" 本コマンドã¯ã€ å復的ãªãƒžãƒ¼ã‚¸ã‚’è¡Œãªã†ã“ã¨ã§ã€ ã‚る履歴ä½ç½® (移動元)\n"
-" ã‹ã‚‰åˆ¥ãªä½ç½® (移動先) ã¸ã¨ãƒªãƒ“ジョン群を移æ¤ã—ã¾ã™ã€‚ ã“ã®æ©Ÿèƒ½ã¯ã€\n"
-" 手元ã®ãƒªãƒã‚¸ãƒˆãƒªã§ã®æˆæžœã‚’〠開発用ã®å…±æœ‰ãƒªãƒã‚¸ãƒˆãƒªã«å映ã™ã‚‹éš›ã«ã€\n"
-" æžåˆ†ã‹ã‚Œã®ç„¡ã„状態ã«ã—ãŸã„å ´åˆãªã©ã§æœ‰ç”¨ã§ã™ã€‚"
+" ã‚る履歴ä½ç½®(移動元)ã‹ã‚‰åˆ¥ãªä½ç½®(移動先)ã¸ã¨ãƒªãƒ“ジョンを移動ã™ã‚‹ãŸã‚\n"
+" 本コマンドã¯å復的ãªãƒžãƒ¼ã‚¸ã‚’è¡Œãªã„ã¾ã™ã€‚ ã“ã®æ©Ÿèƒ½ã¯ã€ 手元ã®ãƒªãƒã‚¸ãƒˆãƒª\n"
+" ã«ãŠã‘ã‚‹æˆæžœã‚’〠開発用ã®ãƒžã‚¹ã‚¿ãƒ¼ãƒªãƒã‚¸ãƒˆãƒªã«å映ã™ã‚‹éš›ã«ã€ æžåˆ†ã‹ã‚Œã®\n"
+" ç„¡ã„状態ã«ã—ãŸã„å ´åˆãªã©ã§æœ‰ç”¨ã§ã™ã€‚"
msgid ""
" You should not rebase changesets that have already been shared\n"
@@ -7991,10 +5656,9 @@ msgid ""
" pulling in your rebased changesets."
msgstr ""
" ä»–ã®åˆ©ç”¨è€…ã«å…¬é–‹æ¸ˆã¿ã®ãƒªãƒ“ジョンã¯ã€ 移動ã™ã¹ãã§ã¯ã‚ã‚Šã¾ã›ã‚“。\n"
-" 公開済ã¿ãƒªãƒ“ジョンã®ç§»å‹•ã¯ã€ çµæžœçš„ã«ã€ ä»–ã®åˆ©ç”¨è€…ã«å¯¾ã—ã¦ã€\n"
-" åŒæ§˜ã®ãƒªãƒ“ジョン移動æ“作を強制ã—ã¦ã—ã¾ã£ãŸã‚Šã€ 公開済ã¿ã¨ç§»å‹•å¾Œã®ã€\n"
-" 両方ã®ãƒªãƒ“ジョンã®å–ã‚Šè¾¼ã¿ã«ã‚ˆã‚Šã€ リビジョンãŒé‡è¤‡ã—ãŸã‚Šã¨ã„ã£ãŸã€\n"
-" 悪影響ãŒã‚ã‚Šã¾ã™ã€‚"
+" 公開済ã¿ãƒªãƒ“ジョンã®ç§»å‹•ã¯ã€ ä»–ã®åˆ©ç”¨è€…ã«åŒæ§˜ã®ç§»å‹•æ“作を強制ã™ã‚‹\n"
+" ã“ã¨ã«ãªã£ãŸã‚Šã€ ã‚ãªãŸãŒç§»å‹•ã—ãŸå¾Œã®ãƒªãƒ“ジョンをå–り込むã“ã¨ã§ã€\n"
+" åŒä¸€ãƒªãƒ“ジョンãŒé‡è¤‡ã—ãŸçŠ¶æ…‹ã«ãªã£ã¦ã—ã¾ã£ãŸã‚Šã—ã¾ã™ã€‚"
msgid ""
" If you don't specify a destination changeset (``-d/--dest``),\n"
@@ -8002,10 +5666,9 @@ msgid ""
" destination. (The destination changeset is not modified by\n"
" rebasing, but new changesets are added as its descendants.)"
msgstr ""
-" 移動先リビジョン (``-d/--dest``) ãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ç§»å‹•å…ˆã¨ã—ã¦ã€\n"
-" ç¾è¡Œã®åå‰ä»˜ãブランãƒã®ã€ 最新ヘッドãŒæŽ¡ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" (移動先リビジョン自身ã¯æ”¹å¤‰ã•ã‚Œã¾ã›ã‚“ãŒã€ 移動先ã®å­å­«ã¨ã—ã¦ã€\n"
-" æ–°è¦ãƒªãƒ“ジョンãŒè¿½åŠ ã•ã‚Œã¾ã™)"
+" 移動先リビジョン (``-d/--dest``) ãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ ç¾è¡Œãƒ–ランãƒã®\n"
+" 最新ヘッドを移動先ã¨ã¿ãªã—ã¾ã™ã€‚ (移動先リビジョンãŒæ”¹å¤‰ã•ã‚Œã‚‹ã“ã¨ã¯\n"
+" ã‚ã‚Šã¾ã›ã‚“ãŒã€ 移動先ã®å­å­«ã¨ã—ã¦æ–°è¦ãƒªãƒ“ジョンãŒè¿½åŠ ã•ã‚Œã¾ã™)"
msgid ""
" You can specify which changesets to rebase in two ways: as a\n"
@@ -8020,16 +5683,17 @@ msgid ""
" the whole branch. If you specify neither ``-s`` nor ``-b``, rebase\n"
" uses the parent of the working directory as the base."
msgstr ""
-" 移動対象リビジョンã®æŒ‡å®šã«ã¯ã€ \"source\" 指定㨠\"base\" 指定ã®ã€\n"
-" 2ã¤ã®æ–¹æ³•ãŒä½¿ãˆã¾ã™ã€‚ ã„ãšã‚Œã‚‚履歴ツリーã‹ã‚‰ç§»å‹•å¯¾è±¡ã‚’抽出ã™ã‚‹ãŸã‚ã®ã€\n"
-" 簡易化ã•ã‚ŒãŸæ–¹æ³•ã§ã™ã€‚ \"source\" (``-s/--source``) を指定ã—ãŸå ´åˆã€\n"
-" 指定リビジョン〠ãŠã‚ˆã³ãã®å­å­«å…¨ã¦ã‚’移動ã—ã¾ã™ã€‚ \"base\"\n"
-" (``-b/--base``) を指定ã—ãŸå ´åˆã€ 指定リビジョンã‹ã‚‰é¡ã‚Šã€\n"
-" 移動先ã¨ã®å…±é€šç¥–å…ˆã¾ã§ã®ç¯„囲を〠移動対象ã¨ã—ã¦é¸æŠžã—ã¾ã™ã€‚\n"
-" ``-s`` 指定よりも ``-b`` 指定ã¯ç²¾å¯†ã•ã§åŠ£ã‚Šã¾ã™ãŒã€ ãã®åˆ†ä¾¿åˆ©ã§ã™ã€‚\n"
-" 移動元ã®ãƒ–ランãƒã«ãŠã„ã¦ã€ ä»»æ„ã®ãƒªãƒ“ジョンをé¸æŠžã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€\n"
-" ブランãƒå…¨ä½“ãŒé¸æŠžã•ã‚Œã¾ã™ã€‚ ``-s`` ã‚‚ ``-b`` も指定ã—ãªã„å ´åˆã€\n"
-" 作業領域ã®è¦ªãƒªãƒ“ジョンを \"base\" ã¨ã¿ãªã—ã¾ã™ã€‚"
+" 移動対象リビジョンã¯ã€ \"source\" 指定㨠\"base\" 指定ã®2ã¤ã®æ–¹æ³•ã§\n"
+" 指定å¯èƒ½ã§ã™ã€‚ ã©ã¡ã‚‰ã‚‚履歴ツリー上ã‹ã‚‰ã€Œç§»å‹•å…ƒãƒ–ランãƒã€ãƒªãƒ“ジョンを\n"
+" 抽出ã™ã‚‹ãŸã‚ã®ç°¡ç•¥è¡¨ç¾ã§ã™ã€‚ \"source\" (``-s/--source``) を指定ã—ãŸ\n"
+" å ´åˆã€ 指定リビジョンãŠã‚ˆã³ãã®å­å­«å…¨ã¦ã‚’移動ã—ã¾ã™ã€‚ \"base\"\n"
+" (``-b/--base``) を指定ã—ãŸå ´åˆã€ 移動先リビジョンã¨å…±é€šã¨ãªã‚‹å…ˆç¥–ã‚’\n"
+" å«ã¾ãªã„範囲ã§æŒ‡å®šãƒªãƒ“ジョンã®å…ˆç¥–ã¸ã¨é¡ã‚Šã€ 移動対象をé¸æŠžã—ã¾ã™ã€‚\n"
+" ãã®ãŸã‚〠``-s`` ã§ã®æŒ‡å®šã¨æ¯”較ã—ã¦ã€ ``-b`` ã§ã®æŒ‡å®šã¯ç²¾å¯†ã•ã§ã¯\n"
+" 劣りã¾ã™ãŒã€ ãã®åˆ†ä¾¿åˆ©ã§ã™ã€‚ 移動元ã®ãƒ–ランãƒã§ä»»æ„ã®ãƒªãƒ“ジョンを\n"
+" é¸æŠžã™ã‚‹ã“ã¨ã§ã€ ブランãƒå…¨ä½“ã‹ã‚‰å¯¾è±¡ãŒè‡ªå‹•çš„ã«é¸æŠžã•ã‚Œã¾ã™ã€‚\n"
+" ``-s`` ã‚‚ ``-b`` も指定ã—ãªã„å ´åˆã€ 作業領域ã®è¦ªãƒªãƒ“ジョンを\n"
+" \"base\" ã¨ã¿ãªã—ã¾ã™ã€‚"
msgid ""
" By default, rebase recreates the changesets in the source branch\n"
@@ -8052,20 +5716,13 @@ msgid ""
" destination (or ``update`` to the other head, if it's the head of\n"
" the intended source branch)."
msgstr ""
-" ç¾è¡Œã®åå‰ä»˜ãブランãƒãŒ2ã¤ã®ãƒ˜ãƒƒãƒ‰ã‚’æŒã¡ã€ 且ã¤æœ€æ–°ã®ãƒ˜ãƒƒãƒ‰å´ãŒã€\n"
-" 作業領域ã®è¦ªã§ã‚ã‚‹å ´åˆã€ リビジョン指定無ã—ã§ã‚‚処ç†ã‚’行ㆠ``merge``\n"
-" ã¨ç•°ãªã‚Šã€ 本コマンドã¯ä½•ã‚‚実施ã—ã¾ã›ã‚“。 ã“ã‚Œã¯ã€ 移動先 (※ 訳注:\n"
-" ç¾è¡Œã®åå‰ä»˜ãブランãƒã®ã€ 最新ヘッド) ã¨ç§»å‹•å…ƒ (※ 訳注: 作業領域ã®ã€\n"
-" 親ã«å¯¾ã™ã‚‹ \"base\" 指定) リビジョンã®é¸æŠžä»•æ§˜ã®ãŸã‚ã§ã™ã€‚\n"
-" å¿…è¦ã«å¿œã˜ã¦ã€ 移動元ï¼å…ˆã‚’明示ã—ã¦ãã ã•ã„ (ã‚‚ã†ä¸€æ–¹ã®ãƒ˜ãƒƒãƒ‰ãŒã€\n"
-" 移動先ã§ã‚ã‚‹ãªã‚‰ã°ã€ ãã¡ã‚‰ã« ``update`` ã—ã¦ãã ã•ã„)。"
msgid ""
" If a rebase is interrupted to manually resolve a merge, it can be\n"
" continued with --continue/-c or aborted with --abort/-a."
msgstr ""
-" 手動マージã§ã®è¡çªè§£æ¶ˆã®å¿…è¦æ€§ã‹ã‚‰ã€ 移動処ç†ãŒä¸­æ–­ã•ã‚ŒãŸå ´åˆã¯ã€\n"
-" --continue/-c ã§ã®å†é–‹ã‚„〠--abort/-a ã§ã®ç§»å‹•å‰çŠ¶æ…‹ã¸ã®å¾©æ—§ãŒå¯èƒ½ã§ã™ã€‚"
+" 手動マージã«ã‚ˆã‚‹è¡çªè§£æ¶ˆã®å¿…è¦ã‹ã‚‰ä¸­æ–­ã•ã‚ŒãŸå ´åˆã€ --continue/-c ã§\n"
+" 処ç†ã‚’継続ã—ãŸã‚Šã€ --abort/-a ã§å‡¦ç†ã‚’終了ã•ã›ãŸã‚Šã§ãã¾ã™ã€‚"
msgid ""
" Returns 0 on success, 1 if nothing to rebase.\n"
@@ -8075,7 +5732,7 @@ msgstr ""
" "
msgid "message can only be specified with collapse"
-msgstr "--collapse 指定ã¨ã®ä½µç”¨æ™‚ã®ã¿ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸æŒ‡å®šãŒå¯èƒ½ã§ã™"
+msgstr ""
msgid "cannot use both abort and continue"
msgstr "--abort 㨠--continue ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
@@ -8083,61 +5740,51 @@ msgstr "--abort 㨠--continue ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
msgid "cannot use collapse with continue or abort"
msgstr "--collapse ã¨ã€ --abort ã‚„ --continue ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
+msgid "cannot use detach with continue or abort"
+msgstr "--detach ã¨ã€ --abort ã‚„ --continue ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
+
msgid "abort and continue do not allow specifying revisions"
-msgstr "--abort ã‚„ --continue ã¨ã€ リビジョン指定ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
+msgstr "--abort ã‚„ --continue ã¨ã€ りビジョン指定ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
msgid "tool option will be ignored\n"
-msgstr "--tool 指定ã¯ç„¡è¦–ã•ã‚Œã¾ã™\n"
-
-msgid "cannot specify both a source and a base"
-msgstr "--soruce 㨠--base ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
+msgstr ""
msgid "cannot specify both a revision and a base"
-msgstr "--rev 㨠--base ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
-
-msgid "cannot specify both a revision and a source"
-msgstr "--rev 㨠--soruce ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
-
-msgid "can't remove original changesets with unrebased descendants"
-msgstr "移動対象外ã®å­å­«ã‚’æŒã¤ãŸã‚ã€ç§»å‹•å…ƒãƒªãƒ“ジョンãŒå‰Šé™¤ã§ãã¾ã›ã‚“"
-
-msgid "use --keep to keep original changesets"
-msgstr "元リビジョンを維æŒã™ã‚‹å ´åˆã¯ --keep を使用ã—ã¦ãã ã•ã„"
+msgstr "--soruce 㨠--base ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
-#, python-format
-msgid "can't rebase immutable changeset %s"
-msgstr "改変ä¸èƒ½ãªãƒªãƒ“ジョン %s ã¯ç§»å‹•ã§ãã¾ã›ã‚“"
+msgid "detach requires a revision to be specified"
+msgstr "--detach ã«ã¯ãƒªãƒ“ジョン指定ãŒå¿…è¦ã§ã™"
-msgid "see hg help phases for details"
-msgstr "詳細ã¯ã€€\"hg help phases\" ã‚’å‚ç…§ã—ã¦ãã ã•ã„"
+msgid "cannot specify a base with detach"
+msgstr "--base 㨠--detach ã¯åŒæ™‚ã«ã¯æŒ‡å®šå‡ºæ¥ã¾ã›ã‚“"
msgid "nothing to rebase\n"
-msgstr "移動ã®å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“\n"
+msgstr "リベースã®å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“\n"
msgid "cannot collapse multiple named branches"
-msgstr "複数ã®åå‰ä»˜ãブランãƒã®å˜ä¸€åŒ–ã¯ã§ãã¾ã›ã‚“"
+msgstr ""
msgid "rebasing"
-msgstr "移動実施中"
+msgstr "リベース実施中"
msgid "changesets"
-msgstr "リビジョン"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ"
msgid "unresolved conflicts (see hg resolve, then hg rebase --continue)"
-msgstr "è¡çªãŒæœªè§£æ¶ˆã§ã™ (\"hg resolve\" 㨠\"hg rebase --continue\" å‚ç…§)"
+msgstr "è¡çªãŒæœªè§£æ¶ˆã§ã™ (:hg:`resolve` 㨠:hg:`rebase --continue` å‚ç…§)"
#, python-format
msgid "no changes, revision %d skipped\n"
msgstr "変更ãŒãªã„ã®ã§ã€ リビジョン %d をスキップ\n"
msgid "rebase merging completed\n"
-msgstr "移動ã®ãƒžãƒ¼ã‚¸å‡¦ç†ãŒå®Œäº†\n"
+msgstr "リベースã®ãƒžãƒ¼ã‚¸å‡¦ç†ãŒå®Œäº†\n"
msgid "warning: new changesets detected on source branch, not stripping\n"
-msgstr "警告: 移動元ã«æ–°è¦ãƒªãƒ“ジョンを検出ã—ãŸã®ã§ã€ 破棄ã—ã¾ã›ã‚“\n"
+msgstr "警告: リベース元ã«æ–°è¦ãƒªãƒ“ジョンを検出ã—ãŸã®ã§ã€ 破棄ã—ã¾ã›ã‚“\n"
msgid "rebase completed\n"
-msgstr "移動完了\n"
+msgstr "リベース完了\n"
#, python-format
msgid "%d revisions have been skipped\n"
@@ -8151,45 +5798,34 @@ msgid "cannot use revision %d as base, result would have 3 parents"
msgstr "親リビジョン㌠3 ã¤ã«ãªã‚‹ã®ã§ã€ リビジョン %d をベースã«ã§ãã¾ã›ã‚“"
msgid "no rebase in progress"
-msgstr "進行中ã®ç§»å‹•çŠ¶æ…‹ã¯ã‚ã‚Šã¾ã›ã‚“"
-
-#, python-format
-msgid "can't abort rebase due to immutable changesets %s"
-msgstr "改変ä¸èƒ½ãƒªãƒ“ジョンãŒã‚ã‚‹ãŸã‚ rebase å‰ã®çŠ¶æ…‹ã«å¾©æ—§ã§ãã¾ã›ã‚“: %s"
+msgstr "進行中ã®ãƒªãƒ™ãƒ¼ã‚¹çŠ¶æ…‹ã¯ã‚ã‚Šã¾ã›ã‚“"
msgid "warning: new changesets detected on target branch, can't abort\n"
-msgstr "警告: æ–°è¦ãƒªãƒ“ジョンãŒå¯¾è±¡ãƒ–ランãƒã«æ¤œå‡ºã•ã‚ŒãŸã®ã§ä¸­æ–­ã§ãã¾ã›ã‚“\n"
+msgstr "警告: æ–°è¦ãƒªãƒ“ジョンãŒå¯¾è±¡ãƒ–ランãƒã«æ¤œå‡ºã•ã‚ŒãŸã®ã§çµ‚了ã§ãã¾ã›ã‚“\n"
msgid "rebase aborted\n"
-msgstr "移動ãŒä¸­æ–­ã•ã‚Œã¾ã—ãŸ\n"
+msgstr "リベースãŒä¸­æ–­ã•ã‚Œã¾ã—ãŸ\n"
msgid "cannot rebase onto an applied mq patch"
-msgstr "MQ パッãƒä¸Šã¸ã®ç§»å‹•ã¯ã§ãã¾ã›ã‚“"
-
-msgid "no matching revisions"
-msgstr "åˆè‡´ã™ã‚‹ãƒªãƒ“ジョンã¯ã‚ã‚Šã¾ã›ã‚“"
-
-msgid "can't rebase multiple roots"
-msgstr "複数リビジョン由æ¥ã®ãƒªãƒ“ジョンã¯ç§»å‹•ã§ãã¾ã›ã‚“"
+msgstr "MQ パッãƒä¸Šã¸ã®ãƒªãƒ™ãƒ¼ã‚¹ã¯ã§ãã¾ã›ã‚“"
msgid "source is ancestor of destination"
-msgstr "移動元ã¯ç§»å‹•å…ˆã®ç¥–å…ˆã§ã™"
+msgstr "移動元ã¯ç§»å‹•å…ˆã®å…ˆç¥–ã§ã™"
-#, python-format
-msgid "updating bookmark %s\n"
-msgstr "ブックマーク %s ã®æ›´æ–°ä¸­\n"
+msgid "source is descendant of destination"
+msgstr "移動元ã¯ç§»å‹•å…ˆã®å­å­«ã§ã™"
msgid "--tool can only be used with --rebase"
-msgstr "--tool 㯠--rebase 指定時ã«ã—ã‹ä½¿ç”¨ã§ãã¾ã›ã‚“"
+msgstr "--tool 㯠--rebase 指定時ã«ã—ã‹ä½¿ç”¨å‡ºæ¥ã¾ã›ã‚“"
msgid "rebase working directory to branch head"
-msgstr "作業領域をブランãƒãƒ˜ãƒƒãƒ‰ã«ç§»å‹•"
+msgstr "作業領域をブランãƒãƒ˜ãƒƒãƒ‰ã«ãƒªãƒ™ãƒ¼ã‚¹"
msgid "specify merge tool for rebase"
-msgstr "移動用ã®ãƒžãƒ¼ã‚¸ãƒ„ールã®æŒ‡å®š"
+msgstr "リベース用ã®ãƒžãƒ¼ã‚¸ãƒ„ールã®æŒ‡å®š"
msgid "commands to interactively select changes for commit/qrefresh"
-msgstr "commit ã‚„ qrefresh ã«ãŠã‘る対話的ãªå¤‰æ›´å–ã‚Šè¾¼ã¿ã®é¸æŠž"
+msgstr "commit ã¾ãŸã¯ qrefresh 実行時ã«å¯¾è©±çš„ãªå¤‰æ›´é¸æŠžã‚’è¡Œã†ã‚³ãƒžãƒ³ãƒ‰"
msgid "ignore white space when comparing lines"
msgstr "差分判定ã®éš›ã«ç©ºç™½æ–‡å­—を無視"
@@ -8208,10 +5844,10 @@ msgstr "ã“ã‚Œã¯ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã§ã™\n"
#, python-format
msgid "%d hunks, %d lines changed\n"
-msgstr "%d 個ã®å·®åˆ†ã€ %d è¡Œã®å¤‰æ›´\n"
+msgstr "%d 個ã®ãƒãƒ³ã‚¯ã€ %d è¡Œã®å¤‰æ›´\n"
-msgid "[Ynesfdaq?]"
-msgstr "[Ynesfdaq?]"
+msgid "[Ynsfdaq?]"
+msgstr "[Ynsfdaq?]"
msgid "&Yes, record this change"
msgstr "&Yes - ã“ã®å¤‰æ›´ã‚’記録ã—ã¾ã™"
@@ -8219,9 +5855,6 @@ msgstr "&Yes - ã“ã®å¤‰æ›´ã‚’記録ã—ã¾ã™"
msgid "&No, skip this change"
msgstr "&No - ã“ã®å¤‰æ›´ã‚’スキップã—ã¾ã™"
-msgid "&Edit the change manually"
-msgstr "&Edit - 変更を手動ã§æ”¹å¤‰ã—ã¾ã™"
-
msgid "&Skip remaining changes to this file"
msgstr "&Skip - ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®æ®‹ã‚Šã®å¤‰æ›´ã‚’å…¨ã¦ã‚¹ã‚­ãƒƒãƒ—ã—ã¾ã™"
@@ -8240,38 +5873,6 @@ msgstr "&Quit - 変更を記録ã—ãªã„ã§çµ‚了ã—ã¾ã™"
msgid "&?"
msgstr "&?"
-msgid "cannot edit patch for whole file"
-msgstr "ファイル全体ã«å¯¾ã™ã‚‹ãƒ‘ッãƒã®æ‰‹å‹•æ”¹å¤‰ã§ãã¾ã›ã‚“"
-
-msgid "cannot edit patch for binary file"
-msgstr "ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«å‘ã‘パッãƒã®æ‰‹å‹•æ”¹å¤‰ã¯ã§ãã¾ã›ã‚“"
-
-msgid ""
-"\n"
-"To remove '-' lines, make them ' ' lines (context).\n"
-"To remove '+' lines, delete them.\n"
-"Lines starting with # will be removed from the patch."
-msgstr ""
-"\n"
-"'-' è¡Œã®å‰Šé™¤ã¯ã€è¡Œã® ' ' (コンテキスト行)化ã§è¡Œã„ã¾ã™ã€‚\n"
-"'+' è¡Œã®å‰Šé™¤ã¯ã€è¡Œè‡ªä½“ã®å‰Šé™¤ã§è¡Œã„ã¾ã™ã€‚\n"
-"'#' ã§å§‹ã¾ã‚‹è¡Œã¯ã€ãƒ‘ッãƒã‹ã‚‰é™¤å¤–ã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-"If the patch applies cleanly, the edited hunk will immediately be\n"
-"added to the record list. If it does not apply cleanly, a rejects\n"
-"file will be generated: you can use that when you try again. If\n"
-"all lines of the hunk are removed, then the edit is aborted and\n"
-"the hunk is left unchanged.\n"
-msgstr ""
-"パッãƒé©ç”¨ãŒæˆåŠŸã—ãŸå ´åˆã€ 編集後ã®å·®åˆ†ã¯ã€ 記録対象ã«è¿½åŠ ã•ã‚Œã¾ã™ã€‚\n"
-"é©ç”¨ãŒå¤±æ•—ã—ãŸå ´åˆã€ å´ä¸‹å·®åˆ†ã¯ãƒ•ã‚¡ã‚¤ãƒ«ã«ä¿å­˜ã•ã‚Œã¾ã™ã€‚ å†è©¦è¡Œã®éš›ã¯ã€\n"
-"ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’利用å¯èƒ½ã§ã™ã€‚ 差分ã®å…¨è¡ŒãŒå‰Šé™¤ã•ã‚ŒãŸå ´åˆã€\n"
-"改変作業ã¯ä¸­æ–­ã•ã‚Œã€å·®åˆ†ã¯ãã®ã¾ã¾ç¶­æŒã•ã‚Œã¾ã™ã€‚\n"
-
-msgid "edit failed"
-msgstr "編集ã«å¤±æ•—"
-
msgid "user quit"
msgstr "ユーザã®æŒ‡ç¤ºã«ã‚ˆã‚Šçµ‚了ã—ã¾ã™"
@@ -8314,12 +5915,10 @@ msgstr ""
msgid ""
" y - record this change\n"
-" n - skip this change\n"
-" e - edit this change manually"
+" n - skip this change"
msgstr ""
" y - ã“ã®å¤‰æ›´ã‚’記録ã—ã¾ã™\n"
-" n - ã“ã®å¤‰æ›´ã‚’スキップã—ã¾ã™\n"
-" e - ã“ã®å¤‰æ›´ã‚’手動ã§æ”¹å¤‰ã—ã¾ã™"
+" n - ã“ã®å¤‰æ›´ã‚’スキップã—ã¾ã™"
msgid ""
" s - skip remaining changes to this file\n"
@@ -8371,7 +5970,7 @@ msgid "hg qrecord [OPTION]... PATCH [FILE]..."
msgstr "hg qrecord [OPTION]... PATCH [FILE]..."
msgid "interactively select changes to refresh"
-msgstr "パッãƒæ›´æ–°å†…容を対話的ã«é¸æŠž"
+msgstr "パッãƒæ›´æ–°å†…容内容を対話的ã«é¸æŠž"
msgid "recreates hardlinks between repository clones"
msgstr "複製リãƒã‚¸ãƒˆãƒªé–“ã§ã®ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã®å†ç”Ÿæˆ"
@@ -8383,43 +5982,29 @@ msgid ""
" When repositories are cloned locally, their data files will be\n"
" hardlinked so that they only use the space of a single repository."
msgstr ""
-" リãƒã‚¸ãƒˆãƒªã®è¤‡è£½ãŒã€ åŒä¸€ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ä¸Šã§è¡Œã‚ã‚ŒãŸå ´åˆã€\n"
-" 管ç†æƒ…報ファイルãŒãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã•ã‚Œã‚‹ãŸã‚〠ディスク消費é‡ã¯ã€\n"
-" リãƒã‚¸ãƒˆãƒª1ã¤åˆ†ã§æ¸ˆã¿ã¾ã™ã€‚"
msgid ""
" Unfortunately, subsequent pulls into either repository will break\n"
" hardlinks for any files touched by the new changesets, even if\n"
" both repositories end up pulling the same changes."
msgstr ""
-" 残念ãªäº‹ã«ã€ ã„ãšã‚Œã‹ã®ãƒªãƒã‚¸ãƒˆãƒªã«ãŠã„ã¦ã€ 変更ãŒå–ã‚Šè¾¼ã¾ã‚Œã‚‹ã¨ã€\n"
-" ã“ã®ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã¯è§£æ¶ˆã•ã‚Œã¾ã™ã€‚ ã“ã‚Œã¯ã€ 両方ã®ãƒªãƒã‚¸ãƒˆãƒªãŒã€\n"
-" å…¨ãåŒã˜å¤‰æ›´ã‚’å–り込んã å ´åˆã§ã‚‚変ã‚ã‚Šã¾ã›ã‚“。"
msgid ""
" Similarly, passing --rev to \"hg clone\" will fail to use any\n"
" hardlinks, falling back to a complete copy of the source\n"
" repository."
msgstr ""
-" åŒæ§˜ã« :hg:`clone` ã«å¯¾ã™ã‚‹ --rev 指定も〠ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ä½¿ç”¨ã‚’æ­¢ã‚ã€\n"
-" 元リãƒã‚¸ãƒˆãƒªã‹ã‚‰ã®è¤‡è£½ã®å®Ÿæ–½ã‚’è¡Œã„ã¾ã™ã€‚"
msgid ""
" This command lets you recreate those hardlinks and reclaim that\n"
" wasted space."
msgstr ""
-" 本コマンドã¯ã€ ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã‚’使用ã™ã‚‹çŠ¶æ³ã‚’å†æ§‹ç¯‰ã™ã‚‹ã“ã¨ã§ã€\n"
-" 無駄ãªãƒ‡ã‚£ã‚¹ã‚¯é ˜åŸŸã‚’回åŽã—ã¾ã™ã€‚"
msgid ""
" This repository will be relinked to share space with ORIGIN, which\n"
" must be on the same local disk. If ORIGIN is omitted, looks for\n"
" \"default-relink\", then \"default\", in [paths]."
msgstr ""
-" 本コマンドã®å®Ÿè¡Œå¯¾è±¡ã¨ãªã‚‹ãƒªãƒã‚¸ãƒˆãƒªã¯ã€ ディスク領域共有対象ã®\n"
-" ORIGIN リãƒã‚¸ãƒˆãƒªã¨ã€ åŒä¸€ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ä¸Šã«ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。\n"
-" ORIGIN 指定ãŒç„¡ã„å ´åˆã€ [paths] セクション㮠\"default-relink\"\n"
-" ãªã„ã— \"default\" ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid ""
" Do not attempt any read operations on this repository while the\n"
@@ -8427,13 +6012,13 @@ msgid ""
" writes.)\n"
" "
msgstr ""
-" コマンド実行中ã¯ã€ リãƒã‚¸ãƒˆãƒªã«å¯¾ã™ã‚‹ã‚らゆる読ã¿å‡ºã—ã¯ç¦æ­¢ã§ã™\n"
-" (両方ã®ãƒªãƒã‚¸ãƒˆãƒªãŒæ›¸ã出ã—ロックã•ã‚Œã¾ã™)\n"
-" "
msgid "hardlinks are not supported on this system"
msgstr "ã“ã®ã‚·ã‚¹ãƒ†ãƒ ä¸Šã§ã¯ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ãŒæœªã‚µãƒãƒ¼ãƒˆã§ã™"
+msgid "must specify local origin repository"
+msgstr "ローカルã®å…ƒãƒªãƒã‚¸ãƒˆãƒªæŒ‡å®šãŒå¿…è¦ã§ã™"
+
#, python-format
msgid "relinking %s to %s\n"
msgstr "%s ã‹ã‚‰ %s ã«ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ä¸­\n"
@@ -8443,7 +6028,7 @@ msgstr "ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã®å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“\n"
#, python-format
msgid "tip has %d files, estimated total number of files: %s\n"
-msgstr "tip ã«ãŠã‘るファイル数 %d〠推定ç·ãƒ•ã‚¡ã‚¤ãƒ«æ•°: %s\n"
+msgstr ""
msgid "collecting"
msgstr "åŽé›†ä¸­"
@@ -8482,35 +6067,27 @@ msgid ""
"This extension allows you to specify shortcuts for parent URLs with a\n"
"lot of repositories to act like a scheme, for example::"
msgstr ""
-"本エクステンションã«ã‚ˆã£ã¦ã€ 複数リãƒã‚¸ãƒˆãƒªã®è¦ª URL çš„ãªå½¹å‰²ã‚’ã€\n"
-"スキーマ指定ã®ã‚ˆã†ã«è¨˜è¿°ã™ã‚‹çœç•¥è¨˜æ³•ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã€‚ 例ãˆã°::"
msgid ""
" [schemes]\n"
" py = http://code.python.org/hg/"
msgstr ""
-" [schemes]\n"
-" py = http://code.python.org/hg/"
msgid "After that you can use it like::"
-msgstr "上記設定ã®å…ƒã§ã¯ã€ 以下ã®ã‚ˆã†ãªè¡¨è¨˜ãŒå¯èƒ½ã§ã™::"
+msgstr ""
msgid " hg clone py://trunk/"
-msgstr " hg clone py://trunk/"
+msgstr ""
msgid ""
"Additionally there is support for some more complex schemas, for\n"
"example used by Google Code::"
msgstr ""
-"æ›´ã«ã€ より複雑ãªã‚¹ã‚­ãƒ¼ãƒžã«ã‚‚対応ã—ã¦ã„ã¾ã™ã€‚ 例ãˆã° Google Code\n"
-"を使用ã™ã‚‹å ´åˆ::"
msgid ""
" [schemes]\n"
" gcode = http://{1}.googlecode.com/hg/"
msgstr ""
-" [schemes]\n"
-" gcode = http://{1}.googlecode.com/hg/"
msgid ""
"The syntax is taken from Mercurial templates, and you have unlimited\n"
@@ -8519,14 +6096,9 @@ msgid ""
"supplied, split by ``/``. Anything not specified as ``{part}`` will be\n"
"just appended to an URL."
msgstr ""
-"Mercurial ã®ãƒ†ãƒ³ãƒ—レート表記ã®æ–‡æ³•ã‚’å…ƒã«ã€ ``{1}`` ã‹ã‚‰å§‹ã¾ã‚Š\n"
-"``{2}``〠``{3}`` 等々ã¨é€£ç¶šã—ãŸã€ 上é™ç„¡ã—ã®ç•ªå·å¤‰æ•°ã‚’使用å¯èƒ½ã§ã™ã€‚\n"
-"å„番å·å¤‰æ•°ã¯ã€ URL ã‚’ ``/`` ã§åŒºåˆ‡ã£ãŸéƒ¨ä½ã«å¯¾å¿œã—ãŸå€¤ã§ç½®æ›ã•ã‚Œã¾ã™ã€‚\n"
-"``{部ä½}`` å½¢å¼ã«è©²å½“ã—ãªã„部分ã¯ã€ 全㦠URL 末尾ã«ä»˜åŠ ã•ã‚Œã¾ã™ã€‚"
msgid "For convenience, the extension adds these schemes by default::"
msgstr ""
-"利便上〠本エクステンションã¯ã€ 以下ã®ã‚¹ã‚­ãƒ¼ãƒžã‚’デフォルトã§è¨­å®šã—ã¾ã™::"
msgid ""
" [schemes]\n"
@@ -8536,21 +6108,15 @@ msgid ""
" gcode = https://{1}.googlecode.com/hg/\n"
" kiln = https://{1}.kilnhg.com/Repo/"
msgstr ""
-" [schemes]\n"
-" py = http://hg.python.org/\n"
-" bb = https://bitbucket.org/\n"
-" bb+ssh = ssh://hg@bitbucket.org/\n"
-" gcode = https://{1}.googlecode.com/hg/\n"
-" kiln = https://{1}.kilnhg.com/Repo/"
msgid ""
"You can override a predefined scheme by defining a new scheme with the\n"
"same name.\n"
-msgstr "定義済ã¿ã‚¹ã‚­ãƒ¼ãƒžã¯ã€ åŒåスキーマ定義ã«ã‚ˆã‚Šã€ 上書ãå¯èƒ½ã§ã™ã€‚\n"
+msgstr ""
#, python-format
msgid "custom scheme %s:// conflicts with drive letter %s:\\\n"
-msgstr "独自スキーマ %s:// ã¯ã€ ドライブ文字 %s:\\ ã¨è¡çªã—ã¾ã™\n"
+msgstr ""
msgid "share a common history between several working directories"
msgstr "複数作業領域ã«ã‚ˆã‚‹å±¥æ­´æƒ…報領域ã®å…±æœ‰"
@@ -8562,8 +6128,6 @@ msgid ""
" Initialize a new repository and working directory that shares its\n"
" history with another repository."
msgstr ""
-" ä»–ã®ãƒªãƒã‚¸ãƒˆãƒªã¨å±¥æ­´æƒ…報を共有ã™ã‚‹ã€ リãƒã‚¸ãƒˆãƒªï¼ä½œæ¥­é ˜åŸŸã‚’ã€\n"
-" æ–°è¦ã«ä½œæˆã—ã¾ã™ã€‚"
msgid ""
" .. note::\n"
@@ -8578,31 +6142,6 @@ msgid ""
" (e.g. tip).\n"
" "
msgstr ""
-" .. note::\n"
-" rollback ã®å®Ÿæ–½ã‚„〠履歴を改変ã™ã‚‹ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ (例: mq ã‚„\n"
-" rebase ç­‰) ã®åˆ©ç”¨ã¯ã€ 共有リãƒã‚¸ãƒˆãƒªé–“ã«ç›¸å½“ã®æ··ä¹±ã‚’ã‚‚ãŸã‚‰ã—ã¾ã™ã€‚\n"
-" 典型的ãªä¾‹ã¯ã€ 共有関係ã«ã‚るリãƒã‚¸ãƒˆãƒªã®ä¸¡æ–¹ãŒã€ \n"
-" 作業領域をåŒä¸€ãƒªãƒ“ジョンã§æ›´æ–°ã—ãŸçŠ¶æ…‹ã§ã€ 一方ãŒå½“該リビジョンを\n"
-" rollback ã«ã‚ˆã‚Šç ´æ£„ã™ã‚‹ã“ã¨ã§ã€ ä»–æ–¹ãŒæ©Ÿèƒ½ã—ãªããªã‚‹ã‚±ãƒ¼ã‚¹ã§ã™:\n"
-" \"中断: 作業領域ã®è¦ª REV ãŒæœªçŸ¥ã®ãƒªãƒ“ジョンã§ã™\"\n"
-" メッセージ表示ã¨å…±ã«ã€ ä»–æ–¹ã§ã®ã‚らゆるæ“作ãŒå¤±æ•—ã—ã¾ã™ã€‚\n"
-" ã“ã®å ´åˆã®å”¯ä¸€ã®å¾©æ—§æ–¹æ³•ã¯ã€ 機能ã—ãªã„å´ã®ãƒªãƒã‚¸ãƒˆãƒªã«ãŠã‘ã‚‹ã€\n"
-" 確実ã«å­˜åœ¨ã™ã‚‹ãƒªãƒ“ジョン (例: tip) を使ã£ãŸ :hg:`debugsetparents`\n"
-" ã®å®Ÿæ–½ã ã‘ã§ã™ã€‚\n"
-" "
-
-msgid "convert a shared repository to a normal one"
-msgstr "共有状態ã®ãƒªãƒã‚¸ãƒˆãƒªã‹ã‚‰é€šå¸¸ãƒªãƒã‚¸ãƒˆãƒªã¸ã®å¤‰æ›"
-
-msgid ""
-" Copy the store data to the repo and remove the sharedpath data.\n"
-" "
-msgstr ""
-" 履歴管ç†æƒ…報を複製ã—〠共有状態を解消ã—ã¾ã™ã€‚\n"
-" "
-
-msgid "this is not a shared repo"
-msgstr "共有状態ã®ãƒªãƒã‚¸ãƒˆãƒªã§ã¯ã‚ã‚Šã¾ã›ã‚“"
msgid "do not create a working copy"
msgstr "作業領域ã®æ›´æ–°ã‚’抑止ã—ã¾ã™"
@@ -8611,30 +6150,26 @@ msgid "[-U] SOURCE [DEST]"
msgstr "[-U] SOURCE [DEST]"
msgid "command to transplant changesets from another branch"
-msgstr "別ブランãƒã‹ã‚‰ã®ãƒªãƒ“ジョンã®ç§»æ¤"
+msgstr "別ブランãƒã‹ã‚‰ãƒ‘ッãƒã‚’移æ¤ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰"
msgid "This extension allows you to transplant patches from another branch."
-msgstr "本エクステンションã¯ã€ 別ブランãƒã‹ã‚‰ã®ãƒªãƒ“ジョン移æ¤ã‚’å¯èƒ½ã«ã—ã¾ã™ã€‚"
+msgstr "本エクステンションã¯ã€ 別ブランãƒã‹ã‚‰ã®ãƒ‘ッãƒã®ç§»æ¤ã‚’å¯èƒ½ã«ã—ã¾ã™ã€‚"
msgid ""
"Transplanted patches are recorded in .hg/transplant/transplants, as a\n"
"map from a changeset hash to its hash in the source repository.\n"
msgstr ""
-"移æ¤ã•ã‚ŒãŸãƒªãƒ“ジョンã®æƒ…å ±ã¯ã€ 移æ¤å…ˆãƒªãƒ“ジョンã®ãƒãƒƒã‚·ãƒ¥å€¤ã‹ã‚‰ã€\n"
-"移æ¤å…ƒãƒªãƒã‚¸ãƒˆãƒªã«ãŠã‘ã‚‹ãƒãƒƒã‚·ãƒ¥å€¤ã¸ã®å¤‰æ›ä¸€è¦§ã¨ã—ã¦ã€\n"
-".hg/transplant/transplants ã«è¨˜éŒ²ã•ã‚Œã¾ã™ã€‚\n"
+"移æ¤ã•ã‚ŒãŸãƒ‘ッãƒã®æƒ…å ±ã¯ã€ 移æ¤å…ˆãƒªãƒ“ジョンã®ãƒãƒƒã‚·ãƒ¥å€¤ã‹ã‚‰ã€ 移æ¤å…ƒ\n"
+"リãƒã‚¸ãƒˆãƒªã«ãŠã‘ã‚‹ãƒãƒƒã‚·ãƒ¥å€¤ã¸ã®å¤‰æ›ã¨ã—ã¦ã€ .hg/transplant/transplants\n"
+"ã«è¨˜éŒ²ã•ã‚Œã¾ã™ã€‚\n"
#, python-format
msgid "skipping already applied revision %s\n"
-msgstr "é©ç”¨æ¸ˆã¿ãƒªãƒ“ジョン %s を無視\n"
+msgstr "ã™ã§ã«é©ç”¨ã—ãŸã‚Šãƒ“ジョン %s を飛ã°ã—ã¦ã„ã¾ã™\n"
#, python-format
msgid "skipping merge changeset %s:%s\n"
-msgstr "マージ実施リビジョン %s:%s を無視\n"
-
-#, python-format
-msgid "%s is not a parent of %s"
-msgstr "%s 㯠%s ã®è¦ªãƒªãƒ“ジョンã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ %s:%s ã®ãƒžãƒ¼ã‚¸ã‚’飛ã°ã—ã¦ã„ã¾ã™\n"
#, python-format
msgid "%s merged at %s\n"
@@ -8642,20 +6177,24 @@ msgstr "%s ã‚’ %s ã«ãƒžãƒ¼ã‚¸\n"
#, python-format
msgid "%s transplanted to %s\n"
-msgstr "%s ã‚’ %s ã«ç§»æ¤ä¸­\n"
+msgstr "%s ã‚’ %s ã«ç§»æ¤\n"
#, python-format
msgid "filtering %s\n"
msgstr "%s をフィルタリング中\n"
msgid "filter failed"
-msgstr "フィルタリングã«å¤±æ•—"
+msgstr "フィルターã«å¤±æ•—"
msgid "can only omit patchfile if merging"
msgstr "マージã®å ´åˆã®ã¿ãƒ‘ッãƒãƒ•ã‚¡ã‚¤ãƒ«ã‚’çœç•¥å¯èƒ½"
+#, python-format
+msgid "%s: empty changeset"
+msgstr "%s: 空ã®ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ"
+
msgid "fix up the merge and run hg transplant --continue"
-msgstr "è¡çªè§£æ¶ˆå¾Œã« \"hg transplant --continue\" ã—ã¦ãã ã•ã„"
+msgstr "è¡çªè§£æ¶ˆå¾Œã« :hg:`transplant --continue` ã—ã¦ãã ã•ã„"
#, python-format
msgid "%s transplanted as %s\n"
@@ -8672,7 +6211,7 @@ msgid "commit failed"
msgstr "コミットã«å¤±æ•—"
msgid "filter corrupted changeset (no user or date)"
-msgstr "ç ´æã—ãŸãƒªãƒ“ジョンを除外ã—ã¦ãã ã•ã„ (ユーザåãªã„ã—日付ã®æ¬ æ)"
+msgstr ""
msgid ""
"y: transplant this changeset\n"
@@ -8685,23 +6224,26 @@ msgid ""
msgstr ""
"y: ã“ã®ãƒªãƒ“ジョンを移æ¤\n"
"n: ã“ã®ãƒªãƒ“ジョンã¯ç§»æ¤ã—ãªã„\n"
-"m: ã“ã®ãƒªãƒ“ジョンã®ç§»æ¤ã‚’マージã§å®Ÿç¾\n"
+"m: ã“ã®ãƒªãƒ“ジョンã§ãƒžãƒ¼ã‚¸\n"
"p: パッãƒã‚’表示\n"
"c: é¸æŠžã•ã‚ŒãŸãƒªãƒ“ジョンをコミット\n"
"q: 移æ¤ã®å–り消ã—\n"
"?: ヘルプã®è¡¨ç¤º\n"
msgid "apply changeset? [ynmpcq?]:"
-msgstr "リビジョンを移æ¤ã—ã¾ã™ã‹ï¼Ÿ [ynmpcq?]:"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã‚’é©ç”¨ã—ã¾ã™ã‹ï¼Ÿ [ynmpcq?]:"
msgid "no such option\n"
msgstr "ãã®ã‚ˆã†ãªã‚ªãƒ—ションã¯ã‚ã‚Šã¾ã›ã‚“\n"
msgid "pull patches from REPO"
-msgstr "指定リãƒã‚¸ãƒˆãƒªã‹ã‚‰ã®å–ã‚Šè¾¼ã¿"
+msgstr "パッãƒå–ã‚Šè¾¼ã¿å…ƒãƒªãƒã‚¸ãƒˆãƒªã®æŒ‡å®š"
+
+msgid "BRANCH"
+msgstr "ブランãƒ"
msgid "pull patches from branch BRANCH"
-msgstr "指定ブランãƒã‹ã‚‰ã®å–ã‚Šè¾¼ã¿"
+msgstr "パッãƒå–ã‚Šè¾¼ã¿å…ƒãƒ–ランãƒã®æŒ‡å®š"
msgid "pull all changesets up to BRANCH"
msgstr "指定ブランãƒã®å…¨ã¦ã‚’å–り込む"
@@ -8710,10 +6252,7 @@ msgid "skip over REV"
msgstr "指定リビジョンã®ã‚¹ã‚­ãƒƒãƒ—"
msgid "merge at REV"
-msgstr "指定リビジョンã®ç§»æ¤ã‚’マージã§å®Ÿç¾"
-
-msgid "parent to choose when transplanting merge"
-msgstr "移æ¤ã§ã®ãƒžãƒ¼ã‚¸ã«ä½¿ç”¨ã™ã‚‹è¦ªãƒªãƒ“ジョン"
+msgstr "指定リビジョンã«ãŠã‘るマージ"
msgid "append transplant info to log message"
msgstr "コミットログã¸ã®ç§»æ¤æƒ…å ±ã®ä»˜ä¸Ž"
@@ -8722,13 +6261,13 @@ msgid "continue last transplant session after repair"
msgstr "中断ã•ã‚ŒãŸç›´å‰ã®ç§»æ¤ä½œæ¥­ã®å†é–‹"
msgid "filter changesets through command"
-msgstr "コマンドã«ã‚ˆã‚‹ãƒªãƒ“ジョンã®ãƒ•ã‚£ãƒ«ã‚¿ãƒªãƒ³ã‚°"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®ãƒ•ã‚£ãƒ«ã‚¿æŒ‡å®š"
msgid "hg transplant [-s REPO] [-b BRANCH [-a]] [-p REV] [-m REV] [REV]..."
msgstr "hg transplant [-s REPO] [-b BRANCH [-a]] [-p REV] [-m REV] [REV]..."
msgid "transplant changesets from another branch"
-msgstr "別ブランãƒã‹ã‚‰ã®ãƒªãƒ“ジョン移æ¤"
+msgstr "別ã®ãƒ–ランãƒã¸ã®ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®ç§»æ¤"
msgid ""
" Selected changesets will be applied on top of the current working\n"
@@ -8737,29 +6276,23 @@ msgid ""
" rebase extension instead if you want to move a whole branch of\n"
" unpublished changesets."
msgstr ""
-" 移æ¤å¯¾è±¡ãƒªãƒ“ジョンã¯ã€ 作業領域ã®è¦ªãƒªãƒ“ジョンã®å­å­«ã¨ã—ã¦ã€\n"
-" コミットログを維æŒã—ã¤ã¤è¤‡è£½ã•ã‚Œã¾ã™ã€‚ 移æ¤ã§ã®è¤‡è£½ã«ã‚ˆã‚Šã€\n"
-" 移æ¤å¯¾è±¡ã¨åŒå†…容ã®ãƒªãƒ“ジョンã¯ã€ 履歴上ã«2回登場ã™ã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ã€‚\n"
-" 未公開リビジョンã®ãƒ–ランãƒã‚’〠ã¾ã¨ã‚ã¦ç§»å‹•ã—ãŸã„å ´åˆã¯ã€ rebase\n"
-" エクステンションを使用ã—ã¦ãã ã•ã„。"
msgid ""
" If --log is specified, log messages will have a comment appended\n"
" of the form::"
msgstr ""
-" --log ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 以下ã®å½¢å¼ã®ã‚³ãƒ¡ãƒ³ãƒˆãŒãƒ­ã‚°ã«ä»˜åŠ ã•ã‚Œã¾ã™::"
msgid " (transplanted from CHANGESETHASH)"
-msgstr " (transplanted from 移æ¤å…ƒãƒªãƒ“ジョンã®ãƒãƒƒã‚·ãƒ¥å€¤)"
+msgstr " (transplanted from CHANGESETHASH)"
msgid ""
" You can rewrite the changelog message with the --filter option.\n"
" Its argument will be invoked with the current changelog message as\n"
" $1 and the patch as $2."
msgstr ""
-" --filter ã«ã‚ˆã‚Šã‚³ãƒŸãƒƒãƒˆãƒ­ã‚°ã‚’改変ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 指定ã•ã‚ŒãŸå€¤ã¯ã€\n"
-" コマンド起動ã«ä½¿ç”¨ã•ã‚Œã€ コマンドã®ç¬¬1引数ã«ã¯ã‚³ãƒŸãƒƒãƒˆãƒ­ã‚°ã€\n"
-" 第2引数ã«ã¯ãƒ‘ッãƒãŒæ ¼ç´ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ãŒæŒ‡å®šã•ã‚Œã¾ã™ã€‚"
+" --filter ã«ã‚ˆã‚Šã‚³ãƒŸãƒƒãƒˆãƒ­ã‚°ã‚’改変ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 指定ã•ã‚ŒãŸå€¤ã¯\n"
+" コマンド起動ã«ä½¿ç”¨ã•ã‚Œã€ 第1引数ã«ã¯ã‚³ãƒŸãƒƒãƒˆãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã€ 第2引数ã«ã¯\n"
+" パッãƒãŒæŒ‡å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
" If --source/-s is specified, selects changesets from the named\n"
@@ -8769,20 +6302,17 @@ msgid ""
" transplanted, otherwise you will be prompted to select the\n"
" changesets you want."
msgstr ""
-" --source/-s ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã¯ã€ 指定リãƒã‚¸ãƒˆãƒªãŒç§»æ¤å…ƒã«ãªã‚Šã¾ã™ã€‚\n"
-" --branch/-b ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã¯ã€ 指定リビジョンをå«ã‚€ãƒ–ランãƒã®ã€\n"
-" 指定リビジョンã¾ã§ãŒç§»æ¤å…ƒã«ãªã‚Šã¾ã™ã€‚ --all/-a ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã¯ã€\n"
-" 指定ブランãƒä¸­ã®å…¨ã¦ã®ãƒªãƒ“ジョンãŒç§»æ¤å¯¾è±¡ã¨ãªã‚Šã€ ãれ以外ã®å ´åˆã¯ã€\n"
-" 移æ¤å€™è£œãƒªãƒ“ジョンã«é–¢ã—ã¦ã€ 移æ¤è¦å¦ã®å•ã„åˆã‚ã›ãŒç™ºç”Ÿã—ã¾ã™ã€‚"
+" --source/-s ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 指定ã®ãƒªãƒã‚¸ãƒˆãƒªã‹ã‚‰ç§»æ¤ã•ã‚Œã¾ã™ã€‚\n"
+" --branch/-b ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 指定ã®åå‰ã‚’æŒã¤ãƒ–ランãƒã‹ã‚‰ç§»æ¤\n"
+" ã•ã‚Œã¾ã™ã€‚ --all/-a ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 指定ã•ã‚ŒãŸãƒ–ランãƒä¸­ã®å…¨ã¦ã®\n"
+" ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆãŒç§»æ¤å¯¾å‡¦ã¨ãªã‚Šã€ ãれ以外ã®å ´åˆã¯ç§»æ¤å¯¾è±¡ã¨ã™ã‚‹\n"
+" ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®å•ã„åˆã‚ã›ãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
-" :hg:`transplant --branch REV --all` will transplant the\n"
+" :hg:`transplant --branch REVISION --all` will transplant the\n"
" selected branch (up to the named revision) onto your current\n"
" working directory."
msgstr ""
-" :hg:`transplant --branch REV --all` 実行ã«ã‚ˆã‚Šã€\n"
-" 指定ã•ã‚ŒãŸåå‰ä»˜ãブランム(ã®ä¸­ã® REV ã¾ã§ã®ãƒªãƒ“ジョン) ãŒã€\n"
-" 作業領域ã®è¦ªãƒªãƒ“ジョンã®å­ã¨ã—ã¦ã€ 移æ¤ã•ã‚Œã¾ã™ã€‚"
msgid ""
" You can optionally mark selected transplanted changesets as merge\n"
@@ -8790,29 +6320,16 @@ msgid ""
" of a merged transplant, and you can merge descendants of them\n"
" normally instead of transplanting them."
msgstr ""
-" ä»»æ„ã®ãƒªãƒ“ジョンã«å¯¾ã—㦠``--merge`` 指定をã—ãŸå ´åˆã€\n"
-" 当該リビジョンã®ç§»æ¤ã¯ã€ 複製ã«ã‚ˆã‚‹é€šå¸¸ã®æ–¹æ³•ã®ä»£ã‚ã‚Šã«ã€\n"
-" 当該リビジョンã¨ã®ãƒžãƒ¼ã‚¸ã§å®Ÿç¾ã•ã‚Œã¾ã™ã€‚ 本コマンドã«å¯¾ã—ã¦ã€\n"
-" 移æ¤å¯¾è±¡ã¨ã—ã¦æŒ‡å®šã•ã‚ŒãŸãƒªãƒ“ジョンã®ã†ã¡ã€ãƒžãƒ¼ã‚¸å®Ÿæ–½ãƒªãƒ“ジョンã¯ã€\n"
-" 移æ¤å¯¾è±¡ã‹ã‚‰é™¤å¤–ã•ã‚Œã¾ã™ã€‚ ã¾ãŸã€ マージ実施リビジョンã®ç¥–å…ˆã¯ã€\n"
-" 自動的ã«ã¯ç§»æ¤å¯¾è±¡ã«å«ã¾ã‚Œã¾ã›ã‚“。 ãã®ãŸã‚〠マージ実施リビジョンã€\n"
-" ãªã„ã—ãã®å­å­«ã®ç§»æ¤ã«é–¢ã—ã¦ã¯ã€ ã“ã¡ã‚‰ã®æ–¹æ³•ã‚‚検討ã—ã¦ãã ã•ã„。\n"
-" (※ 訳注: ã“ã®æ®µè½ã®ç¿»è¨³ã¯ã€ ã‚ã‹ã‚Šã‚„ã™ã•ã‚’é‡è¦–ã—ã¦ã€ \n"
-" 原文ã‹ã‚‰å¤§å¹…ã«æ”¹å¤‰ã—ã¦ã‚ã‚Šã¾ã™ã€‚ é©å®œåŽŸæ–‡ã®ãƒ˜ãƒ«ãƒ—ã‚‚å‚ç…§ã—ã¦ãã ã•ã„)"
-
-msgid ""
-" Merge changesets may be transplanted directly by specifying the\n"
-" proper parent changeset by calling :hg:`transplant --parent`."
-msgstr ""
-" :hg:`transplant --parent` 実行ã§ã®ã€ é©åˆ‡ãªè¦ªãƒªãƒ“ジョン指定ã«ã‚ˆã‚Šã€\n"
-" マージ実施リビジョンを〠直接移æ¤å¯èƒ½ã§ã™ã€‚"
+" é¸æŠžã—ãŸå¯¾è±¡ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®ç§»æ¤ã‚’〠マージ実施ã¨ã¿ãªã™ã“ã¨ã‚‚å¯èƒ½\n"
+" ã§ã™ã€‚ 移æ¤ã®éš›ã«ãƒžãƒ¼ã‚¸å¯¾è±¡ãƒªãƒ“ジョンã«é–¢ã™ã‚‹å•ã„åˆã‚ã›ã¯ç„¡ã〠移æ¤\n"
+" 後ã®ç§»æ¤å…ƒã®å­å­«ã«å¯¾ã—ã¦ã¯ã€ 移æ¤ã§ã¯ãªã通常ã®ãƒžãƒ¼ã‚¸ãŒå¯èƒ½ã§ã™ã€‚"
msgid ""
" If no merges or revisions are provided, :hg:`transplant` will\n"
" start an interactive changeset browser."
msgstr ""
-" マージ指定もリビジョン指定もãªã„å ´åˆã€ :hg:`transplant`\n"
-" ã¯å¯¾è©±çš„ã«ç§»æ¤ã‚’実施ã—ã¾ã™ã€‚"
+" マージ対象もリビジョン指定もãªã„å ´åˆã€ :hg:`transplant` ã¯å¯¾è©±çš„ã«\n"
+" 移æ¤ã‚’è¡Œãªã„ã¾ã™ã€‚"
msgid ""
" If a changeset application fails, you can fix the merge by hand\n"
@@ -8820,18 +6337,18 @@ msgid ""
" --continue/-c`.\n"
" "
msgstr ""
-" è¡çªã«ã‚ˆã‚Šç§»æ¤ãŒå¤±æ•—ã—ãŸå ´åˆã€ 手動ã§ã®è¡çªè§£æ¶ˆå¾Œã« :hg:`transplant\n"
+" 移æ¤ã«å¤±æ•—ã—ãŸå ´åˆã€ 手動ã§ã®è¡çªè§£æ¶ˆå¾Œã« :hg:`transplant\n"
" --continue/-c` を実行ã™ã‚‹ã“ã¨ã§ã€ 中断ã•ã‚ŒãŸç§»æ¤ã‚’å†é–‹å¯èƒ½ã§ã™ã€‚\n"
" "
msgid "--continue is incompatible with branch, all or merge"
-msgstr "--continue 㯠--branch〠--all〠--merge ã¨ä½µç”¨ã§ãã¾ã›ã‚“"
+msgstr "--continue 㨠--branch〠--all〠--merge ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
msgid "no source URL, branch tag or revision list provided"
-msgstr "å…ƒ URL〠ブランãƒã‚¿ã‚°ã€ リビジョン一覧ã®ã„ãšã‚Œã‚‚指定ã•ã‚Œã¦ã„ã¾ã›ã‚“"
+msgstr "å…ƒ URL〠ブランãƒã‚¿ã‚°ã€ リビジョン指定ã®ã„ãšã‚Œã‚‚指定ã•ã‚Œã¦ã„ã¾ã›ã‚“"
msgid "--all requires a branch revision"
-msgstr "--all ã«ã¯ãƒ–ランãƒãƒªãƒ“ジョン指定ãŒå¿…è¦ã§ã™"
+msgstr "--all 指定ã«ã¯ãƒ–ランãƒãƒªãƒ“ジョンãŒå¿…è¦ã§ã™"
msgid "--all is incompatible with a revision list"
msgstr "--all ã¨ãƒªãƒ“ジョンリスト指定ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
@@ -8843,22 +6360,20 @@ msgid "outstanding uncommitted merges"
msgstr "マージãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™"
msgid "outstanding local changes"
-msgstr "変更ãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™"
+msgstr "未コミットã®å¤‰æ›´ãŒã‚ã‚Šã¾ã™"
msgid ""
"``transplanted([set])``\n"
" Transplanted changesets in set, or all transplanted changesets."
msgstr ""
-"``transplanted([set])``\n"
-" set 中ã®ç§»æ¤å…ˆãƒªãƒ“ジョン〠ãªã„ã—全移æ¤å…ˆãƒªãƒ“ジョン。"
msgid ""
":transplanted: String. The node identifier of the transplanted\n"
" changeset if any."
-msgstr ":transplanted: 文字列。 (移æ¤å…ˆã§ã‚ã‚Œã°) 移æ¤å…ƒãƒªãƒ“ジョン㮠ID。"
+msgstr ""
msgid "allow the use of MBCS paths with problematic encodings"
-msgstr "å•é¡Œã‚る文字コードをパスåã«ä½¿ç”¨ã™ã‚‹å ´åˆã®å¯¾å‡¦"
+msgstr "å•é¡Œã®ã‚る文字コードã§ã®å¤šãƒã‚¤ãƒˆç¬¦å·åŒ–文字を使用ã—ãŸãƒ‘スåã®æœ‰åŠ¹åŒ–"
msgid ""
"Some MBCS encodings are not good for some path operations (i.e.\n"
@@ -9022,8 +6537,8 @@ msgstr ""
"見直ã™ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚\n"
#, python-format
-msgid "attempt to commit or push text file(s) using %s line endings\n"
-msgstr "è¡Œæœ«å½¢å¼ %s ã«ã‚ˆã‚‹ãƒ†ã‚­ã‚¹ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã® commit ãªã„ã—履歴å映を実施\n"
+msgid "Attempt to commit or push text file(s) using %s line endings\n"
+msgstr "テキストファイルã®è¡Œæœ«å½¢å¼ %s ã«ã‚ˆã‚‹ commit ãªã„ã—履歴å映を実施\n"
#, python-format
msgid "in %s: %s\n"
@@ -9075,51 +6590,46 @@ msgstr ""
"Win32TextExtension å‚ç…§\n"
msgid "discover and advertise repositories on the local network"
-msgstr "ローカルãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ä¸Šã§ã®ãƒªãƒã‚¸ãƒˆãƒªã®æ¤œå‡ºï¼å…¬é–‹"
+msgstr ""
msgid ""
"Zeroconf-enabled repositories will be announced in a network without\n"
"the need to configure a server or a service. They can be discovered\n"
"without knowing their actual IP address."
msgstr ""
-"Zeroconf ãŒæœ‰åŠ¹åŒ–ã•ã‚ŒãŸãƒªãƒã‚¸ãƒˆãƒªã¯ã€ サーãƒãƒ¼ã‚„サービスã®è¨­å®šç„¡ã—ã«ã€\n"
-"ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ä¸Šã«å‘ŠçŸ¥ã•ã‚Œã¾ã™ã€‚ 対象ã®IPアドレス等を知らãªãã¦ã‚‚ã€\n"
-"告知ã•ã‚ŒãŸãƒªãƒã‚¸ãƒˆãƒªã‚’検出ã§ãã¾ã™ã€‚"
msgid ""
"To allow other people to discover your repository using run\n"
":hg:`serve` in your repository::"
msgstr ""
-":hg:`serve` を稼動中ã®ãƒªãƒã‚¸ãƒˆãƒªãŒã€ ä»–ã®åˆ©ç”¨è€…ã‹ã‚‰æ¤œå‡ºå¯èƒ½ã«ãªã‚Šã¾ã™::"
msgid ""
" $ cd test\n"
" $ hg serve"
msgstr ""
-" $ cd test\n"
-" $ hg serve"
msgid ""
"You can discover Zeroconf-enabled repositories by running\n"
":hg:`paths`::"
-msgstr ":hg:`paths` を使ã†ã“ã¨ã§ã€ Zeroconf ãŒæœ‰åŠ¹ãªãƒªãƒã‚¸ãƒˆãƒªã‚’検出ã§ãã¾ã™::"
+msgstr ""
msgid ""
" $ hg paths\n"
" zc-test = http://example.com:8000/test\n"
msgstr ""
-" $ hg paths\n"
-" zc-test = http://example.com:8000/test\n"
msgid "archive prefix contains illegal components"
msgstr "アーカイブã®æŽ¥é ­è¾žãŒä¸æ­£ãªã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã‚’å«ã¿ã¾ã™"
-msgid "archiving"
-msgstr "アーカイブ中"
+msgid "cannot give prefix when archiving to files"
+msgstr "アーカイブã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’追加ã™ã‚‹ã¨ãã¯æŽ¥é ­è¾žã‚’指定ã§ãã¾ã›ã‚“"
#, python-format
-msgid "malformed line in .hg/bookmarks: %r\n"
-msgstr "ä¸æ­£ãª .hg/bookmarks 記述行: %r\n"
+msgid "unknown archive type '%s'"
+msgstr "未知ã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–種別 '%s'"
+
+msgid "archiving"
+msgstr "アーカイブ中"
#, python-format
msgid "bookmark '%s' contains illegal character"
@@ -9130,12 +6640,12 @@ msgid "branch %s not found"
msgstr "ブランム%s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
#, python-format
-msgid "divergent bookmark %s stored as %s\n"
-msgstr "分å²ã™ã‚‹ãƒ–ックマーク %s ã‚’ %s ã¨ã—ã¦ä¿å­˜\n"
+msgid "updating bookmark %s\n"
+msgstr "ブックマーク %s ã®æ›´æ–°ä¸­\n"
#, python-format
-msgid "adding remote bookmark %s\n"
-msgstr "連æºå…ˆã«ãƒ–ックマーク %s を追加中\n"
+msgid "not updating divergent bookmark %s\n"
+msgstr "è¡çªã™ã‚‹ãƒ–ックマーク %s ã¯æ›´æ–°ã—ã¾ã›ã‚“\n"
msgid "searching for changed bookmarks\n"
msgstr "変更ã•ã‚ŒãŸãƒ–ックマークを探索中\n"
@@ -9180,32 +6690,28 @@ msgstr "ユーザå %s ãŒæ”¹è¡Œã‚’å«ã‚“ã§ã„ã¾ã™"
msgid "the name '%s' is reserved"
msgstr "ã‚¿ã‚°å '%s' ã¯ã‚·ã‚¹ãƒ†ãƒ ã§äºˆç´„ã•ã‚Œã¦ã„ã¾ã™"
-#, python-format
-msgid "uncommitted changes in subrepo %s"
-msgstr "副リãƒã‚¸ãƒˆãƒª %s ã®å¤‰æ›´ãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™"
-
msgid "options --message and --logfile are mutually exclusive"
msgstr "--message 㨠--logfile ã¯åŒæ™‚ã«æŒ‡å®šã§ãã¾ã›ã‚“"
#, python-format
msgid "can't read commit message '%s': %s"
-msgstr "コミットログ '%s' を読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“: %s"
+msgstr "コミットメッセージ '%s' を読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“: %s"
msgid "limit must be a positive integer"
-msgstr "制é™ã«ã¯æ­£æ•°ã‚’指定ã—ã¦ãã ã•ã„"
+msgstr "制é™ã¯æ­£æ•°ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid "limit must be positive"
-msgstr "制é™ã«ã¯æ­£æ•°ã‚’指定ã—ã¦ãã ã•ã„"
+msgstr "制é™ã¯æ­£æ•°ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
#, python-format
msgid "invalid format spec '%%%s' in output filename"
msgstr "出力ファイルåã«ä¸æ­£ãªãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ '%%%s' 指定"
msgid "cannot specify --changelog and --manifest at the same time"
-msgstr "--changelog 㨠--manifest ã¯åŒæ™‚ã«ã¯æŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "--changelog 㨠--manifest ã¯åŒæ™‚ã«ã¯æŒ‡å®šå‡ºæ¥ã¾ã›ã‚“"
msgid "cannot specify filename with --changelog or --manifest"
-msgstr "--changelog ãªã„ã— --manifest ã¨ãƒ•ã‚¡ã‚¤ãƒ«åã¯åŒæ™‚ã«æŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "--changelog ãªã„ã— --manifest ã¨ãƒ•ã‚¡ã‚¤ãƒ«åã¯åŒæ™‚ã«æŒ‡å®šå‡ºæ¥ã¾ã›ã‚“"
msgid "cannot specify --changelog or --manifest without a repository"
msgstr "--changelog ãªã„ã— --manifest ã®æŒ‡å®šã¯ãƒªãƒã‚¸ãƒˆãƒªæŒ‡å®šãŒå¿…è¦ã§ã™"
@@ -9230,10 +6736,6 @@ msgid "%s: not overwriting - %s collides with %s\n"
msgstr "%s: 上書ã失敗 - %s 㯠%s ã¨è¡çª\n"
#, python-format
-msgid "%s: can't copy - same file\n"
-msgstr "%s: コピー失敗 - åŒä¸€ãƒ•ã‚¡ã‚¤ãƒ«ã§ã™\n"
-
-#, python-format
msgid "%s: not overwriting - file exists\n"
msgstr "%s: 上書ãã—ã¾ã›ã‚“ - ファイルãŒå­˜åœ¨ã—ã¾ã™\n"
@@ -9268,12 +6770,15 @@ msgid "no destination specified"
msgstr "作業先を指定ã—ã¦ã„ã¾ã›ã‚“"
msgid "with multiple sources, destination must be an existing directory"
-msgstr "複数ã®ä½œæ¥­å…ƒã®å ´åˆã€ 作業先ã¯å­˜åœ¨ã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’指定ã—ã¦ãã ã•ã„"
+msgstr "複数ã®ä½œæ¥­å…ƒã®å ´åˆã€ 作業先ã¯å­˜åœ¨ã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
#, python-format
msgid "destination %s is not a directory"
msgstr "作業先 %s ã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+msgid "no files to copy"
+msgstr "コピーã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ãŒã‚ã‚Šã¾ã›ã‚“"
+
msgid "(consider using --after)\n"
msgstr "(--after を使ã£ã¦ã¿ã¦ã¯ï¼Ÿ)\n"
@@ -9297,10 +6802,6 @@ msgid "tag: %s\n"
msgstr "ã‚¿ã‚°: %s\n"
#, python-format
-msgid "phase: %s\n"
-msgstr "フェーズ: %s\n"
-
-#, python-format
msgid "parent: %d:%s\n"
msgstr "親: %d:%s\n"
@@ -9349,28 +6850,20 @@ msgid "%s: no key named '%s'"
msgstr "%s: '%s' ã¨ã„ã†ã‚­ãƒ¼ã¯ã‚ã‚Šã¾ã›ã‚“"
#, python-format
-msgid "found revision %s from %s\n"
+msgid "Found revision %s from %s\n"
msgstr "リビジョン %s ã‚’ %s ã§è¦‹ã¤ã‘ã¾ã—ãŸ\n"
msgid "revision matching date not found"
msgstr "リビジョンã«ä¸€è‡´ã™ã‚‹æ—¥ä»˜ãŒã‚ã‚Šã¾ã›ã‚“"
#, python-format
-msgid "cannot follow file not in parent revision: \"%s\""
-msgstr "親リビジョンã«å­˜åœ¨ã—ãªã„ファイルã¯è¿½è·¡ã§ãã¾ã›ã‚“: \"%s\""
-
-#, python-format
msgid "cannot follow nonexistent file: \"%s\""
-msgstr "存在ã—ãªã„ファイルã¯è¿½è·¡ã§ãã¾ã›ã‚“: \"%s\""
+msgstr "存在ã—ãªã„ファイルを追跡ã§ãã¾ã›ã‚“: \"%s\""
msgid "can only follow copies/renames for explicit filenames"
msgstr "ファイルåãŒæ˜Žç¤ºã•ã‚ŒãŸå ´åˆã®ã¿è¤‡è£½/改åを追跡å¯èƒ½ã§ã™"
#, python-format
-msgid "-G/--graph option is incompatible with --%s"
-msgstr "-G/--graph 㨠--%s ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
-
-#, python-format
msgid "adding %s\n"
msgstr "%s を追加登録中\n"
@@ -9378,27 +6871,12 @@ msgstr "%s を追加登録中\n"
msgid "skipping missing subrepository: %s\n"
msgstr "存在ã—ãªã„副リãƒã‚¸ãƒˆãƒªã¸ã®å‡¦ç†ã‚’çœç•¥: %s\n"
-#, python-format
-msgid "amending changeset %s\n"
-msgstr "リビジョン %s を改変中\n"
-
-#, python-format
-msgid "copying changeset %s to %s\n"
-msgstr "リビジョン %s ã‚’ %s ã«ã‚³ãƒ”ー中\n"
-
-#, python-format
-msgid "stripping intermediate changeset %s\n"
-msgstr "中途リビジョン %s を除外中\n"
-
-#, python-format
-msgid "stripping amended changeset %s\n"
-msgstr "改変対象リビジョン %s を除外中\n"
-
msgid "HG: Enter commit message. Lines beginning with 'HG:' are removed."
-msgstr "HG: コミットログを入力ã—ã¦ãã ã•ã„。'HG:' ã§å§‹ã¾ã‚‹è¡Œã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
+msgstr ""
+"HG: コミットメッセージを入力ã—ã¦ãã ã•ã„。 HG: ã§å§‹ã¾ã‚‹è¡Œã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
msgid "HG: Leave message empty to abort commit."
-msgstr "HG: メッセージãŒç©ºã®ã¾ã¾ãªã‚‰ã‚³ãƒŸãƒƒãƒˆã‚’中断ã—ã¾ã™ã€‚"
+msgstr "HG: メッセージãŒç©ºã ã¨ã‚³ãƒŸãƒƒãƒˆã§ãã¾ã›ã‚“。"
#, python-format
msgid "HG: user: %s"
@@ -9431,27 +6909,7 @@ msgid "HG: no files changed"
msgstr "HG: ファイル変更ãªã—"
msgid "empty commit message"
-msgstr "コミットログãŒã‚ã‚Šã¾ã›ã‚“"
-
-#, python-format
-msgid "forgetting %s\n"
-msgstr "%s ã®è¿½åŠ ç™»éŒ²ã‚’å–り消ã—中\n"
-
-#, python-format
-msgid "reverting %s\n"
-msgstr "%s ã®å¾©æ—§ä¸­\n"
-
-#, python-format
-msgid "undeleting %s\n"
-msgstr "%s ã®å¾©æ—§ä¸­\n"
-
-#, python-format
-msgid "file not managed: %s\n"
-msgstr "ファイル %s ã¯ç®¡ç†å¯¾è±¡ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-
-#, python-format
-msgid "no changes needed to %s\n"
-msgstr "%s ã«ã¯æ”¹å¤‰ã®å¿…è¦ãŒã‚ã‚Šã¾ã›ã‚“\n"
+msgstr "コミットメッセージãŒã‚ã‚Šã¾ã›ã‚“"
msgid "repository root directory or name of overlay bundle file"
msgstr "リãƒã‚¸ãƒˆãƒªã®ãƒ«ãƒ¼ãƒˆä½ç½®ã€ ãªã„ã—ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ‘ス"
@@ -9532,10 +6990,10 @@ msgid "exclude names matching the given patterns"
msgstr "パターンã«åˆè‡´ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’処ç†å¯¾è±¡ã‹ã‚‰é™¤å¤–"
msgid "use text as commit message"
-msgstr "指定テキストをコミットログã¨ã—ã¦ä½¿ç”¨"
+msgstr "指定テキストをコミットメッセージã¨ã—ã¦ä½¿ç”¨"
msgid "read commit message from file"
-msgstr "コミットログをファイルã‹ã‚‰èª­ã¿è¾¼ã¿"
+msgstr "コミットメッセージをファイルã‹ã‚‰èª­ã¿è¾¼ã¿"
msgid "record the specified date as commit date"
msgstr "指定日時をコミット日時ã¨ã—ã¦è¨˜éŒ²"
@@ -9552,18 +7010,12 @@ msgstr "当該スタイルã§è¡¨ç¤ºã‚’カスタマイズ"
msgid "display with template"
msgstr "当該テンプレートã§è¡¨ç¤ºã‚’カスタマイズ"
-msgid "show patch"
-msgstr "パッãƒå½¢å¼ã§ã®è¡¨ç¤º"
-
msgid "do not show merges"
msgstr "マージ実施リビジョンã®è¡¨ç¤ºæŠ‘æ­¢"
msgid "output diffstat-style summary of changes"
msgstr "diffstat å½¢å¼ã®å¤‰æ›´æ¦‚è¦ã‚’生æˆ"
-msgid "show the revision DAG"
-msgstr "履歴ツリーã®è¡¨ç¤º"
-
msgid "treat all files as text"
msgstr "全ファイルをテキストファイルã¨ä»®å®š"
@@ -9603,8 +7055,9 @@ msgid ""
" The files will be added to the repository at the next commit. To\n"
" undo an add before that, see :hg:`forget`."
msgstr ""
-" 指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ 次回ã®ã‚³ãƒŸãƒƒãƒˆã‹ã‚‰æ§‹æˆç®¡ç†å¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚\n"
-" 追加登録ã®ã‚³ãƒŸãƒƒãƒˆå‰å–り消ã—㯠:hg:`help forget` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" 指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯æ¬¡å›žã®ã‚³ãƒŸãƒƒãƒˆã‹ã‚‰æ§‹æˆç®¡ç†å¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚\n"
+" 追加登録ã®ã‚³ãƒŸãƒƒãƒˆå‰å–り消ã—ã¯ã€ :hg:`help revert` ã‚’å‚ç…§ã—ã¦\n"
+" ãã ã•ã„。"
msgid " If no names are given, add all files to the repository."
msgstr ""
@@ -9666,30 +7119,27 @@ msgstr ""
" 次回コミット時点ã§ã™ã€‚"
msgid ""
-" Use the -s/--similarity option to detect renamed files. This\n"
+" Use the -s/--similarity option to detect renamed files. With a\n"
+" parameter greater than 0, this compares every removed file with\n"
+" every added file and records those similar enough as renames. This\n"
" option takes a percentage between 0 (disabled) and 100 (files must\n"
-" be identical) as its parameter. With a parameter greater than 0,\n"
-" this compares every removed file with every added file and records\n"
-" those similar enough as renames. Detecting renamed files this way\n"
+" be identical) as its parameter. Detecting renamed files this way\n"
" can be expensive. After using this option, :hg:`status -C` can be\n"
-" used to check which files were identified as moved or renamed. If\n"
-" not specified, -s/--similarity defaults to 100 and only renames of\n"
-" identical files are detected."
-msgstr ""
-" ファイルã®æ”¹åを検知ã™ã‚‹ã«ã¯ -s/--similarity を使用ã—ã¾ã™ã€‚ ã“ã‚Œã¯ã€\n"
-" 0 (改å比較無ã—) ã‹ã‚‰ 100 (完全一致ã§åˆ¤å®š) ã®ç¯„囲ã§ã€ 類似度を指定\n"
-" ã™ã‚‹ã‚ªãƒ—ションã§ã™ (パーセンテージ指定)。 0 より大ãã„指定値ã®å ´åˆã€\n"
-" å…¨ã¦ã®è¿½åŠ ï¼é™¤å¤–ファイル対象ã¨ã—ã¦ã€ 改åã®æœ‰ç„¡ãŒåˆ¤å®šã•ã‚Œã¾ã™ã€‚ \n"
-" 改å判定ã«ã¯ã€ 相応ã®æ™‚é–“ã‚’è¦ã™ã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ 判定çµæžœã®ç¢ºèªã¯ã€\n"
-" 本コマンドã®å®Ÿè¡Œå¾Œã« :hg:`status -C` 出力をå‚ç…§ã—ã¦ãã ã•ã„。\n"
-" -s/--similarity 未指定ã®å ´åˆã€ 100 ãŒæŒ‡å®šã•ã‚ŒãŸã‚‚ã®ã¨ã¿ãªã•ã‚Œã€\n"
-" 内容ãŒå®Œå…¨ã«ä¸€è‡´ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®ã¿ãŒã€ 改åã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
+" used to check which files were identified as moved or renamed."
+msgstr ""
+" ファイルã®æ”¹åを検知ã™ã‚‹ã«ã¯ -s/--similarity を使用ã—ã¾ã™ã€‚ 0 より\n"
+" 大ããªå€¤ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 追加・除外ファイルã®å…¨ã¦ãŒæ¯”較ã•ã‚Œã€ 改åã¨\n"
+" ã¿ãªã›ã‚‹ã‹å¦ã‹ãŒåˆ¤å®šã•ã‚Œã¾ã™ã€‚ ã“ã®ã‚ªãƒ—ションã«ã¯ã€ 0(改å比較無ã—)\n"
+" ã‹ã‚‰ 100 (完全一致ã§åˆ¤å®š)ã¾ã§ã®ç¯„囲ã§ãƒ‘ーセンテージを指定ã—ã¾ã™ã€‚\n"
+" 改å判定ã«ã¯å®Ÿè¡Œæ™‚é–“ã‚’è¦ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚ ã“ã®ã‚ªãƒ—ションã®ä½¿ç”¨\n"
+" 後ã«ã€ :hg:`status -C` を実施ã™ã‚‹ã“ã¨ã§ã€ 移動ï¼æ”¹åãŒæ¤œçŸ¥ã•ã‚ŒãŸ\n"
+" ファイルを確èªã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
msgid "similarity must be a number"
-msgstr "類似度ã«ã¯æ•°å€¤ã‚’指定ã—ã¦ãã ã•ã„"
+msgstr "類似度ã¯æ•°å€¤ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid "similarity must be between 0 and 100"
-msgstr "類似度ã«ã¯0ã‹ã‚‰100ã®é–“を指定ã—ã¦ãã ã•ã„"
+msgstr "類似度ã¯0ã‹ã‚‰100ã®é–“ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid "annotate the specified revision"
msgstr "当該リビジョン時点ã§ã®ç”±æ¥æƒ…報を表示"
@@ -9790,21 +7240,6 @@ msgstr ""
" アーカイブ種別ã¯ã€ 出力先ファイルã®æ‹¡å¼µå­ã‹ã‚‰è‡ªå‹•çš„ã«åˆ¤å®šã•ã‚Œã¾ã™ãŒ\n"
" -t/--type ã§å¼·åˆ¶ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚"
-msgid " Examples:"
-msgstr " 例:"
-
-msgid " - create a zip file containing the 1.0 release::"
-msgstr " - 1.0 版時点ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’æ ¼ç´ã—㟠zip ファイルã®ç”Ÿæˆ::"
-
-msgid " hg archive -r 1.0 project-1.0.zip"
-msgstr " hg archive -r 1.0 project-1.0.zip"
-
-msgid " - create a tarball excluding .hg files::"
-msgstr " - .hg ã§å§‹ã¾ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’除外ã—㟠tar ファイルã®ç”Ÿæˆ::"
-
-msgid " hg archive project.tar.gz -X \".hg*\""
-msgstr " hg archive project.tar.gz -X \".hg*\""
-
msgid " Valid types are:"
msgstr " 有効種別一覧:"
@@ -9838,9 +7273,8 @@ msgid ""
" removed."
msgstr ""
" アーカイブ生æˆã®éš›ã«ã¯ã€ 展開時ã®æ ¼ç´å…ˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåãŒè¨˜éŒ²ã•ã‚Œã¾ã™ã€‚\n"
-" -p/--prefix ã«ã‚ˆã‚Šãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåを指定ã§ãã¾ã™(ç½®æ›æŒ‡å®šå¯èƒ½)。 \n"
-" 特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ アーカイブファイルã¸ã®ãƒ‘スã®æœ«å°¾è¦ç´ ã‹ã‚‰ã€\n"
-" æ‹¡å¼µå­ã‚’除ã„ãŸã‚‚ã®ãŒè¨˜éŒ²ã•ã‚Œã¾ã™ã€‚\n"
+" -p/--prefix ã«ã‚ˆã‚Šãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåを指定ã§ãã¾ã™(ç½®æ›æŒ‡å®šå¯èƒ½)。 特ã«\n"
+" 指定ãŒç„¡ã„å ´åˆã¯ã€ アーカイブåã‹ã‚‰æ‹¡å¼µå­ã‚’除ã„ãŸã‚‚ã®ãŒè¨˜éŒ²ã•ã‚Œã¾ã™ã€‚\n"
" "
msgid "no working directory: please specify a revision"
@@ -9855,8 +7289,8 @@ msgstr "通常ファイルã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–å…ˆã«æ¨™æº–出力を指定ã™ã‚‹ã“
msgid "merge with old dirstate parent after backout"
msgstr "打ã¡æ¶ˆã—リビジョンをç¾è¦ªãƒªãƒ“ジョンã¨ãƒžãƒ¼ã‚¸"
-msgid "parent to choose when backing out merge (DEPRECATED)"
-msgstr "打ã¡æ¶ˆã—リビジョンã¨ã®ãƒžãƒ¼ã‚¸å¯¾è±¡ (éžæŽ¨å¥¨)"
+msgid "parent to choose when backing out merge"
+msgstr "打ã¡æ¶ˆã—リビジョンã¨ã®ãƒžãƒ¼ã‚¸å¯¾è±¡"
msgid "revision to backout"
msgstr "打ã¡æ¶ˆã—対象リビジョン"
@@ -9865,7 +7299,7 @@ msgid "[OPTION]... [-r] REV"
msgstr "[OPTION]... [-r] REV"
msgid "reverse effect of earlier changeset"
-msgstr "以å‰ã®ãƒªãƒ“ジョンã«ãŠã‘る変更ã®æ‰“ã¡æ¶ˆã—"
+msgstr "以å‰ã®ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã«ãŠã‘る変更ã®æ‰“ã¡æ¶ˆã—"
msgid ""
" Prepare a new changeset with the effect of REV undone in the\n"
@@ -9885,41 +7319,32 @@ msgstr ""
" マージçµæžœã¯ã‚³ãƒŸãƒƒãƒˆã•ã‚Œã¾ã›ã‚“。"
msgid ""
-" .. note::\n"
-" backout cannot be used to fix either an unwanted or\n"
-" incorrect merge."
-msgstr ""
-" .. note::\n"
-" :hg:`backout` ã«ã‚ˆã‚‹æ‰“消ã—機能ã¯ã€ãƒžãƒ¼ã‚¸å®Ÿæ–½ãƒªãƒ“ジョンã«å¯¾ã—ã¦ã¯ã€\n"
-" é©ç”¨ã§ãã¾ã›ã‚“。"
-
-msgid ""
-" By default, the pending changeset will have one parent,\n"
-" maintaining a linear history. With --merge, the pending\n"
-" changeset will instead have two parents: the old parent of the\n"
-" working directory and a new child of REV that simply undoes REV."
+" 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"
-" ã§ã™ã€‚"
+" 特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ 打ã¡æ¶ˆã—リビジョンã¯ã€\n"
+" å˜ä¸€ã®è¦ªãƒªãƒ“ジョンã—ã‹æŒãŸãªã„ã€\n"
+" 一直線ã®å±¥æ­´ã¨ãªã‚‹ã‚ˆã†ã«ä½œæˆã•ã‚Œã¾ã™ã€‚\n"
+" --merge を指定ã—ãŸå ´åˆã¯ã€ 2ã¤ã®è¦ªãƒªãƒ“ジョンをæŒã¤ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚\n"
+" 一方ã®è¦ªã¯ä½œæ¥­é ˜åŸŸã®è¦ªãƒªãƒ“ジョンã€\n"
+" ã‚‚ã†ä¸€æ–¹ã¯ã€ 打ã¡æ¶ˆã—リビジョン (ï¼ æ‰“ã¡æ¶ˆã—対象ã®æ–°è¦å­ãƒªãƒ“ジョン)\n"
+" ã§ã™ã€‚"
msgid ""
-" Before version 1.7, the behavior without --merge was equivalent\n"
-" to specifying --merge followed by :hg:`update --clean .` to\n"
-" cancel the merge and leave the child of REV as a head to be\n"
-" merged separately."
+" 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"
-" ヘッドã®ã¾ã¾æ®‹ã™åƒãã‚’ã—ã¾ã™ã€‚"
+" 1.8 版よりå‰ã®æœ¬ã‚³ãƒžãƒ³ãƒ‰ã® --merge ç„¡ã—時挙動ã¯ã€\n"
+" 打消ã—ã‚’ --merge 付ãã§å®Ÿè¡Œã—ãŸå¾Œã§ã€\n"
+" :hg:`update --clean .` を実行ã—ãŸå ´åˆã¨ç­‰ä¾¡ã§ã™ã€‚\n"
+" ã“ã“ã§ã® :hg:`update --clean .` 実行ã¯ã€\n"
+" マージã®å®Ÿæ–½ã‚’キャンセルã—ã€\n"
+" 打ã¡æ¶ˆã—リビジョンを後ã‹ã‚‰åˆ¥é€”マージã§ãるよã†ã«ã€\n"
+" ヘッドã®ã¾ã¾æ®‹ã™åƒãã‚’ã—ã¾ã™ã€‚"
msgid "please specify just one revision"
msgstr "リビジョン指定ã¯1ã¤ã ã‘ã§ã™"
@@ -9933,8 +7358,12 @@ msgstr "ç•°ãªã‚‹ãƒ–ランãƒã«å±žã™ã‚‹ãƒªãƒ“ジョンを打ã¡æ¶ˆã™ã“ã¨ã¯
msgid "cannot backout a change with no parents"
msgstr "親ã®ç„¡ã„リビジョンを打ã¡æ¶ˆã™ã“ã¨ã¯ã§ãã¾ã›ã‚“"
-msgid "cannot backout a merge changeset"
-msgstr "マージ実施リビジョンã¯æ‰“ã¡æ¶ˆã—対象ã«ã§ãã¾ã›ã‚“"
+msgid "cannot backout a merge changeset without --parent"
+msgstr "マージリビジョンã®æ‰“消ã—ã«ã¯ --parent 指定ãŒå¿…è¦ã§ã™"
+
+#, python-format
+msgid "%s is not a parent of %s"
+msgstr "%s 㯠%s ã®è¦ªãƒªãƒ“ジョンã§ã¯ã‚ã‚Šã¾ã›ã‚“"
msgid "cannot use --parent on non-merge changeset"
msgstr "éžãƒžãƒ¼ã‚¸ãƒªãƒ“ジョンã«ã¯ --parent を指定ã§ãã¾ã›ã‚“"
@@ -9957,13 +7386,13 @@ msgid "mark changeset bad"
msgstr "対象リビジョンã®æŽ¢ç´¢çŠ¶æ…‹ã‚’ bad 化"
msgid "skip testing changeset"
-msgstr "対象リビジョンã®æ¤œè¨¼ä½œæ¥­ã‚’çœç•¥"
+msgstr "対象リビジョンã®åˆ¤å®šä½œæ¥­ã‚’çœç•¥"
msgid "extend the bisect range"
msgstr "探索範囲ã®æ‹¡å¼µ"
msgid "use command to check changeset state"
-msgstr "good/bad 検証用コマンド"
+msgstr "good/bad 判定用コマンド"
msgid "do not update to target"
msgstr "対象リビジョンã«ã‚ˆã‚‹ä½œæ¥­é ˜åŸŸå†…容ã®æ›´æ–°ã‚’抑止"
@@ -9996,123 +7425,21 @@ msgid ""
" As a shortcut, you can also use the revision argument to mark a\n"
" revision as good or bad without checking it out first."
msgstr ""
-" 簡便ãªæ‰‹é †ã¨ã—ã¦ã¯ã€ 作業領域を更新ã›ãšã€ リビジョン指定を使用ã—ã¦ã€\n"
-" リビジョンを good ãªã„ã— bad ã«ãƒžãƒ¼ã‚¯ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚"
+" ã¦ã¿ã˜ã‹ãªæ‰‹é †ã¨ã—ã¦ã¯ã€ 作業領域を更新ã›ãšã«ã€ リビジョン指定を使用\n"
+" ã—ã¦ãƒªãƒ“ジョンを good ãªã„ã— bad ã«ãƒžãƒ¼ã‚¯ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚"
msgid ""
" If you supply a command, it will be used for automatic bisection.\n"
-" The environment variable HG_NODE will contain the ID of the\n"
-" changeset being tested. The exit status of the command will be\n"
-" used to mark revisions as good or bad: status 0 means good, 125\n"
-" means to skip the revision, 127 (command not found) will abort the\n"
-" bisection, and any other non-zero exit status means the revision\n"
-" is bad."
+" Its exit status will be used to mark revisions as good or bad:\n"
+" status 0 means good, 125 means to skip the revision, 127\n"
+" (command not found) will abort the bisection, and any other\n"
+" non-zero exit status means the revision is bad."
msgstr ""
" コマンドãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 自動的ãªãƒªãƒ“ジョン検証ã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" コマンド実行時ã«ã¯ã€ 環境変数 HG_NODE ã«æ¤œè¨¼å¯¾è±¡ãƒªãƒ“ジョン㮠ID\n"
-" ãŒæ ¼ç´ã•ã‚Œã¾ã™ã€‚コマンドã®çµ‚了コードã¯ã€ リビジョンã«å¯¾ã™ã‚‹ bad\n"
-" ãªã„ã— good ã®ãƒžãƒ¼ã‚¯ä»˜ã‘ã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚終了コード 0 㯠good〠125\n"
-" ã¯ãƒªãƒ“ジョンã®ã‚¹ã‚­ãƒƒãƒ—〠127 (コマンドä¸åœ¨) ã¯æŽ¢ç´¢ä¸­æ–­ã€\n"
-" ãã®ä»–ã®éž 0 終了コード㯠bad ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
-
-msgid " Some examples:"
-msgstr " 例:"
-
-msgid ""
-" - start a bisection with known bad revision 12, and good revision 34::"
-msgstr ""
-" - 既知㮠bad ãªãƒªãƒ“ジョン 12 㨠good ãªãƒªãƒ“ジョン 34 ã‹ã‚‰æ¤œç´¢é–‹å§‹::"
-
-msgid ""
-" hg bisect --bad 34\n"
-" hg bisect --good 12"
-msgstr ""
-" hg bisect --bad 34\n"
-" hg bisect --good 12"
-
-msgid ""
-" - advance the current bisection by marking current revision as good "
-"or\n"
-" bad::"
-msgstr " - ç¾ãƒªãƒ“ジョンを good ãªã„ã— bad 化ã—ã¦æ¤œç´¢çŠ¶æ…‹ã‚’進ã‚ã‚‹::"
-
-msgid ""
-" hg bisect --good\n"
-" hg bisect --bad"
-msgstr ""
-" hg bisect --good\n"
-" hg bisect --bad"
-
-msgid ""
-" - mark the current revision, or a known revision, to be skipped (eg. "
-"if\n"
-" that revision is not usable because of another issue)::"
-msgstr ""
-" - ç¾ãƒªãƒ“ジョンãªã„ã—特定ã®ãƒªãƒ“ジョンをスキップ (例: 別ãªå•é¡Œã«ã‚ˆã‚Šã€\n"
-" 当該リビジョンã®æ¤œè¨¼ãŒã§ããªã„)::"
-
-msgid ""
-" hg bisect --skip\n"
-" hg bisect --skip 23"
-msgstr ""
-" hg bisect --skip\n"
-" hg bisect --skip 23"
-
-msgid " - forget the current bisection::"
-msgstr " - ç¾è¡Œã®æ¤œç´¢çŠ¶æ…‹ã‚’クリア::"
-
-msgid " hg bisect --reset"
-msgstr " hg bisect --reset"
-
-msgid ""
-" - use 'make && make tests' to automatically find the first broken\n"
-" revision::"
-msgstr ""
-" - 最åˆã®å•é¡Œãƒªãƒ“ジョン探索ã®è‡ªå‹•åŒ–ã« 'make && make tests' を利用::"
-
-msgid ""
-" hg bisect --reset\n"
-" hg bisect --bad 34\n"
-" hg bisect --good 12\n"
-" hg bisect --command 'make && make tests'"
-msgstr ""
-" hg bisect --reset\n"
-" hg bisect --bad 34\n"
-" hg bisect --good 12\n"
-" hg bisect --command 'make && make tests'"
-
-msgid ""
-" - see all changesets whose states are already known in the current\n"
-" bisection::"
-msgstr " - ç¾åœ¨ã®æ¤œç´¢ã«ãŠã„ã¦ã€ 状態ã®åˆ¤æ˜Žã—ã¦ã„るリビジョン全ã¦ã‚’表示::"
-
-msgid " hg log -r \"bisect(pruned)\""
-msgstr " hg log -r \"bisect(pruned)\""
-
-msgid ""
-" - see the changeset currently being bisected (especially useful\n"
-" if running with -U/--noupdate)::"
-msgstr ""
-" - ç¾åœ¨ã®æ¤œè¨¼å¯¾è±¡ãƒªãƒ“ジョンを表示 (特㫠-U/--noupdate 併用時ã«æœ‰ç”¨)::"
-
-msgid " hg log -r \"bisect(current)\""
-msgstr " hg log -r \"bisect(current)\""
-
-msgid " - see all changesets that took part in the current bisection::"
-msgstr " - ç¾åœ¨ã®æ¤œç´¢å¯¾è±¡ã«ãªã£ã¦ã„るリビジョン全ã¦ã‚’表示::"
-
-msgid " hg log -r \"bisect(range)\""
-msgstr " hg log -r \"bisect(range)\""
-
-msgid " - with the graphlog extension, you can even get a nice graph::"
-msgstr " - graphlog エクステンション有効時ã¯ã€å±¥æ­´ãƒ„リー表示もå¯èƒ½::"
-
-msgid " hg log --graph -r \"bisect(range)\""
-msgstr " hg log --graph -r \"bisect(range)\""
-
-msgid " See :hg:`help revsets` for more about the `bisect()` keyword."
-msgstr ""
-" `bisect()` キーワードã®è©³ç´°ã¯ :hg:`help revsets` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" コマンドã®çµ‚了コードã¯ãƒªãƒ“ジョンã«å¯¾ã™ã‚‹ bad ãªã„ã— good ã®ãƒžãƒ¼ã‚¯\n"
+" 付ã‘ã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ 終了コード 0 㯠good〠125 ã¯ãƒªãƒ“ジョンã®ã‚¹ã‚­ãƒƒãƒ—\n"
+" 127(コマンドãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆ)ã¯åˆ†å‰²æŽ¢ç´¢ä¸­æ–­ã€ ãれ以外㮠0 より\n"
+" 大ãã„終了コード㯠bad ã®ãƒžãƒ¼ã‚¯ä»˜ã‘ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
msgid "The first good revision is:\n"
msgstr "最åˆã® good ãªãƒªãƒ“ジョンã¯:\n"
@@ -10128,7 +7455,7 @@ msgid ""
msgstr ""
"ã“ã®ãƒªãƒ“ジョンã®ç¥–å…ˆã«å¯¾ã™ã‚‹ç¢ºèªã¯å®Œå…¨ã§ã¯ã‚ã‚Šã¾ã›ã‚“。\n"
"共通ã®ç¥–å…ˆ %s ã‹ã‚‰æ¤œç´¢ã‚’継続ã™ã‚‹å ´åˆã€\n"
-"--extend 付ã㧠\"hg bisect\" を実行ã—ã¦ãã ã•ã„。\n"
+"--extend 付ã㧠:hg:`bisect` を実行ã—ã¦ãã ã•ã„。\n"
msgid "Due to skipped revisions, the first good revision could be any of:\n"
msgstr "検証çœç•¥ã«ã‚ˆã‚Šã€ 最åˆã® good ãªãƒªãƒ“ジョンã¯ä»¥ä¸‹ã‹ã‚‰é¸æŠžå¯èƒ½ã§ã™:\n"
@@ -10137,10 +7464,10 @@ msgid "Due to skipped revisions, the first bad revision could be any of:\n"
msgstr "検証çœç•¥ã«ã‚ˆã‚Šã€ 最åˆã® bad ãªãƒªãƒ“ジョンã¯ä»¥ä¸‹ã‹ã‚‰é¸æŠžå¯èƒ½ã§ã™:\n"
msgid "cannot bisect (no known good revisions)"
-msgstr "分割探索ã§ãã¾ã›ã‚“(good リビジョンãŒæœªæŒ‡å®šã§ã™)"
+msgstr "分割探索出æ¥ã¾ã›ã‚“(good リビジョンãŒæœªæŒ‡å®šã§ã™)"
msgid "cannot bisect (no known bad revisions)"
-msgstr "分割探索ã§ãã¾ã›ã‚“(bad リビジョンãŒæœªæŒ‡å®šã§ã™)"
+msgstr "分割探索出æ¥ã¾ã›ã‚“(bad リビジョンãŒæœªæŒ‡å®šã§ã™)"
msgid "(use of 'hg bisect <cmd>' is deprecated)\n"
msgstr "('hg bisect <cmd>' å½¢å¼ã®å®Ÿè¡Œã¯æŽ¨å¥¨ã•ã‚Œã¾ã›ã‚“)\n"
@@ -10148,12 +7475,6 @@ msgstr "('hg bisect <cmd>' å½¢å¼ã®å®Ÿè¡Œã¯æŽ¨å¥¨ã•ã‚Œã¾ã›ã‚“)\n"
msgid "incompatible arguments"
msgstr "ä¸æ­£ãªå¼•æ•°ã®çµ„ã¿åˆã‚ã›ã§ã™"
-msgid "current bisect revision is unknown - start a new bisect to fix"
-msgstr "ç¾åœ¨ã®æ¤œè¨¼å¯¾è±¡ãƒªãƒ“ジョンãŒä¸åœ¨ã§ã™ - 探索を最åˆã‹ã‚‰ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„"
-
-msgid "current bisect revision is a merge"
-msgstr "ç¾åœ¨ã®æ¤œè¨¼å¯¾è±¡ãƒªãƒ“ジョンã¯ãƒžãƒ¼ã‚¸å®Ÿæ–½ãƒªãƒ“ジョンã§ã™"
-
#, python-format
msgid "failed to execute %s"
msgstr "%s ã®å®Ÿè¡Œã«å¤±æ•—"
@@ -10163,7 +7484,7 @@ msgid "%s killed"
msgstr "%s プロセスã¯ä¸­æ–­ã•ã‚Œã¾ã—ãŸ"
#, python-format
-msgid "changeset %d:%s: %s\n"
+msgid "Changeset %d:%s: %s\n"
msgstr "リビジョン %d:%s: %s\n"
#, python-format
@@ -10186,8 +7507,8 @@ msgstr "指定ブックマークã®å‰Šé™¤"
msgid "rename a given bookmark"
msgstr "指定ブックマークã®æ”¹å"
-msgid "mark a bookmark inactive"
-msgstr "ブックマークをéžã‚¢ã‚¯ãƒ†ã‚£ãƒ–化"
+msgid "do not mark a new bookmark active"
+msgstr "æ–°è¦ãƒ–ックマークをアクティブ化ã—ãªã„"
msgid "hg bookmarks [-f] [-d] [-i] [-m NAME] [-r REV] [NAME]"
msgstr "hg bookmarks [-f] [-d] [-i] [-m NAME] [-r REV] [NAME]"
@@ -10196,10 +7517,10 @@ msgid "track a line of development with movable markers"
msgstr "移動å¯èƒ½ãªãƒžãƒ¼ã‚­ãƒ³ã‚°ã«ã‚ˆã‚‹å±¥æ­´é€²å±•ã®è¿½è·¡"
msgid ""
-" Bookmarks are pointers to certain commits that move when committing.\n"
-" Bookmarks are local. They can be renamed, copied and deleted. It is\n"
-" possible to use :hg:`merge NAME` to merge from a given bookmark, and\n"
-" :hg:`update NAME` to update to a given bookmark."
+" 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"
@@ -10217,39 +7538,25 @@ msgstr ""
" :hg:`bookmark NAME` を実行ã™ã‚‹ã“ã¨ã§ã€ 作業領域ã®è¦ªãƒªãƒ“ジョンã«ã€\n"
" 指定ã•ã‚ŒãŸåå‰ã§ã€ ブックマークãŒè¨­å®šã•ã‚Œã¾ã™ã€‚\n"
" -r を使用ã—ã¦ã€ 対象リビジョンを指定ã—ãŸå ´åˆ\n"
-" (対象指定自体ã«ã‚‚〠ブックマークを使用å¯èƒ½)\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."
+" the bookmarks extension must be enabled.\n"
+" "
msgstr ""
" ブックマークã¯ã€ リãƒã‚¸ãƒˆãƒªé–“ã§ã®å–ã‚Šè¾¼ã¿ã‚„å映ãŒå¯èƒ½ã§ã™\n"
" (:hg:`help push` ãŠã‚ˆã³ :hg:`help pull` å‚ç…§)。\n"
" 但ã—〠連æºã™ã‚‹ãƒªãƒã‚¸ãƒˆãƒªã®ä¸¡æ–¹ãŒã€\n"
" ブックマーク機能ã«å¯¾å¿œã—ã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™\n"
" 1.8 版よりå‰ã® Mercurial ã®å ´åˆã€ \n"
-" bookmarks エクステンションを有効ã«ã—ã¦ãã ã•ã„。"
-
-msgid ""
-" With -i/--inactive, the new bookmark will not be made the active\n"
-" bookmark. If -r/--rev is given, the new bookmark will not be made\n"
-" active even if -i/--inactive is not given. If no NAME is given, the\n"
-" current active bookmark will be marked inactive.\n"
-" "
-msgstr ""
-" -i/--inactive 指定ã®ã‚ã‚‹å ´åˆã¯ã€ 作æˆã•ã‚ŒãŸæ–°è¦ãƒ–ックマークã¯ã€\n"
-" アクティブã«ã¯ãªã‚Šã¾ã›ã‚“。 -r/--rev 指定ã®ã‚ã‚‹å ´åˆã¯ã€ -i/--inactive\n"
-" 指定ãŒç„¡ãã¦ã‚‚〠新è¦ãƒ–ックマークã¯ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã«ãªã‚Šã¾ã›ã‚“。\n"
-" ブックマークå指定ãŒç„¡ã„å ´åˆã€ ç¾ãƒ–ックマークãŒéžã‚¢ã‚¯ãƒ†ã‚£ãƒ–化ã•ã‚Œã¾ã™ã€‚\n"
+" bookmarks エクステンションを有効ã«ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。\n"
" "
-msgid "bookmark name required"
-msgstr "ブックマークåã‚’è¦æ±‚ã—ã¾ã—ãŸ"
-
#, python-format
msgid "bookmark '%s' does not exist"
msgstr "ブックマーク '%s' ã¯å­˜åœ¨ã—ã¾ã›ã‚“"
@@ -10261,6 +7568,9 @@ msgstr "ブックマーク '%s' ã¯å­˜åœ¨ã—ã¾ã™(強制実行ã™ã‚‹å ´åˆã¯ -
msgid "new bookmark name required"
msgstr "æ–°ã—ã„ブックマークåã‚’è¦æ±‚ã—ã¾ã—ãŸ"
+msgid "bookmark name required"
+msgstr "ブックマークåã‚’è¦æ±‚ã—ã¾ã—ãŸ"
+
msgid "bookmark name cannot contain newlines"
msgstr "ブックマークåã«æ”¹è¡Œã‚’å«ã‚ã¾ã›ã‚“"
@@ -10286,20 +7596,6 @@ msgid "set or show the current branch name"
msgstr "ブランãƒåã®è¨­å®šã€ ãªã„ã—ç¾ãƒ–ランãƒåã®è¡¨ç¤º"
msgid ""
-" .. note::\n"
-" Branch names are permanent and global. Use :hg:`bookmark` to create "
-"a\n"
-" light-weight bookmark instead. See :hg:`help glossary` for more\n"
-" information about named branches and bookmarks."
-msgstr ""
-" .. note::\n"
-" ブランãƒåã¯æ°¸ç¶šçš„ã§ä¸”ã¤å…±æœ‰ã•ã‚Œã¾ã™ã€‚\n"
-" 軽é‡ãªåå‰ä»˜ã‘ãŒå¿…è¦ãªã‚‰ã€\n"
-" :hg:`bookmark` ã§ãƒ–ックマークを作æˆã—ã¦ãã ã•ã„。\n"
-" åå‰ä»˜ãブランãƒã¨ã€ ブックマークã®è©³ç´°ã«é–¢ã—ã¦ã¯ã€\n"
-" :hg:`help glossary` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-
-msgid ""
" With no argument, show the current branch name. With one argument,\n"
" set the working directory branch name (the branch will not exist\n"
" in the repository until the next commit). Standard practice\n"
@@ -10334,6 +7630,19 @@ msgstr ""
" 使用ã—ã¦ãã ã•ã„。 ç¾ãƒ–ランãƒã‚’閉鎖ã™ã‚‹å ´åˆã¯\n"
" :hg:`commit --close-branch` を使用ã—ã¦ãã ã•ã„。"
+msgid " .. note::"
+msgstr " .. note::"
+
+msgid ""
+" Branch names are permanent. Use :hg:`bookmark` to create a\n"
+" light-weight bookmark instead. See :hg:`help glossary` for more\n"
+" information about named branches and bookmarks."
+msgstr ""
+" ブランãƒåã¯æ°¸ç¶šçš„ãªã‚‚ã®ã§ã™ã€‚軽é‡ãªåå‰ä»˜ã‘ã‚’ã™ã‚‹å ´åˆã¯ã€\n"
+" :hg:`bookmark` ã§ãƒ–ックマークを作æˆã—ã¦ãã ã•ã„。\n"
+" åå‰ä»˜ãブランãƒã¨ãƒ–ックマークã®è©³ç´°ã«é–¢ã—ã¦ã¯ã€\n"
+" :hg:`help glossary` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+
#, python-format
msgid "reset working directory to branch %s\n"
msgstr "作業領域ã®ãƒ–ランãƒã‚’ %s ã«ãƒªã‚»ãƒƒãƒˆ\n"
@@ -10349,14 +7658,11 @@ msgstr "作業領域を既存ブランãƒã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã«ã¯ 'hg update' ã‚
msgid "marked working directory as branch %s\n"
msgstr "作業領域をブランム%s ã«è¨­å®š\n"
-msgid "(branches are permanent and global, did you want a bookmark?)\n"
-msgstr "(ブランãƒã¯æ°¸ç¶šçš„且ã¤å…±æœ‰ã•ã‚Œã¾ã™ã€‚ブックマークã¯ã„ã‹ãŒã§ã™ã‹ï¼Ÿ)\n"
-
msgid "show only branches that have unmerged heads"
msgstr "未マージãªãƒ˜ãƒƒãƒ‰ã‚’æŒã¤ãƒ–ランãƒã®ã¿ã‚’表示"
msgid "show normal and closed branches"
-msgstr "閉鎖済ã¿ãƒ˜ãƒƒãƒ‰ã‚‚表示"
+msgstr "閉鎖ã—ãŸãƒ˜ãƒƒãƒ‰ã‚‚表示"
msgid "[-ac]"
msgstr "[-ac]"
@@ -10369,9 +7675,9 @@ msgid ""
" inactive. If -c/--closed is specified, also list branches which have\n"
" been marked closed (see :hg:`commit --close-branch`)."
msgstr ""
-" リãƒã‚¸ãƒˆãƒªä¸­ã®åå‰ä»˜ãブランãƒã‚’〠éžã‚¢ã‚¯ãƒ†ã‚£ãƒ– (inactive)\n"
-" ã‹å¦ã‹ã¨å…±ã«ä¸€è¦§è¡¨ç¤ºã—ã¾ã™ã€‚ -c/--closed 指定時ã«ã¯ã€\n"
-" 閉鎖済ã¿ã®ãƒ–ランム(:hg:`commit --close-branch` å‚ç…§) も表示ã•ã‚Œã¾ã™ã€‚"
+" リãƒã‚¸ãƒˆãƒªä¸­ã®åå‰ä»˜ãブランãƒã‚’〠éžæ´»æ€§(inactive)ã‹å¦ã‹ã¨å…±ã«\n"
+" 一覧表示ã—ã¾ã™ã€‚ -c/--closed 指定時ã«ã¯ã€ 閉鎖済ã¿ã®ãƒ–ランãƒ\n"
+" (:hg:`commit --close-branch` å‚ç…§)も表示ã•ã‚Œã¾ã™ã€‚"
msgid ""
" If -a/--active is specified, only show active branches. A branch\n"
@@ -10426,8 +7732,8 @@ msgid ""
" Generate a compressed changegroup file collecting changesets not\n"
" known to be in another repository."
msgstr ""
-" 連æºå¯¾è±¡ãƒªãƒã‚¸ãƒˆãƒªã«å­˜åœ¨ã—ãªã„リビジョンã®æƒ…報をã¾ã¨ã‚ã¦ã€\n"
-" 圧縮形å¼ã®ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’生æˆã—ã¾ã™ã€‚"
+" 連æºå¯¾è±¡ãƒªãƒã‚¸ãƒˆãƒªã«å­˜åœ¨ã—ãªã„リビジョンã®æƒ…報をã¾ã¨ã‚ã¦ã€ 圧縮\n"
+" 付ããƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’生æˆã—ã¾ã™ã€‚"
msgid ""
" If you omit the destination repository, then hg assumes the\n"
@@ -10435,18 +7741,18 @@ msgid ""
" parameters. To create a bundle containing all changesets, use\n"
" -a/--all (or --base null)."
msgstr ""
-" 連æºå¯¾è±¡ãƒªãƒã‚¸ãƒˆãƒªãŒç„¡æŒ‡å®šã®å ´åˆã€ --base 指定ã•ã‚ŒãŸãƒªãƒ“ジョンãŒã€\n"
-" 連æºå¯¾è±¡ãƒªãƒã‚¸ãƒˆãƒªå´ã«å­˜åœ¨ã™ã‚‹ã‚‚ã®ã¨ä»®å®šã—ã¾ã™ã€‚\n"
-" -a/--all (ãªã„ã— --base null) 指定ã«ã‚ˆã‚Šã€\n"
-" 全リビジョンをå«ã‚€ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ãŒç”Ÿæˆã§ãã¾ã™ã€‚"
+" 連æºå¯¾è±¡ãƒªãƒã‚¸ãƒˆãƒªãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ 1ã¤ä»¥ä¸Šã® --base ã§æŒ‡å®š\n"
+" ã•ã‚ŒãŸãƒªãƒ“ジョンをæŒã¤ãƒªãƒã‚¸ãƒˆãƒªãŒæƒ³å®šã•ã‚Œã¾ã™ã€‚ å…¨ã¦ã®ãƒªãƒ“ジョンを\n"
+" å«ã‚€ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’生æˆã™ã‚‹ã«ã¯ã€ -a/--all (ãªã„ã— --base null)ã‚’\n"
+" 指定ã—ã¾ã™ã€‚"
msgid ""
" You can change compression method with the -t/--type option.\n"
" The available compression methods are: none, bzip2, and\n"
" gzip (by default, bundles are compressed using bzip2)."
msgstr ""
-" 圧縮形å¼ã¯ -t/--type ã§æŒ‡å®šå¯èƒ½ã§ã™ã€‚ 利用å¯èƒ½ãªåœ§ç¸®å½¢å¼ã¯\n"
-" none (無圧縮), bzip2, gzip ã§ã™ (無指定時㯠bzip2 圧縮)。"
+" 圧縮方å¼ã‚’変更ã™ã‚‹å ´åˆã¯ -t/--type を使用ã—ã¾ã™ã€‚ 利用å¯èƒ½ãªåœ§ç¸®\n"
+" å½¢å¼ã¯ none(無圧縮), bzip2, gzip ã§ã™(無指定時㯠bzip2 圧縮)。"
msgid ""
" The bundle file can then be transferred using conventional means\n"
@@ -10454,17 +7760,17 @@ msgid ""
" command. This is useful when direct push and pull are not\n"
" available or when exporting an entire repository is undesirable."
msgstr ""
-" ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã¯ :hg:`unbundle` ãªã„ã— :hg:`pull` ã«ã‚ˆã£ã¦ã€\n"
-" 他リãƒã‚¸ãƒˆãƒªã«å–ã‚Šè¾¼ã‚ã‚‹ã®ã§ã€ 変更内容を任æ„ã®æ–¹æ³•ã§ä¼æ’­ã§ãã¾ã™ã€‚\n"
-" ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã«ã‚ˆã‚‹ä¼æ’­ã¯ã€ :hg:`push`/:hg:`pull` ã§ã®ç›´æŽ¥è»¢é€ã‚„ã€\n"
-" リãƒã‚¸ãƒˆãƒªå…¨ä½“ã®å…¬é–‹ãŒã€ ã§ããªã„ï¼æœ›ã¾ã—ãç„¡ã„å ´åˆã«æœ‰ç”¨ã§ã™ã€‚"
+" ä»»æ„ã®æ–¹æ³•ã§è»¢é€ã—ãŸãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ ä»–ã®ãƒªãƒã‚¸ãƒˆãƒªä¸Šã§\n"
+" 'hg unbundle' ãªã„ã— 'hg pull' ã«ã‚ˆã‚Šé©ç”¨å¯èƒ½ã§ã™ã€‚ ãƒãƒ³ãƒ‰ãƒ«ã«ã‚ˆã‚‹\n"
+" ä¼æ’­ã¯ã€ 'hg push/pull' ã«ã‚ˆã‚‹ç›´æŽ¥è»¢é€ãŒã§ããªã„å ´åˆã‚„〠リãƒã‚¸ãƒˆãƒª\n"
+" 全体ã®å…¬é–‹ãŒæœ›ã¾ã—ãç„¡ã„å ´åˆã«æœ‰ç”¨ã§ã™ã€‚"
msgid ""
" Applying bundles preserves all changeset contents including\n"
" permissions, copy/rename information, and revision history."
msgstr ""
-" ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã«ã‚ˆã‚‹å–ã‚Šè¾¼ã¿ã§ã¯ã€ 権é™è¨­å®šã€ 複製ï¼æ”¹åã€\n"
-" 変更履歴等をå«ã‚€å…¨ã¦ã®æ›´æ–°å†…容ãŒå–ã‚Šè¾¼ã¾ã‚Œã¾ã™ã€‚"
+" ãƒãƒ³ãƒ‰ãƒ«ã®é©ç”¨ã§ã¯ã€ 権é™è¨­å®šã€ 複製ï¼æ”¹å〠変更履歴ã¨ã„ã£ãŸæƒ…報を\n"
+" å«ã‚€å…¨ã¦ã®æ›´æ–°å†…容ãŒå–ã‚Šè¾¼ã¾ã‚Œã¾ã™ã€‚"
msgid ""
" Returns 0 on success, 1 if no changes found.\n"
@@ -10473,12 +7779,12 @@ msgstr ""
" æˆåŠŸæ™‚ã®ã‚³ãƒžãƒ³ãƒ‰ã®çµ‚了値㯠0〠変更ãŒæ¤œå‡ºã§ããªã„å ´åˆã¯ 1 ã§ã™ã€‚\n"
" "
-msgid "unknown bundle type specified with --type"
-msgstr "--type ã«æœªçŸ¥ã®ãƒãƒ³ãƒ‰ãƒ«ç¨®åˆ¥ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸ"
-
msgid "--base is incompatible with specifying a destination"
msgstr "--base ã¨é€£æºå¯¾è±¡ã¯åŒæ™‚ã«ã¯æŒ‡å®šã§ãã¾ã›ã‚“"
+msgid "unknown bundle type specified with --type"
+msgstr "--type ã«æœªçŸ¥ã®ãƒãƒ³ãƒ‰ãƒ«ç¨®åˆ¥ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸ"
+
msgid "print output to file with formatted name"
msgstr "ファイル内容ã®ä¿å­˜å…ˆ"
@@ -10508,16 +7814,16 @@ msgid ""
" given using a format string. The formatting rules are the same as\n"
" for the export command, with the following additions:"
msgstr ""
-" 出力先指定ãŒã‚ã‚‹å ´åˆã€ 出力ã¯ãƒ•ã‚¡ã‚¤ãƒ«ã«ä¿å­˜ã•ã‚Œã¾ã™ã€‚\n"
-" 出力先指定ã§ã¯ã€ :hg:`export` ã§æŒ‡å®šå¯èƒ½ãªã‚‚ã®ã«åŠ ãˆã¦ã€\n"
-" 以下ã®ç½®æ›æŒ‡å®šãŒåˆ©ç”¨å¯èƒ½ã§ã™:"
+" 出力先指定(ç½®æ›æŒ‡å®šå¯èƒ½)ãŒã‚ã‚‹å ´åˆã€ 出力ã¯ãƒ•ã‚¡ã‚¤ãƒ«ã«ä¿å­˜ã•ã‚Œã¾ã™ã€‚\n"
+" ç½®æ›æŒ‡å®šã«ã¯ 'hg export' ã§æŒ‡å®šå¯èƒ½ãªã‚‚ã®ã«åŠ ãˆã¦ä»¥ä¸‹ã®ã‚‚ã®ã‚’指定\n"
+" ã§ãã¾ã™:"
msgid ""
" :``%s``: basename of file being printed\n"
" :``%d``: dirname of file being printed, or '.' if in repository root\n"
" :``%p``: root-relative path name of file being printed"
msgstr ""
-" :``%s``: 対象ファイルパスã®æœ«å°¾è¦ç´ \n"
+" :``%s``: 対象ファイルã®ãƒ™ãƒ¼ã‚¹å\n"
" :``%d``: 対象ファイルã®æ ¼ç´ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€ ãªã„ã— '.'(ルートã®å ´åˆ)\n"
" :``%p``: 対象ファイルã®ãƒªãƒã‚¸ãƒˆãƒªãƒ«ãƒ¼ãƒˆã‹ã‚‰ã®ç›¸å¯¾ãƒ‘ス\n"
" "
@@ -10547,162 +7853,124 @@ msgid ""
" If no destination directory name is specified, it defaults to the\n"
" basename of the source."
msgstr ""
-" 複製先ディレクトリ指定ãŒç„¡ã„å ´åˆã€ 複製元パスåã®æœ«å°¾è¦ç´ ã‚’使用ã—ã¾ã™ã€‚"
+" 複製先ディレクトリãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ 複製元ã®ãƒ™ãƒ¼ã‚¹å(パスåã®\n"
+" 末尾è¦ç´ )を使用ã—ã¾ã™ã€‚"
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:`pull` 実施ã«å‚™ãˆã¦ã€ 複製先リãƒã‚¸ãƒˆãƒªã® ``.hg/hgrc``\n"
" ファイルã«ã¯ã€ 複製元リãƒã‚¸ãƒˆãƒªä½ç½®ãŒ default å義ã§è¨˜éŒ²ã•ã‚Œã¾ã™ã€‚"
+msgid " See :hg:`help urls` for valid source format details."
+msgstr " リãƒã‚¸ãƒˆãƒªä½ç½®æŒ‡å®šã®è©³ç´°ã¯ã€ :hg:`help urls` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+
msgid ""
-" Only local paths and ``ssh://`` URLs are supported as\n"
-" destinations. For ``ssh://`` destinations, no working directory or\n"
-" ``.hg/hgrc`` will be created on the remote side."
-msgstr ""
-" 複製先ã«æŒ‡å®šå¯èƒ½ãªã®ã¯ã€ ローカルファイルシステム上ã®ãƒ‘スã¨ã€\n"
-" ``ssh://`` å½¢å¼ URL ã®ã¿ã§ã™ã€‚ ``ssh://`` å½¢å¼ URL を指定ã—ãŸå ´åˆã€\n"
-" 作業領域ã®æ›´æ–°ã‚„〠``.hg/hgrc`` ã®ç”Ÿæˆã¯è¡Œã‚ã‚Œã¾ã›ã‚“。"
+" 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"
+" Please see :hg:`help urls` for important details about ``ssh://`` URLs."
+msgstr ""
+" 複製先ã¨ã—㦠``ssh://`` URL å½¢å¼ã‚’指定ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ãŒã€\n"
+" é éš”ホスト上ã§ã¯ã€ ``.hg/hgrc`` ã®ä½œæˆã‚‚ã€\n"
+" 作業領域ã®æ›´æ–°ã‚‚è¡Œã‚ã‚Œã¾ã›ã‚“。\n"
+" ``ssh://`` URL å½¢å¼ã®è©³ç´°ã¯ã€ :hg:`help urls` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
-" To pull only a subset of changesets, specify one or more revisions\n"
-" identifiers with -r/--rev or branches with -b/--branch. The\n"
-" resulting clone will contain only the specified changesets and\n"
-" their ancestors. These options (or 'clone src#rev dest') imply\n"
-" --pull, even for local source repositories. Note that specifying a\n"
-" tag will include the tagged changeset but not the changeset\n"
-" containing the tag."
+" A set of changesets (tags, or branch names) to pull may be specified\n"
+" by listing each changeset (tag, or branch name) with -r/--rev.\n"
+" If -r/--rev is used, the cloned repository will contain only a subset\n"
+" of the changesets of the source repository. Only the set of changesets\n"
+" defined by all -r/--rev options (including all their ancestors)\n"
+" will be pulled into the destination repository.\n"
+" No subsequent changesets (including subsequent tags) will be present\n"
+" in the destination."
msgstr ""
-" -r/--rev ã§ã®ãƒªãƒ“ジョン指定や〠-b/--branch ã§ã®ãƒ–ランãƒæŒ‡å®šã«ã‚ˆã‚Šã€\n"
-" 一部ã®ãƒªãƒ“ジョンã®ã¿ã‚’å–り込むã“ã¨ãŒã§ãã¾ã™ã€‚ 複製先ã®ãƒªãƒã‚¸ãƒˆãƒªã¯ã€\n"
-" 指定リビジョンã¨ã€ ãã®ç¥–å…ˆã®ã¿ã‚’ä¿æŒã—ã¾ã™ã€‚ ã“れらã®ã‚ªãƒ—ション指定\n"
-" (ã‚ã‚‹ã„㯠:hg:`clone src#rev dest` å½¢å¼ã§ã®è¤‡è£½) ãŒã‚ã‚‹å ´åˆã€\n"
-" åŒä¸€ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ä¸Šã®ãƒªãƒã‚¸ãƒˆãƒªã®è¤‡è£½ã§ã‚‚〠--pull 指定時ã¨ã€\n"
-" åŒæ§˜ã«æŒ¯èˆžã„ã¾ã™ã€‚ ã‚¿ã‚°åã§ãƒªãƒ“ジョンを指定ã—ãŸå ´åˆã€\n"
-" タグ「対処ã€ãƒªãƒ“ジョンã¯ã€ 複製先ã«å–ã‚Šè¾¼ã¾ã‚Œã¾ã™ãŒã€\n"
-" タグ「実施ã€ãƒªãƒ“ジョンã¯ã€ 複製先ã«å–ã‚Šè¾¼ã¾ã‚Œã¾ã›ã‚“。"
+" 複製先ã«å–り込む一連ã®ãƒªãƒ“ジョンã¯ã€ -r/--rev を使用ã—ã¦ãƒªãƒ“ジョン\n"
+" (ã‚¿ã‚°åやブランãƒåã‚‚å¯)を列挙ã™ã‚‹ã“ã¨ã§æŒ‡å®šã—ã¾ã™ã€‚\n"
+" -r/--rev ã«ã‚ˆã‚‹ãƒªãƒ“ジョン指定複製を行ãªã†å ´åˆã€ 複製先リãƒã‚¸ãƒˆãƒªã¯\n"
+" 複製元リãƒã‚¸ãƒˆãƒªã®æŒã¤ãƒªãƒ“ジョンã®ä¸€éƒ¨ã®ã¿ãŒå–ã‚Šè¾¼ã¾ã‚Œã¾ã™ã€‚\n"
+" -r/--rev ã«ã‚ˆã£ã¦æŒ‡å®šã•ã‚ŒãŸãƒªãƒ“ジョン(ãŠã‚ˆã³ãã®ç¥–å…ˆã¨ãªã‚‹ãƒªãƒ“ジョン)\n"
+" ãŒå–ã‚Šè¾¼ã¿å¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚\n"
+" 複製先リãƒã‚¸ãƒˆãƒªã«ã¯ã€ 指定リビジョン以後ã®ãƒªãƒ“ジョンã¯å–ã‚Šè¾¼ã¾ã‚Œã¾ã›ã‚“\n"
+" (後続ã®ã‚¿ã‚°ä»˜ã‘リビジョンも除外ã•ã‚Œã¾ã™)。"
msgid ""
-" To check out a particular version, use -u/--update, or\n"
-" -U/--noupdate to create a clone with no working directory."
+" Using -r/--rev (or 'clone src#rev dest') implies --pull, even for\n"
+" local source repositories."
msgstr ""
-" 特定ã®ãƒªãƒ“ジョンã§ã€ 作業領域を更新ã™ã‚‹å ´åˆã¯ -u/--update ã‚’ã€\n"
-" 作業領域ã«ãƒ‡ãƒ¼ã‚¿ã‚’æŒã¡ãŸããªã„å ´åˆã¯ -U/--noupdate を指定ã—ã¾ã™ã€‚"
+" -r/--rev 指定付ã(ãªã„ã—㯠'hg clone 複製元#リビジョン' å½¢å¼)\n"
+" 複製ã®å ´åˆã€ åŒä¸€ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ä¸Šã§ã®è¤‡è£½ã§ã‚ã£ã¦ã‚‚ã€\n"
+" 暗黙的㫠--pull 指定を伴ã„ã¾ã™ã€‚"
msgid ""
-" For efficiency, hardlinks are used for cloning whenever the\n"
-" source and destination are on the same filesystem (note this\n"
-" applies only to the repository data, not to the working\n"
-" directory). Some filesystems, such as AFS, implement hardlinking\n"
-" incorrectly, but do not report errors. In these cases, use the\n"
-" --pull option to avoid hardlinking."
+" For efficiency, hardlinks are used for cloning whenever the source\n"
+" and destination are on the same filesystem (note this applies only\n"
+" to the repository data, not to the working directory). Some\n"
+" filesystems, such as AFS, implement hardlinking incorrectly, but\n"
+" do not report errors. In these cases, use the --pull option to\n"
+" avoid hardlinking."
msgstr ""
-" 複製元ï¼è¤‡è£½å…ˆãŒã€ åŒä¸€ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ä¸Šã«ã‚ã‚‹å ´åˆã€\n"
-" 資æºåŠ¹çŽ‡ã®ç‚¹ã‹ã‚‰ã€ (リãƒã‚¸ãƒˆãƒªã®å†…部管ç†ãƒ‡ãƒ¼ã‚¿ã«å¯¾ã—ã¦ã®ã¿)\n"
-" ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯å®Ÿè£…ãŒä¸é©åˆ‡ãªã€ \n"
-" ファイルシステム (例: AFS) ã¯ã€ ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ä½¿ç”¨æ™‚ã«ã€\n"
-" エラー通知ãŒã‚ã‚Šã¾ã›ã‚“。 ã“ã®ã‚ˆã†ãªå ´åˆã«ã¯ --pull\n"
-" を指定ã™ã‚‹ã“ã¨ã§ã€ ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ä½¿ç”¨ã‚’抑止ã—ã¦ãã ã•ã„。"
+" 複製元ï¼è¤‡è£½å…ˆãŒåŒä¸€ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ä¸Šã«ã‚ã‚‹å ´åˆã€ 資æºåŠ¹çŽ‡ç­‰ã®\n"
+" ç†ç”±ã‹ã‚‰(リãƒã‚¸ãƒˆãƒªã®å†…部管ç†ãƒ‡ãƒ¼ã‚¿ã«å¯¾ã—ã¦ã®ã¿)ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ãŒä½¿ç”¨\n"
+" ã•ã‚Œã¾ã™ã€‚ AFS ã‚’å«ã‚€å¹¾ã¤ã‹ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã¯ã€ ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯å®Ÿè£…ãŒ\n"
+" ä¸é©åˆ‡ã§ã‚ã‚‹ã«ã‚‚é–¢ã‚らãšã€ エラー通知ãŒã‚ã‚Šã¾ã›ã‚“。 ã“ã®ã‚ˆã†ãªå ´åˆã«ã¯\n"
+" --pull を指定ã™ã‚‹ã“ã¨ã§ã€ ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã‚’抑止ã—ã¾ã™ã€‚"
msgid ""
-" In some cases, you can clone repositories and the working\n"
-" directory using full hardlinks with ::"
+" In some cases, you can clone repositories and the working directory\n"
+" using full hardlinks with ::"
msgstr ""
-" リãƒã‚¸ãƒˆãƒªã®å†…部管ç†ãƒ‡ãƒ¼ã‚¿ã¨ä½œæ¥­é ˜åŸŸä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«å…¨ã¦ã«å¯¾ã™ã‚‹ã€\n"
-" ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã«ã‚ˆã‚‹è¤‡è£½ã®ä½œæˆã«ã¯ã€ 以下ã®æ–¹æ³•ãŒä½¿ãˆã‚‹ã‹ã‚‚知れã¾ã›ã‚“::"
+" リãƒã‚¸ãƒˆãƒªã®å†…部管ç†ãƒ‡ãƒ¼ã‚¿ã¨ä½œæ¥­é ˜åŸŸä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«å…¨ã¦ã«å¯¾ã™ã‚‹ã€\n"
+" ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã«ã‚ˆã‚‹è¤‡è£½ã®ä½œæˆã«ã¯ã€ 以下ã®æ–¹æ³•ãŒä½¿ãˆã‚‹ã‹ã‚‚知れã¾ã›ã‚“::"
-msgid " $ cp -al REPO REPOCLONE"
-msgstr " $ cp -al REPO REPOCLONE"
+msgid " $ cp -al REPO REPOCLONE"
+msgstr " $ cp -al REPO REPOCLONE"
msgid ""
-" This is the fastest way to clone, but it is not always safe. The\n"
-" operation is not atomic (making sure REPO is not modified during\n"
-" the operation is up to you) and you have to make sure your\n"
-" editor breaks hardlinks (Emacs and most Linux Kernel tools do\n"
-" so). Also, this is not compatible with certain extensions that\n"
-" place their metadata under the .hg directory, such as mq."
+" This is the fastest way to clone, but it is not always safe. The\n"
+" operation is not atomic (making sure REPO is not modified during\n"
+" the operation is up to you) and you have to make sure your editor\n"
+" breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,\n"
+" this is not compatible with certain extensions that place their\n"
+" metadata under the .hg directory, such as mq."
msgstr ""
-" ã“ã®æ–¹æ³•ã¯æœ€é€Ÿã®è¤‡è£½æ–¹æ³•ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“ãŒã€ 常ã«å®‰å…¨ã¨ã¯é™ã‚Šã¾ã›ã‚“。\n"
-" æ“作ã®å˜ä¸€æ€§ã¯ä¿éšœã•ã‚Œã¾ã›ã‚“ (リãƒã‚¸ãƒˆãƒªã®è¤‡è£½ä¸­æ”¹å¤‰ã®é˜²æ­¢ã¯ã€ \n"
-" 利用者責務) ã—〠利用ã™ã‚‹ã‚¨ãƒ‡ã‚£ã‚¿ã®ãƒ•ã‚¡ã‚¤ãƒ«æ”¹å¤‰æ™‚ã®æŒ¯ã‚‹èˆžã„ãŒã€\n"
-" ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã‚’破棄ã™ã‚‹ã‚‚ã®ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ (Emacs ãŠã‚ˆã³å¤šãã®\n"
-" Linux 系ツールã¯ã€ ãã®ã‚ˆã†ã«æŒ¯èˆžã„ã¾ã™)。 ã“ã®åˆ¶ç´„ã¯ã€\n"
-" MQ エクステンションã®ã‚ˆã†ã«ã€ .hg ディレクトリé…下ã«ã€\n"
-" 管ç†æƒ…報を格ç´ã™ã‚‹ãƒ„ールã¨ã¯ç›¸å®¹ã‚Œã¾ã›ã‚“。"
+" ã“ã®æ–¹æ³•ã¯æœ€é€Ÿã®è¤‡è£½æ–¹æ³•ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“ãŒã€ 常ã«å®‰å…¨ã¨ã¯é™ã‚Šã¾ã›ã‚“。\n"
+" æ“作ã®å˜ä¸€æ€§ã¯ä¿éšœã•ã‚Œã¾ã›ã‚“(リãƒã‚¸ãƒˆãƒªã®è¤‡è£½ä¸­æ”¹å¤‰ã®é˜²æ­¢ã¯åˆ©ç”¨è€…\n"
+" 責務)ã—〠利用ã™ã‚‹ã‚¨ãƒ‡ã‚£ã‚¿ã®ãƒ•ã‚¡ã‚¤ãƒ«æ”¹å¤‰æ™‚ã®æŒ¯ã‚‹èˆžã„ãŒã€ ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯\n"
+" を破棄ã™ã‚‹ã‚‚ã®ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™(Emacs ãŠã‚ˆã³å¤šãã® Linux ç³»\n"
+" ツールã¯ãã®ã‚ˆã†ã«æŒ¯èˆžã„ã¾ã™)。 ã“ã®åˆ¶ç´„㯠.hg ディレクトリé…下ã«\n"
+" メタデータをé…ç½®ã™ã‚‹ã€ MQ ãªã©ã®ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ã¨ã¯ç›¸å®¹ã‚Œã¾ã›ã‚“。"
msgid ""
-" Mercurial will update the working directory to the first applicable\n"
-" revision from this list:"
+" Mercurial will update the working directory to the first applicable\n"
+" revision from this list:"
msgstr ""
-" Mercurial ã¯ã€ 以下ã®ä¸€è¦§ä¸­ã§æœ€åˆã«åˆ©ç”¨å¯èƒ½ãªãƒªãƒ“ジョンを用ã„ã¦ã€\n"
-" 作業領域を更新ã—ã¾ã™:"
+" Mercurial ã¯ã€ 以下ã®ä¸€è¦§ä¸­ã§æœ€åˆã«åˆ©ç”¨å¯èƒ½ãªãƒªãƒ“ジョンを用ã„ã¦\n"
+" 作業領域を更新ã—ã¾ã™:"
msgid ""
-" a) null if -U or the source repository has no changesets\n"
-" b) if -u . and the source repository is local, the first parent of\n"
-" the source repository's working directory\n"
-" c) the changeset specified with -u (if a branch name, this means the\n"
-" latest head of that branch)\n"
-" d) the changeset specified with -r\n"
-" e) the tipmost head specified with -b\n"
-" f) the tipmost head specified with the url#branch source syntax\n"
-" g) the tipmost head of the default branch\n"
-" h) tip"
+" a) null if -U or the source repository has no changesets\n"
+" b) if -u . and the source repository is local, the first parent of\n"
+" the source repository's working directory\n"
+" c) the changeset specified with -u (if a branch name, this means the\n"
+" latest head of that branch)\n"
+" d) the changeset specified with -r\n"
+" e) the tipmost head specified with -b\n"
+" f) the tipmost head specified with the url#branch source syntax\n"
+" g) the tipmost head of the default branch\n"
+" h) tip"
msgstr ""
-" a) -U ãŒæŒ‡å®šã•ã‚Œã‚‹ã‹ã€ 元リãƒã‚¸ãƒˆãƒªå±¥æ­´ãŒç©ºã®å ´åˆã¯ null リビジョン\n"
-" b) -u . ãŒæŒ‡å®šã•ã‚Œã€ 且ã¤å…ƒãƒªãƒã‚¸ãƒˆãƒªãŒåŒä¸€ãƒ›ã‚¹ãƒˆã®å ´åˆã€\n"
-" 元リãƒã‚¸ãƒˆãƒªã®ä½œæ¥­é ˜åŸŸã®ç¬¬1親リビジョン\n"
-" c) -u ã§æŒ‡å®šã•ã‚ŒãŸãƒªãƒ“ジョン (ブランãƒåãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€\n"
-" 当該ブランãƒã®æœ€æ–°ãƒ˜ãƒƒãƒ‰ãƒªãƒ“ジョン)\n"
-" d) -r ã§æŒ‡å®šã•ã‚ŒãŸãƒªãƒ“ジョン\n"
-" e) -b ã§æŒ‡å®šsã‚ŒãŸãƒ–ランãƒã®æœ€æ–°ãƒ˜ãƒƒãƒ‰ãƒªãƒ“ジョン\n"
-" f) url#branch å½¢å¼ã§æŒ‡å®šã•ã‚ŒãŸãƒ–ランãƒã®æœ€æ–°ãƒ˜ãƒƒãƒ‰ãƒªãƒ“ジョン\n"
-" g) default ブランãƒã®æœ€æ–°ãƒ˜ãƒƒãƒ‰ãƒªãƒ“ジョン\n"
-" h) tip"
-
-msgid " - clone a remote repository to a new directory named hg/::"
-msgstr " - é éš”ホストã®ãƒªãƒã‚¸ãƒˆãƒªã‚’ã€ æ–°è¦ hg/ ディレクトリé…下ã«è¤‡è£½::"
-
-msgid " hg clone http://selenic.com/hg"
-msgstr " hg clone http://selenic.com/hg"
-
-msgid " - create a lightweight local clone::"
-msgstr " - åŒä¸€ãƒ›ã‚¹ãƒˆä¸Šã®ãƒªãƒã‚¸ãƒˆãƒªã‚’軽é‡è¤‡è£½::"
-
-msgid " hg clone project/ project-feature/"
-msgstr " hg clone project/ project-feature/"
-
-msgid ""
-" - clone from an absolute path on an ssh server (note double-slash)::"
-msgstr " - SSH 接続先ã‹ã‚‰çµ¶å¯¾ãƒ‘ス指定ã§è¤‡è£½ (ダブルスラッシュã«æ³¨æ„)::"
-
-msgid " hg clone ssh://user@server//home/projects/alpha/"
-msgstr " hg clone ssh://user@server//home/projects/alpha/"
-
-msgid ""
-" - do a high-speed clone over a LAN while checking out a\n"
-" specified version::"
-msgstr " - LAN 経由ã§ã®é«˜é€Ÿè¤‡è£½ã¨ã€ 特定リビジョンã§ã®ä½œæ¥­é ˜åŸŸæ›´æ–°::"
-
-msgid " hg clone --uncompressed http://server/repo -u 1.5"
-msgstr " hg clone --uncompressed http://server/repo -u 1.5"
-
-msgid ""
-" - create a repository without changesets after a particular revision::"
-msgstr " - 特定リビジョンã¾ã§ã—ã‹å«ã¾ãªã„リãƒã‚¸ãƒˆãƒªã®ç”Ÿæˆ::"
-
-msgid " hg clone -r 04e544 experimental/ good/"
-msgstr " hg clone -r 04e544 experimental/ good/"
-
-msgid " - clone (and track) a particular named branch::"
-msgstr " - 特定ã®åå‰ä»˜ãブランãƒé™å®šã§ã®è¤‡è£½::"
-
-msgid " hg clone http://selenic.com/hg#stable"
-msgstr " hg clone http://selenic.com/hg#stable"
-
-msgid " See :hg:`help urls` for details on specifying URLs."
-msgstr " URL 記述ã®è©³ç´°ã¯ :hg:`help urls` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" a) -U ãŒæŒ‡å®šã•ã‚Œã‚‹ã‹ã€ 元リãƒã‚¸ãƒˆãƒªå±¥æ­´ãŒç©ºã®å ´åˆã¯ null リビジョン\n"
+" b) -u . ãŒæŒ‡å®šã•ã‚Œã€ 且ã¤å…ƒãƒªãƒã‚¸ãƒˆãƒªãŒåŒä¸€ãƒ›ã‚¹ãƒˆã®å ´åˆã€\n"
+" 元リãƒã‚¸ãƒˆãƒªã®ä½œæ¥­é ˜åŸŸã®ç¬¬1親リビジョン\n"
+" c) -u ã§æŒ‡å®šã•ã‚ŒãŸãƒªãƒ“ジョン(ブランãƒåãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€\n"
+" 当該ブランãƒã®æœ€æ–°ãƒ˜ãƒƒãƒ‰ãƒªãƒ“ジョン)\n"
+" d) -r ã§æŒ‡å®šã•ã‚ŒãŸãƒªãƒ“ジョン\n"
+" e) -b ã§æŒ‡å®šsã‚ŒãŸãƒ–ランãƒã®æœ€æ–°ãƒ˜ãƒƒãƒ‰ãƒªãƒ“ジョン\n"
+" f) url#branch å½¢å¼ã§æŒ‡å®šã•ã‚ŒãŸãƒ–ランãƒã®æœ€æ–°ãƒ˜ãƒƒãƒ‰ãƒªãƒ“ジョン\n"
+" g) default ブランãƒã®æœ€æ–°ãƒ˜ãƒƒãƒ‰ãƒªãƒ“ジョン\n"
+" h) tip"
msgid "cannot specify both --noupdate and --updaterev"
msgstr "--noupdate 㨠--updaterev ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
@@ -10713,9 +7981,6 @@ msgstr "コミットå‰ã«ã€ æ–°è¦ï¼ä¸åœ¨ãƒ•ã‚¡ã‚¤ãƒ«ã‚’登録ï¼é™¤å¤–"
msgid "mark a branch as closed, hiding it from the branch list"
msgstr "ブランãƒã‚’閉鎖ã—〠ブランãƒä¸€è¦§ã§ã®è¡¨ç¤ºã‹ã‚‰é™¤å¤–"
-msgid "amend the parent of the working dir"
-msgstr "作業領域ã®è¦ªãƒªãƒ“ジョンã®æ”¹å¤‰"
-
msgid "commit the specified files or all outstanding changes"
msgstr "指定ファイルãªã„ã—å…¨ã¦ã®å¤‰æ›´å†…容ã®ãƒªãƒã‚¸ãƒˆãƒªã¸ã®è¨˜éŒ²"
@@ -10727,7 +7992,8 @@ msgstr ""
" 指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã®å¤‰æ›´å†…容を〠管ç†é ˜åŸŸã«è¨˜éŒ² (コミット) ã—ã¾ã™ã€‚\n"
" 中央集権的ãªæ§‹æˆç®¡ç†ãƒ„ールã¨ç•°ãªã‚Šã€\n"
" ã“ã®æ“作ã§å¤‰æ›´ãŒè¨˜éŒ²ã•ã‚Œã‚‹ã®ã¯ã€ 手元ã®ç®¡ç†é ˜åŸŸã«å¯¾ã—ã¦ã®ã¿ã§ã™ã€‚\n"
-" 能動的ãªå¤‰æ›´ä¼æ’­ã«é–¢ã—ã¦ã¯ã€ :hg:`help push` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" 変更を能動的ã«å…¬é–‹ã™ã‚‹æ–¹æ³•ã«é–¢ã—ã¦ã¯ã€\n"
+" :hg:`help push` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
" If a list of files is omitted, all changes reported by :hg:`status`\n"
@@ -10740,8 +8006,8 @@ msgid ""
" If you are committing the result of a merge, do not provide any\n"
" filenames or -I/-X filters."
msgstr ""
-" :hg:`merge` çµæžœã‚’コミットã™ã‚‹å ´åˆã€ ファイルåãªã„ã— -I/-X ã®ã€\n"
-" ã„ãšã‚Œã‚‚指定ã—ãªã„ã§ãã ã•ã„。"
+" 'hg merge' çµæžœã‚’コミットã™ã‚‹å ´åˆã€ ファイルåãªã„ã— -I/-X ã®ã„ãšã‚Œã‚‚\n"
+" 指定ã—ãªã„ã§ãã ã•ã„。"
msgid ""
" If no commit message is specified, Mercurial starts your\n"
@@ -10749,46 +8015,11 @@ msgid ""
" commit fails, you will find a backup of your message in\n"
" ``.hg/last-message.txt``."
msgstr ""
-" コミットログãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ メッセージ入力用ã®ãƒ—ログラムãŒã€\n"
+" コミットメッセージãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ メッセージ入力用ã®ãƒ—ログラムãŒ\n"
" 設定ã«å¾“ã£ã¦èµ·å‹•ã•ã‚Œã¾ã™ã€‚ コミット処ç†ãŒå¤±æ•—ã—ãŸå ´åˆã§ã‚‚ã€\n"
" 入力ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ ``.hg/last-message.txt`` ã«ä¿å­˜ã•ã‚Œã¾ã™ã€‚"
msgid ""
-" The --amend flag can be used to amend the parent of the\n"
-" working directory with a new commit that contains the changes\n"
-" in the parent in addition to those currently reported by :hg:`status`,\n"
-" if there are any. The old commit is stored in a backup bundle in\n"
-" ``.hg/strip-backup`` (see :hg:`help bundle` and :hg:`help unbundle`\n"
-" on how to restore it)."
-msgstr ""
-" --amend を指定ã—ãŸå ´åˆã€ 作業領域ã®è¦ªãƒªãƒ“ジョンã®æŒã¤å¤‰æ›´å†…容ã«ã€\n"
-" :hg:`status` ãŒè¡¨ç¤ºã™ã‚‹å¤‰æ›´å†…容 (変更ãŒã‚ã‚‹å ´åˆ) を加ãˆãŸã‚‚ã®ã§ã€\n"
-" 作業領域ã®è¦ªãƒªãƒ“ジョンを改変ã—ã¾ã™ã€‚ 改変å‰ã®ãƒªãƒ“ジョンã®å†…容ã¯ã€\n"
-" ãƒãƒ³ãƒ‰ãƒ«å½¢å¼ã§ ``.hg/strip-backup`` ã«ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã•ã‚Œã¾ã™ã€‚\n"
-" (復旧方法㯠:hg:`help bundle` ãŠã‚ˆã³ :hg:`help unbundle` ã‚’å‚ç…§).\n"
-" (※ 訳注: --amend 指定時ã¯ã€ 対象ファイルを指定ã—ã¦ã‚‚ã€\n"
-" 追加記録分ã®é¸æŠžã«ã®ã¿ä½¿ç”¨ã•ã‚Œã€ 記録済ã¿ãƒ•ã‚¡ã‚¤ãƒ«ã®å–æ¨é¸æŠžã«ã¯ã€\n"
-" 影響ã—ã¾ã›ã‚“。 MQ エクステンション㮠hg:`qrefresh` ã«ãŠã‘ã‚‹\n"
-" ``--short`` 指定ã¨åŒç­‰ãªæŒ™å‹•ã¨ãªã‚Šã¾ã™ã€‚)"
-
-msgid ""
-" Message, user and date are taken from the amended commit unless\n"
-" specified. When a message isn't specified on the command line,\n"
-" the editor will open with the message of the amended commit."
-msgstr ""
-" コミットログ〠ユーザå〠記録日付ã¯ã€ 明示的ãªæŒ‡å®šãŒç„¡ã„é™ã‚Šã€\n"
-" 改変対象ã®ãƒªãƒ“ジョンã®ã‚‚ã®ãŒå†åˆ©ç”¨ã•ã‚Œã¾ã™ã€‚ コマンド行ã«ãŠã„ã¦ã€\n"
-" コミットログãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ 改変å‰ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’使ã£ã¦ã€\n"
-" エディタãŒèµ·å‹•ã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-" It is not possible to amend public changesets (see :hg:`help phases`)\n"
-" or changesets that have children."
-msgstr ""
-" public フェーズ (:hg:`help phases` å‚ç…§) ã®ãƒªãƒ“ジョンやã€\n"
-" æ—¢ã«å­ãƒªãƒ“ジョンをæŒã¤ãƒªãƒ“ジョンã¯ã€ 改変ã§ãã¾ã›ã‚“ "
-
-msgid ""
" Returns 0 on success, 1 if nothing changed.\n"
" "
msgstr ""
@@ -10798,28 +8029,13 @@ msgstr ""
msgid "can only close branch heads"
msgstr "ブランãƒãƒ˜ãƒƒãƒ‰ã®ã¿é–‰éŽ–ã§ãã¾ã™"
-msgid "cannot amend recursively"
-msgstr "副リãƒã‚¸ãƒˆãƒªã‚’å«ã‚€å†å¸°çš„ãªæ”¹å¤‰ã¯ã§ãã¾ã›ã‚“"
-
-msgid "cannot amend public changesets"
-msgstr "public フェーズã®ãƒªãƒ“ジョンã¯æ”¹å¤‰ã§ãã¾ã›ã‚“"
-
-msgid "cannot amend merge changesets"
-msgstr "マージ実施リビジョンã¯æ”¹å¤‰ã§ãã¾ã›ã‚“"
-
-msgid "cannot amend while merging"
-msgstr "マージ実施中ã®ä½œæ¥­é ˜åŸŸã§ã¯æ”¹å¤‰ã§ãã¾ã›ã‚“"
-
-msgid "cannot amend changeset with children"
-msgstr "å­ãƒªãƒ“ジョンをæŒã¤ãƒªãƒ“ジョンã¯æ”¹å¤‰ã§ãã¾ã›ã‚“"
-
-msgid "nothing changed\n"
-msgstr "変更ãªã—\n"
-
#, python-format
msgid "nothing changed (%d missing files, see 'hg status')\n"
msgstr "改変ã¯ã‚ã‚Šã¾ã›ã‚“ (%d 個ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒä¸åœ¨ã€‚ 'hg status' ã§ç¢ºèªã‚’)\n"
+msgid "nothing changed\n"
+msgstr "変更ãªã—\n"
+
msgid "created new head\n"
msgstr "æ–°è¦ãƒ˜ãƒƒãƒ‰ãŒå¢—ãˆã¾ã—ãŸ\n"
@@ -10886,24 +8102,24 @@ msgid "either two or three arguments required"
msgstr "2ãªã„ã—3ã®å¼•æ•°ãŒå¿…è¦ã§ã™"
msgid "add single file mergeable changes"
-msgstr "ファイルを1ã¤ç™»éŒ²ã—ã¦ã€ リビジョン毎ã«ãƒžãƒ¼ã‚¸å¯èƒ½ãªæ”¹å¤‰ã‚’実施"
+msgstr ""
msgid "add single file all revs overwrite"
-msgstr "ファイルを1ã¤ç™»éŒ²ã—ã¦ã€ リビジョン毎ã«ä¸Šæ›¸ãを実施"
+msgstr ""
msgid "add new file at each rev"
-msgstr "å„リビジョン毎ã«æ–°è¦ãƒ•ã‚¡ã‚¤ãƒ«ã‚’登録"
+msgstr ""
msgid "[OPTION]... [TEXT]"
-msgstr "[OPTION]... [TEXT]"
+msgstr ""
msgid "builds a repo with a given DAG from scratch in the current empty repo"
-msgstr "指定 DAG ã«ã‚ˆã‚‹ç©ºãƒªãƒã‚¸ãƒˆãƒªä¸Šã¸ã®å±¥æ­´æ§‹ç¯‰"
+msgstr ""
msgid ""
" The description of the DAG is read from stdin if not given on the\n"
" command line."
-msgstr " コマンド行ã§æŒ‡å®šãŒç„¡ã„å ´åˆã€ 標準入力ã‹ã‚‰ DAG を読ã¿è¾¼ã¿ã¾ã™ã€‚"
+msgstr ""
msgid " Elements:"
msgstr " 表記:"
@@ -10922,23 +8138,12 @@ msgid ""
" - \"@branch\" sets the named branch for subsequent nodes\n"
" - \"#...\\n\" is a comment up to the end of the line"
msgstr ""
-" - \"+n\" ã¯ã€ ç¾è¦ªãƒªãƒ“ジョンã«ç¶šã‘ã¦ã€ n個ã®æ–°è¦ãƒªãƒ“ジョンを順次生æˆ\n"
-" - \".\" ã¯ã€ ç¾è¦ªãƒªãƒ“ジョンã«ç¶šã‘ã¦ã€ å˜ä¸€ã®ãƒªãƒ“ジョンを生æˆ\n"
-" - \"$\" ã¯ç¾è¦ªãƒªãƒ“ジョンを null ã«è¨­å®š (処ç†é–‹å§‹æ™‚点ã§æš—é»™ã«å®Ÿæ–½)。\n"
-" 開始時以外ã¯ã€ 最後ã«ç”Ÿæˆã•ã‚ŒãŸãƒªãƒ“ジョンãŒè¦ªãƒªãƒ“ジョン。\n"
-" - \"<p\" ã¯ã€ å‰æ–¹å‚ç…§(backref) p ã®ãƒªãƒ“ジョンを〠親リビジョンã«è¨­å®š\n"
-" - \"*p\" ã¯ã€ å‰æ–¹å‚ç…§ p ã®ãƒªãƒ“ジョンを親ã«ã€ æžåˆ†ã‹ã‚Œ\n"
-" - \"*p1/p2\" ã¯ã€ å‰æ–¹å‚ç…§ p1 㨠p2 ã®å„リビジョンをマージ\n"
-" - \"/p2\" ã¯ã€ ç›´å‰ã®ãƒªãƒ“ジョンã¨ã€ å‰æ–¹å‚ç…§ p2 ã®ãƒªãƒ“ジョンをマージ\n"
-" - \":tag\" ã¯ã€ ç›´å‰ãƒªãƒ“ジョンã«ã€ ローカルタグを設定\n"
-" - \"@branch\" ã¯ã€ 以後ã®ãƒªãƒ“ジョンを〠åå‰ä»˜ãブランãƒé…下ã«ç”Ÿæˆ\n"
-" - \"#...\\n\" ã¯ã€ 行末ã¾ã§ã®ã‚³ãƒ¡ãƒ³ãƒˆè¨˜è¿°"
msgid " Whitespace between the above elements is ignored."
msgstr " 記å·é–“ã®ç©ºç™½ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
msgid " A backref is either"
-msgstr " å‰æ–¹å‚ç…§ (backref) ã«ã¯ä»¥ä¸‹ã®ã„ãšã‚Œã‹ã‚’指定ã§ãã¾ã™"
+msgstr ""
msgid ""
" - a number n, which references the node curr-n, where curr is the "
@@ -10947,9 +8152,6 @@ msgid ""
" - the name of a local tag you placed earlier using \":tag\", or\n"
" - empty to denote the default parent."
msgstr ""
-" - n 個å‰ã®ãƒªãƒ“ジョンを指ã™ã€ 数値指定 n\n"
-" - \":tag\" ã§è¨­å®šã—ãŸãƒ­ãƒ¼ã‚«ãƒ«ã‚¿ã‚°å\n"
-" - ç¾è¦ªãƒªãƒ“ジョンを指ã™ã€ 空指定"
msgid ""
" All string valued-elements are either strictly alphanumeric, or must\n"
@@ -10957,25 +8159,21 @@ msgid ""
"character.\n"
" "
msgstr ""
-" 文字列è¦ç´ ã¯ã€ 厳密ãªè‹±æ•°å­—ã‹ã€ 二é‡å¼•ç”¨ç¬¦ (例: \"...\")\n"
-" ã§å›²ã¾ã‚Œã¦ã„ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 引用符ã§å›²ã‚€å ´åˆã€ \"\\\"\n"
-" をエスケープ文字ã¨ã—ã¦ä½¿ç”¨ã§ãã¾ã™ã€‚\n"
-" "
msgid "reading DAG from stdin\n"
-msgstr "DAG を標準入力ã‹ã‚‰èª­ã¿è¾¼ã¿ã¾ã™\n"
+msgstr ""
msgid "repository is not empty"
msgstr "リãƒã‚¸ãƒˆãƒªãŒç©ºã§ã¯ã‚ã‚Šã¾ã›ã‚“"
msgid "building"
-msgstr "構築中"
+msgstr ""
msgid "show all details"
-msgstr "全詳細ã®è¡¨ç¤º"
+msgstr ""
msgid "lists the contents of a bundle"
-msgstr "ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã®å†…容表示"
+msgstr ""
msgid "validate the correctness of the current dirstate"
msgstr "ç¾æ™‚点㮠dirstate ã®æ•´åˆæ€§æ¤œè¨¼"
@@ -11015,49 +8213,44 @@ msgid "returns the completion list associated with the given command"
msgstr "指定コマンドã®è£œå®Œãƒªã‚¹ãƒˆã®ä½œæˆ"
msgid "use tags as labels"
-msgstr "タグをラベルã¨ã—ã¦ä½¿ç”¨"
+msgstr ""
msgid "annotate with branch names"
-msgstr "åå‰ä»˜ãブランãƒã®å‡ºåŠ›"
+msgstr ""
msgid "use dots for runs"
-msgstr "リビジョンã®é †æ¬¡ç”Ÿæˆã‚’ドット(\".\")ã§è¡¨ç¾"
+msgstr ""
msgid "separate elements by spaces"
-msgstr "å„è¦ç´ ã®åŒºåˆ‡ã‚Šã«ç©ºç™½ã‚’挿入"
+msgstr ""
msgid "[OPTION]... [FILE [REV]...]"
msgstr "[OPTION]... [FILE [REV]...]"
msgid "format the changelog or an index DAG as a concise textual description"
-msgstr "変更履歴や差分インデックスファイルã®å†…容を〠簡易テキスト化ã—ã¾ã™ã€‚"
+msgstr ""
msgid ""
" If you pass a revlog index, the revlog's DAG is emitted. If you list\n"
" revision numbers, they get labelled in the output as rN."
msgstr ""
-" 差分インデックスファイル (revlog å½¢å¼) を指定ã—ãŸå ´åˆã€\n"
-" 当該ファイル㮠DAG ãŒå‡ºåŠ›ã•ã‚Œã¾ã™ã€‚ リビジョン番å·ã‚’指定ã—ãŸå ´åˆã€\n"
-" 指定リビジョン毎㮠\"rN\" å½¢å¼ãƒ©ãƒ™ãƒ«ä»˜ã‘ãŒã€ 処ç†ã¨ã—ã¦è¿½åŠ ã•ã‚Œã¾ã™ã€‚"
msgid ""
" Otherwise, the changelog DAG of the current repo is emitted.\n"
" "
msgstr ""
-" ãれ以外ã®å ´åˆã¯ã€ ç¾ãƒªãƒã‚¸ãƒˆãƒªã®å¤‰æ›´å±¥æ­´ãŒ DAG 出力ã•ã‚Œã¾ã™ã€‚\n"
-" "
msgid "need repo for changelog dag"
-msgstr "変更履歴㮠DAG 出力ã«ã¯ãƒªãƒã‚¸ãƒˆãƒªãŒå¿…è¦ã§ã™"
+msgstr ""
msgid "open changelog"
-msgstr "変更履歴ã®èª­ã¿è¾¼ã¿"
+msgstr ""
msgid "open manifest"
-msgstr "マニフェストã®èª­ã¿è¾¼ã¿"
+msgstr ""
msgid "-c|-m|FILE REV"
-msgstr "-c|-m|FILE REV"
+msgstr ""
msgid "dump the contents of a data file revision"
msgstr "データファイルリビジョンã®å†…容表示"
@@ -11076,19 +8269,19 @@ msgid "parse and display a date"
msgstr "日付ã®è§£æžãŠã‚ˆã³è¡¨ç¤º"
msgid "use old-style discovery"
-msgstr "旧形å¼ã®æŽ¢ç´¢ã‚’実施"
+msgstr ""
msgid "use old-style discovery with non-heads included"
-msgstr "non-heads 有りã®æ—§å½¢å¼æŽ¢ç´¢ã‚’実施"
+msgstr ""
msgid "[-l REV] [-r REV] [-b BRANCH]... [OTHER]"
-msgstr "[-l REV] [-r REV] [-b BRANCH]... [OTHER]"
+msgstr ""
msgid "runs the changeset discovery protocol in isolation"
-msgstr "リビジョン探索プロトコルã®å˜ç‹¬å®Ÿè¡Œ"
+msgstr ""
msgid "parse and apply a fileset specification"
-msgstr "fileset 仕様ã®è§£é‡ˆãŠã‚ˆã³é©ç”¨"
+msgstr ""
msgid "[PATH]"
msgstr "[PATH]"
@@ -11097,16 +8290,16 @@ msgid "show information detected about current filesystem"
msgstr "ファイルシステムã«é–¢ã™ã‚‹æƒ…å ±ã®è¡¨ç¤º"
msgid "id of head node"
-msgstr "ヘッドノード㮠ID"
+msgstr ""
msgid "id of common node"
-msgstr "共通ノード㮠ID"
+msgstr ""
msgid "REPO FILE [-H|-C ID]..."
-msgstr "REPO FILE [-H|-C ID]..."
+msgstr ""
msgid "retrieves a bundle from a repo"
-msgstr "リãƒã‚¸ãƒˆãƒªã‹ã‚‰ã®ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã®ç”Ÿæˆ"
+msgstr ""
msgid ""
" Every ID must be a full-length hex node id string. Saves the bundle to "
@@ -11114,21 +8307,18 @@ msgid ""
" given file.\n"
" "
msgstr ""
-" ID ã®æŒ‡å®šã«ã¯ã€ 完全長 (40æ¡) ã®16進数文字列を使用ã—ã¦ãã ã•ã„。\n"
-" ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’〠指定ファイルã«æ›¸ã出ã—ã¾ã™ã€‚\n"
-" "
msgid "display the combined ignore pattern"
-msgstr "無視対象ファイル判定用正è¦è¡¨ç¾ã®è¡¨ç¤º"
+msgstr ""
msgid "no ignore patterns found"
-msgstr "無視対象ファイルã®æŒ‡å®šãŒã‚ã‚Šã¾ã›ã‚“"
+msgstr ""
msgid "revlog format"
-msgstr "revlog ã®å½¢å¼"
+msgstr ""
msgid "[-f FORMAT] -c|-m|FILE"
-msgstr "[-f FORMAT] -c|-m|FILE"
+msgstr ""
msgid "dump the contents of an index file"
msgstr "インデックスファイルã®å†…容表示"
@@ -11144,14 +8334,14 @@ msgid "test Mercurial installation"
msgstr "Mercurial インストールã®æ¤œè¨¼"
#, python-format
-msgid "checking encoding (%s)...\n"
-msgstr "文字コードã®æ¤œè¨¼ä¸­ (%s)...\n"
+msgid "Checking encoding (%s)...\n"
+msgstr "文字コード %s ã®æ¤œè¨¼ä¸­...\n"
msgid " (check that your locale is properly set)\n"
msgstr " (ロケール設定ã®å¦¥å½“性を確èªã—ã¦ãã ã•ã„)\n"
#, python-format
-msgid "checking installed modules (%s)...\n"
+msgid "Checking installed modules (%s)...\n"
msgstr "インストール済ã¿ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ç¢ºèªä¸­(%s)...\n"
msgid " One or more extensions could not be found"
@@ -11160,15 +8350,14 @@ msgstr " 見ã¤ã‹ã‚‰ãªã„エクステンションãŒã‚ã‚Šã¾ã™"
msgid " (check that you compiled the extensions)\n"
msgstr " (エクステンションã®ã‚³ãƒ³ãƒ‘イル状æ³ã‚’確èªã—ã¦ãã ã•ã„)\n"
-#, python-format
-msgid "checking templates (%s)...\n"
-msgstr "テンプレートã®ç¢ºèªä¸­ (%s)...\n"
+msgid "Checking templates...\n"
+msgstr "テンプレートã®æ¤œè¨¼ä¸­...\n"
msgid " (templates seem to have been installed incorrectly)\n"
msgstr " (テンプレートã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãŒä¸é©åˆ‡ãªã‚ˆã†ã§ã™)\n"
-msgid "checking commit editor...\n"
-msgstr "メッセージ入力用エディタã®ç¢ºèªä¸­...\n"
+msgid "Checking commit editor...\n"
+msgstr "メッセージ入力用エディタã®æ¤œè¨¼ä¸­...\n"
msgid " No commit editor set and can't find vi in PATH\n"
msgstr " エディタãŒèµ·å‹•ã§ãã¾ã›ã‚“(vi ã«ã‚‚ PATH ãŒé€šã£ã¦ã„ã¾ã›ã‚“)\n"
@@ -11180,76 +8369,46 @@ msgstr " (コミットメッセージ用エディタを設定ファイルã§è¨­å
msgid " Can't find editor '%s' in PATH\n"
msgstr " エディタ '%s' ã« PATH ãŒé€šã£ã¦ã„ã¾ã›ã‚“\n"
-msgid "checking username...\n"
-msgstr "ユーザåã®ç¢ºèªä¸­...\n"
+msgid "Checking username...\n"
+msgstr "ユーザåã®æ¤œè¨¼ä¸­...\n"
msgid " (specify a username in your configuration file)\n"
msgstr " (設定ファイルã§ãƒ¦ãƒ¼ã‚¶åを設定ã—ã¦ãã ã•ã„)\n"
-msgid "no problems detected\n"
-msgstr "å•é¡Œã¯æ¤œå‡ºã•ã‚Œã¾ã›ã‚“ã§ã—ãŸ\n"
+msgid "No problems detected\n"
+msgstr "障害ã¯æ¤œå‡ºã•ã‚Œã¾ã›ã‚“ã§ã—ãŸ\n"
#, python-format
msgid "%s problems detected, please check your install!\n"
msgstr "障害ãŒ%s件検出ã•ã‚Œã¾ã—ãŸã€‚ インストール内容を確èªã—ã¦ãã ã•ã„\n"
msgid "REPO ID..."
-msgstr "REPO ID..."
+msgstr ""
msgid "test whether node ids are known to a repo"
-msgstr "対象リãƒã‚¸ãƒˆãƒªã«ãŠã‘ã‚‹ ID ã®æ—¢çŸ¥æ€§æ¤œè¨¼"
+msgstr ""
msgid ""
-" Every ID must be a full-length hex node id string. Returns a list of 0s\n"
-" and 1s indicating unknown/known.\n"
+" Every ID must be a full-length hex node id string. Returns a list of 0s "
+"and 1s\n"
+" indicating unknown/known.\n"
" "
msgstr ""
-" ID ã®æŒ‡å®šã«ã¯ã€ 完全長 (40æ¡) ã®16進数文字列を使用ã—ã¦ãã ã•ã„。\n"
-" å„ ID 毎ã®æ—¢çŸ¥æ€§ã‚’〠0 㨠1 ã§è¡¨ç¾ã—ãŸãƒªã‚¹ãƒˆãŒå‡ºåŠ›ã•ã‚Œã¾ã™ã€‚\n"
-" "
-
-msgid "[OBSOLETED [REPLACEMENT] [REPL... ]"
-msgstr "[OBSOLETED [REPLACEMENT] [REPL... ]"
-
-msgid "create arbitrary obsolete marker"
-msgstr "ä»»æ„ã®ã€Žå»ƒæ­¢ã€çŠ¶æ…‹ã®è¨­å®š"
msgid "REPO NAMESPACE [KEY OLD NEW]"
msgstr "REPO NAMESPACE [KEY OLD NEW]"
msgid "access the pushkey key/value protocol"
-msgstr "pushkey key/value プロトコルã§ã®ã‚¢ã‚¯ã‚»ã‚¹"
+msgstr ""
msgid " With two args, list the keys in the given namespace."
-msgstr " 2引数ã§ã®å®Ÿè¡Œã®å ´åˆã€ 指定åå‰ç©ºé–“中ã®ã‚­ãƒ¼ä¸€è¦§ã‚’表示ã—ã¾ã™ã€‚"
+msgstr ""
msgid ""
" With five args, set a key to new if it currently is set to old.\n"
" Reports success or failure.\n"
" "
msgstr ""
-" 5引数ã§ã®å®Ÿè¡Œã®å ´åˆã€ 指定キーã®å€¤ãŒæ—§å€¤ã§ã‚ã‚Œã°ã€ 値を更新ã—ã¾ã™ã€‚\n"
-" 実行æˆå¦ãŒå‡ºåŠ›ã•ã‚Œã¾ã™ã€‚\n"
-" "
-
-msgid "A B"
-msgstr "A B"
-
-#, python-format
-msgid "a: %s\n"
-msgstr "a: %s\n"
-
-#, python-format
-msgid "b: %s\n"
-msgstr "b: %s\n"
-
-#, python-format
-msgid "depth(a): %d depth(b): %d\n"
-msgstr "æ·±ã•(a): %d æ·±ã•(b): %d\n"
-
-#, python-format
-msgid "delta: %d hdist: %d distance: %d relation: %s\n"
-msgstr "差分: %d ãƒãƒŸãƒ³ã‚°(hamming)è·é›¢: %d è·é›¢: %d 関連: %s\n"
msgid "revision to rebuild to"
msgstr "å†æ§‹ç¯‰å¯¾è±¡ãƒªãƒ“ジョン"
@@ -11278,25 +8437,17 @@ msgid "%s not renamed\n"
msgstr "%s ã¯æ”¹åã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
msgid "dump index data"
-msgstr "インデックスデータã®ãƒ€ãƒ³ãƒ—"
+msgstr ""
msgid "-c|-m|FILE"
-msgstr "-c|-m|FILE"
+msgstr ""
msgid "show data and statistics about a revlog"
-msgstr "revlog ファイルã®ãƒ‡ãƒ¼ã‚¿ã¨çµ±è¨ˆæƒ…å ±ã®è¡¨ç¤º"
+msgstr ""
msgid "parse and apply a revision specification"
msgstr "リビジョン指定記述ã®è§£æžï¼é©ç”¨"
-msgid ""
-" Use --verbose to print the parsed tree before and after aliases\n"
-" expansion.\n"
-" "
-msgstr ""
-" --verbose 指定時ã¯ã€ 別å (alias) 展開å‰å¾Œã®ã€ 解æžæœ¨ã‚’表示ã—ã¾ã™ã€‚\n"
-" "
-
msgid "REV1 [REV2]"
msgstr "REV1 [REV2]"
@@ -11333,7 +8484,7 @@ msgid "show how files match on given patterns"
msgstr "指定パターンã¸ã®ãƒ•ã‚¡ã‚¤ãƒ«åˆè‡´çŠ¶æ³ã®è¡¨ç¤º"
msgid "REPO [OPTIONS]... [ONE [TWO]]"
-msgstr "REPO [OPTIONS]... [ONE [TWO]]"
+msgstr ""
msgid "[OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]..."
msgstr "[OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]..."
@@ -11381,51 +8532,14 @@ msgstr ""
" git 拡張差分形å¼ã§è¡¨ç¤ºã™ã‚‹ã«ã¯ -g/--git を指定ã—ã¾ã™ã€‚ 詳細ã¯\n"
" :hg:`help diffs` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-msgid " - compare a file in the current working directory to its parent::"
-msgstr " - 作業領域ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’親リビジョンã¨æ¯”較::"
-
-msgid " hg diff foo.c"
-msgstr " hg diff foo.c"
-
-msgid ""
-" - compare two historical versions of a directory, with rename info::"
-msgstr " - 2ã¤ã®ãƒªãƒ“ジョン時点ã§ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå†…容を比較 (改å情報付ã)::"
-
-msgid " hg diff --git -r 1.0:1.2 lib/"
-msgstr " hg diff --git -r 1.0:1.2 lib/"
-
-msgid " - get change stats relative to the last change on some date::"
-msgstr " - 指定日時時点ã‹ã‚‰ã®å·®åˆ†ã®çµ±è¨ˆæƒ…報を表示::"
-
-msgid " hg diff --stat -r \"date('may 2')\""
-msgstr " hg diff --stat -r \"date('may 2')\""
-
-msgid " - diff all newly-added files that contain a keyword::"
-msgstr " - 指定キーワードをå«ã‚€å…¨æ–°è¦è¿½åŠ ãƒ•ã‚¡ã‚¤ãƒ«ã®å·®åˆ†ã‚’表示::"
-
-msgid " hg diff \"set:added() and grep(GNU)\""
-msgstr " hg diff \"set:added() and grep(GNU)\""
-
-msgid " - compare a revision and its parents::"
-msgstr " - 指定リビジョンã¨ãã®è¦ªã‚’比較::"
-
-msgid ""
-" hg diff -c 9353 # compare against first parent\n"
-" hg diff -r 9353^:9353 # same using revset syntax\n"
-" hg diff -r 9353^2:9353 # compare against the second parent"
-msgstr ""
-" hg diff -c 9353 # 第1親ã¨ã®æ¯”較\n"
-" hg diff -r 9353^:9353 # 上記ã¨ç­‰ä¾¡ãª revset 文法記述\n"
-" hg diff -r 9353^2:9353 # 第2親ã¨ã®æ¯”較"
-
msgid "diff against the second parent"
msgstr "第2親ã¨ã®å·®åˆ†ã‚’使用"
msgid "revisions to export"
msgstr "対象リビジョン"
-msgid "[OPTION]... [-o OUTFILESPEC] [-r] REV..."
-msgstr "[OPTION]... [-o OUTFILESPEC] [-r] REV..."
+msgid "[OPTION]... [-o OUTFILESPEC] REV..."
+msgstr "[OPTION]... [-o OUTFILESPEC] REV..."
msgid "dump the header and diffs for one or more changesets"
msgstr "1ã¤ä»¥ä¸Šã®ãƒªãƒ“ジョンã«å¯¾ã™ã‚‹ãƒ˜ãƒƒãƒ€ãŠã‚ˆã³å¤‰æ›´å†…容ã®å‡ºåŠ›"
@@ -11467,8 +8581,6 @@ msgid ""
" :``%R``: changeset revision number\n"
" :``%b``: basename of the exporting repository\n"
" :``%h``: short-form changeset hash (12 hexadecimal digits)\n"
-" :``%m``: first line of the commit message (only alphanumeric "
-"characters)\n"
" :``%n``: zero-padded sequence number, starting at 1\n"
" :``%r``: zero-padded changeset revision number"
msgstr ""
@@ -11476,9 +8588,8 @@ msgstr ""
" :``%H``: ãƒãƒƒã‚·ãƒ¥å€¤(40 æ¡ 16 進数)\n"
" :``%N``: 生æˆã•ã‚Œã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®ç·æ•°\n"
" :``%R``: リビジョン番å·\n"
-" :``%b``: 対象リãƒã‚¸ãƒˆãƒªãƒ‘スã®æœ«å°¾è¦ç´ \n"
+" :``%b``: 対象リãƒã‚¸ãƒˆãƒªã®ãƒ™ãƒ¼ã‚¹å\n"
" :``%h``: 短縮形å¼ãƒãƒƒã‚·ãƒ¥å€¤(12 æ¡ 16 進数)\n"
-" :``%m``: コミットログã®1行目 (英数字é™å®š)\n"
" :``%n``: 1ã‹ã‚‰å§‹ã¾ã‚‹ã‚¼ãƒ­è©°ã‚ã®é€šã—番å·\n"
" :``%r``: ゼロ詰ã‚ã®ãƒªãƒ“ジョン番å·"
@@ -11505,30 +8616,6 @@ msgstr ""
" --switch-parent を指定ã™ã‚‹ã“ã¨ã§ã€ 比較対象ãŒç¬¬2親ã«ãªã‚Šã¾ã™ã€‚\n"
" ã“ã‚Œã¯ãƒžãƒ¼ã‚¸ã®ãƒ¬ãƒ“ューã®éš›ãªã©ã«æœ‰åŠ¹ã§ã™ã€‚"
-msgid ""
-" - use export and import to transplant a bugfix to the current\n"
-" branch::"
-msgstr " - export 㨠import ã®ä½µç”¨ã«ã‚ˆã‚‹ç¾ãƒ–ランãƒä¸Šã¸ã®å¤‰æ›´ã®ç§»æ¤::"
-
-msgid " hg export -r 9353 | hg import -"
-msgstr " hg export -r 9353 | hg import -"
-
-msgid ""
-" - export all the changesets between two revisions to a file with\n"
-" rename information::"
-msgstr " - 指定リビジョン間ã®å…¨å¤‰æ›´ (改å情報付ã) をファイルã«å‡ºåŠ›::"
-
-msgid " hg export --git -r 123:150 > changes.txt"
-msgstr " hg export --git -r 123:150 > changes.txt"
-
-msgid ""
-" - split outgoing changes into a series of patches with\n"
-" descriptive names::"
-msgstr " - å¯èª­æ€§ã‚ã‚‹åå‰ã®ä¸€é€£ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«å¤‰æ›´å†…容を分割格ç´::"
-
-msgid " hg export -r \"outgoing()\" -o \"%n-%m.patch\""
-msgstr " hg export -r \"outgoing()\" -o \"%n-%m.patch\""
-
msgid "export requires at least one changeset"
msgstr "最低1ã¤ã®ãƒªãƒ“ジョン指定ãŒå¿…è¦ã§ã™"
@@ -11559,155 +8646,16 @@ msgstr ""
" 登録除外æ“作ã®ã‚³ãƒŸãƒƒãƒˆå‰å–り消ã—ã¯ã€ :hg:`help add` ã‚’å‚ç…§ã—ã¦\n"
" ãã ã•ã„。"
-msgid " - forget newly-added binary files::"
-msgstr " - æ–°è¦è¿½åŠ ã®ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã‚’登録除外::"
-
-msgid " hg forget \"set:added() and binary()\""
-msgstr " hg forget \"set:added() and binary()\""
-
-msgid " - forget files that would be excluded by .hgignore::"
-msgstr " - .hgignore ã«ã‚ˆã‚‹ç„¡è¦–対象ファイルを登録除外::"
-
-msgid " hg forget \"set:hgignore()\""
-msgstr " hg forget \"set:hgignore()\""
-
-msgid "revisions to graft"
-msgstr "移æ¤å¯¾è±¡ãƒªãƒ“ジョン"
-
-msgid "resume interrupted graft"
-msgstr "中断ã•ã‚ŒãŸç§»æ¤ã‚’å†é–‹"
-
-msgid "append graft info to log message"
-msgstr "コミットログã¸ã®ç§»æ¤æƒ…å ±ã®ä»˜ä¸Ž"
-
-msgid "record the current date as commit date"
-msgstr "ç¾æ™‚刻をコミット日時ã¨ã—ã¦è¨˜éŒ²"
-
-msgid "record the current user as committer"
-msgstr "ç¾ãƒ¦ãƒ¼ã‚¶ã‚’コミットユーザã¨ã—ã¦è¨˜éŒ²"
-
-msgid "[OPTION]... [-r] REV..."
-msgstr "[OPTION]... [-r] REV..."
-
-msgid "copy changes from other branches onto the current branch"
-msgstr "別ブランãƒä¸Šã‹ã‚‰ç¾è¡Œãƒ–ランãƒã¸ã®æŒ‡å®šãƒªãƒ“ジョンã®è¤‡è£½"
-
-msgid ""
-" This command uses Mercurial's merge logic to copy individual\n"
-" changes from other branches without merging branches in the\n"
-" history graph. This is sometimes known as 'backporting' or\n"
-" 'cherry-picking'. By default, graft will copy user, date, and\n"
-" description from the source changesets."
-msgstr ""
-" 本コマンドã¯ã€ ã‚るブランãƒã‹ã‚‰åˆ¥ã®ãƒ–ランãƒã¸ã€ Mercurial\n"
-" ã®ãƒžãƒ¼ã‚¸æ©Ÿèƒ½ã§ãƒªãƒ“ジョンを複製ã—ã¾ã™ãŒã€ 履歴上ã¯ãƒžãƒ¼ã‚¸ã•ã‚Œã¾ã›ã‚“。\n"
-" ã“れ㯠'backport' ãªã„ã— 'cherry-picking' ã¨å‘¼ã°ã‚Œã‚‹æ©Ÿèƒ½ã§ã™ã€‚\n"
-" 特ã«æŒ‡å®šã®ç„¡ã„å ´åˆã€ ユーザå〠日付〠コミットログã¯ã€ \n"
-" 元リビジョンã®ã‚‚ã®ã‚’å†åˆ©ç”¨ã—ã¾ã™ã€‚"
-
-msgid ""
-" Changesets that are ancestors of the current revision, that have\n"
-" already been grafted, or that are merges will be skipped."
-msgstr ""
-" ç¾è¡Œãƒªãƒ“ジョンã®ç¥–先〠既ã«ç§»æ¤ (graft) 済ã¿ã®ãƒªãƒ“ジョンã€\n"
-" マージ実施リビジョンã¯ã€ 複製対象ã‹ã‚‰é™¤å¤–ã•ã‚Œã¾ã™ã€‚"
-
-msgid " (grafted from CHANGESETHASH)"
-msgstr " (grafted from 移æ¤å…ƒãƒªãƒ“ジョンã®ãƒãƒƒã‚·ãƒ¥å€¤)"
-
-msgid ""
-" If a graft merge results in conflicts, the graft process is\n"
-" interrupted so that the current merge can be manually resolved.\n"
-" Once all conflicts are addressed, the graft process can be\n"
-" continued with the -c/--continue option."
-msgstr ""
-" 本コマンドã®ãƒžãƒ¼ã‚¸å‡¦ç†ã§è¡çªãŒæ¤œå‡ºã•ã‚ŒãŸå ´åˆã€ 処ç†ãŒä¸­æ–­ã•ã‚Œã‚‹ã®ã§ã€\n"
-" 手動ã§ã®è¡çªè§£æ±ºãŒå¯èƒ½ã§ã™ã€‚ å…¨ã¦ã®è¡çªãŒè§£æ¶ˆã•ã‚ŒãŸãªã‚‰ã°ã€\n"
-" -c/--continue 指定ã«ã‚ˆã‚Šã‚³ãƒžãƒ³ãƒ‰ã®å®Ÿè¡Œã‚’å†é–‹ã—ã¦ãã ã•ã„。"
-
-msgid ""
-" .. note::\n"
-" The -c/--continue option does not reapply earlier options."
-msgstr ""
-" .. note::\n"
-" -c/--continue ã§ã‚‚〠以å‰ã®ã‚ªãƒ—ション指定ã¾ã§ã¯å†ç¾ã•ã‚Œã¾ã›ã‚“。"
-
-msgid ""
-" - copy a single change to the stable branch and edit its description::"
-msgstr " - コミットログを改変ã—ã¤ã¤å˜ä¸€ãƒªãƒ“ジョンを stable ã¸è¤‡è£½::"
-
-msgid ""
-" hg update stable\n"
-" hg graft --edit 9393"
-msgstr ""
-" hg update stable\n"
-" hg graft --edit 9393"
-
-msgid ""
-" - graft a range of changesets with one exception, updating dates::"
-msgstr " - 日付を更新ã—ã¤ã¤ã€2091 を除ã指定範囲中ã®ãƒªãƒ“ジョンを複製::"
-
-msgid " hg graft -D \"2085::2093 and not 2091\""
-msgstr " hg graft -D \"2085::2093 and not 2091\""
-
-msgid " - continue a graft after resolving conflicts::"
-msgstr " - è¡çªè§£æ¶ˆå¾Œã®ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œå†é–‹::"
-
-msgid " hg graft -c"
-msgstr " hg graft -c"
-
-msgid " - show the source of a grafted changeset::"
-msgstr " - 複製元リビジョンã®è¡¨ç¤º::"
-
-msgid " hg log --debug -r tip"
-msgstr " hg log --debug -r tip"
-
-msgid ""
-" Returns 0 on successful completion.\n"
-" "
-msgstr ""
-" æˆåŠŸæ™‚ã®ã‚³ãƒžãƒ³ãƒ‰çµ‚了値㯠0 ã§ã™ã€‚\n"
-" "
-
-msgid "can't specify --continue and revisions"
-msgstr "--continue ã¨ãƒªãƒ“ジョンã¯åŒæ™‚ã«æŒ‡å®šã§ãã¾ã›ã‚“"
-
-msgid "no graft state found, can't continue"
-msgstr "移æ¤çŠ¶æ…‹ãŒè¨˜éŒ²ã•ã‚Œã¦ã„ãªã„ãŸã‚å†é–‹ã§ãã¾ã›ã‚“"
-
-#, python-format
-msgid "skipping ungraftable merge revision %s\n"
-msgstr "移æ¤ã§ããªã„マージリビジョン %s を飛ã°ã—ã¦ã„ã¾ã™\n"
-
-#, python-format
-msgid "skipping ancestor revision %s\n"
-msgstr "祖先リビジョン %s を飛ã°ã—ã¦ã„ã¾ã™\n"
-
-#, python-format
-msgid "skipping already grafted revision %s\n"
-msgstr "移æ¤æ¸ˆã¿ãƒªãƒ“ジョン %s を飛ã°ã—ã¦ã„ã¾ã™\n"
-
-#, python-format
-msgid "skipping already grafted revision %s (same origin %d)\n"
-msgstr "移æ¤æ¸ˆã¿ãƒªãƒ“ジョン %s を飛ã°ã—ã¦ã„ã¾ã™ (ç”±æ¥å…ƒ: %d)\n"
-
-#, python-format
-msgid "skipping already grafted revision %s (was grafted from %d)\n"
-msgstr "移æ¤æ¸ˆã¿ãƒªãƒ“ジョン %s を飛ã°ã—ã¦ã„ã¾ã™ (移æ¤å…ƒ: %d)\n"
+msgid "no files specified"
+msgstr "ファイルå指定ãŒã‚ã‚Šã¾ã›ã‚“"
#, python-format
-msgid "grafting revision %s\n"
-msgstr "リビジョン %s ã®ç§»æ¤ä¸­\n"
-
-msgid "unresolved conflicts, can't continue"
-msgstr "è¡çªãŒæœªè§£æ¶ˆã®ãŸã‚ã€ç¶™ç¶šã§ãã¾ã›ã‚“"
-
-msgid "use hg resolve and hg graft --continue"
-msgstr "hg resolve 㨠hg graft --continue を使用ã—ã¦ãã ã•ã„"
+msgid "not removing %s: file is already untracked\n"
+msgstr "%s ã¯å‰Šé™¤ã•ã‚Œã¾ã›ã‚“: æ—¢ã«æ§‹æˆç®¡ç†å¯¾è±¡ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
#, python-format
-msgid "graft for revision %s is empty\n"
-msgstr "リビジョン %s ã®ç§»æ¤ã¯ç©ºã§ã™\n"
+msgid "removing %s\n"
+msgstr "%s を登録除外中\n"
msgid "end fields with NUL"
msgstr "å„フィールドã®åŒºåˆ‡ã‚Šã«NUL文字(0x00)を使用"
@@ -11715,6 +8663,9 @@ msgstr "å„フィールドã®åŒºåˆ‡ã‚Šã«NUL文字(0x00)を使用"
msgid "print all revisions that match"
msgstr "åˆè‡´ã™ã‚‹ãƒªãƒ“ジョンを全ã¦è¡¨ç¤º"
+msgid "follow changeset history, or file history across copies and renames"
+msgstr "複製元や改åå…ƒã®å±¥æ­´ã‚‚é¡ã‚‹"
+
msgid "ignore case when matching"
msgstr "大文字å°æ–‡å­—を無視ã—ã¦æ¤œç´¢"
@@ -11784,10 +8735,10 @@ msgid "show active branchheads only (DEPRECATED)"
msgstr "アクティブãªãƒ–ランãƒãƒ˜ãƒƒãƒ‰ã®ã¿ã‚’表示 (éžæŽ¨å¥¨)"
msgid "show normal and closed branch heads"
-msgstr "閉鎖済ã¿ãƒ˜ãƒƒãƒ‰ã‚‚表示"
+msgstr "閉鎖ã—ãŸãƒ˜ãƒƒãƒ‰ã‚‚表示"
-msgid "[-ct] [-r STARTREV] [REV]..."
-msgstr "[-ct] [-r STARTREV] [REV]..."
+msgid "[-ac] [-r STARTREV] [REV]..."
+msgstr "[-ac] [-r STARTREV] [REV]..."
msgid "show current repository heads or show branch heads"
msgstr "ç¾æ™‚点ã§ã®ãƒªãƒã‚¸ãƒˆãƒª(ãªã„ã—ブランãƒ)ã®ãƒ˜ãƒƒãƒ‰è¡¨ç¤º"
@@ -11825,7 +8776,7 @@ msgid ""
" (see :hg:`commit --close-branch`)."
msgstr ""
" -c/--closed 指定時ã«ã¯ã€ 閉鎖済ã¿ã®ãƒ–ランãƒ\n"
-" (:hg:`commit --close-branch` å‚ç…§) も表示ã•ã‚Œã¾ã™ã€‚"
+" (:hg:`commit --close-branch` å‚ç…§)も表示ã•ã‚Œã¾ã™ã€‚"
msgid ""
" If STARTREV is specified, only those heads that are descendants of\n"
@@ -11863,9 +8814,6 @@ msgstr "エクステンションã®ãƒ˜ãƒ«ãƒ—ã®ã¿ã‚’表示"
msgid "show only help for commands"
msgstr "コマンドã«é–¢ã™ã‚‹ãƒ˜ãƒ«ãƒ—ã®ã¿ã‚’表示"
-msgid "show topics matching keyword"
-msgstr "キーワードã«åˆè‡´ã™ã‚‹ãƒˆãƒ”ック一覧を表示"
-
msgid "[-ec] [TOPIC]"
msgstr "[-ec] [TOPIC]"
@@ -11889,6 +8837,31 @@ msgstr ""
" æˆåŠŸæ™‚ã®ã‚³ãƒžãƒ³ãƒ‰çµ‚了値㯠0 ã§ã™ã€‚\n"
" "
+msgid "global options:"
+msgstr "グローãƒãƒ«ã‚ªãƒ—ション:"
+
+msgid "use \"hg help\" for the full list of commands"
+msgstr "全コマンドã®ä¸€è¦§ã¯ \"hg help\" ã§è¡¨ç¤ºã•ã‚Œã¾ã™"
+
+msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
+msgstr ""
+"全コマンドã®ä¸€è¦§ã¯ \"hg help\" ã§ã€ コマンド詳細㯠\"hg -v\" ã§è¡¨ç¤ºã•ã‚Œã¾ã™"
+
+#, python-format
+msgid "use \"hg help %s\" to show the full help text"
+msgstr "\"hg help %s\" ã§è©³ç´°ãªãƒ˜ãƒ«ãƒ—ãŒè¡¨ç¤ºã•ã‚Œã¾ã™"
+
+#, python-format
+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"
+msgstr "グローãƒãƒ«ã‚ªãƒ—ション㯠\"hg -v help %s\" ã§è¡¨ç¤ºã•ã‚Œã¾ã™"
+
+msgid "list of commands:"
+msgstr "コマンド一覧:"
+
#, python-format
msgid ""
"\n"
@@ -11917,65 +8890,23 @@ msgid "%s"
msgstr "%s"
#, python-format
-msgid "use \"hg help -e %s\" to show help for the %s extension"
-msgstr "\"hg help -e %s\" ã«ã‚ˆã£ã¦ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ %s ã®ãƒ˜ãƒ«ãƒ—ãŒè¡¨ç¤ºã•ã‚Œã¾ã™"
-
-msgid "options:"
-msgstr "オプション:"
-
-msgid "global options:"
-msgstr "グローãƒãƒ«ã‚ªãƒ—ション:"
-
-#, python-format
msgid ""
"\n"
-"use \"hg help %s\" to show the full help text\n"
+"use \"hg -v help %s\" to show verbose help\n"
msgstr ""
"\n"
-"\"hg help %s\" ã§è©³ç´°ãªãƒ˜ãƒ«ãƒ—ãŒè¡¨ç¤ºã•ã‚Œã¾ã™\n"
+"\"hg -v help %s\" ã§è©³ç´°ãªãƒ˜ãƒ«ãƒ—ãŒè¡¨ç¤ºã•ã‚Œã¾ã™\n"
-#, python-format
-msgid ""
-"\n"
-"use \"hg -v help %s\" to show more info\n"
-msgstr ""
-"\n"
-"\"hg -v help %s\" ã§è©³ç´°ãªæƒ…å ±ãŒè¡¨ç¤ºã•ã‚Œã¾ã™\n"
-
-msgid "basic commands:"
-msgstr "基本コマンド:"
+msgid "options:\n"
+msgstr "オプション:\n"
-msgid "list of commands:"
-msgstr "コマンド一覧:"
+#, python-format
+msgid "use \"hg help -e %s\" to show help for the %s extension"
+msgstr "\"hg help -e %s\" ã«ã‚ˆã£ã¦ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ %s ã®ãƒ˜ãƒ«ãƒ—ãŒè¡¨ç¤ºã•ã‚Œã¾ã™"
msgid "no commands defined\n"
msgstr "コマンドãŒå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-msgid "enabled extensions:"
-msgstr "有効化ã•ã‚Œã¦ã„るエクステンション:"
-
-msgid ""
-"\n"
-"additional help topics:"
-msgstr ""
-"\n"
-"追加ã®ãƒ˜ãƒ«ãƒ—トピック:"
-
-msgid "use \"hg help\" for the full list of commands"
-msgstr "全コマンドã®ä¸€è¦§ã¯ \"hg help\" ã§è¡¨ç¤ºã•ã‚Œã¾ã™"
-
-msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
-msgstr ""
-"全コマンドã®ä¸€è¦§ã¯ \"hg help\" ã§ã€ コマンド詳細㯠\"hg -v\" ã§è¡¨ç¤ºã•ã‚Œã¾ã™"
-
-#, python-format
-msgid "use \"hg help %s\" to show the full help text"
-msgstr "\"hg help %s\" ã§è©³ç´°ãªãƒ˜ãƒ«ãƒ—ãŒè¡¨ç¤ºã•ã‚Œã¾ã™"
-
-#, python-format
-msgid "use \"hg -v help%s\" to show builtin aliases and global options"
-msgstr "組ã¿è¾¼ã¿åˆ¥åãŠã‚ˆã³ã‚°ãƒ­ãƒ¼ãƒãƒ«ã‚ªãƒ—ションã®è¡¨ç¤ºã¯ \"hg -v help%s\""
-
#, python-format
msgid ""
"\n"
@@ -11998,15 +8929,35 @@ msgstr "\"hg help extensions\" ã§æœ‰åŠ¹ãªã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ã®æƒ…å ±ãŒè
msgid "'%s' is provided by the following extension:"
msgstr "以下ã®ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ã«ã‚ˆã‚Š '%s' ãŒæä¾›ã•ã‚Œã¦ã„ã¾ã™:"
-msgid "Topics"
-msgstr "トピック"
-
-msgid "Extension Commands"
-msgstr "エクステンション由æ¥ã®ã‚³ãƒžãƒ³ãƒ‰"
-
msgid "Mercurial Distributed SCM\n"
msgstr "Mercurial - 分散構æˆç®¡ç†ãƒ„ール\n"
+msgid "basic commands:"
+msgstr "基本コマンド:"
+
+msgid "enabled extensions:"
+msgstr "有効化ã•ã‚Œã¦ã„るエクステンション:"
+
+msgid "VALUE"
+msgstr "値"
+
+msgid "DEPRECATED"
+msgstr "éžæŽ¨å¥¨"
+
+msgid ""
+"\n"
+"[+] marked option can be specified multiple times"
+msgstr ""
+"\n"
+"[+] å°ä»˜ãã®ã‚ªãƒ—ションã¯è¤‡æ•°å›žæŒ‡å®šå¯èƒ½ã§ã™"
+
+msgid ""
+"\n"
+"additional help topics:"
+msgstr ""
+"\n"
+"追加ã®ãƒ˜ãƒ«ãƒ—トピック:"
+
msgid "identify the specified revision"
msgstr "当該リビジョンã®è­˜åˆ¥æƒ…報を表示"
@@ -12040,7 +8991,7 @@ msgstr ""
" 1ã¤ãªã„ã—2ã¤ã®è¦ªãƒªãƒ“ジョンã®ãƒãƒƒã‚·ãƒ¥å€¤ã‚’使用ã—ã¦ã€\n"
" 指定リビジョンã«ãŠã‘ã‚‹è¦ç´„情報を表示ã—ã¾ã™ã€‚\n"
" 親リビジョンãƒãƒƒã‚·ãƒ¥ã«ç¶šã‘ã¦ã€\n"
-" 作業領域ã®å¤‰æ›´ãŒæœªã‚³ãƒŸãƒƒãƒˆã®å ´åˆã¯ \"+\" ã€\n"
+" 作業領域ã«æœªã‚³ãƒŸãƒƒãƒˆã®å¤‰æ›´ãŒã‚ã‚‹å ´åˆã¯ \"+\" ã€\n"
" default 以外ã®ãƒ–ランãƒã§ã‚ã‚Œã°ãƒ–ランãƒåã€\n"
" 付与ã•ã‚Œã¦ã„ã‚‹ã‚¿ã‚°ã®ä¸€è¦§ã€\n"
" ãŠã‚ˆã³ä»˜ä¸Žã•ã‚Œã¦ã„るブックマークã®ä¸€è¦§ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚"
@@ -12058,24 +9009,6 @@ msgstr ""
" パス指定有りã§ã®èµ·å‹•ã®éš›ã«ã¯ã€ ä»–ã®ãƒªãƒã‚¸ãƒˆãƒªãªã„ã—ãƒãƒ³ãƒ‰ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã®\n"
" 状態を表示ã—ã¾ã™ã€‚"
-msgid " - generate a build identifier for the working directory::"
-msgstr " - 作業領域ã®ãƒ“ルド識別情報ã®ç”Ÿæˆ::"
-
-msgid " hg id --id > build-id.dat"
-msgstr " hg id --id > build-id.dat"
-
-msgid " - find the revision corresponding to a tag::"
-msgstr " - ã‚¿ã‚°ã«å¯¾å¿œã™ã‚‹ãƒªãƒ“ジョンã®ç‰¹å®š::"
-
-msgid " hg id -n -r 1.3"
-msgstr " hg id -n -r 1.3"
-
-msgid " - check the most recent revision of a remote repository::"
-msgstr " - 連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã«ãŠã‘る最新リビジョンã®ç¢ºèª::"
-
-msgid " hg id -r tip http://selenic.com/hg/"
-msgstr " hg id -r tip http://selenic.com/hg/"
-
msgid "can't query remote revision number, branch, or tags"
msgstr "リビジョン番å·/ブランãƒ/ã‚¿ã‚°ã¯é éš”å•ã„åˆã‚ã›ã§ãã¾ã›ã‚“"
@@ -12116,13 +9049,13 @@ msgid ""
" --no-commit is specified)."
msgstr ""
" 列挙ã•ã‚ŒãŸãƒ‘ッãƒã®å–ã‚Šè¾¼ã¿ãŠã‚ˆã³ã‚³ãƒŸãƒƒãƒˆã‚’\n"
-" (--no-commit 指定ãŒç„¡ã„é™ã‚Š) 個別ã«è¡Œã„ã¾ã™ã€‚"
+" (--no-commit 指定ãŒç„¡ã„é™ã‚Š)個別ã«è¡Œã„ã¾ã™ã€‚"
msgid ""
" If there are outstanding changes in the working directory, import\n"
" will abort unless given the -f/--force flag."
msgstr ""
-" 作業領域ã®å¤‰æ›´ãŒæœªã‚³ãƒŸãƒƒãƒˆã®å ´åˆã€ -f/--force ãŒæŒ‡å®šã•ã‚Œãªã„é™ã‚Šã€\n"
+" 作業領域ã«æœªã‚³ãƒŸãƒƒãƒˆã®å¤‰æ›´ãŒã‚ã‚‹å ´åˆã€ -f/--force ãŒæŒ‡å®šã•ã‚Œãªã„é™ã‚Š\n"
" å–ã‚Šè¾¼ã¿ã¯å®Ÿæ–½ã•ã‚Œã¾ã›ã‚“。"
msgid ""
@@ -12133,11 +9066,12 @@ msgid ""
" text/plain body parts before first diff are added to commit\n"
" message."
msgstr ""
-" æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«å½¢å¼ (但㗠text/plain ãªã„ã— text/x-patch åž‹é™å®š)\n"
-" ã‚’å«ã‚ã¦ã€ é›»å­ãƒ¡ãƒ¼ãƒ«ã‹ã‚‰ã‚‚パッãƒã‚’å–ã‚Šè¾¼ã‚ã¾ã™ã€‚\n"
-" 作æˆè€…ï¼ã‚³ãƒŸãƒƒãƒˆãƒ­ã‚°ãŒç„¡ã„å ´åˆã€ é›»å­ãƒ¡ãƒ¼ãƒ«ã® From ãŠã‚ˆã³ Subject\n"
-" ヘッダ値を使用ã—ã¾ã™ã€‚ 差分データã«å…ˆç«‹ã¤ text/plain パートã¯ã€\n"
-" コミットログã«è¿½è¨˜ã•ã‚Œã¾ã™ã€‚"
+" é›»å­ãƒ¡ãƒ¼ãƒ«ã‹ã‚‰ç›´æŽ¥ãƒ‘ッãƒã‚’å–り込むã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚ 添付ファイル\n"
+" å½¢å¼ã®ãƒ‘ッãƒã§ã‚ã£ã¦ã‚‚å–ã‚Šè¾¼ã¿å¯èƒ½ã§ã™(但ã—〠text/plain ãªã„ã—\n"
+" text/x-patch åž‹ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“)。 作æˆè€…ãŠã‚ˆã³ã‚³ãƒŸãƒƒãƒˆãƒ­ã‚°ãŒç„¡ã„\n"
+" å ´åˆã€ é›»å­ãƒ¡ãƒ¼ãƒ«ã® From ãŠã‚ˆã³ Subject ヘッダ値ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚\n"
+" 最åˆã®ãƒ‘ッãƒãƒ‡ãƒ¼ã‚¿ã«å…ˆç«‹ã¤ text/plain ボディã¯ã€ コミットログã«è¿½è¨˜\n"
+" ã•ã‚Œã¾ã™ã€‚"
msgid ""
" If the imported patch was generated by :hg:`export`, user and\n"
@@ -12147,8 +9081,8 @@ msgid ""
msgstr ""
" :hg:`export` ã«ã‚ˆã‚Šç”Ÿæˆã•ã‚ŒãŸãƒ‘ッãƒã‚’å–り込む場åˆã€ é›»å­ãƒ¡ãƒ¼ãƒ«ã®\n"
" ヘッダやボディã®æƒ…報よりも〠パッãƒã«å«ã¾ã‚Œã‚‹æƒ…å ±ã®æ–¹ãŒå„ªå…ˆã—ã¾ã™ã€‚\n"
-" コマンドラインã§ã® -m/--message ãªã„ã— -u/--user 指定ã¯ã€\n"
-" ã“れらよりも更ã«å„ªå…ˆã—ã¾ã™ã€‚"
+" コマンドラインã§ã® -m/--message ãªã„ã— -u/--user 指定ã¯ã“れらよりも\n"
+" æ›´ã«å„ªå…ˆã—ã¾ã™ã€‚"
msgid ""
" If --exact is specified, import will set the working directory to\n"
@@ -12157,11 +9091,11 @@ msgid ""
" the patch. This may happen due to character set problems or other\n"
" deficiencies in the text patch format."
msgstr ""
-" --exact 指定時ã«ã¯ã€ 作業領域をパッãƒã®è¦ªãƒªãƒ“ジョンã«æ›´æ–°ã—ã¦ã‹ã‚‰ã€\n"
-" パッãƒã‚’é©ç”¨ã—ã¾ã™ãŒã€ パッãƒã«ã‚ˆã‚Šä½œæˆã•ã‚ŒãŸãƒªãƒ“ジョンã®ãƒãƒƒã‚·ãƒ¥å€¤ãŒã€\n"
-" パッãƒã«è¨˜éŒ²ã•ã‚ŒãŸå€¤ã¨ç•°ãªã‚‹å ´åˆã€ パッãƒã®å–ã‚Šè¾¼ã¿ã¯ä¸­æ–­ã•ã‚Œã¾ã™ã€‚\n"
-" ã“ã®å•é¡Œã®åŽŸå› ã¨ã—ã¦è€ƒãˆã‚‰ã‚Œã‚‹ã®ã¯ã€ 文字符å·åŒ–å½¢å¼ã®ä¸ä¸€è‡´ã‚„ã€\n"
-" パッãƒå†…容ã®æ¬ æãªã©ã§ã™ã€‚"
+" --exact ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 作業領域をパッãƒã®è¦ªãƒªãƒ“ジョンã«æ›´æ–°ã—ã¦\n"
+" ã‹ã‚‰ãƒ‘ッãƒã‚’é©ç”¨ã—ã¾ã™ãŒã€ 作æˆã•ã‚ŒãŸãƒªãƒ“ジョンã®ãƒãƒƒã‚·ãƒ¥å€¤ãŒã€ パッãƒ\n"
+" ã«è¨˜éŒ²ã•ã‚ŒãŸå€¤ã¨ç•°ãªã‚‹å ´åˆã€ å–ã‚Šè¾¼ã¿ã¯å®Ÿæ–½ã•ã‚Œã¾ã›ã‚“。 ã“ã®ç¾è±¡ã¯ã€\n"
+" 利用ã™ã‚‹æ–‡å­—符å·åŒ–ã®å•é¡Œã‚„〠パッãƒã®ãƒ†ã‚­ã‚¹ãƒˆéƒ¨åˆ†ã®ä¸è¶³ãªã©ãŒåŽŸå› ã§\n"
+" 発生ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
" Use --bypass to apply and commit patches directly to the\n"
@@ -12169,14 +9103,16 @@ msgid ""
" patches will be applied on top of the working directory parent\n"
" revision."
msgstr ""
-" --bypass 指定時ã¯ã€ 作業領域ã®æ”¹å¤‰ç„¡ã—ã«å¤‰æ›´å†…容をå映ã—ã¾ã™ã€‚\n"
-" --exact 指定ãŒç„¡ã„å ´åˆã€ 変更ã¯ä½œæ¥­é ˜åŸŸã®è¦ªãƒªãƒ“ジョンã«é©ç”¨ã•ã‚Œã¾ã™ã€‚"
+" --bypass 指定ã™ã‚‹ã“ã¨ã§ã€ 作業領域を改変ã›ãšã«ã€\n"
+" リãƒã‚¸ãƒˆãƒªã¸å¤‰æ›´å†…容を直接å映ã•ã›ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚\n"
+" --exact 指定ãŒç„¡ã„å ´åˆã€ 変更内容ã®é©ç”¨å¯¾è±¡ã¯ã€\n"
+" 作業領域ã®è¦ªãƒªãƒ“ジョンã«ãªã‚Šã¾ã™ã€‚"
msgid ""
" With -s/--similarity, hg will attempt to discover renames and\n"
-" copies in the patch in the same way as :hg:`addremove`."
+" copies in the patch in the same way as 'addremove'."
msgstr ""
-" -s/--similarity ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ :hg:`addremove` ã¨åŒæ§˜ãªæ–¹é‡ã§ã€\n"
+" -s/--similarity ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 'hg addremove' ã¨åŒæ§˜ãªæ–¹é‡ã§ã€\n"
" パッãƒã«ã‚ˆã‚‹å¤‰æ›´çµæžœã‹ã‚‰ã€ 改åや複製を検出ã—ã¾ã™ã€‚"
msgid ""
@@ -12188,62 +9124,30 @@ msgstr ""
" URL ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ パッãƒã‚’当該 URL ã‹ã‚‰ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã—ã¾ã™ã€‚\n"
" -d/--date ã§ã®æ—¥æ™‚表記㯠:hg:`help dates` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-msgid " - import a traditional patch from a website and detect renames::"
-msgstr " - ウェブサイトã‹ã‚‰å…¥æ‰‹ã—ãŸæ¨™æº–çš„ãªãƒ‘ッãƒã®é©ç”¨ã¨æ”¹åã®åˆ¤å®š::"
-
-msgid " hg import -s 80 http://example.com/bugfix.patch"
-msgstr " hg import -s 80 http://example.com/bugfix.patch"
-
-msgid " - import a changeset from an hgweb server::"
-msgstr " - hgweb サーãƒã‹ã‚‰ã®æŒ‡å®šãƒªãƒ“ジョンã®å–ã‚Šè¾¼ã¿::"
-
-msgid " hg import http://www.selenic.com/hg/rev/5ca8c111e9aa"
-msgstr " hg import http://www.selenic.com/hg/rev/5ca8c111e9aa"
-
-msgid " - import all the patches in an Unix-style mbox::"
-msgstr " - Unix å½¢å¼ mbox ファイル中ã®å…¨ãƒ‘ッãƒã®å–ã‚Šè¾¼ã¿::"
-
-msgid " hg import incoming-patches.mbox"
-msgstr " hg import incoming-patches.mbox"
-
-msgid ""
-" - attempt to exactly restore an exported changeset (not always\n"
-" possible)::"
-msgstr ""
-" - export ã•ã‚ŒãŸãƒªãƒ“ジョンã®åŽ³å¯†é©ç”¨ (常ã«æˆåŠŸã™ã‚‹ã¨ã¯é™ã‚Šã¾ã›ã‚“)::"
-
-msgid " hg import --exact proposed-fix.patch"
-msgstr " hg import --exact proposed-fix.patch"
-
-msgid "need at least one patch to import"
-msgstr "å–ã‚Šè¾¼ã¿ã«ã¯æœ€ä½Ž1ã¤ã®ãƒ‘ッãƒå指定ãŒå¿…è¦ã§ã™"
-
msgid "cannot use --no-commit with --bypass"
-msgstr "--no-commit 㨠--bypass ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
+msgstr "--no-commit 㨠--bypass ã¯ä½µç”¨å‡ºæ¥ã¾ã›ã‚“"
msgid "cannot use --similarity with --bypass"
-msgstr "--similarity 㨠--bypass ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
+msgstr "--similarity 㨠--bypass ã¯ä½µç”¨å‡ºæ¥ã¾ã›ã‚“"
msgid "patch is damaged or loses information"
msgstr "パッãƒã«ã¯ç ´æãªã„ã—情報ã®æ¬ è½ãŒã‚ã‚Šã¾ã™"
-msgid "applied to working directory"
-msgstr "作業領域ã¸ã®é©ç”¨"
+msgid "to working directory"
+msgstr "作業領域"
msgid "not a Mercurial patch"
msgstr "Mercurial å‘ã‘ã®ãƒ‘ッãƒã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#. i18n: refers to a short changeset id
-#, python-format
-msgid "created %s"
-msgstr "%s を作æˆ"
-
msgid "applying patch from stdin\n"
msgstr "標準入力ã‹ã‚‰ã®ãƒ‘ッãƒã‚’é©ç”¨ä¸­\n"
#, python-format
-msgid "%s: no diffs found"
-msgstr "%s: 差分ãŒã‚ã‚Šã¾ã›ã‚“"
+msgid "applied %s\n"
+msgstr "%s ã«å¯¾ã—ã¦é©ç”¨\n"
+
+msgid "no diffs found"
+msgstr "差分ãŒã‚ã‚Šã¾ã›ã‚“"
msgid "run even if remote repository is unrelated"
msgstr "連æºå…ˆãŒç„¡é–¢ä¿‚ãªãƒªãƒã‚¸ãƒˆãƒªã§ã‚‚実行"
@@ -12274,17 +9178,16 @@ msgid ""
" pull location. These are the changesets that would have been pulled\n"
" if a pull at the time you issued this command."
msgstr ""
-" ファイルパス〠URL ãªã„ã— :hg:`pull` ã®ç„¡æŒ‡å®šæ™‚連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªä¸­ã®ã€\n"
-" 未å–ã‚Šè¾¼ã¿ãƒªãƒ“ジョンを検索ã—ã¾ã™ã€‚ ã“れらã®ãƒªãƒ“ジョンã¯\n"
-" :hg:`pull` を実行ã—ãŸéš›ã«ã€ å–ã‚Šè¾¼ã¿å¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚"
+" ファイルパスや URL〠'hg pull' ã® default å–ã‚Šè¾¼ã¿å¯¾è±¡ã«ã‚ˆã‚ŠæŒ‡å®š\n"
+" ã•ã‚Œã‚‹ãƒªãƒã‚¸ãƒˆãƒªä¸­ã®ã€ 未å–ã‚Šè¾¼ã¿ãƒªãƒ“ジョンを検索ã—ã¾ã™ã€‚\n"
+" ã“れらã¯ã€ 'hg pull' を実行ã—ãŸéš›ã®å–ã‚Šè¾¼ã¿å¯¾è±¡ãƒªãƒ“ジョンã§ã™ã€‚"
msgid ""
" For remote repository, using --bundle avoids downloading the\n"
" changesets twice if the incoming is followed by a pull."
msgstr ""
-" --bundle ã§ã®æ›¸ã出ã—çµæžœã‚’利用ã—㟠:hg:`pull` ã®å®Ÿæ–½ã¯ã€\n"
-" :hg:`pull` ã§ã®å†åº¦ã®ãƒ‡ãƒ¼ã‚¿è»¢é€ã‚’抑止ã§ãã‚‹ãŸã‚ã€\n"
-" (データ転é€ã‚³ã‚¹ãƒˆã®é«˜ã„) é éš”ホストã¨ã®é€£æºã§ã¯ç‰¹ã«æœ‰ç”¨ã§ã™ã€‚"
+" é éš”ホストã®ãƒªãƒã‚¸ãƒˆãƒªã®å ´åˆã€ --bundle を使用ã™ã‚‹ã“ã¨ã§ã€ 本コマンド\n"
+" 実行後㮠'hg pull' 実施ã®éš›ã«ã€ å†åº¦ã®ãƒªãƒ“ジョン検索を抑止ã§ãã¾ã™ã€‚"
msgid " See pull for valid source format details."
msgstr " 対象リãƒã‚¸ãƒˆãƒªã®æŒ‡å®šå½¢å¼ã¯ :hg:`help pull` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
@@ -12374,6 +9277,42 @@ msgstr ""
" å«ã‚€å˜ä¸€ã®ãƒ•ã‚¡ã‚¤ãƒ«åを〠\"xargs\" ãŒè¤‡æ•°ã®ãƒ•ã‚¡ã‚¤ãƒ«åã«è§£é‡ˆã—ã¦\n"
" ã—ã¾ã†å•é¡Œã¯ã€ ã“ã®ã‚ªãƒ—ションã«ã‚ˆã‚Šè§£æ¶ˆã•ã‚Œã¾ã™ã€‚"
+msgid "only follow the first parent of merge changesets"
+msgstr "マージã®éš›ã«ã¯ç¬¬1親ã®ã¿ã‚’é¡ã‚‹"
+
+msgid "show revisions matching date spec"
+msgstr "指定日時ã«åˆè‡´ã™ã‚‹ãƒªãƒ“ジョンを表示"
+
+msgid "show copied files"
+msgstr "複製ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示"
+
+msgid "do case-insensitive search for a given text"
+msgstr "指定キーワードã«ã‚ˆã‚‹æ¤œç´¢(大文字å°æ–‡å­—ã¯ç„¡è¦–)"
+
+msgid "include revisions where files were removed"
+msgstr "ファイルãŒç™»éŒ²é™¤å¤–ã•ã‚ŒãŸãƒªãƒ“ジョンをå«ã‚ã‚‹"
+
+msgid "show only merges"
+msgstr "マージ実施リビジョンã®ã¿ã‚’表示"
+
+msgid "revisions committed by user"
+msgstr "当該ユーザã«ã‚ˆã£ã¦ã‚³ãƒŸãƒƒãƒˆã•ã‚ŒãŸãƒªãƒ“ジョンを表示"
+
+msgid "show only changesets within the given named branch (DEPRECATED)"
+msgstr "指定ã®åå‰ä»˜ãブランãƒã«å±žã™ã‚‹ãƒªãƒ“ジョンã®ã¿ã‚’表示 (éžæŽ¨å¥¨)"
+
+msgid "show changesets within the given named branch"
+msgstr "指定ã®åå‰ä»˜ãブランãƒã«å±žã™ã‚‹ãƒªãƒ“ジョンを表示"
+
+msgid "do not display revision or any of its ancestors"
+msgstr "当該リビジョンã¨ãã®ç¥–å…ˆã®è¡¨ç¤ºã‚’抑止"
+
+msgid "show hidden changesets"
+msgstr "éš ã‚ŒãŸãƒªãƒ“ジョンã®è¡¨ç¤º"
+
+msgid "[OPTION]... [FILE]"
+msgstr "[OPTION]... [FILE]"
+
msgid "show revision history of entire repository or files"
msgstr "リãƒã‚¸ãƒˆãƒªå…¨ä½“ãªã„ã—ファイルã®å¤‰æ›´å±¥æ­´ã®è¡¨ç¤º"
@@ -12383,25 +9322,29 @@ msgid ""
msgstr " 特定ã®ãƒ•ã‚¡ã‚¤ãƒ«ãªã„ã—リãƒã‚¸ãƒˆãƒªå…¨ä½“ã®å¤‰æ›´å±¥æ­´ã‚’表示ã—ã¾ã™ã€‚"
msgid ""
-" 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."
-msgstr ""
-" 特ã«æŒ‡å®šã•ã‚Œãªã„å ´åˆã€ 対象ã¨ãªã‚‹ãƒªãƒ“ジョンã®ç¯„囲㯠``tip:0``\n"
-" ã¨ã¿ãªã•ã‚Œã¾ã™ãŒã€ --follow ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã¯ã€ 作業領域ã®\n"
-" 親リビジョンãŒé–‹å§‹ãƒªãƒ“ジョンã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
" File history is shown without following rename or copy history of\n"
" files. Use -f/--follow with a filename to follow history across\n"
" renames and copies. --follow without a filename will only show\n"
-" ancestors or descendants of the starting revision."
+" ancestors or descendants of the starting revision. --follow-first\n"
+" only follows the first parent of merge revisions."
msgstr ""
" ファイルã®å±¥æ­´è¡¨ç¤ºã§ã¯ã€ 改åï¼è¤‡è£½æ™‚ã®å…ƒãƒ•ã‚¡ã‚¤ãƒ«ã«ã¾ã§ã•ã‹ã®ã¼ã£ãŸ\n"
" 履歴ã¯è¡¨ç¤ºã—ã¾ã›ã‚“。 元ファイルã®å±¥æ­´ã‚’ã•ã‹ã®ã¼ã‚‹å ´åˆã¯ã€ ファイルå\n"
" ã¨ä¸€ç·’ã« -f/--follow を使用ã—ã¾ã™ã€‚ --follow 指定ã®éš›ã«ãƒ•ã‚¡ã‚¤ãƒ«åãŒ\n"
" 指定ã•ã‚Œãªã„å ´åˆã¯ã€ 開始リビジョンã«é€£ãªã‚‹ãƒªãƒ“ジョンã®ã¿ã‚’表示\n"
-" ã—ã¾ã™ã€‚"
+" ã—ã¾ã™ã€‚ --follow-first 指定ã¯ã€ マージリビジョンã«ãŠã„ã¦ç¬¬1親ã®å±¥æ­´\n"
+" ã®ã¿ã‚’ã•ã‹ã®ã¼ã‚Šã¾ã™ã€‚"
+
+msgid ""
+" 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."
+msgstr ""
+" 特ã«æŒ‡å®šã•ã‚Œãªã„å ´åˆã€ 対象ã¨ãªã‚‹ãƒªãƒ“ジョンã®ç¯„囲㯠``tip:0``\n"
+" ã¨ã¿ãªã•ã‚Œã¾ã™ãŒã€ --follow ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã¯ã€ 作業領域ã®\n"
+" 親リビジョンãŒé–‹å§‹ãƒªãƒ“ジョンã¨ã¿ãªã•ã‚Œã¾ã™ã€‚ 複数ã®ãƒªãƒ“ジョンã®\n"
+" ログを一括ã—ã¦è¡¨ç¤ºã•ã›ã‚‹æ–¹æ³•ã¯ :hg:`help revsets` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
" By default this command prints revision number and changeset id,\n"
@@ -12412,8 +9355,8 @@ msgstr ""
" 特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ 本コマンドãŒå‡ºåŠ›ã™ã‚‹æƒ…報㯠-\n"
" リビジョン番å·ã€ 識別用ãƒãƒƒã‚·ãƒ¥å€¤ã€ タグ〠(リビジョン番å·ã®é›¢ã‚ŒãŸ)\n"
" 親リビジョン〠作æˆè€…〠作æˆæ—¥æ™‚ãŠã‚ˆã³ã‚³ãƒŸãƒƒãƒˆãƒ­ã‚°ã®1行目 - ã§ã™ã€‚\n"
-" -v/--verbose ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 変更対象ファイル一覧ã¨ã€\n"
-" コミットログã®å…¨æ–‡ã‚‚表示ã•ã‚Œã¾ã™ã€‚"
+" -v/--verbose ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 変更対象ファイル一覧ã¨ã€ コミット\n"
+" ログã®å…¨æ–‡ã‚‚表示ã•ã‚Œã¾ã™ã€‚"
msgid ""
" .. note::\n"
@@ -12428,91 +9371,6 @@ msgstr ""
" 固定ã•ã‚Œã¦ã„ã‚‹ãŸã‚ã§ã™ã€‚ ファイル一覧ãŒäºˆæœŸã›ã¬å†…容ã¨ãªã‚‹ã®ã¯ã€\n"
" 親åŒå£«ã§å†…容ãŒç•°ãªã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®ã¿ãŒåˆ—挙ã•ã‚Œã‚‹ãŸã‚ã§ã™ã€‚"
-msgid ""
-" .. note::\n"
-" for performance reasons, log FILE may omit duplicate changes\n"
-" made on branches and will not show deletions. To see all\n"
-" changes including duplicates and deletions, use the --removed\n"
-" switch."
-msgstr ""
-" .. note::\n"
-" ファイルå指定付ãã§ã®å®Ÿè¡Œã§ã¯ã€ 複数ブランãƒä¸Šã§ã®åŒä¸€å¤‰æ›´ã‚„ã€\n"
-" 登録除外実施リビジョンã¯ã€ 性能的ãªç‚¹ã‹ã‚‰è¡¨ç¤ºã—ã¾ã›ã‚“。\n"
-" é‡è¤‡å¤‰æ›´ã‚„登録除外をå«ã‚〠全ã¦ã®ãƒªãƒ“ジョンを表示ã™ã‚‹å ´åˆã€\n"
-" --removed を指定ã—ã¦ãã ã•ã„。"
-
-msgid " - changesets with full descriptions and file lists::"
-msgstr " - 全リビジョンã®ã‚³ãƒŸãƒƒãƒˆãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¨ãƒ•ã‚¡ã‚¤ãƒ«ä¸€è¦§ã®è¡¨ç¤º::"
-
-msgid " hg log -v"
-msgstr " hg log -v"
-
-msgid " - changesets ancestral to the working directory::"
-msgstr " - 作業領域ã®ç¥–å…ˆã®è¡¨ç¤º::"
-
-msgid " hg log -f"
-msgstr " hg log -f"
-
-msgid " - last 10 commits on the current branch::"
-msgstr " - ç¾è¡Œãƒ–ランãƒã«ãŠã‘ã‚‹ç›´è¿‘ã® 10 リビジョンã®è¡¨ç¤º::"
-
-msgid " hg log -l 10 -b ."
-msgstr " hg log -l 10 -b ."
-
-msgid ""
-" - changesets showing all modifications of a file, including removals::"
-msgstr " - 登録除外をå«ã‚€ã€ãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã™ã‚‹å…¨å¤‰æ›´ã®è¡¨ç¤º::"
-
-msgid " hg log --removed file.c"
-msgstr " hg log --removed file.c"
-
-msgid ""
-" - all changesets that touch a directory, with diffs, excluding merges::"
-msgstr " - マージ以外ã§ã®ã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªé…下ã¸ã®å…¨å¤‰æ›´ã®å·®åˆ†ä»˜ã表示::"
-
-msgid " hg log -Mp lib/"
-msgstr " hg log -Mp lib/"
-
-msgid " - all revision numbers that match a keyword::"
-msgstr " - 指定キーワードã«åˆè‡´ã™ã‚‹å…¨ãƒªãƒ“ジョン番å·ã®è¡¨ç¤º::"
-
-msgid " hg log -k bug --template \"{rev}\\n\""
-msgstr " hg log -k bug --template \"{rev}\\n\""
-
-msgid " - check if a given changeset is included is a tagged release::"
-msgstr " - 指定リビジョンãŒæŒ‡å®šã‚¿ã‚°æ™‚点ã«ãŠã„ã¦å«ã¾ã‚Œã¦ã„ã‚‹ã‹ã‚’確èª::"
-
-msgid " hg log -r \"a21ccf and ancestor(1.9)\""
-msgstr " hg log -r \"a21ccf and ancestor(1.9)\""
-
-msgid " - find all changesets by some user in a date range::"
-msgstr " - 指定期間ã«ãŠã‘る指定ユーザã«ã‚ˆã‚‹å…¨å¤‰æ›´ã®è¡¨ç¤º::"
-
-msgid " hg log -k alice -d \"may 2008 to jul 2008\""
-msgstr " hg log -k alice -d \"may 2008 to jul 2008\""
-
-msgid " - summary of all changesets after the last tag::"
-msgstr " - 最後ã®ã‚¿ã‚°ä»˜ã‘以é™ã®å…¨å¤‰æ›´ã®æ¦‚è¦ã®è¡¨ç¤º::"
-
-msgid ""
-" hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
-msgstr ""
-" hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
-
-msgid ""
-" See :hg:`help revisions` and :hg:`help revsets` for more about\n"
-" specifying revisions."
-msgstr ""
-" リビジョン指定ã®è©³ç´°ã¯ :hg:`help revisions` ãŠã‚ˆã³ :hg:`help revsets`\n"
-" ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-
-msgid ""
-" See :hg:`help templates` for more about pre-packaged styles and\n"
-" specifying custom templates."
-msgstr ""
-" åŒæ¢±ã•ã‚Œã¦ã„るスタイルやã€ãƒ†ãƒ³ãƒ—レートã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºç­‰ã®è©³ç´°ã¯ã€\n"
-" :hg:`help templates` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-
msgid "revision to display"
msgstr "表示対象リビジョン"
@@ -12551,7 +9409,7 @@ msgstr ""
" ã“ã®å ´åˆã€ 削除ï¼æ”¹å対象ファイルもå«ã¾ã‚Œã¾ã™ã€‚"
msgid "can't specify a revision with --all"
-msgstr "リビジョン指定㨠--all ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
+msgstr "リビジョン指定㨠--all ã¯ä½µç”¨å‡ºæ¥ã¾ã›ã‚“"
msgid "force a merge with outstanding changes"
msgstr "作業領域中ã®æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ã”ã¨ãƒžãƒ¼ã‚¸ã‚’実施"
@@ -12626,37 +9484,26 @@ msgstr ""
" æˆåŠŸæ™‚ã®ã‚³ãƒžãƒ³ãƒ‰çµ‚了値㯠0〠未解消ファイルãŒã‚ã‚‹å ´åˆã¯ 1 ã§ã™ã€‚\n"
" "
-msgid ""
-"multiple matching bookmarks to merge - please merge with an explicit rev or "
-"bookmark"
-msgstr "ç¾ãƒ–ックマークã¯è¤‡æ•°ãƒ˜ãƒƒãƒ‰ã§ã™ -マージ対象を明示ã—ã¦ãã ã•ã„"
-
-msgid "run 'hg heads' to see all heads"
-msgstr "'hg heads' ã«ã‚ˆã‚Šãƒ˜ãƒƒãƒ‰ã‚’一覧表示ã§ãã¾ã™"
-
-msgid ""
-"no matching bookmark to merge - please merge with an explicit rev or bookmark"
-msgstr "ç¾ãƒ–ックマークã¯å˜ä¸€ãƒ˜ãƒƒãƒ‰ã§ã™ - マージ対象を明示ã—ã¦ãã ã•ã„"
-
#, python-format
msgid "branch '%s' has %d heads - please merge with an explicit rev"
msgstr "ブランム'%s' ã«ã¯ %d 個ã®ãƒ˜ãƒƒãƒ‰ã‚ã‚Šã¾ã™ - 対象を明示ã—ã¦ãã ã•ã„"
msgid "run 'hg heads .' to see heads"
-msgstr "'hg heads .' ã«ã‚ˆã‚Šãƒ˜ãƒƒãƒ‰ã‚’一覧表示ã§ãã¾ã™"
-
-msgid "heads are bookmarked - please merge with an explicit rev"
-msgstr "ヘッドã¯ãƒ–ックマークã•ã‚Œã¦ã„ã¾ã™ - マージ対象を明示ã—ã¦ãã ã•ã„"
+msgstr "'hg heads .' ã«ã‚ˆã‚Šãƒ˜ãƒƒãƒ‰ã‚’一覧表示出æ¥ã¾ã™"
#, python-format
msgid "branch '%s' has one head - please merge with an explicit rev"
msgstr "ブランム'%s' ã¯å˜ä¸€ãƒ˜ãƒƒãƒ‰ã§ã™ - 対象を明示ã—ã¦ãã ã•ã„"
-msgid "nothing to merge"
+msgid "run 'hg heads' to see all heads"
+msgstr "'hg heads' ã«ã‚ˆã‚Šãƒ˜ãƒƒãƒ‰ã‚’一覧表示出æ¥ã¾ã™"
+
+msgid "there is nothing to merge"
msgstr "マージã®å¿…è¦ãŒã‚ã‚Šã¾ã›ã‚“"
-msgid "use 'hg update' instead"
-msgstr "'hg update' を使用ã—ã¦ãã ã•ã„"
+#, python-format
+msgid "%s - use \"hg update\" instead"
+msgstr "%s - \"hg update\" を使用ã—ã¦ãã ã•ã„"
msgid "working directory not at a head revision"
msgstr "作業領域ã®è¦ªãƒªãƒ“ジョンã¯ã€ ヘッドã§ã¯ã‚ã‚Šã¾ã›ã‚“"
@@ -12674,17 +9521,16 @@ msgid "[-M] [-p] [-n] [-f] [-r REV]... [DEST]"
msgstr "[-M] [-p] [-n] [-f] [-r REV]... [DEST]"
msgid "show changesets not found in the destination"
-msgstr "連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã«å«ã¾ã‚Œãªã„リビジョンã®è¡¨ç¤º"
+msgstr "連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã«å«ã¾ã‚Œãªã„ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®è¡¨ç¤º"
msgid ""
" Show changesets not found in the specified destination repository\n"
" or the default push location. These are the changesets that would\n"
" be pushed if a push was requested."
msgstr ""
-" 指定ã•ã‚ŒãŸé€£æºå…ˆãƒªãƒã‚¸ãƒˆãƒª (ãªã„ã—〠無指定時㮠:hg:`push`\n"
-" 先リãƒã‚¸ãƒˆãƒª) ã«å«ã¾ã‚Œãªã„リビジョンを表示ã—ã¾ã™ã€‚\n"
-" ã“ã“ã§è¡¨ç¤ºã•ã‚Œã‚‹ãƒªãƒ“ジョンã¯ã€\n"
-" :hg:`push` 実施ã®éš›ã«ã€ 連æºå…ˆã¸ã¨å映ã•ã‚Œã¾ã™ã€‚"
+" 指定ã•ã‚ŒãŸé€£æºå…ˆãƒªãƒã‚¸ãƒˆãƒª(ãªã„ã—〠無指定時㮠hg push 先リãƒã‚¸ãƒˆãƒª)ã«\n"
+" å«ã¾ã‚Œãªã„ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã‚’表示ã—ã¾ã™ã€‚ ã“ã“ã§è¡¨ç¤ºã•ã‚Œã‚‹ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã¯\n"
+" hg push 実施ã®éš›ã«ã€ 連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã¸ã¨å映ã•ã‚Œã‚‹ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã§ã™ã€‚"
msgid " See pull for details of valid destination formats."
msgstr " 有効ãªãƒªãƒã‚¸ãƒˆãƒªæŒ‡å®šå½¢å¼ã¯ :hg:`pull` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
@@ -12784,72 +9630,6 @@ msgstr " 詳細㯠:hg:`help urls` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid "not found!\n"
msgstr "指定シンボルã¯ä¸æ˜Žã§ã™\n"
-msgid "set changeset phase to public"
-msgstr "リビジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã‚’ public 化"
-
-msgid "set changeset phase to draft"
-msgstr "リビジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã‚’ draft 化"
-
-msgid "set changeset phase to secret"
-msgstr "リビジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã‚’ secret 化"
-
-msgid "allow to move boundary backward"
-msgstr "フェーズ境界ã®ç§»å‹•ã‚’ä¼´ã†å¼·åˆ¶å®Ÿè¡Œ"
-
-msgid "target revision"
-msgstr "対象リビジョン"
-
-msgid "[-p|-d|-s] [-f] [-r] REV..."
-msgstr "[-p|-d|-s] [-f] [-r] REV..."
-
-msgid "set or show the current phase name"
-msgstr "ç¾è¡Œãƒ•ã‚§ãƒ¼ã‚ºçŠ¶æ…‹ã®æ”¹å¤‰ãªã„ã—表示"
-
-msgid " With no argument, show the phase name of specified revisions."
-msgstr " 引数無ã—ã®å ´åˆã€ 指定リビジョンã®ãƒ•ã‚§ãƒ¼ã‚ºåを表示ã—ã¾ã™ã€‚"
-
-msgid ""
-" With one of -p/--public, -d/--draft or -s/--secret, change the\n"
-" phase value of the specified revisions."
-msgstr ""
-" -p/--public〠-d/--draft ãªã„ã— -s/--secret ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€\n"
-" 指定リビジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã‚’指定値ã«å¤‰æ›´ã—ã¾ã™ã€‚"
-
-msgid ""
-" Unless -f/--force is specified, :hg:`phase` won't move changeset from a\n"
-" lower phase to an higher phase. Phases are ordered as follows::"
-msgstr ""
-" -f/--force ãŒæŒ‡å®šã•ã‚Œãªã„é™ã‚Šã€ 低ã„æ–¹ã‹ã‚‰é«˜ã„æ–¹ã¸ã®ãƒ•ã‚§ãƒ¼ã‚ºå¤‰æ›´ã¯ã€\n"
-" 実施ã§ãã¾ã›ã‚“。 フェーズã®é«˜ä½Žã¯ä»¥ä¸‹ã®ã‚ˆã†ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™::"
-
-msgid " public < draft < secret"
-msgstr " public < draft < secret"
-
-msgid ""
-" Return 0 on success, 1 if no phases were changed or some could not\n"
-" be changed.\n"
-" "
-msgstr ""
-" æˆåŠŸæ™‚ã®ã‚³ãƒžãƒ³ãƒ‰ã®çµ‚了値㯠0〠フェーズ状態変更ãŒç„¡ã„ã€ã‚ã‚‹ã„ã¯ã€\n"
-" 変更ã«å¤±æ•—ã—ãŸå ´åˆã¯ 1 ã§ã™ã€‚\n"
-" "
-
-msgid "only one phase can be specified"
-msgstr "フェーズ指定ã¯1ã¤ã ã‘ã§ã™"
-
-#, python-format
-msgid "cannot move %i changesets to a more permissive phase, use --force\n"
-msgstr ""
-"公開方å‘ã¸ã®ãƒ•ã‚§ãƒ¼ã‚ºå¤‰æ›´ãŒ %i 個ã®ãƒªãƒ“ジョンã§å¤±æ•—ã—ã¾ã—ãŸã€‚\n"
-"é©å®œ --force 指定を行ã£ã¦ãã ã•ã„。\n"
-
-#, python-format
-msgid "phase changed for %i changesets\n"
-msgstr "%i 個ã®ãƒªãƒ“ジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã‚’変更\n"
-
-msgid "no phases changed\n"
-msgstr "フェーズã®å¤‰æ›´ãªã—\n"
-
#, python-format
msgid "not updating: %s\n"
msgstr "更新中断: %s\n"
@@ -12867,7 +9647,7 @@ msgid "(run 'hg update' to get a working copy)\n"
msgstr "(作業領域ã®æ›´æ–°ã¯ 'hg update')\n"
msgid "update to new branch head if changesets were pulled"
-msgstr "æ–°è¦å–ã‚Šè¾¼ã¿ã®éš›ã¯ã€ æ–°è¦ãƒ–ランãƒãƒ˜ãƒƒãƒ‰ã§ã€ 作業領域を更新"
+msgstr "æ–°è¦å–ã‚Šè¾¼ã¿ã®éš›ã«ã¯ä½œæ¥­é ˜åŸŸã‚’æ–°è¦ã®ãƒ–ランãƒãƒ˜ãƒƒãƒ‰ã§æ›´æ–°"
msgid "run even when remote repository is unrelated"
msgstr "連æºå…ˆãŒç„¡é–¢ä¿‚ãªãƒªãƒã‚¸ãƒˆãƒªã§ã‚‚実行"
@@ -12894,8 +9674,9 @@ msgid ""
" project in the working directory."
msgstr ""
" パスや URL ã§æŒ‡å®šã•ã‚Œã‚‹é€£æºå…ˆãƒªãƒã‚¸ãƒˆãƒªä¸­ã®ã€ å…¨ã¦ã®ãƒªãƒ“ジョンãŒ\n"
-" (-R 指定ãŒç„¡ã„å ´åˆã¯ç¾åœ¨ã®) リãƒã‚¸ãƒˆãƒªã¸ã®å–ã‚Šè¾¼ã¿å¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚\n"
-" 特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã«ã‚ˆã‚‹ä½œæ¥­é ˜åŸŸã®æ›´æ–°ã¯ã‚ã‚Šã¾ã›ã‚“。"
+" (-R 指定ãŒç„¡ã„å ´åˆã¯ç¾åœ¨ã®)リãƒã‚¸ãƒˆãƒªã¸ã®å–ã‚Šè¾¼ã¿å¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚\n"
+" 特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã—ã¦ã‚‚〠作業領域ã®å†…容ã¯æ›´æ–°\n"
+" ã•ã‚Œã¾ã›ã‚“。"
msgid ""
" Use :hg:`incoming` if you want to see what would have been added\n"
@@ -12919,14 +9700,19 @@ msgid ""
" Returns 0 on success, 1 if an update had unresolved files.\n"
" "
msgstr ""
-" æˆåŠŸæ™‚ã®ã‚³ãƒžãƒ³ãƒ‰çµ‚了値㯠0〠作業領域更新ã«ã‚ˆã‚Šã€ \n"
-" è¡çªæœªè§£æ¶ˆãƒ•ã‚¡ã‚¤ãƒ«ãŒç”Ÿã˜ã‚‹å ´åˆã¯ 1 ã§ã™ã€‚\n"
+" æˆåŠŸæ™‚ã®ã‚³ãƒžãƒ³ãƒ‰çµ‚了値㯠0〠更新ã§æœªè§£æ¶ˆãƒ•ã‚¡ã‚¤ãƒ«ãŒæ¤œå‡ºã•ã‚ŒãŸå ´åˆã¯\n"
+" 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"
@@ -12975,7 +9761,8 @@ msgid ""
" only create a new branch without forcing other changes."
msgstr ""
" 連æºå…ˆã«å­˜åœ¨ã—ãªã„åå‰ä»˜ãブランãƒã‚’æ–°è¦ä½œæˆã™ã‚‹å ´åˆã¯ --new-branch\n"
-" を使用ã—ã¾ã™ã€‚ ã“ã®ã‚ªãƒ—ションã¯ã€ æ–°è¦ãƒ–ランãƒã®ä½œæˆã®ã¿ã‚’許å¯ã—ã¾ã™ã€‚"
+" を使用ã—ã¾ã™ã€‚ ã“ã®ã‚ªãƒ—ション指定ã¯ã€ æ–°è¦ãƒ–ランãƒã®ä½œæˆã®ã¿ã‚’許å¯\n"
+" ã—ã¾ã™ã€‚"
msgid ""
" Use -f/--force to override the default behavior and push all\n"
@@ -12988,16 +9775,8 @@ msgid ""
" If -r/--rev is used, the specified revision and all its ancestors\n"
" will be pushed to the remote repository."
msgstr ""
-" -r/--rev ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 指定リビジョンã¨ãã®ç¥–å…ˆã®ãƒªãƒ“ジョン群ãŒã€\n"
-" 連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã¸ã¨å映ã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-" If -B/--bookmark is used, the specified bookmarked revision, its\n"
-" ancestors, and the bookmark will be pushed to the remote\n"
-" repository."
-msgstr ""
-" -B/--bookmark ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 指定ブックマークã®ãƒªãƒ“ジョンã¨ã€\n"
-" ãã®ç¥–å…ˆã®ãƒªãƒ“ジョン群〠ãŠã‚ˆã³ãƒ–ックマークãŒã€ 連æºå…ˆã¸ã¨å映ã•ã‚Œã¾ã™ã€‚"
+" -r/--rev ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 指定ã•ã‚ŒãŸãƒªãƒ“ジョンã¨ã€ ãã®ç¥–å…ˆã¨ãªã‚‹\n"
+" リビジョンãŒé€£æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã¸ã¨å映ã•ã‚Œã¾ã™ã€‚"
msgid ""
" Please see :hg:`help urls` for important details about ``ssh://``\n"
@@ -13063,70 +9842,65 @@ msgstr "追加登録ï¼å¤‰æ›´å¯¾è±¡ã§ã‚ã£ã¦ã‚‚登録除外(ファイルã¯å‰
msgid "remove the specified files on the next commit"
msgstr "次回コミットã«ãŠã‘る指定ファイルã®ç™»éŒ²é™¤å¤–"
-msgid " Schedule the indicated files for removal from the current branch."
-msgstr " ç¾ãƒ–ランãƒã§ã®ã€ 構æˆç®¡ç†å¯¾è±¡ã‹ã‚‰ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®é™¤å¤–を予約ã—ã¾ã™ã€‚"
+msgid " Schedule the indicated files for removal from the repository."
+msgstr " 構æˆç®¡ç†å¯¾è±¡ã‹ã‚‰ã®æŒ‡å®šãƒ•ã‚¡ã‚¤ãƒ«ã®ç™»éŒ²é™¤å¤–を予約ã—ã¾ã™ã€‚"
msgid ""
-" This command schedules the files to be removed at the next commit.\n"
-" To undo a remove before that, see :hg:`revert`. To undo added\n"
-" files, see :hg:`forget`."
+" This only removes files from the current branch, not from the\n"
+" entire project history. -A/--after can be used to remove only\n"
+" files that have already been deleted, -f/--force can be used to\n"
+" force deletion, and -Af can be used to remove files from the next\n"
+" revision without deleting them from the working directory."
msgstr ""
-" 指定ファイルã¯ã€ 次回ã®ã‚³ãƒŸãƒƒãƒˆã§ç™»éŒ²é™¤å¤–ã•ã‚Œã¾ã™ã€‚ コミットå‰ã«ã€\n"
-" 登録除外ã®å–り消ã—㯠:hg:`help revert` を〠構æˆç®¡ç†ç™»éŒ²ã®å–り消ã—ã¯\n"
-" :hg:`forget` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" ç¾è¡Œãƒ–ランãƒã«ãŠã‘る登録除外ã§ã‚ã‚Šã€\n"
+" リãƒã‚¸ãƒˆãƒªå±¥æ­´ã‹ã‚‰æŠ¹æ¶ˆã•ã‚Œã‚‹ã‚ã‘ã§ã¯ã‚ã‚Šã¾ã›ã‚“。\n"
+" 手動ã§å‰Šé™¤ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’登録除外ã™ã‚‹ã«ã¯ -A/--after ã‚’ã€\n"
+" 強制的ã«ç™»éŒ²é™¤å¤–ã™ã‚‹ã«ã¯ -f/--force ã‚’ã€\n"
+" 登録除外ã®éš›ã«ã€ä½œæ¥­é ˜åŸŸä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’削除ã—ãªã„å ´åˆã«ã¯\n"
+" -Af を指定ã—ã¾ã™ã€‚"
msgid ""
-" -A/--after can be used to remove only files that have already\n"
-" been deleted, -f/--force can be used to force deletion, and -Af\n"
-" can be used to remove files from the next revision without\n"
-" deleting them from the working directory."
+" The following table details the behavior of remove for different\n"
+" file states (columns) and option combinations (rows). The file\n"
+" states are Added [A], Clean [C], Modified [M] and Missing [!] (as\n"
+" reported by :hg:`status`). The actions are Warn, Remove (from\n"
+" branch) and Delete (from disk)::"
msgstr ""
-" 手動削除ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã®äº‹å¾Œçš„ãªç™»éŒ²é™¤å¤–ã§ã¯ -A/--after ã‚’ã€\n"
-" 強制的ã«ç™»éŒ²é™¤å¤–ã™ã‚‹ã«ã¯ -f/--force ã‚’ã€\n"
-" 登録除外ã®éš›ã«ã€ä½œæ¥­é ˜åŸŸä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’削除ã—ãªã„å ´åˆã«ã¯\n"
-" -Af を指定ã—ã¾ã™ã€‚"
+" ファイルã®çŠ¶æ…‹(横)ã¨ã€ オプション指定(縦)ã®çµ„ã¿åˆã‚ã›ã«ãŠã‘る挙動ã¯ã€\n"
+" 以下ã®ä¸€è¦§ã‚’å‚ç…§ã—ã¦ãã ã•ã„。\n"
+" ファイルã®çŠ¶æ…‹ã¯ã€ :hg:`status` ã®è¡¨ç¤ºã«å€£ã„ã€\n"
+" 追加(Added)[A]〠改変無ã—(Clean)[C]〠改変有り(Modified)[M]\n"
+" ãŠã‚ˆã³ä¸åœ¨(Missing)[!] ã§è¡¨ã—ã¾ã™ã€‚\n"
+" 挙動ã¯ã€ 警告(Warn)[W]〠構æˆç®¡ç†ã‹ã‚‰ã®ç™»éŒ²é™¤å¤–(Remove)[R] ãŠã‚ˆã³\n"
+" 作業領域ã‹ã‚‰ã®å‰Šé™¤(Delete)[D] ã§è¡¨ã—ã¾ã™::"
msgid ""
-" The following table details the behavior of remove for different\n"
-" file states (columns) and option combinations (rows). The file\n"
-" states are Added [A], Clean [C], Modified [M] and Missing [!]\n"
-" (as reported by :hg:`status`). The actions are Warn, Remove\n"
-" (from branch) and Delete (from disk):"
+" A C M !\n"
+" none W RD W R\n"
+" -f R RD RD R\n"
+" -A W W W R\n"
+" -Af R R R R"
msgstr ""
-" ファイルã®çŠ¶æ…‹ (横) ã¨ã€ オプション指定 (縦) ã®çµ„ã¿åˆã‚ã›ã¨æŒ™å‹•ã¯ã€\n"
-" 以下ã®ä¸€è¦§ã‚’å‚ç…§ã—ã¦ãã ã•ã„。\n"
-" ファイルã®çŠ¶æ…‹ã¯ã€ :hg:`status` ã®è¡¨ç¤ºã«å€£ã„ã€\n"
-" 追加 (Added) [A]〠改変無㗠(Clean) [C]〠改変有り (Modified) [M]\n"
-" ãŠã‚ˆã³ä¸åœ¨ (Missing) [!] ã§è¡¨ã—ã¾ã™ã€‚\n"
-" 挙動ã¯ã€ 警告 (Warn) [W]〠構æˆç®¡ç†ã‹ã‚‰ã®ç™»éŒ²é™¤å¤– (Remove) [R]\n"
-" ãŠã‚ˆã³ä½œæ¥­é ˜åŸŸã‹ã‚‰ã®å‰Šé™¤ (Delete) [D] ã§è¡¨ã—ã¾ã™::"
+" A C M !\n"
+" 無指定 W RD W R\n"
+" -f R RD RD R\n"
+" -A W W W R\n"
+" -Af R R R R"
msgid ""
-" ======= == == == ==\n"
-" A C M !\n"
-" ======= == == == ==\n"
-" none W RD W R\n"
-" -f R RD RD R\n"
-" -A W W W R\n"
-" -Af R R R R\n"
-" ======= == == == =="
+" Note that remove never deletes files in Added [A] state from the\n"
+" working directory, not even if option --force is specified."
msgstr ""
-" ======= == == == ==\n"
-" A C M !\n"
-" ======= == == == ==\n"
-" 無指定 W RD W R\n"
-" -f R RD RD R\n"
-" -A W W W R\n"
-" -Af R R R R\n"
-" ======= == == == =="
+" 作業領域ã«ãŠã‘る追加 [A] 状態ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«é–¢ã—ã¦ã¯ã€\n"
+" --force を指定ã—ãªãã¦ã‚‚ã€\n"
+" 登録除外æ“作ã«ã‚ˆã£ã¦ç ´æ£„ã•ã‚Œã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。"
msgid ""
-" Note that remove never deletes files in Added [A] state from the\n"
-" working directory, not even if option --force is specified."
+" This command schedules the files to be removed at the next commit.\n"
+" To undo a remove before that, see :hg:`revert`."
msgstr ""
-" 作業領域ã«ãŠã‘る追加 [A] 状態ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«é–¢ã—ã¦ã¯ã€\n"
-" --force を指定ã—ãªãã¦ã‚‚ã€\n"
-" 登録除外æ“作ã«ã‚ˆã£ã¦ç ´æ£„ã•ã‚Œã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。"
+" 指定ファイルã¯ã€ 次回ã®ã‚³ãƒŸãƒƒãƒˆã®éš›ã«ç™»éŒ²é™¤å¤–ã•ã‚Œã¾ã™ã€‚ 登録除外ã®\n"
+" コミットå‰å–り消ã—㯠:hg:`help revert` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
" Returns 0 on success, 1 if any warnings encountered.\n"
@@ -13137,7 +9911,7 @@ msgstr ""
#, python-format
msgid "not removing %s: file is untracked\n"
-msgstr "%s ã¯å‰Šé™¤ã•ã‚Œã¾ã›ã‚“: 未登録ファイルã§ã™\n"
+msgstr "%s ã¯å‰Šé™¤ã•ã‚Œã¾ã›ã‚“: 構æˆç®¡ç†å¯¾è±¡ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
#, python-format
msgid "not removing %s: file still exists (use -f to force removal)\n"
@@ -13149,8 +9923,10 @@ msgstr ""
"%s ã¯å‰Šé™¤ã•ã‚Œã¾ã›ã‚“: ファイルã¯æ”¹å¤‰ã•ã‚Œã¦ã„ã¾ã™(削除ã®å¼·è¡Œã¯ -f を指定)\n"
#, python-format
-msgid "not removing %s: file has been marked for add (use forget to undo)\n"
-msgstr "%s ã¯å‰Šé™¤ã•ã‚Œã¾ã›ã‚“: 追加登録対象ファイルã§ã™ (å–り消ã—㯠forget)\n"
+msgid ""
+"not removing %s: file has been marked for add (use -f to force removal)\n"
+msgstr ""
+"%s ã¯å‰Šé™¤ã•ã‚Œã¾ã›ã‚“: ファイルã¯è¿½åŠ ç™»éŒ²å¯¾è±¡ã§ã™(削除ã®å¼·è¡Œã¯ -f を指定)\n"
msgid "record a rename that has already occurred"
msgstr "手動ã§æ”¹å済ã¿ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã—ã¦ã€ 改åã®æ—¨ã‚’記録"
@@ -13201,14 +9977,12 @@ msgid ""
" setting, or a command-line merge tool like ``diff3``. The resolve\n"
" command is used to manage the files involved in a merge, after\n"
" :hg:`merge` has been run, and before :hg:`commit` is run (i.e. the\n"
-" working directory must have two parents). See :hg:`help\n"
-" merge-tools` for information on configuring merge tools."
+" working directory must have two parents)."
msgstr ""
" 未解消ã®è¡çªã®å¤šã㯠``internal:merge`` ã‚„ ``diff3`` ãªã©ã‚’使用ã—ãŸ\n"
" éžå¯¾è©±çš„ãªãƒžãƒ¼ã‚¸ã«ç”±æ¥ã—ã¾ã™ã€‚ 本コマンドã¯ã€ :hg:`merge` 実行後ã‹ã‚‰\n"
" :hg:`commit` 実行ã«ã‹ã‘ã¦ã€ マージã«é–¢ä¸Žã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’管ç†ã—ã¾ã™ã€‚\n"
-" (ã“ã®éš›ã«ã¯ã€ 作業領域ã¯ï¼’ã¤ã®è¦ªãƒªãƒ“ジョンをæŒã¤å¿…è¦ãŒã‚ã‚Šã¾ã™)\n"
-" マージツール設定ã®è©³ç´°ã¯ :hg:`help merge-tools` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" (ã“ã®éš›ã«ã¯ã€ 作業領域ã¯ï¼’ã¤ã®è¦ªãƒªãƒ“ジョンをæŒã¤å¿…è¦ãŒã‚ã‚Šã¾ã™)"
msgid " The resolve command can be used in the following ways:"
msgstr " 本コマンドã¯ã€ 以下ã®å½¢å¼ã§ä½¿ç”¨ã•ã‚Œã¾ã™:"
@@ -13220,8 +9994,7 @@ msgid ""
" performed for files already marked as resolved. Use ``--all/-a``\n"
" to select 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. Previous file\n"
-" contents are saved with a ``.orig`` suffix."
+" environment variable and your configuration files."
msgstr ""
" - :hg:`resolve [--tool TOOL] FILE...`: 指定ファイルã®ãƒžãƒ¼ã‚¸ã‚’\n"
" å†åº¦å®Ÿæ–½ã—ã¾ã™ã€‚ ã“ã®éš›ã«ã¯ã€ ç›´å‰ã¾ã§ã®å¤‰æ›´å†…容ã¯ç ´æ£„ã•ã‚Œã¾ã™ã€‚\n"
@@ -13229,8 +10002,7 @@ msgstr ""
" å…¨ã¦ã®æœªè§£æ¶ˆãƒ•ã‚¡ã‚¤ãƒ«ã«é©ç”¨ã™ã‚‹å ´åˆã¯ ``--all/-a`` を指定ã—ã¾ã™ã€‚\n"
" ``--tool`` を使用ã™ã‚‹ã“ã¨ã§ã€ ファイルã®ãƒžãƒ¼ã‚¸ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’\n"
" 指定å¯èƒ½ã§ã™ã€‚ ã“ã®ã‚ªãƒ—ションã«ã‚ˆã‚‹æŒ‡å®šã¯ã€ HGMERGE 環境変数や\n"
-" 設定ファイルã«ã‚ˆã‚‹æŒ‡å®šã‚’上書ãã—ã¾ã™ã€‚ 以å‰ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®å†…容ã¯ã€\n"
-" ``.orig`` æ‹¡å¼µå­ã®ãƒ•ã‚£ãƒ«ã«ä¿å­˜ã•ã‚Œã¾ã™ã€‚"
+" 設定ファイルã«ã‚ˆã‚‹æŒ‡å®šã‚’上書ãã—ã¾ã™ã€‚"
msgid ""
" - :hg:`resolve -m [FILE]`: mark a file as having been resolved\n"
@@ -13276,7 +10048,7 @@ msgid "too many options specified"
msgstr "オプション指定ãŒéŽå‰°ã§ã™"
msgid "can't specify --all and patterns"
-msgstr "--all ã¨ãƒ‘ターンã¯åŒæ™‚ã«æŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "--all ã¨ãƒ‘ターンã¯åŒæ™‚ã«æŒ‡å®šå‡ºæ¥ã¾ã›ã‚“"
msgid "no files or directories specified; use --all to remerge all files"
msgstr "å†ãƒžãƒ¼ã‚¸ã«ã¯ã€ ファイルï¼ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‹ã€ --all を指定ã—ã¦ãã ã•ã„"
@@ -13290,25 +10062,26 @@ msgstr "当該日時ã®æœ€æ–°ãƒªãƒ“ジョンを使用"
msgid "revert to the specified revision"
msgstr "当該リビジョン時点ã®å†…容ã§å¾©æ—§"
+msgid "do not save backup copies of files"
+msgstr "å–り消ã—実施å‰å†…容ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—を抑止"
+
msgid "[OPTION]... [-r REV] [NAME]..."
msgstr "[OPTION]... [-r REV] [NAME]..."
msgid "restore files to their checkout state"
msgstr "親リビジョンã®çŠ¶æ…‹ã§ãƒ•ã‚¡ã‚¤ãƒ«ã‚’復旧"
-msgid " .. note::"
-msgstr " .. note::"
-
msgid ""
+" .. note::\n"
" To check out earlier revisions, you should use :hg:`update REV`.\n"
-" To cancel an uncommitted merge (and lose your changes), use\n"
-" :hg:`update --clean .`."
+" To cancel a merge (and lose your changes), use :hg:`update --clean .`."
msgstr ""
-" 作業領域を〠別リビジョン時点ã®å†…容ã§æ›´æ–°ã™ã‚‹å ´åˆã¯\n"
+" .. note::\n"
+" 作業領域を別リビジョン時点ã«å¤‰æ›´ã—ãŸã„å ´åˆã¯ã€\n"
" :hg:`update 対象リビジョン` を実行ã—ã¦ãã ã•ã„。\n"
-" マージ実施を途中ã§å–り消ã™å ´åˆã¯\n"
+" マージã®å®Ÿæ–½ã‚’å–り消ã™å ´åˆã¯ã€\n"
" :hg:`update --clean .` を実行ã—ã¦ãã ã•ã„\n"
-" (マージã«ãŠã‘る修正内容ã¯ç ´æ£„ã•ã‚Œã¾ã™)。"
+" (マージã«ãŠã‘る修正内容ã¯ç ´æ£„ã•ã‚Œã¾ã™)"
msgid ""
" With no revision specified, revert the specified files or directories\n"
@@ -13347,7 +10120,7 @@ msgstr ""
" ファイルã«ä¿å­˜ã•ã‚Œã¾ã™ã€‚ ã“ã®ä¿å­˜ã¯ --no-backup ã§ç„¡åŠ¹åŒ–ã•ã‚Œã¾ã™ã€‚"
msgid "you can't specify a revision and a date"
-msgstr "リビジョンã¨æ—¥æ™‚ã¯åŒæ™‚ã«ã¯æŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "リビジョンã¨æ—¥æ™‚ã¯åŒæ™‚ã«ã¯æŒ‡å®šå‡ºæ¥ã¾ã›ã‚“"
msgid "uncommitted merge with no revision specified"
msgstr "マージãŒæœªã‚³ãƒŸãƒƒãƒˆãªä¸Šã«ã€å¯¾è±¡ãƒªãƒ“ジョンãŒæ˜Žç¤ºã•ã‚Œã¦ã„ã¾ã›ã‚“"
@@ -13379,13 +10152,34 @@ msgstr ""
"全ファイル復旧ãªã‚‰ --all 付ã実行ã€ä½œæ¥­é ˜åŸŸæ›´æ–°ãªã‚‰ 'hg update %s' 実行"
msgid "uncommitted changes, use --all to discard all changes"
-msgstr "変更ãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™ - 変更全破棄ãªã‚‰ --all 付ã実行"
+msgstr "未コミット変更ãŒã‚ã‚Šã¾ã™ - 変更全破棄ãªã‚‰ --all 付ã実行"
msgid "use --all to revert all files"
msgstr "全ファイル復旧ãªã‚‰ --all 付ã実行"
-msgid "ignore safety measures"
-msgstr "安全判定を無視"
+#, python-format
+msgid "forgetting %s\n"
+msgstr "%s ã®è¿½åŠ ç™»éŒ²ã‚’å–り消ã—中\n"
+
+#, python-format
+msgid "reverting %s\n"
+msgstr "%s ã®å¾©æ—§ä¸­\n"
+
+#, python-format
+msgid "undeleting %s\n"
+msgstr "%s ã®å¾©æ—§ä¸­\n"
+
+#, python-format
+msgid "saving current version of %s as %s\n"
+msgstr "ç¾è¡Œç‰ˆã® %s ã‚’ %s ã«ä¿å­˜ä¸­\n"
+
+#, python-format
+msgid "file not managed: %s\n"
+msgstr "ファイル %s ã¯ç®¡ç†å¯¾è±¡ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
+
+#, python-format
+msgid "no changes needed to %s\n"
+msgstr "%s ã«ã¯æ”¹å¤‰ã®å¿…è¦ãŒã‚ã‚Šã¾ã›ã‚“\n"
msgid "roll back the last transaction (dangerous)"
msgstr "ç›´å‰ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã®å·»ã戻ã—(è¦æ³¨æ„)"
@@ -13397,47 +10191,34 @@ msgid ""
" any dirstate changes since that time. This command does not alter\n"
" the working directory."
msgstr ""
-" 本コマンドã®ä½¿ç”¨ã«ã¯æ³¨æ„ã‚’è¦ã—ã¾ã™ã€‚ å·»ã戻ã—ã¯ï¼‘段階é™ã‚Šã§ã€ \n"
-" å·»ã戻ã—後ã®å†å®Ÿæ–½ã¯ã§ãã¾ã›ã‚“。 ç›´å‰ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³æ™‚点ã®ã€\n"
-" 作業領域状態ãŒå¾©å…ƒã•ã‚Œã€ ãã®æ™‚点以後ã®å¤‰æ›´ã¯å…¨ã¦å¤±ã‚ã‚Œã¾ã™ã€‚\n"
-" 但ã—〠作業領域ã®å†…容ã¯å¤‰æ›´ã•ã‚Œã¾ã›ã‚“。"
+" 本コマンドã®ä½¿ç”¨ã«ã¯æ³¨æ„ãŒå¿…è¦ã§ã™ã€‚ å·»ã戻ã—ã¯ï¼‘段階é™ã‚Šã§ã€ å·»ã\n"
+" 戻ã—ãŸãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã®å†å®Ÿæ–½ã¯ã§ãã¾ã›ã‚“。 本コマンドã¯ã€ ç›´å‰ã®\n"
+" トランザクション実施時点㮠dirstate を復元ã—〠ãã®æ™‚点以後ã®å¤‰æ›´ã¯\n"
+" å…¨ã¦å¤±ã‚ã‚Œã¾ã™ã€‚ 但ã—〠作業領域内容ã¯å¤‰æ›´ã•ã‚Œã¾ã›ã‚“。"
msgid ""
" Transactions are used to encapsulate the effects of all commands\n"
" that create new changesets or propagate existing changesets into a\n"
-" repository."
-msgstr ""
-" トランザクションã¨ã¯ã€ コマンド実行ã«ã‚ˆã‚‹ã€ æ–°è¦ãƒªãƒ“ジョンã®ä½œæˆã‚„ã€\n"
-" 外部ã‹ã‚‰ã®ãƒªãƒ“ジョンã®å–ã‚Šè¾¼ã¿ã¨ã„ã£ãŸã€ 改変æ“作を一括化ã™ã‚‹ã‚‚ã®ã§ã™ã€‚"
-
-msgid ""
-" For example, the following commands are transactional, and their\n"
-" effects can be rolled back:"
+" repository. For example, the following commands are transactional,\n"
+" and their effects can be rolled back:"
msgstr ""
-" 例ãˆã°ã€ 以下ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ã„ãšã‚Œã‚‚トランザクションを形æˆã™ã‚‹ãŸã‚ã€\n"
-" 本コマンドã«ã‚ˆã‚Šã€ ãã®åŠ¹æžœã‚’å·»ã戻ã—å¯èƒ½ã§ã™:"
+" トランザクションã¨ã¯ã€ æ–°è¦ãƒªãƒ“ジョンã®ä½œæˆã€ ãªã„ã—外部ã‹ã‚‰ã®æ—¢å­˜\n"
+" リビジョンã®å–ã‚Šè¾¼ã¿ã«ãŠã‘るコマンドã®æ”¹å¤‰æ“作を一括化ã™ã‚‹ã‚‚ã®ã§ã™ã€‚\n"
+" 例ãˆã°ã€ 以下ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ã„ãšã‚Œã‚‚トランザクションを形æˆã™ã‚‹ã‚‚ã®ã§ã€\n"
+" ãã®åŠ¹æžœã¯æœ¬ã‚³ãƒžãƒ³ãƒ‰ã«ã‚ˆã‚Šå·»ã戻ã—å¯èƒ½ã§ã™:"
msgid ""
-" - commit\n"
-" - import\n"
-" - pull\n"
-" - push (with this repository as the destination)\n"
-" - unbundle"
+" - commit\n"
+" - import\n"
+" - pull\n"
+" - push (with this repository as the destination)\n"
+" - unbundle"
msgstr ""
-" - commit\n"
-" - import\n"
-" - pull\n"
-" - push (ç¾ãƒªãƒã‚¸ãƒˆãƒªãŒã€ å映対象ã¨ã—ã¦æŒ‡å®šã•ã‚ŒãŸå ´åˆ)\n"
-" - unbundle"
-
-msgid ""
-" To avoid permanent data loss, rollback will refuse to rollback a\n"
-" commit transaction if it isn't checked out. Use --force to\n"
-" override this protection."
-msgstr ""
-" データãŒæ°¸é ã«å¤±ã‚れるã®ã‚’回é¿ã™ã‚‹ãŸã‚〠コミットã®å·»ã戻ã—æ“作ã¯ã€\n"
-" 作業領域ã®è¦ªãƒªãƒ“ジョン以外ã«å¯¾ã—ã¦ã¯ã€ 失敗ã™ã‚‹ã‚ˆã†ã«ãªã£ã¦ã„ã¾ã™ã€‚\n"
-" ã“ã®å›žé¿æŒ™å‹•ã¯ --force 指定ã«ã‚ˆã‚ŠæŠ‘æ­¢ã•ã‚Œã¾ã™ã€‚"
+" - commit\n"
+" - import\n"
+" - pull\n"
+" - push (ç¾ãƒªãƒã‚¸ãƒˆãƒªãŒã€ å映対象ã¨ã—ã¦æŒ‡å®šã•ã‚ŒãŸå ´åˆ)\n"
+" - unbundle"
msgid ""
" This command is not intended for use on public repositories. Once\n"
@@ -13544,8 +10325,8 @@ msgid ""
" stderr. Use the -A/--accesslog and -E/--errorlog options to log to\n"
" files."
msgstr ""
-" 特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ サーãƒã¯ã‚¢ã‚¯ã‚»ã‚¹ãƒ­ã‚°ã‚’標準出力ã«ã€\n"
-" エラーを標準エラー出力ã«è¡¨ç¤ºã—ã¾ã™ã€‚ ログをファイルã«è¨˜éŒ²ã™ã‚‹å ´åˆã¯ã€\n"
+" 特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã€ サーãƒã¯ã‚¢ã‚¯ã‚»ã‚¹ãƒ­ã‚°ã‚’標準出力ã«ã€ エラーを\n"
+" 標準エラー出力ã«è¡¨ç¤ºã—ã¾ã™ã€‚ ログをファイルã«è¨˜éŒ²ã™ã‚‹å ´åˆã¯ã€\n"
" -A/--accesslog ã‚„ -E/--errorlog ã§æŒ‡å®šã—ã¾ã™ã€‚"
msgid ""
@@ -13559,6 +10340,9 @@ msgstr ""
msgid "cannot use --stdio with --cmdserver"
msgstr "--stdio 㨠--cmdserver ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
+msgid "There is no Mercurial repository here (.hg not found)"
+msgstr "Mercurial リãƒã‚¸ãƒˆãƒªãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“(.hg ãŒä¸åœ¨ã§ã™)"
+
#, python-format
msgid "listening at http://%s%s/%s (bound to %s:%d)\n"
msgstr "http://%s%s/%s ã§å¾…ã¡å—ã‘開始(ãƒã‚¤ãƒ³ãƒ‰å…ˆã¯ %s:%d)\n"
@@ -13657,8 +10441,8 @@ msgid ""
" Option -q/--quiet hides untracked (unknown and ignored) files\n"
" unless explicitly requested with -u/--unknown or -i/--ignored."
msgstr ""
-" -q/--quiet 指定ãŒã‚ã‚‹å ´åˆã€ -u/--unknown ãªã„ã— -i/--ignored\n"
-" ãŒæ˜Žç¤ºçš„ã«æŒ‡å®šã•ã‚Œãªã„é™ã‚Šã€ 未登録ファイルã¯è¡¨ç¤ºã•ã‚Œã¾ã›ã‚“。"
+" -q/--quiet 指定ãŒã‚ã‚‹å ´åˆã€ -u/--unknown ãªã„ã— -i/--ignored ãŒæ˜Žç¤º\n"
+" çš„ã«æŒ‡å®šã•ã‚Œãªã„é™ã‚Šã€ 構æˆç®¡ç†å¯¾è±¡å¤–ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯è¡¨ç¤ºã•ã‚Œã¾ã›ã‚“。"
msgid ""
" .. note::\n"
@@ -13707,26 +10491,6 @@ msgstr ""
" I = 無視(Ignored)\n"
" = ç›´å‰ã«è¡¨ç¤ºã•ã‚Œã‚‹æ–°è¦ç™»éŒ²äºˆå®šãƒ•ã‚¡ã‚¤ãƒ«(A)ã®è¤‡è£½å…ƒ"
-msgid ""
-" - show changes in the working directory relative to a\n"
-" changeset::"
-msgstr " - 作業領域ã¨æŒ‡å®šãƒªãƒ“ジョンã¨ã®é–“ã§ã®çŠ¶æ…‹å¤‰æ›´ã‚’表示::"
-
-msgid " hg status --rev 9353"
-msgstr " hg status --rev 9353"
-
-msgid " - show all changes including copies in an existing changeset::"
-msgstr " - 指定リビジョンã«ãŠã‘る状態変更 (複製元å«ã‚€) を表示::"
-
-msgid " hg status --copies --change 9353"
-msgstr " hg status --copies --change 9353"
-
-msgid " - get a NUL separated list of added files, suitable for xargs::"
-msgstr " - 追加登録ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã® NUL 区切り一覧ã®è¡¨ç¤º (xargs å‘ã‘)::"
-
-msgid " hg status -an0"
-msgstr " hg status -an0"
-
msgid "check for push and pull"
msgstr "push/pull 実施çµæžœã®ç¢ºèª"
@@ -13761,9 +10525,6 @@ msgstr " (作業領域ãŒæœªæ›´æ–°)"
msgid "branch: %s\n"
msgstr "ブランム: %s\n"
-msgid "bookmarks:"
-msgstr "ブックマーク :"
-
#, python-format
msgid "%d modified"
msgstr "変更ファイル数 %d"
@@ -13869,7 +10630,7 @@ msgid "remove a tag"
msgstr "ã‚¿ã‚°ã®å‰Šé™¤"
msgid "use <text> as commit message"
-msgstr "指定文字列をコミットログã¨ã—ã¦ä½¿ç”¨"
+msgstr "コミットメッセージ"
msgid "[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME..."
msgstr "[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME..."
@@ -13888,8 +10649,8 @@ msgid ""
msgstr ""
" ã‚¿ã‚°ã®ç”¨é€”ã¯ã€ リãƒã‚¸ãƒˆãƒªä¸­ã®ç‰¹å®šãƒªãƒ“ジョンã¸ã®åå‰ä»˜ã‘ã§ã‚ã‚Šã€\n"
" リビジョン間ã§ã®æ¯”較や〠é‡è¦ãªãƒªãƒ“ジョンã®å‚ç…§ã€\n"
-" リリース時ã®åˆ†å²ç‚¹ã«å¯¾ã™ã‚‹ç›®å°ã€ ãªã©ã®ç”¨é€”ã«ä½¿ç”¨ã§ãã¾ã™ã€‚\n"
-" 既存タグã®æ”¹å¤‰ã¯ã€ 通常ã§ã¯ã§ãã¾ã›ã‚“。 -f/--force ã®æŒ‡å®šãŒå¿…è¦ã§ã™"
+" リリース時ã®åˆ†å²ç‚¹ã«å¯¾ã™ã‚‹ç›®å°ã€ ãªã©ã®ç”¨é€”ã«ä½¿ç”¨å‡ºæ¥ã¾ã™ã€‚\n"
+" 既存タグã®æ”¹å¤‰ã¯ã€ 通常ã§ã¯å‡ºæ¥ã¾ã›ã‚“。 -f/--force ã®æŒ‡å®šãŒå¿…è¦ã§ã™"
msgid ""
" If no revision is given, the parent of the working directory is\n"
@@ -13964,9 +10725,6 @@ msgstr "マージãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™"
msgid "not at a branch head (use -f to force)"
msgstr "親リビジョンãŒãƒ–ランãƒã®ãƒ˜ãƒƒãƒ‰ã§ã¯ã‚ã‚Šã¾ã›ã‚“(強制実行㯠-f 指定)"
-msgid "null revision specified"
-msgstr "null リビジョンãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸ"
-
msgid "list repository tags"
msgstr "リãƒã‚¸ãƒˆãƒªä¸­ã®ã‚¿ã‚°ä¸€è¦§ã®è¡¨ç¤º"
@@ -14005,7 +10763,7 @@ msgstr ""
" 特別ãªã‚¿ã‚°ã§ã€ 改åや〠他ã®ãƒªãƒ“ジョンã¸ã®ä»˜ã‘替ãˆã¯ã§ãã¾ã›ã‚“。"
msgid "update to new branch head if changesets were unbundled"
-msgstr "æ–°è¦å–ã‚Šè¾¼ã¿ã®éš›ã¯ã€ æ–°è¦ãƒ–ランãƒãƒ˜ãƒƒãƒ‰ã§ã€ 作業領域を更新"
+msgstr "æ–°è¦å–ã‚Šè¾¼ã¿ã®éš›ã«ã¯ä½œæ¥­é ˜åŸŸã‚’æ–°è¦ãƒ–ランãƒãƒ˜ãƒƒãƒ‰ã§ã§æ›´æ–°"
msgid "[-u] FILE..."
msgstr "[-u] FILE..."
@@ -14040,77 +10798,66 @@ msgstr "作業領域ã®å†…容更新(ãªã„ã—リビジョンã®åˆ‡ã‚Šæ›¿ãˆ)"
msgid ""
" Update the repository's working directory to the specified\n"
" changeset. If no changeset is specified, update to the tip of the\n"
-" current named branch and move the current bookmark (see :hg:`help\n"
-" bookmarks`)."
+" current named branch."
msgstr ""
" 指定ã•ã‚ŒãŸãƒªãƒ“ジョン時点ã®å†…容ã§ã€ 作業領域を更新ã—ã¾ã™ã€‚\n"
-" 対象リビジョンãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ 作業領域ã¨åŒã˜åå‰ä»˜ãブランãƒã®ã€\n"
-" 最新リビジョンã§æ›´æ–°ã—ãŸä¸Šã§ã€ ブックマークã®æ›´æ–°ã‚’è¡Œã„ã¾ã™ã€‚\n"
-" (詳細㯠:hg:`help bookmarks` å‚ç…§)"
-
-msgid ""
-" Update sets the working directory's parent revison to the specified\n"
-" changeset (see :hg:`help parents`)."
-msgstr ""
-" 作業領域ã®è¦ªãƒªãƒ“ジョンを〠指定ã•ã‚ŒãŸãƒªãƒ“ジョンã«æ›´æ–°ã—ã¾ã™\n"
-" (:hg:`help parents` å‚ç…§)。"
+" 対象リビジョンãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆã€ 作業領域ã¨åŒã˜åå‰ä»˜ã\n"
+" ブランãƒã«ãŠã‘る最新リビジョンã§æ›´æ–°ã—ã¾ã™ã€‚"
msgid ""
-" If the changeset is not a descendant or ancestor of the working\n"
-" directory's parent, the update is aborted. With the -c/--check\n"
-" option, the working directory is checked for uncommitted changes; if\n"
-" none are found, the working directory is updated to the specified\n"
+" 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 ""
-" 指定リビジョンãŒã€ 作業領域ã®ç¥–å…ˆï¼ç›´ç³»ã®å­å­«ã®ã„ãšã‚Œã§ã‚‚ã§ãªã„å ´åˆã€\n"
+" 指定リビジョンãŒã€ 作業領域ã®è¦ªãƒªãƒ“ジョンã®ç›´ç³»ã®å­å­«ã§ãªã„å ´åˆã€\n"
" 作業領域ã®æ›´æ–°ã¯ä¸­æ–­ã•ã‚Œã¾ã™ã€‚ -c/--check ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€\n"
-" 作業領域中ã®æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ã®æœ‰ç„¡ã‚’確èªã—〠変更ãŒç„¡ã‹ã£ãŸå ´åˆã«ã¯ã€\n"
+" 作業領域中ã®æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ã®æœ‰ç„¡ã‚’確èªã—〠変更ãŒç„¡ã‹ã£ãŸå ´åˆã«ã¯\n"
" 作業領域を指定リビジョンã§æ›´æ–°ã—ã¾ã™ã€‚"
msgid ""
-" The following rules apply when the working directory contains\n"
-" uncommitted changes:"
-msgstr " 作業領域ã®å¤‰æ›´ãŒæœªã‚³ãƒŸãƒƒãƒˆã®å ´åˆã€ 以下ã®è¦å‰‡ãŒé©ç”¨ã•ã‚Œã¾ã™:"
+" Update sets the working directory's parent revison to the specified\n"
+" changeset (see :hg:`help parents`)."
+msgstr ""
+" 作業領域ã®è¦ªãƒªãƒ“ジョンを〠指定ã•ã‚ŒãŸãƒªãƒ“ジョンã«æ›´æ–°ã—ã¾ã™\n"
+" (:hg:`help parents` å‚ç…§)。"
msgid ""
-" 1. If neither -c/--check nor -C/--clean is specified, and if\n"
-" the requested changeset is an ancestor or descendant of\n"
-" the working directory's parent, the uncommitted changes\n"
-" are merged into the requested changeset and the merged\n"
-" result is left uncommitted. If the requested changeset is\n"
-" not an ancestor or descendant (that is, it is on another\n"
-" branch), the update is aborted and the uncommitted changes\n"
-" are preserved."
-msgstr ""
-" 1. -c/--check ã‚‚ -C/--clean も指定ã•ã‚Œãšã€ 指定リビジョンãŒã€\n"
-" 作業領域ã®è¦ªãƒªãƒ“ジョンã®ã€ ç›´ç³»ã®ç¥–å…ˆãªã„ã—å­å­«ã§ã‚ã£ãŸå ´åˆã€\n"
-" 未コミット変更ã®å†…容ã¯ã€ 指定リビジョンã¸ã¨ãƒžãƒ¼ã‚¸ã•ã‚Œã€\n"
-" マージçµæžœã¯ã€ 未コミットã®ã¾ã¾ä½œæ¥­é ˜åŸŸã«æ®‹ã‚Šã¾ã™ã€‚\n"
-" 別㮠(åå‰ç„¡ã—) ブランãƒä¸Šã«ã‚るリビジョンãªã©ã€\n"
-" ç›´ç³»ã®ç¥–å…ˆï¼å­å­«ä»¥å¤–ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€\n"
-" æ›´æ–°ã¯ä¸­æ–­ã•ã‚Œã€ 未コミット変更ã¯ã€ 作業領域ã«æ®‹ã‚Šã¾ã™ã€‚"
+" The following rules apply when the working directory contains\n"
+" uncommitted changes:"
+msgstr " 作業領域ã«æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ãŒã‚ã‚‹å ´åˆã€ 以下ã®è¦å‰‡ãŒé©ç”¨ã•ã‚Œã¾ã™:"
msgid ""
-" 2. With the -c/--check option, the update is aborted and the\n"
-" uncommitted changes are preserved."
+" 1. If neither -c/--check nor -C/--clean is specified, and if\n"
+" the requested changeset is an ancestor or descendant of\n"
+" the working directory's parent, the uncommitted changes\n"
+" are merged into the requested changeset and the merged\n"
+" result is left uncommitted. If the requested changeset is\n"
+" not an ancestor or descendant (that is, it is on another\n"
+" branch), the update is aborted and the uncommitted changes\n"
+" are preserved."
msgstr ""
-" 2. -c/--check ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ æ›´æ–°ã¯ä¸­æ–­ã•ã‚Œã€\n"
-" 未コミット変更ã¯ã€ 作業領域ã«æ®‹ã‚Šã¾ã™ã€‚"
+" 1. -c/--check 㨠-C/--clean ã®ã„ãšã‚Œã‚‚指定ã•ã‚Œãšã€ 指定リビジョンãŒ\n"
+" 作業領域ã®è¦ªãƒªãƒ“ジョンã«ã¨ã£ã¦ç›´ç³»ã®å…ˆç¥–ãªã„ã—å­å­«ã§ã‚ã£ãŸå ´åˆã€\n"
+" 未コミット変更ã®å†…容ã¯æŒ‡å®šãƒªãƒ“ジョンã¸ã¨ãƒžãƒ¼ã‚¸ã•ã‚Œã€\n"
+" マージçµæžœã¯æœªã‚³ãƒŸãƒƒãƒˆã®ã¾ã¾ä½œæ¥­é ˜åŸŸã«æ®‹ã‚Šã¾ã™ã€‚\n"
+" 別ã®(åå‰ç„¡ã—)ブランãƒä¸Šã«ã‚るリビジョンãªã©ã€ ç›´ç³»ã®å…ˆç¥–ï¼å­å­«\n"
+" 以外ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ æ›´æ–°ã¯ä¸­æ–­ã•ã‚Œã€ 未コミット変更ã¯æ®‹ã‚Šã¾ã™ã€‚"
msgid ""
-" 3. With the -C/--clean option, uncommitted changes are discarded and\n"
-" the working directory is updated to the requested changeset."
+" 2. With the -c/--check option, the update is aborted and the\n"
+" uncommitted changes are preserved."
msgstr ""
-" 3. -C/--clean ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 未コミット変更ã¯ç ´æ£„ã•ã‚Œã€\n"
-" 作業領域ã¯æŒ‡å®šã®ãƒªãƒ“ジョンã§æ›´æ–°ã•ã‚Œã¾ã™ã€‚"
+" 2. -c/--check ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ æ›´æ–°ã¯ä¸­æ–­ã•ã‚Œã€ 未コミット変更ã¯\n"
+" 残りã¾ã™ã€‚"
msgid ""
-" To cancel an uncommitted merge (and lose your changes), use\n"
-" :hg:`update --clean .`."
+" 3. With the -C/--clean option, uncommitted changes are discarded and\n"
+" the working directory is updated to the requested changeset."
msgstr ""
-" マージ実施を途中ã§å–り消ã™å ´åˆã¯\n"
-" :hg:`update --clean .` を実行ã—ã¦ãã ã•ã„\n"
-" (マージã«ãŠã‘る修正内容ã¯ç ´æ£„ã•ã‚Œã¾ã™)。"
+" 3. -C/--clean ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ 未コミット変更ã¯ç ´æ£„ã•ã‚Œã€\n"
+" 作業領域ã¯æŒ‡å®šã®ãƒªãƒ“ジョンã§æ›´æ–°ã•ã‚Œã¾ã™ã€‚"
msgid ""
" Use null as the changeset to remove the working directory (like\n"
@@ -14129,6 +10876,9 @@ msgstr ""
msgid "cannot specify both -c/--check and -C/--clean"
msgstr "-c/--check 㨠-C/--clean ã¯ä½µç”¨ã§ãã¾ã›ã‚“"
+msgid "uncommitted local changes"
+msgstr "作業領域ã«æœªã‚³ãƒŸãƒƒãƒˆã®å¤‰æ›´ãŒã‚ã‚Šã¾ã™"
+
msgid "verify the integrity of the repository"
msgstr "リãƒã‚¸ãƒˆãƒªã®æ•´åˆæ€§æ¤œè¨¼"
@@ -14154,14 +10904,14 @@ msgid "Mercurial Distributed SCM (version %s)\n"
msgstr "Mercurial - 分散構æˆç®¡ç†ãƒ„ール(ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s)\n"
msgid "(see http://mercurial.selenic.com for more information)"
-msgstr "(詳細㯠http://mercurial.selenic.com ã‚’å‚ç…§ã—ã¦ãã ã•ã„)"
+msgstr "(詳細㯠http://mercurial.selenic.com ã‚’å‚ç…§ã®ã“ã¨)"
msgid ""
-"Copyright (C) 2005-2012 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-2012 Matt Mackall ä»–\n"
+"Copyright (C) 2005-2011 Matt Mackall ä»–\n"
"本製å“ã¯ãƒ•ãƒªãƒ¼ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã§ã™ã€‚\n"
"頒布æ¡ä»¶ã«é–¢ã—ã¦ã¯åŒæ¢±ã•ã‚Œã‚‹ãƒ©ã‚¤ã‚»ãƒ³ã‚¹æ¡é …ã‚’ãŠèª­ã¿ãã ã•ã„。\n"
"市場é©åˆæ€§ã‚„特定用途ã¸ã®å¯å¦ã‚’å«ã‚〠本製å“ã¯ç„¡ä¿è¨¼ã§ã™ã€‚\n"
@@ -14178,14 +10928,6 @@ msgstr "未知ã®ã‚³ãƒžãƒ³ãƒ‰ %s"
msgid "cannot include %s (%s)"
msgstr "%s を読ã¿è¾¼ã‚ã¾ã›ã‚“(%s)"
-#, python-format
-msgid "working directory has unknown parent '%s'!"
-msgstr "作業領域ã®è¦ª '%s' ãŒæœªçŸ¥ã®ãƒªãƒ“ジョンã§ã™!"
-
-#, python-format
-msgid "unknown revision '%s'"
-msgstr "'%s' ã¯æœªçŸ¥ã®ãƒªãƒ“ジョンã§ã™"
-
msgid "not found in manifest"
msgstr "マニフェストã«ã‚ã‚Šã¾ã›ã‚“"
@@ -14230,22 +10972,22 @@ msgstr "コピー失敗: %s ã¯ãƒ•ã‚¡ã‚¤ãƒ«ã§ã‚‚シンボリックリンクã§ã
#, python-format
msgid "invalid character in dag description: %s..."
-msgstr "dag 記述ã«ä¸æ­£ãªæ–‡å­—ãŒä½¿ã‚ã‚Œã¦ã„ã¾ã™: %s..."
+msgstr ""
#, python-format
msgid "expected id %i, got %i"
-msgstr "想定 id %i ã«å¯¾ã—㦠%i ãŒæ¤œå‡º"
+msgstr ""
#, python-format
msgid "parent id %i is larger than current id %i"
-msgstr "親 id %i ãŒç¾ id %i よりも大ãã„ã§ã™"
+msgstr ""
#, python-format
msgid "invalid event type in dag: %s"
-msgstr "dag イベント種別ãŒä¸æ­£ã§ã™: %s"
+msgstr ""
msgid "nullid"
-msgstr "nullid"
+msgstr ""
msgid "working directory state appears damaged!"
msgstr "作業領域ã®çŠ¶æ…‹ç®¡ç†ã«å•é¡ŒãŒã‚ã‚Šã¾ã™!"
@@ -14305,20 +11047,12 @@ msgstr "pull 㨠merge を実施ã™ã‚‹ã‹ã€ push -f ã§å¼·åˆ¶å®Ÿè¡Œã—ã¦ãã 
msgid "did you forget to merge? use push -f to force"
msgstr "マージã¯æ¸ˆã‚“ã§ã„ã¾ã™ã‹ï¼Ÿ push -f ã§å¼·åˆ¶å®Ÿè¡Œã§ãã¾ã™"
-#, python-format
-msgid "new remote heads on branch '%s'\n"
-msgstr "æ–°ã—ã„ヘッドãŒé€£æºå…ˆã®ãƒ–ランム'%s' ã«ä½œæˆã•ã‚Œã¾ã™\n"
-
-#, python-format
-msgid "new remote head %s\n"
-msgstr "æ–°ã—ã„ヘッド %s ãŒé€£æºå…ˆã«ä½œæˆã•ã‚Œã¾ã™\n"
-
msgid "note: unsynced remote changes!\n"
msgstr "注æ„: 連æºå…ˆã§ã®å¤‰æ›´ç‚¹ãŒå–ã‚Šè¾¼ã¾ã‚Œã¦ã„ã¾ã›ã‚“!\n"
#, python-format
msgid "abort: %s\n"
-msgstr "中断: %s\n"
+msgstr "中止: %s\n"
#, python-format
msgid "(%s)\n"
@@ -14353,11 +11087,11 @@ msgstr "%s ã«ã‚ˆã‚‹ãƒ­ãƒƒã‚¯ä¿æŒ"
#, python-format
msgid "abort: %s: %s\n"
-msgstr "中断: %s: %s\n"
+msgstr "中止: %s: %s\n"
#, python-format
msgid "abort: could not lock %s: %s\n"
-msgstr "中断: %s ã®ãƒ­ãƒƒã‚¯ã«å¤±æ•—: %s\n"
+msgstr "中止: %s ã®ãƒ­ãƒƒã‚¯ã«å¤±æ•—: %s\n"
#, python-format
msgid "hg %s: %s\n"
@@ -14367,16 +11101,13 @@ msgstr "hg %s: %s\n"
msgid "hg: %s\n"
msgstr "hg: %s\n"
-msgid "abort: remote error:\n"
-msgstr "中断: 連æºã‚¨ãƒ©ãƒ¼:\n"
-
#, python-format
msgid "abort: %s!\n"
-msgstr "中断: %s!\n"
+msgstr "中止: %s!\n"
#, python-format
msgid "abort: %s"
-msgstr "中断: %s"
+msgstr "中止: %s"
msgid " empty string\n"
msgstr " 空文字列\n"
@@ -14396,7 +11127,7 @@ msgstr "(Python ã¯æ­£ã—ãインストールã•ã‚Œã¦ã„ã¾ã™ã‹ï¼Ÿ)\n"
#, python-format
msgid "abort: error: %s\n"
-msgstr "中断: エラー: %s\n"
+msgstr "中止: エラー: %s\n"
msgid "broken pipe\n"
msgstr "パイプ破壊(EPIPE)\n"
@@ -14414,27 +11145,13 @@ msgstr ""
msgid "abort: out of memory\n"
msgstr "中断: メモリä¸è¶³\n"
-msgid "the extension author."
-msgstr "エクステンションã®ä½œè€…"
-
-#, python-format
-msgid ""
-"** Unknown exception encountered with possibly-broken third-party extension "
-"%s\n"
-"** which supports versions %s of Mercurial.\n"
-"** Please disable %s and try your action again.\n"
-"** If that fixes the bug please report it to %s\n"
-msgstr ""
-"** éžåŒæ¢±ã®ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ %s ã«èµ·å› ã™ã‚‹ä¾‹å¤–ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚\n"
-"** 当該エクステンションã®ã‚µãƒãƒ¼ãƒˆå¯¾è±¡ Mercurial ã®ç‰ˆ: %s\n"
-"** エクステンション %s を無効化ã—ã¦ã‹ã‚‰ã€å†åº¦åŒã˜å‡¦ç†ã‚’実行ã—ã¦ãã ã•ã„。\n"
-"** å•é¡ŒãŒæ”¹å–„ã•ã‚ŒãŸå ´åˆã€ 障害ã®ç™ºç”Ÿã‚’ %s ã«å ±å‘Šã—ã¦ãã ã•ã„。\n"
-
msgid "** unknown exception encountered, please report by visiting\n"
-msgstr "** 予期ã›ã¬ä¾‹å¤–ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚以下㮠URL ã‹ã‚‰éšœå®³å ±å‘Šã—ã¦ãã ã•ã„\n"
+msgstr "** 予期ã›ã¬ä¾‹å¤–ãŒç™ºç”Ÿã—ã¾ã—ãŸ\n"
-msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
-msgstr "** http://mercurial.selenic.com/wiki/BugTracker\n"
+msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
+msgstr ""
+"** http://mercurial.selenic.com/wiki/BugTracker ã¾ã§\n"
+"** 以下ã®æƒ…報を報告ã—ã¦ãã ã•ã„。\n"
#, python-format
msgid "** Python %s\n"
@@ -14448,9 +11165,6 @@ msgstr "** Mercurial Distributed SCM (version %s)\n"
msgid "** Extensions loaded: %s\n"
msgstr "** Extensions loaded: %s\n"
-msgid "too few arguments for command alias"
-msgstr "別å(エイリアス)ã¸ã®å¼•æ•°ãŒè¶³ã‚Šã¾ã›ã‚“"
-
#, python-format
msgid "no definition for alias '%s'\n"
msgstr "'%s' を別åã«æŒã¤ã‚³ãƒžãƒ³ãƒ‰ã¯ã‚ã‚Šã¾ã›ã‚“\n"
@@ -14488,12 +11202,12 @@ msgid "option --cwd may not be abbreviated!"
msgstr "--cwd 指定値ãŒçœç•¥ã•ã‚Œãªã‹ã£ãŸå¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™!"
msgid ""
-"option -R has to be separated from other options (e.g. not -qR) and --"
+"Option -R has to be separated from other options (e.g. not -qR) and --"
"repository may only be abbreviated as --repo!"
-msgstr "-R ã¯å˜ç‹¬è¨˜è¿°(例: '-dR' ã¯ä¸å¯)〠--repository ã®ç•¥è¨˜ã¯ --repo ã®ã¿"
+msgstr "-R ã¯ç‹¬ç«‹è¨˜è¿°(例: '-dR' ã¯ä¸å¯)〠--repository ã®ç•¥è¨˜ã¯ --repo ã®ã¿"
#, python-format
-msgid "time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
+msgid "Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
msgstr "所è¦æ™‚é–“: 実時間 %.3f 秒 (ユーザ %.3f+%.3f システム %.3f+%.3f)\n"
#, python-format
@@ -14518,19 +11232,6 @@ msgstr ""
"lsprof ãŒåˆ©ç”¨ã§ãã¾ã›ã‚“ - http://codespeak.net/svn/user/arigo/hack/misc/"
"lsprof/ã‹ã‚‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ãã ã•ã„"
-msgid "statprof not available - install using \"easy_install statprof\""
-msgstr ""
-"statprof ãŒåˆ©ç”¨ã§ãã¾ã›ã‚“ - \"easy_install statprof\"ã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ãã ã•"
-"ã„"
-
-#, python-format
-msgid "invalid sampling frequency '%s' - ignoring\n"
-msgstr "ä¸æ­£ãªã‚µãƒ³ãƒ—リング周期頻度 '%s' を無視ã—ã¾ã™\n"
-
-#, python-format
-msgid "unrecognized profiler '%s' - ignored\n"
-msgstr "ä¸æ­£ãªãƒ—ロファイラ指定 '%s' を無視ã—ã¾ã™\n"
-
#, python-format
msgid "*** failed to import extension %s from %s: %s\n"
msgstr "*** %s ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã«å¤±æ•— (%s): %s\n"
@@ -14559,15 +11260,6 @@ msgstr "ツール %s ã¯ãƒã‚¤ãƒŠãƒªã‚’扱ãˆã¾ã›ã‚“\n"
msgid "tool %s requires a GUI\n"
msgstr "ツール %s 㯠GUI ãŒå¿…è¦ã§ã™\n"
-msgid ""
-"``internal:prompt``\n"
-"Asks the user which of the local or the other version to keep as\n"
-" the merged version."
-msgstr ""
-"``internal:prompt``\n"
-"作業領域å´ã¨ãƒžãƒ¼ã‚¸å¯¾è±¡ãƒªãƒ“ジョンå´ã®ã©ã¡ã‚‰ã‚’ã€\n"
-" マージçµæžœã¨ã—ã¦æŽ¡ç”¨ã™ã‚‹ã‹ã€ 対話的ã«ç¢ºèªã—ã¾ã™ã€‚"
-
#, python-format
msgid ""
" no tool found to merge %s\n"
@@ -14576,71 +11268,23 @@ msgstr ""
" %s ã®ãƒžãƒ¼ã‚¸ã«é©åˆ‡ãªãƒ„ールãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\n"
"ã©ã¡ã‚‰ã®å†…容を採用ã—ã¾ã™ã‹ï¼Ÿ 作業領域:(l)ocal マージ対象:(o)ther"
-msgid ""
-"``internal:local``\n"
-"Uses the local version of files as the merged version."
-msgstr ""
-"``internal:local``\n"
-"マージçµæžœã¨ã—ã¦ã€ 作業領域å´ã®å†…容を採用ã—ã¾ã™ã€‚"
-
-msgid ""
-"``internal:other``\n"
-"Uses the other version of files as the merged version."
-msgstr ""
-"``internal:other``\n"
-"マージçµæžœã¨ã—ã¦ã€ マージ対象リビジョンå´ã®å†…容を採用ã—ã¾ã™ã€‚"
+msgid "&Local"
+msgstr "&Local"
-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 ""
-"``internal:fail``\n"
-"変更内容ã«é–¢ã™ã‚‹ãƒžãƒ¼ã‚¸å‡¦ç†ã¯å®Ÿæ–½ã›ãšã€ å¿…ãšãƒžãƒ¼ã‚¸å¤±æ•—ã¨ã¿ãªã—ã¾ã™ã€‚\n"
-" マージ失敗ã¨ã¿ãªã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã—ã¦ã¯ã€\n"
-" :hg:`resolve` ã«ã‚ˆã‚‹æ‰‹å‹•ã§ã®è¡çªè§£æ¶ˆãŒå¿…è¦ã§ã™ã€‚"
+msgid "&Other"
+msgstr "&Other"
#, python-format
-msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
-msgstr "%s.premerge ã¯ç„¡åŠ¹ã§ã™('%s' ã¯çœŸå½ãªã„ã— %s ã®ã„ãšã‚Œã§ã‚‚ã‚ã‚Šã¾ã›ã‚“)"
-
-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 ""
-"``internal:merge``\n"
-"éžå¯¾è©±çš„ãªã€ å˜ç´”ãªãƒžãƒ¼ã‚¸å‡¦ç†ã‚’実施ã—ã¾ã™ã€‚\n"
-" è¡çªãŒã‚ã£ãŸå ´åˆã€ マージ処ç†ã¯å¤±æ•—ã¨ã¿ãªã•ã‚Œã¾ã™ãŒã€\n"
-" マージçµæžœãƒ•ã‚¡ã‚¤ãƒ«ã«ã¯ã€ è¡çªãƒžãƒ¼ã‚¯ãŒè¨˜éŒ²ã•ã‚Œã¾ã™ã€‚"
+msgid "merging %s and %s to %s\n"
+msgstr "%s 㨠%s ã‚’ %s ã«ãƒžãƒ¼ã‚¸ä¸­\n"
#, python-format
-msgid "merging %s incomplete! (edit conflicts, then use 'hg resolve --mark')\n"
-msgstr "%s ã®ãƒžãƒ¼ã‚¸ã¯ä¸å®Œå…¨ã§ã™ (è¡çªè§£æ¶ˆå¾Œã« 'hg resolve --mark' ãŒå¿…è¦)\n"
-
-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 ""
-"``internal:dump``\n"
-"作業領域å´ã€ マージ対象リビジョンå´ã€ ãŠã‚ˆã³å…±é€šç¥–先時点ã®ã€\n"
-" ãã‚Œãžã‚Œã®å†…容をæŒã¤3ã¤ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’生æˆã—ã¾ã™ã€‚\n"
-" ã“れらã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€äº‹å¾Œã®æ‰‹å‹•ãƒžãƒ¼ã‚¸ç­‰ã§ä½¿ç”¨ã—ã¦ãã ã•ã„。\n"
-" 対象ファイルå㌠``a.txt`` ã§ã‚ã£ãŸå ´åˆã€\n"
-" 生æˆã•ã‚Œã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã¯ãã‚Œãžã‚Œ ``a.txt.local``〠``a.txt.other``\n"
-" ãŠã‚ˆã³ ``a.txt.base`` ã¨å‘½åã•ã‚Œã€\n"
-" ``a.txt`` ã¨åŒã˜ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«æ ¼ç´ã•ã‚Œã¾ã™ã€‚"
+msgid "merging %s\n"
+msgstr "%s をマージ中\n"
#, python-format
-msgid "merging %s failed!\n"
-msgstr "%s ã®ãƒžãƒ¼ã‚¸ã«å¤±æ•—!\n"
+msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
+msgstr "%s.premerge ã¯ç„¡åŠ¹ã§ã™('%s' ã¯çœŸå½ãªã„ã— %s ã®ã„ãšã‚Œã§ã‚‚ã‚ã‚Šã¾ã›ã‚“)"
#, python-format
msgid "was merge of '%s' successful (yn)?"
@@ -14654,6 +11298,10 @@ msgstr ""
" マージçµæžœãƒ•ã‚¡ã‚¤ãƒ« %s ã¯æœªå¤‰æ›´ã«è¦‹ãˆã¾ã™\n"
"マージæˆåŠŸã¨ã¿ãªã—ã¾ã™ã‹ï¼Ÿ (y/n)"
+#, python-format
+msgid "merging %s failed!\n"
+msgstr "%s ã®ãƒžãƒ¼ã‚¸ã«å¤±æ•—!\n"
+
msgid "unterminated string"
msgstr "文字列ãŒçµ‚端ã—ã¦ã„ã¾ã›ã‚“"
@@ -14671,44 +11319,44 @@ msgid ""
" File that is modified according to status."
msgstr ""
"``modified()``\n"
-" 更新ステータスをæŒã¤ãƒ•ã‚¡ã‚¤ãƒ« (※ 訳注: 未コミット時点ã§ã®ã¿åˆ¤å®šå¯èƒ½)"
+" 更新ステータスをæŒã¤ãƒ•ã‚¡ã‚¤ãƒ«"
#. i18n: "modified" is a keyword
msgid "modified takes no arguments"
-msgstr "modified ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "modified 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``added()``\n"
" File that is added according to status."
msgstr ""
"``added()``\n"
-" 追加ステータスをæŒã¤ãƒ•ã‚¡ã‚¤ãƒ« (※ 訳注: 未コミット時点ã§ã®ã¿åˆ¤å®šå¯èƒ½)"
+" 追加ステータスをæŒã¤ãƒ•ã‚¡ã‚¤ãƒ«"
#. i18n: "added" is a keyword
msgid "added takes no arguments"
-msgstr "added ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "added 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``removed()``\n"
" File that is removed according to status."
msgstr ""
"``removed()``\n"
-" 登録除外ステータスをæŒã¤ãƒ•ã‚¡ã‚¤ãƒ« (※ 訳注: 未コミット時点ã§ã®ã¿åˆ¤å®šå¯èƒ½)"
+" 削除ステータスをæŒã¤ãƒ•ã‚¡ã‚¤ãƒ«"
#. i18n: "removed" is a keyword
msgid "removed takes no arguments"
-msgstr "removed ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "removed 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``deleted()``\n"
" File that is deleted according to status."
msgstr ""
"``deleted()``\n"
-" ä¸åœ¨ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’æŒã¤ãƒ•ã‚¡ã‚¤ãƒ« (※ 訳注: 未コミット時点ã§ã®ã¿åˆ¤å®šå¯èƒ½)"
+" 削除ステータスをæŒã¤ãƒ•ã‚¡ã‚¤ãƒ«"
#. i18n: "deleted" is a keyword
msgid "deleted takes no arguments"
-msgstr "deleted ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "deleted 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``unknown()``\n"
@@ -14722,7 +11370,7 @@ msgstr ""
#. i18n: "unknown" is a keyword
msgid "unknown takes no arguments"
-msgstr "unknown ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "unknown 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``ignored()``\n"
@@ -14732,22 +11380,22 @@ msgstr ""
"``ignored()``\n"
" 無視ステータスをæŒã¤ãƒ•ã‚¡ã‚¤ãƒ«ã€‚\n"
" 本述語ãŒæŒ‡å®šã•ã‚ŒãŸæ™‚ã®ã¿ã€\n"
-" 無視対象ファイル㌠Mercurial ã®å–り扱ã„対象ã«ãªã‚Šã¾ã™ã€‚"
+" 無視ファイル㌠Mercurial ã®å–り扱ã„対象ã«ãªã‚Šã¾ã™ã€‚"
#. i18n: "ignored" is a keyword
msgid "ignored takes no arguments"
-msgstr "ignored ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "ignored 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``clean()``\n"
" File that is clean according to status."
msgstr ""
"``clean()``\n"
-" 変更無ã—ステータスをæŒã¤ãƒ•ã‚¡ã‚¤ãƒ« (※ 訳注: 未コミット時点ã§ã®ã¿åˆ¤å®šå¯èƒ½)"
+" 変更無ã—ステータスをæŒã¤ãƒ•ã‚¡ã‚¤ãƒ«"
#. i18n: "clean" is a keyword
msgid "clean takes no arguments"
-msgstr "clean ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "clean 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
#, python-format
msgid "not a function: %s"
@@ -14762,7 +11410,7 @@ msgstr ""
#. i18n: "binary" is a keyword
msgid "binary takes no arguments"
-msgstr "binary ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "binary 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``exec()``\n"
@@ -14773,7 +11421,7 @@ msgstr ""
#. i18n: "exec" is a keyword
msgid "exec takes no arguments"
-msgstr "exec ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "exec 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``symlink()``\n"
@@ -14784,7 +11432,7 @@ msgstr ""
#. i18n: "symlink" is a keyword
msgid "symlink takes no arguments"
-msgstr "symlink ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "symlink 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``resolved()``\n"
@@ -14795,7 +11443,7 @@ msgstr ""
#. i18n: "resolved" is a keyword
msgid "resolved takes no arguments"
-msgstr "resolved ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "resolved 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``unresolved()``\n"
@@ -14806,7 +11454,7 @@ msgstr ""
#. i18n: "unresolved" is a keyword
msgid "unresolved takes no arguments"
-msgstr "unresolved ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "unresolved 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``hgignore()``\n"
@@ -14816,7 +11464,7 @@ msgstr ""
" 有効㪠.hgignore パターンã«åˆè‡´ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«"
msgid "hgignore takes no arguments"
-msgstr "hgignore ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "hgignore 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``grep(regex)``\n"
@@ -14878,25 +11526,11 @@ msgid ""
" File that is recorded as being copied."
msgstr ""
"``copied()``\n"
-" 複製先ステータスをæŒã¤ãƒ•ã‚¡ã‚¤ãƒ« (※ 訳注: 未コミット時点ã§ã®ã¿åˆ¤å®šå¯èƒ½)"
+" 複製ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«"
#. i18n: "copied" is a keyword
msgid "copied takes no arguments"
-msgstr "copied ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
-
-msgid ""
-"``subrepo([pattern])``\n"
-" Subrepositories whose paths match the given pattern."
-msgstr ""
-"``subrepo([pattern])``\n"
-" パターンã«åˆè‡´ã™ã‚‹ãƒ‘スã«ä½ç½®ã™ã‚‹å‰¯ãƒªãƒã‚¸ãƒˆãƒªã€‚"
-
-#. i18n: "subrepo" is a keyword
-msgid "subrepo takes at most one argument"
-msgstr "subrepo ã®å¼•æ•°ã¯æœ€å¤§ï¼‘ã¤ã§ã™"
-
-msgid "subrepo requires a pattern or no arguments"
-msgstr "subrepo ã®å¼•æ•°ã¯ã€ãƒ‘ターン指定ã‹ã€å¼•æ•°ç„¡ã—ã§ã™"
+msgstr "copied 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid "invalid token"
msgstr "ä¸æ­£ãªè¨˜è¿°"
@@ -14912,49 +11546,9 @@ msgstr "状態矛盾: %s:%s ã¯è‰¯å¦åˆ¤å®šä¸èƒ½"
msgid "unknown bisect kind %s"
msgstr "未知ã®åˆ†å²ç¨®é¡ž %s"
-msgid "invalid bisect state"
-msgstr "bisect 状態ãŒä¸æ­£ã§ã™"
-
-#. i18n: bisect changeset status
-msgid "good"
-msgstr "good"
-
-#. i18n: bisect changeset status
-msgid "bad"
-msgstr "bad"
-
-#. i18n: bisect changeset status
-msgid "skipped"
-msgstr "skipped"
-
-#. i18n: bisect changeset status
-msgid "untested"
-msgstr "untested"
-
-#. i18n: bisect changeset status
-msgid "good (implicit)"
-msgstr "good (推定)"
-
-#. i18n: bisect changeset status
-msgid "bad (implicit)"
-msgstr "bad (推定)"
-
msgid "disabled extensions:"
msgstr "無効化ã•ã‚Œã¦ã„るエクステンション:"
-msgid "VALUE"
-msgstr "値"
-
-msgid "DEPRECATED"
-msgstr "éžæŽ¨å¥¨"
-
-msgid ""
-"\n"
-"[+] marked option can be specified multiple times\n"
-msgstr ""
-"\n"
-"[+] å°ä»˜ãã®ã‚ªãƒ—ションã¯è¤‡æ•°å›žæŒ‡å®šå¯èƒ½ã§ã™\n"
-
msgid "Configuration Files"
msgstr "設定ファイル"
@@ -14974,10 +11568,10 @@ msgid "Specifying Multiple Revisions"
msgstr "複数リビジョンã®æŒ‡å®š"
msgid "Specifying Revision Sets"
-msgstr "リビジョン群ã®æŒ‡å®š"
+msgstr "複数リビジョンã®æŒ‡å®š"
msgid "Specifying File Sets"
-msgstr "ファイル群ã®æŒ‡å®š"
+msgstr "複数ファイルã®æŒ‡å®š"
msgid "Diff Formats"
msgstr "差分形å¼"
@@ -14991,8 +11585,8 @@ msgstr "テンプレートã®åˆ©ç”¨"
msgid "URL Paths"
msgstr "URLã®ãƒ‘ス指定"
-msgid "Using Additional Features"
-msgstr "拡張機能(エクステンション)ã®ä½¿ç”¨"
+msgid "Using additional features"
+msgstr "付加機能ã®ä½¿ç”¨"
msgid "Subrepositories"
msgstr "副リãƒã‚¸ãƒˆãƒª"
@@ -15003,12 +11597,9 @@ msgstr "hgweb 設定ファイル"
msgid "Glossary"
msgstr "用語集"
-msgid "Syntax for Mercurial Ignore Files"
+msgid "syntax for Mercurial ignore files"
msgstr "Mercurial ã®ç„¡è¦–指定ファイルã®æ–‡æ³•"
-msgid "Working with Phases"
-msgstr "フェーズã®åˆ©ç”¨"
-
msgid ""
"The Mercurial system uses a set of configuration files to control\n"
"aspects of its behavior."
@@ -15022,9 +11613,9 @@ msgid ""
"by ``name = value`` entries::"
msgstr ""
"Mercurial ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ ã„ã‚ゆる ini ファイル形å¼ã§è¨˜è¿°ã•ã‚Œã¾ã™ã€‚\n"
-"設定ファイルã¯ã€ 「セクションã€ã‹ã‚‰æ§‹æˆã•ã‚Œã€\n"
-"å„セクション㯠``[セクションå]`` å½¢å¼ã®ãƒ˜ãƒƒãƒ€ã§å§‹ã¾ã‚Šã€\n"
-"``åå‰ = 値`` å½¢å¼ã®è¦ç´ ãŒåˆ—挙ã•ã‚Œã¾ã™::"
+"設定ファイルã¯ã€\n"
+"``[セクションå]`` å½¢å¼ã®ãƒ˜ãƒƒãƒ€ã«ã‚ˆã£ã¦å§‹ã¾ã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‹ã‚‰æ§‹æˆã•ã‚Œã€\n"
+"セクションã«ã¯ ``åå‰ = 値`` å½¢å¼ã®è¦ç´ ãŒåˆ—挙ã•ã‚Œã¾ã™::"
msgid ""
" [ui]\n"
@@ -15045,10 +11636,10 @@ msgstr ""
msgid ""
"Files\n"
-"====="
+"-----"
msgstr ""
"ファイル\n"
-"========"
+"-----"
msgid ""
"Mercurial reads configuration data from several files, if they exist.\n"
@@ -15058,13 +11649,6 @@ msgid ""
"``%USERPROFILE%\\mercurial.ini`` or ``$HOME/.hgrc`` and local\n"
"configuration is put into the per-repository ``<repo>/.hg/hgrc`` file."
msgstr ""
-"Mercurial ã¯è¤‡æ•°ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰è¨­å®šæƒ…報を読ã¿è¾¼ã¿ã¾ã™ã€‚\n"
-"読ã¿è¾¼ã¿å¯¾è±¡ã¨ãªã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ 事å‰ã«å­˜åœ¨ã—ã¾ã›ã‚“ã®ã§ã€\n"
-"é©åˆ‡ãªä½ç½®ã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作æˆã™ã‚‹ã®ã¯ã€ 利用者ã®è²¬ä»»ã¨ãªã‚Šã¾ã™ã€‚\n"
-"ユーザå設定ã®ã‚ˆã†ãªã€ 広範囲ã«æ¸¡ã‚‹è¨­å®šã¯ã€\n"
-"``%USERPROFILE%\\mercurial.ini`` ã‚„ ``$HOME/.hgrc`` ã«ã€\n"
-"ã‚‚ã£ã¨ç‹­ã„範囲ã«é–¢ã™ã‚‹è¨­å®šã¯ã€ å„リãƒã‚¸ãƒˆãƒªæ¯Žã® ``<リãƒã‚¸ãƒˆãƒª>/.hg/hgrc``\n"
-"ã«ãŠã„ã¦è¨˜è¿°ã™ã‚‹ã®ãŒä¸€èˆ¬çš„ã§ã™ã€‚"
msgid ""
"The names of these files depend on the system on which Mercurial is\n"
@@ -15073,46 +11657,27 @@ msgid ""
"paths are given below, settings from earlier paths override later\n"
"ones."
msgstr ""
-"設定ファイルã®åå‰ (パス) ã¯ã€ Mercurial ã®ç¨¼å‹•ç’°å¢ƒã«ä¾å­˜ã—ã¾ã™ã€‚\n"
-"å˜ä¸€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªç›´ä¸‹ã® ``*.rc`` ファイルを読ã¿è¾¼ã‚€å ´åˆã€\n"
-"ファイルåã®ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆé †ã§èª­ã¿è¾¼ã¾ã‚Œã€ å…ˆã«èª­ã¿è¾¼ã‚“ã è¨­å®šã‚ˆã‚Šã‚‚ã€\n"
-"後ã‹ã‚‰èª­ã¿è¾¼ã‚“ã è¨­å®šã®æ–¹ãŒå„ªå…ˆã•ã‚Œã¾ã™ã€‚ 以下ã«åˆ—挙ã•ã‚Œã‚‹ãƒ‘スã«ãŠã„ã¦ã€\n"
-"複数ã‹ã‚‰è¨­å®šãŒèª­ã¿è¾¼ã¾ã‚ŒãŸå ´åˆã¯ã€ 列挙順ã®æ—©ã„æ–¹ã®è¨­å®šãŒå„ªå…ˆã•ã‚Œã¾ã™ã€‚"
-msgid "| (All) ``<repo>/.hg/hgrc``"
-msgstr "| (共通) ``<リãƒã‚¸ãƒˆãƒª>/.hg/hgrc``"
+msgid "| (Unix, Windows) ``<repo>/.hg/hgrc``"
+msgstr ""
msgid ""
" Per-repository configuration options that only apply in a\n"
" particular repository. This file is not version-controlled, and\n"
" will not get transferred during a \"clone\" operation. Options in\n"
" this file override options in all other configuration files. On\n"
-" Plan 9 and Unix, most of this file will be ignored if it doesn't\n"
-" belong to a trusted user or to a trusted group. See the documentation\n"
-" for the ``[trusted]`` section below for more details."
+" Unix, most of this file will be ignored if it doesn't belong to a\n"
+" trusted user or to a trusted group. See the documentation for the\n"
+" ``[trusted]`` section below for more details."
msgstr ""
-" 個々ã®ãƒªãƒã‚¸ãƒˆãƒªã«ã®ã¿é©ç”¨ã•ã‚Œã‚‹ã€ リãƒã‚¸ãƒˆãƒªæ¯Žè¨­å®šã€‚\n"
-" 本ファイルã¯æ§‹æˆç®¡ç†å¯¾è±¡å¤–ã§ã‚り〠:hg:`clone` \n"
-" ã«ã‚ˆã£ã¦ä¼æ’­ã™ã‚‹ã“ã¨ã‚‚ã‚ã‚Šã¾ã›ã‚“。 本ファイルã§ã®è¨­å®šã¯ã€\n"
-" 以下ã«è¿°ã¹ã‚‹å…¨ã¦ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã«å„ªå…ˆã—ã¾ã™ã€‚ Unix ãŠã‚ˆã³ Plan 9\n"
-" 環境ã«ãŠã„ã¦ã€ 本ファイルã®æ‰€æœ‰è€…ï¼ã‚°ãƒ«ãƒ¼ãƒ—ãŒã€ ä¿¡é ¼ã§ããªã„å ´åˆã€\n"
-" 本ファイル中ã®è¨­å®šã®å¤§åŠã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚ 詳細ã«é–¢ã—ã¦ã¯ã€\n"
-" 後述ã™ã‚‹ã€€``trusted`` セクションã®èª¬æ˜Žã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
"| (Unix) ``$HOME/.hgrc``\n"
"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
"| (Windows) ``%HOME%\\.hgrc``\n"
"| (Windows) ``%HOME%\\Mercurial.ini``"
msgstr ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
-"| (Unix) ``$HOME/.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
-"| (Windows) ``%HOME%\\.hgrc``\n"
-"| (Windows) ``%HOME%\\Mercurial.ini``"
msgid ""
" Per-user configuration file(s), for the user running Mercurial. On\n"
@@ -15122,22 +11687,11 @@ msgid ""
"installation\n"
" options."
msgstr ""
-" Mercurial を実行ã™ã‚‹ãƒ¦ãƒ¼ã‚¶ã®ãŸã‚ã®ã€ ユーザ毎設定。\n"
-" Windows 9x 環境ã§ã® ``%HOME%`` 㯠``%APPDATA%`` ã«ç›¸å½“ã—ã¾ã™ã€‚\n"
-" 本ファイルã§ã®è¨­å®šã¯ã€ 当該ユーザã®å…¨ã¦ã® Mercurial\n"
-" コマンド実行ã«é©ç”¨ã•ã‚Œã¾ã™ã€‚ 本ファイルã§ã®è¨­å®šã¯ã€\n"
-" システム毎ï¼ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ¯Žã®è¨­å®šã‚ˆã‚Šå„ªå…ˆã•ã‚Œã¾ã™ã€‚"
msgid ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
"| (Unix) ``/etc/mercurial/hgrc``\n"
"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
msgstr ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``/etc/mercurial/hgrc``\n"
-"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
msgid ""
" Per-system configuration files, for the system on which Mercurial\n"
@@ -15145,21 +11699,11 @@ msgid ""
" executed by any user in any directory. Options in these files\n"
" override per-installation options."
msgstr ""
-" Mercurial ã®ç¨¼å‹•ç’°å¢ƒã«ãŠã‘るシステム毎設定。\n"
-" 本ファイルã§ã®è¨­å®šã¯ã€ 実行ユーザï¼å®Ÿè¡Œä½ç½®ã«é–¢ã‚らãšã€\n"
-" å…¨ã¦ã® Mercurial コマンド実行ã«é©ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" 本ファイルã§ã®è¨­å®šã¯ã€ インストール毎設定より優先ã•ã‚Œã¾ã™ã€‚"
msgid ""
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc.d/*.rc``\n"
"| (Unix) ``<install-root>/etc/mercurial/hgrc``\n"
"| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
msgstr ""
-"| (Plan 9) ``<インストール先>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<インストール先>/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``<インストール先>/etc/mercurial/hgrc``\n"
-"| (Unix) ``<インストール先>/etc/mercurial/hgrc.d/*.rc``"
msgid ""
" Per-installation configuration files, searched for in the\n"
@@ -15169,22 +11713,12 @@ msgid ""
" in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply\n"
" to all Mercurial commands executed by any user in any directory."
msgstr ""
-" Mercurial ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«å…ˆã‹ã‚‰èª­ã¿è¾¼ã¾ã‚Œã‚‹ã€ インストール毎設定。\n"
-" ``<インストール先>`` ã¯ã€ 実行ã•ã‚Œã‚‹ **hg** コマンド\n"
-" (ãªã„ã—シンボリックリンク) ã®è¦ªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’æ„味ã—ã¾ã™ã€‚\n"
-" 例ãˆã°ã€ ``/shared/tools/bin/hg`` ãŒå®Ÿè¡Œã•ã‚Œã‚‹å ´åˆã€\n"
-" ``/shared/tools/etc/mercurial/hgrc`` ãŒèª­ã¿è¾¼ã¾ã‚Œã¾ã™ã€‚\n"
-" 本ファイルã§ã®è¨­å®šã¯ã€ 実行ユーザï¼å®Ÿè¡Œä½ç½®ã«é–¢ã‚らãšã€\n"
-" 当該 Mercurial コマンドã®å®Ÿè¡Œã®å…¨ã¦å¯¾ã—ã¦é©ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid ""
"| (Windows) ``<install-dir>\\Mercurial.ini`` **or**\n"
"| (Windows) ``<install-dir>\\hgrc.d\\*.rc`` **or**\n"
"| (Windows) ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``"
msgstr ""
-"| (Windows) ``<インストール先>\\Mercurial.ini`` **or**\n"
-"| (Windows) ``<インストール先>\\hgrc.d\\*.rc`` **or**\n"
-"| (Windows) ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``"
msgid ""
" Per-installation/system configuration files, for the system on\n"
@@ -15193,32 +11727,26 @@ msgid ""
" keys contain PATH-like strings, every part of which must reference\n"
" a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will\n"
" be read. Mercurial checks each of these locations in the specified\n"
-" order until one or more configuration files are detected."
+" order until one or more configuration files are detected. If the\n"
+" pywin32 extensions are not installed, Mercurial will only look for\n"
+" site-wide configuration in ``C:\\Mercurial\\Mercurial.ini``."
msgstr ""
-" Mercurial ã®ç¨¼å‹•ç’°å¢ƒã«ãŠã‘る〠インストール毎ï¼ã‚·ã‚¹ãƒ†ãƒ æ¯Žè¨­å®šã€‚\n"
-" 本ファイルã§ã®è¨­å®šã¯ã€ 実行ユーザï¼å®Ÿè¡Œä½ç½®ã«é–¢ã‚らãšã€\n"
-" 当該 Mercurial コマンドã®å…¨ã¦ã®å®Ÿè¡Œã«å¯¾ã—ã¦é©ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" レジストリキー㯠PATH 環境変数的ãªå€¤ã‚’ä¿æŒã—ã€\n"
-" 値ã®å„è¦ç´ ã¯ã€ ファイル ``Mercurial.ini`` ã‚’å‚ç…§ã™ã‚‹ã‹ã€\n"
-" ``*.rc`` ファイルを格ç´ã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。\n"
-" 1ã¤ä»¥ä¸Šã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ãŒæ¤œå‡ºã•ã‚Œã‚‹ã¾ã§ã€\n"
-" Mercurial ã¯è¨˜è¿°é †åºé€šã‚Šã«ã€ å„ä½ç½®ã®ãƒ•ã‚¡ã‚¤ãƒ«æ‰€åœ¨ç¢ºèªã‚’è¡Œã„ã¾ã™ã€‚"
msgid ""
"Syntax\n"
-"======"
+"------"
msgstr ""
"文法\n"
-"===="
+"------"
msgid ""
"A configuration file consists of sections, led by a ``[section]`` header\n"
"and followed by ``name = value`` entries (sometimes called\n"
"``configuration keys``)::"
msgstr ""
-"設定ファイルã¯ã€ 「セクションã€ã‹ã‚‰æ§‹æˆã•ã‚Œã€\n"
-"å„セクション㯠``[セクションå]`` å½¢å¼ã®ãƒ˜ãƒƒãƒ€ã§å§‹ã¾ã‚Šã€\n"
-"``åå‰ = 値`` å½¢å¼ã®è¦ç´  (『åå‰ã€ã¯ã€Žè¨­å®šã‚­ãƒ¼ã€ã¨ã‚‚呼ã°ã‚Œã¾ã™)\n"
+"設定ファイルã¯ã€\n"
+"``[セクションå]`` å½¢å¼ã®ãƒ˜ãƒƒãƒ€ã«ã‚ˆã£ã¦å§‹ã¾ã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‹ã‚‰æ§‹æˆã•ã‚Œã€\n"
+"セクションã«ã¯ ``åå‰ = 値`` å½¢å¼ã®è¦ç´  (``設定キー`` ã¨å‘¼ç§°ã•ã‚Œã‚‹äº‹ã‚‚)\n"
"ãŒåˆ—挙ã•ã‚Œã¾ã™::"
msgid ""
@@ -15227,10 +11755,6 @@ msgid ""
" green=\n"
" eggs"
msgstr ""
-" [spam]\n"
-" eggs=ham\n"
-" green=\n"
-" eggs"
msgid ""
"Each line contains one entry. If the lines that follow are indented,\n"
@@ -15238,19 +11762,11 @@ msgid ""
"removed from values. Empty lines are skipped. Lines beginning with\n"
"``#`` or ``;`` are ignored and may be used to provide comments."
msgstr ""
-"設定記述ã¯ä¸€è¡Œä¸€ã‚¨ãƒ³ãƒˆãƒªã§ã™ã€‚ 但ã—〠後続行ãŒå­—下ã’ã•ã‚Œã¦ã„ã‚‹å ´åˆã¯ã€\n"
-"エントリ記述ãŒç¶™ç¶šã—ã¦ã„ã‚‹ã‚‚ã®ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚\n"
-"値記述ã®å…ˆé ­ã® (åŠè§’) 空白文字ã¯é™¤å¤–ã•ã‚Œã¾ã™ã€‚\n"
-"空行ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚ ``#`` ãªã„ã— ``;`` ã§å§‹ã¾ã‚‹è¡Œã¯ã€\n"
-"コメント行ã¨ã—ã¦ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
msgid ""
"Configuration keys can be set multiple times, in which case Mercurial\n"
"will use the value that was configured last. As an example::"
msgstr ""
-"åŒä¸€è¨­å®šã‚­ãƒ¼ã«å¯¾ã—ã¦ã€ 複数回ã®è¨˜è¿°ãŒå¯èƒ½ã§ã™ãŒã€\n"
-"Mercurial ã¯æœ€å¾Œã«è¨­å®šã•ã‚ŒãŸå€¤ã‚’使用ã—ã¾ã™ã€‚\n"
-"例ãˆã°::"
msgid ""
" [spam]\n"
@@ -15258,24 +11774,15 @@ msgid ""
" ham=serrano\n"
" eggs=small"
msgstr ""
-" [spam]\n"
-" eggs=large\n"
-" ham=serrano\n"
-" eggs=small"
msgid "This would set the configuration key named ``eggs`` to ``small``."
msgstr ""
-"上記記述ã®å ´åˆã€ 設定キー ``eggs`` ã®å€¤ã¨ã—ã¦æŽ¡ç”¨ã•ã‚Œã‚‹ã®ã¯\n"
-"``small`` ã§ã™ã€‚"
msgid ""
"It is also possible to define a section multiple times. A section can\n"
"be redefined on the same and/or on different configuration files. For\n"
"example::"
msgstr ""
-"åŒä¸€ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’複数回記述ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚ 複数回ã®è¨˜è¿°å ´æ‰€ã¯ã€\n"
-"åŒä¸€ãƒ•ã‚¡ã‚¤ãƒ«ä¸­ã§ã‚‚〠異ãªã‚‹è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«é–“ã§ã‚‚構ã„ã¾ã›ã‚“。\n"
-"例ãˆã°::"
msgid ""
" [foo]\n"
@@ -15283,10 +11790,6 @@ msgid ""
" ham=serrano\n"
" eggs=small"
msgstr ""
-" [foo]\n"
-" eggs=large\n"
-" ham=serrano\n"
-" eggs=small"
msgid ""
" [bar]\n"
@@ -15294,10 +11797,6 @@ msgid ""
" green=\n"
" eggs"
msgstr ""
-" [bar]\n"
-" eggs=ham\n"
-" green=\n"
-" eggs"
msgid ""
" [foo]\n"
@@ -15305,10 +11804,6 @@ msgid ""
" eggs=medium\n"
" bread=toasted"
msgstr ""
-" [foo]\n"
-" ham=prosciutto\n"
-" eggs=medium\n"
-" bread=toasted"
msgid ""
"This would set the ``eggs``, ``ham``, and ``bread`` configuration keys\n"
@@ -15316,11 +11811,6 @@ msgid ""
"respectively. As you can see there only thing that matters is the last\n"
"value that was set for each of the configuration keys."
msgstr ""
-"上記ã®è¨­å®šè¨˜è¿°ã®å ´åˆã€\n"
-"``foo`` セクションã®\n"
-"``eggs``〠``ham`` ãŠã‚ˆã³ ``bread`` 設定キーã®å€¤ã¯ãã‚Œãžã‚Œ\n"
-"``medium``〠``prosciutto`` ãŠã‚ˆã³ ``toasted`` ã¨ãªã‚Šã¾ã™ã€‚\n"
-"å„設定キー毎ã«ã€ 最後ã«è¨­å®šã•ã‚ŒãŸå€¤ãŒæœ‰åŠ¹ã«ãªã‚‹ã®ã§ã™ã€‚"
msgid ""
"If a configuration key is set multiple times in different\n"
@@ -15329,9 +11819,6 @@ msgid ""
"paths overriding later ones as described on the ``Files`` section\n"
"above."
msgstr ""
-"åŒä¸€è¨­å®šã‚­ãƒ¼ã«å¯¾ã—ã¦ã€ ç•°ãªã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã§ãã‚Œãžã‚Œè¨­å®šãŒè¨˜è¿°ã•ã‚ŒãŸå ´åˆã€\n"
-"「最後ã®è¨­å®šå€¤ã€ã¯ãƒ•ã‚¡ã‚¤ãƒ«ã®èª­ã¿è¾¼ã¿é †åºã«ä¾å­˜ã—ã¾ã™ã€‚\n"
-"先㮠``ファイル`` セクションã§ã®ãƒ‘スã®åˆ—挙順ãŒã€ より早ã„æ–¹ãŒå„ªå…ˆã•ã‚Œã¾ã™ã€‚"
msgid ""
"A line of the form ``%include file`` will include ``file`` into the\n"
@@ -15341,25 +11828,17 @@ msgid ""
"Environment variables and ``~user`` constructs are expanded in\n"
"``file``. This lets you do something like::"
msgstr ""
-"``%include file`` å½¢å¼ã®è¨˜è¿°ã«ã‚ˆã£ã¦ã€ 当該設定ファイルã«ãŠã„ã¦\n"
-"``file`` ãŒèª­ã¿è¾¼ã¾ã‚Œã¾ã™ã€‚ 読ã¿è¾¼ã¿ã¯å†å¸°çš„ã«å®Ÿæ–½ã•ã‚Œã‚‹ãŸã‚ã€\n"
-"読ã¿è¾¼ã¿å¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã€ ä»–ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’読ã¿è¾¼ã‚€ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚\n"
-"ファイルåã¯ã€ ``%include`` 記述ã®ã‚るファイルã«å¯¾ã—ã¦ã€\n"
-"相対的ãªã‚‚ã®ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚ ``file`` ã«ãŠã‘る環境変数や ``~user``\n"
-"å½¢å¼ã®è¨˜è¿°ã¯å±•é–‹ã•ã‚Œã¾ã™ã€‚ ãã®ãŸã‚〠以下ã®ã‚ˆã†ãªè¨˜è¿°ã«ã‚ˆã£ã¦::"
msgid " %include ~/.hgrc.d/$HOST.rc"
-msgstr " %include ~/.hgrc.d/$HOST.rc"
+msgstr ""
msgid "to include a different configuration file on each computer you use."
-msgstr "ホスト毎ã«ç•°ãªã‚‹è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã‚’読ã¿è¾¼ã‚€äº‹ãŒå¯èƒ½ã§ã™ã€‚"
+msgstr ""
msgid ""
"A line with ``%unset name`` will remove ``name`` from the current\n"
"section, if it has been set previously."
msgstr ""
-"当該セクションã«ãŠã„ã¦ã€ 既㫠``name`` ãŒè¨­å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã€\n"
-"``%unset name`` å½¢å¼ã®è¨˜è¿°ã«ã‚ˆã£ã¦ã€ 設定を破棄ã™ã‚‹äº‹ãŒå¯èƒ½ã§ã™ã€‚"
msgid ""
"The values are either free-form text strings, lists of text strings,\n"
@@ -15368,51 +11847,36 @@ msgid ""
"\"off\"\n"
"(all case insensitive)."
msgstr ""
-"設定ã™ã‚‹å€¤ã«ã¯ã€ 自由形å¼ã®æ–‡å­—列〠文字列ã®åˆ—挙ã€ãªã„ã—真å½å€¤ã®ã€\n"
-"ã„ãšã‚Œã§ã‚‚指定å¯èƒ½ã§ã™ã€‚ 真å½å€¤ã®è¨­å®šã§ã¯ã€ \"1\"〠\"yes\"ã€\n"
-"\"true\" ãªã„ã— \"on\" ã®ã„ãšã‚Œã‚‚ãŒçœŸå€¤ã€ \"0\"〠\"no\"〠\"false\"\n"
-"ãªã„ã— \"off\" ã®ã„ãšã‚Œã‚‚ãŒå½å€¤ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚ (文字大å°ã¯ç„¡è¦–ã•ã‚Œã¾ã™)"
msgid ""
"List values are separated by whitespace or comma, except when values are\n"
"placed in double quotation marks::"
msgstr ""
-"列挙ã«ãŠã‘ã‚‹å„値ã¯ã€ 空白文字ãªã„ã—コンマã§åŒºåˆ‡ã‚‰ã‚Œã¾ã™ãŒã€\n"
-"二é‡å¼•ç”¨ç¬¦ (\") ã§å›²ã¾ã‚ŒãŸéƒ¨ä½ã¯åˆ†å‰²ã•ã‚Œã¾ã›ã‚“::"
msgid " allow_read = \"John Doe, PhD\", brian, betty"
-msgstr " allow_read = \"John Doe, PhD\", brian, betty"
+msgstr ""
msgid ""
"Quotation marks can be escaped by prefixing them with a backslash. Only\n"
"quotation marks at the beginning of a word is counted as a quotation\n"
"(e.g., ``foo\"bar baz`` is the list of ``foo\"bar`` and ``baz``)."
msgstr ""
-"ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã‚’å‰ã«ä»˜ã‘る事ã§ã€ 引用符自体を記述ã™ã‚‹äº‹ãŒå¯èƒ½ã§ã™ã€‚\n"
-"語ã®å†’é ­ä½ç½®ä»¥å¤–ã®å¼•ç”¨ç¬¦ã¯ã€ 引用符ã¨ã¯ã¿ãªã•ã‚Œã¾ã›ã‚“。\n"
-"(例: ``foo\"bar baz`` 㯠``foo\"bar`` 㨠``baz`` ã®åˆ—挙ã¨ã¿ãªã•ã‚Œã¾ã™)"
msgid ""
"Sections\n"
-"========"
+"--------"
msgstr ""
-"セクション\n"
-"=========="
msgid ""
"This section describes the different sections that may appear in a\n"
"Mercurial configuration file, the purpose of each section, its possible\n"
"keys, and their possible values."
msgstr ""
-"Mercurial ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã§è¨˜è¿°å¯èƒ½ãªå„セクション毎ã®ã€\n"
-"用途〠設定キーã€ã€€ãŠã‚ˆã³è¨­å®šå¯èƒ½ãªå€¤ã«ã¤ã„ã¦ä»¥ä¸‹ã§è¿°ã¹ã¾ã™ã€‚"
msgid ""
"``alias``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``alias``\n"
-"---------"
msgid ""
"Defines command aliases.\n"
@@ -15423,159 +11887,68 @@ msgid ""
"already used by ``$N`` in the definition are put at the end of the\n"
"command to be executed."
msgstr ""
-"コマンドã®åˆ¥å (エイリアス) 定義。\n"
-"別åã¯ã€ ä»–ã®ã‚³ãƒžãƒ³ãƒ‰ (ãªã„ã—エイリアス) や〠付加的ãªå¼•æ•°ã‚’使ã£ã¦ã€\n"
-"自分独自ã®ã‚³ãƒžãƒ³ãƒ‰ã®å®šç¾©ã‚’å¯èƒ½ã«ã—ã¾ã™ã€‚\n"
-"別å定義ã«ãŠã‘ã‚‹ ``$1`` ã‚„ ``$2`` ã®ã‚ˆã†ãªä½ç½®æŒ‡å®šå¼•æ•°ã¯ã€\n"
-"実行å‰ã« Mercurial ã«ã‚ˆã£ã¦ç½®æ›ã•ã‚Œã¾ã™ã€‚\n"
-"別å定義中㧠``$N`` å½¢å¼ã«ã‚ˆã‚‹å‚ç…§ã®ç„¡ã‹ã£ãŸå…¨ã¦ã®å¼•æ•°ã¯ã€\n"
-"実行ã•ã‚Œã‚‹ã‚³ãƒžãƒ³ãƒ‰ã®æœ«å°¾ã«ä»˜ä¸Žã•ã‚Œã¾ã™ã€‚"
msgid "Alias definitions consist of lines of the form::"
-msgstr "別å定義ã§ã¯ã€ 以下ã®å½¢å¼ã®è¡Œã‚’記述ã—ã¾ã™::"
+msgstr ""
msgid " <alias> = <command> [<argument>]..."
-msgstr " <別å> = <コマンド> [<引数>]..."
+msgstr ""
msgid "For example, this definition::"
-msgstr "例ãˆã°ã€ 以下ã®å®šç¾©ã§ã¯::"
+msgstr ""
msgid " latest = log --limit 5"
-msgstr " latest = log --limit 5"
+msgstr ""
msgid ""
"creates a new command ``latest`` that shows only the five most recent\n"
"changesets. You can define subsequent aliases using earlier ones::"
msgstr ""
-"最新㮠5 リビジョンã®ã¿ã‚’表示ã™ã‚‹ ``latest`` コマンドãŒå®šç¾©ã•ã‚Œã¾ã™ã€‚\n"
-"定義済ã¿ã®åˆ¥åを用ã„ã¦ã€ é•ã†åˆ¥åを定義ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™::"
msgid " stable5 = latest -b stable"
-msgstr " stable5 = latest -b stable"
+msgstr ""
msgid ""
".. note:: It is possible to create aliases with the same names as\n"
" existing commands, which will then override the original\n"
" definitions. This is almost always a bad idea!"
msgstr ""
-".. note:: 既存コマンドã¨åŒåã®åˆ¥å定義ã¯ã€ 既存コマンドを上書ãã—ã¾ã™ã€‚\n"
-" ã“ã®ã‚ˆã†ãªåˆ¥å定義ã¯ã€ 大概悲惨ãªçµæžœã‚’æ‹›ãã¾ã™!"
msgid ""
"An alias can start with an exclamation point (``!``) to make it a\n"
"shell alias. A shell alias is executed with the shell and will let you\n"
"run arbitrary commands. As an example, ::"
msgstr ""
-"感嘆符 (``!``) ã‹ã‚‰å§‹ã¾ã‚‹åˆ¥å定義ã¯ã€ シェル別åã‚’æ„味ã—ã¾ã™ã€‚\n"
-"シェル別åã¯ã‚·ã‚§ãƒ«ã«ã‚ˆã£ã¦è§£é‡ˆã•ã‚Œã€ ä»»æ„ã®ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡ŒãŒå¯èƒ½ã§ã™ã€‚\n"
-"例ãˆã°ä»¥ä¸‹ã®å®šç¾©ã«ã‚ˆã£ã¦::"
-msgid " echo = !echo $@"
-msgstr " echo = !echo $@"
+msgid " echo = !echo"
+msgstr ""
msgid ""
"will let you do ``hg echo foo`` to have ``foo`` printed in your\n"
"terminal. A better example might be::"
msgstr ""
-"``hg echo foo`` 実行ã¯ã€ 端末㫠``foo`` を表示ã—ã¾ã™ã€‚\n"
-"より実践的ãªä¾‹ã¨ã—ã¦ã¯::"
msgid " purge = !$HG status --no-status --unknown -0 | xargs -0 rm"
-msgstr " purge = !$HG status --no-status --unknown -0 | xargs -0 rm"
+msgstr ""
msgid ""
"which will make ``hg purge`` delete all unknown files in the\n"
"repository in the same manner as the purge extension."
msgstr ""
-"``hg purge`` 実行ã¯ã€ 作業領域中ã®å…¨ã¦ã®æœªçŸ¥ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ã€\n"
-"purge エクステンションã¨åŒã˜ä½œæ³•ã§å‰Šé™¤ã—ã¾ã™ã€‚"
-
-msgid ""
-"Positional arguments like ``$1``, ``$2``, etc. in the alias definition\n"
-"expand to the command arguments. Unmatched arguments are\n"
-"removed. ``$0`` expands to the alias name and ``$@`` expands to all\n"
-"arguments separated by a space. These expansions happen before the\n"
-"command is passed to the shell."
-msgstr ""
-"別å定義ã§ã® ``$1`` ã‚„ ``$2`` ç­‰ã®ä½ç½®æŒ‡å®šå¼•æ•°ã¯ã€ 別åコマンド実行ã®éš›ã«ã€\n"
-"コマンド行ã§æŒ‡å®šã•ã‚ŒãŸã€ 対応ã™ã‚‹å¼•æ•°ã§ç½®æ›ã•ã‚Œã¾ã™ã€‚ 対応引数ãŒç„¡ã„å ´åˆã€\n"
-"引数ä¸è¶³ã§å‡¦ç†ãŒä¸­æ–­ã•ã‚Œã¾ã™ã€‚ ``$0`` ã¯ã‚³ãƒžãƒ³ãƒ‰åˆ¥åãã®ã‚‚ã®ã€``$@``\n"
-"ã¯å…¨å¼•æ•°ã‚’空白区切りã—ãŸã‚‚ã®ã§ã€ãã‚Œãžã‚Œç½®æ›ã•ã‚Œã¾ã™ã€‚ 引数ã®ç½®æ›ã¯ã€\n"
-"シェルã«ã‚ˆã‚‹ã‚³ãƒžãƒ³ãƒ‰è¡Œè§£é‡ˆã‚ˆã‚Šã‚‚〠å‰ã«å®Ÿæ–½ã•ã‚Œã¾ã™ã€‚"
msgid ""
-"Shell aliases are executed in an environment where ``$HG`` expands to\n"
+"Shell aliases are executed in an environment where ``$HG`` expand to\n"
"the path of the Mercurial that was used to execute the alias. This is\n"
"useful when you want to call further Mercurial commands in a shell\n"
"alias, as was done above for the purge alias. In addition,\n"
-"``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg\n"
+"``$HG_ARGS`` expand to the arguments given to Mercurial. In the ``hg\n"
"echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``."
msgstr ""
-"シェル別åã§ã¯ã€ 環境変数 ``$HG`` ãŒã€ 別åコマンドを実行ã™ã‚‹\n"
-"Mercurial ã®ãƒ‘スã«ç½®æ›ã•ã‚Œã¾ã™ã€‚\n"
-"ã“ã®ä»•æ§˜ã¯ã€ 先㮠purge 別åã®ã‚ˆã†ã«ã€ シェル別åã«ãŠã„ã¦\n"
-"Mercurial を実行ã™ã‚‹å ´åˆã«æœ‰ç”¨ã§ã™ã€‚\n"
-"æ›´ã«ã€ 環境変数 ``$HG_ARGS`` 㯠Mercurial ã¸ã®å¼•æ•°ã«ç½®æ›ã•ã‚Œã¾ã™ã®ã§ã€\n"
-"先述ã—㟠``hg echo foo`` ã§ã¯ã€\n"
-"``$HG_ARGS`` 㯠``echo foo`` ã«ç½®æ›ã•ã‚Œã¾ã™ã€‚"
msgid ""
-".. note:: Some global configuration options such as ``-R`` are\n"
-" processed before shell aliases and will thus not be passed to\n"
-" aliases."
-msgstr ""
-".. note:: å¹¾ã¤ã‹ã®ã‚°ãƒ­ãƒ¼ãƒãƒ«ã‚ªãƒ—ション (例: ``-R``) ã®å‡¦ç†ã¯ã€\n"
-" シェル別åã®è§£é‡ˆå‰ã«å®Ÿæ–½ã•ã‚Œã‚‹ãŸã‚〠シェル別åã«å¯¾ã—ã¦ã€\n"
-" ã“れらを指定ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。"
-
-msgid ""
-"\n"
-"``annotate``\n"
-"------------"
-msgstr ""
-"\n"
-"``annotate``\n"
-"------------"
-
-msgid ""
-"Settings used when displaying file annotations. All values are\n"
-"Booleans and default to False. See ``diff`` section for related\n"
-"options for the diff command."
-msgstr ""
-"ファイル中ã®è¡Œã®ç”±æ¥è¡¨ç¤ºã«é–¢ã™ã‚‹è¨­å®šã€‚\n"
-"å…¨ã¦ã®å€¤ãŒçœŸå½å€¤ã§ã€ デフォルト値㯠False ã§ã™ã€‚\n"
-"diff コマンドã«é–¢é€£ã™ã‚‹ã‚ªãƒ—ションã®è©³ç´°ã¯ã€\n"
-"``diff`` セクションをå‚ç…§ã—ã¦ãã ã•ã„。"
-
-msgid ""
-"``ignorews``\n"
-" Ignore white space when comparing lines."
-msgstr ""
-"``ignorews``\n"
-" 差分検出ã«ãŠã‘る空白文字無視ã®æœ‰ç„¡ã€‚"
-
-msgid ""
-"``ignorewsamount``\n"
-" Ignore changes in the amount of white space."
-msgstr ""
-"``ignorewsamount``\n"
-" 差分検出ã«ãŠã‘る空白文字数増減無視ã®æœ‰ç„¡ã€‚"
-
-msgid ""
-"``ignoreblanklines``\n"
-" Ignore changes whose lines are all blank."
-msgstr ""
-"``ignoreblanklines``\n"
-" 差分検出ã«ãŠã‘る空行増減無視ã®æœ‰ç„¡ã€‚"
-
-msgid ""
-"\n"
"``auth``\n"
-"--------"
+"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``auth``\n"
-"--------"
msgid ""
"Authentication credentials for HTTP authentication. This section\n"
@@ -15583,22 +11956,17 @@ msgid ""
"*into* HTTP servers. See the ``[web]`` configuration section if\n"
"you want to configure *who* can login to your HTTP server."
msgstr ""
-"HTTP èªè¨¼ã®ãŸã‚ã®èªè¨¼æƒ…報。 本セクションã§ã¯ã€ HTTP \n"
-"サーãƒã¸ã®ãƒ­ã‚°ã‚¤ãƒ³ã§ä½¿ç”¨ã•ã‚Œã‚‹ã€ ユーザåï¼ãƒ‘スワードを記述ã—ã¾ã™ã€‚\n"
-"HTTP サーãƒå´ã«ãŠã„ã¦ã€ ログインå¯èƒ½ãƒ¦ãƒ¼ã‚¶ã‚’制御ã™ã‚‹å ´åˆã®è©³ç´°ã¯ã€\n"
-"``[web]`` セクションをå‚ç…§ã—ã¦ãã ã•ã„。"
msgid "Each line has the following format::"
-msgstr "設定ã¯ä»¥ä¸‹ã®å½¢å¼ã§è¨˜è¿°ã•ã‚Œã¾ã™::"
+msgstr ""
msgid " <name>.<argument> = <value>"
-msgstr " <åå‰>.<引数> = <値>"
+msgstr ""
msgid ""
"where ``<name>`` is used to group arguments into authentication\n"
"entries. Example::"
msgstr ""
-"``<åå‰>`` ã¯å¼•æ•°ç¾¤ã‚’1ã¤ã®èªè¨¼æƒ…報エントリã«æŸã­ã‚‹åƒãã‚’ã—ã¾ã™ã€‚ 例ãˆã°::"
msgid ""
" foo.prefix = hg.intevation.org/mercurial\n"
@@ -15606,10 +11974,6 @@ msgid ""
" foo.password = bar\n"
" foo.schemes = http https"
msgstr ""
-" foo.prefix = hg.intevation.org/mercurial\n"
-" foo.username = foo\n"
-" foo.password = bar\n"
-" foo.schemes = http https"
msgid ""
" bar.prefix = secure.example.org\n"
@@ -15617,13 +11981,9 @@ msgid ""
" bar.cert = path/to/file.cert\n"
" bar.schemes = https"
msgstr ""
-" bar.prefix = secure.example.org\n"
-" bar.key = path/to/file.key\n"
-" bar.cert = path/to/file.cert\n"
-" bar.schemes = https"
msgid "Supported arguments:"
-msgstr "利用å¯èƒ½ãªå¼•æ•°ã‚’以下ã«ç¤ºã—ã¾ã™:"
+msgstr ""
msgid ""
"``prefix``\n"
@@ -15634,13 +11994,6 @@ msgid ""
" against the URI with its scheme stripped as well, and the schemes\n"
" argument, q.v., is then subsequently consulted."
msgstr ""
-"``prefix``\n"
-" ``*`` ãªã„ã— URI (scheme 部分ã®è¨˜è¿°ã¯ä»»æ„)。\n"
-" 最長マッãƒã™ã‚‹ prefix 指定をæŒã¤èªè¨¼æƒ…å ±ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" (``*`` ã¯å…¨ã¦ã«ãƒžãƒƒãƒã—〠マッãƒé•·ã¯ 1 ã¨ã¿ãªã•ã‚Œã¾ã™)\n"
-" prefix 指定㌠scheme 部分をæŒãŸãªã„å ´åˆã€ \n"
-" scheme 部分をå–り除ã„㟠URI ã«å¯¾ã™ã‚‹ prefix ã®ãƒžãƒƒãƒãƒ³ã‚°ã®å¾Œã§ã€\n"
-" (後述ã™ã‚‹) scheme 引数ã«ã‚ˆã‚‹ãƒžãƒƒãƒãƒ³ã‚°ãŒè¡Œã‚ã‚Œã¾ã™ã€‚"
msgid ""
"``username``\n"
@@ -15651,12 +12004,6 @@ msgid ""
" includes a username, only ``[auth]`` entries with a matching\n"
" username or without a username will be considered."
msgstr ""
-"``username``\n"
-" çœç•¥å¯ã€‚ èªè¨¼ã«ãŠã‘るユーザå。 本引数ã®æŒ‡å®šãŒç„¡ã〠且ã¤ãƒ­ã‚°ã‚¤ãƒ³æ™‚ã«\n"
-" basic ãªã„ã— digest èªè¨¼ãŒè¦æ±‚ã•ã‚ŒãŸå ´åˆã€ 対話的入力ãŒè¦æ±‚ã•ã‚Œã¾ã™ã€‚\n"
-" ``foo.username = $USER`` å½¢å¼ã®è¨˜è¿°ã§ã¯ã€ 環境変数ãŒç½®æ›ã•ã‚Œã¾ã™ã€‚\n"
-" URI ãŒãƒ¦ãƒ¼ã‚¶åã‚’å«ã‚€å ´åˆã€ é¸æŠžå¯¾è±¡ã¨ãªã‚‹ ``[auth]`` ã®ã‚¨ãƒ³ãƒˆãƒªã¯ã€\n"
-" ユーザåãŒåˆè‡´ã™ã‚‹ã‚‚ã®ã‹ã€ ユーザåãŒç„¡ã„ã‚‚ã®ã ã‘ã§ã™ã€‚"
msgid ""
"``password``\n"
@@ -15664,28 +12011,18 @@ msgid ""
" remote site requires basic or digest authentication, the user\n"
" will be prompted for it."
msgstr ""
-"``password``\n"
-" çœç•¥å¯ã€‚ èªè¨¼ã«ãŠã‘るパスワード。 本引数ã®æŒ‡å®šãŒç„¡ãã€\n"
-" 且ã¤ãƒ­ã‚°ã‚¤ãƒ³æ™‚ã« basic ãªã„ã— digest èªè¨¼ãŒè¦æ±‚ã•ã‚ŒãŸå ´åˆã€\n"
-" 対話的入力ãŒè¦æ±‚ã•ã‚Œã¾ã™ã€‚"
msgid ""
"``key``\n"
" Optional. PEM encoded client certificate key file. Environment\n"
" variables are expanded in the filename."
msgstr ""
-"``key``\n"
-" çœç•¥å¯èƒ½ã€‚ PEM 符å·åŒ–ã•ã‚ŒãŸã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆè¨¼æ˜Žæ›¸éµãƒ•ã‚¡ã‚¤ãƒ«ã€‚\n"
-" ファイルå指定ã§ã¯ã€ 環境変数ã®ç½®æ›ãŒå®Ÿæ–½ã•ã‚Œã¾ã™ã€‚"
msgid ""
"``cert``\n"
" Optional. PEM encoded client certificate chain file. Environment\n"
" variables are expanded in the filename."
msgstr ""
-"``cert``\n"
-" çœç•¥å¯èƒ½ã€‚ PEM 符å·åŒ–ã•ã‚ŒãŸã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆè¨¼æ˜Žæ›¸é€£éŽ–ファイル。\n"
-" ファイルå指定ã§ã¯ã€ 環境変数ã®ç½®æ›ãŒå®Ÿæ–½ã•ã‚Œã¾ã™ã€‚"
msgid ""
"``schemes``\n"
@@ -15695,35 +12032,23 @@ msgid ""
" static-http and static-https respectively, as well.\n"
" Default: https."
msgstr ""
-"``schemes``\n"
-" çœç•¥å¯èƒ½ã€‚ 空白ã§åŒºåˆ‡ã£ãŸã€ èªè¨¼ã§ä½¿ç”¨ã•ã‚Œã‚‹ URI scheme ã®ä¸€è¦§ã€‚\n"
-" prefix 引数㫠scheme ãŒå«ã¾ã‚Œãªã„å ´åˆã«ã®ã¿ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" http ãŠã‚ˆã³ https ãŒæŒ‡å®šå¯èƒ½ã§ã™ã€‚ ãã‚Œãžã‚Œ static-http ãŠã‚ˆã³\n"
-" static-https ã«ã‚‚マッãƒã—ã¾ã™ã€‚ デフォルト値: https"
msgid ""
"If no suitable authentication entry is found, the user is prompted\n"
"for credentials as usual if required by the remote."
msgstr ""
-"ログイン時ã«èªè¨¼ãŒè¦æ±‚ã•ã‚Œã€ 且ã¤é©åˆ‡ãªèªè¨¼æƒ…報記述ãŒç„¡ã„å ´åˆã€\n"
-"èªè¨¼æƒ…å ±ã«é–¢ã™ã‚‹å¯¾è©±çš„入力ãŒè¦æ±‚ã•ã‚Œã¾ã™ã€‚"
msgid ""
"\n"
"``decode/encode``\n"
-"-----------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``decode/encode``\n"
-"-----------------"
msgid ""
"Filters for transforming files on checkout/checkin. This would\n"
"typically be used for newline processing or other\n"
"localization/canonicalization of files."
msgstr ""
-"リãƒã‚¸ãƒˆãƒªï¼ä½œæ¥­é ˜åŸŸé–“ã®å…¥å‡ºåŠ›ã«ãŠã‘る〠ファイル変æ›ãƒ•ã‚£ãƒ«ã‚¿ã®æŒ‡å®šã€‚\n"
-"改行形å¼ã®å¤‰æ›ã«ä»£è¡¨ã•ã‚Œã‚‹ã€ ファイルã®åœ°åŸŸåŒ–ï¼æ­£è¦åŒ–ã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid ""
"Filters consist of a filter pattern followed by a filter command.\n"
@@ -15733,30 +12058,19 @@ msgid ""
"in ``.c`` anywhere in the repository, use the pattern ``**.c``.\n"
"For each file only the first matching filter applies."
msgstr ""
-"フィルタã¯ã€ フィルタコマンドを伴ã£ãŸãƒ•ã‚£ãƒ«ã‚¿ãƒ‘ターンã§æŒ‡å®šã•ã‚Œã¾ã™ã€‚\n"
-"デフォルトã®ãƒ‘ターン指定形å¼ã¯ã€ 作業領域ルートã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã«å¯¾ã—ã¦ã€\n"
-"パス先頭ã‹ã‚‰ã®ãƒ‘ターンåˆè‡´ã§åˆ¤å®šã™ã‚‹ã€ ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰å½¢å¼ (glob) ã§ã™ã€‚\n"
-"例ãˆã°ã€ ルート直下㮠``.txt`` æ‹¡å¼µå­ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ã®ã¿åˆè‡´ã•ã›ã‚‹ãƒ‘ターンã¯\n"
-"``*.txt`` ã¨ãªã‚Šã¾ã™ã€‚ 作業領域中㮠``.c`` æ‹¡å¼µå­ã®å…¨ãƒ•ã‚¡ã‚¤ãƒ«ã¸ã®åˆè‡´ã¯ã€\n"
-"``**.c`` ã¨ãªã‚Šã¾ã™ã€‚ ãã‚Œãžã‚Œã®ãƒ•ã‚¡ã‚¤ãƒ«ã«é©ç”¨ã•ã‚Œã‚‹ãƒ•ã‚£ãƒ«ã‚¿ã¯ã€\n"
-"最åˆã«ãƒžãƒƒãƒã—ãŸãƒ‘ターンã®ã‚‚ã®ã ã‘ã§ã™ã€‚"
msgid ""
"The filter command can start with a specifier, either ``pipe:`` or\n"
"``tempfile:``. If no specifier is given, ``pipe:`` is used by default."
msgstr ""
-"フィルタコマンドã®è¨˜è¿°ã¯ ``pipe:`` ãªã„ã— ``tempfile:`` ã§é–‹å§‹å¯èƒ½ã§ã™ã€‚\n"
-"特ã«æŒ‡å®šãŒç„¡ã„å ´åˆã¯ã€ ``pipe:`` 指定相当ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
msgid ""
"A ``pipe:`` command must accept data on stdin and return the transformed\n"
"data on stdout."
msgstr ""
-"``pipe:`` 指定ã®ãƒ•ã‚£ãƒ«ã‚¿ã‚³ãƒžãƒ³ãƒ‰ã¯ã€ 標準入力ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’読ã¿è¾¼ã¿ã€\n"
-"変æ›æ¸ˆã¿ãƒ‡ãƒ¼ã‚¿ã‚’標準出力ã«æ›¸ã出ã•ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。"
msgid "Pipe example::"
-msgstr "pipe フィルタ例を以下ã«ç¤ºã—ã¾ã™::"
+msgstr ""
msgid ""
" [encode]\n"
@@ -15764,10 +12078,6 @@ msgid ""
" # note: not necessarily a good idea, just an example\n"
" *.gz = pipe: gunzip"
msgstr ""
-" [encode]\n"
-" # 差分記録ã®åœ§ç¸®åŠ¹æžœå‘上ã®ãŸã‚ã€ã‚³ãƒŸãƒƒãƒˆæ™‚ã« gzip ファイルを解å‡ã€‚\n"
-" # 備考: ã‚ãã¾ã§ä¾‹ç¤ºã§ã‚ã‚Šã€ã“ã®æ–¹å¼è‡ªä½“ã¯ã‚ã¾ã‚Šè‰¯ã„案ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-" *.gz = pipe: gunzip"
msgid ""
" [decode]\n"
@@ -15775,10 +12085,6 @@ msgid ""
" # can safely omit \"pipe:\", because it's the default)\n"
" *.gz = gzip"
msgstr ""
-" [decode]\n"
-" # 作業領域ã¸ã®å–り出ã—ã®éš›ã« gzip ファイルをå†åœ§ç¸®\n"
-" # (デフォルトã§ã‚ã‚‹ \"pipe:\" 指定ã¯çœç•¥å¯èƒ½)\n"
-" *.gz = gzip"
msgid ""
"A ``tempfile:`` command is a template. The string ``INFILE`` is replaced\n"
@@ -15787,161 +12093,126 @@ msgid ""
"of an empty temporary file, where the filtered data must be written by\n"
"the command."
msgstr ""
-"``tempfile:`` 指定ã®ãƒ•ã‚£ãƒ«ã‚¿ã‚³ãƒžãƒ³ãƒ‰ã¯ã€ テンプレート形å¼ã§è¨˜è¿°ã—ã¾ã™ã€‚\n"
-"``INFILE`` 記述ã¯ã€ 処ç†å¯¾è±¡ãƒ‡ãƒ¼ã‚¿ãŒæ ¼ç´ã•ã‚ŒãŸä¸€æ™‚ファイルã®ãƒ‘スã«ã€\n"
-"``OUTFILE`` 記述ã¯ã€ 処ç†çµæžœã‚’æ ¼ç´ã™ã‚‹ (空ã®) 一時ファイルã®ãƒ‘スã«ã€\n"
-"ãã‚Œãžã‚Œç½®æ›ã•ã‚Œã¾ã™ã€‚"
msgid ""
".. note:: The tempfile mechanism is recommended for Windows systems,\n"
" where the standard shell I/O redirection operators often have\n"
" strange effects and may corrupt the contents of your files."
msgstr ""
-".. note:: 標準的ãªã‚·ã‚§ãƒ«ã® I/O リダイレクトãŒã€ 予期ã›ã¬çµæžœã‚„ã€\n"
-" ファイル内容ã®ç ´å£Šã«ç¹‹ãŒã‚‹ Windows ã®ã‚ˆã†ãªç’°å¢ƒã§ã¯ã€\n"
-" tempfile 機構ã®ä½¿ç”¨ãŒãŠå‹§ã‚ã§ã™ã€‚"
msgid ""
"This filter mechanism is used internally by the ``eol`` extension to\n"
"translate line ending characters between Windows (CRLF) and Unix (LF)\n"
"format. We suggest you use the ``eol`` extension for convenience."
msgstr ""
-"Windows (CRLF) 㨠Unix (LF) 環境間ã«ãŠã‘る改行形å¼ã®å¤‰æ›ã‚’è¡Œã†\n"
-"``eol`` エクステンションã¯ã€ 内部的ã«ãƒ•ã‚£ãƒ«ã‚¿æ©Ÿæ§‹ã‚’使用ã—ã¦ã„ã¾ã™ã€‚\n"
-"改行形å¼å¤‰æ›´ã«ã¯ã€ ``eol`` エクステンションã®åˆ©ç”¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚"
msgid ""
"\n"
"``defaults``\n"
-"------------"
+"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``defaults``\n"
-"------------"
msgid "(defaults are deprecated. Don't use them. Use aliases instead)"
-msgstr "(defaults ã®ä½¿ç”¨ã¯éžæŽ¨å¥¨ã§ã™ã€‚ alias を使用ã—ã¦ãã ã•ã„)"
+msgstr ""
msgid ""
"Use the ``[defaults]`` section to define command defaults, i.e. the\n"
"default options/arguments to pass to the specified commands."
msgstr ""
-"``[defaults]`` セクションã¯ã€ 指定コマンドã«å¯¾ã™ã‚‹ã€\n"
-"デフォルトã®ã‚ªãƒ—ションï¼å¼•æ•°æŒ‡å®šã®è¨˜è¿°ã«ä½¿ç”¨ã—ã¾ã™ã€‚"
msgid ""
"The following example makes :hg:`log` run in verbose mode, and\n"
":hg:`status` show only the modified files, by default::"
msgstr ""
-"以下ã®è¨˜è¿°ã¯ã€ :hg:`log` ã®å¸¸æ™‚ verbose モード実行ã¨ã€\n"
-":hg:`status` ã®å¤‰æ›´ãƒ•ã‚¡ã‚¤ãƒ«é™å®šè¡¨ç¤ºåŒ–ã®ä¾‹ã§ã™::"
msgid ""
" [defaults]\n"
" log = -v\n"
" status = -m"
msgstr ""
-" [defaults]\n"
-" log = -v\n"
-" status = -m"
msgid ""
"The actual commands, instead of their aliases, must be used when\n"
"defining command defaults. The command defaults will also be applied\n"
"to the aliases of the commands defined."
msgstr ""
-"alias 定義ã§ä¸Šæ›¸ãã•ã‚ŒãŸã‚³ãƒžãƒ³ãƒ‰ã§ã‚‚〠元々ã®ã‚³ãƒžãƒ³ãƒ‰ã®æ–¹ãŒ\n"
-"defaults 定義対象ã¨ãªã‚Šã¾ã™ã€‚ alias 定義コマンドも\n"
-"defaults 定義対象ã¨ãªã‚Šã¾ã™ã€‚"
msgid ""
"\n"
"``diff``\n"
-"--------"
+"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``diff``\n"
-"--------"
msgid ""
-"Settings used when displaying diffs. Everything except for ``unified``\n"
-"is a Boolean and defaults to False. See ``annotate`` section for\n"
-"related options for the annotate command."
+"Settings used when displaying diffs. Everything except for ``unified`` is a\n"
+"Boolean and defaults to False."
msgstr ""
-"差分表示ã®è¨­å®šã€‚ ``unified`` 以外ã®å…¨ã¦ã®è¨­å®šã¯çœŸå½å€¤ã§ã€\n"
-"デフォルト値㯠False ã§ã™ã€‚\n"
-"annotate コマンドã«é–¢é€£ã™ã‚‹ã‚ªãƒ—ションã®è©³ç´°ã¯ã€\n"
-"``annotate`` セクションをå‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"``git``\n"
" Use git extended diff format."
msgstr ""
-"``git``\n"
-" git æ‹¡å¼µ diff å½¢å¼ä½¿ç”¨ã®æœ‰ç„¡ã€‚"
msgid ""
"``nodates``\n"
" Don't include dates in diff headers."
msgstr ""
-"``nodates``\n"
-" 差分ヘッダ部分ã‹ã‚‰ã®æ—¥ä»˜æƒ…報除外ã®æœ‰ç„¡ã€‚"
msgid ""
"``showfunc``\n"
" Show which function each change is in."
msgstr ""
-"``showfunc``\n"
-" 変更ãŒç”Ÿã˜ãŸé–¢æ•°ã®åå‰è¡¨ç¤ºã®æœ‰ç„¡ã€‚"
+
+msgid ""
+"``ignorews``\n"
+" Ignore white space when comparing lines."
+msgstr ""
+
+msgid ""
+"``ignorewsamount``\n"
+" Ignore changes in the amount of white space."
+msgstr ""
+
+msgid ""
+"``ignoreblanklines``\n"
+" Ignore changes whose lines are all blank."
+msgstr ""
msgid ""
"``unified``\n"
" Number of lines of context to show."
msgstr ""
-"``unified``\n"
-" 差分出力ã«ãŠã‘るコンテキスト行ã®è¡Œæ•°ã€‚"
msgid ""
"``email``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``email``\n"
-"---------"
msgid "Settings for extensions that send email messages."
-msgstr "é›»å­ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã™ã‚‹ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³å‘ã‘ã®è¨­å®šã€‚"
+msgstr ""
msgid ""
"``from``\n"
" Optional. Email address to use in \"From\" header and SMTP envelope\n"
" of outgoing messages."
msgstr ""
-"``from``\n"
-" çœç•¥å¯èƒ½ã€‚ é€ä¿¡ã™ã‚‹ãƒ¡ãƒ¼ãƒ«ã® \"From\" ヘッダ㨠SMTP\n"
-" エンベロープã«ä½¿ç”¨ã™ã‚‹é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã€‚"
msgid ""
"``to``\n"
" Optional. Comma-separated list of recipients' email addresses."
msgstr ""
-"``to``\n"
-" çœç•¥å¯èƒ½ã€‚ 宛先電å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã€‚"
msgid ""
"``cc``\n"
" Optional. Comma-separated list of carbon copy recipients'\n"
" email addresses."
msgstr ""
-"``cc``\n"
-" çœç•¥å¯èƒ½ã€‚ CC 宛先電å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã€‚"
msgid ""
"``bcc``\n"
" Optional. Comma-separated list of blind carbon copy recipients'\n"
" email addresses."
msgstr ""
-"``bcc``\n"
-" çœç•¥å¯èƒ½ã€‚ BCC 宛先電å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã€‚"
msgid ""
"``method``\n"
@@ -15952,16 +12223,6 @@ msgid ""
" message on stdin). Normally, setting this to ``sendmail`` or\n"
" ``/usr/sbin/sendmail`` is enough to use sendmail to send messages."
msgstr ""
-"``method``\n"
-" çœç•¥å¯èƒ½ã€‚ é›»å­ãƒ¡ãƒ¼ãƒ«ã®é€ä¿¡æ–¹å¼ã€‚ ``smtp`` (デフォルト値)\n"
-" ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€ 直接 SMTP を使用ã—ã¦é€ä¿¡ã—ã¾ã™ã€‚\n"
-" (設定詳細㯠``[smtp]`` セクション詳細をå‚ç…§)\n"
-" ãれ以外ã®å€¤ã®å ´åˆã¯ã€ sendmail ã¨åŒæ§˜ã«æŒ¯èˆžã†\n"
-" (``-f`` ã§é€ä¿¡å…ƒã‚’指定〠コマンド行ã§å®›å…ˆä¸€è¦§ã‚’指定ã€\n"
-" 標準入力ã§é€ä¿¡å†…容ã®å—ã‘å–ã‚Š)\n"
-" é›»å­ãƒ¡ãƒ¼ãƒ«é€ä¿¡ãƒ—ログラムã¨ã¿ãªã—ã¾ã™ã€‚\n"
-" ``sendmail`` ã§ã®ãƒ¡ãƒ¼ãƒ«é€ä¿¡ã§ã¯ã€ 通常㯠``sendmail`` ãªã„ã—\n"
-" ``/usr/sbin/sendmail`` ã¨è¨­å®šã™ã‚Œã°å分ã§ã™ã€‚"
msgid ""
"``charsets``\n"
@@ -15973,16 +12234,9 @@ msgid ""
" conversion fails, the text in question is sent as is. Defaults to\n"
" empty (explicit) list."
msgstr ""
-"``charsets``\n"
-" çœç•¥å¯èƒ½ã€‚ 宛先ã«ãŠã„ã¦éƒ½åˆã®è‰¯ã„文字符å·åŒ–æ–¹å¼ã®ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã€‚\n"
-" é›»å­ãƒ¡ãƒ¼ãƒ«ã®ã‚¢ãƒ‰ãƒ¬ã‚¹æŒ‡å®šã€ ヘッダ群〠ãŠã‚ˆã³ãƒ‘ッム「以外ã€\n"
-" ã®ãƒžãƒ«ãƒãƒ‘ート部分ã¯ã€ ローカル符å·åŒ–æ–¹å¼ (``$HGENCODING`` ãªã„ã—\n"
-" ``ui.fallbackencoding`` ã§æŒ‡å®š) ã‹ã‚‰ã®å¤‰æ›ã«æˆåŠŸã—ãŸã€\n"
-" 「最åˆã®ã€ç¬¦å·åŒ–æ–¹å¼ã§ç¬¦å·åŒ–ã•ã‚Œã¾ã™ã€‚ 変æ›ã«å¤±æ•—ã—ãŸå ´åˆã€\n"
-" ãã®ã¾ã¾ã®ãƒ‡ãƒ¼ã‚¿ãŒé€ä¿¡ã•ã‚Œã¾ã™ã€‚ デフォルトã®è¨­å®šã¯ç©ºã®ãƒªã‚¹ãƒˆã§ã™ã€‚"
msgid " Order of outgoing email character sets:"
-msgstr " é›»å­ãƒ¡ãƒ¼ãƒ«ã®æ–‡å­—符å·åŒ–æ–¹å¼ã¯ä»¥ä¸‹ã®é †åºã§ç¢ºå®šã—ã¾ã™:"
+msgstr ""
msgid ""
" 1. ``us-ascii``: always first, regardless of settings\n"
@@ -15991,14 +12245,9 @@ msgid ""
" 4. ``$HGENCODING``: if not in email.charsets\n"
" 5. ``utf-8``: always last, regardless of settings"
msgstr ""
-" 1. ``us-ascii``: 設定ã«é–¢ã‚らãšå¸¸ã«æœ€åˆ\n"
-" 2. ``email.charsets``: ユーザ指定ã®é †åºé€šã‚Š\n"
-" 3. ``ui.fallbackencoding``: email.charsets ã§æŒ‡å®šã•ã‚Œã¦ã„ãªã„å ´åˆã€‚\n"
-" 4. ``$HGENCODING``: email.charsets ã§æŒ‡å®šã•ã‚Œã¦ã„ãªã„å ´åˆã€‚\n"
-" 5. ``utf-8``: 設定ã«é–¢ã‚らãšå¸¸ã«æœ€å¾Œ"
msgid "Email example::"
-msgstr "email セクションã®è¨­å®šä¾‹ã‚’以下ã«ç¤ºã—ã¾ã™::"
+msgstr ""
msgid ""
" [email]\n"
@@ -16008,58 +12257,38 @@ msgid ""
" # us-ascii, utf-8 omitted, as they are tried first and last\n"
" charsets = iso-8859-1, iso-8859-15, windows-1252"
msgstr ""
-" [email]\n"
-" from = Joseph User <joe.user@example.com>\n"
-" method = /usr/sbin/sendmail\n"
-" # 西欧åœå‘ã‘ã®æ–‡å­—符å·åŒ–設定\n"
-" # 最åˆã¨æœ€å¾Œã«ç¢ºèªã•ã‚Œã‚‹ us-ascii 㨠utf-8 ã®è¨˜è¿°ã¯çœç•¥\n"
-" charsets = iso-8859-1, iso-8859-15, windows-1252"
msgid ""
"\n"
"``extensions``\n"
-"--------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``extensions``\n"
-"--------------"
msgid ""
"Mercurial has an extension mechanism for adding new features. To\n"
"enable an extension, create an entry for it in this section."
msgstr ""
-"Mercurial ã«ã¯ã€ 機能追加ã®ãŸã‚ã®ã€ エクステンション機構ãŒå‚™ã‚ã£ã¦ã„ã¾ã™ã€‚\n"
-"個々ã®ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ã‚’有効ã«ã™ã‚‹ã«ã¯ã€ 本セクションã«ãŠã„ã¦ã€\n"
-"対応ã™ã‚‹ã‚¨ãƒ³ãƒˆãƒªã‚’記述ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
"If you know that the extension is already in Python's search path,\n"
"you can give the name of the module, followed by ``=``, with nothing\n"
"after the ``=``."
msgstr ""
-"エクステンションã®å®Ÿè£…ãŒã€ Python ã®æ¤œç´¢ãƒ‘ス上ã«ã‚ã‚‹å ´åˆã€\n"
-"モジュールåã«ç¶šã‘㦠``=`` を記述ã™ã‚‹ã ã‘ (å³è¾ºå€¤ã¯ä¸è¦) ã§ã™ã€‚"
msgid ""
"Otherwise, give a name that you choose, followed by ``=``, followed by\n"
"the path to the ``.py`` file (including the file name extension) that\n"
"defines the extension."
msgstr ""
-"ãれ以外ã®å ´åˆã€ ä»»æ„ã®åå‰ã«ç¶šã‘㦠``=`` を記述ã—ãŸå¾Œã‚ã«ã€\n"
-"エクステンションを実装ã—㟠``.py`` ファイルã¸ã®ãƒ‘ス (ファイルåå«ã‚€)\n"
-"を記述ã—ã¦ãã ã•ã„。"
msgid ""
"To explicitly disable an extension that is enabled in an hgrc of\n"
"broader scope, prepend its path with ``!``, as in ``foo = !/ext/path``\n"
"or ``foo = !`` when path is not supplied."
msgstr ""
-"å…ˆã«èª­ã¿è¾¼ã¾ã‚ŒãŸè¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã«ãŠã„ã¦ã€ 有効化済ã¿ã®ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ã‚’ã€\n"
-"明示的ã«ç„¡åŠ¹åŒ–ã—ãŸã„å ´åˆã¯ã€ ``foo = !/ext/path`` ã‚ã‚‹ã„㯠``foo = !``\n"
-"ã®ã‚ˆã†ã«ã€ 値ã®å…ˆé ­ã« ``!`` ãŒæ¥ã‚‹ã‚ˆã†ãªè¨­å®šã‚’記述ã—ã¦ãã ã•ã„。"
msgid "Example for ``~/.hgrc``::"
-msgstr "``~/.hgrc`` 記述例を以下ã«ç¤ºã—ã¾ã™::"
+msgstr ""
msgid ""
" [extensions]\n"
@@ -16068,20 +12297,39 @@ msgid ""
" # (this extension will get loaded from the file specified)\n"
" myfeature = ~/.hgext/myfeature.py"
msgstr ""
-" [extensions]\n"
-" # (mq エクステンション㯠Mercurial åŒæ¢±ã®ã‚‚ã®ãŒèª­ã¿è¾¼ã¾ã‚Œã¾ã™)\n"
-" mq =\n"
-" # (以下ã®ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ã¯æŒ‡å®šã®ãƒ‘スã‹ã‚‰èª­ã¿è¾¼ã¾ã‚Œã¾ã™)\n"
-" myfeature = ~/.hgext/myfeature.py"
msgid ""
"\n"
-"``format``\n"
-"----------"
+"``hostfingerprints``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+msgstr ""
+
+msgid ""
+"Fingerprints of the certificates of known HTTPS servers.\n"
+"A HTTPS connection to a server with a fingerprint configured here will\n"
+"only succeed if the servers certificate matches the fingerprint.\n"
+"This is very similar to how ssh known hosts works.\n"
+"The fingerprint is the SHA-1 hash value of the DER encoded certificate.\n"
+"The CA chain and web.cacerts is not used for servers with a fingerprint."
msgstr ""
+
+msgid "For example::"
+msgstr ""
+
+msgid ""
+" [hostfingerprints]\n"
+" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:"
+"d6:4b:ee:cc"
+msgstr ""
+
+msgid "This feature is only supported when using Python 2.6 or later."
+msgstr ""
+
+msgid ""
"\n"
"``format``\n"
-"----------"
+"\"\"\"\"\"\"\"\"\"\""
+msgstr ""
msgid ""
"``usestore``\n"
@@ -16092,13 +12340,6 @@ msgid ""
" compatibility and ensures that the on-disk format of newly created\n"
" repositories will be compatible with Mercurial before version 0.9.4."
msgstr ""
-"``usestore``\n"
-" ファイルåã®æ–‡å­—大å°ã‚’èªè­˜ã—ãªã„よã†ãªãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã¸ã®ã€\n"
-" é©å¿œæ€§ã‚’å‘上ã•ã›ã‚‹ã€ \"store\" å½¢å¼ãƒªãƒã‚¸ãƒˆãƒªã®ä½¿ç”¨å¯å¦ã€‚\n"
-" デフォルトã§ã¯æœ‰åŠ¹åŒ–ã•ã‚Œã¦ã„ã¾ã™ã€‚ ã“ã®è¨­å®šã‚’無効化ã—ãŸå ´åˆã€\n"
-" æ–°è¦ä½œæˆã—ãŸãƒªãƒã‚¸ãƒˆãƒªã¯ã€ 0.9.4 以å‰ã® Mercurial ã¨ã€\n"
-" ディスク記録形å¼ã§äº’æ›æ€§ãŒä¿ãŸã‚Œã¾ã™ãŒã€ 状æ³æ¬¡ç¬¬ã§ã¯ã€\n"
-" é•·ã„ファイルåã§ã®ä¿å­˜ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚"
msgid ""
"``usefncache``\n"
@@ -16109,14 +12350,6 @@ msgid ""
" option ensures that the on-disk format of newly created\n"
" repositories will be compatible with Mercurial before version 1.1."
msgstr ""
-"``usefncache``\n"
-" \"store\" å½¢å¼ãƒªãƒã‚¸ãƒˆãƒª (本設定ã®æœ‰åŠ¹åŒ–ã«å¿…é ˆ) ã«ãŠã„ã¦ã€\n"
-" é•·ã„ファイルåを使用ã™ã‚‹ãŸã‚ã®æ©Ÿèƒ½å‘上や〠\"nul\" ã®ã‚ˆã†ãª Windows\n"
-" 予約å利用を回é¿å¯èƒ½ã«ã™ã‚‹ã€ \"fncache\"\n"
-" å½¢å¼ãƒªãƒã‚¸ãƒˆãƒªã®ä½¿ç”¨å¯å¦ã€‚\n"
-" デフォルトã§ã¯æœ‰åŠ¹åŒ–ã•ã‚Œã¦ã„ã¾ã™ã€‚ ã“ã®è¨­å®šã‚’無効化ã—ãŸå ´åˆã€\n"
-" æ–°è¦ä½œæˆã—ãŸãƒªãƒã‚¸ãƒˆãƒªã¯ã€ 1.1 以å‰ã® Mercurial ã¨ã€\n"
-" ディスク記録形å¼ã§äº’æ›æ€§ãŒä¿ãŸã‚Œã¾ã™ã€‚"
msgid ""
"``dotencode``\n"
@@ -16127,94 +12360,180 @@ msgid ""
" option ensures that the on-disk format of newly created\n"
" repositories will be compatible with Mercurial before version 1.7."
msgstr ""
-"``dotencode``\n"
-" \"fncache\" å½¢å¼ãƒªãƒã‚¸ãƒˆãƒª (本設定ã®æœ‰åŠ¹åŒ–ã«å¿…é ˆ) ã«ãŠã„ã¦ã€\n"
-" Mac OS X ã§ã¯ ``._`` ã€Windows ã§ã¯ç©ºç™½æ–‡å­—ã§å§‹ã¾ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«åãŒã€\n"
-" 原因ã¨ãªã£ã¦ç™ºç”Ÿã™ã‚‹å•é¡Œã‚’〠回é¿ã™ã‚‹ãŸã‚ã® \"dotencode\"\n"
-" å½¢å¼ãƒªãƒã‚¸ãƒˆãƒªã®ä½¿ç”¨å¯å¦ã€‚ デフォルトã§ã¯æœ‰åŠ¹åŒ–ã•ã‚Œã¦ã„ã¾ã™ã€‚\n"
-" ã“ã®è¨­å®šã‚’無効化ã—ãŸå ´åˆã€ æ–°è¦ä½œæˆã—ãŸãƒªãƒã‚¸ãƒˆãƒªã¯ã€ 1.7 以å‰ã®\n"
-" Mercurial ã¨ã€ ディスク記録形å¼ã§äº’æ›æ€§ãŒä¿ãŸã‚Œã¾ã™ã€‚"
msgid ""
-"``graph``\n"
-"---------"
+"``merge-patterns``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``graph``\n"
-"---------"
msgid ""
-"Web graph view configuration. This section let you change graph\n"
-"elements display properties by branches, for instance to make the\n"
-"``default`` branch stand out."
+"This section specifies merge tools to associate with particular file\n"
+"patterns. Tools matched here will take precedence over the default\n"
+"merge tool. Patterns are globs by default, rooted at the repository\n"
+"root."
msgstr ""
-"ウェブã§ã®ã‚°ãƒ©ãƒ•è¡¨ç¤ºè¨­å®šã€‚ 本セクションã§ã¯ã€ グラフã®è¡¨ç¤ºè¦ç´ ã«å¯¾ã—ã¦ã€\n"
-"設定を変更ã§ãã¾ã™ (例: ``default`` ブランãƒã‚’目立ãŸã›ã‚‹)。"
-msgid " <branch>.<argument> = <value>"
-msgstr " <ブランãƒå>.<引数> = <値>"
+msgid ""
+" [merge-patterns]\n"
+" **.c = kdiff3\n"
+" **.jpg = myimgmerge"
+msgstr ""
msgid ""
-"where ``<branch>`` is the name of the branch being\n"
-"customized. Example::"
-msgstr "``<ブランãƒå>`` ã¯è¨­å®šå¤‰æ›´å¯¾è±¡ã®ãƒ–ランãƒåã§ã™ã€‚例ãˆã°::"
+"``merge-tools``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+msgstr ""
msgid ""
-" [graph]\n"
-" # 2px width\n"
-" default.width = 2\n"
-" # red color\n"
-" default.color = FF0000"
+"This section configures external merge tools to use for file-level\n"
+"merges."
+msgstr ""
+
+msgid "Example ``~/.hgrc``::"
msgstr ""
-" [graph]\n"
-" # å¹…ã‚’2ピクセルã«å¤‰æ›´\n"
-" default.width = 2\n"
-" # 色を赤ã«å¤‰æ›´\n"
-" default.color = FF0000"
msgid ""
-"``width``\n"
-" Set branch edges width in pixels."
+" [merge-tools]\n"
+" # Override stock tool location\n"
+" kdiff3.executable = ~/bin/kdiff3\n"
+" # Specify command line\n"
+" kdiff3.args = $base $local $other -o $output\n"
+" # Give higher priority\n"
+" kdiff3.priority = 1"
msgstr ""
-"``width``\n"
-" ブランãƒã«ãŠã‘ã‚‹ã®ç·šå¹…を〠ピクセルå˜ä½ã§æŒ‡å®šã€‚"
msgid ""
-"``color``\n"
-" Set branch edges color in hexadecimal RGB notation."
+" # Define new tool\n"
+" myHtmlTool.args = -m $local $other $base $output\n"
+" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
+" myHtmlTool.priority = 1"
msgstr ""
-"``color``\n"
-" ブランãƒã«ãŠã‘ã‚‹ç·šã®è‰²ã‚’〠16進 RGB 表記ã§æŒ‡å®šã€‚"
msgid ""
-"``hooks``\n"
-"---------"
+"``priority``\n"
+" The priority in which to evaluate this tool.\n"
+" Default: 0."
+msgstr ""
+
+msgid ""
+"``executable``\n"
+" Either just the name of the executable or its pathname. On Windows,\n"
+" the path can use environment variables with ${ProgramFiles} syntax.\n"
+" Default: the tool name."
+msgstr ""
+
+msgid ""
+"``args``\n"
+" The arguments to pass to the tool executable. You can refer to the\n"
+" files being merged as well as the output file through these\n"
+" variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
+" Default: ``$local $base $other``"
+msgstr ""
+
+msgid ""
+"``premerge``\n"
+" Attempt to run internal non-interactive 3-way merge tool before\n"
+" launching external tool. Options are ``true``, ``false``, or ``keep``\n"
+" to leave markers in the file if the premerge fails.\n"
+" Default: True"
+msgstr ""
+
+msgid ""
+"``binary``\n"
+" This tool can merge binary files. Defaults to False, unless tool\n"
+" was selected by file pattern match."
+msgstr ""
+
+msgid ""
+"``symlink``\n"
+" This tool can merge symlinks. Defaults to False, even if tool was\n"
+" selected by file pattern match."
+msgstr ""
+
+msgid ""
+"``check``\n"
+" A list of merge success-checking options:"
+msgstr ""
+
+msgid ""
+" ``changed``\n"
+" Ask whether merge was successful when the merged file shows no changes.\n"
+" ``conflicts``\n"
+" Check whether there are conflicts even though the tool reported "
+"success.\n"
+" ``prompt``\n"
+" Always prompt for merge success, regardless of success reported by tool."
+msgstr ""
+
+msgid ""
+"``checkchanged``\n"
+" True is equivalent to ``check = changed``.\n"
+" Default: False"
+msgstr ""
+
+msgid ""
+"``checkconflicts``\n"
+" True is equivalent to ``check = conflicts``.\n"
+" Default: False"
+msgstr ""
+
+msgid ""
+"``fixeol``\n"
+" Attempt to fix up EOL changes caused by the merge tool.\n"
+" Default: False"
+msgstr ""
+
+msgid ""
+"``gui``\n"
+" This tool requires a graphical interface to run. Default: False"
+msgstr ""
+
+msgid ""
+"``regkey``\n"
+" Windows registry key which describes install location of this\n"
+" tool. Mercurial will search for this key first under\n"
+" ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.\n"
+" Default: None"
+msgstr ""
+
+msgid ""
+"``regkeyalt``\n"
+" An alternate Windows registry key to try if the first key is not\n"
+" found. The alternate key uses the same ``regname`` and ``regappend``\n"
+" semantics of the primary key. The most common use for this key\n"
+" is to search for 32bit applications on 64bit operating systems.\n"
+" Default: None"
+msgstr ""
+
+msgid ""
+"``regname``\n"
+" Name of value to read from specified registry key. Defaults to the\n"
+" unnamed (default) value."
+msgstr ""
+
+msgid ""
+"``regappend``\n"
+" String to append to the value read from the registry, typically\n"
+" the executable name of the tool.\n"
+" Default: None"
msgstr ""
+
+msgid ""
+"\n"
"``hooks``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
+msgstr ""
msgid ""
"Commands or Python functions that get automatically executed by\n"
"various actions such as starting or finishing a commit. Multiple\n"
"hooks can be run for the same action by appending a suffix to the\n"
"action. Overriding a site-wide hook can be done by changing its\n"
-"value or setting it to an empty string. Hooks can be prioritized\n"
-"by adding a prefix of ``priority`` to the hook name on a new line\n"
-"and setting the priority. The default priority is 0 if\n"
-"not specified."
-msgstr ""
-"commit ã®é–‹å§‹ï¼çµ‚了ã¨ã„ã£ãŸæ§˜ã€…ãªå‡¦ç†å¥‘æ©Ÿã«ãŠã„ã¦ã€\n"
-"自動実行ã•ã‚Œã‚‹ã‚³ãƒžãƒ³ãƒ‰ã€ãªã„ã— Python 関数。 \n"
-"処ç†å¥‘æ©Ÿåã«æŽ¥å°¾è¾ž (suffix) を追加ã—ãŸè¨˜è¿°ã‚’ã™ã‚‹äº‹ã§ã€\n"
-"åŒä¸€å‡¦ç†å¥‘æ©Ÿã«è¤‡æ•°ã®ãƒ•ãƒƒã‚¯ã‚’実行å¯èƒ½ã§ã™ã€‚\n"
-"å…ˆã«èª­ã¿è¾¼ã¾ã‚ŒãŸè¨­å®š (例: ホスト毎設定) ã«ãŠã‘るフック設定ã¯ã€\n"
-"別ãªå€¤ã‚’設定ã™ã‚‹ã‹ã€ 空値ã®è¨­å®šã«ã‚ˆã‚Šã€ 上書ãå¯èƒ½ã§ã™ã€‚\n"
-"フックåã®å‰ã« ``priority`` を追加ã—ãŸè¨­å®šå€¤ã‚’æ–°ãŸã«å®šç¾©ã—ã€\n"
-"値を設定ã™ã‚‹ã“ã¨ã§ã€ フック実行ã®å„ªå…ˆåº¦ã‚’設定ã§ãã¾ã™ã€‚\n"
-"デフォルトã®å„ªå…ˆåº¦è¨­å®šå€¤ã¯ 0 ã§ã™ã€‚\n"
-"(※ 訳注: 優先度値ãŒå¤§ãã„フックã®æ–¹ãŒå…ˆã«å®Ÿè¡Œã•ã‚Œã¾ã™)"
+"value or setting it to an empty string."
+msgstr ""
msgid "Example ``.hg/hgrc``::"
-msgstr "``.hg/hgrc`` 設定例を以下ã«ç¤ºã—ã¾ã™::"
+msgstr ""
msgid ""
" [hooks]\n"
@@ -16223,28 +12542,14 @@ msgid ""
" # do not use the site-wide hook\n"
" incoming =\n"
" incoming.email = /my/email/hook\n"
-" incoming.autobuild = /my/build/hook\n"
-" # force autobuild hook to run before other incoming hooks\n"
-" priority.incoming.autobuild = 1"
+" incoming.autobuild = /my/build/hook"
msgstr ""
-" [hooks]\n"
-" # æ›´æ–°ã®å–ã‚Šè¾¼ã¿æ¯Žã«ä½œæ¥­é ˜åŸŸã‚’æ›´æ–°\n"
-" changegroup.update = hg update\n"
-" # ホスト毎設定ã®ç„¡åŠ¹åŒ–\n"
-" incoming =\n"
-" \n"
-" incoming.email = /my/email/hook\n"
-" incoming.autobuild = /my/build/hook\n"
-" # ä»–ã® incoming ã«å…ˆç«‹ã£ã¦ autobuild フックを実行\n"
-" priority.incoming.autobuild = 1"
msgid ""
"Most hooks are run with environment variables set that give useful\n"
"additional information. For each hook below, the environment\n"
"variables it is passed are listed with names of the form ``$HG_foo``."
msgstr ""
-"殆ã©ã®ãƒ•ãƒƒã‚¯ã¯ã€ 有用ãªä»˜åŠ æƒ…報をæŒã¤ç’°å¢ƒå¤‰æ•°è¨­å®šã¨å…±ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-"以下ã«ç¤ºã™ãƒ•ãƒƒã‚¯ç¾¤ã«æ¸¡ã•ã‚Œã‚‹ç’°å¢ƒå¤‰æ•°ã¯ ``$HG_foo`` å½¢å¼ã®åå‰ã‚’æŒã¡ã¾ã™ã€‚"
msgid ""
"``changegroup``\n"
@@ -16252,12 +12557,6 @@ msgid ""
" ID of the first new changeset is in ``$HG_NODE``. URL from which\n"
" changes came is in ``$HG_URL``."
msgstr ""
-"``changegroup``\n"
-" push〠pull〠unbundle ã«ã‚ˆã‚‹ãƒªãƒ“ジョン群ã®è¿½åŠ å®Œäº†æ™‚ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" æ–°è¦è¿½åŠ ãƒªãƒ“ジョン群ã®æœ€åˆã® ID ㌠``$HG_NODE`` ã«ã€\n"
-" 追加リビジョン群ã®å–ã‚Šè¾¼ã¿å…ƒ URL ㌠``$HG_URL`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" (※ 訳注: 複数リビジョン一括追加時㮠``changegroup``\n"
-" フック実行ã¯1回ã§ã™ãŒã€ ``incoming`` フックã¯ãƒªãƒ“ジョン毎ã«å®Ÿè¡Œã•ã‚Œã¾ã™)"
msgid ""
"``commit``\n"
@@ -16265,10 +12564,6 @@ msgid ""
" of the newly created changeset is in ``$HG_NODE``. Parent changeset\n"
" IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``."
msgstr ""
-"``commit``\n"
-" 手元ã®ãƒªãƒã‚¸ãƒˆãƒªã«ãŠã‘ã‚‹æ–°è¦ãƒªãƒ“ジョン作æˆå®Œäº†æ™‚ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" æ–°è¦ä½œæˆãƒªãƒ“ジョン㮠ID ㌠``$HG_NODE`` ã«ã€è¦ªãƒªãƒ“ジョン㮠ID ãŒ\n"
-" ``$HG_PARENT1`` ãŠã‚ˆã³ ``$HG_PARENT2`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"``incoming``\n"
@@ -16276,12 +12571,6 @@ msgid ""
" the local repository. The ID of the newly arrived changeset is in\n"
" ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``."
msgstr ""
-"``incoming``\n"
-" push〠pull〠unbundle ã«ã‚ˆã‚‹ãƒªãƒ“ジョンã®è¿½åŠ å®Œäº†æ™‚ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" æ–°è¦è¿½åŠ ãƒªãƒ“ジョンã®æœ€åˆã® ID ㌠``$HG_NODE`` ã«ã€\n"
-" 追加リビジョンã®å–ã‚Šè¾¼ã¿å…ƒ URL ㌠``$HG_URL`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" (※ 訳注: 複数リビジョン一括追加時㮠``changegroup``\n"
-" フック実行ã¯1回ã§ã™ãŒã€ ``incoming`` フックã¯ãƒªãƒ“ジョン毎ã«å®Ÿè¡Œã•ã‚Œã¾ã™)"
msgid ""
"``outgoing``\n"
@@ -16289,11 +12578,6 @@ msgid ""
" first changeset sent is in ``$HG_NODE``. Source of operation is in\n"
" ``$HG_SOURCE``; see \"preoutgoing\" hook for description."
msgstr ""
-"``outgoing``\n"
-" 他リãƒã‚¸ãƒˆãƒªã¸ã®å¤‰æ›´å映完了後ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" æ–°è¦è¿½åŠ ãƒªãƒ“ジョン群ã®æœ€åˆã® ID ㌠``$HG_NODE`` ã«ã€\n"
-" æ“作実施契機㌠``$HG_SOURCE`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" \"preoutgoing\" フックã®èª¬æ˜Žã‚‚å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"``post-<command>``\n"
@@ -16305,16 +12589,6 @@ msgid ""
" dictionary of options (with unspecified options set to their defaults).\n"
" ``$HG_PATS`` is a list of arguments. Hook failure is ignored."
msgstr ""
-"``post-<コマンドå>``\n"
-" 指定コマンドãŒæ­£å¸¸çµ‚了ã—ãŸéš›ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" 当該コマンド実行ã®å¼•æ•°ãŒ ``$HG_ARGS`` ã«ã€\n"
-" 終了コード㌠``$HG_RESULT`` ã«ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" 当該コマンドã®å†…部処ç†ã«æ¸¡ã•ã‚Œã‚‹ã€ コマンド実行時引数ã®è§£æžçµæžœãŒã€\n"
-" ``$HG_PATS`` ãŠã‚ˆã³ ``$HG_OPTS`` ã«è¨­å®šã•ã‚Œã¾ã™ãŒã€\n"
-" ã“れらã«è¨­å®šã•ã‚Œã‚‹å€¤ã¯ã€ 内部的㪠Python データ形å¼ã®æ–‡å­—列ã§ã™ã€‚\n"
-" ``$HG_OPTS`` ã¯ã‚ªãƒ—ションã®è¾žæ›¸å½¢å¼ (無指定オプションã¯ã€\n"
-" デフォルト値ãŒè¨­å®šã•ã‚ŒãŸçŠ¶æ…‹)〠``$HG_PATS`` ã¯å¼•æ•°ã®ãƒªã‚¹ãƒˆã§ã™ã€‚\n"
-" フック自身ã®å®Ÿè¡Œå¤±æ•—ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
msgid ""
"``pre-<command>``\n"
@@ -16327,16 +12601,6 @@ msgid ""
" failure, the command doesn't execute and Mercurial returns the failure\n"
" code."
msgstr ""
-"``pre-<コマンドå>``\n"
-" 指定コマンドã®å®Ÿè¡Œå‰ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" 当該コマンド実行ã®å¼•æ•°ãŒ ``$HG_ARGS`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" 当該コマンドã®å†…部処ç†ã«æ¸¡ã•ã‚Œã‚‹ã€ コマンド実行時引数ã®è§£æžçµæžœãŒã€\n"
-" ``$HG_PATS`` ãŠã‚ˆã³ ``$HG_OPTS`` ã«è¨­å®šã•ã‚Œã¾ã™ãŒã€\n"
-" ã“れらã«è¨­å®šã•ã‚Œã‚‹å€¤ã¯ã€ 内部的㪠Python データ形å¼ã®æ–‡å­—列ã§ã™ã€‚\n"
-" ``$HG_OPTS`` ã¯ã‚ªãƒ—ションã®è¾žæ›¸å½¢å¼ (無指定オプションã¯ã€\n"
-" デフォルト値ãŒè¨­å®šã•ã‚ŒãŸçŠ¶æ…‹)〠``$HG_PATS`` ã¯å¼•æ•°ã®ãƒªã‚¹ãƒˆã§ã™ã€‚\n"
-" フック実行ãŒå¤±æ•—ã—ãŸå ´åˆã€ 当該コマンドã¯å®Ÿè¡Œã•ã‚Œãšã€\n"
-" Mercurial ã¯å®Ÿè¡Œå¤±æ•—ã®çµ‚了コードを返ã—ã¾ã™ã€‚"
msgid ""
"``prechangegroup``\n"
@@ -16345,11 +12609,6 @@ msgid ""
" cause the push, pull or unbundle to fail. URL from which changes\n"
" will come is in ``$HG_URL``."
msgstr ""
-"``prechangegroup``\n"
-" push〠pull〠unbundle ã«ã‚ˆã‚‹ãƒªãƒ“ジョン群ã®è¿½åŠ å‰ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" 終了コード 0 ã¯ã€ 処ç†ã®ç¶™ç¶šã‚’æ„味ã—ã¾ã™ã€‚\n"
-" éž 0 ã®çµ‚了コードã¯ã€ push〠pull〠unbundle ã®ä¸­æ–­ã‚’æ„味ã—ã¾ã™ã€‚\n"
-" 追加リビジョン群ã®å–ã‚Šè¾¼ã¿å…ƒ URL ㌠``$HG_URL`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"``precommit``\n"
@@ -16357,12 +12616,6 @@ msgid ""
" commit to proceed. Non-zero status will cause the commit to fail.\n"
" Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``."
msgstr ""
-"``precommit``\n"
-" 手元ã®ãƒªãƒã‚¸ãƒˆãƒªã«ãŠã‘ã‚‹æ–°è¦ãƒªãƒ“ジョン作æˆå‰ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" 終了コード 0 ã¯ã€ 処ç†ã®ç¶™ç¶šã‚’æ„味ã—ã¾ã™ã€‚\n"
-" éž 0 ã®çµ‚了コードã¯ã€ commit ã®ä¸­æ–­ã‚’æ„味ã—ã¾ã™ã€‚\n"
-" 親リビジョン㮠ID ãŒ\n"
-" ``$HG_PARENT1`` ãŠã‚ˆã³ ``$HG_PARENT2`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"``prelistkeys``\n"
@@ -16370,10 +12623,6 @@ msgid ""
" repository. Non-zero status will cause failure. The key namespace is\n"
" in ``$HG_NAMESPACE``."
msgstr ""
-"``prelistkeys``\n"
-" pushkey (bookmark ã®ã‚ˆã†ãªã‚‚ã®) ã®ä¸€è¦§å–å¾—å‰ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" éž 0 ã®çµ‚了コードã¯ã€ 処ç†ã®ä¸­æ–­ã‚’æ„味ã—ã¾ã™ã€‚\n"
-" キーã®åå‰ç©ºé–“㌠``$HG_NAMESPACE`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"``preoutgoing``\n"
@@ -16386,18 +12635,6 @@ msgid ""
" SSH or HTTP repository. If \"push\", \"pull\" or \"bundle\", operation\n"
" is happening on behalf of repository on same system."
msgstr ""
-"``preoutgoing``\n"
-" 他リãƒã‚¸ãƒˆãƒªã¸ã®å¤‰æ›´å映ã«ãŠã„ã¦ã€ 対象リビジョン確定å‰ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" éž 0 ã®çµ‚了コードã¯ã€ 処ç†ã®ä¸­æ–­ã‚’æ„味ã—ã¾ã™ã€‚\n"
-" 本フックã«ã‚ˆã£ã¦ã€ HTTP ã‚„ SSH 経由ã§ã®å¤‰æ›´å映を抑止å¯èƒ½ã§ã™ã€‚\n"
-" ローカルホスト上ã®ãƒªãƒã‚¸ãƒˆãƒªé–“ã§ã® pull ã‚„ push ãªã„ã— bundle\n"
-" コマンドも抑止å¯èƒ½ã§ã™ãŒã€ ファイルãã®ã‚‚ã®ã®ã‚³ãƒ”ーãŒå¯èƒ½ã§ã™ã‹ã‚‰ã€\n"
-" 実質的ãªæŠ‘止効果ã¯ã‚ã‚Šã¾ã›ã‚“。\n"
-" æ“作実施契機㌠``$HG_SOURCE`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" ã“ã®ç’°å¢ƒå¤‰æ•°ã« \"serve\" ãŒè¨­å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã€\n"
-" SSH ãªã‚Š HTTP を経由ã—ãŸé éš”ホストå´ãŒã€ 処ç†å¥‘æ©Ÿã¨ãªã£ã¦ã„ã¾ã™ã€‚\n"
-" \"push\"〠\"pull\" ãªã„ã— \"bundle\" ãŒè¨­å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã€\n"
-" åŒä¸€ãƒ›ã‚¹ãƒˆä¸Šã®ãƒªãƒã‚¸ãƒˆãƒªãŒå‡¦ç†å¥‘æ©Ÿã¨ãªã£ã¦ã„ã¾ã™ã€‚"
msgid ""
"``prepushkey``\n"
@@ -16407,13 +12644,6 @@ msgid ""
" the old value (if any) is in ``$HG_OLD``, and the new value is in\n"
" ``$HG_NEW``."
msgstr ""
-"``prepushkey``\n"
-" pushkey (bookmark ã®ã‚ˆã†ãªã‚‚ã®) ã®å–ã‚Šè¾¼ã¿å‰ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" éž 0 ã®çµ‚了コードã¯ã€ å–ã‚Šè¾¼ã¿æ‹’å¦ã‚’æ„味ã—ã¾ã™ã€‚\n"
-" キーã®åå‰ç©ºé–“㌠``$HG_NAMESPACE`` ã«ã€\n"
-" キー㌠``$HG_KEY`` ã«ã€\n"
-" (æ›´æ–°ã®å ´åˆã¯) 旧値㌠``$HG_OLD`` ã«ã€\n"
-" 新値㌠``$HG_NEW`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"``pretag``\n"
@@ -16423,14 +12653,6 @@ msgid ""
"is\n"
" local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``."
msgstr ""
-"``pretag``\n"
-" ã‚¿ã‚°ã®æ–°è¦ç”Ÿæˆå‰ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" 終了コード㌠0 ã®å ´åˆã€ ã‚¿ã‚°ã®ç”ŸæˆãŒè¨±å¯ã•ã‚Œã¾ã™ã€‚\n"
-" éž 0 ã®çµ‚了コードã¯ã€ タグ生æˆã‚’中断ã—ã¾ã™ã€‚\n"
-" タグ付ã‘対象リビジョン㮠ID ㌠``$HG_NODE`` ã«ã€\n"
-" ã‚¿ã‚°å㌠``$HG_TAG`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" ローカルタグã®å ´åˆã¯ ``$HG_LOCAL=1`` ã«ã€\n"
-" 通常ã®ã‚¿ã‚°ã®å ´åˆã¯ ``$HG_LOCAL=0`` ã«ãªã‚Šã¾ã™ã€‚"
msgid ""
"``pretxnchangegroup``\n"
@@ -16443,16 +12665,6 @@ msgid ""
" pull or unbundle will fail. URL that was source of changes is in\n"
" ``$HG_URL``."
msgstr ""
-"``pretxnchangegroup``\n"
-" push〠pull〠unbundle ã«ã‚ˆã‚‹ãƒªãƒ“ジョン群ã®è¿½åŠ å®Œäº†ã®éš›ã«ã€\n"
-" トランザクションãŒå®Œäº†ã™ã‚‹å‰ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" 追加ã•ã‚Œã‚‹ãƒªãƒ“ジョン群ã¯ã€ フックã‹ã‚‰å‚ç…§å¯èƒ½ã§ã™ã€‚\n"
-" ãã®ãŸã‚〠追加ãŒç¢ºå®šã™ã‚‹å‰ã«ã€ 対象リビジョン群ã®å†…容を検証å¯èƒ½ã§ã™ã€‚\n"
-" æ–°è¦è¿½åŠ ãƒªãƒ“ジョン群ã®æœ€åˆã® ID ㌠``$HG_NODE`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" 終了コード㌠0 ã®å ´åˆã€ トランザクションãŒç¢ºå®šã—ã¾ã™ã€‚\n"
-" éž 0 ã®çµ‚了コードã®å ´åˆã€ トランザクションãŒå·»ã戻ã•ã‚Œã€\n"
-" push〠pull〠unbundle ã¯ä¸­æ–­ã•ã‚Œã¾ã™ã€‚\n"
-" 追加リビジョンã®å–ã‚Šè¾¼ã¿å…ƒ URL 㯠``$HG_URL`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"``pretxncommit``\n"
@@ -16463,16 +12675,6 @@ msgid ""
" be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset\n"
" IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``."
msgstr ""
-"``pretxncommit``\n"
-" æ–°è¦ãƒªãƒ“ジョン作æˆã®éš›ã«ã€\n"
-" トランザクションãŒå®Œäº†ã™ã‚‹å‰ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" 追加ã•ã‚Œã‚‹ãƒªãƒ“ジョンã¯ã€ フックã‹ã‚‰å‚ç…§å¯èƒ½ã§ã™ã€‚\n"
-" ãã®ãŸã‚〠コミットログや〠変更内容ã®æ¤œè¨¼ãŒå¯èƒ½ã§ã™ã€‚\n"
-" 終了コード㌠0 ã®å ´åˆã€ トランザクションãŒç¢ºå®šã—ã¾ã™ã€‚\n"
-" éž 0 ã®çµ‚了コードã®å ´åˆã€ トランザクションãŒå·»ã戻ã•ã‚Œã¾ã™ã€‚\n"
-" æ–°è¦è¿½åŠ ãƒªãƒ“ジョン㮠ID ㌠``$HG_NODE`` ã«ã€\n"
-" 親リビジョン㮠ID ãŒ\n"
-" ``$HG_PARENT1`` ãŠã‚ˆã³ ``$HG_PARENT2`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"``preupdate``\n"
@@ -16481,13 +12683,6 @@ msgid ""
" Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID\n"
" of second new parent is in ``$HG_PARENT2``."
msgstr ""
-"``preupdate``\n"
-" 作業領域ã®æ›´æ–°å‰ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" 終了コード㌠0 ã®å ´åˆã€ 更新処ç†ãŒå®Ÿæ–½ã•ã‚Œã¾ã™ã€‚\n"
-" éž 0 ã®çµ‚了コードã®å ´åˆã€ 更新処ç†ã¯å®Ÿæ–½ã•ã‚Œã¾ã›ã‚“。\n"
-" 更新対象リビジョン㮠ID ㌠``$HG_PARENT1`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" マージ契機ã®æ›´æ–°å‡¦ç†ã®å ´åˆã€ 第2親リビジョン㮠ID ãŒ\n"
-" ``$HG_PARENT2`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"``listkeys``\n"
@@ -16495,10 +12690,6 @@ msgid ""
" key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a\n"
" dictionary containing the keys and values."
msgstr ""
-"``listkeys``\n"
-" pushkey (bookmark ã®ã‚ˆã†ãªã‚‚ã®) ã®ä¸€è¦§å–得後ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" キーã®åå‰ç©ºé–“㌠``$HG_NAMESPACE`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" ``$HG_VALUES`` ã«ã¯ã€ キーã¨å€¤ã‹ã‚‰ãªã‚‹è¾žæ›¸æƒ…å ±ãŒè¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"``pushkey``\n"
@@ -16507,12 +12698,6 @@ msgid ""
" ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new\n"
" value is in ``$HG_NEW``."
msgstr ""
-"``pushkey``\n"
-" pushkey (bookmark ã®ã‚ˆã†ãªã‚‚ã®) ã®å–ã‚Šè¾¼ã¿å¾Œã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" キーã®åå‰ç©ºé–“㌠``$HG_NAMESPACE`` ã«ã€\n"
-" キー㌠``$HG_KEY`` ã«ã€\n"
-" (æ›´æ–°ã®å ´åˆã¯) 旧値㌠``$HG_OLD`` ã«ã€\n"
-" 新値㌠``$HG_NEW`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"``tag``\n"
@@ -16520,12 +12705,6 @@ msgid ""
" Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in\n"
" repository if ``$HG_LOCAL=0``."
msgstr ""
-"``tag``\n"
-" ã‚¿ã‚°ã®æ–°è¦ç”Ÿæˆå¾Œã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" タグ付ã‘対象リビジョン㮠ID ㌠``$HG_NODE`` ã«ã€\n"
-" ã‚¿ã‚°å㌠``$HG_TAG`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" ローカルタグã®å ´åˆã¯ ``$HG_LOCAL=1`` ã«ã€\n"
-" 通常ã®ã‚¿ã‚°ã®å ´åˆã¯ ``$HG_LOCAL=0`` ã«ãªã‚Šã¾ã™ã€‚"
msgid ""
"``update``\n"
@@ -16534,13 +12713,6 @@ msgid ""
" in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the\n"
" update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``."
msgstr ""
-"``update``\n"
-" 作業領域ã®æ›´æ–°å¾Œã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-" 更新対象リビジョン㮠ID ㌠``$HG_PARENT1`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" マージ契機ã®æ›´æ–°å‡¦ç†ã®å ´åˆã€ 第2親リビジョン㮠ID ãŒ\n"
-" ``$HG_PARENT2`` ã«è¨­å®šã•ã‚Œã¾ã™ã€‚\n"
-" 更新処ç†ãŒæˆåŠŸã—ãŸå ´åˆã¯ ``$HG_ERROR=0`` ã«ã€\n"
-" 失敗ã—ãŸå ´åˆ (例: è¡çªè§£æ¶ˆã®å¤±æ•—ç­‰) 㯠``$HG_ERROR=1`` ãŒè¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
".. note:: It is generally better to use standard hooks rather than the\n"
@@ -16549,11 +12721,6 @@ msgid ""
" Also, hooks like \"commit\" will be called in all contexts that\n"
" generate a commit (e.g. tag) and not just the commit command."
msgstr ""
-".. note:: コマンド実行ã«å¯¾ã™ã‚‹ pre- ãªã„ã— post- 付ãã®æ±Žç”¨ãƒ•ãƒƒã‚¯ã¯ã€\n"
-" トランザクション確定ã®æˆå¦ã«å½±éŸ¿ã—ãªã„状æ³ã§å‘¼ã°ã‚Œã‚‹ãŸã‚ã€\n"
-" 汎用フックを使用ã™ã‚‹æ–¹ãŒãŠå‹§ã‚ã§ã™ã€‚\n"
-" \"commit\" ã®ã‚ˆã†ãªãƒ•ãƒƒã‚¯ã¯ã€ :hg:`commit` 実行以外ã«ã‚‚ã€\n"
-" リビジョンを作æˆã™ã‚‹å¥‘æ©Ÿ (例: :hg:`tag`) å…¨ã¦ã«ãŠã„ã¦å‘¼ã°ã‚Œã¾ã™ã€‚"
msgid ""
".. note:: Environment variables with empty values may not be passed to\n"
@@ -16561,20 +12728,14 @@ msgid ""
" will have an empty value under Unix-like platforms for non-merge\n"
" changesets, while it will not be available at all under Windows."
msgstr ""
-".. note:: Windows ã®ã‚ˆã†ãªç’°å¢ƒã§ã¯ã€ 空値ã®ç’°å¢ƒå¤‰æ•°ãŒã€\n"
-" 引ã渡ã•ã‚Œãªã„å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ 例ãˆã°ã€ éžãƒžãƒ¼ã‚¸ãƒªãƒ“ジョンã®å ´åˆã€\n"
-" Unix 系環境ã§ã¯ç©ºå€¤ã® ``$HG_PARENT2`` ãŒå¼•ã渡ã•ã‚Œã¾ã™ãŒã€\n"
-" Windows 環境ã§ã¯ã€ 環境変数自身ã®å¼•æ¸¡ã—ãŒã‚ã‚Šã¾ã›ã‚“。"
msgid "The syntax for Python hooks is as follows::"
-msgstr "Python 関数ã®ãƒ•ãƒƒã‚¯æŒ‡å®šæ–‡æ³•ã‚’以下ã«ç¤ºã—ã¾ã™::"
+msgstr ""
msgid ""
" hookname = python:modulename.submodule.callable\n"
" hookname = python:/path/to/python/module.py:callable"
msgstr ""
-" フックå = python:モジュールå.サブモジュールå.関数å\n"
-" フックå = python:/モジュール/ファイル/ã¸ã®/パス.py:関数å"
msgid ""
"Python hooks are run within the Mercurial process. Each hook is\n"
@@ -16584,374 +12745,105 @@ msgid ""
"environment variables above are passed as keyword arguments, with no\n"
"``HG_`` prefix, and names in lower case."
msgstr ""
-"Python 関数ã®ãƒ•ãƒƒã‚¯ã¯ã€ Mercurial プロセス内部ã§å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
-"å„フックã®èµ·å‹•ã§ã¯ã€ 最低ã§ã‚‚3ã¤ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰å¼•æ•°ãŒæ¸¡ã•ã‚Œã¾ã™ã€‚\n"
-"ui オブジェクト (``ui`` キーワード)ã€\n"
-"repository オブジェクト (``repo`` キーワード)ã€\n"
-"フック起動種別を示㙠``hooktype`` キーワードã®3ã¤ã§ã™ã€‚\n"
-"フックã®èª¬æ˜Žã§ç¤ºã—ãŸç’°å¢ƒå¤‰æ•°ã¯ã€\n"
-"``HG_`` ç„¡ã—ã§ã€ 且ã¤å°æ–‡å­—表記ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’使用ã—ãŸã€\n"
-"キーワード引数ã¨ã—ã¦æ¸¡ã•ã‚Œã¾ã™ã€‚"
msgid ""
"If a Python hook returns a \"true\" value or raises an exception, this\n"
"is treated as a failure."
msgstr ""
-"Python 関数フックã®æˆ»ã‚Šå€¤ãŒ \"true\" 相当値ã‹ã€\n"
-"実行中ã«ä¾‹å¤–ãŒç™ºç”Ÿã—ãŸå ´åˆã€ 処ç†å¤±æ•—ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚\n"
-"(※ 訳注: 失敗ã®å ´åˆã« \"true\" ã§ã‚る点ã«æ³¨æ„)"
-
-msgid ""
-"\n"
-"``hostfingerprints``\n"
-"--------------------"
-msgstr ""
-"\n"
-"``hostfingerprints``\n"
-"--------------------"
-
-msgid ""
-"Fingerprints of the certificates of known HTTPS servers.\n"
-"A HTTPS connection to a server with a fingerprint configured here will\n"
-"only succeed if the servers certificate matches the fingerprint.\n"
-"This is very similar to how ssh known hosts works.\n"
-"The fingerprint is the SHA-1 hash value of the DER encoded certificate.\n"
-"The CA chain and web.cacerts is not used for servers with a fingerprint."
-msgstr ""
-"既知㮠HTTPS サーãƒè¨¼æ˜Žæ›¸ã®ãƒ•ã‚£ãƒ³ã‚¬ãƒ¼ãƒ—リント (fingerprint) 記述。\n"
-"本セクションã«è¨˜è¿°ã®ã‚るサーãƒã¨ HTTPS ã§æŽ¥ç¶šã™ã‚‹å ´åˆã€\n"
-"サーãƒè¨¼æ˜Žæ›¸ã®ãƒ•ã‚£ãƒ³ã‚¬ãƒ¼ãƒ—リントãŒã€ 記述ã¨ä¸€è‡´ã—ãªã‘ã‚Œã°ã€\n"
-"接続失敗ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚ ssh ã«ãŠã‘ã‚‹ ``known_hosts`` 設定ã«ç›¸å½“ã—ã¾ã™ã€‚\n"
-"フィンガープリントã¯ã€ DER 符å·åŒ–ã•ã‚ŒãŸè¨¼æ˜Žæ›¸ã® SHA-1 ãƒãƒƒã‚·ãƒ¥å€¤ã§ã™ã€‚\n"
-"フィンガープリント指定ã®ã‚るサーãƒã¨ã®æŽ¥ç¶šã®å ´åˆã€\n"
-"CA 連鎖ã®ç¢ºèªã‚„ web.cacerts 設定ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
-
-msgid "For example::"
-msgstr "記述例を以下ã«ç¤ºã—ã¾ã™::"
-
-msgid ""
-" [hostfingerprints]\n"
-" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:"
-"d6:4b:ee:cc"
-msgstr ""
-" [hostfingerprints]\n"
-" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:"
-"d6:4b:ee:cc"
-
-msgid "This feature is only supported when using Python 2.6 or later."
-msgstr "本機能ã¯ã€ Python 2.6 以é™ã§ã®ã¿ä½¿ç”¨å¯èƒ½ã§ã™ã€‚"
msgid ""
"\n"
"``http_proxy``\n"
-"--------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``http_proxy``\n"
-"--------------"
msgid ""
"Used to access web-based Mercurial repositories through a HTTP\n"
"proxy."
msgstr ""
-"ウェブベース㮠Mercurial リãƒã‚¸ãƒˆãƒªã‚¢ã‚¯ã‚»ã‚¹ã§ä½¿ç”¨ã•ã‚Œã‚‹\n"
-"HTTP プロキシ設定。"
msgid ""
"``host``\n"
" Host name and (optional) port of the proxy server, for example\n"
" \"myproxy:8000\"."
msgstr ""
-"``host``\n"
-" プロキシサーãƒã®ãƒ›ã‚¹ãƒˆå㨠(çœç•¥å¯èƒ½ãª) ãƒãƒ¼ãƒˆç•ªå·ã€‚\n"
-" 設定例: \"myproxy:8000\""
msgid ""
"``no``\n"
" Optional. Comma-separated list of host names that should bypass\n"
" the proxy."
msgstr ""
-"``no``\n"
-" çœç•¥å¯èƒ½ã€‚ プロキシを使用「ã—ãªã„ã€ãƒ›ã‚¹ãƒˆå一覧 (カンマ区切り)"
msgid ""
"``passwd``\n"
" Optional. Password to authenticate with at the proxy server."
msgstr ""
-"``passwd``\n"
-" çœç•¥å¯èƒ½ã€‚ プロキシサーãƒã®èªè¨¼ç”¨ãƒ‘スワード。"
msgid ""
"``user``\n"
" Optional. User name to authenticate with at the proxy server."
msgstr ""
-"``user``\n"
-" çœç•¥å¯èƒ½ã€‚ プロキシサーãƒã®èªè¨¼ç”¨ãƒ¦ãƒ¼ã‚¶å。"
msgid ""
"``always``\n"
" Optional. Always use the proxy, even for localhost and any entries\n"
" in ``http_proxy.no``. True or False. Default: False."
msgstr ""
-"``always``\n"
-" çœç•¥å¯èƒ½ã€‚ ``http_proxy.no`` を無視ã—ã¦ã€ プロキシを常用ã™ã‚‹ã‹å¦ã‹ã€‚\n"
-" 真å½å€¤ã€‚ デフォルト値: False"
-
-msgid ""
-"``merge-patterns``\n"
-"------------------"
-msgstr ""
-"``merge-patterns``\n"
-"------------------"
msgid ""
-"This section specifies merge tools to associate with particular file\n"
-"patterns. Tools matched here will take precedence over the default\n"
-"merge tool. Patterns are globs by default, rooted at the repository\n"
-"root."
-msgstr ""
-"特定ã®ãƒ•ã‚¡ã‚¤ãƒ«åパターンã¨ã€ マージツールã®é–¢é€£ä»˜ã‘。\n"
-"本セクションã§ã®é–¢é€£ä»˜ã‘ã¯ã€ デフォルトã®ãƒžãƒ¼ã‚¸ãƒ„ールé¸æŠžã«å„ªå…ˆã—ã¾ã™ã€‚\n"
-"デフォルトã®ãƒ‘ターン指定形å¼ã¯ã€ 作業領域ルートã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã«å¯¾ã—ã¦ã€\n"
-"パス先頭ã‹ã‚‰ã®ãƒ‘ターンåˆè‡´ã§åˆ¤å®šã™ã‚‹ã€ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰å½¢å¼ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-" [merge-patterns]\n"
-" **.c = kdiff3\n"
-" **.jpg = myimgmerge"
-msgstr ""
-" [merge-patterns]\n"
-" **.c = kdiff3\n"
-" **.jpg = myimgmerge"
-
-msgid ""
-"``merge-tools``\n"
-"---------------"
-msgstr ""
-"``merge-tools``\n"
-"---------------"
-
-msgid ""
-"This section configures external merge tools to use for file-level\n"
-"merges."
-msgstr "ファイルå˜ä½ã®ãƒžãƒ¼ã‚¸ã‚’è¡Œã†å¤–部マージツールã®è¨­å®šã€‚"
-
-msgid "Example ``~/.hgrc``::"
-msgstr "``~/.hgrc`` ã§ã®è¨­å®šä¾‹ã‚’以下ã«ç¤ºã—ã¾ã™::"
-
-msgid ""
-" [merge-tools]\n"
-" # Override stock tool location\n"
-" kdiff3.executable = ~/bin/kdiff3\n"
-" # Specify command line\n"
-" kdiff3.args = $base $local $other -o $output\n"
-" # Give higher priority\n"
-" kdiff3.priority = 1"
-msgstr ""
-" [merge-tools]\n"
-" # 既存ツールã®å®Ÿè¡Œãƒ‘スを標準ã®ã‚‚ã®ã‹ã‚‰å¤‰æ›´\n"
-" kdiff3.executable = ~/bin/kdiff3\n"
-" # コマンド行形å¼ã®æŒ‡å®š\n"
-" kdiff3.args = $base $local $other -o $output\n"
-" # 優先順ä½ã‚’高ã設定\n"
-" kdiff3.priority = 1"
-
-msgid ""
-" # Define new tool\n"
-" myHtmlTool.args = -m $local $other $base $output\n"
-" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
-" myHtmlTool.priority = 1"
-msgstr ""
-" # 固有ツールã®è¨­å®š\n"
-" myHtmlTool.args = -m $local $other $base $output\n"
-" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
-" myHtmlTool.priority = 1"
-
-msgid ""
-"``priority``\n"
-" The priority in which to evaluate this tool.\n"
-" Default: 0."
-msgstr ""
-"``priority``\n"
-" 当該ツールをé¸æŠžã™ã‚‹éš›ã®å„ªå…ˆé †ä½ã€‚ デフォルト値: 0"
-
-msgid ""
-"``executable``\n"
-" Either just the name of the executable or its pathname. On Windows,\n"
-" the path can use environment variables with ${ProgramFiles} syntax.\n"
-" Default: the tool name."
-msgstr ""
-"``executable``\n"
-" 実行å¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«åãªã„ã—パスå。 Windows 環境ã§ã¯ã€\n"
-" ${ProgramFiles} 環境変数を併用ã—ãŸè¨˜è¿°ãŒä½¿ç”¨å¯èƒ½ã§ã™ã€‚\n"
-" デフォルト値: ツールåãŒè‡ªå‹•çš„ã«è¨­å®š"
-
-msgid ""
-"``args``\n"
-" The arguments to pass to the tool executable. You can refer to the\n"
-" files being merged as well as the output file through these\n"
-" variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
-" Default: ``$local $base $other``"
-msgstr ""
-"``args``\n"
-" 実行å¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«ã«æ¸¡ã•ã‚Œã‚‹å¼•æ•°ã€‚ ``$base``〠``$local``〠``$other``\n"
-" ãŠã‚ˆã³ ``$output`` ã¨ã„ã†è¨˜è¿°ã§ã€ マージ対象ファイル群やã€\n"
-" çµæžœãƒ•ã‚¡ã‚¤ãƒ«ã‚’指定å¯èƒ½ã§ã™ã€‚ デフォルト値: ``$local $base $other``"
-
-msgid ""
-"``premerge``\n"
-" Attempt to run internal non-interactive 3-way merge tool before\n"
-" launching external tool. Options are ``true``, ``false``, or ``keep``\n"
-" to leave markers in the file if the premerge fails.\n"
-" Default: True"
-msgstr ""
-"``premerge``\n"
-" 外部ツール起動å‰ã®ã€ éžå¯¾è©±çš„ãªå†…部 3-way マージツール実行ã®æœ‰ç„¡ã€‚\n"
-" ``true`` ãŠã‚ˆã³ ``false`` 以外ã«ã€ 事å‰ãƒžãƒ¼ã‚¸ãŒå¤±æ•—ã—ãŸå ´åˆã«ã€\n"
-" マージマークを残ã—ãŸã¾ã¾ã«ã™ã‚‹ ``keep`` を指定å¯èƒ½ã§ã™ã€‚\n"
-" デフォルト値: True"
-
-msgid ""
-"``binary``\n"
-" This tool can merge binary files. Defaults to False, unless tool\n"
-" was selected by file pattern match."
-msgstr ""
-"``binary``\n"
-" 当該ツールã«ã‚ˆã‚‹ã€ ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒžãƒ¼ã‚¸å¯å¦ã€‚ デフォルト値㯠False\n"
-" ã§ã™ãŒã€ ツールã®é¸æŠžãŒã€ ファイルパターンã®åˆè‡´ã§å®Ÿæ–½ã•ã‚ŒãŸå ´åˆã¯ã€\n"
-" ã“ã®è¨­å®šå€¤ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-"``symlink``\n"
-" This tool can merge symlinks. Defaults to False, even if tool was\n"
-" selected by file pattern match."
-msgstr ""
-"``symlink``\n"
-" 当該ツールã«ã‚ˆã‚‹ã€ シンボリックリンクã®ãƒžãƒ¼ã‚¸å¯å¦ã€‚ デフォルト値㯠False\n"
-" ã§ã™ãŒã€ ツールã®é¸æŠžãŒã€ ファイルパターンã®åˆè‡´ã§å®Ÿæ–½ã•ã‚ŒãŸå ´åˆã¯ã€\n"
-" ã“ã®è¨­å®šå€¤ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-"``check``\n"
-" A list of merge success-checking options:"
-msgstr ""
-"``check``\n"
-" マージæˆå¦åˆ¤å®šæ–¹å¼ã®é¸æŠžä¸€è¦§ (複数指定å¯èƒ½):"
-
-msgid ""
-" ``changed``\n"
-" Ask whether merge was successful when the merged file shows no changes.\n"
-" ``conflicts``\n"
-" Check whether there are conflicts even though the tool reported "
-"success.\n"
-" ``prompt``\n"
-" Always prompt for merge success, regardless of success reported by tool."
-msgstr ""
-" ``changed``\n"
-" マージçµæžœã¨ä»¥å‰ã®å†…容ã«å·®åˆ†ãŒç„¡ã„å ´åˆã€ マージæˆå¦ã‚’å•ã„åˆã‚ã›ã€‚\n"
-" ``conflicts``\n"
-" ツールã®æˆ»ã‚Šå€¤ãŒãƒžãƒ¼ã‚¸æˆåŠŸã‚’示ã™å ´åˆã§ã‚‚〠è¡çªãƒžãƒ¼ã‚¯ã®æœ‰ç„¡ã‚’確èªã€‚\n"
-" ``prompt``\n"
-" ツールã®æˆ»ã‚Šå€¤ãŒãƒžãƒ¼ã‚¸æˆåŠŸã‚’示ã™å ´åˆã§ã‚‚〠常ã«ãƒžãƒ¼ã‚¸æˆå¦ã‚’å•ã„åˆã‚ã›ã€‚"
-
-msgid ""
-"``checkchanged``\n"
-" True is equivalent to ``check = changed``.\n"
-" Default: False"
+"``smtp``\n"
+"\"\"\"\"\"\"\"\""
msgstr ""
-"``checkchanged``\n"
-" 本設定を True ã«ã™ã‚‹ã®ã¯ã€ ``check = changed`` 設定ã¨ç­‰ä¾¡ã§ã™ã€‚\n"
-" デフォルト値: False"
-msgid ""
-"``checkconflicts``\n"
-" True is equivalent to ``check = conflicts``.\n"
-" Default: False"
+msgid "Configuration for extensions that need to send email messages."
msgstr ""
-"``checkconflicts``\n"
-" 本設定を True ã«ã™ã‚‹ã®ã¯ã€ ``check = conflicts`` 設定ã¨ç­‰ä¾¡ã§ã™ã€‚\n"
-" デフォルト値: False"
msgid ""
-"``fixeol``\n"
-" Attempt to fix up EOL changes caused by the merge tool.\n"
-" Default: False"
+"``host``\n"
+" Host name of mail server, e.g. \"mail.example.com\"."
msgstr ""
-"``fixeol``\n"
-" マージツールã®å®Ÿè¡Œã«ã‚ˆã‚‹ EOL å½¢å¼å¤‰æ›´ã®æ˜¯æ­£ã®æœ‰ç„¡ã€‚\n"
-" デフォルト値: False"
msgid ""
-"``gui``\n"
-" This tool requires a graphical interface to run. Default: False"
+"``port``\n"
+" Optional. Port to connect to on mail server. Default: 25."
msgstr ""
-"``gui``\n"
-" 当該ツール実行ã«ãŠã‘ã‚‹ GUI 表示ã®è¦å¦ã€‚\n"
-" デフォルト値: False"
msgid ""
-"``regkey``\n"
-" Windows registry key which describes install location of this\n"
-" tool. Mercurial will search for this key first under\n"
-" ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.\n"
-" Default: None"
+"``tls``\n"
+" Optional. Method to enable TLS when connecting to mail server: "
+"starttls,\n"
+" smtps or none. Default: none."
msgstr ""
-"``regkey``\n"
-" 当該ツールã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ä½ç½®ã‚’ä¿æŒã™ã‚‹ Windows レジストリキー。\n"
-" Mercurial 㯠``HKEY_CURRENT_USER`` ãªã„ã— ``HKEY_LOCAL_MACHINE``\n"
-" é…下ã®å½“該キーã®æœ‰ç„¡ã‚’〠ã“ã®é †åºã§ç¢ºèªã—ã¾ã™ã€‚\n"
-" デフォルト値: None"
msgid ""
-"``regkeyalt``\n"
-" An alternate Windows registry key to try if the first key is not\n"
-" found. The alternate key uses the same ``regname`` and ``regappend``\n"
-" semantics of the primary key. The most common use for this key\n"
-" is to search for 32bit applications on 64bit operating systems.\n"
-" Default: None"
+"``username``\n"
+" Optional. User name for authenticating with the SMTP server.\n"
+" Default: none."
msgstr ""
-"``regkeyalt``\n"
-" 指定ã•ã‚ŒãŸãƒ¬ã‚¸ã‚¹ãƒˆãƒªã‚­ãƒ¼ä¸åœ¨æ™‚ã®ã€ 代替 Windows レジストリキー。\n"
-" ``regname`` ãŠã‚ˆã³ ``regappend`` ã«ã‚ˆã‚‹æ”¹å¤‰ã¯ã€\n"
-" 代替キーã§ã‚‚実施ã•ã‚Œã¾ã™ã€‚ 典型的ãªç”¨é€”ã¯ã€\n"
-" 64 ビット環境ã«ãŠã‘ã‚‹ 32 ビットアプリã®æ¤œç´¢ã§ã™ã€‚\n"
-" デフォルト値: None"
msgid ""
-"``regname``\n"
-" Name of value to read from specified registry key. Defaults to the\n"
-" unnamed (default) value."
+"``password``\n"
+" Optional. Password for authenticating with the SMTP server. If not\n"
+" specified, interactive sessions will prompt the user for a\n"
+" password; non-interactive sessions will fail. Default: none."
msgstr ""
-"``regname``\n"
-" 当該レジストリキーã‹ã‚‰èª­ã¿å‡ºã™å€¤ã®åå‰ã€‚ デフォルト値ã¯ã€\n"
-" ``(既定)`` ã‹ã‚‰ã®èª­ã¿å‡ºã—ã§ã™ã€‚"
msgid ""
-"``regappend``\n"
-" String to append to the value read from the registry, typically\n"
-" the executable name of the tool.\n"
-" Default: None"
+"``local_hostname``\n"
+" Optional. It's the hostname that the sender can use to identify\n"
+" itself to the MTA."
msgstr ""
-"``regappend``\n"
-" 当該レジストリキーã‹ã‚‰ã®èª­ã¿å‡ºã—値ã«ä»˜åŠ ã™ã‚‹å€¤ã€‚ 典型的ãªè¨­å®šå€¤ã¯ã€\n"
-" ツールã®å®Ÿè¡Œå¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«åã§ã™ã€‚\n"
-" デフォルト値: None"
msgid ""
"\n"
"``patch``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``patch``\n"
-"---------"
msgid ""
"Settings used when applying patches, for instance through the 'import'\n"
"command or with Mercurial Queues extension."
msgstr ""
-":hg:`import` ã‚„ Mercurial Queues (MQ) エクステンション等ã«ã‚ˆã‚‹ã€\n"
-"パッãƒé©ç”¨ã«é–¢ã™ã‚‹è¨­å®šã€‚"
msgid ""
"``eol``\n"
@@ -16965,27 +12857,12 @@ msgid ""
" of line, patch line endings are preserved.\n"
" Default: strict."
msgstr ""
-"``eol``\n"
-" 'strict' ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€ パッãƒãƒ•ã‚¡ã‚¤ãƒ«ã¨ã€\n"
-" パッãƒå¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ 行末形å¼ãŒãã®ã¾ã¾ç¶­æŒã•ã‚Œã¾ã™ã€‚\n"
-" ``lf`` ãªã„ã— ``crlf`` ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€\n"
-" パッãƒãƒ•ã‚¡ã‚¤ãƒ«ã¨ãƒ‘ッãƒå¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ 行末形å¼ãŒç„¡è¦–ã•ã‚Œã€\n"
-" LF (Unix å½¢å¼) ãªã„ã— CRLF (Windows å½¢å¼) ã«æ­£è¦åŒ–ã•ã‚Œã¾ã™ã€‚\n"
-" ``auto`` ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€\n"
-" パッãƒãƒ•ã‚¡ã‚¤ãƒ«ã®è¡Œæœ«å½¢å¼ã¯ç„¡è¦–ã•ã‚Œã¾ã™ãŒã€\n"
-" パッãƒå¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã®è¡Œæœ«å½¢å¼ã¯ã€ ファイル毎ã®è¨­å®šã§æ­£è¦åŒ–ã•ã‚Œã¾ã™ã€‚\n"
-" 対象ファイルãŒå­˜åœ¨ã—ãªã„ã‹ã€ 改行をå«ã¾ãªã„å ´åˆã€\n"
-" パッãƒãƒ•ã‚¡ã‚¤ãƒ«ã®è¡Œæœ«å½¢å¼ãŒãã®ã¾ã¾ç¶­æŒã•ã‚Œã¾ã™ã€‚\n"
-" デフォルト値: strict"
msgid ""
"\n"
"``paths``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``paths``\n"
-"---------"
msgid ""
"Assigns symbolic names to repositories. The left side is the\n"
@@ -16993,13 +12870,6 @@ msgid ""
"location of the repository. Default paths can be declared by setting\n"
"the following entries."
msgstr ""
-"リãƒã‚¸ãƒˆãƒªã¸ã®ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãªåå‰ã®å‰²ã‚Šå½“ã¦è¨­å®šã€‚\n"
-"設定記述ã®å·¦è¾ºã«ã‚·ãƒ³ãƒœãƒ«åã‚’ã€\n"
-"å³è¾ºã«ãƒªãƒã‚¸ãƒˆãƒªä½ç½®ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€\n"
-"ãªã„ã— URL を記述ã—ã¾ã™ã€‚\n"
-"連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªæŒ‡å®šãŒç„¡ã„å ´åˆã§ã‚‚ã€\n"
-"以下ã®ã‚·ãƒ³ãƒœãƒ«ã‚’設定ã™ã‚‹ã“ã¨ã§ã€\n"
-"パス指定ãŒå¯èƒ½ã§ã™ã€‚ (※ 訳注: :hg:`help urls` ã‚‚å‚ç…§ã—ã¦ãã ã•ã„)"
msgid ""
"``default``\n"
@@ -17007,120 +12877,32 @@ msgid ""
" Default is set to repository from which the current repository was\n"
" cloned."
msgstr ""
-"``default``\n"
-" 連æºå…ˆæŒ‡å®šãŒç„¡ã„å ´åˆã«ã€ :hg:`pull` ã«é¡žã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã®ã€\n"
-" 連æºå¯¾è±¡ã¨ãªã‚‹ãƒªãƒã‚¸ãƒˆãƒªã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€ ãªã„ã— URL。\n"
-" 当該リãƒã‚¸ãƒˆãƒªãŒ :hg:`clone` ã§ç”Ÿæˆã•ã‚ŒãŸå ´åˆã€\n"
-" 複製元リãƒã‚¸ãƒˆãƒªã® URL ãŒè‡ªå‹•çš„ã«è¨­å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"``default-push``\n"
" Optional. Directory or URL to use when pushing if no destination\n"
" is specified."
msgstr ""
-"``default-push``\n"
-" 連æºå…ˆæŒ‡å®šãŒç„¡ã„å ´åˆã«ã€ :hg:`push` ã«é¡žã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã®ã€\n"
-" 連æºå¯¾è±¡ã¨ãªã‚‹ãƒªãƒã‚¸ãƒˆãƒªã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€ ãªã„ã— URL。"
-
-msgid ""
-"``phases``\n"
-"----------"
-msgstr ""
-"``phases``\n"
-"----------"
-
-msgid ""
-"Specifies default handling of phases. See :hg:`help phases` for more\n"
-"information about working with phases."
-msgstr ""
-"デフォルト時ã®ãƒ•ã‚§ãƒ¼ã‚ºã®å–り扱ã„設定。\n"
-"フェーズæ“作ã«é–¢ã™ã‚‹è©³ç´°ã¯ :hg:`help phases` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-
-msgid ""
-"``publish``\n"
-" Controls draft phase behavior when working as a server. When true,\n"
-" pushed changesets are set to public in both client and server and\n"
-" pulled or cloned changesets are set to public in the client.\n"
-" Default: True"
-msgstr ""
-"``publish``\n"
-" サーãƒã¨ã—ã¦æ©Ÿèƒ½ã™ã‚‹éš›ã®ã€ draft フェーズã«å¯¾ã™ã‚‹æŒ™å‹•ã®è¨­å®šã€‚\n"
-" True ã®å ´åˆã€ クライアントã‹ã‚‰å映ã•ã‚ŒãŸãƒªãƒ“ジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã¯ã€\n"
-" クライアントï¼ã‚µãƒ¼ãƒåŒæ–¹ã§ public 化ã•ã‚Œã€ クライアントã«å–ã‚Šè¾¼ã¿ã€\n"
-" ãªã„ã—複製ã•ã‚ŒãŸãƒªãƒ“ジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã¯ã€ クライアントå´ã§ã®ã¿ public\n"
-" 化ã•ã‚Œã¾ã™ã€‚デフォルト値: True"
msgid ""
-"``new-commit``\n"
-" Phase of newly-created commits.\n"
-" Default: draft"
-msgstr ""
-"``new-commit``\n"
-" æ–°è¦ä½œæˆã•ã‚Œã‚‹ãƒªãƒ“ジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã€‚\n"
-" デフォルト値: draft"
-
-msgid ""
-"``profiling``\n"
-"-------------"
-msgstr ""
+"\n"
"``profiling``\n"
-"-------------"
-
-msgid ""
-"Specifies profiling type, format, and file output. Two profilers are\n"
-"supported: an instrumenting profiler (named ``ls``), and a sampling\n"
-"profiler (named ``stat``)."
+"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"プロファイリングã®ç¨®åˆ¥ã€ å½¢å¼ãŠã‚ˆã³å‡ºåŠ›å…ˆã®è¨­å®šã€‚ 指定å¯èƒ½ãªç¨®åˆ¥ã¯ã€\n"
-"精密プロファイル (å称: ``ls``) ã¨ã€ サンプリングプロファイル (å称:\n"
-"``stat``) ã®2種類ã§ã™ã€‚"
msgid ""
-"In this section description, 'profiling data' stands for the raw data\n"
-"collected during profiling, while 'profiling report' stands for a\n"
-"statistical text report generated from the profiling data. The\n"
-"profiling is done using lsprof."
+"Specifies profiling format and file output. In this section\n"
+"description, 'profiling data' stands for the raw data collected\n"
+"during profiling, while 'profiling report' stands for a statistical\n"
+"text report generated from the profiling data. The profiling is done\n"
+"using lsprof."
msgstr ""
-"以下ã®èª¬æ˜Žã§ã¯ã€ プロファイル期間ã«æŽ¡å–ã•ã‚Œã‚‹ç”Ÿãƒ‡ãƒ¼ã‚¿ã®äº‹ã‚’\n"
-"'プロファイルデータ'〠プロファイルデータを元ã«ã—ãŸã€\n"
-"テキスト形å¼ã®çµ±è¨ˆå ±å‘Šã‚’ 'プロファイル報告' ã¨å‘¼ç§°ã—ã¾ã™ã€‚\n"
-"プロファイル採å–ã«ã¯ã€ lsprof ãŒç”¨ã„られã¾ã™ã€‚"
-
-msgid ""
-"``type``\n"
-" The type of profiler to use.\n"
-" Default: ls."
-msgstr ""
-"``type``\n"
-" 使用ã™ã‚‹ãƒ—ロファイラ種別。 デフォルト値: ls."
-
-msgid ""
-" ``ls``\n"
-" Use Python's built-in instrumenting profiler. This profiler\n"
-" works on all platforms, but each line number it reports is the\n"
-" first line of a function. This restriction makes it difficult to\n"
-" identify the expensive parts of a non-trivial function.\n"
-" ``stat``\n"
-" Use a third-party statistical profiler, statprof. This profiler\n"
-" currently runs only on Unix systems, and is most useful for\n"
-" profiling commands that run for longer than about 0.1 seconds."
-msgstr ""
-" ``ls``\n"
-" Python 組ã¿è¾¼ã¿ã®è©³ç´°ãƒ—ロファイラ。 ã©ã®ç’°å¢ƒã§ã‚‚利用ã§ãã¾ã™ãŒã€\n"
-" 報告ã•ã‚Œã‚‹è¡Œç•ªå·ã¯ã€ 常ã«é–¢æ•°ã®å†’é ­è¡Œã«å›ºå®šã•ã‚Œã¾ã™ã€‚ ãã®ãŸã‚ã€\n"
-" 入り組んã é–¢æ•°å†…部ã®ã€ 高コストãªéƒ¨ä½ã¯ã€ 特定ãŒå›°é›£ã§ã™ã€‚\n"
-" ``stat``\n"
-" サードパーティ製㮠statprof。 ç¾æ™‚点ã§ã¯ Unix 環境ã§ã®ã¿ä½¿ç”¨ã§ãã€\n"
-" 0.1 秒以上をè¦ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œã®è§£æžã§æœ‰ç”¨ã§ã™ã€‚"
msgid ""
"``format``\n"
-" Profiling format. Specific to the ``ls`` instrumenting profiler.\n"
+" Profiling format.\n"
" Default: text."
msgstr ""
-"``format``\n"
-" プロファイル形å¼ã€‚ 詳細プロファイラ ``ls`` 固有ã®è¨­å®šã€‚\n"
-" デフォルト値: text"
msgid ""
" ``text``\n"
@@ -17132,21 +12914,6 @@ msgid ""
" file, the generated file can directly be loaded into\n"
" kcachegrind."
msgstr ""
-" ``text``\n"
-" プロファイル報告を生æˆã€‚ プロファイル報告をファイルã«ä¿å­˜ã™ã‚‹å ´åˆã€\n"
-" プロファイルデータã¯ä¿å­˜ã•ã‚Œãªã„点ã«æ³¨æ„ã—ã¦ãã ã•ã„。\n"
-" ``kcachegrind``\n"
-" プロファイルデータを kcachegrind å½¢å¼åŒ–。 ファイルã«ä¿å­˜ã™ã‚‹å ´åˆã€\n"
-" 当該ファイルã¯ç›´æŽ¥ kcachegrind ã§èª­ã¿è¾¼ã‚ã¾ã™ã€‚"
-
-msgid ""
-"``frequency``\n"
-" Sampling frequency. Specific to the ``stat`` sampling profiler.\n"
-" Default: 1000."
-msgstr ""
-"``frequency``\n"
-" サンプリング頻度。 サンプリングプロファイラ ``stat`` 固有ã®è¨­å®šã€‚\n"
-" デフォルト値: 1000."
msgid ""
"``output``\n"
@@ -17154,32 +12921,22 @@ msgid ""
" file exists, it is replaced. Default: None, data is printed on\n"
" stderr"
msgstr ""
-"``output``\n"
-" プロファイルデータ〠ãªã„ã—統計報告ã®ä¿å­˜å…ˆã€‚\n"
-" 既存ファイルãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ ファイルã¯ä¸Šæ›¸ãã•ã‚Œã¾ã™ã€‚\n"
-" デフォルト値: None (çµæžœã¯æ¨™æº–エラー出力ã‹ã‚‰å‡ºåŠ›)"
msgid ""
"``revsetalias``\n"
-"---------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``revsetalias``\n"
-"---------------"
msgid "Alias definitions for revsets. See :hg:`help revsets` for details."
msgstr ""
-"revsets 機能ã®åˆ¥å定義。\n"
-"詳細㯠:hg:`help revsets` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"``server``\n"
-"----------"
+"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``server``\n"
-"----------"
msgid "Controls generic server settings."
-msgstr "一般的ãªã‚µãƒ¼ãƒæ©Ÿèƒ½ã®è¨­å®šã€‚"
+msgstr ""
msgid ""
"``uncompressed``\n"
@@ -17194,26 +12951,6 @@ msgid ""
" the write lock while determining what data to transfer.\n"
" Default is True."
msgstr ""
-"``uncompressed``\n"
-" クライアントã‹ã‚‰ã®ã€éžåœ§ç¸®ãƒ—ロトコルã§ã® :hg:`clone` è¦æ±‚ã«å¯¾ã™ã‚‹ã€\n"
-" 許å¯ã®å¯å¦ã€‚ 通常ã®è»¢é€ã¨æ¯”較ã—ã¦ã€ データé‡ãŒ 40% 程度増加ã—ã¾ã™ãŒã€\n"
-" サーãƒï¼ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆåŒæ–¹ã§ã€ メモリや CPU ã®æ¶ˆè²»ãŒä½Žæ¸›ã—ã¾ã™ã€‚\n"
-" LAN (100 Mbps ãªã„ã—ãれ以上) や高速 WAN 経由ã§ã‚ã‚Œã°ã€\n"
-" 通常形å¼ã‚ˆã‚Šã‚‚高速 (最大 10 å€ç¨‹åº¦) ã§ã™ã€‚\n"
-" 転é€ãƒ‡ãƒ¼ã‚¿é‡ãŒå¢—加ã™ã‚‹ã“ã¨ã‹ã‚‰ã€ 一般的㪠WAN 接続 (概㭠6 Mbps 以下)\n"
-" ã§ã¯ã€ éžåœ§ç¸®å½¢å¼ã®æ–¹ãŒä½Žé€Ÿã§ã™ã€‚\n"
-" 転é€ãƒ‡ãƒ¼ã‚¿ãŒç¢ºå®šã™ã‚‹ã¾ã§ã®é–“ã¯ã€ éžåœ§ç¸®å½¢å¼ã§ã‚ã£ã¦ã‚‚ã€\n"
-" 一時的ãªæ›¸ãè¾¼ã¿ãƒ­ãƒƒã‚¯ãŒä¿æŒã•ã‚Œã¾ã™ã€‚\n"
-" デフォルト値: True"
-
-msgid ""
-"``preferuncompressed``\n"
-" When set, clients will try to use the uncompressed streaming\n"
-" protocol. Default is False."
-msgstr ""
-"``preferuncompressed``\n"
-" 真値ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€ クライアントã¯éžåœ§ç¸®ã§ã®è»¢é€ã‚’試ã¿ã¾ã™ã€‚\n"
-" デフォルト値: False"
msgid ""
"``validate``\n"
@@ -17221,130 +12958,38 @@ msgid ""
" checking that all new file revisions specified in manifests are\n"
" present. Default is False."
msgstr ""
-"``validate``\n"
-" å映対象リビジョンã®ã€ 完全性検証ã®è¦å¦ã€‚\n"
-" マニフェスト中ã®å…¨ã¦ã®æ›´æ–°æƒ…å ±ãŒã€ 転é€å†…容ã«å«ã¾ã‚Œã¦ã„ã‚‹ã‹å¦ã‹ã§ã€\n"
-" データã®å®Œå…¨æ€§ã‚’確èªã—ã¾ã™ã€‚ デフォルト値: False"
-
-msgid ""
-"``smtp``\n"
-"--------"
-msgstr ""
-"``smtp``\n"
-"--------"
-
-msgid "Configuration for extensions that need to send email messages."
-msgstr "é›»å­ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã™ã‚‹ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³å‘ã‘設定。"
-
-msgid ""
-"``host``\n"
-" Host name of mail server, e.g. \"mail.example.com\"."
-msgstr ""
-"``host``\n"
-" SMTP サーãƒã®ãƒ›ã‚¹ãƒˆå。 設定例: \"mail.example.com\""
-
-msgid ""
-"``port``\n"
-" Optional. Port to connect to on mail server. Default: 25."
-msgstr ""
-"``port``\n"
-" çœç•¥å¯èƒ½ã€‚ SMTP サーãƒã®ãƒãƒ¼ãƒˆç•ªå·ã€‚ デフォルト値: 25"
-
-msgid ""
-"``tls``\n"
-" Optional. Method to enable TLS when connecting to mail server: "
-"starttls,\n"
-" smtps or none. Default: none."
-msgstr ""
-"``tls``\n"
-" çœç•¥å¯èƒ½ã€‚ SMTP サーãƒæŽ¥ç¶šã«ãŠã‘ã‚‹ TLS 接続ã®æœ‰ç„¡ï¼æ–¹å¼ã®æŒ‡å®šã€‚\n"
-" starttls〠smtps ãªã„ã— none。 デフォルト値: none"
msgid ""
-"``username``\n"
-" Optional. User name for authenticating with the SMTP server.\n"
-" Default: none."
-msgstr ""
-"``username``\n"
-" çœç•¥å¯èƒ½ã€‚ SMTP サーãƒæŽ¥ç¶šã®èªè¨¼ã«ãŠã‘るユーザå。\n"
-" デフォルト値: none"
-
-msgid ""
-"``password``\n"
-" Optional. Password for authenticating with the SMTP server. If not\n"
-" specified, interactive sessions will prompt the user for a\n"
-" password; non-interactive sessions will fail. Default: none."
-msgstr ""
-"``password``\n"
-" çœç•¥å¯èƒ½ã€‚ SMTP サーãƒæŽ¥ç¶šã®èªè¨¼ã«ãŠã‘るパスワード。\n"
-" 無指定ã®å ´åˆã€ 対話的ãªå®Ÿè¡Œã§ã‚ã‚Œã°ã€\n"
-" パスワード入力プロンプトãŒè¡¨ç¤ºã•ã‚Œã¾ã™ãŒã€\n"
-" éžå¯¾è©±çš„ãªå®Ÿè¡Œã§ã‚ã‚Œã°ã€ 処ç†ãŒä¸­æ–­ã•ã‚Œã¾ã™ã€‚\n"
-" デフォルト値: none"
-
-msgid ""
-"``local_hostname``\n"
-" Optional. It's the hostname that the sender can use to identify\n"
-" itself to the MTA."
-msgstr ""
-"``local_hostname``\n"
-" çœç•¥å¯èƒ½ã€‚ MTA ã«å¯¾ã—ã¦ã€ é€ä¿¡å…ƒã‚’指定ã™ã‚‹ãŸã‚ã®ãƒ›ã‚¹ãƒˆå。"
-
-msgid ""
-"\n"
"``subpaths``\n"
-"------------"
+"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``subpaths``\n"
-"------------"
-msgid ""
-"Subrepository source URLs can go stale if a remote server changes name\n"
-"or becomes temporarily unavailable. This section lets you define\n"
-"rewrite rules of the form::"
+msgid "Defines subrepositories source locations rewriting rules of the form::"
msgstr ""
-"連æºå…ˆãƒ›ã‚¹ãƒˆã®å称変更や一時的ãªåœæ­¢ãªã©ã§ã€ 副リãƒã‚¸ãƒˆãƒªã®å‚照先 URL ãŒã€\n"
-"無効ã«ãªã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ 本セクションã§ã¯ã€ å‚照先 URL ã®æ›¸ãæ›ãˆã‚’ã€\n"
-"以下ã®å½¢å¼ã§è¨˜è¿°ã§ãã¾ã™::"
msgid " <pattern> = <replacement>"
-msgstr " <パターン> = <ç½®æ›çµæžœ>"
+msgstr ""
msgid ""
-"where ``pattern`` is a regular expression matching a subrepository\n"
-"source URL and ``replacement`` is the replacement string used to\n"
-"rewrite it. Groups can be matched in ``pattern`` and referenced in\n"
-"``replacements``. For instance::"
+"Where ``pattern`` is a regular expression matching the source and\n"
+"``replacement`` is the replacement string used to rewrite it. Groups\n"
+"can be matched in ``pattern`` and referenced in ``replacements``. For\n"
+"instance::"
msgstr ""
-"``パターン`` ã«ã¯å‰¯ãƒªãƒã‚¸ãƒˆãƒªã®å‚照先 URL ã«åˆè‡´ã™ã‚‹æ­£è¦è¡¨ç¾ã‚’ã€\n"
-"``ç½®æ›çµæžœ`` ã«ã¯å‚照先 URL ã®æ›¸ãæ›ãˆçµæžœã‚’記述ã—ã¾ã™ã€‚\n"
-"``パターン`` ã§ã®ã‚°ãƒ«ãƒ¼ãƒ—表記ã¸ã®åˆè‡´ã¯ã€``ç½®æ›çµæžœ`` ã§å‚ç…§å¯èƒ½ã§ã™ã€‚\n"
-"記述例を以下ã«ç¤ºã—ã¾ã™::"
msgid " http://server/(.*)-hg/ = http://hg.server/\\1/"
-msgstr " http://server/(.*)-hg/ = http://hg.server/\\1/"
+msgstr ""
msgid "rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``."
msgstr ""
-"上記設定ã«ã‚ˆã£ã¦ã€ ``http://server/foo-hg/`` ã¯\n"
-"``http://hg.server/foo/`` ã«æ›¸ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚"
-msgid ""
-"Relative subrepository paths are first made absolute, and the\n"
-"rewrite rules are then applied on the full (absolute) path. The rules\n"
-"are applied in definition order."
+msgid "All patterns are applied in definition order."
msgstr ""
-"副リãƒã‚¸ãƒˆãƒªã®å‚照先 URL ãŒç›¸å¯¾ãƒ‘スã®å ´åˆã€ 書ãæ›ãˆã®``パターン``ã¯ã€\n"
-"å‚照先 URL を絶対パス化ã—ãŸå¾Œã§ã€ 絶対パス全体ã«é©ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-"書ãæ›ãˆã®é©ç”¨ã¯ã€ 記述順ã«å®Ÿæ–½ã•ã‚Œã¾ã™ã€‚"
msgid ""
"``trusted``\n"
-"-----------"
+"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``trusted``\n"
-"-----------"
msgid ""
"Mercurial will not use the settings in the\n"
@@ -17355,13 +13000,6 @@ msgid ""
"the web interface will use some safe settings from the ``[web]``\n"
"section."
msgstr ""
-"Mercurial ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ ä»»æ„ã®ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œã‚’å¯èƒ½ã«ã§ãã‚‹ã“ã¨ã‹ã‚‰ã€\n"
-"ä¿¡é ¼ã§ãるユーザï¼ã‚°ãƒ«ãƒ¼ãƒ—ã«å±žã•ãªã„設定ファイルã¯ã€\n"
-"ãã®è¨˜è¿°å†…容ãŒç„¡è¦–ã•ã‚Œã¾ã™ã€‚ 共有リãƒã‚¸ãƒˆãƒªã‚„〠リãƒã‚¸ãƒˆãƒªã‚µãƒ¼ãƒã®\n"
-"``.hg/hgrc`` ã«ãŠã‘るフックやエクステンション設定ã§ã¯ã€\n"
-"ã—ã°ã—ã°ã“ã®å•é¡ŒãŒé¡•åœ¨åŒ–ã—ã¾ã™ã€‚\n"
-"但ã—〠web インタフェースã«é–¢ã—ã¦ã¯ã€\n"
-"``[web]`` セクションã«ãŠã‘る〠安全ãªè¨­å®šè¨˜è¿°ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid ""
"This section specifies what users and groups are trusted. The\n"
@@ -17370,42 +13008,25 @@ msgid ""
"*already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the\n"
"user or service running Mercurial."
msgstr ""
-"設定ファイルã®æ‰€æœ‰è€…ãªã„ã—グループãŒã€\n"
-"本セクションã§è¨˜è¿°ã—ãŸã€ ユーザãªã„ã—グループã¨åˆè‡´ã™ã‚‹å ´åˆã€\n"
-"ãã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã¯ *ä¿¡é ¼* ã•ã‚Œã¾ã™ã€‚\n"
-"実効ユーザ (※ 訳注: 対象リãƒã‚¸ãƒˆãƒªä¸Šã§å®Ÿè¡Œã•ã‚Œã‚‹\n"
-"「プロセス〠ã®å®ŸåŠ¹ãƒ¦ãƒ¼ã‚¶) ã¯å¸¸ã«ä¿¡é ¼å¯¾è±¡ã«ãªã‚Šã¾ã™ã€‚\n"
-"å…¨ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä¿¡é ¼ã™ã‚‹å ´åˆã¯ã€ ユーザï¼ã‚°ãƒ«ãƒ¼ãƒ—設定ã®ã„ãšã‚Œã‹ã§\n"
-"``*`` を列挙ã—ã¦ãã ã•ã„。 本セクションã®è¨˜è¿°ãŒæœ‰åŠ¹ã«ãªã‚‹ãŸã‚ã«ã¯ã€\n"
-"*æ—¢ã«ä¿¡é ¼ã•ã‚Œã¦ã„るファイル* ã«ãŠã„ã¦è¨˜è¿°ã™ã‚‹å¿…è¦ãŒæœ‰ã‚Šã¾ã™ã€‚\n"
-"例ãˆã°ã€ Mercurial プロセスを実行ã—ã¦ã„るユーザやサービスã®\n"
-"``$HOME/.hgrc`` ファイルãªã©ãŒè©²å½“ã—ã¾ã™ã€‚"
msgid ""
"``users``\n"
" Comma-separated list of trusted users."
msgstr ""
-"``users``\n"
-" ä¿¡é ¼ã§ãるユーザã®ä¸€è¦§ (カンマ区切り)"
msgid ""
"``groups``\n"
" Comma-separated list of trusted groups."
msgstr ""
-"``groups``\n"
-" ä¿¡é ¼ã§ãるグループã®ä¸€è¦§ (カンマ区切り)"
msgid ""
"\n"
"``ui``\n"
-"------"
+"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``ui``\n"
-"------"
msgid "User interface controls."
-msgstr "ユーザインタフェースã«é–¢ã™ã‚‹è¨­å®šã€‚"
+msgstr ""
msgid ""
"``archivemeta``\n"
@@ -17414,11 +13035,6 @@ msgid ""
" by the :hg:`archive` command or downloaded via hgweb.\n"
" Default is True."
msgstr ""
-"``archivemeta``\n"
-" :hg:`archive` コマンドãªã„ã— hgweb 経由ã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã§å¾—られる\n"
-" アーカイブファイルã¸ã®ã€ メタデータ (リãƒã‚¸ãƒˆãƒªã®åˆæœŸãƒªãƒ“ジョンã¨ã€\n"
-" アーカイブ対象リビジョンã®ãƒãƒƒã‚·ãƒ¥å€¤) ã‚’ä¿æŒã™ã‚‹ .hg_archival.txt\n"
-" ファイル格ç´ã®æœ‰ç„¡ã€‚ デフォルト値: True"
msgid ""
"``askusername``\n"
@@ -17429,48 +13045,30 @@ msgid ""
" default ``USER@HOST`` is used instead.\n"
" Default is False."
msgstr ""
-"``askusername``\n"
-" コミットã«ãŠã‘るユーザåå•ã„åˆã‚ã›ã®æœ‰ç„¡ã€‚ True ã®å ´åˆã€\n"
-" ``$HGUSER`` ã‚‚ ``$EMAIL`` も設定ã•ã‚Œã¦ã„ãªã‘ã‚Œã°ã€\n"
-" ユーザåã®å•ã„åˆã‚ã›ã‚’è¡Œã„ã¾ã™ã€‚\n"
-" ユーザåãŒå…¥åŠ›ã•ã‚Œãªã„å ´åˆã€ ``ユーザå@ホストå`` ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" デフォルト値: False"
msgid ""
"``commitsubrepos``\n"
" Whether to commit modified subrepositories when committing the\n"
" parent repository. If False and one subrepository has uncommitted\n"
" changes, abort the commit.\n"
-" Default is False."
+" Default is True."
msgstr ""
-"``commitsubrepos``\n"
-" 親リãƒã‚¸ãƒˆãƒªã®ã‚³ãƒŸãƒƒãƒˆã«ãŠã‘る〠副リãƒã‚¸ãƒˆãƒªå¤‰æ›´ã®ã‚³ãƒŸãƒƒãƒˆã®è¦å¦ã€‚\n"
-" False ã®å ´åˆã«ã€ 変更ãŒæœªã‚³ãƒŸãƒƒãƒˆãªå‰¯ãƒªãƒã‚¸ãƒˆãƒªãŒã‚ã‚Œã°ã€\n"
-" コミット処ç†ã¯ä¸­æ–­ã•ã‚Œã¾ã™ã€‚ デフォルト値: False"
msgid ""
"``debug``\n"
" Print debugging information. True or False. Default is False."
msgstr ""
-"``debug``\n"
-" デãƒãƒƒã‚°æƒ…報表示è¦å¦ã®çœŸå½å€¤ã€‚ デフォルト値: False"
msgid ""
"``editor``\n"
" The editor to use during a commit. Default is ``$EDITOR`` or ``vi``."
msgstr ""
-"``editor``\n"
-" コミットログ入力用エディタ。 無指定ã®å ´åˆã€ ``$EDITOR`` ãªã„ã—\n"
-" ``vi`` ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid ""
"``fallbackencoding``\n"
" Encoding to try if it's not possible to decode the changelog using\n"
" UTF-8. Default is ISO-8859-1."
msgstr ""
-"``fallbackencoding``\n"
-" UTF-8 ã«ã‚ˆã‚‹ã‚³ãƒŸãƒƒãƒˆãƒ­ã‚°ã®å¤‰æ›ãŒå¤±æ•—ã—ãŸå ´åˆã«ä½¿ç”¨ã™ã‚‹ç¬¦å·åŒ–å½¢å¼ã€‚\n"
-" デフォルト値: ISO-8859-1"
msgid ""
"``ignore``\n"
@@ -17481,28 +13079,16 @@ msgid ""
" ``ignore.other = ~/.hgignore2``. For details of the ignore file\n"
" format, see the ``hgignore(5)`` man page."
msgstr ""
-"``ignore``\n"
-" ユーザ毎ã®ç„¡è¦–対象パターンファイルã®èª­ã¿è¾¼ã¿è¨­å®šã€‚\n"
-" 対象ファイルã®å½¢å¼ã¯ã€ リãƒã‚¸ãƒˆãƒªæ¯Žã® .hgignore ファイルã¨åŒã˜ã§ã™ã€‚\n"
-" 本指定ã«ã¯ã€ フック指定ã®æ–‡æ³•ãŒé©ç”¨å¯èƒ½ã§ã™ã€‚\n"
-" 複数ã®ç„¡è¦–指定ファイルã®èª­ã¿è¾¼ã¿ã¯ã€ ``ignore.other = ~/.hgignore2``\n"
-" ã®ã‚ˆã†ã«è¨˜è¿°ã—ã¾ã™ã€‚ 無視指定ファイル記述ã®è©³ç´°ã¯ã€\n"
-" ``hgignore(5)`` マニュアルをå‚ç…§ã—ã¦ãã ã•ã„。\n"
-" (※ 訳注: :hg:`help ignore` ã§ã‚‚å‚ç…§å¯èƒ½)"
msgid ""
"``interactive``\n"
" Allow to prompt the user. True or False. Default is True."
msgstr ""
-"``interactive``\n"
-" ユーザã¸ã®å•ã„åˆã‚ã›å¯å¦ã®çœŸå½å€¤ã€‚ デフォルト値: True"
msgid ""
"``logtemplate``\n"
" Template string for commands that print changesets."
msgstr ""
-"``logtemplate``\n"
-" リビジョン表示系コマンドãŒä½¿ç”¨ã™ã‚‹ãƒ†ãƒ³ãƒ—レート文字列。"
msgid ""
"``merge``\n"
@@ -17510,11 +13096,6 @@ msgid ""
" For more information on merge tools see :hg:`help merge-tools`.\n"
" For configuring merge tools see the ``[merge-tools]`` section."
msgstr ""
-"``merge``\n"
-" 手動マージã®éš›ã«è¡çªè§£æ¶ˆã‚’è¡Œã†ãƒ—ログラム。\n"
-" マージツールã«é–¢ã™ã‚‹è©³ç´°ã¯ :hg:`help merge-tools` ã‚’ã€\n"
-" マージツールã®è¨­å®šã«é–¢ã™ã‚‹è©³ç´°ã¯ ``[merge-tools]``\n"
-" セクションã®èª¬æ˜Žã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"``portablefilenames``\n"
@@ -17531,51 +13112,22 @@ msgid ""
" If set to ``abort``, the command is aborted.\n"
" On Windows, this configuration option is ignored and the command aborted."
msgstr ""
-"``portablefilenames``\n"
-" ファイルåå¯æ¬æ€§ç¢ºèªã®è¦å¦ã€‚\n"
-" ``warn``〠``ignore`` ãªã„ã— ``abort`` ã®ã„ãšã‚Œã‹ã€‚\n"
-" デフォルト値㯠``warn``。\n"
-" POSIX 環境ã«ãŠã‘ã‚‹ ``warn`` (ãªã„ã— ``true``) 設定ã§ã¯ã€\n"
-" å¯æ¬æ€§ã®ç„¡ã„åå‰ (例: ``AUX`` ã®ã‚ˆã†ãªäºˆç´„語や〠``:``\n"
-" ã®ã‚ˆã†ãªç‰¹æ®Šæ–‡å­—ã‚’å«ã‚“ã ã‚Šã€ 文字大å°ã®å•é¡Œã§ã€\n"
-" 既存ファイルã¨è¡çªã™ã‚‹ã‚ˆã†ãªã€ Windows 環境ã§åˆ©ç”¨ã§ããªã„ファイルå)\n"
-" ã‚’æŒã¤ãƒ•ã‚¡ã‚¤ãƒ«ãŒã€ 構æˆç®¡ç†å¯¾è±¡ã¨ã—ã¦è¿½åŠ ã•ã‚ŒãŸéš›ã«ã€\n"
-" 警告を発ã—ã¾ã™ã€‚\n"
-" ``ignore`` (ãªã„ã— ``false``) 設定ã§ã¯ã€ 警告ãŒç™ºã›ã‚‰ã‚Œã¾ã›ã‚“。\n"
-" ``abort`` 設定ã§ã¯ã€ コマンドã®å®Ÿè¡ŒãŒä¸­æ–­ã•ã‚Œã¾ã™ã€‚\n"
-" Windows 環境ã§ã¯ã€ 本設定ã¯ç„¡è¦–ã•ã‚Œã€ コマンド実行ã¯å¸¸ã«ä¸­æ–­ã•ã‚Œã¾ã™ã€‚"
msgid ""
"``quiet``\n"
" Reduce the amount of output printed. True or False. Default is False."
msgstr ""
-"``quiet``\n"
-" コマンド実行時ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸è¡¨ç¤ºæŠ‘æ­¢è¦å¦ã®çœŸå½å€¤ã€‚ デフォルト値: False"
msgid ""
"``remotecmd``\n"
" remote command to use for clone/push/pull operations. Default is ``hg``."
msgstr ""
-"``remotecmd``\n"
-" clone/push/pull 処ç†ã«ãŠã‘ã‚‹é éš”実行コマンド。 デフォルト値: ``hg``"
-
-msgid ""
-"``reportoldssl``\n"
-" Warn if an SSL certificate is unable to be due to using Python\n"
-" 2.5 or earlier. True or False. Default is True."
-msgstr ""
-"``reportoldssl``\n"
-" Python 2.5 以å‰ã®ä½¿ç”¨ã«ã‚ˆã‚Šã€ SSL 証明書ã®å‡¦ç†ãŒã§ããªã„å ´åˆã®ã€\n"
-" 警告表示を指定ã™ã‚‹çœŸå½å€¤ã€‚ デフォルト値: True"
msgid ""
"``report_untrusted``\n"
" Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a\n"
" trusted user or group. True or False. Default is True."
msgstr ""
-"``report_untrusted``\n"
-" ä¿¡é ¼ã§ãるユーザï¼ã‚°ãƒ«ãƒ¼ãƒ—下ã«ç„¡ã„ ``.hg/hgrc``\n"
-" ã®ç„¡è¦–ã«å¯¾ã™ã‚‹ã€ 警告è¦å¦ã®çœŸå½å€¤ã€‚ デフォルト値: True"
msgid ""
"``slash``\n"
@@ -17585,43 +13137,28 @@ msgid ""
" backslash character (``\\``)).\n"
" Default is False."
msgstr ""
-"``slash``\n"
-" パス区切りã§ã®ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ (``/``) 使用ã®è¦å¦ã€‚\n"
-" パス区切りãŒã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã§ã¯ãªã„環境 (例: ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ (``\\``)\n"
-" を使用ã™ã‚‹ Windows 環境) ã§ã®ã¿æ„味をæŒã¡ã¾ã™ã€‚\n"
-" デフォルト値: False"
msgid ""
"``ssh``\n"
" command to use for SSH connections. Default is ``ssh``."
msgstr ""
-"``ssh``\n"
-" SSH 接続ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã€‚ デフォルト値: ``ssh``"
msgid ""
"``strict``\n"
" Require exact command names, instead of allowing unambiguous\n"
" abbreviations. True or False. Default is False."
msgstr ""
-"``strict``\n"
-" コマンドå指定ã®åŽ³å¯†æ€§è¦å¦ (ï¼ çœç•¥æŒ‡å®šã®ç¦æ­¢) ã®çœŸå½å€¤ã€‚\n"
-" デフォルト値: False"
msgid ""
"``style``\n"
" Name of style to use for command output."
msgstr ""
-"``style``\n"
-" コマンド出力ã«ä½¿ç”¨ã™ã‚‹ã‚¹ã‚¿ã‚¤ãƒ«å指定。"
msgid ""
"``timeout``\n"
" The timeout used when a lock is held (in seconds), a negative value\n"
" means no timeout. Default is 600."
msgstr ""
-"``timeout``\n"
-" ロック解放待ã¡ã«ãŠã‘るタイムアウト時間指定 (å˜ä½: 秒)。\n"
-" 負値ã¯ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆç„¡ã—ã‚’æ„味ã—ã¾ã™ã€‚ デフォルト値: 600"
msgid ""
"``traceback``\n"
@@ -17630,11 +13167,6 @@ msgid ""
" on all exceptions, even those recognized by Mercurial (such as\n"
" IOError or MemoryError). Default is False."
msgstr ""
-"``traceback``\n"
-" Mercurial ã¯æœªçŸ¥ã®ä¾‹å¤–ã®ã¿ã€ トレースãƒãƒƒã‚¯ã‚’表示ã—ã¾ã™ã€‚\n"
-" 本設定㌠True ã®éš›ã¯ã€ Mercurial ã®æ—¢çŸ¥ã®ä¾‹å¤– (IOError ã‚„\n"
-" MemoryError) ã§ã‚ã£ã¦ã‚‚ã€ãƒˆãƒ¬ãƒ¼ã‚¹ãƒãƒƒã‚¯ã‚’表示ã—ã¾ã™ã€‚\n"
-" デフォルト値: False"
msgid ""
"``username``\n"
@@ -17647,32 +13179,17 @@ msgid ""
" ``username =`` in the system hgrc). Environment variables in the\n"
" username are expanded."
msgstr ""
-"``username``\n"
-" :hg:`commit` ã§ã®æ–°è¦ãƒªãƒ“ジョン作æˆã§è¨˜éŒ²ã•ã‚Œã‚‹ãƒ¦ãƒ¼ã‚¶å。\n"
-" 個人åã¨é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’使用ã™ã‚‹ã®ãŒä¸€èˆ¬çš„ã§ã™ã€‚\n"
-" (例: ``Fred Widget <fred@example.com>``)\n"
-" 無指定ã®å ´åˆã€ ``$EMAIL`` 指定値〠ãªã„ã— ``ユーザå@ホストå``\n"
-" ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ 設定ファイル㧠username ã«ç©ºå€¤ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€\n"
-" (Mercurial ã®å•ã„åˆã‚ã›ã‚’契機ã«) 手動ã§æŒ‡å®šã™ã‚‹ã‹ã€\n"
-" ä»–ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ« (例: システム毎設定ファイル㧠``username =``\n"
-" ãŒè¨˜è¿°ã•ã‚ŒãŸå ´åˆã¯ ``$HOME/.hgrc``) ã§ã®è¨­å®šãŒå¿…è¦ã§ã™ã€‚\n"
-" username 指定値ã§ã¯ã€ 環境変数ã®ç½®æ›ãŒå®Ÿæ–½ã•ã‚Œã¾ã™ã€‚"
msgid ""
"``verbose``\n"
" Increase the amount of output printed. True or False. Default is False."
msgstr ""
-"``verbose``\n"
-" 出力情報é‡å¢—加è¦å¦ã®çœŸå½å€¤ã€‚ デフォルト値: False"
msgid ""
"\n"
"``web``\n"
-"-------"
+"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``web``\n"
-"-------"
msgid ""
"Web interface configuration. The settings in this section apply to\n"
@@ -17680,9 +13197,6 @@ msgid ""
"run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI\n"
"and WSGI)."
msgstr ""
-"ウェブインタフェース設定。 本セクションã§ã®è¨­å®šã¯ã€ 組ã¿è¾¼ã¿ã‚¦ã‚§ãƒ–サーãƒ\n"
-"(:hg:`serve` ã§ã®å®Ÿè¡Œ) ã¨ã€ ウェブサーãƒä¸Šã§ã®ã‚¹ã‚¯ãƒªãƒ—ト (FastCGI ã‚„ WSGI\n"
-"å‘ã‘ã® ``hgweb.cgi`` ãŠã‚ˆã³ãã®æ´¾ç”Ÿ) ã®å®Ÿè¡Œã®ã€ä¸¡æ–¹ã«é©ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid ""
"The Mercurial webserver does no authentication (it does not prompt for\n"
@@ -17692,56 +13206,39 @@ msgid ""
"webserver to do authentication for you, or disable the authorization\n"
"checks."
msgstr ""
-"Mercurial ã®çµ„ã¿è¾¼ã¿ã‚¦ã‚§ãƒ–サーãƒã¯ã€ èªè¨¼ (authentication) ã‚’è¡Œã„ã¾ã›ã‚“\n"
-"(ユーザを確èªã™ã‚‹ãŸã‚ã®ã€ ユーザåやパスワードã®å…¥åŠ›ã‚’求ã‚ã¾ã›ã‚“) ãŒã€\n"
-"æ‰¿èª (authorization: アクセスå¯å¦ã®åˆ¤å®š) ã®æ©Ÿèƒ½ã¯ã‚ã‚Šã¾ã™\n"
-"(本セクションã§ã®è¨­å®šã‚’å…ƒã«ã€ èªè¨¼æ¸ˆã¿ãƒ¦ãƒ¼ã‚¶ã«å¯¾ã—ã¦å®Ÿæ–½)。\n"
-"利用ã™ã‚‹ã‚¦ã‚§ãƒ–サーãƒã®ã€ èªè¨¼æ©Ÿèƒ½ã‚’ Mercurial å‘ã‘ã«æ­£ã—ã設定ã™ã‚‹ã‹ã€\n"
-"Mercurial ã®æ‰¿èªæ©Ÿèƒ½ã‚’〠無効化ã—ã¦ãã ã•ã„。"
msgid ""
"For a quick setup in a trusted environment, e.g., a private LAN, where\n"
"you want it to accept pushes from anybody, you can use the following\n"
"command line::"
msgstr ""
-"ä¿¡é ¼ã§ãる環境 (例: ç§çš„㪠LAN é…下ã§ã€ å…¨ã¦ã®åˆ©ç”¨è€…ã« :hg:`push` 許å¯)\n"
-"ã«ãŠã„ã¦ã€ ç´ æ—©ãサーãƒã‚’ç«‹ã¡ä¸Šã’ãŸã„å ´åˆã€ 以下ã®èµ·å‹•å½¢å¼ãŒè‰¯ã„ã§ã—ょã†::"
msgid " $ hg --config web.allow_push=* --config web.push_ssl=False serve"
-msgstr " $ hg --config web.allow_push=* --config web.push_ssl=False serve"
+msgstr ""
msgid ""
"Note that this will allow anybody to push anything to the server and\n"
"that this should not be used for public servers."
msgstr ""
-"ã“ã®è¨­å®šã¯ã€ å…¨ã¦ã®åˆ©ç”¨è€…ã«ã€ サーãƒã¸ã® :hg:`push` を許å¯ã—ã¾ã™ã®ã§ã€\n"
-"公開サーãƒã§ä½¿ç”¨ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。"
msgid "The full set of options is:"
-msgstr "本セクションã§æŒ‡å®šå¯èƒ½ãªè¨­å®šé …目を〠以下ã«ç¤ºã—ã¾ã™:"
+msgstr ""
msgid ""
"``accesslog``\n"
" Where to output the access log. Default is stdout."
msgstr ""
-"``accesslog``\n"
-" アクセスログã®æ›¸ã出ã—先。 無指定時ã¯æ¨™æº–出力ã«å‡ºåŠ›ã€‚"
msgid ""
"``address``\n"
" Interface address to bind to. Default is all."
msgstr ""
-"``address``\n"
-" サーãƒã®å¾…ã¡ã†ã‘アドレス。 無指定時ã¯ãƒ›ã‚¹ãƒˆã®æŒã¤å…¨ã‚¢ãƒ‰ãƒ¬ã‚¹ã€‚"
msgid ""
"``allow_archive``\n"
" List of archive format (bz2, gz, zip) allowed for downloading.\n"
" Default is empty."
msgstr ""
-"``allow_archive``\n"
-" 利用å¯èƒ½ãªãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰å‘ã‘ã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–å½¢å¼ (bz2, gz, zip) 一覧。\n"
-" デフォルト値: 空(ダウンロードä¸å¯)"
msgid ""
"``allowbz2``\n"
@@ -17749,9 +13246,6 @@ msgid ""
" revisions.\n"
" Default is False."
msgstr ""
-"``allowbz2``\n"
-" (éžæŽ¨å¥¨) .tar.bz2 å½¢å¼ã§ã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ダウンロードã®å¯å¦ã€‚\n"
-" デフォルト値: False"
msgid ""
"``allowgz``\n"
@@ -17759,16 +13253,11 @@ msgid ""
" revisions.\n"
" Default is False."
msgstr ""
-"``allowgz``\n"
-" (éžæŽ¨å¥¨) .tar.gz å½¢å¼ã§ã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ダウンロードã®å¯å¦ã€‚\n"
-" デフォルト値: False"
msgid ""
"``allowpull``\n"
" Whether to allow pulling from the repository. Default is True."
msgstr ""
-"``allowpull``\n"
-" :hg:`pull` è¦æ±‚ã¸ã®å¿œç­”ã®å¯å¦ã€‚ デフォルト値: True"
msgid ""
"``allow_push``\n"
@@ -17779,13 +13268,6 @@ msgid ""
" be present in this list. The contents of the allow_push list are\n"
" examined after the deny_push list."
msgstr ""
-"``allow_push``\n"
-" :hg:`push` è¦æ±‚ã¸ã®å¿œç­”ã®å¯å¦ã€‚ 空ãªã„ã—未設定ã®å ´åˆã€ :hg:`push`\n"
-" è¦æ±‚ã¯å—ç†ã•ã‚Œã¾ã›ã‚“。 ``*`` ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€ 未èªè¨¼ãƒ¦ãƒ¼ã‚¶ã‚’å«ã‚€ã€\n"
-" å…¨ã¦ã®ãƒ¦ãƒ¼ã‚¶ãŒ :hg:`push` ã§ãã¾ã™ã€‚ ä»–ã®å€¤ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€\n"
-" èªè¨¼ã•ã‚ŒãŸãƒ¦ãƒ¼ã‚¶ã®ã†ã¡ã€ 本項目ã§åå‰ãŒåˆ—挙ã•ã‚ŒãŸãƒ¦ãƒ¼ã‚¶ã®ã¿ãŒã€\n"
-" :hg:`push` ã§ãã¾ã™ã€‚ 本設定ã®ç¢ºèªå®Ÿæ–½ã¯ã€ ``deny_push``\n"
-" 確èªã®å¾Œã§ã™ã€‚"
msgid ""
"``guessmime``\n"
@@ -17795,12 +13277,6 @@ msgid ""
" allow cross-site scripting attacks when serving untrusted\n"
" repositories. Default is False."
msgstr ""
-"``guessmime``\n"
-" ファイル内容ã®ç›´æŽ¥ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã«ãŠã‘る〠MIME 種別ã®åˆ¶å¾¡ã€‚\n"
-" True 設定ã®å ´åˆã€ ファイルã®æ‹¡å¼µå­ã‚’元㫠MIME 種別を推測ã—ã¾ã™ã€‚\n"
-" 例ãˆã°ã€ HTML ファイルã§ã¯ ``text/html`` ãŒä½¿ç”¨ã•ã‚Œã¾ã™ãŒã€\n"
-" 信用ã§ããªã„リãƒã‚¸ãƒˆãƒªã‚’公開ã—ãŸå ´åˆã€ cross site scripting\n"
-" 攻撃ã®åŽŸå› ã¨ãªã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚ デフォルト値: False"
msgid ""
"``allow_read``\n"
@@ -17814,23 +13290,12 @@ msgid ""
" is permitted to all users). The contents of the allow_read list are\n"
" examined after the deny_read list."
msgstr ""
-"``allow_read``\n"
-" アクセス元ユーザ㌠``deny_read`` ã«ã‚ˆã‚‹åˆ¶é™ã‚’å—ã‘ã¦ã„ãªã„å ´åˆã®ã€\n"
-" 当該ユーザã®ã‚¢ã‚¯ã‚»ã‚¹å¯å¦ã®åˆ¶å¾¡ã€‚ 本設定ãŒç©ºã®å ´åˆã€ 未èªè¨¼ãƒ¦ãƒ¼ã‚¶ã‚„ã€\n"
-" 本設定ã§åå‰ãŒåˆ—挙ã•ã‚Œã¦ã„ãªã„ユーザã¯ã€ アクセスãŒæ‹’å¦ã•ã‚Œã¾ã™ã€‚\n"
-" 本設定ãŒç©ºã€ ãªã„ã—未設定ã®å ´åˆã€ å…¨ã¦ã®ãƒ¦ãƒ¼ã‚¶ãŒã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½ã§ã™ã€‚\n"
-" ``allow_read`` ã‚’ ``*`` ã«è¨­å®šã™ã‚‹ã®ã¯ã€ 未設定 (ï¼ å…¨ãƒ¦ãƒ¼ã‚¶ã¸ã®è¨±å¯)\n"
-" ã¨ç­‰ä¾¡ã§ã™ã€‚ 本設定ã®ç¢ºèªå®Ÿæ–½ã¯ã€ ``deny_read`` 確èªã®å¾Œã§ã™ã€‚"
msgid ""
"``allowzip``\n"
" (DEPRECATED) Whether to allow .zip downloading of repository\n"
" revisions. Default is False. This feature creates temporary files."
msgstr ""
-"``allowzip``\n"
-" (éžæŽ¨å¥¨) .zip å½¢å¼ã§ã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ダウンロードã®å¯å¦ã€‚\n"
-" 本機能を有効ã«ã—ãŸå ´åˆã€ 一時ファイルãŒä½œæˆã•ã‚Œã¾ã™ã€‚\n"
-" デフォルト値: False"
msgid ""
"``baseurl``\n"
@@ -17838,11 +13303,6 @@ msgid ""
" third-party tools like email notification hooks can construct\n"
" URLs. Example: ``http://hgserver/repos/``."
msgstr ""
-"``baseurl``\n"
-" 外部ã¸ã® URL 公開ã§ä½¿ç”¨ã™ã‚‹ãƒ™ãƒ¼ã‚¹ URL。\n"
-" é›»å­ãƒ¡ãƒ¼ãƒ«é€šçŸ¥ãƒ•ãƒƒã‚¯ç­‰ã®ã€ サードパーティツールã«ã‘ã‚‹ã€\n"
-" 公開用 URL ã®æ§‹ç¯‰ã‚’å¯èƒ½ã«ã—ã¾ã™ã€‚\n"
-" 設定例: ``http://hgserver/repos/``"
msgid ""
"``cacerts``\n"
@@ -17850,13 +13310,17 @@ msgid ""
" authority certificates. Environment variables and ``~user``\n"
" constructs are expanded in the filename. If specified on the\n"
" client, then it will verify the identity of remote HTTPS servers\n"
-" with these certificates."
+" with these certificates. The form must be as follows::"
+msgstr ""
+
+msgid ""
+" -----BEGIN CERTIFICATE-----\n"
+" ... (certificate in base64 PEM encoding) ...\n"
+" -----END CERTIFICATE-----\n"
+" -----BEGIN CERTIFICATE-----\n"
+" ... (certificate in base64 PEM encoding) ...\n"
+" -----END CERTIFICATE-----"
msgstr ""
-"``cacerts``\n"
-" PEM 符å·åŒ–å½¢å¼ã®è¨¼æ˜Žæ›¸èªè¨¼å±€è¨¼æ˜Žæ›¸ä¸€è¦§æ ¼ç´ãƒ•ã‚¡ã‚¤ãƒ«ã¸ã®ãƒ‘ス。\n"
-" ファイルå記述ã«ãŠã‘る環境変数ãŠã‚ˆã³ ``~user`` 記述ã¯ç½®æ›ã•ã‚Œã¾ã™ã€‚\n"
-" 本項目ãŒã€ クライアントå´ã§è¨˜è¿°ã•ã‚ŒãŸå ´åˆã€ 指定ã•ã‚ŒãŸè¨¼æ˜Žæ›¸ã«ã‚ˆã‚Šã€\n"
-" HTTPS サーãƒãŒèªè¨¼ã•ã‚Œã¾ã™ã€‚ ファイルã®å½¢å¼ä¾‹ã‚’以下ã«ç¤ºã—ã¾ã™::"
msgid ""
" This feature is only supported when using Python 2.6 or later. If you "
@@ -17865,76 +13329,29 @@ msgid ""
" version of the ssl library that is available from\n"
" ``http://pypi.python.org``."
msgstr ""
-" 本機能㯠Python 2.6 以é™ã§åˆ©ç”¨å¯èƒ½ã§ã™ã€‚ ãれ以å‰ã® Python ã«ãŠã„ã¦ã€\n"
-" 本機能を利用ã™ã‚‹å ´åˆã¯ã€ ``http://pypi.python.org`` ã‹ã‚‰å…¥æ‰‹ã§ãã‚‹\n"
-" SSL ライブラリã®å¾Œæ–¹ç§»æ¤ç‰ˆã‚’インストールã—ã¦ãã ã•ã„。"
-
-msgid ""
-" To disable SSL verification temporarily, specify ``--insecure`` from\n"
-" command line."
-msgstr ""
-" SSL ã®è¨¼æ˜Žæ›¸æ¤œè¨¼ã‚’〠一時的ã«åœæ­¢ã—ãŸã„å ´åˆã¯ã€ コマンドライン上ã§\n"
-" ``--insecure`` を指定ã—ã¦ãã ã•ã„。"
msgid ""
-" You can use OpenSSL's CA certificate file if your platform has\n"
-" one. On most Linux systems this will be\n"
-" ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to\n"
-" generate this file manually. The form must be as follows::"
+" You can use OpenSSL's CA certificate file if your platform has one.\n"
+" On most Linux systems this will be ``/etc/ssl/certs/ca-certificates."
+"crt``.\n"
+" Otherwise you will have to generate this file manually."
msgstr ""
-" OpenSSL ã® CA 証明書ファイルãŒã‚ã‚Œã°ã€ ãれを利用ã—ã¦ã‚‚構ã„ã¾ã›ã‚“。\n"
-" 多ãã® Linux システムã§ã¯ã€ ``/etc/ssl/certs/ca-certificates.crt``\n"
-" ã«æ ¼ç´ã•ã‚Œã¦ã„ã‚‹ç­ˆã§ã™ã€‚ ãれ以外ã¯ã€ 手動ã§ç”Ÿæˆã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚\n"
-" ファイルã®å½¢å¼ã‚’以下ã«ç¤ºã—ã¾ã™::"
msgid ""
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----\n"
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----"
+" To disable SSL verification temporarily, specify ``--insecure`` from\n"
+" command line."
msgstr ""
-" -----BEGIN CERTIFICATE-----\n"
-" ... (base64 PEM 符å·åŒ–å½¢å¼ã®è¨¼æ˜Žæ›¸) ...\n"
-" -----END CERTIFICATE-----\n"
-" -----BEGIN CERTIFICATE-----\n"
-" ... (base64 PEM 符å·åŒ–å½¢å¼ã®è¨¼æ˜Žæ›¸) ...\n"
-" -----END CERTIFICATE-----"
msgid ""
"``cache``\n"
" Whether to support caching in hgweb. Defaults to True."
msgstr ""
-"``cache``\n"
-" hgweb ã«ãŠã‘るキャッシュ利用ã®å¯å¦ã€‚ デフォルト値: True"
-
-msgid ""
-"``collapse``\n"
-" With ``descend`` enabled, repositories in subdirectories are shown at\n"
-" a single level alongside repositories in the current path. With\n"
-" ``collapse`` also enabled, repositories residing at a deeper level than\n"
-" the current path are grouped behind navigable directory entries that\n"
-" lead to the locations of these repositories. In effect, this setting\n"
-" collapses each collection of repositories found within a subdirectory\n"
-" into a single entry for that subdirectory. Default is False."
-msgstr ""
-" ``descend`` ãŒæœ‰åŠ¹ãªå ´åˆã€ サブディレクトリé…下ã®ãƒªãƒã‚¸ãƒˆãƒªç¾¤ã‚‚ã€\n"
-" å˜ä¸€ã®ä¸€è¦§ãƒšãƒ¼ã‚¸ã«è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ åŒæ™‚ã« ``collapse`` も有効ãªå ´åˆã€\n"
-" サブディレクトリé…下ã®ãƒªãƒã‚¸ãƒˆãƒªç¾¤ã¯ã€ 対応パスã¸ã®èª˜å°Žã‚’è¡Œã†ã€\n"
-" 専用ディレクトリé…下ã«ã€ã‚°ãƒ«ãƒ¼ãƒ—化ã•ã‚Œã¾ã™ã€‚ ã“ã®è¨­å®šã«ã‚ˆã£ã¦ã€\n"
-" サブディレクトリé…下ã®ãƒªãƒã‚¸ãƒˆãƒªè¡¨ç¤ºã¯ã€ å˜ä¸€ã®è¦ç´ ã«ã¾ã¨ã‚られã¾ã™ã€‚\n"
-" デフォルト値: Flase。"
msgid ""
"``contact``\n"
" Name or email address of the person in charge of the repository.\n"
" Defaults to ui.username or ``$EMAIL`` or \"unknown\" if unset or empty."
msgstr ""
-"``contact``\n"
-" リãƒã‚¸ãƒˆãƒªç®¡ç†è€…ã®åå‰ãªã„ã—é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã€‚\n"
-" 無指定ã®å ´åˆã€ ui.username 設定値〠``$EMAIL`` 設定値ãŒã€\n"
-" ãれらも未設定ï¼ç©ºå€¤ã®å ´åˆã¯ \"unknown\" ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid ""
"``deny_push``\n"
@@ -17944,12 +13361,6 @@ msgid ""
" any authenticated user name present in this list is also denied. The\n"
" contents of the deny_push list are examined before the allow_push list."
msgstr ""
-"``deny_push``\n"
-" :hg:`push` è¦æ±‚æ‹’å¦ã®è¦å¦ã€‚ 空ãªã„ã—未設定ã®å ´åˆã€ :hg:`push` ã¯ã€\n"
-" æ‹’å¦ã•ã‚Œã¾ã›ã‚“。 ``*`` ã®å ´åˆã€ :hg:`push` ã¯å…¨ã¦æ‹’å¦ã•ã‚Œã¾ã™ã€‚\n"
-" ãれ以外ã§ã¯ã€ 未èªè¨¼ãƒ¦ãƒ¼ã‚¶ã¨ã€ 本設定ã§åå‰ãŒåˆ—挙ã•ã‚ŒãŸãƒ¦ãƒ¼ã‚¶ã¯ã€\n"
-" :hg:`push` ãŒæ‹’å¦ã•ã‚Œã¾ã™ã€‚ 本設定ã®ç¢ºèªå®Ÿæ–½ã¯ã€ ``allow_push``\n"
-" 確èªã®å‰ã§ã™ã€‚"
msgid ""
"``deny_read``\n"
@@ -17967,18 +13378,6 @@ msgid ""
" priority over (are examined before) the contents of the allow_read\n"
" list."
msgstr ""
-"``deny_read``\n"
-" リãƒã‚¸ãƒˆãƒªã¸ã®ã‚¢ã‚¯ã‚»ã‚¹æ‹’å¦ã®è¦å¦ã€‚ 空値以外ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€\n"
-" 未èªè¨¼ãƒ¦ãƒ¼ã‚¶ã¨ã€ 本設定ã§åå‰ãŒåˆ—挙ã•ã‚ŒãŸãƒ¦ãƒ¼ã‚¶ã¯ã€\n"
-" リãƒã‚¸ãƒˆãƒªã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ãŒå…¨ã¦æ‹’å¦ã•ã‚Œã¾ã™ã€‚ ``*`` ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€\n"
-" å…¨ã¦ã®ã‚¢ã‚¯ã‚»ã‚¹ãŒæ‹’å¦ã•ã‚Œã¾ã™ (ã“ã®è¨­å®šãŒå¿…è¦ãªã‚±ãƒ¼ã‚¹ã¯ç„¡ã„ã§ã—ょã†)。\n"
-" 空ãªã„ã—未設定ã®å ´åˆã€ アクセスå¯å¦ã¯ ``allow_read`` 設定次第ã§ã™ã€‚\n"
-" (説明をå‚ç…§ã—ã¦ãã ã•ã„) ``deny_read`` 㨠``allow_read`` ãŒã€\n"
-" 両方ã¨ã‚‚空ãªã„ã—未設定ã®å ´åˆã€ å…¨ã¦ã®ãƒ¦ãƒ¼ã‚¶ãŒã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½ã¨ãªã‚Šã¾ã™ã€‚\n"
-" ウェブインタフェースã®ã€ ディレクトリ毎インデックページ経由ã§ã€\n"
-" リãƒã‚¸ãƒˆãƒªä¸€è¦§ãŒå…¬é–‹ã•ã‚Œã‚‹å ´åˆã€ アクセス拒å¦å¯¾å‡¦ãƒ¦ãƒ¼ã‚¶ã«å¯¾ã—ã¦ã¯ã€\n"
-" 一覧ã‹ã‚‰å½“該リãƒã‚¸ãƒˆãƒªãŒé™¤å¤–ã•ã‚Œã¾ã™ã€‚ ``deny_read`` ã§ã®è¨­å®šã¯ã€\n"
-" ``allow_read`` ã§ã®è¨­å®šã«å„ªå…ˆã—ã¾ã™ã€‚"
msgid ""
"``descend``\n"
@@ -17988,136 +13387,72 @@ msgid ""
"still\n"
" available from the index corresponding to their containing path)."
msgstr ""
-"``descend``\n"
-" ウェブインタフェースãŒè¡¨ç¤ºã™ã‚‹ã€ ディレクトリ毎ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ãƒšãƒ¼ã‚¸ã§ã€\n"
-" リãƒã‚¸ãƒˆãƒªä¸€è¦§ã‚’表示ã™ã‚‹éš›ã«ã€ 当該仮想パスé…下ã®ãƒªãƒã‚¸ãƒˆãƒªã‚’ã€\n"
-" å…¨ã¦è¡¨ç¤ºã™ã‚‹ã‹å¦ã‹ã®åˆ¶å¾¡ã€‚ (※ 訳注: デフォルト値㯠True)。\n"
-" å½å€¤ã®å ´åˆã€ 当該仮想パス直下ã®ãƒªãƒã‚¸ãƒˆãƒªã®ã¿ãŒåˆ—挙ã•ã‚Œã¾ã™ã€‚\n"
-" (表示ã•ã‚Œãªããªã‚‹ãƒªãƒã‚¸ãƒˆãƒªã‚‚〠親仮想パスã§ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ãƒšãƒ¼ã‚¸ã§ã¯ã€\n"
-" 列挙ã•ã‚Œã¾ã™) (※ 訳注: 本項目ã®ç¿»è¨³ã¯ã€ ã‚ã‹ã‚Šã‚„ã™ã•ã‚’é‡è¦–ã—ã¦ã€\n"
-" 原文ã‹ã‚‰å¤§å¹…ã«æ”¹å¤‰ã—ã¦ã‚ã‚Šã¾ã™ã€‚ é©å®œåŽŸæ–‡ã®ãƒ˜ãƒ«ãƒ—ã‚‚å‚ç…§ã—ã¦ãã ã•ã„)"
msgid ""
"``description``\n"
" Textual description of the repository's purpose or contents.\n"
" Default is \"unknown\"."
msgstr ""
-"``description``\n"
-" リãƒã‚¸ãƒˆãƒªå†…容ï¼ç”¨é€”ã«é–¢ã™ã‚‹èª¬æ˜Žãƒ†ã‚­ã‚¹ãƒˆã€‚ デフォルト値: \"unknown\""
msgid ""
"``encoding``\n"
" Character encoding name. Default is the current locale charset.\n"
" Example: \"UTF-8\""
msgstr ""
-"``encoding``\n"
-" 文字符å·åŒ–å½¢å¼ã€‚ 無指定ã®å ´åˆã€ サーãƒå®Ÿè¡Œæ™‚ã®ãƒ­ã‚±ãƒ¼ãƒ«è¨­å®šã‚’å…ƒã«ã€\n"
-" 符å·åŒ–å½¢å¼ãŒæ±ºå®šã•ã‚Œã¾ã™ã€‚ 設定例: \"UTF-8\""
msgid ""
"``errorlog``\n"
" Where to output the error log. Default is stderr."
msgstr ""
-"``errorlog``\n"
-" エラーログã®æ›¸ã出ã—先。 無指定時ã¯æ¨™æº–エラー出力ã«å‡ºåŠ›ã€‚"
-
-msgid ""
-"``comparisoncontext``\n"
-" Number of lines of context to show in side-by-side file comparison. If\n"
-" negative or the value ``full``, whole files are shown. Default is 5.\n"
-" This setting can be overridden by a ``context`` request parameter to "
-"the\n"
-" ``comparison`` command, taking the same values."
-msgstr ""
-"``comparisoncontext``\n"
-" ファイルã®å·®åˆ†æ¯”較を表示ã™ã‚‹éš›ã®ã€ コンテキスト行数。 負値ã¾ãŸã¯\n"
-" ``full`` 指定ã®å ´åˆã€ ファイル全体ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ デフォルト値㯠5。\n"
-" ``comparison`` è¦æ±‚時㫠``context`` パラメータを指定ã™ã‚‹ã“ã¨ã§ã€\n"
-" 設定を上書ãå¯èƒ½ã§ã™ã€‚"
msgid ""
"``hidden``\n"
" Whether to hide the repository in the hgwebdir index.\n"
" Default is False."
msgstr ""
-"``hidden``\n"
-" ウェブインタフェースã®ã€ ディレクトリ毎インデックスページã«ãŠã‘ã‚‹ã€\n"
-" リãƒã‚¸ãƒˆãƒªä¸€è¦§éš è”½ã®è¦å¦ã€‚ デフォルト値: False"
msgid ""
"``ipv6``\n"
" Whether to use IPv6. Default is False."
msgstr ""
-"``ipv6``\n"
-" IPv6 利用ã®è¦å¦ã€‚ デフォルト値: False"
-
-msgid ""
-"``logoimg``\n"
-" File name of the logo image that some templates display on each page.\n"
-" The file name is relative to ``staticurl``. That is, the full path to\n"
-" the logo image is \"staticurl/logoimg\".\n"
-" If unset, ``hglogo.png`` will be used."
-msgstr ""
-"``logoimg``\n"
-" å¹¾ã¤ã‹ã®è¡¨ç¤ºãƒ†ãƒ³ãƒ—レートã«ãŠã„ã¦ã€ å„ページã§è¡¨ç¤ºã•ã‚Œã‚‹ãƒ­ã‚´ã®ã€\n"
-" ç”»åƒãƒ•ã‚¡ã‚¤ãƒ«å。 ``staticurl`` ã«å¯¾ã™ã‚‹ç›¸å¯¾ãƒ‘スã§æŒ‡å®šã—ã¾ã™ã€‚\n"
-" ロゴ画åƒãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ•ãƒ«ãƒ‘スã¯ã€ \"staticurl/logoimg\" ã¨ãªã‚Šã¾ã™ã€‚\n"
-" デフォルト値: ``hglogo.png``"
msgid ""
"``logourl``\n"
" Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``\n"
" will be used."
msgstr ""
-"``logourl``\n"
-" ロゴ表示ã«ä½¿ç”¨ã™ã‚‹ãƒ™ãƒ¼ã‚¹ URL。 無指定時ã¯\n"
-" ``http://mercurial.selenic.com/``"
msgid ""
"``name``\n"
" Repository name to use in the web interface. Default is current\n"
" working directory."
msgstr ""
-"``name``\n"
-" ウェブインタフェースã§ä½¿ç”¨ã™ã‚‹ãƒªãƒã‚¸ãƒˆãƒªå。 無指定ã®å ´åˆã€\n"
-" 当該作業領域ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€‚"
msgid ""
"``maxchanges``\n"
" Maximum number of changes to list on the changelog. Default is 10."
msgstr ""
-"``maxchanges``\n"
-" changelog ç”»é¢ã«ãŠã‘る最大表示リビジョン数。 デフォルト値: 10"
msgid ""
"``maxfiles``\n"
" Maximum number of files to list per changeset. Default is 10."
msgstr ""
-"``maxfiles``\n"
-" リビジョンã‚ãŸã‚Šã®æœ€å¤§ä¸€è¦§è¡¨ç¤ºãƒ•ã‚¡ã‚¤ãƒ«æ•°ã€‚ デフォルト値: 10"
msgid ""
"``port``\n"
" Port to listen on. Default is 8000."
msgstr ""
-"``port``\n"
-" å¾…ã¡å—ã‘ãƒãƒ¼ãƒˆç•ªå·ã€‚ デフォルト値: 8000"
msgid ""
"``prefix``\n"
" Prefix path to serve from. Default is '' (server root)."
msgstr ""
-"``prefix``\n"
-" サービスæ供時ã®å‰ç½®ãƒ‘ス。 デフォルト値: '' (サーãƒãƒ¼ãƒ«ãƒ¼ãƒˆ)"
msgid ""
"``push_ssl``\n"
" Whether to require that inbound pushes be transported over SSL to\n"
" prevent password sniffing. Default is True."
msgstr ""
-"``push_ssl``\n"
-" :hg:`push` ã«ãŠã‘ã‚‹ SSL 接続è¦æ±‚ (パスワード盗è´é˜²æ­¢ ) ã®è¦å¦ã€‚\n"
-" デフォルト値: True"
msgid ""
"``staticurl``\n"
@@ -18126,34 +13461,22 @@ msgid ""
" this setting to serve them directly with the HTTP server.\n"
" Example: ``http://hgserver/static/``."
msgstr ""
-"``staticurl``\n"
-" é™çš„ファイル利用ã®ãƒ™ãƒ¼ã‚¹ URL。 未設定ã®å ´åˆã€ é™çš„ファイル (例:\n"
-" ã‚¢ã‚¤ã‚³ãƒ³ç”»åƒ hgicon.png) 㯠CGI スクリプト自身ãŒæä¾›ã—ã¾ã™ã€‚\n"
-" 本項目を設定ã™ã‚‹ã“ã¨ã§ã€ é™çš„ファイル㯠HTTP サーãƒãŒç›´æŽ¥æ‰±ã„ã¾ã™ã€‚\n"
-" 設定例: ``http://hgserver/static/``"
msgid ""
"``stripes``\n"
" How many lines a \"zebra stripe\" should span in multiline output.\n"
" Default is 1; set to 0 to disable."
msgstr ""
-"``stripes``\n"
-" 複数行出力ã«ãŠã‘ã‚‹ \"シマウマ模様\" ã®è¡Œæ•°ã€‚ デフォルト値: 1\n"
-" (0 指定ã§æ©Ÿèƒ½ç„¡åŠ¹åŒ–)"
msgid ""
"``style``\n"
" Which template map style to use."
msgstr ""
-"``style``\n"
-" 使用ã™ã‚‹ãƒ†ãƒ³ãƒ—レートスタイル。"
msgid ""
"``templates``\n"
" Where to find the HTML templates. Default is install path.\n"
msgstr ""
-"``templates``\n"
-" HTML テンプレートã®æ¤œç´¢å…ˆã€‚ 無指定時ã¯ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«å…ˆã€‚\n"
msgid "Some commands allow the user to specify a date, e.g.:"
msgstr "以下ã®ã‚³ãƒžãƒ³ãƒ‰ã§æ—¥æ™‚指定ãŒå¯èƒ½ã§ã™:"
@@ -18330,7 +13653,7 @@ msgstr ""
" Mercurial ã«ã‚ˆã‚‹ãƒ­ã‚±ãƒ¼ãƒ«è‡ªå‹•æ¤œå‡ºã®ä¸Šæ›¸ã。 ã“ã®è¨­å®šã¯ã€ ユーザåã€\n"
" コミットメッセージ〠タグåãŠã‚ˆã³ãƒ–ランãƒåを内部データ形å¼ã«å¤‰æ›ã™ã‚‹\n"
" éš›ã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ ã“ã®ç’°å¢ƒå¤‰æ•°è¨­å®šã¯ã€ コマンドラインã§ã® --encoding\n"
-" 使用ã«ã‚ˆã‚Šã€ æ›´ã«ä¸Šæ›¸ãã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
+" 使用ã«ã‚ˆã‚Šã€ æ›´ã«ä¸Šæ›¸ãã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚"
msgid ""
"HGENCODINGMODE\n"
@@ -18347,8 +13670,8 @@ msgstr ""
" 「指定ã®ç¬¦å·åŒ–ã¨åˆè‡´ã—ãªã„å ´åˆã¯å‡¦ç†ä¸­æ–­ã€ã‚’æ„味ã™ã‚‹ \"strict\" ãŒæŒ‡å®š\n"
" ã•ã‚ŒãŸã‚‚ã®ã¨ã¿ãªã—ã¾ã™ã€‚ ä»–ã«ã¯ã€ 「未知ã®æ–‡å­—ã®ç½®ãæ›ãˆã€ã‚’æ„味ã™ã‚‹\n"
" \"replace\" ã¨ã€ 「未知ã®æ–‡å­—ã®åˆ‡ã‚Šæ¨ã¦ã€ã‚’æ„味ã™ã‚‹ \"ignore\" ãŒæŒ‡å®š\n"
-" ã§ãã¾ã™ã€‚ ã“ã®ç’°å¢ƒå¤‰æ•°è¨­å®šã¯ã€ コマンドラインã§ã® --encodingmode\n"
-" 使用ã«ã‚ˆã‚Šã€ æ›´ã«ä¸Šæ›¸ãã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
+" 出æ¥ã¾ã™ã€‚ ã“ã®ç’°å¢ƒå¤‰æ•°è¨­å®šã¯ã€ コマンドラインã§ã® --encodingmode\n"
+" 使用ã«ã‚ˆã‚Šã€ æ›´ã«ä¸Šæ›¸ãã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚"
msgid ""
"HGENCODINGAMBIGUOUS\n"
@@ -18415,7 +13738,7 @@ msgstr ""
" ã“ã®ç’°å¢ƒå¤‰æ•°ãŒè¨­å®šã•ã‚ŒãŸå ´åˆã€ Mercurial ã®è¡¨ç¤ºè¨­å®šã‚’変更ã—å¾—ã‚‹\n"
" 設定ファイル中ã®è¨˜è¿°ãŒå…¨ã¦ç„¡è¦–ã•ã‚Œã¾ã™ã€‚\n"
" encoding ã‚„ defaults ã®æŒ‡å®šã€ verbose モード〠debug モードã€\n"
-" quiet モード〠トレースãƒãƒƒã‚¯è¡¨ç¤ºè¨­å®šã‚„å„国語設定ãŒå¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚\n"
+" quiet モード〠tracebacks ã‚„å„国語設定ãŒå¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚\n"
" ユーザ設定を温存ã—ãŸã¾ã¾ã§ã€\n"
" ツール等ã‹ã‚‰ Mercurial を使用ã™ã‚‹å ´åˆã«æœ‰ç”¨ã§ã™ã€‚"
@@ -18423,8 +13746,8 @@ msgid ""
" Equivalent options set via command line flags or environment\n"
" variables are not overridden."
msgstr ""
-" コマンドラインや環境変数ã«ã‚ˆã£ã¦ã€ åŒç­‰ã®ã‚ªãƒ—ションãŒã€\n"
-" 明示的ã«æŒ‡å®šã•ã‚ŒãŸå ´åˆã«ã¯ã€ ã“ららã¯ç„¡è¦–ã•ã‚Œã¾ã›ã‚“。"
+" コマンドラインや環境変数ã«ã‚ˆã£ã¦åŒç­‰ã®ã‚ªãƒ—ションãŒæ˜Žç¤ºçš„ã«æŒ‡å®šã•ã‚ŒãŸ\n"
+" å ´åˆã«ã¯ã€ ã“ららã¯ç„¡è¦–ã•ã‚Œã¾ã›ã‚“。"
msgid ""
"HGPLAINEXCEPT\n"
@@ -18450,8 +13773,8 @@ msgid ""
" available values will be considered in this order:"
msgstr ""
"HGUSER\n"
-" コミット時ã«è¨˜éŒ²ã™ã‚‹ã€ リビジョン作æˆè€…åã®æŒ‡å®šã€‚\n"
-" 作æˆè€…åã¨ã—ã¦æŽ¡ç”¨ã•ã‚Œã‚‹å€¤ã¯ã€ 以下ã®é †åºã§æ±ºå®šã•ã‚Œã¾ã™:"
+" ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆä½œæˆè€…ã¨ã—ã¦ã‚³ãƒŸãƒƒãƒˆæ™‚ã«è¨˜éŒ²ã™ã‚‹åå‰ã®æŒ‡å®šã€‚\n"
+" 作æˆè€…åã¨ã—ã¦æŽ¡ç”¨ã•ã‚Œã‚‹å€¤ã®æ±ºå®šé †åºã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™:"
msgid ""
" - HGUSER (deprecated)\n"
@@ -18471,7 +13794,7 @@ msgid ""
" May be used as the author of a commit; see HGUSER."
msgstr ""
"EMAIL\n"
-" リビジョン作æˆè€…ã¨ã—ã¦ã“ã®ç’°å¢ƒå¤‰æ•°å€¤ãŒè¨˜éŒ²ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚\n"
+" ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆä½œæˆè€…ã¨ã—ã¦ã“ã®ç’°å¢ƒå¤‰æ•°å€¤ãŒè¨˜éŒ²ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚\n"
" 詳細㯠HGUSER ã®è¨˜è¿°ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
@@ -18479,7 +13802,7 @@ msgid ""
" May be used as the author of a commit; see HGUSER."
msgstr ""
"LOGNAME\n"
-" リビジョン作æˆè€…ã¨ã—ã¦ã“ã®ç’°å¢ƒå¤‰æ•°å€¤ãŒè¨˜éŒ²ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚\n"
+" ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆä½œæˆè€…ã¨ã—ã¦ã“ã®ç’°å¢ƒå¤‰æ•°å€¤ãŒè¨˜éŒ²ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚\n"
" 詳細㯠HGUSER ã®è¨˜è¿°ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
@@ -18500,7 +13823,7 @@ msgid ""
" defaults to 'vi'."
msgstr ""
"EDITOR\n"
-" コミットログ入力時ã®ã‚ˆã†ã«ã€ エディタã§ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é–‹ãã€\n"
+" コミット時ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ã‚ˆã†ã«ã€ エディタã§ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é–‹ãã€\n"
" ユーザã«ã‚ˆã‚‹ç·¨é›†ã‚’促ã™çŠ¶æ³ãŒã‚ã‚Šã¾ã™ã€‚\n"
" ãã“ã§ä½¿ç”¨ã•ã‚Œã‚‹ã‚¨ãƒ‡ã‚£ã‚¿ã¯ã€ HGEDITOR〠VISUAL\n"
" ã‚ã‚‹ã„㯠EDITOR 環境変数ã«è¨­å®šã•ã‚ŒãŸã‚‚ã®ã‚’(ã“ã®é †åºã§)使用ã—ã¾ã™ã€‚\n"
@@ -18593,17 +13916,15 @@ msgstr ""
msgid ""
"Mercurial supports a functional language for selecting a set of\n"
"files. "
-msgstr "Mercurial ã¯ãƒ•ã‚¡ã‚¤ãƒ«æŒ‡å®šã®ãŸã‚ã®å•ã„åˆã‚ã›è¨€èªžã‚’æä¾›ã—ã¦ã„ã¾ã™ã€‚"
+msgstr ""
+"Mercurial ã¯ã€ 複数ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’一括指定ã™ã‚‹ãŸã‚ã®ã€\n"
+"å•ã„åˆã‚ã›è¨€èªžã‚’æä¾›ã—ã¦ã„ã¾ã™ã€‚"
msgid ""
"Like other file patterns, this pattern type is indicated by a prefix,\n"
"'set:'. The language supports a number of predicates which are joined\n"
"by infix operators. Parenthesis can be used for grouping."
msgstr ""
-"ä»–ã®ãƒ•ã‚¡ã‚¤ãƒ«ãƒ‘ターン指定ã¨åŒæ§˜ã«ã€ パターン種別ãŒå®šã‚られã¦ã„ã¦ã€\n"
-"'set:' 接頭辞ã§è¨˜è¿°ã‚’始ã‚ã¾ã™ã€‚ å•ã„åˆã‚ã›è¨€èªžã¯ã€Œè¿°èªžã€ (predicate)\n"
-"(※ 訳注: ã„ã‚ゆる「関数ã€çš„ãªã‚‚ã®) ã‚’æä¾›ã—ã¦ãŠã‚Šã€\n"
-"二項演算å­ã«ã‚ˆã‚‹çµåˆã‚„〠括弧ã«ã‚ˆã‚‹ã‚°ãƒ«ãƒ¼ãƒ—化もå¯èƒ½ã§ã™ã€‚"
msgid ""
"Identifiers such as filenames or patterns must be quoted with single\n"
@@ -18612,101 +13933,88 @@ msgid ""
"predefined predicates. This generally applies to file patterns other\n"
"than globs and arguments for predicates."
msgstr ""
-"ファイルåやパターンãŒã€ ``[.*{}[]?/\\_a-zA-Z0-9\\x80-\\xff]``\n"
-"以外ã®æ–‡å­—や〠既存ã®è¿°èªžã¨ä¸€è‡´ã™ã‚‹å ´åˆã€ 引用符(') ãªã„ã—二é‡å¼•ç”¨ç¬¦(\")\n"
-"ã§å›²ã£ã¦ãã ã•ã„。 ã“ã®ä»•æ§˜ã¯ã€ glob 対象や述語ã®å¼•æ•°ä»¥å¤–ã®ã€\n"
-"å…¨ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«ãƒ‘ターンã«é©ç”¨ã•ã‚Œã¾ã™ã€‚"
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 ""
-"エスケープ表記ã«ã‚ˆã‚Šã€ 引用符中ã®æ–‡å­—列中ã§ã€ 特殊文字を使用å¯èƒ½ã§ã™ã€‚\n"
-"例: ``\\n`` ã¯æ”¹è¡Œæ–‡å­—扱ã„。 特殊文字ã¨ã—ã¦è§£é‡ˆã•ã›ãŸããªã„å ´åˆã¯ã€\n"
-"文字列指定ã®å†’é ­ã« ``r`` を付ã‘ã¾ã™ã€‚ 例: ``r'...'``."
msgid "There is a single prefix operator:"
-msgstr "使用å¯èƒ½ãªå‰ç½®å˜é …演算å­ã‚’以下ã«åˆ—挙ã—ã¾ã™:"
+msgstr ""
msgid ""
"``not x``\n"
" Files not in x. Short form is ``! x``."
msgstr ""
-"``not x``\n"
-" ファイル群 x ã«å«ã¾ã‚Œãªã„ファイル。 ``! x`` ã¨ã‚‚表記å¯èƒ½ã€‚"
msgid "These are the supported infix operators:"
-msgstr "使用å¯èƒ½ãªäºŒé …演算å­ã‚’以下ã«åˆ—挙ã—ã¾ã™:"
+msgstr ""
msgid ""
"``x and y``\n"
" The intersection of files in x and y. Short form is ``x & y``."
msgstr ""
-"``x and y``\n"
-" ファイル群 x 㨠y ã®å…±é€šéƒ¨åˆ†ã€‚ ``x & y`` ã¨ã‚‚表記å¯èƒ½ã€‚"
msgid ""
"``x or y``\n"
" The union of files in x and y. There are two alternative short\n"
" forms: ``x | y`` and ``x + y``."
msgstr ""
-"``x or y``\n"
-" ファイル群 x 㨠y ã®ç·å’Œã€‚ ``x | y`` åˆã¯ ``x + y`` ã¨ã‚‚表記å¯èƒ½ã€‚"
msgid ""
"``x - y``\n"
" Files in x but not in y."
-msgstr " ファイル群 x ã®ã†ã¡ã€ y ã«å±žã•ãªã„ã‚‚ã®ã€‚"
+msgstr ""
msgid "The following predicates are supported:"
-msgstr "使用å¯èƒ½ãªè¿°èªžã‚’以下ã«åˆ—挙ã—ã¾ã™:"
+msgstr ""
msgid ".. predicatesmarker"
-msgstr ".. predicatesmarker"
+msgstr ""
msgid "Some sample queries:"
-msgstr "å•ã„åˆã‚ã›ã®è¨˜è¿°ä¾‹:"
+msgstr ""
msgid ""
"- Show status of files that appear to be binary in the working directory::"
-msgstr "- 作業領域中ã®ãƒã‚¤ãƒŠãƒªæ‰±ã„ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®çŠ¶æ…‹ã‚’表示::"
+msgstr ""
msgid " hg status -A \"set:binary()\""
-msgstr " hg status -A \"set:binary()\""
+msgstr ""
msgid "- Forget files that are in .hgignore but are already tracked::"
-msgstr "- .hgignore 対象ã®ä¸­ã§ã€ æ—¢ã«æ§‹æˆç®¡ç†ã•ã‚Œã¦ã„るファイルを登録除外::"
+msgstr ""
msgid " hg forget \"set:hgignore() and not ignored()\""
-msgstr " hg forget \"set:hgignore() and not ignored()\""
+msgstr ""
msgid "- Find text files that contain a string::"
-msgstr "- æ­£è¦è¡¨ç¾ magic ãŒå«ã¾ã‚Œã¦ã„るテキストファイルã®åå‰ã‚’表示::"
+msgstr ""
msgid " hg locate \"set:grep(magic) and not binary()\""
-msgstr " hg locate \"set:grep(magic) and not binary()\""
+msgstr ""
msgid "- Find C files in a non-standard encoding::"
-msgstr "- UTF-8 以外ã®æ–‡å­—コードを使ㆠC 言語ソースã®ãƒ•ã‚¡ã‚¤ãƒ«åを表示::"
+msgstr ""
-msgid " hg locate \"set:**.c and not encoding('UTF-8')\""
-msgstr " hg locate \"set:**.c and not encoding('UTF-8')\""
+msgid " hg locate \"set:**.c and not encoding(ascii)\""
+msgstr ""
msgid "- Revert copies of large binary files::"
-msgstr "- 指定サイズ以上ã§ãƒã‚¤ãƒŠãƒªæ‰±ã„ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®è¤‡è£½ã‚’å–り消ã—::"
+msgstr ""
msgid " hg revert \"set:copied() and binary() and size('>1M')\""
-msgstr " hg revert \"set:copied() and binary() and size('>1M')\""
+msgstr ""
msgid "- Remove files listed in foo.lst that contain the letter a or b::"
-msgstr "- foo.lst ã®ä¸€è¦§ä¸­ã§ a åˆã¯ b ã‚’åå‰ã«å«ã‚€ãƒ•ã‚¡ã‚¤ãƒ«ã‚’登録除外::"
+msgstr ""
msgid " hg remove \"set: 'listfile:foo.lst' and (**a* or **b*)\""
-msgstr " hg remove \"set: 'listfile:foo.lst' and (**a* or **b*)\""
+msgstr ""
msgid "See also :hg:`help patterns`.\n"
-msgstr ":hg:`help patterns` ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。\n"
+msgstr ""
msgid ""
"Ancestor\n"
@@ -18717,10 +14025,10 @@ msgid ""
" ancestor. See also: 'Descendant'."
msgstr ""
"Ancestor\n"
-" [祖先] 指定ã•ã‚ŒãŸãƒªãƒ“ジョンã‹ã‚‰ã€ 親リビジョンä¼ã„ã«åˆ°é”å¯èƒ½ãªã€\n"
-" ä»»æ„ã®ãƒªãƒ“ジョン。 より正確ã«ã¯ã€ ã‚るリビジョンã«ã¨ã£ã¦ã¯ã€\n"
-" 直接ã®è¦ªãƒªãƒ“ジョンã¯ç¥–å…ˆã§ã‚り〠祖先(ï¼ç›´æŽ¥ã®è¦ªãƒªãƒ“ジョンå«ã‚€)\n"
-" ã®è¦ªãƒªãƒ“ジョンも祖先ã¨ãªã‚Šã¾ã™ã€‚ 'Descendant' ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。"
+" [祖先] 指定ã•ã‚ŒãŸãƒªãƒ“ジョンã‹ã‚‰ã€ 親リビジョンを順ã«è¾¿ã‚‹äº‹ã§åˆ°é”\n"
+" å¯èƒ½ãªä»»æ„ã®ãƒªãƒ“ジョンã®ã“ã¨ã€‚ より正確ã«ã¯ã€ ã‚るリビジョンã«ã¨ã£ã¦ã¯\n"
+" 直接ã®è¦ªãƒªãƒ“ジョンã¯ç¥–å…ˆã§ã‚り〠祖先(ï¼ç›´æŽ¥ã®è¦ªãƒªãƒ“ジョンå«ã‚€)ã®\n"
+" 親リビジョンも祖先ã¨ãªã‚Šã¾ã™ã€‚ 'Descendant' ã‚‚å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
"Bookmark\n"
@@ -18730,11 +14038,6 @@ msgid ""
" ID, e.g., with :hg:`update`. Unlike tags, bookmarks move along\n"
" when you make a commit."
msgstr ""
-"Bookmark\n"
-" [ブックマーク] コミットã®éƒ½åº¦ç§»å‹•ã—ã¤ã¤ã€ 一定ã®ãƒªãƒ“ジョンを指ã™ã€\n"
-" 一種ã®ãƒã‚¤ãƒ³ã‚¿ã§ã™ã€‚ リビジョン指定ã®éš›ã«ã¯ã€ ã‚¿ã‚°ã¨åŒæ§˜ã«ã€\n"
-" 常ã«ãƒ–ックマークåを使用ã§ãã¾ã™: 例 :hg:`update` 対象。\n"
-" ã‚¿ã‚°ã¨ã®é•ã„ã¯ã€ コミットã®éƒ½åº¦ã€ ブックマークãŒç§»å‹•ã™ã‚‹ã“ã¨ã§ã™ã€‚"
msgid ""
" Bookmarks can be renamed, copied and deleted. Bookmarks are local,\n"
@@ -18742,10 +14045,6 @@ msgid ""
" Pushing and pulling bookmarks allow you to collaborate with others\n"
" on a branch without creating a named branch."
msgstr ""
-" ブックマークã¯ã€ 改å〠複製ãŠã‚ˆã³å‰Šé™¤å¯èƒ½ã§ã™ã€‚ リãƒã‚¸ãƒˆãƒªé–“ã§ã€\n"
-" 明示的ãªå映ï¼å–ã‚Šè¾¼ã¿ã‚’ã—ãªã„é™ã‚Šã€ ブックマークã¯ä¼æ’­ã—ã¾ã›ã‚“。\n"
-" ブックマークã®å映ï¼å–ã‚Šè¾¼ã¿ã«ã‚ˆã‚Šã€ ä»–ã®ãƒ¡ãƒ³ãƒãƒ¼ã¨ã®é€£æºã®éš›ã«ã€\n"
-" åå‰ä»˜ãブランãƒã®ä»£æ›¿ã¨ã—ã¦ã€ ブックマークãŒä½¿ç”¨å¯èƒ½ã¨ãªã‚Šã¾ã™ã€‚"
msgid ""
"Branch\n"
@@ -18756,14 +14055,13 @@ msgid ""
" an anonymous branch. See 'Branch, anonymous' and 'Branch, named'."
msgstr ""
"Branch\n"
-" (åè©ž) [ブランãƒ] ヘッドã§ã¯ãªã„ (ï¼ ä»–ã«å­ãƒªãƒ“ジョンをæŒã¤)\n"
-" リビジョンを親ã¨ã—ã¦ã€ 作æˆã•ã‚ŒãŸå­ãƒªãƒ“ジョン。\n"
-" ã“れ㯠「ä½ç›¸çš„ (topological) ブランãƒã€ ã¨å‘¼ã°ã‚Œã¾ã™ã€‚\n"
-" ('Branch, topological' å‚ç…§) ä½ç›¸çš„ブランãƒãŒåå‰ã‚’æŒã¤å ´åˆã¯\n"
-" 「åå‰ä»˜ãブランãƒã€ã€ åå‰ã‚’æŒãŸãªã„å ´åˆã¯ã€Œåå‰ç„¡ã—ブランãƒã€\n"
-" ã¨å‘¼ã°ã‚Œã¾ã™ã€‚ (※ 訳注: åå‰ã‚’「æŒã¤ï¼æŒãŸãªã„ã€ã¯ã€\n"
-" 「親ã¨ç•°ãªã‚‹åå‰ã€ã‚’æŒã¤ï¼æŒãŸãªã„〠をæ„味ã—ã¾ã™)\n"
-" 'Branch, anonymous' ãŠã‚ˆã³ 'Branch, named' ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。"
+" (åè©ž) [ブランãƒ] ヘッドã§ã¯ãªã„(ï¼ ä»–ã«å­ãƒªãƒ“ジョンをæŒã¤)\n"
+" リビジョンを親ã¨ã—ã¦ã€ æ–°è¦ã«ä½œæˆã•ã‚ŒãŸå­ãƒªãƒ“ジョンã®ã“ã¨ã€‚\n"
+" ã“ã‚Œã¯ã€Œä½ç›¸çš„ (topological) ブランãƒã€ã¨å‘¼ã°ã‚Œã¾ã™ã€‚\n"
+" ('Branch, topological' å‚ç…§) ä½ç›¸çš„ブランãƒã«åå‰ãŒä»˜ä¸Žã•ã‚ŒãŸå ´åˆã¯\n"
+" 「åå‰ä»˜ãブランãƒã€ã¨å‘¼ã°ã‚Œã¾ã™ã€‚ åå‰ã‚’æŒãŸãªã„ä½ç›¸çš„ブランãƒã¯ã€\n"
+" 「åå‰ç„¡ã—ブランãƒã€ã¨å‘¼ã°ã‚Œã¾ã™ã€‚ 'Branch, anonymous' ãŠã‚ˆã³\n"
+" 'Branch, named' ã‚‚å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
" Branches may be created when changes are pulled from or pushed to\n"
@@ -18774,13 +14072,13 @@ msgid ""
" explicitly with a named branch, but it can also be done locally,\n"
" using bookmarks or clones and anonymous branches."
msgstr ""
-" 連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã§ç”Ÿæˆã•ã‚ŒãŸãƒªãƒ“ジョンãŒã€ リãƒã‚¸ãƒˆãƒªé–“連æº\n"
-" (å映ï¼å–ã‚Šè¾¼ã¿) ã®éš›ã«ã€ æ–°è¦ãƒ˜ãƒƒãƒ‰ã¨ã—ã¦å–ã‚Šè¾¼ã¾ã‚Œã‚‹ã“ã¨ã§ã€\n"
-" ブランãƒãŒç”Ÿæˆã•ã‚Œã‚‹å ´åˆã‚‚ã‚ã‚Šã¾ã™ã€‚ 「ブランãƒã€ã¨ã„ã†å‘¼ç§°ã¯ã€\n"
-" 複数ã®è¦ä»¶ã«å¯¾ã—ã¦ã€ 個別ã«ä½œæ¥­ãŒè¡Œã‚れる状æ³ã‚’指ã™å ´åˆã‚‚ã‚ã‚Šã¾ã™ã€‚\n"
-" ã“ã®ã‚ˆã†ãªä½œæ¥­ã¯ã€ 明示的ã«åå‰ä»˜ãブランãƒã‚’作æˆã—ãŸä¸Šã§ã€\n"
-" 実施ã•ã‚Œã‚‹ã“ã¨ã‚‚ã‚ã‚Œã°ã€ ローカルホスト上ã§ã€ ブックマーク機能やã€\n"
-" リãƒã‚¸ãƒˆãƒªè¤‡è£½ã¨åå‰ç„¡ã—ブランãƒã«ã‚ˆã£ã¦ã€ 実施ã•ã‚Œã‚‹å ´åˆã‚‚ã‚ã‚Šã¾ã™ã€‚"
+" ブランãƒã¯ã€ 別ã®ãƒªãƒã‚¸ãƒˆãƒªã¨ã®é–“ã§ã®é€£æº (å映ï¼å–ã‚Šè¾¼ã¿) ã®éš›ã«\n"
+" 連æºå…ˆã§ç”Ÿæˆã•ã‚ŒãŸãƒªãƒ“ジョンãŒæ–°è¦ãƒ˜ãƒƒãƒ‰ã¨ã—ã¦å–ã‚Šè¾¼ã¾ã‚Œã‚‹ã“ã¨ã§ã€\n"
+" 生æˆã•ã‚Œã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ 「ブランãƒã€ã¨ã„ã†å‘¼ç§°ã¯ã€ 利用者ãŒç‹¬ç«‹ã—ã¦\n"
+" 開発を行ã†éŽç¨‹ã‚’指ã™ã®ã«ä½¿ç”¨ã•ã‚Œã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ ã“ã®ã‚ˆã†ãªç›¸äº’ã«\n"
+" 独立ã—ãŸé–‹ç™ºã¯ã€ åå‰ä»˜ãブランãƒã‚’明示的ã«ä½œæˆã—ã¦å®Ÿæ–½ã•ã‚Œã‚‹ã“ã¨ã‚‚\n"
+" ã‚ã‚Œã°ã€ ブックマーク機能や〠複製ã¨åå‰ç„¡ã—ブランãƒã‚’使用ã™ã‚‹ã“ã¨ã§\n"
+" 実施ã•ã‚Œã‚‹å ´åˆã‚‚ã‚ã‚Šã¾ã™ã€‚"
msgid " Example: \"The experimental branch\"."
msgstr " 例: \"実験的ãª(開発用)ブランãƒ\""
@@ -18789,8 +14087,8 @@ msgid ""
" (Verb) The action of creating a child changeset which results in\n"
" its parent having more than one child."
msgstr ""
-" (å‹•è©ž) [ブランãƒã™ã‚‹/分å²ã™ã‚‹/æžåˆ†ã‹ã‚Œã™ã‚‹] ã‚るリビジョンã«ãŠã„ã¦ã€\n"
-" 2ã¤ç›®ä»¥é™ã®å­ãƒªãƒ“ジョンを作æˆã™ã‚‹æ“作。"
+" (å‹•è©ž) [ブランãƒã™ã‚‹/分å²ã™ã‚‹/æžåˆ†ã‹ã‚Œã™ã‚‹] ã‚るリビジョンã«ãŠã„ã¦\n"
+" å­ãƒªãƒ“ジョンãŒï¼’ã¤ä»¥ä¸Šã«ãªã‚‹ã‚ˆã†ãªãƒªãƒ“ジョンを作æˆã™ã‚‹æ“作ã®ã“ã¨ã€‚"
msgid " Example: \"I'm going to branch at X\"."
msgstr " 例: \"リビジョン X ã‹ã‚‰ãƒ–ランãƒã™ã‚‹\""
@@ -18802,20 +14100,16 @@ msgid ""
" branch is created."
msgstr ""
"Branch, anonymous\n"
-" [åå‰ç„¡ã—ブランãƒ/匿åブランãƒ] æ–°è¦ã«ä½œæˆã•ã‚ŒãŸãƒªãƒ“ジョンãŒã€\n"
-" ヘッドã§ã¯ãªã„ (ï¼ å­ãƒªãƒ“ジョンを他ã«æŒã¤) リビジョンを親ã«æŒã¡ã€\n"
-" 親ã¨åŒã˜ãƒ–ランãƒã«å±žã™ã‚‹å ´åˆã€ ãれをåå‰ç„¡ã—ブランãƒã¨ã¿ãªã—ã¾ã™ã€‚\n"
-" (※ 訳注: 良ãã‚る誤解ãŒã€ 『default ã«å±žã™ã‚‹å ´åˆã®ã¿ãŒåå‰ç„¡ã—ã€\n"
-" ã¨ã„ã†ã‚‚ã®ã§ã™ã€‚ default ã‚‚ 『default〠ã¨ã„ã†åå‰ã®ãƒ–ランãƒã§ã™ã€‚\n"
-" æžåˆ†ã‹ã‚Œã®éš›ã«ã€ 親ã¨ç•°ãªã‚‹ãƒ–ランãƒã«å±žã™ã‚‹ã‹å¦ã‹ãŒã€ åå‰ä»˜ãã¨ã€\n"
-" åå‰ç„¡ã—ã®å·®ç•°ã«ãªã‚Šã¾ã™ã€‚)"
+" [åå‰ç„¡ã—ブランãƒ/匿åブランãƒ] ヘッドã§ã¯ãªã„(ï¼ ä»–ã«å­ãƒªãƒ“ジョンを\n"
+" æŒã¤)リビジョンを親ã¨ã—ã¦ã€ æ–°è¦ã«ä½œæˆã•ã‚ŒãŸãƒªãƒ“ジョンãŒã€ 親ã¨åŒã˜\n"
+" ブランãƒã«å±žã™ã‚‹å ´åˆã€ åå‰ç„¡ã—ブランãƒãŒä½œæˆã•ã‚ŒãŸã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
msgid ""
"Branch, closed\n"
" A named branch whose branch heads have all been closed."
msgstr ""
"Branch, closed\n"
-" [閉鎖(ã•ã‚ŒãŸ)ブランãƒ] å…¨ã¦ã®ãƒ˜ãƒƒãƒ‰ãŒé–‰éŽ–ã•ã‚ŒãŸã€ åå‰ä»˜ãブランãƒã€‚"
+" [閉鎖ブランãƒ] å…¨ã¦ã®ãƒ˜ãƒƒãƒ‰ãŒé–‰éŽ–ã•ã‚ŒãŸã€ åå‰ä»˜ãブランãƒã®ã“ã¨ã€‚"
msgid ""
"Branch, default\n"
@@ -18823,17 +14117,15 @@ msgid ""
" assigned."
msgstr ""
"Branch, default\n"
-" [デフォルトブランãƒ] 所属ã™ã‚‹åå‰ä»˜ãブランãƒãŒã€ 明示ã•ã‚Œãªã„å ´åˆã«ã€\n"
-" æ–°è¦ãƒªãƒ“ジョンãŒå±žã™ã‚‹åå‰ä»˜ãブランãƒã€‚ (※ 訳注: 親リビジョンãŒã€\n"
-" 既㫠default 以外ã®åå‰ä»˜ãブランãƒã«å±žã™ã‚‹å ´åˆã€ 所属ブランãƒã¯ã€\n"
-" 明示ã•ã‚Œã¦ã„ã‚‹ã‚‚ã®ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™)"
+" [デフォルトブランãƒ] åå‰ä»˜ãブランãƒã¸ã®æ‰€å±žãŒã€ 明示的ã«æŒ‡å®š\n"
+" ã•ã‚Œãªã„リビジョンãŒå±žã™ã‚‹ãƒ–ランãƒã®ã“ã¨ã€‚"
msgid ""
"Branch head\n"
" See 'Head, branch'."
msgstr ""
"Branch head\n"
-" 'Head, branch' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" 'Head, branch' å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
"Branch, inactive\n"
@@ -18843,21 +14135,12 @@ msgid ""
" shows inactive branches by default, though they can be hidden with\n"
" :hg:`branches --active`."
msgstr ""
-"Branch, inactive\n"
-" [éžã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ–ランãƒ] ä½ç›¸çš„ãªãƒ˜ãƒƒãƒ‰ãŒç„¡ã„åå‰ä»˜ãブランãƒã¯ã€\n"
-" éžã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ–ランãƒã¨ã¿ãªã•ã‚Œã¾ã™ã€‚ 例ãˆã° default ブランãƒã«ã€\n"
-" 機能実装用ã®åå‰ä»˜ãブランãƒãŒãƒžãƒ¼ã‚¸ã•ã‚Œã‚‹ã¨ã€ 機能実装用ブランãƒã¯ã€\n"
-" éžã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã«ãªã‚Šã¾ã™ã€‚ :hg:`branches` ã¯ã€ --active 指定ãŒç„¡ã„å ´åˆã€\n"
-" éžã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ–ランãƒã‚‚表示ã—ã¾ã™ã€‚"
msgid ""
" NOTE: this concept is deprecated because it is too implicit.\n"
" Branches should now be explicitly closed using :hg:`commit\n"
" --close-branch` when they are no longer needed."
msgstr ""
-" 備考: 履歴ツリー構造を元ã«ã—ãŸã€ 暗黙的ãªçŠ¶æ³ã‚’å…ƒã«ã—ã¦ã„ã‚‹ã“ã¨ã‹ã‚‰ã€\n"
-" ã“ã®æ¦‚念ã®å¸¸ç”¨ã¯éžæŽ¨å¥¨ã§ã™ã€‚ ä¸è¦ã«ãªã£ãŸåå‰ä»˜ãブランãƒã¯ã€\n"
-" :hg:`commit --close-branch` ã«ã‚ˆã‚Šã€ 明示的ã«é–‰éŽ–ã—ã¦ãã ã•ã„。"
msgid ""
"Branch, named\n"
@@ -18869,13 +14152,12 @@ msgid ""
" branches."
msgstr ""
"Branch, named\n"
-" [åå‰ä»˜ãブランãƒ] åŒä¸€ã®ãƒ–ランãƒåã‚’æŒã¤ãƒªãƒ“ジョンã®é›†åˆã€‚\n"
-" åå‰ä»˜ãブランãƒã«å±žã™ã‚‹ãƒªãƒ“ジョンã¯ã€ ãã®å­ãƒªãƒ“ジョンもã€\n"
-" åŒã˜åå‰ä»˜ãブランãƒã«å±žã—ã¾ã™ã€‚ 別ãªåå‰ä»˜ãブランãƒã‚’ã€\n"
-" 明示的ã«æŒ‡å®šã™ã‚‹ã“ã¨ã§ã€ 次ã®ã‚³ãƒŸãƒƒãƒˆã§ç”Ÿæˆã•ã‚Œã‚‹å­ãƒªãƒ“ジョンã®ã€\n"
-" 所属ブランãƒã‚’変更ã§ãã¾ã™ã€‚ ブランãƒç®¡ç†ã®è©³ç´°ã¯ã€\n"
-" :hg:`help branch` 〠:hg:`help branches` ãŠã‚ˆã³\n"
-" :hg:`commit --close-branch` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" [åå‰ä»˜ãブランãƒ] åŒä¸€ã®ãƒ–ランãƒåã‚’æŒã¤ãƒªãƒ“ジョンã®é›†åˆã®ã“ã¨ã€‚\n"
+" åå‰ä»˜ãブランãƒã«å±žã™ã‚‹ãƒªãƒ“ジョンã®å­ãƒªãƒ“ジョンã¯ã€ åŒã˜åå‰ä»˜ã\n"
+" ブランãƒã«å±žã—ã¾ã™ã€‚ 明示的ã«æŒ‡å®šã™ã‚‹ã“ã¨ã§ã€ å­ãƒªãƒ“ジョンを別ãª\n"
+" åå‰ä»˜ãブランãƒã«æ‰€å±žã•ã›ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚ ブランãƒç®¡ç†ã®è©³ç´°ã¯ã€\n"
+" :hg:`help branch`〠:hg:`help branches` ãŠã‚ˆã³\n"
+" :hg:`commit --close-branch` ã‚’å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
" Named branches can be thought of as a kind of namespace, dividing\n"
@@ -18889,17 +14171,17 @@ msgstr ""
" åå‰ä»˜ãブランãƒã¯ã€ リãƒã‚¸ãƒˆãƒªã®å±¥æ­´ã‚’構æˆã™ã‚‹ãƒªãƒ“ジョン群をã€\n"
" é‡è¤‡ã®ç„¡ã„部分集åˆã¸ã¨åˆ†å‰²ã™ã‚‹ã€ åå‰ç©ºé–“ã®ä¸€ç¨®ã¨ã‚‚言ãˆã¾ã™ã€‚\n"
" åå‰ä»˜ãブランãƒã¯ã€ å¿…ãšã—ã‚‚ä½ç›¸çš„ブランãƒã§ã‚ã‚‹å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“。\n"
-" ã‚ã‚‹åå‰ä»˜ãブランム(default ã§ã‚‚å¯) ã®ãƒ˜ãƒƒãƒ‰ã¨ãªã‚‹ãƒªãƒ“ジョンを親ã«ã€\n"
-" 別ã®åå‰ä»˜ãブランãƒã‚’æ–°è¦ç”Ÿæˆã—ãŸå ´åˆã€ 元ブランãƒã«å¯¾ã—ã¦ã€\n"
-" 以後ã®æ–°è¦ãƒªãƒ“ジョン追加ãŒç„¡ã‘ã‚Œã°ã€ 元ブランãƒã¯ (ä½ç›¸çš„ãªæ„味ã§)\n"
-" 『分å²ã€ã—ãŸã®ã§ã¯ãªã〠åå‰ãŒä»˜ã„ã¦ã„ã‚‹ã ã‘ã¨è¨€ãˆã¾ã™ã€‚"
+" ä»»æ„ã®åå‰ä»˜ãブランãƒ(default ã§ã‚‚å¯)ã®ãƒ˜ãƒƒãƒ‰ã¨ãªã‚‹ãƒªãƒ“ジョンを\n"
+" 親ã¨ã—ã¦ã€ æ–°ãŸãªåå‰ä»˜ãブランãƒã‚’生æˆã—ãŸå ´åˆã€ å…ƒã¨ãªã‚‹ãƒ–ランãƒã«\n"
+" æ–°ãŸãªãƒªãƒ“ジョンãŒè¿½åŠ ã•ã‚Œãªã‘ã‚Œã°ã€ å…ƒã®ãƒ–ランãƒã¯ (ä½ç›¸çš„ãª\n"
+" ブランãƒã§ã¯ãªã) åå‰ä»˜ã‘ã®ãŸã‚ã ã‘ã®ãƒ–ランãƒã¨è¨€ãˆã¾ã™ã€‚"
msgid ""
"Branch tip\n"
" See 'Tip, branch'."
msgstr ""
"Branch tip\n"
-" 'Tip, branch' å‚ç…§ã—ã¦ãã ã•ã„。"
+" 'Tip, branch' å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
"Branch, topological\n"
@@ -18910,13 +14192,11 @@ msgid ""
" current, possibly default, branch."
msgstr ""
"Branch, topological\n"
-" [ä½ç›¸çš„ブランãƒ] ヘッドã§ã¯ãªã„ (ï¼ ä»–ã«å­ãƒªãƒ“ジョンをæŒã¤)\n"
-" リビジョンを親ã¨ã—ã¦ã€ æ–°è¦ã«ä½œæˆã•ã‚ŒãŸãƒªãƒ“ジョンã¯ã€ \n"
-" ä½ç›¸çš„ブランãƒã¨ãªã‚Šã¾ã™ã€‚ ä½ç›¸çš„ブランãƒã«åå‰ãŒä¸Žãˆã‚‰ã‚ŒãŸå ´åˆã€\n"
-" ãã‚Œã¯åå‰ä»˜ãブランãƒã¨ãªã‚Šã¾ã™ã€‚ (※ 訳注: åå‰ä»˜ãブランãƒã¯ã€\n"
-" å¿…ãšã—ã‚‚ä½ç›¸çš„ブランãƒã¨ã¯é™ã‚Šã¾ã›ã‚“) åå‰ãŒä¸Žãˆã‚‰ã‚Œãªã„å ´åˆã¯ã€\n"
-" ç¾è¡Œã®åå‰ä»˜ãブランム(一般的ã«ã¯ default) ã«ãŠã‘ã‚‹ã€\n"
-" åå‰ç„¡ã—ブランãƒã¨ãªã‚Šã¾ã™ã€‚"
+" [ä½ç›¸çš„ブランãƒ] ヘッドã§ã¯ãªã„(ï¼ ä»–ã«å­ãƒªãƒ“ジョンをæŒã¤)\n"
+" リビジョンを親ã¨ã—ã¦ã€ æ–°è¦ã«ä½œæˆã•ã‚ŒãŸãƒªãƒ“ジョンã¯ã€ ä½ç›¸çš„ブランãƒ\n"
+" ã¨ãªã‚Šã¾ã™ã€‚ ä½ç›¸çš„ブランãƒã«åå‰ãŒä¸Žãˆã‚‰ã‚ŒãŸå ´åˆã€ ãã‚Œã¯åå‰ä»˜ã\n"
+" ブランãƒã¨ãªã‚Šã¾ã™ã€‚ ä½ç›¸çš„ブランãƒã«åå‰ãŒä¸Žãˆã‚‰ã‚Œãªã„å ´åˆã€ ç¾è¡Œ\n"
+" ブランム(通常㯠default) ã«ãŠã‘ã‚‹ç„¡åブランãƒã¨ãªã‚Šã¾ã™ã€‚"
msgid ""
"Changelog\n"
@@ -18925,20 +14205,22 @@ msgid ""
" author, commit message, date, and list of changed files."
msgstr ""
"Changelog\n"
-" [変更履歴] å„リビジョンã®å†…容を〠リãƒã‚¸ãƒˆãƒªç™»éŒ²é †ã«è¨˜éŒ²ã—ãŸã‚‚ã®ã€‚\n"
-" 記録内容ã«ã¯ã€ 識別用ãƒãƒƒã‚·ãƒ¥å€¤ã€ 作æˆè€…å〠コミットログã€\n"
-" 日付〠ãŠã‚ˆã³å¤‰æ›´å¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã®ä¸€è¦§ãŒå«ã¾ã‚Œã¾ã™ã€‚"
+" [変更履歴/ãƒã‚§ãƒ³ã‚¸ãƒ­ã‚°] å„リビジョンã®å†…容を〠リãƒã‚¸ãƒˆãƒªã«ç™»éŒ²ã•ã‚ŒãŸ\n"
+" é †ã«è¨˜éŒ²ã—ãŸã‚‚ã®ã€‚ 記録内容ã«ã¯ã€ 識別用ãƒãƒƒã‚·ãƒ¥å€¤ã€ 作æˆè€…åã€\n"
+" コミットログ〠日付ãŠã‚ˆã³å¤‰æ›´å¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã®ä¸€è¦§ãŒå«ã¾ã‚Œã¾ã™ã€‚"
msgid ""
"Changeset\n"
" A snapshot of the state of the repository used to record a change."
msgstr ""
"Changeset\n"
-" [ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ] 変更記録ã®ãŸã‚ã®ãƒªãƒã‚¸ãƒˆãƒªçŠ¶æ…‹ã®ã‚¹ãƒŠãƒƒãƒ—ショット。\n"
-" (※ 訳注: æ­´å²çš„ãªçµŒç·¯ã‹ã‚‰ã€ ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã¨ãƒªãƒ“ジョンã¯ã€\n"
-" åŒã˜æ„味ã§ä½¿ç”¨ã•ã‚Œã‚‹ã‚±ãƒ¼ã‚¹ãŒå¤šã„ã§ã™ã€‚ Mercurial ã®ç¿»è¨³ã§ã¯ã€\n"
-" 概㭠「リビジョン〠ã¨è¨³ã—ã¦ã„ã¾ã™ãŒã€ 一部ã«ä¸çµ±ä¸€ãªéƒ¨åˆ†ã‚‚ã‚ã‚Šã¾ã™ã€‚\n"
-" 'Revision' ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。)"
+" [ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ] 変更内容ã®è¨˜éŒ²ã«ä½¿ç”¨ã™ã‚‹ã€ リãƒã‚¸ãƒˆãƒªçŠ¶æ…‹ã®\n"
+" スナップショット。 ※ 訳注: æ­´å²çš„ãªçµŒç·¯ã‹ã‚‰ã€ ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã¨\n"
+" リビジョンã¯é€šå¸¸ã€ åŒã˜æ„味ã§ä½¿ç”¨ã•ã‚Œã‚‹ã‚±ãƒ¼ã‚¹ãŒå¤šã„ã§ã™ã€‚ 日本語訳ã®\n"
+" éš›ã«ã¯ã€ 複数ファイルã«æ¸¡ã‚‹å·®åˆ†ä¸€å¼ã®ã“ã¨ã‚’指ã™å ´åˆã¯ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã€\n"
+" リãƒã‚¸ãƒˆãƒªã«ç™»éŒ²ã•ã‚Œã‚‹ã“ã¨ã§å±¥æ­´ä¸­ã®ä½ç½®ãŒç¢ºå®šæ¸ˆã¿ã®ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ\n"
+" ã®ã“ã¨ã¯ãƒªãƒ“ジョン〠ã¨å‘¼ç§°ã™ã‚‹ã“ã¨ãŒå¤šã„ã§ã™ãŒã€ å¿…ãšã—も統一\n"
+" ã•ã‚Œã¦ã„る訳ã§ã¯ã‚ã‚Šã¾ã›ã‚“。 'Revision' ã‚‚å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
"Changeset, child\n"
@@ -18947,9 +14229,12 @@ msgid ""
" changeset may have."
msgstr ""
"Changeset, child\n"
-" [å­(リビジョン)] 「親(リビジョン)〠ã®å¯¾ç¾©èªžã€‚\n"
-" リビジョン P ãŒãƒªãƒ“ジョン C ã®è¦ªã§ã‚ã‚‹å ´åˆã€ C 㯠P ã®å­ã¨ãªã‚Šã¾ã™ã€‚\n"
-" 親ã«å¯¾ã™ã‚‹å­ã®æ•°ã«ã¯ä¸Šé™ãŒã‚ã‚Šã¾ã›ã‚“。"
+" [å­ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ/å­ãƒªãƒ“ジョン] 「親リビジョンã€ã®å¯¾ç¾©èªžã€‚\n"
+" リビジョン P ãŒãƒªãƒ“ジョン C ã®è¦ªãƒªãƒ“ジョンã§ã‚ã‚‹å ´åˆã€ C 㯠P ã®\n"
+" å­ãƒªãƒ“ジョンã¨ãªã‚Šã¾ã™ã€‚ 1ã¤ã®è¦ªãƒªãƒ“ジョンã«å¯¾ã—ã¦ã€ å­ãƒªãƒ“ジョンã®\n"
+" æ•°ã«ã¯ä¸Šé™ãŒã‚ã‚Šã¾ã›ã‚“。 訳注: 親ï¼å­é–¢ä¿‚ã‚’æŒã¤ã€ ã¨ã„ã†ã“ã¨ã¯ã€\n"
+" 履歴中ã®ä½ç½®ãŒç¢ºå®šã—ã¦ã„ã‚‹ã“ã¨ã‚’æ„味ã™ã‚‹ãŸã‚〠ã“ã“ã§ã¯æ•¢ãˆã¦\n"
+" changeset を「リビジョンã€ã¨è¨³ã—ã¦ã„ã¾ã™ã€‚ 'Changeset' ã‚‚å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
"Changeset id\n"
@@ -18958,9 +14243,9 @@ msgid ""
" \"short\" 12 hexadecimal digit string."
msgstr ""
"Changeset id\n"
-" [リビジョンID/識別用ãƒãƒƒã‚·ãƒ¥å€¤] リビジョンを一æ„ã«è­˜åˆ¥ã™ã‚‹\n"
-" SHA-1 ãƒãƒƒã‚·ãƒ¥å€¤ã€‚ 40æ¡16進数ã¨ã—ã¦è¡¨ç¾ã•ã‚Œã‚‹ 「完全長〠ã®ã‚‚ã®ã¨ã€\n"
-" 12æ¡16進数ã¨ã—ã¦è¡¨ç¾ã•ã‚Œã‚‹ 「短縮〠形å¼ãŒã‚ã‚Šã¾ã™ã€‚"
+" [ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆID/識別用ãƒãƒƒã‚·ãƒ¥å€¤] ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã‚’一æ„ã«è­˜åˆ¥\n"
+" ã™ã‚‹ãŸã‚ã® SHA-1 ãƒãƒƒã‚·ãƒ¥å€¤ã€‚ 40 æ¡ 16 進数ã¨ã—ã¦è¡¨ç¾ã•ã‚Œã‚‹\n"
+" 「完全長ã€ã¨ã€ 12 æ¡ 16 進数ã¨ã—ã¦è¡¨ç¾ã•ã‚Œã‚‹ã€ŒçŸ­ç¸®ã€ã®å½¢å¼ãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
"Changeset, merge\n"
@@ -18968,8 +14253,11 @@ msgid ""
" committed."
msgstr ""
"Changeset, merge\n"
-" [マージリビジョン] 親リビジョンを2ã¤æŒã¤ãƒªãƒ“ジョン。\n"
-" :hg:`merge` 実施çµæžœã‚’〠コミットã™ã‚‹ã“ã¨ã§ç”Ÿæˆã•ã‚Œã¾ã™ã€‚"
+" [マージãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ/マージリビジョン] 親リビジョンを2ã¤æŒã¤\n"
+" リビジョン。 マージæ“作ãŒã‚³ãƒŸãƒƒãƒˆã•ã‚Œã‚‹éš›ã«ã“ã®ã‚ˆã†ãªãƒªãƒ“ジョンãŒ\n"
+" 生æˆã•ã‚Œã¾ã™ã€‚ ※ 訳注: 親ï¼å­é–¢ä¿‚ã‚’æŒã¤ã€ ã¨ã„ã†ã“ã¨ã¯ã€ 履歴中ã®\n"
+" ä½ç½®ãŒç¢ºå®šã—ã¦ã„ã‚‹ã“ã¨ã‚’æ„味ã™ã‚‹ãŸã‚〠ã“ã“ã§ã¯æ•¢ãˆã¦ changeset ã‚’\n"
+" 「リビジョンã€ã¨è¨³ã—ã¦ã„ã¾ã™ã€‚ 'Changeset' ã‚‚å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
"Changeset, parent\n"
@@ -18979,10 +14267,13 @@ msgid ""
" parents."
msgstr ""
"Changeset, parent\n"
-" [親(リビジョン)] å­ãƒªãƒ“ジョンã®ç”±æ¥å…ƒã¨ãªã‚‹ãƒªãƒ“ジョン。\n"
-" より明確ã«ã¯ã€ リビジョン C ã®è¦ªã¯ã€ (旧→新順ã®) 履歴ツリーã«ãŠã„ã¦ã€\n"
-" リビジョン C ã®ç›´å‰ã®ãƒªãƒ“ジョンを指ã—ã¾ã™ã€‚ å„リビジョンã®è¦ªã¯ã€\n"
-" 最大ã§ï¼’ã¤ã§ã™ã€‚"
+" [親ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ/親リビジョン] å­ãƒªãƒ“ジョンã®ç”±æ¥å…ƒã®ãƒªãƒ“ジョン。\n"
+" より明確ã«ã¯ã€ リビジョン C ã®è¦ªãƒªãƒ“ジョンã¯ã€ (旧→新順ã®) 履歴\n"
+" ツリーã«ãŠã„ã¦ã€ リビジョン C ã®ç›´å‰ã«ä½ç½®ã™ã‚‹ãƒªãƒ“ジョンを指ã—ã¾ã™ã€‚\n"
+" å„リビジョンã¯ã€ 最大㧠2 ã¤ã®è¦ªãƒªãƒ“ジョンをæŒã¡ã¾ã™ã€‚\n"
+" ※ 訳注: 親ï¼å­é–¢ä¿‚ã‚’æŒã¤ã€ ã¨ã„ã†ã“ã¨ã¯ã€ 履歴中ã®ä½ç½®ãŒç¢ºå®šã—ã¦ã„ã‚‹\n"
+" ã“ã¨ã‚’æ„味ã™ã‚‹ãŸã‚〠ã“ã“ã§ã¯æ•¢ãˆã¦ changeset を「リビジョンã€ã¨\n"
+" 訳ã—ã¦ã„ã¾ã™ã€‚ 'Changeset' ã‚‚å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
"Checkout\n"
@@ -18991,9 +14282,9 @@ msgid ""
" changeset is much more appropriate than checkout in this context."
msgstr ""
"Checkout\n"
-" [ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆ] (åè©ž) 指定リビジョンã®å†…容ã§ã€ æ›´æ–°ã•ã‚ŒãŸä½œæ¥­é ˜åŸŸã€‚\n"
-" åŒç­‰ã®æ„味を表ã™å ´åˆã€ 「リビジョン〠ã®æ–¹ãŒå¦¥å½“ãªã®ã§ã€\n"
-" ã“ã®ç”¨æ³•ã§ã®ä½¿ç”¨ã¯é¿ã‘ã¾ã—ょã†ã€‚"
+" (åè©ž) [ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆ] 指定ã—ãŸãƒªãƒ“ジョン時点ã®å†…容ã§æ›´æ–°ã•ã‚ŒãŸ\n"
+" 作業領域ã®ã“ã¨ã€‚ åŒç­‰ã®æ„味を表ã™å ´åˆã€ 「リビジョンã€ã®æ–¹ãŒå¦¥å½“ã§\n"
+" ã‚ã‚‹ãŸã‚〠ã“ã®ç”¨æ³•ã§ã®ä½¿ç”¨ã¯é¿ã‘ã‚‹ã¹ãã§ã™ã€‚"
msgid " Example: \"I'm using checkout X.\""
msgstr " 例: \"ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã—㟠X を使用ã™ã‚‹ã€‚\""
@@ -19002,8 +14293,8 @@ msgid ""
" (Verb) Updating the working directory to a specific changeset. See\n"
" :hg:`help update`."
msgstr ""
-" (å‹•è©ž) 指定リビジョンã§ã®ä½œæ¥­é ˜åŸŸã®æ›´æ–°ã€‚ :hg:`help update`\n"
-" ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。"
+" (å‹•è©ž) [ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã™ã‚‹] 指定ã—ãŸãƒªãƒ“ジョンã®å†…容ã§ã€ 作業領域を\n"
+" æ›´æ–°ã™ã‚‹ã“ã¨ã€‚ :hg:`help update` ã‚‚å‚ç…§ã®ã“ã¨ã€‚"
msgid " Example: \"I'm going to check out changeset X.\""
msgstr " 例: \"リビジョン X ã‚’ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã™ã‚‹ã€‚\""
@@ -19013,21 +14304,21 @@ msgid ""
" See 'Changeset, child'."
msgstr ""
"Child changeset\n"
-" 'Changeset, child' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" 'Changeset, child' ã‚’å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
"Close changeset\n"
-" See 'Head, closed branch'"
+" See 'Changeset, close'."
msgstr ""
"Close changeset\n"
-" 'Head, closed branch' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" 'Changeset, close' ã‚’å‚ç…§ã®ã“㨠※ 訳注: 'Branch, closed' ã®é–“é•ã„ã‹ï¼Ÿ"
msgid ""
"Closed branch\n"
" See 'Branch, closed'."
msgstr ""
"Closed branch\n"
-" 'Branch, closed' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" 'Branch, closed' ã‚’å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
"Clone\n"
@@ -19035,16 +14326,16 @@ msgid ""
" clone must be in the form of a revision and its ancestors."
msgstr ""
"Clone\n"
-" (åè©ž) [複製(リãƒã‚¸ãƒˆãƒª)] ã‚るリãƒã‚¸ãƒˆãƒªã®å…¨ä½“〠ãªã„ã—一部ã‹ã‚‰ã€\n"
-" 複製ã•ã‚ŒãŸãƒªãƒã‚¸ãƒˆãƒªã€‚ 部分複製リãƒã‚¸ãƒˆãƒªã®æŒã¤å¤‰æ›´å±¥æ­´ã¯ã€\n"
-" 指定リビジョンã¨ã€ ãã®ç¥–å…ˆã‹ã‚‰æ§‹æˆã•ã‚Œã¾ã™ã€‚"
+" (åè©ž) [複製(リãƒã‚¸ãƒˆãƒª)] ã‚るリãƒã‚¸ãƒˆãƒªã‹ã‚‰ã€ 全体ãªã„ã—一部を複製\n"
+" ã—ãŸãƒªãƒã‚¸ãƒˆãƒªã®ã“ã¨ã€‚ 部分複製リãƒã‚¸ãƒˆãƒªã®æŒã¤å¤‰æ›´å±¥æ­´ã¯ã€\n"
+" 指定リビジョンã¨ãã®ç¥–å…ˆã‹ã‚‰æ§‹æˆã•ã‚Œã¾ã™ã€‚"
msgid " Example: \"Is your clone up to date?\"."
msgstr " 例: \"ã‚ãªãŸã®è¤‡è£½(リãƒã‚¸ãƒˆãƒª)ã¯æœ€æ–°ã§ã™ã‹ï¼Ÿ\""
msgid " (Verb) The process of creating a clone, using :hg:`clone`."
msgstr ""
-" (å‹•è©ž) [(リãƒã‚¸ãƒˆãƒªã®)複製] 複製リãƒã‚¸ãƒˆãƒªã‚’作æˆã™ã‚‹æ“作。\n"
+" (å‹•è©ž) [(リãƒã‚¸ãƒˆãƒªã®)複製] 複製リãƒã‚¸ãƒˆãƒªã‚’作æˆã™ã‚‹æ“作ã®ã“ã¨ã€‚\n"
" :hg:`clone` を使用ã—ã¾ã™ã€‚"
msgid " Example: \"I'm going to clone the repository\"."
@@ -19055,14 +14346,17 @@ msgid ""
" See 'Head, closed branch'."
msgstr ""
"Closed branch head\n"
-" 'Head, closed branch' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+" 'Head, closed branch' ã‚’å‚ç…§ã®ã“ã¨ã€‚"
msgid ""
"Commit\n"
" (Noun) A synonym for changeset."
msgstr ""
"Commit\n"
-" [コミット] (åè©ž) リビジョンã®åˆ¥ç§°ã€‚"
+" (åè©ž) [コミット] リビジョンã®åˆ¥ç§°ã€‚ ※ 訳注: コミット済ã¿\n"
+" ã¨ã„ã†ã“ã¨ã¯ã€ 履歴中ã®ä½ç½®ãŒç¢ºå®šã—ã¦ã„ã‚‹ã“ã¨ã‚’æ„味ã™ã‚‹ãŸã‚ã€\n"
+" ã“ã“ã§ã¯æ•¢ãˆã¦ changeset を「リビジョンã€ã¨è¨³ã—ã¦ã„ã¾ã™ã€‚\n"
+" 'Changeset' ã‚‚å‚ç…§ã®ã“ã¨ã€‚"
msgid " Example: \"Is the bug fixed in your recent commit?\""
msgstr " 例: \"最新ã®ã‚³ãƒŸãƒƒãƒˆã§ã€ ãƒã‚°ã¯ä¿®æ­£ã•ã‚Œã¦ã„ã¾ã™ã‹ï¼Ÿ\""
@@ -19073,10 +14367,10 @@ msgid ""
" differences between the committed files and their parent\n"
" changeset, creating a new changeset in the repository."
msgstr ""
-" (å‹•è©ž) 変更内容をリãƒã‚¸ãƒˆãƒªã«è¨˜éŒ²ã™ã‚‹æ“作。\n"
-" コミットã®éš›ã«ã¯ã€ コミット対象ファイルã®ã€ 作業領域中ã®å†…容ã¨ã€\n"
-" 親リビジョンã«ãŠã‘る内容ã‹ã‚‰ã€ 差分ãŒå–られ〠リãƒã‚¸ãƒˆãƒªã«ãŠã„ã¦ã€\n"
-" æ–°è¦ãƒªãƒ“ジョンãŒä½œæˆã•ã‚Œã¾ã™ã€‚"
+" (å‹•è©ž) [コミットã™ã‚‹] 変更内容をリãƒã‚¸ãƒˆãƒªã«è¨˜éŒ²ã™ã‚‹æ“作ã®ã“ã¨ã€‚\n"
+" コミットã®éš›ã«ã¯ã€ コミット対象ファイルã®ä½œæ¥­é ˜åŸŸä¸­ã®å†…容ã¨ã€\n"
+" 親リビジョン時点ã«ãŠã‘る内容ã¨ã®å·®åˆ†ãŒç¢ºèªã•ã‚Œã€ æ–°è¦ã®ãƒªãƒ“ジョンãŒ\n"
+" リãƒã‚¸ãƒˆãƒªã«ä½œæˆã•ã‚Œã¾ã™ã€‚"
msgid " Example: \"You should commit those changes now.\""
msgstr " 例: \"ãã®å¤‰æ›´ã¯ã€ ã™ãã«ã‚³ãƒŸãƒƒãƒˆã™ã¹ãã§ã™ã€‚\""
@@ -19098,22 +14392,11 @@ msgid ""
" (graphlog). In Mercurial, the DAG is limited by the requirement\n"
" for children to have at most two parents."
msgstr ""
-"DAG\n"
-" 分散構æˆç®¡ç†ã‚·ã‚¹ãƒ†ãƒ  (DVCS) ã®ãƒªãƒã‚¸ãƒˆãƒªã«ãŠã‘るリビジョン群ã¯ã€\n"
-" リビジョンã«ç›¸å½“ã™ã‚‹ãƒŽãƒ¼ãƒ‰ (node) ã¨ã€ 親〜å­ã®é–¢ä¿‚ã«ç›¸å½“ã™ã‚‹ã‚¨ãƒƒã‚¸\n"
-" (edge) ã‹ã‚‰æˆã‚‹ã€ éžå¾ªç’°æœ‰å‘グラフ (directed acyclic graph:DAG)\n"
-" ã¨ã—ã¦è¡¨ã™ã“ã¨ãŒã§ãã¾ã™ã€‚ ã“ã®ã‚°ãƒ©ãƒ•ã¯ã€ :hg:`glog` (graphlog)\n"
-" ãªã©ã«ã‚ˆã‚Šå¯è¦–化ã§ãã¾ã™ã€‚ å„リビジョンã¯æœ€å¤§2ã¤ã®è¦ªã—ã‹æŒã¦ãªã„ã€\n"
-" ã¨ã„ã†ã®ãŒã€ Mercurial ã® DAG ã«ãŠã‘る制約ã§ã™ã€‚(※ 訳注:\n"
-" 多ãã®ã‚±ãƒ¼ã‚¹ã§ DAG 㯠「履歴ツリー〠的ãªãƒ‹ãƒ¥ã‚¢ãƒ³ã‚¹ã§ç”¨ã„られるãŸã‚ã€\n"
-" 基本的ã«ã¯ã€Œå±¥æ­´ãƒ„リーã€ã¨è¨³ã—ã¦ã„ã¾ã™)"
msgid ""
"Default branch\n"
" See 'Branch, default'."
msgstr ""
-"Default branch\n"
-" 'Branch, default' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Descendant\n"
@@ -19123,11 +14406,6 @@ msgid ""
" changeset is a descendant, and the child of a descendant is a\n"
" descendant. See also: 'Ancestor'."
msgstr ""
-"Descendant\n"
-" [å­å­«] 指定ã•ã‚ŒãŸãƒªãƒ“ジョンã‹ã‚‰ã€ å­ãƒªãƒ“ジョンä¼ã„ã«åˆ°é”å¯èƒ½ãªã€\n"
-" ä»»æ„ã®ãƒªãƒ“ジョン。 より正確ã«ã¯ã€ ã‚るリビジョンã«ã¨ã£ã¦ã€\n"
-" 直接ã®å­ãƒªãƒ“ジョンã¯å­å­«ã§ã‚り〠å­å­«ã®å­ãƒªãƒ“ジョンもå­å­«ã¨ãªã‚Šã¾ã™ã€‚\n"
-" 'Ancestor' ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Diff\n"
@@ -19139,27 +14417,18 @@ msgid ""
" attributes, none of which can be represented/handled by classic\n"
" \"diff\" and \"patch\"."
msgstr ""
-"Diff\n"
-" (åè©ž) [差分] ï¼’ã¤ã®ãƒªãƒ“ジョン〠ãªã„ã—作業領域ã¨ãƒªãƒ“ジョン間ã§ã®ã€\n"
-" ファイルã®å†…容ã¨å±žæ€§ã®å·®ç•°ã€‚ 差分ã®è¡¨ç¾ã¯ã€ \"diff\" ãªã„ã— \"patch\"\n"
-" ã¨å‘¼ã°ã‚Œã‚‹å½¢å¼ã§è¡¨ç¾ã•ã‚Œã¾ã™ã€‚ ファイルã®è¤‡è£½ï¼æ”¹åや属性ã®å¤‰æ›´ã¯ã€\n"
-" \"diff\" ã‚„ \"patch\" ã®å½¢å¼ã§ã¯è¡¨ç¾ã§ããªã„ãŸã‚〠\"git diff\"\n"
-" å½¢å¼ã‚’使ã£ã¦è¡¨ç¾ã•ã‚Œã¾ã™ã€‚"
msgid " Example: \"Did you see my correction in the diff?\""
-msgstr " 例: \"ç§ã®ä¿®æ­£ã®å·®åˆ†ã‚’見ã¦ã‚‚らãˆã¾ã—ãŸã‹ï¼Ÿ\""
+msgstr ""
msgid ""
" (Verb) Diffing two changesets is the action of creating a diff or\n"
" patch."
msgstr ""
-" (å‹•è©ž) [差分をå–ã‚‹] 2ã¤ã®ãƒªãƒ“ジョン間ã§å·®åˆ†ã‚’å–る行為ã¯ã€ \n"
-" \"diff\" ã‚„ \"patch\" å½¢å¼ã‚’生æˆã™ã‚‹ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚"
msgid ""
" Example: \"If you diff with changeset X, you will see what I mean.\""
msgstr ""
-" Example: \"リビジョン X ã¨ã®å·®åˆ†ã‚’å–ã‚Œã°ã€ ç§ã®æ„図ãŒã‚ã‹ã‚Šã¾ã™ã€‚\""
msgid ""
"Directory, working\n"
@@ -19171,32 +14440,11 @@ msgid ""
" to the files introduced manually or by a merge. The repository\n"
" metadata exists in the .hg directory inside the working directory."
msgstr ""
-"Directory, working\n"
-" [作業領域] 作業領域ã¯ã€ 次ã®ã‚³ãƒŸãƒƒãƒˆã«ã‚ˆã£ã¦è¨˜éŒ²ã•ã‚Œã‚‹ã€\n"
-" Mercurial 管ç†ä¸‹ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®çŠ¶æ…‹ã‚’ä¿æŒã—ã¾ã™ã€‚ åˆæœŸçŠ¶æ…‹ã§ã¯ã€\n"
-" (親リビジョンã¨å‘¼ã°ã‚Œã‚‹) 既存ã®ãƒªãƒ“ジョンã¨åŒã˜å†…容をæŒã¡ã¾ã™ã€‚\n"
-" 'Parent, working directory' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 マージやã€\n"
-" ファイルã¸ã®å¤‰æ›´æ“作ã«ã‚ˆã£ã¦ã€ 状態ãŒå¤‰æ›´ã•ã‚Œã¾ã™ã€‚\n"
-" リãƒã‚¸ãƒˆãƒªã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã¯ã€ 作業領域中㮠.hg ディレクトリé…下ã«ã€\n"
-" æ ¼ç´ã•ã‚Œã¦ã„ã¾ã™ã€‚"
-
-msgid ""
-"Draft\n"
-" Changesets in the draft phase have not been shared with publishing\n"
-" repositories and may thus be safely changed by history-modifying\n"
-" extensions. See :hg:`help phases`."
-msgstr ""
-"Draft\n"
-" draft フェーズã®ãƒªãƒ“ジョンã¯ã€ publishing リãƒã‚¸ãƒˆãƒªé–“ã§ã€\n"
-" 共有ã•ã‚Œãªã„ã“ã¨ã‹ã‚‰ã€ 履歴改変エクステンションをé©ç”¨å¯èƒ½ã§ã™ã€‚\n"
-" :hg:`help phases` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Graph\n"
" See DAG and :hg:`help graphlog`."
msgstr ""
-"Graph\n"
-" DAG ãŠã‚ˆã³ :hg:`help graphlog` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Head\n"
@@ -19204,24 +14452,16 @@ msgid ""
" repository head, depending on the context. See 'Head, branch' and\n"
" 'Head, repository' for specific definitions."
msgstr ""
-"Head\n"
-" [ヘッド] 使用ã™ã‚‹æ–‡è„ˆã«å¿œã˜ã¦ã€ ブランãƒã®ãƒ˜ãƒƒãƒ‰ã¨ã€\n"
-" リãƒã‚¸ãƒˆãƒªã®ãƒ˜ãƒƒãƒ‰ã®ã€ 2ã¤ã®æ„味ã§ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ ãã‚Œãžã‚Œã®è©³ç´°ã¯ã€\n"
-" 'Head, branch' ãŠã‚ˆã³ 'Head, repository' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
" Heads are where development generally takes place and are the\n"
" usual targets for update and merge operations."
msgstr ""
-" 開発ã«ãŠã„ã¦ã€ ヘッドã¯æ—¥å¸¸çš„ã«ç™ºç”Ÿã—〠作業領域更新やã€\n"
-" マージæ“作ã®å¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚"
msgid ""
"Head, branch\n"
" A changeset with no descendants on the same named branch."
msgstr ""
-"Head, branch\n"
-" [ブランãƒ(ã®)ヘッド] åŒä¸€åå‰ä»˜ãブランãƒä¸Šã«ã€ å­ã‚’æŒãŸãªã„リビジョン。"
msgid ""
"Head, closed branch\n"
@@ -19230,34 +14470,16 @@ msgid ""
" closed when all its heads are closed and consequently is not\n"
" listed by :hg:`branches`."
msgstr ""
-"Head, closed branch\n"
-" [閉鎖(ã•ã‚ŒãŸ)ブランãƒ(ã®)ヘッド] ヘッドã¸ã®é–‰éŽ–を実施ã—ãŸãƒªãƒ“ジョン。\n"
-" (※ 訳注: 閉鎖æ“作(commit)ã®å®Ÿæ–½ã¯ã€ 閉鎖対象リビジョン上ã§è¡Œã†ãŸã‚ã€\n"
-" 閉鎖実施リビジョン ï¼ é–‰éŽ–ãƒ–ãƒ©ãƒ³ãƒãƒ˜ãƒƒãƒ‰ã¨ãªã‚Šã¾ã™) 閉鎖済ã¿ãƒ˜ãƒƒãƒ‰ã¯\n"
-" :hg:`heads` ã§åˆ—挙ã•ã‚Œã¾ã›ã‚“。 å…¨ã¦ã®ãƒ˜ãƒƒãƒ‰ãŒé–‰éŽ–ã•ã‚Œã‚‹ã¨ã€\n"
-" ãã®åå‰ä»˜ãブランãƒã¯é–‰éŽ–済ã¿ã¨ã¿ãªã•ã‚Œã€ 以é™ã® :hg:`branches`\n"
-" ã§åå‰ãŒåˆ—挙ã•ã‚Œãªããªã‚Šã¾ã™ã€‚"
-
-msgid ""
-" Closed heads can be re-opened by committing new changeset as the\n"
-" child of the changeset that marks a head as closed."
-msgstr ""
-" 閉鎖ブランãƒã®ãƒ˜ãƒƒãƒ‰ã«å¯¾ã—ã¦ã€ æ–°è¦ã®å­ãƒªãƒ“ジョンを生æˆã™ã‚‹ã“ã¨ã§ã€\n"
-" 当該ヘッドã®é–‰éŽ–状態ãŒè§£æ¶ˆã•ã‚Œã¾ã™ã€‚"
msgid ""
"Head, repository\n"
" A topological head which has not been closed."
msgstr ""
-"Head, repository\n"
-" [リãƒã‚¸ãƒˆãƒª(ã®)ヘッド] 閉鎖ã•ã‚Œã¦ã„ãªã„〠ä½ç›¸çš„ãªãƒ˜ãƒƒãƒ‰ã€‚"
msgid ""
"Head, topological\n"
" A changeset with no children in the repository."
msgstr ""
-"Head, topological\n"
-" [ä½ç›¸çš„(ãª)ヘッド] リãƒã‚¸ãƒˆãƒªå†…ã«ã€ å­ã‚’æŒãŸãªã„リビジョン。"
msgid ""
"History, immutable\n"
@@ -19267,12 +14489,6 @@ msgid ""
" so in public repositories can result in old changesets being\n"
" reintroduced to the repository."
msgstr ""
-"History, immutable\n"
-" [改変ä¸èƒ½(ãª)履歴] 一旦コミットã•ã‚ŒãŸãƒªãƒ“ジョンã¯ã€ 改変ã§ãã¾ã›ã‚“。\n"
-" 履歴改変機能を謳ã†ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ã¯ã€ 実際ã«ã¯å±¥æ­´ã®æ”¹å¤‰ã§ã¯ãªãã€\n"
-" æ–°è¦ãƒªãƒ“ジョンã«ã‚ˆã‚‹ã€ 既存リビジョンã®ç½®ãæ›ãˆ (破棄をå«ã‚€)\n"
-" ã‚’è¡Œã£ã¦ã„ã¾ã™ã€‚ 公開リãƒã‚¸ãƒˆãƒªä¸Šã§ã“ã®æ“作を行ã£ãŸå ´åˆã€\n"
-" 既存ã®ã‚‚ã®ã¨åŒä¸€å†…容ã®ãƒªãƒ“ジョンãŒã€ 履歴上ã«ç¾ã‚Œã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ã€‚"
msgid ""
"History, rewriting\n"
@@ -19280,32 +14496,22 @@ msgid ""
" to Mercurial can be used to alter the repository, usually in such\n"
" a way as to preserve changeset contents."
msgstr ""
-"History, rewriting\n"
-" [履歴(ã®)改変] リãƒã‚¸ãƒˆãƒªã«è¨˜éŒ²ã•ã‚ŒãŸå±¥æ­´ã¯ã€ 改変ä¸èƒ½ã§ã™ã€‚\n"
-" ã—ã‹ã— Mercurial ã®ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ã«ã¯ã€ 既存リビジョンã®å†…容をã€\n"
-" ã‚る種ã®æ–¹æ³•ã§æ”¹å¤‰ã§ãã‚‹ (よã†ã«è¦‹ã›ã‚‹) ã‚‚ã®ãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
"Immutable history\n"
" See 'History, immutable'."
msgstr ""
-"Immutable history\n"
-" 'History, immutable' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Merge changeset\n"
" See 'Changeset, merge'."
msgstr ""
-"Merge changeset\n"
-" 'Changeset, merge' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Manifest\n"
" Each changeset has a manifest, which is the list of files that are\n"
" tracked by the changeset."
msgstr ""
-"Manifest\n"
-" [管ç†å¯¾è±¡/マニフェスト] å„リビジョンã«ãŠã‘る〠管ç†å¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã®ä¸€è¦§ã€‚"
msgid ""
"Merge\n"
@@ -19315,20 +14521,11 @@ msgid ""
" conflicts are resolved (and marked), this merge may be committed\n"
" as a merge changeset, bringing two branches together in the DAG."
msgstr ""
-"Merge\n"
-" [マージ] æžåˆ†ã‹ã‚Œã—ãŸä½œæ¥­æˆæžœã‚’çµ±åˆã™ã‚‹æ“作。 リビジョンを指定ã—ã¦ã€\n"
-" 作業領域を更新ã—ãŸä¸Šã§ã€ 別ãªãƒªãƒ“ジョンã¨ã®ãƒžãƒ¼ã‚¸ã‚’è¡Œã£ãŸå ´åˆã€\n"
-" 後者ã®å±¥æ­´ã«ãŠã‘ã‚‹æˆæžœã‚’〠作業領域ã«æŒã¡è¾¼ã‚€ã“ã¨ã«ãªã‚Šã¾ã™ã€‚\n"
-" è¡çªãŒè§£æ¶ˆã•ã‚ŒãŸ (åŠã³ã€ãã®æ—¨æ˜Žç¤ºã•ã‚ŒãŸ) ãªã‚‰ã°ã€\n"
-" 履歴ツリーã«ãŠã‘ã‚‹2ã¤ã®æžåˆ¥ã‚Œã‚’〠1ã¤ã«çµ±åˆã™ã‚‹ãƒªãƒ“ジョンã¨ã—ã¦ã€\n"
-" マージçµæžœã‚’コミットã§ãã¾ã™ã€‚"
msgid ""
"Named branch\n"
" See 'Branch, named'."
msgstr ""
-"Named branch\n"
-" 'Branch, named' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Null changeset\n"
@@ -19338,24 +14535,16 @@ msgid ""
" merging unrelated changesets. Can be specified by the alias 'null'\n"
" or by the changeset ID '000000000000'."
msgstr ""
-"Null changeset\n"
-" [空リビジョン] 作業領域ãŒæ›´æ–°ã•ã‚Œã¦ã„ãªã„〠新è¦ãƒªãƒã‚¸ãƒˆãƒªã«ãŠã‘ã‚‹ã€\n"
-" 親リビジョン。 以上ã®ã“ã¨ã‹ã‚‰ã€ ルートリビジョンã®è¦ªã§ã‚ã‚Šã€\n"
-" ID '000000000000' ã¨åˆ¥å 'null' ã®ã©ã¡ã‚‰ã§ã‚‚指定å¯èƒ½ã§ã™ã€‚"
msgid ""
"Parent\n"
" See 'Changeset, parent'."
msgstr ""
-"Parent\n"
-" 'Changeset, parent' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Parent changeset\n"
" See 'Changeset, parent'."
msgstr ""
-"Parent changeset\n"
-" 'Changeset, parent' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Parent, working directory\n"
@@ -19365,52 +14554,22 @@ msgid ""
" :hg:`update`. Other commands to see the working directory parent\n"
" are :hg:`summary` and :hg:`id`. Can be specified by the alias \".\"."
msgstr ""
-"Parent, working directory\n"
-" [作業領域ã®è¦ª] 作業領域ã¯ã€ :hg:`parents` ãŒè¡¨ç¤ºã™ã‚‹ãƒªãƒ“ジョン\n"
-" (未コミットマージã®å ´åˆã¯2ã¤) ï¼ ä½œæ¥­é ˜åŸŸã®è¦ªã«å¯¾ã™ã‚‹ã€\n"
-" 仮想的ãªå­ãƒªãƒ“ジョンã§ã™ã€‚ 作業領域ã®è¦ªã¯ :hg:`update` ã§å¤‰æ›´ã—ã¾ã™ã€‚\n"
-" ä»–ã«ã‚‚ :hg:`summary` ã‚„ :hg:`id` ã§ä½œæ¥­é ˜åŸŸã®è¦ªã‚’知るã“ã¨ãŒå¯èƒ½ã§ã™ã€‚\n"
-" \".\" ã¨ã„ã†åˆ¥åã§ã‚‚記述å¯èƒ½ã§ã™ã€‚"
msgid ""
"Patch\n"
" (Noun) The product of a diff operation."
msgstr ""
-"Patch\n"
-" (åè©ž) [パッãƒ] 差分å–å¾—æ“作ã§å¾—られる出力。"
msgid " Example: \"I've sent you my patch.\""
-msgstr " 例: \"ç§ã®ãƒ‘ッãƒã‚’é€ã‚Šã¾ã—ãŸã€‚\""
+msgstr ""
msgid ""
" (Verb) The process of using a patch file to transform one\n"
" changeset into another."
msgstr ""
-" (å‹•è©ž) [パッãƒ(ã‚’)当ã¦(ã‚‹)] ã‚るリビジョン時点ã®å†…容ã«å¯¾ã™ã‚‹ã€\n"
-" パッãƒé©ç”¨ã«ã‚ˆã‚‹æ”¹å¤‰æ“作 (※ 訳注: æš—ã«æ–°è¦ãƒªãƒ“ジョンã®ç”Ÿæˆã‚’想定)。"
msgid " Example: \"You will need to patch that revision.\""
-msgstr " Example: \"ãã®ãƒªãƒ“ジョンã¸ã®ãƒ‘ッãƒå½“ã¦ãŒå¿…è¦ã§ã™ã€‚\""
-
-msgid ""
-"Phase\n"
-" A per-changeset state tracking how the changeset has been or\n"
-" should be shared. See :hg:`help phases`."
msgstr ""
-"Phase\n"
-" [フェーズ] リビジョン毎ã«ç®¡ç†ã•ã‚Œã¦ã„る〠共有å¯å¦ã®æƒ…報。\n"
-" :hg:`help phases` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-
-msgid ""
-"Public\n"
-" Changesets in the public phase have been shared with publishing\n"
-" repositories and are therefore considered immutable. See :hg:`help\n"
-" phases`."
-msgstr ""
-"Public\n"
-" public フェーズã®ãƒªãƒ“ジョンã¯ã€ publishing リãƒã‚¸ãƒˆãƒªé–“ã§ã€\n"
-" 共有ã•ã‚Œã‚‹ã“ã¨ã‹ã‚‰ã€ 改変ä¸èƒ½ãƒªãƒ“ジョンã¨ã¿ãªã•ã‚Œã¾ã™ã€‚\n"
-" :hg:`help phases` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Pull\n"
@@ -19420,11 +14579,6 @@ msgid ""
" only updates the repository, it does not update the files in the\n"
" working directory. See :hg:`help pull`."
msgstr ""
-"Pull\n"
-" [(リビジョンã®)å–ã‚Šè¾¼ã¿] 手元ã®ãƒªãƒã‚¸ãƒˆãƒªã«ç„¡ã„リビジョンをã€\n"
-" 連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã‹ã‚‰å–り込むæ“作。 特定ã®ã‚ªãƒ—ション指定ãŒç„¡ã‘ã‚Œã°ã€\n"
-" ã“ã®æ“作ã¯ãƒªãƒã‚¸ãƒˆãƒªã®ã¿ã‚’æ›´æ–°ã—〠作業領域ã¯æ›´æ–°ã—ã¾ã›ã‚“。。\n"
-" :hg:`help pull` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Push\n"
@@ -19434,12 +14588,6 @@ msgid ""
" locally to the remote repository. Uncommitted changes are not\n"
" sent. See :hg:`help push`."
msgstr ""
-"Push\n"
-" [(リビジョンã®)å映] 手元ã®ãƒªãƒã‚¸ãƒˆãƒªã«ã—ã‹ç„¡ã„リビジョンをã€\n"
-" 連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã«å映ã™ã‚‹æ“作。 手元ã®ãƒªãƒã‚¸ãƒˆãƒªã«ãŠã„ã¦ã€\n"
-" コミットã•ã‚ŒãŸãƒªãƒ“ジョンを〠連æºå…ˆã«è¿½åŠ ã™ã‚‹ã ã‘ã§ã™ã€‚\n"
-" 未コミットã®å¤‰æ›´ã¯å映ã•ã‚Œã¾ã›ã‚“。 :hg:`help push`\n"
-" ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Repository\n"
@@ -19450,19 +14598,11 @@ msgid ""
" recreated by \"updating\" a working directory to a specific\n"
" changeset."
msgstr ""
-"Repository\n"
-" [リãƒã‚¸ãƒˆãƒª] 管ç†å¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã®çŠ¶æ…‹ã‚’記録ã—ãŸãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã€‚\n"
-" 記録ã•ã‚ŒãŸçŠ¶æ…‹ã«ã‚ˆã£ã¦ã€ リビジョンãŒè¡¨ç¾ã•ã‚Œã¾ã™ã€‚ リãƒã‚¸ãƒˆãƒªã¯ã€\n"
-" 通常 (「常ã«ã€ã§ã¯ã‚ã‚Šã¾ã›ã‚“) ã§ã‚ã‚Œã°ã€ 作業領域㮠``.hg``\n"
-" é…下ã«ã‚ã‚Šã¾ã™ã€‚ 記録ã•ã‚ŒãŸçŠ¶æ…‹ã¯ã€ 特定ã®ãƒªãƒ“ジョンを指定ã—ãŸ\n"
-" \"updating\" ã«ã‚ˆã£ã¦ã€ 作業領域ã«å†ç¾ã•ã‚Œã¾ã™ã€‚"
msgid ""
"Repository head\n"
" See 'Head, repository'."
msgstr ""
-"Repository head\n"
-" 'Head, repository' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Revision\n"
@@ -19470,10 +14610,6 @@ msgid ""
" can be updated to by using :hg:`update`. See also 'Revision\n"
" number'; See also 'Changeset'."
msgstr ""
-"Revision\n"
-" [リビジョン] ã‚る時点ã«ãŠã‘るリãƒã‚¸ãƒˆãƒªã®çŠ¶æ…‹ã€‚ :hg:`update` ã«ã‚ˆã‚Šã€\n"
-" 以å‰ã®ãƒªãƒ“ジョン時点ã«ãŠã‘る内容ã§ã€ 作業領域を更新ã§ãã¾ã™ã€‚\n"
-" 'Revision number' ãŠã‚ˆã³ 'Changeset' ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Revision number\n"
@@ -19484,12 +14620,6 @@ msgid ""
" identify changesets uniquely between different clones, see\n"
" 'Changeset id'."
msgstr ""
-"Revision number\n"
-" [リビジョン番å·] 当該リãƒã‚¸ãƒˆãƒªã®ãƒªãƒ“ジョンを〠一æ„ã«è­˜åˆ¥ã™ã‚‹æ•´æ•°ã€‚\n"
-" リãƒã‚¸ãƒˆãƒªã¸ã®è¿½åŠ é †ã§ã€ å„リビジョン㫠0 ã‹ã‚‰ç•ªå·ã‚’振ã£ãŸã‚‚ã®ã§ã™ã€‚\n"
-" リビジョン番å·ã¯ã€ リãƒã‚¸ãƒˆãƒªã®è¤‡è£½æ¯Žã«ç•°ãªã‚Šå¾—ã¾ã™ã€‚\n"
-" 複数ã®ãƒªãƒã‚¸ãƒˆãƒªé–“ã§ã€ リビジョンを一æ„ã«è­˜åˆ¥ã™ã‚‹æ–¹æ³•ã¯ã€\n"
-" 'Changeset id' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Revlog\n"
@@ -19498,35 +14628,17 @@ msgid ""
" of each successive revision. It includes data and an index\n"
" pointing to the data."
msgstr ""
-"Revlog\n"
-" Mercurial ã«ãŠã‘る履歴記録ã®å½¢å¼ã€‚ å„リビジョンã«ç›¸å½“ã™ã‚‹å·®åˆ†ã¨ã€\n"
-" 一定間隔ã§ã®å®Œå…¨ãªãƒ‡ãƒ¼ã‚¿ã‹ã‚‰ã€ 構æˆã•ã‚Œã¦ã„ã¾ã™ã€‚\n"
-" 管ç†å¯¾è±¡ãƒ‡ãƒ¼ã‚¿ã¨ã€ データå‚照用ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’æ ¼ç´ã—ã¦ã„ã¾ã™ã€‚"
msgid ""
"Rewriting history\n"
" See 'History, rewriting'."
msgstr ""
-"Rewriting history\n"
-" 'History, rewriting' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Root\n"
" A changeset that has only the null changeset as its parent. Most\n"
" repositories have only a single root changeset."
msgstr ""
-"Root\n"
-" [ルート(リビジョン)] 親ãŒç©ºãƒªãƒ“ジョンã®ã¿ã®ãƒªãƒ“ジョン。\n"
-" 一般的ãªãƒªãƒã‚¸ãƒˆãƒªã§ã¯ã€ ルートリビジョンã¯ï¼‘ã¤ã ã‘ã§ã™ã€‚"
-
-msgid ""
-"Secret\n"
-" Changesets in the secret phase may not be shared via push, pull,\n"
-" or clone. See :hg:`help phases`."
-msgstr ""
-"Secret\n"
-" secret フェーズã®ãƒªãƒ“ジョンã¯ã€ push/pull/clone ã®å¯¾è±¡å¤–ã§ã™ã€‚\n"
-" :hg:`help phases` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Tag\n"
@@ -19535,20 +14647,12 @@ msgid ""
" :hg:`update`. The creation of a tag is stored in the history and\n"
" will thus automatically be shared with other using push and pull."
msgstr ""
-"Tag\n"
-" [ã‚¿ã‚°] リビジョンã«å‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸåˆ¥å。 リビジョン指定ã®éš›ã«ã¯ã€\n"
-" 常ã«ã‚¿ã‚°åを使用ã§ãã¾ã™: 例 :hg:`update` 対象。\n"
-" ã‚¿ã‚°ã®ç”Ÿæˆã¯å±¥æ­´ã«è¨˜éŒ²ã•ã‚Œã€ å映ï¼å–ã‚Šè¾¼ã¿ã«ã‚ˆã£ã¦ã€\n"
-" ä»–ã®ãƒªãƒã‚¸ãƒˆãƒªã«ä¼æ’­ã—ã¾ã™ã€‚"
msgid ""
"Tip\n"
" The changeset with the highest revision number. It is the changeset\n"
" most recently added in a repository."
msgstr ""
-"Tip\n"
-" 最大ã®ãƒªãƒ“ジョン番å·ã‚’æŒã¤ãƒªãƒ“ジョン。 当該リãƒã‚¸ãƒˆãƒªã«ãŠã„ã¦ã€\n"
-" 最も最後ã«è¿½åŠ ã•ã‚ŒãŸãƒªãƒ“ジョン。"
msgid ""
"Tip, branch\n"
@@ -19558,54 +14662,40 @@ msgid ""
" numbers may be different in different repository clones, the\n"
" branch tip may be different in different cloned repositories."
msgstr ""
-"Tip, branch\n"
-" [ブランãƒ(ã®) tip] リビジョン番å·ãŒæœ€å¤§ãªã€ 指定ブランãƒã®ãƒ˜ãƒƒãƒ‰ã€‚\n"
-" リビジョン指定ã®éš›ã«ã€ ブランãƒåãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ ブランムtip\n"
-" 指定ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚ 'Branch, head' ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。\n"
-" リビジョン番å·ã¯ã€ リãƒã‚¸ãƒˆãƒªã®è¤‡è£½æ¯Žã«ç•°ãªã‚Šå¾—ã‚‹ãŸã‚〠ブランムtip\n"
-" もリãƒã‚¸ãƒˆãƒªæ¯Žã«ç•°ãªã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
"Update\n"
" (Noun) Another synonym of changeset."
msgstr ""
-"Update\n"
-" (åè©ž) [更新内容] リビジョンã®è¨€ã„æ›ãˆã€‚"
msgid " Example: \"I've pushed an update\"."
-msgstr " 例: \"更新内容をå映ã—ã¦ãŠãã¾ã—ãŸã€‚\""
+msgstr ""
msgid ""
" (Verb) This term is usually used to describe updating the state of\n"
" the working directory to that of a specific changeset. See\n"
" :hg:`help update`."
msgstr ""
-" (å‹•è©ž) [æ›´æ–°] 作業領域を〠特定リビジョン時点ã®å†…容ã§æ›¸ãæ›ãˆã‚‹æ“作。\n"
-" :hg:`help update` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid " Example: \"You should update\"."
-msgstr " 例: \"(作業領域ã®)æ›´æ–°ãŒå¿…è¦ã§ã™ã€‚\""
+msgstr ""
msgid ""
"Working directory\n"
" See 'Directory, working'."
msgstr ""
-"Working directory\n"
-" 'Directory, working' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
"Working directory parent\n"
" See 'Parent, working directory'.\n"
msgstr ""
-"Working directory parent\n"
-" 'Parent, working directory' ã‚’å‚ç…§ã—ã¦ãã ã•ã„。\n"
msgid ""
"Synopsis\n"
-"========"
+"--------"
msgstr ""
"概è¦\n"
-"===="
+"--------"
msgid ""
"The Mercurial system uses a file called ``.hgignore`` in the root\n"
@@ -19618,10 +14708,10 @@ msgstr ""
msgid ""
"Description\n"
-"==========="
+"-----------"
msgstr ""
-"説明\n"
-"===="
+"詳細\n"
+"-----------"
msgid ""
"The working directory of a Mercurial repository will often contain\n"
@@ -19646,7 +14736,7 @@ msgid ""
"root directory, or any prefix path of that path, is matched against\n"
"any pattern in ``.hgignore``."
msgstr ""
-"未登録ファイルãŒã€ 作業領域ã®ãƒ«ãƒ¼ãƒˆã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã€\n"
+"構æˆç®¡ç†å¯¾è±¡å¤–ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒã€ 作業領域ã®ãƒ«ãƒ¼ãƒˆã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã€\n"
"ãªã„ã—ãã®ãƒ‘スã®å…ˆé ­éƒ¨åˆ†ãŒã€ ``.hgignore``\n"
"ã«è¨˜è¿°ã•ã‚ŒãŸãƒ‘ターンã¨åˆè‡´ã™ã‚‹å ´åˆã€\n"
"ãã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ Mercurial ã‹ã‚‰ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
@@ -19656,7 +14746,7 @@ msgid ""
"``a/b/file.c`` inside our repository. Mercurial will ignore ``file.c``\n"
"if any pattern in ``.hgignore`` matches ``a/b/file.c``, ``a/b`` or ``a``."
msgstr ""
-"例ãˆã°ã€ 未登録ファイル ``file.c`` ãŒã€\n"
+"例ãˆã°ã€ 構æˆç®¡ç†å¯¾è±¡å¤–ã®ãƒ•ã‚¡ã‚¤ãƒ« ``file.c`` ãŒã€\n"
"作業領域㮠``a/b/file.c`` ã«ä½ç½®ã™ã‚‹ã¨ä»®å®šã—ã¾ã™ã€‚\n"
"``a/b/file.c``〠``a/b`` ãªã„ã— ``a`` ã¨ã„ã£ãŸãƒ‘ターンãŒ\n"
"``.hgignore`` ã«è¨˜è¿°ã•ã‚Œã¦ã„ã‚‹å ´åˆã€\n"
@@ -19682,21 +14772,10 @@ msgstr ""
"æ—¢ã«æ§‹æˆç®¡ç†ä¸‹ã«ã‚るファイルã«å¯¾ã—ã¦ã€\n"
"Mercurial コマンドã®å®Ÿæ–½è¦å¦ã‚’制御ã™ã‚‹ã«ã¯ã€\n"
"多ãã®ã‚³ãƒžãƒ³ãƒ‰ã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã‚‹ ``-I`` ãŠã‚ˆã³ ``-X``\n"
-"ã®ä½¿ç”¨ãŒä¾¿åˆ©ã§ã™ã€‚ 詳細ã«é–¢ã—ã¦ã¯ã€\n"
+"オプションã®ä½¿ç”¨ãŒä¾¿åˆ©ã§ã™ã€‚ 詳細ã«é–¢ã—ã¦ã¯ã€\n"
":hg:`help <command>` ãŠã‚ˆã³ :hg:`help patterns` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
-"Files that are already tracked are not affected by .hgignore, even\n"
-"if they appear in .hgignore. An untracked file X can be explicitly\n"
-"added with :hg:`add X`, even if X would be excluded by a pattern\n"
-"in .hgignore."
-msgstr ""
-"æ—¢ã«ç®¡ç†å¯¾è±¡ã¨ãªã£ã¦ã„るファイルã¯ã€ .hgignore 中ã®æŒ‡å®šãŒåˆè‡´ã—ã¦ã‚‚ã€\n"
-"無視ã®å¯¾è±¡ã¨ã¯ãªã‚Šã¾ã›ã‚“。 .hgignore 記述ã«ã‚ˆã‚Šã€ 管ç†å¯¾è±¡å¤–ã®ãƒ•ã‚¡ã‚¤ãƒ«\n"
-"X ãŒç„¡è¦–ã•ã‚Œã¦ã„ã‚‹å ´åˆã§ã‚‚〠明示的㪠:hg:`add X` 実行ã«ã‚ˆã‚Šã€\n"
-"ファイル X を管ç†å¯¾è±¡ã«ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚"
-
-msgid ""
"An ignore file is a plain text file consisting of a list of patterns,\n"
"with one pattern per line. Empty lines are skipped. The ``#``\n"
"character is treated as a comment character, and the ``\\`` character\n"
@@ -19729,7 +14808,7 @@ msgid ""
" Shell-style glob."
msgstr ""
"``regexp``\n"
-" Python/Perl å½¢å¼ã®æ­£è¦è¡¨ç¾ (※ 訳注: ``re`` ã§ã‚‚å¯)\n"
+" Python/Perl å½¢å¼ã®æ­£è¦è¡¨ç¾ (※訳注: ``re`` ã§ã‚‚å¯)\n"
"``glob``\n"
" Shell å½¢å¼ã®ãƒ‘ターンマッãƒ"
@@ -19746,29 +14825,23 @@ msgid ""
"and a regexp pattern of the form ``\\.c$`` will do the same. To root a\n"
"regexp pattern, start it with ``^``."
msgstr ""
-"glob 㨠regexp ã®ã„ãšã‚Œã®å ´åˆã‚‚〠作業領域ルートã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã«å¯¾ã—ã¦ã€\n"
-"部分一致ã™ã‚Œã°åˆè‡´ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚ glob 文法ã§ã® ``*.c`` パターン指定ã¯ã€\n"
+"glob 㨠regexp ã®ã„ãšã‚Œã®å ´åˆã‚‚〠リãƒã‚¸ãƒˆãƒªãƒ«ãƒ¼ãƒˆã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã«å¯¾ã™ã‚‹\n"
+"部分一致ã§åˆè‡´ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚(※訳注: コマンドã«å¯¾ã™ã‚‹ ``-I`` ãŠã‚ˆã³\n"
+"``-X`` オプションã®å ´åˆã€ ルートã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã«å¯¾ã—ã¦ã€\n"
+"先頭ã‹ã‚‰ã®åˆè‡´ãŒè¦æ±‚ã•ã‚Œã¾ã™)\n"
+"glob 文法ã§ã® ``*.c`` パターン指定ã¯ã€\n"
"ä»»æ„ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ãŠã‘ã‚‹ ``.c`` æ‹¡å¼µå­ãƒ•ã‚¡ã‚¤ãƒ«ã«åˆè‡´ã—ã¾ã™ã—ã€\n"
-"regexp 文法ã§ã® ``\\.c$`` パターン指定も〠åŒæ§˜ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«åˆè‡´ã—ã¾ã™ã€‚\n"
-"ルート直下ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ã®ã¿åˆè‡´ã•ã›ãŸã„å ´åˆã€ regexp 文法ã§ã‚ã‚Œã°ã€\n"
-"パターン記述を ``^`` ã§é–‹å§‹ã—ã¦ãã ã•ã„。"
-
-msgid ""
-".. note::\n"
-" Patterns specified in other than ``.hgignore`` are always rooted.\n"
-" Please see :hg:`help patterns` for details."
-msgstr ""
-".. note::\n"
-" ``.hgignore`` 以外ã®è¨˜è¿°ã§ã¯ã€ 作業領域ルートã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã«å¯¾ã—ã¦ã€\n"
-" パス先頭ã‹ã‚‰ã®ãƒ‘ターンåˆè‡´ãŒè¦æ±‚ã•ã‚Œã¾ã™ã€‚ 詳細㯠:hg:`help patterns`\n"
-" ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+"regexp 文法ã§ã® ``\\.c$`` パターン指定もã€\n"
+"åŒæ§˜ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«åˆè‡´ã—ã¾ã™ã€‚\n"
+"ルート直下ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ã®ã¿åˆè‡´ã•ã›ãŸã„å ´åˆã€\n"
+"regexp 文法ã§ã‚ã‚Œã°ã€ パターン記述を ``^`` ã§é–‹å§‹ã—ã¦ãã ã•ã„。"
msgid ""
"Example\n"
-"======="
+"-------"
msgstr ""
"記述例\n"
-"======"
+"-------"
msgid "Here is an example ignore file. ::"
msgstr "無視設定ファイルã®è¨˜è¿°ä¾‹ã‚’以下ã«ç¤ºã—ã¾ã™ã€‚ ::"
@@ -19800,112 +14873,77 @@ msgstr ""
msgid ""
"Mercurial's internal web server, hgweb, can serve either a single\n"
-"repository, or a tree of repositories. In the second case, repository\n"
-"paths and global options can be defined using a dedicated\n"
-"configuration file common to :hg:`serve`, ``hgweb.wsgi``,\n"
-"``hgweb.cgi`` and ``hgweb.fcgi``."
+"repository, or a collection of them. In the latter case, a special\n"
+"configuration file can be used to specify the repository paths to use\n"
+"and global web configuration options."
msgstr ""
-"Mercurial ã®å†…部ウェブサーãƒæ©Ÿèƒ½ hgweb ã¯ã€ å˜ä¸€ãƒªãƒã‚¸ãƒˆãƒªãªã„ã—ã€\n"
-"リãƒã‚¸ãƒˆãƒªã®ãƒ„リーを公開å¯èƒ½ã§ã™ã€‚ 後者ã®å ´åˆã€ 専用ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã«ã‚ˆã‚Šã€\n"
-"パスやオプション設定を定義å¯èƒ½ã§ã™ã€‚ 設定ファイル㯠:hg:`serve`ã€\n"
-"``hgweb.wsgi``ã€ã€€``hgweb.cgi`` ãŠã‚ˆã³ ``hgweb.fcgi`` ã§å…±é€šã§ã™ã€‚"
msgid ""
-"This file uses the same syntax as other Mercurial configuration files\n"
-"but recognizes only the following sections:"
+"This file uses the same syntax as other Mercurial configuration files,\n"
+"but only the following sections are recognized:"
msgstr ""
-"ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®è¨˜è¿°æ–‡æ³•ã¯ã€ 通常㮠Mercurial 設定ファイルã¨åŒã˜ã§ã™ãŒã€\n"
-"以下ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®ã¿ãŒèªè­˜ã•ã‚Œã¾ã™:"
msgid ""
" - web\n"
" - paths\n"
" - collections"
msgstr ""
-" - web\n"
-" - paths\n"
-" - collections"
-
-msgid "The ``web`` options are thorougly described in :hg:`help config`."
-msgstr "``web`` ã§ã®è¨˜è¿°ã®è©³ç´°ã¯ :hg:`help config` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
-"The ``paths`` section maps URL paths to paths of repositories in the\n"
-"filesystem. hgweb will not expose the filesystem directly - only\n"
-"Mercurial repositories can be published and only according to the\n"
-"configuration."
+"The ``web`` section can specify all the settings described in the web\n"
+"section of the hgrc(5) documentation. See :hg:`help config` for\n"
+"information on where to find the manual page."
msgstr ""
-"``paths`` セクションã¯ã€ URL 上ã®ãƒ‘スã¨ã€ ãã‚Œã«å¯¾å¿œã™ã‚‹ãƒªãƒã‚¸ãƒˆãƒªã®ã€\n"
-"ファイルシステム上ã«ãŠã‘るパスを対応付ã‘ã¾ã™ã€‚ hgweb ã«ã‚ˆã‚‹å…¬é–‹ã¯ã€\n"
-"ファイルシステムã®ç›´æŽ¥å…¬é–‹ã§ã¯ãªã〠Mercurial ã®ãƒªãƒã‚¸ãƒˆãƒªã®ã¿ã‚’ã€\n"
-"設定ã«å¾“ã£ã¦å…¬é–‹ã—ã¾ã™ã€‚"
msgid ""
-"The left hand side is the path in the URL. Note that hgweb reserves\n"
-"subpaths like ``rev`` or ``file``, try using different names for\n"
-"nested repositories to avoid confusing effects."
+"The ``paths`` section provides mappings of physical repository\n"
+"paths to virtual ones. For instance::"
msgstr ""
-"設定キー㯠URL 中ã®ãƒ‘スを指ã—ã¾ã™ã€‚ hgweb ã§ã¯ ``rev`` ã¾ãŸã¯ ``file``\n"
-"ã¨ã„ã£ãŸåå‰ã¯ã€ 特定用途用ã«ä½¿ã‚ã‚Œã¾ã™ã®ã§ã€ 想定外ã®æŒ™å‹•ã‚’é¿ã‘ã‚‹ãŸã‚ã«ã€\n"
-"リãƒã‚¸ãƒˆãƒªã®ãƒ‘スãŒã€ ã“れらã¨è¡çªã—ãªã„よã†ã«æ³¨æ„ã—ã¦ãã ã•ã„。"
msgid ""
-"The right hand side is the path in the filesystem. If the specified\n"
-"path ends with ``*`` or ``**`` the filesystem will be searched\n"
-"recursively for repositories below that point.\n"
-"With ``*`` it will not recurse into the repositories it finds (except for\n"
-"``.hg/patches``).\n"
-"With ``**`` it will also search inside repository working directories\n"
-"and possibly find subrepositories."
+" [paths]\n"
+" projects/a = /foo/bar\n"
+" projects/b = /baz/quux\n"
+" web/root = /real/root/*\n"
+" / = /real/root2/*\n"
+" virtual/root2 = /real/root2/**"
msgstr ""
-"設定値ã¯ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ä¸Šã®ãƒ‘スã§ã™ã€‚ パス指定末尾㌠``*`` ã‚„ ``**``\n"
-"ã®å ´åˆã€ 指定ã®ãƒ‘スä½ç½®ã‹ã‚‰ã€ リãƒã‚¸ãƒˆãƒªã®æ¤œå‡ºãŒã€ å†å¸°çš„ã«å®Ÿæ–½ã•ã‚Œã¾ã™ã€‚\n"
-"パスã®æœ«å°¾ãŒ ``*`` ã®å ´åˆã€ 検出ã•ã‚ŒãŸãƒªãƒã‚¸ãƒˆãƒªé…下ã®å†å¸°çš„検出ã¯ã€\n"
-"実施ã•ã‚Œã¾ã›ã‚“ (``.hg/patches`` é…下を除ã)。 パス末尾㌠``**`` ã®å ´åˆã€\n"
-"副リãƒã‚¸ãƒˆãƒªã®ã‚ˆã†ãªã€ 作業領域中ã®ãƒªãƒã‚¸ãƒˆãƒªã‚‚〠å†å¸°çš„ã«æ¤œå‡ºã•ã‚Œã¾ã™ã€‚"
-msgid "In this example::"
-msgstr "以下ã®è¨­å®šä¾‹ã®å ´åˆ::"
+msgid ""
+"- The first two entries make two repositories in different directories\n"
+" appear under the same directory in the web interface\n"
+"- The third entry maps every Mercurial repository found in '/real/root'\n"
+" into 'web/root'. This format is preferred over the [collections] one,\n"
+" since using absolute paths as configuration keys is not supported on "
+"every\n"
+" platform (especially on Windows).\n"
+"- The fourth entry is a special case mapping all repositories in\n"
+" '/real/root2' in the root of the virtual directory.\n"
+"- The fifth entry recursively finds all repositories under the real\n"
+" root, and maps their relative paths under the virtual root."
+msgstr ""
msgid ""
-" [paths]\n"
-" /projects/a = /srv/tmprepos/a\n"
-" /projects/b = c:/repos/b\n"
-" / = /srv/repos/*\n"
-" /user/bob = /home/bob/repos/**"
+"The ``collections`` section provides mappings of trees of physical\n"
+"repositories paths to virtual ones, though the paths syntax is generally\n"
+"preferred. For instance::"
msgstr ""
-" [paths]\n"
-" /projects/a = /srv/tmprepos/a\n"
-" /projects/b = c:/repos/b\n"
-" / = /srv/repos/*\n"
-" /user/bob = /home/bob/repos/**"
msgid ""
-"- The first two entries make two repositories in different directories\n"
-" appear under the same directory in the web interface\n"
-"- The third entry will publish every Mercurial repository found in\n"
-" ``/srv/repos/``, for instance the repository ``/srv/repos/quux/``\n"
-" will appear as ``http://server/quux/``\n"
-"- The fourth entry will publish both ``http://server/user/bob/quux/``\n"
-" and ``http://server/user/bob/quux/testsubrepo/``"
+" [collections]\n"
+" /foo = /foo"
msgstr ""
-"- 冒頭ã®2ã¤ã®è¨­å®šã¯ã€ ファイルシステム上ã¯ç•°ãªã‚‹ä½ç½®ã«ã‚るリãƒã‚¸ãƒˆãƒªã‚’ã€\n"
-" URL 上ã¯åŒä¸€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªé…下ã«ã‚るよã†ã«è¦‹ã›ã¾ã™\n"
-"- 3ã¤ç›®ã®è¨­å®šã¯ã€ ``/srv/repos/`` é…下ã®å…¨ãƒªãƒã‚¸ãƒˆãƒªã‚’公開ã—ã¾ã™ã€‚\n"
-" 例ãˆã° ``/srv/repos/quux/`` リãƒã‚¸ãƒˆãƒªã¯ ``http://server/quux/``\n"
-" ã¨ã—ã¦ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½ã§ã™ã€‚\n"
-"- ï¼”ã¤ç›®ã®è¨­å®šã§ã¯ã€ ``http://server/user/bob/quux/`` ã¨\n"
-" ``http://server/user/bob/quux/testsubrepo/`` ã®ä¸¡æ–¹ãŒå…¬é–‹ã•ã‚Œã¾ã™ã€‚"
+" [collections]\n"
+" /foo = /foo"
msgid ""
-"The ``collections`` section is deprecated and has been superseeded by\n"
-"``paths``.\n"
+"Here, the left side will be stripped off all repositories found in the\n"
+"right side. Thus ``/foo/bar`` and ``foo/quux/baz`` will be listed as\n"
+"``bar`` and ``quux/baz`` respectively.\n"
msgstr ""
-"``collections`` セクションã§ã®è¨­å®šã¯éžæŽ¨å¥¨ãªã®ã§ã€ 代ã‚ã‚Šã« ``paths``\n"
-"を使用ã—ã¦ãã ã•ã„。\n"
msgid "To merge files Mercurial uses merge tools."
-msgstr "Mercurial ã§ã®æ›´æ–°å†…容マージã«ã¯ã€ マージツールを使用ã—ã¾ã™ã€‚"
+msgstr ""
msgid ""
"A merge tool combines two different versions of a file into a merged\n"
@@ -19913,18 +14951,11 @@ msgid ""
"ancestor of the two file versions, so they can determine the changes\n"
"made on both branches."
msgstr ""
-"マージツールã¯ã€ 2ã¤ã®ç•°ãªã‚‹ãƒªãƒ“ジョンã«ãŠã‘るファイルã®å†…容をã€\n"
-"1ã¤ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«çµ±åˆã—ã¾ã™ã€‚ マージツール実行時ã«ã¯ã€\n"
-"çµ±åˆå¯¾è±¡ã¨ãªã‚‹2ã¤ã®ãƒªãƒ“ジョン時点ã®å†…容をæŒã¤ãƒ•ã‚¡ã‚¤ãƒ«ã«åŠ ãˆã¦ã€\n"
-"2ã¤ã®å…±é€šã®ç¥–å…ˆã¨ãªã‚‹ãƒªãƒ“ジョン時点ã®å†…容をæŒã¤ãƒ•ã‚¡ã‚¤ãƒ«ãŒä¸Žãˆã‚‰ã‚Œã€\n"
-"åŒæ–¹ã®ãƒªãƒ“ジョンã«ãŠã‘る変更内容ãŒç‰¹å®šã•ã‚Œã¾ã™ã€‚"
msgid ""
"Merge tools are used both for :hg:`resolve`, :hg:`merge`, :hg:`update`,\n"
":hg:`backout` and in several extensions."
msgstr ""
-"マージツールã¯ã€ :hg:`resolve`〠:hg:`merge`〠:hg:`update` ã‚„\n"
-":hg:`backout` ãŠã‚ˆã³å¹¾ã¤ã‹ã®ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ã®å®Ÿè¡Œæ™‚ã«èµ·å‹•ã•ã‚Œã¾ã™ã€‚"
msgid ""
"Usually, the merge tool tries to automatically reconcile the files by\n"
@@ -19936,33 +14967,17 @@ msgid ""
"conflict markers. Mercurial does not include any interactive merge\n"
"programs but relies on external tools for that."
msgstr ""
-"一般的ãªãƒžãƒ¼ã‚¸ãƒ„ールã¯ã€ çµ±åˆå¯¾è±¡ã¨ãªã‚‹ãƒªãƒ“ジョンã«è‡³ã‚‹éŽç¨‹ã§ã€\n"
-"共通ã®ç¥–先を元ã«ç‹¬ç«‹ã—ã¦å®Ÿæ–½ã•ã‚ŒãŸã€ ç•°ãªã‚‹éƒ¨ä½ã¸ã®å¤‰æ›´ã«é–¢ã—ã¦ã¯ã€\n"
-"ãã‚Œãžã‚ŒãŒä¸¡ç«‹ã§ãるよã†ã«ã€ 自動的ã«åŒæ–¹ã®å¤‰æ›´ã‚’å–ã‚Šè¾¼ã¿ã¾ã™ã€‚\n"
-"ãã‚Œã«åŠ ãˆã¦ã€ 近接箇所ã¸ã®ç•°ãªã‚‹å¤‰æ›´ã«ã‚ˆã£ã¦ã€\n"
-"è¡çª (conflict) ãŒç”Ÿã˜ã‚‹å ´åˆã«ã¯ã€\n"
-"グラフィカル㪠UI ã§ã®å¯¾è©±çš„ãªè¡çªã®è§£æ¶ˆã‚„ã€\n"
-"è¡çªãƒžãƒ¼ã‚¯ã‚’çµæžœãƒ•ã‚¡ã‚¤ãƒ«ã«åŸ‹ã‚込んã ã‚Šã—ã¾ã™ã€‚\n"
-"Mercurial 自身ã¯å¯¾è©±çš„ãªãƒžãƒ¼ã‚¸ãƒ„ールをæä¾›ã›ãšã«ã€\n"
-"外部ツールã¨é€£æºã™ã‚‹ã‚ˆã†ã«ãªã£ã¦ã„ã¾ã™ã€‚"
msgid ""
"Available merge tools\n"
-"====================="
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"利用å¯èƒ½ãªãƒžãƒ¼ã‚¸ãƒ„ール\n"
-"======================"
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 ""
-"外部ã®ãƒžãƒ¼ã‚¸ãƒ„ールã¨ãã®å®Ÿè¡Œã«é–¢ã™ã‚‹è¨­å®šã¯ã€ 設定ファイルã®\n"
-"merge-tools セクションã«è¨˜è¿°ã•ã‚Œã¾ã™ãŒã€ 設定記述ã®éš›ã®åå‰ã«ã¯ã€\n"
-"外部ツールã®ã‚³ãƒžãƒ³ãƒ‰åãã®ã‚‚ã®ã‚’使用ã™ã‚‹ãŒé€šä¾‹ã§ã™\n"
-"- hgrc(5) ã‚’å‚ç…§ã—ã¦ãã ã•ã„\n"
-"(※ 訳注: :hg:`help config` ã§ã‚‚å‚ç…§å¯èƒ½)。"
msgid ""
"A merge tool is generally usable if its executable can be found on the\n"
@@ -19973,42 +14988,65 @@ msgid ""
"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 ""
-"マージツール設定ã¯ã€ システム上ã«å®Ÿè¡Œå¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«ãŒå­˜åœ¨ã—ã€\n"
-"且ã¤ãƒžãƒ¼ã‚¸å‡¦ç†ãŒå¯èƒ½ã§ã‚ã‚‹å ´åˆã«æ„味をæŒã¡ã¾ã™ã€‚\n"
-"実行å¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«ã®æŒ‡å®šã¯ã€ 絶対ãªã„ã—相対パスã§æŒ‡å®šã•ã‚Œã‚‹ã‹ã€\n"
-"コマンドサーãƒãƒ‘ス設定上ã«ã€\n"
-"åŒåã®å®Ÿè¡Œå¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«ãŒå­˜åœ¨ã™ã‚‹å ´åˆã«æœ‰åŠ¹ã¨ãªã‚Šã¾ã™ã€‚\n"
-"マージツールã¯ãƒžãƒ¼ã‚¸å‡¦ç†ãŒå¯èƒ½ã§ã‚ã‚‹ã‚‚ã®ã¨ä»®å®šã•ã‚Œã¾ã™ã€‚\n"
-"対象ãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã§ シンボリックリンクãŒæ‰±ãˆã‚‹ (設定ã®) å ´åˆã€\n"
-"対象ãŒãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã§ ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ãŒæ‰±ãˆã‚‹ (設定ã®) å ´åˆã€\n"
-"ã‚ã‚‹ã„㯠GUI ãŒå¿…è¦ãªè¨­å®šã§ GUI ãŒåˆ©ç”¨å¯èƒ½ãªå ´åˆã¯ã€\n"
-"ãã‚Œãžã‚Œé©åˆ‡ã«æ©Ÿèƒ½ã™ã‚‹ã“ã¨ãŒè¦æ±‚ã•ã‚Œã¾ã™ã€‚"
msgid ""
"There are some internal merge tools which can be used. The internal\n"
"merge tools are:"
-msgstr "以下ã®ã‚ˆã†ãªå†…部マージツールも利用å¯èƒ½ã§ã™:"
+msgstr ""
-msgid ".. internaltoolsmarker"
-msgstr ".. internaltoolsmarker"
+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 ""
-"内部マージツールã¯ã€ 常ã«åˆ©ç”¨å¯èƒ½ã§ GUI ã‚‚å¿…è¦ã¨ã—ã¾ã›ã‚“ãŒã€\n"
-"シンボリックリンクやãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã«ã¯å¯¾å¿œã—ã¾ã›ã‚“。"
msgid ""
"Choosing a merge tool\n"
-"====================="
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"マージツールã®é¸æŠž\n"
-"=================="
msgid "Mercurial uses these rules when deciding which merge tool to use:"
-msgstr "Mercurial ã§ä½¿ç”¨ã•ã‚Œã‚‹ãƒžãƒ¼ã‚¸ãƒ„ールã¯ä»¥ä¸‹ã®é †åºã§æ±ºå®šã•ã‚Œã¾ã™:"
+msgstr ""
msgid ""
"1. If a tool has been specified with the --tool option to merge or resolve, "
@@ -20019,19 +15057,12 @@ msgid ""
"by\n"
" the shell."
msgstr ""
-"1. :hg:`merge` ã‚„ :hg:`resolve` 㧠--tool ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€\n"
-" 指定ã•ã‚ŒãŸãƒ„ールãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" merge-tools 設定ã«è¨˜è¿°ã•ã‚ŒãŸåå‰ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€\n"
-" 設定内容ãŒé©ç”¨ã•ã‚Œã¾ã™ã€‚ ãれ以外ã®å ´åˆã€ 指定ã•ã‚ŒãŸãƒ„ールã¯ã€\n"
-" 実行å¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。"
msgid ""
"2. If the ``HGMERGE`` environment variable is present, its value is used "
"and\n"
" must be executable by the shell."
msgstr ""
-"2. ``HGMERGE`` 環境変数ãŒè¨­å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã€ ãã®å†…容ãŒé©ç”¨ã•ã‚Œã¾ã™ãŒã€\n"
-" 実行å¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«ãŒæŒ‡å®šã•ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
"3. If the filename of the file to be merged matches any of the patterns in "
@@ -20041,10 +15072,6 @@ msgid ""
"the\n"
" merge tool are not considered."
msgstr ""
-"3. merge-patterns セクションã«è¨˜è¿°ã•ã‚ŒãŸãƒ‘ターンã«ã€\n"
-" マージ対象ファイルã®åå‰ãŒåˆè‡´ã—ãŸå ´åˆã€\n"
-" åˆè‡´ã—ãŸãƒ‘ターンã«å¯¾å¿œã™ã‚‹æœ€åˆã®ãƒžãƒ¼ã‚¸ãƒ„ールãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã¸ã®é©ç”¨å¯å¦è¨­å®šã¯è€ƒæ…®ã•ã‚Œã¾ã›ã‚“。"
msgid ""
"4. If ui.merge is set it will be considered next. If the value is not the "
@@ -20053,36 +15080,25 @@ msgid ""
"by\n"
" the shell. Otherwise the named tool is used if it is usable."
msgstr ""
-"4. ui セクション㮠merge 設定ã¯ã“ã®æ®µéšŽã§è€ƒæ…®ã•ã‚Œã¾ã™ã€‚\n"
-" 指定内容㌠merge-tools 設定ã«è¨˜è¿°ã•ã‚ŒãŸåå‰ã§ã¯ç„¡ã„å ´åˆã€\n"
-" 実行å¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«ãŒæŒ‡å®šã•ã‚Œãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。\n"
-" ãれ以外ã®å ´åˆã¯ã€ 利用å¯èƒ½ãªè¨­å®šå†…容ãŒé©ç”¨ã•ã‚Œã¾ã™ã€‚"
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 ""
-"5. merge-tools 設定ã«ä½•ã‚‰ã‹ã®è¨˜è¿°ãŒã‚ã‚‹å ´åˆã€\n"
-" 優先度ã®æœ€ã‚‚高ã„ツールãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
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 ""
-"6. ``hgmerge`` ã¨ã„ã†åå‰ã®ãƒ„ールãŒåˆ©ç”¨å¯èƒ½ãªå ´åˆã¯ã“ã‚ŒãŒåˆ©ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" 但ã—シンボリックリンクやãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã«ã¯é©ç”¨ã•ã‚Œã¾ã›ã‚“。"
msgid ""
"7. If the file to be merged is not binary and is not a symlink, then\n"
" ``internal:merge`` is used."
msgstr ""
-"7. マージ対象ファイルãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã‚„ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã§ãªã„å ´åˆã€\n"
-" ``internal:merge`` ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid "8. The merge of the file fails and must be resolved before commit."
msgstr ""
-"8. ファイルã®ãƒžãƒ¼ã‚¸ã¯å¤±æ•—ã¨ã¿ãªã•ã‚Œã€ 手動ã§ã® :hg:`resolve` ãŒå¿…è¦ã§ã™ã€‚"
msgid ""
".. note::\n"
@@ -20096,21 +15112,11 @@ msgid ""
"by\n"
" default unless the file is binary or a symlink."
msgstr ""
-".. note::\n"
-" マージツールã®é¸æŠžãŒå®Œäº†ã—ãŸãªã‚‰ã€\n"
-" ã¾ãšæœ€åˆã« Mercurial ã¯å˜ç´”マージ処ç†ã‚’実施ã—ã¾ã™ã€‚\n"
-" ã“ã®éš›ã«è¡çªãŒæ¤œå‡ºã•ã‚Œã¦ã€ マージã«å¤±æ•—ã—ãŸå ´åˆã«é™ã‚Š\n"
-" Mercurial ã¯é¸æŠžã—ãŸãƒžãƒ¼ã‚¸ãƒ„ールã«ã‚ˆã‚‹ãƒžãƒ¼ã‚¸ã‚’è¡Œã„ã¾ã™ã€‚\n"
-" 最åˆã«å˜ç´”マージ処ç†ã‚’実施ã™ã‚‹ã‹å¦ã‹ã¯ premerge 設定ã§åˆ¶å¾¡ã§ãã¾ã™ã€‚\n"
-" シンボリックリンクやãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ä»¥å¤–ã«é–¢ã—ã¦ã¯ã€\n"
-" premerge ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¯æœ‰åŠ¹ã«ãªã£ã¦ã„ã¾ã™ã€‚"
msgid ""
"See the merge-tools and ui sections of hgrc(5) for details on the\n"
"configuration of merge tools.\n"
msgstr ""
-"マージツールã®è¨­å®šè©³ç´°ã«é–¢ã—ã¦ã¯ã€ hgrc(5) ã«ãŠã‘ã‚‹ merge-tools ã‚„\n"
-"ui セクションをå‚ç…§ã—ã¦ãã ã•ã„。 (※ 訳注: :hg:`help config` ã§ã‚‚å‚ç…§å¯èƒ½)\n"
msgid ""
"When Mercurial accepts more than one revision, they may be specified\n"
@@ -20163,16 +15169,6 @@ msgid "Alternate pattern notations must be specified explicitly."
msgstr "別ãªå½¢å¼ã§ã®ãƒ‘ターン記述ã®éš›ã«ã¯ã€ 明示的ã«ç¨®åˆ¥ã‚’指定ã—ã¦ãã ã•ã„。"
msgid ""
-".. note::\n"
-" Patterns specified in ``.hgignore`` are not rooted. \n"
-" Please see :hg:`help hgignore` for details."
-msgstr ""
-".. note::\n"
-" ``.hgignore`` ã§ã®è¨˜è¿°ã§ã¯ã€ 作業領域ルートã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã«å¯¾ã—ã¦ã€\n"
-" 部分一致ã®ã¿ã§åˆè‡´åˆ¤å®šã•ã‚Œã¾ã™ã€‚ 詳細㯠:hg:`help hgignore`\n"
-" ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-
-msgid ""
"To use a plain path name without any pattern matching, start it with\n"
"``path:``. These path names must completely match starting at the\n"
"current repository root."
@@ -20187,9 +15183,9 @@ msgid ""
"in the current directory ending with ``.c``."
msgstr ""
"拡張ワイルドカードåˆè‡´ã®å ´åˆã€ åå‰ã®å‰ã« ``glob:`` を記述ã—ã¾ã™ã€‚\n"
-"ã“ã®å½¢å¼ã§ã®åˆè‡´åˆ¤å®šã¯ã€ ç¾ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã«å¯¾ã—ã¦ã®ã€\n"
-"パス先頭ã‹ã‚‰ã®ãƒ‘ターンåˆè‡´ã¨ãªã‚Šã¾ã™ã®ã§ã€ ``*.c`` ã¨åˆè‡´ã™ã‚‹ã®ã¯ã€\n"
-"ç¾ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªç›´ä¸‹ã®æœ«å°¾ãŒ ``.c`` ã§çµ‚ã‚るファイルã®ã¿ã§ã™ã€‚"
+"ã“ã®å½¢å¼ã¯ç¾ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‹ã‚‰ã®ç›¸å¯¾åˆè‡´ã«ãªã‚Šã¾ã™ã®ã§ã€\n"
+"``*.c`` パターンã¨åˆè‡´ã™ã‚‹ã®ã¯ã€\n"
+"末尾㌠``.c`` ã§çµ‚ã‚ã‚‹ã€ç¾ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®ã¿ã§ã™ã€‚"
msgid ""
"The supported glob syntax extensions are ``**`` to match any string\n"
@@ -20203,8 +15199,10 @@ msgid ""
"Regexp pattern matching is anchored at the root of the repository."
msgstr ""
"Perl/Python å½¢å¼ã®æ­£è¦è¡¨ç¾ã®å ´åˆã€ åå‰ã®å‰ã« ``re:`` を記述ã—ã¾ã™ã€‚\n"
-"æ­£è¦è¡¨ç¾å½¢å¼ã§ã®ãƒ‘ターンã¯ã€ 作業領域ルートã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã«å¯¾ã—ã¦ã€\n"
-"常ã«å…ˆé ­ã‹ã‚‰ã®ãƒ‘ターンåˆè‡´ãŒè¦æ±‚ã•ã‚Œã¾ã™ã€‚"
+"æ­£è¦è¡¨ç¾å½¢å¼ã§ã¯ã€ 作業領域ルートã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã«å¯¾ã—ã¦ã€\n"
+"ãã®å…ˆé ­ã‹ã‚‰ãƒ‘ターンãŒä¸€è‡´ã™ã‚‹ã“ã¨ãŒè¦æ±‚ã•ã‚Œã¾ã™ã€‚\n"
+"(※訳注: .hgignore ã§ã®æŒ‡å®šã§ã¯ã€ 相対パスã¨ã®éƒ¨åˆ†ä¸€è‡´ã§è¨±ã•ã‚Œã‚‹ãŸã‚ã€\n"
+"å ´åˆã«ã‚ˆã£ã¦ã¯æ›¸ã分ã‘ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™)。"
msgid ""
"To read name patterns from a file, use ``listfile:`` or ``listfile0:``.\n"
@@ -20269,180 +15267,6 @@ msgstr ""
msgid "See also :hg:`help filesets`.\n"
msgstr ":hg:`help filesets` ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。\n"
-msgid ""
-"What are phases?\n"
-"================"
-msgstr ""
-"フェーズã¨ã¯ï¼Ÿ\n"
-"=============="
-
-msgid ""
-"Phases are a system for tracking which changesets have been or should\n"
-"be shared. This helps prevent common mistakes when modifying history\n"
-"(for instance, with the mq or rebase extensions)."
-msgstr ""
-"フェーズ (phase) ã¯ã€ 当該リビジョンã®å…±æœ‰æ€§ã‚’管ç†ã™ã‚‹ä»•çµ„ã¿ã§ã™ã€‚\n"
-"ã“ã®ä»•çµ„ã¿ã«ã‚ˆã£ã¦ã€ 予期ã›ã¬å±¥æ­´æ”¹å¤‰\n"
-"(例: mq ã‚„ rebase エクステンション等ã«ã‚ˆã‚‹ã‚‚ã®) を防止ã§ãã¾ã™ã€‚"
-
-msgid "Each changeset in a repository is in one of the following phases:"
-msgstr "リãƒã‚¸ãƒˆãƒªä¸­ã®å„リビジョンã¯ã€ 以下ã®ã„ãšã‚Œã‹ã®ãƒ•ã‚§ãƒ¼ã‚ºã«å±žã—ã¾ã™:"
-
-msgid ""
-" - public : changeset is visible on a public server\n"
-" - draft : changeset is not yet published\n"
-" - secret : changeset should not be pushed, pulled, or cloned"
-msgstr ""
-" - public : 公開サーãƒä¸Šã§å‚ç…§å¯èƒ½ãªãƒªãƒ“ジョン\n"
-" - draft : public 化å‰æ®µéšŽã®ãƒªãƒ“ジョン\n"
-" - secret : push/pull/clone ã®å¯¾è±¡å¤–ã¨ãªã‚‹ãƒªãƒ“ジョン"
-
-msgid ""
-"These phases are ordered (public < draft < secret) and no changeset\n"
-"can be in a lower phase than its ancestors. For instance, if a\n"
-"changeset is public, all its ancestors are also public. Lastly,\n"
-"changeset phases should only be changed towards the public phase."
-msgstr ""
-"フェーズã«ã¯é †åºé–¢ä¿‚ (public < draft < secret) ãŒã‚ã‚Šã€\n"
-"祖先よりもå°ã•ãªãƒ•ã‚§ãƒ¼ã‚ºã‚’æŒã¤ã“ã¨ã¯ã§ãã¾ã›ã‚“。\n"
-"例ãˆã° public フェーズã®ç¥–å…ˆã¯ã€ 全㦠public フェーズã§ã™ã€‚\n"
-"å„リビジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã¯ã€ 基本的㫠public 化ã™ã‚‹æ–¹å‘ã«å¤‰æ›´ã•ã‚Œã‚‹ã¹ãã§ã™ã€‚"
-
-msgid ""
-"How are phases managed?\n"
-"======================="
-msgstr ""
-"フェーズã¯ã©ã†ç®¡ç†ã•ã‚Œã‚‹ã®ã‹ï¼Ÿ\n"
-"=============================="
-
-msgid ""
-"For the most part, phases should work transparently. By default, a\n"
-"changeset is created in the draft phase and is moved into the public\n"
-"phase when it is pushed to another repository."
-msgstr ""
-"多ãã®å ´åˆã€ フェーズã¯é€éŽçš„ã«æ©Ÿèƒ½ã—ã¾ã™ã€‚\n"
-"特ã«æŒ‡å®šã®ç„¡ã„å ´åˆã€ æ–°è¦ãƒªãƒ“ジョン㯠draft フェーズã§ä½œæˆã•ã‚Œã€\n"
-"他リãƒã‚¸ãƒˆãƒªã¸ã®å映ã®éš›ã« public 化ã•ã‚Œã¾ã™ã€‚"
-
-msgid ""
-"Once changesets become public, extensions like mq and rebase will\n"
-"refuse to operate on them to prevent creating duplicate changesets.\n"
-"Phases can also be manually manipulated with the :hg:`phase` command\n"
-"if needed. See :hg:`help -v phase` for examples."
-msgstr ""
-"予期ã›ã¬é¡žä¼¼ãƒªãƒ“ジョン生æˆå›žé¿ã®ãŸã‚〠mq/rebase ç­‰ã®ã‚¨ã‚¯ã‚¹ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ã¯ã€\n"
-"一旦 public 化ã•ã‚ŒãŸãƒªãƒ“ジョンを処ç†å¯¾å‡¦ã«ã§ãã¾ã›ã‚“。\n"
-"å¿…è¦ã§ã‚れ㰠:hg:`phase` コマンドã«ã‚ˆã‚‹æ‰‹å‹•ã§ã®ãƒ•ã‚§ãƒ¼ã‚ºå¤‰æ›´ã‚‚å¯èƒ½ã§ã™ã€‚\n"
-"実行例ã«é–¢ã—ã¦ã¯ :hg:`help -v phase` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-
-msgid ""
-"Phases and servers\n"
-"=================="
-msgstr ""
-"フェーズã¨ã‚µãƒ¼ãƒ\n"
-"================"
-
-msgid "Normally, all servers are ``publishing`` by default. This means::"
-msgstr ""
-"特ã«æŒ‡å®šã®ç„¡ã„å ´åˆã€ å…¨ã¦ã®ã‚µãƒ¼ãƒã§ ``publishing`` ãŒå®Ÿæ–½ã•ã‚Œã¾ã™ã€‚\n"
-"ã“ã‚Œã¯ä»¥ä¸‹ã‚’æ„味ã—ã¾ã™::"
-
-msgid ""
-" - all draft changesets that are pulled or cloned appear in phase\n"
-" public on the client"
-msgstr ""
-" - draft フェーズã®ãƒªãƒ“ジョンã¯ã€ pull/clone ã•ã‚ŒãŸã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå´ã§ã¯\n"
-" public フェーズã¨ã¿ãªã•ã‚Œã‚‹"
-
-msgid ""
-" - all draft changesets that are pushed appear as public on both\n"
-" client and server"
-msgstr ""
-" - クライアントã‹ã‚‰ push ã•ã‚ŒãŸ draft フェーズã®ãƒªãƒ“ジョンã¯ã€\n"
-" サーãƒï¼ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã®ä¸¡æ–¹ã§ public フェーズã¨ã¿ãªã•ã‚Œã‚‹"
-
-msgid " - secret changesets are neither pushed, pulled, or cloned"
-msgstr " - secret フェーズã®ãƒªãƒ“ジョン㯠push/pull/clone 対象ã«ãªã‚‰ãªã„"
-
-msgid ""
-".. note::\n"
-" Pulling a draft changeset from a publishing server does not mark it\n"
-" as public on the server side due to the read-only nature of pull."
-msgstr ""
-".. note::\n"
-" publishing サーãƒã‹ã‚‰ draft フェーズã®ãƒªãƒ“ジョンを pull ã—ãŸå ´åˆã§ã‚‚ã€\n"
-" 『pull ã¯èª­ã¿å‡ºã—専用ã€ã®åŽŸå‰‡ã«å‰‡ã‚Šã€ 当該リビジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã¯ã€\n"
-" サーãƒå´ã§ã¯ draft ã®ã¾ã¾ (public 化ã—ãªã„) ã§ã™ã€‚"
-
-msgid ""
-"Sometimes it may be desirable to push and pull changesets in the draft\n"
-"phase to share unfinished work. This can be done by setting a\n"
-"repository to disable publishing in its configuration file::"
-msgstr ""
-"未完ã®ä½œæ¥­ã‚’共有ã™ã‚‹ãŸã‚ã«ã€ リビジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã‚’ draft ã®ã¾ã¾ã§\n"
-"push/pull ã—ãŸã„å ´åˆã‚‚ã‚ã‚‹ã§ã—ょã†ã€‚ publishing を無効化ã™ã‚‹ã«ã¯ã€\n"
-"サーãƒå´ã§ä»¥ä¸‹ã®è¨­å®šã‚’è¡Œã£ã¦ãã ã•ã„。"
-
-msgid ""
-" [phases]\n"
-" publish = False"
-msgstr ""
-" [phases]\n"
-" publish = False"
-
-msgid "See :hg:`help config` for more information on config files."
-msgstr "設定ファイルã«é–¢ã™ã‚‹è©³ç´°ã¯ :hg:`help config` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-
-msgid ""
-".. note::\n"
-" Servers running older versions of Mercurial are treated as\n"
-" publishing."
-msgstr ""
-".. note::\n"
-" 旧版㮠Mercurial ã§ç¨¼å‹•ã—ã¦ã„るサーãƒã¯ã€ publishing 実施ã«ç›¸å½“ã—ã¾ã™ã€‚"
-
-msgid ""
-"Examples\n"
-"========"
-msgstr ""
-"記述例\n"
-"======"
-
-msgid " - list changesets in draft or secret phase::"
-msgstr " - draft ãªã„ã— secret フェーズã®ãƒªãƒ“ジョン一覧::"
-
-msgid " hg log -r \"not public()\""
-msgstr " hg log -r \"not public()\""
-
-msgid " - change all secret changesets to draft::"
-msgstr " - secret フェーズã®å…¨ãƒªãƒ“ジョンã®ã‚’ draft 化::"
-
-msgid " hg phase --draft \"secret()\""
-msgstr " hg phase --draft \"secret()\""
-
-msgid ""
-" - forcibly move the current changeset and descendants from public to draft::"
-msgstr " - ç¾è¡Œãƒªãƒ“ジョンã¨å­å­«ã®ãƒ•ã‚§ãƒ¼ã‚ºã‚’ public ã‹ã‚‰ draft ã«å¼·åˆ¶å¤‰æ›´::"
-
-msgid " hg phase --force --draft ."
-msgstr " hg phase --force --draft ."
-
-msgid " - show a list of changeset revision and phase::"
-msgstr " - リビジョン番å·ã¨ãƒ•ã‚§ãƒ¼ã‚ºã‚’表示::"
-
-msgid " hg log --template \"{rev} {phase}\\n\""
-msgstr " hg log --template \"{rev} {phase}\\n\""
-
-msgid " - resynchronize draft changesets relative to a remote repository::"
-msgstr " - 連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªã«å¿œã˜ã¦ã€ãƒªãƒ“ジョンを draft フェーズ化::"
-
-msgid " hg phase -fd 'outgoing(URL)' "
-msgstr " hg phase -fd 'outgoing(URL)'"
-
-msgid ""
-"See :hg:`help phase` for more information on manually manipulating phases.\n"
-msgstr "フェーズã®æ‰‹å‹•æ“作ã«é–¢ã—ã¦ã¯ :hg:`help phase` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。\n"
-
msgid "Mercurial supports several ways to specify individual revisions."
msgstr "Mercurial ã«å€‹ã€…ã®ãƒªãƒ“ジョン指定ã™ã‚‹éš›ã«ã¯è¤‡æ•°ã®è¨˜æ³•ãŒä½¿ç”¨ã§ãã¾ã™ã€‚"
@@ -20457,7 +15281,7 @@ msgstr ""
msgid ""
"A 40-digit hexadecimal string is treated as a unique revision\n"
"identifier."
-msgstr "40æ¡ã®16進文字列ã¯ã€ 一æ„ãªã€Œãƒªãƒ“ジョン IDã€ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
+msgstr "40æ¡ã®16進文字列ã¯ã€ 一æ„ãªã€Œãƒªãƒ“ジョン識別å­ã€ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
msgid ""
"A hexadecimal string less than 40 characters long is treated as a\n"
@@ -20465,25 +15289,27 @@ msgid ""
"identifier. A short-form identifier is only valid if it is the prefix\n"
"of exactly one full-length identifier."
msgstr ""
-"40æ¡æœªæº€ã®16進文字列ã¯ã€ 一æ„ãªã€Œãƒªãƒ“ジョン IDã€ã®çŸ­ç¸®å½¢å¼ã¨\n"
-"ã¿ãªã•ã‚Œã¾ã™ã€‚ 短縮形å¼ã® ID ã¯ã€ 厳密ã«1ã¤ã®å®Œå…¨é•·ã® ID ã¨ã ã‘\n"
+"40æ¡æœªæº€ã®16進文字列ã¯ã€ 一æ„ãªã€Œãƒªãƒ“ジョン識別å­ã€ã®çŸ­ç¸®å½¢å¼ã¨\n"
+"ã¿ãªã•ã‚Œã¾ã™ã€‚ 短縮形å¼ã®è­˜åˆ¥å­ã¯ã€ 厳密ã«1ã¤ã®å®Œå…¨é•·ã®è­˜åˆ¥å­ã¨ã ã‘\n"
"å‰æ–¹ä¸€è‡´ã™ã‚‹å ´åˆã«ã®ã¿æœ‰åŠ¹ã§ã™ã€‚"
msgid ""
-"Any other string is treated as a bookmark, tag, or branch name. A\n"
-"bookmark is a movable pointer to a revision. A tag is a permanent name\n"
-"associated with a revision. A branch name denotes the tipmost revision\n"
-"of that branch. Bookmark, tag, and branch names must not contain the \":\"\n"
-"character."
+"Any other string is treated as a tag or branch name. A tag name is a\n"
+"symbolic name associated with a revision identifier. A branch name\n"
+"denotes the tipmost revision of that branch. Tag and branch names must\n"
+"not contain the \":\" character."
msgstr ""
-"ä»–ã®æ–‡å­—列ã¯ã€ 「ブックマーク〠〠「タグå〠ãªã„㗠「ブランãƒåã€\n"
-"ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚ 「ブックマーク〠ã¯ç§»å‹•å¯èƒ½ãªãƒªãƒ“ジョンå‚ç…§ãƒã‚¤ãƒ³ã‚¿ã§ã™ã€‚\n"
-"「タグå〠ã¯ç‰¹å®šã®ãƒªãƒ“ジョンã«ä»˜ä¸Žã•ã‚ŒãŸæ°¸ç¶šçš„ãªåå‰ã§ã™ã€‚\n"
-"「ブランãƒå〠ã¯å½“該ブランãƒä¸­ã®æœ€æ–°ãƒªãƒ“ジョンをæ„味ã—ã¾ã™ã€‚\n"
-"ブックマークã€ã‚¿ã‚°ãŠã‚ˆã³ãƒ–ランãƒã®åå‰ã¯ \":\" 文字をå«ã‚“ã§ã¯ãªã‚Šã¾ã›ã‚“。"
+"ãれ以外ã®æ–‡å­—列ã¯ã€ 「タグåã€ãªã„ã—「ブランãƒåã€ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚\n"
+"「タグåã€ã¯ãƒªãƒ“ジョン識別å­ã«ä»˜ä¸Žã•ã‚ŒãŸã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãªåå‰ã§ã™ã€‚\n"
+"「ブランãƒåã€ã¯ã€ ブランãƒä¸­ã®æœ€æ–°ãƒªãƒ“ジョンをæ„味ã—ã¾ã™ã€‚\n"
+"ã‚¿ã‚°åãŠã‚ˆã³ãƒ–ランãƒå㯠\":\" ã‚’å«ã‚“ã§ã¯ãªã‚Šã¾ã›ã‚“。"
-msgid "The reserved name \"tip\" always identifies the most recent revision."
-msgstr "予約å \"tip\" ã¯ã€ 常ã«ä¸€ç•ªæœ€æ–°ã®ãƒªãƒ“ジョンを指ã—ã¾ã™ã€‚"
+msgid ""
+"The reserved name \"tip\" is a special tag that always identifies the\n"
+"most recent revision."
+msgstr ""
+"常ã«ã€Œæœ€æ–°ã®ãƒªãƒ“ジョンã€ã‚’æ„味ã™ã‚‹åå‰ \"tip\" ã¯ã€ 特別ãªã‚¿ã‚°åã¨ã—ã¦\n"
+"予約ã•ã‚Œã¦ã„ã¾ã™ã€‚"
msgid ""
"The reserved name \"null\" indicates the null revision. This is the\n"
@@ -20506,30 +15332,26 @@ msgstr ""
msgid ""
"Mercurial supports a functional language for selecting a set of\n"
"revisions."
-msgstr "Mercurial ã¯ãƒªãƒ“ジョン指定ã®ãŸã‚ã®å•ã„åˆã‚ã›è¨€èªžã‚’æä¾›ã—ã¦ã„ã¾ã™ã€‚"
+msgstr ""
+"Mercurial ã¯ã€ 複数ã®ãƒªãƒ“ジョンを一括指定ã™ã‚‹ãŸã‚ã®å•ã„åˆã‚ã›è¨€èªžã‚’æä¾›\n"
+"ã—ã¦ã„ã¾ã™ã€‚"
msgid ""
"The language supports a number of predicates which are joined by infix\n"
"operators. Parenthesis can be used for grouping."
msgstr ""
-"å•ã„åˆã‚ã›è¨€èªžã¯ã€Œè¿°èªžã€ (predicate) (※ 訳注: ã„ã‚ゆる「関数ã€çš„ãªã‚‚ã®)\n"
-"ã‚’æä¾›ã—ã¦ãŠã‚Šã€ 二項演算å­ã«ã‚ˆã‚‹çµåˆã‚„〠括弧ã«ã‚ˆã‚‹ã‚°ãƒ«ãƒ¼ãƒ—化もå¯èƒ½ã§ã™ã€‚"
msgid ""
-"Identifiers such as branch names may need quoting with single or\n"
-"double quotes if they contain characters like ``-`` or if they match\n"
-"one of the predefined predicates."
+"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."
msgstr ""
-"ID ã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ãƒ–ランãƒåãªã©ãŒã€ ``-`` 文字やã€\n"
-"既存ã®è¿°èªžã¨ä¸€è‡´ã™ã‚‹å ´åˆã€ 引用符(') ãªã„ã—二é‡å¼•ç”¨ç¬¦(\")\n"
-"ã§å›²ã£ã¦ãã ã•ã„。"
msgid ""
"``not x``\n"
" Changesets not in x. Short form is ``! x``."
msgstr ""
-"``not x``\n"
-" x ã«å«ã¾ã‚Œãªã„リビジョン群。 ``! x`` ã¨ã‚‚表記å¯èƒ½ã€‚"
msgid ""
"``x::y``\n"
@@ -20538,14 +15360,9 @@ msgid ""
" is left out, this is equivalent to ``ancestors(y)``, if the second\n"
" is left out it is equivalent to ``descendants(x)``."
msgstr ""
-"``x::y``\n"
-" x ã®å­å­«ä¸”㤠y ã®ç¥–å…ˆã«ç›¸å½“ã™ã‚‹ãƒªãƒ“ジョン群 (x ãŠã‚ˆã³ y 自身をå«ã‚€)。\n"
-" å·¦å´ã®ãƒªãƒ“ジョン指定 (``x``) ãŒçœç•¥ã•ã‚ŒãŸå ´åˆã¯ ``ancestors(y)``ã€\n"
-" å³å´ã®ãƒªãƒ“ジョン指定 (``y``) ãŒçœç•¥ã•ã‚ŒãŸå ´åˆã¯ ``descendants(x)``\n"
-" ã¨ç­‰ä¾¡ã§ã™ã€‚"
msgid " An alternative syntax is ``x..y``."
-msgstr " ``x..y`` ã¨ã‚‚表記å¯èƒ½ã€‚"
+msgstr ""
msgid ""
"``x:y``\n"
@@ -20553,32 +15370,22 @@ msgid ""
" inclusive. Either endpoint can be left out, they default to 0 and\n"
" tip."
msgstr ""
-"``x:y``\n"
-" ãƒªãƒ“ã‚¸ãƒ§ãƒ³ç•ªå· x ã‹ã‚‰ y ã®é–“ã®å…¨ãƒªãƒ“ジョン群 (x ãŠã‚ˆã³ y 自身をå«ã‚€)。\n"
-" å·¦å³ã®ãƒªãƒ“ジョン指定ãŒçœç•¥ã•ã‚ŒãŸå ´åˆã¯ã€ ãã‚Œãžã‚ŒãŒ 0 ãŠã‚ˆã³ tip\n"
-" ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
msgid ""
"``x and y``\n"
" The intersection of changesets in x and y. Short form is ``x & y``."
msgstr ""
-"``x and y``\n"
-" リビジョン群 x 㨠y ã®å…±é€šéƒ¨åˆ†ã€‚ ``x & y`` ã¨ã‚‚表記å¯èƒ½ã€‚"
msgid ""
"``x or y``\n"
" The union of changesets in x and y. There are two alternative short\n"
" forms: ``x | y`` and ``x + y``."
msgstr ""
-"``x or y``\n"
-" リビジョン群 x 㨠y ã®ç·å’Œã€‚ ``x | y`` åˆã¯ ``x + y`` ã¨ã‚‚表記å¯èƒ½ã€‚"
msgid ""
"``x - y``\n"
" Changesets in x but not in y."
msgstr ""
-"``x - y``\n"
-" リビジョン群 x ã®ã†ã¡ã€ y ã«å±žã•ãªã„ã‚‚ã®ã€‚"
msgid ""
"``x^n``\n"
@@ -20586,58 +15393,42 @@ msgid ""
" For n == 0, x; for n == 1, the first parent of each changeset in x;\n"
" for n == 2, the second parent of changeset in x."
msgstr ""
-"``x^n``\n"
-" リビジョン群 x 中ã®å„リビジョンã®ã€ n 番目ã®è¦ªãƒªãƒ“ジョン。\n"
-" n ã«ã¯ 0 1 ãªã„ã— 2 を指定å¯èƒ½ã€‚\n"
-" n == 0 ãªã‚‰ãƒªãƒ“ジョン自身〠n == 1 ãªã‚‰ç¬¬1親〠n == 2 ãªã‚‰ç¬¬2親。"
msgid ""
"``x~n``\n"
" The nth first ancestor of x; ``x~0`` is x; ``x~3`` is ``x^^^``."
msgstr ""
-"``x~n``\n"
-" リビジョン群 x 中ã®å„リビジョンã®ã€ 第1親å´ã® n 番目ã®ç¥–先。\n"
-" ``x~0`` ã¯ãƒªãƒ“ジョン自身〠``x~3`` 㯠``x^^^`` ã¨ç­‰ä¾¡ã€‚"
msgid "There is a single postfix operator:"
-msgstr "使用å¯èƒ½ãªå¾Œç½®å˜é …演算å­ã‚’以下ã«åˆ—挙ã—ã¾ã™:"
+msgstr ""
msgid ""
"``x^``\n"
" Equivalent to ``x^1``, the first parent of each changeset in x."
msgstr ""
-"``x^``\n"
-" リビジョン群 x 中ã®å„リビジョンã®ã€ 第1親リビジョン。 ``x^1`` ã¨ç­‰ä¾¡ã€‚"
msgid ""
"\n"
"The following predicates are supported:"
msgstr ""
-"\n"
-"使用å¯èƒ½ãªè¿°èªžã‚’以下ã«åˆ—挙ã—ã¾ã™:"
msgid ""
"New predicates (known as \"aliases\") can be defined, using any combination "
"of\n"
"existing predicates or other aliases. An alias definition looks like::"
msgstr ""
-"既存ã®è¿°èªžã‚„別å (alias) を組ã¿åˆã‚ã›ã‚‹ã“ã¨ã§ã€ æ–°ã—ã„述語を定義å¯èƒ½ã§ã™ã€‚\n"
-"別åã¯ã€ Mercurial 設定ファイル㮠``revsetalias`` セクションã«ãŠã‘ã‚‹ã€\n"
-"以下ã®ã‚ˆã†ãªè¨˜è¿°ã§å®šç¾©ã—ã¾ã™::"
msgid " <alias> = <definition>"
-msgstr " <別å> = <定義>"
+msgstr ""
msgid ""
"in the ``revsetalias`` section of a Mercurial configuration file. Arguments\n"
"of the form `$1`, `$2`, etc. are substituted from the alias into the\n"
"definition."
msgstr ""
-"別å記述部分ã«ãŠã„㦠`$1` ã‚„ `$2` ã¨ã„ã£ãŸå½¢å¼ã®å¼•æ•°ã‚’記述ã™ã‚‹ã“ã¨ã§ã€\n"
-"別å定義部分ã§ãã®å¼•æ•°ã‚’使用ã§ãã¾ã™ã€‚"
msgid "For example,"
-msgstr "記述例"
+msgstr ""
msgid ""
" [revsetalias]\n"
@@ -20645,20 +15436,14 @@ msgid ""
" d($1) = sort($1, date)\n"
" rs($1, $2) = reverse(sort($1, $2))"
msgstr ""
-" [revsetalias]\n"
-" h = heads()\n"
-" d($1) = sort($1, date)\n"
-" rs($1, $2) = reverse(sort($1, $2))"
msgid ""
"defines three aliases, ``h``, ``d``, and ``rs``. ``rs(0:tip, author)`` is\n"
"exactly equivalent to ``reverse(sort(0:tip, author))``."
msgstr ""
-"上記ã®è¨˜è¿°ã§ã€ 3ã¤ã®åˆ¥å ``h``〠``d`` ãŠã‚ˆã³ ``rs`` ãŒå®šç¾©ã•ã‚Œã¾ã™ã€‚\n"
-"``rs(0:tip, author)`` 㯠``reverse(sort(0:tip, author))`` ã¨åŒä¸€ã§ã™ã€‚"
msgid "Command line equivalents for :hg:`log`::"
-msgstr ":hg:`log` ã®ã‚³ãƒžãƒ³ãƒ‰è¡Œã‚ªãƒ—ション指定ã«å¯¾ã™ã‚‹ç­‰ä¾¡ãªè¨˜è¿°::"
+msgstr ""
msgid ""
" -f -> ::.\n"
@@ -20670,162 +15455,108 @@ msgid ""
" -P x -> !::x\n"
" -l x -> limit(expr, x)"
msgstr ""
-" -f -> ::.\n"
-" -d x -> date(x)\n"
-" -k x -> keyword(x)\n"
-" -m -> merge()\n"
-" -u x -> user(x)\n"
-" -b x -> branch(x)\n"
-" -P x -> !::x\n"
-" -l x -> limit(expr, x)"
msgid "- Changesets on the default branch::"
-msgstr "- default ブランãƒã®ãƒªãƒ“ジョン群::"
+msgstr ""
msgid " hg log -r \"branch(default)\""
-msgstr " hg log -r \"branch(default)\""
+msgstr ""
msgid "- Changesets on the default branch since tag 1.5 (excluding merges)::"
-msgstr "- ã‚¿ã‚° 1.5 以後㮠default ブランãƒã®ãƒªãƒ“ジョン群 (マージ実施除ã)::"
+msgstr ""
msgid " hg log -r \"branch(default) and 1.5:: and not merge()\""
-msgstr " hg log -r \"branch(default) and 1.5:: and not merge()\""
+msgstr ""
msgid "- Open branch heads::"
-msgstr "- 閉鎖 (close) ã•ã‚Œã¦ã„ãªã„ブランãƒãƒ³ã®ãƒ˜ãƒƒãƒ‰::"
+msgstr ""
msgid " hg log -r \"head() and not closed()\""
-msgstr " hg log -r \"head() and not closed()\""
+msgstr ""
msgid ""
"- Changesets between tags 1.3 and 1.5 mentioning \"bug\" that affect\n"
" ``hgext/*``::"
msgstr ""
-"- ã‚¿ã‚° 1.3 㨠1.5 ã®é–“㧠\"bug\" ã«è¨€åŠã— ``hgext/*``\n"
-" ã«å½±éŸ¿ã™ã‚‹ãƒªãƒ“ジョン群::"
msgid " hg log -r \"1.3::1.5 and keyword(bug) and file('hgext/*')\""
-msgstr " hg log -r \"1.3::1.5 and keyword(bug) and file('hgext/*')\""
+msgstr ""
msgid "- Changesets committed in May 2008, sorted by user::"
-msgstr "- 2008 å¹´ 5 月 (May 2008) ã«ãŠã‘るリビジョン群をユーザåé †ã§è¡¨ç¤º::"
+msgstr ""
msgid " hg log -r \"sort(date('May 2008'), user)\""
-msgstr " hg log -r \"sort(date('May 2008'), user)\""
+msgstr ""
msgid ""
"- Changesets mentioning \"bug\" or \"issue\" that are not in a tagged\n"
" release::"
msgstr ""
-"- \"bug\" åˆã¯ \"issue\" ã«è¨€åŠã—ãŸãƒªãƒ“ジョン群ã®ã†ã¡ã€ ã‚¿ã‚° tagged\n"
-" 時点ã®å†…容ã«å«ã¾ã‚Œãªã„ã‚‚ã®::"
msgid ""
" hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tagged"
"())\"\n"
msgstr ""
-" hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tagged"
-"())\"\n"
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."
-msgstr ""
-"副リãƒã‚¸ãƒˆãƒª (sub repository) 機能ã¯ã€ Mercurial リãƒã‚¸ãƒˆãƒªã‚’親ã«ã€\n"
-"外部ã®ãƒªãƒã‚¸ãƒˆãƒªã‚„プロジェクトを入れå­ã«ã—〠コマンドã®å®Ÿè¡Œã®éš›ã«ã€\n"
-"ãれら一連ã®ãƒªãƒã‚¸ãƒˆãƒªã«å¯¾ã—ã¦å‡¦ç†ã‚’è¡Œãˆã‚‹ã‚ˆã†ã«ã—ã¾ã™ã€‚"
-
-msgid ""
-"Mercurial currently supports Mercurial, Git, and Subversion\n"
-"subrepositories."
+"group. External Mercurial and Subversion projects are currently\n"
+"supported."
msgstr ""
-"ç¾æ™‚点ã§å‰¯ãƒªãƒã‚¸ãƒˆãƒªã¨ã—ã¦ä½¿ç”¨ã§ãã‚‹ã®ã¯ã€Mercurial Git Subversion\n"
-"ã®ãƒªãƒã‚¸ãƒˆãƒªã§ã™ã€‚"
msgid "Subrepositories are made of three components:"
-msgstr "副リãƒã‚¸ãƒˆãƒªã¯ã€ 3ã¤ã®è¦ç´ ã‹ã‚‰æ§‹æˆã•ã‚Œã¾ã™:"
+msgstr ""
msgid ""
"1. Nested repository checkouts. They can appear anywhere in the\n"
-" parent working directory."
+" parent working directory, and are Mercurial clones or Subversion\n"
+" checkouts."
msgstr ""
-"1. 入れå­ãƒªãƒã‚¸ãƒˆãƒªã®ä½œæ¥­é ˜åŸŸã€‚ 親リãƒã‚¸ãƒˆãƒªã®ä½œæ¥­é ˜åŸŸä¸­ã®ã€\n"
-" ä»»æ„ã®å ´æ‰€ã«é…ç½®å¯èƒ½ã§ã™ã€‚"
msgid ""
-"2. Nested repository references. They are defined in ``.hgsub``, which\n"
-" should be placed in the root of working directory, and\n"
+"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 ""
-"2. 入れå­ãƒªãƒã‚¸ãƒˆãƒªã¸ã®å‚照。 親リãƒã‚¸ãƒˆãƒªã®ä½œæ¥­é ˜åŸŸãƒ«ãƒ¼ãƒˆç›´ä¸‹ã«é…ç½®ã—ãŸ\n"
-" ``.hgsub`` ã«ãŠã„ã¦ã€ 副リãƒã‚¸ãƒˆãƒªã®å‚照先を記述ã—ã¾ã™ã€‚ Mercurial\n"
-" ã®å‰¯ãƒªãƒã‚¸ãƒˆãƒªã®å‚照先ã¯ã€ 以下ã®ã‚ˆã†ã«è¨˜è¿°ã—ã¾ã™:"
msgid " path/to/nested = https://example.com/nested/repo/path"
-msgstr " 入れå­/作業領域/パス = https://example.com/nested/repo/path"
-
-msgid " Git and Subversion subrepos are also supported:"
-msgstr " Git ã‚„ Subversion も副リãƒã‚¸ãƒˆãƒªã¨ã—ã¦åˆ©ç”¨å¯èƒ½ã§ã™:"
-
-msgid ""
-" path/to/nested = [git]git://example.com/nested/repo/path\n"
-" path/to/nested = [svn]https://example.com/nested/trunk/path"
msgstr ""
-" 入れå­/作業領域/パス = [git]git://example.com/nested/repo/path\n"
-" 入れå­/作業領域/パス = [svn]https://example.com/nested/trunk/path"
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."
+" filesystem path. Subversion repositories are defined with:"
+msgstr ""
+
+msgid " path/to/nested = [svn]https://example.com/nested/trunk/path"
msgstr ""
-" ``入れå­/作業領域/パス`` ã¯ã€ 親リãƒã‚¸ãƒˆãƒªã®ä½œæ¥­é ˜åŸŸãƒ«ãƒ¼ãƒˆã«å¯¾ã™ã‚‹ã€\n"
-" 副リãƒã‚¸ãƒˆãƒªä½œæ¥­é ˜åŸŸã®ç›¸å¯¾ãƒ‘スã€\n"
-" ``https://example.com/nested/repo/path`` ã¯ã€\n"
-" 副リãƒã‚¸ãƒˆãƒªã®é€£æºå…ˆæƒ…å ±ã§ã™ã€‚ 連æºå…ˆã«ã¯ã€\n"
-" ローカルファイルシステム上ã®ãƒ‘スも記述å¯èƒ½ã§ã™ã€‚"
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 ""
-" Mercurial リãƒã‚¸ãƒˆãƒªã¯ã€ ``.hgsub`` を自動的ã«ã¯ç”Ÿæˆã—ã¾ã›ã‚“ã®ã§ã€\n"
-" 副リãƒã‚¸ãƒˆãƒªã‚’使用ã™ã‚‹éš›ã«ã¯ã€ 手動㧠``.hgsub`` を生æˆã—ã€\n"
-" 親リãƒã‚¸ãƒˆãƒªã«ãŠã„ã¦ã€ 履歴管ç†å¯¾è±¡ã«è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
msgid ""
-"3. Nested repository states. They are defined in ``.hgsubstate``, which\n"
-" is placed in the root of working directory, and\n"
+"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 ""
-"3. 入れå­ãƒªãƒã‚¸ãƒˆãƒªã®çŠ¶æ…‹æƒ…報。 親リãƒã‚¸ãƒˆãƒªã®ãƒ«ãƒ¼ãƒˆç›´ä¸‹ã«é…ç½®ã•ã‚ŒãŸ\n"
-" ``.hgsubstate`` ã«ãŠã„ã¦ã€ 親リãƒã‚¸ãƒˆãƒªã§ã®ã‚³ãƒŸãƒƒãƒˆæ™‚点ã«ãŠã‘ã‚‹ã€\n"
-" 副リãƒã‚¸ãƒˆãƒªã®çŠ¶æ…‹ã‚’復旧ã™ã‚‹ãŸã‚ã«ã€ å¿…è¦ãªæƒ…å ±ãŒæ ¼ç´ã•ã‚Œã¾ã™ã€‚\n"
-" ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®ç”Ÿæˆã¯ã€ 親リãƒã‚¸ãƒˆãƒªã§ã®ã‚³ãƒŸãƒƒãƒˆã®éš›ã«ã€ Mercurial\n"
-" ã«ã‚ˆã£ã¦è‡ªå‹•çš„ã«å®Ÿæ–½ã•ã‚Œã¾ã™ã€‚"
msgid ""
" .. note::\n"
" The ``.hgsubstate`` file should not be edited manually."
msgstr ""
-" .. note::\n"
-" ``.hgsubstate`` ã¯æ±ºã—ã¦æ‰‹å‹•ç·¨é›†ã—ãªã„ã§ãã ã•ã„。"
msgid ""
"\n"
"Adding a Subrepository\n"
-"======================"
+"----------------------"
msgstr ""
-"\n"
-"副リãƒã‚¸ãƒˆãƒªã®è¿½åŠ \n"
-"=================="
msgid ""
"If ``.hgsub`` does not exist, create it and add it to the parent\n"
@@ -20835,22 +15566,11 @@ msgid ""
"subrepository is tracked and the next commit will record its state in\n"
"``.hgsubstate`` and bind it to the committed changeset."
msgstr ""
-"ã¾ã  ``.hgsub`` ãŒè¦ªãƒªãƒã‚¸ãƒˆãƒªã«å­˜åœ¨ã—ãªã„å ´åˆã¯ã€ 手動ã§ä½œæˆã—ãŸä¸Šã§ã€\n"
-"履歴管ç†å¯¾è±¡ã«ç™»éŒ²ã—ã¦ãã ã•ã„。 親リãƒã‚¸ãƒˆãƒªã®ä½œæ¥­é ˜åŸŸä¸­ã®ä»»æ„ã®å ´æ‰€ã«ã€\n"
-"外部リãƒã‚¸ãƒˆãƒªã‚’å…ƒã«ã€ ä½œæ¥­é ˜åŸŸã‚’ç”Ÿæˆ (checkout) ã—ã¦ãã ã•ã„。\n"
-"追加対象ã®å¤–部リãƒã‚¸ãƒˆãƒªã®ãŸã‚ã®ã‚¨ãƒ³ãƒˆãƒªã‚’ ``.hgsub`` ã«è¿½åŠ ã—ã¦ãã ã•ã„。\n"
-"ã“れ以後〠ã“ã®å‰¯ãƒªãƒã‚¸ãƒˆãƒªã¯æ§‹æˆç®¡ç†å¯¾è±¡ã¨ãªã‚Šã€ 次回ã®ã‚³ãƒŸãƒƒãƒˆã«ãŠã„ã¦ã€\n"
-"``.hgsubstate`` ã«çŠ¶æ…‹ãŒè¨˜éŒ²ã•ã‚Œã€ 親リãƒã‚¸ãƒˆãƒªã®ãƒªãƒ“ジョンã«å¯¾ã—ã¦ã€\n"
-"対応付ã‘ãŒè¡Œã‚ã‚Œã¾ã™ã€‚ (※ 訳注: 副リãƒã‚¸ãƒˆãƒªã«é–¢ã™ã‚‹ã€Œæ§‹æˆç®¡ç†ã€ã¯ã€\n"
-"ã‚ãã¾ã§ 「親リãƒã‚¸ãƒˆãƒªã®å„リビジョンãŒã€ 副リãƒã‚¸ãƒˆãƒªã®ã©ã®ãƒªãƒ“ジョンã¨ã€\n"
-"ã©ã†å¯¾å¿œã™ã‚‹ã®ã‹ï¼Ÿã€ ã¨ã„ã†å¯¾å¿œä»˜ã‘情報ã®ã¿ã§ã™)"
msgid ""
"Synchronizing a Subrepository\n"
-"============================="
+"-----------------------------"
msgstr ""
-"副リãƒã‚¸ãƒˆãƒªã®åŒæœŸ\n"
-"=================="
msgid ""
"Subrepos do not automatically track the latest changeset of their\n"
@@ -20859,123 +15579,67 @@ msgid ""
"developers always get a consistent set of compatible code and\n"
"libraries when they update."
msgstr ""
-"構æˆç®¡ç†ä¸‹ã«ã‚る副リãƒã‚¸ãƒˆãƒªã®ä½œæ¥­é ˜åŸŸã¯ã€ 最新状態ã¸ã®è‡ªå‹•çš„ãªè¿½å¾“ãŒã€\n"
-"è¡Œã‚ã‚Œãªããªã‚Šã¾ã™ã€‚ ãã®ä»£ã‚り〠親リãƒã‚¸ãƒˆãƒªã®ãƒªãƒ“ジョンã«ãŠã„ã¦ã€\n"
-"関連付ã‘ãŒè¨˜éŒ²ã•ã‚ŒãŸãƒªãƒ“ジョンã®å†…容ã§æ›´æ–°ã•ã‚Œã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚\n"
-"ã“ã®æŒ™å‹•ã«ã‚ˆã‚Šã€ 親リãƒã‚¸ãƒˆãƒªå´ã¨ä¸€è²«æ€§ã®ã‚る状態ãŒç¶­æŒã§ãã¾ã™"
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 ""
-"ãã®ãŸã‚〠副リãƒã‚¸ãƒˆãƒªã®ä½œæ¥­é ˜åŸŸã¯ã€ 手動ã§æ›´æ–°ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚\n"
-"å„副リãƒã‚¸ãƒˆãƒªã®ä½œæ¥­é ˜åŸŸã‚’〠希望ã™ã‚‹ãƒªãƒ“ジョンã§æ›´æ–°ã—ãŸãªã‚‰ã°ã€\n"
-"親リãƒã‚¸ãƒˆãƒªã«ãŠã„㦠(é©å®œãƒ†ã‚¹ãƒˆã‚’実施ã—ãŸä¸Šã§) コミットを実施ã™ã‚‹ã“ã¨ã§ã€\n"
-"æ–°ãŸãªãƒªãƒ“ジョンã®çµ„ã¿åˆã‚ã›ãŒè¨˜éŒ²ã•ã‚Œã¾ã™ã€‚"
msgid ""
"Deleting a Subrepository\n"
-"========================"
+"------------------------"
msgstr ""
-"副リãƒã‚¸ãƒˆãƒªã®å‰Šé™¤\n"
-"=================="
msgid ""
"To remove a subrepository from the parent repository, delete its\n"
"reference from ``.hgsub``, then remove its files."
msgstr ""
-"親リãƒã‚¸ãƒˆãƒªã‹ã‚‰å‰¯ãƒªãƒã‚¸ãƒˆãƒªã‚’削除ã™ã‚‹å ´åˆã€ 対応ã™ã‚‹ã‚¨ãƒ³ãƒˆãƒªã‚’ ``.hgsub``\n"
-"ã‹ã‚‰å‰Šé™¤ã—ãŸä¸Šã§ã€ 関連ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’削除ã—ã¦ãã ã•ã„。"
msgid ""
"Interaction with Mercurial Commands\n"
-"==================================="
+"-----------------------------------"
msgstr ""
-"Mercurial コマンドã¨ã®é€£æº\n"
-"=========================="
msgid ""
":add: add does not recurse in subrepos unless -S/--subrepos is\n"
-" specified. However, if you specify the full path of a file in a\n"
-" subrepo, it will be added even without -S/--subrepos specified.\n"
-" Git and Subversion subrepositories are currently silently\n"
+" specified. Subversion subrepositories are currently silently\n"
" ignored."
msgstr ""
-":add: -S/--subrepos 指定ãŒç„¡ã„é™ã‚Šã€ 構æˆç®¡ç†å¯¾è±¡ã¸ã®ãƒ•ã‚¡ã‚¤ãƒ«ç™»éŒ²ã¯ã€\n"
-" å†å¸°çš„ã«ã¯å®Ÿæ–½ã•ã‚Œã¾ã›ã‚“。 但ã—〠-S/--subrepos 指定ãŒç„¡ãã¦ã‚‚ã€\n"
-" 副リãƒã‚¸ãƒˆãƒªä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¸ã®ãƒ‘スãŒã€ 直接指定ã•ã‚ŒãŸå ´åˆã¯ã€\n"
-" 対象ファイルを構æˆç®¡ç†å¯¾è±¡ã¨ã—ã¦ç™»éŒ²ã—ã¾ã™ã€‚ ãªãŠã€ 副リãƒã‚¸ãƒˆãƒªãŒ\n"
-" Git ãªã„ã— Subversion å½¢å¼ã®å ´åˆã€ ç¾çŠ¶ã§ã¯ã€ 何ã®è¡¨ç¤ºã‚‚ç„¡ã—ã«ã€\n"
-" 登録è¦æ±‚を無視ã—ã¾ã™ã€‚"
msgid ""
":archive: archive does not recurse in subrepositories unless\n"
" -S/--subrepos is specified."
msgstr ""
-":archive: -S/--subrepos 指定ãŒç„¡ã„é™ã‚Šã€ アーカイブã®ä½œæˆã¯ã€\n"
-" å†å¸°çš„ã«ã¯å®Ÿæ–½ã•ã‚Œã¾ã›ã‚“。"
msgid ""
":commit: commit creates a consistent snapshot of the state of the\n"
-" entire project and its subrepositories. If any subrepositories\n"
-" have been modified, Mercurial will abort. Mercurial can be made\n"
-" to instead commit all modified subrepositories by specifying\n"
-" -S/--subrepos, or setting \"ui.commitsubrepos=True\" in a\n"
-" configuration file (see :hg:`help config`). After there are no\n"
-" longer any modified subrepositories, it records their state and\n"
-" finally commits it in the parent repository."
-msgstr ""
-":commit: コミットã®å®Ÿæ–½ã«ã‚ˆã‚Šã€ 親リãƒã‚¸ãƒˆãƒªã¨é…下ã®å‰¯ãƒªãƒã‚¸ãƒˆãƒªã«é–¢ã™ã‚‹ã€\n"
-" æ•´åˆæ€§ã®å–ã‚ŒãŸå¯¾å¿œé–¢ä¿‚ãŒã€ (親リãƒã‚¸ãƒˆãƒªå´ã«) 記録ã•ã‚Œã¾ã™ã€‚\n"
-" 未コミット改変をæŒã¤å‰¯ãƒªãƒã‚¸ãƒˆãƒªã¯ã€ コミット動作を中断ã•ã›ã¾ã™ã€‚\n"
-" -S/--subrepos を指定ã™ã‚‹ã‹ã€ 設定ファイル記述 (:hg:`help config` å‚ç…§)\n"
-" ã§ã® \"ui.commitsubrepos=True\" 設定ã«ã‚ˆã‚Šã€ コミット実施ã®éš›ã«ã€\n"
-" 副リãƒã‚¸ãƒˆãƒªä¸­ã®æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ãŒã€ å†å¸°çš„ã«ã‚³ãƒŸãƒƒãƒˆã•ã‚Œã¾ã™ã€‚\n"
-" å…¨ã¦ã®å‰¯ãƒªãƒã‚¸ãƒˆãƒªã‹ã‚‰ã€ 未コミット改変ãŒç„¡ããªã£ãŸå¾Œã§ã€\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. Git and Subversion subrepositories are currently\n"
-" silently ignored."
-msgstr ""
-":diff: -S/--subrepos 指定ãŒç„¡ã„é™ã‚Šã€ 差分表示ã¯ã€ \n"
-" å†å¸°çš„ã«ã¯å®Ÿæ–½ã•ã‚Œã¾ã›ã‚“。\n"
-" 副リãƒã‚¸ãƒˆãƒªä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®å·®åˆ†è¡¨ç¤ºã¯ã€ 通常ã®å·®åˆ†è¡¨ç¤ºã¨åŒã˜å½¢å¼ã§ã™ã€‚\n"
-" ãªãŠã€ 副リãƒã‚¸ãƒˆãƒªãŒ Git ãªã„ã— Subversion å½¢å¼ã®å ´åˆã€ ç¾çŠ¶ã§ã¯ã€\n"
-" 何ã®è¡¨ç¤ºã‚‚ç„¡ã—ã«ã€ 差分表示è¦æ±‚を無視ã—ã¾ã™ã€‚"
-
-msgid ""
-":forget: forget currently only handles exact file matches in subrepos.\n"
-" Git and Subversion subrepositories are currently silently ignored."
+" elements. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
-":forget: ç¾çŠ¶ã§ã¯ã€ 副リãƒã‚¸ãƒˆãƒªä¸­ã®ãƒ‘ス (ファイルãªã„ã—ディレクトリ)\n"
-" ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã«é™ã‚Šã€ 副リãƒã‚¸ãƒˆãƒªä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã—ã¦ã€\n"
-" 登録除外æ“作ãŒå®Ÿæ–½ã•ã‚Œã¾ã™ã€‚ãªãŠã€ 副リãƒã‚¸ãƒˆãƒªãŒ Git ãªã„ã—\n"
-" Subversion å½¢å¼ã®å ´åˆã€ ç¾çŠ¶ã§ã¯ã€ 何ã®è¡¨ç¤ºã‚‚ç„¡ã—ã«ã€\n"
-" 登録除外è¦æ±‚を無視ã—ã¾ã™ã€‚"
msgid ""
":incoming: incoming does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
-":incoming: -S/--subrepos 指定ãŒç„¡ã„é™ã‚Šã€ å–ã‚Šè¾¼ã¿ãƒªãƒ“ジョンã®ç¢ºèªã¯ã€\n"
-" å†å¸°çš„ã«ã¯å®Ÿæ–½ã•ã‚Œã¾ã›ã‚“。 ãªãŠã€ 副リãƒã‚¸ãƒˆãƒªãŒ Git ãªã„ã—\n"
-" Subversion å½¢å¼ã®å ´åˆã€ ç¾çŠ¶ã§ã¯ã€ 何ã®è¡¨ç¤ºã‚‚ç„¡ã—ã«ã€\n"
-" å–ã‚Šè¾¼ã¿ãƒªãƒ“ジョンã®ç¢ºèªè¦æ±‚を無視ã—ã¾ã™ã€‚"
msgid ""
":outgoing: outgoing does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
-":outgoing: -S/--subrepos 指定ãŒç„¡ã„é™ã‚Šã€ å映予定リビジョンã®ç¢ºèªã¯ã€\n"
-" å†å¸°çš„ã«ã¯å®Ÿæ–½ã•ã‚Œã¾ã›ã‚“。 ãªãŠã€ 副リãƒã‚¸ãƒˆãƒªãŒ Git ãªã„ã—\n"
-" Subversion å½¢å¼ã®å ´åˆã€ ç¾çŠ¶ã§ã¯ã€ 何ã®è¡¨ç¤ºã‚‚ç„¡ã—ã«ã€\n"
-" å映予定リビジョンã®ç¢ºèªè¦æ±‚を無視ã—ã¾ã™ã€‚"
msgid ""
":pull: pull is not recursive since it is not clear what to pull prior\n"
@@ -20984,21 +15648,13 @@ msgid ""
" changesets is expensive at best, impossible in the Subversion\n"
" case."
msgstr ""
-":pull: リビジョンå–ã‚Šè¾¼ã¿ãŒå†å¸°çš„ã«å®Ÿæ–½ã•ã‚Œãªã„ã®ã¯ã€ :hg:`update`\n"
-" ã«å…ˆç«‹ã¤å–ã‚Šè¾¼ã¿ãƒªãƒ“ジョンã®å–æ¨é¸æŠžãŒã€ 自明ã§ã¯ãªã„ãŸã‚ã§ã™ã€‚\n"
-" å‚照中ã®å…¨å‰¯ãƒªãƒã‚¸ãƒˆãƒªã«ãŠã„ã¦ã€ å…¨ã¦ã®å¤‰æ›´ã‚’å–り込むã®ã¯ã€\n"
-" éžå¸¸ã«é«˜ã‚³ã‚¹ãƒˆã§ã™ã—〠Subversion å½¢å¼ã®å ´åˆã¯å®Ÿè¡Œè‡ªä½“ãŒä¸å¯èƒ½ã§ã™ã€‚"
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. Push is a no-op for Subversion subrepositories."
+" repositories."
msgstr ""
-":push: 親リãƒã‚¸ãƒˆãƒªã§ã®å±¥æ­´å映ã®éš›ã«ã¯ã€ ã¾ãšã¯å…¨å‰¯ãƒªãƒã‚¸ãƒˆãƒªã«ãŠã„ã¦ã€\n"
-" 履歴å映ãŒè‡ªå‹•çš„ã«å®Ÿæ–½ã•ã‚Œã¾ã™ã€‚ ã“ã‚Œã¯ã€ 親リãƒã‚¸ãƒˆãƒªãŒå‚ç…§ã™ã‚‹ã€\n"
-" 副リãƒã‚¸ãƒˆãƒªã®ãƒªãƒ“ジョンを〠広ãå‚ç…§å¯èƒ½ã¨ã™ã‚‹ãŸã‚ã§ã™ã€‚\n"
-" ãªãŠã€ Subversion å½¢å¼ã®å ´åˆã¯ã€ 履歴å映æ“作ã¯ä½•ã‚‚è¡Œã„ã¾ã›ã‚“。"
msgid ""
":status: status does not recurse into subrepositories unless\n"
@@ -21007,11 +15663,6 @@ msgid ""
" elements. Subversion subrepositories are currently silently\n"
" ignored."
msgstr ""
-":status: -S/--subrepos 指定ãŒç„¡ã„é™ã‚Šã€ 状態表示ã¯ã€\n"
-" å†å¸°çš„ã«ã¯å®Ÿæ–½ã•ã‚Œã¾ã›ã‚“。\n"
-" 副リãƒã‚¸ãƒˆãƒªä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®çŠ¶æ…‹è¡¨ç¤ºã¯ã€ 通常ã®çŠ¶æ…‹è¡¨ç¤ºã¨åŒã˜å½¢å¼ã§ã™ã€‚\n"
-" ãªãŠã€ 副リãƒã‚¸ãƒˆãƒªãŒ Subversion å½¢å¼ã®å ´åˆã€ ç¾çŠ¶ã§ã¯ã€\n"
-" 何ã®è¡¨ç¤ºã‚‚ç„¡ã—ã«ã€ 状態表示è¦æ±‚を無視ã—ã¾ã™ã€‚"
msgid ""
":update: update restores the subrepos in the state they were\n"
@@ -21020,20 +15671,11 @@ msgid ""
" will pull it in first before updating. This means that updating\n"
" can require network access when using subrepositories."
msgstr ""
-":update: 作業領域更新ã«ã‚ˆã‚Šã€ 副リãƒã‚¸ãƒˆãƒªã§ã¯ã€ 指定リビジョンã«ãŠã‘ã‚‹ã€\n"
-" コミット時点ã®çŠ¶æ…‹ãŒå¾©å…ƒã•ã‚Œã¾ã™ã€‚ 副リãƒã‚¸ãƒˆãƒªã«ãŠã„ã¦ã€\n"
-" 復元対象リビジョンãŒåˆ©ç”¨ä¸å¯èƒ½ãªå ´åˆã€ 作業領域更新ã«å…ˆç«‹ã£ã¦ã€\n"
-" 対象リビジョンã®å–ã‚Šè¾¼ã¿ãŒå®Ÿæ–½ã•ã‚Œã¾ã™ã€‚ (※ 訳注: Subversion å½¢å¼ã¯ã€\n"
-" 履歴情報ãŒã‚µãƒ¼ãƒå´ã«ã‚ã‚‹ãŸã‚〠常ã«å¯¾è±¡ãƒªãƒ“ジョンã®å–ã‚Šè¾¼ã¿ãŒå¿…è¦)\n"
-" ã“ã®æŒ™å‹•ã¯ã€ 副リãƒã‚¸ãƒˆãƒªåˆ©ç”¨ã«ã‚ˆã£ã¦ã€ 作業領域更新ã®éš›ã«ã€\n"
-" ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶šãŒå¿…è¦ã¨ãªã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚"
msgid ""
"Remapping Subrepositories Sources\n"
-"================================="
+"---------------------------------"
msgstr ""
-"副リãƒã‚¸ãƒˆãƒªé€£æºå…ˆã®æ›¸ãæ›ãˆ\n"
-"============================"
msgid ""
"A subrepository source location may change during a project life,\n"
@@ -21042,12 +15684,6 @@ msgid ""
"file or in Mercurial configuration. See the ``[subpaths]`` section in\n"
"hgrc(5) for more details."
msgstr ""
-"親リãƒã‚¸ãƒˆãƒªã®åˆ©ç”¨æœŸé–“中ã«ã€ 副リãƒã‚¸ãƒˆãƒªã®é€£æºå…ˆãŒå¤‰æ›´ã•ã‚ŒãŸå ´åˆã€\n"
-"変更å‰ã«è¦ªãƒªãƒã‚¸ãƒˆãƒªã§è¨˜éŒ²ã•ã‚ŒãŸãƒªãƒ“ジョンãŒæŒã¤é€£æºå…ˆæƒ…å ±ã¯ã€\n"
-"無効ã¨ãªã£ã¦ã—ã¾ã„ã¾ã™ã€‚ 親リãƒã‚¸ãƒˆãƒªã® ``hgrc`` ファイルãªã„ã— Mercurial\n"
-"ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã«ãŠã„ã¦ã€ 連æºå…ˆæƒ…å ±ã®æ›¸ãæ›ãˆãƒ«ãƒ¼ãƒ«ã‚’定義ã™ã‚‹ã“ã¨ã§ã€\n"
-"ã“ã®å•é¡Œã‚’解消å¯èƒ½ã§ã™ã€‚ 詳細ã«é–¢ã—ã¦ã¯ hgrc(5) 㮠``[subpaths]``\n"
-"セクションをå‚ç…§ã—ã¦ãã ã•ã„。 (※ 訳注: :hg:`help config` ã§ã‚‚å‚ç…§å¯èƒ½)"
msgid ""
"Mercurial allows you to customize output of commands through\n"
@@ -21101,7 +15737,7 @@ msgstr ""
"log çš„ãªã‚³ãƒžãƒ³ãƒ‰ã§ã®ãƒ†ãƒ³ãƒ—レート利用ã®éš›ã«ã¯å¸¸ã«ä½¿ç”¨å¯èƒ½ã§ã™:"
msgid ".. keywordsmarker"
-msgstr ".. keywordsmarker"
+msgstr ""
msgid ""
"The \"date\" keyword does not produce human-readable output. If you\n"
@@ -21129,7 +15765,7 @@ msgid "List of filters:"
msgstr "フィルター一覧(入力ã¨ã€ ãã‚Œã«å¯¾ã™ã‚‹å‡ºåŠ›):"
msgid ".. filtersmarker\n"
-msgstr ".. filtersmarker\n"
+msgstr ""
msgid "Valid URLs are of the form::"
msgstr "有効㪠URL 指定ã¯ä»¥ä¸‹ã®å½¢å¼ã§ã™::"
@@ -21162,8 +15798,8 @@ msgid ""
"changeset to use from the remote repository. See also :hg:`help\n"
"revisions`."
msgstr ""
-"連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªæŒ‡å®šã«ãŠã„ã¦ã€ '#' 記å·ã«ç¶šã‘㦠ID を指定ã™ã‚‹ã“ã¨ã§ã€\n"
-"特定ã®ãƒ–ランãƒã€ ã‚¿ã‚°ãªã„ã—リビジョンを指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚\n"
+"連æºå…ˆãƒªãƒã‚¸ãƒˆãƒªæŒ‡å®šã«ãŠã„ã¦ã€ '#' 記å·ã«ç¶šã‘ã¦è­˜åˆ¥å­ã‚’指定ã™ã‚‹ã“ã¨ã§ã€\n"
+"特定ã®ãƒ–ランãƒã€ ã‚¿ã‚°ãªã„ã—ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã‚’指定ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚\n"
":hg:`help revisions` ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ""
@@ -21224,14 +15860,14 @@ msgid ""
" configuration file or with the --ssh command line option."
msgstr ""
" ã‚ã‚‹ã„ã¯ã€ 設定ファイルã«ãŠã‘ã‚‹ ssh コマンド指定や〠コマンドラインã§ã®\n"
-" --ssh ã«å¯¾ã—ã¦ã€ 'ssh -C' を指定ã™ã‚‹æ–¹æ³•ã‚‚ã‚ã‚Šã¾ã™ã€‚"
+" --ssh オプションã«å¯¾ã—ã¦ã€ 'ssh -C' を指定ã™ã‚‹æ–¹æ³•ã‚‚ã‚ã‚Šã¾ã™ã€‚"
msgid ""
"These URLs can all be stored in your configuration file with path\n"
"aliases under the [paths] section like so::"
msgstr ""
"連æºå…ˆ URL ã¯ã€ 設定ファイル㮠[paths] セクションã§ã€\n"
-"別åを付ã‘ã¦è¨˜è¿°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™::"
+"別åを付ã‘ã¦è¨˜è¿°ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™::"
msgid ""
" [paths]\n"
@@ -21248,7 +15884,7 @@ msgid ""
"You can then use the alias for any command that uses a URL (for\n"
"example :hg:`pull alias1` will be treated as :hg:`pull URL1`)."
msgstr ""
-"URL 指定ãŒå¿…è¦ãªã‚³ãƒžãƒ³ãƒ‰ã«å¯¾ã—ã¦ã¯ã€ 別åを指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™\n"
+"URL 指定ãŒå¿…è¦ãªã‚³ãƒžãƒ³ãƒ‰ã«å¯¾ã—ã¦ã¯ã€ 別åを指定ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™\n"
"(例ãˆã°ã€ :hg:`pull alias1` 㯠:hg:`pull URL1` ã¨åŒç¾©ã§ã™)。"
msgid ""
@@ -21266,9 +15902,9 @@ msgid ""
" pull-like commands (including incoming and outgoing)."
msgstr ""
"default:\n"
-" :hg:`clone` ã«ã‚ˆã£ã¦è¤‡è£½ã—ãŸå ´åˆã€ æ–°è¦ãƒªãƒã‚¸ãƒˆãƒªã® 'default' ã¨ã—ã¦\n"
+" 'hg clone' ã«ã‚ˆã£ã¦è¤‡è£½ã—ãŸå ´åˆã€ æ–°è¦ãƒªãƒã‚¸ãƒˆãƒªã® 'default' ã¨ã—ã¦\n"
" 複製元リãƒã‚¸ãƒˆãƒªã® URL ãŒä¿å­˜ã•ã‚Œã¾ã™ã€‚\n"
-" 以後〠連æºå…ˆã‚’çœç•¥ã—㦠:hg:`push` ã‚„ :hg:`pull` ã«é¡žã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’\n"
+" 以後〠連æºå…ˆã‚’çœç•¥ã—㦠'hg push' ã‚„ 'hg pull' ã«é¡žã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’\n"
" 実行ã—ãŸéš›ã«ã¯ã€ ã“ã® URL ãŒé€£æºå…ˆã¨ã—ã¦ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid ""
@@ -21277,7 +15913,7 @@ msgid ""
" prefer it over 'default' if both are defined.\n"
msgstr ""
"default-push:\n"
-" :hg:`push` ã¯ã€ 'default-push' ã®åˆ¥åã§å®šç¾©ã•ã‚Œã‚‹ URL を探ã—ã¾ã™ã€‚\n"
+" 'hg push' ã¯ã€ 'default-push' ã®åˆ¥åã§å®šç¾©ã•ã‚Œã‚‹ URL を探ã—ã¾ã™ã€‚\n"
" 'default' ãŒå®šç¾©ã•ã‚Œã¦ã„ã‚‹å ´åˆã§ã‚‚〠'default-push' ãŒå®šç¾©ã•ã‚Œã¦ã„ã‚Œã°\n"
" ã“ã¡ã‚‰ãŒå„ªå…ˆã•ã‚Œã¾ã™ã€‚\n"
@@ -21304,9 +15940,6 @@ msgstr "作業領域ã®æ›´æ–°ä¸­\n"
msgid "destination directory: %s\n"
msgstr "複製先ディレクトリ: %s\n"
-msgid "empty destination path is not valid"
-msgstr "複製先指定ã«ãŠã‘る空ã®ãƒ‘スã¯ä¸æ­£ã§ã™"
-
#, python-format
msgid "destination '%s' already exists"
msgstr "複製先 '%s' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™"
@@ -21330,7 +15963,7 @@ msgstr "ブランム%s ã¸æ›´æ–°ä¸­\n"
#, python-format
msgid ""
"%d files updated, %d files merged, %d files removed, %d files unresolved\n"
-msgstr "ファイルã®æ›´æ–°æ•° %d〠マージ数 %d〠削除数 %d〠è¡çªæœªè§£æ¶ˆæ•° %d\n"
+msgstr "ファイル状態: æ›´æ–°æ•° %d〠マージ数 %d〠削除数 %d〠è¡çªæœªè§£æ¶ˆæ•° %d\n"
msgid "use 'hg resolve' to retry unresolved file merges\n"
msgstr "'hg resolve' ã§ãƒžãƒ¼ã‚¸ã®è¡çªã‚’解消ã—ã¦ãã ã•ã„\n"
@@ -21367,12 +16000,8 @@ msgid "cannot start server at '%s:%d': %s"
msgstr "'%s:%d' ã§ã®ã‚µãƒ¼ãƒèµ·å‹•ã«å¤±æ•—: %s"
#, python-format
-msgid "(binary file %s, hash: %s)"
-msgstr "(ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ« %s, ãƒãƒƒã‚·ãƒ¥å€¤: %s)"
-
-#, python-format
msgid " %d files changed, %d insertions(+), %d deletions(-)\n"
-msgstr " 更新ファイル数 %d〠追加 %d 行(+)〠削除 %d 行(-)\n"
+msgstr " %d ファイル変更〠追加 %d 行(+)〠削除 %d 行(-)\n"
#, python-format
msgid "calling hook %s: %s\n"
@@ -21428,10 +16057,6 @@ msgstr "%s フック %s"
msgid "warning: %s hook %s\n"
msgstr "警告: %s フック %s\n"
-#, python-format
-msgid "loading %s hook failed:\n"
-msgstr "フック %s ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—:\n"
-
msgid "kb"
msgstr "キロãƒã‚¤ãƒˆ"
@@ -21479,6 +16104,9 @@ msgstr "'%s' ã¯å£Šã‚ŒãŸ Content-Type ヘッダ(%s)ã‚’é€ä¿¡ã—ã¾ã—ãŸ"
msgid "'%s' uses newer protocol %s"
msgstr "'%s' ã¯æ–°ã—ã„プロトコル %s を使ã„ã¾ã™"
+msgid "unexpected response:"
+msgstr "未知ã®å¿œç­”:"
+
#, python-format
msgid "push failed: %s"
msgstr "履歴å映ã«å¤±æ•—: %s"
@@ -21524,6 +16152,14 @@ msgstr "警告: ã‚¿ã‚° %s ãŒæ—¢å­˜ã®ãƒ–ランãƒåã¨è¡çªã—ã¾ã™\n"
msgid "working copy of .hgtags is changed (please commit .hgtags manually)"
msgstr "作業領域㮠.hgtags ãŒå¤‰æ›´ã•ã‚Œã¦ã„ã¾ã™ï¼ˆæ‰‹å‹•ã§ã‚³ãƒŸãƒƒãƒˆã—ã¦ãã ã•ã„)"
+#, python-format
+msgid "working directory has unknown parent '%s'!"
+msgstr "作業領域ã®è¦ª '%s' ãŒæœªçŸ¥ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã™!"
+
+#, python-format
+msgid "unknown revision '%s'"
+msgstr "'%s' ã¯æœªçŸ¥ã®ãƒªãƒ“ジョンã§ã™"
+
msgid "abandoned transaction found - run hg recover"
msgstr "中断トランザクションを検出 - 'hg recover' を実施ã—ã¦ãã ã•ã„"
@@ -21533,9 +16169,6 @@ msgstr "中断ã•ã‚ŒãŸãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’ロールãƒãƒƒã‚¯ã—ã¦ã„ã¾
msgid "no interrupted transaction available\n"
msgstr "中断ã•ã‚ŒãŸãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-msgid "no rollback information available\n"
-msgstr "利用å¯èƒ½ãªãƒ­ãƒ¼ãƒ«ãƒãƒƒã‚¯æƒ…å ±ãŒã‚ã‚Šã¾ã›ã‚“\n"
-
#, python-format
msgid "repository tip rolled back to revision %s (undo %s: %s)\n"
msgstr "tip をリビジョン %s ã«å·»ã戻ã—ã¾ã—㟠(å–り消㗠%s: %s)\n"
@@ -21547,15 +16180,9 @@ msgstr "tip をリビジョン %s ã«å·»ã戻ã—ã¾ã—㟠(å–り消㗠%s)\n"
msgid "rolling back unknown transaction\n"
msgstr "未知ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã®å·»ã戻ã—中\n"
-msgid "rollback of last commit while not checked out may lose data"
-msgstr "作業領域ã¨ç„¡é–¢ä¿‚ã®ã‚³ãƒŸãƒƒãƒˆã®å·»ã戻ã—ã¯ã€ã‚³ãƒŸãƒƒãƒˆãƒ‡ãƒ¼ã‚¿ã‚’喪失ã—ã¾ã™"
-
-msgid "use -f to force"
-msgstr "-f 指定ã§å¼·åˆ¶å®Ÿè¡Œ"
-
#, python-format
-msgid "named branch could not be reset: current branch is still '%s'\n"
-msgstr "åå‰ã¤ãブランãƒã¯ãƒªã‚»ãƒƒãƒˆã§ãã¾ã›ã‚“ã®ã§ã€ '%s' ã®ã¾ã¾ã§ã™\n"
+msgid "named branch could not be reset, current branch is still: %s\n"
+msgstr "åå‰ã¤ãブランãƒã¯ãƒªã‚»ãƒƒãƒˆã§ãã¾ã›ã‚“ã®ã§ã€ %s ã®ã¾ã¾ã§ã™\n"
#, python-format
msgid "working directory now based on revisions %d and %d\n"
@@ -21565,6 +16192,9 @@ msgstr "%d 㨠%d ãŒä½œæ¥­é ˜åŸŸã®è¦ªãƒªãƒ“ジョンã«ãªã‚Šã¾ã—ãŸ\n"
msgid "working directory now based on revision %d\n"
msgstr "%d ãŒä½œæ¥­é ˜åŸŸã®è¦ªãƒªãƒ“ジョンã«ãªã‚Šã¾ã—ãŸ\n"
+msgid "no rollback information available\n"
+msgstr "利用å¯èƒ½ãªãƒ­ãƒ¼ãƒ«ãƒãƒƒã‚¯æƒ…å ±ãŒã‚ã‚Šã¾ã›ã‚“\n"
+
#, python-format
msgid "waiting for lock on %s held by %r\n"
msgstr "%s ã®ãƒ­ãƒƒã‚¯ (%rãŒä¿æŒ) ã®è§£æ”¾ã‚’å¾…ã£ã¦ã„ã¾ã™\n"
@@ -21584,16 +16214,13 @@ msgstr "警告: '%s'('%s' ã‹ã‚‰ã®è¤‡è£½)ã®ç¥–å…ˆãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\n"
msgid "cannot partially commit a merge (do not specify files or patterns)"
msgstr "マージã®éƒ¨åˆ†ã‚³ãƒŸãƒƒãƒˆã¯ã§ãã¾ã›ã‚“(ファイルåï¼ãƒ‘ターンã¯æŒ‡å®šã§ãã¾ã›ã‚“)"
-#, python-format
-msgid "commit with new subrepo %s excluded"
-msgstr "コミット対象ã«ã€æ–°è¦å‰¯ãƒªãƒã‚¸ãƒˆãƒª %s ãŒå«ã¾ã‚Œã¦ã„ã¾ã›ã‚“"
-
-msgid "use --subrepos for recursive commit"
-msgstr "--subrepos 指定ã§å†å¸°ã‚³ãƒŸãƒƒãƒˆ"
-
msgid "can't commit subrepos without .hgsub"
msgstr ".hgsub ã®ç„¡ã„副リãƒã‚¸ãƒˆãƒªã¯ã‚³ãƒŸãƒƒãƒˆã§ãã¾ã›ã‚“"
+#, python-format
+msgid "uncommitted changes in subrepo %s"
+msgstr "副リãƒã‚¸ãƒˆãƒª %s ã«æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ãŒã‚ã‚Šã¾ã™"
+
msgid "file not found!"
msgstr "ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“!"
@@ -21603,9 +16230,6 @@ msgstr "ディレクトé…下ã«ä¸€è‡´ã™ã‚‹ã‚‚ã®ãŒã‚ã‚Šã¾ã›ã‚“!"
msgid "file not tracked!"
msgstr "ファイルã¯æœªç™»éŒ²ã§ã™!"
-msgid "cannot commit merge with missing files"
-msgstr "管ç†å¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ãŒä¸åœ¨ã®çŠ¶æ³ã§ã¯ã€ãƒžãƒ¼ã‚¸çµæžœã‚’コミットã§ãã¾ã›ã‚“"
-
msgid "unresolved merge conflicts (see hg help resolve)"
msgstr "未解消ã®è¡çªãŒæ®‹ã£ã¦ã„ã¾ã™ (hg help resolveã‚’å‚ç…§ã—ã¦ãã ã•ã„)"
@@ -21615,41 +16239,23 @@ msgstr "副リãƒã‚¸ãƒˆãƒª %s ã§ã®ã‚³ãƒŸãƒƒãƒˆä¸­\n"
#, python-format
msgid "note: commit message saved in %s\n"
-msgstr "備考: コミットログを %s ã«ä¿å­˜ã—ã¾ã—ãŸ\n"
+msgstr "備考: コミットメッセージを %s ã«ä¿å­˜ã—ã¾ã—ãŸ\n"
#, python-format
msgid "trouble committing %s!\n"
msgstr "%s ã®ã‚³ãƒŸãƒƒãƒˆã«å¤±æ•—ã—ã¾ã—ãŸ!\n"
msgid "requesting all changes\n"
-msgstr "全リビジョンをå–得中\n"
+msgstr "å…¨ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã‚’å–得中\n"
msgid ""
"partial pull cannot be done because other repository doesn't support "
"changegroupsubset."
msgstr "連æºå…ˆã® changegroupsubset 機能未対応ã«ã‚ˆã‚Šã€ 部分å–ã‚Šè¾¼ã¿ã§ãã¾ã›ã‚“。"
-msgid "destination does not support push"
-msgstr "指定ã®é€£æºå…ˆã«ã¯å±¥æ­´å映ãŒã§ãã¾ã›ã‚“"
-
-#, python-format
-msgid "push includes an obsolete changeset: %s!"
-msgstr "履歴å映対象ã«ã€Žå»ƒæ­¢ã€ãƒªãƒ“ジョンãŒå«ã¾ã‚Œã¾ã™ï¼: %s"
-
-#, python-format
-msgid "push includes an unstable changeset: %s!"
-msgstr "履歴å映対象ã«ã€Žéžæ°¸ç¶šã€ãƒªãƒ“ジョンãŒå«ã¾ã‚Œã¾ã™ï¼: %s"
-
-#, python-format
-msgid "updating %s to public failed!\n"
-msgstr "%s ã®ãƒ•ã‚§ãƒ¼ã‚ºã® public 化ã«å¤±æ•—!\n"
-
-msgid "failed to push some obsolete markers!\n"
-msgstr "リビジョンã®ã€Žå»ƒæ­¢ã€æƒ…å ±ã®å映ã«å¤±æ•—ã—ã¾ã—ãŸï¼\n"
-
#, python-format
msgid "%d changesets found\n"
-msgstr "%d 個ã®ãƒªãƒ“ジョンãŒã‚ã‚Šã¾ã™\n"
+msgstr "%d 個ã®ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ\n"
msgid "bundling"
msgstr "ãƒãƒ³ãƒ‰ãƒ«ç”Ÿæˆä¸­"
@@ -21662,7 +16268,7 @@ msgid "empty or missing revlog for %s"
msgstr "%s ã«å¯¾ã™ã‚‹ãƒªãƒ“ジョンログãŒç©ºãªã„ã—ä¸åœ¨ã§ã™"
msgid "adding changesets\n"
-msgstr "リビジョンを追加中\n"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã‚’追加中\n"
msgid "chunks"
msgstr "ãƒãƒ£ãƒ³ã‚¯"
@@ -21689,9 +16295,9 @@ msgstr "(%+d個ã®ãƒ˜ãƒƒãƒ‰ï¼‰"
#, python-format
msgid "added %d changesets with %d changes to %d files%s\n"
-msgstr "%d 個ã®ãƒªãƒ“ジョン(%d ã®å¤‰æ›´ã‚’ %d ファイルã«é©ç”¨)を追加%s\n"
+msgstr "%d ã®ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆ(%d ã®å¤‰æ›´ã‚’ %d ファイルã«é©ç”¨)を追加%s\n"
-msgid "unexpected response from remote server:"
+msgid "Unexpected response from remote server:"
msgstr "連æºå…ˆã®ã‚µãƒ¼ãƒã‹ã‚‰äºˆæœŸã—ãªã„返信:"
msgid "operation forbidden by server"
@@ -21704,15 +16310,12 @@ msgid "the server sent an unknown error code"
msgstr "サーãƒãŒæœªçŸ¥ã®ã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ã‚’è¿”å´ã—ã¾ã—ãŸ"
msgid "streaming all changes\n"
-msgstr "全変更を転é€ä¸­\n"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã‚’転é€ä¸­\n"
#, python-format
msgid "%d files to transfer, %s of data\n"
msgstr "%d 個ã®ãƒ•ã‚¡ã‚¤ãƒ«è»¢é€(ãƒ‡ãƒ¼ã‚¿é‡ %s)\n"
-msgid "clone"
-msgstr "複製"
-
#, python-format
msgid "transferred %s in %.1f seconds (%s/sec)\n"
msgstr "%s ã‚’ %.1f 秒ã§é€ä¿¡ã—ã¾ã—ãŸï¼ˆ%s/秒)\n"
@@ -21784,12 +16387,10 @@ msgid "diff context lines count must be an integer, not %r"
msgstr "差分コンテキストã§ã®è¡Œæ•°æŒ‡å®šãŒä¸æ­£ã§ã™: %r"
#, python-format
-msgid "%s: untracked file differs\n"
-msgstr "%s: 未登録ファイルã«å·®åˆ†ã‚ã‚Š\n"
-
msgid ""
-"untracked files in working directory differ from files in requested revision"
-msgstr "指定リビジョンã§ã®è¨˜éŒ²å†…容ã¨ç•°ãªã‚‹æœªç™»éŒ²ãƒ•ã‚¡ã‚¤ãƒ«ãŒå­˜åœ¨ã—ã¾ã™"
+"untracked file in working directory differs from file in requested revision: "
+"'%s'"
+msgstr "未登録ファイル %s ã¯æŒ‡å®šãƒªãƒ“ジョンã§ã®è¨˜éŒ²å†…容ã¨ç•°ãªã‚Šã¾ã™"
#, python-format
msgid "case-folding collision between %s and %s"
@@ -21859,22 +16460,18 @@ msgstr "%s ã‹ã‚‰ %s ã«è¤‡è£½ä¸­\n"
msgid "note: possible conflict - %s was renamed multiple times to:\n"
msgstr "備考: è¡çªã®å¯èƒ½æ€§ - %s ãŒè¤‡æ•°ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«æ”¹åã•ã‚Œã¾ã—ãŸ:\n"
-#, python-format
-msgid "note: possible conflict - %s was deleted and renamed to:\n"
-msgstr "備考: è¡çªã®å¯èƒ½æ€§ - 削除ã¨å¹³è¡Œã—㦠%s ã¸ã®æ”¹åãŒã‚ã‚Šã¾ã™:\n"
-
msgid "merging with a working directory ancestor has no effect"
-msgstr "作業領域ã®ç¥–å…ˆã¨ã®ãƒžãƒ¼ã‚¸ã¯æ„味ãŒã‚ã‚Šã¾ã›ã‚“"
+msgstr "作業領域ã®å…ˆç¥–ã¨ã®ãƒžãƒ¼ã‚¸ã¯æ„味ãŒã‚ã‚Šã¾ã›ã‚“"
-msgid "use 'hg update' or check 'hg heads'"
-msgstr "'hg update' を実施ã™ã‚‹ã‹ã€'hg heads' çµæžœã‚’確èªã—ã¦ãã ã•ã„"
+msgid "nothing to merge (use 'hg update' or check 'hg heads')"
+msgstr "マージã¯ä¸è¦ã§ã™('hg update' ã‹ 'hg heads' を使用ã—ã¦ãã ã•ã„)"
-msgid "use 'hg status' to list changes"
-msgstr "変更一覧㯠'hg status' ã§ç¢ºèªã§ãã¾ã™"
+msgid "outstanding uncommitted changes (use 'hg status' to list changes)"
+msgstr "未コミット変更ãŒã‚ã‚Šã¾ã™('hg status' ã§å¤‰æ›´ä¸€è¦§è¡¨ç¤ºå¯èƒ½)"
#, python-format
msgid "outstanding uncommitted changes in subrepository '%s'"
-msgstr "副リãƒã‚¸ãƒˆãƒª %s ã®å¤‰æ›´ãŒæœªã‚³ãƒŸãƒƒãƒˆã§ã™"
+msgstr "副リãƒã‚¸ãƒˆãƒª %s ã«æœªã‚³ãƒŸãƒƒãƒˆå¤‰æ›´ã‚ã‚Š"
msgid "crosses branches (merge branches or use --clean to discard changes)"
msgstr ""
@@ -21911,40 +16508,24 @@ msgid "Warning!"
msgstr "警告!"
#, python-format
-msgid "parsing obsolete marker: unknown version %r"
-msgstr "『廃止ã€æƒ…報解æž: 未知ã®ãƒªãƒ“ジョン %r"
-
-#, python-format
-msgid ""
-"parsing obsolete marker: metadata is too short, %d bytes expected, got %d"
-msgstr "『廃止ã€æƒ…報解æž: メタデータã®æƒ³å®šã‚µã‚¤ã‚º %d ã«å¯¾ã—㦠%d ã—ã‹ã‚ã‚Šã¾ã›ã‚“"
-
-#, python-format
-msgid "unknown key: %r"
-msgstr "未知ã®ã‚­ãƒ¼ã§ã™: %r"
-
-msgid "unexpected old value"
-msgstr "旧値ã®æŒ‡å®šã¯æƒ³å®šå¤–ã§ã™"
-
-#, python-format
msgid "unexpected token: %s"
msgstr "未知ã®è¨˜è¿°: %s"
#, python-format
msgid "not a prefix: %s"
-msgstr "ä¸æ­£ãªæŽ¥é ­è¾ž: %s"
+msgstr ""
#, python-format
msgid "not an infix: %s"
-msgstr "ä¸æ­£ãªæŒ¿å…¥è¾ž: %s"
+msgstr ""
#, python-format
msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n"
-msgstr "%d 個ã®å·®åˆ†(ç·æ•° %d)ãŒé©ç”¨å¤±æ•— -- å´ä¸‹å·®åˆ†ã¯ %s ã«ä¿å­˜\n"
+msgstr "%d 個ã®ãƒãƒ³ã‚¯(ç·æ•° %d)ãŒé©ç”¨å¤±æ•— -- 失敗ãƒãƒ³ã‚¯ã¯ %s ã«ä¿å­˜\n"
#, python-format
msgid "cannot patch %s: file is not tracked"
-msgstr "%s ã«ãƒ‘ッãƒé©ç”¨ã§ãã¾ã›ã‚“: 構æˆç®¡ç†å¯¾è±¡ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+msgstr "%s ã«ãƒ‘ッãƒé©ç”¨å‡ºæ¥ã¾ã›ã‚“: 構æˆç®¡ç†å¯¾è±¡ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
#, python-format
msgid "unable to find '%s' for patching\n"
@@ -21956,7 +16537,7 @@ msgstr "ファイル %s をパッãƒé©ç”¨ã—ã¦ã„ã¾ã™\n"
#, python-format
msgid "bad hunk #%d %s (%d %d %d %d)"
-msgstr "ä¸æ­£ãªå·®åˆ†: #%d %s (%d %d %d %d)"
+msgstr "ä¸æ­£ãªãƒãƒ³ã‚¯: #%d %s (%d %d %d %d)"
#, python-format
msgid "cannot create %s: destination already exists\n"
@@ -21968,48 +16549,39 @@ msgstr "ファイル %s ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™\n"
#, python-format
msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n"
-msgstr "差分 #%d ã®é©ç”¨æˆåŠŸ:%d 行目〠曖昧性 %d (ä½ç½®è£œæ­£ %d è¡Œ)\n"
+msgstr "ãƒãƒ³ã‚¯ #%d ã®é©ç”¨æˆåŠŸ:%d 行目〠曖昧性 %d (ä½ç½®è£œæ­£ %d è¡Œ)\n"
#, python-format
msgid "Hunk #%d succeeded at %d (offset %d lines).\n"
-msgstr "差分 #%d ã®é©ç”¨æˆåŠŸ:%d 行目 (ä½ç½®è£œæ­£ %d è¡Œ)\n"
+msgstr "ãƒãƒ³ã‚¯ #%d ã®é©ç”¨æˆåŠŸ:%d 行目 (ä½ç½®è£œæ­£ %d è¡Œ)\n"
#, python-format
msgid "Hunk #%d FAILED at %d\n"
-msgstr "差分 #%d ã®é©ç”¨å¤±æ•—:%d 行目\n"
+msgstr "ãƒãƒ³ã‚¯ #%d ã®é©ç”¨å¤±æ•—:%d 行目\n"
#, python-format
msgid "bad hunk #%d"
-msgstr "ä¸æ­£ãªå·®åˆ†: #%d"
+msgstr "ä¸æ­£ãªãƒãƒ³ã‚¯: #%d"
#, python-format
msgid "bad hunk #%d old text line %d"
-msgstr "ä¸æ­£ãªå·®åˆ†: #%d 元テキスト %d 行目"
+msgstr "ä¸æ­£ãªãƒãƒ³ã‚¯: #%d 元テキスト %d 行目"
-#, python-format
-msgid "could not extract \"%s\" binary data"
-msgstr "ãƒã‚¤ãƒŠãƒªãƒ‡ãƒ¼ã‚¿ \"%s\" ãŒå±•é–‹ã§ãã¾ã›ã‚“"
-
-#, python-format
-msgid "could not decode \"%s\" binary patch: %s"
-msgstr "ãƒã‚¤ãƒŠãƒªãƒ‘ッム\"%s\" ã®è§£æžã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
+msgid "could not extract binary patch"
+msgstr "ãƒã‚¤ãƒŠãƒªãƒ‘ッãƒã®é©ç”¨ã«å¤±æ•—"
#, python-format
-msgid "\"%s\" length is %d bytes, should be %d"
-msgstr "ãƒã‚¤ãƒŠãƒªãƒ‘ッム\"%s\" ã®å®Ÿã‚µã‚¤ã‚º %d ã¨æƒ³å®šã‚µã‚¤ã‚º %d ãŒç•°ãªã‚Šã¾ã™"
+msgid "binary patch is %d bytes, not %d"
+msgstr "ãƒã‚¤ãƒŠãƒªãƒ‘ッãƒã®ã‚µã‚¤ã‚ºä¸æ­£: 実サイズ %d, 想定サイズ %d"
#, python-format
msgid "unable to strip away %d of %d dirs from %s"
-msgstr "%d 個ã®ãƒ‘スè¦ç´ é™¤å¤–ãŒã€ãƒ‘スè¦ç´ ã‚’ %d 個ã—ã‹æŒãŸãªã„ %s ã§å¤±æ•—ã—ã¾ã—ãŸ"
+msgstr "%d 個ã®ãƒ‘スè¦ç´ ã¯ã€ %d 個ã®ãƒ‘スè¦ç´ ã‚’æŒã¤ %s ã‹ã‚‰é™¤å¤–ã§ãã¾ã›ã‚“"
msgid "undefined source and destination files"
msgstr "パッãƒå¯¾è±¡ã®ãƒ•ã‚¡ã‚¤ãƒ«åãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
#, python-format
-msgid "failed to synchronize metadata for \"%s\""
-msgstr "\"%s\" ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®åŒæœŸã«å¤±æ•—ã—ã¾ã—ãŸ"
-
-#, python-format
msgid "cannot create %s: destination already exists"
msgstr "%s を作æˆã§ãã¾ã›ã‚“: 作業先ã«ã™ã§ã«å­˜åœ¨ã—ã¾ã™"
@@ -22029,25 +16601,6 @@ msgid "patch failed to apply"
msgstr "パッãƒã®é©ç”¨ã«å¤±æ•—"
#, python-format
-msgid "cannot %s; remote repository does not support the %r capability"
-msgstr "%s ãŒã§ãã¾ã›ã‚“。 連æºå…ˆã¯æ©Ÿèƒ½ %r ãŒæœªã‚µãƒãƒ¼ãƒˆã§ã™"
-
-msgid "cannot change null revision phase"
-msgstr "null リビジョンã®ãƒ•ã‚§ãƒ¼ã‚ºã¯å¤‰æ›´ã§ãã¾ã›ã‚“"
-
-#, python-format
-msgid "ignoring inconsistent public root from remote: %s\n"
-msgstr "連æºå…ˆã‹ã‚‰ã®çŸ›ç›¾ã™ã‚‹ãƒ•ã‚§ãƒ¼ã‚º public 化è¦æ±‚を無視: %s\n"
-
-#, python-format
-msgid "ignoring unexpected root from remote: %i %s\n"
-msgstr "連æºå…ˆã‹ã‚‰ã®äºˆæœŸã›ã¬ãƒ•ã‚§ãƒ¼ã‚ºæ›´æ–°è¦æ±‚を無視: %i %s\n"
-
-#, python-format
-msgid "phases.new-commit: not a valid phase name ('%s')"
-msgstr "phases.new-commit: ä¸æ­£ãªãƒ•ã‚§ãƒ¼ã‚ºåã§ã™ ('%s')"
-
-#, python-format
msgid "exited with status %d"
msgstr "終了コード %d ã§çµ‚了ã—ã¾ã—ãŸ"
@@ -22063,10 +16616,6 @@ msgid "adding branch\n"
msgstr "ブランãƒã‚’追加中\n"
#, python-format
-msgid "error removing %s: %s\n"
-msgstr "ファイル %s ã®ç ´æ£„ã«å¤±æ•—: %s\n"
-
-#, python-format
msgid "strip failed, full bundle stored in '%s'\n"
msgstr "リビジョン除外ã«å¤±æ•—: 完全ãªãƒãƒ³ãƒ‰ãƒ«ã‚’ '%s' ã«ä¿å­˜\n"
@@ -22075,8 +16624,8 @@ msgid "strip failed, partial bundle stored in '%s'\n"
msgstr "リビジョンã®é™¤å¤–ã«å¤±æ•—: 部分的ãªãƒãƒ³ãƒ‰ãƒ«ã‚’ '%s' ã«ä¿å­˜\n"
#, python-format
-msgid "revlog decompress error: %s"
-msgstr "revlog 圧縮ã®å±•é–‹ã‚¨ãƒ©ãƒ¼: %s"
+msgid "cannot %s; remote repository does not support the %r capability"
+msgstr "%s ãŒã§ãã¾ã›ã‚“。 連æºå…ˆã¯æ©Ÿèƒ½ %r ãŒæœªã‚µãƒãƒ¼ãƒˆã§ã™"
#, python-format
msgid "unknown compression type %r"
@@ -22105,7 +16654,7 @@ msgid "no node"
msgstr "ノードãŒã‚ã‚Šã¾ã›ã‚“"
msgid "ambiguous identifier"
-msgstr "曖昧㪠ID ã§ã™"
+msgstr "曖昧ãªè­˜åˆ¥å­ã§ã™"
msgid "no match found"
msgstr "該当ã™ã‚‹ ID ã¯ã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
@@ -22132,105 +16681,64 @@ msgid ""
"``adds(pattern)``\n"
" Changesets that add a file matching pattern."
msgstr ""
-"``adds(pattern)``\n"
-" パターンã«åˆè‡´ã™ã‚‹åå‰ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’登録ã—ãŸãƒªãƒ“ジョン。"
#. i18n: "adds" is a keyword
msgid "adds requires a pattern"
-msgstr "adds ã«ã¯ãƒ‘ターンを指定ã—ã¦ãã ã•ã„"
+msgstr "adds 指定ã¯ãƒ‘ターンã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``ancestor(single, single)``\n"
" Greatest common ancestor of the two changesets."
msgstr ""
-"``ancestor(single, single)``\n"
-" 2ã¤ã®ãƒªãƒ“ジョンã«å…±é€šãªæœ€æ–°ã®ç¥–先。"
#. i18n: "ancestor" is a keyword
msgid "ancestor requires two arguments"
-msgstr "ancestor ã®å¼•æ•°ã¯2ã¤ã§ã™"
+msgstr "ancestor 指定ã«ã¯2ã¤ã®å¼•æ•°ãŒå¿…è¦ã§ã™"
#. i18n: "ancestor" is a keyword
msgid "ancestor arguments must be single revisions"
-msgstr "ancestor ã®å¼•æ•°ã«ã¯ãã‚Œãžã‚Œå˜ä¸€ãƒªãƒ“ジョンを指定ã—ã¦ãã ã•ã„"
+msgstr "ancestor ã®å¼•æ•°ã¯ãã‚Œãžã‚Œå˜ä¸€ãƒªãƒ“ジョンã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``ancestors(set)``\n"
" Changesets that are ancestors of a changeset in set."
msgstr ""
-"``ancestors(set)``\n"
-" set 中ã®ãƒªãƒ“ジョンã«å¯¾ã™ã‚‹ç¥–先リビジョン群。"
msgid "~ expects a number"
-msgstr "~ ã«ã¯æ•°å€¤ã‚’指定ã—ã¦ãã ã•ã„"
+msgstr ""
msgid ""
"``author(string)``\n"
" Alias for ``user(string)``."
msgstr ""
-"``author(string)``\n"
-" ``user(string)`` 記述ã®åˆ¥å。"
#. i18n: "author" is a keyword
msgid "author requires a string"
-msgstr "author ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
-
-msgid ""
-"``bisect(string)``\n"
-" Changesets marked in the specified bisect status:"
-msgstr ""
-"``bisect(string)``\n"
-" 探索状態ã«åˆè‡´ã™ã‚‹ãƒªãƒ“ジョン群:"
+msgstr "author 指定ã¯æ–‡å­—列ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
-" - ``good``, ``bad``, ``skip``: csets explicitly marked as good/bad/skip\n"
-" - ``goods``, ``bads`` : csets topologicaly good/bad\n"
-" - ``range`` : csets taking part in the bisection\n"
-" - ``pruned`` : csets that are goods, bads or skipped\n"
-" - ``untested`` : csets whose fate is yet unknown\n"
-" - ``ignored`` : csets ignored due to DAG topology\n"
-" - ``current`` : the cset currently being bisected"
+"``bisected(string)``\n"
+" Changesets marked in the specified bisect state (good, bad, skip)."
msgstr ""
-" - ``good``, ``bad``, ``skip``: å„状態ã«ãƒžãƒ¼ã‚¯ã•ã‚ŒãŸãƒªãƒ“ジョン群\n"
-" - ``goods``, ``bads`` : good ãªã„ã— bad ã¨åˆ¤æ–­ã•ã‚ŒãŸãƒªãƒ“ジョン群\n"
-" - ``range`` : 探索範囲中ã®ãƒªãƒ“ジョン群 \n"
-" - ``pruned`` : 状態ãŒç¢ºå®šã—ãŸãƒªãƒ“ジョン群\n"
-" - ``untested`` : 状態ãŒæœªç¢ºå®šã®ãƒªãƒ“ジョン群\n"
-" - ``ignored`` : 探索対象ã‹ã‚‰é™¤å¤–ã•ã‚ŒãŸãƒªãƒ“ジョン群\n"
-" - ``current`` : ç¾åœ¨ã®æŽ¢ç´¢å¯¾è±¡ãƒªãƒ“ジョン"
-#. i18n: "bisect" is a keyword
msgid "bisect requires a string"
-msgstr "bisect ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
+msgstr "bisect 指定ã¯æ–‡å­—列ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
-msgid ""
-"``bookmark([name])``\n"
-" The named bookmark or all bookmarks."
+msgid "invalid bisect state"
msgstr ""
-"``bookmark([name])``\n"
-" 指定ブックマーク対象ã€ãªã„ã—全ブックマーク対象。"
msgid ""
-" If `name` starts with `re:`, the remainder of the name is treated as\n"
-" a regular expression. To match a bookmark that actually starts with `re:"
-"`,\n"
-" use the prefix `literal:`."
+"``bookmark([name])``\n"
+" The named bookmark or all bookmarks."
msgstr ""
-" `name` ㌠`re:` ã§å§‹ã¾ã‚‹å ´åˆã€ 残りã¯æ­£è¦è¡¨ç¾ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™ã€‚\n"
-" ブックマークåãã®ã‚‚ã®ãŒ `re:` ã§å§‹ã¾ã‚‹å ´åˆã¯ã€ åå‰ã‚’ `literal:`\n"
-" 付ãã§æŒ‡å®šã—ã¦ãã ã•ã„。"
#. i18n: "bookmark" is a keyword
msgid "bookmark takes one or no arguments"
-msgstr "bookmark ã®å¼•æ•°ã¯æœ€å¤§1ã¤ã§ã™"
+msgstr "bookmark 指定ã«ã¯1個ãªã„ã—2個ã®å¼•æ•°ãŒå¿…è¦ã§ã™"
#. i18n: "bookmark" is a keyword
msgid "the argument to bookmark must be a string"
-msgstr "bookmark ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
-
-#, python-format
-msgid "no bookmarks exist that match '%s'"
-msgstr "'%s' ã«åˆè‡´ã™ã‚‹ãƒ–ックマークã¯ã‚ã‚Šã¾ã›ã‚“"
+msgstr ""
msgid ""
"``branch(string or set)``\n"
@@ -22238,197 +16746,61 @@ msgid ""
"given\n"
" changesets."
msgstr ""
-"``branch(string or set)``\n"
-" 指定ブランãƒãªã„ã—リビジョン群ã®å±žã™ã‚‹ãƒ–ランãƒç¾¤ã«ã€ 属ã™ã‚‹ãƒªãƒ“ジョン。"
-
-msgid ""
-" If `string` starts with `re:`, the remainder of the name is treated as\n"
-" a regular expression. To match a branch that actually starts with `re:"
-"`,\n"
-" use the prefix `literal:`."
-msgstr ""
-" `string` ㌠`re:` ã§å§‹ã¾ã‚‹å ´åˆã€ 残りã¯æ­£è¦è¡¨ç¾ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™ã€‚\n"
-" ブランãƒåãã®ã‚‚ã®ãŒ `re:` ã§å§‹ã¾ã‚‹å ´åˆã¯ã€ åå‰ã‚’ `literal:`\n"
-" 付ãã§æŒ‡å®šã—ã¦ãã ã•ã„。"
msgid ""
"``children(set)``\n"
" Child changesets of changesets in set."
msgstr ""
-"``children(set)``\n"
-" 指定リビジョン群ã®å­ãƒªãƒ“ジョン群。"
msgid ""
"``closed()``\n"
" Changeset is closed."
msgstr ""
-"``closed()``\n"
-" 閉鎖ã•ã‚ŒãŸãƒªãƒ“ジョン群。"
#. i18n: "closed" is a keyword
msgid "closed takes no arguments"
-msgstr "closed ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "closed 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``contains(pattern)``\n"
" Revision contains a file matching pattern. See :hg:`help patterns`\n"
" for information about file patterns."
msgstr ""
-"``contains(pattern)``\n"
-" パターンã«åˆè‡´ã™ã‚‹åå‰ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒå­˜åœ¨ã™ã‚‹ãƒªãƒ“ジョン群。\n"
-" パターンã®è©³ç´°ã¯ :hg:`help patterns` ã‚’å‚照。"
#. i18n: "contains" is a keyword
msgid "contains requires a pattern"
-msgstr "contains ã«ã¯ãƒ‘ターンを指定ã—ã¦ãã ã•ã„"
-
-msgid ""
-"``converted([id])``\n"
-" Changesets converted from the given identifier in the old repository if\n"
-" present, or all converted changesets if no identifier is specified."
-msgstr ""
-"``converted([id])``\n"
-" id ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã¯ã€ 変æ›å…ƒã«ãŠã‘ã‚‹ id ã‹ã‚‰å¤‰æ›ã•ã‚ŒãŸãƒªãƒ“ジョンã€\n"
-" id 指定ãŒç„¡ã„å ´åˆã¯ã€ 変æ›ã•ã‚ŒãŸå…¨ã¦ã®ãƒªãƒ“ジョン群。"
-
-#. i18n: "converted" is a keyword
-msgid "converted takes one or no arguments"
-msgstr "converted ã®å¼•æ•°ã¯æœ€å¤§1ã¤ã§ã™"
-
-#. i18n: "converted" is a keyword
-msgid "converted requires a revision"
-msgstr "converted ã«ã¯ãƒªãƒ“ジョン識別å­ã‚’指定ã—ã¦ãã ã•ã„"
+msgstr "contains 指定ã¯ãƒ‘ターンã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``date(interval)``\n"
" Changesets within the interval, see :hg:`help dates`."
msgstr ""
-"``date(interval)``\n"
-" 指定期間中ã®ãƒªãƒ“ジョン群。 期間指定ã®è©³ç´°ã¯ :hg:`help dates` ã‚’å‚照。"
#. i18n: "date" is a keyword
msgid "date requires a string"
-msgstr "date ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
+msgstr "date 指定ã¯æ–‡å­—列ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``desc(string)``\n"
" Search commit message for string. The match is case-insensitive."
msgstr ""
-"``desc(string)``\n"
-" 文字列をコミットログã«æŒã¤ãƒªãƒ“ジョン群。\n"
-" åˆè‡´åˆ¤å®šã¯æ–‡å­—大å°ã‚’無視。"
#. i18n: "desc" is a keyword
msgid "desc requires a string"
-msgstr "desc ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
+msgstr "desc 指定ã¯æ–‡å­—列ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``descendants(set)``\n"
" Changesets which are descendants of changesets in set."
msgstr ""
-"``descendants(set)``\n"
-" 指定リビジョン群ã®å­å­«ãƒªãƒ“ジョン群。"
-
-msgid ""
-"``destination([set])``\n"
-" Changesets that were created by a graft, transplant or rebase "
-"operation,\n"
-" with the given revisions specified as the source. Omitting the optional "
-"set\n"
-" is the same as passing all()."
-msgstr ""
-"``destination([set])``\n"
-" 指定リビジョン群を元ã«ã€ graft, transplant, rebase ç­‰ã«ã‚ˆã£ã¦ã€\n"
-" 生æˆã•ã‚ŒãŸãƒªãƒ“ジョン群。 set 指定ãŒçœç•¥ã•ã‚ŒãŸå ´åˆã€ ``all()``\n"
-" 指定相当ã¨ã¿ãªã—ã¾ã™ã€‚"
-
-msgid ""
-"``draft()``\n"
-" Changeset in draft phase."
-msgstr ""
-"``draft()``\n"
-" フェーズ㌠draft ãªãƒªãƒ“ジョン群。"
-
-#. i18n: "draft" is a keyword
-msgid "draft takes no arguments"
-msgstr "draft ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
-
-msgid ""
-"``extinct()``\n"
-" Obsolete changesets with obsolete descendants only."
-msgstr ""
-"``extinct()``\n"
-" å­å­«ãŒå…¨ã¦ã€Žå»ƒæ­¢ã€ãƒªãƒ“ジョンãªã€ã€Žå»ƒæ­¢ã€ãƒªãƒ“ジョン群。"
-
-#. i18n: "extinct" is a keyword
-msgid "extinct takes no arguments"
-msgstr "extinct ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
-
-msgid ""
-"``extra(label, [value])``\n"
-" Changesets with the given label in the extra metadata, with the given\n"
-" optional value."
-msgstr ""
-"``extra(label, [value])``\n"
-" extra メタデータã«ã€ 特定ã®åå‰ã®å€¤ã‚’æŒã¤ãƒªãƒ“ジョン群。 値指定ã«ã‚ˆã‚Šã€\n"
-" åˆè‡´å¯¾è±¡ãŒæ›´ã«çµžã‚Šè¾¼ã¾ã‚Œã¾ã™ã€‚"
-
-msgid ""
-" If `value` starts with `re:`, the remainder of the value is treated as\n"
-" a regular expression. To match a value that actually starts with `re:`,\n"
-" use the prefix `literal:`."
-msgstr ""
-" `value` ㌠`re:` ã§å§‹ã¾ã‚‹å ´åˆã€ 残りã¯æ­£è¦è¡¨ç¾ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™ã€‚\n"
-" 値ãã®ã‚‚ã®ãŒ `re:` ã§å§‹ã¾ã‚‹å ´åˆã¯ã€ 値を `literal:`\n"
-" 付ãã§æŒ‡å®šã—ã¦ãã ã•ã„。"
-
-#. i18n: "extra" is a keyword
-msgid "extra takes at least 1 and at most 2 arguments"
-msgstr "extra ã®å¼•æ•°ã¯ã€ 最低1ã¤ã€æœ€å¤§2ã¤ã§ã™"
-
-#. i18n: "extra" is a keyword
-msgid "first argument to extra must be a string"
-msgstr "extra ã®ç¬¬ï¼‘引数ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
-
-#. i18n: "extra" is a keyword
-msgid "second argument to extra must be a string"
-msgstr "extra ã®ç¬¬ï¼’引数ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
msgid ""
"``filelog(pattern)``\n"
" Changesets connected to the specified filelog."
msgstr ""
-"``filelog(pattern)``\n"
-" パターンã«åˆè‡´ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®æ”¹å¤‰ã«é–¢é€£ä»˜ã‘られãŸãƒªãƒ“ジョン群。"
-
-msgid ""
-" For performance reasons, ``filelog()`` does not show every changeset\n"
-" that affects the requested file(s). See :hg:`help log` for details. For\n"
-" a slower, more accurate result, use ``file()``."
-msgstr ""
-" 指定ファイルã®é–¢é€£ãƒªãƒ“ジョンã§ã‚ã£ã¦ã‚‚〠``filelog()`` ã«ã‚ˆã£ã¦ã€\n"
-" å¿…ãšã—も列挙ã•ã‚Œã‚‹ã¨ã¯é™ã‚‰ãªã„ã®ã¯ã€ 性能上ã®ç†ç”±ã‹ã‚‰ã§ã™ã€‚\n"
-" ã“ã®æŒ™å‹•ã®è©³ç´°ã«é–¢ã—ã¦ã¯ :hg:`help log` ã‚’å‚ç…§ã—ã¦ãã ã•ã„。\n"
-" 低速ã§ã‚‚〠正確ãªçµæžœãŒå¿…è¦ãªå ´åˆã¯ ``file()`` を使用ã—ã¦ãã ã•ã„。"
-#. i18n: "filelog" is a keyword
msgid "filelog requires a pattern"
-msgstr "filelog ã«ã¯ãƒ‘ターンを指定ã—ã¦ãã ã•ã„"
-
-msgid ""
-"``first(set, [n])``\n"
-" An alias for limit()."
-msgstr ""
-"``first(set, [n])``\n"
-" limit() 記述ã®åˆ¥å。"
-
-#, python-format
-msgid "%s takes no arguments or a filename"
-msgstr "%s ã®å¼•æ•°ã¯ã€ãƒ•ã‚¡ã‚¤ãƒ«åã‹ã€å¼•æ•°ç„¡ã—ã§ã™"
-
-#, python-format
-msgid "%s expected a filename"
-msgstr "%s ã«ã¯ãƒ•ã‚¡ã‚¤ãƒ«åを指定ã—ã¦ãã ã•ã„"
+msgstr "filelog 指定ã¯ãƒ‘ターンã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``follow([file])``\n"
@@ -22436,20 +16808,26 @@ msgid ""
" If a filename is specified, the history of the given file is followed,\n"
" including copies."
msgstr ""
-"``follow([file])``\n"
-" ``::.`` (作業領域ã®ç¬¬1親ã®ç¥–先リビジョン群) 記述ã®åˆ¥å。\n"
-" ファイルå指定ãŒã‚ã‚‹å ´åˆã€ 当該ファイルã®å±¥æ­´ (複製å«ã‚€) を辿りã¾ã™ã€‚"
+
+#. i18n: "follow" is a keyword
+msgid "follow takes no arguments or a filename"
+msgstr "follow 指定ã«ã¯å¼•æ•°ã‚‚ファイルåも指定ã§ãã¾ã›ã‚“"
+
+msgid "follow expected a filename"
+msgstr "follow 指定ã¯ãƒ•ã‚¡ã‚¤ãƒ«åã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
+
+#. i18n: "follow" is a keyword
+msgid "follow takes no arguments"
+msgstr "follow 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``all()``\n"
" All changesets, the same as ``0:tip``."
msgstr ""
-"``all()``\n"
-" 全リビジョン。 ``0:tip`` ã¨ç­‰ä¾¡ã€‚"
#. i18n: "all" is a keyword
msgid "all takes no arguments"
-msgstr "all ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "all 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``grep(regex)``\n"
@@ -22457,436 +16835,206 @@ msgid ""
" to ensure special escape characters are handled correctly. Unlike\n"
" ``keyword(string)``, the match is case-sensitive."
msgstr ""
-"``grep(regex)``\n"
-" ``keyword(string)`` ã¨åŒç­‰ã§ã™ãŒã€ æ­£è¦è¡¨ç¾ã‚’使用ã§ãã¾ã™ã€‚\n"
-" ``grep(r'...')`` å½¢å¼ã®å ´åˆã€ 特殊文字もãã®ã¾ã¾é©ç”¨ã•ã‚Œã¾ã™ã€‚\n"
-" (※ 訳注: 接頭辞 'r' ã®ä½¿ç”¨ã¯ã€ ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ç­‰ã‚’å«ã‚ã¦ã€\n"
-" 文字列をãã®ã¾ã¾ä½¿ç”¨ã™ã‚‹å ´åˆã® Python å¼ã®è¨˜æ³•ã§ã™)\n"
-" ``keyword(string)`` ã¨ç•°ãªã‚Šã€ 文字大å°ã¯ç„¡è¦–ã•ã‚Œã¾ã›ã‚“。"
#. i18n: "grep" is a keyword
msgid "grep requires a string"
-msgstr "grep ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
+msgstr "grep 指定ã¯æ–‡å­—列ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
#, python-format
msgid "invalid match pattern: %s"
msgstr "ä¸æ­£ãªãƒžãƒƒãƒãƒ³ã‚°ãƒ‘ターン: %s"
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles requires at least one argument"
-msgstr "_matchfiles ã«ã¯æœ€ä½Ž1ã¤ã®å¼•æ•°ãŒå¿…è¦ã§ã™"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles requires string arguments"
-msgstr "_matchfiles ã«ã¯æ–‡å­—列引数ãŒå¿…è¦ã§ã™"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles expected at most one revision"
-msgstr "_matchfiles ã¸ã®ãƒªãƒ“ジョン指定ã¯æœ€å¤§1ã¤ã§ã™"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles expected at most one default mode"
-msgstr "_matchfiles ã¸ã®ãƒ¢ãƒ¼ãƒ‰æŒ‡å®šã¯æœ€å¤§1ã¤ã§ã™"
-
-#. i18n: "_matchfiles" is a keyword
-#, python-format
-msgid "invalid _matchfiles prefix: %s"
-msgstr "ä¸æ­£ãª _matchfiles å‰ç½®è©žæŒ‡å®š: %s"
-
msgid ""
"``file(pattern)``\n"
" Changesets affecting files matched by pattern."
msgstr ""
-"``file(pattern)``\n"
-" パターンã«åˆè‡´ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã«æ”¹å¤‰ã‚’è¡Œã£ãŸãƒªãƒ“ジョン群。"
-
-msgid ""
-" For a faster but less accurate result, consider using ``filelog()``\n"
-" instead."
-msgstr ""
-" 多少厳密ã•ã«æ¬ ã‘ã¦ã‚‚〠性能ãŒå¿…è¦ãªå ´åˆã¯ã€ 代ã‚ã‚Šã« ``filelog()``\n"
-" ã®ä½¿ç”¨ã‚’検討ã—ã¦ã¿ã¦ãã ã•ã„。"
#. i18n: "file" is a keyword
msgid "file requires a pattern"
-msgstr "file ã«ã¯ãƒ‘ターンを指定ã—ã¦ãã ã•ã„"
+msgstr "file 指定ã¯ãƒ‘ターンã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``head()``\n"
" Changeset is a named branch head."
msgstr ""
-"``head()``\n"
-" åå‰ä»˜ãブランãƒã®ãƒ˜ãƒƒãƒ‰ãƒªãƒ“ジョン群。"
#. i18n: "head" is a keyword
msgid "head takes no arguments"
-msgstr "head ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "head 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``heads(set)``\n"
" Members of set with no children in set."
msgstr ""
-"``heads(set)``\n"
-" 指定リビジョン中ã®ã€ å­ãƒªãƒ“ジョンをæŒãŸãªã„リビジョン群。"
msgid ""
"``keyword(string)``\n"
" Search commit message, user name, and names of changed files for\n"
" string. The match is case-insensitive."
msgstr ""
-"``keyword(string)``\n"
-" 文字列ãŒã€ コミットログ〠ユーザå〠変更対象ファイルåã®ã€\n"
-" ã„ãšã‚Œã‹ã«åˆè‡´ã™ã‚‹ãƒªãƒ“ジョン群。 åˆè‡´åˆ¤å®šã¯æ–‡å­—大å°ã‚’無視。"
#. i18n: "keyword" is a keyword
msgid "keyword requires a string"
-msgstr "keyword ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
+msgstr "keyword 指定ã¯æ–‡å­—列ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
-"``limit(set, [n])``\n"
-" First n members of set, defaulting to 1."
+"``limit(set, n)``\n"
+" First n members of set."
msgstr ""
-"``limit(set, [n])``\n"
-" 指定リビジョン群ã®å†’é ­ n 個。 無指定時㯠1。"
#. i18n: "limit" is a keyword
-msgid "limit requires one or two arguments"
-msgstr "limit ã®å¼•æ•°ã¯1ã¤ãªã„ã—2ã¤ã§ã™"
+msgid "limit requires two arguments"
+msgstr "limit 指定ã«ã¯2ã¤ã®å¼•æ•°ãŒå¿…è¦ã§ã™"
#. i18n: "limit" is a keyword
msgid "limit requires a number"
-msgstr "limit ã«ã¯æ•°å€¤ã‚’指定ã—ã¦ãã ã•ã„"
+msgstr "limit 指定ã¯æ•°å€¤ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
#. i18n: "limit" is a keyword
msgid "limit expects a number"
-msgstr "limit ã«ã¯æ•°å€¤ã‚’指定ã—ã¦ãã ã•ã„"
+msgstr "limit 指定ã¯æ•°å€¤ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
-"``last(set, [n])``\n"
-" Last n members of set, defaulting to 1."
+"``last(set, n)``\n"
+" Last n members of set."
msgstr ""
-"``last(set, [n])``\n"
-" 指定リビジョン群ã®æœ«å°¾ n 個。 無指定時㯠1。"
#. i18n: "last" is a keyword
-msgid "last requires one or two arguments"
-msgstr "last ã®å¼•æ•°ã¯1ã¤ãªã„ã—2ã¤ã§ã™"
+msgid "last requires two arguments"
+msgstr "last 指定ã«ã¯2ã¤ã®å¼•æ•°ãŒå¿…è¦ã§ã™"
#. i18n: "last" is a keyword
msgid "last requires a number"
-msgstr "last ã«ã¯æ•°å€¤ã‚’指定ã—ã¦ãã ã•ã„"
+msgstr "last 指定ã¯æ•°å€¤ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
#. i18n: "last" is a keyword
msgid "last expects a number"
-msgstr "last ã«ã¯æ•°å€¤ã‚’指定ã—ã¦ãã ã•ã„"
+msgstr "last 指定ã¯æ•°å€¤ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``max(set)``\n"
" Changeset with highest revision number in set."
msgstr ""
-"``max(set)``\n"
-" 指定リビジョン群中ã§ã€ リビジョン番å·ãŒæœ€å¤§ã®ã‚‚ã®ã€‚"
msgid ""
"``merge()``\n"
" Changeset is a merge changeset."
msgstr ""
-"``merge()``\n"
-" マージ実施リビジョン群。"
#. i18n: "merge" is a keyword
msgid "merge takes no arguments"
-msgstr "merge ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "merge 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
msgid ""
"``min(set)``\n"
" Changeset with lowest revision number in set."
msgstr ""
-"``min(set)``\n"
-" 指定リビジョン群中ã§ã€ リビジョン番å·ãŒæœ€å°ã®ã‚‚ã®ã€‚"
msgid ""
"``modifies(pattern)``\n"
" Changesets modifying files matched by pattern."
msgstr ""
-"``modifies(pattern)``\n"
-" パターンã«åˆè‡´ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’改変ã—ãŸãƒªãƒ“ジョン群。"
#. i18n: "modifies" is a keyword
msgid "modifies requires a pattern"
-msgstr "modifies ã«ã¯ãƒ‘ターンを指定ã—ã¦ãã ã•ã„"
+msgstr "modifies 指定ã¯ãƒ‘ターンã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``id(string)``\n"
" Revision non-ambiguously specified by the given hex string prefix."
msgstr ""
-"``id(string)``\n"
-" 16進文字列をãƒãƒƒã‚·ãƒ¥å€¤ã¨ã¿ãªã—ã¦åŽ³å¯†ã«ç‰¹å®šå¯èƒ½ãªãƒªãƒ“ジョン。"
#. i18n: "id" is a keyword
msgid "id requires one argument"
-msgstr "id ã®å¼•æ•°ã¯1ã¤ã§ã™"
+msgstr "id 指定ã«ã¯1ã¤ã®å¼•æ•°ãŒå¿…è¦ã§ã™"
#. i18n: "id" is a keyword
msgid "id requires a string"
-msgstr "id ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
-
-msgid ""
-"``obsolete()``\n"
-" Mutable changeset with a newer version."
-msgstr ""
-"``obsolete()``\n"
-" æ–°è¦ãƒªãƒ“ジョンã«ã‚ˆã‚‹æ”¹å¤‰ãŒå¯èƒ½ãªãƒªãƒ“ジョン群。\n"
-" (※ 訳注: 『廃止ã€è¨­å®šã•ã‚Œã¦ã„るリビジョン群ã®ã“ã¨)"
-
-#. i18n: "obsolete" is a keyword
-msgid "obsolete takes no arguments"
-msgstr "obsolete ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
-
-msgid ""
-"``origin([set])``\n"
-" Changesets that were specified as a source for the grafts, transplants "
-"or\n"
-" rebases that created the given revisions. Omitting the optional set is "
-"the\n"
-" same as passing all(). If a changeset created by these operations is "
-"itself\n"
-" specified as a source for one of these operations, only the source "
-"changeset\n"
-" for the first operation is selected."
-msgstr ""
-"``origin([set])``\n"
-" 指定リビジョン群㮠graft, transplant, rebase ç­‰ã«ã‚ˆã‚‹ç”Ÿæˆã®éš›ã«ã€\n"
-" 元リビジョンã¨ã—ã¦æŒ‡å®šã•ã‚ŒãŸãƒªãƒ“ジョン群。 set 指定ãŒçœç•¥ã•ã‚ŒãŸå ´åˆã€\n"
-" ``all()`` 指定相当ã¨ã¿ãªã—ã¾ã™ã€‚ 当該æ“作ã§ç”Ÿæˆã•ã‚ŒãŸãƒªãƒ“ジョンãŒã€ \n"
-" 別ã®ãƒªãƒ“ジョン生æˆã®éš›ã«ã€ 生æˆå…ƒã¨ã—ã¦æŒ‡å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã¯ã€\n"
-" 最åˆã®ç”Ÿæˆæ“作ã«ãŠã‘る生æˆå…ƒã®ã¿ãŒã€ 生æˆå…ƒã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
+msgstr "id 指定ã¯æ–‡å­—列ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``outgoing([path])``\n"
" Changesets not found in the specified destination repository, or the\n"
" default push location."
msgstr ""
-"``outgoing([path])``\n"
-" 指定連æºå…ˆãªã„ã—無指定時å映先ã«ã€ 存在ã—ãªã„リビジョン群。"
#. i18n: "outgoing" is a keyword
msgid "outgoing takes one or no arguments"
-msgstr "outgoing ã®å¼•æ•°ã¯æœ€å¤§1ã¤ã§ã™"
+msgstr ""
#. i18n: "outgoing" is a keyword
msgid "outgoing requires a repository path"
-msgstr "outgoing ã«ã¯ãƒªãƒã‚¸ãƒˆãƒªãƒ‘スを指定ã—ã¦ãã ã•ã„"
+msgstr "outgoing 指定ã¯ãƒªãƒã‚¸ãƒˆãƒªã®ãƒ‘スã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``p1([set])``\n"
" First parent of changesets in set, or the working directory."
msgstr ""
-"``p1([set])``\n"
-" 指定リビジョン群ãªã„ã—作業領域ã®ã€ç¬¬1親リビジョン群。"
msgid ""
"``p2([set])``\n"
" Second parent of changesets in set, or the working directory."
msgstr ""
-"``p2([set])``\n"
-" 指定リビジョン群ãªã„ã—作業領域ã®ã€ç¬¬2親リビジョン群。"
msgid ""
"``parents([set])``\n"
" The set of all parents for all changesets in set, or the working "
"directory."
msgstr ""
-"``parents([set])``\n"
-" 指定リビジョン群ãªã„ã—作業領域ã®ã€ 全親リビジョン群。"
msgid "^ expects a number 0, 1, or 2"
-msgstr "^ ã«ã¯ 0〠1 ãªã„ã— 2 を指定ã—ã¦ãã ã•ã„"
+msgstr ""
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"
-" 指定リビジョン群ã«å­˜åœ¨ã—ãªã„ã‚‚ã®ãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã¯ç©ºé›†åˆã€\n"
-" ãれ以外ãªã‚‰æŒ‡å®šãƒªãƒ“ジョン群ãã®ã‚‚ã®ã€‚"
-
-msgid ""
-" If any of specified revisions is not present in the local repository,\n"
-" the query is normally aborted. But this predicate allows the query\n"
-" to continue even in such cases."
-msgstr ""
-" 対象リビジョン群ãŒã€ 存在ã—ãªã„リビジョンをå«ã‚€å ´åˆã€ 通常ã§ã‚ã‚Œã°ã€\n"
-" 処ç†ãŒä¸­æ–­ã•ã‚Œã¾ã™ãŒã€ present() ã«ã‚ˆã£ã¦å‡¦ç†ã‚’継続ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
-
-msgid ""
-"``public()``\n"
-" Changeset in public phase."
-msgstr ""
-"``public()``\n"
-" フェーズ㌠public ãªãƒªãƒ“ジョン群。"
-
-#. i18n: "public" is a keyword
-msgid "public takes no arguments"
-msgstr "public ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
-
-msgid ""
-"``remote([id [,path]])``\n"
-" Local revision that corresponds to the given identifier in a\n"
-" remote repository, if present. Here, the '.' identifier is a\n"
-" synonym for the current local branch."
-msgstr ""
-"``remote([id [,path]])``\n"
-" 指定 id 相当ã®ãƒªãƒ“ジョンãŒé€£æºå…ˆã«å­˜åœ¨ã™ã‚‹å ´åˆã¯å½“該リビジョンã€\n"
-" ãれ以外ã¯ç©ºé›†åˆã€‚ '.' 記述ã¯ç¾ãƒ–ランãƒåを指ã—ã¾ã™ã€‚"
-
-#. i18n: "remote" is a keyword
-msgid "remote takes one, two or no arguments"
-msgstr "remote ã®å¼•æ•°ã¯0ã‹ã‚‰2ã¤ã§ã™"
-
-#. i18n: "remote" is a keyword
-msgid "remote requires a string id"
-msgstr "remote ã«ã¯ id 文字列を指定ã—ã¦ãã ã•ã„"
-
-#. i18n: "remote" is a keyword
-msgid "remote requires a repository path"
-msgstr "remote ã«ã¯ãƒªãƒã‚¸ãƒˆãƒªãƒ‘スを指定ã—ã¦ãã ã•ã„"
msgid ""
"``removes(pattern)``\n"
" Changesets which remove files matching pattern."
msgstr ""
-"``removes(pattern)``\n"
-" パターンã«åˆè‡´ã™ã‚‹åå‰ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’登録除外ã—ãŸãƒªãƒ“ジョン群。"
#. i18n: "removes" is a keyword
msgid "removes requires a pattern"
-msgstr "removes ã«ã¯ãƒ‘ターンを指定ã—ã¦ãã ã•ã„"
+msgstr "removes 指定ã¯ãƒ‘ターンã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``rev(number)``\n"
" Revision with the given numeric identifier."
msgstr ""
-"``rev(number)``\n"
-" 数値ã«åˆè‡´ã™ã‚‹ãƒªãƒ“ジョン。"
#. i18n: "rev" is a keyword
msgid "rev requires one argument"
-msgstr "rev ã®å¼•æ•°ã¯1ã¤ã§ã™"
+msgstr "rev 指定ã«ã¯1ã¤ã®å¼•æ•°ãŒå¿…è¦ã§ã™"
#. i18n: "rev" is a keyword
msgid "rev requires a number"
-msgstr "rev ã«ã¯æ•°å€¤ã‚’指定ã—ã¦ãã ã•ã„"
+msgstr "rev 指定ã¯æ•°å€¤ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
#. i18n: "rev" is a keyword
msgid "rev expects a number"
-msgstr "rev ã«ã¯æ•°å€¤ã‚’指定ã—ã¦ãã ã•ã„"
-
-msgid ""
-"``matching(revision [, field])``\n"
-" Changesets in which a given set of fields match the set of fields in "
-"the\n"
-" selected revision or set."
-msgstr ""
-"``matching(revision [, field])``\n"
-" 指定リビジョン群 (revision) ã¨ã€æŒ‡å®šé …ç›® (field) 値ãŒåŒä¸€ãªã€\n"
-" リビジョンã®æŠ½å‡º (※ 訳注: ``and`` çµåˆç­‰ã§ã®æŠ½å‡ºå…ƒæŒ‡å®šãŒç„¡ã„å ´åˆã€\n"
-" 全リビジョンãŒæŠ½å‡ºå…ƒã«ãªã‚Šã¾ã™)。"
-
-msgid ""
-" To match more than one field pass the list of fields to match separated\n"
-" by spaces (e.g. ``author description``)."
-msgstr ""
-" 複数項目ã®åˆè‡´åˆ¤å®šã¯ã€ 対象項目を空白区切りã§æŒ‡å®šã—ã¾ã™\n"
-" (例: 'author description')。"
-
-msgid ""
-" Valid fields are most regular revision fields and some special fields."
-msgstr " リビジョンã®ä¸€èˆ¬çš„ãªé …目以外ã«ã€ 特別ãªé …目も指定ã§ãã¾ã™ã€‚"
-
-msgid ""
-" Regular revision fields are ``description``, ``author``, ``branch``,\n"
-" ``date``, ``files``, ``phase``, ``parents``, ``substate``, ``user``\n"
-" and ``diff``.\n"
-" Note that ``author`` and ``user`` are synonyms. ``diff`` refers to the\n"
-" contents of the revision. Two revisions matching their ``diff`` will\n"
-" also match their ``files``."
-msgstr ""
-" 一般的ãªé …ç›®ã«ã¯ã€``description``, ``author``, ``branch``,\n"
-" ``date``, ``files``, ``phase``, ``parents``, ``substate``, ``user``\n"
-" ãŠã‚ˆã³ ``diff`` ãŒã‚ã‚Šã¾ã™ã€‚ ``author`` 㨠``user`` ã¯åŒä¸€é …ç›®ã§ã™ã€‚\n"
-" ``diff`` ã¯å„リビジョンã§ã®å·®åˆ†ã‚’指ã—ã¾ã™ã€‚ ï¼’ã¤ã®ãƒªãƒ“ジョンã«ãŠã„ã¦\n"
-" ``diff`` ãŒä¸€è‡´ã™ã‚‹å ´åˆã¯ ``files`` も一致ã—ã¾ã™ã€‚"
-
-msgid ""
-" Special fields are ``summary`` and ``metadata``:\n"
-" ``summary`` matches the first line of the description.\n"
-" ``metadata`` is equivalent to matching ``description user date``\n"
-" (i.e. it matches the main metadata fields)."
-msgstr ""
-" 特殊項目ã«ã¯ ``summary`` ãŠã‚ˆã³ ``metadata`` ãŒã‚ã‚Šã¾ã™: ``summary``\n"
-" 㯠``description`` ã®ï¼‘行目ã«ç›¸å½“ã—ã¾ã™ã€‚ ``metadata`` ã¯\n"
-" ``description user date`` ã¨ã®åˆè‡´ã«ç›¸å½“ã—ã¾ã™ (ã“ã®å称ã¯ã€\n"
-" 「主ãªãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿é …ç›®ã¨ã®åˆè‡´ã€åˆ¤å®šã«ç”±æ¥ã—ã¾ã™)"
-
-msgid ""
-" ``metadata`` is the default field which is used when no fields are\n"
-" specified. You can match more than one field at a time."
-msgstr ""
-" フィールド指定ãŒç„¡ã„å ´åˆã€ ``metadata`` フィールドãŒå¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚\n"
-" åŒæ™‚ã«è¤‡æ•°ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®åˆè‡´åˆ¤å®šãŒå¯èƒ½ã§ã™ã€‚"
-
-#. i18n: "matching" is a keyword
-msgid "matching takes 1 or 2 arguments"
-msgstr "matching ã®å¼•æ•°ã¯1ã¤ã‹2ã¤ã§ã™"
-
-#. i18n: "matching" is a keyword
-msgid "matching requires a string as its second argument"
-msgstr "matching ã®ç¬¬2引数ã¯æ–‡å­—列ã§ã™"
-
-#. i18n: "matching" is a keyword
-#, python-format
-msgid "unexpected field name passed to matching: %s"
-msgstr "matching ã¸ã®æƒ³å®šå¤–ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰å指定: %s"
+msgstr "rev 指定ã¯æ•°å€¤ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``reverse(set)``\n"
" Reverse order of set."
msgstr ""
-"``reverse(set)``\n"
-" 指定リビジョン群ã®é€†é †ã€‚"
msgid ""
"``roots(set)``\n"
-" Changesets in set with no parent changeset in set."
-msgstr ""
-"``roots(set)``\n"
-" 指定リビジョン群中ã®ã€ 親リビジョンãŒæŒ‡å®šãƒªãƒ“ジョン群中ã«å­˜åœ¨ã—ãªã„ã€\n"
-" 全リビジョン。"
-
-msgid ""
-"``secret()``\n"
-" Changeset in secret phase."
+" Changesets with no parent changeset in set."
msgstr ""
-"``secret()``\n"
-" フェーズ㌠secret ãªãƒªãƒ“ジョン群。"
-
-#. i18n: "secret" is a keyword
-msgid "secret takes no arguments"
-msgstr "secret ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
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"
-" key ã§ã®æŒ‡å®šæ–¹æ³•ã§æ•´åˆ—ã—ãŸé›†åˆã€‚ 基本ã®æ•´åˆ—æ–¹å¼ã¯æ˜‡é †ã§ã€\n"
-" é™é †æ•´åˆ—ã®å ´åˆã¯ ``-key`` å½¢å¼ã§è¨˜è¿°ã—ã¾ã™ã€‚"
msgid " The keys can be:"
-msgstr " 指定å¯èƒ½ãªæ•´åˆ—æ–¹å¼ã¯:"
+msgstr ""
msgid ""
" - ``rev`` for the revision number,\n"
@@ -22895,74 +17043,35 @@ msgid ""
" - ``user`` for user name (``author`` can be used as an alias),\n"
" - ``date`` for the commit date"
msgstr ""
-" - リビジョン番å·é †ã® ``rev``\n"
-" - ブランãƒå順㮠``branch``\n"
-" - コミットログ (description) 順㮠``desc``\n"
-" - ユーザå順㮠``user`` (別åã® ``author`` も使用å¯èƒ½)\n"
-" - コミット日時順㮠``date``"
#. i18n: "sort" is a keyword
msgid "sort requires one or two arguments"
-msgstr "sort ã®å¼•æ•°ã¯1ã¤ãªã„ã—2ã¤ã§ã™"
+msgstr "sort 指定ã«ã¯1個ãªã„ã—2個ã®å¼•æ•°ãŒå¿…è¦ã§ã™"
-#. i18n: "sort" is a keyword
msgid "sort spec must be a string"
-msgstr "sort ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
+msgstr "sort ã¸ã®æ•´åˆ—æ–¹å¼æŒ‡å®šã¯æ–‡å­—列ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
#, python-format
msgid "unknown sort key %r"
msgstr "未知ã®æ•´åˆ—æ–¹å¼ %r"
-#, python-format
-msgid "invalid regular expression: %s"
-msgstr "ä¸æ­£ãªæ­£è¦è¡¨ç¾: %s"
-
msgid ""
"``tag([name])``\n"
" The specified tag by name, or all tagged revisions if no name is given."
msgstr ""
-"``tag([name])``\n"
-" 指定タグ対象リビジョン〠ãªã„ã—タグ付ã‘対象ã®å…¨ãƒªãƒ“ジョン群。"
#. i18n: "tag" is a keyword
msgid "tag takes one or no arguments"
-msgstr "tagged ã®å¼•æ•°ã¯æœ€å¤§1ã¤ã§ã™"
+msgstr "tagged 指定ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
#. i18n: "tag" is a keyword
msgid "the argument to tag must be a string"
-msgstr "tag ã«ã¯æ–‡å­—列を指定ã—ã¦ãã ã•ã„"
-
-#, python-format
-msgid "no tags exist that match '%s'"
-msgstr "'%s' ã«åˆè‡´ã™ã‚‹ã‚¿ã‚°ã¯ã‚ã‚Šã¾ã›ã‚“"
-
-msgid ""
-"``unstable()``\n"
-" Non-obsolete changesets with obsolete ancestors."
-msgstr ""
-"``unstable()``\n"
-" 祖先ã«ã€Žå»ƒæ­¢ã€ãƒªãƒ“ジョンをæŒã¤ã€ã€Žéžå»ƒæ­¢ã€ãƒªãƒ“ジョン群。"
-
-#. i18n: "unstable" is a keyword
-msgid "unstable takes no arguments"
-msgstr "unstable ã«ã¯å¼•æ•°ãŒæŒ‡å®šã§ãã¾ã›ã‚“"
+msgstr "tag 指定ã¯æ–‡å­—列ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid ""
"``user(string)``\n"
" User name contains string. The match is case-insensitive."
msgstr ""
-"``user(string)``\n"
-" 文字列をユーザåã«æŒã¤ãƒªãƒ“ジョン群。 åˆè‡´åˆ¤å®šã¯æ–‡å­—大å°ã‚’無視。"
-
-msgid ""
-" If `string` starts with `re:`, the remainder of the string is treated "
-"as\n"
-" a regular expression. To match a user that actually contains `re:`, use\n"
-" the prefix `literal:`."
-msgstr ""
-" `string` ㌠`re:` ã§å§‹ã¾ã‚‹å ´åˆã€ 残りã¯æ­£è¦è¡¨ç¾ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™ã€‚\n"
-" ユーザåãã®ã‚‚ã®ãŒ `re:` ã§å§‹ã¾ã‚‹å ´åˆã¯ã€ ユーザåã‚’ `literal:`\n"
-" 付ãã§æŒ‡å®šã—ã¦ãã ã•ã„。"
msgid "can't negate that"
msgstr "負値ã«ã§ãã¾ã›ã‚“"
@@ -22971,21 +17080,13 @@ msgid "not a symbol"
msgstr "シンボル以外ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸ"
#, python-format
-msgid "infinite expansion of revset alias \"%s\" detected"
-msgstr "revset 別å定義 \"%s\" ã¯ç„¡é™ã«å±•é–‹ã•ã‚Œã¦ã—ã¾ã„ã¾ã™"
-
-#, python-format
msgid "invalid number of arguments: %s"
-msgstr "引数ã®æ•°ãŒä¸æ­£ã§ã™: %s"
+msgstr ""
msgid "empty query"
msgstr "å•ã„åˆã‚ã›ãŒç©ºã§ã™"
#, python-format
-msgid "no changes found (ignored %d secret changesets)\n"
-msgstr "差分ã¯ã‚ã‚Šã¾ã›ã‚“ (secret フェーズ㮠%d 個ã®ãƒªãƒ“ジョンã¯ç„¡è¦–)\n"
-
-#, python-format
msgid "ui.portablefilenames value is invalid ('%s')"
msgstr "ui.portablefilenames 値ãŒä¸æ­£ã§ã™ ('%s')"
@@ -23002,8 +17103,8 @@ msgid "path contains illegal component: %s"
msgstr "パスã«ä¸æ­£ãªè¦ç´ ãŒå«ã¾ã‚Œã¦ã„ã¾ã™: %s"
#, python-format
-msgid "path '%s' is inside nested repo %r"
-msgstr "パス '%s' ã¯å…¥ã‚Œå­ãƒªãƒã‚¸ãƒˆãƒª %r 内ã«ã‚ã‚Šã¾ã™"
+msgid "path %r is inside nested repo %r"
+msgstr "パス %r ã¯å…¥ã‚Œå­ãƒªãƒã‚¸ãƒˆãƒª %r 内ã«ã‚ã‚Šã¾ã™"
#, python-format
msgid "path %r traverses symbolic link %r"
@@ -23013,9 +17114,6 @@ msgstr "パス %r ã¯ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ '%r' ãŒå«ã¾ã‚Œã¦ã„ã¾ã™"
msgid "could not symlink to %r: %s"
msgstr "%r ã«å¯¾ã—ã¦ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã§ãã¾ã›ã‚“: %s"
-msgid "empty revision range"
-msgstr "リビジョンã®ç¯„囲指定ãŒç©ºã§ã™"
-
#, python-format
msgid "recording removal of %s as rename to %s (%d%% similar)\n"
msgstr "%s ã®å‰Šé™¤ã‚’ %s ã¸ã®ãƒ•ã‚¡ã‚¤ãƒ«å変更ã¨ã—ã¦è¨˜éŒ²ä¸­ (類似度 %d%%)\n"
@@ -23034,12 +17132,6 @@ msgstr "未知ã®ãƒªãƒã‚¸ãƒˆãƒªå½¢å¼ã§ã™: '%s' サãƒãƒ¼ãƒˆãŒå¿…è¦ (è¦ Me
msgid "searching for changes\n"
msgstr "変更点を探索中\n"
-msgid "all local heads known remotely\n"
-msgstr "手元ã®å…¨ãƒ˜ãƒƒãƒ‰ã¯é€£æºå…ˆã§ã‚‚既知ã§ã™\n"
-
-msgid "sampling from both directions\n"
-msgstr "両方å‘ã‹ã‚‰æŽ¡å–中\n"
-
msgid "queries"
msgstr "å•ã„åˆã‚ã›"
@@ -23076,21 +17168,18 @@ msgid "password in URL not supported"
msgstr "パスワード付ã URL ã¯æœªã‚µãƒãƒ¼ãƒˆã§ã™"
msgid "could not create remote repo"
-msgstr "指定リãƒã‚¸ãƒˆãƒªã¨ã®é€£æºã«å¤±æ•—"
+msgstr "é éš”ホストã¨ã®é€£æºã«å¤±æ•—"
msgid "no suitable response from remote hg"
-msgstr "指定リãƒã‚¸ãƒˆãƒªã‹ã‚‰ã®å¿œç­”ãŒä¸é©åˆ‡"
+msgstr "é éš”ホストã®å¿œç­”ãŒä¸é©åˆ‡"
+
+msgid "remote: "
+msgstr "é éš”ホスト: "
#, python-format
msgid "push refused: %s"
msgstr "履歴å映ãŒæ‹’å¦ã•ã‚Œã¾ã—ãŸ: %s"
-msgid "ssl connection failed"
-msgstr "ssl 接続ã«å¤±æ•—"
-
-msgid "Python SSL support not found"
-msgstr "Python ã® SSL サãƒãƒ¼ãƒˆæ©Ÿèƒ½ãŒä½¿ç”¨ã§ãã¾ã›ã‚“"
-
msgid "certificate checking requires Python 2.6"
msgstr "証明書検証ã«ã¯ Python 2.6 ãŒå¿…è¦ã§ã™"
@@ -23112,45 +17201,28 @@ msgid "could not find web.cacerts: %s"
msgstr "web.cacerts ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“: %s"
#, python-format
-msgid "host fingerprint for %s can't be verified (Python too old)"
-msgstr "ホスト %s ã®ãƒ•ã‚£ãƒ³ã‚¬ãƒ¼ãƒ—リントãŒæ¤œè¨¼ã§ãã¾ã›ã‚“ (Python ãŒå¤ã„ãŸã‚)"
-
-#, python-format
-msgid "warning: certificate for %s can't be verified (Python too old)\n"
-msgstr "警告: %s ã®è¨¼æ˜Žæ›¸ã¯æ¤œè¨¼ã§ãã¾ã›ã‚“ (Python ãŒå¤ã„ãŸã‚)\n"
-
-#, python-format
-msgid "%s ssl connection error"
-msgstr "%s ã¸ã® ssl 接続ã«å¤±æ•—"
+msgid "%s certificate error: %s (use --insecure to connect insecurely)"
+msgstr "%s ã®è¨¼æ˜Žæ›¸ä¸æ­£: %s (éžã‚»ã‚­ãƒ¥ã‚¢æŽ¥ç¶šã§ç¶™ç¶šã™ã‚‹ãªã‚‰ --insecure 指定)"
#, python-format
-msgid "%s certificate error: no certificate received"
-msgstr "%s ã®è¨¼æ˜Žæ›¸æ¤œè¨¼ã«å¤±æ•—: 証明書ãŒå—ã‘å–ã‚Œã¾ã›ã‚“"
-
-#, python-format
-msgid "certificate for %s has unexpected fingerprint %s"
-msgstr "%s ã®è¨¼æ˜Žæ›¸ã® fingerprint %s ã¯æœŸå¾…値ã¨ç•°ãªã‚Šã¾ã™"
-
-msgid "check hostfingerprint configuration"
-msgstr "hostfingerprint 設定を確èªã—ã¦ãã ã•ã„"
-
-#, python-format
-msgid "%s certificate error: %s"
-msgstr "%s ã®è¨¼æ˜Žæ›¸æ¤œè¨¼ã«å¤±æ•—: %s"
-
-#, python-format
-msgid "configure hostfingerprint %s or use --insecure to connect insecurely"
-msgstr ""
-"%s ã« hostfingerprint 設定ã™ã‚‹ã‹ã€éžã‚»ã‚­ãƒ¥ã‚¢æŽ¥ç¶šã§ç¶™ç¶šã™ã‚‹ãªã‚‰ --insecure ã‚’"
-"指定ã—ã¦ãã ã•ã„"
+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"
+"警告: %s ã®è¨¼æ˜Žæ›¸(fingerprint 㯠%s)検証ã¯çœç•¥ (設定ファイル㮠"
+"hostfingerprints ãªã„ã— web.cacerts 設定を確èªã®ã“ã¨)\n"
+
+#, python-format
+msgid "host fingerprint for %s can't be verified (Python too old)"
+msgstr "ホスト %s ã®ãƒ•ã‚£ãƒ³ã‚¬ãƒ¼ãƒ—リントãŒæ¤œè¨¼å‡ºæ¥ã¾ã›ã‚“ (Python ãŒå¤ã„ãŸã‚)"
+
+#, python-format
+msgid "warning: certificate for %s can't be verified (Python too old)\n"
+msgstr "警告: %s ã®è¨¼æ˜Žæ›¸ã¯æ¤œè¨¼å‡ºæ¥ã¾ã›ã‚“ (Python ãŒå¤ã„ãŸã‚)\n"
#, python-format
msgid "'%s' does not appear to be an hg repository"
@@ -23174,24 +17246,20 @@ msgstr "警告: 副リãƒã‚¸ãƒˆãƒªã® spec ファイル %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›
msgid "subrepo spec file %s not found"
msgstr "副リãƒã‚¸ãƒˆãƒªã® spec ファイル %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#, python-format
-msgid "invalid subrepository revision specifier in .hgsubstate line %d"
-msgstr ".hgsubstate ã® %d 行目ã«ãŠã‘る副リãƒã‚¸ãƒˆãƒªã®ãƒªãƒ“ジョン指定ãŒä¸æ­£ã§ã™"
+msgid "missing ] in subrepo source"
+msgstr "副リãƒã‚¸ãƒˆãƒªå…ƒæŒ‡å®šã« ] ãŒã‚ã‚Šã¾ã›ã‚“"
#, python-format
msgid "bad subrepository pattern in %s: %s"
msgstr "%s ã«ãŠã‘る副リãƒã‚¸ãƒˆãƒªæŒ‡å®šã®ä¸æ­£: %s"
-msgid "missing ] in subrepo source"
-msgstr "副リãƒã‚¸ãƒˆãƒªå…ƒæŒ‡å®šã« ] ãŒã‚ã‚Šã¾ã›ã‚“"
-
#, python-format
msgid ""
" subrepository sources for %s differ\n"
"use (l)ocal source (%s) or (r)emote source (%s)?"
msgstr ""
" 副リãƒã‚¸ãƒˆãƒª %s ã§å·®åˆ†ãŒæ¤œå‡ºã•ã‚Œã¾ã—ãŸ\n"
-"ã©ã¡ã‚‰ã‚’採用ã—ã¾ã™ã‹ï¼Ÿ 手元(%s):(l)ocal 連æºå…ˆ(%s):(r)emote"
+"ã©ã¡ã‚‰ã‚’採用ã—ã¾ã™ã‹ï¼Ÿ 手元(%s):(l)ocal é éš”(%s):(r)emote"
msgid "&Remote"
msgstr "&Remote"
@@ -23201,7 +17269,7 @@ msgid ""
" local changed subrepository %s which remote removed\n"
"use (c)hanged version or (d)elete?"
msgstr ""
-"副リãƒã‚¸ãƒˆãƒªã§å¤‰æ›´ã—ãŸãƒ•ã‚¡ã‚¤ãƒ« %s ã¯ã€ 連æºå…ˆã§ã¯ç™»éŒ²é™¤å¤–ã•ã‚Œã¦ã„ã¾ã™\n"
+"副リãƒã‚¸ãƒˆãƒªã§å¤‰æ›´ã—ãŸãƒ•ã‚¡ã‚¤ãƒ« %s ã¯ã€ é éš”ã§ã¯ç™»éŒ²é™¤å¤–ã•ã‚Œã¦ã„ã¾ã™\n"
"ã©ã¡ã‚‰ã‚’採用ã—ã¾ã™ã‹ï¼Ÿ 変更:(c)hange 登録除外:(d)elete"
#, python-format
@@ -23209,7 +17277,7 @@ msgid ""
" remote changed subrepository %s which local removed\n"
"use (c)hanged version or (d)elete?"
msgstr ""
-"副リãƒã‚¸ãƒˆãƒªã§ç™»éŒ²é™¤å¤–ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ« %s ã¯ã€ 連æºå…ˆã§ã¯å¤‰æ›´ã•ã‚Œã¦ã„ã¾ã™\n"
+"副リãƒã‚¸ãƒˆãƒªã§ç™»éŒ²é™¤å¤–ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ« %s ã¯ã€ é éš”ã§ã¯å¤‰æ›´ã•ã‚Œã¦ã„ã¾ã™\n"
"ã©ã¡ã‚‰ã‚’採用ã—ã¾ã™ã‹ï¼Ÿ 変更:(c)hange 登録除外:(d)elete"
#, python-format
@@ -23218,7 +17286,7 @@ msgid ""
"use (l)ocal source (%s) or (r)emote source (%s)?\n"
msgstr ""
" 副リãƒã‚¸ãƒˆãƒª %s ã®ä½œæ¥­é ˜åŸŸã§å·®åˆ†ãŒæ¤œå‡ºã•ã‚Œã¾ã—ãŸ\n"
-"ã©ã¡ã‚‰ã‚’採用ã—ã¾ã™ã‹ï¼Ÿ 手元(%s):(l)ocal 連æºå…ˆ(%s):(r)emote\n"
+"ã©ã¡ã‚‰ã‚’採用ã—ã¾ã™ã‹ï¼Ÿ 手元(%s):(l)ocal é éš”(%s):(r)emote\n"
#, python-format
msgid ""
@@ -23226,7 +17294,7 @@ msgid ""
"use (l)ocal source (%s) or (r)emote source (%s)?\n"
msgstr ""
" 副リãƒã‚¸ãƒˆãƒª %s ã®ãƒªãƒ“ジョンã«å·®åˆ†ãŒæ¤œå‡ºã•ã‚Œã¾ã—ãŸ\n"
-"ã©ã¡ã‚‰ã‚’採用ã—ã¾ã™ã‹ï¼Ÿ 手元(%s):(l)ocal 連æºå…ˆ(%s):(r)emote\n"
+"ã©ã¡ã‚‰ã‚’採用ã—ã¾ã™ã‹ï¼Ÿ 手元(%s):(l)ocal é éš”(%s):(r)emote\n"
#, python-format
msgid "default path for subrepository %s not found"
@@ -23260,50 +17328,30 @@ msgstr "副リãƒã‚¸ãƒˆãƒª %s ã« %s ã‹ã‚‰å–ã‚Šè¾¼ã¿ä¸­\n"
msgid "pushing subrepo %s to %s\n"
msgstr "副リãƒã‚¸ãƒˆãƒª %s ã‹ã‚‰ %s ã¸å映中\n"
-#, python-format
-msgid "reverting subrepo %s\n"
-msgstr "副リãƒã‚¸ãƒˆãƒª %s ã®å¤‰æ›´å–り消ã—中\n"
-
-#, python-format
-msgid "'svn' executable not found for subrepo '%s'"
-msgstr "副リãƒã‚¸ãƒˆãƒª '%s' ã«ä½¿ç”¨ã™ã‚‹ 'svn' コマンドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-
msgid "cannot retrieve svn tool version"
-msgstr "svn ツールã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒå–å¾—ã§ãã¾ã›ã‚“"
+msgstr "svn ツールã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒå–得出æ¥ã¾ã›ã‚“"
msgid "cannot commit svn externals"
msgstr "svn 外部リãƒã‚¸ãƒˆãƒªã« commit ã§ãã¾ã›ã‚“"
-msgid "cannot commit missing svn entries"
-msgstr "svn 管ç†å¯¾è±¡ã«ä¸åœ¨ãƒ•ã‚¡ã‚¤ãƒ«ãŒã‚る状態ã§ã¯ commit ã§ãã¾ã›ã‚“"
-
-msgid "failed to commit svn changes"
-msgstr "svn ã¸ã®å¤‰æ›´ã‚³ãƒŸãƒƒãƒˆã«å¤±æ•—ã—ã¾ã—ãŸ"
-
#, python-format
msgid "not removing repo %s because it has changes.\n"
msgstr "変更ãŒå«ã¾ã‚Œã¦ã„ã‚‹ãŸã‚〠リãƒã‚¸ãƒˆãƒª %s ã¯å‰Šé™¤ã•ã‚Œã¾ã›ã‚“\n"
-msgid "cannot retrieve git version"
-msgstr "git ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ãŒå–å¾—ã§ãã¾ã›ã‚“"
-
-msgid "git subrepo requires at least 1.6.0 or later"
-msgstr "副リãƒã‚¸ãƒˆãƒªåˆ©ç”¨ã«ã¯ 1.6.0 以é™ã® git ãŒå¿…è¦ã§ã™"
-
#, 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 "副リãƒã‚¸ãƒˆãƒª %s ã«ãŠã„ã¦ã€åˆ‡ã‚Šé›¢ã•ã‚ŒãŸ HEAD ãŒå–り出ã•ã‚Œã¾ã—ãŸã€‚\n"
+msgstr ""
msgid "check out a git branch if you intend to make changes\n"
-msgstr "変更を実施ã™ã‚‹ãªã‚‰ã€ git ブランãƒã‚’å–り出ã—ã¦ãã ã•ã„。\n"
+msgstr ""
#, python-format
msgid "subrepo %s is missing"
-msgstr "副リãƒã‚¸ãƒˆãƒª %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
+msgstr ""
#, python-format
msgid "unrelated git branch checked out in subrepo %s\n"
@@ -23316,10 +17364,8 @@ msgstr "ブランム%s を副リãƒã‚¸ãƒˆãƒª %s ã‹ã‚‰å映中\n"
#, python-format
msgid ""
"no branch checked out in subrepo %s\n"
-"cannot push revision %s\n"
+"cannot push revision %s"
msgstr ""
-"副リãƒã‚¸ãƒˆãƒª %s ã«ãƒ–ランãƒãŒå–り出ã•ã‚Œã¦ã„ã¾ã›ã‚“。\n"
-"リビジョン %s ã‚’å映ã§ãã¾ã›ã‚“。\n"
#, python-format
msgid "%s, line %s: %s\n"
@@ -23355,8 +17401,9 @@ msgid ""
" (ignoring trailing separators). For example, \"foo/bar/baz\" becomes\n"
" \"baz\" and \"foo/bar//\" becomes \"bar\"."
msgstr ""
-":basename: 文字列。 与ãˆã‚‰ã‚ŒãŸæ–‡å­—列をパスã¨ã¿ãªã—〠パス構æˆè¦ç´ ã®ã€\n"
-" 末尾è¦ç´ ã‚’å–り出ã—ã¾ã™ (末尾パス区切りã¯ç„¡è¦–ã•ã‚Œã¾ã™)。\n"
+":basename: 文字列。 与ãˆã‚‰ã‚ŒãŸæ–‡å­—列をパスã¨ã¿ãªã—〠パス区切りã§\n"
+" 区切られãŸæœ€å¾Œã®è¦ç´ ã ã‘ã‚’å–り出ã—ã¾ã™(末尾パス\n"
+" 区切りã¯ç„¡è¦–ã•ã‚Œã¾ã™)。\n"
" 例) \"foo/bar/baz\" 㯠\"baz\"〠\"foo/bar//\" 㯠\"bar\""
msgid ""
@@ -23410,14 +17457,15 @@ msgid ""
" 25200\" (Unix timestamp, timezone offset)."
msgstr ""
":hgdate: 日時情報。 Unix タイムスタンプã¨ã‚¿ã‚¤ãƒ ã‚¾ãƒ¼ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆã«ã‚ˆã‚‹\n"
-" 数値対形å¼ã§å¯èª­åŒ–ã—ã¾ã™ã€‚ 例) \"1157407993 25200\""
+" 数値対形å¼ã§å¯èª­åŒ–ã—ã¾ã™ã€‚\n"
+" 例) \"1157407993 25200\""
msgid ""
":isodate: Date. Returns the date in ISO 8601 format: \"2009-08-18 13:00\n"
" +0200\"."
msgstr ""
":isodate: 日時情報。 ISO 8601 å½¢å¼ã§å¯èª­åŒ–ã—ã¾ã™:\n"
-" 例) \"2009-08-18 13:00 +0200\""
+" 例) \"2009-08-18 13:00 +0200\""
msgid ""
":isodatesec: Date. Returns the date in ISO 8601 format, including\n"
@@ -23425,8 +17473,8 @@ msgid ""
" filter."
msgstr ""
":isodatesec: 日時情報。 秒情報付ãã® ISO 8601 å½¢å¼ã§å¯èª­åŒ–ã—ã¾ã™:\n"
-" 例) \"2009-08-18 13:00:13 +0200\"\n"
-" ※ 後述ã™ã‚‹ rfc3339date フィルタã®èª¬æ˜Žã‚‚å‚ç…§ã—ã¦ãã ã•ã„。"
+" 例) \"2009-08-18 13:00:13 +0200\"\n"
+" ※ 後述ã™ã‚‹ rfc3339date フィルタã®èª¬æ˜Žã‚‚å‚ç…§ã—ã¦ãã ã•ã„。"
msgid ":localdate: Date. Converts a date to local date."
msgstr ":localdate: 日時情報。 ローカル日時ã§å¯èª­åŒ–ã—ã¾ã™ã€‚"
@@ -23439,43 +17487,8 @@ msgid ""
" XML entities."
msgstr ":obfuscate: 文字列。 å…¨ã¦ã®æ–‡å­—ã‚’ XML エンティティ形å¼ã«å¤‰æ›ã—ã¾ã™ã€‚"
-msgid ""
-":person: Any text. Returns the name before an email address,\n"
-" interpreting it as per RFC 5322."
-msgstr ""
-":person: 文字列。 メールアドレスを RFC 5322 å½¢å¼ã§è§£æžã—ã¦ã€\n"
-" åå‰éƒ¨åˆ†ã ã‘ã‚’å–り出ã—ã¾ã™ã€‚"
-
-msgid ""
-" >>> person('foo@bar')\n"
-" 'foo'\n"
-" >>> person('Foo Bar <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo Bar\" <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo \"buz\" Bar\" <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> # The following are invalid, but do exist in real-life\n"
-" ...\n"
-" >>> person('Foo \"buz\" Bar <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> person('\"Foo Bar <foo@bar>')\n"
-" 'Foo Bar'"
-msgstr ""
-" >>> person('foo@bar')\n"
-" 'foo'\n"
-" >>> person('Foo Bar <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo Bar\" <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo \"buz\" Bar\" <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> # The following are invalid, but do exist in real-life\n"
-" ...\n"
-" >>> person('Foo \"buz\" Bar <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> person('\"Foo Bar <foo@bar>')\n"
-" 'Foo Bar'"
+msgid ":person: Any text. Returns the text before an email address."
+msgstr ":person: 文字列。 メールアドレス直å‰ã®éƒ¨åˆ†ã ã‘ã‚’å–り出ã—ã¾ã™ã€‚"
msgid ""
":rfc3339date: Date. Returns a date using the Internet date format\n"
@@ -23496,17 +17509,6 @@ msgid ""
" i.e. a 12 hexadecimal digit string."
msgstr ":short: リビジョンãƒãƒƒã‚·ãƒ¥ 値。 12 æ¡ç¨‹åº¦ã®çŸ­ç¸®å½¢å¼ã«ã—ã¾ã™ã€‚"
-msgid ""
-":shortbisect: Any text. Treats `text` as a bisection status, and\n"
-" returns a single-character representing the status (G: good, B: bad,\n"
-" S: skipped, U: untested, I: ignored). Returns single space if `text`\n"
-" is not a valid bisection status."
-msgstr ""
-":shortbisect: 文字列。 `文字列` を2分探索 (bisect) 状態ã¨ã¿ãªã—ã€\n"
-" 状態ã«è¦‹åˆã£ãŸ1文字 (G: good, B: bad, S: skipped, U: untested, I:\n"
-" ignored) ã‚’è¿”ã—ã¾ã™ã€‚ `文字列` ãŒï¼’分探索状態ã¨ã—ã¦ä¸é©åˆ‡ãªå ´åˆã€\n"
-" 空白文字を返ã—ã¾ã™ã€‚"
-
msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
msgstr ":shortdate: 日時情報。 \"2006-09-18\" å½¢å¼ã§å¯èª­åŒ–ã—ã¾ã™ã€‚"
@@ -23538,22 +17540,12 @@ msgstr ""
":urlescape: 文字列。 å…¨ã¦ã®ã€Œç‰¹æ®Šã€æ–‡å­—を変æ›ã—ã¾ã™ã€‚\n"
" 例ãˆã° \"foo bar\" 㯠\"foo%20bar\" ã¨ãªã‚Šã¾ã™ã€‚"
-msgid ""
-":user: Any text. Returns a short representation of a user name or email\n"
-" address."
-msgstr ""
-":user: 文字列。 ユーザåãªã„ã—メールアドレスã‹ã‚‰ã€\n"
-" ユーザåã®çŸ­ç¸®å½¢å¼éƒ¨åˆ†ã‚’å–り出ã—ã¾ã™ã€‚"
-
-msgid ":emailuser: Any text. Returns the user portion of an email address."
-msgstr ":emailuser: 文字列。 メールアドレスã®ãƒ¦ãƒ¼ã‚¶å部分をå–り出ã—ã¾ã™ã€‚"
+msgid ":user: Any text. Returns the user portion of an email address."
+msgstr ":user: 文字列。 メールアドレスã®ãƒ¦ãƒ¼ã‚¶å部分をå–り出ã—ã¾ã™ã€‚"
msgid ":author: String. The unmodified author of the changeset."
msgstr ":author: 文字列。 リビジョンã®ä½œè€…å(記録情報ãã®ã¾ã¾)。"
-msgid ":bisect: String. The changeset bisection status."
-msgstr ":bisect: 文字列。 当該リビジョンã®ï¼’分探索状態。"
-
msgid ""
":branch: String. The name of the branch on which the changeset was\n"
" committed."
@@ -23620,7 +17612,7 @@ msgid ""
":latesttag: String. Most recent global tag in the ancestors of this\n"
" changeset."
msgstr ""
-":latesttag: 文字列。 当該リビジョンã®ç¥–å…ˆã«å¯¾ã—ã¦æœ€ã‚‚最近ã«ä»˜ä¸Žã•ã‚ŒãŸã‚¿ã‚°"
+":latesttag: 文字列。 当該リビジョンã®å…ˆç¥–ã«å¯¾ã—ã¦æœ€ã‚‚最近ã«ä»˜ä¸Žã•ã‚ŒãŸã‚¿ã‚°"
msgid ":latesttagdistance: Integer. Longest path to the latest tag."
msgstr ":latesttagdistance: 整数。 最新タグã¸ã®æœ€é•·ãƒ‘ス"
@@ -23630,27 +17622,12 @@ msgid ""
" digit string."
msgstr ":node: 文字列。 リビジョン識別用㮠40 æ¡ 16 進数ãƒãƒƒã‚·ãƒ¥å€¤ã€‚"
-msgid ":phase: String. The changeset phase name."
-msgstr ":phase: 文字列。 当該リビジョンã®ãƒ•ã‚§ãƒ¼ã‚ºå。"
-
-msgid ":phaseidx: Integer. The changeset phase index."
-msgstr ":phaseidx: 数値。 当該リビジョンã®ãƒ•ã‚§ãƒ¼ã‚ºå€¤ã€‚"
-
msgid ":rev: Integer. The repository-local changeset revision number."
msgstr ":rev: 整数。 å„リãƒã‚¸ãƒˆãƒªå›ºæœ‰ã®ãƒªãƒ“ジョン番å·ã€‚"
msgid ":tags: List of strings. Any tags associated with the changeset."
msgstr ":tags: 文字列列挙。 当該リビジョンã«ä»˜ä¸Žã•ã‚ŒãŸã‚¿ã‚°ã®ä¸€è¦§ã€‚"
-msgid ""
-":parents: List of strings. The parents of the changeset in \"rev:node\"\n"
-" format. If the changeset has only one \"natural\" parent (the "
-"predecessor\n"
-" revision) nothing is shown."
-msgstr ""
-":parents: 文字列列挙。 当該リビジョンã®è¦ªãƒªãƒ“ジョン㮠\"rev:node\" å½¢å¼ã€‚\n"
-" 親ãŒå˜ä¸€ã§ã€ 且ã¤ãƒªãƒ“ジョン番å·ãŒï¼‘ã¤å‰ã®å ´åˆã¯ã€ 何も表示ã•ã‚Œã¾ã›ã‚“。"
-
#, python-format
msgid "unknown method '%s'"
msgstr "ä¸æ˜Žãªå‡¦ç† '%s' ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸ"
@@ -23685,7 +17662,7 @@ msgid "template file %s: %s"
msgstr "テンプレートファイル %s: %s"
msgid "cannot use transaction when it is already committed/aborted"
-msgstr "æ—¢ã«å®Œäº†/中断ã•ã‚Œã¦ã„ã‚‹ãŸã‚トランザクションを利用ã§ãã¾ã›ã‚“"
+msgstr "æ—¢ã«å®Œäº†/中止ã•ã‚Œã¦ã„ã‚‹ãŸã‚トランザクションを利用ã§ãã¾ã›ã‚“"
#, python-format
msgid "failed to truncate %s\n"
@@ -23701,14 +17678,14 @@ msgid "rollback failed - please run hg recover\n"
msgstr "ロールãƒãƒƒã‚¯ã«å¤±æ•—ã—ã¾ã—㟠- 'hg recover' ã—ã¦ãã ã•ã„\n"
msgid "already have changeset "
-msgstr "æ—¢ã«ã‚るリビジョンã§ã™ "
+msgstr "æ—¢ã«ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆãŒã‚ã‚Šã¾ã™ "
#, python-format
-msgid "not trusting file %s from untrusted user %s, group %s\n"
+msgid "Not trusting file %s from untrusted user %s, group %s\n"
msgstr "ä¿¡é ¼ã§ããªã„ファイル %s (所有者 %s, グループ %s)\n"
#, python-format
-msgid "ignored: %s\n"
+msgid "Ignored: %s\n"
msgstr "無視ã—ã¾ã—ãŸ: %s\n"
#, python-format
@@ -23727,7 +17704,7 @@ msgid "enter a commit username:"
msgstr "コミットã™ã‚‹ãƒ¦ãƒ¼ã‚¶åを入力ã—ã¦ãã ã•ã„:"
#, python-format
-msgid "no username found, using '%s' instead\n"
+msgid "No username found, using '%s' instead\n"
msgstr "ユーザåãŒä¸æ˜Žã®ãŸã‚〠'%s' を使用\n"
msgid "no username supplied (see \"hg help config\")"
@@ -23746,6 +17723,9 @@ msgstr "èªè­˜ã§ããªã„レスãƒãƒ³ã‚¹\n"
msgid "password: "
msgstr "パスワード: "
+msgid "edit failed"
+msgstr "編集ã«å¤±æ•—"
+
msgid "http authorization required"
msgstr "HTTP èªè¨¼ã«å¤±æ•—"
@@ -23868,7 +17848,7 @@ msgid "no port number associated with service '%s'"
msgstr "サービス '%s' 用ã®ãƒãƒ¼ãƒˆç•ªå·ãŒä¸æ˜Ž"
msgid "file:// URLs can only refer to localhost"
-msgstr "file:// URL ãŒå‚ç…§ã§ãã‚‹ã®ã¯ãƒ­ãƒ¼ã‚«ãƒ«ãƒ›ã‚¹ãƒˆã®ã¿ã§ã™"
+msgstr "file:// URL ãŒå‚照出æ¥ã‚‹ã®ã¯ãƒ­ãƒ¼ã‚«ãƒ«ãƒ›ã‚¹ãƒˆã®ã¿ã§ã™"
msgid "cannot verify bundle or remote repos"
msgstr "ローカルリãƒã‚¸ãƒˆãƒªä»¥å¤–ã¯æ¤œè¨¼ã§ãã¾ã›ã‚“"
@@ -23918,7 +17898,7 @@ msgstr "未知ã®ç¬¬2親 %s ã‚’æŒã¤ %s"
#, python-format
msgid "checking parents of %s"
-msgstr "%s ã®è¦ªã‚’確èªä¸­"
+msgstr "%s ã®è¦ªã‚’検証中"
#, python-format
msgid "duplicate revision %d (%d)"
@@ -23932,7 +17912,7 @@ msgid "repository uses revlog format %d\n"
msgstr "リãƒã‚¸ãƒˆãƒªã¯ revlog å½¢å¼ %d ã§ã™\n"
msgid "checking changesets\n"
-msgstr "リビジョンã®ç¢ºèªä¸­\n"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã®ç¢ºèªä¸­\n"
msgid "checking"
msgstr "確èªä¸­"
@@ -23956,7 +17936,7 @@ msgid "reading manifest delta %s"
msgstr "管ç†å¯¾è±¡ä¸€è¦§ã®å·®åˆ† %s ã®èª­ã¿è¾¼ã¿ä¸­"
msgid "crosschecking files in changesets and manifests\n"
-msgstr "リビジョンã¨ãƒžãƒ‹ãƒ•ã‚§ã‚¹ãƒˆã«ã‚ˆã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚¯ãƒ­ã‚¹ãƒã‚§ãƒƒã‚¯ä¸­\n"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã¨ãƒžãƒ‹ãƒ•ã‚§ã‚¹ãƒˆã«ã‚ˆã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚¯ãƒ­ã‚¹ãƒã‚§ãƒƒã‚¯ä¸­\n"
msgid "crosschecking"
msgstr "クロスãƒã‚§ãƒƒã‚¯ä¸­"
@@ -23969,7 +17949,7 @@ msgid "in changeset but not in manifest"
msgstr "マニフェストã‹ã‚‰å‚ç…§ã•ã‚Œã¦ã„ãªã„ファイル"
msgid "in manifest but not in changeset"
-msgstr "リビジョンã‹ã‚‰å‚ç…§ã•ã‚Œã¦ã„ãªã„ファイル"
+msgstr "ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã‹ã‚‰å‚ç…§ã•ã‚Œã¦ã„ãªã„ファイル"
msgid "checking files\n"
msgstr "ファイルã®ç¢ºèªä¸­\n"
@@ -24023,7 +18003,7 @@ msgstr "警告: revlog '%s' ã¯ã©ã“ã‹ã‚‰ã‚‚å‚ç…§ã•ã‚Œã¦ã„ã¾ã›ã‚“"
#, python-format
msgid "%d files, %d changesets, %d total revisions\n"
-msgstr "%d 個ã®ãƒ•ã‚¡ã‚¤ãƒ«ã€ %d 件ã®å·®åˆ†æƒ…報〠åˆè¨ˆ %d 件ã®ãƒªãƒ“ジョン\n"
+msgstr "%d 個ã®ãƒ•ã‚¡ã‚¤ãƒ«ã€ %d 件ã®ãƒã‚§ãƒ³ã‚¸ã‚»ãƒƒãƒˆã€ åˆè¨ˆ %d 件ã®ãƒªãƒ“ジョン\n"
#, python-format
msgid "%d warnings encountered!\n"
@@ -24041,7 +18021,7 @@ msgid "look up remote revision"
msgstr "連æºå…ˆã§ã®ãƒªãƒ“ジョンã®æ¤œç´¢"
msgid "push failed (unexpected response):"
-msgstr "履歴å映ã«å¤±æ•— (未知ã®å¿œç­”):"
+msgstr "履歴å映ã«å¤±æ•—(未知ã®ãƒ¬ã‚¹ãƒãƒ³ã‚¹):"
msgid "look up remote changes"
msgstr "連æºå…ˆã§ã®å¤‰æ›´ã®æ¤œç´¢"
diff --git a/i18n/polib.py b/i18n/polib.py
index c09aebc..88428ce 100644
--- a/i18n/polib.py
+++ b/i18n/polib.py
@@ -5,48 +5,113 @@
# vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4:
"""
-**polib** allows you to manipulate, create, modify gettext files (pot, po and
-mo files). You can load existing files, iterate through it's entries, add,
-modify entries, comments or metadata, etc. or create new po files from scratch.
-
-**polib** provides a simple and pythonic API via the :func:`~polib.pofile` and
-:func:`~polib.mofile` convenience functions.
+**polib** allows you to manipulate, create, modify gettext files (pot, po
+and mo files). You can load existing files, iterate through it's entries,
+add, modify entries, comments or metadata, etc... or create new po files
+from scratch.
+
+**polib** provides a simple and pythonic API, exporting only three
+convenience functions (*pofile*, *mofile* and *detect_encoding*), and the
+four core classes, *POFile*, *MOFile*, *POEntry* and *MOEntry* for creating
+new files/entries.
+
+**Basic example**:
+
+>>> import polib
+>>> # load an existing po file
+>>> po = polib.pofile('tests/test_utf8.po')
+>>> for entry in po:
+... # do something with entry...
+... pass
+>>> # add an entry
+>>> entry = polib.POEntry(msgid='Welcome', msgstr='Bienvenue')
+>>> entry.occurrences = [('welcome.py', '12'), ('anotherfile.py', '34')]
+>>> po.append(entry)
+>>> # to save our modified po file:
+>>> # po.save()
+>>> # or you may want to compile the po file
+>>> # po.save_as_mofile('tests/test_utf8.mo')
"""
-__author__ = 'David Jean Louis <izimobil@gmail.com>'
-__version__ = '0.6.4'
+__author__ = 'David JEAN LOUIS <izimobil@gmail.com>'
+__version__ = '0.5.2'
__all__ = ['pofile', 'POFile', 'POEntry', 'mofile', 'MOFile', 'MOEntry',
'detect_encoding', 'escape', 'unescape', 'detect_encoding',]
-import array
import codecs
-import os
-import re
import struct
-import sys
import textwrap
import types
+import re
-
-# the default encoding to use when encoding cannot be detected
default_encoding = 'utf-8'
-# _pofile_or_mofile {{{
+# function pofile() {{{
-def _pofile_or_mofile(f, type, **kwargs):
+def pofile(fpath, **kwargs):
"""
- Internal function used by :func:`polib.pofile` and :func:`polib.mofile` to
- honor the DRY concept.
+ Convenience function that parse the po/pot file *fpath* and return
+ a POFile instance.
+
+ **Keyword arguments**:
+ - *fpath*: string, full or relative path to the po/pot file to parse
+ - *wrapwidth*: integer, the wrap width, only useful when -w option was
+ passed to xgettext (optional, default to 78)
+ - *autodetect_encoding*: boolean, if set to False the function will
+ not try to detect the po file encoding (optional, default to True)
+ - *encoding*: string, an encoding, only relevant if autodetect_encoding
+ is set to False
+ - *check_for_duplicates*: whether to check for duplicate entries when
+ adding entries to the file, default: False (optional)
+
+ **Example**:
+
+ >>> import polib
+ >>> po = polib.pofile('tests/test_weird_occurrences.po',
+ ... check_for_duplicates=True)
+ >>> po #doctest: +ELLIPSIS
+ <POFile instance at ...>
+ >>> import os, tempfile
+ >>> all_attrs = ('msgctxt', 'msgid', 'msgstr', 'msgid_plural',
+ ... 'msgstr_plural', 'obsolete', 'comment', 'tcomment',
+ ... 'occurrences', 'flags', 'previous_msgctxt',
+ ... 'previous_msgid', 'previous_msgid_plural')
+ >>> for fname in ['test_iso-8859-15.po', 'test_utf8.po']:
+ ... orig_po = polib.pofile('tests/'+fname)
+ ... tmpf = tempfile.NamedTemporaryFile().name
+ ... orig_po.save(tmpf)
+ ... try:
+ ... new_po = polib.pofile(tmpf)
+ ... for old, new in zip(orig_po, new_po):
+ ... for attr in all_attrs:
+ ... if getattr(old, attr) != getattr(new, attr):
+ ... getattr(old, attr)
+ ... getattr(new, attr)
+ ... finally:
+ ... os.unlink(tmpf)
+ >>> po_file = polib.pofile('tests/test_save_as_mofile.po')
+ >>> tmpf = tempfile.NamedTemporaryFile().name
+ >>> po_file.save_as_mofile(tmpf)
+ >>> try:
+ ... mo_file = polib.mofile(tmpf)
+ ... for old, new in zip(po_file, mo_file):
+ ... if po_file._encode(old.msgid) != mo_file._encode(new.msgid):
+ ... 'OLD: ', po_file._encode(old.msgid)
+ ... 'NEW: ', mo_file._encode(new.msgid)
+ ... if po_file._encode(old.msgstr) != mo_file._encode(new.msgstr):
+ ... 'OLD: ', po_file._encode(old.msgstr)
+ ... 'NEW: ', mo_file._encode(new.msgstr)
+ ... print new.msgstr
+ ... finally:
+ ... os.unlink(tmpf)
"""
- # get the file encoding
- enc = kwargs.get('encoding')
- if enc is None:
- enc = detect_encoding(f, type == 'mofile')
-
- # parse the file
- kls = type == 'pofile' and _POFileParser or _MOFileParser
- parser = kls(
- f,
+ if kwargs.get('autodetect_encoding', True):
+ enc = detect_encoding(fpath)
+ else:
+ enc = kwargs.get('encoding', default_encoding)
+ check_for_duplicates = kwargs.get('check_for_duplicates', False)
+ parser = _POFileParser(
+ fpath,
encoding=enc,
check_for_duplicates=kwargs.get('check_for_duplicates', False)
)
@@ -55,108 +120,95 @@ def _pofile_or_mofile(f, type, **kwargs):
return instance
# }}}
-# function pofile() {{{
-
-def pofile(pofile, **kwargs):
- """
- Convenience function that parses the po or pot file ``pofile`` and returns
- a :class:`~polib.POFile` instance.
-
- Arguments:
-
- ``pofile``
- string, full or relative path to the po/pot file or its content (data).
-
- ``wrapwidth``
- integer, the wrap width, only useful when the ``-w`` option was passed
- to xgettext (optional, default: ``78``).
-
- ``encoding``
- string, the encoding to use (e.g. "utf-8") (default: ``None``, the
- encoding will be auto-detected).
-
- ``check_for_duplicates``
- whether to check for duplicate entries when adding entries to the
- file (optional, default: ``False``).
- """
- return _pofile_or_mofile(pofile, 'pofile', **kwargs)
-
-# }}}
# function mofile() {{{
-def mofile(mofile, **kwargs):
+def mofile(fpath, **kwargs):
"""
- Convenience function that parses the mo file ``mofile`` and returns a
- :class:`~polib.MOFile` instance.
-
- Arguments:
-
- ``mofile``
- string, full or relative path to the mo file or its content (data).
-
- ``wrapwidth``
- integer, the wrap width, only useful when the ``-w`` option was passed
- to xgettext to generate the po file that was used to format the mo file
- (optional, default: ``78``).
-
- ``encoding``
- string, the encoding to use (e.g. "utf-8") (default: ``None``, the
- encoding will be auto-detected).
-
- ``check_for_duplicates``
- whether to check for duplicate entries when adding entries to the
- file (optional, default: ``False``).
+ Convenience function that parse the mo file *fpath* and return
+ a MOFile instance.
+
+ **Keyword arguments**:
+ - *fpath*: string, full or relative path to the mo file to parse
+ - *wrapwidth*: integer, the wrap width, only useful when -w option was
+ passed to xgettext to generate the po file that was used to format
+ the mo file (optional, default to 78)
+ - *autodetect_encoding*: boolean, if set to False the function will
+ not try to detect the po file encoding (optional, default to True)
+ - *encoding*: string, an encoding, only relevant if autodetect_encoding
+ is set to False
+ - *check_for_duplicates*: whether to check for duplicate entries when
+ adding entries to the file, default: False (optional)
+
+ **Example**:
+
+ >>> import polib
+ >>> mo = polib.mofile('tests/test_utf8.mo', check_for_duplicates=True)
+ >>> mo #doctest: +ELLIPSIS
+ <MOFile instance at ...>
+ >>> import os, tempfile
+ >>> for fname in ['test_iso-8859-15.mo', 'test_utf8.mo']:
+ ... orig_mo = polib.mofile('tests/'+fname)
+ ... tmpf = tempfile.NamedTemporaryFile().name
+ ... orig_mo.save(tmpf)
+ ... try:
+ ... new_mo = polib.mofile(tmpf)
+ ... for old, new in zip(orig_mo, new_mo):
+ ... if old.msgid != new.msgid:
+ ... old.msgstr
+ ... new.msgstr
+ ... finally:
+ ... os.unlink(tmpf)
"""
- return _pofile_or_mofile(mofile, 'mofile', **kwargs)
+ if kwargs.get('autodetect_encoding', True):
+ enc = detect_encoding(fpath, True)
+ else:
+ enc = kwargs.get('encoding', default_encoding)
+ parser = _MOFileParser(
+ fpath,
+ encoding=enc,
+ check_for_duplicates=kwargs.get('check_for_duplicates', False)
+ )
+ instance = parser.parse()
+ instance.wrapwidth = kwargs.get('wrapwidth', 78)
+ return instance
# }}}
# function detect_encoding() {{{
-def detect_encoding(file, binary_mode=False):
+def detect_encoding(fpath, binary_mode=False):
"""
- Try to detect the encoding used by the ``file``. The ``file`` argument can
- be a PO or MO file path or a string containing the contents of the file.
- If the encoding cannot be detected, the function will return the value of
- ``default_encoding``.
-
- Arguments:
-
- ``file``
- string, full or relative path to the po/mo file or its content.
-
- ``binary_mode``
- boolean, set this to True if ``file`` is a mo file.
+ Try to detect the encoding used by the file *fpath*. The function will
+ return polib default *encoding* if it's unable to detect it.
+
+ **Keyword argument**:
+ - *fpath*: string, full or relative path to the mo file to parse.
+
+ **Examples**:
+
+ >>> print(detect_encoding('tests/test_noencoding.po'))
+ utf-8
+ >>> print(detect_encoding('tests/test_utf8.po'))
+ UTF-8
+ >>> print(detect_encoding('tests/test_utf8.mo', True))
+ UTF-8
+ >>> print(detect_encoding('tests/test_iso-8859-15.po'))
+ ISO_8859-15
+ >>> print(detect_encoding('tests/test_iso-8859-15.mo', True))
+ ISO_8859-15
"""
+ import re
rx = re.compile(r'"?Content-Type:.+? charset=([\w_\-:\.]+)')
-
- def charset_exists(charset):
- """Check whether ``charset`` is valid or not."""
- try:
- codecs.lookup(charset)
- except LookupError:
- return False
- return True
-
- if not os.path.exists(file):
- match = rx.search(file)
- if match:
- enc = match.group(1).strip()
- if charset_exists(enc):
- return enc
+ if binary_mode:
+ mode = 'rb'
else:
- if binary_mode:
- mode = 'rb'
- else:
- mode = 'r'
- f = open(file, mode)
- for l in f.readlines():
- match = rx.search(l)
- if match:
- f.close()
- enc = match.group(1).strip()
- if charset_exists(enc):
- return enc
- f.close()
+ mode = 'r'
+ f = open(fpath, mode)
+ for l in f.readlines():
+ match = rx.search(l)
+ if match:
+ f.close()
+ return match.group(1).strip()
+ f.close()
return default_encoding
# }}}
@@ -164,8 +216,12 @@ def detect_encoding(file, binary_mode=False):
def escape(st):
"""
- Escapes the characters ``\\\\``, ``\\t``, ``\\n``, ``\\r`` and ``"`` in
- the given string ``st`` and returns it.
+ Escape special chars and return the given string *st*.
+
+ **Examples**:
+
+ >>> escape('\\t and \\n and \\r and " and \\\\')
+ '\\\\t and \\\\n and \\\\r and \\\\" and \\\\\\\\'
"""
return st.replace('\\', r'\\')\
.replace('\t', r'\t')\
@@ -178,8 +234,18 @@ def escape(st):
def unescape(st):
"""
- Unescapes the characters ``\\\\``, ``\\t``, ``\\n``, ``\\r`` and ``"`` in
- the given string ``st`` and returns it.
+ Unescape special chars and return the given string *st*.
+
+ **Examples**:
+
+ >>> unescape('\\\\t and \\\\n and \\\\r and \\\\" and \\\\\\\\')
+ '\\t and \\n and \\r and " and \\\\'
+ >>> unescape(r'\\n')
+ '\\n'
+ >>> unescape(r'\\\\n')
+ '\\\\n'
+ >>> unescape(r'\\\\n\\n')
+ '\\\\n\\n'
"""
def unescape_repl(m):
m = m.group(1)
@@ -199,36 +265,27 @@ def unescape(st):
class _BaseFile(list):
"""
- Common base class for the :class:`~polib.POFile` and :class:`~polib.MOFile`
- classes. This class should **not** be instanciated directly.
+ Common parent class for POFile and MOFile classes.
+ This class must **not** be instanciated directly.
"""
def __init__(self, *args, **kwargs):
"""
- Constructor, accepts the following keyword arguments:
-
- ``pofile``
- string, the path to the po or mo file, or its content as a string.
-
- ``wrapwidth``
- integer, the wrap width, only useful when the ``-w`` option was
- passed to xgettext (optional, default: ``78``).
-
- ``encoding``
- string, the encoding to use, defaults to ``default_encoding``
- global variable (optional).
+ Constructor.
- ``check_for_duplicates``
- whether to check for duplicate entries when adding entries to the
- file, (optional, default: ``False``).
+ **Keyword arguments**:
+ - *fpath*: string, path to po or mo file
+ - *wrapwidth*: integer, the wrap width, only useful when -w option
+ was passed to xgettext to generate the po file that was used to
+ format the mo file, default to 78 (optional),
+ - *encoding*: string, the encoding to use, defaults to
+ "default_encoding" global variable (optional),
+ - *check_for_duplicates*: whether to check for duplicate entries
+ when adding entries to the file, default: False (optional).
"""
list.__init__(self)
# the opened file handle
- pofile = kwargs.get('pofile', None)
- if pofile and os.path.exists(pofile):
- self.fpath = pofile
- else:
- self.fpath = kwargs.get('fpath')
+ self.fpath = kwargs.get('fpath')
# the width at which lines should be wrapped
self.wrapwidth = kwargs.get('wrapwidth', 78)
# the file encoding
@@ -241,56 +298,66 @@ class _BaseFile(list):
self.metadata = {}
self.metadata_is_fuzzy = 0
- def __unicode__(self):
+ def __str__(self):
"""
- Returns the unicode representation of the file.
+ String representation of the file.
"""
ret = []
entries = [self.metadata_as_entry()] + \
[e for e in self if not e.obsolete]
for entry in entries:
- ret.append(entry.__unicode__(self.wrapwidth))
+ ret.append(entry.__str__(self.wrapwidth))
for entry in self.obsolete_entries():
- ret.append(entry.__unicode__(self.wrapwidth))
- ret = '\n'.join(ret)
-
- if type(ret) != types.UnicodeType:
- return unicode(ret, self.encoding)
- return ret
-
- def __str__(self):
- """
- Returns the string representation of the file.
- """
- return unicode(self).encode(self.encoding)
+ ret.append(entry.__str__(self.wrapwidth))
+ return '\n'.join(ret)
def __contains__(self, entry):
"""
- Overriden ``list`` method to implement the membership test (in and
- not in).
- The method considers that an entry is in the file if it finds an entry
- that has the same msgid (the test is **case sensitive**).
-
- Argument:
-
- ``entry``
- an instance of :class:`~polib._BaseEntry`.
+ Overriden method to implement the membership test (in and not in).
+ The method considers that an entry is in the file if it finds an
+ entry that has the same msgid (case sensitive).
+
+ **Keyword argument**:
+ - *entry*: an instance of polib._BaseEntry
+
+ **Tests**:
+ >>> po = POFile()
+ >>> e1 = POEntry(msgid='foobar', msgstr='spam')
+ >>> e2 = POEntry(msgid='barfoo', msgstr='spam')
+ >>> e3 = POEntry(msgid='foobar', msgstr='eggs')
+ >>> e4 = POEntry(msgid='spameggs', msgstr='eggs')
+ >>> po.append(e1)
+ >>> po.append(e2)
+ >>> e1 in po
+ True
+ >>> e2 not in po
+ False
+ >>> e3 in po
+ True
+ >>> e4 in po
+ False
"""
return self.find(entry.msgid, by='msgid') is not None
-
- def __eq__(self, other):
- return unicode(self) == unicode(other)
def append(self, entry):
"""
Overriden method to check for duplicates entries, if a user tries to
- add an entry that is already in the file, the method will raise a
- ``ValueError`` exception.
-
- Argument:
-
- ``entry``
- an instance of :class:`~polib._BaseEntry`.
+ add an entry that already exists, the method will raise a ValueError
+ exception.
+
+ **Keyword argument**:
+ - *entry*: an instance of polib._BaseEntry
+
+ **Tests**:
+ >>> e1 = POEntry(msgid='foobar', msgstr='spam')
+ >>> e2 = POEntry(msgid='foobar', msgstr='eggs')
+ >>> po = POFile(check_for_duplicates=True)
+ >>> po.append(e1)
+ >>> try:
+ ... po.append(e2)
+ ... except ValueError, e:
+ ... unicode(e)
+ u'Entry "foobar" already exists'
"""
if self.check_for_duplicates and entry in self:
raise ValueError('Entry "%s" already exists' % entry.msgid)
@@ -299,50 +366,70 @@ class _BaseFile(list):
def insert(self, index, entry):
"""
Overriden method to check for duplicates entries, if a user tries to
- add an entry that is already in the file, the method will raise a
- ``ValueError`` exception.
-
- Arguments:
-
- ``index``
- index at which the entry should be inserted.
-
- ``entry``
- an instance of :class:`~polib._BaseEntry`.
+ insert an entry that already exists, the method will raise a ValueError
+ exception.
+
+ **Keyword arguments**:
+ - *index*: index at which the entry should be inserted
+ - *entry*: an instance of polib._BaseEntry
+
+ **Tests**:
+ >>> import polib
+ >>> polib.check_for_duplicates = True
+ >>> e1 = POEntry(msgid='foobar', msgstr='spam')
+ >>> e2 = POEntry(msgid='barfoo', msgstr='eggs')
+ >>> e3 = POEntry(msgid='foobar', msgstr='eggs')
+ >>> po = POFile(check_for_duplicates=True)
+ >>> po.insert(0, e1)
+ >>> po.insert(1, e2)
+ >>> try:
+ ... po.insert(0, e3)
+ ... except ValueError, e:
+ ... unicode(e)
+ u'Entry "foobar" already exists'
"""
if self.check_for_duplicates and entry in self:
raise ValueError('Entry "%s" already exists' % entry.msgid)
super(_BaseFile, self).insert(index, entry)
+ def __repr__(self):
+ """Return the official string representation of the object."""
+ return '<%s instance at %x>' % (self.__class__.__name__, id(self))
+
def metadata_as_entry(self):
"""
- Returns the file metadata as a :class:`~polib.POFile` instance.
+ Return the metadata as an entry:
+
+ >>> import polib
+ >>> po = polib.pofile('tests/test_fuzzy_header.po')
+ >>> unicode(po) == unicode(open('tests/test_fuzzy_header.po').read())
+ True
"""
e = POEntry(msgid='')
mdata = self.ordered_metadata()
if mdata:
strs = []
+ e._multiline_str['msgstr'] = ''
for name, value in mdata:
# Strip whitespace off each line in a multi-line entry
strs.append('%s: %s' % (name, value))
e.msgstr = '\n'.join(strs) + '\n'
+ e._multiline_str['msgstr'] = '__POLIB__NL__'.join(
+ [s + '\n' for s in strs])
if self.metadata_is_fuzzy:
e.flags.append('fuzzy')
return e
def save(self, fpath=None, repr_method='__str__'):
"""
- Saves the po file to ``fpath``.
- If it is an existing file and no ``fpath`` is provided, then the
- existing file is rewritten with the modified data.
-
- Keyword arguments:
+ Save the po file to file *fpath* if no file handle exists for
+ the object. If there's already an open file and no fpath is
+ provided, then the existing file is rewritten with the modified
+ data.
- ``fpath``
- string, full or relative path to the file.
-
- ``repr_method``
- string, the method to use for output.
+ **Keyword arguments**:
+ - *fpath*: string, full or relative path to the file.
+ - *repr_method*: string, the method to use for output.
"""
if self.fpath is None and fpath is None:
raise IOError('You must provide a file path to save() method')
@@ -357,47 +444,38 @@ class _BaseFile(list):
contents = contents.decode(self.encoding)
fhandle.write(contents)
fhandle.close()
- # set the file path if not set
- if self.fpath is None and fpath:
- self.fpath = fpath
- def find(self, st, by='msgid', include_obsolete_entries=False,
- msgctxt=False):
+ def find(self, st, by='msgid'):
"""
- Find the entry which msgid (or property identified by the ``by``
- argument) matches the string ``st``.
-
- Keyword arguments:
+ Find entry which msgid (or property identified by the *by*
+ attribute) matches the string *st*.
- ``st``
- string, the string to search for.
+ **Keyword arguments**:
+ - *st*: string, the string to search for
+ - *by*: string, the comparison attribute
- ``by``
- string, the property to use for comparison (default: ``msgid``).
+ **Examples**:
- ``include_obsolete_entries``
- boolean, whether to also search in entries that are obsolete.
-
- ``msgctxt``
- string, allows to specify a specific message context for the
- search.
+ >>> po = pofile('tests/test_utf8.po')
+ >>> entry = po.find('Thursday')
+ >>> entry.msgstr
+ u'Jueves'
+ >>> entry = po.find('Some unexistant msgid')
+ >>> entry is None
+ True
+ >>> entry = po.find('Jueves', 'msgstr')
+ >>> entry.msgid
+ u'Thursday'
"""
- if include_obsolete_entries:
- entries = self[:]
- else:
- entries = [e for e in self if not e.obsolete]
- for e in entries:
+ for e in self:
if getattr(e, by) == st:
- if msgctxt and e.msgctxt != msgctxt:
- continue
return e
return None
def ordered_metadata(self):
"""
- Convenience method that returns an ordered version of the metadata
- dictionnary. The return value is list of tuples (metadata name,
- metadata_value).
+ Convenience method that return the metadata ordered. The return
+ value is list of tuples (metadata name, metadata_value).
"""
# copy the dict first
metadata = self.metadata.copy()
@@ -419,10 +497,9 @@ class _BaseFile(list):
ordered_data.append((data, value))
except KeyError:
pass
- # the rest of the metadata will be alphabetically ordered since there
- # are no specs for this AFAIK
+ # the rest of the metadata won't be ordered there are no specs for this
keys = metadata.keys()
- keys.sort()
+ list(keys).sort()
for data in keys:
value = metadata[data]
ordered_data.append((data, value))
@@ -430,51 +507,45 @@ class _BaseFile(list):
def to_binary(self):
"""
- Return the binary representation of the file.
+ Return the mofile binary representation.
"""
+ import array
+ import struct
+ import types
offsets = []
entries = self.translated_entries()
# the keys are sorted in the .mo file
def cmp(_self, other):
- # msgfmt compares entries with msgctxt if it exists
- self_msgid = _self.msgctxt and _self.msgctxt or _self.msgid
- other_msgid = other.msgctxt and other.msgctxt or other.msgid
- if self_msgid > other_msgid:
+ if _self.msgid > other.msgid:
return 1
- elif self_msgid < other_msgid:
+ elif _self.msgid < other.msgid:
return -1
else:
return 0
# add metadata entry
entries.sort(cmp)
mentry = self.metadata_as_entry()
- #mentry.msgstr = mentry.msgstr.replace('\\n', '').lstrip()
+ mentry.msgstr = mentry.msgstr.replace('\\n', '').lstrip()
entries = [mentry] + entries
entries_len = len(entries)
ids, strs = '', ''
for e in entries:
# For each string, we need size and file offset. Each string is
# NUL terminated; the NUL does not count into the size.
- msgid = ''
- if e.msgctxt:
- # Contexts are stored by storing the concatenation of the
- # context, a <EOT> byte, and the original string
- msgid = self._encode(e.msgctxt + '\4')
if e.msgid_plural:
indexes = e.msgstr_plural.keys()
indexes.sort()
msgstr = []
for index in indexes:
msgstr.append(e.msgstr_plural[index])
- msgid += self._encode(e.msgid + '\0' + e.msgid_plural)
+ msgid = self._encode(e.msgid + '\0' + e.msgid_plural)
msgstr = self._encode('\0'.join(msgstr))
else:
- msgid += self._encode(e.msgid)
+ msgid = self._encode(e.msgid)
msgstr = self._encode(e.msgstr)
offsets.append((len(ids), len(msgid), len(strs), len(msgstr)))
ids += msgid + '\0'
strs += msgstr + '\0'
-
# The header is 7 32-bit unsigned integers.
keystart = 7*4+16*entries_len
# and the values start after the keys
@@ -487,31 +558,22 @@ class _BaseFile(list):
koffsets += [l1, o1+keystart]
voffsets += [l2, o2+valuestart]
offsets = koffsets + voffsets
- # check endianness for magic number
- if struct.pack('@h', 1) == struct.pack('<h', 1):
- magic_number = MOFile.LITTLE_ENDIAN
- else:
- magic_number = MOFile.BIG_ENDIAN
-
- output = struct.pack(
- "Iiiiiii",
- magic_number, # Magic number
- 0, # Version
- entries_len, # # of entries
- 7*4, # start of key index
- 7*4+entries_len*8, # start of value index
- 0, keystart # size and offset of hash table
- # Important: we don't use hash tables
- )
- output += array.array("i", offsets).tostring()
+ output = struct.pack("IIIIIII",
+ 0x950412de, # Magic number
+ 0, # Version
+ entries_len, # # of entries
+ 7*4, # start of key index
+ 7*4+entries_len*8, # start of value index
+ 0, 0) # size and offset of hash table
+ output += array.array("I", offsets).tostring()
output += ids
output += strs
return output
def _encode(self, mixed):
"""
- Encodes the given ``mixed`` argument with the file encoding if and
- only if it's an unicode string and returns the encoded string.
+ Encode the given argument with the file encoding if the type is unicode
+ and return the encoded string.
"""
if type(mixed) == types.UnicodeType:
return mixed.encode(self.encoding)
@@ -521,43 +583,88 @@ class _BaseFile(list):
# class POFile {{{
class POFile(_BaseFile):
- """
+ '''
Po (or Pot) file reader/writer.
- This class inherits the :class:`~polib._BaseFile` class and, by extension,
- the python ``list`` type.
- """
+ POFile objects inherit the list objects methods.
+
+ **Example**:
+
+ >>> po = POFile()
+ >>> entry1 = POEntry(
+ ... msgid="Some english text",
+ ... msgstr="Un texte en anglais"
+ ... )
+ >>> entry1.occurrences = [('testfile', 12),('another_file', 1)]
+ >>> entry1.comment = "Some useful comment"
+ >>> entry2 = POEntry(
+ ... msgid="Peace in some languages",
+ ... msgstr="Pace سلام ×©×œ×•× Hasîtî 和平"
+ ... )
+ >>> entry2.occurrences = [('testfile', 15),('another_file', 5)]
+ >>> entry2.comment = "Another useful comment"
+ >>> entry3 = POEntry(
+ ... msgid='Some entry with quotes " \\"',
+ ... msgstr='Un message unicode avec des quotes " \\"'
+ ... )
+ >>> entry3.comment = "Test string quoting"
+ >>> po.append(entry1)
+ >>> po.append(entry2)
+ >>> po.append(entry3)
+ >>> po.header = "Some Header"
+ >>> print(po)
+ # Some Header
+ msgid ""
+ msgstr ""
+ <BLANKLINE>
+ #. Some useful comment
+ #: testfile:12 another_file:1
+ msgid "Some english text"
+ msgstr "Un texte en anglais"
+ <BLANKLINE>
+ #. Another useful comment
+ #: testfile:15 another_file:5
+ msgid "Peace in some languages"
+ msgstr "Pace سلام ×©×œ×•× Hasîtî 和平"
+ <BLANKLINE>
+ #. Test string quoting
+ msgid "Some entry with quotes \\" \\""
+ msgstr "Un message unicode avec des quotes \\" \\""
+ <BLANKLINE>
+ '''
- def __unicode__(self):
- """
- Returns the unicode representation of the po file.
- """
+ def __str__(self):
+ """Return the string representation of the po file"""
ret, headers = '', self.header.split('\n')
for header in headers:
if header[:1] in [',', ':']:
ret += '#%s\n' % header
else:
ret += '# %s\n' % header
-
- if type(ret) != types.UnicodeType:
- ret = unicode(ret, self.encoding)
-
- return ret + _BaseFile.__unicode__(self)
+ return ret + _BaseFile.__str__(self)
def save_as_mofile(self, fpath):
"""
- Saves the binary representation of the file to given ``fpath``.
-
- Keyword argument:
+ Save the binary representation of the file to *fpath*.
- ``fpath``
- string, full or relative path to the mo file.
+ **Keyword arguments**:
+ - *fpath*: string, full or relative path to the file.
"""
_BaseFile.save(self, fpath, 'to_binary')
def percent_translated(self):
"""
- Convenience method that returns the percentage of translated
+ Convenience method that return the percentage of translated
messages.
+
+ **Example**:
+
+ >>> import polib
+ >>> po = polib.pofile('tests/test_pofile_helpers.po')
+ >>> po.percent_translated()
+ 50
+ >>> po = POFile()
+ >>> po.percent_translated()
+ 100
"""
total = len([e for e in self if not e.obsolete])
if total == 0:
@@ -567,52 +674,91 @@ class POFile(_BaseFile):
def translated_entries(self):
"""
- Convenience method that returns the list of translated entries.
+ Convenience method that return a list of translated entries.
+
+ **Example**:
+
+ >>> import polib
+ >>> po = polib.pofile('tests/test_pofile_helpers.po')
+ >>> len(po.translated_entries())
+ 6
"""
return [e for e in self if e.translated()]
def untranslated_entries(self):
"""
- Convenience method that returns the list of untranslated entries.
+ Convenience method that return a list of untranslated entries.
+
+ **Example**:
+
+ >>> import polib
+ >>> po = polib.pofile('tests/test_pofile_helpers.po')
+ >>> len(po.untranslated_entries())
+ 4
"""
return [e for e in self if not e.translated() and not e.obsolete \
and not 'fuzzy' in e.flags]
def fuzzy_entries(self):
"""
- Convenience method that returns the list of fuzzy entries.
+ Convenience method that return the list of 'fuzzy' entries.
+
+ **Example**:
+
+ >>> import polib
+ >>> po = polib.pofile('tests/test_pofile_helpers.po')
+ >>> len(po.fuzzy_entries())
+ 2
"""
return [e for e in self if 'fuzzy' in e.flags]
def obsolete_entries(self):
"""
- Convenience method that returns the list of obsolete entries.
+ Convenience method that return the list of obsolete entries.
+
+ **Example**:
+
+ >>> import polib
+ >>> po = polib.pofile('tests/test_pofile_helpers.po')
+ >>> len(po.obsolete_entries())
+ 4
"""
return [e for e in self if e.obsolete]
def merge(self, refpot):
"""
- Convenience method that merges the current pofile with the pot file
+ XXX this could not work if encodings are different, needs thinking
+ and general refactoring of how polib handles encoding...
+
+ Convenience method that merge the current pofile with the pot file
provided. It behaves exactly as the gettext msgmerge utility:
- * comments of this file will be preserved, but extracted comments and
- occurrences will be discarded;
- * any translations or comments in the file will be discarded, however,
- dot comments and file positions will be preserved;
- * the fuzzy flags are preserved.
+ - comments of this file will be preserved, but extracted comments
+ and occurrences will be discarded
+ - any translations or comments in the file will be discarded,
+ however dot comments and file positions will be preserved
- Keyword argument:
+ **Keyword argument**:
+ - *refpot*: object POFile, the reference catalog.
- ``refpot``
- object POFile, the reference catalog.
+ **Example**:
+
+ >>> import polib
+ >>> refpot = polib.pofile('tests/test_merge.pot')
+ >>> po = polib.pofile('tests/test_merge_before.po')
+ >>> po.merge(refpot)
+ >>> expected_po = polib.pofile('tests/test_merge_after.po')
+ >>> unicode(po) == unicode(expected_po)
+ True
"""
for entry in refpot:
- e = self.find(entry.msgid, include_obsolete_entries=True)
+ e = self.find(entry.msgid)
if e is None:
e = POEntry()
self.append(e)
e.merge(entry)
- # ok, now we must "obsolete" entries that are not in the refpot anymore
+ # ok, now we must "obsolete" entries that are not in the refpot
+ # anymore
for entry in self:
if refpot.find(entry.msgid) is None:
entry.obsolete = True
@@ -621,18 +767,48 @@ class POFile(_BaseFile):
# class MOFile {{{
class MOFile(_BaseFile):
- """
+ '''
Mo file reader/writer.
- This class inherits the :class:`~polib._BaseFile` class and, by
- extension, the python ``list`` type.
- """
- BIG_ENDIAN = 0xde120495
- LITTLE_ENDIAN = 0x950412de
+ MOFile objects inherit the list objects methods.
+
+ **Example**:
+
+ >>> mo = MOFile()
+ >>> entry1 = POEntry(
+ ... msgid="Some english text",
+ ... msgstr="Un texte en anglais"
+ ... )
+ >>> entry2 = POEntry(
+ ... msgid="I need my dirty cheese",
+ ... msgstr="Je veux mon sale fromage"
+ ... )
+ >>> entry3 = MOEntry(
+ ... msgid='Some entry with quotes " \\"',
+ ... msgstr='Un message unicode avec des quotes " \\"'
+ ... )
+ >>> mo.append(entry1)
+ >>> mo.append(entry2)
+ >>> mo.append(entry3)
+ >>> print(mo)
+ msgid ""
+ msgstr ""
+ <BLANKLINE>
+ msgid "Some english text"
+ msgstr "Un texte en anglais"
+ <BLANKLINE>
+ msgid "I need my dirty cheese"
+ msgstr "Je veux mon sale fromage"
+ <BLANKLINE>
+ msgid "Some entry with quotes \\" \\""
+ msgstr "Un message unicode avec des quotes \\" \\""
+ <BLANKLINE>
+ '''
def __init__(self, *args, **kwargs):
"""
- Constructor, accepts all keywords arguments accepted by
- :class:`~polib._BaseFile` class.
+ MOFile constructor. Mo files have two other properties:
+ - magic_number: the magic_number of the binary file,
+ - version: the version of the mo spec.
"""
_BaseFile.__init__(self, *args, **kwargs)
self.magic_number = None
@@ -640,23 +816,19 @@ class MOFile(_BaseFile):
def save_as_pofile(self, fpath):
"""
- Saves the mofile as a pofile to ``fpath``.
+ Save the string representation of the file to *fpath*.
- Keyword argument:
-
- ``fpath``
- string, full or relative path to the file.
+ **Keyword argument**:
+ - *fpath*: string, full or relative path to the file.
"""
_BaseFile.save(self, fpath)
- def save(self, fpath=None):
+ def save(self, fpath):
"""
- Saves the mofile to ``fpath``.
-
- Keyword argument:
+ Save the binary representation of the file to *fpath*.
- ``fpath``
- string, full or relative path to the file.
+ **Keyword argument**:
+ - *fpath*: string, full or relative path to the file.
"""
_BaseFile.save(self, fpath, 'to_binary')
@@ -695,47 +867,29 @@ class MOFile(_BaseFile):
class _BaseEntry(object):
"""
- Base class for :class:`~polib.POEntry` and :class:`~polib.MOEntry` classes.
- This class should **not** be instanciated directly.
+ Base class for POEntry or MOEntry objects.
+ This class must *not* be instanciated directly.
"""
def __init__(self, *args, **kwargs):
- """
- Constructor, accepts the following keyword arguments:
-
- ``msgid``
- string, the entry msgid.
-
- ``msgstr``
- string, the entry msgstr.
-
- ``msgid_plural``
- string, the entry msgid_plural.
-
- ``msgstr_plural``
- list, the entry msgstr_plural lines.
-
- ``msgctxt``
- string, the entry context (msgctxt).
-
- ``obsolete``
- bool, whether the entry is "obsolete" or not.
-
- ``encoding``
- string, the encoding to use, defaults to ``default_encoding``
- global variable (optional).
- """
+ """Base Entry constructor."""
self.msgid = kwargs.get('msgid', '')
self.msgstr = kwargs.get('msgstr', '')
self.msgid_plural = kwargs.get('msgid_plural', '')
self.msgstr_plural = kwargs.get('msgstr_plural', {})
- self.msgctxt = kwargs.get('msgctxt', None)
self.obsolete = kwargs.get('obsolete', False)
self.encoding = kwargs.get('encoding', default_encoding)
+ self.msgctxt = kwargs.get('msgctxt', None)
+ self._multiline_str = {}
- def __unicode__(self, wrapwidth=78):
+ def __repr__(self):
+ """Return the official string representation of the object."""
+ return '<%s instance at %x>' % (self.__class__.__name__, id(self))
+
+ def __str__(self, wrapwidth=78):
"""
- Returns the unicode representation of the entry.
+ Common string representation of the POEntry and MOEntry
+ objects.
"""
if self.obsolete:
delflag = '#~ '
@@ -744,12 +898,12 @@ class _BaseEntry(object):
ret = []
# write the msgctxt if any
if self.msgctxt is not None:
- ret += self._str_field("msgctxt", delflag, "", self.msgctxt, wrapwidth)
+ ret += self._str_field("msgctxt", delflag, "", self.msgctxt)
# write the msgid
- ret += self._str_field("msgid", delflag, "", self.msgid, wrapwidth)
+ ret += self._str_field("msgid", delflag, "", self.msgid)
# write the msgid_plural if any
if self.msgid_plural:
- ret += self._str_field("msgid_plural", delflag, "", self.msgid_plural, wrapwidth)
+ ret += self._str_field("msgid_plural", delflag, "", self.msgid_plural)
if self.msgstr_plural:
# write the msgstr_plural if any
msgstrs = self.msgstr_plural
@@ -758,51 +912,23 @@ class _BaseEntry(object):
for index in keys:
msgstr = msgstrs[index]
plural_index = '[%s]' % index
- ret += self._str_field("msgstr", delflag, plural_index, msgstr, wrapwidth)
+ ret += self._str_field("msgstr", delflag, plural_index, msgstr)
else:
# otherwise write the msgstr
- ret += self._str_field("msgstr", delflag, "", self.msgstr, wrapwidth)
+ ret += self._str_field("msgstr", delflag, "", self.msgstr)
ret.append('')
- ret = '\n'.join(ret)
-
- if type(ret) != types.UnicodeType:
- return unicode(ret, self.encoding)
- return ret
-
- def __str__(self):
- """
- Returns the string representation of the entry.
- """
- return unicode(self).encode(self.encoding)
-
- def __eq__(self, other):
- return unicode(self) == unicode(other)
+ return '\n'.join(ret)
- def _str_field(self, fieldname, delflag, plural_index, field, wrapwidth=78):
- lines = field.splitlines(True)
- if len(lines) > 1:
- lines = [''] + lines # start with initial empty line
+ def _str_field(self, fieldname, delflag, plural_index, field):
+ if (fieldname + plural_index) in self._multiline_str:
+ field = self._multiline_str[fieldname + plural_index]
+ lines = [''] + field.split('__POLIB__NL__')
else:
- escaped_field = escape(field)
- specialchars_count = 0
- for c in ['\\', '\n', '\r', '\t', '"']:
- specialchars_count += field.count(c)
- # comparison must take into account fieldname length + one space
- # + 2 quotes (eg. msgid "<string>")
- flength = len(fieldname) + 3
- if plural_index:
- flength += len(plural_index)
- real_wrapwidth = wrapwidth - flength + specialchars_count
- if wrapwidth > 0 and len(field) > real_wrapwidth:
- # Wrap the line but take field name into account
- lines = [''] + [unescape(item) for item in wrap(
- escaped_field,
- wrapwidth - 2, # 2 for quotes ""
- drop_whitespace=False,
- break_long_words=False
- )]
+ lines = field.splitlines(True)
+ if len(lines) > 1:
+ lines = ['']+lines # start with initial empty line
else:
- lines = [field]
+ lines = [field] # needed for the empty string case
if fieldname.startswith('previous_'):
# quick and dirty trick to get the real field name
fieldname = fieldname[9:]
@@ -819,33 +945,50 @@ class _BaseEntry(object):
class POEntry(_BaseEntry):
"""
Represents a po file entry.
+
+ **Examples**:
+
+ >>> entry = POEntry(msgid='Welcome', msgstr='Bienvenue')
+ >>> entry.occurrences = [('welcome.py', 12), ('anotherfile.py', 34)]
+ >>> print(entry)
+ #: welcome.py:12 anotherfile.py:34
+ msgid "Welcome"
+ msgstr "Bienvenue"
+ <BLANKLINE>
+ >>> entry = POEntry()
+ >>> entry.occurrences = [('src/some-very-long-filename-that-should-not-be-wrapped-even-if-it-is-larger-than-the-wrap-limit.c', 32), ('src/eggs.c', 45)]
+ >>> entry.comment = 'A plural translation. This is a very very very long line please do not wrap, this is just for testing comment wrapping...'
+ >>> entry.tcomment = 'A plural translation. This is a very very very long line please do not wrap, this is just for testing comment wrapping...'
+ >>> entry.flags.append('c-format')
+ >>> entry.previous_msgctxt = '@somecontext'
+ >>> entry.previous_msgid = 'I had eggs but no spam !'
+ >>> entry.previous_msgid_plural = 'I had eggs and %d spam !'
+ >>> entry.msgctxt = '@somenewcontext'
+ >>> entry.msgid = 'I have spam but no egg !'
+ >>> entry.msgid_plural = 'I have spam and %d eggs !'
+ >>> entry.msgstr_plural[0] = "J'ai du jambon mais aucun oeuf !"
+ >>> entry.msgstr_plural[1] = "J'ai du jambon et %d oeufs !"
+ >>> print(entry)
+ #. A plural translation. This is a very very very long line please do not
+ #. wrap, this is just for testing comment wrapping...
+ # A plural translation. This is a very very very long line please do not wrap,
+ # this is just for testing comment wrapping...
+ #: src/some-very-long-filename-that-should-not-be-wrapped-even-if-it-is-larger-than-the-wrap-limit.c:32
+ #: src/eggs.c:45
+ #, c-format
+ #| msgctxt "@somecontext"
+ #| msgid "I had eggs but no spam !"
+ #| msgid_plural "I had eggs and %d spam !"
+ msgctxt "@somenewcontext"
+ msgid "I have spam but no egg !"
+ msgid_plural "I have spam and %d eggs !"
+ msgstr[0] "J'ai du jambon mais aucun oeuf !"
+ msgstr[1] "J'ai du jambon et %d oeufs !"
+ <BLANKLINE>
"""
def __init__(self, *args, **kwargs):
- """
- Constructor, accepts the following keyword arguments:
-
- ``comment``
- string, the entry comment.
-
- ``tcomment``
- string, the entry translator comment.
-
- ``occurrences``
- list, the entry occurrences.
-
- ``flags``
- list, the entry flags.
-
- ``previous_msgctxt``
- string, the entry previous context.
-
- ``previous_msgid``
- string, the entry previous msgid.
-
- ``previous_msgid_plural``
- string, the entry previous msgid_plural.
- """
+ """POEntry constructor."""
_BaseEntry.__init__(self, *args, **kwargs)
self.comment = kwargs.get('comment', '')
self.tcomment = kwargs.get('tcomment', '')
@@ -855,31 +998,33 @@ class POEntry(_BaseEntry):
self.previous_msgid = kwargs.get('previous_msgid', None)
self.previous_msgid_plural = kwargs.get('previous_msgid_plural', None)
- def __unicode__(self, wrapwidth=78):
+ def __str__(self, wrapwidth=78):
"""
- Returns the unicode representation of the entry.
+ Return the string representation of the entry.
"""
if self.obsolete:
- return _BaseEntry.__unicode__(self, wrapwidth)
-
+ return _BaseEntry.__str__(self)
ret = []
- # comments first, if any (with text wrapping as xgettext does)
- comments = [('comment', '#. '), ('tcomment', '# ')]
- for c in comments:
- val = getattr(self, c[0])
- if val:
- for comment in val.split('\n'):
- if wrapwidth > 0 and len(comment) + len(c[1]) > wrapwidth:
- ret += wrap(
- comment,
- wrapwidth,
- initial_indent=c[1],
- subsequent_indent=c[1],
- break_long_words=False
- )
- else:
- ret.append('%s%s' % (c[1], comment))
-
+ # comment first, if any (with text wrapping as xgettext does)
+ if self.comment != '':
+ for comment in self.comment.split('\n'):
+ if wrapwidth > 0 and len(comment) > wrapwidth-3:
+ ret += textwrap.wrap(comment, wrapwidth,
+ initial_indent='#. ',
+ subsequent_indent='#. ',
+ break_long_words=False)
+ else:
+ ret.append('#. %s' % comment)
+ # translator comment, if any (with text wrapping as xgettext does)
+ if self.tcomment != '':
+ for tcomment in self.tcomment.split('\n'):
+ if wrapwidth > 0 and len(tcomment) > wrapwidth-2:
+ ret += textwrap.wrap(tcomment, wrapwidth,
+ initial_indent='# ',
+ subsequent_indent='# ',
+ break_long_words=False)
+ else:
+ ret.append('# %s' % tcomment)
# occurrences (with text wrapping as xgettext does)
if self.occurrences:
filelist = []
@@ -889,43 +1034,79 @@ class POEntry(_BaseEntry):
else:
filelist.append(fpath)
filestr = ' '.join(filelist)
- if wrapwidth > 0 and len(filestr) + 3 > wrapwidth:
- # textwrap split words that contain hyphen, this is not
+ if wrapwidth > 0 and len(filestr)+3 > wrapwidth:
+ # XXX textwrap split words that contain hyphen, this is not
# what we want for filenames, so the dirty hack is to
# temporally replace hyphens with a char that a file cannot
# contain, like "*"
- ret += [l.replace('*', '-') for l in wrap(
- filestr.replace('-', '*'),
- wrapwidth,
- initial_indent='#: ',
- subsequent_indent='#: ',
- break_long_words=False
- )]
+ lines = textwrap.wrap(filestr.replace('-', '*'),
+ wrapwidth,
+ initial_indent='#: ',
+ subsequent_indent='#: ',
+ break_long_words=False)
+ # end of the replace hack
+ for line in lines:
+ ret.append(line.replace('*', '-'))
else:
- ret.append('#: ' + filestr)
-
- # flags (TODO: wrapping ?)
+ ret.append('#: '+filestr)
+ # flags
if self.flags:
- ret.append('#, %s' % ', '.join(self.flags))
+ flags = []
+ for flag in self.flags:
+ flags.append(flag)
+ ret.append('#, %s' % ', '.join(flags))
# previous context and previous msgid/msgid_plural
- fields = ['previous_msgctxt', 'previous_msgid', 'previous_msgid_plural']
- for f in fields:
- val = getattr(self, f)
- if val:
- ret += self._str_field(f, "#| ", "", val, wrapwidth)
-
- ret.append(_BaseEntry.__unicode__(self, wrapwidth))
- ret = '\n'.join(ret)
-
- if type(ret) != types.UnicodeType:
- return unicode(ret, self.encoding)
- return ret
+ if self.previous_msgctxt:
+ ret += self._str_field("previous_msgctxt", "#| ", "",
+ self.previous_msgctxt)
+ if self.previous_msgid:
+ ret += self._str_field("previous_msgid", "#| ", "",
+ self.previous_msgid)
+ if self.previous_msgid_plural:
+ ret += self._str_field("previous_msgid_plural", "#| ", "",
+ self.previous_msgid_plural)
+
+ ret.append(_BaseEntry.__str__(self))
+ return '\n'.join(ret)
def __cmp__(self, other):
- """
+ '''
Called by comparison operations if rich comparison is not defined.
- """
+
+ **Tests**:
+ >>> a = POEntry(msgid='a', occurrences=[('b.py', 1), ('b.py', 3)])
+ >>> b = POEntry(msgid='b', occurrences=[('b.py', 1), ('b.py', 3)])
+ >>> c1 = POEntry(msgid='c1', occurrences=[('a.py', 1), ('b.py', 1)])
+ >>> c2 = POEntry(msgid='c2', occurrences=[('a.py', 1), ('a.py', 3)])
+ >>> po = POFile()
+ >>> po.append(a)
+ >>> po.append(b)
+ >>> po.append(c1)
+ >>> po.append(c2)
+ >>> po.sort()
+ >>> print(po)
+ #
+ msgid ""
+ msgstr ""
+ <BLANKLINE>
+ #: a.py:1 a.py:3
+ msgid "c2"
+ msgstr ""
+ <BLANKLINE>
+ #: a.py:1 b.py:1
+ msgid "c1"
+ msgstr ""
+ <BLANKLINE>
+ #: b.py:1 b.py:3
+ msgid "a"
+ msgstr ""
+ <BLANKLINE>
+ #: b.py:1 b.py:3
+ msgid "b"
+ msgstr ""
+ <BLANKLINE>
+ '''
def compare_occurrences(a, b):
"""
Compare an entry occurrence with another one.
@@ -972,8 +1153,7 @@ class POEntry(_BaseEntry):
def translated(self):
"""
- Returns ``True`` if the entry has been translated or ``False``
- otherwise.
+ Return True if the entry has been translated or False.
"""
if self.obsolete or 'fuzzy' in self.flags:
return False
@@ -990,19 +1170,11 @@ class POEntry(_BaseEntry):
"""
Merge the current entry with the given pot entry.
"""
- self.msgid = other.msgid
- self.msgctxt = other.msgctxt
- self.occurrences = other.occurrences
- self.comment = other.comment
- fuzzy = 'fuzzy' in self.flags
- self.flags = other.flags[:] # clone flags
- if fuzzy:
- self.flags.append('fuzzy')
+ self.msgid = other.msgid
+ self.occurrences = other.occurrences
+ self.comment = other.comment
+ self.flags = other.flags
self.msgid_plural = other.msgid_plural
- self.obsolete = other.obsolete
- self.previous_msgctxt = other.previous_msgctxt
- self.previous_msgid = other.previous_msgid
- self.previous_msgid_plural = other.previous_msgid_plural
if other.msgstr_plural:
for pos in other.msgstr_plural:
try:
@@ -1017,8 +1189,23 @@ class POEntry(_BaseEntry):
class MOEntry(_BaseEntry):
"""
Represents a mo file entry.
+
+ **Examples**:
+
+ >>> entry = MOEntry()
+ >>> entry.msgid = 'translate me !'
+ >>> entry.msgstr = 'traduisez moi !'
+ >>> print(entry)
+ msgid "translate me !"
+ msgstr "traduisez moi !"
+ <BLANKLINE>
"""
- pass
+
+ def __str__(self, wrapwidth=78):
+ """
+ Return the string representation of the entry.
+ """
+ return _BaseEntry.__str__(self, wrapwidth)
# }}}
# class _POFileParser {{{
@@ -1029,37 +1216,28 @@ class _POFileParser(object):
file format.
"""
- def __init__(self, pofile, *args, **kwargs):
+ def __init__(self, fpath, *args, **kwargs):
"""
Constructor.
- Keyword arguments:
-
- ``pofile``
- string, path to the po file or its content
-
- ``encoding``
- string, the encoding to use, defaults to ``default_encoding``
- global variable (optional).
-
- ``check_for_duplicates``
- whether to check for duplicate entries when adding entries to the
- file (optional, default: ``False``).
+ **Arguments**:
+ - *fpath*: string, path to the po file
+ - *encoding*: string, the encoding to use, defaults to
+ "default_encoding" global variable (optional),
+ - *check_for_duplicates*: whether to check for duplicate entries
+ when adding entries to the file, default: False (optional).
"""
enc = kwargs.get('encoding', default_encoding)
- if os.path.exists(pofile):
- try:
- self.fhandle = codecs.open(pofile, 'rU', enc)
- except LookupError:
- enc = default_encoding
- self.fhandle = codecs.open(pofile, 'rU', enc)
- else:
- self.fhandle = pofile.splitlines()
-
+ check_dup = kwargs.get('check_for_duplicates', False)
+ try:
+ self.fhandle = codecs.open(fpath, 'rU', enc)
+ except LookupError:
+ enc = default_encoding
+ self.fhandle = codecs.open(fpath, 'rU', enc)
self.instance = POFile(
- pofile=pofile,
+ fpath=fpath,
encoding=enc,
- check_for_duplicates=kwargs.get('check_for_duplicates', False)
+ check_for_duplicates=check_dup
)
self.transitions = {}
self.current_entry = POEntry()
@@ -1111,103 +1289,59 @@ class _POFileParser(object):
Run the state machine, parse the file line by line and call process()
with the current matched symbol.
"""
- i = 0
-
- keywords = {
- 'msgctxt': 'CT',
- 'msgid': 'MI',
- 'msgstr': 'MS',
- 'msgid_plural': 'MP',
- }
- prev_keywords = {
- 'msgid_plural': 'PP',
- 'msgid': 'PM',
- 'msgctxt': 'PC',
- }
-
+ i, lastlen = 1, 0
for line in self.fhandle:
- i += 1
line = line.strip()
if line == '':
+ i = i+1
continue
-
- tokens = line.split(None, 2)
- nb_tokens = len(tokens)
-
- if tokens[0] == '#~' and nb_tokens > 1:
- line = line[3:].strip()
- tokens = tokens[1:]
- nb_tokens -= 1
+ if line[:3] == '#~ ':
+ line = line[3:]
self.entry_obsolete = 1
else:
self.entry_obsolete = 0
-
- # Take care of keywords like
- # msgid, msgid_plural, msgctxt & msgstr.
- if tokens[0] in keywords and nb_tokens > 1:
- line = line[len(tokens[0]):].lstrip()
- self.current_token = line
- self.process(keywords[tokens[0]], i)
- continue
-
self.current_token = line
-
- if tokens[0] == '#:' and nb_tokens > 1:
+ if line[:2] == '#:':
# we are on a occurrences line
self.process('OC', i)
-
- elif line[:1] == '"':
- # we are on a continuation line
+ elif line[:9] == 'msgctxt "':
+ # we are on a msgctxt
+ self.process('CT', i)
+ elif line[:7] == 'msgid "':
+ # we are on a msgid
+ self.process('MI', i)
+ elif line[:8] == 'msgstr "':
+ # we are on a msgstr
+ self.process('MS', i)
+ elif line[:1] == '"' or line[:4] == '#| "':
+ # we are on a continuation line or some metadata
self.process('MC', i)
-
+ elif line[:14] == 'msgid_plural "':
+ # we are on a msgid plural
+ self.process('MP', i)
elif line[:7] == 'msgstr[':
# we are on a msgstr plural
self.process('MX', i)
-
- elif tokens[0] == '#,' and nb_tokens > 1:
+ elif line[:3] == '#, ':
# we are on a flags line
self.process('FL', i)
-
- elif tokens[0] == '#':
- if line == '#': line += ' '
+ elif line[:2] == '# ' or line == '#':
+ if line == '#': line = line + ' '
# we are on a translator comment line
self.process('TC', i)
-
- elif tokens[0] == '#.' and nb_tokens > 1:
+ elif line[:2] == '#.':
# we are on a generated comment line
self.process('GC', i)
-
- elif tokens[0] == '#|':
- if nb_tokens < 2:
- self.process('??', i)
- continue
-
- # Remove the marker and any whitespace right after that.
- line = line[2:].lstrip()
- self.current_token = line
-
- if tokens[1].startswith('"'):
- # Continuation of previous metadata.
- self.process('MC', i)
- continue
-
- if nb_tokens == 2:
- # Invalid continuation line.
- self.process('??', i)
-
- # we are on a "previous translation" comment line,
- if tokens[1] not in prev_keywords:
- # Unknown keyword in previous translation comment.
- self.process('??', i)
-
- # Remove the keyword and any whitespace
- # between it and the starting quote.
- line = line[len(tokens[1]):].lstrip()
- self.current_token = line
- self.process(prev_keywords[tokens[1]], i)
-
- else:
- self.process('??', i)
+ elif line[:15] == '#| msgid_plural':
+ # we are on a previous msgid_plural
+ self.process('PP', i)
+ elif line[:8] == '#| msgid':
+ self.process('PM', i)
+ # we are on a previous msgid
+ elif line[:10] == '#| msgctxt':
+ # we are on a previous msgctxt
+ self.process('PC', i)
+ i = i+1
if self.current_entry:
# since entries are added when another entry is found, we must add
@@ -1229,24 +1363,17 @@ class _POFileParser(object):
if key is not None:
self.instance.metadata[key] += '\n'+ msg.strip()
# close opened file
- if isinstance(self.fhandle, file):
- self.fhandle.close()
+ self.fhandle.close()
return self.instance
def add(self, symbol, states, next_state):
"""
Add a transition to the state machine.
-
Keywords arguments:
- ``symbol``
- string, the matched token (two chars symbol).
-
- ``states``
- list, a list of states (two chars symbols).
-
- ``next_state``
- the next state the fsm will have after the action.
+ symbol -- string, the matched token (two chars symbol)
+ states -- list, a list of states (two chars symbols)
+ next_state -- the next state the fsm will have after the action
"""
for state in states:
action = getattr(self, 'handle_%s' % next_state.lower())
@@ -1258,12 +1385,8 @@ class _POFileParser(object):
symbol provided.
Keywords arguments:
-
- ``symbol``
- string, the matched token (two chars symbol).
-
- ``linenum``
- integer, the current line number of the parsed file.
+ symbol -- string, the matched token (two chars symbol)
+ linenum -- integer, the current line number of the parsed file
"""
try:
(action, state) = self.transitions[(symbol, self.current_state)]
@@ -1333,7 +1456,7 @@ class _POFileParser(object):
self.instance.append(self.current_entry)
self.current_entry = POEntry()
self.current_entry.previous_msgid_plural = \
- unescape(self.current_token[1:-1])
+ unescape(self.current_token[17:-1])
return True
def handle_pm(self):
@@ -1342,7 +1465,7 @@ class _POFileParser(object):
self.instance.append(self.current_entry)
self.current_entry = POEntry()
self.current_entry.previous_msgid = \
- unescape(self.current_token[1:-1])
+ unescape(self.current_token[10:-1])
return True
def handle_pc(self):
@@ -1351,7 +1474,7 @@ class _POFileParser(object):
self.instance.append(self.current_entry)
self.current_entry = POEntry()
self.current_entry.previous_msgctxt = \
- unescape(self.current_token[1:-1])
+ unescape(self.current_token[12:-1])
return True
def handle_ct(self):
@@ -1359,7 +1482,7 @@ class _POFileParser(object):
if self.current_state in ['MC', 'MS', 'MX']:
self.instance.append(self.current_entry)
self.current_entry = POEntry()
- self.current_entry.msgctxt = unescape(self.current_token[1:-1])
+ self.current_entry.msgctxt = unescape(self.current_token[9:-1])
return True
def handle_mi(self):
@@ -1368,17 +1491,17 @@ class _POFileParser(object):
self.instance.append(self.current_entry)
self.current_entry = POEntry()
self.current_entry.obsolete = self.entry_obsolete
- self.current_entry.msgid = unescape(self.current_token[1:-1])
+ self.current_entry.msgid = unescape(self.current_token[7:-1])
return True
def handle_mp(self):
"""Handle a msgid plural."""
- self.current_entry.msgid_plural = unescape(self.current_token[1:-1])
+ self.current_entry.msgid_plural = unescape(self.current_token[14:-1])
return True
def handle_ms(self):
"""Handle a msgstr."""
- self.current_entry.msgstr = unescape(self.current_token[1:-1])
+ self.current_entry.msgstr = unescape(self.current_token[8:-1])
return True
def handle_mx(self):
@@ -1418,6 +1541,10 @@ class _POFileParser(object):
typ = 'previous_msgctxt'
token = token[3:]
self.current_entry.previous_msgctxt += token
+ if typ not in self.current_entry._multiline_str:
+ self.current_entry._multiline_str[typ] = token
+ else:
+ self.current_entry._multiline_str[typ] += "__POLIB__NL__" + token
# don't change the current state
return False
@@ -1428,41 +1555,43 @@ class _MOFileParser(object):
"""
A class to parse binary mo files.
"""
+ BIG_ENDIAN = 0xde120495
+ LITTLE_ENDIAN = 0x950412de
- def __init__(self, mofile, *args, **kwargs):
+ def __init__(self, fpath, *args, **kwargs):
"""
Constructor.
- Keyword arguments:
-
- ``mofile``
- string, path to the mo file or its content
-
- ``encoding``
- string, the encoding to use, defaults to ``default_encoding``
- global variable (optional).
-
- ``check_for_duplicates``
- whether to check for duplicate entries when adding entries to the
- file (optional, default: ``False``).
+ **Arguments**:
+ - *fpath*: string, path to the po file
+ - *encoding*: string, the encoding to use, defaults to
+ "default_encoding" global variable (optional),
+ - *check_for_duplicates*: whether to check for duplicate entries
+ when adding entries to the file, default: False (optional).
"""
- self.fhandle = open(mofile, 'rb')
+ enc = kwargs.get('encoding', default_encoding)
+ check_dup = kwargs.get('check_for_duplicates', False)
+ self.fhandle = open(fpath, 'rb')
self.instance = MOFile(
- fpath=mofile,
- encoding=kwargs.get('encoding', default_encoding),
- check_for_duplicates=kwargs.get('check_for_duplicates', False)
+ fpath=fpath,
+ encoding=enc,
+ check_for_duplicates=check_dup
)
+ def parse_magicnumber(self):
+ """
+ Parse the magic number and raise an exception if not valid.
+ """
+
def parse(self):
"""
Build the instance with the file handle provided in the
constructor.
"""
- # parse magic number
magic_number = self._readbinary('<I', 4)
- if magic_number == MOFile.LITTLE_ENDIAN:
+ if magic_number == self.LITTLE_ENDIAN:
ii = '<II'
- elif magic_number == MOFile.BIG_ENDIAN:
+ elif magic_number == self.BIG_ENDIAN:
ii = '>II'
else:
raise IOError('Invalid mo file, magic number is incorrect !')
@@ -1501,35 +1630,18 @@ class _MOFileParser(object):
# test if we have a plural entry
msgid_tokens = msgid.split('\0')
if len(msgid_tokens) > 1:
- entry = self._build_entry(
+ entry = MOEntry(
msgid=msgid_tokens[0],
msgid_plural=msgid_tokens[1],
- msgstr_plural=dict((k,v) for k,v in enumerate(msgstr.split('\0')))
+ msgstr_plural=dict((k,v) for k,v in \
+ enumerate(msgstr.split('\0')))
)
else:
- entry = self._build_entry(msgid=msgid, msgstr=msgstr)
+ entry = MOEntry(msgid=msgid, msgstr=msgstr)
self.instance.append(entry)
# close opened file
self.fhandle.close()
return self.instance
-
- def _build_entry(self, msgid, msgstr=None, msgid_plural=None,
- msgstr_plural=None):
- msgctxt_msgid = msgid.split('\x04')
- if len(msgctxt_msgid) > 1:
- kwargs = {
- 'msgctxt': msgctxt_msgid[0],
- 'msgid' : msgctxt_msgid[1],
- }
- else:
- kwargs = {'msgid': msgid}
- if msgstr:
- kwargs['msgstr'] = msgstr
- if msgid_plural:
- kwargs['msgid_plural'] = msgid_plural
- if msgstr_plural:
- kwargs['msgstr_plural'] = msgstr_plural
- return MOEntry(**kwargs)
def _readbinary(self, fmt, numbytes):
"""
@@ -1543,97 +1655,26 @@ class _MOFileParser(object):
return tup
# }}}
-# class TextWrapper {{{
+# __main__ {{{
-class TextWrapper(textwrap.TextWrapper):
+if __name__ == '__main__':
"""
- Subclass of textwrap.TextWrapper that backport the
- drop_whitespace option.
+ **Main function**::
+ - to **test** the module just run: *python polib.py [-v]*
+ - to **profile** the module: *python polib.py -p <some_pofile.po>*
"""
- def __init__(self, *args, **kwargs):
- drop_whitespace = kwargs.pop('drop_whitespace', True)
- textwrap.TextWrapper.__init__(self, *args, **kwargs)
- self.drop_whitespace = drop_whitespace
-
- def _wrap_chunks(self, chunks):
- """_wrap_chunks(chunks : [string]) -> [string]
-
- Wrap a sequence of text chunks and return a list of lines of
- length 'self.width' or less. (If 'break_long_words' is false,
- some lines may be longer than this.) Chunks correspond roughly
- to words and the whitespace between them: each chunk is
- indivisible (modulo 'break_long_words'), but a line break can
- come between any two chunks. Chunks should not have internal
- whitespace; ie. a chunk is either all whitespace or a "word".
- Whitespace chunks will be removed from the beginning and end of
- lines, but apart from that whitespace is preserved.
- """
- lines = []
- if self.width <= 0:
- raise ValueError("invalid width %r (must be > 0)" % self.width)
-
- # Arrange in reverse order so items can be efficiently popped
- # from a stack of chucks.
- chunks.reverse()
-
- while chunks:
-
- # Start the list of chunks that will make up the current line.
- # cur_len is just the length of all the chunks in cur_line.
- cur_line = []
- cur_len = 0
-
- # Figure out which static string will prefix this line.
- if lines:
- indent = self.subsequent_indent
+ import sys
+ if len(sys.argv) > 2 and sys.argv[1] == '-p':
+ def test(f):
+ if f.endswith('po'):
+ p = pofile(f)
else:
- indent = self.initial_indent
-
- # Maximum width for this line.
- width = self.width - len(indent)
-
- # First chunk on line is whitespace -- drop it, unless this
- # is the very beginning of the text (ie. no lines started yet).
- if self.drop_whitespace and chunks[-1].strip() == '' and lines:
- del chunks[-1]
-
- while chunks:
- l = len(chunks[-1])
-
- # Can at least squeeze this chunk onto the current line.
- if cur_len + l <= width:
- cur_line.append(chunks.pop())
- cur_len += l
-
- # Nope, this line is full.
- else:
- break
-
- # The current line is full, and the next chunk is too big to
- # fit on *any* line (not just this one).
- if chunks and len(chunks[-1]) > width:
- self._handle_long_word(chunks, cur_line, cur_len, width)
-
- # If the last chunk on this line is all whitespace, drop it.
- if self.drop_whitespace and cur_line and cur_line[-1].strip() == '':
- del cur_line[-1]
-
- # Convert current line back to a string and store it in list
- # of all lines (return value).
- if cur_line:
- lines.append(indent + ''.join(cur_line))
-
- return lines
+ p = mofile(f)
+ s = unicode(p)
+ import profile
+ profile.run('test("'+sys.argv[2]+'")')
+ else:
+ import doctest
+ doctest.testmod()
# }}}
-# function wrap() {{{
-
-def wrap(text, width=70, **kwargs):
- """
- Wrap a single paragraph of text, returning a list of wrapped lines.
- """
- if sys.version_info < (2, 6):
- return TextWrapper(width=width, **kwargs).wrap(text)
- return textwrap.wrap(text, width=width, **kwargs)
-
-#}}}
diff --git a/i18n/pt_BR.po b/i18n/pt_BR.po
index a4b01ae..60e162a 100644
--- a/i18n/pt_BR.po
+++ b/i18n/pt_BR.po
@@ -31,19 +31,18 @@ msgid ""
msgstr ""
"Project-Id-Version: Mercurial\n"
"Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2012-07-31 14:10-0300\n"
+"POT-Creation-Date: 2011-06-20 16:55-0300\n"
"PO-Revision-Date: 2011-06-28 09:55+0200\n"
"Last-Translator: Wagner Bruna <wbruna@yahoo.com>\n"
"Language-Team: Brazilian Portuguese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: pygettext.py 1.5\n"
-"Language: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.11.4\n"
-"X-Poedit-Country: BRAZIL\n"
"X-Poedit-Language: Portuguese\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Poedit-Country: BRAZIL\n"
+"X-Generator: KBabel 1.11.4\n"
#, python-format
msgid " (default: %s)"
@@ -58,13 +57,8 @@ msgstr "Comandos"
msgid "Extensions"
msgstr "Extensões"
-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 "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:"
@@ -128,10 +122,10 @@ msgstr "As seções allow e deny usam pares chave-valor."
msgid ""
"Branch-based Access Control\n"
-"---------------------------"
+"..........................."
msgstr ""
"Controle de Acesso Baseado em Ramos\n"
-"-----------------------------------"
+"..................................."
msgid ""
"Use the ``acl.deny.branches`` and ``acl.allow.branches`` sections to\n"
@@ -159,18 +153,11 @@ msgstr ""
"- um asterisco, que significa \"qualquer usuário ou grupo\";"
msgid ""
-"You can add the \"!\" prefix to a user or group name to invert the sense\n"
-"of the match."
-msgstr ""
-"Você pode adicionar o prefixo \"!\" para um usuário ou grupo\n"
-"para inverter o sentido do casamento."
-
-msgid ""
"Path-based Access Control\n"
-"-------------------------"
+"........................."
msgstr ""
"Controle de Acesso Baseado em Caminhos\n"
-"--------------------------------------"
+"......................................"
msgid ""
"Use the ``acl.deny`` and ``acl.allow`` sections to have path-based\n"
@@ -186,10 +173,10 @@ msgstr ""
msgid ""
"Groups\n"
-"------"
+"......"
msgstr ""
"Grupos\n"
-"------"
+"......"
msgid ""
"Group names must be prefixed with an ``@`` symbol. Specifying a group\n"
@@ -212,10 +199,10 @@ msgstr ""
msgid ""
"Example Configuration\n"
-"---------------------"
+"....................."
msgstr ""
"Exemplo de Configuração\n"
-"-----------------------"
+"......................."
msgid "::"
msgstr "::"
@@ -295,8 +282,8 @@ msgid ""
" # The super user is allowed on any branch:\n"
" * = super-user"
msgstr ""
-" # superusuário é permitido em qualquer ramo:\n"
-" * = superusuário"
+" # super-usuário é permitido em qualquer ramo:\n"
+" * = super-usuário"
msgid ""
" # Everyone is allowed on branch-for-tests:\n"
@@ -328,7 +315,7 @@ msgid ""
" # user6 will not have write access to any file:\n"
" ** = user6"
msgstr ""
-" # usuário6 não terá acesso de escrita a nenhum arquivo:\n"
+" # usuário6 não terá acesso a nenhum arquivo:\n"
" ** = usuário6"
msgid ""
@@ -376,111 +363,26 @@ msgstr ""
" imagens/** = joao, @designers"
msgid ""
-" # Everyone (except for \"user6\" and \"@hg-denied\" - see acl.deny above)\n"
-" # will have write access to any file under the \"resources\" folder\n"
-" # (except for 1 file. See acl.deny):\n"
+" # Everyone (except for \"user6\" - see acl.deny above) will have write\n"
+" # access to any file under the \"resources\" folder (except for 1\n"
+" # file. See acl.deny):\n"
" src/main/resources/** = *"
msgstr ""
-" # Todos (exceto \"usuário6\" e \"@hg-denied\" - veja acl.deny acima)\n"
-" # terão acesso de escrita a qualquer arquivo sob a pasta \"resources\"\n"
-" # (exceto um arquivo - veja acl.deny):\n"
+" # Todos (exceto \"usuário6\" - veja acl.deny acima) terão acesso de\n"
+" # escrita a qualquer arquivo sob a pasta \"resources\" (exceto um\n"
+" # arquivo - veja acl.deny):\n"
" src/main/resources/** = *"
msgid " .hgtags = release_engineer"
msgstr " .hgtags = release_engineer"
-msgid ""
-"Examples using the \"!\" prefix\n"
-"............................."
-msgstr ""
-"Exemplos usando o prefixo \"!\"\n"
-"............................."
-
-msgid ""
-"Suppose there's a branch that only a given user (or group) should be able to\n"
-"push to, and you don't want to restrict access to any other branch that may\n"
-"be created."
-msgstr ""
-"Suponha que haja um ramo para o qual somente um dado usuário (ou grupo) seja capaz\n"
-"de enviar revisões, e você não quer restringir acesso a qualquer outro ramo que\n"
-"possa ser criado."
-
-msgid ""
-"The \"!\" prefix allows you to prevent anyone except a given user or group to\n"
-"push changesets in a given branch or path."
-msgstr ""
-"O prefixo \"!\" permite que você previna que qualquer um com exceção de um\n"
-"dado usuário ou grupo envie revisões em um certo ramo ou caminho."
-
-msgid ""
-"In the examples below, we will:\n"
-"1) Deny access to branch \"ring\" to anyone but user \"gollum\"\n"
-"2) Deny access to branch \"lake\" to anyone but members of the group \"hobbit\"\n"
-"3) Deny access to a file to anyone but user \"gollum\""
-msgstr ""
-"No exemplo abaixo, nós iremos:\n"
-"1) Negar o acesso a um ramo \"ring\" a todos, menos ao usuário \"gollum\"\n"
-"2) Negar o acesso ao ramo \"lake\" a todos, menos aos membros do grupo \"hobbit\"\n"
-"3) Negar o acesso a um arquivo a todos, menos ao usuário \"gollum\""
-
-msgid ""
-" [acl.allow.branches]\n"
-" # Empty"
-msgstr ""
-" [acl.allow.branches]\n"
-" # Vazio"
-
-msgid ""
-" # 1) only 'gollum' can commit to branch 'ring';\n"
-" # 'gollum' and anyone else can still commit to any other branch.\n"
-" ring = !gollum"
-msgstr ""
-" # 1) somente 'gollum' pode consolidar no ramo 'ring';\n"
-" # 'gollum' e qualquer outro usuário ainda pode consolidar em\n"
-" # qualquer outro ramo.\n"
-" ring = !gollum"
-
-msgid ""
-" # 2) only members of the group 'hobbit' can commit to branch 'lake';\n"
-" # 'hobbit' members and anyone else can still commit to any other branch.\n"
-" lake = !@hobbit"
-msgstr ""
-" # 2) somente membros do grupo 'hobbit' podem consolidar em um ramo 'lake';\n"
-" # membros do grupo 'hobbit' e qualquer outro usuário ainda podem consolidar\n"
-" # em qualquer outro ramo.\n"
-" lake = !@hobbit"
-
-msgid " # You can also deny access based on file paths:"
-msgstr " # Você também pode negar o acesso com base em caminhos de arquivo:"
-
-msgid ""
-" [acl.allow]\n"
-" # Empty"
-msgstr ""
-" [acl.allow]\n"
-" # Vazio"
-
-msgid ""
-" [acl.deny]\n"
-" # 3) only 'gollum' can change the file below;\n"
-" # 'gollum' and anyone else can still change any other file.\n"
-" /misty/mountains/cave/ring = !gollum"
-msgstr ""
-" [acl.deny]\n"
-" # 3) somente 'gollum' pode mudar o arquivo abaixo;\n"
-" # 'gollum' e qualquer outro ainda pode mudar qualquer outro arquivo.\n"
-" /misty/mountains/cave/ring = !gollum"
-
#, python-format
msgid "group '%s' is undefined"
-msgstr "o grupo '%s' não está definido"
+msgstr "O grupo '%s' não está definido"
#, python-format
-msgid ""
-"config error - hook type \"%s\" cannot stop incoming changesets nor commits"
-msgstr ""
-"erro de configuração - tipo de gancho \"%s\" não pode interromper "
-"consolidações nem revisões de entrada"
+msgid "config error - hook type \"%s\" cannot stop incoming changesets nor commits"
+msgstr "erro de configuração - tipo de gancho \"%s\" não pode interromper consolidações nem revisões de entrada"
#, python-format
msgid "acl: user \"%s\" denied on branch \"%s\" (changeset \"%s\")"
@@ -491,12 +393,8 @@ msgid "acl: user \"%s\" not allowed on branch \"%s\" (changeset \"%s\")"
msgstr "acl: usuário \"%s\" não tem acesso ao ramo \"%s\" (revisão \"%s\")"
#, python-format
-msgid "acl: user \"%s\" denied on \"%s\" (changeset \"%s\")"
-msgstr "acl: o acesso do usuário \"%s\" a \"%s\" foi negado (revisão \"%s\")"
-
-#, python-format
-msgid "acl: user \"%s\" not allowed on \"%s\" (changeset \"%s\")"
-msgstr "acl: o acesso do usuário \"%s\" a \"%s\" não foi permitido (revisão \"%s\")"
+msgid "acl: access denied for changeset %s"
+msgstr "acl: acesso negado para a revisão %s"
msgid "hooks for integrating with the Bugzilla bug tracker"
msgstr "ganchos para integração com o bug tracker Bugzilla"
@@ -511,19 +409,13 @@ msgstr ""
"Os comentários são formatados usando o mecanismo de templates\n"
"do Mercurial."
-msgid ""
-"The bug references can optionally include an update for Bugzilla of the\n"
-"hours spent working on the bug. Bugs can also be marked fixed."
-msgstr ""
-"As referências para bugs podem opcionalmente incluir atualizações do\n"
-"registro do Bugzilla de horas de trabalho gastas com o bug. Bugs\n"
-"também podem ser marcados como corrigidos."
+msgid "The hook does not change bug status."
+msgstr "Esse gancho não muda o estado do bug."
msgid "Three basic modes of access to Bugzilla are provided:"
msgstr "Três modos básicos de acesso ao Bugzilla são fornecidos:"
-msgid ""
-"1. Access via the Bugzilla XMLRPC interface. Requires Bugzilla 3.4 or later."
+msgid "1. Access via the Bugzilla XMLRPC interface. Requires Bugzilla 3.4 or later."
msgstr ""
"1. Acesso através da interface XMLRPC do Bugzilla. Exige a versão\n"
"3.4 ou posterior do Bugzilla."
@@ -553,9 +445,9 @@ msgid ""
"MySQL user and password to have full access rights to the Bugzilla\n"
"database. For these reasons this access mode is now considered\n"
"deprecated, and will not be updated for new Bugzilla versions going\n"
-"forward. Only adding comments is supported in this access mode."
+"forward."
msgstr ""
-"A escrita direta na base de dados é suscetível a mudanças de schema,\n"
+"A escita direta na base de dados é suscetível a mudanças de schema,\n"
"e se baseia em um script Bugzilla para enviar notificações de mudança\n"
"de bug por email. Este script é executado pelo usuário que executa o\n"
"Mercurial, deve ser executado no host contendo a instalação do\n"
@@ -563,23 +455,21 @@ msgstr ""
"do Bugzilla e um usuário e senha do MySQL que tenha acesso completo\n"
"à base de dados do Bugzilla.\n"
"Por essas razões, este modo de acesso é considerado obsoleto, e\n"
-"não será atualizado para novas versões do Bugzilla.\n"
-"Neste modo de acesso, apenas a adição de comentários é suportada."
+"não será atualizado para novas versões do Bugzilla."
msgid ""
"Access via XMLRPC needs a Bugzilla username and password to be specified\n"
"in the configuration. Comments are added under that username. Since the\n"
"configuration must be readable by all Mercurial users, it is recommended\n"
"that the rights of that user are restricted in Bugzilla to the minimum\n"
-"necessary to add comments. Marking bugs fixed requires Bugzilla 4.0 and later."
+"necessary to add comments."
msgstr ""
"O acesso por XMLRPC necessita de um nome de usuário e senha do\n"
"Bugzilla especificados na configuração. Comentários são adicionados\n"
"sob tal nome de usuário. Como a configuração deve ser legível por\n"
"todos os usuários do Mercurial, recomenda-se que os direitos desse\n"
"usuário sejam restritos ao mínimo necessário para adicionar\n"
-"comentários.\n"
-"Marcar bugs como corrigidos exige o Bugzilla versão 4.0 ou posterior."
+"comentários."
msgid ""
"Access via XMLRPC/email uses XMLRPC to query Bugzilla, but sends\n"
@@ -588,8 +478,7 @@ msgid ""
"user, so the comment appears to come from the Mercurial user. In the event\n"
"that the Mercurial user email is not recognised by Bugzilla as a Bugzilla\n"
"user, the email associated with the Bugzilla username used to log into\n"
-"Bugzilla is used instead as the source of the comment. Marking bugs fixed\n"
-"works on all supported Bugzilla versions."
+"Bugzilla is used instead as the source of the comment."
msgstr ""
"O acesso por XMLRPC/email usa XMLRPC para consultar o Bugzilla,\n"
"mas envia um email para a interface de emails do Bugzilla para\n"
@@ -598,9 +487,7 @@ msgstr ""
"comentário parecerá vir do usuário do Mercurial. Se o email do\n"
"usuário não for reconhecido pelo Bugzilla como um usuário do\n"
"Bugzilla, a origem do comentário será o email associado ao nome\n"
-"de usuário do Bugzilla usado para entrar no Bugzilla.\n"
-"Marcar bugs como corrigidos funciona em todas as versões do\n"
-"Bugzilla suportadas."
+"de usuário do Bugzilla usado para entrar no Bugzilla."
msgid "Configuration items common to all access modes:"
msgstr "Itens de configuração comuns a todos os modos de acesso:"
@@ -629,77 +516,18 @@ msgstr ""
msgid ""
"bugzilla.regexp\n"
-" Regular expression to match bug IDs for update in changeset commit message.\n"
-" It must contain one \"()\" named group ``<ids>`` containing the bug\n"
-" IDs separated by non-digit characters. It may also contain\n"
-" a named group ``<hours>`` with a floating-point number giving the\n"
-" hours worked on the bug. If no named groups are present, the first\n"
-" \"()\" group is assumed to contain the bug IDs, and work time is not\n"
-" updated. The default expression matches ``Bug 1234``, ``Bug no. 1234``,\n"
-" ``Bug number 1234``, ``Bugs 1234,5678``, ``Bug 1234 and 5678`` and\n"
-" variations thereof, followed by an hours number prefixed by ``h`` or\n"
-" ``hours``, e.g. ``hours 1.5``. Matching is case insensitive."
+" Regular expression to match bug IDs in changeset commit message.\n"
+" Must contain one \"()\" group. The default expression matches ``Bug\n"
+" 1234``, ``Bug no. 1234``, ``Bug number 1234``, ``Bugs 1234,5678``,\n"
+" ``Bug 1234 and 5678`` and variations thereof. Matching is case\n"
+" insensitive."
msgstr ""
"bugzilla.regexp\n"
-" Expressão regular para encontrar na mensagem de consolidação da\n"
-" revisão os IDs dos bugs a serem atualizados.\n"
-" Deve conter um grupo \"()\" nomeado ``<ids>`` contendo os IDs de\n"
-" bugs separados por não-dígitos. Pode também conter um grupo\n"
-" nomeado ``<hours>`` com um valor de ponto flutuante fornecendo\n"
-" as horas trabalhadas no bug. Se nenhum grupo nomeado estiver\n"
-" presente, assume-se que o primeiro grupo \"()\" irá conter os\n"
-" IDs dos bugs, e as horas trabalhadas não serão atualizadas.\n"
-" A expressão padrão encontra\n"
-" ``Bug 1234``, ``Bug no. 1234``, ``Bug number 1234``,\n"
-" ``Bugs 1234,5678``, ``Bug 1234 and 5678`` e variações,\n"
-" seguidas de um número de horas prefixado por ``h`` ou ``hours``,\n"
-" como em ``hours 1.5``.\n"
-" A busca não é sensível a maiúsculas e minúsculas."
-
-msgid ""
-"bugzilla.fixregexp\n"
-" Regular expression to match bug IDs for marking fixed in changeset\n"
-" commit message. This must contain a \"()\" named group ``<ids>` containing\n"
-" the bug IDs separated by non-digit characters. It may also contain\n"
-" a named group ``<hours>`` with a floating-point number giving the\n"
-" hours worked on the bug. If no named groups are present, the first\n"
-" \"()\" group is assumed to contain the bug IDs, and work time is not\n"
-" updated. The default expression matches ``Fixes 1234``, ``Fixes bug 1234``,\n"
-" ``Fixes bugs 1234,5678``, ``Fixes 1234 and 5678`` and\n"
-" variations thereof, followed by an hours number prefixed by ``h`` or\n"
-" ``hours``, e.g. ``hours 1.5``. Matching is case insensitive."
-msgstr ""
-"bugzilla.fixregexp\n"
-" Expressão regular para encontrar na mensagem de consolidação da\n"
-" revisão os IDs dos bugs a serem marcados como resolvidos.\n"
-" Deve conter um grupo \"()\" nomeado ``<ids>`` contendo os IDs de\n"
-" bugs separados por não-dígitos. Pode também conter um grupo\n"
-" nomeado ``<hours>`` com um valor de ponto flutuante fornecendo\n"
-" as horas trabalhadas no bug. Se nenhum grupo nomeado estiver\n"
-" presente, assume-se que o primeiro grupo \"()\" irá conter os\n"
-" IDs dos bugs, e as horas trabalhadas não serão atualizadas.\n"
-" A expressão padrão encontra\n"
-" ``Fixes 1234``, ``Fixes bug 1234``,\n"
-" ``Fixes bugs 1234,5678``, ``Fixes 1234 and 5678`` e variações,\n"
-" seguidas de um número de horas prefixado por ``h`` ou ``hours``,\n"
-" como em ``hours 1.5``.\n"
-" A busca não é sensível a maiúsculas e minúsculas."
-
-msgid ""
-"bugzilla.fixstatus\n"
-" The status to set a bug to when marking fixed. Default ``RESOLVED``."
-msgstr ""
-"bugzilla.fixstatus\n"
-" O status definido em um bug que tiver sido marcado como corrigido.\n"
-" O padrão é ``RESOLVED``."
-
-msgid ""
-"bugzilla.fixresolution\n"
-" The resolution to set a bug to when marking fixed. Default ``FIXED``."
-msgstr ""
-"bugzilla.fixresolution\n"
-" A resolução definida em um bug que tiver sido marcado como corrigido.\n"
-" O padrão é ``FIXED``."
+" Expressão regular para encontrar os IDs dos bugs na mensagem de\n"
+" consolidação da revisão. Deve conter um grupo de \"()\". A\n"
+" expressão padrão encontra ``Bug 1234``, ``Bug no. 1234``, ``Bug number\n"
+" 1234``, ``Bugs 1234,5678``, ``Bug 1234 and 5678`` e variações. A\n"
+" equivalência não é sensível a maiúsculas e minúsculas."
msgid ""
"bugzilla.style\n"
@@ -763,8 +591,7 @@ msgstr ""
" em modelos como ``{hgweb}``."
msgid "Configuration items common to XMLRPC+email and MySQL access modes:"
-msgstr ""
-"Itens de configuração comuns aos modos de acesso XMLRPC+email e MySQL:"
+msgstr "Itens de configuração comuns aos modos de acesso XMLRPC+email e MySQL:"
msgid ""
"bugzilla.usermap\n"
@@ -1100,10 +927,6 @@ msgid "unknown database schema"
msgstr "esquema de banco de dados desconhecido"
#, python-format
-msgid "bug %d does not exist\n"
-msgstr "o bug %d não existe\n"
-
-#, python-format
msgid "bug %d already knows about changeset %s\n"
msgstr "o bug %d já sabe sobre a revisão %s\n"
@@ -1137,14 +960,6 @@ msgstr "não é possível encontrar o id do usuário no bugzilla para %s"
msgid "cannot find bugzilla user id for %s or %s"
msgstr "não é possível encontrar o id do usuário no bugzilla para %s ou %s"
-msgid "Bugzilla/MySQL cannot update bug state\n"
-msgstr "Bugzilla/MySQL não pode atualizar o estado do bug\n"
-
-msgid "Bugzilla/XMLRPC needs Bugzilla 4.0 or later to mark bugs fixed\n"
-msgstr ""
-"Bugzilla/XMLRPC requer o Bugzilla 4.0 ou posterior para marcar bugs como "
-"corrigidos\n"
-
msgid "configuration 'bzemail' missing"
msgstr "a configuração 'bzemail' está faltando"
@@ -1156,10 +971,6 @@ msgstr "o email do usuário padrão do bugzilla %s não foi encontrado"
msgid "bugzilla version %s not supported"
msgstr "versão %s do bugzilla não suportada"
-#, python-format
-msgid "%s: invalid hours\n"
-msgstr "%s: horas inválidas\n"
-
msgid ""
"changeset {node|short} in repo {root} refers to bug {bug}.\n"
"details:\n"
@@ -1177,15 +988,8 @@ msgstr "gancho do tipo %s não passa um id de revisão"
msgid "Bugzilla error: %s"
msgstr "Erro do Bugzilla: %s"
-msgid "command to display child changesets (DEPRECATED)"
-msgstr "comando para exibir revisões filhas (OBSOLETO)"
-
-msgid ""
-"This extension is deprecated. You should use :hg:`log -r\n"
-"\"children(REV)\"` instead.\n"
-msgstr ""
-"Esta extensão é obsoleta. Você deve usar :hg:`log -r\n"
-"\"children(REV)\"` em seu lugar.\n"
+msgid "command to display child changesets"
+msgstr "comando para exibir revisões filhas"
msgid "show the children of the given or working directory revision"
msgstr "exibe os filhos da revisão pedida ou do diretório de trabalho"
@@ -1218,8 +1022,8 @@ msgid "command to display statistics about repository history"
msgstr "comando para mostrar estatísticas do histórico do repositório"
#, python-format
-msgid "revision %d is a merge, ignoring...\n"
-msgstr "a revisão %d é uma mesclagem, ignorando...\n"
+msgid "Revision %d is a merge, ignoring...\n"
+msgstr "Revisão %d é uma mesclagem, ignorando...\n"
msgid "analyzing"
msgstr "analisando"
@@ -1357,7 +1161,7 @@ msgstr ""
"Esta extensão modifica os comandos status e resolve para adicionar\n"
"coloração às suas respectivas saídas para refletir estado de arquivos,\n"
"o comando qseries para adicionar coloração para refletir os estados dos\n"
-"patches (aplicado, não aplicado, faltando), e comandos relacionados com\n"
+"patches (aplicado, não-aplicado, faltando), e comandos relacionados com\n"
"diff para destacar adições, remoções, cabeçalhos de diffs e espaços em\n"
"branco no final das linhas."
@@ -1376,8 +1180,7 @@ msgstr ""
"conhecidos como códigos de escape ANSI)."
msgid "Default effects may be overridden from your configuration file::"
-msgstr ""
-"Os efeitos padrão podem ser redefinidos pelo seu arquivo de configuração::"
+msgstr "Os efeitos padrão podem ser redefinidos pelo seu arquivo de configuração::"
msgid ""
" [color]\n"
@@ -1457,13 +1260,6 @@ msgstr ""
" branches.inactive = none"
msgid ""
-" tags.normal = green\n"
-" tags.local = black bold"
-msgstr ""
-" tags.normal = green\n"
-" tags.local = black bold"
-
-msgid ""
"The available effects in terminfo mode are 'blink', 'bold', 'dim',\n"
"'inverse', 'invisible', 'italic', 'standout', and 'underline'; in\n"
"ECMA-48 mode, the options are 'bold', 'inverse', 'italic', and\n"
@@ -1553,8 +1349,7 @@ msgstr ""
"desabilitará a coloração.\n"
msgid "no terminfo entry for setab/setaf: reverting to ECMA-48 color\n"
-msgstr ""
-"nenhuma entrada terminfo para setab/setaf: revertendo para cores ECMA-48\n"
+msgstr "nenhuma entrada terminfo para setab/setaf: revertendo para cores ECMA-48\n"
#, python-format
msgid "warning: failed to set color mode to %s\n"
@@ -1567,9 +1362,7 @@ msgstr "ignorando cor/efeito desconhecido %r (configurado em color.%s)\n"
#. i18n: 'always', 'auto', and 'never' are keywords and should
#. not be translated
msgid "when to colorize (boolean, always, auto, or never)"
-msgstr ""
-"quando colorir (booleana, ou \"always\" (sempre), \"never\" (nunca) ou "
-"\"auto\" (automaticamente))"
+msgstr "quando colorir (booleana, ou \"always\" (sempre), \"never\" (nunca) ou \"auto\" (automaticamente))"
msgid "TYPE"
msgstr "TIPO"
@@ -1828,10 +1621,10 @@ msgstr ""
msgid ""
" Mercurial Source\n"
-" ################"
+" ''''''''''''''''"
msgstr ""
" Origem Mercurial\n"
-" ################"
+" ''''''''''''''''"
msgid ""
" The Mercurial source recognizes the following configuration\n"
@@ -1852,8 +1645,8 @@ msgstr ""
msgid ""
" :convert.hg.saverev: store original revision ID in changeset\n"
-" (forces target IDs to change). It takes a boolean argument and\n"
-" defaults to False."
+" (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"
@@ -1869,10 +1662,10 @@ msgstr ""
msgid ""
" CVS Source\n"
-" ##########"
+" ''''''''''"
msgstr ""
" Origem CVS\n"
-" ##########"
+" ''''''''''"
msgid ""
" CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n"
@@ -1959,7 +1752,7 @@ msgstr ""
msgid ""
" :hook.cvschangesets: Specify a Python function to be called after\n"
-" the changesets are calculated from the CVS log. The\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 ""
@@ -1982,10 +1775,10 @@ msgstr ""
msgid ""
" Subversion Source\n"
-" #################"
+" '''''''''''''''''"
msgstr ""
" Origem Subversion\n"
-" #################"
+" '''''''''''''''''"
msgid ""
" Subversion source detects classical trunk/branches/tags layouts.\n"
@@ -2009,7 +1802,7 @@ msgstr ""
" 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 detecção automática."
+" deixe-os em branco para desabilitar a auto-detecção."
msgid " The following options can be set with ``--config``:"
msgstr " As seguintes opções podem ser definidas com ``--config``:"
@@ -2053,10 +1846,10 @@ msgstr ""
msgid ""
" Perforce Source\n"
-" ###############"
+" '''''''''''''''"
msgstr ""
" Origem Perforce\n"
-" ###############"
+" '''''''''''''''"
msgid ""
" The Perforce (P4) importer can be given a p4 depot path or a\n"
@@ -2090,10 +1883,10 @@ msgstr ""
msgid ""
" Mercurial Destination\n"
-" #####################"
+" '''''''''''''''''''''"
msgstr ""
" Destino Mercurial\n"
-" #################"
+" '''''''''''''''''"
msgid " The following options are supported:"
msgstr " As seguintes opções são suportadas:"
@@ -2220,9 +2013,7 @@ msgid ":svnpath: String. Converted subversion revision project path."
msgstr ":svnpath: String. Caminho do projeto Subversion convertido."
msgid ":svnuuid: String. Converted subversion revision repository identifier."
-msgstr ""
-":svnuuid: String. Identificador do repositório do Subversion da revisão "
-"convertida."
+msgstr ":svnuuid: String. Identificador do repositório do Subversion da revisão convertida."
#, python-format
msgid "%s does not look like a Bazaar repository"
@@ -2231,19 +2022,15 @@ msgstr "%s não parece ser um repositório do Bazaar"
msgid "Bazaar modules could not be loaded"
msgstr "os módulos do Bazaar não puderam ser carregados"
-msgid ""
-"warning: lightweight checkouts may cause conversion failures, try with a "
-"regular branch instead.\n"
-msgstr ""
-"aviso: checkouts \"lightweight\" podem causar falhas de conversão, tente com"
-" um branch comum.\n"
+msgid "warning: lightweight checkouts may cause conversion failures, try with a regular branch instead.\n"
+msgstr "aviso: checkouts \"lightweight\" podem causar falhas de conversão, tente com um branch comum.\n"
msgid "bzr source type could not be determined\n"
msgstr "o tipo de origem bzr não pôde ser determinado\n"
#, python-format
-msgid "%s is not a valid revision"
-msgstr "%s não é uma revisão válida"
+msgid "%s is not a valid revision in current branch"
+msgstr "%s não é uma revisão válida no ramo atual"
#, python-format
msgid "%s is not available in %s anymore"
@@ -2270,10 +2057,6 @@ msgid "could not open map file %r: %s"
msgstr "não foi possível abrir arquivo de mapeamento %r: %s"
#, python-format
-msgid "syntax error in %s(%d): child parent1[,parent2] expected"
-msgstr "erro de sintaxe em %s(%d): \"filho pai1[,pai2]\" esperado"
-
-#, python-format
msgid "%s: invalid source repository type"
msgstr "%s: tipo de repositório de origem inválido"
@@ -2303,14 +2086,6 @@ msgid "scanning"
msgstr "varrendo"
#, python-format
-msgid "splice map revision %s is not being converted, ignoring\n"
-msgstr "revisão %s no splicemap não está sendo convertida, ignorando\n"
-
-#, python-format
-msgid "unknown splice map parent: %s"
-msgstr "pai desconhecido no splicemap: %s"
-
-#, python-format
msgid "unknown sort mode: %s"
msgstr "modo de ordenação desconhecido: %s"
@@ -2322,12 +2097,12 @@ msgid "not all revisions were sorted"
msgstr "nem todas as revisões foram ordenadas"
#, python-format
-msgid "writing author map file %s\n"
-msgstr "escrevendo arquivo de mapeamento de autor %s\n"
+msgid "Writing author map file %s\n"
+msgstr "Escrevendo arquivo de mapeamento de autor %s\n"
#, python-format
-msgid "ignoring bad line in author map file %s: %s\n"
-msgstr "ignorando linha inválida no arquivo de mapeamento de autor %s: %s\n"
+msgid "Ignoring bad line in author map file %s: %s\n"
+msgstr "Ignorando linha inválida no arquivo de mapeamento de autor %s: %s\n"
#, python-format
msgid "mapping author %s to %s\n"
@@ -2383,12 +2158,8 @@ msgid "CVS pserver authentication failed"
msgstr "autenticação pserver do CVS falhou"
#, python-format
-msgid ""
-"unexpected response from CVS server (expected \"Valid-requests\", but got "
-"%r)"
-msgstr ""
-"resposta inesperada do servidor CVS (\"Valid-requests\" esperada, %r "
-"recebida)"
+msgid "unexpected response from CVS server (expected \"Valid-requests\", but got %r)"
+msgstr "resposta inesperada do servidor CVS (\"Valid-requests\" esperada, %r recebida)"
#, python-format
msgid "%d bytes missing from remote file"
@@ -2440,9 +2211,7 @@ msgid "revision must be followed by date line"
msgstr "revisão deve ser seguida por uma linha de data"
msgid "log cache overlaps with new log entries, re-run without cache."
-msgstr ""
-"o cache do log se sobrepõe a novas entradas do log, execute novamente sem o "
-"cache."
+msgstr "o cache do log se sobrepõe a novas entradas do log, execute novamente sem o cache."
#, python-format
msgid "writing cvs log cache %s\n"
@@ -2544,11 +2313,8 @@ msgid "analyzing tree version %s...\n"
msgstr "analisando versão da árvore %s...\n"
#, python-format
-msgid ""
-"tree analysis stopped because it points to an unregistered archive %s...\n"
-msgstr ""
-"análise da árvore parou porque esta aponta para um arquivo não registrado "
-"%s...\n"
+msgid "tree analysis stopped because it points to an unregistered archive %s...\n"
+msgstr "análise da árvore parou porque esta aponta para um arquivo não registrado %s...\n"
#, python-format
msgid "could not parse cat-log of %s"
@@ -2580,14 +2346,6 @@ msgid "updating bookmarks\n"
msgstr "atualizando marcadores\n"
#, python-format
-msgid ""
-"revision %s not found in destination repository (lookups with "
-"clonebranches=true are not implemented)"
-msgstr ""
-"revisão %s não encontrada no repositório de destino (buscas com "
-"clonebranches=true não foram implementadas)"
-
-#, python-format
msgid "%s is not a valid start revision"
msgstr "%s não é uma revisão inicial válida"
@@ -2648,43 +2406,25 @@ msgstr "lendo 'p4 views'\n"
msgid "collecting p4 changelists\n"
msgstr "coletando changelists do p4\n"
-msgid "debugsvnlog could not load Subversion python bindings"
-msgstr ""
-"debugsvnlog: não foi possível carregar os módulos python do Subversion"
-
msgid "Mercurial failed to run itself, check hg executable is in PATH"
-msgstr ""
-"Mercurial falhou ao executar a si próprio, veja se o executável hg está no "
-"PATH"
+msgstr "Mercurial falhou ao executar a si próprio, veja se o executável hg está no PATH"
-#, python-format
-msgid "log stream exception '%s'"
-msgstr "exceção de log stream '%s'"
-
-msgid ""
-"svn: cannot probe remote repository, assume it could be a subversion "
-"repository. Use --source-type if you know better.\n"
-msgstr ""
-"svn: não é possível sondar o repositório remoto; a conversão irá assumir que"
-" é um repositório remoto do Subversion. Use --source-type se necessário.\n"
+msgid "svn: cannot probe remote repository, assume it could be a subversion repository. Use --source-type if you know better.\n"
+msgstr "svn: não é possível sondar o repositório remoto; a conversão irá assumir que é um repositório remoto do Subversion. Use --source-type se necessário.\n"
#, python-format
msgid "%s does not look like a Subversion repository"
msgstr "%s não parece ser um repositório do Subversion"
-msgid "could not load Subversion python bindings"
-msgstr "não foi possível carregar os módulos python do Subversion"
+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"
-msgstr ""
-"Encontrados módulos Python para o Subversion %d.%d, requerida a versão 1.4 "
-"ou posterior"
+msgstr "Encontrados módulos Python para o Subversion %d.%d, requerida a versão 1.4 ou posterior"
msgid "Subversion python bindings are too old, 1.4 or later required"
-msgstr ""
-"Módulos Python para o Subversion são antigos demais, requerida a versão 1.4 "
-"ou posterior"
+msgstr "Módulos Python para o Subversion são antigos demais, requerida a versão 1.4 ou posterior"
#, python-format
msgid "svn: revision %s is not an integer"
@@ -2722,10 +2462,6 @@ msgid "svn: no revision found after start revision %d"
msgstr "svn: nenhuma revisão encontrada após revisão inicial %d"
#, python-format
-msgid "svn: revision %s not found"
-msgstr "svn: revisão %s não encontrada"
-
-#, python-format
msgid "%s not found up to revision %d"
msgstr "%s não encontrado até revisão %d"
@@ -2761,14 +2497,6 @@ msgstr "incapaz de lidar com saída do svn"
msgid "writing Subversion tags is not yet implemented\n"
msgstr "a escrita de tags do Subversion ainda não foi implementada\n"
-#, python-format
-msgid ""
-"splice map revision %s not found in subversion child map (revision lookups "
-"are not implemented)"
-msgstr ""
-"revisão %s no splicemap não encontrada no mapa de filhos do subversion "
-"(buscas por revisão não foram implementadas)"
-
msgid "automatically manage newlines in repository files"
msgstr "gerencia automaticamente quebras de linha em arquivos no repositório"
@@ -2889,15 +2617,13 @@ msgstr ""
" todos os arquivos."
msgid ""
-"The extension uses an optional ``[eol]`` section read from both the\n"
-"normal Mercurial configuration files and the ``.hgeol`` file, with the\n"
-"latter overriding the former. You can use that section to control the\n"
-"overall behavior. There are three settings:"
+"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:"
msgstr ""
-"A extensão também usa uma seção opcional ``[eol]`` lida tanto a partir\n"
-"dos arquivos de configuração normais do Mercurial como do arquivo\n"
-"``.hgeol``, sendo que este último sobrepõe os anteriores. Você pode usar\n"
-"essa seção para controlar o comportamento global. Há três configurações:"
+"A extensão também usa uma seção opcional ``[eol]`` em seu arquivo\n"
+"hgrc (diferente do arquivo ``.hgeol``) para configurações que controlam\n"
+"seu comportamento geral. Há duas configurações:"
msgid ""
"- ``eol.native`` (default ``os.linesep``) can be set to ``LF`` or\n"
@@ -2925,15 +2651,6 @@ msgstr ""
" quebras de linha seja intencional."
msgid ""
-"- ``eol.fix-trailing-newline`` (default False) can be set to True to\n"
-" ensure that converted files end with a EOL character (either ``\\n``\n"
-" or ``\\r\\n`` as per the configured patterns)."
-msgstr ""
-"- ``eol.fix-trailing-newline`` (padrão False) pode ser definida para True\n"
-" para garantir que arquivos convertidos terminem com um caractere de fim\n"
-" de linha (``\\n`` ou ``\\r\\n``, de acordo com os padrões configurados)."
-
-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"
@@ -3055,21 +2772,17 @@ msgid ""
" # (see http://www.vim.org/scripts/script.php?script_id=102) Non\n"
" # English user, be sure to put \"let g:DirDiffDynamicDiffText = 1\" in\n"
" # your .vimrc\n"
-" vimdiff = gvim -f \"+next\" \\\n"
-" \"+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))\""
+" vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'"
msgstr ""
" # adiciona um novo comando chamado vimdiff, executa gvimdiff\n"
" # com o plugin DirDiff\n"
" #(veja http://www.vim.org/scripts/script.php?script_id=102)\n"
" # Esteja certo de colocar \"let g:DirDiffDynamicDiffText = 1\"\n"
" # em seu .vimrc\n"
-" vimdiff = gvim -f \"+next\" \\\n"
-" \"+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))\""
+" vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'"
msgid "Tool arguments can include variables that are expanded at runtime::"
-msgstr ""
-"Parâmetros de ferramentas podem incluir variáveis que são expandidas durante"
-" a execução::"
+msgstr "Parâmetros de ferramentas podem incluir variáveis que são expandidas durante a execução::"
msgid ""
" $parent1, $plabel1 - filename, descriptive label of first parent\n"
@@ -3206,74 +2919,8 @@ msgstr ""
msgid "hg %s [OPTION]... [FILE]..."
msgstr "hg %s [OPÇÃO]... [ARQUIVO]..."
-msgid "http authentication with factotum"
-msgstr "autenticação http com factotum"
-
-msgid ""
-"This extension allows the factotum(4) facility on Plan 9 from Bell Labs\n"
-"platforms to provide authentication information for HTTP access. Configuration\n"
-"entries specified in the auth section as well as authentication information\n"
-"provided in the repository URL are fully supported. If no prefix is specified,\n"
-"a value of \"*\" will be assumed."
-msgstr ""
-"Esta extensão permite que o recurso factotum(4) nas plataformas\n"
-"Plan 9 from Bell Labs forneçam informação de autenticação para\n"
-"acesso HTTP. Entradas de configuração especificadas na seção\n"
-"auth bem como informações de autenticação fornecidas na URL do\n"
-"repositório são inteiramente suportadas. Se nenhum prefixo for\n"
-"especificado, assume-se o valor ``*``."
-
-msgid "By default, keys are specified as::"
-msgstr "Por padrão, as chaves são especificadas da seguinte maneira::"
-
-msgid ""
-" proto=pass service=hg prefix=<prefix> user=<username> !password=<password>"
-msgstr ""
-" proto=pass service=hg prefix=<prefix> user=<username> !password=<password>"
-
-msgid ""
-"If the factotum extension is unable to read the required key, one will be\n"
-"requested interactively."
-msgstr ""
-"Se a extensão factotum for incapaz de ler a chave exigida, uma chave\n"
-"será solicitada interativamente."
-
-msgid ""
-"A configuration section is available to customize runtime behavior. By\n"
-"default, these entries are::"
-msgstr ""
-"A seção de configuração factotum pode ser usada para customização do\n"
-"comportamento da extensão. Por padrão, estas entradas são::"
-
-msgid ""
-" [factotum]\n"
-" executable = /bin/auth/factotum\n"
-" mountpoint = /mnt/factotum\n"
-" service = hg"
-msgstr ""
-" [factotum]\n"
-" executable = /bin/auth/factotum\n"
-" mountpoint = /mnt/factotum\n"
-" service = hg"
-
-msgid ""
-"The executable entry defines the full path to the factotum binary. The\n"
-"mountpoint entry defines the path to the factotum file service. Lastly, the\n"
-"service entry controls the service name used when reading keys."
-msgstr ""
-"A entrada executable define o caminho completo para o binário\n"
-"factotum. A entrada mountpoint define o caminho para o serviço de\n"
-"arquivos do factotum. Por fim, a entrada service controla o nome do\n"
-"serviço usado ao ler chaves."
-
-msgid "factotum not interactive"
-msgstr "factotum não é interativo"
-
-msgid "factotum not responding"
-msgstr "factotum não está respondendo"
-
-msgid "pull, update and merge in one command (DEPRECATED)"
-msgstr "pull, update e merge em um comando (OBSOLETA)"
+msgid "pull, update and merge in one command"
+msgstr "pull, update e merge em um comando"
msgid "pull changes from a remote repository, merge new changes if needed."
msgstr "traz mudanças de um repositório remoto, mesclando se necessário"
@@ -3297,14 +2944,15 @@ msgstr ""
" atualizado para incluir as novas mudanças."
msgid ""
-" When a merge is needed, the working directory is first updated to\n"
-" the newly pulled changes. Local changes are then merged into the\n"
-" pulled changes. To switch the merge order, use --switch-parent."
+" When a merge occurs, the newly pulled changes are assumed to be\n"
+" \"authoritative\". The head of the new changes is used as the first\n"
+" parent, with local changes as the second. To switch the merge\n"
+" order, use --switch-parent."
msgstr ""
-" Quando uma mesclagem é necessária, o diretório de trabalho será\n"
-" inicialmente atualizado para as revisões recém trazidas. As\n"
-" revisões locais serão então mescladas com as novas revisões.\n"
-" Para mudar essa ordem de mesclagem, use --switch-parent."
+" Quando ocorre uma mesclagem, assume-se que as novas mudanças\n"
+" trazidas sejam \"autoritativas\". A nova cabeça é usada como\n"
+" primeiro pai, e as mudanças locais como o segundo. Para mudar a\n"
+" ordem de mesclagem, use --switch-parent."
msgid " See :hg:`help dates` for a list of formats valid for -d/--date."
msgstr ""
@@ -3319,9 +2967,7 @@ msgstr ""
" "
msgid "working dir not at branch tip (use \"hg update\" to check out branch tip)"
-msgstr ""
-"o diretório de trabalho não está na tip do ramo (use \"hg update\" para "
-"obter a tip do ramo)"
+msgstr "o diretório de trabalho não está na tip do ramo (use \"hg update\" para obter a tip do ramo)"
msgid "outstanding uncommitted merge"
msgstr "mesclagem não consolidada pendente"
@@ -3339,20 +2985,12 @@ msgstr "múltiplas cabeças nesse ramo (use \"hg heads .\" e \"hg merge\" para m
msgid "pulling from %s\n"
msgstr "trazendo revisões de %s\n"
-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."
+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 ""
-"not merging with %d other new branch heads (use \"hg heads .\" and \"hg "
-"merge\" to merge them)\n"
-msgstr ""
-"não mesclando com %d outras novas cabeças de ramo (use \"hg heads .\" e \"hg"
-" merge\" para mesclá-las)\n"
+msgid "not merging with %d other new branch heads (use \"hg heads .\" and \"hg merge\" to merge them)\n"
+msgstr "não mesclando com %d outros novas cabeças de ramo (use \"hg heads .\" e \"hg merge\" para mescla-los)\n"
#, python-format
msgid "updating to %d:%s\n"
@@ -3409,17 +3047,15 @@ msgstr "lista as revisões assinadas"
msgid "%s:%d node does not exist\n"
msgstr "nó %s:%d não existe\n"
-msgid "hg sigcheck REV"
-msgstr "hg sigcheck REV"
+msgid "hg sigcheck REVISION"
+msgstr "hg sigcheck REVISÃO"
msgid "verify all the signatures there may be for a particular revision"
-msgstr ""
-"verifica todas as assinaturas que podem existir para uma revisão em "
-"particular"
+msgstr "verifica todas as assinaturas que podem existir para uma revisão em particular"
#, python-format
-msgid "no valid signature for %s\n"
-msgstr "nenhuma assinatura válida para %s\n"
+msgid "No valid signature for %s\n"
+msgstr "Assinatura inválida para %s\n"
msgid "make the signature local"
msgstr "torna a assinatura local"
@@ -3442,8 +3078,8 @@ msgstr "TEXTO"
msgid "commit message"
msgstr "mensagem de consolidação"
-msgid "hg sign [OPTION]... [REV]..."
-msgstr "hg sign [OPÇÃO]... [REV]..."
+msgid "hg sign [OPTION]... [REVISION]..."
+msgstr "hg sign [OPÇÃO]... [REVISÃO]..."
msgid "add a signature for the current or given revision"
msgstr "adiciona uma assinatura para a revisão atual ou pedida"
@@ -3468,18 +3104,14 @@ msgid "uncommitted merge - please provide a specific revision"
msgstr "mesclagem não consolidada - por favor forneça uma revisão específica"
#, python-format
-msgid "signing %d:%s\n"
-msgstr "assinando %d: %s\n"
+msgid "Signing %d:%s\n"
+msgstr "Assinando %d: %s\n"
msgid "error while signing"
msgstr "erro ao assinar"
-msgid ""
-"working copy of .hgsigs is changed (please commit .hgsigs manually or use "
-"--force)"
-msgstr ""
-"a cópia de trabalho de .hgsigs foi mudada (por favor consolide .hgsigs "
-"manualmente ou use --force)"
+msgid "working copy of .hgsigs is changed (please commit .hgsigs manually or use --force)"
+msgstr "a cópia de trabalho de .hgsigs foi mudada (por favor consolide .hgsigs manualmente ou use --force)"
msgid "unknown signature version"
msgstr "versão de assinatura desconhecida"
@@ -3496,55 +3128,27 @@ msgstr ""
"outgoing e log. Quando esta opção for passada, também será mostrada\n"
"uma representação ASCII do grafo de revisões.\n"
-msgid "follow changeset history, or file history across copies and renames"
-msgstr ""
-"acompanha histórico de revisões, ou histórico de arquivo através de cópias e"
-" renomeações"
+#, python-format
+msgid "-G/--graph option is incompatible with --%s"
+msgstr "a opção -G/--graph é incompatível com --%s"
-msgid "only follow the first parent of merge changesets (DEPRECATED)"
-msgstr "acompanha apenas o primeiro pai de revisões de mesclagem (OBSOLETO)"
+msgid "-G/--graph option is incompatible with --follow with file argument"
+msgstr "a opção -G/--graph é incompatível com --follow com a opção de arquivo"
-msgid "show revisions matching date spec"
-msgstr "mostra revisões que casem com a especificação de data"
+msgid "NUM"
+msgstr "NÚMERO"
-msgid "show copied files"
-msgstr "mostra arquivos copiados"
+msgid "limit number of changes displayed"
+msgstr "número limite de mudanças exibidas"
-msgid "do case-insensitive search for a given text"
-msgstr "faz uma busca insensível a maiúsculas / minúsculas por um texto dado"
+msgid "show patch"
+msgstr "mostra o patch"
msgid "show the specified revision or range"
msgstr "mostra a revisão ou sequência de revisões especificada"
-msgid "include revisions where files were removed"
-msgstr "inclui revisões nas quais arquivos foram removidos"
-
-msgid "show only merges (DEPRECATED)"
-msgstr "mostra apenas mesclagens (OBSOLETO)"
-
-msgid "USER"
-msgstr "USUÃRIO"
-
-msgid "revisions committed by user"
-msgstr "revisões de autoria do usuário"
-
-msgid "show only changesets within the given named branch (DEPRECATED)"
-msgstr "mostra apenas revisões dentro do ramo nomeado especificado (OBSOLETA)"
-
-msgid "BRANCH"
-msgstr "RAMO"
-
-msgid "show changesets within the given named branch"
-msgstr "mostra apenas revisões dentro do ramo nomeado especificado"
-
-msgid "do not display revision or any of its ancestors"
-msgstr "não exibe revisão ou qualquer de seus ancestrais"
-
-msgid "show hidden changesets (DEPRECATED)"
-msgstr "exibe revisões ocultas (OBSOLETO)"
-
-msgid "[OPTION]... [FILE]"
-msgstr "[OPÇÃO]... [ARQUIVO]"
+msgid "hg glog [OPTION]... [FILE]"
+msgstr "hg glog [OPÇÃO]... [ARQUIVO]"
msgid "show revision history alongside an ASCII revision graph"
msgstr "mostra histórico de revisões ao lado de um grafo ASCII de revisões"
@@ -3565,6 +3169,9 @@ msgstr ""
" trabalho.\n"
" "
+msgid "show the revision DAG"
+msgstr "mostra o grafo de revisões"
+
msgid "hooks for integrating with the CIA.vc notification service"
msgstr "ganchos para integração com o serviço de notificação CIA.vc"
@@ -3744,12 +3351,6 @@ msgstr "imprime opções da extensão"
msgid "start interactive history viewer"
msgstr "inicia um visualizador de histórico interativo"
-msgid "NUM"
-msgstr "NÚMERO"
-
-msgid "limit number of changes displayed"
-msgstr "número limite de mudanças exibidas"
-
msgid "hg view [-l LIMIT] [REVRANGE]"
msgstr "hg view [-l LIMITE] [SEQUÊNCIADEREVISÕES]"
@@ -3783,7 +3384,6 @@ msgstr "hg debug-config"
msgid "hg debug-merge-base REV REV"
msgstr "hg debug-merge-base REV REV"
-#. i18n: bisect changeset status
msgid "ignored"
msgstr "ignorado"
@@ -3828,381 +3428,6 @@ msgstr ""
msgid "The default is 'colorful'.\n"
msgstr "O padrão é 'colorful'.\n"
-msgid "interactive history editing"
-msgstr "edição interativa de histórico"
-
-msgid ""
-"With this extension installed, Mercurial gains one new command: histedit. Usage\n"
-"is as follows, assuming the following history::"
-msgstr ""
-"Com essa extensão instalada, o Mercurial ganha um novo comando: histedit.\n"
-"O uso é como a seguir, assumindo o seguinte histórico::"
-
-msgid ""
-" @ 3[tip] 7c2fd3b9020c 2009-04-27 18:04 -0500 durin42\n"
-" | Add delta\n"
-" |\n"
-" o 2 030b686bedc4 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 1 c561b4e977df 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-" @ 3[tip] 7c2fd3b9020c 2009-04-27 18:04 -0500 durin42\n"
-" | Add delta\n"
-" |\n"
-" o 2 030b686bedc4 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 1 c561b4e977df 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-
-msgid ""
-"If you were to run ``hg histedit c561b4e977df``, you would see the following\n"
-"file open in your editor::"
-msgstr ""
-"Se você fosse rodar ``hg histedit c561b4e977df``, você veria o seguinte\n"
-"arquivo aberto no seu editor::"
-
-msgid ""
-" pick c561b4e977df Add beta\n"
-" pick 030b686bedc4 Add gamma\n"
-" pick 7c2fd3b9020c Add delta"
-msgstr ""
-" pick c561b4e977df Add beta\n"
-" pick 030b686bedc4 Add gamma\n"
-" pick 7c2fd3b9020c Add delta"
-
-msgid ""
-" # Edit history between 633536316234 and 7c2fd3b9020c\n"
-" #\n"
-" # Commands:\n"
-" # p, pick = use commit\n"
-" # e, edit = use commit, but stop for amending\n"
-" # f, fold = use commit, but fold into previous commit\n"
-" # d, drop = remove commit from history\n"
-" # m, mess = edit message without changing commit content\n"
-" #"
-msgstr ""
-" # Edit history between 633536316234 and 7c2fd3b9020c\n"
-" #\n"
-" # Commands:\n"
-" # p, pick = use commit\n"
-" # e, edit = use commit, but stop for amending\n"
-" # f, fold = use commit, but fold into previous commit\n"
-" # d, drop = remove commit from history\n"
-" # m, mess = edit message without changing commit content\n"
-" #"
-
-msgid ""
-"In this file, lines beginning with ``#`` are ignored. You must specify a rule\n"
-"for each revision in your history. For example, if you had meant to add gamma\n"
-"before beta, and then wanted to add delta in the same revision as beta, you\n"
-"would reorganize the file to look like this::"
-msgstr ""
-"Nesse arquivo, linhas que começam com ``#`` são ignoradas. Você deve\n"
-"especificar uma regra para cada revisão no seu histórico. Por exemplo,\n"
-"para alterar o histórico para adicionar gama antes de beta, e acrescentar\n"
-"delta na mesma revisão que beta, você reorganizaria o arquivo para ficar\n"
-"da seguinte forma:"
-
-msgid ""
-" pick 030b686bedc4 Add gamma\n"
-" pick c561b4e977df Add beta\n"
-" fold 7c2fd3b9020c Add delta"
-msgstr ""
-" pick 030b686bedc4 Add gamma\n"
-" pick c561b4e977df Add beta\n"
-" fold 7c2fd3b9020c Add delta"
-
-msgid ""
-"At which point you close the editor and ``histedit`` starts working. When you\n"
-"specify a ``fold`` operation, ``histedit`` will open an editor when it folds\n"
-"those revisions together, offering you a chance to clean up the commit message::"
-msgstr ""
-"Em seguida, no momento em que você fechar o editor, o 'histedit'\n"
-"começará a funcionar.\n"
-"Quando você especificar a operação ``fold``(incorporar), ``histedit``\n"
-"abrirá um editor ao incorporar as revisões, oferecendo a você\n"
-"uma chance de limpar a mensagem de consolidação::"
-
-msgid ""
-" Add beta\n"
-" ***\n"
-" Add delta"
-msgstr ""
-" Add beta\n"
-" ***\n"
-" Add delta"
-
-msgid ""
-"Edit the commit message to your liking, then close the editor. For\n"
-"this example, let's assume that the commit message was changed to\n"
-"``Add beta and delta.`` After histedit has run and had a chance to\n"
-"remove any old or temporary revisions it needed, the history looks\n"
-"like this::"
-msgstr ""
-"Edite a mensagem de consolidação, e feche o editor.\n"
-"Para esse exemplo, vamos assumir que a mensagem\n"
-"foi mudada para ``Add beta and delta.``Depois que o histedit for\n"
-"executado, e tiver removido quaisquer revisões velhas ou temporárias\n"
-"de que necessitava, o histórico se parecerá com o seguinte::"
-
-msgid ""
-" @ 2[tip] 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-" @ 2[tip] 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-
-msgid ""
-"Note that ``histedit`` does *not* remove any revisions (even its own temporary\n"
-"ones) until after it has completed all the editing operations, so it will\n"
-"probably perform several strip operations when it's done. For the above example,\n"
-"it had to run strip twice. Strip can be slow depending on a variety of factors,\n"
-"so you might need to be a little patient. You can choose to keep the original\n"
-"revisions by passing the ``--keep`` flag."
-msgstr ""
-"Note que ``histedit`` *não* remove qualquer revisão (até mesmo\n"
-"as temporárias) até completar todas as operações de edição, então\n"
-"provavelmente ele irá realizar diversas operações de remoção\n"
-"quando for terminado. Para o exemplo acima, ele teve que executar\n"
-"a remoção duas vezes. Dependendo de uma variedade de fatores, a\n"
-"remoção pode ser lenta, então você pode precisar ser um pouco\n"
-"paciente. Você pode escolher manter as revisões originais passando\n"
-"o parâmetro ``--keep``."
-
-msgid ""
-"The ``edit`` operation will drop you back to a command prompt,\n"
-"allowing you to edit files freely, or even use ``hg record`` to commit\n"
-"some changes as a separate commit. When you're done, any remaining\n"
-"uncommitted changes will be committed as well. When done, run ``hg\n"
-"histedit --continue`` to finish this step. You'll be prompted for a\n"
-"new commit message, but the default commit message will be the\n"
-"original message for the ``edit`` ed revision."
-msgstr ""
-"A operação de edição (``edit``) irá conduzi-lo de volta ao prompt de comando,\n"
-"permitindo que você edite arquivos livremente, ou mesmo use ``hg record``\n"
-"para consolidar algumas mudanças como uma consolidação separada. Quando\n"
-"você acabar, qualquer mudança restante não consolidada também será\n"
-"consolidada. Quando terminado, execute ``hg histedit --continue`` para\n"
-"finalizar essa etapa. Você será consultado interativamente para uma nova\n"
-"mensagem de consolidação, mas o texto da mensagem original será incluído\n"
-"na edição."
-
-msgid ""
-"The ``message`` operation will give you a chance to revise a commit\n"
-"message without changing the contents. It's a shortcut for doing\n"
-"``edit`` immediately followed by `hg histedit --continue``."
-msgstr ""
-"A operação de mensagem ( ``message``) irá dar a você a chance de\n"
-"revisar uma mensagem de consolidação sem mudar o conteúdo. É um\n"
-"atalho para fazer ``edit`` e imediatamente em seguida fazer\n"
-"``hg histedit --continue``."
-
-msgid ""
-"If ``histedit`` encounters a conflict when moving a revision (while\n"
-"handling ``pick`` or ``fold``), it'll stop in a similar manner to\n"
-"``edit`` with the difference that it won't prompt you for a commit\n"
-"message when done. If you decide at this point that you don't like how\n"
-"much work it will be to rearrange history, or that you made a mistake,\n"
-"you can use ``hg histedit --abort`` to abandon the new changes you\n"
-"have made and return to the state before you attempted to edit your\n"
-"history."
-msgstr ""
-"Se ``histedit`` encontrar um conflito ao mover uma revisão\n"
-"(ao executar ``pick`` ou ``fold``), ela parará de uma maneira\n"
-"similar a ``edit``, mas não solicitará uma mensagem de consolidação\n"
-"ao encerrar. Se nesse ponto você mudar de ideia a respeito da\n"
-"reorganização do histórico, você pode usar ``hg histedit --abort``\n"
-"para abandonar as novas mudanças e retornar ao estado anterior\n"
-"à tentativa de edição de histórico."
-
-msgid ""
-"If we clone the example repository above and add three more changes, such that\n"
-"we have the following history::"
-msgstr ""
-"Se clonarmos o repositório de exemplo acima e adicionarmos mais\n"
-"três mudanças, de modo que tenhamos o seguinte histórico::"
-
-msgid ""
-" @ 6[tip] 038383181893 2009-04-27 18:04 -0500 stefan\n"
-" | Add theta\n"
-" |\n"
-" o 5 140988835471 2009-04-27 18:04 -0500 stefan\n"
-" | Add eta\n"
-" |\n"
-" o 4 122930637314 2009-04-27 18:04 -0500 stefan\n"
-" | Add zeta\n"
-" |\n"
-" o 3 836302820282 2009-04-27 18:04 -0500 stefan\n"
-" | Add epsilon\n"
-" |\n"
-" o 2 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-" @ 6[tip] 038383181893 2009-04-27 18:04 -0500 stefan\n"
-" | Add theta\n"
-" |\n"
-" o 5 140988835471 2009-04-27 18:04 -0500 stefan\n"
-" | Add eta\n"
-" |\n"
-" o 4 122930637314 2009-04-27 18:04 -0500 stefan\n"
-" | Add zeta\n"
-" |\n"
-" o 3 836302820282 2009-04-27 18:04 -0500 stefan\n"
-" | Add epsilon\n"
-" |\n"
-" o 2 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-
-msgid ""
-"If you run ``hg histedit --outgoing`` on the clone then it is the same\n"
-"as running ``hg histedit 836302820282``. If you need plan to push to a\n"
-"repository that Mercurial does not detect to be related to the source\n"
-"repo, you can add a ``--force`` option.\n"
-msgstr ""
-"Rodar ``hg histedit --outgoing`` no clone será o mesmo que rodar\n"
-"``hg histedit 836302820282``. Caso você pretenda enviar revisões para\n"
-"um repositório que o Mercurial detectar como não relacionado ao de\n"
-"origem, você pode adicionar uma opção ``--force``.\n"
-
-msgid "cannot edit history that would orphan nodes"
-msgstr "não é possível editar histórico de forma a produzir nós órfãos"
-
-msgid "can't edit history with merges"
-msgstr "não se pode editar histórico contendo mesclagens"
-
-#, python-format
-msgid "%s: empty changeset"
-msgstr "%s: revisão vazia"
-
-msgid "Fix up the change and run hg histedit --continue"
-msgstr "Conserte a mudança e execute hg histedit --continue"
-
-msgid ""
-"Make changes as needed, you may commit or record as needed now.\n"
-"When you are finished, run hg histedit --continue to resume."
-msgstr ""
-"Faça mudanças conforme for necessário, consolidando ou gravando usando record.\n"
-"Quando tiver terminado, execute hg histedit --continue para retomar."
-
-msgid "Read history edits from the specified file."
-msgstr "Lê alterações de histórico a partir do arquivo especificado."
-
-msgid "continue an edit already in progress"
-msgstr "continua uma edição em progresso"
-
-msgid "don't strip old nodes after edit is complete"
-msgstr "não remove nós antigos após o término da edição"
-
-msgid "abort an edit in progress"
-msgstr "aborta uma edição de histórico em andamento"
-
-msgid "changesets not found in destination"
-msgstr "revisões não encontradas no destino"
-
-msgid "force outgoing even for unrelated repositories"
-msgstr "força outgoing mesmo para repositórios não relacionados"
-
-msgid "first revision to be edited"
-msgstr "primeira revisão a ser editada"
-
-msgid "[PARENT]"
-msgstr "[PAI]"
-
-msgid ""
-"interactively edit changeset history\n"
-" "
-msgstr ""
-"edição interativa de histórico de revisões\n"
-" "
-
-msgid "source has mq patches applied"
-msgstr "a origem tem patches mq aplicados"
-
-msgid "only one repo argument allowed with --outgoing"
-msgstr "apenas um repositório pode ser usado com --outgoing"
-
-#, python-format
-msgid "comparing with %s\n"
-msgstr "comparando com %s\n"
-
-msgid "--force only allowed with --outgoing"
-msgstr "--force só é permitido com --outgoing"
-
-msgid "no arguments allowed with --continue"
-msgstr "--continue não recebe argumentos adicionais"
-
-msgid "no arguments allowed with --abort"
-msgstr "--abort não recebe argumentos adicionais"
-
-msgid "history edit already in progress, try --continue or --abort"
-msgstr ""
-"uma edição de histórico já está em progresso, tente --continue ou --abort"
-
-msgid "histedit requires exactly one parent revision"
-msgstr "histedit requer exatamente uma revisão pai"
-
-msgid "histedit: Should update metadata for the following changes:\n"
-msgstr "histedit: Deve atualizar metadados para as seguintes mudanças:\n"
-
-#, python-format
-msgid "histedit: %s to %s\n"
-msgstr "histedit: %s a %s\n"
-
-#, python-format
-msgid "histedit: moving bookmarks %s\n"
-msgstr "histedit: movendo marcadores %s\n"
-
-msgid "must specify a rule for each changeset once"
-msgstr "é necessário especificar uma vez uma regra para cada revisão"
-
-#, python-format
-msgid "malformed line \"%s\""
-msgstr "linha malformada \"%s\""
-
-msgid "may not use changesets other than the ones listed"
-msgstr "não é possível usar revisões além das listadas"
-
-#, python-format
-msgid "unknown changeset %s listed"
-msgstr "revisão desconhecida %s listada"
-
-#, python-format
-msgid "unknown action \"%s\""
-msgstr "ação desconhecida \"%s\""
-
msgid "accelerate status report using Linux's inotify service"
msgstr "acelera informações de status usando o serviço inotify do Linux"
@@ -4238,8 +3463,7 @@ msgid "hg inserve [OPTION]..."
msgstr "hg inserve [OPÇÃO]..."
msgid "inotify-client: found dead inotify server socket; removing it\n"
-msgstr ""
-"inotify-client: encontrado socket de um servidor inotify morto; removendo\n"
+msgstr "inotify-client: encontrado socket de um servidor inotify morto; removendo\n"
#, python-format
msgid "inotify-client: could not start inotify server: %s\n"
@@ -4247,8 +3471,7 @@ msgstr "inotify-client: não foi possível iniciar servidor inotify: %s\n"
#, python-format
msgid "inotify-client: could not talk to new inotify server: %s\n"
-msgstr ""
-"inotify-client: não foi possível falar com o novo servidor inotify: %s\n"
+msgstr "inotify-client: não foi possível falar com o novo servidor inotify: %s\n"
#, python-format
msgid "inotify-client: failed to contact inotify server: %s\n"
@@ -4259,8 +3482,7 @@ msgstr "inotify-client: resposta vazia recebida do servidor inotify"
#, python-format
msgid "(inotify: received response from incompatible server version %d)\n"
-msgstr ""
-"(inotify: recebida resposta de uma versão de servidor incompatível %d)\n"
+msgstr "(inotify: recebida resposta de uma versão de servidor incompatível %d)\n"
#, python-format
msgid "(inotify: received '%s' response when expecting '%s')\n"
@@ -4274,9 +3496,7 @@ msgid "*** the current per-user limit on the number of inotify watches is %s\n"
msgstr "*** o limite atual por usuário do número de inotify watches é %s\n"
msgid "*** this limit is too low to watch every directory in this repository\n"
-msgstr ""
-"*** este limite é muito baixo para acompanhar cada diretório neste "
-"repositório\n"
+msgstr "*** este limite é muito baixo para acompanhar cada diretório neste repositório\n"
msgid "*** counting directories: "
msgstr "*** contando diretórios: "
@@ -4295,9 +3515,7 @@ msgstr "*** echo %d > %s\n"
#, python-format
msgid "cannot watch %s until inotify watch limit is raised"
-msgstr ""
-"impossível observar %s até que o limite de observação do inotify seja "
-"alcançado"
+msgstr "impossível observar %s até que o limite de observação do inotify seja alcançado"
#, python-format
msgid "inotify service not available: %s"
@@ -4356,12 +3574,8 @@ msgstr "varrendo novamente por mudança no .hgignore\n"
msgid "cannot start: socket is already bound"
msgstr "não é possível iniciar: o socket já está associado"
-msgid ""
-"cannot start: tried linking .hg/inotify.sock to a temporary socket but "
-".hg/inotify.sock already exists"
-msgstr ""
-"não é possível iniciar: tentou lincar .hg/inotify.sock para um socket "
-"temporário mas .hg/inotify.sock já existe"
+msgid "cannot start: tried linking .hg/inotify.sock to a temporary socket but .hg/inotify.sock already exists"
+msgstr "não é possível iniciar: tentou lincar .hg/inotify.sock para um socket temporário mas .hg/inotify.sock já existe"
#, python-format
msgid "answering query for %r\n"
@@ -4735,8 +3949,7 @@ msgid "revert expanded keywords in the working directory"
msgstr "reverte palavras chave expandidas no diretório de trabalho"
msgid " Must be run before changing/disabling active keywords."
-msgstr ""
-" Deve ser executado após mudar / desabilitar palavras chave ativas."
+msgstr " Deve ser executado após mudar / desabilitar palavras chave ativas."
msgid ""
" kwshrink refuses to run if given files contain local changes.\n"
@@ -4746,577 +3959,6 @@ msgstr ""
" mudanças locais.\n"
" "
-msgid "track large binary files"
-msgstr "rastreia arquivos binários grandes"
-
-msgid ""
-"Large binary files tend to be not very compressible, not very\n"
-"diffable, and not at all mergeable. Such files are not handled\n"
-"efficiently by Mercurial's storage format (revlog), which is based on\n"
-"compressed binary deltas; storing large binary files as regular\n"
-"Mercurial files wastes bandwidth and disk space and increases\n"
-"Mercurial's memory usage. The largefiles extension addresses these\n"
-"problems by adding a centralized client-server layer on top of\n"
-"Mercurial: largefiles live in a *central store* out on the network\n"
-"somewhere, and you only fetch the revisions that you need when you\n"
-"need them."
-msgstr ""
-"Arquivos binários grandes tendem a não ser muito comprimíveis,\n"
-"não gerar diffs úteis, e não serem mescláveis. Tais arquivos não\n"
-"são gerenciados de modo eficiente pelo formato de armazenamento do\n"
-"Mercurial (revlog), que se baseia em deltas binários comprimidos;\n"
-"armazenar arquivos binários grandes como arquivos comuns no\n"
-"Mercurial desperdiça banda e espaço em disco e aumenta o uso de\n"
-"memória do Mercurial. A extensão largefiles trata esses problemas\n"
-"adicionando uma camada cliente-servidor centralizada sobre o\n"
-"Mercurial: largefiles se localiza em um *armazenamento central*\n"
-"em algum lugar da rede, e você obtém apenas as revisões necessárias\n"
-"no momento em que são necessárias."
-
-msgid ""
-"largefiles works by maintaining a \"standin file\" in .hglf/ for each\n"
-"largefile. The standins are small (41 bytes: an SHA-1 hash plus\n"
-"newline) and are tracked by Mercurial. Largefile revisions are\n"
-"identified by the SHA-1 hash of their contents, which is written to\n"
-"the standin. largefiles uses that revision ID to get/put largefile\n"
-"revisions from/to the central store. This saves both disk space and\n"
-"bandwidth, since you don't need to retrieve all historical revisions\n"
-"of large files when you clone or pull."
-msgstr ""
-"largefiles funciona mantendo um arquivo \"standin\" em .hglf/ para cada\n"
-"largefile. Os arquivos standin são pequenos (41 bytes: um hash SHA-1 e\n"
-"uma quebra de linha) e são rastreados pelo Mercurial. As revisões\n"
-"largefile são identificadas pelo hash SHA-1 de seus conteúdos, que\n"
-"são registrados no standin. largefiles usa tal ID de revisão para \n"
-"obter ou enviar revisões largefile de ou para o armazenamento central.\n"
-"Isto economiza tanto espaço em disco como banda de rede, já que não é\n"
-"necessário obter todas as revisões históricas de arquivos grandes em\n"
-"um clone ou pull."
-
-msgid ""
-"To start a new repository or add new large binary files, just add\n"
-"--large to your :hg:`add` command. For example::"
-msgstr ""
-"Para iniciar um novo repositório ou adicionar novos arquivos\n"
-"binários grandes, adicione --large ao seu comando :hg:`add`.\n"
-"Por exemplo::"
-
-msgid ""
-" $ dd if=/dev/urandom of=randomdata count=2000\n"
-" $ hg add --large randomdata\n"
-" $ hg commit -m 'add randomdata as a largefile'"
-msgstr ""
-" $ dd if=/dev/urandom of=randomdata count=2000\n"
-" $ hg add --large randomdata\n"
-" $ hg commit -m 'add randomdata as a largefile'"
-
-msgid ""
-"When you push a changeset that adds/modifies largefiles to a remote\n"
-"repository, its largefile revisions will be uploaded along with it.\n"
-"Note that the remote Mercurial must also have the largefiles extension\n"
-"enabled for this to work."
-msgstr ""
-"Ao enviar uma revisão que adiciona/modifica arquivos grandes para um\n"
-"repositório remoto, sua revisão largefile correspondente será também\n"
-"enviada. Note que o Mercurial remoto também deve ter a extensão\n"
-"largefiles habilitada."
-
-msgid ""
-"When you pull a changeset that affects largefiles from a remote\n"
-"repository, Mercurial behaves as normal. However, when you update to\n"
-"such a revision, any largefiles needed by that revision are downloaded\n"
-"and cached (if they have never been downloaded before). This means\n"
-"that network access may be required to update to changesets you have\n"
-"not previously updated to."
-msgstr ""
-"Ao trazer revisões de um repositório remoto que afetam largefiles, o\n"
-"Mercurial se comporta normalmente. No entanto, ao atualizar para tal\n"
-"revisão, quaisquer largefiles necessárias para tal revisão serão\n"
-"baixadas e guardadas em um cache (se elas nunca foram baixadas antes)\n"
-". Isto quer dizer que acesso à rede pode ser necessário para atualizar\n"
-"para revisões que ainda não estiveram no diretório de trabalho."
-
-msgid ""
-"If you already have large files tracked by Mercurial without the\n"
-"largefiles extension, you will need to convert your repository in\n"
-"order to benefit from largefiles. This is done with the\n"
-":hg:`lfconvert` command::"
-msgstr ""
-"Se você já tiver arquivos grandes rastreados pelo Mercurial sem a\n"
-"extensão largefiles, será preciso converter seu repositório para se\n"
-"beneficiar da extensão largefiles. Isto é feito usando o comando\n"
-":hg:`lfconvert` ::"
-
-msgid " $ hg lfconvert --size 10 oldrepo newrepo"
-msgstr " $ hg lfconvert --size 10 oldrepo newrepo"
-
-msgid ""
-"In repositories that already have largefiles in them, any new file\n"
-"over 10MB will automatically be added as a largefile. To change this\n"
-"threshold, set ``largefiles.minsize`` in your Mercurial config file\n"
-"to the minimum size in megabytes to track as a largefile, or use the\n"
-"--lfsize option to the add command (also in megabytes)::"
-msgstr ""
-"Em repositórios que já possuem algum largefile, qualquer novo arquivo\n"
-"acima de 10MB será automaticamente adicionado como largefile. Para\n"
-"mudar esse limiar, defina ``largefiles.minsize`` em seu arquivo de\n"
-"configuração do Mercurial para o tamanho mínimo em megabytes para\n"
-"rastrear o arquivo como largefile, ou use a opção --lfsize no comando\n"
-"add (também em megabytes)::"
-
-msgid ""
-" [largefiles]\n"
-" minsize = 2"
-msgstr ""
-" [largefiles]\n"
-" minsize = 2"
-
-msgid " $ hg add --lfsize 2"
-msgstr " $ hg add --lfsize 2"
-
-msgid ""
-"The ``largefiles.patterns`` config option allows you to specify a list\n"
-"of filename patterns (see :hg:`help patterns`) that should always be\n"
-"tracked as largefiles::"
-msgstr ""
-"A opção de configuração ``largefiles.patterns`` permite especificar\n"
-"uma lista de padrões de nomes de arquivo (veja :hg:`help patterns`)\n"
-"que devam ser sempre tratados como largefiles::"
-
-msgid ""
-" [largefiles]\n"
-" patterns =\n"
-" *.jpg\n"
-" re:.*\\.(png|bmp)$\n"
-" library.zip\n"
-" content/audio/*"
-msgstr ""
-" [largefiles]\n"
-" patterns =\n"
-" *.jpg\n"
-" re:.*\\.(png|bmp)$\n"
-" library.zip\n"
-" content/audio/*"
-
-msgid ""
-"Files that match one of these patterns will be added as largefiles\n"
-"regardless of their size."
-msgstr ""
-"Arquivos que corresponderem a um desses padrões serão adicionados\n"
-"como largefiles sem que seus tamanhos sejam considerados."
-
-msgid ""
-"The ``largefiles.minsize`` and ``largefiles.patterns`` config options\n"
-"will be ignored for any repositories not already containing a\n"
-"largefile. To add the first largefile to a repository, you must\n"
-"explicitly do so with the --large flag passed to the :hg:`add`\n"
-"command.\n"
-msgstr ""
-"As opções de configuração ``largefiles.minsize`` e ``largefiles.patterns``\n"
-"serão ignoradas em qualquer repositório que ainda não contenha um\n"
-"largefile. Para adicionar o primeiro largefile de um repositório,\n"
-"você deve fazê-lo explicitamente passando a opção --large para o\n"
-"comando :hg:`add`.\n"
-
-msgid "convert a normal repository to a largefiles repository"
-msgstr "converte um repositório normal em um repositório largefiles"
-
-msgid ""
-" Convert repository SOURCE to a new repository DEST, identical to\n"
-" SOURCE except that certain files will be converted as largefiles:\n"
-" specifically, any file that matches any PATTERN *or* whose size is\n"
-" above the minimum size threshold is converted as a largefile. The\n"
-" size used to determine whether or not to track a file as a\n"
-" largefile is the size of the first version of the file. The\n"
-" minimum size can be specified either with --size or in\n"
-" configuration as ``largefiles.size``."
-msgstr ""
-" Converte o repositório ORIGEM em um novo repositório DEST,\n"
-" idêntico a ORIGEM exceto por certos arquivos que serão\n"
-" convertidos como largefiles:\n"
-" especificamente, qualquer arquivo que combinar com qualquer\n"
-" PADRÃO *ou* cujo tamanho esteja acima do limiar de tamanho\n"
-" mínimo será convertido como um largefile. O tamanho usado para\n"
-" determinar se o arquivo será rastreado como largefile será o\n"
-" tamanho da primeira versão do arquivo. O tamanho mínimo pode\n"
-" ser especificado usando o parâmetro --size ou a opção de\n"
-" configuração ``largefiles.size``."
-
-msgid ""
-" After running this command you will need to make sure that\n"
-" largefiles is enabled anywhere you intend to push the new\n"
-" repository."
-msgstr ""
-" Após a execução deste comando, você deve se certificar de\n"
-" que largefiles esteja habilitado em todos os repositórios que\n"
-" receberão revisões do novo repositório."
-
-msgid ""
-" Use --to-normal to convert largefiles back to normal files; after\n"
-" this, the DEST repository can be used without largefiles at all."
-msgstr ""
-" Use --to-normal para converter largefiles de volta a arquivos\n"
-" normais; após essa conversão, o repositório DEST poderá ser\n"
-" usado normalmente, sem a extensão largefiles."
-
-msgid "getting largefiles"
-msgstr "obtendo largefiles"
-
-#, python-format
-msgid "getting %s:%s\n"
-msgstr "obtendo %s:%s\n"
-
-#, python-format
-msgid "%s: data corruption (expected %s, got %s)\n"
-msgstr "%s: corrupção de dados (esperado %s, obtido %s)\n"
-
-#, python-format
-msgid "searching %d changesets for largefiles\n"
-msgstr "procurando em %d revisões por largefiles\n"
-
-#, python-format
-msgid "verified contents of %d revisions of %d largefiles\n"
-msgstr "verificado o conteúdo de %d revisões de %d largefiles\n"
-
-#, python-format
-msgid "verified existence of %d revisions of %d largefiles\n"
-msgstr "verificada a existência de %d revisões de %d largefiles\n"
-
-#, python-format
-msgid "unsupported URL scheme %r"
-msgstr "esquema URL %r não suportado"
-
-#, python-format
-msgid "%s does not appear to be a largefile store"
-msgstr "'%s' não parece ser um repositório de largefiles"
-
-#, python-format
-msgid "%s is not a local Mercurial repo"
-msgstr "%s não é um repositório local do Mercurial"
-
-#, python-format
-msgid "initializing destination %s\n"
-msgstr "iniciando destino %s\n"
-
-msgid "converting revisions"
-msgstr "convertendo revisões"
-
-#, python-format
-msgid "renamed/copied largefile %s becomes symlink"
-msgstr "o largefile %s renomeado/copiado se tornou um link simbólico"
-
-#, python-format
-msgid "largefile %s becomes symlink"
-msgstr "o largefile %s se tornou um link simbólico"
-
-#, python-format
-msgid "skipping incorrectly formatted tag %s\n"
-msgstr "omitindo etiqueta %s formatada incorretamente\n"
-
-#, python-format
-msgid "skipping incorrectly formatted id %s\n"
-msgstr "omitindo id %s formatado incorretamente\n"
-
-#, python-format
-msgid "no mapping for id %s\n"
-msgstr "nenhum mapeamento para o id %s\n"
-
-msgid "uploading largefiles"
-msgstr "enviando largefiles"
-
-#, python-format
-msgid "largefile %s missing from store (needs to be uploaded)"
-msgstr "o largefile %s está faltando no repositório (deve ser enviado)"
-
-#, python-format
-msgid "%d additional largefiles cached\n"
-msgstr "%d largefiles adicionados ao cache\n"
-
-#, python-format
-msgid "%d largefiles failed to download\n"
-msgstr "o download de %d largefiles falhou\n"
-
-msgid "getting changed largefiles\n"
-msgstr "obtendo largefiles modificados\n"
-
-#, python-format
-msgid "%d largefiles updated, %d removed\n"
-msgstr "%d largefiles atualizados, %d removidos\n"
-
-#, python-format
-msgid "largefile %s is not in cache and could not be downloaded"
-msgstr "o largefile %s não está no cache e não pôde ser baixado"
-
-msgid "minimum size (MB) for files to be converted as largefiles"
-msgstr "tamanho mínimo (MB) para arquivos serem convertidos em largefiles"
-
-msgid "convert from a largefiles repo to a normal repo"
-msgstr "converte um repositório largefiles em um repositório normal"
-
-msgid "hg lfconvert SOURCE DEST [FILE ...]"
-msgstr "hg lfconvert ORIGEM DEST [ARQUIVO ...]"
-
-#, python-format
-msgid "largefiles: size must be number (not %s)\n"
-msgstr "largefiles: o tamanho deve ser um número (e não %s)\n"
-
-msgid "minimum size for largefiles must be specified"
-msgstr "o tamanho mínimo para largefiles deve ser especificado"
-
-#, python-format
-msgid "unknown operating system: %s\n"
-msgstr "sistema operacional desconhecido: %s\n"
-
-#, python-format
-msgid "found %s in store\n"
-msgstr "encontrado %s no armazenamento\n"
-
-#, python-format
-msgid "found %s in system cache\n"
-msgstr "encontrado %s no cache do sistema\n"
-
-msgid "can't get file locally"
-msgstr "não é possível obter o arquivo localmente"
-
-#, python-format
-msgid ""
-"changeset %s: %s missing\n"
-" (looked for hash %s)\n"
-msgstr ""
-"revisão %s: %s faltando\n"
-" (procurou pelo hash %s)\n"
-
-#, python-format
-msgid ""
-"changeset %s: %s: contents differ\n"
-" (%s:\n"
-" expected hash %s,\n"
-" but got %s)\n"
-msgstr ""
-"revisão %s: %s: o conteúdo é diferente\n"
-" (%s:\n"
-" esperado hash %s,\n"
-" mas obteve %s)\n"
-
-#, python-format
-msgid "%s already a largefile\n"
-msgstr "%s já é um largefile\n"
-
-#, python-format
-msgid "adding %s as a largefile\n"
-msgstr "adicionando %s como largefile\n"
-
-msgid "no files specified"
-msgstr "nenhum arquivo especificado"
-
-#, python-format
-msgid "not removing %s: %s (use forget to undo)\n"
-msgstr "%s não removido: %s (use forget para desfazer)\n"
-
-msgid "file still exists"
-msgstr "o arquivo já existe"
-
-msgid "file is modified"
-msgstr "o arquivo foi modificado"
-
-msgid "file has been marked for add"
-msgstr "o arquivo foi marcado para adição"
-
-#, python-format
-msgid "removing %s\n"
-msgstr "removendo %s\n"
-
-msgid "--normal cannot be used with --large"
-msgstr "--normal não pode ser usado com --large"
-
-msgid "uncommitted local changes"
-msgstr "alterações locais pendentes"
-
-msgid "&Largefile"
-msgstr "&Largefile"
-
-msgid "&Normal file"
-msgstr "Arquivo &Normal"
-
-#, python-format
-msgid ""
-"%s has been turned into a largefile\n"
-"use (l)argefile or keep as (n)ormal file?"
-msgstr ""
-"%s foi transformado em um largefile\n"
-"usar (l)argefile ou manter como arquivo (n)ormal?"
-
-#, python-format
-msgid ""
-"%s has been turned into a normal file\n"
-"keep as (l)argefile or use (n)ormal file?"
-msgstr ""
-"%s foi transformado em um arquivo normal\n"
-"manter como (l)argefile ou usar um arquivo (n)ormal?"
-
-#, python-format
-msgid "merging %s and %s to %s\n"
-msgstr "mesclando %s e %s para %s\n"
-
-#, python-format
-msgid "merging %s\n"
-msgstr "mesclando %s\n"
-
-#, python-format
-msgid ""
-"largefile %s has a merge conflict\n"
-"keep (l)ocal or take (o)ther?"
-msgstr ""
-"largefile %s tem um conflito de mesclagem\n"
-"manter (l)ocal ou usar (o)utro?"
-
-msgid "&Local"
-msgstr "&Local"
-
-msgid "&Other"
-msgstr "&Outra"
-
-msgid "no files to copy"
-msgstr "nenhum arquivo para copiar"
-
-msgid "destination largefile already exists"
-msgstr "largefile de destino já existe"
-
-msgid "caching new largefiles\n"
-msgstr "adicionando novos largefiles ao cache\n"
-
-#, python-format
-msgid "%d largefiles cached\n"
-msgstr "%d largefiles adicionados ao cache\n"
-
-#, python-format
-msgid "--all-largefiles is incompatible with non-local destination %s"
-msgstr "--all-largefiles é incompatível com um destino não-local %s"
-
-#, python-format
-msgid "unknown archive type '%s'"
-msgstr "tipo de arquivo '%s' desconhecido"
-
-msgid "cannot give prefix when archiving to files"
-msgstr "não é possível fornecer prefixo ao arquivar para arquivos"
-
-#, python-format
-msgid "largefile %s not found in repo store or system cache"
-msgstr ""
-"largefile %s não encontrado no armazenamento do repositório nem no cache de "
-"sistema"
-
-#, python-format
-msgid "not removing %s: file is already untracked\n"
-msgstr "%s não removido: arquivo já não é rastreado\n"
-
-msgid "largefiles: No remote repo\n"
-msgstr "largefiles: Nenhum repositório remoto\n"
-
-msgid "largefiles to upload:\n"
-msgstr "largefiles a serem enviados:\n"
-
-#, python-format
-msgid "largefiles: %d to upload\n"
-msgstr "largefiles: %d a serem enviados\n"
-
-msgid "largefile contents do not match hash"
-msgstr "o conteúdo do largefile não combina com o hash"
-
-#, python-format
-msgid "largefiles: failed to put %s into store: %s"
-msgstr "largefiles: não foi possível colocar %s no armazenamento: %s"
-
-#, python-format
-msgid "requested largefile %s not present in cache"
-msgstr "largefile %s pedido não está presente no cache"
-
-msgid "remote: "
-msgstr "remoto: "
-
-#, python-format
-msgid "unexpected putlfile response: %s"
-msgstr "resposta inesperada de putlfile: %s"
-
-msgid "putlfile failed:"
-msgstr "putlfile falhou:"
-
-msgid "putlfile failed (unexpected response):"
-msgstr "putlfile falhou (resposta inesperada):"
-
-msgid "unexpected response:"
-msgstr "resposta inesperada:"
-
-#, python-format
-msgid "remotestore: could not put %s to remote store %s"
-msgstr "remotestore: não foi possível colocar %s no armazenamento remoto %s"
-
-#, python-format
-msgid "remotestore: put %s to remote store %s"
-msgstr "remotestore: %s foi colocado no armazenamento remoto %s"
-
-#, python-format
-msgid "remotestore: could not open file %s: %s"
-msgstr "remotestore: não foi possível abrir arquivo %s: %s"
-
-#, python-format
-msgid "remotestore: largefile %s is invalid"
-msgstr "remotestore: largefile %s é inválido"
-
-#, python-format
-msgid "remotestore: largefile %s is missing"
-msgstr "remotestore: largefile %s está faltando"
-
-#, python-format
-msgid "changeset %s: %s: contents differ\n"
-msgstr "revisão %s: %s: o conteúdo está diferente\n"
-
-#, python-format
-msgid "changeset %s: %s missing\n"
-msgstr "revisão %s: %s faltando\n"
-
-#, python-format
-msgid ""
-"largefiles: repo method %r appears to have already been wrapped by another "
-"extension: largefiles may behave incorrectly\n"
-msgstr ""
-"largefiles: o método %r do repositório parece já ter sido sobreposto\n"
-"por uma outra extensão: largefiles pode se comportar incorretamente\n"
-
-#, python-format
-msgid "file \"%s\" is a largefile standin"
-msgstr "o arquivo \"%s\" é um standin largefile"
-
-msgid "add as largefile"
-msgstr "adiciona como largefile"
-
-msgid "add as normal file"
-msgstr "adiciona como arquivo normal"
-
-msgid ""
-"add all files above this size (in megabytes) as largefiles (default: 10)"
-msgstr ""
-"adiciona todos os arquivos acima deste tamanho (em megabytes) como "
-"largefiles (padrão: 10)"
-
-msgid "verify largefiles"
-msgstr "verifica largefiles"
-
-msgid "verify all revisions of largefiles not just current"
-msgstr "verifica todas as revisões de largefiles, não apenas a revisão atual"
-
-msgid "verify largefile contents not just existence"
-msgstr "verifica conteúdos de largefiles, não apenas existência"
-
-msgid "display outgoing largefiles"
-msgstr "exibe largefiles a serem enviados"
-
-msgid "download all pulled versions of largefiles"
-msgstr "baixa todas as versões trazidas dos largefiles"
-
-msgid "download all versions of all largefiles"
-msgstr "baixa todas as versões de todos os largefiles"
-
msgid "manage a stack of patches"
msgstr "gerencia uma pilha de patches"
@@ -5394,52 +4036,11 @@ msgstr ""
"possivelmente perdendo dados no segundo caso."
msgid ""
-"It may be desirable for mq changesets to be kept in the secret phase (see\n"
-":hg:`help phases`), which can be enabled with the following setting::"
-msgstr ""
-"Pode ser desejável que revisões gerenciadas pela mq sejam mantidas\n"
-"na fase secreta (veja :hg:`help phases`), comportamento que pode ser\n"
-"habilitado com a seguinte configuração::"
-
-msgid ""
-" [mq]\n"
-" secret = True"
-msgstr ""
-" [mq]\n"
-" secret = True"
-
-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."
+"create other, independent patch queues with the :hg:`qqueue` command.\n"
msgstr ""
"Você gerenciará por padrão uma fila de patches chamada \"patches\". Você\n"
-"pode criar outras filas independentes usando o comando :hg:`qqueue`."
-
-msgid ""
-"If the working directory contains uncommitted files, qpush, qpop and\n"
-"qgoto abort immediately. If -f/--force is used, the changes are\n"
-"discarded. Setting::"
-msgstr ""
-"Se o diretório de trabalho contiver mudanças não consolidadas,\n"
-"qpush, qpop e qgoto abortam imediatamente. Se for usado -f/--force,\n"
-"essas mudanças serão descartadas. A definição::"
-
-msgid ""
-" [mq]\n"
-" keepchanges = True"
-msgstr ""
-" [mq]\n"
-" keepchanges = True"
-
-msgid ""
-"make them behave as if --keep-changes were passed, and non-conflicting\n"
-"local changes will be tolerated and preserved. If incompatible options\n"
-"such as -f/--force or --exact are passed, this setting is ignored.\n"
-msgstr ""
-"faz com que esses comandos se comportem como se --keep-changes\n"
-"tivesse sido passada, e mudanças locais não conflitantes serão\n"
-"toleradas e preservadas. Se forem passadas mudanças incompatíveis\n"
-"como -f/--force ou --exact, esta configuração será ignorada.\n"
+"pode criar outras filas independentes usando o comando :hg:`qqueue`.\n"
msgid "print first line of patch header"
msgstr "imprime a primeira linha do cabeçalho do patch"
@@ -5500,10 +4101,6 @@ msgid "error removing undo: %s\n"
msgstr "erro ao remover desfazimento: %s\n"
#, python-format
-msgid "saving current version of %s as %s\n"
-msgstr "gravando versão atual de %s como %s\n"
-
-#, python-format
msgid "apply failed for patch %s"
msgstr "a aplicação do patch %s falhou"
@@ -5541,16 +4138,10 @@ msgstr "aplicando %s\n"
msgid "unable to read %s\n"
msgstr "impossível ler %s\n"
-msgid "local changes found, refresh first"
-msgstr "mudanças locais encontradas, você deve primeiro renovar"
-
#, python-format
msgid "patch %s is empty\n"
msgstr "o patch %s é vazio\n"
-msgid "qpush exactly duplicates child changeset"
-msgstr "qpush duplicaria com exatidão uma revisão filha"
-
msgid "repository commit failed"
msgstr "consolidação no repositório falhou"
@@ -5601,6 +4192,9 @@ msgstr "a revisão do diretório de trabalho não é a qtip"
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"
+
msgid "local changes found"
msgstr "mudanças locais encontradas"
@@ -5624,9 +4218,6 @@ msgstr "\"%s\" já existe, e é um diretório"
msgid "patch \"%s\" already exists"
msgstr "o patch \"%s\" já existe"
-msgid "cannot use both --force and --keep-changes"
-msgstr "não se pode especificar --force e --keep-changes simultaneamente"
-
msgid "cannot manage merge changesets"
msgstr "não se pode gerenciar revisões de mesclagem"
@@ -5677,11 +4268,8 @@ msgstr "todos os patches estão aplicados nesse momento\n"
msgid "patch series already fully applied\n"
msgstr "série de patches já completamente aplicada\n"
-msgid "cannot use --exact and --keep-changes together"
-msgstr "não se pode especificar --exact e --keep-changes simultaneamente"
-
msgid "cannot use --exact and --move together"
-msgstr "não se pode especificar --exact e --move simultaneamente"
+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"
@@ -5723,14 +4311,7 @@ msgid "trying to pop unknown node %s"
msgstr "tentando desempilhar nó desconhecido %s"
msgid "popping would remove a revision not managed by this patch queue"
-msgstr ""
-"desempilhar removeria uma revisão não gerenciada por esta fila de patches"
-
-msgid "popping would remove an immutable revision"
-msgstr "qpop removeria uma revisão imutável"
-
-msgid "see \"hg help phases\" for details"
-msgstr "veja \"hg help phases\" para mais detalhes"
+msgstr "desempilhar removeria uma revisão não gerenciada por esta fila de patches"
msgid "deletions found between repo revs"
msgstr "remoções encontradas entre revisões do repositório"
@@ -5745,15 +4326,8 @@ msgstr "a fila de patches agora está vazia\n"
msgid "cannot refresh a revision with children"
msgstr "não se pode renovar uma revisão com filhos"
-msgid "cannot refresh immutable revision"
-msgstr "não se pode renovar uma revisão imutável"
-
-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"
+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"
msgid "patch queue directory already exists"
msgstr "o diretório de fila de patches já existe"
@@ -5762,8 +4336,8 @@ msgstr "o diretório de fila de patches já existe"
msgid "patch %s is not in series file"
msgstr "o patch %s não está no arquivo series"
-msgid "no saved patch data found\n"
-msgstr "nenhum dado salvo de patches encontrado\n"
+msgid "No saved patch data found\n"
+msgstr "Nenhum dado salvo de patches encontrado\n"
#, python-format
msgid "restoring status: %s\n"
@@ -5783,8 +4357,8 @@ msgstr "pais do repositório da fila salvos: %s %s\n"
msgid "updating queue directory\n"
msgstr "atualizando diretório da fila\n"
-msgid "unable to load queue repository\n"
-msgstr "incapaz de carregar o repositório da fila\n"
+msgid "Unable to load queue repository\n"
+msgstr "Incapaz de carregar o repositório da fila\n"
msgid "save: no patches applied, exiting\n"
msgstr "save: nenhum patch aplicado, saindo\n"
@@ -5805,9 +4379,6 @@ msgstr "o patch %s já está no arquivo series"
msgid "option \"-r\" not valid when importing files"
msgstr "opção \"-r\" inválida ao importar arquivos"
-msgid "no files or revisions specified"
-msgstr "nenhuma revisão ou arquivo especificados"
-
msgid "option \"-n\" not valid when importing multiple patches"
msgstr "opção \"-n\" inválida ao importar múltiplos patches"
@@ -5828,10 +4399,6 @@ msgid "revision %d has unmanaged children"
msgstr "a revisão %d tem filhos não gerenciados"
#, python-format
-msgid "revision %d is not mutable"
-msgstr "a revisão %d não é mutável"
-
-#, python-format
msgid "cannot import merge revision %d"
msgstr "não se pode importar a revisão de mesclagem %d"
@@ -5874,13 +4441,11 @@ msgid "remove patches from queue"
msgstr "remove patches da fila"
msgid ""
-" The patches must not be applied, and at least one patch is required. Exact\n"
-" patch identifiers must be given. With -k/--keep, the patch files are\n"
-" preserved in the patch directory."
+" The patches must not be applied, and at least one patch is required. With\n"
+" -k/--keep, the patch files are preserved in the patch directory."
msgstr ""
" Os patches não devem estar aplicados, e ao menos um patch deve\n"
-" ser passado. Devem ser fornecidos identificadores exatos para\n"
-" os patches. Com -k/--keep, os arquivos de patch serão\n"
+" ser passado. Com -k/--keep, os arquivos de patch serão\n"
" preservados no diretório de patches."
msgid ""
@@ -5890,8 +4455,8 @@ msgstr ""
" Para parar de gerenciar um patch e movê-lo para o histórico\n"
" permanente, use o comando :hg:`qfinish` ."
-msgid "show only the preceding applied patch"
-msgstr "mostra apenas o patch aplicado anterior"
+msgid "show only the last patch"
+msgstr "mostra apenas o último patch"
msgid "hg qapplied [-1] [-s] [PATCH]"
msgstr "hg qapplied [-1] [-s] [PATCH]"
@@ -5938,11 +4503,11 @@ msgstr "usa o formato estendido de diff do git"
msgid "qpush after importing"
msgstr "executa qpush após importar"
-msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... [FILE]..."
-msgstr "hg qimport [-e] [-n NOME] [-f] [-g] [-P] [-r REV]... [ARQUIVO]..."
+msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE..."
+msgstr "hg qimport [-e] [-n NOME] [-f] [-g] [-P] [-r REV]... ARQUIVO..."
-msgid "import a patch or existing changeset"
-msgstr "importa um patch ou revisão existente"
+msgid "import a patch"
+msgstr "importa um patch"
msgid ""
" The patch is inserted into the series after the last applied\n"
@@ -6140,14 +4705,14 @@ msgstr "imprime o nome do patch atual"
msgid "hg qnext [-s]"
msgstr "hg qnext [-s]"
-msgid "print the name of the next pushable patch"
-msgstr "imprime o nome do próximo patch que pode ser aplicado"
+msgid "print the name of the next patch"
+msgstr "imprime o nome do próximo patch"
msgid "hg qprev [-s]"
msgstr "hg qprev [-s]"
-msgid "print the name of the preceding applied patch"
-msgstr "imprime o nome do patch aplicado anterior"
+msgid "print the name of the previous patch"
+msgstr "imprime o nome do patch anterior"
msgid "import uncommitted changes (DEPRECATED)"
msgstr "importa mudanças não consolidadas (OBSOLETO)"
@@ -6155,6 +4720,9 @@ msgstr "importa mudanças não consolidadas (OBSOLETO)"
msgid "add \"From: <current user>\" to patch"
msgstr "adiciona \"From: <usuário atual>\" ao patch"
+msgid "USER"
+msgstr "USUÃRIO"
+
msgid "add \"From: <USER>\" to patch"
msgstr "adiciona \"From: <USUÃRIO>\" ao patch"
@@ -6353,8 +4921,8 @@ msgid "qfold requires at least one patch name"
msgstr "qfold requer ao menos um nome de patch"
#, python-format
-msgid "skipping already folded patch %s\n"
-msgstr "omitindo patch %s já incorporado\n"
+msgid "Skipping already folded patch %s\n"
+msgstr "Omitindo patch %s já incorporado\n"
#, python-format
msgid "qfold cannot fold already applied patch %s"
@@ -6364,15 +4932,9 @@ msgstr "qfold não pode incorporar o patch %s já aplicado"
msgid "error folding patch %s"
msgstr "erro incorporando patch %s"
-msgid "tolerate non-conflicting local changes"
-msgstr "tolera alterações locais não conflitantes"
-
msgid "overwrite any local changes"
msgstr "sobrescreve qualquer alteração local"
-msgid "do not save backup copies of files"
-msgstr "não grava backups de arquivos"
-
msgid "hg qgoto [OPTION]... PATCH"
msgstr "hg qgoto [OPÇÃO]... PATCH"
@@ -6469,16 +5031,11 @@ msgid "push the next patch onto the stack"
msgstr "empilha o próximo patch na pilha"
msgid ""
-" By default, abort if the working directory contains uncommitted\n"
-" changes. With --keep-changes, abort only if the uncommitted files\n"
-" overlap with patched files. With -f/--force, backup and patch over\n"
-" uncommitted changes."
+" When -f/--force is applied, all local changes in patched files\n"
+" will be lost."
msgstr ""
-" Por padrão, aborta se o diretório de trabalho contiver mudanças\n"
-" não consolidadas. Com a opção --keep-changes, aborta apenas se as\n"
-" mudanças não consolidadas se sobrepõe a arquivos no patch. Com\n"
-" -f/--force, cria uma cópia de segurança e sobrescreve as mudanças\n"
-" não consolidadas."
+" Se -f/--force for pedido, todas as mudanças locais em arquivos\n"
+" modificados pelo patch serão perdidas."
msgid "no saved queues found, please use -n\n"
msgstr "nenhuma fila salva encontrada, por favor use -n\n"
@@ -6503,26 +5060,14 @@ msgid "pop the current patch off the stack"
msgstr "desempilha o patch atual da pilha"
msgid ""
-" Without argument, pops off the top of the patch stack. If given a\n"
-" patch name, keeps popping off patches until the named patch is at\n"
-" the top of the stack."
+" 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."
msgstr ""
-" Sem parâmetros, desempilha o topo da pilha de patches. Se for\n"
+" Por padrão, desempilha o topo da pilha de patches. Se for\n"
" passado um nome, desempilha sucessivamente os patches até que\n"
" o patch com esse nome esteja no topo da pilha."
-msgid ""
-" By default, abort if the working directory contains uncommitted\n"
-" changes. With --keep-changes, abort only if the uncommitted files\n"
-" overlap with patched files. With -f/--force, backup and discard\n"
-" changes made to such files."
-msgstr ""
-" Por padrão, aborta se o diretório de trabalho contiver mudanças\n"
-" não consolidadas. Com a opção --keep-changes, aborta apenas se as\n"
-" mudanças não consolidadas se sobrepõem a arquivos no patch. Com\n"
-" -f/--force, cria uma cópia de segurança e descarta as mudanças\n"
-" desses arquivos."
-
#, python-format
msgid "using patch queue: %s\n"
msgstr "usando fila de patches: %s\n"
@@ -6585,23 +5130,11 @@ msgstr "o destino %s existe, use -f para forçar"
msgid "copy %s to %s\n"
msgstr "copia %s para %s\n"
-msgid ""
-"strip specified revision (optional, can specify revisions without this "
-"option)"
-msgstr ""
-"remove a revisão especificada (opcional, não é necessário especificar "
-"explicitamente esta opção para remover revisões)"
-
msgid "force removal of changesets, discard uncommitted changes (no backup)"
-msgstr ""
-"força a remoção de revisões, descarta mudanças não consolidadas (sem backup)"
+msgstr "força a remoção de revisões, descarta mudanças não consolidadas (sem backup)"
-msgid ""
-"bundle only changesets with local revision number greater than REV which are"
-" not descendants of REV (DEPRECATED)"
-msgstr ""
-"adiciona ao bundle apenas revisões cujo número local de revisão for maior "
-"que REV e que não forem seus descendentes (OBSOLETA)"
+msgid "bundle only changesets with local revision number greater than REV which are not descendants of REV (DEPRECATED)"
+msgstr "adiciona ao bundle apenas revisões cujo número local de revisão for maior que REV e que não forem seus descendentes (OBSOLETA)"
msgid "no backups"
msgstr "nenhuma cópia de segurança"
@@ -6609,17 +5142,11 @@ msgstr "nenhuma cópia de segurança"
msgid "no backups (DEPRECATED)"
msgstr "sem cópias de segurança (OBSOLETO)"
-msgid "ignored (DEPRECATED)"
-msgstr "ignorado (OBSOLETO)"
-
msgid "do not modify working copy during strip"
msgstr "não modifica a cópia de trabalho durante o strip"
-msgid "remove revs only reachable from given bookmark"
-msgstr "remove revisões alcançáveis apenas pelo marcador dado"
-
-msgid "hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV..."
-msgstr "hg strip [-k] [-f] [-n] [-B marcador] [-r] REV..."
+msgid "hg strip [-k] [-f] [-n] REV..."
+msgstr "hg strip [-k] [-f] [-n] REV..."
msgid "strip changesets and all their descendants from the repository"
msgstr "remove do repositório revisões e todos os seus descendentes"
@@ -6669,24 +5196,6 @@ msgstr ""
" Use a opção --no-backup para descartar o bundle de backup assim\n"
" que a operação terminar."
-msgid ""
-" Strip is not a history-rewriting operation and can be used on\n"
-" changesets in the public phase. But if the stripped changesets have\n"
-" been pushed to a remote repository you will likely pull them again."
-msgstr ""
-" A operação strip não reescreve o histórico, e pode ser usada em\n"
-" revisões na fase pública. Mas se revisões removidas por strip\n"
-" tiverem sido enviadas para um repositório remoto, um comando pull\n"
-" subsequente poderá trazê-las de volta."
-
-#, python-format
-msgid "bookmark '%s' not found"
-msgstr "marcador '%s' não encontrado"
-
-#, python-format
-msgid "bookmark '%s' deleted\n"
-msgstr "marcador '%s' apagado\n"
-
msgid "empty revision set"
msgstr "conjunto vazio de revisões"
@@ -6847,15 +5356,9 @@ msgstr ""
msgid "no revisions specified"
msgstr "nenhuma revisão especificada"
-msgid "warning: uncommitted changes in the working directory\n"
-msgstr "aviso: mudanças não consolidadas no diretório de trabalho\n"
-
msgid "list all available queues"
msgstr "lista todas as filas disponíveis"
-msgid "print name of active queue"
-msgstr "imprime o nome da fila ativa"
-
msgid "create new queue"
msgstr "cria uma nova fila"
@@ -6884,14 +5387,12 @@ msgstr ""
msgid ""
" Omitting a queue name or specifying -l/--list will show you the registered\n"
" queues - by default the \"normal\" patches queue is registered. The currently\n"
-" active queue will be marked with \"(active)\". Specifying --active will print\n"
-" only the name of the active queue."
+" active queue will be marked with \"(active)\"."
msgstr ""
" Omitir um nome de fila ou especificar -l/--list fará com que o\n"
" comando mostre as filas registradas - por padrão a fila de\n"
" patches \"normal\" é registrada. A fila ativa no momento será\n"
-" marcada com \"(ativa)\". Especificar --active fará com que apenas\n"
-" o nome da fila ativa seja imprimido."
+" marcada com \"(ativa)\"."
msgid ""
" To create a new queue, use -c/--create. The queue is automatically made\n"
@@ -6944,13 +5445,16 @@ msgstr "use --create para criar uma nova fila"
msgid "cannot commit over an applied mq patch"
msgstr "não se pode consolidar sobre um patch mq aplicado"
+msgid "source has mq patches applied"
+msgstr "a origem tem patches mq aplicados"
+
#, python-format
msgid "mq status file refers to unknown node %s\n"
msgstr "arquivo de estado da mq se refere ao nó desconhecido %s\n"
#, python-format
-msgid "tag %s overrides mq patch of the same name\n"
-msgstr "a etiqueta %s se sobrepõe ao patch mq de mesmo nome\n"
+msgid "Tag %s overrides mq patch of the same name\n"
+msgstr "A etiqueta %s se sobrepõe ao patch mq de mesmo nome\n"
msgid "cannot import over an applied patch"
msgstr "não se pode importar sobre um patch aplicado"
@@ -6988,74 +5492,128 @@ msgstr "mq não tem argumentos"
msgid "operate on patch repository"
msgstr "opera no repositório de patches"
-msgid "hooks for sending email push notifications"
-msgstr "gancho para enviar notificações por e-mail em um push"
+msgid "hooks for sending email notifications at commit/push time"
+msgstr "gancho para enviar notificações por e-mail em commit/push"
msgid ""
-"This extension implements hooks to send email notifications when\n"
-"changesets are sent from or received by the local repository."
+"Subscriptions can be managed through a hgrc file. Default mode is to\n"
+"print messages to stdout, for testing and configuring."
msgstr ""
-"Esta extensão fornece ganchos para o envio de emails de notificação\n"
-"quando revisões são enviadas ou recebidas pelo repositório local."
+"Assinantes podem ser gerenciados através do arquivo hgrc. O modo padrão é\n"
+"imprimir as mensagens para stdout, para testes e configuração."
msgid ""
-"First, enable the extension as explained in :hg:`help extensions`, and\n"
-"register the hook you want to run. ``incoming`` and ``changegroup`` hooks\n"
-"are run when changesets are received, while ``outgoing`` hooks are for\n"
-"changesets sent to another repository::"
+"To use, configure the notify extension and enable it in hgrc like\n"
+"this::"
msgstr ""
-"Em primeiro lugar, habilite a extensão como explicado em\n"
-":hg:`help extensions`, e registre o gancho que você deseja executar.\n"
-"O gancho ``outgoing`` é executado quando revisões são enviadas, e os\n"
-"ganchos ``incoming`` e ``changegroup`` são executados quando revisões\n"
-"são recebidas pelo repositório local::"
+"Para usar, configure e habilite a extensão notify no hgrc da seguinte\n"
+"forma::"
+
+msgid ""
+" [extensions]\n"
+" notify ="
+msgstr ""
+" [extensions]\n"
+" notify ="
msgid ""
" [hooks]\n"
" # one email for each incoming changeset\n"
" incoming.notify = python:hgext.notify.hook\n"
-" # one email for all incoming changesets\n"
-" changegroup.notify = python:hgext.notify.hook"
+" # batch emails when many changesets incoming at one time\n"
+" changegroup.notify = python:hgext.notify.hook\n"
+" # batch emails when many changesets outgoing at one time (client side)\n"
+" outgoing.notify = python:hgext.notify.hook"
msgstr ""
" [hooks]\n"
-" # um e-mail para cada revisão recebida\n"
+" # um e-mail para cada revisão que chegar\n"
" incoming.notify = python:hgext.notify.hook\n"
-" # um único e-mail para todas as revisões recebidas\n"
-" changegroup.notify = python:hgext.notify.hook"
+" # e-mails em lote quando muitas revisões chegarem de uma vez\n"
+" changegroup.notify = python:hgext.notify.hook\n"
+" # e-mails em lote quando muitas revisões saírem de uma vez\n"
+" # (lado do cliente)\n"
+" outgoing.notify = python:hgext.notify.hook"
msgid ""
-" # one email for all outgoing changesets\n"
-" outgoing.notify = python:hgext.notify.hook"
-msgstr ""
-" # um e-mail para todas as revisões enviadas\n"
-" outgoing.notify = python:hgext.notify.hook"
+" [notify]\n"
+" # config items go here"
+msgstr ""
+" [notify]\n"
+" # itens de configuração vão aqui"
+
+msgid "Required configuration items::"
+msgstr "Itens de configuração necessários::"
+
+msgid " config = /path/to/file # file containing subscriptions"
+msgstr " config = /caminho/arquivo # arquivo contendo assinantes"
+
+msgid "Optional configuration items::"
+msgstr "Itens de configuração opcionais::"
+
+msgid ""
+" test = True # print messages to stdout for testing\n"
+" strip = 3 # number of slashes to strip for url paths\n"
+" domain = example.com # domain to use if committer missing domain\n"
+" style = ... # style file to use when formatting email\n"
+" template = ... # template to use when formatting email\n"
+" incoming = ... # template to use when run as incoming hook\n"
+" outgoing = ... # template to use when run as outgoing hook\n"
+" changegroup = ... # template to use when run as changegroup hook\n"
+" maxdiff = 300 # max lines of diffs to include (0=none, -1=all)\n"
+" maxsubject = 67 # truncate subject line longer than this\n"
+" diffstat = True # add a diffstat before the diff content\n"
+" sources = serve # notify if source of incoming changes in this list\n"
+" # (serve == ssh or http, push, pull, bundle)\n"
+" merge = False # send notification for merges (default True)\n"
+" [email]\n"
+" from = user@host.com # email address to send as if none given\n"
+" [web]\n"
+" baseurl = http://hgserver/... # root of hg web site for browsing commits"
+msgstr ""
+" test = True # imprime mensagens para stdout para teste\n"
+" strip = 3 # número de barras a remover de URLs\n"
+" domain = example.com # domínio a usar se autor não tiver domínio\n"
+" style = ... # arquivo de estilo para formatar o e-mail\n"
+" template = ... # modelo para formatar o e-mail\n"
+" incoming = ... # modelo ao rodar como gancho de entrada\n"
+" outgoing = ... # modelo ao rodar como gancho de saída\n"
+" changegroup = ... # modelo ao rodar como gancho changegroup\n"
+" maxdiff = 300 # no. máximo de linhas de diff incluídas\n"
+" # (0=nenhuma, -1=todas)\n"
+" maxsubject = 67 # trunca linhas de assunto maiores que isso\n"
+" diffstat = True # adiciona um diffstat antes do diff\n"
+" sources = serve # notifica se a fonte de mudanças recebidas\n"
+" # estiver nessa lista\n"
+" # (serve == ssh ou http, push, pull, bundle)\n"
+" merge = False # envia notificação de mesclagens (padrão: True)\n"
+" [email]\n"
+" from = user@host.com # endereço de e-mail de envio se não houver\n"
+" [web]\n"
+" baseurl = http://hgserver/... # raiz do web site hg para\n"
+" # visualizar consolidações"
msgid ""
-"This registers the hooks. To enable notification, subscribers must\n"
-"be assigned to repositories. The ``[usersubs]`` section maps multiple\n"
-"repositories to a given recipient. The ``[reposubs]`` section maps\n"
-"multiple recipients to a single repository::"
+"The notify config file has same format as a regular hgrc file. It has\n"
+"two sections so you can express subscriptions in whatever way is\n"
+"handier for you."
msgstr ""
-"Isto registra os hooks. Para habilitar notificações, os assinantes devem\n"
-"ser inscritos em repositórios. A seção ``[usersubs]`` mapeia múltiplos\n"
-"repositórios para um dado destinatário. A seção ``[reposubs]`` mapeia\n"
-"múltiplos destinatários para um único repositório::"
+"O arquivo de configuração do notify tem o mesmo formato que um\n"
+"hgrc comum. Possui duas seções, com isso você pode exprimir as\n"
+"assinaturas do modo mais conveniente para você."
msgid ""
" [usersubs]\n"
-" # key is subscriber email, value is a comma-separated list of repo glob\n"
-" # patterns\n"
+" # key is subscriber email, value is \",\"-separated list of glob patterns\n"
" user@host = pattern"
msgstr ""
" [usersubs]\n"
" # a chave é o e-mail do assinante, o valor é uma lista separada\n"
-" # por vírgulas de padrões glob de repositórios\n"
+" # por vírgulas de padrões glob\n"
" user@host = padrão,padrão"
msgid ""
" [reposubs]\n"
-" # key is glob pattern, value is a comma-separated list of subscriber\n"
-" # emails\n"
+" # key is glob pattern, value is \",\"-separated list of subscriber emails\n"
" pattern = user@host"
msgstr ""
" [reposubs]\n"
@@ -7063,213 +5621,16 @@ msgstr ""
" # vírgulas de e-mails dos assinantes\n"
" padrão = user@host"
-msgid ""
-"Glob patterns are matched against absolute path to repository\n"
-"root."
-msgstr ""
-"Os padrões glob correspondem ao caminho absoluto da raiz do\n"
-"repositório."
-
-msgid ""
-"In order to place them under direct user management, ``[usersubs]`` and\n"
-"``[reposubs]`` sections may be placed in a separate ``hgrc`` file and\n"
-"incorporated by reference::"
-msgstr ""
-"Para que os usuários possam gerenciar suas próprias inscrições, as\n"
-"seções ``[usersubs]`` e ``[reposubs]`` podem ser colocadas em um\n"
-"arquivo ``hgrc`` separado e incorporadas por referência::"
-
-msgid ""
-" [notify]\n"
-" config = /path/to/subscriptionsfile"
-msgstr ""
-" [notify]\n"
-" config = /caminho/para/arquivo/de/assinantes"
-
-msgid ""
-"Notifications will not be sent until the ``notify.test`` value is set\n"
-"to ``False``; see below."
-msgstr ""
-"Notificações mas não serão enviadas até que você defina a entrada\n"
-"``notify.test`` como ``False``; veja abaixo."
-
-msgid ""
-"Notifications content can be tweaked with the following configuration "
-"entries:"
-msgstr ""
-"O conteúdo das notificações pode ser ajustado com as seguintes\n"
-"entradas de configuração:"
-
-msgid ""
-"notify.test\n"
-" If ``True``, print messages to stdout instead of sending them. Default: True."
-msgstr ""
-"notify.test\n"
-" Se ``True``, imprime as mensagens para a saída padrão, ao\n"
-" invés de enviá-las. O padrão é True."
-
-msgid ""
-"notify.sources\n"
-" Space-separated list of change sources. Notifications are activated only\n"
-" when a changeset's source is in this list. Sources may be:"
-msgstr ""
-"notify.sources\n"
-" Lista separada por espaços de origens das mudanças. As notificações\n"
-" são enviadas apenas se esta lista incluir a origem das mudanças.\n"
-" As origens podem ser:"
-
-msgid ""
-" :``serve``: changesets received via http or ssh\n"
-" :``pull``: changesets received via ``hg pull``\n"
-" :``unbundle``: changesets received via ``hg unbundle``\n"
-" :``push``: changesets sent or received via ``hg push``\n"
-" :``bundle``: changesets sent via ``hg unbundle``"
-msgstr ""
-" :``serve``: revisões recebidas via http ou ssh\n"
-" :``pull``: revisões recebidas via ``hg pull``\n"
-" :``unbundle``: revisões recebidas via ``hg unbundle``\n"
-" :``push``: revisões enviadas ou recebidas via ``hg push``\n"
-" :``bundle``: revisões enviadas via ``hg unbundle``"
-
-msgid " Default: serve."
-msgstr " Padrão: serve."
-
-msgid ""
-"notify.strip\n"
-" Number of leading slashes to strip from url paths. By default, notifications\n"
-" reference repositories with their absolute path. ``notify.strip`` lets you\n"
-" turn them into relative paths. For example, ``notify.strip=3`` will change\n"
-" ``/long/path/repository`` into ``repository``. Default: 0."
-msgstr ""
-"notify.strip\n"
-" Número de barras \"/\" à esquerda a serem removidas de urls. Por\n"
-" padrão, notificações referenciam repositórios usando caminhos\n"
-" absolutos. ``notify.strip`` pode ser usado para suportar caminhos\n"
-" relativos. Por exemplo, ``notify.strip=3`` mudará\n"
-" ``/caminho/longo/repositorio`` para ``repositorio``. Padrão: 0."
-
-msgid ""
-"notify.domain\n"
-" Default email domain for sender or recipients with no explicit domain."
-msgstr ""
-"notify.domain\n"
-" Domínio de emails a ser usado para remetentes ou destinatários sem um domínio explícito."
-
-msgid ""
-"notify.style\n"
-" Style file to use when formatting emails."
-msgstr ""
-"notify.style\n"
-" O arquivo de estilo usado para formatar os e-mails."
-
-msgid ""
-"notify.template\n"
-" Template to use when formatting emails."
-msgstr ""
-"notify.template\n"
-" O modelo usado para formatar os e-mails."
-
-msgid ""
-"notify.incoming\n"
-" Template to use when run as an incoming hook, overriding ``notify.template``."
-msgstr ""
-"notify.incoming\n"
-" O modelo usado ao executar o gancho incoming; sobrepõe\n"
-" ``notify.template``."
-
-msgid ""
-"notify.outgoing\n"
-" Template to use when run as an outgoing hook, overriding ``notify.template``."
-msgstr ""
-"notify.incoming\n"
-" O modelo usado ao executar o gancho outgoing; sobrepõe\n"
-" ``notify.template``."
-
-msgid ""
-"notify.changegroup\n"
-" Template to use when running as a changegroup hook, overriding\n"
-" ``notify.template``."
-msgstr ""
-"notify.changegroup\n"
-" O modelo usado ao executar o gancho changegroup; sobrepõe\n"
-" ``notify.template``."
-
-msgid ""
-"notify.maxdiff\n"
-" Maximum number of diff lines to include in notification email. Set to 0\n"
-" to disable the diff, or -1 to include all of it. Default: 300."
-msgstr ""
-"notify.maxdiff\n"
-" Número máximo de linhas de diff incluídas no e-mail de notificação.\n"
-" Use 0 para desabilitar o diff, e -1 para incluir o diff completo.\n"
-" Padrão: 300."
-
-msgid ""
-"notify.maxsubject\n"
-" Maximum number of characters in email's subject line. Default: 67."
-msgstr ""
-"notify.maxsubject\n"
-" Número máximo de caracteres na linha de assunto do e-mail. Padrão: 67."
-
-msgid ""
-"notify.diffstat\n"
-" Set to True to include a diffstat before diff content. Default: True."
-msgstr ""
-"notify.diffstat\n"
-" Use True para incluir um diffstat antes do conteúdo do diff.\n"
-" Padrão: True."
-
-msgid ""
-"notify.merge\n"
-" If True, send notifications for merge changesets. Default: True."
-msgstr ""
-"notify.merge\n"
-" Se True, envia notificações para revisões de mesclagem. Padrão: True."
-
-msgid ""
-"notify.mbox\n"
-" If set, append mails to this mbox file instead of sending. Default: None."
-msgstr ""
-"notify.mboxt\n"
-" Se definido, anexa mensagens a este arquivo mbox ao invés de enviar. O padrão é None."
-
-msgid ""
-"notify.fromauthor\n"
-" If set, use the committer of the first changeset in a changegroup for\n"
-" the \"From\" field of the notification mail. If not set, take the user\n"
-" from the pushing repo. Default: False."
-msgstr ""
-"notify.fromauthor\n"
-" Se for True, usa o autor da primeira revisão do changegroup\n"
-" para o campo \"From\"\n"
-" do email de notificação. Se não definido, usa o usuário do repositório\n"
-" que estiver fazendo o push. Padrão: False."
-
-msgid ""
-"If set, the following entries will also be used to customize the\n"
-"notifications:"
-msgstr ""
-"Se definidas, as seguintes entradas também serão usadas para\n"
-"modificar as notificações:"
-
-msgid ""
-"email.from\n"
-" Email ``From`` address to use if none can be found in the generated\n"
-" email content."
-msgstr ""
-"email.from\n"
-" Endereço ``From`` do e-mail se um endereço não for encontrado\n"
-" no conteúdo do e-mail gerado."
+msgid "Glob patterns are matched against path to repository root."
+msgstr "Padrões glob são casados com o caminho da raiz do repositório."
msgid ""
-"web.baseurl\n"
-" Root repository URL to combine with repository paths when making\n"
-" references. See also ``notify.strip``."
+"If you like, you can put notify config file in repository that users\n"
+"can push changes to, they can manage their own subscriptions.\n"
msgstr ""
-"web.baseurl\n"
-" URL raiz do repositório a ser combinada com\n"
-" o caminho do repositório ao criar referências. Veja também\n"
-" ``notify.strip``."
+"Se você quiser, você pode colocar o arquivo de configuração do\n"
+"notify em um repositório com acesso de envio para os usuários,\n"
+"de modo que eles possam gerenciar suas próprias assinaturas.\n"
#, python-format
msgid "%s: %d new changesets"
@@ -7307,10 +5668,10 @@ msgstr "Para definir o pager a ser usado, defina a variável de aplicação::"
msgid ""
" [pager]\n"
-" pager = less -FRX"
+" pager = less -FRSX"
msgstr ""
" [pager]\n"
-" pager = less -FRX"
+" pager = less -FRSX"
msgid ""
"If no pager is set, the pager extensions uses the environment variable\n"
@@ -7321,6 +5682,20 @@ msgstr ""
"nenhum pager será usado."
msgid ""
+"If you notice \"BROKEN PIPE\" error messages, you can disable them by\n"
+"setting::"
+msgstr ""
+"Se você notar mensagens de erro \"PIPE QUEBRADO\" (ou\n"
+"\"BROKEN PIPE\"), você pode desabilitá-las definindo::"
+
+msgid ""
+" [pager]\n"
+" quiet = True"
+msgstr ""
+" [pager]\n"
+" quiet = True"
+
+msgid ""
"You can disable the pager for certain commands by adding them to the\n"
"pager.ignore list::"
msgstr ""
@@ -7377,9 +5752,7 @@ msgstr ""
"auto para comportamento normal.\n"
msgid "when to paginate (boolean, always, auto, or never)"
-msgstr ""
-"quando paginar (booleana, ou \"always\" (sempre), \"never\" (nunca) ou "
-"\"auto\" (automaticamente))"
+msgstr "quando paginar (booleana, ou \"always\" (sempre), \"never\" (nunca) ou \"auto\" (automaticamente))"
msgid "command to send changesets as (a series of) patch emails"
msgstr "comando para enviar revisões como uma série de e-mails de patch"
@@ -7470,8 +5843,12 @@ msgstr ""
"Veja as seções [email] e [smtp] na página de manual hgrc(5) para\n"
"mais detalhes.\n"
-msgid "send patches as inline message text (default)"
-msgstr "envia patches como texto no corpo da mensagem (padrão)"
+#, python-format
+msgid "%s Please enter a valid value"
+msgstr "%s Por favor forneça um valor válido"
+
+msgid "Please enter a valid value.\n"
+msgstr "Por favor, entre um valor válido.\n"
msgid "send patches as attachments"
msgstr "envia patches como anexos"
@@ -7539,10 +5916,8 @@ msgstr "a revisão a enviar"
msgid "run even when remote repository is unrelated (with -b/--bundle)"
msgstr "executa mesmo se o repositório não for relacionado (com -b/--bundle)"
-msgid ""
-"a base changeset to specify instead of a destination (with -b/--bundle)"
-msgstr ""
-"uma revisão base especificada ao invés de um destino (com -b/--bundle)"
+msgid "a base changeset to specify instead of a destination (with -b/--bundle)"
+msgstr "uma revisão base especificada ao invés de um destino (com -b/--bundle)"
msgid "send an introduction email for a single patch"
msgstr "manda um e-mail introdutório para um patch único"
@@ -7597,17 +5972,12 @@ msgid ""
" By default the patch is included as text in the email body for\n"
" easy reviewing. Using the -a/--attach option will instead create\n"
" an attachment for the patch. With -i/--inline an inline attachment\n"
-" will be created. You can include a patch both as text in the email\n"
-" body and as a regular or an inline attachment by combining the\n"
-" -a/--attach or -i/--inline with the --body option."
+" will be created."
msgstr ""
" Por padrão o patch é incluído como texto no corpo do e-mail para\n"
" facilitar a revisão. A opção -a/--attach pode ser usada para ao\n"
" invés disso criar um anexo para o patch. Com a opção -i/--inline\n"
-" um anexo inline será criado.\n"
-" Você pode incluir um patch tanto como texto no corpo da mensagem\n"
-" como um anexo comum ou embutido combinando as opções -a/--attach\n"
-" ou -i/--inline com a opção --body."
+" um anexo inline será criado."
msgid ""
" With -o/--outgoing, emails will be generated for patches not found\n"
@@ -7727,6 +6097,10 @@ msgstr ""
" 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"
@@ -7734,8 +6108,7 @@ msgid "specify at least one changeset with -r or -o"
msgstr "especifique ao menos uma revisão com -r ou -o"
msgid "--outgoing mode always on with --bundle; do not re-specify --outgoing"
-msgstr ""
-"modo é sempre --outgoing com --bundle; não especifique --outgoing novamente"
+msgstr "modo é sempre --outgoing com --bundle; não especifique --outgoing novamente"
msgid "too many destinations"
msgstr "muitos destinos"
@@ -7751,11 +6124,8 @@ msgstr ""
"Escreva a mensagem introdutória para a série de patches."
#, python-format
-msgid "this patch series consists of %d patches."
-msgstr "esta série de patches consiste de %d patches."
-
-msgid "no recipient addresses provided"
-msgstr "nenhum endereço de destinatário fornecido"
+msgid "This patch series consists of %d patches."
+msgstr "Esta série de patches consiste de %d patches."
msgid ""
"\n"
@@ -7776,18 +6146,21 @@ msgstr "(&Y) sim"
msgid "patchbomb canceled"
msgstr "patchbomb cancelado"
-msgid "displaying "
-msgstr "exibindo "
-
-msgid "sending "
-msgstr "enviando "
+msgid "Displaying "
+msgstr "Exibindo "
-msgid "sending"
-msgstr "enviando"
+msgid "Writing "
+msgstr "Escrevendo "
msgid "writing"
msgstr "escrevendo"
+msgid "Sending "
+msgstr "Enviando "
+
+msgid "sending"
+msgstr "enviando"
+
msgid "show progress bars for some actions"
msgstr "mostra barras de progresso para algumas ações"
@@ -7808,9 +6181,6 @@ msgstr "As seguintes opções estão disponíveis::"
msgid ""
" [progress]\n"
" delay = 3 # number of seconds (float) before showing the progress bar\n"
-" changedelay = 1 # changedelay: minimum delay before showing a new topic.\n"
-" # If set to less than 3 * refresh, that value will\n"
-" # be used instead.\n"
" refresh = 0.1 # time in seconds between refreshes 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"
@@ -7822,9 +6192,6 @@ msgid ""
msgstr ""
" [progress]\n"
" delay = 3 # número de segundos (float) antes que a barra seja mostrada\n"
-" changedelay = 1 # changedelay: atraso mínimo antes que um novo tópico\n"
-" # seja mostrado. Se for definido para menos de\n"
-" # 3 * refresh, tal valor será usado em seu lugar.\n"
" refresh = 0.1 # tempo em segundos entre atualizações da\n"
" # barra de progresso\n"
" format = topic bar number estimate # formato da barra de progresso\n"
@@ -7898,8 +6265,7 @@ msgid "print filenames instead of deleting them"
msgstr "imprime os nomes de arquivo ao invés de removê-los"
msgid "end filenames with NUL, for use with xargs (implies -p/--print)"
-msgstr ""
-"termina nomes de arquivo com NUL, para uso com xargs (implica -p/--print)"
+msgstr "termina nomes de arquivo com NUL, para uso com xargs (implica -p/--print)"
msgid "hg purge [OPTION]... [DIR]..."
msgstr "hg purge [OPÇÃO]... [DIR]..."
@@ -7969,12 +6335,12 @@ msgid "warning: %s\n"
msgstr "aviso: %s\n"
#, python-format
-msgid "removing file %s\n"
-msgstr "removendo arquivo %s\n"
+msgid "Removing file %s\n"
+msgstr "Removendo arquivo %s\n"
#, python-format
-msgid "removing directory %s\n"
-msgstr "removendo diretório %s\n"
+msgid "Removing directory %s\n"
+msgstr "Removendo diretório %s\n"
msgid "command to move sets of revisions to a different ancestor"
msgstr "comando para mover conjuntos de revisões para um ancestral diferente"
@@ -7996,15 +6362,8 @@ msgstr ""
msgid "rebase from the specified changeset"
msgstr "rebaseia a partir da revisão especificada"
-msgid ""
-"rebase from the base of the specified changeset (up to greatest common "
-"ancestor of base and dest)"
-msgstr ""
-"rebaseia a partir da base da revisão especificada (até o maior ancestral "
-"comum de base e dest)"
-
-msgid "rebase these revisions"
-msgstr "rebaseia estas revisões"
+msgid "rebase from the base of the specified changeset (up to greatest common ancestor of base and dest)"
+msgstr "rebaseia a partir da base da revisão especificada (até o maior ancestral comum de base e dest)"
msgid "rebase onto the specified changeset"
msgstr "rebaseia sobre a revisão especificada"
@@ -8015,9 +6374,6 @@ msgstr "colapsa as revisões rebaseadas"
msgid "use text as collapse commit message"
msgstr "usa o texto como mensagem de consolidação da revisão colapsada"
-msgid "invoke editor on commit messages"
-msgstr "chama um editor para mensagens de consolidação"
-
msgid "read collapse commit message from file"
msgstr "lê de um arquivo a mensagem de consolidação da revisão colapsada"
@@ -8027,8 +6383,8 @@ msgstr "mantém revisões originais"
msgid "keep original branch names"
msgstr "mantém nomes de ramos originais"
-msgid "(DEPRECATED)"
-msgstr "(OBSOLETA)"
+msgid "force detaching of source from its original branch"
+msgstr "força desacoplamento da origem de seu ramo original"
msgid "specify merge tool"
msgstr "especifica o utilitário de mesclagem"
@@ -8162,35 +6518,23 @@ msgstr "não se pode usar abort e continue simultaneamente"
msgid "cannot use collapse with continue or abort"
msgstr "não se pode usar collapse com continue ou abort"
+msgid "cannot use detach with continue or abort"
+msgstr "não se pode usar detach com continue ou abort"
+
msgid "abort and continue do not allow specifying revisions"
msgstr "abort e continue não permitem especificar revisões"
msgid "tool option will be ignored\n"
msgstr "a opção tool será ignorada\n"
-msgid "cannot specify both a source and a base"
-msgstr "não se pode especificar ao mesmo tempo uma origem e uma base"
-
msgid "cannot specify both a revision and a base"
msgstr "não se pode especificar ao mesmo tempo uma revisão e uma base"
-msgid "cannot specify both a revision and a source"
-msgstr "não se pode especificar ao mesmo tempo uma revisão e uma origem"
-
-msgid "can't remove original changesets with unrebased descendants"
-msgstr ""
-"não é possível remover revisões originais que tenham descendentes não "
-"rebaseados"
+msgid "detach requires a revision to be specified"
+msgstr "detach exige que uma revisão seja especificada"
-msgid "use --keep to keep original changesets"
-msgstr "use --keep para manter as revisões originais"
-
-#, python-format
-msgid "can't rebase immutable changeset %s"
-msgstr "não é possível rebasear a revisão imutável %s"
-
-msgid "see hg help phases for details"
-msgstr "veja hg help phases para mais detalhes"
+msgid "cannot specify a base with detach"
+msgstr "não se pode especificar base com detach"
msgid "nothing to rebase\n"
msgstr "nada para rebasear\n"
@@ -8205,9 +6549,7 @@ msgid "changesets"
msgstr "revisões"
msgid "unresolved conflicts (see hg resolve, then hg rebase --continue)"
-msgstr ""
-"conflitos não resolvidos (veja hg resolve, e em seguida hg rebase "
-"--continue)"
+msgstr "conflitos não resolvidos (veja hg resolve, e em seguida hg rebase --continue)"
#, python-format
msgid "no changes, revision %d skipped\n"
@@ -8217,8 +6559,7 @@ msgid "rebase merging completed\n"
msgstr "mesclagem de rebaseamento completada\n"
msgid "warning: new changesets detected on source branch, not stripping\n"
-msgstr ""
-"aviso: novas revisões detectadas no ramo de origem, strip não realizado\n"
+msgstr "aviso: novas revisões detectadas no ramo de origem, strip não realizado\n"
msgid "rebase completed\n"
msgstr "rebaseamento completado\n"
@@ -8237,15 +6578,8 @@ msgstr "não se pode usar a revisão %d como base, o resultado teria 3 pais"
msgid "no rebase in progress"
msgstr "nenhum rebaseamento em progresso"
-#, python-format
-msgid "can't abort rebase due to immutable changesets %s"
-msgstr ""
-"as seguintes revisões imutáveis impedem que o rebaseamento seja abortado: %s"
-
msgid "warning: new changesets detected on target branch, can't abort\n"
-msgstr ""
-"aviso: novas revisões detectadas no ramo de destino, não é possível "
-"abortar\n"
+msgstr "aviso: novas revisões detectadas no ramo de destino, não é possível abortar\n"
msgid "rebase aborted\n"
msgstr "rebaseamento abortado\n"
@@ -8253,18 +6587,11 @@ msgstr "rebaseamento abortado\n"
msgid "cannot rebase onto an applied mq patch"
msgstr "não se pode rebasear para um patch mq aplicado"
-msgid "no matching revisions"
-msgstr "nenhuma revisão correspondente"
-
-msgid "can't rebase multiple roots"
-msgstr "não é possível rebasear múltiplas raízes"
-
msgid "source is ancestor of destination"
msgstr "origem é ancestral do destino"
-#, python-format
-msgid "updating bookmark %s\n"
-msgstr "atualizando marcador %s\n"
+msgid "source is descendant of destination"
+msgstr "origem é descendente do destino"
msgid "--tool can only be used with --rebase"
msgstr "--tool só pode ser usada em conjunto com --rebase"
@@ -8276,8 +6603,7 @@ msgid "specify merge tool for rebase"
msgstr "especifica o utilitário de mesclagem para o rebaseamento"
msgid "commands to interactively select changes for commit/qrefresh"
-msgstr ""
-"comandos para selecionar interativamente mudanças em um commit ou qrefresh"
+msgstr "comandos para selecionar interativamente mudanças em um commit ou qrefresh"
msgid "ignore white space when comparing lines"
msgstr "ignora espaços em branco ao comparar linhas"
@@ -8298,8 +6624,8 @@ msgstr "este é um arquivo binário\n"
msgid "%d hunks, %d lines changed\n"
msgstr "%d trechos, %d linhas modificadas\n"
-msgid "[Ynesfdaq?]"
-msgstr "[Ynesfdaq?]"
+msgid "[Ynsfdaq?]"
+msgstr "[Ynsfdaq?]"
msgid "&Yes, record this change"
msgstr "(&Y) sim, grava esta mudança"
@@ -8307,9 +6633,6 @@ msgstr "(&Y) sim, grava esta mudança"
msgid "&No, skip this change"
msgstr "(&N) não, descarta essa mudança"
-msgid "&Edit the change manually"
-msgstr "&Edita a mudança manualmente"
-
msgid "&Skip remaining changes to this file"
msgstr "(&S) descarta mudanças restantes neste arquivo"
@@ -8328,39 +6651,6 @@ msgstr "(&Q) encerra, sem gravar nenhuma mudança"
msgid "&?"
msgstr "&?"
-msgid "cannot edit patch for whole file"
-msgstr "não é possível editar um patch para o arquivo inteiro"
-
-msgid "cannot edit patch for binary file"
-msgstr "não é possível editar um patch para um arquivo binário"
-
-msgid ""
-"\n"
-"To remove '-' lines, make them ' ' lines (context).\n"
-"To remove '+' lines, delete them.\n"
-"Lines starting with # will be removed from the patch."
-msgstr ""
-"\n"
-"Para remover linhas '-', marque-as como linhas ' ' (contexto).\n"
-"Para remover linhas '+', apague-as.\n"
-"Linhas iniciadas por '#' serão removidas do patch."
-
-msgid ""
-"If the patch applies cleanly, the edited hunk will immediately be\n"
-"added to the record list. If it does not apply cleanly, a rejects\n"
-"file will be generated: you can use that when you try again. If\n"
-"all lines of the hunk are removed, then the edit is aborted and\n"
-"the hunk is left unchanged.\n"
-msgstr ""
-"Se o patch aplicar de forma limpa, o trecho editado será adicionado\n"
-"imediatamente à lista de gravação. Se o patch não aplicar de forma\n"
-"limpa, um arquivo de rejeitos será gerado: você poderá usar esse\n"
-"arquivo ao tentar novamente. Se todas as linhas do trecho forem\n"
-"removidas, a edição será abortada e o trecho não será modificado.\n"
-
-msgid "edit failed"
-msgstr "falha ao editar"
-
msgid "user quit"
msgstr "usuário encerrou"
@@ -8405,12 +6695,10 @@ msgstr ""
msgid ""
" y - record this change\n"
-" n - skip this change\n"
-" e - edit this change manually"
+" n - skip this change"
msgstr ""
-" y - grava esta alteração\n"
-" n - omite esta alteração\n"
-" e - edita manualmente esta alteração"
+" y - grava essa alteração\n"
+" n - omite a alteração"
msgid ""
" s - skip remaining changes to this file\n"
@@ -8432,8 +6720,7 @@ msgid " ? - display help"
msgstr " ? - exibe o texto de ajuda"
msgid " This command is not available when committing a merge."
-msgstr ""
-" Este comando não está disponível para a consolidação de uma mesclagem."
+msgstr " Este comando não está disponível para a consolidação de uma mesclagem."
msgid "interactively record a new patch"
msgstr "grava um novo patch interativamente"
@@ -8528,6 +6815,9 @@ msgstr ""
msgid "hardlinks are not supported on this system"
msgstr "hardlinks não são suportados neste sistema"
+msgid "must specify local origin repository"
+msgstr "é necessário especificar um repositório de origem local"
+
#, python-format
msgid "relinking %s to %s\n"
msgstr "restaurando hardlinks de %s para %s\n"
@@ -8687,20 +6977,6 @@ msgstr ""
" exista (por exemplo, a tip).\n"
" "
-msgid "convert a shared repository to a normal one"
-msgstr "converte um repositório compartilhado para um repositório normal"
-
-msgid ""
-" Copy the store data to the repo and remove the sharedpath data.\n"
-" "
-msgstr ""
-" Copia os dados armazenados na origem e remove os dados\n"
-" de compartilhamento de repositório.\n"
-" "
-
-msgid "this is not a shared repo"
-msgstr "este não é um repositório compartilhado"
-
msgid "do not create a working copy"
msgstr "não cria uma cópia de trabalho"
@@ -8730,10 +7006,6 @@ msgid "skipping merge changeset %s:%s\n"
msgstr "omitindo revisão de mesclagem %s:%s\n"
#, python-format
-msgid "%s is not a parent of %s"
-msgstr "%s não é um pai de %s"
-
-#, python-format
msgid "%s merged at %s\n"
msgstr "%s mesclado em %s\n"
@@ -8751,6 +7023,10 @@ msgstr "filtro falhou"
msgid "can only omit patchfile if merging"
msgstr "só é possível omitir arquivo de patch em uma mesclagem"
+#, python-format
+msgid "%s: empty changeset"
+msgstr "%s: revisão vazia"
+
msgid "fix up the merge and run hg transplant --continue"
msgstr "conserte a mesclagem e execute hg transplant --continue"
@@ -8797,6 +7073,9 @@ msgstr "não existe tal opção\n"
msgid "pull patches from REPO"
msgstr "traz patches do REPOSITÓRIO"
+msgid "BRANCH"
+msgstr "RAMO"
+
msgid "pull patches from branch BRANCH"
msgstr "traz patches do ramo RAMO"
@@ -8809,9 +7088,6 @@ msgstr "omite revisão REV"
msgid "merge at REV"
msgstr "mesclagem em REV"
-msgid "parent to choose when transplanting merge"
-msgstr "pai a ser escolhido ao transplantar uma mesclagem"
-
msgid "append transplant info to log message"
msgstr "anexa informações de transplante à mensagem de log"
@@ -8822,8 +7098,7 @@ msgid "filter changesets through command"
msgstr "filtra revisões através do comando"
msgid "hg transplant [-s REPO] [-b BRANCH [-a]] [-p REV] [-m REV] [REV]..."
-msgstr ""
-"hg transplant [-s REPOSITÓRIO] [-b RAMO [-a]] [-p REV] [-m REV] [REV]..."
+msgstr "hg transplant [-s REPOSITÓRIO] [-b RAMO [-a]] [-p REV] [-m REV] [REV]..."
msgid "transplant changesets from another branch"
msgstr "transplanta revisões de outro ramo"
@@ -8876,11 +7151,11 @@ msgstr ""
" transplantadas serão pedidas interativamente."
msgid ""
-" :hg:`transplant --branch REV --all` will transplant the\n"
+" :hg:`transplant --branch REVISION --all` will transplant the\n"
" selected branch (up to the named revision) onto your current\n"
" working directory."
msgstr ""
-" :hg:`transplant --branch REV --all` irá transplantar o ramo\n"
+" :hg:`transplant --branch REVISÃO --all` irá transplantar o ramo\n"
" selecionado (até a revisão pedida) no seu diretório de trabalho\n"
" atual."
@@ -8897,14 +7172,6 @@ msgstr ""
" transplantá-los."
msgid ""
-" Merge changesets may be transplanted directly by specifying the\n"
-" proper parent changeset by calling :hg:`transplant --parent`."
-msgstr ""
-" Revisões de mesclagem podem ser transplantadas diretamente\n"
-" especificando uma revisão pai adequada ao usar a opção\n"
-" :hg:`transplant --parent`."
-
-msgid ""
" If no merges or revisions are provided, :hg:`transplant` will\n"
" start an interactive changeset browser."
msgstr ""
@@ -9028,8 +7295,7 @@ msgstr ""
" encoding = sjis"
msgid "It is useful for the users who want to commit with UTF-8 log message.\n"
-msgstr ""
-"Isto é útil para usuários que preferem mensagens de consolidação em UTF-8.\n"
+msgstr "Isto é útil para usuários que preferem mensagens de consolidação em UTF-8.\n"
#, python-format
msgid "[win32mbcs] filename conversion failed with %s encoding\n"
@@ -9084,9 +7350,7 @@ msgstr ""
" ** = cleverdecode:\n"
" # or ** = macdecode:"
-msgid ""
-"If not doing conversion, to make sure you do not commit CRLF/CR by "
-"accident::"
+msgid "If not doing conversion, to make sure you do not commit CRLF/CR by accident::"
msgstr ""
"Se a conversão não estiver sendo feita, para garantir que você não\n"
"consolide CRLF/CR acidentalmente::"
@@ -9130,10 +7394,8 @@ msgstr ""
"Mercurial.ini ou %s.\n"
#, python-format
-msgid "attempt to commit or push text file(s) using %s line endings\n"
-msgstr ""
-"tentativa de consolidação ou push de arquivo(s) texto usando quebras de "
-"linha %s\n"
+msgid "Attempt to commit or push text file(s) using %s line endings\n"
+msgstr "Tentativa de consolidação ou push de arquivo(s) texto usando quebras de linha %s\n"
#, python-format
msgid "in %s: %s\n"
@@ -9177,11 +7439,8 @@ msgstr ""
"[decode]\n"
"** = %sdecode:\n"
-msgid ""
-"win32text is deprecated: "
-"http://mercurial.selenic.com/wiki/Win32TextExtension\n"
-msgstr ""
-"win32text é obsoleta: http://mercurial.selenic.com/wiki/Win32TextExtension\n"
+msgid "win32text is deprecated: http://mercurial.selenic.com/wiki/Win32TextExtension\n"
+msgstr "win32text é obsoleta: http://mercurial.selenic.com/wiki/Win32TextExtension\n"
msgid "discover and advertise repositories on the local network"
msgstr "descobre e anuncia repositórios na rede local"
@@ -9226,12 +7485,15 @@ msgstr ""
msgid "archive prefix contains illegal components"
msgstr "prefixo de arquivo contém componentes ilegais"
-msgid "archiving"
-msgstr "empacotando"
+msgid "cannot give prefix when archiving to files"
+msgstr "não é possível fornecer prefixo ao arquivar para arquivos"
#, python-format
-msgid "malformed line in .hg/bookmarks: %r\n"
-msgstr "linha malformada em .hg/bookmarks: %r\n"
+msgid "unknown archive type '%s'"
+msgstr "tipo de arquivo '%s' desconhecido"
+
+msgid "archiving"
+msgstr "empacotando"
#, python-format
msgid "bookmark '%s' contains illegal character"
@@ -9242,12 +7504,12 @@ msgid "branch %s not found"
msgstr "ramo %s não encontrado"
#, python-format
-msgid "divergent bookmark %s stored as %s\n"
-msgstr "marcador divergente %s guardado como %s\n"
+msgid "updating bookmark %s\n"
+msgstr "atualizando marcador %s\n"
#, python-format
-msgid "adding remote bookmark %s\n"
-msgstr "adicionando marcador remoto %s\n"
+msgid "not updating divergent bookmark %s\n"
+msgstr "marcador divergente %s não atualizado\n"
msgid "searching for changed bookmarks\n"
msgstr "procurando por marcadores modificados\n"
@@ -9267,8 +7529,7 @@ msgstr "não é possível criar novo repositório de bundle"
#, python-format
msgid "stream ended unexpectedly (got %d bytes, expected %d)"
-msgstr ""
-"dados recebidos terminaram inesperadamente (%d bytes obtidos, %d esperados)"
+msgstr "dados recebidos terminaram inesperadamente (%d bytes obtidos, %d esperados)"
#, python-format
msgid "invalid chunk length %d"
@@ -9293,10 +7554,6 @@ msgstr "nome de usuário %s contém uma quebra de linha"
msgid "the name '%s' is reserved"
msgstr "o nome '%s' é reservado"
-#, python-format
-msgid "uncommitted changes in subrepo %s"
-msgstr "mudanças não consolidadas no sub-repositório %s"
-
msgid "options --message and --logfile are mutually exclusive"
msgstr "opções --message e --logfile são mutuamente exclusivas"
@@ -9318,12 +7575,10 @@ msgid "cannot specify --changelog and --manifest at the same time"
msgstr "não é possível especificar simultaneamente --changelog e --manifest"
msgid "cannot specify filename with --changelog or --manifest"
-msgstr ""
-"não é possível especificar um nome de arquivo com --changelog ou --manifest"
+msgstr "não é possível especificar um nome de arquivo com --changelog ou --manifest"
msgid "cannot specify --changelog or --manifest without a repository"
-msgstr ""
-"não é possível especificar --changelog ou --manifest sem um repositório"
+msgstr "não é possível especificar --changelog ou --manifest sem um repositório"
msgid "invalid arguments"
msgstr "argumentos inválidos"
@@ -9345,10 +7600,6 @@ msgid "%s: not overwriting - %s collides with %s\n"
msgstr "%s: não sobrescrito - %s colide com %s\n"
#, python-format
-msgid "%s: can't copy - same file\n"
-msgstr "%s: impossível copiar - é o mesmo arquivo\n"
-
-#, python-format
msgid "%s: not overwriting - file exists\n"
msgstr "%s: não sobrescrito - arquivo existe\n"
@@ -9389,6 +7640,9 @@ msgstr "com várias origens o destino deve ser um diretório existente"
msgid "destination %s is not a directory"
msgstr "o destino %s não é um diretório"
+msgid "no files to copy"
+msgstr "nenhum arquivo para copiar"
+
msgid "(consider using --after)\n"
msgstr "(considere usar --after)\n"
@@ -9412,10 +7666,6 @@ msgid "tag: %s\n"
msgstr "etiqueta: %s\n"
#, python-format
-msgid "phase: %s\n"
-msgstr "fase: %s\n"
-
-#, python-format
msgid "parent: %d:%s\n"
msgstr "pai: %d:%s\n"
@@ -9464,28 +7714,18 @@ msgid "%s: no key named '%s'"
msgstr "%s: nenhuma chave nomeada '%s'"
#, python-format
-msgid "found revision %s from %s\n"
-msgstr "encontrada revisão %s de %s\n"
+msgid "Found revision %s from %s\n"
+msgstr "Encontrada revisão %s de %s\n"
msgid "revision matching date not found"
msgstr "revisão com data equivalente não encontrada"
#, python-format
-msgid "cannot follow file not in parent revision: \"%s\""
-msgstr "não é possível seguir arquivo não presente na revisão pai: \"%s\""
-
-#, python-format
msgid "cannot follow nonexistent file: \"%s\""
msgstr "não é possível seguir arquivo inexistente: \"%s\""
msgid "can only follow copies/renames for explicit filenames"
-msgstr ""
-"é possível acompanhar cópias/renomeações apenas para nomes de arquivo "
-"explícitos"
-
-#, python-format
-msgid "-G/--graph option is incompatible with --%s"
-msgstr "a opção -G/--graph é incompatível com --%s"
+msgstr "é possível acompanhar cópias/renomeações apenas para nomes de arquivo explícitos"
#, python-format
msgid "adding %s\n"
@@ -9495,22 +7735,6 @@ msgstr "adicionando %s\n"
msgid "skipping missing subrepository: %s\n"
msgstr "desconsiderando sub-repositório faltando: %s\n"
-#, python-format
-msgid "amending changeset %s\n"
-msgstr "emendando revisão %s\n"
-
-#, python-format
-msgid "copying changeset %s to %s\n"
-msgstr "copiando revisão %s para %s\n"
-
-#, python-format
-msgid "stripping intermediate changeset %s\n"
-msgstr "removendo revisão intermediária %s\n"
-
-#, python-format
-msgid "stripping amended changeset %s\n"
-msgstr "removendo revisão emendada %s\n"
-
msgid "HG: Enter commit message. Lines beginning with 'HG:' are removed."
msgstr ""
"HG: Edite a mensagem de consolidação.\n"
@@ -9552,29 +7776,8 @@ msgstr "HG: nenhum arquivo mudou"
msgid "empty commit message"
msgstr "mensagem de consolidação vazia"
-#, python-format
-msgid "forgetting %s\n"
-msgstr "esquecendo %s\n"
-
-#, python-format
-msgid "reverting %s\n"
-msgstr "revertendo %s\n"
-
-#, python-format
-msgid "undeleting %s\n"
-msgstr "revertendo remoção de %s\n"
-
-#, python-format
-msgid "file not managed: %s\n"
-msgstr "arquivo não gerenciado: %s\n"
-
-#, python-format
-msgid "no changes needed to %s\n"
-msgstr "nenhuma mudança necessária para %s\n"
-
msgid "repository root directory or name of overlay bundle file"
-msgstr ""
-"diretório raiz do repositório ou nome de arquivo de bundle para sobreposição"
+msgstr "diretório raiz do repositório ou nome de arquivo de bundle para sobreposição"
msgid "DIR"
msgstr "DIR"
@@ -9583,9 +7786,7 @@ msgid "change working directory"
msgstr "muda o diretório de trabalho"
msgid "do not prompt, automatically pick the first choice for all prompts"
-msgstr ""
-"não consulta o usuário, usa automaticamente a primeira opção em todas as "
-"escolhas"
+msgstr "não consulta o usuário, usa automaticamente a primeira opção em todas as escolhas"
msgid "suppress output"
msgstr "suprime saída"
@@ -9642,9 +7843,7 @@ msgid "specify hg command to run on the remote side"
msgstr "especifica comando hg para executar do lado remoto"
msgid "do not verify server certificate (ignoring web.cacerts config)"
-msgstr ""
-"não verifica o certificado do servidor (ignorando a opção de configuração "
-"web.cacerts)"
+msgstr "não verifica o certificado do servidor (ignorando a opção de configuração web.cacerts)"
msgid "PATTERN"
msgstr "PADRÃO"
@@ -9676,18 +7875,12 @@ msgstr "exibe usando arquivo de mapeamento de modelo"
msgid "display with template"
msgstr "exibe usando modelo"
-msgid "show patch"
-msgstr "mostra o patch"
-
msgid "do not show merges"
msgstr "não mostra mesclagens"
msgid "output diffstat-style summary of changes"
msgstr "imprime sumário de mudanças no estilo diffstat"
-msgid "show the revision DAG"
-msgstr "mostra o grafo de revisões"
-
msgid "treat all files as text"
msgstr "trata todos os arquivos como texto"
@@ -9794,28 +7987,23 @@ msgstr ""
" próxima consolidação."
msgid ""
-" Use the -s/--similarity option to detect renamed files. This\n"
+" Use the -s/--similarity option to detect renamed files. With a\n"
+" parameter greater than 0, this compares every removed file with\n"
+" every added file and records those similar enough as renames. This\n"
" option takes a percentage between 0 (disabled) and 100 (files must\n"
-" be identical) as its parameter. With a parameter greater than 0,\n"
-" this compares every removed file with every added file and records\n"
-" those similar enough as renames. Detecting renamed files this way\n"
+" be identical) as its parameter. Detecting renamed files this way\n"
" can be expensive. After using this option, :hg:`status -C` can be\n"
-" used to check which files were identified as moved or renamed. If\n"
-" not specified, -s/--similarity defaults to 100 and only renames of\n"
-" identical files are detected."
+" used to check which files were identified as moved or renamed."
msgstr ""
" Use a opção -s/--similarity para detectar arquivos renomeados.\n"
-" Esta opção recebe como parâmetro uma porcentagem entre 0\n"
-" (desabilitada) e 100 (arquivos devem ser idênticos). Com um parâmetro maior do que 0, compara cada arquivo removido com cada\n"
+" Com um parâmetro maior do que 0, compara cada arquivo removido com cada\n"
" arquivo adicionado e grava como renomeações aqueles semelhantes o\n"
-" bastante. Detectar\n"
+" bastante. Esta opção usa uma porcentagem entre 0 (desabilitada)\n"
+" e 100 (arquivos devem ser idênticos) como parâmetro. Detectar\n"
" desta maneira arquivos renomeados pode ser uma operação cara.\n"
" Após o uso dessa opção, :hg:`status -C` pode ser usado para\n"
" verificar quais arquivos foram identificados como movidos ou\n"
-" renomeados.\n"
-" Se -s/--similarity não for especificada, seu valor será 100,\n"
-" de modo que apenas\n"
-" renomeações idênticas aos originais serão detectadas."
+" renomeados."
msgid "similarity must be a number"
msgstr "similaridade deve ser um número"
@@ -9926,21 +8114,6 @@ msgstr ""
" O tipo de arquivo é detectado automaticamente com base na extensão\n"
" do arquivo (ou forçado através de -t/--type)."
-msgid " Examples:"
-msgstr " Exemplos::"
-
-msgid " - create a zip file containing the 1.0 release::"
-msgstr " - cria um arquivo zip contendo a versão 1.0::"
-
-msgid " hg archive -r 1.0 project-1.0.zip"
-msgstr " hg archive -r 1.0 project-1.0.zip"
-
-msgid " - create a tarball excluding .hg files::"
-msgstr " - cria um tarball excluindo arquivos .hg::"
-
-msgid " hg archive project.tar.gz -X \".hg*\""
-msgstr " hg archive project.tar.gz -X \".hg*\""
-
msgid " Valid types are:"
msgstr " Tipos válidos:"
@@ -9990,8 +8163,8 @@ msgstr "não se pode empacotar arquivos simples na saída padrão"
msgid "merge with old dirstate parent after backout"
msgstr "mesclar com pai do dirstate anterior após o backout"
-msgid "parent to choose when backing out merge (DEPRECATED)"
-msgstr "pai a ser escolhido ao fazer o backout de mesclagem (OBSOLETO)"
+msgid "parent to choose when backing out merge"
+msgstr "pai a ser escolhido ao fazer o backout de mesclagem"
msgid "revision to backout"
msgstr "revisão para fazer o backout"
@@ -10020,35 +8193,26 @@ msgstr ""
" manualmente."
msgid ""
-" .. note::\n"
-" backout cannot be used to fix either an unwanted or\n"
-" incorrect merge."
-msgstr ""
-" .. note::\n"
-" backout não pode ser usado para corrigir uma mesclagem\n"
-" incorreta ou indesejada."
-
-msgid ""
-" By default, the pending changeset will have one parent,\n"
-" maintaining a linear history. With --merge, the pending\n"
-" changeset will instead have two parents: the old parent of the\n"
-" working directory and a new child of REV that simply undoes REV."
+" 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."
+" 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\n"
-" to specifying --merge followed by :hg:`update --clean .` to\n"
-" cancel the merge and leave the child of REV as a head to be\n"
-" merged separately."
+" 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 versão 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."
+" 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"
@@ -10062,8 +8226,12 @@ msgstr "não se pode anular uma mudança em um ramo diferente"
msgid "cannot backout a change with no parents"
msgstr "não se pode anular uma mudança sem pais"
-msgid "cannot backout a merge changeset"
-msgstr "não se pode anular revisões de mesclagem"
+msgid "cannot backout a merge changeset without --parent"
+msgstr "não se pode anular uma revisão de mesclagem sem --parent"
+
+#, python-format
+msgid "%s is not a parent of %s"
+msgstr "%s não é um pai de %s"
msgid "cannot use --parent on non-merge changeset"
msgstr "não se pode usar --parent numa revisão que não seja uma mesclagem"
@@ -10077,7 +8245,7 @@ msgid "merging with changeset %s\n"
msgstr "mesclando com revisão %s\n"
msgid "reset bisect state"
-msgstr "reinicia o estado da bissecção"
+msgstr "reinicia estado do bisect"
msgid "mark changeset good"
msgstr "marca revisão boa"
@@ -10089,7 +8257,7 @@ msgid "skip testing changeset"
msgstr "descartando revisão de teste"
msgid "extend the bisect range"
-msgstr "amplia o alcance da bissecção"
+msgstr "amplia o alcance do bisect"
msgid "use command to check changeset state"
msgstr "usa o comando para verificar o estado da revisão"
@@ -10132,127 +8300,18 @@ msgstr ""
msgid ""
" If you supply a command, it will be used for automatic bisection.\n"
-" The environment variable HG_NODE will contain the ID of the\n"
-" changeset being tested. The exit status of the command will be\n"
-" used to mark revisions as good or bad: status 0 means good, 125\n"
-" means to skip the revision, 127 (command not found) will abort the\n"
-" bisection, and any other non-zero exit status means the revision\n"
-" is bad."
+" Its exit status will be used to mark revisions as good or bad:\n"
+" status 0 means good, 125 means to skip the revision, 127\n"
+" (command not found) will abort the bisection, and any other\n"
+" non-zero exit status means the revision is bad."
msgstr ""
" Se você fornecer um comando ele será usado para bissecção\n"
-" automática. A variável de ambiente HG_NODE conterá o ID da\n"
-" revisão sendo testada. O código de saída do comando\n"
-" será usado para marcar revisões\n"
+" automática. Seu código de saída será usado para marcar revisões\n"
" como boas ou ruins: o código de saída 0 marcará a revisão como\n"
" boa, 125 omitirá a revisão, 127 (comando não encontrado)\n"
" abortará a bissecção, e qualquer outro código maior que 0\n"
" marcará a revisão como ruim."
-msgid " Some examples:"
-msgstr " Alguns exemplos::"
-
-msgid ""
-" - start a bisection with known bad revision 12, and good revision 34::"
-msgstr ""
-" - inicia uma bissecção com a revisão ruim 12, e a revisão boa 34::"
-
-msgid ""
-" hg bisect --bad 34\n"
-" hg bisect --good 12"
-msgstr ""
-" hg bisect --bad 34\n"
-" hg bisect --good 12"
-
-msgid ""
-" - advance the current bisection by marking current revision as good or\n"
-" bad::"
-msgstr ""
-" - avança a bissecção atual marcando a revisão atual como\n"
-" boa ou ruim::"
-
-msgid ""
-" hg bisect --good\n"
-" hg bisect --bad"
-msgstr ""
-" hg bisect --good\n"
-" hg bisect --bad"
-
-msgid ""
-" - mark the current revision, or a known revision, to be skipped (eg. if\n"
-" that revision is not usable because of another issue)::"
-msgstr ""
-" - marca a revisão atual, ou uma revisão conhecida, para que\n"
-" seja omitida (por exemplo, se tal revisão não for usável\n"
-" devido a algum outro problema)::"
-
-msgid ""
-" hg bisect --skip\n"
-" hg bisect --skip 23"
-msgstr ""
-" hg bisect --skip\n"
-" hg bisect --skip 23"
-
-msgid " - forget the current bisection::"
-msgstr " - esquece a bissecção atual::"
-
-msgid " hg bisect --reset"
-msgstr " hg bisect --reset"
-
-msgid ""
-" - use 'make && make tests' to automatically find the first broken\n"
-" revision::"
-msgstr ""
-" - usa 'make && make tests' para encontrar a primeira revisão\n"
-" quebrada automaticamente::"
-
-msgid ""
-" hg bisect --reset\n"
-" hg bisect --bad 34\n"
-" hg bisect --good 12\n"
-" hg bisect --command 'make && make tests'"
-msgstr ""
-" hg bisect --reset\n"
-" hg bisect --bad 34\n"
-" hg bisect --good 12\n"
-" hg bisect --command 'make && make tests'"
-
-msgid ""
-" - see all changesets whose states are already known in the current\n"
-" bisection::"
-msgstr ""
-" - mostra todas as revisões cujos estados já são conhecidos\n"
-" na bissecção atual::"
-
-msgid " hg log -r \"bisect(pruned)\""
-msgstr " hg log -r \"bisect(pruned)\""
-
-msgid ""
-" - see the changeset currently being bisected (especially useful\n"
-" if running with -U/--noupdate)::"
-msgstr ""
-" - mostra a revisão sendo bisseccionada no momento (especialmente\n"
-" útil ao rodar com -U/--noupdate)::"
-
-msgid " hg log -r \"bisect(current)\""
-msgstr " hg log -r \"bisect(current)\""
-
-msgid " - see all changesets that took part in the current bisection::"
-msgstr " - mostra todas as revisões que tomam parte na bissecção atual::"
-
-msgid " hg log -r \"bisect(range)\""
-msgstr " hg log -r \"bisect(range)\""
-
-msgid " - with the graphlog extension, you can even get a nice graph::"
-msgstr " - a extensão graphlog pode inclusive fornecer um grafo::"
-
-msgid " hg log --graph -r \"bisect(range)\""
-msgstr " hg log --graph -r \"bisect(range)\""
-
-msgid " See :hg:`help revsets` for more about the `bisect()` keyword."
-msgstr ""
-" Veja :hg:`help revsets` para mais informações sobre a palavra\n"
-" chave `bisect()`."
-
msgid "The first good revision is:\n"
msgstr "A primeira revisão boa é:\n"
@@ -10270,14 +8329,10 @@ msgstr ""
"ancestral comum, %s.\n"
msgid "Due to skipped revisions, the first good revision could be any of:\n"
-msgstr ""
-"Devido a revisões omitidas, a primeira revisão boa pode ser qualquer uma "
-"entre:\n"
+msgstr "Devido a revisões omitidas, a primeira revisão boa pode ser qualquer uma entre:\n"
msgid "Due to skipped revisions, the first bad revision could be any of:\n"
-msgstr ""
-"Devido a revisões omitidas, a primeira revisão ruim pode ser qualquer uma "
-"entre:\n"
+msgstr "Devido a revisões omitidas, a primeira revisão ruim pode ser qualquer uma entre:\n"
msgid "cannot bisect (no known good revisions)"
msgstr "não é possível fazer o bisect (nenhuma revisão boa conhecida)"
@@ -10286,19 +8341,11 @@ msgid "cannot bisect (no known bad revisions)"
msgstr "não é possível fazer o bisect (nenhuma revisão ruim conhecida)"
msgid "(use of 'hg bisect <cmd>' is deprecated)\n"
-msgstr "(o uso 'hg bisect <cmd>' é obsoleto)\n"
+msgstr "(uso 'hg bisect <cmd>' é obsoleto)\n"
msgid "incompatible arguments"
msgstr "argumentos incompatíveis"
-msgid "current bisect revision is unknown - start a new bisect to fix"
-msgstr ""
-"a revisão biseccionada atual é desconhecida - para corrigir inicie uma nova "
-"bissecção"
-
-msgid "current bisect revision is a merge"
-msgstr "a revisão biseccionada atual é uma mesclagem"
-
#, python-format
msgid "failed to execute %s"
msgstr "falhou ao executar %s"
@@ -10308,8 +8355,8 @@ msgid "%s killed"
msgstr "%s morto"
#, python-format
-msgid "changeset %d:%s: %s\n"
-msgstr "revisão %d:%s: %s\n"
+msgid "Changeset %d:%s: %s\n"
+msgstr "Revisão %d:%s: %s\n"
#, python-format
msgid "Extending search to changeset %d:%s\n"
@@ -10331,8 +8378,8 @@ msgstr "apaga o marcador pedido"
msgid "rename a given bookmark"
msgstr "renomeia um marcador"
-msgid "mark a bookmark inactive"
-msgstr "torna um marcador inativo"
+msgid "do not mark a new bookmark active"
+msgstr "não marca como ativo um novo marcador"
msgid "hg bookmarks [-f] [-d] [-i] [-m NAME] [-r REV] [NAME]"
msgstr "hg bookmarks [-f] [-d] [-i] [-m NOME] [-r REV] [NOME]"
@@ -10341,16 +8388,16 @@ 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 committing.\n"
-" Bookmarks are local. They can be renamed, copied and deleted. It is\n"
-" possible to use :hg:`merge NAME` to merge from a given bookmark, and\n"
-" :hg:`update NAME` to update to a given bookmark."
+" 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"
-" :hg:`merge NOME` para mesclar com um marcador específico, e\n"
-" :hg:`update NOME` para atualizar para um marcador específico."
+" 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"
@@ -10367,31 +8414,16 @@ 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."
+" 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"
-" marcadores sejam suportados tanto no repositório local como no\n"
-" remoto. Em versões anteriores à 1.8, a extensão bookmarks\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 ""
-" With -i/--inactive, the new bookmark will not be made the active\n"
-" bookmark. If -r/--rev is given, the new bookmark will not be made\n"
-" active even if -i/--inactive is not given. If no NAME is given, the\n"
-" current active bookmark will be marked inactive.\n"
-" "
-msgstr ""
-" Com -i/--inactive, o novo marcador não se tornará ativo. Se\n"
-" -r/--rev for passada, o novo marcador não se tornará ativo mesmo\n"
-" que -i/--inactive não seja passada. Se nenhum NOME for dado, o\n"
-" marcador ativo atual se tornará inativo.\n"
-" "
-
-msgid "bookmark name required"
-msgstr "requerido nome do marcador"
-
#, python-format
msgid "bookmark '%s' does not exist"
msgstr "o marcador '%s' não existe"
@@ -10403,6 +8435,9 @@ msgstr "o marcador '%s' já existe (use -f para forçar)"
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"
@@ -10428,17 +8463,6 @@ msgid "set or show the current branch name"
msgstr "define ou mostra o nome de ramo atual"
msgid ""
-" .. note::\n"
-" Branch names are permanent and global. Use :hg:`bookmark` to create a\n"
-" light-weight bookmark instead. See :hg:`help glossary` for more\n"
-" information about named branches and bookmarks."
-msgstr ""
-" .. note::\n"
-" Nomes de ramos são permanentes e globais. Use :hg:`bookmark`\n"
-" para criar um marcador leve temporário. Veja :hg:`help glossary`\n"
-" para mais informações sobre ramos nomeados e marcadores."
-
-msgid ""
" With no argument, show the current branch name. With one argument,\n"
" set the working directory branch name (the branch will not exist\n"
" in the repository until the next commit). Standard practice\n"
@@ -10476,6 +8500,18 @@ msgstr ""
" fechado.\n"
" "
+msgid " .. note::"
+msgstr " .. note::"
+
+msgid ""
+" Branch names are permanent. Use :hg:`bookmark` to create a\n"
+" light-weight bookmark instead. See :hg:`help glossary` for more\n"
+" information about named branches and bookmarks."
+msgstr ""
+" Nomes de ramos são permanentes. Alternativamente, Use :hg:`bookmark`\n"
+" para criar um marcador leve temporário. Veja :hg:`help glossary`\n"
+" para mais informações sobre ramos nomeados e marcadores."
+
#, python-format
msgid "reset working directory to branch %s\n"
msgstr "redefine o diretório de trabalho para o ramo %s\n"
@@ -10491,11 +8527,6 @@ msgstr "use 'hg update' para mudar para ele"
msgid "marked working directory as branch %s\n"
msgstr "diretório de trabalho marcado como ramo %s\n"
-msgid "(branches are permanent and global, did you want a bookmark?)\n"
-msgstr ""
-"(ramos nomeados são permanentes e globais, use um bookmark para um marcador "
-"não permanente)\n"
-
msgid "show only branches that have unmerged heads"
msgstr "mostra apenas ramos que possuem cabeças não mescladas"
@@ -10619,12 +8650,12 @@ msgstr ""
" Devolve 0 indicando sucesso, 1 se não foram encontradas mudanças.\n"
" "
-msgid "unknown bundle type specified with --type"
-msgstr "tipo de bundle especificado por --type desconhecido"
-
msgid "--base is incompatible with specifying a destination"
msgstr "--base é incompatível com uma especificação de destino"
+msgid "unknown bundle type specified with --type"
+msgstr "tipo de bundle especificado por --type desconhecido"
+
msgid "print output to file with formatted name"
msgstr "imprime a saída para o arquivo com o nome formatado"
@@ -10703,176 +8734,128 @@ msgstr ""
" repositório, como o padrão a ser usado para futuros comandos\n"
" pull."
-msgid ""
-" Only local paths and ``ssh://`` URLs are supported as\n"
-" destinations. For ``ssh://`` destinations, no working directory or\n"
-" ``.hg/hgrc`` will be created on the remote side."
-msgstr ""
-" Apenas caminhos locais e URLs ``ssh://`` são suportados no\n"
-" destino. Para destinos ``ssh://``, a cópia de trabalho e arquivo\n"
-" ``.hg/hgrc`` não serão criados no repositório remoto."
-
-msgid ""
-" To pull only a subset of changesets, specify one or more revisions\n"
-" identifiers with -r/--rev or branches with -b/--branch. The\n"
-" resulting clone will contain only the specified changesets and\n"
-" their ancestors. These options (or 'clone src#rev dest') imply\n"
-" --pull, even for local source repositories. Note that specifying a\n"
-" tag will include the tagged changeset but not the changeset\n"
-" containing the tag."
-msgstr ""
-" Para trazer apenas um subconjunto de revisões, especifique um\n"
-" ou mais identificadores de revisão com -r/--rev ou ramos com\n"
-" -b/--branch. O clone resultante conterá apenas as revisões\n"
-" especificadas e seus ancestrais. Estas opções (ou\n"
-" 'clone origem#rev dest') implicam --pull, mesmo para repositórios\n"
-" locais. Note que especificar uma etiqueta incluirá a revisão\n"
-" etiquetada mas não incluirá a revisão que define a etiqueta em si."
-
-msgid ""
-" To check out a particular version, use -u/--update, or\n"
-" -U/--noupdate to create a clone with no working directory."
-msgstr ""
-" Para obter uma revisão em particular, use -u/--update, ou\n"
-" -U/--noupdate para criar um clone sem um diretório de trabalho."
-
-msgid ""
-" For efficiency, hardlinks are used for cloning whenever the\n"
-" source and destination are on the same filesystem (note this\n"
-" applies only to the repository data, not to the working\n"
-" directory). Some filesystems, such as AFS, implement hardlinking\n"
-" incorrectly, but do not report errors. In these cases, use the\n"
-" --pull option to avoid hardlinking."
-msgstr ""
-" Por eficiência, hardlinks são usados para a clonagem sempre que a\n"
-" origem e o destino estiverem no mesmo sistema de arquivos (note\n"
-" que isso se aplica apenas aos dados do repositório, e não aos\n"
-" arquivos da cópia de trabalho). Alguns sistemas de arquivo, como\n"
-" o AFS, implementam hardlinks incorretamente, mas não informam\n"
-" erros. Nesses casos, use a opção --pull para evitar o uso de\n"
-" hardlinks."
-
-msgid ""
-" In some cases, you can clone repositories and the working\n"
-" directory using full hardlinks with ::"
-msgstr ""
-" Em alguns casos, você pode clonar repositórios e o diretório de\n"
-" trabalho usando hardlinks completos com ::"
-
-msgid " $ cp -al REPO REPOCLONE"
-msgstr " $ cp -al REPO REPOCLONE"
-
-msgid ""
-" This is the fastest way to clone, but it is not always safe. The\n"
-" operation is not atomic (making sure REPO is not modified during\n"
-" the operation is up to you) and you have to make sure your\n"
-" editor breaks hardlinks (Emacs and most Linux Kernel tools do\n"
-" so). Also, this is not compatible with certain extensions that\n"
-" place their metadata under the .hg directory, such as mq."
-msgstr ""
-" Este é o jeito mais rápido de clonar, mas não é sempre seguro. A\n"
-" operação não é atômica (garantir que REPO não seja modificado\n"
-" durante a operação é sua responsabilidade) e você deve ter\n"
-" certeza que seu editor quebre hardlinks (o Emacs e muitos\n"
-" utilitários do kernel Linux fazem isso). Além disso, esse modo de\n"
-" criar um clone não é compatível com certas extensões que colocam\n"
-" seus metadados sob o diretório hg, como a mq."
-
-msgid ""
-" Mercurial will update the working directory to the first applicable\n"
-" revision from this list:"
-msgstr ""
-" O Mercurial atualizará o diretório de trabalho para a primeira revisão\n"
-" aplicável da seguinte lista:"
-
-msgid ""
-" a) null if -U or the source repository has no changesets\n"
-" b) if -u . and the source repository is local, the first parent of\n"
-" the source repository's working directory\n"
-" c) the changeset specified with -u (if a branch name, this means the\n"
-" latest head of that branch)\n"
-" d) the changeset specified with -r\n"
-" e) the tipmost head specified with -b\n"
-" f) the tipmost head specified with the url#branch source syntax\n"
-" g) the tipmost head of the default branch\n"
-" h) tip"
-msgstr ""
-" a) null, se for passada a opção -U ou se o repositório de origem não\n"
-" tiver revisões\n"
-" b) o primeiro pai do diretório de trabalho do repositório de origem,\n"
-" se for passada a opção -u e o repositório de origem for local\n"
-" c) a revisão especificada por -u (se for um nome de ramo, é a última\n"
-" cabeça de tal ramo)\n"
-" d) a revisão especificada com -r\n"
-" e) a cabeça mais recente especificada com -b\n"
-" f) a cabeça mais recente especificada com a sintaxe de origem\n"
-" url#ramo\n"
-" g) a cabeça mais recente do ramo default\n"
-" h) a tip"
-
-msgid " - clone a remote repository to a new directory named hg/::"
-msgstr ""
-" - clona um repositório remoto para um novo diretório chamado hg/::"
-
-msgid " hg clone http://selenic.com/hg"
-msgstr " hg clone http://selenic.com/hg"
-
-msgid " - create a lightweight local clone::"
-msgstr " - cria um clone leve local::"
-
-msgid " hg clone project/ project-feature/"
-msgstr " hg clone project/ project-feature/"
-
-msgid ""
-" - clone from an absolute path on an ssh server (note double-slash)::"
-msgstr ""
-" - clona um caminho absoluto em um servidor ssh (note as barras\n"
-" duplicadas)::"
-
-msgid " hg clone ssh://user@server//home/projects/alpha/"
-msgstr " hg clone ssh://user@server//home/projects/alpha/"
+msgid " See :hg:`help urls` for valid source format details."
+msgstr " Veja :hg:`help urls` para formatos válidos da origem."
msgid ""
-" - do a high-speed clone over a LAN while checking out a\n"
-" specified version::"
+" 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"
+" Please see :hg:`help urls` for important details about ``ssh://`` URLs."
msgstr ""
-" - faz um clone em alta velocidade em uma LAN e obtém uma\n"
-" revisão específica::"
-
-msgid " hg clone --uncompressed http://server/repo -u 1.5"
-msgstr " hg clone --uncompressed http://server/repo -u 1.5"
-
-msgid ""
-" - create a repository without changesets after a particular revision::"
-msgstr ""
-" - cria um repositório sem revisões após uma revisão em particular::"
-
-msgid " hg clone -r 04e544 experimental/ good/"
-msgstr " hg clone -r 04e544 experimental/ good/"
-
-msgid " - clone (and track) a particular named branch::"
-msgstr " - clona (e rastreia) um ramo nomeado em particular::"
-
-msgid " hg clone http://selenic.com/hg#stable"
-msgstr " hg clone http://selenic.com/hg#stable"
-
-msgid " See :hg:`help urls` for details on specifying URLs."
-msgstr " Veja :hg:`help urls` para detalhes sobre a especificação de URLs."
+" É 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"
+" Por favor veja :hg:`help urls` para detalhes importantes sobre\n"
+" URLs ``ssh://`` ."
+
+msgid ""
+" A set of changesets (tags, or branch names) to pull may be specified\n"
+" by listing each changeset (tag, or branch name) with -r/--rev.\n"
+" If -r/--rev is used, the cloned repository will contain only a subset\n"
+" of the changesets of the source repository. Only the set of changesets\n"
+" defined by all -r/--rev options (including all their ancestors)\n"
+" will be pulled into the destination repository.\n"
+" No subsequent changesets (including subsequent tags) will be present\n"
+" in the destination."
+msgstr ""
+" Um conjunto de revisões (etiquetas, ou nomes de ramo) a serem trazidas\n"
+" pode ser especificado listando cada revisão (etiqueta, ou nome de\n"
+" ramo) com -r/--rev. Se -r/--rev for usado, o repositório clonado irá\n"
+" conter apenas um subconjunto das revisões do repositório de origem.\n"
+" Apenas o conjunto de revisões definidas por todas as opções -r/--rev\n"
+" (incluindo todos os seus ancestrais) será trazido para o repositório\n"
+" de destino. Nenhuma revisão subsequente (incluindo etiquetas\n"
+" subsequentes) estará presente no repositório."
+
+msgid ""
+" Using -r/--rev (or 'clone src#rev dest') implies --pull, even for\n"
+" local source repositories."
+msgstr ""
+" A opção -r/--rev (ou 'clone origem#revisão destino') implica --pull,\n"
+" mesmo em repositórios locais."
+
+msgid ""
+" For efficiency, hardlinks are used for cloning whenever the source\n"
+" and destination are on the same filesystem (note this applies only\n"
+" to the repository data, not to the working directory). Some\n"
+" filesystems, such as AFS, implement hardlinking incorrectly, but\n"
+" do not report errors. In these cases, use the --pull option to\n"
+" avoid hardlinking."
+msgstr ""
+" Por eficiência, hardlinks são usados para a clonagem sempre que a\n"
+" origem e o destino estiverem no mesmo sistema de arquivos (note\n"
+" que isso se aplica apenas aos dados do repositório, e não aos\n"
+" arquivos da cópia de trabalho). Alguns sistemas de arquivo, como\n"
+" o AFS, implementam hardlinks incorretamente, mas não informam\n"
+" erros. Nesses casos, use a opção --pull para evitar o uso de\n"
+" hardlinks."
+
+msgid ""
+" In some cases, you can clone repositories and the working directory\n"
+" using full hardlinks with ::"
+msgstr ""
+" Em alguns casos, você pode clonar repositórios e o diretório de\n"
+" trabalho usando hardlinks completos com ::"
+
+msgid " $ cp -al REPO REPOCLONE"
+msgstr " $ cp -al REPO REPOCLONE"
+
+msgid ""
+" This is the fastest way to clone, but it is not always safe. The\n"
+" operation is not atomic (making sure REPO is not modified during\n"
+" the operation is up to you) and you have to make sure your editor\n"
+" breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,\n"
+" this is not compatible with certain extensions that place their\n"
+" metadata under the .hg directory, such as mq."
+msgstr ""
+" Este é o jeito mais rápido de clonar, mas não é sempre seguro. A\n"
+" operação não é atômica (garantir que REPO não seja modificado\n"
+" durante a operação é sua responsabilidade) e você deve ter\n"
+" certeza que seu editor quebre hardlinks (o Emacs e muitos\n"
+" utilitários do kernel Linux fazem isso). Além disso, esse modo de\n"
+" criar um clone não é compatível com certas extensões que colocam\n"
+" seus metadados sob o diretório hg, como a mq."
+
+msgid ""
+" Mercurial will update the working directory to the first applicable\n"
+" revision from this list:"
+msgstr ""
+" O Mercurial atualizará o diretório de trabalho para a primeira revisão\n"
+" aplicável da seguinte lista:"
+
+msgid ""
+" a) null if -U or the source repository has no changesets\n"
+" b) if -u . and the source repository is local, the first parent of\n"
+" the source repository's working directory\n"
+" c) the changeset specified with -u (if a branch name, this means the\n"
+" latest head of that branch)\n"
+" d) the changeset specified with -r\n"
+" e) the tipmost head specified with -b\n"
+" f) the tipmost head specified with the url#branch source syntax\n"
+" g) the tipmost head of the default branch\n"
+" h) tip"
+msgstr ""
+" a) null, se for passada a opção -U ou se o repositório de origem não\n"
+" tiver revisões\n"
+" b) o primeiro pai do diretório de trabalho do repositório de origem,\n"
+" se for passada a opção -u e o repositório de origem for local\n"
+" c) a revisão especificada por -u (se for um nome de ramo, é a última\n"
+" cabeça de tal ramo)\n"
+" d) a revisão especificada com -r\n"
+" e) a cabeça mais recente especificada com -b\n"
+" f) a cabeça mais recente especificada com a sintaxe de origem\n"
+" url#ramo\n"
+" g) a cabeça mais recente do ramo default\n"
+" h) a tip"
msgid "cannot specify both --noupdate and --updaterev"
msgstr "não se pode especificar ao mesmo tempo ---noupdate e --updaterev"
msgid "mark new/missing files as added/removed before committing"
-msgstr ""
-"marca arquivos novos/ausentes como adicionados/removidos antes da "
-"consolidação"
+msgstr "marca arquivos novos/ausentes como adicionados/removidos antes da consolidação"
msgid "mark a branch as closed, hiding it from the branch list"
msgstr "marca um ramo como fechado, escondendo-o da lista de ramos"
-msgid "amend the parent of the working dir"
-msgstr "emenda o pai do diretório de trabalho"
-
msgid "commit the specified files or all outstanding changes"
msgstr "consolida os arquivos pedidos ou todas as mudanças por gravar"
@@ -10912,38 +8895,6 @@ msgstr ""
" dessa mensagem em ``.hg/last-message.txt``."
msgid ""
-" The --amend flag can be used to amend the parent of the\n"
-" working directory with a new commit that contains the changes\n"
-" in the parent in addition to those currently reported by :hg:`status`,\n"
-" if there are any. The old commit is stored in a backup bundle in\n"
-" ``.hg/strip-backup`` (see :hg:`help bundle` and :hg:`help unbundle`\n"
-" on how to restore it)."
-msgstr ""
-" A opção --amend pode ser usada para emendar o pai do diretório\n"
-" de trabalho com uma nova revisão que contenha as mudanças no pai\n"
-" somadas às mudanças atualmente informadas por :hg:`status`, se\n"
-" houver alguma. A revisão antiga é armazenada em um bundle de\n"
-" backup em ``.hg/strip-backup`` (para restaurar essa revisão, veja\n"
-" :hg:`help bundle` e :hg:`help unbundle`)."
-
-msgid ""
-" Message, user and date are taken from the amended commit unless\n"
-" specified. When a message isn't specified on the command line,\n"
-" the editor will open with the message of the amended commit."
-msgstr ""
-" Se não forem especificados, o usuário, mensagem e data são\n"
-" tomados da revisão emendada. Se uma mensagem não for especificada\n"
-" na linha de comando, o editor será aberto com a mensagem original\n"
-" da revisão emendada."
-
-msgid ""
-" It is not possible to amend public changesets (see :hg:`help phases`)\n"
-" or changesets that have children."
-msgstr ""
-" Não é possível emendar revisões públicas (veja :hg:`help phases`)\n"
-" ou revisões que contenham filhas."
-
-msgid ""
" Returns 0 on success, 1 if nothing changed.\n"
" "
msgstr ""
@@ -10953,28 +8904,13 @@ msgstr ""
msgid "can only close branch heads"
msgstr "só pode fechar cabeças de ramo"
-msgid "cannot amend recursively"
-msgstr "não é possível emendar recursivamente"
-
-msgid "cannot amend public changesets"
-msgstr "não é possível emendar revisões públicas"
-
-msgid "cannot amend merge changesets"
-msgstr "não é possível emendar revisões de mesclagem"
-
-msgid "cannot amend while merging"
-msgstr "não é possível emendar durante uma mesclagem"
-
-msgid "cannot amend changeset with children"
-msgstr "não é possível emendar revisões com filhas"
-
-msgid "nothing changed\n"
-msgstr "nada mudou\n"
-
#, python-format
msgid "nothing changed (%d missing files, see 'hg status')\n"
msgstr "nada mudou (%d arquivos faltando, veja 'hg status')\n"
+msgid "nothing changed\n"
+msgstr "nada mudou\n"
+
msgid "created new head\n"
msgstr "nova cabeça criada\n"
@@ -11052,9 +8988,7 @@ msgid "[OPTION]... [TEXT]"
msgstr "[OPÇÃO]... [TEXTO]"
msgid "builds a repo with a given DAG from scratch in the current empty repo"
-msgstr ""
-"constrói um repositório do zero com um DAG dado em um repositório vazio "
-"existente"
+msgstr "constrói um repositório do zero com um DAG dado em um repositório vazio existente"
msgid ""
" The description of the DAG is read from stdin if not given on the\n"
@@ -11185,8 +9119,7 @@ msgid "[OPTION]... [FILE [REV]...]"
msgstr "[OPÇÃO]... [ARQUIVO [REVISÃO]...]"
msgid "format the changelog or an index DAG as a concise textual description"
-msgstr ""
-"formata o changelog ou um índice DAG como uma representação textual concisa"
+msgstr "formata o changelog ou um índice DAG como uma representação textual concisa"
msgid ""
" If you pass a revlog index, the revlog's DAG is emitted. If you list\n"
@@ -11299,15 +9232,15 @@ msgid "test Mercurial installation"
msgstr "testa a instalação do Mercurial"
#, python-format
-msgid "checking encoding (%s)...\n"
-msgstr "verificando codificação (%s)...\n"
+msgid "Checking encoding (%s)...\n"
+msgstr "Verificando codificação (%s)...\n"
msgid " (check that your locale is properly set)\n"
msgstr " (verifique se seu locale está configurado propriamente)\n"
#, python-format
-msgid "checking installed modules (%s)...\n"
-msgstr "verificando módulos instalados (%s)...\n"
+msgid "Checking installed modules (%s)...\n"
+msgstr "Verificando módulos instalados (%s)...\n"
msgid " One or more extensions could not be found"
msgstr " Uma ou mais extensões não puderam ser encontradas"
@@ -11315,37 +9248,33 @@ msgstr " Uma ou mais extensões não puderam ser encontradas"
msgid " (check that you compiled the extensions)\n"
msgstr " (verifique se você compilou as extensões)\n"
-#, python-format
-msgid "checking templates (%s)...\n"
-msgstr "verificando modelos (%s)...\n"
+msgid "Checking templates...\n"
+msgstr "Verificando modelos...\n"
msgid " (templates seem to have been installed incorrectly)\n"
msgstr " (modelos parecem ter sido instalados incorretamente)\n"
-msgid "checking commit editor...\n"
-msgstr "verificando editor para consolidação...\n"
+msgid "Checking commit editor...\n"
+msgstr "Verificando editor para consolidação...\n"
msgid " No commit editor set and can't find vi in PATH\n"
-msgstr ""
-" Nenhum editor para consolidação configurado, e não foi possível encontrar "
-"'vi' no PATH\n"
+msgstr " Nenhum editor para consolidação configurado, e não foi possível encontrar 'vi' no PATH\n"
msgid " (specify a commit editor in your configuration file)\n"
-msgstr ""
-" (especifique um editor para consolidação em seu arquivo de configuração)\n"
+msgstr " (especifique um editor para consolidação em seu arquivo de configuração)\n"
#, python-format
msgid " Can't find editor '%s' in PATH\n"
msgstr " Não é possível localizar editor '%s' no PATH\n"
-msgid "checking username...\n"
-msgstr "verificando nome de usuário...\n"
+msgid "Checking username...\n"
+msgstr "Verificando nome de usuário...\n"
msgid " (specify a username in your configuration file)\n"
msgstr " (especifique um nome de usuário em seu arquivo de configuração)\n"
-msgid "no problems detected\n"
-msgstr "nenhum problema detectado\n"
+msgid "No problems detected\n"
+msgstr "Nenhum problema detectado\n"
#, python-format
msgid "%s problems detected, please check your install!\n"
@@ -11358,8 +9287,8 @@ msgid "test whether node ids are known to a repo"
msgstr "testa se os ids dos nós são conhecidos em um repositório"
msgid ""
-" Every ID must be a full-length hex node id string. Returns a list of 0s\n"
-" and 1s indicating unknown/known.\n"
+" Every ID must be a full-length hex node id string. Returns a list of 0s and 1s\n"
+" indicating unknown/known.\n"
" "
msgstr ""
" Todo ID deve ser uma string hexadecimal completa.\n"
@@ -11367,12 +9296,6 @@ msgstr ""
" desconhecidos e conhecidos.\n"
" "
-msgid "[OBSOLETED [REPLACEMENT] [REPL... ]"
-msgstr "[OBSOLETA [SUBSTITUTA] [SUBSTITUTA... ]"
-
-msgid "create arbitrary obsolete marker"
-msgstr "cria uma marcação de obsolescência arbitrária"
-
msgid "REPO NAMESPACE [KEY OLD NEW]"
msgstr "REPOSITÓRIO NAMESPACE [CHAVE ANTIGO NOVO]"
@@ -11392,25 +9315,6 @@ msgstr ""
" Informa sobre sucesso ou falha.\n"
" "
-msgid "A B"
-msgstr "A B"
-
-#, python-format
-msgid "a: %s\n"
-msgstr "a: %s\n"
-
-#, python-format
-msgid "b: %s\n"
-msgstr "b: %s\n"
-
-#, python-format
-msgid "depth(a): %d depth(b): %d\n"
-msgstr "profundidade(a): %d profundidade(b): %d\n"
-
-#, python-format
-msgid "delta: %d hdist: %d distance: %d relation: %s\n"
-msgstr "delta: %d hdist: %d distância: %d relação: %s\n"
-
msgid "revision to rebuild to"
msgstr "revisão para a qual reconstruir"
@@ -11449,15 +9353,6 @@ msgstr "mostra dados e estatísticas sobre um revlog"
msgid "parse and apply a revision specification"
msgstr "interpreta e aplica uma especificação de revisões"
-msgid ""
-" Use --verbose to print the parsed tree before and after aliases\n"
-" expansion.\n"
-" "
-msgstr ""
-" Use --verbose para imprimir a árvore decodificada antes e depois\n"
-" da expansão de apelidos.\n"
-" "
-
msgid "REV1 [REV2]"
msgstr "REV1 [REV2]"
@@ -11544,59 +9439,14 @@ msgstr ""
" Use a opção -g/--git para gerar diffs no formato estendido\n"
" \"git diff\". Leia :hg:`help diffs` para mais informações."
-msgid ""
-" - compare a file in the current working directory to its parent::"
-msgstr ""
-" - compara um arquivo no diretório de trabalho atual com seu pai::"
-
-msgid " hg diff foo.c"
-msgstr " hg diff foo.c"
-
-msgid ""
-" - compare two historical versions of a directory, with rename info::"
-msgstr ""
-" - compara duas versões históricas de um diretório, com\n"
-" informações de renomeação::"
-
-msgid " hg diff --git -r 1.0:1.2 lib/"
-msgstr " hg diff --git -r 1.0:1.2 lib/"
-
-msgid " - get change stats relative to the last change on some date::"
-msgstr ""
-" - obtém estatísticas de modificações relativas à última\n"
-" mudança em alguma data::"
-
-msgid " hg diff --stat -r \"date('may 2')\""
-msgstr " hg diff --stat -r \"date('may 2')\""
-
-msgid " - diff all newly-added files that contain a keyword::"
-msgstr ""
-" - faz diff de todos os arquivos recém-adicionados que\n"
-" contenham uma palavra chave::"
-
-msgid " hg diff \"set:added() and grep(GNU)\""
-msgstr " hg diff \"set:added() and grep(GNU)\""
-
-msgid " - compare a revision and its parents::"
-msgstr " - compara uma revisão com seus pais::"
-
-msgid ""
-" hg diff -c 9353 # compare against first parent\n"
-" hg diff -r 9353^:9353 # same using revset syntax\n"
-" hg diff -r 9353^2:9353 # compare against the second parent"
-msgstr ""
-" hg diff -c 9353 # compara com o primeiro pai\n"
-" hg diff -r 9353^:9353 # o mesmo, usando sintaxe revset\n"
-" hg diff -r 9353^2:9353 # compara com o segundo pai"
-
msgid "diff against the second parent"
msgstr "faz o diff com o segundo pai"
msgid "revisions to export"
msgstr "revisões a serem exportadas"
-msgid "[OPTION]... [-o OUTFILESPEC] [-r] REV..."
-msgstr "[OPÇÃO]... [-o PADRÃOARQSAÃDA] [-r] REV..."
+msgid "[OPTION]... [-o OUTFILESPEC] REV..."
+msgstr "[OPÇÃO]... [-o PADRÃOARQSAÃDA] REV..."
msgid "dump the header and diffs for one or more changesets"
msgstr "exibe o cabeçalho e diffs para uma ou mais revisões"
@@ -11641,7 +9491,6 @@ msgid ""
" :``%R``: changeset revision number\n"
" :``%b``: basename of the exporting repository\n"
" :``%h``: short-form changeset hash (12 hexadecimal digits)\n"
-" :``%m``: first line of the commit message (only alphanumeric characters)\n"
" :``%n``: zero-padded sequence number, starting at 1\n"
" :``%r``: zero-padded changeset revision number"
msgstr ""
@@ -11651,7 +9500,6 @@ msgstr ""
" :``%R``: número de ordem da revisão\n"
" :``%b``: nome base do repositório onde o export é realizado\n"
" :``%h``: hash de forma curta da revisão (12 bytes hexadecimais)\n"
-" :``%m``: primeira linha da mensagem de consolidação (apenas caracteres alfanuméricos)\n"
" :``%n``: número sequencial completado com zeros, começando em 1\n"
" :``%r``: número de ordem da revisão completado com zeros"
@@ -11678,36 +9526,6 @@ msgstr ""
" Com a opção --switch-parent, o diff será feito em relação ao\n"
" segundo pai. Isso pode ser útil para avaliar uma mesclagem."
-msgid ""
-" - use export and import to transplant a bugfix to the current\n"
-" branch::"
-msgstr ""
-" - usa export e import para transplantar uma correção para o ramo\n"
-" atual::"
-
-msgid " hg export -r 9353 | hg import -"
-msgstr " hg export -r 9353 | hg import -"
-
-msgid ""
-" - export all the changesets between two revisions to a file with\n"
-" rename information::"
-msgstr ""
-" - exporta todas as revisões entre duas revisões específicas para\n"
-" um arquivo com informações de renomeação::"
-
-msgid " hg export --git -r 123:150 > changes.txt"
-msgstr " hg export --git -r 123:150 > changes.txt"
-
-msgid ""
-" - split outgoing changes into a series of patches with\n"
-" descriptive names::"
-msgstr ""
-" - separa mudanças a serem enviadas em uma série de patches com\n"
-" nomes descritivos::"
-
-msgid " hg export -r \"outgoing()\" -o \"%n-%m.patch\""
-msgstr " hg export -r \"outgoing()\" -o \"%n-%m.patch\""
-
msgid "export requires at least one changeset"
msgstr "export exige ao menos uma revisão"
@@ -11736,164 +9554,18 @@ msgstr ""
" histórico do projeto, nem os apaga do diretório de trabalho."
msgid " To undo a forget before the next commit, see :hg:`add`."
-msgstr ""
-" Para desfazer um forget antes da próxima consolidação, veja :hg:`add`."
-
-msgid " - forget newly-added binary files::"
-msgstr " - esquece arquivos binários recém adicionados::"
-
-msgid " hg forget \"set:added() and binary()\""
-msgstr " hg forget \"set:added() and binary()\""
-
-msgid " - forget files that would be excluded by .hgignore::"
-msgstr " - esquece arquivos que seriam excluídos por .hgignore::"
-
-msgid " hg forget \"set:hgignore()\""
-msgstr " hg forget \"set:hgignore()\""
-
-msgid "revisions to graft"
-msgstr "revisões a serem enxertadas"
-
-msgid "resume interrupted graft"
-msgstr "continua um enxerto interrompido"
-
-msgid "append graft info to log message"
-msgstr "anexa informações de enxerto à mensagem de log"
-
-msgid "record the current date as commit date"
-msgstr "grava a data atual como data da consolidação"
-
-msgid "record the current user as committer"
-msgstr "grava o usuário atual como autor da consolidação"
-
-msgid "[OPTION]... [-r] REV..."
-msgstr "[OPÇÃO]... [-r] REV..."
-
-msgid "copy changes from other branches onto the current branch"
-msgstr "copia mudanças de outros ramos para o ramo atual"
-
-msgid ""
-" This command uses Mercurial's merge logic to copy individual\n"
-" changes from other branches without merging branches in the\n"
-" history graph. This is sometimes known as 'backporting' or\n"
-" 'cherry-picking'. By default, graft will copy user, date, and\n"
-" description from the source changesets."
-msgstr ""
-" Este comando usa a lógica de mesclagens do Mercurial para\n"
-" copiar mudanças individuais de outros ramos sem mesclar\n"
-" os ramos no grafo de histórico. Isto é por vezes chamado de\n"
-" 'backporting' ou 'cherry-picking'. Por padrão, graft\n"
-" copiará o usuário, data e descrição das revisões de\n"
-" origem."
-
-msgid ""
-" Changesets that are ancestors of the current revision, that have\n"
-" already been grafted, or that are merges will be skipped."
-msgstr ""
-" Serão omitidas revisões ancestrais da revisão atual, já\n"
-" enxertadas ou mesclagens."
-
-msgid " (grafted from CHANGESETHASH)"
-msgstr " (grafted from CHANGESETHASH)"
-
-msgid ""
-" If a graft merge results in conflicts, the graft process is\n"
-" interrupted so that the current merge can be manually resolved.\n"
-" Once all conflicts are addressed, the graft process can be\n"
-" continued with the -c/--continue option."
-msgstr ""
-" Se a mesclagem de enxerto resultar em conflitos, o processo de\n"
-" enxerto será interrompido para que a mesclagem atual possa ser\n"
-" resolvida manualmente. Uma vez que todos os conflitos estejam\n"
-" resolvidos, o processo de enxerto pode ser retomado usando a\n"
-" opção -c/--continue."
-
-msgid ""
-" .. note::\n"
-" The -c/--continue option does not reapply earlier options."
-msgstr ""
-" .. note::\n"
-" A opção -c/--continue não reaplica opções anteriores."
-
-msgid ""
-" - copy a single change to the stable branch and edit its description::"
-msgstr ""
-" - copia uma única mudança para o ramo stable e edita sua descrição::"
-
-msgid ""
-" hg update stable\n"
-" hg graft --edit 9393"
-msgstr ""
-" hg update stable\n"
-" hg graft --edit 9393"
-
-msgid ""
-" - graft a range of changesets with one exception, updating dates::"
-msgstr ""
-" - enxerta uma faixa de revisões com uma exceção, atualizando as "
-"datas::"
+msgstr " Para desfazer um forget antes da próxima consolidação, veja :hg:`add`."
-msgid " hg graft -D \"2085::2093 and not 2091\""
-msgstr " hg graft -D \"2085::2093 and not 2091\""
-
-msgid " - continue a graft after resolving conflicts::"
-msgstr " - continua um processo de enxerto após resolver conflitos::"
-
-msgid " hg graft -c"
-msgstr " hg graft -c"
-
-msgid " - show the source of a grafted changeset::"
-msgstr " - mostra a origem de uma revisão enxertada::"
-
-msgid " hg log --debug -r tip"
-msgstr " hg log --debug -r tip"
-
-msgid ""
-" Returns 0 on successful completion.\n"
-" "
-msgstr ""
-" Devolve 0 para indicar sucesso.\n"
-" "
-
-msgid "can't specify --continue and revisions"
-msgstr "não é possível especificar --continue e revisões"
-
-msgid "no graft state found, can't continue"
-msgstr "estado de graft não encontrado, não é possível continuar"
-
-#, python-format
-msgid "skipping ungraftable merge revision %s\n"
-msgstr "omitindo revisão de mesclagem %s que não pode ser enxertada\n"
-
-#, python-format
-msgid "skipping ancestor revision %s\n"
-msgstr "omitindo revisão ancestral %s\n"
-
-#, python-format
-msgid "skipping already grafted revision %s\n"
-msgstr "omitindo revisão %s já enxertada\n"
-
-#, python-format
-msgid "skipping already grafted revision %s (same origin %d)\n"
-msgstr "omitindo revisão %s já enxertada (mesma origem %d)\n"
-
-#, python-format
-msgid "skipping already grafted revision %s (was grafted from %d)\n"
-msgstr "omitindo revisão %s já enxertada (foi enxertada de %d)\n"
+msgid "no files specified"
+msgstr "nenhum arquivo especificado"
#, python-format
-msgid "grafting revision %s\n"
-msgstr "enxertando revisão %s\n"
-
-msgid "unresolved conflicts, can't continue"
-msgstr "conflitos não resolvidos, não é possível continuar"
-
-msgid "use hg resolve and hg graft --continue"
-msgstr "use hg resolve e hg graft --continue"
+msgid "not removing %s: file is already untracked\n"
+msgstr "%s não removido: arquivo já não é rastreado\n"
#, python-format
-msgid "graft for revision %s is empty\n"
-msgstr "o enxerto para a revisão %s é vazio\n"
+msgid "removing %s\n"
+msgstr "removendo %s\n"
msgid "end fields with NUL"
msgstr "termina campos com NUL"
@@ -11901,6 +9573,9 @@ msgstr "termina campos com NUL"
msgid "print all revisions that match"
msgstr "imprime todas as revisões que casarem"
+msgid "follow changeset history, or file history across copies and renames"
+msgstr "acompanha histórico de revisões, ou histórico de arquivo através de cópias e renomeações"
+
msgid "ignore case when matching"
msgstr "ignora maiúsculas/minúsculas ao casar"
@@ -11941,12 +9616,11 @@ msgid ""
" use the --all flag."
msgstr ""
" Por padrão, grep imprime uma saída apenas para a primeira revisão\n"
-" de um arquivo no qual ele encontra uma correspondência.\n"
-" Para fazê-lo imprimir todas as revisões que contenham uma\n"
-" mudança de correspondência (\"-\" para uma correspondência\n"
-" que se torne uma não correspondência, ou \"+\" para uma não\n"
-" correspondência que se torne uma correspondência), use a\n"
-" opção --all ."
+" de um arquivo no qual ele encontra um casamento. Para fazê-lo\n"
+" imprimir todas as revisões que contenham uma mudança no casamento\n"
+" (\"-\" para um casamento que se torna um não-casamento, ou \"+\"\n"
+" para um não-casamento que se torna um casamento), use a opção\n"
+" --all ."
msgid ""
" Returns 0 if a match is found, 1 otherwise.\n"
@@ -11974,8 +9648,8 @@ msgstr "mostra apenas cabeças de ramo ativas (OBSOLETA)"
msgid "show normal and closed branch heads"
msgstr "mostra cabeças de ramo normais e fechadas"
-msgid "[-ct] [-r STARTREV] [REV]..."
-msgstr "[-ct] [-r REVINICIAL] [REV]..."
+msgid "[-ac] [-r STARTREV] [REV]..."
+msgstr "[-ac] [-r REVINICIAL] [REV]..."
msgid "show current repository heads or show branch heads"
msgstr "mostra as cabeças atuais do repositório ou cabeças de ramo"
@@ -12049,17 +9723,13 @@ msgstr "mostra apenas a ajuda para extensões"
msgid "show only help for commands"
msgstr "mostra apenas a ajuda para comandos"
-msgid "show topics matching keyword"
-msgstr "mostra os tópicos que correspondem à palavra chave"
-
msgid "[-ec] [TOPIC]"
msgstr "[-ec] [TÓPICO]"
msgid "show help for a given topic or a help overview"
msgstr "exibe o texto de ajuda geral ou de um tópico pedido"
-msgid ""
-" With no arguments, print a list of commands with short help messages."
+msgid " With no arguments, print a list of commands with short help messages."
msgstr ""
" Sem argumentos, imprime uma lista de comandos com textos curtos\n"
" de ajuda."
@@ -12078,6 +9748,30 @@ msgstr ""
" Devolve 0 para indicar sucesso.\n"
" "
+msgid "global options:"
+msgstr "opções globais:"
+
+msgid "use \"hg help\" for the full list of commands"
+msgstr "use \"hg help\" para a lista completa de comandos"
+
+msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
+msgstr "use \"hg help\" para a lista completa de comandos ou \"hg -v\" para detalhes"
+
+#, python-format
+msgid "use \"hg help %s\" to show the full help text"
+msgstr "use \"hg help %s\" para mostrar o texto completo de ajuda"
+
+#, python-format
+msgid "use \"hg -v help%s\" to show builtin aliases and global options"
+msgstr "use \"hg -v help%s\" para mostrar apelidos pré-definidos de comandos e opções globais"
+
+#, python-format
+msgid "use \"hg -v help %s\" to show global options"
+msgstr "use \"hg -v help %s\" para mostrar opções globais"
+
+msgid "list of commands:"
+msgstr "lista de comandos:"
+
#, python-format
msgid ""
"\n"
@@ -12106,66 +9800,23 @@ msgid "%s"
msgstr "%s"
#, python-format
-msgid "use \"hg help -e %s\" to show help for the %s extension"
-msgstr "use \"hg help -e %s\" para mostrar a ajuda para a extensão %s"
-
-msgid "options:"
-msgstr "opções:"
-
-msgid "global options:"
-msgstr "opções globais:"
-
-#, python-format
-msgid ""
-"\n"
-"use \"hg help %s\" to show the full help text\n"
-msgstr ""
-"\n"
-"use \"hg help %s\" para mostrar o texto completo de ajuda\n"
-
-#, python-format
msgid ""
"\n"
-"use \"hg -v help %s\" to show more info\n"
+"use \"hg -v help %s\" to show verbose help\n"
msgstr ""
"\n"
-"use \"hg -v help %s\" para mostrar mais informações\n"
+"use \"hg -v help %s\" para mostrar ajuda verbosa\n"
-msgid "basic commands:"
-msgstr "comandos básicos:"
+msgid "options:\n"
+msgstr "opções:\n"
-msgid "list of commands:"
-msgstr "lista de comandos:"
+#, python-format
+msgid "use \"hg help -e %s\" to show help for the %s extension"
+msgstr "use \"hg help -e %s\" para mostrar a ajuda para a extensão %s"
msgid "no commands defined\n"
msgstr "nenhum comando definido\n"
-msgid "enabled extensions:"
-msgstr "extensões habilitadas:"
-
-msgid ""
-"\n"
-"additional help topics:"
-msgstr ""
-"\n"
-"tópicos adicionais de ajuda:"
-
-msgid "use \"hg help\" for the full list of commands"
-msgstr "use \"hg help\" para a lista completa de comandos"
-
-msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
-msgstr "use \"hg help\" para a lista completa de comandos ou \"hg -v\" para detalhes"
-
-#, python-format
-msgid "use \"hg help %s\" to show the full help text"
-msgstr "use \"hg help %s\" para mostrar o texto completo de ajuda"
-
-#, python-format
-msgid "use \"hg -v help%s\" to show builtin aliases and global options"
-msgstr ""
-"use \"hg -v help%s\" para mostrar apelidos pré-definidos de comandos e "
-"opções globais"
-
#, python-format
msgid ""
"\n"
@@ -12182,22 +9833,41 @@ msgid "%s extension - %s"
msgstr "extensão %s - %s"
msgid "use \"hg help extensions\" for information on enabling extensions\n"
-msgstr ""
-"use \"hg help extensions\" para informações sobre como habilitar extensões\n"
+msgstr "use \"hg help extensions\" para informações sobre como habilitar extensões\n"
#, python-format
msgid "'%s' is provided by the following extension:"
msgstr "'%s' é fornecido pela seguinte extensão:"
-msgid "Topics"
-msgstr "Tópicos"
-
-msgid "Extension Commands"
-msgstr "Comandos de Extensões"
-
msgid "Mercurial Distributed SCM\n"
msgstr "Sistema de controle de versão distribuído Mercurial\n"
+msgid "basic commands:"
+msgstr "comandos básicos:"
+
+msgid "enabled extensions:"
+msgstr "extensões habilitadas:"
+
+msgid "VALUE"
+msgstr "VALOR"
+
+msgid "DEPRECATED"
+msgstr "OBSOLETO"
+
+msgid ""
+"\n"
+"[+] marked option can be specified multiple times"
+msgstr ""
+"\n"
+"opções marcadas com [+] podem ser especificadas múltiplas vezes"
+
+msgid ""
+"\n"
+"additional help topics:"
+msgstr ""
+"\n"
+"tópicos adicionais de ajuda:"
+
msgid "identify the specified revision"
msgstr "identifica a revisão especificada"
@@ -12249,34 +9919,11 @@ msgstr ""
" arquivo bundle do Mercurial faz com que a busca opere em tal\n"
" repositório ou bundle."
-msgid " - generate a build identifier for the working directory::"
-msgstr " - gera um identificador de build para o diretório de trabalho::"
-
-msgid " hg id --id > build-id.dat"
-msgstr " hg id --id > build-id.dat"
-
-msgid " - find the revision corresponding to a tag::"
-msgstr " - encontra a revisão que corresponde a uma etiqueta::"
-
-msgid " hg id -n -r 1.3"
-msgstr " hg id -n -r 1.3"
-
-msgid " - check the most recent revision of a remote repository::"
-msgstr " - verifica a revisão mais recente de um repositório remoto::"
-
-msgid " hg id -r tip http://selenic.com/hg/"
-msgstr " hg id -r tip http://selenic.com/hg/"
-
msgid "can't query remote revision number, branch, or tags"
-msgstr ""
-"não é possível consultar o número de revisão, ramo ou etiquetas remotos"
+msgstr "não é possível consultar o número de revisão, ramo ou etiquetas remotos"
-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"
+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"
msgid "PATH"
msgstr "CAMINHO"
@@ -12372,10 +10019,10 @@ msgstr ""
msgid ""
" With -s/--similarity, hg will attempt to discover renames and\n"
-" copies in the patch in the same way as :hg:`addremove`."
+" copies in the patch in the same way as 'addremove'."
msgstr ""
" Com -s/--similarity, hg irá tentar determinar renomeações e\n"
-" cópias no patch do mesmo modo que :hg:`addremove`."
+" cópias no patch do mesmo modo que o comando 'addremove'."
msgid ""
" To read a patch from standard input, use \"-\" as the patch name. If\n"
@@ -12388,39 +10035,6 @@ msgstr ""
" para -d/--date.\n"
" "
-msgid " - import a traditional patch from a website and detect renames::"
-msgstr ""
-" - importa um patch tradicional de um servidor web e detecta\n"
-" renomeações::"
-
-msgid " hg import -s 80 http://example.com/bugfix.patch"
-msgstr " hg import -s 80 http://example.com/bugfix.patch"
-
-msgid " - import a changeset from an hgweb server::"
-msgstr " - importa uma revisão de um servidor hgweb::"
-
-msgid " hg import http://www.selenic.com/hg/rev/5ca8c111e9aa"
-msgstr " hg import http://www.selenic.com/hg/rev/5ca8c111e9aa"
-
-msgid " - import all the patches in an Unix-style mbox::"
-msgstr " - importa todos os patches em uma mbox estilo Unix::"
-
-msgid " hg import incoming-patches.mbox"
-msgstr " hg import incoming-patches.mbox"
-
-msgid ""
-" - attempt to exactly restore an exported changeset (not always\n"
-" possible)::"
-msgstr ""
-" - tenta restaurar com exatidão uma revisão exportada (nem sempre\n"
-" possível)::"
-
-msgid " hg import --exact proposed-fix.patch"
-msgstr " hg import --exact proposed-fix.patch"
-
-msgid "need at least one patch to import"
-msgstr "é necessário ao menos um nome de patch para importar"
-
msgid "cannot use --no-commit with --bypass"
msgstr "não se pode usar --no-commit com --bypass"
@@ -12430,23 +10044,21 @@ msgstr "não se pode usar --similarity com --bypass"
msgid "patch is damaged or loses information"
msgstr "o patch está danificado ou perde informação"
-msgid "applied to working directory"
-msgstr "aplicado no diretório de trabalho"
+msgid "to working directory"
+msgstr "para o diretório de trabalho"
msgid "not a Mercurial patch"
msgstr "não é um patch do Mercurial"
-#. i18n: refers to a short changeset id
-#, python-format
-msgid "created %s"
-msgstr "revisão %s criada"
-
msgid "applying patch from stdin\n"
msgstr "aplicando patch da entrada padrão\n"
#, python-format
-msgid "%s: no diffs found"
-msgstr "%s: nenhum diff encontrado"
+msgid "applied %s\n"
+msgstr "aplicado %s\n"
+
+msgid "no diffs found"
+msgstr "nenhum diff encontrado"
msgid "run even if remote repository is unrelated"
msgstr "execute mesmo se o repositório remoto não for relacionado"
@@ -12580,6 +10192,42 @@ msgstr ""
" \"xargs\". Isso irá evitar que \"xargs\" trate nomes de arquivo\n"
" contendo espaços como múltiplos nomes de arquivo."
+msgid "only follow the first parent of merge changesets"
+msgstr "acompanha apenas o primeiro pai de revisões de mesclagem"
+
+msgid "show revisions matching date spec"
+msgstr "mostra revisões que casem com a especificação de data"
+
+msgid "show copied files"
+msgstr "mostra arquivos copiados"
+
+msgid "do case-insensitive search for a given text"
+msgstr "faz uma busca insensível a maiúsculas / minúsculas por um texto dado"
+
+msgid "include revisions where files were removed"
+msgstr "inclui revisões nas quais arquivos foram removidos"
+
+msgid "show only merges"
+msgstr "mostra apenas mesclagens"
+
+msgid "revisions committed by user"
+msgstr "revisões de autoria do usuário"
+
+msgid "show only changesets within the given named branch (DEPRECATED)"
+msgstr "mostra apenas revisões dentro do ramo nomeado especificado (OBSOLETA)"
+
+msgid "show changesets within the given named branch"
+msgstr "mostra apenas revisões dentro do ramo nomeado especificado"
+
+msgid "do not display revision or any of its ancestors"
+msgstr "não exibe revisão ou qualquer de seus ancestrais"
+
+msgid "show hidden changesets"
+msgstr "exibe revisões ocultas"
+
+msgid "[OPTION]... [FILE]"
+msgstr "[OPÇÃO]... [ARQUIVO]"
+
msgid "show revision history of entire repository or files"
msgstr "mostra o histórico de revisões do repositório ou de arquivos"
@@ -12591,25 +10239,30 @@ msgstr ""
" projeto como um todo."
msgid ""
-" 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."
-msgstr ""
-" Se um intervalo de revisões não for pedido, o padrão é ``tip:0``,\n"
-" a não ser que --follow seja pedido; nesse caso, o pai do\n"
-" diretório de trabalho será usado como revisão inicial."
-
-msgid ""
" File history is shown without following rename or copy history of\n"
" files. Use -f/--follow with a filename to follow history across\n"
" renames and copies. --follow without a filename will only show\n"
-" ancestors or descendants of the starting revision."
+" ancestors or descendants of the starting revision. --follow-first\n"
+" only follows the first parent of merge revisions."
msgstr ""
" O histórico de arquivos é mostrado sem que informações de cópia e\n"
" renomeação sejam seguidas. Use -f/--follow para seguir o\n"
" histórico através de renomeações e cópias. --follow sem um nome\n"
" de arquivo irá mostrar apenas ancestrais ou descendentes da\n"
-" revisão de início."
+" revisão de início. --follow-first segue apenas o primeiro pai em\n"
+" revisões de mesclagem."
+
+msgid ""
+" 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."
+msgstr ""
+" Se um intervalo de revisões não for pedido, o padrão é ``tip:0``,\n"
+" a não ser que --follow seja pedido; nesse caso, o pai do\n"
+" diretório de trabalho será usado como revisão inicial. Você\n"
+" também pode especificar um conjunto de revisões: veja\n"
+" :hg:`help revsets` para mais informações."
msgid ""
" By default this command prints revision number and changeset id,\n"
@@ -12636,99 +10289,6 @@ msgstr ""
" com seu primeiro pai. Além disso, apenas arquivos diferentes\n"
" de AMBOS os pais aparecerão na lista de arquivos."
-msgid ""
-" .. note::\n"
-" for performance reasons, log FILE may omit duplicate changes\n"
-" made on branches and will not show deletions. To see all\n"
-" changes including duplicates and deletions, use the --removed\n"
-" switch."
-msgstr ""
-" .. note::\n"
-" por razões de desempenho, log ARQUIVO pode omitir mudanças\n"
-" duplicadas feitas em outros ramos, e não mostra remoções.\n"
-" Para ver todas as mudanças incluindo duplicatas e remoções,\n"
-" use a opção --removed."
-
-msgid " - changesets with full descriptions and file lists::"
-msgstr " - revisões com descrições completas e lista de arquivos::"
-
-msgid " hg log -v"
-msgstr " hg log -v"
-
-msgid " - changesets ancestral to the working directory::"
-msgstr " - revisões ancestrais do diretório de trabalho::"
-
-msgid " hg log -f"
-msgstr " hg log -f"
-
-msgid " - last 10 commits on the current branch::"
-msgstr " - últimas 10 revisões no ramo atual::"
-
-msgid " hg log -l 10 -b ."
-msgstr " hg log -l 10 -b ."
-
-msgid ""
-" - changesets showing all modifications of a file, including removals::"
-msgstr ""
-" - revisões mostrando todas as modificações feitas em um\n"
-" arquivo, incluindo remoções::"
-
-msgid " hg log --removed file.c"
-msgstr " hg log --removed file.c"
-
-msgid ""
-" - all changesets that touch a directory, with diffs, excluding "
-"merges::"
-msgstr ""
-" - todas as revisões que modificam um diretório, com diffs,\n"
-" excluindo mesclagens::"
-
-msgid " hg log -Mp lib/"
-msgstr " hg log -Mp lib/"
-
-msgid " - all revision numbers that match a keyword::"
-msgstr ""
-" - todos os números de revisões que combinarem com uma palavra chave::"
-
-msgid " hg log -k bug --template \"{rev}\\n\""
-msgstr " hg log -k bug --template \"{rev}\\n\""
-
-msgid " - check if a given changeset is included is a tagged release::"
-msgstr ""
-" - verifica se uma revisão dada foi incluída em um\n"
-" release etiquetado::"
-
-msgid " hg log -r \"a21ccf and ancestor(1.9)\""
-msgstr " hg log -r \"a21ccf and ancestor(1.9)\""
-
-msgid " - find all changesets by some user in a date range::"
-msgstr ""
-" - encontra todas as revisões feitas por um usuário em\n"
-" uma faixa de datas::"
-
-msgid " hg log -k alice -d \"may 2008 to jul 2008\""
-msgstr " hg log -k alice -d \"may 2008 to jul 2008\""
-
-msgid " - summary of all changesets after the last tag::"
-msgstr " - sumário de todas as revisões após a última etiqueta::"
-
-msgid " hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
-msgstr " hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
-
-msgid ""
-" See :hg:`help revisions` and :hg:`help revsets` for more about\n"
-" specifying revisions."
-msgstr ""
-" Veja :hg:`help revisions` e :hg:`help revsets` para mais\n"
-" informações sobre a especificação de revisões."
-
-msgid ""
-" See :hg:`help templates` for more about pre-packaged styles and\n"
-" specifying custom templates."
-msgstr ""
-" Veja :hg:`help templates` para mais informações sobre estilos\n"
-" pré-existentes e especificação de modelos personalizados."
-
msgid "revision to display"
msgstr "revisão a ser exibida"
@@ -12826,8 +10386,7 @@ msgstr ""
" explicitamente."
msgid " :hg:`resolve` must be used to resolve unresolved files."
-msgstr ""
-" :hg:`resolve` deve ser usado para resolver arquivos não resolvidos."
+msgstr " :hg:`resolve` deve ser usado para resolver arquivos não resolvidos."
msgid ""
" To undo an uncommitted merge, use :hg:`update --clean .` which\n"
@@ -12845,47 +10404,26 @@ msgstr ""
" Devolve 0 para indicar sucesso, 1 se houver arquivos não resolvidos.\n"
" "
-msgid ""
-"multiple matching bookmarks to merge - please merge with an explicit rev or "
-"bookmark"
-msgstr ""
-"múltiplos marcadores para mesclar - por favor mescle com uma revisão ou "
-"marcador explícitos"
-
-msgid "run 'hg heads' to see all heads"
-msgstr "execute 'hg heads' para ver todas as cabeças"
-
-msgid ""
-"no matching bookmark to merge - please merge with an explicit rev or "
-"bookmark"
-msgstr ""
-"nenhum marcador correspondente para mesclar - por favor mescle com uma "
-"revisão ou marcador explícitos"
-
#, python-format
msgid "branch '%s' has %d heads - please merge with an explicit rev"
-msgstr ""
-"o ramo '%s' tem %d cabeças - por favor mescle com uma revisão explícita"
+msgstr "o ramo '%s' tem %d cabeças - por favor mescle com uma revisão explícita"
msgid "run 'hg heads .' to see heads"
msgstr "execute 'hg heads .' para ver as cabeças"
-msgid "heads are bookmarked - please merge with an explicit rev"
-msgstr ""
-"as cabeças estão marcadas com bookmarks - por favor mescle com uma revisão "
-"explícita"
-
#, python-format
msgid "branch '%s' has one head - please merge with an explicit rev"
-msgstr ""
-"o ramo '%s' tem apenas uma cabeça - por favor mescle com uma revisão "
-"explícita"
+msgstr "o ramo '%s' tem apenas uma cabeça - por favor mescle com uma revisão explícita"
-msgid "nothing to merge"
-msgstr "nada para mesclar"
+msgid "run 'hg heads' to see all heads"
+msgstr "execute 'hg heads' para ver todas as cabeças"
-msgid "use 'hg update' instead"
-msgstr "use 'hg update'"
+msgid "there is nothing to merge"
+msgstr "não há nada para mesclar"
+
+#, python-format
+msgid "%s - use \"hg update\" instead"
+msgstr "%s - use \"hg update\""
msgid "working directory not at a head revision"
msgstr "o diretório de trabalho não está em uma cabeça"
@@ -13011,74 +10549,6 @@ msgstr " Veja :hg:`help urls` para mais informações."
msgid "not found!\n"
msgstr "não encontrado!\n"
-msgid "set changeset phase to public"
-msgstr "define a fase da revisão como pública"
-
-msgid "set changeset phase to draft"
-msgstr "define a fase da revisão como rascunho"
-
-msgid "set changeset phase to secret"
-msgstr "define a fase da revisão como secreta"
-
-msgid "allow to move boundary backward"
-msgstr "permite que o limite seja movido para trás"
-
-msgid "target revision"
-msgstr "revisão alvo"
-
-msgid "[-p|-d|-s] [-f] [-r] REV..."
-msgstr "[-p|-d|-s] [-f] [-r] REV..."
-
-msgid "set or show the current phase name"
-msgstr "define ou mostra o nome da fase atual"
-
-msgid " With no argument, show the phase name of specified revisions."
-msgstr " Sem parâmetros, mostra o nome da fase das revisões especificadas."
-
-msgid ""
-" With one of -p/--public, -d/--draft or -s/--secret, change the\n"
-" phase value of the specified revisions."
-msgstr ""
-" Com um parâmetro -p/--public, -d/--draft ou -s/--secret, muda o\n"
-" valor da fase das revisões especificadas para pública, rascunho ou\n"
-" secreta, respectivamente."
-
-msgid ""
-" Unless -f/--force is specified, :hg:`phase` won't move changeset from a\n"
-" lower phase to an higher phase. Phases are ordered as follows::"
-msgstr ""
-" A não ser que -f/--force seja especificado, :hg:`phase` não\n"
-" moverá revisões de uma fase mais baixa para uma mais alta. As\n"
-" fases são ordenadas como segue::"
-
-msgid " public < draft < secret"
-msgstr " pública < rascunho < secreta"
-
-msgid ""
-" Return 0 on success, 1 if no phases were changed or some could not\n"
-" be changed.\n"
-" "
-msgstr ""
-" Devolve 0 para indicar sucesso, 1 se não houver mudanças de fase\n"
-" ou se algumas não puderam ser mudadas.\n"
-" "
-
-msgid "only one phase can be specified"
-msgstr "apenas uma fase pode ser especificada"
-
-#, python-format
-msgid "cannot move %i changesets to a more permissive phase, use --force\n"
-msgstr ""
-"não é possível mover %i revisões para uma fase mais permissiva sem usar "
-"--force\n"
-
-#, python-format
-msgid "phase changed for %i changesets\n"
-msgstr "as fases de %i revisões foram modificadas\n"
-
-msgid "no phases changed\n"
-msgstr "nenhuma fase mudou\n"
-
#, python-format
msgid "not updating: %s\n"
msgstr "atualização não realizada: %s\n"
@@ -13158,6 +10628,9 @@ msgstr ""
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"
@@ -13225,15 +10698,6 @@ msgstr ""
" ancestrais serão enviados para o repositório remoto."
msgid ""
-" If -B/--bookmark is used, the specified bookmarked revision, its\n"
-" ancestors, and the bookmark will be pushed to the remote\n"
-" repository."
-msgstr ""
-" Se -B/--bookmark for usado, a revisão marcada especificada, seus\n"
-" ancestrais, e o próprio marcador serão enviados para o repositório\n"
-" remoto."
-
-msgid ""
" Please see :hg:`help urls` for important details about ``ssh://``\n"
" URLs. If DESTINATION is omitted, a default path will be used."
msgstr ""
@@ -13301,70 +10765,64 @@ msgstr "remove (e apaga) o arquivo mesmo se foi adicionado ou modificado"
msgid "remove the specified files on the next commit"
msgstr "remove os arquivos pedidos na próxima consolidação"
-msgid " Schedule the indicated files for removal from the current branch."
-msgstr " Agenda os arquivos indicados para remoção do ramo atual."
-
-msgid ""
-" This command schedules the files to be removed at the next commit.\n"
-" To undo a remove before that, see :hg:`revert`. To undo added\n"
-" files, see :hg:`forget`."
-msgstr ""
-" Este comando agenda os arquivos para serem removidos na próxima\n"
-" consolidação. Para desfazer uma remoção antes disso, veja\n"
-" :hg:`revert`. Para desfazer uma adição de arquivos, veja\n"
-" :hg:`forget`."
+msgid " Schedule the indicated files for removal from the repository."
+msgstr " Agenda os arquivos indicados para remoção do repositório."
msgid ""
-" -A/--after can be used to remove only files that have already\n"
-" been deleted, -f/--force can be used to force deletion, and -Af\n"
-" can be used to remove files from the next revision without\n"
-" deleting them from the working directory."
+" This only removes files from the current branch, not from the\n"
+" entire project history. -A/--after can be used to remove only\n"
+" files that have already been deleted, -f/--force can be used to\n"
+" force deletion, and -Af can be used to remove files from the next\n"
+" revision without deleting them from the working directory."
msgstr ""
-" -A/--after pode ser usado para remover\n"
+" Isto apenas remove arquivos do ramo atual, e não de todo o\n"
+" histórico do projeto. -A/--after pode ser usado para remover\n"
" apenas arquivos já removidos do diretório de trabalho,\n"
" -f/--force pode ser usado para forçar a remoção, e -Af pode ser\n"
" usado para remover os arquivos da próxima revisão sem removê-los\n"
" do diretório de trabalho."
msgid ""
-" The following table details the behavior of remove for different\n"
-" file states (columns) and option combinations (rows). The file\n"
-" states are Added [A], Clean [C], Modified [M] and Missing [!]\n"
-" (as reported by :hg:`status`). The actions are Warn, Remove\n"
-" (from branch) and Delete (from disk):"
+" The following table details the behavior of remove for different\n"
+" file states (columns) and option combinations (rows). The file\n"
+" states are Added [A], Clean [C], Modified [M] and Missing [!] (as\n"
+" reported by :hg:`status`). The actions are Warn, Remove (from\n"
+" branch) and Delete (from disk)::"
msgstr ""
-" A seguinte tabela detalha o comportamento do comando remove para\n"
-" diferentes estados dos arquivos (colunas) e combinações de opções\n"
-" (linhas). Os estados dos arquivos são: adicionados [A],\n"
-" limpos [C], modificados [M] ou faltando [!] (conforme informado\n"
-" por :hg:`status`). As ações são W (aviso), R (remove do ramo) e D\n"
-" (remove do diretório de trabalho):"
+" A seguinte tabela detalha o comportamento do comando remove para\n"
+" diferentes estados dos arquivos (colunas) e combinações de opções\n"
+" (linhas). Os estados dos arquivos são: adicionados [A],\n"
+" limpos [C], modificados [M] ou faltando [!] (conforme informado\n"
+" por :hg:`status`). As ações são W (aviso), R (remove do ramo) e D\n"
+" (remove do diretório de trabalho)::"
msgid ""
-" ======= == == == ==\n"
-" A C M !\n"
-" ======= == == == ==\n"
-" none W RD W R\n"
-" -f R RD RD R\n"
-" -A W W W R\n"
-" -Af R R R R\n"
-" ======= == == == =="
+" A C M !\n"
+" none W RD W R\n"
+" -f R RD RD R\n"
+" -A W W W R\n"
+" -Af R R R R"
msgstr ""
-" ======= == == == ==\n"
-" A C M !\n"
-" ======= == == == ==\n"
-" nenhum W RD W R\n"
-" -f R RD RD R\n"
-" -A W W W R\n"
-" -Af R R R R\n"
-" ======= == == == =="
+" A C M !\n"
+" none W RD W R\n"
+" -f R RD RD R\n"
+" -A W W W R\n"
+" -Af R R R R"
msgid ""
-" Note that remove never deletes files in Added [A] state from the\n"
-" working directory, not even if option --force is specified."
+" Note that remove never deletes files in Added [A] state from the\n"
+" working directory, not even if option --force is specified."
msgstr ""
-" Note que remove nunca apaga do diretório de trabalho arquivos no\n"
-" estado adicionado [A], nem mesmo se a opção --force for especificada."
+" Note que remove nunca apaga do diretório de trabalho arquivos no\n"
+" estado adicionado [A], nem mesmo se a opção --force for especificada."
+
+msgid ""
+" This command schedules the files to be removed at the next commit.\n"
+" To undo a remove before that, see :hg:`revert`."
+msgstr ""
+" Este comando agenda os arquivos para serem removidos na próxima\n"
+" consolidação. Para desfazer uma remoção antes disso, veja\n"
+" :hg:`revert`."
msgid ""
" Returns 0 on success, 1 if any warnings encountered.\n"
@@ -13379,19 +10837,15 @@ msgstr "arquivo %s não removido: arquivo não rastreado\n"
#, python-format
msgid "not removing %s: file still exists (use -f to force removal)\n"
-msgstr ""
-"%s não removido: o arquivo ainda existe (use -f para forçar a remoção)\n"
+msgstr "%s não removido: o arquivo ainda existe (use -f para forçar a remoção)\n"
#, python-format
msgid "not removing %s: file is modified (use -f to force removal)\n"
-msgstr ""
-"%s não removido: o arquivo foi modificado (use -f para forçar a remoção)\n"
+msgstr "%s não removido: o arquivo foi modificado (use -f para forçar a remoção)\n"
#, python-format
-msgid "not removing %s: file has been marked for add (use forget to undo)\n"
-msgstr ""
-"%s não removido: o arquivo foi marcado para adição (use forget para "
-"desfazer)\n"
+msgid "not removing %s: file has been marked for add (use -f to force removal)\n"
+msgstr "%s não removido: o arquivo foi marcado para adição (use -f para forçar a remoção)\n"
msgid "record a rename that has already occurred"
msgstr "grava uma renomeação que já ocorreu"
@@ -13442,8 +10896,7 @@ msgid ""
" setting, or a command-line merge tool like ``diff3``. The resolve\n"
" command is used to manage the files involved in a merge, after\n"
" :hg:`merge` has been run, and before :hg:`commit` is run (i.e. the\n"
-" working directory must have two parents). See :hg:`help\n"
-" merge-tools` for information on configuring merge tools."
+" working directory must have two parents)."
msgstr ""
" Mesclagens com conflitos não resolvidos podem resultar de\n"
" mesclagens não interativas usando a opção ``internal:merge``\n"
@@ -13452,9 +10905,7 @@ msgstr ""
" O comando resolve é usado para gerenciar os arquivos envolvidos\n"
" em uma mesclagem, após a execução de :hg:`merge` e antes da\n"
" execução de :hg:`commit` (ou seja, enquanto o diretório de\n"
-" trabalho tiver dois pais).\n"
-" Veja :hg:`help merge-tools` para informações sobre a\n"
-" configuração de utilitários de mesclagem."
+" trabalho tiver dois pais)."
msgid " The resolve command can be used in the following ways:"
msgstr " O comando resolve pode ser usado das seguintes maneiras:"
@@ -13465,8 +10916,7 @@ msgid ""
" performed for files already marked as resolved. Use ``--all/-a``\n"
" to select 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. Previous file\n"
-" contents are saved with a ``.orig`` suffix."
+" environment variable and your configuration files."
msgstr ""
" - :hg:`resolve [--tool] ARQUIVO...`: tenta refazer a mesclagem\n"
" dos arquivos especificados, descartando qualquer tentativa de\n"
@@ -13475,9 +10925,7 @@ msgstr ""
" indicar todos os arquivos não resolvidos. ``--tool`` pode ser\n"
" usado para especificar o utilitário de mesclagem usado para os\n"
" arquivos pedidos. Esta opção sobrepõe a variável de ambiente\n"
-" HGMERGE e os valores especificados nos arquivos de configuração.\n"
-" Os conteúdos anteriores dos arquivos são gravados usando um\n"
-" sufixo ``.orig``."
+" HGMERGE e os valores especificados nos arquivos de configuração."
msgid ""
" - :hg:`resolve -m [FILE]`: mark a file as having been resolved\n"
@@ -13528,9 +10976,7 @@ msgid "can't specify --all and patterns"
msgstr "não é possível especificar --all e padrões"
msgid "no files or directories specified; use --all to remerge all files"
-msgstr ""
-"nenhum arquivo ou diretório especificado; use --all para refazer a mesclagem"
-" de todos os arquivos"
+msgstr "nenhum arquivo ou diretório especificado; use --all para refazer a mesclagem de todos os arquivos"
msgid "revert all changes when no arguments given"
msgstr "se parâmetros não forem fornecidos, reverte todas as mudanças"
@@ -13541,24 +10987,24 @@ msgstr "revisão mais recente que casa com a data"
msgid "revert to the specified revision"
msgstr "reverte para a revisão especificada"
+msgid "do not save backup copies of files"
+msgstr "não grava backups de arquivos"
+
msgid "[OPTION]... [-r REV] [NAME]..."
msgstr "[OPÇÃO]... [-r REV] [NOME]..."
msgid "restore files to their checkout state"
-msgstr ""
-"restaura arquivos para o estado correspondente a uma cópia de trabalho"
-
-msgid " .. note::"
-msgstr " .. note::"
+msgstr "restaura arquivos para o estado correspondente a uma cópia de trabalho"
msgid ""
+" .. note::\n"
" To check out earlier revisions, you should use :hg:`update REV`.\n"
-" To cancel an uncommitted merge (and lose your changes), use\n"
-" :hg:`update --clean .`."
+" To cancel a merge (and lose your changes), use :hg:`update --clean .`."
msgstr ""
+" .. note::\n"
" Para obter revisões anteriores, você deve usar :hg:`update REV`.\n"
-" Para cancelar uma mesclagem não consolidada (e descartar suas\n"
-" modificações), use :hg:`update --clean .`."
+" Para cancelar uma mesclagem (e perder suas modificações), use\n"
+" :hg:`update --clean .`."
msgid ""
" With no revision specified, revert the specified files or directories\n"
@@ -13609,36 +11055,46 @@ msgstr "use \"hg update\" ou veja \"hg help revert\""
msgid "no files or directories specified"
msgstr "nenhum arquivo ou diretório especificados"
-msgid ""
-"uncommitted merge, use --all to discard all changes, or 'hg update -C .' to "
-"abort the merge"
-msgstr ""
-"mesclagem não consolidada, use --all para descartar todas as mudanças "
-"locais, ou 'hg update -C .' para abortar a mesclagem"
+msgid "uncommitted merge, use --all to discard all changes, or 'hg update -C .' to abort the merge"
+msgstr "mesclagem não consolidada, use --all para descartar todas as mudanças locais, ou 'hg update -C .' para abortar a mesclagem"
#, python-format
-msgid ""
-"uncommitted changes, use --all to discard all changes, or 'hg update %s' to "
-"update"
-msgstr ""
-"mudanças não consolidadas, use --all para descartar todas as mudanças "
-"locais, ou 'hg update %s' para atualizar"
+msgid "uncommitted changes, use --all to discard all changes, or 'hg update %s' to update"
+msgstr "mudanças não consolidadas, use --all para descartar todas as mudanças locais, ou 'hg update %s' para atualizar"
#, python-format
msgid "use --all to revert all files, or 'hg update %s' to update"
-msgstr ""
-"use --all para reverter todos os arquivos, ou 'hg update %s' para atualizar "
-"a revisão"
+msgstr "use --all para reverter todos os arquivos, ou 'hg update %s' para atualizar a revisão"
msgid "uncommitted changes, use --all to discard all changes"
-msgstr ""
-"mudanças não consolidadas, use --all para descartar todas as mudanças locais"
+msgstr "mudanças não consolidadas, use --all para descartar todas as mudanças locais"
msgid "use --all to revert all files"
msgstr "use --all para reverter todos os arquivos"
-msgid "ignore safety measures"
-msgstr "ignora medidas de segurança"
+#, python-format
+msgid "forgetting %s\n"
+msgstr "esquecendo %s\n"
+
+#, python-format
+msgid "reverting %s\n"
+msgstr "revertendo %s\n"
+
+#, python-format
+msgid "undeleting %s\n"
+msgstr "revertendo remoção de %s\n"
+
+#, python-format
+msgid "saving current version of %s as %s\n"
+msgstr "gravando versão atual de %s como %s\n"
+
+#, python-format
+msgid "file not managed: %s\n"
+msgstr "arquivo não gerenciado: %s\n"
+
+#, python-format
+msgid "no changes needed to %s\n"
+msgstr "nenhuma mudança necessária para %s\n"
msgid "roll back the last transaction (dangerous)"
msgstr "desfaz a última transação (perigoso)"
@@ -13659,41 +11115,26 @@ msgstr ""
msgid ""
" Transactions are used to encapsulate the effects of all commands\n"
" that create new changesets or propagate existing changesets into a\n"
-" repository."
+" repository. For example, the following commands are transactional,\n"
+" and their effects can be rolled back:"
msgstr ""
" Transações são usadas para encapsular os efeitos de todos os comandos\n"
" que criam novas revisões ou propagam revisões existentes para o\n"
-" repositório."
+" repositório. Por exemplo, os seguintes comandos são transacionais,\n"
+" e seus efeitos podem ser revertidos com rollback::"
msgid ""
-" For example, the following commands are transactional, and their\n"
-" effects can be rolled back:"
+" - commit\n"
+" - import\n"
+" - pull\n"
+" - push (with this repository as the destination)\n"
+" - unbundle"
msgstr ""
-" Por exemplo, os seguintes comandos são transacionais,\n"
-" e seus efeitos podem ser revertidos com rollback::"
-
-msgid ""
-" - commit\n"
-" - import\n"
-" - pull\n"
-" - push (with this repository as the destination)\n"
-" - unbundle"
-msgstr ""
-" - commit\n"
-" - import\n"
-" - pull\n"
-" - push (com este repositório como destino)\n"
-" - unbundle"
-
-msgid ""
-" To avoid permanent data loss, rollback will refuse to rollback a\n"
-" commit transaction if it isn't checked out. Use --force to\n"
-" override this protection."
-msgstr ""
-" Para evitar perda permanente de dados, o comando rollback se recusará\n"
-" a desfazer a transação de um commit se a revisão correspondente não\n"
-" for a revisão atual do diretório de trabalho. Para desabilitar essa\n"
-" proteção e remover a revisão de qualquer maneira, use a opção --force."
+" - commit\n"
+" - import\n"
+" - pull\n"
+" - push (com este repositório como destino)\n"
+" - unbundle"
msgid ""
" This command is not intended for use on public repositories. Once\n"
@@ -13818,6 +11259,9 @@ msgstr ""
msgid "cannot use --stdio with --cmdserver"
msgstr "não se pode usar --stdio com --cmdserver"
+msgid "There is no Mercurial repository here (.hg not found)"
+msgstr "Não há um repositório do Mercurial aqui (.hg não encontrado)"
+
#, python-format
msgid "listening at http://%s%s/%s (bound to %s:%d)\n"
msgstr "ouvindo em http://%s%s/%s (associado a %s:%d)\n"
@@ -13968,30 +11412,6 @@ msgstr ""
" I = ignorado\n"
" = origem do arquivo anterior listado como A (adicionado)"
-msgid ""
-" - show changes in the working directory relative to a\n"
-" changeset::"
-msgstr ""
-" - mostra mudanças no diretório de trabalho relativas a uma revisão::"
-
-msgid " hg status --rev 9353"
-msgstr " hg status --rev 9353"
-
-msgid " - show all changes including copies in an existing changeset::"
-msgstr ""
-" - mostra todas as mudanças incluindo cópias em uma revisão existente::"
-
-msgid " hg status --copies --change 9353"
-msgstr " hg status --copies --change 9353"
-
-msgid " - get a NUL separated list of added files, suitable for xargs::"
-msgstr ""
-" - gera uma lista separada por NUL de arquivos adicionados,\n"
-" adequada para o comando xargs::"
-
-msgid " hg status -an0"
-msgstr " hg status -an0"
-
msgid "check for push and pull"
msgstr "verifica push e pull"
@@ -14027,9 +11447,6 @@ msgstr " (nenhuma revisão na cópia de trabalho)"
msgid "branch: %s\n"
msgstr "ramo: %s\n"
-msgid "bookmarks:"
-msgstr "marcadores:"
-
#, python-format
msgid "%d modified"
msgstr "%d modificados"
@@ -14233,9 +11650,6 @@ msgstr "mesclagem não consolidada pendente"
msgid "not at a branch head (use -f to force)"
msgstr "não está em uma cabeça de ramo (use -f para forçar)"
-msgid "null revision specified"
-msgstr "foi especificada a revisão nula"
-
msgid "list repository tags"
msgstr "lista as etiquetas do repositório"
@@ -14275,8 +11689,7 @@ msgstr ""
" revisão."
msgid "update to new branch head if changesets were unbundled"
-msgstr ""
-"atualiza para nova cabeça de ramo se revisões forem extraídas do bundle"
+msgstr "atualiza para nova cabeça de ramo se revisões forem extraídas do bundle"
msgid "[-u] FILE..."
msgstr "[-u] ARQUIVO..."
@@ -14314,81 +11727,71 @@ msgstr "atualiza o diretório de trabalho (ou muda para outra revisão)"
msgid ""
" Update the repository's working directory to the specified\n"
" changeset. If no changeset is specified, update to the tip of the\n"
-" current named branch and move the current bookmark (see :hg:`help\n"
-" bookmarks`)."
+" current named branch."
msgstr ""
" Atualiza o diretório de trabalho do repositório para a revisão\n"
" pedida. Se não for especificada uma revisão, atualiza para a\n"
-" última revisão do ramo nomeado atual e move o marcador atual\n"
-" (veja :hg:`help bookmarks`)."
-
-msgid ""
-" Update sets the working directory's parent revison to the specified\n"
-" changeset (see :hg:`help parents`)."
-msgstr ""
-" Update muda o pai do diretório de trabalho para a revisão especificada\n"
-" (veja :hg:`help parents`)."
+" última revisão do ramo nomeado atual."
msgid ""
-" If the changeset is not a descendant or ancestor of the working\n"
-" directory's parent, the update is aborted. With the -c/--check\n"
-" option, the working directory is checked for uncommitted changes; if\n"
-" none are found, the working directory is updated to the specified\n"
+" 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 ""
-" Se a revisão não for um descendente ou ancestral\n"
-" do pai do diretório de trabalho,\n"
+" Se a revisão não for descendente do pai do diretório de trabalho,\n"
" o comando update será abortado. Com a opção -c/--check, o comando\n"
" verificará se existem mudanças não consolidadas no diretório de\n"
" trabalho; caso não hajam mudanças, o diretório de trabalho será\n"
" atualizado para a revisão pedida."
msgid ""
-" The following rules apply when the working directory contains\n"
-" uncommitted changes:"
+" Update sets the working directory's parent revison to the specified\n"
+" changeset (see :hg:`help parents`)."
msgstr ""
-" Quando o diretório de trabalho contiver mudanças não consolidadas, as\n"
-" seguintes regras se aplicam:"
+" Update muda o pai do diretório de trabalho para a revisão especificada\n"
+" (veja :hg:`help parents`)."
msgid ""
-" 1. If neither -c/--check nor -C/--clean is specified, and if\n"
-" the requested changeset is an ancestor or descendant of\n"
-" the working directory's parent, the uncommitted changes\n"
-" are merged into the requested changeset and the merged\n"
-" result is left uncommitted. If the requested changeset is\n"
-" not an ancestor or descendant (that is, it is on another\n"
-" branch), the update is aborted and the uncommitted changes\n"
-" are preserved."
+" The following rules apply when the working directory contains\n"
+" uncommitted changes:"
msgstr ""
-" 1. Se nem -c/--check nem -C/--clean forem especificadas, e se a\n"
-" revisão pedida for um ancestral ou um descendente do pai do\n"
-" diretório de trabalho, as alterações não consolidadas são\n"
-" mescladas com a revisão pedida e o resultado da mesclagem não\n"
-" será automaticamente consolidado. Se a revisão pedida não for\n"
-" um ancestral ou um descendente (ou seja, se estiver em um\n"
-" outro ramo), a atualização abortará e as mudanças não\n"
-" consolidadas serão preservadas."
+" Quando o diretório de trabalho contiver mudanças não consolidadas, as\n"
+" seguintes regras se aplicam:"
msgid ""
-" 2. With the -c/--check option, the update is aborted and the\n"
-" uncommitted changes are preserved."
+" 1. If neither -c/--check nor -C/--clean is specified, and if\n"
+" the requested changeset is an ancestor or descendant of\n"
+" the working directory's parent, the uncommitted changes\n"
+" are merged into the requested changeset and the merged\n"
+" result is left uncommitted. If the requested changeset is\n"
+" not an ancestor or descendant (that is, it is on another\n"
+" branch), the update is aborted and the uncommitted changes\n"
+" are preserved."
msgstr ""
-" 2. Com a opção -c/--check, a atualização abortará e as mudanças\n"
-" não consolidadas serão preservadas."
+" 1. Se nem -c/--check nem -C/--clean forem especificadas, e se a\n"
+" revisão pedida for um ancestral ou um descendente do pai do\n"
+" diretório de trabalho, as alterações não consolidadas são\n"
+" mescladas com a revisão pedida e o resultado da mesclagem não\n"
+" será automaticamente consolidado. Se a revisão pedida não for\n"
+" um ancestral ou um descendente (ou seja, se estiver em um\n"
+" outro ramo), a atualização abortará e as mudanças não\n"
+" consolidadas serão preservadas."
msgid ""
-" 3. With the -C/--clean option, uncommitted changes are discarded and\n"
-" the working directory is updated to the requested changeset."
+" 2. With the -c/--check option, the update is aborted and the\n"
+" uncommitted changes are preserved."
msgstr ""
-" 3. Com a opção -C/--clean, mudanças não consolidadas são descartadas\n"
-" e o diretório de trabalho é atualizado para a revisão pedida."
+" 2. Com a opção -c/--check, a atualização abortará e as mudanças\n"
+" não consolidadas serão preservadas."
msgid ""
-" To cancel an uncommitted merge (and lose your changes), use\n"
-" :hg:`update --clean .`."
+" 3. With the -C/--clean option, uncommitted changes are discarded and\n"
+" the working directory is updated to the requested changeset."
msgstr ""
-" Para cancelar uma mesclagem não consolidada (e perder suas\n"
-" modificações), use :hg:`update --clean .`."
+" 3. Com a opção -C/--clean, mudanças não consolidadas são descartadas\n"
+" e o diretório de trabalho é atualizado para a revisão pedida."
msgid ""
" Use null as the changeset to remove the working directory (like\n"
@@ -14407,6 +11810,9 @@ msgstr ""
msgid "cannot specify both -c/--check and -C/--clean"
msgstr "não se pode especificar ao mesmo tempo -c/--check e -C/--clean"
+msgid "uncommitted local changes"
+msgstr "alterações locais pendentes"
+
msgid "verify the integrity of the repository"
msgstr "verifica a integridade do repositório"
@@ -14435,11 +11841,11 @@ msgid "(see http://mercurial.selenic.com for more information)"
msgstr "(veja http://mercurial.selenic.com para mais informações)"
msgid ""
-"Copyright (C) 2005-2012 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-2012 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"
@@ -14456,14 +11862,6 @@ msgstr "comando %s desconhecido"
msgid "cannot include %s (%s)"
msgstr "não é possível incluir %s (%s)"
-#, python-format
-msgid "working directory has unknown parent '%s'!"
-msgstr "diretório de trabalho tem pai desconhecido '%s'!"
-
-#, python-format
-msgid "unknown revision '%s'"
-msgstr "revisão desconhecida '%s'"
-
msgid "not found in manifest"
msgstr "não encontrado no manifesto"
@@ -14488,9 +11886,7 @@ msgstr ""
#, python-format
msgid "%s not added: only files and symlinks supported currently\n"
-msgstr ""
-"%s não adicionado: apenas arquivos e links simbólicos suportados no "
-"momento\n"
+msgstr "%s não adicionado: apenas arquivos e links simbólicos suportados no momento\n"
#, python-format
msgid "%s already tracked!\n"
@@ -14585,14 +11981,6 @@ msgstr "você deve fazer o pull e mesclar ou usar push -f para forçar"
msgid "did you forget to merge? use push -f to force"
msgstr "você esqueceu de mesclar? Use push -f para forçar"
-#, python-format
-msgid "new remote heads on branch '%s'\n"
-msgstr "novas cabeças remotas no ramo '%s'\n"
-
-#, python-format
-msgid "new remote head %s\n"
-msgstr "nova cabeça remota %s\n"
-
msgid "note: unsynced remote changes!\n"
msgstr "aviso: mudanças remotas não sincronizadas!\n"
@@ -14613,9 +12001,7 @@ msgid "hg: parse error: %s\n"
msgstr "hg: erro de análise da entrada: %s\n"
msgid "entering debugger - type c to continue starting hg or h for help\n"
-msgstr ""
-"entrando no depurador - digite c para continuar iniciando o hg ou h para "
-"ajuda\n"
+msgstr "entrando no depurador - digite c para continuar iniciando o hg ou h para ajuda\n"
#, python-format
msgid ""
@@ -14649,9 +12035,6 @@ msgstr "hg %s: %s\n"
msgid "hg: %s\n"
msgstr "hg: %s\n"
-msgid "abort: remote error:\n"
-msgstr "abortado: erro remoto:\n"
-
#, python-format
msgid "abort: %s!\n"
msgstr "abortado: %s!\n"
@@ -14696,28 +12079,11 @@ msgstr ""
msgid "abort: out of memory\n"
msgstr "abortado: sem memória\n"
-msgid "the extension author."
-msgstr "o autor da extensão."
-
-#, python-format
-msgid ""
-"** Unknown exception encountered with possibly-broken third-party extension %s\n"
-"** which supports versions %s of Mercurial.\n"
-"** Please disable %s and try your action again.\n"
-"** If that fixes the bug please report it to %s\n"
-msgstr ""
-"** Exceção desconhecida encontrada, envolvendo a extensão de terceiros %s,\n"
-"** possivelmente defeituosa, que suporta a versão %s do Mercurial.\n"
-"** Por favor desabilite %s e tente sua ação novamente.\n"
-"** Se isso corrigir o erro, por favor informe-o para %s\n"
-
msgid "** unknown exception encountered, please report by visiting\n"
-msgstr ""
-"** exceção desconhecida encontrada, por favor informe sobre esse erro "
-"visitando\n"
+msgstr "** exceção desconhecida encontrada, por favor informe sobre esse erro visitando\n"
-msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
-msgstr "** http://mercurial.selenic.com/wiki/BugTracker\n"
+msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
+msgstr "** http://mercurial.selenic.com/wiki/BugTracker\n"
#, python-format
msgid "** Python %s\n"
@@ -14731,20 +12097,13 @@ msgstr "** Mercurial SCM Distribuído (versão %s)\n"
msgid "** Extensions loaded: %s\n"
msgstr "** Extensões carregadas: %s\n"
-msgid "too few arguments for command alias"
-msgstr "faltam argumentos para o apelido de comando"
-
#, python-format
msgid "no definition for alias '%s'\n"
msgstr "nenhuma definição para o apelido '%s'\n"
#, 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"
+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"
#, python-format
msgid "alias '%s' resolves to unknown command '%s'\n"
@@ -14772,16 +12131,12 @@ msgstr "a opção --config não pode ser abreviada!"
msgid "option --cwd may not be abbreviated!"
msgstr "a opção --cwd não pode ser abreviada!"
-msgid ""
-"option -R has to be separated from other options (e.g. not -qR) and "
-"--repository may only be abbreviated as --repo!"
-msgstr ""
-"a opção -R deve ser separada de outras opções (por exemplo, não usar -qR) e "
-"--repository pode ser abreviada apenas como --repo!"
+msgid "Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!"
+msgstr "A opção -R deve ser separada de outras opções (por exemplo, não usar -qR) e --repository pode ser abreviada apenas como --repo!"
#, python-format
-msgid "time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
-msgstr "tempo: real %.3f segs (user %.3f+%.3f sys %.3f+%.3f)\n"
+msgid "Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
+msgstr "Tempo: real %.3f segs (user %.3f+%.3f sys %.3f+%.3f)\n"
#, python-format
msgid "repository '%s' is not local"
@@ -14798,23 +12153,8 @@ msgstr "aviso: opção --repository ignorada\n"
msgid "unrecognized profiling format '%s' - Ignored\n"
msgstr "formato de profiling '%s' não reconhecido - Ignorado\n"
-msgid ""
-"lsprof not available - install from "
-"http://codespeak.net/svn/user/arigo/hack/misc/lsprof/"
-msgstr ""
-"lsprof não disponível - instale de "
-"http://codespeak.net/svn/user/arigo/hack/misc/lsprof/"
-
-msgid "statprof not available - install using \"easy_install statprof\""
-msgstr "statprof não está disponível - instale usando \"easy_install statprof\""
-
-#, python-format
-msgid "invalid sampling frequency '%s' - ignoring\n"
-msgstr "frequência de amostragem '%s' inválida - ignorando\n"
-
-#, python-format
-msgid "unrecognized profiler '%s' - ignored\n"
-msgstr "profiler '%s' não reconhecido - ignorado\n"
+msgid "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/"
+msgstr "lsprof não disponível - instale de http://codespeak.net/svn/user/arigo/hack/misc/lsprof/"
#, python-format
msgid "*** failed to import extension %s from %s: %s\n"
@@ -14844,15 +12184,6 @@ msgstr "a ferramenta %s não pode tratar binários\n"
msgid "tool %s requires a GUI\n"
msgstr "a ferramenta %s requer uma interface gráfica (GUI)\n"
-msgid ""
-"``internal:prompt``\n"
-"Asks the user which of the local or the other version to keep as\n"
-" the merged version."
-msgstr ""
-"``internal:prompt``\n"
-"Pergunta ao usuário se a versão local ou a outra deve ser usada\n"
-" como resultado da mesclagem."
-
#, python-format
msgid ""
" no tool found to merge %s\n"
@@ -14861,72 +12192,23 @@ msgstr ""
" nenhuma ferramenta encontrada para mesclar %s\n"
"manter (l)ocal ou usar (o)utro?"
-msgid ""
-"``internal:local``\n"
-"Uses the local version of files as the merged version."
-msgstr ""
-"``internal:local``\n"
-"Usa a versão local de arquivos como resultado da mesclagem."
-
-msgid ""
-"``internal:other``\n"
-"Uses the other version of files as the merged version."
-msgstr ""
-"``internal:other``\n"
-"Usa a outra (não local) versão de arquivos como resultado da mesclagem."
+msgid "&Local"
+msgstr "&Local"
-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 ""
-"``internal:fail``\n"
-"Ao invés de tentar mesclar arquivos modificados em ambos os ramos,\n"
-" marca tais arquivos como não resolvidos. O comando resolve deve\n"
-" então ser usado para resolver esses conflitos."
+msgid "&Other"
+msgstr "&Outra"
#, python-format
-msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
-msgstr "%s.premerge não é válido ('%s' não é nem booleano nem %s)"
-
-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 ""
-"``internal:merge``\n"
-"Usa o algoritmo não interativo interno simples para mesclar arquivos.\n"
-" Se houver qualquer conflito, esse algoritmo falhará, deixando\n"
-" marcadores no arquivo parcialmente mesclado."
+msgid "merging %s and %s to %s\n"
+msgstr "mesclando %s e %s para %s\n"
#, python-format
-msgid "merging %s incomplete! (edit conflicts, then use 'hg resolve --mark')\n"
-msgstr ""
-"a mesclagem de %s está incompleta! (edite os conflitos, e em seguida use 'hg"
-" resolve --mark')\n"
-
-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 ""
-"``internal:dump``\n"
-"Cria três versões dos arquivos a serem mesclados, com os conteúdos\n"
-" das versões local, outra e base. Estes arquivos podem então ser\n"
-" usados para fazer uma mesclagem manual. Se o arquivo a ser mesclado\n"
-" se chamar ``a.txt``, estes arquivos serão chamados respectivamente\n"
-" ``a.txt.local``, ``a.txt.other`` e ``a.txt.base`` e serão colocados\n"
-" no mesmo diretório de ``a.txt``."
+msgid "merging %s\n"
+msgstr "mesclando %s\n"
#, python-format
-msgid "merging %s failed!\n"
-msgstr "mesclagem de %s falhou!\n"
+msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
+msgstr "%s.premerge não é válido ('%s' não é nem booleano nem %s)"
#, python-format
msgid "was merge of '%s' successful (yn)?"
@@ -14938,7 +12220,11 @@ msgid ""
"was merge successful (yn)?"
msgstr ""
" arquivo de saída %s parece não ter modificações\n"
-"a mesclagem teve sucesso (yn)?"
+"a mesclagem teve sucesso (sn)?"
+
+#, python-format
+msgid "merging %s failed!\n"
+msgstr "mesclagem de %s falhou!\n"
msgid "unterminated string"
msgstr "string não terminada"
@@ -15122,7 +12408,7 @@ msgid ""
"``size(expression)``\n"
" File size matches the given expression. Examples:"
msgstr ""
-"``size(expressão)``\n"
+"``size(expression)``\n"
" O tamanho do arquivo combina com a expressão fornecida. Por exemplo:"
msgid ""
@@ -15170,20 +12456,6 @@ msgstr ""
msgid "copied takes no arguments"
msgstr "copied não tem argumentos"
-msgid ""
-"``subrepo([pattern])``\n"
-" Subrepositories whose paths match the given pattern."
-msgstr ""
-"``subrepo([padrão])``\n"
-" Sub-repositórios cujos caminhos combinam com o padrão."
-
-#. i18n: "subrepo" is a keyword
-msgid "subrepo takes at most one argument"
-msgstr "subrepo recebe um ou nenhum argumento"
-
-msgid "subrepo requires a pattern or no arguments"
-msgstr "subrepo requer um padrão ou nenhum argumento"
-
msgid "invalid token"
msgstr "token inválido"
@@ -15198,49 +12470,9 @@ msgstr "estado inconsistente, %s:%s é bom e ruim"
msgid "unknown bisect kind %s"
msgstr "tipo desconhecido de bisect %s"
-msgid "invalid bisect state"
-msgstr "estado de bissecção inválido"
-
-#. i18n: bisect changeset status
-msgid "good"
-msgstr "boa"
-
-#. i18n: bisect changeset status
-msgid "bad"
-msgstr "ruim"
-
-#. i18n: bisect changeset status
-msgid "skipped"
-msgstr "omitida"
-
-#. i18n: bisect changeset status
-msgid "untested"
-msgstr "não testada"
-
-#. i18n: bisect changeset status
-msgid "good (implicit)"
-msgstr "boa (implicitamente)"
-
-#. i18n: bisect changeset status
-msgid "bad (implicit)"
-msgstr "ruim (implicitamente)"
-
msgid "disabled extensions:"
msgstr "extensões desabilitadas:"
-msgid "VALUE"
-msgstr "VALOR"
-
-msgid "DEPRECATED"
-msgstr "OBSOLETO"
-
-msgid ""
-"\n"
-"[+] marked option can be specified multiple times\n"
-msgstr ""
-"\n"
-"opções marcadas com [+] podem ser especificadas múltiplas vezes\n"
-
msgid "Configuration Files"
msgstr "Arquivos de Configuração"
@@ -15277,8 +12509,8 @@ msgstr "Uso de Modelos"
msgid "URL Paths"
msgstr "Caminhos URL"
-msgid "Using Additional Features"
-msgstr "Usando Funcionalidades Adicionais"
+msgid "Using additional features"
+msgstr "Usando funcionalidades adicionais"
msgid "Subrepositories"
msgstr "Sub-repositórios"
@@ -15289,11 +12521,8 @@ msgstr "Configuração do hgweb"
msgid "Glossary"
msgstr "Glossário"
-msgid "Syntax for Mercurial Ignore Files"
-msgstr "Sintaxe dos Arquivos de Padrões de Arquivos Ignorados"
-
-msgid "Working with Phases"
-msgstr "Trabalhando Com Fases"
+msgid "syntax for Mercurial ignore files"
+msgstr "sintaxe dos arquivos de padrões de arquivos ignorados"
msgid ""
"The Mercurial system uses a set of configuration files to control\n"
@@ -15329,10 +12558,10 @@ msgstr ""
msgid ""
"Files\n"
-"====="
+"-----"
msgstr ""
"Arquivos\n"
-"========"
+"--------"
msgid ""
"Mercurial reads configuration data from several files, if they exist.\n"
@@ -15364,35 +12593,33 @@ msgstr ""
"mencionados abaixo, definições de caminhos anteriores sobrepõe\n"
"definições de caminhos posteriores."
-msgid "| (All) ``<repo>/.hg/hgrc``"
-msgstr "| (Todos) ``<repo>/.hg/hgrc``"
+msgid "| (Unix, Windows) ``<repo>/.hg/hgrc``"
+msgstr "| (Unix, Windows) ``<repo>/.hg/hgrc``"
msgid ""
" Per-repository configuration options that only apply in a\n"
" particular repository. This file is not version-controlled, and\n"
" will not get transferred during a \"clone\" operation. Options in\n"
" this file override options in all other configuration files. On\n"
-" Plan 9 and Unix, most of this file will be ignored if it doesn't\n"
-" belong to a trusted user or to a trusted group. See the documentation\n"
-" for the ``[trusted]`` section below for more details."
+" Unix, most of this file will be ignored if it doesn't belong to a\n"
+" trusted user or to a trusted group. See the documentation for the\n"
+" ``[trusted]`` section below for more details."
msgstr ""
" Configurações específicas do repositório <repo>. Este arquivo\n"
" não é versionado, e não é transferido durante uma operação\n"
" \"clone\". Opções neste arquivo sobrepõe opções em qualquer outro\n"
-" arquivo de configuração. No Plan 9 e Unix, a maior parte deste arquivo\n"
+" arquivo de configuração. Em Unix, a maior parte deste arquivo\n"
" será ignorada se ele não pertencer a um usuário ou grupo\n"
" confiável; veja abaixo a documentação sobre a seção [trusted]\n"
" para maiores detalhes."
msgid ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
"| (Unix) ``$HOME/.hgrc``\n"
"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
"| (Windows) ``%HOME%\\.hgrc``\n"
"| (Windows) ``%HOME%\\Mercurial.ini``"
msgstr ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
"| (Unix) ``$HOME/.hgrc``\n"
"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
@@ -15413,13 +12640,9 @@ msgstr ""
" por sistema e por instalação."
msgid ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
"| (Unix) ``/etc/mercurial/hgrc``\n"
"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
msgstr ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
"| (Unix) ``/etc/mercurial/hgrc``\n"
"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
@@ -15435,13 +12658,9 @@ msgstr ""
" diretório. Opções nestes arquivos sobrepõe opções por instalação."
msgid ""
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc.d/*.rc``\n"
"| (Unix) ``<install-root>/etc/mercurial/hgrc``\n"
"| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
msgstr ""
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc.d/*.rc``\n"
"| (Unix) ``<install-root>/etc/mercurial/hgrc``\n"
"| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
@@ -15477,7 +12696,9 @@ msgid ""
" keys contain PATH-like strings, every part of which must reference\n"
" a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will\n"
" be read. Mercurial checks each of these locations in the specified\n"
-" order until one or more configuration files are detected."
+" order until one or more configuration files are detected. If the\n"
+" pywin32 extensions are not installed, Mercurial will only look for\n"
+" site-wide configuration in ``C:\\Mercurial\\Mercurial.ini``."
msgstr ""
" Arquivos de configuração por instalação e sistema, para o sistema\n"
" no qual o Mercurial está instalado.\n"
@@ -15488,14 +12709,17 @@ msgstr ""
" diretório do qual arquivos ``*.rc`` serão lidos.\n"
" O Mercurial verifica cada uma destas localizações na ordem\n"
" especificada até que um ou mais arquivos de configuração sejam\n"
-" encontrados."
+" encontrados.\n"
+" Se as extensões pywin32 não estiverem instaladas, o Mercurial\n"
+" procurará por arquivos de configuração de sistema apenas em\n"
+" ``C:\\Mercurial\\Mercurial.ini``."
msgid ""
"Syntax\n"
-"======"
+"------"
msgstr ""
"Sintaxe\n"
-"======="
+"-------"
msgid ""
"A configuration file consists of sections, led by a ``[section]`` header\n"
@@ -15681,10 +12905,10 @@ msgstr ""
msgid ""
"Sections\n"
-"========"
+"--------"
msgstr ""
"Seções\n"
-"======"
+"------"
msgid ""
"This section describes the different sections that may appear in a\n"
@@ -15697,10 +12921,10 @@ msgstr ""
msgid ""
"``alias``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
"``alias``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgid ""
"Defines command aliases.\n"
@@ -15760,8 +12984,8 @@ msgstr ""
"um apelido de shell. Um apelido de shell é executado pelo shell, e pode\n"
"ser usado para executar comandos arbitrários. Por exemplo, ::"
-msgid " echo = !echo $@"
-msgstr " echo = !echo $@"
+msgid " echo = !echo"
+msgstr " echo = !echo"
msgid ""
"will let you do ``hg echo foo`` to have ``foo`` printed in your\n"
@@ -15781,25 +13005,11 @@ msgstr ""
"repositório da mesma maneira que a extensão purge."
msgid ""
-"Positional arguments like ``$1``, ``$2``, etc. in the alias definition\n"
-"expand to the command arguments. Unmatched arguments are\n"
-"removed. ``$0`` expands to the alias name and ``$@`` expands to all\n"
-"arguments separated by a space. These expansions happen before the\n"
-"command is passed to the shell."
-msgstr ""
-"Argumentos posicionais como ``$1``, ``$2``, etc. na definição\n"
-"do apelido expandem para argumentos da linha de comando. Argumentos\n"
-"em excesso são removidos. ``$0`` expande para o nome do apelido e\n"
-"``$@`` expande para todos os argumentos, separados por espaços.\n"
-"Estas expansões são realizadas antes de o comando ser passado\n"
-"para o shell."
-
-msgid ""
-"Shell aliases are executed in an environment where ``$HG`` expands to\n"
+"Shell aliases are executed in an environment where ``$HG`` expand to\n"
"the path of the Mercurial that was used to execute the alias. This is\n"
"useful when you want to call further Mercurial commands in a shell\n"
"alias, as was done above for the purge alias. In addition,\n"
-"``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg\n"
+"``$HG_ARGS`` expand to the arguments given to Mercurial. In the ``hg\n"
"echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``."
msgstr ""
"Apelidos de shell são executados em um ambiente no qual ``$HG``\n"
@@ -15811,61 +13021,11 @@ msgstr ""
"acima, ``$HG_ARGS`` expandiria para ``echo foo``."
msgid ""
-".. note:: Some global configuration options such as ``-R`` are\n"
-" processed before shell aliases and will thus not be passed to\n"
-" aliases."
-msgstr ""
-".. note:: Algumas opções globais de configuração, como ``-R``,\n"
-" são processadas antes de apelidos de shell, e portanto não serão\n"
-" passadas para os apelidos."
-
-msgid ""
-"\n"
-"``annotate``\n"
-"------------"
-msgstr ""
-"\n"
-"``annotate``\n"
-"------------"
-
-msgid ""
-"Settings used when displaying file annotations. All values are\n"
-"Booleans and default to False. See ``diff`` section for related\n"
-"options for the diff command."
-msgstr ""
-"Definições usadas ao exibir anotações de arquivo. Todos os valores\n"
-"são booleanos com padrão False. Veja a seção ``diff`` para opções\n"
-"relacionadas do comando diff."
-
-msgid ""
-"``ignorews``\n"
-" Ignore white space when comparing lines."
-msgstr ""
-"``ignorews``\n"
-" ignora espaços em branco ao comparar linhas"
-
-msgid ""
-"``ignorewsamount``\n"
-" Ignore changes in the amount of white space."
-msgstr ""
-"``ignorewsamount``\n"
-" ignora mudanças na quantidade de espaços em branco"
-
-msgid ""
-"``ignoreblanklines``\n"
-" Ignore changes whose lines are all blank."
-msgstr ""
-"``ignoreblanklines``\n"
-" ignora mudanças cujas linhas sejam todas brancas"
-
-msgid ""
-"\n"
"``auth``\n"
-"--------"
+"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
"``auth``\n"
-"--------"
+"\"\"\"\"\"\"\"\""
msgid ""
"Authentication credentials for HTTP authentication. This section\n"
@@ -16007,11 +13167,11 @@ msgstr ""
msgid ""
"\n"
"``decode/encode``\n"
-"-----------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
"\n"
"``decode/encode``\n"
-"-----------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgid ""
"Filters for transforming files on checkout/checkin. This would\n"
@@ -16114,11 +13274,11 @@ msgstr ""
msgid ""
"\n"
"``defaults``\n"
-"------------"
+"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
"\n"
"``defaults``\n"
-"------------"
+"\"\"\"\"\"\"\"\"\"\"\"\""
msgid "(defaults are deprecated. Don't use them. Use aliases instead)"
msgstr ""
@@ -16161,20 +13321,18 @@ msgstr ""
msgid ""
"\n"
"``diff``\n"
-"--------"
+"\"\"\"\"\"\"\"\""
msgstr ""
"\n"
"``diff``\n"
-"--------"
+"\"\"\"\"\"\"\"\""
msgid ""
-"Settings used when displaying diffs. Everything except for ``unified``\n"
-"is a Boolean and defaults to False. See ``annotate`` section for\n"
-"related options for the annotate command."
+"Settings used when displaying diffs. Everything except for ``unified`` is a\n"
+"Boolean and defaults to False."
msgstr ""
"Definições usadas ao exibir diffs. Exceto por ``unified``, todas são\n"
-"booleanas, por padrão False. Veja a seção ``annotate`` para opções\n"
-"relacionadas do comando annotate."
+"booleanas, por padrão False."
msgid ""
"``git``\n"
@@ -16198,6 +13356,27 @@ msgstr ""
" mostra em qual função está cada mudança"
msgid ""
+"``ignorews``\n"
+" Ignore white space when comparing lines."
+msgstr ""
+"``ignorews``\n"
+" ignora espaços em branco ao comparar linhas"
+
+msgid ""
+"``ignorewsamount``\n"
+" Ignore changes in the amount of white space."
+msgstr ""
+"``ignorewsamount``\n"
+" ignora mudanças na quantidade de espaços em branco"
+
+msgid ""
+"``ignoreblanklines``\n"
+" Ignore changes whose lines are all blank."
+msgstr ""
+"``ignoreblanklines``\n"
+" ignora mudanças cujas linhas sejam todas brancas"
+
+msgid ""
"``unified``\n"
" Number of lines of context to show."
msgstr ""
@@ -16206,10 +13385,10 @@ msgstr ""
msgid ""
"``email``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
"``email``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgid "Settings for extensions that send email messages."
msgstr "Definições para extensões que enviam mensagens de email."
@@ -16238,7 +13417,7 @@ msgid ""
msgstr ""
"``cc``\n"
" Opcional. Lista separada por vírgulas de destinatários especificados\n"
-" em cópia carbono."
+" em cópia-carbono."
msgid ""
"``bcc``\n"
@@ -16247,7 +13426,7 @@ msgid ""
msgstr ""
"``bcc``\n"
" Opcional. Lista separada por vírgulas de destinatários especificados\n"
-" em cópia carbono oculta."
+" em cópia-carbono oculta."
msgid ""
"``method``\n"
@@ -16325,11 +13504,11 @@ msgstr ""
msgid ""
"\n"
"``extensions``\n"
-"--------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
"\n"
"``extensions``\n"
-"--------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgid ""
"Mercurial has an extension mechanism for adding new features. To\n"
@@ -16386,12 +13565,52 @@ msgstr ""
msgid ""
"\n"
+"``hostfingerprints``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+msgstr ""
+"\n"
+"``hostfingerprints``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+
+msgid ""
+"Fingerprints of the certificates of known HTTPS servers.\n"
+"A HTTPS connection to a server with a fingerprint configured here will\n"
+"only succeed if the servers certificate matches the fingerprint.\n"
+"This is very similar to how ssh known hosts works.\n"
+"The fingerprint is the SHA-1 hash value of the DER encoded certificate.\n"
+"The CA chain and web.cacerts is not used for servers with a fingerprint."
+msgstr ""
+"Impressões digitais (\"fingerprints\") dos certificados de servidores\n"
+"HTTPS conhecidos.\n"
+"Uma conexão HTTPS com um servidor com uma impressão digital configurada\n"
+"aqui só terá sucesso se o certificado do servidor bater com a impressão.\n"
+"Isto é bastante similar ao mecanismo \"known hosts\" do ssh.\n"
+"A impressão digital é o valor do hash SHA-1 do certificado codificado\n"
+"em formato DER.\n"
+"A cadeia CA e a opção web.cacerts não são usadas para servidores com\n"
+"impressões digitais configuradas."
+
+msgid "For example::"
+msgstr "Por exemplo::"
+
+msgid ""
+" [hostfingerprints]\n"
+" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc"
+msgstr ""
+" [hostfingerprints]\n"
+" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc"
+
+msgid "This feature is only supported when using Python 2.6 or later."
+msgstr "Esta funcionalidade só é suportada nas versões do Python 2.6 ou posteriores."
+
+msgid ""
+"\n"
"``format``\n"
-"----------"
+"\"\"\"\"\"\"\"\"\"\""
msgstr ""
"\n"
"``format``\n"
-"----------"
+"\"\"\"\"\"\"\"\"\"\""
msgid ""
"``usestore``\n"
@@ -16439,8 +13658,8 @@ msgid ""
" option ensures that the on-disk format of newly created\n"
" repositories will be compatible with Mercurial before version 1.7."
msgstr ""
-"``dotencode``\n"
-" Habilita ou desabilita o formato de repositório \"dotencode\", que\n"
+"``usefncache``\n"
+" Habilita ou desabilita o formato de repositório \"fncache\", que\n"
" aprimora o formato \"fncache\" (que deve ser habilitado para o uso de\n"
" dotencode) para evitar problemas com nomes de arquivo iniciados por\n"
" ._ no Mac OS X e espaços no Windows. Habilitado por padrão.\n"
@@ -16449,82 +13668,274 @@ msgstr ""
" anteriores à 1.7."
msgid ""
-"``graph``\n"
-"---------"
+"``merge-patterns``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``graph``\n"
-"---------"
+"``merge-patterns``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+
+msgid ""
+"This section specifies merge tools to associate with particular file\n"
+"patterns. Tools matched here will take precedence over the default\n"
+"merge tool. Patterns are globs by default, rooted at the repository\n"
+"root."
+msgstr ""
+"Esta seção especifica ferramentas de mesclagem a serem associados a\n"
+"determinados padrões de arquivo. As ferramentas correspondentes têm\n"
+"prioridade sobre o utilitário padrão de mesclagem. Por padrão, os\n"
+"padrões de arquivo são globs a partir do raiz do repositório."
+
+msgid ""
+" [merge-patterns]\n"
+" **.c = kdiff3\n"
+" **.jpg = myimgmerge"
+msgstr ""
+" [merge-patterns]\n"
+" **.c = kdiff3\n"
+" **.jpg = myimgmerge"
+
+msgid ""
+"``merge-tools``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+msgstr ""
+"``merge-tools``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgid ""
-"Web graph view configuration. This section let you change graph\n"
-"elements display properties by branches, for instance to make the\n"
-"``default`` branch stand out."
+"This section configures external merge tools to use for file-level\n"
+"merges."
msgstr ""
-"Configuração da visualização de grafo da interface web. Esta seção\n"
-"possibilita mudar propriedades de exibição de elementos do grafo,\n"
-"para por exemplo ressaltar o ramo ``default``."
+"Esta seção configura ferramentas de mesclagem externas a serem\n"
+"usadas em mesclagens de arquivo."
+
+msgid "Example ``~/.hgrc``::"
+msgstr "Um exemplo de ``~/.hgrc``::"
-msgid " <branch>.<argument> = <value>"
-msgstr " <ramo>.<argumento> = <valor>"
+msgid ""
+" [merge-tools]\n"
+" # Override stock tool location\n"
+" kdiff3.executable = ~/bin/kdiff3\n"
+" # Specify command line\n"
+" kdiff3.args = $base $local $other -o $output\n"
+" # Give higher priority\n"
+" kdiff3.priority = 1"
+msgstr ""
+" [merge-tools]\n"
+" # sobrepõe a localização padrão da ferramenta\n"
+" kdiff3.executable = ~/bin/kdiff3\n"
+" # Especifica a linha de comando\n"
+" kdiff3.args = $base $local $other -o $output\n"
+" # Usa uma prioridade mais alta\n"
+" kdiff3.priority = 1"
msgid ""
-"where ``<branch>`` is the name of the branch being\n"
-"customized. Example::"
-msgstr "onde ``<ramo>`` é o nome do ramo a ser personalizado. Por exemplo::"
+" # Define new tool\n"
+" myHtmlTool.args = -m $local $other $base $output\n"
+" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
+" myHtmlTool.priority = 1"
+msgstr ""
+" # Define uma nova ferramenta\n"
+" myHtmlTool.args = -m $local $other $base $output\n"
+" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
+" myHtmlTool.priority = 1"
msgid ""
-" [graph]\n"
-" # 2px width\n"
-" default.width = 2\n"
-" # red color\n"
-" default.color = FF0000"
+"``priority``\n"
+" The priority in which to evaluate this tool.\n"
+" Default: 0."
msgstr ""
-" [graph]\n"
-" # 2 pixels de largura\n"
-" default.width = 2\n"
-" # cor vermelha\n"
-" default.color = FF0000"
+"``priority``\n"
+" A prioridade com a qual avaliar esta ferramenta.\n"
+" Padrão: 0."
msgid ""
-"``width``\n"
-" Set branch edges width in pixels."
+"``executable``\n"
+" Either just the name of the executable or its pathname. On Windows,\n"
+" the path can use environment variables with ${ProgramFiles} syntax.\n"
+" Default: the tool name."
msgstr ""
-"``width``\n"
-" Define a largura das arestas do ramo, em pixels."
+"``executable``\n"
+" Pode ser apenas o nome do executável ou seu caminho completo. No\n"
+" Windows, o caminho pode usar variáveis de ambiente com a sintaxe\n"
+" ${ProgramFiles}.\n"
+" Padrão: o próprio nome da ferramenta."
msgid ""
-"``color``\n"
-" Set branch edges color in hexadecimal RGB notation."
+"``args``\n"
+" The arguments to pass to the tool executable. You can refer to the\n"
+" files being merged as well as the output file through these\n"
+" variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
+" Default: ``$local $base $other``"
msgstr ""
-"``color``\n"
-" Define a cor das arestas do ramo, em notação RGB hexadecimal."
+"``args``\n"
+" Os parâmetros passados para o executável da ferramenta. Você pode se\n"
+" referir aos arquivos a serem mesclados bem como ao arquivo de saída\n"
+" usando as seguintes variáveis: ``$base`` (versão base), ``$local``\n"
+" (versão local), ``$other`` (a outra versão), ``$output`` (o arquivo\n"
+" de saída).\n"
+" Padrão: ``$local $base $other``"
msgid ""
+"``premerge``\n"
+" Attempt to run internal non-interactive 3-way merge tool before\n"
+" launching external tool. Options are ``true``, ``false``, or ``keep``\n"
+" to leave markers in the file if the premerge fails.\n"
+" Default: True"
+msgstr ""
+"``premerge``\n"
+" Tenta executar a ferramenta interna não-interativa de mesclagem de\n"
+" 3 vias antes de executar a ferramenta externa. As opções são\n"
+" ``true``, ``false``, ou ``keep`` para deixar marcações no conteúdo\n"
+" do arquivo se o premerge falhar.\n"
+" Padrão: True"
+
+msgid ""
+"``binary``\n"
+" This tool can merge binary files. Defaults to False, unless tool\n"
+" was selected by file pattern match."
+msgstr ""
+"``binary``\n"
+" Esta ferramenta é capaz de mesclar arquivos binários. O padrão é\n"
+" False, a não ser que a ferramenta tenha sido selecionada por\n"
+" correspondência de padrão de arquivo (seção ``[merge-patterns]``)."
+
+msgid ""
+"``symlink``\n"
+" This tool can merge symlinks. Defaults to False, even if tool was\n"
+" selected by file pattern match."
+msgstr ""
+"``symlink``\n"
+" Esta ferramenta pode mesclar links simbólicos. O padrão é False,\n"
+" mesmo que a ferramenta tenha sido selecionada por\n"
+" correspondência de padrão de arquivo."
+
+msgid ""
+"``check``\n"
+" A list of merge success-checking options:"
+msgstr ""
+"``check``\n"
+" Uma lista de opções de verificação de sucesso da mesclagem:"
+
+msgid ""
+" ``changed``\n"
+" Ask whether merge was successful when the merged file shows no changes.\n"
+" ``conflicts``\n"
+" Check whether there are conflicts even though the tool reported success.\n"
+" ``prompt``\n"
+" Always prompt for merge success, regardless of success reported by tool."
+msgstr ""
+" ``changed``\n"
+" Perguntar se a mesclagem teve sucesso, caso o arquivo mesclado não mostre mudanças.\n"
+" ``conflicts``\n"
+" Verificar a existência de conflitos mesmo que a ferramenta indique sucesso.\n"
+" ``prompt``\n"
+" Sempre perguntar se a mesclagem teve sucesso, sem levar em conta o informado pela ferramenta."
+
+msgid ""
+"``checkchanged``\n"
+" True is equivalent to ``check = changed``.\n"
+" Default: False"
+msgstr ""
+"``checkchanged``\n"
+" True equivale a ``check = changed``.\n"
+" Padrão: False"
+
+msgid ""
+"``checkconflicts``\n"
+" True is equivalent to ``check = conflicts``.\n"
+" Default: False"
+msgstr ""
+"``checkconflicts``\n"
+" True equivale a ``check = conflicts``.\n"
+" Padrão: False"
+
+msgid ""
+"``fixeol``\n"
+" Attempt to fix up EOL changes caused by the merge tool.\n"
+" Default: False"
+msgstr ""
+"``fixeol``\n"
+" Tenta corrigir mudanças de quebras de linha causadas pela ferramenta de mesclagem.\n"
+" Padrão: False"
+
+msgid ""
+"``gui``\n"
+" This tool requires a graphical interface to run. Default: False"
+msgstr ""
+"``gui``\n"
+" Esta ferramenta exige uma interface gráfica para ser executada. Padrão: False"
+
+msgid ""
+"``regkey``\n"
+" Windows registry key which describes install location of this\n"
+" tool. Mercurial will search for this key first under\n"
+" ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.\n"
+" Default: None"
+msgstr ""
+"``regkey``\n"
+" Chave do registro do Windows que descreve a localização de instalação\n"
+" desta ferramenta. O Mercurial procurará por esta chave primeiro sob\n"
+" ``HKEY_CURRENT_USER`` e em seguida sob ``HKEY_LOCAL_MACHINE``.\n"
+" Padrão: Nenhum"
+
+msgid ""
+"``regkeyalt``\n"
+" An alternate Windows registry key to try if the first key is not\n"
+" found. The alternate key uses the same ``regname`` and ``regappend``\n"
+" semantics of the primary key. The most common use for this key\n"
+" is to search for 32bit applications on 64bit operating systems.\n"
+" Default: None"
+msgstr ""
+"``regkeyalt``\n"
+" Uma chave alternativa de registro do Windows a ser tentada caso a primeira\n"
+" chave não seja encontrada. A chave alternativa usa as mesmas semânticas\n"
+" ``regname`` e ``regappend`` da chave primária.\n"
+" O uso mais comum desta chave é a procura de aplicações 32 bits em\n"
+" sistemas operacionais 64 bits.\n"
+" Padrão: None"
+
+msgid ""
+"``regname``\n"
+" Name of value to read from specified registry key. Defaults to the\n"
+" unnamed (default) value."
+msgstr ""
+"``regname``\n"
+" Nome do valor a ser lido da chave de registro especificada. O padrão é\n"
+" o valor sem nome (padrão)."
+
+msgid ""
+"``regappend``\n"
+" String to append to the value read from the registry, typically\n"
+" the executable name of the tool.\n"
+" Default: None"
+msgstr ""
+"``regappend``\n"
+" String a ser anexada ao valor lido do registro, tipicamente o nome\n"
+" do executável da ferramenta.\n"
+" Padrão: None"
+
+msgid ""
+"\n"
"``hooks``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
+"\n"
"``hooks``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgid ""
"Commands or Python functions that get automatically executed by\n"
"various actions such as starting or finishing a commit. Multiple\n"
"hooks can be run for the same action by appending a suffix to the\n"
"action. Overriding a site-wide hook can be done by changing its\n"
-"value or setting it to an empty string. Hooks can be prioritized\n"
-"by adding a prefix of ``priority`` to the hook name on a new line\n"
-"and setting the priority. The default priority is 0 if\n"
-"not specified."
+"value or setting it to an empty string."
msgstr ""
"Hooks, ou ganchos, são comandos ou funções Python automaticamente\n"
"executados por várias ações, como iniciar ou finalizar um commit.\n"
"Múltiplos ganchos podem ser executados para a mesma ação através\n"
"da adição de um sufixo à ação.\n"
"Um gancho definido para o sistema todo pode ser sobreposto alterando\n"
-"seu valor ou definindo-o para uma string vazia.\n"
-"Ganchos podem ser priorizados adicionando-se um prefixo ``priority``\n"
-"ao nome do gancho em uma nova linha e atribuindo a prioridade.\n"
-"Se não especificada, a prioridade padrão é 0."
+"seu valor ou definindo-o para uma string vazia."
msgid "Example ``.hg/hgrc``::"
msgstr "Um exemplo de ``.hg/.hgrc``::"
@@ -16536,9 +13947,7 @@ msgid ""
" # do not use the site-wide hook\n"
" incoming =\n"
" incoming.email = /my/email/hook\n"
-" incoming.autobuild = /my/build/hook\n"
-" # force autobuild hook to run before other incoming hooks\n"
-" priority.incoming.autobuild = 1"
+" incoming.autobuild = /my/build/hook"
msgstr ""
" [hooks]\n"
" # atualiza o diretório de trabalho após a adição de revisões\n"
@@ -16546,9 +13955,7 @@ msgstr ""
" # não usa o gancho de sistema\n"
" incoming =\n"
" incoming.email = /my/email/hook\n"
-" incoming.autobuild = /my/build/hook\n"
-" # força o gancho autobuild a ser executado antes de outros ganchos incoming\n"
-" priority.incoming.autobuild = 1"
+" incoming.autobuild = /my/build/hook"
msgid ""
"Most hooks are run with environment variables set that give useful\n"
@@ -16909,53 +14316,12 @@ msgstr ""
msgid ""
"\n"
-"``hostfingerprints``\n"
-"--------------------"
-msgstr ""
-"\n"
-"``hostfingerprints``\n"
-"--------------------"
-
-msgid ""
-"Fingerprints of the certificates of known HTTPS servers.\n"
-"A HTTPS connection to a server with a fingerprint configured here will\n"
-"only succeed if the servers certificate matches the fingerprint.\n"
-"This is very similar to how ssh known hosts works.\n"
-"The fingerprint is the SHA-1 hash value of the DER encoded certificate.\n"
-"The CA chain and web.cacerts is not used for servers with a fingerprint."
-msgstr ""
-"Impressões digitais (\"fingerprints\") dos certificados de servidores\n"
-"HTTPS conhecidos.\n"
-"Uma conexão HTTPS com um servidor com uma impressão digital configurada\n"
-"aqui só terá sucesso se o certificado do servidor bater com a impressão.\n"
-"Isto é bastante similar ao mecanismo \"known hosts\" do ssh.\n"
-"A impressão digital é o valor do hash SHA-1 do certificado codificado\n"
-"em formato DER.\n"
-"A cadeia CA e a opção web.cacerts não são usadas para servidores com\n"
-"impressões digitais configuradas."
-
-msgid "For example::"
-msgstr "Por exemplo::"
-
-msgid ""
-" [hostfingerprints]\n"
-" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc"
-msgstr ""
-" [hostfingerprints]\n"
-" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc"
-
-msgid "This feature is only supported when using Python 2.6 or later."
-msgstr ""
-"Esta funcionalidade só é suportada nas versões do Python 2.6 ou posteriores."
-
-msgid ""
-"\n"
"``http_proxy``\n"
-"--------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
"\n"
"``http_proxy``\n"
-"--------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgid ""
"Used to access web-based Mercurial repositories through a HTTP\n"
@@ -17006,260 +14372,76 @@ msgstr ""
" entradas em ``http_proxy.no``. Booleana; o padrão é False."
msgid ""
-"``merge-patterns``\n"
-"------------------"
-msgstr ""
-"``merge-patterns``\n"
-"------------------"
-
-msgid ""
-"This section specifies merge tools to associate with particular file\n"
-"patterns. Tools matched here will take precedence over the default\n"
-"merge tool. Patterns are globs by default, rooted at the repository\n"
-"root."
-msgstr ""
-"Esta seção especifica ferramentas de mesclagem a serem associados a\n"
-"determinados padrões de arquivo. As ferramentas correspondentes têm\n"
-"prioridade sobre o utilitário padrão de mesclagem. Por padrão, os\n"
-"padrões de arquivo são globs a partir do raiz do repositório."
-
-msgid ""
-" [merge-patterns]\n"
-" **.c = kdiff3\n"
-" **.jpg = myimgmerge"
-msgstr ""
-" [merge-patterns]\n"
-" **.c = kdiff3\n"
-" **.jpg = myimgmerge"
-
-msgid ""
-"``merge-tools``\n"
-"---------------"
-msgstr ""
-"``merge-tools``\n"
-"---------------"
-
-msgid ""
-"This section configures external merge tools to use for file-level\n"
-"merges."
-msgstr ""
-"Esta seção configura ferramentas de mesclagem externas a serem\n"
-"usadas em mesclagens de arquivo."
-
-msgid "Example ``~/.hgrc``::"
-msgstr "Um exemplo de ``~/.hgrc``::"
-
-msgid ""
-" [merge-tools]\n"
-" # Override stock tool location\n"
-" kdiff3.executable = ~/bin/kdiff3\n"
-" # Specify command line\n"
-" kdiff3.args = $base $local $other -o $output\n"
-" # Give higher priority\n"
-" kdiff3.priority = 1"
-msgstr ""
-" [merge-tools]\n"
-" # sobrepõe a localização padrão da ferramenta\n"
-" kdiff3.executable = ~/bin/kdiff3\n"
-" # Especifica a linha de comando\n"
-" kdiff3.args = $base $local $other -o $output\n"
-" # Usa uma prioridade mais alta\n"
-" kdiff3.priority = 1"
-
-msgid ""
-" # Define new tool\n"
-" myHtmlTool.args = -m $local $other $base $output\n"
-" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
-" myHtmlTool.priority = 1"
-msgstr ""
-" # Define uma nova ferramenta\n"
-" myHtmlTool.args = -m $local $other $base $output\n"
-" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
-" myHtmlTool.priority = 1"
-
-msgid ""
-"``priority``\n"
-" The priority in which to evaluate this tool.\n"
-" Default: 0."
-msgstr ""
-"``priority``\n"
-" A prioridade com a qual avaliar esta ferramenta.\n"
-" Padrão: 0."
-
-msgid ""
-"``executable``\n"
-" Either just the name of the executable or its pathname. On Windows,\n"
-" the path can use environment variables with ${ProgramFiles} syntax.\n"
-" Default: the tool name."
-msgstr ""
-"``executable``\n"
-" Pode ser apenas o nome do executável ou seu caminho completo. No\n"
-" Windows, o caminho pode usar variáveis de ambiente com a sintaxe\n"
-" ${ProgramFiles}.\n"
-" Padrão: o próprio nome da ferramenta."
-
-msgid ""
-"``args``\n"
-" The arguments to pass to the tool executable. You can refer to the\n"
-" files being merged as well as the output file through these\n"
-" variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
-" Default: ``$local $base $other``"
-msgstr ""
-"``args``\n"
-" Os parâmetros passados para o executável da ferramenta. Você pode se\n"
-" referir aos arquivos a serem mesclados bem como ao arquivo de saída\n"
-" usando as seguintes variáveis: ``$base`` (versão base), ``$local``\n"
-" (versão local), ``$other`` (a outra versão), ``$output`` (o arquivo\n"
-" de saída).\n"
-" Padrão: ``$local $base $other``"
-
-msgid ""
-"``premerge``\n"
-" Attempt to run internal non-interactive 3-way merge tool before\n"
-" launching external tool. Options are ``true``, ``false``, or ``keep``\n"
-" to leave markers in the file if the premerge fails.\n"
-" Default: True"
-msgstr ""
-"``premerge``\n"
-" Tenta executar a ferramenta interna não interativa de mesclagem de\n"
-" 3 vias antes de executar a ferramenta externa. As opções são\n"
-" ``true``, ``false``, ou ``keep`` para deixar marcações no conteúdo\n"
-" do arquivo se o premerge falhar.\n"
-" Padrão: True"
-
-msgid ""
-"``binary``\n"
-" This tool can merge binary files. Defaults to False, unless tool\n"
-" was selected by file pattern match."
-msgstr ""
-"``binary``\n"
-" Esta ferramenta é capaz de mesclar arquivos binários. O padrão é\n"
-" False, a não ser que a ferramenta tenha sido selecionada por\n"
-" correspondência de padrão de arquivo (seção ``[merge-patterns]``)."
-
-msgid ""
-"``symlink``\n"
-" This tool can merge symlinks. Defaults to False, even if tool was\n"
-" selected by file pattern match."
-msgstr ""
-"``symlink``\n"
-" Esta ferramenta pode mesclar links simbólicos. O padrão é False,\n"
-" mesmo que a ferramenta tenha sido selecionada por\n"
-" correspondência de padrão de arquivo."
-
-msgid ""
-"``check``\n"
-" A list of merge success-checking options:"
-msgstr ""
-"``check``\n"
-" Uma lista de opções de verificação de sucesso da mesclagem:"
-
-msgid ""
-" ``changed``\n"
-" Ask whether merge was successful when the merged file shows no changes.\n"
-" ``conflicts``\n"
-" Check whether there are conflicts even though the tool reported success.\n"
-" ``prompt``\n"
-" Always prompt for merge success, regardless of success reported by tool."
-msgstr ""
-" ``changed``\n"
-" Perguntar se a mesclagem teve sucesso, caso o arquivo mesclado não mostre mudanças.\n"
-" ``conflicts``\n"
-" Verificar a existência de conflitos mesmo que a ferramenta indique sucesso.\n"
-" ``prompt``\n"
-" Sempre perguntar se a mesclagem teve sucesso, sem levar em conta o informado pela ferramenta."
-
-msgid ""
-"``checkchanged``\n"
-" True is equivalent to ``check = changed``.\n"
-" Default: False"
+"``smtp``\n"
+"\"\"\"\"\"\"\"\""
msgstr ""
-"``checkchanged``\n"
-" True equivale a ``check = changed``.\n"
-" Padrão: False"
+"``smtp``\n"
+"\"\"\"\"\"\"\"\""
-msgid ""
-"``checkconflicts``\n"
-" True is equivalent to ``check = conflicts``.\n"
-" Default: False"
-msgstr ""
-"``checkconflicts``\n"
-" True equivale a ``check = conflicts``.\n"
-" Padrão: False"
+msgid "Configuration for extensions that need to send email messages."
+msgstr "Configurações para extensões que enviam mensagens de email."
msgid ""
-"``fixeol``\n"
-" Attempt to fix up EOL changes caused by the merge tool.\n"
-" Default: False"
+"``host``\n"
+" Host name of mail server, e.g. \"mail.example.com\"."
msgstr ""
-"``fixeol``\n"
-" Tenta corrigir mudanças de quebras de linha causadas pela ferramenta de mesclagem.\n"
-" Padrão: False"
+"``host``\n"
+" Nome do servidor de emails, como em \"mail.example.com\"."
msgid ""
-"``gui``\n"
-" This tool requires a graphical interface to run. Default: False"
+"``port``\n"
+" Optional. Port to connect to on mail server. Default: 25."
msgstr ""
-"``gui``\n"
-" Esta ferramenta exige uma interface gráfica para ser executada. Padrão: False"
+"``port``\n"
+" Opcional. Porta usada pelo servidor de emails. Padrão: 25."
msgid ""
-"``regkey``\n"
-" Windows registry key which describes install location of this\n"
-" tool. Mercurial will search for this key first under\n"
-" ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.\n"
-" Default: None"
+"``tls``\n"
+" Optional. Method to enable TLS when connecting to mail server: starttls,\n"
+" smtps or none. Default: none."
msgstr ""
-"``regkey``\n"
-" Chave do registro do Windows que descreve a localização de instalação\n"
-" desta ferramenta. O Mercurial procurará por esta chave primeiro sob\n"
-" ``HKEY_CURRENT_USER`` e em seguida sob ``HKEY_LOCAL_MACHINE``.\n"
-" Padrão: Nenhum"
+"``tls``\n"
+" Opcional. Método para habilitar TLS ao conectar com o servidor de\n"
+" emails: starttls, smtps ou none. Padrão: none."
msgid ""
-"``regkeyalt``\n"
-" An alternate Windows registry key to try if the first key is not\n"
-" found. The alternate key uses the same ``regname`` and ``regappend``\n"
-" semantics of the primary key. The most common use for this key\n"
-" is to search for 32bit applications on 64bit operating systems.\n"
-" Default: None"
+"``username``\n"
+" Optional. User name for authenticating with the SMTP server.\n"
+" Default: none."
msgstr ""
-"``regkeyalt``\n"
-" Uma chave alternativa de registro do Windows a ser tentada caso a primeira\n"
-" chave não seja encontrada. A chave alternativa usa as mesmas semânticas\n"
-" ``regname`` e ``regappend`` da chave primária.\n"
-" O uso mais comum desta chave é a procura de aplicações 32 bits em\n"
-" sistemas operacionais 64 bits.\n"
-" Padrão: None"
+"``username``\n"
+" Opcional. Nome de usuário usado para autenticação no servidor\n"
+" de emails. Padrão: none."
msgid ""
-"``regname``\n"
-" Name of value to read from specified registry key. Defaults to the\n"
-" unnamed (default) value."
+"``password``\n"
+" Optional. Password for authenticating with the SMTP server. If not\n"
+" specified, interactive sessions will prompt the user for a\n"
+" password; non-interactive sessions will fail. Default: none."
msgstr ""
-"``regname``\n"
-" Nome do valor a ser lido da chave de registro especificada. O padrão é\n"
-" o valor sem nome (padrão)."
+"``password``\n"
+" Opcional. Senha usada para autenticação no servidor de emails.\n"
+" Se não for especificada, sessões interativas consultarão o\n"
+" usuário para que ele forneça a senha; sessões não interativas\n"
+" falharão. Padrão: none."
msgid ""
-"``regappend``\n"
-" String to append to the value read from the registry, typically\n"
-" the executable name of the tool.\n"
-" Default: None"
+"``local_hostname``\n"
+" Optional. It's the hostname that the sender can use to identify\n"
+" itself to the MTA."
msgstr ""
-"``regappend``\n"
-" String a ser anexada ao valor lido do registro, tipicamente o nome\n"
-" do executável da ferramenta.\n"
-" Padrão: None"
+"``local_hostname``\n"
+" Opcional. É o nome de servidor que o remetente pode usar para se\n"
+" identificar para o MTA."
msgid ""
"\n"
"``patch``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
"\n"
"``patch``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgid ""
"Settings used when applying patches, for instance through the 'import'\n"
@@ -17296,11 +14478,11 @@ msgstr ""
msgid ""
"\n"
"``paths``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
"\n"
"``paths``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgid ""
"Assigns symbolic names to repositories. The left side is the\n"
@@ -17334,108 +14516,34 @@ msgstr ""
" não for especificado."
msgid ""
-"``phases``\n"
-"----------"
-msgstr ""
-"``phases``\n"
-"----------"
-
-msgid ""
-"Specifies default handling of phases. See :hg:`help phases` for more\n"
-"information about working with phases."
-msgstr ""
-"Especifica o gerenciamento padrão de fases. Veja :hg:`help phases`\n"
-"para mais informações sobre fases."
-
-msgid ""
-"``publish``\n"
-" Controls draft phase behavior when working as a server. When true,\n"
-" pushed changesets are set to public in both client and server and\n"
-" pulled or cloned changesets are set to public in the client.\n"
-" Default: True"
-msgstr ""
-"``publish``\n"
-" Controla o comportamento da fase rascunho em um servidor. Se for\n"
-" True, revisões enviadas usando push se tornam públicas tanto no\n"
-" cliente como no servidor, e revisões recebidas usando pull ou\n"
-" clone se tornam públicas no cliente. O padrão é True."
-
-msgid ""
-"``new-commit``\n"
-" Phase of newly-created commits.\n"
-" Default: draft"
-msgstr ""
-"``new-commit``\n"
-" Fase de revisões criadas usando commit.\n"
-" Padrão: draft (rascunho)"
-
-msgid ""
+"\n"
"``profiling``\n"
-"-------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
+"\n"
"``profiling``\n"
-"-------------"
-
-msgid ""
-"Specifies profiling type, format, and file output. Two profilers are\n"
-"supported: an instrumenting profiler (named ``ls``), and a sampling\n"
-"profiler (named ``stat``)."
-msgstr ""
-"Especifica o tipo, formato e saída de arquivo de profiling.\n"
-"Dois profilers são suportados: um profiler de instrumentação\n"
-"(chamado ``ls``) e um de amostragem (chamado ``stat``)."
+"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgid ""
-"In this section description, 'profiling data' stands for the raw data\n"
-"collected during profiling, while 'profiling report' stands for a\n"
-"statistical text report generated from the profiling data. The\n"
-"profiling is done using lsprof."
+"Specifies profiling format and file output. In this section\n"
+"description, 'profiling data' stands for the raw data collected\n"
+"during profiling, while 'profiling report' stands for a statistical\n"
+"text report generated from the profiling data. The profiling is done\n"
+"using lsprof."
msgstr ""
-"Na descrição desta\n"
+"Especifica formatos de profiling e saída de arquivos. Na descrição desta\n"
"seção, 'dados de profiling' são os dados crus coletados durante o\n"
"profiling, enquanto 'relatório de profiling' é um relatório estatístico\n"
"em formato texto gerado a partir dos dados de profiling.\n"
"O profiling é feito usando lsprof."
msgid ""
-"``type``\n"
-" The type of profiler to use.\n"
-" Default: ls."
-msgstr ""
-"``type``\n"
-" O tipo de profiler a ser usado.\n"
-" Padrão: ls."
-
-msgid ""
-" ``ls``\n"
-" Use Python's built-in instrumenting profiler. This profiler\n"
-" works on all platforms, but each line number it reports is the\n"
-" first line of a function. This restriction makes it difficult to\n"
-" identify the expensive parts of a non-trivial function.\n"
-" ``stat``\n"
-" Use a third-party statistical profiler, statprof. This profiler\n"
-" currently runs only on Unix systems, and is most useful for\n"
-" profiling commands that run for longer than about 0.1 seconds."
-msgstr ""
-" ``ls``\n"
-" Usa o profiler de instrumentação embutido no Python. Este profiler\n"
-" funciona em todas as plataformas, mas cada número de linha que ele\n"
-" informa é a primeira linha de uma função. Esta restrição dificulta\n"
-" a identificação de partes caras de funções não triviais.\n"
-" ``stat``\n"
-" Usa o profiler estatístico statprof, fornecido separadamente. No\n"
-" momento este profiler funciona apenas em sistemas Unix, e é mais\n"
-" útil para analisar comandos que rodem por mais de cerca de 0.1\n"
-" segundos."
-
-msgid ""
"``format``\n"
-" Profiling format. Specific to the ``ls`` instrumenting profiler.\n"
+" Profiling format.\n"
" Default: text."
msgstr ""
"``format``\n"
-" Formato de profiling. Específico para o profiler de\n"
-" instrumentação ``ls``.\n"
+" Formato de profiling.\n"
" Padrão: text."
msgid ""
@@ -17458,16 +14566,6 @@ msgstr ""
" no kcachegrind."
msgid ""
-"``frequency``\n"
-" Sampling frequency. Specific to the ``stat`` sampling profiler.\n"
-" Default: 1000."
-msgstr ""
-"``frequency``\n"
-" Frequência de amostragem. Específico para o profiler de amostragem\n"
-" ``stat``.\n"
-" Padrão: 1000."
-
-msgid ""
"``output``\n"
" File path where profiling data or report should be saved. If the\n"
" file exists, it is replaced. Default: None, data is printed on\n"
@@ -17480,10 +14578,10 @@ msgstr ""
msgid ""
"``revsetalias``\n"
-"---------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
"``revsetalias``\n"
-"---------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgid "Alias definitions for revsets. See :hg:`help revsets` for details."
msgstr ""
@@ -17492,10 +14590,10 @@ msgstr ""
msgid ""
"``server``\n"
-"----------"
+"\"\"\"\"\"\"\"\"\"\""
msgstr ""
"``server``\n"
-"----------"
+"\"\"\"\"\"\"\"\"\"\""
msgid "Controls generic server settings."
msgstr "Controla configurações genéricas de servidores."
@@ -17522,22 +14620,12 @@ msgstr ""
" rápido (~10x) que um clone comum. Na maior parte de conexões WAN\n"
" (ou qualquer conexão mais lenta que cerca de 6 Mbps), streaming\n"
" não comprimido é mais lento, por causa dos dados extras\n"
-" transferidos. Este modo também usará\n"
+" transferidos. Este modo também temporariamente usará\n"
" temporariamente o bloqueio de escrita no repositório enquanto\n"
" forem determinados os dados a serem transmitidos.\n"
" O padrão é True."
msgid ""
-"``preferuncompressed``\n"
-" When set, clients will try to use the uncompressed streaming\n"
-" protocol. Default is False."
-msgstr ""
-"``preferuncompressed``\n"
-" Se definido, clientes preferirão o protocolo de streaming\n"
-" não comprimido.\n"
-" O padrão é False."
-
-msgid ""
"``validate``\n"
" Whether to validate the completeness of pushed changesets by\n"
" checking that all new file revisions specified in manifests are\n"
@@ -17549,99 +14637,28 @@ msgstr ""
" estão presentes. O padrão é False."
msgid ""
-"``smtp``\n"
-"--------"
-msgstr ""
-"``smtp``\n"
-"--------"
-
-msgid "Configuration for extensions that need to send email messages."
-msgstr "Configurações para extensões que enviam mensagens de email."
-
-msgid ""
-"``host``\n"
-" Host name of mail server, e.g. \"mail.example.com\"."
-msgstr ""
-"``host``\n"
-" Nome do servidor de emails, como em \"mail.example.com\"."
-
-msgid ""
-"``port``\n"
-" Optional. Port to connect to on mail server. Default: 25."
-msgstr ""
-"``port``\n"
-" Opcional. Porta usada pelo servidor de emails. Padrão: 25."
-
-msgid ""
-"``tls``\n"
-" Optional. Method to enable TLS when connecting to mail server: starttls,\n"
-" smtps or none. Default: none."
-msgstr ""
-"``tls``\n"
-" Opcional. Método para habilitar TLS ao conectar com o servidor de\n"
-" emails: starttls, smtps ou none. Padrão: none."
-
-msgid ""
-"``username``\n"
-" Optional. User name for authenticating with the SMTP server.\n"
-" Default: none."
-msgstr ""
-"``username``\n"
-" Opcional. Nome de usuário usado para autenticação no servidor\n"
-" de emails. Padrão: none."
-
-msgid ""
-"``password``\n"
-" Optional. Password for authenticating with the SMTP server. If not\n"
-" specified, interactive sessions will prompt the user for a\n"
-" password; non-interactive sessions will fail. Default: none."
-msgstr ""
-"``password``\n"
-" Opcional. Senha usada para autenticação no servidor de emails.\n"
-" Se não for especificada, sessões interativas consultarão o\n"
-" usuário para que ele forneça a senha; sessões não interativas\n"
-" falharão. Padrão: none."
-
-msgid ""
-"``local_hostname``\n"
-" Optional. It's the hostname that the sender can use to identify\n"
-" itself to the MTA."
-msgstr ""
-"``local_hostname``\n"
-" Opcional. É o nome de servidor que o remetente pode usar para se\n"
-" identificar para o MTA."
-
-msgid ""
-"\n"
"``subpaths``\n"
-"------------"
+"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
"``subpaths``\n"
-"------------"
+"\"\"\"\"\"\"\"\"\"\"\"\""
-msgid ""
-"Subrepository source URLs can go stale if a remote server changes name\n"
-"or becomes temporarily unavailable. This section lets you define\n"
-"rewrite rules of the form::"
-msgstr ""
-"URLs de origem de sub-repositórios podem se tornar obsoletas se\n"
-"um servidor remoto mudar de nome ou se tornar indisponível. Esta\n"
-"seção possibilita a definição de regras de reescrita com a forma::"
+msgid "Defines subrepositories source locations rewriting rules of the form::"
+msgstr "Define regras de reescrita de localização de subrepositórios da forma::"
msgid " <pattern> = <replacement>"
-msgstr " <padrão> = <substituição>"
+msgstr " <padrao> = <substituicao>"
msgid ""
-"where ``pattern`` is a regular expression matching a subrepository\n"
-"source URL and ``replacement`` is the replacement string used to\n"
-"rewrite it. Groups can be matched in ``pattern`` and referenced in\n"
-"``replacements``. For instance::"
+"Where ``pattern`` is a regular expression matching the source and\n"
+"``replacement`` is the replacement string used to rewrite it. Groups\n"
+"can be matched in ``pattern`` and referenced in ``replacements``. For\n"
+"instance::"
msgstr ""
-"Onde ``padrão`` é uma expressão regular comparada com uma URL de\n"
-"sub-repositório original e ``substituição`` é o texto a ser usado\n"
-"para reescrevê-la. Grupos podem ser usados em ``padrão`` e\n"
-"referenciados em ``substituição``. Por exemplo::"
+"Onde ``padrao`` é uma expressão regular comparada com a origem e\n"
+"``substituicao`` é o texto a ser usado para reescrevê-la. Grupos\n"
+"podem ser usados em ``padrao`` e referenciados em ``substituicao``.\n"
+"Por exemplo::"
msgid " http://server/(.*)-hg/ = http://hg.server/\\1/"
msgstr " http://server/(.*)-hg/ = http://hg.server/\\1/"
@@ -17649,21 +14666,15 @@ msgstr " http://server/(.*)-hg/ = http://hg.server/\\1/"
msgid "rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``."
msgstr "reescreve ``http://server/foo-hg/`` como ``http://hg.server/foo/``."
-msgid ""
-"Relative subrepository paths are first made absolute, and the\n"
-"rewrite rules are then applied on the full (absolute) path. The rules\n"
-"are applied in definition order."
-msgstr ""
-"Caminhos relativos para sub-repositórios são primeiramente tornados\n"
-"absolutos, e em seguida as regras de reescrita são aplicadas no\n"
-"caminho absoluto completo. As regras são aplicadas na ordem de definição."
+msgid "All patterns are applied in definition order."
+msgstr "Todos os padrões são aplicados na ordem de definição."
msgid ""
"``trusted``\n"
-"-----------"
+"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
"``trusted``\n"
-"-----------"
+"\"\"\"\"\"\"\"\"\"\"\""
msgid ""
"Mercurial will not use the settings in the\n"
@@ -17713,11 +14724,11 @@ msgstr ""
msgid ""
"\n"
"``ui``\n"
-"------"
+"\"\"\"\"\"\""
msgstr ""
"\n"
"``ui``\n"
-"------"
+"\"\"\"\"\"\""
msgid "User interface controls."
msgstr "Controles de interface com o usuário."
@@ -17756,14 +14767,14 @@ msgid ""
" Whether to commit modified subrepositories when committing the\n"
" parent repository. If False and one subrepository has uncommitted\n"
" changes, abort the commit.\n"
-" Default is False."
+" Default is True."
msgstr ""
"``commitsubrepos``\n"
" Determina se sub-repositórios modificados serão automaticamente\n"
" consolidados ao consolidar o repositório pai. Se for False e\n"
" algum sub-repositório tiver mudanças não consolidadas, aborta a\n"
" consolidação do repositório pai.\n"
-" O padrão é False."
+" O padrão é True."
msgid ""
"``debug``\n"
@@ -17878,16 +14889,6 @@ msgstr ""
" O padrão é ``hg``."
msgid ""
-"``reportoldssl``\n"
-" Warn if an SSL certificate is unable to be due to using Python\n"
-" 2.5 or earlier. True or False. Default is True."
-msgstr ""
-"``reportoldssl``\n"
-" Avisa se um certificado SSL não puder ser usado por falta de\n"
-" suporte nas versões do Pyton 2.5 ou anteriores. True ou False.\n"
-" O padrão é True."
-
-msgid ""
"``report_untrusted``\n"
" Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a\n"
" trusted user or group. True or False. Default is True."
@@ -17989,11 +14990,11 @@ msgstr ""
msgid ""
"\n"
"``web``\n"
-"-------"
+"\"\"\"\"\"\"\""
msgstr ""
"\n"
"``web``\n"
-"-------"
+"\"\"\"\"\"\"\""
msgid ""
"Web interface configuration. The settings in this section apply to\n"
@@ -18076,7 +15077,7 @@ msgstr ""
"``allowbz2``\n"
" (OBSOLETA) Determina se revisões estarão disponíveis para download\n"
" em formato .tar.bz2.\n"
-" O padrão é False."
+" O padrao é False."
msgid ""
"``allowgz``\n"
@@ -18087,7 +15088,7 @@ msgstr ""
"``allowgz``\n"
" (OBSOLETA) Determina se revisões estarão disponíveis para download\n"
" em formato .tar.gz.\n"
-" O padrão é False."
+" O padrao é False."
msgid ""
"``allowpull``\n"
@@ -18164,7 +15165,7 @@ msgstr ""
"``allowzip``\n"
" (OBSOLETA) Determina se revisões estarão disponíveis para download\n"
" em formato .zip.\n"
-" O padrão é False."
+" O padrao é False."
msgid ""
"``baseurl``\n"
@@ -18183,14 +15184,30 @@ msgid ""
" authority certificates. Environment variables and ``~user``\n"
" constructs are expanded in the filename. If specified on the\n"
" client, then it will verify the identity of remote HTTPS servers\n"
-" with these certificates."
+" with these certificates. The form must be as follows::"
msgstr ""
"``cacerts``\n"
" Caminho para um arquivo contendo uma lista de certificados de\n"
" autoridades certificadoras em formato PEM. Variáveis de ambiente\n"
" e construções ``~user`` são expandidas no nome de arquivo. Se\n"
" especificada no cliente, o Mercurial irá verificar a identidade\n"
-" de servidores HTTPS remotos usando estes certificados."
+" de servidores HTTPS remotos usando estes certificados. A forma\n"
+" deve ser a seguinte::"
+
+msgid ""
+" -----BEGIN CERTIFICATE-----\n"
+" ... (certificate in base64 PEM encoding) ...\n"
+" -----END CERTIFICATE-----\n"
+" -----BEGIN CERTIFICATE-----\n"
+" ... (certificate in base64 PEM encoding) ...\n"
+" -----END CERTIFICATE-----"
+msgstr ""
+" -----BEGIN CERTIFICATE-----\n"
+" ... (certificado em codificação PEM base64) ...\n"
+" -----END CERTIFICATE-----\n"
+" -----BEGIN CERTIFICATE-----\n"
+" ... (certificado em codificação PEM base64) ...\n"
+" -----END CERTIFICATE-----"
msgid ""
" This feature is only supported when using Python 2.6 or later. If you wish\n"
@@ -18204,38 +15221,21 @@ msgstr ""
" disponível em ``http://pypi.python.org``."
msgid ""
-" To disable SSL verification temporarily, specify ``--insecure`` from\n"
-" command line."
-msgstr ""
-" Para temporariamente desabilitar a verificação SSL, especifique\n"
-" ``--insecure`` (inseguro) na linha de comando."
-
-msgid ""
-" You can use OpenSSL's CA certificate file if your platform has\n"
-" one. On most Linux systems this will be\n"
-" ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to\n"
-" generate this file manually. The form must be as follows::"
+" You can use OpenSSL's CA certificate file if your platform has one.\n"
+" On most Linux systems this will be ``/etc/ssl/certs/ca-certificates.crt``.\n"
+" Otherwise you will have to generate this file manually."
msgstr ""
" Você pode usar o arquivo de certificado CA do OpenSSL se sua\n"
" plataforma tiver um. Em muitos sistemas Linux, será o arquivo\n"
" ``/etc/ssl/certs/ca-certificates.crt``.\n"
-" De outro modo, você terá que gerar esse arquivo manualmente.\n"
-" A forma deve ser a seguinte::"
+" De outro modo, você terá que gerar esse arquivo manualmente."
msgid ""
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----\n"
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----"
+" To disable SSL verification temporarily, specify ``--insecure`` from\n"
+" command line."
msgstr ""
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificado em codificação PEM base64) ...\n"
-" -----END CERTIFICATE-----\n"
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificado em codificação PEM base64) ...\n"
-" -----END CERTIFICATE-----"
+" Para temporariamente desabilitar a verificação SSL, especifique\n"
+" ``--insecure`` (inseguro) na linha de comando."
msgid ""
"``cache``\n"
@@ -18245,27 +15245,6 @@ msgstr ""
" Habilita suporte a cache na interface hgweb. O padrão é True."
msgid ""
-"``collapse``\n"
-" With ``descend`` enabled, repositories in subdirectories are shown at\n"
-" a single level alongside repositories in the current path. With\n"
-" ``collapse`` also enabled, repositories residing at a deeper level than\n"
-" the current path are grouped behind navigable directory entries that\n"
-" lead to the locations of these repositories. In effect, this setting\n"
-" collapses each collection of repositories found within a subdirectory\n"
-" into a single entry for that subdirectory. Default is False."
-msgstr ""
-"``collapse``\n"
-" Com ``descend`` habilitado, repositórios em subdiretórios são\n"
-" exibidos em um único nível junto com repositórios no caminho\n"
-" atual. Com ``collapse`` também habilitado, repositórios que\n"
-" residam em um nível mais profundo que o caminho atual são\n"
-" agrupados atrás de entradas de diretório navegáveis que levam\n"
-" às localizações desses repositórios. Ou seja, esta\n"
-" configuração colapsa cada coleção de repositórios encontrada\n"
-" em um subdiretório em uma única entrada para esse\n"
-" subdiretório. O padrão é False."
-
-msgid ""
"``contact``\n"
" Name or email address of the person in charge of the repository.\n"
" Defaults to ui.username or ``$EMAIL`` or \"unknown\" if unset or empty."
@@ -18364,20 +15343,6 @@ msgstr ""
" Onde escrever o log de erros. O padrão é a saída de erros (stderr)."
msgid ""
-"``comparisoncontext``\n"
-" Number of lines of context to show in side-by-side file comparison. If\n"
-" negative or the value ``full``, whole files are shown. Default is 5.\n"
-" This setting can be overridden by a ``context`` request parameter to the\n"
-" ``comparison`` command, taking the same values."
-msgstr ""
-"``comparisoncontext``\n"
-" Número de linhas de contexto a serem exibidas em comparações lado a\n"
-" lado. Se negativo, ou com o valor ``full``, serão exibidos arquivos\n"
-" completos. O padrão é 5.\n"
-" Esta configuração pode ser redefinida por um parâmetro ``context`` do\n"
-" pedido para o comando ``comparison``, recebendo os mesmos valores."
-
-msgid ""
"``hidden``\n"
" Whether to hide the repository in the hgwebdir index.\n"
" Default is False."
@@ -18394,20 +15359,6 @@ msgstr ""
" Determina se IPv6 deve ser usado. O padrão é False."
msgid ""
-"``logoimg``\n"
-" File name of the logo image that some templates display on each page.\n"
-" The file name is relative to ``staticurl``. That is, the full path to\n"
-" the logo image is \"staticurl/logoimg\".\n"
-" If unset, ``hglogo.png`` will be used."
-msgstr ""
-"``logoimg``\n"
-" Nome do arquivo contendo a imagem de logotipo que alguns modelos\n"
-" exibem em cada página. O nome de arquivo é relativo a ``staticurl``.\n"
-" Isto é, o caminho completo para a imagem de logo é\n"
-" \"staticurl/logoimg\".\n"
-" Se não definido, ``hglogo.png`` será usado."
-
-msgid ""
"``logourl``\n"
" Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``\n"
" will be used."
@@ -18946,7 +15897,7 @@ msgid ""
"files. "
msgstr ""
"O Mercurial suporta uma linguagem funcional para selecionar um conjunto\n"
-"de arquivos."
+"de arquivoss."
msgid ""
"Like other file patterns, this pattern type is indicated by a prefix,\n"
@@ -19028,8 +15979,7 @@ msgstr ".. predicatesmarker"
msgid "Some sample queries:"
msgstr "Alguns exemplos de consultas:"
-msgid ""
-"- Show status of files that appear to be binary in the working directory::"
+msgid "- Show status of files that appear to be binary in the working directory::"
msgstr ""
"- Exibe o status de arquivos que parecem ser binários no diretório\n"
"de trabalho::"
@@ -19052,8 +16002,8 @@ msgstr " hg locate \"set:grep(magic) and not binary()\""
msgid "- Find C files in a non-standard encoding::"
msgstr "- Encontra arquivos C em uma codificação não padrão::"
-msgid " hg locate \"set:**.c and not encoding('UTF-8')\""
-msgstr " hg locate \"set:**.c and not encoding('UTF-8')\""
+msgid " hg locate \"set:**.c and not encoding(ascii)\""
+msgstr " hg locate \"set:**.c and not encoding(ascii)\""
msgid "- Revert copies of large binary files::"
msgstr "- Reverte cópias de arquivos binários grandes::"
@@ -19383,10 +16333,10 @@ msgstr ""
msgid ""
"Close changeset\n"
-" See 'Head, closed branch'"
+" See 'Changeset, close'."
msgstr ""
-"Closed changeset\n"
-" Veja 'Head, closed branch'."
+"Close changeset\n"
+" Veja 'Changeset, close'."
msgid ""
"Closed branch\n"
@@ -19558,18 +16508,6 @@ msgstr ""
" trabalho."
msgid ""
-"Draft\n"
-" Changesets in the draft phase have not been shared with publishing\n"
-" repositories and may thus be safely changed by history-modifying\n"
-" extensions. See :hg:`help phases`."
-msgstr ""
-"Draft\n"
-" Rascunho. Revisões na fase rascunho não foram compartilhadas com\n"
-" repositórios de publicação, e podem portanto ser modificadas de\n"
-" forma segura por extensões que alterem o histórico.\n"
-" Veja :hg:`help phases`."
-
-msgid ""
"Graph\n"
" See DAG and :hg:`help graphlog`."
msgstr ""
@@ -19616,13 +16554,6 @@ msgstr ""
" consequentemente não será listado por :hg:`branches`."
msgid ""
-" Closed heads can be re-opened by committing new changeset as the\n"
-" child of the changeset that marks a head as closed."
-msgstr ""
-" Cabeças fechadas podem ser reabertas com a consolidação de uma\n"
-" nova revisão filha da revisão que marca a cabeça como fechada."
-
-msgid ""
"Head, repository\n"
" A topological head which has not been closed."
msgstr ""
@@ -19793,26 +16724,6 @@ msgstr ""
" \"aplicar um patch\" em seu lugar."
msgid ""
-"Phase\n"
-" A per-changeset state tracking how the changeset has been or\n"
-" should be shared. See :hg:`help phases`."
-msgstr ""
-"Phase\n"
-" Fase. Um estado específico de uma revisão que rastreia como essa\n"
-" revisão foi ou deve ser compartilhada. Veja :hg:`help phases`."
-
-msgid ""
-"Public\n"
-" Changesets in the public phase have been shared with publishing\n"
-" repositories and are therefore considered immutable. See :hg:`help\n"
-" phases`."
-msgstr ""
-"Public\n"
-" Pública. Revisões na fase pública foram compartilhadas com\n"
-" repositórios de publicação, e são portanto consideradas imutáveis.\n"
-" Veja :hg:`help phases`."
-
-msgid ""
"Pull\n"
" An operation in which changesets in a remote repository which are\n"
" not in the local repository are brought into the local\n"
@@ -19926,16 +16837,6 @@ msgstr ""
" A maior parte dos repositórios possui apenas uma revisão raiz."
msgid ""
-"Secret\n"
-" Changesets in the secret phase may not be shared via push, pull,\n"
-" or clone. See :hg:`help phases`."
-msgstr ""
-"Secret\n"
-" Secreta. Revisões na fase secreta não podem ser compartilhadas com\n"
-" push, pull ou clone.\n"
-" Veja :hg:`help phases`."
-
-msgid ""
"Tag\n"
" An alternative name given to a changeset. Tags can be used in all\n"
" places where Mercurial expects a changeset ID, e.g., with\n"
@@ -20012,10 +16913,10 @@ msgstr ""
msgid ""
"Synopsis\n"
-"========"
+"--------"
msgstr ""
"Sinopse\n"
-"======="
+"-------"
msgid ""
"The Mercurial system uses a file called ``.hgignore`` in the root\n"
@@ -20028,10 +16929,10 @@ msgstr ""
msgid ""
"Description\n"
-"==========="
+"-----------"
msgstr ""
"Descrição\n"
-"========="
+"---------"
msgid ""
"The working directory of a Mercurial repository will often contain\n"
@@ -20091,17 +16992,6 @@ msgstr ""
":hg:`help <comando>` e :hg:`help patterns` para mais detalhes."
msgid ""
-"Files that are already tracked are not affected by .hgignore, even\n"
-"if they appear in .hgignore. An untracked file X can be explicitly\n"
-"added with :hg:`add X`, even if X would be excluded by a pattern\n"
-"in .hgignore."
-msgstr ""
-"O .hgignore não afeta arquivos já rastreados, mesmo que estes\n"
-"apareçam no .hgignore. Um arquivo X não rastreado pode ser adicionado\n"
-"explicitamente usando :hg:`add X`, mesmo se X estiver sendo excluído\n"
-"por um padrão no .hgignore."
-
-msgid ""
"An ignore file is a plain text file consisting of a list of patterns,\n"
"with one pattern per line. Empty lines are skipped. The ``#``\n"
"character is treated as a comment character, and the ``\\`` character\n"
@@ -20126,7 +17016,7 @@ msgid " syntax: NAME"
msgstr " syntax: NOME"
msgid "where ``NAME`` is one of the following:"
-msgstr "onde ``NOME`` pode ser:"
+msgstr "onde ``NoME`` pode ser:"
msgid ""
"``regexp``\n"
@@ -20159,21 +17049,11 @@ msgstr ""
"partir da raiz, comece-o por ``^``."
msgid ""
-".. note::\n"
-" Patterns specified in other than ``.hgignore`` are always rooted.\n"
-" Please see :hg:`help patterns` for details."
-msgstr ""
-".. note::\n"
-" Padrões são sempre relativos à raiz do repositório, com exceção\n"
-" dos especificados em ``.hgignore``.\n"
-" Veja :hg:`help patterns` para mais detalhes."
-
-msgid ""
"Example\n"
-"======="
+"-------"
msgstr ""
"Exemplo\n"
-"======="
+"-------"
msgid "Here is an example ignore file. ::"
msgstr "Este é um exemplo de arquivo hgignore. ::"
@@ -20205,23 +17085,22 @@ msgstr ""
msgid ""
"Mercurial's internal web server, hgweb, can serve either a single\n"
-"repository, or a tree of repositories. In the second case, repository\n"
-"paths and global options can be defined using a dedicated\n"
-"configuration file common to :hg:`serve`, ``hgweb.wsgi``,\n"
-"``hgweb.cgi`` and ``hgweb.fcgi``."
+"repository, or a collection of them. In the latter case, a special\n"
+"configuration file can be used to specify the repository paths to use\n"
+"and global web configuration options."
msgstr ""
-"hgweb, o servidor web interno do Mercurial, é capaz de servir tanto um único\n"
-"repositório como uma árvore de repositórios. No caso de uma árvore,\n"
-"os caminhos e opções globais podem ser especificados através de um\n"
-"arquivo de configuração dedicado comum a :hg:`serve`, ``hgweb.wsgi``,\n"
-"``hgweb.cgi`` e ``hgweb.fcgi``."
+"hgweb, o servidor web interno do Mercurial, pode servir tanto\n"
+"um único como uma coleção de repositórios. No último caso, um\n"
+"arquivo de configuração especial pode ser usado para especificar\n"
+"os caminhos dos repositórios a serem usados e opções globais\n"
+"de configuração web.."
msgid ""
-"This file uses the same syntax as other Mercurial configuration files\n"
-"but recognizes only the following sections:"
+"This file uses the same syntax as other Mercurial configuration files,\n"
+"but only the following sections are recognized:"
msgstr ""
"Este arquivo usa a mesma sintaxe de arquivos de configuração do Mercurial,\n"
-"mas reconhece apenas as seguintes seções:"
+"mas apenas as seguintes seções são reconhecidas:"
msgid ""
" - web\n"
@@ -20232,87 +17111,86 @@ msgstr ""
" - paths\n"
" - collections"
-msgid "The ``web`` options are thorougly described in :hg:`help config`."
-msgstr "As opções ``web`` são descritas com detalhes em :hg:`help config`."
-
-msgid ""
-"The ``paths`` section maps URL paths to paths of repositories in the\n"
-"filesystem. hgweb will not expose the filesystem directly - only\n"
-"Mercurial repositories can be published and only according to the\n"
-"configuration."
-msgstr ""
-"A seção ``paths`` mapeia caminhos URL para caminhos de\n"
-"repositórios no sistema de arquivos. O hgweb não expõe o\n"
-"sistema de arquivos diretamente - apenas repositórios\n"
-"do Mercurial podem ser publicados e apenas de acordo com a\n"
-"configuração."
-
msgid ""
-"The left hand side is the path in the URL. Note that hgweb reserves\n"
-"subpaths like ``rev`` or ``file``, try using different names for\n"
-"nested repositories to avoid confusing effects."
+"The ``web`` section can specify all the settings described in the web\n"
+"section of the hgrc(5) documentation. See :hg:`help config` for\n"
+"information on where to find the manual page."
msgstr ""
-"O lado esquerdo corresponde ao caminho na URL. Note que o hgweb\n"
-"reserva caminhos intermediários como ``rev`` ou ``file``, tente\n"
-"usar nomes diferentes para repositórios aninhados para evitar\n"
-"confusão."
+"A seção ``web`` pode especificar todas as configurações descritas na\n"
+"seção web da documentação do hgrc (man page hgrc(5)). Veja\n"
+":hg:`help config` para informações sobre onde encontrar a página\n"
+"de manual."
msgid ""
-"The right hand side is the path in the filesystem. If the specified\n"
-"path ends with ``*`` or ``**`` the filesystem will be searched\n"
-"recursively for repositories below that point.\n"
-"With ``*`` it will not recurse into the repositories it finds (except for\n"
-"``.hg/patches``).\n"
-"With ``**`` it will also search inside repository working directories\n"
-"and possibly find subrepositories."
+"The ``paths`` section provides mappings of physical repository\n"
+"paths to virtual ones. For instance::"
msgstr ""
-"O lado direito corresponde ao caminho no sistema de arquivos.\n"
-"Se o caminho especificado terminar por ``*`` ou ``**``, será feita\n"
-"uma busca recursiva por repositórios a partir daquele ponto.\n"
-"Com ``*`` a busca não entrará nos repositórios que encontrar (com\n"
-"a exceção de ``.hg/patches``).\n"
-"Com ``**`` a busca incluirá os diretórios de trabalho dos\n"
-"repositórios, e eventuais sub-repositórios."
-
-msgid "In this example::"
-msgstr "Neste exemplo::"
+"A seção ``paths`` provê mapeamentos de caminhos de repositórios\n"
+"físicos para virtuais. Por exemplo::"
msgid ""
" [paths]\n"
-" /projects/a = /srv/tmprepos/a\n"
-" /projects/b = c:/repos/b\n"
-" / = /srv/repos/*\n"
-" /user/bob = /home/bob/repos/**"
+" projects/a = /foo/bar\n"
+" projects/b = /baz/quux\n"
+" web/root = /real/root/*\n"
+" / = /real/root2/*\n"
+" virtual/root2 = /real/root2/**"
msgstr ""
" [paths]\n"
-" /projects/a = /srv/tmprepos/a\n"
-" /projects/b = c:/repos/b\n"
-" / = /srv/repos/*\n"
-" /user/bob = /home/bob/repos/**"
+" projetos/a = /foo/bar\n"
+" projetos/b = /baz/quux\n"
+" web/raiz = /raiz/real/*\n"
+" / = /raiz/real2/*\n"
+" raiz/virtual2 = /raiz/real2/**"
msgid ""
"- The first two entries make two repositories in different directories\n"
" appear under the same directory in the web interface\n"
-"- The third entry will publish every Mercurial repository found in\n"
-" ``/srv/repos/``, for instance the repository ``/srv/repos/quux/``\n"
-" will appear as ``http://server/quux/``\n"
-"- The fourth entry will publish both ``http://server/user/bob/quux/``\n"
-" and ``http://server/user/bob/quux/testsubrepo/``"
+"- The third entry maps every Mercurial repository found in '/real/root'\n"
+" into 'web/root'. This format is preferred over the [collections] one,\n"
+" since using absolute paths as configuration keys is not supported on every\n"
+" platform (especially on Windows).\n"
+"- The fourth entry is a special case mapping all repositories in\n"
+" '/real/root2' in the root of the virtual directory.\n"
+"- The fifth entry recursively finds all repositories under the real\n"
+" root, and maps their relative paths under the virtual root."
msgstr ""
-"- As primeiras duas entradas fazem dois repositórios em diretórios\n"
-" diferentes aparecerem sob o mesmo diretório na interface web\n"
-"- A terceira entrada publicará todos os repositórios do Mercurial\n"
-" encontrados em ``/srv/repos/``, por exemplo o repositório\n"
-" ``/srv/repos/quux/`` aparecerá em ``http://server/quux/``\n"
-"- A quarta entrada publicará tanto ``http://server/user/bob/quux/``\n"
-" como ``http://server/user/bob/quux/testsubrepo/``"
+"- As primeiras duas entradas fazem com que dois repositórios em\n"
+" diretórios diferentes apareçam sob o mesmo diretório na interface web\n"
+"- A terceira entrada mapeia todos os repositórios encontrados em\n"
+" '/raiz/real' para 'web/raiz'. Este formato é preferido em relação\n"
+" ao da seção [collections], pois o uso de caminhos absolutos como\n"
+" chaves de configuração não é suportado em qualquer plataforma\n"
+" (especialmente no Windows).\n"
+"- A quarta entrada é um caso especial mapeando todos os repositórios\n"
+" em '/raiz/real2' para o raiz do diretório virtual.\n"
+"- A quinta entrada busca recursivamente todos os repositórios sob a\n"
+" raiz real, e mapeia seus caminhos relativos sob a raiz virtual."
msgid ""
-"The ``collections`` section is deprecated and has been superseeded by\n"
-"``paths``.\n"
+"The ``collections`` section provides mappings of trees of physical\n"
+"repositories paths to virtual ones, though the paths syntax is generally\n"
+"preferred. For instance::"
msgstr ""
-"A seção ``collections`` é obsoleta e foi completamente substituída\n"
-"pela seção ``paths``.\n"
+"A seção ``collections`` provê mapeamentos de árvores de caminhos\n"
+"de repositórios físicos para virtuais, embora a sintaxe de caminhos\n"
+"seja em geral preferida. Por exemplo::"
+
+msgid ""
+" [collections]\n"
+" /foo = /foo"
+msgstr ""
+" [collections]\n"
+" /foo = /foo"
+
+msgid ""
+"Here, the left side will be stripped off all repositories found in the\n"
+"right side. Thus ``/foo/bar`` and ``foo/quux/baz`` will be listed as\n"
+"``bar`` and ``quux/baz`` respectively.\n"
+msgstr ""
+"Aqui, o lado esquerdo terá todos os caminhos de repositórios encontrados\n"
+"do lado direito removidos. Assim, ``/foo/bar`` e ``foo/quux/baz`` serão\n"
+"listados como ``bar`` e ``quux/baz`` respectivamente.\n"
msgid "To merge files Mercurial uses merge tools."
msgstr "Para mesclar arquivos o Mercurial usa utilitários de mesclagem."
@@ -20356,10 +17234,10 @@ msgstr ""
msgid ""
"Available merge tools\n"
-"====================="
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
"Utilitários de mesclagem disponíveis\n"
-"===================================="
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgid ""
"External merge tools and their properties are configured in the\n"
@@ -20397,8 +17275,67 @@ msgstr ""
"Também estão disponíveis os seguintes utilitários de mesclagem\n"
"internos:"
-msgid ".. internaltoolsmarker"
-msgstr ".. internaltoolsmarker"
+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 ""
+"``internal:merge``\n"
+" Usa o algoritmo não-interativo interno simples para mesclar arquivos.\n"
+" Se houver qualquer conflito, esse algoritmo falhará, deixando\n"
+" marcadores no arquivo parcialmente mesclado."
+
+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 ""
+"``internal:fail``\n"
+" Ao invés de tentar mesclar arquivos modificados em ambos os ramos,\n"
+" marca tais arquivos como não resolvidos. O comando resolve deve\n"
+" então ser usado para resolver esses conflitos."
+
+msgid ""
+"``internal:local``\n"
+" Uses the local version of files as the merged version."
+msgstr ""
+"``internal:local``\n"
+" Usa a versão local de arquivos como resultado da mesclagem."
+
+msgid ""
+"``internal:other``\n"
+" Uses the other version of files as the merged version."
+msgstr ""
+"``internal:other``\n"
+" Usa a outra (não local) versão de arquivos como resultado da mesclagem."
+
+msgid ""
+"``internal:prompt``\n"
+" Asks the user which of the local or the other version to keep as\n"
+" the merged version."
+msgstr ""
+"``internal:prompt``\n"
+" Pergunta ao usuário se a versão local ou a outra deve ser usada\n"
+" como resultado da mesclagem."
+
+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 ""
+"``internal:dump``\n"
+" Cria três versões dos arquivos a serem mesclados, com os conteúdos\n"
+" das versões local, outra e base. Estes arquivos podem então ser\n"
+" usados para fazer uma mesclagem manual. Se o arquivo a ser mesclado\n"
+" se chamar ``a.txt``, estes arquivos serão chamados respectivamente\n"
+" ``a.txt.local``, ``a.txt.other`` e ``a.txt.base`` e serão colocados\n"
+" no mesmo diretório de ``a.txt``."
msgid ""
"Internal tools are always available and do not require a GUI but will by default\n"
@@ -20410,10 +17347,10 @@ msgstr ""
msgid ""
"Choosing a merge tool\n"
-"====================="
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
"Escolhendo um utilitário de mesclagem\n"
-"====================================="
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgid "Mercurial uses these rules when deciding which merge tool to use:"
msgstr ""
@@ -20503,15 +17440,15 @@ msgstr ""
" tentará primeiro mesclar o arquivo usando um algoritmo simples de\n"
" mesclagem. O utilitário só será usado se o algoritmo simples falhar\n"
" por existirem mudanças conflitantes. Esse comportamento de\n"
-" mesclagem prévia pode ser controlado através da configuração premerge\n"
-" do utilitário de mesclagem. A mesclagem prévia é habilitada por\n"
+" pré-mesclagem pode ser controlado através da configuração premerge\n"
+" do utilitário de mesclagem. A pré-mesclagem é habilitada por\n"
" padrão, a não ser que o arquivo seja binário ou um link simbólico."
msgid ""
"See the merge-tools and ui sections of hgrc(5) for details on the\n"
"configuration of merge tools.\n"
msgstr ""
-"Veja as seções merge-tools e ui da página de manual\n"
+"Veja as seções merge-tools e ui sections da página de manual\n"
"hgrc(5) para detalhes da configuração de utilitários de mesclagem.\n"
msgid ""
@@ -20569,16 +17506,6 @@ msgstr ""
"explicitamente."
msgid ""
-".. note::\n"
-" Patterns specified in ``.hgignore`` are not rooted. \n"
-" Please see :hg:`help hgignore` for details."
-msgstr ""
-".. note::\n"
-" Padrões especificados em ``.hgignore`` não são relativos à raiz do\n"
-" repositório.\n"
-" Veja :hg:`help hgignore` para mais detalhes."
-
-msgid ""
"To use a plain path name without any pattern matching, start it with\n"
"``path:``. These path names must completely match starting at the\n"
"current repository root."
@@ -20680,195 +17607,6 @@ msgstr ""
msgid "See also :hg:`help filesets`.\n"
msgstr "Veja também :hg:`help filesets`.\n"
-msgid ""
-"What are phases?\n"
-"================"
-msgstr ""
-"O que são fases?\n"
-"================"
-
-msgid ""
-"Phases are a system for tracking which changesets have been or should\n"
-"be shared. This helps prevent common mistakes when modifying history\n"
-"(for instance, with the mq or rebase extensions)."
-msgstr ""
-"Fases são um sistema para rastrear quais revisões foram ou\n"
-"devem ser compartilhadas. Isto ajuda a prevenir erros comuns\n"
-"ao modificar o histórico (usando por exemplo as extensões mq\n"
-"e rebase)."
-
-msgid "Each changeset in a repository is in one of the following phases:"
-msgstr "Cada revisão em um repositório está em uma das seguintes fases:"
-
-msgid ""
-" - public : changeset is visible on a public server\n"
-" - draft : changeset is not yet published\n"
-" - secret : changeset should not be pushed, pulled, or cloned"
-msgstr ""
-" - public (pública): a revisão é visível em um servidor público\n"
-" - draft (rascunho): a revisão ainda não foi publicada\n"
-" - secret (secreta): a revisão não deve ser propagada em um clone, push ou pull"
-
-msgid ""
-"These phases are ordered (public < draft < secret) and no changeset\n"
-"can be in a lower phase than its ancestors. For instance, if a\n"
-"changeset is public, all its ancestors are also public. Lastly,\n"
-"changeset phases should only be changed towards the public phase."
-msgstr ""
-"Estas fases são ordenadas (pública < rascunho < secreta) e\n"
-"nenhuma revisão pode estar em uma fase menor que as de seus\n"
-"ancestrais. Por exemplo, se uma revisão é pública, todos os\n"
-"seus ancestrais também serão públicos. Por fim, as fases de\n"
-"revisões só devem ser modificadas em direção à fase pública."
-
-msgid ""
-"How are phases managed?\n"
-"======================="
-msgstr ""
-"Como fases são gerenciadas?\n"
-"==========================="
-
-msgid ""
-"For the most part, phases should work transparently. By default, a\n"
-"changeset is created in the draft phase and is moved into the public\n"
-"phase when it is pushed to another repository."
-msgstr ""
-"Na maior parte, fases devem funcionar de forma transparente.\n"
-"Por padrão, uma revisão é criada na fase rascunho, e movida\n"
-"para a fase pública quando for enviada para outro repositório."
-
-msgid ""
-"Once changesets become public, extensions like mq and rebase will\n"
-"refuse to operate on them to prevent creating duplicate changesets.\n"
-"Phases can also be manually manipulated with the :hg:`phase` command\n"
-"if needed. See :hg:`help -v phase` for examples."
-msgstr ""
-"Uma vez que revisões se tornem públicas, extensões como mq e\n"
-"rebase se recusarão a operar sobre elas, para impedir a criação\n"
-"de revisões duplicadas. Se necessário, fases também podem ser\n"
-"manipuladas usando o comando :hg:`phase`.\n"
-"Veja :hg:`help -v phase` para alguns exemplos."
-
-msgid ""
-"Phases and servers\n"
-"=================="
-msgstr ""
-"Fases e servidores\n"
-"=================="
-
-msgid "Normally, all servers are ``publishing`` by default. This means::"
-msgstr ""
-"Normalmente, todos os servidores são por padrão ``publishing``\n"
-"(\"de publicação\"). Isto quer dizer que::"
-
-msgid ""
-" - all draft changesets that are pulled or cloned appear in phase\n"
-" public on the client"
-msgstr ""
-" - todas as revisões na fase rascunho que forem trazidas desse\n"
-" servidor usando pull ou clone aparecerão no cliente na fase\n"
-" pública"
-
-msgid ""
-" - all draft changesets that are pushed appear as public on both\n"
-" client and server"
-msgstr ""
-" - todas as revisões na fase rascunho que forem enviadas para esse\n"
-" servidor aparecerão como públicas tanto no cliente como no servidor"
-
-msgid " - secret changesets are neither pushed, pulled, or cloned"
-msgstr ""
-" - revisões na fase secreta não são transmitidas com push, pull ou clone"
-
-msgid ""
-".. note::\n"
-" Pulling a draft changeset from a publishing server does not mark it\n"
-" as public on the server side due to the read-only nature of pull."
-msgstr ""
-".. note::\n"
-" Trazer uma revisão rascunho de um servidor de publicação não a\n"
-" marca como pública no servidor devido à natureza somente leitura\n"
-" do comando pull."
-
-msgid ""
-"Sometimes it may be desirable to push and pull changesets in the draft\n"
-"phase to share unfinished work. This can be done by setting a\n"
-"repository to disable publishing in its configuration file::"
-msgstr ""
-"Às vezes pode ser desejável fazer push e pull de revisões na fase\n"
-"rascunho para compartilhar trabalho não concluído. Isto pode ser\n"
-"feito desabilitando a publicação de um repositório em seu arquivo\n"
-"de configuração::"
-
-msgid ""
-" [phases]\n"
-" publish = False"
-msgstr ""
-" [phases]\n"
-" publish = False"
-
-msgid "See :hg:`help config` for more information on config files."
-msgstr ""
-"Veja :hg:`help config` para mais informações sobre arquivos de configuração."
-
-msgid ""
-".. note::\n"
-" Servers running older versions of Mercurial are treated as\n"
-" publishing."
-msgstr ""
-".. note::\n"
-" Servidores executando versões mais antigas do Mercurial são\n"
-" considerados como de publicação."
-
-msgid ""
-"Examples\n"
-"========"
-msgstr ""
-"Exemplos\n"
-"========"
-
-msgid " - list changesets in draft or secret phase::"
-msgstr " - lista revisões nas fases rascunho ou secreta::"
-
-msgid " hg log -r \"not public()\""
-msgstr " hg log -r \"not public()\""
-
-msgid " - change all secret changesets to draft::"
-msgstr " - muda todas as revisões secretas para rascunho::"
-
-msgid " hg phase --draft \"secret()\""
-msgstr " hg phase --draft \"secret()\""
-
-msgid ""
-" - forcibly move the current changeset and descendants from public to "
-"draft::"
-msgstr ""
-" - força a passagem da revisão atual e seus descendentes da fase pública "
-"para a rascunho::"
-
-msgid " hg phase --force --draft ."
-msgstr " hg phase --force --draft ."
-
-msgid " - show a list of changeset revision and phase::"
-msgstr " - mostra uma lista de números de revisão e suas respectivas fases::"
-
-msgid " hg log --template \"{rev} {phase}\\n\""
-msgstr " hg log --template \"{rev} {phase}\\n\""
-
-msgid " - resynchronize draft changesets relative to a remote repository::"
-msgstr ""
-" - sincroniza novamente revisões de rascunho relativas a um repositório "
-"remoto::"
-
-msgid " hg phase -fd 'outgoing(URL)' "
-msgstr " hg phase -fd 'outgoing(URL)' "
-
-msgid ""
-"See :hg:`help phase` for more information on manually manipulating phases.\n"
-msgstr ""
-"Veja :hg:`help phase` para mais informações sobre como manipular\n"
-"fases manualmente.\n"
-
msgid "Mercurial supports several ways to specify individual revisions."
msgstr ""
"O Mercurial aceita diversas notações para identificar revisões\n"
@@ -20902,23 +17640,22 @@ msgstr ""
"de um identificador completo."
msgid ""
-"Any other string is treated as a bookmark, tag, or branch name. A\n"
-"bookmark is a movable pointer to a revision. A tag is a permanent name\n"
-"associated with a revision. A branch name denotes the tipmost revision\n"
-"of that branch. Bookmark, tag, and branch names must not contain the \":\"\n"
-"character."
+"Any other string is treated as a tag or branch name. A tag name is a\n"
+"symbolic name associated with a revision identifier. A branch name\n"
+"denotes the tipmost revision of that branch. Tag and branch names must\n"
+"not contain the \":\" character."
msgstr ""
-"Qualquer outra string é tratada como um nome de marcador, etiqueta\n"
-"ou ramo.\n"
-"Um marcador (bookmark) é um apontador móvel para uma revisão.\n"
-"Uma etiqueta (tag) é um nome simbólico permanente associado a uma\n"
-"revisão.\n"
-"Um nome de ramo denota a revisão mais recente de tal ramo.\n"
-"Nomes de marcadores, etiquetas e ramos não podem conter o caractere \":\"."
+"Qualquer outra string é tratada como um nome de etiqueta ou\n"
+"ramo. Um nome de etiqueta é um nome simbólico associado a um\n"
+"identificador de revisão. Um nome de ramo denota a revisão mais\n"
+"recente de tal ramo. Nomes de etiqueta ou de ramo não podem\n"
+"conter o caractere \":\"."
-msgid "The reserved name \"tip\" always identifies the most recent revision."
+msgid ""
+"The reserved name \"tip\" is a special tag that always identifies the\n"
+"most recent revision."
msgstr ""
-"O nome reservado \"tip\" sempre\n"
+"O nome reservado \"tip\" é uma etiqueta especial que sempre\n"
"identifica a revisão mais recente."
msgid ""
@@ -20954,12 +17691,13 @@ msgstr ""
"de operadores infixos. Parênteses podem ser usados para agrupar expressões."
msgid ""
-"Identifiers such as branch names may need quoting with single or\n"
-"double quotes if they contain characters like ``-`` or if they match\n"
-"one of the predefined predicates."
+"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."
msgstr ""
"Identificadores (como nomes de ramo ou etiquetas) que contenham\n"
-"caracteres como ``-`` ou que forem\n"
+"caracteres fora de ``[._a-zA-Z0-9\\x80-\\xff]`` ou que forem\n"
"iguais a algum dos predicados predefinidos devem ser passados\n"
"entre aspas simples ou duplas."
@@ -21160,77 +17898,61 @@ msgstr ""
"- Revisões mencionando \"bug\" ou \"issue\" que não descendem\n"
" de revisões etiquetadas::"
-msgid ""
-" hg log -r \"(keyword(bug) or keyword(issue)) and not "
-"ancestors(tagged())\"\n"
-msgstr ""
-" hg log -r \"(keyword(bug) or keyword(issue)) and not "
-"ancestors(tagged())\"\n"
+msgid " hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tagged())\"\n"
+msgstr " hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tagged())\"\n"
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."
+"group. External Mercurial and Subversion projects are currently\n"
+"supported."
msgstr ""
"O suporte a sub-repositórios possibilita o aninhamento de\n"
"repositórios externos ou projetos em um repositório pai do\n"
"Mercurial, fornecendo suporte para a operação de diversos\n"
-"comandos no conjunto como um todo."
-
-msgid ""
-"Mercurial currently supports Mercurial, Git, and Subversion\n"
-"subrepositories."
-msgstr ""
-"No momento o Mercurial suporta sub-repositórios do próprio\n"
-"Mercurial, do Git e do Subversion."
+"comandos no conjunto como um todo. No momento são suportados\n"
+"repositórios externos do Mercurial e do Subversion."
msgid "Subrepositories are made of three components:"
msgstr "Sub-repositórios são constituídos de três componentes:"
msgid ""
"1. Nested repository checkouts. They can appear anywhere in the\n"
-" parent working directory."
+" parent working directory, and are Mercurial clones or Subversion\n"
+" checkouts."
msgstr ""
-"1. Cópias locais aninhadas.\n"
-" Podem aparecer em qualquer ponto do diretório\n"
+"1. Cópias locais aninhadas. São clones do Mercurial ou checkouts\n"
+" do Subversion, e podem aparecer em qualquer ponto do diretório\n"
" de trabalho pai."
msgid ""
-"2. Nested repository references. They are defined in ``.hgsub``, which\n"
-" should be placed in the root of working directory, and\n"
+"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 ""
-"2. Referências a repositórios aninhados. São definidas no\n"
-" arquivo ``.hgsub`` no raiz do repositório,\n"
-" e informam ao Mercurial de onde as cópias\n"
+"2. Referências a repositórios aninhados. São definidos no\n"
+" arquivo ``.hgsub`` e informam ao Mercurial de onde as cópias\n"
" locais devem ser obtidas. Sub-repositórios do Mercurial são\n"
" referenciados da seguinte maneira:"
msgid " path/to/nested = https://example.com/nested/repo/path"
msgstr " caminho/aninhado = https://exemplo.com/aninhado/repo/caminho"
-msgid " Git and Subversion subrepos are also supported:"
-msgstr " Subrepositórios do Git e do Subversion também são suportados:"
-
-msgid ""
-" path/to/nested = [git]git://example.com/nested/repo/path\n"
-" path/to/nested = [svn]https://example.com/nested/trunk/path"
-msgstr ""
-" caminho/aninhado = [git]git://exemplo.com/aninhado/repo/caminho\n"
-" caminho/aninhado = [svn]https://exemplo.com/aninhado/trunk/caminho"
-
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."
+" filesystem path. Subversion repositories are defined with:"
msgstr ""
" onde ``caminho/aninhado`` é a localização da cópia local relativa\n"
" à raiz do repositório pai do Mercurial, e\n"
" ``https://exemplo.com/aninhado/repo/caminho`` é o caminho do\n"
" repositório de origem. A origem também pode ser um caminho no\n"
-" sistema de arquivos."
+" sistema de arquivos. Sub-repositórios do Subversion são definidos\n"
+" com:"
+
+msgid " path/to/nested = [svn]https://example.com/nested/trunk/path"
+msgstr " caminho/aninhado = [svn]https://exemplo.com/aninhado/trunk/caminho"
msgid ""
" Note that ``.hgsub`` does not exist by default in Mercurial\n"
@@ -21242,16 +17964,14 @@ msgstr ""
" repositório pai para poder usar sub-repositórios."
msgid ""
-"3. Nested repository states. They are defined in ``.hgsubstate``, which\n"
-" is placed in the root of working directory, and\n"
+"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 ""
"3. Os estados dos repositórios aninhados. Eles são definidos no\n"
-" arquivo ``.hgsubstate`` no raiz do repositório,\n"
-" e capturam quaisquer informações\n"
+" arquivo ``.hgsubstate`` e capturam quaisquer informações\n"
" necessárias para restaurar os sub-repositórios para o estado\n"
" com o qual foram consolidados na revisão do repositório pai.\n"
" O Mercurial grava esses estados automaticamente durante uma\n"
@@ -21267,11 +17987,11 @@ msgstr ""
msgid ""
"\n"
"Adding a Subrepository\n"
-"======================"
+"----------------------"
msgstr ""
"\n"
-"Adicionando um Sub-Repositório\n"
-"=============================="
+"Como Adicionar um Sub-Repositório\n"
+"---------------------------------"
msgid ""
"If ``.hgsub`` does not exist, create it and add it to the parent\n"
@@ -21291,10 +18011,10 @@ msgstr ""
msgid ""
"Synchronizing a Subrepository\n"
-"============================="
+"-----------------------------"
msgstr ""
-"Sincronizando um Sub-Repositório\n"
-"================================"
+"Como Sincronizar um Sub-Repositório\n"
+"-----------------------------------"
msgid ""
"Subrepos do not automatically track the latest changeset of their\n"
@@ -21322,10 +18042,10 @@ msgstr ""
msgid ""
"Deleting a Subrepository\n"
-"========================"
+"------------------------"
msgstr ""
-"Apagando um Sub-Repositório\n"
-"==========================="
+"Como Remover um Sub-Repositório\n"
+"-------------------------------"
msgid ""
"To remove a subrepository from the parent repository, delete its\n"
@@ -21337,24 +18057,19 @@ msgstr ""
msgid ""
"Interaction with Mercurial Commands\n"
-"==================================="
+"-----------------------------------"
msgstr ""
-"Interação com Comandos do Mercurial\n"
-"==================================="
+"Interação com comandos do Mercurial\n"
+"-----------------------------------"
msgid ""
":add: add does not recurse in subrepos unless -S/--subrepos is\n"
-" specified. However, if you specify the full path of a file in a\n"
-" subrepo, it will be added even without -S/--subrepos specified.\n"
-" Git and Subversion subrepositories are currently silently\n"
+" specified. Subversion subrepositories are currently silently\n"
" ignored."
msgstr ""
":add: add não é executado recursivamente em sub-repositórios, a não\n"
-" ser que -S/--subrepos seja especificado. No entanto, se for\n"
-" especificado o caminho completo de um arquivo em um sub-repositório,\n"
-" ele será adicionado mesmo que -S/--subrepos não seja passado.\n"
-" Sub-repositórios do Subversion e do Git são no momento\n"
-" silenciosamente ignorados."
+" ser que -S/--subrepos seja especificado. Sub-repositórios do\n"
+" Subversion são no momento silenciosamente ignorados."
msgid ""
":archive: archive does not recurse in subrepositories unless\n"
@@ -21365,65 +18080,55 @@ msgstr ""
msgid ""
":commit: commit creates a consistent snapshot of the state of the\n"
-" entire project and its subrepositories. If any subrepositories\n"
-" have been modified, Mercurial will abort. Mercurial can be made\n"
-" to instead commit all modified subrepositories by specifying\n"
-" -S/--subrepos, or setting \"ui.commitsubrepos=True\" in a\n"
-" configuration file (see :hg:`help config`). After there are no\n"
-" longer any modified subrepositories, it records their state and\n"
-" finally commits it in the parent repository."
+" 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 ""
":commit: commit cria uma referência consistente do estado do\n"
-" projeto e seus sub-repositórios como um todo. O Mercurial\n"
-" abortará se qualquer sub-repositório tiver sido modificado.\n"
-" Para fazer com que ao invés disso um commit seja executado\n"
-" em cada sub-repositório, use a opção -S/--subrepos ou\n"
-" defina \"ui.commitsubrepos=True\" em um arquivo de\n"
-" configuração (veja :hg:`help config`).\n"
-" Assim que não houver mais sub-repositórios modificados,\n"
-" seus estados serão gravados, e finalmente o commit será\n"
-" realizado no repositório pai."
+" 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).\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"
" specified. Changes are displayed as usual, on the subrepositories\n"
-" elements. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" elements. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
":diff: diff não é executado recursivamente em sub-repositórios, a não\n"
" ser que -S/--subrepos seja especificado. As mudanças são exibidas\n"
" normalmente nos sub-repositórios do Mercurial. Sub-repositórios do\n"
-" Subversion e do Git são no momento silenciosamente ignorados."
-
-msgid ""
-":forget: forget currently only handles exact file matches in subrepos.\n"
-" Git and Subversion subrepositories are currently silently ignored."
-msgstr ""
-":forget: forget no momento considera apenas especificações exatas de\n"
-" arquivos em sub-repositórios.\n"
-" Sub-repositórios do Subversion e do Git são no momento\n"
-" silenciosamente ignorados."
+" Subversion são no momento silenciosamente ignorados."
msgid ""
":incoming: incoming does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
":incoming: incoming não é executado recursivamente em\n"
" sub-repositórios, a não ser que -S/--subrepos seja\n"
" especificado.\n"
-" Sub-repositórios do Subversion e do Git são no momento\n"
+" Sub-repositórios do Subversion são no momento\n"
" silenciosamente ignorados."
msgid ""
":outgoing: outgoing does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
":outgoing: outgoing não é executado recursivamente em\n"
" sub-repositórios, a não ser que -S/--subrepos seja\n"
" especificado.\n"
-" Sub-repositórios do Subversion e do Git são no momento\n"
+" Sub-repositórios do Subversion são no momento\n"
" silenciosamente ignorados."
msgid ""
@@ -21444,14 +18149,13 @@ 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. Push is a no-op for Subversion subrepositories."
+" repositories."
msgstr ""
":push: O Mercurial irá automaticamente executar push em\n"
" todos os sub-repositórios ao realizar um push no repositório\n"
" pai. Isto garante que novas mudanças em sub-repositórios\n"
" estejam disponíveis quando referenciadas por repositórios\n"
-" pais.\n"
-" Push é ignorado em sub-repositórios do Subversion."
+" pais."
msgid ""
":status: status does not recurse into subrepositories unless\n"
@@ -21484,10 +18188,10 @@ msgstr ""
msgid ""
"Remapping Subrepositories Sources\n"
-"================================="
+"---------------------------------"
msgstr ""
-"Remapeamento de Origens de Sub-Repositórios\n"
-"==========================================="
+"Remapeando Origens de Sub-Repositórios\n"
+"--------------------------------------"
msgid ""
"A subrepository source location may change during a project life,\n"
@@ -21512,7 +18216,7 @@ msgstr ""
"O Mercurial permite que você personalize a saída de comandos\n"
"usando modelos. Você pode tanto passar um modelo pela linha de\n"
"comando, usando a opção --template, como selecionar um\n"
-"estilo de modelo existente (--style)."
+"modelo-estilo existente (--style)."
msgid ""
"You can customize output for any \"log-like\" command: log,\n"
@@ -21765,9 +18469,6 @@ msgstr "atualizando diretório de trabalho\n"
msgid "destination directory: %s\n"
msgstr "diretório de destino: %s\n"
-msgid "empty destination path is not valid"
-msgstr "um caminho de destino vazio não é válido"
-
#, python-format
msgid "destination '%s' already exists"
msgstr "o destino '%s' já existe"
@@ -21776,12 +18477,8 @@ msgstr "o destino '%s' já existe"
msgid "destination '%s' is not empty"
msgstr "o destino '%s' não está vazio"
-msgid ""
-"src repository does not support revision lookup and so doesn't support clone"
-" by revision"
-msgstr ""
-"repositório de origem não suporta busca de revisões, portanto não suporta "
-"clonar por revisão"
+msgid "src repository does not support revision lookup and so doesn't support clone by revision"
+msgstr "repositório de origem não suporta busca de revisões, portanto não suporta clonar por revisão"
msgid "clone from remote to remote not supported"
msgstr "clone de origem remota para destino remoto não suportado"
@@ -21791,21 +18488,14 @@ msgid "updating to branch %s\n"
msgstr "atualizando para o ramo %s\n"
#, python-format
-msgid ""
-"%d files updated, %d files merged, %d files removed, %d files unresolved\n"
-msgstr ""
-"%d arquivos atualizados, %d arquivos mesclados, %d arquivos removidos, %d "
-"arquivos não resolvidos\n"
+msgid "%d files updated, %d files merged, %d files removed, %d files unresolved\n"
+msgstr "%d arquivos atualizados, %d arquivos mesclados, %d arquivos removidos, %d arquivos não resolvidos\n"
msgid "use 'hg resolve' to retry unresolved file merges\n"
msgstr "use 'hg resolve' para mesclar novamente arquivos não resolvidos\n"
-msgid ""
-"use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to "
-"abandon\n"
-msgstr ""
-"use 'hg resolve' para mesclar novamente arquivos não resolvidos ou 'hg "
-"update -C .' para abandonar\n"
+msgid "use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon\n"
+msgstr "use 'hg resolve' para mesclar novamente arquivos não resolvidos ou 'hg update -C .' para abandonar\n"
msgid "(branch merge, don't forget to commit)\n"
msgstr "(mesclagem de ramo, não esqueça de consolidar)\n"
@@ -21833,10 +18523,6 @@ msgid "cannot start server at '%s:%d': %s"
msgstr "não é possível iniciar o servidor em '%s:%d': %s"
#, python-format
-msgid "(binary file %s, hash: %s)"
-msgstr "(arquivo binário %s, hash: %s)"
-
-#, python-format
msgid " %d files changed, %d insertions(+), %d deletions(-)\n"
msgstr "%d arquivos modificados, %d inserções(+), %d remoções(-)\n"
@@ -21894,10 +18580,6 @@ msgstr "gancho %s %s"
msgid "warning: %s hook %s\n"
msgstr "aviso: gancho %s %s\n"
-#, python-format
-msgid "loading %s hook failed:\n"
-msgstr "o carregamento do gancho %s falhou:\n"
-
msgid "kb"
msgstr "kb"
@@ -21945,6 +18627,9 @@ msgstr "'%s' enviou um cabeçalho Content-Type inválido (%s)"
msgid "'%s' uses newer protocol %s"
msgstr "'%s' usa protocolo mais novo %s"
+msgid "unexpected response:"
+msgstr "resposta inesperada:"
+
#, python-format
msgid "push failed: %s"
msgstr "o push falhou: %s"
@@ -21988,9 +18673,15 @@ msgid "warning: tag %s conflicts with existing branch name\n"
msgstr "aviso: a etiqueta %s conflita com um nome de ramo existente\n"
msgid "working copy of .hgtags is changed (please commit .hgtags manually)"
-msgstr ""
-"a cópia de trabalho de .hgtags foi modificada (por favor consolide .hgtags "
-"manualmente)"
+msgstr "a cópia de trabalho de .hgtags foi modificada (por favor consolide .hgtags manualmente)"
+
+#, python-format
+msgid "working directory has unknown parent '%s'!"
+msgstr "diretório de trabalho tem pai desconhecido '%s'!"
+
+#, python-format
+msgid "unknown revision '%s'"
+msgstr "revisão desconhecida '%s'"
msgid "abandoned transaction found - run hg recover"
msgstr "transação abandonada encontrada - execute hg recover"
@@ -22001,34 +18692,20 @@ msgstr "desfazendo transação interrompida\n"
msgid "no interrupted transaction available\n"
msgstr "nenhuma transação interrompida disponível\n"
-msgid "no rollback information available\n"
-msgstr "nenhuma informação de desfazimento disponível\n"
-
#, python-format
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"
+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"
+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"
-msgid "rollback of last commit while not checked out may lose data"
-msgstr ""
-"rollback do último commit pode perder dados se a revisão não for a atual"
-
-msgid "use -f to force"
-msgstr "use -f para forçar"
-
#, python-format
-msgid "named branch could not be reset: current branch is still '%s'\n"
-msgstr "o ramo nomeado não pôde ser redefinido: o ramo atual ainda é %s\n"
+msgid "named branch could not be reset, current branch is still: %s\n"
+msgstr "o ramo nomeado não pôde ser redefinido, o ramo atual ainda é: %s\n"
#, python-format
msgid "working directory now based on revisions %d and %d\n"
@@ -22038,6 +18715,9 @@ msgstr "o diretório de trabalho está agora baseado nas revisões %d e %d\n"
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"
+
#, python-format
msgid "waiting for lock on %s held by %r\n"
msgstr "esperando pelo bloqueio em %s feito por %r\n"
@@ -22052,25 +18732,18 @@ msgstr "diretório de trabalho de %s"
#, python-format
msgid "warning: can't find ancestor for '%s' copied from '%s'!\n"
-msgstr ""
-"aviso: não é possível encontrar o ancestral de '%s' copiado a partir de "
-"'%s'!\n"
+msgstr "aviso: não é possível encontrar o ancestral de '%s' copiado a partir de '%s'!\n"
msgid "cannot partially commit a merge (do not specify files or patterns)"
-msgstr ""
-"não é possível consolidar parcialmente uma mesclagem (não especifique "
-"arquivos ou padrões)"
-
-#, python-format
-msgid "commit with new subrepo %s excluded"
-msgstr "consolidação com novo sub-repositório %s excluída"
-
-msgid "use --subrepos for recursive commit"
-msgstr "use --subrepos para um commit recursivo"
+msgstr "não é possível consolidar parcialmente uma mesclagem (não especifique arquivos ou padrões)"
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!"
@@ -22080,9 +18753,6 @@ msgstr "nenhuma correspondência sob o diretório!"
msgid "file not tracked!"
msgstr "arquivo não rastreado!"
-msgid "cannot commit merge with missing files"
-msgstr "não se pode consolidar uma mesclagem com arquivos ausentes"
-
msgid "unresolved merge conflicts (see hg help resolve)"
msgstr "conflitos de mesclagem não resolvidos (veja hg help resolve)"
@@ -22101,30 +18771,8 @@ msgstr "problemas ao consolidar %s!\n"
msgid "requesting all changes\n"
msgstr "pedindo todas as mudanças\n"
-msgid ""
-"partial pull cannot be done because other repository doesn't support "
-"changegroupsubset."
-msgstr ""
-"pull parcial não pode ser feito porque o outro repositório não suporta "
-"'changegroupsubset'."
-
-msgid "destination does not support push"
-msgstr "o destino não suporta push"
-
-#, python-format
-msgid "push includes an obsolete changeset: %s!"
-msgstr "push inclui uma revisão obsoleta: %s!"
-
-#, python-format
-msgid "push includes an unstable changeset: %s!"
-msgstr "push inclui uma revisão instável: %s!"
-
-#, python-format
-msgid "updating %s to public failed!\n"
-msgstr "a atualização da fase de %s para pública falhou!\n"
-
-msgid "failed to push some obsolete markers!\n"
-msgstr "erro ao enviar algumas marcações de obsolescência!\n"
+msgid "partial pull cannot be done because other repository doesn't support changegroupsubset."
+msgstr "pull parcial não pode ser feito porque o outro repositório não suporta 'changegroupsubset'."
#, python-format
msgid "%d changesets found\n"
@@ -22170,8 +18818,8 @@ msgstr " (%+d cabeças)"
msgid "added %d changesets with %d changes to %d files%s\n"
msgstr "adicionadas %d revisões com %d mudanças em %d arquivos%s\n"
-msgid "unexpected response from remote server:"
-msgstr "resposta inesperada do servidor remoto:"
+msgid "Unexpected response from remote server:"
+msgstr "Resposta inesperada do servidor remoto:"
msgid "operation forbidden by server"
msgstr "operação não permitida pelo servidor"
@@ -22189,9 +18837,6 @@ msgstr "encadeando todas as mudanças\n"
msgid "%d files to transfer, %s of data\n"
msgstr "%d arquivos para transferir, %s de dados\n"
-msgid "clone"
-msgstr "clone"
-
#, python-format
msgid "transferred %s in %.1f seconds (%s/sec)\n"
msgstr "transferidos %s em %.1f segundos (%s/s)\n"
@@ -22221,14 +18866,11 @@ msgid "sending mail: %s\n"
msgstr "enviando e-mail: %s\n"
msgid "smtp specified as email transport, but no smtp host configured"
-msgstr ""
-"smtp especificado como transporte de e-mail, mas o servidor smtp não foi "
-"configurado"
+msgstr "smtp especificado como transporte de e-mail, mas o servidor smtp não foi configurado"
#, python-format
msgid "%r specified as email transport, but not in PATH"
-msgstr ""
-"%r especificado como um transporte de e-mail, mas não encontrado no PATH"
+msgstr "%r especificado como um transporte de e-mail, mas não encontrado no PATH"
#, python-format
msgid "ignoring invalid sendcharset: %s\n"
@@ -22266,14 +18908,8 @@ 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"
#, python-format
-msgid "%s: untracked file differs\n"
-msgstr "%s: arquivo não rastreado é diferente\n"
-
-msgid ""
-"untracked files in working directory differ from files in requested revision"
-msgstr ""
-"arquivos não versionados no diretório de trabalho diferem do arquivo na "
-"revisão pedida"
+msgid "untracked file in working directory differs from file in requested revision: '%s'"
+msgstr "arquivo não versionado no diretório de trabalho difere do arquivo na revisão pedida: '%s'"
#, python-format
msgid "case-folding collision between %s and %s"
@@ -22343,32 +18979,24 @@ msgstr "obtendo %s para %s\n"
msgid "note: possible conflict - %s was renamed multiple times to:\n"
msgstr "nota: possível conflito - %s foi renomeado múltiplas vezes para:\n"
-#, python-format
-msgid "note: possible conflict - %s was deleted and renamed to:\n"
-msgstr "nota: possível conflito - %s foi apagado e renomeado para:\n"
-
msgid "merging with a working directory ancestor has no effect"
-msgstr ""
-"mesclar com um ancestral do diretório de trabalho não tem nenhum efeito"
+msgstr "mesclar com um ancestral do diretório de trabalho não tem nenhum efeito"
-msgid "use 'hg update' or check 'hg heads'"
-msgstr "use 'hg update' ou verifique 'hg heads'"
+msgid "nothing to merge (use 'hg update' or check 'hg heads')"
+msgstr "nada para mesclar (use 'hg update' ou verifique 'hg heads')"
-msgid "use 'hg status' to list changes"
-msgstr "use 'hg status' para listar as mudanças"
+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)"
+msgstr "atravessa ramos (mescle os ramos ou use --clean para descartar mudanças)"
msgid "crosses branches (merge branches or update --check to force update)"
-msgstr ""
-"atravessa ramos (mescle os ramos ou use update --check para forçar a "
-"atualização)"
+msgstr "atravessa ramos (mescle os ramos ou use update --check para forçar a atualização)"
msgid "Attention:"
msgstr "Atenção:"
@@ -22398,24 +19026,6 @@ msgid "Warning!"
msgstr "Aviso!"
#, python-format
-msgid "parsing obsolete marker: unknown version %r"
-msgstr "decodificando marcações de obsolescência: versão desconhecida %r"
-
-#, python-format
-msgid ""
-"parsing obsolete marker: metadata is too short, %d bytes expected, got %d"
-msgstr ""
-"decodificando marcações de obsolescência: metadados são curtos demais, %d "
-"bytes esperados, %d obtidos"
-
-#, python-format
-msgid "unknown key: %r"
-msgstr "chave desconhecida: %r"
-
-msgid "unexpected old value"
-msgstr "valor antigo inesperado"
-
-#, python-format
msgid "unexpected token: %s"
msgstr "token inesperado: %s"
@@ -22457,9 +19067,7 @@ msgstr "arquivo %s já existe\n"
#, python-format
msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n"
-msgstr ""
-"Trecho #%d aplicado com sucesso em %d com indistinção %d (distância %d "
-"linhas).\n"
+msgstr "Trecho #%d aplicado com sucesso em %d com indistinção %d (distância %d linhas).\n"
#, python-format
msgid "Hunk #%d succeeded at %d (offset %d lines).\n"
@@ -22477,17 +19085,12 @@ msgstr "trecho ruim #%d"
msgid "bad hunk #%d old text line %d"
msgstr "trecho ruim #%d antiga linha de texto %d"
-#, python-format
-msgid "could not extract \"%s\" binary data"
-msgstr "não foi possível extrair os dados binários de \"%s\""
-
-#, python-format
-msgid "could not decode \"%s\" binary patch: %s"
-msgstr "não foi possível decodificar o patch binário \"%s\": %s"
+msgid "could not extract binary patch"
+msgstr "não foi possível extrair o patch binário"
#, python-format
-msgid "\"%s\" length is %d bytes, should be %d"
-msgstr "o comprimento de \"%s\" é %d bytes, deveria ser %d"
+msgid "binary patch is %d bytes, not %d"
+msgstr "patch binário tem %d bytes, e não %d"
#, python-format
msgid "unable to strip away %d of %d dirs from %s"
@@ -22497,10 +19100,6 @@ msgid "undefined source and destination files"
msgstr "arquivos de origem e destino não definidos"
#, python-format
-msgid "failed to synchronize metadata for \"%s\""
-msgstr "falha ao sincronizar metadados para \"%s\""
-
-#, python-format
msgid "cannot create %s: destination already exists"
msgstr "impossível criar %s: destino já existe"
@@ -22520,25 +19119,6 @@ msgid "patch failed to apply"
msgstr "aplicação do patch falhou"
#, python-format
-msgid "cannot %s; remote repository does not support the %r capability"
-msgstr "impossível %s; repositório remoto não suporta a funcionalidade '%r'"
-
-msgid "cannot change null revision phase"
-msgstr "não é possível mudar a fase da revisão nula"
-
-#, python-format
-msgid "ignoring inconsistent public root from remote: %s\n"
-msgstr "ignorando raiz pública inconsistente no repositório remoto: %s\n"
-
-#, python-format
-msgid "ignoring unexpected root from remote: %i %s\n"
-msgstr "ignorando raiz inesperada no repositório remoto: %i %s\n"
-
-#, python-format
-msgid "phases.new-commit: not a valid phase name ('%s')"
-msgstr "phases.new-commit: não é um nome de fase válido ('%s')"
-
-#, python-format
msgid "exited with status %d"
msgstr "terminou com o código %d"
@@ -22554,10 +19134,6 @@ msgid "adding branch\n"
msgstr "adicionando ramo\n"
#, python-format
-msgid "error removing %s: %s\n"
-msgstr "erro ao remover %s: %s\n"
-
-#, python-format
msgid "strip failed, full bundle stored in '%s'\n"
msgstr "strip falhou, bundle completo armazenado em '%s'\n"
@@ -22566,8 +19142,8 @@ msgid "strip failed, partial bundle stored in '%s'\n"
msgstr "strip falhou, bundle parcial armazenado em '%s'\n"
#, python-format
-msgid "revlog decompress error: %s"
-msgstr "erro de descompressão do revlog: %s"
+msgid "cannot %s; remote repository does not support the %r capability"
+msgstr "impossível %s; repositório remoto não suporta a funcionalidade '%r'"
#, python-format
msgid "unknown compression type %r"
@@ -22667,33 +19243,18 @@ msgid "author requires a string"
msgstr "author requer uma string"
msgid ""
-"``bisect(string)``\n"
-" Changesets marked in the specified bisect status:"
+"``bisected(string)``\n"
+" Changesets marked in the specified bisect state (good, bad, skip)."
msgstr ""
"``bisected(string)``\n"
-" Revisões marcadas com o estado de bissecção especificado:"
-
-msgid ""
-" - ``good``, ``bad``, ``skip``: csets explicitly marked as good/bad/skip\n"
-" - ``goods``, ``bads`` : csets topologicaly good/bad\n"
-" - ``range`` : csets taking part in the bisection\n"
-" - ``pruned`` : csets that are goods, bads or skipped\n"
-" - ``untested`` : csets whose fate is yet unknown\n"
-" - ``ignored`` : csets ignored due to DAG topology\n"
-" - ``current`` : the cset currently being bisected"
-msgstr ""
-" - ``good``, ``bad``, ``skip``: revs explicitamente marcadas como boas, ruins ou omitidas\n"
-" - ``goods``, ``bads`` : revs topologicamente boas ou ruins\n"
-" - ``range`` : revs participando da bissecção\n"
-" - ``pruned`` : revs goods, bads ou skipped\n"
-" - ``untested`` : revs que ainda não foram testadas\n"
-" - ``ignored`` : revs ignoradas pela topologia do DAG\n"
-" - ``current`` : a revisão sendo biseccionada no momento"
-
-#. i18n: "bisect" is a keyword
+" Revisões marcadas com o estado de bissecção especificado (good, bad, skip)."
+
msgid "bisect requires a string"
msgstr "bisect requer uma string"
+msgid "invalid bisect state"
+msgstr "estado de bisecção inválido"
+
msgid ""
"``bookmark([name])``\n"
" The named bookmark or all bookmarks."
@@ -22701,15 +19262,6 @@ msgstr ""
"``bookmark([nome])``\n"
" O marcador chamado nome, ou todos os marcadores."
-msgid ""
-" If `name` starts with `re:`, the remainder of the name is treated as\n"
-" a regular expression. To match a bookmark that actually starts with `re:`,\n"
-" use the prefix `literal:`."
-msgstr ""
-" Se `nome` começar com `re:`, o restante do nome é tratado como\n"
-" uma expressão regular. Para combinar com um marcador que comece\n"
-" com `re:` literalmente, use o prefixo `literal:`."
-
#. i18n: "bookmark" is a keyword
msgid "bookmark takes one or no arguments"
msgstr "bookmark requer um ou nenhum argumento"
@@ -22718,10 +19270,6 @@ msgstr "bookmark requer um ou nenhum argumento"
msgid "the argument to bookmark must be a string"
msgstr "o argumento para o comando bookmark deve ser uma string"
-#, python-format
-msgid "no bookmarks exist that match '%s'"
-msgstr "não existe nenhum marcador que corresponda a '%s'"
-
msgid ""
"``branch(string or set)``\n"
" All changesets belonging to the given branch or the branches of the given\n"
@@ -22732,15 +19280,6 @@ msgstr ""
" das revisões no conjunto."
msgid ""
-" If `string` starts with `re:`, the remainder of the name is treated as\n"
-" a regular expression. To match a branch that actually starts with `re:`,\n"
-" use the prefix `literal:`."
-msgstr ""
-" Se `string` começar com `re:`, o restante do nome é tratado como\n"
-" uma expressão regular. Para combinar com um ramo que comece\n"
-" com `re:` literalmente, use o prefixo `literal:`."
-
-msgid ""
"``children(set)``\n"
" Child changesets of changesets in set."
msgstr ""
@@ -22772,24 +19311,6 @@ msgid "contains requires a pattern"
msgstr "contains requer um padrão"
msgid ""
-"``converted([id])``\n"
-" Changesets converted from the given identifier in the old repository if\n"
-" present, or all converted changesets if no identifier is specified."
-msgstr ""
-"``converted([id])``\n"
-" Revisões convertidas a partir do identificador dado no\n"
-" repositório de origem, ou todas as revisões convertidas se\n"
-" um identificador não for fornecido."
-
-#. i18n: "converted" is a keyword
-msgid "converted takes one or no arguments"
-msgstr "converted recebe um ou nenhum argumento"
-
-#. i18n: "converted" is a keyword
-msgid "converted requires a revision"
-msgstr "converted requer uma revisão"
-
-msgid ""
"``date(interval)``\n"
" Changesets within the interval, see :hg:`help dates`."
msgstr ""
@@ -22820,106 +19341,16 @@ msgstr ""
" Todas as revisões descendentes de revisões do conjunto."
msgid ""
-"``destination([set])``\n"
-" Changesets that were created by a graft, transplant or rebase operation,\n"
-" with the given revisions specified as the source. Omitting the optional set\n"
-" is the same as passing all()."
-msgstr ""
-"``destination([conjunto])``\n"
-" Revisões criadas por operações graft, transplant ou rebase\n"
-" que tiveram como origem revisões no conjunto. Se o conjunto\n"
-" não for especificado, será o mesmo que especificar all()."
-
-msgid ""
-"``draft()``\n"
-" Changeset in draft phase."
-msgstr ""
-"``draft()``\n"
-" Revisões na fase \"draft\" (rascunho)."
-
-#. i18n: "draft" is a keyword
-msgid "draft takes no arguments"
-msgstr "draft não tem argumentos"
-
-msgid ""
-"``extinct()``\n"
-" Obsolete changesets with obsolete descendants only."
-msgstr ""
-"``extinct()``\n"
-" Revisões extintas (revisões obsoletas que possuam apenas\n"
-" descendentes obsoletos)."
-
-#. i18n: "extinct" is a keyword
-msgid "extinct takes no arguments"
-msgstr "extinct não tem argumentos"
-
-msgid ""
-"``extra(label, [value])``\n"
-" Changesets with the given label in the extra metadata, with the given\n"
-" optional value."
-msgstr ""
-"``extra(rótulo, [valor])``\n"
-" Revisões com o rótulo pedido nos metadados extras, opcionalmente\n"
-" com o valor pedido."
-
-msgid ""
-" If `value` starts with `re:`, the remainder of the value is treated as\n"
-" a regular expression. To match a value that actually starts with `re:`,\n"
-" use the prefix `literal:`."
-msgstr ""
-" Se `valor` começar com `re:`, o restante do valor é tratado como\n"
-" uma expressão regular. Para combinar com um valor que comece\n"
-" com `re:` literalmente, use o prefixo `literal:`."
-
-#. i18n: "extra" is a keyword
-msgid "extra takes at least 1 and at most 2 arguments"
-msgstr "extra recebe um ou dois argumentos"
-
-#. i18n: "extra" is a keyword
-msgid "first argument to extra must be a string"
-msgstr "o primeiro argumento de extra deve ser uma string"
-
-#. i18n: "extra" is a keyword
-msgid "second argument to extra must be a string"
-msgstr "o segundo argumento de extra deve ser uma string"
-
-msgid ""
"``filelog(pattern)``\n"
" Changesets connected to the specified filelog."
msgstr ""
"``filelog(padrão)``\n"
" Revisões conectadas ao filelog especificado."
-msgid ""
-" For performance reasons, ``filelog()`` does not show every changeset\n"
-" that affects the requested file(s). See :hg:`help log` for details. For\n"
-" a slower, more accurate result, use ``file()``."
-msgstr ""
-" Por razões de desempenho, ``filelog()`` não mostra todas as\n"
-" revisões que afetaram os arquivos pedidos. Veja :hg:`help log`\n"
-" para mais detalhes. Para um resultado mais preciso, mas mais\n"
-" lento, use ``file()``."
-
-#. i18n: "filelog" is a keyword
msgid "filelog requires a pattern"
msgstr "filelog requer um padrão"
msgid ""
-"``first(set, [n])``\n"
-" An alias for limit()."
-msgstr ""
-"``first(conjunto, [n])``\n"
-" Um apelido para limit()."
-
-#, python-format
-msgid "%s takes no arguments or a filename"
-msgstr "%s requer um nome de arquivo ou nenhum argumento"
-
-#, python-format
-msgid "%s expected a filename"
-msgstr "%s espera um nome de arquivo"
-
-msgid ""
"``follow([file])``\n"
" An alias for ``::.`` (ancestors of the working copy's first parent).\n"
" If a filename is specified, the history of the given file is followed,\n"
@@ -22930,6 +19361,17 @@ msgstr ""
" Se um nome de arquivo for especificado, o histórico do arquivo pedido será\n"
" seguido, incluindo cópias."
+#. i18n: "follow" is a keyword
+msgid "follow takes no arguments or a filename"
+msgstr "follow requer um nome de arquivo ou nenhum argumento"
+
+msgid "follow expected a filename"
+msgstr "follow espera um nome de arquivo"
+
+#. i18n: "follow" is a keyword
+msgid "follow takes no arguments"
+msgstr "follow não tem argumentos"
+
msgid ""
"``all()``\n"
" All changesets, the same as ``0:tip``."
@@ -22961,27 +19403,6 @@ msgstr "grep requer uma string"
msgid "invalid match pattern: %s"
msgstr "padrão de busca inválido: %s"
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles requires at least one argument"
-msgstr "_matchfiles requer ao menos um argumento"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles requires string arguments"
-msgstr "_matchfiles requer argumentos de texto"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles expected at most one revision"
-msgstr "_matchfiles espera no máximo uma revisão"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles expected at most one default mode"
-msgstr "_matchfiles espera no máximo um modo padrão"
-
-#. i18n: "_matchfiles" is a keyword
-#, python-format
-msgid "invalid _matchfiles prefix: %s"
-msgstr "prefixo _matchfiles inválido: %s"
-
msgid ""
"``file(pattern)``\n"
" Changesets affecting files matched by pattern."
@@ -22989,13 +19410,6 @@ msgstr ""
"``file(padrão)``\n"
" Revisões que afetam arquivos correspondentes ao padrão."
-msgid ""
-" For a faster but less accurate result, consider using ``filelog()``\n"
-" instead."
-msgstr ""
-" Para um resultado mais rápido mas menos preciso, considere usar\n"
-" ``filelog()``."
-
#. i18n: "file" is a keyword
msgid "file requires a pattern"
msgstr "file requer um padrão"
@@ -23033,15 +19447,15 @@ msgid "keyword requires a string"
msgstr "keyword requer uma string"
msgid ""
-"``limit(set, [n])``\n"
-" First n members of set, defaulting to 1."
+"``limit(set, n)``\n"
+" First n members of set."
msgstr ""
-"``limit(conjunto, [n])``\n"
-" Os primeiros n membros do conjunto. O valor padrão de n é 1."
+"``limit(conjunto, n)``\n"
+" Os primeiros n membros do conjunto."
#. i18n: "limit" is a keyword
-msgid "limit requires one or two arguments"
-msgstr "limit exige um ou dois argumentos"
+msgid "limit requires two arguments"
+msgstr "limit requer dois argumentos"
#. i18n: "limit" is a keyword
msgid "limit requires a number"
@@ -23052,15 +19466,15 @@ msgid "limit expects a number"
msgstr "limit espera um número"
msgid ""
-"``last(set, [n])``\n"
-" Last n members of set, defaulting to 1."
+"``last(set, n)``\n"
+" Last n members of set."
msgstr ""
-"``last(conjunto, [n])``\n"
-" Os últimos n membros do conjunto. O valor padrão de n é 1."
+"``last(conjunto, n)``\n"
+" Os últimos n membros do conjunto."
#. i18n: "last" is a keyword
-msgid "last requires one or two arguments"
-msgstr "last exige um ou dois argumentos"
+msgid "last requires two arguments"
+msgstr "last requer dois argumentos"
#. i18n: "last" is a keyword
msgid "last requires a number"
@@ -23123,33 +19537,6 @@ msgid "id requires a string"
msgstr "id requer uma string"
msgid ""
-"``obsolete()``\n"
-" Mutable changeset with a newer version."
-msgstr ""
-"``obsolete()``\n"
-" Revisões obsoletas (revisões mutáveis com uma nova versão)."
-
-#. i18n: "obsolete" is a keyword
-msgid "obsolete takes no arguments"
-msgstr "obsolete não tem argumentos"
-
-msgid ""
-"``origin([set])``\n"
-" Changesets that were specified as a source for the grafts, transplants or\n"
-" rebases that created the given revisions. Omitting the optional set is the\n"
-" same as passing all(). If a changeset created by these operations is itself\n"
-" specified as a source for one of these operations, only the source changeset\n"
-" for the first operation is selected."
-msgstr ""
-"``origin([conjunto])``\n"
-" Revisões que foram especificadas como origem em operações graft,\n"
-" transplant ou rebase que criaram as revisões no conjunto. Omitir\n"
-" o conjunto tem o mesmo efeito de passar all(). Se uma revisão\n"
-" criada por essas operações for ela mesma especificada como\n"
-" origem de uma dessas operações, apenas a revisão de origem da\n"
-" primeira operação será selecionada."
-
-msgid ""
"``outgoing([path])``\n"
" Changesets not found in the specified destination repository, or the\n"
" default push location."
@@ -23201,49 +19588,6 @@ msgstr ""
" encontrada; caso contrário, todas as revisões no conjunto pedido."
msgid ""
-" If any of specified revisions is not present in the local repository,\n"
-" the query is normally aborted. But this predicate allows the query\n"
-" to continue even in such cases."
-msgstr ""
-" A consulta é normalmente abortada se qualquer revisão especificada\n"
-" não estiver presente no repositório local. Este predicado permite\n"
-" que a consulta continue nesses casos."
-
-msgid ""
-"``public()``\n"
-" Changeset in public phase."
-msgstr ""
-"``public()``\n"
-" Revisões na fase \"public\" (pública)."
-
-#. i18n: "public" is a keyword
-msgid "public takes no arguments"
-msgstr "public não tem argumentos"
-
-msgid ""
-"``remote([id [,path]])``\n"
-" Local revision that corresponds to the given identifier in a\n"
-" remote repository, if present. Here, the '.' identifier is a\n"
-" synonym for the current local branch."
-msgstr ""
-"``remote([id] [,caminho])``\n"
-" Revisão local que corresponda ao identificador dado em um\n"
-" repositório remoto, se presente. Aqui, o identificador '.' é um\n"
-" sinônimo para o ramo local atual."
-
-#. i18n: "remote" is a keyword
-msgid "remote takes one, two or no arguments"
-msgstr "remote recebe nenhum, um ou dois argumentos"
-
-#. i18n: "remote" is a keyword
-msgid "remote requires a string id"
-msgstr "remote requer uma string de identificação"
-
-#. i18n: "remote" is a keyword
-msgid "remote requires a repository path"
-msgstr "remote requer um caminho para um repositório"
-
-msgid ""
"``removes(pattern)``\n"
" Changesets which remove files matching pattern."
msgstr ""
@@ -23274,75 +19618,6 @@ msgid "rev expects a number"
msgstr "rev espera um número"
msgid ""
-"``matching(revision [, field])``\n"
-" Changesets in which a given set of fields match the set of fields in the\n"
-" selected revision or set."
-msgstr ""
-"``matching(revisão [, campos])``\n"
-" Revisões nas quais os valores do conjunto especificado de campos\n"
-" combinam com os valores do mesmo conjunto de campos na revisão ou\n"
-" conjunto de revisões pedido."
-
-msgid ""
-" To match more than one field pass the list of fields to match separated\n"
-" by spaces (e.g. ``author description``)."
-msgstr ""
-" Para combinar com mais de um campo, passe a lista de campos\n"
-" separada por espaços (como em 'author description')."
-
-msgid ""
-" Valid fields are most regular revision fields and some special fields."
-msgstr ""
-" Os campos válidos são a maior parte dos campos comuns de revisões,\n"
-" além de alguns campos especiais."
-
-msgid ""
-" Regular revision fields are ``description``, ``author``, ``branch``,\n"
-" ``date``, ``files``, ``phase``, ``parents``, ``substate``, ``user``\n"
-" and ``diff``.\n"
-" Note that ``author`` and ``user`` are synonyms. ``diff`` refers to the\n"
-" contents of the revision. Two revisions matching their ``diff`` will\n"
-" also match their ``files``."
-msgstr ""
-" Os campos comuns são: ``description`` (descrição), ``author`` (autor),\n"
-" ``branch`` (ramo), ``date`` (data), ``files`` (arquivos),\n"
-" ``phase`` (fase), ``parents`` (pais), ``substate`` (sub-repositórios)\n"
-" e ``user`` (usuário). Note que ``user`` ``author`` são sinônimos.\n"
-" ``diff`` se refere ao conteúdo da revisão. Duas revisões com mesmo\n"
-" ``diff`` também terão o mesmo ``files``."
-
-msgid ""
-" Special fields are ``summary`` and ``metadata``:\n"
-" ``summary`` matches the first line of the description.\n"
-" ``metadata`` is equivalent to matching ``description user date``\n"
-" (i.e. it matches the main metadata fields)."
-msgstr ""
-" Os campos especiais são ``summary`` (sumário) e ``metadata`` (metadados):\n"
-" ``summary`` corresponde à primeira linha da descrição.\n"
-" ``metadata`` é equivalente a ``description user date``\n"
-" (ou seja, corresponde aos principais campos de metadados)."
-
-msgid ""
-" ``metadata`` is the default field which is used when no fields are\n"
-" specified. You can match more than one field at a time."
-msgstr ""
-" Se não forem especificados campos, será utilizado o campo metadata.\n"
-" Você pode corresponder mais de um campo simultaneamente."
-
-#. i18n: "matching" is a keyword
-msgid "matching takes 1 or 2 arguments"
-msgstr "matching recebe um ou dois argumentos"
-
-#. i18n: "matching" is a keyword
-msgid "matching requires a string as its second argument"
-msgstr "matching exige uma string como segundo argumento"
-
-#. i18n: "matching" is a keyword
-#, python-format
-msgid "unexpected field name passed to matching: %s"
-msgstr "nome de campo inesperado passado para matching: %s"
-
-msgid ""
"``reverse(set)``\n"
" Reverse order of set."
msgstr ""
@@ -23351,21 +19626,10 @@ msgstr ""
msgid ""
"``roots(set)``\n"
-" Changesets in set with no parent changeset in set."
+" Changesets with no parent changeset in set."
msgstr ""
"``roots(conjunto)``\n"
-" Revisões no conjunto sem revisões pais no conjunto."
-
-msgid ""
-"``secret()``\n"
-" Changeset in secret phase."
-msgstr ""
-"``secret()``\n"
-" A revisão está na fase \"secret\" (secreta)."
-
-#. i18n: "secret" is a keyword
-msgid "secret takes no arguments"
-msgstr "secret não tem argumentos"
+" Revisões sem revisões pais no conjunto."
msgid ""
"``sort(set[, [-]key...])``\n"
@@ -23396,7 +19660,6 @@ msgstr ""
msgid "sort requires one or two arguments"
msgstr "sort exige um ou dois argumentos"
-#. i18n: "sort" is a keyword
msgid "sort spec must be a string"
msgstr "especificação do sort deve ser uma string"
@@ -23404,10 +19667,6 @@ msgstr "especificação do sort deve ser uma string"
msgid "unknown sort key %r"
msgstr "especificação de ordenação desconhecida: %r"
-#, python-format
-msgid "invalid regular expression: %s"
-msgstr "expressão regular inválida: %s"
-
msgid ""
"``tag([name])``\n"
" The specified tag by name, or all tagged revisions if no name is given."
@@ -23425,21 +19684,6 @@ msgstr "tag recebe um ou nenhum argumento"
msgid "the argument to tag must be a string"
msgstr "o argumento de tag deve ser uma string"
-#, python-format
-msgid "no tags exist that match '%s'"
-msgstr "não existem etiquetas que correspondem a '%s'"
-
-msgid ""
-"``unstable()``\n"
-" Non-obsolete changesets with obsolete ancestors."
-msgstr ""
-"``unstable()``\n"
-" Revisões instáveis (revisões não-obsoletas com ancestrais obsoletos)."
-
-#. i18n: "unstable" is a keyword
-msgid "unstable takes no arguments"
-msgstr "unstable não tem argumentos"
-
msgid ""
"``user(string)``\n"
" User name contains string. The match is case-insensitive."
@@ -23448,15 +19692,6 @@ msgstr ""
" O nome do usuário contém texto. A comparação não diferencia\n"
" maiúsculas e minúsculas."
-msgid ""
-" If `string` starts with `re:`, the remainder of the string is treated as\n"
-" a regular expression. To match a user that actually contains `re:`, use\n"
-" the prefix `literal:`."
-msgstr ""
-" Se `texto` começar com `re:`, o restante do texto é tratado como\n"
-" uma expressão regular. Para combinar com um usuário que contiver\n"
-" `re:` literalmente, use o prefixo `literal:`."
-
msgid "can't negate that"
msgstr "não é possível negar essa expressão"
@@ -23464,10 +19699,6 @@ msgid "not a symbol"
msgstr "não é um símbolo"
#, python-format
-msgid "infinite expansion of revset alias \"%s\" detected"
-msgstr "detectada expansão infinita no apelido de revset \"%s\""
-
-#, python-format
msgid "invalid number of arguments: %s"
msgstr "número de argumentos inválido: %s"
@@ -23475,10 +19706,6 @@ msgid "empty query"
msgstr "consulta vazia"
#, python-format
-msgid "no changes found (ignored %d secret changesets)\n"
-msgstr "nenhuma mudança encontrada (%d revisões secretas ignoradas)\n"
-
-#, python-format
msgid "ui.portablefilenames value is invalid ('%s')"
msgstr "o valor de ui.portablefilenames é inválido ('%s')"
@@ -23495,8 +19722,8 @@ msgid "path contains illegal component: %s"
msgstr "o caminho contém um componente ilegal: %s"
#, python-format
-msgid "path '%s' is inside nested repo %r"
-msgstr "o caminho '%s' está dentro do repositório aninhado %r"
+msgid "path %r is inside nested repo %r"
+msgstr "o caminho %r está dentro do repositório aninhado %r"
#, python-format
msgid "path %r traverses symbolic link %r"
@@ -23506,37 +19733,24 @@ msgstr "o caminho %r percorre o link simbólico %r"
msgid "could not symlink to %r: %s"
msgstr "impossível criar link simbólico para %r: %s"
-msgid "empty revision range"
-msgstr "faixa de revisões vazia"
-
#, python-format
msgid "recording removal of %s as rename to %s (%d%% similar)\n"
msgstr "gravando remoção de %s como renomeação para %s (%d%% de similaridade)\n"
#, python-format
msgid "%s has not been committed yet, so no copy data will be stored for %s.\n"
-msgstr ""
-"%s ainda não foi consolidado, então dados de cópia não serão guardados para "
-"%s.\n"
+msgstr "%s ainda não foi consolidado, então dados de cópia não serão guardados para %s.\n"
msgid ".hg/requires file is corrupt"
msgstr "arquivo .hg/requires corrompido"
#, python-format
msgid "unknown repository format: requires features '%s' (upgrade Mercurial)"
-msgstr ""
-"formato de repositório desconhecido: requer as funcionalidades '%s' "
-"(atualize o Mercurial)"
+msgstr "formato de repositório desconhecido: requer as funcionalidades '%s' (atualize o Mercurial)"
msgid "searching for changes\n"
msgstr "procurando por mudanças\n"
-msgid "all local heads known remotely\n"
-msgstr "todas as cabeças locais são conhecidas remotamente\n"
-
-msgid "sampling from both directions\n"
-msgstr "amostrando de ambas as direções\n"
-
msgid "queries"
msgstr "consultas"
@@ -23578,16 +19792,13 @@ msgstr "não foi possível criar repositório remoto"
msgid "no suitable response from remote hg"
msgstr "nenhuma resposta adequada do hg remoto"
+msgid "remote: "
+msgstr "remoto: "
+
#, python-format
msgid "push refused: %s"
msgstr "envio recusado: %s"
-msgid "ssl connection failed"
-msgstr "a conexão ssl falhou"
-
-msgid "Python SSL support not found"
-msgstr "suporte do Python a SSL não instalado"
-
msgid "certificate checking requires Python 2.6"
msgstr "verificação de certificado exige Python 2.6"
@@ -23609,49 +19820,24 @@ msgid "could not find web.cacerts: %s"
msgstr "não foi possível encontrar web.cacerts: %s"
#, python-format
-msgid "host fingerprint for %s can't be verified (Python too old)"
-msgstr ""
-"a impressão digital do host para %s não pode ser verificada (versão do "
-"Python muito antiga)"
-
-#, python-format
-msgid "warning: certificate for %s can't be verified (Python too old)\n"
-msgstr ""
-"aviso: certificado %s não pode ser verificado (versão do Python muito "
-"antiga)\n"
-
-#, python-format
-msgid "%s ssl connection error"
-msgstr "erro de conexão ssl com %s"
+msgid "%s certificate error: %s (use --insecure to connect insecurely)"
+msgstr "erro no certificado de %s: %s (use --insecure para conectar de modo inseguro)"
#, python-format
-msgid "%s certificate error: no certificate received"
-msgstr "erro de certificado ssl em %s: nenhum certificado recebido"
-
-#, python-format
-msgid "certificate for %s has unexpected fingerprint %s"
-msgstr "certificado para %s tem impressão digital inesperada %s"
-
-msgid "check hostfingerprint configuration"
-msgstr "verifique a configuração hostfingerprint"
+msgid "invalid certificate for %s with fingerprint %s"
+msgstr "certificado inválido para %s com impressão digital %s"
#, python-format
-msgid "%s certificate error: %s"
-msgstr "erro de certificado em %s: %s"
+msgid "warning: %s certificate with fingerprint %s not verified (check hostfingerprints or web.cacerts config setting)\n"
+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 "configure hostfingerprint %s or use --insecure to connect insecurely"
-msgstr ""
-"configure a hostfingerprint %s ou use --insecure para conectar de modo "
-"inseguro"
+msgid "host fingerprint for %s can't be verified (Python too old)"
+msgstr "a impressão digital do host para %s não pode ser verificada (versão do Python muito antiga)"
#, python-format
-msgid ""
-"warning: %s certificate with fingerprint %s not verified (check "
-"hostfingerprints or web.cacerts config setting)\n"
-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"
+msgid "warning: certificate for %s can't be verified (Python too old)\n"
+msgstr "aviso: certificado %s não pode ser verificado (versão do Python muito antiga)\n"
#, python-format
msgid "'%s' does not appear to be an hg repository"
@@ -23675,19 +19861,13 @@ msgstr "aviso: arquivo spec de sub-repositório %s não encontrado\n"
msgid "subrepo spec file %s not found"
msgstr "arquivo spec de sub-repositório %s não encontrado"
-#, python-format
-msgid "invalid subrepository revision specifier in .hgsubstate line %d"
-msgstr ""
-"especificador de revisão de sub-repositório inválido na linha %d do arquivo "
-".hgsubstate"
+msgid "missing ] in subrepo source"
+msgstr "faltando ] na origem do sub-repositório"
#, python-format
msgid "bad subrepository pattern in %s: %s"
msgstr "padrão ruim de sub-repositório em %s: %s"
-msgid "missing ] in subrepo source"
-msgstr "faltando ] na origem do sub-repositório"
-
#, python-format
msgid ""
" subrepository sources for %s differ\n"
@@ -23763,36 +19943,16 @@ msgstr "trazendo sub-repositório %s de %s\n"
msgid "pushing subrepo %s to %s\n"
msgstr "enviando sub-repositório %s para %s\n"
-#, python-format
-msgid "reverting subrepo %s\n"
-msgstr "revertendo sub-repositório %s\n"
-
-#, python-format
-msgid "'svn' executable not found for subrepo '%s'"
-msgstr "executável 'svn' não encontrado para o sub-repositório '%s'"
-
msgid "cannot retrieve svn tool version"
msgstr "não é possível obter a versão da ferramenta svn"
msgid "cannot commit svn externals"
msgstr "não se pode consolidar svn externals"
-msgid "cannot commit missing svn entries"
-msgstr "não se pode consolidar entradas svn ausentes"
-
-msgid "failed to commit svn changes"
-msgstr "falha ao consolidar mudanças do svn"
-
#, python-format
msgid "not removing repo %s because it has changes.\n"
msgstr "repositório %s não removido por possuir mudanças.\n"
-msgid "cannot retrieve git version"
-msgstr "não é possível obter a versão do git"
-
-msgid "git subrepo requires at least 1.6.0 or later"
-msgstr "sub-repositórios do git exigem a versão 1.6.0 ou posterior"
-
#, 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"
@@ -23819,10 +19979,10 @@ 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\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\n"
+"não é possível fazer push da revisão %s"
#, python-format
msgid "%s, line %s: %s\n"
@@ -23954,43 +20114,10 @@ msgstr ""
":obfuscate: Qualquer texto. Devolve o texto de entrada\n"
" renderizado como uma sequência de entidades XML."
-msgid ""
-":person: Any text. Returns the name before an email address,\n"
-" interpreting it as per RFC 5322."
+msgid ":person: Any text. Returns the text before an email address."
msgstr ""
":person: Qualquer texto. Devolve o texto antes de um endereço\n"
-" de e-mail, interpretando-o de acordo com a RFC 5322."
-
-msgid ""
-" >>> person('foo@bar')\n"
-" 'foo'\n"
-" >>> person('Foo Bar <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo Bar\" <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo \"buz\" Bar\" <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> # The following are invalid, but do exist in real-life\n"
-" ...\n"
-" >>> person('Foo \"buz\" Bar <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> person('\"Foo Bar <foo@bar>')\n"
-" 'Foo Bar'"
-msgstr ""
-" >>> person('foo@bar')\n"
-" 'foo'\n"
-" >>> person('Foo Bar <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo Bar\" <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo \"buz\" Bar\" <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> # The following are invalid, but do exist in real-life\n"
-" ...\n"
-" >>> person('Foo \"buz\" Bar <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> person('\"Foo Bar <foo@bar>')\n"
-" 'Foo Bar'"
+" de e-mail."
msgid ""
":rfc3339date: Date. Returns a date using the Internet date format\n"
@@ -24015,18 +20142,6 @@ msgstr ""
":short: Hash da revisão. Devolve a forma curta do hash de\n"
" uma revisão, ou seja, uma string hexadecimal de 12 dígitos."
-msgid ""
-":shortbisect: Any text. Treats `text` as a bisection status, and\n"
-" returns a single-character representing the status (G: good, B: bad,\n"
-" S: skipped, U: untested, I: ignored). Returns single space if `text`\n"
-" is not a valid bisection status."
-msgstr ""
-":shortbisect: Qualquer texto. Trata o texto como um estado de\n"
-" bissecção, e devolve um caractere único representando o estado\n"
-" (G: boa, B: ruim, S: omitida, U: não testada, I: ignorada).\n"
-" Devolve um único espaço se o texto não for um estado de bissecção\n"
-" válido."
-
msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
msgstr ":shortdate: Data. Devolve uma data como \"2006-09-18\"."
@@ -24065,24 +20180,12 @@ msgstr ""
" \"especiais\". Por exemplo, \"foo bar\" se torna\n"
" \"foo%20bar\"."
-msgid ""
-":user: Any text. Returns a short representation of a user name or email\n"
-" address."
-msgstr ""
-":user: Qualquer texto. Devolve uma representação curta de um nome\n"
-" de usuário ou endereço de e-mail."
-
-msgid ":emailuser: Any text. Returns the user portion of an email address."
-msgstr ""
-":emailuser: Qualquer texto. Devolve a parte do usuário de um endereço de "
-"e-mail."
+msgid ":user: Any text. Returns the user portion of an email address."
+msgstr ":user: Qualquer texto. Devolve a parte do usuário de um endereço de e-mail."
msgid ":author: String. The unmodified author of the changeset."
msgstr ":author: String. O autor da revisão, sem modificações."
-msgid ":bisect: String. The changeset bisection status."
-msgstr ":bisect: String. O estado de bissecção da revisão."
-
msgid ""
":branch: String. The name of the branch on which the changeset was\n"
" committed."
@@ -24099,8 +20202,7 @@ msgstr ""
msgid ""
":bookmarks: List of strings. Any bookmarks associated with the\n"
" changeset."
-msgstr ""
-":bookmarks: Lista de strings. Quaisquer marcadores associados à revisão."
+msgstr ":bookmarks: Lista de strings. Quaisquer marcadores associados à revisão."
msgid ":children: List of strings. The children of the changeset."
msgstr ":children: Lista de strings. As revisões filhas da revisão."
@@ -24165,27 +20267,12 @@ msgstr ""
":node: String. O hash de identificação da revisão, como uma string\n"
" hexadecimal de 40 dígitos."
-msgid ":phase: String. The changeset phase name."
-msgstr ":phase: String. O nome da fase da revisão."
-
-msgid ":phaseidx: Integer. The changeset phase index."
-msgstr ":phaseidx: Inteiro. O índice da fase da revisão."
-
msgid ":rev: Integer. The repository-local changeset revision number."
msgstr ":rev: Inteiro. O número de ordem da revisão no repositório local."
msgid ":tags: List of strings. Any tags associated with the changeset."
msgstr ":tags: Lista de strings. Quaisquer etiquetas associadas à revisão."
-msgid ""
-":parents: List of strings. The parents of the changeset in \"rev:node\"\n"
-" format. If the changeset has only one \"natural\" parent (the predecessor\n"
-" revision) nothing is shown."
-msgstr ""
-":parents: Lista de strings. Os pais da revisão no formato \"rev:node\".\n"
-" Se a revisão só tiver um pai \"natural\" (a revisão predecessora),\n"
-" nada é exibido."
-
#, python-format
msgid "unknown method '%s'"
msgstr "método desconhecido '%s'"
@@ -24239,12 +20326,12 @@ msgid "already have changeset "
msgstr "já possui a revisão "
#, python-format
-msgid "not trusting file %s from untrusted user %s, group %s\n"
-msgstr "não confiando em arquivo %s de usuário não confiável %s, grupo %s\n"
+msgid "Not trusting file %s from untrusted user %s, group %s\n"
+msgstr "Não confiando em arquivo %s de usuário não confiável %s, grupo %s\n"
#, python-format
-msgid "ignored: %s\n"
-msgstr "ignorado: %s\n"
+msgid "Ignored: %s\n"
+msgstr "Ignorado: %s\n"
#, python-format
msgid "(deprecated '%%' in path %s=%s from %s)\n"
@@ -24262,8 +20349,8 @@ msgid "enter a commit username:"
msgstr "entre o nome do usuário para consolidação:"
#, python-format
-msgid "no username found, using '%s' instead\n"
-msgstr "nome de usuário não encontrado, usando '%s'\n"
+msgid "No username found, using '%s' instead\n"
+msgstr "Nome de usuário não encontrado, usando '%s'\n"
msgid "no username supplied (see \"hg help config\")"
msgstr "nome de usuário não fornecido (veja \"hg help config\")"
@@ -24281,6 +20368,9 @@ msgstr "resposta desconhecida\n"
msgid "password: "
msgstr "senha: "
+msgid "edit failed"
+msgstr "falha ao editar"
+
msgid "http authorization required"
msgstr "autorização http requerida"
diff --git a/i18n/ro.po b/i18n/ro.po
index d69a669..9dc7e92 100644
--- a/i18n/ro.po
+++ b/i18n/ro.po
@@ -5420,14 +5420,12 @@ msgstr ""
msgid "&No, skip this change"
msgstr "&Nu, omite această modificare"
-#, fuzzy
msgid "&Skip remaining changes to this file"
msgstr "&Omite restul modificărilor pentru acest fișier"
msgid "Record remaining changes to this &file"
msgstr ""
-#, fuzzy
msgid "&Done, skip remaining changes and files"
msgstr "În&cheiat, omite restul modificărilor și fișierelor"
diff --git a/i18n/ru.po b/i18n/ru.po
index 7192c6e..bfe72cf 100644
--- a/i18n/ru.po
+++ b/i18n/ru.po
@@ -1,188 +1,20 @@
# Russian translations for Mercurial package.
# Copyright (C) 2011 Matt Mackall <mpm@selenic.com> and others
# This file is distributed under the same license as the Mercurial package.
-# === Glossary ===
-#
-#
-# Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ Ñтруктура
-#
-# repository — хранилище (не «репозиторий»)
-# subrepository — подхранилище (не «Ñубрепозиторий»)
-# store — Ñклад (= меÑто Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в LargefilesExtension),
-# (не «хранилище»)
-# directory — каталог (не «директорий», не «директориÑ»)
-# folder — папка
-# source — иÑточник
-# source file — иÑходный файл
-# destination — назначение
-# destination file — файл назначениÑ
-#
-#
-# ÐÐ°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¾Ñновных дейÑтвий
-#
-# commit — гл. фикÑировать, Ñущ. фикÑÐ°Ñ†Ð¸Ñ (не «коммит», не «коммитить»)
-# commit message — Ñообщение фикÑации
-# commit comment — комментарий Ñ Ñообщением фикÑации (только Ð´Ð»Ñ BugzillaExtension)
-# log — журнал
-# log message — Ñообщение журнала, журнальное Ñообщение
-# log entry — запиÑÑŒ журнала, Ð¶ÑƒÑ€Ð½Ð°Ð»ÑŒÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ
-# pull — затÑнуть (не «подтÑнуть»)
-# push — протолкнуть (не «затолкнуть»)
-# update — обновить (~ до определённой ревизии)
-# refresh — обновить изображение (имеет ÑмыÑл только Ð´Ð»Ñ GUI)
-# checkout — извлечь (напр. из хранилища Subversion)
-# resolve — уладить (конфликт)
-# revert — вернуть
-# discard — отброÑить
-#
-# Слова на тему «удаление»
-#
-# clean — чиÑтый (~ локальный файл, не Ñодержащий изменений по Ñравнению Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÐ¼)
-# clean working copy — чиÑÑ‚Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ (= не ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ñ‰Ð°Ñ Ð¸Ð·Ð¼ÐµÐ½Ñ‘Ð½Ð½Ñ‹Ñ… файлов)
-# purge — зачиÑтить (напр. удалить неиÑпользуемые файлы из рабочей копии),
-# (не «удалить», не «очиÑтить»)
-# strip — Ñрезать (~ ревизию и вÑех её потомков)
-# strip revision — Ñрезать ревизию
-# delete — удалить, уничтожить (напр. Ñтереть Ñ Ð´Ð¸Ñка)
-# remove — изъÑÑ‚ÑŒ (из-под ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²ÐµÑ€Ñий, не «удалить»)
-#
-#
-# Слова на тему «ÑлиÑние»
-#
-# branch — ветка (не «ветвь», не «бранч»), гл. ветвление
-# frozen branch — Ð·Ð°Ð¼Ð¾Ñ€Ð¾Ð¶ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ°
-# named branch — Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ°
-# diff — Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ (не «дифф»)
-# merge — Ñлить (Ñущ. «ÑлиÑние»)
-# backout — обратить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (~ Ñделанные в ранней ревизии)
-# rollback — откатить (~ транзакцию)
-# cancel — отменить
-#
-# Слова на тему «управление изменениÑми»
-#
-# bundle — комплект (не «бандл», не «пачка»)
-# to bundle several changesets — укомплектовать неÑколько наборов изменений
-# binary bundle — двоичный комплект
-# ??? batch — порциÑ
-# patch — заплатка, патч, накладывать заплатку, патчить, пропатчить
-# ??? apply patch — наложить заплатку (не «применить заплатку»)
-# ??? unapply patch — отпороть заплатку
-# ??? fold patch(es) — подшить заплатки (~ к Ñамой верхней наложенной заплатке)
-# ??? chunk, hunk — лоÑкут (= чаÑÑ‚ÑŒ заплатки)
-# ??? shelf — долгий Ñщик (= меÑто Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»Ð°Ð´Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹) ;)
-# shelve — отложить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (в долгий Ñщик)
-#
-#
-# Разное
-#
-# amend - иÑправлÑÑ‚ÑŒ
-# extension — раÑширение
-# option — параметр (не «опциÑ»)
-# options — параметры (не «наÑтройки»)
-# settings — наÑтройки (не «уÑтановки»)
-# hook — хук, перехватчик, (не «крючок», не «ловушка», не «уловка», не «зацепка»)
-# hook script — хук, Ñкрипт-перехватчик (не «Ñкрипт ловушки»)
-# иногда Ñлово hook употреблÑетÑÑ Ð² том же ÑмыÑле, что и intercepted action (например, в документации)
-# — тогда его Ñледует переводить как «перехватываемое дейÑтвие/Ñобытие» или «точка/момент перехвата»
-#
-# alias — пÑевдоним
-# changeset — набор изменений
-# revision — ревизиÑ
-# status — ÑоÑтоÑние
-# head — голова (= ревизиÑ, не Ð¸Ð¼ÐµÑŽÑ‰Ð°Ñ Ð´Ð¾Ñ‡ÐµÑ€Ð½Ð¸Ñ… ревизий)
-# tip — наконечник, Ð¾ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ
-# tip revision — Ð¾ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ
-#
-# changegroup группа изменений
-# tag метка
-# working copy Ñ€Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ
-# hash Ñ…Ñш
-# glob глоб, glob, (thg: «маÑка файла (glob)»)
-# binary бинарный
-# basename ?
-# import импортировать
-# export ÑкÑпортировать
-# rename переименовывать
-# undo отменить
-# track отÑлеживать
-# committer автор фикÑации
-# whitespace пробельный Ñимвол
-# match Ñовпадать (о шаблоне)
-# restricted ограниченный
-# graft перенеÑти (изменениÑ) ??? вообще переÑадить
-# id идентификатор
-# guard (в mq) Ñтраж (необходимо поÑÑнение) (thg: «Ñтражник» без вÑÑких поÑÑнений)
-# positive/negative guard положительный/отрицательный Ñтраж ??? (может разрешающий/запрещающий?)
-# apply patch наложить патч
-# fuzz (patch) неÑоответÑтвие контекÑтов (в патче и целевом файле) ???
-# series (mq) поÑледовательноÑÑ‚ÑŒ
-# pop (о Ñтеке) вытолкнуть (может пиÑать извлечь из Ñтека/помеÑтить в Ñтек) ???
-# push (о Ñтеке) протолкнуть Ñм. pop ???
-# save entry запиÑÑŒ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ???
-# versioned находÑщийÑÑ Ð¿Ð¾Ð´ контролем верÑий, верÑионируемый
-# queue repository хранилище очереди
-# nested вложенный
-# deprecated уÑтаревший
-# backup Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ
-# finish (mq, qfinish) финализировать??? (thg: завершить заплатку)
-# fold (patch) подшить ??? вообще Ñвернуть
-# imply подразумевать
-# rebase перебазировать
-# root корень, ÐºÐ¾Ñ€Ð½ÐµÐ²Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ ???
-# progress bar индикатор выполнениÑ
-# map (file) ??? да и вообще вÑе Ñ map плохо (вариант: ÑопоÑтавление)
-# abort отмена или оÑтанов (в ÑтатуÑах) (thg: прервать, прервано)
-# checkin (в конфиге Ð´Ð»Ñ encode/decode) ÑÐµÐ¹Ñ‡Ð°Ñ Ñ„Ð¸ÐºÑÐ°Ñ†Ð¸Ñ ???
-# lookup поиÑк ???
-# facility ???
-# obsolete marker маркер уÑтаревшей ревизии
-#
-#
-# === TODO ===
-#
-# Эти вещи требуют доработки
-#
-# - keyword template maps в keywords - придумать лучший перевод
-# - вычитка, иÑправление опечаток, ÑтилиÑтика многих предложений
-# - протеÑтировать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибках (Ñ Ð½Ðµ видел многих из них в работе)
-# - Ñтроки Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑким вводом (вида &Local). Пока не знаю, как они обрабатываютÑÑ.
-# - чиÑлительные - ÑÐµÐ¹Ñ‡Ð°Ñ Ð²Ñегда множеÑтвенное чиÑло
-# - придумать перевод Ð´Ð»Ñ Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð¾Ð² Ñ ???
-# - пометить как-то Ñтроки, которые не требуют перевода или не будут переводитьÑÑ,
-# чтобы можно легко понÑÑ‚ÑŒ, Ñколько еще оÑталоÑÑŒ Ñделать.
-# - в какой форме д.б. глаголы Ñообщений о текущем дейÑтвии:
-# 1 л ед.ч. - загружаю обновлениÑ,
-# 1 л мн.ч - загружаем обновлениÑ, -- Так! // comment by Andrei Polushin
-# 3 л - загружаютÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ?
-# Сюда же отноÑÑÑ‚ÑÑ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ cannot do smth: не могу Ñделать что-то или что-то невозможно?
-# Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð¿Ð¾Ñледний вариант. -- Рлучше «не удаётÑÑ» // comment by Andrei Polushin
-# - внеÑти Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑоглаÑованных терминов в hg glossary
-# - bisect - можно во многих меÑтах употреблÑÑ‚ÑŒ термин "биÑекциÑ" (употреблÑетÑÑ Ð² thg)
-# вмеÑто неуклюжего "метод Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð°Ð¼". Это уÑтоÑвшийÑÑ Ñ‚ÐµÑ€Ð¼Ð¸Ð½.
-# - в Ñтроке должно быть не более 75 Ñимволов!
-# - переводить ли примеры конфигов? Ñ Ð¾Ñтавил как еÑÑ‚ÑŒ, чтобы пользователь
-# привыкал к англ, Ñ‚.к. вÑе наÑтройки Mercurial на англ
-# - Attention Caution !Danger! Error Hint Important Note Tip Warning!
-# ÐºÐ°ÐºÐ°Ñ Ñ€Ð°Ð·Ð½Ð¸Ñ†Ð°?
-# - schemes - не понÑл, как пользоватьÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ð¼Ð¸. может, надо подкорректировать
-# опиÑание или добавить примеров?
-# - log message и commit message - одно и то же?
-#
-#
+# Alexander Sauta <demosito@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: Mercurial\n"
"Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2012-08-01 18:47+0400\n"
+"POT-Creation-Date: 2011-07-01 00:15+0400\n"
"PO-Revision-Date: 2011-05-12 23:48+0400\n"
"Last-Translator: Alexander Sauta <demosito@gmail.com>\n"
"Language-Team: Russian\n"
-"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#, python-format
msgid " (default: %s)"
@@ -201,8 +33,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 ""
-"Этот раздел Ñодержит Ñправку по раÑширениÑм, включенным в Ñтандартный "
-"диÑтрибутив Mercurial. Справка по другим раÑширениÑм может быть получена в "
+"Этот раздел Ñодержит Ñправку по раÑширениÑм, включенным в Ñтандартную "
+"комплектацию Mercurial. Справка по другим раÑширениÑм может быть получена в "
"Ñправочной ÑиÑтеме."
msgid "Options:"
@@ -212,27 +44,20 @@ msgstr "Параметры:"
msgid " aliases: %s"
msgstr " пÑевдонимы: %s"
-# {{{ Start of extensions
msgid "hooks for controlling repository access"
-msgstr "хуки Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа к хранилищу"
+msgstr "Хуки Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа к репозиторию"
msgid ""
"This hook makes it possible to allow or deny write access to given\n"
"branches and paths of a repository when receiving incoming changesets\n"
"via pretxnchangegroup and pretxncommit."
msgstr ""
-"Этот хук позволÑет разрешить или запретить доÑтуп на запиÑÑŒ к заданным\n"
-"веткам и путÑм хранилища во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð²Ñ…Ð¾Ð´Ñщих наборов изменений\n"
-"через pretxnchangegroup и pretxncommit."
msgid ""
"The authorization is matched based on the local user name on the\n"
"system where the hook runs, and not the committer of the original\n"
"changeset (since the latter is merely informative)."
msgstr ""
-"ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¾Ñнована на локальном имени пользователÑ\n"
-"ÑиÑтемы, где выполнÑетÑÑ Ñ…ÑƒÐº, а не на имени автора (committer) иÑходного\n"
-"Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (changeset) (так как поÑледний имеет чиÑто информативный характер)."
msgid ""
"The acl hook is best used along with a restricted shell like hgsh,\n"
@@ -242,18 +67,9 @@ msgid ""
"remote users share an account, because then there is no way to\n"
"distinguish them."
msgstr ""
-"Хук авторизации (acl hook) лучше вÑего иÑпользовать вмеÑте Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð½Ð¾Ð¹ "
-"(restricted) оболочкой, как, например hgsh,\n"
-"ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ доÑтуп ко вÑему кроме push или pull неавторизованными "
-"пользователÑми.\n"
-"Хук небезопаÑно иÑпользовать, еÑли иÑпользуетÑÑ Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð°Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñ‡ÐºÐ°,\n"
-"так как при Ñтом пользователи могут отключить хук. Это также небезопаÑно "
-"еÑли\n"
-"отдалённые пользователи разделÑÑŽÑ‚ один и тот же аккаунт, так как при Ñтом "
-"Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ‚ÑŒ пользователей."
msgid "The order in which access checks are performed is:"
-msgstr "ПорÑдок, в котором выполнÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ доÑтупа:"
+msgstr ""
msgid ""
"1) Deny list for branches (section ``acl.deny.branches``)\n"
@@ -261,63 +77,38 @@ msgid ""
"3) Deny list for paths (section ``acl.deny``)\n"
"4) Allow list for paths (section ``acl.allow``)"
msgstr ""
-"1) СпиÑок запретов Ð´Ð»Ñ Ð²ÐµÑ‚Ð¾Ðº (раздел ``acl.deny.branches``)\n"
-"2) СпиÑок разрешений Ð´Ð»Ñ Ð²ÐµÑ‚Ð¾Ðº (раздел ``acl.allow.branches``)\n"
-"3) СпиÑок запретов Ð´Ð»Ñ Ð¿ÑƒÑ‚ÐµÐ¹ (раздел ``acl.deny``)\n"
-"4) СпиÑок разрешений Ð´Ð»Ñ Ð¿ÑƒÑ‚ÐµÐ¹ (раздел ``acl.allow``)"
msgid "The allow and deny sections take key-value pairs."
msgstr ""
-"Одобренный и отказной разделы (Ñекции ``allow`` и ``deny``) принимают пары "
-"ключ-значение."
msgid ""
"Branch-based Access Control\n"
-"---------------------------"
+"..........................."
msgstr ""
-"Контроль доÑтупа по веткам\n"
-"--------------------------"
msgid ""
"Use the ``acl.deny.branches`` and ``acl.allow.branches`` sections to\n"
"have branch-based access control. Keys in these sections can be\n"
"either:"
msgstr ""
-"ИÑпользуйте разделы ``acl.deny.branches`` и ``acl.allow.branches``\n"
-"чтобы получить контроль доÑтупа, оÑнованный на ветке. Ключами в Ñтих "
-"разделах могут быть:"
msgid ""
"- a branch name, or\n"
"- an asterisk, to match any branch;"
msgstr ""
-"- Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸, или\n"
-"- звёздочка, чтобы выбрать любую ветку;"
msgid "The corresponding values can be either:"
-msgstr "СоответÑтвующие Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть:"
+msgstr ""
msgid ""
"- a comma-separated list containing users and groups, or\n"
"- an asterisk, to match anyone;"
msgstr ""
-"- ÑпиÑок, разделённый запÑтыми, Ñодержащий пользователей и группы, или\n"
-"- звёздочка, чтобы выбрать любого;"
-
-msgid ""
-"You can add the \"!\" prefix to a user or group name to invert the sense\n"
-"of the match."
-msgstr ""
-"Ð’Ñ‹ можете добавить Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ \"!\" перед именем Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ группы, "
-"чтобы\n"
-"изменить ÑмыÑл правила на противоположный."
msgid ""
"Path-based Access Control\n"
-"-------------------------"
+"........................."
msgstr ""
-"Контроль доÑтупа по путÑм\n"
-"-------------------------"
msgid ""
"Use the ``acl.deny`` and ``acl.allow`` sections to have path-based\n"
@@ -325,26 +116,16 @@ msgid ""
"a glob syntax by default). The corresponding values follow the same\n"
"syntax as the other sections above."
msgstr ""
-"ИÑпользуйте разделы ``acl.deny`` и ``acl.allow`` Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа, "
-"оÑнованного на пути.\n"
-"Ключи в Ñтих разделах принимают шаблон Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€ÐµÐ²Ð° (Ñ\n"
-"ÑинтакÑиÑом glob по умолчанию). СоответÑтвующие Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñледуют тем же "
-"ÑинтакÑичеÑким правилам,\n"
-"что и вышеперечиÑленные разделы."
msgid ""
"Groups\n"
-"------"
+"......"
msgstr ""
-"Группы\n"
-"------"
msgid ""
"Group names must be prefixed with an ``@`` symbol. Specifying a group\n"
"name has the same effect as specifying all the users in that group."
msgstr ""
-"Имена групп должны начинатьÑÑ Ñ Ñимвола ``@``. ЕÑли Ð¸Ð¼Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ задано,\n"
-"Ñто даёт тот же Ñффект, что и указание вÑех пользователей в Ñтой группе."
msgid ""
"You can define group members in the ``acl.groups`` section.\n"
@@ -352,42 +133,28 @@ msgid ""
"a Unix-like system, the list of users will be taken from the OS.\n"
"Otherwise, an exception will be raised."
msgstr ""
-"Можно задать членов группы в разделе ``acl.groups``.\n"
-"ЕÑли Ð¸Ð¼Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ там не определено, и Mercurial работает под управлением\n"
-"Unix-подобной ÑиÑтемы, то ÑпиÑок пользователей будет определÑÑ‚ÑŒÑÑ "
-"операционной ÑиÑтемой.\n"
-"Ð’ противном Ñлучае генерируетÑÑ Ð¸Ñключение."
msgid ""
"Example Configuration\n"
-"---------------------"
+"....................."
msgstr ""
-"Пример конфигурации\n"
-"-------------------"
msgid "::"
-msgstr "::"
+msgstr ""
msgid " [hooks]"
-msgstr " [hooks]"
+msgstr ""
msgid ""
" # Use this if you want to check access restrictions at commit time\n"
" pretxncommit.acl = python:hgext.acl.hook"
msgstr ""
-" # ИÑпользуйте Ñто еÑли хотите проверÑÑ‚ÑŒ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупа во Ð²Ñ€ÐµÐ¼Ñ "
-"фикÑации\n"
-" pretxncommit.acl = python:hgext.acl.hook"
msgid ""
" # Use this if you want to check access restrictions for pull, push,\n"
" # bundle and serve.\n"
" pretxnchangegroup.acl = python:hgext.acl.hook"
msgstr ""
-" # ИÑпользуйте Ñто еÑли хотите проверÑÑ‚ÑŒ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупа Ð´Ð»Ñ pull, "
-"push,\n"
-" # bundle и serve.\n"
-" pretxnchangegroup.acl = python:hgext.acl.hook"
msgid ""
" [acl]\n"
@@ -398,64 +165,42 @@ msgid ""
" # Default: serve\n"
" sources = serve"
msgstr ""
-" [acl]\n"
-" # Разрешать или запрещать доÑтуп к входÑщим изменениÑм только еÑли их "
-"первоиÑточник\n"
-" # указан здеÑÑŒ, разрешать в противном Ñлучае. ИÑточник - \"serve\" Ð´Ð»Ñ "
-"вÑех\n"
-" # отдалённых операций (по http или ssh), или же \"push\", \"pull\" или "
-"\"bundle\", когда\n"
-" # ÑоответÑтвующие команды выполнÑÑŽÑ‚ÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾.\n"
-" # По умолчанию: serve\n"
-" sources = serve"
msgid " [acl.deny.branches]"
-msgstr " [acl.deny.branches]"
+msgstr ""
msgid ""
" # Everyone is denied to the frozen branch:\n"
" frozen-branch = *"
msgstr ""
-" # Ð’Ñем закрыт доÑтуп к ветке frozen:\n"
-" frozen-branch = *"
msgid ""
" # A bad user is denied on all branches:\n"
" * = bad-user"
msgstr ""
-" # Плохой пользователь забанен на вÑех ветках:\n"
-" * = bad-user"
msgid " [acl.allow.branches]"
-msgstr " [acl.allow.branches]"
+msgstr ""
msgid ""
" # A few users are allowed on branch-a:\n"
" branch-a = user-1, user-2, user-3"
msgstr ""
-" # Ðекоторые пользователи допущены в branch-a:\n"
-" branch-a = user-1, user-2, user-3"
msgid ""
" # Only one user is allowed on branch-b:\n"
" branch-b = user-1"
msgstr ""
-" # Только один пользователь допущен в branch-b:\n"
-" branch-b = user-1"
msgid ""
" # The super user is allowed on any branch:\n"
" * = super-user"
msgstr ""
-" # ÐдминиÑтратор допущен в любую ветку:\n"
-" * = super-user"
msgid ""
" # Everyone is allowed on branch-for-tests:\n"
" branch-for-tests = *"
msgstr ""
-" # Ð’Ñе допущены в branch-for-tests:\n"
-" branch-for-tests = *"
msgid ""
" [acl.deny]\n"
@@ -463,241 +208,105 @@ msgid ""
" # checked. All users are granted access if acl.deny is not present.\n"
" # Format for both lists: glob pattern = user, ..., @group, ..."
msgstr ""
-" [acl.deny]\n"
-" # Этот ÑпиÑок проверÑетÑÑ Ð¿ÐµÑ€Ð²Ñ‹Ð¼. ЕÑли найдено Ñовпадение, acl.allow не\n"
-" # проверÑетÑÑ. Ð’Ñе пользователи получают доÑтуп еÑли acl.deny "
-"отÑутÑтвует.\n"
-" # Формат Ð´Ð»Ñ Ð¾Ð±Ð¾Ð¸Ñ… ÑпиÑков: glob-шаблон = пользователь, ..., @группа, ..."
msgid ""
" # To match everyone, use an asterisk for the user:\n"
" # my/glob/pattern = *"
msgstr ""
-" # Чтобы обозначить любого пользователÑ, иÑпользуйте звёздочку:\n"
-" # my/glob/pattern = *"
msgid ""
" # user6 will not have write access to any file:\n"
" ** = user6"
msgstr ""
-" # user6 не будет иметь прав на запиÑÑŒ Ð´Ð»Ñ Ð»ÑŽÐ±Ð¾Ð³Ð¾ файла:\n"
-" ** = user6"
msgid ""
" # Group \"hg-denied\" will not have write access to any file:\n"
" ** = @hg-denied"
msgstr ""
-" # Группа \"hg-denied\" не будет иметь прав на запиÑÑŒ Ð´Ð»Ñ Ð»ÑŽÐ±Ð¾Ð³Ð¾ файла:\n"
-" ** = @hg-denied"
msgid ""
" # Nobody will be able to change \"DONT-TOUCH-THIS.txt\", despite\n"
" # everyone being able to change all other files. See below.\n"
" src/main/resources/DONT-TOUCH-THIS.txt = *"
msgstr ""
-" # Ðикто не Ñможет изменить файл \"DONT-TOUCH-THIS.txt\", неÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° то, "
-"что\n"
-" # вÑе могут менÑÑ‚ÑŒ любые другие файлы. См. далее.\n"
-" src/main/resources/DONT-TOUCH-THIS.txt = *"
msgid ""
" [acl.allow]\n"
" # if acl.allow is not present, all users are allowed by default\n"
" # empty acl.allow = no users allowed"
msgstr ""
-" [acl.allow]\n"
-" # ЕÑли acl.allow отÑутÑтвует, вÑе пользователи разрешены по умолчанию,\n"
-" # пуÑтой acl.allow означает что никому нет доÑтупа"
msgid ""
" # User \"doc_writer\" has write access to any file under the \"docs\"\n"
" # folder:\n"
" docs/** = doc_writer"
msgstr ""
-" # Пользователь \"doc_writer\" имеет доÑтуп на запиÑÑŒ Ð´Ð»Ñ Ð»ÑŽÐ±Ð¾Ð³Ð¾ файла в "
-"\"docs\"\n"
-" # папке:\n"
-" docs/** = doc_writer"
msgid ""
" # User \"jack\" and group \"designers\" have write access to any file\n"
" # under the \"images\" folder:\n"
" images/** = jack, @designers"
msgstr ""
-" # Пользователь \"jack\" и группа \"designers\" имеют доÑтуп на запиÑÑŒ Ð´Ð»Ñ "
-"любого файла\n"
-" # в папке \"images\":\n"
-" images/** = jack, @designers"
msgid ""
-" # Everyone (except for \"user6\" and \"@hg-denied\" - see acl.deny above)\n"
-" # will have write access to any file under the \"resources\" folder\n"
-" # (except for 1 file. See acl.deny):\n"
+" # Everyone (except for \"user6\" - see acl.deny above) will have write\n"
+" # access to any file under the \"resources\" folder (except for 1\n"
+" # file. See acl.deny):\n"
" src/main/resources/** = *"
msgstr ""
-" # Любой пользователь (за иÑключением \"user6\" и \"@hg-denied\" - Ñм. acl."
-"deny\n"
-" # выше) получит доÑтуп на запиÑÑŒ\n"
-" # в любой файл в папке \"resources\" (за иÑключением 1 файла. См. acl."
-"deny):\n"
-" src/main/resources/** = *"
msgid " .hgtags = release_engineer"
-msgstr " .hgtags = release_engineer"
-
-msgid ""
-"Examples using the \"!\" prefix\n"
-"............................."
-msgstr ""
-"Примеры иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑа \"!\"\n"
-".................................."
-
-msgid ""
-"Suppose there's a branch that only a given user (or group) should be able "
-"to\n"
-"push to, and you don't want to restrict access to any other branch that may\n"
-"be created."
-msgstr ""
-"ДопуÑтим, еÑÑ‚ÑŒ ветка, доÑтуп на запиÑÑŒ к которой должен иметь только "
-"заданный\n"
-"пользователь или группа, и вы не хотите ограничивать доÑтуп к другим веткам."
-
-msgid ""
-"The \"!\" prefix allows you to prevent anyone except a given user or group "
-"to\n"
-"push changesets in a given branch or path."
-msgstr ""
-"ÐŸÑ€ÐµÑ„Ð¸ÐºÑ \"!\" позволÑет запретить вÑем, кроме заданного Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸\n"
-"группы проталкивать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² заданную ветку или по заданному пути."
-
-msgid ""
-"In the examples below, we will:\n"
-"1) Deny access to branch \"ring\" to anyone but user \"gollum\"\n"
-"2) Deny access to branch \"lake\" to anyone but members of the group \"hobbit"
-"\"\n"
-"3) Deny access to a file to anyone but user \"gollum\""
-msgstr ""
-"Ð’ Ñледующем примере мы:\n"
-"1) Запретим доÑтуп к ветке \"ring\" вÑем, кроме Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ \"gollum\"\n"
-"2) Запретим доÑтуп к ветке \"lake\" вÑем, кроме членов группы \"hobbit\"\n"
-"3) Запретим доÑтуп к файлу вÑем, кроме Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ \"gollum\""
-
-msgid ""
-" [acl.allow.branches]\n"
-" # Empty"
-msgstr ""
-" [acl.allow.branches]\n"
-" # ПуÑто"
-
-msgid ""
-" # 1) only 'gollum' can commit to branch 'ring';\n"
-" # 'gollum' and anyone else can still commit to any other branch.\n"
-" ring = !gollum"
-msgstr ""
-" # 1) только 'gollum' может фикÑировать в ветку 'ring';\n"
-" # 'gollum' и вÑе оÑтальные погут фикÑировать в любую другую ветку.\n"
-" ring = !gollum"
-
-msgid ""
-" # 2) only members of the group 'hobbit' can commit to branch 'lake';\n"
-" # 'hobbit' members and anyone else can still commit to any other branch.\n"
-" lake = !@hobbit"
msgstr ""
-" # 2) только члены группы 'hobbit' могут фикÑировать в ветку 'lake';\n"
-" # члены группы 'hobbit' и вÑе оÑтальные могут фикÑировать в любую другую "
-"ветку.\n"
-" lake = !@hobbit"
-
-msgid " # You can also deny access based on file paths:"
-msgstr " # Можно также запрещать доÑтуп к определенным путÑм:"
-
-msgid ""
-" [acl.allow]\n"
-" # Empty"
-msgstr ""
-" [acl.allow]\n"
-" # ПуÑто"
-
-msgid ""
-" [acl.deny]\n"
-" # 3) only 'gollum' can change the file below;\n"
-" # 'gollum' and anyone else can still change any other file.\n"
-" /misty/mountains/cave/ring = !gollum"
-msgstr ""
-" [acl.deny]\n"
-" # только 'gollum' может изменÑÑ‚ÑŒ нижеперечиÑленные файлы;\n"
-" # 'gollum' и вÑе оÑтальные могут изменÑÑ‚ÑŒ любой другой файл.\n"
-" /misty/mountains/cave/ring = !gollum"
#, python-format
msgid "group '%s' is undefined"
-msgstr "группа '%s' не определена"
+msgstr ""
#, python-format
msgid ""
"config error - hook type \"%s\" cannot stop incoming changesets nor commits"
msgstr ""
-"ошибка конфигурации - хук типа \"%s\" не может предотвратить входÑщие "
-"Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (changesets, commits)"
#, python-format
msgid "acl: user \"%s\" denied on branch \"%s\" (changeset \"%s\")"
-msgstr "acl: пользователь \"%s\" не допущен в ветку \"%s\" (Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ \"%s\")"
+msgstr ""
#, python-format
msgid "acl: user \"%s\" not allowed on branch \"%s\" (changeset \"%s\")"
-msgstr "acl: пользователь \"%s\" не допущен в ветку \"%s\" (Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ \"%s\")"
-
-#, python-format
-msgid "acl: user \"%s\" denied on \"%s\" (changeset \"%s\")"
-msgstr "acl: пользователь \"%s\" не допущен в \"%s\" (Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ \"%s\")"
+msgstr ""
#, python-format
-msgid "acl: user \"%s\" not allowed on \"%s\" (changeset \"%s\")"
-msgstr "acl: пользователь \"%s\" не допущен в \"%s\" (Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ \"%s\")"
+msgid "acl: access denied for changeset %s"
+msgstr ""
msgid "hooks for integrating with the Bugzilla bug tracker"
-msgstr "хуки Ð´Ð»Ñ Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ð¸ Ñ Bugzilla bug tracker"
+msgstr ""
msgid ""
"This hook extension adds comments on bugs in Bugzilla when changesets\n"
"that refer to bugs by Bugzilla ID are seen. The comment is formatted using\n"
"the Mercurial template mechanism."
msgstr ""
-"Это раÑширение, предоÑтавлÑющее хуки, добавлÑет комментариии к багам\n"
-"в Bugzilla, когда вÑтречает наборы изменений, привÑзанные к багам c помощью\n"
-"Bugzilla ID. Комментарий форматируетÑÑ Ñ Ð¸Ñпользованием механизма шаблонов\n"
-"Mercurial."
-msgid ""
-"The bug references can optionally include an update for Bugzilla of the\n"
-"hours spent working on the bug. Bugs can also be marked fixed."
+msgid "The hook does not change bug status."
msgstr ""
-"СÑылки на баги могут включать обновление затраченного времени длÑ\n"
-"Bugzilla. Можно также помечать баги как иÑправленные."
msgid "Three basic modes of access to Bugzilla are provided:"
-msgstr "ПредоÑтавлÑÑŽÑ‚ÑÑ Ñ‚Ñ€Ð¸ оÑновных режима доÑтупа к Bugzilla:"
+msgstr ""
msgid ""
"1. Access via the Bugzilla XMLRPC interface. Requires Bugzilla 3.4 or later."
msgstr ""
-"1. ДоÑтуп через Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Bugzillа XMLRPC. ТребуетÑÑ Bugzilla 3.4 или новее."
msgid ""
"2. Check data via the Bugzilla XMLRPC interface and submit bug change\n"
" via email to Bugzilla email interface. Requires Bugzilla 3.4 or later."
msgstr ""
-"2. ПроверÑÑ‚ÑŒ данные через Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Bugzilla XMLRPC и отправлÑÑ‚ÑŒ изменениÑ\n"
-" бага по почте через email-Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Bugzilla. ТребуетÑÑ Bugzilla 3.4 или "
-"новее."
msgid ""
"3. Writing directly to the Bugzilla database. Only Bugzilla installations\n"
" using MySQL are supported. Requires Python MySQLdb."
msgstr ""
-"3. ПрÑÐ¼Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ в базу данных Bugzilla. ПоддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ уÑтановка\n"
-" Bugzilla c MySQL. ТребуетÑÑ Python MySQLdb."
msgid ""
"Writing directly to the database is susceptible to schema changes, and\n"
@@ -708,33 +317,16 @@ msgid ""
"MySQL user and password to have full access rights to the Bugzilla\n"
"database. For these reasons this access mode is now considered\n"
"deprecated, and will not be updated for new Bugzilla versions going\n"
-"forward. Only adding comments is supported in this access mode."
+"forward."
msgstr ""
-"ПрÑÐ¼Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ в базу данных чувÑтвительна к изменениÑм в ее Ñхеме и\n"
-"полагаетÑÑ Ð½Ð° Ñкрипт из каталога contrib Bugzilla при отправке\n"
-"уведомлений об изменении бага по email. Этот Ñкрипт запуÑкаетÑÑ\n"
-"от имени пользователÑ, запуÑкающего Mercurial, должен быть запущен\n"
-"на машине, на которой уÑтановлена Bugzilla, и требует прав на чтение\n"
-"конфигурации Bugzilla, а также обÑзательно имени и Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ "
-"MySQL,\n"
-"имеющего полный доÑтуп к ее базе данных. По Ñтим причинам Ñтот режим\n"
-"признан уÑтаревшим и не будет обновлÑÑ‚ÑŒÑÑ Ð² новых верÑиÑÑ… Bugzilla."
msgid ""
"Access via XMLRPC needs a Bugzilla username and password to be specified\n"
"in the configuration. Comments are added under that username. Since the\n"
"configuration must be readable by all Mercurial users, it is recommended\n"
"that the rights of that user are restricted in Bugzilla to the minimum\n"
-"necessary to add comments. Marking bugs fixed requires Bugzilla 4.0 and "
-"later."
+"necessary to add comments."
msgstr ""
-"ДоÑтуп по XMLRPC требует Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ и Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Bugzilla\n"
-"в наÑтройках. Комментарии добавлÑÑŽÑ‚ÑÑ Ð¾Ñ‚ имени Ñтого пользователÑ.\n"
-"ПоÑкольку наÑтройки должны быть доÑтупны на чтение вÑем пользователÑм\n"
-"Mercurial, рекомендуетÑÑ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð¸Ñ‚ÑŒ Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² Bugzilla\n"
-"макÑимально, разрешив только добавлÑÑ‚ÑŒ комментарии. Ð”Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñтипомечать "
-"баги как иÑправленные (fixed), требует Bugzilla верÑии не\n"
-"ниже 4.0."
msgid ""
"Access via XMLRPC/email uses XMLRPC to query Bugzilla, but sends\n"
@@ -743,29 +335,16 @@ msgid ""
"user, so the comment appears to come from the Mercurial user. In the event\n"
"that the Mercurial user email is not recognised by Bugzilla as a Bugzilla\n"
"user, the email associated with the Bugzilla username used to log into\n"
-"Bugzilla is used instead as the source of the comment. Marking bugs fixed\n"
-"works on all supported Bugzilla versions."
-msgstr ""
-"ДоÑтуп через XMLRPC/email иÑпользует XMLRPC Ð´Ð»Ñ Ð¾Ð¿Ñ€Ð¾Ñа Bugzilla, но\n"
-"Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ² к багам отправлÑет пиÑьма на email-интерфейÑ\n"
-"Bugzilla. ÐÐ´Ñ€ÐµÑ From: (От:) в пиÑьме уÑтанавливаетÑÑ Ð² email-Ð°Ð´Ñ€ÐµÑ "
-"пользователÑ\n"
-"Mercurial, поÑтому комментарии оÑтавлÑÑŽÑ‚ÑÑ Ð¾Ñ‚ имени пользователÑ\n"
-"Mercurial. Ð’ Ñлучае, еÑли почтовый Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Mercurial не\n"
-"опознаетÑÑ Bugzill'ой как ее пользователь, в качеÑтве иÑточника\n"
-"комментариев иÑпользуетÑÑ Ð°Ð´Ñ€ÐµÑ email, привÑзанный к пользователю\n"
-"Bugzilla, от имени которого выполнÑлÑÑ Ð²Ñ…Ð¾Ð´. ВозможноÑÑ‚ÑŒ помечать баги\n"
-"как иÑправленные доÑтупна на вÑех поддерживаемых верÑÐ¸Ñ Bugzilla."
+"Bugzilla is used instead as the source of the comment."
+msgstr ""
msgid "Configuration items common to all access modes:"
-msgstr "Общие параметры Ð´Ð»Ñ Ð²Ñех режимов доÑтупа:"
+msgstr ""
msgid ""
"bugzilla.version\n"
" This access type to use. Values recognised are:"
msgstr ""
-"bugzilla.version\n"
-" Тип доÑтупа. Возможны Ñледующие значениÑ:"
msgid ""
" :``xmlrpc``: Bugzilla XMLRPC interface.\n"
@@ -776,100 +355,20 @@ msgid ""
" :``2.16``: MySQL access, Bugzilla 2.16 and up to but not\n"
" including 2.18."
msgstr ""
-" :``xmlrpc``: Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Bugzilla XMLRPC.\n"
-" :``xmlrpc+email``: ИнтерфейÑÑ‹ Bugzilla XMLRPC и email.\n"
-" :``3.0``: ДоÑтуп к MySQL, Bugzilla 3.0 и новее.\n"
-" :``2.18``: ДоÑтуп к MySQL, Bugzilla 2.18 и до 3.0 (не Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ "
-"3.0)\n"
-" :``2.16``: ДоÑтуп к MySQL, Bugzilla 2.16 и до 2.18 (не Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ "
-"2.18)"
msgid ""
"bugzilla.regexp\n"
-" Regular expression to match bug IDs for update in changeset commit "
-"message.\n"
-" It must contain one \"()\" named group ``<ids>`` containing the bug\n"
-" IDs separated by non-digit characters. It may also contain\n"
-" a named group ``<hours>`` with a floating-point number giving the\n"
-" hours worked on the bug. If no named groups are present, the first\n"
-" \"()\" group is assumed to contain the bug IDs, and work time is not\n"
-" updated. The default expression matches ``Bug 1234``, ``Bug no. 1234``,\n"
-" ``Bug number 1234``, ``Bugs 1234,5678``, ``Bug 1234 and 5678`` and\n"
-" variations thereof, followed by an hours number prefixed by ``h`` or\n"
-" ``hours``, e.g. ``hours 1.5``. Matching is case insensitive."
+" Regular expression to match bug IDs in changeset commit message.\n"
+" Must contain one \"()\" group. The default expression matches ``Bug\n"
+" 1234``, ``Bug no. 1234``, ``Bug number 1234``, ``Bugs 1234,5678``,\n"
+" ``Bug 1234 and 5678`` and variations thereof. Matching is case\n"
+" insensitive."
msgstr ""
-"bugzilla.regexp\n"
-" РегулÑрное выражение, определÑющее ID обновлÑемого бага в Ñообщении\n"
-" фикÑации.\n"
-" Оно должно Ñодержать одну именованную группу в круглых Ñкобках Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼\n"
-" ``<ids>``, Ñодержащую идентификаторы багов, разделенные нецифровыми\n"
-" Ñимволами. Оно также может Ñодержвать группу ``<hours>`` Ñ Ð´Ñ€Ð¾Ð±Ð½Ñ‹Ð¼\n"
-" чиÑлом, определÑющим затраченное на баг времÑ. ЕÑли ни одна именованнаÑ\n"
-" группа не определена, Ð¿ÐµÑ€Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° в круглых Ñкоках ÑчитаетÑÑ Ñодержащей\n"
-" идентификатор бага, затраченное Ð²Ñ€ÐµÐ¼Ñ Ð½Ðµ обновлÑетÑÑ. Выражение, "
-"определенное\n"
-" по умолчанию, Ñовпадет Ñ ``Bug 1234``, ``Bug no. 1234``,\n"
-" ``Bug number 1234``, ``Bugs 1234,5678``, ``Bug 1234 and 5678`` и\n"
-" подобными вариациÑми, Ñ Ð¿Ð¾Ñледующим количеÑтвом затраченного времени в "
-"чаÑах\n"
-" Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑом ``h`` или ``hours``, например ``hours 1.5``. РегиÑÑ‚Ñ€ букв не\n"
-" учитываетÑÑ."
-
-msgid ""
-"bugzilla.fixregexp\n"
-" Regular expression to match bug IDs for marking fixed in changeset\n"
-" commit message. This must contain a \"()\" named group ``<ids>` "
-"containing\n"
-" the bug IDs separated by non-digit characters. It may also contain\n"
-" a named group ``<hours>`` with a floating-point number giving the\n"
-" hours worked on the bug. If no named groups are present, the first\n"
-" \"()\" group is assumed to contain the bug IDs, and work time is not\n"
-" updated. The default expression matches ``Fixes 1234``, ``Fixes bug "
-"1234``,\n"
-" ``Fixes bugs 1234,5678``, ``Fixes 1234 and 5678`` and\n"
-" variations thereof, followed by an hours number prefixed by ``h`` or\n"
-" ``hours``, e.g. ``hours 1.5``. Matching is case insensitive."
-msgstr ""
-"bugzilla.fixregexp\n"
-" РегулÑрное выражение, определÑющее ID бага, помечаемого как иÑправленный,\n"
-" в Ñообщении фикÑации.\n"
-" Оно должно Ñодержать именованную группу в круглых Ñкобках Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼\n"
-" ``<ids>``, Ñодержащую идентификаторы багов, разделенные нецифровыми\n"
-" Ñимволами. Оно также может Ñодержвать группу ``<hours>`` Ñ Ð´Ñ€Ð¾Ð±Ð½Ñ‹Ð¼\n"
-" чиÑлом, определÑющим затраченное на баг времÑ. ЕÑли ни одна именованнаÑ\n"
-" группа не определена, Ð¿ÐµÑ€Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° в круглых Ñкоках ÑчитаетÑÑ Ñодержащей\n"
-" идентификатор бага, затраченное Ð²Ñ€ÐµÐ¼Ñ Ð½Ðµ обновлÑетÑÑ. Выражение, "
-"определенное\n"
-" по умолчанию, Ñовпадет Ñ ``Fixes 1234``, ``Fixes bug 1234``,\n"
-" ``Fixes bugs 1234,5678``, ``Fixes 1234 and 5678`` и\n"
-" подобными вариациÑми, Ñ Ð¿Ð¾Ñледующим количеÑтвом затраченного времени в "
-"чаÑах\n"
-" Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑом ``h`` или ``hours``, например ``hours 1.5``. РегиÑÑ‚Ñ€ букв не\n"
-" учитываетÑÑ."
-
-msgid ""
-"bugzilla.fixstatus\n"
-" The status to set a bug to when marking fixed. Default ``RESOLVED``."
-msgstr ""
-"bugzilla.fixstatus\n"
-" СтатуÑ, который приÑваиваетÑÑ Ð±Ð°Ð³Ñƒ, когда он помечаетÑÑ ÐºÐ°Ðº иÑправленный.\n"
-" По умолчанию ``RESOLVED``."
-
-msgid ""
-"bugzilla.fixresolution\n"
-" The resolution to set a bug to when marking fixed. Default ``FIXED``."
-msgstr ""
-"bugzilla.fixresolution\n"
-" РезолюциÑ, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ñ€Ð¸ÑваиваетÑÑ Ð±Ð°Ð³Ñƒ, когда он помечаетÑÑ ÐºÐ°Ðº "
-"иÑправленный.\n"
-" По умолчанию ``FIXED``."
msgid ""
"bugzilla.style\n"
" The style file to use when formatting comments."
msgstr ""
-"bugzilla.style\n"
-" Файл ÑÑ‚Ð¸Ð»Ñ Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ²."
msgid ""
"bugzilla.template\n"
@@ -877,10 +376,6 @@ msgid ""
" specified. In addition to the usual Mercurial keywords, the\n"
" extension specifies:"
msgstr ""
-"bugzilla.template\n"
-" Шаблон, иÑпользуемый при форматировании комментариев. ПереопределÑет\n"
-" style. Ð’ дополнение к обычным ключевым Ñловам Mercurial, доÑтупны\n"
-" также:"
msgid ""
" :``{bug}``: The Bugzilla bug ID.\n"
@@ -888,18 +383,11 @@ msgid ""
" :``{webroot}``: Stripped pathname of the Mercurial repository.\n"
" :``{hgweb}``: Base URL for browsing Mercurial repositories."
msgstr ""
-" :``{bug}``: ID бага в Bugzilla.\n"
-" :``{root}``: Полный путь к хранилищу Mercurial.\n"
-" :``{webroot}``: Сокращенный путь к хранилищу Mercurial.\n"
-" :``{hgweb}``: Базовый URL Ð´Ð»Ñ Ð¾Ð±Ð¾Ð·Ñ€ÐµÐ²Ð°Ñ‚ÐµÐ»Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ Mercurial."
msgid ""
" Default ``changeset {node|short} in repo {root} refers to bug\n"
" {bug}.\\ndetails:\\n\\t{desc|tabindent}``"
msgstr ""
-" По умолчанию ``набор изменений {node|short} в хранилище {root}\n"
-" отноÑитÑÑ Ðº багу {bug}.\\nДетали:\\n\n"
-"\t{desc|tabindent}"
msgid ""
"bugzilla.strip\n"
@@ -909,23 +397,15 @@ msgid ""
" ``/var/local/my-project`` with a strip of 2 gives a value for\n"
" ``{webroot}`` of ``my-project``. Default 0."
msgstr ""
-"bugzilla.strip\n"
-" КоличеÑтво разделителей в путÑÑ…, вырезаемых из начала пути хранилища\n"
-" Mercurial ( ``{root}`` в шаблонах), чтобы Ñоздать ``{webroot}``.\n"
-" Ðапример, хранилище Ñ ``{root}`` ``/var/local/my-project`` и strip\n"
-" равным 2, дает значение ``{webroot}`` ``my-project``. По умолчанию 0."
msgid ""
"web.baseurl\n"
" Base URL for browsing Mercurial repositories. Referenced from\n"
" templates as ``{hgweb}``."
msgstr ""
-"web.baseurl\n"
-" Базовый URL Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра хранилищ Mercurial. Ðа него ÑÑылаютÑÑ Ð¸Ð·\n"
-" шаблонов как ``{hgweb}``."
msgid "Configuration items common to XMLRPC+email and MySQL access modes:"
-msgstr "Общие параметры Ð´Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð¾Ð² доÑтупа XMLRPC+email и MySQL:"
+msgstr ""
msgid ""
"bugzilla.usermap\n"
@@ -933,132 +413,94 @@ msgid ""
" mappings. If specified, the file should contain one mapping per\n"
" line::"
msgstr ""
-"bugzilla.usermap\n"
-" Путь к файлу, Ñодержащему ÑоответÑÑ‚Ð²Ð¸Ñ email автора наборов\n"
-" изменений Mercurial и email пользователей Bugzilla. ЕÑли задан,\n"
-" файл должен Ñодержать одно ÑоответÑтвие на Ñтроку::"
msgid " committer = Bugzilla user"
-msgstr " автор Mercurial = пользователь Bugzilla"
+msgstr ""
msgid " See also the ``[usermap]`` section."
-msgstr " См. также Ñекцию ``[usermap]``."
+msgstr ""
msgid ""
"The ``[usermap]`` section is used to specify mappings of Mercurial\n"
"committer email to Bugzilla user email. See also ``bugzilla.usermap``.\n"
"Contains entries of the form ``committer = Bugzilla user``."
msgstr ""
-"Ð¡ÐµÐºÑ†Ð¸Ñ ``[usermap]`` иÑпользуетÑÑ Ñ‡Ñ‚Ð¾Ð±Ñ‹ задать ÑоответÑÑ‚Ð²Ð¸Ñ Ð°Ð´Ñ€ÐµÑов email\n"
-"Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Mercurial адреÑу email Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Bugzilla. См. также\n"
-"``bugzilla.usermap``. Содержит запиÑи вида\n"
-"``автор Mercurial = пользователь Bugzilla``"
msgid "XMLRPC access mode configuration:"
-msgstr "Параметры режима доÑтупа через XMLRPC:"
+msgstr ""
msgid ""
"bugzilla.bzurl\n"
" The base URL for the Bugzilla installation.\n"
" Default ``http://localhost/bugzilla``."
msgstr ""
-"bugzilla.bzurl\n"
-" Базовый URL инÑталлÑции Bugzilla.\n"
-" По умолчанию ``http://localhost/bugzilla``."
msgid ""
"bugzilla.user\n"
" The username to use to log into Bugzilla via XMLRPC. Default\n"
" ``bugs``."
msgstr ""
-"bugzilla.user\n"
-" Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ, иÑпользуемое при аутентификации в Bugzilla через\n"
-" через XMLRPC. По умолчанию ``bugs``."
msgid ""
"bugzilla.password\n"
" The password for Bugzilla login."
msgstr ""
-"bugzilla.password\n"
-" Пароль Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ в Bugzilla."
msgid ""
"XMLRPC+email access mode uses the XMLRPC access mode configuration items,\n"
"and also:"
-msgstr "Режим доÑтупа XMLRPC+email иÑпользует параметры XMLRPC, а также:"
+msgstr ""
msgid ""
"bugzilla.bzemail\n"
" The Bugzilla email address."
msgstr ""
-"bugzilla.bzemail\n"
-" ÐÐ´Ñ€ÐµÑ email Bugzilla."
msgid ""
"In addition, the Mercurial email settings must be configured. See the\n"
"documentation in hgrc(5), sections ``[email]`` and ``[smtp]``."
msgstr ""
-"Также должны быть наÑтроены параметры email Mercurial. См. документацию\n"
-"по hgrc(5), Ñекции ``[email]`` и ``[smtp]``."
msgid "MySQL access mode configuration:"
-msgstr "Параметры режима доÑтупа MySQL:"
+msgstr ""
msgid ""
"bugzilla.host\n"
" Hostname of the MySQL server holding the Bugzilla database.\n"
" Default ``localhost``."
msgstr ""
-"bugzilla.host\n"
-" Ð˜Ð¼Ñ Ñ…Ð¾Ñта Ñервера, Ñодержащего базу данных MySQL Bugzilla.\n"
-" По умолчанию ``localhost``."
msgid ""
"bugzilla.db\n"
" Name of the Bugzilla database in MySQL. Default ``bugs``."
msgstr ""
-"bugzilla.db\n"
-" Ð˜Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных Bugzilla в MySQL. По умолчанию ``bugs``."
msgid ""
"bugzilla.user\n"
" Username to use to access MySQL server. Default ``bugs``."
msgstr ""
-"bugzilla.user\n"
-" Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð´Ð¾Ñтупа к MySQL-Ñерверу. По умолчанию ``bugs``."
msgid ""
"bugzilla.password\n"
" Password to use to access MySQL server."
msgstr ""
-"bugzilla.password\n"
-" Пароль Ð´Ð»Ñ Ð´Ð¾Ñтупа к MySQL-Ñерверу."
msgid ""
"bugzilla.timeout\n"
" Database connection timeout (seconds). Default 5."
msgstr ""
-"bugzilla.timeout\n"
-" Таймаут ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных (Ñекунды). По умолчанию 5."
msgid ""
"bugzilla.bzuser\n"
" Fallback Bugzilla user name to record comments with, if changeset\n"
" committer cannot be found as a Bugzilla user."
msgstr ""
-"bugzilla.bzuser\n"
-" Резервное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Bugzilla Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñей комментариев, еÑли\n"
-" Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° набора изменений не найден ÑоответÑтвующий пользователь "
-"Bugzilla."
msgid ""
"bugzilla.bzdir\n"
" Bugzilla install directory. Used by default notify. Default\n"
" ``/var/www/html/bugzilla``."
msgstr ""
-"bugzilla.bzdir\n"
-" УÑтановочный каталог Bugzilla. ИÑпользуетÑÑ Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñми (notify)\n"
-" по умолчанию. По умолчанию ``/var/www/html/bugzilla``."
msgid ""
"bugzilla.notify\n"
@@ -1068,35 +510,23 @@ msgid ""
" version; from 2.18 it is \"cd %(bzdir)s && perl -T\n"
" contrib/sendbugmail.pl %(id)s %(user)s\"."
msgstr ""
-"bugzilla.notify\n"
-" Команда, запуÑÐºÐ°ÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы Bugzilla отправила уведомление\n"
-" об изменении бага по email. СоÑтавлÑетÑÑ Ð¸Ð· набора из трех ключей:\n"
-" ``bzdir``, ``id`` (идентификатор бага) и ``user``. Значение по умолчанию\n"
-" завиÑÑÑ‚ от верÑии; Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ 2.18 Ñто \"cd %(bzdir)s && perl -T\n"
-" contrib/sendbugmail.pl %(id)s %(user)s\"."
msgid "Activating the extension::"
-msgstr "Включение раÑширениÑ::"
+msgstr ""
msgid ""
" [extensions]\n"
" bugzilla ="
msgstr ""
-" [extensions]\n"
-" bugzilla ="
msgid ""
" [hooks]\n"
" # run bugzilla hook on every change pulled or pushed in here\n"
" incoming.bugzilla = python:hgext.bugzilla.hook"
msgstr ""
-" [hooks]\n"
-" # запуÑкать хук bugzilla при каждом изменении, затÑнутом или\n"
-" # протолкнутом Ñюда\n"
-" incoming.bugzilla = python:hgext.bugzilla.hook"
msgid "Example configurations:"
-msgstr "Пример наÑтроек:"
+msgstr ""
msgid ""
"XMLRPC example configuration. This uses the Bugzilla at\n"
@@ -1105,11 +535,6 @@ msgid ""
"collection of Mercurial repositories in ``/var/local/hg/repos/``,\n"
"with a web interface at ``http://my-project.org/hg``. ::"
msgstr ""
-"Пример наÑтроек XMLRPC. ИÑпользует Bugzilla по адреÑу\n"
-"``http://my-project.org/bugzilla``, вход от пользователÑ\n"
-"``bugmail@my-project.org`` Ñ Ð¿Ð°Ñ€Ð¾Ð»ÐµÐ¼ ``plugh``. ИÑпользуетÑÑ Ñ\n"
-"коллекцией хранилищ Mercurial в ``/var/local/hg/repos/``,\n"
-"Ñ Ð²ÐµÐ±-интерфейÑом по адреÑу ``http://my-project.org/hg``. ::"
msgid ""
" [bugzilla]\n"
@@ -1122,22 +547,11 @@ msgid ""
" {desc}\\n\n"
" strip=5"
msgstr ""
-" [bugzilla]\n"
-" bzurl=http://my-project.org/bugzilla\n"
-" user=bugmail@my-project.org\n"
-" password=plugh\n"
-" version=xmlrpc\n"
-" template=Changeset {node|short} in {root|basename}.\n"
-" {hgweb}/{webroot}/rev/{node|short}\\n\n"
-" {desc}\\n\n"
-" strip=5"
msgid ""
" [web]\n"
" baseurl=http://my-project.org/hg"
msgstr ""
-" [web]\n"
-" baseurl=http://my-project.org/hg"
msgid ""
"XMLRPC+email example configuration. This uses the Bugzilla at\n"
@@ -1148,12 +562,6 @@ msgid ""
"are sent to the Bugzilla email address\n"
"``bugzilla@my-project.org``. ::"
msgstr ""
-"Пример наÑтроек XMLRPC+email. ИÑпользует Bugzilla по адреÑу\n"
-"``http://my-project.org/bugzilla``, вход от имени пользователÑ\n"
-"``bugmail@my-project.org`` Ñ Ð¿Ð°Ñ€Ð¾Ð»ÐµÐ¼ ``plugh``. ИÑпользуетÑÑ Ñ ÐºÐ¾Ð»Ð»ÐµÐºÑ†Ð¸ÐµÐ¹\n"
-"хранилищ Mercurial в ``/var/local/hg/repos/``Ñ Ð²ÐµÐ±-интерфейÑом по адреÑу\n"
-"``http://my-project.org/hg``. Комментарии к багам отправлÑÑŽÑ‚ÑÑ Ð½Ð° email\n"
-"Bugzilla ``bugzilla@my-project.org``. ::"
msgid ""
" [bugzilla]\n"
@@ -1167,23 +575,11 @@ msgid ""
" {desc}\\n\n"
" strip=5"
msgstr ""
-" [bugzilla]\n"
-" bzurl=http://my-project.org/bugzilla\n"
-" user=bugmail@my-project.org\n"
-" password=plugh\n"
-" version=xmlrpc\n"
-" bzemail=bugzilla@my-project.org\n"
-" template=Changeset {node|short} in {root|basename}.\n"
-" {hgweb}/{webroot}/rev/{node|short}\\n\n"
-" {desc}\\n\n"
-" strip=5"
msgid ""
" [usermap]\n"
" user@emaildomain.com=user.name@bugzilladomain.com"
msgstr ""
-" [usermap]\n"
-" пользователь@emaildomain.com=имÑ.пользователÑ@bugzilladomain.com"
msgid ""
"MySQL example configuration. This has a local Bugzilla 3.2 installation\n"
@@ -1193,12 +589,6 @@ msgid ""
"with a collection of Mercurial repositories in ``/var/local/hg/repos/``,\n"
"with a web interface at ``http://my-project.org/hg``. ::"
msgstr ""
-"Пример наÑтроек MySQL. ИÑпользует локальную уÑтановку Bugzilla 3.2\n"
-"в ``/opt/bugzilla-3.2``. База данных MySQL на ``localhost``,\n"
-"Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных Bugzilla ``bugs`` и доÑтуп к MySQL производитÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼\n"
-"Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ``bugs`` и паролем ``XYZZY``. Она иÑпользуетÑÑ Ñ ÐºÐ¾Ð»Ð»ÐµÐºÑ†Ð¸ÐµÐ¹\n"
-"хранилищ в ``/var/local/hg/repos/``, и веб-интерфейÑом по адреÑу\n"
-"``http://my-project.org/hg``. ::"
msgid ""
" [bugzilla]\n"
@@ -1212,140 +602,102 @@ msgid ""
" {desc}\\n\n"
" strip=5"
msgstr ""
-" [bugzilla]\n"
-" host=localhost\n"
-" password=XYZZY\n"
-" version=3.0\n"
-" bzuser=unknown@domain.com\n"
-" bzdir=/opt/bugzilla-3.2\n"
-" template=Changeset {node|short} in {root|basename}.\n"
-" {hgweb}/{webroot}/rev/{node|short}\\n\n"
-" {desc}\\n\n"
-" strip=5"
msgid "All the above add a comment to the Bugzilla bug record of the form::"
msgstr ""
-"Ð’Ñе приведенные примеры добавлÑÑŽÑ‚ комментарий Ñледующего вида\n"
-"в запиÑÑŒ о баге в Bugzilla ::"
msgid ""
" Changeset 3b16791d6642 in repository-name.\n"
" http://my-project.org/hg/repository-name/rev/3b16791d6642"
msgstr ""
-" Changeset 3b16791d6642 in repository-name.\n"
-" http://my-project.org/hg/repository-name/rev/3b16791d6642"
msgid " Changeset commit comment. Bug 1234.\n"
-msgstr " Комментарий фикÑации набора изменений. Bug 1234.\n"
+msgstr ""
#, python-format
msgid "python mysql support not available: %s"
-msgstr "не доÑтупна поддержка mysql в python: %s"
+msgstr ""
#, python-format
msgid "connecting to %s:%s as %s, password %s\n"
-msgstr "ÑоединÑемÑÑ Ñ %s:%s как %s, пароль %s\n"
+msgstr ""
#, python-format
msgid "query: %s %s\n"
-msgstr "запроÑ: %s %s\n"
+msgstr ""
#, python-format
msgid "failed query: %s %s\n"
-msgstr "Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ðµ удалÑÑ: %s %s\n"
+msgstr ""
msgid "unknown database schema"
-msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ñхема базы данных"
-
-#, python-format
-msgid "bug %d does not exist\n"
-msgstr "баг %d не ÑущеÑтвует!\n"
+msgstr ""
#, python-format
msgid "bug %d already knows about changeset %s\n"
-msgstr "баг %d уже знает о наборе изменений %s\n"
+msgstr ""
msgid "telling bugzilla to send mail:\n"
-msgstr "говорим bugzillf отправить почту:\n"
+msgstr ""
#, python-format
msgid " bug %s\n"
-msgstr " баг %s\n"
+msgstr ""
#, python-format
msgid "running notify command %s\n"
-msgstr "запуÑкаем команду ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ %s\n"
+msgstr ""
#, python-format
msgid "bugzilla notify command %s"
-msgstr "команда ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ bugzilla %s"
+msgstr ""
msgid "done\n"
-msgstr "завершено\n"
+msgstr ""
#, python-format
msgid "looking up user %s\n"
-msgstr "ищем Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %s\n"
+msgstr ""
#, python-format
msgid "cannot find bugzilla user id for %s"
-msgstr "идентификатор Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ bugzilla Ð´Ð»Ñ %s не найден"
+msgstr ""
#, python-format
msgid "cannot find bugzilla user id for %s or %s"
-msgstr "идентификатор Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ bugzilla Ð´Ð»Ñ %s или %s не найден"
-
-msgid "Bugzilla/MySQL cannot update bug state\n"
-msgstr "Bugzilla/MySQL не может обновить ÑоÑтоÑние бага\n"
-
-msgid "Bugzilla/XMLRPC needs Bugzilla 4.0 or later to mark bugs fixed\n"
msgstr ""
-"Bugzilla/XMLRPC требует Bugzilla 4.0 или новее, чтобы помечать\n"
-"баги как иÑправленные\n"
msgid "configuration 'bzemail' missing"
-msgstr "отÑутÑтвует параметр 'bzemail'"
+msgstr ""
#, python-format
msgid "default bugzilla user %s email not found"
-msgstr "email Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ bugzilla %s по умолчанию не найден"
+msgstr ""
#, python-format
msgid "bugzilla version %s not supported"
-msgstr "верÑÐ¸Ñ bugzilla %s не поддерживаетÑÑ"
-
-#, python-format
-msgid "%s: invalid hours\n"
-msgstr "%s: неверное количеÑтво чаÑов\n"
+msgstr ""
msgid ""
"changeset {node|short} in repo {root} refers to bug {bug}.\n"
"details:\n"
"\t{desc|tabindent}"
msgstr ""
-"набор изменений {node|short} в хранилище {root} отноÑитÑÑ Ðº багу {bug}.\n"
-"Детали:\n"
-"\t{desc|tabindent}"
#, python-format
msgid "hook type %s does not pass a changeset id"
-msgstr "хук типа %s не передает идентификатор набора изменений"
+msgstr ""
#, python-format
msgid "Bugzilla error: %s"
-msgstr "Ошибка Bugzilla: %s"
-
-msgid "command to display child changesets (DEPRECATED)"
-msgstr "команда Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð¾Ñ‡ÐµÑ€Ð½Ð¸Ñ… наборов изменений (УСТÐРЕЛО)"
-
-msgid ""
-"This extension is deprecated. You should use :hg:`log -r\n"
-"\"children(REV)\"` instead.\n"
msgstr ""
-"Это раÑширение уÑтарело, иÑпользуйте :hg:`log -r \"children(РЕВИЗИЯ)\"`.\n"
+
+msgid "command to display child changesets"
+msgstr "Команда Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð¾Ñ‡ÐµÑ€Ð½Ð¸Ñ… наборов изменений"
msgid "show the children of the given or working directory revision"
-msgstr "показать дочерние ревизии Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ ревизии"
+msgstr ""
+"показать дочерние ревизии Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ текущей ревизии рабочего каталога"
msgid ""
" Print the children of the working directory's revisions. If a\n"
@@ -1355,13 +707,6 @@ msgid ""
" argument to --rev if given) is printed.\n"
" "
msgstr ""
-" Без параметров печатает дочерние ревизии рабочего каталога. ЕÑли\n"
-" Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð·Ð°Ð´Ð°Ð½Ð° Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -r/--rev, то выведутÑÑ ÐµÐµ дочерние ревизии.\n"
-" ЕÑли задан файл в качеÑтве аргумента, то будет выведена Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð² "
-"которой\n"
-" Ñтот файл был изменён (поÑле текущей ревизии рабочего каталога или\n"
-" Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ аргумента --rev).\n"
-" "
msgid "REV"
msgstr "РЕВИЗИЯ"
@@ -1370,20 +715,20 @@ msgid "show children of the specified revision"
msgstr "показать дочерние наборы изменений Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¹ ревизии"
msgid "hg children [-r REV] [FILE]"
-msgstr "hg children [-r РЕВИЗИЯ] [ФÐЙЛ]"
+msgstr ""
msgid "command to display statistics about repository history"
-msgstr "команда Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÑтатиÑтики об иÑтории хранилища"
+msgstr ""
#, python-format
-msgid "revision %d is a merge, ignoring...\n"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d Ñто ÑлиÑние (merge), игнорируетÑÑ...\n"
+msgid "Revision %d is a merge, ignoring...\n"
+msgstr ""
msgid "analyzing"
-msgstr "анализ"
+msgstr ""
msgid "histogram of changes to the repository"
-msgstr "гиÑтограмма изменений, внеÑенных в хранилище"
+msgstr ""
msgid ""
" This command will display a histogram representing the number\n"
@@ -1392,116 +737,95 @@ msgid ""
" The --dateformat option may be used to group the results by\n"
" date instead."
msgstr ""
-" Эта команда показывает гиÑтограмму, предÑтавлÑющую количеÑтво\n"
-" изменённых Ñтрок или ревизий, Ñгруппированных в ÑоответÑтвии Ñ\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."
msgid " Examples::"
-msgstr " Примеры::"
+msgstr ""
msgid ""
" # display count of changed lines for every committer\n"
" hg churn -t '{author|email}'"
msgstr ""
-" # отобразить чиÑло изменённых Ñтрок Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ автора\n"
-" hg churn -t '{author|email}'"
msgid ""
" # display daily activity graph\n"
" hg churn -f '%H' -s -c"
msgstr ""
-" # отобразить график ежедневной активноÑти\n"
-" hg churn -f '%H' -s -c"
msgid ""
" # display activity of developers by month\n"
" hg churn -f '%Y-%m' -s -c"
msgstr ""
-" # отобразить активноÑÑ‚ÑŒ разработчиков помеÑÑчно\n"
-" hg churn -f '%Y-%m' -s -c"
msgid ""
" # display count of lines changed in every year\n"
" hg churn -f '%Y' -s"
msgstr ""
-" # отобразить чиÑло изменённых Ñтрок за каждый год\n"
-" hg churn -f '%Y' -s"
msgid ""
" It is possible to map alternate email addresses to a main address\n"
" by providing a file using the following format::"
msgstr ""
-" Можно заменить почтовые адреÑа на любые другие, задав файл\n"
-" Ñледующего формата::"
msgid " <alias email> = <actual email>"
-msgstr " <пÑевдоним адреÑа> = <наÑтоÑщий адреÑ>"
+msgstr ""
msgid ""
" Such a file may be specified with the --aliases option, otherwise\n"
" a .hgchurn file will be looked for in the working directory root.\n"
" "
msgstr ""
-" Такой файл может быть задан опцией --aliases, иначе\n"
-" поиÑк файла .hgchurn проиÑходит в корне рабочего каталога.\n"
-" "
#, python-format
msgid "skipping malformed alias: %s\n"
-msgstr "пропущен неверный пÑевдоним: %s\n"
+msgstr ""
msgid "count rate for the specified revision or range"
-msgstr "раÑÑчитывать ÑтатиÑтику Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ ревизии или диапазона"
+msgstr ""
msgid "DATE"
msgstr "ДÐТÐ"
msgid "count rate for revisions matching date spec"
-msgstr "раÑÑчитывать ÑтатиÑтику Ð´Ð»Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¹, ÑоответÑтвующих заданному шаблону"
+msgstr ""
msgid "TEMPLATE"
-msgstr "ШÐБЛОÐ"
+msgstr ""
msgid "template to group changesets"
-msgstr "шаблон Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¸Ñ€Ð¾Ð²ÐºÐ¸ изменений"
+msgstr ""
msgid "FORMAT"
msgstr "ФОРМÐТ"
msgid "strftime-compatible format for grouping by date"
-msgstr "strftime-ÑовмеÑтимый формат Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ дате"
+msgstr ""
msgid "count rate by number of changesets"
-msgstr "Ñчитать количеÑтво наборов изменений"
+msgstr ""
msgid "sort by key (default: sort by count)"
-msgstr "отÑортировать по ключу (по умолчанию: Ñортировать по количеÑтву)"
+msgstr ""
msgid "display added/removed lines separately"
-msgstr "отобразить добавленные/удалённые Ñтроки отдельно"
+msgstr ""
msgid "FILE"
msgstr "ФÐЙЛ"
msgid "file with email aliases"
-msgstr "файл Ñ Ð¿Ñевдонимами почтовых адреÑов"
+msgstr ""
msgid "hg churn [-d DATE] [-r REV] [--aliases FILE] [FILE]"
-msgstr "hg churn [-d ДÐТÐ] [-r РЕВ] [--aliases ФÐЙЛ] [ФÐЙЛ]"
+msgstr ""
msgid "colorize output from some commands"
-msgstr "раÑкрашивает вывод некоторых команд"
+msgstr "РаÑкрашивает вывод некоторых команд"
msgid ""
"This extension modifies the status and resolve commands to add color\n"
@@ -1510,12 +834,6 @@ msgid ""
"diff-related commands to highlight additions, removals, diff headers,\n"
"and trailing whitespace."
msgstr ""
-"Это раÑширение добавлÑет цветной вывод Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… команд.\n"
-"Ð’ командах status и resolve цвет отражает ÑÑ‚Ð°Ñ‚ÑƒÑ Ñ„Ð°Ð¹Ð»Ð°; в qseries -\n"
-"ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ð°Ñ‚Ñ‡Ð° (применен, не применен, отÑутÑтвует); в команды, ÑвÑзанные\n"
-"Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñми (diff) добавлÑет подÑветку добавлений и удалений файлов, "
-"заголовков\n"
-"различий, а также ведущих пробельных Ñимволов."
msgid ""
"Other effects in addition to color, like bold and underlined text, are\n"
@@ -1524,16 +842,9 @@ msgid ""
"available, then effects are rendered with the ECMA-48 SGR control\n"
"function (aka ANSI escape codes)."
msgstr ""
-"Кроме цвета, также доÑтупны и другие Ñффекты, такие как жирный или "
-"подчёркнутый текÑÑ‚.\n"
-"Пр умолчанию Ð´Ð»Ñ Ð½Ð°Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð¾Ð² терминала Ð´Ð»Ñ Ñффекта или Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð°\n"
-"иÑпользуетÑÑ Ð±Ð°Ð·Ð° terminfo. ЕÑли terminfo не доÑтупен,\n"
-"Ñффекты отображаютÑÑ Ð¿Ñ€Ð¸ помощи контрольной функции ECMA-48 SGR control\n"
-"(также извеÑтной как ANSI escape codes)."
msgid "Default effects may be overridden from your configuration file::"
msgstr ""
-"Стандартные Ñффекты могут быть переопределены в вашем файле конфигурации::"
msgid ""
" [color]\n"
@@ -1544,32 +855,18 @@ msgid ""
" status.unknown = magenta bold underline\n"
" status.ignored = black bold"
msgstr ""
-" [цвет]\n"
-" status.modified = blue bold underline red_background # Ñиний подчёркнутый "
-"краÑный_фон\n"
-" status.added = green bold # зелёный жирный\n"
-" status.removed = red bold blue_background # краÑный жирный Ñиний_фон\n"
-" status.deleted = cyan bold underline # голубой жирный подчёркнутый\n"
-" status.unknown = magenta bold underline # пурпурный жирный подчёркнутый\n"
-" status.ignored = black bold # чёрный жирный"
msgid ""
" # 'none' turns off all effects\n"
" status.clean = none\n"
" status.copied = none"
msgstr ""
-" # 'none' выключает вÑе Ñффекты\n"
-" status.clean = none\n"
-" status.copied = none"
msgid ""
" qseries.applied = blue bold underline\n"
" qseries.unapplied = black bold\n"
" qseries.missing = red bold"
msgstr ""
-" qseries.applied = blue bold underline # Ñиний жирный подчёркнутый\n"
-" qseries.unapplied = black bold # чёрный подчёркнутый\n"
-" qseries.missing = red bold # краÑный жирный"
msgid ""
" diff.diffline = bold\n"
@@ -1582,25 +879,14 @@ msgid ""
" diff.changed = white\n"
" diff.trailingwhitespace = bold red_background"
msgstr ""
-" diff.diffline = bold # жирный\n"
-" diff.extended = cyan bold # голубой жирный\n"
-" diff.file_a = red bold # краÑный жирный\n"
-" diff.file_b = green bold # зелёный жирный\n"
-" diff.hunk = magenta # пурпурный\n"
-" diff.deleted = red # краÑный\n"
-" diff.inserted = green # зелёный\n"
-" diff.changed = white # белый\n"
-" diff.trailingwhitespace = bold red_background # жирный краÑный_фон "
msgid ""
" resolve.unresolved = red bold\n"
" resolve.resolved = green bold"
msgstr ""
-" resolve.unresolved = red bold # краÑный жирный\n"
-" resolve.resolved = green bold # зелёный жирный"
msgid " bookmarks.current = green"
-msgstr " bookmarks.current = green # зеленый"
+msgstr ""
msgid ""
" branches.active = none\n"
@@ -1608,17 +894,6 @@ msgid ""
" 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 ""
-" tags.normal = green\n"
-" tags.local = black bold"
-msgstr ""
-" tags.normal = green # зеленый\n"
-" tags.local = black bold # черный жирный"
msgid ""
"The available effects in terminfo mode are 'blink', 'bold', 'dim',\n"
@@ -1628,13 +903,6 @@ msgid ""
"Some may not be available for a given terminal type, and will be\n"
"silently ignored."
msgstr ""
-"Ð’ режиме terminfo доÑтупны Ñффекты 'blink' (мигающий), 'bold' (жирный),\n"
-"'dim' (туÑклый), 'invisible' (невидимый), 'italic' (курÑивный), 'standout'\n"
-"(выделенный) и 'underline' (подчеркнутый); в режиме ECMA-48 доÑтупны\n"
-"'bold', 'inverse', 'italic' и 'underline'. Конкретный вид каждого Ñффекта\n"
-"завиÑит от вашего ÑмулÑтора терминала. Ðекоторые из них могут быть "
-"недоÑтупны\n"
-"в вашем терминале и будут молча проигнорированы."
msgid ""
"Note that on some systems, terminfo mode may cause problems when using\n"
@@ -1645,31 +913,18 @@ msgid ""
"pass through all terminal control codes, not just color control\n"
"codes)."
msgstr ""
-"Обратите внимание, что на некоторых ÑиÑтемах режим terminfo может вызывать\n"
-"проблемы Ñ Ñ€Ð°Ñширением pager и Ñ less -R. less Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ -R будет отображать\n"
-"только цветовые коды ECMA-48, а режим terminfo иногда может порождать\n"
-"коды, которые less не понимает. Это можно обойти, еÑли иÑпользовать режим\n"
-"ansi (или auto), или иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ less -r (который пропуÑкает вÑе контрольные\n"
-"поÑледовательноÑти, а не только коды цвета)."
msgid ""
"Because there are only eight standard colors, this module allows you\n"
"to define color names for other color slots which might be available\n"
"for your terminal type, assuming terminfo mode. For instance::"
msgstr ""
-"ПоÑкольку Ñтандартных цветов вÑего воÑемь, Ñтот модуль позволÑет определить\n"
-"имена Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… Ñлотов цвета, которые могут быть доÑтупны в вашем "
-"терминале.\n"
-"Ðапример::"
msgid ""
" color.brightblue = 12\n"
" color.pink = 207\n"
" color.orange = 202"
msgstr ""
-" color.brightblue = 12 # Ñветло-голубой\n"
-" color.pink = 207 # розовый\n"
-" color.orange = 202 # оранжевый"
msgid ""
"to set 'brightblue' to color slot 12 (useful for 16 color terminals\n"
@@ -1678,64 +933,48 @@ msgid ""
"defined colors may then be used as any of the pre-defined eight,\n"
"including appending '_background' to set the background to that color."
msgstr ""
-"задает Ð¸Ð¼Ñ 'bightblue' Ð´Ð»Ñ Ñлота 12 (полезно Ð´Ð»Ñ 16-цветных терминалов,\n"
-"в которых Ñветлые цвета определены в Ñтарших 8 кодах) и 'pink' и 'orange'\n"
-"Ð´Ð»Ñ 256-цветного xterm. Определенные таким образом цвета могут "
-"иÑпользоватьÑÑ\n"
-"так же, как и воÑемь Ñтандартных, Ñ‚.ч. и Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ '_background' длÑ\n"
-"уÑтановки цвета фона."
msgid ""
"By default, the color extension will use ANSI mode (or win32 mode on\n"
"Windows) if it detects a terminal. To override auto mode (to enable\n"
"terminfo mode, for example), set the following configuration option::"
msgstr ""
-"По умолчанию раÑширение иÑпользует режим ANSI (или win32 под windows),\n"
-"еÑли она обнаруживает терминал. Чтобы переопределить режим по умолчанию\n"
-"(например, чтобы включить режим terminfo), иÑпользуютÑÑ Ñледующие\n"
-"параметры::"
msgid ""
" [color]\n"
" mode = terminfo"
msgstr ""
-" [color]\n"
-" mode = terminfo"
msgid ""
"Any value other than 'ansi', 'win32', 'terminfo', or 'auto' will\n"
"disable color.\n"
msgstr ""
-"Любое другое значение, кроме 'ansi', 'win32', 'terminfo' или 'auto'\n"
-"отключает цвета.\n"
msgid "no terminfo entry for setab/setaf: reverting to ECMA-48 color\n"
-msgstr "нет запиÑи terminfo Ð´Ð»Ñ setab/setaf: возвращаюÑÑŒ в режим ECMA-48\n"
+msgstr ""
#, python-format
msgid "warning: failed to set color mode to %s\n"
-msgstr "предупреждение: не удалоÑÑŒ уÑтановить режим %s\n"
+msgstr ""
#, python-format
msgid "ignoring unknown color/effect %r (configured in color.%s)\n"
-msgstr "игнорируетÑÑ Ð½ÐµÐ¸Ð·Ð²ÐµÑтный цвет/Ñффект %r (заданный в цвете.%s)\n"
+msgstr ""
#. i18n: 'always', 'auto', and 'never' are keywords and should
#. not be translated
msgid "when to colorize (boolean, always, auto, or never)"
msgstr ""
-"когда раÑкрашивать вывод (логичеÑкий. always (вÑегда), auto (автоматичеÑки)"
-"или never (не раÑкрашивать))"
msgid "TYPE"
msgstr "ТИП"
msgid "import revisions from foreign VCS repositories into Mercurial"
msgstr ""
-"импортирует ревизии из хранилищ других ÑиÑтем ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²ÐµÑ€Ñий в Mercurial"
+"импортирует ревизии из репозиториев других ÑиÑтем ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²ÐµÑ€Ñий в Mercurial"
msgid "convert a foreign SCM repository to a Mercurial one."
-msgstr "Преобразовать хранилище другой SCM в хранилище Mercurial"
+msgstr "Преобразовать репозиторий другой SCM в репозиторий Mercurial"
msgid " Accepted source formats [identifiers]:"
msgstr " Возможные входные форматы [обозначениÑ]:"
@@ -1751,15 +990,6 @@ msgid ""
" - Bazaar [bzr]\n"
" - Perforce [p4]"
msgstr ""
-" - Mercurial [hg]\n"
-" - CVS [cvs]\n"
-" - Darcs [darcs]\n"
-" - git [git]\n"
-" - Subversion [svn]\n"
-" - Monotone [mtn]\n"
-" - GNU Arch [gnuarch]\n"
-" - Bazaar [bzr]\n"
-" - Perforce [p4]"
msgid " Accepted destination formats [identifiers]:"
msgstr " Возможные выходные форматы [обозначениÑ]:"
@@ -1797,7 +1027,7 @@ msgid ""
" order. Sort modes have the following effects:"
msgstr ""
" По умолчанию вÑе иÑточники кроме Mercurial преобразуютÑÑ Ñ\n"
-" параметром --branchsort. Ð”Ð»Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð° Mercurial иÑпользуетÑÑ\n"
+" параметром --branchsort. Ð”Ð»Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Mercurial иÑпользуетÑÑ\n"
" --sourcesort, чтобы Ñохранить иÑходный порÑдок номеров ревизий.\n"
" Режимы Ñортировки имеют Ñледующий ÑмыÑл:"
@@ -1807,9 +1037,9 @@ msgid ""
" the other. It generates more compact repositories."
msgstr ""
" --branchsort по возможноÑти преобразует от родительÑкой к\n"
-" дочерней ревизии, Ñ‚.е. ветки обычно конвертируютÑÑ\n"
+" дочерней ревизии, Ñ‚.е. ветви обычно ковертируютÑÑ\n"
" одна за другой. ПозволÑет генерировать более\n"
-" компактные хранилища."
+" компактные репозитории."
msgid ""
" --datesort sort revisions by date. Converted repositories have\n"
@@ -1817,8 +1047,8 @@ msgid ""
" magnitude larger than the same ones generated by\n"
" --branchsort."
msgstr ""
-" --datesort Ñортирует ревизии по дате. Сконвертированные\n"
-" хранилища имеют правильно выглÑдÑщую иÑторию,\n"
+" -datesort Ñортирует ревизии по дате. Сконвертированные\n"
+" репозитории имеют правильно выглÑдÑщую иÑторию,\n"
" но чаÑто получаютÑÑ Ð½Ð° порÑдок больше по Ñравнению\n"
" c --branchsort."
@@ -1827,7 +1057,7 @@ msgid ""
" supported by Mercurial sources."
msgstr ""
" --sourcesort пытаетÑÑ Ñохранить иÑходный порÑдок ревизий.\n"
-" Только Ð´Ð»Ñ Ð¸Ñходных хранилищ Mercurial"
+" Только Ð´Ð»Ñ Ð¸Ñходных репозиториев Mercurial"
msgid ""
" If ``REVMAP`` isn't given, it will be put in a default location\n"
@@ -1837,7 +1067,7 @@ msgid ""
msgstr ""
" ЕÑли файл ``REVMAP`` не задан, он будет Ñоздан по умолчанию\n"
" как ``<dest>/.hg/shamap``. ``REVMAP`` - Ñто проÑтой текÑтовый\n"
-" файл который уÑтанавливает ÑоответÑтвие входных и выходных\n"
+" файл который уÑтанавливает ÑоответÑвие входных и выходных\n"
" идентификаторов Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ревизии в формате:"
msgid " <source ID> <destination ID>"
@@ -1849,9 +1079,9 @@ msgid ""
" and can be run repeatedly to copy new commits."
msgstr ""
" ЕÑли файл не ÑущеÑтвует, он ÑоздаетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки. Он\n"
-" обновлÑетÑÑ Ð½Ð° каждой копируемой фикÑации, так что :hg: `convert`\n"
+" обновлÑетÑÑ Ð½Ð° каждом копируемом коммите, так что :hg: `convert`\n"
" может быть прервано и повторно запущено Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ñ‹Ñ…\n"
-" фикÑаций"
+" коммитов"
msgid ""
" The authormap is a simple text file that maps each source commit\n"
@@ -1860,10 +1090,10 @@ msgid ""
" author mapping and the line format is::"
msgstr ""
" authormap - Ñто обычный текÑтовый файл, который позволÑет \n"
-" заменить в конечном хранилище имена авторов фикÑаций из\n"
-" иÑходного хранилища. Это удобно в Ñлучае когда иÑÑ…Ð¾Ð´Ð½Ð°Ñ SCM\n"
-" иÑпользует unix-логины в качеÑтве имен авторов (например, CVS).\n"
-" ÐšÐ°Ð¶Ð´Ð°Ñ Ñтрока ÑоответÑтвует одному имени. Формат Ñтроки::"
+" заменить в конечном репозитории имена авторов коммитов из \n"
+" иÑходного. Это удобно в Ñлучае иÑходной SCM, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸Ñпользует \n"
+" unix-логины в качеÑтве имен авторов (например, CVS). ÐšÐ°Ð¶Ð´Ð°Ñ \n"
+" Ñтрока ÑоответÑвует одному имени. Формат Ñтроки::"
msgid " source author = destination author"
msgstr " автор в иÑточнике = автор на выходе"
@@ -1895,7 +1125,7 @@ msgid ""
" directories. The ``include`` or ``exclude`` directive with the\n"
" longest matching path applies, so line order does not matter."
msgstr ""
-" Строки, начинающиеÑÑ Ñ ``#``, ÑвлÑÑŽÑ‚ÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñми. Заданный\n"
+" Строки, начинающиеÑÑ Ñ ``#`` ÑвлÑÑŽÑ‚ÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñми. Заданный\n"
" путь иÑпользуетÑÑ, еÑли он Ñовпадает Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ отноÑительным путем\n"
" к файлу или одним из его родительÑких каталогов. Директивы\n"
" ``include`` и ``exclude`` применÑÑŽÑ‚ÑÑ Ð´Ð»Ñ Ñамого длинного из\n"
@@ -1910,13 +1140,13 @@ msgid ""
" it is converted. To rename from a subdirectory into the root of\n"
" the repository, use ``.`` as the path to rename to."
msgstr ""
-" Директива ``include`` означает, что в выходное хранилище\n"
+" Директива ``include`` означает, что в выходной репозиторий\n"
" попадет указанный файл или каталог Ñо вÑеми его файлами и\n"
" подкаталогами, а также что оÑтальные файлы, не указанные Ñвно,\n"
" будут проигнорированы. Директива ``exclude`` позволÑет\n"
" игнорировать указанный файл или каталог. Директива ``rename``\n"
" переименовывает файл или каталог при конвертации. Чтобы\n"
-" перемеÑтить файл из подкаталога в корень хранилища,\n"
+" перемеÑтить файл из подкаталога в корень репозиториÑ,\n"
" иÑпользуйте ``.`` в качеÑтве пути назначениÑ."
msgid ""
@@ -1927,7 +1157,7 @@ msgid ""
" contains a key, followed by a space, followed by one or two\n"
" comma-separated values::"
msgstr ""
-" Файл slicemap позволÑет добавлÑÑ‚ÑŒ иÑкуÑÑтвенные чаÑти в иÑторию,\n"
+" Файл slicemap позволÑет добавлÑÑ‚ÑŒ иÑкуÑтвенные чаÑти в иÑторию,\n"
" позволÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¸. Это полезно, например,\n"
" еÑли вы хотите привÑзать две родительÑкие ревизии (parent)\n"
" к результату ÑлиÑÐ½Ð¸Ñ Ð² SVN, или ÑвÑзать две неÑвÑзанные чаÑти\n"
@@ -1947,14 +1177,14 @@ msgid ""
" specify the revision on \"trunk\" as the first parent and the one on\n"
" the \"release-1.0\" branch as the second."
msgstr ""
-" Ключ - Ñто идентификатор ревизии в иÑходном хранилище, чьи\n"
+" Ключ - Ñто идентификатор ревизии в иÑходном репозитории, чьи\n"
" родители должны быть изменены (тот же формат, что и в файле\n"
" .hg/shamap). Параметры ÑвлÑÑŽÑ‚ÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð°Ð¼Ð¸ ревизий (во входном\n"
-" или выходном хранилище), которые иÑпользуютÑÑ Ð² качеÑтве\n"
-" новых родителей Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ узла. Ðапример, еÑли ветка \"release-1.0\"\n"
-" была Ñлита в \"trunk\", то нужно указать номер ревизии в ветке\n"
-" \"trunk\" в качеÑтве первого родителÑ, и номер ревизии из ветки\n"
-" \"release-1.0\" в качеÑтве второго родителÑ."
+" или выходном репозитории), которые иÑпользуютÑÑ Ð² качеÑтве\n"
+" новых родителей Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ узла. Ðапример, еÑли были Ñлиты\n"
+" ветви \"release-1.0\" и \"trunc\", то нужно указать номер\n"
+" ревизии в ветви \"trunc\" в качеÑтве родитель1, и номер ревизии\n"
+" в ветви \"release-1.0\" в качеÑтве родитель2."
msgid ""
" The branchmap is a file that allows you to rename a branch when it is\n"
@@ -1964,14 +1194,14 @@ msgid ""
" into nicely structured Mercurial repositories. The branchmap contains\n"
" lines of the form::"
msgstr ""
-" Файл branchmap позволÑет переименовать ветку из любого внешнего\n"
-" хранилища. При иÑпользовании вмеÑте Ñ splicemap, предоÑтавлÑет\n"
-" широкие возможноÑти Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑÐ´Ð¾Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð¶Ðµ Ñамых запутанных\n"
-" хранилищ и Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ñ… в хорошо Ñтруктурированные\n"
-" хранилище Mercurial. Содержит Ñтроки в формате:"
+" Файл branchmap позволÑет переименовать ветвь из любого внешнего\n"
+" репозиториÑ. При иÑпользовании вмеÑте Ñ splicemap, предоÑтавлÑет\n"
+" хорошие возможноÑти упорÑдочить даже Ñамые запутанные\n"
+" репозитории и преобразовать их в хорошо Ñтруктурированный\n"
+" репозиторий Mercurial. Содержит Ñтроки в формате:"
msgid " original_branch_name new_branch_name"
-msgstr " иÑходное_имÑ_ветки новое_имÑ_ветки"
+msgstr " иÑходное_имÑ_ветви новое_имÑ_ветви"
msgid ""
" where \"original_branch_name\" is the name of the branch in the\n"
@@ -1980,24 +1210,24 @@ msgid ""
" branch names. This can be used to (for instance) move code in one\n"
" repository from \"default\" to a named branch."
msgstr ""
-" где \"иÑходное_имÑ_ветки\" - Ñто Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸ в иÑходном хранилище\n"
-" \"новое_имÑ_ветки\" - Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸ в выходном хранилище. Пробелы\n"
-" в именах веток не допуÑкаютÑÑ. Этим можно пользоватьÑÑ,\n"
-" например, чтобы перемеÑтить код Ñ Ð²ÐµÑ‚ÐºÐ¸ \"default\" на именованную\n"
-" ветку."
+" где \"иÑходное_имÑ_ветви\" - Ñто Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸ в иÑходном репозитории\n"
+" \"новое_имÑ_ветви\" - Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸ в выходном репозитории. Пробелы\n"
+" в именах ветвей не допуÑкаютÑÑ. Этим можно пользоватьÑÑ,\n"
+" например, чтобы перемеÑтить код Ñ Ð²ÐµÑ‚Ð²Ð¸ \"default\" на именованную\n"
+" ветвь."
msgid ""
" Mercurial Source\n"
-" ################"
+" ''''''''''''''''"
msgstr ""
" ИÑточник - Mercurial\n"
-" ####################"
+" ''''''''''''''''''''''''''''''''"
msgid ""
" The Mercurial source recognizes the following configuration\n"
" options, which you can set on the command line with ``--config``:"
msgstr ""
-" При конвертации из хранилища Mercurial возможны Ñледующие\n"
+" При конвертации из Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Mercurial возможны Ñледующие\n"
" параметры, которые можно указать в командной Ñтроке Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
" ``--config``:"
@@ -2007,16 +1237,16 @@ msgid ""
" converting from and to Mercurial. Default is False."
msgstr ""
" :convert.hg.ignoreerrors: игнорировать ошибки целоÑтноÑти при\n"
-" чтении. ИÑпользуетÑÑ Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ Mercurial\n"
-" c недоÑтающими revlog'ами путем конвертации из хранилища\n"
+" чтении. ИÑпользуетÑÑ Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸ÐµÐ² Mercurial\n"
+" c недоÑтающими revlog'ами путем ковертации из репозиториÑ\n"
" Mercurial и обратно. По умолчанию False."
msgid ""
" :convert.hg.saverev: store original revision ID in changeset\n"
-" (forces target IDs to change). It takes a boolean argument and\n"
-" defaults to False."
+" (forces target IDs to change). It takes and boolean argument\n"
+" and defaults to False."
msgstr ""
-" :convert.hg.saverev: ÑохранÑÑ‚ÑŒ иÑходный номер ревизии в наборе\n"
+" :convert.hg.saverev: ÑозранÑÑ‚ÑŒ иÑходный номер ревизии в наборе\n"
" изменений (изменÑет выходные номера ревизий).\n"
" True или False, по умолчанию False."
@@ -2030,10 +1260,10 @@ msgstr ""
msgid ""
" CVS Source\n"
-" ##########"
+" ''''''''''"
msgstr ""
" ИÑточник - CVS\n"
-" ##############"
+" ''''''''''''''''''''''''''"
msgid ""
" CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n"
@@ -2049,10 +1279,10 @@ msgstr ""
" При конвертировании из CVS иÑпользуетÑÑ Ð¿ÐµÑочница (Ñ‚.е. копиÑ,\n"
" Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ð°Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ cvs checkout), ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½ÑƒÐ¶Ð½Ð° в качеÑтве\n"
" отправной точки Ð´Ð»Ñ ÐºÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð°Ñ†Ð¸Ð¸. ПрÑмой доÑтуп к файлам\n"
-" хранилища CVS не требуетÑÑ, еÑли, конечно, не иÑпользуетÑÑ\n"
-" метод доÑтупа ``:local:``. Хранилище CVS ищетÑÑ Ð¿Ð¾ каталогу\n"
+" Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ CVS не требутÑÑ, еÑли, конечно, не иÑпользуетÑÑ\n"
+" метод доÑтупа ``:local:``. Репозиторий CVS ищетÑÑ Ð¿Ð¾ каталогу\n"
" верхнего ÑƒÑ€Ð¾Ð²Ð½Ñ Ð¿ÐµÑочницы, поÑле чего иÑпользуетÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°\n"
-" CVS rlog Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка конвертируемых файлов. Это означает, что\n"
+" CVS rlog Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка конвертирумых файлов. Это означает, что\n"
" еÑли не задан файл filemap, будут конвертироватьÑÑ Ð²Ñе файлы\n"
" из верхнего каталога, и вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñтруктуры каталогов в\n"
" пеÑочнице будут проигнорированы."
@@ -2065,7 +1295,7 @@ msgid ""
" for testing and debugging purposes. Default is True."
msgstr ""
" :convert.cvsps.cache: УÑтановите в False чтобы отключить\n"
-" кÑширование отдалённого лога, нужно Ð´Ð»Ñ Ñ‚ÐµÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸\n"
+" кеширование удаленного лога, нужно Ð´Ð»Ñ Ñ‚ÐµÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸\n"
" отладки. По умолчанию True."
msgid ""
@@ -2076,9 +1306,9 @@ msgid ""
" The default is 60."
msgstr ""
" :convert.cvsps.fuzz: задает макÑимально допуÑтимое Ð²Ñ€ÐµÐ¼Ñ \n"
-" (в Ñекундах) между фикÑациÑми Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñ‹Ð¼Ð¸ пользователем \n"
-" и журнальным Ñообщением в рамках одного набора изменений. ЗначениÑ\n"
-" по умолчанию может не хватить, еÑли очень большие файлы были\n"
+" (в Ñекундах) между коммитами Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñ‹Ð¼Ð¸ пользователем \n"
+" и журнальным Ñообщением в рамках одного набора изменений. "
+"Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию может не хватить, еÑли очень большие файлы были\n"
" Ñохранены в наборе изменений. По умолчанию 60 Ñек."
msgid ""
@@ -2092,7 +1322,7 @@ msgstr ""
" :convert.cvsps.mergeto: задает регулÑрное выражение, на\n"
" Ñовпадение Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ проверÑÑŽÑ‚ÑÑ Ð¶ÑƒÑ€Ð½Ð°Ð»ÑŒÐ½Ñ‹Ðµ ÑообщениÑ. При\n"
" Ñовпадении будет вÑтавлена Ñ„Ð¸ÐºÑ‚Ð¸Ð²Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ, ÑливающаÑ\n"
-" ветку Ñ Ñтим Ñообщением Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¹ в регулÑрном выражении\n"
+" ветвь Ñ Ñтим Ñообщением Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¹ в регулÑрном выражении\n"
" веткой. Значение по умолчанию: ``{{mergetobranch ([-\\w]+)}}``"
msgid ""
@@ -2102,11 +1332,6 @@ msgid ""
" branch indicated in the regex as the second parent of the\n"
" changeset. Default is ``{{mergefrombranch ([-\\w]+)}}``"
msgstr ""
-" :convert.cvsps.mergefrom: задает регулÑрное выражение, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼\n"
-" ÑравниваютÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ð¸ фикÑации. ЕÑли Ñовпадение найдено, то\n"
-" наиболее позднÑÑ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ð° ветке, обозначенной в выражении,\n"
-" добавлÑетÑÑ Ð² качеÑтве второго Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ð½Ð°Ð±Ð¾Ñ€Ð° изменений.\n"
-" По умолчанию ``{{mergefrombranch ([-\\w]+)}}``"
msgid ""
" :hook.cvslog: Specify a Python function to be called at the end of\n"
@@ -2114,18 +1339,18 @@ msgid ""
" log entries, and can modify the entries in-place, or add or\n"
" delete them."
msgstr ""
-" :hook.cvslog: задает функцию на Python, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÑ‚ÑÑ Ð¿Ð¾Ñле\n"
+" :hook.cvslog: задает функцию на Питоне, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÑ‚ÑÑ Ð¿Ð¾Ñле\n"
" Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ð° CVS. Функции передаетÑÑ ÑпиÑок Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸\n"
" запиÑÑми, она может изменÑÑ‚ÑŒ их, удалÑÑ‚ÑŒ или добавлÑÑ‚ÑŒ новые."
msgid ""
" :hook.cvschangesets: Specify a Python function to be called after\n"
-" the changesets are calculated from the CVS log. The\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: Задает функцию на Питоне, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÑ‚ÑÑ\n"
-" поÑле того, как будут раÑÑчитаны наборы изменений из журнала\n"
+" поÑле того, как будут раÑчитаны наборы изменений из журнала\n"
" CVS. Функции передаетÑÑ ÑпиÑок Ñ Ñлементами набора изменений,\n"
" она может изменÑÑ‚ÑŒ их, удалÑÑ‚ÑŒ или добавлÑÑ‚ÑŒ новые."
@@ -2142,10 +1367,10 @@ msgstr ""
msgid ""
" Subversion Source\n"
-" #################"
+" '''''''''''''''''"
msgstr ""
" ИÑточник - Subversion\n"
-" #####################"
+" '''''''''''''''''''''"
msgid ""
" Subversion source detects classical trunk/branches/tags layouts.\n"
@@ -2160,14 +1385,14 @@ msgid ""
" detection."
msgstr ""
" Ð’ Ñлучае Subversion анализируетÑÑ ÐºÐ»Ð°ÑÑичеÑÐºÐ°Ñ Ñтруктура\n"
-" хранилища trunk/branches/tags. По умолчанию заданный URL\n"
-" ``svn://хранилище/путь`` преобразуетÑÑ Ð² одну ветку. ЕÑли\n"
-" ``svn://хранилище/путь/trunk`` ÑущеÑтвует, он заменÑет ветку\n"
-" ``default``. ЕÑли ``svn://хранилище/путь/branches`` ÑущеÑтвует,\n"
-" его подкаталоги перечиÑлÑÑŽÑ‚ÑÑ ÐºÐ°Ðº возможные ветки. ЕÑли\n"
-" ``svn://хранилище/путь/tags`` ÑущеÑтвует, в нем ищутÑÑ\n"
-" метки, ÑÑылающиеÑÑ Ð½Ð° конвертируемые ветки. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию\n"
-" Ð´Ð»Ñ ``trunk``, ``branches`` и ``tags`` могут быть изменены\n"
+" Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ trunk/branches/tags. По умолчанию заданный URL\n"
+" ``svn://репозиторий/путь`` преобразуетÑÑ Ð² одну ветку. ЕÑли\n"
+" ``svn://репозиторий/путь/trunc`` ÑущеÑтвует, он заменÑет ветку\n"
+" ``default``. ЕÑли ``svn://репозиторий/путь/branches`` ÑущеÑтвует,\n"
+" его подкаталоги перечиÑлÑÑŽÑ‚ÑÑ ÐºÐ°Ðº возможные ветви. ЕÑли\n"
+" ``svn://репозиторий/путь/tags`` ÑущеÑтвует, в нем ищутÑÑ\n"
+" метки, ÑÑылающиеÑÑ Ð½Ð° конвертируемые ветви. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию\n"
+" Ð´Ð»Ñ ``trunc``, ``branches`` и ``tags`` могут быть изменены\n"
" нижеперечиÑленными параметрами. УÑтановите их в пути отноÑительно\n"
" URL иÑточника или оÑтавьте пуÑтыми чтобы отключить автоматичеÑкое\n"
" определение."
@@ -2179,7 +1404,7 @@ msgid ""
" :convert.svn.branches: specify the directory containing branches.\n"
" The default is ``branches``."
msgstr ""
-" :convert.svn.branches: задает каталог, Ñодержащий ветки.\n"
+" :convert.svn.branches: задает каталог, Ñодержащий ветви.\n"
" По умолчанию ``branches``."
msgid ""
@@ -2193,7 +1418,7 @@ msgid ""
" :convert.svn.trunk: specify the name of the trunk branch. The\n"
" default is ``trunk``."
msgstr ""
-" :convert.svn.trunk: задает Ð¸Ð¼Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð¹ ветки (trunk)\n"
+" :convert.svn.trunk: задает Ð¸Ð¼Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð¹ ветви (trunc)\n"
" По умолчанию ``trunk``."
msgid ""
@@ -2203,7 +1428,7 @@ msgid ""
msgstr ""
" ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ извлекатьÑÑ Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¹ ревизии, а не\n"
" обÑзательно полноÑтью. ПоддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ преобразованиÑ\n"
-" Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð¹ ветки."
+" Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð¹ ветви."
msgid ""
" :convert.svn.startrev: specify start Subversion revision number.\n"
@@ -2214,10 +1439,10 @@ msgstr ""
msgid ""
" Perforce Source\n"
-" ###############"
+" '''''''''''''''"
msgstr ""
" ИÑточник - Perforce\n"
-" ###################"
+" '''''''''''''''''''"
msgid ""
" The Perforce (P4) importer can be given a p4 depot path or a\n"
@@ -2227,10 +1452,10 @@ msgid ""
" usually should specify a target directory, because otherwise the\n"
" target may be named ``...-hg``."
msgstr ""
-" При импорте из Perforce (P4) в качеÑтве иÑточника можно задать\n"
-" путь к хранилищу или Ñпецификацию клиента. Ð’Ñе файлы иÑточника\n"
-" будут преобразованы в проÑтое хранилище Mercurial, метки,\n"
-" ветки и точки интеграции игнорируютÑÑ. Обратите внимание, что при\n"
+" При импорте из Perforce (P4) в качеÑтве иÑточника можно задать путь к "
+"хранилищу или Ñпецификацию клиента. Ð’Ñе файлы иÑточика\n"
+" будут преобразованы в проÑтой репозиторий Mercurial, метки,\n"
+" ветви и точки интеграции игнорируютÑÑ. Обратите внимание, что при\n"
" задании пути к хранилищу обычно надо указать также каталог \n"
" назначениÑ, потому что иначе он может быть назван ``...-hg``."
@@ -2250,10 +1475,10 @@ msgstr ""
msgid ""
" Mercurial Destination\n"
-" #####################"
+" '''''''''''''''''''''"
msgstr ""
-" Выходное хранилище Mercurial\n"
-" ############################"
+" Выходной репозиторий Mercurial\n"
+" ''''''''''''''''''''''''''''''"
msgid " The following options are supported:"
msgstr " ПоддерживаютÑÑ Ñледующие параметры:"
@@ -2262,22 +1487,23 @@ msgid ""
" :convert.hg.clonebranches: dispatch source branches in separate\n"
" clones. The default is False."
msgstr ""
-" :convert.hg.clonebranches: Ñоздавать отдельные хранилища на\n"
-" каждую ветку иÑточника. По умолчанию False."
+" :convert.hg.clonebranches: Ñоздавать отдельные репозитории на\n"
+" каждую ветвь иÑточника. По умолчанию False."
+#, fuzzy
msgid ""
" :convert.hg.tagsbranch: branch name for tag revisions, defaults to\n"
" ``default``."
msgstr ""
-" :convert.hg.tagsbranch: Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸ Ð´Ð»Ñ Ð¿Ð¾Ð¼ÐµÑ‡ÐµÐ½Ð½Ñ‹Ñ… ревизий,\n"
-" по умолчанию ``default``"
+" :convert.hg.tagsbranch: Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸ Ð´Ð»Ñ Ð¿Ð¾Ð¼ÐµÑ‡ÐµÐ½Ð½Ñ‹Ñ… ревизий,\n"
+" по умолчанию ``default``\n"
msgid ""
" :convert.hg.usebranchnames: preserve branch names. The default is\n"
" True.\n"
" "
msgstr ""
-" :convert.hg.usebranchnames: ÑохранÑÑ‚ÑŒ имена веток. По умолчанию\n"
+" :convert.hg.usebranchnames: ÑохранÑÑ‚ÑŒ имена ветвей. По умолчанию\n"
" True.\n"
" "
@@ -2300,19 +1526,19 @@ msgid ""
" dates."
msgstr ""
" Команда Mercurial debugcvsps читает журнал CVS через rlog длÑ\n"
-" текущего каталога (или другого указанного каталога) в хранилище\n"
-" CVS и преобразует ее журнал в поÑледовательноÑÑ‚ÑŒ наборов изменений\n"
-" оÑнованных на ÑоответÑтвующих журнальных запиÑÑÑ… и датах."
+" текущего каталога (или другого указанного каталога) в репозитории\n"
+" CVS и преобразует ее журнал в поледовательноÑÑ‚ÑŒ наборов изменений\n"
+" оÑнованных на ÑоответÑвующих журнальных запиÑÑÑ… и датах."
msgid "username mapping filename (DEPRECATED, use --authormap instead)"
msgstr ""
"файл Ð¿ÐµÑ€ÐµÐ½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½ пользователей (УСТÐРЕЛО, иÑпользуйте --authormap)"
msgid "source repository type"
-msgstr "тип хранилища иÑточника"
+msgstr "тип Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸Ñточника"
msgid "destination repository type"
-msgstr "тип хранилища назначениÑ"
+msgstr "тип Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ"
msgid "import up to target revision REV"
msgstr "импортировать до ревизии РЕВИЗИЯ"
@@ -2324,13 +1550,13 @@ msgid "remap file names using contents of file"
msgstr "переназначить имена файлов ÑоглаÑно файлу"
msgid "splice synthesized history into place"
-msgstr "ÑраÑтить Ñинтезированную иÑторию в заданных точках"
+msgstr ""
msgid "change branch names while converting"
-msgstr "изменить имена веток при конвертации"
+msgstr "изменить имена ветвей при конвертации"
msgid "try to sort changesets by branches"
-msgstr "попытатьÑÑ Ð¾Ñ‚Ñортировать наборы изменений по веткам"
+msgstr "попытатьÑÑ Ð¾Ñ‚Ñортировать наборы изменений по ветвÑм"
msgid "try to sort changesets by date"
msgstr "попытатьÑÑ Ð¾Ñ‚Ñортировать наборы изменений по дате"
@@ -2342,7 +1568,7 @@ msgid "hg convert [OPTION]... SOURCE [DEST [REVMAP]]"
msgstr "hg convert [ПÐРÐМЕТР]... ИСТОЧÐИК [ÐÐЗР[REVMAP]]"
msgid "only return changes on specified branches"
-msgstr "возвращать только Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð° указанных ветках"
+msgstr "возвращать только Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð° указанных ветвÑÑ…"
msgid "prefix to remove from file names"
msgstr "удалить Ñтот Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð¸Ð· имен файлов"
@@ -2351,13 +1577,13 @@ msgid "only return changes after or between specified tags"
msgstr "возвращать только Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле или между указанными метками"
msgid "update cvs log cache"
-msgstr "обновить кÑш журнала cvs"
+msgstr "обновить кÑш жирнала cvs"
msgid "create new cvs log cache"
msgstr "Ñоздать новый кÑш лога cvs"
msgid "set commit time fuzz in seconds"
-msgstr "уÑтановить погрешноÑÑ‚ÑŒ времени фикÑации в Ñекундах"
+msgstr ""
msgid "specify cvsroot"
msgstr "задать cvsroot"
@@ -2366,7 +1592,7 @@ msgid "show parent changesets"
msgstr "указать родительÑкие ревизии"
msgid "show current changeset in ancestor branches"
-msgstr "показывать текущий набор изменений на родительÑких ветках"
+msgstr "показывать текущий набор изменений на родительÑких ветвÑÑ…"
msgid "ignored for compatibility"
msgstr "игнорировать Ð´Ð»Ñ ÑовмеÑтимоÑти"
@@ -2383,558 +1609,497 @@ msgstr ""
msgid ":svnuuid: String. Converted subversion revision repository identifier."
msgstr ""
-":svnuuid: Строка. Идентификатор хранилища Ñконвертированной из\n"
+":svnuuid: Строка. Идентификатор Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ñконвертированной из\n"
" subversion ревизии."
#, python-format
msgid "%s does not look like a Bazaar repository"
-msgstr "%s не похож на хранилище Bazaar"
+msgstr ""
msgid "Bazaar modules could not be loaded"
-msgstr "Ðе удалоÑÑŒ загрузить модули Bazaar"
+msgstr ""
msgid ""
"warning: lightweight checkouts may cause conversion failures, try with a "
"regular branch instead.\n"
msgstr ""
-"внимание: легковеÑные копии (checkouts) могут вызвать ошибки при, лучше\n"
-"конвертировании иÑпользовать обычные ветки.\n"
msgid "bzr source type could not be determined\n"
-msgstr "невозможно определить тип иÑточника bzr\n"
+msgstr ""
#, python-format
-msgid "%s is not a valid revision"
-msgstr "%s - Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ"
+msgid "%s is not a valid revision in current branch"
+msgstr ""
#, python-format
msgid "%s is not available in %s anymore"
-msgstr "%s более не доÑтупен в %s"
+msgstr ""
#, python-format
msgid "%s.%s symlink has no target"
-msgstr "ÑимволичеÑÐºÐ°Ñ ÑÑылка %s.%s ÑÑылаетÑÑ Ð½Ð° неÑущеÑтвующий объект"
+msgstr ""
#, python-format
msgid "cannot find required \"%s\" tool"
-msgstr "не удаетÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ требуемый инÑтрумент \"%s\""
+msgstr ""
#, python-format
msgid "%s error:\n"
-msgstr "ошибка в %s:\n"
+msgstr ""
#, python-format
msgid "syntax error in %s(%d): key/value pair expected"
-msgstr "ÑинтакÑичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в %s(%d): ожидаетÑÑ Ð¿Ð°Ñ€Ð° ключ/значение"
+msgstr ""
#, python-format
msgid "could not open map file %r: %s"
-msgstr "не удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ (map file) %r: %s"
-
-#, python-format
-msgid "syntax error in %s(%d): child parent1[,parent2] expected"
msgstr ""
-"ÑинтакÑичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в %s(%d): ожидаетÑÑ `потомок родитель1[,родитель2]`"
#, python-format
msgid "%s: invalid source repository type"
-msgstr "%s: неверный тип хранилища-иÑточника"
+msgstr ""
#, python-format
msgid "%s: missing or unsupported repository"
-msgstr "%s: отÑутÑтвующее или неподдерживаемое хранилище"
+msgstr ""
#, python-format
msgid "%s: invalid destination repository type"
-msgstr "%s: неверный тип хранилища назначениÑ"
+msgstr ""
#, python-format
msgid "convert: %s\n"
-msgstr "convert: %s\n"
+msgstr ""
#, python-format
msgid "%s: unknown repository type"
-msgstr "%s: неизвеÑтный тип хранилища"
+msgstr ""
msgid "getting files"
-msgstr "получаем файлы"
+msgstr ""
msgid "revisions"
msgstr "ревизии"
msgid "scanning"
-msgstr "Ñканирование"
-
-# NOT-SURE
-#, python-format
-msgid "splice map revision %s is not being converted, ignoring\n"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s из splicemap не конвертируетÑÑ, игнорируем\n"
-
-#, python-format
-msgid "unknown splice map parent: %s"
-msgstr "неизвеÑтный родитель в splicemap: %s"
+msgstr ""
#, python-format
msgid "unknown sort mode: %s"
-msgstr "неизвеÑтный режим Ñортировки: %s"
+msgstr ""
#, python-format
msgid "cycle detected between %s and %s"
-msgstr "обнаружен цикл между %s и и %s"
+msgstr ""
msgid "not all revisions were sorted"
-msgstr "не вÑе ревизии были отÑортированы"
+msgstr ""
#, python-format
-msgid "writing author map file %s\n"
-msgstr "запиÑÑŒ файла Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ (map file) авторов %s\n"
+msgid "Writing author map file %s\n"
+msgstr ""
#, python-format
-msgid "ignoring bad line in author map file %s: %s\n"
-msgstr "Ð¾ÑˆÐ¸Ð±Ð¾Ñ‡Ð½Ð°Ñ Ñтрока в файле Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¾Ð² %s игнорируетÑÑ: %s\n"
+msgid "Ignoring bad line in author map file %s: %s\n"
+msgstr ""
#, python-format
msgid "mapping author %s to %s\n"
-msgstr "автор %s отображаетÑÑ ÐºÐ°Ðº %s\n"
+msgstr ""
#, python-format
msgid "overriding mapping for author %s, was %s, will be %s\n"
-msgstr "отображение Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° %s переопределено, было %s, будет %s\n"
+msgstr ""
#, python-format
msgid "spliced in %s as parents of %s\n"
-msgstr "Ñращивание в %s как родителей %s\n"
+msgstr ""
msgid "scanning source...\n"
-msgstr "Ñканирование иÑточника...\n"
+msgstr ""
msgid "sorting...\n"
-msgstr "Ñортировка...\n"
+msgstr ""
msgid "converting...\n"
-msgstr "конвертирование...\n"
+msgstr ""
#, python-format
msgid "source: %s\n"
-msgstr "иÑточник: %s\n"
+msgstr ""
msgid "converting"
-msgstr "конвертирование"
+msgstr ""
#, python-format
msgid "assuming destination %s\n"
-msgstr "предполагаетÑÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ %s\n"
+msgstr ""
msgid "more than one sort mode specified"
-msgstr "указано более одного режима Ñортировки"
+msgstr ""
msgid "--sourcesort is not supported by this data source"
-msgstr "--sourcesort не поддерживаетÑÑ Ñтим иÑточником"
+msgstr ""
#, python-format
msgid "%s does not look like a CVS checkout"
-msgstr "%s не похоже на извлеченную рабочую копию CVS"
+msgstr ""
#, python-format
msgid "revision %s is not a patchset number"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s не номер набора патчей"
+msgstr ""
#, python-format
msgid "connecting to %s\n"
-msgstr "Ñоединение Ñ %s\n"
+msgstr ""
msgid "CVS pserver authentication failed"
-msgstr "ошибка аутентификации через CVS pserver"
+msgstr ""
#, python-format
msgid ""
"unexpected response from CVS server (expected \"Valid-requests\", but got %r)"
msgstr ""
-"неожиданный ответ от Ñервера CVS (ожидаетÑÑ \"Valid-requests\", получено %r)"
#, python-format
msgid "%d bytes missing from remote file"
-msgstr "в отдаленном файле отÑутÑтвует %d байт"
+msgstr ""
msgid "malformed response from CVS"
-msgstr "неверно Ñформированный ответ от CVS"
+msgstr ""
#, python-format
msgid "cvs server: %s\n"
-msgstr "Ñервер cvs: %s\n"
+msgstr ""
#, python-format
msgid "unknown CVS response: %s"
-msgstr "неизвеÑтный ответ от CVS: %s"
+msgstr ""
msgid "collecting CVS rlog\n"
-msgstr "Ñбор CVS rlog\n"
+msgstr ""
msgid "not a CVS sandbox"
-msgstr "не пеÑочница CVS (CVS sandbox)"
+msgstr ""
#, python-format
msgid "reading cvs log cache %s\n"
-msgstr "чтение кÑша журнала cvs %s\n"
+msgstr ""
#, python-format
msgid "cache has %d log entries\n"
-msgstr "кÑш Ñодержит %d журнальных запиÑей\n"
+msgstr ""
#, python-format
msgid "error reading cache: %r\n"
-msgstr "ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ ÐºÑша: %r\n"
+msgstr ""
#, python-format
msgid "running %s\n"
-msgstr "запуÑкаетÑÑ %s\n"
+msgstr ""
msgid "RCS file must be followed by working file"
-msgstr "за RCS-файлом должен Ñледовать рабочий файл"
+msgstr ""
msgid "must have at least some revisions"
-msgstr "требуетÑÑ Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ неÑколько ревизий"
+msgstr ""
msgid "expected revision number"
-msgstr "ожидаетÑÑ Ð½Ð¾Ð¼ÐµÑ€ ревизии"
+msgstr ""
msgid "revision must be followed by date line"
-msgstr "за ревизией должна Ñледовать Ñтрока Ñ Ð´Ð°Ñ‚Ð¾Ð¹"
+msgstr ""
msgid "log cache overlaps with new log entries, re-run without cache."
msgstr ""
-"кÑш журнала переÑекаетÑÑ Ñ Ð½Ð¾Ð²Ñ‹Ð¼Ð¸ журнальными запиÑÑми, перезапуÑтите без "
-"кÑша."
#, python-format
msgid "writing cvs log cache %s\n"
-msgstr "запиÑываетÑÑ ÐºÑш журнала cvs %s\n"
+msgstr ""
#, python-format
msgid "%d log entries\n"
-msgstr "%d запиÑей в журнале\n"
+msgstr ""
msgid "creating changesets\n"
-msgstr "ÑоздаютÑÑ Ð½Ð°Ð±Ð¾Ñ€Ñ‹ изменений\n"
+msgstr ""
msgid "synthetic changeset cannot have multiple parents"
-msgstr "Ñинтезированные наборы изменений не могут иметь неÑколько родителей"
+msgstr ""
#, python-format
msgid ""
"warning: CVS commit message references non-existent branch %r:\n"
"%s\n"
msgstr ""
-"внимание: комментарий фикÑации CVS ÑÑылаетÑÑ Ð½Ð° неÑущеÑтвующую ветку %r:\n"
-"%s\n"
#, python-format
msgid "%d changeset entries\n"
-msgstr "%d запиÑей о наборах изменений\n"
+msgstr ""
#, python-format
msgid "%s does not look like a darcs repository"
-msgstr "%s не похож на хранилище darcs"
+msgstr ""
#, python-format
msgid "darcs version 2.1 or newer needed (found %r)"
-msgstr "требуетÑÑ Ð²ÐµÑ€ÑÐ¸Ñ darcs 2.1 или выше (найдена %r)"
+msgstr ""
msgid "Python ElementTree module is not available"
-msgstr "Модуль Python ElemntTree не доÑтупен"
+msgstr ""
#, python-format
msgid "%s repository format is unsupported, please upgrade"
-msgstr "формат хранилища %s не поддерживаетÑÑ, пожалуйÑта обновитеÑÑŒ"
+msgstr ""
msgid "failed to detect repository format!"
-msgstr "не удалоÑÑŒ определить формат хранилища!"
+msgstr ""
msgid "internal calling inconsistency"
-msgstr "внутреннее нарушение целоÑтноÑти вызовов"
+msgstr ""
msgid "errors in filemap"
-msgstr "ошибки в отображении файлов (filemap)"
+msgstr ""
#, python-format
msgid "%s:%d: path to %s is missing\n"
-msgstr "%s:%d: путь к %s отÑутÑтвует\n"
+msgstr ""
#, python-format
msgid "%s:%d: %r already in %s list\n"
-msgstr "%s:%d: %r уже в ÑпиÑке %s\n"
+msgstr ""
#, python-format
msgid "%s:%d: superfluous / in %s %r\n"
-msgstr "%s:%d: лишний / в %s %r\n"
+msgstr ""
#, python-format
msgid "%s:%d: unknown directive %r\n"
-msgstr "%s:%d: неизвеÑÑ‚Ð½Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° %r\n"
+msgstr ""
msgid "source repository doesn't support --filemap"
-msgstr "иÑходное хранилище не поддерживает --filemap"
+msgstr ""
#, python-format
msgid "%s does not look like a Git repository"
-msgstr "%s не похож на хранилище Git"
+msgstr ""
msgid "cannot retrieve git heads"
-msgstr "не могу получить головы git"
+msgstr ""
#, python-format
msgid "cannot read %r object at %s"
-msgstr "не могу прочитать объект %r в %s"
+msgstr ""
#, python-format
msgid "cannot read changes in %s"
-msgstr "не удаетÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² %s"
+msgstr ""
#, python-format
msgid "cannot read tags from %s"
-msgstr "не удаетÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ метки из %s"
+msgstr ""
#, python-format
msgid "%s does not look like a GNU Arch repository"
-msgstr "%s не похож на хранилище GNU Arch"
+msgstr ""
msgid "cannot find a GNU Arch tool"
-msgstr "не могу найти программу GNU Arch"
+msgstr ""
#, python-format
msgid "analyzing tree version %s...\n"
-msgstr "анализ дерева верÑии %s...\n"
+msgstr ""
#, python-format
msgid ""
"tree analysis stopped because it points to an unregistered archive %s...\n"
msgstr ""
-"анализ дерева прерван, поÑкольку он указывает на незарегиÑтрированный архив "
-"%s...\n"
#, python-format
msgid "could not parse cat-log of %s"
-msgstr "не могу разобрать cat-log %s"
+msgstr ""
#, python-format
msgid "%s is not a local Mercurial repository"
-msgstr "%s - не локальное хранилище Mercurial"
+msgstr ""
#, python-format
msgid "initializing destination %s repository\n"
-msgstr "Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð° Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ %s\n"
+msgstr ""
#, python-format
msgid "could not create hg repository %s as sink"
-msgstr "не удаетÑÑ Ñоздать хранилище-приемник Mercurial %s"
+msgstr ""
#, python-format
msgid "pulling from %s into %s\n"
-msgstr "затÑгиваем из %s в %s\n"
+msgstr ""
msgid "filtering out empty revision\n"
-msgstr "отфильтровываетÑÑ Ð¿ÑƒÑÑ‚Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ\n"
+msgstr ""
msgid "updating tags\n"
-msgstr "обновление меток\n"
+msgstr ""
msgid "updating bookmarks\n"
-msgstr "обновление закладок\n"
-
-#, python-format
-msgid ""
-"revision %s not found in destination repository (lookups with "
-"clonebranches=true are not implemented)"
msgstr ""
-"Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s не найдена в хранилище Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ (поиÑк Ñ clonebranches=true\n"
-"не реализован)"
#, python-format
msgid "%s is not a valid start revision"
-msgstr "%s не ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимой начальной ревизией"
+msgstr ""
#, python-format
msgid "ignoring: %s\n"
-msgstr "игнорируетÑÑ: %s\n"
+msgstr ""
#, python-format
msgid "%s does not look like a monotone repository"
-msgstr "%s не похож на хранилище monotone"
+msgstr ""
msgid "bad mtn packet - no end of commandnbr"
-msgstr "плохой пакет mtn - нет Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ commandbr"
+msgstr ""
#, python-format
msgid "bad mtn packet - bad stream type %s"
-msgstr "плохой пакет mtn - неверный тип потока %s"
+msgstr ""
msgid "bad mtn packet - no divider before size"
-msgstr "плохой пакет mtn - отÑутÑтвует разделитель перед размером"
+msgstr ""
msgid "bad mtn packet - no end of packet size"
-msgstr "плохой пакет mtn - отÑутÑтвует окончание размера пакета"
+msgstr ""
#, python-format
msgid "bad mtn packet - bad packet size %s"
-msgstr "плохой пакет mtn - неверный размер пакета %s"
+msgstr ""
#, python-format
msgid "bad mtn packet - unable to read full packet read %s of %s"
msgstr ""
-"плохой пакет mtn - не удаетÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ñтью прочитать пакет; прочитано %s из %s"
#, python-format
msgid "mtn command '%s' returned %s"
-msgstr "команда mtn '%s' вернула %s"
+msgstr ""
#, python-format
msgid "copying file in renamed directory from '%s' to '%s'"
-msgstr "копирование файла из переименованного каталога из '%s' в '%s'"
+msgstr ""
msgid "unable to determine mtn automate interface version"
-msgstr "не удаетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸Ñ‚ÑŒ верÑию автоматизированного интерфейÑа mtn"
+msgstr ""
#, python-format
msgid "mtn automate stdio header unexpected: %s"
-msgstr "неожиданные заголовок mtn automate stdio: %s"
+msgstr ""
msgid "failed to reach end of mtn automate stdio headers"
-msgstr "не удалоÑÑŒ дойти до конца заголовков mtn automate stdio"
+msgstr ""
#, python-format
msgid "%s does not look like a P4 repository"
-msgstr "%s не похож на хранилище P4"
+msgstr ""
msgid "reading p4 views\n"
-msgstr "чтение предÑтавлений p4\n"
+msgstr ""
msgid "collecting p4 changelists\n"
-msgstr "Ñбор ÑпиÑков изменений p4\n"
-
-msgid "debugsvnlog could not load Subversion python bindings"
msgstr ""
-"debugsvnlog не удалоÑÑŒ загрузить привÑзки (bindings) Subversion Ð´Ð»Ñ python"
msgid "Mercurial failed to run itself, check hg executable is in PATH"
msgstr ""
-"Mercurial не удалоÑÑŒ запуÑтить ÑÐµÐ±Ñ Ñамого, убедитеÑÑŒ, что переменнаÑ\n"
-"PATH Ñодержит путь к hg"
-
-#, python-format
-msgid "log stream exception '%s'"
-msgstr "при Ñчитывании журнала возникло иÑключение '%s'"
msgid ""
"svn: cannot probe remote repository, assume it could be a subversion "
"repository. Use --source-type if you know better.\n"
msgstr ""
-"svn: не удалоÑÑŒ обÑледовать отдаленное хранилище в предположении, что\n"
-"Ñто хранилище subversion. ИÑпользуйте --source-type, еÑли вам лучше\n"
-"извеÑтен его тип.\n"
#, python-format
msgid "%s does not look like a Subversion repository"
-msgstr "%s не похож на хранилище Subversion"
+msgstr ""
-msgid "could not load Subversion python bindings"
-msgstr "Ðе удалоÑÑŒ загрузить привÑзки (bindings) Subversion Ð´Ð»Ñ python"
+msgid "Could not load Subversion python bindings"
+msgstr ""
#, python-format
msgid "Subversion python bindings %d.%d found, 1.4 or later required"
msgstr ""
-"ПривÑзки (bindings) Subversions %d.%d Ð´Ð»Ñ python не найдены, требуетÑÑ 1.4 "
-"или новее"
msgid "Subversion python bindings are too old, 1.4 or later required"
msgstr ""
-"ПривÑзки (bindings) Subversions Ñлишком Ñтарые, требуетÑÑ 1.4 или новее"
#, python-format
msgid "svn: revision %s is not an integer"
-msgstr "svn: Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s - не целое чиÑло"
+msgstr ""
#, python-format
msgid "svn: start revision %s is not an integer"
-msgstr "svn: Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s - не целое чиÑло"
+msgstr ""
#, python-format
msgid "no revision found in module %s"
-msgstr "не найдено ревизий в модуле %s"
+msgstr ""
#, python-format
msgid "expected %s to be at %r, but not found"
-msgstr "%s ожидаетÑÑ Ð² %r, но не был найден"
+msgstr ""
#, python-format
msgid "found %s at %r\n"
-msgstr "%s найден в %r\n"
+msgstr ""
#, python-format
msgid "ignoring empty branch %s\n"
-msgstr "игнорируетÑÑ Ð¿ÑƒÑÑ‚Ð°Ñ Ð²ÐµÑ‚ÐºÐ° %s\n"
+msgstr ""
#, python-format
msgid "found branch %s at %d\n"
-msgstr "ветка %s найдена в %d\n"
+msgstr ""
msgid "svn: start revision is not supported with more than one branch"
-msgstr "svn: Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ поддерживаетÑÑ Ð¿Ñ€Ð¸ наличии более одной ветки"
+msgstr ""
#, python-format
msgid "svn: no revision found after start revision %d"
-msgstr "svn: не найдено ревизий поÑле Ñтартовой ревизии %d"
-
-#, python-format
-msgid "svn: revision %s not found"
-msgstr "svn: Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s не найдена"
+msgstr ""
#, python-format
msgid "%s not found up to revision %d"
-msgstr "%s не найден вплоть до ревизии %d"
+msgstr ""
msgid "scanning paths"
-msgstr "Ñканируем пути"
+msgstr ""
#, python-format
msgid "found parent of branch %s at %d: %s\n"
-msgstr "найден родитель ветки %s в %d: %s\n"
+msgstr ""
#, python-format
msgid "fetching revision log for \"%s\" from %d to %d\n"
-msgstr "получаем журнал ревизий Ð´Ð»Ñ \"%s\" от %d до %d\n"
+msgstr ""
#, python-format
msgid "svn: branch has no revision %s"
-msgstr "svn: на ветке нет ревизии %s"
+msgstr ""
#, python-format
msgid "initializing svn repository %r\n"
-msgstr "Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð° svn %r\n"
+msgstr ""
#, python-format
msgid "initializing svn working copy %r\n"
-msgstr "Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ¹ копии svn %r\n"
+msgstr ""
msgid "unexpected svn output:\n"
-msgstr "неожиданный вывод svn:\n"
+msgstr ""
msgid "unable to cope with svn output"
-msgstr "не удалоÑÑŒ Ñкопировать вывод svn"
+msgstr ""
msgid "writing Subversion tags is not yet implemented\n"
-msgstr "запиÑÑŒ меток Subversion еще не реализована\n"
-
-# NOT-SURE
-#, python-format
-msgid ""
-"splice map revision %s not found in subversion child map (revision lookups "
-"are not implemented)"
msgstr ""
-"Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s из splicemap не найдена в таблице дочерних ревизий subversion\n"
-"(поиÑк ревизий не реализован)"
msgid "automatically manage newlines in repository files"
-msgstr "автоматичеÑкий перевод форматов новой Ñтроки в хранилище"
+msgstr ""
msgid ""
"This extension allows you to manage the type of line endings (CRLF or\n"
@@ -2942,10 +2107,6 @@ msgid ""
"directory. That way you can get CRLF line endings on Windows and LF on\n"
"Unix/Mac, thereby letting everybody use their OS native line endings."
msgstr ""
-"Это раÑширение позволÑет управлÑÑ‚ÑŒ форматом перевода Ñтроки (CRLF или\n"
-"LF), который иÑпользуетÑÑ Ð² хранилище или в рабочей копии. Таким\n"
-"образом можно получить переноÑÑ‹ в виде CRLF в Windows и LF в Unix/Mac,\n"
-"позволÑÑ Ð²Ñем иÑпользовать нативные Ð´Ð»Ñ Ð¸Ñ… платформы переноÑÑ‹."
msgid ""
"The extension reads its configuration from a versioned ``.hgeol``\n"
@@ -2954,10 +2115,6 @@ msgid ""
"configuration files. It uses two sections, ``[patterns]`` and\n"
"``[repository]``."
msgstr ""
-"РаÑширение читает наÑтройки из верÑионируемого файла конфигурации\n"
-"``.hgeol``, находÑщегоÑÑ Ð² корне рабочего каталога. Файл ``.hgeol``\n"
-"имеет тот же ÑинтакÑиÑ, что и другие файлы конфигурации Mercurial.\n"
-"Он иÑпользует две Ñекции: ``[patterns]`` и ``[repository]``."
msgid ""
"The ``[patterns]`` section specifies how line endings should be\n"
@@ -2966,11 +2123,6 @@ msgid ""
"specific patterns first. The available line endings are ``LF``,\n"
"``CRLF``, and ``BIN``."
msgstr ""
-"Ð¡ÐµÐºÑ†Ð¸Ñ ``[patterns]`` определÑет, как переноÑÑ‹ Ñтрок должны "
-"преобразовыватьÑÑ\n"
-"между рабочей копией и хранилищем. Формат задаетÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ файла.\n"
-"ИÑпользуетÑÑ Ð¿ÐµÑ€Ð²Ñ‹Ð¹ Ñовпавший шаблон, так что помещайте более конкретные\n"
-"шаблоны в начале. ДоÑтупны Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ñтроки ``LF``, ``CRLF`` и ``BIN``."
msgid ""
"Files with the declared format of ``CRLF`` or ``LF`` are always\n"
@@ -2982,14 +2134,6 @@ msgid ""
"default behaviour; it is only needed if you need to override a later,\n"
"more general pattern."
msgstr ""
-"Файлы, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… задан формат ``CRLF`` или ``LF`` вÑегда извлекаютÑÑ\n"
-"и хранÑÑ‚ÑÑ Ð² хранилище в Ñтом формате, файлы Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¾Ð¼ ``BIN``\n"
-"оÑтаютÑÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½Ð½Ñ‹Ð¼Ð¸. Дополнительно может иÑпользоватьÑÑ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ ``native``,\n"
-"позволÑющий извлекать файлы в родном Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ платформы формате: ``LF``\n"
-"в Unix (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Mac OS X) и ``CRLF`` в Windows. Обратите внимание, что\n"
-"``BIN`` (ничего не делать Ñ Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð¾Ð¼ Ñтроки) ÑвлÑетÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ Mercurial\n"
-"по умолчанию; он требуетÑÑ, только еÑли надо переопределить поÑледующий,\n"
-"более общий шаблон."
msgid ""
"The optional ``[repository]`` section specifies the line endings to\n"
@@ -3002,20 +2146,9 @@ msgid ""
"declared as ``LF``, ``CRLF``, or ``BIN`` in the ``[patterns]`` section\n"
"are always stored as-is in the repository."
msgstr ""
-"ÐеобÑÐ·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÑÐµÐºÑ†Ð¸Ñ ``[repository]`` задает формат перевода Ñтроки\n"
-"Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в хранилище. Он имеет единÑтвенный параметр - ``native``, - \n"
-"который определÑет формат новой Ñтроки Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð², объÑвленных как "
-"``native``\n"
-"в Ñекции ``[patterns]``. Он может быть уÑтановлен в ``LF`` или ``CRLF``.\n"
-"По умолчанию ``LF``. Это означает, что, например, под Windows файлы,\n"
-"Ñконфигурированные как ``native`` (``CRLF`` по умолчанию), будут "
-"преобразованы\n"
-"к формату ``LF`` при хранении в хранилище. Файлы, объÑвленные как ``LF``,\n"
-"``CRLF`` или ``BIN`` в Ñекции ``[patterns]``, вÑегда хранÑÑ‚ÑÑ Ð² хранилище\n"
-"в неизменном виде."
msgid "Example versioned ``.hgeol`` file::"
-msgstr "Пример верÑионированного файла ``.hgeol``::"
+msgstr ""
msgid ""
" [patterns]\n"
@@ -3025,41 +2158,23 @@ msgid ""
" Makefile = LF\n"
" **.jpg = BIN"
msgstr ""
-" [patterns]\n"
-" **.py = native\n"
-" **.vcproj = CRLF\n"
-" **.txt = native\n"
-" Makefile = LF\n"
-" **.jpg = BIN"
msgid ""
" [repository]\n"
" native = LF"
msgstr ""
-" [repository]\n"
-" 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 ""
-".. note::\n"
-" Правила будут впервые применены, когда файлы будут изменены в рабочей\n"
-" копии, например, при обновлении на нулевую (null) и обратно на оконечную\n"
-" (tip) ревизию."
msgid ""
-"The extension uses an optional ``[eol]`` section read from both the\n"
-"normal Mercurial configuration files and the ``.hgeol`` file, with the\n"
-"latter overriding the former. You can use that section to control the\n"
-"overall behavior. There are three settings:"
+"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:"
msgstr ""
-"РаÑширение иÑпользует необÑзательную Ñекцию ``[eol]``, которую читает\n"
-"из обычного конфигурационного файла Mercurial или из файла ``.hgeol``,\n"
-"причем поÑледний имеет более выÑокий приоритет. Эту Ñекцию можно "
-"иÑпользовать,\n"
-"чтобы управлÑÑ‚ÑŒ общим поведением. ПоддерживаютÑÑ Ñ‚Ñ€Ð¸ параметра:"
msgid ""
"- ``eol.native`` (default ``os.linesep``) can be set to ``LF`` or\n"
@@ -3067,11 +2182,6 @@ msgid ""
" checkout. This can be used with :hg:`archive` on Unix, say, to\n"
" generate an archive where files have line endings for Windows."
msgstr ""
-"- ``eol.native`` (по умолчанию ``ls.linesep``) может быть уÑтановлен в\n"
-" ``LF`` или ``CRLF``, чтобы переопределить интерпретацию ``native``\n"
-" по умолчанию Ð´Ð»Ñ Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð². Это можно иÑпользовать Ñ\n"
-" :hg:`archive` в Unix, например, чтобы Ñгенерировать архив, в котором\n"
-" файлы имеют формат новой Ñтроки Ð´Ð»Ñ Windows."
msgid ""
"- ``eol.only-consistent`` (default True) can be set to False to make\n"
@@ -3080,21 +2190,6 @@ msgid ""
" Such files are normally not touched under the assumption that they\n"
" have mixed EOLs on purpose."
msgstr ""
-"- ``eol.only-consistent`` (по умолчанию True) можно уÑтановить в False,\n"
-" чтобы преобразовать файлы Ñ Ð½ÐµÐ¿Ð¾ÑтоÑнными переводами Ñтрок, Ñ‚.е. такие,\n"
-" в которых вÑтречаютÑÑ Ð¸ ``CRLF`` и ``LF``. Обычно такие файлы не\n"
-" преобразуютÑÑ Ð² предположении, что у них Ñмешанные переводы Ñтрок\n"
-" оÑтавлены намеренно."
-
-msgid ""
-"- ``eol.fix-trailing-newline`` (default False) can be set to True to\n"
-" ensure that converted files end with a EOL character (either ``\\n``\n"
-" or ``\\r\\n`` as per the configured patterns)."
-msgstr ""
-"- ``eol.fix-trailing-newline`` (по умолчанию False) можно уÑтановить в "
-"True,\n"
-" чтобы убедитьÑÑ, что преобразованные файлы оканчиваютÑÑ Ñимволом перевода\n"
-" Ñтроки (``\\n`` или ``\\r\\n``, в завиÑимоÑти от шаблона в конфиге)."
msgid ""
"The extension provides ``cleverencode:`` and ``cleverdecode:`` filters\n"
@@ -3102,10 +2197,6 @@ msgid ""
"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 ""
-"РаÑширение предоÑтавлÑет фильтры ``cleverencode:`` и ``cleverdecode:``,\n"
-"аналогичные уÑтаревшему раÑширению win32text. Это означает, что win32text\n"
-"можно отключить, и вÑе ваши фильтры будут по-прежнему работать. Они вам\n"
-"понадобÑÑ‚ÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ до тех пор, пока вы не напишете файл ``.hgeol``."
msgid ""
"The ``win32text.forbid*`` hooks provided by the win32text extension\n"
@@ -3117,45 +2208,36 @@ msgid ""
"``eol.checkallhook`` hook. These hooks are best used as\n"
"``pretxnchangegroup`` hooks."
msgstr ""
-"Хуки ``win32text.forbid*``, предоÑтавлÑемые раÑширением win32text, были\n"
-"объединены в единый хук ``eol.checkheadshook``. Хук Ñчитывает ожидаемые\n"
-"переводы Ñтрок из файла ``.hgeol``, поÑтому необходимо подготовить файл\n"
-"``.hgeol`` перед иÑпользованием хука. ``eol.checkheadshook`` проверÑет\n"
-"только головные ревизии, промежуточные ревизии Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¼Ð¸ переводами\n"
-"Ñтрок будут принÑÑ‚Ñ‹. Чтобы запретить их полноÑтью, иÑпользуйте хук\n"
-"``eol.checkallhook``. Эти хуки лучше вÑего иÑпользовать в качеÑтве\n"
-"хука ``pretxnchangegroup``."
msgid ""
"See :hg:`help patterns` for more information about the glob patterns\n"
"used.\n"
-msgstr "О шаблонах в формате blob Ñм. :hg:`help patterns`\n"
+msgstr ""
#, python-format
msgid "ignoring unknown EOL style '%s' from %s\n"
-msgstr "игнорируетÑÑ Ð½ÐµÐ¸Ð·Ð²ÐµÑтный формат новой Ñтроки '%s' из %s\n"
+msgstr ""
#, python-format
msgid "warning: ignoring .hgeol file due to parse error at %s: %s\n"
msgstr ""
-"внимание: файл .hgeol игнорируетÑÑ Ð¸Ð·-за ÑинтакÑичеÑкий ошибки в ÑÑ‚Ñ€ %s: %s\n"
#, python-format
msgid " %s in %s should not have %s line endings"
-msgstr " %s в %s не должен иметь переводы Ñтроки вида %s"
+msgstr ""
msgid "end-of-line check failed:\n"
-msgstr "ошибка в формате новой Ñтроки:\n"
+msgstr ""
msgid "the eol extension is incompatible with the win32text extension\n"
-msgstr "раÑширение eol неÑовмеÑтимо Ñ Ñ€Ð°Ñширением win32text\n"
+msgstr ""
#, python-format
msgid "inconsistent newline style in %s\n"
-msgstr "в %s иÑпользуютÑÑ Ñмешанные переводы Ñтроки\n"
+msgstr ""
msgid "command to allow external programs to compare revisions"
-msgstr "позволÑет Ñравнивать ревизии Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ внешних программ"
+msgstr ""
msgid ""
"The extdiff Mercurial extension allows you to use external programs\n"
@@ -3164,17 +2246,11 @@ msgid ""
"non-option arguments: paths to directories containing snapshots of\n"
"files to compare."
msgstr ""
-"РаÑширение extdiff позволÑет иÑпользовать внешние программы Ð´Ð»Ñ ÑравнениÑ\n"
-"двух ревизий или заданной ревизии Ñ Ñ€Ð°Ð±Ð¾Ñ‡Ð¸Ð¼ каталогом. Внешние программы\n"
-"ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÑŽÑ‚ÑÑ Ñ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð¼ наÑтраиваемых аргументов, и Ð´Ð²ÑƒÐ¼Ñ Ð¶ÐµÑтко\n"
-"заданными: путÑми к каталогам, Ñодержащим верÑии Ñравниваемых файлов."
msgid ""
"The extdiff extension also allows you to configure new diff commands, so\n"
"you do not need to type :hg:`extdiff -p kdiff3` always. ::"
msgstr ""
-"РаÑширение extdiff также позволÑет наÑтроить новые команды длÑ\n"
-"ÑравнениÑ, чтобы не набирать вÑе Ð²Ñ€ÐµÐ¼Ñ :hg:`extdiff -p kdiff3`. ::"
msgid ""
" [extdiff]\n"
@@ -3184,48 +2260,27 @@ msgid ""
" #cmd.cdiff = gdiff\n"
" #opts.cdiff = -Nprc5"
msgstr ""
-" [extdiff]\n"
-" # добавить новую команду, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð°Ð¿ÑƒÑкает GNU diff(1)\n"
-" # cо Ñравнением Ñ ÐºÐ¾Ð½Ñ‚ÐµÐºÑтом'\n"
-" cdiff = gdiff -Nprc5\n"
-" ## то же Ñамое Ñтарым ÑпоÑобом:\n"
-" #cmd.cdiff = gdiff\n"
-" #opts.cdiff = -Nprc5"
msgid ""
" # add new command called vdiff, runs kdiff3\n"
" vdiff = kdiff3"
msgstr ""
-" # добавить новую команду vdiff, запуÑкающую kdiff3\n"
-" vdiff = kdiff3"
msgid ""
" # add new command called meld, runs meld (no need to name twice)\n"
" meld ="
msgstr ""
-" # добавить новую команду meld, запуÑкающую meld (не нужно набирать "
-"дважды)\n"
-" meld ="
msgid ""
" # add new command called vimdiff, runs gvimdiff with DirDiff plugin\n"
" # (see http://www.vim.org/scripts/script.php?script_id=102) Non\n"
" # English user, be sure to put \"let g:DirDiffDynamicDiffText = 1\" in\n"
" # your .vimrc\n"
-" vimdiff = gvim -f \"+next\" \\\n"
-" \"+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))\""
+" vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'"
msgstr ""
-" # добавить новую команду vimdiff, запуÑкающую gvimdiff Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð¼ DirDiff\n"
-" # (Ñм. http://www.vim.org/scripts/script.php?script_id=102)\n"
-" # ÐеанглоÑзычные пользователи, не забудьте добавить\n"
-" # \"let g:DirDiffDynamicDiffText = 1\" в ваш .vimrc\n"
-" vimdiff = gvim -f \"+next\" \\\n"
-" \"+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))\""
msgid "Tool arguments can include variables that are expanded at runtime::"
msgstr ""
-"Ðргументы программы могут включать в ÑÐµÐ±Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ðµ, в которых\n"
-"выполнÑетÑÑ Ð¿Ð¾Ð´Ñтановка во Ð²Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ::"
msgid ""
" $parent1, $plabel1 - filename, descriptive label of first parent\n"
@@ -3234,32 +2289,21 @@ msgid ""
" $root - repository root\n"
" $parent is an alias for $parent1."
msgstr ""
-" $parent1, $plabel1 - Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°, Ñ‡Ð¸Ñ‚Ð°ÐµÐ¼Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° первого родителÑ\n"
-" $child, $clabel - Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°, Ñ‡Ð¸Ñ‚Ð°ÐµÐ¼Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° дочерней ревизии\n"
-" $parent2, $plabel2 - Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°, Ñ‡Ð¸Ñ‚Ð°ÐµÐ¼Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° второго родителÑ\n"
-" $root - корень хранилища\n"
-" $parent - пÑевдоним Ð´Ð»Ñ $parent1."
msgid ""
"The extdiff extension will look in your [diff-tools] and [merge-tools]\n"
"sections for diff tool arguments, when none are specified in [extdiff]."
msgstr ""
-"extdiff читает аргументы Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼ ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð² ÑекциÑÑ… [diff-tools]\n"
-"и [merge-tools] конфигурационного файла, еÑли они не заданы в [extdiff]."
msgid ""
" [extdiff]\n"
" kdiff3 ="
msgstr ""
-" [extdiff]\n"
-" kdiff3 ="
msgid ""
" [diff-tools]\n"
" kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child"
msgstr ""
-" [diff-tools]\n"
-" kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child"
msgid ""
"You can use -I/-X and list of file or directory names like normal\n"
@@ -3267,11 +2311,6 @@ msgid ""
"needed files, so running the external diff program will actually be\n"
"pretty fast (at least faster than having to compare the entire tree).\n"
msgstr ""
-"Можно иÑпользовать ключи -I/-X и ÑпиÑок имен файлов или каталогов,\n"
-"как и в обычной команде :hg:`diff`. РаÑширение extdiff делает Ñнимки\n"
-"только нужных файлов, поÑтому запуÑк программы ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ довольно\n"
-"быÑтрым (по крайней мере быÑтрее, чем еÑли бы надо было Ñравнить вÑе\n"
-"дерево файлов из хранилища).\n"
#, python-format
msgid "making snapshot of %d files from rev %s\n"
@@ -3279,10 +2318,10 @@ msgstr "ÑоздаетÑÑ Ñнимок %d файлов Ð´Ð»Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¸ %s
#, python-format
msgid "making snapshot of %d files from working directory\n"
-msgstr "ÑоздаетÑÑ Ñнимок %d файлов из рабочего каталога\n"
+msgstr ""
msgid "cannot specify --rev and --change at the same time"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ одновременно --rev и --change"
+msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ одновременно --reb и --change"
msgid "cleaning up temp directory\n"
msgstr "очиÑтка временного каталога\n"
@@ -3306,9 +2345,9 @@ msgid ""
" will be passed before the names of the directories to compare."
msgstr ""
" Чтобы выбрать другую программу, иÑпользуйте параметр -p/--program.\n"
-" Программе будут переданы имена двух каталогов Ð´Ð»Ñ ÑравнениÑ.\n"
+" Программе будут переданы имена двух директорий Ð´Ð»Ñ ÑравнениÑ.\n"
" Чтобы передать дополнительные параметры, иÑпользуйте -o/--option.\n"
-" Они будут переданы перед именами Ñравниваемых каталогов."
+" Они будут переданы перед именами Ñравниваемых директорий."
msgid ""
" When two revision arguments are given, then changes are shown\n"
@@ -3321,13 +2360,13 @@ msgstr ""
" ревизиÑми. ЕÑли указана только одна ревизиÑ, то Ñта ревизиÑ\n"
" ÑравниваетÑÑ Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ¹ копией, а еÑли не указано ни одной\n"
" ревизии, Ñ€Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ ÑравниваетÑÑ Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкой ревизией\n"
-" из хранилища."
+" из репозиториÑ."
msgid "CMD"
msgstr "КОМÐÐДÐ"
msgid "comparison program to run"
-msgstr "запуÑÐºÐ°ÐµÐ¼Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° ÑравнениÑ"
+msgstr ""
msgid "OPT"
msgstr "ОПЦИЯ"
@@ -3346,7 +2385,7 @@ msgstr "hg extdiff [ПÐРÐМЕТР]... [ФÐЙЛ]..."
#, python-format
msgid "use %(path)s to diff repository (or selected files)"
-msgstr "иÑпользовать %(path)s Ð´Ð»Ñ ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð° (или выбранных файлов)"
+msgstr "иÑпользовать %(path)s Ð´Ð»Ñ ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ (или выбранных файлов)"
#, python-format
msgid ""
@@ -3360,88 +2399,16 @@ msgstr ""
msgid "hg %s [OPTION]... [FILE]..."
msgstr "hg %s [ПÐРÐМЕТР]... [ФÐЙЛ]..."
-msgid "http authentication with factotum"
-msgstr "http-Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ñ‡ÐµÑ€ÐµÐ· factotum"
-
-msgid ""
-"This extension allows the factotum(4) facility on Plan 9 from Bell Labs\n"
-"platforms to provide authentication information for HTTP access. "
-"Configuration\n"
-"entries specified in the auth section as well as authentication information\n"
-"provided in the repository URL are fully supported. If no prefix is "
-"specified,\n"
-"a value of \"*\" will be assumed."
-msgstr ""
-"Это раÑширение позволÑет ÑредÑтву factotum(4) из Plan 9 от Bell Labs\n"
-"пркдоÑтавлÑÑ‚ÑŒ информацию Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ð´Ð»Ñ Ð´Ð¾Ñтупа по HTTP.\n"
-"ПоддерживаютÑÑ Ð²Ñе параметры конфигурации из Ñекции ``auth`` и параметры\n"
-"из URL хранилища. ЕÑли Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð½Ðµ указан, предполагаетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ \"*\"."
-
-msgid "By default, keys are specified as::"
-msgstr "По умолчанию ключи задаютÑÑ Ñ‚Ð°Ðº::"
-
-msgid ""
-" proto=pass service=hg prefix=<prefix> user=<username> !password=<password>"
+msgid "pull, update and merge in one command"
msgstr ""
-" proto=pass service=hg prefix=<префикÑ> user=<имÑ_пользователÑ> !"
-"password=<пароль>"
-
-msgid ""
-"If the factotum extension is unable to read the required key, one will be\n"
-"requested interactively."
-msgstr ""
-"ЕÑли раÑширение factotum не может прочитать требуемый ключ, он будет "
-"запрошее\n"
-"у Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾."
-
-msgid ""
-"A configuration section is available to customize runtime behavior. By\n"
-"default, these entries are::"
-msgstr ""
-"СущеÑтвует ÑÐµÐºÑ†Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³Ð° Ð´Ð»Ñ Ð½Ð°Ñтройки Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ.\n"
-"По умолчанию наÑтройки таковы::"
-
-msgid ""
-" [factotum]\n"
-" executable = /bin/auth/factotum\n"
-" mountpoint = /mnt/factotum\n"
-" service = hg"
-msgstr ""
-" [factotum]\n"
-" executable = /bin/auth/factotum\n"
-" mountpoint = /mnt/factotum\n"
-" service = hg"
-
-msgid ""
-"The executable entry defines the full path to the factotum binary. The\n"
-"mountpoint entry defines the path to the factotum file service. Lastly, the\n"
-"service entry controls the service name used when reading keys."
-msgstr ""
-"Параметр ``executable`` задает полный путь к иÑполнÑемому файлу factotum.\n"
-"Параметр ``mountpoint`` определÑет путь к файловому ÑервиÑу factotum. "
-"Ðаконец,\n"
-"параметр ``service`` определÑет Ð¸Ð¼Ñ ÑервиÑа, иÑпользуемого при чтении ключей."
-
-msgid "factotum not interactive"
-msgstr "factotum не интерактивен"
-
-msgid "factotum not responding"
-msgstr "factotum не отвечает"
-
-msgid "pull, update and merge in one command (DEPRECATED)"
-msgstr "затÑнуть, обновитьÑÑ Ð¸ Ñлить одной командой (УСТÐРЕЛО)"
msgid "pull changes from a remote repository, merge new changes if needed."
msgstr ""
-"затÑгивает Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· отдалённого хранилища, проводит ÑлиÑние\n"
-"при необходимоÑти."
msgid ""
" This finds all changes from the repository at the specified path\n"
" or URL and adds them to the local repository."
msgstr ""
-" Ðаходит вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² хранилище по указанному пути или URL и\n"
-" добавлÑет их в локальное хранилище."
msgid ""
" If the pulled changes add a new branch head, the head is\n"
@@ -3449,19 +2416,13 @@ msgid ""
" Otherwise, the working directory is updated to include the new\n"
" changes."
msgstr ""
-" ЕÑли затÑнутые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñоздают новую голову, она автоматичеÑки\n"
-" ÑливаетÑÑ, и результат ÑлиÑÐ½Ð¸Ñ Ñ„Ð¸ÐºÑируетÑÑ. Ð’ противном Ñлучае,\n"
-" рабочий каталог обновлÑетÑÑ, чтобы отразить новые изменениÑ."
msgid ""
-" When a merge is needed, the working directory is first updated to\n"
-" the newly pulled changes. Local changes are then merged into the\n"
-" pulled changes. To switch the merge order, use --switch-parent."
+" When a merge occurs, the newly pulled changes are assumed to be\n"
+" \"authoritative\". The head of the new changes is used as the first\n"
+" parent, with local changes as the second. To switch the merge\n"
+" order, use --switch-parent."
msgstr ""
-" ЕÑли требуетÑÑ ÑлиÑние, рабочий каталог Ñначала обновлÑетÑÑ Ð½Ð°\n"
-" только что затÑнутые изменениÑ. ПоÑле Ñтого локальные изменениÑ\n"
-" ÑливаютÑÑ Ð² затÑнутые. Чтобы изменить Ñтот порÑдок, иÑпользуйте\n"
-" --switch-parent."
msgid " See :hg:`help dates` for a list of formats valid for -d/--date."
msgstr " СпиÑок возможных форматов Ð´Ð»Ñ --d/--dates Ñм. :hg:`help dates`"
@@ -3476,260 +2437,210 @@ msgstr ""
msgid ""
"working dir not at branch tip (use \"hg update\" to check out branch tip)"
msgstr ""
-"рабочий каталог не на оконечной ревизии (иÑпользуйте \"hg update\",\n"
-"чтобы извлечь оконечную ревизию)"
msgid "outstanding uncommitted merge"
-msgstr "иÑходÑщее незафикÑированное ÑлиÑние"
+msgstr ""
msgid "outstanding uncommitted changes"
-msgstr "иÑходÑщие незафикÑированные изменениÑ"
+msgstr ""
msgid "working directory is missing some files"
-msgstr "в рабочем каталоге отÑутÑтвуют некоторые файлы"
+msgstr ""
msgid ""
"multiple heads in this branch (use \"hg heads .\" and \"hg merge\" to merge)"
msgstr ""
-"на Ñтой ветке неÑколько голов (иÑпользуйте \"hg heads .\" и \"hg merge\"\n"
-"Ð´Ð»Ñ ÑлиÑниÑ"
#, python-format
msgid "pulling from %s\n"
-msgstr "затÑгиваем из %s\n"
+msgstr "подтÑÐ³Ð¸Ð²Ð°Ñ Ð¸Ð· %s\n"
msgid ""
-"other repository doesn't support revision lookup, so a rev cannot be "
+"Other repository doesn't support revision lookup, so a rev cannot be "
"specified."
msgstr ""
-"Отдалённое хранилище не поддерживает поиÑк ревизий, поÑтому Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ может "
-"быть задана."
#, python-format
msgid ""
"not merging with %d other new branch heads (use \"hg heads .\" and \"hg merge"
"\" to merge them)\n"
msgstr ""
-"не выполнÑетÑÑ ÑлиÑние Ñ %d новыми головными ревизиÑми (иÑпользуйте\n"
-"\"hg heads .\" и \"hg merge\" Ð´Ð»Ñ ÑлиÑниÑ)\n"
#, python-format
msgid "updating to %d:%s\n"
-msgstr "обновление на %d:%s\n"
+msgstr ""
#, python-format
msgid "merging with %d:%s\n"
-msgstr "ÑлиÑние Ñ %d:%s\n"
+msgstr ""
#, python-format
msgid "new changeset %d:%s merges remote changes with local\n"
msgstr ""
-"новый набор изменений %d:%s Ñливает отдалённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸\n"
msgid "a specific revision you would like to pull"
-msgstr "ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ, которую вы хотите затÑнуть"
+msgstr ""
msgid "edit commit message"
-msgstr "редактировать Ñообщение фикÑации"
+msgstr "редактировать комментарий к коммиту"
msgid "edit commit message (DEPRECATED)"
-msgstr "редактировать Ñообщение фикÑации (УСТÐРЕЛО)"
+msgstr ""
msgid "switch parents when merging"
-msgstr "поменÑÑ‚ÑŒ родителей при ÑлиÑнии"
+msgstr ""
msgid "hg fetch [SOURCE]"
-msgstr "hg fetch [ИСТОЧÐИК]"
+msgstr ""
msgid "commands to sign and verify changesets"
-msgstr "команды Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи и проверки наборов изменений"
+msgstr ""
msgid "error while verifying signature"
-msgstr "ошибка при проверки подпиÑи"
+msgstr ""
#, python-format
msgid "%s Bad signature from \"%s\"\n"
-msgstr "%s ÐŸÐ»Ð¾Ñ…Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ от \"%s\"\n"
+msgstr ""
#, python-format
msgid "%s Note: Signature has expired (signed by: \"%s\")\n"
-msgstr "%s Внимание: Срок дейÑÑ‚Ð²Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи иÑтек (автор подпиÑи: \"%s\")\n"
+msgstr ""
#, python-format
msgid "%s Note: This key has expired (signed by: \"%s\")\n"
-msgstr "%s Замечание: Ð’Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ñтого ключа иÑтекло (подпиÑано \"%s\")\n"
+msgstr ""
msgid "hg sigs"
-msgstr "hg sigs"
+msgstr ""
msgid "list signed changesets"
-msgstr "перечиÑлить подпиÑанные наборы изменений"
+msgstr ""
#, python-format
msgid "%s:%d node does not exist\n"
-msgstr "узел %s:%d не ÑущеÑтвует\n"
+msgstr ""
-msgid "hg sigcheck REV"
-msgstr "hg sigcheck РЕВИЗИЯ"
+msgid "hg sigcheck REVISION"
+msgstr ""
msgid "verify all the signatures there may be for a particular revision"
-msgstr "проверить вÑе возможные подпиÑи Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¹ ревизии"
+msgstr ""
#, python-format
-msgid "no valid signature for %s\n"
-msgstr "нет дейÑтвительной подпиÑи Ð´Ð»Ñ %s\n"
+msgid "No valid signature for %s\n"
+msgstr ""
msgid "make the signature local"
-msgstr "Ñделать подпиÑÑŒ локальной"
+msgstr ""
msgid "sign even if the sigfile is modified"
-msgstr "подпиÑать, даже еÑÑ‚ÑŒ файл подпиÑей (sigfile) изменен"
+msgstr ""
msgid "do not commit the sigfile after signing"
-msgstr "не фикÑировать файл подпиÑей (sigfile) поÑле подпиÑываниÑ"
+msgstr ""
msgid "ID"
-msgstr "ИД"
+msgstr "ID"
msgid "the key id to sign with"
-msgstr "идентификатор ключа, иÑпользуемого Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи"
+msgstr ""
msgid "TEXT"
msgstr "ТЕКСТ"
msgid "commit message"
-msgstr "Ñообщение фикÑации"
+msgstr ""
-msgid "hg sign [OPTION]... [REV]..."
-msgstr "hg sign [ПÐРÐМЕТР]... [РЕВИЗИЯ]..."
+msgid "hg sign [OPTION]... [REVISION]..."
+msgstr ""
msgid "add a signature for the current or given revision"
-msgstr "добавить подпиÑÑŒ Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ или заданной ревизии"
+msgstr ""
msgid ""
" If no revision is given, the parent of the working directory is used,\n"
" or tip if no revision is checked out."
msgstr ""
-" ЕÑли Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ указана, иÑпользуетÑÑ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾\n"
-" каталога, либо Ð¾ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ, еÑли рабочий каталог не извлечен."
msgid ""
" See :hg:`help dates` for a list of formats valid for -d/--date.\n"
" "
msgstr ""
-" О возможных форматах Ð´Ð»Ñ -d/--date Ñм. :hg:`help dates`\n"
-" "
msgid "uncommitted merge - please provide a specific revision"
-msgstr "незафикÑированное ÑлиÑние - пожалуйÑта, Ñвно укажите ревизию"
+msgstr ""
#, python-format
-msgid "signing %d:%s\n"
-msgstr "подпиÑываетÑÑ %d:%s\n"
+msgid "Signing %d:%s\n"
+msgstr ""
msgid "error while signing"
-msgstr "ошибка при подпиÑи"
+msgstr ""
msgid ""
"working copy of .hgsigs is changed (please commit .hgsigs manually or use --"
"force)"
msgstr ""
-"Ñ€Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° .hgsigs изменена (пожалуйÑта, зафикÑируйте .hgsigs "
-"вручную или иÑпользуйте --force"
msgid "unknown signature version"
-msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи"
+msgstr ""
msgid "command to view revision graphs from a shell"
-msgstr "команда Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра графа ревизий в командной Ñтроке"
+msgstr ""
msgid ""
"This extension adds a --graph option to the incoming, outgoing and log\n"
"commands. When this options is given, an ASCII representation of the\n"
"revision graph is also shown.\n"
msgstr ""
-"Эта команда добавлÑет опцию --graph к командам incoming, outgoing и\n"
-"log. ЕÑли Ñта Ð¾Ð¿Ñ†Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð°, то отображаетÑÑ Ð³Ñ€Ð°Ñ„ ревизий в ASCII-графике.\n"
-msgid "follow changeset history, or file history across copies and renames"
+#, python-format
+msgid "-G/--graph option is incompatible with --%s"
msgstr ""
-"Ñледовать иÑтории набора изменений или иÑтории файла при копированиÑÑ…/"
-"переименованиÑÑ…"
-msgid "only follow the first parent of merge changesets (DEPRECATED)"
-msgstr "Ñледовать только за первым родителем ревизий ÑлиÑÐ½Ð¸Ñ (УСТÐРЕЛО)"
+msgid "-G/--graph option is incompatible with --follow with file argument"
+msgstr ""
-msgid "show revisions matching date spec"
-msgstr "показывать ревизии Ñ Ð´Ð°Ñ‚Ð¾Ð¹, ÑоответÑтвующей данной"
+msgid "NUM"
+msgstr "КОЛ-ВО"
-msgid "show copied files"
-msgstr "показывать Ñкопированные файлы"
+msgid "limit number of changes displayed"
+msgstr "ограничивать количеÑтво отображаемых изменений"
-msgid "do case-insensitive search for a given text"
-msgstr "выполнить поиÑк данного текÑта, Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€ÑƒÑ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€"
+msgid "show patch"
+msgstr "показать патч"
msgid "show the specified revision or range"
msgstr "показать заданную ревизию или диапазон ревизий"
-msgid "include revisions where files were removed"
-msgstr "включить ревизии, в которых файлы были удалены"
-
-msgid "show only merges (DEPRECATED)"
-msgstr "показывать только ÑлиÑÐ½Ð¸Ñ (УСТÐРЕЛО)"
-
-msgid "USER"
-msgstr "ПОЛЬЗОВÐТЕЛЬ"
-
-msgid "revisions committed by user"
-msgstr "только ревизии данного пользователем"
-
-msgid "show only changesets within the given named branch (DEPRECATED)"
-msgstr "показывать только ревизии на данной именованной ветке (УСТÐРЕЛО)"
-
-msgid "BRANCH"
-msgstr "ВЕТКÐ"
-
-msgid "show changesets within the given named branch"
-msgstr "показывать наборы изменений на данной именованной ветке"
-
-msgid "do not display revision or any of its ancestors"
-msgstr "не показывать ревизию и вÑех ее предшеÑтвенников"
-
-msgid "show hidden changesets (DEPRECATED)"
-msgstr "показывать Ñкрытые наборы изменений (УСТÐРЕЛО)"
-
-msgid "[OPTION]... [FILE]"
-msgstr "[ПÐРÐМЕТР]... [ФÐЙЛ]"
+msgid "hg glog [OPTION]... [FILE]"
+msgstr ""
msgid "show revision history alongside an ASCII revision graph"
-msgstr "показать иÑторию ревизий Ñ€Ñдом Ñ ASCII-графом ревизий"
+msgstr ""
msgid ""
" Print a revision history alongside a revision graph drawn with\n"
" ASCII characters."
msgstr ""
-" Печатает иÑторию ревизий Ñ€Ñдом Ñ Ð³Ñ€Ð°Ñ„Ð¾Ð¼ ревизий, отображаемого\n"
-" Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ASCII-Ñимволов."
msgid ""
" Nodes printed as an @ character are parents of the working\n"
" directory.\n"
" "
msgstr ""
-" Вершины, печатаемые Ñимволом @, ÑвлÑÑŽÑ‚ÑÑ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñми рабочего\n"
-" каталога.\n"
-" "
+
+msgid "show the revision DAG"
+msgstr ""
msgid "hooks for integrating with the CIA.vc notification service"
-msgstr "хуки Ð´Ð»Ñ Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ð¸ Ñ ÑервиÑом уведомлений CIA.vc"
+msgstr ""
msgid ""
"This is meant to be run as a changegroup or incoming hook. To\n"
"configure it, set the following options in your hgrc::"
msgstr ""
-"ПодразумеваетÑÑ Ð¸Ñпользование Ð´Ð»Ñ Ñ…ÑƒÐºÐ¾Ð² changegroup или incoming.\n"
-"Чтобы наÑтроить уведомлениÑ, иÑпользуйте Ñледующие параметры в вашем\n"
-"конфиге Mercurial::"
msgid ""
" [cia]\n"
@@ -3755,28 +2666,6 @@ msgid ""
" # number of slashes to strip for url paths\n"
" #strip = 0"
msgstr ""
-" [cia]\n"
-" # ваше Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² CIA\n"
-" user = foo\n"
-" # название проекта в CIA\n"
-" project = foo\n"
-" # модуль (подпроект) (необÑзательный)\n"
-" #module = foo\n"
-" # Добавить diffstat к журнальному Ñообщению (необÑзательный)\n"
-" #diffstat = False\n"
-" # Шаблон Ð´Ð»Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»ÑŒÐ½Ñ‹Ñ… Ñообщений (необÑзательный)\n"
-" #template = {desc}\\n{baseurl}{webroot}/rev/{node}-- {diffstat}\n"
-" # ИÑпользуемый Ñтиль (необÑзательный)\n"
-" #style = foo\n"
-" # URL ÑервиÑа уведомлений CIA (необÑзательный)\n"
-" # Можно иÑпользовать URL вида mailto: Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ по почте, например\n"
-" # mailto:cia@cia.vc\n"
-" # ОбÑзательно задайте при Ñтом email.from.\n"
-" #url = http://cia.vc/\n"
-" # напечатать Ñообщение вмеÑто его отправки (необÑзательный)\n"
-" #test = False\n"
-" # количеÑтво удалÑемых Ñлешей из путей в форме url\n"
-" #strip = 0"
msgid ""
" [hooks]\n"
@@ -3784,42 +2673,32 @@ msgid ""
" changegroup.cia = python:hgcia.hook\n"
" #incoming.cia = python:hgcia.hook"
msgstr ""
-" [hooks]\n"
-" # один из Ñтих:\n"
-" changegroup.cia = python:hgcia.hook\n"
-" #incoming.cia = python:hgcia.hook"
msgid ""
" [web]\n"
" # If you want hyperlinks (optional)\n"
" baseurl = http://server/path/to/repo\n"
msgstr ""
-" [web]\n"
-" # ЕÑли вам нужны гиперÑÑылки (необÑзательный)\n"
-" baseurl = http://server/path/to/repo\n"
#, python-format
msgid "%s returned an error: %s"
-msgstr "%s вернул ошибку: %s"
+msgstr ""
#, python-format
msgid "hgcia: sending update to %s\n"
-msgstr "hgcia: отправлÑем обновление %s\n"
+msgstr ""
msgid "email.from must be defined when sending by email"
-msgstr "поле 'от' (email.from) должно быть заполнено при отправке email"
+msgstr ""
msgid "browse the repository in a graphical way"
-msgstr "графичеÑкий обозреватель хранилища"
+msgstr ""
msgid ""
"The hgk extension allows browsing the history of a repository in a\n"
"graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is not\n"
"distributed with Mercurial.)"
msgstr ""
-"РаÑширение hgk позволÑет проÑматривать иÑторию хранилища Ñ Ð¸Ñпользованием\n"
-"графичеÑкого интерфейÑа. Оно требует Tcl/Tk верÑии 8.4 или новее (Tcl/Tk\n"
-"не входит в диÑтрибутив Mercurial."
msgid ""
"hgk consists of two parts: a Tcl script that does the displaying and\n"
@@ -3828,564 +2707,149 @@ msgid ""
"the contrib directory, and the extension is shipped in the hgext\n"
"repository, and needs to be enabled."
msgstr ""
-"hgk ÑоÑтоит из двух чаÑтей: Ñкрипта на Tcl, который оÑущеÑтвлÑет\n"
-"отображение и Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸, и раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Mercurial c именем\n"
-"hgk.py, предоÑтавлÑющего хуки, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ которых hgk получает данные.\n"
-"hgk находитÑÑ Ð² папке contrib, раÑширение поÑтавлÑетÑÑ Ð² хранилище\n"
-"hgext, и его нужно включить в конфиге."
msgid ""
"The :hg:`view` command will launch the hgk Tcl script. For this command\n"
"to work, hgk must be in your search path. Alternately, you can specify\n"
"the path to hgk in your configuration file::"
msgstr ""
-"Команда :hg:`view` запуÑтит Tcl-Ñкрипт hgk. Чтобы команда заработала,\n"
-"hgk должен находитÑÑ Ð¿Ð¾ извеÑтным путÑм (PATH). Другой вариант - задать\n"
-"путь к hgk в вашем файле конфигурации::"
msgid ""
" [hgk]\n"
" path=/location/of/hgk"
msgstr ""
-" [hgk]\n"
-" path=/путь/к/hgk"
msgid ""
"hgk can make use of the extdiff extension to visualize revisions.\n"
"Assuming you had already configured extdiff vdiff command, just add::"
msgstr ""
-"hgk может иÑпользовать раÑширение extdiff Ð´Ð»Ñ Ð²Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ ревизий.\n"
-"ПредполагаÑ, что вы уже наÑтроили команду extdiff vdiff, проÑто добавьте::"
msgid ""
" [hgk]\n"
" vdiff=vdiff"
msgstr ""
-" [hgk]\n"
-" vdiff=vdiff"
msgid ""
"Revisions context menu will now display additional entries to fire\n"
"vdiff on hovered and selected revisions.\n"
msgstr ""
-"Ð’ контекÑтное меню ревизий теперь будут включены дополнительные пункты\n"
-"Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка vdiff Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… или ревизий или ревизий под курÑором.\n"
msgid "diff trees from two commits"
-msgstr "Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð´ÐµÑ€ÐµÐ²ÑŒÐµÐ² при двух фикÑациÑÑ…"
+msgstr ""
msgid "output common ancestor information"
-msgstr "вывод информации об общем предке"
+msgstr ""
msgid "cat a specific revision"
-msgstr "вывеÑти указанную ревизию"
+msgstr ""
msgid "cat-file: type or revision not supplied\n"
-msgstr "cat-file: не задан тип или ревизиÑ\n"
+msgstr ""
-# BUG
msgid "aborting hg cat-file only understands commits\n"
-msgstr "прервано: hg cat-file понимает только фикÑации (commits)\n"
+msgstr ""
msgid "parse given revisions"
-msgstr "разбор заданных ревизий"
+msgstr ""
msgid "print revisions"
-msgstr "напечатать ревизии"
+msgstr ""
msgid "print extension options"
-msgstr "напечатать параметры раÑширениÑ"
+msgstr ""
msgid "start interactive history viewer"
-msgstr "запуÑтить интерактивный обозреватель иÑтории"
-
-msgid "NUM"
-msgstr "КОЛ-ВО"
-
-msgid "limit number of changes displayed"
-msgstr "ограничивать количеÑтво отображаемых изменений"
+msgstr ""
msgid "hg view [-l LIMIT] [REVRANGE]"
-msgstr "hg view [-l ПРЕДЕЛ] [ДИÐПÐЗОÐ_РЕВИЗИЙ]"
+msgstr ""
msgid "generate patch"
-msgstr "generate patch"
+msgstr ""
msgid "recursive"
-msgstr "recursive"
+msgstr ""
msgid "pretty"
-msgstr "pretty"
+msgstr ""
msgid "stdin"
-msgstr "stdin"
+msgstr ""
msgid "detect copies"
-msgstr "detect copies"
+msgstr ""
msgid "search"
-msgstr "search"
+msgstr ""
msgid "hg git-diff-tree [OPTION]... NODE1 NODE2 [FILE]..."
-msgstr "hg git-diff-tree [ПÐРÐМЕТР]... УЗЕЛ1 УЗЕЛ2 [ФÐЙЛ]..."
+msgstr ""
msgid "hg debug-cat-file [OPTION]... TYPE FILE"
-msgstr "hg debug-cat-file [ПÐРÐМЕТР]... ТИП ФÐЙЛ"
+msgstr ""
msgid "hg debug-config"
-msgstr "hg debug-config"
+msgstr ""
msgid "hg debug-merge-base REV REV"
-msgstr "hg debug-merge-base РЕВИЗИЯ РЕВИЗИЯ"
+msgstr ""
-#. i18n: bisect changeset status
msgid "ignored"
msgstr "игнорируемые"
msgid "hg debug-rev-parse REV"
-msgstr "hg debug-rev-parse РЕВИЗИЯ"
+msgstr ""
msgid "header"
-msgstr "заголовок"
+msgstr ""
msgid "topo-order"
-msgstr "топологичеÑкий порÑдок"
+msgstr ""
msgid "parents"
-msgstr "родители"
+msgstr ""
msgid "max-count"
-msgstr "макÑимальное количеÑтво"
+msgstr ""
msgid "hg debug-rev-list [OPTION]... REV..."
-msgstr "hg debug-rev-list [ПÐРÐМЕТР]... РЕВИЗИЯ..."
+msgstr ""
msgid "syntax highlighting for hgweb (requires Pygments)"
-msgstr "подÑветка ÑинтакÑиÑа Ð´Ð»Ñ hgweb (требует Pygments)"
+msgstr ""
msgid ""
"It depends on the Pygments syntax highlighting library:\n"
"http://pygments.org/"
msgstr ""
-"ЗавиÑит от библиотеки подÑветки ÑинтакÑиÑа Pygments:\n"
-"http://pygments.org/"
msgid "There is a single configuration option::"
-msgstr "Поддерживает единÑтвенный параметр конфигурации::"
+msgstr ""
msgid ""
" [web]\n"
" pygments_style = <style>"
msgstr ""
-" [web]\n"
-" pygments_style = <Ñтиль>"
msgid "The default is 'colorful'.\n"
-msgstr "По умолчанию 'colorful'.\n"
-
-msgid "interactive history editing"
-msgstr "интерактивное редактирование иÑтории"
-
-msgid ""
-"With this extension installed, Mercurial gains one new command: histedit. "
-"Usage\n"
-"is as follows, assuming the following history::"
-msgstr ""
-"Это раÑширение добавлÑет в Mercurial одну команду: histedit.\n"
-"Ðиже приводитÑÑ Ð¿Ñ€Ð¸Ð¼ÐµÑ€ иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ñледующей иÑтории:"
-
-msgid ""
-" @ 3[tip] 7c2fd3b9020c 2009-04-27 18:04 -0500 durin42\n"
-" | Add delta\n"
-" |\n"
-" o 2 030b686bedc4 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 1 c561b4e977df 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-" @ 3[tip] 7c2fd3b9020c 2009-04-27 18:04 -0500 durin42\n"
-" | Add delta\n"
-" |\n"
-" o 2 030b686bedc4 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 1 c561b4e977df 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-
-msgid ""
-"If you were to run ``hg histedit c561b4e977df``, you would see the "
-"following\n"
-"file open in your editor::"
-msgstr ""
-"ЕÑли вы выполните ``hg histedit c561b4e977df``, вы увидите Ñледующий файл,"
-"открытый в вашем редакторе::"
-
-msgid ""
-" pick c561b4e977df Add beta\n"
-" pick 030b686bedc4 Add gamma\n"
-" pick 7c2fd3b9020c Add delta"
-msgstr ""
-" pick c561b4e977df Add beta\n"
-" pick 030b686bedc4 Add gamma\n"
-" pick 7c2fd3b9020c Add delta"
-
-# this output is not localized yet
-msgid ""
-" # Edit history between 633536316234 and 7c2fd3b9020c\n"
-" #\n"
-" # Commands:\n"
-" # p, pick = use commit\n"
-" # e, edit = use commit, but stop for amending\n"
-" # f, fold = use commit, but fold into previous commit\n"
-" # d, drop = remove commit from history\n"
-" # m, mess = edit message without changing commit content\n"
-" #"
-msgstr ""
-" # Edit history between 633536316234 and 7c2fd3b9020c\n"
-" #\n"
-" # Commands:\n"
-" # p, pick = use commit\n"
-" # e, edit = use commit, but stop for amending\n"
-" # f, fold = use commit, but fold into previous commit\n"
-" # d, drop = remove commit from history\n"
-" # m, mess = edit message without changing commit content\n"
-" #"
-
-msgid ""
-"In this file, lines beginning with ``#`` are ignored. You must specify a "
-"rule\n"
-"for each revision in your history. For example, if you had meant to add "
-"gamma\n"
-"before beta, and then wanted to add delta in the same revision as beta, you\n"
-"would reorganize the file to look like this::"
-msgstr ""
-"Ð’ Ñтом файле Ñтроки, начинающиеÑÑ Ñ ``#``, игнорируютÑÑ. Ð’Ñ‹ должны задать\n"
-"правило Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ревизии в вашей иÑтории. Ðапример, еÑли вы хотели\n"
-"добавить gamma перед beta, а потом хотели добавить delta в той же ревизии,\n"
-"что и beta, вам Ñледует отредактировать файл Ñледующим образом::"
-
-msgid ""
-" pick 030b686bedc4 Add gamma\n"
-" pick c561b4e977df Add beta\n"
-" fold 7c2fd3b9020c Add delta"
-msgstr ""
-" pick 030b686bedc4 Add gamma\n"
-" pick c561b4e977df Add beta\n"
-" fold 7c2fd3b9020c Add delta"
-
-msgid ""
-"At which point you close the editor and ``histedit`` starts working. When "
-"you\n"
-"specify a ``fold`` operation, ``histedit`` will open an editor when it "
-"folds\n"
-"those revisions together, offering you a chance to clean up the commit "
-"message::"
-msgstr ""
-"ПоÑле того, как вы закроете редактор, ``histedit`` начнет работать.\n"
-"Когда вы указываете операцию ``fold`` (ÑовмеÑтить), ``histedit`` откроет\n"
-"редактор при Ñовмещении Ñтих ревизий вмеÑте, Ð¿Ñ€ÐµÐ´Ð»Ð°Ð³Ð°Ñ Ð²Ð°Ð¼ подчиÑтить\n"
-"Ñообщение фикÑации::"
-
-msgid ""
-" Add beta\n"
-" ***\n"
-" Add delta"
-msgstr ""
-" Add beta\n"
-" ***\n"
-" Add delta"
-
-msgid ""
-"Edit the commit message to your liking, then close the editor. For\n"
-"this example, let's assume that the commit message was changed to\n"
-"``Add beta and delta.`` After histedit has run and had a chance to\n"
-"remove any old or temporary revisions it needed, the history looks\n"
-"like this::"
-msgstr ""
-"Ðапишите подходÑщее Ñообщение фикÑации и закройте редактор. ЗдеÑÑŒ\n"
-"предположим, что Ñообщение фикÑации было заменено на ``Add beta and "
-"delta``.\n"
-"ПоÑле того, как histedit завершилÑÑ Ð¸ удалил вÑе Ñтарые и промежуточные\n"
-"ревизии, иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ выглÑдеть так::"
-
-msgid ""
-" @ 2[tip] 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-" @ 2[tip] 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-
-msgid ""
-"Note that ``histedit`` does *not* remove any revisions (even its own "
-"temporary\n"
-"ones) until after it has completed all the editing operations, so it will\n"
-"probably perform several strip operations when it's done. For the above "
-"example,\n"
-"it had to run strip twice. Strip can be slow depending on a variety of "
-"factors,\n"
-"so you might need to be a little patient. You can choose to keep the "
-"original\n"
-"revisions by passing the ``--keep`` flag."
-msgstr ""
-"Обратите внимание, что ``histedit`` *не* удалÑет никакие ревизии (даже\n"
-"промежуточные временные ревизии) до того, как завершит вÑе операции\n"
-"редактированиÑ, поÑтому он, возможно, будет проводить неÑколько операций\n"
-"strip поÑле завершениÑ. Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ð¾Ð³Ð¾ примера, strip выполнитÑÑ Ð´Ð²Ð°Ð¶Ð´Ñ‹.\n"
-"Strip может выполнÑÑ‚ÑŒÑÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ в завиÑимоÑти от многих факторов, поÑтому\n"
-"вам, возможно, потребуетÑÑ Ð½ÐµÐ¼Ð¾Ð³Ð¾ подождать. Ð’Ñ‹ также можете не удалÑÑ‚ÑŒ\n"
-"ревизии Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ флага ``--keep``."
-
-# spell также так же
-msgid ""
-"The ``edit`` operation will drop you back to a command prompt,\n"
-"allowing you to edit files freely, or even use ``hg record`` to commit\n"
-"some changes as a separate commit. When you're done, any remaining\n"
-"uncommitted changes will be committed as well. When done, run ``hg\n"
-"histedit --continue`` to finish this step. You'll be prompted for a\n"
-"new commit message, but the default commit message will be the\n"
-"original message for the ``edit`` ed revision."
-msgstr ""
-"ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ ``edit`` вернет Ð²Ð°Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾ в командную Ñтроку, позволÑÑ\n"
-"произвольно редактировать файлы и даже иÑпользовать ``hg record``,\n"
-"чтобы зафикÑировать некоторые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ð¾Ð¹ ревизией. ПоÑле того,\n"
-"как вы закончите, вÑе незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ так же "
-"зафикÑированы.\n"
-"ПоÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑƒÑтите ``hg histedit --continue`` чтобы закончить Ñтот\n"
-"шаг. Вам будет предложено ввеÑти новое Ñообщение фикÑации, при Ñтом\n"
-"по умолчанию Ñообщение фикÑации беретÑÑ Ð¸Ð· редактируемой ревизии."
-
-msgid ""
-"The ``message`` operation will give you a chance to revise a commit\n"
-"message without changing the contents. It's a shortcut for doing\n"
-"``edit`` immediately followed by `hg histedit --continue``."
-msgstr ""
-"ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ ``message`` позволит вам иÑправить Ñообщение фикÑации без\n"
-"Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñодержимого ревизии. Это Ñокращенный вариант выполнениÑ\n"
-"операции ``edit`` Ñ Ð¿Ð¾Ñледующим `hg histedit --continue``."
-
-msgid ""
-"If ``histedit`` encounters a conflict when moving a revision (while\n"
-"handling ``pick`` or ``fold``), it'll stop in a similar manner to\n"
-"``edit`` with the difference that it won't prompt you for a commit\n"
-"message when done. If you decide at this point that you don't like how\n"
-"much work it will be to rearrange history, or that you made a mistake,\n"
-"you can use ``hg histedit --abort`` to abandon the new changes you\n"
-"have made and return to the state before you attempted to edit your\n"
-"history."
-msgstr ""
-"ЕÑли ``histedit`` обнаруживает конфликт при перемещении ревизии (во\n"
-"Ð²Ñ€ÐµÐ¼Ñ ``pick`` или ``fold``), он оÑтановитÑÑ, как при ``edit``, за\n"
-"иÑключением того, что вам не будет предложено ввеÑти Ñообщение фикÑации\n"
-"по завершении. ЕÑли в Ñтот момент вы решите, что вам не нравитÑÑ Ñ‚Ð¾Ñ‚\n"
-"объем работы, который потребуетÑÑ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´ÐµÐ»Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð¸Ñтории, или вы\n"
-"допуÑтили ошибку, можно иÑпользовать ``hg histedit --abort``, чтобы\n"
-"отброÑить новые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ вернутьÑÑ Ðº ÑоÑтоÑнию до редактированиÑ\n"
-"иÑтории."
-
-msgid ""
-"If we clone the example repository above and add three more changes, such "
-"that\n"
-"we have the following history::"
-msgstr ""
-"ЕÑли мы клонируем приведенное выше хранилище и добавим еще три изменениÑ,\n"
-"получим такую иÑторию::"
-
-msgid ""
-" @ 6[tip] 038383181893 2009-04-27 18:04 -0500 stefan\n"
-" | Add theta\n"
-" |\n"
-" o 5 140988835471 2009-04-27 18:04 -0500 stefan\n"
-" | Add eta\n"
-" |\n"
-" o 4 122930637314 2009-04-27 18:04 -0500 stefan\n"
-" | Add zeta\n"
-" |\n"
-" o 3 836302820282 2009-04-27 18:04 -0500 stefan\n"
-" | Add epsilon\n"
-" |\n"
-" o 2 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-" @ 6[tip] 038383181893 2009-04-27 18:04 -0500 stefan\n"
-" | Add theta\n"
-" |\n"
-" o 5 140988835471 2009-04-27 18:04 -0500 stefan\n"
-" | Add eta\n"
-" |\n"
-" o 4 122930637314 2009-04-27 18:04 -0500 stefan\n"
-" | Add zeta\n"
-" |\n"
-" o 3 836302820282 2009-04-27 18:04 -0500 stefan\n"
-" | Add epsilon\n"
-" |\n"
-" o 2 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-
-msgid ""
-"If you run ``hg histedit --outgoing`` on the clone then it is the same\n"
-"as running ``hg histedit 836302820282``. If you need plan to push to a\n"
-"repository that Mercurial does not detect to be related to the source\n"
-"repo, you can add a ``--force`` option.\n"
-msgstr ""
-"Выполнение ``hg histedit --outgoing`` на клоне Ñквивалентно выполнению\n"
-"``hg histedit 836302820282``. ЕÑли вы хотите протолкнуть Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²\n"
-"хранилище, которое Mercurial не опознает как ÑвÑзанное Ñ Ð¸Ñточником,\n"
-"можно иÑпользовать параметр ``--force``.\n"
-
-msgid "cannot edit history that would orphan nodes"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ иÑторию, еÑли Ñто оÑтавлÑет виÑÑчие узлы"
-
-msgid "can't edit history with merges"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ иÑторию Ñо ÑлиÑниÑми"
-
-#, python-format
-msgid "%s: empty changeset"
-msgstr "%s: пуÑтой набор изменений"
-
-msgid "Fix up the change and run hg histedit --continue"
-msgstr "ИÑправьте изменение и запуÑтите hg histedit --continue"
-
-msgid ""
-"Make changes as needed, you may commit or record as needed now.\n"
-"When you are finished, run hg histedit --continue to resume."
-msgstr ""
-"ВнеÑите Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ необходимоÑти, при Ñтом, еÑли хотите, можно\n"
-"выполнÑÑ‚ÑŒ commit или record. Когда закончите, выполните\n"
-"hg histedit --continue Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ."
-
-msgid "Read history edits from the specified file."
-msgstr "Читать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ñтории из указанного файла."
-
-msgid "continue an edit already in progress"
-msgstr "продолжить текущее изменение иÑтории"
-
-msgid "don't strip old nodes after edit is complete"
-msgstr "не вырезать Ñтарые узлы поÑле завершениÑ"
-
-msgid "abort an edit in progress"
-msgstr "отменить текущее редактирование"
-
-msgid "changesets not found in destination"
-msgstr "наборы изменений, отÑутÑтвующие в другом хранилище"
-
-msgid "force outgoing even for unrelated repositories"
-msgstr "иÑпользовать outgoing даже Ð´Ð»Ñ Ð½ÐµÑвÑзанных хранилищах"
-
-msgid "first revision to be edited"
-msgstr "Ð¿ÐµÑ€Ð²Ð°Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÐµÐ¼Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ"
-
-msgid "[PARENT]"
-msgstr "[РОДИТЕЛЬ]"
-
-msgid ""
-"interactively edit changeset history\n"
-" "
-msgstr "интерактивно редактировать иÑторию ревизий "
-
-msgid "source has mq patches applied"
-msgstr "иÑточник имеет наложенные патчи mq"
-
-msgid "only one repo argument allowed with --outgoing"
-msgstr "допуÑкаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ одно хранилище Ñ --outgoing"
-
-#, python-format
-msgid "comparing with %s\n"
-msgstr "Ñравниваем Ñ %s\n"
-
-msgid "--force only allowed with --outgoing"
-msgstr "--force допуÑтимо только Ñ --outgoing"
-
-msgid "no arguments allowed with --continue"
-msgstr "другие аргументы не допуÑкаютÑÑ Ñ --continue"
-
-msgid "no arguments allowed with --abort"
-msgstr "другие аргументы не допуÑкаютÑÑ Ñ --abort"
-
-msgid "history edit already in progress, try --continue or --abort"
msgstr ""
-"редактирование иÑтории уже выполнÑетÑÑ, иÑпользуйте --continue или --abort"
-
-msgid "histedit requires exactly one parent revision"
-msgstr "histedit требует ровно одну родительÑкую ревизию"
-
-msgid "histedit: Should update metadata for the following changes:\n"
-msgstr "histedit: Ðеобходимо обновить метаданные Ð´Ð»Ñ Ñледующих изменений:\n"
-
-#, python-format
-msgid "histedit: %s to %s\n"
-msgstr "histedit: %s to %s\n"
-
-#, python-format
-msgid "histedit: moving bookmarks %s\n"
-msgstr "histedit: перемещаютÑÑ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ¸ %s\n"
-
-msgid "must specify a rule for each changeset once"
-msgstr "Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ревизии требуетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ одно правило"
-
-#, python-format
-msgid "malformed line \"%s\""
-msgstr "неверный формат Ñтроки \"%s\""
-
-msgid "may not use changesets other than the ones listed"
-msgstr "можно иÑпользовать только перечиÑленные наборы изменений"
-
-#, python-format
-msgid "unknown changeset %s listed"
-msgstr "перечиÑлен неизвеÑтный набор изменений %s"
-
-#, python-format
-msgid "unknown action \"%s\""
-msgstr "неизвеÑтное дейÑтвие \"%s\""
msgid "accelerate status report using Linux's inotify service"
-msgstr "уÑкоренные ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾Ð± изменениÑÑ… Ñ Ð¸Ñпользованием Linux inotify"
+msgstr ""
msgid "start an inotify server for this repository"
-msgstr "запуÑтить Ñервер inotify Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ хранилища"
+msgstr ""
msgid "debugging information for inotify extension"
-msgstr "Ð¾Ñ‚Ð»Ð°Ð´Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ inotify"
+msgstr ""
msgid ""
" Prints the list of directories being watched by the inotify server.\n"
" "
msgstr ""
-" Печатает ÑпиÑок каталогов, отÑлеживаемых Ñервером inotify.\n"
-" "
msgid "directories being watched:\n"
-msgstr "отÑлеживаемые каталоги:\n"
+msgstr ""
msgid "run server in background"
msgstr "запуÑтить Ñервер в фоновом режиме"
@@ -4394,170 +2858,156 @@ msgid "used internally by daemon mode"
msgstr "иÑпользуетÑÑ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ¹ реализацией в режиме демона"
msgid "minutes to sit idle before exiting"
-msgstr "количеÑтво минут неактивноÑти перед выходом"
+msgstr ""
msgid "name of file to write process ID to"
msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи ID процеÑÑа"
msgid "hg inserve [OPTION]..."
-msgstr "hg inserve [ПÐРÐМЕТР]..."
+msgstr ""
msgid "inotify-client: found dead inotify server socket; removing it\n"
msgstr ""
-"inotify-client: обнаружен мертвый Ñокет inotify-Ñервера; закрываем его\n"
#, python-format
msgid "inotify-client: could not start inotify server: %s\n"
-msgstr "inotify-client: не удаетÑÑ Ð·Ð°Ð¿ÑƒÑтить Ñервер inotify: %s\n"
+msgstr ""
#, python-format
msgid "inotify-client: could not talk to new inotify server: %s\n"
msgstr ""
-"inotify-client: не удаетÑÑ Ð½Ð°Ð»Ð°Ð´Ð¸Ñ‚ÑŒ общение Ñ Ð½Ð¾Ð²Ñ‹Ð¼ Ñервером inotify: %s\n"
#, python-format
msgid "inotify-client: failed to contact inotify server: %s\n"
-msgstr "inotify-client: не удаетÑÑ ÑоединитьÑÑ Ñ Ñервером inotify: %s\n"
+msgstr ""
msgid "inotify-client: received empty answer from inotify server"
-msgstr "inotify-client: получен пуÑтой ответ от Ñервера inotify"
+msgstr ""
#, python-format
msgid "(inotify: received response from incompatible server version %d)\n"
-msgstr "(inotify: получен ответ от Ñервера неÑовмеÑтимой верÑии %d)\n"
+msgstr ""
#, python-format
msgid "(inotify: received '%s' response when expecting '%s')\n"
-msgstr "(inotify: получен ответ '%s', ожидалÑÑ '%s')\n"
+msgstr ""
msgid "this system does not seem to support inotify"
-msgstr "ваша ÑиÑтема, похоже, не поддерживает inotify"
+msgstr ""
#, python-format
msgid "*** the current per-user limit on the number of inotify watches is %s\n"
msgstr ""
-"*** текущее предельное количеÑтво наблюдений inotify на одного Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ "
-"- %s\n"
msgid "*** this limit is too low to watch every directory in this repository\n"
msgstr ""
-"*** Ñтот предел Ñлишком мал чтобы наблюдать за вÑеми каталогами Ñтого "
-"хранилища\n"
msgid "*** counting directories: "
-msgstr "*** подÑчет каталогов: "
+msgstr ""
#, python-format
msgid "found %d\n"
-msgstr "найдено %d\n"
+msgstr ""
#, python-format
msgid "*** to raise the limit from %d to %d (run as root):\n"
-msgstr "*** чтобы поднÑÑ‚ÑŒ предел Ñ %d до %d (Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ root):)\n"
+msgstr ""
#, python-format
msgid "*** echo %d > %s\n"
-msgstr "*** echo %d > %s\n"
+msgstr ""
#, python-format
msgid "cannot watch %s until inotify watch limit is raised"
-msgstr "невозможно отÑлеживать %s пока не будет повышен предел наблюдений"
+msgstr ""
#, python-format
msgid "inotify service not available: %s"
-msgstr "Ñлужба inotify недоÑтупна: %s"
+msgstr ""
#, python-format
msgid "watching %r\n"
-msgstr "наблюдаем за %r\n"
+msgstr ""
#, python-format
msgid "watching directories under %r\n"
-msgstr "наблюдаем за каталогами в %r\n"
+msgstr ""
#, python-format
msgid "%s event: created %s\n"
-msgstr "%s Ñобытие: Ñоздан %s\n"
+msgstr ""
#, python-format
msgid "%s event: deleted %s\n"
-msgstr "%s Ñобытие: %s удален\n"
+msgstr ""
#, python-format
msgid "%s event: modified %s\n"
-msgstr "%s Ñобытие: %s изменен\n"
+msgstr ""
#, python-format
msgid "filesystem containing %s was unmounted\n"
-msgstr "Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема, ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ñ‰Ð°Ñ %s, была отмонтирована\n"
+msgstr ""
#, python-format
msgid "%s readable: %d bytes\n"
-msgstr "%s доÑтупно Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: %d байт\n"
+msgstr ""
#, python-format
msgid "%s below threshold - unhooking\n"
-msgstr "%s доÑтигнут предел - отцеплÑем хук\n"
+msgstr ""
#, python-format
msgid "%s reading %d events\n"
-msgstr "%s читает %d Ñобытий\n"
+msgstr ""
#, python-format
msgid "%s hooking back up with %d bytes readable\n"
-msgstr "%s приÑоединÑем хук заново, можно прочитать %d байт\n"
+msgstr ""
msgid "finished setup\n"
-msgstr "уÑтановка завершена\n"
+msgstr ""
#, python-format
msgid "status: %r %s -> %s\n"
-msgstr "ÑоÑтоÑние: %r %s -> %s\n"
+msgstr ""
msgid "rescanning due to .hgignore change\n"
-msgstr "повторное Ñканирование из-за Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ .hgignore\n"
+msgstr ""
msgid "cannot start: socket is already bound"
-msgstr "не удаетÑÑ Ð·Ð°Ð¿ÑƒÑтитьÑÑ: Ñокет уже привÑзан"
+msgstr ""
msgid ""
"cannot start: tried linking .hg/inotify.sock to a temporary socket but .hg/"
"inotify.sock already exists"
msgstr ""
-"не удаетÑÑ Ð·Ð°Ð¿ÑƒÑтитьÑÑ: пыталиÑÑŒ ÑвÑзать .hg/inotify.sock Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ð¼ "
-"Ñокетом,\n"
-"но .hg/inotify.sock уже ÑущеÑтвует"
#, python-format
msgid "answering query for %r\n"
-msgstr "отвечаем на Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð´Ð»Ñ %r\n"
+msgstr ""
#, python-format
msgid "received query from incompatible client version %d\n"
-msgstr "получен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¾Ñ‚ клиента неÑовмеÑтимой верÑии %d\n"
+msgstr ""
#, python-format
msgid "unrecognized query type: %s\n"
-msgstr "неизвеÑтный тип запроÑа: %s\n"
+msgstr ""
msgid "expand expressions into changelog and summaries"
-msgstr "раÑкрывает Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² журнале изменений и Ñводках"
+msgstr ""
msgid ""
"This extension allows the use of a special syntax in summaries, which\n"
"will be automatically expanded into links or any other arbitrary\n"
"expression, much like InterWiki does."
msgstr ""
-"Это раÑширение позволÑет иÑпользовать в Ñводках Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñобого вида,\n"
-"которые автоматичеÑки раÑкрываютÑÑ Ð² ÑÑылки или любое другое произвольное\n"
-"выражение, как Ñто делаетÑÑ Ð² InterWiki."
msgid ""
"A few example patterns (link to bug tracking, etc.) that may be used\n"
"in your hgrc::"
msgstr ""
-"Примеры шаблонов (ÑÑылка на баг-трекер и Ñ‚.п.), которые могут быть\n"
-"иÑпользованы в вашем hgrc::"
msgid ""
" [interhg]\n"
@@ -4566,56 +3016,41 @@ msgid ""
"i\n"
" boldify = s!(^|\\s)#(\\d+)\\b! <b>#\\2</b>!\n"
msgstr ""
-" [interhg]\n"
-" issues = s!issue(\\d+)!<a href=\"http://bts/issue\\1\">issue\\1</a>!\n"
-" bugzilla = s!((?:bug|b=|(?=#?\\d{4,}))(?:\\s*#?)(\\d+))!<a..=\\2\">\\1</a>!"
-"i\n"
-" boldify = s!(^|\\s)#(\\d+)\\b! <b>#\\2</b>!\n"
#, python-format
msgid "interhg: invalid pattern for %s: %s\n"
-msgstr "interhg: неверный шаблон Ð´Ð»Ñ %s: %s\n"
+msgstr ""
#, python-format
msgid "interhg: invalid regexp for %s: %s\n"
-msgstr "interhg: неверное регулÑрное выражение Ð´Ð»Ñ %s: %s\n"
+msgstr ""
msgid "expand keywords in tracked files"
-msgstr "выполнÑÑ‚ÑŒ подÑтановку ключевых Ñлов в отÑлеживаемых файлах"
+msgstr ""
msgid ""
"This extension expands RCS/CVS-like or self-customized $Keywords$ in\n"
"tracked text files selected by your configuration."
msgstr ""
-"Это раÑширение выполнÑет подÑтановку RCS/CVS-подобных или ÑамоÑтоÑтельно\n"
-"определенных $КлючевыхСлов$ в выбранных вами отÑлеживаемых файлах."
msgid ""
"Keywords are only expanded in local repositories and not stored in the\n"
"change history. The mechanism can be regarded as a convenience for the\n"
"current user or for archive distribution."
msgstr ""
-"Ключевые Ñлова подÑтавлÑÑŽÑ‚ÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в локальных хранилищах и не хранÑÑ‚ÑÑ\n"
-"в иÑтории изменений. Такой механизм может иÑпользоватьÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ\n"
-"удобÑтва работы текущего Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ при архивации диÑтрибутива."
msgid ""
"Keywords expand to the changeset data pertaining to the latest change\n"
"relative to the working directory parent of each file."
msgstr ""
-"Ключевые Ñлова подÑтавлÑÑŽÑ‚ÑÑ ÑоглаÑно данным поÑледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ "
-"отноÑительно\n"
-"Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ файла в рабочем каталоге."
msgid ""
"Configuration is done in the [keyword], [keywordset] and [keywordmaps]\n"
"sections of hgrc files."
msgstr ""
-"ÐаÑтройки оÑущеÑтвлÑÑŽÑ‚ÑÑ Ð² ÑекциÑÑ… [keyword], [keywordset] и [keywordmaps]\n"
-"файлов конфигурации."
msgid "Example::"
-msgstr "Пример::"
+msgstr ""
msgid ""
" [keyword]\n"
@@ -4623,262 +3058,199 @@ msgid ""
" **.py =\n"
" x* = ignore"
msgstr ""
-" [keyword]\n"
-" # подÑтавлÑÑ‚ÑŒ ключевые Ñлова во вÑех файлах на python, кроме "
-"#Ñовпадающих Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ \"x*\"\n"
-" **.py =\n"
-" x* = ignore"
msgid ""
" [keywordset]\n"
" # prefer svn- over cvs-like default keywordmaps\n"
" svn = True"
msgstr ""
-" [keywordset]\n"
-" # предпочитать svn- а не cvs-подобные подÑтановки (keywordmaps) по "
-"#умолчанию\n"
-" svn = True"
msgid ""
".. note::\n"
" The more specific you are in your filename patterns the less you\n"
" lose speed in huge repositories."
msgstr ""
-".. note::\n"
-" Чем более конкретны ваши шаблоны файлов, тем меньше накладные раÑходы\n"
-" в больших хранилищах."
msgid ""
"For [keywordmaps] template mapping and expansion demonstration and\n"
"control run :hg:`kwdemo`. See :hg:`help templates` for a list of\n"
"available templates and filters."
msgstr ""
-"Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð° иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ [keywordmaps] Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð²\n"
-"и демонÑтрации подÑтановок, иÑпользуйте :hg:`kwdemo`. СпиÑок возможных\n"
-"шаблонов и фильтров Ñм. в :hg:`help templates`."
msgid "Three additional date template filters are provided:"
-msgstr "ИмеютÑÑ Ñ‚Ð°ÐºÐ¶Ðµ три дополнительных фильтров шаблонов дат:"
+msgstr ""
msgid ""
":``utcdate``: \"2006/09/18 15:13:13\"\n"
":``svnutcdate``: \"2006-09-18 15:13:13Z\"\n"
":``svnisodate``: \"2006-09-18 08:13:13 -700 (Mon, 18 Sep 2006)\""
msgstr ""
-":``utcdate``: \"2006/09/18 15:13:13\"\n"
-":``svnutcdate``: \"2006-09-18 15:13:13Z\"\n"
-":``svnisodate``: \"2006-09-18 08:13:13 -700 (Mon, 18 Sep 2006)\""
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 configuration changes."
msgstr ""
-"ÐžÑ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ (mappings) шаблонов по умолчанию (их можно поÑмотреть Ñ\n"
-"помощью :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"
-":hg:`kwshrink`, чтобы избежать ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñтавленных ключевых Ñлов\n"
-"в иÑтории изменений."
msgid ""
"To force expansion after enabling it, or a configuration change, run\n"
":hg:`kwexpand`."
msgstr ""
-"Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð½ÑƒÐ´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ подÑтановки поÑле ее Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð°Ñтроек,\n"
-"запуÑтите :hg:`kwexpand`."
msgid ""
"Expansions spanning more than one line and incremental expansions,\n"
"like CVS' $Log$, are not supported. A keyword template map \"Log =\n"
"{desc}\" expands to the first line of the changeset description.\n"
msgstr ""
-"ПодÑтановки, охватывающие более одной Ñтроки, и инкрементальные\n"
-"подÑтановки вроде CVS $Log$ не поддерживаютÑÑ. Отображение шаблона\n"
-"ключевого Ñлова (keyword template map) вида \"Log = {desc}\"\n"
-"раÑкроетÑÑ Ð² первую Ñтроку опиÑÐ°Ð½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€Ð° изменений.\n"
#, python-format
msgid "overwriting %s expanding keywords\n"
-msgstr "перезапиÑываютÑÑ %s подÑтавлÑемых ключевых Ñлов\n"
+msgstr ""
#, python-format
msgid "overwriting %s shrinking keywords\n"
-msgstr "перезапиÑываютÑÑ %s отмененных (shrinking) ключевых Ñлов\n"
+msgstr ""
msgid "[keyword] patterns cannot match"
-msgstr "шаблоны в [keyword] не Ñовпадут ни Ñ Ñ‡ÐµÐ¼"
+msgstr ""
msgid "no [keyword] patterns configured"
-msgstr "в Ñекции [keyword] нет наÑтроенных шаблонов"
+msgstr ""
msgid "show default keyword template maps"
-msgstr "показать Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² ключевых Ñлов по умолчанию"
+msgstr ""
msgid "read maps from rcfile"
-msgstr "читать Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð· файла"
+msgstr ""
msgid "hg kwdemo [-d] [-f RCFILE] [TEMPLATEMAP]..."
-msgstr "hg kwdemo [-d] [-f ФÐЙЛ] [ОТОБРÐЖЕÐИЕ_ШÐБЛОÐОВ]..."
+msgstr ""
msgid "print [keywordmaps] configuration and an expansion example"
-msgstr "напечатать наÑтройки в [keywordmaps] и пример подÑтановки"
+msgstr ""
msgid ""
" Show current, custom, or default keyword template maps and their\n"
" expansions."
msgstr ""
-" Показывает текущие, наÑтроенные или заданные по умолчанию отображениÑ\n"
-" шаблонов ключевых Ñлов (keyword template maps) и их подÑтановку."
msgid ""
" Extend the current configuration by specifying maps as arguments\n"
" and using -f/--rcfile to source an external hgrc file."
msgstr ""
-" Можно дополнить текущие наÑтройки, указав Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² качеÑтве\n"
-" аргументов или иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¾Ð¿Ñ†Ð¸ÑŽ -f/--rcfile, чтобы прочитать\n"
-" наÑтройки из файла."
msgid " Use -d/--default to disable current configuration."
-msgstr " ИÑпользуйте -d/--default чтобы отключить текущие наÑтройки."
+msgstr ""
msgid ""
" See :hg:`help templates` for information on templates and filters.\n"
" "
msgstr ""
-" О шаблонах и фильтрах Ñм. :hg:`help templates`.\n"
-" "
#, python-format
msgid "creating temporary repository at %s\n"
-msgstr "Ñоздание временного хранилища в %s\n"
+msgstr ""
msgid ""
"\n"
"\tconfiguration using custom keyword template maps\n"
msgstr ""
-"\n"
-"\tнаÑтройка Ñ Ð¸Ñпользованием заданных отображение шаблонов ключевых Ñлов\n"
msgid "\textending current template maps\n"
-msgstr "\tдополнение текущий отображений шаблонов\n"
+msgstr ""
msgid "\toverriding default svn keywordset\n"
-msgstr "\tпереопределение наборов ключевых Ñлов svn по умолчанию\n"
+msgstr ""
msgid "\toverriding default cvs keywordset\n"
-msgstr "\tпереопределение наборов ключевых Ñлов cvs по умолчанию\n"
+msgstr ""
msgid ""
"\n"
"\tconfiguration using default svn keywordset\n"
msgstr ""
-"\n"
-"\tнаÑтройка Ñ Ð¸Ñпользованием ключевых Ñлов svn по умолчанию\n"
msgid ""
"\n"
"\tconfiguration using default cvs keywordset\n"
msgstr ""
-"\n"
-"\tнаÑтройка Ñ Ð¸Ñпользованием ключевых Ñлов cvs по умолчанию\n"
msgid "\tdisabling current template maps\n"
-msgstr "\tотключение текущих отображений шаблонов\n"
+msgstr ""
msgid ""
"\n"
"\tconfiguration using current keyword template maps\n"
msgstr ""
-"\n"
-"\tнаÑтройка Ñ Ð¸Ñпользованием текущих отображений шаблонов ключевых Ñлов\n"
#, python-format
msgid ""
"\n"
"keywords written to %s:\n"
msgstr ""
-"\n"
-"ключевые Ñлова запиÑаны в %s:\n"
msgid "hg keyword configuration and expansion example"
-msgstr "пример наÑтройки и подÑтановки ключевых Ñлов"
+msgstr ""
msgid ""
"\n"
"\tkeywords expanded\n"
msgstr ""
-"\n"
-"\tрезультат подÑтановки ключевых Ñлов\n"
msgid "hg kwexpand [OPTION]... [FILE]..."
-msgstr "hg kwexpand [ПÐРÐМЕТР]... [ФÐЙЛ]..."
+msgstr ""
msgid "expand keywords in the working directory"
-msgstr "выполнить подÑтановку ключевых Ñлов в рабочем каталоге"
+msgstr ""
msgid " Run after (re)enabling keyword expansion."
msgstr ""
-" ЗапуÑкайте поÑле Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸ повторного включениÑ\n"
-" подÑтановки ключевых Ñлов."
msgid ""
" kwexpand refuses to run if given files contain local changes.\n"
" "
msgstr ""
-" kwexpand откажетÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑÑ‚ÑŒÑÑ, еÑли указанные файлы Ñодержат локальные\n"
-" изменениÑ.\n"
-" "
msgid "show keyword status flags of all files"
-msgstr "показать флаги ÑоÑтоÑний ключевых Ñлов Ð´Ð»Ñ Ð²Ñех файлов"
+msgstr ""
msgid "show files excluded from expansion"
-msgstr "показать файлы, в которых не производитÑÑ Ð¿Ð¾Ð´Ñтановка"
+msgstr ""
msgid "only show unknown (not tracked) files"
-msgstr "показать только неизвеÑтные (неотÑлеживаемые) файлы"
+msgstr ""
msgid "hg kwfiles [OPTION]... [FILE]..."
-msgstr "hg kwfiles [ПÐРÐМЕТР]... [ФÐЙЛ]..."
+msgstr ""
msgid "show files configured for keyword expansion"
-msgstr "показать файлы, наÑтроенные Ð´Ð»Ñ Ð¿Ð¾Ð´Ñтановки ключевых Ñлов"
+msgstr ""
msgid ""
" List which files in the working directory are matched by the\n"
" [keyword] configuration patterns."
msgstr ""
-" Показывает файлы в рабочем каталоге, имена которых Ñовпадают\n"
-" Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°Ð¼Ð¸, заданными в Ñекции [keyword] конфига."
msgid ""
" Useful to prevent inadvertent keyword expansion and to speed up\n"
" execution by including only files that are actual candidates for\n"
" expansion."
msgstr ""
-" Полезно Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð½ÐµÐ¶ÐµÐ»Ð°Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ñ… подÑтановок ключевых Ñлов\n"
-" и Ð´Ð»Ñ ÑƒÑÐºÐ¾Ñ€ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð° Ñчет обработки только нужных файлов."
msgid ""
" See :hg:`help keyword` on how to construct patterns both for\n"
" inclusion and exclusion of files."
msgstr ""
-" О том, как задавать шаблоны имен файлов, в которых выполнÑетÑÑ\n"
-" или не выполнÑетÑÑ Ð¿Ð¾Ð´Ñтановка, Ñм. :hg:`help keyword`."
msgid ""
" With -A/--all and -v/--verbose the codes used to show the status\n"
" of files are::"
msgstr ""
-" С опциÑми -A/--all и -v/--verbose иÑпользуютÑÑ Ñледующие коды\n"
-" ÑоÑтоÑний файлов::"
msgid ""
" K = keyword expansion candidate\n"
@@ -4887,662 +3259,64 @@ msgid ""
" i = ignored (not tracked)\n"
" "
msgstr ""
-" K = кандидат на подÑтановку ключевых Ñлов\n"
-" k = кандидат на подÑтановку ключевых Ñлов (не отÑлеживаетÑÑ)\n"
-" I = игнорируетÑÑ\n"
-" i = игнорируетÑÑ (не отÑлеживаетÑÑ)\n"
-" "
msgid "hg kwshrink [OPTION]... [FILE]..."
-msgstr "hg kwshrink [ПÐРÐМЕТР]... [ФÐЙЛ]..."
+msgstr ""
msgid "revert expanded keywords in the working directory"
-msgstr "отменить подÑтановки ключевых Ñлов в рабочем каталоге"
+msgstr ""
msgid " Must be run before changing/disabling active keywords."
msgstr ""
-" Следует запуÑкать перед изменением/отключением активных\n"
-" ключевых Ñлов."
msgid ""
" kwshrink refuses to run if given files contain local changes.\n"
" "
msgstr ""
-" kwshrink откажетÑÑ Ð·Ð°Ð¿ÑƒÑкатьÑÑ, еÑли заданные файлы Ñодержат\n"
-" незафикÑированные локальные изменениÑ."
-
-msgid "track large binary files"
-msgstr "отÑлеживает большие бинарные файлы"
-
-msgid ""
-"Large binary files tend to be not very compressible, not very\n"
-"diffable, and not at all mergeable. Such files are not handled\n"
-"efficiently by Mercurial's storage format (revlog), which is based on\n"
-"compressed binary deltas; storing large binary files as regular\n"
-"Mercurial files wastes bandwidth and disk space and increases\n"
-"Mercurial's memory usage. The largefiles extension addresses these\n"
-"problems by adding a centralized client-server layer on top of\n"
-"Mercurial: largefiles live in a *central store* out on the network\n"
-"somewhere, and you only fetch the revisions that you need when you\n"
-"need them."
-msgstr ""
-"Большие бинарные файлы обычно плохо ÑжимаютÑÑ, их Ñложно Ñравнивать,\n"
-"и еще Ñложнее Ñливать. Такие файлы не могут Ñффективно хранитьÑÑ\n"
-"в формате Mercurial (revlog), который оÑнован на Ñжатых двоичных\n"
-"различиÑÑ… (дельтах); хранение больших файлов в Mercurial обычным\n"
-"ÑпоÑобом перегружает Ñеть, иÑпользует много меÑта и увеличивает\n"
-"потребление памÑти. РаÑширение largefiles решает Ñти проблемы,\n"
-"добавлÑÑ Ñ†ÐµÐ½Ñ‚Ñ€Ð°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¹ клиент-Ñерверный Ñлой поверх Mercurial:\n"
-"большие файлы помещаютÑÑ Ð½Ð° *центральный Ñклад* где-нибудь\n"
-"в Ñети, а вы извлекаете нужные ревизии по мере необходимоÑти."
-
-msgid ""
-"largefiles works by maintaining a \"standin file\" in .hglf/ for each\n"
-"largefile. The standins are small (41 bytes: an SHA-1 hash plus\n"
-"newline) and are tracked by Mercurial. Largefile revisions are\n"
-"identified by the SHA-1 hash of their contents, which is written to\n"
-"the standin. largefiles uses that revision ID to get/put largefile\n"
-"revisions from/to the central store. This saves both disk space and\n"
-"bandwidth, since you don't need to retrieve all historical revisions\n"
-"of large files when you clone or pull."
-msgstr ""
-"largefiles Ñоздает \"замещающий файл\" (\"standin file\") в .hglf\n"
-"Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ большого файла. Эти файлы малы (41 байт: Ñ…Ñш SHA-1 и\n"
-"перевод Ñтроки) и отÑлеживаютÑÑ Mercurial. Ревизии больших файлов\n"
-"определÑÑŽÑ‚ÑÑ Ð¿Ð¾ Ñ…Ñшу SHA-1 их Ñодержимого, который пишетÑÑ Ð²\n"
-"Ñтандартный ввод. largefiles иÑпользует Ñтот идентификатор ревизии\n"
-"чтобы получить/передать ревизию большого файла из/на центральный\n"
-"Ñклад. Это позволÑет Ñкономить меÑто на диÑке и трафик, поÑкольку\n"
-"вам не надо передавать вÑÑŽ иÑторию ревизий больших файлов при\n"
-"клонировании или операции pull."
-
-msgid ""
-"To start a new repository or add new large binary files, just add\n"
-"--large to your :hg:`add` command. For example::"
-msgstr ""
-"Чтобы Ñоздать новое хранилище или добавить новый большой бинарный\n"
-"файл, проÑто добавьте --large к команде :hg:`add`. Ðапример::"
-
-msgid ""
-" $ dd if=/dev/urandom of=randomdata count=2000\n"
-" $ hg add --large randomdata\n"
-" $ hg commit -m 'add randomdata as a largefile'"
-msgstr ""
-" $ dd if=/dev/urandom of=randomdata count=2000\n"
-" $ hg add --large randomdata\n"
-" $ hg commit -m 'randomdata добавлен как большой файл'"
-
-msgid ""
-"When you push a changeset that adds/modifies largefiles to a remote\n"
-"repository, its largefile revisions will be uploaded along with it.\n"
-"Note that the remote Mercurial must also have the largefiles extension\n"
-"enabled for this to work."
-msgstr ""
-"Когда вы передаете набор изменений, который добавлÑет или изменÑет\n"
-"большой файл Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команды push, его largefile-Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚\n"
-"также передана. Обратите внимание, что на отдалённой машине раÑширение\n"
-"largefiles также должно быть включено."
-
-msgid ""
-"When you pull a changeset that affects largefiles from a remote\n"
-"repository, Mercurial behaves as normal. However, when you update to\n"
-"such a revision, any largefiles needed by that revision are downloaded\n"
-"and cached (if they have never been downloaded before). This means\n"
-"that network access may be required to update to changesets you have\n"
-"not previously updated to."
-msgstr ""
-"Когда вы затÑгиваете набор изменений, который затрагивает большие\n"
-"файлы, из отдалённого хранилища, Mercurial ведет ÑÐµÐ±Ñ ÐºÐ°Ðº обычно.\n"
-"Однако, когда вы обновлÑетеÑÑŒ на такую ревизию, вÑе большие файлы,\n"
-"нужные Ð´Ð»Ñ Ñтой ревизии, загружаютÑÑ Ð¸ кÑшируютÑÑ (еÑли они не были\n"
-"загружены ранее). Это означает, что вам может понадобитÑÑ Ð´Ð¾Ñтуп к Ñети,\n"
-"чтобы обновитÑÑ Ð½Ð° ревизию, на которую вы до Ñтого ни разу не обновлÑлиÑÑŒ."
-
-msgid ""
-"If you already have large files tracked by Mercurial without the\n"
-"largefiles extension, you will need to convert your repository in\n"
-"order to benefit from largefiles. This is done with the\n"
-":hg:`lfconvert` command::"
-msgstr ""
-"ЕÑли у Ð²Ð°Ñ ÑƒÐ¶Ðµ еÑÑ‚ÑŒ большие файлы, отÑлеживаемые Mercurial без\n"
-"раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ largefiles, вам надо будет преобразовать Ñвое хранилище,\n"
-"чтобы извлечь пользу из раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ largefiles. Это делаетÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹\n"
-":hg:`lfconvert`::"
-
-msgid " $ hg lfconvert --size 10 oldrepo newrepo"
-msgstr " $ hg lfconvert --size 10 Ñтарое_хранилище новое_хранилище"
-
-msgid ""
-"In repositories that already have largefiles in them, any new file\n"
-"over 10MB will automatically be added as a largefile. To change this\n"
-"threshold, set ``largefiles.minsize`` in your Mercurial config file\n"
-"to the minimum size in megabytes to track as a largefile, or use the\n"
-"--lfsize option to the add command (also in megabytes)::"
-msgstr ""
-"Ð’ хранилищах, уже Ñодержащих большие файлы, каждый файл больше 10 МБ\n"
-"будет добавлен как большой. Чтобы изменить Ñтот порог, иÑпользуйте\n"
-"параметр ``largefiles.minsize`` в вашем конфиге Mercurial, чтобы\n"
-"задать минимальный размер в мегабайтах, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ файл ÑчитаетÑÑ\n"
-"большим, или иÑпользуйте параметр команды add --lfsize (также в МБ)::"
-
-msgid ""
-" [largefiles]\n"
-" minsize = 2"
-msgstr ""
-" [largefiles]\n"
-" minsize = 2"
-
-msgid " $ hg add --lfsize 2"
-msgstr " $ hg add --lfsize 2"
-
-msgid ""
-"The ``largefiles.patterns`` config option allows you to specify a list\n"
-"of filename patterns (see :hg:`help patterns`) that should always be\n"
-"tracked as largefiles::"
-msgstr ""
-"Параметр конфига ``largefiles.patterns`` позволÑет задать ÑпиÑок\n"
-"шаблонов имен файлов (Ñм. :hg:`help patterns`), которые должны вÑегда\n"
-"отÑлеживатьÑÑ ÐºÐ°Ðº большие::"
-
-msgid ""
-" [largefiles]\n"
-" patterns =\n"
-" *.jpg\n"
-" re:.*\\.(png|bmp)$\n"
-" library.zip\n"
-" content/audio/*"
-msgstr ""
-" [largefiles]\n"
-" patterns =\n"
-" *.jpg\n"
-" re:.*\\.(png|bmp)$\n"
-" library.zip\n"
-" content/audio/*"
-
-msgid ""
-"Files that match one of these patterns will be added as largefiles\n"
-"regardless of their size."
-msgstr ""
-"Файлы, подходÑщие под любой из Ñтих шаблонов, будут добавлены как\n"
-"большие вне завиÑимоÑти от их размера."
-
-msgid ""
-"The ``largefiles.minsize`` and ``largefiles.patterns`` config options\n"
-"will be ignored for any repositories not already containing a\n"
-"largefile. To add the first largefile to a repository, you must\n"
-"explicitly do so with the --large flag passed to the :hg:`add`\n"
-"command.\n"
-msgstr ""
-"Параметры конфигурации ``largefiles.minsize`` и ``largefiles.patterns``\n"
-"игнорируютÑÑ Ð´Ð»Ñ Ð²Ñех хранилищ, еще не Ñодержащих больших файлов.\n"
-"Чтобы добавить первый большой файл в хранилище, необходимо Ñвно\n"
-"указать флаг --large в команде :hg:`add`.\n"
-
-msgid "convert a normal repository to a largefiles repository"
-msgstr "преобразовать обычное хранилище в хранилище largefiles"
-
-msgid ""
-" Convert repository SOURCE to a new repository DEST, identical to\n"
-" SOURCE except that certain files will be converted as largefiles:\n"
-" specifically, any file that matches any PATTERN *or* whose size is\n"
-" above the minimum size threshold is converted as a largefile. The\n"
-" size used to determine whether or not to track a file as a\n"
-" largefile is the size of the first version of the file. The\n"
-" minimum size can be specified either with --size or in\n"
-" configuration as ``largefiles.size``."
-msgstr ""
-" Преобразует хранилище ИСТОЧÐИК в новое хранилище ÐÐЗÐ,\n"
-" идентичное ИСТОЧÐИКУ, за иÑключением того, что некоторые файлы\n"
-" будут преобразованы в большие, а именно те, имена которых\n"
-" Ñовпадают Ñ Ð¨ÐБЛОÐОМ *или* чей размер превышает заданный порог.\n"
-" Ð”Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ, ÑвлÑетÑÑ Ð»Ð¸ данный файл большим, иÑпользуетÑÑ\n"
-" размер его первой верÑии. Минимальный размер может быть задан Ñ\n"
-" помощью аргумента командной Ñтроки --size или в конфиге Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
-" ``largefiles.size``."
-
-msgid ""
-" After running this command you will need to make sure that\n"
-" largefiles is enabled anywhere you intend to push the new\n"
-" repository."
-msgstr ""
-" ПоÑле запуÑка Ñтой команды, вам Ñледует убедитьÑÑ, что раÑширение\n"
-" largefiles включено на вÑех машинах, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ вы ÑобираетеÑÑŒ\n"
-" обмениватьÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñми."
-
-msgid ""
-" Use --to-normal to convert largefiles back to normal files; after\n"
-" this, the DEST repository can be used without largefiles at all."
-msgstr ""
-" ИÑпользуйте --to-normal чтобы преобразовать большие файлы\n"
-" обратно в нормальные; поÑле Ñтого, хранилище ÐÐЗРможет\n"
-" быть иÑпользовано и без largefiles."
-
-msgid "getting largefiles"
-msgstr "получение большие файлы"
-
-#, python-format
-msgid "getting %s:%s\n"
-msgstr "получение %s:%s\n"
-
-#, python-format
-msgid "%s: data corruption (expected %s, got %s)\n"
-msgstr "%s: данные повреждены (ожидаетÑÑ %s, получено %s)\n"
-
-#, python-format
-msgid "searching %d changesets for largefiles\n"
-msgstr "поиÑк %d изменений Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ñ… файлов\n"
-
-#, python-format
-msgid "verified contents of %d revisions of %d largefiles\n"
-msgstr "проверено Ñодержимое %d ревизий %d файлов\n"
-
-#, python-format
-msgid "verified existence of %d revisions of %d largefiles\n"
-msgstr "проверено ÑущеÑтвование %d ревизий %d файлов\n"
-
-#, python-format
-msgid "unsupported URL scheme %r"
-msgstr "Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ñхема URL %r"
-
-#, python-format
-msgid "%s does not appear to be a largefile store"
-msgstr "%s не ÑвлÑетÑÑ Ñкладом больших файлов"
-
-#, python-format
-msgid "%s is not a local Mercurial repo"
-msgstr "%s - не локальное хранилище Mercurial"
-
-#, python-format
-msgid "initializing destination %s\n"
-msgstr "Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð° Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ %s\n"
-
-msgid "converting revisions"
-msgstr "преобразование ревизий"
-
-#, python-format
-msgid "renamed/copied largefile %s becomes symlink"
-msgstr ""
-"переименованный/Ñкопированный большой файл %s ÑтановитÑÑ ÑимволичеÑкой "
-"ÑÑылкой"
-
-#, python-format
-msgid "largefile %s becomes symlink"
-msgstr "большой файл %s ÑтановитÑÑ ÑимволичеÑкой ÑÑылкой"
-
-#, python-format
-msgid "skipping incorrectly formatted tag %s\n"
-msgstr "пропущена Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¼ÐµÑ‚ÐºÐ°: %s\n"
-
-#, python-format
-msgid "skipping incorrectly formatted id %s\n"
-msgstr "пропущен неверный идентификатор: %s\n"
-
-#, python-format
-msgid "no mapping for id %s\n"
-msgstr "нет ÑопоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð° %s\n"
-
-msgid "uploading largefiles"
-msgstr "передача больших файлов"
-
-#, python-format
-msgid "largefile %s missing from store (needs to be uploaded)"
-msgstr "большой файл %s отÑутÑтвует на Ñкладе (необходимо его загрузить)"
-
-#, python-format
-msgid "%d additional largefiles cached\n"
-msgstr "%d больших файлов закÑшировано дополнительно\n"
-
-#, python-format
-msgid "%d largefiles failed to download\n"
-msgstr "не удалоÑÑŒ загрузить %d больших файлов\n"
-
-msgid "getting changed largefiles\n"
-msgstr "получение измененных больших файлов\n"
-
-#, python-format
-msgid "%d largefiles updated, %d removed\n"
-msgstr "%d больших файлов загружено, %d удалено\n"
-
-#, python-format
-msgid "largefile %s is not in cache and could not be downloaded"
-msgstr "большой файл %s отÑутÑтвует в кÑше и не может быть загружен"
-
-msgid "minimum size (MB) for files to be converted as largefiles"
-msgstr ""
-"минимальный размер (МБ), Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ файлы преобразуютÑÑ Ð² большие"
-
-msgid "convert from a largefiles repo to a normal repo"
-msgstr "преобразовать из хранилища largefiles в обычное хранилище"
-
-msgid "hg lfconvert SOURCE DEST [FILE ...]"
-msgstr "hg lfconvert ИСТОЧÐИК ÐÐЗР[ФÐЙЛ]"
-
-#, python-format
-msgid "largefiles: size must be number (not %s)\n"
-msgstr "largefiles: размер должен быть чиÑлом (не %s)\n"
-
-msgid "minimum size for largefiles must be specified"
-msgstr "необходимо указать минимальный размер больших файлов"
-
-#, python-format
-msgid "unknown operating system: %s\n"
-msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема: %s\n"
-
-#, python-format
-msgid "found %s in store\n"
-msgstr "%s найден на Ñкладе\n"
-
-#, python-format
-msgid "found %s in system cache\n"
-msgstr "%s найден в ÑиÑтемном кÑше\n"
-
-msgid "can't get file locally"
-msgstr "невозможно получить файл локально"
-
-#, python-format
-msgid ""
-"changeset %s: %s missing\n"
-" (looked for hash %s)\n"
-msgstr ""
-"набор изменений %s: %s отÑутÑтвует\n"
-" (пыталÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ Ñ…Ñш %s)\n"
-
-#, python-format
-msgid ""
-"changeset %s: %s: contents differ\n"
-" (%s:\n"
-" expected hash %s,\n"
-" but got %s)\n"
-msgstr ""
-"набор изменений %s: %s: Ñодержимое различно\n"
-" (%s:\n"
-" ожидаемый Ñ…Ñш %s,\n"
-" полученный %s)\n"
-
-#, python-format
-msgid "%s already a largefile\n"
-msgstr "файл %s уже ÑчитаетÑÑ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ файлом\n"
-
-#, python-format
-msgid "adding %s as a largefile\n"
-msgstr "добавление %s как большого файла\n"
-
-msgid "no files specified"
-msgstr "не задано ни одного файла"
-
-#, python-format
-msgid "not removing %s: %s (use forget to undo)\n"
-msgstr "не изымаем %s: %s (иÑпользуйте forget, чтобы отменить добавление)\n"
-
-msgid "file still exists"
-msgstr "файл уже ÑущеÑтвует"
-
-msgid "file is modified"
-msgstr "файл изменен"
-
-msgid "file has been marked for add"
-msgstr "файл был помечен Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ"
-
-#, python-format
-msgid "removing %s\n"
-msgstr "удалÑетÑÑ %s\n"
-
-msgid "--normal cannot be used with --large"
-msgstr "--normal Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать Ñ --large"
-
-msgid "uncommitted local changes"
-msgstr "незафикÑированные локальные изменениÑ"
-
-# PROMPT
-msgid "&Largefile"
-msgstr "&Largefile - большой файл"
-
-# PROMPT
-msgid "&Normal file"
-msgstr "&Normal - обычный файл"
-
-# PROMPT
-#, python-format
-msgid ""
-"%s has been turned into a largefile\n"
-"use (l)argefile or keep as (n)ormal file?"
-msgstr ""
-"%s был преобразован в большой файл\n"
-"ИÑпользовать как большой файл:(l)argefile или оÑтавить обычным:(n)ormal?"
-
-# PROMPT
-#, python-format
-msgid ""
-"%s has been turned into a normal file\n"
-"keep as (l)argefile or use (n)ormal file?"
-msgstr ""
-"%s был преобразован в обычный файл\n"
-"ОÑтавить как большой файл:(l)argefile или иÑпользовать обычный:(n)ormal?"
-
-#, python-format
-msgid "merging %s and %s to %s\n"
-msgstr "ÑлиÑние %s и %s в %s\n"
-
-#, python-format
-msgid "merging %s\n"
-msgstr "ÑлиÑние %s\n"
-
-# PROMPT
-#, python-format
-msgid ""
-"largefile %s has a merge conflict\n"
-"keep (l)ocal or take (o)ther?"
-msgstr ""
-"конфликт ÑлиÑÐ½Ð¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¾Ð³Ð¾ файла %s\n"
-"оÑтавить локальный:(l)ocal или другой:(o)ther?"
-
-# PROMPT
-msgid "&Local"
-msgstr "&Local - локальный"
-
-# PROMPT
-msgid "&Other"
-msgstr "&Other - другой"
-
-msgid "no files to copy"
-msgstr "нет файлов Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ"
-
-msgid "destination largefile already exists"
-msgstr "большой файл Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÑƒÐ¶Ðµ ÑущеÑтвует"
-
-msgid "caching new largefiles\n"
-msgstr "кÑшируем новые большие файлы\n"
-
-#, python-format
-msgid "%d largefiles cached\n"
-msgstr "%d больших файлов закÑшировано\n"
-
-#, python-format
-msgid "--all-largefiles is incompatible with non-local destination %s"
-msgstr "--all-largefiles неÑовмеÑтим Ñ Ð½ÐµÐ»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼ путем Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ %s"
-
-#, python-format
-msgid "unknown archive type '%s'"
-msgstr "неизвеÑтный тип архива '%s'"
-
-msgid "cannot give prefix when archiving to files"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð´Ð°Ð²Ð°Ñ‚ÑŒ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð¿Ñ€Ð¸ архивировании в файлы"
-
-#, python-format
-msgid "largefile %s not found in repo store or system cache"
-msgstr "большой файл %s не найден ни на Ñкладе хранилища, ни в ÑиÑтемном кÑше"
-
-#, python-format
-msgid "not removing %s: file is already untracked\n"
-msgstr "%s не удален, он и так не отÑлеживаетÑÑ\n"
-
-msgid "largefiles: No remote repo\n"
-msgstr "largefiles: Ðет отдалённого хранилища\n"
-
-msgid "largefiles to upload:\n"
-msgstr "больших файлов Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸:\n"
-
-#, python-format
-msgid "largefiles: %d to upload\n"
-msgstr "largefiles: %d Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸\n"
-
-msgid "largefile contents do not match hash"
-msgstr "Ñодержимое большого файла не Ñовпадает Ñ Ñ…Ñш-Ñуммой"
-
-#, python-format
-msgid "largefiles: failed to put %s into store: %s"
-msgstr "largefiles: не удалоÑÑŒ помеÑтить %s на Ñклад: %s"
-
-#, python-format
-msgid "requested largefile %s not present in cache"
-msgstr "требуемый большой файл %s отÑутÑтвует в кÑше"
-
-msgid "remote: "
-msgstr "отдалённо: "
-
-#, python-format
-msgid "unexpected putlfile response: %s"
-msgstr "непредвиденный ответ при размещении файла: %s"
-
-msgid "putlfile failed:"
-msgstr "не удалоÑÑŒ выполнить putlfile:"
-
-msgid "putlfile failed (unexpected response):"
-msgstr "не удалоÑÑŒ выполнить putlfile (непредвиденный ответ):"
-
-msgid "unexpected response:"
-msgstr "непредвиденный ответ:"
-
-#, python-format
-msgid "remotestore: could not put %s to remote store %s"
-msgstr "remotestore: не могу помеÑтить %s на отдаленный Ñклад %s"
-
-#, python-format
-msgid "remotestore: put %s to remote store %s"
-msgstr "remotestore: %s передаетÑÑ Ð½Ð° отдаленный Ñклад %s"
-
-#, python-format
-msgid "remotestore: could not open file %s: %s"
-msgstr "remotestore: не могу открыть файл %s: %s"
-
-#, python-format
-msgid "remotestore: largefile %s is invalid"
-msgstr "remotestore: большой файл %s поврежден (invalid)"
-
-#, python-format
-msgid "remotestore: largefile %s is missing"
-msgstr "remotestore: большой файл %s отÑутÑтвует"
-
-#, python-format
-msgid "changeset %s: %s: contents differ\n"
-msgstr "Ðабор изменений %s: %s: Ñодержимое различно\n"
-
-#, python-format
-msgid "changeset %s: %s missing\n"
-msgstr "Ðабор изменений %s: %s отÑутÑтвует\n"
-
-#, python-format
-msgid ""
-"largefiles: repo method %r appears to have already been wrapped by another "
-"extension: largefiles may behave incorrectly\n"
-msgstr ""
-"largefiles: метод %r похоже уже обрабатываетÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ раÑширением: "
-"largefiles может работать некорректно.\n"
-
-#, python-format
-msgid "file \"%s\" is a largefile standin"
-msgstr "файл \"%s\" подменÑет большой файл"
-
-msgid "add as largefile"
-msgstr "добавить как большой файл"
-
-msgid "add as normal file"
-msgstr "добавить как обычный файл"
-
-msgid ""
-"add all files above this size (in megabytes) as largefiles (default: 10)"
-msgstr ""
-"добавить вÑе файлы больше Ñтого размера (в МБ) как большие (по умолчанию: 10)"
-
-msgid "verify largefiles"
-msgstr "проверить большие файлы"
-
-msgid "verify all revisions of largefiles not just current"
-msgstr "проверить вÑе ревизии больших файлов, а не только текущую"
-
-msgid "verify largefile contents not just existence"
-msgstr "проверить Ñодержимое большого файла, а не только его наличие"
-
-msgid "display outgoing largefiles"
-msgstr "показать иÑходÑщие большие файлы"
-
-msgid "download all pulled versions of largefiles"
-msgstr "загрузить вÑе затÑнутые верÑии больших файлов"
-
-msgid "download all versions of all largefiles"
-msgstr "загрузить вÑе верÑии вÑех больших файлов"
msgid "manage a stack of patches"
-msgstr "управление Ñтеком патчей"
+msgstr ""
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 ""
-"Это раÑширение позволÑет вам работать Ñо Ñтеком патчей в хранилище\n"
-"Mercurial. Оно управлÑет Ð´Ð²ÑƒÐ¼Ñ Ñтеками патчей: вÑеми извеÑтными патчами\n"
-"и наложенными патчами (подмножеÑтво извеÑтных)."
msgid ""
"Known patches are represented as patch files in the .hg/patches\n"
"directory. Applied patches are both patch files and changesets."
msgstr ""
-"ИзвеÑтные патчи предÑтавлены в виде файлов в каталоге .hg/patches.\n"
-"Ðаложенные патчи одновременно предÑтавлены в файлах и наборах изменений."
msgid "Common tasks (use :hg:`help command` for more details)::"
-msgstr "Типичные задачи ( Ñм. также :hg:`help команда`)::"
+msgstr ""
msgid ""
" create new patch qnew\n"
" import existing patch qimport"
msgstr ""
-" Ñоздать новый патч qnew\n"
-" импортировать ÑущеÑтвующий патч qimport"
msgid ""
" print patch series qseries\n"
" print applied patches qapplied"
msgstr ""
-" напечатать поÑледовательноÑÑ‚ÑŒ патчей qseries\n"
-" напечатать наложенные патчи 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 ""
-" добавить извеÑтный патч в Ñтек наложенных qpush\n"
-" удалить патч из Ñтека наложенных qpop\n"
-" обновить Ñодержимое верхнего наложенного патча 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 ""
-"По умолчанию mq автоматичеÑки иÑпользует патчи в формате git, когда\n"
-"Ñто необходимо чтобы предотвратить потерю изменений прав доÑтупа к\n"
-"файлам, запиÑей о копировании, Ñоздание или удаление пуÑÑ‚Ñ‹Ñ… или\n"
-"бинарных файлов. Это поведение может быть наÑтроено Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ::"
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"
@@ -5550,594 +3324,497 @@ msgid ""
"'no', mq will override the [diff] section and always generate git or\n"
"regular patches, possibly losing data in the second case."
msgstr ""
-"ЕÑли уÑтановлено в 'keep', mq будет иÑпользовать наÑтройки из Ñекции\n"
-"[diff], ÑохранÑÑ ÑущеÑтвующие патчи в формате git до выполнение qrefresh.\n"
-"ЕÑли уÑтановлено в 'yes' или 'no', mq переопределит наÑтройки Ñекции [diff]\n"
-"и будет вÑегда Ñоздавать патчи ÑоответÑтвенно в формате git или в обычном\n"
-"формате, Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ð¹ потерей данных в поÑледнем Ñлучае."
-
-msgid ""
-"It may be desirable for mq changesets to be kept in the secret phase (see\n"
-":hg:`help phases`), which can be enabled with the following setting::"
-msgstr ""
-"ЕÑли вы хотите ÑохранÑÑ‚ÑŒ наборы изменений mq в Ñекретной фазе (Ñм.\n"
-":hg:`help phases`), Ñто может быть Ñделано при помощи Ñледующей наÑтройки::"
-
-msgid ""
-" [mq]\n"
-" secret = True"
-msgstr ""
-" [mq]\n"
-" secret = True"
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."
-msgstr ""
-"По умолчанию будет Ñоздана очередь патчей Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ \"patches\". Ð’Ñ‹\n"
-"можете Ñоздавать другие незавиÑимые очереди патчей Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команды\n"
-":hg:`qqueue`."
-
-msgid ""
-"If the working directory contains uncommitted files, qpush, qpop and\n"
-"qgoto abort immediately. If -f/--force is used, the changes are\n"
-"discarded. Setting::"
+"create other, independent patch queues with the :hg:`qqueue` command.\n"
msgstr ""
-"ЕÑли рабочий каталог Ñодержит незафикÑированные файлы, qpush, apop и\n"
-"qgoto немедленно прерываютÑÑ. ЕÑли укзан -f/--force, Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚\n"
-"потерÑны. ÐаÑтройка::"
-
-msgid ""
-" [mq]\n"
-" keepchanges = True"
-msgstr ""
-" [mq]\n"
-" keepchanges = True"
-
-msgid ""
-"make them behave as if --keep-changes were passed, and non-conflicting\n"
-"local changes will be tolerated and preserved. If incompatible options\n"
-"such as -f/--force or --exact are passed, this setting is ignored.\n"
-msgstr ""
-"заÑтавлÑет Ñти команды веÑти ÑÐµÐ±Ñ Ñ‚Ð°Ðº, как будто был указан --keep-changes,\n"
-"при Ñтом локальные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÐµÐ· конфликтов ÑохранÑÑŽÑ‚ÑÑ. ЕÑли указаны\n"
-"неÑовмеÑтимые параметры, такие как -f/--force и --exact, Ñтот параметр\n"
-"игнорируетÑÑ.\n"
msgid "print first line of patch header"
-msgstr "печатать первую Ñтроку заголовка патча"
+msgstr ""
#, python-format
msgid "malformated mq status line: %s\n"
-msgstr "неверный формат Ñтроки ÑоÑтоÑÐ½Ð¸Ñ mq: %s\n"
+msgstr ""
#, python-format
msgid "mq.git option can be auto/keep/yes/no got %s"
-msgstr "параметр mq.git может иметь Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ auto/keep/yes/no, задано %s"
+msgstr ""
#, python-format
msgid "%s appears more than once in %s"
-msgstr "%s вÑтречаетÑÑ Ð±Ð¾Ð»ÐµÐµ одного раза в %s"
+msgstr ""
msgid "guard cannot be an empty string"
-msgstr "Ñтраж не может быть пуÑтой Ñтрокой"
+msgstr ""
#, python-format
msgid "guard %r starts with invalid character: %r"
-msgstr "Ñтраж %r начинаетÑÑ Ñ Ð½ÐµÐ´Ð¾Ð¿ÑƒÑтимого Ñимвола: %r"
+msgstr ""
#, python-format
msgid "invalid character in guard %r: %r"
-msgstr "недопуÑтимый Ñимвол в Ñтраже %r: %r"
+msgstr ""
#, python-format
msgid "guard %r too short"
-msgstr "Ñтраж %r Ñлишком короткий"
+msgstr ""
#, python-format
msgid "guard %r starts with invalid char"
-msgstr "Ñтраж %r начинаетÑÑ Ñ Ð½ÐµÐ´Ð¾Ð¿ÑƒÑтимого Ñимвола"
+msgstr ""
#, python-format
msgid "allowing %s - no guards in effect\n"
-msgstr "%s разрешен - Ñтраж не задейÑтвуетÑÑ\n"
+msgstr ""
#, python-format
msgid "allowing %s - no matching negative guards\n"
-msgstr "%s разрешен - нет подходÑщих запрещающих Ñтражей\n"
+msgstr ""
#, python-format
msgid "allowing %s - guarded by %s\n"
-msgstr "%s разрешен - защищен %s\n"
+msgstr ""
#, python-format
msgid "skipping %s - guarded by %s\n"
-msgstr "%s пропуÑкаетÑÑ - защищен %s\n"
+msgstr ""
#, python-format
msgid "skipping %s - no matching guards\n"
-msgstr "%s пропуÑкаетÑÑ - нет подходÑщих Ñтражей\n"
+msgstr ""
#, python-format
msgid "error removing undo: %s\n"
-msgstr "ошибка при удалении Ñтраховки (undo): %s\n"
-
-#, python-format
-msgid "saving current version of %s as %s\n"
-msgstr "Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %s ÑохранÑетÑÑ ÐºÐ°Ðº %s\n"
+msgstr ""
#, python-format
msgid "apply failed for patch %s"
-msgstr "не удалоÑÑŒ наложить патч %s"
+msgstr ""
#, python-format
msgid "patch didn't work out, merging %s\n"
-msgstr "патч не Ñработал, Ñливаем %s\n"
+msgstr ""
#, python-format
msgid "update returned %d"
-msgstr "update вернул %d"
+msgstr ""
msgid "repo commit failed"
-msgstr "ошибка при фикÑации хранилища"
+msgstr ""
#, python-format
msgid "unable to read %s"
-msgstr "не удаетÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ %s"
+msgstr ""
#, python-format
msgid "patch %s does not exist\n"
-msgstr "патч %s не ÑущеÑтвует\n"
+msgstr ""
#, python-format
msgid "patch %s is not applied\n"
-msgstr "патч %s не наложен\n"
+msgstr ""
msgid "patch failed, unable to continue (try -v)\n"
-msgstr "не удалоÑÑŒ наложить патч, продолжение невозможно (попробуйте -v)\n"
+msgstr ""
#, python-format
msgid "applying %s\n"
-msgstr "накладываетÑÑ %s\n"
+msgstr "применÑÑŽ %s\n"
#, python-format
msgid "unable to read %s\n"
-msgstr "невозможно прочитать %s\n"
-
-msgid "local changes found, refresh first"
-msgstr "найдены локальные изменениÑ, необходимо Ñначала обновитьÑÑ"
+msgstr ""
#, python-format
msgid "patch %s is empty\n"
-msgstr "патч %s пуÑÑ‚\n"
-
-msgid "qpush exactly duplicates child changeset"
-msgstr "qpush Ñоздает точную копию дочернего набора изменений"
+msgstr ""
msgid "repository commit failed"
-msgstr "ошибка при фикÑации хранилища"
+msgstr ""
msgid "patch failed, rejects left in working dir\n"
msgstr ""
-"не удалоÑÑŒ наложить патч, отклоненные файлы Ñохранены в рабочем каталоге\n"
msgid "fuzz found when applying patch, stopping\n"
-msgstr "обнаружено неÑоответÑтвие контекÑтов (fuzz), оÑтановлено\n"
+msgstr ""
#, python-format
msgid "revision %s refers to unknown patches: %s\n"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s ÑÑылаетÑÑ Ð½Ð° неизвеÑтные патчи: %s\n"
+msgstr ""
#, python-format
msgid "unknown patches: %s\n"
-msgstr "неизвеÑтные патчи: %s\n"
+msgstr ""
#, python-format
msgid "revision %d is not managed"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d не контролируетÑÑ"
+msgstr ""
#, python-format
msgid "cannot delete revision %d above applied patches"
-msgstr "невозможно удалить ревизию %d, находÑщуюÑÑ Ð¿Ð¾Ð²ÐµÑ€Ñ… наложенных патчей"
+msgstr ""
#, python-format
msgid "patch %s finalized without changeset message\n"
-msgstr "патч %s финализирован без ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ Ðº набору изменений\n"
+msgstr ""
msgid "qdelete requires at least one revision or patch name"
-msgstr "qdelete требует ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÐºÐ°Ðº минимум одной ревизии или имени патча"
+msgstr ""
#, python-format
msgid "cannot delete applied patch %s"
-msgstr "не могу удалить наложенный патч %s"
+msgstr ""
#, python-format
msgid "patch %s not in series file"
-msgstr "патч %s отÑутÑтвует в файле поÑледовательноÑтей"
+msgstr ""
msgid "no patches applied"
-msgstr "нет наложенных патчей"
+msgstr ""
msgid "working directory revision is not qtip"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога не Ð¾ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ mq (qtip)"
+msgstr ""
#, python-format
msgid "uncommitted changes in subrepository %s"
-msgstr "незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² подхранилище %s"
+msgstr ""
+
+msgid "local changes found, refresh first"
+msgstr ""
msgid "local changes found"
-msgstr "найдены локальные изменениÑ"
+msgstr ""
#, python-format
msgid "\"%s\" cannot be used as the name of a patch"
-msgstr "\"%s\" не может быть иÑпользовано в качеÑтве имени патча"
+msgstr ""
#, python-format
msgid "patch name cannot begin with \"%s\""
-msgstr "Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð° не может начинатьÑÑ Ñ \"%s\""
+msgstr ""
#, python-format
msgid "\"%s\" cannot be used in the name of a patch"
-msgstr "\"%s\" не может иÑпользоватьÑÑ Ð² имени патча"
+msgstr ""
#, python-format
msgid "\"%s\" already exists as a directory"
-msgstr "\"%s\" уже ÑущеÑтвует в виде каталога"
+msgstr ""
#, python-format
msgid "patch \"%s\" already exists"
-msgstr "патч \"%s\" уже ÑущеÑтвует"
-
-msgid "cannot use both --force and --keep-changes"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð´Ð½Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ указывать --force и --keep-changes"
+msgstr ""
msgid "cannot manage merge changesets"
-msgstr "не могу работать Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸ÐµÐ¹ ÑлиÑниÑ"
+msgstr ""
#, python-format
msgid "cannot write patch \"%s\": %s"
-msgstr "невозможно запиÑать патч \"%s\": %s"
+msgstr ""
#, python-format
msgid "error unlinking %s\n"
-msgstr "ошибка при удалении (unlinking) %s\n"
+msgstr ""
#, python-format
msgid "patch name \"%s\" is ambiguous:\n"
-msgstr "Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð° \"%s\" неоднозначно:\n"
+msgstr ""
#, python-format
msgid "patch %s not in series"
-msgstr "патч %s не в поÑледовательноÑти (series)"
+msgstr ""
msgid "(working directory not at a head)\n"
-msgstr "(Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога не ÑвлÑетÑÑ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð¾Ð¹)\n"
+msgstr ""
msgid "no patches in series\n"
-msgstr "нет патчей в поÑледовательноÑти\n"
+msgstr ""
#, python-format
msgid "qpush: %s is already at the top\n"
-msgstr "qpush: %s уже наверху\n"
+msgstr ""
#, python-format
msgid "cannot push to a previous patch: %s"
-msgstr "не могу протолкнуть в предыдущий патч: %s"
+msgstr ""
#, python-format
msgid "guarded by %s"
-msgstr "защищен %s"
+msgstr ""
msgid "no matching guards"
-msgstr "нет подходÑщих Ñтражей"
+msgstr ""
#, python-format
msgid "cannot push '%s' - %s\n"
-msgstr "не могу протолкнуть '%s' - %s\n"
+msgstr ""
msgid "all patches are currently applied\n"
-msgstr "вÑе патчи в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð»Ð¾Ð¶ÐµÐ½Ñ‹\n"
+msgstr ""
msgid "patch series already fully applied\n"
-msgstr "поÑледовательноÑÑ‚ÑŒ патчей уже полноÑтью наложена\n"
-
-msgid "cannot use --exact and --keep-changes together"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать --exact и --keep-changes одновременно"
+msgstr ""
msgid "cannot use --exact and --move together"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать --exact и --move одновременно"
+msgstr ""
msgid "cannot push --exact with applied patches"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать push --exact Ñ Ð½Ð°Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ‹Ð¼Ð¸ патчами"
+msgstr ""
#, python-format
msgid "%s does not have a parent recorded"
-msgstr "%s не имеет запиÑанного родителÑ"
+msgstr ""
msgid "please specify the patch to move"
-msgstr "пожалуйÑта укажите патч Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ"
+msgstr ""
msgid "cleaning up working directory..."
-msgstr "очиÑтка рабочего каталога..."
+msgstr ""
#, python-format
msgid "errors during apply, please fix and refresh %s\n"
-msgstr "ошибка при наложении, пожалуйÑта иÑправьте и обновите %s\n"
+msgstr ""
#, python-format
msgid "now at: %s\n"
-msgstr "теперь на: %s\n"
+msgstr ""
#, python-format
msgid "patch %s is not applied"
-msgstr "патч %s не наложен"
+msgstr ""
msgid "no patches applied\n"
-msgstr "нет наложенных патчей\n"
+msgstr ""
#, python-format
msgid "qpop: %s is already at the top\n"
-msgstr "qpop: %s уже наверху\n"
+msgstr ""
msgid "qpop: forcing dirstate update\n"
-msgstr "qpop: принудительное обновление dirstate\n"
+msgstr ""
#, python-format
msgid "trying to pop unknown node %s"
-msgstr "пытаемÑÑ Ð²Ñ‹Ñ‚Ð¾Ð»ÐºÐ½ÑƒÑ‚ÑŒ (pop) неизвеÑтный узел %s"
+msgstr ""
msgid "popping would remove a revision not managed by this patch queue"
-msgstr "выталкивание удалит ревизию, не контролируемую Ñтой очередью патчей"
-
-msgid "popping would remove an immutable revision"
-msgstr "выталкивание удалит неизменÑемую ревизию"
-
-msgid "see \"hg help phases\" for details"
-msgstr "подробнее Ñм. \"hg help phases\""
+msgstr ""
msgid "deletions found between repo revs"
-msgstr "обнаружены ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ ревизиÑми хранилища"
+msgstr ""
#, python-format
msgid "popping %s\n"
-msgstr "выталкиваетÑÑ %s\n"
+msgstr ""
msgid "patch queue now empty\n"
-msgstr "очередь патчей теперь пуÑта\n"
+msgstr ""
msgid "cannot refresh a revision with children"
-msgstr "не могу обновить ревизию Ñ Ð´Ð¾Ñ‡ÐµÑ€Ð½Ð¸Ð¼Ð¸ ревизиÑми"
-
-msgid "cannot refresh immutable revision"
-msgstr "невозможно обновить неизменÑемую ревизию"
+msgstr ""
msgid ""
"refresh interrupted while patch was popped! (revert --all, qpush to "
"recover)\n"
msgstr ""
-"обновление прервано в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº патч был вытолкнут! (иÑпользуйте\n"
-"revert --all, qpush Ð´Ð»Ñ Ð²Ð¾ÑÑтановлениÑ)\n"
msgid "patch queue directory already exists"
-msgstr "каталог очереди патчей уже ÑущеÑтвует"
+msgstr ""
#, python-format
msgid "patch %s is not in series file"
-msgstr "патч %s не в файле поÑледовательноÑтей (series)"
+msgstr ""
-msgid "no saved patch data found\n"
-msgstr "не найдено Ñохраненных данных патча\n"
+msgid "No saved patch data found\n"
+msgstr ""
#, python-format
msgid "restoring status: %s\n"
-msgstr "ÑоÑтоÑние воÑÑтановлениÑ: %s\n"
+msgstr ""
msgid "save entry has children, leaving it alone\n"
-msgstr "запиÑÑŒ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ (save entry) имеет потомков, не трогаем ее\n"
+msgstr ""
#, python-format
msgid "removing save entry %s\n"
-msgstr "удаление запиÑи ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ (save entry) %s\n"
+msgstr ""
#, python-format
msgid "saved queue repository parents: %s %s\n"
-msgstr "родители Ñохраненной очереди в хранилище: %s %s\n"
+msgstr ""
msgid "updating queue directory\n"
-msgstr "обновление каталога очереди\n"
+msgstr ""
-msgid "unable to load queue repository\n"
-msgstr "невозможно загрузить хранилище очереди\n"
+msgid "Unable to load queue repository\n"
+msgstr ""
msgid "save: no patches applied, exiting\n"
-msgstr "save: нет наложенных патчей, выход\n"
+msgstr ""
msgid "status is already saved\n"
-msgstr "ÑоÑтоÑние уже Ñохранено\n"
+msgstr ""
msgid "hg patches saved state"
-msgstr "ÑÑ‚Ð°Ñ‚ÑƒÑ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ‚Ñ‡ÐµÐ¹"
+msgstr ""
msgid "repo commit failed\n"
-msgstr "не удалоÑÑŒ зафикÑировать хранилище\n"
+msgstr ""
#, python-format
msgid "patch %s is already in the series file"
-msgstr "патч %s уже в файле поÑледовательноÑтей (series)"
+msgstr ""
msgid "option \"-r\" not valid when importing files"
-msgstr "Ð¾Ð¿Ñ†Ð¸Ñ \"-r\" недопуÑтима при импорте файлов"
-
-msgid "no files or revisions specified"
-msgstr "не заданы файлы или ревизии"
+msgstr ""
msgid "option \"-n\" not valid when importing multiple patches"
-msgstr "Ð¾Ð¿Ñ†Ð¸Ñ \"-n\" недопуÑтима при импорте неÑкольких патчей"
+msgstr ""
#, python-format
msgid "revision %d is the root of more than one branch"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d ÑвлÑетÑÑ ÐºÐ¾Ñ€Ð½ÐµÐ¼ более чем одной ветки"
+msgstr ""
#, python-format
msgid "revision %d is already managed"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d уже контролируетÑÑ"
+msgstr ""
#, python-format
msgid "revision %d is not the parent of the queue"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d не ÑвлÑетÑÑ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкой ревизией очереди"
+msgstr ""
#, python-format
msgid "revision %d has unmanaged children"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d имеет неконтролируемые дочерние ревизии"
-
-#, python-format
-msgid "revision %d is not mutable"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d неизменÑема"
+msgstr ""
#, python-format
msgid "cannot import merge revision %d"
-msgstr "невозможно импортировать ревизию ÑлиÑÐ½Ð¸Ñ %d"
+msgstr ""
#, python-format
msgid "revision %d is not the parent of %d"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d не родительÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d"
+msgstr ""
msgid "-e is incompatible with import from -"
-msgstr "-e неÑовмеÑтим Ñ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¾Ð¼ из -"
+msgstr ""
#, python-format
msgid "patch %s does not exist"
-msgstr "патч %s не ÑущеÑтвует"
+msgstr ""
#, python-format
msgid "renaming %s to %s\n"
-msgstr "переименовываетÑÑ %s в %s\n"
+msgstr ""
msgid "need --name to import a patch from -"
-msgstr "необходимо указать --name чтобы импортировать патч из -"
+msgstr ""
#, python-format
msgid "unable to read file %s"
-msgstr "невозможно прочитать файл %s"
+msgstr ""
#, python-format
msgid "adding %s to series file\n"
-msgstr "%s добавлÑетÑÑ Ð² файл поÑледовательноÑтей (series)\n"
+msgstr ""
msgid "keep patch file"
-msgstr "Ñохранить файл патча"
+msgstr ""
msgid "stop managing a revision (DEPRECATED)"
-msgstr "переÑтать контролировать ревизию (УСТÐРЕЛО)"
+msgstr ""
msgid "hg qdelete [-k] [PATCH]..."
-msgstr "hg qdelete [-k] [ПÐТЧ]..."
+msgstr ""
msgid "remove patches from queue"
-msgstr "удалить патчи из очереди"
+msgstr ""
msgid ""
" The patches must not be applied, and at least one patch is required. "
-"Exact\n"
-" patch identifiers must be given. With -k/--keep, the patch files are\n"
-" preserved in the patch directory."
+"With\n"
+" -k/--keep, the patch files are preserved in the patch directory."
msgstr ""
-" Патчи не должны быть наложенными, и требуетÑÑ Ð¿Ð¾ крайней мере один "
-"патч.\n"
-" Ðужно указывать точные идентификаторы патчей.\n"
-" С -k/--keep патчи ÑохранÑÑŽÑ‚ÑÑ Ð² каталоге патчей."
msgid ""
" To stop managing a patch and move it into permanent history,\n"
" use the :hg:`qfinish` command."
msgstr ""
-" Чтобы прекратить отÑлеживать патч и перемеÑтить его в хранилище,\n"
-" иÑпользуйте команду :hg:`qfinish`."
-msgid "show only the preceding applied patch"
-msgstr "показать только предыдущий наложенный патч"
+msgid "show only the last patch"
+msgstr ""
msgid "hg qapplied [-1] [-s] [PATCH]"
-msgstr "hg qapplied [-1] [-s] [ПÐТЧ]"
+msgstr ""
msgid "print the patches already applied"
-msgstr "напечатать уже наложенные патчи"
+msgstr ""
msgid " Returns 0 on success."
-msgstr " Ð’ Ñлучае уÑпеха возвращает 0."
+msgstr ""
msgid "only one patch applied\n"
-msgstr "применен только один патч\n"
+msgstr ""
msgid "show only the first patch"
-msgstr "показать только первый патч"
+msgstr ""
msgid "hg qunapplied [-1] [-s] [PATCH]"
-msgstr "hg qunapplied [-1] [-s] [ПÐТЧ]"
+msgstr ""
msgid "print the patches not yet applied"
-msgstr "напечатать еще не наложенные патчи"
+msgstr ""
msgid "all patches applied\n"
-msgstr "вÑе патчи наложены\n"
+msgstr ""
msgid "import file in patch directory"
-msgstr "импортировать файл в каталог патчей"
+msgstr ""
msgid "NAME"
msgstr "ИМЯ"
msgid "name of patch file"
-msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° патча"
+msgstr ""
msgid "overwrite existing files"
-msgstr "перезапиÑывать ÑущеÑтвующие файлы"
+msgstr ""
msgid "place existing revisions under mq control"
-msgstr "помеÑтить ÑущеÑтвующие ревизии под управление mq"
+msgstr ""
msgid "use git extended diff format"
-msgstr "иÑпользовать раÑширенный формат git Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ð¹"
+msgstr "иÑпользовать раÑширенный формат git Ð´Ð»Ñ diff'ов"
msgid "qpush after importing"
-msgstr "выполнить qpush поÑле импортированиÑ"
+msgstr ""
-msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... [FILE]..."
-msgstr "hg qimport [-e] [-n ИМЯ] [-f] [-g] [-P] [-r РЕВ]... [ФÐЙЛ]..."
+msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE..."
+msgstr ""
-msgid "import a patch or existing changeset"
-msgstr "импортировать патч или ÑущеÑтвующий набор изменений"
+msgid "import a patch"
+msgstr ""
msgid ""
" The patch is inserted into the series after the last applied\n"
" patch. If no patches have been applied, qimport prepends the patch\n"
" to the series."
msgstr ""
-" Патч помещаетÑÑ Ð² поÑледовательноÑÑ‚ÑŒ поÑле поÑледнего наложенного "
-"патча.\n"
-" ЕÑли наложенных патчей нет, qimport добавлÑет файл в начало\n"
-" поÑледовательноÑти."
msgid ""
" The patch will have the same name as its source file unless you\n"
" give it a new one with -n/--name."
msgstr ""
-" Патч будет иметь такое же имÑ, как и файл, из которого он был Ñоздан,\n"
-" еÑли только вы не укажите новое Ð¸Ð¼Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -n/--name."
msgid ""
" You can register an existing patch inside the patch directory with\n"
" the -e/--existing flag."
msgstr ""
-" Ð’Ñ‹ можете зарегиÑтрировать патч, уже находÑщийÑÑ Ð² каталоге патчей,\n"
-" Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ флага -e/--existing."
msgid ""
" With -f/--force, an existing patch of the same name will be\n"
" overwritten."
msgstr ""
-" ЕÑли указан -f/--force, ÑущеÑтвующий патч Ñ Ñ‚Ð°ÐºÐ¸Ð¼ же именем будет\n"
-" перезапиÑан."
msgid ""
" An existing changeset may be placed under mq control with -r/--rev\n"
@@ -6147,45 +3824,32 @@ msgid ""
" important for preserving rename/copy information and permission\n"
" changes. Use :hg:`qfinish` to remove changesets from mq control."
msgstr ""
-" СущеÑтвующий набор изменений может быть помещен под контроль mq\n"
-" Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -r/--rev (Ñ‚.е. qimport --rev tip -n patch помеÑтит\n"
-" оконечную ревизию под контроль mq). С -g/--git патчи, импортированные\n"
-" Ñ --rev, будут иÑпользовать формат git. О том, почему Ñто важно\n"
-" Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸ о копировании/переименовании и правах "
-"доÑтупа,\n"
-" Ñм. ÑоответÑтвующий раздел Ñправки о различиÑÑ… (diffs). ИÑпользуйте\n"
-" :hg:`qfinish` чтобы изъÑÑ‚ÑŒ наборы изменений из-под ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ mq."
msgid ""
" To import a patch from standard input, pass - as the patch file.\n"
" When importing from standard input, a patch name must be specified\n"
" using the --name flag."
msgstr ""
-" Чтобы импортировать патч из Ñтандартного ввода, передайте - в\n"
-" качеÑтве имени файла патча. При импорте из Ñтандартного ввода имÑ\n"
-" патча должно быть задано Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ флага --name."
msgid " To import an existing patch while renaming it::"
-msgstr " Импортировать ÑущеÑтвующий патч Ñ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼::"
+msgstr ""
msgid " hg qimport -e existing-patch -n new-name"
-msgstr " hg qimport -e ÑущеÑтвующий-патч -n новое-имÑ"
+msgstr ""
msgid ""
" Returns 0 if import succeeded.\n"
" "
msgstr ""
-" Возвращает 0, еÑли импорт завершен уÑпешно.\n"
-" "
msgid "create queue repository"
-msgstr "Ñоздать хранилище очереди"
+msgstr ""
msgid "hg qinit [-c]"
-msgstr "hg qinit [-c]"
+msgstr ""
msgid "init a new queue repository (DEPRECATED)"
-msgstr "инициализирует новое хранилище очереди (УСТÐРЕЛО)"
+msgstr ""
msgid ""
" The queue repository is unversioned by default. If\n"
@@ -6194,40 +3858,32 @@ msgid ""
" an unversioned patch repository into a versioned one). You can use\n"
" qcommit to commit changes to this queue repository."
msgstr ""
-" По умолчанию хранилище очереди не помещаетÑÑ Ð¿Ð¾Ð´ контроль верÑий.\n"
-" ЕÑли указан -c/--create-repo, qinit ÑоздаÑÑ‚ отдельный вложенный\n"
-" хранилище Ð´Ð»Ñ Ð¿Ð°Ñ‚Ñ‡ÐµÐ¹ (можно также запуÑтить qinit -c позже, чтобы\n"
-" преобразовать неверÑионируемое хранилище патчей в верÑионируемое.\n"
-" Ð’Ñ‹ можете иÑпользовать qcommit чтобы зафикÑировать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñтом\n"
-" хранилище очереди."
msgid ""
" This command is deprecated. Without -c, it's implied by other relevant\n"
" commands. With -c, use :hg:`init --mq` instead."
msgstr ""
-" Эта команда уÑтарела. Без -c она неÑвно подразумеваетÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸\n"
-" командами mq. С -c, иÑпользуйте вмеÑто нее :hg:`init --mq`."
msgid "use pull protocol to copy metadata"
msgstr "иÑпользовать протокол затÑÐ³Ð¸Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ…"
msgid "do not update the new working directories"
-msgstr "не обновлÑÑ‚ÑŒ новые рабочие каталоги"
+msgstr ""
msgid "use uncompressed transfer (fast over LAN)"
msgstr "не иÑпользовать Ñжатие при передачи (быÑтрее в локальной Ñети)"
msgid "REPO"
-msgstr "ХРÐÐИЛИЩЕ"
+msgstr "РЕПОЗИТОРИЙ"
msgid "location of source patch repository"
-msgstr "раÑположение иÑходного хранилища патчей"
+msgstr ""
msgid "hg qclone [OPTION]... SOURCE [DEST]"
-msgstr "hg qclone [ПÐРÐМЕТР]... ИСТОЧÐИК [ÐÐЗÐ]"
+msgstr ""
msgid "clone main and patch repository at same time"
-msgstr "клонировать оÑновное хранилище вмеÑте Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÐ¼ патчей"
+msgstr ""
msgid ""
" If source is local, destination will have no patches applied. If\n"
@@ -6236,106 +3892,96 @@ msgid ""
" applied in destination. If you clone remote repository, be sure\n"
" before that it has no patches applied."
msgstr ""
-" ЕÑли иÑточник локален, хранилище Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ðµ будет иметь\n"
-" наложенных патчей. ЕÑли иÑточник ÑвлÑетÑÑ Ð¾Ñ‚Ð´Ð°Ð»Ñ‘Ð½Ð½Ñ‹Ð¼, Ñта команда\n"
-" не может проверить, наложены ли патчи в хранилище-иÑточнике,\n"
-" и поÑтому не может гарантировать, что в хранилище назначениÑ\n"
-" Ñти патчи не наложены. ЕÑли вы клонируете отдалённое хранилище,\n"
-" Ñперва убедитеÑÑŒ, что в нем нет наложенных патчей."
msgid ""
" Source patch repository is looked for in <src>/.hg/patches by\n"
" default. Use -p <url> to change."
msgstr ""
-" Ð’ хранилище-иÑточнике патчи ищутÑÑ Ð¿Ð¾ умолчанию в\n"
-" <иÑточник>/.hg/patches. ИÑпользуйте -p <url> чтобы задать другой путь."
msgid ""
" The patch directory must be a nested Mercurial repository, as\n"
" would be created by :hg:`init --mq`."
msgstr ""
-" Каталог патчей должен быть вложенным хранилищем Mercurial,\n"
-" подобным Ñозданному Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`init --mq`."
msgid ""
" Return 0 on success.\n"
" "
msgstr ""
-" Ð’ Ñлучае уÑпеха возвращает 0.\n"
-" "
msgid "versioned patch repository not found (see init --mq)"
-msgstr "верÑионируемое хранилище патчей не найдено (Ñм. init --mq)"
+msgstr ""
msgid "cloning main repository\n"
-msgstr "клонирование оÑновного хранилища\n"
+msgstr ""
msgid "cloning patch repository\n"
-msgstr "клонирование хранилища патчей\n"
+msgstr ""
msgid "stripping applied patches from destination repository\n"
-msgstr "ÑрезаютÑÑ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð½Ñ‹Ðµ патчи из хранилища назначениÑ\n"
+msgstr ""
msgid "updating destination repository\n"
-msgstr "обновление хранилища назначениÑ\n"
+msgstr ""
msgid "hg qcommit [OPTION]... [FILE]..."
-msgstr "hg qcommit [ПÐРÐМЕТР]... [ФÐЙЛ]..."
+msgstr ""
msgid "commit changes in the queue repository (DEPRECATED)"
-msgstr "зафикÑировать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² хранилище очереди (УСТÐРЕЛО)"
+msgstr ""
msgid " This command is deprecated; use :hg:`commit --mq` instead."
-msgstr " Эта команда уÑтарела; иÑпользуйте :hg:`commit --mq`."
+msgstr ""
msgid "print patches not in series"
-msgstr "напечатать патчи, не входÑщие в поÑледовательноÑÑ‚ÑŒ"
+msgstr ""
msgid "hg qseries [-ms]"
-msgstr "hg qseries [-ms]"
+msgstr ""
msgid "print the entire series file"
-msgstr "напечатать веÑÑŒ файл поÑледовательноÑтей"
+msgstr ""
msgid "hg qtop [-s]"
-msgstr "hg qtop [-s]"
+msgstr ""
msgid "print the name of the current patch"
-msgstr "напечатать Ð¸Ð¼Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ патча"
+msgstr ""
msgid "hg qnext [-s]"
-msgstr "hg qnext [-s]"
+msgstr ""
-# NOT-SURE
-msgid "print the name of the next pushable patch"
-msgstr "напечатать Ð¸Ð¼Ñ Ñледующего вталкиваемого патча"
+msgid "print the name of the next patch"
+msgstr ""
msgid "hg qprev [-s]"
-msgstr "hg qprev [-s]"
+msgstr ""
-msgid "print the name of the preceding applied patch"
-msgstr "напечатать Ð¸Ð¼Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾ наложенного патча"
+msgid "print the name of the previous patch"
+msgstr ""
msgid "import uncommitted changes (DEPRECATED)"
-msgstr "импортировать незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (УСТÐРЕЛО)"
+msgstr ""
msgid "add \"From: <current user>\" to patch"
-msgstr "добавить \"From: <текущий пользователь>\" к патчу"
+msgstr ""
+
+msgid "USER"
+msgstr "ПОЛЬЗОВÐТЕЛЬ"
msgid "add \"From: <USER>\" to patch"
-msgstr "добавить \"From: <ПОЛЬЗОВÐТЕЛЬ>\" к патчу"
+msgstr ""
msgid "add \"Date: <current date>\" to patch"
-msgstr "добавить \"Date: <Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°>\" к патчу"
+msgstr ""
msgid "add \"Date: <DATE>\" to patch"
-msgstr "добавить \"Date: <ДÐТÐ>\" к патчу"
+msgstr ""
msgid "hg qnew [-e] [-m TEXT] [-l FILE] PATCH [FILE]..."
-msgstr "hg qnew [-e] [-m ТЕКСТ] [-l ФÐЙЛ] ПÐТЧ [ФÐЙЛ]..."
+msgstr ""
msgid "create a new patch"
-msgstr "Ñоздать новый патч"
+msgstr ""
msgid ""
" qnew creates a new patch on top of the currently-applied patch (if\n"
@@ -6345,31 +3991,18 @@ msgid ""
" only changes to matching files to the new patch, leaving the rest\n"
" as uncommitted modifications."
msgstr ""
-" qnew Ñоздает новый патч поверх текущего наложенного патча (еÑли таковой\n"
-" имеетÑÑ). Этот патч будет инициализирован незафикÑированными\n"
-" изменениÑми в рабочем каталоге. Ð’Ñ‹ можете также иÑпользовать -I/--"
-"include,\n"
-" -X/--exclude и/или ÑпиÑок ÑпиÑок файлов поÑле имени патча, чтобы\n"
-" добавить в патч только Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑоответÑтвующих файлах, ÑчитаÑ\n"
-" оÑтальные незафикÑированными изменениÑми."
msgid ""
" -u/--user and -d/--date can be used to set the (given) user and\n"
" date, respectively. -U/--currentuser and -D/--currentdate set user\n"
" to current user and date to current date."
msgstr ""
-" Можно иÑпользовать -u/--user и -d/--date, чтобы уÑтановить (указанного)\n"
-" Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ дату ÑоответÑтвенно. -U/--currentuser и -D/--currentdate\n"
-" уÑтанавливают Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² текущего Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ дату в текущую дату."
msgid ""
" -e/--edit, -m/--message or -l/--logfile set the patch header as\n"
" well as the commit message. If none is specified, the header is\n"
" empty and the commit message is '[mq]: PATCH'."
msgstr ""
-" -e/--edit, -m/--message или -l/--logfile задают заголовок патча "
-"аналогично Ñообщению фикÑации. ЕÑли ни один из них не задан,\n"
-" заголовок оÑтаетÑÑ Ð¿ÑƒÑтым, а Ñообщение фикÑации будет '[mq]: ПÐТЧ'."
msgid ""
" Use the -g/--git option to keep the patch in the git extended diff\n"
@@ -6377,55 +4010,43 @@ msgid ""
" is important for preserving permission changes and copy/rename\n"
" information."
msgstr ""
-" ИÑпользуйте параметр -g/--git, чтобы Ñохранить патч в раÑширенном\n"
-" формате git. О том, почему Ñто важно Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸ о \n"
-" копировании/переименовании и правах доÑтупа, Ñм. ÑоответÑтвующий раздел\n"
-" Ñправки о различиÑÑ… (diffs)."
msgid ""
" Returns 0 on successful creation of a new patch.\n"
" "
msgstr ""
-" При уÑпешном Ñоздании патча возвращает 0.\n"
-" "
msgid "refresh only files already in the patch and specified files"
-msgstr "обновить только файлы, уже включенные в патч, и указанные файлы"
+msgstr ""
msgid "add/update author field in patch with current user"
-msgstr "добавить/обновить поле патча author, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ пользователÑ"
+msgstr ""
msgid "add/update author field in patch with given user"
-msgstr "добавить/обновить поле патча author, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ"
+msgstr ""
msgid "add/update date field in patch with current date"
-msgstr "добавить/обновить поле патча date, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñ‚ÐµÐºÑƒÑ‰ÑƒÑŽ дату"
+msgstr ""
msgid "add/update date field in patch with given date"
-msgstr "добавить/обновить поле патча date, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð·Ð°Ð´Ð°Ð½Ð½ÑƒÑŽ дату"
+msgstr ""
msgid "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l FILE] [-s] [FILE]..."
-msgstr "hg qrefresh [-I] [-X] [-e] [-m ТЕКСТ] [-l ФÐЙЛ] [-s] [ФÐЙЛ]..."
+msgstr ""
msgid "update the current patch"
-msgstr "обновить текущий патч"
+msgstr ""
msgid ""
" If any file patterns are provided, the refreshed patch will\n"
" contain only the modifications that match those patterns; the\n"
" remaining modifications will remain in the working directory."
msgstr ""
-" ЕÑли заданы только шаблоны файлов, обновленный патч будет\n"
-" Ñодержать только изменениÑ, Ñовпадающие Ñ Ñтими шаблонами;\n"
-" оÑтальные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¾ÑтанутÑÑ Ð² рабочем каталоге."
msgid ""
" If -s/--short is specified, files currently included in the patch\n"
" will be refreshed just like matched files and remain in the patch."
msgstr ""
-" ЕÑли указан -s/--short, файлы, входÑщие на данный момент в патч,\n"
-" будут обновлены так же, как Ñовпавшие Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ файлы, и будут\n"
-" оÑтавлены в ÑоÑтаве патча."
msgid ""
" If -e/--edit is specified, Mercurial will start your configured editor "
@@ -6434,10 +4055,6 @@ msgid ""
"of\n"
" your message in ``.hg/last-message.txt``."
msgstr ""
-" ЕÑли задан -e/--edit, Mercurial запуÑтит наÑтроенный вами редактор,\n"
-" чтобы вы могли ввеÑти Ñообщение фикÑации. ЕÑли qrefresh завершитÑÑ\n"
-" аварийно, вы найдете резервную копию вашего ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð²\n"
-" ``.hg/last-message.txt``."
msgid ""
" hg add/remove/copy/rename work as usual, though you might want to\n"
@@ -6445,21 +4062,15 @@ msgid ""
" and renames. See the diffs help topic for more information on the\n"
" git diff format."
msgstr ""
-" Команды add/remove/copy/rename работают как обычно, Ñ…Ð¾Ñ‚Ñ Ð²Ð°Ð¼, возможно,\n"
-" захочетÑÑ Ð¸Ñпользовать патчи в Ñтиле git (-g/--git или [diff] git=1)\n"
-" Ð´Ð»Ñ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ð¹ и переименований. См. раздел "
-"ÑоответÑтвующий\n"
-" раздел Ñправки (diffs) Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации о формате различий\n"
-" в Ñтиле git."
msgid "option \"-e\" incompatible with \"-m\" or \"-l\""
-msgstr "параметр \"-e\" неÑовмеÑтим Ñ \"-m\" или \"-l\""
+msgstr ""
msgid "hg qdiff [OPTION]... [FILE]..."
-msgstr "hg qdiff [ПÐРÐМЕТР]... [ФÐЙЛ]..."
+msgstr ""
msgid "diff of the current patch and subsequent modifications"
-msgstr "Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ текущим патчем и поÑледующими модификациÑми"
+msgstr ""
msgid ""
" Shows a diff which includes the current patch as well as any\n"
@@ -6467,9 +4078,6 @@ msgid ""
" last refresh (thus showing what the current patch would become\n"
" after a qrefresh)."
msgstr ""
-" Показывает различиÑ, которые включают текущий патч, а также вÑе\n"
-" изменениÑ, Ñделанные в рабочем каталоге поÑле поÑледнего qrefresh\n"
-" (Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°Ñ Ñ‚Ð°ÐºÐ¸Ð¼ образом, чем Ñтанет Ñтот патч поÑле qrefresh)"
msgid ""
" Use :hg:`diff` if you only want to see the changes made since the\n"
@@ -6477,22 +4085,18 @@ msgid ""
" made by the current patch without including changes made since the\n"
" qrefresh."
msgstr ""
-" ИÑпользуйте :hg:`diff`, еÑли вы хотите поÑмотреть только изменениÑ,\n"
-" Ñделанные поÑле поÑледнего qrefresh, или :hg:`export qtip`, еÑли\n"
-" вы хотите поÑмотреть изменениÑ, Ñделанные текущим патчем, не включаÑ\n"
-" Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле поÑледнего qrefresh."
msgid "edit patch header"
-msgstr "редактировать заголовок патча"
+msgstr ""
msgid "keep folded patch files"
-msgstr "оÑтавить подшитые файлы патчей"
+msgstr ""
msgid "hg qfold [-e] [-k] [-m TEXT] [-l FILE] PATCH..."
-msgstr "hg qfold [-e] [-k] [-m ТЕКСТ] [-l ФÐЙЛ] ПÐТЧ..."
+msgstr ""
msgid "fold the named patches into the current patch"
-msgstr "подшить перечиÑленные патчи к текущему патчу"
+msgstr ""
msgid ""
" Patches must not yet be applied. Each patch will be successively\n"
@@ -6502,63 +4106,47 @@ msgid ""
" deleted. With -k/--keep, the folded patch files will not be\n"
" removed afterwards."
msgstr ""
-" Патчи не должны быть наложены. Каждый патч будет поÑледовательно "
-"наложен\n"
-" на текущий патч в заданном порÑдке. ЕÑли патчи уÑпешно наложилиÑÑŒ,\n"
-" текущий патч будет обновлен (refreshed) Ñ Ð½Ð¾Ð²Ñ‹Ð¼ Ñовокупным патчем,\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"
-" текущего патча, отделенным Ñтрокой ``* * *``."
msgid "qfold requires at least one patch name"
-msgstr "qfold требует указать Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ одно Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°"
+msgstr ""
#, python-format
-msgid "skipping already folded patch %s\n"
-msgstr "пропуÑкаетÑÑ ÑƒÐ¶Ðµ подшитый патч %s\n"
+msgid "Skipping already folded patch %s\n"
+msgstr ""
#, python-format
msgid "qfold cannot fold already applied patch %s"
-msgstr "qfold не может подшить уже наложенный патч %s"
+msgstr ""
#, python-format
msgid "error folding patch %s"
-msgstr "ошибка при подшивке патча %s"
-
-msgid "tolerate non-conflicting local changes"
-msgstr "допуÑкать неконфликтующие локальные изменениÑ"
+msgstr ""
msgid "overwrite any local changes"
-msgstr "перезапиÑывать вÑе локальные изменениÑ"
-
-msgid "do not save backup copies of files"
-msgstr "не ÑохранÑÑ‚ÑŒ резервные копии файлов"
+msgstr ""
msgid "hg qgoto [OPTION]... PATCH"
-msgstr "hg qgoto [ПÐРÐМЕТР]... ПÐТЧ"
+msgstr ""
msgid "push or pop patches until named patch is at top of stack"
msgstr ""
-"вталкивать или выталкивать патчи, пока указанный патч не окажетÑÑ Ð½Ð° вершине "
-"Ñтека"
msgid "list all patches and guards"
-msgstr "перечиÑлить вÑе патчи и Ñтражей"
+msgstr ""
msgid "drop all guards"
-msgstr "удалить вÑех Ñтражей"
+msgstr ""
msgid "hg qguard [-l] [-n] [PATCH] [-- [+GUARD]... [-GUARD]...]"
-msgstr "hg qguard [-l] [-n] [ПÐТЧ] [-- [+СТРÐЖ]... [-СТРÐЖ]...]"
+msgstr ""
msgid "set or print guards for a patch"
-msgstr "уÑтановить или напечатать Ñтражей Ð´Ð»Ñ Ð¿Ð°Ñ‚Ñ‡Ð°"
+msgstr ""
msgid ""
" Guards control whether a patch can be pushed. A patch with no\n"
@@ -6568,235 +4156,181 @@ msgid ""
"command\n"
" has activated it."
msgstr ""
-" Стражи (guards) контролируют, можно ли протолкнуть (в Ñтек) данный "
-"патч.\n"
-" Патч без Ñтражей проталкиваетÑÑ Ð²Ñегда. Патч Ñ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼ Ñтражем\n"
-" (\"+foo\") проталкиваетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли он был активирован командой\n"
-" :hg:`qselect`. Патч Ñ Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼ Ñтражем (\"-foo\") никогда не\n"
-" проталкиваетÑÑ, еÑли он был активирован командой :hg:`qselect`."
msgid ""
" With no arguments, print the currently active guards.\n"
" With arguments, set guards for the named patch."
msgstr ""
-" Без аргументов печатает активных в данный момент Ñтражей.\n"
-" С аргументами уÑтанавливает Ñтражей Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ патча."
msgid ""
" .. note::\n"
" Specifying negative guards now requires '--'."
msgstr ""
-" .. note::\n"
-" задание отрицательного Ñтража теперь требует '--'."
msgid " To set guards on another patch::"
-msgstr " УÑтановить Ñтражей Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ патча::"
+msgstr ""
msgid " hg qguard other.patch -- +2.6.17 -stable"
-msgstr " hg qguard другой.patch -- +2.6.17 -stable"
+msgstr ""
msgid "cannot mix -l/--list with options or arguments"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ -l/--list Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ параметрами или аргументами"
+msgstr ""
msgid "no patch to work with"
-msgstr "нет патча Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹"
+msgstr ""
#, python-format
msgid "no patch named %s"
-msgstr "нет патча Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ %s"
+msgstr ""
msgid "hg qheader [PATCH]"
-msgstr "hg qheader [ПÐТЧ]"
+msgstr ""
msgid "print the header of the topmost or specified patch"
-msgstr "напечатать заголовок верхнего или указанного патча"
+msgstr ""
msgid "apply on top of local changes"
-msgstr "наложить поверх локальных изменений"
+msgstr ""
msgid "apply the target patch to its recorded parent"
-msgstr "наложить целевой патч на его запиÑанного родителÑ"
+msgstr ""
msgid "list patch name in commit text"
-msgstr "включить Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð° в Ñообщение фикÑации"
+msgstr ""
msgid "apply all patches"
-msgstr "наложить вÑе патчи"
+msgstr ""
msgid "merge from another queue (DEPRECATED)"
-msgstr "Ñлить из другой очереди (УСТÐРЕЛО)"
+msgstr ""
msgid "merge queue name (DEPRECATED)"
-msgstr "Ð¸Ð¼Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ ÑлиÑÐ½Ð¸Ñ (УСТÐРЕЛО)"
+msgstr ""
msgid "reorder patch series and apply only the patch"
msgstr ""
-"переупорÑдочить поÑледовательноÑÑ‚ÑŒ патчей и наложить только данный патч"
msgid "hg qpush [-f] [-l] [-a] [--move] [PATCH | INDEX]"
-msgstr "hg qpush [-f] [-l] [-a] [--move] [ПÐТЧ | ИÐДЕКС]"
+msgstr ""
-# MAYBE: помеÑтить (добавить) Ñледующий патч в Ñтек
msgid "push the next patch onto the stack"
-msgstr "протолкнуть Ñледующий патч в Ñтек"
+msgstr ""
msgid ""
-" By default, abort if the working directory contains uncommitted\n"
-" changes. With --keep-changes, abort only if the uncommitted files\n"
-" overlap with patched files. With -f/--force, backup and patch over\n"
-" uncommitted changes."
+" When -f/--force is applied, all local changes in patched files\n"
+" will be lost."
msgstr ""
-" По умолчанию выполнение прерываетÑÑ, еÑли в рабочем каталоге еÑÑ‚ÑŒ\n"
-" назафикÑированные изменениÑ. С --keep-changes прерываетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾\n"
-" еÑли незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÑекаютÑÑ Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸, на которые\n"
-" накладываетÑÑ Ð¿Ð°Ñ‚Ñ‡. C -f/--force ÑоздаетÑÑ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¸ патч\n"
-" накладываетÑÑ Ð¿Ð¾Ð²ÐµÑ€Ñ… незафикÑированных изменений."
msgid "no saved queues found, please use -n\n"
-msgstr "не найдено Ñохраненных очередей, пожалуйÑта иÑпользуйте -n\n"
+msgstr ""
#, python-format
msgid "merging with queue at: %s\n"
-msgstr "ÑлиÑние Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÑŒÑŽ: %s\n"
+msgstr ""
msgid "pop all patches"
-msgstr "вытолкнуть вÑе патчи"
+msgstr ""
msgid "queue name to pop (DEPRECATED)"
-msgstr "Ð¸Ð¼Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ Ð´Ð»Ñ Ð²Ñ‹Ñ‚Ð°Ð»ÐºÐ¸Ð²Ð°Ð½Ð¸Ñ (УСТÐРЕЛО)"
+msgstr ""
msgid "forget any local changes to patched files"
msgstr ""
-"затереть вÑе локальный Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файлах, на которые накладываетÑÑ Ð¿Ð°Ñ‚Ñ‡"
msgid "hg qpop [-a] [-f] [PATCH | INDEX]"
-msgstr "hg qapplied [-1] [-s] [ПÐТЧ | ИÐДЕКС]"
+msgstr ""
msgid "pop the current patch off the stack"
-msgstr "вытолкнуть текущий патч из Ñтека"
-
-msgid ""
-" Without argument, pops off the top of the patch stack. If given a\n"
-" patch name, keeps popping off patches until the named patch is at\n"
-" the top of the stack."
msgstr ""
-" Без аргументов выталкивает вершину Ñтека патчей. ЕÑли указано имÑ\n"
-" патча, продолжает выталкивать патчи до тех пор, пока указанный патч\n"
-" не окажетÑÑ Ð½Ð° вершине."
msgid ""
-" By default, abort if the working directory contains uncommitted\n"
-" changes. With --keep-changes, abort only if the uncommitted files\n"
-" overlap with patched files. With -f/--force, backup and discard\n"
-" changes made to such files."
+" 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."
msgstr ""
-" По умолчанию выполнение прерываетÑÑ, еÑли в рабочем каталоге имеютÑÑ\n"
-" незафикÑированные изменениÑ. С --keep-changes прерываетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾\n"
-" еÑли незафикÑированные файлы переÑекаютÑÑ Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸, на которые\n"
-" накладываетÑÑ Ð¿Ð°Ñ‚Ñ‡. С -f/--force ÑоздаетÑÑ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¸ вÑе\n"
-" Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² таких файлах отменÑÑŽÑ‚ÑÑ."
#, python-format
msgid "using patch queue: %s\n"
-msgstr "иÑпользуетÑÑ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÑŒ патчей: %s\n"
+msgstr ""
msgid "hg qrename PATCH1 [PATCH2]"
-msgstr "hg qrename ПÐТЧ1 [ПÐТЧ2]"
+msgstr ""
msgid "rename a patch"
-msgstr "переименовать патч"
+msgstr ""
msgid ""
" With one argument, renames the current patch to PATCH1.\n"
" With two arguments, renames PATCH1 to PATCH2."
msgstr ""
-" С одним аргументом переименовывает текущий патч в ПÐТЧ1.\n"
-" С Ð´Ð²ÑƒÐ¼Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð°Ð¼Ð¸ переименовывает ПÐТЧ1 в ПÐТЧ2."
msgid "delete save entry"
-msgstr "удалить запиÑÑŒ ÑохранениÑ"
+msgstr ""
msgid "update queue working directory"
-msgstr "обновить рабочий каталог очереди"
+msgstr ""
msgid "hg qrestore [-d] [-u] REV"
-msgstr "hg qrestore [-d] [-u] РЕВ"
+msgstr ""
msgid "restore the queue state saved by a revision (DEPRECATED)"
-msgstr "воÑÑтановить ÑоÑтоÑние очереди, Ñохраненное в ревизии (УСТÐРЕЛО)"
+msgstr ""
msgid " This command is deprecated, use :hg:`rebase` instead."
-msgstr " Эта команда уÑтарела, иÑпользуйте :hg:`rebase`."
+msgstr ""
msgid "copy patch directory"
-msgstr "копировать каталог патчей"
+msgstr ""
msgid "copy directory name"
-msgstr "копировать Ð¸Ð¼Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð°"
+msgstr ""
msgid "clear queue status file"
-msgstr "очиÑтить файл ÑоÑтоÑÐ½Ð¸Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸"
+msgstr ""
msgid "force copy"
-msgstr "копировать принудительно"
+msgstr ""
msgid "hg qsave [-m TEXT] [-l FILE] [-c] [-n NAME] [-e] [-f]"
-msgstr "hg qsave [-m ТЕКСТ] [-l ФÐЙЛ] [-c] [-n ИМЯ] [-e] [-f]"
+msgstr ""
msgid "save current queue state (DEPRECATED)"
-msgstr "Ñохранить текущее ÑоÑтоÑние очереди (УСТÐРЕЛО)"
+msgstr ""
#, python-format
msgid "destination %s exists and is not a directory"
-msgstr "цель %s ÑущеÑтвует и не ÑвлÑетÑÑ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼"
+msgstr ""
#, python-format
msgid "destination %s exists, use -f to force"
-msgstr "цель %s ÑущеÑтвует, иÑпользуйте -f Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð½ÑƒÐ´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ ÑохранениÑ"
+msgstr ""
#, python-format
msgid "copy %s to %s\n"
-msgstr "копирование %s в %s\n"
-
-msgid ""
-"strip specified revision (optional, can specify revisions without this "
-"option)"
msgstr ""
-"Ñрезать указанную ревизию (необÑзательный, можно задать ревизии и без Ñтого "
-"параметра"
msgid "force removal of changesets, discard uncommitted changes (no backup)"
msgstr ""
-"принудительно изъÑÑ‚ÑŒ наборы изменений, отброÑить незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ "
-"(без резервной копии)."
msgid ""
"bundle only changesets with local revision number greater than REV which are "
"not descendants of REV (DEPRECATED)"
msgstr ""
-"укомплектовать только наборы изменений Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ номерами ревизий "
-"большими, чем РЕВ, и не ÑвлÑющимиÑÑ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ°Ð¼Ð¸ РЕВизии (УСТÐРЕЛО)"
msgid "no backups"
-msgstr "без резервного копированиÑ"
+msgstr ""
msgid "no backups (DEPRECATED)"
-msgstr "без резервного ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (УСТÐРЕЛО)"
-
-msgid "ignored (DEPRECATED)"
-msgstr "игнорируетÑÑ (УСТÐРЕЛО)"
+msgstr ""
msgid "do not modify working copy during strip"
-msgstr "не изменÑÑ‚ÑŒ рабочую копию во во Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸ strip"
-
-msgid "remove revs only reachable from given bookmark"
-msgstr "удалить ревизии, доÑтупные только через указанную закладку"
+msgstr ""
-msgid "hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV..."
-msgstr "hg strip [-k] [-f] [-n] [-B закладка] [-r] РЕВИЗИЯ..."
+msgid "hg strip [-k] [-f] [-n] REV..."
+msgstr ""
msgid "strip changesets and all their descendants from the repository"
-msgstr "Ñрезать наборы изменений и вÑех их потомков из хранилища"
+msgstr ""
msgid ""
" The strip command removes the specified changesets and all their\n"
@@ -6804,10 +4338,6 @@ msgid ""
" operation is aborted unless the --force flag is supplied, in which\n"
" case changes will be discarded."
msgstr ""
-" Команда strip удалÑет указанные наборы изменений и вÑех их потомков.\n"
-" ЕÑли рабочий каталог имеет незафикÑированные изменениÑ, операциÑ\n"
-" отменÑетÑÑ, еÑли только не указан флаг --force, в Ñлучае чего\n"
-" Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ отброшены."
msgid ""
" If a parent of the working directory is stripped, then the working\n"
@@ -6815,9 +4345,6 @@ msgid ""
" available ancestor of the stripped parent after the operation\n"
" completes."
msgstr ""
-" ЕÑли ÑрезаетÑÑ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒ рабочего каталога, то рабочий каталог\n"
-" будет автоматичеÑки обновлен на Ñамого позднего предка\n"
-" Ñрезаемого Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ð¿Ð¾Ñле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸."
msgid ""
" Any stripped changesets are stored in ``.hg/strip-backup`` as a\n"
@@ -6827,58 +4354,32 @@ msgid ""
" the local revision numbers will in general be different after the\n"
" restore."
msgstr ""
-" Ð’Ñе Ñрезанные наборы изменений ÑохранÑÑŽÑ‚ÑÑ Ð² ``.hg/strip-backup``\n"
-" в виде комплекта (Ñм. :hg:`help bundle` и :hg:`help unbundle`). Они\n"
-" могут быть воÑÑтановлены Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`unbundle .hg/strip-backup/"
-"КОМПЛЕКТ`,\n"
-" где КОМПЛЕКТ - Ñто Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° комплекта, Ñозданного при Ñрезании.\n"
-" Обратите внимание, что локальные номера ревизий в общем Ñлучае будут\n"
-" отличатьÑÑ Ð¿Ð¾Ñле воÑÑтановлениÑ."
msgid ""
" Use the --no-backup option to discard the backup bundle once the\n"
" operation completes."
msgstr ""
-" ИÑпользуйте параметр --no-backup чтобы удалить комплект резервного\n"
-" воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñразу поÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸."
-
-msgid ""
-" Strip is not a history-rewriting operation and can be used on\n"
-" changesets in the public phase. But if the stripped changesets have\n"
-" been pushed to a remote repository you will likely pull them again."
-msgstr ""
-" Strip не изменÑет иÑторию, поÑтому может быть иÑпользована на наборах\n"
-" изменений в публичной фазе. Ðо еÑли вырезанный набор изменений\n"
-" был запиÑан в отдаленное хранилище, Ñкорее вÑего вы затÑните его Ñнова."
-
-#, python-format
-msgid "bookmark '%s' not found"
-msgstr "закладка '%s' не найдена"
-
-#, python-format
-msgid "bookmark '%s' deleted\n"
-msgstr "закладк '%s' удалена\n"
msgid "empty revision set"
-msgstr "пуÑтой набор ревизий"
+msgstr ""
msgid "disable all guards"
-msgstr "отключить вÑех Ñтражей"
+msgstr ""
msgid "list all guards in series file"
-msgstr "перечиÑлить вÑех Ñтражей в файле поÑледовательноÑтей"
+msgstr ""
msgid "pop to before first guarded applied patch"
-msgstr "вытолкнуть из Ñтека до первого защищенного Ñтражем наложенного патча"
+msgstr ""
msgid "pop, then reapply patches"
-msgstr "вытолкнуть, затем Ñнова наложить патчи"
+msgstr ""
msgid "hg qselect [OPTION]... [GUARD]..."
-msgstr "hg qselect [ПÐРÐМЕТР]... [СТРÐЖ]..."
+msgstr ""
msgid "set or print guarded patches to push"
-msgstr "задать или напечатать защищенные патчи Ð´Ð»Ñ Ð¿Ð¾Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð² Ñтек"
+msgstr ""
msgid ""
" Use the :hg:`qguard` command to set or print guards on patch, then use\n"
@@ -6887,49 +4388,29 @@ msgid ""
" selected guard, but will not be pushed if any negative guards\n"
" match the current guard. For example::"
msgstr ""
-" ИÑпользуйте команду :hg:`qguard` чтобы задать или напечатать Ñтражей\n"
-" патча, поÑле Ñтого иÑпользуйте qselect чтобы указать mq, каких Ñтражей\n"
-" иÑпользовать. Патч будет помещен в Ñтек, еÑли у него Ñтражей или\n"
-" любой из положительных Ñтражей Ñовпадает Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼ на данный момент\n"
-" Ñтражем, но не будет помещен в Ñтек, еÑли Ñовпадет любой отрицательный\n"
-" Ñтраж."
-# BUG: line breaks not preserved in Russian
msgid ""
" qguard foo.patch -- -stable (negative guard)\n"
" qguard bar.patch +stable (positive guard)\n"
" qselect stable"
msgstr ""
-" qguard foo.patch -- -stable (отрицательный Ñтраж)\n"
-" qguard bar.patch +stable (положительный Ñтраж)\n"
-" qselect stable"
msgid ""
" This activates the \"stable\" guard. mq will skip foo.patch (because\n"
" it has a negative match) but push bar.patch (because it has a\n"
" positive match)."
msgstr ""
-" Это активирует Ñтраж \"stable\". mq пропуÑтит foo.patch\n"
-" (Ñовпадает отрицательный Ñтраж), но помеÑтит в Ñтек bar.patch \n"
-" (Ñовпадает положительный Ñтраж)"
msgid ""
" With no arguments, prints the currently active guards.\n"
" With one argument, sets the active guard."
msgstr ""
-" Без аргументов печатает активных в данный момент Ñтражей.\n"
-" С одним аргументом задает активного Ñтража."
-# MAYBE BUG: а не наоборот?
msgid ""
" Use -n/--none to deactivate guards (no other arguments needed).\n"
" When no guards are active, patches with positive guards are\n"
" skipped and patches with negative guards are pushed."
msgstr ""
-" ИÑпользуйте -n/--none чтобы деактивировать Ñтражей (не требуетÑÑ\n"
-" дополнительных аргументов). ЕÑли активных Ñтражей нет, патчи Ñ\n"
-" положительными Ñтражами пропуÑкаютÑÑ, а патчи Ñ Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼Ð¸\n"
-" Ñтражами помещаютÑÑ Ð² Ñтек"
msgid ""
" qselect can change the guards on applied patches. It does not pop\n"
@@ -6938,67 +4419,55 @@ msgid ""
" --pop) to push back to the current patch afterwards, but skip\n"
" guarded patches."
msgstr ""
-" qselect может менÑÑ‚ÑŒ Ñтражей на наложенных патчах. По умолчанию\n"
-" он не выталкивает защищенные патчи из Ñтека. ИÑпользуйте --pop чтобы\n"
-" вытолкнуть патчи вплоть до поÑледнего наложенного патча без Ñтражей.\n"
-" ИÑпользуйте --reapply (который подразумевает --pop) чтобы втолкнуть\n"
-" поÑле Ñтого вÑе патчи вплоть до текущего, пропуÑÐºÐ°Ñ Ð¿Ñ€Ð¸ Ñтом патчи\n"
-" Ñо Ñтражами."
msgid ""
" Use -s/--series to print a list of all guards in the series file\n"
" (no other arguments needed). Use -v for more information."
msgstr ""
-" ИÑпользуйте -s/--series чтобы напечатать ÑпиÑок вÑех Ñтражей в файле\n"
-" поÑледовательноÑтей (других аргументов не требуетÑÑ). Чтобы вывеÑти\n"
-" дополнительную информацию, иÑпользуйте -v."
msgid "guards deactivated\n"
-msgstr "Ñтражи деактивированы\n"
+msgstr ""
#, python-format
msgid "number of unguarded, unapplied patches has changed from %d to %d\n"
-msgstr "количеÑтво незащищённых неналоженных патчей изменилоÑÑŒ c %d на %d\n"
+msgstr ""
#, python-format
msgid "number of guarded, applied patches has changed from %d to %d\n"
-msgstr "количеÑтво незащищённых наложенных патчей изменилоÑÑŒ c %d на %d\n"
+msgstr ""
msgid "guards in series file:\n"
-msgstr "Ñтражей в файле поÑледовательноÑтей:\n"
+msgstr ""
msgid "no guards in series file\n"
-msgstr "нет Ñтражей в файле поÑледовательноÑтей\n"
+msgstr ""
msgid "active guards:\n"
-msgstr "активные Ñтражи:\n"
+msgstr ""
msgid "no active guards\n"
-msgstr "нет активных Ñтражей\n"
+msgstr ""
msgid "popping guarded patches\n"
-msgstr "выталкиваем защищенные патчи\n"
+msgstr ""
msgid "reapplying unguarded patches\n"
-msgstr "заново накладываем незащищённые патчи\n"
+msgstr ""
msgid "finish all applied changesets"
-msgstr "финализировать вÑе наложенные патчи"
+msgstr ""
msgid "hg qfinish [-a] [REV]..."
-msgstr "hg qfinish [-a] [РЕВ]..."
+msgstr ""
msgid "move applied patches into repository history"
-msgstr "перемеÑтить наложенные патчи в иÑторию хранилища"
+msgstr ""
msgid ""
" Finishes the specified revisions (corresponding to applied\n"
" patches) by moving them out of mq control into regular repository\n"
" history."
msgstr ""
-" Финализирует указанные ревизии (ÑоответÑтвующие наложенным патчам)\n"
-" путем Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¸Ñ… из-под ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ mq в иÑторию обычного\n"
-" хранилища."
msgid ""
" Accepts a revision range or the -a/--applied option. If --applied\n"
@@ -7006,70 +4475,49 @@ msgid ""
" control. Otherwise, the given revisions must be at the base of the\n"
" stack of applied patches."
msgstr ""
-" Принимает диапазон ревизий или параметр -a/--applied. ЕÑли указан\n"
-" --applied, вÑе наложенные ревизии mq изымаютÑÑ Ð¸Ð·-под ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ mq.\n"
-" Ð’ противном Ñлучае указанные ревизии должны быть в оÑновании Ñтека\n"
-" примененных патчей."
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."
msgstr ""
-" Это может быть оÑобенно полезным, еÑли ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±Ñ‹Ð»Ð¸ наложены\n"
-" в вышеÑтоÑщем (upstream) хранилище, или вы как раз ÑобираетеÑÑŒ\n"
-" протолкнуть туда ваши изменениÑ."
msgid "no revisions specified"
-msgstr "ревизии не заданы"
-
-msgid "warning: uncommitted changes in the working directory\n"
-msgstr "внимание: незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² рабочем каталоге\n"
+msgstr ""
msgid "list all available queues"
-msgstr "перечиÑлить вÑе доÑтупные очереди"
-
-msgid "print name of active queue"
-msgstr "напечатать Ð¸Ð¼Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð¹ очереди"
+msgstr ""
msgid "create new queue"
-msgstr "Ñоздать новую очередь"
+msgstr ""
msgid "rename active queue"
-msgstr "переименовать активную очередь"
+msgstr ""
msgid "delete reference to queue"
-msgstr "удалить ÑÑылку на очередь"
+msgstr ""
msgid "delete queue, and remove patch dir"
-msgstr "удалить очередь и удалить каталог патчей"
+msgstr ""
msgid "[OPTION] [QUEUE]"
-msgstr "[ПÐРÐМЕТР] [ОЧЕРЕДЬ]"
+msgstr ""
msgid "manage multiple patch queues"
-msgstr "управление неÑколькими очередÑми патчей"
+msgstr ""
msgid ""
" Supports switching between different patch queues, as well as creating\n"
" new patch queues and deleting existing ones."
msgstr ""
-" Поддерживает переключение между различными очередÑми патчей, а также\n"
-" Ñоздание новых очередей и удаление ÑущеÑтвующих."
msgid ""
" Omitting a queue name or specifying -l/--list will show you the "
"registered\n"
" queues - by default the \"normal\" patches queue is registered. The "
"currently\n"
-" active queue will be marked with \"(active)\". Specifying --active will "
-"print\n"
-" only the name of the active queue."
+" active queue will be marked with \"(active)\"."
msgstr ""
-" ЕÑли Ð¸Ð¼Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ опущено или указан -l/--list, показывает\n"
-" зарегиÑтрированные очереди - по умолчанию зарегиÑтрирована очередь\n"
-" \"normal\". ÐÐºÑ‚Ð¸Ð²Ð½Ð°Ñ Ð² наÑтоÑщий момент очередь будет помечена\n"
-" \"(активна)\". С флагом --active напечатает только Ð¸Ð¼Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð¹ очереди."
msgid ""
" To create a new queue, use -c/--create. The queue is automatically made\n"
@@ -7077,544 +4525,303 @@ msgid ""
" currently active queue in the repository. Then the queue will only be\n"
" created and switching will fail."
msgstr ""
-" Чтобы Ñоздать новую очередь, иÑпользуйте -c/--create. Очередь\n"
-" автоматичеÑки делаетÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð¹, за иÑключением ÑлучаÑ, когда в\n"
-" хранилище еÑÑ‚ÑŒ наложенные патчи из текущей активной очереди. Тогда\n"
-" очередь будет только Ñоздана, а переключение завершитÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹."
msgid ""
" To delete an existing queue, use --delete. You cannot delete the "
"currently\n"
" active queue."
msgstr ""
-" Чтобы удалить ÑущеÑтвующую очередь, иÑпользуйте --delete. ÐельзÑ\n"
-" удалить текущую активную очередь."
msgid "patches applied - cannot set new queue active"
-msgstr "патчи наложены - невозможно Ñделать новую очередь активной"
+msgstr ""
msgid "cannot delete queue that does not exist"
-msgstr "невозможно удалить неÑущеÑтвующую очередь"
+msgstr ""
msgid "cannot delete currently active queue"
-msgstr "невозможно удалить текущую активную очередь"
+msgstr ""
msgid " (active)\n"
-msgstr " (активна)\n"
+msgstr ""
msgid "invalid queue name, may not contain the characters \":\\/.\""
-msgstr "неверное Ð¸Ð¼Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸, Ñимволы \":\\/.\" недопуÑтимы"
+msgstr ""
#, python-format
msgid "queue \"%s\" already exists"
-msgstr "очередь \"%s\" уже ÑущеÑтвует"
+msgstr ""
#, python-format
msgid "can't rename \"%s\" to its current name"
-msgstr "не могу переименовать \"%s\" в ее текущее имÑ"
+msgstr ""
#, python-format
msgid "non-queue directory \"%s\" already exists"
-msgstr "каталог, не Ñодержащий очереди, \"%s\" уже ÑущеÑтвует"
+msgstr ""
msgid "use --create to create a new queue"
-msgstr "иÑпользуйте --create чтобы Ñоздать новую очередь"
+msgstr ""
msgid "cannot commit over an applied mq patch"
-msgstr "не могу зафикÑировать поверх наложенного патч mq"
+msgstr ""
+
+msgid "source has mq patches applied"
+msgstr ""
#, python-format
msgid "mq status file refers to unknown node %s\n"
-msgstr "файл ÑоÑтоÑÐ½Ð¸Ñ mq ÑÑылаетÑÑ Ð½Ð° неизвеÑтный узел %s\n"
+msgstr ""
#, python-format
-msgid "tag %s overrides mq patch of the same name\n"
-msgstr "метка %s подменÑет патч mq Ñ Ñ‚Ð°ÐºÐ¸Ð¼ же именем\n"
+msgid "Tag %s overrides mq patch of the same name\n"
+msgstr ""
msgid "cannot import over an applied patch"
-msgstr "невозможно импортировать поверх наложенного патча"
+msgstr ""
msgid "only a local queue repository may be initialized"
-msgstr "можно инициализировать только локальное хранилище очереди"
+msgstr ""
msgid "there is no Mercurial repository here (.hg not found)"
-msgstr "здеÑÑŒ нет хранилища Mercurial (.hg не найден)"
+msgstr "здеÑÑŒ нет Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Mercurial (.hg не найден)"
msgid "no queue repository"
-msgstr "нет хранилища очереди"
+msgstr ""
#, python-format
msgid "%d applied"
-msgstr "%d наложено"
+msgstr ""
#, python-format
msgid "%d unapplied"
-msgstr "%d неналожено"
+msgstr ""
msgid "mq: (empty queue)\n"
-msgstr "mq: (очередь пуÑта)\n"
+msgstr ""
msgid ""
"``mq()``\n"
" Changesets managed by MQ."
msgstr ""
-"``mq()``\n"
-" Ðаборы изменений, контролируемые MQ."
msgid "mq takes no arguments"
msgstr "mq не требует аргументов"
msgid "operate on patch repository"
-msgstr "работать Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÐ¼ патчей mq"
-
-msgid "hooks for sending email push notifications"
-msgstr "хуки Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ уведомлений о новых изменениÑÑ… по email"
-
-msgid ""
-"This extension implements hooks to send email notifications when\n"
-"changesets are sent from or received by the local repository."
-msgstr ""
-"Это раÑширение реализует хуки, отправлÑющие уведомлениÑ\n"
-"по email, когда наборы изменений проталкиваютÑÑ Ð¸Ð»Ð¸ затÑгиваютÑÑ\n"
-"или получающей Ñтороны."
+msgstr "работать Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸ÐµÐ¼ патчей mq"
-msgid ""
-"First, enable the extension as explained in :hg:`help extensions`, and\n"
-"register the hook you want to run. ``incoming`` and ``changegroup`` hooks\n"
-"are run when changesets are received, while ``outgoing`` hooks are for\n"
-"changesets sent to another repository::"
-msgstr ""
-"Первым делом, включите раÑширение, как Ñто опиÑано в :hg:`help extensions`\n"
-"и зарегиÑтрируйте хук, который вы желаете запуÑкать. При получении,\n"
-"изменений, выполнÑÑŽÑ‚ÑÑ Ñ…ÑƒÐºÐ¸ ``incoming`` и ``changegroup``,\n"
-"в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº ``outgoing`` вызываетÑÑ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°ÐµÐ¼Ñ‹Ñ… в другое хранилище\n"
-"наборов изменений::"
-
-msgid ""
-" [hooks]\n"
-" # one email for each incoming changeset\n"
-" incoming.notify = python:hgext.notify.hook\n"
-" # one email for all incoming changesets\n"
-" changegroup.notify = python:hgext.notify.hook"
-msgstr ""
-" [hooks]\n"
-" # один email Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ входÑщего набора изменений\n"
-" incoming.notify = python:hgext.notify.hook\n"
-" # один email Ð´Ð»Ñ Ð²Ñех входÑщих наборов изменений\n"
-" changegroup.notify = python:hgext.notify.hook"
-
-msgid ""
-" # one email for all outgoing changesets\n"
-" outgoing.notify = python:hgext.notify.hook"
+msgid "hooks for sending email notifications at commit/push time"
msgstr ""
-" # один email Ð´Ð»Ñ Ð²Ñех иÑходÑщих наборов изменений\n"
-" outgoing.notify = python:hgext.notify.hook"
msgid ""
-"This registers the hooks. To enable notification, subscribers must\n"
-"be assigned to repositories. The ``[usersubs]`` section maps multiple\n"
-"repositories to a given recipient. The ``[reposubs]`` section maps\n"
-"multiple recipients to a single repository::"
+"Subscriptions can be managed through a hgrc file. Default mode is to\n"
+"print messages to stdout, for testing and configuring."
msgstr ""
-"Таким образом хуки зарегиÑтрированы. Чтобы включить уведомлениÑ,\n"
-"подпиÑчики должны быть ÑвÑзаны Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°Ð¼Ð¸. Ð¡ÐµÐºÑ†Ð¸Ñ ``[usersubs]``\n"
-"ÑвÑзывает неÑколько хранилищ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ получателем. Ð¡ÐµÐºÑ†Ð¸Ñ ``[reposubs]``\n"
-"ÑвÑзывает неÑколько получателей Ñ Ð¾Ð´Ð½Ð¸Ð¼ хранилищем::"
msgid ""
-" [usersubs]\n"
-" # key is subscriber email, value is a comma-separated list of repo glob\n"
-" # patterns\n"
-" user@host = pattern"
+"To use, configure the notify extension and enable it in hgrc like\n"
+"this::"
msgstr ""
-" [usersubs]\n"
-" # ключ - email подпиÑчика, значение - разделенный запÑтыми ÑпиÑок "
-"шаблонов\n"
-" # в Ñтиле glob (glob patterns)\n"
-" пользователь@хоÑÑ‚ = шаблон"
msgid ""
-" [reposubs]\n"
-" # key is glob pattern, value is a comma-separated list of subscriber\n"
-" # emails\n"
-" pattern = user@host"
+" [extensions]\n"
+" notify ="
msgstr ""
-" [reposubs]\n"
-" # ключ - шаблон в Ñтиле glob, значение - разделенный запÑтыми ÑпиÑок\n"
-" # email-адреÑов\n"
-" шаблон = пользователь@хоÑÑ‚"
msgid ""
-"Glob patterns are matched against absolute path to repository\n"
-"root."
-msgstr "Шаблоны ÑопоÑтавлÑÑŽÑ‚ÑÑ Ñ Ð°Ð±Ñолютными путÑми к корню хранилища."
-
-msgid ""
-"In order to place them under direct user management, ``[usersubs]`` and\n"
-"``[reposubs]`` sections may be placed in a separate ``hgrc`` file and\n"
-"incorporated by reference::"
+" [hooks]\n"
+" # one email for each incoming changeset\n"
+" incoming.notify = python:hgext.notify.hook\n"
+" # batch emails when many changesets incoming at one time\n"
+" changegroup.notify = python:hgext.notify.hook\n"
+" # batch emails when many changesets outgoing at one time (client side)\n"
+" outgoing.notify = python:hgext.notify.hook"
msgstr ""
-"Секции ``[reposubs]`` и ``[usersubs]`` могут быть помещены в отдельный файл\n"
-"конфигурации (hgrc), Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы пользователь мог Ñвно управлÑÑ‚ÑŒ ими, и\n"
-"могут подключатьÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑÑылки:"
msgid ""
" [notify]\n"
-" config = /path/to/subscriptionsfile"
-msgstr ""
-" [notify]\n"
-" config = /путь/к/файлу/подпиÑок"
-
-msgid ""
-"Notifications will not be sent until the ``notify.test`` value is set\n"
-"to ``False``; see below."
-msgstr ""
-"Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð½Ðµ будут отправлÑÑ‚ÑŒÑÑ Ð´Ð¾ тех пор, пока вы не уÑтановите\n"
-" ``notify.test`` в ``False``; Ñм. далее."
-
-msgid ""
-"Notifications content can be tweaked with the following configuration "
-"entries:"
-msgstr ""
-"Содержимое уведомлений может быть наÑтроено Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñледующих параметров:"
-
-msgid ""
-"notify.test\n"
-" If ``True``, print messages to stdout instead of sending them. Default: "
-"True."
-msgstr ""
-"notify.test\n"
-" ЕÑли ``True`` (ИÑтина), печатать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð½Ð° Ñтандартный вывод вмеÑто\n"
-" их отправки. По умолчанию: True."
-
-msgid ""
-"notify.sources\n"
-" Space-separated list of change sources. Notifications are activated only\n"
-" when a changeset's source is in this list. Sources may be:"
-msgstr ""
-"notify.sources\n"
-" Разделенный пробелами ÑпиÑок иÑточников изменений. Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ "
-"активируютÑÑ\n"
-" только когда иÑточник набора изменений находитÑÑ Ð² Ñтом ÑпиÑке.\n"
-" ИÑточником могут быть:"
-
-msgid ""
-" :``serve``: changesets received via http or ssh\n"
-" :``pull``: changesets received via ``hg pull``\n"
-" :``unbundle``: changesets received via ``hg unbundle``\n"
-" :``push``: changesets sent or received via ``hg push``\n"
-" :``bundle``: changesets sent via ``hg unbundle``"
-msgstr ""
-" :``serve``: наборы изменений, полученные по http или ssh\n"
-" :``pull``: наборы изменений, полученные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ``hg pull``\n"
-" :``unbundle``: наборы изменений, полученные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ``hg unbundle``\n"
-" :``push``: наборы изменений, полученные или отправленные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ``hg "
-"push``\n"
-" :``bundle``: наборы изменений, отправленные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ``hg unbundle``"
-
-msgid " Default: serve."
-msgstr " По умолчанию: serve."
-
-msgid ""
-"notify.strip\n"
-" Number of leading slashes to strip from url paths. By default, "
-"notifications\n"
-" reference repositories with their absolute path. ``notify.strip`` lets "
-"you\n"
-" turn them into relative paths. For example, ``notify.strip=3`` will "
-"change\n"
-" ``/long/path/repository`` into ``repository``. Default: 0."
-msgstr ""
-"notify.strip\n"
-" КоличеÑтво ведущих ÑлÑшей, вырезаемых из путей URL. По умолчанию\n"
-" ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ ÑÑылаютÑÑ Ð½Ð° хранилища по их полным путÑм. ``notify.strip``\n"
-" позволÑет превратить их в отноÑительные. Ðапример, ``notify.strip=3``\n"
-" заменит ``/длинный/путь/хранилища`` на ``хранилища``. По умолчанию: 0."
-
-msgid ""
-"notify.domain\n"
-" Default email domain for sender or recipients with no explicit domain."
-msgstr ""
-"notify.domain\n"
-" Домен email, иÑпользуемый по умолчанию Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ получателей,\n"
-" еÑли он не задан Ñвно."
-
-msgid ""
-"notify.style\n"
-" Style file to use when formatting emails."
-msgstr ""
-"notify.style\n"
-" файл ÑтилÑ, иÑпользуемого Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¸Ñем."
-
-msgid ""
-"notify.template\n"
-" Template to use when formatting emails."
+" # config items go here"
msgstr ""
-"notify.template\n"
-" Шаблон, иÑпользуемый при форматировании пиÑем."
-msgid ""
-"notify.incoming\n"
-" Template to use when run as an incoming hook, overriding ``notify."
-"template``."
+msgid "Required configuration items::"
msgstr ""
-"notify.incoming\n"
-" Шаблон, иÑпользуемый при запуÑке в качеÑтве хука Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñщих изменений,"
-"переопределÑет ``notify.template``."
-msgid ""
-"notify.outgoing\n"
-" Template to use when run as an outgoing hook, overriding ``notify."
-"template``."
+msgid " config = /path/to/file # file containing subscriptions"
msgstr ""
-"notify.outgoing\n"
-" Шаблон, иÑпользуемый при запуÑке в качеÑтве хука Ð´Ð»Ñ Ð¸ÑходÑщих изменений,"
-"переопределÑет ``notify.template``."
-msgid ""
-"notify.changegroup\n"
-" Template to use when running as a changegroup hook, overriding\n"
-" ``notify.template``."
+msgid "Optional configuration items::"
msgstr ""
-"notify.changegroup\n"
-" Шаблон, иÑпользуемый при запуÑке в качеÑтве хука Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ изменений\n"
-" (changegroup), переопределÑет ``notify.template``."
msgid ""
-"notify.maxdiff\n"
-" Maximum number of diff lines to include in notification email. Set to 0\n"
-" to disable the diff, or -1 to include all of it. Default: 300."
-msgstr ""
-"notify.maxdiff\n"
-" МакÑимальное количеÑтво Ñтрок различий, включаемых в пиÑьмо уведомлениÑ.\n"
-" УÑтановите в 0, чтобы убрать различиÑ, в -1 - включить их полноÑтью.\n"
-" По умолчанию: 300."
-
-msgid ""
-"notify.maxsubject\n"
-" Maximum number of characters in email's subject line. Default: 67."
-msgstr ""
-"notify.maxsubject\n"
-" МакÑимальное количеÑтво Ñимволов в теме (\"Subject:\") пиÑьма. По "
-"умолчанию: 67."
-
-msgid ""
-"notify.diffstat\n"
-" Set to True to include a diffstat before diff content. Default: True."
-msgstr ""
-"notify.diffstat\n"
-" УÑтановите в True, чтобы добавить ÑтатиÑтику (diffstat) перед Ñодержимым\n"
-" различий. По умолчанию: True."
-
-msgid ""
-"notify.merge\n"
-" If True, send notifications for merge changesets. Default: True."
+" test = True # print messages to stdout for testing\n"
+" strip = 3 # number of slashes to strip for url paths\n"
+" domain = example.com # domain to use if committer missing domain\n"
+" style = ... # style file to use when formatting email\n"
+" template = ... # template to use when formatting email\n"
+" incoming = ... # template to use when run as incoming hook\n"
+" outgoing = ... # template to use when run as outgoing hook\n"
+" changegroup = ... # template to use when run as changegroup hook\n"
+" maxdiff = 300 # max lines of diffs to include (0=none, -1=all)\n"
+" maxsubject = 67 # truncate subject line longer than this\n"
+" diffstat = True # add a diffstat before the diff content\n"
+" sources = serve # notify if source of incoming changes in this "
+"list\n"
+" # (serve == ssh or http, push, pull, bundle)\n"
+" merge = False # send notification for merges (default True)\n"
+" [email]\n"
+" from = user@host.com # email address to send as if none given\n"
+" [web]\n"
+" baseurl = http://hgserver/... # root of hg web site for browsing commits"
msgstr ""
-"notify.merge\n"
-" ЕÑли иÑтинно (True), отправлÑÑ‚ÑŒ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð² изменений "
-"ÑлиÑниÑ.\n"
-" По умолчанию: True."
msgid ""
-"notify.mbox\n"
-" If set, append mails to this mbox file instead of sending. Default: None."
+"The notify config file has same format as a regular hgrc file. It has\n"
+"two sections so you can express subscriptions in whatever way is\n"
+"handier for you."
msgstr ""
-"notify.mbox\n"
-" ЕÑли задан, добавлÑет email-ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ðº Ñтому mbox-файлу вмеÑто отправки.\n"
-" По умолчанию: не задан."
msgid ""
-"notify.fromauthor\n"
-" If set, use the committer of the first changeset in a changegroup for\n"
-" the \"From\" field of the notification mail. If not set, take the user\n"
-" from the pushing repo. Default: False."
+" [usersubs]\n"
+" # key is subscriber email, value is \",\"-separated list of glob patterns\n"
+" user@host = pattern"
msgstr ""
-"notify.fromauthor\n"
-" ЕÑли задано, иÑпользовать автора первого Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ изменений длÑ\n"
-" Ð¿Ð¾Ð»Ñ \"От\" email-ÑообщениÑ. ЕÑли не задан, иÑпользовать Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð· "
-"иÑходÑщего хранилища.\n"
-" По умолчанию: False (Ложь)"
msgid ""
-"If set, the following entries will also be used to customize the\n"
-"notifications:"
+" [reposubs]\n"
+" # key is glob pattern, value is \",\"-separated list of subscriber emails\n"
+" pattern = user@host"
msgstr ""
-"Следующие параметры также иÑпользуютÑÑ Ð´Ð»Ñ Ð½Ð°Ñтройки уведомлений,\n"
-"еÑли заданы их значениÑ:"
-msgid ""
-"email.from\n"
-" Email ``From`` address to use if none can be found in the generated\n"
-" email content."
+msgid "Glob patterns are matched against path to repository root."
msgstr ""
-"email.from\n"
-" ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ ``От`` (``From``), еÑли нет другого подходÑщего\n"
-" адреÑа в Ñгенерированном Ñообщении."
msgid ""
-"web.baseurl\n"
-" Root repository URL to combine with repository paths when making\n"
-" references. See also ``notify.strip``."
+"If you like, you can put notify config file in repository that users\n"
+"can push changes to, they can manage their own subscriptions.\n"
msgstr ""
-"web.baseurl\n"
-" URL ÐºÐ¾Ñ€Ð½Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°, приÑоединÑемый к путÑм хранилища\n"
-" при Ñоздании ÑÑылок. См. также ``notify.strip``."
#, python-format
msgid "%s: %d new changesets"
-msgstr "%s: %d новых наборов изменений"
+msgstr ""
#, python-format
msgid "notify: sending %d subscribers %d changes\n"
-msgstr "notify: отправлÑетÑÑ %d подпиÑчикам, %d изменений\n"
+msgstr ""
#, python-format
msgid ""
"\n"
"diffs (truncated from %d to %d lines):"
msgstr ""
-"\n"
-"Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ (урезанные Ñ %d до %d Ñтрок):"
#, python-format
msgid ""
"\n"
"diffs (%d lines):"
msgstr ""
-"\n"
-"Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ (%d Ñтрок):"
#, python-format
msgid "notify: suppressing notification for merge %d:%s\n"
-msgstr "notify: подавлÑетÑÑ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ðµ о ÑлиÑнии %d:%s\n"
+msgstr ""
msgid "browse command output with an external pager"
-msgstr "проÑмотр вывода команд Ñ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ¾Ð¹ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ внешней программы"
+msgstr ""
msgid "To set the pager that should be used, set the application variable::"
msgstr ""
-"Чтобы задать иÑпользуемую программу проÑмотра (pager), уÑтановите\n"
-"переменную приложениÑ::"
msgid ""
" [pager]\n"
-" pager = less -FRX"
+" pager = less -FRSX"
msgstr ""
-" [pager]\n"
-" pager = less -FRX"
msgid ""
"If no pager is set, the pager extensions uses the environment variable\n"
"$PAGER. If neither pager.pager, nor $PAGER is set, no pager is used."
msgstr ""
-"ЕÑли программа проÑмотра не задана, раÑширение pager иÑпользует переменную\n"
-"Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ $PAGER. ЕÑли не заданы ни pager.pager, ни $PAGER, программа\n"
-"проÑмотра не иÑпользуетÑÑ."
+
+msgid ""
+"If you notice \"BROKEN PIPE\" error messages, you can disable them by\n"
+"setting::"
+msgstr ""
+
+msgid ""
+" [pager]\n"
+" quiet = True"
+msgstr ""
msgid ""
"You can disable the pager for certain commands by adding them to the\n"
"pager.ignore list::"
msgstr ""
-"Можно отключить программу проÑмотра Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ñ… команд, добавив\n"
-"их в ÑпиÑок pager.ignore::"
msgid ""
" [pager]\n"
" ignore = version, help, update"
msgstr ""
-" [pager]\n"
-" ignore = version, help, update"
msgid ""
"You can also enable the pager only for certain commands using\n"
"pager.attend. Below is the default list of commands to be paged::"
msgstr ""
-"Ð’Ñ‹ также можете включить команду проÑмотра только Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ…\n"
-"команд, иÑпользую pager.attend. Ðиже предÑтавлен ÑпиÑок команд,\n"
-"Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… проÑмотр Ñ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ¾Ð¹ иÑпользуетÑÑ Ð¿Ð¾ умолчанию::"
msgid ""
" [pager]\n"
" attend = annotate, cat, diff, export, glog, log, qdiff"
msgstr ""
-" [pager]\n"
-" attend = annotate, cat, diff, export, glog, log, qdiff"
msgid ""
"Setting pager.attend to an empty value will cause all commands to be\n"
"paged."
msgstr ""
-"УÑтановка pager.attend в пуÑтое значение активирует программу проÑмотра\n"
-"Ð´Ð»Ñ Ð²Ñех команд."
msgid "If pager.attend is present, pager.ignore will be ignored."
-msgstr "ЕÑли задан pager.attend, pager.ignore игнорируетÑÑ."
+msgstr ""
msgid ""
"To ignore global commands like :hg:`version` or :hg:`help`, you have\n"
"to specify them in your user configuration file."
msgstr ""
-"Чтобы игнорировать глобальные команды, такие как :hg:`version` или\n"
-":hg:`help`, необходимо указать из вашем конфигурационном файле."
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 ""
-"Параметр командной Ñтроки --pager=... также может иÑпользоватьÑÑ, чтобы\n"
-"контролировать иÑпользуемую программу проÑмотра. ИÑпользуйте логичеÑкие\n"
-"значениÑ, такие yes (да), no (нет), on (вкл), off (выкл), либо иÑпользуйте\n"
-"auto Ð´Ð»Ñ Ñтандартного поведениÑ.\n"
msgid "when to paginate (boolean, always, auto, or never)"
msgstr ""
-"когда иÑпользовать прокрутку (логичеÑкий. always (вÑегда), auto"
-"(автоматичеÑки) или never (никогда)"
msgid "command to send changesets as (a series of) patch emails"
-msgstr "команда Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ наборов изменений в виде (Ñерии) email Ñ Ð¿Ð°Ñ‚Ñ‡Ð°Ð¼Ð¸"
+msgstr ""
msgid ""
"The series is started off with a \"[PATCH 0 of N]\" introduction, which\n"
"describes the series as a whole."
msgstr ""
-"Ð¡ÐµÑ€Ð¸Ñ Ð½Ð°Ñ‡Ð¸Ð½Ð°ÐµÑ‚ÑÑ Ñ Ð²Ð²Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ \"[PATCH 0 of N]\",\n"
-"которое Ñодержит опиÑание вÑей Ñерии."
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 ""
-"Каждое пиÑьмо Ñ Ð¿Ð°Ñ‚Ñ‡ÐµÐ¼ имеет тему, начинающуюÑÑ Ñ \"[PATCH M of N] ...\",\n"
-"при Ñтом в качеÑтве текÑта темы иÑпользуетÑÑ Ð¿ÐµÑ€Ð²Ð°Ñ Ñтрока опиÑÐ°Ð½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€Ð°\n"
-"изменений. ПиÑьмо Ñодержит в теле две или три чаÑти:"
msgid ""
"- The changeset description.\n"
"- [Optional] The result of running diffstat on the patch.\n"
"- The patch itself, as generated by :hg:`export`."
msgstr ""
-"- ОпиÑание набора изменений.\n"
-"- [ÐеобÑзательно] Результат работы diffstat Ð´Ð»Ñ Ð¿Ð°Ñ‚Ñ‡Ð° (ÑтатиÑтика).\n"
-"- Сам патч, как его генерирует команда :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 ""
-"Каждое пиÑьмо ÑÑылаетÑÑ Ð½Ð° первое в Ñерии, иÑпользуÑ\n"
-"email-заголовки In-Reply-To и References, так что они будут показыватьÑÑ\n"
-"как ÐµÐ´Ð¸Ð½Ð°Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ° в программах Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‡Ñ‚Ñ‹ и новоÑтей, а также в архивах."
msgid ""
"To configure other defaults, add a section like this to your\n"
"configuration file::"
msgstr ""
-"Чтобы наÑтроить другие заполнÑемые заголовки, добавьте Ñекцию вроде\n"
-"Ñтой в ваш конфигурационный файл::"
msgid ""
" [email]\n"
@@ -7624,30 +4831,17 @@ msgid ""
" bcc = bcc1, bcc2, ...\n"
" reply-to = address1, address2, ..."
msgstr ""
-" [email]\n"
-" from = Мое Ð˜Ð¼Ñ <my@email>\n"
-" to = получатель1, получатель2, ...\n"
-" cc = копиÑ1, копиÑ2, ...\n"
-" bcc = ÑкрытаÑ-копиÑ1, ÑкрытаÑ-копиÑ2, ...\n"
-" reply-to = адреÑ1, адреÑ2, ..."
msgid ""
"Use ``[patchbomb]`` as configuration section name if you need to\n"
"override global ``[email]`` address settings."
msgstr ""
-"ИÑпользуйте Ñекцию ``[patchbomb]``, еÑли вы хотите переопределить "
-"глобальные\n"
-"наÑтройки адреÑов из Ñекции ``[email]``."
msgid ""
"Then you can use the :hg:`email` command to mail a series of\n"
"changesets as a patchbomb."
msgstr ""
-"Ð’Ñ‹ можете иÑпользовать команду :hg:`email`, чтобы отправить по Ñлектронной\n"
-"почте Ñерию наборов изменений в виде неÑкольких пиÑем Ñ Ð¿Ð°Ñ‚Ñ‡Ð°Ð¼Ð¸\n"
-"(patch-bomb)."
-# BUG не хватает кавычек в англ текÑте
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"
@@ -7655,108 +4849,97 @@ msgid ""
"directly from the commandline. See the [email] and [smtp] sections in\n"
"hgrc(5) for details.\n"
msgstr ""
-"Ð’Ñ‹ также можете либо наÑтроить параметр method Ñекции ``[email]`` так,\n"
-"чтобы он определÑл sendmail-ÑовмеÑтимый клиент Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ почты, либо\n"
-"заполнить Ñекцию ``[smtp]``, чтобы раÑширение patchbomb могло автоматичеÑки\n"
-"отправлÑÑ‚ÑŒ почту прÑмо из командной Ñтроки. См. Ñекции ``[email]`` и ``[smtp]"
-"``\n"
-"Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации.\n"
-msgid "send patches as inline message text (default)"
-msgstr "отправлÑÑ‚ÑŒ патчи в такÑте ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (по умолчанию)"
+#, python-format
+msgid "%s Please enter a valid value"
+msgstr ""
+
+msgid "Please enter a valid value.\n"
+msgstr ""
msgid "send patches as attachments"
msgstr "отправить патчи как вложениÑ"
msgid "send patches as inline attachments"
-msgstr "отправить патчи как Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² текÑте (inline attachments)"
+msgstr "отправить патчи как Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² текÑте"
msgid "email addresses of blind carbon copy recipients"
-msgstr "адреÑа получателей Ñкрытой копии пиÑьма"
+msgstr ""
msgid "email addresses of copy recipients"
-msgstr "адреÑа получателей копии пиÑьма"
+msgstr ""
msgid "ask for confirmation before sending"
-msgstr "запрашивать подтверждение перед отправкой"
+msgstr ""
msgid "add diffstat output to messages"
-msgstr "добавить ÑтатиÑтику различий (diffstat) к ÑообщениÑм"
+msgstr "добавить ÑтатиÑтику различий к ÑообщениÑм"
msgid "use the given date as the sending date"
-msgstr "иÑпользовать данную дату в качеÑтве даты отправки"
+msgstr ""
msgid "use the given file as the series description"
-msgstr "иÑпользовать Ñодержимое указанного файла в качеÑтве опиÑÐ°Ð½Ð¸Ñ Ñерии"
+msgstr ""
msgid "email address of sender"
-msgstr "email-Ð°Ð´Ñ€ÐµÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ"
+msgstr ""
msgid "print messages that would be sent"
-msgstr "напечатать пиÑьма, которые будут отправлены"
+msgstr ""
msgid "write messages to mbox file instead of sending them"
-msgstr "запиÑать пиÑьма в mbox-файл вмеÑто их отправки"
+msgstr ""
msgid "email addresses replies should be sent to"
-msgstr "email-адреÑа, на которые должен приÑылатьÑÑ Ð¾Ñ‚Ð²ÐµÑ‚"
+msgstr ""
msgid "subject of first message (intro or single patch)"
-msgstr "тема первого пиÑьма (вводного или единÑтвенного в поÑледовательноÑти)"
+msgstr ""
msgid "message identifier to reply to"
-msgstr "идентификатор ÑообщениÑ, на которое надо отвечать"
+msgstr ""
msgid "flags to add in subject prefixes"
-msgstr "флаги, добавлÑемые в Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ñ‚ÐµÐ¼Ñ‹"
+msgstr ""
msgid "email addresses of recipients"
-msgstr "email-адреÑа получателей"
+msgstr ""
msgid "omit hg patch header"
-msgstr "опуÑтить заголовок патча"
+msgstr ""
msgid "send changes not found in the target repository"
-msgstr "отправить изменениÑ, не найденные в целевом хранилище"
+msgstr ""
msgid "send changes not in target as a binary bundle"
msgstr ""
-"отправить отÑутÑтвующие в целевом хранилище Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² виде комплекта "
-"(bundle)"
msgid "name of the bundle attachment file"
-msgstr "Ð¸Ð¼Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° комплекта (bundle)"
+msgstr ""
msgid "a revision to send"
-msgstr "отправить указанную ревизию"
+msgstr ""
msgid "run even when remote repository is unrelated (with -b/--bundle)"
msgstr ""
-"работать даже еÑли отдаленное хранилище не ÑвÑзано Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ (Ñ -b/--bundle)"
msgid "a base changeset to specify instead of a destination (with -b/--bundle)"
msgstr ""
-"базовый набор изменений, указываемый вмеÑто хранилища Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ (Ñ -b/--"
-"bundle)"
msgid "send an introduction email for a single patch"
-msgstr "отправлÑÑ‚ÑŒ вводное пиÑьмо Ð´Ð»Ñ ÐµÐ´Ð¸Ð½Ñтвенного патча"
+msgstr ""
msgid "hg email [OPTION]... [DEST]..."
-msgstr "hg email [ПÐРÐМЕТР]... [ÐÐЗÐÐЧЕÐИЕ]..."
+msgstr ""
msgid "send changesets by email"
-msgstr "отправить наборы изменений по email"
+msgstr ""
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 ""
-" По умолчанию Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚ÑылаютÑÑ Ð² том формате, в каком их генерирует\n"
-" :hg:`export`, по одному в каждом пиÑьме. Ð¡ÐµÑ€Ð¸Ñ Ð½Ð°Ñ‡Ð¸Ð½Ð°ÐµÑ‚ÑÑ\n"
-" Ñ Ð²Ð²Ð¾Ð´Ð½Ð¾Ð³Ð¾ пиÑьма \"[PATCH 0 of N]\", Ñодержащего опиÑание вÑей\n"
-" Ñерии."
msgid ""
" Each patch email has a Subject line of \"[PATCH M of N] ...\", using\n"
@@ -7764,64 +4947,39 @@ msgid ""
" The message contains two or three parts. First, the changeset\n"
" description."
msgstr ""
-" Каждое пиÑьмо Ñ Ð¿Ð°Ñ‚Ñ‡ÐµÐ¼ имеет тему вида \"[PATCH M of N] ...\",\n"
-" иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¿ÐµÑ€Ð²ÑƒÑŽ Ñтроку опиÑÐ°Ð½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€Ð° изменений в качеÑтве текÑта\n"
-" темы. ПиÑьмо Ñодержит две или три чаÑти. Сначала идет опиÑание\n"
-" набора изменений."
msgid ""
" 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 и уÑтановлена программа\n"
-" diffstat, то поÑле опиÑÐ°Ð½Ð¸Ñ Ð²ÑтавлÑетÑÑ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚ ее работы длÑ\n"
-" Ñтого патча."
msgid " Finally, the patch itself, as generated by :hg:`export`."
-msgstr " Ðаконец, Ñам патч, как его Ñгенерировала :hg:`export`."
+msgstr ""
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 ""
-" ЕÑли указан параметр -d/--diffstat или -c/--confirm, вам будет\n"
-" показана Ð¸Ñ‚Ð¾Ð³Ð¾Ð²Ð°Ñ Ñводка вÑех Ñообщений и будет запрошено\n"
-" подтверждение отправки."
msgid ""
" By default the patch is included as text in the email body for\n"
" easy reviewing. Using the -a/--attach option will instead create\n"
" an attachment for the patch. With -i/--inline an inline attachment\n"
-" will be created. You can include a patch both as text in the email\n"
-" body and as a regular or an inline attachment by combining the\n"
-" -a/--attach or -i/--inline with the --body option."
+" will be created."
msgstr ""
-" По умолчанию патч включаетÑÑ Ð² тело пиÑьма Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð¾Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ñмотра.\n"
-" Параметр -a/--attach ÑоздаÑÑ‚ вложение, Ñодержащее патч. С параметром\n"
-" -i/--inline будет Ñоздано вÑтроенное вложение (inline attachment).\n"
-" Можно отправить патч одновременно в текÑте пиÑьма и в обычном или\n"
-" вÑтроенном вложении, ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð¸Ñ€ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹ -a/--attach или -i/--include\n"
-" Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ --body."
msgid ""
" With -o/--outgoing, emails will be generated for patches not found\n"
" in the destination repository (or only those which are ancestors\n"
" of the specified revisions if any are provided)"
msgstr ""
-" C -o/--outgoing, пиÑьма будут Ñгенерированы Ð´Ð»Ñ Ð¿Ð°Ñ‚Ñ‡ÐµÐ¹, не найденных\n"
-" в хранилище Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ (либо только Ð´Ð»Ñ Ñ‚ÐµÑ…, которые ÑвлÑÑŽÑ‚ÑÑ Ð¿Ñ€ÐµÐ´ÐºÐ°Ð¼Ð¸\n"
-" заданных ревизий, еÑли таковые были указаны)"
msgid ""
" With -b/--bundle, changesets are selected as for --outgoing, but a\n"
" single email containing a binary Mercurial bundle as an attachment\n"
" will be sent."
msgstr ""
-" С -b/--bundle, наборы изменений выбираютÑÑ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñ‡Ð½Ð¾ --outgoing,\n"
-" но отÑылаетÑÑ ÐµÐ´Ð¸Ð½Ñтвенное пиÑьмо, Ñодержащее двоичный комплект "
-"(bundle)\n"
-" Mercurial во вложении."
msgid ""
" With -m/--mbox, instead of previewing each patchbomb message in a\n"
@@ -7830,11 +4988,6 @@ msgid ""
" previewed with any mail user agent which supports UNIX mbox\n"
" files."
msgstr ""
-" С -m/--mbox, вмеÑто того, чтобы проÑматривать каждое пиÑьмо в\n"
-" конÑоли или Ñразу отправлÑÑ‚ÑŒ его, будет Ñоздан файл почтового\n"
-" Ñщика UNIX (mbox), Ñодержащий пиÑьма Ñ Ð¿Ð°Ñ‚Ñ‡Ð°Ð¼Ð¸. Такой файл\n"
-" можно проÑматривать любым почтовым клиентом, который поддерживает\n"
-" формат mbox."
msgid ""
" With -n/--test, all steps will run, but mail will not be sent.\n"
@@ -7844,20 +4997,11 @@ msgid ""
" 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"
-" PAGER, ваша программа Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра Ñ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ¾Ð¹ (pager) будет\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 ""
-" ЕÑли при отправке проиÑходит ошибка, вы найдете резервную копию\n"
-" вашего вводного ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñерии в файле ``.hg/last-email.txt``."
msgid ""
" hg email -r 3000 # send patch 3000 only\n"
@@ -7865,10 +5009,6 @@ msgid ""
" 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 -r 3001 # отправить патчи 3000 и 3001\n"
-" hg email -r 3000:3005 # отправить патчи Ñ 3000 по 3005\n"
-" hg email 3000 # отправить патч 3000 (уÑтарело)"
msgid ""
" hg email -o # send all patches not in default\n"
@@ -7876,14 +5016,6 @@ msgid ""
" hg email -o -r 3000 # send all ancestors of 3000 not in default\n"
" hg email -o -r 3000 DEST # send all ancestors of 3000 not in DEST"
msgstr ""
-" hg email -o # отправить вÑе патчи, которых нет по пути "
-"default\n"
-" hg email -o ÐÐЗР# отправить вÑе патчи, которых нет по пути "
-"ÐÐЗÐ\n"
-" hg email -o -r 3000 # отправить вÑех предков ревизии 3000, "
-"которых нет по пути default\n"
-" hg email -o -r 3000 ÐÐЗР# отправить вÑех предков ревизии 3000, "
-"которых нет по пути ÐÐЗÐ"
msgid ""
" hg email -b # send bundle of all patches not in default\n"
@@ -7892,14 +5024,6 @@ msgid ""
"default\n"
" hg email -b -r 3000 DEST # bundle of all ancestors of 3000 not in DEST"
msgstr ""
-" hg email -b # отправить комплект (bundle) вÑех патчей, "
-"которых нет по пути default\n"
-" hg email -b ÐÐЗР# отправить комплект вÑех патчей, которых "
-"нет по пути ÐÐЗÐ\n"
-" hg email -b -r 3000 # отправить комплект вÑех предков ревизии "
-"3000, которых нет по пути default\n"
-" hg email -b -r 3000 ÐÐЗР# отправить комплект вÑех предков ревизии "
-"3000, которых нет по пути ÐÐЗÐ"
msgid ""
" hg email -o -m mbox && # generate an mbox file...\n"
@@ -7909,87 +5033,75 @@ msgid ""
"mbox\n"
" -bm -t < mbox # ... using sendmail"
msgstr ""
-" hg email -o -m mbox && # Ñгенерировать mbox-файл ...\n"
-" mutt -R -f mbox # ... и поÑмотреть его в mutt\n"
-" hg email -o -m mbox && # Ñгенерировать mbox-файл ...\n"
-" formail -s sendmail \\ # ... и иÑпользовать formail Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ "
-"mbox -bm -t < mbox # ... Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ sendmail"
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"
" "
msgstr ""
-" Перед иÑпользованием Ñтой команды вам необходимо включить email\n"
-" в вашем конфигурационном файле. См. Ñекцию [email] в Ñправке по\n"
-" hgrc(5) Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации. "
+
+#, python-format
+msgid "comparing with %s\n"
+msgstr "Ñравниваю Ñ %s\n"
msgid "no changes found\n"
-msgstr "Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ найдены\n"
+msgstr "изменений не найдено\n"
msgid "specify at least one changeset with -r or -o"
-msgstr "укажите Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один набор изменений Ð´Ð»Ñ -r или -o "
+msgstr ""
msgid "--outgoing mode always on with --bundle; do not re-specify --outgoing"
msgstr ""
-"режим --outgoing вÑегда включен Ñ --bundle; Ñвный --outgoing не требуетÑÑ"
msgid "too many destinations"
-msgstr "Ñлишком много хранилищ назначениÑ"
+msgstr ""
msgid "use only one form to specify the revision"
-msgstr "иÑпользуйте одну форму Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¸"
+msgstr ""
msgid ""
"\n"
"Write the introductory message for the patch series."
msgstr ""
-"\n"
-"Ðапишите вводное пиÑьмо Ð´Ð»Ñ Ñерии патчей."
#, python-format
-msgid "this patch series consists of %d patches."
-msgstr "Эта ÑÐµÑ€Ð¸Ñ ÑоÑтоит из %d патчей."
-
-msgid "no recipient addresses provided"
-msgstr "не указан Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ"
+msgid "This patch series consists of %d patches."
+msgstr ""
msgid ""
"\n"
"Final summary:"
msgstr ""
-"\n"
-"Ð˜Ñ‚Ð¾Ð³Ð¾Ð²Ð°Ñ Ñводка:"
-# PROMPT
msgid "are you sure you want to send (yn)?"
-msgstr "вы уверены, что хотите отправить пиÑьмо (yn)?"
+msgstr ""
-# PROMPT
msgid "&No"
msgstr "&Ðет"
-# PROMPT
msgid "&Yes"
msgstr "&Да"
msgid "patchbomb canceled"
-msgstr "отправка отменена"
-
-msgid "displaying "
-msgstr "отображение "
+msgstr ""
-msgid "sending "
-msgstr "отправка "
+msgid "Displaying "
+msgstr ""
-msgid "sending"
-msgstr "отправка"
+msgid "Writing "
+msgstr ""
msgid "writing"
-msgstr "запиÑÑŒ"
+msgstr ""
+
+msgid "Sending "
+msgstr ""
+
+msgid "sending"
+msgstr ""
msgid "show progress bars for some actions"
-msgstr "показать индикаторы Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… дейÑтвий"
+msgstr ""
msgid ""
"This extension uses the progress information logged by hg commands\n"
@@ -7997,21 +5109,13 @@ msgid ""
"bars only offer indeterminate information, while others have a definite\n"
"end point."
msgstr ""
-"Это раÑширение иÑпользует информацию о ходе Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸,\n"
-"предоÑтавлÑемую командами Mercurial, чтобы отобразить макÑимально\n"
-"информативные индикаторы выполнениÑ. Ðекоторые индикаторы показывают\n"
-"только неопределенную информацию, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº другие имеют\n"
-"определенную точку завершениÑ."
msgid "The following settings are available::"
-msgstr "ДоÑтупны Ñледующие наÑтройки::"
+msgstr ""
msgid ""
" [progress]\n"
" delay = 3 # number of seconds (float) before showing the progress bar\n"
-" changedelay = 1 # changedelay: minimum delay before showing a new topic.\n"
-" # If set to less than 3 * refresh, that value will\n"
-" # be used instead.\n"
" refresh = 0.1 # time in seconds between refreshes 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"
@@ -8021,21 +5125,7 @@ msgid ""
" assume-tty = False # if true, ALWAYS show a progress bar, unless\n"
" # disable is given"
msgstr ""
-" [progress]\n"
-" delay = 3 # количеÑтво Ñекунд (дробное) до показа индикатора выполнениÑ\n"
-" changedelay = 1 # Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ° перед показом нового Ñтапа\n"
-" # ЕÑли меньше, чем 3 * refresh, то будет иÑпользовано\n"
-" # Ñто значение вмеÑто refresh.\n"
-" refresh = 0.1 # Ð²Ñ€ÐµÐ¼Ñ Ð² Ñекундах между обновлениÑми индикатора\n"
-" format = topic bar number estimate # формат индикатора выполнениÑ\n"
-" width = <none> # еÑли задан, макÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð° индикатора\n"
-" # (Ñ‚.е., будет иÑпользован min(width, term width))\n"
-" clear-complete = True # очиÑтить индикатор поÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸\n"
-" disable = False # еÑли иÑтина, не показывать индикатор выполнениÑ\n"
-" assume-tty = False # еÑли иÑтина, ВСЕГДРпоказывать индикатор, еÑли\n"
-" # не задан disable"
-
-# TODO неадекват
+
msgid ""
"Valid entries for the format field are topic, bar, number, unit,\n"
"estimate, speed, and item. item defaults to the last 20 characters of\n"
@@ -8043,107 +5133,89 @@ msgid ""
"would take the last num characters, or ``+<num>`` for the first num\n"
"characters.\n"
msgstr ""
-"ДопуÑтимые Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ format - topic, bar, number, unit, estimate,\n"
-"speed и item. item по умолчанию уÑтанавливаетÑÑ Ð² поÑледние 20 Ñимволов\n"
-"опиÑаниÑ, но Ñто можно изменить, добавлÑÑ ``-<чиÑло>``, который иÑпользует\n"
-"заданное чиÑло Ñимволов Ñ ÐºÐ¾Ð½Ñ†Ð°, или ``+<чиÑло>``, чтобы иÑпользовать\n"
-"заданное чиÑло Ñимволов Ñ Ð½Ð°Ñ‡Ð°Ð»Ð°.\n"
#. i18n: format XX seconds as "XXs"
#, python-format
msgid "%02ds"
-msgstr "%02dÑ"
+msgstr ""
#. i18n: format X minutes and YY seconds as "XmYYs"
#, python-format
msgid "%dm%02ds"
-msgstr "%dм%02dÑ"
+msgstr ""
#. i18n: format X hours and YY minutes as "XhYYm"
#, python-format
msgid "%dh%02dm"
-msgstr "%dч%02dм"
+msgstr ""
#. i18n: format X days and YY hours as "XdYYh"
#, python-format
msgid "%dd%02dh"
-msgstr "%dд%02dм"
+msgstr ""
#. i18n: format X weeks and YY days as "XwYYd"
#, python-format
msgid "%dw%02dd"
-msgstr "%dн%02dд"
+msgstr ""
#. i18n: format X years and YY weeks as "XyYYw"
#, python-format
msgid "%dy%02dw"
-msgstr "%dг%02dн"
+msgstr ""
#, python-format
msgid "%d %s/sec"
-msgstr "%d %s/Ñек"
+msgstr ""
msgid "command to delete untracked files from the working directory"
-msgstr "команда Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐ¾Ñ‚Ñлеживаемых файлов из рабочего каталога"
+msgstr ""
msgid "abort if an error occurs"
-msgstr "прервать выполнение при возникновении ошибки"
+msgstr ""
msgid "purge ignored files too"
-msgstr "зачиÑтить также игнорируемые файлы"
+msgstr ""
msgid "print filenames instead of deleting them"
-msgstr "напечатать имена файлов вмеÑто их удалениÑ"
+msgstr ""
msgid "end filenames with NUL, for use with xargs (implies -p/--print)"
msgstr ""
-"добавлÑÑ‚ÑŒ NUL поÑле имен файлов Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ xargs (подразумевает-p/--"
-"print)"
msgid "hg purge [OPTION]... [DIR]..."
-msgstr "hg purge [ПÐРÐМЕТР]... [КÐТÐЛОГ]..."
+msgstr ""
msgid "removes files not tracked by Mercurial"
-msgstr "удалить файлы, не отÑлеживаемые Mercurial"
+msgstr ""
msgid ""
" Delete files not known to Mercurial. This is useful to test local\n"
" and uncommitted changes in an otherwise-clean source tree."
msgstr ""
-" УдалÑет файлы, не извеÑтные Mercurial. Это бывает полезно, чтобы\n"
-" протеÑтировать локальные и незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² чиÑтом\n"
-" во вÑех других отношениÑÑ… дереве иÑходных файлов."
msgid " This means that purge will delete:"
-msgstr " Это означает, что purge удалит:"
+msgstr ""
msgid ""
" - Unknown files: files marked with \"?\" by :hg:`status`\n"
" - Empty directories: in fact Mercurial ignores directories unless\n"
" they contain files under source control management"
msgstr ""
-" - ÐеизвеÑтные файлы: файлы, помеченные \"?\" в :hg:`status`\n"
-" - ПуÑтые каталоги: фактичеÑки, Mercurial игнорирует каталоги,\n"
-" еÑли они не Ñодержат файлов, находÑщихÑÑ Ð¿Ð¾Ð´ контролем верÑий."
msgid " But it will leave untouched:"
-msgstr " Ðо оÑтавит нетронутыми:"
+msgstr ""
msgid ""
" - Modified and unmodified tracked files\n"
" - Ignored files (unless --all is specified)\n"
" - New files added to the repository (with :hg:`add`)"
msgstr ""
-" - Измененные и неизмененные отÑлеживаемые файлы\n"
-" - Игнорируемые файлы (еÑли не указан --all)\n"
-" - Ðовые файлы, добавленные в хранилище (Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`add`)"
msgid ""
" If directories are given on the command line, only files in these\n"
" directories are considered."
msgstr ""
-" ЕÑли в командной Ñтроке заданы каталоги, раÑÑматриваютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ файлы\n"
-" в Ñтих каталогах."
msgid ""
" Be careful with purge, as you could irreversibly delete some files\n"
@@ -8152,102 +5224,81 @@ msgid ""
" option.\n"
" "
msgstr ""
-" Будьте оÑторожны Ñ purge, Ñ‚.к. вы можете необратимо удалить файлы,\n"
-" которые вы забыли добавить в хранилище. ЕÑли вы проÑто хотите\n"
-" напечатать ÑпиÑок файлов, которые были бы удалены Ñтой программой,\n"
-" иÑпользуйте параметр --print."
#, python-format
msgid "%s cannot be removed"
-msgstr "%s не может быть удален"
+msgstr ""
#, python-format
msgid "warning: %s\n"
-msgstr "предупреждение: %s\n"
+msgstr ""
#, python-format
-msgid "removing file %s\n"
-msgstr "удалÑетÑÑ Ñ„Ð°Ð¹Ð» %s\n"
+msgid "Removing file %s\n"
+msgstr ""
#, python-format
-msgid "removing directory %s\n"
-msgstr "удалÑетÑÑ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ %s\n"
+msgid "Removing directory %s\n"
+msgstr ""
msgid "command to move sets of revisions to a different ancestor"
-msgstr "команда Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð² ревизий к другому предку"
+msgstr ""
msgid ""
"This extension lets you rebase changesets in an existing Mercurial\n"
"repository."
msgstr ""
-"Это раÑширение позволÑет вам перебазировать наборы изменений в ÑущеÑтвующем\n"
-"хранилище Mercurial."
msgid ""
"For more information:\n"
"http://mercurial.selenic.com/wiki/RebaseExtension\n"
msgstr ""
-"Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ:\n"
-"http://mercurial.selenic.com/wiki/RebaseExtension\n"
msgid "rebase from the specified changeset"
-msgstr "перебазировать от указанного набора изменений"
+msgstr ""
msgid ""
"rebase from the base of the specified changeset (up to greatest common "
"ancestor of base and dest)"
msgstr ""
-"перебазировать от базовой ревизии указанного набора изменений (вплоть до "
-"первого общего предка базовой ревизии и ревизии назначениÑ)"
-
-msgid "rebase these revisions"
-msgstr "перебазировать Ñти ревизии"
msgid "rebase onto the specified changeset"
-msgstr "перебазировать на указанный набор изменений"
+msgstr ""
msgid "collapse the rebased changesets"
-msgstr "объединить перебазированные наборы изменений"
+msgstr ""
msgid "use text as collapse commit message"
msgstr ""
-"иÑпользовать текÑÑ‚ в качеÑтве ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ„Ð¸ÐºÑации Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð½Ñ‹Ñ… наборов "
-"изменений"
-
-msgid "invoke editor on commit messages"
-msgstr "вызвать редактор Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ„Ð¸ÐºÑации"
msgid "read collapse commit message from file"
-msgstr "взÑÑ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ„Ð¸ÐºÑации Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð½Ñ‹Ñ… наборов изменений из файла"
+msgstr ""
msgid "keep original changesets"
-msgstr "Ñохранить иÑходные наборы изменений"
+msgstr ""
msgid "keep original branch names"
-msgstr "Ñохранить иÑходные имена веток"
+msgstr ""
-msgid "(DEPRECATED)"
-msgstr "(УСТÐРЕЛО)"
+msgid "force detaching of source from its original branch"
+msgstr ""
msgid "specify merge tool"
msgstr "задать инÑтрумент ÑлиÑниÑ"
msgid "continue an interrupted rebase"
-msgstr "продолжить прерванное перебазирование"
+msgstr ""
msgid "abort an interrupted rebase"
-msgstr "отменить прерванное перебазирование"
+msgstr ""
-# BUG one line?
msgid ""
"hg rebase [-s REV | -b REV] [-d REV] [options]\n"
"hg rebase {-a|-c}"
msgstr ""
-"hg rebase [-s РЕВ | -b РЕВ] [-d РЕВ] [параметры]\n"
-"hg rebase {-a|-c}"
msgid "move changeset (and descendants) to a different branch"
-msgstr "перемеÑтить наборы изменений (Ñ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ°Ð¼Ð¸) на другую ветку"
+msgstr ""
msgid ""
" Rebase uses repeated merging to graft changesets from one part of\n"
@@ -8255,10 +5306,6 @@ msgid ""
" useful for linearizing *local* changes relative to a master\n"
" development tree."
msgstr ""
-" Rebase иÑпользует повторÑющиеÑÑ ÑлиÑниÑ, чтобы перенеÑти наборы\n"
-" изменений из одной чаÑти иÑтории (иÑточник) в другую (назначение).\n"
-" Это может быть полезным Ð´Ð»Ñ Ð»Ð¸Ð½ÐµÐ°Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸ *локальных* изменений\n"
-" отноÑительно оÑновного дерева разработки."
msgid ""
" You should not rebase changesets that have already been shared\n"
@@ -8266,11 +5313,6 @@ msgid ""
" same rebase or they will end up with duplicated changesets after\n"
" pulling in your rebased changesets."
msgstr ""
-" Ðе Ñтоит перебазировать наборы изменений, которые уже были\n"
-" опубликованы. Это заÑтавит вÑех оÑтальных также выполнить\n"
-" перебазирование, поÑкольку в противном Ñлучае они получат\n"
-" продублированные наборы изменений поÑле того, как затÑнут\n"
-" ваши перебазированные наборы изменений."
msgid ""
" If you don't specify a destination changeset (``-d/--dest``),\n"
@@ -8278,11 +5320,6 @@ msgid ""
" destination. (The destination changeset is not modified by\n"
" rebasing, but new changesets are added as its descendants.)"
msgstr ""
-" ЕÑли вы не укажете ревизию Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ (``-d/--dest``),\n"
-" rebase иÑпользует оконечную голову текущей именованной ветки\n"
-" в качеÑтве назначениÑ. (Ðабор Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ðµ изменÑетÑÑ\n"
-" при перебазировании, но новые наборы изменений добавлÑÑŽÑ‚ÑÑ\n"
-" в качеÑтве его потомков)"
msgid ""
" You can specify which changesets to rebase in two ways: as a\n"
@@ -8297,20 +5334,6 @@ msgid ""
" the whole branch. If you specify neither ``-s`` nor ``-b``, rebase\n"
" uses the parent of the working directory as the base."
msgstr ""
-" Можно задавать ревизии Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ±Ð°Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð²ÑƒÐ¼Ñ ÑпоÑобами: \n"
-" как \"иÑходный\" набор изменений, или как \"базовый\". Оба они\n"
-" ÑвлÑÑŽÑ‚ÑÑ ÑокращениÑми Ð´Ð»Ñ Ñ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð³Ð¸Ñ‡ÐµÑки ÑвÑзанных множеÑтв\n"
-" наборов изменений (\"иÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ°\"). ЕÑли вы указываете\n"
-" иÑточник наборов изменений (``-s/--source``), то производитÑÑ\n"
-" перебазирование Ñтого набора изменений и вÑех его потомков\n"
-" на ревизию назначениÑ. ЕÑли задаетÑÑ Ð±Ð°Ð·Ð¾Ð²Ñ‹Ð¹ набор изменений\n"
-" (``-b/--base``), rebase выберет его предков вплоть до поÑледнего\n"
-" общего Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸ÐµÐ¹ назначениÑ, не Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ ÐµÐµ Ñаму. Т.о., ``-b``\n"
-" менее точный, но более удобный, чем ``-s``: вы можете указать\n"
-" любой набор изменений в иÑходной ветке, и rebase выберет вÑÑŽ\n"
-" ветку. ЕÑли не указан ни ``-s``, ни ``-b``, rebase иÑпользует\n"
-" родительÑкую ревизию рабочего каталога в качеÑтве базового\n"
-" набора изменений."
msgid ""
" By default, rebase recreates the changesets in the source branch\n"
@@ -8319,12 +5342,6 @@ msgid ""
" changesets in the source branch (e.g. merges from the destination\n"
" branch) may be dropped if they no longer contribute any change."
msgstr ""
-" По умолчанию rebase заново Ñоздает наборы изменений в ветке-иÑточнике\n"
-" как потомков ревизии назначениÑ, поÑле чего удалÑет оригиналы.\n"
-" ИÑпользуйте ``--keep`` чтобы Ñохранить оригиналы в иÑточнике.\n"
-" Ðекоторые наборы изменений в ветке-иÑточнике (например, ÑлиÑниÑ\n"
-" Ñ Ð²ÐµÑ‚ÐºÐ¾Ð¹ назначениÑ) могут быть выброшены, еÑли они более не\n"
-" вноÑÑÑ‚ никаких изменений."
msgid ""
" One result of the rules for selecting the destination changeset\n"
@@ -8334,151 +5351,109 @@ msgid ""
" destination (or ``update`` to the other head, if it's the head of\n"
" the intended source branch)."
msgstr ""
-" Одним из ÑледÑтвий правил выбора ревизии Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¸ ветки-иÑточника\n"
-" ÑвлÑетÑÑ Ñ‚Ð¾, что, в отличие от ``ÑлиÑниÑ``, rebase не Ñделает ничего,\n"
-" еÑли вы не на Ñамой поздней (оконечной) голове именованной ветки\n"
-" Ñ Ð´Ð²ÑƒÐ¼Ñ Ð³Ð¾Ð»Ð¾Ð²Ð°Ð¼Ð¸. ТребуетÑÑ Ñвно указать иÑточник и/или назначение\n"
-" (или обновитьÑÑ Ð½Ð° другую голову, еÑли Ñто голова предполагаемой\n"
-" ветки-иÑточника)."
msgid ""
" If a rebase is interrupted to manually resolve a merge, it can be\n"
" continued with --continue/-c or aborted with --abort/-a."
msgstr ""
-" ЕÑли перебазирование прерываетÑÑ Ð´Ð»Ñ Ñ€ÑƒÑ‡Ð½Ð¾Ð³Ð¾ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð¾Ð²\n"
-" при ÑлиÑнии, его можно продолжить Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ --continue/-c или\n"
-" отменить Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ --abort/-a."
msgid ""
" Returns 0 on success, 1 if nothing to rebase.\n"
" "
msgstr ""
-" Ð’ Ñлучае уÑпеха возвращает 0, 1 еÑли нечего перебазировать.\n"
-" "
msgid "message can only be specified with collapse"
-msgstr "Ñообщение можно задавать только при объединении"
+msgstr ""
msgid "cannot use both abort and continue"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð´Ð½Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ указывать abort и continue"
+msgstr ""
msgid "cannot use collapse with continue or abort"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать collapse Ñ continue или abort"
+msgstr ""
+
+msgid "cannot use detach with continue or abort"
+msgstr ""
msgid "abort and continue do not allow specifying revisions"
-msgstr "abort и continue не позволÑÑŽÑ‚ задавать ревизии"
+msgstr ""
msgid "tool option will be ignored\n"
-msgstr "параметр tool будет проигнорирован\n"
-
-msgid "cannot specify both a source and a base"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð´Ð°Ð²Ð°Ñ‚ÑŒ source и base одновременно"
+msgstr ""
msgid "cannot specify both a revision and a base"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð´Ð½Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ задавать ревизию и base"
-
-msgid "cannot specify both a revision and a source"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ одновременно ревизию и source"
-
-msgid "can't remove original changesets with unrebased descendants"
msgstr ""
-"не удаетÑÑ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ иÑходный набор изменений Ñ Ð½ÐµÐ¿ÐµÑ€ÐµÐ±Ð°Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼Ð¸ потомками"
-msgid "use --keep to keep original changesets"
-msgstr "иÑпользуйте --keep чтобы оÑтавить иÑходные наборы изменений"
-
-#, python-format
-msgid "can't rebase immutable changeset %s"
-msgstr "невозможно перебазировать неизменÑемый набор изменений %s"
+msgid "detach requires a revision to be specified"
+msgstr ""
-msgid "see hg help phases for details"
-msgstr "подробнее Ñм. hg help phases"
+msgid "cannot specify a base with detach"
+msgstr ""
msgid "nothing to rebase\n"
-msgstr "нечего перебазировать\n"
-
-msgid "cannot collapse multiple named branches"
-msgstr "не могу объединить неÑколько именованных веток"
+msgstr ""
msgid "rebasing"
-msgstr "перебазируем"
+msgstr ""
msgid "changesets"
-msgstr "наборы изменений"
+msgstr ""
msgid "unresolved conflicts (see hg resolve, then hg rebase --continue)"
-msgstr "неулаженные конфликты ( Ñм. hg resolve, потом hg rebase --continue)"
+msgstr ""
#, python-format
msgid "no changes, revision %d skipped\n"
-msgstr "нет изменений, Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d пропущена\n"
+msgstr ""
msgid "rebase merging completed\n"
-msgstr "ÑлиÑние Ð¿ÐµÑ€ÐµÐ±Ð°Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾\n"
+msgstr ""
msgid "warning: new changesets detected on source branch, not stripping\n"
msgstr ""
-"внимание: новые наборы изменений обнаружены на ветке-иÑточнике, не "
-"ÑрезаютÑÑ\n"
msgid "rebase completed\n"
-msgstr "перебазирование завершено\n"
+msgstr ""
#, python-format
msgid "%d revisions have been skipped\n"
-msgstr "было пропущено %d ревизий\n"
+msgstr ""
msgid "unable to collapse, there is more than one external parent"
-msgstr "не удаетÑÑ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½Ð¸Ñ‚ÑŒ - более одного внешнего родителÑ"
+msgstr ""
#, python-format
msgid "cannot use revision %d as base, result would have 3 parents"
msgstr ""
-"не могу иÑпользовать ревизию %d в качеÑтве базовой, результат будет иметь 3 "
-"родителÑ"
msgid "no rebase in progress"
-msgstr "нет прерванного перебазированиÑ"
-
-#, python-format
-msgid "can't abort rebase due to immutable changesets %s"
-msgstr "невозможно отменить перебазирование из-за неизменÑемых ревизий %s"
+msgstr ""
msgid "warning: new changesets detected on target branch, can't abort\n"
msgstr ""
-"внимание: новые наборы изменений обнаружены на ветке назначениÑ, отмена "
-"невозможна\n"
msgid "rebase aborted\n"
-msgstr "перебазирование отменено\n"
+msgstr ""
msgid "cannot rebase onto an applied mq patch"
-msgstr "не могу перебазировать на наложенный патч mq"
-
-msgid "no matching revisions"
-msgstr "нет подходÑщих ревизий"
-
-msgid "can't rebase multiple roots"
-msgstr "не могу перебазировать неÑколько корневых ревизий"
+msgstr ""
msgid "source is ancestor of destination"
-msgstr "иÑточник ÑвлÑетÑÑ Ð¿Ñ€ÐµÐ´ÐºÐ¾Ð¼ ревизии назначениÑ"
+msgstr ""
-#, python-format
-msgid "updating bookmark %s\n"
-msgstr "обновление закладки %s\n"
+msgid "source is descendant of destination"
+msgstr ""
msgid "--tool can only be used with --rebase"
-msgstr "--tool можно иÑпользовать только вмеÑте Ñ --rebase"
+msgstr ""
msgid "rebase working directory to branch head"
-msgstr "перебазировать рабочий каталог поверх головы ветки"
+msgstr "перебазировать рабочий каталог поверх головы ветви"
msgid "specify merge tool for rebase"
msgstr "задать программу Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ð¿Ñ€Ð¸ перебазировании"
msgid "commands to interactively select changes for commit/qrefresh"
-msgstr "команды Ð´Ð»Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ выбора изменений Ð´Ð»Ñ commit/qrefresh"
+msgstr ""
msgid "ignore white space when comparing lines"
msgstr "игнорировать пробельные Ñимволы при Ñравнении Ñтрок"
@@ -8499,108 +5474,61 @@ msgstr "Ñто двоичный файл\n"
msgid "%d hunks, %d lines changed\n"
msgstr "изменено полоÑ: %d, Ñтрок: %d\n"
-# PROMPT
-msgid "[Ynesfdaq?]"
-msgstr "[Ynesfdaq?]"
+msgid "[Ynsfdaq?]"
+msgstr ""
-# PROMPT
msgid "&Yes, record this change"
-msgstr "&Yes - Да, запиÑать Ñто изменение"
+msgstr ""
-# PROMPT
msgid "&No, skip this change"
-msgstr "&No - Ðет, пропуÑтить Ñто изменение"
-
-msgid "&Edit the change manually"
-msgstr "&Edit - редактировать изменение вручную"
+msgstr ""
-# PROMPT
msgid "&Skip remaining changes to this file"
-msgstr "&Skip - ПропуÑтить оÑтавшиеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñтом файле"
+msgstr ""
-# PROMPT
msgid "Record remaining changes to this &file"
-msgstr "&file - ЗапиÑать оÑтавшиеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñтом файле"
+msgstr ""
-# PROMPT
msgid "&Done, skip remaining changes and files"
-msgstr "&Done - ПропуÑтить оÑтавшиеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ файлы"
+msgstr ""
-# PROMPT
msgid "Record &all changes to all remaining files"
-msgstr "&all - запиÑать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑех оÑтавшихÑÑ Ñ„Ð°Ð¹Ð»Ð°Ñ…"
+msgstr ""
-# PROMPT
msgid "&Quit, recording no changes"
-msgstr "&Quit - выйти, ничего не запиÑываÑ"
-
-# PROMPT
-msgid "&?"
-msgstr "&?"
-
-msgid "cannot edit patch for whole file"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ патч Ð´Ð»Ñ Ñ†ÐµÐ»Ð¾Ð³Ð¾ файла"
-
-msgid "cannot edit patch for binary file"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ патч Ð´Ð»Ñ Ð´Ð²Ð¾Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ файла"
-
-msgid ""
-"\n"
-"To remove '-' lines, make them ' ' lines (context).\n"
-"To remove '+' lines, delete them.\n"
-"Lines starting with # will be removed from the patch."
msgstr ""
-"\n"
-"Чтобы убрать Ñтроки, начинающиеÑÑ Ñ '-', замените '-' на ' ' (контекÑÑ‚).\n"
-"Чтобы убрать Ñтроки, начинающиеÑÑ Ñ '+', удалите их.\n"
-"Строки, начинающиеÑÑ Ñ #, будут убраны из патча."
-msgid ""
-"If the patch applies cleanly, the edited hunk will immediately be\n"
-"added to the record list. If it does not apply cleanly, a rejects\n"
-"file will be generated: you can use that when you try again. If\n"
-"all lines of the hunk are removed, then the edit is aborted and\n"
-"the hunk is left unchanged.\n"
+msgid "&?"
msgstr ""
-"ЕÑли патч накладываетÑÑ ÑƒÑпешно, редактируемый лоÑкут будет немедленно\n"
-"добавлен в запиÑываемый ÑпиÑок. ЕÑли наложить не удалоÑÑŒ, генерируетÑÑ\n"
-"файл отказов, который может быть иÑпользован в Ñледующих попытках.\n"
-"ЕÑли из лоÑкута удалены вÑе Ñтроки, редактирование завершаетÑÑ Ð¸ лоÑкут\n"
-"оÑтаетÑÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½Ð½Ñ‹Ð¼.\n"
-
-msgid "edit failed"
-msgstr "неудача при редактировании"
msgid "user quit"
msgstr "пользовательÑкий выход"
#, python-format
msgid "examine changes to %s?"
-msgstr "проÑмотреть Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² %s?"
+msgstr ""
msgid " and "
msgstr " и "
#, python-format
msgid "record this change to %r?"
-msgstr "запиÑать Ñто изменение файла %r?"
+msgstr ""
#, python-format
msgid "record change %d/%d to %r?"
-msgstr "запиÑать изменение %d/%d в %r?"
+msgstr ""
msgid "hg record [OPTION]... [FILE]..."
-msgstr "hg record [ПÐРÐМЕТР]... [ФÐЙЛ]..."
+msgstr ""
msgid "interactively select changes to commit"
-msgstr "интерактивно выбирать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ„Ð¸ÐºÑации"
+msgstr ""
msgid ""
" If a list of files is omitted, all changes reported by :hg:`status`\n"
" will be candidates for recording."
msgstr ""
-" ЕÑли ÑпиÑок файлов опущен, в качеÑтве кандидатов Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи выÑтупают\n"
-" вÑе изменениÑ, показываемые :hg:`status`."
msgid ""
" You will be prompted for whether to record changes to each\n"
@@ -8608,123 +5536,90 @@ msgid ""
" change to use. For each query, the following responses are\n"
" possible::"
msgstr ""
-" Вам будет предложено выбрать, запиÑывать ли Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾\n"
-" измененного файла, и - Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² Ñ Ð½ÐµÑколькими изменениÑми -\n"
-" запиÑывать ли каждое изменение. Ðа каждый Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹ Ñледующие\n"
-" варианты ответов::"
-# PROMPT
msgid ""
" y - record this change\n"
-" n - skip this change\n"
-" e - edit this change manually"
+" n - skip this change"
msgstr ""
-" y - запиÑать Ñто изменение\n"
-" n - пропуÑтить Ñто изменение\n"
-" e - редактировать Ñто изменение вручную"
-# PROMPT
msgid ""
" s - skip remaining changes to this file\n"
" f - record remaining changes to this file"
msgstr ""
-" s - пропуÑтить оÑтавшиеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñтом файле\n"
-" f - запиÑать оÑтавшиеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñтом файле"
-# PROMPT
msgid ""
" d - done, skip remaining changes and files\n"
" a - record all changes to all remaining files\n"
" q - quit, recording no changes"
msgstr ""
-" d - готово, пропуÑтить оÑтавшиеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ файлы\n"
-" a - запиÑать вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑех оÑтавшихÑÑ Ñ„Ð°Ð¹Ð»Ð°Ñ…\n"
-" q - выйти, ничего не запиÑываÑ"
-# PROMPT
msgid " ? - display help"
-msgstr " ? - показать Ñправку"
+msgstr ""
msgid " This command is not available when committing a merge."
-msgstr " Эта команда не доÑтупна при фикÑации ÑлиÑниÑ"
+msgstr ""
msgid "interactively record a new patch"
-msgstr "интерактивно запиÑать новый патч"
+msgstr ""
msgid ""
" See :hg:`help qnew` & :hg:`help record` for more information and\n"
" usage.\n"
" "
-msgstr " Подробнее Ñм. :hg:`help qnew` и :hg:`help record`."
+msgstr ""
msgid "'mq' extension not loaded"
-msgstr "раÑширение 'mq' не загружено"
+msgstr ""
#, python-format
msgid "running non-interactively, use %s instead"
-msgstr "выполнение в неинтерактивном режиме, иÑпользуйте %s"
+msgstr ""
msgid "cannot partially commit a merge (use \"hg commit\" instead)"
-msgstr "невозможно зафикÑировать ÑлиÑние чаÑтично (иÑпользуйте \"hg commit\")"
+msgstr ""
msgid "no changes to record\n"
-msgstr "нет изменений Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи\n"
+msgstr ""
msgid "hg qrecord [OPTION]... PATCH [FILE]..."
-msgstr "hg qrecord [ПÐРÐМЕТР]... ПÐТЧ [ФÐЙЛ]..."
+msgstr ""
msgid "interactively select changes to refresh"
-msgstr "интерактивно выбирать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (refresh)"
+msgstr ""
msgid "recreates hardlinks between repository clones"
-msgstr "заново Ñоздает жеÑткие ÑÑылки между клонами хранилища"
+msgstr ""
msgid "recreate hardlinks between two repositories"
-msgstr "заново Ñоздать жеÑткие ÑÑылки между Ð´Ð²ÑƒÐ¼Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°Ð¼Ð¸"
+msgstr ""
msgid ""
" When repositories are cloned locally, their data files will be\n"
" hardlinked so that they only use the space of a single repository."
msgstr ""
-" Когда хранилища клонируютÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾, их файлы данных ÑоздаютÑÑ\n"
-" Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ жеÑтких ÑÑылок, чтобы они ÑовмеÑтно иÑпользовали\n"
-" объем одного хранилища."
msgid ""
" Unfortunately, subsequent pulls into either repository will break\n"
" hardlinks for any files touched by the new changesets, even if\n"
" both repositories end up pulling the same changes."
msgstr ""
-" Однако, поÑледующие затÑÐ³Ð¸Ð²Ð°Ð½Ð¸Ñ Ð² любое их Ñтих хранилищ разорвут\n"
-" жеÑткие ÑÑылки Ð´Ð»Ñ Ð²Ñех файлов, затрагиваемых новыми наборами\n"
-" изменений, даже еÑли в оба хранилища были затÑнуты одни и те же\n"
-" наборы изменений."
msgid ""
" Similarly, passing --rev to \"hg clone\" will fail to use any\n"
" hardlinks, falling back to a complete copy of the source\n"
" repository."
msgstr ""
-" Сходным образом вызов \"hg clone\" c ключом --rev не будет\n"
-" иÑпользовать жеÑткие ÑÑылки, полноÑтью ÐºÐ¾Ð¿Ð¸Ñ€ÑƒÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ иÑходного\n"
-" хранилища."
msgid ""
" This command lets you recreate those hardlinks and reclaim that\n"
" wasted space."
msgstr ""
-" Эта команда позволÑет вам заново Ñоздать Ñти жеÑткие ÑÑылки и\n"
-" вернуть потерÑнное меÑто на диÑке."
msgid ""
" This repository will be relinked to share space with ORIGIN, which\n"
" must be on the same local disk. If ORIGIN is omitted, looks for\n"
" \"default-relink\", then \"default\", in [paths]."
msgstr ""
-" СÑылки в Ñтом хранилище будут Ñозданы заново, чтобы разделÑÑ‚ÑŒ\n"
-" данные Ñ Ð˜Ð¡Ð¢ÐžÐ§ÐИКом, который должен быть на том же локальном\n"
-" диÑке. ЕÑли ИСТОЧÐИК опущен, раÑширение пытаетÑÑ Ð¸Ñпользовать\n"
-" Ñначала путь \"default-relink\", потом \"default\" из [paths]."
msgid ""
" Do not attempt any read operations on this repository while the\n"
@@ -8732,94 +5627,82 @@ msgid ""
" writes.)\n"
" "
msgstr ""
-" Ðе пытайтеÑÑŒ читать ничего из текущего хранилища во Ð²Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ\n"
-" Ñтой команды. (Оба хранилища будут заблокированы на запиÑÑŒ.)\n"
-" "
msgid "hardlinks are not supported on this system"
-msgstr "Ñта ÑиÑтема не поддерживать жеÑткие ÑÑылки"
+msgstr ""
+
+msgid "must specify local origin repository"
+msgstr ""
#, python-format
msgid "relinking %s to %s\n"
-msgstr "переÑоздаем ÑÑылки %s в %s\n"
+msgstr ""
msgid "there is nothing to relink\n"
-msgstr "нет файлов Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑÑылок\n"
+msgstr ""
#, python-format
msgid "tip has %d files, estimated total number of files: %s\n"
msgstr ""
-"Ð¾ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ %d файлов, ожидаемое общее количеÑтво файлов: %s\n"
-# по ÑмыÑл вроде ищем
msgid "collecting"
-msgstr "отбираем"
+msgstr ""
-# units. plurals?
msgid "files"
-msgstr "файлов"
+msgstr ""
#, python-format
msgid "collected %d candidate storage files\n"
-msgstr "отобрано %d файлов хранилища - кандидатов\n"
+msgstr ""
msgid "source and destination are on different devices"
-msgstr "иÑходное и выходное хранилища на разных уÑтройÑтвах"
+msgstr ""
msgid "pruning"
-msgstr "отбраÑываем лишние файлы"
+msgstr ""
-# по ÑмыÑлу вроде так
#, python-format
msgid "pruned down to %d probably relinkable files\n"
-msgstr "оÑталоÑÑŒ %d кандидатов Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑÑылки\n"
+msgstr ""
msgid "relinking"
-msgstr "переÑоздаем ÑÑылки"
+msgstr ""
#, python-format
msgid "relinked %d files (%s reclaimed)\n"
-msgstr "переÑозданы ÑÑылки Ð´Ð»Ñ %d файлов (%s оÑвобождено)\n"
+msgstr ""
msgid "[ORIGIN]"
-msgstr "[ИСТОЧÐИК]"
+msgstr ""
msgid "extend schemes with shortcuts to repository swarms"
-msgstr "раÑширÑет Ñхемы в путÑÑ… ÑокращениÑми Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿ хранилищ"
+msgstr ""
msgid ""
"This extension allows you to specify shortcuts for parent URLs with a\n"
"lot of repositories to act like a scheme, for example::"
msgstr ""
-"Это раÑширение позволÑет вам задавать ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¸Ñходных URL,\n"
-"Ñодержащих неÑколько хранилищ, и иÑпользовать из как Ñхемы, например::"
msgid ""
" [schemes]\n"
" py = http://code.python.org/hg/"
msgstr ""
-" [schemes]\n"
-" py = http://code.python.org/hg/"
msgid "After that you can use it like::"
-msgstr "ПоÑле Ñтого вы может иÑпользовать Ñто Ñледующим образом::"
+msgstr ""
msgid " hg clone py://trunk/"
-msgstr " hg clone py://trunk/"
+msgstr ""
msgid ""
"Additionally there is support for some more complex schemas, for\n"
"example used by Google Code::"
msgstr ""
-"Также приÑутÑтвует поддержка некоторых более Ñложных Ñхем, например,\n"
-"иÑпользуемых Google Code::"
msgid ""
" [schemes]\n"
" gcode = http://{1}.googlecode.com/hg/"
msgstr ""
-" [schemes]\n"
-" gcode = http://{1}.googlecode.com/hg/"
msgid ""
"The syntax is taken from Mercurial templates, and you have unlimited\n"
@@ -8828,14 +5711,9 @@ msgid ""
"supplied, split by ``/``. Anything not specified as ``{part}`` will be\n"
"just appended to an URL."
msgstr ""
-"СинтакÑÐ¸Ñ Ð·Ð°Ð¸Ð¼Ñтвован из шаблонов Mercurial, и вы можете иÑпользовать\n"
-"неограниченное количеÑтво переменных, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ ``{1}``, затем ``{2}``,\n"
-"``{3}`` и Ñ‚.д. Эти переменные получают чаÑти переданных URL, разделенные\n"
-"``/``. Ð’Ñе, что не указано как ``{чаÑÑ‚ÑŒ}``, будет проÑто добавлено в конец\n"
-"итогового URL."
msgid "For convenience, the extension adds these schemes by default::"
-msgstr "Ð”Ð»Ñ ÑƒÐ´Ð¾Ð±Ñтва раÑширение определÑет Ñледующие Ñхемы по умолчанию::"
+msgstr ""
msgid ""
" [schemes]\n"
@@ -8845,36 +5723,26 @@ msgid ""
" gcode = https://{1}.googlecode.com/hg/\n"
" kiln = https://{1}.kilnhg.com/Repo/"
msgstr ""
-" [schemes]\n"
-" py = http://hg.python.org/\n"
-" bb = https://bitbucket.org/\n"
-" bb+ssh = ssh://hg@bitbucket.org/\n"
-" gcode = https://{1}.googlecode.com/hg/\n"
-" kiln = https://{1}.kilnhg.com/Repo/"
msgid ""
"You can override a predefined scheme by defining a new scheme with the\n"
"same name.\n"
msgstr ""
-"Ð’Ñ‹ можете переопределить Ñхемы по умолчанию, определив новую Ñхему\n"
-"Ñ Ñ‚Ð°ÐºÐ¸Ð¼ же именем.\n"
#, python-format
msgid "custom scheme %s:// conflicts with drive letter %s:\\\n"
-msgstr "пользовательÑÐºÐ°Ñ Ñхема %s:// конфликтует Ñ Ð±ÑƒÐºÐ²Ð¾Ð¹ диÑка %s:\\\n"
+msgstr ""
msgid "share a common history between several working directories"
-msgstr "разделить общую иÑторию между неÑколькими рабочими каталогами"
+msgstr ""
msgid "create a new shared repository"
-msgstr "Ñоздать новое разделÑемое хранилище"
+msgstr ""
msgid ""
" Initialize a new repository and working directory that shares its\n"
" history with another repository."
msgstr ""
-" Инициализирует новое хранилище и рабочий каталог, который разделÑет\n"
-" Ñвою иÑторию Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ хранилищем."
msgid ""
" .. note::\n"
@@ -8889,102 +5757,74 @@ msgid ""
" (e.g. tip).\n"
" "
msgstr ""
-" .. note::\n"
-" иÑпользование rollback или раÑширений, которые Ñтирают/изменÑÑŽÑ‚\n"
-" иÑторию (mq, rebase и Ñ‚.п.), может Ñоздать определенную путаницу\n"
-" Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ñемыми клонами. Ð’ чаÑтноÑти, еÑли два разделÑемых клона\n"
-" обновлены на один и тот же набор изменений, и один из них уничтожает\n"
-" Ñтот набор изменений Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ rollback, второй клон вдруг "
-"переÑтанет\n"
-" работать: вÑе операции будут завершатьÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹ \"рабочий каталог\n"
-" имеет неизвеÑтного родителÑ\". ЕдинÑтвенное извеÑтное решение - \n"
-" иÑпользовать debugsetparents на иÑпорченном клоне, чтобы перегрузить\n"
-" его на набор изменений, который еще ÑущеÑтвует (Ñ‚.е. tip)."
-
-msgid "convert a shared repository to a normal one"
-msgstr "Преобразовать разделÑемое хранилище в обычное"
-
-msgid ""
-" Copy the store data to the repo and remove the sharedpath data.\n"
-" "
-msgstr ""
-" Копирует хранимые данные в хранилище и удалÑет данные sharedpath.\n"
-" "
-
-msgid "this is not a shared repo"
-msgstr "Ñто не разделÑемое хранилище"
msgid "do not create a working copy"
-msgstr "не Ñоздавать рабочую копию"
+msgstr ""
msgid "[-U] SOURCE [DEST]"
-msgstr "[-U] ИСТОЧÐИК [ÐÐЗÐÐЧЕÐИЕ]"
+msgstr ""
msgid "command to transplant changesets from another branch"
-msgstr "команда Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑадки наборов изменений из другой ветки"
+msgstr ""
msgid "This extension allows you to transplant patches from another branch."
-msgstr "Это раÑширение позволÑет вам перенеÑти патчи из другой ветки."
+msgstr ""
-# BUG может, иÑходной ветке, а не хранилище?
msgid ""
"Transplanted patches are recorded in .hg/transplant/transplants, as a\n"
"map from a changeset hash to its hash in the source repository.\n"
msgstr ""
-"ПереÑаженные патчи запиÑываютÑÑ Ð² .hg/transplant/transplants, как\n"
-"ÑопоÑтавление Ñ…Ñша набора изменений его Ñ…Ñшу в иÑходном хранилище.\n"
#, python-format
msgid "skipping already applied revision %s\n"
-msgstr "пропуÑкаем уже примененную ревизию %s\n"
+msgstr ""
#, python-format
msgid "skipping merge changeset %s:%s\n"
-msgstr "пропуÑкаем ревизию ÑлиÑÐ½Ð¸Ñ %s:%s\n"
-
-#, python-format
-msgid "%s is not a parent of %s"
-msgstr "%s не родитель %s"
+msgstr ""
#, python-format
msgid "%s merged at %s\n"
-msgstr "%s Ñлит в %s\n"
+msgstr ""
#, python-format
msgid "%s transplanted to %s\n"
-msgstr "%s переÑажен в %s\n"
+msgstr ""
#, python-format
msgid "filtering %s\n"
-msgstr "фильтруем %s\n"
+msgstr ""
msgid "filter failed"
-msgstr "Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ðµ удалаÑÑŒ"
+msgstr ""
msgid "can only omit patchfile if merging"
-msgstr "patchfile можно опуÑтить только при ÑлиÑнии"
+msgstr ""
+
+#, python-format
+msgid "%s: empty changeset"
+msgstr ""
msgid "fix up the merge and run hg transplant --continue"
-msgstr "разрешите конфликты и запуÑтите hg transplant --continue"
+msgstr ""
#, python-format
msgid "%s transplanted as %s\n"
-msgstr "%s переÑажен как %s\n"
+msgstr ""
msgid "transplant log file is corrupt"
-msgstr "файл журнала переÑадки поврежден"
+msgstr ""
#, python-format
msgid "working dir not at transplant parent %s"
-msgstr "рабочий каталог не на родителе %s"
+msgstr ""
msgid "commit failed"
-msgstr "фикÑÐ°Ñ†Ð¸Ñ Ð½Ðµ удалаÑÑŒ"
+msgstr ""
msgid "filter corrupted changeset (no user or date)"
-msgstr "поврежденный набор изменений отфильтрован (нет Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ даты)"
+msgstr ""
-# transplant input is not localized
msgid ""
"y: transplant this changeset\n"
"n: skip this changeset\n"
@@ -8994,53 +5834,45 @@ msgid ""
"q: cancel transplant\n"
"?: show this help\n"
msgstr ""
-"y: (Yes) переÑадить Ñтот набор изменений\n"
-"n: (No) пропуÑтить Ñтот набор изменений\n"
-"m: (Merge) Ñлить в Ñтом наборе изменений\n"
-"p: (Patch) показать патч\n"
-"c: (Commit) зафикÑировать выбранные наборы изменений\n"
-"q: (Quit) отказатьÑÑ Ð¾Ñ‚ переÑадки\n"
-"?: показать Ñту Ñправку\n"
msgid "apply changeset? [ynmpcq?]:"
-msgstr "применить набор изменений? [ynmpcq?]:"
+msgstr ""
msgid "no such option\n"
-msgstr "нет такого варианта\n"
+msgstr ""
msgid "pull patches from REPO"
-msgstr "затÑнуть патчи из ХРÐÐИЛИЩÐ"
+msgstr ""
+
+msgid "BRANCH"
+msgstr "ВЕТВЬ"
msgid "pull patches from branch BRANCH"
-msgstr "затÑнуть патчи из ВЕТКИ"
+msgstr ""
msgid "pull all changesets up to BRANCH"
-msgstr "затÑнуть вÑе наборы изменений вплоть до ВЕТКИ"
+msgstr ""
msgid "skip over REV"
-msgstr "пропуÑтить РЕВизию"
+msgstr ""
msgid "merge at REV"
-msgstr "Ñлить в РЕВизии"
-
-msgid "parent to choose when transplanting merge"
-msgstr "Ð²Ñ‹Ð±Ð¸Ñ€Ð°ÐµÐ¼Ð°Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¿Ñ€Ð¸ перÑадке ÑлиÑниÑ"
+msgstr ""
msgid "append transplant info to log message"
-msgstr "добавить информацию о переÑадке в журнальное Ñообщение"
+msgstr ""
msgid "continue last transplant session after repair"
-msgstr "продолжить поÑледний ÑÐµÐ°Ð½Ñ transplant поÑле иÑправлениÑ"
+msgstr ""
msgid "filter changesets through command"
-msgstr "отфильтровать наборы изменений Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команды"
+msgstr ""
msgid "hg transplant [-s REPO] [-b BRANCH [-a]] [-p REV] [-m REV] [REV]..."
msgstr ""
-"hg transplant [-s ХРÐÐИЛИЩЕ] [-b ВЕТКР[-a]] [-p РЕВ] [-m РЕВ] [РЕВ]..."
msgid "transplant changesets from another branch"
-msgstr "переÑадить наборы изменений из другой ветки"
+msgstr ""
msgid ""
" Selected changesets will be applied on top of the current working\n"
@@ -9049,31 +5881,20 @@ msgid ""
" rebase extension instead if you want to move a whole branch of\n"
" unpublished changesets."
msgstr ""
-" Выбранные наборы изменений будут применены поверх текущего рабочего\n"
-" каталога Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ ÑообщениÑми иÑходных наборов изменений. Ðаборы\n"
-" изменений копируютÑÑ, поÑтому они отобразÑÑ‚ÑÑ Ð² иÑтории дважды.\n"
-" ИÑпользуйте раÑширение rebase, еÑли вы хотите перемеÑтить целую ветку Ñ\n"
-" неопубликованными наборами изменений."
msgid ""
" If --log is specified, log messages will have a comment appended\n"
" of the form::"
msgstr ""
-" ЕÑли указан --log, к журнальным ÑообщениÑм будет добавлен\n"
-" комментарий вида::"
-# BUG should be localized
msgid " (transplanted from CHANGESETHASH)"
-msgstr " (transplanted from ХЭШРЕВИЗИИ)"
+msgstr ""
msgid ""
" You can rewrite the changelog message with the --filter option.\n"
" Its argument will be invoked with the current changelog message as\n"
" $1 and the patch as $2."
msgstr ""
-" Ð’Ñ‹ можете заменить журнальное Ñообщение Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ параметра --filter.\n"
-" Его аргумент будет вызван Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ журнальным Ñообщением в качеÑтве\n"
-" $1 и патчем в качеÑтве $2."
msgid ""
" If --source/-s is specified, selects changesets from the named\n"
@@ -9083,21 +5904,12 @@ msgid ""
" transplanted, otherwise you will be prompted to select the\n"
" changesets you want."
msgstr ""
-" ЕÑли указан --source/-s, выбираютÑÑ Ð½Ð°Ð±Ð¾Ñ€Ñ‹ изменений из заданного\n"
-" хранилища. ЕÑли указан --branch/-b, выбираютÑÑ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¸\n"
-" из ветки, Ñодержащей заданную ревизию, вплоть до Ñтой ревизии.\n"
-" ЕÑли указан -a/--all, будут переÑажены вÑе наборы изменений на ветке,\n"
-" в противном Ñлучае вам будет предложено ÑамоÑтоÑтельно выбрать наборы\n"
-" изменений, которые вы хотите переÑадить."
msgid ""
-" :hg:`transplant --branch REV --all` will transplant the\n"
+" :hg:`transplant --branch REVISION --all` will transplant the\n"
" selected branch (up to the named revision) onto your current\n"
" working directory."
msgstr ""
-" :hg:`transplant --branch РЕВИЗИЯ --all` переÑадит выбранную\n"
-" ветку (вплоть до указанной ревизии) поверх текущего рабочего\n"
-" каталога."
msgid ""
" You can optionally mark selected transplanted changesets as merge\n"
@@ -9105,26 +5917,11 @@ msgid ""
" of a merged transplant, and you can merge descendants of them\n"
" normally instead of transplanting them."
msgstr ""
-" Ð’Ñ‹ также можете опционально пометить выбранные переÑаженные\n"
-" наборы изменений как ÑлиÑниÑ. При Ñтом вам не будет предложено\n"
-" переÑадить каких-либо предков Ñлитой переÑаженной ревизии, и вы\n"
-" можете Ñлить их потомков обычным путем, не иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð´Ð»Ñ Ñтого\n"
-" transplant."
-
-msgid ""
-" Merge changesets may be transplanted directly by specifying the\n"
-" proper parent changeset by calling :hg:`transplant --parent`."
-msgstr ""
-" Ревизии ÑлиÑÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть переÑажены напрÑмую, путем заданиÑ\n"
-" ÑоответÑтвующей родительÑкой ревизии Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
-" :hg:`transplant --parent`."
msgid ""
" If no merges or revisions are provided, :hg:`transplant` will\n"
" start an interactive changeset browser."
msgstr ""
-" ЕÑли не задано ни ревизий, ни ÑлиÑний, :hg:`transplant` запуÑтит\n"
-" интерактивный обозреватель наборов изменений."
msgid ""
" If a changeset application fails, you can fix the merge by hand\n"
@@ -9132,49 +5929,40 @@ msgid ""
" --continue/-c`.\n"
" "
msgstr ""
-" ЕÑли применение набора изменений не удалоÑÑŒ, вы можете вручную\n"
-" разрешить конфликты, а потом продолжить переÑадку Ñ Ñ‚Ð¾Ð³Ð¾ же меÑта\n"
-" Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`transplant --continue/-c`.\n"
-" "
msgid "--continue is incompatible with branch, all or merge"
-msgstr "Ñ --continue Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð´Ð°Ð²Ð°Ñ‚ÑŒ ветку, all или ÑлиÑние"
+msgstr ""
msgid "no source URL, branch tag or revision list provided"
-msgstr "не указан URL иÑточника, ревизии ветки или ÑпиÑок ревизий"
+msgstr ""
msgid "--all requires a branch revision"
-msgstr "--all требует ревизии ветки"
+msgstr ""
msgid "--all is incompatible with a revision list"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ одновременно --all и ÑпиÑок ревизий"
+msgstr ""
msgid "no revision checked out"
-msgstr "нет извлеченной ревизии"
+msgstr ""
msgid "outstanding uncommitted merges"
-msgstr "незафикÑированные ÑлиÑниÑ"
+msgstr ""
msgid "outstanding local changes"
-msgstr "незафикÑированные локальные изменениÑ"
+msgstr ""
msgid ""
"``transplanted([set])``\n"
" Transplanted changesets in set, or all transplanted changesets."
msgstr ""
-"``transplanted([множеÑтво])``\n"
-" ПереÑаженные наборы изменений из множеÑтва, или вÑе переÑаженные\n"
-" наборы изменений."
msgid ""
":transplanted: String. The node identifier of the transplanted\n"
" changeset if any."
msgstr ""
-":transplanted: Строка. Идентификатор узла переÑаженного набора изменений\n"
-" еÑли таковой имеетÑÑ."
msgid "allow the use of MBCS paths with problematic encodings"
-msgstr "разрешает иÑпользование путей в MBCS Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð½Ñ‹Ð¼Ð¸ кодировками"
+msgstr ""
msgid ""
"Some MBCS encodings are not good for some path operations (i.e.\n"
@@ -9184,15 +5972,9 @@ msgid ""
"wrapping some functions to convert to Unicode string before path\n"
"operation."
msgstr ""
-"Ðекоторые MBCS (многобайтовые) кодировки плохо подходÑÑ‚ Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ñ…\n"
-"операций Ñ Ð¿ÑƒÑ‚Ñми (например, разделение пути, преобразование региÑтров\n"
-"и т.п.). Мы называем такие кодировки (т.е. shift_jis и big5) \"проблемными\n"
-"кодировками\". Это раÑширение может быть иÑпользовано Ð´Ð»Ñ Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼\n"
-"Ñ Ñ‚Ð°ÐºÐ¸Ð¼Ð¸ кодировками Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ оберток над некоторыми функциÑми длÑ\n"
-"Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтрок в Юникод перед операциÑми над путÑми."
msgid "This extension is useful for:"
-msgstr "Это раÑширение полезно длÑ:"
+msgstr ""
msgid ""
"- Japanese Windows users using shift_jis encoding.\n"
@@ -9200,87 +5982,61 @@ msgid ""
"- All users who use a repository with one of problematic encodings on\n"
" case-insensitive file system."
msgstr ""
-"- Пользователей Windows, иÑпользующих ÑпонÑкую кодировку shift_jis.\n"
-"- Пользователей Windows, иÑпользующих китайÑкую кодировку big5.\n"
-"- Ð’Ñех пользователей, иÑпользующих хранилище Ñ Ð¾Ð´Ð½Ð¾Ð¹ из проблемных\n"
-" кодировок на нечувÑтвительной к региÑтру файловой ÑиÑтеме."
msgid "This extension is not needed for:"
-msgstr "Это раÑширение не нужно:"
+msgstr ""
msgid ""
"- Any user who use only ASCII chars in path.\n"
"- Any user who do not use any of problematic encodings."
msgstr ""
-"- Ð’Ñем пользователÑм, иÑпользующим только ASCII-Ñимволы в путÑÑ….\n"
-"- Ð’Ñем пользователÑм, не иÑпользующим ни одну из проблемных кодировок."
msgid "Note that there are some limitations on using this extension:"
msgstr ""
-"Обратите внимание, что ÑущеÑтвуют определенные Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸\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 ""
-"По умолчанию win32mbcs иÑпользует значение encoding.encoding, выбранное\n"
-"Mercurial. Можно задать кодировку в конфиге::"
msgid ""
" [win32mbcs]\n"
" encoding = sjis"
msgstr ""
-" [win32mbcs]\n"
-" encoding = sjis"
msgid "It is useful for the users who want to commit with UTF-8 log message.\n"
msgstr ""
-"Это полезно пользователÑм, которые хотÑÑ‚ фикÑировать Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ "
-"ÑообщениÑми в UTF-8.\n"
#, python-format
msgid "[win32mbcs] filename conversion failed with %s encoding\n"
-msgstr "[win32mbcs] не удалоÑÑŒ конвертировать Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ¾Ð¹ %s\n"
+msgstr ""
msgid "[win32mbcs] cannot activate on this platform.\n"
-msgstr "[win32mbcs] не удаетÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ на Ñтой платформе.\n"
+msgstr ""
msgid "perform automatic newline conversion"
-msgstr "выполнÑÑ‚ÑŒ автоматичеÑкое преобразование формата новой Ñтроки"
+msgstr ""
msgid ""
" Deprecation: The win32text extension requires each user to configure\n"
" the extension again and again for each clone since the configuration\n"
" is not copied when cloning."
msgstr ""
-" РаÑширение уÑтарело: win32text заÑтавлÑет каждого пользователÑ\n"
-" выполнÑÑ‚ÑŒ наÑтройку Ñнова и Ñнова Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ клона, Ñ‚.к. наÑтройки\n"
-" не копируютÑÑ Ð¿Ñ€Ð¸ клонировании."
msgid ""
" We have therefore made the ``eol`` as an alternative. The ``eol``\n"
" uses a version controlled file for its configuration and each clone\n"
" will therefore use the right settings from the start."
msgstr ""
-" ПоÑтому мы Ñделали раÑширение ``eol`` в качеÑтве альтернативы. РаÑширение\n"
-" ``eol`` иÑпользует верÑионируемый файл Ð´Ð»Ñ Ñвоих наÑтроек, поÑтому каждый\n"
-" клон изначально иÑпользует правильные наÑтройки."
msgid "To perform automatic newline conversion, use::"
msgstr ""
-"Чтобы производить автоматичеÑкое преобразование формата новой Ñтроки, "
-"иÑпользуйте::"
msgid ""
" [extensions]\n"
@@ -9289,51 +6045,33 @@ msgid ""
" ** = cleverencode:\n"
" # or ** = macencode:"
msgstr ""
-" [extensions]\n"
-" win32text =\n"
-" [encode]\n"
-" ** = cleverencode:\n"
-" # или ** = macencode:"
msgid ""
" [decode]\n"
" ** = cleverdecode:\n"
" # or ** = macdecode:"
msgstr ""
-" [decode]\n"
-" ** = cleverdecode:\n"
-" # или ** = macdecode:"
msgid ""
"If not doing conversion, to make sure you do not commit CRLF/CR by accident::"
msgstr ""
-"ЕÑли преобразование не выполнÑетÑÑ, не забудьте убедитьÑÑ, что вы Ñлучайно\n"
-"не зафикÑируете CRLF/CR::"
msgid ""
" [hooks]\n"
" pretxncommit.crlf = python:hgext.win32text.forbidcrlf\n"
" # or pretxncommit.cr = python:hgext.win32text.forbidcr"
msgstr ""
-" [hooks]\n"
-" pretxncommit.crlf = python:hgext.win32text.forbidcrlf\n"
-" # или pretxncommit.cr = python:hgext.win32text.forbidcr"
msgid ""
"To do the same check on a server to prevent CRLF/CR from being\n"
"pushed or pulled::"
msgstr ""
-"То же Ñамое на Ñервере, чтобы предотвратить затÑгивание или\n"
-"проталкивание CRLF/CR::"
msgid ""
" [hooks]\n"
" pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf\n"
" # or pretxnchangegroup.cr = python:hgext.win32text.forbidcr\n"
msgstr ""
-" [hooks]\n"
-" pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf\n"
-" # или pretxnchangegroup.cr = python:hgext.win32text.forbidcr\n"
#, python-format
msgid ""
@@ -9342,20 +6080,14 @@ msgid ""
"Before your next commit, please reconsider your encode/decode settings in \n"
"Mercurial.ini or %s.\n"
msgstr ""
-"Ð’ÐИМÐÐИЕ: %s уже имеет формат новой Ñтроки %s\n"
-"и не нуждаетÑÑ Ð² его преобразовании Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ win32text.\n"
-"Перед Ñледующей фикÑацией, пожалуйÑта, переÑмотрите ваши наÑтройки\n"
-"в Mercurial.ini или %s.\n"
#, python-format
-msgid "attempt to commit or push text file(s) using %s line endings\n"
+msgid "Attempt to commit or push text file(s) using %s line endings\n"
msgstr ""
-"попытка зафикÑировать или протолкнуть текÑтовые файл(Ñ‹) Ñ Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð°Ð¼Ð¸\n"
-"Ñтроки формата %s\n"
#, python-format
msgid "in %s: %s\n"
-msgstr "в %s: %s\n"
+msgstr ""
#, python-format
msgid ""
@@ -9363,21 +6095,16 @@ msgid ""
"To prevent this mistake in your local repository,\n"
"add to Mercurial.ini or .hg/hgrc:"
msgstr ""
-"\n"
-"Чтобы предотвратить Ñту ошибку в вашем локальном хранилище, добавьте Ñто\n"
-"в Mercurial.ini или .hg/hgrc:"
#, python-format
msgid ""
"[hooks]\n"
"pretxncommit.%s = python:hgext.win32text.forbid%s"
msgstr ""
-"[hooks]\n"
-"pretxncommit.%s = python:hgext.win32text.forbid%s"
#, python-format
msgid "and also consider adding:"
-msgstr "также раÑÑмотрите вариант добавлениÑ:"
+msgstr ""
#, python-format
msgid ""
@@ -9388,160 +6115,138 @@ msgid ""
"[decode]\n"
"** = %sdecode:\n"
msgstr ""
-"[extensions]\n"
-"win32text =\n"
-"[encode]\n"
-"** = %sencode:\n"
-"[decode]\n"
-"** = %sdecode:\n"
msgid ""
"win32text is deprecated: http://mercurial.selenic.com/wiki/"
"Win32TextExtension\n"
msgstr ""
-"win32text уÑтарело: Ñм. http://mercurial.selenic.com/wiki/"
-"Win32TextExtension\n"
msgid "discover and advertise repositories on the local network"
-msgstr "обнаруживать и оповещать о хранилищах в локальной Ñети"
+msgstr ""
msgid ""
"Zeroconf-enabled repositories will be announced in a network without\n"
"the need to configure a server or a service. They can be discovered\n"
"without knowing their actual IP address."
msgstr ""
-"Хранилища Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ‹Ð¼ Zeroconf будут афишированы в Ñети без необходимоÑти\n"
-"наÑтройки Ñлужбы или Ñервера. Их можно обнаружить без Ð·Ð½Ð°Ð½Ð¸Ñ Ð¸Ñ…\n"
-"реального IP-адреÑа."
msgid ""
"To allow other people to discover your repository using run\n"
":hg:`serve` in your repository::"
msgstr ""
-"Чтобы позволить другим людÑм обнаружить ваше хранилище, запуÑтите\n"
-":hg:`serve` в вашем хранилище::"
msgid ""
" $ cd test\n"
" $ hg serve"
msgstr ""
-" $ cd test\n"
-" $ hg serve"
msgid ""
"You can discover Zeroconf-enabled repositories by running\n"
":hg:`paths`::"
msgstr ""
-"Ð’Ñ‹ можете обнаружить хранилища Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ‹Ð¼ Zeroconf Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
-":hg:`paths`::"
msgid ""
" $ hg paths\n"
" zc-test = http://example.com:8000/test\n"
msgstr ""
-" $ hg paths\n"
-" zc-test = http://example.com:8000/test\n"
-# }}} End of extensions
msgid "archive prefix contains illegal components"
-msgstr "Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð°Ñ€Ñ…Ð¸Ð²Ð° Ñодержит недопуÑтимые компоненты"
+msgstr ""
-msgid "archiving"
-msgstr "архивирование"
+msgid "cannot give prefix when archiving to files"
+msgstr ""
#, python-format
-msgid "malformed line in .hg/bookmarks: %r\n"
-msgstr "Ð¿Ð»Ð¾Ñ…Ð°Ñ Ñтрока в .hg/bookmarks: %r\n"
+msgid "unknown archive type '%s'"
+msgstr ""
+
+msgid "archiving"
+msgstr ""
#, python-format
msgid "bookmark '%s' contains illegal character"
-msgstr "закладка '%s' Ñодержит недопуÑтимый Ñимвол"
+msgstr ""
#, python-format
msgid "branch %s not found"
-msgstr "ветка %s не найдена"
+msgstr ""
-# NOT-SURE
#, python-format
-msgid "divergent bookmark %s stored as %s\n"
-msgstr "Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð¾Ñ€ÐµÑ‡Ð¸Ð²Ð°Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ° %s Ñохранена как %s\n"
+msgid "updating bookmark %s\n"
+msgstr ""
#, python-format
-msgid "adding remote bookmark %s\n"
-msgstr "добавление отдалённой закладки %s\n"
+msgid "not updating divergent bookmark %s\n"
+msgstr ""
msgid "searching for changed bookmarks\n"
-msgstr "поиÑк изменившихÑÑ Ð·Ð°ÐºÐ»Ð°Ð´Ð¾Ðº\n"
+msgstr ""
msgid "no changed bookmarks found\n"
-msgstr "измененных закладок не найдено\n"
+msgstr ""
msgid "unknown parent"
-msgstr "неизвеÑтный родитель"
+msgstr ""
#, python-format
msgid "integrity check failed on %s:%d"
-msgstr "ошибка при проверке целоÑтноÑти %s:%d"
+msgstr ""
msgid "cannot create new bundle repository"
-msgstr "невозможно Ñоздать новое хранилище-комплект (bundle)"
+msgstr ""
#, python-format
msgid "stream ended unexpectedly (got %d bytes, expected %d)"
-msgstr "неожиданное завершение потока (получено %d байт, ожидалоÑÑŒ %d)"
+msgstr ""
#, python-format
msgid "invalid chunk length %d"
-msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° учаÑтка %d"
+msgstr ""
#, python-format
msgid "%s: not a Mercurial bundle"
-msgstr "%s: не комплект Mercurial"
+msgstr ""
#, python-format
msgid "%s: unknown bundle version %s"
-msgstr "%s: неизвеÑÑ‚Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ÐºÐ¾Ð¼Ð¿Ð»ÐµÐºÑ‚Ð° %s"
+msgstr ""
msgid "empty username"
-msgstr "пуÑтое Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ"
+msgstr ""
#, python-format
msgid "username %s contains a newline"
-msgstr "Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %s Ñодержит перевод Ñтроки"
+msgstr ""
#, python-format
msgid "the name '%s' is reserved"
msgstr "Ð¸Ð¼Ñ '%s' зарезервировано"
-#, python-format
-msgid "uncommitted changes in subrepo %s"
-msgstr "незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² подхранилище %s"
-
msgid "options --message and --logfile are mutually exclusive"
-msgstr "параметры --massage и --logfile взаимно иÑключающие"
+msgstr ""
#, python-format
msgid "can't read commit message '%s': %s"
-msgstr "не удаетÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ Ñообщение фикÑации '%s': %s"
+msgstr ""
msgid "limit must be a positive integer"
-msgstr "ограничение должно быть положительным целым чиÑлом"
+msgstr ""
msgid "limit must be positive"
-msgstr "ограничение должно быть положительным"
+msgstr ""
#, python-format
msgid "invalid format spec '%%%s' in output filename"
-msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð° '%%%s' в имени выходного файла"
+msgstr ""
msgid "cannot specify --changelog and --manifest at the same time"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ --changelog и --manifest одновременно"
+msgstr ""
msgid "cannot specify filename with --changelog or --manifest"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð´Ð°Ð²Ð°Ñ‚ÑŒ Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ñ --changelog или --manifest"
+msgstr ""
msgid "cannot specify --changelog or --manifest without a repository"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð´Ð°Ð²Ð°Ñ‚ÑŒ --changelog или --manifest без хранилища"
+msgstr ""
msgid "invalid arguments"
msgstr "неверные параметры"
@@ -9552,262 +6257,202 @@ msgstr "revlog '%s' не найден"
#, python-format
msgid "%s: not copying - file is not managed\n"
-msgstr "%s: не копируетÑÑ - файл не контролируетÑÑ\n"
+msgstr ""
#, python-format
msgid "%s: not copying - file has been marked for remove\n"
-msgstr "%s: не копируетÑÑ - файл был помечен Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ\n"
+msgstr ""
#, python-format
msgid "%s: not overwriting - %s collides with %s\n"
-msgstr "%s: не перезапиÑываетÑÑ - %s конфликтует Ñ %s\n"
-
-#, python-format
-msgid "%s: can't copy - same file\n"
-msgstr "%s: Ð½ÐµÐ»ÑŒÐ·Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ файл Ñамого в ÑебÑ\n"
+msgstr ""
#, python-format
msgid "%s: not overwriting - file exists\n"
-msgstr "%s: не перезапиÑываетÑÑ - файл ÑущеÑтвует\n"
+msgstr ""
#, python-format
msgid "%s: not recording move - %s does not exist\n"
-msgstr "%s: перемещение не запиÑываетÑÑ - %s не ÑущеÑтвует\n"
+msgstr ""
#, python-format
msgid "%s: not recording copy - %s does not exist\n"
-msgstr "%s: копирование не запиÑываетÑÑ - %s не ÑущеÑтвует\n"
+msgstr ""
#, python-format
msgid "%s: deleted in working copy\n"
-msgstr "%s: удален в рабочей копии\n"
+msgstr ""
#, python-format
msgid "%s: cannot copy - %s\n"
-msgstr "%s: не удаетÑÑ Ñкопировать - %s\n"
+msgstr ""
#, python-format
msgid "moving %s to %s\n"
-msgstr "%s перемещаетÑÑ Ð² %s\n"
+msgstr ""
#, python-format
msgid "copying %s to %s\n"
-msgstr "%s копируетÑÑ Ð² %s\n"
+msgstr ""
msgid "no source or destination specified"
-msgstr "не указан иÑточник или назначение"
+msgstr ""
msgid "no destination specified"
-msgstr "не указано назначение"
+msgstr ""
msgid "with multiple sources, destination must be an existing directory"
msgstr ""
-"еÑли задано неÑколько иÑточников, назначение должно быть ÑущеÑтвующим "
-"каталогом"
#, python-format
msgid "destination %s is not a directory"
-msgstr "назначение %s не ÑвлÑетÑÑ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼"
+msgstr ""
+
+msgid "no files to copy"
+msgstr ""
msgid "(consider using --after)\n"
-msgstr "(попробуйте иÑпользовать --after?)\n"
+msgstr ""
msgid "child process failed to start"
-msgstr "не удалоÑÑŒ запуÑтить дочерний процеÑÑ"
+msgstr ""
-# может Ñделать "набор изм-й" или "ревизиÑ" Ð´Ð»Ñ Ñкономии меÑта?
#, python-format
msgid "changeset: %d:%s\n"
-msgstr "набор изменений: %d:%s\n"
+msgstr ""
#, python-format
msgid "branch: %s\n"
-msgstr "ветка: %s\n"
+msgstr ""
#, python-format
msgid "bookmark: %s\n"
-msgstr "закладка: %s\n"
+msgstr ""
#, python-format
msgid "tag: %s\n"
-msgstr "метка: %s\n"
-
-#, python-format
-msgid "phase: %s\n"
-msgstr "фаза: %s\n"
+msgstr ""
#, python-format
msgid "parent: %d:%s\n"
-msgstr "родитель: %d:%s\n"
+msgstr ""
#, python-format
msgid "manifest: %d:%s\n"
-msgstr "манифеÑÑ‚: %d:%s\n"
+msgstr ""
#, python-format
msgid "user: %s\n"
-msgstr "пользователь: %s\n"
+msgstr ""
#, python-format
msgid "date: %s\n"
-msgstr "дата: %s\n"
+msgstr ""
msgid "files+:"
-msgstr "файлов+:"
+msgstr ""
msgid "files-:"
-msgstr "файлов-:"
+msgstr ""
msgid "files:"
-msgstr "файлы:"
+msgstr ""
#, python-format
msgid "files: %s\n"
-msgstr "файлы: %s\n"
+msgstr ""
#, python-format
msgid "copies: %s\n"
-msgstr "Ñкопировано: %s\n"
+msgstr ""
#, python-format
msgid "extra: %s=%s\n"
-msgstr "дополнительно: %s=%s\n"
+msgstr ""
msgid "description:\n"
-msgstr "опиÑание:\n"
+msgstr ""
#, python-format
msgid "summary: %s\n"
-msgstr "Ñводка: %s\n"
+msgstr ""
#, python-format
msgid "%s: no key named '%s'"
-msgstr "%s: нет ключа Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ '%s'"
+msgstr ""
-# второй параметр - дата/времÑ
#, python-format
-msgid "found revision %s from %s\n"
-msgstr "найдена Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s от %s\n"
+msgid "Found revision %s from %s\n"
+msgstr ""
msgid "revision matching date not found"
-msgstr "не найдена Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ даты"
-
-#, python-format
-msgid "cannot follow file not in parent revision: \"%s\""
msgstr ""
-"невозможно отÑлеживать файл, которого нет в родительÑкой ревизии: \"%s\""
#, python-format
msgid "cannot follow nonexistent file: \"%s\""
-msgstr "невозможно отÑлеживать неÑущеÑтвующий файл: \"%s\""
+msgstr ""
msgid "can only follow copies/renames for explicit filenames"
msgstr ""
-"чтобы отÑлеживать копированиÑ/переименованиÑ, требуетÑÑ Ñвное Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°"
-
-#, python-format
-msgid "-G/--graph option is incompatible with --%s"
-msgstr "Ð¾Ð¿Ñ†Ð¸Ñ -G/--graph неÑовмеÑтима Ñ --%s "
#, python-format
msgid "adding %s\n"
-msgstr "добавлÑетÑÑ %s\n"
+msgstr "добавлÑÑŽ %s\n"
#, python-format
msgid "skipping missing subrepository: %s\n"
-msgstr "пропуÑкаетÑÑ Ð¾Ñ‚ÑутÑтвующее подхранилище: %s\n"
-
-#, python-format
-msgid "amending changeset %s\n"
-msgstr "иÑправление набора изменений %s\n"
-
-#, python-format
-msgid "copying changeset %s to %s\n"
-msgstr "набор изменений %s копируетÑÑ Ð² %s\n"
-
-#, python-format
-msgid "stripping intermediate changeset %s\n"
-msgstr "вырезаем промежуточную ревизию %s\n"
-
-#, python-format
-msgid "stripping amended changeset %s\n"
-msgstr "вырезаем иÑправленную ревизию %s\n"
+msgstr ""
msgid "HG: Enter commit message. Lines beginning with 'HG:' are removed."
msgstr ""
-"HG: Введите Ñообщение фикÑации. Строки, начинающиеÑÑ Ñ 'HG:' будут удалены."
msgid "HG: Leave message empty to abort commit."
-msgstr "HG: ОÑтавьте Ñообщение пуÑтым, чтобы отменить фикÑацию."
+msgstr ""
#, python-format
msgid "HG: user: %s"
-msgstr "HG: пользователь: %s"
+msgstr ""
msgid "HG: branch merge"
-msgstr "HG: ÑлиÑние веток"
+msgstr ""
#, python-format
msgid "HG: branch '%s'"
-msgstr "HG: ветка '%s'"
+msgstr ""
#, python-format
msgid "HG: subrepo %s"
-msgstr "HG: подхранилище %s"
+msgstr ""
-# UGLY
#, python-format
msgid "HG: added %s"
-msgstr "HG: добавлен(ы) %s"
+msgstr ""
-# UGLY
#, python-format
msgid "HG: changed %s"
-msgstr "HG: изменен(ы) %s"
+msgstr ""
-# UGLY
#, python-format
msgid "HG: removed %s"
-msgstr "HG: удален(ы) %s"
+msgstr ""
msgid "HG: no files changed"
-msgstr "HG: нет измененных файлов"
+msgstr ""
msgid "empty commit message"
-msgstr "пуÑтое Ñообщение фикÑации"
-
-#, python-format
-msgid "forgetting %s\n"
-msgstr "забываю %s\n"
-
-#, python-format
-msgid "reverting %s\n"
-msgstr "воÑÑтановление %s\n"
-
-#, python-format
-msgid "undeleting %s\n"
-msgstr "отмена ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ %s\n"
-
-#, python-format
-msgid "file not managed: %s\n"
-msgstr "файл не под контролем верÑий: %s\n"
-
-#, python-format
-msgid "no changes needed to %s\n"
-msgstr "не требуютÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ %s\n"
+msgstr ""
-# overlay - накладываемый?
msgid "repository root directory or name of overlay bundle file"
-msgstr "корневой каталог хранилища или Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° комплекта"
+msgstr "корневой каталог Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð»Ð¸ файл бандла"
msgid "DIR"
-msgstr "КÐТÐЛОГ"
+msgstr "ДИР"
msgid "change working directory"
msgstr "Ñменить рабочий каталог"
-msgid "do not prompt, automatically pick the first choice for all prompts"
-msgstr "не Ñпрашивать, на вÑе вопроÑÑ‹ автоматичеÑки выбирать первый вариант"
+msgid "do not prompt, assume 'yes' for any required answers"
+msgstr "не Ñпрашивать подтвержданиÑ, вÑегда автоматичеÑки отвечать 'да'"
msgid "suppress output"
msgstr "подавлÑÑ‚ÑŒ вывод"
@@ -9817,8 +6462,7 @@ msgstr "включить дополнительный вывод"
msgid "set/override config option (use 'section.name=value')"
msgstr ""
-"задать/переопределить параметр конфигурации (в виде 'ÑекциÑ."
-"параметр=значение')"
+"задать/переопределить параметр конфига (в виде 'ÑекциÑ.параметр=значение')"
msgid "CONFIG"
msgstr "КОÐФИГ"
@@ -9863,7 +6507,7 @@ msgid "specify ssh command to use"
msgstr "иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Ð´Ð»Ñ ssh"
msgid "specify hg command to run on the remote side"
-msgstr "команда Mercurial, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚ запущена на отдалённом компьютере"
+msgstr "комадна Mercurial, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚ запущена на удаленном компьютере"
msgid "do not verify server certificate (ignoring web.cacerts config)"
msgstr "не проверÑÑ‚ÑŒ Ñертификат Ñервера (Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€ÑƒÑ Ð½Ð°Ñтройку web.cacerts)"
@@ -9872,22 +6516,22 @@ msgid "PATTERN"
msgstr "ШÐБЛОÐ"
msgid "include names matching the given patterns"
-msgstr "добавить файлы, имена которых ÑоответÑтвуют данным шаблонам"
+msgstr "включить файлы, имена которых ÑоответÑтвуют данным шаблонам"
msgid "exclude names matching the given patterns"
-msgstr "не добавлÑÑ‚ÑŒ файлы, имена которых ÑоответÑтвуют данным шаблонам"
+msgstr "иÑключить файлы, имена которых ÑоответÑтвуют данным шаблонам"
msgid "use text as commit message"
-msgstr "текÑÑ‚ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ„Ð¸ÐºÑации"
+msgstr "текÑÑ‚ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ Ðº коммиту"
msgid "read commit message from file"
-msgstr "взÑÑ‚ÑŒ Ñообщение фикÑации из файла"
+msgstr "читать журнальные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ð· файла"
msgid "record the specified date as commit date"
-msgstr "иÑпользовать Ñту дату в качеÑтве даты фикÑации"
+msgstr "иÑпользовать Ñту дату в качеÑтве даты коммита"
msgid "record the specified user as committer"
-msgstr "иÑпользовать Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº автора фикÑации"
+msgstr "иÑпользовать Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº автора коммита"
msgid "STYLE"
msgstr "СТИЛЬ"
@@ -9898,23 +6542,17 @@ msgstr "отображать Ñ Ð¸Ñпользование файла-карты
msgid "display with template"
msgstr "отображать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ шаблона"
-msgid "show patch"
-msgstr "показать патч"
-
msgid "do not show merges"
msgstr "не показывать ÑлиÑниÑ"
msgid "output diffstat-style summary of changes"
msgstr "отображать Ñводку изменений в Ñтиле diffstat"
-msgid "show the revision DAG"
-msgstr "показать граф ревизий"
-
msgid "treat all files as text"
msgstr "обрабатывать вÑе файлы как текÑтовые"
msgid "omit dates from diff headers"
-msgstr "опуÑкать даты в заголовках файлов различий"
+msgstr "опуÑкать даты в заголовках diff'ов"
msgid "show which function each change is in"
msgstr "Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ, в какой оно Ñделано функции"
@@ -9933,34 +6571,33 @@ msgstr ""
"Ñчитать файлы переименованными иÑÑ…Ð¾Ð´Ñ Ð¸Ð· Ñтепени их похожеÑти (от 0 до 100)"
msgid "recurse into subrepositories"
-msgstr "рекурÑивно обрабатывать подхранилища"
+msgstr "рекурÑивно обрабатывать Ñубрепозитории"
msgid "[OPTION]... [FILE]..."
msgstr "[ПÐРÐМЕТР]... [ФÐЙЛ]..."
msgid "add the specified files on the next commit"
-msgstr "добавить указанный файл при Ñледующей фикÑации"
+msgstr "добавить указанный файл при Ñледующем коммите"
msgid ""
" Schedule files to be version controlled and added to the\n"
" repository."
msgstr ""
" Планирует помещение файлов под контроль верÑий и\n"
-" добавление их в хранилище."
+" добавление их в репозиторий."
msgid ""
" The files will be added to the repository at the next commit. To\n"
" undo an add before that, see :hg:`forget`."
msgstr ""
-" Файлы будут добавлены в хранилище при Ñледующей фикÑации. Чтобы\n"
-" отменить добавление до фикÑации, Ñм. :hg:`forget`."
+" Файлы будут добавлены в репозиторий при Ñледующем коммите. Чтобы\n"
+" отменить добавление до коммита, Ñм. :hg:`forget`."
msgid " If no names are given, add all files to the repository."
msgstr " ЕÑли имена файлов не заданы, в будут добавлены вÑе файлы."
-# does this require a translation?
msgid " .. container:: verbose"
-msgstr " .. container:: подробный"
+msgstr ""
msgid ""
" An example showing how new (unknown) files are added\n"
@@ -9996,14 +6633,14 @@ msgstr ""
" "
msgid "add all new files, delete all missing files"
-msgstr "добавить вÑе новые, удалить вÑе отÑутÑтвующие файлы"
+msgstr "добавить вÑе новые, удалить вÑе отÑутвующие файлы"
msgid ""
" Add all new files and remove all missing files from the\n"
" repository."
msgstr ""
-" ДобавлÑет вÑе новые и удалÑет вÑе отÑутÑтвующие файлы из\n"
-" хранилища."
+" ДобавлÑет вÑе новые и удалÑет вÑе отÑутÑвующие файлы из\n"
+" репозиториÑ."
msgid ""
" New files are ignored if they match any of the patterns in\n"
@@ -10012,30 +6649,27 @@ msgid ""
msgstr ""
" Ðовые файлы игнорируютÑÑ, еÑли они подходÑÑ‚ под любой шаблон\n"
" в ``.hgignore``. Ðналогично команде ``add``, Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ„Ð¸ÐºÑируютÑÑ\n"
-" при Ñледующей фикÑации."
+" при Ñледующем коммите."
msgid ""
-" Use the -s/--similarity option to detect renamed files. This\n"
+" Use the -s/--similarity option to detect renamed files. With a\n"
+" parameter greater than 0, this compares every removed file with\n"
+" every added file and records those similar enough as renames. This\n"
" option takes a percentage between 0 (disabled) and 100 (files must\n"
-" be identical) as its parameter. With a parameter greater than 0,\n"
-" this compares every removed file with every added file and records\n"
-" those similar enough as renames. Detecting renamed files this way\n"
+" be identical) as its parameter. Detecting renamed files this way\n"
" can be expensive. After using this option, :hg:`status -C` can be\n"
-" used to check which files were identified as moved or renamed. If\n"
-" not specified, -s/--similarity defaults to 100 and only renames of\n"
-" identical files are detected."
+" used to check which files were identified as moved or renamed."
msgstr ""
-" ИÑпользуйте параметр -s/--similarity, чтобы найти переименованные\n"
+" ИÑпользуйте параметр -s/--similarity чтобы найти переименованные\n"
" файлы. ЕÑли Ñтот параметр больше 0, то производитÑÑ Ñравнение\n"
-" каждого удалённого файла Ñ ÐºÐ°Ð¶Ð´Ñ‹Ð¼ добавленным, и еÑли они доÑтаточно\n"
+" каждого удаленного файла Ñ ÐºÐ°Ð¶Ð´Ñ‹Ð¼ добавленным, и еÑли они доÑтаточно\n"
" похожи, то Ñто фикÑируетÑÑ ÐºÐ°Ðº переименование. Этот параметр принимает\n"
" в качеÑтве параметра \"процент похожеÑти\" от 0 (отключено) до 100\n"
-" (файлы должны быть одинаковыми). Этот ÑпоÑоб нахождениÑ\n"
-" переименованных файлов может оказатьÑÑ Ð·Ð°Ñ‚Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼. ПоÑле иÑпользованиÑ\n"
+" (файлы дожны быть одинаковыми). Этот ÑпоÑоб нахождениÑ\n"
+" переименованных файлов может оказать дорогим. ПоÑле иÑпользованиÑ\n"
" Ñтого параметра можно иÑпользовать :hg:`status -C` чтобы проверить,\n"
" какие файлы были идентифицированы как перемещенные или\n"
-" переименованные. ЕÑли Ñтот параметр не задан, обнаруживаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾\n"
-" Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ‡Ð½Ñ‹Ñ… файлов (--similarity = 100)."
+" переименованные."
msgid "similarity must be a number"
msgstr "параметр \"similarity\" должен быть чиÑлом"
@@ -10087,7 +6721,7 @@ msgid ""
" This command is useful for discovering when a change was made and\n"
" by whom."
msgstr ""
-" Эта команда полезна Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы узнать, когда и кем было внеÑено\n"
+" Эта комадна полезна Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы узнать, когда и кем было внеÑено\n"
" изменение."
msgid ""
@@ -10130,7 +6764,7 @@ msgid "[OPTION]... DEST"
msgstr "[ПÐРÐМЕТР]... ÐÐЗÐÐЧЕÐИЕ"
msgid "create an unversioned archive of a repository revision"
-msgstr "Ñоздать неверÑионируемую архивную копию ревизии из хранилища"
+msgstr "Ñоздать неверÑионируемую архивную копию ревизии из репозиториÑ"
msgid ""
" By default, the revision used is the parent of the working\n"
@@ -10146,21 +6780,6 @@ msgstr ""
" Тип архива выбираетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки на оÑнове раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°\n"
" (можно переопределить Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -t/--type)."
-msgid " Examples:"
-msgstr " Примеры::"
-
-msgid " - create a zip file containing the 1.0 release::"
-msgstr " - Ñоздать zip-файл, Ñодержащий релиз 1.0::"
-
-msgid " hg archive -r 1.0 project-1.0.zip"
-msgstr " hg archive -r 1.0 project-1.0.zip"
-
-msgid " - create a tarball excluding .hg files::"
-msgstr " - Ñоздать тарбол (tarball), иÑключив файлы .hg::"
-
-msgid " hg archive project.tar.gz -X \".hg*\""
-msgstr " hg archive project.tar.gz -X \".hg*\""
-
msgid " Valid types are:"
msgstr " ДопуÑтимые типы:"
@@ -10194,14 +6813,14 @@ msgid ""
msgstr ""
" К каждому Ñлементу архива добавлÑетÑÑ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð² виде имени\n"
" каталога. ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð¼Ð¾Ð¶ÐµÑ‚ быть задан в виде форматирующей Ñтроки\n"
-" Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -p/--prefix. По умолчанию Ñто ÑобÑтвенное Ð¸Ð¼Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð°,\n"
-" Ñ Ð¾Ñ‚Ñ€ÐµÐ·Ð°Ð½Ð½Ñ‹Ð¼Ð¸ ÑуффикÑами."
+" Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -p/--prefix. По умолчанию Ñто Ð¸Ð¼Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð° Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ñ‹Ð¼\n"
+" раÑширением."
msgid "no working directory: please specify a revision"
msgstr "нет рабочего каталога: пожалуйÑта, укажите ревизию"
msgid "repository root cannot be destination"
-msgstr "корень хранилища не может быть назначением"
+msgstr "корень Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ может быть назначением"
msgid "cannot archive plain files to stdout"
msgstr "не могу архивировать обычный каталог в stdout"
@@ -10209,8 +6828,8 @@ msgstr "не могу архивировать обычный каталог в
msgid "merge with old dirstate parent after backout"
msgstr "Ñлить Ñо Ñтарым родителем поÑле завершениÑ"
-msgid "parent to choose when backing out merge (DEPRECATED)"
-msgstr "Ð²Ñ‹Ð±Ð¸Ñ€Ð°ÐµÐ¼Ð°Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¿Ñ€Ð¸ отмене ÑлиÑÐ½Ð¸Ñ (УСТÐРЕЛО)"
+msgid "parent to choose when backing out merge"
+msgstr "Ð²Ñ‹Ð±Ð¸Ñ€Ð°ÐµÐ¼Ð°Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¿Ñ€Ð¸ отмене ÑлиÑниÑ"
msgid "revision to backout"
msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹"
@@ -10234,41 +6853,32 @@ msgid ""
" changes and the merged result is left uncommitted."
msgstr ""
" ЕÑли РЕВИЗИЯ - родитель рабочего каталога, то Ñозданный набор\n"
-" изменений фикÑируетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки. Ð’ противном Ñлучае Mercurial\n"
+" изменений коммититÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки. Ð’ противном Ñлучае Mercurial\n"
" проводит ÑлиÑние изменений, результат ÑлиÑÐ½Ð¸Ñ Ð¾ÑтаетÑÑ\n"
-" незафикÑированным."
+" незакоммиченным."
msgid ""
-" .. note::\n"
-" backout cannot be used to fix either an unwanted or\n"
-" incorrect merge."
-msgstr ""
-" .. note::\n"
-" backout не может иÑпользоватьÑÑ Ð´Ð»Ñ Ð¸ÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐ¶ÐµÐ»Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾\n"
-" или некорректного ÑлиÑниÑ."
-
-msgid ""
-" By default, the pending changeset will have one parent,\n"
-" maintaining a linear history. With --merge, the pending\n"
-" changeset will instead have two parents: the old parent of the\n"
-" working directory and a new child of REV that simply undoes REV."
+" 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"
-" родителÑ, что ÑохранÑет линейную иÑториÑ. ЕÑли указан --merge,\n"
-" он будет иметь двух родителей: предыдущего Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾\n"
-" каталога и новую дочернюю ревизию РЕВИЗИИ, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ñ€Ð¾Ñто\n"
-" отменÑет ее дейÑтвие."
+" По умолчанию, Ñозданный набор изменений будет иметь одного\n"
+" родителÑ, что ÑохранÑет линейую иÑториÑ. ЕÑли указан --merge,\n"
+" он будет иметь двух родителей: предыдущего Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾\n"
+" каталога и новую дочернюю ревизию РЕВИЗИИ, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ñ€Ð¾Ñто\n"
+" отменÑет ее дейÑтвие."
msgid ""
-" Before version 1.7, the behavior without --merge was equivalent\n"
-" to specifying --merge followed by :hg:`update --clean .` to\n"
-" cancel the merge and leave the child of REV as a head to be\n"
-" merged separately."
+" 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.7 поведение без --merge было Ñквивалентно поведению\n"
-" Ñ --merge Ñ Ð¿Ð¾Ñледующим :hg:`update --clean .` Ñ Ñ†ÐµÐ»ÑŒÑŽ отменить\n"
-" ÑлиÑние и оÑтавить дочернюю ревизию РЕВИЗИИ как голову длÑ\n"
-" Ð´Ð»Ñ Ð´Ð°Ð»ÑŒÐ½ÐµÐ¹ÑˆÐµÐ³Ð¾ ÑлиÑниÑ"
+" До верÑии 1.7 поведение без --merge было Ñквивалентно поведению\n"
+" Ñ --merge Ñ Ð¿Ð¾Ñледующим :hg:`update --clean .` Ñ Ñ†ÐµÐ»ÑŒÑŽ отменить\n"
+" ÑлиÑние и оÑтавить дочернюю ревизию РЕВИЗИИ как голову длÑ\n"
+" Ð´Ð»Ñ Ð´Ð°Ð»ÑŒÐ½ÐµÐ¹ÑˆÐµÐ³Ð¾ ÑлиÑниÑ"
msgid "please specify just one revision"
msgstr "пожалуйÑта, укажите ровно одну ревизию"
@@ -10282,8 +6892,12 @@ msgstr "не могу отменить ревизию на другой ветк
msgid "cannot backout a change with no parents"
msgstr "не могу отменить ревизию без родителей"
-msgid "cannot backout a merge changeset"
-msgstr "не могу отменить ревизию ÑлиÑниÑ"
+msgid "cannot backout a merge changeset without --parent"
+msgstr "немогу отменить ревизию ÑлиÑÐ½Ð¸Ñ Ð±ÐµÐ· --parent"
+
+#, python-format
+msgid "%s is not a parent of %s"
+msgstr "%s не родитель %s"
msgid "cannot use --parent on non-merge changeset"
msgstr ""
@@ -10354,127 +6968,17 @@ msgstr ""
msgid ""
" If you supply a command, it will be used for automatic bisection.\n"
-" The environment variable HG_NODE will contain the ID of the\n"
-" changeset being tested. The exit status of the command will be\n"
-" used to mark revisions as good or bad: status 0 means good, 125\n"
-" means to skip the revision, 127 (command not found) will abort the\n"
-" bisection, and any other non-zero exit status means the revision\n"
-" is bad."
-msgstr ""
-" ЕÑли вы укажите команду, она будет иÑпользована Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкой\n"
-" биÑекции. ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ HG_NODE будет Ñодержать ID теÑтируемой\n"
-" ревизии. Код возврата команды будет иÑпользован чтобы пометить ревизию\n"
+" Its exit status will be used to mark revisions as good or bad:\n"
+" status 0 means good, 125 means to skip the revision, 127\n"
+" (command not found) will abort the bisection, and any other\n"
+" non-zero exit status means the revision is bad."
+msgstr ""
+" ЕÑли вы укажите команду, она будет иÑпользована Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого\n"
+" поиÑка. Ее код возврата будет иÑпользован чтобы пометить ревизию\n"
" как плохую или хорошую: код 0 - хорошаÑ, код 125 означает пропуÑтить\n"
" ревизию, 127 (команда не найдена) отменÑет поиÑк, любой другой\n"
" код возврата означает плохую ревизию."
-msgid " Some examples:"
-msgstr " ÐеÑколько примеров::"
-
-msgid ""
-" - start a bisection with known bad revision 12, and good revision 34::"
-msgstr " - начать биÑекцию Ñ Ð¸Ð·Ð²ÐµÑтной плохой ревизией 12, хорошей 34::"
-
-msgid ""
-" hg bisect --bad 34\n"
-" hg bisect --good 12"
-msgstr ""
-" hg bisect --bad 34\n"
-" hg bisect --good 12"
-
-msgid ""
-" - advance the current bisection by marking current revision as good "
-"or\n"
-" bad::"
-msgstr ""
-" - продвинуть текущую биÑекцию, пометив текущую ревизию как плохую или "
-"хорошую::"
-
-msgid ""
-" hg bisect --good\n"
-" hg bisect --bad"
-msgstr ""
-" hg bisect --good\n"
-" hg bisect --bad"
-
-msgid ""
-" - mark the current revision, or a known revision, to be skipped (eg. "
-"if\n"
-" that revision is not usable because of another issue)::"
-msgstr ""
-" - пометить текущую или извеÑтную ревизию Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка (например,\n"
-" потому что ее Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать из-за другой проблемы)::"
-
-msgid ""
-" hg bisect --skip\n"
-" hg bisect --skip 23"
-msgstr ""
-" hg bisect --skip\n"
-" hg bisect --skip 23"
-
-msgid " - forget the current bisection::"
-msgstr " - забыть текущую биÑекцию::"
-
-msgid " hg bisect --reset"
-msgstr " hg bisect --reset"
-
-msgid ""
-" - use 'make && make tests' to automatically find the first broken\n"
-" revision::"
-msgstr ""
-" - иÑпользовать команду 'make && make tests' Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого\n"
-" поиÑка первой нерабочей ревизии::"
-
-msgid ""
-" hg bisect --reset\n"
-" hg bisect --bad 34\n"
-" hg bisect --good 12\n"
-" hg bisect --command 'make && make tests'"
-msgstr ""
-" hg bisect --reset\n"
-" hg bisect --bad 34\n"
-" hg bisect --good 12\n"
-" hg bisect --command 'make && make tests'"
-
-msgid ""
-" - see all changesets whose states are already known in the current\n"
-" bisection::"
-msgstr ""
-" - поÑмотреть вÑе наборы изменений, чьи ÑоÑтоÑÐ½Ð¸Ñ ÑƒÐ¶Ðµ извеÑтны в\n"
-" текущей биÑекции::"
-
-msgid " hg log -r \"bisect(pruned)\""
-msgstr " hg log -r \"bisect(pruned)\""
-
-msgid ""
-" - see the changeset currently being bisected (especially useful\n"
-" if running with -U/--noupdate)::"
-msgstr ""
-" - поÑмотреть ревизию, над которой в данный момент выполнÑетÑÑ "
-"биÑекциÑ\n"
-" (оÑобенно полезно при запуÑке Ñ -U/--noupdate)::"
-
-msgid " hg log -r \"bisect(current)\""
-msgstr " hg log -r \"bisect(current)\""
-
-msgid " - see all changesets that took part in the current bisection::"
-msgstr ""
-" - поÑмотреть вÑе наборы изменений, которые учаÑтвовали в текущей "
-"биÑекции::"
-
-msgid " hg log -r \"bisect(range)\""
-msgstr " hg log -r \"bisect(range)\""
-
-msgid " - with the graphlog extension, you can even get a nice graph::"
-msgstr ""
-" - Ñ Ñ€Ð°Ñширением graphlog, вы даже можете получить Ñимпатичный граф::"
-
-msgid " hg log --graph -r \"bisect(range)\""
-msgstr " hg log --graph -r \"bisect(range)\""
-
-msgid " See :hg:`help revsets` for more about the `bisect()` keyword."
-msgstr " Подробнее о `bisect()` Ñм. :hg:`help revsets`."
-
msgid "The first good revision is:\n"
msgstr "ÐŸÐµÑ€Ð²Ð°Ñ Ñ…Ð¾Ñ€Ð¾ÑˆÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ:\n"
@@ -10509,12 +7013,6 @@ msgstr "(иÑпользование 'hg bisect <cmd>' уÑтарело)\n"
msgid "incompatible arguments"
msgstr "неÑовмеÑтимые аргументы"
-msgid "current bisect revision is unknown - start a new bisect to fix"
-msgstr "Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð±Ð¸Ñекции неизвеÑтна - начните биÑекцию заново"
-
-msgid "current bisect revision is a merge"
-msgstr "Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð±Ð¸ÑÐµÐºÑ†Ð¸Ñ ÑвлÑетÑÑ Ñ€ÐµÐ²Ð¸Ð·Ð¸ÐµÐ¹ ÑлиÑниÑ"
-
#, python-format
msgid "failed to execute %s"
msgstr "не удалоÑÑŒ выполнить %s"
@@ -10524,8 +7022,8 @@ msgid "%s killed"
msgstr "%s завершен (killed)"
#, python-format
-msgid "changeset %d:%s: %s\n"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d:%s: %s\n"
+msgid "Changeset %d:%s: %s\n"
+msgstr "Ðабор изменений %d:%s: %s\n"
#, python-format
msgid "Extending search to changeset %d:%s\n"
@@ -10545,29 +7043,28 @@ msgid "delete a given bookmark"
msgstr "удалить указанную закладку"
msgid "rename a given bookmark"
-msgstr "переименовать указанную закладку"
+msgstr "переимновать указанную закладку"
-msgid "mark a bookmark inactive"
-msgstr "пометить закладку как неактивную"
+msgid "do not mark a new bookmark active"
+msgstr "не помечать новую закладку как активную"
msgid "hg bookmarks [-f] [-d] [-i] [-m NAME] [-r REV] [NAME]"
msgstr "hg bookmarks [-f] [-d] [-i] [-m ИМЯ] [-r РЕВИЗИЯ] [ИМЯ]"
msgid "track a line of development with movable markers"
-msgstr "отÑлеживать ветку разработки Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ подвижных меток"
+msgstr "отÑлеживать ветвь разработки Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ подвижных меток"
msgid ""
-" Bookmarks are pointers to certain commits that move when committing.\n"
-" Bookmarks are local. They can be renamed, copied and deleted. It is\n"
-" possible to use :hg:`merge NAME` to merge from a given bookmark, and\n"
-" :hg:`update NAME` to update to a given bookmark."
+" 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 ""
-" Закладки (bookmarks) - Ñто указатели на некоторую ревизию, которые\n"
-" перемещаютÑÑ Ð¿Ñ€Ð¸ фикÑации.Их можно переименовывать копировать и "
-"удалÑÑ‚ÑŒ.\n"
-" Можно иÑпользовать Ð¸Ð¼Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ¸ в :hg:`merge ИМЯ` Ð´Ð»Ñ ÑлиÑние от "
-"указанной\n"
-" закладки и :hg:`update ИМЯ` Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° заданную закладку."
+" Закладки (bookmarks) - Ñто указатели на некторый коммит, которые\n"
+" перемещаютÑÑ Ð¿Ñ€Ð¸ коммите. Закладки локальны. Их можно переименовывать\n"
+" копировать и удалÑÑ‚ÑŒ. Можно иÑпользовать Ð¸Ð¼Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ¸ в :hg:`merge`\n"
+" и :hg:`update` Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ð¸Ð»Ð¸ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾ заданной закладки\n"
+" Ñоответвенно."
msgid ""
" You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
@@ -10585,30 +7082,16 @@ msgid ""
" 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."
+" the bookmarks extension must be enabled.\n"
+" "
msgstr ""
-" Закладки могут передаватьÑÑ Ð¼ÐµÐ¶Ð´Ñƒ хранилищами Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команд\n"
+" Закладки могут передаватьÑÑ Ð¼ÐµÐ¶Ð´Ñƒ репозиториÑми Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команд\n"
" push и pull (Ñм. :hg:`help push` и :hg:`help pull). Ð”Ð»Ñ Ñтого\n"
-" необходимо, чтобы отдалённое и локальное хранилище поддерживали\n"
+" необходимо, чтобы удаленный и локальный репозиторий поддерживали\n"
" закладки. Ð”Ð»Ñ Mercurial верÑий меньше 1.8 Ñто означает, что\n"
" должно быть включено раÑширение bookmarks.\n"
" "
-msgid ""
-" With -i/--inactive, the new bookmark will not be made the active\n"
-" bookmark. If -r/--rev is given, the new bookmark will not be made\n"
-" active even if -i/--inactive is not given. If no NAME is given, the\n"
-" current active bookmark will be marked inactive.\n"
-" "
-msgstr ""
-" ЕÑли указан -i/--inactive, Ð½Ð¾Ð²Ð°Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ° не будет Ñделана активной.\n"
-" ЕÑли указан -r/--rev, Ð½Ð¾Ð²Ð°Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ° не будет активной, даже еÑли\n"
-" -i/--inactive не задан. ЕÑли не указано ИМЯ, Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð°Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ°\n"
-" будет помечена как неактивнаÑ. "
-
-msgid "bookmark name required"
-msgstr "укажите Ð¸Ð¼Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ¸"
-
#, python-format
msgid "bookmark '%s' does not exist"
msgstr "закладки '%s' не ÑущеÑтвует"
@@ -10620,6 +7103,9 @@ msgstr "закладка '%s' уже ÑущеÑтвует (-f - принудит
msgid "new bookmark name required"
msgstr "укажите новое Ð¸Ð¼Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ¸"
+msgid "bookmark name required"
+msgstr "укажите Ð¸Ð¼Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ¸"
+
msgid "bookmark name cannot contain newlines"
msgstr "Ð¸Ð¼Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ¸ не может Ñодержать Ñимвол перевода Ñтроки"
@@ -10627,34 +7113,22 @@ msgid "bookmark names cannot consist entirely of whitespace"
msgstr "Ð¸Ð¼Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ¸ не может ÑоÑтоÑÑ‚ÑŒ из одних пробелов"
msgid "a bookmark cannot have the name of an existing branch"
-msgstr "закладка не может называтьÑÑ Ñ‚Ð°Ðº же, как ÑущеÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ð²ÐµÑ‚ÐºÐ°"
+msgstr "закладка не может назыатьÑÑ Ñ‚Ð°Ðº же, как ÑущеÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ"
msgid "no bookmarks set\n"
msgstr "нет ни одной закладки\n"
msgid "set branch name even if it shadows an existing branch"
-msgstr "иÑпользовать Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸, даже еÑли оно Ñкрывает уже ÑущеÑтвующую ветку"
+msgstr "иÑпользовать Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸, даже еÑли оно Ñкрывает уже ÑущеÑтвующую ветвь"
msgid "reset branch name to parent branch name"
-msgstr "ÑброÑить Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸ до имени ветки родителÑ"
+msgstr "ÑброÑить Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸ до имени ветви родителÑ"
msgid "[-fC] [NAME]"
msgstr "[-fC] [ИМЯ]"
msgid "set or show the current branch name"
-msgstr "задать или показать Ð¸Ð¼Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ ветки"
-
-msgid ""
-" .. note::\n"
-" Branch names are permanent and global. Use :hg:`bookmark` to create "
-"a\n"
-" light-weight bookmark instead. See :hg:`help glossary` for more\n"
-" information about named branches and bookmarks."
-msgstr ""
-" .. note::\n"
-" Имена веток поÑтоÑнны и глобальны. ИÑпользуйте :hg:`bookmark`,\n"
-" чтобы Ñоздать легковеÑную закладку. Дополнительную\n"
-" информацию о ветках и закладках Ñм. в :hg:`help glossary`."
+msgstr "задать или показать Ð¸Ð¼Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ ветви"
msgid ""
" With no argument, show the current branch name. With one argument,\n"
@@ -10663,17 +7137,17 @@ msgid ""
" recommends that primary development take place on the 'default'\n"
" branch."
msgstr ""
-" Без аргументов показывает Ð¸Ð¼Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ ветки. С одним аргументом\n"
-" задает Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸ Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога (ветка не будет Ñоздана\n"
-" в хранилище до Ñледующей фикÑации). РекомендуетÑÑ Ð²ÐµÑти оÑновную\n"
-" разработку в ветке 'default'."
+" Без аргументов показывает Ð¸Ð¼Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ ветви. С одним аргументом\n"
+" задает Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸ Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога (ветвь не будет Ñоздана\n"
+" в репозитории до Ñледующего коммита). РекомендуетÑÑ Ð²ÐµÑти оÑновную\n"
+" разработку в ветви 'default'."
msgid ""
" 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, branch не даÑÑ‚ вам задать имÑ\n"
-" ÑущеÑтвующей ветки, даже еÑли она не активна."
+" ÑущеÑтвующей ветви, даже еÑли она не активна."
msgid ""
" Use -C/--clean to reset the working directory branch to that of\n"
@@ -10681,22 +7155,34 @@ msgid ""
" change."
msgstr ""
" ИÑпользуйте -C/--clean чтобы уÑтановить ветку рабочего каталога\n"
-" такой же, как ветка его родителÑ, отменÑÑ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÑƒÑŽ Ñмену ветки."
+" такой же, как ветвь его родителÑ, отменÑÑ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÑƒÑŽ Ñмену ветви."
msgid ""
" Use the command :hg:`update` to switch to an existing branch. Use\n"
" :hg:`commit --close-branch` to mark this branch as closed."
msgstr ""
" ИÑпользуйте команду :hg:`update` чтобы переключитьÑÑ Ð½Ð° ÑущеÑтвующую\n"
-" ветку. ИÑпользуйте :hg:`commit --close-branch` чтобы пометить Ñту\n"
-" ветку как закрытую."
+" ветвь. ИÑпользуйте :hg:`commit --close-branch` чтобы пометить Ñту\n"
+" ветвь как закрытую."
+
+msgid " .. note::"
+msgstr ""
+
+msgid ""
+" Branch names are permanent. Use :hg:`bookmark` to create a\n"
+" light-weight bookmark instead. See :hg:`help glossary` for more\n"
+" information about named branches and bookmarks."
+msgstr ""
+" Имена ветвей поÑтоÑнны. Ð’ качеÑтве альтернативы можно иÑпользовать\n"
+" :hg:`bookmark`, чтобы Ñоздать легковеÑную ветвь. Дополнительную\n"
+" информацию о ветвÑÑ… и закладках Ñм. в :hg:`help glossary`."
#, python-format
msgid "reset working directory to branch %s\n"
-msgstr "рабочий каталог Ñброшен на ветку %s\n"
+msgstr "рабочий каталог Ñброшен на ветвь %s\n"
msgid "a branch of the same name already exists"
-msgstr "ветка Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует"
+msgstr "ветвь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует"
#. i18n: "it" refers to an existing branch
msgid "use 'hg update' to switch to it"
@@ -10704,44 +7190,39 @@ msgstr "иÑпользуйте 'hg update' чтобы переключитьÑÑ
#, python-format
msgid "marked working directory as branch %s\n"
-msgstr "рабочий каталог помечен как ветка %s\n"
-
-msgid "(branches are permanent and global, did you want a bookmark?)\n"
-msgstr ""
-"(ветки (branch) глобальны и перманентны, быть может, вам нужна\n"
-"закладка (bookmark?)\n"
+msgstr "рабочий каталог помечен как ветвь %s\n"
msgid "show only branches that have unmerged heads"
-msgstr "показывать только ветки, на которых еÑÑ‚ÑŒ неÑлитые головы"
+msgstr "показывать только ветви, на которых еÑÑ‚ÑŒ неÑлитые головы"
msgid "show normal and closed branches"
-msgstr "показывать обычные и закрытые ветки"
+msgstr "показывать обычные и закрытые ветви"
msgid "[-ac]"
msgstr "[-ac]"
msgid "list repository named branches"
-msgstr "перечиÑлить именованные ветки в хранилище"
+msgstr "перечиÑлить именованные ветки в репозитории"
msgid ""
" List the repository's named branches, indicating which ones are\n"
" inactive. If -c/--closed is specified, also list branches which have\n"
" been marked closed (see :hg:`commit --close-branch`)."
msgstr ""
-" ПеречиÑлÑет именованные ветки в хранилище, выделÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ðµ.\n"
-" ЕÑли указан -c/--close, печатает также ветки, помеченные как\n"
+" ПеречиÑлÑет именованные ветви в репозитории, выделÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ðµ.\n"
+" ЕÑли указан -c/--close, печатает также ветви, помеченные как\n"
" закрытые (Ñм. :hg:`commit --close-branch`)."
msgid ""
" If -a/--active is specified, only show active branches. A branch\n"
" is considered active if it contains repository heads."
msgstr ""
-" ЕÑли указан -a/--active, показывает только активные ветки. Ветка\n"
+" ЕÑли укзан -a/--active, показывает только активные ветви. Ветвь\n"
" ÑчитаетÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð¹, еÑли она Ñодержит головные ревизии."
msgid " Use the command :hg:`update` to switch to an existing branch."
msgstr ""
-" ИÑпользуйте :hg:`update` чтобы переключитьÑÑ Ð½Ð° ÑущеÑтвующую ветку."
+" ИÑпользуйте :hg:`update` чтобы переключитьÑÑ Ð½Ð° ÑущеÑтвующую ветвь."
msgid ""
" Returns 0.\n"
@@ -10757,21 +7238,21 @@ msgid " (inactive)"
msgstr " (неактивна)"
msgid "run even when the destination is unrelated"
-msgstr "работать даже еÑли хранилище не ÑвÑзано Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÐ¼ назначениÑ"
+msgstr "работать даже еÑли репозиторий не ÑвÑзан Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸ÐµÐ¼ назначениÑ"
msgid "a changeset intended to be added to the destination"
-msgstr "набор изменений Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² хранилище назначениÑ"
+msgstr "набор изменений Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² репозиторий назначениÑ"
msgid "a specific branch you would like to bundle"
-msgstr "ветка Ð´Ð»Ñ ÑƒÐ¿Ð°ÐºÐ¾Ð²ÐºÐ¸"
+msgstr "ветвь Ð´Ð»Ñ ÑƒÐ¿Ð°ÐºÐ¾Ð²ÐºÐ¸"
msgid "a base changeset assumed to be available at the destination"
msgstr ""
-"базовый набор изменений, который предполагаетÑÑ Ð´Ð¾Ñтупным в хранилище "
+"базовый набор изменений, который предполагаетÑÑ Ð´Ð¾Ñтупным в репозитории "
"назначениÑ"
msgid "bundle all changesets in the repository"
-msgstr "упаковать вÑе ревизии в хранилище"
+msgstr "упаковать вÑе ревизии в репозитории"
msgid "bundle compression type to use"
msgstr "тип ÑжатиÑ"
@@ -10787,7 +7268,7 @@ msgid ""
" known to be in another repository."
msgstr ""
" Создает Ñжатый файл, Ñодержащий группу наборов изменений, которые\n"
-" отÑутÑтвуют в другом хранилище."
+" отÑутÑвуют в другом репозитории."
msgid ""
" If you omit the destination repository, then hg assumes the\n"
@@ -10795,7 +7276,7 @@ msgid ""
" parameters. To create a bundle containing all changesets, use\n"
" -a/--all (or --base null)."
msgstr ""
-" ЕÑли хранилище Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ð¿ÑƒÑ‰ÐµÐ½Ð¾, то Mercurial предполагает,\n"
+" ЕÑли репозиторий Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ð¿ÑƒÑ‰ÐµÐ½, то Mercurial предполагает,\n"
" что там имеютÑÑ Ð²Ñе ревизии, до указанной в --base. Чтобы Ñоздать\n"
" файл, Ñодержащий вÑе наборы изменений, иÑпользуйте -a/--all\n"
" (или --base null)."
@@ -10816,15 +7297,15 @@ msgid ""
" available or when exporting an entire repository is undesirable."
msgstr ""
" Файл Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð¹ изменений (bundle) может быть передан обычными\n"
-" ÑредÑтвами, или применен в другом хранилище Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команд\n"
+" ÑредÑтвами, или применен в другом репозитории Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команд\n"
" unbundle или pull. Это полезно когда команды push и pull напрÑмую\n"
-" недоÑтупны или когда Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð²Ñего хранилища нежелательна."
+" недоÑтупны или когда Ð¿ÑƒÐ»Ð±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð²Ñего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð½ÐµÐ¶ÐµÐ»Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°."
msgid ""
" Applying bundles preserves all changeset contents including\n"
" permissions, copy/rename information, and revision history."
msgstr ""
-" Применение групп изменений ÑохранÑет вÑе атрибуты наборов\n"
+" Применение групп изменений ÑохранÑет вÑе аттрибуты наборов\n"
" изменений, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ñ€Ð°Ð²Ð° доÑтупа, информацию о копировании/\n"
" переименовании и иÑторию ревизий."
@@ -10835,12 +7316,12 @@ msgstr ""
" Возвращает 0 в Ñлучае уÑпеха, 1 еÑли Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ найдены\n"
" "
+msgid "--base is incompatible with specifying a destination"
+msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð´Ð½Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ указывать --base и репозиторий назначениÑ"
+
msgid "unknown bundle type specified with --type"
msgstr "неизвеÑтный ÑпоÑоб задан в --type"
-msgid "--base is incompatible with specifying a destination"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð´Ð½Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ указывать --base и хранилище назначениÑ"
-
msgid "print output to file with formatted name"
msgstr "печатать в файл Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ ÑоглаÑно ФОРМÐТУ"
@@ -10861,10 +7342,10 @@ msgid ""
" no revision is given, the parent of the working directory is used,\n"
" or tip if no revision is checked out."
msgstr ""
-" Печатает Ñодержимое указанных файлов, каким оно было на момент\n"
-" указанной ревизии. ЕÑли Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ указана, иÑпользуетÑÑ\n"
+" Печатает Ñодержимое указанных файлов, каким оно бало на момент\n"
+" указанной ревизии. ЕÑли Ð½ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ указана, иÑпользуетÑÑ\n"
" родительÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога или Ð¾ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ (tip),\n"
-" еÑли рабочий каталог пуÑÑ‚."
+" еÑли работий каталог пуÑÑ‚."
msgid ""
" Output may be to a file, in which case the name of the file is\n"
@@ -10872,7 +7353,7 @@ msgid ""
" for the export command, with the following additions:"
msgstr ""
" Можно печатать в файл, в Ñтом Ñлучае его Ð¸Ð¼Ñ Ð·Ð°Ð´Ð°ÐµÑ‚ÑÑ Ð² виде\n"
-" форматирующей Ñтроки. Формат Ñтроки такой же, как в команде export,\n"
+" форматирущей Ñтроки. Формат Ñтроки такой же, как в команде export,\n"
" Ñо Ñледующими дополнениÑми:"
msgid ""
@@ -10882,240 +7363,184 @@ msgid ""
msgstr ""
" :``%s``: базовое Ð¸Ð¼Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð°ÐµÐ¼Ð¾Ð³Ð¾ файла\n"
" :``%d``: Ð¸Ð¼Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð° печатаемого файла или '.', еÑли файл в корне\n"
-" :``%p``: путь к печатаемому файлу отноÑительно ÐºÐ¾Ñ€Ð½Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°"
+" :``%p``: путь к печатаемому файлу отноÑительно ÐºÐ¾Ñ€Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ"
msgid "the clone will include an empty working copy (only a repository)"
-msgstr "клон будет включать пуÑтой рабочий каталог (только хранилище)"
+msgstr "клон будет включать пуÑтой рабочий каталог (только репозиторий)"
msgid "revision, tag or branch to check out"
-msgstr "ревизиÑ, метка или ветка на которую обновитьÑÑ"
+msgstr "ревизиÑ, метка или ветвь на которую обновитьÑÑ"
msgid "include the specified changeset"
msgstr "включить указанный набор изменений"
msgid "clone only the specified branch"
-msgstr "клонировать только указанную ветку"
+msgstr "клонировать только указанную ветвь"
msgid "[OPTION]... SOURCE [DEST]"
msgstr "[ПÐРÐМЕТР]... ИСТОЧÐИК [ÐÐЗÐ]"
msgid "make a copy of an existing repository"
-msgstr "Ñоздать копию ÑущеÑтвующего хранилища"
+msgstr "Ñоздать копию ÑущеÑтвующего репозиториÑ"
msgid " Create a copy of an existing repository in a new directory."
-msgstr " Создает копию ÑущеÑтвующего хранилища в новом каталоге."
+msgstr " Создает копию ÑущеÑтвующего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² новом каталоге."
msgid ""
" If no destination directory name is specified, it defaults to the\n"
" basename of the source."
msgstr ""
-" ЕÑли каталог Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ðµ задан, иÑпользуетÑÑ Ð±Ð°Ð·Ð¾Ð²Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ\n"
+" ЕÑли Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ðµ задана, иÑпользуетÑÑ Ð±Ð°Ð·Ð¾Ð²Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ\n"
" имени каталога иÑточника."
msgid ""
" The location of the source is added to the new repository's\n"
" ``.hg/hgrc`` file, as the default to be used for future pulls."
msgstr ""
-" ÐÐ´Ñ€ÐµÑ Ð¸Ñточника добавлÑетÑÑ Ð² файл ``.hg/hgrc`` нового хранилища,\n"
-" и иÑпользуетÑÑ Ð¿Ð¾ умолчанию Ð´Ð»Ñ Ð¿Ð¾Ñледующих затÑгиваний."
-
-msgid ""
-" Only local paths and ``ssh://`` URLs are supported as\n"
-" destinations. For ``ssh://`` destinations, no working directory or\n"
-" ``.hg/hgrc`` will be created on the remote side."
-msgstr ""
-" Ð’ качеÑтве путей Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÑŽÑ‚ÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ локальные пути и\n"
-" URL вида ``ssh://``. Ð”Ð»Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ``ssh://`` не ÑоздаетÑÑ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ¹\n"
-" копии или файла ``.hg/hgrc`` на отдаленной Ñтороне."
-
-msgid ""
-" To pull only a subset of changesets, specify one or more revisions\n"
-" identifiers with -r/--rev or branches with -b/--branch. The\n"
-" resulting clone will contain only the specified changesets and\n"
-" their ancestors. These options (or 'clone src#rev dest') imply\n"
-" --pull, even for local source repositories. Note that specifying a\n"
-" tag will include the tagged changeset but not the changeset\n"
-" containing the tag."
-msgstr ""
-" Чтобы затÑнуть подмножеÑтво наборов изменений, укажите один или более\n"
-" идентификатор ревизии Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -r/--rev или ветки Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒ -b/--"
-"branch.\n"
-" Клон будет Ñодержать только заданные ревизии и их предков. Эти "
-"параметры\n"
-" (равно как и `clone иÑÑ‚#рев назн') подразумевают --pull, даже Ð´Ð»Ñ "
-"локальных\n"
-" иÑходных хранилищ. Обратите внимание, что при задании метки, клон будет\n"
-" включать в ÑÐµÐ±Ñ Ð¿Ð¾Ð¼ÐµÑ‡ÐµÐ½Ð½Ñ‹Ð¹ набор изменений, но не набор изменений,\n"
-" Ñодержащий метку."
+" ÐÐ´Ñ€ÐµÑ Ð¸Ñточника добавлÑетÑÑ Ð² файл ``.hg/hgrc`` нового репозиториÑ,\n"
+" и иÑпользуетÑÑ Ð¿Ð¾ умолчанию Ð´Ð»Ñ Ð¿Ð¾Ñледующих pull'ов и push'ей."
-msgid ""
-" To check out a particular version, use -u/--update, or\n"
-" -U/--noupdate to create a clone with no working directory."
-msgstr ""
-" Чтобы извлечь конкретную верÑию, иÑпользуйте -u/--update;\n"
-" чтобы Ñоздать клон без рабочего каталога, иÑпользуйте -U/--noupdate."
+msgid " See :hg:`help urls` for valid source format details."
+msgstr " См. :hg:`help urls` о форматах адреÑа иÑточника."
msgid ""
-" For efficiency, hardlinks are used for cloning whenever the\n"
-" source and destination are on the same filesystem (note this\n"
-" applies only to the repository data, not to the working\n"
-" directory). Some filesystems, such as AFS, implement hardlinking\n"
-" incorrectly, but do not report errors. In these cases, use the\n"
-" --pull option to avoid hardlinking."
+" 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"
+" Please see :hg:`help urls` for important details about ``ssh://`` URLs."
msgstr ""
-" Из Ñоображений ÑффективноÑти при клонировании иÑточника находÑщегоÑÑ\n"
-" на одной файловой ÑиÑтеме Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÐ¼ назначениÑ, иÑпользуютÑÑ "
-"жеÑткие\n"
-" ÑÑылки (Ñто отноÑитÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ к данным хранилища, не рабочему "
-"каталогу).\n"
-" Ðекоторые файловые ÑиÑтемы, например, AFS, некорректно реализуют\n"
-" жеÑткие ÑÑылки, но не Ñообщают об ошибках. Ð’ Ñтом Ñлучае иÑпользуйте\n"
-" --pull чтобы избежать жеÑтких ÑÑылок."
+" Можно указать ``ssh://...`` в качеÑтве адреÑа назначениÑ, но файл\n"
+" ``.hg/hgrc`` и Ñ€Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð½Ðµ будут Ñозданы на удаленном компьютере.\n"
+" См. :hg:`help urls` Ð´Ð»Ñ Ð²Ð°Ð¶Ð½Ð¾Ð¹ информации об адреÑах вида ``ssh://...``."
msgid ""
-" In some cases, you can clone repositories and the working\n"
-" directory using full hardlinks with ::"
+" A set of changesets (tags, or branch names) to pull may be specified\n"
+" by listing each changeset (tag, or branch name) with -r/--rev.\n"
+" If -r/--rev is used, the cloned repository will contain only a subset\n"
+" of the changesets of the source repository. Only the set of changesets\n"
+" defined by all -r/--rev options (including all their ancestors)\n"
+" will be pulled into the destination repository.\n"
+" No subsequent changesets (including subsequent tags) will be present\n"
+" in the destination."
msgstr ""
-" Ð’ некоторых ÑлучаÑÑ… можно клонировать хранилища и рабочие\n"
-" каталоги целиком жеÑткими ÑÑылками ::"
-
-msgid " $ cp -al REPO REPOCLONE"
-msgstr " $ cp -al ХРÐÐИЛИЩЕ КЛОÐ"
+" Копируемые наборы изменений (changesets) (как метки или имена ветвей)\n"
+" могут быть заданы указанием каждого набора изменений (метки или имени\n"
+" ветви) Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -r/--rev. При иÑпользовании -r/--rev, клонированный\n"
+" репозиторий будет Ñодержать только подмножеÑтво наборов изменений\n"
+" иÑточника."
msgid ""
-" This is the fastest way to clone, but it is not always safe. The\n"
-" operation is not atomic (making sure REPO is not modified during\n"
-" the operation is up to you) and you have to make sure your\n"
-" editor breaks hardlinks (Emacs and most Linux Kernel tools do\n"
-" so). Also, this is not compatible with certain extensions that\n"
-" place their metadata under the .hg directory, such as mq."
+" Using -r/--rev (or 'clone src#rev dest') implies --pull, even for\n"
+" local source repositories."
msgstr ""
-" Это Ñамый быÑтрый ÑпоÑоб клонированиÑ, но он не вÑегда безопаÑен.\n"
-" Эта Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ атомарна (вам надо Ñледить за тем, что ХРÐÐИЛИЩЕ\n"
-" не изменÑетÑÑ Ð² процеÑÑе копированиÑ), и вам надо убедитьÑÑ, что\n"
-" ваш редактор умеет разрывать жеÑткие ÑÑылки (Emacs и большинÑтво\n"
-" инÑтрументов разработчика Ñдра Linux умеют). Этот ÑпоÑоб также\n"
-" не ÑовмеÑтим Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ раÑширениÑми, которые хранÑÑ‚ Ñвои\n"
-" метаданные в каталоге .hg, таких как mq."
+" ИÑпользование -r/--rev (или 'clone иÑточник#Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ð°Ð·Ð½')\n"
+" предполагает --pull, даже еÑли иÑточник локален."
msgid ""
-" Mercurial will update the working directory to the first applicable\n"
-" revision from this list:"
+" For efficiency, hardlinks are used for cloning whenever the source\n"
+" and destination are on the same filesystem (note this applies only\n"
+" to the repository data, not to the working directory). Some\n"
+" filesystems, such as AFS, implement hardlinking incorrectly, but\n"
+" do not report errors. In these cases, use the --pull option to\n"
+" avoid hardlinking."
msgstr ""
-" Mercurial обновит рабочий каталог до первой подходÑщей ревизии по\n"
-" ÑпиÑку:"
+" Ð”Ð»Ñ ÑффективноÑти, при клонировании иÑточника на одной файловой\n"
+" ÑиÑтеме Ñ Ñ†ÐµÐ»ÐµÐ²Ñ‹Ð¼ репозиторием, иÑпользуютÑÑ Ð¶ÐµÑткие ÑÑылки (Ñто\n"
+" отноÑитÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ к данным репозиториÑ, не рабочему каталогу).\n"
+" Ðекоторые файловые ÑиÑтемы, например, AFS, некорректно реализуют\n"
+" жеÑткие ÑÑылки, но не Ñообщают об ошибках. Ð’ Ñтом Ñлучае иÑпользуйте\n"
+" --pull чтобы избежать жеÑтких ÑÑылок."
msgid ""
-" a) null if -U or the source repository has no changesets\n"
-" b) if -u . and the source repository is local, the first parent of\n"
-" the source repository's working directory\n"
-" c) the changeset specified with -u (if a branch name, this means the\n"
-" latest head of that branch)\n"
-" d) the changeset specified with -r\n"
-" e) the tipmost head specified with -b\n"
-" f) the tipmost head specified with the url#branch source syntax\n"
-" g) the tipmost head of the default branch\n"
-" h) tip"
-msgstr ""
-" а) пуÑтой каталог, еÑли в иÑточнике нет наборов изменений или указан -"
-"U\n"
-" б) еÑли указано -u . и иÑточник локален, до первого Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ "
-"рабочей копии иÑточника\n"
-" в) ревизиÑ, ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð² -u (еÑли Ñто Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸, то до головной "
-"ревизии\n"
-" Ñтой ветки)\n"
-" г) до ревизии, указанной Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -r\n"
-" д) до оконечной головной ревизии указанной в -b\n"
-" е) до оконечной головной ревизии заданной как url#ветка\n"
-" ж) до оконечной головной ревизии ветки default\n"
-" з) до оконечной ревизии"
-
-msgid " - clone a remote repository to a new directory named hg/::"
+" In some cases, you can clone repositories and the working directory\n"
+" using full hardlinks with ::"
msgstr ""
-" - Ñоздать клон отдаленного хранилища в новом каталоге Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ hg/::"
-
-msgid " hg clone http://selenic.com/hg"
-msgstr " hg clone http://selenic.com/hg"
+" Ð’ некоторых ÑлучаÑÑ… можно клонировать репозитории и рабочие\n"
+" каталоги целиком жеÑткими ÑÑылками ::"
-msgid " - create a lightweight local clone::"
-msgstr " - Ñоздать легковеÑный локальный клон::"
-
-msgid " hg clone project/ project-feature/"
-msgstr " hg clone project/ project-feature/"
+msgid " $ cp -al REPO REPOCLONE"
+msgstr " $ cp -al РЕПОЗИТОРИЙ КЛОÐ"
msgid ""
-" - clone from an absolute path on an ssh server (note double-slash)::"
+" This is the fastest way to clone, but it is not always safe. The\n"
+" operation is not atomic (making sure REPO is not modified during\n"
+" the operation is up to you) and you have to make sure your editor\n"
+" breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,\n"
+" this is not compatible with certain extensions that place their\n"
+" metadata under the .hg directory, such as mq."
msgstr ""
-" - клонировать хранилище по абÑолютному пути на ssh-Ñервере\n"
-" (обратите внимание на двойной ÑлÑш)::"
-
-msgid " hg clone ssh://user@server//home/projects/alpha/"
-msgstr " hg clone ssh://user@server//home/projects/alpha/"
+" Это Ñамый быÑтрый ÑпоÑоб клонированиÑ, но он не вÑегда безопаÑен.\n"
+" Эта Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ атомарна (вам надо Ñледить за тем, что РЕПОЗИТОРИЙ\n"
+" не изменÑетÑÑ Ð² процеÑÑе копированиÑ), и вам надо убедитьÑÑ, что\n"
+" ваш редактор умеет разрывать жеÑткие ÑÑылки (Emacs и большинÑтво\n"
+" инÑтрументов разработчика Ñдра Linux умеют). Этот ÑпоÑоб также\n"
+" не ÑовмеÑтим Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ раÑширениÑми, которые хранÑÑ‚ Ñвои\n"
+" метаданные в каталоге .hg, как mq."
msgid ""
-" - do a high-speed clone over a LAN while checking out a\n"
-" specified version::"
+" Mercurial will update the working directory to the first applicable\n"
+" revision from this list:"
msgstr ""
-" - выполнить быÑтрое клонирование по локальной Ñети Ñ Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸ÐµÐ¼\n"
-" указанной ревизии::"
-
-msgid " hg clone --uncompressed http://server/repo -u 1.5"
-msgstr " hg clone --uncompressed http://server/repo -u 1.5"
+" Mercurial обновит рабочий каталог до первой подходÑщей ревизии по\n"
+" ÑпиÑку:"
msgid ""
-" - create a repository without changesets after a particular revision::"
+" a) null if -U or the source repository has no changesets\n"
+" b) if -u . and the source repository is local, the first parent of\n"
+" the source repository's working directory\n"
+" c) the changeset specified with -u (if a branch name, this means the\n"
+" latest head of that branch)\n"
+" d) the changeset specified with -r\n"
+" e) the tipmost head specified with -b\n"
+" f) the tipmost head specified with the url#branch source syntax\n"
+" g) the tipmost head of the default branch\n"
+" h) tip"
msgstr ""
-" - Ñоздать хранилище без наборов изменений поÑле заданной ревизии::"
-
-msgid " hg clone -r 04e544 experimental/ good/"
-msgstr " hg clone -r 04e544 experimental/ good/"
-
-msgid " - clone (and track) a particular named branch::"
-msgstr " - клонировать (и отÑлеживать) указанную именованную ветку::"
-
-msgid " hg clone http://selenic.com/hg#stable"
-msgstr " hg clone http://selenic.com/hg#stable"
-
-msgid " See :hg:`help urls` for details on specifying URLs."
-msgstr " Подробнее о задании URL хранилища Ñм. :hg:`help urls`."
+" а) пуÑтой каталог, еÑли в иÑточнике нет наборов изменений или указан -U\n"
+" б) еÑли указан -u . и иÑточник локален, до первого Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ¹ "
+"копии\n"
+" иÑточника\n"
+" в) ревизиÑ, ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð² -u (еÑли Ñто Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸, то до головной ревизии\n"
+" Ñтой ветви)\n"
+" г) до ревизии, укзанной Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -r\n"
+" д) до поÑледней ревизии указанной в -b\n"
+" е) до поÑледней ревизии указанной как url#ветвь\n"
+" ж) до поÑледней ревизии ветви default\n"
+" з) до поÑледней ревизии"
msgid "cannot specify both --noupdate and --updaterev"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ --noupdate и --updaterev одновременно"
msgid "mark new/missing files as added/removed before committing"
msgstr ""
-"пометить новые/недоÑтающие файлы как добавленные/удаленные перед фикÑацией"
+"пометить новые/недоÑтающие файлы как добавленные/удаленные перед коммитом"
msgid "mark a branch as closed, hiding it from the branch list"
-msgstr "пометить ветку как закрытую, Ñкрыть ее из ÑпиÑка веток"
-
-msgid "amend the parent of the working dir"
-msgstr "иÑправить родительÑкую ревизию рабочего каталога"
+msgstr "пометить ветвь как закрытую, Ñкрыть ее из ÑпиÑка ветвей"
msgid "commit the specified files or all outstanding changes"
-msgstr "зафикÑировать указанные файлы или вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² хранилище"
+msgstr "зафикÑировать указанные файлы или вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² репозитории"
msgid ""
" Commit changes to the given files into the repository. Unlike a\n"
" centralized SCM, this operation is a local operation. See\n"
" :hg:`push` for a way to actively distribute your changes."
msgstr ""
-" ЗафикÑировать указанные файлы в хранилище. Ð’ отличие от\n"
-" централизованных SCM, Ñто Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ. См.\n"
+" ЗафикÑировать (закоммитить) указанные файлы в репозитории. Ð’\n"
+" отличие от централизованных SCM, Ñто Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ. См.\n"
" :hg:`push` чтобы узнать, как опубликовать Ñвои изменениÑ."
msgid ""
" If a list of files is omitted, all changes reported by :hg:`status`\n"
" will be committed."
msgstr ""
-" ЕÑли ÑпиÑок файлов опущен, будут зафикÑированы вÑе изменениÑ, которые\n"
+" ЕÑли ÑпиÑок файлов опущен, будут закоммичены вÑе изменениÑ, которые\n"
" показывает :hg:`status`."
msgid ""
" If you are committing the result of a merge, do not provide any\n"
" filenames or -I/-X filters."
msgstr ""
-" ЕÑли вы фикÑируете результат ÑлиÑниÑ, не указывайте никаких\n"
+" ЕÑли вы коммитите результат ÑлиÑниÑ, не указывайте никаких\n"
" файлов или фильтров в -I/-X."
msgid ""
@@ -11124,45 +7549,12 @@ msgid ""
" commit fails, you will find a backup of your message in\n"
" ``.hg/last-message.txt``."
msgstr ""
-" ЕÑли не указано Ñообщение фикÑации, Mercurial запуÑтит ваш\n"
-" наÑтроенный редактор, где можно ввеÑти Ñообщение. ЕÑли при\n"
-" фикÑации ÑлучаетÑÑ Ñбой, копию ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ найти в \n"
+" ЕÑли не указан комментарий к коммиту, Mercurial запуÑтит ваш\n"
+" наÑтроенный редактор, где можно ввеÑти комментарий. ЕÑли при\n"
+" коммите ÑлучаетÑÑ Ñбой, копию ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ найти в \n"
" ``.hg/last-message.txt``."
msgid ""
-" The --amend flag can be used to amend the parent of the\n"
-" working directory with a new commit that contains the changes\n"
-" in the parent in addition to those currently reported by :hg:`status`,\n"
-" if there are any. The old commit is stored in a backup bundle in\n"
-" ``.hg/strip-backup`` (see :hg:`help bundle` and :hg:`help unbundle`\n"
-" on how to restore it)."
-msgstr ""
-" Флаг --amend может быть иÑпользован Ð´Ð»Ñ Ð²Ð½ÐµÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð¿Ñ€Ð°Ð²Ð¾Ðº в "
-"родительÑкую\n"
-" ревизию рабочего каталога Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ еще одной операции фикÑации,\n"
-" Ñодержащей Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкой ревизии в дополнении к тем,\n"
-" которые показываютÑÑ :hg:`status` (еÑли таковые имеютÑÑ). РезервнаÑ\n"
-" ÐºÐ¾Ð¿Ð¸Ñ Ñтарого набора изменений будет Ñохранена в виде комплекта в\n"
-" ``.hg/strip-backup`` (о том, как его воÑÑтановить, Ñм.\n"
-" :hg:`help bundle` и :hg:`help unbundle`)."
-
-msgid ""
-" Message, user and date are taken from the amended commit unless\n"
-" specified. When a message isn't specified on the command line,\n"
-" the editor will open with the message of the amended commit."
-msgstr ""
-" Сообщение фикÑации, Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ дата берутÑÑ Ð¸Ð· изменÑемой\n"
-" ревизии, еÑли они Ñвно не заданы. ЕÑли Ñообщение фикÑации не указано в\n"
-" командной Ñтроке, откроетÑÑ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€ Ñ Ñообщением изменÑемой ревизии."
-
-msgid ""
-" It is not possible to amend public changesets (see :hg:`help phases`)\n"
-" or changesets that have children."
-msgstr ""
-" ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ опубликованный набор изменений (Ñм. :hg:`help phases`),\n"
-" а также набор изменений, имеющий потомков."
-
-msgid ""
" Returns 0 on success, 1 if nothing changed.\n"
" "
msgstr ""
@@ -11170,36 +7562,21 @@ msgstr ""
" "
msgid "can only close branch heads"
-msgstr "можно закрыть только головную ревизию ветки"
-
-msgid "cannot amend recursively"
-msgstr "невозможно иÑправлÑÑ‚ÑŒ рекурÑивно"
+msgstr "можно закрыть только головную ревизию ветви"
-msgid "cannot amend public changesets"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸ÑправлÑÑ‚ÑŒ публичные ревизии"
-
-msgid "cannot amend merge changesets"
-msgstr "невозможно иÑправить ревизии ÑлиÑниÑ"
-
-msgid "cannot amend while merging"
-msgstr "невозможно иÑправлÑÑ‚ÑŒ во Ð²Ñ€ÐµÐ¼Ñ ÑлиÑниÑ"
-
-msgid "cannot amend changeset with children"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸ÑправлÑÑ‚ÑŒ ревизию, имеющую потомков"
+#, python-format
+msgid "nothing changed (%d missing files, see 'hg status')\n"
+msgstr "нет изменений (%d файлов отÑутÑвует, Ñм. 'hg status')\n"
msgid "nothing changed\n"
msgstr "нет изменений\n"
-#, python-format
-msgid "nothing changed (%d missing files, see 'hg status')\n"
-msgstr "нет изменений (%d файлов отÑутÑтвует, Ñм. 'hg status')\n"
-
msgid "created new head\n"
msgstr "Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð°\n"
#, python-format
msgid "reopening closed branch head %d\n"
-msgstr "повторно открываю головную ревизию %d закрытой ветки\n"
+msgstr "повторно открываю головную ревизию %d закрытой ветви\n"
#, python-format
msgid "committed changeset %d:%s\n"
@@ -11215,7 +7592,7 @@ msgid "[OPTION]... [SOURCE]... DEST"
msgstr "[ПÐРÐМЕТР]... [ИСТОЧÐИК]... ÐÐЗÐ"
msgid "mark files as copied for the next commit"
-msgstr "пометить файл как Ñкопированный при Ñледующей фикÑации"
+msgstr "пометить файл как Ñкопированный при Ñледующем коммите"
msgid ""
" Mark dest as having copies of source files. If dest is a\n"
@@ -11223,7 +7600,7 @@ msgid ""
" the source must be a single file."
msgstr ""
" Помечает файл Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÐºÐ°Ðº копию иÑточника. ЕÑли ÐÐЗÐÐЧЕÐИЕ -\n"
-" каталог, копии помещаютÑÑ Ñ‚ÑƒÐ´Ð°. ЕÑли ÐÐЗÐÐЧЕÐИЕ - файл, иÑточник\n"
+" директориÑ, копии помещаютÑÑ Ñ‚ÑƒÐ´Ð°. ЕÑли ÐÐЗÐÐЧЕÐИЕ - файл, иÑточник\n"
" должен быть одним файлом."
msgid ""
@@ -11239,7 +7616,7 @@ msgid ""
" This command takes effect with the next commit. To undo a copy\n"
" before that, see :hg:`revert`."
msgstr ""
-" ДейÑтвие Ñтой команды закреплÑетÑÑ Ð¿Ñ€Ð¸ Ñледующей фикÑации. Чтобы\n"
+" Эффект Ñтой команды фикÑируетÑÑ Ð¿Ñ€Ð¸ Ñледующем коммите. Чтобы\n"
" отменить копирование, Ñм. :hg:`revert`."
msgid ""
@@ -11258,32 +7635,28 @@ msgstr "найти родительÑкую ревизию двух ревизи
msgid "either two or three arguments required"
msgstr "требуютÑÑ Ð´Ð²Ð° или три аргумента"
-# {{{ Debug commands
-# NOT-SURE
msgid "add single file mergeable changes"
-msgstr "добавить единÑтвенный файл, объединÑющий изменениÑ"
+msgstr ""
msgid "add single file all revs overwrite"
-msgstr "добавить единÑтвенный файл, перезапиÑываемый во вÑех ревизиÑÑ…"
+msgstr ""
msgid "add new file at each rev"
-msgstr "добавлÑÑ‚ÑŒ новый файл в каждой ревизии"
+msgstr ""
msgid "[OPTION]... [TEXT]"
msgstr "[ПÐРÐМЕТР]... [ТЕКСТ]..."
msgid "builds a repo with a given DAG from scratch in the current empty repo"
-msgstr "поÑтроить хранилище по данному графу в текущем пуÑтом хранилище"
+msgstr ""
msgid ""
" The description of the DAG is read from stdin if not given on the\n"
" command line."
msgstr ""
-" ОпиÑание графа читаетÑÑ Ñо Ñтандартного ввода, еÑли оно не задано\n"
-" в командной Ñтроке."
msgid " Elements:"
-msgstr " Элементы:"
+msgstr ""
msgid ""
" - \"+n\" is a linear run of n nodes based on the current default "
@@ -11299,29 +7672,12 @@ msgid ""
" - \"@branch\" sets the named branch for subsequent nodes\n"
" - \"#...\\n\" is a comment up to the end of the line"
msgstr ""
-" - \"+n\" - Ð»Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ð¿Ð¾ÑледовательноÑÑ‚ÑŒ из n узлов, оÑÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð½Ð° "
-"текущем родителе по умолчанию\n"
-" - \".\" - один узел, оÑнованный на текущем родителе по умолчанию\n"
-" - \"$\" ÑбраÑывает Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ð¿Ð¾ умолчанию на null (подразумеваетÑÑ Ð² "
-"начале);\n"
-" в противном Ñлучае родителем по умолчанию ÑвлÑетÑÑ Ð¿Ð¾Ñледний\n"
-" Ñозданный узел\n"
-" - \"<p\" уÑтанавливает Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ð¿Ð¾ умолчанию в обратную ÑÑылку "
-"(backref) на p\n"
-" - \"*p\" - разветвление в родителе p, который ÑвлÑетÑÑ backref\n"
-" - \"*p1/p2\" - ÑлиÑние родителей p1 и p2, которые ÑвлÑÑŽÑ‚ÑÑ backref\n"
-" - \"/p2\" - ÑлиÑние предыдущего узла и p2\n"
-" - \":tag\" задает локальную метку Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾ узла\n"
-" - \"@branch\" уÑтанавливает именованную ветку Ð´Ð»Ñ Ð¿Ð¾Ñледующих узлов\n"
-" - \"#...\\n\" - комментарий до конца Ñтроки"
-
-# syntax highlight off ;) />
+
msgid " Whitespace between the above elements is ignored."
msgstr ""
-" Пробельные Ñимволы между вышеперечиÑленными Ñлементами игнорируютÑÑ."
msgid " A backref is either"
-msgstr " Backref Ñто"
+msgstr ""
msgid ""
" - a number n, which references the node curr-n, where curr is the "
@@ -11330,11 +7686,6 @@ msgid ""
" - the name of a local tag you placed earlier using \":tag\", or\n"
" - empty to denote the default parent."
msgstr ""
-" - чиÑло n, которое ÑÑылаетÑÑ Ð½Ð° узел curr-n, где curr - текущий узел\n"
-" или\n"
-" - Ð¸Ð¼Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð¹ метки, заданной ранее Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ \":tag\"\n"
-" или\n"
-" - пуÑтое значение, означающее Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ð¿Ð¾ умолчанию."
msgid ""
" All string valued-elements are either strictly alphanumeric, or must\n"
@@ -11342,52 +7693,49 @@ msgid ""
"character.\n"
" "
msgstr ""
-" Ð’Ñе значениÑ-Ñтроки должны быть либо Ñтрого буквенно-цифровыми, либо\n"
-" заключатьÑÑ Ð² двойные кавычки (\"...\") и иÑпользовать \"\\\" в\n"
-" качеÑтве Ñкранирующего Ñимвола."
msgid "reading DAG from stdin\n"
-msgstr "читаем граф Ñо Ñтандартного ввода\n"
+msgstr ""
msgid "repository is not empty"
-msgstr "хранилище не пуÑтое"
+msgstr ""
msgid "building"
-msgstr "поÑтроение"
+msgstr ""
msgid "show all details"
-msgstr "показать вÑе детали"
+msgstr ""
msgid "lists the contents of a bundle"
-msgstr "напечатать Ñодержимое комплекта (bundle)"
+msgstr ""
msgid "validate the correctness of the current dirstate"
-msgstr "проверить корректноÑÑ‚ÑŒ текущего dirstate"
+msgstr ""
#, python-format
msgid "%s in state %s, but not in manifest1\n"
-msgstr "%s в ÑоÑтоÑнии %s, но не в манифеÑте1\n"
+msgstr ""
#, python-format
msgid "%s in state %s, but also in manifest1\n"
-msgstr "%s в ÑоÑтоÑнии %s, а также в манифеÑте1\n"
+msgstr ""
#, python-format
msgid "%s in state %s, but not in either manifest\n"
-msgstr "%s в ÑоÑтоÑнии %s, но ни в одном из манифеÑтов\n"
+msgstr ""
#, python-format
msgid "%s in manifest1, but listed as state %s"
-msgstr "%s в манифеÑте1, но перечиÑлен в ÑоÑтоÑнии %s"
+msgstr ""
msgid ".hg/dirstate inconsistent with current parent's manifest"
-msgstr ".hg/dirstate не ÑоглаÑуетÑÑ Ñ Ð¼Ð°Ð½Ð¸Ñ„ÐµÑтом текущего родителÑ"
+msgstr ""
msgid "[COMMAND]"
-msgstr "[КОМÐÐДÐ]"
+msgstr ""
msgid "list all available commands and options"
-msgstr "перечиÑлить вÑе доÑтупные команды и параметры"
+msgstr ""
msgid "show the command options"
msgstr "показать параметры команды"
@@ -11396,102 +7744,96 @@ msgid "[-o] CMD"
msgstr "[-o] КОМÐÐДÐ"
msgid "returns the completion list associated with the given command"
-msgstr "возвращает ÑпиÑок дополнениÑ, аÑÑоциированный Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ командой"
+msgstr ""
msgid "use tags as labels"
-msgstr "иÑпользовать метки Mercurial в качеÑтве маркировки"
+msgstr ""
msgid "annotate with branch names"
-msgstr "добавлÑÑ‚ÑŒ имена веток"
+msgstr ""
msgid "use dots for runs"
-msgstr "Ñтавить точки Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ð¾Ð½Ð¾Ð²"
+msgstr ""
msgid "separate elements by spaces"
-msgstr "разделÑÑ‚ÑŒ Ñлементы пробелами"
+msgstr ""
msgid "[OPTION]... [FILE [REV]...]"
-msgstr "[ПÐРÐМЕТР]... [ФÐЙЛ [РЕВИЗИЯ]...]"
+msgstr ""
msgid "format the changelog or an index DAG as a concise textual description"
-msgstr "показать журнал изменений или граф индекÑов в кратком текÑтовом виде"
+msgstr ""
msgid ""
" If you pass a revlog index, the revlog's DAG is emitted. If you list\n"
" revision numbers, they get labelled in the output as rN."
msgstr ""
-" ЕÑли вы передадите Ð¸Ð½Ð´ÐµÐºÑ revlog, отображаетÑÑ Ð³Ñ€Ð°Ñ„ revlog. ЕÑли вы\n"
-" укажете номера ревизий, они помечаютÑÑ ÐºÐ°Ðº rN."
msgid ""
" Otherwise, the changelog DAG of the current repo is emitted.\n"
" "
msgstr ""
-" Ð’ противном Ñлучае, отображаетÑÑ Ð³Ñ€Ð°Ñ„ журнала изменений (changelog)\n"
-" текущего хранилища.\n"
-" "
msgid "need repo for changelog dag"
-msgstr "Ð´Ð»Ñ Ð³Ñ€Ð°Ñ„Ð° иÑтории требуетÑÑ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ðµ "
+msgstr ""
msgid "open changelog"
msgstr "открыть журнал изменений (changelog)"
msgid "open manifest"
-msgstr "открыть манифеÑÑ‚"
+msgstr ""
msgid "-c|-m|FILE REV"
-msgstr "-c|-m|ФÐЙЛ РЕВИЗИЯ"
+msgstr ""
msgid "dump the contents of a data file revision"
-msgstr "дамп Ñодержимого ревизии файла данных (data file)"
+msgstr ""
#, python-format
msgid "invalid revision identifier %s"
-msgstr "неверный идентификатор ревизии %s"
+msgstr ""
msgid "try extended date formats"
-msgstr "пробовать раÑширенные форматы даты"
+msgstr ""
msgid "[-e] DATE [RANGE]"
-msgstr "[-e] ДÐТР[ДИÐПÐЗОÐ]"
+msgstr ""
msgid "parse and display a date"
-msgstr "разобрать и отобразить дату"
+msgstr ""
msgid "use old-style discovery"
-msgstr "иÑпользовать обнаружение в Ñтаром Ñтиле"
+msgstr ""
msgid "use old-style discovery with non-heads included"
-msgstr "иÑпользовать обнаружение в Ñтаром Ñтиле, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð½Ðµ-головы (non-heads)"
+msgstr ""
msgid "[-l REV] [-r REV] [-b BRANCH]... [OTHER]"
-msgstr "[-l РЕВ] [-r РЕВ] [-b ВЕТКÐ]... [ДРУГОЙ]"
+msgstr ""
msgid "runs the changeset discovery protocol in isolation"
msgstr ""
-"запуÑкает протокол Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€Ð° Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² изолированном окружении"
msgid "parse and apply a fileset specification"
-msgstr "разобрать и применить Ñпецификацию набора файлов (fileset)"
+msgstr ""
msgid "[PATH]"
-msgstr "[ПУТЬ]"
+msgstr ""
msgid "show information detected about current filesystem"
-msgstr "показать Ñобранную информацию о текущей файловой ÑиÑтеме"
+msgstr ""
msgid "id of head node"
-msgstr "идентификатор головного узла"
+msgstr ""
msgid "id of common node"
-msgstr "идентификатор общего узла"
+msgstr ""
msgid "REPO FILE [-H|-C ID]..."
-msgstr "ХРÐÐИЛИЩЕ ФÐЙЛ [-H|-C ИД]..."
+msgstr ""
msgid "retrieves a bundle from a repo"
-msgstr "извлечь комплект (bundle) из хранилища"
+msgstr ""
msgid ""
" Every ID must be a full-length hex node id string. Saves the bundle to "
@@ -11499,240 +7841,194 @@ msgid ""
" given file.\n"
" "
msgstr ""
-" Каждый идентификатор должен полным 16-ричным идентификатором узла.\n"
-" Комплект ÑохранÑетÑÑ Ð² заданный файл.\n"
-" "
msgid "display the combined ignore pattern"
-msgstr "показать результирующий шаблон игнорированиÑ"
+msgstr ""
msgid "no ignore patterns found"
-msgstr "шаблонов Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ найдено"
+msgstr ""
msgid "revlog format"
-msgstr "формат revlog"
+msgstr ""
msgid "[-f FORMAT] -c|-m|FILE"
-msgstr "[-f ФОРМÐТ] -c|-m|ФÐЙЛ"
+msgstr ""
msgid "dump the contents of an index file"
-msgstr "дамп Ñодержимого файла индекÑа"
+msgstr ""
#, python-format
msgid "unknown format %d"
-msgstr "неизвеÑтный формат %d"
+msgstr ""
msgid "dump an index DAG as a graphviz dot file"
-msgstr "дамп графа индекÑов в виде dot-файла graphviz"
+msgstr ""
msgid "test Mercurial installation"
-msgstr "протеÑтировать уÑтановка Mercurial"
+msgstr ""
#, python-format
-msgid "checking encoding (%s)...\n"
-msgstr "проверка кодировки (%s)...\n"
+msgid "Checking encoding (%s)...\n"
+msgstr ""
msgid " (check that your locale is properly set)\n"
-msgstr " (проверьте правильноÑÑ‚ÑŒ уÑтановки локали)\n"
+msgstr ""
#, python-format
-msgid "checking installed modules (%s)...\n"
-msgstr "проверка уÑтановленных модулей (%s)...\n"
+msgid "Checking installed modules (%s)...\n"
+msgstr ""
msgid " One or more extensions could not be found"
-msgstr " Одно или более раÑширение не найдено"
+msgstr ""
msgid " (check that you compiled the extensions)\n"
-msgstr " (убедитеÑÑŒ, что вы Ñкомпилировали раÑширение)\n"
+msgstr ""
-#, python-format
-msgid "checking templates (%s)...\n"
-msgstr "проверка шаблонов (%s)...\n"
+msgid "Checking templates...\n"
+msgstr ""
msgid " (templates seem to have been installed incorrectly)\n"
-msgstr " (шаблоны, похоже, некорректно уÑтановлены)\n"
+msgstr ""
-msgid "checking commit editor...\n"
-msgstr "проверка редактора Ñообщений фикÑации...\n"
+msgid "Checking commit editor...\n"
+msgstr ""
msgid " No commit editor set and can't find vi in PATH\n"
-msgstr " Редактор Ñообщений не уÑтановлен и vi не доÑтупен в PATH\n"
+msgstr ""
msgid " (specify a commit editor in your configuration file)\n"
-msgstr " (задайте редактор Ñообщений в вашем конфиге)\n"
+msgstr ""
#, python-format
msgid " Can't find editor '%s' in PATH\n"
-msgstr " Редактор '%s' не доÑтупен в PATH\n"
+msgstr ""
-msgid "checking username...\n"
-msgstr "проверка имени пользователÑ...\n"
+msgid "Checking username...\n"
+msgstr ""
msgid " (specify a username in your configuration file)\n"
-msgstr " (задайте Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² конфиге)\n"
+msgstr ""
-msgid "no problems detected\n"
-msgstr "проблем не обнаружено\n"
+msgid "No problems detected\n"
+msgstr ""
#, python-format
msgid "%s problems detected, please check your install!\n"
-msgstr "Ðайдено %s проблем, пожалуйÑта, проверьте вашу уÑтановку!\n"
+msgstr ""
msgid "REPO ID..."
-msgstr "ИД ХРÐÐИЛИЩÐ..."
+msgstr ""
msgid "test whether node ids are known to a repo"
-msgstr "проверить, извеÑтны ли идентификаторы узлов в хранилище"
+msgstr ""
msgid ""
-" Every ID must be a full-length hex node id string. Returns a list of 0s\n"
-" and 1s indicating unknown/known.\n"
+" Every ID must be a full-length hex node id string. Returns a list of 0s "
+"and 1s\n"
+" indicating unknown/known.\n"
" "
msgstr ""
-" Каждый идентификатор должен быть полным 16-ричным идентификатором узла.\n"
-" Возвращает ÑпиÑок нулей и единиц, означающих неизвеÑтен/извеÑтен.\n"
-" "
-
-msgid "[OBSOLETED [REPLACEMENT] [REPL... ]"
-msgstr "[УСТÐРЕВШЕЕ [ЗÐМЕÐÐ] [ЗÐМЕÐÐ... ]"
-
-msgid "create arbitrary obsolete marker"
-msgstr "Ñоздать произвольный маркер уÑтаревшей ревизии"
msgid "REPO NAMESPACE [KEY OLD NEW]"
-msgstr "ХРÐÐИЛИЩЕ ПРОСТРÐÐСТВО_ИМЕР[КЛЮЧ СТÐРЫЙ ÐОВЫЙ]"
+msgstr ""
msgid "access the pushkey key/value protocol"
-msgstr "доÑтуп к протоколу ключ/значение pushkey"
+msgstr ""
msgid " With two args, list the keys in the given namespace."
-msgstr " С Ð´Ð²ÑƒÐ¼Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð°Ð¼Ð¸ перечиÑлÑет ключи в данном проÑтранÑтве имен."
+msgstr ""
msgid ""
" With five args, set a key to new if it currently is set to old.\n"
" Reports success or failure.\n"
" "
msgstr ""
-" С пÑтью аргументами уÑтанавливает КЛЮЧ в ÐОВЫЙ, еÑли он равен СТÐРОМУ.\n"
-" Сообщает об уÑпехе или неудаче.\n"
-" "
-
-msgid "A B"
-msgstr "A B"
-
-#, python-format
-msgid "a: %s\n"
-msgstr "a: %s\n"
-
-#, python-format
-msgid "b: %s\n"
-msgstr "b: %s\n"
-
-#, python-format
-msgid "depth(a): %d depth(b): %d\n"
-msgstr "глубина(а): %d глубина(b): %d\n"
-
-#, python-format
-msgid "delta: %d hdist: %d distance: %d relation: %s\n"
-msgstr "дельта: %d hdist: %d раÑÑтоÑние: %d отношение: %s\n"
msgid "revision to rebuild to"
-msgstr "переÑтроить на данную ревизию"
+msgstr ""
msgid "[-r REV] [REV]"
-msgstr "[-r РЕВИЗИЯ] [РЕВИЗИЯ]"
+msgstr ""
msgid "rebuild the dirstate as it would look like for the given revision"
-msgstr "переÑтроить dirstate, как оно бы выглÑдело в данной ревизии"
+msgstr ""
msgid "revision to debug"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸"
+msgstr ""
msgid "[-r REV] FILE"
-msgstr "[-r РЕВИЗИЯ] ФÐЙЛ"
+msgstr ""
msgid "dump rename information"
-msgstr "дамп информации о переименовании"
+msgstr ""
#, python-format
msgid "%s renamed from %s:%s\n"
-msgstr "%s переименован из %s:%s\n"
+msgstr ""
#, python-format
msgid "%s not renamed\n"
-msgstr "%s не переименован\n"
+msgstr ""
msgid "dump index data"
-msgstr "дамп данных индекÑа"
+msgstr ""
msgid "-c|-m|FILE"
-msgstr "-c|-m|ФÐЙЛ"
+msgstr ""
msgid "show data and statistics about a revlog"
-msgstr "показать данные и ÑтатиÑтику по revlog'у"
+msgstr ""
msgid "parse and apply a revision specification"
-msgstr "разобрать и применить Ñпецификацию ревизии"
-
-msgid ""
-" Use --verbose to print the parsed tree before and after aliases\n"
-" expansion.\n"
-" "
msgstr ""
-" ИÑпользуйте --verbose чтобы напечатать разобранное дерево до и\n"
-" поÑле подÑтановки пÑевдонимов.\n"
-" "
msgid "REV1 [REV2]"
-msgstr "РЕВИЗИЯ1 [РЕВИЗИЯ2]"
+msgstr ""
msgid "manually set the parents of the current working directory"
-msgstr "вручную уÑтановить родителей текущего рабочего каталога"
+msgstr ""
msgid ""
" This is useful for writing repository conversion tools, but should\n"
" be used with care."
msgstr ""
-" Это полезно при напиÑании инÑтрументов Ð´Ð»Ñ ÐºÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°,\n"
-" но пользоватьÑÑ Ñтим надо оÑторожно."
msgid "do not display the saved mtime"
-msgstr "не показывать Ñохраненное mtime"
+msgstr ""
msgid "sort by saved mtime"
-msgstr "Ñортировать по Ñохраненному mtime"
+msgstr ""
msgid "[OPTION]..."
-msgstr "[ПÐРÐМЕТР]..."
+msgstr ""
msgid "show the contents of the current dirstate"
-msgstr "показать Ñодержимое текущего dirstate"
+msgstr ""
#, python-format
msgid "copy: %s -> %s\n"
-msgstr "копирование: %s -> %s\n"
+msgstr ""
msgid "revision to check"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸"
+msgstr ""
msgid "show how files match on given patterns"
-msgstr "показать, как файлы Ñовпадают Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ шаблонами"
+msgstr ""
msgid "REPO [OPTIONS]... [ONE [TWO]]"
-msgstr "ХРÐÐИЛИЩЕ [ПÐРÐМЕТРЫ]... [ПЕРВЫЙ [ВТОРОЙ]]"
+msgstr ""
-# }}} end of debug commands
msgid "[OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]..."
msgstr "[ПÐРÐМЕТР]... ([-c РЕВ] | [-r РЕВ1 [-r РЕВ2]]) [ФÐЙЛ]..."
msgid "diff repository (or selected files)"
-msgstr "показать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² хранилище (или выбранных файлах)"
+msgstr "показать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² репозитории (или выбранных файлах)"
msgid " Show differences between revisions for the specified files."
msgstr " Показывает Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ ревизиÑми указанных файлов."
msgid " Differences between files are shown using the unified diff format."
-msgstr " Ð Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÑŽÑ‚ÑÑ Ð² унифицированном формате diff."
+msgstr " Ð Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÑŽÑ‚ÑÑ Ð² унифицировнном формате diff."
msgid ""
" .. note::\n"
@@ -11742,7 +8038,7 @@ msgid ""
msgstr ""
" .. note::\n"
" diff может генерировать неожиданные результаты Ð´Ð»Ñ ÑлиÑний,\n"
-" поÑкольку по умолчанию Ñравнение производитÑÑ Ñ Ð¿ÐµÑ€Ð²Ñ‹Ð¼\n"
+" поÑкольку по умолчанию Ñравнивнение производитÑÑ Ñ Ð¿ÐµÑ€Ð²Ñ‹Ð¼\n"
" родителем рабочего каталога, еÑли не указаны другие ревизии."
msgid ""
@@ -11768,61 +8064,17 @@ msgstr ""
" ИÑпользуйте -g/--git чтобы генерировать Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð² раÑширенном\n"
" формате git. Подробнее Ñм. :hg:`help diffs`."
-msgid " - compare a file in the current working directory to its parent::"
-msgstr " - Ñравнить файл в текущем рабочем каталоге Ñ ÐµÐ³Ð¾ родителем::"
-
-msgid " hg diff foo.c"
-msgstr " hg diff foo.c"
-
-msgid ""
-" - compare two historical versions of a directory, with rename info::"
-msgstr ""
-" - Ñравнить две верÑии каталога в иÑтории Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÐµÐ¹ о "
-"переименованиÑÑ…::"
-
-msgid " hg diff --git -r 1.0:1.2 lib/"
-msgstr " hg diff --git -r 1.0:1.2 lib/"
-
-msgid " - get change stats relative to the last change on some date::"
-msgstr ""
-" - получить ÑтатиÑтику изменений отноÑительно поÑледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð° "
-"некую дату::"
-
-msgid " hg diff --stat -r \"date('may 2')\""
-msgstr " hg diff --stat -r \"date('may 2')\""
-
-msgid " - diff all newly-added files that contain a keyword::"
-msgstr ""
-" - показать вÑе только что добавленные файлы, Ñодержащие ключевое "
-"Ñлово::"
-
-msgid " hg diff \"set:added() and grep(GNU)\""
-msgstr " hg diff \"set:added() and grep(GNU)\""
-
-msgid " - compare a revision and its parents::"
-msgstr " - Ñравнить ревизию и ее родителей::"
-
-msgid ""
-" hg diff -c 9353 # compare against first parent\n"
-" hg diff -r 9353^:9353 # same using revset syntax\n"
-" hg diff -r 9353^2:9353 # compare against the second parent"
-msgstr ""
-" hg diff -c 9353 # Ñравнить Ñ Ð¿ÐµÑ€Ð²Ñ‹Ð¼ родителем\n"
-" hg diff -r 9353^:9353 # то же Ñ Ð¸Ñпользованием ÑинтакÑиÑа "
-"revset\n"
-" hg diff -r 9353^2:9353 # Ñравнить Ñо вторым родителем"
-
msgid "diff against the second parent"
msgstr "Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚ второй родительÑкой ревизии"
msgid "revisions to export"
msgstr "ревизии Ð´Ð»Ñ ÑкÑпортированиÑ"
-msgid "[OPTION]... [-o OUTFILESPEC] [-r] REV..."
-msgstr "[ПÐРÐМЕТР]... [-o ВЫХФОРМÐТ] [-r] РЕВИЗИЯ..."
+msgid "[OPTION]... [-o OUTFILESPEC] REV..."
+msgstr "[ПÐРÐМЕТР]... [-o OUTFILESPEC] РЕВИЗИЯ..."
msgid "dump the header and diffs for one or more changesets"
-msgstr "вывеÑти заголовок и Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð¹ или неÑкольких ревизий"
+msgstr "Ñохранить заголовок и diff'Ñ‹ Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð¹ или неÑкольких ревизий"
msgid " Print the changeset header and diffs for one or more revisions."
msgstr ""
@@ -11835,8 +8087,8 @@ msgid ""
" comment."
msgstr ""
" Ð’ заголовке набора изменений ÑодержитÑÑ ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ:\n"
-" автор, дата, Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸ (еÑли не default), Ñ…Ñш набора изменений,\n"
-" родитель (родители) и Ñообщение фикÑации."
+" автор, дата, Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸ (еÑли не default), Ñ…Ñш набора изменений,\n"
+" родитель (родители) и комментарий к коммиту."
msgid ""
" .. note::\n"
@@ -11863,8 +8115,6 @@ msgid ""
" :``%R``: changeset revision number\n"
" :``%b``: basename of the exporting repository\n"
" :``%h``: short-form changeset hash (12 hexadecimal digits)\n"
-" :``%m``: first line of the commit message (only alphanumeric "
-"characters)\n"
" :``%n``: zero-padded sequence number, starting at 1\n"
" :``%r``: zero-padded changeset revision number"
msgstr ""
@@ -11872,9 +8122,8 @@ msgstr ""
" :``%H``: Ñ…Ñш набора изменений (40 шеÑтнадцатеричных цифр)\n"
" :``%N``: количеÑтво Ñгенерированных патчей\n"
" :``%R``: номер ревизии набора изменений\n"
-" :``%b``: базовое Ð¸Ð¼Ñ ÑкÑпортируемого хранилища\n"
+" :``%b``: базовое Ð¸Ð¼Ñ ÑкÑпортируемого репозиториÑ\n"
" :``%h``: короткий Ñ…Ñш набора изменений (12 шеÑтнадцатеричных цифр)\n"
-" :``%m``: Ð¿ÐµÑ€Ð²Ð°Ñ Ñтрока ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ Ñ„Ð¸ÐºÑации (только буквы и цифры)\n"
" :``%n``: выровненный нулÑми поÑледовательный номер, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ 1\n"
" :``%r``: выровненный нулÑми номер ревизии"
@@ -11883,15 +8132,15 @@ msgid ""
" of files it detects as binary. With -a, export will generate a\n"
" diff anyway, probably with undesirable results."
msgstr ""
-" Без -a/--text, export не будет генерировать Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²,\n"
-" которые он Ñчитает бинарными. С -а Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ Ñгенерированы\n"
+" Без -a/--text, export не будет генерировать diff'Ñ‹ Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²,\n"
+" которые он Ñчитает бинарными. С -а diff'Ñ‹ будут Ñгенерированы\n"
" Ð´Ð»Ñ Ð²Ñех файлов, чаÑто Ñ Ð½ÐµÐ¶ÐµÐ»Ð°Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼Ð¸ результатами."
msgid ""
" Use the -g/--git option to generate diffs in the git extended diff\n"
" format. See :hg:`help diffs` for more information."
msgstr ""
-" ИÑпользуйте -g/--git чтобы Ñгенерировать Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð² раÑширенном\n"
+" ИÑпользуйте -g/--git чтобы Ñгенерировать diff'Ñ‹ в раÑширенном\n"
" формате git. Подробнее Ñм. :hg:`help diffs`."
msgid ""
@@ -11901,36 +8150,6 @@ msgstr ""
" ЕÑли указан --switch-parent, будут генерироватьÑÑ Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚\n"
" второго родителÑ. Это может быть полезно при анализе ÑлиÑниÑ."
-msgid ""
-" - use export and import to transplant a bugfix to the current\n"
-" branch::"
-msgstr ""
-" - иÑпользовать export вмеÑте Ñ import чтобы перенеÑти иÑправление\n"
-" бага на текущую ветку::"
-
-msgid " hg export -r 9353 | hg import -"
-msgstr " hg export -r 9353 | hg import -"
-
-msgid ""
-" - export all the changesets between two revisions to a file with\n"
-" rename information::"
-msgstr ""
-" - ÑкÑпортировать вÑе наборы изменений между Ð´Ð²ÑƒÐ¼Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñми в файл,\n"
-" Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÑŽ о переименованиÑÑ…::"
-
-msgid " hg export --git -r 123:150 > changes.txt"
-msgstr " hg export --git -r 123:150 > changes.txt"
-
-msgid ""
-" - split outgoing changes into a series of patches with\n"
-" descriptive names::"
-msgstr ""
-" - преобразовать иÑходÑщие изменений в Ñерию патчей Ñ Ð¾Ð¿Ð¸Ñывающими\n"
-" их именами::"
-
-msgid " hg export -r \"outgoing()\" -o \"%n-%m.patch\""
-msgstr " hg export -r \"outgoing()\" -o \"%n-%m.patch\""
-
msgid "export requires at least one changeset"
msgstr "Ð´Ð»Ñ ÑкÑпорта требуетÑÑ Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один набор изменений"
@@ -11941,182 +8160,38 @@ msgid "exporting patch:\n"
msgstr "ÑкÑпортируемый патч:\n"
msgid "forget the specified files on the next commit"
-msgstr "забыть указанные файлы при Ñледующей фикÑации"
+msgstr "забыть указанные файлы при Ñледующем коммите"
msgid ""
" Mark the specified files so they will no longer be tracked\n"
" after the next commit."
msgstr ""
" Помечает указанные файлы, чтобы переÑтать их отÑлеживать\n"
-" при Ñледующей фикÑации."
+" при Ñледующем коммите."
msgid ""
" This only removes files from the current branch, not from the\n"
" 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`."
msgstr ""
-" Чтобы отменить дейÑтвие forget до Ñледующей фикÑации\n"
+" Чтобы отменить дейÑтвие forget до Ñледующего коммита\n"
" Ñм. :hg:`add`."
-msgid " - forget newly-added binary files::"
-msgstr " - забыть только что добавленные бинарные файлы::"
-
-msgid " hg forget \"set:added() and binary()\""
-msgstr " hg forget \"set:added() and binary()\""
-
-msgid " - forget files that would be excluded by .hgignore::"
-msgstr " - забыть файлы, которые будут иÑключены Ñ ÑƒÑ‡ÐµÑ‚Ð¾Ð¼ .hgignore::"
-
-msgid " hg forget \"set:hgignore()\""
-msgstr " hg forget \"set:hgignore()\""
-
-msgid "revisions to graft"
-msgstr "ревизии Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ½Ð¾Ñа"
-
-msgid "resume interrupted graft"
-msgstr "возобновить прерванную операцию graft"
-
-msgid "append graft info to log message"
-msgstr "добавить информацию о переноÑе в журнальное Ñообщение"
-
-msgid "record the current date as commit date"
-msgstr "иÑпользовать текущую дату в качеÑтве даты фикÑации"
-
-msgid "record the current user as committer"
-msgstr "иÑпользовать текущего Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº автора фикÑации"
-
-msgid "[OPTION]... [-r] REV..."
-msgstr "[ПÐРÐМЕТР]... [-r] РЕВИЗИЯ..."
-
-msgid "copy changes from other branches onto the current branch"
-msgstr "копировать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¹ ветки в текущую"
-
-msgid ""
-" This command uses Mercurial's merge logic to copy individual\n"
-" changes from other branches without merging branches in the\n"
-" history graph. This is sometimes known as 'backporting' or\n"
-" 'cherry-picking'. By default, graft will copy user, date, and\n"
-" description from the source changesets."
-msgstr ""
-" Эта команда иÑпользует возможноÑти ÑлиÑÐ½Ð¸Ñ Mercurial, чтобы\n"
-" Ñкопировать отдельные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· других веток без полного ÑлиÑниÑ\n"
-" веток в графе иÑтории. Иногда Ñту операцию также называют\n"
-" 'бÑкпортирование' ('backporting') или 'cherry-picking'. По умолчанию\n"
-" graft копирует Ð¸Ð¼Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð°, даты и опиÑание из ревизии-иÑточника."
-
-msgid ""
-" Changesets that are ancestors of the current revision, that have\n"
-" already been grafted, or that are merges will be skipped."
-msgstr ""
-" Ðаборы изменений, ÑвлÑющиеÑÑ Ð¿Ñ€ÐµÐ´ÐºÐ°Ð¼Ð¸ текущей ревизии, и к которым\n"
-" уже была применена Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ graft, а также ревизии ÑлиÑÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚\n"
-" пропущены."
-
-msgid " (grafted from CHANGESETHASH)"
-msgstr " (перенеÑено из ХЭШРЕВИЗИИ)"
-
-msgid ""
-" If a graft merge results in conflicts, the graft process is\n"
-" interrupted so that the current merge can be manually resolved.\n"
-" Once all conflicts are addressed, the graft process can be\n"
-" continued with the -c/--continue option."
-msgstr ""
-" ЕÑли во Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸ graft возникает конфликт, Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÑетÑÑ\n"
-" Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы текущее ÑлиÑние было завершено вручную. ПоÑле\n"
-" Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ñех конфликтов, можно продолжить процеÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
-" параметра -c/--continue."
-
-msgid ""
-" .. note::\n"
-" The -c/--continue option does not reapply earlier options."
-msgstr ""
-" .. note::\n"
-" Параметр -c/--continue не применÑет повторно ранее заданные опции."
-
-msgid ""
-" - copy a single change to the stable branch and edit its description::"
-msgstr ""
-" - Ñкопировать одно изменение в ветку stable и отредактировать ее\n"
-" опиÑание::"
-
-msgid ""
-" hg update stable\n"
-" hg graft --edit 9393"
-msgstr ""
-" hg update stable\n"
-" hg graft --edit 9393"
-
-msgid ""
-" - graft a range of changesets with one exception, updating dates::"
-msgstr ""
-" - перенеÑти диапазон ревизий Ñ Ð¾Ð´Ð½Ð¸Ð¼ иÑключением, обновлÑÑ Ð´Ð°Ñ‚Ñ‹::"
-
-msgid " hg graft -D \"2085::2093 and not 2091\""
-msgstr " hg graft -D \"2085::2093 and not 2091\""
-
-msgid " - continue a graft after resolving conflicts::"
-msgstr " - продолжить Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ð¿Ð¾Ñле Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð¾Ð²::"
-
-msgid " hg graft -c"
-msgstr " hg graft -c"
-
-msgid " - show the source of a grafted changeset::"
-msgstr " - показать иÑточник перенеÑенного набора изменений::"
-
-msgid " hg log --debug -r tip"
-msgstr " hg log --debug -r tip"
-
-msgid ""
-" Returns 0 on successful completion.\n"
-" "
-msgstr ""
-" Ð’ Ñлучае уÑпеха возвращает 0.\n"
-" "
-
-msgid "can't specify --continue and revisions"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ --continue и ревизии одновременно"
-
-msgid "no graft state found, can't continue"
-msgstr "не найдено ÑоÑтоÑние операции graft, продолжение невозможно"
-
-#, python-format
-msgid "skipping ungraftable merge revision %s\n"
-msgstr "пропуÑкаю ревизию ÑлиÑÐ½Ð¸Ñ %s\n"
-
-#, python-format
-msgid "skipping ancestor revision %s\n"
-msgstr "пропуÑкаю предка %s\n"
-
-#, python-format
-msgid "skipping already grafted revision %s\n"
-msgstr "пропуÑкаю уже перенеÑенную ревизию %s\n"
-
-#, python-format
-msgid "skipping already grafted revision %s (same origin %d)\n"
-msgstr "пропуÑкаю уже перенеÑенную ревизию %s (тот же иÑточник %d)\n"
-
-#, python-format
-msgid "skipping already grafted revision %s (was grafted from %d)\n"
-msgstr "пропуÑкаю уже перенеÑенную ревизию %s (была перенеÑена из %d)\n"
+msgid "no files specified"
+msgstr "не задано ни одного файла"
#, python-format
-msgid "grafting revision %s\n"
-msgstr "Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¸ %s\n"
-
-msgid "unresolved conflicts, can't continue"
-msgstr "неразрешенные конфликты, продолжение невозможно"
-
-msgid "use hg resolve and hg graft --continue"
-msgstr "иÑпользуйте hg resolve и hg graft --continue"
+msgid "not removing %s: file is already untracked\n"
+msgstr "%s не удален, он и так не отÑлеживаетÑÑ\n"
#, python-format
-msgid "graft for revision %s is empty\n"
-msgstr "нечего переноÑить Ð´Ð»Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¸ %s\n"
+msgid "removing %s\n"
+msgstr "удалÑÑŽ %s\n"
msgid "end fields with NUL"
msgstr "заканчивать Ð¿Ð¾Ð»Ñ Ñимволом NUL"
@@ -12124,6 +8199,11 @@ msgstr "заканчивать Ð¿Ð¾Ð»Ñ Ñимволом NUL"
msgid "print all revisions that match"
msgstr "печатать вÑе подходÑщие ревизии"
+msgid "follow changeset history, or file history across copies and renames"
+msgstr ""
+"Ñледовать иÑтории набора изменений или иÑтории файла при копированиÑÑ…/"
+"переименованиÑÑ…"
+
msgid "ignore case when matching"
msgstr "игнорировать региÑÑ‚Ñ€ букв"
@@ -12152,9 +8232,9 @@ msgid ""
" match appears."
msgstr ""
" Команда ведет ÑÐµÐ±Ñ Ð½Ðµ так, как grep в Unix. Она принимает\n"
-" регулÑрные Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Python/Perl. Ищет в иÑтории хранилища,\n"
+" регулÑрные Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Python/Perl. Ищет в иÑтории репозиториÑ,\n"
" а не в рабочем каталоге. Она вÑегда печатает номер ревизии,\n"
-" в котором находит Ñовпадение."
+" в ктором находит Ñовпадение."
msgid ""
" By default, grep only prints output for the first revision of a\n"
@@ -12178,7 +8258,7 @@ msgstr ""
#, python-format
msgid "grep: invalid match pattern: %s\n"
-msgstr "grep: неверный шаблон: %s\n"
+msgstr "grep: наверный шаблон: %s\n"
msgid "STARTREV"
msgstr "ÐÐЧРЕВИЗИЯ"
@@ -12190,19 +8270,19 @@ msgid "show topological heads only"
msgstr "показать только топологичеÑкие головные ревизии"
msgid "show active branchheads only (DEPRECATED)"
-msgstr "показать только активные головы веток (УСТÐРЕЛО)"
+msgstr "показать только активные головы ветвей (УСТÐРЕЛО)"
msgid "show normal and closed branch heads"
-msgstr "показать обычные и закрытые головы веток"
+msgstr "показать обычные и закрытые головы ветвей"
-msgid "[-ct] [-r STARTREV] [REV]..."
-msgstr "[-ct] [-r ÐÐЧРЕВИЗИЯ] [РЕВИЗИЯ]..."
+msgid "[-ac] [-r STARTREV] [REV]..."
+msgstr "[-ac] [-r ÐÐЧРЕВИЗИЯ] [РЕВИЗИЯ]..."
msgid "show current repository heads or show branch heads"
-msgstr "показать головы текущего хранилища или головы веток"
+msgstr "показать головы текущего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð»Ð¸ головы ветвей"
msgid " With no arguments, show all repository branch heads."
-msgstr " Без аргументов показывает вÑе головы веток хранилища."
+msgstr " Без аргуметов показывает вÑе головы ветвей репозиториÑ."
msgid ""
" Repository \"heads\" are changesets with no child changesets. They are\n"
@@ -12210,28 +8290,24 @@ msgid ""
" for update and merge operations. Branch heads are changesets that have\n"
" no child changeset on the same branch."
msgstr ""
-" \"Головы\" хранилища - Ñто наборы изменений, у которых нет дочерних\n"
+" \"Головы\" Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ - Ñто наборы изменений, у которых нет дочерних\n"
" наборов. Именно в них проиÑходит разработка и они как правило ÑвлÑÑŽÑ‚ÑÑ\n"
-" объектами Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¹ update или merge. Головы веток - Ñто наборы\n"
-" изменений, у которых нет дочерних наборов на той же ветке."
+" объектами Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¹ update или merge. Головы ветвей - Ñто наборы\n"
+" изменений, у которых нет дочерних наборов на той же ветви."
msgid ""
" If one or more REVs are given, only branch heads on the branches\n"
-" associated with the specified changesets are shown. This means\n"
-" that you can use :hg:`heads foo` to see the heads on a branch\n"
-" named ``foo``."
+" associated with the specified changesets are shown."
msgstr ""
" ЕÑли указана одна или более РЕВИЗИЯ, показываютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ головы\n"
-" на ветках, аÑÑоциированных Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼Ð¸ ревизиÑми. Это означает,\n"
-" что вы можете иÑпользовать :hg:`heads foo`, чтобы поÑмотреть\n"
-" головы на ветке Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ ``foo``."
+" на ветвÑÑ…, аÑÑоциированных Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼Ð¸ ревизиÑми."
msgid ""
" If -c/--closed is specified, also show branch heads marked closed\n"
" (see :hg:`commit --close-branch`)."
msgstr ""
" ЕÑли указан -c/--closed, показываютÑÑ Ñ‚Ð°ÐºÐ¶Ðµ головы на закрытых\n"
-" ветках (Ñм. :hg:`commit --close-branch`)"
+" ветвÑÑ… (Ñм. :hg:`commit --close-branch`)"
msgid ""
" If STARTREV is specified, only those heads that are descendants of\n"
@@ -12245,8 +8321,9 @@ msgid ""
"only\n"
" changesets without children will be shown."
msgstr ""
-" ЕÑли указан -t/--topo, механизм именованных веток игнорируетÑÑ, и "
-"будут показаны только наборы изменений без дочерних наборов."
+" ЕÑли указан -t/--topo, механизм именованных ветвей игнорируетÑÑ, и "
+"будут\n"
+" показаны только наборы изменений без дочерних наборов."
msgid ""
" Returns 0 if matching heads are found, 1 if not.\n"
@@ -12257,7 +8334,7 @@ msgstr ""
#, python-format
msgid "no open branch heads found on branches %s"
-msgstr "не найдено голов открытых веток на ветках %s"
+msgstr "не найдено голов открытых ветвей на ветвÑÑ… %s"
#, python-format
msgid " (started at %s)"
@@ -12269,9 +8346,6 @@ msgstr "показать только Ñправку по раÑширениÑм
msgid "show only help for commands"
msgstr "показать только Ñправку по командам"
-msgid "show topics matching keyword"
-msgstr "показать темы, ÑоответÑтвующие ключевому Ñлову"
-
msgid "[-ec] [TOPIC]"
msgstr "[-ec] [ТЕМÐ]"
@@ -12280,7 +8354,7 @@ msgstr "показать Ñправку по выбранной теме или
msgid ""
" With no arguments, print a list of commands with short help messages."
-msgstr " Без аргументов печатает ÑпиÑок команд Ñ ÐºÑ€Ð°Ñ‚ÐºÐ¸Ð¼ опиÑанием."
+msgstr " Без аргументов печатает ÑпиÑко команд Ñ ÐºÑ€Ð°Ñ‚ÐºÐ¸Ð¼ опиÑанием."
msgid ""
" Given a topic, extension, or command name, print help for that\n"
@@ -12296,6 +8370,34 @@ msgstr ""
" Возвращает 0 при уÑпешном выполнении.\n"
" "
+msgid "global options:"
+msgstr "глобальные параметры:"
+
+msgid "use \"hg help\" for the full list of commands"
+msgstr "иÑпользуйте \"hg help\" чтобы поÑмотреть полный ÑпиÑок команд"
+
+msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
+msgstr ""
+"иÑпользуйте \"hg help\" чтобы поÑмотреть полный ÑпиÑок команд,\"hg -v\" Ð´Ð»Ñ "
+"подробной информации"
+
+#, python-format
+msgid "use \"hg help %s\" to show the full help text"
+msgstr "иÑпользуйте \"hg help %s\" чтобы получить полную Ñправку"
+
+#, python-format
+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"
+msgstr "иÑпользуйте \"hg -v help %s\" Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра глобальных параметров"
+
+msgid "list of commands:"
+msgstr "ÑпиÑок команд:"
+
#, python-format
msgid ""
"\n"
@@ -12324,68 +8426,23 @@ msgid "%s"
msgstr "%s"
#, python-format
-msgid "use \"hg help -e %s\" to show help for the %s extension"
-msgstr "иÑпользуйте \"hg help -e %s\" Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра Ñправки по раÑширению %s"
-
-msgid "options:"
-msgstr "параметры:"
-
-msgid "global options:"
-msgstr "глобальные параметры:"
-
-#, python-format
msgid ""
"\n"
-"use \"hg help %s\" to show the full help text\n"
+"use \"hg -v help %s\" to show verbose help\n"
msgstr ""
"\n"
-"иÑпользуйте \"hg help %s\" чтобы получить полную Ñправку\n"
+"иÑпользуйте \"hg -v help %s\" чтобы поÑмотреть подробную Ñправку\n"
-#, python-format
-msgid ""
-"\n"
-"use \"hg -v help %s\" to show more info\n"
-msgstr ""
-"\n"
-"иÑпользуйте \"hg -v help %s\" Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации\n"
-
-msgid "basic commands:"
-msgstr "ОÑновные команды:"
+msgid "options:\n"
+msgstr "параметры:\n"
-msgid "list of commands:"
-msgstr "ÑпиÑок команд:"
+#, python-format
+msgid "use \"hg help -e %s\" to show help for the %s extension"
+msgstr "иÑпользуйте \"hg help -e %s\" Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра Ñправки по раÑширению %s"
msgid "no commands defined\n"
msgstr "команды не определены\n"
-msgid "enabled extensions:"
-msgstr "Включенные раÑширениÑ:"
-
-msgid ""
-"\n"
-"additional help topics:"
-msgstr ""
-"\n"
-"дополнительные разделы Ñправки:"
-
-msgid "use \"hg help\" for the full list of commands"
-msgstr "иÑпользуйте \"hg help\" чтобы поÑмотреть полный ÑпиÑок команд"
-
-msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
-msgstr ""
-"иÑпользуйте \"hg help\" чтобы поÑмотреть полный ÑпиÑок команд,\"hg -v\" Ð´Ð»Ñ "
-"подробной информации"
-
-#, python-format
-msgid "use \"hg help %s\" to show the full help text"
-msgstr "иÑпользуйте \"hg help %s\" чтобы получить полную Ñправку"
-
-#, python-format
-msgid "use \"hg -v help%s\" to show builtin aliases and global options"
-msgstr ""
-"иÑпользуйте \"hg -v help%s\" чтобы поÑмотреть вÑтроенные пÑевдонимы и "
-"глобальные параметры"
-
#, python-format
msgid ""
"\n"
@@ -12408,14 +8465,34 @@ msgstr "наберите \"hg help extensions\" Ð´Ð»Ñ Ñправки по вкÐ
msgid "'%s' is provided by the following extension:"
msgstr "'%s' предоÑтавлÑетÑÑ Ñледующим раÑширением:"
-msgid "Topics"
-msgstr "Темы"
+msgid "Mercurial Distributed SCM\n"
+msgstr "РаÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð°Ñ SCM Mercurial\n"
+
+msgid "basic commands:"
+msgstr "ОÑновные команды:"
-msgid "Extension Commands"
-msgstr "Команды РаÑширениÑ"
+msgid "enabled extensions:"
+msgstr "Включенные раÑширениÑ:"
-msgid "Mercurial Distributed SCM\n"
-msgstr "РаÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð°Ñ ÑиÑтема ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²ÐµÑ€Ñий Mercurial\n"
+msgid "VALUE"
+msgstr "ЗÐÐЧЕÐИЕ"
+
+msgid "DEPRECATED"
+msgstr "УСТÐРЕЛО"
+
+msgid ""
+"\n"
+"[+] marked option can be specified multiple times"
+msgstr ""
+"\n"
+"параметры, помеченные [+], могут указыватьÑÑ Ð¼Ð½Ð¾Ð³Ð¾ÐºÑ€Ð°Ñ‚Ð½Ð¾"
+
+msgid ""
+"\n"
+"additional help topics:"
+msgstr ""
+"\n"
+"дополнительные разделы Ñправки:"
msgid "identify the specified revision"
msgstr "опиÑать заданную ревизию"
@@ -12427,7 +8504,7 @@ msgid "show global revision id"
msgstr "показать глобальный идентификатор ревизии"
msgid "show branch"
-msgstr "показать ветку"
+msgstr "показать ветвь"
msgid "show tags"
msgstr "показать метки"
@@ -12447,52 +8524,34 @@ msgid ""
" directory has uncommitted changes, the branch name (if not default),\n"
" a list of tags, and a list of bookmarks."
msgstr ""
-" Печатает Ñводку, опиÑывающую ÑоÑтоÑние хранилища на момент РЕВИЗИЯ,\n"
-" в виде одного или двух Ñ…Ñш-идентификаторов родителÑ, за которым\n"
-" Ñледует \"+\", еÑли Ñ€Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñодержит незафикÑированные\n"
-" изменениÑ, имени ветки (еÑли отлично от default), ÑпиÑка веток,\n"
+" Печатает Ñводку, опиÑывающую ÑоÑтоÑние Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° момент РЕВИЗИЯ,\n"
+" в виде одного или двух хеш-идентификаторов родителÑ, за которым\n"
+" Ñледует \"+\", еÑли Ñ€Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñодержит незакоммиченные\n"
+" изменениÑ, имени ветви (еÑли отлично от default), ÑпиÑка ветвей,\n"
" ÑпиÑка меток и ÑпиÑка закладок."
msgid ""
" When REV is not given, print a summary of the current state of the\n"
" repository."
msgstr ""
-" ЕÑли РЕВИЗИЯ не указана, печатает Ñводку по текущему ÑоÑтоÑнию\n"
-" хранилища."
+" ЕÑли РЕВИЗИЯ не указан, печатает Ñводку по текущему ÑоÑтоÑнию\n"
+" репозиториÑ."
msgid ""
" Specifying a path to a repository root or Mercurial bundle will\n"
" cause lookup to operate on that repository/bundle."
msgstr ""
-" ЕÑли задан путь к хранилищу или комплекту Mercurial, будет\n"
-" работать Ñ Ñтим хранилищем/комплектом."
-
-msgid " - generate a build identifier for the working directory::"
-msgstr " - Ñгенерировать идентификатор Ñборки Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога::"
-
-msgid " hg id --id > build-id.dat"
-msgstr " hg id --id > build-id.dat"
-
-msgid " - find the revision corresponding to a tag::"
-msgstr " - найти ревизию, ÑоответÑтвующую метке::"
-
-msgid " hg id -n -r 1.3"
-msgstr " hg id -n -r 1.3"
-
-msgid " - check the most recent revision of a remote repository::"
-msgstr " - поÑмотреть поÑледнюю ревизию в отдаленном хранилище::"
-
-msgid " hg id -r tip http://selenic.com/hg/"
-msgstr " hg id -r tip http://selenic.com/hg/"
+" ЕÑли задан путь к репозиторию или бандлу Mercurial, будет\n"
+" работать Ñ Ñтим репозиторием/бандлом."
msgid "can't query remote revision number, branch, or tags"
-msgstr "не могу запроÑить номер отдалённой ревизии, ветки или метки"
+msgstr "не могу запроÑить номер удаленной ревизии, ветви или метки"
msgid ""
"directory strip option for patch. This has the same meaning as the "
"corresponding patch option"
msgstr ""
-"наÑтройка strip Ð´Ð»Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð° при применении патча. Значит то же, что и в "
+"наÑтройка strip Ð´Ð»Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸ при применении патча. Значит то же,что и в "
"команде patch"
msgid "PATH"
@@ -12505,7 +8564,7 @@ msgid "skip check for outstanding uncommitted changes"
msgstr "не проверÑÑ‚ÑŒ "
msgid "don't commit, just update the working directory"
-msgstr "не фикÑировать, проÑто обновить рабочий каталог"
+msgstr "не коммитить, проÑто обновить рабочий каталог"
msgid "apply patch without touching the working directory"
msgstr "применить файл, не Ñ‚Ñ€Ð¾Ð³Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‡Ð¸Ð¹ каталог"
@@ -12514,8 +8573,7 @@ msgid "apply patch to the nodes from which it was generated"
msgstr "применить патч к узлам, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… он был Ñгенерирован"
msgid "use any branch information in patch (implied by --exact)"
-msgstr ""
-"иÑпользовать любую информацию о ветках из патча (подразумеваетÑÑ Ð¿Ñ€Ð¸ --exact)"
+msgstr "иÑпользовать любую информацию о ветвÑÑ… из патча (включаетÑÑ --exact)"
msgid "[OPTION]... PATCH..."
msgstr "[ПÐРÐМЕТР]... ПÐТЧ..."
@@ -12527,14 +8585,14 @@ msgid ""
" Import a list of patches and commit them individually (unless\n"
" --no-commit is specified)."
msgstr ""
-" Импортирует ÑпиÑок патчей и фикÑирует их по отдельноÑти (еÑли не\n"
+" Импортирует ÑпиÑок патчей и коммитит их по отдельноÑти (еÑли не\n"
" задан параметр --no-commit)"
msgid ""
" If there are outstanding changes in the working directory, import\n"
" will abort unless given the -f/--force flag."
msgstr ""
-" ЕÑли в рабочем каталоге еÑÑ‚ÑŒ незафикÑированные изменениÑ, импорт\n"
+" ЕÑли в рабочем каталоге еÑÑ‚ÑŒ незакоммиченные изменениÑ, импорт\n"
" отменÑетÑÑ, еÑли не указан флаг -f/--force."
msgid ""
@@ -12547,11 +8605,11 @@ msgid ""
msgstr ""
" Можно импортировать патчи прÑмо из емейла. Работает даже длÑ\n"
" патчей в приложениÑÑ… (чтобы иÑпользовать патч из тела пиÑьма,\n"
-" оно должно иметь тип text/plain или text/x-patch). Заголовки\n"
+" оно должно иметь тип text/plain или text/x-patch).Заголовки\n"
" Ñлектронного пиÑьма From и Subject иÑпользуютÑÑ Ð¿Ð¾ умолчанию\n"
-" в качеÑтве автора фикÑации и ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ„Ð¸ÐºÑации. Ð’Ñе чаÑти\n"
-" тела пиÑьма типа text/plain до первого Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑŽÑ‚ÑÑ\n"
-" к Ñообщению фикÑации."
+" в качеÑтве автора коммита и ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ Ðº коммиту. Ð’Ñе чаÑти\n"
+" тела пиÑьма типа text/plain до первого diff'а добавлÑÑŽÑ‚ÑÑ\n"
+" к комментарию к коммиту."
msgid ""
" If the imported patch was generated by :hg:`export`, user and\n"
@@ -12583,16 +8641,16 @@ msgid ""
" patches will be applied on top of the working directory parent\n"
" revision."
msgstr ""
-" ИÑпользуйте --bypass, чтобы наложить и зафикÑировать патчи прÑмо\n"
-" в хранилище, не Ð·Ð°Ñ‚Ñ€Ð°Ð³Ð¸Ð²Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‡Ð¸Ð¹ каталог. Без --exact патчи\n"
+" ИÑпользуйте --bypass, чтобы применить и закоммитить патчи прÑмо\n"
+" в репозиторий, не Ð·Ð°Ñ‚Ñ€Ð°Ð³Ð¸Ð²Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‡Ð¸Ð¹ каталог. Без --exact патчи\n"
" будут наложены поверх родительÑкой ревизии рабочего каталога."
msgid ""
" With -s/--similarity, hg will attempt to discover renames and\n"
-" copies in the patch in the same way as :hg:`addremove`."
+" copies in the patch in the same way as 'addremove'."
msgstr ""
" ЕÑли указан -s/--similatity, Mercurial попытаетÑÑ Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶Ð¸Ñ‚ÑŒ\n"
-" ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² патче так же, как в :hg:`addremove`."
+" ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² патче так же, как в 'addremove'."
msgid ""
" To read a patch from standard input, use \"-\" as the patch name. If\n"
@@ -12603,88 +8661,54 @@ msgstr ""
" Ñтандартного ввода. ЕÑли указан URL, патч будет загружен оттуда.\n"
" См. :hg:`help dates` о допуÑтимых форматах дат Ð´Ð»Ñ -d/--date."
-msgid " - import a traditional patch from a website and detect renames::"
-msgstr ""
-" - импортировать традиционный патч и веб-Ñайта и найти переименованиÑ::"
-
-msgid " hg import -s 80 http://example.com/bugfix.patch"
-msgstr " hg import -s 80 http://example.com/bugfix.patch"
-
-msgid " - import a changeset from an hgweb server::"
-msgstr " - импортировать набор изменений Ñ Ñервера hgweb::"
-
-msgid " hg import http://www.selenic.com/hg/rev/5ca8c111e9aa"
-msgstr " hg import http://www.selenic.com/hg/rev/5ca8c111e9aa"
-
-msgid " - import all the patches in an Unix-style mbox::"
-msgstr " - импортировать вÑе патчи из файла почтового Ñщика Unix mbox::"
-
-msgid " hg import incoming-patches.mbox"
-msgstr " hg import incoming-patches.mbox"
-
-msgid ""
-" - attempt to exactly restore an exported changeset (not always\n"
-" possible)::"
-msgstr ""
-" - попытатьÑÑ Ñтрого воÑÑтановить ÑкÑпортированный набор изменений (не\n"
-" вÑегда возможно)::"
-
-msgid " hg import --exact proposed-fix.patch"
-msgstr " hg import --exact proposed-fix.patch"
-
-msgid "need at least one patch to import"
-msgstr "Ð´Ð»Ñ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð° требуетÑÑ Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один патч"
-
msgid "cannot use --no-commit with --bypass"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать --no-commit Ñ --bypass"
+msgstr ""
msgid "cannot use --similarity with --bypass"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать --similarityt Ñ --bypass"
+msgstr ""
msgid "patch is damaged or loses information"
msgstr "патч поврежден или в нем недоÑтает данных"
-msgid "applied to working directory"
-msgstr "наложен на рабочий каталог"
+msgid "to working directory"
+msgstr "в рабочий каталог"
msgid "not a Mercurial patch"
msgstr "не патч Mercurial"
-#. i18n: refers to a short changeset id
-#, python-format
-msgid "created %s"
-msgstr "Ñоздан %s"
-
msgid "applying patch from stdin\n"
-msgstr "применÑÑŽ патч Ñо Ñтандартного ввода\n"
+msgstr "применÑÑŽ патч Ñо Ñтандартного вводар\n"
#, python-format
-msgid "%s: no diffs found"
-msgstr "%s: отличий не найдено"
+msgid "applied %s\n"
+msgstr "применен %s\n"
+
+msgid "no diffs found"
+msgstr "отличий не найдено"
msgid "run even if remote repository is unrelated"
-msgstr "работать даже Ñ Ð½ÐµÑвÑзанным хранилищем"
+msgstr "работать даже Ñ Ð½ÐµÑвÑзанным репозиторием"
msgid "show newest record first"
msgstr "показывать новые запиÑи в начале"
msgid "file to store the bundles into"
-msgstr "файл Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿Ð»ÐµÐºÑ‚Ð¾Ð²"
+msgstr "файл Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð±Ð°Ð½Ð´Ð»Ð°"
msgid "a remote changeset intended to be added"
-msgstr "отдалённый набор изменений, предназначенный Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ"
+msgstr "ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð¿Ð¾Ð»Ð°Ð³Ð°ÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ"
msgid "compare bookmarks"
-msgstr "Ñравнить закладки"
+msgstr "Ñранить закладки"
msgid "a specific branch you would like to pull"
-msgstr "ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ°, которую вы хотите затÑнуть"
+msgstr "ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ, которую вы хотите подтÑнуть"
msgid "[-p] [-n] [-M] [-f] [-r REV]... [--bundle FILENAME] [SOURCE]"
msgstr "[-p] [-n] [-M] [-f] [-r РЕВ]... [--bundle ФÐЙЛ] [ИСТОЧÐИК]"
msgid "show new changesets found in source"
-msgstr "показать новые наборы изменений в иÑходном хранилище"
+msgstr "показать новые наборы измений в удаленном репозитории"
msgid ""
" Show new changesets found in the specified path/URL or the default\n"
@@ -12700,7 +8724,7 @@ msgid ""
" For remote repository, using --bundle avoids downloading the\n"
" changesets twice if the incoming is followed by a pull."
msgstr ""
-" Ð”Ð»Ñ Ð¾Ñ‚Ð´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ хранилища иÑпользование --bundle позволÑет\n"
+" Ð”Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð¾Ð³Ð¾ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ñ€Ð¾Ð¸Ñ Ð¸Ñпользование --bundle позволÑет\n"
" избежать повторной загрузки наборов изменений, еÑли за incoming\n"
" Ñледует pull."
@@ -12718,19 +8742,19 @@ msgid "cannot combine --bundle and --subrepos"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ñовмещать --bundle и --subrepos"
msgid "remote doesn't support bookmarks\n"
-msgstr "отдалённое хранилище не поддерживает закладки\n"
+msgstr "удаленный репозиторий не поддерживает закладки\n"
msgid "[-e CMD] [--remotecmd CMD] [DEST]"
msgstr "[-e КОМÐÐДÐ] [--remotecmd КОМÐÐДÐ] [ÐÐЗÐ]"
msgid "create a new repository in the given directory"
-msgstr "Ñоздать новое хранилище в указанном каталоге"
+msgstr "Ñоздать новый репозиторий в указанном каталоге"
msgid ""
" Initialize a new repository in the given directory. If the given\n"
" directory does not exist, it will be created."
msgstr ""
-" Инициализирует новое хранилище в заданном каталоге. ЕÑли\n"
+" Инициализирует новый репозиторий в заданном каталоге. ЕÑли\n"
" указанный каталог не ÑущеÑтвует, он будет Ñоздан."
msgid " If no directory is given, the current directory is used."
@@ -12744,7 +8768,7 @@ msgstr ""
" См. также :hg:`help urls`."
msgid "search the repository as it is in REV"
-msgstr "иÑкать в хранилище, каким оно было на момент РЕВИЗИЯ"
+msgstr "иÑкать в репозитории, каким он был на момент РЕВИЗИЯ"
msgid "end filenames with NUL, for use with xargs"
msgstr "вÑтавлÑÑ‚ÑŒ NUL поÑле имен файлов, Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ xargs"
@@ -12778,7 +8802,7 @@ msgid ""
" If no patterns are given to match, this command prints the names\n"
" of all files under Mercurial control in the working directory."
msgstr ""
-" ЕÑли шаблоны не заданы, печатает имена вÑех файлов, находÑщихÑÑ\n"
+" ЕÑли шаблоны не заданы, печатает Ð¸Ð¼ÐµÐ½Ñ Ð²Ñех файлов, находÑщихÑÑ\n"
" под контролем Mercurial в рабочем каталоге."
msgid ""
@@ -12792,8 +8816,44 @@ msgstr ""
" проблем, когда \"xargs\" Ñчитает отдельные имена Ñ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸\n"
" неÑколькими файлами."
+msgid "only follow the first parent of merge changesets"
+msgstr "Ñледовать только за первым родителем ревизий ÑлиÑниÑ"
+
+msgid "show revisions matching date spec"
+msgstr "показывать ревизии Ñ Ð´Ð°Ñ‚Ð¾Ð¹, ÑоответÑвующие данной"
+
+msgid "show copied files"
+msgstr "показыать Ñкопированные файлы"
+
+msgid "do case-insensitive search for a given text"
+msgstr "выполнить поиÑк данного текÑта, Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€ÑƒÑ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€"
+
+msgid "include revisions where files were removed"
+msgstr "включить ревизии, в которых файлы были удалены"
+
+msgid "show only merges"
+msgstr "показывать только ÑлиÑниÑ"
+
+msgid "revisions committed by user"
+msgstr "только ревизии данного пользователем"
+
+msgid "show only changesets within the given named branch (DEPRECATED)"
+msgstr "показывать только ревизии на данной именованной ветви (УСТÐРЕЛО)"
+
+msgid "show changesets within the given named branch"
+msgstr "показывать наборы изменений на данной именованной ветви"
+
+msgid "do not display revision or any of its ancestors"
+msgstr "не показывать ревизию и вÑех ее предшеÑтвенников"
+
+msgid "show hidden changesets"
+msgstr "показывать Ñкрытые наборы изменений"
+
+msgid "[OPTION]... [FILE]"
+msgstr "[ПÐРÐМЕТР]... [ФÐЙЛ]"
+
msgid "show revision history of entire repository or files"
-msgstr "показать иÑторию ревизий вÑего хранилища или файлов"
+msgstr "показать иÑторию ревизий вÑего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð»Ð¸ файлов"
msgid ""
" Print the revision history of the specified files or the entire\n"
@@ -12801,24 +8861,29 @@ msgid ""
msgstr " Печатает иÑторию ревизий указанных файлов или вÑего проекта."
msgid ""
-" 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."
-msgstr ""
-" ЕÑли не указан диапазон ревизий, по умолчанию иÑпользуетÑÑ\n"
-" ``tip:0``, еÑли не указан --follow, в Ñлучае чего родительÑкаÑ\n"
-" Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога иÑпользуютÑÑ Ð² качеÑтве начальной ревизии."
-
-msgid ""
" File history is shown without following rename or copy history of\n"
" files. Use -f/--follow with a filename to follow history across\n"
" renames and copies. --follow without a filename will only show\n"
-" ancestors or descendants of the starting revision."
+" ancestors or descendants of the starting revision. --follow-first\n"
+" only follows the first parent of merge revisions."
msgstr ""
" ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° показываетÑÑ Ð±ÐµÐ· ÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð° переименованиÑми или\n"
" копированиÑми файлов. ИÑпользуйте -f/-follow, чтобы показать\n"
" иÑторию Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñми и переименованиÑми. --follow без имени\n"
-" файла покажет только предков или потомков начальной ревизии."
+" файла покажет только родительÑкие или дочерние ревизии начальной\n"
+" ревизии. С --follow-first отÑлеживает только первого родителÑ\n"
+" ревизий ÑлиÑниÑ."
+
+msgid ""
+" 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."
+msgstr ""
+" ЕÑли не указан диапазон ревизий, по умолчанию иÑпользуетÑÑ\n"
+" ``tip:0``, еÑли не указан --follow, в Ñлучае чего родительÑкаÑ\n"
+" Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога иÑпользуютÑÑ ÐºÐ°Ðº Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ.\n"
+" Можно также указывать набор ревизий, Ñм. :hg:`help revsets`."
msgid ""
" By default this command prints revision number and changeset id,\n"
@@ -12828,9 +8893,9 @@ msgid ""
msgstr ""
" По умолчанию Ñта команда печатает номера ревизий Ñ Ñ…Ñшами наборов\n"
" изменений, метки, неочевидных родителей, пользователÑ, дату и\n"
-" времÑ, а также Ñообщение каждой фикÑации. ЕÑли указан\n"
-" -v/--verbose, печатаетÑÑ Ñ‚Ð°ÐºÐ¶Ðµ ÑпиÑок измененных файлов и полное\n"
-" Ñообщение каждой фикÑации."
+" времÑ, а также комментарий Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ коммита. ЕÑли указан\n"
+" -v/--verbose, печатетÑÑ Ñ‚Ð°ÐºÐ¶Ðµ ÑпиÑок измененных файлов и полное\n"
+" Ñообщение Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ коммита."
msgid ""
" .. note::\n"
@@ -12840,105 +8905,13 @@ msgid ""
" will appear in files:."
msgstr ""
" .. note::\n"
-" log -p/--patch может генерировать неожиданные Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð´Ð»Ñ\n"
+" log -p/--patch может генерировать неожиданные diff'Ñ‹ длÑ\n"
" ревизий ÑлиÑниÑ, поÑкольку Ñравнение Ñлитой ревизии\n"
" производитÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ñ ÐµÐµ первым родителем. Также в ÑпиÑок\n"
" попадут только файлы, отличные от ОБОИХ родителей:."
-msgid ""
-" .. note::\n"
-" for performance reasons, log FILE may omit duplicate changes\n"
-" made on branches and will not show deletions. To see all\n"
-" changes including duplicates and deletions, use the --removed\n"
-" switch."
-msgstr ""
-" .. note::\n"
-" из Ñоображений производительноÑти, в ФÐЙЛе журнала могут\n"
-" отÑутÑтвовать дублирующиеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ, Ñделанные на ветках,\n"
-" а также там будут отÑутÑтвовать удалениÑ. Чтобы увидеть вÑе\n"
-" изменениÑ, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð´ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ‚Ñ‹ и удалениÑ, иÑпользуйте параметр\n"
-" --removed."
-
-msgid " - changesets with full descriptions and file lists::"
-msgstr " - наборы изменений Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼Ð¸ опиÑаниÑми и ÑпиÑками файлов::"
-
-msgid " hg log -v"
-msgstr " hg log -v"
-
-msgid " - changesets ancestral to the working directory::"
-msgstr " - наборы изменений, ÑвлÑющиеÑÑ Ð¿Ñ€ÐµÐ´ÐºÐ°Ð¼Ð¸ рабочего каталога::"
-
-msgid " hg log -f"
-msgstr " hg log -f"
-
-msgid " - last 10 commits on the current branch::"
-msgstr " - поÑледние 10 наборов изменений на текущей ветке::"
-
-msgid " hg log -l 10 -b ."
-msgstr " hg log -l 10 -b ."
-
-msgid ""
-" - changesets showing all modifications of a file, including removals::"
-msgstr ""
-" - наборы изменений, отражающие вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°, Ñ‚.ч. изъÑÑ‚Ð¸Ñ "
-"из- под ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²ÐµÑ€Ñий::"
-
-msgid " hg log --removed file.c"
-msgstr " hg log --removed file.c"
-
-msgid ""
-" - all changesets that touch a directory, with diffs, excluding merges::"
-msgstr ""
-" - вÑе наборы изменений, затрагивающие каталог, Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñми, "
-"кроме ÑлиÑний::"
-
-msgid " hg log -Mp lib/"
-msgstr " hg log -Mp lib/"
-
-msgid " - all revision numbers that match a keyword::"
-msgstr " - номера вÑех ревизий, Ñодержащие ключевое Ñлово::"
-
-msgid " hg log -k bug --template \"{rev}\\n\""
-msgstr " hg log -k bug --template \"{rev}\\n\""
-
-# BUG
-msgid " - check if a given changeset is included is a tagged release::"
-msgstr ""
-" - проверить, входит ли заданный набор изменений в помеченный релиз::"
-
-msgid " hg log -r \"a21ccf and ancestor(1.9)\""
-msgstr " hg log -r \"a21ccf and ancestor(1.9)\""
-
-msgid " - find all changesets by some user in a date range::"
-msgstr " - найти вÑе наборы изменений Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² диапазоне дат::"
-
-msgid " hg log -k alice -d \"may 2008 to jul 2008\""
-msgstr " hg log -k alice -d \"may 2008 to jul 2008\""
-
-msgid " - summary of all changesets after the last tag::"
-msgstr " - Ñводка Ð´Ð»Ñ Ð²Ñех наборов изменений поÑле поÑледней метки::"
-
-msgid ""
-" hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
-msgstr ""
-" hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
-
-msgid ""
-" See :hg:`help revisions` and :hg:`help revsets` for more about\n"
-" specifying revisions."
-msgstr ""
-" См. :hg:`help revisions` и :hg:`help revsets` Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹\n"
-" информации о задании ревизий."
-
-msgid ""
-" See :hg:`help templates` for more about pre-packaged styles and\n"
-" specifying custom templates."
-msgstr ""
-" Дополнительно о вÑтроенных ÑтилÑÑ… и Ñоздании Ñвоих шаблонов\n"
-" Ñм. :hg:`help templates`."
-
msgid "revision to display"
-msgstr "показать данную ревизию"
+msgstr "показать ревизию"
msgid "list files from all revisions"
msgstr "показать файлы из вÑех ревизий"
@@ -12977,7 +8950,7 @@ msgid "can't specify a revision with --all"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð´Ð½Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ указывать ревизию и --all"
msgid "force a merge with outstanding changes"
-msgstr "Ñлить принудительно, даже еÑли еÑÑ‚ÑŒ незафикÑированные изменениÑ"
+msgstr "Ñлить принудительно, даже еÑли еÑÑ‚ÑŒ незакоммиченные изменениÑ"
msgid "revision to merge"
msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð´Ð»Ñ ÑлиÑниÑ"
@@ -13005,9 +8978,9 @@ msgid ""
" two parents."
msgstr ""
" Файлы, измененные по Ñравнению Ñ Ð»ÑŽÐ±Ñ‹Ð¼ из родителей, помечаютÑÑ\n"
-" как измененные Ð´Ð»Ñ Ñледующей фикÑации, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¾Ð±Ñзательно должна\n"
-" быть Ñделана до того, как будут разрешены поÑледующие обновлениÑ\n"
-" рабочего каталога. У Ñледующей фикÑации будет два родителÑ."
+" как измененные Ð´Ð»Ñ Ñледующего коммита, который обÑзательно должен\n"
+" быть Ñделан до того, как будут разрешены поÑледующие обновлениÑ\n"
+" робочего каталога. У Ñледующего коммита будет два родителÑ."
msgid ""
" ``--tool`` can be used to specify the merge tool used for file\n"
@@ -13015,8 +8988,8 @@ msgid ""
" configuration files. See :hg:`help merge-tools` for options."
msgstr ""
" С помощью ``--tool`` можно задать инÑтрумент Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð².\n"
-" Она заменÑет переменную Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ HGMERGE и наÑтройки конфига.\n"
-" Подробнее Ñм. :hg:`help merge-tools`."
+" Она заменÑет переменную Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ HGEMERGT и наÑтройки конфига.\n"
+" Подробнее Ñм. :hg:``help merge-tool``."
msgid ""
" If no revision is specified, the working directory's parent is a\n"
@@ -13025,7 +8998,7 @@ msgid ""
" explicit revision with which to merge with must be provided."
msgstr ""
" ЕÑли Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ указана, родитель рабочего каталога ÑвлÑетÑÑ\n"
-" головной ревизией и Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ‚ÐºÐ° имеет ровно одну другую голову,\n"
+" головной ревизией и Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ имеет ровно одну другую голову,\n"
" производитÑÑ ÑлиÑние Ñ Ñтой головой по умолчанию. Ð’ противном\n"
" Ñлучае, требуетÑÑ Ñвно указать ревизию Ð´Ð»Ñ ÑлиÑниÑ."
@@ -13039,7 +9012,7 @@ msgid ""
" will check out a clean copy of the original merge parent, losing\n"
" all changes."
msgstr ""
-" ИÑпользуйте :hg:`update -clean .`, чтобы отменить незафикÑированное\n"
+" ИÑпользуйте :hg:`update -clean .`, чтобы отменить незакоммиченное\n"
" ÑлиÑние. Это извлечет чиÑтую копию родителÑ, изначально выбранного\n"
" Ð´Ð»Ñ ÑлиÑниÑ, Ñ Ð¿Ð¾Ñ‚ÐµÑ€ÐµÐ¹ вÑех изменений."
@@ -13050,39 +9023,26 @@ msgstr ""
" При уÑпехе возвращает 0, 1 еÑли еÑÑ‚ÑŒ неразрешенные конфликты.\n"
" "
-msgid ""
-"multiple matching bookmarks to merge - please merge with an explicit rev or "
-"bookmark"
-msgstr ""
-"неÑколько подходÑщих закладок - Ñвно укажите ревизию или закладку Ð´Ð»Ñ ÑлиÑниÑ"
-
-msgid "run 'hg heads' to see all heads"
-msgstr "иÑпользуйте 'hg heads' чтобы поÑмотреть вÑе головы"
-
-msgid ""
-"no matching bookmark to merge - please merge with an explicit rev or bookmark"
-msgstr ""
-"нет подходÑщих закладок - Ñвно укажите ревизию или закладку Ð´Ð»Ñ ÑлиÑниÑ"
-
#, python-format
msgid "branch '%s' has %d heads - please merge with an explicit rev"
-msgstr "ветка '%s' имеет %d голов(Ñ‹) - Ñвно укажите ревизию Ð´Ð»Ñ ÑлиÑниÑ"
+msgstr "ветвь '%s' имеет %d голов(Ñ‹) - Ñвно укажите ревизию Ð´Ð»Ñ ÑлиÑниÑ"
msgid "run 'hg heads .' to see heads"
msgstr "иÑпользуйте 'hg heads .' чтобы поÑмотреть головы"
-msgid "heads are bookmarked - please merge with an explicit rev"
-msgstr "головы помечены закладками - Ñвно укажите ревизию Ð´Ð»Ñ ÑлиÑниÑ"
-
#, python-format
msgid "branch '%s' has one head - please merge with an explicit rev"
-msgstr "ветка '%s' имеет одну голову - Ñвно укажите ревизию Ð´Ð»Ñ ÑлиÑниÑ"
+msgstr "ветвь '%s' имеет одну голову - Ñвно укажите ревизию Ð´Ð»Ñ ÑлиÑниÑ"
-msgid "nothing to merge"
+msgid "run 'hg heads' to see all heads"
+msgstr "иÑпользуйте 'hg heads' чтобы поÑмотреть вÑе головы"
+
+msgid "there is nothing to merge"
msgstr "нечего Ñливать"
-msgid "use 'hg update' instead"
-msgstr "иÑпользуйте 'hg update'"
+#, python-format
+msgid "%s - use \"hg update\" instead"
+msgstr "%s - иÑпользуйте \"hg update\""
msgid "working directory not at a head revision"
msgstr "рабочий каталог не на головной ревизии"
@@ -13091,28 +9051,28 @@ msgid "use 'hg update' or merge with an explicit revision"
msgstr "иÑпользуйте 'hg update' или Ñвно укажите ревизию"
msgid "a changeset intended to be included in the destination"
-msgstr "набор изменений, предназначенный Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² хранилище назначениÑ"
+msgstr "набора изменений Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² удаленный репозиторий"
msgid "a specific branch you would like to push"
-msgstr "одна ветка, которую вы хотите втолкнуть"
+msgstr "одна ветвь, которую вы хотите втолкнуть"
msgid "[-M] [-p] [-n] [-f] [-r REV]... [DEST]"
msgstr "[-M] [-p] [-n] [-f] [-r РЕВИЗИЯ]... [ÐÐЗÐ]"
msgid "show changesets not found in the destination"
-msgstr "показать наборы изменений, отÑутÑтвующие в другом хранилище"
+msgstr "показать наборы изменений, отÑутвующие в другом репозитории"
msgid ""
" Show changesets not found in the specified destination repository\n"
" or the default push location. These are the changesets that would\n"
" be pushed if a push was requested."
msgstr ""
-" Показывает наборы изменений, не найденные в указанном отдалённом\n"
-" хранилище или по пути по умолчанию Ð´Ð»Ñ push. Эти наборы\n"
+" Показыает наборы изменений, не найденные в указанном удаленном\n"
+" репозитории или по пути по умолчанию Ð´Ð»Ñ push. Эти наборы\n"
" изменений были бы переданы командой push."
msgid " See pull for details of valid destination formats."
-msgstr " Подробней о форматах пути хранилища Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñм. pull"
+msgstr " Подробней о форматах пути Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñм. pull"
msgid ""
" Returns 0 if there are outgoing changes, 1 otherwise.\n"
@@ -13154,13 +9114,13 @@ msgid "[NAME]"
msgstr "[ИМЯ]"
msgid "show aliases for remote repositories"
-msgstr "показать пÑевдонимы отдалённых хранилищ"
+msgstr "показать пÑевдонимы удаленных репозиториев"
msgid ""
" Show definition of symbolic path name NAME. If no name is given,\n"
" show definition of all available names."
msgstr ""
-" Показывает полный путь Ð´Ð»Ñ Ñокращенного имени хранилища ИМЯ.\n"
+" Показывает полный путь Ð´Ð»Ñ Ñокращенного имени Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð˜ÐœÐ¯.\n"
" ЕÑли Ð¸Ð¼Ñ Ð½Ðµ задано, показывает полные пути Ð´Ð»Ñ Ð²Ñех извеÑтных\n"
" пÑевдонимов."
@@ -13177,9 +9137,9 @@ msgid ""
" configuration file and in ``/etc/mercurial/hgrc``. If run inside a\n"
" repository, ``.hg/hgrc`` is used, too."
msgstr ""
-" ПÑевдонимы путей хранилищ определены в Ñекции [path] вашего \n"
+" ПÑевдонимы путей репозиториев определены в Ñекции [path] вашего \n"
" конфига и в ``etc/mercurial/hgrc``. ЕÑли запуÑкаетÑÑ Ð¸Ð· каталога,\n"
-" Ñодержащего хранилище, иÑпользуетÑÑ Ñ‚Ð°ÐºÐ¶Ðµ ``.hg/hgrc``."
+" Ñодержащего репозиторий, иÑпользуетÑÑ Ñ‚Ð°ÐºÐ¶Ðµ ``.hg/hgrc``."
msgid ""
" The path names ``default`` and ``default-push`` have a special\n"
@@ -13210,72 +9170,6 @@ msgstr " Подробнее Ñм. :hg:`help urls`."
msgid "not found!\n"
msgstr "не найден!\n"
-msgid "set changeset phase to public"
-msgstr "уÑтановить набор изменений в публичную фазу"
-
-msgid "set changeset phase to draft"
-msgstr "уÑтановить набор изменений в черновую фазу"
-
-msgid "set changeset phase to secret"
-msgstr "уÑтановить набор изменений в Ñекретную фазу"
-
-msgid "allow to move boundary backward"
-msgstr "разрешить перемещение границы назад"
-
-msgid "target revision"
-msgstr "Ñ†ÐµÐ»ÐµÐ²Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ"
-
-msgid "[-p|-d|-s] [-f] [-r] REV..."
-msgstr "[-p|-d|-s] [-f] [-r] РЕВИЗИЯ..."
-
-msgid "set or show the current phase name"
-msgstr "задать или показать текущую фазу"
-
-msgid " With no argument, show the phase name of specified revisions."
-msgstr " ЕÑли аргументы не заданы, показывает фазу указанных ревизий."
-
-msgid ""
-" With one of -p/--public, -d/--draft or -s/--secret, change the\n"
-" phase value of the specified revisions."
-msgstr ""
-" ЕÑли задан один из -p/--public, -d/--draft или -s/--secret, то изменÑет\n"
-" фазу указанных ревизий."
-
-msgid ""
-" Unless -f/--force is specified, :hg:`phase` won't move changeset from a\n"
-" lower phase to an higher phase. Phases are ordered as follows::"
-msgstr ""
-" ЕÑли не указан -f/--force, то :hg:`phase` не перемещает набор изменений\n"
-" из меньшей фазы в большую. ПорÑдок фаз такой::"
-
-msgid " public < draft < secret"
-msgstr " Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð°Ñ < Ñ‡ÐµÑ€Ð½Ð¾Ð²Ð°Ñ < ÑекретнаÑ"
-
-msgid ""
-" Return 0 on success, 1 if no phases were changed or some could not\n"
-" be changed.\n"
-" "
-msgstr ""
-" Возвращает 0 при уÑпехе, 1 еÑли никакие фазы не были изменены или\n"
-" некоторые не удалоÑÑŒ изменить.\n"
-" "
-
-msgid "only one phase can be specified"
-msgstr "можно указать только одну фазу"
-
-#, python-format
-msgid "cannot move %i changesets to a more permissive phase, use --force\n"
-msgstr ""
-"не могу поменÑÑ‚ÑŒ фазу Ð´Ð»Ñ %d наборов изменений на менее Ñтрогую,\n"
-"иÑпользуйте --force\n"
-
-#, python-format
-msgid "phase changed for %i changesets\n"
-msgstr "фаза изменена Ð´Ð»Ñ %i наборов изменений\n"
-
-msgid "no phases changed\n"
-msgstr "никакие фазы не изменены\n"
-
#, python-format
msgid "not updating: %s\n"
msgstr "не обновлено: %s\n"
@@ -13295,25 +9189,25 @@ msgid "(run 'hg update' to get a working copy)\n"
msgstr "(иÑпользуйте 'hg update' чтобы получить рабочую копию)\n"
msgid "update to new branch head if changesets were pulled"
-msgstr "обновитьÑÑ Ð´Ð¾ новой головы ветки, еÑли наборы изменений были затÑнуты"
+msgstr "обновитьÑÑ Ð´Ð¾ новой головы ветви еÑли наборы изменений были подтÑнуты"
msgid "run even when remote repository is unrelated"
-msgstr "работать даже на неÑвÑзанном хранилище"
+msgstr "работать даже на неÑвÑзанном репозитории"
msgid "BOOKMARK"
msgstr "ЗÐКЛÐДКÐ"
msgid "bookmark to pull"
-msgstr "закладка, которую Ñледует затÑнуть"
+msgstr "подтÑнуть закладку"
msgid "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]"
msgstr "[-u] [-f] [-r РЕВ]... [-e КОМ-ДÐ] [--remotecmd КОМ-ДÐ] [ИСТОЧÐИК]"
msgid "pull changes from the specified source"
-msgstr "затÑнуть Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· указанного иÑточника"
+msgstr "подтÑнуть Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· указанного иÑточника"
msgid " Pull changes from a remote repository to a local one."
-msgstr " Скачивает Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· отдалённого хранилища в локальное."
+msgstr " ПодтÑгивает Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· удаленного Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² локальный."
msgid ""
" This finds all changes from the repository at the specified path\n"
@@ -13321,9 +9215,9 @@ msgid ""
" -R is specified). By default, this does not update the copy of the\n"
" project in the working directory."
msgstr ""
-" Ðаходит вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² хранилище по указанному пути или URL и\n"
-" добавлÑет их в локальное хранилище (по умолчанию текущее, еÑли\n"
-" не указано другое через -R). По умолчанию Ñ€Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ\n"
+" Ðаходит вÑе Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ Ð² репозитории по указанному пути или URL и\n"
+" добавлÑет их в локальный репозиторий (по умолчанию текущий, еÑли\n"
+" не указан другой через -R). По умолчанию Ñ€Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ\n"
" обновлÑетÑÑ."
msgid ""
@@ -13334,7 +9228,7 @@ msgid ""
msgstr ""
" ИÑпользуйте :hg:`incoming` чтобы поÑмотреть, что было бы добавлено\n"
" командой pull, вызванной в тот же момент времени. ЕÑли потом вы\n"
-" вы решите добавить Ñти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² хранилище, Ñледует\n"
+" вы решите добавить Ñти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² репозиторий, Ñледует\n"
" иÑпользовать :hg:`pull -r X`, где ``X`` - поÑледнÑÑ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ,\n"
" Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ :hg:`incoming`."
@@ -13342,24 +9236,30 @@ msgid ""
" If SOURCE is omitted, the 'default' path will be used.\n"
" See :hg:`help urls` for more information."
msgstr ""
-" ЕÑли ИСТОЧÐИК не задан, будет иÑпользован путь 'default'.\n"
+" ЕÑли ИСТОЧÐИК не задан, будет иÑпользова путь 'default'.\n"
" Подробнее Ñм. :hg:`help urls`."
msgid ""
" Returns 0 on success, 1 if an update had unresolved files.\n"
" "
msgstr ""
-" При уÑпехе возвращает 0, 1 еÑли при обновлении оÑталиÑÑŒ конфликты "
-"ÑлиÑниÑ.\n"
+" Возвращает 0 при уÑпехе, 1 еÑли еÑÑ‚ÑŒ конфликты при обновлении.\n"
" "
#, python-format
msgid "remote bookmark %s not found!"
-msgstr "закладка %s не найдена в отдалённом хранилище"
+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"
+msgstr "импорируетÑÑ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ° %s\n"
msgid "force push"
msgstr "протолкнуть принудительно"
@@ -13368,19 +9268,19 @@ msgid "bookmark to push"
msgstr "протолкнуть закладку"
msgid "allow pushing a new branch"
-msgstr "разрешить Ñоздать новую ветку в отдалённом хранилище"
+msgstr "разрешить Ñоздать новую ветвь в удаленном репозитории"
msgid "[-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]"
msgstr "[-f] [-r РЕВ]... [-e КОМ-ДÐ] [--remotecmd КОМ-ДÐ] [ÐÐЗÐ]"
msgid "push changes to the specified destination"
-msgstr "передать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² отдалённое хранилище"
+msgstr "передать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² удаленный репозиторий"
msgid ""
" Push changesets from the local repository to the specified\n"
" destination."
msgstr ""
-" \"Проталкивает\" Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· локального хранилища в отдалённое.\n"
+" \"Проталкивает\" Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· локального Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² удаленный.\n"
" "
msgid ""
@@ -13388,7 +9288,7 @@ msgid ""
" in the destination repository from the current one."
msgstr ""
" Эта Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñимметрична pull: она имеет такой же Ñффект, как\n"
-" еÑли бы в отдалённом хранилища был выполнен pull из текущего."
+" еÑли бы в удаленном Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð±Ñ‹Ð» выполнен pull из текущего."
msgid ""
" By default, push will not allow creation of new heads at the\n"
@@ -13396,10 +9296,10 @@ msgid ""
" to use. In this situation, it is recommended to pull and merge\n"
" before pushing."
msgstr ""
-" По умолчанию push не даÑÑ‚ Ñоздать новые \"головы\" в отдалённом\n"
-" хранилище, потому что в Ñтом Ñлучае было бы не ÑÑно, какую\n"
+" По умолчанию push не даÑÑ‚ Ñоздать новые \"головы\" в удаленном\n"
+" репозитории, потому что в Ñтом Ñлучае было бы не ÑÑно, какую\n"
" голову иÑпользовать. Ð’ такой Ñитуации рекомендуетÑÑ\n"
-" затÑнуть и Ñлить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ´ проталкиванием."
+" подтÑнуть (pull) и Ñлить (merge) Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ´ push'ем."
msgid ""
" Use --new-branch if you want to allow push to create a new named\n"
@@ -13407,32 +9307,23 @@ msgid ""
" only create a new branch without forcing other changes."
msgstr ""
" ИÑпользуйте --new-branch, еÑли вы хотите разрешить Ñоздание\n"
-" именованной ветки, которой нет в отдалённом хранилище. Это\n"
-" позволÑет проÑто Ñоздать новую ветку в отдалённом хранилище\n"
-" (прочие проверки, приводÑщие к отмене проталкиваниÑ, в отличие\n"
-" от pull --force, будут проводитьÑÑ)."
+" именованной ветви, которой нет в удаленном репозитории. Это\n"
+" позволÑет проÑто Ñоздать новую ветвь в удаленном репозитории,\n"
+" не Ð¿Ñ€Ð¾Ñ‚Ð°Ð»ÐºÐ¸Ð²Ð°Ñ Ð¾Ñтальные изменениÑ."
msgid ""
" Use -f/--force to override the default behavior and push all\n"
" changesets on all branches."
msgstr ""
" ИÑпользуйте -f/--force чтобы игнорировать поведение по\n"
-" умолчанию и протолкнуть вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð° вÑех ветках."
+" умолчанию и протолкнуть вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð° вÑех ветвÑÑ…."
msgid ""
" If -r/--rev is used, the specified revision and all its ancestors\n"
" will be pushed to the remote repository."
msgstr ""
" ЕÑли указан -r/--rev, то Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¸ вÑе ее потомки\n"
-" будут переданы в отдалённое хранилище."
-
-msgid ""
-" If -B/--bookmark is used, the specified bookmarked revision, its\n"
-" ancestors, and the bookmark will be pushed to the remote\n"
-" repository."
-msgstr ""
-" ЕÑли указан -B/--bookmark, то ревизиÑ, Ð¿Ð¾Ð¼ÐµÑ‡ÐµÐ½Ð½Ð°Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ закладкой,\n"
-" ее предки и Ñама закладка будут протолкнуты в отдалённое хранилище."
+" будут переданы в удаленный репозиторий."
msgid ""
" Please see :hg:`help urls` for important details about ``ssh://``\n"
@@ -13445,13 +9336,12 @@ msgid ""
" Returns 0 if push was successful, 1 if nothing to push.\n"
" "
msgstr ""
-" Возвращает 0 в Ñлучае уÑпешного проталкиваниÑ, 1 еÑли нечего\n"
-" проталкивать.\n"
+" Возвращает 0 в Ñлучае уÑпехе, 1 еÑли нет изменений Ð´Ð»Ñ push'а.\n"
" "
#, python-format
msgid "pushing to %s\n"
-msgstr "проталкиваем в %s\n"
+msgstr "проталкиваю в %s\n"
#, python-format
msgid "exporting bookmark %s\n"
@@ -13459,11 +9349,11 @@ msgstr "ÑкÑпортируетÑÑ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ° %s\n"
#, python-format
msgid "deleting remote bookmark %s\n"
-msgstr "удалÑетÑÑ Ð¾Ñ‚Ð´Ð°Ð»Ñ‘Ð½Ð½Ð°Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ° %s\n"
+msgstr "удалÑетÑÑ ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð°Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ° %s\n"
#, python-format
msgid "bookmark %s does not exist on the local or remote repository!\n"
-msgstr "закладка %s не ÑущеÑтвует в локальном или отдалённом хранилище!\n"
+msgstr "закладка %s не ÑущеÑтвует в локальном или удаленном репозитории!\n"
#, python-format
msgid "updating bookmark %s failed!\n"
@@ -13473,15 +9363,14 @@ msgid "roll back an interrupted transaction"
msgstr "откатить прерванную транзакцию"
msgid " Recover from an interrupted commit or pull."
-msgstr ""
-" ВоÑÑтанавливает хранилище поÑле прерванной фикÑации или затÑгиваниÑ"
+msgstr " ВоÑÑтанавливает репозиторий поÑле прерванного push или pull"
msgid ""
" This command tries to fix the repository status after an\n"
" interrupted operation. It should only be necessary when Mercurial\n"
" suggests it."
msgstr ""
-" Эта команда пытаетÑÑ Ð¸Ñправить ÑоÑтоÑние хранилища поÑле\n"
+" Эта команда пытаетÑÑ Ð¸Ñправить ÑоÑтоÑние Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¿Ð¾Ñле\n"
" прерванной операции. Это должно быть необходимо только еÑли\n"
" Mercurial Ñам предлагает Ñто Ñделать."
@@ -13497,83 +9386,77 @@ msgstr "удалить отÑутÑтвующие файлы"
msgid "remove (and delete) file even if added or modified"
msgstr ""
-"удалÑÑ‚ÑŒ файлы из каталога и хранилища даже еÑли они были добавлены или "
+"удалÑÑ‚ÑŒ файлы из каталога и Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð´Ð°Ð¶Ðµ еÑли они были добавлены или "
"изменены"
msgid "remove the specified files on the next commit"
-msgstr "удалить указанные файлы при Ñледующей фикÑации"
+msgstr "удалить указанные файлы при Ñледующем коммите"
-msgid " Schedule the indicated files for removal from the current branch."
-msgstr " Помечает заданные файлы Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· текущей ветки."
+msgid " Schedule the indicated files for removal from the repository."
+msgstr " Помечает заданные файлы Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· репозиториÑ."
msgid ""
-" This command schedules the files to be removed at the next commit.\n"
-" To undo a remove before that, see :hg:`revert`. To undo added\n"
-" files, see :hg:`forget`."
-msgstr ""
-" Эта команда помечает файлы Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ Ñледующей фикÑации.\n"
-" Чтобы отменить удаление до фикÑации, Ñм. :hg:`revert`. Чтобы отменить\n"
-" добавление файлов, Ñм. :hg:`forget`."
+" This only removes files from the current branch, not from the\n"
+" entire project history. -A/--after can be used to remove only\n"
+" files that have already been deleted, -f/--force can be used to\n"
+" force deletion, and -Af can be used to remove files from the next\n"
+" revision without deleting them from the working directory."
+msgstr ""
+" УдалÑÑŽÑ‚ÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ файлы Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ ветки, а не из вÑей иÑтории\n"
+" проекта. ИÑпользуйте -A/--after, чтобы удалить из репозиториÑ\n"
+" файлы, которые были удалены из рабочего каталога. -f/--force\n"
+" удалÑет файлы принудительно, -Af можно иÑпользовать чтобы\n"
+" удалить файлы из Ñледующей ревизии, не удалÑÑ Ð¸Ñ… из рабочего\n"
+" каталога."
msgid ""
-" -A/--after can be used to remove only files that have already\n"
-" been deleted, -f/--force can be used to force deletion, and -Af\n"
-" can be used to remove files from the next revision without\n"
-" deleting them from the working directory."
+" The following table details the behavior of remove for different\n"
+" file states (columns) and option combinations (rows). The file\n"
+" states are Added [A], Clean [C], Modified [M] and Missing [!] (as\n"
+" reported by :hg:`status`). The actions are Warn, Remove (from\n"
+" branch) and Delete (from disk)::"
msgstr ""
-" ИÑпользуйте -A/--after, чтобы удалить из хранилища файлы,\n"
-" которые были удалены из рабочего каталога. -f/--force\n"
-" удалÑет файлы принудительно, -Af можно иÑпользовать чтобы\n"
-" удалить файлы из Ñледующей ревизии, не удалÑÑ Ð¸Ñ… из рабочего\n"
-" каталога."
+" ÐŸÑ€Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ð°Ñ Ð½Ð¸Ð¶Ðµ таблица поÑÑнÑет поведение команды remove длÑ\n"
+" разных ÑоÑтоÑний файла (Ñтолбцы) и комбинаций параметров (Ñтроки).\n"
+" СоÑтоÑÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² (как их показывает :hg:`status`):\n"
+" Добавлен (Added) [A], Без изменений (Clean) [C],\n"
+" Изменен (Modified) [M], ОтÑутÑтвует (Missing) [!]. ДейÑтвиÑ:\n"
+" Предупредить (Warn - W), удалить из ветви (Remove - R), удалить\n"
+" из каталога (Delete - D)."
+# ÑбиваетÑÑ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ!!!
+#, fuzzy
msgid ""
-" The following table details the behavior of remove for different\n"
-" file states (columns) and option combinations (rows). The file\n"
-" states are Added [A], Clean [C], Modified [M] and Missing [!]\n"
-" (as reported by :hg:`status`). The actions are Warn, Remove\n"
-" (from branch) and Delete (from disk):"
+" A C M !\n"
+" none W RD W R\n"
+" -f R RD RD R\n"
+" -A W W W R\n"
+" -Af R R R R"
msgstr ""
-" ÐŸÑ€Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ð°Ñ Ð½Ð¸Ð¶Ðµ таблица поÑÑнÑет поведение команды remove длÑ\n"
-" разных ÑоÑтоÑний файла (Ñтолбцы) и комбинаций параметров (Ñтроки).\n"
-" СоÑтоÑÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² (как их показывает :hg:`status`):\n"
-" Добавлен (Added) [A], Без изменений (Clean) [C],\n"
-" Изменен (Modified) [M], ОтÑутÑтвует (Missing) [!]. ДейÑтвиÑ:\n"
-" Предупредить (Warn - W), удалить из ветки (Remove - R), удалить\n"
-" Ñ Ð´Ð¸Ñка (Delete - D)."
+" A C M !\n"
+" нет W RD W R\n"
+" -f R RD RD R\n"
+" -A W W W R\n"
+" -Af R R R R"
msgid ""
-" ======= == == == ==\n"
-" A C M !\n"
-" ======= == == == ==\n"
-" none W RD W R\n"
-" -f R RD RD R\n"
-" -A W W W R\n"
-" -Af R R R R\n"
-" ======= == == == =="
+" Note that remove never deletes files in Added [A] state from the\n"
+" working directory, not even if option --force is specified."
msgstr ""
-" ======= == == == ==\n"
-" A C M !\n"
-" ======= == == == ==\n"
-" нет W RD W R\n"
-" -f R RD RD R\n"
-" -A W W W R\n"
-" -Af R R R R\n"
-" ======= == == == =="
+" Обратите внимание, что remove никогда не удалÑет из рабочего\n"
+" каталога файлы Ñ ÑоÑтоÑнием Added [A], даже c опцией --force."
msgid ""
-" Note that remove never deletes files in Added [A] state from the\n"
-" working directory, not even if option --force is specified."
+" This command schedules the files to be removed at the next commit.\n"
+" To undo a remove before that, see :hg:`revert`."
msgstr ""
-" Обратите внимание, что remove никогда не удалÑет из рабочего\n"
-" каталога файлы Ñ ÑоÑтоÑнием Added [A], даже c параметром --force."
+" Эта команда помечает файлы Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ Ñледующем коммите.\n"
+" Чтобы отменить удаление до коммита, Ñм. :hg:`revert`."
msgid ""
" Returns 0 on success, 1 if any warnings encountered.\n"
" "
-msgstr ""
-" При уÑпехе возвращает 0, 1 еÑли были предупреждениÑ.\n"
-" "
+msgstr " При уÑпехе возвращает 0, 1 еÑли были придупреждениÑ."
#, python-format
msgid "not removing %s: file is untracked\n"
@@ -13588,10 +9471,10 @@ msgid "not removing %s: file is modified (use -f to force removal)\n"
msgstr "%s не удален: файл изменен (-f - удалить принудительно)\n"
#, python-format
-msgid "not removing %s: file has been marked for add (use forget to undo)\n"
+msgid ""
+"not removing %s: file has been marked for add (use -f to force removal)\n"
msgstr ""
-"%s не удален: файл был помечен Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ (иÑпользуйте forget Ð´Ð»Ñ "
-"отмены)\n"
+"%s не удален: файл был помечен Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ (-f - удалить принудительно)\n"
msgid "record a rename that has already occurred"
msgstr "запиÑать переименование, которое уже было Ñделано"
@@ -13616,14 +9499,14 @@ msgid ""
" This command takes effect at the next commit. To undo a rename\n"
" before that, see :hg:`revert`."
msgstr ""
-" ДейÑтвие команды закреплÑетÑÑ Ð¿Ñ€Ð¸ Ñледующей фикÑации. чтобы отменить\n"
-" переименование, Ñм. :hg:`revert`."
+" Эффект команды закреплÑетÑÑ Ð¿Ñ€Ð¸ Ñледующем коммите. чтобы отменить\n"
+" переимнование, Ñм. :hg:`revert`."
msgid "select all unresolved files"
-msgstr "работать Ñо вÑеми требующими ÑлиÑÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸"
+msgstr "работать Ñо вÑеми требущими ÑлиÑÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸"
msgid "list state of files needing merge"
-msgstr "показать ÑоÑтоÑÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð², требующих ÑлиÑниÑ"
+msgstr "показать ÑоÑтоÑÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð², трубующих ÑлиÑниÑ"
msgid "mark files as resolved"
msgstr "пометить файлы как корректно Ñлитый"
@@ -13643,16 +9526,14 @@ msgid ""
" setting, or a command-line merge tool like ``diff3``. The resolve\n"
" command is used to manage the files involved in a merge, after\n"
" :hg:`merge` has been run, and before :hg:`commit` is run (i.e. the\n"
-" working directory must have two parents). See :hg:`help\n"
-" merge-tools` for information on configuring merge tools."
+" working directory must have two parents)."
msgstr ""
" Ðеразрешенные конфликтами чаÑто ÑвлÑÑŽÑ‚ÑÑ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð¼ неинтерактивного\n"
" ÑлиÑÐ½Ð¸Ñ Ñ Ð¸Ñпользованием ``internal:merge``, или программы ÑлиÑниÑ\n"
-" Ñ Ñ‚ÐµÐºÑтовым интерфейÑом, вроде ``diff3``. Команда resolve может\n"
+" Ñ Ñ‚ÐµÐºÑтовым интерфеÑом, вроде ``diff3``. Команда resolve может\n"
" быть иÑпользована Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸, учаÑтвующими в ÑлиÑнии,\n"
" поÑле того, как была запущена :hg:`merge`, но до :hg:`commit`\n"
-" (т.е. рабочий каталог должен иметь двух \"родителей\"). См. :hg:`help\n"
-" merge-tools` — Ñправку о наÑтройке ÑредÑтв ÑлиÑниÑ."
+" (т.е. рабочий каталог должен иметь двух \"родителей\")."
msgid " The resolve command can be used in the following ways:"
msgstr " Команда resolve может иÑпользоватьÑÑ Ñледующими ÑпоÑобами:"
@@ -13662,21 +9543,16 @@ msgid ""
"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 select all unresolved files. ``--tool`` can be used to specify\n"
+" 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. Previous file\n"
-" contents are saved with a ``.orig`` suffix."
-msgstr ""
-" - :hg:`resolve [--tool ПРОГРÐММÐ] ФÐЙЛ...`: попытатьÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚ÑŒ "
-"ÑлиÑние\n"
-" файлов, отменÑÑ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ðµ попытки. Повторное ÑлиÑние не проводитÑÑ\n"
-" Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð², помеченных как разрешенные. ИÑпользуйте ``--all/-a``,\n"
-" чтобы повторить ÑлиÑние Ð´Ð»Ñ Ð²Ñех неразрешенных файлов. Параметр\n"
-" ``--tool`` может быть иÑпользован, чтобы задать программу Ð´Ð»Ñ "
-"ÑлиÑниÑ.\n"
-" Он замещает переменную Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ HGMERGE и конфиг. Предыдущее "
-"Ñодержимое\n"
-" файла ÑохранÑетÑÑ Ñ Ñ€Ð°Ñширением ``.orig``."
+" environment variable and your configuration files."
+msgstr ""
+" - :hg:`resolve [--tool ПРОГРÐММÐ] ФÐЙЛ...`: попытатьÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚ÑŒÑлиÑние\n"
+" файлов, отменÑÑ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ðµ попытки. Повторное ÑлиÑние не проводитÑÑ\n"
+" Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð², помеченных как разрешенные. ИÑпользуйте ``--all/-a``,\n"
+" чтобы повторить ÑлиÑние Ð´Ð»Ñ Ð²Ñех неразрешенных файлов. Параметр\n"
+" ``--tool`` может быть иÑпользован, чтобы задать программу Ð´Ð»Ñ ÑлиÑниÑ.\n"
+" Он замещает переменную Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ HGMERGE и конфиг."
msgid ""
" - :hg:`resolve -m [FILE]`: mark a file as having been resolved\n"
@@ -13708,9 +9584,9 @@ msgid ""
" merge conflicts. You must use :hg:`resolve -m ...` before you can\n"
" commit after a conflicting merge."
msgstr ""
-" Обратите внимание, что Mercurial не даÑÑ‚ вам зафикÑировать файлы\n"
+" Обратите внимание, что Mercurial не даÑÑ‚ вам закоммитить файлы\n"
" Ñ Ð½ÐµÑ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð½Ñ‹Ð¼Ð¸ конфликтами ÑлиÑниÑ. Ðеобходимо иÑпользовать\n"
-" :hg:`resolve -m` перед фикÑацией поÑле ÑлиÑÐ½Ð¸Ñ Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð°Ð¼Ð¸."
+" :hg:`resolve -m` перед коммитом поÑле ÑлиÑÐ½Ð¸Ñ Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð°Ð¼Ð¸."
msgid ""
" Returns 0 on success, 1 if any files fail a resolve attempt.\n"
@@ -13735,42 +9611,38 @@ msgid "tipmost revision matching date"
msgstr "макÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ позднее ДÐТЫ"
msgid "revert to the specified revision"
-msgstr "вернуть ÑоÑтоÑние на момент указанной ревизии"
+msgstr "вернуть ÑоÑÑ‚Ñние на момент указанной ревизию"
+
+msgid "do not save backup copies of files"
+msgstr "не делать бÑкап файлов"
msgid "[OPTION]... [-r REV] [NAME]..."
msgstr "[ПÐРÐМЕТР]... [-r РЕВИЗИЯ] [ИМЯ]..."
msgid "restore files to their checkout state"
-msgstr "воÑÑтановить файлы до их ÑоÑтоÑÐ½Ð¸Ñ Ð² хранилище"
-
-# does this require a translation?
-msgid " .. note::"
-msgstr " .. примечание::"
+msgstr "воÑÑтановить файлы до их ÑоÑтоÑÐ½Ð¸Ñ Ð² репозитории"
msgid ""
+" .. note::\n"
" To check out earlier revisions, you should use :hg:`update REV`.\n"
-" To cancel an uncommitted merge (and lose your changes), use\n"
-" :hg:`update --clean .`."
+" To cancel a merge (and lose your changes), use :hg:`update --clean .`."
msgstr ""
+" .. note::\n"
" Чтобы извлечь более ранние ревизии, необходимо иÑпользовать\n"
-" :hg:`update РЕВИЗИЯ`. Чтобы отменить ÑлиÑние (Ñ Ð¿Ð¾Ñ‚ÐµÑ€ÐµÐ¹ Ñделанных\n"
+" :hg:`update РЕВИЗИЯ`. Чтобы отменить ÑлиÑние (Ñ Ð¿Ð¾Ñ‚ÐµÑ€ÐµÐ¹ Ñделанных)\n"
" изменений), иÑпользуйте :hg:`update --clean .`."
msgid ""
" With no revision specified, revert the specified files or directories\n"
-" to the contents they had in the parent of the working directory.\n"
+" to the state they had in the first parent of the working directory.\n"
" This restores the contents of files to an unmodified\n"
-" state and unschedules adds, removes, copies, and renames. If the\n"
-" working directory has two parents, you must explicitly specify a\n"
-" revision."
+" state and unschedules adds, removes, copies, and renames."
msgstr ""
" ЕÑли Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ задана, вернуть указанные файлы и каталоги к\n"
" ÑоÑтоÑнию, в котором они Ñохранены в родительÑкой ревизии\n"
" рабочего каталога. Это воÑÑтанавливает Ñодержимое указанных\n"
" файлов до неизмененного ÑоÑтоÑÐ½Ð¸Ñ Ð¸ отменÑет запланированные\n"
-" добавлениÑ, удалениÑ, ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð².\n"
-" ЕÑли рабочий каталог имеет двух родителей, необходимо Ñвно\n"
-" указать ревизию."
+" добавлениÑ, удалениÑ, ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²."
msgid ""
" Using the -r/--rev or -d/--date options, revert the given files or\n"
@@ -13782,7 +9654,7 @@ msgid ""
msgstr ""
" С параметром -r/--rev или -d/--date воÑÑтанавливает Ñодержимое \n"
" заданных файлов и каталогов до указанной ревизии. Т.к. revert \n"
-" изменÑет родителей рабочего каталога, Ñти файлы будут показыватьÑÑ\n"
+" изменÑет родителей рабочего каталога, Ñти файлы будут показыатьÑÑ\n"
" как измененные. Это может быть полезным чтобы \"откатить\" вÑе или\n"
" некоторые предшеÑтвующие изменениÑ. См. также backout."
@@ -13797,12 +9669,6 @@ msgstr ""
msgid "you can't specify a revision and a date"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ одновременно дату и ревизию"
-msgid "uncommitted merge with no revision specified"
-msgstr "имеетÑÑ Ð½ÐµÐ·Ð°Ñ„Ð¸ÐºÑированное ÑлиÑние, и номер ревизии не указан"
-
-msgid "use \"hg update\" or see \"hg help revert\""
-msgstr "иÑпользуйте \"hg update\", или Ñм. \"hg help revert\""
-
msgid "no files or directories specified"
msgstr "не указаны файлы или каталоги"
@@ -13810,16 +9676,12 @@ msgid ""
"uncommitted merge, use --all to discard all changes, or 'hg update -C .' to "
"abort the merge"
msgstr ""
-"незафикÑированное ÑлиÑние, иÑпользуйте --all чтобы ÑброÑить вÑе изменениÑ\n"
-"или 'hg update -C .' чтобы отменить ÑлиÑние."
#, python-format
msgid ""
"uncommitted changes, use --all to discard all changes, or 'hg update %s' to "
"update"
msgstr ""
-"незафикÑированные изменениÑ, иÑпользуйте --all чтобы ÑброÑить вÑе изменениÑ\n"
-"или 'hg update %s' чтобы обновитьÑÑ."
#, python-format
msgid "use --all to revert all files, or 'hg update %s' to update"
@@ -13829,13 +9691,34 @@ msgstr ""
msgid "uncommitted changes, use --all to discard all changes"
msgstr ""
-"незафикÑированные изменениÑ, иÑпользуйте --all чтобы ÑброÑить вÑе изменениÑ"
+"незакоммиченные изменениÑ, иÑпользуйте --all чтобы ÑброÑить вÑе изменениÑ"
msgid "use --all to revert all files"
msgstr "иÑпользуйте --all чтобы воÑÑтановить вÑе файлы"
-msgid "ignore safety measures"
-msgstr "игнорировать меры безопаÑноÑти"
+#, python-format
+msgid "forgetting %s\n"
+msgstr "забываю %s\n"
+
+#, python-format
+msgid "reverting %s\n"
+msgstr "воÑÑтанавление %s\n"
+
+#, python-format
+msgid "undeleting %s\n"
+msgstr "отмена ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ %s\n"
+
+#, python-format
+msgid "saving current version of %s as %s\n"
+msgstr "Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑÐ¸Ñ %s ÑохранÑетÑÑ ÐºÐ°Ðº %s\n"
+
+#, python-format
+msgid "file not managed: %s\n"
+msgstr "файл не под контролем верÑий: %s\n"
+
+#, python-format
+msgid "no changes needed to %s\n"
+msgstr "не требуютÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ %s\n"
msgid "roll back the last transaction (dangerous)"
msgstr "откатить поÑледнюю транзакцию (опаÑно)"
@@ -13856,40 +9739,26 @@ msgstr ""
msgid ""
" Transactions are used to encapsulate the effects of all commands\n"
" that create new changesets or propagate existing changesets into a\n"
-" repository."
+" repository. For example, the following commands are transactional,\n"
+" and their effects can be rolled back:"
msgstr ""
-" Ð”Ð»Ñ Ð¸Ð½ÐºÐ°Ð¿ÑулÑции Ñффектов вÑех команд,\n"
+" Транзакции иÑпользуютÑÑ Ð´Ð»Ñ Ð¸Ð½ÐºÐ°Ð¿ÑулÑции Ñффектов вÑех команд,\n"
" которые Ñоздают новые наборы изменений или передают уже\n"
-" ÑущеÑтвующие наборы изменений в хранилище, иÑпользуютÑÑ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸."
+" ÑущеÑтвующие в репозиторий. ДейÑтвие таких команд можно откатиь.\n"
+" Транзакционными ÑвлÑÑŽÑ‚ÑÑ, например, Ñледующие команды:"
msgid ""
-" For example, the following commands are transactional, and their\n"
-" effects can be rolled back:"
+" - commit\n"
+" - import\n"
+" - pull\n"
+" - push (with this repository as the destination)\n"
+" - unbundle"
msgstr ""
-" Так, Ñледующие команды ÑвлÑÑŽÑ‚ÑÑ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¾Ð½Ð½Ñ‹Ð¼Ð¸ и их Ñффекты\n"
-" можно откатить:"
-
-msgid ""
-" - commit\n"
-" - import\n"
-" - pull\n"
-" - push (with this repository as the destination)\n"
-" - unbundle"
-msgstr ""
-" - commit\n"
-" - import\n"
-" - pull\n"
-" - push (Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ хранилищем в качеÑтве назначениÑ)\n"
-" - unbundle"
-
-msgid ""
-" To avoid permanent data loss, rollback will refuse to rollback a\n"
-" commit transaction if it isn't checked out. Use --force to\n"
-" override this protection."
-msgstr ""
-" Чтобы предотвратить безвозвратную потерю данных, rollback откажетÑÑ\n"
-" выполнÑÑ‚ÑŒ откат транзакции фикÑации, еÑли она не извлечена. Ð’Ñ‹ можете\n"
-" иÑпользовать --force, чтобы откатить принудительно."
+" - commit\n"
+" - import\n"
+" - pull\n"
+" - push (Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ репозиторием в качеÑтве назначениÑ)\n"
+" - unbundle"
msgid ""
" This command is not intended for use on public repositories. Once\n"
@@ -13900,11 +9769,11 @@ msgid ""
" may fail if a rollback is performed."
msgstr ""
" Эта команда не предназначена Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° публичных\n"
-" хранилищах. ЕÑли Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть утÑнутыми другими\n"
+" репозиториÑÑ…. ЕÑли Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть утÑнутыми другими\n"
" пользователÑми, локальный откат транзакций не имеет ÑмыÑла\n"
" (кто-то могу уже утÑнуть изменениÑ). Более того, возможны гонки\n"
-" Ñ Ñ‡Ð¸Ñ‚Ð°ÑŽÑ‰Ð¸Ð¼Ð¸ хранилище; например, текущий pull может завершитьÑÑ\n"
-" неудачей, еÑли в Ñто Ð²Ñ€ÐµÐ¼Ñ Ð±ÑƒÐ´ÐµÑ‚ вызван rollback."
+" Ñ Ñ‡Ð¸Ñ‚Ð°ÑŽÑ‰Ð¸Ð¼Ð¸ репозитрий; например, текущий pull может завершитьÑÑ\n"
+" нудачей, еÑли в Ñто Ð²Ñ€ÐµÐ¼Ñ Ð±ÑƒÐ´ÐµÑ‚ вызван rollback."
msgid ""
" Returns 0 on success, 1 if no rollback data is available.\n"
@@ -13914,10 +9783,10 @@ msgstr ""
" "
msgid "print the root (top) of the current working directory"
-msgstr "напечатать корневой каталог текущего хранилища"
+msgstr "напечатать корневой каталог текущего репозиториÑ"
msgid " Print the root directory of the current repository."
-msgstr " Печатает корневой каталог текущего хранилища."
+msgstr " Печатает корневой каталог текущего репозиториÑ."
msgid "name of access log file to write to"
msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи журнала доÑтупа"
@@ -13938,7 +9807,7 @@ msgid "ADDR"
msgstr "ÐДРЕС"
msgid "prefix path to serve from (default: server root)"
-msgstr "корневой каталог веб-Ñервера (по умолчанию: корень Ñервера)"
+msgstr "ÐºÐ¾Ñ€Ð½ÐµÐ²Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð²ÐµÐ±-Ñервера (по умолчанию: корень Ñервера)"
msgid "name to show in web pages (default: working directory)"
msgstr ""
@@ -13951,7 +9820,7 @@ msgid "name of the hgweb config file (DEPRECATED)"
msgstr "путь к конфигу hgweb (УСТÐРЕЛО)"
msgid "for remote clients"
-msgstr "Ð´Ð»Ñ Ð¾Ñ‚Ð´Ð°Ð»Ñ‘Ð½Ð½Ñ‹Ñ… клиентов"
+msgstr "Ð´Ð»Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ñ‹Ñ… клиентов"
msgid "web templates to use"
msgstr "иÑпользуемые веб-шаблоны"
@@ -13974,9 +9843,9 @@ msgid ""
" recommended to use a real web server to serve a repository for\n"
" longer periods of time."
msgstr ""
-" ЗапуÑкает локальный HTTP-обозреватель хранилища и pull-Ñервер.\n"
-" Эту команду можно иÑпользовать в качеÑтве проÑтого ÑпоÑоба\n"
-" организации ÑовмеÑтного доÑтупа и проÑмотра хранилища по Ñети.\n"
+" ЗапуÑкает локальный HTTP-обзреватель Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸ pull-Ñервер.\n"
+" Эту команду можно иÑпользовать в качетве проÑтого ÑпоÑоба\n"
+" организации ÑовмеÑтного доÑтупа и проÑмотра Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¿Ð¾ Ñети.\n"
" Ð”Ð»Ñ Ð±Ð¾Ð»ÐµÐµ Ñерьезной работы в течение длительного времени,\n"
" рекомендуетÑÑ Ð¸Ñпользовать нормальный веб-Ñервер."
@@ -13987,8 +9856,8 @@ msgid ""
" option to ``*`` to allow everybody to push to the server. You\n"
" should use a real web server if you need to authenticate users."
msgstr ""
-" Обратите внимание, что такой Ñервер не поддерживает права доÑтупа.\n"
-" Это значит, что по умолчанию кто угодно может читать хранилища\n"
+" Обратите внимание, что такой Ñервер не подерживает права доÑтупа.\n"
+" Это значит, что по умолчанию кто угодно пожет читать репозитории\n"
" и не может пиÑать в них. УÑтановите параметр ``web.allow_push`` в\n"
" значение ``*``, чтобы разрешить вÑем делать push на Ñервер.\n"
" ИÑпользуйте наÑтоÑщий веб-Ñервер, еÑли требуетÑÑ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ\n"
@@ -14013,7 +9882,10 @@ msgstr ""
" напечатает выбранный порт."
msgid "cannot use --stdio with --cmdserver"
-msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать --stdio Ñ --cmdserver"
+msgstr ""
+
+msgid "There is no Mercurial repository here (.hg not found)"
+msgstr "ЗдеÑÑŒ нет Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Mercurial (.hg не обнаружен)"
#, python-format
msgid "listening at http://%s%s/%s (bound to %s:%d)\n"
@@ -14029,7 +9901,7 @@ msgid "show combined config settings from all hgrc files"
msgstr "показать Ñовмещенные наÑтройки из вÑех файлов конфигурации"
msgid " With no arguments, print names and values of all config items."
-msgstr " Без аргументов печатает имена и Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñех параметров конфига."
+msgstr " Без аргументов печатает имена и Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñех парматров конфига."
msgid ""
" With one argument of the form section.name, print just the value\n"
@@ -14053,7 +9925,7 @@ msgstr ""
" и номер Ñтроки, откуда он был прочитан."
msgid "only one config item permitted"
-msgstr "можно указать только один параметр конфига"
+msgstr "можно указать только один парметр конфига"
msgid "show status of all files"
msgstr "показать ÑоÑтоÑние вÑех файлов"
@@ -14065,16 +9937,16 @@ msgid "show only added files"
msgstr "показать только добавленные файлы"
msgid "show only removed files"
-msgstr "показать только отдалённые файлы"
+msgstr "показать только удаленные файлы"
msgid "show only deleted (but tracked) files"
-msgstr "показать только отдалённые (но отÑлеживаемые) файлы"
+msgstr "показать только удаленные (но контролируемые) файлы"
msgid "show only files without changes"
msgstr "показать только неизмененные файлы"
msgid "show only unknown (not tracked) files"
-msgstr "показать только неизвеÑтные (не отÑлеживаемые) файлы"
+msgstr "показать только неизвеÑтные (не отÑлежиываемые) файлы"
msgid "show only ignored files"
msgstr "показать только игнорируемые файлы"
@@ -14083,7 +9955,7 @@ msgid "show source of copied files"
msgstr "показать иÑточник Ñкопированного файла"
msgid "show difference from revision"
-msgstr "показать Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚ ревизии"
+msgstr "показать Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚ ревии"
msgid "list the changed files of a revision"
msgstr "показать измененные файлы Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚Ð° ревизии"
@@ -14099,8 +9971,8 @@ msgid ""
" Unless options described with \"show only ...\" are given, the\n"
" options -mardu are used."
msgstr ""
-" Показывает ÑÑ‚Ð°Ñ‚ÑƒÑ Ñ„Ð°Ð¹Ð»Ð¾Ð² в хранилище. ЕÑли заданы имена файлов,\n"
-" печатает ÑоÑтоÑÐ½Ð¸Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ…Ð¾Ð´Ñщих файлов. Файлы без\n"
+" Показывает ÑÑ‚Ð°Ñ‚ÑƒÑ Ñ„Ð°Ð¹Ð»Ð¾Ð² в репозитории. ЕÑли заданы имена файлов,\n"
+" пеатает ÑоÑтоÑÐ½Ð¸Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ…Ð¾Ð´Ñщих файлов. Файлы без\n"
" изменений, а также игнорируемые файлы и иÑходные файлы \n"
" Ñкопированных/переименованных файлов не печатаютÑÑ, еÑли не\n"
" задан -c/--clean, -i/--ignored, -C/--copies или -A/-all.\n"
@@ -14122,7 +9994,7 @@ msgid ""
" relative to one merge parent."
msgstr ""
" .. note::\n"
-" ÑоÑтоÑÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ не Ñовпадать Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ различий, еÑли изменилиÑÑŒ\n"
+" ÑоÑтоÑÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ не Ñовпадать Ñ diff'ом, еÑли изменилиÑÑŒ\n"
" права доÑтупа или произошло ÑлиÑние. Стандартный формат diff\n"
" не показывает Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð² доÑтупа и показывает только\n"
" Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð½Ð¾Ñительно одной родительÑкой ревизии."
@@ -14135,11 +10007,11 @@ msgid ""
msgstr ""
" ЕÑли задана одна ревизиÑ, она иÑпользуетÑÑ Ð² качеÑтве базовой.\n"
" ЕÑли заданы две ревизии, показываютÑÑ Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ ними. Можно\n"
-" иÑпользовать --change чтобы вывеÑти только изменённые файлы в\n"
-" в ревизии по Ñравнению Ñ ÐµÐµ первым родителем."
+" иÑпользовать --change чтобы вывеÑти только изменные файлы в\n"
+" в ревизии по Ñравнению Ñ ÐµÐµ первоым родителем."
msgid " The codes used to show the status of files are::"
-msgstr " ИÑпользуютÑÑ Ñледующие коды ÑоÑтоÑний файлов::"
+msgstr " ИÑпльзуютÑÑ Ñледующие коды ÑоÑтоÑний файлов::"
msgid ""
" M = modified\n"
@@ -14160,32 +10032,6 @@ msgstr ""
" I = игнорируетÑÑ (ignored)\n"
" = иÑточник предыдущего файла показанного как A (добавлен)"
-msgid ""
-" - show changes in the working directory relative to a\n"
-" changeset::"
-msgstr ""
-" - показать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² рабочем каталоге отноÑительно\n"
-" набора изменений::"
-
-msgid " hg status --rev 9353"
-msgstr " hg status --rev 9353"
-
-msgid " - show all changes including copies in an existing changeset::"
-msgstr ""
-" - показать вÑе изменениÑ, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ, в ÑущеÑтвующем\n"
-" наборе изменений::"
-
-msgid " hg status --copies --change 9353"
-msgstr " hg status --copies --change 9353"
-
-msgid " - get a NUL separated list of added files, suitable for xargs::"
-msgstr ""
-" - показать разделенный Ñимволом NUL ÑпиÑок добавленных файлов\n"
-" Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ xargs::"
-
-msgid " hg status -an0"
-msgstr " hg status -an0"
-
msgid "check for push and pull"
msgstr "проверить наличие входÑщих и иÑходÑщих изменений"
@@ -14197,7 +10043,7 @@ msgid ""
" including parents, branch, commit status, and available updates."
msgstr ""
" Показывает краткую Ñводку ÑоÑтоÑÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога, включаÑ\n"
-" информацию о родителÑÑ…, ветке, незафикÑированных файлах и доÑтупных\n"
+" информацию о родителÑÑ…, ветви, незакоммиченных файлах и доÑтупных\n"
" обновлениÑÑ…."
msgid ""
@@ -14209,20 +10055,17 @@ msgstr ""
#, python-format
msgid "parent: %d:%s "
-msgstr "родитель: %d:%s "
+msgstr "родитель: %d:%s"
msgid " (empty repository)"
-msgstr " (пуÑтое хранилище)"
+msgstr " (пуÑтой репозиторий)"
msgid " (no revision checked out)"
msgstr " (нет извлеченной ревизии)"
#, python-format
msgid "branch: %s\n"
-msgstr "ветка: %s\n"
-
-msgid "bookmarks:"
-msgstr "закладки:"
+msgstr "ветвь: %s\n"
#, python-format
msgid "%d modified"
@@ -14262,13 +10105,13 @@ msgstr "%d Ñ Ð½ÐµÑ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð½Ñ‹Ð¼Ð¸ конфликтами"
#, python-format
msgid "%d subrepos"
-msgstr "%d подхранилищ"
+msgstr "%d Ñубрепозиториев"
msgid " (merge)"
msgstr " (ÑлиÑние)"
msgid " (new branch)"
-msgstr " (Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ‚ÐºÐ°)"
+msgstr " (Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ)"
msgid " (head closed)"
msgstr " (голова закрыта)"
@@ -14277,11 +10120,11 @@ msgid " (clean)"
msgstr " (без изменений)"
msgid " (new branch head)"
-msgstr " (Ð½Ð¾Ð²Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð° ветки)"
+msgstr " (Ð½Ð¾Ð²Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð° ветви)"
#, python-format
msgid "commit: %s\n"
-msgstr "фикÑациÑ: %s\n"
+msgstr " коммит: %s\n"
msgid "update: (current)\n"
msgstr "обновление: (текущее)\n"
@@ -14311,10 +10154,10 @@ msgstr "%d иÑходÑщих закладок"
#, python-format
msgid "remote: %s\n"
-msgstr "отдалённо: %s\n"
+msgstr "удаленный репозиторий: %s\n"
msgid "remote: (synced)\n"
-msgstr "отдалённо: (Ñинхронизировано)\n"
+msgstr "удаленный репозиторий: (Ñинхронизирован)\n"
msgid "force tag"
msgstr "уÑтановить метку принудительно"
@@ -14326,10 +10169,10 @@ msgid "revision to tag"
msgstr "пометить указанную ревизию"
msgid "remove a tag"
-msgstr "удалить метку"
+msgstr "уадалить метку"
msgid "use <text> as commit message"
-msgstr "иÑпользовать <текÑÑ‚> в качеÑтве ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ„Ð¸ÐºÑации"
+msgstr "иÑпользовать <текÑÑ‚> в качеÑтве ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð°"
msgid "[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME..."
msgstr "[-f] [-l] [-m ТЕКСТ] [-d ДÐТÐ] [-u ПОЛЬЗОВÐТЕЛЬ] [-r РЕВ] ИМЯ..."
@@ -14370,9 +10213,9 @@ msgstr ""
" Чтобы упроÑтить контроль верÑий, раÑпроÑтранение и ÑлиÑние меток,\n"
" они хранÑÑ‚ÑÑ Ð² файле \".hgtags\", который обрабатываетÑÑ Ñ‚Ð°Ðº же,\n"
" как и любой файл в проекте и при необходимоÑти может правитьÑÑ\n"
-" вручную. Это означает, что Ñоздание или изменение метки Ñоздает\n"
-" также и новую фикÑацию. Файл \".hg/localtags\" иÑпользуетÑÑ Ð´Ð»Ñ\n"
-" локальных меток и не передаетÑÑ Ð¼ÐµÐ¶Ð´Ñƒ хранилищами."
+" вручную. Это означает, что Ñозднание или изменение метки Ñоздает\n"
+" также и новый коммит. Файл \".hg/localtags\" иÑпользуетÑÑ Ð´Ð»Ñ\n"
+" локальных меток и не передаетÑÑ Ð¼ÐµÐ¶Ð´Ñƒ репозиториÑми."
msgid ""
" Tag commits are usually made at the head of a branch. If the parent\n"
@@ -14380,19 +10223,19 @@ msgid ""
" -f/--force to force the tag commit to be based on a non-head\n"
" changeset."
msgstr ""
-" Обычно фикÑации, ÑвÑзанные Ñ Ð¼ÐµÑ‚ÐºÐ°Ð¼Ð¸, ÑоздаютÑÑ Ð½Ð° голове ветки.\n"
-" ЕÑли родительÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога не ÑвлÑетÑÑ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð¹\n"
-" ветки, :hg:`tag` не Ñрабатывает. Ð’ Ñтом Ñлучае можно иÑпользовать\n"
-" -f/-force чтобы принудительно Ñоздать фикÑацию Ð´Ð»Ñ Ð¼ÐµÑ‚ÐºÐ¸ на\n"
-" неголовной ревизии."
+" Обычно коммиты, ÑвÑзанные Ñ Ð¼ÐµÑ‚ÐºÐ°Ð¼Ð¸, ÑоздаютÑÑ Ð½Ð° голове ветви.\n"
+" ЕÑли родительÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталоа не ÑвлÑетÑÑ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð¹\n"
+" ветви, :hg:`tag` не Ñрабатывает. Ð’ Ñтом Ñлучает можно иÑпользовать\n"
+" -f/-force чтобы принудительно Ñоздать коммит Ð´Ð»Ñ Ð¼ÐµÑ‚ÐºÐ¸ на не\n"
+" головной ревизии."
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"
-" ÑущеÑтвующей ветки в качеÑтве имени метки."
+" ПоÑкольку Ð¸Ð¼Ñ Ð¼ÐµÑ‚ÐºÐ¸ имеет больший приоритерт при поиÑке ревизии\n"
+" чем Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸, наÑтоÑтельно не рекомендуетÑÑ Ð¸Ñпользовать имÑ\n"
+" ÑущеÑтвующей ветви в качеÑтве имени метки."
msgid "tag names must be unique"
msgstr "Ð¸Ð¼Ñ Ð¼ÐµÑ‚ÐºÐ¸ должно быть уникальным"
@@ -14417,19 +10260,16 @@ msgstr "метка '%s' не ÑвлÑетÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð¹"
#, python-format
msgid "tag '%s' already exists (use -f to force)"
-msgstr "метка '%s' уже ÑущеÑтвует (-f - задать принудительно)"
+msgstr "метка '%s' уже ÑущеÑтует (-f - задать принудительно)"
msgid "uncommitted merge"
-msgstr "незафикÑированное ÑлиÑние"
+msgstr "незакоммиченное ÑлиÑние"
msgid "not at a branch head (use -f to force)"
-msgstr "не на голове ветки (-f - уÑтановить принудительно)"
-
-msgid "null revision specified"
-msgstr "задана пуÑÑ‚Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ"
+msgstr "не на голове ветви (-f - уÑтановить принудительно)"
msgid "list repository tags"
-msgstr "перечиÑлить метки в хранилище"
+msgstr "перечиÑлить метки в репозитории"
msgid ""
" This lists both regular and local tags. When the -v/--verbose\n"
@@ -14450,7 +10290,7 @@ msgid ""
" recently changed head)."
msgstr ""
" ÐžÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ (tip) - Ñто набор поÑледний добавленный в\n"
-" хранилище набор изменений (и, Ñледовательно, поÑледнÑÑ\n"
+" репозиторий набор изменений (и, Ñледовательно, поÑледнÑÑ\n"
" Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð½Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ)."
msgid ""
@@ -14459,14 +10299,14 @@ msgid ""
" that repository becomes the current tip. The \"tip\" tag is special\n"
" and cannot be renamed or assigned to a different changeset."
msgstr ""
-" ЕÑли вы только что Ñделали фикÑацию, Ñта фикÑÐ°Ñ†Ð¸Ñ Ð¸ будет tip'ом.\n"
-" ЕÑли вы только что затÑнули Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· другого хранилища,\n"
-" tip Ñтого хранилища Ñтанет текущим tip'ом. Метка \"tip\"\n"
+" ЕÑли вы только что Ñделали коммит, Ñтот коммит и будет tip'ом.\n"
+" ЕÑли вы только что подтÑнули Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· другого репозиториÑ,\n"
+" tip Ñтого Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ñтанет текущим tip'ом. Метка \"tip\"\n"
" ÑвлÑетÑÑ Ñлужебной и не может быть переименована или назначена\n"
" другой ревизии."
msgid "update to new branch head if changesets were unbundled"
-msgstr "обновитьÑÑ Ð½Ð° новую голову ветки, еÑли были добавлены наборы изменений"
+msgstr "обновитьÑÑ Ð½Ð° новую голову ветви, еÑли были добавлены наборы изменений"
msgid "[-u] FILE..."
msgstr "[-u] ФÐЙЛ..."
@@ -14490,10 +10330,10 @@ msgstr ""
" "
msgid "discard uncommitted changes (no backup)"
-msgstr "затереть незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (без ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии)"
+msgstr "затереть незакоммиченные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (без бÑкапа)"
msgid "update across branches if no uncommitted changes"
-msgstr "обновитьÑÑ Ð½Ð° другую ветку еÑли нет незафикÑированных изменений"
+msgstr "обновитьÑÑ Ð½Ð° другую ветвь еÑли нет незакоммиченных изменений"
msgid "[-c] [-C] [-d DATE] [[-r] REV]"
msgstr "[-c] [-C] [-d ДÐТÐ] [[-r] РЕВИЗИЯ]"
@@ -14504,79 +10344,69 @@ msgstr "обновить рабочий каталог (или переключÐ
msgid ""
" Update the repository's working directory to the specified\n"
" changeset. If no changeset is specified, update to the tip of the\n"
-" current named branch and move the current bookmark (see :hg:`help\n"
-" bookmarks`)."
+" current named branch."
msgstr ""
-" ОбновлÑет рабочую копию хранилища на указанную ревизию. ЕÑли\n"
+" ОбновлÑет рабочую копию Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð´Ð¾ указанную ревизию. ЕÑли\n"
" Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ задана, обновлÑет до оконечной ревизии (tip) текущей\n"
-" именованной ветки и перемещает текущую закладку (Ñм. :hg:`help\n"
-" bookmarks`)."
-
-msgid ""
-" Update sets the working directory's parent revison to the specified\n"
-" changeset (see :hg:`help parents`)."
-msgstr ""
-" Update уÑтанавливает ревизию Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога в заданный\n"
-" набор изменений (Ñм. :hg:`help update`)."
+" именованной ветви."
msgid ""
-" If the changeset is not a descendant or ancestor of the working\n"
-" directory's parent, the update is aborted. With the -c/--check\n"
-" option, the working directory is checked for uncommitted changes; if\n"
-" none are found, the working directory is updated to the specified\n"
+" 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 ""
-" ЕÑли Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ ÑвлÑетÑÑ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ¾Ð¼ или предком родительÑкой ревизии\n"
-" рабочего каталога, выполнение update прерываетÑÑ. С параметром -c/--"
-"check\n"
-" рабочий каталог проверÑетÑÑ Ð½Ð° наличие незафикÑированных изменений;\n"
-" еÑли таковых нет, рабочий каталог обновлÑетÑÑ Ð´Ð¾ указанной ревизии."
+" ЕÑли РЕВИЗИЯ - не потомок Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога, update\n"
+" завершаетÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹. С опцией -c/--check рабочий каталог\n"
+" проверÑетÑÑ Ð½Ð° наличие незакоммиченных изменений; еÑли таковых\n"
+" нет, раочий каталог обновлÑетÑÑ Ð´Ð¾ указанной ревизии."
msgid ""
-" The following rules apply when the working directory contains\n"
-" uncommitted changes:"
+" Update sets the working directory's parent revison to the specified\n"
+" changeset (see :hg:`help parents`)."
msgstr ""
-" ЕÑли рабочий каталог Ñодержит незафикÑированные изменениÑ,\n"
-" применÑÑŽÑ‚ÑÑ Ñледующие правила:"
+" Update уÑтанавливает ревизию Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога в заданный\n"
+" набор изменений (Ñм. :hg:`help update`)."
msgid ""
-" 1. If neither -c/--check nor -C/--clean is specified, and if\n"
-" the requested changeset is an ancestor or descendant of\n"
-" the working directory's parent, the uncommitted changes\n"
-" are merged into the requested changeset and the merged\n"
-" result is left uncommitted. If the requested changeset is\n"
-" not an ancestor or descendant (that is, it is on another\n"
-" branch), the update is aborted and the uncommitted changes\n"
-" are preserved."
+" The following rules apply when the working directory contains\n"
+" uncommitted changes:"
msgstr ""
-" 1. ЕÑли не указаны ни -c/--check, ни -C/--clean и еÑли заданнаÑ\n"
-" Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ ÑвлÑетÑÑ Ð¿Ñ€ÐµÐ´ÐºÐ¾Ð¼ или потомком Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾\n"
-" каталога, незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑливаютÑÑ Ð² заданную\n"
-" ревизию и результат ÑлиÑÐ½Ð¸Ñ Ð¾ÑтаетÑÑ Ð½ÐµÐ·Ð°Ñ„Ð¸ÐºÑированным. ЕÑли\n"
-" Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ предок и не потомок (Ñ‚.е. на другой ветке)\n"
-" update завершаетÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹, незафикÑированные изменениÑ\n"
-" ÑохранÑÑŽÑ‚ÑÑ."
+" ЕÑли рабочий каталог Ñодержит незакоммиченные изменениÑ,\n"
+" применÑÑŽÑ‚ÑÑ Ñледующие правила:"
msgid ""
-" 2. With the -c/--check option, the update is aborted and the\n"
-" uncommitted changes are preserved."
+" 1. If neither -c/--check nor -C/--clean is specified, and if\n"
+" the requested changeset is an ancestor or descendant of\n"
+" the working directory's parent, the uncommitted changes\n"
+" are merged into the requested changeset and the merged\n"
+" result is left uncommitted. If the requested changeset is\n"
+" not an ancestor or descendant (that is, it is on another\n"
+" branch), the update is aborted and the uncommitted changes\n"
+" are preserved."
msgstr ""
-" 2. С опцией -c/--check update завершаетÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹ и\n"
-" незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑохранÑÑŽÑ‚ÑÑ."
+" 1. ЕÑли не указаны ни -c/--check, ни -C/--clean и еÑли заданнаÑ\n"
+" Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ ÑвлÑетÑÑ Ð¿Ñ€ÐµÐ´ÐºÐ¾Ð¼ или потомком Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾\n"
+" каталога, незакоммиченные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑливаютÑÑ Ð² заданную\n"
+" ревизию и результат ÑлиÑÐ½Ð¸Ñ Ð¾ÑтаетÑÑ Ð½ÐµÐ·Ð°ÐºÐ¾Ð¼Ð¼Ð¸Ñ‡ÐµÐ½Ð½Ñ‹Ð¼. ЕÑли\n"
+" Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ðµ предок и не потомок (Ñ‚.е. на другой ветке)\n"
+" update завершаетÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹, незакоммиченные изменениÑ\n"
+" ÑохранÑÑŽÑ‚ÑÑ."
msgid ""
-" 3. With the -C/--clean option, uncommitted changes are discarded and\n"
-" the working directory is updated to the requested changeset."
+" 2. With the -c/--check option, the update is aborted and the\n"
+" uncommitted changes are preserved."
msgstr ""
-" 3. С опцией -C/--clean незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð±Ñ€Ð°ÑываютÑÑ\n"
-" и рабочий каталог обновлÑетÑÑ Ð´Ð¾ указанной ревизии."
+" 2. С опцией -c/--check update завершаетÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹ и\n"
+" незакоммиченные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑохранÑÑŽÑ‚ÑÑ."
msgid ""
-" To cancel an uncommitted merge (and lose your changes), use\n"
-" :hg:`update --clean .`."
+" 3. With the -C/--clean option, uncommitted changes are discarded and\n"
+" the working directory is updated to the requested changeset."
msgstr ""
-" Чтобы отменить незафикÑированное ÑлиÑние (Ñ Ð¿Ð¾Ñ‚ÐµÑ€ÐµÐ¹ Ñделанных\n"
-" изменений), иÑпользуйте :hg:`update --clean .`."
+" 3. С опцией -C/--clean незакоммиченные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð±Ñ€Ð°ÑываютÑÑ\n"
+" и рабочий каталог обновлÑетÑÑ Ð´Ð¾ указанной ревизии."
msgid ""
" Use null as the changeset to remove the working directory (like\n"
@@ -14595,11 +10425,14 @@ msgstr ""
msgid "cannot specify both -c/--check and -C/--clean"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð´Ð½Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ указывать -c/--check и -C/-clean"
+msgid "uncommitted local changes"
+msgstr "незакоммиченные локальные изменениÑ"
+
msgid "verify the integrity of the repository"
-msgstr "проверить целоÑтноÑÑ‚ÑŒ хранилища"
+msgstr "проверить целоÑтноÑÑ‚ÑŒ репозиториÑ"
msgid " Verify the integrity of the current repository."
-msgstr " ПроверÑет целоÑтноÑÑ‚ÑŒ текущего хранилища."
+msgstr " ПроверÑет целоÑтноÑÑ‚ÑŒ текущего репозиториÑ."
msgid ""
" This will perform an extensive check of the repository's\n"
@@ -14607,7 +10440,7 @@ msgid ""
" the changelog, manifest, and tracked files, as well as the\n"
" integrity of their crosslinks and indices."
msgstr ""
-" Эта команда проводит тщательную проверку целоÑтноÑти хранилища\n"
+" Эта команда проводит тщательную проверку целоÑтноÑти репозиториÑ\n"
" ÑверÑÑ Ñ…Ñши и контрольные Ñуммы каждого Ñлемента в журнале\n"
" изменений, манифеÑте и отÑлеживаемых файлах, а также целоÑтноÑÑ‚ÑŒ\n"
" их взаимоÑвÑзей и индекÑов."
@@ -14623,14 +10456,14 @@ msgid "(see http://mercurial.selenic.com for more information)"
msgstr "(подробнее Ñм. http://mercurial.selenic.com)"
msgid ""
-"Copyright (C) 2005-2012 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 ""
-"(С) 2005-2012 Matt Mackall и другие.\n"
+"(С) 2005-2011 Matt Mackall и другие.\n"
"Это Ñвободное ПО; уÑÐ»Ð¾Ð²Ð¸Ñ Ñ€Ð°ÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñм. в иÑходном коде.\n"
-"ÐИКÐКИХ ГÐРÐÐТИЙ ÐЕ ПРЕДОСТÐВЛЯЕТСЯ, в том чиÑле на пригодноÑÑ‚ÑŒ длÑ\n"
-"коммерчеÑкого иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð´Ð»Ñ Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ñ‹Ñ… задач.\n"
+"ÐИКÐКИХ ГÐРÐÐТИЙ ÐЕ ПРЕДОСТÐВЛЯЕТСЯ, в том чиÑле, на пригодноÑÑ‚ÑŒ длÑ\n"
+"коммерчеÑкого иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð´Ð»Ñ Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÐºÐµÑ€Ñ‚Ð½Ñ‹Ñ… задач.\n"
#, python-format
msgid "unknown mode %s"
@@ -14642,209 +10475,176 @@ msgstr "неизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %s"
#, python-format
msgid "cannot include %s (%s)"
-msgstr "не удаетÑÑ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ %s (%s)"
-
-#, python-format
-msgid "working directory has unknown parent '%s'!"
-msgstr "рабочий каталог имеет неизвеÑтного Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ '%s'!"
-
-#, python-format
-msgid "unknown revision '%s'"
-msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ '%s'"
+msgstr ""
msgid "not found in manifest"
-msgstr "не найден в манифеÑте"
+msgstr ""
#, python-format
msgid "no such file in rev %s"
-msgstr "нет такого файла в ревизии %s"
+msgstr ""
msgid "branch name not in UTF-8!"
-msgstr "Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸ не в UTF-8"
+msgstr ""
#, python-format
msgid "%s does not exist!\n"
-msgstr "%s не ÑущеÑтвует!\n"
+msgstr ""
#, python-format
msgid ""
"%s: up to %d MB of RAM may be required to manage this file\n"
"(use 'hg revert %s' to cancel the pending addition)\n"
msgstr ""
-"%s: может потребовать до %d МБ памÑти Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ Ñтого файла\n"
-"(иÑпользуйте 'hg revert %s' чтобы отменить запланированное добавление)\n"
#, python-format
msgid "%s not added: only files and symlinks supported currently\n"
msgstr ""
-"%s не добавлен: в наÑтоÑщий момент поддерживаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ файлы\n"
-"и ÑимволичеÑкие ÑÑылки\n"
#, python-format
msgid "%s already tracked!\n"
-msgstr "%s уже отÑлеживаетÑÑ!\n"
+msgstr ""
#, python-format
msgid "%s not tracked!\n"
-msgstr "%s не отÑлеживаетÑÑ!\n"
+msgstr ""
#, python-format
msgid "%s not removed!\n"
-msgstr "%s не изъÑÑ‚ из-под ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²ÐµÑ€Ñий!\n"
+msgstr ""
#, python-format
msgid "copy failed: %s is not a file or a symbolic link\n"
-msgstr "ошибка при копировании: %s не файл и не ÑимволичеÑÐºÐ°Ñ ÑÑылка\n"
+msgstr ""
#, python-format
msgid "invalid character in dag description: %s..."
-msgstr "недопуÑтимый Ñимвол в опиÑании графа: %s..."
+msgstr ""
#, python-format
msgid "expected id %i, got %i"
-msgstr "ожидаетÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ %i, получен %i"
+msgstr ""
#, python-format
msgid "parent id %i is larger than current id %i"
-msgstr "идентификатор Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ %i больше текущего идентификатора %i"
+msgstr ""
#, python-format
msgid "invalid event type in dag: %s"
-msgstr "недопуÑтимый тип ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð² графе: %s"
+msgstr ""
msgid "nullid"
-msgstr "пуÑтой идентификатор (nullid)"
+msgstr ""
msgid "working directory state appears damaged!"
-msgstr "похоже, рабочий каталог находитÑÑ Ð² поврежденном ÑоÑтоÑнии!"
+msgstr ""
#, python-format
msgid "directory %r already in dirstate"
-msgstr "каталог %r уже в dirstate"
+msgstr ""
#, python-format
msgid "file %r in dirstate clashes with %r"
-msgstr "файл %r конфликтует c %r в dirstate"
+msgstr ""
#, python-format
msgid "setting %r to other parent only allowed in merges"
-msgstr "уÑтановка %r в другого Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð° только Ð´Ð»Ñ ÑлиÑний"
+msgstr ""
msgid "unknown"
-msgstr "неизвеÑтно"
+msgstr "неизвеÑно"
msgid "character device"
-msgstr "Ñимвольное уÑтройÑтво"
+msgstr ""
msgid "block device"
-msgstr "блочное уÑтройÑтво"
+msgstr ""
msgid "fifo"
-msgstr "fifo"
+msgstr ""
msgid "socket"
-msgstr "Ñокет"
+msgstr ""
msgid "directory"
-msgstr "каталог"
+msgstr ""
#, python-format
msgid "unsupported file type (type is %s)"
-msgstr "неподдерживаемый тип файла (%s)"
+msgstr ""
#, python-format
msgid "push creates new remote branches: %s!"
-msgstr "push ÑоздаÑÑ‚ новые ветки в отдалённом хранилище: %s!"
+msgstr ""
msgid "use 'hg push --new-branch' to create new remote branches"
msgstr ""
-"иÑпользуйте 'hg push --new-branch' чтобы Ñоздать новые ветки ветки\n"
-"в отдаленном хранилище"
#, python-format
msgid "push creates new remote head %s on branch '%s'!"
-msgstr "push Ñоздает новую голову в отдаленном хранилище %s на ветке '%s'!"
+msgstr ""
#, python-format
msgid "push creates new remote head %s!"
-msgstr "push ÑоздаÑÑ‚ новую голову %s в отдалённом хранилище!"
+msgstr "push ÑоздаÑÑ‚ новую голову %s в удаленном репозитории!"
msgid "you should pull and merge or use push -f to force"
msgstr ""
-"необходимо выполнить pull, затем merge, либо иÑпользовать push -f,\n"
-"чтобы протолкнуть принудительно"
msgid "did you forget to merge? use push -f to force"
msgstr ""
-"забыли выполнить ÑлиÑние? иÑпользуйте push -f, чтобы протолкнуть "
-"принудительно"
-
-#, python-format
-msgid "new remote heads on branch '%s'\n"
-msgstr "новые головные ревизии в отдалённом хранилище на ветке '%s'\n"
-
-#, python-format
-msgid "new remote head %s\n"
-msgstr "Ð½Ð¾Ð²Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s в отдалённом хранилище\n"
msgid "note: unsynced remote changes!\n"
-msgstr "внимание: неÑинхронизированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² отдаленном хранилище!\n"
+msgstr ""
#, python-format
msgid "abort: %s\n"
-msgstr "прервано: %s\n"
+msgstr ""
#, python-format
msgid "(%s)\n"
-msgstr "(%s)\n"
+msgstr ""
#, python-format
msgid "hg: parse error at %s: %s\n"
-msgstr "hg: ошибка разбора в %s: %s\n"
+msgstr ""
#, python-format
msgid "hg: parse error: %s\n"
-msgstr "hg: ошибка разбора: %s\n"
+msgstr ""
msgid "entering debugger - type c to continue starting hg or h for help\n"
msgstr ""
-"вход в отладчик - напечатайте c Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑƒÑка hg или h Ð´Ð»Ñ "
-"Ñправки\n"
#, python-format
msgid ""
"hg: command '%s' is ambiguous:\n"
" %s\n"
msgstr ""
-"hg: команда '%s' неоднозначна:\n"
-" %s\n"
#, python-format
msgid "timed out waiting for lock held by %s"
-msgstr "таймаут при ожидании блокировки, удерживаемой %s"
+msgstr ""
#, python-format
msgid "lock held by %s"
-msgstr "блокировка удерживаетÑÑ %s"
+msgstr ""
#, python-format
msgid "abort: %s: %s\n"
-msgstr "прервано: %s: %s\n"
+msgstr ""
#, python-format
msgid "abort: could not lock %s: %s\n"
-msgstr "прервано: не удаетÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ %s: %s\n"
+msgstr ""
#, python-format
msgid "hg %s: %s\n"
-msgstr "hg %s: %s\n"
+msgstr ""
#, python-format
msgid "hg: %s\n"
-msgstr "hg: %s\n"
-
-msgid "abort: remote error:\n"
-msgstr "прервано: ошибка на отдаленной Ñтороне:\n"
+msgstr ""
#, python-format
msgid "abort: %s!\n"
@@ -14852,147 +10652,119 @@ msgstr "прервано: %s!\n"
#, python-format
msgid "abort: %s"
-msgstr "прервано: %s"
+msgstr ""
msgid " empty string\n"
-msgstr " пуÑÑ‚Ð°Ñ Ñтрока\n"
+msgstr ""
-# можно так перевеÑти?
msgid "killed!\n"
-msgstr "прервано Ñигналом!\n"
+msgstr ""
#, python-format
msgid "hg: unknown command '%s'\n"
-msgstr "hg: неизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° '%s'\n"
+msgstr ""
msgid "(did you forget to compile extensions?)\n"
-msgstr "(вы не забыли Ñкомпилировать раÑширениÑ?)\n"
+msgstr ""
msgid "(is your Python install correct?)\n"
-msgstr "(правильно ли у Ð²Ð°Ñ ÑƒÑтановлен Python?)\n"
+msgstr ""
#, python-format
msgid "abort: error: %s\n"
-msgstr "прервано: ошибка: %s\n"
+msgstr ""
msgid "broken pipe\n"
-msgstr "обрыв канала ввода-вывода\n"
+msgstr ""
msgid "interrupted!\n"
-msgstr "прервано!\n"
+msgstr ""
msgid ""
"\n"
"broken pipe\n"
msgstr ""
-"\n"
-"обрыв канала ввода-вывода\n"
msgid "abort: out of memory\n"
-msgstr "прервано: недоÑтаточно памÑти\n"
-
-msgid "the extension author."
-msgstr "автор раÑширениÑ."
-
-#, python-format
-msgid ""
-"** Unknown exception encountered with possibly-broken third-party extension "
-"%s\n"
-"** which supports versions %s of Mercurial.\n"
-"** Please disable %s and try your action again.\n"
-"** If that fixes the bug please report it to %s\n"
msgstr ""
-"** ÐеизвеÑтное иÑключение в возможно неиÑправном Ñтороннем дополнении \n"
-"%s\n"
-"** которое поддерживает верÑии Mercurial %s.\n"
-"** Отключите %s и попробуйте еще раз.\n"
-"** ЕÑли Ñто помогло, пожалуйÑта Ñообщите об Ñтом %s\n"
msgid "** unknown exception encountered, please report by visiting\n"
-msgstr "** неизвеÑтное иÑключение, пожалуйте, Ñообщите об Ñтом по адреÑу\n"
+msgstr ""
-msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
-msgstr "** http://mercurial.selenic.com/wiki/BugTracker\n"
+msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
+msgstr ""
#, python-format
msgid "** Python %s\n"
-msgstr "** Python %s\n"
+msgstr ""
#, python-format
msgid "** Mercurial Distributed SCM (version %s)\n"
-msgstr "** РаÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð°Ñ ÑиÑтема ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²ÐµÑ€Ñий Mercurial (верÑÐ¸Ñ %s)\n"
+msgstr ""
#, python-format
msgid "** Extensions loaded: %s\n"
-msgstr "** Загруженные раÑширениÑ: %s\n"
-
-msgid "too few arguments for command alias"
-msgstr "недоÑтаточно аргументов Ð´Ð»Ñ Ð¿Ñевдонима команды"
+msgstr ""
#, python-format
msgid "no definition for alias '%s'\n"
-msgstr "отÑутÑтвует определение пÑевдонима '%s'\n"
+msgstr ""
#, python-format
msgid ""
"error in definition for alias '%s': %s may only be given on the command "
"line\n"
msgstr ""
-"ошибка в определении пÑевдонима '%s': %s может быть задан только в командной "
-"Ñтроке\n"
#, python-format
msgid "alias '%s' resolves to unknown command '%s'\n"
-msgstr "пÑевдоним '%s' ÑводитÑÑ Ðº неизвеÑтной команде '%s'\n"
+msgstr ""
#, python-format
msgid "alias '%s' resolves to ambiguous command '%s'\n"
-msgstr "пÑевдоним '%s' ÑводитÑÑ Ðº неоднозначной команде '%s'\n"
+msgstr ""
#, python-format
msgid "malformed --config option: %r (use --config section.name=value)"
msgstr ""
-"некорректный параметр --config: %r (иÑпользуйте --config ÑекциÑ.имÑ=значение)"
#, python-format
msgid "error getting current working directory: %s"
-msgstr "ошибка при получении текущего рабочего каталога (cwd): %s"
+msgstr ""
#, python-format
msgid "extension '%s' overrides commands: %s\n"
msgstr "раÑширение '%s' переопределÑет команды: %s\n"
msgid "option --config may not be abbreviated!"
-msgstr "параметр --config не может быть Ñокращен!"
+msgstr ""
msgid "option --cwd may not be abbreviated!"
-msgstr "параметр --cwd не может быть Ñокращен!"
+msgstr ""
msgid ""
-"option -R has to be separated from other options (e.g. not -qR) and --"
+"Option -R has to be separated from other options (e.g. not -qR) and --"
"repository may only be abbreviated as --repo!"
msgstr ""
-"параметр -R должен быть отделен от других параметров (т.е. не -qR) и\n"
-"--repository можно Ñократить только до --repo!"
#, python-format
-msgid "time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
-msgstr "времÑ: полное (real) %.3f c (польз %.3f+%.3f ÑиÑÑ‚ %.3f+%.3f)\n"
+msgid "Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
+msgstr ""
#, python-format
msgid "repository '%s' is not local"
-msgstr "хранилище '%s' не локально"
+msgstr "репозиторий '%s' не локальный"
#, python-format
-msgid "no repository found in '%s' (.hg not found)"
-msgstr "хранилище не найдено в '%s' (не найден .hg)"
+msgid "no repository found in %r (.hg not found)"
+msgstr ""
msgid "warning: --repository ignored\n"
-msgstr "внимание: параметр --repository игнорируетÑÑ\n"
+msgstr ""
#, python-format
msgid "unrecognized profiling format '%s' - Ignored\n"
-msgstr "неопознанный формат Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ '%s' - Игнорирован\n"
+msgstr "неопознаный формат Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ '%s' - Игнорирован\n"
msgid ""
"lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/"
@@ -15001,142 +10773,71 @@ msgstr ""
"lsprof не доÑтупен - уÑтановите Ñ http://codespeak.net/svn/user/arigo/hack/"
"misc/lsprof/"
-msgid "statprof not available - install using \"easy_install statprof\""
-msgstr "statprof не доÑтупен - уÑтановите Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ \"easy_install statprof\""
-
-#, python-format
-msgid "invalid sampling frequency '%s' - ignoring\n"
-msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ñ‡Ð°Ñтота ÑÑÐ¼Ð¿Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ '%s' - игнорируетÑÑ\n"
-
-#, python-format
-msgid "unrecognized profiler '%s' - ignored\n"
-msgstr "неопознанный профилировщик '%s' - игнориретÑÑ\n"
-
#, python-format
msgid "*** failed to import extension %s from %s: %s\n"
-msgstr "*** не удалоÑÑŒ импортировать раÑширение %s из %s: %s\n"
+msgstr ""
#, python-format
msgid "*** failed to import extension %s: %s\n"
-msgstr "*** не удалоÑÑŒ импортировать раÑширение %s: %s\n"
+msgstr ""
#, python-format
msgid "warning: error finding commands in %s\n"
-msgstr "внимание: не удалоÑÑŒ найти команды в %s\n"
+msgstr ""
#, python-format
msgid "couldn't find merge tool %s\n"
-msgstr "не удалоÑÑŒ найти программу Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ %s\n"
+msgstr ""
#, python-format
msgid "tool %s can't handle symlinks\n"
-msgstr "программа %s не умеет работать Ñ ÑимволичеÑкими ÑÑылками\n"
+msgstr ""
#, python-format
msgid "tool %s can't handle binary\n"
-msgstr "программа %s не умеет работать Ñ Ð±Ð¸Ð½Ð°Ñ€Ð½Ñ‹Ð¼Ð¸ файлами\n"
+msgstr ""
#, python-format
msgid "tool %s requires a GUI\n"
-msgstr "программа %s требует графичеÑкий Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ\n"
-
-msgid ""
-"``internal:prompt``\n"
-"Asks the user which of the local or the other version to keep as\n"
-" the merged version."
msgstr ""
-"``internal:prompt``\n"
-"Спрашивает пользователÑ, какую верÑию файла - локальную или \n"
-" из хранилища - иÑпользовать в качеÑтве Ñлитой верÑии."
-# PROMPT
#, python-format
msgid ""
" no tool found to merge %s\n"
"keep (l)ocal or take (o)ther?"
msgstr ""
-" не найден инÑтрумент Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ %s\n"
-"иÑпользовать локальный файл:(l)ocal или взÑÑ‚ÑŒ другой:(o)ther?"
-
-msgid ""
-"``internal:local``\n"
-"Uses the local version of files as the merged version."
-msgstr ""
-"``internal:local``\n"
-"ИÑпользует локальные верÑии файлов в качеÑтве результата ÑлиÑниÑ."
-msgid ""
-"``internal:other``\n"
-"Uses the other version of files as the merged version."
-msgstr ""
-"``internal:other``\n"
-"ИÑпользует верÑию файла из хранилища в качеÑтве результат ÑлиÑниÑ."
+msgid "&Local"
+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 ""
-"``internal:fail``\n"
-"ВмеÑто того, чтобы попытатьÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑти ÑлиÑние файлов, измененных на\n"
-" обеих ветках, он помечает их как файлы Ñ Ð½ÐµÑ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð½Ñ‹Ð¼Ð¸ конфликтами.\n"
-" ПоÑле Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð° должна быть иÑпользована команда resolve."
+msgid "&Other"
+msgstr "&Другие"
#, python-format
-msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
-msgstr "некорректный параметр %s.premerge ('%s' не логичеÑкий и не %s)"
-
-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."
+msgid "merging %s and %s to %s\n"
msgstr ""
-"``internal:merge``\n"
-"ИÑпользует внутренний неинтерактивный проÑтой алгоритм ÑлиÑниÑ.\n"
-" ЗавершитьÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹, еÑли обнаружит конфликт, и оÑтавит Ñпециальные\n"
-" маркеры в чаÑтично Ñлитом файле."
#, python-format
-msgid "merging %s incomplete! (edit conflicts, then use 'hg resolve --mark')\n"
-msgstr ""
-"ÑлиÑние %s не завершено! (уÑтраните конфликты, затем иÑпользуйте 'hg resolve "
-"--mark')\n"
-
-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``."
+msgid "merging %s\n"
msgstr ""
-"``internal:dump``\n"
-"Создает три верÑии файла Ð´Ð»Ñ ÑлиÑниÑ: локальную, из хранилища и\n"
-" базовую. Эти файлы можно иÑпользовать Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ð²Ñ€ÑƒÑ‡Ð½ÑƒÑŽ. ЕÑли\n"
-" файл называетÑÑ `a.txt``, то Ñти файлы будут называтьÑÑ ``a.txt.local``,\n"
-" ``a.txt.other`` и ``a.txt.base`` ÑоответÑтвенно и будут находитьÑÑ\n"
-" в том же каталоге, что и ``a.txt``."
#, python-format
-msgid "merging %s failed!\n"
-msgstr "не удалоÑÑŒ ÑлиÑние %s!\n"
+msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
+msgstr ""
-# PROMPT
#, python-format
msgid "was merge of '%s' successful (yn)?"
-msgstr "было ли ÑлиÑние '%s' уÑпешным (y - да, n - нет)?"
+msgstr ""
-# PROMPT
#, python-format
msgid ""
" output file %s appears unchanged\n"
"was merge successful (yn)?"
msgstr ""
-" выходной файл %s, похоже, не изменен\n"
-"было ли ÑлиÑние уÑпешным (y - да, n - нет)?"
+
+#, python-format
+msgid "merging %s failed!\n"
+msgstr ""
msgid "unterminated string"
msgstr "Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ð°Ñ Ñтрока"
@@ -15201,7 +10902,7 @@ msgid ""
msgstr ""
"``unknown()``\n"
" Файл, неизвеÑтный ÑоглаÑно ÑтатуÑу. Эти файлы раÑÑматриваютÑÑ\n"
-" только еÑли иÑпользуетÑÑ Ñтот предикат."
+" только еÑли иÑли иÑпользуетÑÑ Ñтот предикат."
#. i18n: "unknown" is a keyword
msgid "unknown takes no arguments"
@@ -15214,7 +10915,7 @@ msgid ""
msgstr ""
"``ignored()``\n"
" Файл, игнорируемый ÑоглаÑно ÑтатуÑу. Эти файлы раÑÑматриваютÑÑ\n"
-" только еÑли иÑпользуетÑÑ Ñтот предикат."
+" только еÑли иÑли иÑпользуетÑÑ Ñтот предикат."
#. i18n: "ignored" is a keyword
msgid "ignored takes no arguments"
@@ -15233,11 +10934,11 @@ msgstr "clean не требует аргументов"
#, python-format
msgid "not a function: %s"
-msgstr "не функциÑ: %s"
+msgstr ""
msgid ""
"``binary()``\n"
-" File that appears to be binary (contains NUL bytes)."
+" File that appears to be binary (contails NUL bytes)."
msgstr ""
"``binary()``\n"
" Файл, который раÑÑматриваетÑÑ ÐºÐ°Ðº бинарный (Ñодержит Ñимволы NUL)."
@@ -15365,77 +11066,23 @@ msgstr ""
msgid "copied takes no arguments"
msgstr "copied не требует аргументов"
-msgid ""
-"``subrepo([pattern])``\n"
-" Subrepositories whose paths match the given pattern."
-msgstr ""
-"``subrepo([шаблон])``\n"
-" Подхранилища, чьи пути Ñовпадают Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼ шаблоном"
-
-#. i18n: "subrepo" is a keyword
-msgid "subrepo takes at most one argument"
-msgstr "subrepo принимает макÑимум один ргумент"
-
-msgid "subrepo requires a pattern or no arguments"
-msgstr "аргументом subrepo может быть либо шаблон, либо ничего"
-
msgid "invalid token"
msgstr "неизвеÑтный Ñимвол"
msgid "starting revisions are not directly related"
-msgstr "начальные ревизии не ÑвÑзаны напрÑмую"
+msgstr ""
#, python-format
msgid "inconsistent state, %s:%s is good and bad"
-msgstr "противоречивое ÑоÑтоÑние, %s:%s одновременно плохой и хороший"
+msgstr ""
#, python-format
msgid "unknown bisect kind %s"
-msgstr "неизвеÑтный тип биÑекции %s"
-
-msgid "invalid bisect state"
-msgstr "некорректное ÑоÑтоÑние биÑекции"
-
-#. i18n: bisect changeset status
-msgid "good"
-msgstr "хороший"
-
-#. i18n: bisect changeset status
-msgid "bad"
-msgstr "плохой"
-
-#. i18n: bisect changeset status
-msgid "skipped"
-msgstr "пропущен"
-
-#. i18n: bisect changeset status
-msgid "untested"
-msgstr "непротеÑтирован"
-
-#. i18n: bisect changeset status
-msgid "good (implicit)"
-msgstr "хороший (неÑвно)"
-
-#. i18n: bisect changeset status
-msgid "bad (implicit)"
-msgstr "плохой (неÑвно)"
+msgstr ""
msgid "disabled extensions:"
msgstr "отключенные раÑширениÑ:"
-msgid "VALUE"
-msgstr "ЗÐÐЧЕÐИЕ"
-
-msgid "DEPRECATED"
-msgstr "УСТÐРЕЛО"
-
-msgid ""
-"\n"
-"[+] marked option can be specified multiple times\n"
-msgstr ""
-"\n"
-"параметры, помеченные [+], могут указыватьÑÑ Ð¼Ð½Ð¾Ð³Ð¾ÐºÑ€Ð°Ñ‚Ð½Ð¾\n"
-
msgid "Configuration Files"
msgstr "Файлы конфигурации"
@@ -15461,7 +11108,7 @@ msgid "Specifying File Sets"
msgstr "Задание набора файлов"
msgid "Diff Formats"
-msgstr "Форматы файлов различий"
+msgstr "Форматы diff'ов"
msgid "Merge Tools"
msgstr "ИнÑтрументы Ð´Ð»Ñ ÑлиÑниÑ"
@@ -15472,11 +11119,11 @@ msgstr "ИÑпользование шаблонов"
msgid "URL Paths"
msgstr "Пути URL"
-msgid "Using Additional Features"
+msgid "Using additional features"
msgstr "ИÑпользование дополнительных возможноÑтей"
msgid "Subrepositories"
-msgstr "Подхранилища"
+msgstr "Субрепозитории"
msgid "Configuring hgweb"
msgstr "ÐаÑтройка hgweb"
@@ -15484,11 +11131,8 @@ msgstr "ÐаÑтройка hgweb"
msgid "Glossary"
msgstr "ГлоÑÑарий"
-msgid "Syntax for Mercurial Ignore Files"
-msgstr "СинтакÑÐ¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Mercurial"
-
-msgid "Working with Phases"
-msgstr "Работа c фазами"
+msgid "syntax for Mercurial ignore files"
+msgstr "ÑинтакÑÐ¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Mercurial"
msgid ""
"The Mercurial system uses a set of configuration files to control\n"
@@ -15519,15 +11163,15 @@ msgid ""
"The above entries will be referred to as ``ui.username`` and\n"
"``ui.verbose``, respectively. See the Syntax section below."
msgstr ""
-"Эти параметры далее будут упоминатьÑÑ ÐºÐ°Ðº ``ui.username`` и\n"
-"``ui.verbose`` ÑоответÑтвенно. См. раздел СинтакÑÐ¸Ñ Ð½Ð¸Ð¶Ðµ."
+"Эти праметры далее будут упоминатьÑÑ ÐºÐ°Ðº ``ui.username`` и\n"
+"``ui.verbose`` ÑоответÑвенно. См. раздел СинтакÑÐ¸Ñ Ð½Ð¸Ð¶Ðµ."
msgid ""
"Files\n"
-"====="
+"-----"
msgstr ""
"Файлы\n"
-"====="
+"-----"
msgid ""
"Mercurial reads configuration data from several files, if they exist.\n"
@@ -15542,8 +11186,8 @@ msgstr ""
"файлы ÑамоÑтоÑтельно: глобальные наÑтройки, вроде имени пользователÑ, "
"обычно\n"
"помещают в ``%USERPROFILE%\\mercurial.ini`` или ``$HOME/.hgrc``, а\n"
-"локальные наÑтройки хранÑÑ‚ÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ хранилища в файле\n"
-"``<хранилище>/.hg/hgrc``."
+"локальные наÑтройки хранÑÑ‚ÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² файле\n"
+"``<репозиторий>/.hg/hgrc``."
msgid ""
"The names of these files depend on the system on which Mercurial is\n"
@@ -15557,39 +11201,32 @@ msgstr ""
"поÑледующие переопределÑÑŽÑ‚ предыдущие. ЕÑли далее указано неÑколько\n"
"путей, первые имеют приоритет над поÑледующими."
-msgid "| (All) ``<repo>/.hg/hgrc``"
-msgstr "| (All) ``<хранилище>/.hg/hgrc``"
+msgid "| (Unix, Windows) ``<repo>/.hg/hgrc``"
+msgstr "| (Unix, Windows) ``<репозиторий>/.hg/hgrc``"
msgid ""
" Per-repository configuration options that only apply in a\n"
" particular repository. This file is not version-controlled, and\n"
" will not get transferred during a \"clone\" operation. Options in\n"
" this file override options in all other configuration files. On\n"
-" Plan 9 and Unix, most of this file will be ignored if it doesn't\n"
-" belong to a trusted user or to a trusted group. See the documentation\n"
-" for the ``[trusted]`` section below for more details."
+" Unix, most of this file will be ignored if it doesn't belong to a\n"
+" trusted user or to a trusted group. See the documentation for the\n"
+" ``[trusted]`` section below for more details."
msgstr ""
-" Индивидуальные наÑтройки хранилища - Ñто те, которые дейÑтвуют\n"
-" только Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ хранилища. Этот файл не учаÑтвует в контроле\n"
+" Индивидуальные наÑтройки Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ - Ñто те, которые дейÑтвуют\n"
+" только Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¼Ñƒ репозиторию. Этот файл не учаÑтвует в контроле\n"
" верÑий и не ÑкачиваетÑÑ Ð¿Ñ€Ð¸ клонировании. ÐаÑтройки в Ñтом файле\n"
-" переопределÑÑŽÑ‚ наÑтройки других файлов. Ð’ Unix и Plan9 Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ñ‡Ð°ÑÑ‚ÑŒ\n"
-" Ñтого файла игнорируетÑÑ, еÑли он не принадлежат доверенному\n"
-" пользователю или группе. См. документацию по Ñекции ``[trusted]``."
+" переопределÑÑŽÑ‚ наÑтройки других файлов. Ð’ Unix Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ñ‡Ð°ÑÑ‚ÑŒ Ñтого\n"
+" файла игнорируетÑÑ, еÑли он не принадлежат доверенному пользователю\n"
+" или группе. См. документацию по Ñекции ``[trusted]``."
msgid ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
"| (Unix) ``$HOME/.hgrc``\n"
"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
"| (Windows) ``%HOME%\\.hgrc``\n"
"| (Windows) ``%HOME%\\Mercurial.ini``"
msgstr ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
-"| (Unix) ``$HOME/.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
-"| (Windows) ``%HOME%\\.hgrc``\n"
-"| (Windows) ``%HOME%\\Mercurial.ini``"
msgid ""
" Per-user configuration file(s), for the user running Mercurial. On\n"
@@ -15603,19 +11240,13 @@ msgstr ""
" запущен Mercurial. Под Windows 9x ``%HOME%`` заменÑетÑÑ Ð½Ð°\n"
" %APPDATA%. ÐаÑтройки из Ñтих файлов применÑÑŽÑ‚ÑÑ ÐºÐ¾ вÑем командам,\n"
" выполнÑемым Ñтим пользователем в любом каталоге. ÐаÑтройки из\n"
-" из Ñтих файлов переопределÑÑŽÑ‚ общеÑиÑтемные наÑтройки и наÑтройки\n"
-" данной инÑталлÑции."
+" из Ñтих файлов переопределÑÑŽÑ‚ общеÑиÑтемные наÑтройки инаÑтройки\n"
+"данной инÑталлÑции."
msgid ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
"| (Unix) ``/etc/mercurial/hgrc``\n"
"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
msgstr ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``/etc/mercurial/hgrc``\n"
-"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
msgid ""
" Per-system configuration files, for the system on which Mercurial\n"
@@ -15629,13 +11260,9 @@ msgstr ""
" ÐаÑтройки из Ñтих файлов переопределÑÑŽÑ‚ наÑтройки инÑталлÑции."
msgid ""
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc.d/*.rc``\n"
"| (Unix) ``<install-root>/etc/mercurial/hgrc``\n"
"| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
msgstr ""
-"| (Plan 9) ``<корень-уÑтановки>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<корень-уÑтановки>/lib/mercurial/hgrc.d/*.rc``\n"
"| (Unix) ``<корень-уÑтановки>/etc/mercurial/hgrc``\n"
"| (Unix) ``<корень-уÑтановки>/etc/mercurial/hgrc.d/*.rc``"
@@ -15672,21 +11299,25 @@ msgid ""
" keys contain PATH-like strings, every part of which must reference\n"
" a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will\n"
" be read. Mercurial checks each of these locations in the specified\n"
-" order until one or more configuration files are detected."
+" order until one or more configuration files are detected. If the\n"
+" pywin32 extensions are not installed, Mercurial will only look for\n"
+" site-wide configuration in ``C:\\Mercurial\\Mercurial.ini``."
msgstr ""
" ÐаÑтройки из файлов конфигурации инÑталлÑции/общеÑиÑтемных файлов\n"
-" влиÑÑŽÑ‚ на вÑе команды, запуÑкаемые вÑеми пользователÑми в любых\n"
-" каталогах. Ключи рееÑтра Ñодержат Ñтроки, по формату похожие на PATH,\n"
-" ÐºÐ°Ð¶Ð´Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ которых должна быть путем к файлу ``Mercurial.ini``\n"
-" или каталогу Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ ``*.rc``. Mercurial проÑматривает вÑе Ñти пути\n"
-" в указанном порÑдке пока не найдет один или более файл конфигурации."
+" влиÑÑŽÑ‚ на вÑе команды, запуÑкаемые вÑеми Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¼Ñ Ð² любых\n"
+" директориÑÑ…. Ключи рееÑтра Ñодержат Ñтроки, ÐºÐ°Ð¶Ð´Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ которых\n"
+" должна быть путем к файлу ``Mercurial.ini`` или каталогу Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸\n"
+" ``*.rc``. Mercurial проÑматривает вÑе Ñти пути в указанном порÑдке\n"
+" пока не найдет один или более файл конфигурации. ЕÑли не уÑтановлены\n"
+" раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ pywin32, Mercurial будет иÑкать только ÑиÑтемный конфиг\n"
+" в ``C:\\Mercurial\\Mercurial.ini``."
msgid ""
"Syntax\n"
-"======"
+"------"
msgstr ""
"СинтакÑиÑ\n"
-"========="
+"------"
msgid ""
"A configuration file consists of sections, led by a ``[section]`` header\n"
@@ -15703,10 +11334,6 @@ msgid ""
" green=\n"
" eggs"
msgstr ""
-" [spam]\n"
-" eggs=ham\n"
-" green=\n"
-" eggs"
msgid ""
"Each line contains one entry. If the lines that follow are indented,\n"
@@ -15718,7 +11345,7 @@ msgstr ""
"выделены отÑтупами, они ÑчитаютÑÑ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸ÐµÐ¼ Ñтой наÑтройки.\n"
"Ведущие пробелы удалÑÑŽÑ‚ÑÑ Ð¸Ð· значений. ПуÑтые Ñтроки пропуÑкаютÑÑ.\n"
"Строки, начинающиеÑÑ Ñ ``#`` или ``;`` игнорируютÑÑ Ð¸ могут\n"
-"иÑпользоватьÑÑ Ð² качеÑтве комментариев."
+"иÑпользоватьÑÑ Ð² качеÑтве коментариев."
msgid ""
"Configuration keys can be set multiple times, in which case Mercurial\n"
@@ -15733,10 +11360,6 @@ msgid ""
" ham=serrano\n"
" eggs=small"
msgstr ""
-" [spam]\n"
-" eggs=large\n"
-" ham=serrano\n"
-" eggs=small"
msgid "This would set the configuration key named ``eggs`` to ``small``."
msgstr "Это уÑтановит ключ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ ``eggs`` в значение ``small``."
@@ -15755,10 +11378,6 @@ msgid ""
" ham=serrano\n"
" eggs=small"
msgstr ""
-" [foo]\n"
-" eggs=large\n"
-" ham=serrano\n"
-" eggs=small"
msgid ""
" [bar]\n"
@@ -15766,10 +11385,6 @@ msgid ""
" green=\n"
" eggs"
msgstr ""
-" [bar]\n"
-" eggs=ham\n"
-" green=\n"
-" eggs"
msgid ""
" [foo]\n"
@@ -15777,10 +11392,6 @@ msgid ""
" eggs=medium\n"
" bread=toasted"
msgstr ""
-" [foo]\n"
-" ham=prosciutto\n"
-" eggs=medium\n"
-" bread=toasted"
msgid ""
"This would set the ``eggs``, ``ham``, and ``bread`` configuration keys\n"
@@ -15790,7 +11401,7 @@ msgid ""
msgstr ""
"Ключи ``eggs``, ``ham`` и ``bread`` Ñекции ``foo`` будут уÑтановлены\n"
"в Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ``medium``, ``proscuitto`` и ``toasted`` ÑоответÑтвенно.\n"
-"Как видно, имеет значение только поÑледнÑÑ ÑƒÑтановка параметра."
+"Как видно, имеет значение только поÑледÑÑ ÑƒÑтановка параметра."
msgid ""
"If a configuration key is set multiple times in different\n"
@@ -15820,7 +11431,7 @@ msgstr ""
"вида ``~user``. Это позволÑет напиÑать::"
msgid " %include ~/.hgrc.d/$HOST.rc"
-msgstr " %include ~/.hgrc.d/$HOST.rc"
+msgstr ""
msgid "to include a different configuration file on each computer you use."
msgstr "чтобы включать различные файлы на разных компьютерах."
@@ -15853,7 +11464,7 @@ msgstr ""
"иÑключением Ñлучаев, когда Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»ÑŽÑ‡Ð°ÑŽÑ‚ÑÑ Ð² двойные кавычки::"
msgid " allow_read = \"John Doe, PhD\", brian, betty"
-msgstr " allow_read = \"John Doe, PhD\", brian, betty"
+msgstr ""
msgid ""
"Quotation marks can be escaped by prefixing them with a backslash. Only\n"
@@ -15866,10 +11477,10 @@ msgstr ""
msgid ""
"Sections\n"
-"========"
+"--------"
msgstr ""
"Секции\n"
-"======"
+"--------"
msgid ""
"This section describes the different sections that may appear in a\n"
@@ -15882,10 +11493,8 @@ msgstr ""
msgid ""
"``alias``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``alias``\n"
-"---------"
msgid ""
"Defines command aliases.\n"
@@ -15896,12 +11505,12 @@ msgid ""
"already used by ``$N`` in the definition are put at the end of the\n"
"command to be executed."
msgstr ""
-"ОпределÑет пÑевдонимы команд\n"
+"ОпределÑет пÑевдонимы (алиаÑÑ‹) команд\n"
"ПÑевдонимы позволÑÑŽÑ‚ определить ÑобÑтвенную команду Ñ Ð¸Ñпользованием\n"
"других команд (или пÑевдонимов), возможно принимающую аргументы.\n"
"Позиционные аргументы в виде ``$1``, ``$2`` ... в определении\n"
"пÑевдонима раÑкрываютÑÑ Ð¿ÐµÑ€ÐµÐ´ выполнением. Позиционные аргументы,\n"
-"еще не иÑпользованные до ``$N`` в определении, добавлÑÑŽÑ‚ÑÑ Ð² конец\n"
+"еще не иÑпользванные до ``$N`` в определении, добавлÑÑŽÑ‚ÑÑ Ð² конец\n"
"выполнÑемой команды."
msgid "Alias definitions consist of lines of the form::"
@@ -15914,7 +11523,7 @@ msgid "For example, this definition::"
msgstr "Ðапример, Ñто определение::"
msgid " latest = log --limit 5"
-msgstr " latest = log --limit 5"
+msgstr ""
msgid ""
"creates a new command ``latest`` that shows only the five most recent\n"
@@ -15924,7 +11533,7 @@ msgstr ""
"ревизий. Можно Ñоздавать пÑевдонимы Ñ Ð¸Ñпользованием уже определенных::"
msgid " stable5 = latest -b stable"
-msgstr " stable5 = latest -b stable"
+msgstr ""
msgid ""
".. note:: It is possible to create aliases with the same names as\n"
@@ -15944,8 +11553,8 @@ msgstr ""
"командной оболочки (шела). ПÑевдоним шела иÑполнÑетÑÑ ÑˆÐµÐ»Ð¾Ð¼ и позволÑет\n"
"запуÑкать произвольные команды. Ðапример, ::"
-msgid " echo = !echo $@"
-msgstr " echo = !echo $@"
+msgid " echo = !echo"
+msgstr ""
msgid ""
"will let you do ``hg echo foo`` to have ``foo`` printed in your\n"
@@ -15955,101 +11564,34 @@ msgstr ""
"в терминале. Пример получше::"
msgid " purge = !$HG status --no-status --unknown -0 | xargs -0 rm"
-msgstr " purge = !$HG status --no-status --unknown -0 | xargs -0 rm"
+msgstr ""
msgid ""
"which will make ``hg purge`` delete all unknown files in the\n"
"repository in the same manner as the purge extension."
msgstr ""
-"Это заÑтавит ``hg purge`` удалить вÑе неизвеÑтные в хранилище файлы,\n"
+"Это позволит удалить вÑе неизвеÑтные файлы в рабочем каталоге,\n"
"как Ñто делает раÑширение purge."
msgid ""
-"Positional arguments like ``$1``, ``$2``, etc. in the alias definition\n"
-"expand to the command arguments. Unmatched arguments are\n"
-"removed. ``$0`` expands to the alias name and ``$@`` expands to all\n"
-"arguments separated by a space. These expansions happen before the\n"
-"command is passed to the shell."
-msgstr ""
-"Позиционные аргументы, такие как ``$1``, ``$2`` и т.п. в определении\n"
-"пÑевдонима раÑкрываютÑÑ Ð² аргументы команды. Ðргументы, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ…\n"
-"нет ÑоответÑвующих параметров, удалÑÑŽÑ‚ÑÑ. ``$0`` раÑкрываетÑÑ Ð² имÑ\n"
-"пÑевдонима, ``$@`` - в ÑпиÑок вÑех аргументов, разделенных пробелами.\n"
-"Эти подÑтановки выполнÑÑŽÑ‚ÑÑ Ð´Ð¾ того, как команда будет передана\n"
-"оболочке."
-
-msgid ""
-"Shell aliases are executed in an environment where ``$HG`` expands to\n"
+"Shell aliases are executed in an environment where ``$HG`` expand to\n"
"the path of the Mercurial that was used to execute the alias. This is\n"
"useful when you want to call further Mercurial commands in a shell\n"
"alias, as was done above for the purge alias. In addition,\n"
-"``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg\n"
+"``$HG_ARGS`` expand to the arguments given to Mercurial. In the ``hg\n"
"echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``."
msgstr ""
"ПÑевдонимы оболочки выполнÑÑŽÑ‚ÑÑ Ð² Ñреде, в которой ``$HG`` раÑкрываетÑÑ\n"
"в путь к иÑполнÑемому в данный момент файлу Mercurial. Это полезно,\n"
"еÑли вы хотите запуÑтить еще одну команду Mercurial из пÑевдонима,\n"
-"как Ñто Ñделано в предыдущем примере Ð´Ð»Ñ purge. Кроме того, ``$HG_ARGS``\n"
+"как Ñто Ñделано в предыдущем примере. Кроме того, ``$HG_ARGS``\n"
"раÑкрываетÑÑ Ð² аргументы, переданные Mercurial. Ð’ примере Ñ\n"
"``hg echo foo``, ``$HG_ARGS`` раÑкроетÑÑ Ð² ``echo foo``."
msgid ""
-".. note:: Some global configuration options such as ``-R`` are\n"
-" processed before shell aliases and will thus not be passed to\n"
-" aliases."
-msgstr ""
-".. note:: Ðекоторые глобальные параметры, такие как ``-R``,\n"
-" обрабатываютÑÑ Ð¿ÐµÑ€ÐµÐ´ пÑевдонимами оболочки, поÑтому они не будут\n"
-" переданы в пÑевдонимы."
-
-msgid ""
-"\n"
-"``annotate``\n"
-"------------"
-msgstr ""
-"\n"
-"``annotate``\n"
-"------------"
-
-msgid ""
-"Settings used when displaying file annotations. All values are\n"
-"Booleans and default to False. See ``diff`` section for related\n"
-"options for the diff command."
-msgstr ""
-"Параметры, иÑпользуемые при отображении аннотаций файлов. Ð’Ñе\n"
-"Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÑвлÑÑŽÑ‚ÑÑ Ð»Ð¾Ð³Ð¸Ñ‡ÐµÑкими и по умолчанию уÑтановлены в False (Ложь).\n"
-"См. также Ñекцию ``diff``, в которой имеютÑÑ Ñходные параметры\n"
-"Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ diff."
-
-msgid ""
-"``ignorews``\n"
-" Ignore white space when comparing lines."
-msgstr ""
-"``ignorews``\n"
-" Игнорировать пробельные Ñимволы при Ñравнении Ñтрок"
-
-msgid ""
-"``ignorewsamount``\n"
-" Ignore changes in the amount of white space."
-msgstr ""
-"``ignorewsamount``\n"
-" Игнорировать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² количеÑтве пробельных Ñимволов"
-
-msgid ""
-"``ignoreblanklines``\n"
-" Ignore changes whose lines are all blank."
-msgstr ""
-"``ignoreblanklines``\n"
-" Игнорировать изменениÑ, ÑоÑтоÑщие только из пуÑÑ‚Ñ‹Ñ… Ñтрок"
-
-msgid ""
-"\n"
"``auth``\n"
-"--------"
+"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``auth``\n"
-"--------"
msgid ""
"Authentication credentials for HTTP authentication. This section\n"
@@ -16081,10 +11623,6 @@ msgid ""
" foo.password = bar\n"
" foo.schemes = http https"
msgstr ""
-" foo.prefix = hg.intevation.org/mercurial\n"
-" foo.username = foo\n"
-" foo.password = bar\n"
-" foo.schemes = http https"
msgid ""
" bar.prefix = secure.example.org\n"
@@ -16092,10 +11630,6 @@ msgid ""
" bar.cert = path/to/file.cert\n"
" bar.schemes = https"
msgstr ""
-" bar.prefix = secure.example.org\n"
-" bar.key = path/to/file.key\n"
-" bar.cert = path/to/file.cert\n"
-" bar.schemes = https"
msgid "Supported arguments:"
msgstr "Поддерживаемые аргументы:"
@@ -16114,24 +11648,20 @@ msgstr ""
" запиÑÑŒ аутентификации Ñ Ñамым длинным подходÑщим префикÑом (при Ñтом\n"
" ``*`` Ñовпадает Ñо вÑем и ÑчитаетÑÑ Ñовпадением Ñ Ð´Ð»Ð¸Ð½Ð¾Ð¹ 1). ЕÑли\n"
" Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð½Ðµ включает Ñхему, при проверке ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð¸Ð· URI также.\n"
-" удалÑетÑÑ Ñхема и далее проверÑетÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ schemes."
+" удалÑетÑÑ Ñхема и далее прверÑетÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ schemes."
msgid ""
"``username``\n"
" Optional. Username to authenticate with. If not given, and the\n"
" remote site requires basic or digest authentication, the user will\n"
" be prompted for it. Environment variables are expanded in the\n"
-" username letting you do ``foo.username = $USER``. If the URI\n"
-" includes a username, only ``[auth]`` entries with a matching\n"
-" username or without a username will be considered."
+" username letting you do ``foo.username = $USER``."
msgstr ""
"``username``\n"
" Ðе обÑзательный. ИмÑ, иÑпользуемое при аутентификации. ЕÑли не\n"
-" задан, а отдалённый Ñайт требует базовую или digest-аутентификацию,\n"
+" задан, а удаленный Ñайт требует базовую или digest-аутентификацию,\n"
" пользователь должен будет ввеÑти имÑ. Переменные окружениÑ\n"
-" раÑкрываютÑÑ, позволÑÑ Ð½Ð°Ð¿Ð¸Ñать ``foo.username = $USER``. ЕÑли URI\n"
-" включает Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ, раÑÑматриваютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ параметры из \n"
-" Ñекции ``[auth]`` Ñ Ñовпадающим именем или без имени."
+" раÑкрываютÑÑ, позволÑÑ Ð½Ð°Ð¿Ð¸Ñать ``foo.username = $USER``."
msgid ""
"``password``\n"
@@ -16141,7 +11671,7 @@ msgid ""
msgstr ""
"``password``\n"
" Ðе обÑзательный. Пароль Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸. ЕÑли не задан, а\n"
-" отдалённый Ñайт требует базовую или digest-аутентификацию,\n"
+" удаленный Ñайт требует базовую или digest-аутентификацию,\n"
" пользователь должен будет ввеÑти пароль."
msgid ""
@@ -16151,7 +11681,7 @@ msgid ""
msgstr ""
"``key``\n"
"\n"
-" Ðе обÑзательный. Зашифрованный PEM ключ Ñертификата клиента.\n"
+" Ðе обÑзательный. Защифрованный PEM ключ Ñертификата клиента.\n"
" Переменные Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ñ€Ð°ÑкрываютÑÑ Ð² Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°."
msgid ""
@@ -16160,7 +11690,7 @@ msgid ""
" variables are expanded in the filename."
msgstr ""
"``cert``\n"
-" Ðе обÑзательный. Зашифрованный PEM файл цепочки Ñертификата клиента.\n"
+" Ðе обÑзательный. Защифрованный PEM файл цепочки Ñертификата клиента.\n"
" Переменные Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ñ€Ð°ÑкрываютÑÑ Ð² Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°."
msgid ""
@@ -16172,7 +11702,7 @@ msgid ""
" Default: https."
msgstr ""
"``schemes``\n"
-" Ðе обÑзательный. Разделенный пробелами ÑпиÑок Ñхем URI длÑ\n"
+" Ðе обÑзательный. Разделенный пробелами ÑпиÑко Ñхем URI длÑ\n"
" Ñтой запиÑи. ИÑпользуютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли prefix не включает имени\n"
" Ñхемы. ПоддерживаютÑÑ http и https. Также Ñовпадут Ð´Ð»Ñ ÑтатичеÑких\n"
" http и https ÑоответÑтвенно.\n"
@@ -16188,11 +11718,8 @@ msgstr ""
msgid ""
"\n"
"``decode/encode``\n"
-"-----------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``decode/encode``\n"
-"-----------------"
msgid ""
"Filters for transforming files on checkout/checkin. This would\n"
@@ -16212,10 +11739,10 @@ msgid ""
"For each file only the first matching filter applies."
msgstr ""
"Фильтр ÑоÑтоит из шаблона Ñ Ð¿Ð¾Ñледующей командой. По умолчанию,\n"
-"шаблоны задаютÑÑ Ð² виде glob'ов, пути отноÑительно ÐºÐ¾Ñ€Ð½Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°.\n"
+"шаблоны задаютÑÑ Ð² виде glob'ов, пути отноÑительно ÐºÐ¾Ñ€Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ.\n"
"Ðапример, чтобы выбрать вÑе файлы, оканчивающиеÑÑ Ð½Ð° ``.txt``, только\n"
-"из корневого каталога хранилища, иÑпользуйте шаблон ``.txt``. Чтобы\n"
-"выбрать файлы, оканчивающиеÑÑ Ð½Ð° ``.c``, во вÑем хранилище,\n"
+"из корневого каталога репозиториÑ, иÑпользуйте шаблон ``.txt``. Чтобы\n"
+"выбрать файлы, оканчивающиеÑÑ Ð½Ð° ``.c``, во вÑем репозитории,\n"
"иÑпользуйте шаблон ``**.c``. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ файла применÑетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾\n"
"первый Ñовпавший фильтр."
@@ -16292,14 +11819,11 @@ msgstr ""
msgid ""
"\n"
"``defaults``\n"
-"------------"
+"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``defaults``\n"
-"------------"
msgid "(defaults are deprecated. Don't use them. Use aliases instead)"
-msgstr "(уÑтарело. Ðе иÑпользуйте Ñту Ñекцию. ИÑпользуйте пÑевдонимы.)"
+msgstr "(уÑтарело. Ðе иÑпользйте Ñту Ñекцию. ИÑпользуйте пÑевдонимы.)"
msgid ""
"Use the ``[defaults]`` section to define command defaults, i.e. the\n"
@@ -16321,51 +11845,42 @@ msgid ""
" log = -v\n"
" status = -m"
msgstr ""
-" [defaults]\n"
-" log = -v\n"
-" status = -m"
msgid ""
"The actual commands, instead of their aliases, must be used when\n"
"defining command defaults. The command defaults will also be applied\n"
"to the aliases of the commands defined."
msgstr ""
-"При определении умолчаний Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´, должны иÑпользоватьÑÑ Ñами команды,\n"
+"При опрпедлении умолчаний Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´, дожны иÑпользоватьÑÑ Ñами команды,\n"
"а не из пÑевдонимы. Ð£Ð¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ применÑÑŽÑ‚ÑÑ Ñ‚Ð°ÐºÐ¶Ðµ к определенным\n"
"пÑевдонимам."
msgid ""
"\n"
"``diff``\n"
-"--------"
+"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``diff``\n"
-"--------"
msgid ""
-"Settings used when displaying diffs. Everything except for ``unified``\n"
-"is a Boolean and defaults to False. See ``annotate`` section for\n"
-"related options for the annotate command."
+"Settings used when displaying diffs. Everything except for ``unified`` is a\n"
+"Boolean and defaults to False."
msgstr ""
"ÐаÑтройки Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ð¹. Ð’Ñе параметры, кроме ``unified``, ÑвлÑÑŽÑ‚ÑÑ\n"
-"логичеÑкими и по умолчанию имеют значение Ложь (False). См. Ñекцию "
-"``annotate``\n"
-"Ð´Ð»Ñ Ñправки о ÑвÑзанных параметрах команды annotate."
+"логичеÑкими и по умолчанию имеют значение Ложь (False)."
msgid ""
"``git``\n"
" Use git extended diff format."
msgstr ""
"``git``\n"
-" ИÑпользовать раÑширенный формат git Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² различий."
+"иÑпользовать раÑширенный формат git Ð´Ð»Ñ diff'ов"
msgid ""
"``nodates``\n"
" Don't include dates in diff headers."
msgstr ""
"``nodates``\n"
-" Ðе добавлÑÑ‚ÑŒ даты в заголовки файлов различий."
+" Ðе добавлÑÑ‚ÑŒ даты в заголовки diff'ов."
msgid ""
"``showfunc``\n"
@@ -16375,6 +11890,27 @@ msgstr ""
" Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ, в какой оно Ñделано функции"
msgid ""
+"``ignorews``\n"
+" Ignore white space when comparing lines."
+msgstr ""
+"``ignorews``\n"
+" Игнорировать пробельные Ñимволы при Ñравнении Ñтрок"
+
+msgid ""
+"``ignorewsamount``\n"
+" Ignore changes in the amount of white space."
+msgstr ""
+"``ignorewsamount``\n"
+" Игнорировать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² количеÑтве пробельных Ñимволов"
+
+msgid ""
+"``ignoreblanklines``\n"
+" Ignore changes whose lines are all blank."
+msgstr ""
+"``ignoreblanklines``\n"
+" Игнорировать изменениÑ, ÑоÑтоÑщие только из пуÑÑ‚Ñ‹Ñ… Ñтрок"
+
+msgid ""
"``unified``\n"
" Number of lines of context to show."
msgstr ""
@@ -16383,13 +11919,11 @@ msgstr ""
msgid ""
"``email``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``email``\n"
-"---------"
msgid "Settings for extensions that send email messages."
-msgstr "ÐаÑтройки Ð´Ð»Ñ Ñ€Ð°Ñширений, отправлÑющих ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾ email"
+msgstr "ÐаÑтройки Ð´Ð»Ñ Ñ€Ð°Ñширений, иÑпользующих email Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ Ñообщений"
msgid ""
"``from``\n"
@@ -16457,7 +11991,7 @@ msgstr ""
" ÑчитаютÑÑ ÑƒÐ´Ð¾Ð±Ð½Ñ‹Ð¼Ð¸ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»ÐµÐ¹. ÐдреÑа, заголовки и чаÑти,\n"
" не Ñодержащие патчи, будут закодированы первой кодировкой, длÑ\n"
" в которую корректно переводитÑÑ Ð¸ÑÑ…Ð¾Ð´Ð½Ð°Ñ (``$HGENCODING``,\n"
-" ``ui.fallbackencoding``). ЕÑли корректно преобразовать не удаётÑÑ,\n"
+" ``ui.fallbackencoding``). ЕÑли корректно преобразовать не удетаетÑÑ,\n"
" текÑÑ‚ поÑылаетÑÑ ÐºÐ°Ðº еÑÑ‚ÑŒ. По умолчанию - пуÑтой (буквально) ÑпиÑок."
msgid " Order of outgoing email character sets:"
@@ -16497,19 +12031,16 @@ msgstr ""
msgid ""
"\n"
"``extensions``\n"
-"--------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``extensions``\n"
-"--------------"
msgid ""
"Mercurial has an extension mechanism for adding new features. To\n"
"enable an extension, create an entry for it in this section."
msgstr ""
-"Mercurial иÑпользует механизм раÑширений Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ñ‹Ñ…\n"
-"возможноÑтей. Чтобы включить раÑширение, Ñоздайте Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ запиÑÑŒ\n"
-"в Ñтой Ñекции."
+"Mercurial поддерживает механизм раÑширений Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ñ‹Ñ…\n"
+"функций. Чтобы включить раÑширение, Ñоздайте Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ запиÑÑŒ в Ñтой\n"
+"Ñекции."
msgid ""
"If you know that the extension is already in Python's search path,\n"
@@ -16527,7 +12058,7 @@ msgid ""
msgstr ""
"Ð’ противном Ñлучае, укажите любое Ð¸Ð¼Ñ Ñ Ð¿Ð¾Ñледующим знаком ``=``,\n"
"поÑле которого идет путь к файлу ``.py`` (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñ€Ð°Ñширение файла)\n"
-"Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸ÐµÐ¹ раÑширениÑ."
+"Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†ÐµÐ¹ раÑширениÑ."
msgid ""
"To explicitly disable an extension that is enabled in an hgrc of\n"
@@ -16556,12 +12087,42 @@ msgstr ""
msgid ""
"\n"
-"``format``\n"
-"----------"
+"``hostfingerprints``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+msgstr ""
+
+msgid ""
+"Fingerprints of the certificates of known HTTPS servers.\n"
+"A HTTPS connection to a server with a fingerprint configured here will\n"
+"only succeed if the servers certificate matches the fingerprint.\n"
+"This is very similar to how ssh known hosts works.\n"
+"The fingerprint is the SHA-1 hash value of the DER encoded certificate.\n"
+"The CA chain and web.cacerts is not used for servers with a fingerprint."
+msgstr ""
+"Слепки Ñертификатов извеÑтных HTTPS-Ñерверов. При заданном Ñлепке,\n"
+"HTTPS-Ñоединение уÑпешно уÑтановитÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли Ñлепок Ñертификата\n"
+"Ñервера Ñовпадает Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼. Это похоже на работу Ñ Ð¸Ð·Ð²ÐµÑтными хоÑтами\n"
+"по ssh. Слепок - Ñто Ñ…Ñш SHA-1 от Ñертификата, зашифрованного DER.\n"
+"Цепочка CA и web.cacerts не иÑпользуютÑÑ Ð´Ð»Ñ Ñерверов Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸\n"
+"Ñлепками."
+
+msgid "For example::"
+msgstr "Приме::"
+
+msgid ""
+" [hostfingerprints]\n"
+" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:"
+"d6:4b:ee:cc"
msgstr ""
+
+msgid "This feature is only supported when using Python 2.6 or later."
+msgstr "ПоддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли иÑпользуетÑÑ Python 2.6 или выше."
+
+msgid ""
"\n"
"``format``\n"
-"----------"
+"\"\"\"\"\"\"\"\"\"\""
+msgstr ""
msgid ""
"``usestore``\n"
@@ -16573,12 +12134,12 @@ msgid ""
" repositories will be compatible with Mercurial before version 0.9.4."
msgstr ""
"``usestore``\n"
-" ИÑпользовать формат хранилища \"store\", который улучшает\n"
+" ИÑпользовать формат Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ \"store\", который улучшает\n"
" ÑовмеÑтимоÑÑ‚ÑŒ Ñ ÑиÑтемами, которые путают региÑÑ‚Ñ€ букв или еще\n"
" как-нибудь иÑкажают имена файлов. Включен по умолчанию. Отключение\n"
" Ñтого параметра позволит хранить более длинные имена файлов во\n"
" многих ÑитуациÑÑ… ценой ÑовмеÑтимоÑти и позволÑет удоÑтоверитьÑÑ,\n"
-" что Ñозданные хранилища будут ÑовмеÑтимы Ñ Mercurial до\n"
+" что Ñозданные репозитории будут ÑовмеÑтимы Ñ Mercurial до\n"
" верÑии 0.9.4."
msgid ""
@@ -16591,12 +12152,12 @@ msgid ""
" repositories will be compatible with Mercurial before version 1.1."
msgstr ""
"``usefncache``\n"
-" Включить или выключить формат хранилища \"fncache\", который\n"
+" Включить или выключить формат Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ \"fncache\", который\n"
" ÑвлÑетÑÑ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸ÐµÐ¼ формата \"store\" (который должен быть включен,\n"
" чтобы иÑпользовать fncache) и позволÑет иÑпользовать длинные имена\n"
" файлов и избежать иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… в Windows имен\n"
" (например, \"nul\"). По умолчанию включен. Отключение Ñтого параметра\n"
-" позволÑет быть уверенным, что Ñозданные хранилища будут\n"
+" позволÑет быть уверенным, что Ñозданные репозитории будут\n"
" ÑовмеÑтимы Ñ Mercurial до верÑии 1.1."
msgid ""
@@ -16609,90 +12170,270 @@ msgid ""
" repositories will be compatible with Mercurial before version 1.7."
msgstr ""
"``dotencode``\n"
-" Включить или выключить формат хранилища \"dotencode\", который\n"
+" Включить или выключить формат Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ \"dotencode\", который\n"
" ÑвлÑетÑÑ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸ÐµÐ¼ формата \"fncache\" (который должен быть\n"
" включен, чтобы иÑпользовать dotencode), чтобы решить проблемы\n"
" Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ файлов, начинающихÑÑ Ñ ._ в Mac OS X и пробелов в\n"
" Windows. По умолчанию включен. Отключение Ñтого параметра позволÑет\n"
-" быть уверенным, что формат Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñоздаваемого хранилища\n"
+" быть уверенным, что формат Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñоздаваемого репозиториÑ\n"
" будет ÑовмеÑтим Ñ Mercurial до верÑии 1.7."
msgid ""
-"``graph``\n"
-"---------"
+"``merge-patterns``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``graph``\n"
-"---------"
msgid ""
-"Web graph view configuration. This section let you change graph\n"
-"elements display properties by branches, for instance to make the\n"
-"``default`` branch stand out."
+"This section specifies merge tools to associate with particular file\n"
+"patterns. Tools matched here will take precedence over the default\n"
+"merge tool. Patterns are globs by default, rooted at the repository\n"
+"root."
msgstr ""
-"ÐаÑтройки Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð³Ñ€Ð°Ñ„Ð° в веб-интерфейÑе. Эта ÑÐµÐºÑ†Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет\n"
-"менÑÑ‚ÑŒ ÑвойÑтва отображаемых Ñлементов по веткам, например, чтобы\n"
-"выделить ветку ``default``."
+"Эта ÑÐµÐºÑ†Ð¸Ñ Ð·Ð°Ð´Ð°ÐµÑ‚ инÑтрументы Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð², подходÑщих под\n"
+"определенный шаблон. ПодходÑщие Ñюда программы имеют приоритет перед\n"
+"инÑтрументами по умолчанию. Шаблоны по умолчанию имеют формат glob,\n"
+"пути задаютÑÑ Ð¾Ñ‚Ð½Ð¾Ñительно ÐºÐ¾Ñ€Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ."
-msgid " <branch>.<argument> = <value>"
-msgstr " <ветка>.<аргумент> = <значение>"
+msgid ""
+" [merge-patterns]\n"
+" **.c = kdiff3\n"
+" **.jpg = myimgmerge"
+msgstr ""
+
+msgid ""
+"``merge-tools``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
+msgstr ""
msgid ""
-"where ``<branch>`` is the name of the branch being\n"
-"customized. Example::"
-msgstr "где ``<ветка>`` - Ð¸Ð¼Ñ Ð½Ð°Ñтраиваемой ветки. Ðапример::"
+"This section configures external merge tools to use for file-level\n"
+"merges."
+msgstr "Эта ÑÐµÐºÑ†Ð¸Ñ Ð·Ð°Ð´Ð°ÐµÑ‚ внешние инÑтрументы Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ñ… файлов."
+
+msgid "Example ``~/.hgrc``::"
+msgstr "Пример ``~/.hgrc``::"
msgid ""
-" [graph]\n"
-" # 2px width\n"
-" default.width = 2\n"
-" # red color\n"
-" default.color = FF0000"
+" [merge-tools]\n"
+" # Override stock tool location\n"
+" kdiff3.executable = ~/bin/kdiff3\n"
+" # Specify command line\n"
+" kdiff3.args = $base $local $other -o $output\n"
+" # Give higher priority\n"
+" kdiff3.priority = 1"
msgstr ""
-" [graph]\n"
-" # толшина 2 пикÑелÑ\n"
-" default.width = 2\n"
-" # краÑный цвет\n"
-" default.color = FF0000"
+" [merge-tools]\n"
+" # Переопределить изначальное раÑположение программы\n"
+" kdiff3.executable = ~/bin/kdiff3\n"
+" # Задать параметры командной Ñтроки\n"
+" kdiff3.args = $base $local $other -o $output\n"
+" # Задать повышенный приоритет\n"
+" kdiff3.priority = 1"
msgid ""
-"``width``\n"
-" Set branch edges width in pixels."
+" # Define new tool\n"
+" myHtmlTool.args = -m $local $other $base $output\n"
+" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
+" myHtmlTool.priority = 1"
msgstr ""
-"``width``\n"
-" Задает толщину ребер графа Ð´Ð»Ñ Ð²ÐµÑ‚ÐºÐ¸ в пикÑелÑÑ…."
+" # Определить новый инÑтрумент\n"
+" myHtmlTool.args = -m $local $other $base $output\n"
+" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
+" myHtmlTool.priority = 1"
msgid ""
-"``color``\n"
-" Set branch edges color in hexadecimal RGB notation."
+"``priority``\n"
+" The priority in which to evaluate this tool.\n"
+" Default: 0."
msgstr ""
-"``color``\n"
-" Задает цвет ребер графа Ð´Ð»Ñ Ð²ÐµÑ‚ÐºÐ¸ в шеÑтнадцатиричном RGB-виде."
+"``priority``\n"
+" Приоритет, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ выбираетÑÑ Ñтот инÑтрумент.\n"
+" По умолчанию 0."
msgid ""
-"``hooks``\n"
-"---------"
+"``executable``\n"
+" Either just the name of the executable or its pathname. On Windows,\n"
+" the path can use environment variables with ${ProgramFiles} syntax.\n"
+" Default: the tool name."
+msgstr ""
+"``executable``\n"
+" Ð˜Ð¼Ñ Ð¸Ð»Ð¸ полный путь к иÑполнÑемого файлу. Ð’ Windows в пути можно\n"
+" иÑпользовать переменные Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ñ ÑинтакÑиÑом ${ProgramFiles}.\n"
+" По умолчанию: Ð¸Ð¼Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹."
+
+msgid ""
+"``args``\n"
+" The arguments to pass to the tool executable. You can refer to the\n"
+" files being merged as well as the output file through these\n"
+" variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
+" Default: ``$local $base $other``"
+msgstr ""
+"``args``\n"
+" Ðргументы, передаваемые иÑтрументу ÑлиÑниÑ. Можно обращатьÑÑ Ðº\n"
+" Ñливаемым файлам и результату ÑлиÑÐ½Ð¸Ñ Ñ‡ÐµÑ€ÐµÐ· Ñти переменные:\n"
+" ``$base``, ``$local``, ``$other``, ``$output``.\n"
+" По умолчанию: ``$local $base $other``"
+
+msgid ""
+"``premerge``\n"
+" Attempt to run internal non-interactive 3-way merge tool before\n"
+" launching external tool. Options are ``true``, ``false``, or ``keep``\n"
+" to leave markers in the file if the premerge fails.\n"
+" Default: True"
+msgstr ""
+"``premerge``\n"
+" ПытатьÑÑ Ð·Ð°Ð¿ÑƒÑкать внутренний неинтерактивный инÑтрумент ÑлиÑниÑ\n"
+" Ð´Ð»Ñ Ñ‚Ñ€ÐµÑ… файлов перед запуÑком внешней программы. Возможны значениÑ\n"
+" ``true``(включено), ``false``(выключено) или ``keep``, чтобы оÑтавить\n"
+" маркеры конфликтов в файлах при неудавшемÑÑ Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¼ ÑлиÑнии.\n"
+" По умолчанию: True"
+
+msgid ""
+"``binary``\n"
+" This tool can merge binary files. Defaults to False, unless tool\n"
+" was selected by file pattern match."
+msgstr ""
+"``binary``\n"
+" Этот инÑтрумент может иÑпользоватьÑÑ Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ð±Ð¸Ð½Ð°Ñ€Ð½Ñ‹Ñ… файлов.\n"
+" По умолчанию False, еÑли Ñтот инÑтрумент не был выбран при\n"
+" Ñовпадении шаблона имени файла."
+
+msgid ""
+"``symlink``\n"
+" This tool can merge symlinks. Defaults to False, even if tool was\n"
+" selected by file pattern match."
+msgstr ""
+"``symlink``\n"
+" Этот инÑтрумент может иÑпользоватьÑÑ Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ ÑимволичеÑких ÑÑылок\n"
+" По умолчанию False, даже еÑли инÑтрумент был выбран при Ñовпадении\n"
+" шаблона имени файла."
+
+msgid ""
+"``check``\n"
+" A list of merge success-checking options:"
+msgstr ""
+"``check``\n"
+" СпиÑок параметров, ÑвидетельÑтвующих об уÑпехе ÑлиÑниÑ::"
+
+msgid ""
+" ``changed``\n"
+" Ask whether merge was successful when the merged file shows no changes.\n"
+" ``conflicts``\n"
+" Check whether there are conflicts even though the tool reported "
+"success.\n"
+" ``prompt``\n"
+" Always prompt for merge success, regardless of success reported by tool."
+msgstr ""
+" ``changed``\n"
+" СпроÑить, было ли ÑлиÑние уÑпешным, еÑли в Ñлитом файле нет изменений.\n"
+" ``conflicts``\n"
+" Проверить наличие конфликтов, даже еÑли программа ÑлиÑÐ½Ð¸Ñ Ñигнализирует "
+"об уÑпехе\n"
+" ``prompt``\n"
+" Ð’Ñегда Ñпрашивать об уÑпехе ÑлиÑниÑ, вне завиÑимоÑти от возвращенного "
+"инÑтрументом ÑлиÑÐ½Ð¸Ñ ÑтатуÑа."
+
+msgid ""
+"``checkchanged``\n"
+" True is equivalent to ``check = changed``.\n"
+" Default: False"
+msgstr ""
+"``checkchanged``\n"
+" Эквивалентно ``check = changed``.\n"
+" По умолчанию: False"
+
+msgid ""
+"``checkconflicts``\n"
+" True is equivalent to ``check = conflicts``.\n"
+" Default: False"
+msgstr ""
+"``checkconflicts``\n"
+" Эквивалентно ``check = conflicts``.\n"
+" По умолчанию: False"
+
+msgid ""
+"``fixeol``\n"
+" Attempt to fix up EOL changes caused by the merge tool.\n"
+" Default: False"
+msgstr ""
+"``fixeol``\n"
+" ПытатьÑÑ Ð¸Ñправить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð° новой Ñтроки из-за работы программы "
+"ÑлиÑниÑ.\n"
+" По умолчанию: False"
+
+msgid ""
+"``gui``\n"
+" This tool requires a graphical interface to run. Default: False"
+msgstr ""
+"``gui``\n"
+" Эта программа требует графичеÑкий интерфейÑ. По умолчанию: False"
+
+msgid ""
+"``regkey``\n"
+" Windows registry key which describes install location of this\n"
+" tool. Mercurial will search for this key first under\n"
+" ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.\n"
+" Default: None"
+msgstr ""
+"``regkey``\n"
+" Ключ рееÑтра Windows, опиÑывающий уÑтановочный каталог Ñтого\n"
+" инÑтрумента. Mercurial ищет Ñтот ключ Ñначала в ``HKEY_CURRENT_USER``,\n"
+" потом в ``HKEY_LOCAL_MACHINE``.\n"
+" По умолчанию: не задан"
+
+msgid ""
+"``regkeyalt``\n"
+" An alternate Windows registry key to try if the first key is not\n"
+" found. The alternate key uses the same ``regname`` and ``regappend``\n"
+" semantics of the primary key. The most common use for this key\n"
+" is to search for 32bit applications on 64bit operating systems.\n"
+" Default: None"
+msgstr ""
+"``regkeyalt``\n"
+" Ðльтернативный ключ в рееÑтре Windows, который иÑпользуетÑÑ ÐµÑли\n"
+" первый ключ не найдан. Этот ключ иÑпользует ту же Ñемантику\n"
+" ``regname`` и ``regappend``, что и первичный ключ. Обычно Ñто\n"
+" иÑпользуетÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка 32-битных приложений в 64-битных ОС.\n"
+" По умолчанию: не задан"
+
+msgid ""
+"``regname``\n"
+" Name of value to read from specified registry key. Defaults to the\n"
+" unnamed (default) value."
+msgstr ""
+"``regname``\n"
+" Ð˜Ð¼Ñ Ñ‡Ð¸Ñ‚Ð°ÐµÐ¼Ð¾Ð³Ð¾ из рееÑтра параметра. По умолчанию значение не пуÑто -\n"
+" неименованный параметр."
+
+msgid ""
+"``regappend``\n"
+" String to append to the value read from the registry, typically\n"
+" the executable name of the tool.\n"
+" Default: None"
msgstr ""
+"``regappend``\n"
+" Строка, добавлÑÐµÐ¼Ð°Ñ Ðº прочитанному из рееÑтра значению, как правило\n"
+" Ñто Ð¸Ð¼Ñ Ð¸ÑполнÑемого файла инÑтрумента.\n"
+" По умолчанию: не задан"
+
+msgid ""
+"\n"
"``hooks``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
+msgstr ""
-# NOT-SURE site-wide - ?
msgid ""
"Commands or Python functions that get automatically executed by\n"
"various actions such as starting or finishing a commit. Multiple\n"
"hooks can be run for the same action by appending a suffix to the\n"
"action. Overriding a site-wide hook can be done by changing its\n"
-"value or setting it to an empty string. Hooks can be prioritized\n"
-"by adding a prefix of ``priority`` to the hook name on a new line\n"
-"and setting the priority. The default priority is 0 if\n"
-"not specified."
+"value or setting it to an empty string."
msgstr ""
"Команды или функции Python, вызываемые автоматичеÑки при различных\n"
-"дейÑтвиÑÑ…, таких как начало или завершение фикÑации. Можно задавать\n"
-"неÑколько хуков Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ и того же дейÑтвиÑ, добавлÑÑ Ðº дейÑтвию ÑуффикÑ.\n"
+"дейÑтвиÑÑ…, таких как начало или конец коммита. Можно задавать неÑколько\n"
+"хуков Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ и того же дейÑтвиÑ, добавлÑÑ Ðº дейÑтвию ÑуффикÑ.\n"
"Можно переопределить глобальный хук, изменив его Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ задав\n"
-"Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ пуÑтую Ñтроку. Ð”Ð»Ñ Ñ…ÑƒÐºÐ° можно задать приоритет, добавив\n"
-"Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ ``priority`` к имени хука в отдельной Ñтроке и задав приоритет.\n"
-"ЕÑли приоритет не указан, иÑпользуетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ по умолчанию - 0."
+"Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ пуÑтую Ñтроку."
msgid "Example ``.hg/hgrc``::"
msgstr "Пример ``.hg/hgrc``::"
@@ -16704,9 +12445,7 @@ msgid ""
" # do not use the site-wide hook\n"
" incoming =\n"
" incoming.email = /my/email/hook\n"
-" incoming.autobuild = /my/build/hook\n"
-" # force autobuild hook to run before other incoming hooks\n"
-" priority.incoming.autobuild = 1"
+" incoming.autobuild = /my/build/hook"
msgstr ""
" [hooks]\n"
" # Обновить рабочий каталог поÑле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð² изменений\n"
@@ -16714,18 +12453,16 @@ msgstr ""
" # не иÑпользовать глобальный хук\n"
" incoming =\n"
" incoming.email = /my/email/hook\n"
-" incoming.autobuild = /my/build/hook\n"
-" # выполнÑÑ‚ÑŒ хук autobuild перед другими хуками incoming\n"
-" priority.incoming.autobuild = 1"
+" incoming.autobuild = /my/build/hook"
msgid ""
"Most hooks are run with environment variables set that give useful\n"
"additional information. For each hook below, the environment\n"
"variables it is passed are listed with names of the form ``$HG_foo``."
msgstr ""
-"БольшинÑтво хуков выполнÑÑŽÑ‚ÑÑ Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ð¼Ð¸ окружениÑ, Ñодержащими\n"
+"БолшьниÑтво хуков выполнÑÑŽÑ‚ÑÑ Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ð¼Ð¸ окружениÑ, Ñодержащими\n"
"полезную дополнительную информацию. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ хука ниже, передаваемые\n"
-"ему переменные перечиÑлены Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ вида ``$HG_foo``."
+"ему переменные перечиÑленны Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ вида ``$HG_foo``."
msgid ""
"``changegroup``\n"
@@ -16736,7 +12473,7 @@ msgstr ""
"``changegroup``\n"
" ВыполнÑетÑÑ Ð¿Ð¾Ñле того, как группа наборов изменений была добавлена\n"
" Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ push, pull или unbundle. ID первого набора изменений\n"
-" ÑодержитÑÑ Ð² ``$HG_NODE``. URL иÑточника изменений находитÑÑ Ð² ``$HG_URL``."
+" ÑодержитÑÑ Ð² ``$HG_NODE``. URL иÑточника измений находитÑÑ Ð² ``$HG_URL``."
msgid ""
"``commit``\n"
@@ -16746,7 +12483,7 @@ msgid ""
msgstr ""
"``commit``\n"
" ВыполнÑетÑÑ Ð¿Ð¾Ñле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ набора изменений в локальном\n"
-" хранилище. ID Ñозданного набора изменений передаетÑÑ Ð² ``$HG_NODE``,\n"
+" репозитории. ID Ñозданного набора изменений передаетÑÑ Ð² ``$HG_NODE``,\n"
" ID родителей ÑодержатÑÑ Ð² ``$HG_PARENT1`` и ``$HG_PARENT2``."
msgid ""
@@ -16758,7 +12495,7 @@ msgstr ""
"``incoming``\n"
" ВыполнÑетÑÑ Ð¿Ð¾Ñле того, как набор изменений был добавлен Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
" push, pull или unbundle. ID первого набора изменений ÑодержитÑÑ\n"
-" в ``$HG_NODE``. URL иÑточника изменений находитÑÑ Ð² ``$HG_URL``."
+" в ``$HG_NODE``. URL иÑточника измений находитÑÑ Ð² ``$HG_URL``."
msgid ""
"``outgoing``\n"
@@ -16767,8 +12504,8 @@ msgid ""
" ``$HG_SOURCE``; see \"preoutgoing\" hook for description."
msgstr ""
"``outgoing``\n"
-" ВыполнÑетÑÑ Ð¿Ð¾Ñле отправки изменений из локального хранилища в\n"
-" другое. ID первого набора изменений ÑодержитÑÑ Ð² ``$HG_NODE``.\n"
+" ВыполнÑетÑÑ Ð¿Ð¾Ñле отправки изменений из локального Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð²\n"
+" другой. ID первого набора изменений ÑодержитÑÑ Ð² ``$HG_NODE``.\n"
" ИÑточник операции находитÑÑ Ð² ``$HG_SOURCE``; опиÑание Ñм. в\n"
" \"preoutgoing\""
@@ -16784,12 +12521,12 @@ msgid ""
msgstr ""
"``post-<команда>``\n"
" ВыполнÑетÑÑ Ð¿Ð¾Ñле уÑпешного вызова ÑоответÑтвующей команды.\n"
-" Содержимое командной Ñтроки передаётÑÑ Ð² ``$HG_ARGS``, код\n"
+" Содержимое командной Ñтроки передаветÑÑ Ð² ``$HG_ARGS``, код\n"
" Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ - в ``$HG_RESULT``. Разобранные аргументы командной\n"
" Ñтроки передаютÑÑ ÐºÐ°Ðº ``$HG_PATS`` и ``$HG_OPTS``. Они Ñодержат\n"
" Ñтроковое предÑтавление данных Python, передаваемых <команде>\n"
" внутренней реализацией. ``$HG_OPTS`` - Ñто Ñловарь опций \n"
-" (опущенные опции уÑтановлены в Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию).\n"
+" (опущенные опциии уÑтановлены в Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию).\n"
" ``$HG_PATS`` - ÑпиÑок аргументов. Ðеудачное завершение хука\n"
" игнорируетÑÑ."
@@ -16806,11 +12543,11 @@ msgid ""
msgstr ""
"``pre-<команда>``\n"
" ВыполнÑетÑÑ Ð¿ÐµÑ€ÐµÐ´ вызовом ÑоответÑтвующей команды.\n"
-" Содержимое командной Ñтроки передаётÑÑ Ð² ``$HG_ARGS``.\n"
+" Содержимое командной Ñтроки передаветÑÑ Ð² ``$HG_ARGS``.\n"
" Разобранные аргументы командной Ñтроки передаютÑÑ ÐºÐ°Ðº ``$HG_PATS``\n"
" и ``$HG_OPTS``. Они Ñодержат Ñтроковое предÑтавление данных\n"
" Python, передаваемых <команде> внутренней реализацией. ``$HG_OPTS`` -\n"
-" Ñто Ñловарь опций (опущенные опции уÑтановлены в Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾\n"
+" Ñто Ñловарь опций (опущенные опции уÑтановленны в Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾\n"
" умолчанию).``$HG_PATS`` - ÑпиÑок аргументов. Ðеудачное завершение\n"
" хука игнорируетÑÑ."
@@ -16834,7 +12571,7 @@ msgid ""
" Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``."
msgstr ""
"``precommit``\n"
-" ВыполнÑетÑÑ Ð¿ÐµÑ€ÐµÐ´ началом локальной фикÑации. Код возврата 0\n"
+" ВыполнÑетÑÑ Ð¿ÐµÑ€ÐµÐ´ началом локального коммита. Код возврата 0\n"
" разрешает продолжение операции, ненулевой код возврата заÑтавлÑет\n"
" commit завершитьÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹. ID родителей передаютÑÑ Ð² ``$HG_PARENT1``\n"
" и ``$HG_PARENT2``."
@@ -16847,7 +12584,7 @@ msgid ""
msgstr ""
"``prelistkeys``\n"
" ВыполнÑетÑÑ Ð¿ÐµÑ€ÐµÐ´ выводом ключей наборов изменений (например, закладок)\n"
-" хранилища. Ðенулевой код возврата вызовет завершение Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹.\n"
+" репозиториÑ. Ðенулевой код возврата вызовет завершение Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹.\n"
" ПроÑтранÑтво имен ключа передаетÑÑ Ð² ``$HG_NAMESPACE``."
msgid ""
@@ -16863,12 +12600,12 @@ msgid ""
msgstr ""
"``preoutgoing``\n"
" ВыполнÑетÑÑ Ð¿ÐµÑ€ÐµÐ´ Ñборкой изменений Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ из локального\n"
-" хранилища в отдалённое. Ðенулевой код возврата вызовет аварийное\n"
+" Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² удаленный. Ðенулевой код возврата вызовет аварийное\n"
" завершение. Это позволÑет предотвратить pull по HTTP или SSH. Также\n"
" можно отменить и локальные pull, push или bundle, но Ñто неÑффективно,\n"
" Ñ‚.к. в Ñтом Ñлучае можно проÑто Ñкопировать файлы. ИÑточник операции\n"
-" передаетÑÑ Ð² ``$HG_SOURCE``. Ð”Ð»Ñ \"serve\" Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑетÑÑ\n"
-" на Ñтороне отдалённого SSH или HTTP хранилища. Ð”Ð»Ñ \"push\", \"pull\"\n"
+" передаетÑÑ Ð² ``$HG_SOURCE``. Ð”Ð»Ñ \"serve\" Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð²Ð¿Ð¾Ð»Ð½ÑетÑÑ\n"
+" на Ñтороне удаленного SSH или HTTP репозиториÑ. Ð”Ð»Ñ \"push\", \"pull\"\n"
" или \"bundle\", Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑетÑÑ Ð² локальной ÑиÑтеме."
msgid ""
@@ -16880,8 +12617,8 @@ msgid ""
" ``$HG_NEW``."
msgstr ""
"``prepushkey``\n"
-" ВыполнÑетÑÑ Ð¿ÐµÑ€ÐµÐ´ добавлением ключа (например, закладки) в\n"
-" хранилище. Ðенулевой код возврата отменит добавление ключа.\n"
+" ВыполнÑетÑÑ Ð¿ÐµÑ€ÐµÐ´ добавлением ключа (напрмер, закладки) в\n"
+" репозиторий. Ðенулевой код возврата отменит добавление ключа.\n"
" ПроÑтранÑтво имен ключа передаетÑÑ Ð² ``$HG_NAMESPACE``, ключ в\n"
" ``$HG_KEY``, предыдущее значение (еÑли еÑÑ‚ÑŒ) в ``$HG_OLD``, новое -\n"
" в ``$HG_NEW``."
@@ -16899,7 +12636,7 @@ msgstr ""
" метку, ненулевой вызовет завершение Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹. ID помечаемого набора\n"
" изменений передаетÑÑ Ð² ``$HG_NODE``, Ð¸Ð¼Ñ Ð¼ÐµÑ‚ÐºÐ¸ - в ``$HG_TAG``.\n"
" Метка ÑвлÑетÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð¹, еÑли ``$HG_LOCAL=1``, запиÑываетÑÑ Ð²\n"
-" хранилище, еÑли ``$HG_LOCAL=0``."
+" репозиторий, еÑли ``$HG_LOCAL=0``."
msgid ""
"``pretxnchangegroup``\n"
@@ -16914,11 +12651,11 @@ msgid ""
msgstr ""
"``pretxnchangegroup``\n"
" ВыполнÑетÑÑ Ð¿Ð¾Ñле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ наборов изменений Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
-" push, pull или unbundle, до фикÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸. Группа изменений\n"
+" push, pull или unbundle, до коммита транзакции. Группа изменений\n"
" доÑтупна в программе хука. Это позволÑет проверить входÑщие\n"
" изменениÑ, перед тем, как принÑÑ‚ÑŒ их. ID первого добавлÑемого\n"
" набора изменений передаетÑÑ Ð² ``$HG_NODE``. Код возврата 0 разрешает\n"
-" зафикÑировать транзакцию, ненулевой откатывает ее и заÑтавлÑет\n"
+" закоммитить транзакцию, ненулевой откатывает ее и заÑтавлÑет\n"
" pull, push или unbundle завершитьÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹. URL иÑточника\n"
" изменений передаетÑÑ Ð² ``$HG_URL``."
@@ -16932,10 +12669,10 @@ msgid ""
" IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``."
msgstr ""
"``pretxncommit``\n"
-" ВыполнÑетÑÑ Ð¿Ð¾Ñле того, как набор изменений был Ñоздан, но\n"
-" Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ ÐµÑ‰Ðµ не зафикÑирована. Ðабор изменений доÑтупен в программе\n"
-" хука. Это позволÑет проверить Ñообщение фикÑации и изменениÑ. Код\n"
-" возврата 0 разрешает продолжение фикÑации, ненулевой код возврата\n"
+" ВыполнÑетÑÑ Ð¿Ð¾Ñле того, как набор изменений был Ñоздан, но еще\n"
+" Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ ÐµÑ‰Ðµ не закоммичена. Ðабор изменений доÑтупен в программе\n"
+" хука. Это позволÑет проверить текÑÑ‚ коммита и изменениÑ. Код\n"
+" возврата 0 разрешает продолжение коммита, ненулевой код возврата\n"
" откатит транзакцию. ID набора изменений передаетÑÑ Ð² ``$HG_NODE``.\n"
" ID родителей передаютÑÑ Ð² ``$HG_PARENT1`` и ``$HG_PARENT2``."
@@ -16960,7 +12697,7 @@ msgid ""
" dictionary containing the keys and values."
msgstr ""
"``listkeys``\n"
-" ВыполнÑетÑÑ Ð¿Ð¾Ñле вывода ключей хранилища (например, закладок).\n"
+" ВыполнÑетÑÑ Ð¿Ð¾Ñле вывода ключей Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ (например, закладок).\n"
" ПроÑтранÑтво имен ключа доÑтупно в ``$HG_NAMESPACE``. ``$HG_VALUES`` -\n"
" Ñловарь, Ñодержащий ключи и значениÑ."
@@ -16973,7 +12710,7 @@ msgid ""
msgstr ""
"``pushkey``\n"
" ВыполнÑетÑÑ Ð¿Ð¾Ñле того, как ключ (например, закладка) добавлен\n"
-" в хранилище. ПроÑтранÑтво имен ключа доÑтупно в ``$HG_NAMESPACE``,\n"
+" в репозиторий. ПроÑтранÑтво имен ключа доÑтупно в ``$HG_NAMESPACE``,\n"
" ключ в - ``$HG_KEY``, Ñтарое значение (еÑли еÑÑ‚ÑŒ) - в ``$HG_OLD``,\n"
" новое значение - в ``$HG_NEW``."
@@ -16986,7 +12723,7 @@ msgstr ""
"``tag``\n"
" ВыполнÑетÑÑ Ð¿Ð¾Ñле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¼ÐµÑ‚ÐºÐ¸. ID помечаемого набора изменений\n"
" передаетÑÑ Ð² ``$HG_TAG``. Метка ÑвлÑетÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð¹, еÑли\n"
-" ``$HG_LOCAL=1``, но ÑоздаетÑÑ Ð² хранилище еÑли ``$HG_LOCAL=0``."
+" ``$HG_LOCAL=1``, ÑоздаетÑÑ Ð² репозитории еÑли ``$HG_LOCAL=0``."
msgid ""
"``update``\n"
@@ -17013,7 +12750,7 @@ msgstr ""
" а не pre- и post-хуки, потому что они гарантированно вызываютÑÑ\n"
" Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ñ‹Ð¼ контекÑтом Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¹, на которые они влиÑÑŽÑ‚.\n"
" Также такие хуки как \"commit\" будут вызваны во вÑех ÑитуациÑÑ…,\n"
-" когда ÑоздаетÑÑ Ñ„Ð¸ÐºÑÐ°Ñ†Ð¸Ñ (например, tag), а не только по команде\n"
+" когда ÑоздаетÑÑ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚ (например, tag), а не только по команде\n"
" commit."
msgid ""
@@ -17047,7 +12784,7 @@ msgid ""
msgstr ""
"Хуки на Python выполнÑÑŽÑ‚ÑÑ Ð² рамках процеÑÑа Mercurial. Каждый хук\n"
"вызываетÑÑ ÐºÐ°Ðº минимум Ñ Ñ‚Ñ€ÐµÐ¼Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð°Ð¼Ð¸ - ключевыми Ñловами:\n"
-"объект интерфейÑа (``ui``), объект хранилища (``repo``) и ``hooktype``\n"
+"объект интерфейÑа (``ui``), объект Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ (``repo``) и ``hooktype``\n"
"который определÑет, какой вид хука иÑпользуетÑÑ. Ðргументы, опиÑанные\n"
"выше как переменные окружениÑ, передаютÑÑ ÐºÐ°Ðº ключевые Ñлова без\n"
"префикÑа ``HG_`` Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ в нижнем региÑтре."
@@ -17061,57 +12798,15 @@ msgstr ""
msgid ""
"\n"
-"``hostfingerprints``\n"
-"--------------------"
-msgstr ""
-"\n"
-"``hostfingerprints``\n"
-"--------------------"
-
-msgid ""
-"Fingerprints of the certificates of known HTTPS servers.\n"
-"A HTTPS connection to a server with a fingerprint configured here will\n"
-"only succeed if the servers certificate matches the fingerprint.\n"
-"This is very similar to how ssh known hosts works.\n"
-"The fingerprint is the SHA-1 hash value of the DER encoded certificate.\n"
-"The CA chain and web.cacerts is not used for servers with a fingerprint."
-msgstr ""
-"Слепки Ñертификатов извеÑтных HTTPS-Ñерверов. При заданном Ñлепке\n"
-"HTTPS-Ñоединение уÑпешно уÑтановитÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли Ñлепок Ñертификата\n"
-"Ñервера Ñовпадает Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼. Это похоже на работу Ñ Ð¸Ð·Ð²ÐµÑтными хоÑтами\n"
-"по ssh. Слепок - Ñто Ñ…Ñш SHA-1 от Ñертификата, зашифрованного DER.\n"
-"Цепочка CA и web.cacerts не иÑпользуютÑÑ Ð´Ð»Ñ Ñерверов Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸\n"
-"Ñлепками."
-
-msgid "For example::"
-msgstr "Пример::"
-
-msgid ""
-" [hostfingerprints]\n"
-" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:"
-"d6:4b:ee:cc"
-msgstr ""
-" [hostfingerprints]\n"
-" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:"
-"d6:4b:ee:cc"
-
-msgid "This feature is only supported when using Python 2.6 or later."
-msgstr "ПоддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли иÑпользуетÑÑ Python 2.6 или выше."
-
-msgid ""
-"\n"
"``http_proxy``\n"
-"--------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``http_proxy``\n"
-"--------------"
msgid ""
"Used to access web-based Mercurial repositories through a HTTP\n"
"proxy."
msgstr ""
-"ИÑпользуетÑÑ Ð´Ð»Ñ Ð´Ð¾Ñтупа к web-хранилищу Mercurial через\n"
+"ИÑпользуетÑÑ Ð´Ð»Ñ Ð´Ð¾Ñтупа к web-репозиторию Mercurial через\n"
"HTTP-прокÑи."
msgid ""
@@ -17120,7 +12815,7 @@ msgid ""
" \"myproxy:8000\"."
msgstr ""
"``host``\n"
-" Ð˜Ð¼Ñ Ñ…Ð¾Ñта и (необÑзательный) порт прокÑи-Ñервера, например\n"
+" Ð˜Ð¼Ñ Ñ…Ð¾ÑÑ‚Ñ Ð¸ (необÑзательный) порт прокÑи-Ñервера, например\n"
" \"myproxy:8000\"."
msgid ""
@@ -17137,7 +12832,7 @@ msgid ""
" Optional. Password to authenticate with at the proxy server."
msgstr ""
"``passwd``\n"
-" ÐеобÑзательный. Пароль Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ на прокÑи-Ñервере."
+" ÐеобÑзательный. Пароль Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÑ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ на прокÑи-Ñервере."
msgid ""
"``user``\n"
@@ -17156,258 +12851,70 @@ msgstr ""
" запиÑей из ``http_proxy.no``. True или False. По умолчанию: False."
msgid ""
-"``merge-patterns``\n"
-"------------------"
-msgstr ""
-"``merge-patterns``\n"
-"------------------"
-
-msgid ""
-"This section specifies merge tools to associate with particular file\n"
-"patterns. Tools matched here will take precedence over the default\n"
-"merge tool. Patterns are globs by default, rooted at the repository\n"
-"root."
-msgstr ""
-"Эта ÑÐµÐºÑ†Ð¸Ñ Ð·Ð°Ð´Ð°ÐµÑ‚ инÑтрументы Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð², подходÑщих под\n"
-"определенный шаблон. ПодходÑщие Ñюда программы имеют приоритет перед\n"
-"инÑтрументами по умолчанию. Шаблоны по умолчанию имеют формат glob,\n"
-"пути задаютÑÑ Ð¾Ñ‚Ð½Ð¾Ñительно ÐºÐ¾Ñ€Ð½Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°."
-
-msgid ""
-" [merge-patterns]\n"
-" **.c = kdiff3\n"
-" **.jpg = myimgmerge"
-msgstr ""
-" [merge-patterns]\n"
-" **.c = kdiff3\n"
-" **.jpg = myimgmerge"
-
-msgid ""
-"``merge-tools``\n"
-"---------------"
-msgstr ""
-"``merge-tools``\n"
-"---------------"
-
-msgid ""
-"This section configures external merge tools to use for file-level\n"
-"merges."
-msgstr "Эта ÑÐµÐºÑ†Ð¸Ñ Ð·Ð°Ð´Ð°ÐµÑ‚ внешние инÑтрументы Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ñ… файлов."
-
-msgid "Example ``~/.hgrc``::"
-msgstr "Пример ``~/.hgrc``::"
-
-msgid ""
-" [merge-tools]\n"
-" # Override stock tool location\n"
-" kdiff3.executable = ~/bin/kdiff3\n"
-" # Specify command line\n"
-" kdiff3.args = $base $local $other -o $output\n"
-" # Give higher priority\n"
-" kdiff3.priority = 1"
-msgstr ""
-" [merge-tools]\n"
-" # Переопределить изначальное раÑположение программы\n"
-" kdiff3.executable = ~/bin/kdiff3\n"
-" # Задать параметры командной Ñтроки\n"
-" kdiff3.args = $base $local $other -o $output\n"
-" # Задать повышенный приоритет\n"
-" kdiff3.priority = 1"
-
-msgid ""
-" # Define new tool\n"
-" myHtmlTool.args = -m $local $other $base $output\n"
-" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
-" myHtmlTool.priority = 1"
-msgstr ""
-" # Определить новый инÑтрумент\n"
-" myHtmlTool.args = -m $local $other $base $output\n"
-" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
-" myHtmlTool.priority = 1"
-
-msgid ""
-"``priority``\n"
-" The priority in which to evaluate this tool.\n"
-" Default: 0."
-msgstr ""
-"``priority``\n"
-" Приоритет, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ выбираетÑÑ Ñтот инÑтрумент.\n"
-" По умолчанию 0."
-
-msgid ""
-"``executable``\n"
-" Either just the name of the executable or its pathname. On Windows,\n"
-" the path can use environment variables with ${ProgramFiles} syntax.\n"
-" Default: the tool name."
-msgstr ""
-"``executable``\n"
-" Ð˜Ð¼Ñ Ð¸Ð»Ð¸ полный путь к иÑполнÑемого файлу. Ð’ Windows в пути можно\n"
-" иÑпользовать переменные Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ñ ÑинтакÑиÑом ${ProgramFiles}.\n"
-" По умолчанию: Ð¸Ð¼Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹."
-
-msgid ""
-"``args``\n"
-" The arguments to pass to the tool executable. You can refer to the\n"
-" files being merged as well as the output file through these\n"
-" variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
-" Default: ``$local $base $other``"
-msgstr ""
-"``args``\n"
-" Ðргументы, передаваемые инÑтрументу ÑлиÑниÑ. Можно обращатьÑÑ Ðº\n"
-" Ñливаемым файлам и результату ÑлиÑÐ½Ð¸Ñ Ñ‡ÐµÑ€ÐµÐ· Ñти переменные:\n"
-" ``$base``, ``$local``, ``$other``, ``$output``.\n"
-" По умолчанию: ``$local $base $other``"
-
-msgid ""
-"``premerge``\n"
-" Attempt to run internal non-interactive 3-way merge tool before\n"
-" launching external tool. Options are ``true``, ``false``, or ``keep``\n"
-" to leave markers in the file if the premerge fails.\n"
-" Default: True"
-msgstr ""
-"``premerge``\n"
-" ПытатьÑÑ Ð·Ð°Ð¿ÑƒÑкать внутренний неинтерактивный инÑтрумент ÑлиÑниÑ\n"
-" Ð´Ð»Ñ Ñ‚Ñ€ÐµÑ… файлов перед запуÑком внешней программы. Возможны значениÑ\n"
-" ``true``(включено), ``false``(выключено) или ``keep``, чтобы оÑтавить\n"
-" маркеры конфликтов в файлах при неудавшемÑÑ Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¼ ÑлиÑнии.\n"
-" По умолчанию: True"
-
-msgid ""
-"``binary``\n"
-" This tool can merge binary files. Defaults to False, unless tool\n"
-" was selected by file pattern match."
-msgstr ""
-"``binary``\n"
-" Этот инÑтрумент может иÑпользоватьÑÑ Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ð±Ð¸Ð½Ð°Ñ€Ð½Ñ‹Ñ… файлов.\n"
-" По умолчанию False, еÑли Ñтот инÑтрумент не был выбран при\n"
-" Ñовпадении шаблона имени файла."
-
-msgid ""
-"``symlink``\n"
-" This tool can merge symlinks. Defaults to False, even if tool was\n"
-" selected by file pattern match."
-msgstr ""
-"``symlink``\n"
-" Этот инÑтрумент может иÑпользоватьÑÑ Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ ÑимволичеÑких ÑÑылок\n"
-" По умолчанию False, даже еÑли инÑтрумент был выбран при Ñовпадении\n"
-" шаблона имени файла."
-
-msgid ""
-"``check``\n"
-" A list of merge success-checking options:"
-msgstr ""
-"``check``\n"
-" СпиÑок параметров, ÑвидетельÑтвующих об уÑпехе ÑлиÑниÑ::"
-
-msgid ""
-" ``changed``\n"
-" Ask whether merge was successful when the merged file shows no changes.\n"
-" ``conflicts``\n"
-" Check whether there are conflicts even though the tool reported "
-"success.\n"
-" ``prompt``\n"
-" Always prompt for merge success, regardless of success reported by tool."
-msgstr ""
-" ``changed``\n"
-" СпроÑить, было ли ÑлиÑние уÑпешным, еÑли в Ñлитом файле нет изменений.\n"
-" ``conflicts``\n"
-" Проверить наличие конфликтов, даже еÑли программа ÑлиÑÐ½Ð¸Ñ Ñигнализирует "
-"об уÑпехе\n"
-" ``prompt``\n"
-" Ð’Ñегда Ñпрашивать об уÑпехе ÑлиÑниÑ, вне завиÑимоÑти от возвращенного "
-"инÑтрументом ÑлиÑÐ½Ð¸Ñ ÑтатуÑа."
-
-msgid ""
-"``checkchanged``\n"
-" True is equivalent to ``check = changed``.\n"
-" Default: False"
+"``smtp``\n"
+"\"\"\"\"\"\"\"\""
msgstr ""
-"``checkchanged``\n"
-" Эквивалентно ``check = changed``.\n"
-" По умолчанию: False"
-msgid ""
-"``checkconflicts``\n"
-" True is equivalent to ``check = conflicts``.\n"
-" Default: False"
-msgstr ""
-"``checkconflicts``\n"
-" Эквивалентно ``check = conflicts``.\n"
-" По умолчанию: False"
+msgid "Configuration for extensions that need to send email messages."
+msgstr "ÐаÑтройки Ð´Ð»Ñ Ñ€Ð°Ñширений, которые раÑÑылают email-ÑообщениÑ."
msgid ""
-"``fixeol``\n"
-" Attempt to fix up EOL changes caused by the merge tool.\n"
-" Default: False"
+"``host``\n"
+" Host name of mail server, e.g. \"mail.example.com\"."
msgstr ""
-"``fixeol``\n"
-" ПытатьÑÑ Ð¸Ñправить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð° новой Ñтроки из-за работы программы "
-"ÑлиÑниÑ.\n"
-" По умолчанию: False"
+"``host``\n"
+" Ð˜Ð¼Ñ Ñ…Ð¾Ñта почтового Ñервера, например \"mail.example.com\"."
msgid ""
-"``gui``\n"
-" This tool requires a graphical interface to run. Default: False"
-msgstr ""
-"``gui``\n"
-" Эта программа требует графичеÑкий интерфейÑ. По умолчанию: False"
+"``port``\n"
+" Optional. Port to connect to on mail server. Default: 25."
+msgstr " ÐеобÑзательный. ВходÑщий порт почтового Ñервера. По умолчанию: 25."
msgid ""
-"``regkey``\n"
-" Windows registry key which describes install location of this\n"
-" tool. Mercurial will search for this key first under\n"
-" ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.\n"
-" Default: None"
+"``tls``\n"
+" Optional. Method to enable TLS when connecting to mail server: "
+"starttls,\n"
+" smtps or none. Default: none."
msgstr ""
-"``regkey``\n"
-" Ключ рееÑтра Windows, опиÑывающий уÑтановочный каталог Ñтого\n"
-" инÑтрумента. Mercurial ищет Ñтот ключ Ñначала в ``HKEY_CURRENT_USER``,\n"
-" потом в ``HKEY_LOCAL_MACHINE``.\n"
-" По умолчанию: не задан"
+"``tls``\n"
+" ÐеобÑзательный. СпоÑоб Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ TLS при подключении к "
+"почтовомуÑерверу:\n"
+" starttls, smtps или none (откл.). По умолчанию: none."
msgid ""
-"``regkeyalt``\n"
-" An alternate Windows registry key to try if the first key is not\n"
-" found. The alternate key uses the same ``regname`` and ``regappend``\n"
-" semantics of the primary key. The most common use for this key\n"
-" is to search for 32bit applications on 64bit operating systems.\n"
-" Default: None"
+"``username``\n"
+" Optional. User name for authenticating with the SMTP server.\n"
+" Default: none."
msgstr ""
-"``regkeyalt``\n"
-" Ðльтернативный ключ в рееÑтре Windows, который иÑпользуетÑÑ ÐµÑли\n"
-" первый ключ не найден. Этот ключ иÑпользует ту же Ñемантику\n"
-" ``regname`` и ``regappend``, что и первичный ключ. Обычно Ñто\n"
-" иÑпользуетÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка 32-битных приложений в 64-битных ОС.\n"
-" По умолчанию: не задан"
+"``username``\n"
+" ÐеобÑзательный. Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ на SMTP-Ñервере.\n"
+" По умолчанию: не задан."
msgid ""
-"``regname``\n"
-" Name of value to read from specified registry key. Defaults to the\n"
-" unnamed (default) value."
+"``password``\n"
+" Optional. Password for authenticating with the SMTP server. If not\n"
+" specified, interactive sessions will prompt the user for a\n"
+" password; non-interactive sessions will fail. Default: none."
msgstr ""
-"``regname``\n"
-" Ð˜Ð¼Ñ Ñ‡Ð¸Ñ‚Ð°ÐµÐ¼Ð¾Ð³Ð¾ из рееÑтра параметра. По умолчанию значение не пуÑто -\n"
-" неименованный параметр."
+"``password``\n"
+" ÐеобÑзательный. Пароль Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ на SMTP-Ñервере. ЕÑли\n"
+" не задан, пользователю будет предложено ввеÑти пароль.\n"
+" Ðеитерактивный ÑÐµÐ°Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚ÑŒÑÑ Ð½ÐµÑƒÐ´Ð°Ñ‡ÐµÐ¹. По умолчанию: не задан."
msgid ""
-"``regappend``\n"
-" String to append to the value read from the registry, typically\n"
-" the executable name of the tool.\n"
-" Default: None"
+"``local_hostname``\n"
+" Optional. It's the hostname that the sender can use to identify\n"
+" itself to the MTA."
msgstr ""
-"``regappend``\n"
-" Строка, добавлÑÐµÐ¼Ð°Ñ Ðº прочитанному из рееÑтра значению, как правило\n"
-" Ñто Ð¸Ð¼Ñ Ð¸ÑполнÑемого файла инÑтрумента.\n"
-" По умолчанию: не задан"
+"``local_hostname``\n"
+" ÐеобÑзательный. Ð˜Ð¼Ñ Ñ…Ð¾Ñта, иÑпользуемое отправителем длÑ\n"
+" Ñамоидентификации через MTA."
msgid ""
"\n"
"``patch``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``patch``\n"
-"---------"
msgid ""
"Settings used when applying patches, for instance through the 'import'\n"
@@ -17436,18 +12943,15 @@ msgstr ""
" LF (Unix) или CRLF (Windows) в результате. ЕÑли уÑтановлен \n"
" ``auto``, переводы Ñтроки так же игнорируютÑÑ Ð¿Ñ€Ð¸ наложении патча,\n"
" но воÑÑтанавливаютÑÑ Ð² иÑходный формат Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ файла. ЕÑли\n"
-" файл Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ðµ ÑущеÑтвует или не имеет Ñимволов перевода Ñтроки,\n"
+" файл Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ðµ ÑущеÑтвует или не имеет Ñимволов первода Ñтроки,\n"
" ÑохранÑетÑÑ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ новой Ñтроки патча.\n"
" По умолчанию: strict."
msgid ""
"\n"
"``paths``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``paths``\n"
-"---------"
msgid ""
"Assigns symbolic names to repositories. The left side is the\n"
@@ -17455,8 +12959,8 @@ msgid ""
"location of the repository. Default paths can be declared by setting\n"
"the following entries."
msgstr ""
-"Задает читаемые имена Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰. Ð›ÐµÐ²Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ - Ñимвольное\n"
-"имÑ, Ð¿Ñ€Ð°Ð²Ð°Ñ - URL, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð°Ð´Ð°ÐµÑ‚ положение хранилища. Пути по\n"
+"Задает читаемые имена Ð´Ð»Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸ÐµÐ². Ð›ÐµÐ²Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ - Ñимвольное\n"
+"имÑ, Ð¿Ñ€Ð°Ð²Ð°Ñ - URL, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð°Ð´Ð°ÐµÑ‚ положение репозиториÑ. Пути по\n"
"умолчанию могут быть заданы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñледующих запиÑей."
msgid ""
@@ -17466,9 +12970,9 @@ msgid ""
" cloned."
msgstr ""
"``default``\n"
-" Каталог или URL, иÑпользуемый Ð´Ð»Ñ pull, еÑли иÑточник не указан.\n"
-" По умолчанию уÑтановлен в хранилище, из которого текущее был\n"
-" клонировано."
+" Каталог или URL, иÑпользуемый Ð´Ð»Ñ pull, еÑли иÑточнмк не указан.\n"
+" По умолчанию уÑтановлен в репозиторий, из которого текущий был\n"
+" клонирован."
msgid ""
"``default-push``\n"
@@ -17477,111 +12981,34 @@ msgid ""
msgstr ""
"``default-push``\n"
" ÐеобÑзательный. Каталог или URL, иÑпользуемый при операции push,\n"
-" еÑли хранилище Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ðµ задано."
-
-msgid ""
-"``phases``\n"
-"----------"
-msgstr ""
-"``phases``\n"
-"----------"
-
-msgid ""
-"Specifies default handling of phases. See :hg:`help phases` for more\n"
-"information about working with phases."
-msgstr ""
-"УÑтановки работы Ñ Ñ„Ð°Ð·Ð°Ð¼Ð¸ по умолчанию. Подробнее о работе Ñ Ñ„Ð°Ð·Ð°Ð¼Ð¸\n"
-"Ñм. :hg:`help phases`."
-
-msgid ""
-"``publish``\n"
-" Controls draft phase behavior when working as a server. When true,\n"
-" pushed changesets are set to public in both client and server and\n"
-" pulled or cloned changesets are set to public in the client.\n"
-" Default: True"
-msgstr ""
-"``publish``\n"
-" УправлÑет поведением черновой фазы при работе в качеÑтве Ñервера. ЕÑли\n"
-" ИÑтина, проталкиваемые наборы изменений ÑтановÑÑ‚ÑÑ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ на "
-"клиенте и на Ñервере, а затÑнутые или клонированные наборы изменений\n"
-" ÑтановÑÑ‚ÑÑ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ на Ñтороне клиента.\n"
-" По умолчанию: True (ИÑтина)"
+" еÑли репозиторий Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ðµ задан."
msgid ""
-"``new-commit``\n"
-" Phase of newly-created commits.\n"
-" Default: draft"
-msgstr ""
-"``new-commit``\n"
-" Фаза Ð´Ð»Ñ Ð²Ð½Ð¾Ð²ÑŒ Ñоздаваемых фикÑаций.\n"
-" По умолчанию: draft (черноваÑ)"
-
-msgid ""
-"``profiling``\n"
-"-------------"
-msgstr ""
+"\n"
"``profiling``\n"
-"-------------"
-
-msgid ""
-"Specifies profiling type, format, and file output. Two profilers are\n"
-"supported: an instrumenting profiler (named ``ls``), and a sampling\n"
-"profiler (named ``stat``)."
+"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"ОпределÑет тип профилированиÑ, формат и выходной файл. ПоддерживаютÑÑ\n"
-"два профилировщика: инÑтрументирующий (instrumenting profiler, далее\n"
-"называетÑÑ ``ls``) и ÑÑмплирующий (sampling profiler, ``stat``)."
msgid ""
-"In this section description, 'profiling data' stands for the raw data\n"
-"collected during profiling, while 'profiling report' stands for a\n"
-"statistical text report generated from the profiling data. The\n"
-"profiling is done using lsprof."
+"Specifies profiling format and file output. In this section\n"
+"description, 'profiling data' stands for the raw data collected\n"
+"during profiling, while 'profiling report' stands for a statistical\n"
+"text report generated from the profiling data. The profiling is done\n"
+"using lsprof."
msgstr ""
-"Ð’ опиÑании Ñтой\n"
+"Задает формат Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ„Ð¾Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ выходного файла. Ð’ опиÑании Ñтой\n"
"Ñекции 'данные профилированиÑ' означают Ñырые данные, Ñобранные при\n"
"профилировании, а 'отчет профилированиÑ' означает ÑтатиÑтичеÑкий\n"
"текÑтовый отчет, Ñгенерированный из данных профилированиÑ.\n"
"Профилирование выполнÑетÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ lsprof."
msgid ""
-"``type``\n"
-" The type of profiler to use.\n"
-" Default: ls."
-msgstr ""
-"``type``\n"
-" ИÑпользуемый тип профилировщика.\n"
-" По умолчанию: ls."
-
-msgid ""
-" ``ls``\n"
-" Use Python's built-in instrumenting profiler. This profiler\n"
-" works on all platforms, but each line number it reports is the\n"
-" first line of a function. This restriction makes it difficult to\n"
-" identify the expensive parts of a non-trivial function.\n"
-" ``stat``\n"
-" Use a third-party statistical profiler, statprof. This profiler\n"
-" currently runs only on Unix systems, and is most useful for\n"
-" profiling commands that run for longer than about 0.1 seconds."
-msgstr ""
-" ``ls``\n"
-" ИÑпользовать вÑтренный инÑтрументирующий профилировщик Python.\n"
-" Работает на вÑех платформах, но ÐºÐ°Ð¶Ð´Ð°Ñ Ñтрока, которую он показывает,\n"
-" ÑвлÑетÑÑ Ð¿ÐµÑ€Ð²Ð¾Ð¹ Ñтрокой функции. Это ограничение затруднÑет поиÑк \n"
-" проблемного меÑта в нетривиальной функции.\n"
-" ``stat``\n"
-" ИÑпользовать Ñторонний ÑтатиÑтичеÑкий профилировщик, statprof.\n"
-" Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÐµÑ‚ в Unix, оÑобо полезен Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ\n"
-" команд, которые выполнÑÑŽÑ‚ÑÑ Ð±Ð¾Ð»ÐµÐµ 0.1 Ñекуднды."
-
-msgid ""
"``format``\n"
-" Profiling format. Specific to the ``ls`` instrumenting profiler.\n"
+" Profiling format.\n"
" Default: text."
msgstr ""
-"Ñ‚``format``\n"
-" Формат профилированиÑ. Специфичен Ð´Ð»Ñ Ð¸Ð½Ñтрументирующего профилировщика "
-"``ls``.\n"
+"``format``\n"
+" Формат профилированиÑ.\n"
" По умолчанию: text (текÑтовый)."
msgid ""
@@ -17602,16 +13029,6 @@ msgstr ""
" ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð² файл, он может быть загружен прÑмо в kcachegrind."
msgid ""
-"``frequency``\n"
-" Sampling frequency. Specific to the ``stat`` sampling profiler.\n"
-" Default: 1000."
-msgstr ""
-"``frequency``\n"
-" ЧаÑтота ÑÑмплированиÑ. Только Ð´Ð»Ñ ÑÑмплирующего профилировщика "
-"``stat``.\n"
-" По умолчанию: 1000."
-
-msgid ""
"``output``\n"
" File path where profiling data or report should be saved. If the\n"
" file exists, it is replaced. Default: None, data is printed on\n"
@@ -17624,22 +13041,16 @@ msgstr ""
msgid ""
"``revsetalias``\n"
-"---------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``revsetalias``\n"
-"---------------"
msgid "Alias definitions for revsets. See :hg:`help revsets` for details."
msgstr ""
-"ÐžÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ñевдонимов Ð´Ð»Ñ Ð¼Ð½Ð¾Ð¶ÐµÑтв ревизий (revsets).\n"
-"Детали Ñм. в :hg:`help revsets`."
msgid ""
"``server``\n"
-"----------"
+"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``server``\n"
-"----------"
msgid "Controls generic server settings."
msgstr "Общие наÑтройки Ñервера."
@@ -17658,7 +13069,7 @@ msgid ""
" Default is True."
msgstr ""
"``uncompressed``\n"
-" Разрешать или нет клиентам клонировать клонировать хранилище,\n"
+" Разрешать или нет клиентам клонировать клонировать репозиторий,\n"
" иÑпользовать неÑжатый потоковый протокол. При Ñтом передаетÑÑ\n"
" примерно на 40% больше данных при обычном клонировании, но Ñкономит\n"
" процеÑÑорное Ð²Ñ€ÐµÐ¼Ñ Ð¸ памÑÑ‚ÑŒ на обеих Ñторонах. По локальной Ñети\n"
@@ -17671,15 +13082,6 @@ msgstr ""
" По умолчанию True (включен)."
msgid ""
-"``preferuncompressed``\n"
-" When set, clients will try to use the uncompressed streaming\n"
-" protocol. Default is False."
-msgstr ""
-"``preferuncompressed``\n"
-" ЕÑли иÑтина, клиенты будут пытатьÑÑ Ð¸Ñпользовать протокол без\n"
-" ÑжатиÑ. По умолчанию False (ложь)."
-
-msgid ""
"``validate``\n"
" Whether to validate the completeness of pushed changesets by\n"
" checking that all new file revisions specified in manifests are\n"
@@ -17687,102 +13089,30 @@ msgid ""
msgstr ""
" Проводить или нет проверку полноты передаваемых Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ push\n"
" наборов изменений, проверÑÑ, что вÑе новые ревизии файлов,\n"
-" приÑутÑтвующие в манифеÑте, подготовлены Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸.\n"
+" приÑутÑвующие в манифеÑте, подготовлены Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸.\n"
" По умолчанию False (отключено)."
msgid ""
-"``smtp``\n"
-"--------"
-msgstr ""
-"``smtp``\n"
-"--------"
-
-msgid "Configuration for extensions that need to send email messages."
-msgstr "ÐаÑтройки Ð´Ð»Ñ Ñ€Ð°Ñширений, которые раÑÑылают email-ÑообщениÑ."
-
-msgid ""
-"``host``\n"
-" Host name of mail server, e.g. \"mail.example.com\"."
-msgstr ""
-"``host``\n"
-" Ð˜Ð¼Ñ Ñ…Ð¾Ñта почтового Ñервера, например \"mail.example.com\"."
-
-msgid ""
-"``port``\n"
-" Optional. Port to connect to on mail server. Default: 25."
-msgstr " ÐеобÑзательный. ВходÑщий порт почтового Ñервера. По умолчанию: 25."
-
-msgid ""
-"``tls``\n"
-" Optional. Method to enable TLS when connecting to mail server: "
-"starttls,\n"
-" smtps or none. Default: none."
-msgstr ""
-"``tls``\n"
-" ÐеобÑзательный. СпоÑоб Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ TLS при подключении к почтовому "
-"Ñерверу:\n"
-" starttls, smtps или none (откл.). По умолчанию: none."
-
-msgid ""
-"``username``\n"
-" Optional. User name for authenticating with the SMTP server.\n"
-" Default: none."
-msgstr ""
-"``username``\n"
-" ÐеобÑзательный. Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ на SMTP-Ñервере.\n"
-" По умолчанию: не задан."
-
-msgid ""
-"``password``\n"
-" Optional. Password for authenticating with the SMTP server. If not\n"
-" specified, interactive sessions will prompt the user for a\n"
-" password; non-interactive sessions will fail. Default: none."
-msgstr ""
-"``password``\n"
-" ÐеобÑзательный. Пароль Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ на SMTP-Ñервере. ЕÑли\n"
-" не задан, пользователю будет предложено ввеÑти пароль, а\n"
-" неинтерактивный ÑÐµÐ°Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚ÑÑ Ð½ÐµÑƒÐ´Ð°Ñ‡ÐµÐ¹. По умолчанию: не задан."
-
-msgid ""
-"``local_hostname``\n"
-" Optional. It's the hostname that the sender can use to identify\n"
-" itself to the MTA."
-msgstr ""
-"``local_hostname``\n"
-" ÐеобÑзательный. Ð˜Ð¼Ñ Ñ…Ð¾Ñта, иÑпользуемое отправителем длÑ\n"
-" Ñамоидентификации через MTA."
-
-msgid ""
-"\n"
"``subpaths``\n"
-"------------"
+"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``subpaths``\n"
-"------------"
-msgid ""
-"Subrepository source URLs can go stale if a remote server changes name\n"
-"or becomes temporarily unavailable. This section lets you define\n"
-"rewrite rules of the form::"
-msgstr ""
-"URL иÑточников подхранилищ могут Ñтать недейÑтвительными, еÑли удаленный\n"
-"Ñервер Ñменил Ð¸Ð¼Ñ Ð¸Ð»Ð¸ Ñтал временно недоÑтупным. Эта ÑÐµÐºÑ†Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет вам\n"
-"задать правила замены вида::"
+msgid "Defines subrepositories source locations rewriting rules of the form::"
+msgstr "ОпределÑет правила Ð¿ÐµÑ€ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑов иÑточников в форме::"
msgid " <pattern> = <replacement>"
msgstr " <шаблон> = <замена>"
msgid ""
-"where ``pattern`` is a regular expression matching a subrepository\n"
-"source URL and ``replacement`` is the replacement string used to\n"
-"rewrite it. Groups can be matched in ``pattern`` and referenced in\n"
-"``replacements``. For instance::"
+"Where ``pattern`` is a regular expression matching the source and\n"
+"``replacement`` is the replacement string used to rewrite it. Groups\n"
+"can be matched in ``pattern`` and referenced in ``replacements``. For\n"
+"instance::"
msgstr ""
-"где ``шаблон`` - Ñто регулÑрное выражение, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ Ñовпадает\n"
-"Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð´Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°-иÑточника, а ``замена`` - Ñтрока, на которую он будет\n"
-"заменен. Группы, Ñовпадающие в ``шаблоне``, могут быть иÑпользованы в\n"
-"``замене``. Ðапример::"
+"Где ``шаблон`` - Ñто регулÑрное выражение, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ Ñовпадает\n"
+"Ð°Ð´Ñ€ÐµÑ Ð¸Ñточника, а ``замена`` - Ñтрока, на которую он будет заменен.\n"
+"Группы, Ñовпадающие в ``шаблоне``, могут быть иÑпользваны в ``замене``.\n"
+"Ðапример::"
msgid " http://server/(.*)-hg/ = http://hg.server/\\1/"
msgstr " http://server/(.*)-hg/ = http://hg.server/\\1/"
@@ -17790,21 +13120,13 @@ msgstr " http://server/(.*)-hg/ = http://hg.server/\\1/"
msgid "rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``."
msgstr "заменит ``http://server/foo-hg/`` на ``http://hg.server/foo/``."
-msgid ""
-"Relative subrepository paths are first made absolute, and the\n"
-"rewrite rules are then applied on the full (absolute) path. The rules\n"
-"are applied in definition order."
-msgstr ""
-"ОтноÑительные пути подхранилищ Ñначала делаютÑÑ Ð°Ð±Ñолютными, поÑле чего\n"
-"уже к Ñтим абÑолютным путÑм применÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° замены. Правила применÑÑŽÑ‚ÑÑ\n"
-"в порÑдке их определениÑ."
+msgid "All patterns are applied in definition order."
+msgstr "Ð’Ñе шаблоны применÑÑŽÑ‚ÑÑ Ð² порÑдке определениÑ."
msgid ""
"``trusted``\n"
-"-----------"
+"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``trusted``\n"
-"-----------"
msgid ""
"Mercurial will not use the settings in the\n"
@@ -17816,10 +13138,10 @@ msgid ""
"section."
msgstr ""
"Mercurial не будет иÑпользовать наÑтройки из файла ``.hg/hgrc``\n"
-"хранилища, еÑли он не принадлежит доверенному пользователю или\n"
+"репозиториÑ, еÑли он не принадлежит доверенному пользователю или\n"
"группе, поÑкольку многие функции из hgrc позволÑÑŽÑ‚ выполнÑÑ‚ÑŒ\n"
"произвольные команды. С Ñтим чаÑто возникают проблемы при наÑтройке\n"
-"хуков или раÑширений Ð´Ð»Ñ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… хранилищ или Ñерверов. Однако,\n"
+"хуков или раÑширений Ð´Ð»Ñ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… репозиториев или Ñерверов. Однако,\n"
"web-Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð±ÑƒÐ´ÐµÑ‚ иÑпользовать некоторые безопаÑные наÑтройки из\n"
"Ñекции ``[web]``."
@@ -17853,14 +13175,11 @@ msgstr ""
msgid ""
"\n"
"``ui``\n"
-"------"
+"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``ui``\n"
-"------"
msgid "User interface controls."
-msgstr "ÐаÑтройки интерфейÑа пользователÑ."
+msgstr "ÐаÑтройки пользовательÑкого интерфейÑа."
msgid ""
"``archivemeta``\n"
@@ -17871,7 +13190,7 @@ msgid ""
msgstr ""
"``archivemeta``\n"
" Включать или нет Ñодержимое файла .hg_archival.txt, хранÑщего\n"
-" метаданные (Ñ…Ñши базовой и оконечной (tip) ревизии хранилища)\n"
+" метаданные (Ñ…Ñши базовой и оконечной (tip) ревизии репозиториÑ)\n"
" в архивы, Ñоздаваемые командой :hg:`archive` или загруженными\n"
" через hgweb. По умолчанию True (включено)."
@@ -17885,9 +13204,8 @@ msgid ""
" Default is False."
msgstr ""
"``askusername``\n"
-" Спрашивать или нет Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¸ фикÑации. ЕÑли True, и не\n"
-" уÑтановлены ни ``$HGUSER``, ни ``$EMAIL``, пользователю будет "
-"предложено\n"
+" Спришивать или нет Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¸ коммите. ЕÑли True, и не\n"
+" уÑтановлены ни ``$HGUSER``, ни ``$EMAIL``, пользователю будетпредложено\n"
" ввеÑти Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ. ЕÑли ничего не введено, будет иÑпользовано\n"
" ``ПОЛЬЗОВÐТЕЛЬ@ХОСТ``. По умолчанию False (отключено)."
@@ -17896,13 +13214,13 @@ msgid ""
" Whether to commit modified subrepositories when committing the\n"
" parent repository. If False and one subrepository has uncommitted\n"
" changes, abort the commit.\n"
-" Default is False."
+" Default is True."
msgstr ""
"``commitsubrepos``\n"
-" ФикÑировать или нет измененные подхранилища при фикÑации\n"
-" родительÑкого хранилища. ЕÑли False, и одно из подхранилищ\n"
-" имеет незафикÑированные изменениÑ, фикÑÐ°Ñ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ отменена.\n"
-" По умолчанию False (выключено)."
+" Коммитить или нет измененные Ñубрепозитории при коммите\n"
+" родительÑкого репозиториÑ. ЕÑли False, и один из Ñубрепозиториев\n"
+" имеет незакоммиченные изменениÑ, отменить коммит.\n"
+" По умолчанию True (включено)."
msgid ""
"``debug``\n"
@@ -17916,7 +13234,7 @@ msgid ""
" The editor to use during a commit. Default is ``$EDITOR`` or ``vi``."
msgstr ""
"``editor``\n"
-" Редактор, вызываемый при фикÑации. По умолчанию ``$EDITOR`` or ``vi``."
+" Редактор, вызываетмый при коммите. По умолчанию ``$EDITOR`` or ``vi``."
msgid ""
"``fallbackencoding``\n"
@@ -17938,7 +13256,7 @@ msgid ""
msgstr ""
"``ignore``\n"
" Файл, из которого читаютÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ‹ игнорируемых файлов данного\n"
-" пользователÑ. Имеет тот же формате, что и файл .hgignore хранилища.\n"
+" пользователÑ. Имеет тот же формате, что и файл .hgignore репозиториÑ.\n"
" Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÑ‚ ÑинтакÑÐ¸Ñ Ñ…ÑƒÐºÐ¾Ð², так что можно задать неÑколько\n"
" таких файлов, напиÑав что-то вроде ``ignore.other = ~/.hgignore2``.\n"
" Дополнительно Ñм. Ñправку по hgignore."
@@ -17948,7 +13266,7 @@ msgid ""
" Allow to prompt the user. True or False. Default is True."
msgstr ""
"``interactive``\n"
-" Разрешить интерактивно Ñпрашивать пользователÑ. True или False.\n"
+" Разрешить интерактивно Ñпрашивать пльзователÑ. True или False.\n"
" По умолчанию True (включено)."
msgid ""
@@ -18011,28 +13329,17 @@ msgid ""
" remote command to use for clone/push/pull operations. Default is ``hg``."
msgstr ""
"``remotecmd``\n"
-" Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð½Ð° отдалённой машине Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¹ clone/push/"
-"pull.\n"
+" Комадна, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð½Ð° удаленной машине Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¹ clone/push/pull.\n"
" По умолчанию ``hg``."
msgid ""
-"``reportoldssl``\n"
-" Warn if an SSL certificate is unable to be due to using Python\n"
-" 2.5 or earlier. True or False. Default is True."
-msgstr ""
-"``reportoldssl``\n"
-" Предупреждать, еÑли невозможно иÑпользовать SSL-Ñертификат из-за\n"
-" Ñтарой верÑии Python (2.5 или Ñтарее). True или False. По умолчанию\n"
-" True (ИÑтина)."
-
-msgid ""
"``report_untrusted``\n"
" Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a\n"
" trusted user or group. True or False. Default is True."
msgstr ""
"``report_untrusted``\n"
-" Предупреждать, еÑли файл ``.hg/hgrc`` игнорируетÑÑ, потому что\n"
-" его владелец не доверенный пользователь или группа. True или False.\n"
+" Предупреждать, еÑли файл ``.hg/hgrc`` игноририуетÑÑ, потому что\n"
+" его вледалец не доверенный пользователь или группа. True или False.\n"
" По умолчанию True (включено)."
msgid ""
@@ -18093,7 +13400,7 @@ msgstr ""
" Mercurial вÑегда печатает траÑÑировку вызовов при неизвеÑтном\n"
" иÑключении. ЕÑли Ñтот параметр уÑтановлен в True, траÑÑировка\n"
" будет печататьÑÑ Ð¿Ñ€Ð¸ любых иÑключениÑÑ…, даже обрабатываемых\n"
-" Mercurial (таких, как IOError или MemoryError).\n"
+" Mrecurial (таких, как IOError или MemoryError).\n"
" По умолчанию False (отключено)."
msgid ""
@@ -18108,7 +13415,7 @@ msgid ""
" username are expanded."
msgstr ""
"``username``\n"
-" Ð˜Ð¼Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° набора изменений, Ñоздаваемого при фикÑации. Обычно\n"
+" Ð˜Ð¼Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° Ñоздаваемого при коммите набора изменений. Оычно\n"
" ÑоÑтоит из имени человека и его Ñлектронной почты, например\n"
" ``ВаÑилий Пупкин <vasya@example.com>``. По умолчанию ``$EMAIL``\n"
" или ``пользователь@хоÑÑ‚``. ЕÑли Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ задано в hgrc,\n"
@@ -18127,11 +13434,8 @@ msgstr ""
msgid ""
"\n"
"``web``\n"
-"-------"
+"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``web``\n"
-"-------"
msgid ""
"Web interface configuration. The settings in this section apply to\n"
@@ -18139,7 +13443,7 @@ msgid ""
"run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI\n"
"and WSGI)."
msgstr ""
-"ÐаÑтройки web-интерфейÑа. ÐаÑтройки из Ñтой Ñекции применÑÑŽÑ‚ÑÑ ÐºÐ°Ðº\n"
+"ÐаÑтройки web-интерфейÑа. ÐаÑтройки из Ñтой Ñекци применÑÑŽÑ‚ÑÑ ÐºÐ°Ðº\n"
"Ð´Ð»Ñ Ð²Ñтроенного web-Ñервера (запуÑкаемого :hg:`serve`), так и длÑ\n"
"Ñкрипта, запуÑкаемого обычным веб-Ñервером (``hgweb.cgi`` и\n"
"вариации Ð´Ð»Ñ FastCGI и WSGI)."
@@ -18169,13 +13473,13 @@ msgstr ""
"командную Ñтроку::"
msgid " $ hg --config web.allow_push=* --config web.push_ssl=False serve"
-msgstr " $ hg --config web.allow_push=* --config web.push_ssl=False serve"
+msgstr ""
msgid ""
"Note that this will allow anybody to push anything to the server and\n"
"that this should not be used for public servers."
msgstr ""
-"Обратите внимание, что Ñто позволит кому угодно проталкивать что угодно\n"
+"Обратите внимание, что Ñто позволит кому угодно push'ить что угодно\n"
"на Ñервер, поÑтому так Ð½ÐµÐ»ÑŒÐ·Ñ Ð´ÐµÐ»Ð°Ñ‚ÑŒ на публичных Ñерверах."
msgid "The full set of options is:"
@@ -18211,7 +13515,7 @@ msgid ""
" Default is False."
msgstr ""
"``allowbz2``\n"
-" (УСТÐРЕЛО) Разрешать или нет Ñкачивать ревизии хранилища в\n"
+" (УСТÐРЕЛО) Разрешать или нет Ñкачивать ревизии Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð²\n"
" формате .tar.bz2.\n"
" По умолчанию False (запрещено)."
@@ -18222,7 +13526,7 @@ msgid ""
" Default is False."
msgstr ""
"``allowgz``\n"
-" (УСТÐРЕЛО) Разрешать или нет Ñкачивать ревизии хранилища в\n"
+" (УСТÐРЕЛО) Разрешать или нет Ñкачивать ревизии Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð²\n"
" формате .tar.gz.\n"
" По умолчанию False (запрещено)."
@@ -18231,7 +13535,7 @@ msgid ""
" Whether to allow pulling from the repository. Default is True."
msgstr ""
"``allowpull``\n"
-" Разрешить или нет pull из хранилища. По умолчанию True (разрешать)."
+" Разрешить или нет pull из репозиториÑ. По умолчанию True (разрешать)."
msgid ""
"``allow_push``\n"
@@ -18243,29 +13547,14 @@ msgid ""
" examined after the deny_push list."
msgstr ""
"``allow_push``\n"
-" Разрешать или нет push в хранилище. ЕÑли проÑÑ‚Ð°Ñ Ñтрока или не\n"
+" Разрешать или нет push в репозиторий. ЕÑли поÑÑ‚Ð°Ñ Ñтрока или не\n"
" задан, push запрещен. ЕÑли уÑтановлен в Ñпециальное значение ``*``,\n"
-" любой отдалённый пользователь может делать push, даже еÑли он не\n"
+" любой удаленный пользователь может делать push, даже еÑли он не\n"
" аутентифицирован. Ð’ противном Ñлучае, пользователь должен быть\n"
" аутентифицирован, и его Ð¸Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ приÑутÑтвовать в Ñтом ÑпиÑке.\n"
" Этот ÑпиÑок проверÑетÑÑ Ð¿Ð¾Ñле ÑпиÑка deny_push."
msgid ""
-"``guessmime``\n"
-" Control MIME types for raw download of file content.\n"
-" Set to True to let hgweb guess the content type from the file\n"
-" extension. This will serve HTML files as ``text/html`` and might\n"
-" allow cross-site scripting attacks when serving untrusted\n"
-" repositories. Default is False."
-msgstr ""
-"``guessmime``\n"
-" Контролирует MIME-типы при Ñкачивании Ñырого Ñодержимого файла.\n"
-" УÑтановите в True чтобы разрешить hgweb угадывать тип Ñодержимого\n"
-" по раÑширению файла. При Ñтом HTML файлы будут отдаватьÑÑ ÐºÐ°Ðº\n"
-" ``text/html``, и Ñто может Ñделать возможными атаки межÑайтового\n"
-" Ñкриптинга при обÑлуживании недоверенных хранилищ. По умолчанию False."
-
-msgid ""
"``allow_read``\n"
" If the user has not already been denied repository access due to\n"
" the contents of deny_read, this list determines whether to grant\n"
@@ -18278,9 +13567,9 @@ msgid ""
" examined after the deny_read list."
msgstr ""
"``allow_read``\n"
-" ЕÑли пользователь еще не получил отказ в доÑтупе к хранилищу\n"
+" ЕÑли пользователь еще не получил отказ в доÑтупе к репозиторию\n"
" из-за ÑпиÑка deny_read, Ñтот ÑпиÑок определÑет, можно ли дать\n"
-" доÑтуп к хранилищу Ñтому пользователю. ЕÑли Ñтот ÑпиÑок не\n"
+" доÑтуп к репозиторию Ñтому пользователю. ЕÑли Ñтот ÑпиÑок не\n"
" пуÑÑ‚, и пользователь не аутентифицирован и не приÑутÑтвует в ÑпиÑке,\n"
" ему будет отказано в доÑтупе. ЕÑли ÑпиÑок пуÑÑ‚ или не задан,\n"
" то доÑтуп предоÑтавлÑетÑÑ Ð²Ñем пользователÑм по умолчанию.\n"
@@ -18294,7 +13583,7 @@ msgid ""
" revisions. Default is False. This feature creates temporary files."
msgstr ""
"``allowzip``\n"
-" (УСТÐРЕЛО) Разрешать или нет Ñкачивать ревизии хранилища в\n"
+" (УСТÐРЕЛО) Разрешать или нет Ñкачивать ревизии Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð²\n"
" формате .zip.\n"
" По умолчанию False (запрещено). Эта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñоздает временные файлы."
@@ -18315,13 +13604,29 @@ msgid ""
" authority certificates. Environment variables and ``~user``\n"
" constructs are expanded in the filename. If specified on the\n"
" client, then it will verify the identity of remote HTTPS servers\n"
-" with these certificates."
+" with these certificates. The form must be as follows::"
msgstr ""
"``cacerts``\n"
" Путь к файлу, Ñодержащему ÑпиÑок зашифрованных PEM Ñертификатов.\n"
" ПроизводитÑÑ Ð¿Ð¾Ð´Ñтановка переменных Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¸ Ñтрок вида\n"
-" ``~user``. ЕÑли задан на Ñтороне клиента, будет иÑпользоватьÑÑ\n"
-" Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ отдалённых HTTPS-Ñерверов Ñ Ñтими Ñертификатами."
+" ``~user``. ЕÑли указан на Ñтороне клиента, будет импользоватьÑÑ\n"
+" Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ удаленных HTTPS-Ñерверов Ñ Ñтими Ñертификатами.\n"
+" Формат файла Ñледующий::"
+
+msgid ""
+" -----BEGIN CERTIFICATE-----\n"
+" ... (certificate in base64 PEM encoding) ...\n"
+" -----END CERTIFICATE-----\n"
+" -----BEGIN CERTIFICATE-----\n"
+" ... (certificate in base64 PEM encoding) ...\n"
+" -----END CERTIFICATE-----"
+msgstr ""
+" -----BEGIN CERTIFICATE-----\n"
+" ... (Ñертификат в base64 зашифрованный PEM) ...\n"
+" -----END CERTIFICATE-----\n"
+" -----BEGIN CERTIFICATE-----\n"
+" ... (Ñертификат в base64 зашифрованный PEM) ...\n"
+" -----END CERTIFICATE-----"
msgid ""
" This feature is only supported when using Python 2.6 or later. If you "
@@ -18336,64 +13641,29 @@ msgstr ""
" доÑтупную под адреÑу ``http://pypi.python.org``."
msgid ""
-" To disable SSL verification temporarily, specify ``--insecure`` from\n"
-" command line."
-msgstr ""
-" Чтобы временно отключить SSL-верификацию, укажите ``--insecure``\n"
-" из командной Ñтроки."
-
-msgid ""
-" You can use OpenSSL's CA certificate file if your platform has\n"
-" one. On most Linux systems this will be\n"
-" ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to\n"
-" generate this file manually. The form must be as follows::"
+" You can use OpenSSL's CA certificate file if your platform has one.\n"
+" On most Linux systems this will be ``/etc/ssl/certs/ca-certificates."
+"crt``.\n"
+" Otherwise you will have to generate this file manually."
msgstr ""
" Ð’Ñ‹ можете иÑпользовать файл Ñертификата CA OpenSSL, еÑли он \n"
" имеетÑÑ Ð½Ð° вашей платформе. Ðа большинÑтве Linux-ÑиÑтем Ñто\n"
" ``/etc/ssl/certs/ca-certificates.crt``. Ð’ противном Ñлучае вам\n"
-" необходимо вручную Ñгенерировать Ñтот файл. Формат файла::"
+" необходимо вручную Ñгенерировать Ñтот файл."
msgid ""
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----\n"
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----"
+" To disable SSL verification temporarily, specify ``--insecure`` from\n"
+" command line."
msgstr ""
-" -----BEGIN CERTIFICATE-----\n"
-" ... (Ñертификат в base64 зашифрованный PEM) ...\n"
-" -----END CERTIFICATE-----\n"
-" -----BEGIN CERTIFICATE-----\n"
-" ... (Ñертификат в base64 зашифрованный PEM) ...\n"
-" -----END CERTIFICATE-----"
+" Чтобы временно отключить SSL-верификацию, укажите ``--insecure``\n"
+" из командной Ñтроки."
msgid ""
"``cache``\n"
" Whether to support caching in hgweb. Defaults to True."
msgstr ""
"``cache``\n"
-" Включить или нет кÑширование в hgweb. По умолчанию True (включено)."
-
-msgid ""
-"``collapse``\n"
-" With ``descend`` enabled, repositories in subdirectories are shown at\n"
-" a single level alongside repositories in the current path. With\n"
-" ``collapse`` also enabled, repositories residing at a deeper level than\n"
-" the current path are grouped behind navigable directory entries that\n"
-" lead to the locations of these repositories. In effect, this setting\n"
-" collapses each collection of repositories found within a subdirectory\n"
-" into a single entry for that subdirectory. Default is False."
-msgstr ""
-"``collapse``\n"
-" ЕÑли включен ``descend``, хранилища в подкаталогах показываютÑÑ Ð½Ð°\n"
-" одном уровне Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°Ð¼Ð¸ по текущему пути. ЕÑли включен и "
-"``collapse``,\n"
-" хранилища, находÑщиеÑÑ Ð³Ð»ÑƒÐ±Ð¶Ðµ текущего пути, группируютÑÑ Ð² ÑпиÑок\n"
-" Ñлементов, ведущих к Ñтим хранилищам, Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñтью навигации. Таким\n"
-" образом, Ñтот параметр позволÑет Ñвернуть каждую коллекцию хранилищ\n"
-" подкаталога в одну запиÑÑŒ Ð´Ð»Ñ Ñтого подкаталога. По умолчанию False "
-"(выкл.)."
+" Включить или нет кеширование в hgweb. По умолчанию True (включено)."
msgid ""
"``contact``\n"
@@ -18401,7 +13671,7 @@ msgid ""
" Defaults to ui.username or ``$EMAIL`` or \"unknown\" if unset or empty."
msgstr ""
"``contact``\n"
-" Ð˜Ð¼Ñ Ð¸Ð»Ð¸ Ñлектронный Ð°Ð´Ñ€ÐµÑ Ñ‡ÐµÐ»Ð¾Ð²ÐµÐºÐ°, ответÑтвенного за хранилище.\n"
+" Ð˜Ð¼Ñ Ð¸Ð»Ð¸ Ñлектронный Ð°Ð´Ñ€ÐµÑ Ñ‡ÐµÐ»Ð¾Ð²ÐµÐºÐ°, ответÑтвенного за репозиторий.\n"
" По умолчанию иÑпользуетÑÑ ui.username или ``$EMAIL`` или \"unknown\",\n"
" еÑли не задан или пуÑтой."
@@ -18414,9 +13684,9 @@ msgid ""
" contents of the deny_push list are examined before the allow_push list."
msgstr ""
"``deny_push``\n"
-" Запретить или нет push в хранилище. ЕÑли пуÑтой или не задан,\n"
+" Запретить или нет push в репозиторий. ЕÑли пуÑтой или не задан,\n"
" push не запрещаетÑÑ. ЕÑли уÑтановлен в Ñпециальное значение ``*``,\n"
-" push запрещен Ð´Ð»Ñ Ð²Ñех отдалённых пользователей. Ð’ противном Ñлучае,\n"
+" push запрещен Ð´Ð»Ñ Ð²Ñех удаленных пользователей. Ð’ противном Ñлучае,\n"
" вÑе неаутентифицированные пользователи не могут делать push, равно\n"
" как и пользователи, приÑутÑтвующие в Ñтом ÑпиÑке. Этот ÑпиÑок\n"
" проверÑетÑÑ Ð¿ÐµÑ€ÐµÐ´ ÑпиÑком allow_push."
@@ -18438,16 +13708,16 @@ msgid ""
" list."
msgstr ""
"``deny_read``\n"
-" Запрещать или нет чтение/проÑмотр хранилища. ЕÑли Ñтот ÑпиÑок не\n"
+" Запрещать или нет чтение/проÑмотр репозиториÑ. ЕÑли Ñтот ÑпиÑок не\n"
" пуÑÑ‚, неаутентифицированным пользователÑм запрещаетÑÑ Ñ‡Ñ‚ÐµÐ½Ð¸Ðµ\n"
-" хранилища, равно как и пользователÑм, перечиÑленным в Ñтом ÑпиÑке.\n"
-" ЕÑли уÑтановлен в Ñпециальное значение ``*``, вÑем отдалённым\n"
+" репозиториÑ, равно как и пользователÑм, перечиÑленным в Ñтом ÑпиÑке.\n"
+" ЕÑли уÑтановлен в Ñпециальное значение ``*``, вÑем удаленным\n"
" пользователÑм запрещаетÑÑ Ð´Ð¾Ñтуп (Ñто требуетÑÑ Ñ€ÐµÐ´ÐºÐ¾). ЕÑли Ñтот\n"
-" ÑпиÑок пуÑÑ‚ или не задан, предоÑтавление доÑтупа к хранилищу\n"
+" ÑпиÑок пуÑÑ‚ или не задан, предоÑтавление доÑтупа к репозиторию\n"
" завиÑит от ÑпиÑка allow_read (Ñм. опиÑание). ЕÑли оба Ñтих ÑпиÑка\n"
" не заданы или пуÑÑ‚Ñ‹, доÑтуп предоÑтавлÑетÑÑ Ð²Ñем пользователÑм по\n"
-" умолчанию. ЕÑли хранилище раÑшариваетÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ hgwebdir,\n"
-" запрещенные пользователи не Ñмогут видеть его в ÑпиÑке хранилищ.\n"
+" умолчанию. ЕÑли репозиторий раÑшариваетÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ hgwebdir,\n"
+" запрещенные пользователи не Ñмогут видеть его в ÑпиÑке репозиториев.\n"
" СпиÑок deny_read имеет приоритет (читаетÑÑ Ñ€Ð°Ð½ÑŒÑˆÐµ) перед allow_read."
msgid ""
@@ -18459,9 +13729,9 @@ msgid ""
" available from the index corresponding to their containing path)."
msgstr ""
"``descend``\n"
-" hgwebdir не будет индекÑировать подкаталоги. Только хранилища,\n"
+" hgwebdir не будет индекÑировать подкаталоги. Только репозитории,\n"
" раÑположенные прÑмо по текущему пути будут видны (оÑтальные\n"
-" хранилища вÑе равно будут доÑтупны по индекÑу, ÑоответÑтвующему\n"
+" репозитории вÑе равно будут доÑтупны по индекÑу, ÑоответÑтвующему\n"
" их пути)."
msgid ""
@@ -18470,7 +13740,7 @@ msgid ""
" Default is \"unknown\"."
msgstr ""
"``description``\n"
-" ТекÑтовое опиÑание Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¸ Ñодержимого хранилища.\n"
+" ТекÑтовое опиÑание Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¸ Ñодержимого репозиториÑ.\n"
" По умолчанию \"unknown\" (неизвеÑтно)."
msgid ""
@@ -18490,29 +13760,12 @@ msgstr ""
" Куда пиÑать журнал ошибок. По умолчанию stderr."
msgid ""
-"``comparisoncontext``\n"
-" Number of lines of context to show in side-by-side file comparison. If\n"
-" negative or the value ``full``, whole files are shown. Default is 5.\n"
-" This setting can be overridden by a ``context`` request parameter to "
-"the\n"
-" ``comparison`` command, taking the same values."
-msgstr ""
-"``comparisoncontext``\n"
-" КоличеÑтво Ñтрок контекÑта, показываемого при поÑтрочном Ñравнении "
-"файлов.\n"
-" ЕÑли отрицательно или ``full``, файлы показыаютÑÑ Ñ†ÐµÐ»Ð¸ÐºÐ¾Ð¼. По умолчанию "
-"5.\n"
-" Это значение может быть переопределено параметром запроÑа ``context`` "
-"команды\n"
-" ``comparison``, принимающей такие же значениÑ."
-
-msgid ""
"``hidden``\n"
" Whether to hide the repository in the hgwebdir index.\n"
" Default is False."
msgstr ""
"``hidden``\n"
-" Скрывать ли хранилище в ÑпиÑке hgwebdir.\n"
+" ПрÑтать репозиторий из ÑпиÑка hgwebdir.\n"
" По умолчанию False (не прÑтать)."
msgid ""
@@ -18523,20 +13776,6 @@ msgstr ""
" ИÑпользовать IPv6. По умолчанию False (не иÑпользовать)."
msgid ""
-"``logoimg``\n"
-" File name of the logo image that some templates display on each page.\n"
-" The file name is relative to ``staticurl``. That is, the full path to\n"
-" the logo image is \"staticurl/logoimg\".\n"
-" If unset, ``hglogo.png`` will be used."
-msgstr ""
-"``logoimg``\n"
-" Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ñ ÐºÐ°Ñ€Ñ‚Ð¸Ð½ÐºÐ¾Ð¹-логотипом, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÑ‚ÑÑ Ð² некоторых\n"
-" шаблонах на каждой Ñтранице. Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° задаетÑÑ Ð¾Ñ‚Ð½Ð¾Ñительно "
-"``staticurl``.\n"
-" Т.е. полный путь к логотипу - \"staticurl/logoimg\".\n"
-" ЕÑли не задан, будет иÑпользован ``hglogo.png``."
-
-msgid ""
"``logourl``\n"
" Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``\n"
" will be used."
@@ -18551,7 +13790,7 @@ msgid ""
" working directory."
msgstr ""
"``name``\n"
-" Ð˜Ð¼Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°, иÑпользуемое в веб-интерфейÑе. По умолчанию\n"
+" Ð˜Ð¼Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ, иÑпользуемое в веб-интерфейÑе. По умолчанию\n"
" текущий рабочий каталог."
msgid ""
@@ -18581,7 +13820,7 @@ msgid ""
" Prefix path to serve from. Default is '' (server root)."
msgstr ""
"``prefix``\n"
-" ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð¿ÑƒÑ‚Ð¸, откуда раздаютÑÑ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð° (по умолчанию: корень Ñервера)"
+" ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð¿ÑƒÑ‚Ð¸, откуда шарÑÑ‚ÑÑ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ð¸ (по умолчанию: корень Ñервера)"
msgid ""
"``push_ssl``\n"
@@ -18605,21 +13844,22 @@ msgstr ""
" CGI-Ñкриптом. ИÑпользуйте Ñтот параметр, чтобы отдавать Ñтатику\n"
" напрÑмую HTTP-Ñервером. Пример: ``http://hgserver/static/``."
+#, fuzzy
msgid ""
"``stripes``\n"
" How many lines a \"zebra stripe\" should span in multiline output.\n"
" Default is 1; set to 0 to disable."
msgstr ""
"``stripes``\n"
-" Сколько Ñтрок должна охватывать \"полоÑа зебры\" (\"zebra stripe\") при\n"
-" многоÑтрочном выводе. По умолчанию 1; 0 - отключить."
+" КоличеÑтво Ñтрок ...\n"
+#, fuzzy
msgid ""
"``style``\n"
" Which template map style to use."
msgstr ""
"``style``\n"
-" ИÑпользуемый Ñтиль шаблона Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ (template map style)"
+" ИÑпользуемый Ñтиль шаблона"
msgid ""
"``templates``\n"
@@ -18635,7 +13875,7 @@ msgid ""
"- backout, commit, import, tag: Specify the commit date.\n"
"- log, revert, update: Select revision(s) by date."
msgstr ""
-"- backout, commit, import, tag: указать дату фикÑации.\n"
+"- backout, commit, import, tag: указать дату коммита.\n"
"- log, revert, update: выбрать ревизию(и) по дате."
msgid "Many date formats are valid. Here are some examples:"
@@ -18657,7 +13897,7 @@ msgid ""
"- ``12/6/6`` (Dec 6 2006)"
msgstr ""
"- ``Wed Dec 6 13:18:29 2006`` (предполагаетÑÑ Ð¼ÐµÑтное времÑ)\n"
-"- ``Dec 6 13:18 -0600`` (Ñмещение отноÑительно начала года)\n"
+"- ``Dec 6 13:18 -0600`` (Ñмещение отноÑитльно начала года)\n"
"- ``Dec 6 13:18 UTC`` (UTC и GMT Ñто пÑевдонимы Ð´Ð»Ñ +0000)\n"
"- ``Dec 6`` (полночь)\n"
"- ``13:18`` (ÑегоднÑшний день)\n"
@@ -18699,7 +13939,7 @@ msgstr ""
"- ``<DATE`` - до заданной даты/времени включительно\n"
"- ``>DATE`` - поÑле заданной даты/времени включительно\n"
"- ``DATE to DATE`` - диапазон дат, включительно\n"
-"- ``-DAYS`` - заданное количеÑтво дней назад от ÑегоднÑшнего днÑ\n"
+"- ``-DAYS`` - заданное количÑтво дней назад от ÑегоднÑшнего днÑ\n"
msgid ""
"Mercurial's default format for showing changes between two versions of\n"
@@ -18736,7 +13976,7 @@ msgid ""
msgstr ""
"Mercurial также поддерживает раÑширенный формат diff VCS git, который\n"
"иÑправлÑет Ñти недоÑтатки. Этот формат не иÑпользуетÑÑ Ð¿Ð¾ умолчанию,\n"
-"потому что многие раÑпроÑтраненные инÑтрументы его не понимают."
+"потому что многие раÑпроÑтраненные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ не понимают."
msgid ""
"This means that when generating diffs from a Mercurial repository\n"
@@ -18747,13 +13987,13 @@ msgid ""
"pull) are not affected by this, because they use an internal binary\n"
"format for communicating changes."
msgstr ""
-"Это значит, что при генерировании различий из хранилища Mercurial\n"
+"Это значит, что при генерировании diff'ов из Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Mercurial\n"
"(например, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`export`), нужно быть оÑторожным Ñ Ñ‚Ð°ÐºÐ¸Ð¼Ð¸\n"
-"вещами как ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ другими перечиÑленными выше,\n"
-"потому что при применении Ñтандартного файла различий к другому хранилищу\n"
-"Ñта Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‚ÐµÑ€ÑетÑÑ. Ðа внутренние операции Mercurial (как push\n"
+"вещами как ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ другими перечиленными выше,\n"
+"потому что при применении Ñтандартного diff'а к другому репозиторию\n"
+"Ñта Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‚ÐµÑ€ÑетÑÑ. Ðа внутреннии операции Mercurial (как push\n"
"или pull) Ñто не влиÑет, потому что они иÑпользуют внутренний бинарный\n"
-"формат Ð´Ð»Ñ Ð¾Ð±Ð¼ÐµÐ½Ð° изменениÑми."
+"формат Ð´Ð»Ñ Ð¾Ð±Ð¼Ð½Ð° изменениÑми."
msgid ""
"To make Mercurial produce the git extended diff format, use the --git\n"
@@ -18761,10 +14001,10 @@ msgid ""
"section of your configuration file. You do not need to set this option\n"
"when importing diffs in this format or using them in the mq extension.\n"
msgstr ""
-"Чтобы генерировать Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð² раÑширенном формате git, иÑпользуйте опцию\n"
+"Чтобы генерировать diff'Ñ‹ в раÑширенном формате git, иÑпользуйте опцию\n"
"--git, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð´Ð¾Ñтупна Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… команд, или уÑтановите 'git = True'\n"
-"в Ñекции [diff] в вашем конфиге. Эту опцию не обÑзательно указывать\n"
-"при импорте различий в Ñтом формате или иÑпользовании раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ mq.\n"
+"в Ñекции [diff] в вашем конфиге. Эту опцию не обÑзательно указыать\n"
+"при импорте diff'ов в Ñтом формате или иÑпользовании раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ mq.\n"
msgid ""
"HG\n"
@@ -18788,7 +14028,7 @@ msgid ""
msgstr ""
"HGEDITOR\n"
"\n"
-" Ð˜Ð¼Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð°, который запуÑкаетÑÑ Ð¿Ñ€Ð¸ фикÑации. См. EDITOR."
+" Ð˜Ð¼Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð°, который запуÑкаетÑÑ Ð¿Ñ€Ð¸ коммите. См. EDITOR."
msgid " (deprecated, use configuration file)"
msgstr " (уÑтарело, иÑпользуйте файл конфигурации)"
@@ -18801,9 +14041,9 @@ msgid ""
" be overridden with the --encoding command-line option."
msgstr ""
"HGENCODING\n"
-" Замещает наÑтройку кодировки в локали иÑпользуемую Mercurial\n"
+" Замещает наÑтроку кодировки в локали иÑпользуемую Mercurial\n"
" по умолчанию. Этот параметр иÑпользуетÑÑ Ð´Ð»Ñ Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ\n"
-" имен пользователей, опиÑаний ревизий, имен веток и меток.\n"
+" имен пользователей, опиÑаний ревизий, имен ветвей и меток.\n"
" Можно переопределить Ñту наÑтройку Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ опции командной\n"
" Ñтроки --encoding."
@@ -18847,8 +14087,8 @@ msgid ""
" ancestor file."
msgstr ""
"HGMERGE\n"
-" Программа Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð¾Ð² ÑлиÑниÑ. Она будет вызвана\n"
-" Ñ Ñ‚Ñ€ÐµÐ¼Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð°Ð¼Ð¸: локальный файл, отдалённый файл, иÑходный файл."
+" Программа Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÐ¾Ð² ÑлиÑниÑ. Она будет вызвана\n"
+" Ñ Ñ‚Ñ€ÐµÐ¼Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð°Ð¼Ð¸: локальный файл, удаленный файл, иÑходный файл."
msgid ""
"HGRCPATH\n"
@@ -18862,7 +14102,7 @@ msgstr ""
" Ð’ качеÑтве Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ñ Ð² Unix иÑпользуетÑÑ \":\", в Windows - \";\".\n"
" ЕÑли HGRCPATH не уÑтановлена, иÑпользуетÑÑ Ð¿ÑƒÑ‚ÑŒ поиÑка по умолчанию\n"
" Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ платформы. ЕÑли Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑƒÑтановлена в пуÑтое значение,\n"
-" то иÑпользуетÑÑ .hg/hgrc текущего хранилища."
+" то иÑпользуетÑÑ .hg/hgrc текущего репозиториÑ."
msgid " For each element in HGRCPATH:"
msgstr " Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñлемента в HGRCPATH:"
@@ -18920,7 +14160,7 @@ msgid ""
" available values will be considered in this order:"
msgstr ""
"HGUSER\n"
-" Это Ñтрока, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð² качеÑтве имени автора фикÑации. ЕÑли\n"
+" Это Ñтрока, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð² качеÑтве имени автора коммита. ЕÑли\n"
" не уÑтановлена, иÑпользуютÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² Ñледующем порÑдке:"
msgid ""
@@ -18941,21 +14181,21 @@ msgid ""
" May be used as the author of a commit; see HGUSER."
msgstr ""
"EMAIL\n"
-" Может быть иÑпользовано в качеÑтве автора фикÑации; Ñм. HGUSER."
+" Может быть иÑпользовано в качеÑтве автора коммита; Ñм. HGUSER."
msgid ""
"LOGNAME\n"
" May be used as the author of a commit; see HGUSER."
msgstr ""
"LOGNAME\n"
-" Может быть иÑпользовано в качеÑтве автора фикÑации; Ñм. HGUSER."
+" Может быть иÑпользовано в качеÑтве автора коммита; Ñм. HGUSER."
msgid ""
"VISUAL\n"
" This is the name of the editor to use when committing. See EDITOR."
msgstr ""
"VISUAL\n"
-" Ðазвание редактора, иÑпользуемого при фикÑациÑÑ…. См. EDITOR."
+" Ðазвание редактора, иÑпользуемого при коммитах. См. EDITOR."
msgid ""
"EDITOR\n"
@@ -18967,8 +14207,8 @@ msgid ""
" defaults to 'vi'."
msgstr ""
"EDITOR\n"
-" Иногда требуетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ текÑтовый файл в редакторе, чтобы.\n"
-" внеÑти изменениÑ, например Ð´Ð»Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ„Ð¸ÐºÑации.\n"
+" Инодга требуетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ текÑтовый файл в редакторе, чтобы.\n"
+" внеÑти изменениÑ, например Ð´Ð»Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð°.\n"
" ИÑпользуемый редактор определÑетÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ð¼Ð¸ Ñреды HGEDITOR,\n"
" VISUAL и EDITOR, именно в таком порÑдке. ВыбираетÑÑ Ð¿ÐµÑ€Ð²Ð°Ñ\n"
" непуÑÑ‚Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ. ЕÑли они вÑе пуÑÑ‚Ñ‹, иÑпользуетÑÑ 'vi'."
@@ -18979,7 +14219,7 @@ msgid ""
" set appropriately if this Mercurial is not installed system-wide.\n"
msgstr ""
"PYTHONPATH\n"
-" ИÑпользуетÑÑ Python'ом Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка импортируемых модулей и должна\n"
+" ИÑпользуетÑÑ Python'ом Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка импортирумых модулей и должна\n"
" быть корректно уÑтановлена, еÑли Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Mercurial не\n"
" уÑтановлена в ÑиÑтему штатно.\n"
@@ -19016,25 +14256,21 @@ msgid ""
"like this::"
msgstr ""
"Чтобы включить раÑширение \"foo\", включенное в диÑтрибутив Mercurial\n"
-"или доÑтупное по извеÑтным Python'у путÑм, Ñоздайте запиÑÑŒ в вашем\n"
+"или доÑтупное по извеÑтным Python'у путÑм, Ñоздайте запиÑÑŒ в вышем\n"
"файле конфигурации::"
msgid ""
" [extensions]\n"
" foo ="
msgstr ""
-" [extensions]\n"
-" foo ="
msgid "You may also specify the full path to an extension::"
-msgstr "Можно также указать полный путь к раÑширению::"
+msgstr "Можно также указать полный путь к раширению::"
msgid ""
" [extensions]\n"
" myfeature = ~/.hgext/myfeature.py"
msgstr ""
-" [extensions]\n"
-" myfeature = ~/.hgext/myfeature.py"
msgid ""
"To explicitly disable an extension enabled in a configuration file of\n"
@@ -19082,7 +14318,7 @@ msgstr ""
"Идентификаторы, такие как имена файлов или шаблоны, должны заключатьÑÑ\n"
"в одиночные или двойные кавычки, еÑли они Ñодержат Ñимволы не из набора\n"
"``[.*{}[]?/\\_a-zA-Z0-9\\x80-\\xff]``, или еÑли они Ñовпадают Ñ Ð¾Ð´Ð½Ð¸Ð¼\n"
-"из предопределённых предикатов. Это отноÑитÑÑ Ñ‚Ð°ÐºÐ¶Ðµ и к шаблонам имен\n"
+"из предопредленных предикатов. Это отноÑитÑÑ Ñ‚Ð°ÐºÐ¶Ðµ и к шаблонам имен\n"
"файлов, не ÑвлÑющихÑÑ glob'ами, и к аргументам предикатов."
msgid ""
@@ -19090,9 +14326,10 @@ msgid ""
"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 ""
-"Ð’ идентификаторах можно иÑпользовать Ñпециальные Ñимволы, ÑÐºÑ€Ð°Ð½Ð¸Ñ€ÑƒÑ Ð¸Ñ….\n"
-"Ðапример ``\\n`` интерпретируетÑÑ ÐºÐ°Ðº перевод Ñтроки. Чтобы запретить\n"
-"такую интерпретацию, поÑтавьте перед Ñтрокой ``r``, например, ``r'...'``."
+"Спец. Ñимволы могут иÑпользоватьÑÑ Ð² идентификаторах, при Ñтом они\n"
+"должны ÑкранироватьÑÑ, например ``\\n`` интерпретируетÑÑ ÐºÐ°Ðº перевод\n"
+"Ñтроки. Чтобы отключить интерпретацию ÑпецÑимволов, Ñтроку можно\n"
+"предварÑÑ‚ÑŒ ``r``, например ``r'...'``."
msgid "There is a single prefix operator:"
msgstr "ПоддерживаетÑÑ Ð¾Ð´Ð¸Ð½ префикÑный оператор:"
@@ -19134,7 +14371,7 @@ msgid "The following predicates are supported:"
msgstr "ПоддерживаютÑÑ Ñледующие предикаты:"
msgid ".. predicatesmarker"
-msgstr ".. predicatesmarker"
+msgstr ""
msgid "Some sample queries:"
msgstr "Примеры запроÑов:"
@@ -19144,37 +14381,38 @@ msgid ""
msgstr "- Показать ÑÑ‚Ð°Ñ‚ÑƒÑ Ñ„Ð°Ð¹Ð»Ð¾Ð², ÑчитающихÑÑ Ð±Ð¸Ð½Ð°Ñ€Ð½Ñ‹Ð¼Ð¸, в рабочем каталоге::"
msgid " hg status -A \"set:binary()\""
-msgstr " hg status -A \"set:binary()\""
+msgstr ""
msgid "- Forget files that are in .hgignore but are already tracked::"
msgstr "- Забыть файлы, которые запиÑаны в .hgignore, но уже контролируютÑÑ::"
msgid " hg forget \"set:hgignore() and not ignored()\""
-msgstr " hg forget \"set:hgignore() and not ignored()\""
+msgstr ""
msgid "- Find text files that contain a string::"
msgstr "- Ðайти текÑтовые файлы, Ñодержащие Ñтроку::"
msgid " hg locate \"set:grep(magic) and not binary()\""
-msgstr " hg locate \"set:grep(magic) and not binary()\""
+msgstr ""
msgid "- Find C files in a non-standard encoding::"
msgstr "- Ðайти файлы С Ñ Ð½ÐµÑтандартной кодировкой::"
-msgid " hg locate \"set:**.c and not encoding('UTF-8')\""
-msgstr " hg locate \"set:**.c and not encoding('UTF-8')\""
+msgid " hg locate \"set:**.c and not encoding(ascii)\""
+msgstr ""
msgid "- Revert copies of large binary files::"
msgstr "- Вернуть (revert) копии больших бинарных файлов::"
msgid " hg revert \"set:copied() and binary() and size('>1M')\""
-msgstr " hg revert \"set:copied() and binary() and size('>1M')\""
+msgstr ""
-msgid "- Remove files listed in foo.lst that contain the letter a or b::"
-msgstr "- Удалить файлы, перечиÑленные в foo.lst и Ñодержащие букву a или b::"
+msgid "- Remove files listed in files.lst that contain the letter a or b::"
+msgstr ""
+"- Удалить файлы, перечиÑленные в files.lst и Ñодержащие букву a или b::"
msgid " hg remove \"set: 'listfile:foo.lst' and (**a* or **b*)\""
-msgstr " hg remove \"set: 'listfile:foo.lst' and (**a* or **b*)\""
+msgstr ""
msgid "See also :hg:`help patterns`.\n"
msgstr "См. также :hg:`help patterns`.\n"
@@ -19203,10 +14441,10 @@ msgid ""
" when you make a commit."
msgstr ""
"Закладка (Bookmark)\n"
-" Закладки - Ñто указатели на некоторую фикÑацию, которые перемещаютÑÑ\n"
-" при фикÑации. Они похожи на метки тем, что их можно иÑпользовать\n"
+" Закладки - Ñто указатели на некоторый коммит, которые перемещаютÑÑ\n"
+" при коммите. Они похожи на метки тем, что их можно иÑпользовать\n"
" вмеÑто ID (Ñ…Ñшей) наборов изменений, например, в :hg:`update`.\n"
-" Ðо, в отличие от меток, закладки перемещаютÑÑ Ð²Ñлед за фикÑациÑми."
+" Ðо, в отличие от меток, закладки перемещаютÑÑ Ð²Ñлед за коммитами."
msgid ""
" Bookmarks can be renamed, copied and deleted. Bookmarks are local,\n"
@@ -19216,8 +14454,8 @@ msgid ""
msgstr ""
" Закладки можно переименовывать, копировать и удалÑÑ‚ÑŒ. Закладки\n"
" по умолчанию локальны, до тех пор пока они Ñвно не передаютÑÑ\n"
-" Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ push или pull между хранилищами. Передача закладок\n"
-" позволÑет вам ÑовмеÑтно работать над ветками, не ÑоздаваÑ\n"
+" Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ push или pull между репозиториÑми. Передача закладок\n"
+" позволÑет вам ÑовмеÑтно работать над ветвÑми, не ÑоздаваÑ\n"
" именованную ветку."
msgid ""
@@ -19228,13 +14466,13 @@ msgid ""
" a named branch. If a topological branch is not named, it becomes\n"
" an anonymous branch. See 'Branch, anonymous' and 'Branch, named'."
msgstr ""
-"Ветка (Branch)\n"
+"Ветвь (Branch)\n"
" Дочерний набор изменений, родительÑкий набор которого не ÑвлÑетÑÑ\n"
" головной ревизией. Иногда называютÑÑ Ñ‚Ð°ÐºÐ¶Ðµ топологичеÑкими ветками\n"
-" (Ñм. 'Ветка, топологичеÑкаÑ'). ЕÑли Ð´Ð»Ñ Ñ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð³Ð¸Ñ‡ÐµÑкой ветки\n"
+" (Ñм. 'Ветвь, топологичеÑкаÑ'). ЕÑли Ð´Ð»Ñ Ñ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð³Ð¸Ñ‡ÐµÑкой ветви \n"
" задаетÑÑ Ð¸Ð¼Ñ, она ÑтановитÑÑ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð¾Ð¹ веткой. ЕÑли \n"
-" топологичеÑÐºÐ°Ñ Ð²ÐµÑ‚ÐºÐ° не имеет имени, она ÑтановитÑÑ\n"
-" анонимной веткой. См. 'Ветка, анонимнаÑ' и 'Ветка, именованнаÑ'."
+" топологичеÑÐºÐ°Ñ Ð²ÐµÑ‚Ð²ÑŒ не имеет имени, она ÑтановитÑÑ\n"
+" анонимной веткой. См. 'Ветвь, анонимнаÑ' и 'Ветвь, именованнаÑ'."
msgid ""
" Branches may be created when changes are pulled from or pushed to\n"
@@ -19245,13 +14483,13 @@ msgid ""
" explicitly with a named branch, but it can also be done locally,\n"
" using bookmarks or clones and anonymous branches."
msgstr ""
-" Ветки могут ÑоздаватьÑÑ Ð¿Ñ€Ð¸ передаче изменений Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ push или\n"
+" Ветви могут ÑоздаватьÑÑ Ð¿Ñ€Ð¸ передаче изменений Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ push или\n"
" pull, поÑкольку Ñти операции могут Ñоздавать новые головы. Следует\n"
-" заметить, что термин \"ветка\" может быть иÑпользован неформально\n"
+" заметить, что термин \"ветвь\" пожет быть иÑпользован неформально\n"
" Ð´Ð»Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ð½ÐµÐ·Ð°Ð²Ð¸Ñимой чаÑти процеÑÑа разработки. Иногда Ñто\n"
-" формализуетÑÑ Ñвно Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ именованных веток, но можно Ñделать\n"
+" формализуетÑÑ Ñвно Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ именованных ветвей, но можно Ñделать\n"
" Ñто и локально Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ закладок или ÐºÐ»Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ анонимных\n"
-" веток."
+" ветвей."
msgid " Example: \"The experimental branch\"."
msgstr " Пример: \"ЭкÑÐ¿ÐµÑ€Ð¸Ð¼ÐµÐ½Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ‚ÐºÐ°\"."
@@ -19261,8 +14499,8 @@ msgid ""
" its parent having more than one child."
msgstr ""
"Ветвление\n"
-" (Ñоздание ветки) ДейÑтвие по Ñозданию дочернего набора изменений,\n"
-" в результате которого родительÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ более одной\n"
+" (Ñоздание ветви) ДейÑтвие по Ñозданию дочернего набора изменений,\n"
+" в результате которого родетльÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ более одной\n"
" дочерней."
msgid " Example: \"I'm going to branch at X\"."
@@ -19274,33 +14512,33 @@ msgid ""
" a head and the name of the branch is not changed, a new anonymous\n"
" branch is created."
msgstr ""
-"Ветка, анонимнаÑ\n"
+"Ветвь, анонимнаÑ\n"
" Каждый раз, когда новый набор изменений ÑоздаетÑÑ Ð¾Ñ‚ родителÑ,\n"
-" не ÑвлÑющегоÑÑ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð¾Ð¹ ревизией, и при Ñтом Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸ не менÑетÑÑ,\n"
-" ÑоздаётÑÑ Ð½Ð¾Ð²Ð°Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ°."
+" не ÑвлÑющегоÑÑ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð¾Ð¹ ревизией, и при Ñтом Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸ не менÑетÑÑ,\n"
+" ÑодаетÑÑ Ð½Ð¾Ð²Ð°Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ."
msgid ""
"Branch, closed\n"
" A named branch whose branch heads have all been closed."
msgstr ""
-"Ветка, закрытаÑ\n"
-" Ð˜Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ°, на которой вÑе головные ревизии закрыты."
+"Ветвь, закрытаÑ\n"
+" Ð˜Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ, на которой вÑе головные ревизии закрыты."
msgid ""
"Branch, default\n"
" The branch assigned to a changeset when no name has previously been\n"
" assigned."
msgstr ""
-"Ветка, по умолчанию\n"
-" Ветка, привÑÐ·Ð°Ð½Ð½Ð°Ñ Ðº набору изменений, до того, как было Ñвно задано\n"
-" какое-либо Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸."
+"Ветвь, по умолчанию\n"
+" Ветвь, привÑÐ·Ð°Ð½Ð½Ð°Ñ Ðº набору изменений, до того, как было Ñвно задано\n"
+" какое-либо Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸."
msgid ""
"Branch head\n"
" See 'Head, branch'."
msgstr ""
-"Голова ветки\n"
-" См. 'Голова, ветки'."
+"Голова ветви\n"
+" См. 'Голова, ветви'."
msgid ""
"Branch, inactive\n"
@@ -19310,11 +14548,11 @@ msgid ""
" shows inactive branches by default, though they can be hidden with\n"
" :hg:`branches --active`."
msgstr ""
-"Ветка, неактивнаÑ\n"
-" ЕÑли Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ° не имеет топологичеÑких головных ревизий,\n"
-" она ÑчитаетÑÑ Ð½ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð¹. Ðапример, ветка Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð¹ функции Ñтанет\n"
-" неактивной, когда она будет Ñлита в ветку по умолчанию (default).\n"
-" Команда ':hg:`branches` по умолчанию показывает неактивные ветки,\n"
+"Ветвь, неактивнаÑ\n"
+" ЕÑли Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ не имеет топологичеÑких головных ревизий,\n"
+" она ÑчитаетÑÑ Ð½ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð¹. Ðапример, ветка Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð¹ функциеи Ñтанет\n"
+" неактивной, когда она будет Ñлита в ветвь по умолчанию (default).\n"
+" Команда ':hg:`branches` по умолчанию показывает неактивные ветви,\n"
" их можно Ñкрыть Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`branches --active`."
msgid ""
@@ -19323,8 +14561,8 @@ msgid ""
" --close-branch` when they are no longer needed."
msgstr ""
" ПРИМЕЧÐÐИЕ: такое поведение уÑтарело и больше не иÑпользуетÑÑ,\n"
-" потому что оно Ñлишком неочевидно и может вызывать путаницу.\n"
-" Теперь не нужные более ветки необходимо Ñвно закрывать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
+" потому что оно Ñлишком неочивидно и может вызывать путаницу.\n"
+" Теперь не нужные более ветви необходимо Ñвно закрывать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
" :hg:`commit --close-branch`"
msgid ""
@@ -19336,12 +14574,12 @@ msgid ""
" :hg:`commit --close-branch` for more information on managing\n"
" branches."
msgstr ""
-"Ветка, именованнаÑ\n"
-" ÐеÑколько наборов изменений, имеющих одно и то же Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸.\n"
+"Ветвь, именованнаÑ\n"
+" ÐеÑколько наборов изменений, имеющих одно и то же Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸.\n"
" По умолчанию дочерние ревизии набора изменений на некоторой\n"
-" именованной ветке принадлежат той же ветке. Дочерний набор\n"
-" изменений может быть Ñвно привÑзан к другой ветке. Подробнее об\n"
-" управлении ветками Ñм. :hg:`help branch`, :hg:`help branches` и\n"
+" именованной ветви принадлежат той же ветви. Дочерний набор\n"
+" изменений может быть Ñвно привÑзан к другой ветви. Подробнее об\n"
+" управлении ветвÑми Ñм. :hg:`help branch`, :hg:`help branches` и\n"
" :hg:`commit --close-branch`"
msgid ""
@@ -19353,20 +14591,20 @@ msgid ""
" 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"
-" но на первоначальную ветку более не добавлÑетÑÑ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð² изменений,\n"
-" то Ð¿ÐµÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ‚ÐºÐ° будет ÑущеÑтвовать только в качеÑтве имени."
+" Именованные ветви можно трактовать как некое проÑтранÑтво имен,\n"
+" разделÑющие наборы изменений, ÑоÑтавлÑющие репозиторий, на\n"
+" неÑколько отдельных подмножеÑтв. Ð˜Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ не обÑзательно\n"
+" ÑвлÑетÑÑ Ñ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð³Ð¸Ñ‡ÐµÑткой веткой. ЕÑли Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ отщеплÑетÑÑ\n"
+" от головы другой именованной ветви или ветви по умолчанию (default),\n"
+" но на первоначальную ветвь более не добавлÑетÑÑ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð² изменений,\n"
+" то Ð¿ÐµÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ будет ÑущеÑтвовать только в качеÑтве имени."
msgid ""
"Branch tip\n"
" See 'Tip, branch'."
msgstr ""
-"ÐžÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ (tip) ветки\n"
-" См. 'ÐžÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ (tip), ветка'."
+"ÐžÐºÐ¾Ð½Ñ‡ÐµÐ½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ (tip) ветви\n"
+" См. 'ÐžÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ (tip), ветвь'."
msgid ""
"Branch, topological\n"
@@ -19376,12 +14614,12 @@ msgid ""
" branch is not named, it becomes an anonymous branch of the\n"
" current, possibly default, branch."
msgstr ""
-"Ветка, топологичеÑкаÑ\n"
+"Ветвь, топологичеÑкаÑ\n"
" Каждый раз, когда дочернÑÑ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¾Ñ‚Ñ‰ÐµÐ¿Ð»ÑетÑÑ Ð¾Ñ‚ родительÑкой,\n"
" ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ðµ ÑвлÑетÑÑ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð¾Ð¹ ревизий, ÑоздаетÑÑ Ñ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð³Ð¸Ñ‡ÐµÑкаÑ\n"
-" ветка. ЕÑли ей приÑваиваетÑÑ Ð¸Ð¼Ñ, она ÑтановитÑÑ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð¾Ð¹\n"
-" веткой. ЕÑли Ð´Ð»Ñ Ñ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð³Ð¸Ñ‡ÐµÑкой ветки не задаетÑÑ Ð¸Ð¼Ñ, она\n"
-" ÑтановитÑÑ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾Ð¹ веткой текущей ветки - возможно, ветки\n"
+" ветвь. ЕÑли ей приÑваиваетÑÑ Ð¸Ð¼Ñ, она ÑтановитÑÑ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð¾Ð¹\n"
+" веткой. ЕÑли Ð´Ð»Ñ Ñ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð³Ð¸Ñ‡Ñкой ветви не задаетÑÑ Ð¸Ð¼Ñ, она\n"
+" ÑтановитÑÑ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾Ð¹ веткой текущей ветви - возможно ветви\n"
" по умолчанию (default)."
msgid ""
@@ -19391,16 +14629,16 @@ msgid ""
" author, commit message, date, and list of changed files."
msgstr ""
"Журнал изменений (Changelog)\n"
-" ЗапиÑÑŒ наборов изменений в порÑдке их Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² хранилище.\n"
+" ЗапиÑÑŒ наборов изменений в порÑдке из Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² репозиторий.\n"
" Она включает информацию об ID (Ñ…Ñше) ревизии, авторе, Ñообщение\n"
-" фикÑации, дату и ÑпиÑок измененных файлов."
+" коммита, дату и ÑпиÑок измененных файлов."
msgid ""
"Changeset\n"
" A snapshot of the state of the repository used to record a change."
msgstr ""
"Ðабор изменений (changeset)\n"
-" Снимок ÑоÑтоÑÐ½Ð¸Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°, иÑпользуемый Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи изменениÑ."
+" Снимок ÑоÑтоÑÐ½Ð¸Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ, иÑпользуемый Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи изменениÑ."
msgid ""
"Changeset, child\n"
@@ -19422,8 +14660,8 @@ msgid ""
msgstr ""
"Идентификатор (ID) набора изменений\n"
" Ð¥Ñш SHA-1, однозначно идентифицирующий набор изменений. Может\n"
-" быть предÑтавлен как \"длиннаÑ\" (40 шеÑтнадцатеричных Ñимволов)\n"
-" или \"короткаÑ\" (12 шеÑтнадцатеричных Ñимволов) Ñтрока."
+" быть предÑтавлен как \"длиннаÑ\" (40 шеÑтнадцатиричных Ñимволов)\n"
+" или \"короткаÑ\" (12 шеÑтнадцатиричных Ñимволов) Ñтрока."
msgid ""
"Changeset, merge\n"
@@ -19431,7 +14669,7 @@ msgid ""
" committed."
msgstr ""
"Ðабор изменений ÑлиÑниÑ\n"
-" Ðабор изменений Ñ Ð´Ð²ÑƒÐ¼Ñ Ð¿Ñ€ÐµÐ´ÐºÐ°Ð¼Ð¸. СоздаетÑÑ ÐºÐ¾Ð³Ð´Ð° фикÑируетÑÑ\n"
+" Ðабор изменений Ñ Ð´Ð²ÑƒÐ¼Ñ Ð¿Ñ€ÐµÐ´ÐºÐ°Ð¼Ð¸. СоздаетÑÑ ÐºÐ¾Ð³Ð´Ð° коммититÑÑ\n"
" результат ÑлиÑниÑ."
msgid ""
@@ -19453,44 +14691,45 @@ msgid ""
" revision. This use should probably be avoided where possible, as\n"
" changeset is much more appropriate than checkout in this context."
msgstr ""
-"Извлечение, извлечь (checkout)\n"
+"Чекаут (checkout, извлечение)\n"
" (Сущ.) Рабочий каталог, обновленный до определенной ревизии.\n"
-" Ðе Ñтоит иÑпользовать Ñто понÑтие, поÑкольку набор изменений или\n"
-" Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ ÑвлÑÑŽÑ‚ÑÑ Ð±Ð¾Ð»ÐµÐµ подходÑщими терминами в таком контекÑте."
+" Ðе Ñтоит иÑпользовать Ñто понÑтие (а по-руÑÑки оно вообще\n"
+" беÑÑмыÑленно), поÑкольку Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ ÑвлÑетÑÑ Ð±Ð¾Ð»ÐµÐµ подходÑщим\n"
+" термином в таком контекÑте."
msgid " Example: \"I'm using checkout X.\""
-msgstr " Пример: \"Я иÑпользую извлечение Ð¥.\""
+msgstr " Пример: \"Я иÑпользую чекаут Ð¥.\" // Бред какой ;)"
msgid ""
" (Verb) Updating the working directory to a specific changeset. See\n"
" :hg:`help update`."
msgstr ""
-" (Гл.) Обновить рабочий каталог до определенной ревизии. См.\n"
+" (Гл.) Обновление рабочего каталога до определенной ревизии. См.\n"
" :hg:`help update`."
msgid " Example: \"I'm going to check out changeset X.\""
-msgstr " Пример: \"Я ÑобираюÑÑŒ извлечь ревизию Ð¥.\""
+msgstr " Пример: \"Я ÑобираюÑÑŒ чекнуть ревизию Ð¥.\" // еще хуже"
msgid ""
"Child changeset\n"
" See 'Changeset, child'."
msgstr ""
" Дочерний набор изменений (ревизиÑ)\n"
-" См. 'Ðабор изменений, дочерний'."
+" См. 'Ðабор изменинй, дочерний'."
msgid ""
"Close changeset\n"
-" See 'Head, closed branch'"
+" See 'Changeset, close'."
msgstr ""
-"Ð—Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ\n"
-" См. 'Ð“Ð¾Ð»Ð¾Ð²Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ, Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ‚ÐºÐ°'."
+"Закрыть набор изменений (ревизию)\n"
+" См. 'Ðабор изменений, закрыть'."
msgid ""
"Closed branch\n"
" See 'Branch, closed'."
msgstr ""
-"Ð—Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ‚ÐºÐ°\n"
-" Cм. 'Ветка, закрытаÑ'."
+"Ð—Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ\n"
+" Cм. 'Ветвь, закрытаÑ'."
msgid ""
"Clone\n"
@@ -19498,11 +14737,11 @@ msgid ""
" clone must be in the form of a revision and its ancestors."
msgstr ""
"Клон\n"
-" ÐŸÐ¾Ð»Ð½Ð°Ñ Ð¸Ð»Ð¸ чаÑÑ‚Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°. ЧаÑтичный клон должен\n"
+" ÐŸÐ¾Ð»Ð½Ð°Ñ Ð¸Ð»Ð¸ чаÑÑ‚Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ. ЧаÑтичный клон должен\n"
" быть в форме ревизии Ñ ÐµÐµ предками."
msgid " Example: \"Is your clone up to date?\"."
-msgstr " Пример: \"Содержит ли твой клон вÑе поÑледние изменениÑ?\""
+msgstr " Пример: \"Я вÑегда беру клон Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Linux в отпуÑк.\""
msgid " (Verb) The process of creating a clone, using :hg:`clone`."
msgstr ""
@@ -19510,24 +14749,24 @@ msgstr ""
" ПроцеÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ»Ð¾Ð½Ð° Ñ Ð¸Ñпользованием :hg:`clone`."
msgid " Example: \"I'm going to clone the repository\"."
-msgstr " Пример:\"Я ÑобираюÑÑŒ клонировать хранилище\"."
+msgstr " Пример:\"Я ÑобираюÑÑŒ клонировать репозиторий\"."
msgid ""
"Closed branch head\n"
" See 'Head, closed branch'."
msgstr ""
-"Ð—Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð° ветки\n"
-" См. 'Ð“Ð¾Ð»Ð¾Ð²Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ, Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ‚ÐºÐ°'."
+"Ð—Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð° ветви\n"
+" См. 'Ð“Ð¾Ð»Ð¾Ð²Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ, Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ'."
msgid ""
"Commit\n"
" (Noun) A synonym for changeset."
msgstr ""
-"ФикÑациÑ\n"
+"Коммит\n"
" (Сущ.) Синоним набора изменений."
msgid " Example: \"Is the bug fixed in your recent commit?\""
-msgstr " Пример: \"ИÑправлена ли Ñта ошибка в твоей поÑледней фикÑации?\""
+msgstr " Пример: \"ИÑправлен ли Ñтот баг в твоем поÑледнем коммите?\""
msgid ""
" (Verb) The act of recording changes to a repository. When files\n"
@@ -19535,13 +14774,13 @@ msgid ""
" differences between the committed files and their parent\n"
" changeset, creating a new changeset in the repository."
msgstr ""
-" (Гл.) ДейÑтвие по фикÑации изменений в хранилище. Когда файлы\n"
-" фикÑируютÑÑ Ð² рабочем каталоге, Mercurial ищет Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ ними и\n"
+" (Гл.) ДейÑтвие по фикÑации изменений в репозитории. Когда файлы\n"
+" коммитÑÑ‚ÑÑ Ð² рабочем каталоге, Mercurial ищет Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ ними и\n"
" и их родительÑкой ревизией, ÑÐ¾Ð·Ð´Ð°Ð²Ð°Ñ Ð½Ð¾Ð²Ñ‹Ð¹ набор изменений в\n"
-" хранилище."
+" репозитории."
msgid " Example: \"You should commit those changes now.\""
-msgstr " Пример: \"Тебе Ñтоит зафикÑировать Ñти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ñмо ÑейчаÑ.\""
+msgstr " Пример: \"Тебе Ñтоит закоммитить Ñти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ñмо ÑейчаÑ.\""
msgid ""
"Cset\n"
@@ -19561,7 +14800,7 @@ msgid ""
" for children to have at most two parents."
msgstr ""
"ÐÐГ (DAG, граф)\n"
-" Хранилище Ñ Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼Ð¸ изменений раÑпределенной ÑиÑтемы контролÑ\n"
+" Репозитоирий Ñ Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼Ð¸ изменений раÑпределенной ÑиÑтемы контролÑ\n"
" верÑий (DVCS) может быть предÑтавлен как направленный ацикличеÑкий\n"
" граф (ÐÐГ, англ. DAG), ÑоÑтоÑщий из узлов и ребер, где узлы ÑвлÑÑŽÑ‚ÑÑ\n"
" наборами изменений, а ребра отражают отражают отношение родительÑкаÑ-\n"
@@ -19573,8 +14812,8 @@ msgid ""
"Default branch\n"
" See 'Branch, default'."
msgstr ""
-"Ветка по умолчанию (default)\n"
-" См. 'Ветка, по умолчанию'."
+"Ветвь по умолчанию (default)\n"
+" См. 'Ветвь, по умолчанию'."
msgid ""
"Descendant\n"
@@ -19601,17 +14840,17 @@ msgid ""
" attributes, none of which can be represented/handled by classic\n"
" \"diff\" and \"patch\"."
msgstr ""
-"РазличиÑ, файл различий (diff)\n"
+"Дифф (diff)\n"
" ÐžÑ‚Ð»Ð¸Ñ‡Ð¸Ñ Ñодержимого и атрибутов файлов между Ð´Ð²ÑƒÐ¼Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñми\n"
-" или между некоей ревизией и текущим рабочим каталогом. ОтличиÑ\n"
+" или между некой ревизией и текущим рабочим каталогом. ОтлчиÑ\n"
" обычно предÑтавлены в Ñтандартной форме, называемой \"диффом\"\n"
-" или \"патчем\". Формат различий git иÑпользуетÑÑ, еÑли изменениÑ\n"
+" или \"патчем\". Формат диффов git иÑпользуетÑÑ, еÑли изменениÑ\n"
" должны включать копированиÑ, Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ изменениÑ\n"
" атрибутов файлов, которые не могут быть предÑтавлены или\n"
" обработаны клаÑÑичеÑкими инÑтрументами \"diff\" и \"patch\"."
msgid " Example: \"Did you see my correction in the diff?\""
-msgstr " Пример: \"Я приÑлал тебе файл различий Ñ Ð¼Ð¾Ð¸Ð¼Ð¸ иÑправлениÑми.\""
+msgstr " Пример: \"Ты видел мои иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² диффе (патче)?\""
msgid ""
" (Verb) Diffing two changesets is the action of creating a diff or\n"
@@ -19637,25 +14876,14 @@ msgid ""
msgstr ""
"Каталог, рабочий\n"
" Рабочий каталог отражает ÑоÑтоÑние файлов, контролируемых Mercurial,\n"
-" которое будет закреплено при Ñледующей фикÑации. Рабочий каталог\n"
+" которое будет зафикÑировано при Ñледующем коммите. Рабочий каталог\n"
" изначально ÑоответÑтвует Ñнимку ÑущеÑтвующей ревизии, называемой\n"
" родителем рабочего каталога. См. 'Родитель, рабочий каталог'.\n"
" СоÑтоÑние может быть изменено за Ñчет ручной правки файлов или\n"
-" ÑлиÑниÑ. Метаданные хранилища находÑÑ‚ÑÑ Ð² каталоге .hg в рабочем\n"
+" ÑлиÑниÑ. Метаданные Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´ÑÑ‚ÑÑ Ð² каталоге .hg в рабочем\n"
" каталоге."
msgid ""
-"Draft\n"
-" Changesets in the draft phase have not been shared with publishing\n"
-" repositories and may thus be safely changed by history-modifying\n"
-" extensions. See :hg:`help phases`."
-msgstr ""
-"Черновик\n"
-" Ðаборы изменений в черновой фазе еще не были опубликованы в\n"
-" общедоÑтупных хранилищах, поÑтому они могут безопаÑно модифицироватьÑÑ\n"
-" раÑширениÑми, изменÑющими иÑторию. См. :hg:`help phases`."
-
-msgid ""
"Graph\n"
" See DAG and :hg:`help graphlog`."
msgstr ""
@@ -19669,9 +14897,9 @@ msgid ""
" 'Head, repository' for specific definitions."
msgstr ""
"Голова (Ð³Ð¾Ð»Ð¾Ð²Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ)\n"
-" Термин 'голова', может быть иÑпользован Ð´Ð»Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ\n"
-" головной ревизии как ветки, так и хранилища, в завиÑимоÑти от\n"
-" контекÑта. См. 'Голова, хранилище' и 'Голова, ветка'."
+" Термин 'голова', может быть иÑпользован как Ð´Ð»Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ\n"
+" головной ревизии ветви, так и репозиториÑ, в завиÑимоÑти от\n"
+" контекÑта. См. 'Голова, репозиторий' и 'Голова, ветвь'."
msgid ""
" Heads are where development generally takes place and are the\n"
@@ -19684,8 +14912,8 @@ msgid ""
"Head, branch\n"
" A changeset with no descendants on the same named branch."
msgstr ""
-"Голова, ветки\n"
-" Ðабор изменений, не имеющий потомков на той же именованной ветке"
+"Голова, ветви\n"
+" Ðабор изменений, не имеющий потомков на той же именованной ветви"
msgid ""
"Head, closed branch\n"
@@ -19694,25 +14922,17 @@ msgid ""
" closed when all its heads are closed and consequently is not\n"
" listed by :hg:`branches`."
msgstr ""
-"Голова, Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ‚ÐºÐ°\n"
+"Голова, Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ\n"
" Ðабор изменений, который помечает голову как более не интереÑную.\n"
-" Ð—Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ‚ÐºÐ° не отображаетÑÑ :hg:`heads`. Ветка ÑчитаетÑÑ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð¹,\n"
+" Ð—Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ не отображаетÑÑ :hg:`heads`. Ветка ÑчитаетÑÑ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð¹,\n"
" еÑли закрыты вÑе ее головы, и ÑоответÑтвенно она не отображаетÑÑ\n"
" в выводе :hg:`branches`."
msgid ""
-" Closed heads can be re-opened by committing new changeset as the\n"
-" child of the changeset that marks a head as closed."
-msgstr ""
-" Закрытые головы могут быть Ñнова открыты, еÑли зафикÑировать новую "
-"ревизию\n"
-" как дочернюю Ð´Ð»Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¸, в которой голова была помечена как закрытаÑ."
-
-msgid ""
"Head, repository\n"
" A topological head which has not been closed."
msgstr ""
-"Голова, хранилище\n"
+"Голова, репозиторий\n"
" ТопологичеÑÐºÐ°Ñ Ð½Ðµ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ."
msgid ""
@@ -19720,7 +14940,7 @@ msgid ""
" A changeset with no children in the repository."
msgstr ""
"Голова, топологичеÑкаÑ\n"
-" РевизиÑ, не Ð¸Ð¼ÐµÑŽÑ‰Ð°Ñ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ¾Ð² в хранилище."
+" РевизиÑ, не Ð¸Ð¼ÐµÑŽÑ‰Ð°Ñ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ¾Ð² в репозитории."
msgid ""
"History, immutable\n"
@@ -19731,12 +14951,12 @@ msgid ""
" reintroduced to the repository."
msgstr ""
"ИÑториÑ, неизменнаÑ\n"
-" ЗафикÑированный однажды набор изменений не может быть изменен.\n"
+" Закомиченный однажды набор изменений не может быть изменен.\n"
" РаÑширениÑ, которые изменÑÑŽÑ‚ иÑторию, на Ñамом деле Ñоздают\n"
" новые наборы изменений, которые заменÑÑŽÑ‚ уже ÑущеÑтвующие,\n"
" поÑле чего удалÑÑŽÑ‚ Ñтарые наборы изменений. Такие дейÑÑ‚Ð²Ð¸Ñ Ð²\n"
-" публичном хранилище могут быть причиной Ñитуации, когда\n"
-" Ñтарые наборы изменений будут добавлены повторно."
+" публичном репозитории могут быть причиной Ñитуации, когда\n"
+" Ñтарые наборы изменений будут добавлены вновь."
msgid ""
"History, rewriting\n"
@@ -19745,8 +14965,8 @@ msgid ""
" a way as to preserve changeset contents."
msgstr ""
"ИÑториÑ, изменение\n"
-" Ðаборы изменений в хранилище неизменны. Однако, раÑширениÑ\n"
-" Mercurial могут быть иÑпользованы Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñамого хранилища,\n"
+" Ðаборы изменений в репозитории неизменны. Однако, раÑширениÑ\n"
+" Mercurial могут быть иÑпользованы Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñамого репозиториÑ,\n"
" как таким образом, чтобы Ñохранить Ñодержимое наборов изменений."
msgid ""
@@ -19781,19 +15001,19 @@ msgid ""
" as a merge changeset, bringing two branches together in the DAG."
msgstr ""
"СлиÑние\n"
-" ИÑпользуетÑÑ Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ€Ð°ÑходÑщихÑÑ Ð²ÐµÑ‚Ð¾Ðº разработки. Когда\n"
+" ИÑпользуетÑÑ Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ€Ð°ÑходÑщихÑÑ Ð²ÐµÑ‚Ð²ÐµÐ¹ разработки. Когда\n"
" вы обновлÑетеÑÑŒ на некоторую ревизию и потом Ñливаете ее в другую\n"
" ревизию, вы добавлÑете иÑторию поÑледней в ваш рабочий каталог.\n"
" ПоÑле Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð¾Ð² (и пометки файлов как разрешенных),\n"
-" Ñто ÑлиÑние будет зафикÑировано как Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ ÑлиÑниÑ, объединÑÑ Ð´Ð²Ðµ\n"
-" ветки на графе ревизий."
+" Ñто ÑлиÑние будет закоммичено как Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ ÑлиÑниÑ, объединÑÑ Ð´Ð²Ðµ\n"
+" ветви на графе ревизий."
msgid ""
"Named branch\n"
" See 'Branch, named'."
msgstr ""
-"Ð˜Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ°\n"
-" См. 'Ветка, именованнаÑ'."
+"Ð˜Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ\n"
+" См. 'Ветвь, именованнаÑ'."
msgid ""
"Null changeset\n"
@@ -19805,7 +15025,7 @@ msgid ""
msgstr ""
"ПуÑÑ‚Ð°Ñ (Null) ревизиÑ\n"
" ПуÑтой набор изменений. Это родительÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ что\n"
-" инициализированного хранилища и хранилища, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾\n"
+" инициализированного Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸ репозиториÑ, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð³Ð¾\n"
" не извлечен рабочий каталог. Таким образом, она ÑвлÑетÑÑ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÐµÐ¼\n"
" корневой (root) ревизии и фактичеÑким предком при ÑлиÑнии\n"
" неÑвÑзанных наборов изменений. Может быть задана пÑевдонимом\n"
@@ -19835,7 +15055,7 @@ msgid ""
msgstr ""
" Родитель, рабочего каталога\n"
" РодительÑÐºÐ°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога отражает виртуальную\n"
-" ревизию, ÑвлÑющуюÑÑ Ð´Ð¾Ñ‡ÐµÑ€Ð½ÐµÐ¹ ревизией показываемых :hg:`parents`\n"
+" ревизию, ÑвлÑющуÑÑ Ð´Ð¾Ñ‡ÐµÑ€Ð½ÐµÐ¹ ревизией показываемых :hg:`parents`\n"
" наборов изменений. МенÑетÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`update`. Также можно\n"
" узнать Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`summary` и\n"
" :hg:`id`. Может задаватьÑÑ Ð¿Ñевдонимом \".\"."
@@ -19861,26 +15081,6 @@ msgid " Example: \"You will need to patch that revision.\""
msgstr " Пример: \"Тебе придетÑÑ Ð¿Ñ€Ð¾Ð¿Ð°Ñ‚Ñ‡Ð¸Ñ‚ÑŒ Ñту ревизию.\""
msgid ""
-"Phase\n"
-" A per-changeset state tracking how the changeset has been or\n"
-" should be shared. See :hg:`help phases`."
-msgstr ""
-"Фаза\n"
-" Механизм отÑÐ»ÐµÐ¶Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´Ð¸Ð²Ð¸Ð´ÑƒÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ ÑоÑтоÑÐ½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€Ð° изменений,\n"
-" определющий, был ли он опубликован или должен быть опубликованным.\n"
-" См. :hg:`help phases`."
-
-msgid ""
-"Public\n"
-" Changesets in the public phase have been shared with publishing\n"
-" repositories and are therefore considered immutable. See :hg:`help\n"
-" phases`."
-msgstr ""
-"Публичный\n"
-" Ðаборы изменений в публичной фазе были опубликованы в общедоÑтупных\n"
-" хранилищах, поÑтому они ÑчитаютÑÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½Ñемыми. См. :hg:`help phases`."
-
-msgid ""
"Pull\n"
" An operation in which changesets in a remote repository which are\n"
" not in the local repository are brought into the local\n"
@@ -19888,11 +15088,11 @@ msgid ""
" only updates the repository, it does not update the files in the\n"
" working directory. See :hg:`help pull`."
msgstr ""
-"ЗатÑнуть (Pull)\n"
-" ОперациÑ, при которой наборы изменений из отдалённого хранилища,\n"
-" отÑутÑтвующие в локальном, передаютÑÑ Ð² локальное хранилище.\n"
+"ПодтÑнуть (Pull)\n"
+" ОперациÑ, при которой наборы изменений из удаленного репозиториÑ,\n"
+" отÑутÑвующие в локальном, передаютÑÑ Ð² локальный репозиторий.\n"
" Обратите внимание, что Ñта Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð±ÐµÐ· дополнительных аргументов\n"
-" обновлÑет только хранилище, но не рабочий каталог.\n"
+" обновлÑет только репозиторий, но не рабочий каталог.\n"
" См. :hg:`help pull`."
msgid ""
@@ -19903,11 +15103,11 @@ msgid ""
" locally to the remote repository. Uncommitted changes are not\n"
" sent. See :hg:`help push`."
msgstr ""
-"Протолкнуть (Push)\n"
-" ОперациÑ, при которой наборы Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· локального хранилища,\n"
-" отÑутÑтвующие в отдалённом, переÑылаютÑÑ Ð² отдалённое хранилище.\n"
+"Протолкнуть (Pull)\n"
+" ОперациÑ, при которой наборы Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· локального репозиториÑ,\n"
+" отÑутÑтвующие в удаленном, переÑылаютÑÑ Ð² удаленный репозиторий.\n"
" Обратите внимание, что Ñто передает только наборы изменений,\n"
-" которые были зафикÑированы в локальное хранилище. ÐезафикÑированные\n"
+" которые были закоммичены в локальный репозиторий. Ðезакоммиченные\n"
" Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ переÑылаютÑÑ. См. :hg:`help push`."
msgid ""
@@ -19919,10 +15119,10 @@ msgid ""
" recreated by \"updating\" a working directory to a specific\n"
" changeset."
msgstr ""
-"Хранилище\n"
+"Репозиторий\n"
" Метаданные, опиÑывающие вÑе зафикÑированные ÑоÑтоÑÐ½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€Ð°\n"
" файлов. Каждое зафикÑированное ÑоÑтоÑние предÑтавлено набором\n"
-" изменений. Хранилище как правило (но не вÑегда) находитÑÑ\n"
+" изменений. Репозиторий как правило (но не вÑегда) находитÑÑ\n"
" в подкаталоге ``.hg`` рабочего каталога. Каждое зафикÑированное\n"
" ÑоÑтоÑние может быть воÑÑоздано \"обновлением\" рабочего каталога\n"
" до желаемого набора изменений."
@@ -19931,8 +15131,8 @@ msgid ""
"Repository head\n"
" See 'Head, repository'."
msgstr ""
-"Хранилища, голова\n"
-" См. 'Голова, хранилище'."
+"РепозиториÑ, голова\n"
+" См. 'Голова, репозиторий'."
msgid ""
"Revision\n"
@@ -19941,12 +15141,12 @@ msgid ""
" number'; See also 'Changeset'."
msgstr ""
"РевизиÑ\n"
-" СоÑтоÑние хранилища на некоторый момент времени. Более ранние\n"
+" СоÑтоÑние Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° некоторый момент времени. Более ранние\n"
" ревизии могут быть получены Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`update`. См. также\n"
" 'Ðомер ревизии' и 'Ðабор изменений'.\n"
"\n"
" ПРИМЕЧÐÐИЕ: в руÑÑком переводе термин \"ревизиÑ\" чаÑто иÑпользуетÑÑ\n"
-" как Ñиноним набора изменений. Ð¥Ð¾Ñ‚Ñ Ñто техничеÑки не ÑовÑем\n"
+" как Ñиноним набора изменений. Ð¥Ð¾Ñ‚Ñ Ñто техничеÑки\n"
" некорректно, но короче и понÑтнее."
msgid ""
@@ -19960,10 +15160,10 @@ msgid ""
msgstr ""
"Ðомер ревизии\n"
" Это целое чиÑло однозначно определÑет набор изменений в отдельно\n"
-" взÑтом хранилище. Оно отражает порÑдок, в котором наборы\n"
-" изменений были добавлены в хранилище, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¸ Ñ\n"
+" взÑтом репозитории. Оно отражает порÑдок, в котором наборы\n"
+" изменений были добавлены в репозиторий, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¸ Ñ\n"
" номером 0. Очень важно понимать, что номера ревизий могут\n"
-" различатьÑÑ Ð² каждом клоне хранилища. Чтобы однозначно задать\n"
+" различатьÑÑ Ð² каждом клоне репозиториÑ. Чтобы однозначно задать\n"
" ревизию Ñреди вÑех клонов, Ñм. 'Идентификатор (ID) набора\n"
" изменений'."
@@ -19994,16 +15194,7 @@ msgid ""
msgstr ""
"Корень (ÐºÐ¾Ñ€Ð½ÐµÐ²Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ)\n"
" Ðабор изменений, у которого единÑтвенный предок - null. БольшинÑтво\n"
-" хранилищ имеют только один корень."
-
-msgid ""
-"Secret\n"
-" Changesets in the secret phase may not be shared via push, pull,\n"
-" or clone. See :hg:`help phases`."
-msgstr ""
-"Секретный\n"
-" Ðабор изменений в Ñекретной фазе не может быть передан Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
-" команд push, pull или clone. См. :hg:`help phases`."
+" репозиториев имеют только один корень."
msgid ""
"Tag\n"
@@ -20026,7 +15217,7 @@ msgid ""
msgstr ""
"ÐžÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ (tip)\n"
" Ðабор изменений Ñ Ð¼Ð°ÐºÑимальным номером ревизии. Это набор изменений,\n"
-" добавленный в хранилище поÑледним."
+" добавленный в репозиторий поÑледним."
msgid ""
"Tip, branch\n"
@@ -20036,12 +15227,12 @@ msgid ""
" numbers may be different in different repository clones, the\n"
" branch tip may be different in different cloned repositories."
msgstr ""
-"ÐžÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ (tip) ветки\n"
-" Голова данной ветки Ñ Ð¼Ð°ÐºÑимальным номером ревизии. Когда имÑ\n"
-" ветки иÑпользуетÑÑ Ð² качеÑтве идентификатора ревизии, оно ÑÑылаетÑÑ\n"
-" на оконечную ревизию ветки. См. также 'Голова ветки'. Обратите\n"
+"ÐžÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ (tip) ветви\n"
+" Голова данной ветви Ñ Ð¼Ð°ÐºÑимальным номером ревизии. Когда имÑ\n"
+" ветви иÑпользуетÑÑ Ð² качеÑтве идентификатора ревизии, оно ÑÑылаетÑÑ\n"
+" на оконечную ревизию ветви. См. также 'Голова ветви'. Обратите\n"
" внимание, что поÑкольку номера ревизий могут различатьÑÑ Ð² разных\n"
-" клонах хранилищ, tip может быть различным в разных клонах."
+" клонах репозиториев, tip может быть различным в разных клонах."
msgid ""
"Update\n"
@@ -20078,12 +15269,13 @@ msgstr ""
"Рабочий каталог, родитель\n"
" См. 'Родитель, рабочего каталога'.\n"
+#, fuzzy
msgid ""
"Synopsis\n"
-"========"
+"--------"
msgstr ""
-"Обзор\n"
-"====="
+"Сводка\n"
+"--------"
msgid ""
"The Mercurial system uses a file called ``.hgignore`` in the root\n"
@@ -20091,15 +15283,15 @@ msgid ""
"for files that it is not currently tracking."
msgstr ""
"Mercurial иÑпользует файл Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ ``.hgignore`` из корневого каталога\n"
-"хранилища Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ при обнаружении файлов, которые\n"
+"Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ при обнаружении файлов, которые\n"
"в наÑтоÑщий момент не отÑлеживаютÑÑ."
msgid ""
"Description\n"
-"==========="
+"-----------"
msgstr ""
"ОпиÑание\n"
-"========"
+"-----------"
msgid ""
"The working directory of a Mercurial repository will often contain\n"
@@ -20110,13 +15302,13 @@ msgid ""
"created manually. It is typically put under version control, so that\n"
"the settings will propagate to other repositories with push and pull."
msgstr ""
-"Рабочий каталог хранилища чаÑто Ñодержит файлы, которые не должны\n"
-"контролироватьÑÑ Mercurial. Это, например, резервные копии, Ñоздаваемые\n"
+"Рабочий каталог Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ñ‡Ð°Ñто Ñодержит файлы, которые не должны\n"
+"контролироватьÑÑ Mercurial. Это, например, бÑкапы, Ñоздаваемые\n"
"редакторами, или результаты Ñборки, полученные при компилÑции.\n"
"Эти файлы могут быть игнорированы, еÑли добавить их в файл ``.hgignore``\n"
"в корне рабочего каталога. Файл ``.hgignore`` должен быть Ñоздан\n"
"вручную. Как правило его помещают под контроль верÑий, чтобы наÑтройки\n"
-"могли передаватьÑÑ Ð¼ÐµÐ¶Ð´Ñƒ хранилищами Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ push и pull."
+"могли передаватьÑÑ Ð¼ÐµÐ¶Ð´Ñƒ репозиториÑми Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ push и pull."
msgid ""
"An untracked file is ignored if its path relative to the repository\n"
@@ -20124,7 +15316,7 @@ msgid ""
"any pattern in ``.hgignore``."
msgstr ""
"ÐеотÑлеживаемый файл игнорируетÑÑ, еÑли его путь отноÑительно\n"
-"корневого каталога хранилища или Ð»ÑŽÐ±Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ Ñтого пути Ñовпадает\n"
+"корневого каталога Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð»Ð¸ Ð»ÑŽÐ±Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ Ñтого пути Ñовпадает\n"
"Ñ Ð»ÑŽÐ±Ñ‹Ð¼ шаблоном из файла ``.hgignore``."
msgid ""
@@ -20133,7 +15325,7 @@ msgid ""
"if any pattern in ``.hgignore`` matches ``a/b/file.c``, ``a/b`` or ``a``."
msgstr ""
"Ðапример, допуÑтим, что у Ð½Ð°Ñ ÐµÑÑ‚ÑŒ неотÑлеживаемый файл ``file.c``,\n"
-"имеющий путь ``a/b/file.c`` в нашем хранилище. Mercurial будет\n"
+"имеющий путь ``a/b/file.c`` в нашем репозитории. Mercurial будет\n"
"игнорировать Ñтот файл, любой шаблон из ``.hgignore`` Ñовпадает Ñ\n"
"``a/b/file.c``, ``a/b`` или ``a``."
@@ -20157,17 +15349,6 @@ msgstr ""
"Подробнее Ñм. :hg:`help <команда>` и :hg:`help patterns`."
msgid ""
-"Files that are already tracked are not affected by .hgignore, even\n"
-"if they appear in .hgignore. An untracked file X can be explicitly\n"
-"added with :hg:`add X`, even if X would be excluded by a pattern\n"
-"in .hgignore."
-msgstr ""
-"Содержимое .hgignore не влиÑет на файлы, уже отÑлеживаемые Mercurial,\n"
-"даже еÑли они перечиÑлены в .hgignore. ÐеотÑлеживаемый файл X может быть\n"
-"Ñвно добавлен Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`add X`, даже еÑли X был бы иÑключен шаблоном\n"
-"из .hgignore."
-
-msgid ""
"An ignore file is a plain text file consisting of a list of patterns,\n"
"with one pattern per line. Empty lines are skipped. The ``#``\n"
"character is treated as a comment character, and the ``\\`` character\n"
@@ -20225,20 +15406,11 @@ msgstr ""
"отноÑительно корневого каталога, начните его Ñ ``^``."
msgid ""
-".. note::\n"
-" Patterns specified in other than ``.hgignore`` are always rooted.\n"
-" Please see :hg:`help patterns` for details."
-msgstr ""
-".. note::\n"
-" Шаблоны, заданные где угодно, кроме ``.hgignore``, привÑзаны к корневому\n"
-" каталогу. См. также :hg:`help patterns`."
-
-msgid ""
"Example\n"
-"======="
+"-------"
msgstr ""
"Пример\n"
-"======"
+"-------"
msgid "Here is an example ignore file. ::"
msgstr "Пример файла игнорированиÑ. ::"
@@ -20255,9 +15427,6 @@ msgid ""
" *.pyc\n"
" *~"
msgstr ""
-" *.elc\n"
-" *.pyc\n"
-" *~"
msgid ""
" # switch to regexp syntax.\n"
@@ -20270,19 +15439,18 @@ msgstr ""
msgid ""
"Mercurial's internal web server, hgweb, can serve either a single\n"
-"repository, or a tree of repositories. In the second case, repository\n"
-"paths and global options can be defined using a dedicated\n"
-"configuration file common to :hg:`serve`, ``hgweb.wsgi``,\n"
-"``hgweb.cgi`` and ``hgweb.fcgi``."
+"repository, or a collection of them. In the latter case, a special\n"
+"configuration file can be used to specify the repository paths to use\n"
+"and global web configuration options."
msgstr ""
-"Ð’Ñтроенный веб-Ñервер Mercurial, hgweb, может обÑлуживать как одно\n"
-"хранилище, так и неÑколько. Ð’ поÑледнем Ñлучае пути хранилищ и\n"
-"глобальные параметры могут быть опеределены в отдельном файле, общем\n"
-"Ð´Ð»Ñ :hg:`serve`, ``hgweb.wsgi``, ``hgweb.cgi`` and ``hgweb.fcgi``."
+"Ð’Ñтроенный веб-Ñервер Mercurial, hgweb, может обÑлуживать как один\n"
+"репозиторий, так и неÑколько. Ð’ поÑледнем Ñлучае может быть иÑпользован\n"
+"отдельный файл конфигурации чтобы задать пути к репозиториÑм вмеÑте\n"
+"Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ наÑтройками веб-Ñервера."
msgid ""
-"This file uses the same syntax as other Mercurial configuration files\n"
-"but recognizes only the following sections:"
+"This file uses the same syntax as other Mercurial configuration files,\n"
+"but only the following sections are recognized:"
msgstr ""
"Этот файл имеет тот же формат, что и другие файлы конфигурации\n"
"Mercurial, но обрабатываютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ñледующие Ñекции:"
@@ -20292,85 +15460,80 @@ msgid ""
" - paths\n"
" - collections"
msgstr ""
-" - web\n"
-" - paths\n"
-" - collections"
-
-msgid "The ``web`` options are thorougly described in :hg:`help config`."
-msgstr "ÐаÑтройки Ñекции ``web`` подробно опиÑаны в :hg:`help config`."
msgid ""
-"The ``paths`` section maps URL paths to paths of repositories in the\n"
-"filesystem. hgweb will not expose the filesystem directly - only\n"
-"Mercurial repositories can be published and only according to the\n"
-"configuration."
+"The ``web`` section can specify all the settings described in the web\n"
+"section of the hgrc(5) documentation. See :hg:`help config` for\n"
+"information on where to find the manual page."
msgstr ""
-"Ð¡ÐµÐºÑ†Ð¸Ñ ``paths`` ÑвÑзывает пути в URL Ñ Ð¿ÑƒÑ‚Ñми хранилищ в файловой\n"
-"ÑиÑтеме. hgweb не выÑтавлÑет наружу файловую ÑиÑтему напрÑмую - \n"
-"публикуютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ хранилища Mercurial и только в ÑоответÑтвии Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³Ð¾Ð¼."
+"Ð¡ÐµÐºÑ†Ð¸Ñ ``web`` Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð²Ñех параметров, опиÑанных в Ñправке по\n"
+"одноименной Ñекции из :hg:`help config`."
msgid ""
-"The left hand side is the path in the URL. Note that hgweb reserves\n"
-"subpaths like ``rev`` or ``file``, try using different names for\n"
-"nested repositories to avoid confusing effects."
+"The ``paths`` section provides mappings of physical repository\n"
+"paths to virtual ones. For instance::"
msgstr ""
-"Ð’ левой чаÑти находитÑÑ Ð¿ÑƒÑ‚ÑŒ в URL. Обратите внимание, что hgweb\n"
-"резервирует такие пути, как ``rev`` или ``file``, иÑпользуйте\n"
-"другие имена Ð´Ð»Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ‹Ñ… подхранилищ, чтобы избежать неожиданных\n"
-"Ñффектов."
+"Ð¡ÐµÐºÑ†Ð¸Ñ ``paths`` задает ÑоответÑтвие физичеÑких путей к репозиториÑм\n"
+"и виртуальных. Ðапример::"
msgid ""
-"The right hand side is the path in the filesystem. If the specified\n"
-"path ends with ``*`` or ``**`` the filesystem will be searched\n"
-"recursively for repositories below that point.\n"
-"With ``*`` it will not recurse into the repositories it finds (except for\n"
-"``.hg/patches``).\n"
-"With ``**`` it will also search inside repository working directories\n"
-"and possibly find subrepositories."
+" [paths]\n"
+" projects/a = /foo/bar\n"
+" projects/b = /baz/quux\n"
+" web/root = /real/root/*\n"
+" / = /real/root2/*\n"
+" virtual/root2 = /real/root2/**"
msgstr ""
-"Ð’ правой чаÑти находитÑÑ Ð¿ÑƒÑ‚ÑŒ в файловой ÑиÑтеме. ЕÑли указанный путь\n"
-"заканчиваетÑÑ Ð½Ð° ``*`` или ``**``, хранилища будут иÑкатьÑÑ Ñ€ÐµÐºÑƒÑ€Ñивно\n"
-"в Ñтом каталоге. При ``*`` поиÑк в подкаталогах хранилищ не ведетÑÑ\n"
-"(за иÑключением ``.hg/patches``). При ``**`` поиÑк производитÑÑ Ñ‚Ð°ÐºÐ¶Ðµ\n"
-"внутри рабочих каталогов хранилищ."
-msgid "In this example::"
-msgstr "Ð’ Ñтом примере::"
+msgid ""
+"- The first two entries make two repositories in different directories\n"
+" appear under the same directory in the web interface\n"
+"- The third entry maps every Mercurial repository found in '/real/root'\n"
+" into 'web/root'. This format is preferred over the [collections] one,\n"
+" since using absolute paths as configuration keys is not supported on "
+"every\n"
+" platform (especially on Windows).\n"
+"- The fourth entry is a special case mapping all repositories in\n"
+" '/real/root2' in the root of the virtual directory.\n"
+"- The fifth entry recursively finds all repositories under the real\n"
+" root, and maps their relative paths under the virtual root."
+msgstr ""
+"- Первые две Ñтроки показывают два репозитриÑ, физичеÑки находÑщихÑÑ Ð¿Ð¾\n"
+" разным путÑм, в одном каталоге в веб-интерфейÑе\n"
+"- Ð¢Ñ€ÐµÑ‚ÑŒÑ Ñтрока показывает вÑе репозитории Mercurial, находÑщиеÑÑ Ð²\n"
+" '/real/root', в каталоге 'web/root' веб-интерфейÑа. Ð¢Ð°ÐºÐ°Ñ Ñ„Ð¾Ñ€Ð¼Ð°\n"
+" ÑвлÑетÑÑ Ð¿Ñ€ÐµÐ´Ð¿Ð¾Ñ‡Ñ‚Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ по Ñравнению Ñ Ñекцией [collections],\n"
+" Ñ‚.к. иÑпользование абÑолютных путей в качеÑтве ключей поддерживаетÑÑ\n"
+" не на вÑех платформах (в чаÑтноÑти, не работает в Windows)\n"
+"- Ð§ÐµÑ‚Ð²ÐµÑ€Ñ‚Ð°Ñ Ñтрока иллюÑтрирует оÑобый Ñлучай, при котором вÑе\n"
+" репозитории из каталога '/real/root2' отображаютÑÑ Ð² корневом\n"
+" виртуальном каталоге.\n"
+"- ПÑÑ‚Ð°Ñ Ñтрока рекурÑивно ищет вÑе репозитории в подкаталогах\n"
+" /real/root2 и показывает из отноÑительные пути в виртуальном\n"
+" каталоге."
msgid ""
-" [paths]\n"
-" /projects/a = /srv/tmprepos/a\n"
-" /projects/b = c:/repos/b\n"
-" / = /srv/repos/*\n"
-" /user/bob = /home/bob/repos/**"
+"The ``collections`` section provides mappings of trees of physical\n"
+"repositories paths to virtual ones, though the paths syntax is generally\n"
+"preferred. For instance::"
msgstr ""
-" [paths]\n"
-" /projects/a = /srv/tmprepos/a\n"
-" /projects/b = c:/repos/b\n"
-" / = /srv/repos/*\n"
-" /user/bob = /home/bob/repos/**"
+"Ð¡ÐµÐºÑ†Ð¸Ñ ``collections`` задает ÑоответÑтие деревьев физичеÑких путей\n"
+"репозиториев виртуальным. Однако, предпочтительно иÑпользовать Ñекцию\n"
+"paths. Пример::"
msgid ""
-"- The first two entries make two repositories in different directories\n"
-" appear under the same directory in the web interface\n"
-"- The third entry will publish every Mercurial repository found in\n"
-" ``/srv/repos/``, for instance the repository ``/srv/repos/quux/``\n"
-" will appear as ``http://server/quux/``\n"
-"- The fourth entry will publish both ``http://server/user/bob/quux/``\n"
-" and ``http://server/user/bob/quux/testsubrepo/``"
+" [collections]\n"
+" /foo = /foo"
msgstr ""
-"- Первые две Ñтроки позволÑÑŽÑ‚ двум хранилищам из разных каталогов\n"
-" отображатьÑÑ Ð² одном каталоге в веб-интерфейÑе\n"
-"- Ð¢Ñ€ÐµÑ‚ÑŒÑ Ñтрока публикует каждое хранилище Mercurial в каталоге\n"
-" ``/srv/repos/``. Ðапример, хранилище ``/srv/repos/quux/`` будет\n"
-" опубликовано как ``http://server/quux/``\n"
-"- Ð§ÐµÑ‚Ð²ÐµÑ€Ñ‚Ð°Ñ Ñтрока публикует хранилища ``http://server/user/bob/quux/``\n"
-" и ``http://server/user/bob/quux/testsubrepo/``"
msgid ""
-"The ``collections`` section is deprecated and has been superseeded by\n"
-"``paths``.\n"
-msgstr "Ð¡ÐµÐºÑ†Ð¸Ñ ``collections`` уÑтарела и заменена Ñекцией ``paths``.\n"
+"Here, the left side will be stripped off all repositories found in the\n"
+"right side. Thus ``/foo/bar`` and ``foo/quux/baz`` will be listed as\n"
+"``bar`` and ``quux/baz`` respectively.\n"
+msgstr ""
+"ЗдеÑÑŒ Ð»ÐµÐ²Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ путей будет удалена из вÑех путей репозиториев,\n"
+"найденых в каталоге из правой чаÑти. Так, ``/foo/bar`` и ``foo/quux/baz``\n"
+"будут отображатьÑÑ ÐºÐ°Ðº ``bar`` и ``quux/baz`` ÑоответÑтвенно.\n"
msgid "To merge files Mercurial uses merge tools."
msgstr "При ÑлиÑнии файлов Mercurial иÑпользует Ñпециальные инÑтрументы."
@@ -20381,7 +15544,7 @@ msgid ""
"ancestor of the two file versions, so they can determine the changes\n"
"made on both branches."
msgstr ""
-"Такой инÑтрумент объединÑет две различных верÑии файла в результирующую.\n"
+"Такой иÑтрумент объединÑет две различных верÑии файла в результирующую.\n"
"ИнÑтрументом ÑлиÑÐ½Ð¸Ñ ÑвлÑетÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð°, которой передаютÑÑ Ð´Ð²Ð° файла\n"
"и поÑледний общий предок обеих верÑий, так что она может определить,\n"
"какие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±Ñ‹Ð»Ð¸ были Ñделаны на каких ветках."
@@ -20392,7 +15555,7 @@ msgid ""
msgstr ""
"ИнÑтрументы иÑпользуютÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ :hg:`resolve`, :hg:`merge`, :hg:"
"`update`,\n"
-":hg:`backout` и неÑколькими раÑширениÑми."
+":hg:`backout` и неÑколькими раширениÑми."
msgid ""
"Usually, the merge tool tries to automatically reconcile the files by\n"
@@ -20406,7 +15569,7 @@ msgid ""
msgstr ""
"Обычно, программы ÑлиÑÐ½Ð¸Ñ Ð¿Ñ‹Ñ‚Ð°ÑŽÑ‚ÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки разрешить конфликты,\n"
"объединÑÑ Ð½ÐµÐ¿ÐµÑ€ÐµÑекающиеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ, которые были Ñделаны в двух\n"
-"различных ветках иÑтории файла. Более того, некоторые интерактивные\n"
+"различных ветвÑÑ… иÑтории файла. Более того, некоторые интерактивные\n"
"инÑтрументы ÑлиÑÐ½Ð¸Ñ Ð¾Ð±Ð»ÐµÐ³Ñ‡Ð°ÑŽÑ‚ ручное разрешение конфликтов, иÑпользуÑ\n"
"графичеÑкое предÑтавление или вÑтавлÑÑ Ð¾Ñобые маркеры. Mercurial\n"
"не поÑтавлÑетÑÑ Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ð¼Ð¸ инÑтрументами, полагаÑÑÑŒ на внешние\n"
@@ -20414,10 +15577,10 @@ msgstr ""
msgid ""
"Available merge tools\n"
-"====================="
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"ДоÑтупные инÑтрументы ÑлиÑниÑ\n"
-"============================="
+"Возможные инÑтрументы ÑлиÑниÑ\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgid ""
"External merge tools and their properties are configured in the\n"
@@ -20437,11 +15600,11 @@ msgid ""
"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 ""
-"ИнÑтрумент ÑлиÑÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ иÑпользоватьÑÑ, еÑли его иÑполнÑемый файл\n"
+"ИнÑтумент ÑлиÑÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ иÑпользоватьÑÑ, еÑли его иÑполнÑемый файл\n"
"может быть найден ÑиÑтемой, и еÑли он может провеÑти ÑлиÑние.\n"
"ИÑполнÑемый файл может быть найден, еÑли он доÑтупен по извеÑтным\n"
"путÑм. ИнÑтрумент может провеÑти ÑлиÑние, еÑли он корректно\n"
-"обрабатывает ÑимволичеÑкие ÑÑылки, в том Ñлучае еÑли файл ÑвлÑетÑÑ\n"
+"обрабатывает ÑимволичеÑкие ÑÑлылки, в том Ñлучае еÑли файл ÑвлÑетÑÑ\n"
"ÑимволичеÑкой ÑÑылкой, обрабатывает бинарные файлы, еÑли файл\n"
"ÑвлÑетÑÑ Ð±Ð¸Ð½Ð°Ñ€Ð½Ñ‹Ð¼, и еÑли доÑтупна графичеÑÐºÐ°Ñ Ñреда, в Ñлучае,\n"
"еÑли инÑтрумент требует GUI."
@@ -20449,10 +15612,68 @@ msgstr ""
msgid ""
"There are some internal merge tools which can be used. The internal\n"
"merge tools are:"
-msgstr "СущеÑтвуют также вÑтроенные инÑтрументы ÑлиÑниÑ:"
+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 ""
+"``internal:merge``\n"
+" ИÑпользует внутренний неинтерактивный проÑтой алгоритм ÑлиÑниÑ.\n"
+" ЗавершитьÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹, еÑли обнаружит конфликт, и оÑтавит Ñпециальные\n"
+" маркеры в чаÑтично Ñлитом файле."
+
+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 ""
+"``internal:fail``\n"
+" ВмеÑто того, чтобы попытатьÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑти ÑлиÑне файлов, измененных на\n"
+" обеих ветках, он отмечает их как файлы Ñ Ð½ÐµÑ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð½Ñ‹Ð¼Ð¸ конфликтами.\n"
+" ПоÑле Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð° должна быть иÑпользована команда resolve."
+
+msgid ""
+"``internal:local``\n"
+" Uses the local version of files as the merged version."
+msgstr ""
+"``internal:local``\n"
+" ИÑпользует локальные верÑии файлов в качеÑтве Ñлитой верÑии."
-msgid ".. internaltoolsmarker"
-msgstr ".. internaltoolsmarker"
+msgid ""
+"``internal:other``\n"
+" Uses the other version of files as the merged version."
+msgstr ""
+"``internal:other``\n"
+" ИÑпользует верÑию файла из Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² качеÑтве Ñлитой верÑии."
+
+msgid ""
+"``internal:prompt``\n"
+" Asks the user which of the local or the other version to keep as\n"
+" the merged version."
+msgstr ""
+"``internal:prompt``\n"
+" Спрашивает пользователÑ, какую верÑию файла - локальную или \n"
+" из Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ - иÑпользовать в качеÑтве Ñлитой верÑии."
+
+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 ""
+"``internal:dump``\n"
+" Создает три верÑии файла Ð´Ð»Ñ ÑлиÑниÑ: локальную, из Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸\n"
+" базовую. Эти файлы можно иÑпользовать Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ð²Ñ€ÑƒÑ‡Ð½ÑƒÑŽ. ЕÑли\n"
+" файл называетÑÑ `a.txt``, то Ñти файлы будут называтьÑÑ ``a.txt.local``,\n"
+" ``a.txt.other`` и ``a.txt.base`` ÑоответÑвенно и будут находитьÑÑ\n"
+" в том же каталоге, что и ``a.txt``."
msgid ""
"Internal tools are always available and do not require a GUI but will by "
@@ -20465,10 +15686,10 @@ msgstr ""
msgid ""
"Choosing a merge tool\n"
-"====================="
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
"Выбор инÑтрумента ÑлиÑниÑ\n"
-"========================="
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgid "Mercurial uses these rules when deciding which merge tool to use:"
msgstr "Mercurial иÑпользует Ñледующие правила при выбора программы ÑлиÑниÑ:"
@@ -20482,7 +15703,7 @@ msgid ""
"by\n"
" the shell."
msgstr ""
-"1. ЕÑли инÑтрумент был задан Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ опции --tool, то иÑпользуетÑÑ Ð¾Ð½.\n"
+"1. ЕÑли иÑнтрумент был задан Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ опции --tool, то иÑпользуетÑÑ Ð¾Ð½.\n"
" ЕÑли Ñто Ð¸Ð¼Ñ Ð¸Ð½Ñтрумента из Ñекции merge-tools, иÑпользуютÑÑ\n"
" наÑтройки оттуда. Ð’ противном Ñлучае, заданный инÑтрумент должен\n"
" быть пригодным Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка командной оболочкой."
@@ -20505,7 +15726,7 @@ msgid ""
msgstr ""
"3. ЕÑли Ð¸Ð¼Ñ Ñливаемого файла Ñовпадает Ñ Ð»ÑŽÐ±Ñ‹Ð¼ шаблоном из Ñекции\n"
" merge-patterns, иÑпользуетÑÑ Ð¿ÐµÑ€Ð²Ñ‹Ð¹ ÑоответÑтвующий шаблону\n"
-" инÑтрумент ÑлиÑниÑ. При Ñтом не учитываютÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти Ñтого\n"
+" инÑтрумент ÑлиÑниÑ. При Ñтои не учитываютÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти Ñтого\n"
" инÑтрумента Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ð´Ð²Ð¾Ð¸Ñ‡Ð½Ñ‹Ñ… файлов."
msgid ""
@@ -20547,7 +15768,7 @@ msgstr ""
msgid "8. The merge of the file fails and must be resolved before commit."
msgstr ""
"8. СлиÑние завершаетÑÑ Ð½ÐµÑƒÐ´Ð°Ñ‡ÐµÐ¹ и должно быть завершено Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
-" resolve перед фикÑацией."
+" resolve перед коммитом."
msgid ""
".. note::\n"
@@ -20629,22 +15850,13 @@ msgid "Alternate pattern notations must be specified explicitly."
msgstr "Ð”Ñ€ÑƒÐ³Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° шаблонов должна указыватьÑÑ Ñвно."
msgid ""
-".. note::\n"
-" Patterns specified in ``.hgignore`` are not rooted. \n"
-" Please see :hg:`help hgignore` for details."
-msgstr ""
-".. note::\n"
-" Шаблоны, заданные в ``.hgignore``, привÑзаны к корневому\n"
-" каталогу. См. :hg:`help hgignore`."
-
-msgid ""
"To use a plain path name without any pattern matching, start it with\n"
"``path:``. These path names must completely match starting at the\n"
"current repository root."
msgstr ""
"Чтобы иÑпользовать буквальный путь к файлу, в котором не выполнÑÑŽÑ‚ÑÑ\n"
"подÑтановки, начните его Ñ ``path:``. Такие пути должны полноÑтью\n"
-"Ñовпадать Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ файла отноÑительно ÐºÐ¾Ñ€Ð½Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°."
+"Ñовпадать Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ файла отноÑительно ÐºÐ¾Ñ€Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ."
msgid ""
"To use an extended glob, start a name with ``glob:``. Globs are rooted\n"
@@ -20668,7 +15880,7 @@ msgid ""
"Regexp pattern matching is anchored at the root of the repository."
msgstr ""
"Чтобы иÑпользовать регулÑрные Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Perl/Python, начните Ð¸Ð¼Ñ Ñ\n"
-"``re:``. Такие шаблоны раÑкрываютÑÑ Ð¾Ñ‚Ð½Ð¾Ñительно ÐºÐ¾Ñ€Ð½Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°."
+"``re:``. Такие шаблоны раÑкрываютÑÑ Ð¾Ñ‚Ð½Ð¾Ñительно ÐºÐ¾Ñ€Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ."
msgid ""
"To read name patterns from a file, use ``listfile:`` or ``listfile0:``.\n"
@@ -20678,7 +15890,7 @@ msgid ""
msgstr ""
"Можно прочитать шаблоны имен из файла, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ ``listfile:`` или\n"
"``listfile0:``. ПоÑледний ожидает шаблонов, отделенных друг от друга\n"
-"Ñимволом NUL, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº первый предполагает перевод Ñтроки. КаждаÑ\n"
+"Ñимволом NUL, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº первый предполоает перевод Ñтроки. КаждаÑ\n"
"Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ð°Ñ Ð¸Ð· файла Ñтрока интерпретируетÑÑ ÐºÐ°Ðº шаблон имени файла."
msgid "Plain examples::"
@@ -20689,7 +15901,7 @@ msgid ""
" of the repository\n"
" path:path:name a file or directory named \"path:name\""
msgstr ""
-" path:foo/bar файл Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ bar в каталоге foo в корне хранилища\n"
+" path:foo/bar файл Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ bar в каталоге foo в корне репозиториÑ\n"
" path:path:name файл или каталог Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ \"path:name\""
msgid "Glob examples::"
@@ -20718,7 +15930,7 @@ msgstr "Примеры regexp::"
msgid " re:.*\\.c$ any name ending in \".c\", anywhere in the repository"
msgstr ""
" re:.*\\.c$ любой файл, оканчивающийÑÑ Ð½Ð° \".c\",\n"
-" находÑщийÑÑ Ð³Ð´Ðµ угодно в хранилище"
+" находÑщийÑÑ Ð³Ð´Ðµ угодно в репозитории"
msgid "File examples::"
msgstr "Примеры шаблонов из файлов::"
@@ -20733,187 +15945,7 @@ msgstr ""
" шаблоны, разделенные Ñимволом NULL"
msgid "See also :hg:`help filesets`.\n"
-msgstr "См. также :hg:`help filesets`.\n"
-
-msgid ""
-"What are phases?\n"
-"================"
-msgstr ""
-"Что такое фазы?\n"
-"==============="
-
-msgid ""
-"Phases are a system for tracking which changesets have been or should\n"
-"be shared. This helps prevent common mistakes when modifying history\n"
-"(for instance, with the mq or rebase extensions)."
-msgstr ""
-"Фазы - Ñто ÑиÑтема Ð´Ð»Ñ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð³Ð¾, какие наборы изменений были\n"
-"или должны быть публично доÑтупны. Это помогает предотвратить чаÑто\n"
-"Ñовершаемые ошибки при изменение иÑтории (например, при помощи раÑширений\n"
-"mq или rebase)."
-
-msgid "Each changeset in a repository is in one of the following phases:"
-msgstr "Каждый набор изменений хранилища находитÑÑ Ð² одной из Ñледующих фаз::"
-
-msgid ""
-" - public : changeset is visible on a public server\n"
-" - draft : changeset is not yet published\n"
-" - secret : changeset should not be pushed, pulled, or cloned"
-msgstr ""
-" - Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð°Ñ : набор изменений опубликован на общедоÑтупном Ñервере\n"
-" - Ñ‡ÐµÑ€Ð½Ð¾Ð²Ð°Ñ : набор изменений ещё не опубликован\n"
-" - ÑÐµÐºÑ€ÐµÑ‚Ð½Ð°Ñ : он не должен проталкиватьÑÑ, затÑгиватьÑÑ, клонироватьÑÑ"
-
-msgid ""
-"These phases are ordered (public < draft < secret) and no changeset\n"
-"can be in a lower phase than its ancestors. For instance, if a\n"
-"changeset is public, all its ancestors are also public. Lastly,\n"
-"changeset phases should only be changed towards the public phase."
-msgstr ""
-"Фазы раÑположены в Ñледующем порÑдке: Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð°Ñ < Ñ‡ÐµÑ€Ð½Ð¾Ð²Ð°Ñ < ÑекретнаÑ,\n"
-"при Ñтом набор изменений не может находитÑÑ Ð² фазе, меньшей фазы его\n"
-"предков. Ðапример, еÑли набор изменений находитÑÑ Ð² публичной фазе,\n"
-"то и вÑе его родительÑкие ревизии будут в публичной фазе. Ðаконец, фазы\n"
-"набора изменений Ñледует менÑÑ‚ÑŒ только в Ñторону пулбичной фазы."
-
-msgid ""
-"How are phases managed?\n"
-"======================="
-msgstr ""
-"Как проиÑходит работа Ñ Ñ„Ð°Ð·Ð°Ð¼Ð¸?\n"
-"==============================="
-
-msgid ""
-"For the most part, phases should work transparently. By default, a\n"
-"changeset is created in the draft phase and is moved into the public\n"
-"phase when it is pushed to another repository."
-msgstr ""
-"Как правило работа Ñ Ñ„Ð°Ð·Ð°Ð¼Ð¸ прозрачна Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ. По умолчанию\n"
-"набор изменений ÑоздаетÑÑ Ð² черновой фазе и перемещаетÑÑ Ð² публичную фазу\n"
-"при проталкивании в другое хранилище."
-
-msgid ""
-"Once changesets become public, extensions like mq and rebase will\n"
-"refuse to operate on them to prevent creating duplicate changesets.\n"
-"Phases can also be manually manipulated with the :hg:`phase` command\n"
-"if needed. See :hg:`help -v phase` for examples."
-msgstr ""
-"ПоÑле того, как набор изменений Ñтал публичным, раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð²Ñ€Ð¾Ð´Ðµ mq или\n"
-"rebase откажутÑÑ Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ñ‚ÑŒ Ñ Ð½Ð¸Ð¼, чтобы предотвратить Ñоздание дублирующихÑÑ\n"
-"наборов изменений. При необходимоÑти фазами можно также манипулировать\n"
-"вручную Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команды :hg:`phase`."
-
-msgid ""
-"Phases and servers\n"
-"=================="
-msgstr ""
-"Фазы и Ñерверы\n"
-"=============="
-
-msgid "Normally, all servers are ``publishing`` by default. This means::"
-msgstr "Как правило, вÑе Ñерверы по умолчанию ``публичные``. Это означает::"
-
-msgid ""
-" - all draft changesets that are pulled or cloned appear in phase\n"
-" public on the client"
-msgstr ""
-" - вÑе черновые наборы изменений, которые затÑгиваютÑÑ Ð¸Ð»Ð¸ клонируютÑÑ,\n"
-" имеют публичную фазу на Ñтороне клиента"
-
-msgid ""
-" - all draft changesets that are pushed appear as public on both\n"
-" client and server"
-msgstr ""
-" - вÑе проталкиваемые черновые наборы изменений ÑтановÑÑ‚ÑÑ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸\n"
-" как на клиенте, так и на Ñервере"
-
-msgid " - secret changesets are neither pushed, pulled, or cloned"
-msgstr ""
-" - Ñекретные наборы изменений не проталкиваютÑÑ, не затÑгиваютÑÑ\n"
-" и не клонируютÑÑ"
-
-msgid ""
-".. note::\n"
-" Pulling a draft changeset from a publishing server does not mark it\n"
-" as public on the server side due to the read-only nature of pull."
-msgstr ""
-".. note::\n"
-" ЗатÑгивание чернового набора изменений из ``публичного`` Ñервера не\n"
-" Ñделает Ñтот набор публичным на Ñервере, Ñ‚.к. команда pull выполнÑетÑÑ\n"
-" в режиме ``только чтение``."
-
-msgid ""
-"Sometimes it may be desirable to push and pull changesets in the draft\n"
-"phase to share unfinished work. This can be done by setting a\n"
-"repository to disable publishing in its configuration file::"
-msgstr ""
-"Иногда может потребоватьÑÑ Ð¿Ñ€Ð¾Ñ‚Ð°Ð»ÐºÐ¸Ð²Ð°Ñ‚ÑŒ и затÑгивать наборы изменений\n"
-"в черновой фазе, чтобы поделитьÑÑ Ð½ÐµÐ¾ÐºÐ¾Ð½Ñ‡ÐµÐ½Ð½Ð¾Ð¹ работой. Это может быть\n"
-"реализовано путем Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ``публичноÑти`` в файле конфигурации::"
-
-msgid ""
-" [phases]\n"
-" publish = False"
-msgstr ""
-" [phases]\n"
-" publish = False"
-
-msgid "See :hg:`help config` for more information on config files."
-msgstr "См. :hg:`help config` — Ñправку по файлам конфигурации."
-
-msgid ""
-".. note::\n"
-" Servers running older versions of Mercurial are treated as\n"
-" publishing."
-msgstr ""
-".. note::\n"
-" Серверы, работающие Ñо Ñтарыми верÑиÑми Mercurial, ÑчитаютÑÑ\n"
-" публичными."
-
-msgid ""
-"Examples\n"
-"========"
-msgstr ""
-"Примеры\n"
-"======="
-
-msgid " - list changesets in draft or secret phase::"
-msgstr " - перечиÑлить наборы изменений в черновой или Ñекретной фазе::"
-
-msgid " hg log -r \"not public()\""
-msgstr " hg log -r \"not public()\""
-
-msgid " - change all secret changesets to draft::"
-msgstr " - уÑтановить вÑе Ñекретные наборы изменений в черновую фазу::"
-
-msgid " hg phase --draft \"secret()\""
-msgstr " hg phase --draft \"secret()\""
-
-msgid ""
-" - forcibly move the current changeset and descendants from public to draft::"
-msgstr ""
-" - принудительно перемеÑтить текущий набор изменений и потомков из публичной "
-"фазы в черновую::"
-
-msgid " hg phase --force --draft ."
-msgstr " hg phase --force --draft ."
-
-msgid " - show a list of changeset revision and phase::"
-msgstr " - показать ÑпиÑок из номера ревизий и фазы::"
-
-msgid " hg log --template \"{rev} {phase}\\n\""
-msgstr " hg log --template \"{rev} {phase}\\n\""
-
-msgid " - resynchronize draft changesets relative to a remote repository::"
-msgstr ""
-" - Ñинхронизировать черновые ревизии отноÑительно отдаленного хранилища::"
-
-msgid " hg phase -fd 'outgoing(URL)' "
-msgstr " hg phase -fd 'outgoing(URL)' "
-
-msgid ""
-"See :hg:`help phase` for more information on manually manipulating phases.\n"
-msgstr "См. :hg:`help phase` — о том, как изменÑÑ‚ÑŒ фазы вручную.\n"
+msgstr "См. также :hg:`help filesetes`.\n"
msgid "Mercurial supports several ways to specify individual revisions."
msgstr "Mercurial поддерживает неÑколько ÑпоÑобов Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ñ… ревизий."
@@ -20924,7 +15956,7 @@ msgid ""
"-2 denoting the revision prior to the tip, and so forth."
msgstr ""
"ПроÑтое целое чиÑло интерпретируетÑÑ ÐºÐ°Ðº номер ревизии. Отрицательные\n"
-"целые чиÑла интерпретируютÑÑ ÐºÐ°Ðº непрерывное Ñмещение отноÑительно\n"
+"целые чила интерпретируютÑÑ ÐºÐ°Ðº непрерывное Ñмещение отноÑительно\n"
"оконечной ревизии (tip). Так, -1 означает tip, -2 означает ревизию,\n"
"предшеÑтвующую tip и Ñ‚.д."
@@ -20932,7 +15964,7 @@ msgid ""
"A 40-digit hexadecimal string is treated as a unique revision\n"
"identifier."
msgstr ""
-"ШеÑÑ‚Ð½Ð°Ð´Ñ†Ð°Ñ‚ÐµÑ€Ð¸Ñ‡Ð½Ð°Ñ Ñтрока из 40 Ñимволов ÑчитаетÑÑ ÑƒÐ½Ð¸ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼\n"
+"ШеÑÑ‚Ð½Ð°Ð´Ñ†Ð°Ñ‚Ð¸Ñ€Ð¸Ñ‡Ð½Ð°Ñ Ñтрока из 40 Ñимволов ÑчитаетÑÑ ÑƒÐ½Ð¸ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼\n"
"идентификатором (ID) ревизии."
msgid ""
@@ -20941,35 +15973,35 @@ msgid ""
"identifier. A short-form identifier is only valid if it is the prefix\n"
"of exactly one full-length identifier."
msgstr ""
-"ШеÑÑ‚Ð½Ð°Ð´Ñ†Ð°Ñ‚ÐµÑ€Ð¸Ñ‡Ð½Ð°Ñ Ñтрока короче 40 Ñимволов ÑчитаетÑÑ Ñокращенной\n"
+"ШеÑÑ‚Ð½Ð°Ð´Ñ†Ð°Ñ‚Ð¸Ñ€Ð¸Ñ‡Ð½Ð°Ñ Ñтрока короче 40 Ñимволов ÑчитаетÑÑ Ñокращенной\n"
"формой уникального идентификатора ревизии. Такой идентификатор\n"
"ÑвлÑетÑÑ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼, только еÑли он ÑвлÑетÑÑ Ñтаршей чаÑтью\n"
"ровно одного полного ID ревизии."
msgid ""
-"Any other string is treated as a bookmark, tag, or branch name. A\n"
-"bookmark is a movable pointer to a revision. A tag is a permanent name\n"
-"associated with a revision. A branch name denotes the tipmost revision\n"
-"of that branch. Bookmark, tag, and branch names must not contain the \":\"\n"
-"character."
+"Any other string is treated as a tag or branch name. A tag name is a\n"
+"symbolic name associated with a revision identifier. A branch name\n"
+"denotes the tipmost revision of that branch. Tag and branch names must\n"
+"not contain the \":\" character."
msgstr ""
-"Ð›ÑŽÐ±Ð°Ñ Ð´Ñ€ÑƒÐ³Ð°Ñ Ñтрока интерпретируетÑÑ ÐºÐ°Ðº Ð¸Ð¼Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ¸, ветки или метки.\n"
-"Закладка - Ñто автоматичеÑки передвигаемый указатель на ревизию.\n"
-"Метка - поÑтоÑнное имÑ, аÑÑоциированное Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ ревизией.\n"
-"Ð˜Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸ означает поÑледнюю ревизию на Ñтой ветки. Имена ветки, метки или\n"
-"закладки не должны Ñодержать Ñимвола \":\"."
+"Ð›ÑŽÐ±Ð°Ñ Ð´Ñ€ÑƒÐ³Ð°Ñ Ñтрока интерпретируетÑÑ ÐºÐ°Ðº Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸ или метки. ИмÑ\n"
+"метки - Ñто Ñимвольное имÑ, аÑÑоциированное Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ ID ревизии.\n"
+"Ð˜Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸ означает поÑледнюю ревизию на Ñтой ветви. Имена ветви и\n"
+"метки не должны Ñодержать Ñимвола \":\"."
-msgid "The reserved name \"tip\" always identifies the most recent revision."
+msgid ""
+"The reserved name \"tip\" is a special tag that always identifies the\n"
+"most recent revision."
msgstr ""
-"Зарезервированное Ð¸Ð¼Ñ \"tip\" вÑегда вÑегда ÑÑылаетÑÑ Ð½Ð° Ñамую поÑледнюю "
-"ревизию."
+"Зарезервированное Ð¸Ð¼Ñ \"tip\" ÑвлÑетÑÑ Ñпециальной меткой, котораÑ\n"
+"вÑегда ÑÑылаетÑÑ Ð½Ð° Ñамую поÑледнюю ревизию."
msgid ""
"The reserved name \"null\" indicates the null revision. This is the\n"
"revision of an empty repository, and the parent of revision 0."
msgstr ""
"Зарезервированное Ð¸Ð¼Ñ \"null\" означает пуÑтую ревизию. Это ревизиÑ\n"
-"пуÑтого хранилища или родитель ревизии 0."
+"пуÑтого Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð»Ð¸ родитель ревизии 0."
msgid ""
"The reserved name \".\" indicates the working directory parent. If no\n"
@@ -20978,8 +16010,8 @@ msgid ""
"parent.\n"
msgstr ""
"Зарезервированное Ð¸Ð¼Ñ \".\" означает Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога.\n"
-"ЕÑли рабочий каталог не извлечен, оно Ñквивалентно null. ЕÑли в\n"
-"рабочем каталоге находитÑÑ Ð½ÐµÐ·Ð°Ñ„Ð¸ÐºÑированный результат ÑлиÑниÑ, \".\"\n"
+"ЕÑли рабочий каталог ен извлечен, оно Ñквивалентно null. ЕÑли в\n"
+"рабочем каталоге находитÑÑ Ð½ÐµÐ·Ð°ÐºÐ¾Ð¼Ð¼Ð¸Ñ‡ÐµÐ½Ð½Ñ‹Ð¹ результат ÑлиÑниÑ, \".\"\n"
"означает первого родителÑ.\n"
msgid ""
@@ -20994,24 +16026,25 @@ msgid ""
"operators. Parenthesis can be used for grouping."
msgstr ""
"Язык поддерживает неÑколько предикатов, которые объединÑÑŽÑ‚ÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
-"инфикÑных операторов. Ð”Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¸Ñ€Ð¾Ð²ÐºÐ¸ можно иÑпользовать круглые Ñкобки."
+"инфикÑных операторов. Можно иÑпользовать Ñкобки Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¸Ñ€Ð¾Ð²ÐºÐ¸."
msgid ""
-"Identifiers such as branch names may need quoting with single or\n"
-"double quotes if they contain characters like ``-`` or if they match\n"
-"one of the predefined predicates."
+"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."
msgstr ""
-"Различные идентификаторы, такие как имена веток, могут заключатьÑÑ Ð²\n"
-"одинарные или двойные кавычки, оÑобенно еÑли они Ñодержат такие Ñимволы\n"
-"как ``-``, или еÑли их имена Ñовпадают Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ одного из предопределенных\n"
-"предикатов."
+"Идентификаторы, такие как имена ветвей, должны заключатьÑÑ Ð² одинарные\n"
+"или двойные кавычки, еÑли они Ñодержат Ñимволы не из множеÑтва\n"
+"``[._a-zA-Z0-9\\x80-\\xff]`` или еÑли их имена Ñовпадают Ñ Ð¾Ð´Ð½Ð¸Ð¼\n"
+"из предопределенных предикатов."
msgid ""
"``not x``\n"
" Changesets not in x. Short form is ``! x``."
msgstr ""
"``not x``\n"
-" Ðаборы изменений, не входÑщие в Ñ…. ÐšÑ€Ð°Ñ‚ÐºÐ°Ñ Ñ„Ð¾Ñ€Ð¼Ð°: ``! x``."
+" Ðаборы изменений не в Ñ…. ÐšÑ€Ð°Ñ‚ÐºÐ°Ñ Ñ„Ð¾Ñ€Ð¼Ð°: ``! x``."
msgid ""
"``x::y``\n"
@@ -21024,7 +16057,7 @@ msgstr ""
" Диапазон на графе ревизий, означающий вÑе ревизии, ÑвлÑющиеÑÑ\n"
" предками y и потомками x, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ x и y. ЕÑли Ð¿ÐµÑ€Ð²Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ\n"
" опущена, Ñто Ñквивалентно ``ancestors(y)``, еÑли Ð²Ñ‚Ð¾Ñ€Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ\n"
-" опущена, Ñто Ñквивалентно ``descendants(x)``."
+" опущена, Ñто Ñквивалентно ``descendats(x)``."
msgid " An alternative syntax is ``x..y``."
msgstr " ÐÐ»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð°: ``x..y``."
@@ -21068,10 +16101,9 @@ msgid ""
" For n == 0, x; for n == 1, the first parent of each changeset in x;\n"
" for n == 2, the second parent of changeset in x."
msgstr ""
-"``x^n``\n"
-" n-ый родитель x, где n == 0, 1 или 2.\n"
-" ЕÑли n == 0, ÑоответÑтвует x; еÑли n == 1, то ÑоответÑтвует первому\n"
-" родителю каждой ревизии из x; еÑли n == 2 — второму родителю."
+" n-ый родитель x, n == 0, 1, или 2.\n"
+" ЕÑли n == 0, ÑоответÑтвует x; еÑли n == 1, ÑоответÑтвует первому\n"
+" родителю каждой ревизии из x; еÑли n == 2 - второму родителю."
msgid ""
"``x~n``\n"
@@ -21126,10 +16158,6 @@ msgid ""
" d($1) = sort($1, date)\n"
" rs($1, $2) = reverse(sort($1, $2))"
msgstr ""
-" [revsetalias]\n"
-" h = heads()\n"
-" d($1) = sort($1, date)\n"
-" rs($1, $2) = reverse(sort($1, $2))"
msgid ""
"defines three aliases, ``h``, ``d``, and ``rs``. ``rs(0:tip, author)`` is\n"
@@ -21151,34 +16179,26 @@ msgid ""
" -P x -> !::x\n"
" -l x -> limit(expr, x)"
msgstr ""
-" -f -> ::.\n"
-" -d x -> date(x)\n"
-" -k x -> keyword(x)\n"
-" -m -> merge()\n"
-" -u x -> user(x)\n"
-" -b x -> branch(x)\n"
-" -P x -> !::x\n"
-" -l x -> limit(expr, x)"
msgid "- Changesets on the default branch::"
-msgstr "- Ревизии на ветке default::"
+msgstr "- Ревизии на ветви default::"
msgid " hg log -r \"branch(default)\""
-msgstr " hg log -r \"branch(default)\""
+msgstr ""
msgid "- Changesets on the default branch since tag 1.5 (excluding merges)::"
msgstr ""
-"- Ревизии на ветке default, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð¼ÐµÑ‚ÐºÐ¸ 1.5, не Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¸\n"
+"- Ревизии на ветви default, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð²ÐµÑ‚ÐºÐ¸ 1.5, не Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¸\n"
" ÑлиÑниÑ::"
msgid " hg log -r \"branch(default) and 1.5:: and not merge()\""
-msgstr " hg log -r \"branch(default) and 1.5:: and not merge()\""
+msgstr ""
msgid "- Open branch heads::"
-msgstr "- Головы открытых веток::"
+msgstr "- Головы открытых ветвей"
msgid " hg log -r \"head() and not closed()\""
-msgstr " hg log -r \"head() and not closed()\""
+msgstr ""
msgid ""
"- Changesets between tags 1.3 and 1.5 mentioning \"bug\" that affect\n"
@@ -21188,89 +16208,73 @@ msgstr ""
" в которых были изменены файлы ``hgext/*``::"
msgid " hg log -r \"1.3::1.5 and keyword(bug) and file('hgext/*')\""
-msgstr " hg log -r \"1.3::1.5 and keyword(bug) and file('hgext/*')\""
+msgstr ""
msgid "- Changesets committed in May 2008, sorted by user::"
-msgstr ""
-"- Ревизии, зафикÑированные в мае 2008, отÑортированные по пользователю::"
+msgstr "- Ревизии, закомиченные в Мае 2008, отÑортированные по пользователю::"
msgid " hg log -r \"sort(date('May 2008'), user)\""
-msgstr " hg log -r \"sort(date('May 2008'), user)\""
+msgstr ""
msgid ""
"- Changesets mentioning \"bug\" or \"issue\" that are not in a tagged\n"
" release::"
-msgstr ""
-"- Ðаборы изменений, Ñодержащие в опиÑании Ñлова \"bug\" или \"issue\",\n"
-" и не входÑщие в помеченный релиз::"
+msgstr "- Ðе помеченные ревизии, Ñодержищие Ñлова \"bug\" или \"issue\"::"
msgid ""
-" hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tagged"
-"())\"\n"
+" hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tagged())"
+"\"\n"
msgstr ""
-" hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tagged"
-"())\"\n"
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."
+"group. External Mercurial and Subversion projects are currently\n"
+"supported."
msgstr ""
-"Подхранилища позволÑÑŽÑ‚ вложить неÑколько внешних хранилищ или проектов\n"
-"в родительÑкое хранилище Mercurial и выполнÑÑ‚ÑŒ над ними команды как над\n"
-"единой группой."
-
-msgid ""
-"Mercurial currently supports Mercurial, Git, and Subversion\n"
-"subrepositories."
-msgstr ""
-"Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÑŽÑ‚ÑÑ Ð¿Ð¾Ð´Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð° Mercurial, Git\n"
-"и Subversion."
+"Субрепозитории (подрепозитории) позволÑÑŽÑ‚ вложить неÑколько внешних\n"
+"репозиториев или пректов в один репозиторий Mercurial и выполнÑÑ‚ÑŒ\n"
+"над ними команды как над единой группой. Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÑŽÑ‚ÑÑ\n"
+"внешнии проекты Mercurial и Subversion."
msgid "Subrepositories are made of three components:"
-msgstr "Подхранилища включают три компонента:"
+msgstr "Субрепозитории включают три компонента:"
msgid ""
"1. Nested repository checkouts. They can appear anywhere in the\n"
-" parent working directory."
+" parent working directory, and are Mercurial clones or Subversion\n"
+" checkouts."
msgstr ""
-"1. Извлеченные рабочие копии вложенных хранилищ. Они могут\n"
-" находитÑÑ Ð³Ð´Ðµ угодно в рабочем каталоге."
+"1. Извлеченные рабочие копии вложенных репозиториев. Они могут\n"
+" находитÑÑ Ð³Ð´Ðµ угодно в рабочем каталоге и ÑвлÑÑŽÑ‚ÑÑ Ð»Ð¸Ð±Ð¾ клонами\n"
+" Mercurial, либо рабочими копиÑми Subversion."
msgid ""
-"2. Nested repository references. They are defined in ``.hgsub``, which\n"
-" should be placed in the root of working directory, and\n"
+"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 ""
-"2. СÑылки на вложенные хранилища. Они определÑÑŽÑ‚ÑÑ Ð² файле ``.hgsub``,\n"
-" который должен находитьÑÑ Ð² корне рабочего каталога, и опиÑывают,\n"
-" откуда были извлечены копии подхранилищ.\n"
-" Подхранилища имеют такие пути:"
+"2. СÑылки на вложенные репозитории. Они определены в ``.hgsub`` и\n"
+" опиÑывают, откуда были извлечены копии Ñубрепозиториев.\n"
+" Субрепозитории имеют такие пути:"
msgid " path/to/nested = https://example.com/nested/repo/path"
-msgstr " path/to/nested = https://example.com/nested/repo/path"
-
-msgid " Git and Subversion subrepos are also supported:"
-msgstr " ПоддерживаютÑÑ Ñ‚Ð°ÐºÐ¶Ðµ подхранилища Git и Subversion:"
-
-msgid ""
-" path/to/nested = [git]git://example.com/nested/repo/path\n"
-" path/to/nested = [svn]https://example.com/nested/trunk/path"
msgstr ""
-" path/to/nested = [git]git://example.com/nested/repo/path\n"
-" path/to/nested = [svn]https://example.com/nested/trunk/path"
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."
+" filesystem path. Subversion repositories are defined with:"
msgstr ""
" где ``path/to/nested`` - путь к извлеченной рабочей копии отноÑительно\n"
-" ÐºÐ¾Ñ€Ð½Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого хранилища Mercurial, а \n"
-" ``https://example.com/nested/repo/path`` - путь к хранилищу-\n"
-" иÑточнику. ИÑточник может быть также путем в файловой ÑиÑтеме."
+" ÐºÐ¾Ñ€Ð½Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Mercurial, а \n"
+" ``https://example.com/nested/repo/path`` - путь к репозиторию-\n"
+" иÑточнику. ИÑточник может быть также путем в файловой ÑиÑтеме.\n"
+" Репозитории Subversion определÑÑŽÑ‚ÑÑ Ñ‚Ð°Ðº:"
+
+msgid " path/to/nested = [svn]https://example.com/nested/trunk/path"
+msgstr ""
msgid ""
" Note that ``.hgsub`` does not exist by default in Mercurial\n"
@@ -21278,23 +16282,21 @@ msgid ""
" repository before using subrepositories."
msgstr ""
" Обратите внимание, что ``.hgsub`` по умолчанию не ÑущеÑтвует\n"
-" в хранилищах Mercurial, вам надо Ñоздать его и добавить\n"
-" в родительÑкое хранилище перед иÑпользованием подхранилищ."
+" в репозиториÑÑ… Mercurial, вам надо Ñоздать его и добавть\n"
+" в родительÑкий репозиторий перед иÑпользованием Ñубрепозиториев."
msgid ""
-"3. Nested repository states. They are defined in ``.hgsubstate``, which\n"
-" is placed in the root of working directory, and\n"
+"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 ""
-"3. СоÑтоÑÐ½Ð¸Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ‹Ñ… хранилищ. Они определÑÑŽÑ‚ÑÑ Ð² файле ``.hgsubstate``,\n"
-" который должен находитьÑÑ Ð² корне рабочего каталога,\n"
+"3. СоÑтоÑÐ½Ð¸Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ‹Ñ… репозиториев. Они определены в ``.hgsubstate``\n"
" и Ñодержат информацию, необходимую Ð´Ð»Ñ Ð´Ð°Ð»ÑŒÐ½ÐµÐ¹ÑˆÐµÐ³Ð¾ воÑÑтановлениÑ\n"
-" подхранилищ до ÑоÑтоÑниÑ, в котором они были зафикÑированы в\n"
-" родительÑкое хранилище. Mercurial запиÑывает ÑоÑтоÑÐ½Ð¸Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ‹Ñ…\n"
-" хранилищ автоматичеÑки при фикÑации родительÑкого хранилища."
+" Ñубрепозиториев до ÑоÑтоÑниÑ, в котором они были закоммичены в\n"
+" родительÑкий репозиторий. Mercurial запиÑывает ÑоÑтоÑÐ½Ð¸Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ‹Ñ…\n"
+" репозиториев автоматичÑки при коммите в родительÑкий репозиторий."
msgid ""
" .. note::\n"
@@ -21306,11 +16308,11 @@ msgstr ""
msgid ""
"\n"
"Adding a Subrepository\n"
-"======================"
+"----------------------"
msgstr ""
"\n"
-"Добавление подхранилища\n"
-"======================="
+"Добавление ÑубрепозиториÑ\n"
+"-------------------------"
msgid ""
"If ``.hgsub`` does not exist, create it and add it to the parent\n"
@@ -21321,20 +16323,20 @@ msgid ""
"``.hgsubstate`` and bind it to the committed changeset."
msgstr ""
"ЕÑли файл ``.hgsub`` не ÑущеÑтвует, Ñоздайте его и добавьте в\n"
-"родительÑкое хранилище. Клонируйте или извлеките внешние проекты\n"
-"в каталог, в котором они будут размещатьÑÑ Ð² родительÑком хранилище.\n"
-"Отредактируйте файл ``.hgsub``, добавив туда запиÑÑŒ Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°\n"
-"как опиÑано выше. ÐÐ°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ñтого момента, Ñто подхранилище\n"
-"контролируетÑÑ Mercurial, и при Ñледующей фикÑации в файле ``.hgsubstate``\n"
+"родительÑкий репозиторий. Клонируйте или извлеките внешние проекты\n"
+"в каталог, в котором они будут размещатьÑÑ Ð² родительÑком репозитории.\n"
+"Отредактируйте файл ``.hgsub``, добавив туда запиÑÑŒ Ð´Ð»Ñ ÑубрепозиториÑ\n"
+"как опиÑано выше. ÐÐ°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ñтого момента, Ñтот Ñубрепозиторий\n"
+"контролируетÑÑ Mercurial, и при Ñледующем коммите в файле ``.hgsubstate``\n"
"будет зафикÑировано его ÑоÑтоÑние и выполнена привÑзка к нему\n"
-"зафикÑированного набора изменений."
+"закомиченного набора изменений."
msgid ""
"Synchronizing a Subrepository\n"
-"============================="
+"-----------------------------"
msgstr ""
-"Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð´Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°\n"
-"=========================="
+"Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑубрепозиториÑ\n"
+"----------------------------"
msgid ""
"Subrepos do not automatically track the latest changeset of their\n"
@@ -21343,7 +16345,7 @@ msgid ""
"developers always get a consistent set of compatible code and\n"
"libraries when they update."
msgstr ""
-"Подхранилища не отÑлеживают автоматичеÑки Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² их иÑточниках.\n"
+"Субрепозитории не отÑлеживают автоматичеÑки Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² их иÑточниках.\n"
"ВмеÑто Ñтого они обновлÑÑŽÑ‚ÑÑ Ð´Ð¾ ревизии, ÑоответÑтвующей ревизии,\n"
"извлеченной уровнем выше. Это Ñделано Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы разработчики\n"
"вÑегда имели целоÑтный набор кода и библиотек, когда они обновлÑÑŽÑ‚ÑÑ."
@@ -21353,105 +16355,92 @@ msgid ""
"subrepo at the desired revision, test in the top-level repo, then\n"
"commit in the parent repository to record the new combination."
msgstr ""
-"Таким образом, обновление подхранилища необходимо выполнÑÑ‚ÑŒ вручную.\n"
-"ПроÑто извлеките желаемую ревизию подхранилища, протеÑтируйте ее\n"
-"в родительÑком хранилище и выполните commit в родительÑком\n"
-"хранилище, чтобы зафикÑировать новую комбинацию."
+"Таким образом, обновление ÑÑƒÐ±Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð¾ выполнÑÑ‚ÑŒ вручную.\n"
+"ПроÑто извлеките желаемую ревизию ÑубрепозиториÑ, протеÑтируйте ее\n"
+"в родительÑком репозитории и выполните commit в родительÑком\n"
+"репозитории, чтобы зафикÑировать новую комбинацию."
msgid ""
"Deleting a Subrepository\n"
-"========================"
+"------------------------"
msgstr ""
-"Удаление подхранилища\n"
-"====================="
+"Удаление ÑубрепозиториÑ\n"
+"-----------------------"
msgid ""
"To remove a subrepository from the parent repository, delete its\n"
"reference from ``.hgsub``, then remove its files."
msgstr ""
-"Чтобы удалить подхранилище из родительÑкого хранилища, удалите\n"
+"Чтобы удалить Ñубрепозиторий из родительÑкого репозиториÑ, удалите\n"
"ÑÑылку на него из файла ``.hgsub``, поÑле чего удалите его файлы."
msgid ""
"Interaction with Mercurial Commands\n"
-"==================================="
+"-----------------------------------"
msgstr ""
"ВзаимодейÑтвие Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ Mercurial\n"
-"===================================="
+"------------------------------------"
msgid ""
":add: add does not recurse in subrepos unless -S/--subrepos is\n"
-" specified. However, if you specify the full path of a file in a\n"
-" subrepo, it will be added even without -S/--subrepos specified.\n"
-" Git and Subversion subrepositories are currently silently\n"
+" specified. Subversion subrepositories are currently silently\n"
" ignored."
msgstr ""
-":add: не обрабатывает подхранилища рекурÑивно, еÑли не указан ключ\n"
-" -S/--subrepos. Однако, еÑли вы укажете полный путь к файлу из\n"
-" подхранилища, он будет добавлен даже без -S/--subrepos.\n"
-" Подхранилища Git и Subversion в наÑтоÑщий момент молча игнорируютÑÑ."
+":add: add не обрабатывает Ñубрепозитории рекурÑивно, еÑли не указана\n"
+" Ð¾Ð¿Ñ†Ð¸Ñ -S/--subrepos. Субрепозитории Subversion в наÑтоÑщее\n"
+" Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¾Ð»Ñ‡Ð° игнорируютÑÑ."
msgid ""
":archive: archive does not recurse in subrepositories unless\n"
" -S/--subrepos is specified."
msgstr ""
-":archive: archive не обрабатывает подхранилища рекурÑивно, еÑли\n"
+":archive: archive не обрабатывает Ñубрепозитории рекурÑивно, еÑли\n"
" не указана Ð¾Ð¿Ñ†Ð¸Ñ -S/--subrepos."
msgid ""
":commit: commit creates a consistent snapshot of the state of the\n"
-" entire project and its subrepositories. If any subrepositories\n"
-" have been modified, Mercurial will abort. Mercurial can be made\n"
-" to instead commit all modified subrepositories by specifying\n"
-" -S/--subrepos, or setting \"ui.commitsubrepos=True\" in a\n"
-" configuration file (see :hg:`help config`). After there are no\n"
-" longer any modified subrepositories, it records their state and\n"
-" finally commits it in the parent repository."
-msgstr ""
-":commit: commit Ñоздает целоÑтный Ñнимок ÑоÑтоÑÐ½Ð¸Ñ Ð²Ñего проекта и\n"
-" его подхранилищ. ЕÑли Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ одно подхранилище было изменено,\n"
-" выполнение прерываетÑÑ. Можно заÑтавить Mercurial вмеÑто Ñтого\n"
-" фикÑировать вÑе измененные подхранилища Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -S/--subrepos\n"
-" или наÑтройкой \"ui.commitsubrepos=True\" в конфиге (Ñм.\n"
-" :hg:`help config`). ПоÑле того, как измененных подхранилищ\n"
-" не оÑталоÑÑŒ, их ÑоÑтоÑние запиÑываетÑÑ Ð¸ фикÑируетÑÑ Ð² оÑновном\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 ""
+":commit: commit Ñоздает целоÑтный ÑниÑок ÑоÑтоÑÐ½Ð¸Ñ Ð²Ñего проекта и\n"
+" его Ñубрепозиториев. Она делает Ñто Ñначала пытаÑÑÑŒ закоммитить\n"
+" вÑе измененные Ñубрепозитории, потом запиÑÑ‹Ð²Ð°Ñ Ð¸Ð· ÑоÑтоÑние,\n"
+" поÑле чего выполнÑет коммит в родительÑкий репозиторий. Можно\n"
+" заÑтавить Mercurial отменÑÑ‚ÑŒ коммит, еÑли Ñодержимое Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ одного\n"
+" Ñубрепозиторий изменено, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ уÑтановки \"ui.commitsubrepos=no\"\n"
+" в конфиге (Ñм. :hg:`help config`)."
msgid ""
":diff: diff does not recurse in subrepos unless -S/--subrepos is\n"
" specified. Changes are displayed as usual, on the subrepositories\n"
-" elements. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" elements. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
-":diff: diff не обрабатывает подхранилища рекурÑивно, еÑли не указана\n"
-" Ð¾Ð¿Ñ†Ð¸Ñ -S/--subrepos. Ð Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶Ð°ÑŽÑ‚ÑÑ ÐºÐ°Ðº обычно Ð´Ð»Ñ Ñлементов\n"
-" подхранилищ. Хранилища Subversion в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¾Ð»Ñ‡Ð°\n"
+":diff: diff не обрабатывает Ñубрепозитории рекурÑивно, еÑли не указана\n"
+" Ð¾Ð¿Ñ†Ð¸Ñ -S/--subrepos. Ð Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶Ð°ÑŽÑ‚ÑÑ ÐºÐ°Ðº обычно Ð´Ð»Ñ Ñлементов "
+"Ñубрепозиториев. Репозитории Subversion в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¾Ð»Ñ‡Ð°\n"
" игнорируютÑÑ."
msgid ""
-":forget: forget currently only handles exact file matches in subrepos.\n"
-" Git and Subversion subrepositories are currently silently ignored."
-msgstr ""
-":forget: forget в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð±Ñ€Ð°Ð±Ð°Ñ‚Ñ‹Ð²Ð°ÐµÑ‚ только точные ÑовпадениÑ\n"
-" имен файлов в подхранилищах. Хранилища Subversion в наÑтоÑщее времÑ\n"
-" молча игнорируютÑÑ."
-
-msgid ""
":incoming: incoming does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
-":incoming: incoming не обрабатывает подхранилища рекурÑивно, еÑли\n"
-" не указан параметр -S/--subrepos. Подхранилища Subversion в\n"
+":incoming: incoming не обрабатывает Ñубрепозитории рекурÑивно, еÑли\n"
+" не указана Ð¾Ð¿Ñ†Ð¸Ñ -S/--subrepos. Субрепозитории Subversion в\n"
" наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¾Ð»Ñ‡Ð° игнорируютÑÑ."
msgid ""
":outgoing: outgoing does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
-":outgoing: outgoing не обрабатывает подхранилища рекурÑивно, еÑли\n"
-" не указан параметр -S/--subrepos. Подхранилища Subversion в\n"
+":outgoing: outgoing не обрабатывает Ñубрепозитории рекурÑивно, еÑли\n"
+" не указана Ð¾Ð¿Ñ†Ð¸Ñ -S/--subrepos. Субрепозитории Subversion в\n"
" наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¾Ð»Ñ‡Ð° игнорируютÑÑ."
msgid ""
@@ -21461,23 +16450,22 @@ msgid ""
" changesets is expensive at best, impossible in the Subversion\n"
" case."
msgstr ""
-":pull: pull не обрабатывает подхранилища рекурÑивно, Ñ‚.к. до\n"
-" Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ :hg:`update` не ÑÑно, что затÑгивать. ПеречиÑление и\n"
-" передача изменений во вÑех подхранилищах, на которые ÑÑылаютÑÑ\n"
-" затÑнутые ревизии родительÑкого хранилища в лучшем Ñлучае\n"
-" дорого, либо вообще невозможно в Ñлучае Ñ Subversion."
+":pull: pull не обрабатывает Ñубрепозитории рекурÑивно, Ñ‚.к. до\n"
+" Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ :hg:`update` не ÑÑно, что подтÑгивать. ПеречиÑление и\n"
+" передача изменений во вÑех ÑубрепозиториÑÑ…, на которые ÑÑылаютÑÑ\n"
+" подтÑнуютые ревизии родительÑкого Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² лучшем Ñлучае\n"
+" дорого, и вообще не возможно в Ñлучае Subversion."
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. Push is a no-op for Subversion subrepositories."
+" repositories."
msgstr ""
-":push: Mercurial автоматичеÑки выполнÑет push Ñначала Ð´Ð»Ñ Ð²Ñех подхранилищ\n"
-" при выполнении push Ð´Ð»Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого хранилища. Это позволÑет\n"
-" быть уверенным, что новые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² подхранилищах будут доÑтупны,\n"
-" когда на них ÑÑылаютÑÑ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð° уровнем выше. Push не делает ничего\n"
-" Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ Subversion."
+":push: Mercurial автоматичеÑки выполнÑет push Ð´Ð»Ñ Ð²Ñех Ñубрепозиториев\n"
+" при выполнении push Ð´Ð»Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого репозиториÑ. Это позволÑет\n"
+" быть уверенным, что новые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑубрепозиториÑÑ… будут доÑтупны,\n"
+" когда на них ÑÑылаютÑÑ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ðµ уровнем выше."
msgid ""
":status: status does not recurse into subrepositories unless\n"
@@ -21486,10 +16474,10 @@ msgid ""
" elements. Subversion subrepositories are currently silently\n"
" ignored."
msgstr ""
-":status: status по умолчанию не обрабатывает подхранилища рекурÑивно,\n"
-" еÑли не указан -S/--subrepos. Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² подхранилищах\n"
-" отображаютÑÑ ÐºÐ°Ðº обычные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñлементах подхранилища.\n"
-" Хранилища Subversion в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¾Ð»Ñ‡Ð° игнорируютÑÑ."
+":status: status по умолчанию не обрабатывает Ñубрепозитории рекурÑивно,\n"
+" еÑли не указан -S/--subrepos. Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑубрепозиториÑÑ…\n"
+" отображаютÑÑ ÐºÐ°Ðº обычные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñлементах ÑубрепозиториÑ.\n"
+" Репозитории Subversion в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¾Ð»Ñ‡Ð° игнорируютÑÑ."
msgid ""
":update: update restores the subrepos in the state they were\n"
@@ -21498,18 +16486,18 @@ msgid ""
" will pull it in first before updating. This means that updating\n"
" can require network access when using subrepositories."
msgstr ""
-":update: update воÑÑтанавливает подхранилища до ÑоÑтоÑниÑ,\n"
-" в котором они были зафикÑированы в целевой ревизии. ЕÑли\n"
-" запиÑÐ°Ð½Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтупна, Mercurial Ñначала затÑнет\n"
+":update: update воÑÑтанавливает Ñубрепозитории до ÑоÑтоÑниÑ,\n"
+" в котором они были закоммичены в целевой ревизии. ЕÑли\n"
+" запиÑÐ°Ð½Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтупна, Mercurial Ñначала подтÑнет\n"
" ее до обновлениÑ. Это значит, что обновление может потребовать\n"
-" доÑтупа к Ñети при иÑпользовании подхранилищ."
+" доÑтупа к Ñети при иÑпользовании Ñубрепозиториев."
msgid ""
"Remapping Subrepositories Sources\n"
-"================================="
+"---------------------------------"
msgstr ""
-"Переназначение иÑточников подхранилищ\n"
-"====================================="
+"Переназначение иÑточников Ñубрепозиториев\n"
+"-----------------------------------------"
msgid ""
"A subrepository source location may change during a project life,\n"
@@ -21518,11 +16506,11 @@ msgid ""
"file or in Mercurial configuration. See the ``[subpaths]`` section in\n"
"hgrc(5) for more details."
msgstr ""
-"МеÑтоположение иÑточников подхранилищ может менÑÑ‚ÑŒÑÑ Ð² течение\n"
+"МеÑтоположение иÑточников Ñубрепозиториев может менÑÑ‚ÑŒÑÑ Ð² течение\n"
"жизни проекта, Ð´ÐµÐ»Ð°Ñ ÑÑылки, хранÑщиеÑÑ Ð² иÑтории родительÑкого\n"
-"хранилища, некорректными. Чтобы иÑправить Ñто, можно определить\n"
-"правила Ð¿ÐµÑ€ÐµÐ½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² файле ``hgrc`` родительÑкого хранилища\n"
-"или в конфиге Mercurial. Подробнее Ñм. Ñекцию ``[subpaths]``."
+"репозиториÑ, некорректными. Чтобы иÑправить Ñто, можно определить\n"
+"правила Ð¿ÐµÑ€ÐµÐ½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² файле ``hgrc`` родительÑкого репозиториÑ\n"
+"или в конфиге Mercurial. Подробенее Ñм. Ñекцию ``[subpaths]``."
msgid ""
"Mercurial allows you to customize output of commands through\n"
@@ -21548,11 +16536,11 @@ msgid ""
"Usage::"
msgstr ""
"С Mercurial поÑтавлÑÑŽÑ‚ÑÑ Ñ‡ÐµÑ‚Ñ‹Ñ€Ðµ ÑтилÑ: Ñтиль по умолчанию (иÑпользуетÑÑ,\n"
-"когда другой Ñтиль Ñвно не указан), compact, changelog и xml.\n"
+"когда другой Ñтиль Ñвно указан), compact, changelog и xml.\n"
"ИÑпользование::"
msgid " $ hg log -r1 --style changelog"
-msgstr " $ hg log -r1 --style changelog"
+msgstr ""
msgid ""
"A template is a piece of text, with markup to invoke variable\n"
@@ -21565,8 +16553,6 @@ msgid ""
" $ hg log -r1 --template \"{node}\\n\"\n"
" b56ce7b07c52de7d5fd79fb89701ea538af65746"
msgstr ""
-" $ hg log -r1 --template \"{node}\\n\"\n"
-" b56ce7b07c52de7d5fd79fb89701ea538af65746"
msgid ""
"Strings in curly braces are called keywords. The availability of\n"
@@ -21579,7 +16565,7 @@ msgstr ""
"команд, похожих на log:"
msgid ".. keywordsmarker"
-msgstr ".. keywordsmarker"
+msgstr ""
msgid ""
"The \"date\" keyword does not produce human-readable output. If you\n"
@@ -21602,14 +16588,12 @@ msgid ""
" $ hg tip --template \"{date|isodate}\\n\"\n"
" 2008-08-21 18:22 +0000"
msgstr ""
-" $ hg tip --template \"{date|isodate}\\n\"\n"
-" 2008-08-21 18:22 +0000"
msgid "List of filters:"
msgstr "СпиÑок фильтров (вход, опиÑание):"
msgid ".. filtersmarker\n"
-msgstr ".. filtersmarker\n"
+msgstr ""
msgid "Valid URLs are of the form::"
msgstr "Возможные Ñледующие формы URL::"
@@ -21621,29 +16605,24 @@ msgid ""
" https://[user[:pass]@]host[:port]/[path][#revision]\n"
" ssh://[user@]host[:port]/[path][#revision]"
msgstr ""
-" путь/к/локальному/файлу[#ревизиÑ]\n"
-" file://путь/к/локальному/файлу[#ревизиÑ]\n"
-" http://[пользователь[:пароль]@]хоÑÑ‚[:порт]/[путь][#ревизиÑ]\n"
-" https://[пользователь[:пароль]@]хоÑÑ‚[:порт]/[путь][#ревизиÑ]\n"
-" ssh://[пользователь@]хоÑÑ‚[:порт]/[путь][#ревизиÑ]"
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`). See also :hg:`help paths`."
msgstr ""
-"Пути в локальной файловой ÑиÑтеме могут указывать на хранилища\n"
-"Mercurial или на файлы комплектов (bundle) (Ñозданных Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
-":hg:`bundle` или :hg:`incoming --bundle`). См. также :hg:`help paths`."
+"Пути в локальной файловой ÑиÑтеме могут указывать на репозитории\n"
+"Mercurial или на файлы бандлов (Ñозданных Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`bundle` или\n"
+":hg:`incoming --bundle`). См. также :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"
-"хранилища. См. также :hg:`help revisions`."
+"ÐеобÑзательный идентификатор поÑле # указывает конкретную ветвь, метку\n"
+"или набор изменений, которую Ñледует иÑпользовать из удаленного\n"
+"репозиториÑ. См. также :hg:`help revisions`."
msgid ""
"Some features, such as pushing to http:// and https:// URLs are only\n"
@@ -21651,7 +16630,7 @@ msgid ""
"server."
msgstr ""
"Ðекоторые функции, такие как выполнение push по URL вида http://\n"
-"и https://, доÑтупны только еÑли Ñти функции Ñвно включены на отдалённом\n"
+"и https://, доÑтупны только еÑли Ñти функции Ñвно включены на удаленном\n"
"Ñервере Mercurial."
msgid ""
@@ -21659,7 +16638,7 @@ msgid ""
"web.cacerts."
msgstr ""
"Обратите внимание, что безопаÑноÑÑ‚ÑŒ работы Ñ URL HTTPS завиÑит от\n"
-"правильных наÑтроек в web.cacerts."
+"правильноых наÑтроек в web.cacerts."
msgid "Some notes about using SSH with Mercurial:"
msgstr "Ð—Ð°Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¾Ñ‚Ð½Ð¾Ñительно иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Mercurial по SSH:"
@@ -21670,15 +16649,15 @@ msgid ""
"- path is relative to the remote user's home directory by default. Use\n"
" an extra slash at the start of a path to specify an absolute path::"
msgstr ""
-"- SSH требует доÑтупного пользовательÑкого аккаунта на отдалённой\n"
+"- SSH требует доÑтупного пользовательÑкого аккаунта на удаленной\n"
" машине и доÑтупного иÑполнÑемого файла Mercurial (hg) по извеÑтным\n"
-" на отдалённой машине путÑм, либо заданного через remotecmd.\n"
-"- пути по умолчанию задаютÑÑ Ð¾Ñ‚Ð½Ð¾Ñительно домашнего каталога отдалённого\n"
+" на удаленной машине путÑм, либо заданного через remotecmd.\n"
+"- пути по умолчанию задаютÑÑ Ð¾Ñ‚Ð½Ð¾Ñительно домашнего каталога удаленного\n"
" пользователÑ. ИÑпользуйте дополнительный ÑлÑш в начале пути, чтобы\n"
" задать абÑолютный путь::"
msgid " ssh://example.com//tmp/repository"
-msgstr " ssh://example.com//tmp/repository"
+msgstr ""
msgid ""
"- Mercurial doesn't use its own compression via SSH; the right thing\n"
@@ -21693,10 +16672,6 @@ msgid ""
" Host *\n"
" Compression yes"
msgstr ""
-" Host *.mylocalnetwork.example.com\n"
-" Compression no\n"
-" Host *\n"
-" Compression yes"
msgid ""
" Alternatively specify \"ssh -C\" as your ssh command in your\n"
@@ -21747,9 +16722,9 @@ msgid ""
" pull-like commands (including incoming and outgoing)."
msgstr ""
"default:\n"
-" Когда вы Ñоздаете хранилище Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ hg clone, команда clone\n"
+" Когда вы Ñоздаете репозиторий Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ hg clone, команда clone\n"
" ÑохранÑет Ð°Ð´Ñ€ÐµÑ Ð¸Ñточника в качеÑтве пути 'default' Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾\n"
-" хранилища. Он иÑпользуетÑÑ, еÑли вы опуÑкаете путь в командах\n"
+" репозиториÑ. Он иÑпользуетÑÑ, еÑли вы опуÑкаете путь в командах\n"
" вроде push и pull (т.ч. incoming и outgoing)."
msgid ""
@@ -21762,188 +16737,170 @@ msgstr ""
" иÑпользовать его вмеÑто 'default', еÑли оба определены.\n"
msgid "remote branch lookup not supported"
-msgstr "отдалённый Ñервер не поддерживает обзор Ñвоих веток"
+msgstr ""
msgid "dirstate branch not accessible"
-msgstr "нет доÑтупа к ветке рабочего каталога"
+msgstr ""
#, python-format
msgid "unknown branch '%s'"
-msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ° '%s'"
+msgstr ""
msgid "can only share local repositories"
-msgstr "ÑовмеÑтный доÑтуп поддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ñ… хранилищ"
+msgstr ""
msgid "destination already exists"
-msgstr "путь Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÑƒÐ¶Ðµ ÑущеÑтвует"
+msgstr ""
msgid "updating working directory\n"
-msgstr "обновлÑем рабочий каталог\n"
+msgstr ""
#, python-format
msgid "destination directory: %s\n"
-msgstr "каталог назначениÑ: %s\n"
-
-msgid "empty destination path is not valid"
-msgstr "пуÑтой путь Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½ÐµÐ´Ð¾Ð¿ÑƒÑтим"
+msgstr ""
#, python-format
msgid "destination '%s' already exists"
-msgstr "путь Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ '%s' уже ÑущеÑтвует"
+msgstr ""
#, python-format
msgid "destination '%s' is not empty"
-msgstr "назначение '%s' не пуÑто"
+msgstr ""
msgid ""
"src repository does not support revision lookup and so doesn't support clone "
"by revision"
msgstr ""
-"хранилище-иÑточник не поддерживает поиÑк ревизий, так что невозможно\n"
-"и клонирование по ревизии."
msgid "clone from remote to remote not supported"
-msgstr "клонирование Ñ Ð¾Ñ‚Ð´Ð°Ð»ÐµÐ½Ð½Ð¾Ð¹ машины на отдаленную не поддерживаетÑÑ"
+msgstr ""
#, python-format
msgid "updating to branch %s\n"
-msgstr "обновлÑемÑÑ Ð½Ð° ветку %s\n"
+msgstr ""
#, python-format
msgid ""
"%d files updated, %d files merged, %d files removed, %d files unresolved\n"
-msgstr "%d файлов обновлено, %d Ñлито, %d удалено, %d c конфликтами\n"
+msgstr ""
msgid "use 'hg resolve' to retry unresolved file merges\n"
msgstr ""
-"иÑпользуйте 'hg resolve' чтобы повторить попытку ÑлиÑÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚ÑƒÑŽÑ‰Ð¸Ñ… "
-"файлов\n"
msgid ""
"use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to "
"abandon\n"
msgstr ""
-"иÑпользуйте 'hg resolve' чтобы повторить попытку ÑлиÑÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚ÑƒÑŽÑ‰Ð¸Ñ… "
-"файлов, или 'hg update -C .' чтобы вернуть вÑÑ‘ в иÑходное ÑоÑтоÑние\n"
msgid "(branch merge, don't forget to commit)\n"
-msgstr "(ÑлиÑние веток, не забудьте зафикÑировать)\n"
+msgstr ""
#, python-format
msgid "config file %s not found!"
-msgstr "файл конфигурации %s не найден!"
+msgstr ""
#, python-format
msgid "error reading %s/.hg/hgrc: %s\n"
-msgstr "ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ %s/.hg/hgrc: %s\n"
+msgstr ""
#, python-format
msgid "error accessing repository at %s\n"
-msgstr "ошибка доÑтупа к хранилищу по адреÑу %s\n"
+msgstr ""
msgid "SSL support is unavailable"
-msgstr "поддержка SSL недоÑтупна"
+msgstr ""
msgid "IPv6 is not available on this system"
-msgstr "IPv6 недоÑтупен в данной ÑиÑтеме"
+msgstr ""
#, python-format
msgid "cannot start server at '%s:%d': %s"
-msgstr "не удаетÑÑ Ð·Ð°Ð¿ÑƒÑтить Ñервер по адреÑу '%s:%d': %s"
-
-#, python-format
-msgid "(binary file %s, hash: %s)"
-msgstr "(бинарный файл %s, Ñ…Ñш: %s)"
+msgstr ""
#, python-format
msgid " %d files changed, %d insertions(+), %d deletions(-)\n"
-msgstr " %d файлов изменено, %d вÑтавок(+), %d удалений(-)\n"
+msgstr ""
#, python-format
msgid "calling hook %s: %s\n"
-msgstr "вызов хука %s: %s\n"
+msgstr ""
#, python-format
msgid "%s hook is invalid (\"%s\" not in a module)"
-msgstr "некорректный хук %s (\"%s\" отÑутÑтвует в модуле)"
+msgstr ""
msgid "exception from first failed import attempt:\n"
-msgstr "иÑключение при первой неудачной попытке импорта:\n"
+msgstr ""
msgid "exception from second failed import attempt:\n"
-msgstr "иÑключение при второй неудачной попытке импорта:\n"
+msgstr ""
#, python-format
msgid "%s hook is invalid (import of \"%s\" failed)"
-msgstr "плохой хук %s (не удалоÑÑŒ импортировать \"%s\")"
+msgstr ""
#, python-format
msgid "%s hook is invalid (\"%s\" is not defined)"
-msgstr "плохой хук %s (\"%s\" не определен)"
+msgstr ""
#, python-format
msgid "%s hook is invalid (\"%s\" is not callable)"
-msgstr "плохой хук %s (Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ \"%s\" невызываема)"
+msgstr ""
#, python-format
msgid "error: %s hook failed: %s\n"
-msgstr "ошибка: хук %s завершилÑÑ Ð½ÐµÑƒÐ´Ð°Ñ‡ÐµÐ¹: %s\n"
+msgstr ""
#, python-format
msgid "error: %s hook raised an exception: %s\n"
-msgstr "ошибка: иÑключение в хуке %s: %s\n"
+msgstr ""
#, python-format
msgid "%s hook failed"
-msgstr "хук %s завершилÑÑ Ð½ÐµÑƒÐ´Ð°Ñ‡ÐµÐ¹"
+msgstr ""
#, python-format
msgid "warning: %s hook failed\n"
-msgstr "внимание: хук %s завершилÑÑ Ð½ÐµÑƒÐ´Ð°Ñ‡ÐµÐ¹\n"
+msgstr ""
#, python-format
msgid "running hook %s: %s\n"
-msgstr "запуÑк хука %s: %s\n"
+msgstr ""
-# maybe description should be in braÑkets?
#, python-format
msgid "%s hook %s"
-msgstr "хук %s %s"
+msgstr ""
#, python-format
msgid "warning: %s hook %s\n"
-msgstr "внимание: хук %s %s\n"
-
-#, python-format
-msgid "loading %s hook failed:\n"
-msgstr "не удалоÑÑŒ загрузить хука %s:\n"
+msgstr ""
msgid "kb"
-msgstr "Кб"
+msgstr ""
#, python-format
msgid "ignoring invalid [auth] key '%s'\n"
-msgstr "игнорируетÑÑ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¹ ключ Ñекции [auth] '%s'\n"
+msgstr ""
msgid "connection ended unexpectedly"
-msgstr "Ñоединение неожиданно прервано"
+msgstr ""
#, python-format
msgid "unsupported URL component: \"%s\""
-msgstr "неподдерживаемый Ñлемент URL: \"%s\""
+msgstr ""
msgid "operation not supported over http"
-msgstr "Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ поддерживаетÑÑ Ð¿Ð¾ http"
+msgstr ""
msgid "authorization failed"
-msgstr "ошибка авторизации"
+msgstr ""
msgid "http error, possibly caused by proxy setting"
-msgstr "ошибка http, возможно Ð²Ñ‹Ð·Ð²Ð°Ð½Ð½Ð°Ñ Ð½Ð°Ñтройками прокÑи"
+msgstr ""
#, python-format
msgid "real URL is %s\n"
-msgstr "реальный URL: %s\n"
+msgstr ""
#, python-format
msgid ""
@@ -21952,501 +16909,414 @@ msgid ""
"%s\n"
"---%%<---\n"
msgstr ""
-"'%s не похож на хранилище Mercurial:\n"
-"---%%<--- (%s)\n"
-"%s\n"
-"---%%<---\n"
#, python-format
msgid "'%s' sent a broken Content-Type header (%s)"
-msgstr "'%s' поÑлал неверный заголовок Content-Type (%s)"
+msgstr ""
#, python-format
msgid "'%s' uses newer protocol %s"
-msgstr "'%s' иÑпользует более новый протокол %s"
+msgstr ""
+
+msgid "unexpected response:"
+msgstr ""
#, python-format
msgid "push failed: %s"
-msgstr "ошибка при проталкивании: %s"
+msgstr ""
msgid "Python support for SSL and HTTPS is not installed"
-msgstr "Поддержка SSL и HTTPS Ð´Ð»Ñ Python не уÑтановлена"
+msgstr ""
msgid "cannot create new http repository"
-msgstr "не удаетÑÑ Ñоздать новое хранилище по http"
+msgstr ""
#, python-format
msgid "ignoring invalid syntax '%s'"
-msgstr "игнорируетÑÑ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¹ ÑинтакÑÐ¸Ñ '%s'"
+msgstr ""
#, python-format
msgid "skipping unreadable ignore file '%s': %s\n"
-msgstr "пропуÑкаетÑÑ Ð½ÐµÑ‡Ð¸Ñ‚Ð°ÐµÐ¼Ñ‹Ð¹ файл Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ '%s': %s\n"
+msgstr ""
#, python-format
msgid "repository %s not found"
-msgstr "хранилище %s не найдено"
+msgstr "репозиторий %s не найден"
#, python-format
msgid "repository %s already exists"
-msgstr "хранилище %s уже ÑущеÑтвует"
+msgstr ""
#, python-format
msgid ".hg/sharedpath points to nonexistent directory %s"
-msgstr ".hg/sharedpath указывает на неÑущеÑтвующий каталог %s"
+msgstr ""
#, python-format
msgid "warning: ignoring unknown working parent %s!\n"
-msgstr "внимание: игнорируем неизвеÑтного Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ %s рабочей копии!\n"
+msgstr ""
#, python-format
msgid "%r cannot be used in a tag name"
-msgstr "%r Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать в имени метки"
+msgstr ""
#, python-format
msgid "warning: tag %s conflicts with existing branch name\n"
-msgstr "внимание: метка %s конфликтует Ñ ÑущеÑтвующим именем ветки\n"
+msgstr ""
msgid "working copy of .hgtags is changed (please commit .hgtags manually)"
msgstr ""
-"Ñ€Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ .hgtags изменена (пожалуйÑта зафикÑируйте .hgtags вручную)"
+
+#, python-format
+msgid "working directory has unknown parent '%s'!"
+msgstr ""
+
+#, python-format
+msgid "unknown revision '%s'"
+msgstr ""
msgid "abandoned transaction found - run hg recover"
-msgstr "обнаружена Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸ÑŽ - воÑпользуйтеÑÑŒ hg recover"
+msgstr ""
msgid "rolling back interrupted transaction\n"
-msgstr "откатываем прерванную транзакцию\n"
+msgstr ""
msgid "no interrupted transaction available\n"
-msgstr "нет прерванной транзакции\n"
-
-msgid "no rollback information available\n"
-msgstr "нет доÑтупной информации Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ°Ñ‚Ð°\n"
+msgstr ""
#, python-format
msgid "repository tip rolled back to revision %s (undo %s: %s)\n"
-msgstr "оконечной ревизией Ñнова Ñтала Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s (отмена %s: %s)\n"
+msgstr ""
#, python-format
msgid "repository tip rolled back to revision %s (undo %s)\n"
-msgstr "оконечной ревизией Ñнова Ñтала Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s (отмена %s)\n"
+msgstr ""
msgid "rolling back unknown transaction\n"
-msgstr "откатываем неизвеÑтную транзакцию\n"
-
-msgid "rollback of last commit while not checked out may lose data"
msgstr ""
-"откат поÑледней фикÑации без извлеченной ревизии может\n"
-"привеÑти к потере данных"
-
-msgid "use -f to force"
-msgstr "-f - выполнить принудительно"
#, python-format
-msgid "named branch could not be reset: current branch is still '%s'\n"
-msgstr "Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ° не может быть Ñброшена: Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ‚ÐºÐ° вÑе еще '%s'\n"
+msgid "named branch could not be reset, current branch is still: %s\n"
+msgstr ""
#, python-format
msgid "working directory now based on revisions %d and %d\n"
-msgstr "рабочий каталог теперь оÑнован на ревизиÑÑ… %d и %d\n"
+msgstr ""
#, python-format
msgid "working directory now based on revision %d\n"
-msgstr "рабочий каталог теперь оÑнован на ревизии %d\n"
+msgstr ""
+
+msgid "no rollback information available\n"
+msgstr ""
#, python-format
msgid "waiting for lock on %s held by %r\n"
-msgstr "ожидаем ÑнÑÑ‚Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ %s удерживаемой %r\n"
+msgstr ""
#, python-format
msgid "repository %s"
-msgstr "хранилище %s"
+msgstr ""
#, python-format
msgid "working directory of %s"
-msgstr "рабочий каталог %s"
+msgstr ""
#, python-format
msgid "warning: can't find ancestor for '%s' copied from '%s'!\n"
-msgstr "внимание: не удаетÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ предка '%s' Ñкопированного из '%s'!\n"
+msgstr ""
msgid "cannot partially commit a merge (do not specify files or patterns)"
msgstr ""
-"Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ñ„Ð¸ÐºÑировать ÑлиÑние чаÑтично (не указывайте файлы или шаблоны)"
-
-# NOT-SURE
-#, python-format
-msgid "commit with new subrepo %s excluded"
-msgstr "фикÑÐ°Ñ†Ð¸Ñ Ñ Ð¸Ñключенным новым подхранилищем %s"
-
-msgid "use --subrepos for recursive commit"
-msgstr "иÑпользуйте --subrepos чтобы фикÑировать рекурÑивно"
msgid "can't commit subrepos without .hgsub"
-msgstr "невозможно зафикÑировать подхранилища без .hgsub"
+msgstr ""
+
+#, python-format
+msgid "uncommitted changes in subrepo %s"
+msgstr ""
msgid "file not found!"
-msgstr "файл не найден!"
+msgstr ""
msgid "no match under directory!"
-msgstr "нет Ñовпадений в каталоге!"
+msgstr ""
msgid "file not tracked!"
-msgstr "файл не отÑлеживаетÑÑ!"
-
-msgid "cannot commit merge with missing files"
-msgstr "невозможно зафикÑировать ÑлиÑние Ñ Ð½ÐµÐ´Ð¾Ñтающими файлами"
+msgstr ""
msgid "unresolved merge conflicts (see hg help resolve)"
-msgstr "неразрешенные конфликты ÑлиÑÐ½Ð¸Ñ (Ñм. hg help resolve)"
+msgstr ""
#, python-format
msgid "committing subrepository %s\n"
-msgstr "фикÑÐ°Ñ†Ð¸Ñ Ð¿Ð¾Ð´Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð° %s\n"
+msgstr ""
#, python-format
msgid "note: commit message saved in %s\n"
-msgstr "Ñообщение фикÑации Ñохранено в %s\n"
+msgstr ""
#, python-format
msgid "trouble committing %s!\n"
-msgstr "проблемы при фикÑации %s!\n"
+msgstr ""
msgid "requesting all changes\n"
-msgstr "запрашиваем вÑе изменениÑ\n"
+msgstr ""
msgid ""
"partial pull cannot be done because other repository doesn't support "
"changegroupsubset."
msgstr ""
-"чаÑтичное затÑгивание не может быть произведено, Ñ‚.к. второе хранилище\n"
-"не поддерживает подмножеÑтва групп изменений (changegroupsubset)"
-
-msgid "destination does not support push"
-msgstr "хранилище Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ðµ поддерживает push"
-
-#, python-format
-msgid "push includes an obsolete changeset: %s!"
-msgstr "push включает уÑтаревшую ревизию: %s!"
-
-#, python-format
-msgid "push includes an unstable changeset: %s!"
-msgstr "push включает неÑтабильную ревизию: %s!"
-
-# CHECK ME NOT-SURE
-#, python-format
-msgid "updating %s to public failed!\n"
-msgstr "обновление %s до публичной фазы завершилаÑÑŒ неудачей!\n"
-
-msgid "failed to push some obsolete markers!\n"
-msgstr "не удалоÑÑŒ протолкнуть некоторые маркеры уÑтаревших ревизий!\n"
#, python-format
msgid "%d changesets found\n"
-msgstr "найдено %d наборов изменений\n"
+msgstr ""
msgid "bundling"
-msgstr "укомплектование (bundling)"
+msgstr ""
msgid "manifests"
-msgstr "манифеÑÑ‚Ñ‹"
+msgstr ""
#, python-format
msgid "empty or missing revlog for %s"
-msgstr "пуÑтой или отÑутÑтвующий revlog Ð´Ð»Ñ %s"
+msgstr ""
msgid "adding changesets\n"
-msgstr "добавлÑем наборы изменений\n"
+msgstr ""
-# форма такаÑ?
msgid "chunks"
-msgstr "куÑков"
+msgstr ""
msgid "received changelog group is empty"
-msgstr "Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° изменений пуÑта"
+msgstr ""
msgid "adding manifests\n"
-msgstr "добавлÑем манифеÑÑ‚Ñ‹\n"
+msgstr ""
msgid "adding file changes\n"
-msgstr "добавлÑем Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файлы\n"
+msgstr ""
-# NOT-SURE
msgid "received file revlog group is empty"
-msgstr "Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° revlog файла пуÑта"
+msgstr ""
-# NOT-SURE
#, python-format
msgid "missing file data for %s:%s - run hg verify"
-msgstr "отÑутÑтвуют данные файлов Ð´Ð»Ñ %s:%s - выполните hg verify"
+msgstr ""
#, python-format
msgid " (%+d heads)"
-msgstr " (%+d голов)"
+msgstr ""
#, python-format
msgid "added %d changesets with %d changes to %d files%s\n"
-msgstr "добавлено %d наборов изменений Ñ %d изменениÑми в %d файлах%s\n"
+msgstr ""
-msgid "unexpected response from remote server:"
-msgstr "неожиданный ответ от отдалённого Ñервера:"
+msgid "Unexpected response from remote server:"
+msgstr ""
msgid "operation forbidden by server"
-msgstr "Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð·Ð°Ð¿Ñ€ÐµÑ‰ÐµÐ½Ð° на Ñервере"
+msgstr ""
msgid "locking the remote repository failed"
-msgstr "не удалоÑÑŒ заблокировать отдаленное хранилище"
+msgstr ""
msgid "the server sent an unknown error code"
-msgstr "Ñервер передал неизвеÑтный код ошибки"
+msgstr ""
-# NOT-SURE
msgid "streaming all changes\n"
-msgstr "передаём вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² поток\n"
+msgstr ""
#, python-format
msgid "%d files to transfer, %s of data\n"
-msgstr "%d файлов Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸, %s данных\n"
-
-msgid "clone"
-msgstr "клонирование"
+msgstr ""
#, python-format
msgid "transferred %s in %.1f seconds (%s/sec)\n"
-msgstr "передано %s за %.1f Ñекунд (%s/c)\n"
+msgstr ""
msgid "can't use TLS: Python SSL support not installed"
-msgstr "не удаетÑÑ Ð¸Ñпользовать TLS: поддержка SSL Ð´Ð»Ñ Python не уÑтановлена"
+msgstr ""
msgid "(using smtps)\n"
-msgstr "(иÑпользуетÑÑ smtps)\n"
+msgstr ""
msgid "smtp.host not configured - cannot send mail"
-msgstr "smtp.host не наÑтроен - невозможно отправить почту"
+msgstr ""
#, python-format
msgid "sending mail: smtp host %s, port %s\n"
-msgstr "отправка почты: smtp хоcт %s, порт %s\n"
+msgstr ""
msgid "(using starttls)\n"
-msgstr "(иÑпользуетÑÑ starttls)\n"
+msgstr ""
#, python-format
msgid "(authenticating to mail server as %s)\n"
-msgstr "(Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð½Ð° почтовом Ñервере как %s)\n"
+msgstr ""
#, python-format
msgid "sending mail: %s\n"
-msgstr "отправка почты: %s\n"
+msgstr ""
msgid "smtp specified as email transport, but no smtp host configured"
-msgstr "smtp задан в качеÑтве транÑпорта email, но smtp-хоÑÑ‚ не наÑтроен"
+msgstr ""
#, python-format
msgid "%r specified as email transport, but not in PATH"
-msgstr "%r задан в качеÑтве транÑпорта email, но он не доÑтупен в PATH"
+msgstr ""
#, python-format
msgid "ignoring invalid sendcharset: %s\n"
-msgstr "игнорируем неверную кодировку иÑходÑщих пиÑем: %s\n"
+msgstr ""
#, python-format
msgid "invalid email address: %s"
-msgstr "неверный Ð°Ð´Ñ€ÐµÑ email: %s"
+msgstr ""
#, python-format
msgid "invalid local address: %s"
-msgstr "неверный локальный адреÑ: %s"
+msgstr ""
#, python-format
msgid "'\\n' and '\\r' disallowed in filenames: %r"
-msgstr "'\\n' и '\\r' недопуÑтимы в именах файлов: %r"
+msgstr ""
#, python-format
msgid "failed to remove %s from manifest"
-msgstr "не удалоÑÑŒ удалить %s из манифеÑта"
+msgstr ""
#, python-format
msgid "invalid pattern (%s): %s"
-msgstr "недопуÑтимый шаблон (%s): %s"
+msgstr ""
msgid "invalid pattern"
-msgstr "недопуÑтимый шаблон"
+msgstr ""
-# здеÑÑŒ file list — ÑпиÑок шаблонов из listfile, Ñм. hg help patterns
#, python-format
msgid "unable to read file list (%s)"
-msgstr "не удаетÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ файл-ÑпиÑок (%s)"
+msgstr ""
#, python-format
msgid "diff context lines count must be an integer, not %r"
msgstr ""
-"количеÑтво Ñтрок контекÑта Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ð¹ должно быть целым чиÑлом, а не %r"
#, python-format
-msgid "%s: untracked file differs\n"
-msgstr "%s: неотÑлеживаемый файл различаетÑÑ\n"
-
msgid ""
-"untracked files in working directory differ from files in requested revision"
+"untracked file in working directory differs from file in requested revision: "
+"'%s'"
msgstr ""
-"неотÑлеживаемые файлы в рабочем каталоге отличаютÑÑ Ð¾Ñ‚ файлов в "
-"запрашиваемой ревизии"
-# ÑмыÑл: проверка имён файлов в ÑиÑтемах без учёта региÑтра (Windows)
#, python-format
msgid "case-folding collision between %s and %s"
-msgstr "ÐºÐ¾Ð»Ð»Ð¸Ð·Ð¸Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñных/Ñтрочных букв между %s и %s"
+msgstr ""
-# PROMPT
#, python-format
msgid ""
" conflicting flags for %s\n"
"(n)one, e(x)ec or sym(l)ink?"
msgstr ""
-" конфликт флагов Ð´Ð»Ñ %s\n"
-"нет:(n)one, иÑполнимый:e(x)ec или ÑимволичеÑÐºÐ°Ñ ÑÑылка: sym(l)ink?"
-# PROMPT
msgid "&None"
-msgstr "&None - Ðет"
+msgstr ""
-# PROMPT
msgid "E&xec"
-msgstr "E&xec - ИÑполнимый"
+msgstr ""
-# PROMPT
msgid "Sym&link"
-msgstr "Sym&link - СимволичеÑÐºÐ°Ñ ÑÑылка"
+msgstr ""
msgid "resolving manifests\n"
-msgstr "разрешаем манифеÑÑ‚Ñ‹\n"
+msgstr ""
-# PROMPT
#, python-format
msgid ""
" local changed %s which remote deleted\n"
"use (c)hanged version or (d)elete?"
msgstr ""
-" локально файл %s изменен, на отдаленной машине удален\n"
-"иÑпользовать измененную:(c)hanged верÑию или удалить:(d)elete?"
-# PROMPT
msgid "&Changed"
-msgstr "&Changed - Измененную"
+msgstr ""
-# PROMPT
msgid "&Delete"
-msgstr "&Delete - Удалить"
+msgstr ""
-# PROMPT
#, python-format
msgid ""
"remote changed %s which local deleted\n"
"use (c)hanged version or leave (d)eleted?"
msgstr ""
-" на отдаленной машине файл %s изменен, локально удален\n"
-"иÑпользовать измененную:(c)hanged верÑию или оÑтавить удаленным:(d)eleted?"
-# PROMPT
msgid "&Deleted"
-msgstr "&Deleted - ОÑтавить удаленным"
+msgstr ""
msgid "updating"
-msgstr "обновление"
+msgstr ""
#, python-format
msgid "update failed to remove %s: %s!\n"
-msgstr "не удалоÑÑŒ удалить %s при обновлении: %s!\n"
+msgstr ""
#, python-format
msgid "getting %s\n"
-msgstr "получаем %s\n"
+msgstr ""
#, python-format
msgid "getting %s to %s\n"
-msgstr "получаем %s в %s\n"
+msgstr ""
#, python-format
msgid "note: possible conflict - %s was renamed multiple times to:\n"
-msgstr "внимание: возможен конфликт - %s был переименован неÑколько раз в:\n"
-
-#, python-format
-msgid "note: possible conflict - %s was deleted and renamed to:\n"
-msgstr "внимание: возможен конфликт - %s был удален и переименован в:\n"
+msgstr ""
msgid "merging with a working directory ancestor has no effect"
-msgstr "ÑлиÑние Ñ Ð¿Ñ€ÐµÐ´ÐºÐ¾Ð¼ рабочего каталога не имеет ÑмыÑла"
+msgstr ""
-msgid "use 'hg update' or check 'hg heads'"
-msgstr "иÑпользуйте 'hg update' или проверьте 'hg heads'"
+msgid "nothing to merge (use 'hg update' or check 'hg heads')"
+msgstr ""
-msgid "use 'hg status' to list changes"
-msgstr "иÑпользуйте 'hg status' чтобы поÑмотреть изменениÑ"
+msgid "outstanding uncommitted changes (use 'hg status' to list changes)"
+msgstr ""
#, python-format
msgid "outstanding uncommitted changes in subrepository '%s'"
-msgstr "незафикÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² подхранилище %s"
+msgstr ""
msgid "crosses branches (merge branches or use --clean to discard changes)"
msgstr ""
-"переÑекающиеÑÑ Ð²ÐµÑ‚ÐºÐ¸ (Ñлейте ветки или иÑпользуйте --clean чтобы\n"
-"отброÑить изменениÑ)"
-# BUG
msgid "crosses branches (merge branches or update --check to force update)"
msgstr ""
-"переÑекающиеÑÑ Ð²ÐµÑ‚ÐºÐ¸ (Ñлейте ветки или иÑпользуйте --check чтобы\n"
-"обновитьÑÑ Ð¿Ñ€Ð¸Ð½ÑƒÐ´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾)"
msgid "Attention:"
-msgstr "Внимание:"
+msgstr ""
msgid "Caution:"
-msgstr "ПредоÑтережение:"
+msgstr ""
msgid "!Danger!"
-msgstr "!ОпаÑно!"
+msgstr ""
msgid "Error:"
-msgstr "Ошибка:"
+msgstr ""
msgid "Hint:"
-msgstr "ПодÑказка:"
+msgstr ""
msgid "Important:"
-msgstr "Важно:"
+msgstr ""
msgid "Note:"
msgstr "Примечание:"
msgid "Tip:"
-msgstr "ПодÑказка:"
+msgstr ""
msgid "Warning!"
-msgstr "Внимание!"
-
-#, python-format
-msgid "parsing obsolete marker: unknown version %r"
-msgstr "ошибка разбора маркера уÑтаревшей ревизии: неизвеÑÑ‚Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %r"
-
-#, python-format
-msgid ""
-"parsing obsolete marker: metadata is too short, %d bytes expected, got %d"
msgstr ""
-"ошибка разбора маркера уÑтаревшей ревизии: Ñлишком Ð¼Ð°Ð»Ð°Ñ Ð´Ð»Ð¸Ð½Ð° метаданных,\n"
-"ожидалоÑÑŒ %d байт, получено %d"
-
-#, python-format
-msgid "unknown key: %r"
-msgstr "неизвеÑтный ключ: %r"
-
-msgid "unexpected old value"
-msgstr "неожиданное Ñтарое значение"
#, python-format
msgid "unexpected token: %s"
-msgstr "неожиданный Ñимвол (token): %s"
+msgstr ""
#, python-format
msgid "not a prefix: %s"
@@ -22459,16 +17329,14 @@ msgstr "не инфикÑный оператор: %s"
#, python-format
msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n"
msgstr ""
-"%d из %d лоÑкутов (hunks) ÐЕ ÐÐЛОЖИЛИСЬ -- ÑохранÑем неналоженные\n"
-"лоÑкуты в файл %s\n"
#, python-format
msgid "cannot patch %s: file is not tracked"
-msgstr "не могу пропатчить %s: файл не отÑлеживаетÑÑ"
+msgstr "не могу пропатчить %s: файл не контролируетÑÑ"
#, python-format
msgid "unable to find '%s' for patching\n"
-msgstr "не удаетÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ '%s' Ð´Ð»Ñ Ð½Ð°Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ‚Ñ‡Ð°\n"
+msgstr ""
#, python-format
msgid "patching file %s\n"
@@ -22476,11 +17344,11 @@ msgstr "применÑетÑÑ Ð¿Ð°Ñ‚Ñ‡ к файлу %s\n"
#, python-format
msgid "bad hunk #%d %s (%d %d %d %d)"
-msgstr "плохой лоÑкут (hunk) #%d %s (%d %d %d %d)"
+msgstr "Ð¿Ð»Ð¾Ñ…Ð°Ñ Ð¿Ð¾Ð»Ð¾Ñа #%d %s (%d %d %d %d)"
#, python-format
msgid "cannot create %s: destination already exists\n"
-msgstr "не могу Ñоздать %s: файл уже ÑущеÑтвует\n"
+msgstr "не могу Ñоздаеть %s: файл уже ÑущеÑтвует\n"
#, python-format
msgid "file %s already exists\n"
@@ -22489,274 +17357,196 @@ msgstr "файл %s уже ÑущеÑтвует\n"
#, python-format
msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n"
msgstr ""
-"ЛоÑкут (hunk) #%d был уÑпешно наложен в позиции %d Ñ Ð¿Ð¾Ð³Ñ€ÐµÑˆÐ½Ð¾Ñтью %d\n"
-"(Ñмещение %d Ñтрок).\n"
+"ПолоÑа #%d была уÑпешной Ð´Ð»Ñ %d Ñ Ð¿Ð¾Ð³Ñ€ÐµÑˆÐ½Ð¾Ñтью %d (Ñмещение %d Ñтрок).\n"
#, python-format
msgid "Hunk #%d succeeded at %d (offset %d lines).\n"
-msgstr "ЛоÑкут (hunk) #%d уÑпешно наложен в позиции %d (Ñмещение %d Ñтрок).\n"
+msgstr "ПолоÑа #%d была уÑпешной Ð´Ð»Ñ %d (Ñмещение %d Ñтрок).\n"
#, python-format
msgid "Hunk #%d FAILED at %d\n"
-msgstr "ЛоÑкут (hunk) #%d ÐЕ ÐÐЛОЖЕРв позиции %d\n"
+msgstr "ПолоÑа #%d ÐЕУДÐЧÐÐ Ð´Ð»Ñ %d\n"
#, python-format
msgid "bad hunk #%d"
-msgstr "плохой лоÑкут (hunk) #%d"
+msgstr "Ð¿Ð»Ð¾Ñ…Ð°Ñ Ð¿Ð¾Ð»Ð¾Ñа #%d"
#, python-format
msgid "bad hunk #%d old text line %d"
msgstr "Ð¿Ð»Ð¾Ñ…Ð°Ñ Ð¿Ð¾Ð»Ð¾Ñа #%d ÑÑ‚Ð°Ñ€Ð°Ñ Ñтрока текÑта %d"
-#, python-format
-msgid "could not extract \"%s\" binary data"
-msgstr "невозможно извлечь бинарные данные \"%s\""
-
-#, python-format
-msgid "could not decode \"%s\" binary patch: %s"
-msgstr "невозможно декодировать двоичный патч \"%s\": %s"
+msgid "could not extract binary patch"
+msgstr "невозможно извлечь двоичную заплатку"
#, python-format
-msgid "\"%s\" length is %d bytes, should be %d"
-msgstr "\"%s\" имеет размер %d байт, а должен %d"
+msgid "binary patch is %d bytes, not %d"
+msgstr "двоичный патч иммеет размер %d байтов, а не %d"
#, python-format
msgid "unable to strip away %d of %d dirs from %s"
-msgstr "не удаетÑÑ Ð²Ñ‹Ñ€ÐµÐ·Ð°Ñ‚ÑŒ %d из %d каталогов из %s"
+msgstr ""
msgid "undefined source and destination files"
-msgstr "не определены иÑходный и конечный файлы"
-
-#, python-format
-msgid "failed to synchronize metadata for \"%s\""
-msgstr "не удалоÑÑŒ Ñинхронизировать метаданные Ð´Ð»Ñ \"%s\""
+msgstr ""
#, python-format
msgid "cannot create %s: destination already exists"
-msgstr "не удаетÑÑ Ñоздать %s: назначение уже ÑущеÑтвует"
+msgstr ""
#, python-format
msgid "unsupported parser state: %s"
-msgstr "неподдерживаемое ÑоÑтоÑние парÑера: %s"
+msgstr ""
#, python-format
msgid "patch command failed: %s"
-msgstr "команда patch завершилаÑÑŒ неудачей: %s"
+msgstr ""
#, python-format
msgid "unsupported line endings type: %s"
-msgstr "неподдерживаемый тип перевода Ñтроки: %s"
+msgstr ""
msgid "patch failed to apply"
-msgstr "не удалоÑÑŒ наложить патч"
-
-#, python-format
-msgid "cannot %s; remote repository does not support the %r capability"
-msgstr "%s не возможно; отдаленное хранилище не поддерживает возможноÑÑ‚ÑŒ %r"
-
-msgid "cannot change null revision phase"
-msgstr "невозможно изменить фазу пуÑтой ревизии"
-
-#, python-format
-msgid "ignoring inconsistent public root from remote: %s\n"
-msgstr "игнорируем неподходÑщий публичный корень от отдалённого Ñервера: %s\n"
-
-#, python-format
-msgid "ignoring unexpected root from remote: %i %s\n"
-msgstr "игнорируем неожиданный корень от отдалённого Ñервера: %i %s\n"
-
-#, python-format
-msgid "phases.new-commit: not a valid phase name ('%s')"
-msgstr "phases.new-commit: недопуÑтимое Ð¸Ð¼Ñ Ñ„Ð°Ð·Ñ‹ ('%s')"
+msgstr ""
#, python-format
msgid "exited with status %d"
-msgstr "выход Ñ ÐºÐ¾Ð´Ð¾Ð¼ %d"
+msgstr ""
#, python-format
msgid "killed by signal %d"
-msgstr "завершен получением Ñигнала %d"
+msgstr ""
#, python-format
msgid "saved backup bundle to %s\n"
-msgstr "резервный комплект (bundle) Ñохранен в %s\n"
+msgstr ""
msgid "adding branch\n"
-msgstr "добавлÑетÑÑ Ð²ÐµÑ‚ÐºÐ°\n"
-
-#, python-format
-msgid "error removing %s: %s\n"
-msgstr "ошибка при удалении %s: %s\n"
+msgstr ""
#, python-format
msgid "strip failed, full bundle stored in '%s'\n"
-msgstr "strip не удалÑÑ, полный комплект (bundle) Ñохранен в '%s'\n"
+msgstr ""
#, python-format
msgid "strip failed, partial bundle stored in '%s'\n"
-msgstr "strip не удалÑÑ, чаÑтичный комплект (bundle) Ñохранен в '%s'\n"
+msgstr ""
#, python-format
-msgid "revlog decompress error: %s"
-msgstr "ошибка раÑпаковки revlog: %s"
+msgid "cannot %s; remote repository does not support the %r capability"
+msgstr ""
#, python-format
msgid "unknown compression type %r"
-msgstr "неизвеÑтный тип ÑÐ¶Ð°Ñ‚Ð¸Ñ %r"
+msgstr ""
msgid "index entry flags need RevlogNG"
-msgstr "флаги запиÑи индекÑа требуют RevlogNG"
+msgstr ""
#, python-format
msgid "index %s unknown flags %#04x for format v0"
-msgstr "Ð¸Ð½Ð´ÐµÐºÑ %s Ñодержит неизвеÑтные флаги %#04x Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð° v0"
+msgstr ""
#, python-format
msgid "index %s unknown flags %#04x for revlogng"
-msgstr "Ð¸Ð½Ð´ÐµÐºÑ %s Ñодержит неизвеÑтные флаги %#04x Ð´Ð»Ñ revlogng"
+msgstr ""
#, python-format
msgid "index %s unknown format %d"
-msgstr "Ð¸Ð½Ð´ÐµÐºÑ %s имеет неизвеÑтный формат %d"
+msgstr ""
#, python-format
msgid "index %s is corrupted"
-msgstr "Ð¸Ð½Ð´ÐµÐºÑ %s поврежден"
+msgstr ""
msgid "no node"
-msgstr "нет узла"
+msgstr ""
msgid "ambiguous identifier"
-msgstr "неоднозначный идентификатор"
+msgstr ""
msgid "no match found"
-msgstr "Ñовпадений не найдено"
+msgstr ""
#, python-format
msgid "incompatible revision flag %x"
-msgstr "неÑовмеÑтимый флаг ревизии %x"
+msgstr ""
#, python-format
msgid "%s not found in the transaction"
-msgstr "%s не найден в транзакции"
+msgstr ""
msgid "consistency error in delta"
-msgstr "ошибка целоÑтноÑти в дельте"
+msgstr ""
msgid "unknown delta base"
-msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¾Ñнова (base) дельты"
+msgstr ""
-# {{{ revsets
#, python-format
msgid "can't use %s here"
-msgstr "невозможно иÑпользовать %s здеÑÑŒ"
+msgstr ""
msgid ""
"``adds(pattern)``\n"
" Changesets that add a file matching pattern."
msgstr ""
-"``adds(шаблон)``\n"
-" Ðаборы изменений, добавлÑющие файл, Ñовпадающий Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼."
#. i18n: "adds" is a keyword
msgid "adds requires a pattern"
-msgstr "adds требует шаблон"
+msgstr ""
msgid ""
"``ancestor(single, single)``\n"
" Greatest common ancestor of the two changesets."
msgstr ""
-"``ancestor(одна_ревизиÑ, одна_ревизиÑ)``\n"
-" Ðаибольший общий предок двух наборов изменений."
#. i18n: "ancestor" is a keyword
msgid "ancestor requires two arguments"
-msgstr "ancestor требует два аргумента"
+msgstr ""
#. i18n: "ancestor" is a keyword
msgid "ancestor arguments must be single revisions"
-msgstr "аргументы Ð´Ð»Ñ ancestor должны быть единичными ревизиÑми"
+msgstr ""
msgid ""
"``ancestors(set)``\n"
" Changesets that are ancestors of a changeset in set."
msgstr ""
-"``ancestors(множеÑтво)``\n"
-" Ðаборы изменений, ÑвлÑющиеÑÑ Ð¿Ñ€ÐµÐ´ÐºÐ°Ð¼Ð¸ какого-либо набора\n"
-" изменений из множеÑтва."
msgid "~ expects a number"
-msgstr "~ ожидает чиÑло"
+msgstr ""
msgid ""
"``author(string)``\n"
" Alias for ``user(string)``."
msgstr ""
-"``author(Ñтрока)``\n"
-" ПÑевдоним Ð´Ð»Ñ ``user(Ñтрока)``."
#. i18n: "author" is a keyword
msgid "author requires a string"
-msgstr "author требует Ñтроку"
-
-msgid ""
-"``bisect(string)``\n"
-" Changesets marked in the specified bisect status:"
msgstr ""
-"``bisect(Ñтрока)``\n"
-" Ðаборы изменений, отмеченные ÑоÑтоÑнием в ходе биÑекции:"
msgid ""
-" - ``good``, ``bad``, ``skip``: csets explicitly marked as good/bad/skip\n"
-" - ``goods``, ``bads`` : csets topologicaly good/bad\n"
-" - ``range`` : csets taking part in the bisection\n"
-" - ``pruned`` : csets that are goods, bads or skipped\n"
-" - ``untested`` : csets whose fate is yet unknown\n"
-" - ``ignored`` : csets ignored due to DAG topology\n"
-" - ``current`` : the cset currently being bisected"
+"``bisected(string)``\n"
+" Changesets marked in the specified bisect state (good, bad, skip)."
msgstr ""
-" - ``good``, ``bad``, ``skip``: Ñвно помеченные как хороший/плохой/"
-"пропущенный\n"
-" - ``goods``, ``bads`` : топологичеÑки хорошие/плохие\n"
-" - ``range`` : находÑщиеÑÑ Ð² рамках биÑекции\n"
-" - ``pruned`` : goods, bads или пропущенные\n"
-" - ``untested`` : те, Ñ‡ÑŒÑ Ñудьба ещё неизвеÑтна\n"
-" - ``ignored`` : игнорируемые ввиду топологии графа ревизий "
-"- ``current`` : обрабатываемый в данный момент"
-#. i18n: "bisect" is a keyword
msgid "bisect requires a string"
-msgstr "bisect требует Ñтроку"
+msgstr ""
-msgid ""
-"``bookmark([name])``\n"
-" The named bookmark or all bookmarks."
+msgid "invalid bisect state"
msgstr ""
-"``bookmark([имÑ])``\n"
-" Ð˜Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ° или вÑе закладки."
msgid ""
-" If `name` starts with `re:`, the remainder of the name is treated as\n"
-" a regular expression. To match a bookmark that actually starts with `re:"
-"`,\n"
-" use the prefix `literal:`."
+"``bookmark([name])``\n"
+" The named bookmark or all bookmarks."
msgstr ""
-" ЕÑли `имÑ` начинаетÑÑ Ñ `re:`, оÑÑ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ имени ÑчитаетÑÑ "
-"регулÑрным\n"
-" выражением. Чтобы найти закладку, Ð¸Ð¼Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ начинаетÑÑ Ñ Ñимволов\n"
-" `re:`, иÑпользуйте Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ `literal:`."
#. i18n: "bookmark" is a keyword
msgid "bookmark takes one or no arguments"
-msgstr "bookmark принимает один или ноль аргументов"
+msgstr ""
#. i18n: "bookmark" is a keyword
msgid "the argument to bookmark must be a string"
-msgstr "аргумент Ð´Ð»Ñ bookmark должен быть Ñтрокой"
-
-#, python-format
-msgid "no bookmarks exist that match '%s'"
-msgstr "нет закладок, Ñовпадающих Ñ '%s'"
+msgstr ""
msgid ""
"``branch(string or set)``\n"
@@ -22764,204 +17554,61 @@ msgid ""
"given\n"
" changesets."
msgstr ""
-"``branch(Ñтрока или множеÑтво)``\n"
-" Ð’Ñе наборы изменений, принадлежащие указанной ветке или веткам\n"
-" данных наборов изменений."
-
-msgid ""
-" If `string` starts with `re:`, the remainder of the name is treated as\n"
-" a regular expression. To match a branch that actually starts with `re:"
-"`,\n"
-" use the prefix `literal:`."
-msgstr ""
-" ЕÑли `Ñтрока` начинаетÑÑ Ñ `re:`, оÑÑ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ имени ÑчитаетÑÑ "
-"регулÑрным\n"
-" выражением. Чтобы найти ветку, Ð¸Ð¼Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ начинаетÑÑ Ñ Ñимволов\n"
-" `re:`, иÑпользуйте Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ `literal:`."
msgid ""
"``children(set)``\n"
" Child changesets of changesets in set."
msgstr ""
-"``children(множеÑтво)``\n"
-" Дочерние наборы изменений Ð´Ð»Ñ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð² изменений из множеÑтва."
msgid ""
"``closed()``\n"
" Changeset is closed."
msgstr ""
-"``closed()``\n"
-" Ðабор изменений, который закрыт."
#. i18n: "closed" is a keyword
msgid "closed takes no arguments"
-msgstr "closed не требует аргументов"
+msgstr ""
msgid ""
"``contains(pattern)``\n"
" Revision contains a file matching pattern. See :hg:`help patterns`\n"
" for information about file patterns."
msgstr ""
-"``contains(шаблон)``\n"
-" РевизиÑ, ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ñ‰Ð°Ñ Ñ„Ð°Ð¹Ð», Ñовпадающий Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼. См. Ñправку по "
-"шаблонам\n"
-" имён файлов: :hg:`help patterns`."
#. i18n: "contains" is a keyword
msgid "contains requires a pattern"
-msgstr "contains требует шаблон"
-
-msgid ""
-"``converted([id])``\n"
-" Changesets converted from the given identifier in the old repository if\n"
-" present, or all converted changesets if no identifier is specified."
msgstr ""
-"``converted([id])``\n"
-" Ðаборы изменений, Ñконвертированные из заданного идентификатора в "
-"Ñтаром\n"
-" хранилище, или вÑе Ñконвертированные наборы изменений, еÑли "
-"идентификатор\n"
-" не указан."
-
-#. i18n: "converted" is a keyword
-msgid "converted takes one or no arguments"
-msgstr "converted принимает ноль или один аргумент"
-
-#. i18n: "converted" is a keyword
-msgid "converted requires a revision"
-msgstr "converted требует ревизию"
msgid ""
"``date(interval)``\n"
" Changesets within the interval, see :hg:`help dates`."
msgstr ""
-"``date(интервал)``\n"
-" Ðаборы изменений в интервале дат, Ñм. :hg:`help dates`."
#. i18n: "date" is a keyword
msgid "date requires a string"
-msgstr "date требует Ñтроку"
+msgstr ""
msgid ""
"``desc(string)``\n"
" Search commit message for string. The match is case-insensitive."
msgstr ""
-"``desc(Ñтрока)``\n"
-" ИÑкать Ñтроку в ÑообщениÑÑ… фикÑации. РегиÑÑ‚Ñ€ букв не учитываетÑÑ."
#. i18n: "desc" is a keyword
msgid "desc requires a string"
-msgstr "desc требует Ñтроку"
+msgstr ""
msgid ""
"``descendants(set)``\n"
" Changesets which are descendants of changesets in set."
msgstr ""
-"``descendants(множеÑтво)``\n"
-" Ðаборы изменений, ÑвлÑющиеÑÑ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ°Ð¼Ð¸ наборов из множеÑтва."
-
-msgid ""
-"``destination([set])``\n"
-" Changesets that were created by a graft, transplant or rebase "
-"operation,\n"
-" with the given revisions specified as the source. Omitting the optional "
-"set\n"
-" is the same as passing all()."
-msgstr ""
-"``destination([множеÑтво])``\n"
-" Ðаборы изменений, Ñозданные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ операций graft, transplant или\n"
-" rebase c указанными ревизиÑми в качеÑтве иÑточников. ЕÑли множеÑтво\n"
-" ревизий опущено, вмеÑто него предполагаетÑÑ all()."
-
-msgid ""
-"``draft()``\n"
-" Changeset in draft phase."
-msgstr ""
-"``draft()``\n"
-" Ðабор изменений в черновой фазе."
-
-#. i18n: "draft" is a keyword
-msgid "draft takes no arguments"
-msgstr "draft не требует аргументов"
-
-msgid ""
-"``extinct()``\n"
-" Obsolete changesets with obsolete descendants only."
-msgstr ""
-"``extinct()``\n"
-" УÑтаревший набор изменений, имеющий только уÑтаревших потомков."
-
-#. i18n: "extinct" is a keyword
-msgid "extinct takes no arguments"
-msgstr "extinct не требует аргументов"
-
-msgid ""
-"``extra(label, [value])``\n"
-" Changesets with the given label in the extra metadata, with the given\n"
-" optional value."
-msgstr ""
-"``extra(label, [значение])``\n"
-" Ðаборы изменений Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ меткой в дополнительных метаданных и Ñ\n"
-" заданным значением (необÑзательным)."
-
-msgid ""
-" If `value` starts with `re:`, the remainder of the value is treated as\n"
-" a regular expression. To match a value that actually starts with `re:`,\n"
-" use the prefix `literal:`."
-msgstr ""
-" ЕÑли `значение` начинаетÑÑ Ñ `re:`, оÑÑ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÑчитаетÑÑ "
-"регулÑрным\n"
-" выражением. Чтобы найти значение, которое начинаетÑÑ Ñ Ñимволов\n"
-" `re:`, иÑпользуйте Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ `literal:`."
-
-#. i18n: "extra" is a keyword
-msgid "extra takes at least 1 and at most 2 arguments"
-msgstr "extra требует от одного до двух аргументов"
-
-#. i18n: "extra" is a keyword
-msgid "first argument to extra must be a string"
-msgstr "первый аргумент Ð´Ð»Ñ extra должен быть Ñтрокой"
-
-#. i18n: "extra" is a keyword
-msgid "second argument to extra must be a string"
-msgstr "второй аргумент Ð´Ð»Ñ extra должен быть Ñтрокой"
msgid ""
"``filelog(pattern)``\n"
" Changesets connected to the specified filelog."
msgstr ""
-"``filelog(шаблон)``\n"
-" Ðаборы изменений, ÑвÑзанные Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ объектом filelog."
-msgid ""
-" For performance reasons, ``filelog()`` does not show every changeset\n"
-" that affects the requested file(s). See :hg:`help log` for details. For\n"
-" a slower, more accurate result, use ``file()``."
-msgstr ""
-" Из Ñоображений производительноÑти, ``filelog()`` не показывает вÑе\n"
-" наборы изменений, затрагивающие указанный файл(Ñ‹). Подробнее Ñм.\n"
-" :hg:`help log`. Ð”Ð»Ñ Ð±Ð¾Ð»ÐµÐµ точного, но медленного результата, "
-"иÑпользуйте\n"
-" ``file()``."
-
-#. i18n: "filelog" is a keyword
msgid "filelog requires a pattern"
-msgstr "filelog требует шаблон"
-
-msgid ""
-"``first(set, [n])``\n"
-" An alias for limit()."
msgstr ""
-"``first(множеÑтво, [n])``\n"
-" ПÑевдоним Ð´Ð»Ñ limit()."
-
-#, python-format
-msgid "%s takes no arguments or a filename"
-msgstr "%s принимает либо ноль аргументов, либо Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°"
-
-#, python-format
-msgid "%s expected a filename"
-msgstr "%s ожидает Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°"
msgid ""
"``follow([file])``\n"
@@ -22969,17 +17616,23 @@ msgid ""
" If a filename is specified, the history of the given file is followed,\n"
" including copies."
msgstr ""
-"``follow([файл])``\n"
-" ПÑевдоним Ð´Ð»Ñ ``::.`` (предки первого Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ¹ копии).\n"
-" ЕÑли указано Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°, проÑлеживаетÑÑ Ð²ÑÑ Ð¸ÑÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ файла,\n"
-" Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ð¸."
+
+#. i18n: "follow" is a keyword
+msgid "follow takes no arguments or a filename"
+msgstr "follow не принимает аргументов или имени файла"
+
+#, fuzzy
+msgid "follow expected a filename"
+msgstr "пиÑать Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°"
+
+#. i18n: "follow" is a keyword
+msgid "follow takes no arguments"
+msgstr "follow не требует аргументов"
msgid ""
"``all()``\n"
" All changesets, the same as ``0:tip``."
msgstr ""
-"``all()``\n"
-" Ð’Ñе наборы изменений, то же, что ``0:tip``."
#. i18n: "all" is a keyword
msgid "all takes no arguments"
@@ -22991,445 +17644,207 @@ msgid ""
" to ensure special escape characters are handled correctly. Unlike\n"
" ``keyword(string)``, the match is case-sensitive."
msgstr ""
-"``grep(регулÑрное_выражение)``\n"
-" То же, что ``keyword(Ñтрока)``, но принимает регулÑрное выражение.\n"
-" ИÑпользуйте ``grep(r'...')``, чтобы включить в выражение Ñпециальные\n"
-" Ñимволы. Ð’ отличие от ``keyword(Ñтрока)``, региÑÑ‚Ñ€ букв учитываетÑÑ."
#. i18n: "grep" is a keyword
msgid "grep requires a string"
-msgstr "grep требует Ñтроку"
+msgstr ""
#, python-format
msgid "invalid match pattern: %s"
-msgstr "неверный шаблон поиÑка: %s"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles requires at least one argument"
-msgstr "_matchfiles требует Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один аргумент"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles requires string arguments"
-msgstr "_matchfiles требует Ñтроковых аргументов"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles expected at most one revision"
-msgstr "_matchfiles ожидает не более одной ревизии"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles expected at most one default mode"
-msgstr "_matchfiles ожидает не более одного режима ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию"
-
-#. i18n: "_matchfiles" is a keyword
-#, python-format
-msgid "invalid _matchfiles prefix: %s"
-msgstr "неверный Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð´Ð»Ñ _matchfiles: %s"
+msgstr ""
msgid ""
"``file(pattern)``\n"
" Changesets affecting files matched by pattern."
msgstr ""
-"``file(шаблон)``\n"
-" Ðаборы изменений, затрагивающие файлы, Ñовпадающие Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼."
-
-msgid ""
-" For a faster but less accurate result, consider using ``filelog()``\n"
-" instead."
-msgstr ""
-" Ð”Ð»Ñ Ð±Ð¾Ð»ÐµÐµ быÑтрого, но не Ñтоль точного результата, иÑпользуйте\n"
-" ``filelog()``."
#. i18n: "file" is a keyword
msgid "file requires a pattern"
-msgstr "file требует шаблон"
+msgstr ""
msgid ""
"``head()``\n"
" Changeset is a named branch head."
msgstr ""
-"``head()``\n"
-" Ðабор изменений, ÑвлÑющийÑÑ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð¹ именованной ветки."
#. i18n: "head" is a keyword
msgid "head takes no arguments"
-msgstr "head не требует аргументов"
+msgstr ""
msgid ""
"``heads(set)``\n"
" Members of set with no children in set."
msgstr ""
-"``heads(множеÑтво)``\n"
-" Элементы множеÑтва, у которых в Ñтом множеÑтве нет детей."
msgid ""
"``keyword(string)``\n"
" Search commit message, user name, and names of changed files for\n"
" string. The match is case-insensitive."
msgstr ""
-"``keyword(Ñтрока)``\n"
-" ИÑкать Ñтроку в ÑообщениÑÑ… фикÑации, именах пользователей, именах\n"
-" изменённых файлов. РегиÑÑ‚Ñ€ букв не учитываетÑÑ."
#. i18n: "keyword" is a keyword
msgid "keyword requires a string"
-msgstr "keyword требует Ñтроку"
+msgstr ""
msgid ""
-"``limit(set, [n])``\n"
-" First n members of set, defaulting to 1."
+"``limit(set, n)``\n"
+" First n members of set."
msgstr ""
-"``limit(множеÑтво, [n])``\n"
-" Первые n Ñлементов множеÑтва. По умолчанию 1 Ñлемент."
#. i18n: "limit" is a keyword
-msgid "limit requires one or two arguments"
-msgstr "limit требует один или два аргумента"
+msgid "limit requires two arguments"
+msgstr ""
#. i18n: "limit" is a keyword
msgid "limit requires a number"
-msgstr "limit требует чиÑло"
+msgstr ""
#. i18n: "limit" is a keyword
msgid "limit expects a number"
-msgstr "limit ожидает чиÑло"
+msgstr ""
msgid ""
-"``last(set, [n])``\n"
-" Last n members of set, defaulting to 1."
+"``last(set, n)``\n"
+" Last n members of set."
msgstr ""
-"``last(множеÑтво, [n])``\n"
-" ПоÑледние n Ñлементов множеÑтва. По умолчанию 1 Ñлемент."
#. i18n: "last" is a keyword
-msgid "last requires one or two arguments"
-msgstr "last требует один или два аргумента"
+msgid "last requires two arguments"
+msgstr ""
#. i18n: "last" is a keyword
msgid "last requires a number"
-msgstr "last требует чиÑло"
+msgstr ""
#. i18n: "last" is a keyword
msgid "last expects a number"
-msgstr "last ожидает чиÑло"
+msgstr ""
msgid ""
"``max(set)``\n"
" Changeset with highest revision number in set."
msgstr ""
-"``max(множеÑтво)``\n"
-" Ðабор изменений Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ номером ревизии из множеÑтва."
msgid ""
"``merge()``\n"
" Changeset is a merge changeset."
msgstr ""
-"``merge()``\n"
-" Ðабор изменений, ÑвлÑющийÑÑ Ñ€ÐµÐ²Ð¸Ð·Ð¸ÐµÐ¹ ÑлиÑниÑ."
#. i18n: "merge" is a keyword
msgid "merge takes no arguments"
-msgstr "merge не требует аргументов"
+msgstr ""
msgid ""
"``min(set)``\n"
" Changeset with lowest revision number in set."
msgstr ""
-"``min(множеÑтво)``\n"
-" Ðабор изменений Ñ Ð½Ð°Ð¸Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ номером ревизии из множеÑтва."
msgid ""
"``modifies(pattern)``\n"
" Changesets modifying files matched by pattern."
msgstr ""
-"``modifies(шаблон)``\n"
-" Ðаборы изменений, изменÑющие файлы, Ñовпадающие Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼."
#. i18n: "modifies" is a keyword
msgid "modifies requires a pattern"
-msgstr "modifies требует шаблон"
+msgstr ""
msgid ""
"``id(string)``\n"
" Revision non-ambiguously specified by the given hex string prefix."
msgstr ""
-"``id(Ñтрока)``\n"
-" РевизиÑ, однозначно Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸Ñ†Ð¸Ñ€ÑƒÐµÐ¼Ð°Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼ шеÑтнадцатеричным префикÑом."
#. i18n: "id" is a keyword
msgid "id requires one argument"
-msgstr "id требует один аргумент"
+msgstr ""
#. i18n: "id" is a keyword
msgid "id requires a string"
-msgstr "id требует Ñтроку"
-
-msgid ""
-"``obsolete()``\n"
-" Mutable changeset with a newer version."
msgstr ""
-"``obsolete()``\n"
-" ИзменÑемый набор изменений, имеющий более новую верÑию."
-
-#. i18n: "obsolete" is a keyword
-msgid "obsolete takes no arguments"
-msgstr "obsolete не требует аргументов"
-
-msgid ""
-"``origin([set])``\n"
-" Changesets that were specified as a source for the grafts, transplants "
-"or\n"
-" rebases that created the given revisions. Omitting the optional set is "
-"the\n"
-" same as passing all(). If a changeset created by these operations is "
-"itself\n"
-" specified as a source for one of these operations, only the source "
-"changeset\n"
-" for the first operation is selected."
-msgstr ""
-"``origin([множеÑтво])``\n"
-" Ðаборы изменений, которые были заданы в качеÑтве иÑходных Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¹\n"
-" graft, rebase или transplant, Ñоздавших указанные ревизии. ЕÑли "
-"множеÑтво\n"
-" не задано, предполагаетÑÑ all(). ЕÑли набор изменений, Ñозданный Ñтими\n"
-" операциÑми, указан в качеÑтве иÑточника Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð¹ из Ñтих операций,\n"
-" будет выбран только иÑходный набор изменений Ð´Ð»Ñ Ð¿ÐµÑ€Ð²Ð¾Ð¹ операции."
msgid ""
"``outgoing([path])``\n"
" Changesets not found in the specified destination repository, or the\n"
" default push location."
msgstr ""
-"``outgoing([путь])``\n"
-" Ðаборы изменений, отÑутÑтвующие в указанном целевом хранилище, или\n"
-" в меÑте Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð°Ð»ÐºÐ¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ умолчанию."
#. i18n: "outgoing" is a keyword
+#, fuzzy
msgid "outgoing takes one or no arguments"
-msgstr "outgoing требует либо один аргумент, либо ни одного"
+msgstr "unknown не требует аргументов"
#. i18n: "outgoing" is a keyword
msgid "outgoing requires a repository path"
-msgstr "outgoing требует путь к хранилищу"
+msgstr ""
msgid ""
"``p1([set])``\n"
" First parent of changesets in set, or the working directory."
msgstr ""
-"``p1([множеÑтво])``\n"
-" Первый родитель Ð´Ð»Ñ Ð²Ñех наборов изменений из множеÑтва\n"
-" или Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога."
msgid ""
"``p2([set])``\n"
" Second parent of changesets in set, or the working directory."
msgstr ""
-"``p2([множеÑтво])``\n"
-" Второй родитель Ð´Ð»Ñ Ð²Ñех наборов изменений из множеÑтва\n"
-" или Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога."
msgid ""
"``parents([set])``\n"
" The set of all parents for all changesets in set, or the working "
"directory."
msgstr ""
-"``parents([множеÑтво])``\n"
-" МножеÑтво вÑех родителей Ð´Ð»Ñ Ð²Ñех наборов изменений из множеÑтва\n"
-" или Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога."
msgid "^ expects a number 0, 1, or 2"
-msgstr "^ ожидает чиÑло 0, 1 или 2"
+msgstr ""
msgid ""
"``present(set)``\n"
" An empty set, if any revision in set isn't found; otherwise,\n"
" all revisions in set."
msgstr ""
-"``present(множеÑтво)``\n"
-" ПуÑтое множеÑтво, еÑли какаÑ-либо Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¸Ð· множеÑтва не найдена.\n"
-" Иначе вÑе ревизии из множеÑтва."
-
-msgid ""
-" If any of specified revisions is not present in the local repository,\n"
-" the query is normally aborted. But this predicate allows the query\n"
-" to continue even in such cases."
-msgstr ""
-" ЕÑли Ð»ÑŽÐ±Ð°Ñ Ð¸Ð· заданных ревизий отÑутÑтвует в локальном хранилище,\n"
-" выполнение запроÑа обычно прерываетÑÑ. Этот же предикат позволÑет\n"
-" продолжить выполнение запроÑа даже в таких ÑлучаÑÑ…."
-
-msgid ""
-"``public()``\n"
-" Changeset in public phase."
-msgstr ""
-"``public()``\n"
-" Ðабор изменений в публичной фазе."
-
-#. i18n: "public" is a keyword
-msgid "public takes no arguments"
-msgstr "public не требует аргументов"
-
-msgid ""
-"``remote([id [,path]])``\n"
-" Local revision that corresponds to the given identifier in a\n"
-" remote repository, if present. Here, the '.' identifier is a\n"
-" synonym for the current local branch."
-msgstr ""
-"``remote([id [,path]])``\n"
-" Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ, ÑоответÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¼Ñƒ идентификатору\n"
-" в отдалённом хранилище, еÑли Ñ‚Ð°ÐºÐ°Ñ ÑущеÑтвует. Идентификатор\n"
-" '.' ÑвлÑетÑÑ Ð·Ð´ÐµÑÑŒ Ñинонимом текущей локальной ветки."
-
-#. i18n: "remote" is a keyword
-msgid "remote takes one, two or no arguments"
-msgstr "remote принимает один, два или ноль аргументов"
-
-#. i18n: "remote" is a keyword
-msgid "remote requires a string id"
-msgstr "remote требует Ñтроковый идентификатор"
-
-#. i18n: "remote" is a keyword
-msgid "remote requires a repository path"
-msgstr "remote требует путь к хранилищу"
msgid ""
"``removes(pattern)``\n"
" Changesets which remove files matching pattern."
msgstr ""
-"``removes(шаблон)``\n"
-" Ðаборы изменений, удалÑющие файлы, Ñовпадающие Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼."
#. i18n: "removes" is a keyword
msgid "removes requires a pattern"
-msgstr "removes требует шаблон"
+msgstr ""
msgid ""
"``rev(number)``\n"
" Revision with the given numeric identifier."
msgstr ""
-"``rev(чиÑло)``\n"
-" Ð ÐµÐ²Ð¸Ð·Ð¸Ñ Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ чиÑловым идентификатором."
#. i18n: "rev" is a keyword
msgid "rev requires one argument"
-msgstr "rev требует один аргумент"
+msgstr ""
#. i18n: "rev" is a keyword
msgid "rev requires a number"
-msgstr "rev требует чиÑло"
+msgstr ""
#. i18n: "rev" is a keyword
msgid "rev expects a number"
-msgstr "rev ожидает чиÑло"
-
-msgid ""
-"``matching(revision [, field])``\n"
-" Changesets in which a given set of fields match the set of fields in "
-"the\n"
-" selected revision or set."
-msgstr ""
-"``matching(Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ [, поле])``\n"
-" Ðаборы изменений, в которых заданный набор полей Ñовпадает Ñ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð¼\n"
-" полей в выбранной ревизии или множеÑтве ревизий."
-
-msgid ""
-" To match more than one field pass the list of fields to match separated\n"
-" by spaces (e.g. ``author description``)."
-msgstr ""
-" Ð”Ð»Ñ Ð¿Ð¾Ð¸Ñка ревизий Ñ Ð½ÐµÑколькими Ñовпадающими полÑми, задайте ÑпиÑок "
-"имен,\n"
-" полей, разделенных пробелами (например, ``author description``)."
-
-msgid ""
-" Valid fields are most regular revision fields and some special fields."
msgstr ""
-" Ð’ качеÑтве полей могут выÑтупать \"обычные\" Ð¿Ð¾Ð»Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¹, а также\n"
-" неÑколько оÑобых полей."
-
-# NOT-SURE
-msgid ""
-" Regular revision fields are ``description``, ``author``, ``branch``,\n"
-" ``date``, ``files``, ``phase``, ``parents``, ``substate``, ``user``\n"
-" and ``diff``.\n"
-" Note that ``author`` and ``user`` are synonyms. ``diff`` refers to the\n"
-" contents of the revision. Two revisions matching their ``diff`` will\n"
-" also match their ``files``."
-msgstr ""
-" \"Обычные\" Ð¿Ð¾Ð»Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¹: ``description``, ``author``, ``branch``,\n"
-" ``date``, ``files``, ``phase``, ``parents``, ``substate``, ``user``\n"
-" и ``diff``.\n"
-" (опиÑание, автор, ветка, дата, файлы, фаза, родители, ÑоÑтоÑние, еще\n"
-" раз автор-пользователь, и различиÑ).\n"
-" Обратите внимание, что ``author`` and ``user`` ÑвлÑÑŽÑ‚ÑÑ Ñинонимами. "
-"``diff`` означает Ñодержимое ревизии. У двух ревизий, Ñовпадающих Ñ\n"
-" заданным ``diff``, Ñовпадут также и ``files``."
-
-msgid ""
-" Special fields are ``summary`` and ``metadata``:\n"
-" ``summary`` matches the first line of the description.\n"
-" ``metadata`` is equivalent to matching ``description user date``\n"
-" (i.e. it matches the main metadata fields)."
-msgstr ""
-" ОÑобыми полÑми ÑвлÑÑŽÑ‚ÑÑ ``summary`` and ``metadata``: ``summary``\n"
-" ÑоответÑтвует первой Ñтроке опиÑаниÑ. ``metadata`` Ñквивалентно\n"
-" Ñовпадению ``description user date`` (Ñ‚.е. Ñто оÑновные полÑ\n"
-" метаданных)."
-
-msgid ""
-" ``metadata`` is the default field which is used when no fields are\n"
-" specified. You can match more than one field at a time."
-msgstr ""
-" ``metadata`` иÑпользуетÑÑ Ð¿Ð¾ умолчанию, когда не указано ни одного\n"
-" полÑ. Можно иÑкать по неÑкольким полÑм за раз."
-
-#. i18n: "matching" is a keyword
-msgid "matching takes 1 or 2 arguments"
-msgstr "matching принимает один или два аргумента"
-
-#. i18n: "matching" is a keyword
-msgid "matching requires a string as its second argument"
-msgstr "matching требует Ñтроку в качеÑтве второго аргумента"
-
-#. i18n: "matching" is a keyword
-#, python-format
-msgid "unexpected field name passed to matching: %s"
-msgstr "неожиданное Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ, переданное matching: %s"
msgid ""
"``reverse(set)``\n"
" Reverse order of set."
msgstr ""
-"``reverse(множеÑтво)``\n"
-" Элементы множеÑтва в обратном порÑдке."
msgid ""
"``roots(set)``\n"
-" Changesets in set with no parent changeset in set."
+" Changesets with no parent changeset in set."
msgstr ""
-"``roots(множеÑтво)``\n"
-" Ðаборы изменений из множеÑтва, не имеющие Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ð²Ð¾ множеÑтве."
-
-msgid ""
-"``secret()``\n"
-" Changeset in secret phase."
-msgstr ""
-"``secret()``\n"
-" Ðабор изменений в Ñекретной фазе."
-
-#. i18n: "secret" is a keyword
-msgid "secret takes no arguments"
-msgstr "secret не требует аргументов"
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(множеÑтво[, [-]ключ...])``\n"
-" Сортировать множеÑтво по ключам. ПорÑдок по умолчанию — возраÑтающий,\n"
-" укажите ``-ключ``, чтобы отÑортировать в убывающем порÑдке."
msgid " The keys can be:"
-msgstr " Ð’ качеÑтве ключа можно указать:"
+msgstr ""
msgid ""
" - ``rev`` for the revision number,\n"
@@ -23438,465 +17853,331 @@ msgid ""
" - ``user`` for user name (``author`` can be used as an alias),\n"
" - ``date`` for the commit date"
msgstr ""
-" - ``rev`` Ð´Ð»Ñ Ñортировки по номеру ревизии,\n"
-" - ``branch`` по имени ветки,\n"
-" - ``desc`` по Ñообщению фикÑации,\n"
-" - ``user`` по имени Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (то же, что ``author``),\n"
-" - ``date`` по дате фикÑации"
#. i18n: "sort" is a keyword
msgid "sort requires one or two arguments"
-msgstr "sort требует один или два аргумента"
+msgstr ""
-#. i18n: "sort" is a keyword
msgid "sort spec must be a string"
-msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ sort должна быть Ñтрокой"
+msgstr ""
#, python-format
msgid "unknown sort key %r"
-msgstr "неизвеÑтный ключ Ñортировки %r"
-
-#, python-format
-msgid "invalid regular expression: %s"
-msgstr "недопуÑтимое регулÑрное выражение: %s"
+msgstr ""
msgid ""
"``tag([name])``\n"
" The specified tag by name, or all tagged revisions if no name is given."
msgstr ""
-"``tag([имÑ])``\n"
-" Ð˜Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° или вÑе помеченные ревизии, еÑли Ð¸Ð¼Ñ Ð½Ðµ указано."
#. i18n: "tag" is a keyword
msgid "tag takes one or no arguments"
-msgstr "tag не требует аргументов"
+msgstr ""
#. i18n: "tag" is a keyword
msgid "the argument to tag must be a string"
-msgstr "аргумент Ð´Ð»Ñ tag должен быть Ñтрокой"
-
-#, python-format
-msgid "no tags exist that match '%s'"
-msgstr "нет меток, Ñовпадающих Ñ '%s'"
-
-msgid ""
-"``unstable()``\n"
-" Non-obsolete changesets with obsolete ancestors."
msgstr ""
-"``unstable()``\n"
-" ÐеуÑтаревшие наборы изменений Ñ ÑƒÑтаревшими предками."
-
-#. i18n: "unstable" is a keyword
-msgid "unstable takes no arguments"
-msgstr "unstable не требует аргументов"
msgid ""
"``user(string)``\n"
" User name contains string. The match is case-insensitive."
msgstr ""
-"``user(Ñтрока)``\n"
-" Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñодержит Ñтроку. РегиÑÑ‚Ñ€ букв не учитываетÑÑ."
-
-msgid ""
-" If `string` starts with `re:`, the remainder of the string is treated "
-"as\n"
-" a regular expression. To match a user that actually contains `re:`, use\n"
-" the prefix `literal:`."
-msgstr ""
-" ЕÑли `Ñтрока` начинаетÑÑ Ñ `re:`, оÑÑ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ имени ÑчитаетÑÑ "
-"регулÑрным\n"
-" выражением. Чтобы найти пользователÑ, Ð¸Ð¼Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ начинаетÑÑ Ñ "
-"Ñимволов\n"
-" `re:`, иÑпользуйте Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ `literal:`."
msgid "can't negate that"
-msgstr "Ñто Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ñ‚ÑŒ"
+msgstr ""
msgid "not a symbol"
-msgstr "не ÑвлÑетÑÑ Ñимволом"
-
-#, python-format
-msgid "infinite expansion of revset alias \"%s\" detected"
-msgstr "обнаружена беÑÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ð¿Ð¾Ð´Ñтановка в revset-пÑевдониме \"%s\""
+msgstr ""
#, python-format
msgid "invalid number of arguments: %s"
msgstr "неверное количеÑтво аргументов: %s"
msgid "empty query"
-msgstr "пуÑтой запроÑ"
-
-#, python-format
-msgid "no changes found (ignored %d secret changesets)\n"
-msgstr "изменений не найдено (игнорируем %d Ñекретных наборов изменений)\n"
+msgstr ""
-# }}} revsets
#, python-format
msgid "ui.portablefilenames value is invalid ('%s')"
-msgstr "недопуÑтимое значение ui.portablefilenames ('%s')"
+msgstr ""
#, python-format
msgid "possible case-folding collision for %s"
-msgstr "Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°Ñ ÐºÐ¾Ð»Ð»Ð¸Ð·Ð¸Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñных/Ñтрочных букв в %s"
+msgstr ""
#, python-format
msgid "path ends in directory separator: %s"
-msgstr "путь заканчиваетÑÑ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»ÐµÐ¼ каталогов: %s"
+msgstr ""
#, python-format
msgid "path contains illegal component: %s"
-msgstr "путь Ñодержит недопуÑтимый компонент: %s"
+msgstr ""
#, python-format
-msgid "path '%s' is inside nested repo %r"
-msgstr "путь '%s' находитÑÑ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ вложенного хранилища %r"
+msgid "path %r is inside nested repo %r"
+msgstr ""
#, python-format
msgid "path %r traverses symbolic link %r"
-msgstr "путь %r проходит ÑимволичеÑкую ÑÑылку %r"
+msgstr ""
-# BUG?
#, python-format
msgid "could not symlink to %r: %s"
-msgstr "не удаетÑÑ Ñоздать ÑимволичеÑкую ÑÑылку на %r: %s"
-
-msgid "empty revision range"
-msgstr "пуÑтой диапазон ревизий"
+msgstr ""
#, python-format
msgid "recording removal of %s as rename to %s (%d%% similar)\n"
-msgstr "удаление %s запиÑываетÑÑ ÐºÐ°Ðº переименование в %s (похожеÑÑ‚ÑŒ %d%%)\n"
+msgstr ""
#, python-format
msgid "%s has not been committed yet, so no copy data will be stored for %s.\n"
msgstr ""
-"%s еще не был зафикÑирован, так что Ð´Ð»Ñ %s не будет Ñохранена информациÑ\n"
-"о копировании.\n"
msgid ".hg/requires file is corrupt"
-msgstr "файл .hg/requires поврежден"
+msgstr ""
#, python-format
msgid "unknown repository format: requires features '%s' (upgrade Mercurial)"
msgstr ""
-"неизвеÑтный формат хранилища: требуетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑ‚ÑŒ '%s' (обновите Mercurial)"
msgid "searching for changes\n"
-msgstr "ищем изменениÑ\n"
-
-msgid "all local heads known remotely\n"
-msgstr "вÑе локальные головы извеÑтны на отдаленной Ñтороне\n"
-
-msgid "sampling from both directions\n"
-msgstr "отбор образцов из обоих направлений\n"
+msgstr ""
-# NOT-SURE Ñ‚Ð°ÐºÐ°Ñ Ñ„Ð¾Ñ€Ð¼Ð°?
msgid "queries"
-msgstr "запроÑов"
+msgstr ""
msgid "searching"
-msgstr "поиÑк"
+msgstr ""
-# плохо
msgid "repository is unrelated"
-msgstr "хранилище не ÑвÑзано Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼"
+msgstr ""
-# плохо
msgid "warning: repository is unrelated\n"
-msgstr "внимание: хранилище не ÑвÑзано Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼\n"
+msgstr ""
msgid "searching for exact renames"
-msgstr "поиÑк однозначных переименований"
+msgstr ""
msgid "searching for similar files"
-msgstr "поиÑк похожих файлов"
+msgstr ""
#, python-format
msgid "%s looks like a binary file."
-msgstr "%s, похоже, ÑвлÑетÑÑ Ð±Ð¸Ð½Ð°Ñ€Ð½Ñ‹Ð¼ файлом."
+msgstr ""
msgid "can only specify two labels."
-msgstr "можно указывать только две метки (labels)."
+msgstr ""
msgid "warning: conflicts during merge.\n"
-msgstr "внимание: конфликт при ÑлиÑнии.\n"
+msgstr ""
#, python-format
msgid "couldn't parse location %s"
-msgstr "не удаетÑÑ Ñ€Ð°Ð·Ð¾Ð±Ñ€Ð°Ñ‚ÑŒ раÑположение %s"
+msgstr ""
msgid "password in URL not supported"
-msgstr "пароль в URL не поддерживаетÑÑ"
+msgstr ""
msgid "could not create remote repo"
-msgstr "не удаетÑÑ Ñоздать отдаленное хранилище"
+msgstr ""
msgid "no suitable response from remote hg"
-msgstr "не получено подходÑщего ответа от отдаленного hg"
+msgstr ""
+
+msgid "remote: "
+msgstr ""
#, python-format
msgid "push refused: %s"
-msgstr "push отклонен: %s"
-
-msgid "ssl connection failed"
-msgstr "попытка уÑтановить SSL Ñоединение не удалаÑÑŒ"
-
-msgid "Python SSL support not found"
-msgstr "Ðе найдена поддержка SSL Ð´Ð»Ñ Python"
+msgstr ""
msgid "certificate checking requires Python 2.6"
-msgstr "Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ñертификата требуетÑÑ Python 2.6"
+msgstr ""
msgid "no certificate received"
-msgstr "Ñертификатов не получено"
+msgstr ""
#, python-format
msgid "certificate is for %s"
-msgstr "Ñертификат Ð´Ð»Ñ %s"
+msgstr ""
msgid "IDN in certificate not supported"
-msgstr "IDN в Ñертификате не поддерживаетÑÑ"
+msgstr ""
msgid "no commonName or subjectAltName found in certificate"
-msgstr "в Ñертификате не найден commonName или subjectAltName"
+msgstr ""
#, python-format
msgid "could not find web.cacerts: %s"
-msgstr "не найден web.cacerts: %s"
-
-#, python-format
-msgid "host fingerprint for %s can't be verified (Python too old)"
-msgstr "отпечаток хоÑта %s не может быть проверен (Python Ñлишком Ñтарый)"
-
-#, python-format
-msgid "warning: certificate for %s can't be verified (Python too old)\n"
msgstr ""
-"внимание: Ñертификат %s не может быть проверен (Python Ñлишком Ñтарый)\n"
-# BUG здеÑÑŒ %s - Ð¸Ð¼Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ хоÑта
#, python-format
-msgid "%s ssl connection error"
-msgstr "%s - ошибка ssl"
-
-#, python-format
-msgid "%s certificate error: no certificate received"
-msgstr "%s ошибка Ñертификата: Ñертификатов не получено"
+msgid "%s certificate error: %s (use --insecure to connect insecurely)"
+msgstr ""
#, python-format
-msgid "certificate for %s has unexpected fingerprint %s"
-msgstr "Ñертификат Ð´Ð»Ñ %s имеет неожиданные отпечатки %s"
-
-msgid "check hostfingerprint configuration"
-msgstr "проверьте наÑтройку hostfingerprint"
+msgid "invalid certificate for %s with fingerprint %s"
+msgstr ""
#, python-format
-msgid "%s certificate error: %s"
-msgstr "%s ошибка Ñертификата: %s"
+msgid ""
+"warning: %s certificate with fingerprint %s not verified (check "
+"hostfingerprints or web.cacerts config setting)\n"
+msgstr ""
#, python-format
-msgid "configure hostfingerprint %s or use --insecure to connect insecurely"
+msgid "host fingerprint for %s can't be verified (Python too old)"
msgstr ""
-"наÑтройте отпечатки пальцев хоÑта %s или иÑпользуйте --insecure Ð´Ð»Ñ "
-"небезопаÑного подключениÑ"
#, python-format
-msgid ""
-"warning: %s certificate with fingerprint %s not verified (check "
-"hostfingerprints or web.cacerts config setting)\n"
+msgid "warning: certificate for %s can't be verified (Python too old)\n"
msgstr ""
-"внимание: Ñертификат %s c отпечатком %s не проверен (проверьте параметры\n"
-"конфигурации hostfingerprints или web.cacerts)\n"
#, python-format
msgid "'%s' does not appear to be an hg repository"
-msgstr "'%s' не похож на хранилище Mercurial"
+msgstr ""
msgid "cannot lock static-http repository"
-msgstr "не удаетÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ ÑтатичеÑкое http-хранилище"
+msgstr ""
msgid "cannot create new static-http repository"
-msgstr "не удаетÑÑ Ñоздать новое ÑтатичеÑкое http-хранилище"
+msgstr ""
#, python-format
msgid "invalid entry in fncache, line %s"
-msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ в fncache, Ñтрока %s"
+msgstr ""
#, python-format
msgid "warning: subrepo spec file %s not found\n"
-msgstr "внимание: файл Ñпецификации подхранилища %s не найден\n"
+msgstr ""
#, python-format
msgid "subrepo spec file %s not found"
-msgstr "файл Ñпецификации подхранилища %s не найден"
+msgstr ""
-#, python-format
-msgid "invalid subrepository revision specifier in .hgsubstate line %d"
-msgstr "неверный Ñпецификатор ревизии подхранилища в .hgsubstate Ñтрока %d"
+msgid "missing ] in subrepo source"
+msgstr ""
#, python-format
msgid "bad subrepository pattern in %s: %s"
-msgstr "некорректный шаблон подхранилища в %s: %s"
-
-msgid "missing ] in subrepo source"
-msgstr "не хватает ] в иÑточнике подхранилища"
+msgstr ""
-# PROMPT
#, python-format
msgid ""
" subrepository sources for %s differ\n"
"use (l)ocal source (%s) or (r)emote source (%s)?"
msgstr ""
-" иÑточники подхранилищ Ð´Ð»Ñ %s различаютÑÑ\n"
-"иÑпользовать локальный:(l)ocal (%s) или отдаленный:(r)emote иÑточник (%s)?"
-# PROMPT
msgid "&Remote"
-msgstr "&Remote - Отдаленный"
+msgstr ""
-# PROMPT
#, python-format
msgid ""
" local changed subrepository %s which remote removed\n"
"use (c)hanged version or (d)elete?"
msgstr ""
-" локально подхранилище %s изменено, на отдаленной машине удалено\n"
-"иÑпользовать измененную:(c)hanged верÑию, или удалить:(d)elete?"
-# PROMPT
#, python-format
msgid ""
" remote changed subrepository %s which local removed\n"
"use (c)hanged version or (d)elete?"
msgstr ""
-" на отдаленной машине подхранилище %s изменено, локально удалено\n"
-"иÑпользовать измененную:(c)hanged верÑию, или удалить:(d)elete?"
-# PROMPT
#, python-format
msgid ""
" subrepository sources for %s differ\n"
"use (l)ocal source (%s) or (r)emote source (%s)?\n"
msgstr ""
-" иÑточники подхранилищ Ð´Ð»Ñ %s различаютÑÑ\n"
-"иÑпользовать локальный:(l)ocal (%s) или отдаленный:(r)emote иÑточник (%s)?\n"
-# PROMPT
#, 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"
-"иÑпользовать локальный:(l)ocal (%s) или отдаленный:(r)emote иÑточник (%s)?\n"
#, python-format
msgid "default path for subrepository %s not found"
-msgstr "путь по умолчанию Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð° %s не найден"
+msgstr ""
#, python-format
msgid "unknown subrepo type %s"
-msgstr "неизвеÑтный тип подхранилища %s"
+msgstr ""
#, python-format
msgid "archiving (%s)"
-msgstr "архивирование (%s)"
+msgstr ""
#, python-format
msgid "warning: error \"%s\" in subrepository \"%s\"\n"
-msgstr "внимание: ошибка \"%s\" в подхранилище \"%s\"\n"
+msgstr ""
#, python-format
msgid "removing subrepo %s\n"
-msgstr "удаление подхранилища %s\n"
+msgstr ""
#, python-format
msgid "cloning subrepo %s from %s\n"
-msgstr "клонирование подхранилища %s из %s\n"
+msgstr ""
#, python-format
msgid "pulling subrepo %s from %s\n"
-msgstr "затÑгиваем в подхранилище %s из %s\n"
+msgstr ""
#, python-format
msgid "pushing subrepo %s to %s\n"
-msgstr "проталкиваем подхранилище %s в %s\n"
-
-#, python-format
-msgid "reverting subrepo %s\n"
-msgstr "воÑÑтановление подхранилища %s\n"
-
-#, python-format
-msgid "'svn' executable not found for subrepo '%s'"
-msgstr "иÑполнÑемый файл 'svn' не найден Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð° '%s'"
+msgstr ""
msgid "cannot retrieve svn tool version"
-msgstr "не удалоÑÑŒ получить верÑию svn"
+msgstr ""
-# svn externals - Ñто ÑимволичеÑкие ÑÑылки в хранилище svn
msgid "cannot commit svn externals"
-msgstr "не удаетÑÑ Ð·Ð°Ñ„Ð¸ÐºÑировать svn externals"
-
-# svn externals - Ñто ÑимволичеÑкие ÑÑылки в хранилище svn
-msgid "cannot commit missing svn entries"
-msgstr "не удаетÑÑ Ð·Ð°Ñ„Ð¸ÐºÑировать отÑутÑтвующие Ñлементы svn"
-
-msgid "failed to commit svn changes"
-msgstr "не удалоÑÑŒ зафикÑировать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² svn"
+msgstr ""
#, python-format
msgid "not removing repo %s because it has changes.\n"
-msgstr "не удалÑем хранилище %s, Ñ‚.к. в нем имеютÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ.\n"
-
-msgid "cannot retrieve git version"
-msgstr "не удалоÑÑŒ получить верÑию git"
-
-msgid "git subrepo requires at least 1.6.0 or later"
-msgstr "подхранилище git требует верÑии не ниже 1.6.0"
+msgstr ""
#, python-format
msgid "revision %s does not exist in subrepo %s\n"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %s не ÑущеÑтвует в подхранилище %s\n"
+msgstr ""
#, python-format
msgid "checking out detached HEAD in subrepo %s\n"
-msgstr "извлечение отделенной головной ревизии в подхранилище %s\n"
+msgstr ""
msgid "check out a git branch if you intend to make changes\n"
-msgstr "извлеките ветку git, еÑли вы планируете вноÑить изменениÑ\n"
+msgstr ""
#, python-format
msgid "subrepo %s is missing"
-msgstr "отÑутÑтвует подхранилище %s"
+msgstr ""
#, python-format
msgid "unrelated git branch checked out in subrepo %s\n"
-msgstr "в подхранилище %s извлечена не ÑвÑÐ·Ð°Ð½Ð½Ð°Ñ (unrelated) ветка git\n"
+msgstr ""
#, python-format
msgid "pushing branch %s of subrepo %s\n"
-msgstr "проталкиваем ветку %s подхранилища %s\n"
+msgstr ""
#, python-format
msgid ""
"no branch checked out in subrepo %s\n"
-"cannot push revision %s\n"
+"cannot push revision %s"
msgstr ""
-"нет извлеченной ветки в подхранилище %s\n"
-"невозможно протолкнуть ревизию %s\n"
#, python-format
msgid "%s, line %s: %s\n"
-msgstr "%s, Ñтрока %s: %s\n"
+msgstr ""
msgid "cannot parse entry"
-msgstr "ошибка при разборе запиÑи"
+msgstr ""
#, python-format
msgid "node '%s' is not well formed"
-msgstr "узел '%s' Ñформирован некорректно"
+msgstr ""
msgid ".hg/cache/tags is corrupt, rebuilding it\n"
-msgstr ".hg/cache/tags поврежден, переÑтраиваем его\n"
+msgstr ""
msgid ""
":addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n"
@@ -23969,7 +18250,7 @@ msgid ""
" its long hexadecimal representation."
msgstr ""
":hex: Произвольный текÑÑ‚. Преобразует двоичный идентификатор ревизии\n"
-" в длинную шеÑтнадцатеричную форму."
+" в длинную шеÑтнадцатиричную форму."
msgid ""
":hgdate: Date. Returns the date as a pair of numbers: \"1157407993\n"
@@ -24009,43 +18290,8 @@ msgstr ""
":obfuscate: Произвольный текÑÑ‚. Возвращает входной текÑÑ‚ в виде\n"
" поÑледовательноÑти XML-ÑущноÑтей."
-msgid ""
-":person: Any text. Returns the name before an email address,\n"
-" interpreting it as per RFC 5322."
-msgstr ""
-":person: Произвольный текÑÑ‚. Возвращает Ð¸Ð¼Ñ Ð¿ÐµÑ€ÐµÐ´ email-адреÑом,\n"
-" Ð¸Ð½Ñ‚ÐµÑ€Ð¿Ñ€ÐµÑ‚Ð¸Ñ€ÑƒÑ ÐµÐ³Ð¾ ÑоглаÑно RFC 5322."
-
-msgid ""
-" >>> person('foo@bar')\n"
-" 'foo'\n"
-" >>> person('Foo Bar <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo Bar\" <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo \"buz\" Bar\" <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> # The following are invalid, but do exist in real-life\n"
-" ...\n"
-" >>> person('Foo \"buz\" Bar <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> person('\"Foo Bar <foo@bar>')\n"
-" 'Foo Bar'"
-msgstr ""
-" >>> person('foo@bar')\n"
-" 'foo'\n"
-" >>> person('Foo Bar <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo Bar\" <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo \"buz\" Bar\" <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> # ÐижеÑледующее некорректно, но в реальноÑти работает\n"
-" ...\n"
-" >>> person('Foo \"buz\" Bar <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> person('\"Foo Bar <foo@bar>')\n"
-" 'Foo Bar'"
+msgid ":person: Any text. Returns the text before an email address."
+msgstr ":person: Произвольный текÑÑ‚. Возвращает текÑÑ‚ перед email-адреÑом."
msgid ""
":rfc3339date: Date. Returns a date using the Internet date format\n"
@@ -24066,19 +18312,7 @@ msgid ""
" i.e. a 12 hexadecimal digit string."
msgstr ""
":short: Ð¥Ñш набора изменений. Возвращает Ñ…Ñш набора изменений в\n"
-" Ñокращенной форме, Ñ‚.е. Ñтроку из 12 шеÑтнадцатеричных Ñимволов."
-
-msgid ""
-":shortbisect: Any text. Treats `text` as a bisection status, and\n"
-" returns a single-character representing the status (G: good, B: bad,\n"
-" S: skipped, U: untested, I: ignored). Returns single space if `text`\n"
-" is not a valid bisection status."
-msgstr ""
-":shortbisect: Произвольный текÑÑ‚. ВоÑпринимает `текÑÑ‚` как ÑтатуÑ\n"
-" биÑекции и возвращает одну букву, предÑтавлÑющую ÑÑ‚Ð°Ñ‚ÑƒÑ (G: good\n"
-" (хорошаÑ), B: bad (плохаÑ), S: skipped (пропущена), U: untested\n"
-" (не теÑтировалаÑÑŒ), I: ignored (игнорирована). Возвращает один пробел,\n"
-" еÑли `текÑÑ‚` не ÑвлÑетÑÑ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼ ÑтатуÑом биÑекции."
+" Ñокращенной форме, Ñ‚.е. Ñтроку из 12 шеÑтнадцатиричных Ñимволов."
msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
msgstr ":shortdate: Дата. Возвращает дату в виде \"2006-09-18\"."
@@ -24108,7 +18342,7 @@ msgid ""
" first starting with a tab character."
msgstr ""
":tabindent: Произвольный текÑÑ‚. Возвращает текÑÑ‚, ÐºÐ°Ð¶Ð´Ð°Ñ Ñтрока\n"
-" которого, кроме первой, начинаетÑÑ Ñ Ñимвола табулÑции."
+" которго, кроме первой, начинаетÑÑ Ñ Ñимвола табулÑции."
msgid ""
":urlescape: Any text. Escapes all \"special\" characters. For example,\n"
@@ -24117,37 +18351,24 @@ msgstr ""
":urlescape: Произвольный текÑÑ‚. Экранирует вÑе \"Ñпециальные\" Ñимволы.\n"
" Ðапример, \"foo bar\" превращаетÑÑ Ð² \"foo%20bar\"."
-msgid ""
-":user: Any text. Returns a short representation of a user name or email\n"
-" address."
-msgstr ""
-":user: Произвольный текÑÑ‚. Возвращает короткий вариант имени\n"
-" Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ email-адреÑа."
-
-msgid ":emailuser: Any text. Returns the user portion of an email address."
-msgstr ""
-":emailuser: Произвольный текÑÑ‚. Возвращает Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð· email-адреÑа."
+msgid ":user: Any text. Returns the user portion of an email address."
+msgstr ":user: Произвольный текÑÑ‚. Возвращает Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð· email-адреÑа."
msgid ":author: String. The unmodified author of the changeset."
msgstr ":author: Строка. Ðеизмененный автор набора изменений."
-msgid ":bisect: String. The changeset bisection status."
-msgstr ""
-":bisect: Строка. СоÑтоÑние поиÑка делением пополам (bisect) набора изменений."
-
msgid ""
":branch: String. The name of the branch on which the changeset was\n"
" committed."
-msgstr ""
-":branch: Строка. Ð˜Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸, на которую был зафикÑирован набор изменений."
+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."
+":branches: СпиÑок Ñтрок. Ð˜Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸, на которую был закоммичен набор\n"
+" изменений. Будет пуÑтым, еÑли Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸ было default."
msgid ""
":bookmarks: List of strings. Any bookmarks associated with the\n"
@@ -24160,7 +18381,7 @@ msgid ":children: List of strings. The children of the changeset."
msgstr ":children: СпиÑок Ñтрок. Дочерние ревизии набора изменений."
msgid ":date: Date information. The date when the changeset was committed."
-msgstr ":date: Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ дате. Дата фикÑации набора изменений."
+msgstr ":date: Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ дате. Дата коммита набора изменений."
msgid ":desc: String. The text of the changeset description."
msgstr ":desc: Строка. ТекÑÑ‚ опиÑÐ°Ð½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€Ð° изменений."
@@ -24211,125 +18432,107 @@ msgstr ""
msgid ":latesttagdistance: Integer. Longest path to the latest tag."
msgstr ""
-":latesttagdistance: Целое чиÑло. Самый длинный путь до поÑледней\n"
+":latesttagdistance: Целое чиcло. Самый длинный путь до поÑледней\n"
" метки."
msgid ""
":node: String. The changeset identification hash, as a 40 hexadecimal\n"
" digit string."
msgstr ""
-":node: Строка. Ð¥Ñш набора изменений в виде 40-значной шеÑтнадцатеричной\n"
+":node: Строка. Ð¥Ñш набора изменений в виде 40-значной шеÑтнадцатиричной\n"
" Ñтроки."
-msgid ":phase: String. The changeset phase name."
-msgstr ":phase: Строка. Ð˜Ð¼Ñ Ñ„Ð°Ð·Ñ‹ набора изменений."
-
-msgid ":phaseidx: Integer. The changeset phase index."
-msgstr ":phaseidx: Целое чиÑло. Ð˜Ð½Ð´ÐµÐºÑ Ñ„Ð°Ð·Ñ‹ набора изменений."
-
msgid ":rev: Integer. The repository-local changeset revision number."
-msgstr ":rev: Целое чиÑло. Локальный номер ревизии в Ñтом хранилище."
+msgstr ":rev: Целое чиÑло. Локальный номер ревизии в Ñтом репозитории."
msgid ":tags: List of strings. Any tags associated with the changeset."
msgstr ":tags: СпиÑок Ñтрок. Ð’Ñе метки, аÑÑоциированные Ñ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð¼ изменений."
-msgid ""
-":parents: List of strings. The parents of the changeset in \"rev:node\"\n"
-" format. If the changeset has only one \"natural\" parent (the "
-"predecessor\n"
-" revision) nothing is shown."
-msgstr ""
-":parents: СпиÑок Ñтрок. Родители ревизии в формате \"номер ревизии:Ñ…Ñш\".\n"
-" ЕÑли набор изменений имеет только одного \"еÑтеÑтвенного\" родителÑ\n"
-" (предшеÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ), ничего не показываетÑÑ."
-
#, python-format
msgid "unknown method '%s'"
-msgstr "неизвеÑтный метод '%s'"
+msgstr ""
msgid "expected a symbol"
-msgstr "ожидаетÑÑ Ñимвол"
+msgstr ""
#, python-format
msgid "unknown function '%s'"
-msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ '%s'"
+msgstr ""
msgid "expected template specifier"
-msgstr "ожидаетÑÑ Ñпецификатор шаблона"
+msgstr ""
#, python-format
msgid "filter %s expects one argument"
-msgstr "фильтр %s требует один аргумент"
+msgstr ""
msgid "unmatched quotes"
-msgstr "незакрытые кавычки"
+msgstr ""
#, python-format
msgid "style not found: %s"
-msgstr "Ñтиль не найден: %s"
+msgstr ""
-# NOT-SURE так?
#, python-format
msgid "\"%s\" not in template map"
-msgstr "\"%s\" отÑутÑвует в ÑопоÑтавлении шаблона"
+msgstr ""
#, python-format
msgid "template file %s: %s"
-msgstr "файл шаблонов %s: %s"
+msgstr ""
msgid "cannot use transaction when it is already committed/aborted"
msgstr ""
-"невозможно иÑпользовать транзакцию, когда она уже зафикÑирована/отменена"
#, python-format
msgid "failed to truncate %s\n"
-msgstr "не удалоÑÑŒ перезапиÑать %s\n"
+msgstr ""
msgid "transaction abort!\n"
-msgstr "Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð°!\n"
+msgstr ""
msgid "rollback completed\n"
-msgstr "откат завершен\n"
+msgstr ""
msgid "rollback failed - please run hg recover\n"
-msgstr "ошибка при откате - пожалуйÑта, запуÑтите hg recover\n"
+msgstr ""
msgid "already have changeset "
-msgstr "уже имеетÑÑ Ð½Ð°Ð±Ð¾Ñ€ изменений "
+msgstr ""
#, python-format
-msgid "not trusting file %s from untrusted user %s, group %s\n"
-msgstr "не доверÑем файлу %s от недоверенного Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %s, группа %s\n"
+msgid "Not trusting file %s from untrusted user %s, group %s\n"
+msgstr ""
#, python-format
-msgid "ignored: %s\n"
-msgstr "игнорируетÑÑ: %s\n"
+msgid "Ignored: %s\n"
+msgstr ""
#, python-format
msgid "(deprecated '%%' in path %s=%s from %s)\n"
-msgstr "(уÑтаревший '%%' в пути %s=%s из %s)\n"
+msgstr ""
#, python-format
msgid "%s.%s is not a boolean ('%s')"
-msgstr "%s.%s не логичеÑкий ('%s')"
+msgstr ""
#, python-format
msgid "%s.%s is not an integer ('%s')"
-msgstr "%s.%s не целое чиÑло ('%s')"
+msgstr ""
msgid "enter a commit username:"
-msgstr "введите Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ñ„Ð¸ÐºÑации:"
+msgstr ""
#, python-format
-msgid "no username found, using '%s' instead\n"
-msgstr "Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ найдено, иÑпользуетÑÑ '%s'\n"
+msgid "No username found, using '%s' instead\n"
+msgstr ""
msgid "no username supplied (see \"hg help config\")"
-msgstr "не задано Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (Ñм. \"hg help config\")"
+msgstr ""
#, python-format
msgid "username %s contains a newline\n"
-msgstr "Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %s Ñодержит перевод Ñтроки\n"
+msgstr ""
msgid "response expected"
msgstr "ожидаетÑÑ Ð¾Ñ‚Ð²ÐµÑ‚"
@@ -24340,924 +18543,311 @@ msgstr "не раÑпознанный ответ\n"
msgid "password: "
msgstr "пароль: "
+msgid "edit failed"
+msgstr "неудача при редактировании"
+
msgid "http authorization required"
-msgstr "требуетÑÑ http-авторизациÑ"
+msgstr ""
msgid "http authorization required\n"
-msgstr "требуетÑÑ http-авторизациÑ\n"
+msgstr ""
#, python-format
msgid "realm: %s\n"
-msgstr "облаÑÑ‚ÑŒ (realm): %s\n"
+msgstr ""
#, python-format
msgid "user: %s\n"
-msgstr "пользователь: %s\n"
+msgstr ""
msgid "user:"
msgstr "пользователь:"
#, python-format
msgid "http auth: user %s, password %s\n"
-msgstr "http-авторизациÑ: пользователь %s, пароль %s\n"
+msgstr ""
#, python-format
msgid "command '%s' failed: %s"
-msgstr "команда '%s' завершилаÑÑŒ ошибкой: %s"
+msgstr ""
#, python-format
msgid "filename contains '%s', which is reserved on Windows"
-msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ñодержит '%s', Ñто зарезервированное Ð¸Ð¼Ñ Ð² Windows"
+msgstr ""
#, python-format
msgid "filename contains %r, which is invalid on Windows"
-msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ñодержит %r, Ñто недопуÑтимый Ñимвол в Windows"
+msgstr ""
#, python-format
msgid "filename ends with '%s', which is not allowed on Windows"
-msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ñодержит '%s' на конце, что недопуÑтимо в Windows"
+msgstr ""
msgid "check your clock"
-msgstr "проверьте правильноÑÑ‚ÑŒ уÑтановки времени"
+msgstr ""
#, python-format
msgid "negative timestamp: %d"
-msgstr "Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° времени: %d"
+msgstr ""
#, python-format
msgid "invalid date: %r"
-msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´Ð°Ñ‚Ð°: %r"
+msgstr ""
#, python-format
msgid "date exceeds 32 bits: %d"
-msgstr "дата не помещаетÑÑ Ð² 32 бита: %d"
+msgstr ""
#, python-format
msgid "negative date value: %d"
-msgstr "Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°: %d"
+msgstr ""
#, python-format
msgid "impossible time zone offset: %d"
-msgstr "невозможное Ñмещение чаÑового поÑÑа: %d"
+msgstr ""
msgid "dates cannot consist entirely of whitespace"
-msgstr "даты не могут ÑоÑтоÑÑ‚ÑŒ из одних пробельных Ñимволов"
+msgstr ""
msgid "invalid day spec, use '<DATE'"
-msgstr "неверно указана дата, иÑпользуйте '<ДÐТÐ'"
+msgstr ""
msgid "invalid day spec, use '>DATE'"
-msgstr "неверно указана дата, иÑпользуйте '>ДÐТÐ'"
+msgstr ""
#, python-format
msgid "invalid day spec: %s"
-msgstr "неверно указан день: %s"
+msgstr ""
#, python-format
msgid "%s must be nonnegative (see 'hg help dates')"
-msgstr "%s должен быть неотрицательным (Ñм. 'hg help dates')"
+msgstr ""
#, python-format
msgid "%.0f GB"
-msgstr "%.0f ГБ"
+msgstr ""
#, python-format
msgid "%.1f GB"
-msgstr "%.1f ГБ"
+msgstr ""
#, python-format
msgid "%.2f GB"
-msgstr "%.2f ГБ"
+msgstr ""
#, python-format
msgid "%.0f MB"
-msgstr "%.0f МБ"
+msgstr ""
#, python-format
msgid "%.1f MB"
-msgstr "%.1f МБ"
+msgstr ""
#, python-format
msgid "%.2f MB"
-msgstr "%.2f МБ"
+msgstr ""
#, python-format
msgid "%.0f KB"
-msgstr "%.0f КБ"
+msgstr ""
#, python-format
msgid "%.1f KB"
-msgstr "%.1f КБ"
+msgstr ""
#, python-format
msgid "%.2f KB"
-msgstr "%.2f КБ"
+msgstr ""
#, python-format
msgid "%.0f bytes"
-msgstr "%.0f байт"
+msgstr ""
#, python-format
msgid "no port number associated with service '%s'"
-msgstr "Ñ ÑервиÑом '%s' не ÑвÑзан ни один номер порта"
+msgstr ""
msgid "file:// URLs can only refer to localhost"
msgstr ""
-"URL вида file:// могут ÑÑылатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на локальную машину (localhost)"
msgid "cannot verify bundle or remote repos"
-msgstr "не удаетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ комплект (bundle) или отдаленное хранилище"
+msgstr ""
msgid "interrupted"
-msgstr "прервано"
+msgstr ""
#, python-format
msgid "empty or missing %s"
-msgstr "%s пуÑтой или отÑутÑтвует"
+msgstr ""
#, python-format
msgid "data length off by %d bytes"
-msgstr "длина данных Ñмещена на %d байт"
+msgstr ""
#, python-format
msgid "index contains %d extra bytes"
-msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ñодержит %d лишних байт"
+msgstr ""
#, python-format
msgid "warning: `%s' uses revlog format 1"
-msgstr "внимание: `%s' иÑпользует revlog формата 1"
+msgstr ""
#, python-format
msgid "warning: `%s' uses revlog format 0"
-msgstr "внимание: `%s' иÑпользует revlog формата 0"
+msgstr ""
#, python-format
msgid "rev %d points to nonexistent changeset %d"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d указывает на неÑущеÑтвующий набор изменений %d"
+msgstr ""
#, python-format
msgid "rev %d points to unexpected changeset %d"
-msgstr "Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d указывает на неожиданный набор изменений %d"
+msgstr ""
#, python-format
msgid " (expected %s)"
-msgstr " (ожидаетÑÑ %s)"
+msgstr ""
#, python-format
msgid "unknown parent 1 %s of %s"
-msgstr "неизвеÑтный первый родитель %s набора изменений %s"
+msgstr ""
#, python-format
msgid "unknown parent 2 %s of %s"
-msgstr "неизвеÑтный второй родитель %s набора изменений %s"
+msgstr ""
#, python-format
msgid "checking parents of %s"
-msgstr "проверка родителей %s"
+msgstr ""
#, python-format
msgid "duplicate revision %d (%d)"
-msgstr "дублирующаÑÑÑ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %d (%d)"
+msgstr ""
msgid "abandoned transaction found - run hg recover\n"
-msgstr "найдена Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ - запуÑтите hg recover\n"
+msgstr ""
#, python-format
msgid "repository uses revlog format %d\n"
-msgstr "хранилище иÑпользует revlog формата %d\n"
+msgstr ""
msgid "checking changesets\n"
-msgstr "проверÑем наборы изменений\n"
+msgstr ""
msgid "checking"
-msgstr "проверка"
+msgstr ""
#, python-format
msgid "unpacking changeset %s"
-msgstr "раÑпаковка набора изменений %s"
+msgstr ""
msgid "checking manifests\n"
-msgstr "проверка манифеÑтов\n"
+msgstr ""
#, python-format
msgid "%s not in changesets"
-msgstr "%s отÑутÑтвует в наборах изменений"
+msgstr ""
msgid "file without name in manifest"
-msgstr "файл без имени в манифеÑте"
+msgstr ""
#, python-format
msgid "reading manifest delta %s"
-msgstr "чтение дельты %s манифеÑта"
+msgstr ""
msgid "crosschecking files in changesets and manifests\n"
-msgstr "перекреÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° файлов в наборах изменений и манифеÑтах\n"
+msgstr ""
msgid "crosschecking"
-msgstr "перекреÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ°"
+msgstr ""
#, python-format
msgid "changeset refers to unknown manifest %s"
-msgstr "набор изменений отноÑитÑÑ Ðº неизвеÑтному манифеÑту %s"
+msgstr ""
msgid "in changeset but not in manifest"
-msgstr "в наборе изменений, но не в манифеÑте"
+msgstr ""
msgid "in manifest but not in changeset"
-msgstr "в манифеÑте, но не в наборе изменений"
+msgstr ""
msgid "checking files\n"
-msgstr "проверка файлов\n"
+msgstr ""
#, python-format
msgid "cannot decode filename '%s'"
-msgstr "не удаетÑÑ Ð´ÐµÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° '%s'"
+msgstr ""
#, python-format
msgid "broken revlog! (%s)"
-msgstr "поврежденный revlog! (%s)"
+msgstr ""
msgid "missing revlog!"
-msgstr "revlog отÑутÑтвует!"
+msgstr ""
#, python-format
msgid "%s not in manifests"
-msgstr "%s отÑутÑтвует в манифеÑтах"
+msgstr ""
#, python-format
msgid "unpacked size is %s, %s expected"
-msgstr "раÑпакованный размер %s, а ожидалÑÑ %s"
+msgstr ""
#, python-format
msgid "unpacking %s"
-msgstr "раÑпаковка %s"
+msgstr ""
#, python-format
msgid "warning: copy source of '%s' not in parents of %s"
-msgstr "внимание: иÑточник копии '%s' не входит в родителей %s"
+msgstr ""
#, python-format
msgid "empty or missing copy source revlog %s:%s"
-msgstr "пуÑтой или отÑутÑтвующий revlog иÑточника копии %s:%s"
+msgstr ""
#, python-format
msgid "warning: %s@%s: copy source revision is nullid %s:%s\n"
msgstr ""
-"внимание: %s@%s: иÑточник копии ревизии - пуÑÑ‚Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ (nullid) %s:%s\n"
#, python-format
msgid "checking rename of %s"
-msgstr "проверка Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ %s"
+msgstr ""
#, python-format
msgid "%s in manifests not found"
-msgstr "%s не найден в манифеÑтах"
+msgstr ""
#, python-format
msgid "warning: orphan revlog '%s'"
-msgstr "внимание: виÑÑчий (orphan) revlog '%s'"
+msgstr ""
#, python-format
msgid "%d files, %d changesets, %d total revisions\n"
-msgstr "%d файлов, %d наборов изменений, вÑего %d ревизий\n"
+msgstr ""
#, python-format
msgid "%d warnings encountered!\n"
-msgstr "обнаружено %d предупреждений!\n"
+msgstr ""
#, python-format
msgid "%d integrity errors encountered!\n"
-msgstr "обнаружено %d ошибок целоÑтноÑти!\n"
+msgstr ""
#, python-format
msgid "(first damaged changeset appears to be %d)\n"
-msgstr "(первый поврежденный набор изменений похоже %d)\n"
+msgstr ""
msgid "look up remote revision"
-msgstr "поиÑк отдаленной ревизии"
+msgstr ""
msgid "push failed (unexpected response):"
-msgstr "ошибка при проталкивании (неожиданный ответ):"
+msgstr ""
msgid "look up remote changes"
-msgstr "поиÑк отдаленных изменений"
+msgstr ""
msgid "push failed:"
-msgstr "ошибка при проталкивании:"
-
-#~ msgid ""
-#~ "``unstable()``\n"
-#~ " Unstable changesets are non-obsolete with obsolete descendants."
-#~ msgstr ""
-#~ "``unstable()``\n"
-#~ " ÐеÑтабильные наборы изменений - не уÑтаревшие наборы изменений\n"
-#~ " Ñ ÑƒÑтаревшими потомками."
-
-#~ msgid ""
-#~ "Branch-based Access Control\n"
-#~ "..........................."
-#~ msgstr ""
-#~ "Контроль доÑтупа, оÑнованный на ветке\n"
-#~ "....................................."
-
-#~ msgid ""
-#~ "Path-based Access Control\n"
-#~ "........................."
-#~ msgstr ""
-#~ "Контроль доÑтупа оÑнованный на пути\n"
-#~ "..................................."
-
-#~ msgid ""
-#~ "Groups\n"
-#~ "......"
-#~ msgstr ""
-#~ "Группы\n"
-#~ "......"
-
-#~ msgid ""
-#~ "Example Configuration\n"
-#~ "....................."
-#~ msgstr ""
-#~ "Пример конфигурации\n"
-#~ "..................."
-
-#~ msgid ""
-#~ " Mercurial Destination\n"
-#~ " '''''''''''''''''''''"
-#~ msgstr ""
-#~ " Выходное хранилище Mercurial\n"
-#~ " ''''''''''''''''''''''''''''"
-
-#~ msgid "must specify local origin repository"
-#~ msgstr "хранилище-иÑточник должно быть локальным"
-
-#~ msgid ""
-#~ "Files\n"
-#~ "-----"
-#~ msgstr ""
-#~ "Файлы\n"
-#~ "-----"
-
-#~ msgid ""
-#~ "Syntax\n"
-#~ "------"
-#~ msgstr ""
-#~ "СинтакÑиÑ\n"
-#~ "---------"
-
-#~ msgid ""
-#~ "``alias``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``alias``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``annotate``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``annotate``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``auth``\n"
-#~ "\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``auth``\n"
-#~ "\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``decode/encode``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``decode/encode``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``defaults``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``defaults``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``diff``\n"
-#~ "\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``diff``\n"
-#~ "\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "``email``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``email``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``extensions``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``extensions``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``format``\n"
-#~ "\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``format``\n"
-#~ "\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "``graph``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``graph``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "``hooks``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``hooks``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``hostfingerprints``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``hostfingerprints``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``http_proxy``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``http_proxy``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "``merge-patterns``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``merge-patterns``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "``merge-tools``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``merge-tools``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``patch``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``patch``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``paths``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``paths``\n"
-#~ "\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "``phases``\n"
-#~ "\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``phases``\n"
-#~ "\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "``profiling``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``profiling``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "``revsetalias``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``revsetalias``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "``server``\n"
-#~ "\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``server``\n"
-#~ "\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "``smtp``\n"
-#~ "\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``smtp``\n"
-#~ "\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``subpaths``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``subpaths``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "``trusted``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "``trusted``\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``ui``\n"
-#~ "\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``ui``\n"
-#~ "\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "\n"
-#~ "``web``\n"
-#~ "\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "\n"
-#~ "``web``\n"
-#~ "\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "Example\n"
-#~ "-------"
-#~ msgstr ""
-#~ "Пример\n"
-#~ "------"
-
-#~ msgid ""
-#~ "The ``web`` section can specify all the settings described in the web\n"
-#~ "section of the hgrc(5) documentation. See :hg:`help config` for\n"
-#~ "information on where to find the manual page."
-#~ msgstr ""
-#~ "Ð¡ÐµÐºÑ†Ð¸Ñ ``web`` Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð²Ñех параметров, опиÑанных в Ñправке по\n"
-#~ "одноименной Ñекции из :hg:`help config`."
-
-#~ msgid ""
-#~ "The ``paths`` section provides mappings of physical repository\n"
-#~ "paths to virtual ones. For instance::"
-#~ msgstr ""
-#~ "Ð¡ÐµÐºÑ†Ð¸Ñ ``paths`` задает ÑоответÑтвие физичеÑких путей к хранилищам\n"
-#~ "и виртуальных. Ðапример::"
-
-#~ msgid ""
-#~ "- The first two entries make two repositories in different directories\n"
-#~ " appear under the same directory in the web interface\n"
-#~ "- The third entry maps every Mercurial repository found in '/real/root'\n"
-#~ " into 'web/root'. This format is preferred over the [collections] one,\n"
-#~ " since using absolute paths as configuration keys is not supported on "
-#~ "every\n"
-#~ " platform (especially on Windows).\n"
-#~ "- The fourth entry is a special case mapping all repositories in\n"
-#~ " '/real/root2' in the root of the virtual directory.\n"
-#~ "- The fifth entry recursively finds all repositories under the real\n"
-#~ " root, and maps their relative paths under the virtual root."
-#~ msgstr ""
-#~ "- Первые две Ñтроки показывают два хранилища, физичеÑки находÑщиеÑÑ Ð¿Ð¾\n"
-#~ " разным путÑм, в одном каталоге в веб-интерфейÑе\n"
-#~ "- Ð¢Ñ€ÐµÑ‚ÑŒÑ Ñтрока показывает вÑе хранилища Mercurial, находÑщиеÑÑ Ð²\n"
-#~ " '/real/root', в каталоге 'web/root' веб-интерфейÑа. Ð¢Ð°ÐºÐ°Ñ Ñ„Ð¾Ñ€Ð¼Ð°\n"
-#~ " ÑвлÑетÑÑ Ð¿Ñ€ÐµÐ´Ð¿Ð¾Ñ‡Ñ‚Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ по Ñравнению Ñ Ñекцией [collections],\n"
-#~ " Ñ‚.к. иÑпользование абÑолютных путей в качеÑтве ключей поддерживаетÑÑ\n"
-#~ " не на вÑех платформах (в чаÑтноÑти, не работает в Windows)\n"
-#~ "- Ð§ÐµÑ‚Ð²ÐµÑ€Ñ‚Ð°Ñ Ñтрока иллюÑтрирует оÑобый Ñлучай, при котором вÑе\n"
-#~ " хранилища из каталога '/real/root2' отображаютÑÑ Ð² корневом\n"
-#~ " виртуальном каталоге.\n"
-#~ "- ПÑÑ‚Ð°Ñ Ñтрока рекурÑивно ищет вÑе хранилища в подкаталогах\n"
-#~ " /real/root2 и показывает из отноÑительные пути в виртуальном\n"
-#~ " каталоге."
-
-#~ msgid ""
-#~ "The ``collections`` section provides mappings of trees of physical\n"
-#~ "repositories paths to virtual ones, though the paths syntax is generally\n"
-#~ "preferred. For instance::"
-#~ msgstr ""
-#~ "Ð¡ÐµÐºÑ†Ð¸Ñ ``collections`` задает ÑоответÑтвие деревьев физичеÑких путей\n"
-#~ "хранилищ виртуальным. Однако, предпочтительно иÑпользовать Ñекцию\n"
-#~ "paths. Пример::"
-
-#~ msgid ""
-#~ " [collections]\n"
-#~ " /foo = /foo"
-#~ msgstr ""
-#~ " [collections]\n"
-#~ " /foo = /foo"
-
-#~ msgid ""
-#~ "Here, the left side will be stripped off all repositories found in the\n"
-#~ "right side. Thus ``/foo/bar`` and ``foo/quux/baz`` will be listed as\n"
-#~ "``bar`` and ``quux/baz`` respectively.\n"
-#~ msgstr ""
-#~ "ЗдеÑÑŒ Ð»ÐµÐ²Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ путей будет удалена из вÑех путей хранилищ,\n"
-#~ "найденных в каталоге из правой чаÑти. Так, ``/foo/bar`` и ``foo/quux/"
-#~ "baz``\n"
-#~ "будут отображатьÑÑ ÐºÐ°Ðº ``bar`` и ``quux/baz`` ÑоответÑтвенно.\n"
-
-#~ msgid ""
-#~ "Available merge tools\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "Возможные инÑтрументы ÑлиÑниÑ\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "Choosing a merge tool\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-#~ msgstr ""
-#~ "Выбор инÑтрумента ÑлиÑниÑ\n"
-#~ "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
-
-#~ msgid ""
-#~ "Interaction with Mercurial Commands\n"
-#~ "-----------------------------------"
-#~ msgstr ""
-#~ "ВзаимодейÑтвие Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ Mercurial\n"
-#~ "------------------------------------"
-
-#~ msgid ""
-#~ "Remapping Subrepositories Sources\n"
-#~ "---------------------------------"
-#~ msgstr ""
-#~ "Переназначение иÑточников подхранилищ\n"
-#~ "-------------------------------------"
-
-#~ msgid ""
-#~ "Other repository doesn't support revision lookup, so a rev cannot be "
-#~ "specified."
-#~ msgstr ""
-#~ "Другое хранилище не поддерживает поиÑк ревизий, поÑтому нельзÑ\n"
-#~ "задавать ревизию."
-
-#~ msgid ""
-#~ " When -f/--force is applied, all local changes in patched files\n"
-#~ " will be lost."
-#~ msgstr ""
-#~ " С -f/--force вÑе локальные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файлах, на которые "
-#~ "накладываетÑÑ\n"
-#~ " патч, будут утерÑны."
-
-#~ msgid ""
-#~ "Alternatively, they can be added to Mercurial configuration files by\n"
-#~ "setting the previous entry to an empty value."
-#~ msgstr ""
-#~ "Также они могут быть добавлены прÑмо в конфигурационные файлы Mercurial,\n"
-#~ "Ð´Ð»Ñ Ñтого надо уÑтановить предыдущий параметр в пуÑтое значение (config= )"
-
-#~ msgid ""
-#~ "notify.sources\n"
-#~ " Space separated list of change sources. Notifications are sent only\n"
-#~ " if it includes the incoming or outgoing changes source. Incoming\n"
-#~ " sources can be ``serve`` for changes coming from http or ssh,\n"
-#~ " ``pull`` for pulled changes, ``unbundle`` for changes added by\n"
-#~ " :hg:`unbundle` or ``push`` for changes being pushed\n"
-#~ " locally. Outgoing sources are the same except for ``unbundle`` which\n"
-#~ " is replaced by ``bundle``. Default: serve."
-#~ msgstr ""
-#~ "notify.sources\n"
-#~ " Разделенный пробелами ÑпиÑок иÑточников изменений. УведомлениÑ\n"
-#~ " отÑылаютÑÑ, только еÑли он Ñодержит иÑточники входÑщих или иÑходÑщих\n"
-#~ " изменений. ВходÑщие иÑточники могут быть ``serve`` - Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹,\n"
-#~ " получаемых по ssh или http, ``pull`` - Ð´Ð»Ñ Ð·Ð°Ñ‚Ñгиваемых изменений,\n"
-#~ " ``unbundle`` - Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹, добавлÑемых Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ :hg:`unbundle`,\n"
-#~ " или ``push`` - Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð½Ñ‹Ñ… локально Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команды :hg:`push`.\n"
-#~ " Такие же Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹ и Ð´Ð»Ñ Ð¸ÑходÑщих, кроме ``unbundle``, "
-#~ "который\n"
-#~ " заменÑетÑÑ Ð½Ð° ``bundle``. По умолчанию: serve."
-
-#~ msgid ""
-#~ "notify.domain\n"
-#~ " If subscribers emails or the from email have no domain set, complete "
-#~ "them\n"
-#~ " with this value."
-#~ msgstr ""
-#~ "notify.domain\n"
-#~ " ЕÑли адреÑа email подпиÑчиков или поле email \"From:\" (От) не имеют\n"
-#~ " домена, он заменÑетÑÑ Ñтим значением."
-
-#~ msgid "Sending "
-#~ msgstr "ОтправлÑетÑÑ "
-
-#~ msgid "force detaching of source from its original branch"
-#~ msgstr "принудительно отцепить иÑточник от его ветки-иÑточника"
-
-#~ msgid "cannot use detach with continue or abort"
-#~ msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать detach Ñ continue или abort"
-
-#~ msgid "cannot specify a base with detach"
-#~ msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð´Ð°Ð²Ð°Ñ‚ÑŒ base Ñ detach"
-
-#~ msgid "warning: immutable rebased changeset detected, can't abort\n"
-#~ msgstr ""
-#~ "внимание: обнаружены неизменÑемые перебазированные наборы изменений, "
-#~ "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ñ‚ÑŒ\n"
-
-#~ msgid "[OPTION]... REVISION..."
-#~ msgstr "[ПÐРÐМЕТР]... РЕВИЗИЯ..."
-
-#~ msgid "use \"hg -v help %s\" to show more info"
-#~ msgstr "иÑпользуйте \"hg -v help %s\" Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации"
-
-#~ msgid "There is no Mercurial repository here (.hg not found)"
-#~ msgstr "ЗдеÑÑŒ нет хранилища Mercurial (.hg не обнаружен)"
-
-#~ msgid ""
-#~ "If you notice \"BROKEN PIPE\" error messages, you can disable them by\n"
-#~ "setting::"
-#~ msgstr ""
-#~ "ЕÑли вы замечаете Ñообщение об ошибке \"BROKEN PIPE\" (\"ОБРЫВ КÐÐÐЛÐ\")\n"
-#~ "его можно отключить Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñледующего параметра::"
-
-#~ msgid ""
-#~ " [pager]\n"
-#~ " quiet = True"
-#~ msgstr ""
-#~ " [pager]\n"
-#~ " quiet = True"
-
-#~ msgid "The hook does not change bug status."
-#~ msgstr "Хук не изменÑет ÑÑ‚Ð°Ñ‚ÑƒÑ Ð±Ð°Ð³Ð°."
-
-#~ msgid ""
-#~ "bugzilla.regexp\n"
-#~ " Regular expression to match bug IDs in changeset commit message.\n"
-#~ " Must contain one \"()\" group. The default expression matches ``Bug\n"
-#~ " 1234``, ``Bug no. 1234``, ``Bug number 1234``, ``Bugs 1234,5678``,\n"
-#~ " ``Bug 1234 and 5678`` and variations thereof. Matching is case\n"
-#~ " insensitive."
-#~ msgstr ""
-#~ "bugzilla.regexp\n"
-#~ " РегулÑрное выражение Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка ID бага в комментарии фикÑации набора\n"
-#~ " изменений. Должно Ñодержать одну группу в Ñкобках \"()\". По умолчанию\n"
-#~ " задано выражение, Ñовпадающее Ñ ``Bug 1234``, ``Bug no. 1234``,\n"
-#~ " ``Bug number 1234``, ``Bugs 1234,5678``, ``Bug 1234 and 5678`` и их\n"
-#~ " вариациÑми. Ðе чувÑтвительно к региÑтру."
-
-#~ msgid "%s is not a valid revision in current branch"
-#~ msgstr "%s - недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ð° текущей ветке"
-
-#~ msgid "-G/--graph option is incompatible with --follow with file argument"
-#~ msgstr "Ð¾Ð¿Ñ†Ð¸Ñ -G/--graph неÑовмеÑтима Ñ --follow Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð¼-файлом"
-
-#~ msgid "hg glog [OPTION]... [FILE]"
-#~ msgstr "hg glog [ПÐРÐМЕТР]... [ФÐЙЛ]"
-
-#~ msgid "import a patch"
-#~ msgstr "импортировать патч"
-
-#~ msgid ""
-#~ " Returns 0 on success, 1 if no changes found or an update had\n"
-#~ " unresolved files.\n"
-#~ " "
-#~ msgstr ""
-#~ " Возвращает 0 при уÑпехе, 1 еÑли изменений не найдено или еÑÑ‚ÑŒ\n"
-#~ " конфликты при обновлении.\n"
-#~ " "
-
-#~ msgid ""
-#~ "Defines subrepositories source locations rewriting rules of the form::"
-#~ msgstr "ОпределÑет правила Ð¿ÐµÑ€ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑов иÑточников в форме::"
-
-#~ msgid "All patterns are applied in definition order."
-#~ msgstr "Ð’Ñе шаблоны применÑÑŽÑ‚ÑÑ Ð² порÑдке определениÑ."
-
-#~ msgid ""
-#~ "Close changeset\n"
-#~ " See 'Changeset, close'."
-#~ msgstr ""
-#~ "Закрыть набор изменений (ревизию)\n"
-#~ " См. 'Ðабор изменений, закрыть'."
-
-#~ msgid "bad hash in '%s' (only %d bytes long)"
-#~ msgstr "неверный Ñ…Ñш в '%s' (длина вÑего %d байт)"
-
-#~ msgid "addremove cannot be run on a repo with largefiles"
-#~ msgstr ""
-#~ "Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð¿ÑƒÑкать addremove в хранилище Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼Ð¸ файлами (largefiles)"
-
-#, fuzzy
-#~ msgid "Removing unknown node %(n)s from %(p)i-phase boundary"
-#~ msgstr "УдалÑем неизвеÑтный узел %(n)s из границы %(p)i-фазы"
-
-#~ msgid "follow takes no arguments"
-#~ msgstr "follow не требует аргументов"
-
-# BUG force won't help you to avoid data loss
-#~ msgid ""
-#~ " It's possible to lose data with rollback: commit, update back to\n"
-#~ " an older changeset, and then rollback. The update removes the\n"
-#~ " changes you committed from the working directory, and rollback\n"
-#~ " removes them from history. To avoid data loss, you must pass\n"
-#~ " --force in this case."
-#~ msgstr ""
-#~ " При иÑпользовании rollback возможна Ð¿Ð¾Ñ‚ÐµÑ€Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…: зафикÑировать,\n"
-#~ " обновитьÑÑ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾ на предыдущую ревизию и Ñделать rollback. Update\n"
-#~ " удалит изменениÑ, которые вы зафикÑировали, из рабочего каталога,\n"
-#~ " а rollback Ñотрет их из иÑтории. Чтобы избежать потери данных,\n"
-#~ " вы должны в таком Ñлучае передать --force."
-
-#~ msgid "%dм%02dÑ"
-#~ msgstr "%dм%02dÑ"
-
-#~ msgid "there is nothing to merge"
-#~ msgstr "нечего Ñливать"
-
-#~ msgid "acl: access denied for changeset %s"
-#~ msgstr "acl: нет доÑтупа Ð´Ð»Ñ Ð½Ð°Ð±Ð¾Ñ€Ð° изменений %s"
-
-#~ msgid " See :hg:`help urls` for valid source format details."
-#~ msgstr " См. :hg:`help urls` о форматах адреÑа иÑточника."
-
-#~ 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"
-#~ " Please see :hg:`help urls` for important details about ``ssh://`` "
-#~ "URLs."
-#~ msgstr ""
-#~ " Можно указать ``ssh://...`` в качеÑтве адреÑа назначениÑ, но файл\n"
-#~ " ``.hg/hgrc`` и Ñ€Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð½Ðµ будут Ñозданы на отдалённом "
-#~ "компьютере.\n"
-#~ " См. :hg:`help urls` Ð´Ð»Ñ Ð²Ð°Ð¶Ð½Ð¾Ð¹ информации об адреÑах вида ``ssh://..."
-#~ "``."
-
-#~ msgid ""
-#~ " A set of changesets (tags, or branch names) to pull may be specified\n"
-#~ " by listing each changeset (tag, or branch name) with -r/--rev.\n"
-#~ " If -r/--rev is used, the cloned repository will contain only a "
-#~ "subset\n"
-#~ " of the changesets of the source repository. Only the set of "
-#~ "changesets\n"
-#~ " defined by all -r/--rev options (including all their ancestors)\n"
-#~ " will be pulled into the destination repository.\n"
-#~ " No subsequent changesets (including subsequent tags) will be present\n"
-#~ " in the destination."
-#~ msgstr ""
-#~ " Копируемые наборы изменений (changesets) (как метки или имена веток)\n"
-#~ " могут быть заданы указанием каждого набора изменений (метки или "
-#~ "имени\n"
-#~ " ветки) Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -r/--rev. При иÑпользовании -r/--rev, клонированное\n"
-#~ " хранилище будет Ñодержать только подмножеÑтво наборов изменений\n"
-#~ " иÑточника."
-
-#~ msgid ""
-#~ " Using -r/--rev (or 'clone src#rev dest') implies --pull, even for\n"
-#~ " local source repositories."
-#~ msgstr ""
-#~ " ИÑпользование -r/--rev (или 'clone иÑточник#Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð½Ð°Ð·Ð½')\n"
-#~ " предполагает --pull, даже еÑли иÑточник локален."
-
-#~ msgid "applied %s\n"
-#~ msgstr "применен %s\n"
-
-#~ msgid ""
-#~ ":add: add does not recurse in subrepos unless -S/--subrepos is\n"
-#~ " specified. Subversion subrepositories are currently silently\n"
-#~ " ignored."
-#~ msgstr ""
-#~ ":add: add не обрабатывает подхранилища рекурÑивно, еÑли не указана\n"
-#~ " Ð¾Ð¿Ñ†Ð¸Ñ -S/--subrepos. Подхранилища Subversion в наÑтоÑщее\n"
-#~ " Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¾Ð»Ñ‡Ð° игнорируютÑÑ."
-
-#~ msgid "do not prompt, assume 'yes' for any required answers"
-#~ msgstr "не Ñпрашивать подтверждениÑ, вÑегда автоматичеÑки отвечать 'да'"
+msgstr ""
#~ msgid "read config from: %s\n"
#~ msgstr "читаю конфиг из: %s\n"
@@ -25277,9 +18867,9 @@ msgstr "ошибка при проталкивании:"
#~ " .. note::\n"
#~ " Эта команда почти навернÑка не то, что вы ищете. Revert\n"
#~ " чаÑтично перепиÑывает файлы в рабочем каталоге, не изменÑÑ ÐµÐ³Ð¾\n"
-#~ " родительÑкую ревизию в хранилище. ИÑпользуйте \n"
+#~ " родительÑкую ревизию в репозитории. ИÑпользуйте \n"
#~ " :hg:`update -r рев` чтобы извлечь предыдущие ревизии, или\n"
-#~ " :hg:`update --clean .` чтобы отменить ÑлиÑние, которое добавило\n"
+#~ " :hg update --clean .` чтобы отменить ÑлиÑние, которе добавило\n"
#~ " второго родителÑ."
#~ msgid ""
@@ -25289,7 +18879,7 @@ msgstr "ошибка при проталкивании:"
#~ " directory, the reverted files will thus appear modified\n"
#~ " afterwards."
#~ msgstr ""
-#~ " Revert изменÑет рабочий каталог. Она не фикÑирует никаких\n"
+#~ " Revert изменÑет рабочий каталог. Она не комитит никаких\n"
#~ " изменений и не менÑет Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ каталога. ЕÑли вы\n"
#~ " выполните revert на ревизию, отличную от текущей родительÑкой,\n"
#~ " воÑÑтановленные файлы будут иметь ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð½Ñ‹Ñ…."
@@ -25302,18 +18892,26 @@ msgstr "ошибка при проталкивании:"
#~ " ЕÑли файл был удален, он воÑÑтанавливаетÑÑ. У файлов, помеченных\n"
#~ " Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ, пометка ÑнимаетÑÑ, Ñами файлы при Ñтом не\n"
#~ " изменÑÑŽÑ‚ÑÑ. ЕÑли изменилÑÑ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ðº иÑполнимоÑти файла, он\n"
-#~ " ÑбраÑываетÑÑ."
+#~ " ÑбраываетÑÑ."
#~ msgid ""
#~ " If names are given, all files matching the names are reverted.\n"
#~ " If no arguments are given, no files are reverted."
#~ msgstr ""
#~ " ЕÑли заданы имена, воÑÑтанавливаютÑÑ Ð²Ñе файлы Ñ Ð¿Ð¾Ð´Ñ…Ð¾Ð´Ñщими\n"
-#~ " именами. Без аргументов никакие файлы не будут воÑÑтановлены."
+#~ " именами. Без аргумнтов никакие файлы не будут воÑÑтановлены."
+
+#~ 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 откатит вÑÑ‘ хранилище"
+#~ msgstr "не заданы файлы или каталоги; --all откатит веÑÑŒ репозиторий"
+
+#, fuzzy
+#~ msgid "%s already exists"
+#~ msgstr "файл %s уже ÑущеÑтвует\n"
#~ msgid "base path"
#~ msgstr "базовый путь"
@@ -25321,6 +18919,10 @@ msgstr "ошибка при проталкивании:"
#~ msgid "not updating, since new heads added\n"
#~ msgstr "не обновлÑÑŽÑÑŒ Ñ‚.к. добавлены новые головы\n"
+#, fuzzy
+#~ msgid "%s still exists!\n"
+#~ msgstr "файл %s уже ÑущеÑтвует\n"
+
#~ msgid ""
#~ "Mercurial reads configuration data from several files, if they exist.\n"
#~ "Below we list the most specific file first."
@@ -25344,13 +18946,13 @@ msgstr "ошибка при проталкивании:"
#~ "- ``<hg.exe-dir>\\hgrc.d\\*.rc`` (unless mercurial.ini found)\n"
#~ "- ``<hg.exe-dir>\\mercurial.ini``"
#~ msgstr ""
-#~ "- ``<хранилище>\\.hg\\hgrc``\n"
+#~ "- ``<репозиторий>\\.hg\\hgrc``\n"
#~ "- ``%USERPROFILE%\\.hgrc``\n"
#~ "- ``%USERPROFILE%\\mercurial.ini``\n"
#~ "- ``%HOME%\\.hgrc``\n"
#~ "- ``%HOME%\\mercurial.ini``\n"
-#~ "- ``C:\\mercurial\\mercurial.ini`` (еÑли не найден ключ в рееÑтре или "
-#~ "hgrc.d\\)\n"
+#~ "- ``C:\\mercurial\\mercurial.ini`` (еÑли не найден ключ в рееÑтре илиhgrc."
+#~ "d\\)\n"
#~ "- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (еÑли не найден hgrc.d\\или "
#~ "mercurial.ini)\n"
#~ "- ``<каталог-Ñ-hg.exe>\\hgrc.d\\*.rc`` (еÑли не найден mercurial.ini)\n"
@@ -25363,13 +18965,13 @@ msgstr "ошибка при проталкивании:"
#~ "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 ""
#~ " not trusting file <repo>/.hg/hgrc from untrusted user USER, group GROUP"
#~ msgstr ""
-#~ " не доверÑÑŽ файлу <хранилище>/.hg/hgrc от недоверенного пользователÑ\n"
+#~ " не доверÑÑŽ файлу <репозиторий>/.hg/hgrc от недоверенного пользователÑ\n"
#~ " ПОЛЬЗОВÐТЕЛЬ в группе ГРУППÐ"
#~ msgid ""
diff --git a/i18n/sv.po b/i18n/sv.po
index bbd3adc..dcaa7f9 100644
--- a/i18n/sv.po
+++ b/i18n/sv.po
@@ -1,23 +1,20 @@
# Swedish translation for Mercurial
# Svensk översättning för Mercurial
-# Copyright (C) 2009-2012 Matt Mackall and others
+# Copyright (C) 2009-2011 Matt Mackall and others
#
# Translation dictionary:
#
-# amend förändra
# changeset ändring
# commit arkivera
-# graft ympa
# merge sammanfoga
-# strip avlägsna
# tag märke
#
msgid ""
msgstr ""
"Project-Id-Version: Mercurial\n"
"Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2012-07-28 14:35+0200\n"
-"PO-Revision-Date: 2012-07-28 22:58+0200\n"
+"POT-Creation-Date: 2011-07-29 20:08+0200\n"
+"PO-Revision-Date: 2011-07-30 09:39+0200\n"
"Last-Translator: Jens Bäckman <jens.backman@gmail.com>\n"
"Language-Team: Swedish\n"
"Language: Swedish\n"
@@ -91,10 +88,10 @@ msgstr ""
msgid ""
"Branch-based Access Control\n"
-"---------------------------"
+"..........................."
msgstr ""
"Grenbaserad Ã…tkomstkontroll\n"
-"---------------------------"
+"..........................."
msgid ""
"Use the ``acl.deny.branches`` and ``acl.allow.branches`` sections to\n"
@@ -116,16 +113,11 @@ msgid ""
msgstr ""
msgid ""
-"You can add the \"!\" prefix to a user or group name to invert the sense\n"
-"of the match."
-msgstr ""
-
-msgid ""
"Path-based Access Control\n"
-"-------------------------"
+"........................."
msgstr ""
"Sökvägsbaserad Åtkomstkontroll\n"
-"------------------------------"
+".............................."
msgid ""
"Use the ``acl.deny`` and ``acl.allow`` sections to have path-based\n"
@@ -136,10 +128,10 @@ msgstr ""
msgid ""
"Groups\n"
-"------"
+"......"
msgstr ""
"Grupper\n"
-"-------"
+"......."
msgid ""
"Group names must be prefixed with an ``@`` symbol. Specifying a group\n"
@@ -155,10 +147,10 @@ msgstr ""
msgid ""
"Example Configuration\n"
-"---------------------"
+"....................."
msgstr ""
"Exempelkonfiguration\n"
-"--------------------"
+"...................."
msgid "::"
msgstr "::"
@@ -270,73 +262,15 @@ msgid ""
msgstr ""
msgid ""
-" # Everyone (except for \"user6\" and \"@hg-denied\" - see acl.deny above)\n"
-" # will have write access to any file under the \"resources\" folder\n"
-" # (except for 1 file. See acl.deny):\n"
+" # Everyone (except for \"user6\" - see acl.deny above) will have write\n"
+" # access to any file under the \"resources\" folder (except for 1\n"
+" # file. See acl.deny):\n"
" src/main/resources/** = *"
msgstr ""
msgid " .hgtags = release_engineer"
msgstr ""
-msgid ""
-"Examples using the \"!\" prefix\n"
-"............................."
-msgstr ""
-
-msgid ""
-"Suppose there's a branch that only a given user (or group) should be able "
-"to\n"
-"push to, and you don't want to restrict access to any other branch that may\n"
-"be created."
-msgstr ""
-
-msgid ""
-"The \"!\" prefix allows you to prevent anyone except a given user or group "
-"to\n"
-"push changesets in a given branch or path."
-msgstr ""
-
-msgid ""
-"In the examples below, we will:\n"
-"1) Deny access to branch \"ring\" to anyone but user \"gollum\"\n"
-"2) Deny access to branch \"lake\" to anyone but members of the group \"hobbit"
-"\"\n"
-"3) Deny access to a file to anyone but user \"gollum\""
-msgstr ""
-
-msgid ""
-" [acl.allow.branches]\n"
-" # Empty"
-msgstr ""
-
-msgid ""
-" # 1) only 'gollum' can commit to branch 'ring';\n"
-" # 'gollum' and anyone else can still commit to any other branch.\n"
-" ring = !gollum"
-msgstr ""
-
-msgid ""
-" # 2) only members of the group 'hobbit' can commit to branch 'lake';\n"
-" # 'hobbit' members and anyone else can still commit to any other branch.\n"
-" lake = !@hobbit"
-msgstr ""
-
-msgid " # You can also deny access based on file paths:"
-msgstr ""
-
-msgid ""
-" [acl.allow]\n"
-" # Empty"
-msgstr ""
-
-msgid ""
-" [acl.deny]\n"
-" # 3) only 'gollum' can change the file below;\n"
-" # 'gollum' and anyone else can still change any other file.\n"
-" /misty/mountains/cave/ring = !gollum"
-msgstr ""
-
#, python-format
msgid "group '%s' is undefined"
msgstr ""
@@ -355,12 +289,8 @@ msgid "acl: user \"%s\" not allowed on branch \"%s\" (changeset \"%s\")"
msgstr ""
#, python-format
-msgid "acl: user \"%s\" denied on \"%s\" (changeset \"%s\")"
-msgstr "acl: användaren \"%s\" nekades på \"%s\" (ändringen \"%s\")"
-
-#, python-format
-msgid "acl: user \"%s\" not allowed on \"%s\" (changeset \"%s\")"
-msgstr "acl: användaren \"%s\" tillåts inte på \"%s\" (ändringen \"%s\")"
+msgid "acl: access denied for changeset %s"
+msgstr ""
msgid "hooks for integrating with the Bugzilla bug tracker"
msgstr ""
@@ -371,9 +301,7 @@ msgid ""
"the Mercurial template mechanism."
msgstr ""
-msgid ""
-"The bug references can optionally include an update for Bugzilla of the\n"
-"hours spent working on the bug. Bugs can also be marked fixed."
+msgid "The hook does not change bug status."
msgstr ""
msgid "Three basic modes of access to Bugzilla are provided:"
@@ -402,7 +330,7 @@ msgid ""
"MySQL user and password to have full access rights to the Bugzilla\n"
"database. For these reasons this access mode is now considered\n"
"deprecated, and will not be updated for new Bugzilla versions going\n"
-"forward. Only adding comments is supported in this access mode."
+"forward."
msgstr ""
msgid ""
@@ -410,8 +338,7 @@ msgid ""
"in the configuration. Comments are added under that username. Since the\n"
"configuration must be readable by all Mercurial users, it is recommended\n"
"that the rights of that user are restricted in Bugzilla to the minimum\n"
-"necessary to add comments. Marking bugs fixed requires Bugzilla 4.0 and "
-"later."
+"necessary to add comments."
msgstr ""
msgid ""
@@ -421,8 +348,7 @@ msgid ""
"user, so the comment appears to come from the Mercurial user. In the event\n"
"that the Mercurial user email is not recognised by Bugzilla as a Bugzilla\n"
"user, the email associated with the Bugzilla username used to log into\n"
-"Bugzilla is used instead as the source of the comment. Marking bugs fixed\n"
-"works on all supported Bugzilla versions."
+"Bugzilla is used instead as the source of the comment."
msgstr ""
msgid "Configuration items common to all access modes:"
@@ -445,43 +371,11 @@ msgstr ""
msgid ""
"bugzilla.regexp\n"
-" Regular expression to match bug IDs for update in changeset commit "
-"message.\n"
-" It must contain one \"()\" named group ``<ids>`` containing the bug\n"
-" IDs separated by non-digit characters. It may also contain\n"
-" a named group ``<hours>`` with a floating-point number giving the\n"
-" hours worked on the bug. If no named groups are present, the first\n"
-" \"()\" group is assumed to contain the bug IDs, and work time is not\n"
-" updated. The default expression matches ``Bug 1234``, ``Bug no. 1234``,\n"
-" ``Bug number 1234``, ``Bugs 1234,5678``, ``Bug 1234 and 5678`` and\n"
-" variations thereof, followed by an hours number prefixed by ``h`` or\n"
-" ``hours``, e.g. ``hours 1.5``. Matching is case insensitive."
-msgstr ""
-
-msgid ""
-"bugzilla.fixregexp\n"
-" Regular expression to match bug IDs for marking fixed in changeset\n"
-" commit message. This must contain a \"()\" named group ``<ids>` "
-"containing\n"
-" the bug IDs separated by non-digit characters. It may also contain\n"
-" a named group ``<hours>`` with a floating-point number giving the\n"
-" hours worked on the bug. If no named groups are present, the first\n"
-" \"()\" group is assumed to contain the bug IDs, and work time is not\n"
-" updated. The default expression matches ``Fixes 1234``, ``Fixes bug "
-"1234``,\n"
-" ``Fixes bugs 1234,5678``, ``Fixes 1234 and 5678`` and\n"
-" variations thereof, followed by an hours number prefixed by ``h`` or\n"
-" ``hours``, e.g. ``hours 1.5``. Matching is case insensitive."
-msgstr ""
-
-msgid ""
-"bugzilla.fixstatus\n"
-" The status to set a bug to when marking fixed. Default ``RESOLVED``."
-msgstr ""
-
-msgid ""
-"bugzilla.fixresolution\n"
-" The resolution to set a bug to when marking fixed. Default ``FIXED``."
+" Regular expression to match bug IDs in changeset commit message.\n"
+" Must contain one \"()\" group. The default expression matches ``Bug\n"
+" 1234``, ``Bug no. 1234``, ``Bug number 1234``, ``Bugs 1234,5678``,\n"
+" ``Bug 1234 and 5678`` and variations thereof. Matching is case\n"
+" insensitive."
msgstr ""
msgid ""
@@ -753,10 +647,6 @@ msgid "unknown database schema"
msgstr ""
#, python-format
-msgid "bug %d does not exist\n"
-msgstr "bugg %d existerar inte\n"
-
-#, python-format
msgid "bug %d already knows about changeset %s\n"
msgstr ""
@@ -790,12 +680,6 @@ msgstr ""
msgid "cannot find bugzilla user id for %s or %s"
msgstr ""
-msgid "Bugzilla/MySQL cannot update bug state\n"
-msgstr ""
-
-msgid "Bugzilla/XMLRPC needs Bugzilla 4.0 or later to mark bugs fixed\n"
-msgstr ""
-
msgid "configuration 'bzemail' missing"
msgstr "'bzemail' inte konfigurerad"
@@ -807,10 +691,6 @@ msgstr ""
msgid "bugzilla version %s not supported"
msgstr "bugzilla version %s stöds inte"
-#, python-format
-msgid "%s: invalid hours\n"
-msgstr "%s: ogiltiga timmar\n"
-
msgid ""
"changeset {node|short} in repo {root} refers to bug {bug}.\n"
"details:\n"
@@ -825,15 +705,8 @@ msgstr ""
msgid "Bugzilla error: %s"
msgstr "Bugzilla-fel: %s"
-msgid "command to display child changesets (DEPRECATED)"
-msgstr "kommando för att visa barnändringar (FÖRLEGAD)"
-
-msgid ""
-"This extension is deprecated. You should use :hg:`log -r\n"
-"\"children(REV)\"` instead.\n"
+msgid "command to display child changesets"
msgstr ""
-"Detta är en förlegad utökning. Du kan avända :hg:`log -r\n"
-"\"children(REV)\"` instead.\n"
msgid "show the children of the given or working directory revision"
msgstr ""
@@ -860,7 +733,7 @@ msgid "command to display statistics about repository history"
msgstr ""
#, python-format
-msgid "revision %d is a merge, ignoring...\n"
+msgid "Revision %d is a merge, ignoring...\n"
msgstr ""
msgid "analyzing"
@@ -1073,13 +946,6 @@ msgstr ""
" branches.inactive = none"
msgid ""
-" tags.normal = green\n"
-" tags.local = black bold"
-msgstr ""
-" tags.normal = green\n"
-" tags.local = black bold"
-
-msgid ""
"The available effects in terminfo mode are 'blink', 'bold', 'dim',\n"
"'inverse', 'invisible', 'italic', 'standout', and 'underline'; in\n"
"ECMA-48 mode, the options are 'bold', 'inverse', 'italic', and\n"
@@ -1359,10 +1225,10 @@ msgstr ""
msgid ""
" Mercurial Source\n"
-" ################"
+" ''''''''''''''''"
msgstr ""
" Mercurial-källa\n"
-" ###############"
+" '''''''''''''''"
msgid ""
" The Mercurial source recognizes the following configuration\n"
@@ -1377,8 +1243,8 @@ msgstr ""
msgid ""
" :convert.hg.saverev: store original revision ID in changeset\n"
-" (forces target IDs to change). It takes a boolean argument and\n"
-" defaults to False."
+" (forces target IDs to change). It takes and boolean argument\n"
+" and defaults to False."
msgstr ""
msgid ""
@@ -1388,10 +1254,10 @@ msgstr ""
msgid ""
" CVS Source\n"
-" ##########"
+" ''''''''''"
msgstr ""
" CVS-källa\n"
-" #########"
+" '''''''''"
msgid ""
" CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n"
@@ -1447,7 +1313,7 @@ msgstr ""
msgid ""
" :hook.cvschangesets: Specify a Python function to be called after\n"
-" the changesets are calculated from the CVS log. The\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 ""
@@ -1461,10 +1327,10 @@ msgstr ""
msgid ""
" Subversion Source\n"
-" #################"
+" '''''''''''''''''"
msgstr ""
" Subversion-källa\n"
-" ################"
+" ''''''''''''''''"
msgid ""
" Subversion source detects classical trunk/branches/tags layouts.\n"
@@ -1510,10 +1376,10 @@ msgstr ""
msgid ""
" Perforce Source\n"
-" ###############"
+" '''''''''''''''"
msgstr ""
" Perforce-källa\n"
-" ##############"
+" ''''''''''''''"
msgid ""
" The Perforce (P4) importer can be given a p4 depot path or a\n"
@@ -1536,10 +1402,10 @@ msgstr ""
msgid ""
" Mercurial Destination\n"
-" #####################"
+" '''''''''''''''''''''"
msgstr ""
" Mercurial-destination\n"
-" #####################"
+" '''''''''''''''''''''"
msgid " The following options are supported:"
msgstr ""
@@ -1670,8 +1536,8 @@ msgid "bzr source type could not be determined\n"
msgstr ""
#, python-format
-msgid "%s is not a valid revision"
-msgstr "%s är inte en giltig revision"
+msgid "%s is not a valid revision in current branch"
+msgstr ""
#, python-format
msgid "%s is not available in %s anymore"
@@ -1698,10 +1564,6 @@ msgid "could not open map file %r: %s"
msgstr ""
#, python-format
-msgid "syntax error in %s(%d): child parent1[,parent2] expected"
-msgstr ""
-
-#, python-format
msgid "%s: invalid source repository type"
msgstr "%s: ogiltig typ för källarkiv"
@@ -1731,14 +1593,6 @@ msgid "scanning"
msgstr "skannar"
#, python-format
-msgid "splice map revision %s is not being converted, ignoring\n"
-msgstr ""
-
-#, python-format
-msgid "unknown splice map parent: %s"
-msgstr ""
-
-#, python-format
msgid "unknown sort mode: %s"
msgstr ""
@@ -1750,11 +1604,11 @@ msgid "not all revisions were sorted"
msgstr ""
#, python-format
-msgid "writing author map file %s\n"
+msgid "Writing author map file %s\n"
msgstr ""
#, python-format
-msgid "ignoring bad line in author map file %s: %s\n"
+msgid "Ignoring bad line in author map file %s: %s\n"
msgstr ""
#, python-format
@@ -1999,12 +1853,6 @@ msgid "updating bookmarks\n"
msgstr "uppdaterar bokmärken\n"
#, python-format
-msgid ""
-"revision %s not found in destination repository (lookups with "
-"clonebranches=true are not implemented)"
-msgstr ""
-
-#, python-format
msgid "%s is not a valid start revision"
msgstr ""
@@ -2065,16 +1913,9 @@ msgstr ""
msgid "collecting p4 changelists\n"
msgstr ""
-msgid "debugsvnlog could not load Subversion python bindings"
-msgstr ""
-
msgid "Mercurial failed to run itself, check hg executable is in PATH"
msgstr ""
-#, python-format
-msgid "log stream exception '%s'"
-msgstr ""
-
msgid ""
"svn: cannot probe remote repository, assume it could be a subversion "
"repository. Use --source-type if you know better.\n"
@@ -2084,7 +1925,7 @@ msgstr ""
msgid "%s does not look like a Subversion repository"
msgstr "%s verkar inte vara ett Subversion-arkiv"
-msgid "could not load Subversion python bindings"
+msgid "Could not load Subversion python bindings"
msgstr ""
#, python-format
@@ -2130,10 +1971,6 @@ msgid "svn: no revision found after start revision %d"
msgstr ""
#, python-format
-msgid "svn: revision %s not found"
-msgstr "svn: revisionen %s hittades inte"
-
-#, python-format
msgid "%s not found up to revision %d"
msgstr ""
@@ -2169,12 +2006,6 @@ msgstr ""
msgid "writing Subversion tags is not yet implemented\n"
msgstr ""
-#, python-format
-msgid ""
-"splice map revision %s not found in subversion child map (revision lookups "
-"are not implemented)"
-msgstr ""
-
msgid "automatically manage newlines in repository files"
msgstr ""
@@ -2248,10 +2079,9 @@ msgid ""
msgstr ""
msgid ""
-"The extension uses an optional ``[eol]`` section read from both the\n"
-"normal Mercurial configuration files and the ``.hgeol`` file, with the\n"
-"latter overriding the former. You can use that section to control the\n"
-"overall behavior. There are three settings:"
+"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:"
msgstr ""
msgid ""
@@ -2270,12 +2100,6 @@ msgid ""
msgstr ""
msgid ""
-"- ``eol.fix-trailing-newline`` (default False) can be set to True to\n"
-" ensure that converted files end with a EOL character (either ``\\n``\n"
-" or ``\\r\\n`` as per the configured patterns)."
-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"
@@ -2361,8 +2185,7 @@ msgid ""
" # (see http://www.vim.org/scripts/script.php?script_id=102) Non\n"
" # English user, be sure to put \"let g:DirDiffDynamicDiffText = 1\" in\n"
" # your .vimrc\n"
-" vimdiff = gvim -f \"+next\" \\\n"
-" \"+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))\""
+" vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'"
msgstr ""
msgid "Tool arguments can include variables that are expanded at runtime::"
@@ -2475,56 +2298,7 @@ msgstr ""
msgid "hg %s [OPTION]... [FILE]..."
msgstr ""
-msgid "http authentication with factotum"
-msgstr ""
-
-msgid ""
-"This extension allows the factotum(4) facility on Plan 9 from Bell Labs\n"
-"platforms to provide authentication information for HTTP access. "
-"Configuration\n"
-"entries specified in the auth section as well as authentication information\n"
-"provided in the repository URL are fully supported. If no prefix is "
-"specified,\n"
-"a value of \"*\" will be assumed."
-msgstr ""
-
-msgid "By default, keys are specified as::"
-msgstr ""
-
-msgid ""
-" proto=pass service=hg prefix=<prefix> user=<username> !password=<password>"
-msgstr ""
-
-msgid ""
-"If the factotum extension is unable to read the required key, one will be\n"
-"requested interactively."
-msgstr ""
-
-msgid ""
-"A configuration section is available to customize runtime behavior. By\n"
-"default, these entries are::"
-msgstr ""
-
-msgid ""
-" [factotum]\n"
-" executable = /bin/auth/factotum\n"
-" mountpoint = /mnt/factotum\n"
-" service = hg"
-msgstr ""
-
-msgid ""
-"The executable entry defines the full path to the factotum binary. The\n"
-"mountpoint entry defines the path to the factotum file service. Lastly, the\n"
-"service entry controls the service name used when reading keys."
-msgstr ""
-
-msgid "factotum not interactive"
-msgstr ""
-
-msgid "factotum not responding"
-msgstr ""
-
-msgid "pull, update and merge in one command (DEPRECATED)"
+msgid "pull, update and merge in one command"
msgstr ""
msgid "pull changes from a remote repository, merge new changes if needed."
@@ -2543,9 +2317,10 @@ msgid ""
msgstr ""
msgid ""
-" When a merge is needed, the working directory is first updated to\n"
-" the newly pulled changes. Local changes are then merged into the\n"
-" pulled changes. To switch the merge order, use --switch-parent."
+" When a merge occurs, the newly pulled changes are assumed to be\n"
+" \"authoritative\". The head of the new changes is used as the first\n"
+" parent, with local changes as the second. To switch the merge\n"
+" order, use --switch-parent."
msgstr ""
msgid " See :hg:`help dates` for a list of formats valid for -d/--date."
@@ -2584,10 +2359,10 @@ msgid "pulling from %s\n"
msgstr "drar från %s\n"
msgid ""
-"other repository doesn't support revision lookup, so a rev cannot be "
+"Other repository doesn't support revision lookup, so a rev cannot be "
"specified."
msgstr ""
-"det andra arkivet stödjer inte revisionsuppslag, så en revision kan inte "
+"Det andra arkivet stödjer inte revisionsuppslag, så en revision kan inte "
"anges."
#, python-format
@@ -2653,15 +2428,15 @@ msgstr "visa signerade ändringar"
msgid "%s:%d node does not exist\n"
msgstr "%s:%d noden existerar inte\n"
-msgid "hg sigcheck REV"
-msgstr "hg sigcheck REV"
+msgid "hg sigcheck REVISION"
+msgstr "hg sigcheck REVISION"
msgid "verify all the signatures there may be for a particular revision"
msgstr "verifiera alla signaturerna som finns för en viss revision"
#, python-format
-msgid "no valid signature for %s\n"
-msgstr "ingen giltig signatur för %s\n"
+msgid "No valid signature for %s\n"
+msgstr "Ingen giltig signatur för %s\n"
msgid "make the signature local"
msgstr "gör signaturen lokal"
@@ -2684,8 +2459,8 @@ msgstr "TEXT"
msgid "commit message"
msgstr "arkiveringsmeddelande"
-msgid "hg sign [OPTION]... [REV]..."
-msgstr "hg sign [FLAGGA]... [REV]..."
+msgid "hg sign [OPTION]... [REVISION]..."
+msgstr "hg sign [FLAGGA]... [REVISION]..."
msgid "add a signature for the current or given revision"
msgstr "lägg till en signatur för den aktuella eller angivna revisionen"
@@ -2708,8 +2483,8 @@ msgid "uncommitted merge - please provide a specific revision"
msgstr "oarkiverad sammanfogning - ange en specifik revision"
#, python-format
-msgid "signing %d:%s\n"
-msgstr "signerar %d:%s\n"
+msgid "Signing %d:%s\n"
+msgstr "Signerar %d:%s\n"
msgid "error while signing"
msgstr "fel vid signering"
@@ -2736,54 +2511,27 @@ msgstr ""
"outgoing och log. När flaggan anges, visas också en ASCII-version av\n"
"revisionsgrafen.\n"
-msgid "follow changeset history, or file history across copies and renames"
-msgstr ""
-"följ ändringshistorik, eller filhistorik över kopieringar och namnbyten"
+#, python-format
+msgid "-G/--graph option is incompatible with --%s"
+msgstr "flaggan -G/--graph är inkompatibel med --%s"
-msgid "only follow the first parent of merge changesets (DEPRECATED)"
-msgstr "följ bara den första föräldern vid sammanfogningar (FÖRLEGAD)"
+msgid "-G/--graph option is incompatible with --follow with file argument"
+msgstr "flaggan -G/--graph är inkompatibel med --follow med filargument"
-msgid "show revisions matching date spec"
-msgstr "visa revisioner som matchar datumspecen"
+msgid "NUM"
+msgstr "NUM"
-msgid "show copied files"
-msgstr "visa kopierade filer"
+msgid "limit number of changes displayed"
+msgstr "begränsa antalet visade ändringar"
-msgid "do case-insensitive search for a given text"
-msgstr "gör versalokänslig sökning efter en given text"
+msgid "show patch"
+msgstr "visa patch"
msgid "show the specified revision or range"
msgstr "visa den specifika revisionen eller serien"
-msgid "include revisions where files were removed"
-msgstr "inkludera revisioner där filer togs bort"
-
-msgid "show only merges (DEPRECATED)"
-msgstr "visa bara sammanfogningar (FÖRLEGAD)"
-
-msgid "USER"
-msgstr "ANVÄNDARE"
-
-msgid "revisions committed by user"
-msgstr "revisioner arkiverade av användare"
-
-msgid "show only changesets within the given named branch (DEPRECATED)"
-msgstr "visa bara ändringar i den namngivna grenen (FÖRLEGAD)"
-
-msgid "BRANCH"
-msgstr "GREN"
-
-msgid "show changesets within the given named branch"
-msgstr "visa ändringar i den namngivna grenen"
-
-msgid "do not display revision or any of its ancestors"
-msgstr "visa inte revision eller någon av dess föräldrar"
-
-msgid "show hidden changesets (DEPRECATED)"
-msgstr "visa dolda ändringar (FÖRLEGAD)"
-
-msgid "[OPTION]... [FILE]"
-msgstr "[FLAGGA]... [FIL]"
+msgid "hg glog [OPTION]... [FILE]"
+msgstr "hg glog [FLAGGA]... [FIL]"
msgid "show revision history alongside an ASCII revision graph"
msgstr "visa revisionshistorik vid sidan av en ASCII-revisionsgraf"
@@ -2803,6 +2551,9 @@ msgstr ""
" Noder visade som ett @-tecken är föräldrar till arbetskatalogen.\n"
" "
+msgid "show the revision DAG"
+msgstr "visa revisionsdiagram"
+
msgid "hooks for integrating with the CIA.vc notification service"
msgstr ""
@@ -2930,12 +2681,6 @@ msgstr ""
msgid "start interactive history viewer"
msgstr ""
-msgid "NUM"
-msgstr "NUM"
-
-msgid "limit number of changes displayed"
-msgstr "begränsa antalet visade ändringar"
-
msgid "hg view [-l LIMIT] [REVRANGE]"
msgstr ""
@@ -2969,9 +2714,8 @@ msgstr ""
msgid "hg debug-merge-base REV REV"
msgstr ""
-#. i18n: bisect changeset status
msgid "ignored"
-msgstr "ignorerad"
+msgstr ""
msgid "hg debug-rev-parse REV"
msgstr ""
@@ -2992,323 +2736,24 @@ msgid "hg debug-rev-list [OPTION]... REV..."
msgstr ""
msgid "syntax highlighting for hgweb (requires Pygments)"
-msgstr "syntaxfärgning för hgweb (kräver Pygments)"
+msgstr ""
msgid ""
"It depends on the Pygments syntax highlighting library:\n"
"http://pygments.org/"
msgstr ""
-"Den beror på syntaxfärgningsbiblioteket Pygments:\n"
-"http://pygments.org/"
msgid "There is a single configuration option::"
-msgstr "Det finns ett enda konfigurationsalternativ::"
+msgstr ""
msgid ""
" [web]\n"
" pygments_style = <style>"
msgstr ""
-" [web]\n"
-" pygments_style = <style>"
msgid "The default is 'colorful'.\n"
-msgstr "Som standard används 'colorful'.\n"
-
-msgid "interactive history editing"
-msgstr "interaktiv historieredigering"
-
-msgid ""
-"With this extension installed, Mercurial gains one new command: histedit. "
-"Usage\n"
-"is as follows, assuming the following history::"
-msgstr ""
-"Med denna utökning installerad, så får Mercurial ett nytt kommando: \n"
-"histedit. Det används som följer, förutsatt denna historia::"
-
-msgid ""
-" @ 3[tip] 7c2fd3b9020c 2009-04-27 18:04 -0500 durin42\n"
-" | Add delta\n"
-" |\n"
-" o 2 030b686bedc4 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 1 c561b4e977df 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-" @ 3[tip] 7c2fd3b9020c 2009-04-27 18:04 -0500 durin42\n"
-" | Add delta\n"
-" |\n"
-" o 2 030b686bedc4 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 1 c561b4e977df 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-
-msgid ""
-"If you were to run ``hg histedit c561b4e977df``, you would see the "
-"following\n"
-"file open in your editor::"
-msgstr ""
-"Om du skulle köra ``hg histedit c561b4e977df``, så skulle den följande \n"
-"filen öppnas i din editor::"
-
-msgid ""
-" pick c561b4e977df Add beta\n"
-" pick 030b686bedc4 Add gamma\n"
-" pick 7c2fd3b9020c Add delta"
-msgstr ""
-" pick c561b4e977df Add beta\n"
-" pick 030b686bedc4 Add gamma\n"
-" pick 7c2fd3b9020c Add delta"
-
-msgid ""
-" # Edit history between 633536316234 and 7c2fd3b9020c\n"
-" #\n"
-" # Commands:\n"
-" # p, pick = use commit\n"
-" # e, edit = use commit, but stop for amending\n"
-" # f, fold = use commit, but fold into previous commit\n"
-" # d, drop = remove commit from history\n"
-" # m, mess = edit message without changing commit content\n"
-" #\n"
-" 0 files updated, 0 files merged, 0 files removed, 0 files unresolved"
-msgstr ""
-
-msgid ""
-"In this file, lines beginning with ``#`` are ignored. You must specify a "
-"rule\n"
-"for each revision in your history. For example, if you had meant to add "
-"gamma\n"
-"before beta, and then wanted to add delta in the same revision as beta, you\n"
-"would reorganize the file to look like this::"
-msgstr ""
-
-msgid ""
-" pick 030b686bedc4 Add gamma\n"
-" pick c561b4e977df Add beta\n"
-" fold 7c2fd3b9020c Add delta"
-msgstr ""
-" pick 030b686bedc4 Add gamma\n"
-" pick c561b4e977df Add beta\n"
-" fold 7c2fd3b9020c Add delta"
-
-msgid ""
-"At which point you close the editor and ``histedit`` starts working. When "
-"you\n"
-"specify a ``fold`` operation, ``histedit`` will open an editor when it "
-"folds\n"
-"those revisions together, offering you a chance to clean up the commit "
-"message::"
-msgstr ""
-
-msgid ""
-" Add beta\n"
-" ***\n"
-" Add delta"
-msgstr ""
-
-msgid ""
-"Edit the commit message to your liking, then close the editor. For\n"
-"this example, let's assume that the commit message was changed to\n"
-"``Add beta and delta.`` After histedit has run and had a chance to\n"
-"remove any old or temporary revisions it needed, the history looks\n"
-"like this::"
-msgstr ""
-
-msgid ""
-" @ 2[tip] 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-
-msgid ""
-"Note that ``histedit`` does *not* remove any revisions (even its own "
-"temporary\n"
-"ones) until after it has completed all the editing operations, so it will\n"
-"probably perform several strip operations when it's done. For the above "
-"example,\n"
-"it had to run strip twice. Strip can be slow depending on a variety of "
-"factors,\n"
-"so you might need to be a little patient. You can choose to keep the "
-"original\n"
-"revisions by passing the ``--keep`` flag."
-msgstr ""
-
-msgid ""
-"The ``edit`` operation will drop you back to a command prompt,\n"
-"allowing you to edit files freely, or even use ``hg record`` to commit\n"
-"some changes as a separate commit. When you're done, any remaining\n"
-"uncommitted changes will be committed as well. When done, run ``hg\n"
-"histedit --continue`` to finish this step. You'll be prompted for a\n"
-"new commit message, but the default commit message will be the\n"
-"original message for the ``edit`` ed revision."
-msgstr ""
-
-msgid ""
-"The ``message`` operation will give you a chance to revise a commit\n"
-"message without changing the contents. It's a shortcut for doing\n"
-"``edit`` immediately followed by `hg histedit --continue``."
-msgstr ""
-
-msgid ""
-"If ``histedit`` encounters a conflict when moving a revision (while\n"
-"handling ``pick`` or ``fold``), it'll stop in a similar manner to\n"
-"``edit`` with the difference that it won't prompt you for a commit\n"
-"message when done. If you decide at this point that you don't like how\n"
-"much work it will be to rearrange history, or that you made a mistake,\n"
-"you can use ``hg histedit --abort`` to abandon the new changes you\n"
-"have made and return to the state before you attempted to edit your\n"
-"history."
-msgstr ""
-
-msgid ""
-"If we clone the example repository above and add three more changes, such "
-"that\n"
-"we have the following history::"
-msgstr ""
-
-msgid ""
-" @ 6[tip] 038383181893 2009-04-27 18:04 -0500 stefan\n"
-" | Add theta\n"
-" |\n"
-" o 5 140988835471 2009-04-27 18:04 -0500 stefan\n"
-" | Add eta\n"
-" |\n"
-" o 4 122930637314 2009-04-27 18:04 -0500 stefan\n"
-" | Add zeta\n"
-" |\n"
-" o 3 836302820282 2009-04-27 18:04 -0500 stefan\n"
-" | Add epsilon\n"
-" |\n"
-" o 2 989b4d060121 2009-04-27 18:04 -0500 durin42\n"
-" | Add beta and delta.\n"
-" |\n"
-" o 1 081603921c3f 2009-04-27 18:04 -0500 durin42\n"
-" | Add gamma\n"
-" |\n"
-" o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 durin42\n"
-" Add alpha"
-msgstr ""
-
-msgid ""
-"If you run ``hg histedit --outgoing`` on the clone then it is the same\n"
-"as running ``hg histedit 836302820282``. If you need plan to push to a\n"
-"repository that Mercurial does not detect to be related to the source\n"
-"repo, you can add a ``--force`` option.\n"
-msgstr ""
-
-msgid "cannot edit history that would orphan nodes"
-msgstr ""
-
-msgid "can't edit history with merges"
-msgstr "kan inte redigera historik med sammanfogningar"
-
-#, python-format
-msgid "%s: empty changeset"
-msgstr "%s: tom ändring"
-
-msgid "Fix up the change and run hg histedit --continue"
-msgstr "Fixa ändringen och kör hg histedit --continue"
-
-msgid ""
-"Make changes as needed, you may commit or record as needed now.\n"
-"When you are finished, run hg histedit --continue to resume."
-msgstr ""
-
-msgid "Read history edits from the specified file."
-msgstr "Läs historieändringar från den angivna filen"
-
-msgid "continue an edit already in progress"
-msgstr ""
-
-msgid "don't strip old nodes after edit is complete"
-msgstr ""
-
-msgid "abort an edit in progress"
-msgstr ""
-
-msgid "changesets not found in destination"
-msgstr "visa ändringar som inte hittas i destinationen"
-
-msgid "force outgoing even for unrelated repositories"
msgstr ""
-msgid "first revision to be edited"
-msgstr "första revision att redigera"
-
-msgid "[PARENT]"
-msgstr "[FÖRÄLDER]"
-
-msgid ""
-"interactively edit changeset history\n"
-" "
-msgstr ""
-
-msgid "source has mq patches applied"
-msgstr ""
-
-msgid "only one repo argument allowed with --outgoing"
-msgstr ""
-
-#, python-format
-msgid "comparing with %s\n"
-msgstr "jämför med %s\n"
-
-msgid "--force only allowed with --outgoing"
-msgstr ""
-
-msgid "no arguments allowed with --continue"
-msgstr ""
-
-msgid "no arguments allowed with --abort"
-msgstr ""
-
-msgid "history edit already in progress, try --continue or --abort"
-msgstr ""
-
-msgid "histedit requires exactly one parent revision"
-msgstr "histedit kräver exakt en förälderrevision"
-
-msgid "histedit: Should update metadata for the following changes:\n"
-msgstr ""
-
-#, python-format
-msgid "histedit: %s to %s\n"
-msgstr "histedit: %s till %s\n"
-
-#, python-format
-msgid "histedit: moving bookmarks %s\n"
-msgstr "histedit: flyttar bokmärken %s\n"
-
-msgid "must specify a rule for each changeset once"
-msgstr ""
-
-#, python-format
-msgid "malformed line \"%s\""
-msgstr "defekt rad \"%s\""
-
-msgid "may not use changesets other than the ones listed"
-msgstr ""
-
-#, python-format
-msgid "unknown changeset %s listed"
-msgstr "okänd ändring %s angiven"
-
-#, python-format
-msgid "unknown action \"%s\""
-msgstr "okänd handling \"%s\""
-
msgid "accelerate status report using Linux's inotify service"
msgstr ""
@@ -3751,479 +3196,6 @@ msgid ""
" "
msgstr ""
-msgid "track large binary files"
-msgstr "spåra stora binärfiler"
-
-msgid ""
-"Large binary files tend to be not very compressible, not very\n"
-"diffable, and not at all mergeable. Such files are not handled\n"
-"efficiently by Mercurial's storage format (revlog), which is based on\n"
-"compressed binary deltas; storing large binary files as regular\n"
-"Mercurial files wastes bandwidth and disk space and increases\n"
-"Mercurial's memory usage. The largefiles extension addresses these\n"
-"problems by adding a centralized client-server layer on top of\n"
-"Mercurial: largefiles live in a *central store* out on the network\n"
-"somewhere, and you only fetch the revisions that you need when you\n"
-"need them."
-msgstr ""
-
-msgid ""
-"largefiles works by maintaining a \"standin file\" in .hglf/ for each\n"
-"largefile. The standins are small (41 bytes: an SHA-1 hash plus\n"
-"newline) and are tracked by Mercurial. Largefile revisions are\n"
-"identified by the SHA-1 hash of their contents, which is written to\n"
-"the standin. largefiles uses that revision ID to get/put largefile\n"
-"revisions from/to the central store. This saves both disk space and\n"
-"bandwidth, since you don't need to retrieve all historical revisions\n"
-"of large files when you clone or pull."
-msgstr ""
-
-msgid ""
-"To start a new repository or add new large binary files, just add\n"
-"--large to your :hg:`add` command. For example::"
-msgstr ""
-
-msgid ""
-" $ dd if=/dev/urandom of=randomdata count=2000\n"
-" $ hg add --large randomdata\n"
-" $ hg commit -m 'add randomdata as a largefile'"
-msgstr ""
-
-msgid ""
-"When you push a changeset that adds/modifies largefiles to a remote\n"
-"repository, its largefile revisions will be uploaded along with it.\n"
-"Note that the remote Mercurial must also have the largefiles extension\n"
-"enabled for this to work."
-msgstr ""
-
-msgid ""
-"When you pull a changeset that affects largefiles from a remote\n"
-"repository, Mercurial behaves as normal. However, when you update to\n"
-"such a revision, any largefiles needed by that revision are downloaded\n"
-"and cached (if they have never been downloaded before). This means\n"
-"that network access may be required to update to changesets you have\n"
-"not previously updated to."
-msgstr ""
-
-msgid ""
-"If you already have large files tracked by Mercurial without the\n"
-"largefiles extension, you will need to convert your repository in\n"
-"order to benefit from largefiles. This is done with the\n"
-":hg:`lfconvert` command::"
-msgstr ""
-
-msgid " $ hg lfconvert --size 10 oldrepo newrepo"
-msgstr ""
-
-msgid ""
-"In repositories that already have largefiles in them, any new file\n"
-"over 10MB will automatically be added as a largefile. To change this\n"
-"threshold, set ``largefiles.minsize`` in your Mercurial config file\n"
-"to the minimum size in megabytes to track as a largefile, or use the\n"
-"--lfsize option to the add command (also in megabytes)::"
-msgstr ""
-
-msgid ""
-" [largefiles]\n"
-" minsize = 2"
-msgstr ""
-
-msgid " $ hg add --lfsize 2"
-msgstr ""
-
-msgid ""
-"The ``largefiles.patterns`` config option allows you to specify a list\n"
-"of filename patterns (see :hg:`help patterns`) that should always be\n"
-"tracked as largefiles::"
-msgstr ""
-
-msgid ""
-" [largefiles]\n"
-" patterns =\n"
-" *.jpg\n"
-" re:.*\\.(png|bmp)$\n"
-" library.zip\n"
-" content/audio/*"
-msgstr ""
-
-msgid ""
-"Files that match one of these patterns will be added as largefiles\n"
-"regardless of their size."
-msgstr ""
-
-msgid ""
-"The ``largefiles.minsize`` and ``largefiles.patterns`` config options\n"
-"will be ignored for any repositories not already containing a\n"
-"largefile. To add the first largefile to a repository, you must\n"
-"explicitly do so with the --large flag passed to the :hg:`add`\n"
-"command.\n"
-msgstr ""
-
-msgid "convert a normal repository to a largefiles repository"
-msgstr "konvertera ett normalt arkiv till ett largefiles-arkiv"
-
-msgid ""
-" Convert repository SOURCE to a new repository DEST, identical to\n"
-" SOURCE except that certain files will be converted as largefiles:\n"
-" specifically, any file that matches any PATTERN *or* whose size is\n"
-" above the minimum size threshold is converted as a largefile. The\n"
-" size used to determine whether or not to track a file as a\n"
-" largefile is the size of the first version of the file. The\n"
-" minimum size can be specified either with --size or in\n"
-" configuration as ``largefiles.size``."
-msgstr ""
-
-msgid ""
-" After running this command you will need to make sure that\n"
-" largefiles is enabled anywhere you intend to push the new\n"
-" repository."
-msgstr ""
-
-msgid ""
-" Use --to-normal to convert largefiles back to normal files; after\n"
-" this, the DEST repository can be used without largefiles at all."
-msgstr ""
-
-msgid "getting largefiles"
-msgstr "hämtar largefiles"
-
-#, python-format
-msgid "getting %s:%s\n"
-msgstr "hämtar %s:%s\n"
-
-#, python-format
-msgid "%s: data corruption (expected %s, got %s)\n"
-msgstr "%s: datakorruption (förväntade mig %s, fick %s)\n"
-
-#, python-format
-msgid "searching %d changesets for largefiles\n"
-msgstr "söker i %d ändringar efter largefiles\n"
-
-#, python-format
-msgid "verified contents of %d revisions of %d largefiles\n"
-msgstr ""
-
-#, python-format
-msgid "verified existence of %d revisions of %d largefiles\n"
-msgstr ""
-
-#, python-format
-msgid "unsupported URL scheme %r"
-msgstr ""
-
-#, python-format
-msgid "%s does not appear to be a largefile store"
-msgstr "%s verkar inte vara en largefiles-lagring"
-
-#, python-format
-msgid "%s is not a local Mercurial repo"
-msgstr "%s är inte ett lokalt Mercurial-arkiv"
-
-#, python-format
-msgid "initializing destination %s\n"
-msgstr ""
-
-msgid "converting revisions"
-msgstr "konverterar revisioner"
-
-#, python-format
-msgid "renamed/copied largefile %s becomes symlink"
-msgstr ""
-
-#, python-format
-msgid "largefile %s becomes symlink"
-msgstr ""
-
-#, python-format
-msgid "skipping incorrectly formatted tag %s\n"
-msgstr "hoppar över felformaterat märke %s\n"
-
-#, python-format
-msgid "skipping incorrectly formatted id %s\n"
-msgstr "hoppar över flrformaterad id %s\n"
-
-#, python-format
-msgid "no mapping for id %s\n"
-msgstr ""
-
-msgid "uploading largefiles"
-msgstr ""
-
-#, python-format
-msgid "largefile %s missing from store (needs to be uploaded)"
-msgstr ""
-
-#, python-format
-msgid "%d additional largefiles cached\n"
-msgstr "%d ytterligare largefiles cachade\n"
-
-#, python-format
-msgid "%d largefiles failed to download\n"
-msgstr "%d largefiles kunde inte hämtas\n"
-
-msgid "getting changed largefiles\n"
-msgstr "hämtar ändrade largefiles\n"
-
-#, python-format
-msgid "%d largefiles updated, %d removed\n"
-msgstr "%d largefiles uppdaterade, %d borttagna\n"
-
-#, python-format
-msgid "largefile %s is not in cache and could not be downloaded"
-msgstr ""
-
-msgid "minimum size (MB) for files to be converted as largefiles"
-msgstr ""
-
-msgid "convert from a largefiles repo to a normal repo"
-msgstr ""
-
-msgid "hg lfconvert SOURCE DEST [FILE ...]"
-msgstr ""
-
-#, python-format
-msgid "largefiles: size must be number (not %s)\n"
-msgstr ""
-
-msgid "minimum size for largefiles must be specified"
-msgstr ""
-
-#, python-format
-msgid "unknown operating system: %s\n"
-msgstr "okänt operativsystem: %s\n"
-
-#, python-format
-msgid "found %s in store\n"
-msgstr ""
-
-#, python-format
-msgid "found %s in system cache\n"
-msgstr ""
-
-msgid "can't get file locally"
-msgstr ""
-
-#, python-format
-msgid ""
-"changeset %s: %s missing\n"
-" (looked for hash %s)\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"changeset %s: %s: contents differ\n"
-" (%s:\n"
-" expected hash %s,\n"
-" but got %s)\n"
-msgstr ""
-
-#, python-format
-msgid "%s already a largefile\n"
-msgstr "%s är redan en largefile\n"
-
-#, python-format
-msgid "adding %s as a largefile\n"
-msgstr "lägger till %s som en largefile\n"
-
-msgid "no files specified"
-msgstr "inga filer angivna"
-
-#, python-format
-msgid "not removing %s: %s (use forget to undo)\n"
-msgstr "raderar inte %s: %s (använd forget för att ångra)\n"
-
-msgid "file still exists"
-msgstr "filen existerar fortfarande"
-
-msgid "file is modified"
-msgstr "filen är modifierad"
-
-msgid "file has been marked for add"
-msgstr "filen har markerats för addering"
-
-#, python-format
-msgid "removing %s\n"
-msgstr "tar bort %s\n"
-
-msgid "--normal cannot be used with --large"
-msgstr "--normal kan inte användas med --large"
-
-msgid "uncommitted local changes"
-msgstr "oarkiverade lokala ändringar"
-
-msgid "&Largefile"
-msgstr "&Largefile"
-
-msgid "&Normal file"
-msgstr "&Normal fil"
-
-#, python-format
-msgid ""
-"%s has been turned into a largefile\n"
-"use (l)argefile or keep as (n)ormal file?"
-msgstr ""
-
-#, python-format
-msgid ""
-"%s has been turned into a normal file\n"
-"keep as (l)argefile or use (n)ormal file?"
-msgstr ""
-
-#, python-format
-msgid "merging %s and %s to %s\n"
-msgstr ""
-
-#, python-format
-msgid "merging %s\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"largefile %s has a merge conflict\n"
-"keep (l)ocal or take (o)ther?"
-msgstr ""
-
-msgid "&Local"
-msgstr ""
-
-msgid "&Other"
-msgstr ""
-
-msgid "no files to copy"
-msgstr "inga filer att kopiera"
-
-msgid "destination largefile already exists"
-msgstr "destionation-largefile finns redan"
-
-msgid "caching new largefiles\n"
-msgstr "cachar nya largefiles\n"
-
-#, python-format
-msgid "%d largefiles cached\n"
-msgstr "%d largefiles cachade\n"
-
-#, python-format
-msgid "--all-largefiles is incompatible with non-local destination %s"
-msgstr "--all-largefiles är inkompatibel med icke-lokal destination %s"
-
-#, python-format
-msgid "unknown archive type '%s'"
-msgstr "okänd arkivtyp '%s'"
-
-msgid "cannot give prefix when archiving to files"
-msgstr ""
-
-#, python-format
-msgid "largefile %s not found in repo store or system cache"
-msgstr ""
-
-#, python-format
-msgid "not removing %s: file is already untracked\n"
-msgstr ""
-
-msgid "largefiles: No remote repo\n"
-msgstr ""
-
-msgid "largefiles to upload:\n"
-msgstr ""
-
-#, python-format
-msgid "largefiles: %d to upload\n"
-msgstr ""
-
-msgid "largefile contents do not match hash"
-msgstr ""
-
-#, python-format
-msgid "largefiles: failed to put %s into store: %s"
-msgstr ""
-
-#, python-format
-msgid "requested largefile %s not present in cache"
-msgstr ""
-
-msgid "remote: "
-msgstr "fjärr: "
-
-#, python-format
-msgid "unexpected putlfile response: %s"
-msgstr "oväntat putlfile-svar: %s"
-
-msgid "putlfile failed:"
-msgstr "putlfile misslyckades:"
-
-msgid "putlfile failed (unexpected response):"
-msgstr "putlfile misslyckades (oväntat svar):"
-
-msgid "unexpected response:"
-msgstr "oväntat svar:"
-
-#, python-format
-msgid "remotestore: could not put %s to remote store %s"
-msgstr ""
-
-#, python-format
-msgid "remotestore: put %s to remote store %s"
-msgstr ""
-
-#, python-format
-msgid "remotestore: could not open file %s: %s"
-msgstr ""
-
-#, python-format
-msgid "remotestore: largefile %s is invalid"
-msgstr ""
-
-#, python-format
-msgid "remotestore: largefile %s is missing"
-msgstr ""
-
-#, python-format
-msgid "changeset %s: %s: contents differ\n"
-msgstr ""
-
-#, python-format
-msgid "changeset %s: %s missing\n"
-msgstr "ändring %s: %s saknas\n"
-
-#, python-format
-msgid ""
-"largefiles: repo method %r appears to have already been wrapped by another "
-"extension: largefiles may behave incorrectly\n"
-msgstr ""
-
-#, python-format
-msgid "file \"%s\" is a largefile standin"
-msgstr ""
-
-msgid "add as largefile"
-msgstr "lägg till som largefile"
-
-msgid "add as normal file"
-msgstr "lägg till som normal fil"
-
-msgid ""
-"add all files above this size (in megabytes) as largefiles (default: 10)"
-msgstr ""
-
-msgid "verify largefiles"
-msgstr ""
-
-msgid "verify all revisions of largefiles not just current"
-msgstr ""
-
-msgid "verify largefile contents not just existence"
-msgstr ""
-
-msgid "display outgoing largefiles"
-msgstr "visa utgående largefiles"
-
-msgid "download all pulled versions of largefiles"
-msgstr ""
-
-msgid "download all versions of all largefiles"
-msgstr ""
-
msgid "manage a stack of patches"
msgstr "hantera en uppsättning patchar"
@@ -4298,50 +3270,11 @@ msgstr ""
"andra fallet."
msgid ""
-"It may be desirable for mq changesets to be kept in the secret phase (see\n"
-":hg:`help phases`), which can be enabled with the following setting::"
-msgstr ""
-"Det kan vara önskvärt att hålla alla mq-ändringar i secret-fasen (se\n"
-":hg:`help phases`), något som kan aktiveras med följande inställning::"
-
-msgid ""
-" [mq]\n"
-" secret = True"
-msgstr ""
-" [mq]\n"
-" secret = True"
-
-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."
+"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`."
-
-msgid ""
-"If the working directory contains uncommitted files, qpush, qpop and\n"
-"qgoto abort immediately. If -f/--force is used, the changes are\n"
-"discarded. Setting::"
-msgstr ""
-"Om arbetskatalogen innehåller oarkiverade filer så kommer qpush, qpop\n"
-"och qgoto omedelbart att avslutas. Om -f/--force används, så kommer\n"
-"ändringarna att kastas bort. Inställningen::"
-
-msgid ""
-" [mq]\n"
-" keepchanges = True"
-msgstr ""
-" [mq]\n"
-" keepchanges = True"
-
-msgid ""
-"make them behave as if --keep-changes were passed, and non-conflicting\n"
-"local changes will be tolerated and preserved. If incompatible options\n"
-"such as -f/--force or --exact are passed, this setting is ignored.\n"
-msgstr ""
-"får dom att uppföra sig som om --keep-changes angetts, och konfliktfria\n"
-"lokala ändringar tolereras och bevaras. Om inkompatibla flaggor som\n"
-"-f/--force eller --exact anges, så ignoreras den här inställningen.\n"
+"kan skapa en ny, oberoende patchkö med kommandot :hg:`qqueue`.\n"
msgid "print first line of patch header"
msgstr "skriv ut första raden i patchheadern"
@@ -4359,35 +3292,35 @@ msgid "%s appears more than once in %s"
msgstr "%s finns mer än en gång i %s"
msgid "guard cannot be an empty string"
-msgstr "skyddet kan inte vara en tom sträng"
+msgstr "guard kan inte vara en tom sträng"
#, python-format
msgid "guard %r starts with invalid character: %r"
-msgstr "skyddet %r börjar med ett otillåtet tecken: %r"
+msgstr ""
#, python-format
msgid "invalid character in guard %r: %r"
-msgstr "otillåtet tecken i skyddet %r: %r"
+msgstr ""
#, python-format
msgid "guard %r too short"
-msgstr "skyddet %r är för kort"
+msgstr ""
#, python-format
msgid "guard %r starts with invalid char"
-msgstr "skyddet %r börjar med ett otillåtet tecken"
+msgstr ""
#, python-format
msgid "allowing %s - no guards in effect\n"
-msgstr "tillåter %s - inga skydd aktiva\n"
+msgstr ""
#, python-format
msgid "allowing %s - no matching negative guards\n"
-msgstr "tillåter %s - inga matchande negativa skydd\n"
+msgstr ""
#, python-format
msgid "allowing %s - guarded by %s\n"
-msgstr "tillåter %s - skyddad av %s\n"
+msgstr ""
#, python-format
msgid "skipping %s - guarded by %s\n"
@@ -4395,72 +3328,62 @@ msgstr "hoppar över %s - skyddad av %s\n"
#, python-format
msgid "skipping %s - no matching guards\n"
-msgstr "hoppar över %s - inga matchande skydd\n"
+msgstr ""
#, python-format
msgid "error removing undo: %s\n"
-msgstr "fel vid borttagning av återställare: %s\n"
-
-#, python-format
-msgid "saving current version of %s as %s\n"
-msgstr "sparar nuvarande revision av %s som %s\n"
+msgstr ""
#, python-format
msgid "apply failed for patch %s"
-msgstr "misslyckades att applicera patchen %s"
+msgstr ""
#, python-format
msgid "patch didn't work out, merging %s\n"
-msgstr "patchning gick inte bra, sammanfogar %s\n"
+msgstr ""
#, python-format
msgid "update returned %d"
-msgstr "update returnerade %d"
+msgstr ""
msgid "repo commit failed"
-msgstr "arkivering misslyckades"
+msgstr ""
#, python-format
msgid "unable to read %s"
-msgstr "kan inte läsa %s"
+msgstr ""
#, python-format
msgid "patch %s does not exist\n"
-msgstr "patchen %s finns inte\n"
+msgstr ""
#, python-format
msgid "patch %s is not applied\n"
-msgstr "patchen %s är inte applicerad\n"
+msgstr ""
msgid "patch failed, unable to continue (try -v)\n"
-msgstr "patchning misslyckades, kan inte fortsätta (försök med -v)\n"
+msgstr ""
#, python-format
msgid "applying %s\n"
-msgstr "applicerar %s\n"
+msgstr ""
#, python-format
msgid "unable to read %s\n"
-msgstr "kan inte läsa %s\n"
-
-msgid "local changes found, refresh first"
-msgstr "lokala ändringar hittades, uppdatera först"
+msgstr ""
#, python-format
msgid "patch %s is empty\n"
-msgstr "patchen %s är tom\n"
-
-msgid "qpush exactly duplicates child changeset"
-msgstr "qpush duplicerar barnändringen exakt"
+msgstr ""
msgid "repository commit failed"
-msgstr "arkivering misslyckades"
+msgstr ""
msgid "patch failed, rejects left in working dir\n"
-msgstr "patchning misslyckades, avslag lämnades i arbetskatalogen\n"
+msgstr ""
msgid "fuzz found when applying patch, stopping\n"
-msgstr "ludd upptäcktes när patchen applicerades, stannar\n"
+msgstr ""
#, python-format
msgid "revision %s refers to unknown patches: %s\n"
@@ -4472,51 +3395,54 @@ msgstr "okända patchar: %s\n"
#, python-format
msgid "revision %d is not managed"
-msgstr "revision %d hanteras inte"
+msgstr ""
#, python-format
msgid "cannot delete revision %d above applied patches"
-msgstr "kan inte radera revision %d ovanför applicerade patchar"
+msgstr ""
#, python-format
msgid "patch %s finalized without changeset message\n"
-msgstr "patchen %s färdigställdes utan arkiveringsmeddelande\n"
+msgstr ""
msgid "qdelete requires at least one revision or patch name"
-msgstr "qdelete kräver minst en revision eller ett patchnamn"
+msgstr ""
#, python-format
msgid "cannot delete applied patch %s"
-msgstr "kan inte radera applicerad patch %s"
+msgstr ""
#, python-format
msgid "patch %s not in series file"
-msgstr "patchen %s finns inte i series-filen"
+msgstr ""
msgid "no patches applied"
-msgstr "inga patcher applicerade"
+msgstr ""
msgid "working directory revision is not qtip"
-msgstr "arbetskatalogen är inte qtip"
+msgstr ""
#, python-format
msgid "uncommitted changes in subrepository %s"
msgstr "oarkiverade ändringar i underarkivet %s"
+msgid "local changes found, refresh first"
+msgstr ""
+
msgid "local changes found"
-msgstr "lokala ändringar hittades"
+msgstr ""
#, python-format
msgid "\"%s\" cannot be used as the name of a patch"
-msgstr "\"%s\" kan inte användas som patchnamn"
+msgstr ""
#, python-format
msgid "patch name cannot begin with \"%s\""
-msgstr "patchnamn kan inte börja med \"%s\""
+msgstr ""
#, python-format
msgid "\"%s\" cannot be used in the name of a patch"
-msgstr "\"%s\" kan inte användas i patchnamn"
+msgstr ""
#, python-format
msgid "\"%s\" already exists as a directory"
@@ -4526,9 +3452,6 @@ msgstr "\"%s\" finns redan som katalog"
msgid "patch \"%s\" already exists"
msgstr "patchen \"%s\" existerar redan"
-msgid "cannot use both --force and --keep-changes"
-msgstr "kan inte ange både --force och --keep-changes"
-
msgid "cannot manage merge changesets"
msgstr "kan inte hantera sammanfogningar"
@@ -4538,21 +3461,21 @@ msgstr "kan inte skriva patchen \"%s\": %s"
#, python-format
msgid "error unlinking %s\n"
-msgstr "fel vid radering av %s\n"
+msgstr ""
#, python-format
msgid "patch name \"%s\" is ambiguous:\n"
-msgstr "patchnamnet \"%s\" är tvetydligt:\n"
+msgstr ""
#, python-format
msgid "patch %s not in series"
-msgstr "patchen %s finns inte i serien"
+msgstr ""
msgid "(working directory not at a head)\n"
-msgstr "(arbetskatalogen är inte på ett huvud)\n"
+msgstr ""
msgid "no patches in series\n"
-msgstr "inga patchar i serien\n"
+msgstr ""
#, python-format
msgid "qpush: %s is already at the top\n"
@@ -4560,27 +3483,24 @@ msgstr "qpush: %s är redan på toppen\n"
#, python-format
msgid "cannot push to a previous patch: %s"
-msgstr "kan inte pusha till en tidigare patch: %s"
+msgstr ""
#, python-format
msgid "guarded by %s"
msgstr "skyddad av %s"
msgid "no matching guards"
-msgstr "inga matchande skydd"
+msgstr ""
#, python-format
msgid "cannot push '%s' - %s\n"
-msgstr "kan inte pusha '%s' - %s\n"
+msgstr ""
msgid "all patches are currently applied\n"
-msgstr "alla patchar är applicerade\n"
+msgstr ""
msgid "patch series already fully applied\n"
-msgstr "patchserien är redan fullständigt applicerad\n"
-
-msgid "cannot use --exact and --keep-changes together"
-msgstr "kan inte använda --exact och --keep-changes tillsammans"
+msgstr ""
msgid "cannot use --exact and --move together"
msgstr "kan inte använda --exact och --move tillsammans"
@@ -4596,80 +3516,68 @@ msgid "please specify the patch to move"
msgstr "ange patchen som ska flyttas"
msgid "cleaning up working directory..."
-msgstr "rensar upp arbetskatalogen..."
+msgstr ""
#, python-format
msgid "errors during apply, please fix and refresh %s\n"
-msgstr "fel vid applicering, fixa och uppdatera %s\n"
+msgstr ""
#, python-format
msgid "now at: %s\n"
-msgstr "är nu på: %s\n"
+msgstr ""
#, python-format
msgid "patch %s is not applied"
-msgstr "patchen %s är inte applicerad"
+msgstr ""
msgid "no patches applied\n"
-msgstr "inga patchar applicerade\n"
+msgstr ""
#, python-format
msgid "qpop: %s is already at the top\n"
-msgstr "qpop: %s är redan på toppen\n"
+msgstr ""
msgid "qpop: forcing dirstate update\n"
-msgstr "qpop: tvingar en uppdatering av dirstate\n"
+msgstr ""
#, python-format
msgid "trying to pop unknown node %s"
-msgstr "försöker att poppa okänd nod %s"
+msgstr ""
msgid "popping would remove a revision not managed by this patch queue"
msgstr ""
-"poppning skulle ta bort en revision som inte hanteras av denna patchkö"
-
-msgid "popping would remove an immutable revision"
-msgstr "poppning skulle ta bort en oföränderlig revision"
-
-msgid "see \"hg help phases\" for details"
-msgstr "se \"hg help phases\" för detaljer"
msgid "deletions found between repo revs"
-msgstr "raderingar hittades mellan arkivrevisioner"
+msgstr ""
#, python-format
msgid "popping %s\n"
-msgstr "poppar %s\n"
+msgstr ""
msgid "patch queue now empty\n"
-msgstr "patchkön är nu tom\n"
+msgstr ""
msgid "cannot refresh a revision with children"
-msgstr "kan inte uppdatera en revision med barn"
-
-msgid "cannot refresh immutable revision"
-msgstr "kan inte uppdatera oföränderlig revision"
+msgstr ""
msgid ""
"refresh interrupted while patch was popped! (revert --all, qpush to "
"recover)\n"
msgstr ""
-"uppdatering avbröts medans patch var poppad! (revert --all, qpush för "
-"att återställa)\n"
msgid "patch queue directory already exists"
-msgstr "katalog för patchkö finns redan"
+msgstr ""
#, python-format
msgid "patch %s is not in series file"
-msgstr "patchen %s finns inte i series-filen"
+msgstr ""
-msgid "no saved patch data found\n"
-msgstr "ingen sparad patchdata hittades\n"
+msgid "No saved patch data found\n"
+msgstr ""
#, python-format
msgid "restoring status: %s\n"
-msgstr "återställer status: %s\n"
+msgstr ""
msgid "save entry has children, leaving it alone\n"
msgstr ""
@@ -4685,14 +3593,14 @@ msgstr ""
msgid "updating queue directory\n"
msgstr "uppdaterar kökatalog\n"
-msgid "unable to load queue repository\n"
-msgstr "kan inte öppna köarkiv\n"
+msgid "Unable to load queue repository\n"
+msgstr ""
msgid "save: no patches applied, exiting\n"
msgstr ""
msgid "status is already saved\n"
-msgstr "status är redan sparad\n"
+msgstr ""
msgid "hg patches saved state"
msgstr ""
@@ -4707,9 +3615,6 @@ msgstr ""
msgid "option \"-r\" not valid when importing files"
msgstr ""
-msgid "no files or revisions specified"
-msgstr "inga filer eller revisioner angivna"
-
msgid "option \"-n\" not valid when importing multiple patches"
msgstr ""
@@ -4730,10 +3635,6 @@ msgid "revision %d has unmanaged children"
msgstr ""
#, python-format
-msgid "revision %d is not mutable"
-msgstr ""
-
-#, python-format
msgid "cannot import merge revision %d"
msgstr ""
@@ -4777,9 +3678,8 @@ msgstr ""
msgid ""
" The patches must not be applied, and at least one patch is required. "
-"Exact\n"
-" patch identifiers must be given. With -k/--keep, the patch files are\n"
-" preserved in the patch directory."
+"With\n"
+" -k/--keep, the patch files are preserved in the patch directory."
msgstr ""
msgid ""
@@ -4787,8 +3687,8 @@ msgid ""
" use the :hg:`qfinish` command."
msgstr ""
-msgid "show only the preceding applied patch"
-msgstr "visa bara den föregående applicerade patchen"
+msgid "show only the last patch"
+msgstr "visa bara den sista patchen"
msgid "hg qapplied [-1] [-s] [PATCH]"
msgstr "hg qapplied [-1] [-s] [PATCH]"
@@ -4835,11 +3735,11 @@ msgstr "använd gits utökade diff-format"
msgid "qpush after importing"
msgstr ""
-msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... [FILE]..."
-msgstr "hg qimport [-e] [-n NAMN] [-f] [-g] [-P] [-r REV]... [FIL]..."
+msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE..."
+msgstr "hg qimport [-e] [-n NAMN] [-f] [-g] [-P] [-r REV]... FIL..."
-msgid "import a patch or existing changeset"
-msgstr "importera en patch eller existerande ändring"
+msgid "import a patch"
+msgstr "importera en patch"
msgid ""
" The patch is inserted into the series after the last applied\n"
@@ -4928,10 +3828,10 @@ msgid "location of source patch repository"
msgstr ""
msgid "hg qclone [OPTION]... SOURCE [DEST]"
-msgstr "hg qclone [FLAGGA]... KÄLLA [DEST]"
+msgstr ""
msgid "clone main and patch repository at same time"
-msgstr "klona huvud- och patcharkivet på samma gång"
+msgstr ""
msgid ""
" If source is local, destination will have no patches applied. If\n"
@@ -4974,7 +3874,7 @@ msgid "updating destination repository\n"
msgstr ""
msgid "hg qcommit [OPTION]... [FILE]..."
-msgstr "hg qcommit [FLAGGA]... [FIL]..."
+msgstr ""
msgid "commit changes in the queue repository (DEPRECATED)"
msgstr "arkivera ändringar i köarkivet (FÖRÅLDRAD)"
@@ -4984,52 +3884,55 @@ msgstr ""
" Detta är ett föråldrat kommando; använd :hg:`commit --mq` istället."
msgid "print patches not in series"
-msgstr "visa patchas som inte är i serien"
+msgstr ""
msgid "hg qseries [-ms]"
-msgstr "hg qseries [-ms]"
+msgstr ""
msgid "print the entire series file"
-msgstr "visa hela seriefilen"
+msgstr ""
msgid "hg qtop [-s]"
msgstr "hg qtop [-s]"
msgid "print the name of the current patch"
-msgstr "visa namnet på den nuvarande patchen"
+msgstr ""
msgid "hg qnext [-s]"
msgstr "hg qnext [-s]"
-msgid "print the name of the next pushable patch"
-msgstr "visa namnet på den nästkommande patchen"
+msgid "print the name of the next patch"
+msgstr ""
msgid "hg qprev [-s]"
msgstr "hg qprev [-s]"
-msgid "print the name of the preceding applied patch"
-msgstr "skriv ut namnet på föregående applicerade patch"
+msgid "print the name of the previous patch"
+msgstr ""
msgid "import uncommitted changes (DEPRECATED)"
msgstr "importera icke arkiverade ändringar (FÖRLEGAD)"
msgid "add \"From: <current user>\" to patch"
-msgstr "lägg till \"From: <denna användare>\" i patch"
+msgstr ""
+
+msgid "USER"
+msgstr ""
msgid "add \"From: <USER>\" to patch"
-msgstr "lägg till \"From: <ANVÄNDARE>\" i patch"
+msgstr ""
msgid "add \"Date: <current date>\" to patch"
-msgstr "lägg till \"Date: <nuvarande datum>\" i patch"
+msgstr ""
msgid "add \"Date: <DATE>\" to patch"
-msgstr "lägg till \"Date: <DATUM>\" i patch"
+msgstr ""
msgid "hg qnew [-e] [-m TEXT] [-l FILE] PATCH [FILE]..."
msgstr "hg qnew [-e] [-m TEXT] [-l FIL] PATCH [FIL]..."
msgid "create a new patch"
-msgstr "skapa en ny patch"
+msgstr ""
msgid ""
" qnew creates a new patch on top of the currently-applied patch (if\n"
@@ -5039,30 +3942,18 @@ msgid ""
" only changes to matching files to the new patch, leaving the rest\n"
" as uncommitted modifications."
msgstr ""
-" qnew skapar en ny patch ovanpå redan applicerade patchar (om några).\n"
-" Patchen kommer att initialiseras med oarkiverade ändringar i\n"
-" arbetskatalogen. Du kan också använda -I/--include, -X/--exclude,\n"
-" och/eller en uppsättning filer efter patchnamnet för att bara lägga\n"
-" till ändringar i dessa filer i patchen, och lämna resten som\n"
-" oarkiverade ändringar."
msgid ""
" -u/--user and -d/--date can be used to set the (given) user and\n"
" date, respectively. -U/--currentuser and -D/--currentdate set user\n"
" to current user and date to current date."
msgstr ""
-" -u/--user och -d/--date kan användas för att sätta (den angivna)\n"
-" användaren respektive datumet. -U/--currentuser och -D/--currentdate\n"
-" sätter användare till denna användaren och datumed till nuvarande datum."
msgid ""
" -e/--edit, -m/--message or -l/--logfile set the patch header as\n"
" well as the commit message. If none is specified, the header is\n"
" empty and the commit message is '[mq]: PATCH'."
msgstr ""
-" -e/--edit, -m/--message or -l/--logfile sätter både patchhuvudet och\n"
-" arkiveringsmeddelandet. Om inget är angivet, så är huvudet tomt och\n"
-" arkiveringsmeddelandet är '[mq]: PATCH'."
msgid ""
" Use the -g/--git option to keep the patch in the git extended diff\n"
@@ -5070,10 +3961,6 @@ msgid ""
" is important for preserving permission changes and copy/rename\n"
" information."
msgstr ""
-" Använd flaggan -g/--git gör att lagra patchen i gits utökade\n"
-" diff-format. Läs hjälpämnet om diffar för mer inormation om varför\n"
-" detta är viktigt för att lagra rättighetsändringar och information om\n"
-" kopior/namnbyten."
msgid ""
" Returns 0 on successful creation of a new patch.\n"
@@ -5098,7 +3985,7 @@ msgid "add/update date field in patch with given date"
msgstr ""
msgid "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l FILE] [-s] [FILE]..."
-msgstr "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l FIL] [-s] [FIL]..."
+msgstr ""
msgid "update the current patch"
msgstr "uppdatera den nuvarande patchen"
@@ -5182,8 +4069,8 @@ msgid "qfold requires at least one patch name"
msgstr ""
#, python-format
-msgid "skipping already folded patch %s\n"
-msgstr "hoppar över redan hopvikta patchen %s\n"
+msgid "Skipping already folded patch %s\n"
+msgstr "Hoppar över redan hopvikta patchen %s\n"
#, python-format
msgid "qfold cannot fold already applied patch %s"
@@ -5193,15 +4080,9 @@ msgstr ""
msgid "error folding patch %s"
msgstr ""
-msgid "tolerate non-conflicting local changes"
-msgstr ""
-
msgid "overwrite any local changes"
msgstr ""
-msgid "do not save backup copies of files"
-msgstr "spara inte backup-kopior av filer"
-
msgid "hg qgoto [OPTION]... PATCH"
msgstr ""
@@ -5243,7 +4124,7 @@ msgid " To set guards on another patch::"
msgstr ""
msgid " hg qguard other.patch -- +2.6.17 -stable"
-msgstr " hg qguard other.patch -- +2.6.17 -stable"
+msgstr ""
msgid "cannot mix -l/--list with options or arguments"
msgstr ""
@@ -5253,7 +4134,7 @@ msgstr ""
#, python-format
msgid "no patch named %s"
-msgstr "ingen patch med namnet %s"
+msgstr ""
msgid "hg qheader [PATCH]"
msgstr "hg qheader [PATCH]"
@@ -5271,7 +4152,7 @@ msgid "list patch name in commit text"
msgstr ""
msgid "apply all patches"
-msgstr "applicera alla patchar"
+msgstr ""
msgid "merge from another queue (DEPRECATED)"
msgstr ""
@@ -5289,10 +4170,8 @@ msgid "push the next patch onto the stack"
msgstr ""
msgid ""
-" By default, abort if the working directory contains uncommitted\n"
-" changes. With --keep-changes, abort only if the uncommitted files\n"
-" overlap with patched files. With -f/--force, backup and patch over\n"
-" uncommitted changes."
+" When -f/--force is applied, all local changes in patched files\n"
+" will be lost."
msgstr ""
msgid "no saved queues found, please use -n\n"
@@ -5300,13 +4179,13 @@ msgstr ""
#, python-format
msgid "merging with queue at: %s\n"
-msgstr "sammanfogar med kö vid: %s\n"
+msgstr ""
msgid "pop all patches"
-msgstr "poppa alla patchar"
+msgstr ""
msgid "queue name to pop (DEPRECATED)"
-msgstr "könamn att poppa (FÖRLEGAD)"
+msgstr ""
msgid "forget any local changes to patched files"
msgstr ""
@@ -5318,16 +4197,9 @@ msgid "pop the current patch off the stack"
msgstr ""
msgid ""
-" Without argument, pops off the top of the patch stack. If given a\n"
-" patch name, keeps popping off patches until the named patch is at\n"
-" the top of the stack."
-msgstr ""
-
-msgid ""
-" By default, abort if the working directory contains uncommitted\n"
-" changes. With --keep-changes, abort only if the uncommitted files\n"
-" overlap with patched files. With -f/--force, backup and discard\n"
-" changes made to such files."
+" 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."
msgstr ""
#, python-format
@@ -5390,11 +4262,6 @@ msgstr ""
msgid "copy %s to %s\n"
msgstr ""
-msgid ""
-"strip specified revision (optional, can specify revisions without this "
-"option)"
-msgstr ""
-
msgid "force removal of changesets, discard uncommitted changes (no backup)"
msgstr ""
"tvinga radering av ändringar, kassera oarkiverade ändringar (ingen backup)"
@@ -5412,17 +4279,11 @@ msgstr "inga säkerhetskopior"
msgid "no backups (DEPRECATED)"
msgstr "inga säkerhetskopior (FÖRÅLDRAD)"
-msgid "ignored (DEPRECATED)"
-msgstr "ignorerad (FÖRÅLDRAD)"
-
msgid "do not modify working copy during strip"
msgstr "modifiera inte arbetskopian vid strippning"
-msgid "remove revs only reachable from given bookmark"
-msgstr "radera revisioner som bara nås från givet bokmärke"
-
-msgid "hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV..."
-msgstr "hg strip [-k] [-f] [-n] [-B bokmärke] [-r] REV..."
+msgid "hg strip [-k] [-f] [-n] REV..."
+msgstr "hg strip [-k] [-f] [-n] REV..."
msgid "strip changesets and all their descendants from the repository"
msgstr ""
@@ -5455,20 +4316,6 @@ msgid ""
" operation completes."
msgstr ""
-msgid ""
-" Strip is not a history-rewriting operation and can be used on\n"
-" changesets in the public phase. But if the stripped changesets have\n"
-" been pushed to a remote repository you will likely pull them again."
-msgstr ""
-
-#, python-format
-msgid "bookmark '%s' not found"
-msgstr "bokmärket '%s' hittades inte"
-
-#, python-format
-msgid "bookmark '%s' deleted\n"
-msgstr "bokmärket '%s' raderad\n"
-
msgid "empty revision set"
msgstr "tomt revisionsset"
@@ -5594,15 +4441,9 @@ msgstr ""
msgid "no revisions specified"
msgstr ""
-msgid "warning: uncommitted changes in the working directory\n"
-msgstr "varning: oarkiverade ändringar i arbetskatalogen\n"
-
msgid "list all available queues"
msgstr "visa alla tillgängliga köer"
-msgid "print name of active queue"
-msgstr "visa namnet på aktiv kö"
-
msgid "create new queue"
msgstr "skapa ny kö"
@@ -5610,7 +4451,7 @@ msgid "rename active queue"
msgstr "döp om aktiv kö"
msgid "delete reference to queue"
-msgstr "radera referens till kö"
+msgstr ""
msgid "delete queue, and remove patch dir"
msgstr ""
@@ -5631,9 +4472,7 @@ msgid ""
"registered\n"
" queues - by default the \"normal\" patches queue is registered. The "
"currently\n"
-" active queue will be marked with \"(active)\". Specifying --active will "
-"print\n"
-" only the name of the active queue."
+" active queue will be marked with \"(active)\"."
msgstr ""
msgid ""
@@ -5682,12 +4521,15 @@ msgstr ""
msgid "cannot commit over an applied mq patch"
msgstr ""
+msgid "source has mq patches applied"
+msgstr ""
+
#, python-format
msgid "mq status file refers to unknown node %s\n"
msgstr ""
#, python-format
-msgid "tag %s overrides mq patch of the same name\n"
+msgid "Tag %s overrides mq patch of the same name\n"
msgstr ""
msgid "cannot import over an applied patch"
@@ -5726,196 +4568,94 @@ msgstr "mq tar inga argument"
msgid "operate on patch repository"
msgstr "arbeta med patcharkiv"
-msgid "hooks for sending email push notifications"
+msgid "hooks for sending email notifications at commit/push time"
msgstr ""
msgid ""
-"This extension implements hooks to send email notifications when\n"
-"changesets are sent from or received by the local repository."
+"Subscriptions can be managed through a hgrc file. Default mode is to\n"
+"print messages to stdout, for testing and configuring."
msgstr ""
msgid ""
-"First, enable the extension as explained in :hg:`help extensions`, and\n"
-"register the hook you want to run. ``incoming`` and ``changegroup`` hooks\n"
-"are run when changesets are received, while ``outgoing`` hooks are for\n"
-"changesets sent to another repository::"
+"To use, configure the notify extension and enable it in hgrc like\n"
+"this::"
msgstr ""
msgid ""
-" [hooks]\n"
-" # one email for each incoming changeset\n"
-" incoming.notify = python:hgext.notify.hook\n"
-" # one email for all incoming changesets\n"
-" changegroup.notify = python:hgext.notify.hook"
+" [extensions]\n"
+" notify ="
msgstr ""
msgid ""
-" # one email for all outgoing changesets\n"
+" [hooks]\n"
+" # one email for each incoming changeset\n"
+" incoming.notify = python:hgext.notify.hook\n"
+" # batch emails when many changesets incoming at one time\n"
+" changegroup.notify = python:hgext.notify.hook\n"
+" # batch emails when many changesets outgoing at one time (client side)\n"
" outgoing.notify = python:hgext.notify.hook"
msgstr ""
msgid ""
-"This registers the hooks. To enable notification, subscribers must\n"
-"be assigned to repositories. The ``[usersubs]`` section maps multiple\n"
-"repositories to a given recipient. The ``[reposubs]`` section maps\n"
-"multiple recipients to a single repository::"
-msgstr ""
-
-msgid ""
-" [usersubs]\n"
-" # key is subscriber email, value is a comma-separated list of repo glob\n"
-" # patterns\n"
-" user@host = pattern"
-msgstr ""
-
-msgid ""
-" [reposubs]\n"
-" # key is glob pattern, value is a comma-separated list of subscriber\n"
-" # emails\n"
-" pattern = user@host"
-msgstr ""
-
-msgid ""
-"Glob patterns are matched against absolute path to repository\n"
-"root."
-msgstr ""
-
-msgid ""
-"In order to place them under direct user management, ``[usersubs]`` and\n"
-"``[reposubs]`` sections may be placed in a separate ``hgrc`` file and\n"
-"incorporated by reference::"
-msgstr ""
-
-msgid ""
" [notify]\n"
-" config = /path/to/subscriptionsfile"
+" # config items go here"
msgstr ""
-msgid ""
-"Notifications will not be sent until the ``notify.test`` value is set\n"
-"to ``False``; see below."
-msgstr ""
-
-msgid ""
-"Notifications content can be tweaked with the following configuration "
-"entries:"
+msgid "Required configuration items::"
msgstr ""
-msgid ""
-"notify.test\n"
-" If ``True``, print messages to stdout instead of sending them. Default: "
-"True."
+msgid " config = /path/to/file # file containing subscriptions"
msgstr ""
-msgid ""
-"notify.sources\n"
-" Space-separated list of change sources. Notifications are activated only\n"
-" when a changeset's source is in this list. Sources may be:"
+msgid "Optional configuration items::"
msgstr ""
msgid ""
-" :``serve``: changesets received via http or ssh\n"
-" :``pull``: changesets received via ``hg pull``\n"
-" :``unbundle``: changesets received via ``hg unbundle``\n"
-" :``push``: changesets sent or received via ``hg push``\n"
-" :``bundle``: changesets sent via ``hg unbundle``"
-msgstr ""
-
-msgid " Default: serve."
-msgstr " Standard: serve"
-
-msgid ""
-"notify.strip\n"
-" Number of leading slashes to strip from url paths. By default, "
-"notifications\n"
-" reference repositories with their absolute path. ``notify.strip`` lets "
-"you\n"
-" turn them into relative paths. For example, ``notify.strip=3`` will "
-"change\n"
-" ``/long/path/repository`` into ``repository``. Default: 0."
-msgstr ""
-
-msgid ""
-"notify.domain\n"
-" Default email domain for sender or recipients with no explicit domain."
-msgstr ""
-
-msgid ""
-"notify.style\n"
-" Style file to use when formatting emails."
-msgstr ""
-
-msgid ""
-"notify.template\n"
-" Template to use when formatting emails."
-msgstr ""
-
-msgid ""
-"notify.incoming\n"
-" Template to use when run as an incoming hook, overriding ``notify."
-"template``."
-msgstr ""
-
-msgid ""
-"notify.outgoing\n"
-" Template to use when run as an outgoing hook, overriding ``notify."
-"template``."
-msgstr ""
-
-msgid ""
-"notify.changegroup\n"
-" Template to use when running as a changegroup hook, overriding\n"
-" ``notify.template``."
-msgstr ""
-
-msgid ""
-"notify.maxdiff\n"
-" Maximum number of diff lines to include in notification email. Set to 0\n"
-" to disable the diff, or -1 to include all of it. Default: 300."
-msgstr ""
-
-msgid ""
-"notify.maxsubject\n"
-" Maximum number of characters in email's subject line. Default: 67."
-msgstr ""
-
-msgid ""
-"notify.diffstat\n"
-" Set to True to include a diffstat before diff content. Default: True."
-msgstr ""
-
-msgid ""
-"notify.merge\n"
-" If True, send notifications for merge changesets. Default: True."
+" test = True # print messages to stdout for testing\n"
+" strip = 3 # number of slashes to strip for url paths\n"
+" domain = example.com # domain to use if committer missing domain\n"
+" style = ... # style file to use when formatting email\n"
+" template = ... # template to use when formatting email\n"
+" incoming = ... # template to use when run as incoming hook\n"
+" outgoing = ... # template to use when run as outgoing hook\n"
+" changegroup = ... # template to use when run as changegroup hook\n"
+" maxdiff = 300 # max lines of diffs to include (0=none, -1=all)\n"
+" maxsubject = 67 # truncate subject line longer than this\n"
+" diffstat = True # add a diffstat before the diff content\n"
+" sources = serve # notify if source of incoming changes in this "
+"list\n"
+" # (serve == ssh or http, push, pull, bundle)\n"
+" merge = False # send notification for merges (default True)\n"
+" [email]\n"
+" from = user@host.com # email address to send as if none given\n"
+" [web]\n"
+" baseurl = http://hgserver/... # root of hg web site for browsing commits"
msgstr ""
msgid ""
-"notify.mbox\n"
-" If set, append mails to this mbox file instead of sending. Default: None."
+"The notify config file has same format as a regular hgrc file. It has\n"
+"two sections so you can express subscriptions in whatever way is\n"
+"handier for you."
msgstr ""
msgid ""
-"notify.fromauthor\n"
-" If set, use the committer of the first changeset in a changegroup for\n"
-" the \"From\" field of the notification mail. If not set, take the user\n"
-" from the pushing repo. Default: False."
+" [usersubs]\n"
+" # key is subscriber email, value is \",\"-separated list of glob patterns\n"
+" user@host = pattern"
msgstr ""
msgid ""
-"If set, the following entries will also be used to customize the\n"
-"notifications:"
+" [reposubs]\n"
+" # key is glob pattern, value is \",\"-separated list of subscriber emails\n"
+" pattern = user@host"
msgstr ""
-msgid ""
-"email.from\n"
-" Email ``From`` address to use if none can be found in the generated\n"
-" email content."
+msgid "Glob patterns are matched against path to repository root."
msgstr ""
msgid ""
-"web.baseurl\n"
-" Root repository URL to combine with repository paths when making\n"
-" references. See also ``notify.strip``."
+"If you like, you can put notify config file in repository that users\n"
+"can push changes to, they can manage their own subscriptions.\n"
msgstr ""
#, python-format
@@ -5961,6 +4701,20 @@ msgid ""
msgstr ""
msgid ""
+"If you notice \"BROKEN PIPE\" error messages, you can disable them by\n"
+"setting::"
+msgstr ""
+"Om du får felmeddelanden om \"BROKEN PIPE\", så kan du deaktivera dem\n"
+"genom att sätta::"
+
+msgid ""
+" [pager]\n"
+" quiet = True"
+msgstr ""
+" [pager]\n"
+" quiet = True"
+
+msgid ""
"You can disable the pager for certain commands by adding them to the\n"
"pager.ignore list::"
msgstr ""
@@ -6089,11 +4843,15 @@ msgid ""
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"
+"patchbomb-utäkningen automatiskt kan skicka patchbomber från kommandoraden.\n"
"Se sektionerna [email] och [smtp] i hgrc(5) för detaljer.\n"
-msgid "send patches as inline message text (default)"
-msgstr ""
+#, python-format
+msgid "%s Please enter a valid value"
+msgstr "%s Ange ett giltigt värde"
+
+msgid "Please enter a valid value.\n"
+msgstr "Ange ett giltigt värde.\n"
msgid "send patches as attachments"
msgstr ""
@@ -6213,9 +4971,7 @@ msgid ""
" By default the patch is included as text in the email body for\n"
" easy reviewing. Using the -a/--attach option will instead create\n"
" an attachment for the patch. With -i/--inline an inline attachment\n"
-" will be created. You can include a patch both as text in the email\n"
-" body and as a regular or an inline attachment by combining the\n"
-" -a/--attach or -i/--inline with the --body option."
+" will be created."
msgstr ""
msgid ""
@@ -6291,6 +5047,10 @@ msgid ""
" "
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"
@@ -6312,12 +5072,9 @@ msgid ""
msgstr ""
#, python-format
-msgid "this patch series consists of %d patches."
+msgid "This patch series consists of %d patches."
msgstr ""
-msgid "no recipient addresses provided"
-msgstr "inga mottagaradresser angavs"
-
msgid ""
"\n"
"Final summary:"
@@ -6335,18 +5092,21 @@ msgstr ""
msgid "patchbomb canceled"
msgstr ""
-msgid "displaying "
-msgstr "visar "
-
-msgid "sending "
-msgstr "sänder "
+msgid "Displaying "
+msgstr "Visar "
-msgid "sending"
-msgstr "sänder"
+msgid "Writing "
+msgstr "Skriver "
msgid "writing"
msgstr "skriver"
+msgid "Sending "
+msgstr "Sänder "
+
+msgid "sending"
+msgstr "sänder"
+
msgid "show progress bars for some actions"
msgstr ""
@@ -6363,9 +5123,6 @@ msgstr ""
msgid ""
" [progress]\n"
" delay = 3 # number of seconds (float) before showing the progress bar\n"
-" changedelay = 1 # changedelay: minimum delay before showing a new topic.\n"
-" # If set to less than 3 * refresh, that value will\n"
-" # be used instead.\n"
" refresh = 0.1 # time in seconds between refreshes 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"
@@ -6484,12 +5241,12 @@ msgid "warning: %s\n"
msgstr ""
#, python-format
-msgid "removing file %s\n"
-msgstr "tar bort file %s\n"
+msgid "Removing file %s\n"
+msgstr ""
#, python-format
-msgid "removing directory %s\n"
-msgstr "tar bort katalogen %s\n"
+msgid "Removing directory %s\n"
+msgstr ""
msgid "command to move sets of revisions to a different ancestor"
msgstr ""
@@ -6512,9 +5269,6 @@ msgid ""
"ancestor of base and dest)"
msgstr ""
-msgid "rebase these revisions"
-msgstr ""
-
msgid "rebase onto the specified changeset"
msgstr ""
@@ -6524,9 +5278,6 @@ msgstr ""
msgid "use text as collapse commit message"
msgstr "använd text som kollapsarkiveringsmeddelande"
-msgid "invoke editor on commit messages"
-msgstr "starta editor för arkiveringsmeddelande"
-
msgid "read collapse commit message from file"
msgstr "läs kollapsarkiveringsmeddelandet från fil"
@@ -6536,8 +5287,8 @@ msgstr ""
msgid "keep original branch names"
msgstr ""
-msgid "(DEPRECATED)"
-msgstr "(FÖRLEGAD)"
+msgid "force detaching of source from its original branch"
+msgstr ""
msgid "specify merge tool"
msgstr "ange sammanfogningsverktyg"
@@ -6627,33 +5378,23 @@ msgstr ""
msgid "cannot use collapse with continue or abort"
msgstr ""
+msgid "cannot use detach with continue or abort"
+msgstr "kan inte använda detach med continue eller abort"
+
msgid "abort and continue do not allow specifying revisions"
msgstr ""
msgid "tool option will be ignored\n"
msgstr ""
-msgid "cannot specify both a source and a base"
-msgstr "kan inte ange både en källa och en bas"
-
msgid "cannot specify both a revision and a base"
msgstr ""
-msgid "cannot specify both a revision and a source"
-msgstr "kan inte ange både en revision och en källa"
-
-msgid "can't remove original changesets with unrebased descendants"
-msgstr ""
-
-msgid "use --keep to keep original changesets"
-msgstr "använd --keep för att bevara originaländringarna"
+msgid "detach requires a revision to be specified"
+msgstr "detach kräver att en revision anges"
-#, python-format
-msgid "can't rebase immutable changeset %s"
-msgstr ""
-
-msgid "see hg help phases for details"
-msgstr ""
+msgid "cannot specify a base with detach"
+msgstr "kan inte ange en bas med detach"
msgid "nothing to rebase\n"
msgstr ""
@@ -6697,10 +5438,6 @@ msgstr ""
msgid "no rebase in progress"
msgstr ""
-#, python-format
-msgid "can't abort rebase due to immutable changesets %s"
-msgstr ""
-
msgid "warning: new changesets detected on target branch, can't abort\n"
msgstr ""
@@ -6710,18 +5447,11 @@ msgstr ""
msgid "cannot rebase onto an applied mq patch"
msgstr ""
-msgid "no matching revisions"
-msgstr ""
-
-msgid "can't rebase multiple roots"
-msgstr ""
-
msgid "source is ancestor of destination"
msgstr ""
-#, python-format
-msgid "updating bookmark %s\n"
-msgstr "uppdaterar bokmärket %s\n"
+msgid "source is descendant of destination"
+msgstr ""
msgid "--tool can only be used with --rebase"
msgstr ""
@@ -6733,7 +5463,7 @@ msgid "specify merge tool for rebase"
msgstr "ange sammanfogningsverktyg för ombasering"
msgid "commands to interactively select changes for commit/qrefresh"
-msgstr "interaktivt val av ändringar för commit/qrefresh"
+msgstr ""
msgid "ignore white space when comparing lines"
msgstr "ignorera blanktecken när rader jämförs"
@@ -6745,100 +5475,65 @@ msgid "ignore changes whose lines are all blank"
msgstr "ignorera ändringar vars rader är tomma"
msgid "this modifies a binary file (all or nothing)\n"
-msgstr "detta modifierar en binär fil (allt eller inget)\n"
+msgstr ""
msgid "this is a binary file\n"
-msgstr "det här är en binär fil\n"
+msgstr ""
#, python-format
msgid "%d hunks, %d lines changed\n"
-msgstr "%d stycken, %d rader ändrade\n"
+msgstr ""
-msgid "[Ynesfdaq?]"
-msgstr "[Ynesfdaq?]"
+msgid "[Ynsfdaq?]"
+msgstr ""
msgid "&Yes, record this change"
-msgstr "(&Y) Ja, lagra den här ändringen"
+msgstr ""
msgid "&No, skip this change"
-msgstr "&Nej, hoppa över den här ändringen"
-
-msgid "&Edit the change manually"
-msgstr "(&E) Redigera ändringen manuellt"
+msgstr ""
msgid "&Skip remaining changes to this file"
-msgstr "(&S) Hoppa över kvarvarande ändringar i den här filen"
+msgstr ""
msgid "Record remaining changes to this &file"
-msgstr "Spara kvarvarande ändringar till denna &fil"
+msgstr ""
msgid "&Done, skip remaining changes and files"
-msgstr "&(D) Klar, hoppa över kvarvarande ändringar och filer"
+msgstr ""
msgid "Record &all changes to all remaining files"
-msgstr "Spara &alla ändringar till alla kvarvarande filer"
+msgstr ""
msgid "&Quit, recording no changes"
-msgstr "(&Q) Avsluta, spara inga ändringar"
-
-msgid "&?"
-msgstr "&?"
-
-msgid "cannot edit patch for whole file"
-msgstr "kan inte redigera patch för hel fil"
-
-msgid "cannot edit patch for binary file"
-msgstr "kan inte redigera patch för binär fil"
-
-msgid ""
-"\n"
-"To remove '-' lines, make them ' ' lines (context).\n"
-"To remove '+' lines, delete them.\n"
-"Lines starting with # will be removed from the patch."
msgstr ""
-"\n"
-"För att radera rader med '-', ersätt med blanka (' ') rader (kontext).\n"
-"För att radera rader med '+', radera dom.\n"
-"Rader som börjar med # kommer att raderas från patchen."
-msgid ""
-"If the patch applies cleanly, the edited hunk will immediately be\n"
-"added to the record list. If it does not apply cleanly, a rejects\n"
-"file will be generated: you can use that when you try again. If\n"
-"all lines of the hunk are removed, then the edit is aborted and\n"
-"the hunk is left unchanged.\n"
+msgid "&?"
msgstr ""
-"Om patchen appliceras utan problem, kommer det redigerade stycket att\n"
-"sparas. Om problem uppstår, kommer en .rej-fil att genereras: du kan\n"
-"använde den när du försöker igen. Om alla rader i stycket raderas, så\n"
-"avbryts redigeringen och stycket lämnas oförändrat.\n"
-
-msgid "edit failed"
-msgstr "redigering misslyckades"
msgid "user quit"
-msgstr "användaren avslutade"
+msgstr ""
#, python-format
msgid "examine changes to %s?"
-msgstr "granska ändringar i %s?"
+msgstr ""
msgid " and "
-msgstr " och "
+msgstr ""
#, python-format
msgid "record this change to %r?"
-msgstr "spara den här ändringen till %r?"
+msgstr ""
#, python-format
msgid "record change %d/%d to %r?"
-msgstr "spara ändring %d/%d till %r?"
+msgstr ""
msgid "hg record [OPTION]... [FILE]..."
msgstr "hg record [FLAGGA]... [FIL]..."
msgid "interactively select changes to commit"
-msgstr "välj interaktivt ändringar för arkivering"
+msgstr ""
msgid ""
" If a list of files is omitted, all changes reported by :hg:`status`\n"
@@ -6853,43 +5548,31 @@ msgid ""
" change to use. For each query, the following responses are\n"
" possible::"
msgstr ""
-" Du kommer att frågas om du vill lagra ändrade filer, och i filer med\n"
-" flera ändringar kommer du att få frågan för varje ändring. Vid varje\n"
-" fråga är följande svar möjliga::"
msgid ""
" y - record this change\n"
-" n - skip this change\n"
-" e - edit this change manually"
+" n - skip this change"
msgstr ""
-" y - lagra den här ändringen\n"
-" n - hoppa över den här ändringen\n"
-" e - redigera ändringen manuellt"
msgid ""
" s - skip remaining changes to this file\n"
" f - record remaining changes to this file"
msgstr ""
-" s - hoppa över kvarvarande ändringar i den här filen\n"
-" f - spara kvarvarande ändringar till denna fil"
msgid ""
" d - done, skip remaining changes and files\n"
" a - record all changes to all remaining files\n"
" q - quit, recording no changes"
msgstr ""
-" d - klar, hoppa över kvarvarande ändringar och filer\n"
-" a - spara alla ändringar till alla kvarvarande filer\n"
-" q - avsluta, spara inga ändringar"
msgid " ? - display help"
-msgstr " ? - visa hjälp"
+msgstr ""
msgid " This command is not available when committing a merge."
-msgstr " Det här kommandot är inte tillgängligt vid sammanfogning."
+msgstr ""
msgid "interactively record a new patch"
-msgstr "lägra en ny ändring interaktivt"
+msgstr ""
msgid ""
" See :hg:`help qnew` & :hg:`help record` for more information and\n"
@@ -6901,24 +5584,24 @@ msgstr ""
" "
msgid "'mq' extension not loaded"
-msgstr "utökningen 'mq' är inte laddad"
+msgstr ""
#, python-format
msgid "running non-interactively, use %s instead"
-msgstr "kör icke-interaktivt, använd %s istället"
+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 "inga ändringar att lagra\n"
+msgstr ""
msgid "hg qrecord [OPTION]... PATCH [FILE]..."
-msgstr "hg qrecord [FLAGGA]... PATCH [FIL]..."
+msgstr ""
msgid "interactively select changes to refresh"
-msgstr "interaktivt val av ändringar att uppdatera"
+msgstr ""
msgid "recreates hardlinks between repository clones"
msgstr ""
@@ -6964,6 +5647,9 @@ msgstr ""
msgid "hardlinks are not supported on this system"
msgstr "hårda länkar stöds inte av detta system"
+msgid "must specify local origin repository"
+msgstr "måste ange lokalt utgångsarkiv"
+
#, python-format
msgid "relinking %s to %s\n"
msgstr "länkar om %s till %s\n"
@@ -7088,17 +5774,6 @@ msgid ""
" "
msgstr ""
-msgid "convert a shared repository to a normal one"
-msgstr "konvertera ett delat arkiv till ett normalt"
-
-msgid ""
-" Copy the store data to the repo and remove the sharedpath data.\n"
-" "
-msgstr ""
-
-msgid "this is not a shared repo"
-msgstr "det här är inte ett delat arkiv"
-
msgid "do not create a working copy"
msgstr ""
@@ -7125,10 +5800,6 @@ msgid "skipping merge changeset %s:%s\n"
msgstr ""
#, python-format
-msgid "%s is not a parent of %s"
-msgstr "%s är inte en förälder till %s"
-
-#, python-format
msgid "%s merged at %s\n"
msgstr ""
@@ -7146,6 +5817,10 @@ msgstr ""
msgid "can only omit patchfile if merging"
msgstr ""
+#, python-format
+msgid "%s: empty changeset"
+msgstr ""
+
msgid "fix up the merge and run hg transplant --continue"
msgstr ""
@@ -7192,6 +5867,9 @@ msgstr "inget sådant alternativ\n"
msgid "pull patches from REPO"
msgstr ""
+msgid "BRANCH"
+msgstr "GREN"
+
msgid "pull patches from branch BRANCH"
msgstr ""
@@ -7204,9 +5882,6 @@ msgstr ""
msgid "merge at REV"
msgstr ""
-msgid "parent to choose when transplanting merge"
-msgstr "förälder att välja när sammanfogning transplanteras"
-
msgid "append transplant info to log message"
msgstr ""
@@ -7254,7 +5929,7 @@ msgid ""
msgstr ""
msgid ""
-" :hg:`transplant --branch REV --all` will transplant the\n"
+" :hg:`transplant --branch REVISION --all` will transplant the\n"
" selected branch (up to the named revision) onto your current\n"
" working directory."
msgstr ""
@@ -7267,11 +5942,6 @@ msgid ""
msgstr ""
msgid ""
-" Merge changesets may be transplanted directly by specifying the\n"
-" proper parent changeset by calling :hg:`transplant --parent`."
-msgstr ""
-
-msgid ""
" If no merges or revisions are provided, :hg:`transplant` will\n"
" start an interactive changeset browser."
msgstr ""
@@ -7435,7 +6105,7 @@ msgid ""
msgstr ""
#, python-format
-msgid "attempt to commit or push text file(s) using %s line endings\n"
+msgid "Attempt to commit or push text file(s) using %s line endings\n"
msgstr ""
#, python-format
@@ -7506,12 +6176,15 @@ msgstr ""
msgid "archive prefix contains illegal components"
msgstr ""
-msgid "archiving"
-msgstr "arkiverar"
+msgid "cannot give prefix when archiving to files"
+msgstr ""
#, python-format
-msgid "malformed line in .hg/bookmarks: %r\n"
-msgstr "defekt rad i .hg/bookmarks: %r\n"
+msgid "unknown archive type '%s'"
+msgstr ""
+
+msgid "archiving"
+msgstr "arkiverar"
#, python-format
msgid "bookmark '%s' contains illegal character"
@@ -7522,12 +6195,12 @@ msgid "branch %s not found"
msgstr "grenen %s hittades inte"
#, python-format
-msgid "divergent bookmark %s stored as %s\n"
-msgstr "divergent bokmärke %s lagrat som %s\n"
+msgid "updating bookmark %s\n"
+msgstr "uppdaterar bokmärket %s\n"
#, python-format
-msgid "adding remote bookmark %s\n"
-msgstr "lägger till fjärrbokmärket %s\n"
+msgid "not updating divergent bookmark %s\n"
+msgstr "uppdaterar inte divergent bokmärke %s\n"
msgid "searching for changed bookmarks\n"
msgstr "söker efter ändrade bokmärken\n"
@@ -7536,7 +6209,7 @@ msgid "no changed bookmarks found\n"
msgstr "inga ändrade bokmärken hittades\n"
msgid "unknown parent"
-msgstr "okänd förälder"
+msgstr ""
#, python-format
msgid "integrity check failed on %s:%d"
@@ -7573,22 +6246,18 @@ msgstr "användarnamnet %s innehåller en radbrytning"
msgid "the name '%s' is reserved"
msgstr "namnet '%s' är reserverat"
-#, python-format
-msgid "uncommitted changes in subrepo %s"
-msgstr "oarkiverade ändringar i underarkivet %s"
-
msgid "options --message and --logfile are mutually exclusive"
-msgstr "du kan bara ange en av --message och --logfile"
+msgstr ""
#, python-format
msgid "can't read commit message '%s': %s"
-msgstr "kan inte läsa arkiveringsmeddelande '%s': %s"
+msgstr ""
msgid "limit must be a positive integer"
-msgstr "limit måste vara ett positivt heltal"
+msgstr ""
msgid "limit must be positive"
-msgstr "limit måste vara positivt"
+msgstr ""
#, python-format
msgid "invalid format spec '%%%s' in output filename"
@@ -7623,10 +6292,6 @@ msgid "%s: not overwriting - %s collides with %s\n"
msgstr ""
#, python-format
-msgid "%s: can't copy - same file\n"
-msgstr "%s: kan inte kopiera - samma fil\n"
-
-#, python-format
msgid "%s: not overwriting - file exists\n"
msgstr ""
@@ -7667,6 +6332,9 @@ msgstr ""
msgid "destination %s is not a directory"
msgstr ""
+msgid "no files to copy"
+msgstr ""
+
msgid "(consider using --after)\n"
msgstr ""
@@ -7690,10 +6358,6 @@ msgid "tag: %s\n"
msgstr "märke: %s\n"
#, python-format
-msgid "phase: %s\n"
-msgstr "fas: %s\n"
-
-#, python-format
msgid "parent: %d:%s\n"
msgstr "förälder: %d:%s\n"
@@ -7742,26 +6406,18 @@ msgid "%s: no key named '%s'"
msgstr ""
#, python-format
-msgid "found revision %s from %s\n"
-msgstr "hittade revision %s från %s\n"
+msgid "Found revision %s from %s\n"
+msgstr "Hittade revision %s från %s\n"
msgid "revision matching date not found"
msgstr ""
#, python-format
-msgid "cannot follow file not in parent revision: \"%s\""
-msgstr "kan inte följa fil som inte finns i förälderrevision: \"%s\""
-
-#, python-format
msgid "cannot follow nonexistent file: \"%s\""
-msgstr "kan inte följa icke-existerande fil: \"%s\""
+msgstr ""
msgid "can only follow copies/renames for explicit filenames"
-msgstr "kan bara följa kopior/namnbyten för explicita filnamn"
-
-#, python-format
-msgid "-G/--graph option is incompatible with --%s"
-msgstr "flaggan -G/--graph är inkompatibel med --%s"
+msgstr ""
#, python-format
msgid "adding %s\n"
@@ -7771,22 +6427,6 @@ msgstr "lägger till %s\n"
msgid "skipping missing subrepository: %s\n"
msgstr ""
-#, python-format
-msgid "amending changeset %s\n"
-msgstr "förändrar ändringen %s\n"
-
-#, python-format
-msgid "copying changeset %s to %s\n"
-msgstr "kopierar ändringen %s till %s\n"
-
-#, python-format
-msgid "stripping intermediate changeset %s\n"
-msgstr "avlägsnar mellanliggande ändring %s\n"
-
-#, python-format
-msgid "stripping amended changeset %s\n"
-msgstr "avlägsnar förändrad ändring %s\n"
-
msgid "HG: Enter commit message. Lines beginning with 'HG:' are removed."
msgstr ""
@@ -7826,26 +6466,6 @@ msgstr "HG: inga ändrade filer"
msgid "empty commit message"
msgstr "tomt arkiveringsmeddelande"
-#, python-format
-msgid "forgetting %s\n"
-msgstr "glömmer %s\n"
-
-#, python-format
-msgid "reverting %s\n"
-msgstr "återställer %s\n"
-
-#, python-format
-msgid "undeleting %s\n"
-msgstr "Ã¥ngrar radering av %s\n"
-
-#, python-format
-msgid "file not managed: %s\n"
-msgstr "filen hanteras inte: %s\n"
-
-#, python-format
-msgid "no changes needed to %s\n"
-msgstr "inga ändringar behövs för %s\n"
-
msgid "repository root directory or name of overlay bundle file"
msgstr "arkivrotkatalog eller namn på påläggsbuntfil"
@@ -7946,18 +6566,12 @@ msgstr "visa med mallfil"
msgid "display with template"
msgstr "visa med mall"
-msgid "show patch"
-msgstr "visa patch"
-
msgid "do not show merges"
msgstr "visa inte sammanfogningar"
msgid "output diffstat-style summary of changes"
msgstr "visa sammanfattning av ändringar i diffstat-stil"
-msgid "show the revision DAG"
-msgstr "visa revisionsdiagram"
-
msgid "treat all files as text"
msgstr "behandla alla filer som text"
@@ -8058,25 +6672,22 @@ msgstr ""
" vid nästa arkivering."
msgid ""
-" Use the -s/--similarity option to detect renamed files. This\n"
+" Use the -s/--similarity option to detect renamed files. With a\n"
+" parameter greater than 0, this compares every removed file with\n"
+" every added file and records those similar enough as renames. This\n"
" option takes a percentage between 0 (disabled) and 100 (files must\n"
-" be identical) as its parameter. With a parameter greater than 0,\n"
-" this compares every removed file with every added file and records\n"
-" those similar enough as renames. Detecting renamed files this way\n"
+" be identical) as its parameter. Detecting renamed files this way\n"
" can be expensive. After using this option, :hg:`status -C` can be\n"
-" used to check which files were identified as moved or renamed. If\n"
-" not specified, -s/--similarity defaults to 100 and only renames of\n"
-" identical files are detected."
-msgstr ""
-" Använd flaggan -s/--similarity för att upptäcka omdöpta filer. Flaggan\n"
-" tar ett procentvärde mellan 0 (deaktiverad) och 100 (filer måste vara\n"
-" identiska) som parameter. Med en parameter större än 0, kommer varje\n"
-" borttagen fil att jämföras med varje tillagd fil och lagrar de som är\n"
-" tillräckligt lika som ett namnbyte. Att upptäcka omdöpta filer på det\n"
-" här sättet kan ta lång tid. Efter att denna flagga har använts, kan\n"
-" :hg:`status -C` användas för att kontrollera vilka filer som\n"
-" identifierades som flyttade eller omdöpta. Om den flaggan inte anges,\n"
-" upptäcks bara namnbyten för identiska filer."
+" used to check which files were identified as moved or renamed."
+msgstr ""
+" Använd flaggan -s/--similarity för att upptäcka omdöpta filer. Med en\n"
+" parameter större än 0, kommer varje borttagen fil att jämföras med\n"
+" varje tillagd fil och lagrar de som är tillräckligt lika som ett\n"
+" namnbyte. Flaggan tar ett procentvärde mellan 0 (deaktiverad) och 100\n"
+" (filer måste vara identiska) som parameter. Att upptäcka omdöpta filer\n"
+" på det här sättet kan ta lång tid. Efter att denna flagga har använts,\n"
+" kan :hg:`status -C` användas för att kontrollera vilka filer som\n"
+" identifierades som flyttade eller omdöpta."
msgid "similarity must be a number"
msgstr "likhet måste vara ett nummer"
@@ -8140,7 +6751,7 @@ msgstr ""
" om resultatet antagligen inte kommer att vara användbart."
msgid "at least one filename or pattern is required"
-msgstr "minst ett filnamn eller mönster krävs"
+msgstr ""
msgid "at least one of -n/-c is required for -l"
msgstr ""
@@ -8184,21 +6795,6 @@ msgstr ""
" Arkivtypen upptäcks automatiskt baserat på filändelsen (eller tvinga\n"
" med hjälp av -t/--type)."
-msgid " Examples:"
-msgstr " Exempel:"
-
-msgid " - create a zip file containing the 1.0 release::"
-msgstr " - skapa en zip-fil som innehåller 1.0-releasen::"
-
-msgid " hg archive -r 1.0 project-1.0.zip"
-msgstr " hg archive -r 1.0 project-1.0.zip"
-
-msgid " - create a tarball excluding .hg files::"
-msgstr " - skapa en tarboll utan .hg-filer::"
-
-msgid " hg archive project.tar.gz -X \".hg*\""
-msgstr " hg archive project.tar.gz -X \".hg*\""
-
msgid " Valid types are:"
msgstr " Giltiga typer är:"
@@ -8246,8 +6842,8 @@ msgstr "kan inte arkivera rena filer till stdout"
msgid "merge with old dirstate parent after backout"
msgstr "sammanfoga med gamla dirstate-föräldern efter återkallning"
-msgid "parent to choose when backing out merge (DEPRECATED)"
-msgstr "förälder att välja när en sammanfogning återkallas (FÖRLEGAD)"
+msgid "parent to choose when backing out merge"
+msgstr "förälder att välja när en sammanfogning återkallas"
msgid "revision to backout"
msgstr "revision att återkalla"
@@ -8274,35 +6870,26 @@ msgstr ""
" sammanfogade resultatet lämnas oarkiverat."
msgid ""
-" .. note::\n"
-" backout cannot be used to fix either an unwanted or\n"
-" incorrect merge."
-msgstr ""
-" .. note::\n"
-" backout kan inte användas för att fixa en oönskad eller felaktig\n"
-" sammanfogning."
-
-msgid ""
-" By default, the pending changeset will have one parent,\n"
-" maintaining a linear history. With --merge, the pending\n"
-" changeset will instead have two parents: the old parent of the\n"
-" working directory and a new child of REV that simply undoes REV."
+" 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\n"
-" en 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\n"
-" barn av REV som helt enkelt ogör REV."
+" 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\n"
-" to specifying --merge followed by :hg:`update --clean .` to\n"
-" cancel the merge and leave the child of REV as a head to be\n"
-" merged separately."
+" 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"
-" ange --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."
+" Innan version 1.7, så var beteendet utan --merge ekvivalent med att\n"
+" ange --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 "ange bara en revision"
@@ -8316,8 +6903,12 @@ msgstr "kan inte återkalla en ändring på en annan gren"
msgid "cannot backout a change with no parents"
msgstr "kan inte återkalla en ändring utan föräldrar"
-msgid "cannot backout a merge changeset"
-msgstr "kan inte återkalla en sammanfogning"
+msgid "cannot backout a merge changeset without --parent"
+msgstr "kan inte återkalla en sammanfogande ändring utan --parent"
+
+#, python-format
+msgid "%s is not a parent of %s"
+msgstr "%s är inte en förälder till %s"
msgid "cannot use --parent on non-merge changeset"
msgstr "kan inte använda --parent på icke-sammanfogande ändring"
@@ -8384,124 +6975,16 @@ msgstr ""
msgid ""
" If you supply a command, it will be used for automatic bisection.\n"
-" The environment variable HG_NODE will contain the ID of the\n"
-" changeset being tested. The exit status of the command will be\n"
-" used to mark revisions as good or bad: status 0 means good, 125\n"
-" means to skip the revision, 127 (command not found) will abort the\n"
-" bisection, and any other non-zero exit status means the revision\n"
-" is bad."
+" Its exit status will be used to mark revisions as good or bad:\n"
+" status 0 means good, 125 means to skip the revision, 127\n"
+" (command not found) will abort the bisection, and any other\n"
+" non-zero exit status means the revision is bad."
msgstr ""
" Om du tillhandahåller ett kommando, kommer det att användas för\n"
-" automatisk genomsökning. Miljövariabeln HG_NODE kommer att innehålla\n"
-" ID för den ändring som testas. Returkoden från kommandot kommer att\n"
-" användas för att markera en revision som bra eller dålig: 0 betyer\n"
-" bra, 125 betyder hoppa över revionen, 127 (kommandot hittades inte)\n"
-" kommer att avbryta genomsökningen, och alla andra värden betyder att\n"
-" revisionen är dålig."
-
-msgid " Some examples:"
-msgstr " NÃ¥gra exempel:"
-
-msgid ""
-" - start a bisection with known bad revision 12, and good revision 34::"
-msgstr ""
-" - starta en sökning med känd dålig revision 12, och bra revision 34::"
-
-msgid ""
-" hg bisect --bad 34\n"
-" hg bisect --good 12"
-msgstr ""
-" hg bisect --bad 34\n"
-" hg bisect --good 12"
-
-msgid ""
-" - advance the current bisection by marking current revision as good "
-"or\n"
-" bad::"
-msgstr ""
-" - stega den nuvarande sökningen genom att markera nuvarande revision\n"
-" som bra eller dålig::"
-
-msgid ""
-" hg bisect --good\n"
-" hg bisect --bad"
-msgstr ""
-" hg bisect --good\n"
-" hg bisect --bad"
-
-msgid ""
-" - mark the current revision, or a known revision, to be skipped (eg. "
-"if\n"
-" that revision is not usable because of another issue)::"
-msgstr ""
-" - markera att den nuvarande revisionen, eller en känd revision, ska\n"
-" hoppas över (ex. om den revisionen är oanvändbar på grund av annat\n"
-" fel)::"
-
-msgid ""
-" hg bisect --skip\n"
-" hg bisect --skip 23"
-msgstr ""
-" hg bisect --skip\n"
-" hg bisect --skip 23"
-
-msgid " - forget the current bisection::"
-msgstr " - glöm den aktuella genomsökningen::"
-
-msgid " hg bisect --reset"
-msgstr " hg bisect --reset"
-
-msgid ""
-" - use 'make && make tests' to automatically find the first broken\n"
-" revision::"
-msgstr ""
-" - använd 'make && make tests' för att automatiskt hitta den första\n"
-" defekta revisionen::"
-
-msgid ""
-" hg bisect --reset\n"
-" hg bisect --bad 34\n"
-" hg bisect --good 12\n"
-" hg bisect --command 'make && make tests'"
-msgstr ""
-" hg bisect --reset\n"
-" hg bisect --bad 34\n"
-" hg bisect --good 12\n"
-" hg bisect --command 'make && make tests'"
-
-msgid ""
-" - see all changesets whose states are already known in the current\n"
-" bisection::"
-msgstr ""
-" - visa alla ändringar vars status redan är kända i den nuvarande\n"
-" genomsökningen::"
-
-msgid " hg log -r \"bisect(pruned)\""
-msgstr " hg log -r \"bisect(pruned)\""
-
-msgid ""
-" - see the changeset currently being bisected (especially useful\n"
-" if running with -U/--noupdate)::"
-msgstr ""
-" - se ändringen som genomsöks (mest användbart med -U/--no-update)::"
-
-msgid " hg log -r \"bisect(current)\""
-msgstr " hg log -r \"bisect(current)\""
-
-msgid " - see all changesets that took part in the current bisection::"
-msgstr " - se alla ändringar som var med i den nuvarande genomsökningen::"
-
-msgid " hg log -r \"bisect(range)\""
-msgstr " hg log -r \"bisect(range)\""
-
-msgid " - with the graphlog extension, you can even get a nice graph::"
-msgstr " - med graphlog-utökningen så kan du få en söt graf::"
-
-msgid " hg log --graph -r \"bisect(range)\""
-msgstr " hg log --graph -r \"bisect(range)\""
-
-msgid " See :hg:`help revsets` for more about the `bisect()` keyword."
-msgstr " Se :hg:`help revsets` för mer om nyckelordet `bisect()`."
+" automatisk genomsökning. Dess returkod kommer att användas för att ange\n"
+" revisioner som bra eller dåliga: kod 0 betyder bra, 125 betyder att\n"
+" revisionen hoppas över, 127 (kommandot hittades inte) avbryter\n"
+" genomsökningen, och alla andra värden betyder att revisionen är dålig."
msgid "The first good revision is:\n"
msgstr "Den första bra revisionen är:\n"
@@ -8536,12 +7019,6 @@ msgstr "(användning av 'hg bisect <kmd>' är föråldrat)\n"
msgid "incompatible arguments"
msgstr "inkompatibla argument"
-msgid "current bisect revision is unknown - start a new bisect to fix"
-msgstr ""
-
-msgid "current bisect revision is a merge"
-msgstr ""
-
#, python-format
msgid "failed to execute %s"
msgstr "misslyckades med att köra %s"
@@ -8551,8 +7028,8 @@ msgid "%s killed"
msgstr "%s dödad"
#, python-format
-msgid "changeset %d:%s: %s\n"
-msgstr "ändring %d:%s: %s\n"
+msgid "Changeset %d:%s: %s\n"
+msgstr "Ändring %d:%s: %s\n"
#, python-format
msgid "Extending search to changeset %d:%s\n"
@@ -8574,8 +7051,8 @@ msgstr "ta bort angivet bokmärke"
msgid "rename a given bookmark"
msgstr "döp om angivet bokmärke"
-msgid "mark a bookmark inactive"
-msgstr "markera ett bokmärke som inaktivt"
+msgid "do not mark a new bookmark active"
+msgstr "markera inte ett nytt bokmärke som aktivt"
msgid "hg bookmarks [-f] [-d] [-i] [-m NAME] [-r REV] [NAME]"
msgstr "hg bookmarks [-f] [-d] [-i] [-m NAMN] [-r REV] [NAMN]"
@@ -8584,16 +7061,15 @@ 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 committing.\n"
-" Bookmarks are local. They can be renamed, copied and deleted. It is\n"
-" possible to use :hg:`merge NAME` to merge from a given bookmark, and\n"
-" :hg:`update NAME` to update to a given bookmark."
+" 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 NAMN`\n"
-" för att sammanfoga från ett bokmärke, och :hg:`update NAMN` för att\n"
-" uppdatera till ett visst bokmärke."
+" 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"
@@ -8611,29 +7087,15 @@ msgid ""
" 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."
+" 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."
-
-msgid ""
-" With -i/--inactive, the new bookmark will not be made the active\n"
-" bookmark. If -r/--rev is given, the new bookmark will not be made\n"
-" active even if -i/--inactive is not given. If no NAME is given, the\n"
-" current active bookmark will be marked inactive.\n"
-" "
-msgstr ""
-" Med -i/--inactive blir det nya bokmärket inte det aktiva bokmärket.\n"
-" Om -r/--rev anges så är bokmärket inte aktivt även om -i/--inactive\n"
-" inte anges. Om inget NAMN anges, kommer det nuvarande aktiva bokmärket\n"
-" att markeras som inaktivt.\n"
+" bookmarks-utökningen måste vara aktiverad.\n"
" "
-msgid "bookmark name required"
-msgstr "bokmärkesnamn krävs"
-
#, python-format
msgid "bookmark '%s' does not exist"
msgstr "bokmärket '%s' existerar inte"
@@ -8645,6 +7107,9 @@ msgstr "bokmärket '%s' existerar redan (använd -f för att tvinga)"
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"
@@ -8670,18 +7135,6 @@ msgid "set or show the current branch name"
msgstr "sätt eller visa det aktuella grennamnet"
msgid ""
-" .. note::\n"
-" Branch names are permanent and global. Use :hg:`bookmark` to create "
-"a\n"
-" light-weight bookmark instead. See :hg:`help glossary` for more\n"
-" information about named branches and bookmarks."
-msgstr ""
-" .. note::\n"
-" Grennamn är permanenta och globala. Använd :hg:`bookmark` för att\n"
-" skapa ett lättviktsbokmärke istället. Se :hg:`help glossary` för\n"
-" mer information om namngivna grenar och bokmärken."
-
-msgid ""
" With no argument, show the current branch name. With one argument,\n"
" set the working directory branch name (the branch will not exist\n"
" in the repository until the next commit). Standard practice\n"
@@ -8716,6 +7169,18 @@ msgstr ""
" Använd kommandot :hg:`update` för att byta till en existerande gren.\n"
" Använd :hg:`commit --close-branch` för att markera grenen som stängd."
+msgid " .. note::"
+msgstr " .. notera::"
+
+msgid ""
+" Branch names are permanent. Use :hg:`bookmark` to create a\n"
+" light-weight bookmark instead. See :hg:`help glossary` for more\n"
+" information about named branches and bookmarks."
+msgstr ""
+" Grennamnar är permanenta. Använd :hg:`bookmark` för att skapa ett\n"
+" lättviktsbokmärke istället. Se :hg:`help glossary` för mer\n"
+" information om namngivna grenar och bokmärken."
+
#, python-format
msgid "reset working directory to branch %s\n"
msgstr "återställ arbetskatalogen till grenen %s\n"
@@ -8725,15 +7190,12 @@ msgstr "ett grennamn med det namnet existerar redan"
#. i18n: "it" refers to an existing branch
msgid "use 'hg update' to switch to it"
-msgstr "använd 'hg update' för att byta till den"
+msgstr ""
#, python-format
msgid "marked working directory as branch %s\n"
msgstr "markerade arbetskatalogen som grenen %s\n"
-msgid "(branches are permanent and global, did you want a bookmark?)\n"
-msgstr "(grenar är permanenta och globala, ville du ha ett bokmärke?)\n"
-
msgid "show only branches that have unmerged heads"
msgstr "visa bara grenar som har icke-sammanfogade huvuden"
@@ -8854,12 +7316,12 @@ msgstr ""
" Returnerar 0 om kommandot lyckades, 1 om inga ändringar hittades.\n"
" "
-msgid "unknown bundle type specified with --type"
-msgstr "okänd bunttyp angiven med --type"
-
msgid "--base is incompatible with specifying a destination"
msgstr "--base är inkompatibel med specificering av destination"
+msgid "unknown bundle type specified with --type"
+msgstr "okänd bunttyp angiven med --type"
+
msgid "print output to file with formatted name"
msgstr "skriv utmatning till fil med formatterat namn"
@@ -8937,153 +7399,111 @@ 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 ""
-" Only local paths and ``ssh://`` URLs are supported as\n"
-" destinations. For ``ssh://`` destinations, no working directory or\n"
-" ``.hg/hgrc`` will be created on the remote side."
-msgstr ""
-" Bara lokala sökvägar och ``ssh://``-URLer stödjs som destinationer. För\n"
-" ``ssh://``-destinationer så kommer ingen arbetskatalog eller\n"
-" ``.hg/hgrc`` att skapas på fjärrsidan."
+msgid " See :hg:`help urls` for valid source format details."
+msgstr " Se :hg:`help urls` för detaljer om giltiga källformat."
msgid ""
-" To pull only a subset of changesets, specify one or more revisions\n"
-" identifiers with -r/--rev or branches with -b/--branch. The\n"
-" resulting clone will contain only the specified changesets and\n"
-" their ancestors. These options (or 'clone src#rev dest') imply\n"
-" --pull, even for local source repositories. Note that specifying a\n"
-" tag will include the tagged changeset but not the changeset\n"
-" containing the tag."
+" 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"
+" Please see :hg:`help urls` for important details about ``ssh://`` URLs."
msgstr ""
-" För att dra bara en delmängd av ändringarna, angå en eller fler\n"
-" revisionidentifierare med -r/--rev eller grenar med -b/--branch. Den\n"
-" resulterande klonen kommer bara att innehålla de angivna ändringarna\n"
-" och deras anfäder. Dessa flaggor (eller 'clone källa#rev dest') har\n"
-" implicit --pull, även för lokala arkiv. Notera att angivandet av ett\n"
-" märke kommer att hämta ut den märkta ändringen, men inte ändringen som\n"
-" innehåller märket."
+" Det är möjligt att ange en ``ssh://``-URL som destination, men ingen\n"
+" ``.hg/hgrc`` och arbetskatalog skapas på fjärrsidan.\n"
+" Se :hg:`help urls` för viktiga detaljer om ``ssh://``-URLer."
msgid ""
-" To check out a particular version, use -u/--update, or\n"
-" -U/--noupdate to create a clone with no working directory."
+" A set of changesets (tags, or branch names) to pull may be specified\n"
+" by listing each changeset (tag, or branch name) with -r/--rev.\n"
+" If -r/--rev is used, the cloned repository will contain only a subset\n"
+" of the changesets of the source repository. Only the set of changesets\n"
+" defined by all -r/--rev options (including all their ancestors)\n"
+" will be pulled into the destination repository.\n"
+" No subsequent changesets (including subsequent tags) will be present\n"
+" in the destination."
msgstr ""
-" För att hämta ut en speciell version, använd -u/--update, eller\n"
-" -U/--noupdate för att skapa en klon utan en arbetskatalog."
+" En grupp ändringar (märken, eller grennamn) att dra kan anges genom\n"
+" att lista varje ändring (märke, eller grennamn) med -r/--rev. Om\n"
+" -r/--rev används, kommer det klonade arkivet bara att innehålla en\n"
+" delmängd av ändringarna i källarkivet. Bara ändringarna definierade med\n"
+" -r/--rev (och alla föräldrar) kommer att dras in i destinationsarkivet.\n"
+" Inga efterföljande ändringar (inklusive efterföljande märken) kommer\n"
+" att finnas i destinationen."
msgid ""
-" For efficiency, hardlinks are used for cloning whenever the\n"
-" source and destination are on the same filesystem (note this\n"
-" applies only to the repository data, not to the working\n"
-" directory). Some filesystems, such as AFS, implement hardlinking\n"
-" incorrectly, but do not report errors. In these cases, use the\n"
-" --pull option to avoid hardlinking."
+" Using -r/--rev (or 'clone src#rev dest') implies --pull, even for\n"
+" local source repositories."
msgstr ""
-" Av effektivitestskäl används hårda länkar när källan och\n"
-" destinationen är på samma filsystem (notera att detta bara gäller för\n"
-" arkivdatat, inte arbetskopian). Vissa filsystem såsom AFS\n"
-" implementerar hårda länkar felaktigt, men rapporterar inga fel.\n"
-" Använd flaggan --pull för att undvika användning av hårda länkar."
+" Användande av -r/--rev (eller 'clone källa#rev dest') aktiverar också\n"
+" --pull, även för lokala arkiv."
msgid ""
-" In some cases, you can clone repositories and the working\n"
-" directory using full hardlinks with ::"
+" For efficiency, hardlinks are used for cloning whenever the source\n"
+" and destination are on the same filesystem (note this applies only\n"
+" to the repository data, not to the working directory). Some\n"
+" filesystems, such as AFS, implement hardlinking incorrectly, but\n"
+" do not report errors. In these cases, use the --pull option to\n"
+" avoid hardlinking."
msgstr ""
-" I vissa fall kan du klona både arkiv och arbetskopia, alla\n"
-" hårdlänkade, med ::"
-
-msgid " $ cp -al REPO REPOCLONE"
-msgstr " $ cp -al ARKIV ARKIVKLON"
+" Av effektivitestskäl används hårda länkar när källan och destinationen\n"
+" är på samma filsystem (notera att detta bara gäller för arkivdatat,\n"
+" inte arbetskopian). Vissa filsystem såsom AFS implementerar\n"
+" hårda länkar felaktigt, men rapporterar inga fel. Använd flaggan --pull\n"
+" för att undvika användning av hårda länkar."
msgid ""
-" This is the fastest way to clone, but it is not always safe. The\n"
-" operation is not atomic (making sure REPO is not modified during\n"
-" the operation is up to you) and you have to make sure your\n"
-" editor breaks hardlinks (Emacs and most Linux Kernel tools do\n"
-" so). Also, this is not compatible with certain extensions that\n"
-" place their metadata under the .hg directory, such as mq."
+" In some cases, you can clone repositories and the working directory\n"
+" using full hardlinks with ::"
msgstr ""
-" Detta är det snabbaste sättet att klona, men det är inte alltid\n"
-" säkert. Operationen är inte atomisk (att ARKIV inte modifieras under\n"
-" operationen är upp till dig) och du måste se till att din editor\n"
-" bryter hårda länkar (Emacs och de flesta Linux-kernelverktyg gör\n"
-" det). Det är inte heller kompatibelt med vissa utökningar som\n"
-" placerar sin metadata under katalogen .hg, som mq."
+" I vissa fall kan du klona både arkiv och arbetskopia, alla\n"
+" hårdlänkade, med ::"
-msgid ""
-" Mercurial will update the working directory to the first applicable\n"
-" revision from this list:"
-msgstr ""
-" Mercurial uppdaterar arbetskatalogen till den första passande\n"
-" revisionen från den här listan:"
+msgid " $ cp -al REPO REPOCLONE"
+msgstr " $ cp -al ARKIV ARKIVKLON"
msgid ""
-" a) null if -U or the source repository has no changesets\n"
-" b) if -u . and the source repository is local, the first parent of\n"
-" the source repository's working directory\n"
-" c) the changeset specified with -u (if a branch name, this means the\n"
-" latest head of that branch)\n"
-" d) the changeset specified with -r\n"
-" e) the tipmost head specified with -b\n"
-" f) the tipmost head specified with the url#branch source syntax\n"
-" g) the tipmost head of the default branch\n"
-" h) tip"
+" This is the fastest way to clone, but it is not always safe. The\n"
+" operation is not atomic (making sure REPO is not modified during\n"
+" the operation is up to you) and you have to make sure your editor\n"
+" breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,\n"
+" this is not compatible with certain extensions that place their\n"
+" metadata under the .hg directory, such as mq."
msgstr ""
-" a) null med -U eller källarkivet inte har några ändringar\n"
-" b) med -u . och källarkivet, den första föräldern av källarkivets\n"
-" arbetskatalog\n"
-" c) ändringen antigen med -u (om ett grennamn, innebär det senaste\n"
-" huvudet på den grenen)\n"
-" d) ändringen angiven med -r\n"
-" e) det högsta huvudet angivet med -b\n"
-" f) det högsta huvudet angivent med källsyntaxen url#gren\n"
-" g) det högsta huvudet på default-grenen\n"
-" h) tip"
-
-msgid " - clone a remote repository to a new directory named hg/::"
-msgstr " - klona ett fjärrarkiv till en ny katalog med namnet hg/::"
-
-msgid " hg clone http://selenic.com/hg"
-msgstr " hg clone http://selenic.com/hg"
-
-msgid " - create a lightweight local clone::"
-msgstr " - skapa en lättviktig lokal klon::"
-
-msgid " hg clone project/ project-feature/"
-msgstr " hg clone project/ project-feature/"
+" Detta är det snabbaste sättet att klona, men det är inte alltid säkert.\n"
+" Operationen är inte atomisk (att ARKIV inte modifieras under\n"
+" operationen är upp till dig) och du måste se till att din editor bryter\n"
+" hårda länkar (Emacs och de flesta Linux-kernelverktyg gör det). Det är\n"
+" inte heller kompatibelt med vissa utökningar som placerar sin metadata\n"
+" under katalogen .hg, som mq."
msgid ""
-" - clone from an absolute path on an ssh server (note double-slash)::"
+" Mercurial will update the working directory to the first applicable\n"
+" revision from this list:"
msgstr ""
-" - klona från en absolut sökväg på en ssh-server (notera dubbel-slash)::"
-
-msgid " hg clone ssh://user@server//home/projects/alpha/"
-msgstr " hg clone ssh://user@server//home/projects/alpha/"
+" Mercurial uppdaterar arbetskatalogen till den första passande\n"
+" revisionen från den här listan:"
msgid ""
-" - do a high-speed clone over a LAN while checking out a\n"
-" specified version::"
+" a) null if -U or the source repository has no changesets\n"
+" b) if -u . and the source repository is local, the first parent of\n"
+" the source repository's working directory\n"
+" c) the changeset specified with -u (if a branch name, this means the\n"
+" latest head of that branch)\n"
+" d) the changeset specified with -r\n"
+" e) the tipmost head specified with -b\n"
+" f) the tipmost head specified with the url#branch source syntax\n"
+" g) the tipmost head of the default branch\n"
+" h) tip"
msgstr ""
-" - gör en höghastighetsklon över ett LAN samtidigt som en specificerad\n"
-" version hämtas ut::"
-
-msgid " hg clone --uncompressed http://server/repo -u 1.5"
-msgstr " hg clone --uncompressed http://server/repo -u 1.5"
-
-msgid ""
-" - create a repository without changesets after a particular revision::"
-msgstr " - skapa ett arkiv utan ändringarna efter en viss revision::"
-
-msgid " hg clone -r 04e544 experimental/ good/"
-msgstr " hg clone -r 04e544 experimental/ good/"
-
-msgid " - clone (and track) a particular named branch::"
-msgstr " - klona (och spåra) en viss namngiven gren::"
-
-msgid " hg clone http://selenic.com/hg#stable"
-msgstr " hg clone http://selenic.com/hg#stable"
-
-msgid " See :hg:`help urls` for details on specifying URLs."
-msgstr " Se :hg:`help urls` för detaljer om att ange URLer."
+" a) null med -U eller källarkivet inte har några ändringar\n"
+" b) med -u . och källarkivet, den första föräldern av källarkivets\n"
+" arbetskatalog\n"
+" c) ändringen antigen med -u (om ett grennamn, innebär det senaste\n"
+" huvudet på den grenen)\n"
+" d) ändringen angiven med -r\n"
+" e) det högsta huvudet angivet med -b\n"
+" f) det högsta huvudet angivent med källsyntaxen url#gren\n"
+" g) det högsta huvudet på default-grenen\n"
+" h) tip"
msgid "cannot specify both --noupdate and --updaterev"
msgstr "kan inte ange både --noupdate och --updaterev"
@@ -9094,9 +7514,6 @@ msgstr "märk nya/saknade filer som tillagda/borttagna innan arkivering"
msgid "mark a branch as closed, hiding it from the branch list"
msgstr "markera en gren som stängd, och göm den från grenlistan"
-msgid "amend the parent of the working dir"
-msgstr "förändra arbetskatalogens föräldrer"
-
msgid "commit the specified files or all outstanding changes"
msgstr "arkivera de angivna filerna eller alla ändringar"
@@ -9135,26 +7552,6 @@ msgstr ""
" meddelande i ``.hg/last-message.txt``."
msgid ""
-" The --amend flag can be used to amend the parent of the\n"
-" working directory with a new commit that contains the changes\n"
-" in the parent in addition to those currently reported by :hg:`status`,\n"
-" if there are any. The old commit is stored in a backup bundle in\n"
-" ``.hg/strip-backup`` (see :hg:`help bundle` and :hg:`help unbundle`\n"
-" on how to restore it)."
-msgstr ""
-
-msgid ""
-" Message, user and date are taken from the amended commit unless\n"
-" specified. When a message isn't specified on the command line,\n"
-" the editor will open with the message of the amended commit."
-msgstr ""
-
-msgid ""
-" It is not possible to amend public changesets (see :hg:`help phases`)\n"
-" or changesets that have children."
-msgstr ""
-
-msgid ""
" Returns 0 on success, 1 if nothing changed.\n"
" "
msgstr ""
@@ -9164,28 +7561,13 @@ msgstr ""
msgid "can only close branch heads"
msgstr "kan bara stänga grenhuvuden"
-msgid "cannot amend recursively"
-msgstr "kan inte förändra rekursivt"
-
-msgid "cannot amend public changesets"
-msgstr "kan inte förändra publika ändringar"
-
-msgid "cannot amend merge changesets"
-msgstr "kan inte förändra sammanfogningar"
-
-msgid "cannot amend while merging"
-msgstr "kan inte förändra vid sammanfogning"
-
-msgid "cannot amend changeset with children"
-msgstr "kan inte förändra ändringar med barn"
-
-msgid "nothing changed\n"
-msgstr "inget ändrat\n"
-
#, python-format
msgid "nothing changed (%d missing files, see 'hg status')\n"
msgstr "inget ändrat (%d saknade filer, se 'hg status')\n"
+msgid "nothing changed\n"
+msgstr "inget ändrat\n"
+
msgid "created new head\n"
msgstr "skapade ett nytt huvud\n"
@@ -9464,7 +7846,7 @@ msgid "no ignore patterns found"
msgstr "inget ignoreringsmönster hittades"
msgid "revlog format"
-msgstr "revlog-format"
+msgstr ""
msgid "[-f FORMAT] -c|-m|FILE"
msgstr ""
@@ -9483,54 +7865,53 @@ msgid "test Mercurial installation"
msgstr "testa Mercurial-installation"
#, python-format
-msgid "checking encoding (%s)...\n"
-msgstr "kontrollerar teckenkodning (%s)...\n"
+msgid "Checking encoding (%s)...\n"
+msgstr ""
msgid " (check that your locale is properly set)\n"
-msgstr " (kontrollera att din locale är korrekt inställd)\n"
+msgstr ""
#, python-format
-msgid "checking installed modules (%s)...\n"
-msgstr "kontrollerar installerade moduler (%s)...\n"
+msgid "Checking installed modules (%s)...\n"
+msgstr ""
msgid " One or more extensions could not be found"
-msgstr " En eller fler utökningar kunde inte hittas"
+msgstr ""
msgid " (check that you compiled the extensions)\n"
-msgstr " (kontrollera att du kompilerade utökningarna)\n"
+msgstr ""
-#, python-format
-msgid "checking templates (%s)...\n"
-msgstr "kontrollerar mallar (%s)...\n"
+msgid "Checking templates...\n"
+msgstr ""
msgid " (templates seem to have been installed incorrectly)\n"
-msgstr " (mallar verkar vara inkorrekt installerade)\n"
+msgstr ""
-msgid "checking commit editor...\n"
-msgstr "kontrollerar arkiveringseditor...\n"
+msgid "Checking commit editor...\n"
+msgstr ""
msgid " No commit editor set and can't find vi in PATH\n"
-msgstr " Ingen arkiveringseditor satt och kan inte hitta vi i PATH\n"
+msgstr ""
msgid " (specify a commit editor in your configuration file)\n"
-msgstr " (specificera en arkiveringseditor i din konfigurationsfil)\n"
+msgstr ""
#, python-format
msgid " Can't find editor '%s' in PATH\n"
-msgstr " Kan inte hitta editorn '%s' i PATH\n"
+msgstr ""
-msgid "checking username...\n"
-msgstr "kontrollerar användarnamn...\n"
+msgid "Checking username...\n"
+msgstr ""
msgid " (specify a username in your configuration file)\n"
-msgstr " (ange ett användarnamn i din konfigurationsfil)\n"
+msgstr ""
-msgid "no problems detected\n"
-msgstr "inga problem upptäcktes\n"
+msgid "No problems detected\n"
+msgstr ""
#, python-format
msgid "%s problems detected, please check your install!\n"
-msgstr "%s problem upptäcktes, kontrollera din installation!\n"
+msgstr ""
msgid "REPO ID..."
msgstr ""
@@ -9539,17 +7920,12 @@ msgid "test whether node ids are known to a repo"
msgstr ""
msgid ""
-" Every ID must be a full-length hex node id string. Returns a list of 0s\n"
-" and 1s indicating unknown/known.\n"
+" Every ID must be a full-length hex node id string. Returns a list of 0s "
+"and 1s\n"
+" indicating unknown/known.\n"
" "
msgstr ""
-msgid "[OBSOLETED [REPLACEMENT] [REPL... ]"
-msgstr ""
-
-msgid "create arbitrary obsolete marker"
-msgstr ""
-
msgid "REPO NAMESPACE [KEY OLD NEW]"
msgstr ""
@@ -9565,25 +7941,6 @@ msgid ""
" "
msgstr ""
-msgid "A B"
-msgstr "A B"
-
-#, python-format
-msgid "a: %s\n"
-msgstr "a: %s\n"
-
-#, python-format
-msgid "b: %s\n"
-msgstr "b: %s\n"
-
-#, python-format
-msgid "depth(a): %d depth(b): %d\n"
-msgstr ""
-
-#, python-format
-msgid "delta: %d hdist: %d distance: %d relation: %s\n"
-msgstr ""
-
msgid "revision to rebuild to"
msgstr "revision att bygga om till"
@@ -9622,12 +7979,6 @@ msgstr ""
msgid "parse and apply a revision specification"
msgstr ""
-msgid ""
-" Use --verbose to print the parsed tree before and after aliases\n"
-" expansion.\n"
-" "
-msgstr ""
-
msgid "REV1 [REV2]"
msgstr "REV1 [REV2]"
@@ -9710,53 +8061,14 @@ msgstr ""
" Använd flaggan -g/--git för att skapa diffs i gits utökade format. För\n"
" mer information, läs :hg:`help diffs`."
-msgid " - compare a file in the current working directory to its parent::"
-msgstr " - jämför en fil i arbetskatalogen med dess förälder::"
-
-msgid " hg diff foo.c"
-msgstr " hg diff foo.c"
-
-msgid ""
-" - compare two historical versions of a directory, with rename info::"
-msgstr ""
-" - jämför två historiska versioner of en katalog, med namnändringar::"
-
-msgid " hg diff --git -r 1.0:1.2 lib/"
-msgstr " hg diff --git -r 1.0:1.2 lib/"
-
-msgid " - get change stats relative to the last change on some date::"
-msgstr ""
-" - hämta ändringsstatus relativ ttill den sista ändringen på ett datum::"
-
-msgid " hg diff --stat -r \"date('may 2')\""
-msgstr " hg diff --stat -r \"date('may 2')\""
-
-msgid " - diff all newly-added files that contain a keyword::"
-msgstr " - diffa alla nytillagda filer som innehåller ett nyckelord::"
-
-msgid " hg diff \"set:added() and grep(GNU)\""
-msgstr " hg diff \"set:added() and grep(GNU)\""
-
-msgid " - compare a revision and its parents::"
-msgstr " - jämför en revision och dess föräldrar::"
-
-msgid ""
-" hg diff -c 9353 # compare against first parent\n"
-" hg diff -r 9353^:9353 # same using revset syntax\n"
-" hg diff -r 9353^2:9353 # compare against the second parent"
-msgstr ""
-" hg diff -c 9353 # jämför mot den första föräldern\n"
-" hg diff -r 9353^:9353 # samma med revset-syntax\n"
-" hg diff -r 9353^2:9353 # jämför mot den andra föräldern"
-
msgid "diff against the second parent"
msgstr "diffa mot den andra föräldern"
msgid "revisions to export"
msgstr "revisioner att exportera"
-msgid "[OPTION]... [-o OUTFILESPEC] [-r] REV..."
-msgstr "[FLAGGA]... [-o UTFILSPEC] [-r] REV..."
+msgid "[OPTION]... [-o OUTFILESPEC] REV..."
+msgstr "[FLAGGA]... [-o UTFILSPEC] REV..."
msgid "dump the header and diffs for one or more changesets"
msgstr "dumpa rubrik och diff för en eller fler ändringar"
@@ -9797,8 +8109,6 @@ msgid ""
" :``%R``: changeset revision number\n"
" :``%b``: basename of the exporting repository\n"
" :``%h``: short-form changeset hash (12 hexadecimal digits)\n"
-" :``%m``: first line of the commit message (only alphanumeric "
-"characters)\n"
" :``%n``: zero-padded sequence number, starting at 1\n"
" :``%r``: zero-padded changeset revision number"
msgstr ""
@@ -9808,8 +8118,6 @@ msgstr ""
" :``%R``: ändringens revisionsnummer\n"
" :``%b``: basnamn för det exporterande arkivet\n"
" :``%h``: kort ändringshash (12 hexadecimala siffror)\n"
-" :``%m``: första raden i arkiveringsmeddelandet (bara alfanumeriska "
-"tecken)\n"
" :``%n``: nollpaddat sekvensnummer, börjar med 1\n"
" :``%r``: nollpaddat ändringsrevisionsnummer"
@@ -9836,44 +8144,14 @@ msgstr ""
" Med flaggan --switch-parent, kommer diffen att vara mot den andra\n"
" föräldern. Det kan vara användbart för att granska en sammanfogning."
-msgid ""
-" - use export and import to transplant a bugfix to the current\n"
-" branch::"
-msgstr ""
-" - använd export och import för att transplantera en buggfix på den\n"
-" nuvarande grenen::"
-
-msgid " hg export -r 9353 | hg import -"
-msgstr " hg export -r 9353 | hg import -"
-
-msgid ""
-" - export all the changesets between two revisions to a file with\n"
-" rename information::"
-msgstr ""
-" - exportera alla ändringar mellan två revisioner till en fil med\n"
-" namnändringsinformation::"
-
-msgid " hg export --git -r 123:150 > changes.txt"
-msgstr " hg export --git -r 123:150 > changes.txt"
-
-msgid ""
-" - split outgoing changes into a series of patches with\n"
-" descriptive names::"
-msgstr ""
-" - dela upp utgående ändringar till en serie patchar med beskrivande\n"
-" namn::"
-
-msgid " hg export -r \"outgoing()\" -o \"%n-%m.patch\""
-msgstr " hg export -r \"outgoing()\" -o \"%n-%m.patch\""
-
msgid "export requires at least one changeset"
-msgstr "export kräver minst en ändring"
+msgstr ""
msgid "exporting patches:\n"
-msgstr "exporterar patchar:\n"
+msgstr ""
msgid "exporting patch:\n"
-msgstr "exporterar patch:\n"
+msgstr ""
msgid "forget the specified files on the next commit"
msgstr "glöm de angivna filerna vid nästa arkivering"
@@ -9896,143 +8174,16 @@ msgstr ""
msgid " To undo a forget before the next commit, see :hg:`add`."
msgstr " För att ångra en forget innan nästa arkivering, se :hg:`add`."
-msgid " - forget newly-added binary files::"
-msgstr " - glöm bort nytillagda binärfiler::"
-
-msgid " hg forget \"set:added() and binary()\""
-msgstr " hg forget \"set:added() and binary()\""
-
-msgid " - forget files that would be excluded by .hgignore::"
-msgstr " - glöm bort filer som skulle exkluderas av .hgignore::"
-
-msgid " hg forget \"set:hgignore()\""
-msgstr " hg forget \"set:hgignore()\""
-
-msgid "revisions to graft"
-msgstr "revisioner att ympa"
-
-msgid "resume interrupted graft"
-msgstr "Ã¥teruppta avbruten ympning"
-
-msgid "append graft info to log message"
-msgstr "lägg till ympningsinfo till loggmeddelande"
-
-msgid "record the current date as commit date"
-msgstr "lagra det nuvarande datumet som arkiveringsdatumet"
-
-msgid "record the current user as committer"
-msgstr "lagra den nuvarande användaren som arkiverare"
-
-msgid "[OPTION]... [-r] REV..."
-msgstr "[FLAGGA]... [-r] REV..."
-
-msgid "copy changes from other branches onto the current branch"
-msgstr "kopiera ändringar från andra grenar till den nuvarande grenen"
-
-msgid ""
-" This command uses Mercurial's merge logic to copy individual\n"
-" changes from other branches without merging branches in the\n"
-" history graph. This is sometimes known as 'backporting' or\n"
-" 'cherry-picking'. By default, graft will copy user, date, and\n"
-" description from the source changesets."
-msgstr ""
-
-msgid ""
-" Changesets that are ancestors of the current revision, that have\n"
-" already been grafted, or that are merges will be skipped."
-msgstr ""
-
-msgid " (grafted from CHANGESETHASH)"
-msgstr ""
-
-msgid ""
-" If a graft merge results in conflicts, the graft process is\n"
-" interrupted so that the current merge can be manually resolved.\n"
-" Once all conflicts are addressed, the graft process can be\n"
-" continued with the -c/--continue option."
-msgstr ""
-
-msgid ""
-" .. note::\n"
-" The -c/--continue option does not reapply earlier options."
-msgstr ""
-
-msgid ""
-" - copy a single change to the stable branch and edit its description::"
-msgstr ""
-
-msgid ""
-" hg update stable\n"
-" hg graft --edit 9393"
-msgstr ""
-" hg update stable\n"
-" hg graft --edit 9393"
-
-msgid ""
-" - graft a range of changesets with one exception, updating dates::"
-msgstr ""
-
-msgid " hg graft -D \"2085::2093 and not 2091\""
-msgstr " hg graft -D \"2085::2093 and not 2091\""
-
-msgid " - continue a graft after resolving conflicts::"
-msgstr ""
-
-msgid " hg graft -c"
-msgstr " hg graft -c"
-
-msgid " - show the source of a grafted changeset::"
-msgstr ""
-
-msgid " hg log --debug -r tip"
-msgstr " hg log --debug -r tip"
-
-msgid ""
-" Returns 0 on successful completion.\n"
-" "
-msgstr ""
-" Returnerar 0 om kommandot lyckades.\n"
-" "
-
-msgid "can't specify --continue and revisions"
-msgstr "kan inte specificera --continue och revisioner"
-
-msgid "no graft state found, can't continue"
-msgstr ""
-
-#, python-format
-msgid "skipping ungraftable merge revision %s\n"
-msgstr ""
-
-#, python-format
-msgid "skipping ancestor revision %s\n"
-msgstr ""
-
-#, python-format
-msgid "skipping already grafted revision %s\n"
-msgstr ""
-
-#, python-format
-msgid "skipping already grafted revision %s (same origin %d)\n"
+msgid "no files specified"
msgstr ""
#, python-format
-msgid "skipping already grafted revision %s (was grafted from %d)\n"
+msgid "not removing %s: file is already untracked\n"
msgstr ""
#, python-format
-msgid "grafting revision %s\n"
-msgstr "ympar revision %s\n"
-
-msgid "unresolved conflicts, can't continue"
-msgstr "olösta konflikter, kan inte fortsätta"
-
-msgid "use hg resolve and hg graft --continue"
-msgstr "använd hg resolve och hg graft --continue"
-
-#, python-format
-msgid "graft for revision %s is empty\n"
-msgstr ""
+msgid "removing %s\n"
+msgstr "tar bort %s\n"
msgid "end fields with NUL"
msgstr "avsluta fält med NUL"
@@ -10040,6 +8191,10 @@ msgstr "avsluta fält med NUL"
msgid "print all revisions that match"
msgstr "visa alla revisioner som matchar"
+msgid "follow changeset history, or file history across copies and renames"
+msgstr ""
+"följ ändringshistorik, eller filhistorik över kopieringar och namnbyten"
+
msgid "ignore case when matching"
msgstr "ignorera versaler/gemener vid matchning"
@@ -10110,8 +8265,8 @@ msgstr "visa bara aktiva grenhuvuden (FÖRLEGAD)"
msgid "show normal and closed branch heads"
msgstr "visa normala och stängda grenhuvuden"
-msgid "[-ct] [-r STARTREV] [REV]..."
-msgstr "[-ct] [-r STARTREV] [REV]..."
+msgid "[-ac] [-r STARTREV] [REV]..."
+msgstr "[-ac] [-r STARTREV] [REV]..."
msgid "show current repository heads or show branch heads"
msgstr "visa aktuella arkivhuvuden och visar grenhuvuden"
@@ -10132,14 +8287,10 @@ msgstr ""
msgid ""
" If one or more REVs are given, only branch heads on the branches\n"
-" associated with the specified changesets are shown. This means\n"
-" that you can use :hg:`heads foo` to see the heads on a branch\n"
-" named ``foo``."
+" associated with the specified changesets are shown."
msgstr ""
" Om en eller flera REV anges, kommer bara grenhuvuden på grenar\n"
-" som är associerade med de angivna ändringarna att visas. Det betyder\n"
-" att du kan använda :hg:`heads foo` för att se huvuden på en gren vid\n"
-" namn ``foo``."
+" som är associerade med de angivna ändringarna att visas."
msgid ""
" If -c/--closed is specified, also show branch heads marked closed\n"
@@ -10184,9 +8335,6 @@ msgstr "visa bara hjälp för utökningar"
msgid "show only help for commands"
msgstr "visa bara hjälp för kommandon"
-msgid "show topics matching keyword"
-msgstr "visa ämnen för nyckelord"
-
msgid "[-ec] [TOPIC]"
msgstr "[-ec] [ÄMNE]"
@@ -10201,7 +8349,8 @@ msgid ""
" Given a topic, extension, or command name, print help for that\n"
" topic."
msgstr ""
-" Med ett ämne, utökning eller kommandonamn, visas hjälp för det ämnet."
+" Med ett ämne, utökning eller kommandonamn, visas hjälp för det ämnet.\n"
+" "
msgid ""
" Returns 0 if successful.\n"
@@ -10210,6 +8359,32 @@ msgstr ""
" Returnerar 0 om kommandot lyckades.\n"
" "
+msgid "global options:"
+msgstr "globala flaggor:"
+
+msgid "use \"hg help\" for the full list of commands"
+msgstr "använd \"hg help\" för den fulla kommandolistan"
+
+msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
+msgstr ""
+"använd \"hg help\" för en full kommandolista eller \"hg -v\" för detaljer"
+
+#, python-format
+msgid "use \"hg help %s\" to show the full help text"
+msgstr "använd \"hg help %s\" för att visa utförlig hjälp"
+
+#, python-format
+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"
+msgstr "använd \"hg -v help %s\" för att visa globala flaggor"
+
+msgid "list of commands:"
+msgstr "kommandolista:"
+
#, python-format
msgid ""
"\n"
@@ -10238,66 +8413,23 @@ msgid "%s"
msgstr "%s"
#, python-format
-msgid "use \"hg help -e %s\" to show help for the %s extension"
-msgstr "använd \"hg help -e %s\" för att visa hjälp för utökningen %s"
-
-msgid "options:"
-msgstr "flaggor:"
-
-msgid "global options:"
-msgstr "globala flaggor:"
-
-#, python-format
msgid ""
"\n"
-"use \"hg help %s\" to show the full help text\n"
+"use \"hg -v help %s\" to show verbose help\n"
msgstr ""
"\n"
-"använd \"hg help %s\" för att visa fullständig hjälptext\n"
+"använd \"hg -v help %s\" för att visa utförlig hjälp\n"
-#, python-format
-msgid ""
-"\n"
-"use \"hg -v help %s\" to show more info\n"
-msgstr ""
-"\n"
-"använd \"hg -v help %s\" för att visa mer information\n"
+msgid "options:\n"
+msgstr "flaggor:\n"
-msgid "basic commands:"
-msgstr "grundläggande kommandon:"
-
-msgid "list of commands:"
-msgstr "kommandolista:"
+#, python-format
+msgid "use \"hg help -e %s\" to show help for the %s extension"
+msgstr "använd \"hg help -e %s\" för att visa hjälp för utökningen %s"
msgid "no commands defined\n"
msgstr "inga kommandon definierade\n"
-msgid "enabled extensions:"
-msgstr "aktiverade utökningar:"
-
-msgid ""
-"\n"
-"additional help topics:"
-msgstr ""
-"\n"
-"ytterligare hjälpämnen:"
-
-msgid "use \"hg help\" for the full list of commands"
-msgstr "använd \"hg help\" för den fulla kommandolistan"
-
-msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
-msgstr ""
-"använd \"hg help\" för en full kommandolista eller \"hg -v\" för detaljer"
-
-#, python-format
-msgid "use \"hg help %s\" to show the full help text"
-msgstr "använd \"hg help %s\" för att visa utförlig hjälp"
-
-#, python-format
-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 ""
"\n"
@@ -10321,15 +8453,35 @@ msgstr ""
msgid "'%s' is provided by the following extension:"
msgstr "'%s' tillhandahålls av följande utökning:"
-msgid "Topics"
-msgstr "Ämnen"
-
-msgid "Extension Commands"
-msgstr "Utökningar"
-
msgid "Mercurial Distributed SCM\n"
msgstr "Mercurial Distribuerad SCM\n"
+msgid "basic commands:"
+msgstr "grundläggande kommandon:"
+
+msgid "enabled extensions:"
+msgstr "aktiverade utökningar:"
+
+msgid "VALUE"
+msgstr "VÄRDE"
+
+msgid "DEPRECATED"
+msgstr "FÖRLEGAD"
+
+msgid ""
+"\n"
+"[+] marked option can be specified multiple times"
+msgstr ""
+"\n"
+"flaggor markerade med [+] kan anges flera gånger"
+
+msgid ""
+"\n"
+"additional help topics:"
+msgstr ""
+"\n"
+"ytterligare hjälpämnen:"
+
msgid "identify the specified revision"
msgstr "identifiera den angivna revisionen"
@@ -10379,24 +8531,6 @@ msgstr ""
" Specificering av en sökväg till ett arkiv eller Mercurial-bunt\n"
" gör att kommandot jobbar mot arkivet/bunten som är angiven."
-msgid " - generate a build identifier for the working directory::"
-msgstr " - skapa en byggidentifierare för arbetskatalogen::"
-
-msgid " hg id --id > build-id.dat"
-msgstr " hg id --id > build-id.dat"
-
-msgid " - find the revision corresponding to a tag::"
-msgstr " - hitta revisionen för ett märke::"
-
-msgid " hg id -n -r 1.3"
-msgstr " hg id -n -r 1.3"
-
-msgid " - check the most recent revision of a remote repository::"
-msgstr " - kontrollera den senaste revisionen i ett fjärrarkiv::"
-
-msgid " hg id -r tip http://selenic.com/hg/"
-msgstr " hg id -r tip http://selenic.com/hg/"
-
msgid "can't query remote revision number, branch, or tags"
msgstr "kan inte efterfråga revisionsnummer, gren, eller märken"
@@ -10475,7 +8609,7 @@ msgstr ""
msgid ""
" With -s/--similarity, hg will attempt to discover renames and\n"
-" copies in the patch in the same way as :hg:`addremove`."
+" copies in the patch in the same way as 'addremove'."
msgstr ""
msgid ""
@@ -10484,38 +8618,6 @@ msgid ""
" See :hg:`help dates` for a list of formats valid for -d/--date."
msgstr ""
-msgid " - import a traditional patch from a website and detect renames::"
-msgstr ""
-" - importera en vanlig patch från en webbsida och upptäck namnbyten::"
-
-msgid " hg import -s 80 http://example.com/bugfix.patch"
-msgstr " hg import -s 80 http://example.com/bugfix.patch"
-
-msgid " - import a changeset from an hgweb server::"
-msgstr " - importera en ändring från en hgweb-server::"
-
-msgid " hg import http://www.selenic.com/hg/rev/5ca8c111e9aa"
-msgstr " hg import http://www.selenic.com/hg/rev/5ca8c111e9aa"
-
-msgid " - import all the patches in an Unix-style mbox::"
-msgstr " - importera alla patchar i en Unix-liknande mbox::"
-
-msgid " hg import incoming-patches.mbox"
-msgstr " hg import incoming-patches.mbox"
-
-msgid ""
-" - attempt to exactly restore an exported changeset (not always\n"
-" possible)::"
-msgstr ""
-" - försök att exakt återställa en exporterad ändring (inte alltid\n"
-" möjligt)::"
-
-msgid " hg import --exact proposed-fix.patch"
-msgstr " hg import --exact proposed-fix.patch"
-
-msgid "need at least one patch to import"
-msgstr "behöver minst en patch att importera"
-
msgid "cannot use --no-commit with --bypass"
msgstr "kan inte använda --no-commit med --bypass"
@@ -10525,23 +8627,21 @@ msgstr "kan inte använda --similarity med --bypass"
msgid "patch is damaged or loses information"
msgstr "patchen är skadad eller tappar information"
-msgid "applied to working directory"
-msgstr "applicerad på arbetskatalog"
+msgid "to working directory"
+msgstr "till arbetskatalog"
msgid "not a Mercurial patch"
msgstr "inte en Mercurial-patch"
-#. i18n: refers to a short changeset id
-#, python-format
-msgid "created %s"
-msgstr "skapade %s"
-
msgid "applying patch from stdin\n"
msgstr ""
#, python-format
-msgid "%s: no diffs found"
-msgstr "%s: inga diffar hittades"
+msgid "applied %s\n"
+msgstr "applicerade %s\n"
+
+msgid "no diffs found"
+msgstr ""
msgid "run even if remote repository is unrelated"
msgstr "kör även om fjärrarkivet är obesläktat"
@@ -10671,6 +8771,42 @@ msgstr ""
" Detta undviker problemet med att \"xargs\" behandlar filnamn som\n"
" innehåller blanktecken som multipla filnamn"
+msgid "only follow the first parent of merge changesets"
+msgstr "följ bara den första föräldern vid sammanfogningar"
+
+msgid "show revisions matching date spec"
+msgstr "visa revisioner som matchar datumspecen"
+
+msgid "show copied files"
+msgstr "visa kopierade filer"
+
+msgid "do case-insensitive search for a given text"
+msgstr "gör versalokänslig sökning efter en given text"
+
+msgid "include revisions where files were removed"
+msgstr "inkludera revisioner där filer togs bort"
+
+msgid "show only merges"
+msgstr "visa bara sammanfogningar"
+
+msgid "revisions committed by user"
+msgstr "revisioner arkiverade av användare"
+
+msgid "show only changesets within the given named branch (DEPRECATED)"
+msgstr "visa bara ändringar i den namngivna grenen (FÖRLEGAD)"
+
+msgid "show changesets within the given named branch"
+msgstr "visa ändringar i den namngivna grenen"
+
+msgid "do not display revision or any of its ancestors"
+msgstr "visa inte revision eller någon av dess föräldrar"
+
+msgid "show hidden changesets"
+msgstr "visa dolda ändringar"
+
+msgid "[OPTION]... [FILE]"
+msgstr "[FLAGGA]... [FIL]"
+
msgid "show revision history of entire repository or files"
msgstr "visa revisionshistorik för hela arkivet eller filer"
@@ -10682,24 +8818,28 @@ msgstr ""
" projektet."
msgid ""
-" 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."
-msgstr ""
-" Om ingen revisionsserie specificeras, används ``tip:0`` som standard om\n"
-" inte --follow är satt, då arbetskatalogens förälder används som första\n"
-" revision."
-
-msgid ""
" File history is shown without following rename or copy history of\n"
" files. Use -f/--follow with a filename to follow history across\n"
" renames and copies. --follow without a filename will only show\n"
-" ancestors or descendants of the starting revision."
+" ancestors or descendants of the starting revision. --follow-first\n"
+" only follows the first parent of merge revisions."
msgstr ""
" Filhistorik visas utan att följa namnbyten eller kopieringshistorik av\n"
" filer. Använd -f/--follow med ett filnamn för att följa historiken även\n"
" vid namnbyten och kopiering. --follow utan ett filnamn kommer bara att\n"
-" visa föräldrar eller ättlingar från startrevisionen."
+" visa föräldrar eller ättlingar från startrevisionen. --follow-first\n"
+" följer bara den första föräldern i revisoner med sammanfogningar."
+
+msgid ""
+" 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."
+msgstr ""
+" Om ingen revisionsserie specificeras, används ``tip:0`` som standard om\n"
+" inte --follow är satt, då arbetskatalogens förälder används som första\n"
+" revision. Du kan ange ett revisionsset för log, se :hg:`help revsets`\n"
+" för mer information."
msgid ""
" By default this command prints revision number and changeset id,\n"
@@ -10725,93 +8865,6 @@ msgstr ""
" den första förälder. Dessutom kommer bara filer som skiljer sig från\n"
" BÅDA föräldrarna att visas i filer:."
-msgid ""
-" .. note::\n"
-" for performance reasons, log FILE may omit duplicate changes\n"
-" made on branches and will not show deletions. To see all\n"
-" changes including duplicates and deletions, use the --removed\n"
-" switch."
-msgstr ""
-" .. note::\n"
-" av prestandaskäl så kan 'log FILE' hoppa över duplicerade ändringar\n"
-" gjorda på grenar och kommer inte att visa raderingar. För att se\n"
-" alla ändringar inklusive dupliceringar och raderingar, använd\n"
-" flaggan --removed."
-
-msgid " - changesets with full descriptions and file lists::"
-msgstr " - ändringar med fulla beskrivningar och fillistor::"
-
-msgid " hg log -v"
-msgstr " hg log -v"
-
-msgid " - changesets ancestral to the working directory::"
-msgstr " - ändringar som är anfädrar arbetskatalogen::"
-
-msgid " hg log -f"
-msgstr " hg log -f"
-
-msgid " - last 10 commits on the current branch::"
-msgstr " - sista 10 arkiveringarna på aktuell gren::"
-
-msgid " hg log -l 10 -b ."
-msgstr " hg log -l 10 -b ."
-
-msgid ""
-" - changesets showing all modifications of a file, including removals::"
-msgstr ""
-" - alla ändringar och modifikationer för en fil, inklusive raderingar::"
-
-msgid " hg log --removed file.c"
-msgstr " hg log --removed file.c"
-
-msgid ""
-" - all changesets that touch a directory, with diffs, excluding merges::"
-msgstr ""
-" - alla ändringar som rör en katalog, med diffar, utan sammanfogningar::"
-
-msgid " hg log -Mp lib/"
-msgstr " hg log -Mp lib/"
-
-msgid " - all revision numbers that match a keyword::"
-msgstr " - alla revisionsnummer som matchar ett nyckelord::"
-
-msgid " hg log -k bug --template \"{rev}\\n\""
-msgstr " hg log -k bug --template \"{rev}\\n\""
-
-msgid " - check if a given changeset is included is a tagged release::"
-msgstr " - kontrollera om en ändring inkluderas i en märkt release::"
-
-msgid " hg log -r \"a21ccf and ancestor(1.9)\""
-msgstr " hg log -r \"a21ccf and ancestor(1.9)\""
-
-msgid " - find all changesets by some user in a date range::"
-msgstr " - hitta alla ändringar av en användare i ett datumintervall::"
-
-msgid " hg log -k alice -d \"may 2008 to jul 2008\""
-msgstr " hg log -k alice -d \"may 2008 to jul 2008\""
-
-msgid " - summary of all changesets after the last tag::"
-msgstr " - sammanfattning av alla ändringar efter det senaste märket::"
-
-msgid ""
-" hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
-msgstr ""
-" hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
-
-msgid ""
-" See :hg:`help revisions` and :hg:`help revsets` for more about\n"
-" specifying revisions."
-msgstr ""
-" Se :hg:`help revisions` och :hg:`help revsets` för mer om hur man anger\n"
-" revisioner."
-
-msgid ""
-" See :hg:`help templates` for more about pre-packaged styles and\n"
-" specifying custom templates."
-msgstr ""
-" Se :hg:`help templates` för information om mallar och filter.\n"
-" "
-
msgid "revision to display"
msgstr "revision att visa"
@@ -10923,22 +8976,6 @@ msgstr ""
" Returnerar 0 om kommandot lyckades, 1 om det finns olösta filer.\n"
" "
-msgid ""
-"multiple matching bookmarks to merge - please merge with an explicit rev or "
-"bookmark"
-msgstr ""
-"flera överrensstämmande bokmärken att sammanfoga - ange en explicit revision "
-"eller ett bokmärke"
-
-msgid "run 'hg heads' to see all heads"
-msgstr "kör 'hg heads' för att se alla huvuden"
-
-msgid ""
-"no matching bookmark to merge - please merge with an explicit rev or bookmark"
-msgstr ""
-"inga överrensstämmande bokmärken att sammanfoga - ange en explicit revision "
-"eller ett bokmärke"
-
#, python-format
msgid "branch '%s' has %d heads - please merge with an explicit rev"
msgstr "grenen '%s' har %d huvuden - sammanfoga med en specifik rev"
@@ -10946,18 +8983,19 @@ msgstr "grenen '%s' har %d huvuden - sammanfoga med en specifik rev"
msgid "run 'hg heads .' to see heads"
msgstr "kör 'hg heads .' för att se huvuden"
-msgid "heads are bookmarked - please merge with an explicit rev"
-msgstr "huvuden är bokmärkta - sammanfoga med en explicit revision"
-
#, python-format
msgid "branch '%s' has one head - please merge with an explicit rev"
msgstr "grenen '%s' har ett huvud - sammanfoga med en specifik rev"
-msgid "nothing to merge"
-msgstr "inget att sammanfoga"
+msgid "run 'hg heads' to see all heads"
+msgstr "kör 'hg heads' för att se alla huvuden"
+
+msgid "there is nothing to merge"
+msgstr "det finns inget att sammanfoga"
-msgid "use 'hg update' instead"
-msgstr "använd 'hg update' istället"
+#, python-format
+msgid "%s - use \"hg update\" instead"
+msgstr "%s - använd \"hg update\" istället"
msgid "working directory not at a head revision"
msgstr "arbetskatalogen är inte vid en huvudrevision"
@@ -11072,71 +9110,6 @@ msgstr " Se :hg:`help urls` för mer information."
msgid "not found!\n"
msgstr "hittades inte!\n"
-msgid "set changeset phase to public"
-msgstr "sätt ändringsfas till public"
-
-msgid "set changeset phase to draft"
-msgstr "sätt ändringsfas till draft"
-
-msgid "set changeset phase to secret"
-msgstr "sätt ändringsfas till secret"
-
-msgid "allow to move boundary backward"
-msgstr "tillåt att gränser flyttas bakåt"
-
-msgid "target revision"
-msgstr "målrevision"
-
-msgid "[-p|-d|-s] [-f] [-r] REV..."
-msgstr "[-p|-d|-s] [-f] [-r] REV..."
-
-msgid "set or show the current phase name"
-msgstr "sätt eller visa det aktuella fasnamnet"
-
-msgid " With no argument, show the phase name of specified revisions."
-msgstr " Om inga argument ges, så visas fasnamnet för angivna revisioner."
-
-msgid ""
-" With one of -p/--public, -d/--draft or -s/--secret, change the\n"
-" phase value of the specified revisions."
-msgstr ""
-" Med en av -p/--public, -d/--draft eller -s/--secret, så ändras\n"
-" fasvärdet för de angivna revisionerna."
-
-msgid ""
-" Unless -f/--force is specified, :hg:`phase` won't move changeset from a\n"
-" lower phase to an higher phase. Phases are ordered as follows::"
-msgstr ""
-" Om inte -f/--force anges, så kommer inte :hg:`phase` att flytta\n"
-" ändringar från en lägre fas till en högre fas. Faser är ordnade enligt\n"
-" följande::"
-
-msgid " public < draft < secret"
-msgstr " public < draft < secret"
-
-msgid ""
-" Return 0 on success, 1 if no phases were changed or some could not\n"
-" be changed.\n"
-" "
-msgstr ""
-" Returnerar 0 om kommandot lyckades, 1 om inga faser ändrades eller om\n"
-" några inte kunde förändras.\n"
-" "
-
-msgid "only one phase can be specified"
-msgstr "bara en fas kan vara angiven"
-
-#, python-format
-msgid "cannot move %i changesets to a more permissive phase, use --force\n"
-msgstr ""
-
-#, python-format
-msgid "phase changed for %i changesets\n"
-msgstr "fas ändrad för %i ändringar\n"
-
-msgid "no phases changed\n"
-msgstr "inga faser ändrage\n"
-
#, python-format
msgid "not updating: %s\n"
msgstr "uppdaterar inte: %s\n"
@@ -11216,6 +9189,13 @@ msgstr ""
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."
+msgstr ""
+"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"
@@ -11283,14 +9263,6 @@ msgstr ""
" tryckas till det andra arkivet."
msgid ""
-" If -B/--bookmark is used, the specified bookmarked revision, its\n"
-" ancestors, and the bookmark will be pushed to the remote\n"
-" repository."
-msgstr ""
-" Om -B/--bookmarks används, kommer den angivna bokmärkta revisionen,\n"
-" alla anfäder och bokmärket att tryckas till det andra arkivet."
-
-msgid ""
" Please see :hg:`help urls` for important details about ``ssh://``\n"
" URLs. If DESTINATION is omitted, a default path will be used."
msgstr ""
@@ -11356,66 +9328,61 @@ msgstr "radera (och ta bort) filer även om tillagda eller modifierade"
msgid "remove the specified files on the next commit"
msgstr "ta bort de specificerade filerna vid nästa arkivering"
-msgid " Schedule the indicated files for removal from the current branch."
-msgstr " Markera de indikerade filerna för borttagning från aktuell gren."
+msgid " Schedule the indicated files for removal from the repository."
+msgstr " Markera de indikerade filerna för borttagning från arkivet."
msgid ""
-" This command schedules the files to be removed at the next commit.\n"
-" To undo a remove before that, see :hg:`revert`. To undo added\n"
-" files, see :hg:`forget`."
+" This only removes files from the current branch, not from the\n"
+" entire project history. -A/--after can be used to remove only\n"
+" files that have already been deleted, -f/--force can be used to\n"
+" force deletion, and -Af can be used to remove files from the next\n"
+" revision without deleting them from the working directory."
msgstr ""
-" Kommandot markerar att filerna ska tas bort vid nästa arkivering. För\n"
-" att ångra en remove innan dess, se :hg:`revert`. För att ångra tillagda\n"
-" filer, se :hg:`forget`."
+" Detta tar bara bort filerna från den nuvarande grenen, inte från hela\n"
+" projektets historik. -A/--after kan användas för att bara ta bort filer\n"
+" som redan raderats, -f/--force kan användas för att tvinga radering,\n"
+" och -Af kan ta bort filer från nästa revision utan att radera dem från\n"
+" arbetskopian."
msgid ""
-" -A/--after can be used to remove only files that have already\n"
-" been deleted, -f/--force can be used to force deletion, and -Af\n"
-" can be used to remove files from the next revision without\n"
-" deleting them from the working directory."
+" The following table details the behavior of remove for different\n"
+" file states (columns) and option combinations (rows). The file\n"
+" states are Added [A], Clean [C], Modified [M] and Missing [!] (as\n"
+" reported by :hg:`status`). The actions are Warn, Remove (from\n"
+" branch) and Delete (from disk)::"
msgstr ""
-" -A/--after kan användas för att bara ta bort filer som redan\n"
-" raderats, -f/--force kan användas för att tvinga radering, och -Af\n"
-" kan ta bort filer från nästa revision utan att radera dem från\n"
-" arbetskopian."
+" Följande tabell visar hur remove uppför sig för olika filstatus\n"
+" (kolumner) och flaggor (rader). Filstatus är Adderade [A], Ren [C],\n"
+" Modifierad [M] och Saknad [!] (som rapporteras av :hg:`status`).\n"
+" Aktionerna är Varna, Radera (från gren) och Ta bort (från disk)::"
msgid ""
-" The following table details the behavior of remove for different\n"
-" file states (columns) and option combinations (rows). The file\n"
-" states are Added [A], Clean [C], Modified [M] and Missing [!]\n"
-" (as reported by :hg:`status`). The actions are Warn, Remove\n"
-" (from branch) and Delete (from disk):"
+" A C M !\n"
+" none W RD W R\n"
+" -f R RD RD R\n"
+" -A W W W R\n"
+" -Af R R R R"
msgstr ""
-" Följande tabell visar hur remove uppför sig för olika filstatus\n"
-" (kolumner) och flaggor (rader). Filstatus är Adderade [A], Ren [C],\n"
-" Modifierad [M] och Saknad [!] (som rapporteras av :hg:`status`).\n"
-" Aktionerna är Varna, Radera (från gren) och Ta bort (från disk):"
+" A C M !\n"
+" ingen V RT V R\n"
+" -f R RT RT R\n"
+" -A V V V R\n"
+" -Af R R R R"
msgid ""
-" ======= == == == ==\n"
-" A C M !\n"
-" ======= == == == ==\n"
-" none W RD W R\n"
-" -f R RD RD R\n"
-" -A W W W R\n"
-" -Af R R R R\n"
-" ======= == == == =="
+" Note that remove never deletes files in Added [A] state from the\n"
+" working directory, not even if option --force is specified."
msgstr ""
-" ======= == == == ==\n"
-" A C M !\n"
-" ======= == == == ==\n"
-" ingen V RT V R\n"
-" -f R RT RT R\n"
-" -A V V V R\n"
-" -Af R R R R\n"
-" ======= == == == =="
+" Notera att remove aldrig tar bort filer som är Adderade [A] från\n"
+" arbetskatalogen, inte ens om --force är angivet."
msgid ""
-" Note that remove never deletes files in Added [A] state from the\n"
-" working directory, not even if option --force is specified."
+" This command schedules the files to be removed at the next commit.\n"
+" To undo a remove before that, see :hg:`revert`."
msgstr ""
-" Notera att remove aldrig tar bort filer som är Adderade [A] från\n"
-" arbetskatalogen, inte ens om --force är angivet."
+" Kommandot markerar att filerna ska tas bort vid nästa arkivering. För\n"
+" att ångra en remove innan dess, se :hg:`revert` .\n"
+" "
msgid ""
" Returns 0 on success, 1 if any warnings encountered.\n"
@@ -11437,8 +9404,9 @@ msgid "not removing %s: file is modified (use -f to force removal)\n"
msgstr "raderar inte %s: filen är ändrad (använd -f för att tvinga)\n"
#, python-format
-msgid "not removing %s: file has been marked for add (use forget to undo)\n"
-msgstr "raderar inte %s: filen har lagts till (använd forget för att ångra)\n"
+msgid ""
+"not removing %s: file has been marked for add (use -f to force removal)\n"
+msgstr "raderar inte %s: filen har lags till (använd -f för att tvinga)\n"
msgid "record a rename that has already occurred"
msgstr "spara en namnändring som redan har inträffat"
@@ -11490,8 +9458,7 @@ msgid ""
" setting, or a command-line merge tool like ``diff3``. The resolve\n"
" command is used to manage the files involved in a merge, after\n"
" :hg:`merge` has been run, and before :hg:`commit` is run (i.e. the\n"
-" working directory must have two parents). See :hg:`help\n"
-" merge-tools` for information on configuring merge tools."
+" working directory must have two parents)."
msgstr ""
msgid " The resolve command can be used in the following ways:"
@@ -11502,10 +9469,9 @@ msgid ""
"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 select all unresolved files. ``--tool`` can be used to specify\n"
+" 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. Previous file\n"
-" contents are saved with a ``.orig`` suffix."
+" environment variable and your configuration files."
msgstr ""
msgid ""
@@ -11560,24 +9526,24 @@ msgstr "senaste revision matchande datum"
msgid "revert to the specified revision"
msgstr "återgå till den angivna revisionen"
+msgid "do not save backup copies of files"
+msgstr "spara inte backup-kopior av filer"
+
msgid "[OPTION]... [-r REV] [NAME]..."
msgstr "[FLAGGA]... [-r REV] [NAMN]..."
msgid "restore files to their checkout state"
msgstr "återställ filer till deras uthämtningstillstånd"
-msgid " .. note::"
-msgstr " .. note::"
-
msgid ""
+" .. note::\n"
" To check out earlier revisions, you should use :hg:`update REV`.\n"
-" To cancel an uncommitted merge (and lose your changes), use\n"
-" :hg:`update --clean .`."
+" To cancel a merge (and lose your changes), use :hg:`update --clean .`."
msgstr ""
" .. note::\n"
" För att hämta ut tidigare revisioner, använd :hg:`update REV`.\n"
-" För att avbryta en oarkiverad sammanfogning (och bli av med alla\n"
-" ändringar), använd :hg:`update --clean .`."
+" För att avbryta en sammanfogning (och bli av med alla ändringar),\n"
+" använd :hg:`update --clean .`."
msgid ""
" With no revision specified, revert the specified files or directories\n"
@@ -11653,8 +9619,29 @@ msgstr "oarkiverade ändringar, använd --all för att kasta alla ändringar"
msgid "use --all to revert all files"
msgstr "använd --all för att återställa filer"
-msgid "ignore safety measures"
-msgstr "ignorera säkerhetsåtgärder"
+#, python-format
+msgid "forgetting %s\n"
+msgstr "glömmer %s\n"
+
+#, python-format
+msgid "reverting %s\n"
+msgstr "återställer %s\n"
+
+#, python-format
+msgid "undeleting %s\n"
+msgstr "Ã¥ngrar radering av %s\n"
+
+#, python-format
+msgid "saving current version of %s as %s\n"
+msgstr "sparar nuvarande revision av %s som %s\n"
+
+#, python-format
+msgid "file not managed: %s\n"
+msgstr "filen hanteras inte: %s\n"
+
+#, python-format
+msgid "no changes needed to %s\n"
+msgstr "inga ändringar behövs för %s\n"
msgid "roll back the last transaction (dangerous)"
msgstr "återgång från den senaste transaktionen (farligt)"
@@ -11675,39 +9662,26 @@ msgstr ""
msgid ""
" Transactions are used to encapsulate the effects of all commands\n"
" that create new changesets or propagate existing changesets into a\n"
-" repository."
+" repository. For example, the following commands are transactional,\n"
+" and their effects can be rolled back:"
msgstr ""
" Transaktioner används för att kapsla in alla kommandon som skapar nya\n"
-" ändringar eller sprider existerade ändringar till ett arkiv."
+" ändringar eller sprider existerade ändringar till ett arkiv.\n"
+" Exempelvis skapar de följande kommandona transaktioner, och deras\n"
+" ändringar kan återkallas:"
msgid ""
-" For example, the following commands are transactional, and their\n"
-" effects can be rolled back:"
+" - commit\n"
+" - import\n"
+" - pull\n"
+" - push (with this repository as the destination)\n"
+" - unbundle"
msgstr ""
-" Exempelvis skapar de följande kommandona transaktioner, och deras\n"
-" ändringar kan återkallas:"
-
-msgid ""
-" - commit\n"
-" - import\n"
-" - pull\n"
-" - push (with this repository as the destination)\n"
-" - unbundle"
-msgstr ""
-" - commit\n"
-" - import\n"
-" - pull\n"
-" - push (med det här arkivet som destination)\n"
-" - unbundle"
-
-msgid ""
-" To avoid permanent data loss, rollback will refuse to rollback a\n"
-" commit transaction if it isn't checked out. Use --force to\n"
-" override this protection."
-msgstr ""
-" För att undvika permanent dataförlust så vägrar rollback att köras\n"
-" på en arkivering om den inte är uthämtad. Använd --force för att gå\n"
-" förbi det här skyddet."
+" - commit\n"
+" - import\n"
+" - pull\n"
+" - push (med det här arkivet som destination)\n"
+" - unbundle"
msgid ""
" This command is not intended for use on public repositories. Once\n"
@@ -11829,6 +9803,9 @@ msgstr ""
msgid "cannot use --stdio with --cmdserver"
msgstr "kan inte använda --stdio med --cmdserver"
+msgid "There is no Mercurial repository here (.hg not found)"
+msgstr "Det finns inget Mercurial-arkiv här (.hg hittades inte)"
+
#, python-format
msgid "listening at http://%s%s/%s (bound to %s:%d)\n"
msgstr "lyssnar på http://%s%s/%s (bunden till %s:%d)\n"
@@ -11972,28 +9949,6 @@ msgstr ""
" I = ignorerad\n"
" = källa för den tidigare filen listad som A (adderad)"
-msgid ""
-" - show changes in the working directory relative to a\n"
-" changeset::"
-msgstr ""
-" - visa modifikationer i arbetskatalogen relativt till en ändring::"
-
-msgid " hg status --rev 9353"
-msgstr " hg status --rev 9353"
-
-msgid " - show all changes including copies in an existing changeset::"
-msgstr " - visa alla ändringar inklusive kopior i en ändring::"
-
-msgid " hg status --copies --change 9353"
-msgstr " hg status --copies --change 9353"
-
-msgid " - get a NUL separated list of added files, suitable for xargs::"
-msgstr ""
-" - visa en NUL-separerad lista med tillagda filer, lämpligt för xargs::"
-
-msgid " hg status -an0"
-msgstr " hg status -an0"
-
msgid "check for push and pull"
msgstr "sök efter inkommande och utgående ändringar"
@@ -12028,9 +9983,6 @@ msgstr " (ingen revision uthämtad)"
msgid "branch: %s\n"
msgstr "gren: %s\n"
-msgid "bookmarks:"
-msgstr "bokmärken:"
-
#, python-format
msgid "%d modified"
msgstr "%d modifierad"
@@ -12227,9 +10179,6 @@ msgstr "oarkiverad sammanfogning"
msgid "not at a branch head (use -f to force)"
msgstr "inte vid ett grenhuvud (använd -f för att tvinga)"
-msgid "null revision specified"
-msgstr "null-revision angiven"
-
msgid "list repository tags"
msgstr "lista arkivmärken"
@@ -12304,71 +10253,63 @@ msgstr "uppdatera arbetskatalogen (eller växla mellan revisioner)"
msgid ""
" Update the repository's working directory to the specified\n"
" changeset. If no changeset is specified, update to the tip of the\n"
-" current named branch and move the current bookmark (see :hg:`help\n"
-" bookmarks`)."
+" current named branch."
msgstr ""
" Uppdatera arkivets arbetskatalog till den angivna ändringen. Om ingen\n"
-" ändring anges, så uppdateras till toppen på den nuvarande namngivna\n"
-" grenen och nuvarande bokmärket flyttas (se :hg:`help bookmarks`)."
+" ändring anes, så uppdateras till toppen på den nuvarande namngivna\n"
+" grenen."
msgid ""
-" Update sets the working directory's parent revison to the specified\n"
-" changeset (see :hg:`help parents`)."
-msgstr ""
-
-msgid ""
-" If the changeset is not a descendant or ancestor of the working\n"
-" directory's parent, the update is aborted. With the -c/--check\n"
-" option, the working directory is checked for uncommitted changes; if\n"
-" none are found, the working directory is updated to the specified\n"
+" 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"
-" uncommitted changes:"
+" Update sets the working directory's parent revison to the specified\n"
+" changeset (see :hg:`help parents`)."
msgstr ""
-" Följande regler gäller när arbetskatalogen innehåller oarkiverade\n"
-" ändringar:"
msgid ""
-" 1. If neither -c/--check nor -C/--clean is specified, and if\n"
-" the requested changeset is an ancestor or descendant of\n"
-" the working directory's parent, the uncommitted changes\n"
-" are merged into the requested changeset and the merged\n"
-" result is left uncommitted. If the requested changeset is\n"
-" not an ancestor or descendant (that is, it is on another\n"
-" branch), the update is aborted and the uncommitted changes\n"
-" are preserved."
+" The following rules apply when the working directory contains\n"
+" uncommitted changes:"
msgstr ""
-" 1. Om varken -c/--check eller -C/--clean specificeras, och om den\n"
-" begärda ändringen är en anfader eller ättling till\n"
-" arbetskatalogens förälder, kommer oarkiverade ändringar att\n"
-" sammanfogas med den begärda ändringen och det sammanfogade\n"
-" resultatet lämnas oarkiverat. Om den begärda ändringen inte är en\n"
-" anfader eller ättling (dvs är i en annan gren), avbryts\n"
-" uppdateringen och de oarkiverade ändringarna bevaras."
+" Följande regler gäller när arbetskatalogen innehåller oarkiverade\n"
+" ändringar:"
msgid ""
-" 2. With the -c/--check option, the update is aborted and the\n"
-" uncommitted changes are preserved."
+" 1. If neither -c/--check nor -C/--clean is specified, and if\n"
+" the requested changeset is an ancestor or descendant of\n"
+" the working directory's parent, the uncommitted changes\n"
+" are merged into the requested changeset and the merged\n"
+" result is left uncommitted. If the requested changeset is\n"
+" not an ancestor or descendant (that is, it is on another\n"
+" branch), the update is aborted and the uncommitted changes\n"
+" are preserved."
msgstr ""
-" 2. Med flaggan -c/--check avbryts uppdateringen och de oarkiverade\n"
-" ändringarna lämnas."
+" 1. Om varken -c/--check eller -C/--clean specificeras, och om den\n"
+" begärda ändringen är en anfader eller ättling till arbetskatalogens\n"
+" förälder, kommer oarkiverade ändringar att sammanfogas med den\n"
+" begärda ändringen och det sammanfogade resultatet lämnas oarkiverat.\n"
+" Om den begärda ändringen inte är en anfader eller ättling (dvs är i\n"
+" en annan gren), avbryts uppdateringen och de oarkiverade ändringarna\n"
+" bevaras."
msgid ""
-" 3. With the -C/--clean option, uncommitted changes are discarded and\n"
-" the working directory is updated to the requested changeset."
+" 2. With the -c/--check option, the update is aborted and the\n"
+" uncommitted changes are preserved."
msgstr ""
-" 3. Med flaggan -C/--clean kommer oarkiverade ändringar att kasseras\n"
-" och arbetskatalogen uppdateras till den begärda ändringen."
+" 2. Med flaggan -c/--check avbryts uppdateringen och de oarkiverade\n"
+" ändringarna lämnas."
msgid ""
-" To cancel an uncommitted merge (and lose your changes), use\n"
-" :hg:`update --clean .`."
+" 3. With the -C/--clean option, uncommitted changes are discarded and\n"
+" the working directory is updated to the requested changeset."
msgstr ""
-" För att avbryta en oarkiverad sammanfogning (och förlora dina\n"
-" ändringar), använd :hg:`update --clean .`."
+" 3. Med flaggan -C/--clean kommer oarkiverade ändringar att kasseras och\n"
+" arbetskatalogen uppdateras till den begärda ändringen."
msgid ""
" Use null as the changeset to remove the working directory (like\n"
@@ -12387,6 +10328,9 @@ msgstr ""
msgid "cannot specify both -c/--check and -C/--clean"
msgstr "kan inte både ange -c/--check och -C/--clean"
+msgid "uncommitted local changes"
+msgstr "oarkiverade lokala ändringar"
+
msgid "verify the integrity of the repository"
msgstr "verifiera arkivets integritet"
@@ -12414,11 +10358,11 @@ msgid "(see http://mercurial.selenic.com for more information)"
msgstr "(se http://mercurial.selenic.com för mer information)"
msgid ""
-"Copyright (C) 2005-2012 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-2012 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"
@@ -12432,29 +10376,21 @@ msgstr "okänt kommando %s"
#, python-format
msgid "cannot include %s (%s)"
-msgstr "kan inte inkludera %s (%s)"
-
-#, python-format
-msgid "working directory has unknown parent '%s'!"
-msgstr ""
-
-#, python-format
-msgid "unknown revision '%s'"
msgstr ""
msgid "not found in manifest"
-msgstr "hittades inte i manifestet"
+msgstr ""
#, python-format
msgid "no such file in rev %s"
-msgstr "ingen sådan fil i rev %s"
+msgstr ""
msgid "branch name not in UTF-8!"
-msgstr "grennamn inte i UTF-8!"
+msgstr ""
#, python-format
msgid "%s does not exist!\n"
-msgstr "%s existerar inte!\n"
+msgstr ""
#, python-format
msgid ""
@@ -12466,19 +10402,19 @@ msgstr ""
#, python-format
msgid "%s not added: only files and symlinks supported currently\n"
-msgstr "%s inte tillagd: bara filer och symlänkar stödjs\n"
+msgstr ""
#, python-format
msgid "%s already tracked!\n"
-msgstr "%s spåras redan!\n"
+msgstr ""
#, python-format
msgid "%s not tracked!\n"
-msgstr "%s spåras inte!\n"
+msgstr ""
#, python-format
msgid "%s not removed!\n"
-msgstr "%s inte borttagen!\n"
+msgstr ""
#, python-format
msgid "copy failed: %s is not a file or a symbolic link\n"
@@ -12549,7 +10485,7 @@ msgstr "använd 'hg push --new-branch' för att skapa nya fjärrgrenar"
#, python-format
msgid "push creates new remote head %s on branch '%s'!"
-msgstr "push skapar nytt fjärrhuvud %s på grenen '%s'!"
+msgstr "push skapar nyt fjärrhuvud %s på grenen '%s'!"
#, python-format
msgid "push creates new remote head %s!"
@@ -12561,14 +10497,6 @@ msgstr "du kan dra och sammanfoga eller använda push -f för att tvinga"
msgid "did you forget to merge? use push -f to force"
msgstr "glömde du att sammanfoga? använd push -f för att tvinga"
-#, python-format
-msgid "new remote heads on branch '%s'\n"
-msgstr "nya fjärrhuvuden på grenen '%s'!\n"
-
-#, python-format
-msgid "new remote head %s\n"
-msgstr "nytt fjärrhuvud %s\n"
-
msgid "note: unsynced remote changes!\n"
msgstr "notera: osynkade fjärrändringar!\n"
@@ -12607,7 +10535,7 @@ msgstr ""
#, python-format
msgid "abort: %s: %s\n"
-msgstr "avbryter: %s: %s\n"
+msgstr ""
#, python-format
msgid "abort: could not lock %s: %s\n"
@@ -12621,26 +10549,23 @@ msgstr ""
msgid "hg: %s\n"
msgstr ""
-msgid "abort: remote error:\n"
-msgstr "avbryter: fjärrfel:\n"
-
#, python-format
msgid "abort: %s!\n"
-msgstr "avbryter: %s!\n"
+msgstr ""
#, python-format
msgid "abort: %s"
-msgstr "avbryter: %s"
+msgstr ""
msgid " empty string\n"
-msgstr " tom sträng\n"
+msgstr ""
msgid "killed!\n"
-msgstr "dödad!\n"
+msgstr ""
#, python-format
msgid "hg: unknown command '%s'\n"
-msgstr "hg: okänt kommando '%s'\n"
+msgstr ""
msgid "(did you forget to compile extensions?)\n"
msgstr ""
@@ -12656,7 +10581,7 @@ msgid "broken pipe\n"
msgstr ""
msgid "interrupted!\n"
-msgstr "avbruten!\n"
+msgstr ""
msgid ""
"\n"
@@ -12666,23 +10591,11 @@ msgstr ""
msgid "abort: out of memory\n"
msgstr ""
-msgid "the extension author."
-msgstr ""
-
-#, python-format
-msgid ""
-"** Unknown exception encountered with possibly-broken third-party extension "
-"%s\n"
-"** which supports versions %s of Mercurial.\n"
-"** Please disable %s and try your action again.\n"
-"** If that fixes the bug please report it to %s\n"
-msgstr ""
-
msgid "** unknown exception encountered, please report by visiting\n"
msgstr ""
-msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
-msgstr "** http://mercurial.selenic.com/wiki/BugTracker\n"
+msgid "** http://mercurial.selenic.com/wiki/BugTracker\n"
+msgstr ""
#, python-format
msgid "** Python %s\n"
@@ -12696,9 +10609,6 @@ msgstr ""
msgid "** Extensions loaded: %s\n"
msgstr ""
-msgid "too few arguments for command alias"
-msgstr ""
-
#, python-format
msgid "no definition for alias '%s'\n"
msgstr ""
@@ -12736,12 +10646,12 @@ msgid "option --cwd may not be abbreviated!"
msgstr ""
msgid ""
-"option -R has to be separated from other options (e.g. not -qR) and --"
+"Option -R has to be separated from other options (e.g. not -qR) and --"
"repository may only be abbreviated as --repo!"
msgstr ""
#, python-format
-msgid "time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
+msgid "Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n"
msgstr ""
#, python-format
@@ -12764,17 +10674,6 @@ msgid ""
"misc/lsprof/"
msgstr ""
-msgid "statprof not available - install using \"easy_install statprof\""
-msgstr ""
-
-#, python-format
-msgid "invalid sampling frequency '%s' - ignoring\n"
-msgstr ""
-
-#, python-format
-msgid "unrecognized profiler '%s' - ignored\n"
-msgstr ""
-
#, python-format
msgid "*** failed to import extension %s from %s: %s\n"
msgstr ""
@@ -12803,62 +10702,28 @@ msgstr ""
msgid "tool %s requires a GUI\n"
msgstr ""
-msgid ""
-"``internal:prompt``\n"
-"Asks the user which of the local or the other version to keep as\n"
-" the merged version."
-msgstr ""
-
#, python-format
msgid ""
" no tool found to merge %s\n"
"keep (l)ocal or take (o)ther?"
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."
+msgid "&Local"
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."
+msgid "&Other"
msgstr ""
#, python-format
-msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
-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."
+msgid "merging %s and %s to %s\n"
msgstr ""
#, python-format
-msgid "merging %s incomplete! (edit conflicts, then use 'hg resolve --mark')\n"
-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``."
+msgid "merging %s\n"
msgstr ""
#, python-format
-msgid "merging %s failed!\n"
+msgid "%s.premerge not valid ('%s' is neither boolean nor %s)"
msgstr ""
#, python-format
@@ -12871,6 +10736,10 @@ msgid ""
"was merge successful (yn)?"
msgstr ""
+#, python-format
+msgid "merging %s failed!\n"
+msgstr ""
+
msgid "unterminated string"
msgstr ""
@@ -13057,18 +10926,6 @@ msgstr ""
msgid "copied takes no arguments"
msgstr "copied tar inga argument"
-msgid ""
-"``subrepo([pattern])``\n"
-" Subrepositories whose paths match the given pattern."
-msgstr ""
-
-#. i18n: "subrepo" is a keyword
-msgid "subrepo takes at most one argument"
-msgstr "subrepo tar maximalt ett argument"
-
-msgid "subrepo requires a pattern or no arguments"
-msgstr "subrepo kräver ett mönster eller inga argument"
-
msgid "invalid token"
msgstr ""
@@ -13083,49 +10940,9 @@ msgstr ""
msgid "unknown bisect kind %s"
msgstr ""
-msgid "invalid bisect state"
-msgstr "ogiltigt bisect-tillständ"
-
-#. i18n: bisect changeset status
-msgid "good"
-msgstr "bra"
-
-#. i18n: bisect changeset status
-msgid "bad"
-msgstr "dålig"
-
-#. i18n: bisect changeset status
-msgid "skipped"
-msgstr "hoppade över"
-
-#. i18n: bisect changeset status
-msgid "untested"
-msgstr "otestad"
-
-#. i18n: bisect changeset status
-msgid "good (implicit)"
-msgstr "bra (implicit)"
-
-#. i18n: bisect changeset status
-msgid "bad (implicit)"
-msgstr "dålig (implicit)"
-
msgid "disabled extensions:"
msgstr "deaktiverade utökningar:"
-msgid "VALUE"
-msgstr "VÄRDE"
-
-msgid "DEPRECATED"
-msgstr "FÖRLEGAD"
-
-msgid ""
-"\n"
-"[+] marked option can be specified multiple times\n"
-msgstr ""
-"\n"
-"flaggor markerade med [+] kan anges flera gånger\n"
-
msgid "Configuration Files"
msgstr "Konfigurationsfiler"
@@ -13162,8 +10979,8 @@ msgstr "Användning Av Mallar"
msgid "URL Paths"
msgstr "URL-sökvägar"
-msgid "Using Additional Features"
-msgstr "Använda Ytterligare Funktioner"
+msgid "Using additional features"
+msgstr "Använda ytterligare funktioner"
msgid "Subrepositories"
msgstr "Underarkiv"
@@ -13174,11 +10991,8 @@ msgstr "Konfiguration av hgweb"
msgid "Glossary"
msgstr "Ordlista"
-msgid "Syntax for Mercurial Ignore Files"
-msgstr "Syntax för Mercurials Ignoreringsfiler"
-
-msgid "Working with Phases"
-msgstr "Arbeta med Faser"
+msgid "syntax for Mercurial ignore files"
+msgstr "syntax för Mercurials ignoreringsfiler"
msgid ""
"The Mercurial system uses a set of configuration files to control\n"
@@ -13214,10 +11028,10 @@ msgstr ""
msgid ""
"Files\n"
-"====="
+"-----"
msgstr ""
"Filer\n"
-"====="
+"-----"
msgid ""
"Mercurial reads configuration data from several files, if they exist.\n"
@@ -13236,7 +11050,7 @@ msgid ""
"ones."
msgstr ""
-msgid "| (All) ``<repo>/.hg/hgrc``"
+msgid "| (Unix, Windows) ``<repo>/.hg/hgrc``"
msgstr ""
msgid ""
@@ -13244,13 +11058,12 @@ msgid ""
" particular repository. This file is not version-controlled, and\n"
" will not get transferred during a \"clone\" operation. Options in\n"
" this file override options in all other configuration files. On\n"
-" Plan 9 and Unix, most of this file will be ignored if it doesn't\n"
-" belong to a trusted user or to a trusted group. See the documentation\n"
-" for the ``[trusted]`` section below for more details."
+" Unix, most of this file will be ignored if it doesn't belong to a\n"
+" trusted user or to a trusted group. See the documentation for the\n"
+" ``[trusted]`` section below for more details."
msgstr ""
msgid ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
"| (Unix) ``$HOME/.hgrc``\n"
"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
@@ -13268,8 +11081,6 @@ msgid ""
msgstr ""
msgid ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
"| (Unix) ``/etc/mercurial/hgrc``\n"
"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
msgstr ""
@@ -13282,8 +11093,6 @@ msgid ""
msgstr ""
msgid ""
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc.d/*.rc``\n"
"| (Unix) ``<install-root>/etc/mercurial/hgrc``\n"
"| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
msgstr ""
@@ -13310,15 +11119,15 @@ msgid ""
" keys contain PATH-like strings, every part of which must reference\n"
" a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will\n"
" be read. Mercurial checks each of these locations in the specified\n"
-" order until one or more configuration files are detected."
+" order until one or more configuration files are detected. If the\n"
+" pywin32 extensions are not installed, Mercurial will only look for\n"
+" site-wide configuration in ``C:\\Mercurial\\Mercurial.ini``."
msgstr ""
msgid ""
"Syntax\n"
-"======"
+"------"
msgstr ""
-"Syntax\n"
-"======"
msgid ""
"A configuration file consists of sections, led by a ``[section]`` header\n"
@@ -13441,10 +11250,8 @@ msgstr ""
msgid ""
"Sections\n"
-"========"
+"--------"
msgstr ""
-"Sektioner\n"
-"========="
msgid ""
"This section describes the different sections that may appear in a\n"
@@ -13454,10 +11261,8 @@ msgstr ""
msgid ""
"``alias``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``alias``\n"
-"---------"
msgid ""
"Defines command aliases.\n"
@@ -13501,7 +11306,7 @@ msgid ""
"run arbitrary commands. As an example, ::"
msgstr ""
-msgid " echo = !echo $@"
+msgid " echo = !echo"
msgstr ""
msgid ""
@@ -13518,72 +11323,18 @@ msgid ""
msgstr ""
msgid ""
-"Positional arguments like ``$1``, ``$2``, etc. in the alias definition\n"
-"expand to the command arguments. Unmatched arguments are\n"
-"removed. ``$0`` expands to the alias name and ``$@`` expands to all\n"
-"arguments separated by a space. These expansions happen before the\n"
-"command is passed to the shell."
-msgstr ""
-
-msgid ""
-"Shell aliases are executed in an environment where ``$HG`` expands to\n"
+"Shell aliases are executed in an environment where ``$HG`` expand to\n"
"the path of the Mercurial that was used to execute the alias. This is\n"
"useful when you want to call further Mercurial commands in a shell\n"
"alias, as was done above for the purge alias. In addition,\n"
-"``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg\n"
+"``$HG_ARGS`` expand to the arguments given to Mercurial. In the ``hg\n"
"echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``."
msgstr ""
msgid ""
-".. note:: Some global configuration options such as ``-R`` are\n"
-" processed before shell aliases and will thus not be passed to\n"
-" aliases."
-msgstr ""
-
-msgid ""
-"\n"
-"``annotate``\n"
-"------------"
-msgstr ""
-"\n"
-"``annotate``\n"
-"------------"
-
-msgid ""
-"Settings used when displaying file annotations. All values are\n"
-"Booleans and default to False. See ``diff`` section for related\n"
-"options for the diff command."
-msgstr ""
-
-msgid ""
-"``ignorews``\n"
-" Ignore white space when comparing lines."
-msgstr ""
-"``ignorews``\n"
-" Ignorera blanktecken när rader jämförs."
-
-msgid ""
-"``ignorewsamount``\n"
-" Ignore changes in the amount of white space."
-msgstr ""
-"``ignorewsamount``\n"
-" Ignorera ändringar av antalet blanktecken."
-
-msgid ""
-"``ignoreblanklines``\n"
-" Ignore changes whose lines are all blank."
-msgstr ""
-"``ignoreblanklines``\n"
-" Ignorera ändringar vars rader är tomma."
-
-msgid ""
-"\n"
"``auth``\n"
-"--------"
+"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``auth``\n"
-"--------"
msgid ""
"Authentication credentials for HTTP authentication. This section\n"
@@ -13635,9 +11386,7 @@ msgid ""
" Optional. Username to authenticate with. If not given, and the\n"
" remote site requires basic or digest authentication, the user will\n"
" be prompted for it. Environment variables are expanded in the\n"
-" username letting you do ``foo.username = $USER``. If the URI\n"
-" includes a username, only ``[auth]`` entries with a matching\n"
-" username or without a username will be considered."
+" username letting you do ``foo.username = $USER``."
msgstr ""
msgid ""
@@ -13676,11 +11425,8 @@ msgstr ""
msgid ""
"\n"
"``decode/encode``\n"
-"-----------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``decode/encode``\n"
-"-----------------"
msgid ""
"Filters for transforming files on checkout/checkin. This would\n"
@@ -13747,11 +11493,8 @@ msgstr ""
msgid ""
"\n"
"``defaults``\n"
-"------------"
+"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``defaults``\n"
-"------------"
msgid "(defaults are deprecated. Don't use them. Use aliases instead)"
msgstr ""
@@ -13781,16 +11524,12 @@ msgstr ""
msgid ""
"\n"
"``diff``\n"
-"--------"
+"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``diff``\n"
-"--------"
msgid ""
-"Settings used when displaying diffs. Everything except for ``unified``\n"
-"is a Boolean and defaults to False. See ``annotate`` section for\n"
-"related options for the annotate command."
+"Settings used when displaying diffs. Everything except for ``unified`` is a\n"
+"Boolean and defaults to False."
msgstr ""
msgid ""
@@ -13813,6 +11552,27 @@ msgstr ""
" Visa vilken funktion varje ändring är i."
msgid ""
+"``ignorews``\n"
+" Ignore white space when comparing lines."
+msgstr ""
+"``ignorews``\n"
+" Ignorera blanktecken när rader jämförs."
+
+msgid ""
+"``ignorewsamount``\n"
+" Ignore changes in the amount of white space."
+msgstr ""
+"``ignorewsamount``\n"
+" Ignorera ändringar av antalet blanktecken."
+
+msgid ""
+"``ignoreblanklines``\n"
+" Ignore changes whose lines are all blank."
+msgstr ""
+"``ignoreblanklines``\n"
+" Ignorera ändringar vars rader är tomma."
+
+msgid ""
"``unified``\n"
" Number of lines of context to show."
msgstr ""
@@ -13821,10 +11581,8 @@ msgstr ""
msgid ""
"``email``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``email``\n"
-"---------"
msgid "Settings for extensions that send email messages."
msgstr ""
@@ -13899,11 +11657,8 @@ msgstr ""
msgid ""
"\n"
"``extensions``\n"
-"--------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``extensions``\n"
-"--------------"
msgid ""
"Mercurial has an extension mechanism for adding new features. To\n"
@@ -13944,12 +11699,36 @@ msgstr ""
msgid ""
"\n"
-"``format``\n"
-"----------"
+"``hostfingerprints``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
+
+msgid ""
+"Fingerprints of the certificates of known HTTPS servers.\n"
+"A HTTPS connection to a server with a fingerprint configured here will\n"
+"only succeed if the servers certificate matches the fingerprint.\n"
+"This is very similar to how ssh known hosts works.\n"
+"The fingerprint is the SHA-1 hash value of the DER encoded certificate.\n"
+"The CA chain and web.cacerts is not used for servers with a fingerprint."
+msgstr ""
+
+msgid "For example::"
+msgstr "Exempelvis::"
+
+msgid ""
+" [hostfingerprints]\n"
+" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:"
+"d6:4b:ee:cc"
+msgstr ""
+
+msgid "This feature is only supported when using Python 2.6 or later."
+msgstr ""
+
+msgid ""
"\n"
"``format``\n"
-"----------"
+"\"\"\"\"\"\"\"\"\"\""
+msgstr ""
msgid ""
"``usestore``\n"
@@ -13982,60 +11761,174 @@ msgid ""
msgstr ""
msgid ""
-"``graph``\n"
-"---------"
+"``merge-patterns``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``graph``\n"
-"---------"
msgid ""
-"Web graph view configuration. This section let you change graph\n"
-"elements display properties by branches, for instance to make the\n"
-"``default`` branch stand out."
+"This section specifies merge tools to associate with particular file\n"
+"patterns. Tools matched here will take precedence over the default\n"
+"merge tool. Patterns are globs by default, rooted at the repository\n"
+"root."
msgstr ""
-msgid " <branch>.<argument> = <value>"
+msgid ""
+" [merge-patterns]\n"
+" **.c = kdiff3\n"
+" **.jpg = myimgmerge"
msgstr ""
msgid ""
-"where ``<branch>`` is the name of the branch being\n"
-"customized. Example::"
+"``merge-tools``\n"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
msgid ""
-" [graph]\n"
-" # 2px width\n"
-" default.width = 2\n"
-" # red color\n"
-" default.color = FF0000"
+"This section configures external merge tools to use for file-level\n"
+"merges."
+msgstr ""
+
+msgid "Example ``~/.hgrc``::"
msgstr ""
msgid ""
-"``width``\n"
-" Set branch edges width in pixels."
+" [merge-tools]\n"
+" # Override stock tool location\n"
+" kdiff3.executable = ~/bin/kdiff3\n"
+" # Specify command line\n"
+" kdiff3.args = $base $local $other -o $output\n"
+" # Give higher priority\n"
+" kdiff3.priority = 1"
msgstr ""
msgid ""
-"``color``\n"
-" Set branch edges color in hexadecimal RGB notation."
+" # Define new tool\n"
+" myHtmlTool.args = -m $local $other $base $output\n"
+" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
+" myHtmlTool.priority = 1"
msgstr ""
msgid ""
-"``hooks``\n"
-"---------"
+"``priority``\n"
+" The priority in which to evaluate this tool.\n"
+" Default: 0."
+msgstr ""
+
+msgid ""
+"``executable``\n"
+" Either just the name of the executable or its pathname. On Windows,\n"
+" the path can use environment variables with ${ProgramFiles} syntax.\n"
+" Default: the tool name."
+msgstr ""
+
+msgid ""
+"``args``\n"
+" The arguments to pass to the tool executable. You can refer to the\n"
+" files being merged as well as the output file through these\n"
+" variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
+" Default: ``$local $base $other``"
+msgstr ""
+
+msgid ""
+"``premerge``\n"
+" Attempt to run internal non-interactive 3-way merge tool before\n"
+" launching external tool. Options are ``true``, ``false``, or ``keep``\n"
+" to leave markers in the file if the premerge fails.\n"
+" Default: True"
+msgstr ""
+
+msgid ""
+"``binary``\n"
+" This tool can merge binary files. Defaults to False, unless tool\n"
+" was selected by file pattern match."
+msgstr ""
+
+msgid ""
+"``symlink``\n"
+" This tool can merge symlinks. Defaults to False, even if tool was\n"
+" selected by file pattern match."
+msgstr ""
+
+msgid ""
+"``check``\n"
+" A list of merge success-checking options:"
msgstr ""
+
+msgid ""
+" ``changed``\n"
+" Ask whether merge was successful when the merged file shows no changes.\n"
+" ``conflicts``\n"
+" Check whether there are conflicts even though the tool reported "
+"success.\n"
+" ``prompt``\n"
+" Always prompt for merge success, regardless of success reported by tool."
+msgstr ""
+
+msgid ""
+"``checkchanged``\n"
+" True is equivalent to ``check = changed``.\n"
+" Default: False"
+msgstr ""
+
+msgid ""
+"``checkconflicts``\n"
+" True is equivalent to ``check = conflicts``.\n"
+" Default: False"
+msgstr ""
+
+msgid ""
+"``fixeol``\n"
+" Attempt to fix up EOL changes caused by the merge tool.\n"
+" Default: False"
+msgstr ""
+
+msgid ""
+"``gui``\n"
+" This tool requires a graphical interface to run. Default: False"
+msgstr ""
+
+msgid ""
+"``regkey``\n"
+" Windows registry key which describes install location of this\n"
+" tool. Mercurial will search for this key first under\n"
+" ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.\n"
+" Default: None"
+msgstr ""
+
+msgid ""
+"``regkeyalt``\n"
+" An alternate Windows registry key to try if the first key is not\n"
+" found. The alternate key uses the same ``regname`` and ``regappend``\n"
+" semantics of the primary key. The most common use for this key\n"
+" is to search for 32bit applications on 64bit operating systems.\n"
+" Default: None"
+msgstr ""
+
+msgid ""
+"``regname``\n"
+" Name of value to read from specified registry key. Defaults to the\n"
+" unnamed (default) value."
+msgstr ""
+
+msgid ""
+"``regappend``\n"
+" String to append to the value read from the registry, typically\n"
+" the executable name of the tool.\n"
+" Default: None"
+msgstr ""
+
+msgid ""
+"\n"
"``hooks``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
+msgstr ""
msgid ""
"Commands or Python functions that get automatically executed by\n"
"various actions such as starting or finishing a commit. Multiple\n"
"hooks can be run for the same action by appending a suffix to the\n"
"action. Overriding a site-wide hook can be done by changing its\n"
-"value or setting it to an empty string. Hooks can be prioritized\n"
-"by adding a prefix of ``priority`` to the hook name on a new line\n"
-"and setting the priority. The default priority is 0 if\n"
-"not specified."
+"value or setting it to an empty string."
msgstr ""
msgid "Example ``.hg/hgrc``::"
@@ -14048,9 +11941,7 @@ msgid ""
" # do not use the site-wide hook\n"
" incoming =\n"
" incoming.email = /my/email/hook\n"
-" incoming.autobuild = /my/build/hook\n"
-" # force autobuild hook to run before other incoming hooks\n"
-" priority.incoming.autobuild = 1"
+" incoming.autobuild = /my/build/hook"
msgstr ""
msgid ""
@@ -14261,42 +12152,9 @@ msgstr ""
msgid ""
"\n"
-"``hostfingerprints``\n"
-"--------------------"
-msgstr ""
-"\n"
-"``hostfingerprints``\n"
-"--------------------"
-
-msgid ""
-"Fingerprints of the certificates of known HTTPS servers.\n"
-"A HTTPS connection to a server with a fingerprint configured here will\n"
-"only succeed if the servers certificate matches the fingerprint.\n"
-"This is very similar to how ssh known hosts works.\n"
-"The fingerprint is the SHA-1 hash value of the DER encoded certificate.\n"
-"The CA chain and web.cacerts is not used for servers with a fingerprint."
-msgstr ""
-
-msgid "For example::"
-msgstr "Exempelvis::"
-
-msgid ""
-" [hostfingerprints]\n"
-" hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:"
-"d6:4b:ee:cc"
-msgstr ""
-
-msgid "This feature is only supported when using Python 2.6 or later."
-msgstr ""
-
-msgid ""
-"\n"
"``http_proxy``\n"
-"--------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``http_proxy``\n"
-"--------------"
msgid ""
"Used to access web-based Mercurial repositories through a HTTP\n"
@@ -14332,174 +12190,54 @@ msgid ""
msgstr ""
msgid ""
-"``merge-patterns``\n"
-"------------------"
-msgstr ""
-"``merge-patterns``\n"
-"------------------"
-
-msgid ""
-"This section specifies merge tools to associate with particular file\n"
-"patterns. Tools matched here will take precedence over the default\n"
-"merge tool. Patterns are globs by default, rooted at the repository\n"
-"root."
-msgstr ""
-
-msgid ""
-" [merge-patterns]\n"
-" **.c = kdiff3\n"
-" **.jpg = myimgmerge"
-msgstr ""
-
-msgid ""
-"``merge-tools``\n"
-"---------------"
-msgstr ""
-"``merge-tools``\n"
-"---------------"
-
-msgid ""
-"This section configures external merge tools to use for file-level\n"
-"merges."
-msgstr ""
-
-msgid "Example ``~/.hgrc``::"
-msgstr ""
-
-msgid ""
-" [merge-tools]\n"
-" # Override stock tool location\n"
-" kdiff3.executable = ~/bin/kdiff3\n"
-" # Specify command line\n"
-" kdiff3.args = $base $local $other -o $output\n"
-" # Give higher priority\n"
-" kdiff3.priority = 1"
-msgstr ""
-
-msgid ""
-" # Define new tool\n"
-" myHtmlTool.args = -m $local $other $base $output\n"
-" myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
-" myHtmlTool.priority = 1"
-msgstr ""
-
-msgid ""
-"``priority``\n"
-" The priority in which to evaluate this tool.\n"
-" Default: 0."
-msgstr ""
-
-msgid ""
-"``executable``\n"
-" Either just the name of the executable or its pathname. On Windows,\n"
-" the path can use environment variables with ${ProgramFiles} syntax.\n"
-" Default: the tool name."
-msgstr ""
-
-msgid ""
-"``args``\n"
-" The arguments to pass to the tool executable. You can refer to the\n"
-" files being merged as well as the output file through these\n"
-" variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
-" Default: ``$local $base $other``"
-msgstr ""
-
-msgid ""
-"``premerge``\n"
-" Attempt to run internal non-interactive 3-way merge tool before\n"
-" launching external tool. Options are ``true``, ``false``, or ``keep``\n"
-" to leave markers in the file if the premerge fails.\n"
-" Default: True"
-msgstr ""
-
-msgid ""
-"``binary``\n"
-" This tool can merge binary files. Defaults to False, unless tool\n"
-" was selected by file pattern match."
-msgstr ""
-
-msgid ""
-"``symlink``\n"
-" This tool can merge symlinks. Defaults to False, even if tool was\n"
-" selected by file pattern match."
-msgstr ""
-
-msgid ""
-"``check``\n"
-" A list of merge success-checking options:"
-msgstr ""
-
-msgid ""
-" ``changed``\n"
-" Ask whether merge was successful when the merged file shows no changes.\n"
-" ``conflicts``\n"
-" Check whether there are conflicts even though the tool reported "
-"success.\n"
-" ``prompt``\n"
-" Always prompt for merge success, regardless of success reported by tool."
-msgstr ""
-
-msgid ""
-"``checkchanged``\n"
-" True is equivalent to ``check = changed``.\n"
-" Default: False"
+"``smtp``\n"
+"\"\"\"\"\"\"\"\""
msgstr ""
-msgid ""
-"``checkconflicts``\n"
-" True is equivalent to ``check = conflicts``.\n"
-" Default: False"
+msgid "Configuration for extensions that need to send email messages."
msgstr ""
msgid ""
-"``fixeol``\n"
-" Attempt to fix up EOL changes caused by the merge tool.\n"
-" Default: False"
+"``host``\n"
+" Host name of mail server, e.g. \"mail.example.com\"."
msgstr ""
msgid ""
-"``gui``\n"
-" This tool requires a graphical interface to run. Default: False"
+"``port``\n"
+" Optional. Port to connect to on mail server. Default: 25."
msgstr ""
msgid ""
-"``regkey``\n"
-" Windows registry key which describes install location of this\n"
-" tool. Mercurial will search for this key first under\n"
-" ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.\n"
-" Default: None"
+"``tls``\n"
+" Optional. Method to enable TLS when connecting to mail server: "
+"starttls,\n"
+" smtps or none. Default: none."
msgstr ""
msgid ""
-"``regkeyalt``\n"
-" An alternate Windows registry key to try if the first key is not\n"
-" found. The alternate key uses the same ``regname`` and ``regappend``\n"
-" semantics of the primary key. The most common use for this key\n"
-" is to search for 32bit applications on 64bit operating systems.\n"
-" Default: None"
+"``username``\n"
+" Optional. User name for authenticating with the SMTP server.\n"
+" Default: none."
msgstr ""
msgid ""
-"``regname``\n"
-" Name of value to read from specified registry key. Defaults to the\n"
-" unnamed (default) value."
+"``password``\n"
+" Optional. Password for authenticating with the SMTP server. If not\n"
+" specified, interactive sessions will prompt the user for a\n"
+" password; non-interactive sessions will fail. Default: none."
msgstr ""
msgid ""
-"``regappend``\n"
-" String to append to the value read from the registry, typically\n"
-" the executable name of the tool.\n"
-" Default: None"
+"``local_hostname``\n"
+" Optional. It's the hostname that the sender can use to identify\n"
+" itself to the MTA."
msgstr ""
msgid ""
"\n"
"``patch``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``patch``\n"
-"---------"
msgid ""
"Settings used when applying patches, for instance through the 'import'\n"
@@ -14522,11 +12260,8 @@ msgstr ""
msgid ""
"\n"
"``paths``\n"
-"---------"
+"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``paths``\n"
-"---------"
msgid ""
"Assigns symbolic names to repositories. The left side is the\n"
@@ -14549,72 +12284,22 @@ msgid ""
msgstr ""
msgid ""
-"``phases``\n"
-"----------"
-msgstr ""
-"``phases``\n"
-"----------"
-
-msgid ""
-"Specifies default handling of phases. See :hg:`help phases` for more\n"
-"information about working with phases."
-msgstr ""
-
-msgid ""
-"``publish``\n"
-" Controls draft phase behavior when working as a server. When true,\n"
-" pushed changesets are set to public in both client and server and\n"
-" pulled or cloned changesets are set to public in the client.\n"
-" Default: True"
-msgstr ""
-
-msgid ""
-"``new-commit``\n"
-" Phase of newly-created commits.\n"
-" Default: draft"
-msgstr ""
-
-msgid ""
-"``profiling``\n"
-"-------------"
-msgstr ""
+"\n"
"``profiling``\n"
-"-------------"
-
-msgid ""
-"Specifies profiling type, format, and file output. Two profilers are\n"
-"supported: an instrumenting profiler (named ``ls``), and a sampling\n"
-"profiler (named ``stat``)."
-msgstr ""
-
-msgid ""
-"In this section description, 'profiling data' stands for the raw data\n"
-"collected during profiling, while 'profiling report' stands for a\n"
-"statistical text report generated from the profiling data. The\n"
-"profiling is done using lsprof."
+"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
msgid ""
-"``type``\n"
-" The type of profiler to use.\n"
-" Default: ls."
-msgstr ""
-
-msgid ""
-" ``ls``\n"
-" Use Python's built-in instrumenting profiler. This profiler\n"
-" works on all platforms, but each line number it reports is the\n"
-" first line of a function. This restriction makes it difficult to\n"
-" identify the expensive parts of a non-trivial function.\n"
-" ``stat``\n"
-" Use a third-party statistical profiler, statprof. This profiler\n"
-" currently runs only on Unix systems, and is most useful for\n"
-" profiling commands that run for longer than about 0.1 seconds."
+"Specifies profiling format and file output. In this section\n"
+"description, 'profiling data' stands for the raw data collected\n"
+"during profiling, while 'profiling report' stands for a statistical\n"
+"text report generated from the profiling data. The profiling is done\n"
+"using lsprof."
msgstr ""
msgid ""
"``format``\n"
-" Profiling format. Specific to the ``ls`` instrumenting profiler.\n"
+" Profiling format.\n"
" Default: text."
msgstr ""
@@ -14630,12 +12315,6 @@ msgid ""
msgstr ""
msgid ""
-"``frequency``\n"
-" Sampling frequency. Specific to the ``stat`` sampling profiler.\n"
-" Default: 1000."
-msgstr ""
-
-msgid ""
"``output``\n"
" File path where profiling data or report should be saved. If the\n"
" file exists, it is replaced. Default: None, data is printed on\n"
@@ -14644,20 +12323,16 @@ msgstr ""
msgid ""
"``revsetalias``\n"
-"---------------"
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``revsetalias``\n"
-"---------------"
msgid "Alias definitions for revsets. See :hg:`help revsets` for details."
msgstr ""
msgid ""
"``server``\n"
-"----------"
+"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``server``\n"
-"----------"
msgid "Controls generic server settings."
msgstr ""
@@ -14677,12 +12352,6 @@ msgid ""
msgstr ""
msgid ""
-"``preferuncompressed``\n"
-" When set, clients will try to use the uncompressed streaming\n"
-" protocol. Default is False."
-msgstr ""
-
-msgid ""
"``validate``\n"
" Whether to validate the completeness of pushed changesets by\n"
" checking that all new file revisions specified in manifests are\n"
@@ -14690,74 +12359,21 @@ msgid ""
msgstr ""
msgid ""
-"``smtp``\n"
-"--------"
-msgstr ""
-"``smtp``\n"
-"--------"
-
-msgid "Configuration for extensions that need to send email messages."
-msgstr ""
-
-msgid ""
-"``host``\n"
-" Host name of mail server, e.g. \"mail.example.com\"."
-msgstr ""
-
-msgid ""
-"``port``\n"
-" Optional. Port to connect to on mail server. Default: 25."
-msgstr ""
-
-msgid ""
-"``tls``\n"
-" Optional. Method to enable TLS when connecting to mail server: "
-"starttls,\n"
-" smtps or none. Default: none."
-msgstr ""
-
-msgid ""
-"``username``\n"
-" Optional. User name for authenticating with the SMTP server.\n"
-" Default: none."
-msgstr ""
-
-msgid ""
-"``password``\n"
-" Optional. Password for authenticating with the SMTP server. If not\n"
-" specified, interactive sessions will prompt the user for a\n"
-" password; non-interactive sessions will fail. Default: none."
-msgstr ""
-
-msgid ""
-"``local_hostname``\n"
-" Optional. It's the hostname that the sender can use to identify\n"
-" itself to the MTA."
-msgstr ""
-
-msgid ""
-"\n"
"``subpaths``\n"
-"------------"
+"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``subpaths``\n"
-"------------"
-msgid ""
-"Subrepository source URLs can go stale if a remote server changes name\n"
-"or becomes temporarily unavailable. This section lets you define\n"
-"rewrite rules of the form::"
+msgid "Defines subrepositories source locations rewriting rules of the form::"
msgstr ""
msgid " <pattern> = <replacement>"
msgstr ""
msgid ""
-"where ``pattern`` is a regular expression matching a subrepository\n"
-"source URL and ``replacement`` is the replacement string used to\n"
-"rewrite it. Groups can be matched in ``pattern`` and referenced in\n"
-"``replacements``. For instance::"
+"Where ``pattern`` is a regular expression matching the source and\n"
+"``replacement`` is the replacement string used to rewrite it. Groups\n"
+"can be matched in ``pattern`` and referenced in ``replacements``. For\n"
+"instance::"
msgstr ""
msgid " http://server/(.*)-hg/ = http://hg.server/\\1/"
@@ -14766,18 +12382,13 @@ msgstr ""
msgid "rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``."
msgstr ""
-msgid ""
-"Relative subrepository paths are first made absolute, and the\n"
-"rewrite rules are then applied on the full (absolute) path. The rules\n"
-"are applied in definition order."
+msgid "All patterns are applied in definition order."
msgstr ""
msgid ""
"``trusted``\n"
-"-----------"
+"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"``trusted``\n"
-"-----------"
msgid ""
"Mercurial will not use the settings in the\n"
@@ -14810,11 +12421,8 @@ msgstr ""
msgid ""
"\n"
"``ui``\n"
-"------"
+"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``ui``\n"
-"------"
msgid "User interface controls."
msgstr ""
@@ -14842,7 +12450,7 @@ msgid ""
" Whether to commit modified subrepositories when committing the\n"
" parent repository. If False and one subrepository has uncommitted\n"
" changes, abort the commit.\n"
-" Default is False."
+" Default is True."
msgstr ""
msgid ""
@@ -14915,12 +12523,6 @@ msgid ""
msgstr ""
msgid ""
-"``reportoldssl``\n"
-" Warn if an SSL certificate is unable to be due to using Python\n"
-" 2.5 or earlier. True or False. Default is True."
-msgstr ""
-
-msgid ""
"``report_untrusted``\n"
" Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a\n"
" trusted user or group. True or False. Default is True."
@@ -14985,11 +12587,8 @@ msgstr ""
msgid ""
"\n"
"``web``\n"
-"-------"
+"\"\"\"\"\"\"\""
msgstr ""
-"\n"
-"``web``\n"
-"-------"
msgid ""
"Web interface configuration. The settings in this section apply to\n"
@@ -15070,15 +12669,6 @@ msgid ""
msgstr ""
msgid ""
-"``guessmime``\n"
-" Control MIME types for raw download of file content.\n"
-" Set to True to let hgweb guess the content type from the file\n"
-" extension. This will serve HTML files as ``text/html`` and might\n"
-" allow cross-site scripting attacks when serving untrusted\n"
-" repositories. Default is False."
-msgstr ""
-
-msgid ""
"``allow_read``\n"
" If the user has not already been denied repository access due to\n"
" the contents of deny_read, this list determines whether to grant\n"
@@ -15110,7 +12700,16 @@ msgid ""
" authority certificates. Environment variables and ``~user``\n"
" constructs are expanded in the filename. If specified on the\n"
" client, then it will verify the identity of remote HTTPS servers\n"
-" with these certificates."
+" with these certificates. The form must be as follows::"
+msgstr ""
+
+msgid ""
+" -----BEGIN CERTIFICATE-----\n"
+" ... (certificate in base64 PEM encoding) ...\n"
+" -----END CERTIFICATE-----\n"
+" -----BEGIN CERTIFICATE-----\n"
+" ... (certificate in base64 PEM encoding) ...\n"
+" -----END CERTIFICATE-----"
msgstr ""
msgid ""
@@ -15122,24 +12721,15 @@ msgid ""
msgstr ""
msgid ""
-" To disable SSL verification temporarily, specify ``--insecure`` from\n"
-" command line."
-msgstr ""
-
-msgid ""
-" You can use OpenSSL's CA certificate file if your platform has\n"
-" one. On most Linux systems this will be\n"
-" ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to\n"
-" generate this file manually. The form must be as follows::"
+" You can use OpenSSL's CA certificate file if your platform has one.\n"
+" On most Linux systems this will be ``/etc/ssl/certs/ca-certificates."
+"crt``.\n"
+" Otherwise you will have to generate this file manually."
msgstr ""
msgid ""
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----\n"
-" -----BEGIN CERTIFICATE-----\n"
-" ... (certificate in base64 PEM encoding) ...\n"
-" -----END CERTIFICATE-----"
+" To disable SSL verification temporarily, specify ``--insecure`` from\n"
+" command line."
msgstr ""
msgid ""
@@ -15148,17 +12738,6 @@ msgid ""
msgstr ""
msgid ""
-"``collapse``\n"
-" With ``descend`` enabled, repositories in subdirectories are shown at\n"
-" a single level alongside repositories in the current path. With\n"
-" ``collapse`` also enabled, repositories residing at a deeper level than\n"
-" the current path are grouped behind navigable directory entries that\n"
-" lead to the locations of these repositories. In effect, this setting\n"
-" collapses each collection of repositories found within a subdirectory\n"
-" into a single entry for that subdirectory. Default is False."
-msgstr ""
-
-msgid ""
"``contact``\n"
" Name or email address of the person in charge of the repository.\n"
" Defaults to ui.username or ``$EMAIL`` or \"unknown\" if unset or empty."
@@ -15217,15 +12796,6 @@ msgid ""
msgstr ""
msgid ""
-"``comparisoncontext``\n"
-" Number of lines of context to show in side-by-side file comparison. If\n"
-" negative or the value ``full``, whole files are shown. Default is 5.\n"
-" This setting can be overridden by a ``context`` request parameter to "
-"the\n"
-" ``comparison`` command, taking the same values."
-msgstr ""
-
-msgid ""
"``hidden``\n"
" Whether to hide the repository in the hgwebdir index.\n"
" Default is False."
@@ -15237,14 +12807,6 @@ msgid ""
msgstr ""
msgid ""
-"``logoimg``\n"
-" File name of the logo image that some templates display on each page.\n"
-" The file name is relative to ``staticurl``. That is, the full path to\n"
-" the logo image is \"staticurl/logoimg\".\n"
-" If unset, ``hglogo.png`` will be used."
-msgstr ""
-
-msgid ""
"``logourl``\n"
" Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``\n"
" will be used."
@@ -15730,7 +13292,7 @@ msgstr ""
msgid "- Find C files in a non-standard encoding::"
msgstr ""
-msgid " hg locate \"set:**.c and not encoding('UTF-8')\""
+msgid " hg locate \"set:**.c and not encoding(ascii)\""
msgstr ""
msgid "- Revert copies of large binary files::"
@@ -15945,7 +13507,7 @@ msgstr ""
msgid ""
"Close changeset\n"
-" See 'Head, closed branch'"
+" See 'Changeset, close'."
msgstr ""
msgid ""
@@ -16056,13 +13618,6 @@ msgid ""
msgstr ""
msgid ""
-"Draft\n"
-" Changesets in the draft phase have not been shared with publishing\n"
-" repositories and may thus be safely changed by history-modifying\n"
-" extensions. See :hg:`help phases`."
-msgstr ""
-
-msgid ""
"Graph\n"
" See DAG and :hg:`help graphlog`."
msgstr ""
@@ -16093,11 +13648,6 @@ msgid ""
msgstr ""
msgid ""
-" Closed heads can be re-opened by committing new changeset as the\n"
-" child of the changeset that marks a head as closed."
-msgstr ""
-
-msgid ""
"Head, repository\n"
" A topological head which has not been closed."
msgstr ""
@@ -16198,19 +13748,6 @@ msgid " Example: \"You will need to patch that revision.\""
msgstr ""
msgid ""
-"Phase\n"
-" A per-changeset state tracking how the changeset has been or\n"
-" should be shared. See :hg:`help phases`."
-msgstr ""
-
-msgid ""
-"Public\n"
-" Changesets in the public phase have been shared with publishing\n"
-" repositories and are therefore considered immutable. See :hg:`help\n"
-" phases`."
-msgstr ""
-
-msgid ""
"Pull\n"
" An operation in which changesets in a remote repository which are\n"
" not in the local repository are brought into the local\n"
@@ -16285,12 +13822,6 @@ msgid ""
msgstr ""
msgid ""
-"Secret\n"
-" Changesets in the secret phase may not be shared via push, pull,\n"
-" or clone. See :hg:`help phases`."
-msgstr ""
-
-msgid ""
"Tag\n"
" An alternative name given to a changeset. Tags can be used in all\n"
" places where Mercurial expects a changeset ID, e.g., with\n"
@@ -16342,10 +13873,8 @@ msgstr ""
msgid ""
"Synopsis\n"
-"========"
+"--------"
msgstr ""
-"Synopsis\n"
-"========"
msgid ""
"The Mercurial system uses a file called ``.hgignore`` in the root\n"
@@ -16355,10 +13884,10 @@ msgstr ""
msgid ""
"Description\n"
-"==========="
+"-----------"
msgstr ""
"Beskrivning\n"
-"==========="
+"-----------"
msgid ""
"The working directory of a Mercurial repository will often contain\n"
@@ -16396,13 +13925,6 @@ msgid ""
msgstr ""
msgid ""
-"Files that are already tracked are not affected by .hgignore, even\n"
-"if they appear in .hgignore. An untracked file X can be explicitly\n"
-"added with :hg:`add X`, even if X would be excluded by a pattern\n"
-"in .hgignore."
-msgstr ""
-
-msgid ""
"An ignore file is a plain text file consisting of a list of patterns,\n"
"with one pattern per line. Empty lines are skipped. The ``#``\n"
"character is treated as a comment character, and the ``\\`` character\n"
@@ -16443,17 +13965,9 @@ msgid ""
msgstr ""
msgid ""
-".. note::\n"
-" Patterns specified in other than ``.hgignore`` are always rooted.\n"
-" Please see :hg:`help patterns` for details."
-msgstr ""
-
-msgid ""
"Example\n"
-"======="
+"-------"
msgstr ""
-"Exempel\n"
-"======="
msgid "Here is an example ignore file. ::"
msgstr ""
@@ -16477,22 +13991,21 @@ msgstr ""
msgid ""
"Mercurial's internal web server, hgweb, can serve either a single\n"
-"repository, or a tree of repositories. In the second case, repository\n"
-"paths and global options can be defined using a dedicated\n"
-"configuration file common to :hg:`serve`, ``hgweb.wsgi``,\n"
-"``hgweb.cgi`` and ``hgweb.fcgi``."
+"repository, or a collection of them. In the latter case, a special\n"
+"configuration file can be used to specify the repository paths to use\n"
+"and global web configuration options."
msgstr ""
"Mercurials interna webbserver, hgweb, kan endera dela ut ett arkiv, eller\n"
-"en trädstruktur med arkiv. I det andra fallet kan arkivsökvägar och\n"
-"globala flaggor definieras med en dedikerad konfigurationsfil som delas\n"
-"av :hg:`serve`, ``hgweb.wsgi``, ``hgweb.cgi`` och ``hgweb.fcgi``."
+"flera stycken. I det senare fallet, så kan en speciell konfigurationsfil\n"
+"användas för att ange arkivsökvägarna att använda och globala alternativ\n"
+"för webbkonfiguration"
msgid ""
-"This file uses the same syntax as other Mercurial configuration files\n"
-"but recognizes only the following sections:"
+"This file uses the same syntax as other Mercurial configuration files,\n"
+"but only the following sections are recognized:"
msgstr ""
"Denna fil använder samma syntax som Mercurials övriga konfigurationsfiler,\n"
-"men använder bara de följande sektionerna:"
+"men bara de följande sektionerna används:"
msgid ""
" - web\n"
@@ -16503,82 +14016,83 @@ msgstr ""
" - paths\n"
" - collections"
-msgid "The ``web`` options are thorougly described in :hg:`help config`."
-msgstr "Flaggorna för ``web`` finns utförligt beskrivna i :hg:`help config`."
-
msgid ""
-"The ``paths`` section maps URL paths to paths of repositories in the\n"
-"filesystem. hgweb will not expose the filesystem directly - only\n"
-"Mercurial repositories can be published and only according to the\n"
-"configuration."
+"The ``web`` section can specify all the settings described in the web\n"
+"section of the hgrc(5) documentation. See :hg:`help config` for\n"
+"information on where to find the manual page."
msgstr ""
-"Sektionen ``paths`` matchar URL-sökvägar till arkivsökvägar i filsystemet.\n"
-"hgweb kommer inte att exponera filsystemet direkt - bara Mercurial-arkiv\n"
-"kan publiceras och bara som konfigurationen medger."
+"Sektionen ``web`` kan ange alla inställningar som beskrivs i web-sektionen\n"
+"i hgrc(5)-dokumentationen. Se :hg:`help config` för information om var\n"
+"manualsidan hittas."
msgid ""
-"The left hand side is the path in the URL. Note that hgweb reserves\n"
-"subpaths like ``rev`` or ``file``, try using different names for\n"
-"nested repositories to avoid confusing effects."
+"The ``paths`` section provides mappings of physical repository\n"
+"paths to virtual ones. For instance::"
msgstr ""
-"Den vänstra sidan är sökvägen i URL:en. Notera att hgweb reserverar\n"
-"undersökvägar som ``rev`` eller ``file``, försök att anvädna andra namn\n"
-"för nästlade arkiv för att undvika förbryllande fenomen."
-
-msgid ""
-"The right hand side is the path in the filesystem. If the specified\n"
-"path ends with ``*`` or ``**`` the filesystem will be searched\n"
-"recursively for repositories below that point.\n"
-"With ``*`` it will not recurse into the repositories it finds (except for\n"
-"``.hg/patches``).\n"
-"With ``**`` it will also search inside repository working directories\n"
-"and possibly find subrepositories."
-msgstr ""
-"Den högra sidan är sökvägen i filsystemet. Om den angivna sökvägen slutar\n"
-"med ``*`` eller ``**`` så kommer filsystemet att genomsökas rekursivt\n"
-"efter arkiv från den punkten.\n"
-"Med ``*`` så kommer sökningen inte att fortsätta in i funna arkiv (med\n"
-"undantag för ``.hg/patches``).\n"
-"Med ``**`` så kommer sökningen att fortsätta i arkivets arbetskopia och\n"
-"möjligen hitta underarkiv."
-
-msgid "In this example::"
-msgstr "I det här exemplet::"
+"Sektionen ``paths`` mappar upp fysiska arkiv till virtuella. Exempelvis::"
msgid ""
" [paths]\n"
-" /projects/a = /srv/tmprepos/a\n"
-" /projects/b = c:/repos/b\n"
-" / = /srv/repos/*\n"
-" /user/bob = /home/bob/repos/**"
+" projects/a = /foo/bar\n"
+" projects/b = /baz/quux\n"
+" web/root = /real/root/*\n"
+" / = /real/root2/*\n"
+" virtual/root2 = /real/root2/**"
msgstr ""
" [paths]\n"
-" /projects/a = /srv/tmprepos/a\n"
-" /projects/b = c:/repos/b\n"
-" / = /srv/repos/*\n"
-" /user/bob = /home/bob/repos/**"
+" projekt/a = /foo/bar\n"
+" projekt/b = /baz/quux\n"
+" web/rot = /riktig/rot/*\n"
+" / = /riktig/rot2/*\n"
+" virtuell/rot2 = /riktig/rot2/**"
msgid ""
"- The first two entries make two repositories in different directories\n"
" appear under the same directory in the web interface\n"
-"- The third entry will publish every Mercurial repository found in\n"
-" ``/srv/repos/``, for instance the repository ``/srv/repos/quux/``\n"
-" will appear as ``http://server/quux/``\n"
-"- The fourth entry will publish both ``http://server/user/bob/quux/``\n"
-" and ``http://server/user/bob/quux/testsubrepo/``"
+"- The third entry maps every Mercurial repository found in '/real/root'\n"
+" into 'web/root'. This format is preferred over the [collections] one,\n"
+" since using absolute paths as configuration keys is not supported on "
+"every\n"
+" platform (especially on Windows).\n"
+"- The fourth entry is a special case mapping all repositories in\n"
+" '/real/root2' in the root of the virtual directory.\n"
+"- The fifth entry recursively finds all repositories under the real\n"
+" root, and maps their relative paths under the virtual root."
msgstr ""
-"- De första två posterna gör att två arkiv i olika kataloger dyker upp\n"
-" under samma katalog i webbgränssnittet\n"
-"- Den tredje posten publicerar alla Mercurial-arkiv som hittas i\n"
-" ``/srv/repos/``, exempelvis kommer arkivet ``/srv/repos/quux/``\n"
-" att dyka upp som ``http://server/quux/``\n"
-"- Den fjärde posten publicerar både ``http://server/user/bob/quux/``\n"
-" och ``http://server/user/bob/quux/testsubrepo/``"
+"- De första två posterna gör att två arkiv i olika kataloger visas under\n"
+" samma katalog i webbgränssnittet\n"
+"- Den tredje posten mappar alla Mercurial-arkiv som hittas i '/riktig/rot'\n"
+" i 'web/rot'. Detta format är att föredra över det i [collections],\n"
+" eftersom användning av absoluta sökvägar som konfigurationsnycklar inte\n"
+" stödjs på alla plattformar (särskilt Windows).\n"
+"- Den fjärde posten är ett specialfall som mappar alla arkiv i\n"
+" '/riktig/rot2' i roten på den virtuella katalogen.\n"
+"- Den femte posten söker rekursivt efter alla arkiv under den riktiga\n"
+" roten, och mappar deras relativa sökvägar under den virtuella roten."
msgid ""
-"The ``collections`` section is deprecated and has been superseeded by\n"
-"``paths``.\n"
-msgstr "Sektionen ``collections`` är föråldrad och har ersatts av ``paths``.\n"
+"The ``collections`` section provides mappings of trees of physical\n"
+"repositories paths to virtual ones, though the paths syntax is generally\n"
+"preferred. For instance::"
+msgstr ""
+"Sektionen ``collections`` mappar upp träd av fysiska arkiv till virtuella,\n"
+"men användning av paths är generellt sett att föredra. Exempel::"
+
+msgid ""
+" [collections]\n"
+" /foo = /foo"
+msgstr ""
+" [collections]\n"
+" /foo = /foo"
+
+msgid ""
+"Here, the left side will be stripped off all repositories found in the\n"
+"right side. Thus ``/foo/bar`` and ``foo/quux/baz`` will be listed as\n"
+"``bar`` and ``quux/baz`` respectively.\n"
+msgstr ""
+"Här kommer den vänstra sidan att strippas från alla arkiv som hittas i den\n"
+"högra sidan. Det innebär att ``/foo/bar`` och ``foo/quux/baz`` kommer att\n"
+"visas som ``bar``och ``quux/baz``.\n"
msgid "To merge files Mercurial uses merge tools."
msgstr ""
@@ -16608,10 +14122,8 @@ msgstr ""
msgid ""
"Available merge tools\n"
-"====================="
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
-"Tillgängliga sammanfogningsverktyg\n"
-"=================================="
msgid ""
"External merge tools and their properties are configured in the\n"
@@ -16634,7 +14146,44 @@ msgid ""
"merge tools are:"
msgstr ""
-msgid ".. internaltoolsmarker"
+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 ""
@@ -16645,7 +14194,7 @@ msgstr ""
msgid ""
"Choosing a merge tool\n"
-"====================="
+"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
msgstr ""
msgid "Mercurial uses these rules when deciding which merge tool to use:"
@@ -16760,12 +14309,6 @@ msgid "Alternate pattern notations must be specified explicitly."
msgstr "Alternativa mönsternotationer måste anges explicit."
msgid ""
-".. note::\n"
-" Patterns specified in ``.hgignore`` are not rooted. \n"
-" Please see :hg:`help hgignore` for details."
-msgstr ""
-
-msgid ""
"To use a plain path name without any pattern matching, start it with\n"
"``path:``. These path names must completely match starting at the\n"
"current repository root."
@@ -16853,149 +14396,6 @@ msgstr ""
msgid "See also :hg:`help filesets`.\n"
msgstr ""
-msgid ""
-"What are phases?\n"
-"================"
-msgstr ""
-"Vad är faser?\n"
-"============="
-
-msgid ""
-"Phases are a system for tracking which changesets have been or should\n"
-"be shared. This helps prevent common mistakes when modifying history\n"
-"(for instance, with the mq or rebase extensions)."
-msgstr ""
-
-msgid "Each changeset in a repository is in one of the following phases:"
-msgstr ""
-
-msgid ""
-" - public : changeset is visible on a public server\n"
-" - draft : changeset is not yet published\n"
-" - secret : changeset should not be pushed, pulled, or cloned"
-msgstr ""
-
-msgid ""
-"These phases are ordered (public < draft < secret) and no changeset\n"
-"can be in a lower phase than its ancestors. For instance, if a\n"
-"changeset is public, all its ancestors are also public. Lastly,\n"
-"changeset phases should only be changed towards the public phase."
-msgstr ""
-
-msgid ""
-"How are phases managed?\n"
-"======================="
-msgstr ""
-"Hur hanteras faser?\n"
-"==================="
-
-msgid ""
-"For the most part, phases should work transparently. By default, a\n"
-"changeset is created in the draft phase and is moved into the public\n"
-"phase when it is pushed to another repository."
-msgstr ""
-
-msgid ""
-"Once changesets become public, extensions like mq and rebase will\n"
-"refuse to operate on them to prevent creating duplicate changesets.\n"
-"Phases can also be manually manipulated with the :hg:`phase` command\n"
-"if needed. See :hg:`help -v phase` for examples."
-msgstr ""
-
-msgid ""
-"Phases and servers\n"
-"=================="
-msgstr ""
-"Faser och servrar\n"
-"================="
-
-msgid "Normally, all servers are ``publishing`` by default. This means::"
-msgstr ""
-
-msgid ""
-" - all draft changesets that are pulled or cloned appear in phase\n"
-" public on the client"
-msgstr ""
-
-msgid ""
-" - all draft changesets that are pushed appear as public on both\n"
-" client and server"
-msgstr ""
-
-msgid " - secret changesets are neither pushed, pulled, or cloned"
-msgstr ""
-
-msgid ""
-".. note::\n"
-" Pulling a draft changeset from a publishing server does not mark it\n"
-" as public on the server side due to the read-only nature of pull."
-msgstr ""
-
-msgid ""
-"Sometimes it may be desirable to push and pull changesets in the draft\n"
-"phase to share unfinished work. This can be done by setting a\n"
-"repository to disable publishing in its configuration file::"
-msgstr ""
-
-msgid ""
-" [phases]\n"
-" publish = False"
-msgstr ""
-" [phases]\n"
-" publish = False"
-
-msgid "See :hg:`help config` for more information on config files."
-msgstr "Se :hg:`help config` för mer information om konfigurationsfiler."
-
-msgid ""
-".. note::\n"
-" Servers running older versions of Mercurial are treated as\n"
-" publishing."
-msgstr ""
-
-msgid ""
-"Examples\n"
-"========"
-msgstr ""
-"Exempel\n"
-"======="
-
-msgid " - list changesets in draft or secret phase::"
-msgstr " - visa ändringar i draft- eller secret-fasen::"
-
-msgid " hg log -r \"not public()\""
-msgstr " hg log -r \"not public()\""
-
-msgid " - change all secret changesets to draft::"
-msgstr " - ändra alla secret-ändringar till draft::"
-
-msgid " hg phase --draft \"secret()\""
-msgstr " hg phase --draft \"secret()\""
-
-msgid ""
-" - forcibly move the current changeset and descendants from public to draft::"
-msgstr " - tvinga nuvarande ändring och ättlingar från public till draft::"
-
-msgid " hg phase --force --draft ."
-msgstr " hg phase --force --draft ."
-
-msgid " - show a list of changeset revision and phase::"
-msgstr " - visa en lista med ändringsrevision och fas::"
-
-msgid " hg log --template \"{rev} {phase}\\n\""
-msgstr " hg log --template \"{rev} {phase}\\n\""
-
-msgid " - resynchronize draft changesets relative to a remote repository::"
-msgstr ""
-
-msgid " hg phase -fd 'outgoing(URL)' "
-msgstr " hg phase -fd 'outgoing(URL)' "
-
-msgid ""
-"See :hg:`help phase` for more information on manually manipulating phases.\n"
-msgstr ""
-"Se :hg:`help phase` för mer information om att manuellt änddra faser.\n"
-
msgid "Mercurial supports several ways to specify individual revisions."
msgstr "Mercurial stöder flera sätt att ange individuella revisioner."
@@ -17027,21 +14427,22 @@ msgstr ""
"fullängdsidentifierare."
msgid ""
-"Any other string is treated as a bookmark, tag, or branch name. A\n"
-"bookmark is a movable pointer to a revision. A tag is a permanent name\n"
-"associated with a revision. A branch name denotes the tipmost revision\n"
-"of that branch. Bookmark, tag, and branch names must not contain the \":\"\n"
-"character."
+"Any other string is treated as a tag or branch name. A tag name is a\n"
+"symbolic name associated with a revision identifier. A branch name\n"
+"denotes the tipmost revision of that branch. Tag and branch names must\n"
+"not contain the \":\" character."
msgstr ""
-"Alla andra strängar behandlas som bokmärken, märken eller grennamn. Ett\n"
-"bokmärke är en flyttbar pekare till en revision. Ett märkesnamn är ett\n"
-"permanent namn associerad med en revisionsidentifierare. Ett grennamn\n"
-"anger den högsta revisionen på den grenen. Bokmärken, märken och\n"
-"grennamn kan inte innehålla tecknet \":\"."
+"Alla andra strängar behandlas som märkes- eller grennamn. Ett märkesnamn är\n"
+"ett symboliskt namn associerad med en revisionsidentifierare. Ett grennamn\n"
+"anger den högsta revisionen på den grenen. Märkes- och grennamn kan inte\n"
+"innehålla tecknet \":\"."
-msgid "The reserved name \"tip\" always identifies the most recent revision."
+msgid ""
+"The reserved name \"tip\" is a special tag that always identifies the\n"
+"most recent revision."
msgstr ""
-"Det reserverade namnet \"tip\" identifierar alltid den senaste revisionen."
+"Det reserverade namnet \"tip\" är ett speciellt märke som alltid\n"
+"identifierar den senaste revisionen."
msgid ""
"The reserved name \"null\" indicates the null revision. This is the\n"
@@ -17071,9 +14472,10 @@ msgid ""
msgstr ""
msgid ""
-"Identifiers such as branch names may need quoting with single or\n"
-"double quotes if they contain characters like ``-`` or if they match\n"
-"one of the predefined predicates."
+"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."
msgstr ""
msgid ""
@@ -17229,12 +14631,8 @@ 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."
-msgstr ""
-
-msgid ""
-"Mercurial currently supports Mercurial, Git, and Subversion\n"
-"subrepositories."
+"group. External Mercurial and Subversion projects are currently\n"
+"supported."
msgstr ""
msgid "Subrepositories are made of three components:"
@@ -17242,12 +14640,12 @@ msgstr ""
msgid ""
"1. Nested repository checkouts. They can appear anywhere in the\n"
-" parent working directory."
+" parent working directory, and are Mercurial clones or Subversion\n"
+" checkouts."
msgstr ""
msgid ""
-"2. Nested repository references. They are defined in ``.hgsub``, which\n"
-" should be placed in the root of working directory, and\n"
+"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 ""
@@ -17255,19 +14653,14 @@ msgstr ""
msgid " path/to/nested = https://example.com/nested/repo/path"
msgstr ""
-msgid " Git and Subversion subrepos are also supported:"
-msgstr ""
-
-msgid ""
-" path/to/nested = [git]git://example.com/nested/repo/path\n"
-" path/to/nested = [svn]https://example.com/nested/trunk/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."
+" filesystem path. Subversion repositories are defined with:"
+msgstr ""
+
+msgid " path/to/nested = [svn]https://example.com/nested/trunk/path"
msgstr ""
msgid ""
@@ -17277,8 +14670,7 @@ msgid ""
msgstr ""
msgid ""
-"3. Nested repository states. They are defined in ``.hgsubstate``, which\n"
-" is placed in the root of working directory, and\n"
+"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"
@@ -17293,7 +14685,7 @@ msgstr ""
msgid ""
"\n"
"Adding a Subrepository\n"
-"======================"
+"----------------------"
msgstr ""
msgid ""
@@ -17307,7 +14699,7 @@ msgstr ""
msgid ""
"Synchronizing a Subrepository\n"
-"============================="
+"-----------------------------"
msgstr ""
msgid ""
@@ -17326,7 +14718,7 @@ msgstr ""
msgid ""
"Deleting a Subrepository\n"
-"========================"
+"------------------------"
msgstr ""
msgid ""
@@ -17336,14 +14728,12 @@ msgstr ""
msgid ""
"Interaction with Mercurial Commands\n"
-"==================================="
+"-----------------------------------"
msgstr ""
msgid ""
":add: add does not recurse in subrepos unless -S/--subrepos is\n"
-" specified. However, if you specify the full path of a file in a\n"
-" subrepo, it will be added even without -S/--subrepos specified.\n"
-" Git and Subversion subrepositories are currently silently\n"
+" specified. Subversion subrepositories are currently silently\n"
" ignored."
msgstr ""
@@ -17354,37 +14744,31 @@ msgstr ""
msgid ""
":commit: commit creates a consistent snapshot of the state of the\n"
-" entire project and its subrepositories. If any subrepositories\n"
-" have been modified, Mercurial will abort. Mercurial can be made\n"
-" to instead commit all modified subrepositories by specifying\n"
-" -S/--subrepos, or setting \"ui.commitsubrepos=True\" in a\n"
-" configuration file (see :hg:`help config`). After there are no\n"
-" longer any modified subrepositories, it records their state and\n"
-" finally commits it in the parent repository."
+" 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. Git and Subversion subrepositories are currently\n"
-" silently ignored."
-msgstr ""
-
-msgid ""
-":forget: forget currently only handles exact file matches in subrepos.\n"
-" Git and Subversion subrepositories are currently silently ignored."
+" elements. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
msgid ""
":incoming: incoming does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
msgid ""
":outgoing: outgoing does not recurse in subrepos unless -S/--subrepos\n"
-" is specified. Git and Subversion subrepositories are currently\n"
-" silently ignored."
+" is specified. Subversion subrepositories are currently silently\n"
+" ignored."
msgstr ""
msgid ""
@@ -17399,7 +14783,7 @@ 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. Push is a no-op for Subversion subrepositories."
+" repositories."
msgstr ""
msgid ""
@@ -17420,7 +14804,7 @@ msgstr ""
msgid ""
"Remapping Subrepositories Sources\n"
-"================================="
+"---------------------------------"
msgstr ""
msgid ""
@@ -17615,9 +14999,6 @@ msgstr "uppdaterar arbetskatalog\n"
msgid "destination directory: %s\n"
msgstr "destinationskatalog: %s\n"
-msgid "empty destination path is not valid"
-msgstr "en tom destinationssökväg är inte giltig"
-
#, python-format
msgid "destination '%s' already exists"
msgstr "destinationen '%s' finns redan"
@@ -17681,12 +15062,8 @@ msgid "cannot start server at '%s:%d': %s"
msgstr ""
#, python-format
-msgid "(binary file %s, hash: %s)"
-msgstr "(binär fil %s, hash: %s)"
-
-#, python-format
msgid " %d files changed, %d insertions(+), %d deletions(-)\n"
-msgstr "%d filer ändrade, %d tillägg(+), %d raderingar(-)\n"
+msgstr ""
#, python-format
msgid "calling hook %s: %s\n"
@@ -17742,10 +15119,6 @@ msgstr ""
msgid "warning: %s hook %s\n"
msgstr ""
-#, python-format
-msgid "loading %s hook failed:\n"
-msgstr ""
-
msgid "kb"
msgstr "kb"
@@ -17793,6 +15166,9 @@ msgstr ""
msgid "'%s' uses newer protocol %s"
msgstr ""
+msgid "unexpected response:"
+msgstr "oväntat svar:"
+
#, python-format
msgid "push failed: %s"
msgstr "tryckning misslyckades: %s"
@@ -17838,6 +15214,14 @@ msgstr ""
msgid "working copy of .hgtags is changed (please commit .hgtags manually)"
msgstr ""
+#, python-format
+msgid "working directory has unknown parent '%s'!"
+msgstr ""
+
+#, python-format
+msgid "unknown revision '%s'"
+msgstr ""
+
msgid "abandoned transaction found - run hg recover"
msgstr ""
@@ -17847,9 +15231,6 @@ msgstr ""
msgid "no interrupted transaction available\n"
msgstr ""
-msgid "no rollback information available\n"
-msgstr ""
-
#, python-format
msgid "repository tip rolled back to revision %s (undo %s: %s)\n"
msgstr "arkivtopp tillbakadragen till revision %s (Ã¥ngra %s: %s)\n"
@@ -17861,14 +15242,8 @@ msgstr "arkivtopp tillbakadragen till revision %s (Ã¥ngra %s)\n"
msgid "rolling back unknown transaction\n"
msgstr "återkallar okänd transaktion\n"
-msgid "rollback of last commit while not checked out may lose data"
-msgstr ""
-
-msgid "use -f to force"
-msgstr ""
-
#, python-format
-msgid "named branch could not be reset: current branch is still '%s'\n"
+msgid "named branch could not be reset, current branch is still: %s\n"
msgstr ""
#, python-format
@@ -17879,6 +15254,9 @@ msgstr "arbetskatalogen är nu baserad på revisionerna %d och %d\n"
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 ""
+
#, python-format
msgid "waiting for lock on %s held by %r\n"
msgstr ""
@@ -17899,16 +15277,13 @@ 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"
-#, python-format
-msgid "commit with new subrepo %s excluded"
-msgstr ""
-
-msgid "use --subrepos for recursive commit"
-msgstr ""
-
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!"
@@ -17918,15 +15293,12 @@ msgstr ""
msgid "file not tracked!"
msgstr "filen spåras inte!"
-msgid "cannot commit merge with missing files"
-msgstr "kan inte arkivera sammanfogning när filer saknas"
-
msgid "unresolved merge conflicts (see hg help resolve)"
msgstr "olösta sammanfogningskonflikter (se hg help resolve)"
#, python-format
msgid "committing subrepository %s\n"
-msgstr "arkiverar underarkiv %s\n"
+msgstr ""
#, python-format
msgid "note: commit message saved in %s\n"
@@ -17946,24 +15318,6 @@ msgstr ""
"deldragningar kan inte göras eftersom det andra arkivet inte stödjer "
"changegroupsubset."
-msgid "destination does not support push"
-msgstr "destinationen stödjer inte tryckning"
-
-#, python-format
-msgid "push includes an obsolete changeset: %s!"
-msgstr "tryckningen innehåller en förlegad ändring: %s!"
-
-#, python-format
-msgid "push includes an unstable changeset: %s!"
-msgstr "tryckningen innehåller en instabil ändring: %s!"
-
-#, python-format
-msgid "updating %s to public failed!\n"
-msgstr "uppdatera %s till publik misslyckades!\n"
-
-msgid "failed to push obsolete markers!\n"
-msgstr "kunde inte trycka förlegad-markörerna!\n"
-
#, python-format
msgid "%d changesets found\n"
msgstr "%d ändringar hittades\n"
@@ -18008,8 +15362,8 @@ msgstr " (%+d huvuden)"
msgid "added %d changesets with %d changes to %d files%s\n"
msgstr "lade till %d ändringar med %d modifikationer i %d filer%s\n"
-msgid "unexpected response from remote server:"
-msgstr "oväntat svar från server:"
+msgid "Unexpected response from remote server:"
+msgstr ""
msgid "operation forbidden by server"
msgstr ""
@@ -18027,9 +15381,6 @@ msgstr "strömmar alla ändringar\n"
msgid "%d files to transfer, %s of data\n"
msgstr "%d filer att överföra, %s med data\n"
-msgid "clone"
-msgstr ""
-
#, python-format
msgid "transferred %s in %.1f seconds (%s/sec)\n"
msgstr "överförde %s på %.1f sekunder (%s/sek)\n"
@@ -18101,11 +15452,9 @@ msgid "diff context lines count must be an integer, not %r"
msgstr ""
#, python-format
-msgid "%s: untracked file differs\n"
-msgstr ""
-
msgid ""
-"untracked files in working directory differ from files in requested revision"
+"untracked file in working directory differs from file in requested revision: "
+"'%s'"
msgstr ""
#, python-format
@@ -18170,18 +15519,14 @@ msgstr "hämtar %s till %s\n"
msgid "note: possible conflict - %s was renamed multiple times to:\n"
msgstr "notera: möjlig konflikt - %s döptes om flera gånger till:\n"
-#, python-format
-msgid "note: possible conflict - %s was deleted and renamed to:\n"
-msgstr "notera: möjlig konflikt - %s raderades och döptes om till:\n"
-
msgid "merging with a working directory ancestor has no effect"
msgstr ""
-msgid "use 'hg update' or check 'hg heads'"
-msgstr "använd 'hg update' eller kontrollera 'hg heads'"
+msgid "nothing to merge (use 'hg update' or check 'hg heads')"
+msgstr ""
-msgid "use 'hg status' to list changes"
-msgstr "använd 'hg status' för att visa modifikationer"
+msgid "outstanding uncommitted changes (use 'hg status' to list changes)"
+msgstr ""
#, python-format
msgid "outstanding uncommitted changes in subrepository '%s'"
@@ -18206,7 +15551,7 @@ msgid "Error:"
msgstr "Fel:"
msgid "Hint:"
-msgstr "Tips:"
+msgstr ""
msgid "Important:"
msgstr "Viktigt:"
@@ -18221,24 +15566,6 @@ msgid "Warning!"
msgstr "Varning!"
#, python-format
-msgid "parsing obsolete marker: unknown version %r"
-msgstr "tolkar förlegad-markering: okänd version %r"
-
-#, python-format
-msgid ""
-"parsing obsolete marker: metadata is too short, %d bytes expected, got %d"
-msgstr ""
-"tolkar förlegad-markering: metadata är för kort, %d bytes förväntades, fick "
-"%d"
-
-#, python-format
-msgid "unknown key: %r"
-msgstr "okänd nyckel: %r"
-
-msgid "unexpected old value"
-msgstr "oväntat gammalt värde"
-
-#, python-format
msgid "unexpected token: %s"
msgstr ""
@@ -18298,16 +15625,11 @@ msgstr ""
msgid "bad hunk #%d old text line %d"
msgstr ""
-#, python-format
-msgid "could not extract \"%s\" binary data"
-msgstr ""
-
-#, python-format
-msgid "could not decode \"%s\" binary patch: %s"
+msgid "could not extract binary patch"
msgstr ""
#, python-format
-msgid "\"%s\" length is %d bytes, should be %d"
+msgid "binary patch is %d bytes, not %d"
msgstr ""
#, python-format
@@ -18318,10 +15640,6 @@ msgid "undefined source and destination files"
msgstr ""
#, python-format
-msgid "failed to synchronize metadata for \"%s\""
-msgstr ""
-
-#, python-format
msgid "cannot create %s: destination already exists"
msgstr ""
@@ -18341,25 +15659,6 @@ msgid "patch failed to apply"
msgstr ""
#, python-format
-msgid "cannot %s; remote repository does not support the %r capability"
-msgstr "kan inte %s; fjärrarkivet har inte %r-förmågan"
-
-msgid "cannot change null revision phase"
-msgstr "kan inte ändra fas för null-revisionen"
-
-#, python-format
-msgid "ignoring inconsistent public root from remote: %s\n"
-msgstr ""
-
-#, python-format
-msgid "ignoring unexpected root from remote: %i %s\n"
-msgstr ""
-
-#, python-format
-msgid "phases.new-commit: not a valid phase name ('%s')"
-msgstr ""
-
-#, python-format
msgid "exited with status %d"
msgstr ""
@@ -18375,10 +15674,6 @@ msgid "adding branch\n"
msgstr ""
#, python-format
-msgid "error removing %s: %s\n"
-msgstr "fel vid radering av %s: %s\n"
-
-#, python-format
msgid "strip failed, full bundle stored in '%s'\n"
msgstr "avlägsning misslyckades, hela bunten lagrad i '%s'\n"
@@ -18387,7 +15682,7 @@ msgid "strip failed, partial bundle stored in '%s'\n"
msgstr "avlägsning misslyckades, partiell bunt lagrad i '%s'\n"
#, python-format
-msgid "revlog decompress error: %s"
+msgid "cannot %s; remote repository does not support the %r capability"
msgstr ""
#, python-format
@@ -18480,36 +15775,21 @@ msgid "author requires a string"
msgstr "author kräver en sträng"
msgid ""
-"``bisect(string)``\n"
-" Changesets marked in the specified bisect status:"
+"``bisected(string)``\n"
+" Changesets marked in the specified bisect state (good, bad, skip)."
msgstr ""
-msgid ""
-" - ``good``, ``bad``, ``skip``: csets explicitly marked as good/bad/skip\n"
-" - ``goods``, ``bads`` : csets topologicaly good/bad\n"
-" - ``range`` : csets taking part in the bisection\n"
-" - ``pruned`` : csets that are goods, bads or skipped\n"
-" - ``untested`` : csets whose fate is yet unknown\n"
-" - ``ignored`` : csets ignored due to DAG topology\n"
-" - ``current`` : the cset currently being bisected"
-msgstr ""
-
-#. i18n: "bisect" is a keyword
msgid "bisect requires a string"
msgstr "bisect kräver en sträng"
+msgid "invalid bisect state"
+msgstr "ogiltigt bisect-tillständ"
+
msgid ""
"``bookmark([name])``\n"
" The named bookmark or all bookmarks."
msgstr ""
-msgid ""
-" If `name` starts with `re:`, the remainder of the name is treated as\n"
-" a regular expression. To match a bookmark that actually starts with `re:"
-"`,\n"
-" use the prefix `literal:`."
-msgstr ""
-
#. i18n: "bookmark" is a keyword
msgid "bookmark takes one or no arguments"
msgstr "bookmark tar ett eller inga argument"
@@ -18518,10 +15798,6 @@ msgstr "bookmark tar ett eller inga argument"
msgid "the argument to bookmark must be a string"
msgstr "argumentet till bookmark måste vara en sträng"
-#, python-format
-msgid "no bookmarks exist that match '%s'"
-msgstr ""
-
msgid ""
"``branch(string or set)``\n"
" All changesets belonging to the given branch or the branches of the "
@@ -18530,13 +15806,6 @@ msgid ""
msgstr ""
msgid ""
-" If `string` starts with `re:`, the remainder of the name is treated as\n"
-" a regular expression. To match a branch that actually starts with `re:"
-"`,\n"
-" use the prefix `literal:`."
-msgstr ""
-
-msgid ""
"``children(set)``\n"
" Child changesets of changesets in set."
msgstr ""
@@ -18558,21 +15827,7 @@ msgstr ""
#. i18n: "contains" is a keyword
msgid "contains requires a pattern"
-msgstr "contains kräver ett mönster"
-
-msgid ""
-"``converted([id])``\n"
-" Changesets converted from the given identifier in the old repository if\n"
-" present, or all converted changesets if no identifier is specified."
-msgstr ""
-
-#. i18n: "converted" is a keyword
-msgid "converted takes one or no arguments"
-msgstr "converted tar ett eller inga argument"
-
-#. i18n: "converted" is a keyword
-msgid "converted requires a revision"
-msgstr "converted kräver en revision"
+msgstr "contain kräver ett mönster"
msgid ""
"``date(interval)``\n"
@@ -18598,91 +15853,31 @@ msgid ""
msgstr ""
msgid ""
-"``destination([set])``\n"
-" Changesets that were created by a graft, transplant or rebase "
-"operation,\n"
-" with the given revisions specified as the source. Omitting the optional "
-"set\n"
-" is the same as passing all()."
-msgstr ""
-
-msgid ""
-"``draft()``\n"
-" Changeset in draft phase."
-msgstr ""
-
-#. i18n: "draft" is a keyword
-msgid "draft takes no arguments"
-msgstr "draft tar inga argument"
-
-msgid ""
-"``extinct()``\n"
-" obsolete changeset with obsolete descendant only."
-msgstr ""
-
-#. i18n: "extinct" is a keyword
-msgid "extinct takes no arguments"
-msgstr "extinct tar inga argument"
-
-msgid ""
-"``extra(label, [value])``\n"
-" Changesets with the given label in the extra metadata, with the given\n"
-" optional value."
-msgstr ""
-
-msgid ""
-" If `value` starts with `re:`, the remainder of the value is treated as\n"
-" a regular expression. To match a value that actually starts with `re:`,\n"
-" use the prefix `literal:`."
-msgstr ""
-
-#. i18n: "extra" is a keyword
-msgid "extra takes at least 1 and at most 2 arguments"
-msgstr "extra tar minst 1 och som mest 2 argument"
-
-#. i18n: "extra" is a keyword
-msgid "first argument to extra must be a string"
-msgstr "första argumentet till extra måste vara en sträng"
-
-#. i18n: "extra" is a keyword
-msgid "second argument to extra must be a string"
-msgstr "andra argumentet till extra måste vara en sträng"
-
-msgid ""
"``filelog(pattern)``\n"
" Changesets connected to the specified filelog."
msgstr ""
-msgid ""
-" For performance reasons, ``filelog()`` does not show every changeset\n"
-" that affects the requested file(s). See :hg:`help log` for details. For\n"
-" a slower, more accurate result, use ``file()``."
-msgstr ""
-
-#. i18n: "filelog" is a keyword
msgid "filelog requires a pattern"
msgstr "filelog kräver ett mönster"
msgid ""
-"``first(set, [n])``\n"
-" An alias for limit()."
-msgstr ""
-
-#, python-format
-msgid "%s takes no arguments or a filename"
-msgstr "%s tar inga argument eller ett filnamn"
-
-#, python-format
-msgid "%s expected a filename"
-msgstr "%s förväntade sig ett filnamn"
-
-msgid ""
"``follow([file])``\n"
" An alias for ``::.`` (ancestors of the working copy's first parent).\n"
" If a filename is specified, the history of the given file is followed,\n"
" including copies."
msgstr ""
+#. i18n: "follow" is a keyword
+msgid "follow takes no arguments or a filename"
+msgstr "follow tar inga argument eller ett filnamn"
+
+msgid "follow expected a filename"
+msgstr "follow förväntade sig ett filnamn"
+
+#. i18n: "follow" is a keyword
+msgid "follow takes no arguments"
+msgstr "follow tar inga argument"
+
msgid ""
"``all()``\n"
" All changesets, the same as ``0:tip``."
@@ -18707,37 +15902,11 @@ msgstr "grep kräver en sträng"
msgid "invalid match pattern: %s"
msgstr "ogiltigt träffmönster: %s"
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles requires at least one argument"
-msgstr "_matchfiles kräver minst ett argument"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles requires string arguments"
-msgstr "_matchfiles kräver strängargument"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles expected at most one revision"
-msgstr "_matchfiles förväntade sig som mest en revision"
-
-#. i18n: "_matchfiles" is a keyword
-msgid "_matchfiles expected at most one default mode"
-msgstr "_matchfiles förvändate sig som mest ett standardläge"
-
-#. i18n: "_matchfiles" is a keyword
-#, python-format
-msgid "invalid _matchfiles prefix: %s"
-msgstr "ogiltigt _matchfiles-prefix: %s"
-
msgid ""
"``file(pattern)``\n"
" Changesets affecting files matched by pattern."
msgstr ""
-msgid ""
-" For a faster but less accurate result, consider using ``filelog()``\n"
-" instead."
-msgstr ""
-
#. i18n: "file" is a keyword
msgid "file requires a pattern"
msgstr "file kräver ett mönster"
@@ -18767,13 +15936,13 @@ msgid "keyword requires a string"
msgstr "keyword kräver en sträng"
msgid ""
-"``limit(set, [n])``\n"
-" First n members of set, defaulting to 1."
+"``limit(set, n)``\n"
+" First n members of set."
msgstr ""
#. i18n: "limit" is a keyword
-msgid "limit requires one or two arguments"
-msgstr "limit kräver ett eller två argument"
+msgid "limit requires two arguments"
+msgstr "limit kräver två argument"
#. i18n: "limit" is a keyword
msgid "limit requires a number"
@@ -18784,13 +15953,13 @@ msgid "limit expects a number"
msgstr "limit förväntar sig ett nummer"
msgid ""
-"``last(set, [n])``\n"
-" Last n members of set, defaulting to 1."
+"``last(set, n)``\n"
+" Last n members of set."
msgstr ""
#. i18n: "last" is a keyword
-msgid "last requires one or two arguments"
-msgstr "last kräver ett eller två argument"
+msgid "last requires two arguments"
+msgstr "last kräver två argument"
#. i18n: "last" is a keyword
msgid "last requires a number"
@@ -18842,28 +16011,6 @@ msgid "id requires a string"
msgstr "id kräver en sträng"
msgid ""
-"``obsolete()``\n"
-" Mutable changeset with a newer version."
-msgstr ""
-
-#. i18n: "obsolete" is a keyword
-msgid "obsolete takes no arguments"
-msgstr "obsolete tar inga argument"
-
-msgid ""
-"``origin([set])``\n"
-" Changesets that were specified as a source for the grafts, transplants "
-"or\n"
-" rebases that created the given revisions. Omitting the optional set is "
-"the\n"
-" same as passing all(). If a changeset created by these operations is "
-"itself\n"
-" specified as a source for one of these operations, only the source "
-"changeset\n"
-" for the first operation is selected."
-msgstr ""
-
-msgid ""
"``outgoing([path])``\n"
" Changesets not found in the specified destination repository, or the\n"
" default push location."
@@ -18903,40 +16050,6 @@ msgid ""
msgstr ""
msgid ""
-" If any of specified revisions is not present in the local repository,\n"
-" the query is normally aborted. But this predicate allows the query\n"
-" to continue even in such cases."
-msgstr ""
-
-msgid ""
-"``public()``\n"
-" Changeset in public phase."
-msgstr ""
-
-#. i18n: "public" is a keyword
-msgid "public takes no arguments"
-msgstr "public tar inga argument"
-
-msgid ""
-"``remote([id [,path]])``\n"
-" Local revision that corresponds to the given identifier in a\n"
-" remote repository, if present. Here, the '.' identifier is a\n"
-" synonym for the current local branch."
-msgstr ""
-
-#. i18n: "remote" is a keyword
-msgid "remote takes one, two or no arguments"
-msgstr "remote tar ett, två eller inga argument"
-
-#. i18n: "remote" is a keyword
-msgid "remote requires a string id"
-msgstr "remote kräver ett sträng-id"
-
-#. i18n: "remote" is a keyword
-msgid "remote requires a repository path"
-msgstr "remote kräver en arkivsökväg"
-
-msgid ""
"``removes(pattern)``\n"
" Changesets which remove files matching pattern."
msgstr ""
@@ -18963,75 +16076,16 @@ msgid "rev expects a number"
msgstr "rev förväntar sig ett nummer"
msgid ""
-"``matching(revision [, field])``\n"
-" Changesets in which a given set of fields match the set of fields in "
-"the\n"
-" selected revision or set."
-msgstr ""
-
-msgid ""
-" To match more than one field pass the list of fields to match separated\n"
-" by spaces (e.g. ``author description``)."
-msgstr ""
-
-msgid ""
-" Valid fields are most regular revision fields and some special fields."
-msgstr ""
-
-msgid ""
-" Regular revision fields are ``description``, ``author``, ``branch``,\n"
-" ``date``, ``files``, ``phase``, ``parents``, ``substate``, ``user``\n"
-" and ``diff``.\n"
-" Note that ``author`` and ``user`` are synonyms. ``diff`` refers to the\n"
-" contents of the revision. Two revisions matching their ``diff`` will\n"
-" also match their ``files``."
-msgstr ""
-
-msgid ""
-" Special fields are ``summary`` and ``metadata``:\n"
-" ``summary`` matches the first line of the description.\n"
-" ``metadata`` is equivalent to matching ``description user date``\n"
-" (i.e. it matches the main metadata fields)."
-msgstr ""
-
-msgid ""
-" ``metadata`` is the default field which is used when no fields are\n"
-" specified. You can match more than one field at a time."
-msgstr ""
-
-#. i18n: "matching" is a keyword
-msgid "matching takes 1 or 2 arguments"
-msgstr "matching tar 1 eller 2 argument"
-
-#. i18n: "matching" is a keyword
-msgid "matching requires a string as its second argument"
-msgstr "matching kräver en sträng som sitt andra argument"
-
-#. i18n: "matching" is a keyword
-#, python-format
-msgid "unexpected field name passed to matching: %s"
-msgstr "oväntat fältnamn skickat till matching: %s"
-
-msgid ""
"``reverse(set)``\n"
" Reverse order of set."
msgstr ""
msgid ""
"``roots(set)``\n"
-" Changesets in set with no parent changeset in set."
+" Changesets with no parent changeset in set."
msgstr ""
msgid ""
-"``secret()``\n"
-" Changeset in secret phase."
-msgstr ""
-
-#. i18n: "secret" is a keyword
-msgid "secret takes no arguments"
-msgstr "secret tar inga argument"
-
-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."
@@ -19052,7 +16106,6 @@ msgstr ""
msgid "sort requires one or two arguments"
msgstr "sort kräver ett eller två argument"
-#. i18n: "sort" is a keyword
msgid "sort spec must be a string"
msgstr "sort-spec måste vara en sträng"
@@ -19060,10 +16113,6 @@ msgstr "sort-spec måste vara en sträng"
msgid "unknown sort key %r"
msgstr "okänd sorteringsnyckel %r"
-#, python-format
-msgid "invalid regular expression: %s"
-msgstr "ogiltigt reguljärt uttryck: %s"
-
msgid ""
"``tag([name])``\n"
" The specified tag by name, or all tagged revisions if no name is given."
@@ -19077,31 +16126,11 @@ msgstr "tag tar ett eller inga argument"
msgid "the argument to tag must be a string"
msgstr "argumentet till tag måste vara en sträng"
-#, python-format
-msgid "no tags exist that match '%s'"
-msgstr "inga märken finns som matchar '%s'"
-
-msgid ""
-"``unstable()``\n"
-" Unstable changesets are non-obsolete with obsolete descendants."
-msgstr ""
-
-#. i18n: "unstable" is a keyword
-msgid "unstable takes no arguments"
-msgstr "unstable tar inga argument"
-
msgid ""
"``user(string)``\n"
" User name contains string. The match is case-insensitive."
msgstr ""
-msgid ""
-" If `string` starts with `re:`, the remainder of the string is treated "
-"as\n"
-" a regular expression. To match a user that actually contains `re:`, use\n"
-" the prefix `literal:`."
-msgstr ""
-
msgid "can't negate that"
msgstr "kan inte negera det"
@@ -19109,10 +16138,6 @@ msgid "not a symbol"
msgstr "inte en symbol"
#, python-format
-msgid "infinite expansion of revset alias \"%s\" detected"
-msgstr ""
-
-#, python-format
msgid "invalid number of arguments: %s"
msgstr "felaktigt antal argument: %s"
@@ -19120,10 +16145,6 @@ msgid "empty query"
msgstr "tom fråga"
#, python-format
-msgid "no changes found (ignored %d secret changesets)\n"
-msgstr "inga ändringar hittades (ignorerade %d hemliga ändringar)\n"
-
-#, python-format
msgid "ui.portablefilenames value is invalid ('%s')"
msgstr ""
@@ -19140,7 +16161,7 @@ msgid "path contains illegal component: %s"
msgstr ""
#, python-format
-msgid "path '%s' is inside nested repo %r"
+msgid "path %r is inside nested repo %r"
msgstr ""
#, python-format
@@ -19151,9 +16172,6 @@ msgstr ""
msgid "could not symlink to %r: %s"
msgstr ""
-msgid "empty revision range"
-msgstr "tomt revisionsset"
-
#, python-format
msgid "recording removal of %s as rename to %s (%d%% similar)\n"
msgstr ""
@@ -19173,14 +16191,8 @@ msgstr "okänt arkivformat: kräver att '%s' fungerar (uppgradera Mercurial)"
msgid "searching for changes\n"
msgstr "söker efter ändringar\n"
-msgid "all local heads known remotely\n"
-msgstr ""
-
-msgid "sampling from both directions\n"
-msgstr ""
-
msgid "queries"
-msgstr "frågar"
+msgstr "frågor"
msgid "searching"
msgstr "söker"
@@ -19220,16 +16232,13 @@ msgstr ""
msgid "no suitable response from remote hg"
msgstr ""
+msgid "remote: "
+msgstr "fjärr: "
+
#, python-format
msgid "push refused: %s"
msgstr ""
-msgid "ssl connection failed"
-msgstr "ssl-anslutning misslyckades"
-
-msgid "Python SSL support not found"
-msgstr "Pythons SSL-stöd hittades inte"
-
msgid "certificate checking requires Python 2.6"
msgstr "certifikatkontroll kräver Python 2.6"
@@ -19251,37 +16260,12 @@ msgid "could not find web.cacerts: %s"
msgstr "kunde inte hitta web.cacerts: %s"
#, python-format
-msgid "host fingerprint for %s can't be verified (Python too old)"
-msgstr ""
-
-#, python-format
-msgid "warning: certificate for %s can't be verified (Python too old)\n"
-msgstr "varning: certificatet för %s kan inte verifieras (för gammal Python)\n"
-
-#, python-format
-msgid "%s ssl connection error"
-msgstr ""
-
-#, python-format
-msgid "%s certificate error: no certificate received"
-msgstr "%s certifikatfel: inget certifikat mottaget"
-
-#, python-format
-msgid "certificate for %s has unexpected fingerprint %s"
-msgstr "certifikatet för %s har oväntat fingeravtryck %s"
-
-msgid "check hostfingerprint configuration"
-msgstr "kontrollera hostfingerprint-konfiguration"
+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 "%s certificate error: %s"
-msgstr "%s certifikatfel: %s"
-
-#, python-format
-msgid "configure hostfingerprint %s or use --insecure to connect insecurely"
-msgstr ""
-"konfigurera hostfingerprint %s eller använd --insecure för att ansluta "
-"osäkert"
+msgid "invalid certificate for %s with fingerprint %s"
+msgstr "ogiltigt certifikat för %s med fingeravtrycket %s"
#, python-format
msgid ""
@@ -19292,6 +16276,14 @@ msgstr ""
"inställningen för hostfingerprints eller web.cacerts)\n"
#, python-format
+msgid "host fingerprint for %s can't be verified (Python too old)"
+msgstr ""
+
+#, python-format
+msgid "warning: certificate for %s can't be verified (Python too old)\n"
+msgstr "varning: certificatet för %s kan inte verifieras (för gammal Python)\n"
+
+#, python-format
msgid "'%s' does not appear to be an hg repository"
msgstr "'%s' verkar inte vara ett hg-arkiv"
@@ -19313,17 +16305,13 @@ msgstr ""
msgid "subrepo spec file %s not found"
msgstr ""
-#, python-format
-msgid "invalid subrepository revision specifier in .hgsubstate line %d"
+msgid "missing ] in subrepo source"
msgstr ""
#, python-format
msgid "bad subrepository pattern in %s: %s"
msgstr ""
-msgid "missing ] in subrepo source"
-msgstr ""
-
#, python-format
msgid ""
" subrepository sources for %s differ\n"
@@ -19389,36 +16377,16 @@ msgstr "drar underarkivet %s från %s\n"
msgid "pushing subrepo %s to %s\n"
msgstr "trycker underarkivet %s till %s\n"
-#, python-format
-msgid "reverting subrepo %s\n"
-msgstr "återställer underarkivet %s\n"
-
-#, python-format
-msgid "'svn' executable not found for subrepo '%s'"
-msgstr ""
-
msgid "cannot retrieve svn tool version"
msgstr "kan inte hämta version på svn-verktyg"
msgid "cannot commit svn externals"
msgstr ""
-msgid "cannot commit missing svn entries"
-msgstr ""
-
-msgid "failed to commit svn changes"
-msgstr "kunde inte arkivera svn-ändringar"
-
#, python-format
msgid "not removing repo %s because it has changes.\n"
msgstr "raderar inte arkivet %s eftersom den har ändringar.\n"
-msgid "cannot retrieve git version"
-msgstr "kan inte hämta git-version"
-
-msgid "git subrepo requires at least 1.6.0 or later"
-msgstr "git-underarkiv kräver minst 1.6.0 eller senare"
-
#, python-format
msgid "revision %s does not exist in subrepo %s\n"
msgstr "revisionen %s existerar inte i underarkivet %s\n"
@@ -19445,14 +16413,14 @@ msgstr "trycker grenen %s från underarkivet %s\n"
#, python-format
msgid ""
"no branch checked out in subrepo %s\n"
-"cannot push revision %s\n"
+"cannot push revision %s"
msgstr ""
"ingen gren uthämtar i underarkivet %s\n"
-"kan inte trycka revison %s\n"
+"kan inte trycka revison %s"
#, python-format
msgid "%s, line %s: %s\n"
-msgstr "%s, rad %s: %s\n"
+msgstr ""
msgid "cannot parse entry"
msgstr ""
@@ -19544,26 +16512,7 @@ msgid ""
" XML entities."
msgstr ""
-msgid ""
-":person: Any text. Returns the name before an email address,\n"
-" interpreting it as per RFC 5322."
-msgstr ""
-
-msgid ""
-" >>> person('foo@bar')\n"
-" 'foo'\n"
-" >>> person('Foo Bar <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo Bar\" <foo@bar>')\n"
-" 'Foo Bar'\n"
-" >>> person('\"Foo \"buz\" Bar\" <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> # The following are invalid, but do exist in real-life\n"
-" ...\n"
-" >>> person('Foo \"buz\" Bar <foo@bar>')\n"
-" 'Foo \"buz\" Bar'\n"
-" >>> person('\"Foo Bar <foo@bar>')\n"
-" 'Foo Bar'"
+msgid ":person: Any text. Returns the text before an email address."
msgstr ""
msgid ""
@@ -19581,13 +16530,6 @@ msgid ""
" i.e. a 12 hexadecimal digit string."
msgstr ""
-msgid ""
-":shortbisect: Any text. Treats `text` as a bisection status, and\n"
-" returns a single-character representing the status (G: good, B: bad,\n"
-" S: skipped, U: untested, I: ignored). Returns single space if `text`\n"
-" is not a valid bisection status."
-msgstr ""
-
msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
msgstr ""
@@ -19614,20 +16556,12 @@ msgid ""
" \"foo bar\" becomes \"foo%20bar\"."
msgstr ""
-msgid ""
-":user: Any text. Returns a short representation of a user name or email\n"
-" address."
-msgstr ""
-
-msgid ":emailuser: Any text. Returns the user portion of an email address."
+msgid ":user: Any text. Returns the user portion of an email address."
msgstr ""
msgid ":author: String. The unmodified author of the changeset."
msgstr ""
-msgid ":bisect: String. The changeset bisection status."
-msgstr ""
-
msgid ""
":branch: String. The name of the branch on which the changeset was\n"
" committed."
@@ -19695,25 +16629,12 @@ msgid ""
" digit string."
msgstr ""
-msgid ":phase: String. The changeset phase name."
-msgstr ""
-
-msgid ":phaseidx: Integer. The changeset phase index."
-msgstr ""
-
msgid ":rev: Integer. The repository-local changeset revision number."
msgstr ""
msgid ":tags: List of strings. Any tags associated with the changeset."
msgstr ""
-msgid ""
-":parents: List of strings. The parents of the changeset in \"rev:node\"\n"
-" format. If the changeset has only one \"natural\" parent (the "
-"predecessor\n"
-" revision) nothing is shown."
-msgstr ""
-
#, python-format
msgid "unknown method '%s'"
msgstr "okänd metod '%s'"
@@ -19767,12 +16688,12 @@ msgid "already have changeset "
msgstr "har redan ändringen "
#, python-format
-msgid "not trusting file %s from untrusted user %s, group %s\n"
-msgstr "litar inte på filen %s från opålitlig användare %s, grupp %s\n"
+msgid "Not trusting file %s from untrusted user %s, group %s\n"
+msgstr "Litar inte på filen %s från opålitlig användare %s, grupp %s\n"
#, python-format
-msgid "ignored: %s\n"
-msgstr "ignorerad: %s\n"
+msgid "Ignored: %s\n"
+msgstr ""
#, python-format
msgid "(deprecated '%%' in path %s=%s from %s)\n"
@@ -19790,8 +16711,8 @@ msgid "enter a commit username:"
msgstr ""
#, python-format
-msgid "no username found, using '%s' instead\n"
-msgstr "inget användarnamn hittades, använder '%s' istället\n"
+msgid "No username found, using '%s' instead\n"
+msgstr "Inget användarnamn hittades, använder '%s' istället\n"
msgid "no username supplied (see \"hg help config\")"
msgstr "inget användarnamn angivet (se \"hg help config\")"
@@ -19807,7 +16728,10 @@ msgid "unrecognized response\n"
msgstr ""
msgid "password: "
-msgstr "lösenord: "
+msgstr ""
+
+msgid "edit failed"
+msgstr ""
msgid "http authorization required"
msgstr "http-autenticiering krävs"
diff --git a/mercurial/__version__.py b/mercurial/__version__.py
index 74c95c5..a0ed182 100644
--- a/mercurial/__version__.py
+++ b/mercurial/__version__.py
@@ -1,2 +1,2 @@
# this file is autogenerated by setup.py
-version = "2.3"
+version = "1.9.3"
diff --git a/mercurial/archival.py b/mercurial/archival.py
index 8eddf29..3f92f4c 100644
--- a/mercurial/archival.py
+++ b/mercurial/archival.py
@@ -7,7 +7,6 @@
from i18n import _
from node import hex
-import match as matchmod
import cmdutil
import scmutil, util, encoding
import cStringIO, os, tarfile, time, zipfile
@@ -196,7 +195,7 @@ class fileit(object):
return
f = self.opener(name, "w", atomictemp=True)
f.write(data)
- f.close()
+ f.rename()
destfile = os.path.join(self.basedir, name)
os.chmod(destfile, mode)
@@ -235,6 +234,8 @@ def archive(repo, dest, node, kind, decode=True, matchfn=None,
prefix = tidyprefix(dest, kind, prefix)
def write(name, mode, islink, getdata):
+ if matchfn and not matchfn(name):
+ return
data = getdata()
if decode:
data = repo.wwritedata(name, data)
@@ -264,18 +265,11 @@ def archive(repo, dest, node, kind, decode=True, matchfn=None,
return base + tags
- name = '.hg_archival.txt'
- if not matchfn or matchfn(name):
- write(name, 0644, False, metadata)
+ write('.hg_archival.txt', 0644, False, metadata)
- if matchfn:
- files = [f for f in ctx.manifest().keys() if matchfn(f)]
- else:
- files = ctx.manifest().keys()
- files.sort()
- total = len(files)
+ total = len(ctx.manifest())
repo.ui.progress(_('archiving'), 0, unit=_('files'), total=total)
- for i, f in enumerate(files):
+ for i, f in enumerate(ctx):
ff = ctx.flags(f)
write(f, 'x' in ff and 0755 or 0644, 'l' in ff, ctx[f].data)
repo.ui.progress(_('archiving'), i + 1, item=f,
@@ -285,7 +279,6 @@ def archive(repo, dest, node, kind, decode=True, matchfn=None,
if subrepos:
for subpath in ctx.substate:
sub = ctx.sub(subpath)
- submatch = matchmod.narrowmatcher(subpath, matchfn)
- sub.archive(repo.ui, archiver, prefix, submatch)
+ sub.archive(repo.ui, archiver, prefix)
archiver.done()
diff --git a/mercurial/base85.c b/mercurial/base85.c
index 0d45da2..df96629 100644
--- a/mercurial/base85.c
+++ b/mercurial/base85.c
@@ -9,7 +9,6 @@
Largely based on git's implementation
*/
-#define PY_SSIZE_T_CLEAN
#include <Python.h>
#include "util.h"
@@ -34,7 +33,7 @@ b85encode(PyObject *self, PyObject *args)
const unsigned char *text;
PyObject *out;
char *dst;
- Py_ssize_t len, olen, i;
+ int len, olen, i;
unsigned int acc, val, ch;
int pad = 0;
@@ -82,8 +81,7 @@ b85decode(PyObject *self, PyObject *args)
PyObject *out;
const char *text;
char *dst;
- Py_ssize_t len, i, j, olen, cap;
- int c;
+ int len, i, j, olen, c, cap;
unsigned int acc;
if (!PyArg_ParseTuple(args, "s#", &text, &len))
@@ -111,8 +109,7 @@ b85decode(PyObject *self, PyObject *args)
if (c < 0)
return PyErr_Format(
PyExc_ValueError,
- "bad base85 character at position %d",
- (int)i);
+ "Bad base85 character at position %d", i);
acc = acc * 85 + c;
}
if (i++ < len)
@@ -121,15 +118,13 @@ b85decode(PyObject *self, PyObject *args)
if (c < 0)
return PyErr_Format(
PyExc_ValueError,
- "bad base85 character at position %d",
- (int)i);
+ "Bad base85 character at position %d", i);
/* overflow detection: 0xffffffff == "|NsC0",
* "|NsC" == 0x03030303 */
if (acc > 0x03030303 || (acc *= 85) > 0xffffffff - c)
return PyErr_Format(
PyExc_ValueError,
- "bad base85 sequence at position %d",
- (int)i);
+ "Bad base85 sequence at position %d", i);
acc += c;
}
diff --git a/mercurial/bdiff.c b/mercurial/bdiff.c
index be38b53..9d39d7e 100644
--- a/mercurial/bdiff.c
+++ b/mercurial/bdiff.c
@@ -9,17 +9,47 @@
Based roughly on Python difflib
*/
-#define PY_SSIZE_T_CLEAN
#include <Python.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
+#if defined __hpux || defined __SUNPRO_C || defined _AIX
+#define inline
+#endif
+
+#ifdef __linux
+#define inline __inline
+#endif
+
+#ifdef _WIN32
+#ifdef _MSC_VER
+#define inline __inline
+typedef unsigned long uint32_t;
+#else
+#include <stdint.h>
+#endif
+static uint32_t htonl(uint32_t x)
+{
+ return ((x & 0x000000ffUL) << 24) |
+ ((x & 0x0000ff00UL) << 8) |
+ ((x & 0x00ff0000UL) >> 8) |
+ ((x & 0xff000000UL) >> 24);
+}
+#else
+#include <sys/types.h>
+#if defined __BEOS__ && !defined __HAIKU__
+#include <ByteOrder.h>
+#else
+#include <arpa/inet.h>
+#endif
+#include <inttypes.h>
+#endif
+
#include "util.h"
struct line {
- int hash, n, e;
- Py_ssize_t len;
+ int hash, len, n, e;
const char *l;
};
@@ -33,7 +63,7 @@ struct hunk {
struct hunk *next;
};
-static int splitlines(const char *a, Py_ssize_t len, struct line **lr)
+static int splitlines(const char *a, int len, struct line **lr)
{
unsigned hash;
int i;
@@ -336,18 +366,16 @@ nomem:
static PyObject *bdiff(PyObject *self, PyObject *args)
{
- char *sa, *sb, *rb;
+ char *sa, *sb;
PyObject *result = NULL;
struct line *al, *bl;
struct hunk l, *h;
- int an, bn, count;
- Py_ssize_t len = 0, la, lb;
- PyThreadState *_save;
+ char encode[12], *rb;
+ int an, bn, len = 0, la, lb, count;
if (!PyArg_ParseTuple(args, "s#s#:bdiff", &sa, &la, &sb, &lb))
return NULL;
- _save = PyEval_SaveThread();
an = splitlines(sa, la, &al);
bn = splitlines(sb, lb, &bl);
if (!al || !bl)
@@ -366,8 +394,6 @@ static PyObject *bdiff(PyObject *self, PyObject *args)
la = h->a2;
lb = h->b2;
}
- PyEval_RestoreThread(_save);
- _save = NULL;
result = PyBytes_FromStringAndSize(NULL, len);
@@ -381,18 +407,10 @@ static PyObject *bdiff(PyObject *self, PyObject *args)
for (h = l.next; h; h = h->next) {
if (h->a1 != la || h->b1 != lb) {
len = bl[h->b1].l - bl[lb].l;
-
-#define checkputbe32(__x, __c) \
- if (__x > UINT_MAX) { \
- PyErr_SetString(PyExc_ValueError, \
- "bdiff: value too large for putbe32"); \
- goto nomem; \
- } \
- putbe32((uint32_t)(__x), __c);
-
- checkputbe32(al[la].l - al->l, rb);
- checkputbe32(al[h->a1].l - al->l, rb + 4);
- checkputbe32(len, rb + 8);
+ *(uint32_t *)(encode) = htonl(al[la].l - al->l);
+ *(uint32_t *)(encode + 4) = htonl(al[h->a1].l - al->l);
+ *(uint32_t *)(encode + 8) = htonl(len);
+ memcpy(rb, encode, 12);
memcpy(rb + 12, bl[lb].l, len);
rb += 12 + len;
}
@@ -401,63 +419,17 @@ static PyObject *bdiff(PyObject *self, PyObject *args)
}
nomem:
- if (_save)
- PyEval_RestoreThread(_save);
free(al);
free(bl);
freehunks(l.next);
return result ? result : PyErr_NoMemory();
}
-/*
- * If allws != 0, remove all whitespace (' ', \t and \r). Otherwise,
- * reduce whitespace sequences to a single space and trim remaining whitespace
- * from end of lines.
- */
-static PyObject *fixws(PyObject *self, PyObject *args)
-{
- PyObject *s, *result = NULL;
- char allws, c;
- const char *r;
- Py_ssize_t i, rlen, wlen = 0;
- char *w;
-
- if (!PyArg_ParseTuple(args, "Sb:fixws", &s, &allws))
- return NULL;
- r = PyBytes_AsString(s);
- rlen = PyBytes_Size(s);
-
- w = (char *)malloc(rlen ? rlen : 1);
- if (!w)
- goto nomem;
-
- for (i = 0; i != rlen; i++) {
- c = r[i];
- if (c == ' ' || c == '\t' || c == '\r') {
- if (!allws && (wlen == 0 || w[wlen - 1] != ' '))
- w[wlen++] = ' ';
- } else if (c == '\n' && !allws
- && wlen > 0 && w[wlen - 1] == ' ') {
- w[wlen - 1] = '\n';
- } else {
- w[wlen++] = c;
- }
- }
-
- result = PyBytes_FromStringAndSize(w, wlen);
-
-nomem:
- free(w);
- return result ? result : PyErr_NoMemory();
-}
-
-
static char mdiff_doc[] = "Efficient binary diff.";
static PyMethodDef methods[] = {
{"bdiff", bdiff, METH_VARARGS, "calculate a binary diff\n"},
{"blocks", blocks, METH_VARARGS, "find a list of matching lines\n"},
- {"fixws", fixws, METH_VARARGS, "normalize diff whitespaces\n"},
{NULL, NULL}
};
diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py
index a7cd854..a017678 100644
--- a/mercurial/bookmarks.py
+++ b/mercurial/bookmarks.py
@@ -26,17 +26,11 @@ def read(repo):
bookmarks = {}
try:
for line in repo.opener('bookmarks'):
- line = line.strip()
- if not line:
- continue
- if ' ' not in line:
- repo.ui.warn(_('malformed line in .hg/bookmarks: %r\n') % line)
- continue
- sha, refspec = line.split(' ', 1)
+ sha, refspec = line.strip().split(' ', 1)
refspec = encoding.tolocal(refspec)
try:
bookmarks[refspec] = repo.changelog.lookup(sha)
- except LookupError:
+ except error.RepoLookupError:
pass
except IOError, inst:
if inst.errno != errno.ENOENT:
@@ -90,7 +84,7 @@ def write(repo):
file = repo.opener('bookmarks', 'w', atomictemp=True)
for refspec, node in refs.iteritems():
file.write("%s %s\n" % (hex(node), encoding.fromlocal(refspec)))
- file.close()
+ file.rename()
# touch 00changelog.i so hgweb reloads bookmarks (no lock needed)
try:
@@ -121,63 +115,42 @@ def setcurrent(repo, mark):
try:
file = repo.opener('bookmarks.current', 'w', atomictemp=True)
file.write(encoding.fromlocal(mark))
- file.close()
+ file.rename()
finally:
wlock.release()
repo._bookmarkcurrent = mark
-def unsetcurrent(repo):
- wlock = repo.wlock()
- try:
- try:
- util.unlink(repo.join('bookmarks.current'))
- repo._bookmarkcurrent = None
- except OSError, inst:
- if inst.errno != errno.ENOENT:
- raise
- finally:
- wlock.release()
-
def updatecurrentbookmark(repo, oldnode, curbranch):
try:
- return update(repo, oldnode, repo.branchtip(curbranch))
- except error.RepoLookupError:
+ update(repo, oldnode, repo.branchtags()[curbranch])
+ except KeyError:
if curbranch == "default": # no default branch!
- return update(repo, oldnode, repo.lookup("tip"))
+ update(repo, oldnode, repo.lookup("tip"))
else:
raise util.Abort(_("branch %s not found") % curbranch)
def update(repo, parents, node):
marks = repo._bookmarks
update = False
- cur = repo._bookmarkcurrent
- if not cur:
- return False
-
- toupdate = [b for b in marks if b.split('@', 1)[0] == cur.split('@', 1)[0]]
- for mark in toupdate:
- if mark and marks[mark] in parents:
- old = repo[marks[mark]]
- new = repo[node]
- if new in old.descendants() and mark == cur:
- marks[cur] = new.node()
- update = True
- if mark != cur:
- del marks[mark]
+ mark = repo._bookmarkcurrent
+ if mark and marks[mark] in parents:
+ old = repo[marks[mark]]
+ new = repo[node]
+ if new in old.descendants():
+ marks[mark] = new.node()
+ update = True
if update:
- repo._writebookmarks(marks)
- return update
+ write(repo)
def listbookmarks(repo):
# We may try to list bookmarks on a repo type that does not
# support it (e.g., statichttprepository).
- marks = getattr(repo, '_bookmarks', {})
+ if not hasattr(repo, '_bookmarks'):
+ return {}
d = {}
- for k, v in marks.iteritems():
- # don't expose local divergent bookmarks
- if '@' not in k or k.endswith('@'):
- d[k] = hex(v)
+ for k, v in repo._bookmarks.iteritems():
+ d[k] = hex(v)
return d
def pushbookmark(repo, key, old, new):
@@ -197,7 +170,7 @@ def pushbookmark(repo, key, old, new):
finally:
w.release()
-def updatefromremote(ui, repo, remote, path):
+def updatefromremote(ui, repo, remote):
ui.debug("checking for updated bookmarks\n")
rb = remote.listkeys('bookmarks')
changed = False
@@ -214,26 +187,8 @@ def updatefromremote(ui, repo, remote, path):
changed = True
ui.status(_("updating bookmark %s\n") % k)
else:
- # find a unique @ suffix
- for x in range(1, 100):
- n = '%s@%d' % (k, x)
- if n not in repo._bookmarks:
- break
- # try to use an @pathalias suffix
- # if an @pathalias already exists, we overwrite (update) it
- for p, u in ui.configitems("paths"):
- if path == u:
- n = '%s@%s' % (k, p)
-
- repo._bookmarks[n] = cr.node()
- changed = True
- ui.warn(_("divergent bookmark %s stored as %s\n") % (k, n))
- elif rb[k] in repo:
- # add remote bookmarks for changes we already have
- repo._bookmarks[k] = repo[rb[k]].node()
- changed = True
- ui.status(_("adding remote bookmark %s\n") % k)
-
+ ui.warn(_("not updating divergent"
+ " bookmark %s\n") % k)
if changed:
write(repo)
@@ -245,8 +200,7 @@ def diff(ui, repo, remote):
diff = sorted(set(rmarks) - set(lmarks))
for k in diff:
- mark = ui.debugflag and rmarks[k] or rmarks[k][:12]
- ui.write(" %-25s %s\n" % (k, mark))
+ ui.write(" %-25s %s\n" % (k, rmarks[k][:12]))
if len(diff) <= 0:
ui.status(_("no changed bookmarks found\n"))
diff --git a/mercurial/bundlerepo.py b/mercurial/bundlerepo.py
index fc78b7a..9769fcb 100644
--- a/mercurial/bundlerepo.py
+++ b/mercurial/bundlerepo.py
@@ -14,7 +14,7 @@ were part of the actual repository.
from node import nullid
from i18n import _
import os, tempfile, shutil
-import changegroup, util, mdiff, discovery, cmdutil
+import changegroup, util, mdiff, discovery
import localrepo, changelog, manifest, filelog, revlog, error
class bundlerevlog(revlog.revlog):
@@ -54,7 +54,7 @@ class bundlerevlog(revlog.revlog):
continue
for p in (p1, p2):
- if p not in self.nodemap:
+ if not p in self.nodemap:
raise error.LookupError(p, self.indexfile,
_("unknown parent"))
# start, size, full unc. size, base (unused), link, p1, p2, node
@@ -95,23 +95,15 @@ class bundlerevlog(revlog.revlog):
return mdiff.textdiff(self.revision(self.node(rev1)),
self.revision(self.node(rev2)))
- def revision(self, nodeorrev):
- """return an uncompressed revision of a given node or revision
- number.
- """
- if isinstance(nodeorrev, int):
- rev = nodeorrev
- node = self.node(rev)
- else:
- node = nodeorrev
- rev = self.rev(node)
-
+ def revision(self, node):
+ """return an uncompressed revision of a given"""
if node == nullid:
return ""
text = None
chain = []
iter_node = node
+ rev = self.rev(iter_node)
# reconstruct the revision if it is from a changegroup
while self.inbundle(rev):
if self._cache and self._cache[0] == iter_node:
@@ -167,10 +159,6 @@ class bundlefilelog(bundlerevlog, filelog.filelog):
def _file(self, f):
self._repo.file(f)
-class bundlepeer(localrepo.localpeer):
- def canpush(self):
- return False
-
class bundlerepository(localrepo.localrepository):
def __init__(self, ui, path, bundlename):
self._tempparent = None
@@ -180,7 +168,6 @@ class bundlerepository(localrepo.localrepository):
self._tempparent = tempfile.mkdtemp()
localrepo.instance(ui, self._tempparent, 1)
localrepo.localrepository.__init__(self, ui, self._tempparent)
- self.ui.setconfig('phases', 'publish', False)
if path:
self._url = 'bundle:' + util.expandpath(path) + '+' + bundlename
@@ -276,25 +263,13 @@ class bundlerepository(localrepo.localrepository):
def cancopy(self):
return False
- def peer(self):
- return bundlepeer(self)
-
def getcwd(self):
return os.getcwd() # always outside the repo
- def _writebranchcache(self, branches, tip, tiprev):
- # don't overwrite the disk cache with bundle-augmented data
- pass
-
def instance(ui, path, create):
if create:
raise util.Abort(_('cannot create new bundle repository'))
parentpath = ui.config("bundle", "mainreporoot", "")
- if not parentpath:
- # try to find the correct path to the working directory repo
- parentpath = cmdutil.findrepo(os.getcwd())
- if parentpath is None:
- parentpath = ''
if parentpath:
# Try to make the full path relative so we get a nice, short URL.
# In particular, we don't want temp dir names in test outputs.
@@ -330,16 +305,13 @@ def getremotechanges(ui, repo, other, onlyheads=None, bundlename=None,
Returns a tuple (local, csets, cleanupfn):
- "local" is a local repo from which to obtain the actual incoming
- changesets; it is a bundlerepo for the obtained bundle when the
- original "other" is remote.
+ "local" is a local repo from which to obtain the actual incoming changesets; it
+ is a bundlerepo for the obtained bundle when the original "other" is remote.
"csets" lists the incoming changeset node ids.
- "cleanupfn" must be called without arguments when you're done processing
- the changes; it closes both the original "other" and the one returned
- here.
+ "cleanupfn" must be called without arguments when you're done processing the
+ changes; it closes both the original "other" and the one returned here.
'''
- tmp = discovery.findcommonincoming(repo, other, heads=onlyheads,
- force=force)
+ tmp = discovery.findcommonincoming(repo, other, heads=onlyheads, force=force)
common, incoming, rheads = tmp
if not incoming:
try:
@@ -351,8 +323,8 @@ def getremotechanges(ui, repo, other, onlyheads=None, bundlename=None,
bundle = None
bundlerepo = None
- localrepo = other.local()
- if bundlename or not localrepo:
+ localrepo = other
+ if bundlename or not other.local():
# create a bundle (uncompressed if other repo is not local)
if other.capable('getbundle'):
@@ -363,12 +335,12 @@ def getremotechanges(ui, repo, other, onlyheads=None, bundlename=None,
rheads = None
else:
cg = other.changegroupsubset(incoming, rheads, 'incoming')
- bundletype = localrepo and "HG10BZ" or "HG10UN"
+ bundletype = other.local() and "HG10BZ" or "HG10UN"
fname = bundle = changegroup.writebundle(cg, bundlename, bundletype)
# keep written bundle?
if bundlename:
bundle = None
- if not localrepo:
+ if not other.local():
# use the created uncompressed bundlerepo
localrepo = bundlerepo = bundlerepository(ui, repo.root, fname)
# this repo contains local and other now, so filter out local again
diff --git a/mercurial/byterange.py b/mercurial/byterange.py
index f4f5f53..cc8f893 100644
--- a/mercurial/byterange.py
+++ b/mercurial/byterange.py
@@ -9,8 +9,10 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, see
-# <http://www.gnu.org/licenses/>.
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330,
+# Boston, MA 02111-1307 USA
# This file is part of urlgrabber, a high-level cross-protocol url-grabber
# Copyright 2002-2004 Michael D. Stenner, Ryan Tomayko
@@ -101,7 +103,9 @@ class RangeableFileObject(object):
"""This effectively allows us to wrap at the instance level.
Any attribute not found in _this_ object will be searched for
in self.fo. This includes methods."""
- return getattr(self.fo, name)
+ if hasattr(self.fo, name):
+ return getattr(self.fo, name)
+ raise AttributeError(name)
def tell(self):
"""Return the position within the range.
@@ -166,8 +170,10 @@ class RangeableFileObject(object):
offset is relative to the current position (self.realpos).
"""
assert offset >= 0
- seek = getattr(self.fo, 'seek', self._poor_mans_seek)
- seek(self.realpos + offset)
+ if not hasattr(self.fo, 'seek'):
+ self._poor_mans_seek(offset)
+ else:
+ self.fo.seek(self.realpos + offset)
self.realpos += offset
def _poor_mans_seek(self, offset):
diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py
index 236c8a3..7ee7b3f 100644
--- a/mercurial/changegroup.py
+++ b/mercurial/changegroup.py
@@ -118,7 +118,7 @@ def decompressor(fh, alg):
elif alg == 'GZ':
def generator(f):
zd = zlib.decompressobj()
- for chunk in util.filechunkiter(f):
+ for chunk in f:
yield zd.decompress(chunk)
elif alg == 'BZ':
def generator(f):
diff --git a/mercurial/changelog.py b/mercurial/changelog.py
index a3c6450..55e23c5 100644
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -9,8 +9,6 @@ from node import bin, hex, nullid
from i18n import _
import util, error, revlog, encoding
-_defaultextra = {'branch': 'default'}
-
def _string_escape(text):
"""
>>> d = {'nl': chr(10), 'bs': chr(92), 'cr': chr(13), 'nul': chr(0)}
@@ -26,20 +24,9 @@ def _string_escape(text):
return text.replace('\0', '\\0')
def decodeextra(text):
- """
- >>> decodeextra(encodeextra({'foo': 'bar', 'baz': chr(0) + '2'}))
- {'foo': 'bar', 'baz': '\\x002', 'branch': 'default'}
- >>> decodeextra(encodeextra({'foo': 'bar', 'baz': chr(92) + chr(0) + '2'}))
- {'foo': 'bar', 'baz': '\\\\\\x002', 'branch': 'default'}
- """
- extra = _defaultextra.copy()
+ extra = {}
for l in text.split('\0'):
if l:
- if '\\0' in l:
- # fix up \0 without getting into trouble with \\0
- l = l.replace('\\\\', '\\\\\n')
- l = l.replace('\\0', '\0')
- l = l.replace('\n', '')
k, v = l.decode('string_escape').split(':', 1)
extra[k] = v
return extra
@@ -120,6 +107,8 @@ class changelog(revlog.revlog):
self._realopener = opener
self._delayed = False
self._divert = False
+ # hiddenrevs: revs that should be hidden by command and tools
+ self.hiddenrevs = set()
def delayupdate(self):
"delay visibility of index updates to other readers"
@@ -151,7 +140,6 @@ class changelog(revlog.revlog):
r = revlog.revlog(self.opener, file)
self.index = r.index
self.nodemap = r.nodemap
- self._nodecache = r._nodecache
self._chunkcache = r._chunkcache
def writepending(self):
@@ -192,26 +180,28 @@ class changelog(revlog.revlog):
"""
text = self.revision(node)
if not text:
- return (nullid, "", (0, 0), [], "", _defaultextra)
+ return (nullid, "", (0, 0), [], "", {'branch': 'default'})
last = text.index("\n\n")
desc = encoding.tolocal(text[last + 2:])
l = text[:last].split('\n')
manifest = bin(l[0])
user = encoding.tolocal(l[1])
- tdata = l[2].split(' ', 2)
- if len(tdata) != 3:
- time = float(tdata[0])
+ extra_data = l[2].split(' ', 2)
+ if len(extra_data) != 3:
+ time = float(extra_data.pop(0))
try:
# various tools did silly things with the time zone field.
- timezone = int(tdata[1])
+ timezone = int(extra_data[0])
except ValueError:
timezone = 0
- extra = _defaultextra
+ extra = {}
else:
- time, timezone = float(tdata[0]), int(tdata[1])
- extra = decodeextra(tdata[2])
-
+ time, timezone, extra = extra_data
+ time, timezone = float(time), int(timezone)
+ extra = decodeextra(extra)
+ if not extra.get('branch'):
+ extra['branch'] = 'default'
files = l[3:]
return (manifest, user, (time, timezone), files, desc, extra)
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
index 7ccbb62..8f9a9a7 100644
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -8,9 +8,9 @@
from node import hex, nullid, nullrev, short
from i18n import _
import os, sys, errno, re, tempfile
-import util, scmutil, templater, patch, error, templatekw, revlog, copies
+import util, scmutil, templater, patch, error, templatekw, revlog
import match as matchmod
-import subrepo, context, repair, bookmarks, graphmod, revset
+import subrepo
def parsealiases(cmd):
return cmd.lstrip("^").split("|")
@@ -23,14 +23,7 @@ def findpossible(cmd, table, strict=False):
"""
choice = {}
debugchoice = {}
-
- if cmd in table:
- # short-circuit exact matches, "log" alias beats "^log|history"
- keys = [cmd]
- else:
- keys = table.keys()
-
- for e in keys:
+ for e in table.keys():
aliases = parsealiases(e)
found = None
if cmd in aliases:
@@ -82,10 +75,6 @@ def bailifchanged(repo):
modified, added, removed, deleted = repo.status()[:4]
if modified or added or removed or deleted:
raise util.Abort(_("outstanding uncommitted changes"))
- ctx = repo[None]
- for s in ctx.substate:
- if ctx.sub(s).dirty():
- raise util.Abort(_("uncommitted changes in subrepo %s") % s)
def logmessage(ui, opts):
""" get the log message according to -m and -l option """
@@ -120,13 +109,12 @@ def loglimit(opts):
limit = None
return limit
-def makefilename(repo, pat, node, desc=None,
+def makefilename(repo, pat, node,
total=None, seqno=None, revwidth=None, pathname=None):
node_expander = {
'H': lambda: hex(node),
'R': lambda: str(repo.changelog.rev(node)),
'h': lambda: short(node),
- 'm': lambda: re.sub('[^\w]', '_', str(desc))
}
expander = {
'%': lambda: '%',
@@ -166,14 +154,14 @@ def makefilename(repo, pat, node, desc=None,
raise util.Abort(_("invalid format spec '%%%s' in output filename") %
inst.args[0])
-def makefileobj(repo, pat, node=None, desc=None, total=None,
+def makefileobj(repo, pat, node=None, total=None,
seqno=None, revwidth=None, mode='wb', pathname=None):
writable = mode not in ('r', 'rb')
if not pat or pat == '-':
fp = writable and repo.ui.fout or repo.ui.fin
- if util.safehasattr(fp, 'fileno'):
+ if hasattr(fp, 'fileno'):
return os.fdopen(os.dup(fp.fileno()), mode)
else:
# if this fp can't be duped properly, return
@@ -189,11 +177,11 @@ def makefileobj(repo, pat, node=None, desc=None, total=None,
return getattr(self.f, attr)
return wrappedfileobj(fp)
- if util.safehasattr(pat, 'write') and writable:
+ if hasattr(pat, 'write') and writable:
return pat
- if util.safehasattr(pat, 'read') and 'r' in mode:
+ if hasattr(pat, 'read') and 'r' in mode:
return pat
- return open(makefilename(repo, pat, node, desc, total, seqno, revwidth,
+ return open(makefilename(repo, pat, node, total, seqno, revwidth,
pathname),
mode)
@@ -268,11 +256,6 @@ def copy(ui, repo, pats, opts, rename=False):
# otarget: ossep
def copyfile(abssrc, relsrc, otarget, exact):
abstarget = scmutil.canonpath(repo.root, cwd, otarget)
- if '/' in abstarget:
- # We cannot normalize abstarget itself, this would prevent
- # case only renames, like a => A.
- abspath, absname = abstarget.rsplit('/', 1)
- abstarget = repo.dirstate.normalize(abspath) + '/' + absname
reltarget = repo.pathto(abstarget, cwd)
target = repo.wjoin(abstarget)
src = repo.wjoin(abssrc)
@@ -290,16 +273,6 @@ def copy(ui, repo, pats, opts, rename=False):
# check for overwrites
exists = os.path.lexists(target)
- samefile = False
- if exists and abssrc != abstarget:
- if (repo.dirstate.normalize(abssrc) ==
- repo.dirstate.normalize(abstarget)):
- if not rename:
- ui.warn(_("%s: can't copy - same file\n") % reltarget)
- return
- exists = False
- samefile = True
-
if not after and exists or after and state in 'mn':
if not opts['force']:
ui.warn(_('%s: not overwriting - file exists\n') %
@@ -322,12 +295,7 @@ def copy(ui, repo, pats, opts, rename=False):
targetdir = os.path.dirname(target) or '.'
if not os.path.isdir(targetdir):
os.makedirs(targetdir)
- if samefile:
- tmp = target + "~hgrename"
- os.rename(src, tmp)
- os.rename(tmp, target)
- else:
- util.copyfile(src, target)
+ util.copyfile(src, target)
srcexists = True
except IOError, inst:
if inst.errno == errno.ENOENT:
@@ -350,7 +318,7 @@ def copy(ui, repo, pats, opts, rename=False):
scmutil.dirstatecopy(ui, repo, wctx, abssrc, abstarget,
dryrun=dryrun, cwd=cwd)
if rename and not dryrun:
- if not after and srcexists and not samefile:
+ if not after and srcexists:
util.unlinkpath(repo.wjoin(abssrc))
wctx.forget([abssrc])
@@ -548,13 +516,11 @@ def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False,
shouldclose = False
if not fp:
- desc_lines = ctx.description().rstrip().split('\n')
- desc = desc_lines[0] #Commit always has a first line.
- fp = makefileobj(repo, template, node, desc=desc, total=total,
- seqno=seqno, revwidth=revwidth, mode='ab')
+ fp = makefileobj(repo, template, node, total=total, seqno=seqno,
+ revwidth=revwidth, mode='ab')
if fp != template:
shouldclose = True
- if fp != sys.stdout and util.safehasattr(fp, 'name'):
+ if fp != sys.stdout and hasattr(fp, 'name'):
repo.ui.note("%s\n" % fp.name)
fp.write("# HG changeset patch\n")
@@ -608,17 +574,10 @@ def diffordiffstat(ui, repo, diffopts, node1, node2, match,
ctx1 = repo[node1]
ctx2 = repo[node2]
for subpath, sub in subrepo.itersubrepos(ctx1, ctx2):
- tempnode2 = node2
- try:
- if node2 is not None:
- tempnode2 = ctx2.substate[subpath][1]
- except KeyError:
- # A subrepo that existed in node1 was deleted between node1 and
- # node2 (inclusive). Thus, ctx2's substate won't contain that
- # subpath. The best we can do is to ignore it.
- tempnode2 = None
+ if node2 is not None:
+ node2 = ctx2.substate[subpath][1]
submatch = matchmod.narrowmatcher(subpath, match)
- sub.diff(diffopts, tempnode2, submatch, changes=changes,
+ sub.diff(diffopts, node2, submatch, changes=changes,
stat=stat, fp=fp, prefix=prefix)
class changeset_printer(object):
@@ -692,9 +651,6 @@ class changeset_printer(object):
for tag in self.repo.nodetags(changenode):
self.ui.write(_("tag: %s\n") % tag,
label='log.tag')
- if self.ui.debugflag and ctx.phase():
- self.ui.write(_("phase: %s\n") % _(ctx.phasestr()),
- label='log.phase')
for parent in parents:
self.ui.write(_("parent: %d:%s\n") % parent,
label='log.parent')
@@ -910,10 +866,7 @@ def show_changeset(ui, repo, opts, buffered=False):
if not (tmpl or style):
tmpl = ui.config('ui', 'logtemplate')
if tmpl:
- try:
- tmpl = templater.parsestring(tmpl)
- except SyntaxError:
- tmpl = templater.parsestring(tmpl, quoted=False)
+ tmpl = templater.parsestring(tmpl)
else:
style = util.expandpath(ui.config('ui', 'style', ''))
@@ -952,26 +905,12 @@ def finddate(ui, repo, date):
for ctx in walkchangerevs(repo, m, {'rev': None}, prep):
rev = ctx.rev()
if rev in results:
- ui.status(_("found revision %s from %s\n") %
+ ui.status(_("Found revision %s from %s\n") %
(rev, util.datestr(results[rev])))
return str(rev)
raise util.Abort(_("revision matching date not found"))
-def increasingwindows(start, end, windowsize=8, sizelimit=512):
- if start < end:
- while start < end:
- yield start, min(windowsize, end - start)
- start += windowsize
- if windowsize < sizelimit:
- windowsize *= 2
- else:
- while start > end:
- yield start, min(windowsize, start - end - 1)
- start -= windowsize
- if windowsize < sizelimit:
- windowsize *= 2
-
def walkchangerevs(repo, match, opts, prepare):
'''Iterate over files and the revs in which they changed.
@@ -987,6 +926,20 @@ def walkchangerevs(repo, match, opts, prepare):
yielding each context, the iterator will first call the prepare
function on each context in the window in forward order.'''
+ def increasing_windows(start, end, windowsize=8, sizelimit=512):
+ if start < end:
+ while start < end:
+ yield start, min(windowsize, end - start)
+ start += windowsize
+ if windowsize < sizelimit:
+ windowsize *= 2
+ else:
+ while start > end:
+ yield start, min(windowsize, start - end - 1)
+ start -= windowsize
+ if windowsize < sizelimit:
+ windowsize *= 2
+
follow = opts.get('follow') or opts.get('follow_first')
if not len(repo):
@@ -996,13 +949,13 @@ def walkchangerevs(repo, match, opts, prepare):
defrange = '%s:0' % repo['.'].rev()
else:
defrange = '-1:0'
- revs = scmutil.revrange(repo, opts.get('rev') or [defrange])
+ revs = scmutil.revrange(repo, opts['rev'] or [defrange])
if not revs:
return []
wanted = set()
slowpath = match.anypats() or (match.files() and opts.get('removed'))
fncache = {}
- change = repo.changectx
+ change = util.cachefunc(repo.changectx)
# First step is to fill wanted, the set of revisions that we want to yield.
# When it does not induce extra cost, we also fill fncache for revisions in
@@ -1014,7 +967,7 @@ def walkchangerevs(repo, match, opts, prepare):
wanted = set(revs)
copies = []
- if not slowpath and match.files():
+ if not slowpath:
# We only have to read through the filelog to find wanted revisions
minrev, maxrev = min(revs), max(revs)
@@ -1047,15 +1000,8 @@ def walkchangerevs(repo, match, opts, prepare):
return reversed(revs)
def iterfiles():
- pctx = repo['.']
for filename in match.files():
- if follow:
- if filename not in pctx:
- raise util.Abort(_('cannot follow file not in parent '
- 'revision: "%s"') % filename)
- yield filename, pctx[filename].filenode()
- else:
- yield filename, None
+ yield filename, None
for filename_node in copies:
yield filename_node
for file_, node in iterfiles():
@@ -1158,7 +1104,7 @@ def walkchangerevs(repo, match, opts, prepare):
# it might be worthwhile to do this in the iterator if the rev range
# is descending and the prune args are all within that range
for rev in opts.get('prune', ()):
- rev = repo[rev].rev()
+ rev = repo.changelog.rev(repo.lookup(rev))
ff = followfilter()
stop = min(revs[0], revs[-1])
for x in xrange(rev, stop - 1, -1):
@@ -1176,7 +1122,7 @@ def walkchangerevs(repo, match, opts, prepare):
def want(rev):
return rev in wanted
- for i, window in increasingwindows(0, len(revs)):
+ for i, window in increasing_windows(0, len(revs)):
nrevs = [rev for rev in revs[i:i + window] if want(rev)]
for rev in sorted(nrevs):
fns = fncache.get(rev)
@@ -1192,278 +1138,7 @@ def walkchangerevs(repo, match, opts, prepare):
yield change(rev)
return iterate()
-def _makegraphfilematcher(repo, pats, followfirst):
- # When displaying a revision with --patch --follow FILE, we have
- # to know which file of the revision must be diffed. With
- # --follow, we want the names of the ancestors of FILE in the
- # revision, stored in "fcache". "fcache" is populated by
- # reproducing the graph traversal already done by --follow revset
- # and relating linkrevs to file names (which is not "correct" but
- # good enough).
- fcache = {}
- fcacheready = [False]
- pctx = repo['.']
- wctx = repo[None]
-
- def populate():
- for fn in pats:
- for i in ((pctx[fn],), pctx[fn].ancestors(followfirst=followfirst)):
- for c in i:
- fcache.setdefault(c.linkrev(), set()).add(c.path())
-
- def filematcher(rev):
- if not fcacheready[0]:
- # Lazy initialization
- fcacheready[0] = True
- populate()
- return scmutil.match(wctx, fcache.get(rev, []), default='path')
-
- return filematcher
-
-def _makegraphlogrevset(repo, pats, opts, revs):
- """Return (expr, filematcher) where expr is a revset string built
- from log options and file patterns or None. If --stat or --patch
- are not passed filematcher is None. Otherwise it is a callable
- taking a revision number and returning a match objects filtering
- the files to be detailed when displaying the revision.
- """
- opt2revset = {
- 'no_merges': ('not merge()', None),
- 'only_merges': ('merge()', None),
- '_ancestors': ('ancestors(%(val)s)', None),
- '_fancestors': ('_firstancestors(%(val)s)', None),
- '_descendants': ('descendants(%(val)s)', None),
- '_fdescendants': ('_firstdescendants(%(val)s)', None),
- '_matchfiles': ('_matchfiles(%(val)s)', None),
- 'date': ('date(%(val)r)', None),
- 'branch': ('branch(%(val)r)', ' or '),
- '_patslog': ('filelog(%(val)r)', ' or '),
- '_patsfollow': ('follow(%(val)r)', ' or '),
- '_patsfollowfirst': ('_followfirst(%(val)r)', ' or '),
- 'keyword': ('keyword(%(val)r)', ' or '),
- 'prune': ('not (%(val)r or ancestors(%(val)r))', ' and '),
- 'user': ('user(%(val)r)', ' or '),
- }
-
- opts = dict(opts)
- # follow or not follow?
- follow = opts.get('follow') or opts.get('follow_first')
- followfirst = opts.get('follow_first') and 1 or 0
- # --follow with FILE behaviour depends on revs...
- startrev = revs[0]
- followdescendants = (len(revs) > 1 and revs[0] < revs[1]) and 1 or 0
-
- # branch and only_branch are really aliases and must be handled at
- # the same time
- opts['branch'] = opts.get('branch', []) + opts.get('only_branch', [])
- opts['branch'] = [repo.lookupbranch(b) for b in opts['branch']]
- # pats/include/exclude are passed to match.match() directly in
- # _matchfile() revset but walkchangerevs() builds its matcher with
- # scmutil.match(). The difference is input pats are globbed on
- # platforms without shell expansion (windows).
- pctx = repo[None]
- match, pats = scmutil.matchandpats(pctx, pats, opts)
- slowpath = match.anypats() or (match.files() and opts.get('removed'))
- if not slowpath:
- for f in match.files():
- if follow and f not in pctx:
- raise util.Abort(_('cannot follow file not in parent '
- 'revision: "%s"') % f)
- filelog = repo.file(f)
- if not len(filelog):
- # A zero count may be a directory or deleted file, so
- # try to find matching entries on the slow path.
- if follow:
- raise util.Abort(
- _('cannot follow nonexistent file: "%s"') % f)
- slowpath = True
- if slowpath:
- # See walkchangerevs() slow path.
- #
- if follow:
- raise util.Abort(_('can only follow copies/renames for explicit '
- 'filenames'))
- # pats/include/exclude cannot be represented as separate
- # revset expressions as their filtering logic applies at file
- # level. For instance "-I a -X a" matches a revision touching
- # "a" and "b" while "file(a) and not file(b)" does
- # not. Besides, filesets are evaluated against the working
- # directory.
- matchargs = ['r:', 'd:relpath']
- for p in pats:
- matchargs.append('p:' + p)
- for p in opts.get('include', []):
- matchargs.append('i:' + p)
- for p in opts.get('exclude', []):
- matchargs.append('x:' + p)
- matchargs = ','.join(('%r' % p) for p in matchargs)
- opts['_matchfiles'] = matchargs
- else:
- if follow:
- fpats = ('_patsfollow', '_patsfollowfirst')
- fnopats = (('_ancestors', '_fancestors'),
- ('_descendants', '_fdescendants'))
- if pats:
- # follow() revset inteprets its file argument as a
- # manifest entry, so use match.files(), not pats.
- opts[fpats[followfirst]] = list(match.files())
- else:
- opts[fnopats[followdescendants][followfirst]] = str(startrev)
- else:
- opts['_patslog'] = list(pats)
-
- filematcher = None
- if opts.get('patch') or opts.get('stat'):
- if follow:
- filematcher = _makegraphfilematcher(repo, pats, followfirst)
- else:
- filematcher = lambda rev: match
-
- expr = []
- for op, val in opts.iteritems():
- if not val:
- continue
- if op not in opt2revset:
- continue
- revop, andor = opt2revset[op]
- if '%(val)' not in revop:
- expr.append(revop)
- else:
- if not isinstance(val, list):
- e = revop % {'val': val}
- else:
- e = '(' + andor.join((revop % {'val': v}) for v in val) + ')'
- expr.append(e)
-
- if expr:
- expr = '(' + ' and '.join(expr) + ')'
- else:
- expr = None
- return expr, filematcher
-
-def getgraphlogrevs(repo, pats, opts):
- """Return (revs, expr, filematcher) where revs is an iterable of
- revision numbers, expr is a revset string built from log options
- and file patterns or None, and used to filter 'revs'. If --stat or
- --patch are not passed filematcher is None. Otherwise it is a
- callable taking a revision number and returning a match objects
- filtering the files to be detailed when displaying the revision.
- """
- def increasingrevs(repo, revs, matcher):
- # The sorted input rev sequence is chopped in sub-sequences
- # which are sorted in ascending order and passed to the
- # matcher. The filtered revs are sorted again as they were in
- # the original sub-sequence. This achieve several things:
- #
- # - getlogrevs() now returns a generator which behaviour is
- # adapted to log need. First results come fast, last ones
- # are batched for performances.
- #
- # - revset matchers often operate faster on revision in
- # changelog order, because most filters deal with the
- # changelog.
- #
- # - revset matchers can reorder revisions. "A or B" typically
- # returns returns the revision matching A then the revision
- # matching B. We want to hide this internal implementation
- # detail from the caller, and sorting the filtered revision
- # again achieves this.
- for i, window in increasingwindows(0, len(revs), windowsize=1):
- orevs = revs[i:i + window]
- nrevs = set(matcher(repo, sorted(orevs)))
- for rev in orevs:
- if rev in nrevs:
- yield rev
-
- if not len(repo):
- return iter([]), None, None
- # Default --rev value depends on --follow but --follow behaviour
- # depends on revisions resolved from --rev...
- follow = opts.get('follow') or opts.get('follow_first')
- if opts.get('rev'):
- revs = scmutil.revrange(repo, opts['rev'])
- else:
- if follow and len(repo) > 0:
- revs = scmutil.revrange(repo, ['.:0'])
- else:
- revs = range(len(repo) - 1, -1, -1)
- if not revs:
- return iter([]), None, None
- expr, filematcher = _makegraphlogrevset(repo, pats, opts, revs)
- if expr:
- matcher = revset.match(repo.ui, expr)
- revs = increasingrevs(repo, revs, matcher)
- if not opts.get('hidden'):
- # --hidden is still experimental and not worth a dedicated revset
- # yet. Fortunately, filtering revision number is fast.
- revs = (r for r in revs if r not in repo.hiddenrevs)
- else:
- revs = iter(revs)
- return revs, expr, filematcher
-
-def displaygraph(ui, dag, displayer, showparents, edgefn, getrenamed=None,
- filematcher=None):
- seen, state = [], graphmod.asciistate()
- for rev, type, ctx, parents in dag:
- char = 'o'
- if ctx.node() in showparents:
- char = '@'
- elif ctx.obsolete():
- char = 'x'
- copies = None
- if getrenamed and ctx.rev():
- copies = []
- for fn in ctx.files():
- rename = getrenamed(fn, ctx.rev())
- if rename:
- copies.append((fn, rename[0]))
- revmatchfn = None
- if filematcher is not None:
- revmatchfn = filematcher(ctx.rev())
- displayer.show(ctx, copies=copies, matchfn=revmatchfn)
- lines = displayer.hunk.pop(rev).split('\n')
- if not lines[-1]:
- del lines[-1]
- displayer.flush(rev)
- edges = edgefn(type, char, lines, seen, rev, parents)
- for type, char, lines, coldata in edges:
- graphmod.ascii(ui, state, type, char, lines, coldata)
- displayer.close()
-
-def graphlog(ui, repo, *pats, **opts):
- # Parameters are identical to log command ones
- revs, expr, filematcher = getgraphlogrevs(repo, pats, opts)
- revs = sorted(revs, reverse=1)
- limit = loglimit(opts)
- if limit is not None:
- revs = revs[:limit]
- revdag = graphmod.dagwalker(repo, revs)
-
- getrenamed = None
- if opts.get('copies'):
- endrev = None
- if opts.get('rev'):
- endrev = max(scmutil.revrange(repo, opts.get('rev'))) + 1
- getrenamed = templatekw.getrenamedfn(repo, endrev=endrev)
- displayer = show_changeset(ui, repo, opts, buffered=True)
- showparents = [ctx.node() for ctx in repo[None].parents()]
- displaygraph(ui, revdag, displayer, showparents,
- graphmod.asciiedges, getrenamed, filematcher)
-
-def checkunsupportedgraphflags(pats, opts):
- for op in ["newest_first"]:
- if op in opts and opts[op]:
- raise util.Abort(_("-G/--graph option is incompatible with --%s")
- % op.replace("_", "-"))
-
-def graphrevs(repo, nodes, opts):
- limit = loglimit(opts)
- nodes.reverse()
- if limit is not None:
- nodes = nodes[:limit]
- return graphmod.nodes(repo, nodes)
-
-def add(ui, repo, match, dryrun, listsubrepos, prefix, explicitonly):
+def add(ui, repo, match, dryrun, listsubrepos, prefix):
join = lambda f: os.path.join(prefix, f)
bad = []
oldbad = match.bad
@@ -1473,82 +1148,31 @@ def add(ui, repo, match, dryrun, listsubrepos, prefix, explicitonly):
cca = None
abort, warn = scmutil.checkportabilityalert(ui)
if abort or warn:
- cca = scmutil.casecollisionauditor(ui, abort, repo.dirstate)
+ cca = scmutil.casecollisionauditor(ui, abort, wctx)
for f in repo.walk(match):
exact = match.exact(f)
- if exact or not explicitonly and f not in repo.dirstate:
+ if exact or f not in repo.dirstate:
if cca:
cca(f)
names.append(f)
if ui.verbose or not exact:
ui.status(_('adding %s\n') % match.rel(join(f)))
- for subpath in wctx.substate:
- sub = wctx.sub(subpath)
- try:
- submatch = matchmod.narrowmatcher(subpath, match)
- if listsubrepos:
- bad.extend(sub.add(ui, submatch, dryrun, listsubrepos, prefix,
- False))
- else:
- bad.extend(sub.add(ui, submatch, dryrun, listsubrepos, prefix,
- True))
- except error.LookupError:
- ui.status(_("skipping missing subrepository: %s\n")
- % join(subpath))
+ if listsubrepos:
+ for subpath in wctx.substate:
+ sub = wctx.sub(subpath)
+ try:
+ submatch = matchmod.narrowmatcher(subpath, match)
+ bad.extend(sub.add(ui, submatch, dryrun, prefix))
+ except error.LookupError:
+ ui.status(_("skipping missing subrepository: %s\n")
+ % join(subpath))
if not dryrun:
rejected = wctx.add(names, prefix)
bad.extend(f for f in rejected if f in match.files())
return bad
-def forget(ui, repo, match, prefix, explicitonly):
- join = lambda f: os.path.join(prefix, f)
- bad = []
- oldbad = match.bad
- match.bad = lambda x, y: bad.append(x) or oldbad(x, y)
- wctx = repo[None]
- forgot = []
- s = repo.status(match=match, clean=True)
- forget = sorted(s[0] + s[1] + s[3] + s[6])
- if explicitonly:
- forget = [f for f in forget if match.exact(f)]
-
- for subpath in wctx.substate:
- sub = wctx.sub(subpath)
- try:
- submatch = matchmod.narrowmatcher(subpath, match)
- subbad, subforgot = sub.forget(ui, submatch, prefix)
- bad.extend([subpath + '/' + f for f in subbad])
- forgot.extend([subpath + '/' + f for f in subforgot])
- except error.LookupError:
- ui.status(_("skipping missing subrepository: %s\n")
- % join(subpath))
-
- if not explicitonly:
- for f in match.files():
- if f not in repo.dirstate and not os.path.isdir(match.rel(join(f))):
- if f not in forgot:
- if os.path.exists(match.rel(join(f))):
- ui.warn(_('not removing %s: '
- 'file is already untracked\n')
- % match.rel(join(f)))
- bad.append(f)
-
- for f in forget:
- if ui.verbose or not match.exact(f):
- ui.status(_('removing %s\n') % match.rel(join(f)))
-
- rejected = wctx.forget(forget, prefix)
- bad.extend(f for f in rejected if f in match.files())
- forgot.extend(forget)
- return bad, forgot
-
-def duplicatecopies(repo, rev, p1):
- "Reproduce copies found in the source revision in the dirstate for grafts"
- for dst, src in copies.pathcopies(repo[p1], repo[rev]).iteritems():
- repo.dirstate.copy(src, dst)
-
def commit(ui, repo, commitfunc, pats, opts):
'''commit the specified files or all outstanding changes'''
date = opts.get('date')
@@ -1564,136 +1188,6 @@ def commit(ui, repo, commitfunc, pats, opts):
return commitfunc(ui, repo, message,
scmutil.match(repo[None], pats, opts), opts)
-def amend(ui, repo, commitfunc, old, extra, pats, opts):
- ui.note(_('amending changeset %s\n') % old)
- base = old.p1()
-
- wlock = repo.wlock()
- try:
- # First, do a regular commit to record all changes in the working
- # directory (if there are any)
- ui.callhooks = False
- try:
- node = commit(ui, repo, commitfunc, pats, opts)
- finally:
- ui.callhooks = True
- ctx = repo[node]
-
- # Participating changesets:
- #
- # node/ctx o - new (intermediate) commit that contains changes from
- # | working dir to go into amending commit (or a workingctx
- # | if there were no changes)
- # |
- # old o - changeset to amend
- # |
- # base o - parent of amending changeset
-
- # Update extra dict from amended commit (e.g. to preserve graft source)
- extra.update(old.extra())
-
- # Also update it from the intermediate commit or from the wctx
- extra.update(ctx.extra())
-
- files = set(old.files())
-
- # Second, we use either the commit we just did, or if there were no
- # changes the parent of the working directory as the version of the
- # files in the final amend commit
- if node:
- ui.note(_('copying changeset %s to %s\n') % (ctx, base))
-
- user = ctx.user()
- date = ctx.date()
- message = ctx.description()
- # Recompute copies (avoid recording a -> b -> a)
- copied = copies.pathcopies(base, ctx)
-
- # Prune files which were reverted by the updates: if old introduced
- # file X and our intermediate commit, node, renamed that file, then
- # those two files are the same and we can discard X from our list
- # of files. Likewise if X was deleted, it's no longer relevant
- files.update(ctx.files())
-
- def samefile(f):
- if f in ctx.manifest():
- a = ctx.filectx(f)
- if f in base.manifest():
- b = base.filectx(f)
- return (not a.cmp(b)
- and a.flags() == b.flags())
- else:
- return False
- else:
- return f not in base.manifest()
- files = [f for f in files if not samefile(f)]
-
- def filectxfn(repo, ctx_, path):
- try:
- fctx = ctx[path]
- flags = fctx.flags()
- mctx = context.memfilectx(fctx.path(), fctx.data(),
- islink='l' in flags,
- isexec='x' in flags,
- copied=copied.get(path))
- return mctx
- except KeyError:
- raise IOError
- else:
- ui.note(_('copying changeset %s to %s\n') % (old, base))
-
- # Use version of files as in the old cset
- def filectxfn(repo, ctx_, path):
- try:
- return old.filectx(path)
- except KeyError:
- raise IOError
-
- # See if we got a message from -m or -l, if not, open the editor
- # with the message of the changeset to amend
- user = opts.get('user') or old.user()
- date = opts.get('date') or old.date()
- message = logmessage(ui, opts)
- if not message:
- cctx = context.workingctx(repo, old.description(), user, date,
- extra,
- repo.status(base.node(), old.node()))
- message = commitforceeditor(repo, cctx, [])
-
- new = context.memctx(repo,
- parents=[base.node(), nullid],
- text=message,
- files=files,
- filectxfn=filectxfn,
- user=user,
- date=date,
- extra=extra)
- newid = repo.commitctx(new)
- if newid != old.node():
- # Reroute the working copy parent to the new changeset
- repo.setparents(newid, nullid)
-
- # Move bookmarks from old parent to amend commit
- bms = repo.nodebookmarks(old.node())
- if bms:
- for bm in bms:
- repo._bookmarks[bm] = newid
- bookmarks.write(repo)
-
- # Strip the intermediate commit (if there was one) and the amended
- # commit
- lock = repo.lock()
- try:
- if node:
- ui.note(_('stripping intermediate changeset %s\n') % ctx)
- ui.note(_('stripping amended changeset %s\n') % old)
- repair.strip(ui, repo, old.node(), topic='amend-backup')
- finally:
- lock.release()
- finally:
- wlock.release()
- return newid
-
def commiteditor(repo, ctx, subs):
if ctx.description():
return ctx.description()
@@ -1734,187 +1228,6 @@ def commitforceeditor(repo, ctx, subs):
return text
-def revert(ui, repo, ctx, parents, *pats, **opts):
- parent, p2 = parents
- node = ctx.node()
-
- mf = ctx.manifest()
- if node == parent:
- pmf = mf
- else:
- pmf = None
-
- # need all matching names in dirstate and manifest of target rev,
- # so have to walk both. do not print errors if files exist in one
- # but not other.
-
- names = {}
-
- wlock = repo.wlock()
- try:
- # walk dirstate.
-
- m = scmutil.match(repo[None], pats, opts)
- m.bad = lambda x, y: False
- for abs in repo.walk(m):
- names[abs] = m.rel(abs), m.exact(abs)
-
- # walk target manifest.
-
- def badfn(path, msg):
- if path in names:
- return
- if path in ctx.substate:
- return
- path_ = path + '/'
- for f in names:
- if f.startswith(path_):
- return
- ui.warn("%s: %s\n" % (m.rel(path), msg))
-
- m = scmutil.match(ctx, pats, opts)
- m.bad = badfn
- for abs in ctx.walk(m):
- if abs not in names:
- names[abs] = m.rel(abs), m.exact(abs)
-
- # get the list of subrepos that must be reverted
- targetsubs = [s for s in ctx.substate if m(s)]
- m = scmutil.matchfiles(repo, names)
- changes = repo.status(match=m)[:4]
- modified, added, removed, deleted = map(set, changes)
-
- # if f is a rename, also revert the source
- cwd = repo.getcwd()
- for f in added:
- src = repo.dirstate.copied(f)
- if src and src not in names and repo.dirstate[src] == 'r':
- removed.add(src)
- names[src] = (repo.pathto(src, cwd), True)
-
- def removeforget(abs):
- if repo.dirstate[abs] == 'a':
- return _('forgetting %s\n')
- return _('removing %s\n')
-
- revert = ([], _('reverting %s\n'))
- add = ([], _('adding %s\n'))
- remove = ([], removeforget)
- undelete = ([], _('undeleting %s\n'))
-
- disptable = (
- # dispatch table:
- # file state
- # action if in target manifest
- # action if not in target manifest
- # make backup if in target manifest
- # make backup if not in target manifest
- (modified, revert, remove, True, True),
- (added, revert, remove, True, False),
- (removed, undelete, None, False, False),
- (deleted, revert, remove, False, False),
- )
-
- for abs, (rel, exact) in sorted(names.items()):
- mfentry = mf.get(abs)
- target = repo.wjoin(abs)
- def handle(xlist, dobackup):
- xlist[0].append(abs)
- if (dobackup and not opts.get('no_backup') and
- os.path.lexists(target)):
- bakname = "%s.orig" % rel
- ui.note(_('saving current version of %s as %s\n') %
- (rel, bakname))
- if not opts.get('dry_run'):
- util.rename(target, bakname)
- if ui.verbose or not exact:
- msg = xlist[1]
- if not isinstance(msg, basestring):
- msg = msg(abs)
- ui.status(msg % rel)
- for table, hitlist, misslist, backuphit, backupmiss in disptable:
- if abs not in table:
- continue
- # file has changed in dirstate
- if mfentry:
- handle(hitlist, backuphit)
- elif misslist is not None:
- handle(misslist, backupmiss)
- break
- else:
- if abs not in repo.dirstate:
- if mfentry:
- handle(add, True)
- elif exact:
- ui.warn(_('file not managed: %s\n') % rel)
- continue
- # file has not changed in dirstate
- if node == parent:
- if exact:
- ui.warn(_('no changes needed to %s\n') % rel)
- continue
- if pmf is None:
- # only need parent manifest in this unlikely case,
- # so do not read by default
- pmf = repo[parent].manifest()
- if abs in pmf and mfentry:
- # if version of file is same in parent and target
- # manifests, do nothing
- if (pmf[abs] != mfentry or
- pmf.flags(abs) != mf.flags(abs)):
- handle(revert, False)
- else:
- handle(remove, False)
-
- if not opts.get('dry_run'):
- def checkout(f):
- fc = ctx[f]
- repo.wwrite(f, fc.data(), fc.flags())
-
- audit_path = scmutil.pathauditor(repo.root)
- for f in remove[0]:
- if repo.dirstate[f] == 'a':
- repo.dirstate.drop(f)
- continue
- audit_path(f)
- try:
- util.unlinkpath(repo.wjoin(f))
- except OSError:
- pass
- repo.dirstate.remove(f)
-
- normal = None
- if node == parent:
- # We're reverting to our parent. If possible, we'd like status
- # to report the file as clean. We have to use normallookup for
- # merges to avoid losing information about merged/dirty files.
- if p2 != nullid:
- normal = repo.dirstate.normallookup
- else:
- normal = repo.dirstate.normal
- for f in revert[0]:
- checkout(f)
- if normal:
- normal(f)
-
- for f in add[0]:
- checkout(f)
- repo.dirstate.add(f)
-
- normal = repo.dirstate.normallookup
- if node == parent and p2 == nullid:
- normal = repo.dirstate.normal
- for f in undelete[0]:
- checkout(f)
- normal(f)
-
- if targetsubs:
- # Revert the subrepos on the revert list
- for sub in targetsubs:
- ctx.sub(sub).revert(ui, ctx.substate[sub], *pats, **opts)
- finally:
- wlock.release()
-
def command(table):
'''returns a function object bound to table which can be used as
a decorator for populating table as a command table'''
diff --git a/mercurial/commands.py b/mercurial/commands.py
index 092da83..35aee93 100644
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -15,9 +15,8 @@ import archival, changegroup, cmdutil, hbisect
import sshserver, hgweb, hgweb.server, commandserver
import merge as mergemod
import minirst, revset, fileset
-import dagparser, context, simplemerge, graphmod
-import random, setdiscovery, treediscovery, dagutil, pvec, localrepo
-import phases, obsolete
+import dagparser, context, simplemerge
+import random, setdiscovery, treediscovery, dagutil
table = {}
@@ -98,7 +97,6 @@ logopts = [
_('limit number of changes displayed'), _('NUM')),
('M', 'no-merges', None, _('do not show merges')),
('', 'stat', None, _('output diffstat-style summary of changes')),
- ('G', 'graph', None, _("show the revision DAG")),
] + templateopts
diffopts = [
@@ -107,28 +105,20 @@ diffopts = [
('', 'nodates', None, _('omit dates from diff headers'))
]
-diffwsopts = [
+diffopts2 = [
+ ('p', 'show-function', None, _('show which function each change is in')),
+ ('', 'reverse', None, _('produce a diff that undoes the changes')),
('w', 'ignore-all-space', None,
_('ignore white space when comparing lines')),
('b', 'ignore-space-change', None,
_('ignore changes in the amount of white space')),
('B', 'ignore-blank-lines', None,
_('ignore changes whose lines are all blank')),
- ]
-
-diffopts2 = [
- ('p', 'show-function', None, _('show which function each change is in')),
- ('', 'reverse', None, _('produce a diff that undoes the changes')),
- ] + diffwsopts + [
('U', 'unified', '',
_('number of lines of context to show'), _('NUM')),
('', 'stat', None, _('output diffstat-style summary of changes')),
]
-mergetoolopts = [
- ('t', 'tool', '', _('specify merge tool')),
-]
-
similarityopts = [
('s', 'similarity', '',
_('guess renamed files by similarity (0<=s<=100)'), _('SIMILARITY'))
@@ -174,7 +164,7 @@ def add(ui, repo, *pats, **opts):
m = scmutil.match(repo[None], pats, opts)
rejected = cmdutil.add(ui, repo, m, opts.get('dry_run'),
- opts.get('subrepos'), prefix="", explicitonly=False)
+ opts.get('subrepos'), prefix="")
return rejected and 1 or 0
@command('addremove',
@@ -190,15 +180,13 @@ def addremove(ui, repo, *pats, **opts):
``.hgignore``. As with add, these changes take effect at the next
commit.
- Use the -s/--similarity option to detect renamed files. This
+ Use the -s/--similarity option to detect renamed files. With a
+ parameter greater than 0, this compares every removed file with
+ every added file and records those similar enough as renames. This
option takes a percentage between 0 (disabled) and 100 (files must
- be identical) as its parameter. With a parameter greater than 0,
- this compares every removed file with every added file and records
- those similar enough as renames. Detecting renamed files this way
+ be identical) as its parameter. Detecting renamed files this way
can be expensive. After using this option, :hg:`status -C` can be
- used to check which files were identified as moved or renamed. If
- not specified, -s/--similarity defaults to 100 and only renames of
- identical files are detected.
+ used to check which files were identified as moved or renamed.
Returns 0 if all files are successfully added.
"""
@@ -222,7 +210,7 @@ def addremove(ui, repo, *pats, **opts):
('n', 'number', None, _('list the revision number (default)')),
('c', 'changeset', None, _('list the changeset')),
('l', 'line-number', None, _('show line number at the first appearance'))
- ] + diffwsopts + walkopts,
+ ] + walkopts,
_('[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FILE...'))
def annotate(ui, repo, *pats, **opts):
"""show changeset information by line for each file
@@ -251,11 +239,9 @@ def annotate(ui, repo, *pats, **opts):
if not pats:
raise util.Abort(_('at least one filename or pattern is required'))
- hexfn = ui.debugflag and hex or short
-
opmap = [('user', ' ', lambda x: ui.shortuser(x[0].user())),
('number', ' ', lambda x: str(x[0].rev())),
- ('changeset', ' ', lambda x: hexfn(x[0].node())),
+ ('changeset', ' ', lambda x: short(x[0].node())),
('date', ' ', getdate),
('file', ' ', lambda x: x[0].path()),
('line_number', ':', lambda x: str(x[1])),
@@ -279,15 +265,13 @@ def annotate(ui, repo, *pats, **opts):
m = scmutil.match(ctx, pats, opts)
m.bad = bad
follow = not opts.get('no_follow')
- diffopts = patch.diffopts(ui, opts, section='annotate')
for abs in ctx.walk(m):
fctx = ctx[abs]
if not opts.get('text') and util.binary(fctx.data()):
ui.write(_("%s: binary file\n") % ((pats and m.rel(abs)) or abs))
continue
- lines = fctx.annotate(follow=follow, linenumber=linenumber,
- diffopts=diffopts)
+ lines = fctx.annotate(follow=follow, linenumber=linenumber)
pieces = []
for f, sep in funcmap:
@@ -302,9 +286,6 @@ def annotate(ui, repo, *pats, **opts):
for p, l in zip(zip(*pieces), lines):
ui.write("%s: %s" % ("".join(p), l[1]))
- if lines and not lines[-1][1].endswith('\n'):
- ui.write('\n')
-
@command('archive',
[('', 'no-decode', None, _('do not pass files through decoders')),
('p', 'prefix', '', _('directory prefix for files in archive'),
@@ -322,18 +303,6 @@ def archive(ui, repo, dest, **opts):
The archive type is automatically detected based on file
extension (or override using -t/--type).
- .. container:: verbose
-
- Examples:
-
- - create a zip file containing the 1.0 release::
-
- hg archive -r 1.0 project-1.0.zip
-
- - create a tarball excluding .hg files::
-
- hg archive project.tar.gz -X ".hg*"
-
Valid types are:
:``files``: a directory full of files (default)
@@ -379,10 +348,10 @@ def archive(ui, repo, dest, **opts):
@command('backout',
[('', 'merge', None, _('merge with old dirstate parent after backout')),
- ('', 'parent', '',
- _('parent to choose when backing out merge (DEPRECATED)'), _('REV')),
+ ('', 'parent', '', _('parent to choose when backing out merge'), _('REV')),
+ ('t', 'tool', '', _('specify merge tool')),
('r', 'rev', '', _('revision to backout'), _('REV')),
- ] + mergetoolopts + walkopts + commitopts + commitopts2,
+ ] + walkopts + commitopts + commitopts2,
_('[OPTION]... [-r] REV'))
def backout(ui, repo, node=None, rev=None, **opts):
'''reverse effect of earlier changeset
@@ -394,21 +363,15 @@ def backout(ui, repo, node=None, rev=None, **opts):
is committed automatically. Otherwise, hg needs to merge the
changes and the merged result is left uncommitted.
- .. note::
- backout cannot be used to fix either an unwanted or
- incorrect merge.
-
- .. container:: verbose
-
- 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 new child of REV that simply undoes REV.
+ 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 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.
+ 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.
See :hg:`help dates` for a list of formats valid for -d/--date.
@@ -440,7 +403,8 @@ def backout(ui, repo, node=None, rev=None, **opts):
raise util.Abort(_('cannot backout a change with no parents'))
if p2 != nullid:
if not opts.get('parent'):
- raise util.Abort(_('cannot backout a merge changeset'))
+ raise util.Abort(_('cannot backout a merge changeset without '
+ '--parent'))
p = repo.lookup(opts['parent'])
if p not in (p1, p2):
raise util.Abort(_('%s is not a parent of %s') %
@@ -452,46 +416,42 @@ def backout(ui, repo, node=None, rev=None, **opts):
parent = p1
# the backout should appear on the same branch
- wlock = repo.wlock()
- try:
- branch = repo.dirstate.branch()
- hg.clean(repo, node, show_stats=False)
- repo.dirstate.setbranch(branch)
- revert_opts = opts.copy()
- revert_opts['date'] = None
- revert_opts['all'] = True
- revert_opts['rev'] = hex(parent)
- revert_opts['no_backup'] = None
- revert(ui, repo, **revert_opts)
- if not opts.get('merge') and op1 != node:
- try:
- ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
- return hg.update(repo, op1)
- finally:
- ui.setconfig('ui', 'forcemerge', '')
-
- commit_opts = opts.copy()
- commit_opts['addremove'] = False
- if not commit_opts['message'] and not commit_opts['logfile']:
- # we don't translate commit messages
- commit_opts['message'] = "Backed out changeset %s" % short(node)
- commit_opts['force_editor'] = True
- commit(ui, repo, **commit_opts)
- def nice(node):
- return '%d:%s' % (repo.changelog.rev(node), short(node))
- ui.status(_('changeset %s backs out changeset %s\n') %
- (nice(repo.changelog.tip()), nice(node)))
- if opts.get('merge') and op1 != node:
- hg.clean(repo, op1, show_stats=False)
- ui.status(_('merging with changeset %s\n')
- % nice(repo.changelog.tip()))
- try:
- ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
- return hg.merge(repo, hex(repo.changelog.tip()))
- finally:
- ui.setconfig('ui', 'forcemerge', '')
- finally:
- wlock.release()
+ branch = repo.dirstate.branch()
+ hg.clean(repo, node, show_stats=False)
+ repo.dirstate.setbranch(branch)
+ revert_opts = opts.copy()
+ revert_opts['date'] = None
+ revert_opts['all'] = True
+ revert_opts['rev'] = hex(parent)
+ revert_opts['no_backup'] = None
+ revert(ui, repo, **revert_opts)
+ if not opts.get('merge') and op1 != node:
+ try:
+ ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+ return hg.update(repo, op1)
+ finally:
+ ui.setconfig('ui', 'forcemerge', '')
+
+ commit_opts = opts.copy()
+ commit_opts['addremove'] = False
+ if not commit_opts['message'] and not commit_opts['logfile']:
+ # we don't translate commit messages
+ commit_opts['message'] = "Backed out changeset %s" % short(node)
+ commit_opts['force_editor'] = True
+ commit(ui, repo, **commit_opts)
+ def nice(node):
+ return '%d:%s' % (repo.changelog.rev(node), short(node))
+ ui.status(_('changeset %s backs out changeset %s\n') %
+ (nice(repo.changelog.tip()), nice(node)))
+ if opts.get('merge') and op1 != node:
+ hg.clean(repo, op1, show_stats=False)
+ ui.status(_('merging with changeset %s\n')
+ % nice(repo.changelog.tip()))
+ try:
+ ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+ return hg.merge(repo, hex(repo.changelog.tip()))
+ finally:
+ ui.setconfig('ui', 'forcemerge', '')
return 0
@command('bisect',
@@ -521,65 +481,10 @@ def bisect(ui, repo, rev=None, extra=None, command=None,
revision as good or bad without checking it out first.
If you supply a command, it will be used for automatic bisection.
- The environment variable HG_NODE will contain the ID of the
- changeset being tested. The exit status of the command will be
- used to mark revisions as good or bad: status 0 means good, 125
- means to skip the revision, 127 (command not found) will abort the
- bisection, and any other non-zero exit status means the revision
- is bad.
-
- .. container:: verbose
-
- Some examples:
-
- - start a bisection with known bad revision 12, and good revision 34::
-
- hg bisect --bad 34
- hg bisect --good 12
-
- - advance the current bisection by marking current revision as good or
- bad::
-
- hg bisect --good
- hg bisect --bad
-
- - mark the current revision, or a known revision, to be skipped (eg. if
- that revision is not usable because of another issue)::
-
- hg bisect --skip
- hg bisect --skip 23
-
- - forget the current bisection::
-
- hg bisect --reset
-
- - use 'make && make tests' to automatically find the first broken
- revision::
-
- hg bisect --reset
- hg bisect --bad 34
- hg bisect --good 12
- hg bisect --command 'make && make tests'
-
- - see all changesets whose states are already known in the current
- bisection::
-
- hg log -r "bisect(pruned)"
-
- - see the changeset currently being bisected (especially useful
- if running with -U/--noupdate)::
-
- hg log -r "bisect(current)"
-
- - see all changesets that took part in the current bisection::
-
- hg log -r "bisect(range)"
-
- - with the graphlog extension, you can even get a nice graph::
-
- hg log --graph -r "bisect(range)"
-
- See :hg:`help revsets` for more about the `bisect()` keyword.
+ Its exit status will be used to mark revisions as good or bad:
+ status 0 means good, 125 means to skip the revision, 127
+ (command not found) will abort the bisection, and any other
+ non-zero exit status means the revision is bad.
Returns 0 on success.
"""
@@ -655,22 +560,9 @@ def bisect(ui, repo, rev=None, extra=None, command=None,
if command:
changesets = 1
try:
- node = state['current'][0]
- except LookupError:
- if noupdate:
- raise util.Abort(_('current bisect revision is unknown - '
- 'start a new bisect to fix'))
- node, p2 = repo.dirstate.parents()
- if p2 != nullid:
- raise util.Abort(_('current bisect revision is a merge'))
- try:
while changesets:
# update state
- state['current'] = [node]
- hbisect.save_state(repo, state)
- status = util.system(command,
- environ={'HG_NODE': hex(node)},
- out=ui.fout)
+ status = util.system(command, out=ui.fout)
if status == 125:
transition = "skip"
elif status == 0:
@@ -682,20 +574,17 @@ def bisect(ui, repo, rev=None, extra=None, command=None,
raise util.Abort(_("%s killed") % command)
else:
transition = "bad"
- ctx = scmutil.revsingle(repo, rev, node)
+ ctx = scmutil.revsingle(repo, rev)
rev = None # clear for future iterations
state[transition].append(ctx.node())
- ui.status(_('changeset %d:%s: %s\n') % (ctx, ctx, transition))
+ ui.status(_('Changeset %d:%s: %s\n') % (ctx, ctx, transition))
check_state(state, interactive=False)
# bisect
nodes, changesets, good = hbisect.bisect(repo.changelog, state)
# update to next check
- node = nodes[0]
- if not noupdate:
- cmdutil.bailifchanged(repo)
- hg.clean(repo, node, show_stats=False)
+ cmdutil.bailifchanged(repo)
+ hg.clean(repo, nodes[0], show_stats=False)
finally:
- state['current'] = [node]
hbisect.save_state(repo, state)
print_result(nodes, good)
return
@@ -727,8 +616,6 @@ def bisect(ui, repo, rev=None, extra=None, command=None,
if extendnode is not None:
ui.write(_("Extending search to changeset %d:%s\n"
% (extendnode.rev(), extendnode)))
- state['current'] = [extendnode.node()]
- hbisect.save_state(repo, state)
if noupdate:
return
cmdutil.bailifchanged(repo)
@@ -748,8 +635,6 @@ def bisect(ui, repo, rev=None, extra=None, command=None,
ui.write(_("Testing changeset %d:%s "
"(%d changesets remaining, ~%d tests)\n")
% (rev, short(node), changesets, tests))
- state['current'] = [node]
- hbisect.save_state(repo, state)
if not noupdate:
cmdutil.bailifchanged(repo)
return hg.clean(repo, node)
@@ -759,16 +644,16 @@ def bisect(ui, repo, rev=None, extra=None, command=None,
('r', 'rev', '', _('revision'), _('REV')),
('d', 'delete', False, _('delete a given bookmark')),
('m', 'rename', '', _('rename a given bookmark'), _('NAME')),
- ('i', 'inactive', False, _('mark a bookmark inactive'))],
+ ('i', 'inactive', False, _('do not mark a new bookmark active'))],
_('hg bookmarks [-f] [-d] [-i] [-m NAME] [-r REV] [NAME]'))
def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False,
rename=None, inactive=False):
'''track a line of development with movable markers
- Bookmarks are pointers to certain commits that move when committing.
- Bookmarks are local. They can be renamed, copied and deleted. It is
- possible to use :hg:`merge NAME` to merge from a given bookmark, and
- :hg:`update NAME` to update to a given bookmark.
+ Bookmarks are pointers to certain commits that move when
+ committing. Bookmarks are local. They can be renamed, copied and
+ deleted. It is possible to use bookmark names in :hg:`merge` and
+ :hg:`update` to merge and update respectively to a given bookmark.
You can use :hg:`bookmark NAME` to set a bookmark on the working
directory's parent revision with the given name. If you specify
@@ -779,27 +664,11 @@ def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False,
push` and :hg:`help pull`). This requires both the local and remote
repositories to support bookmarks. For versions prior to 1.8, this means
the bookmarks extension must be enabled.
-
- With -i/--inactive, the new bookmark will not be made the active
- bookmark. If -r/--rev is given, the new bookmark will not be made
- active even if -i/--inactive is not given. If no NAME is given, the
- current active bookmark will be marked inactive.
'''
hexfn = ui.debugflag and hex or short
marks = repo._bookmarks
cur = repo.changectx('.').node()
- if delete:
- if mark is None:
- raise util.Abort(_("bookmark name required"))
- if mark not in marks:
- raise util.Abort(_("bookmark '%s' does not exist") % mark)
- if mark == repo._bookmarkcurrent:
- bookmarks.setcurrent(repo, None)
- del marks[mark]
- bookmarks.write(repo)
- return
-
if rename:
if rename not in marks:
raise util.Abort(_("bookmark '%s' does not exist") % rename)
@@ -815,6 +684,17 @@ def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False,
bookmarks.write(repo)
return
+ if delete:
+ if mark is None:
+ raise util.Abort(_("bookmark name required"))
+ if mark not in marks:
+ raise util.Abort(_("bookmark '%s' does not exist") % mark)
+ if mark == repo._bookmarkcurrent:
+ bookmarks.setcurrent(repo, None)
+ del marks[mark]
+ bookmarks.write(repo)
+ return
+
if mark is not None:
if "\n" in mark:
raise util.Abort(_("bookmark name cannot contain newlines"))
@@ -828,15 +708,15 @@ def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False,
if mark in marks and not force:
raise util.Abort(_("bookmark '%s' already exists "
"(use -f to force)") % mark)
- if ((mark in repo.branchmap() or mark == repo.dirstate.branch())
+ if ((mark in repo.branchtags() or mark == repo.dirstate.branch())
and not force):
raise util.Abort(
_("a bookmark cannot have the name of an existing branch"))
if rev:
marks[mark] = repo.lookup(rev)
else:
- marks[mark] = cur
- if not inactive and cur == marks[mark]:
+ marks[mark] = repo.changectx('.').node()
+ if not inactive and repo.changectx('.').node() == marks[mark]:
bookmarks.setcurrent(repo, mark)
bookmarks.write(repo)
return
@@ -870,11 +750,6 @@ def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False,
def branch(ui, repo, label=None, **opts):
"""set or show the current branch name
- .. note::
- Branch names are permanent and global. Use :hg:`bookmark` to create a
- light-weight bookmark instead. See :hg:`help glossary` for more
- information about named branches and bookmarks.
-
With no argument, show the current branch name. With one argument,
set the working directory branch name (the branch will not exist
in the repository until the next commit). Standard practice
@@ -891,31 +766,29 @@ def branch(ui, repo, label=None, **opts):
Use the command :hg:`update` to switch to an existing branch. Use
:hg:`commit --close-branch` to mark this branch as closed.
+ .. note::
+
+ Branch names are permanent. Use :hg:`bookmark` to create a
+ light-weight bookmark instead. See :hg:`help glossary` for more
+ information about named branches and bookmarks.
+
Returns 0 on success.
"""
- if not opts.get('clean') and not label:
- ui.write("%s\n" % repo.dirstate.branch())
- return
- wlock = repo.wlock()
- try:
- if opts.get('clean'):
- label = repo[None].p1().branch()
- repo.dirstate.setbranch(label)
- ui.status(_('reset working directory to branch %s\n') % label)
- elif label:
- if not opts.get('force') and label in repo.branchmap():
- if label not in [p.branch() for p in repo.parents()]:
- raise util.Abort(_('a branch of the same name already'
- ' exists'),
- # i18n: "it" refers to an existing branch
- hint=_("use 'hg update' to switch to it"))
- repo.dirstate.setbranch(label)
- ui.status(_('marked working directory as branch %s\n') % label)
- ui.status(_('(branches are permanent and global, '
- 'did you want a bookmark?)\n'))
- finally:
- wlock.release()
+ if opts.get('clean'):
+ label = repo[None].p1().branch()
+ repo.dirstate.setbranch(label)
+ ui.status(_('reset working directory to branch %s\n') % label)
+ elif label:
+ if not opts.get('force') and label in repo.branchtags():
+ if label not in [p.branch() for p in repo.parents()]:
+ raise util.Abort(_('a branch of the same name already exists'),
+ # i18n: "it" refers to an existing branch
+ hint=_("use 'hg update' to switch to it"))
+ repo.dirstate.setbranch(label)
+ ui.status(_('marked working directory as branch %s\n') % label)
+ else:
+ ui.write("%s\n" % repo.dirstate.branch())
@command('branches',
[('a', 'active', False, _('show only branches that have unmerged heads')),
@@ -937,45 +810,37 @@ def branches(ui, repo, active=False, closed=False):
"""
hexfunc = ui.debugflag and hex or short
-
- activebranches = set([repo[n].branch() for n in repo.heads()])
- branches = []
- for tag, heads in repo.branchmap().iteritems():
- for h in reversed(heads):
- ctx = repo[h]
- isopen = not ctx.closesbranch()
- if isopen:
- tip = ctx
- break
- else:
- tip = repo[heads[-1]]
- isactive = tag in activebranches and isopen
- branches.append((tip, isactive, isopen))
- branches.sort(key=lambda i: (i[1], i[0].rev(), i[0].branch(), i[2]),
- reverse=True)
-
- for ctx, isactive, isopen in branches:
+ activebranches = [repo[n].branch() for n in repo.heads()]
+ def testactive(tag, node):
+ realhead = tag in activebranches
+ open = node in repo.branchheads(tag, closed=False)
+ return realhead and open
+ branches = sorted([(testactive(tag, node), repo.changelog.rev(node), tag)
+ for tag, node in repo.branchtags().items()],
+ reverse=True)
+
+ for isactive, node, tag in branches:
if (not active) or isactive:
- if isactive:
- label = 'branches.active'
- notice = ''
- elif not isopen:
- if not closed:
- continue
- label = 'branches.closed'
- notice = _(' (closed)')
- else:
- label = 'branches.inactive'
- notice = _(' (inactive)')
- if ctx.branch() == repo.dirstate.branch():
- label = 'branches.current'
- rev = str(ctx.rev()).rjust(31 - encoding.colwidth(ctx.branch()))
- rev = ui.label('%s:%s' % (rev, hexfunc(ctx.node())),
- 'log.changeset')
- tag = ui.label(ctx.branch(), label)
if ui.quiet:
ui.write("%s\n" % tag)
else:
+ hn = repo.lookup(node)
+ if isactive:
+ label = 'branches.active'
+ notice = ''
+ elif hn not in repo.branchheads(tag, closed=False):
+ if not closed:
+ continue
+ label = 'branches.closed'
+ notice = _(' (closed)')
+ else:
+ label = 'branches.inactive'
+ notice = _(' (inactive)')
+ if tag == repo.dirstate.branch():
+ label = 'branches.current'
+ rev = str(node).rjust(31 - encoding.colwidth(tag))
+ rev = ui.label('%s:%s' % (rev, hexfunc(hn)), 'log.changeset')
+ tag = ui.label(tag, label)
ui.write("%s %s%s\n" % (tag, rev, notice))
@command('bundle',
@@ -1020,12 +885,6 @@ def bundle(ui, repo, fname, dest=None, **opts):
if 'rev' in opts:
revs = scmutil.revrange(repo, opts['rev'])
- bundletype = opts.get('type', 'bzip2').lower()
- btypes = {'none': 'HG10UN', 'bzip2': 'HG10BZ', 'gzip': 'HG10GZ'}
- bundletype = btypes.get(bundletype)
- if bundletype not in changegroup.bundletypes:
- raise util.Abort(_('unknown bundle type specified with --type'))
-
if opts.get('all'):
base = ['null']
else:
@@ -1036,23 +895,27 @@ def bundle(ui, repo, fname, dest=None, **opts):
"a destination"))
common = [repo.lookup(rev) for rev in base]
heads = revs and map(repo.lookup, revs) or revs
- cg = repo.getbundle('bundle', heads=heads, common=common)
- outgoing = None
else:
dest = ui.expandpath(dest or 'default-push', dest or 'default')
dest, branches = hg.parseurl(dest, opts.get('branch'))
other = hg.peer(repo, opts, dest)
revs, checkout = hg.addbranchrevs(repo, other, branches, revs)
heads = revs and map(repo.lookup, revs) or revs
- outgoing = discovery.findcommonoutgoing(repo, other,
- onlyheads=heads,
- force=opts.get('force'),
- portable=True)
- cg = repo.getlocalbundle('bundle', outgoing)
+ common, outheads = discovery.findcommonoutgoing(repo, other,
+ onlyheads=heads,
+ force=opts.get('force'))
+
+ cg = repo.getbundle('bundle', common=common, heads=heads)
if not cg:
- scmutil.nochangesfound(ui, repo, outgoing and outgoing.excluded)
+ ui.status(_("no changes found\n"))
return 1
+ bundletype = opts.get('type', 'bzip2').lower()
+ btypes = {'none': 'HG10UN', 'bzip2': 'HG10BZ', 'gzip': 'HG10GZ'}
+ bundletype = btypes.get(bundletype)
+ if bundletype not in changegroup.bundletypes:
+ raise util.Abort(_('unknown bundle type specified with --type'))
+
changegroup.writebundle(cg, fname, bundletype)
@command('cat',
@@ -1114,84 +977,56 @@ def clone(ui, source, dest=None, **opts):
The location of the source is added to the new repository's
``.hg/hgrc`` file, as the default to be used for future pulls.
- Only local paths and ``ssh://`` URLs are supported as
- destinations. For ``ssh://`` destinations, no working directory or
- ``.hg/hgrc`` will be created on the remote side.
-
- To pull only a subset of changesets, specify one or more revisions
- identifiers with -r/--rev or branches with -b/--branch. The
- resulting clone will contain only the specified changesets and
- their ancestors. These options (or 'clone src#rev dest') imply
- --pull, even for local source repositories. Note that specifying a
- tag will include the tagged changeset but not the changeset
- containing the tag.
-
- To check out a particular version, use -u/--update, or
- -U/--noupdate to create a clone with no working directory.
-
- .. container:: verbose
-
- For efficiency, hardlinks are used for cloning whenever the
- source and destination are on the same filesystem (note this
- applies only to the repository data, not to the working
- directory). Some filesystems, such as AFS, implement hardlinking
- incorrectly, but do not report errors. In these cases, use the
- --pull option to avoid hardlinking.
-
- In some cases, you can clone repositories and the working
- directory using full hardlinks with ::
-
- $ cp -al REPO REPOCLONE
-
- This is the fastest way to clone, but it is not always safe. The
- operation is not atomic (making sure REPO is not modified during
- the operation is up to you) and you have to make sure your
- editor breaks hardlinks (Emacs and most Linux Kernel tools do
- so). Also, this is not compatible with certain extensions that
- place their metadata under the .hg directory, such as mq.
-
- Mercurial will update the working directory to the first applicable
- revision from this list:
-
- a) null if -U or the source repository has no changesets
- b) if -u . and the source repository is local, the first parent of
- the source repository's working directory
- c) the changeset specified with -u (if a branch name, this means the
- latest head of that branch)
- d) the changeset specified with -r
- e) the tipmost head specified with -b
- f) the tipmost head specified with the url#branch source syntax
- g) the tipmost head of the default branch
- h) tip
-
- Examples:
-
- - clone a remote repository to a new directory named hg/::
-
- hg clone http://selenic.com/hg
-
- - create a lightweight local clone::
-
- hg clone project/ project-feature/
-
- - clone from an absolute path on an ssh server (note double-slash)::
-
- hg clone ssh://user@server//home/projects/alpha/
-
- - do a high-speed clone over a LAN while checking out a
- specified version::
-
- hg clone --uncompressed http://server/repo -u 1.5
-
- - create a repository without changesets after a particular revision::
-
- hg clone -r 04e544 experimental/ good/
-
- - clone (and track) a particular named branch::
-
- hg clone http://selenic.com/hg#stable
-
- See :hg:`help urls` for details on specifying URLs.
+ See :hg:`help urls` for valid source format details.
+
+ It is possible to specify an ``ssh://`` URL as the destination, but no
+ ``.hg/hgrc`` and working directory will be created on the remote side.
+ Please see :hg:`help urls` for important details about ``ssh://`` URLs.
+
+ A set of changesets (tags, or branch names) to pull may be specified
+ by listing each changeset (tag, or branch name) with -r/--rev.
+ If -r/--rev is used, the cloned repository will contain only a subset
+ of the changesets of the source repository. Only the set of changesets
+ defined by all -r/--rev options (including all their ancestors)
+ will be pulled into the destination repository.
+ No subsequent changesets (including subsequent tags) will be present
+ in the destination.
+
+ Using -r/--rev (or 'clone src#rev dest') implies --pull, even for
+ local source repositories.
+
+ For efficiency, hardlinks are used for cloning whenever the source
+ and destination are on the same filesystem (note this applies only
+ to the repository data, not to the working directory). Some
+ filesystems, such as AFS, implement hardlinking incorrectly, but
+ do not report errors. In these cases, use the --pull option to
+ avoid hardlinking.
+
+ In some cases, you can clone repositories and the working directory
+ using full hardlinks with ::
+
+ $ cp -al REPO REPOCLONE
+
+ This is the fastest way to clone, but it is not always safe. The
+ operation is not atomic (making sure REPO is not modified during
+ the operation is up to you) and you have to make sure your editor
+ breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,
+ this is not compatible with certain extensions that place their
+ metadata under the .hg directory, such as mq.
+
+ Mercurial will update the working directory to the first applicable
+ revision from this list:
+
+ a) null if -U or the source repository has no changesets
+ b) if -u . and the source repository is local, the first parent of
+ the source repository's working directory
+ c) the changeset specified with -u (if a branch name, this means the
+ latest head of that branch)
+ d) the changeset specified with -r
+ e) the tipmost head specified with -b
+ f) the tipmost head specified with the url#branch source syntax
+ g) the tipmost head of the default branch
+ h) tip
Returns 0 on success.
"""
@@ -1212,8 +1047,7 @@ def clone(ui, source, dest=None, **opts):
_('mark new/missing files as added/removed before committing')),
('', 'close-branch', None,
_('mark a branch as closed, hiding it from the branch list')),
- ('', 'amend', None, _('amend the parent of the working dir')),
- ] + walkopts + commitopts + commitopts2 + subrepoopts,
+ ] + walkopts + commitopts + commitopts2,
_('[OPTION]... [FILE]...'))
def commit(ui, repo, *pats, **opts):
"""commit the specified files or all outstanding changes
@@ -1233,28 +1067,10 @@ def commit(ui, repo, *pats, **opts):
commit fails, you will find a backup of your message in
``.hg/last-message.txt``.
- The --amend flag can be used to amend the parent of the
- working directory with a new commit that contains the changes
- in the parent in addition to those currently reported by :hg:`status`,
- if there are any. The old commit is stored in a backup bundle in
- ``.hg/strip-backup`` (see :hg:`help bundle` and :hg:`help unbundle`
- on how to restore it).
-
- Message, user and date are taken from the amended commit unless
- specified. When a message isn't specified on the command line,
- the editor will open with the message of the amended commit.
-
- It is not possible to amend public changesets (see :hg:`help phases`)
- or changesets that have children.
-
See :hg:`help dates` for a list of formats valid for -d/--date.
Returns 0 on success, 1 if nothing changed.
"""
- if opts.get('subrepos'):
- # Let --subrepos on the command line overide config setting.
- ui.setconfig('ui', 'commitsubrepos', True)
-
extra = {}
if opts.get('close_branch'):
if repo['.'].node() not in repo.branchheads():
@@ -1262,81 +1078,32 @@ def commit(ui, repo, *pats, **opts):
# current branch, so it's sufficient to test branchheads
raise util.Abort(_('can only close branch heads'))
extra['close'] = 1
+ e = cmdutil.commiteditor
+ if opts.get('force_editor'):
+ e = cmdutil.commitforceeditor
+
+ def commitfunc(ui, repo, message, match, opts):
+ return repo.commit(message, opts.get('user'), opts.get('date'), match,
+ editor=e, extra=extra)
branch = repo[None].branch()
bheads = repo.branchheads(branch)
- if opts.get('amend'):
- if ui.configbool('ui', 'commitsubrepos'):
- raise util.Abort(_('cannot amend recursively'))
-
- old = repo['.']
- if old.phase() == phases.public:
- raise util.Abort(_('cannot amend public changesets'))
- if len(old.parents()) > 1:
- raise util.Abort(_('cannot amend merge changesets'))
- if len(repo[None].parents()) > 1:
- raise util.Abort(_('cannot amend while merging'))
- if old.children():
- raise util.Abort(_('cannot amend changeset with children'))
-
- e = cmdutil.commiteditor
- if opts.get('force_editor'):
- e = cmdutil.commitforceeditor
-
- def commitfunc(ui, repo, message, match, opts):
- editor = e
- # message contains text from -m or -l, if it's empty,
- # open the editor with the old message
- if not message:
- message = old.description()
- editor = cmdutil.commitforceeditor
- return repo.commit(message,
- opts.get('user') or old.user(),
- opts.get('date') or old.date(),
- match,
- editor=editor,
- extra=extra)
-
- current = repo._bookmarkcurrent
- marks = old.bookmarks()
- node = cmdutil.amend(ui, repo, commitfunc, old, extra, pats, opts)
- if node == old.node():
+ node = cmdutil.commit(ui, repo, commitfunc, pats, opts)
+ if not node:
+ stat = repo.status(match=scmutil.match(repo[None], pats, opts))
+ if stat[3]:
+ ui.status(_("nothing changed (%d missing files, see 'hg status')\n")
+ % len(stat[3]))
+ else:
ui.status(_("nothing changed\n"))
- return 1
- elif marks:
- ui.debug('moving bookmarks %r from %s to %s\n' %
- (marks, old.hex(), hex(node)))
- for bm in marks:
- repo._bookmarks[bm] = node
- if bm == current:
- bookmarks.setcurrent(repo, bm)
- bookmarks.write(repo)
- else:
- e = cmdutil.commiteditor
- if opts.get('force_editor'):
- e = cmdutil.commitforceeditor
-
- def commitfunc(ui, repo, message, match, opts):
- return repo.commit(message, opts.get('user'), opts.get('date'),
- match, editor=e, extra=extra)
-
- node = cmdutil.commit(ui, repo, commitfunc, pats, opts)
-
- if not node:
- stat = repo.status(match=scmutil.match(repo[None], pats, opts))
- if stat[3]:
- ui.status(_("nothing changed (%d missing files, see "
- "'hg status')\n") % len(stat[3]))
- else:
- ui.status(_("nothing changed\n"))
- return 1
+ return 1
ctx = repo[node]
parents = ctx.parents()
- if (not opts.get('amend') and bheads and node not in bheads and not
- [x for x in parents if x.node() in bheads and x.branch() == branch]):
+ if bheads and not [x for x in parents
+ if x.node() in bheads and x.branch() == branch]:
ui.status(_('created new head\n'))
# The message is not printed for initial roots. For the other
# changesets, it is printed in the following situations:
@@ -1369,7 +1136,7 @@ def commit(ui, repo, *pats, **opts):
if not opts.get('close_branch'):
for r in parents:
- if r.closesbranch() and r.branch() == branch:
+ if r.extra().get('close') and r.branch() == branch:
ui.status(_('reopening closed branch head %d\n') % r)
if ui.debugflag:
@@ -1486,16 +1253,13 @@ def debugbuilddag(ui, repo, text=None,
tags = []
- lock = tr = None
+ tr = repo.transaction("builddag")
try:
- lock = repo.lock()
- tr = repo.transaction("builddag")
at = -1
atbranch = 'default'
nodeids = []
- id = 0
- ui.progress(_('building'), id, unit=_('revisions'), total=total)
+ ui.progress(_('building'), 0, unit=_('revisions'), total=total)
for type, data in dagparser.parsedag(text):
if type == 'n':
ui.note('node %s\n' % str(data))
@@ -1566,12 +1330,12 @@ def debugbuilddag(ui, repo, text=None,
atbranch = data
ui.progress(_('building'), id, unit=_('revisions'), total=total)
tr.close()
-
- if tags:
- repo.opener.write("localtags", "".join(tags))
finally:
ui.progress(_('building'), None)
- release(tr, lock)
+ tr.release()
+
+ if tags:
+ repo.opener.write("localtags", "".join(tags))
@command('debugbundle', [('a', 'all', None, _('show all details'))], _('FILE'))
def debugbundle(ui, bundlepath, all=None, **opts):
@@ -1707,8 +1471,7 @@ def debugdag(ui, repo, file_=None, *revs, **opts):
revs = set((int(r) for r in revs))
def events():
for r in rlog:
- yield 'n', (r, list(set(p for p in rlog.parentrevs(r)
- if p != -1)))
+ yield 'n', (r, list(set(p for p in rlog.parentrevs(r) if p != -1)))
if r in revs:
yield 'l', (r, "r%i" % r)
elif repo:
@@ -1727,8 +1490,7 @@ def debugdag(ui, repo, file_=None, *revs, **opts):
if newb != b:
yield 'a', newb
b = newb
- yield 'n', (r, list(set(p for p in cl.parentrevs(r)
- if p != -1)))
+ yield 'n', (r, list(set(p for p in cl.parentrevs(r) if p != -1)))
if tags:
ls = labels.get(r)
if ls:
@@ -1786,22 +1548,17 @@ def debugdate(ui, date, range=None, **opts):
_('[-l REV] [-r REV] [-b BRANCH]... [OTHER]'))
def debugdiscovery(ui, repo, remoteurl="default", **opts):
"""runs the changeset discovery protocol in isolation"""
- remoteurl, branches = hg.parseurl(ui.expandpath(remoteurl),
- opts.get('branch'))
+ remoteurl, branches = hg.parseurl(ui.expandpath(remoteurl), opts.get('branch'))
remote = hg.peer(repo, opts, remoteurl)
ui.status(_('comparing with %s\n') % util.hidepassword(remoteurl))
# make sure tests are repeatable
random.seed(12323)
- def doit(localheads, remoteheads, remote=remote):
+ def doit(localheads, remoteheads):
if opts.get('old'):
if localheads:
- raise util.Abort('cannot use localheads with old style '
- 'discovery')
- if not util.safehasattr(remote, 'branches'):
- # enable in-client legacy support
- remote = localrepo.locallegacypeer(remote.local())
+ raise util.Abort('cannot use localheads with old style discovery')
common, _in, hds = treediscovery.findcommonincoming(repo, remote,
force=True)
common = set(common)
@@ -1899,9 +1656,8 @@ def debuggetbundle(ui, repopath, bundlepath, head=None, common=None, **opts):
def debugignore(ui, repo, *values, **opts):
"""display the combined ignore pattern"""
ignore = repo.dirstate._ignore
- includepat = getattr(ignore, 'includepat', None)
- if includepat is not None:
- ui.write("%s\n" % includepat)
+ if hasattr(ignore, 'includepat'):
+ ui.write("%s\n" % ignore.includepat)
else:
raise util.Abort(_("no ignore patterns found"))
@@ -1928,8 +1684,7 @@ def debugindex(ui, repo, file_ = None, **opts):
" nodeid p1 p2\n")
elif format == 1:
ui.write(" rev flag offset length"
- " size " + basehdr + " link p1 p2"
- " nodeid\n")
+ " size " + basehdr + " link p1 p2 nodeid\n")
for i in r:
node = r.node(i)
@@ -1940,7 +1695,7 @@ def debugindex(ui, repo, file_ = None, **opts):
if format == 0:
try:
pp = r.parents(node)
- except Exception:
+ except:
pp = [nullid, nullid]
ui.write("% 6d % 9d % 7d % 6d % 7d %s %s %s\n" % (
i, r.start(i), r.length(i), base, r.linkrev(i),
@@ -1987,7 +1742,7 @@ def debuginstall(ui):
problems = 0
# encoding
- ui.status(_("checking encoding (%s)...\n") % encoding.encoding)
+ ui.status(_("Checking encoding (%s)...\n") % encoding.encoding)
try:
encoding.fromlocal("test")
except util.Abort, inst:
@@ -1996,11 +1751,10 @@ def debuginstall(ui):
problems += 1
# compiled modules
- ui.status(_("checking installed modules (%s)...\n")
+ ui.status(_("Checking installed modules (%s)...\n")
% os.path.dirname(__file__))
try:
import bdiff, mpatch, base85, osutil
- dir(bdiff), dir(mpatch), dir(base85), dir(osutil) # quiet pyflakes
except Exception, inst:
ui.write(" %s\n" % inst)
ui.write(_(" One or more extensions could not be found"))
@@ -2008,10 +1762,9 @@ def debuginstall(ui):
problems += 1
# templates
- import templater
- p = templater.templatepath()
- ui.status(_("checking templates (%s)...\n") % ' '.join(p))
+ ui.status(_("Checking templates...\n"))
try:
+ import templater
templater.templater(templater.templatepath("map-cmdline.default"))
except Exception, inst:
ui.write(" %s\n" % inst)
@@ -2019,7 +1772,7 @@ def debuginstall(ui):
problems += 1
# editor
- ui.status(_("checking commit editor...\n"))
+ ui.status(_("Checking commit editor...\n"))
editor = ui.geteditor()
cmdpath = util.findexe(editor) or util.findexe(editor.split()[0])
if not cmdpath:
@@ -2034,7 +1787,7 @@ def debuginstall(ui):
problems += 1
# check username
- ui.status(_("checking username...\n"))
+ ui.status(_("Checking username...\n"))
try:
ui.username()
except util.Abort, e:
@@ -2043,7 +1796,7 @@ def debuginstall(ui):
problems += 1
if not problems:
- ui.status(_("no problems detected\n"))
+ ui.status(_("No problems detected\n"))
else:
ui.write(_("%s problems detected,"
" please check your install!\n") % problems)
@@ -2054,8 +1807,8 @@ def debuginstall(ui):
def debugknown(ui, repopath, *ids, **opts):
"""test whether node ids are known to a repo
- Every ID must be a full-length hex node id string. Returns a list of 0s
- and 1s indicating unknown/known.
+ Every ID must be a full-length hex node id string. Returns a list of 0s and 1s
+ indicating unknown/known.
"""
repo = hg.peer(ui, opts, repopath)
if not repo.capable('known'):
@@ -2063,50 +1816,6 @@ def debugknown(ui, repopath, *ids, **opts):
flags = repo.known([bin(s) for s in ids])
ui.write("%s\n" % ("".join([f and "1" or "0" for f in flags])))
-@command('debugobsolete', [] + commitopts2,
- _('[OBSOLETED [REPLACEMENT] [REPL... ]'))
-def debugobsolete(ui, repo, precursor=None, *successors, **opts):
- """create arbitrary obsolete marker"""
- def parsenodeid(s):
- try:
- # We do not use revsingle/revrange functions here to accept
- # arbitrary node identifiers, possibly not present in the
- # local repository.
- n = bin(s)
- if len(n) != len(nullid):
- raise TypeError()
- return n
- except TypeError:
- raise util.Abort('changeset references must be full hexadecimal '
- 'node identifiers')
-
- if precursor is not None:
- metadata = {}
- if 'date' in opts:
- metadata['date'] = opts['date']
- metadata['user'] = opts['user'] or ui.username()
- succs = tuple(parsenodeid(succ) for succ in successors)
- l = repo.lock()
- try:
- tr = repo.transaction('debugobsolete')
- try:
- repo.obsstore.create(tr, parsenodeid(precursor), succs, 0,
- metadata)
- tr.close()
- finally:
- tr.release()
- finally:
- l.release()
- else:
- for m in obsolete.allmarkers(repo):
- ui.write(hex(m.precnode()))
- for repl in m.succnodes():
- ui.write(' ')
- ui.write(hex(repl))
- ui.write(' %X ' % m._data[2])
- ui.write(m.metadata())
- ui.write('\n')
-
@command('debugpushkey', [], _('REPO NAMESPACE [KEY OLD NEW]'))
def debugpushkey(ui, repopath, namespace, *keyinfo, **opts):
'''access the pushkey key/value protocol
@@ -2128,27 +1837,6 @@ def debugpushkey(ui, repopath, namespace, *keyinfo, **opts):
ui.write("%s\t%s\n" % (k.encode('string-escape'),
v.encode('string-escape')))
-@command('debugpvec', [], _('A B'))
-def debugpvec(ui, repo, a, b=None):
- ca = scmutil.revsingle(repo, a)
- cb = scmutil.revsingle(repo, b)
- pa = pvec.ctxpvec(ca)
- pb = pvec.ctxpvec(cb)
- if pa == pb:
- rel = "="
- elif pa > pb:
- rel = ">"
- elif pa < pb:
- rel = "<"
- elif pa | pb:
- rel = "|"
- ui.write(_("a: %s\n") % pa)
- ui.write(_("b: %s\n") % pb)
- ui.write(_("depth(a): %d depth(b): %d\n") % (pa._depth, pb._depth))
- ui.write(_("delta: %d hdist: %d distance: %d relation: %s\n") %
- (abs(pa._depth - pb._depth), pvec._hamming(pa._vec, pb._vec),
- pa.distance(pb), rel))
-
@command('debugrebuildstate',
[('r', 'rev', '', _('revision to rebuild to'), _('REV'))],
_('[-r REV] [REV]'))
@@ -2272,11 +1960,6 @@ def debugrevlog(ui, repo, file_ = None, **opts):
elif delta != nullrev:
numother += 1
- # Adjust size min value for empty cases
- for size in (datasize, fullsize, deltasize):
- if size[0] is None:
- size[0] = 0
-
numdeltas = numrevs - numfull
numoprev = numprev - nump1prev - nump2prev
totalrawsize = datasize[2]
@@ -2284,8 +1967,7 @@ def debugrevlog(ui, repo, file_ = None, **opts):
fulltotal = fullsize[2]
fullsize[2] /= numfull
deltatotal = deltasize[2]
- if numrevs - numfull > 0:
- deltasize[2] /= numrevs - numfull
+ deltasize[2] /= numrevs - numfull
totalsize = fulltotal + deltatotal
avgchainlen = sum(chainlengths) / numrevs
compratio = totalrawsize / totalsize
@@ -2337,31 +2019,23 @@ def debugrevlog(ui, repo, file_ = None, **opts):
fmt2 = pcfmtstr(numdeltas, 4)
ui.write('deltas against prev : ' + fmt % pcfmt(numprev, numdeltas))
if numprev > 0:
- ui.write(' where prev = p1 : ' + fmt2 % pcfmt(nump1prev,
- numprev))
- ui.write(' where prev = p2 : ' + fmt2 % pcfmt(nump2prev,
- numprev))
- ui.write(' other : ' + fmt2 % pcfmt(numoprev,
- numprev))
+ ui.write(' where prev = p1 : ' + fmt2 % pcfmt(nump1prev, numprev))
+ ui.write(' where prev = p2 : ' + fmt2 % pcfmt(nump2prev, numprev))
+ ui.write(' other : ' + fmt2 % pcfmt(numoprev, numprev))
if gdelta:
ui.write('deltas against p1 : ' + fmt % pcfmt(nump1, numdeltas))
ui.write('deltas against p2 : ' + fmt % pcfmt(nump2, numdeltas))
- ui.write('deltas against other : ' + fmt % pcfmt(numother,
- numdeltas))
+ ui.write('deltas against other : ' + fmt % pcfmt(numother, numdeltas))
@command('debugrevspec', [], ('REVSPEC'))
def debugrevspec(ui, repo, expr):
- """parse and apply a revision specification
-
- Use --verbose to print the parsed tree before and after aliases
- expansion.
- """
+ '''parse and apply a revision specification'''
if ui.verbose:
tree = revset.parse(expr)[0]
- ui.note(revset.prettyformat(tree), "\n")
+ ui.note(tree, "\n")
newtree = revset.findaliases(ui, tree)
if newtree != tree:
- ui.note(revset.prettyformat(newtree), "\n")
+ ui.note(newtree, "\n")
func = revset.match(ui, expr)
for c in func(repo, range(len(repo))):
ui.write("%s\n" % c)
@@ -2381,7 +2055,7 @@ def debugsetparents(ui, repo, rev1, rev2=None):
wlock = repo.wlock()
try:
- repo.setparents(r1, r2)
+ repo.dirstate.setparents(r1, r2)
finally:
wlock.release()
@@ -2412,7 +2086,7 @@ def debugstate(ui, repo, nodates=None, datesort=None):
if ent[1] & 020000:
mode = 'lnk'
else:
- mode = '%3o' % (ent[1] & 0777 & ~util.umask)
+ mode = '%3o' % (ent[1] & 0777)
ui.write("%c %s %10d %s%s\n" % (ent[0], mode, ent[2], timestr, file_))
for f in repo.dirstate.copies():
ui.write(_("copy: %s -> %s\n") % (repo.dirstate.copied(f), f))
@@ -2435,14 +2109,11 @@ def debugwalk(ui, repo, *pats, **opts):
items = list(repo.walk(m))
if not items:
return
- f = lambda fn: fn
- if ui.configbool('ui', 'slash') and os.sep != '/':
- f = lambda fn: util.normpath(fn)
fmt = 'f %%-%ds %%-%ds %%s' % (
max([len(abs) for abs in items]),
max([len(m.rel(abs)) for abs in items]))
for abs in items:
- line = fmt % (abs, f(m.rel(abs)), m.exact(abs) and 'exact' or '')
+ line = fmt % (abs, m.rel(abs), m.exact(abs) and 'exact' or '')
ui.write("%s\n" % line.rstrip())
@command('debugwireargs',
@@ -2499,32 +2170,6 @@ def diff(ui, repo, *pats, **opts):
Use the -g/--git option to generate diffs in the git extended diff
format. For more information, read :hg:`help diffs`.
- .. container:: verbose
-
- Examples:
-
- - compare a file in the current working directory to its parent::
-
- hg diff foo.c
-
- - compare two historical versions of a directory, with rename info::
-
- hg diff --git -r 1.0:1.2 lib/
-
- - get change stats relative to the last change on some date::
-
- hg diff --stat -r "date('may 2')"
-
- - diff all newly-added files that contain a keyword::
-
- hg diff "set:added() and grep(GNU)"
-
- - compare a revision and its parents::
-
- hg diff -c 9353 # compare against first parent
- hg diff -r 9353^:9353 # same using revset syntax
- hg diff -r 9353^2:9353 # compare against the second parent
-
Returns 0 on success.
"""
@@ -2556,7 +2201,7 @@ def diff(ui, repo, *pats, **opts):
('', 'switch-parent', None, _('diff against the second parent')),
('r', 'rev', [], _('revisions to export'), _('REV')),
] + diffopts,
- _('[OPTION]... [-o OUTFILESPEC] [-r] REV...'))
+ _('[OPTION]... [-o OUTFILESPEC] REV...'))
def export(ui, repo, *changesets, **opts):
"""dump the header and diffs for one or more changesets
@@ -2580,7 +2225,6 @@ def export(ui, repo, *changesets, **opts):
:``%R``: changeset revision number
:``%b``: basename of the exporting repository
:``%h``: short-form changeset hash (12 hexadecimal digits)
- :``%m``: first line of the commit message (only alphanumeric characters)
:``%n``: zero-padded sequence number, starting at 1
:``%r``: zero-padded changeset revision number
@@ -2594,31 +2238,12 @@ def export(ui, repo, *changesets, **opts):
With the --switch-parent option, the diff will be against the
second parent. It can be useful to review a merge.
- .. container:: verbose
-
- Examples:
-
- - use export and import to transplant a bugfix to the current
- branch::
-
- hg export -r 9353 | hg import -
-
- - export all the changesets between two revisions to a file with
- rename information::
-
- hg export --git -r 123:150 > changes.txt
-
- - split outgoing changes into a series of patches with
- descriptive names::
-
- hg export -r "outgoing()" -o "%n-%m.patch"
-
Returns 0 on success.
"""
changesets += tuple(opts.get('rev', []))
- revs = scmutil.revrange(repo, changesets)
- if not revs:
+ if not changesets:
raise util.Abort(_("export requires at least one changeset"))
+ revs = scmutil.revrange(repo, changesets)
if len(revs) > 1:
ui.note(_('exporting patches:\n'))
else:
@@ -2640,18 +2265,6 @@ def forget(ui, repo, *pats, **opts):
To undo a forget before the next commit, see :hg:`add`.
- .. container:: verbose
-
- Examples:
-
- - forget newly-added binary files::
-
- hg forget "set:added() and binary()"
-
- - forget files that would be excluded by .hgignore::
-
- hg forget "set:hgignore()"
-
Returns 0 on success.
"""
@@ -2659,206 +2272,23 @@ def forget(ui, repo, *pats, **opts):
raise util.Abort(_('no files specified'))
m = scmutil.match(repo[None], pats, opts)
- rejected = cmdutil.forget(ui, repo, m, prefix="", explicitonly=False)[0]
- return rejected and 1 or 0
-
-@command(
- 'graft',
- [('r', 'rev', [], _('revisions to graft'), _('REV')),
- ('c', 'continue', False, _('resume interrupted graft')),
- ('e', 'edit', False, _('invoke editor on commit messages')),
- ('', 'log', None, _('append graft info to log message')),
- ('D', 'currentdate', False,
- _('record the current date as commit date')),
- ('U', 'currentuser', False,
- _('record the current user as committer'), _('DATE'))]
- + commitopts2 + mergetoolopts + dryrunopts,
- _('[OPTION]... [-r] REV...'))
-def graft(ui, repo, *revs, **opts):
- '''copy changes from other branches onto the current branch
-
- This command uses Mercurial's merge logic to copy individual
- changes from other branches without merging branches in the
- history graph. This is sometimes known as 'backporting' or
- 'cherry-picking'. By default, graft will copy user, date, and
- description from the source changesets.
-
- Changesets that are ancestors of the current revision, that have
- already been grafted, or that are merges will be skipped.
-
- If --log is specified, log messages will have a comment appended
- of the form::
-
- (grafted from CHANGESETHASH)
-
- If a graft merge results in conflicts, the graft process is
- interrupted so that the current merge can be manually resolved.
- Once all conflicts are addressed, the graft process can be
- continued with the -c/--continue option.
-
- .. note::
- The -c/--continue option does not reapply earlier options.
-
- .. container:: verbose
-
- Examples:
-
- - copy a single change to the stable branch and edit its description::
-
- hg update stable
- hg graft --edit 9393
-
- - graft a range of changesets with one exception, updating dates::
-
- hg graft -D "2085::2093 and not 2091"
-
- - continue a graft after resolving conflicts::
-
- hg graft -c
-
- - show the source of a grafted changeset::
-
- hg log --debug -r tip
-
- Returns 0 on successful completion.
- '''
-
- revs = list(revs)
- revs.extend(opts['rev'])
-
- if not opts.get('user') and opts.get('currentuser'):
- opts['user'] = ui.username()
- if not opts.get('date') and opts.get('currentdate'):
- opts['date'] = "%d %d" % util.makedate()
-
- editor = None
- if opts.get('edit'):
- editor = cmdutil.commitforceeditor
-
- cont = False
- if opts['continue']:
- cont = True
- if revs:
- raise util.Abort(_("can't specify --continue and revisions"))
- # read in unfinished revisions
- try:
- nodes = repo.opener.read('graftstate').splitlines()
- revs = [repo[node].rev() for node in nodes]
- except IOError, inst:
- if inst.errno != errno.ENOENT:
- raise
- raise util.Abort(_("no graft state found, can't continue"))
- else:
- cmdutil.bailifchanged(repo)
- if not revs:
- raise util.Abort(_('no revisions specified'))
- revs = scmutil.revrange(repo, revs)
-
- # check for merges
- for rev in repo.revs('%ld and merge()', revs):
- ui.warn(_('skipping ungraftable merge revision %s\n') % rev)
- revs.remove(rev)
- if not revs:
- return -1
-
- # check for ancestors of dest branch
- for rev in repo.revs('::. and %ld', revs):
- ui.warn(_('skipping ancestor revision %s\n') % rev)
- revs.remove(rev)
- if not revs:
- return -1
-
- # analyze revs for earlier grafts
- ids = {}
- for ctx in repo.set("%ld", revs):
- ids[ctx.hex()] = ctx.rev()
- n = ctx.extra().get('source')
- if n:
- ids[n] = ctx.rev()
-
- # check ancestors for earlier grafts
- ui.debug('scanning for duplicate grafts\n')
- for ctx in repo.set("::. - ::%ld", revs):
- n = ctx.extra().get('source')
- if n in ids:
- r = repo[n].rev()
- if r in revs:
- ui.warn(_('skipping already grafted revision %s\n') % r)
- revs.remove(r)
- elif ids[n] in revs:
- ui.warn(_('skipping already grafted revision %s '
- '(same origin %d)\n') % (ids[n], r))
- revs.remove(ids[n])
- elif ctx.hex() in ids:
- r = ids[ctx.hex()]
- ui.warn(_('skipping already grafted revision %s '
- '(was grafted from %d)\n') % (r, ctx.rev()))
- revs.remove(r)
- if not revs:
- return -1
-
- wlock = repo.wlock()
- try:
- for pos, ctx in enumerate(repo.set("%ld", revs)):
- current = repo['.']
-
- ui.status(_('grafting revision %s\n') % ctx.rev())
- if opts.get('dry_run'):
- continue
+ s = repo.status(match=m, clean=True)
+ forget = sorted(s[0] + s[1] + s[3] + s[6])
+ errs = 0
- # we don't merge the first commit when continuing
- if not cont:
- # perform the graft merge with p1(rev) as 'ancestor'
- try:
- # ui.forcemerge is an internal variable, do not document
- repo.ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
- stats = mergemod.update(repo, ctx.node(), True, True, False,
- ctx.p1().node())
- finally:
- repo.ui.setconfig('ui', 'forcemerge', '')
- # report any conflicts
- if stats and stats[3] > 0:
- # write out state for --continue
- nodelines = [repo[rev].hex() + "\n" for rev in revs[pos:]]
- repo.opener.write('graftstate', ''.join(nodelines))
- raise util.Abort(
- _("unresolved conflicts, can't continue"),
- hint=_('use hg resolve and hg graft --continue'))
- else:
- cont = False
-
- # drop the second merge parent
- repo.setparents(current.node(), nullid)
- repo.dirstate.write()
- # fix up dirstate for copies and renames
- cmdutil.duplicatecopies(repo, ctx.rev(), ctx.p1().rev())
-
- # commit
- source = ctx.extra().get('source')
- if not source:
- source = ctx.hex()
- extra = {'source': source}
- user = ctx.user()
- if opts.get('user'):
- user = opts['user']
- date = ctx.date()
- if opts.get('date'):
- date = opts['date']
- message = ctx.description()
- if opts.get('log'):
- message += '\n(grafted from %s)' % ctx.hex()
- node = repo.commit(text=message, user=user,
- date=date, extra=extra, editor=editor)
- if node is None:
- ui.status(_('graft for revision %s is empty\n') % ctx.rev())
- finally:
- wlock.release()
+ for f in m.files():
+ if f not in repo.dirstate and not os.path.isdir(m.rel(f)):
+ if os.path.exists(m.rel(f)):
+ ui.warn(_('not removing %s: file is already untracked\n')
+ % m.rel(f))
+ errs = 1
- # remove state when we complete successfully
- if not opts.get('dry_run') and os.path.exists(repo.join('graftstate')):
- util.unlinkpath(repo.join('graftstate'))
+ for f in forget:
+ if ui.verbose or not m.exact(f):
+ ui.status(_('removing %s\n') % m.rel(f))
- return 0
+ repo[None].forget(forget)
+ return errs
@command('grep',
[('0', 'print0', None, _('end fields with NUL')),
@@ -2895,7 +2325,7 @@ def grep(ui, repo, pattern, *pats, **opts):
Returns 0 if a match is found, 1 otherwise.
"""
- reflags = re.M
+ reflags = 0
if opts.get('ignore_case'):
reflags |= re.I
try:
@@ -2919,7 +2349,7 @@ def grep(ui, repo, pattern, *pats, **opts):
mstart, mend = match.span()
linenum += body.count('\n', begin, mstart) + 1
lstart = body.rfind('\n', begin, mstart) + 1 or begin
- begin = body.find('\n', mend) + 1 or len(body) + 1
+ begin = body.find('\n', mend) + 1 or len(body)
lend = begin - 1
yield linenum, mstart - lstart, mend - lstart, body[lstart:lend]
@@ -3076,7 +2506,7 @@ def grep(ui, repo, pattern, *pats, **opts):
('a', 'active', False, _('show active branchheads only (DEPRECATED)')),
('c', 'closed', False, _('show normal and closed branch heads')),
] + templateopts,
- _('[-ct] [-r STARTREV] [REV]...'))
+ _('[-ac] [-r STARTREV] [REV]...'))
def heads(ui, repo, *branchrevs, **opts):
"""show current repository heads or show branch heads
@@ -3130,7 +2560,7 @@ def heads(ui, repo, *branchrevs, **opts):
headless = ', '.join(b for b in branches - haveheads)
msg = _('no open branch heads found on branches %s')
if opts.get('rev'):
- msg += _(' (started at %s)') % opts['rev']
+ msg += _(' (started at %s)' % opts['rev'])
ui.warn((msg + '\n') % headless)
if not heads:
@@ -3144,11 +2574,9 @@ def heads(ui, repo, *branchrevs, **opts):
@command('help',
[('e', 'extension', None, _('show only help for extensions')),
- ('c', 'command', None, _('show only help for commands')),
- ('k', 'keyword', '', _('show topics matching keyword')),
- ],
+ ('c', 'command', None, _('show only help for commands'))],
_('[-ec] [TOPIC]'))
-def help_(ui, name=None, unknowncmd=False, full=True, **opts):
+def help_(ui, name=None, with_version=False, unknowncmd=False, full=True, **opts):
"""show help for a given topic or a help overview
With no arguments, print a list of commands with short help messages.
@@ -3158,10 +2586,33 @@ def help_(ui, name=None, unknowncmd=False, full=True, **opts):
Returns 0 if successful.
"""
-
+ option_lists = []
textwidth = min(ui.termwidth(), 80) - 2
+ def addglobalopts(aliases):
+ if ui.verbose:
+ option_lists.append((_("global options:"), globalopts))
+ if name == 'shortlist':
+ option_lists.append((_('use "hg help" for the full list '
+ 'of commands'), ()))
+ else:
+ if name == 'shortlist':
+ msg = _('use "hg help" for the full list of commands '
+ 'or "hg -v" for details')
+ elif name and not full:
+ msg = _('use "hg help %s" to show the full help text' % name)
+ elif aliases:
+ msg = _('use "hg -v help%s" to show builtin aliases and '
+ 'global options') % (name and " " + name or "")
+ else:
+ msg = _('use "hg -v help %s" to show global options') % name
+ option_lists.append((msg, ()))
+
def helpcmd(name):
+ if with_version:
+ version_(ui)
+ ui.write('\n')
+
try:
aliases, entry = cmdutil.findcmd(name, table, strict=unknowncmd)
except error.AmbiguousCommand, inst:
@@ -3169,47 +2620,51 @@ def help_(ui, name=None, unknowncmd=False, full=True, **opts):
# except block, nor can be used inside a lambda. python issue4617
prefix = inst.args[0]
select = lambda c: c.lstrip('^').startswith(prefix)
- rst = helplist(select)
- return rst
-
- rst = []
+ helplist(_('list of commands:\n\n'), select)
+ return
# check if it's an invalid alias and display its error if it is
if getattr(entry[0], 'badalias', False):
if not unknowncmd:
- ui.pushbuffer()
entry[0](ui)
- rst.append(ui.popbuffer())
- return rst
+ return
# synopsis
if len(entry) > 2:
if entry[2].startswith('hg'):
- rst.append("%s\n" % entry[2])
+ ui.write("%s\n" % entry[2])
else:
- rst.append('hg %s %s\n' % (aliases[0], entry[2]))
+ ui.write('hg %s %s\n' % (aliases[0], entry[2]))
else:
- rst.append('hg %s\n' % aliases[0])
+ ui.write('hg %s\n' % aliases[0])
+
# aliases
if full and not ui.quiet and len(aliases) > 1:
- rst.append(_("\naliases: %s\n") % ', '.join(aliases[1:]))
- rst.append('\n')
+ ui.write(_("\naliases: %s\n") % ', '.join(aliases[1:]))
# description
doc = gettext(entry[0].__doc__)
if not doc:
doc = _("(no help text available)")
- if util.safehasattr(entry[0], 'definition'): # aliased command
+ if hasattr(entry[0], 'definition'): # aliased command
if entry[0].definition.startswith('!'): # shell alias
doc = _('shell alias for::\n\n %s') % entry[0].definition[1:]
else:
doc = _('alias for: hg %s\n\n%s') % (entry[0].definition, doc)
- doc = doc.splitlines(True)
if ui.quiet or not full:
- rst.append(doc[0])
- else:
- rst.extend(doc)
- rst.append('\n')
+ doc = doc.splitlines()[0]
+ keep = ui.verbose and ['verbose'] or []
+ formatted, pruned = minirst.format(doc, textwidth, keep=keep)
+ ui.write("\n%s\n" % formatted)
+ if pruned:
+ ui.write(_('\nuse "hg -v help %s" to show verbose help\n') % name)
+
+ if not ui.quiet:
+ # options
+ if entry[1]:
+ option_lists.append((_("options:\n"), entry[1]))
+
+ addglobalopts(False)
# check if this command shadows a non-trivial (multi-line)
# extension help text
@@ -3219,36 +2674,11 @@ def help_(ui, name=None, unknowncmd=False, full=True, **opts):
if '\n' in doc.strip():
msg = _('use "hg help -e %s" to show help for '
'the %s extension') % (name, name)
- rst.append('\n%s\n' % msg)
+ ui.write('\n%s\n' % msg)
except KeyError:
pass
- # options
- if not ui.quiet and entry[1]:
- rst.append('\n%s\n\n' % _("options:"))
- rst.append(help.optrst(entry[1], ui.verbose))
-
- if ui.verbose:
- rst.append('\n%s\n\n' % _("global options:"))
- rst.append(help.optrst(globalopts, ui.verbose))
-
- if not ui.verbose:
- if not full:
- rst.append(_('\nuse "hg help %s" to show the full help text\n')
- % name)
- elif not ui.quiet:
- rst.append(_('\nuse "hg -v help %s" to show more info\n')
- % name)
- return rst
-
-
- def helplist(select=None):
- # list of commands
- if name == "shortlist":
- header = _('basic commands:\n\n')
- else:
- header = _('list of commands:\n\n')
-
+ def helplist(header, select=None):
h = {}
cmds = {}
for c, e in table.iteritems():
@@ -3272,60 +2702,24 @@ def help_(ui, name=None, unknowncmd=False, full=True, **opts):
h[f] = doc.splitlines()[0].rstrip()
cmds[f] = c.lstrip("^")
- rst = []
if not h:
- if not ui.quiet:
- rst.append(_('no commands defined\n'))
- return rst
+ ui.status(_('no commands defined\n'))
+ return
- if not ui.quiet:
- rst.append(header)
+ ui.status(header)
fns = sorted(h)
+ m = max(map(len, fns))
for f in fns:
if ui.verbose:
commands = cmds[f].replace("|",", ")
- rst.append(" :%s: %s\n" % (commands, h[f]))
+ ui.write(" %s:\n %s\n"%(commands, h[f]))
else:
- rst.append(' :%s: %s\n' % (f, h[f]))
-
- if not name:
- exts = help.listexts(_('enabled extensions:'), extensions.enabled())
- if exts:
- rst.append('\n')
- rst.extend(exts)
-
- rst.append(_("\nadditional help topics:\n\n"))
- topics = []
- for names, header, doc in help.helptable:
- topics.append((names[0], header))
- for t, desc in topics:
- rst.append(" :%s: %s\n" % (t, desc))
-
- optlist = []
- if not ui.quiet:
- if ui.verbose:
- optlist.append((_("global options:"), globalopts))
- if name == 'shortlist':
- optlist.append((_('use "hg help" for the full list '
- 'of commands'), ()))
- else:
- if name == 'shortlist':
- msg = _('use "hg help" for the full list of commands '
- 'or "hg -v" for details')
- elif name and not full:
- msg = _('use "hg help %s" to show the full help '
- 'text') % name
- else:
- msg = _('use "hg -v help%s" to show builtin aliases and '
- 'global options') % (name and " " + name or "")
- optlist.append((msg, ()))
+ ui.write('%s\n' % (util.wrap(h[f], textwidth,
+ initindent=' %-*s ' % (m, f),
+ hangindent=' ' * (m + 4))))
- if optlist:
- for title, options in optlist:
- rst.append('\n%s\n' % title)
- if options:
- rst.append('\n%s\n' % help.optrst(options, ui.verbose))
- return rst
+ if not ui.quiet:
+ addglobalopts(True)
def helptopic(name):
for names, header, doc in help.helptable:
@@ -3334,20 +2728,20 @@ def help_(ui, name=None, unknowncmd=False, full=True, **opts):
else:
raise error.UnknownCommand(name)
- rst = ["%s\n\n" % header]
# description
if not doc:
- rst.append(" %s\n" % _("(no help text available)"))
- if util.safehasattr(doc, '__call__'):
- rst += [" %s\n" % l for l in doc().splitlines()]
+ doc = _("(no help text available)")
+ if hasattr(doc, '__call__'):
+ doc = doc()
+ ui.write("%s\n\n" % header)
+ ui.write("%s\n" % minirst.format(doc, textwidth, indent=4))
try:
cmdutil.findcmd(name, table)
- rst.append(_('\nuse "hg help -c %s" to see help for '
+ ui.write(_('\nuse "hg help -c %s" to see help for '
'the %s command\n') % (name, name))
except error.UnknownCommand:
pass
- return rst
def helpext(name):
try:
@@ -3363,10 +2757,10 @@ def help_(ui, name=None, unknowncmd=False, full=True, **opts):
head, tail = doc, ""
else:
head, tail = doc.split('\n', 1)
- rst = [_('%s extension - %s\n\n') % (name.split('.')[-1], head)]
+ ui.write(_('%s extension - %s\n\n') % (name.split('.')[-1], head))
if tail:
- rst.extend(tail.splitlines(True))
- rst.append('\n')
+ ui.write(minirst.format(tail, textwidth))
+ ui.status('\n\n')
if mod:
try:
@@ -3374,38 +2768,23 @@ def help_(ui, name=None, unknowncmd=False, full=True, **opts):
except AttributeError:
ct = {}
modcmds = set([c.split('|', 1)[0] for c in ct])
- rst.extend(helplist(modcmds.__contains__))
+ helplist(_('list of commands:\n\n'), modcmds.__contains__)
else:
- rst.append(_('use "hg help extensions" for information on enabling '
+ ui.write(_('use "hg help extensions" for information on enabling '
'extensions\n'))
- return rst
def helpextcmd(name):
- cmd, ext, mod = extensions.disabledcmd(ui, name,
- ui.configbool('ui', 'strict'))
+ cmd, ext, mod = extensions.disabledcmd(ui, name, ui.config('ui', 'strict'))
doc = gettext(mod.__doc__).splitlines()[0]
- rst = help.listexts(_("'%s' is provided by the following "
+ msg = help.listexts(_("'%s' is provided by the following "
"extension:") % cmd, {ext: doc}, indent=4)
- rst.append('\n')
- rst.append(_('use "hg help extensions" for information on enabling '
+ ui.write(minirst.format(msg, textwidth))
+ ui.write('\n\n')
+ ui.write(_('use "hg help extensions" for information on enabling '
'extensions\n'))
- return rst
-
-
- rst = []
- kw = opts.get('keyword')
- if kw:
- matches = help.topicmatch(kw)
- for t, title in (('topics', _('Topics')),
- ('commands', _('Commands')),
- ('extensions', _('Extensions')),
- ('extensioncommands', _('Extension Commands'))):
- if matches[t]:
- rst.append('%s:\n\n' % title)
- rst.extend(minirst.maketable(sorted(matches[t]), 1))
- rst.append('\n')
- elif name and name != 'shortlist':
+
+ if name and name != 'shortlist':
i = None
if unknowncmd:
queries = (helpextcmd,)
@@ -3417,23 +2796,94 @@ def help_(ui, name=None, unknowncmd=False, full=True, **opts):
queries = (helptopic, helpcmd, helpext, helpextcmd)
for f in queries:
try:
- rst = f(name)
+ f(name)
i = None
break
except error.UnknownCommand, inst:
i = inst
if i:
raise i
+
else:
# program name
- if not ui.quiet:
- rst = [_("Mercurial Distributed SCM\n"), '\n']
- rst.extend(helplist())
+ if ui.verbose or with_version:
+ version_(ui)
+ else:
+ ui.status(_("Mercurial Distributed SCM\n"))
+ ui.status('\n')
+
+ # list of commands
+ if name == "shortlist":
+ header = _('basic commands:\n\n')
+ else:
+ header = _('list of commands:\n\n')
- keep = ui.verbose and ['verbose'] or []
- formatted, pruned = minirst.format(''.join(rst), textwidth, keep=keep)
- ui.write(formatted)
+ helplist(header)
+ if name != 'shortlist':
+ text = help.listexts(_('enabled extensions:'), extensions.enabled())
+ if text:
+ ui.write("\n%s\n" % minirst.format(text, textwidth))
+
+ # list all option lists
+ opt_output = []
+ multioccur = False
+ for title, options in option_lists:
+ opt_output.append(("\n%s" % title, None))
+ for option in options:
+ if len(option) == 5:
+ shortopt, longopt, default, desc, optlabel = option
+ else:
+ shortopt, longopt, default, desc = option
+ optlabel = _("VALUE") # default label
+
+ if _("DEPRECATED") in desc and not ui.verbose:
+ continue
+ if isinstance(default, list):
+ numqualifier = " %s [+]" % optlabel
+ multioccur = True
+ elif (default is not None) and not isinstance(default, bool):
+ numqualifier = " %s" % optlabel
+ else:
+ numqualifier = ""
+ opt_output.append(("%2s%s" %
+ (shortopt and "-%s" % shortopt,
+ longopt and " --%s%s" %
+ (longopt, numqualifier)),
+ "%s%s" % (desc,
+ default
+ and _(" (default: %s)") % default
+ or "")))
+ if multioccur:
+ msg = _("\n[+] marked option can be specified multiple times")
+ if ui.verbose and name != 'shortlist':
+ opt_output.append((msg, None))
+ else:
+ opt_output.insert(-1, (msg, None))
+ if not name:
+ ui.write(_("\nadditional help topics:\n\n"))
+ topics = []
+ for names, header, doc in help.helptable:
+ topics.append((sorted(names, key=len, reverse=True)[0], header))
+ topics_len = max([len(s[0]) for s in topics])
+ for t, desc in topics:
+ ui.write(" %-*s %s\n" % (topics_len, t, desc))
+
+ if opt_output:
+ colwidth = encoding.colwidth
+ # normalize: (opt or message, desc or None, width of opt)
+ entries = [desc and (opt, desc, colwidth(opt)) or (opt, None, 0)
+ for opt, desc in opt_output]
+ hanging = max([e[2] for e in entries])
+ for opt, desc, width in entries:
+ if desc:
+ initindent = ' %s%s ' % (opt, ' ' * (hanging - width))
+ hangindent = ' ' * (hanging + 3)
+ ui.write('%s\n' % (util.wrap(desc, textwidth,
+ initindent=initindent,
+ hangindent=hangindent)))
+ else:
+ ui.write("%s\n" % opt)
@command('identify|id',
[('r', 'rev', '',
@@ -3442,11 +2892,10 @@ def help_(ui, name=None, unknowncmd=False, full=True, **opts):
('i', 'id', None, _('show global revision id')),
('b', 'branch', None, _('show branch')),
('t', 'tags', None, _('show tags')),
- ('B', 'bookmarks', None, _('show bookmarks')),
- ] + remoteopts,
+ ('B', 'bookmarks', None, _('show bookmarks'))],
_('[-nibtB] [-r REV] [SOURCE]'))
def identify(ui, repo, source=None, rev=None,
- num=None, id=None, branch=None, tags=None, bookmarks=None, **opts):
+ num=None, id=None, branch=None, tags=None, bookmarks=None):
"""identify the working copy or specified revision
Print a summary identifying the repository state at REV using one or
@@ -3460,22 +2909,6 @@ def identify(ui, repo, source=None, rev=None,
Specifying a path to a repository root or Mercurial bundle will
cause lookup to operate on that repository/bundle.
- .. container:: verbose
-
- Examples:
-
- - generate a build identifier for the working directory::
-
- hg id --id > build-id.dat
-
- - find the revision corresponding to a tag::
-
- hg id -n -r 1.3
-
- - check the most recent revision of a remote repository::
-
- hg id -r tip http://selenic.com/hg/
-
Returns 0 if successful.
"""
@@ -3490,11 +2923,10 @@ def identify(ui, repo, source=None, rev=None,
if source:
source, branches = hg.parseurl(ui.expandpath(source))
- peer = hg.peer(ui, opts, source)
- repo = peer.local()
- revs, checkout = hg.addbranchrevs(repo, peer, branches, None)
+ repo = hg.peer(ui, {}, source)
+ revs, checkout = hg.addbranchrevs(repo, repo, branches, None)
- if not repo:
+ if not repo.local():
if num or branch or tags:
raise util.Abort(
_("can't query remote revision number, branch, or tags"))
@@ -3503,16 +2935,16 @@ def identify(ui, repo, source=None, rev=None,
if not rev:
rev = "tip"
- remoterev = peer.lookup(rev)
+ remoterev = repo.lookup(rev)
if default or id:
output = [hexfunc(remoterev)]
def getbms():
bms = []
- if 'bookmarks' in peer.listkeys('namespaces'):
+ if 'bookmarks' in repo.listkeys('namespaces'):
hexremoterev = hex(remoterev)
- bms = [bm for bm, bmr in peer.listkeys('bookmarks').iteritems()
+ bms = [bm for bm, bmr in repo.listkeys('bookmarks').iteritems()
if bmr == hexremoterev]
return bms
@@ -3530,9 +2962,7 @@ def identify(ui, repo, source=None, rev=None,
parents = ctx.parents()
changed = ""
if default or id or num:
- if (util.any(repo.status())
- or util.any(ctx.sub(s).dirty() for s in ctx.substate)):
- changed = '+'
+ changed = util.any(repo.status()) and "+" or ""
if default or id:
output = ["%s%s" %
('+'.join([hexfunc(p.node()) for p in parents]), changed)]
@@ -3577,7 +3007,6 @@ def identify(ui, repo, source=None, rev=None,
_('directory strip option for patch. This has the same '
'meaning as the corresponding patch option'), _('NUM')),
('b', 'base', '', _('base path (DEPRECATED)'), _('PATH')),
- ('e', 'edit', False, _('invoke editor on commit messages')),
('f', 'force', None, _('skip check for outstanding uncommitted changes')),
('', 'no-commit', None,
_("don't commit, just update the working directory")),
@@ -3589,7 +3018,7 @@ def identify(ui, repo, source=None, rev=None,
_('use any branch information in patch (implied by --exact)'))] +
commitopts + commitopts2 + similarityopts,
_('[OPTION]... PATCH...'))
-def import_(ui, repo, patch1=None, *patches, **opts):
+def import_(ui, repo, patch1, *patches, **opts):
"""import an ordered set of patches
Import a list of patches and commit them individually (unless
@@ -3622,49 +3051,20 @@ def import_(ui, repo, patch1=None, *patches, **opts):
revision.
With -s/--similarity, hg will attempt to discover renames and
- copies in the patch in the same way as :hg:`addremove`.
+ copies in the patch in the same way as 'addremove'.
To read a patch from standard input, use "-" as the patch name. If
a URL is specified, the patch will be downloaded from it.
See :hg:`help dates` for a list of formats valid for -d/--date.
- .. container:: verbose
-
- Examples:
-
- - import a traditional patch from a website and detect renames::
-
- hg import -s 80 http://example.com/bugfix.patch
-
- - import a changeset from an hgweb server::
-
- hg import http://www.selenic.com/hg/rev/5ca8c111e9aa
-
- - import all the patches in an Unix-style mbox::
-
- hg import incoming-patches.mbox
-
- - attempt to exactly restore an exported changeset (not always
- possible)::
-
- hg import --exact proposed-fix.patch
-
Returns 0 on success.
"""
-
- if not patch1:
- raise util.Abort(_('need at least one patch to import'))
-
patches = (patch1,) + patches
date = opts.get('date')
if date:
opts['date'] = util.parsedate(date)
- editor = cmdutil.commiteditor
- if opts.get('edit'):
- editor = cmdutil.commitforceeditor
-
update = not opts.get('bypass')
if not update and opts.get('no_commit'):
raise util.Abort(_('cannot use --no-commit with --bypass'))
@@ -3680,9 +3080,9 @@ def import_(ui, repo, patch1=None, *patches, **opts):
if (opts.get('exact') or not opts.get('force')) and update:
cmdutil.bailifchanged(repo)
- base = opts["base"]
+ d = opts["base"]
strip = opts["strip"]
- wlock = lock = tr = None
+ wlock = lock = None
msgs = []
def checkexact(repo, n, nodeid):
@@ -3695,8 +3095,8 @@ def import_(ui, repo, patch1=None, *patches, **opts):
patch.extract(ui, hunk)
if not tmpname:
- return (None, None)
- msg = _('applied to working directory')
+ return None
+ commitid = _('to working directory')
try:
cmdline_message = cmdutil.logmessage(ui, opts)
@@ -3722,12 +3122,6 @@ def import_(ui, repo, patch1=None, *patches, **opts):
try:
p1 = repo[p1]
p2 = repo[p2]
- # Without any options, consider p2 only if the
- # patch is being applied on top of the recorded
- # first parent.
- if p1 != parents[0]:
- p1 = parents[0]
- p2 = repo[nullid]
except error.RepoError:
p1, p2 = parents
else:
@@ -3735,10 +3129,10 @@ def import_(ui, repo, patch1=None, *patches, **opts):
n = None
if update:
- if p1 != parents[0]:
+ if opts.get('exact') and p1 != parents[0]:
hg.clean(repo, p1.node())
- if p2 != parents[1]:
- repo.setparents(p1.node(), p2.node())
+ if p1 != parents[0] and p2 != parents[1]:
+ repo.dirstate.setparents(p1.node(), p2.node())
if opts.get('exact') or opts.get('import_branch'):
repo.dirstate.setbranch(branch or 'default')
@@ -3751,17 +3145,17 @@ def import_(ui, repo, patch1=None, *patches, **opts):
if message:
msgs.append(message)
else:
- if opts.get('exact') or p2:
- # If you got here, you either use --force and know what
- # you are doing or used --exact or a merge patch while
- # being updated to its first parent.
+ if opts.get('exact'):
m = None
else:
m = scmutil.matchfiles(repo, files or [])
n = repo.commit(message, opts.get('user') or user,
opts.get('date') or date, match=m,
- editor=editor)
+ editor=cmdutil.commiteditor)
checkexact(repo, n, nodeid)
+ # Force a dirstate write so that the next transaction
+ # backups an up-to-date file.
+ repo.dirstate.write()
else:
if opts.get('exact') or opts.get('import_branch'):
branch = branch or 'default'
@@ -3787,56 +3181,45 @@ def import_(ui, repo, patch1=None, *patches, **opts):
finally:
store.close()
if n:
- # i18n: refers to a short changeset id
- msg = _('created %s') % short(n)
- return (msg, n)
+ commitid = short(n)
+ return commitid
finally:
os.unlink(tmpname)
try:
- try:
- wlock = repo.wlock()
- if not opts.get('no_commit'):
- lock = repo.lock()
- tr = repo.transaction('import')
- parents = repo.parents()
- for patchurl in patches:
- if patchurl == '-':
- ui.status(_('applying patch from stdin\n'))
- patchfile = ui.fin
- patchurl = 'stdin' # for error message
+ wlock = repo.wlock()
+ lock = repo.lock()
+ parents = repo.parents()
+ lastcommit = None
+ for p in patches:
+ pf = os.path.join(d, p)
+
+ if pf == '-':
+ ui.status(_("applying patch from stdin\n"))
+ pf = ui.fin
+ else:
+ ui.status(_("applying %s\n") % p)
+ pf = url.open(ui, pf)
+
+ haspatch = False
+ for hunk in patch.split(pf):
+ commitid = tryone(ui, hunk, parents)
+ if commitid:
+ haspatch = True
+ if lastcommit:
+ ui.status(_('applied %s\n') % lastcommit)
+ lastcommit = commitid
+ if update or opts.get('exact'):
+ parents = repo.parents()
else:
- patchurl = os.path.join(base, patchurl)
- ui.status(_('applying %s\n') % patchurl)
- patchfile = url.open(ui, patchurl)
-
- haspatch = False
- for hunk in patch.split(patchfile):
- (msg, node) = tryone(ui, hunk, parents)
- if msg:
- haspatch = True
- ui.note(msg + '\n')
- if update or opts.get('exact'):
- parents = repo.parents()
- else:
- parents = [repo[node]]
-
- if not haspatch:
- raise util.Abort(_('%s: no diffs found') % patchurl)
-
- if tr:
- tr.close()
- if msgs:
- repo.savecommitmessage('\n* * *\n'.join(msgs))
- except: # re-raises
- # wlock.release() indirectly calls dirstate.write(): since
- # we're crashing, we do not want to change the working dir
- # parent after all, so make sure it writes nothing
- repo.dirstate.invalidate()
- raise
+ parents = [repo[commitid]]
+
+ if not haspatch:
+ raise util.Abort(_('no diffs found'))
+
+ if msgs:
+ repo.savecommitmessage('\n* * *\n'.join(msgs))
finally:
- if tr:
- tr.release()
release(lock, wlock)
@command('incoming|in',
@@ -3865,17 +3248,6 @@ def incoming(ui, repo, source="default", **opts):
Returns 0 if there are incoming changes, 1 otherwise.
"""
- if opts.get('graph'):
- cmdutil.checkunsupportedgraphflags([], opts)
- def display(other, chlist, displayer):
- revdag = cmdutil.graphrevs(other, chlist, opts)
- showparents = [ctx.node() for ctx in repo[None].parents()]
- cmdutil.displaygraph(ui, revdag, displayer, showparents,
- graphmod.asciiedges)
-
- hg._incoming(display, lambda: 1, ui, repo, source, opts, buffered=True)
- return 0
-
if opts.get('bundle') and opts.get('subrepos'):
raise util.Abort(_('cannot combine --bundle and --subrepos'))
@@ -3959,14 +3331,14 @@ def locate(ui, repo, *pats, **opts):
[('f', 'follow', None,
_('follow changeset history, or file history across copies and renames')),
('', 'follow-first', None,
- _('only follow the first parent of merge changesets (DEPRECATED)')),
+ _('only follow the first parent of merge changesets')),
('d', 'date', '', _('show revisions matching date spec'), _('DATE')),
('C', 'copies', None, _('show copied files')),
('k', 'keyword', [],
_('do case-insensitive search for a given text'), _('TEXT')),
('r', 'rev', [], _('show the specified revision or range'), _('REV')),
('', 'removed', None, _('include revisions where files were removed')),
- ('m', 'only-merges', None, _('show only merges (DEPRECATED)')),
+ ('m', 'only-merges', None, _('show only merges')),
('u', 'user', [], _('revisions committed by user'), _('USER')),
('', 'only-branch', [],
_('show only changesets within the given named branch (DEPRECATED)'),
@@ -3975,7 +3347,7 @@ def locate(ui, repo, *pats, **opts):
_('show changesets within the given named branch'), _('BRANCH')),
('P', 'prune', [],
_('do not display revision or any of its ancestors'), _('REV')),
- ('', 'hidden', False, _('show hidden changesets (DEPRECATED)')),
+ ('', 'hidden', False, _('show hidden changesets')),
] + logopts + walkopts,
_('[OPTION]... [FILE]'))
def log(ui, repo, *pats, **opts):
@@ -3984,14 +3356,18 @@ def log(ui, repo, *pats, **opts):
Print the revision history of the specified files or the entire
project.
- If no revision range is specified, the default is ``tip:0`` unless
- --follow is set, in which case the working directory parent is
- used as the starting revision.
-
File history is shown without following rename or copy history of
files. Use -f/--follow with a filename to follow history across
renames and copies. --follow without a filename will only show
- ancestors or descendants of the starting revision.
+ ancestors or descendants of the starting revision. --follow-first
+ only follows the first parent of merge revisions.
+
+ If no revision range is specified, the default is ``tip:0`` unless
+ --follow is set, in which case the working directory parent is
+ used as the starting revision. You can specify a revision set for
+ log, see :hg:`help revsets` for more information.
+
+ See :hg:`help dates` for a list of formats valid for -d/--date.
By default this command prints revision number and changeset id,
tags, non-trivial parents, user, date and time, and a summary for
@@ -4004,77 +3380,19 @@ def log(ui, repo, *pats, **opts):
its first parent. Also, only files different from BOTH parents
will appear in files:.
- .. note::
- for performance reasons, log FILE may omit duplicate changes
- made on branches and will not show deletions. To see all
- changes including duplicates and deletions, use the --removed
- switch.
-
- .. container:: verbose
-
- Some examples:
-
- - changesets with full descriptions and file lists::
-
- hg log -v
-
- - changesets ancestral to the working directory::
-
- hg log -f
-
- - last 10 commits on the current branch::
-
- hg log -l 10 -b .
-
- - changesets showing all modifications of a file, including removals::
-
- hg log --removed file.c
-
- - all changesets that touch a directory, with diffs, excluding merges::
-
- hg log -Mp lib/
-
- - all revision numbers that match a keyword::
-
- hg log -k bug --template "{rev}\\n"
-
- - check if a given changeset is included is a tagged release::
-
- hg log -r "a21ccf and ancestor(1.9)"
-
- - find all changesets by some user in a date range::
-
- hg log -k alice -d "may 2008 to jul 2008"
-
- - summary of all changesets after the last tag::
-
- hg log -r "last(tagged())::" --template "{desc|firstline}\\n"
-
- See :hg:`help dates` for a list of formats valid for -d/--date.
-
- See :hg:`help revisions` and :hg:`help revsets` for more about
- specifying revisions.
-
- See :hg:`help templates` for more about pre-packaged styles and
- specifying custom templates.
-
Returns 0 on success.
"""
- if opts.get('graph'):
- return cmdutil.graphlog(ui, repo, *pats, **opts)
matchfn = scmutil.match(repo[None], pats, opts)
limit = cmdutil.loglimit(opts)
count = 0
- getrenamed, endrev = None, None
- if opts.get('copies'):
- if opts.get('rev'):
- endrev = max(scmutil.revrange(repo, opts.get('rev'))) + 1
- getrenamed = templatekw.getrenamedfn(repo, endrev=endrev)
+ endrev = None
+ if opts.get('copies') and opts.get('rev'):
+ endrev = max(scmutil.revrange(repo, opts.get('rev'))) + 1
df = False
- if opts.get("date"):
+ if opts["date"]:
df = util.matchdate(opts["date"])
branches = opts.get('branch', []) + opts.get('only_branch', [])
@@ -4095,28 +3413,22 @@ def log(ui, repo, *pats, **opts):
return
if df and not df(ctx.date()[0]):
return
-
- lower = encoding.lower
- if opts.get('user'):
- luser = lower(ctx.user())
- for k in [lower(x) for x in opts['user']]:
- if (k in luser):
- break
- else:
- return
+ if opts['user'] and not [k for k in opts['user']
+ if k.lower() in ctx.user().lower()]:
+ return
if opts.get('keyword'):
- luser = lower(ctx.user())
- ldesc = lower(ctx.description())
- lfiles = lower(" ".join(ctx.files()))
- for k in [lower(x) for x in opts['keyword']]:
- if (k in luser or k in ldesc or k in lfiles):
+ for k in [kw.lower() for kw in opts['keyword']]:
+ if (k in ctx.user().lower() or
+ k in ctx.description().lower() or
+ k in " ".join(ctx.files()).lower()):
break
else:
return
copies = None
- if getrenamed is not None and rev:
+ if opts.get('copies') and rev:
copies = []
+ getrenamed = templatekw.getrenamedfn(repo, endrev=endrev)
for fn in ctx.files():
rename = getrenamed(fn, rev)
if rename:
@@ -4195,10 +3507,10 @@ def manifest(ui, repo, node=None, rev=None, **opts):
@command('^merge',
[('f', 'force', None, _('force a merge with outstanding changes')),
+ ('t', 'tool', '', _('specify merge tool')),
('r', 'rev', '', _('revision to merge'), _('REV')),
('P', 'preview', None,
- _('review revisions to merge (no merge is performed)'))
- ] + mergetoolopts,
+ _('review revisions to merge (no merge is performed)'))],
_('[-P] [-f] [[-r] REV]'))
def merge(ui, repo, node=None, **opts):
"""merge working directory with another revision
@@ -4234,61 +3546,34 @@ def merge(ui, repo, node=None, **opts):
if not node:
node = opts.get('rev')
- if node:
- node = scmutil.revsingle(repo, node).node()
-
- if not node and repo._bookmarkcurrent:
- bmheads = repo.bookmarkheads(repo._bookmarkcurrent)
- curhead = repo[repo._bookmarkcurrent]
- if len(bmheads) == 2:
- if curhead == bmheads[0]:
- node = bmheads[1]
- else:
- node = bmheads[0]
- elif len(bmheads) > 2:
- raise util.Abort(_("multiple matching bookmarks to merge - "
- "please merge with an explicit rev or bookmark"),
- hint=_("run 'hg heads' to see all heads"))
- elif len(bmheads) <= 1:
- raise util.Abort(_("no matching bookmark to merge - "
- "please merge with an explicit rev or bookmark"),
- hint=_("run 'hg heads' to see all heads"))
-
- if not node and not repo._bookmarkcurrent:
+ if not node:
branch = repo[None].branch()
bheads = repo.branchheads(branch)
- nbhs = [bh for bh in bheads if not repo[bh].bookmarks()]
-
- if len(nbhs) > 2:
+ if len(bheads) > 2:
raise util.Abort(_("branch '%s' has %d heads - "
"please merge with an explicit rev")
% (branch, len(bheads)),
hint=_("run 'hg heads .' to see heads"))
parent = repo.dirstate.p1()
- if len(nbhs) == 1:
- if len(bheads) > 1:
- raise util.Abort(_("heads are bookmarked - "
- "please merge with an explicit rev"),
- hint=_("run 'hg heads' to see all heads"))
+ if len(bheads) == 1:
if len(repo.heads()) > 1:
raise util.Abort(_("branch '%s' has one head - "
"please merge with an explicit rev")
% branch,
hint=_("run 'hg heads' to see all heads"))
- msg, hint = _('nothing to merge'), None
- if parent != repo.lookup(branch):
- hint = _("use 'hg update' instead")
- raise util.Abort(msg, hint=hint)
+ msg = _('there is nothing to merge')
+ if parent != repo.lookup(repo[None].branch()):
+ msg = _('%s - use "hg update" instead') % msg
+ raise util.Abort(msg)
if parent not in bheads:
raise util.Abort(_('working directory not at a head revision'),
hint=_("use 'hg update' or merge with an "
"explicit revision"))
- if parent == nbhs[0]:
- node = nbhs[-1]
- else:
- node = nbhs[0]
+ node = parent == bheads[0] and bheads[-1] or bheads[0]
+ else:
+ node = scmutil.revsingle(repo, node).node()
if opts.get('preview'):
# find nodes that are ancestors of p2 but not of p1
@@ -4304,7 +3589,7 @@ def merge(ui, repo, node=None, **opts):
try:
# ui.forcemerge is an internal variable, do not document
- repo.ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+ ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
return hg.merge(repo, node, force=opts.get('force'))
finally:
ui.setconfig('ui', 'forcemerge', '')
@@ -4330,18 +3615,6 @@ def outgoing(ui, repo, dest=None, **opts):
Returns 0 if there are outgoing changes, 1 otherwise.
"""
- if opts.get('graph'):
- cmdutil.checkunsupportedgraphflags([], opts)
- o = hg._outgoing(ui, repo, dest, opts)
- if o is None:
- return
-
- revdag = cmdutil.graphrevs(repo, o, opts)
- displayer = cmdutil.show_changeset(ui, repo, opts, buffered=True)
- showparents = [ctx.node() for ctx in repo[None].parents()]
- cmdutil.displaygraph(ui, revdag, displayer, showparents,
- graphmod.asciiedges)
- return 0
if opts.get('bookmarks'):
dest = ui.expandpath(dest or 'default-push', dest or 'default')
@@ -4447,106 +3720,21 @@ def paths(ui, repo, search=None):
else:
ui.write("%s = %s\n" % (name, util.hidepassword(path)))
-@command('^phase',
- [('p', 'public', False, _('set changeset phase to public')),
- ('d', 'draft', False, _('set changeset phase to draft')),
- ('s', 'secret', False, _('set changeset phase to secret')),
- ('f', 'force', False, _('allow to move boundary backward')),
- ('r', 'rev', [], _('target revision'), _('REV')),
- ],
- _('[-p|-d|-s] [-f] [-r] REV...'))
-def phase(ui, repo, *revs, **opts):
- """set or show the current phase name
-
- With no argument, show the phase name of specified revisions.
-
- With one of -p/--public, -d/--draft or -s/--secret, change the
- phase value of the specified revisions.
-
- Unless -f/--force is specified, :hg:`phase` won't move changeset from a
- lower phase to an higher phase. Phases are ordered as follows::
-
- public < draft < secret
-
- Return 0 on success, 1 if no phases were changed or some could not
- be changed.
- """
- # search for a unique phase argument
- targetphase = None
- for idx, name in enumerate(phases.phasenames):
- if opts[name]:
- if targetphase is not None:
- raise util.Abort(_('only one phase can be specified'))
- targetphase = idx
-
- # look for specified revision
- revs = list(revs)
- revs.extend(opts['rev'])
- if not revs:
- raise util.Abort(_('no revisions specified'))
-
- revs = scmutil.revrange(repo, revs)
-
- lock = None
- ret = 0
- if targetphase is None:
- # display
- for r in revs:
- ctx = repo[r]
- ui.write('%i: %s\n' % (ctx.rev(), ctx.phasestr()))
- else:
- lock = repo.lock()
- try:
- # set phase
- if not revs:
- raise util.Abort(_('empty revision set'))
- nodes = [repo[r].node() for r in revs]
- olddata = repo._phasecache.getphaserevs(repo)[:]
- phases.advanceboundary(repo, targetphase, nodes)
- if opts['force']:
- phases.retractboundary(repo, targetphase, nodes)
- finally:
- lock.release()
- newdata = repo._phasecache.getphaserevs(repo)
- changes = sum(o != newdata[i] for i, o in enumerate(olddata))
- rejected = [n for n in nodes
- if newdata[repo[n].rev()] < targetphase]
- if rejected:
- ui.warn(_('cannot move %i changesets to a more permissive '
- 'phase, use --force\n') % len(rejected))
- ret = 1
- if changes:
- msg = _('phase changed for %i changesets\n') % changes
- if ret:
- ui.status(msg)
- else:
- ui.note(msg)
- else:
- ui.warn(_('no phases changed\n'))
- ret = 1
- return ret
-
def postincoming(ui, repo, modheads, optupdate, checkout):
if modheads == 0:
return
if optupdate:
- movemarkfrom = repo['.'].node()
try:
- ret = hg.update(repo, checkout)
+ return hg.update(repo, checkout)
except util.Abort, inst:
- ui.warn(_("not updating: %s\n") % str(inst))
+ ui.warn(_("not updating: %s\n" % str(inst)))
return 0
- if not ret and not checkout:
- if bookmarks.update(repo, [movemarkfrom], repo['.'].node()):
- ui.status(_("updating bookmark %s\n") % repo._bookmarkcurrent)
- return ret
if modheads > 1:
currentbranchheads = len(repo.branchheads())
if currentbranchheads == modheads:
ui.status(_("(run 'hg heads' to see heads, 'hg merge' to merge)\n"))
elif currentbranchheads > 1:
- ui.status(_("(run 'hg heads .' to see heads, 'hg merge' to "
- "merge)\n"))
+ ui.status(_("(run 'hg heads .' to see heads, 'hg merge' to merge)\n"))
else:
ui.status(_("(run 'hg heads' to see heads)\n"))
else:
@@ -4605,7 +3793,7 @@ def pull(ui, repo, source="default", **opts):
raise util.Abort(err)
modheads = repo.pull(other, heads=revs, force=opts.get('force'))
- bookmarks.updatefromremote(ui, repo, other, source)
+ bookmarks.updatefromremote(ui, repo, other)
if checkout:
checkout = str(repo.changelog.rev(other.lookup(checkout)))
repo._subtoppath = source
@@ -4660,10 +3848,6 @@ def push(ui, repo, dest=None, **opts):
If -r/--rev is used, the specified revision and all its ancestors
will be pushed to the remote repository.
- If -B/--bookmark is used, the specified bookmarked revision, its
- ancestors, and the bookmark will be pushed to the remote
- repository.
-
Please see :hg:`help urls` for important details about ``ssh://``
URLs. If DESTINATION is omitted, a default path will be used.
@@ -4686,7 +3870,7 @@ def push(ui, repo, dest=None, **opts):
revs, checkout = hg.addbranchrevs(repo, repo, branches, opts.get('rev'))
other = hg.peer(repo, opts, dest)
if revs:
- revs = [repo.lookup(r) for r in scmutil.revrange(repo, revs)]
+ revs = [repo.lookup(rev) for rev in revs]
repo._subtoppath = dest
try:
@@ -4694,14 +3878,14 @@ def push(ui, repo, dest=None, **opts):
c = repo['']
subs = c.substate # only repos that are committed
for s in sorted(subs):
- if c.sub(s).push(opts) == 0:
+ if not c.sub(s).push(opts.get('force')):
return False
finally:
del repo._subtoppath
result = repo.push(other, opts.get('force'), revs=revs,
newbranch=opts.get('new_branch'))
- result = not result
+ result = (result == 0)
if opts.get('bookmark'):
rb = other.listkeys('bookmarks')
@@ -4751,36 +3935,31 @@ def recover(ui, repo):
def remove(ui, repo, *pats, **opts):
"""remove the specified files on the next commit
- Schedule the indicated files for removal from the current branch.
-
- This command schedules the files to be removed at the next commit.
- To undo a remove before that, see :hg:`revert`. To undo added
- files, see :hg:`forget`.
+ Schedule the indicated files for removal from the repository.
- .. container:: verbose
+ This only removes files from the current branch, not from the
+ entire project history. -A/--after can be used to remove only
+ files that have already been deleted, -f/--force can be used to
+ force deletion, and -Af can be used to remove files from the next
+ revision without deleting them from the working directory.
+
+ The following table details the behavior of remove for different
+ file states (columns) and option combinations (rows). The file
+ states are Added [A], Clean [C], Modified [M] and Missing [!] (as
+ reported by :hg:`status`). The actions are Warn, Remove (from
+ branch) and Delete (from disk)::
+
+ A C M !
+ none W RD W R
+ -f R RD RD R
+ -A W W W R
+ -Af R R R R
+
+ Note that remove never deletes files in Added [A] state from the
+ working directory, not even if option --force is specified.
- -A/--after can be used to remove only files that have already
- been deleted, -f/--force can be used to force deletion, and -Af
- can be used to remove files from the next revision without
- deleting them from the working directory.
-
- The following table details the behavior of remove for different
- file states (columns) and option combinations (rows). The file
- states are Added [A], Clean [C], Modified [M] and Missing [!]
- (as reported by :hg:`status`). The actions are Warn, Remove
- (from branch) and Delete (from disk):
-
- ======= == == == ==
- A C M !
- ======= == == == ==
- none W RD W R
- -f R RD RD R
- -A W W W R
- -Af R R R R
- ======= == == == ==
-
- Note that remove never deletes files in Added [A] state from the
- working directory, not even if option --force is specified.
+ This command schedules the files to be removed at the next commit.
+ To undo a remove before that, see :hg:`revert`.
Returns 0 on success, 1 if any warnings encountered.
"""
@@ -4815,8 +3994,8 @@ def remove(ui, repo, *pats, **opts):
' to force removal)\n') % m.rel(f))
ret = 1
for f in added:
- ui.warn(_('not removing %s: file has been marked for add'
- ' (use forget to undo)\n') % m.rel(f))
+ ui.warn(_('not removing %s: file has been marked for add (use -f'
+ ' to force removal)\n') % m.rel(f))
ret = 1
for f in sorted(list):
@@ -4872,8 +4051,9 @@ def rename(ui, repo, *pats, **opts):
('l', 'list', None, _('list state of files needing merge')),
('m', 'mark', None, _('mark files as resolved')),
('u', 'unmark', None, _('mark files as unresolved')),
+ ('t', 'tool', '', _('specify merge tool')),
('n', 'no-status', None, _('hide status prefix'))]
- + mergetoolopts + walkopts,
+ + walkopts,
_('[OPTION]... [FILE]...'))
def resolve(ui, repo, *pats, **opts):
"""redo merges or set/view the merge status of files
@@ -4883,8 +4063,7 @@ def resolve(ui, repo, *pats, **opts):
setting, or a command-line merge tool like ``diff3``. The resolve
command is used to manage the files involved in a merge, after
:hg:`merge` has been run, and before :hg:`commit` is run (i.e. the
- working directory must have two parents). See :hg:`help
- merge-tools` for information on configuring merge tools.
+ working directory must have two parents).
The resolve command can be used in the following ways:
@@ -4893,8 +4072,7 @@ def resolve(ui, repo, *pats, **opts):
performed for files already marked as resolved. Use ``--all/-a``
to select all unresolved files. ``--tool`` can be used to specify
the merge tool used for the given files. It overrides the HGMERGE
- environment variable and your configuration files. Previous file
- contents are saved with a ``.orig`` suffix.
+ environment variable and your configuration files.
- :hg:`resolve -m [FILE]`: mark a file as having been resolved
(e.g. after having manually fixed-up the files). The default is
@@ -4967,17 +4145,15 @@ def resolve(ui, repo, *pats, **opts):
[('a', 'all', None, _('revert all changes when no arguments given')),
('d', 'date', '', _('tipmost revision matching date'), _('DATE')),
('r', 'rev', '', _('revert to the specified revision'), _('REV')),
- ('C', 'no-backup', None, _('do not save backup copies of files')),
+ ('', 'no-backup', None, _('do not save backup copies of files')),
] + walkopts + dryrunopts,
_('[OPTION]... [-r REV] [NAME]...'))
def revert(ui, repo, *pats, **opts):
"""restore files to their checkout state
.. note::
-
To check out earlier revisions, you should use :hg:`update REV`.
- To cancel an uncommitted merge (and lose your changes), use
- :hg:`update --clean .`.
+ To cancel a merge (and lose your changes), use :hg:`update --clean .`.
With no revision specified, revert the specified files or directories
to the contents they had in the parent of the working directory.
@@ -5013,6 +4189,7 @@ def revert(ui, repo, *pats, **opts):
hint=_('use "hg update" or see "hg help revert"'))
ctx = scmutil.revsingle(repo, opts.get('rev'))
+ node = ctx.node()
if not pats and not opts.get('all'):
msg = _("no files or directories specified")
@@ -5021,7 +4198,6 @@ def revert(ui, repo, *pats, **opts):
" or 'hg update -C .' to abort the merge")
raise util.Abort(msg, hint=hint)
dirty = util.any(repo.status())
- node = ctx.node()
if node != parent:
if dirty:
hint = _("uncommitted changes, use --all to discard all"
@@ -5035,10 +4211,177 @@ def revert(ui, repo, *pats, **opts):
hint = _("use --all to revert all files")
raise util.Abort(msg, hint=hint)
- return cmdutil.revert(ui, repo, ctx, (parent, p2), *pats, **opts)
+ mf = ctx.manifest()
+ if node == parent:
+ pmf = mf
+ else:
+ pmf = None
+
+ # need all matching names in dirstate and manifest of target rev,
+ # so have to walk both. do not print errors if files exist in one
+ # but not other.
+
+ names = {}
+
+ wlock = repo.wlock()
+ try:
+ # walk dirstate.
+
+ m = scmutil.match(repo[None], pats, opts)
+ m.bad = lambda x, y: False
+ for abs in repo.walk(m):
+ names[abs] = m.rel(abs), m.exact(abs)
+
+ # walk target manifest.
+
+ def badfn(path, msg):
+ if path in names:
+ return
+ path_ = path + '/'
+ for f in names:
+ if f.startswith(path_):
+ return
+ ui.warn("%s: %s\n" % (m.rel(path), msg))
+
+ m = scmutil.match(repo[node], pats, opts)
+ m.bad = badfn
+ for abs in repo[node].walk(m):
+ if abs not in names:
+ names[abs] = m.rel(abs), m.exact(abs)
+
+ m = scmutil.matchfiles(repo, names)
+ changes = repo.status(match=m)[:4]
+ modified, added, removed, deleted = map(set, changes)
+
+ # if f is a rename, also revert the source
+ cwd = repo.getcwd()
+ for f in added:
+ src = repo.dirstate.copied(f)
+ if src and src not in names and repo.dirstate[src] == 'r':
+ removed.add(src)
+ names[src] = (repo.pathto(src, cwd), True)
+
+ def removeforget(abs):
+ if repo.dirstate[abs] == 'a':
+ return _('forgetting %s\n')
+ return _('removing %s\n')
+
+ revert = ([], _('reverting %s\n'))
+ add = ([], _('adding %s\n'))
+ remove = ([], removeforget)
+ undelete = ([], _('undeleting %s\n'))
+
+ disptable = (
+ # dispatch table:
+ # file state
+ # action if in target manifest
+ # action if not in target manifest
+ # make backup if in target manifest
+ # make backup if not in target manifest
+ (modified, revert, remove, True, True),
+ (added, revert, remove, True, False),
+ (removed, undelete, None, False, False),
+ (deleted, revert, remove, False, False),
+ )
+
+ for abs, (rel, exact) in sorted(names.items()):
+ mfentry = mf.get(abs)
+ target = repo.wjoin(abs)
+ def handle(xlist, dobackup):
+ xlist[0].append(abs)
+ if (dobackup and not opts.get('no_backup') and
+ os.path.lexists(target)):
+ bakname = "%s.orig" % rel
+ ui.note(_('saving current version of %s as %s\n') %
+ (rel, bakname))
+ if not opts.get('dry_run'):
+ util.rename(target, bakname)
+ if ui.verbose or not exact:
+ msg = xlist[1]
+ if not isinstance(msg, basestring):
+ msg = msg(abs)
+ ui.status(msg % rel)
+ for table, hitlist, misslist, backuphit, backupmiss in disptable:
+ if abs not in table:
+ continue
+ # file has changed in dirstate
+ if mfentry:
+ handle(hitlist, backuphit)
+ elif misslist is not None:
+ handle(misslist, backupmiss)
+ break
+ else:
+ if abs not in repo.dirstate:
+ if mfentry:
+ handle(add, True)
+ elif exact:
+ ui.warn(_('file not managed: %s\n') % rel)
+ continue
+ # file has not changed in dirstate
+ if node == parent:
+ if exact:
+ ui.warn(_('no changes needed to %s\n') % rel)
+ continue
+ if pmf is None:
+ # only need parent manifest in this unlikely case,
+ # so do not read by default
+ pmf = repo[parent].manifest()
+ if abs in pmf:
+ if mfentry:
+ # if version of file is same in parent and target
+ # manifests, do nothing
+ if (pmf[abs] != mfentry or
+ pmf.flags(abs) != mf.flags(abs)):
+ handle(revert, False)
+ else:
+ handle(remove, False)
+
+ if not opts.get('dry_run'):
+ def checkout(f):
+ fc = ctx[f]
+ repo.wwrite(f, fc.data(), fc.flags())
+
+ audit_path = scmutil.pathauditor(repo.root)
+ for f in remove[0]:
+ if repo.dirstate[f] == 'a':
+ repo.dirstate.drop(f)
+ continue
+ audit_path(f)
+ try:
+ util.unlinkpath(repo.wjoin(f))
+ except OSError:
+ pass
+ repo.dirstate.remove(f)
+
+ normal = None
+ if node == parent:
+ # We're reverting to our parent. If possible, we'd like status
+ # to report the file as clean. We have to use normallookup for
+ # merges to avoid losing information about merged/dirty files.
+ if p2 != nullid:
+ normal = repo.dirstate.normallookup
+ else:
+ normal = repo.dirstate.normal
+ for f in revert[0]:
+ checkout(f)
+ if normal:
+ normal(f)
+
+ for f in add[0]:
+ checkout(f)
+ repo.dirstate.add(f)
+
+ normal = repo.dirstate.normallookup
+ if node == parent and p2 == nullid:
+ normal = repo.dirstate.normal
+ for f in undelete[0]:
+ checkout(f)
+ normal(f)
+
+ finally:
+ wlock.release()
-@command('rollback', dryrunopts +
- [('f', 'force', False, _('ignore safety measures'))])
+@command('rollback', dryrunopts)
def rollback(ui, repo, **opts):
"""roll back the last transaction (dangerous)
@@ -5050,22 +4393,14 @@ def rollback(ui, repo, **opts):
Transactions are used to encapsulate the effects of all commands
that create new changesets or propagate existing changesets into a
- repository.
-
- .. container:: verbose
-
- For example, the following commands are transactional, and their
- effects can be rolled back:
+ repository. For example, the following commands are transactional,
+ and their effects can be rolled back:
- - commit
- - import
- - pull
- - push (with this repository as the destination)
- - unbundle
-
- To avoid permanent data loss, rollback will refuse to rollback a
- commit transaction if it isn't checked out. Use --force to
- override this protection.
+ - commit
+ - import
+ - pull
+ - push (with this repository as the destination)
+ - unbundle
This command is not intended for use on public repositories. Once
changes are visible for pull by other users, rolling a transaction
@@ -5076,8 +4411,7 @@ def rollback(ui, repo, **opts):
Returns 0 on success, 1 if no rollback data is available.
"""
- return repo.rollback(dryrun=opts.get('dry_run'),
- force=opts.get('force'))
+ return repo.rollback(opts.get('dry_run'))
@command('root', [])
def root(ui, repo):
@@ -5145,7 +4479,7 @@ def serve(ui, repo, **opts):
def checkrepo():
if repo is None:
- raise error.RepoError(_("there is no Mercurial repository here"
+ raise error.RepoError(_("There is no Mercurial repository here"
" (.hg not found)"))
if opts["stdio"]:
@@ -5176,7 +4510,7 @@ def serve(ui, repo, **opts):
o = opts.get('web_conf') or opts.get('webdir_conf')
if not o:
if not repo:
- raise error.RepoError(_("there is no Mercurial repository"
+ raise error.RepoError(_("There is no Mercurial repository"
" here (.hg not found)"))
o = repo.root
@@ -5319,23 +4653,6 @@ def status(ui, repo, *pats, **opts):
I = ignored
= origin of the previous file listed as A (added)
- .. container:: verbose
-
- Examples:
-
- - show changes in the working directory relative to a
- changeset::
-
- hg status --rev 9353
-
- - show all changes including copies in an existing changeset::
-
- hg status --copies --change 9353
-
- - get a NUL separated list of added files, suitable for xargs::
-
- hg status -an0
-
Returns 0 on success.
"""
@@ -5346,7 +4663,7 @@ def status(ui, repo, *pats, **opts):
msg = _('cannot specify --rev and --change at the same time')
raise util.Abort(msg)
elif change:
- node2 = scmutil.revsingle(repo, change, None).node()
+ node2 = repo.lookup(change)
node1 = repo[node2].p1().node()
else:
node1, node2 = scmutil.revpair(repo, revs)
@@ -5367,24 +4684,31 @@ def status(ui, repo, *pats, **opts):
changestates = zip(states, 'MAR!?IC', stat)
if (opts.get('all') or opts.get('copies')) and not opts.get('no_status'):
- copy = copies.pathcopies(repo[node1], repo[node2])
-
- fm = ui.formatter('status', opts)
- format = '%s %s' + end
- if opts.get('no_status'):
- format = '%.0s%s' + end
+ ctxn = repo[nullid]
+ ctx1 = repo[node1]
+ ctx2 = repo[node2]
+ added = stat[1]
+ if node2 is None:
+ added = stat[0] + stat[1] # merged?
+
+ for k, v in copies.copies(repo, ctx1, ctx2, ctxn)[0].iteritems():
+ if k in added:
+ copy[k] = v
+ elif v in added:
+ copy[v] = k
for state, char, files in changestates:
if state in show:
- label = 'status.' + state
+ format = "%s %%s%s" % (char, end)
+ if opts.get('no_status'):
+ format = "%%s%s" % end
+
for f in files:
- fm.startitem()
- fm.write("status path", format, char,
- repo.pathto(f, cwd), label=label)
+ ui.write(format % repo.pathto(f, cwd),
+ label='status.' + state)
if f in copy:
- fm.write("copy", ' %s' + end, repo.pathto(copy[f], cwd),
+ ui.write(' %s%s' % (repo.pathto(copy[f], cwd), end),
label='status.copied')
- fm.end()
@command('^summary|sum',
[('', 'remote', None, _('check for push and pull'))], '[--remote]')
@@ -5403,7 +4727,6 @@ def summary(ui, repo, **opts):
ctx = repo[None]
parents = ctx.parents()
pnode = parents[0].node()
- marks = []
for p in parents:
# label with log.changeset (instead of log.parent) since this
@@ -5412,7 +4735,7 @@ def summary(ui, repo, **opts):
label='log.changeset')
ui.write(' '.join(p.tags()), label='log.tag')
if p.bookmarks():
- marks.extend(p.bookmarks())
+ ui.write(' ' + ' '.join(p.bookmarks()), label='log.bookmark')
if p.rev() == -1:
if not len(repo):
ui.write(_(' (empty repository)'))
@@ -5431,20 +4754,6 @@ def summary(ui, repo, **opts):
else:
ui.status(m, label='log.branch')
- if marks:
- current = repo._bookmarkcurrent
- ui.write(_('bookmarks:'), label='log.bookmark')
- if current is not None:
- try:
- marks.remove(current)
- ui.write(' *' + current, label='bookmarks.current')
- except ValueError:
- # current bookmark not in parent ctx marks
- pass
- for m in marks:
- ui.write(' ' + m, label='log.bookmark')
- ui.write('\n', label='log.bookmark')
-
st = list(repo.status(unknown=True))[:6]
c = repo.dirstate.copies()
@@ -5488,7 +4797,7 @@ def summary(ui, repo, **opts):
t += _(' (merge)')
elif branch != parents[0].branch():
t += _(' (new branch)')
- elif (parents[0].closesbranch() and
+ elif (parents[0].extra().get('close') and
pnode in repo.branchheads(branch, closed=True)):
t += _(' (head closed)')
elif not (st[0] or st[1] or st[2] or st[3] or st[4] or st[9]):
@@ -5507,12 +4816,12 @@ def summary(ui, repo, **opts):
cl = repo.changelog
for a in [cl.rev(n) for n in bheads]:
new[a] = 1
- for a in cl.ancestors([cl.rev(n) for n in bheads]):
+ for a in cl.ancestors(*[cl.rev(n) for n in bheads]):
new[a] = 1
for a in [p.rev() for p in parents]:
if a >= 0:
new[a] = 0
- for a in cl.ancestors([p.rev() for p in parents]):
+ for a in cl.ancestors(*[p.rev() for p in parents]):
new[a] = 0
new = sum(new)
@@ -5528,8 +4837,7 @@ def summary(ui, repo, **opts):
t = []
source, branches = hg.parseurl(ui.expandpath('default'))
other = hg.peer(repo, {}, source)
- revs, checkout = hg.addbranchrevs(repo, other, branches,
- opts.get('rev'))
+ revs, checkout = hg.addbranchrevs(repo, other, branches, opts.get('rev'))
ui.debug('comparing with %s\n' % util.hidepassword(source))
repo.ui.pushbuffer()
commoninc = discovery.findcommonincoming(repo, other)
@@ -5545,10 +4853,10 @@ def summary(ui, repo, **opts):
commoninc = None
ui.debug('comparing with %s\n' % util.hidepassword(dest))
repo.ui.pushbuffer()
- outgoing = discovery.findcommonoutgoing(repo, other,
- commoninc=commoninc)
+ common, outheads = discovery.findcommonoutgoing(repo, other,
+ commoninc=commoninc)
repo.ui.popbuffer()
- o = outgoing.missing
+ o = repo.changelog.findmissing(common=common, heads=outheads)
if o:
t.append(_('%d outgoing') % len(o))
if 'bookmarks' in other.listkeys('namespaces'):
@@ -5608,73 +4916,62 @@ def tag(ui, repo, name1, *names, **opts):
Returns 0 on success.
"""
- wlock = lock = None
- try:
- wlock = repo.wlock()
- lock = repo.lock()
- rev_ = "."
- names = [t.strip() for t in (name1,) + names]
- if len(names) != len(set(names)):
- raise util.Abort(_('tag names must be unique'))
- for n in names:
- if n in ['tip', '.', 'null']:
- raise util.Abort(_("the name '%s' is reserved") % n)
- if not n:
- raise util.Abort(_('tag names cannot consist entirely of '
- 'whitespace'))
- if opts.get('rev') and opts.get('remove'):
- raise util.Abort(_("--rev and --remove are incompatible"))
- if opts.get('rev'):
- rev_ = opts['rev']
- message = opts.get('message')
- if opts.get('remove'):
- expectedtype = opts.get('local') and 'local' or 'global'
- for n in names:
- if not repo.tagtype(n):
- raise util.Abort(_("tag '%s' does not exist") % n)
- if repo.tagtype(n) != expectedtype:
- if expectedtype == 'global':
- raise util.Abort(_("tag '%s' is not a global tag") % n)
- else:
- raise util.Abort(_("tag '%s' is not a local tag") % n)
- rev_ = nullid
- if not message:
- # we don't translate commit messages
- message = 'Removed tag %s' % ', '.join(names)
- elif not opts.get('force'):
- for n in names:
- if n in repo.tags():
- raise util.Abort(_("tag '%s' already exists "
- "(use -f to force)") % n)
- if not opts.get('local'):
- p1, p2 = repo.dirstate.parents()
- if p2 != nullid:
- raise util.Abort(_('uncommitted merge'))
- bheads = repo.branchheads()
- if not opts.get('force') and bheads and p1 not in bheads:
- raise util.Abort(_('not at a branch head (use -f to force)'))
- r = scmutil.revsingle(repo, rev_).node()
+ rev_ = "."
+ names = [t.strip() for t in (name1,) + names]
+ if len(names) != len(set(names)):
+ raise util.Abort(_('tag names must be unique'))
+ for n in names:
+ if n in ['tip', '.', 'null']:
+ raise util.Abort(_("the name '%s' is reserved") % n)
+ if not n:
+ raise util.Abort(_('tag names cannot consist entirely of whitespace'))
+ if opts.get('rev') and opts.get('remove'):
+ raise util.Abort(_("--rev and --remove are incompatible"))
+ if opts.get('rev'):
+ rev_ = opts['rev']
+ message = opts.get('message')
+ if opts.get('remove'):
+ expectedtype = opts.get('local') and 'local' or 'global'
+ for n in names:
+ if not repo.tagtype(n):
+ raise util.Abort(_("tag '%s' does not exist") % n)
+ if repo.tagtype(n) != expectedtype:
+ if expectedtype == 'global':
+ raise util.Abort(_("tag '%s' is not a global tag") % n)
+ else:
+ raise util.Abort(_("tag '%s' is not a local tag") % n)
+ rev_ = nullid
if not message:
# we don't translate commit messages
- message = ('Added tag %s for changeset %s' %
- (', '.join(names), short(r)))
+ message = 'Removed tag %s' % ', '.join(names)
+ elif not opts.get('force'):
+ for n in names:
+ if n in repo.tags():
+ raise util.Abort(_("tag '%s' already exists "
+ "(use -f to force)") % n)
+ if not opts.get('local'):
+ p1, p2 = repo.dirstate.parents()
+ if p2 != nullid:
+ raise util.Abort(_('uncommitted merge'))
+ bheads = repo.branchheads()
+ if not opts.get('force') and bheads and p1 not in bheads:
+ raise util.Abort(_('not at a branch head (use -f to force)'))
+ r = scmutil.revsingle(repo, rev_).node()
- date = opts.get('date')
- if date:
- date = util.parsedate(date)
+ if not message:
+ # we don't translate commit messages
+ message = ('Added tag %s for changeset %s' %
+ (', '.join(names), short(r)))
- if opts.get('edit'):
- message = ui.edit(message, ui.username())
+ date = opts.get('date')
+ if date:
+ date = util.parsedate(date)
- # don't allow tagging the null rev
- if (not opts.get('remove') and
- scmutil.revsingle(repo, rev_).rev() == nullrev):
- raise util.Abort(_("null revision specified"))
+ if opts.get('edit'):
+ message = ui.edit(message, ui.username())
- repo.tag(names, r, message, opts.get('local'), opts.get('user'), date)
- finally:
- release(lock, wlock)
+ repo.tag(names, r, message, opts.get('local'), opts.get('user'), date)
@command('tags', [], '')
def tags(ui, repo):
@@ -5691,22 +4988,19 @@ def tags(ui, repo):
for t, n in reversed(repo.tagslist()):
if ui.quiet:
- ui.write("%s\n" % t, label='tags.normal')
+ ui.write("%s\n" % t)
continue
hn = hexfunc(n)
r = "%5d:%s" % (repo.changelog.rev(n), hn)
- rev = ui.label(r, 'log.changeset')
spaces = " " * (30 - encoding.colwidth(t))
- tag = ui.label(t, 'tags.normal')
if ui.verbose:
if repo.tagtype(t) == 'local':
tagtype = " local"
- tag = ui.label(t, 'tags.local')
else:
tagtype = ""
- ui.write("%s%s %s%s\n" % (tag, spaces, rev, tagtype))
+ ui.write("%s%s %s%s\n" % (t, spaces, r, tagtype))
@command('tip',
[('p', 'patch', None, _('show patch')),
@@ -5751,10 +5045,11 @@ def unbundle(ui, repo, fname1, *fnames, **opts):
for fname in fnames:
f = url.open(ui, fname)
gen = changegroup.readbundle(f, fname)
- modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname)
+ modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname,
+ lock=lock)
+ bookmarks.updatecurrentbookmark(repo, wc.node(), wc.branch())
finally:
lock.release()
- bookmarks.updatecurrentbookmark(repo, wc.node(), wc.branch())
return postincoming(ui, repo, modheads, opts.get('update'), None)
@command('^update|up|checkout|co',
@@ -5769,40 +5064,34 @@ def update(ui, repo, node=None, rev=None, clean=False, date=None, check=False):
Update the repository's working directory to the specified
changeset. If no changeset is specified, update to the tip of the
- current named branch and move the current bookmark (see :hg:`help
- bookmarks`).
+ current named branch.
- Update sets the working directory's parent revison to the specified
- changeset (see :hg:`help parents`).
-
- If the changeset is not a descendant or ancestor of the working
- directory's parent, the update is aborted. With the -c/--check
- option, the working directory is checked for uncommitted changes; if
- none are found, the working directory is updated to the specified
+ If the changeset is not a descendant of the working directory's
+ parent, the update is aborted. With the -c/--check option, the
+ working directory is checked for uncommitted changes; if none are
+ found, the working directory is updated to the specified
changeset.
- .. container:: verbose
-
- The following rules apply when the working directory contains
- uncommitted changes:
+ Update sets the working directory's parent revison to the specified
+ changeset (see :hg:`help parents`).
- 1. If neither -c/--check nor -C/--clean is specified, and if
- the requested changeset is an ancestor or descendant of
- the working directory's parent, the uncommitted changes
- are merged into the requested changeset and the merged
- result is left uncommitted. If the requested changeset is
- not an ancestor or descendant (that is, it is on another
- branch), the update is aborted and the uncommitted changes
- are preserved.
+ The following rules apply when the working directory contains
+ uncommitted changes:
- 2. With the -c/--check option, the update is aborted and the
- uncommitted changes are preserved.
+ 1. If neither -c/--check nor -C/--clean is specified, and if
+ the requested changeset is an ancestor or descendant of
+ the working directory's parent, the uncommitted changes
+ are merged into the requested changeset and the merged
+ result is left uncommitted. If the requested changeset is
+ not an ancestor or descendant (that is, it is on another
+ branch), the update is aborted and the uncommitted changes
+ are preserved.
- 3. With the -C/--clean option, uncommitted changes are discarded and
- the working directory is updated to the requested changeset.
+ 2. With the -c/--check option, the update is aborted and the
+ uncommitted changes are preserved.
- To cancel an uncommitted merge (and lose your changes), use
- :hg:`update --clean .`.
+ 3. With the -C/--clean option, uncommitted changes are discarded and
+ the working directory is updated to the requested changeset.
Use null as the changeset to remove the working directory (like
:hg:`clone -U`).
@@ -5820,11 +5109,6 @@ def update(ui, repo, node=None, rev=None, clean=False, date=None, check=False):
if rev is None or rev == '':
rev = node
- # with no argument, we also move the current bookmark, if any
- movemarkfrom = None
- if rev is None or node == '':
- movemarkfrom = repo['.'].node()
-
# if we defined a bookmark, we have to remember the original bookmark name
brev = rev
rev = scmutil.revsingle(repo, rev, rev).rev()
@@ -5832,31 +5116,24 @@ def update(ui, repo, node=None, rev=None, clean=False, date=None, check=False):
if check and clean:
raise util.Abort(_("cannot specify both -c/--check and -C/--clean"))
+ if check:
+ # we could use dirty() but we can ignore merge and branch trivia
+ c = repo[None]
+ if c.modified() or c.added() or c.removed():
+ raise util.Abort(_("uncommitted local changes"))
+
if date:
if rev is not None:
raise util.Abort(_("you can't specify a revision and a date"))
rev = cmdutil.finddate(ui, repo, date)
- if check:
- c = repo[None]
- if c.dirty(merge=False, branch=False):
- raise util.Abort(_("uncommitted local changes"))
- if rev is None:
- rev = repo[repo[None].branch()].rev()
- mergemod._checkunknown(repo, repo[None], repo[rev])
-
- if clean:
+ if clean or check:
ret = hg.clean(repo, rev)
else:
ret = hg.update(repo, rev)
- if not ret and movemarkfrom:
- if bookmarks.update(repo, [movemarkfrom], repo['.'].node()):
- ui.status(_("updating bookmark %s\n") % repo._bookmarkcurrent)
- elif brev in repo._bookmarks:
+ if brev in repo._bookmarks:
bookmarks.setcurrent(repo, brev)
- elif brev:
- bookmarks.unsetcurrent(repo)
return ret
@@ -5882,7 +5159,7 @@ def version_(ui):
% util.version())
ui.status(_(
"(see http://mercurial.selenic.com for more information)\n"
- "\nCopyright (C) 2005-2012 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"
diff --git a/mercurial/commandserver.py b/mercurial/commandserver.py
index 4cd1583..25b1f5e 100644
--- a/mercurial/commandserver.py
+++ b/mercurial/commandserver.py
@@ -142,8 +142,8 @@ class server(object):
else:
logfile = open(logpath, 'a')
- # the ui here is really the repo ui so take its baseui so we don't end
- # up with its local configuration
+ # the ui here is really the repo ui so take its baseui so we don't end up
+ # with its local configuration
self.ui = repo.baseui
self.repo = repo
self.repoui = repo.ui
@@ -166,7 +166,7 @@ class server(object):
# is the other end closed?
if not data:
- raise EOFError
+ raise EOFError()
return data
@@ -185,8 +185,6 @@ class server(object):
copiedui = self.ui.copy()
self.repo.baseui = copiedui
self.repo.ui = self.repo.dirstate._ui = self.repoui.copy()
- self.repo.invalidate()
- self.repo.invalidatedirstate()
req = dispatch.request(args[:], copiedui, self.repo, self.cin,
self.cout, self.cerr)
diff --git a/mercurial/config.py b/mercurial/config.py
index 9906d6e..2556ef1 100644
--- a/mercurial/config.py
+++ b/mercurial/config.py
@@ -7,7 +7,7 @@
from i18n import _
import error, util
-import os, errno
+import re, os, errno
class sortdict(dict):
'a simple sorted dictionary'
@@ -35,10 +35,6 @@ class sortdict(dict):
def __delitem__(self, key):
dict.__delitem__(self, key)
self._list.remove(key)
- def keys(self):
- return self._list
- def iterkeys(self):
- return self._list.__iter__()
class config(object):
def __init__(self, data=None):
@@ -65,19 +61,6 @@ class config(object):
self._source.update(src._source)
def get(self, section, item, default=None):
return self._data.get(section, {}).get(item, default)
-
- def backup(self, section, item):
- """return a tuple allowing restore to reinstall a previous valuesi
-
- The main reason we need it is because it handle the "no data" case.
- """
- try:
- value = self._data[section][item]
- source = self.source(section, item)
- return (section, item, value, source)
- except KeyError:
- return (section, item)
-
def source(self, section, item):
return self._source.get((section, item), "")
def sections(self):
@@ -90,28 +73,14 @@ class config(object):
self._data[section][item] = value
self._source[(section, item)] = source
- def restore(self, data):
- """restore data returned by self.backup"""
- if len(data) == 4:
- # restore old data
- section, item, value, source = data
- self._data[section][item] = value
- self._source[(section, item)] = source
- else:
- # no data before, remove everything
- section, item = data
- if section in self._data:
- del self._data[section][item]
- self._source.pop((section, item), None)
-
def parse(self, src, data, sections=None, remap=None, include=None):
- sectionre = util.compilere(r'\[([^\[]+)\]')
- itemre = util.compilere(r'([^=\s][^=]*?)\s*=\s*(.*\S|)')
- contre = util.compilere(r'\s+(\S|\S.*\S)\s*$')
- emptyre = util.compilere(r'(;|#|\s*$)')
- commentre = util.compilere(r'(;|#)')
- unsetre = util.compilere(r'%unset\s+(\S+)')
- includere = util.compilere(r'%include\s+(\S|\S.*\S)\s*$')
+ sectionre = re.compile(r'\[([^\[]+)\]')
+ itemre = re.compile(r'([^=\s][^=]*?)\s*=\s*(.*\S|)')
+ contre = re.compile(r'\s+(\S|\S.*\S)\s*$')
+ emptyre = re.compile(r'(;|#|\s*$)')
+ commentre = re.compile(r'(;|#)')
+ unsetre = re.compile(r'%unset\s+(\S+)')
+ includere = re.compile(r'%include\s+(\S|\S.*\S)\s*$')
section = ""
item = None
line = 0
@@ -119,9 +88,6 @@ class config(object):
for l in data.splitlines(True):
line += 1
- if line == 1 and l.startswith('\xef\xbb\xbf'):
- # Someone set us up the BOM
- l = l[3:]
if cont:
if commentre.match(l):
continue
diff --git a/mercurial/context.py b/mercurial/context.py
index 88ea3e4..d1c195b 100644
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -5,10 +5,9 @@
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-from node import nullid, nullrev, short, hex, bin
+from node import nullid, nullrev, short, hex
from i18n import _
-import ancestor, mdiff, error, util, scmutil, subrepo, patch, encoding, phases
-import copies
+import ancestor, bdiff, error, util, scmutil, subrepo, patch, encoding
import match as matchmod
import os, errno, stat
@@ -22,88 +21,12 @@ class changectx(object):
if changeid == '':
changeid = '.'
self._repo = repo
-
- if isinstance(changeid, int):
+ if isinstance(changeid, (long, int)):
self._rev = changeid
- self._node = repo.changelog.node(changeid)
- return
- if isinstance(changeid, long):
- changeid = str(changeid)
- if changeid == '.':
- self._node = repo.dirstate.p1()
- self._rev = repo.changelog.rev(self._node)
- return
- if changeid == 'null':
- self._node = nullid
- self._rev = nullrev
- return
- if changeid == 'tip':
- self._rev = len(repo.changelog) - 1
- self._node = repo.changelog.node(self._rev)
- return
- if len(changeid) == 20:
- try:
- self._node = changeid
- self._rev = repo.changelog.rev(changeid)
- return
- except LookupError:
- pass
-
- try:
- r = int(changeid)
- if str(r) != changeid:
- raise ValueError
- l = len(repo.changelog)
- if r < 0:
- r += l
- if r < 0 or r >= l:
- raise ValueError
- self._rev = r
- self._node = repo.changelog.node(r)
- return
- except (ValueError, OverflowError):
- pass
-
- if len(changeid) == 40:
- try:
- self._node = bin(changeid)
- self._rev = repo.changelog.rev(self._node)
- return
- except (TypeError, LookupError):
- pass
-
- if changeid in repo._bookmarks:
- self._node = repo._bookmarks[changeid]
- self._rev = repo.changelog.rev(self._node)
- return
- if changeid in repo._tagscache.tags:
- self._node = repo._tagscache.tags[changeid]
- self._rev = repo.changelog.rev(self._node)
- return
- try:
- self._node = repo.branchtip(changeid)
- self._rev = repo.changelog.rev(self._node)
- return
- except error.RepoLookupError:
- pass
-
- self._node = repo.changelog._partialmatch(changeid)
- if self._node is not None:
- self._rev = repo.changelog.rev(self._node)
- return
-
- # lookup failed
- # check if it might have come from damaged dirstate
- if changeid in repo.dirstate.parents():
- raise error.Abort(_("working directory has unknown parent '%s'!")
- % short(changeid))
- try:
- if len(changeid) == 20:
- changeid = hex(changeid)
- except TypeError:
- pass
- raise error.RepoLookupError(
- _("unknown revision '%s'") % changeid)
+ self._node = self._repo.changelog.node(changeid)
+ else:
+ self._node = self._repo.lookup(changeid)
+ self._rev = self._repo.changelog.rev(self._node)
def __str__(self):
return short(self.node())
@@ -134,7 +57,7 @@ class changectx(object):
@propertycache
def _changeset(self):
- return self._repo.changelog.read(self.rev())
+ return self._repo.changelog.read(self.node())
@propertycache
def _manifest(self):
@@ -188,22 +111,14 @@ class changectx(object):
return self._changeset[4]
def branch(self):
return encoding.tolocal(self._changeset[5].get("branch"))
- def closesbranch(self):
- return 'close' in self._changeset[5]
def extra(self):
return self._changeset[5]
def tags(self):
return self._repo.nodetags(self._node)
def bookmarks(self):
return self._repo.nodebookmarks(self._node)
- def phase(self):
- return self._repo._phasecache.phase(self._repo, self._rev)
- def phasestr(self):
- return phases.phasenames[self.phase()]
- def mutable(self):
- return self.phase() > phases.public
def hidden(self):
- return self._rev in self._repo.hiddenrevs
+ return self._rev in self._repo.changelog.hiddenrevs
def parents(self):
"""return contexts for each parent changeset"""
@@ -223,48 +138,13 @@ class changectx(object):
return [changectx(self._repo, x) for x in c]
def ancestors(self):
- for a in self._repo.changelog.ancestors([self._rev]):
+ for a in self._repo.changelog.ancestors(self._rev):
yield changectx(self._repo, a)
def descendants(self):
- for d in self._repo.changelog.descendants([self._rev]):
+ for d in self._repo.changelog.descendants(self._rev):
yield changectx(self._repo, d)
- def obsolete(self):
- """True if the changeset is obsolete"""
- return (self.node() in self._repo.obsstore.precursors
- and self.phase() > phases.public)
-
- def extinct(self):
- """True if the changeset is extinct"""
- # We should just compute a cache a check againts it.
- # see revset implementation for details
- #
- # But this naive implementation does not require cache
- if self.phase() <= phases.public:
- return False
- if not self.obsolete():
- return False
- for desc in self.descendants():
- if not desc.obsolete():
- return False
- return True
-
- def unstable(self):
- """True if the changeset is not obsolete but it's ancestor are"""
- # We should just compute /(obsolete()::) - obsolete()/
- # and keep it in a cache.
- #
- # But this naive implementation does not require cache
- if self.phase() <= phases.public:
- return False
- if self.obsolete():
- return False
- for anc in self.ancestors():
- if anc.obsolete():
- return True
- return False
-
def _fileinfo(self, path):
if '_manifest' in self.__dict__:
try:
@@ -274,8 +154,7 @@ class changectx(object):
_('not found in manifest'))
if '_manifestdelta' in self.__dict__ or path in self.files():
if path in self._manifestdelta:
- return (self._manifestdelta[path],
- self._manifestdelta.flags(path))
+ return self._manifestdelta[path], self._manifestdelta.flags(path)
node, flag = self._repo.manifest.find(self._changeset[0], path)
if not node:
raise error.LookupError(self._node, path,
@@ -316,15 +195,14 @@ class changectx(object):
# follow that here, too
fset.discard('.')
for fn in self:
- if fn in fset:
- # specified pattern is the exact name
- fset.remove(fn)
+ for ffn in fset:
+ # match if the file is the exact name or a directory
+ if ffn == fn or fn.startswith("%s/" % ffn):
+ fset.remove(ffn)
+ break
if match(fn):
yield fn
for fn in sorted(fset):
- if fn in self._dirs:
- # specified pattern is a directory
- continue
if match.bad(fn, _('no such file in rev %s') % self) and match(fn):
yield fn
@@ -347,22 +225,6 @@ class changectx(object):
return patch.diff(self._repo, ctx2.node(), self.node(),
match=match, opts=diffopts)
- @propertycache
- def _dirs(self):
- dirs = set()
- for f in self._manifest:
- pos = f.rfind('/')
- while pos != -1:
- f = f[:pos]
- if f in dirs:
- break # dirs already contains this and above
- dirs.add(f)
- pos = f.rfind('/')
- return dirs
-
- def dirs(self):
- return self._dirs
-
class filectx(object):
"""A filecontext object makes access to data related to a particular
filerevision convenient."""
@@ -501,22 +363,12 @@ class filectx(object):
def size(self):
return self._filelog.size(self._filerev)
- def isbinary(self):
- try:
- return util.binary(self.data())
- except IOError:
- return False
-
def cmp(self, fctx):
"""compare with other file context
returns True if different than fctx.
"""
- if (fctx._filerev is None
- and (self._repo._encodefilterpats
- # if file data starts with '\1\n', empty metadata block is
- # prepended, which adds 4 bytes to filelog.size().
- or self.size() - 4 == fctx.size())
+ if (fctx._filerev is None and self._repo._encodefilterpats
or self.size() == fctx.size()):
return self._filelog.cmp(self._filenode, fctx.data())
@@ -574,7 +426,7 @@ class filectx(object):
return [filectx(self._repo, self._path, fileid=x,
filelog=self._filelog) for x in c]
- def annotate(self, follow=False, linenumber=None, diffopts=None):
+ def annotate(self, follow=False, linenumber=None):
'''returns a list of tuples of (ctx, line) for each line
in the file, where ctx is the filectx of the node where
that line was last changed.
@@ -601,13 +453,8 @@ class filectx(object):
without_linenumber)
def pair(parent, child):
- blocks = mdiff.allblocks(parent[1], child[1], opts=diffopts,
- refine=True)
- for (a1, a2, b1, b2), t in blocks:
- # Changed blocks ('!') or blocks made only of blank lines ('~')
- # belong to the child.
- if t == '=':
- child[0][b1:b2] = parent[0][a1:a2]
+ for a1, a2, b1, b2 in bdiff.blocks(parent[1], child[1]):
+ child[0][b1:b2] = parent[0][a1:a2]
return child
getlog = util.lrucachefunc(lambda x: self._repo.file(x))
@@ -672,27 +519,27 @@ class filectx(object):
return zip(hist[base][0], hist[base][1].splitlines(True))
- def ancestor(self, fc2, actx):
+ def ancestor(self, fc2, actx=None):
"""
find the common ancestor file context, if any, of self, and fc2
- actx must be the changectx of the common ancestor
+ If actx is given, it must be the changectx of the common ancestor
of self's and fc2's respective changesets.
"""
+ if actx is None:
+ actx = self.changectx().ancestor(fc2.changectx())
+
+ # the trivial case: changesets are unrelated, files must be too
+ if not actx:
+ return None
+
# the easy case: no (relevant) renames
if fc2.path() == self.path() and self.path() in actx:
return actx[self.path()]
-
- # the next easiest cases: unambiguous predecessor (name trumps
- # history)
- if self.path() in actx and fc2.path() not in actx:
- return actx[self.path()]
- if fc2.path() in actx and self.path() not in actx:
- return actx[fc2.path()]
+ acache = {}
# prime the ancestor cache for the working directory
- acache = {}
for c in (self, fc2):
if c._filerev is None:
pl = [(n.path(), n.filenode()) for n in c.parents()]
@@ -721,26 +568,17 @@ class filectx(object):
return None
- def ancestors(self, followfirst=False):
+ def ancestors(self):
visit = {}
c = self
- cut = followfirst and 1 or None
while True:
- for parent in c.parents()[:cut]:
+ for parent in c.parents():
visit[(parent.rev(), parent.node())] = parent
if not visit:
break
c = visit.pop(max(visit))
yield c
- def copies(self, c2):
- if not util.safehasattr(self, "_copycache"):
- self._copycache = {}
- sc2 = str(c2)
- if sc2 not in self._copycache:
- self._copycache[sc2] = copies.pathcopies(c2)
- return self._copycache[sc2]
-
class workingctx(changectx):
"""A workingctx object makes access to data related to
the current working directory convenient.
@@ -794,47 +632,15 @@ class workingctx(changectx):
def __contains__(self, key):
return self._repo.dirstate[key] not in "?r"
- def _buildflagfunc(self):
- # Create a fallback function for getting file flags when the
- # filesystem doesn't support them
-
- copiesget = self._repo.dirstate.copies().get
-
- if len(self._parents) < 2:
- # when we have one parent, it's easy: copy from parent
- man = self._parents[0].manifest()
- def func(f):
- f = copiesget(f, f)
- return man.flags(f)
- else:
- # merges are tricky: we try to reconstruct the unstored
- # result from the merge (issue1802)
- p1, p2 = self._parents
- pa = p1.ancestor(p2)
- m1, m2, ma = p1.manifest(), p2.manifest(), pa.manifest()
-
- def func(f):
- f = copiesget(f, f) # may be wrong for merges with copies
- fl1, fl2, fla = m1.flags(f), m2.flags(f), ma.flags(f)
- if fl1 == fl2:
- return fl1
- if fl1 == fla:
- return fl2
- if fl2 == fla:
- return fl1
- return '' # punt for conflicts
-
- return func
-
- @propertycache
- def _flagfunc(self):
- return self._repo.dirstate.flagfunc(self._buildflagfunc)
-
@propertycache
def _manifest(self):
"""generate a manifest corresponding to the working directory"""
+ if self._unknown is None:
+ self.status(unknown=True)
+
man = self._parents[0].manifest().copy()
+ copied = self._repo.dirstate.copies()
if len(self._parents) > 1:
man2 = self.p2().manifest()
def getman(f):
@@ -843,11 +649,13 @@ class workingctx(changectx):
return man2
else:
getman = lambda f: man
-
- copied = self._repo.dirstate.copies()
- ff = self._flagfunc
+ def cf(f):
+ f = copied.get(f, f)
+ return getman(f).flags(f)
+ ff = self._repo.dirstate.flagfunc(cf)
modified, added, removed, deleted = self._status
- for i, l in (("a", added), ("m", modified)):
+ unknown = self._unknown
+ for i, l in (("a", added), ("m", modified), ("u", unknown)):
for f in l:
orig = copied.get(f, f)
man[f] = getman(orig).get(orig, nullid) + i
@@ -934,8 +742,6 @@ class workingctx(changectx):
return self._clean
def branch(self):
return encoding.tolocal(self._extra['branch'])
- def closesbranch(self):
- return 'close' in self._extra
def extra(self):
return self._extra
@@ -951,15 +757,6 @@ class workingctx(changectx):
b.extend(p.bookmarks())
return b
- def phase(self):
- phase = phases.draft # default phase to draft
- for p in self.parents():
- phase = max(phase, p.phase())
- return phase
-
- def hidden(self):
- return False
-
def children(self):
return []
@@ -970,10 +767,23 @@ class workingctx(changectx):
except KeyError:
return ''
- try:
- return self._flagfunc(path)
- except OSError:
+ orig = self._repo.dirstate.copies().get(path, path)
+
+ def findflag(ctx):
+ mnode = ctx.changeset()[0]
+ node, flag = self._repo.manifest.find(mnode, orig)
+ ff = self._repo.dirstate.flagfunc(lambda x: flag or '')
+ try:
+ return ff(path)
+ except OSError:
+ pass
+
+ flag = findflag(self._parents[0])
+ if flag is None and len(self.parents()) > 1:
+ flag = findflag(self._parents[1])
+ if flag is None or self._repo.dirstate[path] == 'r':
return ''
+ return flag
def filectx(self, path, filelog=None):
"""get a file context from the working directory"""
@@ -988,15 +798,14 @@ class workingctx(changectx):
return sorted(self._repo.dirstate.walk(match, self.substate.keys(),
True, False))
- def dirty(self, missing=False, merge=True, branch=True):
+ def dirty(self, missing=False):
"check whether a working directory is modified"
# check subrepos first
for s in self.substate:
if self.sub(s).dirty():
return True
# check current working dir
- return ((merge and self.p2()) or
- (branch and self.branch() != self.p1().branch()) or
+ return (self.p2() or self.branch() != self.p1().branch() or
self.modified() or self.added() or self.removed() or
(missing and self.deleted()))
@@ -1035,26 +844,22 @@ class workingctx(changectx):
finally:
wlock.release()
- def forget(self, files, prefix=""):
- join = lambda f: os.path.join(prefix, f)
+ def forget(self, files):
wlock = self._repo.wlock()
try:
- rejected = []
for f in files:
- if f not in self._repo.dirstate:
- self._repo.ui.warn(_("%s not tracked!\n") % join(f))
- rejected.append(f)
- elif self._repo.dirstate[f] != 'a':
+ if self._repo.dirstate[f] != 'a':
self._repo.dirstate.remove(f)
+ elif f not in self._repo.dirstate:
+ self._repo.ui.warn(_("%s not tracked!\n") % f)
else:
self._repo.dirstate.drop(f)
- return rejected
finally:
wlock.release()
def ancestors(self):
for a in self._repo.changelog.ancestors(
- [p.rev() for p in self._parents]):
+ *[p.rev() for p in self._parents]):
yield changectx(self._repo, a)
def undelete(self, list):
@@ -1088,9 +893,6 @@ class workingctx(changectx):
finally:
wlock.release()
- def dirs(self):
- return set(self._repo.dirstate.dirs())
-
class workingfilectx(filectx):
"""A workingfilectx object makes access to data related to a particular
file in the working directory convenient."""
diff --git a/mercurial/copies.py b/mercurial/copies.py
index 90aa036..abd16fa 100644
--- a/mercurial/copies.py
+++ b/mercurial/copies.py
@@ -18,6 +18,15 @@ def _dirname(f):
return ""
return f[:s]
+def _dirs(files):
+ d = set()
+ for f in files:
+ f = _dirname(f)
+ while f not in d:
+ d.add(f)
+ f = _dirname(f)
+ return d
+
def _findlimit(repo, a, b):
"""Find the earliest revision that's an ancestor of a or b but not both,
None if no such revision exists.
@@ -75,124 +84,22 @@ def _findlimit(repo, a, b):
return None
return limit
-def _chain(src, dst, a, b):
- '''chain two sets of copies a->b'''
- t = a.copy()
- for k, v in b.iteritems():
- if v in t:
- # found a chain
- if t[v] != k:
- # file wasn't renamed back to itself
- t[k] = t[v]
- if v not in dst:
- # chain was a rename, not a copy
- del t[v]
- if v in src:
- # file is a copy of an existing file
- t[k] = v
-
- # remove criss-crossed copies
- for k, v in t.items():
- if k in src and v in dst:
- del t[k]
-
- return t
-
-def _tracefile(fctx, actx):
- '''return file context that is the ancestor of fctx present in actx'''
- stop = actx.rev()
- am = actx.manifest()
-
- for f in fctx.ancestors():
- if am.get(f.path(), None) == f.filenode():
- return f
- if f.rev() < stop:
- return None
-
-def _dirstatecopies(d):
- ds = d._repo.dirstate
- c = ds.copies().copy()
- for k in c.keys():
- if ds[k] not in 'anm':
- del c[k]
- return c
-
-def _forwardcopies(a, b):
- '''find {dst@b: src@a} copy mapping where a is an ancestor of b'''
-
- # check for working copy
- w = None
- if b.rev() is None:
- w = b
- b = w.p1()
- if a == b:
- # short-circuit to avoid issues with merge states
- return _dirstatecopies(w)
-
- # find where new files came from
- # we currently don't try to find where old files went, too expensive
- # this means we can miss a case like 'hg rm b; hg cp a b'
- cm = {}
- for f in b:
- if f not in a:
- ofctx = _tracefile(b[f], a)
- if ofctx:
- cm[f] = ofctx.path()
-
- # combine copies from dirstate if necessary
- if w is not None:
- cm = _chain(a, w, cm, _dirstatecopies(w))
-
- return cm
-
-def _backwardcopies(a, b):
- # because the forward mapping is 1:n, we can lose renames here
- # in particular, we find renames better than copies
- f = _forwardcopies(b, a)
- r = {}
- for k, v in f.iteritems():
- r[v] = k
- return r
-
-def pathcopies(x, y):
- '''find {dst@y: src@x} copy mapping for directed compare'''
- if x == y or not x or not y:
- return {}
- a = y.ancestor(x)
- if a == x:
- return _forwardcopies(x, y)
- if a == y:
- return _backwardcopies(x, y)
- return _chain(x, y, _backwardcopies(x, a), _forwardcopies(a, y))
-
-def mergecopies(repo, c1, c2, ca):
+def copies(repo, c1, c2, ca, checkdirs=False):
"""
- Find moves and copies between context c1 and c2 that are relevant
- for merging.
-
- Returns two dicts, "copy" and "diverge".
-
- "copy" is a mapping from destination name -> source name,
- where source is in c1 and destination is in c2 or vice-versa.
-
- "diverge" is a mapping of source name -> list of destination names
- for divergent renames.
-
- "renamedelete" is a mapping of source name -> list of destination
- names for files deleted in c1 that were renamed in c2 or vice-versa.
+ Find moves and copies between context c1 and c2
"""
# avoid silly behavior for update from empty dir
if not c1 or not c2 or c1 == c2:
- return {}, {}, {}
+ return {}, {}
# avoid silly behavior for parent -> working dir
if c2.node() is None and c1.node() == repo.dirstate.p1():
- return repo.dirstate.copies(), {}, {}
+ return repo.dirstate.copies(), {}
limit = _findlimit(repo, c1.rev(), c2.rev())
if limit is None:
# no common ancestor, no copies
- return {}, {}, {}
+ return {}, {}
m1 = c1.manifest()
m2 = c2.manifest()
ma = ca.manifest()
@@ -286,43 +193,31 @@ def mergecopies(repo, c1, c2, ca):
for f in u2:
checkcopies(f, m2, m1)
- renamedelete = {}
- renamedelete2 = set()
diverge2 = set()
for of, fl in diverge.items():
- if len(fl) == 1 or of in c1 or of in c2:
+ if len(fl) == 1 or of in c2:
del diverge[of] # not actually divergent, or not a rename
- if of not in c1 and of not in c2:
- # renamed on one side, deleted on the other side, but filter
- # out files that have been renamed and then deleted
- renamedelete[of] = [f for f in fl if f in c1 or f in c2]
- renamedelete2.update(fl) # reverse map for below
else:
diverge2.update(fl) # reverse map for below
if fullcopy:
- repo.ui.debug(" all copies found (* = to merge, ! = divergent, "
- "% = renamed and deleted):\n")
+ repo.ui.debug(" all copies found (* = to merge, ! = divergent):\n")
for f in fullcopy:
note = ""
if f in copy:
note += "*"
if f in diverge2:
note += "!"
- if f in renamedelete2:
- note += "%"
repo.ui.debug(" %s -> %s %s\n" % (f, fullcopy[f], note))
del diverge2
- if not fullcopy:
- return copy, diverge, renamedelete
+ if not fullcopy or not checkdirs:
+ return copy, diverge
repo.ui.debug(" checking for directory renames\n")
# generate a directory move map
- d1, d2 = c1.dirs(), c2.dirs()
- d1.add('')
- d2.add('')
+ d1, d2 = _dirs(m1), _dirs(m2)
invalid = set()
dirmove = {}
@@ -352,7 +247,7 @@ def mergecopies(repo, c1, c2, ca):
del d1, d2, invalid
if not dirmove:
- return copy, diverge, renamedelete
+ return copy, diverge
for d in dirmove:
repo.ui.debug(" dir %s -> %s\n" % (d, dirmove[d]))
@@ -369,4 +264,4 @@ def mergecopies(repo, c1, c2, ca):
repo.ui.debug(" file %s -> %s\n" % (f, copy[f]))
break
- return copy, diverge, renamedelete
+ return copy, diverge
diff --git a/mercurial/dagparser.py b/mercurial/dagparser.py
index 92bd4f0..e02faa5 100644
--- a/mercurial/dagparser.py
+++ b/mercurial/dagparser.py
@@ -268,8 +268,7 @@ def parsedag(desc):
s += c
i += 1
c = nextch()
- raise util.Abort(_('invalid character in dag description: '
- '%s...') % s)
+ raise util.Abort(_("invalid character in dag description: %s...") % s)
def dagtextlines(events,
addspaces=True,
@@ -437,9 +436,7 @@ def dagtext(dag,
>>> dagtext([('n', (0, [-1])), ('a', 'ann'), ('n', (1, [0]))])
'+1 @ann +1'
- >>> dagtext([('n', (0, [-1])),
- ... ('a', 'my annotation'),
- ... ('n', (1, [0]))])
+ >>> dagtext([('n', (0, [-1])), ('a', 'my annotation'), ('n', (1, [0]))])
'+1 @"my annotation" +1'
Commands:
@@ -450,9 +447,7 @@ def dagtext(dag,
>>> dagtext([('n', (0, [-1])), ('c', 'my command'), ('n', (1, [0]))])
'+1 !"my command" +1'
- >>> dagtext([('n', (0, [-1])),
- ... ('C', 'my command line'),
- ... ('n', (1, [0]))])
+ >>> dagtext([('n', (0, [-1])), ('C', 'my command line'), ('n', (1, [0]))])
'+1 !!my command line\\n+1'
Comments:
diff --git a/mercurial/dagutil.py b/mercurial/dagutil.py
index a9d8fb8..7908e63 100644
--- a/mercurial/dagutil.py
+++ b/mercurial/dagutil.py
@@ -26,25 +26,25 @@ class basedag(object):
def nodeset(self):
'''set of all node idxs'''
- raise NotImplementedError
+ raise NotImplementedError()
def heads(self):
'''list of head ixs'''
- raise NotImplementedError
+ raise NotImplementedError()
def parents(self, ix):
'''list of parents ixs of ix'''
- raise NotImplementedError
+ raise NotImplementedError()
def inverse(self):
'''inverse DAG, where parents becomes children, etc.'''
- raise NotImplementedError
+ raise NotImplementedError()
def ancestorset(self, starts, stops=None):
'''
set of all ancestors of starts (incl), but stop walk at stops (excl)
'''
- raise NotImplementedError
+ raise NotImplementedError()
def descendantset(self, starts, stops=None):
'''
@@ -59,7 +59,7 @@ class basedag(object):
By "connected list" we mean that if an ancestor and a descendant are in
the list, then so is at least one path connecting them.
'''
- raise NotImplementedError
+ raise NotImplementedError()
def externalize(self, ix):
'''return a list of (or set if given a set) of node ids'''
diff --git a/mercurial/demandimport.py b/mercurial/demandimport.py
index e439487..4f5d71e 100644
--- a/mercurial/demandimport.py
+++ b/mercurial/demandimport.py
@@ -27,17 +27,6 @@ These imports will not be delayed:
import __builtin__
_origimport = __import__
-nothing = object()
-
-try:
- _origimport(__builtin__.__name__, {}, {}, None, -1)
-except TypeError: # no level argument
- def _import(name, globals, locals, fromlist, level):
- "call _origimport with no level argument"
- return _origimport(name, globals, locals, fromlist)
-else:
- _import = _origimport
-
class _demandmod(object):
"""module demand-loader and proxy"""
def __init__(self, name, globals, locals):
@@ -61,7 +50,7 @@ class _demandmod(object):
h, t = p, None
if '.' in p:
h, t = p.split('.', 1)
- if getattr(mod, h, nothing) is nothing:
+ if not hasattr(mod, h):
setattr(mod, h, _demandmod(p, mod.__dict__, mod.__dict__))
elif t:
subload(getattr(mod, h), t)
@@ -92,14 +81,20 @@ class _demandmod(object):
def _demandimport(name, globals=None, locals=None, fromlist=None, level=-1):
if not locals or name in ignore or fromlist == ('*',):
# these cases we can't really delay
- return _import(name, globals, locals, fromlist, level)
+ if level == -1:
+ return _origimport(name, globals, locals, fromlist)
+ else:
+ return _origimport(name, globals, locals, fromlist, level)
elif not fromlist:
# import a [as b]
if '.' in name: # a.b
base, rest = name.split('.', 1)
# email.__init__ loading email.mime
if globals and globals.get('__name__', None) == base:
- return _import(name, globals, locals, fromlist, level)
+ if level != -1:
+ return _origimport(name, globals, locals, fromlist, level)
+ else:
+ return _origimport(name, globals, locals, fromlist)
# if a is already demand-loaded, add b to its submodule list
if base in locals:
if isinstance(locals[base], _demandmod):
@@ -114,12 +109,12 @@ def _demandimport(name, globals=None, locals=None, fromlist=None, level=-1):
mod = _origimport(name, globals, locals)
# recurse down the module chain
for comp in name.split('.')[1:]:
- if getattr(mod, comp, nothing) is nothing:
+ if not hasattr(mod, comp):
setattr(mod, comp, _demandmod(comp, mod.__dict__, mod.__dict__))
mod = getattr(mod, comp)
for x in fromlist:
# set requested submodules for demand load
- if getattr(mod, x, nothing) is nothing:
+ if not hasattr(mod, x):
setattr(mod, x, _demandmod(x, mod.__dict__, locals))
return mod
@@ -142,8 +137,6 @@ ignore = [
# raise ImportError if x not defined
'__main__',
'_ssl', # conditional imports in the stdlib, issue1964
- 'rfc822',
- 'mimetools',
]
def enable():
@@ -153,3 +146,4 @@ def enable():
def disable():
"disable global demand-loading of modules"
__builtin__.__import__ = _origimport
+
diff --git a/mercurial/diffhelpers.c b/mercurial/diffhelpers.c
index b0fd766..aa2a275 100644
--- a/mercurial/diffhelpers.c
+++ b/mercurial/diffhelpers.c
@@ -20,14 +20,14 @@ static PyObject *diffhelpers_Error;
/* fixup the last lines of a and b when the patch has no newline at eof */
static void _fix_newline(PyObject *hunk, PyObject *a, PyObject *b)
{
- Py_ssize_t hunksz = PyList_Size(hunk);
+ int hunksz = PyList_Size(hunk);
PyObject *s = PyList_GET_ITEM(hunk, hunksz-1);
char *l = PyBytes_AsString(s);
- Py_ssize_t alen = PyList_Size(a);
- Py_ssize_t blen = PyList_Size(b);
+ int alen = PyList_Size(a);
+ int blen = PyList_Size(b);
char c = l[0];
PyObject *hline;
- Py_ssize_t sz = PyBytes_GET_SIZE(s);
+ int sz = PyBytes_GET_SIZE(s);
if (sz > 1 && l[sz-2] == '\r')
/* tolerate CRLF in last line */
@@ -57,12 +57,6 @@ fix_newline(PyObject *self, PyObject *args)
return Py_BuildValue("l", 0);
}
-#if (PY_VERSION_HEX < 0x02050000)
-static const char *addlines_format = "OOiiOO";
-#else
-static const char *addlines_format = "OOnnOO";
-#endif
-
/*
* read lines from fp into the hunk. The hunk is parsed into two arrays
* a and b. a gets the old state of the text, b gets the new state
@@ -74,14 +68,13 @@ addlines(PyObject *self, PyObject *args)
{
PyObject *fp, *hunk, *a, *b, *x;
- Py_ssize_t i;
- Py_ssize_t lena, lenb;
- Py_ssize_t num;
- Py_ssize_t todoa, todob;
+ int i;
+ int lena, lenb;
+ int num;
+ int todoa, todob;
char *s, c;
PyObject *l;
- if (!PyArg_ParseTuple(args, addlines_format,
- &fp, &hunk, &lena, &lenb, &a, &b))
+ if (!PyArg_ParseTuple(args, "OOiiOO", &fp, &hunk, &lena, &lenb, &a, &b))
return NULL;
while (1) {
@@ -134,15 +127,15 @@ testhunk(PyObject *self, PyObject *args)
PyObject *a, *b;
long bstart;
- Py_ssize_t alen, blen;
- Py_ssize_t i;
+ int alen, blen;
+ int i;
char *sa, *sb;
if (!PyArg_ParseTuple(args, "OOl", &a, &b, &bstart))
return NULL;
alen = PyList_Size(a);
blen = PyList_Size(b);
- if (alen > blen - bstart || bstart < 0) {
+ if (alen > blen - bstart) {
return Py_BuildValue("l", -1);
}
for (i = 0; i < alen; i++) {
diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py
index e516d93..c8219b5 100644
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -4,7 +4,6 @@
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-import errno
from node import nullid
from i18n import _
@@ -14,17 +13,6 @@ import cStringIO
_format = ">cllll"
propertycache = util.propertycache
-filecache = scmutil.filecache
-
-class repocache(filecache):
- """filecache for files in .hg/"""
- def join(self, obj, fname):
- return obj._opener.join(fname)
-
-class rootcache(filecache):
- """filecache for files in the repository root"""
- def join(self, obj, fname):
- return obj._join(fname)
def _finddirs(path):
pos = path.rfind('/')
@@ -61,9 +49,8 @@ class dirstate(object):
self._rootdir = os.path.join(root, '')
self._dirty = False
self._dirtypl = False
- self._lastnormaltime = 0
+ self._lastnormaltime = None
self._ui = ui
- self._filecache = {}
@propertycache
def _map(self):
@@ -81,19 +68,14 @@ class dirstate(object):
def _foldmap(self):
f = {}
for name in self._map:
- f[util.normcase(name)] = name
- for name in self._dirs:
- f[util.normcase(name)] = name
- f['.'] = '.' # prevents useless util.fspath() invocation
+ f[os.path.normcase(name)] = name
return f
- @repocache('branch')
+ @propertycache
def _branch(self):
try:
return self._opener.read("branch").strip() or "default"
- except IOError, inst:
- if inst.errno != errno.ENOENT:
- raise
+ except IOError:
return "default"
@propertycache
@@ -120,10 +102,7 @@ class dirstate(object):
_incdirs(dirs, f)
return dirs
- def dirs(self):
- return self._dirs
-
- @rootcache('.hgignore')
+ @propertycache
def _ignore(self):
files = [self._join('.hgignore')]
for name, path in self._ui.configitems("ui"):
@@ -152,19 +131,17 @@ class dirstate(object):
# it's safe because f is always a relative path
return self._rootdir + f
- def flagfunc(self, buildfallback):
- if self._checklink and self._checkexec:
- def f(x):
- p = self._join(x)
- if os.path.islink(p):
- return 'l'
- if util.isexec(p):
- return 'x'
- return ''
- return f
-
- fallback = buildfallback()
+ def flagfunc(self, fallback):
if self._checklink:
+ if self._checkexec:
+ def f(x):
+ p = self._join(x)
+ if os.path.islink(p):
+ return 'l'
+ if util.isexec(p):
+ return 'x'
+ return ''
+ return f
def f(x):
if os.path.islink(self._join(x)):
return 'l'
@@ -180,8 +157,7 @@ class dirstate(object):
return 'x'
return ''
return f
- else:
- return fallback
+ return fallback
def getcwd(self):
cwd = os.getcwd()
@@ -237,36 +213,14 @@ class dirstate(object):
return encoding.tolocal(self._branch)
def setparents(self, p1, p2=nullid):
- """Set dirstate parents to p1 and p2.
-
- When moving from two parents to one, 'm' merged entries a
- adjusted to normal and previous copy records discarded and
- returned by the call.
-
- See localrepo.setparents()
- """
self._dirty = self._dirtypl = True
- oldp2 = self._pl[1]
self._pl = p1, p2
- copies = {}
- if oldp2 != nullid and p2 == nullid:
- # Discard 'm' markers when moving away from a merge state
- for f, s in self._map.iteritems():
- if s[0] == 'm':
- if f in self._copymap:
- copies[f] = self._copymap[f]
- self.normallookup(f)
- return copies
def setbranch(self, branch):
if branch in ['tip', '.', 'null']:
raise util.Abort(_('the name \'%s\' is reserved') % branch)
self._branch = encoding.fromlocal(branch)
- f = self._opener('branch', 'w', atomictemp=True)
- try:
- f.write(self._branch + '\n')
- finally:
- f.close()
+ self._opener.write("branch", self._branch + '\n')
def _read(self):
self._map = {}
@@ -289,7 +243,7 @@ class dirstate(object):
"_ignore"):
if a in self.__dict__:
delattr(self, a)
- self._lastnormaltime = 0
+ self._lastnormaltime = None
self._dirty = False
def copy(self, source, dest):
@@ -312,9 +266,9 @@ class dirstate(object):
if self[f] not in "?r" and "_dirs" in self.__dict__:
_decdirs(self._dirs, f)
- def _addpath(self, f, state, mode, size, mtime):
+ def _addpath(self, f, check=False):
oldstate = self[f]
- if state == 'a' or oldstate == 'r':
+ if check or oldstate == "r":
scmutil.checkfilename(f)
if f in self._dirs:
raise util.Abort(_('directory %r already in dirstate') % f)
@@ -327,14 +281,14 @@ class dirstate(object):
_('file %r in dirstate clashes with %r') % (d, f))
if oldstate in "?r" and "_dirs" in self.__dict__:
_incdirs(self._dirs, f)
- self._dirty = True
- self._map[f] = (state, mode, size, mtime)
def normal(self, f):
'''Mark a file normal and clean.'''
+ self._dirty = True
+ self._addpath(f)
s = os.lstat(self._join(f))
mtime = int(s.st_mtime)
- self._addpath(f, 'n', s.st_mode, s.st_size, mtime)
+ self._map[f] = ('n', s.st_mode, s.st_size, mtime)
if f in self._copymap:
del self._copymap[f]
if mtime > self._lastnormaltime:
@@ -361,7 +315,9 @@ class dirstate(object):
return
if entry[0] == 'm' or entry[0] == 'n' and entry[2] == -2:
return
- self._addpath(f, 'n', 0, -1, -1)
+ self._dirty = True
+ self._addpath(f)
+ self._map[f] = ('n', 0, -1, -1)
if f in self._copymap:
del self._copymap[f]
@@ -370,13 +326,17 @@ class dirstate(object):
if self._pl[1] == nullid:
raise util.Abort(_("setting %r to other parent "
"only allowed in merges") % f)
- self._addpath(f, 'n', 0, -2, -1)
+ self._dirty = True
+ self._addpath(f)
+ self._map[f] = ('n', 0, -2, -1)
if f in self._copymap:
del self._copymap[f]
def add(self, f):
'''Mark a file added.'''
- self._addpath(f, 'a', 0, -1, -1)
+ self._dirty = True
+ self._addpath(f, True)
+ self._map[f] = ('a', 0, -1, -1)
if f in self._copymap:
del self._copymap[f]
@@ -398,62 +358,36 @@ class dirstate(object):
def merge(self, f):
'''Mark a file merged.'''
- if self._pl[1] == nullid:
- return self.normallookup(f)
+ self._dirty = True
s = os.lstat(self._join(f))
- self._addpath(f, 'm', s.st_mode, s.st_size, int(s.st_mtime))
+ self._addpath(f)
+ self._map[f] = ('m', s.st_mode, s.st_size, int(s.st_mtime))
if f in self._copymap:
del self._copymap[f]
def drop(self, f):
'''Drop a file from the dirstate'''
- if f in self._map:
- self._dirty = True
- self._droppath(f)
- del self._map[f]
+ self._dirty = True
+ self._droppath(f)
+ del self._map[f]
- def _normalize(self, path, isknown, ignoremissing=False, exists=None):
- normed = util.normcase(path)
+ def _normalize(self, path, isknown):
+ normed = os.path.normcase(path)
folded = self._foldmap.get(normed, None)
if folded is None:
- if isknown:
+ if isknown or not os.path.lexists(os.path.join(self._root, path)):
folded = path
else:
- if exists is None:
- exists = os.path.lexists(os.path.join(self._root, path))
- if not exists:
- # Maybe a path component exists
- if not ignoremissing and '/' in path:
- d, f = path.rsplit('/', 1)
- d = self._normalize(d, isknown, ignoremissing, None)
- folded = d + "/" + f
- else:
- # No path components, preserve original case
- folded = path
- else:
- # recursively normalize leading directory components
- # against dirstate
- if '/' in normed:
- d, f = normed.rsplit('/', 1)
- d = self._normalize(d, isknown, ignoremissing, True)
- r = self._root + "/" + d
- folded = d + "/" + util.fspath(f, r)
- else:
- folded = util.fspath(normed, self._root)
- self._foldmap[normed] = folded
-
+ folded = self._foldmap.setdefault(normed,
+ util.fspath(path, self._root))
return folded
- def normalize(self, path, isknown=False, ignoremissing=False):
+ def normalize(self, path, isknown=False):
'''
normalize the case of a pathname when on a casefolding filesystem
isknown specifies whether the filename came from walking the
- disk, to avoid extra filesystem access.
-
- If ignoremissing is True, missing path are returned
- unchanged. Otherwise, we try harder to normalize possibly
- existing path components.
+ disk, to avoid extra filesystem access
The normalized case is determined based on the following precedence:
@@ -463,7 +397,7 @@ class dirstate(object):
'''
if self._checkcase:
- return self._normalize(path, isknown, ignoremissing)
+ return self._normalize(path, isknown)
return path
def clear(self):
@@ -472,7 +406,7 @@ class dirstate(object):
delattr(self, "_dirs")
self._copymap = {}
self._pl = [nullid, nullid]
- self._lastnormaltime = 0
+ self._lastnormaltime = None
self._dirty = True
def rebuild(self, parent, files):
@@ -490,24 +424,12 @@ class dirstate(object):
return
st = self._opener("dirstate", "w", atomictemp=True)
- def finish(s):
- st.write(s)
- st.close()
- self._lastnormaltime = 0
- self._dirty = self._dirtypl = False
-
# use the modification time of the newly created temporary file as the
# filesystem's notion of 'now'
- now = util.fstat(st).st_mtime
- copymap = self._copymap
- try:
- finish(parsers.pack_dirstate(self._map, copymap, self._pl, now))
- return
- except AttributeError:
- pass
+ now = int(util.fstat(st).st_mtime)
- now = int(now)
cs = cStringIO.StringIO()
+ copymap = self._copymap
pack = struct.pack
write = cs.write
write("".join(self._pl))
@@ -530,7 +452,10 @@ class dirstate(object):
e = pack(_format, e[0], e[1], e[2], e[3], len(f))
write(e)
write(f)
- finish(cs.getvalue())
+ st.write(cs.getvalue())
+ st.rename()
+ self._lastnormaltime = None
+ self._dirty = self._dirtypl = False
def _dirignore(self, f):
if f == '.':
@@ -600,11 +525,11 @@ class dirstate(object):
elif match.files() and not match.anypats(): # match.match, no patterns
skipstep3 = True
- if not exact and self._checkcase:
+ if self._checkcase:
normalize = self._normalize
skipstep3 = False
else:
- normalize = lambda x, y, z: x
+ normalize = lambda x, y: x
files = sorted(match.files())
subrepos.sort()
@@ -625,7 +550,7 @@ class dirstate(object):
# step 1: find all explicit files
for ff in files:
- nf = normalize(normpath(ff), False, True)
+ nf = normalize(normpath(ff), False)
if nf in results:
continue
@@ -675,7 +600,7 @@ class dirstate(object):
continue
raise
for f, kind, st in entries:
- nf = normalize(nd and (nd + "/" + f) or f, True, True)
+ nf = normalize(nd and (nd + "/" + f) or f, True)
if nf not in results:
if kind == dirkind:
if not ignore(nf):
@@ -696,8 +621,7 @@ class dirstate(object):
if not skipstep3 and not exact:
visit = sorted([f for f in dmap if f not in results and matchfn(f)])
for nf, st in zip(visit, util.statfiles([join(i) for i in visit])):
- if (not st is None and
- getkind(st.st_mode) not in (regkind, lnkkind)):
+ if not st is None and not getkind(st.st_mode) in (regkind, lnkkind):
st = None
results[nf] = st
for s in subrepos:
diff --git a/mercurial/discovery.py b/mercurial/discovery.py
index 0eb27a8..88a7475 100644
--- a/mercurial/discovery.py
+++ b/mercurial/discovery.py
@@ -7,7 +7,7 @@
from node import nullid, short
from i18n import _
-import util, setdiscovery, treediscovery, phases, obsolete
+import util, setdiscovery, treediscovery
def findcommonincoming(repo, remote, heads=None, force=False):
"""Return a tuple (common, anyincoming, heads) used to identify the common
@@ -46,324 +46,146 @@ def findcommonincoming(repo, remote, heads=None, force=False):
common, anyinc, srvheads = res
return (list(common), anyinc, heads or list(srvheads))
-class outgoing(object):
- '''Represents the set of nodes present in a local repo but not in a
- (possibly) remote one.
+def findcommonoutgoing(repo, other, onlyheads=None, force=False, commoninc=None):
+ '''Return a tuple (common, anyoutgoing, heads) used to identify the set
+ of nodes present in repo but not in other.
- Members:
+ If onlyheads is given, only nodes ancestral to nodes in onlyheads (inclusive)
+ are included. If you already know the local repo's heads, passing them in
+ onlyheads is faster than letting them be recomputed here.
- missing is a list of all nodes present in local but not in remote.
- common is a list of all nodes shared between the two repos.
- excluded is the list of missing changeset that shouldn't be sent remotely.
- missingheads is the list of heads of missing.
- commonheads is the list of heads of common.
-
- The sets are computed on demand from the heads, unless provided upfront
- by discovery.'''
-
- def __init__(self, revlog, commonheads, missingheads):
- self.commonheads = commonheads
- self.missingheads = missingheads
- self._revlog = revlog
- self._common = None
- self._missing = None
- self.excluded = []
-
- def _computecommonmissing(self):
- sets = self._revlog.findcommonmissing(self.commonheads,
- self.missingheads)
- self._common, self._missing = sets
-
- @util.propertycache
- def common(self):
- if self._common is None:
- self._computecommonmissing()
- return self._common
-
- @util.propertycache
- def missing(self):
- if self._missing is None:
- self._computecommonmissing()
- return self._missing
-
-def findcommonoutgoing(repo, other, onlyheads=None, force=False,
- commoninc=None, portable=False):
- '''Return an outgoing instance to identify the nodes present in repo but
- not in other.
-
- If onlyheads is given, only nodes ancestral to nodes in onlyheads
- (inclusive) are included. If you already know the local repo's heads,
- passing them in onlyheads is faster than letting them be recomputed here.
-
- If commoninc is given, it must be the result of a prior call to
+ If commoninc is given, it must the the result of a prior call to
findcommonincoming(repo, other, force) to avoid recomputing it here.
- If portable is given, compute more conservative common and missingheads,
- to make bundles created from the instance more portable.'''
- # declare an empty outgoing object to be filled later
- og = outgoing(repo.changelog, None, None)
-
- # get common set if not provided
- if commoninc is None:
- commoninc = findcommonincoming(repo, other, force=force)
- og.commonheads, _any, _hds = commoninc
-
- # compute outgoing
- mayexclude = (repo._phasecache.phaseroots[phases.secret] or repo.obsstore)
- if not mayexclude:
- og.missingheads = onlyheads or repo.heads()
- elif onlyheads is None:
- # use visible heads as it should be cached
- og.missingheads = visibleheads(repo)
- og.excluded = [ctx.node() for ctx in repo.set('secret() or extinct()')]
- else:
- # compute common, missing and exclude secret stuff
- sets = repo.changelog.findcommonmissing(og.commonheads, onlyheads)
- og._common, allmissing = sets
- og._missing = missing = []
- og.excluded = excluded = []
- for node in allmissing:
- ctx = repo[node]
- if ctx.phase() >= phases.secret or ctx.extinct():
- excluded.append(node)
- else:
- missing.append(node)
- if len(missing) == len(allmissing):
- missingheads = onlyheads
- else: # update missing heads
- missingheads = phases.newheads(repo, onlyheads, excluded)
- og.missingheads = missingheads
- if portable:
- # recompute common and missingheads as if -r<rev> had been given for
- # each head of missing, and --base <rev> for each head of the proper
- # ancestors of missing
- og._computecommonmissing()
- cl = repo.changelog
- missingrevs = set(cl.rev(n) for n in og._missing)
- og._common = set(cl.ancestors(missingrevs)) - missingrevs
- commonheads = set(og.commonheads)
- og.missingheads = [h for h in og.missingheads if h not in commonheads]
-
- return og
-
-def _headssummary(repo, remote, outgoing):
- """compute a summary of branch and heads status before and after push
-
- return {'branch': ([remoteheads], [newheads], [unsyncedheads])} mapping
-
- - branch: the branch name
- - remoteheads: the list of remote heads known locally
- None is the branch is new
- - newheads: the new remote heads (known locally) with outgoing pushed
- - unsyncedheads: the list of remote heads unknown locally.
- """
- cl = repo.changelog
- headssum = {}
- # A. Create set of branches involved in the push.
- branches = set(repo[n].branch() for n in outgoing.missing)
- remotemap = remote.branchmap()
- newbranches = branches - set(remotemap)
- branches.difference_update(newbranches)
-
- # A. register remote heads
- remotebranches = set()
- for branch, heads in remote.branchmap().iteritems():
- remotebranches.add(branch)
- known = []
- unsynced = []
- for h in heads:
- if h in cl.nodemap:
- known.append(h)
- else:
- unsynced.append(h)
- headssum[branch] = (known, list(known), unsynced)
- # B. add new branch data
- missingctx = list(repo[n] for n in outgoing.missing)
- touchedbranches = set()
- for ctx in missingctx:
- branch = ctx.branch()
- touchedbranches.add(branch)
- if branch not in headssum:
- headssum[branch] = (None, [], [])
-
- # C drop data about untouched branches:
- for branch in remotebranches - touchedbranches:
- del headssum[branch]
-
- # D. Update newmap with outgoing changes.
- # This will possibly add new heads and remove existing ones.
- newmap = dict((branch, heads[1]) for branch, heads in headssum.iteritems()
- if heads[0] is not None)
- repo._updatebranchcache(newmap, missingctx)
- for branch, newheads in newmap.iteritems():
- headssum[branch][1][:] = newheads
- return headssum
-
-def _oldheadssummary(repo, remoteheads, outgoing, inc=False):
- """Compute branchmapsummary for repo without branchmap support"""
+ The returned tuple is meant to be passed to changelog.findmissing.'''
+ common, _any, _hds = commoninc or findcommonincoming(repo, other, force=force)
+ return (common, onlyheads or repo.heads())
+
+def prepush(repo, remote, force, revs, newbranch):
+ '''Analyze the local and remote repositories and determine which
+ changesets need to be pushed to the remote. Return value depends
+ on circumstances:
+
+ If we are not going to push anything, return a tuple (None,
+ outgoing) where outgoing is 0 if there are no outgoing
+ changesets and 1 if there are, but we refuse to push them
+ (e.g. would create new remote heads).
+
+ Otherwise, return a tuple (changegroup, remoteheads), where
+ changegroup is a readable file-like object whose read() returns
+ successive changegroup chunks ready to be sent over the wire and
+ remoteheads is the list of remote heads.'''
+ commoninc = findcommonincoming(repo, remote, force=force)
+ common, revs = findcommonoutgoing(repo, remote, onlyheads=revs,
+ commoninc=commoninc, force=force)
+ _common, inc, remoteheads = commoninc
cl = repo.changelog
- # 1-4b. old servers: Check for new topological heads.
- # Construct {old,new}map with branch = None (topological branch).
- # (code based on _updatebranchcache)
- oldheads = set(h for h in remoteheads if h in cl.nodemap)
- # all nodes in outgoing.missing are children of either:
- # - an element of oldheads
- # - another element of outgoing.missing
- # - nullrev
- # This explains why the new head are very simple to compute.
- r = repo.set('heads(%ln + %ln)', oldheads, outgoing.missing)
- newheads = list(c.node() for c in r)
- unsynced = inc and set([None]) or set()
- return {None: (oldheads, newheads, unsynced)}
+ outg = cl.findmissing(common, revs)
+
+ if not outg:
+ repo.ui.status(_("no changes found\n"))
+ return None, 1
+
+ if not force and remoteheads != [nullid]:
+ if remote.capable('branchmap'):
+ # Check for each named branch if we're creating new remote heads.
+ # To be a remote head after push, node must be either:
+ # - unknown locally
+ # - a local outgoing head descended from update
+ # - a remote head that's known locally and not
+ # ancestral to an outgoing head
+
+ # 1. Create set of branches involved in the push.
+ branches = set(repo[n].branch() for n in outg)
+
+ # 2. Check for new branches on the remote.
+ remotemap = remote.branchmap()
+ newbranches = branches - set(remotemap)
+ if newbranches and not newbranch: # new branch requires --new-branch
+ branchnames = ', '.join(sorted(newbranches))
+ raise util.Abort(_("push creates new remote branches: %s!")
+ % branchnames,
+ hint=_("use 'hg push --new-branch' to create"
+ " new remote branches"))
+ branches.difference_update(newbranches)
+
+ # 3. Construct the initial oldmap and newmap dicts.
+ # They contain information about the remote heads before and
+ # after the push, respectively.
+ # Heads not found locally are not included in either dict,
+ # since they won't be affected by the push.
+ # unsynced contains all branches with incoming changesets.
+ oldmap = {}
+ newmap = {}
+ unsynced = set()
+ for branch in branches:
+ remotebrheads = remotemap[branch]
+ prunedbrheads = [h for h in remotebrheads if h in cl.nodemap]
+ oldmap[branch] = prunedbrheads
+ newmap[branch] = list(prunedbrheads)
+ if len(remotebrheads) > len(prunedbrheads):
+ unsynced.add(branch)
+
+ # 4. Update newmap with outgoing changes.
+ # This will possibly add new heads and remove existing ones.
+ ctxgen = (repo[n] for n in outg)
+ repo._updatebranchcache(newmap, ctxgen)
-def checkheads(repo, remote, outgoing, remoteheads, newbranch=False, inc=False):
- """Check that a push won't add any outgoing head
-
- raise Abort error and display ui message as needed.
- """
- # Check for each named branch if we're creating new remote heads.
- # To be a remote head after push, node must be either:
- # - unknown locally
- # - a local outgoing head descended from update
- # - a remote head that's known locally and not
- # ancestral to an outgoing head
- if remoteheads == [nullid]:
- # remote is empty, nothing to check.
- return
-
- if remote.capable('branchmap'):
- headssum = _headssummary(repo, remote, outgoing)
- else:
- headssum = _oldheadssummary(repo, remoteheads, outgoing, inc)
- newbranches = [branch for branch, heads in headssum.iteritems()
- if heads[0] is None]
- # 1. Check for new branches on the remote.
- if newbranches and not newbranch: # new branch requires --new-branch
- branchnames = ', '.join(sorted(newbranches))
- raise util.Abort(_("push creates new remote branches: %s!")
- % branchnames,
- hint=_("use 'hg push --new-branch' to create"
- " new remote branches"))
-
- # 2 compute newly pushed bookmarks. We
- # we don't warned about bookmarked heads.
- localbookmarks = repo._bookmarks
- remotebookmarks = remote.listkeys('bookmarks')
- bookmarkedheads = set()
- for bm in localbookmarks:
- rnode = remotebookmarks.get(bm)
- if rnode and rnode in repo:
- lctx, rctx = repo[bm], repo[rnode]
- if rctx == lctx.ancestor(rctx):
- bookmarkedheads.add(lctx.node())
-
- # 3. Check for new heads.
- # If there are more heads after the push than before, a suitable
- # error message, depending on unsynced status, is displayed.
- error = None
- unsynced = False
- allmissing = set(outgoing.missing)
- for branch, heads in headssum.iteritems():
- if heads[0] is None:
- # Maybe we should abort if we push more that one head
- # for new branches ?
- continue
- if heads[2]:
- unsynced = True
- oldhs = set(heads[0])
- candidate_newhs = set(heads[1])
- # add unsynced data
- oldhs.update(heads[2])
- candidate_newhs.update(heads[2])
- dhs = None
- if repo.obsstore:
- # remove future heads which are actually obsolete by another
- # pushed element:
- #
- # XXX There is several case this case does not handle properly
- #
- # (1) if <nh> is public, it won't be affected by obsolete marker
- # and a new is created
- #
- # (2) if the new heads have ancestors which are not obsolete and
- # not ancestors of any other heads we will have a new head too.
- #
- # This two case will be easy to handle for know changeset but much
- # more tricky for unsynced changes.
- newhs = set()
- for nh in candidate_newhs:
- for suc in obsolete.anysuccessors(repo.obsstore, nh):
- if suc != nh and suc in allmissing:
- break
- else:
- newhs.add(nh)
else:
- newhs = candidate_newhs
- if len(newhs) > len(oldhs):
- # strip updates to existing remote heads from the new heads list
- dhs = list(newhs - bookmarkedheads - oldhs)
- if dhs:
- if error is None:
- if branch not in ('default', None):
- error = _("push creates new remote head %s "
- "on branch '%s'!") % (short(dhs[0]), branch)
- else:
- error = _("push creates new remote head %s!"
- ) % short(dhs[0])
- if heads[2]: # unsynced
- hint = _("you should pull and merge or "
- "use push -f to force")
- else:
- hint = _("did you forget to merge? "
- "use push -f to force")
- if branch is not None:
- repo.ui.note(_("new remote heads on branch '%s'\n") % branch)
- for h in dhs:
- repo.ui.note(_("new remote head %s\n") % short(h))
- if error:
- raise util.Abort(error, hint=hint)
-
- # 6. Check for unsynced changes on involved branches.
- if unsynced:
- repo.ui.warn(_("note: unsynced remote changes!\n"))
-
-def visibleheads(repo):
- """return the set of visible head of this repo"""
- # XXX we want a cache on this
- sroots = repo._phasecache.phaseroots[phases.secret]
- if sroots or repo.obsstore:
- # XXX very slow revset. storing heads or secret "boundary"
- # would help.
- revset = repo.set('heads(not (%ln:: + extinct()))', sroots)
-
- vheads = [ctx.node() for ctx in revset]
- if not vheads:
- vheads.append(nullid)
- else:
- vheads = repo.heads()
- return vheads
-
-
-def visiblebranchmap(repo):
- """return a branchmap for the visible set"""
- # XXX Recomputing this data on the fly is very slow. We should build a
- # XXX cached version while computin the standard branchmap version.
- sroots = repo._phasecache.phaseroots[phases.secret]
- if sroots or repo.obsstore:
- vbranchmap = {}
- for branch, nodes in repo.branchmap().iteritems():
- # search for secret heads.
- for n in nodes:
- if repo[n].phase() >= phases.secret:
- nodes = None
- break
- # if secret heads were found we must compute them again
- if nodes is None:
- s = repo.set('heads(branch(%s) - secret() - extinct())',
- branch)
- nodes = [c.node() for c in s]
- vbranchmap[branch] = nodes
+ # 1-4b. old servers: Check for new topological heads.
+ # Construct {old,new}map with branch = None (topological branch).
+ # (code based on _updatebranchcache)
+ oldheads = set(h for h in remoteheads if h in cl.nodemap)
+ newheads = oldheads.union(outg)
+ if len(newheads) > 1:
+ for latest in reversed(outg):
+ if latest not in newheads:
+ continue
+ minhrev = min(cl.rev(h) for h in newheads)
+ reachable = cl.reachable(latest, cl.node(minhrev))
+ reachable.remove(latest)
+ newheads.difference_update(reachable)
+ branches = set([None])
+ newmap = {None: newheads}
+ oldmap = {None: oldheads}
+ unsynced = inc and branches or set()
+
+ # 5. Check for new heads.
+ # If there are more heads after the push than before, a suitable
+ # error message, depending on unsynced status, is displayed.
+ error = None
+ for branch in branches:
+ newhs = set(newmap[branch])
+ oldhs = set(oldmap[branch])
+ if len(newhs) > len(oldhs):
+ dhs = list(newhs - oldhs)
+ if error is None:
+ if branch != 'default':
+ error = _("push creates new remote head %s "
+ "on branch '%s'!") % (short(dhs[0]), branch)
+ else:
+ error = _("push creates new remote head %s!"
+ ) % short(dhs[0])
+ if branch in unsynced:
+ hint = _("you should pull and merge or "
+ "use push -f to force")
+ else:
+ hint = _("did you forget to merge? "
+ "use push -f to force")
+ repo.ui.note("new remote heads on branch '%s'\n" % branch)
+ for h in dhs:
+ repo.ui.note("new remote head %s\n" % short(h))
+ if error:
+ raise util.Abort(error, hint=hint)
+
+ # 6. Check for unsynced changes on involved branches.
+ if unsynced:
+ repo.ui.warn(_("note: unsynced remote changes!\n"))
+
+ if revs is None:
+ # use the fast path, no race possible on push
+ cg = repo._changegroup(outg, 'push')
else:
- vbranchmap = repo.branchmap()
- return vbranchmap
+ cg = repo.getbundle('push', heads=revs, common=common)
+ return cg, remoteheads
diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
index 520fe59..a1f8335 100644
--- a/mercurial/dispatch.py
+++ b/mercurial/dispatch.py
@@ -12,8 +12,7 @@ import cmdutil, encoding
import ui as uimod
class request(object):
- def __init__(self, args, ui=None, repo=None, fin=None, fout=None,
- ferr=None):
+ def __init__(self, args, ui=None, repo=None, fin=None, fout=None, ferr=None):
self.args = args
self.ui = ui
self.repo = repo
@@ -25,7 +24,7 @@ class request(object):
def run():
"run the command in sys.argv"
- sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
+ sys.exit(dispatch(request(sys.argv[1:])))
def dispatch(req):
"run the command specified in req.args"
@@ -88,7 +87,7 @@ def _runcatch(req):
return _dispatch(req)
finally:
ui.flush()
- except: # re-raises
+ except:
# enter the debugger when we hit an exception
if '--debugger' in req.args:
traceback.print_exc()
@@ -124,9 +123,6 @@ def _runcatch(req):
else:
ui.warn(_("hg: %s\n") % inst.args[1])
commands.help_(ui, 'shortlist')
- except error.OutOfBandError, inst:
- ui.warn(_("abort: remote error:\n"))
- ui.warn(''.join(inst.args))
except error.RepoError, inst:
ui.warn(_("abort: %s!\n") % inst)
if inst.hint:
@@ -163,16 +159,16 @@ def _runcatch(req):
elif m in "zlib".split():
ui.warn(_("(is your Python install correct?)\n"))
except IOError, inst:
- if util.safehasattr(inst, "code"):
+ if hasattr(inst, "code"):
ui.warn(_("abort: %s\n") % inst)
- elif util.safehasattr(inst, "reason"):
+ elif hasattr(inst, "reason"):
try: # usually it is in the form (errno, strerror)
reason = inst.reason.args[1]
except (AttributeError, IndexError):
- # it might be anything, for example a string
+ # it might be anything, for example a string
reason = inst.reason
ui.warn(_("abort: error: %s\n") % reason)
- elif util.safehasattr(inst, "args") and inst.args[0] == errno.EPIPE:
+ elif hasattr(inst, "args") and inst.args[0] == errno.EPIPE:
if ui.debugflag:
ui.warn(_("broken pipe\n"))
elif getattr(inst, "strerror", None):
@@ -204,72 +200,29 @@ def _runcatch(req):
return inst.code
except socket.error, inst:
ui.warn(_("abort: %s\n") % inst.args[-1])
- except: # re-raises
- myver = util.version()
- # For compatibility checking, we discard the portion of the hg
- # version after the + on the assumption that if a "normal
- # user" is running a build with a + in it the packager
- # probably built from fairly close to a tag and anyone with a
- # 'make local' copy of hg (where the version number can be out
- # of date) will be clueful enough to notice the implausible
- # version number and try updating.
- compare = myver.split('+')[0]
- ct = tuplever(compare)
- worst = None, ct, ''
- for name, mod in extensions.extensions():
- testedwith = getattr(mod, 'testedwith', 'unknown')
- report = getattr(mod, 'buglink', _('the extension author.'))
- if testedwith == 'unknown':
- # We found an untested extension. It's likely the culprit.
- worst = name, testedwith, report
- break
- if compare not in testedwith.split() and testedwith != 'internal':
- tested = [tuplever(v) for v in testedwith.split()]
- lower = [t for t in tested if t < ct]
- nearest = max(lower or tested)
- if worst[0] is None or nearest < worst[1]:
- worst = name, nearest, report
- if worst[0] is not None:
- name, testedwith, report = worst
- if not isinstance(testedwith, str):
- testedwith = '.'.join([str(c) for c in testedwith])
- warning = (_('** Unknown exception encountered with '
- 'possibly-broken third-party extension %s\n'
- '** which supports versions %s of Mercurial.\n'
- '** Please disable %s and try your action again.\n'
- '** If that fixes the bug please report it to %s\n')
- % (name, testedwith, name, report))
- else:
- warning = (_("** unknown exception encountered, "
- "please report by visiting\n") +
- _("** http://mercurial.selenic.com/wiki/BugTracker\n"))
- warning += ((_("** Python %s\n") % sys.version.replace('\n', '')) +
- (_("** Mercurial Distributed SCM (version %s)\n") % myver) +
- (_("** Extensions loaded: %s\n") %
- ", ".join([x[0] for x in extensions.extensions()])))
- ui.warn(warning)
+ except:
+ ui.warn(_("** unknown exception encountered,"
+ " please report by visiting\n"))
+ ui.warn(_("** http://mercurial.selenic.com/wiki/BugTracker\n"))
+ ui.warn(_("** Python %s\n") % sys.version.replace('\n', ''))
+ ui.warn(_("** Mercurial Distributed SCM (version %s)\n")
+ % util.version())
+ ui.warn(_("** Extensions loaded: %s\n")
+ % ", ".join([x[0] for x in extensions.extensions()]))
raise
return -1
-def tuplever(v):
- try:
- return tuple([int(i) for i in v.split('.')])
- except ValueError:
- return tuple()
-
def aliasargs(fn, givenargs):
args = getattr(fn, 'args', [])
- if args:
+ if args and givenargs:
cmd = ' '.join(map(util.shellquote, args))
nums = []
def replacer(m):
num = int(m.group(1)) - 1
nums.append(num)
- if num < len(givenargs):
- return givenargs[num]
- raise util.Abort(_('too few arguments for command alias'))
+ return givenargs[num]
cmd = re.sub(r'\$(\d+|\$)', replacer, cmd)
givenargs = [x for i, x in enumerate(givenargs)
if i not in nums]
@@ -285,7 +238,6 @@ class cmdalias(object):
self.opts = []
self.help = ''
self.norepo = True
- self.optionalrepo = False
self.badalias = False
try:
@@ -304,6 +256,7 @@ class cmdalias(object):
return 1
self.fn = fn
self.badalias = True
+
return
if self.definition.startswith('!'):
@@ -355,8 +308,6 @@ class cmdalias(object):
self.args = aliasargs(self.fn, args)
if cmd not in commands.norepo.split(' '):
self.norepo = False
- if cmd in commands.optionalrepo.split(' '):
- self.optionalrepo = True
if self.help.startswith("hg " + cmd):
# drop prefix in old-style help lines so hg shows the alias
self.help = self.help[4 + len(cmd):]
@@ -387,7 +338,7 @@ class cmdalias(object):
ui.debug("alias '%s' shadows command '%s'\n" %
(self.name, self.cmdname))
- if util.safehasattr(self, 'shell'):
+ if hasattr(self, 'shell'):
return self.fn(ui, *args, **opts)
else:
try:
@@ -412,11 +363,9 @@ def addaliases(ui, cmdtable):
# definition might not exist or it might not be a cmdalias
pass
- cmdtable[aliasdef.name] = (aliasdef, aliasdef.opts, aliasdef.help)
+ cmdtable[aliasdef.cmd] = (aliasdef, aliasdef.opts, aliasdef.help)
if aliasdef.norepo:
commands.norepo += ' %s' % alias
- if aliasdef.optionalrepo:
- commands.optionalrepo += ' %s' % alias
def _parse(ui, args):
options = {}
@@ -430,7 +379,7 @@ def _parse(ui, args):
if args:
cmd, args = args[0], args[1:]
aliases, entry = cmdutil.findcmd(cmd, commands.table,
- ui.configbool("ui", "strict"))
+ ui.config("ui", "strict"))
cmd = aliases[0]
args = aliasargs(entry[0], args)
defaults = ui.config("defaults", cmd)
@@ -534,14 +483,16 @@ def _getlocal(ui, rpath):
lui = ui.copy()
lui.readconfig(os.path.join(path, ".hg", "hgrc"), path)
- if rpath and rpath[-1]:
+ if rpath:
path = lui.expandpath(rpath[-1])
lui = ui.copy()
lui.readconfig(os.path.join(path, ".hg", "hgrc"), path)
return path, lui
-def _checkshellalias(lui, ui, args):
+def _checkshellalias(ui, args):
+ cwd = os.getcwd()
+ norepo = commands.norepo
options = {}
try:
@@ -552,38 +503,42 @@ def _checkshellalias(lui, ui, args):
if not args:
return
- norepo = commands.norepo
- optionalrepo = commands.optionalrepo
- def restorecommands():
- commands.norepo = norepo
- commands.optionalrepo = optionalrepo
+ _parseconfig(ui, options['config'])
+ if options['cwd']:
+ os.chdir(options['cwd'])
+
+ path, lui = _getlocal(ui, [options['repository']])
cmdtable = commands.table.copy()
addaliases(lui, cmdtable)
cmd = args[0]
try:
- aliases, entry = cmdutil.findcmd(cmd, cmdtable,
- lui.configbool("ui", "strict"))
+ aliases, entry = cmdutil.findcmd(cmd, cmdtable, lui.config("ui", "strict"))
except (error.AmbiguousCommand, error.UnknownCommand):
- restorecommands()
+ commands.norepo = norepo
+ os.chdir(cwd)
return
cmd = aliases[0]
fn = entry[0]
- if cmd and util.safehasattr(fn, 'shell'):
+ if cmd and hasattr(fn, 'shell'):
d = lambda: fn(ui, *args[1:])
- return lambda: runcommand(lui, None, cmd, args[:1], ui, options, d,
- [], {})
+ return lambda: runcommand(lui, None, cmd, args[:1], ui, options, d, [], {})
- restorecommands()
+ commands.norepo = norepo
+ os.chdir(cwd)
_loaded = set()
def _dispatch(req):
args = req.args
ui = req.ui
+ shellaliasfn = _checkshellalias(ui, args)
+ if shellaliasfn:
+ return shellaliasfn()
+
# read --config before doing anything else
# (e.g. to change trust settings for reading .hg/hgrc)
cfgs = _parseconfig(ui, _earlygetopt(['--config'], args))
@@ -596,12 +551,6 @@ def _dispatch(req):
rpath = _earlygetopt(["-R", "--repository", "--repo"], args)
path, lui = _getlocal(ui, rpath)
- # Now that we're operating in the right directory/repository with
- # the right config settings, check for shell aliases
- shellaliasfn = _checkshellalias(lui, ui, args)
- if shellaliasfn:
- return shellaliasfn()
-
# Configure extensions in phases: uisetup, extsetup, cmdtable, and
# reposetup. Programs like TortoiseHg will call _dispatch several
# times so we keep track of configured extensions in _loaded.
@@ -639,7 +588,7 @@ def _dispatch(req):
raise util.Abort(_("option --cwd may not be abbreviated!"))
if options["repository"]:
raise util.Abort(_(
- "option -R has to be separated from other options (e.g. not -qR) "
+ "Option -R has to be separated from other options (e.g. not -qR) "
"and --repository may only be abbreviated as --repo!"))
if options["encoding"]:
@@ -655,7 +604,7 @@ def _dispatch(req):
s = get_times()
def print_time():
t = get_times()
- ui.warn(_("time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n") %
+ ui.warn(_("Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n") %
(t[4]-s[4], t[0]-s[0], t[2]-s[2], t[1]-s[1], t[3]-s[3]))
atexit.register(print_time)
@@ -686,10 +635,10 @@ def _dispatch(req):
for ui_ in uis:
ui_.setconfig('web', 'cacerts', '')
- if options['version']:
- return commands.version_(ui)
if options['help']:
- return commands.help_(ui, cmd)
+ return commands.help_(ui, cmd, options['version'])
+ elif options['version']:
+ return commands.version_(ui)
elif not cmd:
return commands.help_(ui, 'shortlist')
@@ -723,8 +672,7 @@ def _dispatch(req):
return _dispatch(req)
if not path:
raise error.RepoError(_("no repository found in '%s'"
- " (.hg not found)")
- % os.getcwd())
+ " (.hg not found)") % os.getcwd())
raise
if repo:
ui = repo.ui
@@ -742,59 +690,6 @@ def _dispatch(req):
if repo and repo != req.repo:
repo.close()
-def lsprofile(ui, func, fp):
- format = ui.config('profiling', 'format', default='text')
- field = ui.config('profiling', 'sort', default='inlinetime')
- climit = ui.configint('profiling', 'nested', default=5)
-
- if format not in ['text', 'kcachegrind']:
- ui.warn(_("unrecognized profiling format '%s'"
- " - Ignored\n") % format)
- format = 'text'
-
- try:
- from mercurial import lsprof
- except ImportError:
- raise util.Abort(_(
- 'lsprof not available - install from '
- 'http://codespeak.net/svn/user/arigo/hack/misc/lsprof/'))
- p = lsprof.Profiler()
- p.enable(subcalls=True)
- try:
- return func()
- finally:
- p.disable()
-
- if format == 'kcachegrind':
- import lsprofcalltree
- calltree = lsprofcalltree.KCacheGrind(p)
- calltree.output(fp)
- else:
- # format == 'text'
- stats = lsprof.Stats(p.getstats())
- stats.sort(field)
- stats.pprint(limit=30, file=fp, climit=climit)
-
-def statprofile(ui, func, fp):
- try:
- import statprof
- except ImportError:
- raise util.Abort(_(
- 'statprof not available - install using "easy_install statprof"'))
-
- freq = ui.configint('profiling', 'freq', default=1000)
- if freq > 0:
- statprof.reset(freq)
- else:
- ui.warn(_("invalid sampling frequency '%s' - ignoring\n") % freq)
-
- statprof.start()
- try:
- return func()
- finally:
- statprof.stop()
- statprof.display(fp)
-
def _runcommand(ui, options, cmd, cmdfunc):
def checkargs():
try:
@@ -803,28 +698,45 @@ def _runcommand(ui, options, cmd, cmdfunc):
raise error.CommandError(cmd, _("invalid arguments"))
if options['profile']:
- profiler = os.getenv('HGPROF')
- if profiler is None:
- profiler = ui.config('profiling', 'type', default='ls')
- if profiler not in ('ls', 'stat'):
- ui.warn(_("unrecognized profiler '%s' - ignored\n") % profiler)
- profiler = 'ls'
+ format = ui.config('profiling', 'format', default='text')
+
+ if not format in ['text', 'kcachegrind']:
+ ui.warn(_("unrecognized profiling format '%s'"
+ " - Ignored\n") % format)
+ format = 'text'
output = ui.config('profiling', 'output')
if output:
path = ui.expandpath(output)
- fp = open(path, 'wb')
+ ostream = open(path, 'wb')
else:
- fp = sys.stderr
+ ostream = sys.stderr
try:
- if profiler == 'ls':
- return lsprofile(ui, checkargs, fp)
- else:
- return statprofile(ui, checkargs, fp)
+ from mercurial import lsprof
+ except ImportError:
+ raise util.Abort(_(
+ 'lsprof not available - install from '
+ 'http://codespeak.net/svn/user/arigo/hack/misc/lsprof/'))
+ p = lsprof.Profiler()
+ p.enable(subcalls=True)
+ try:
+ return checkargs()
finally:
+ p.disable()
+
+ if format == 'kcachegrind':
+ import lsprofcalltree
+ calltree = lsprofcalltree.KCacheGrind(p)
+ calltree.output(ostream)
+ else:
+ # format == 'text'
+ stats = lsprof.Stats(p.getstats())
+ stats.sort()
+ stats.pprint(top=10, file=ostream, climit=5)
+
if output:
- fp.close()
+ ostream.close()
else:
return checkargs()
diff --git a/mercurial/encoding.py b/mercurial/encoding.py
index 781d03b..3005752 100644
--- a/mercurial/encoding.py
+++ b/mercurial/encoding.py
@@ -92,32 +92,24 @@ def tolocal(s):
'foo: \\xc3\\xa4'
"""
- try:
+ for e in ('UTF-8', fallbackencoding):
try:
- # make sure string is actually stored in UTF-8
- u = s.decode('UTF-8')
- if encoding == 'UTF-8':
- # fast path
- return s
+ u = s.decode(e) # attempt strict decoding
r = u.encode(encoding, "replace")
if u == r.decode(encoding):
# r is a safe, non-lossy encoding of s
return r
- return localstr(s, r)
- except UnicodeDecodeError:
- # we should only get here if we're looking at an ancient changeset
- try:
- u = s.decode(fallbackencoding)
- r = u.encode(encoding, "replace")
- if u == r.decode(encoding):
- # r is a safe, non-lossy encoding of s
- return r
+ elif e == 'UTF-8':
+ return localstr(s, r)
+ else:
return localstr(u.encode('UTF-8'), r)
- except UnicodeDecodeError:
- u = s.decode("utf-8", "replace") # last ditch
- return u.encode(encoding, "replace") # can't round-trip
- except LookupError, k:
- raise error.Abort(k, hint="please check your locale settings")
+
+ except LookupError, k:
+ raise error.Abort("%s, please check your locale settings" % k)
+ except UnicodeDecodeError:
+ pass
+ u = s.decode("utf-8", "replace") # last ditch
+ return u.encode(encoding, "replace") # can't round-trip
def fromlocal(s):
"""
@@ -140,14 +132,14 @@ def fromlocal(s):
sub = s[max(0, inst.start - 10):inst.start + 10]
raise error.Abort("decoding near '%s': %s!" % (sub, inst))
except LookupError, k:
- raise error.Abort(k, hint="please check your locale settings")
+ raise error.Abort("%s, please check your locale settings" % k)
# How to treat ambiguous-width characters. Set to 'wide' to treat as wide.
wide = (os.environ.get("HGENCODINGAMBIGUOUS", "narrow") == "wide"
and "WFA" or "WF")
def colwidth(s):
- "Find the column width of a string for display in the local encoding"
+ "Find the column width of a UTF-8 string for display"
return ucolwidth(s.decode(encoding, 'replace'))
def ucolwidth(d):
@@ -157,22 +149,9 @@ def ucolwidth(d):
return sum([eaw(c) in wide and 2 or 1 for c in d])
return len(d)
-def getcols(s, start, c):
- '''Use colwidth to find a c-column substring of s starting at byte
- index start'''
- for x in xrange(start + c, len(s)):
- t = s[start:x]
- if colwidth(t) == c:
- return t
-
def lower(s):
"best-effort encoding-aware case-folding of local string s"
try:
- s.decode('ascii') # throw exception for non-ASCII character
- return s.lower()
- except UnicodeDecodeError:
- pass
- try:
if isinstance(s, localstr):
u = s._utf8.decode("utf-8")
else:
@@ -184,104 +163,3 @@ def lower(s):
return lu.encode(encoding)
except UnicodeError:
return s.lower() # we don't know how to fold this except in ASCII
- except LookupError, k:
- raise error.Abort(k, hint="please check your locale settings")
-
-def upper(s):
- "best-effort encoding-aware case-folding of local string s"
- try:
- s.decode('ascii') # throw exception for non-ASCII character
- return s.upper()
- except UnicodeDecodeError:
- pass
- try:
- if isinstance(s, localstr):
- u = s._utf8.decode("utf-8")
- else:
- u = s.decode(encoding, encodingmode)
-
- uu = u.upper()
- if u == uu:
- return s # preserve localstring
- return uu.encode(encoding)
- except UnicodeError:
- return s.upper() # we don't know how to fold this except in ASCII
- except LookupError, k:
- raise error.Abort(k, hint="please check your locale settings")
-
-def toutf8b(s):
- '''convert a local, possibly-binary string into UTF-8b
-
- This is intended as a generic method to preserve data when working
- with schemes like JSON and XML that have no provision for
- arbitrary byte strings. As Mercurial often doesn't know
- what encoding data is in, we use so-called UTF-8b.
-
- If a string is already valid UTF-8 (or ASCII), it passes unmodified.
- Otherwise, unsupported bytes are mapped to UTF-16 surrogate range,
- uDC00-uDCFF.
-
- Principles of operation:
-
- - ASCII and UTF-8 data sucessfully round-trips and is understood
- by Unicode-oriented clients
- - filenames and file contents in arbitrary other encodings can have
- be round-tripped or recovered by clueful clients
- - local strings that have a cached known UTF-8 encoding (aka
- localstr) get sent as UTF-8 so Unicode-oriented clients get the
- Unicode data they want
- - because we must preserve UTF-8 bytestring in places such as
- filenames, metadata can't be roundtripped without help
-
- (Note: "UTF-8b" often refers to decoding a mix of valid UTF-8 and
- arbitrary bytes into an internal Unicode format that can be
- re-encoded back into the original. Here we are exposing the
- internal surrogate encoding as a UTF-8 string.)
- '''
-
- if isinstance(s, localstr):
- return s._utf8
-
- try:
- if s.decode('utf-8'):
- return s
- except UnicodeDecodeError:
- # surrogate-encode any characters that don't round-trip
- s2 = s.decode('utf-8', 'ignore').encode('utf-8')
- r = ""
- pos = 0
- for c in s:
- if s2[pos:pos + 1] == c:
- r += c
- pos += 1
- else:
- r += unichr(0xdc00 + ord(c)).encode('utf-8')
- return r
-
-def fromutf8b(s):
- '''Given a UTF-8b string, return a local, possibly-binary string.
-
- return the original binary string. This
- is a round-trip process for strings like filenames, but metadata
- that's was passed through tolocal will remain in UTF-8.
-
- >>> m = "\\xc3\\xa9\\x99abcd"
- >>> n = toutf8b(m)
- >>> n
- '\\xc3\\xa9\\xed\\xb2\\x99abcd'
- >>> fromutf8b(n) == m
- True
- '''
-
- # fast path - look for uDxxx prefixes in s
- if "\xed" not in s:
- return s
-
- u = s.decode("utf-8")
- r = ""
- for c in u:
- if ord(c) & 0xff00 == 0xdc00:
- r += chr(ord(c) & 0xff)
- else:
- r += c.encode("utf-8")
- return r
diff --git a/mercurial/error.py b/mercurial/error.py
index 462b971..f68fbda 100644
--- a/mercurial/error.py
+++ b/mercurial/error.py
@@ -39,9 +39,6 @@ class Abort(Exception):
class ConfigError(Abort):
'Exception raised when parsing config files'
-class OutOfBandError(Exception):
- 'Exception raised when a remote repo reports failure'
-
class ParseError(Exception):
'Exception raised when parsing config files (msg[, pos])'
diff --git a/mercurial/exewrapper.c b/mercurial/exewrapper.c
deleted file mode 100644
index 882e7b8..0000000
--- a/mercurial/exewrapper.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- exewrapper.c - wrapper for calling a python script on Windows
-
- Copyright 2012 Adrian Buehlmann <adrian@cadifra.com> and others
-
- This software may be used and distributed according to the terms of the
- GNU General Public License version 2 or any later version.
-*/
-
-#include <Python.h>
-#include <windows.h>
-
-
-#ifdef __GNUC__
-int strcat_s(char *d, size_t n, const char *s)
-{
- return !strncat(d, s, n);
-}
-#endif
-
-
-static char pyscript[MAX_PATH + 10];
-
-int main(int argc, char *argv[])
-{
- char *dot;
- int ret;
- int i;
- int n;
- char **pyargv;
- WIN32_FIND_DATA fdata;
- HANDLE hfind;
- const char *err;
-
- if (GetModuleFileName(NULL, pyscript, sizeof(pyscript)) == 0)
- {
- err = "GetModuleFileName failed";
- goto bail;
- }
-
- dot = strrchr(pyscript, '.');
- if (dot == NULL) {
- err = "malformed module filename";
- goto bail;
- }
- *dot = 0; /* cut trailing ".exe" */
-
- hfind = FindFirstFile(pyscript, &fdata);
- if (hfind != INVALID_HANDLE_VALUE) {
- /* pyscript exists, close handle */
- FindClose(hfind);
- } else {
- /* file pyscript isn't there, take <pyscript>exe.py */
- strcat_s(pyscript, sizeof(pyscript), "exe.py");
- }
-
- /*
- Only add the pyscript to the args, if it's not already there. It may
- already be there, if the script spawned a child process of itself, in
- the same way as it got called, that is, with the pyscript already in
- place. So we optionally accept the pyscript as the first argument
- (argv[1]), letting our exe taking the role of the python interpreter.
- */
- if (argc >= 2 && strcmp(argv[1], pyscript) == 0) {
- /*
- pyscript is already in the args, so there is no need to copy
- the args and we can directly call the python interpreter with
- the original args.
- */
- return Py_Main(argc, argv);
- }
-
- /*
- Start assembling the args for the Python interpreter call. We put the
- name of our exe (argv[0]) in the position where the python.exe
- canonically is, and insert the pyscript next.
- */
- pyargv = malloc((argc + 5) * sizeof(char*));
- if (pyargv == NULL) {
- err = "not enough memory";
- goto bail;
- }
- n = 0;
- pyargv[n++] = argv[0];
- pyargv[n++] = pyscript;
-
- /* copy remaining args from the command line */
- for (i = 1; i < argc; i++)
- pyargv[n++] = argv[i];
- /* argv[argc] is guaranteed to be NULL, so we forward that guarantee */
- pyargv[n] = NULL;
-
- ret = Py_Main(n, pyargv); /* The Python interpreter call */
-
- free(pyargv);
- return ret;
-
-bail:
- fprintf(stderr, "abort: %s\n", err);
- return 255;
-}
diff --git a/mercurial/extensions.py b/mercurial/extensions.py
index 3f74d4e..ee9fd32 100644
--- a/mercurial/extensions.py
+++ b/mercurial/extensions.py
@@ -42,12 +42,7 @@ def loadpath(path, module_name):
fd, fpath, desc = imp.find_module(f, [d])
return imp.load_module(module_name, fd, fpath, desc)
else:
- try:
- return imp.load_source(module_name, path)
- except IOError, exc:
- if not exc.filename:
- exc.filename = path # python does not fill this
- raise
+ return imp.load_source(module_name, path)
def load(ui, name, path):
# unused ui argument kept for backwards compatibility
@@ -74,9 +69,7 @@ def load(ui, name, path):
return mod
try:
mod = importh("hgext.%s" % name)
- except ImportError, err:
- ui.debug('could not import hgext.%s (%s): trying %s\n'
- % (name, err, name))
+ except ImportError:
mod = importh(name)
_extensions[shortname] = mod
_order.append(shortname)
@@ -131,7 +124,7 @@ def wrapcommand(table, command, wrapper):
where orig is the original (wrapped) function, and *args, **kwargs
are the arguments passed to it.
'''
- assert util.safehasattr(wrapper, '__call__')
+ assert hasattr(wrapper, '__call__')
aliases, entry = cmdutil.findcmd(command, table)
for alias, e in table.iteritems():
if e is entry:
@@ -184,12 +177,12 @@ def wrapfunction(container, funcname, wrapper):
your end users, you should play nicely with others by using the
subclass trick.
'''
- assert util.safehasattr(wrapper, '__call__')
+ assert hasattr(wrapper, '__call__')
def wrap(*args, **kwargs):
return wrapper(origfn, *args, **kwargs)
origfn = getattr(container, funcname)
- assert util.safehasattr(origfn, '__call__')
+ assert hasattr(origfn, '__call__')
setattr(container, funcname, wrap)
return origfn
@@ -279,7 +272,7 @@ def disabled():
paths = _disabledpaths()
if not paths:
- return {}
+ return None
exts = {}
for name, path in paths.iteritems():
@@ -306,7 +299,7 @@ def disabledext(name):
def disabledcmd(ui, cmd, strict=False):
'''import disabled extensions until cmd is found.
- returns (cmdname, extname, module)'''
+ returns (cmdname, extname, doc)'''
paths = _disabledpaths(strip_init=True)
if not paths:
@@ -334,19 +327,18 @@ def disabledcmd(ui, cmd, strict=False):
cmd = aliases[0]
return (cmd, name, mod)
- ext = None
# first, search for an extension with the same name as the command
path = paths.pop(cmd, None)
if path:
ext = findcmd(cmd, cmd, path)
- if not ext:
- # otherwise, interrogate each extension until there's a match
- for name, path in paths.iteritems():
- ext = findcmd(cmd, name, path)
- if ext:
- break
- if ext and 'DEPRECATED' not in ext.__doc__:
- return ext
+ if ext:
+ return ext
+
+ # otherwise, interrogate each extension until there's a match
+ for name, path in paths.iteritems():
+ ext = findcmd(cmd, name, path)
+ if ext:
+ return ext
raise error.UnknownCommand(cmd)
diff --git a/mercurial/fancyopts.py b/mercurial/fancyopts.py
index ae18083..7c9e07f 100644
--- a/mercurial/fancyopts.py
+++ b/mercurial/fancyopts.py
@@ -75,7 +75,7 @@ def fancyopts(args, options, state, gnu=False):
# copy defaults to state
if isinstance(default, list):
state[name] = default[:]
- elif getattr(default, '__call__', False):
+ elif hasattr(default, '__call__'):
state[name] = None
else:
state[name] = default
diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py
index d51f076..b13afe3 100644
--- a/mercurial/filemerge.py
+++ b/mercurial/filemerge.py
@@ -19,21 +19,11 @@ def _toolbool(ui, tool, part, default=False):
def _toollist(ui, tool, part, default=[]):
return ui.configlist("merge-tools", tool + "." + part, default)
-internals = {}
-
-def internaltool(name, trymerge, onfailure=None):
- '''return a decorator for populating internal merge tool table'''
- def decorator(func):
- fullname = 'internal:' + name
- func.__doc__ = "``%s``\n" % fullname + func.__doc__.strip()
- internals[fullname] = func
- func.trymerge = trymerge
- func.onfailure = onfailure
- return func
- return decorator
+_internal = ['internal:' + s
+ for s in 'fail local other merge prompt dump'.split()]
def _findtool(ui, tool):
- if tool in internals:
+ if tool in _internal:
return tool
for kn in ("regkey", "regkeyalt"):
k = _toolstr(ui, tool, kn)
@@ -44,8 +34,7 @@ def _findtool(ui, tool):
p = util.findexe(p + _toolstr(ui, tool, "regappend"))
if p:
return p
- exe = _toolstr(ui, tool, "executable", tool)
- return util.findexe(util.expandpath(exe))
+ return util.findexe(_toolstr(ui, tool, "executable", tool))
def _picktool(repo, ui, path, binary, symlink):
def check(tool, pat, symlink, binary):
@@ -107,11 +96,8 @@ def _picktool(repo, ui, path, binary, symlink):
if check(t, None, symlink, binary):
toolpath = _findtool(ui, t)
return (t, '"' + toolpath + '"')
-
- # internal merge or prompt as last resort
- if symlink or binary:
- return "internal:prompt", None
- return "internal:merge", None
+ # internal merge as last resort
+ return (not (symlink or binary) and "internal:merge" or None, None)
def _eoltype(data):
"Guess the EOL type of a file"
@@ -136,131 +122,6 @@ def _matcheol(file, origfile):
if newdata != data:
util.writefile(file, newdata)
-@internaltool('prompt', False)
-def _iprompt(repo, mynode, orig, fcd, fco, fca, toolconf):
- """Asks the user which of the local or the other version to keep as
- the merged version."""
- ui = repo.ui
- fd = fcd.path()
-
- if ui.promptchoice(_(" no tool found to merge %s\n"
- "keep (l)ocal or take (o)ther?") % fd,
- (_("&Local"), _("&Other")), 0):
- return _iother(repo, mynode, orig, fcd, fco, fca, toolconf)
- else:
- return _ilocal(repo, mynode, orig, fcd, fco, fca, toolconf)
-
-@internaltool('local', False)
-def _ilocal(repo, mynode, orig, fcd, fco, fca, toolconf):
- """Uses the local version of files as the merged version."""
- return 0
-
-@internaltool('other', False)
-def _iother(repo, mynode, orig, fcd, fco, fca, toolconf):
- """Uses the other version of files as the merged version."""
- repo.wwrite(fcd.path(), fco.data(), fco.flags())
- return 0
-
-@internaltool('fail', False)
-def _ifail(repo, mynode, orig, fcd, fco, fca, toolconf):
- """
- Rather than attempting to merge files that were modified on both
- branches, it marks them as unresolved. The resolve command must be
- used to resolve these conflicts."""
- return 1
-
-def _premerge(repo, toolconf, files):
- tool, toolpath, binary, symlink = toolconf
- a, b, c, back = files
-
- ui = repo.ui
-
- # do we attempt to simplemerge first?
- try:
- premerge = _toolbool(ui, tool, "premerge", not (binary or symlink))
- except error.ConfigError:
- premerge = _toolstr(ui, tool, "premerge").lower()
- valid = 'keep'.split()
- if premerge not in valid:
- _valid = ', '.join(["'" + v + "'" for v in valid])
- raise error.ConfigError(_("%s.premerge not valid "
- "('%s' is neither boolean nor %s)") %
- (tool, premerge, _valid))
-
- if premerge:
- r = simplemerge.simplemerge(ui, a, b, c, quiet=True)
- if not r:
- ui.debug(" premerge successful\n")
- return 0
- if premerge != 'keep':
- util.copyfile(back, a) # restore from backup and try again
- return 1 # continue merging
-
-@internaltool('merge', True,
- _("merging %s incomplete! "
- "(edit conflicts, then use 'hg resolve --mark')\n"))
-def _imerge(repo, mynode, orig, fcd, fco, fca, toolconf, files):
- """
- Uses the internal non-interactive simple merge algorithm for merging
- files. It will fail if there are any conflicts and leave markers in
- the partially merged file."""
- r = _premerge(repo, toolconf, files)
- if r:
- a, b, c, back = files
-
- ui = repo.ui
-
- r = simplemerge.simplemerge(ui, a, b, c, label=['local', 'other'])
- return True, r
- return False, 0
-
-@internaltool('dump', True)
-def _idump(repo, mynode, orig, fcd, fco, fca, toolconf, files):
- """
- Creates three versions of the files to merge, containing the
- contents of local, other and base. These files can then be used to
- perform a merge manually. If the file to be merged is named
- ``a.txt``, these files will accordingly be named ``a.txt.local``,
- ``a.txt.other`` and ``a.txt.base`` and they will be placed in the
- same directory as ``a.txt``."""
- r = _premerge(repo, toolconf, files)
- if r:
- a, b, c, back = files
-
- fd = fcd.path()
-
- util.copyfile(a, a + ".local")
- repo.wwrite(fd + ".other", fco.data(), fco.flags())
- repo.wwrite(fd + ".base", fca.data(), fca.flags())
- return False, r
-
-def _xmerge(repo, mynode, orig, fcd, fco, fca, toolconf, files):
- r = _premerge(repo, toolconf, files)
- if r:
- tool, toolpath, binary, symlink = toolconf
- a, b, c, back = files
- out = ""
- env = dict(HG_FILE=fcd.path(),
- HG_MY_NODE=short(mynode),
- HG_OTHER_NODE=str(fco.changectx()),
- HG_BASE_NODE=str(fca.changectx()),
- HG_MY_ISLINK='l' in fcd.flags(),
- HG_OTHER_ISLINK='l' in fco.flags(),
- HG_BASE_ISLINK='l' in fca.flags())
-
- ui = repo.ui
-
- args = _toolstr(ui, tool, "args", '$local $base $other')
- if "$output" in args:
- out, a = a, back # read input from backup, write to original
- replace = dict(local=a, base=b, other=c, output=out)
- args = util.interpolate(r'\$', replace, args,
- lambda s: '"%s"' % util.localpath(s))
- r = util.system(toolpath + ' ' + args, cwd=repo.root, environ=env,
- out=ui.fout)
- return True, r
- return False, 0
-
def filemerge(repo, mynode, orig, fcd, fco, fca):
"""perform a 3-way merge in the working directory
@@ -280,34 +141,42 @@ def filemerge(repo, mynode, orig, fcd, fco, fca):
f.close()
return name
+ def isbin(ctx):
+ try:
+ return util.binary(ctx.data())
+ except IOError:
+ return False
+
if not fco.cmp(fcd): # files identical?
return None
ui = repo.ui
fd = fcd.path()
- binary = fcd.isbinary() or fco.isbinary() or fca.isbinary()
+ binary = isbin(fcd) or isbin(fco) or isbin(fca)
symlink = 'l' in fcd.flags() + fco.flags()
tool, toolpath = _picktool(repo, ui, fd, binary, symlink)
ui.debug("picked tool '%s' for %s (binary %s symlink %s)\n" %
(tool, fd, binary, symlink))
- if tool in internals:
- func = internals[tool]
- trymerge = func.trymerge
- onfailure = func.onfailure
- else:
- func = _xmerge
- trymerge = True
- onfailure = _("merging %s failed!\n")
-
- toolconf = tool, toolpath, binary, symlink
-
- if not trymerge:
- return func(repo, mynode, orig, fcd, fco, fca, toolconf)
-
+ if not tool or tool == 'internal:prompt':
+ tool = "internal:local"
+ if ui.promptchoice(_(" no tool found to merge %s\n"
+ "keep (l)ocal or take (o)ther?") % fd,
+ (_("&Local"), _("&Other")), 0):
+ tool = "internal:other"
+ if tool == "internal:local":
+ return 0
+ if tool == "internal:other":
+ repo.wwrite(fd, fco.data(), fco.flags())
+ return 0
+ if tool == "internal:fail":
+ return 1
+
+ # do the actual merge
a = repo.wjoin(fd)
b = temp("base", fca)
c = temp("other", fco)
+ out = ""
back = a + ".orig"
util.copyfile(a, back)
@@ -318,18 +187,54 @@ def filemerge(repo, mynode, orig, fcd, fco, fca):
ui.debug("my %s other %s ancestor %s\n" % (fcd, fco, fca))
- needcheck, r = func(repo, mynode, orig, fcd, fco, fca, toolconf,
- (a, b, c, back))
- if not needcheck:
- if r:
- if onfailure:
- ui.warn(onfailure % fd)
- else:
+ # do we attempt to simplemerge first?
+ try:
+ premerge = _toolbool(ui, tool, "premerge", not (binary or symlink))
+ except error.ConfigError:
+ premerge = _toolstr(ui, tool, "premerge").lower()
+ valid = 'keep'.split()
+ if premerge not in valid:
+ _valid = ', '.join(["'" + v + "'" for v in valid])
+ raise error.ConfigError(_("%s.premerge not valid "
+ "('%s' is neither boolean nor %s)") %
+ (tool, premerge, _valid))
+
+ if premerge:
+ r = simplemerge.simplemerge(ui, a, b, c, quiet=True)
+ if not r:
+ ui.debug(" premerge successful\n")
os.unlink(back)
+ os.unlink(b)
+ os.unlink(c)
+ return 0
+ if premerge != 'keep':
+ util.copyfile(back, a) # restore from backup and try again
- os.unlink(b)
- os.unlink(c)
- return r
+ env = dict(HG_FILE=fd,
+ HG_MY_NODE=short(mynode),
+ HG_OTHER_NODE=str(fco.changectx()),
+ HG_BASE_NODE=str(fca.changectx()),
+ HG_MY_ISLINK='l' in fcd.flags(),
+ HG_OTHER_ISLINK='l' in fco.flags(),
+ HG_BASE_ISLINK='l' in fca.flags())
+
+ if tool == "internal:merge":
+ r = simplemerge.simplemerge(ui, a, b, c, label=['local', 'other'])
+ elif tool == 'internal:dump':
+ a = repo.wjoin(fd)
+ util.copyfile(a, a + ".local")
+ repo.wwrite(fd + ".other", fco.data(), fco.flags())
+ repo.wwrite(fd + ".base", fca.data(), fca.flags())
+ return 1 # unresolved
+ else:
+ args = _toolstr(ui, tool, "args", '$local $base $other')
+ if "$output" in args:
+ out, a = a, back # read input from backup, write to original
+ replace = dict(local=a, base=b, other=c, output=out)
+ args = util.interpolate(r'\$', replace, args,
+ lambda s: '"%s"' % util.localpath(s))
+ r = util.system(toolpath + ' ' + args, cwd=repo.root, environ=env,
+ out=ui.fout)
if not r and (_toolbool(ui, tool, "checkconflicts") or
'conflicts' in _toollist(ui, tool, "check")):
@@ -346,24 +251,20 @@ def filemerge(repo, mynode, orig, fcd, fco, fca):
if not r and not checked and (_toolbool(ui, tool, "checkchanged") or
'changed' in _toollist(ui, tool, "check")):
- if filecmp.cmp(a, back):
+ if filecmp.cmp(repo.wjoin(fd), back):
if ui.promptchoice(_(" output file %s appears unchanged\n"
"was merge successful (yn)?") % fd,
(_("&Yes"), _("&No")), 1):
r = 1
if _toolbool(ui, tool, "fixeol"):
- _matcheol(a, back)
+ _matcheol(repo.wjoin(fd), back)
if r:
- if onfailure:
- ui.warn(onfailure % fd)
+ ui.warn(_("merging %s failed!\n") % fd)
else:
os.unlink(back)
os.unlink(b)
os.unlink(c)
return r
-
-# tell hggettext to extract docstrings from these functions:
-i18nfunctions = internals.values()
diff --git a/mercurial/fileset.py b/mercurial/fileset.py
index 5c1f7eb..95a2c17 100644
--- a/mercurial/fileset.py
+++ b/mercurial/fileset.py
@@ -199,7 +199,7 @@ def binary(mctx, x):
"""
# i18n: "binary" is a keyword
getargs(x, 0, 0, _("binary takes no arguments"))
- return [f for f in mctx.existing() if util.binary(mctx.ctx[f].data())]
+ return [f for f in mctx.subset if util.binary(mctx.ctx[f].data())]
def exec_(mctx, x):
"""``exec()``
@@ -207,7 +207,7 @@ def exec_(mctx, x):
"""
# i18n: "exec" is a keyword
getargs(x, 0, 0, _("exec takes no arguments"))
- return [f for f in mctx.existing() if mctx.ctx.flags(f) == 'x']
+ return [f for f in mctx.subset if mctx.ctx.flags(f) == 'x']
def symlink(mctx, x):
"""``symlink()``
@@ -215,7 +215,7 @@ def symlink(mctx, x):
"""
# i18n: "symlink" is a keyword
getargs(x, 0, 0, _("symlink takes no arguments"))
- return [f for f in mctx.existing() if mctx.ctx.flags(f) == 'l']
+ return [f for f in mctx.subset if mctx.ctx.flags(f) == 'l']
def resolved(mctx, x):
"""``resolved()``
@@ -253,7 +253,7 @@ def grep(mctx, x):
"""
pat = getstring(x, _("grep requires a pattern"))
r = re.compile(pat)
- return [f for f in mctx.existing() if r.search(mctx.ctx[f].data())]
+ return [f for f in mctx.subset if r.search(mctx.ctx[f].data())]
_units = dict(k=2**10, K=2**10, kB=2**10, KB=2**10,
M=2**20, MB=2**20, G=2**30, GB=2**30)
@@ -320,7 +320,7 @@ def size(mctx, x):
else:
raise error.ParseError(_("couldn't parse size: %s") % expr)
- return [f for f in mctx.existing() if m(mctx.ctx[f].size())]
+ return [f for f in mctx.subset if m(mctx.ctx[f].size())]
def encoding(mctx, x):
"""``encoding(name)``
@@ -333,7 +333,7 @@ def encoding(mctx, x):
enc = getstring(x, _("encoding requires an encoding name"))
s = []
- for f in mctx.existing():
+ for f in mctx.subset:
d = mctx.ctx[f].data()
try:
d.decode(enc)
@@ -358,28 +358,6 @@ def copied(mctx, x):
s.append(f)
return s
-def subrepo(mctx, x):
- """``subrepo([pattern])``
- Subrepositories whose paths match the given pattern.
- """
- # i18n: "subrepo" is a keyword
- getargs(x, 0, 1, _("subrepo takes at most one argument"))
- ctx = mctx.ctx
- sstate = ctx.substate
- if x:
- pat = getstring(x, _("subrepo requires a pattern or no arguments"))
-
- import match as matchmod # avoid circular import issues
- fast = not matchmod.patkind(pat)
- if fast:
- def m(s):
- return (s == pat)
- else:
- m = matchmod.match(ctx._repo.root, '', [pat], ctx=ctx)
- return [sub for sub in sstate if m(sub)]
- else:
- return [sub for sub in sstate]
-
symbols = {
'added': added,
'binary': binary,
@@ -398,7 +376,6 @@ symbols = {
'symlink': symlink,
'unknown': unknown,
'unresolved': unresolved,
- 'subrepo': subrepo,
}
methods = {
@@ -423,8 +400,6 @@ class matchctx(object):
return self.ctx.match(patterns)
def filter(self, files):
return [f for f in files if f in self.subset]
- def existing(self):
- return (f for f in self.subset if f in self.ctx)
def narrow(self, files):
return matchctx(self.ctx, self.filter(files), self._status)
diff --git a/mercurial/formatter.py b/mercurial/formatter.py
deleted file mode 100644
index 53a2022..0000000
--- a/mercurial/formatter.py
+++ /dev/null
@@ -1,71 +0,0 @@
-# formatter.py - generic output formatting for mercurial
-#
-# Copyright 2012 Matt Mackall <mpm@selenic.com>
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-class baseformatter(object):
- def __init__(self, ui, topic, opts):
- self._ui = ui
- self._topic = topic
- self._style = opts.get("style")
- self._template = opts.get("template")
- self._item = None
- def __bool__(self):
- '''return False if we're not doing real templating so we can
- skip extra work'''
- return True
- def _showitem(self):
- '''show a formatted item once all data is collected'''
- pass
- def startitem(self):
- '''begin an item in the format list'''
- if self._item is not None:
- self._showitem()
- self._item = {}
- def data(self, **data):
- '''insert data into item that's not shown in default output'''
- def write(self, fields, deftext, *fielddata, **opts):
- '''do default text output while assigning data to item'''
- for k, v in zip(fields.split(), fielddata):
- self._item[k] = v
- def plain(self, text, **opts):
- '''show raw text for non-templated mode'''
- pass
- def end(self):
- '''end output for the formatter'''
- if self._item is not None:
- self._showitem()
-
-class plainformatter(baseformatter):
- '''the default text output scheme'''
- def __init__(self, ui, topic, opts):
- baseformatter.__init__(self, ui, topic, opts)
- def __bool__(self):
- return False
- def startitem(self):
- pass
- def data(self, **data):
- pass
- def write(self, fields, deftext, *fielddata, **opts):
- self._ui.write(deftext % fielddata, **opts)
- def plain(self, text, **opts):
- self._ui.write(text, **opts)
- def end(self):
- pass
-
-class debugformatter(baseformatter):
- def __init__(self, ui, topic, opts):
- baseformatter.__init__(self, ui, topic, opts)
- self._ui.write("%s = {\n" % self._topic)
- def _showitem(self):
- self._ui.write(" " + repr(self._item) + ",\n")
- def end(self):
- baseformatter.end(self)
- self._ui.write("}\n")
-
-def formatter(ui, topic, opts):
- if ui.configbool('ui', 'formatdebug'):
- return debugformatter(ui, topic, opts)
- return plainformatter(ui, topic, opts)
diff --git a/mercurial/graphmod.py b/mercurial/graphmod.py
index 84be437..314f2b8 100644
--- a/mercurial/graphmod.py
+++ b/mercurial/graphmod.py
@@ -18,7 +18,6 @@ Data depends on type.
"""
from mercurial.node import nullrev
-import util
CHANGESET = 'C'
@@ -68,7 +67,7 @@ def nodes(repo, nodes):
parents = set([p.rev() for p in ctx.parents() if p.node() in include])
yield (ctx.rev(), CHANGESET, ctx, sorted(parents))
-def colored(dag, repo):
+def colored(dag):
"""annotates a DAG with colored edge information
For each DAG node this function emits tuples::
@@ -84,23 +83,6 @@ def colored(dag, repo):
seen = []
colors = {}
newcolor = 1
- config = {}
-
- for key, val in repo.ui.configitems('graph'):
- if '.' in key:
- branch, setting = key.rsplit('.', 1)
- # Validation
- if setting == "width" and val.isdigit():
- config.setdefault(branch, {})[setting] = int(val)
- elif setting == "color" and val.isalnum():
- config.setdefault(branch, {})[setting] = val
-
- if config:
- getconf = util.lrucachefunc(
- lambda rev: config.get(repo[rev].branch(), {}))
- else:
- getconf = lambda rev: {}
-
for (cur, type, data, parents) in dag:
# Compute seen and next
@@ -129,18 +111,10 @@ def colored(dag, repo):
edges = []
for ecol, eid in enumerate(seen):
if eid in next:
- bconf = getconf(eid)
- edges.append((
- ecol, next.index(eid), colors[eid],
- bconf.get('width', -1),
- bconf.get('color', '')))
+ edges.append((ecol, next.index(eid), colors[eid]))
elif eid == cur:
for p in parents:
- bconf = getconf(p)
- edges.append((
- ecol, next.index(p), color,
- bconf.get('width', -1),
- bconf.get('color', '')))
+ edges.append((ecol, next.index(p), color))
# Yield and move on
yield (cur, type, data, (col, color), edges)
@@ -163,206 +137,3 @@ def grandparent(cl, lowestrev, roots, head):
pending.update([p for p in cl.parentrevs(r)])
seen.add(r)
return sorted(kept)
-
-def asciiedges(type, char, lines, seen, rev, parents):
- """adds edge info to changelog DAG walk suitable for ascii()"""
- if rev not in seen:
- seen.append(rev)
- nodeidx = seen.index(rev)
-
- knownparents = []
- newparents = []
- for parent in parents:
- if parent in seen:
- knownparents.append(parent)
- else:
- newparents.append(parent)
-
- ncols = len(seen)
- nextseen = seen[:]
- nextseen[nodeidx:nodeidx + 1] = newparents
- edges = [(nodeidx, nextseen.index(p)) for p in knownparents]
-
- while len(newparents) > 2:
- # ascii() only knows how to add or remove a single column between two
- # calls. Nodes with more than two parents break this constraint so we
- # introduce intermediate expansion lines to grow the active node list
- # slowly.
- edges.append((nodeidx, nodeidx))
- edges.append((nodeidx, nodeidx + 1))
- nmorecols = 1
- yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
- char = '\\'
- lines = []
- nodeidx += 1
- ncols += 1
- edges = []
- del newparents[0]
-
- if len(newparents) > 0:
- edges.append((nodeidx, nodeidx))
- if len(newparents) > 1:
- edges.append((nodeidx, nodeidx + 1))
- nmorecols = len(nextseen) - ncols
- seen[:] = nextseen
- yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
-
-def _fixlongrightedges(edges):
- for (i, (start, end)) in enumerate(edges):
- if end > start:
- edges[i] = (start, end + 1)
-
-def _getnodelineedgestail(
- node_index, p_node_index, n_columns, n_columns_diff, p_diff, fix_tail):
- if fix_tail and n_columns_diff == p_diff and n_columns_diff != 0:
- # Still going in the same non-vertical direction.
- if n_columns_diff == -1:
- start = max(node_index + 1, p_node_index)
- tail = ["|", " "] * (start - node_index - 1)
- tail.extend(["/", " "] * (n_columns - start))
- return tail
- else:
- return ["\\", " "] * (n_columns - node_index - 1)
- else:
- return ["|", " "] * (n_columns - node_index - 1)
-
-def _drawedges(edges, nodeline, interline):
- for (start, end) in edges:
- if start == end + 1:
- interline[2 * end + 1] = "/"
- elif start == end - 1:
- interline[2 * start + 1] = "\\"
- elif start == end:
- interline[2 * start] = "|"
- else:
- if 2 * end >= len(nodeline):
- continue
- nodeline[2 * end] = "+"
- if start > end:
- (start, end) = (end, start)
- for i in range(2 * start + 1, 2 * end):
- if nodeline[i] != "+":
- nodeline[i] = "-"
-
-def _getpaddingline(ni, n_columns, edges):
- line = []
- line.extend(["|", " "] * ni)
- if (ni, ni - 1) in edges or (ni, ni) in edges:
- # (ni, ni - 1) (ni, ni)
- # | | | | | | | |
- # +---o | | o---+
- # | | c | | c | |
- # | |/ / | |/ /
- # | | | | | |
- c = "|"
- else:
- c = " "
- line.extend([c, " "])
- line.extend(["|", " "] * (n_columns - ni - 1))
- return line
-
-def asciistate():
- """returns the initial value for the "state" argument to ascii()"""
- return [0, 0]
-
-def ascii(ui, state, type, char, text, coldata):
- """prints an ASCII graph of the DAG
-
- takes the following arguments (one call per node in the graph):
-
- - ui to write to
- - Somewhere to keep the needed state in (init to asciistate())
- - Column of the current node in the set of ongoing edges.
- - Type indicator of node data, usually 'C' for changesets.
- - Payload: (char, lines):
- - Character to use as node's symbol.
- - List of lines to display as the node's text.
- - Edges; a list of (col, next_col) indicating the edges between
- the current node and its parents.
- - Number of columns (ongoing edges) in the current revision.
- - The difference between the number of columns (ongoing edges)
- in the next revision and the number of columns (ongoing edges)
- in the current revision. That is: -1 means one column removed;
- 0 means no columns added or removed; 1 means one column added.
- """
-
- idx, edges, ncols, coldiff = coldata
- assert -2 < coldiff < 2
- if coldiff == -1:
- # Transform
- #
- # | | | | | |
- # o | | into o---+
- # |X / |/ /
- # | | | |
- _fixlongrightedges(edges)
-
- # add_padding_line says whether to rewrite
- #
- # | | | | | | | |
- # | o---+ into | o---+
- # | / / | | | # <--- padding line
- # o | | | / /
- # o | |
- add_padding_line = (len(text) > 2 and coldiff == -1 and
- [x for (x, y) in edges if x + 1 < y])
-
- # fix_nodeline_tail says whether to rewrite
- #
- # | | o | | | | o | |
- # | | |/ / | | |/ /
- # | o | | into | o / / # <--- fixed nodeline tail
- # | |/ / | |/ /
- # o | | o | |
- fix_nodeline_tail = len(text) <= 2 and not add_padding_line
-
- # nodeline is the line containing the node character (typically o)
- nodeline = ["|", " "] * idx
- nodeline.extend([char, " "])
-
- nodeline.extend(
- _getnodelineedgestail(idx, state[1], ncols, coldiff,
- state[0], fix_nodeline_tail))
-
- # shift_interline is the line containing the non-vertical
- # edges between this entry and the next
- shift_interline = ["|", " "] * idx
- if coldiff == -1:
- n_spaces = 1
- edge_ch = "/"
- elif coldiff == 0:
- n_spaces = 2
- edge_ch = "|"
- else:
- n_spaces = 3
- edge_ch = "\\"
- shift_interline.extend(n_spaces * [" "])
- shift_interline.extend([edge_ch, " "] * (ncols - idx - 1))
-
- # draw edges from the current node to its parents
- _drawedges(edges, nodeline, shift_interline)
-
- # lines is the list of all graph lines to print
- lines = [nodeline]
- if add_padding_line:
- lines.append(_getpaddingline(idx, ncols, edges))
- lines.append(shift_interline)
-
- # make sure that there are as many graph lines as there are
- # log strings
- while len(text) < len(lines):
- text.append("")
- if len(lines) < len(text):
- extra_interline = ["|", " "] * (ncols + coldiff)
- while len(lines) < len(text):
- lines.append(extra_interline)
-
- # print lines
- indentation_level = max(ncols, ncols + coldiff)
- for (line, logstr) in zip(lines, text):
- ln = "%-*s %s" % (2 * indentation_level, "".join(line), logstr)
- ui.write(ln.rstrip() + '\n')
-
- # ... and start over
- state[0] = coldiff
- state[1] = idx
diff --git a/mercurial/hbisect.py b/mercurial/hbisect.py
index 0ce8182..38ed976 100644
--- a/mercurial/hbisect.py
+++ b/mercurial/hbisect.py
@@ -8,7 +8,7 @@
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-import os, error
+import os
from i18n import _
from node import short, hex
import util
@@ -35,18 +35,17 @@ def bisect(changelog, state):
# build visit array
ancestors = [None] * (len(changelog) + 1) # an extra for [-1]
- # set nodes descended from goodrevs
- for rev in goodrevs:
- ancestors[rev] = []
+ # set nodes descended from goodrev
+ ancestors[goodrev] = []
for rev in xrange(goodrev + 1, len(changelog)):
for prev in clparents(rev):
if ancestors[prev] == []:
ancestors[rev] = []
# clear good revs from array
- for rev in goodrevs:
- ancestors[rev] = None
- for rev in xrange(len(changelog), goodrev, -1):
+ for node in goodrevs:
+ ancestors[node] = None
+ for rev in xrange(len(changelog), -1, -1):
if ancestors[rev] is None:
for prev in clparents(rev):
ancestors[prev] = None
@@ -69,10 +68,10 @@ def bisect(changelog, state):
# build children dict
children = {}
- visit = util.deque([badrev])
+ visit = [badrev]
candidates = []
while visit:
- rev = visit.popleft()
+ rev = visit.pop(0)
if ancestors[rev] == []:
candidates.append(rev)
for prev in clparents(rev):
@@ -132,7 +131,7 @@ def bisect(changelog, state):
def load_state(repo):
- state = {'current': [], 'good': [], 'bad': [], 'skip': []}
+ state = {'good': [], 'bad': [], 'skip': []}
if os.path.exists(repo.join("bisect.state")):
for l in repo.opener("bisect.state"):
kind, node = l[:-1].split()
@@ -150,109 +149,7 @@ def save_state(repo, state):
for kind in state:
for node in state[kind]:
f.write("%s %s\n" % (kind, hex(node)))
- f.close()
+ f.rename()
finally:
wlock.release()
-def get(repo, status):
- """
- Return a list of revision(s) that match the given status:
-
- - ``good``, ``bad``, ``skip``: csets explicitly marked as good/bad/skip
- - ``goods``, ``bads`` : csets topologicaly good/bad
- - ``range`` : csets taking part in the bisection
- - ``pruned`` : csets that are goods, bads or skipped
- - ``untested`` : csets whose fate is yet unknown
- - ``ignored`` : csets ignored due to DAG topology
- - ``current`` : the cset currently being bisected
- """
- state = load_state(repo)
- if status in ('good', 'bad', 'skip', 'current'):
- return map(repo.changelog.rev, state[status])
- else:
- # In the floowing sets, we do *not* call 'bisect()' with more
- # than one level of recusrsion, because that can be very, very
- # time consuming. Instead, we always develop the expression as
- # much as possible.
-
- # 'range' is all csets that make the bisection:
- # - have a good ancestor and a bad descendant, or conversely
- # that's because the bisection can go either way
- range = '( bisect(bad)::bisect(good) | bisect(good)::bisect(bad) )'
-
- _t = repo.revs('bisect(good)::bisect(bad)')
- # The sets of topologically good or bad csets
- if len(_t) == 0:
- # Goods are topologically after bads
- goods = 'bisect(good)::' # Pruned good csets
- bads = '::bisect(bad)' # Pruned bad csets
- else:
- # Goods are topologically before bads
- goods = '::bisect(good)' # Pruned good csets
- bads = 'bisect(bad)::' # Pruned bad csets
-
- # 'pruned' is all csets whose fate is already known: good, bad, skip
- skips = 'bisect(skip)' # Pruned skipped csets
- pruned = '( (%s) | (%s) | (%s) )' % (goods, bads, skips)
-
- # 'untested' is all cset that are- in 'range', but not in 'pruned'
- untested = '( (%s) - (%s) )' % (range, pruned)
-
- # 'ignored' is all csets that were not used during the bisection
- # due to DAG topology, but may however have had an impact.
- # Eg., a branch merged between bads and goods, but whose branch-
- # point is out-side of the range.
- iba = '::bisect(bad) - ::bisect(good)' # Ignored bads' ancestors
- iga = '::bisect(good) - ::bisect(bad)' # Ignored goods' ancestors
- ignored = '( ( (%s) | (%s) ) - (%s) )' % (iba, iga, range)
-
- if status == 'range':
- return repo.revs(range)
- elif status == 'pruned':
- return repo.revs(pruned)
- elif status == 'untested':
- return repo.revs(untested)
- elif status == 'ignored':
- return repo.revs(ignored)
- elif status == "goods":
- return repo.revs(goods)
- elif status == "bads":
- return repo.revs(bads)
- else:
- raise error.ParseError(_('invalid bisect state'))
-
-def label(repo, node):
- rev = repo.changelog.rev(node)
-
- # Try explicit sets
- if rev in get(repo, 'good'):
- # i18n: bisect changeset status
- return _('good')
- if rev in get(repo, 'bad'):
- # i18n: bisect changeset status
- return _('bad')
- if rev in get(repo, 'skip'):
- # i18n: bisect changeset status
- return _('skipped')
- if rev in get(repo, 'untested') or rev in get(repo, 'current'):
- # i18n: bisect changeset status
- return _('untested')
- if rev in get(repo, 'ignored'):
- # i18n: bisect changeset status
- return _('ignored')
-
- # Try implicit sets
- if rev in get(repo, 'goods'):
- # i18n: bisect changeset status
- return _('good (implicit)')
- if rev in get(repo, 'bads'):
- # i18n: bisect changeset status
- return _('bad (implicit)')
-
- return None
-
-def shortlabel(label):
- if label:
- return label[0].upper()
-
- return None
diff --git a/mercurial/help.py b/mercurial/help.py
index 79d9966..bebf9df 100644
--- a/mercurial/help.py
+++ b/mercurial/help.py
@@ -6,119 +6,32 @@
# GNU General Public License version 2 or any later version.
from i18n import gettext, _
-import itertools, sys, os
-import extensions, revset, fileset, templatekw, templatefilters, filemerge
-import encoding, util, minirst
+import sys, os
+import extensions, revset, fileset, templatekw, templatefilters
+import util
def listexts(header, exts, indent=1):
'''return a text listing of the given extensions'''
- rst = []
- if exts:
- rst.append('\n%s\n\n' % header)
- for name, desc in sorted(exts.iteritems()):
- rst.append('%s:%s: %s\n' % (' ' * indent, name, desc))
- return rst
+ if not exts:
+ return ''
+ maxlength = max(len(e) for e in exts)
+ result = '\n%s\n\n' % header
+ for name, desc in sorted(exts.iteritems()):
+ result += '%s%-*s %s\n' % (' ' * indent, maxlength + 2,
+ ':%s:' % name, desc)
+ return result
def extshelp():
- rst = loaddoc('extensions')().splitlines(True)
- rst.extend(listexts(_('enabled extensions:'), extensions.enabled()))
- rst.extend(listexts(_('disabled extensions:'), extensions.disabled()))
- doc = ''.join(rst)
+ doc = loaddoc('extensions')()
+ doc += listexts(_('enabled extensions:'), extensions.enabled())
+ doc += listexts(_('disabled extensions:'), extensions.disabled())
return doc
-def optrst(options, verbose):
- data = []
- multioccur = False
- for option in options:
- if len(option) == 5:
- shortopt, longopt, default, desc, optlabel = option
- else:
- shortopt, longopt, default, desc = option
- optlabel = _("VALUE") # default label
-
- if _("DEPRECATED") in desc and not verbose:
- continue
-
- so = ''
- if shortopt:
- so = '-' + shortopt
- lo = '--' + longopt
- if default:
- desc += _(" (default: %s)") % default
-
- if isinstance(default, list):
- lo += " %s [+]" % optlabel
- multioccur = True
- elif (default is not None) and not isinstance(default, bool):
- lo += " %s" % optlabel
-
- data.append((so, lo, desc))
-
- rst = minirst.maketable(data, 1)
-
- if multioccur:
- rst.append(_("\n[+] marked option can be specified multiple times\n"))
-
- return ''.join(rst)
-
-def topicmatch(kw):
- """Return help topics matching kw.
-
- Returns {'section': [(name, summary), ...], ...} where section is
- one of topics, commands, extensions, or extensioncommands.
- """
- kw = encoding.lower(kw)
- def lowercontains(container):
- return kw in encoding.lower(container) # translated in helptable
- results = {'topics': [],
- 'commands': [],
- 'extensions': [],
- 'extensioncommands': [],
- }
- for names, header, doc in helptable:
- if (sum(map(lowercontains, names))
- or lowercontains(header)
- or lowercontains(doc())):
- results['topics'].append((names[0], header))
- import commands # avoid cycle
- for cmd, entry in commands.table.iteritems():
- if cmd.startswith('debug'):
- continue
- if len(entry) == 3:
- summary = entry[2]
- else:
- summary = ''
- # translate docs *before* searching there
- docs = _(getattr(entry[0], '__doc__', None)) or ''
- if kw in cmd or lowercontains(summary) or lowercontains(docs):
- doclines = docs.splitlines()
- if doclines:
- summary = doclines[0]
- cmdname = cmd.split('|')[0].lstrip('^')
- results['commands'].append((cmdname, summary))
- for name, docs in itertools.chain(
- extensions.enabled().iteritems(),
- extensions.disabled().iteritems()):
- # extensions.load ignores the UI argument
- mod = extensions.load(None, name, '')
- if lowercontains(name) or lowercontains(docs):
- # extension docs are already translated
- results['extensions'].append((name, docs.splitlines()[0]))
- for cmd, entry in getattr(mod, 'cmdtable', {}).iteritems():
- if kw in cmd or (len(entry) > 2 and lowercontains(entry[2])):
- cmdname = cmd.split('|')[0].lstrip('^')
- if entry[0].__doc__:
- cmddoc = gettext(entry[0].__doc__).splitlines()[0]
- else:
- cmddoc = _('(no help text available)')
- results['extensioncommands'].append((cmdname, cmddoc))
- return results
-
def loaddoc(topic):
"""Return a delayed loader for help/topic.txt."""
def loader():
- if util.mainfrozen():
+ if hasattr(sys, 'frozen'):
module = sys.executable
else:
module = __file__
@@ -143,24 +56,23 @@ helptable = sorted([
(["patterns"], _("File Name Patterns"), loaddoc('patterns')),
(['environment', 'env'], _('Environment Variables'),
loaddoc('environment')),
- (['revisions', 'revs'], _('Specifying Single Revisions'),
+ (['revs', 'revisions'], _('Specifying Single Revisions'),
loaddoc('revisions')),
- (['multirevs', 'mrevs'], _('Specifying Multiple Revisions'),
+ (['mrevs', 'multirevs'], _('Specifying Multiple Revisions'),
loaddoc('multirevs')),
- (['revsets', 'revset'], _("Specifying Revision Sets"), loaddoc('revsets')),
- (['filesets', 'fileset'], _("Specifying File Sets"), loaddoc('filesets')),
+ (['revset', 'revsets'], _("Specifying Revision Sets"), loaddoc('revsets')),
+ (['fileset', 'filesets'], _("Specifying File Sets"), loaddoc('filesets')),
(['diffs'], _('Diff Formats'), loaddoc('diffs')),
- (['merge-tools', 'mergetools'], _('Merge Tools'), loaddoc('merge-tools')),
- (['templating', 'templates', 'template', 'style'], _('Template Usage'),
+ (['merge-tools'], _('Merge Tools'), loaddoc('merge-tools')),
+ (['templating', 'templates'], _('Template Usage'),
loaddoc('templates')),
(['urls'], _('URL Paths'), loaddoc('urls')),
- (["extensions"], _("Using Additional Features"), extshelp),
- (["subrepos", "subrepo"], _("Subrepositories"), loaddoc('subrepos')),
- (["hgweb"], _("Configuring hgweb"), loaddoc('hgweb')),
- (["glossary"], _("Glossary"), loaddoc('glossary')),
- (["hgignore", "ignore"], _("Syntax for Mercurial Ignore Files"),
- loaddoc('hgignore')),
- (["phases"], _("Working with Phases"), loaddoc('phases')),
+ (["extensions"], _("Using additional features"), extshelp),
+ (["subrepo", "subrepos"], _("Subrepositories"), loaddoc('subrepos')),
+ (["hgweb"], _("Configuring hgweb"), loaddoc('hgweb')),
+ (["glossary"], _("Glossary"), loaddoc('glossary')),
+ (["hgignore", "ignore"], _("syntax for Mercurial ignore files"),
+ loaddoc('hgignore')),
])
# Map topics to lists of callable taking the current topic help and
@@ -181,13 +93,8 @@ def makeitemsdoc(topic, doc, marker, items):
continue
text = gettext(text)
lines = text.splitlines()
- doclines = [(lines[0])]
- for l in lines[1:]:
- # Stop once we find some Python doctest
- if l.strip().startswith('>>>'):
- break
- doclines.append(' ' + l.strip())
- entries.append('\n'.join(doclines))
+ lines[1:] = [(' ' + l.strip()) for l in lines[1:]]
+ entries.append('\n'.join(lines))
entries = '\n\n'.join(entries)
return doc.replace(marker, entries)
@@ -197,7 +104,6 @@ def addtopicsymbols(topic, marker, symbols):
addtopichook(topic, add)
addtopicsymbols('filesets', '.. predicatesmarker', fileset.symbols)
-addtopicsymbols('merge-tools', '.. internaltoolsmarker', filemerge.internals)
addtopicsymbols('revsets', '.. predicatesmarker', revset.symbols)
-addtopicsymbols('templates', '.. keywordsmarker', templatekw.dockeywords)
+addtopicsymbols('templates', '.. keywordsmarker', templatekw.keywords)
addtopicsymbols('templates', '.. filtersmarker', templatefilters.filters)
diff --git a/mercurial/help/config.txt b/mercurial/help/config.txt
index 557948b..52c2fee 100644
--- a/mercurial/help/config.txt
+++ b/mercurial/help/config.txt
@@ -13,7 +13,7 @@ The above entries will be referred to as ``ui.username`` and
``ui.verbose``, respectively. See the Syntax section below.
Files
-=====
+-----
Mercurial reads configuration data from several files, if they exist.
These files do not exist by default and you will have to create the
@@ -28,17 +28,16 @@ alphabetical order, later ones overriding earlier ones. Where multiple
paths are given below, settings from earlier paths override later
ones.
-| (All) ``<repo>/.hg/hgrc``
+| (Unix, Windows) ``<repo>/.hg/hgrc``
Per-repository configuration options that only apply in a
particular repository. This file is not version-controlled, and
will not get transferred during a "clone" operation. Options in
this file override options in all other configuration files. On
- Plan 9 and Unix, most of this file will be ignored if it doesn't
- belong to a trusted user or to a trusted group. See the documentation
- for the ``[trusted]`` section below for more details.
+ Unix, most of this file will be ignored if it doesn't belong to a
+ trusted user or to a trusted group. See the documentation for the
+ ``[trusted]`` section below for more details.
-| (Plan 9) ``$home/lib/hgrc``
| (Unix) ``$HOME/.hgrc``
| (Windows) ``%USERPROFILE%\.hgrc``
| (Windows) ``%USERPROFILE%\Mercurial.ini``
@@ -51,8 +50,6 @@ ones.
directory. Options in these files override per-system and per-installation
options.
-| (Plan 9) ``/lib/mercurial/hgrc``
-| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``
| (Unix) ``/etc/mercurial/hgrc``
| (Unix) ``/etc/mercurial/hgrc.d/*.rc``
@@ -61,8 +58,6 @@ ones.
executed by any user in any directory. Options in these files
override per-installation options.
-| (Plan 9) ``<install-root>/lib/mercurial/hgrc``
-| (Plan 9) ``<install-root>/lib/mercurial/hgrc.d/*.rc``
| (Unix) ``<install-root>/etc/mercurial/hgrc``
| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``
@@ -83,10 +78,12 @@ ones.
keys contain PATH-like strings, every part of which must reference
a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
be read. Mercurial checks each of these locations in the specified
- order until one or more configuration files are detected.
+ order until one or more configuration files are detected. If the
+ pywin32 extensions are not installed, Mercurial will only look for
+ site-wide configuration in ``C:\Mercurial\Mercurial.ini``.
Syntax
-======
+------
A configuration file consists of sections, led by a ``[section]`` header
and followed by ``name = value`` entries (sometimes called
@@ -171,14 +168,14 @@ quotation marks at the beginning of a word is counted as a quotation
(e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``).
Sections
-========
+--------
This section describes the different sections that may appear in a
Mercurial configuration file, the purpose of each section, its possible
keys, and their possible values.
``alias``
----------
+"""""""""
Defines command aliases.
Aliases allow you to define your own commands in terms of other
@@ -209,7 +206,7 @@ An alias can start with an exclamation point (``!``) to make it a
shell alias. A shell alias is executed with the shell and will let you
run arbitrary commands. As an example, ::
- echo = !echo $@
+ echo = !echo
will let you do ``hg echo foo`` to have ``foo`` printed in your
terminal. A better example might be::
@@ -219,43 +216,15 @@ terminal. A better example might be::
which will make ``hg purge`` delete all unknown files in the
repository in the same manner as the purge extension.
-Positional arguments like ``$1``, ``$2``, etc. in the alias definition
-expand to the command arguments. Unmatched arguments are
-removed. ``$0`` expands to the alias name and ``$@`` expands to all
-arguments separated by a space. These expansions happen before the
-command is passed to the shell.
-
-Shell aliases are executed in an environment where ``$HG`` expands to
+Shell aliases are executed in an environment where ``$HG`` expand to
the path of the Mercurial that was used to execute the alias. This is
useful when you want to call further Mercurial commands in a shell
alias, as was done above for the purge alias. In addition,
-``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg
+``$HG_ARGS`` expand to the arguments given to Mercurial. In the ``hg
echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``.
-.. note:: Some global configuration options such as ``-R`` are
- processed before shell aliases and will thus not be passed to
- aliases.
-
-
-``annotate``
-------------
-
-Settings used when displaying file annotations. All values are
-Booleans and default to False. See ``diff`` section for related
-options for the diff command.
-
-``ignorews``
- Ignore white space when comparing lines.
-
-``ignorewsamount``
- Ignore changes in the amount of white space.
-
-``ignoreblanklines``
- Ignore changes whose lines are all blank.
-
-
``auth``
---------
+""""""""
Authentication credentials for HTTP authentication. This section
allows you to store usernames and passwords for use when logging
@@ -322,7 +291,7 @@ for credentials as usual if required by the remote.
``decode/encode``
------------------
+"""""""""""""""""
Filters for transforming files on checkout/checkin. This would
typically be used for newline processing or other
@@ -369,7 +338,7 @@ format. We suggest you use the ``eol`` extension for convenience.
``defaults``
-------------
+""""""""""""
(defaults are deprecated. Don't use them. Use aliases instead)
@@ -389,11 +358,10 @@ to the aliases of the commands defined.
``diff``
---------
+""""""""
-Settings used when displaying diffs. Everything except for ``unified``
-is a Boolean and defaults to False. See ``annotate`` section for
-related options for the annotate command.
+Settings used when displaying diffs. Everything except for ``unified`` is a
+Boolean and defaults to False.
``git``
Use git extended diff format.
@@ -417,7 +385,7 @@ related options for the annotate command.
Number of lines of context to show.
``email``
----------
+"""""""""
Settings for extensions that send email messages.
@@ -472,7 +440,7 @@ Email example::
``extensions``
---------------
+""""""""""""""
Mercurial has an extension mechanism for adding new features. To
enable an extension, create an entry for it in this section.
@@ -498,8 +466,26 @@ Example for ``~/.hgrc``::
myfeature = ~/.hgext/myfeature.py
+``hostfingerprints``
+""""""""""""""""""""
+
+Fingerprints of the certificates of known HTTPS servers.
+A HTTPS connection to a server with a fingerprint configured here will
+only succeed if the servers certificate matches the fingerprint.
+This is very similar to how ssh known hosts works.
+The fingerprint is the SHA-1 hash value of the DER encoded certificate.
+The CA chain and web.cacerts is not used for servers with a fingerprint.
+
+For example::
+
+ [hostfingerprints]
+ hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc
+
+This feature is only supported when using Python 2.6 or later.
+
+
``format``
-----------
+""""""""""
``usestore``
Enable or disable the "store" repository format which improves
@@ -525,45 +511,128 @@ Example for ``~/.hgrc``::
option ensures that the on-disk format of newly created
repositories will be compatible with Mercurial before version 1.7.
-``graph``
----------
+``merge-patterns``
+""""""""""""""""""
-Web graph view configuration. This section let you change graph
-elements display properties by branches, for instance to make the
-``default`` branch stand out.
+This section specifies merge tools to associate with particular file
+patterns. Tools matched here will take precedence over the default
+merge tool. Patterns are globs by default, rooted at the repository
+root.
-Each line has the following format::
+Example::
+
+ [merge-patterns]
+ **.c = kdiff3
+ **.jpg = myimgmerge
- <branch>.<argument> = <value>
+``merge-tools``
+"""""""""""""""
-where ``<branch>`` is the name of the branch being
-customized. Example::
+This section configures external merge tools to use for file-level
+merges.
- [graph]
- # 2px width
- default.width = 2
- # red color
- default.color = FF0000
+Example ``~/.hgrc``::
+
+ [merge-tools]
+ # Override stock tool location
+ kdiff3.executable = ~/bin/kdiff3
+ # Specify command line
+ kdiff3.args = $base $local $other -o $output
+ # Give higher priority
+ kdiff3.priority = 1
+
+ # Define new tool
+ myHtmlTool.args = -m $local $other $base $output
+ myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
+ myHtmlTool.priority = 1
Supported arguments:
-``width``
- Set branch edges width in pixels.
+``priority``
+ The priority in which to evaluate this tool.
+ Default: 0.
+
+``executable``
+ Either just the name of the executable or its pathname. On Windows,
+ the path can use environment variables with ${ProgramFiles} syntax.
+ Default: the tool name.
+
+``args``
+ The arguments to pass to the tool executable. You can refer to the
+ files being merged as well as the output file through these
+ variables: ``$base``, ``$local``, ``$other``, ``$output``.
+ Default: ``$local $base $other``
+
+``premerge``
+ Attempt to run internal non-interactive 3-way merge tool before
+ launching external tool. Options are ``true``, ``false``, or ``keep``
+ to leave markers in the file if the premerge fails.
+ Default: True
+
+``binary``
+ This tool can merge binary files. Defaults to False, unless tool
+ was selected by file pattern match.
+
+``symlink``
+ This tool can merge symlinks. Defaults to False, even if tool was
+ selected by file pattern match.
+
+``check``
+ A list of merge success-checking options:
+
+ ``changed``
+ Ask whether merge was successful when the merged file shows no changes.
+ ``conflicts``
+ Check whether there are conflicts even though the tool reported success.
+ ``prompt``
+ Always prompt for merge success, regardless of success reported by tool.
+
+``checkchanged``
+ True is equivalent to ``check = changed``.
+ Default: False
+
+``checkconflicts``
+ True is equivalent to ``check = conflicts``.
+ Default: False
+
+``fixeol``
+ Attempt to fix up EOL changes caused by the merge tool.
+ Default: False
+
+``gui``
+ This tool requires a graphical interface to run. Default: False
+
+``regkey``
+ Windows registry key which describes install location of this
+ tool. Mercurial will search for this key first under
+ ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
+ Default: None
+
+``regkeyalt``
+ An alternate Windows registry key to try if the first key is not
+ found. The alternate key uses the same ``regname`` and ``regappend``
+ semantics of the primary key. The most common use for this key
+ is to search for 32bit applications on 64bit operating systems.
+ Default: None
+
+``regname``
+ Name of value to read from specified registry key. Defaults to the
+ unnamed (default) value.
+
+``regappend``
+ String to append to the value read from the registry, typically
+ the executable name of the tool.
+ Default: None
-``color``
- Set branch edges color in hexadecimal RGB notation.
``hooks``
----------
+"""""""""
Commands or Python functions that get automatically executed by
various actions such as starting or finishing a commit. Multiple
hooks can be run for the same action by appending a suffix to the
action. Overriding a site-wide hook can be done by changing its
-value or setting it to an empty string. Hooks can be prioritized
-by adding a prefix of ``priority`` to the hook name on a new line
-and setting the priority. The default priority is 0 if
-not specified.
+value or setting it to an empty string.
Example ``.hg/hgrc``::
@@ -574,8 +643,6 @@ Example ``.hg/hgrc``::
incoming =
incoming.email = /my/email/hook
incoming.autobuild = /my/build/hook
- # force autobuild hook to run before other incoming hooks
- priority.incoming.autobuild = 1
Most hooks are run with environment variables set that give useful
additional information. For each hook below, the environment
@@ -732,26 +799,8 @@ If a Python hook returns a "true" value or raises an exception, this
is treated as a failure.
-``hostfingerprints``
---------------------
-
-Fingerprints of the certificates of known HTTPS servers.
-A HTTPS connection to a server with a fingerprint configured here will
-only succeed if the servers certificate matches the fingerprint.
-This is very similar to how ssh known hosts works.
-The fingerprint is the SHA-1 hash value of the DER encoded certificate.
-The CA chain and web.cacerts is not used for servers with a fingerprint.
-
-For example::
-
- [hostfingerprints]
- hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc
-
-This feature is only supported when using Python 2.6 or later.
-
-
``http_proxy``
---------------
+""""""""""""""
Used to access web-based Mercurial repositories through a HTTP
proxy.
@@ -774,122 +823,37 @@ proxy.
Optional. Always use the proxy, even for localhost and any entries
in ``http_proxy.no``. True or False. Default: False.
-``merge-patterns``
-------------------
-
-This section specifies merge tools to associate with particular file
-patterns. Tools matched here will take precedence over the default
-merge tool. Patterns are globs by default, rooted at the repository
-root.
-
-Example::
-
- [merge-patterns]
- **.c = kdiff3
- **.jpg = myimgmerge
-
-``merge-tools``
----------------
-
-This section configures external merge tools to use for file-level
-merges.
-
-Example ``~/.hgrc``::
-
- [merge-tools]
- # Override stock tool location
- kdiff3.executable = ~/bin/kdiff3
- # Specify command line
- kdiff3.args = $base $local $other -o $output
- # Give higher priority
- kdiff3.priority = 1
-
- # Define new tool
- myHtmlTool.args = -m $local $other $base $output
- myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
- myHtmlTool.priority = 1
-
-Supported arguments:
-
-``priority``
- The priority in which to evaluate this tool.
- Default: 0.
-
-``executable``
- Either just the name of the executable or its pathname. On Windows,
- the path can use environment variables with ${ProgramFiles} syntax.
- Default: the tool name.
-
-``args``
- The arguments to pass to the tool executable. You can refer to the
- files being merged as well as the output file through these
- variables: ``$base``, ``$local``, ``$other``, ``$output``.
- Default: ``$local $base $other``
-
-``premerge``
- Attempt to run internal non-interactive 3-way merge tool before
- launching external tool. Options are ``true``, ``false``, or ``keep``
- to leave markers in the file if the premerge fails.
- Default: True
-
-``binary``
- This tool can merge binary files. Defaults to False, unless tool
- was selected by file pattern match.
-
-``symlink``
- This tool can merge symlinks. Defaults to False, even if tool was
- selected by file pattern match.
-
-``check``
- A list of merge success-checking options:
-
- ``changed``
- Ask whether merge was successful when the merged file shows no changes.
- ``conflicts``
- Check whether there are conflicts even though the tool reported success.
- ``prompt``
- Always prompt for merge success, regardless of success reported by tool.
-
-``checkchanged``
- True is equivalent to ``check = changed``.
- Default: False
+``smtp``
+""""""""
-``checkconflicts``
- True is equivalent to ``check = conflicts``.
- Default: False
+Configuration for extensions that need to send email messages.
-``fixeol``
- Attempt to fix up EOL changes caused by the merge tool.
- Default: False
+``host``
+ Host name of mail server, e.g. "mail.example.com".
-``gui``
- This tool requires a graphical interface to run. Default: False
+``port``
+ Optional. Port to connect to on mail server. Default: 25.
-``regkey``
- Windows registry key which describes install location of this
- tool. Mercurial will search for this key first under
- ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
- Default: None
+``tls``
+ Optional. Method to enable TLS when connecting to mail server: starttls,
+ smtps or none. Default: none.
-``regkeyalt``
- An alternate Windows registry key to try if the first key is not
- found. The alternate key uses the same ``regname`` and ``regappend``
- semantics of the primary key. The most common use for this key
- is to search for 32bit applications on 64bit operating systems.
- Default: None
+``username``
+ Optional. User name for authenticating with the SMTP server.
+ Default: none.
-``regname``
- Name of value to read from specified registry key. Defaults to the
- unnamed (default) value.
+``password``
+ Optional. Password for authenticating with the SMTP server. If not
+ specified, interactive sessions will prompt the user for a
+ password; non-interactive sessions will fail. Default: none.
-``regappend``
- String to append to the value read from the registry, typically
- the executable name of the tool.
- Default: None
+``local_hostname``
+ Optional. It's the hostname that the sender can use to identify
+ itself to the MTA.
``patch``
----------
+"""""""""
Settings used when applying patches, for instance through the 'import'
command or with Mercurial Queues extension.
@@ -907,7 +871,7 @@ command or with Mercurial Queues extension.
``paths``
----------
+"""""""""
Assigns symbolic names to repositories. The left side is the
symbolic name, and the right gives the directory or URL that is the
@@ -923,50 +887,18 @@ the following entries.
Optional. Directory or URL to use when pushing if no destination
is specified.
-``phases``
-----------
-
-Specifies default handling of phases. See :hg:`help phases` for more
-information about working with phases.
-
-``publish``
- Controls draft phase behavior when working as a server. When true,
- pushed changesets are set to public in both client and server and
- pulled or cloned changesets are set to public in the client.
- Default: True
-
-``new-commit``
- Phase of newly-created commits.
- Default: draft
``profiling``
--------------
-
-Specifies profiling type, format, and file output. Two profilers are
-supported: an instrumenting profiler (named ``ls``), and a sampling
-profiler (named ``stat``).
-
-In this section description, 'profiling data' stands for the raw data
-collected during profiling, while 'profiling report' stands for a
-statistical text report generated from the profiling data. The
-profiling is done using lsprof.
-
-``type``
- The type of profiler to use.
- Default: ls.
-
- ``ls``
- Use Python's built-in instrumenting profiler. This profiler
- works on all platforms, but each line number it reports is the
- first line of a function. This restriction makes it difficult to
- identify the expensive parts of a non-trivial function.
- ``stat``
- Use a third-party statistical profiler, statprof. This profiler
- currently runs only on Unix systems, and is most useful for
- profiling commands that run for longer than about 0.1 seconds.
+"""""""""""""
+
+Specifies profiling format and file output. In this section
+description, 'profiling data' stands for the raw data collected
+during profiling, while 'profiling report' stands for a statistical
+text report generated from the profiling data. The profiling is done
+using lsprof.
``format``
- Profiling format. Specific to the ``ls`` instrumenting profiler.
+ Profiling format.
Default: text.
``text``
@@ -978,22 +910,18 @@ profiling is done using lsprof.
file, the generated file can directly be loaded into
kcachegrind.
-``frequency``
- Sampling frequency. Specific to the ``stat`` sampling profiler.
- Default: 1000.
-
``output``
File path where profiling data or report should be saved. If the
file exists, it is replaced. Default: None, data is printed on
stderr
``revsetalias``
----------------
+"""""""""""""""
Alias definitions for revsets. See :hg:`help revsets` for details.
``server``
-----------
+""""""""""
Controls generic server settings.
@@ -1009,68 +937,31 @@ Controls generic server settings.
the write lock while determining what data to transfer.
Default is True.
-``preferuncompressed``
- When set, clients will try to use the uncompressed streaming
- protocol. Default is False.
-
``validate``
Whether to validate the completeness of pushed changesets by
checking that all new file revisions specified in manifests are
present. Default is False.
-``smtp``
---------
-
-Configuration for extensions that need to send email messages.
-
-``host``
- Host name of mail server, e.g. "mail.example.com".
-
-``port``
- Optional. Port to connect to on mail server. Default: 25.
-
-``tls``
- Optional. Method to enable TLS when connecting to mail server: starttls,
- smtps or none. Default: none.
-
-``username``
- Optional. User name for authenticating with the SMTP server.
- Default: none.
-
-``password``
- Optional. Password for authenticating with the SMTP server. If not
- specified, interactive sessions will prompt the user for a
- password; non-interactive sessions will fail. Default: none.
-
-``local_hostname``
- Optional. It's the hostname that the sender can use to identify
- itself to the MTA.
-
-
``subpaths``
-------------
+""""""""""""
-Subrepository source URLs can go stale if a remote server changes name
-or becomes temporarily unavailable. This section lets you define
-rewrite rules of the form::
+Defines subrepositories source locations rewriting rules of the form::
<pattern> = <replacement>
-where ``pattern`` is a regular expression matching a subrepository
-source URL and ``replacement`` is the replacement string used to
-rewrite it. Groups can be matched in ``pattern`` and referenced in
-``replacements``. For instance::
+Where ``pattern`` is a regular expression matching the source and
+``replacement`` is the replacement string used to rewrite it. Groups
+can be matched in ``pattern`` and referenced in ``replacements``. For
+instance::
http://server/(.*)-hg/ = http://hg.server/\1/
rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
-Relative subrepository paths are first made absolute, and the
-rewrite rules are then applied on the full (absolute) path. The rules
-are applied in definition order.
+All patterns are applied in definition order.
``trusted``
------------
+"""""""""""
Mercurial will not use the settings in the
``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
@@ -1094,7 +985,7 @@ user or service running Mercurial.
``ui``
-------
+""""""
User interface controls.
@@ -1115,7 +1006,7 @@ User interface controls.
Whether to commit modified subrepositories when committing the
parent repository. If False and one subrepository has uncommitted
changes, abort the commit.
- Default is False.
+ Default is True.
``debug``
Print debugging information. True or False. Default is False.
@@ -1164,10 +1055,6 @@ User interface controls.
``remotecmd``
remote command to use for clone/push/pull operations. Default is ``hg``.
-``reportoldssl``
- Warn if an SSL certificate is unable to be due to using Python
- 2.5 or earlier. True or False. Default is True.
-
``report_untrusted``
Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
trusted user or group. True or False. Default is True.
@@ -1213,7 +1100,7 @@ User interface controls.
``web``
--------
+"""""""
Web interface configuration. The settings in this section apply to
both the builtin webserver (started by :hg:`serve`) and the script you
@@ -1269,6 +1156,13 @@ The full set of options is:
be present in this list. The contents of the allow_push list are
examined after the deny_push list.
+``guessmime``
+ Control MIME types for raw download of file content.
+ Set to True to let hgweb guess the content type from the file
+ extension. This will serve HTML files as ``text/html`` and might
+ allow cross-site scripting attacks when serving untrusted
+ repositories. Default is False.
+
``allow_read``
If the user has not already been denied repository access due to
the contents of deny_read, this list determines whether to grant
@@ -1294,46 +1188,30 @@ The full set of options is:
authority certificates. Environment variables and ``~user``
constructs are expanded in the filename. If specified on the
client, then it will verify the identity of remote HTTPS servers
- with these certificates.
+ with these certificates. The form must be as follows::
+
+ -----BEGIN CERTIFICATE-----
+ ... (certificate in base64 PEM encoding) ...
+ -----END CERTIFICATE-----
+ -----BEGIN CERTIFICATE-----
+ ... (certificate in base64 PEM encoding) ...
+ -----END CERTIFICATE-----
This feature is only supported when using Python 2.6 or later. If you wish
to use it with earlier versions of Python, install the backported
version of the ssl library that is available from
``http://pypi.python.org``.
+ You can use OpenSSL's CA certificate file if your platform has one.
+ On most Linux systems this will be ``/etc/ssl/certs/ca-certificates.crt``.
+ Otherwise you will have to generate this file manually.
+
To disable SSL verification temporarily, specify ``--insecure`` from
command line.
- You can use OpenSSL's CA certificate file if your platform has
- one. On most Linux systems this will be
- ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to
- generate this file manually. The form must be as follows::
-
- -----BEGIN CERTIFICATE-----
- ... (certificate in base64 PEM encoding) ...
- -----END CERTIFICATE-----
- -----BEGIN CERTIFICATE-----
- ... (certificate in base64 PEM encoding) ...
- -----END CERTIFICATE-----
-
``cache``
Whether to support caching in hgweb. Defaults to True.
-``collapse``
- With ``descend`` enabled, repositories in subdirectories are shown at
- a single level alongside repositories in the current path. With
- ``collapse`` also enabled, repositories residing at a deeper level than
- the current path are grouped behind navigable directory entries that
- lead to the locations of these repositories. In effect, this setting
- collapses each collection of repositories found within a subdirectory
- into a single entry for that subdirectory. Default is False.
-
-``comparisoncontext``
- Number of lines of context to show in side-by-side file comparison. If
- negative or the value ``full``, whole files are shown. Default is 5.
- This setting can be overridden by a ``context`` request parameter to the
- ``comparison`` command, taking the same values.
-
``contact``
Name or email address of the person in charge of the repository.
Defaults to ui.username or ``$EMAIL`` or "unknown" if unset or empty.
@@ -1376,13 +1254,6 @@ The full set of options is:
``errorlog``
Where to output the error log. Default is stderr.
-``guessmime``
- Control MIME types for raw download of file content.
- Set to True to let hgweb guess the content type from the file
- extension. This will serve HTML files as ``text/html`` and might
- allow cross-site scripting attacks when serving untrusted
- repositories. Default is False.
-
``hidden``
Whether to hide the repository in the hgwebdir index.
Default is False.
@@ -1390,30 +1261,20 @@ The full set of options is:
``ipv6``
Whether to use IPv6. Default is False.
-``logoimg``
- File name of the logo image that some templates display on each page.
- The file name is relative to ``staticurl``. That is, the full path to
- the logo image is "staticurl/logoimg".
- If unset, ``hglogo.png`` will be used.
-
``logourl``
Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``
will be used.
+``name``
+ Repository name to use in the web interface. Default is current
+ working directory.
+
``maxchanges``
Maximum number of changes to list on the changelog. Default is 10.
``maxfiles``
Maximum number of files to list per changeset. Default is 10.
-``maxshortchanges``
- Maximum number of changes to list on the shortlog, graph or filelog
- pages. Default is 60.
-
-``name``
- Repository name to use in the web interface. Default is current
- working directory.
-
``port``
Port to listen on. Default is 8000.
diff --git a/mercurial/help/filesets.txt b/mercurial/help/filesets.txt
index afad752..c929d79 100644
--- a/mercurial/help/filesets.txt
+++ b/mercurial/help/filesets.txt
@@ -52,7 +52,7 @@ Some sample queries:
- Find C files in a non-standard encoding::
- hg locate "set:**.c and not encoding('UTF-8')"
+ hg locate "set:**.c and not encoding(ascii)"
- Revert copies of large binary files::
diff --git a/mercurial/help/glossary.txt b/mercurial/help/glossary.txt
index 59a9d03..074a31d 100644
--- a/mercurial/help/glossary.txt
+++ b/mercurial/help/glossary.txt
@@ -135,7 +135,7 @@ Child changeset
See 'Changeset, child'.
Close changeset
- See 'Head, closed branch'
+ See 'Changeset, close'.
Closed branch
See 'Branch, closed'.
@@ -212,11 +212,6 @@ Directory, working
to the files introduced manually or by a merge. The repository
metadata exists in the .hg directory inside the working directory.
-Draft
- Changesets in the draft phase have not been shared with publishing
- repositories and may thus be safely changed by history-modifying
- extensions. See :hg:`help phases`.
-
Graph
See DAG and :hg:`help graphlog`.
@@ -237,9 +232,6 @@ Head, closed branch
closed when all its heads are closed and consequently is not
listed by :hg:`branches`.
- Closed heads can be re-opened by committing new changeset as the
- child of the changeset that marks a head as closed.
-
Head, repository
A topological head which has not been closed.
@@ -308,15 +300,6 @@ Patch
Example: "You will need to patch that revision."
-Phase
- A per-changeset state tracking how the changeset has been or
- should be shared. See :hg:`help phases`.
-
-Public
- Changesets in the public phase have been shared with publishing
- repositories and are therefore considered immutable. See :hg:`help
- phases`.
-
Pull
An operation in which changesets in a remote repository which are
not in the local repository are brought into the local
@@ -368,10 +351,6 @@ Root
A changeset that has only the null changeset as its parent. Most
repositories have only a single root changeset.
-Secret
- Changesets in the secret phase may not be shared via push, pull,
- or clone. See :hg:`help phases`.
-
Tag
An alternative name given to a changeset. Tags can be used in all
places where Mercurial expects a changeset ID, e.g., with
diff --git a/mercurial/help/hgignore.txt b/mercurial/help/hgignore.txt
index 3f82177..538f4b5 100644
--- a/mercurial/help/hgignore.txt
+++ b/mercurial/help/hgignore.txt
@@ -1,12 +1,12 @@
Synopsis
-========
+--------
The Mercurial system uses a file called ``.hgignore`` in the root
directory of a repository to control its behavior when it searches
for files that it is not currently tracking.
Description
-===========
+-----------
The working directory of a Mercurial repository will often contain
files that should not be tracked by Mercurial. These include backup
@@ -33,13 +33,8 @@ To control Mercurial's handling of files that it manages, many
commands support the ``-I`` and ``-X`` options; see
:hg:`help <command>` and :hg:`help patterns` for details.
-Files that are already tracked are not affected by .hgignore, even
-if they appear in .hgignore. An untracked file X can be explicitly
-added with :hg:`add X`, even if X would be excluded by a pattern
-in .hgignore.
-
Syntax
-======
+------
An ignore file is a plain text file consisting of a list of patterns,
with one pattern per line. Empty lines are skipped. The ``#``
@@ -68,12 +63,8 @@ the form ``*.c`` will match a file ending in ``.c`` in any directory,
and a regexp pattern of the form ``\.c$`` will do the same. To root a
regexp pattern, start it with ``^``.
-.. note::
- Patterns specified in other than ``.hgignore`` are always rooted.
- Please see :hg:`help patterns` for details.
-
Example
-=======
+-------
Here is an example ignore file. ::
diff --git a/mercurial/help/hgweb.txt b/mercurial/help/hgweb.txt
index 9ac557e..fa901e6 100644
--- a/mercurial/help/hgweb.txt
+++ b/mercurial/help/hgweb.txt
@@ -1,50 +1,47 @@
Mercurial's internal web server, hgweb, can serve either a single
-repository, or a tree of repositories. In the second case, repository
-paths and global options can be defined using a dedicated
-configuration file common to :hg:`serve`, ``hgweb.wsgi``,
-``hgweb.cgi`` and ``hgweb.fcgi``.
+repository, or a collection of them. In the latter case, a special
+configuration file can be used to specify the repository paths to use
+and global web configuration options.
-This file uses the same syntax as other Mercurial configuration files
-but recognizes only the following sections:
+This file uses the same syntax as other Mercurial configuration files,
+but only the following sections are recognized:
- web
- paths
- collections
-The ``web`` options are thorougly described in :hg:`help config`.
+The ``web`` section can specify all the settings described in the web
+section of the hgrc(5) documentation. See :hg:`help config` for
+information on where to find the manual page.
-The ``paths`` section maps URL paths to paths of repositories in the
-filesystem. hgweb will not expose the filesystem directly - only
-Mercurial repositories can be published and only according to the
-configuration.
-
-The left hand side is the path in the URL. Note that hgweb reserves
-subpaths like ``rev`` or ``file``, try using different names for
-nested repositories to avoid confusing effects.
-
-The right hand side is the path in the filesystem. If the specified
-path ends with ``*`` or ``**`` the filesystem will be searched
-recursively for repositories below that point.
-With ``*`` it will not recurse into the repositories it finds (except for
-``.hg/patches``).
-With ``**`` it will also search inside repository working directories
-and possibly find subrepositories.
-
-In this example::
+The ``paths`` section provides mappings of physical repository
+paths to virtual ones. For instance::
[paths]
- /projects/a = /srv/tmprepos/a
- /projects/b = c:/repos/b
- / = /srv/repos/*
- /user/bob = /home/bob/repos/**
+ projects/a = /foo/bar
+ projects/b = /baz/quux
+ web/root = /real/root/*
+ / = /real/root2/*
+ virtual/root2 = /real/root2/**
- The first two entries make two repositories in different directories
appear under the same directory in the web interface
-- The third entry will publish every Mercurial repository found in
- ``/srv/repos/``, for instance the repository ``/srv/repos/quux/``
- will appear as ``http://server/quux/``
-- The fourth entry will publish both ``http://server/user/bob/quux/``
- and ``http://server/user/bob/quux/testsubrepo/``
-
-The ``collections`` section is deprecated and has been superseeded by
-``paths``.
+- The third entry maps every Mercurial repository found in '/real/root'
+ into 'web/root'. This format is preferred over the [collections] one,
+ since using absolute paths as configuration keys is not supported on every
+ platform (especially on Windows).
+- The fourth entry is a special case mapping all repositories in
+ '/real/root2' in the root of the virtual directory.
+- The fifth entry recursively finds all repositories under the real
+ root, and maps their relative paths under the virtual root.
+
+The ``collections`` section provides mappings of trees of physical
+repositories paths to virtual ones, though the paths syntax is generally
+preferred. For instance::
+
+ [collections]
+ /foo = /foo
+
+Here, the left side will be stripped off all repositories found in the
+right side. Thus ``/foo/bar`` and ``foo/quux/baz`` will be listed as
+``bar`` and ``quux/baz`` respectively.
diff --git a/mercurial/help/merge-tools.txt b/mercurial/help/merge-tools.txt
index b7ed1ea..7324fe4 100644
--- a/mercurial/help/merge-tools.txt
+++ b/mercurial/help/merge-tools.txt
@@ -17,7 +17,7 @@ conflict markers. Mercurial does not include any interactive merge
programs but relies on external tools for that.
Available merge tools
-=====================
+"""""""""""""""""""""
External merge tools and their properties are configured in the
merge-tools configuration section - see hgrc(5) - but they can often just
@@ -34,13 +34,39 @@ GUI is available if the tool requires a GUI.
There are some internal merge tools which can be used. The internal
merge tools are:
-.. internaltoolsmarker
+``internal:merge``
+ Uses the internal non-interactive simple merge algorithm for merging
+ files. It will fail if there are any conflicts and leave markers in
+ the partially merged file.
+
+``internal:fail``
+ Rather than attempting to merge files that were modified on both
+ branches, it marks them as unresolved. The resolve command must be
+ used to resolve these conflicts.
+
+``internal:local``
+ Uses the local version of files as the merged version.
+
+``internal:other``
+ Uses the other version of files as the merged version.
+
+``internal:prompt``
+ Asks the user which of the local or the other version to keep as
+ the merged version.
+
+``internal:dump``
+ Creates three versions of the files to merge, containing the
+ contents of local, other and base. These files can then be used to
+ perform a merge manually. If the file to be merged is named
+ ``a.txt``, these files will accordingly be named ``a.txt.local``,
+ ``a.txt.other`` and ``a.txt.base`` and they will be placed in the
+ same directory as ``a.txt``.
Internal tools are always available and do not require a GUI but will by default
not handle symlinks or binary files.
Choosing a merge tool
-=====================
+"""""""""""""""""""""
Mercurial uses these rules when deciding which merge tool to use:
diff --git a/mercurial/help/patterns.txt b/mercurial/help/patterns.txt
index 30133a3..c13453e 100644
--- a/mercurial/help/patterns.txt
+++ b/mercurial/help/patterns.txt
@@ -6,10 +6,6 @@ patterns.
Alternate pattern notations must be specified explicitly.
-.. note::
- Patterns specified in ``.hgignore`` are not rooted.
- Please see :hg:`help hgignore` for details.
-
To use a plain path name without any pattern matching, start it with
``path:``. These path names must completely match starting at the
current repository root.
diff --git a/mercurial/help/phases.txt b/mercurial/help/phases.txt
deleted file mode 100644
index 19023dc..0000000
--- a/mercurial/help/phases.txt
+++ /dev/null
@@ -1,84 +0,0 @@
-What are phases?
-================
-
-Phases are a system for tracking which changesets have been or should
-be shared. This helps prevent common mistakes when modifying history
-(for instance, with the mq or rebase extensions).
-
-Each changeset in a repository is in one of the following phases:
-
- - public : changeset is visible on a public server
- - draft : changeset is not yet published
- - secret : changeset should not be pushed, pulled, or cloned
-
-These phases are ordered (public < draft < secret) and no changeset
-can be in a lower phase than its ancestors. For instance, if a
-changeset is public, all its ancestors are also public. Lastly,
-changeset phases should only be changed towards the public phase.
-
-How are phases managed?
-=======================
-
-For the most part, phases should work transparently. By default, a
-changeset is created in the draft phase and is moved into the public
-phase when it is pushed to another repository.
-
-Once changesets become public, extensions like mq and rebase will
-refuse to operate on them to prevent creating duplicate changesets.
-Phases can also be manually manipulated with the :hg:`phase` command
-if needed. See :hg:`help -v phase` for examples.
-
-Phases and servers
-==================
-
-Normally, all servers are ``publishing`` by default. This means::
-
- - all draft changesets that are pulled or cloned appear in phase
- public on the client
-
- - all draft changesets that are pushed appear as public on both
- client and server
-
- - secret changesets are neither pushed, pulled, or cloned
-
-.. note::
- Pulling a draft changeset from a publishing server does not mark it
- as public on the server side due to the read-only nature of pull.
-
-Sometimes it may be desirable to push and pull changesets in the draft
-phase to share unfinished work. This can be done by setting a
-repository to disable publishing in its configuration file::
-
- [phases]
- publish = False
-
-See :hg:`help config` for more information on config files.
-
-.. note::
- Servers running older versions of Mercurial are treated as
- publishing.
-
-Examples
-========
-
- - list changesets in draft or secret phase::
-
- hg log -r "not public()"
-
- - change all secret changesets to draft::
-
- hg phase --draft "secret()"
-
- - forcibly move the current changeset and descendants from public to draft::
-
- hg phase --force --draft .
-
- - show a list of changeset revision and phase::
-
- hg log --template "{rev} {phase}\n"
-
- - resynchronize draft changesets relative to a remote repository::
-
- hg phase -fd 'outgoing(URL)'
-
-See :hg:`help phase` for more information on manually manipulating phases.
diff --git a/mercurial/help/revisions.txt b/mercurial/help/revisions.txt
index f0c2cb2..309f8e2 100644
--- a/mercurial/help/revisions.txt
+++ b/mercurial/help/revisions.txt
@@ -12,13 +12,13 @@ unique revision identifier and is referred to as a short-form
identifier. A short-form identifier is only valid if it is the prefix
of exactly one full-length identifier.
-Any other string is treated as a bookmark, tag, or branch name. A
-bookmark is a movable pointer to a revision. A tag is a permanent name
-associated with a revision. A branch name denotes the tipmost revision
-of that branch. Bookmark, tag, and branch names must not contain the ":"
-character.
+Any other string is treated as a tag or branch name. A tag name is a
+symbolic name associated with a revision identifier. A branch name
+denotes the tipmost revision of that branch. Tag and branch names must
+not contain the ":" character.
-The reserved name "tip" always identifies the most recent revision.
+The reserved name "tip" is a special tag that always identifies the
+most recent revision.
The reserved name "null" indicates the null revision. This is the
revision of an empty repository, and the parent of revision 0.
diff --git a/mercurial/help/revsets.txt b/mercurial/help/revsets.txt
index 6511668..48838c3 100644
--- a/mercurial/help/revsets.txt
+++ b/mercurial/help/revsets.txt
@@ -4,9 +4,10 @@ revisions.
The language supports a number of predicates which are joined by infix
operators. Parenthesis can be used for grouping.
-Identifiers such as branch names may need quoting with single or
-double quotes if they contain characters like ``-`` or if they match
-one of the predefined predicates.
+Identifiers such as branch names must be quoted with single or double
+quotes if they contain characters outside of
+``[._a-zA-Z0-9\x80-\xff]`` or if they match one of the predefined
+predicates.
Special characters can be used in quoted identifiers by escaping them,
e.g., ``\n`` is interpreted as a newline. To prevent them from being
diff --git a/mercurial/help/subrepos.txt b/mercurial/help/subrepos.txt
index bf5925a..fb3217d 100644
--- a/mercurial/help/subrepos.txt
+++ b/mercurial/help/subrepos.txt
@@ -1,38 +1,32 @@
Subrepositories let you nest external repositories or projects into a
parent Mercurial repository, and make commands operate on them as a
-group.
-
-Mercurial currently supports Mercurial, Git, and Subversion
-subrepositories.
+group. External Mercurial and Subversion projects are currently
+supported.
Subrepositories are made of three components:
1. Nested repository checkouts. They can appear anywhere in the
- parent working directory.
+ parent working directory, and are Mercurial clones or Subversion
+ checkouts.
-2. Nested repository references. They are defined in ``.hgsub``, which
- should be placed in the root of working directory, and
+2. Nested repository references. They are defined in ``.hgsub`` and
tell where the subrepository checkouts come from. Mercurial
subrepositories are referenced like:
path/to/nested = https://example.com/nested/repo/path
- Git and Subversion subrepos are also supported:
-
- path/to/nested = [git]git://example.com/nested/repo/path
- path/to/nested = [svn]https://example.com/nested/trunk/path
-
where ``path/to/nested`` is the checkout location relatively to the
parent Mercurial root, and ``https://example.com/nested/repo/path``
is the source repository path. The source can also reference a
- filesystem path.
+ filesystem path. Subversion repositories are defined with:
+
+ path/to/nested = [svn]https://example.com/nested/trunk/path
Note that ``.hgsub`` does not exist by default in Mercurial
repositories, you have to create and add it to the parent
repository before using subrepositories.
-3. Nested repository states. They are defined in ``.hgsubstate``, which
- is placed in the root of working directory, and
+3. Nested repository states. They are defined in ``.hgsubstate`` and
capture whatever information is required to restore the
subrepositories to the state they were committed in a parent
repository changeset. Mercurial automatically record the nested
@@ -43,7 +37,7 @@ Subrepositories are made of three components:
Adding a Subrepository
-======================
+----------------------
If ``.hgsub`` does not exist, create it and add it to the parent
repository. Clone or checkout the external projects where you want it
@@ -53,7 +47,7 @@ subrepository is tracked and the next commit will record its state in
``.hgsubstate`` and bind it to the committed changeset.
Synchronizing a Subrepository
-=============================
+-----------------------------
Subrepos do not automatically track the latest changeset of their
sources. Instead, they are updated to the changeset that corresponds
@@ -66,47 +60,41 @@ subrepo at the desired revision, test in the top-level repo, then
commit in the parent repository to record the new combination.
Deleting a Subrepository
-========================
+------------------------
To remove a subrepository from the parent repository, delete its
reference from ``.hgsub``, then remove its files.
Interaction with Mercurial Commands
-===================================
+-----------------------------------
:add: add does not recurse in subrepos unless -S/--subrepos is
- specified. However, if you specify the full path of a file in a
- subrepo, it will be added even without -S/--subrepos specified.
- Git and Subversion subrepositories are currently silently
+ specified. Subversion subrepositories are currently silently
ignored.
:archive: archive does not recurse in subrepositories unless
-S/--subrepos is specified.
:commit: commit creates a consistent snapshot of the state of the
- entire project and its subrepositories. If any subrepositories
- have been modified, Mercurial will abort. Mercurial can be made
- to instead commit all modified subrepositories by specifying
- -S/--subrepos, or setting "ui.commitsubrepos=True" in a
- configuration file (see :hg:`help config`). After there are no
- longer any modified subrepositories, it records their state and
- finally commits it in the parent repository.
+ entire project and its subrepositories. It does this by first
+ attempting to commit all modified subrepositories, then recording
+ their state and finally committing it in the parent
+ repository. Mercurial can be made to abort if any subrepository
+ content is modified by setting "ui.commitsubrepos=no" in a
+ configuration file (see :hg:`help config`).
:diff: diff does not recurse in subrepos unless -S/--subrepos is
specified. Changes are displayed as usual, on the subrepositories
- elements. Git and Subversion subrepositories are currently
- silently ignored.
-
-:forget: forget currently only handles exact file matches in subrepos.
- Git and Subversion subrepositories are currently silently ignored.
+ elements. Subversion subrepositories are currently silently
+ ignored.
:incoming: incoming does not recurse in subrepos unless -S/--subrepos
- is specified. Git and Subversion subrepositories are currently
- silently ignored.
+ is specified. Subversion subrepositories are currently silently
+ ignored.
:outgoing: outgoing does not recurse in subrepos unless -S/--subrepos
- is specified. Git and Subversion subrepositories are currently
- silently ignored.
+ is specified. Subversion subrepositories are currently silently
+ ignored.
:pull: pull is not recursive since it is not clear what to pull prior
to running :hg:`update`. Listing and retrieving all
@@ -117,7 +105,7 @@ Interaction with Mercurial Commands
:push: Mercurial will automatically push all subrepositories first
when the parent repository is being pushed. This ensures new
subrepository changes are available when referenced by top-level
- repositories. Push is a no-op for Subversion subrepositories.
+ repositories.
:status: status does not recurse into subrepositories unless
-S/--subrepos is specified. Subrepository changes are displayed as
@@ -132,7 +120,7 @@ Interaction with Mercurial Commands
can require network access when using subrepositories.
Remapping Subrepositories Sources
-=================================
+---------------------------------
A subrepository source location may change during a project life,
invalidating references stored in the parent repository history. To
diff --git a/mercurial/hg.py b/mercurial/hg.py
index 7d452df..0f37d26 100644
--- a/mercurial/hg.py
+++ b/mercurial/hg.py
@@ -9,8 +9,8 @@
from i18n import _
from lock import release
from node import hex, nullid
-import localrepo, bundlerepo, httppeer, sshpeer, statichttprepo, bookmarks
-import lock, util, extensions, error, node, scmutil
+import localrepo, bundlerepo, httprepo, sshrepo, statichttprepo, bookmarks
+import lock, util, extensions, error, node
import cmdutil, discovery
import merge as mergemod
import verify as verifymod
@@ -20,22 +20,21 @@ def _local(path):
path = util.expandpath(util.urllocalpath(path))
return (os.path.isfile(path) and bundlerepo or localrepo)
-def addbranchrevs(lrepo, other, branches, revs):
- peer = other.peer() # a courtesy to callers using a localrepo for other
+def addbranchrevs(lrepo, repo, branches, revs):
hashbranch, branches = branches
if not hashbranch and not branches:
return revs or None, revs and revs[0] or None
revs = revs and list(revs) or []
- if not peer.capable('branchmap'):
+ if not repo.capable('branchmap'):
if branches:
raise util.Abort(_("remote branch lookup not supported"))
revs.append(hashbranch)
return revs, revs[0]
- branchmap = peer.branchmap()
+ branchmap = repo.branchmap()
def primary(branch):
if branch == '.':
- if not lrepo:
+ if not lrepo or not lrepo.local():
raise util.Abort(_("dirstate branch not accessible"))
branch = lrepo.dirstate.branch()
if branch in branchmap:
@@ -65,9 +64,9 @@ def parseurl(path, branches=None):
schemes = {
'bundle': bundlerepo,
'file': _local,
- 'http': httppeer,
- 'https': httppeer,
- 'ssh': sshpeer,
+ 'http': httprepo,
+ 'https': httprepo,
+ 'ssh': sshrepo,
'static-http': statichttprepo,
}
@@ -89,29 +88,20 @@ def islocal(repo):
return False
return repo.local()
-def _peerorrepo(ui, path, create=False):
+def repository(ui, path='', create=False):
"""return a repository object for the specified path"""
- obj = _peerlookup(path).instance(ui, path, create)
- ui = getattr(obj, "ui", ui)
+ repo = _peerlookup(path).instance(ui, path, create)
+ ui = getattr(repo, "ui", ui)
for name, module in extensions.extensions():
hook = getattr(module, 'reposetup', None)
if hook:
- hook(ui, obj)
- return obj
-
-def repository(ui, path='', create=False):
- """return a repository object for the specified path"""
- peer = _peerorrepo(ui, path, create)
- repo = peer.local()
- if not repo:
- raise util.Abort(_("repository '%s' is not local") %
- (path or peer.url()))
+ hook(ui, repo)
return repo
-def peer(uiorrepo, opts, path, create=False):
+def peer(ui, opts, path, create=False):
'''return a repository peer for the specified path'''
- rui = remoteui(uiorrepo, opts)
- return _peerorrepo(rui, path, create).peer()
+ rui = remoteui(ui, opts)
+ return repository(rui, path, create)
def defaultdest(source):
'''return default destination of clone if none is given'''
@@ -134,7 +124,7 @@ def share(ui, source, dest=None, update=True):
srcrepo = repository(ui, source)
rev, checkout = addbranchrevs(srcrepo, srcrepo, branches, None)
else:
- srcrepo = source.local()
+ srcrepo = source
origsource = source = srcrepo.url()
checkout = None
@@ -184,46 +174,13 @@ def share(ui, source, dest=None, update=True):
continue
_update(r, uprev)
-def copystore(ui, srcrepo, destpath):
- '''copy files from store of srcrepo in destpath
-
- returns destlock
- '''
- destlock = None
- try:
- hardlink = None
- num = 0
- srcpublishing = srcrepo.ui.configbool('phases', 'publish', True)
- for f in srcrepo.store.copylist():
- if srcpublishing and f.endswith('phaseroots'):
- continue
- src = os.path.join(srcrepo.sharedpath, f)
- dst = os.path.join(destpath, f)
- dstbase = os.path.dirname(dst)
- if dstbase and not os.path.exists(dstbase):
- os.mkdir(dstbase)
- if os.path.exists(src):
- if dst.endswith('data'):
- # lock to avoid premature writing to the target
- destlock = lock.lock(os.path.join(dstbase, "lock"))
- hardlink, n = util.copyfiles(src, dst, hardlink)
- num += n
- if hardlink:
- ui.debug("linked %d files\n" % num)
- else:
- ui.debug("copied %d files\n" % num)
- return destlock
- except: # re-raises
- release(destlock)
- raise
-
def clone(ui, peeropts, source, dest=None, pull=False, rev=None,
update=True, stream=False, branch=None):
"""Make a copy of an existing repository.
Create a copy of an existing repository in a new directory. The
source and destination are URLs, as passed to the repository
- function. Returns a pair of repository peers, the source and
+ function. Returns a pair of repository objects, the source and
newly created destination.
The location of the source is added to the new repository's
@@ -257,12 +214,12 @@ def clone(ui, peeropts, source, dest=None, pull=False, rev=None,
if isinstance(source, str):
origsource = ui.expandpath(source)
source, branch = parseurl(origsource, branch)
- srcpeer = peer(ui, peeropts, source)
+ srcrepo = repository(remoteui(ui, peeropts), source)
else:
- srcpeer = source.peer() # in case we were called with a localrepo
+ srcrepo = source
branch = (None, branch or [])
- origsource = source = srcpeer.url()
- rev, checkout = addbranchrevs(srcpeer, srcpeer, branch, rev)
+ origsource = source = srcrepo.url()
+ rev, checkout = addbranchrevs(srcrepo, srcrepo, branch, rev)
if dest is None:
dest = defaultdest(source)
@@ -273,8 +230,6 @@ def clone(ui, peeropts, source, dest=None, pull=False, rev=None,
dest = util.urllocalpath(dest)
source = util.urllocalpath(source)
- if not dest:
- raise util.Abort(_("empty destination path is not valid"))
if os.path.exists(dest):
if not os.path.isdir(dest):
raise util.Abort(_("destination '%s' already exists") % dest)
@@ -292,7 +247,6 @@ def clone(ui, peeropts, source, dest=None, pull=False, rev=None,
self.rmtree(self.dir_, True)
srclock = destlock = dircleanup = None
- srcrepo = srcpeer.local()
try:
abspath = origsource
if islocal(origsource):
@@ -302,8 +256,7 @@ def clone(ui, peeropts, source, dest=None, pull=False, rev=None,
dircleanup = DirCleanup(dest)
copy = False
- if (srcrepo and srcrepo.cancopy() and islocal(dest)
- and not srcrepo.revs("secret()")):
+ if srcrepo.cancopy() and islocal(dest):
copy = not pull and not rev
if copy:
@@ -334,16 +287,34 @@ def clone(ui, peeropts, source, dest=None, pull=False, rev=None,
% dest)
raise
- destlock = copystore(ui, srcrepo, destpath)
+ hardlink = None
+ num = 0
+ for f in srcrepo.store.copylist():
+ src = os.path.join(srcrepo.sharedpath, f)
+ dst = os.path.join(destpath, f)
+ dstbase = os.path.dirname(dst)
+ if dstbase and not os.path.exists(dstbase):
+ os.mkdir(dstbase)
+ if os.path.exists(src):
+ if dst.endswith('data'):
+ # lock to avoid premature writing to the target
+ destlock = lock.lock(os.path.join(dstbase, "lock"))
+ hardlink, n = util.copyfiles(src, dst, hardlink)
+ num += n
+ if hardlink:
+ ui.debug("linked %d files\n" % num)
+ else:
+ ui.debug("copied %d files\n" % num)
# we need to re-init the repo after manually copying the data
# into it
- destpeer = peer(ui, peeropts, dest)
+ destrepo = repository(remoteui(ui, peeropts), dest)
srcrepo.hook('outgoing', source='clone',
node=node.hex(node.nullid))
else:
try:
- destpeer = peer(ui, peeropts, dest, create=True)
+ destrepo = repository(remoteui(ui, peeropts), dest,
+ create=True)
except OSError, inst:
if inst.errno == errno.EEXIST:
dircleanup.close()
@@ -353,52 +324,35 @@ def clone(ui, peeropts, source, dest=None, pull=False, rev=None,
revs = None
if rev:
- if not srcpeer.capable('lookup'):
+ if not srcrepo.capable('lookup'):
raise util.Abort(_("src repository does not support "
"revision lookup and so doesn't "
"support clone by revision"))
- revs = [srcpeer.lookup(r) for r in rev]
+ revs = [srcrepo.lookup(r) for r in rev]
checkout = revs[0]
- if destpeer.local():
- destpeer.local().clone(srcpeer, heads=revs, stream=stream)
- elif srcrepo:
- srcrepo.push(destpeer, revs=revs)
+ if destrepo.local():
+ destrepo.clone(srcrepo, heads=revs, stream=stream)
+ elif srcrepo.local():
+ srcrepo.push(destrepo, revs=revs)
else:
raise util.Abort(_("clone from remote to remote not supported"))
if dircleanup:
dircleanup.close()
- # clone all bookmarks except divergent ones
- destrepo = destpeer.local()
- if destrepo and srcpeer.capable("pushkey"):
- rb = srcpeer.listkeys('bookmarks')
- for k, n in rb.iteritems():
- try:
- m = destrepo.lookup(n)
- destrepo._bookmarks[k] = m
- except error.RepoLookupError:
- pass
- if rb:
- bookmarks.write(destrepo)
- elif srcrepo and destpeer.capable("pushkey"):
- for k, n in srcrepo._bookmarks.iteritems():
- destpeer.pushkey('bookmarks', k, '', hex(n))
-
- if destrepo:
+ if destrepo.local():
fp = destrepo.opener("hgrc", "w", text=True)
fp.write("[paths]\n")
- u = util.url(abspath)
- u.passwd = None
- defaulturl = str(u)
- fp.write("default = %s\n" % defaulturl)
+ fp.write("default = %s\n" % abspath)
fp.close()
- destrepo.ui.setconfig('paths', 'default', defaulturl)
+ destrepo.ui.setconfig('paths', 'default', abspath)
if update:
if update is not True:
- checkout = srcrepo.lookup(update)
+ checkout = update
+ if srcrepo.local():
+ checkout = srcrepo.lookup(update)
for test in (checkout, 'default', 'tip'):
if test is None:
continue
@@ -411,13 +365,26 @@ def clone(ui, peeropts, source, dest=None, pull=False, rev=None,
destrepo.ui.status(_("updating to branch %s\n") % bn)
_update(destrepo, uprev)
- return srcpeer, destpeer
+ # clone all bookmarks
+ if destrepo.local() and srcrepo.capable("pushkey"):
+ rb = srcrepo.listkeys('bookmarks')
+ for k, n in rb.iteritems():
+ try:
+ m = destrepo.lookup(n)
+ destrepo._bookmarks[k] = m
+ except error.RepoLookupError:
+ pass
+ if rb:
+ bookmarks.write(destrepo)
+ elif srcrepo.local() and destrepo.capable("pushkey"):
+ for k, n in srcrepo._bookmarks.iteritems():
+ destrepo.pushkey('bookmarks', k, '', hex(n))
+
+ return srcrepo, destrepo
finally:
release(srclock, destlock)
if dircleanup is not None:
dircleanup.cleanup()
- if srcpeer is not None:
- srcpeer.close()
def _showstats(repo, stats):
repo.ui.status(_("%d files updated, %d files merged, "
@@ -518,14 +485,14 @@ def _outgoing(ui, repo, dest, opts):
ui.status(_('comparing with %s\n') % util.hidepassword(dest))
revs, checkout = addbranchrevs(repo, repo, branches, opts.get('rev'))
if revs:
- revs = [repo.lookup(rev) for rev in scmutil.revrange(repo, revs)]
+ revs = [repo.lookup(rev) for rev in revs]
other = peer(repo, opts, dest)
- outgoing = discovery.findcommonoutgoing(repo, other, revs,
- force=opts.get('force'))
- o = outgoing.missing
+ common, outheads = discovery.findcommonoutgoing(repo, other, revs,
+ force=opts.get('force'))
+ o = repo.changelog.findmissing(common, outheads)
if not o:
- scmutil.nochangesfound(repo.ui, repo, outgoing.excluded)
+ ui.status(_("no changes found\n"))
return None
return o
@@ -570,7 +537,7 @@ def verify(repo):
def remoteui(src, opts):
'build a remote ui from ui or repo and opts'
- if util.safehasattr(src, 'baseui'): # looks like a repository
+ if hasattr(src, 'baseui'): # looks like a repository
dst = src.baseui.copy() # drop repo-specific config
src = src.ui # copy target options from repo
else: # assume it's a global ui object
diff --git a/mercurial/hgweb/common.py b/mercurial/hgweb/common.py
index 3628c36..2c2c76c 100644
--- a/mercurial/hgweb/common.py
+++ b/mercurial/hgweb/common.py
@@ -95,7 +95,7 @@ class continuereader(object):
def __getattr__(self, attr):
if attr in ('close', 'readline', 'readlines', '__iter__'):
return getattr(self.f, attr)
- raise AttributeError
+ raise AttributeError()
def _statusmessage(code):
from BaseHTTPServer import BaseHTTPRequestHandler
diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py
index 63a9c6c..bf24d0c 100644
--- a/mercurial/hgweb/hgweb_mod.py
+++ b/mercurial/hgweb/hgweb_mod.py
@@ -7,7 +7,7 @@
# GNU General Public License version 2 or any later version.
import os
-from mercurial import ui, hg, hook, error, encoding, templater, util
+from mercurial import ui, hg, hook, error, encoding, templater
from common import get_stat, ErrorResponse, permhooks, caching
from common import HTTP_OK, HTTP_NOT_MODIFIED, HTTP_BAD_REQUEST
from common import HTTP_NOT_FOUND, HTTP_SERVER_ERROR
@@ -36,7 +36,7 @@ class hgweb(object):
self.repo = repo
self.repo.ui.setconfig('ui', 'report_untrusted', 'off')
- self.repo.ui.setconfig('ui', 'nontty', 'true')
+ self.repo.ui.setconfig('ui', 'interactive', 'off')
hook.redirect(True)
self.mtime = -1
self.size = -1
@@ -73,8 +73,7 @@ class hgweb(object):
self.repo = hg.repository(self.repo.ui, self.repo.root)
self.maxchanges = int(self.config("web", "maxchanges", 10))
self.stripecount = int(self.config("web", "stripes", 1))
- self.maxshortchanges = int(self.config("web", "maxshortchanges",
- 60))
+ self.maxshortchanges = int(self.config("web", "maxshortchanges", 60))
self.maxfiles = int(self.config("web", "maxfiles", 10))
self.allowpull = self.configbool("web", "allowpull", True)
encoding.encoding = self.config("web", "encoding",
@@ -149,7 +148,7 @@ class hgweb(object):
cmd = cmd[style + 1:]
# avoid accepting e.g. style parameter as command
- if util.safehasattr(webcommands, cmd):
+ if hasattr(webcommands, cmd):
req.form['cmd'] = [cmd]
else:
cmd = ''
@@ -237,7 +236,6 @@ class hgweb(object):
port = port != default_port and (":" + port) or ""
urlbase = '%s://%s%s' % (proto, req.env['SERVER_NAME'], port)
logourl = self.config("web", "logourl", "http://mercurial.selenic.com/")
- logoimg = self.config("web", "logoimg", "hglogo.png")
staticurl = self.config("web", "staticurl") or req.url + 'static/'
if not staticurl.endswith('/'):
staticurl += '/'
@@ -278,7 +276,6 @@ class hgweb(object):
tmpl = templater.templater(mapfile,
defaults={"url": req.url,
"logourl": logourl,
- "logoimg": logoimg,
"staticurl": staticurl,
"urlbase": urlbase,
"repo": self.reponame,
diff --git a/mercurial/hgweb/hgwebdir_mod.py b/mercurial/hgweb/hgwebdir_mod.py
index 7cb083e..c5db7ff 100644
--- a/mercurial/hgweb/hgwebdir_mod.py
+++ b/mercurial/hgweb/hgwebdir_mod.py
@@ -23,10 +23,10 @@ def findrepos(paths):
repos = []
for prefix, root in cleannames(paths):
roothead, roottail = os.path.split(root)
- # "foo = /bar/*" or "foo = /bar/**" lets every repo /bar/N in or below
- # /bar/ be served as as foo/N .
- # '*' will not search inside dirs with .hg (except .hg/patches),
- # '**' will search inside dirs with .hg (and thus also find subrepos).
+ # "foo = /bar/*" makes every subrepo of /bar/ to be
+ # mounted as foo/subrepo
+ # and "foo = /bar/**" also recurses into the subdirectories,
+ # remember to use it without working dir.
try:
recurse = {'*': False, '**': True}[roottail]
except KeyError:
@@ -51,33 +51,6 @@ def urlrepos(prefix, roothead, paths):
yield (prefix + '/' +
util.pconvert(path[len(roothead):]).lstrip('/')).strip('/'), path
-def geturlcgivars(baseurl, port):
- """
- Extract CGI variables from baseurl
-
- >>> geturlcgivars("http://host.org/base", "80")
- ('host.org', '80', '/base')
- >>> geturlcgivars("http://host.org:8000/base", "80")
- ('host.org', '8000', '/base')
- >>> geturlcgivars('/base', 8000)
- ('', '8000', '/base')
- >>> geturlcgivars("base", '8000')
- ('', '8000', '/base')
- >>> geturlcgivars("http://host", '8000')
- ('host', '8000', '/')
- >>> geturlcgivars("http://host/", '8000')
- ('host', '8000', '/')
- """
- u = util.url(baseurl)
- name = u.host or ''
- if u.port:
- port = u.port
- path = u.path or ""
- if not path.startswith('/'):
- path = '/' + path
-
- return name, str(port), path
-
class hgwebdir(object):
refreshinterval = 20
@@ -97,7 +70,7 @@ class hgwebdir(object):
else:
u = ui.ui()
u.setconfig('ui', 'report_untrusted', 'off')
- u.setconfig('ui', 'nontty', 'true')
+ u.setconfig('ui', 'interactive', 'off')
if not isinstance(self.conf, (dict, list, tuple)):
map = {'paths': 'hgweb-paths'}
@@ -245,67 +218,12 @@ class hgwebdir(object):
def rawentries(subdir="", **map):
descend = self.ui.configbool('web', 'descend', True)
- collapse = self.ui.configbool('web', 'collapse', False)
- seenrepos = set()
- seendirs = set()
for name, path in self.repos:
if not name.startswith(subdir):
continue
name = name[len(subdir):]
- directory = False
-
- if '/' in name:
- if not descend:
- continue
-
- nameparts = name.split('/')
- rootname = nameparts[0]
-
- if not collapse:
- pass
- elif rootname in seendirs:
- continue
- elif rootname in seenrepos:
- pass
- else:
- directory = True
- name = rootname
-
- # redefine the path to refer to the directory
- discarded = '/'.join(nameparts[1:])
-
- # remove name parts plus accompanying slash
- path = path[:-len(discarded) - 1]
-
- parts = [name]
- if 'PATH_INFO' in req.env:
- parts.insert(0, req.env['PATH_INFO'].rstrip('/'))
- if req.env['SCRIPT_NAME']:
- parts.insert(0, req.env['SCRIPT_NAME'])
- url = re.sub(r'/+', '/', '/'.join(parts) + '/')
-
- # show either a directory entry or a repository
- if directory:
- # get the directory's time information
- try:
- d = (get_mtime(path), util.makedate()[1])
- except OSError:
- continue
-
- row = dict(contact="",
- contact_sort="",
- name=name,
- name_sort=name,
- url=url,
- description="",
- description_sort="",
- lastchange=d,
- lastchange_sort=d[1]-d[0],
- archives=[])
-
- seendirs.add(name)
- yield row
+ if not descend and '/' in name:
continue
u = self.ui.copy()
@@ -323,6 +241,13 @@ class hgwebdir(object):
if not self.read_allowed(u, req):
continue
+ parts = [name]
+ if 'PATH_INFO' in req.env:
+ parts.insert(0, req.env['PATH_INFO'].rstrip('/'))
+ if req.env['SCRIPT_NAME']:
+ parts.insert(0, req.env['SCRIPT_NAME'])
+ url = re.sub(r'/+', '/', '/'.join(parts) + '/')
+
# update time with local timezone
try:
r = hg.repository(self.ui, path)
@@ -350,8 +275,6 @@ class hgwebdir(object):
lastchange=d,
lastchange_sort=d[1]-d[0],
archives=archivelist(u, "tip", url))
-
- seenrepos.add(name)
yield row
sortdefault = None, False
@@ -425,7 +348,6 @@ class hgwebdir(object):
start = url[-1] == '?' and '&' or '?'
sessionvars = webutil.sessionvars(vars, start)
logourl = config('web', 'logourl', 'http://mercurial.selenic.com/')
- logoimg = config('web', 'logoimg', 'hglogo.png')
staticurl = config('web', 'staticurl') or url + 'static/'
if not staticurl.endswith('/'):
staticurl += '/'
@@ -436,14 +358,17 @@ class hgwebdir(object):
"motd": motd,
"url": url,
"logourl": logourl,
- "logoimg": logoimg,
"staticurl": staticurl,
"sessionvars": sessionvars})
return tmpl
def updatereqenv(self, env):
if self._baseurl is not None:
- name, port, path = geturlcgivars(self._baseurl, env['SERVER_PORT'])
- env['SERVER_NAME'] = name
- env['SERVER_PORT'] = port
+ u = util.url(self._baseurl)
+ env['SERVER_NAME'] = u.host
+ if u.port:
+ env['SERVER_PORT'] = u.port
+ path = u.path or ""
+ if not path.startswith('/'):
+ path = '/' + path
env['SCRIPT_NAME'] = path
diff --git a/mercurial/hgweb/protocol.py b/mercurial/hgweb/protocol.py
index 84aa6b1..dcceae9 100644
--- a/mercurial/hgweb/protocol.py
+++ b/mercurial/hgweb/protocol.py
@@ -10,7 +10,6 @@ from mercurial import util, wireproto
from common import HTTP_OK
HGTYPE = 'application/mercurial-0.1'
-HGERRTYPE = 'application/hg-error'
class webproto(object):
def __init__(self, req, ui):
@@ -91,7 +90,3 @@ def call(repo, req, cmd):
rsp = '0\n%s\n' % rsp.res
req.respond(HTTP_OK, HGTYPE, length=len(rsp))
return [rsp]
- elif isinstance(rsp, wireproto.ooberror):
- rsp = rsp.message
- req.respond(HTTP_OK, HGERRTYPE, length=len(rsp))
- return [rsp]
diff --git a/mercurial/hgweb/request.py b/mercurial/hgweb/request.py
index 1fddc95..8d2c11c 100644
--- a/mercurial/hgweb/request.py
+++ b/mercurial/hgweb/request.py
@@ -101,7 +101,7 @@ class wsgirequest(object):
self.headers = []
def write(self, thing):
- if util.safehasattr(thing, "__iter__"):
+ if hasattr(thing, "__iter__"):
for part in thing:
self.write(part)
else:
diff --git a/mercurial/hgweb/server.py b/mercurial/hgweb/server.py
index 3ad99f4..9d363f0 100644
--- a/mercurial/hgweb/server.py
+++ b/mercurial/hgweb/server.py
@@ -246,10 +246,9 @@ class _httprequesthandlerssl(_httprequesthandler):
try:
from threading import activeCount
- activeCount() # silence pyflakes
_mixin = SocketServer.ThreadingMixIn
except ImportError:
- if util.safehasattr(os, "fork"):
+ if hasattr(os, "fork"):
_mixin = SocketServer.ForkingMixIn
else:
class _mixin(object):
diff --git a/mercurial/hgweb/webcommands.py b/mercurial/hgweb/webcommands.py
index 9cd5c0a..fc43ca3 100644
--- a/mercurial/hgweb/webcommands.py
+++ b/mercurial/hgweb/webcommands.py
@@ -8,11 +8,11 @@
import os, mimetypes, re, cgi, copy
import webutil
from mercurial import error, encoding, archival, templater, templatefilters
-from mercurial.node import short, hex, nullid
+from mercurial.node import short, hex
from mercurial.util import binary
from common import paritygen, staticfile, get_contact, ErrorResponse
from common import HTTP_OK, HTTP_FORBIDDEN, HTTP_NOT_FOUND
-from mercurial import graphmod, patch
+from mercurial import graphmod
from mercurial import help as helpmod
from mercurial.i18n import _
@@ -22,7 +22,7 @@ from mercurial.i18n import _
__all__ = [
'log', 'rawfile', 'file', 'changelog', 'shortlog', 'changeset', 'rev',
'manifest', 'tags', 'bookmarks', 'branches', 'summary', 'filediff', 'diff',
- 'comparison', 'annotate', 'filelog', 'archive', 'static', 'graph', 'help',
+ 'annotate', 'filelog', 'archive', 'static', 'graph', 'help',
]
def log(web, req, tmpl):
@@ -124,8 +124,7 @@ def _search(web, req, tmpl):
def changelist(**map):
count = 0
- lower = encoding.lower
- qw = lower(query).split()
+ qw = query.lower().split()
def revgen():
for i in xrange(len(web.repo) - 1, 0, -100):
@@ -140,9 +139,9 @@ def _search(web, req, tmpl):
for ctx in revgen():
miss = 0
for q in qw:
- if not (q in lower(ctx.user()) or
- q in lower(ctx.description()) or
- q in lower(" ".join(ctx.files()))):
+ if not (q in ctx.user().lower() or
+ q in ctx.description().lower() or
+ q in " ".join(ctx.files()).lower()):
miss = 1
break
if miss:
@@ -262,10 +261,10 @@ def changeset(web, req, tmpl):
files = []
parity = paritygen(web.stripecount)
- for blockno, f in enumerate(ctx.files()):
+ for f in ctx.files():
template = f in ctx and 'filenodelink' or 'filenolink'
files.append(tmpl(template,
- node=ctx.hex(), file=f, blockno=blockno + 1,
+ node=ctx.hex(), file=f,
parity=parity.next()))
style = web.config('web', 'style', 'paper')
@@ -303,14 +302,6 @@ def changeset(web, req, tmpl):
rev = changeset
-def decodepath(path):
- """Hook for mapping a path in the repository to a path in the
- working copy.
-
- Extensions (e.g., largefiles) can override this to remap files in
- the virtual file system presented by the manifest command below."""
- return path
-
def manifest(web, req, tmpl):
ctx = webutil.changectx(web.repo, req)
path = webutil.cleanpath(web.repo, req.form.get('file', [''])[0])
@@ -326,17 +317,13 @@ def manifest(web, req, tmpl):
l = len(path)
abspath = "/" + path
- for full, n in mf.iteritems():
- # the virtual path (working copy path) used for the full
- # (repository) path
- f = decodepath(full)
-
+ for f, n in mf.iteritems():
if f[:l] != path:
continue
remain = f[l:]
elements = remain.split('/')
if len(elements) == 1:
- files[remain] = full
+ files[remain] = f
else:
h = dirs # need to retain ref to dirs (root)
for elem in elements[0:-1]:
@@ -394,7 +381,8 @@ def manifest(web, req, tmpl):
branches=webutil.nodebranchdict(web.repo, ctx))
def tags(web, req, tmpl):
- i = reversed(web.repo.tagslist())
+ i = web.repo.tagslist()
+ i.reverse()
parity = paritygen(web.stripecount)
def entries(notip=False, limit=0, **map):
@@ -440,7 +428,7 @@ def branches(web, req, tmpl):
tips = (web.repo[n] for t, n in web.repo.branchtags().iteritems())
heads = web.repo.heads()
parity = paritygen(web.stripecount)
- sortkey = lambda ctx: (not ctx.closesbranch(), ctx.rev())
+ sortkey = lambda ctx: ('close' not in ctx.extra(), ctx.rev())
def entries(limit, **map):
count = 0
@@ -465,7 +453,8 @@ def branches(web, req, tmpl):
latestentry=lambda **x: entries(1, **x))
def summary(web, req, tmpl):
- i = reversed(web.repo.tagslist())
+ i = web.repo.tagslist()
+ i.reverse()
def tagentries(**map):
parity = paritygen(web.stripecount)
@@ -556,7 +545,6 @@ def filediff(web, req, tmpl):
if fctx is not None:
n = fctx.node()
path = fctx.path()
- ctx = fctx.changectx()
else:
n = ctx.node()
# path already defined in except clause
@@ -566,7 +554,7 @@ def filediff(web, req, tmpl):
if 'style' in req.form:
style = req.form['style'][0]
- diffs = webutil.diffs(web.repo, tmpl, ctx, [path], parity, style)
+ diffs = webutil.diffs(web.repo, tmpl, fctx or ctx, [path], parity, style)
rename = fctx and webutil.renamelink(fctx) or []
ctx = fctx and fctx or ctx
return tmpl("filediff",
@@ -584,74 +572,10 @@ def filediff(web, req, tmpl):
diff = filediff
-def comparison(web, req, tmpl):
- ctx = webutil.changectx(web.repo, req)
- if 'file' not in req.form:
- raise ErrorResponse(HTTP_NOT_FOUND, 'file not given')
- path = webutil.cleanpath(web.repo, req.form['file'][0])
- rename = path in ctx and webutil.renamelink(ctx[path]) or []
-
- parsecontext = lambda v: v == 'full' and -1 or int(v)
- if 'context' in req.form:
- context = parsecontext(req.form['context'][0])
- else:
- context = parsecontext(web.config('web', 'comparisoncontext', '5'))
-
- def filelines(f):
- if binary(f.data()):
- mt = mimetypes.guess_type(f.path())[0]
- if not mt:
- mt = 'application/octet-stream'
- return [_('(binary file %s, hash: %s)') % (mt, hex(f.filenode()))]
- return f.data().splitlines()
-
- if path in ctx:
- fctx = ctx[path]
- rightrev = fctx.filerev()
- rightnode = fctx.filenode()
- rightlines = filelines(fctx)
- parents = fctx.parents()
- if not parents:
- leftrev = -1
- leftnode = nullid
- leftlines = ()
- else:
- pfctx = parents[0]
- leftrev = pfctx.filerev()
- leftnode = pfctx.filenode()
- leftlines = filelines(pfctx)
- else:
- rightrev = -1
- rightnode = nullid
- rightlines = ()
- fctx = ctx.parents()[0][path]
- leftrev = fctx.filerev()
- leftnode = fctx.filenode()
- leftlines = filelines(fctx)
-
- comparison = webutil.compare(tmpl, context, leftlines, rightlines)
- return tmpl('filecomparison',
- file=path,
- node=hex(ctx.node()),
- rev=ctx.rev(),
- date=ctx.date(),
- desc=ctx.description(),
- author=ctx.user(),
- rename=rename,
- branch=webutil.nodebranchnodefault(ctx),
- parent=webutil.parents(fctx),
- child=webutil.children(fctx),
- leftrev=leftrev,
- leftnode=hex(leftnode),
- rightrev=rightrev,
- rightnode=hex(rightnode),
- comparison=comparison)
-
def annotate(web, req, tmpl):
fctx = webutil.filectx(web.repo, req)
f = fctx.path()
parity = paritygen(web.stripecount)
- diffopts = patch.diffopts(web.repo.ui, untrusted=True, section='annotate')
def annotate(**map):
last = None
@@ -661,8 +585,7 @@ def annotate(web, req, tmpl):
lines = enumerate([((fctx.filectx(fctx.filerev()), 1),
'(binary:%s)' % mt)])
else:
- lines = enumerate(fctx.annotate(follow=True, linenumber=True,
- diffopts=diffopts))
+ lines = enumerate(fctx.annotate(follow=True, linenumber=True))
for lineno, ((f, targetline), l) in lines:
fnode = f.filenode()
@@ -817,9 +740,7 @@ def static(web, req, tmpl):
def graph(web, req, tmpl):
- ctx = webutil.changectx(web.repo, req)
- rev = ctx.rev()
-
+ rev = webutil.changectx(web.repo, req).rev()
bg_height = 39
revcount = web.maxshortchanges
if 'revcount' in req.form:
@@ -832,94 +753,45 @@ def graph(web, req, tmpl):
morevars = copy.copy(tmpl.defaults['sessionvars'])
morevars['revcount'] = revcount * 2
- count = len(web.repo)
- pos = rev
- start = max(0, pos - revcount + 1)
- end = min(count, start + revcount)
- pos = end - 1
-
- uprev = min(max(0, count - 1), rev + revcount)
+ max_rev = len(web.repo) - 1
+ revcount = min(max_rev, revcount)
+ revnode = web.repo.changelog.node(rev)
+ revnode_hex = hex(revnode)
+ uprev = min(max_rev, rev + revcount)
downrev = max(0, rev - revcount)
- changenav = webutil.revnavgen(pos, revcount, count, web.repo.changectx)
-
- dag = graphmod.dagwalker(web.repo, range(start, end)[::-1])
- tree = list(graphmod.colored(dag, web.repo))
-
- def getcolumns(tree):
- cols = 0
- for (id, type, ctx, vtx, edges) in tree:
- if type != graphmod.CHANGESET:
- continue
- cols = max(cols, max([edge[0] for edge in edges] or [0]),
- max([edge[1] for edge in edges] or [0]))
- return cols
-
- def graphdata(usetuples, **map):
- data = []
-
- row = 0
- for (id, type, ctx, vtx, edges) in tree:
- if type != graphmod.CHANGESET:
- continue
- node = str(ctx)
- age = templatefilters.age(ctx.date())
- desc = templatefilters.firstline(ctx.description())
- desc = cgi.escape(templatefilters.nonempty(desc))
- user = cgi.escape(templatefilters.person(ctx.user()))
- branch = ctx.branch()
- try:
- branchnode = web.repo.branchtip(branch)
- except error.RepoLookupError:
- branchnode = None
- branch = branch, branchnode == ctx.node()
-
- if usetuples:
- data.append((node, vtx, edges, desc, user, age, branch,
- ctx.tags(), ctx.bookmarks()))
- else:
- edgedata = [dict(col=edge[0], nextcol=edge[1],
- color=(edge[2] - 1) % 6 + 1,
- width=edge[3], bcolor=edge[4])
- for edge in edges]
-
- data.append(
- dict(node=node,
- col=vtx[0],
- color=(vtx[1] - 1) % 6 + 1,
- edges=edgedata,
- row=row,
- nextrow=row + 1,
- desc=desc,
- user=user,
- age=age,
- bookmarks=webutil.nodebookmarksdict(
- web.repo, ctx.node()),
- branches=webutil.nodebranchdict(web.repo, ctx),
- inbranch=webutil.nodeinbranch(web.repo, ctx),
- tags=webutil.nodetagsdict(web.repo, ctx.node())))
-
- row += 1
-
- return data
-
- cols = getcolumns(tree)
- rows = len(tree)
- canvasheight = (rows + 1) * bg_height - 27
+ count = len(web.repo)
+ changenav = webutil.revnavgen(rev, revcount, count, web.repo.changectx)
+ startrev = rev
+ # if starting revision is less than 60 set it to uprev
+ if rev < web.maxshortchanges:
+ startrev = uprev
+
+ dag = graphmod.dagwalker(web.repo, range(startrev, downrev - 1, -1))
+ tree = list(graphmod.colored(dag))
+ canvasheight = (len(tree) + 1) * bg_height - 27
+ data = []
+ for (id, type, ctx, vtx, edges) in tree:
+ if type != graphmod.CHANGESET:
+ continue
+ node = str(ctx)
+ age = templatefilters.age(ctx.date())
+ desc = templatefilters.firstline(ctx.description())
+ desc = cgi.escape(templatefilters.nonempty(desc))
+ user = cgi.escape(templatefilters.person(ctx.user()))
+ branch = ctx.branch()
+ branch = branch, web.repo.branchtags().get(branch) == ctx.node()
+ data.append((node, vtx, edges, desc, user, age, branch, ctx.tags(),
+ ctx.bookmarks()))
return tmpl('graph', rev=rev, revcount=revcount, uprev=uprev,
lessvars=lessvars, morevars=morevars, downrev=downrev,
- cols=cols, rows=rows,
- canvaswidth=(cols + 1) * bg_height,
- truecanvasheight=rows * bg_height,
- canvasheight=canvasheight, bg_height=bg_height,
- jsdata=lambda **x: graphdata(True, **x),
- nodes=lambda **x: graphdata(False, **x),
- node=ctx.hex(), changenav=changenav)
+ canvasheight=canvasheight, jsdata=data, bg_height=bg_height,
+ node=revnode_hex, changenav=changenav)
def _getdoc(e):
doc = e[0].__doc__
if doc:
- doc = _(doc).split('\n')[0]
+ doc = doc.split('\n')[0]
else:
doc = _('(no help text available)')
return doc
@@ -931,7 +803,8 @@ def help(web, req, tmpl):
if not topicname:
def topics(**map):
for entries, summary, _ in helpmod.helptable:
- yield {'topic': entries[0], 'summary': summary}
+ entries = sorted(entries, key=len)
+ yield {'topic': entries[-1], 'summary': summary}
early, other = [], []
primary = lambda s: s.split('|')[0]
@@ -961,7 +834,6 @@ def help(web, req, tmpl):
u = webutil.wsgiui()
u.pushbuffer()
- u.verbose = True
try:
commands.help_(u, topicname)
except error.UnknownCommand:
diff --git a/mercurial/hgweb/webutil.py b/mercurial/hgweb/webutil.py
index ca5e7d8..967b6e8 100644
--- a/mercurial/hgweb/webutil.py
+++ b/mercurial/hgweb/webutil.py
@@ -10,9 +10,6 @@ import os, copy
from mercurial import match, patch, scmutil, error, ui, util
from mercurial.i18n import _
from mercurial.node import hex, nullid
-from common import ErrorResponse
-from common import HTTP_NOT_FOUND
-import difflib
def up(p):
if p[0] != "/":
@@ -75,7 +72,7 @@ def _siblings(siblings=[], hiderev=None):
d['date'] = s.date()
d['description'] = s.description()
d['branch'] = s.branch()
- if util.safehasattr(s, 'path'):
+ if hasattr(s, 'path'):
d['file'] = s.path()
yield d
@@ -101,23 +98,16 @@ def nodebranchdict(repo, ctx):
branches = []
branch = ctx.branch()
# If this is an empty repo, ctx.node() == nullid,
- # ctx.branch() == 'default'.
- try:
- branchnode = repo.branchtip(branch)
- except error.RepoLookupError:
- branchnode = None
- if branchnode == ctx.node():
+ # ctx.branch() == 'default', but branchtags() is
+ # an empty dict. Using dict.get avoids a traceback.
+ if repo.branchtags().get(branch) == ctx.node():
branches.append({"name": branch})
return branches
def nodeinbranch(repo, ctx):
branches = []
branch = ctx.branch()
- try:
- branchnode = repo.branchtip(branch)
- except error.RepoLookupError:
- branchnode = None
- if branch != 'default' and branchnode != ctx.node():
+ if branch != 'default' and repo.branchtags().get(branch) != ctx.node():
branches.append({"name": branch})
return branches
@@ -156,15 +146,11 @@ def changectx(repo, req):
return ctx
def filectx(repo, req):
- if 'file' not in req.form:
- raise ErrorResponse(HTTP_NOT_FOUND, 'file not given')
path = cleanpath(repo, req.form['file'][0])
if 'node' in req.form:
changeid = req.form['node'][0]
- elif 'filenode' in req.form:
- changeid = req.form['filenode'][0]
else:
- raise ErrorResponse(HTTP_NOT_FOUND, 'node or filenode not given')
+ changeid = req.form['filenode'][0]
try:
fctx = repo[changeid][path]
except error.RepoError:
@@ -187,7 +173,8 @@ def diffs(repo, tmpl, ctx, files, parity, style):
start += 1
blockcount = countgen()
- def prettyprintlines(diff, blockno):
+ def prettyprintlines(diff):
+ blockno = blockcount.next()
for lineno, l in enumerate(diff.splitlines(True)):
lineno = "%d.%d" % (blockno, lineno + 1)
if l.startswith('+'):
@@ -216,63 +203,14 @@ def diffs(repo, tmpl, ctx, files, parity, style):
block = []
for chunk in patch.diff(repo, node1, node2, m, opts=diffopts):
if chunk.startswith('diff') and block:
- blockno = blockcount.next()
- yield tmpl('diffblock', parity=parity.next(), blockno=blockno,
- lines=prettyprintlines(''.join(block), blockno))
+ yield tmpl('diffblock', parity=parity.next(),
+ lines=prettyprintlines(''.join(block)))
block = []
if chunk.startswith('diff') and style != 'raw':
chunk = ''.join(chunk.splitlines(True)[1:])
block.append(chunk)
- blockno = blockcount.next()
- yield tmpl('diffblock', parity=parity.next(), blockno=blockno,
- lines=prettyprintlines(''.join(block), blockno))
-
-def compare(tmpl, context, leftlines, rightlines):
- '''Generator function that provides side-by-side comparison data.'''
-
- def compline(type, leftlineno, leftline, rightlineno, rightline):
- lineid = leftlineno and ("l%s" % leftlineno) or ''
- lineid += rightlineno and ("r%s" % rightlineno) or ''
- return tmpl('comparisonline',
- type=type,
- lineid=lineid,
- leftlinenumber="% 6s" % (leftlineno or ''),
- leftline=leftline or '',
- rightlinenumber="% 6s" % (rightlineno or ''),
- rightline=rightline or '')
-
- def getblock(opcodes):
- for type, llo, lhi, rlo, rhi in opcodes:
- len1 = lhi - llo
- len2 = rhi - rlo
- count = min(len1, len2)
- for i in xrange(count):
- yield compline(type=type,
- leftlineno=llo + i + 1,
- leftline=leftlines[llo + i],
- rightlineno=rlo + i + 1,
- rightline=rightlines[rlo + i])
- if len1 > len2:
- for i in xrange(llo + count, lhi):
- yield compline(type=type,
- leftlineno=i + 1,
- leftline=leftlines[i],
- rightlineno=None,
- rightline=None)
- elif len2 > len1:
- for i in xrange(rlo + count, rhi):
- yield compline(type=type,
- leftlineno=None,
- leftline=None,
- rightlineno=i + 1,
- rightline=rightlines[i])
-
- s = difflib.SequenceMatcher(None, leftlines, rightlines)
- if context < 0:
- yield tmpl('comparisonblock', lines=getblock(s.get_opcodes()))
- else:
- for oc in s.get_grouped_opcodes(n=context):
- yield tmpl('comparisonblock', lines=getblock(oc))
+ yield tmpl('diffblock', parity=parity.next(),
+ lines=prettyprintlines(''.join(block)))
def diffstatgen(ctx):
'''Generator function that provides the diffstat data.'''
diff --git a/mercurial/hgweb/wsgicgi.py b/mercurial/hgweb/wsgicgi.py
index 5d18d8e..6de394c 100644
--- a/mercurial/hgweb/wsgicgi.py
+++ b/mercurial/hgweb/wsgicgi.py
@@ -78,4 +78,5 @@ def launch(application):
for chunk in content:
write(chunk)
finally:
- getattr(content, 'close', lambda : None)()
+ if hasattr(content, 'close'):
+ content.close()
diff --git a/mercurial/hook.py b/mercurial/hook.py
index 9831353..0d92e91 100644
--- a/mercurial/hook.py
+++ b/mercurial/hook.py
@@ -21,14 +21,14 @@ def _pythonhook(ui, repo, name, hname, funcname, args, throw):
ui.note(_("calling hook %s: %s\n") % (hname, funcname))
obj = funcname
- if not util.safehasattr(obj, '__call__'):
+ if not hasattr(obj, '__call__'):
d = funcname.rfind('.')
if d == -1:
raise util.Abort(_('%s hook is invalid ("%s" not in '
'a module)') % (hname, funcname))
modname = funcname[:d]
oldpaths = sys.path
- if util.mainfrozen():
+ if hasattr(sys, "frozen"):
# binary installs require sys.path manipulation
modpath, modfile = os.path.split(modname)
if modpath and modfile:
@@ -60,13 +60,13 @@ def _pythonhook(ui, repo, name, hname, funcname, args, throw):
raise util.Abort(_('%s hook is invalid '
'("%s" is not defined)') %
(hname, funcname))
- if not util.safehasattr(obj, '__call__'):
+ if not hasattr(obj, '__call__'):
raise util.Abort(_('%s hook is invalid '
'("%s" is not callable)') %
(hname, funcname))
try:
try:
- # redirect IO descriptors to the ui descriptors so hooks
+ # redirect IO descriptors the the ui descriptors so hooks
# that write directly to these don't mess up the command
# protocol when running through the command server
old = sys.stdout, sys.stderr, sys.stdin
@@ -99,7 +99,7 @@ def _exthook(ui, repo, name, cmd, args, throw):
env = {}
for k, v in args.iteritems():
- if util.safehasattr(v, '__call__'):
+ if hasattr(v, '__call__'):
v = v()
if isinstance(v, dict):
# make the dictionary element order stable across Python
@@ -124,23 +124,12 @@ def _exthook(ui, repo, name, cmd, args, throw):
ui.warn(_('warning: %s hook %s\n') % (name, desc))
return r
-def _allhooks(ui):
- hooks = []
- for name, cmd in ui.configitems('hooks'):
- if not name.startswith('priority'):
- priority = ui.configint('hooks', 'priority.%s' % name, 0)
- hooks.append((-priority, len(hooks), name, cmd))
- return [(k, v) for p, o, k, v in sorted(hooks)]
-
_redirect = False
def redirect(state):
global _redirect
_redirect = state
def hook(ui, repo, name, throw=False, **args):
- if not ui.callhooks:
- return False
-
r = False
oldstdout = -1
@@ -150,7 +139,6 @@ def hook(ui, repo, name, throw=False, **args):
stderrno = sys.__stderr__.fileno()
# temporarily redirect stdout to stderr, if possible
if stdoutno >= 0 and stderrno >= 0:
- sys.__stdout__.flush()
oldstdout = os.dup(stdoutno)
os.dup2(stderrno, stdoutno)
except AttributeError:
@@ -158,10 +146,10 @@ def hook(ui, repo, name, throw=False, **args):
pass
try:
- for hname, cmd in _allhooks(ui):
+ for hname, cmd in ui.configitems('hooks'):
if hname.split('.')[0] != name or not cmd:
continue
- if util.safehasattr(cmd, '__call__'):
+ if hasattr(cmd, '__call__'):
r = _pythonhook(ui, repo, name, hname, cmd, args, throw) or r
elif cmd.startswith('python:'):
if cmd.count(':') >= 2:
@@ -169,11 +157,7 @@ def hook(ui, repo, name, throw=False, **args):
path = util.expandpath(path)
if repo:
path = os.path.join(repo.root, path)
- try:
- mod = extensions.loadpath(path, 'hghook.%s' % hname)
- except Exception:
- ui.write(_("loading %s hook failed:\n") % hname)
- raise
+ mod = extensions.loadpath(path, 'hghook.%s' % hname)
hookfn = getattr(mod, cmd)
else:
hookfn = cmd[7:].strip()
diff --git a/mercurial/httpclient/__init__.py b/mercurial/httpclient/__init__.py
index f5c3baf..227d60b 100644
--- a/mercurial/httpclient/__init__.py
+++ b/mercurial/httpclient/__init__.py
@@ -45,7 +45,6 @@ import rfc822
import select
import socket
-import _readers
import socketutil
logger = logging.getLogger(__name__)
@@ -55,6 +54,8 @@ __all__ = ['HTTPConnection', 'HTTPResponse']
HTTP_VER_1_0 = 'HTTP/1.0'
HTTP_VER_1_1 = 'HTTP/1.1'
+_LEN_CLOSE_IS_END = -1
+
OUTGOING_BUFFER_SIZE = 1 << 15
INCOMING_BUFFER_SIZE = 1 << 20
@@ -82,19 +83,23 @@ class HTTPResponse(object):
The response will continue to load as available. If you need the
complete response before continuing, check the .complete() method.
"""
- def __init__(self, sock, timeout, method):
+ def __init__(self, sock, timeout):
self.sock = sock
- self.method = method
self.raw_response = ''
+ self._body = None
self._headers_len = 0
+ self._content_len = 0
self.headers = None
self.will_close = False
self.status_line = ''
self.status = None
- self.continued = False
self.http_version = None
self.reason = None
- self._reader = None
+ self._chunked = False
+ self._chunked_done = False
+ self._chunked_until_next = 0
+ self._chunked_skip_bytes = 0
+ self._chunked_preloaded_block = None
self._read_location = 0
self._eol = EOL
@@ -112,12 +117,11 @@ class HTTPResponse(object):
socket is closed, this will nearly always return False, even
in cases where all the data has actually been loaded.
"""
- if self._reader:
- return self._reader.done()
-
- def _close(self):
- if self._reader is not None:
- self._reader._close()
+ if self._chunked:
+ return self._chunked_done
+ if self._content_len == _LEN_CLOSE_IS_END:
+ return False
+ return self._body is not None and len(self._body) >= self._content_len
def readline(self):
"""Read a single line from the response body.
@@ -125,34 +129,30 @@ class HTTPResponse(object):
This may block until either a line ending is found or the
response is complete.
"""
- # TODO: move this into the reader interface where it can be
- # smarter (and probably avoid copies)
- bytes = []
- while not bytes:
- try:
- bytes = [self._reader.read(1)]
- except _readers.ReadNotReady:
- self._select()
- while bytes[-1] != '\n' and not self.complete():
+ eol = self._body.find('\n', self._read_location)
+ while eol == -1 and not self.complete():
self._select()
- bytes.append(self._reader.read(1))
- if bytes[-1] != '\n':
- next = self._reader.read(1)
- while next and next != '\n':
- bytes.append(next)
- next = self._reader.read(1)
- bytes.append(next)
- return ''.join(bytes)
+ eol = self._body.find('\n', self._read_location)
+ if eol != -1:
+ eol += 1
+ else:
+ eol = len(self._body)
+ data = self._body[self._read_location:eol]
+ self._read_location = eol
+ return data
def read(self, length=None):
# if length is None, unbounded read
while (not self.complete() # never select on a finished read
and (not length # unbounded, so we wait for complete()
- or length > self._reader.available_data)):
+ or (self._read_location + length) > len(self._body))):
self._select()
if not length:
- length = self._reader.available_data
- r = self._reader.read(length)
+ length = len(self._body) - self._read_location
+ elif len(self._body) < (self._read_location + length):
+ length = len(self._body) - self._read_location
+ r = self._body[self._read_location:self._read_location + length]
+ self._read_location += len(r)
if self.complete() and self.will_close:
self.sock.close()
return r
@@ -160,11 +160,15 @@ class HTTPResponse(object):
def _select(self):
r, _, _ = select.select([self.sock], [], [], self._timeout)
if not r:
- # socket was not readable. If the response is not
- # complete, raise a timeout.
- if not self.complete():
+ # socket was not readable. If the response is not complete
+ # and we're not a _LEN_CLOSE_IS_END response, raise a timeout.
+ # If we are a _LEN_CLOSE_IS_END response and we have no data,
+ # raise a timeout.
+ if not (self.complete() or
+ (self._content_len == _LEN_CLOSE_IS_END and self._body)):
logger.info('timed out with timeout of %s', self._timeout)
raise HTTPTimeoutException('timeout reading data')
+ logger.info('cl: %r body: %r', self._content_len, self._body)
try:
data = self.sock.recv(INCOMING_BUFFER_SIZE)
except socket.sslerror, e:
@@ -173,22 +177,68 @@ class HTTPResponse(object):
logger.debug('SSL_WANT_READ in _select, should retry later')
return True
logger.debug('response read %d data during _select', len(data))
- # If the socket was readable and no data was read, that means
- # the socket was closed. Inform the reader (if any) so it can
- # raise an exception if this is an invalid situation.
if not data:
- if self._reader:
- self._reader._close()
+ if self.headers and self._content_len == _LEN_CLOSE_IS_END:
+ self._content_len = len(self._body)
return False
else:
self._load_response(data)
return True
+ def _chunked_parsedata(self, data):
+ if self._chunked_preloaded_block:
+ data = self._chunked_preloaded_block + data
+ self._chunked_preloaded_block = None
+ while data:
+ logger.debug('looping with %d data remaining', len(data))
+ # Slice out anything we should skip
+ if self._chunked_skip_bytes:
+ if len(data) <= self._chunked_skip_bytes:
+ self._chunked_skip_bytes -= len(data)
+ data = ''
+ break
+ else:
+ data = data[self._chunked_skip_bytes:]
+ self._chunked_skip_bytes = 0
+
+ # determine how much is until the next chunk
+ if self._chunked_until_next:
+ amt = self._chunked_until_next
+ logger.debug('reading remaining %d of existing chunk', amt)
+ self._chunked_until_next = 0
+ body = data
+ else:
+ try:
+ amt, body = data.split(self._eol, 1)
+ except ValueError:
+ self._chunked_preloaded_block = data
+ logger.debug('saving %r as a preloaded block for chunked',
+ self._chunked_preloaded_block)
+ return
+ amt = int(amt, base=16)
+ logger.debug('reading chunk of length %d', amt)
+ if amt == 0:
+ self._chunked_done = True
+
+ # read through end of what we have or the chunk
+ self._body += body[:amt]
+ if len(body) >= amt:
+ data = body[amt:]
+ self._chunked_skip_bytes = len(self._eol)
+ else:
+ self._chunked_until_next = amt - len(body)
+ self._chunked_skip_bytes = 0
+ data = ''
+
def _load_response(self, data):
- # Being here implies we're not at the end of the headers yet,
- # since at the end of this method if headers were completely
- # loaded we replace this method with the load() method of the
- # reader we created.
+ if self._chunked:
+ self._chunked_parsedata(data)
+ return
+ elif self._body is not None:
+ self._body += data
+ return
+
+ # We haven't seen end of headers yet
self.raw_response += data
# This is a bogus server with bad line endings
if self._eol not in self.raw_response:
@@ -212,7 +262,6 @@ class HTTPResponse(object):
http_ver, status = hdrs.split(' ', 1)
if status.startswith('100'):
self.raw_response = body
- self.continued = True
logger.debug('continue seen, setting body to %r', body)
return
@@ -232,46 +281,23 @@ class HTTPResponse(object):
if self._eol != EOL:
hdrs = hdrs.replace(self._eol, '\r\n')
headers = rfc822.Message(cStringIO.StringIO(hdrs))
- content_len = None
if HDR_CONTENT_LENGTH in headers:
- content_len = int(headers[HDR_CONTENT_LENGTH])
+ self._content_len = int(headers[HDR_CONTENT_LENGTH])
if self.http_version == HTTP_VER_1_0:
self.will_close = True
elif HDR_CONNECTION_CTRL in headers:
self.will_close = (
headers[HDR_CONNECTION_CTRL].lower() == CONNECTION_CLOSE)
+ if self._content_len == 0:
+ self._content_len = _LEN_CLOSE_IS_END
if (HDR_XFER_ENCODING in headers
and headers[HDR_XFER_ENCODING].lower() == XFER_ENCODING_CHUNKED):
- self._reader = _readers.ChunkedReader(self._eol)
- logger.debug('using a chunked reader')
- else:
- # HEAD responses are forbidden from returning a body, and
- # it's implausible for a CONNECT response to use
- # close-is-end logic for an OK response.
- if (self.method == 'HEAD' or
- (self.method == 'CONNECT' and content_len is None)):
- content_len = 0
- if content_len is not None:
- logger.debug('using a content-length reader with length %d',
- content_len)
- self._reader = _readers.ContentLengthReader(content_len)
- else:
- # Response body had no length specified and is not
- # chunked, so the end of the body will only be
- # identifiable by the termination of the socket by the
- # server. My interpretation of the spec means that we
- # are correct in hitting this case if
- # transfer-encoding, content-length, and
- # connection-control were left unspecified.
- self._reader = _readers.CloseIsEndReader()
- logger.debug('using a close-is-end reader')
- self.will_close = True
-
- if body:
- self._reader._load(body)
- logger.debug('headers complete')
+ self._body = ''
+ self._chunked_parsedata(body)
+ self._chunked = True
+ if self._body is None:
+ self._body = body
self.headers = headers
- self._load_response = self._reader._load
class HTTPConnection(object):
@@ -348,14 +374,13 @@ class HTTPConnection(object):
{}, HTTP_VER_1_0)
sock.send(data)
sock.setblocking(0)
- r = self.response_class(sock, self.timeout, 'CONNECT')
+ r = self.response_class(sock, self.timeout)
timeout_exc = HTTPTimeoutException(
'Timed out waiting for CONNECT response from proxy')
while not r.complete():
try:
if not r._select():
- if not r.complete():
- raise timeout_exc
+ raise timeout_exc
except HTTPTimeoutException:
# This raise/except pattern looks goofy, but
# _select can raise the timeout as well as the
@@ -372,10 +397,6 @@ class HTTPConnection(object):
else:
sock = socketutil.create_connection((self.host, self.port))
if self.ssl:
- # This is the default, but in the case of proxied SSL
- # requests the proxy logic above will have cleared
- # blocking mode, so reenable it just to be safe.
- sock.setblocking(1)
logger.debug('wrapping socket for ssl with options %r',
self.ssl_opts)
sock = socketutil.wrap_socket(sock, **self.ssl_opts)
@@ -498,7 +519,7 @@ class HTTPConnection(object):
out = outgoing_headers or body
blocking_on_continue = False
if expect_continue and not outgoing_headers and not (
- response and (response.headers or response.continued)):
+ response and response.headers):
logger.info(
'waiting up to %s seconds for'
' continue response from server',
@@ -521,6 +542,11 @@ class HTTPConnection(object):
'server, optimistically sending request body')
else:
raise HTTPTimeoutException('timeout sending data')
+ # TODO exceptional conditions with select? (what are those be?)
+ # TODO if the response is loading, must we finish sending at all?
+ #
+ # Certainly not if it's going to close the connection and/or
+ # the response is already done...I think.
was_first = first
# incoming data
@@ -538,11 +564,11 @@ class HTTPConnection(object):
logger.info('socket appears closed in read')
self.sock = None
self._current_response = None
- if response is not None:
- response._close()
# This if/elif ladder is a bit subtle,
# comments in each branch should help.
- if response is not None and response.complete():
+ if response is not None and (
+ response.complete() or
+ response._content_len == _LEN_CLOSE_IS_END):
# Server responded completely and then
# closed the socket. We should just shut
# things down and let the caller get their
@@ -571,7 +597,7 @@ class HTTPConnection(object):
'response was missing or incomplete!')
logger.debug('read %d bytes in request()', len(data))
if response is None:
- response = self.response_class(r[0], self.timeout, method)
+ response = self.response_class(r[0], self.timeout)
response._load_response(data)
# Jump to the next select() call so we load more
# data if the server is still sending us content.
@@ -579,6 +605,10 @@ class HTTPConnection(object):
except socket.error, e:
if e[0] != errno.EPIPE and not was_first:
raise
+ if (response._content_len
+ and response._content_len != _LEN_CLOSE_IS_END):
+ outgoing_headers = sent_data + outgoing_headers
+ reconnect('read')
# outgoing data
if w and out:
@@ -623,7 +653,7 @@ class HTTPConnection(object):
# close if the server response said to or responded before eating
# the whole request
if response is None:
- response = self.response_class(self.sock, self.timeout, method)
+ response = self.response_class(self.sock, self.timeout)
complete = response.complete()
data_left = bool(outgoing_headers or body)
if data_left:
@@ -641,8 +671,7 @@ class HTTPConnection(object):
raise httplib.ResponseNotReady()
r = self._current_response
while r.headers is None:
- if not r._select() and not r.complete():
- raise _readers.HTTPRemoteClosedError()
+ r._select()
if r.will_close:
self.sock = None
self._current_response = None
@@ -664,11 +693,6 @@ class BadRequestData(httplib.HTTPException):
class HTTPProxyConnectFailedException(httplib.HTTPException):
"""Connecting to the HTTP proxy failed."""
-
class HTTPStateError(httplib.HTTPException):
"""Invalid internal state encountered."""
-
-# Forward this exception type from _readers since it needs to be part
-# of the public API.
-HTTPRemoteClosedError = _readers.HTTPRemoteClosedError
# no-check-code
diff --git a/mercurial/httpclient/_readers.py b/mercurial/httpclient/_readers.py
deleted file mode 100644
index 0beb551..0000000
--- a/mercurial/httpclient/_readers.py
+++ /dev/null
@@ -1,195 +0,0 @@
-# Copyright 2011, Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-"""Reader objects to abstract out different body response types.
-
-This module is package-private. It is not expected that these will
-have any clients outside of httpplus.
-"""
-
-import httplib
-import itertools
-import logging
-
-logger = logging.getLogger(__name__)
-
-
-class ReadNotReady(Exception):
- """Raised when read() is attempted but not enough data is loaded."""
-
-
-class HTTPRemoteClosedError(httplib.HTTPException):
- """The server closed the remote socket in the middle of a response."""
-
-
-class AbstractReader(object):
- """Abstract base class for response readers.
-
- Subclasses must implement _load, and should implement _close if
- it's not an error for the server to close their socket without
- some termination condition being detected during _load.
- """
- def __init__(self):
- self._finished = False
- self._done_chunks = []
-
- @property
- def available_data(self):
- return sum(map(len, self._done_chunks))
-
- def done(self):
- return self._finished
-
- def read(self, amt):
- if self.available_data < amt and not self._finished:
- raise ReadNotReady()
- need = [amt]
- def pred(s):
- needed = need[0] > 0
- need[0] -= len(s)
- return needed
- blocks = list(itertools.takewhile(pred, self._done_chunks))
- self._done_chunks = self._done_chunks[len(blocks):]
- over_read = sum(map(len, blocks)) - amt
- if over_read > 0 and blocks:
- logger.debug('need to reinsert %d data into done chunks', over_read)
- last = blocks[-1]
- blocks[-1], reinsert = last[:-over_read], last[-over_read:]
- self._done_chunks.insert(0, reinsert)
- result = ''.join(blocks)
- assert len(result) == amt or (self._finished and len(result) < amt)
- return result
-
- def _load(self, data): # pragma: no cover
- """Subclasses must implement this.
-
- As data is available to be read out of this object, it should
- be placed into the _done_chunks list. Subclasses should not
- rely on data remaining in _done_chunks forever, as it may be
- reaped if the client is parsing data as it comes in.
- """
- raise NotImplementedError
-
- def _close(self):
- """Default implementation of close.
-
- The default implementation assumes that the reader will mark
- the response as finished on the _finished attribute once the
- entire response body has been read. In the event that this is
- not true, the subclass should override the implementation of
- close (for example, close-is-end responses have to set
- self._finished in the close handler.)
- """
- if not self._finished:
- raise HTTPRemoteClosedError(
- 'server appears to have closed the socket mid-response')
-
-
-class AbstractSimpleReader(AbstractReader):
- """Abstract base class for simple readers that require no response decoding.
-
- Examples of such responses are Connection: Close (close-is-end)
- and responses that specify a content length.
- """
- def _load(self, data):
- if data:
- assert not self._finished, (
- 'tried to add data (%r) to a closed reader!' % data)
- logger.debug('%s read an addtional %d data', self.name, len(data))
- self._done_chunks.append(data)
-
-
-class CloseIsEndReader(AbstractSimpleReader):
- """Reader for responses that specify Connection: Close for length."""
- name = 'close-is-end'
-
- def _close(self):
- logger.info('Marking close-is-end reader as closed.')
- self._finished = True
-
-
-class ContentLengthReader(AbstractSimpleReader):
- """Reader for responses that specify an exact content length."""
- name = 'content-length'
-
- def __init__(self, amount):
- AbstractReader.__init__(self)
- self._amount = amount
- if amount == 0:
- self._finished = True
- self._amount_seen = 0
-
- def _load(self, data):
- AbstractSimpleReader._load(self, data)
- self._amount_seen += len(data)
- if self._amount_seen >= self._amount:
- self._finished = True
- logger.debug('content-length read complete')
-
-
-class ChunkedReader(AbstractReader):
- """Reader for chunked transfer encoding responses."""
- def __init__(self, eol):
- AbstractReader.__init__(self)
- self._eol = eol
- self._leftover_skip_amt = 0
- self._leftover_data = ''
-
- def _load(self, data):
- assert not self._finished, 'tried to add data to a closed reader!'
- logger.debug('chunked read an addtional %d data', len(data))
- position = 0
- if self._leftover_data:
- logger.debug('chunked reader trying to finish block from leftover data')
- # TODO: avoid this string concatenation if possible
- data = self._leftover_data + data
- position = self._leftover_skip_amt
- self._leftover_data = ''
- self._leftover_skip_amt = 0
- datalen = len(data)
- while position < datalen:
- split = data.find(self._eol, position)
- if split == -1:
- self._leftover_data = data
- self._leftover_skip_amt = position
- return
- amt = int(data[position:split], base=16)
- block_start = split + len(self._eol)
- # If the whole data chunk plus the eol trailer hasn't
- # loaded, we'll wait for the next load.
- if block_start + amt + len(self._eol) > len(data):
- self._leftover_data = data
- self._leftover_skip_amt = position
- return
- if amt == 0:
- self._finished = True
- logger.debug('closing chunked redaer due to chunk of length 0')
- return
- self._done_chunks.append(data[block_start:block_start + amt])
- position = block_start + amt + len(self._eol)
-# no-check-code
diff --git a/mercurial/httpclient/tests/__init__.py b/mercurial/httpclient/tests/__init__.py
new file mode 100644
index 0000000..84b3a07
--- /dev/null
+++ b/mercurial/httpclient/tests/__init__.py
@@ -0,0 +1 @@
+# no-check-code
diff --git a/mercurial/httpclient/tests/simple_http_test.py b/mercurial/httpclient/tests/simple_http_test.py
new file mode 100644
index 0000000..dba0188
--- /dev/null
+++ b/mercurial/httpclient/tests/simple_http_test.py
@@ -0,0 +1,386 @@
+# Copyright 2010, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import socket
+import unittest
+
+import http
+
+# relative import to ease embedding the library
+import util
+
+
+class SimpleHttpTest(util.HttpTestBase, unittest.TestCase):
+
+ def _run_simple_test(self, host, server_data, expected_req, expected_data):
+ con = http.HTTPConnection(host)
+ con._connect()
+ con.sock.data = server_data
+ con.request('GET', '/')
+
+ self.assertStringEqual(expected_req, con.sock.sent)
+ self.assertEqual(expected_data, con.getresponse().read())
+
+ def test_broken_data_obj(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ self.assertRaises(http.BadRequestData,
+ con.request, 'POST', '/', body=1)
+
+ def test_no_keepalive_http_1_0(self):
+ expected_request_one = """GET /remote/.hg/requires HTTP/1.1
+Host: localhost:9999
+range: bytes=0-
+accept-encoding: identity
+accept: application/mercurial-0.1
+user-agent: mercurial/proto-1.0
+
+""".replace('\n', '\r\n')
+ expected_response_headers = """HTTP/1.0 200 OK
+Server: SimpleHTTP/0.6 Python/2.6.1
+Date: Sun, 01 May 2011 13:56:57 GMT
+Content-type: application/octet-stream
+Content-Length: 33
+Last-Modified: Sun, 01 May 2011 13:56:56 GMT
+
+""".replace('\n', '\r\n')
+ expected_response_body = """revlogv1
+store
+fncache
+dotencode
+"""
+ con = http.HTTPConnection('localhost:9999')
+ con._connect()
+ con.sock.data = [expected_response_headers, expected_response_body]
+ con.request('GET', '/remote/.hg/requires',
+ headers={'accept-encoding': 'identity',
+ 'range': 'bytes=0-',
+ 'accept': 'application/mercurial-0.1',
+ 'user-agent': 'mercurial/proto-1.0',
+ })
+ self.assertStringEqual(expected_request_one, con.sock.sent)
+ self.assertEqual(con.sock.closed, False)
+ self.assertNotEqual(con.sock.data, [])
+ self.assert_(con.busy())
+ resp = con.getresponse()
+ self.assertStringEqual(resp.read(), expected_response_body)
+ self.failIf(con.busy())
+ self.assertEqual(con.sock, None)
+ self.assertEqual(resp.sock.data, [])
+ self.assert_(resp.sock.closed)
+
+ def test_multiline_header(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ con.sock.data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Multiline: Value\r\n',
+ ' Rest of value\r\n',
+ 'Content-Length: 10\r\n',
+ '\r\n'
+ '1234567890'
+ ]
+ con.request('GET', '/')
+
+ expected_req = ('GET / HTTP/1.1\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n\r\n')
+
+ self.assertEqual(('1.2.3.4', 80), con.sock.sa)
+ self.assertEqual(expected_req, con.sock.sent)
+ resp = con.getresponse()
+ self.assertEqual('1234567890', resp.read())
+ self.assertEqual(['Value\n Rest of value'],
+ resp.headers.getheaders('multiline'))
+ # Socket should not be closed
+ self.assertEqual(resp.sock.closed, False)
+ self.assertEqual(con.sock.closed, False)
+
+ def testSimpleRequest(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ con.sock.data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'MultiHeader: Value\r\n'
+ 'MultiHeader: Other Value\r\n'
+ 'MultiHeader: One More!\r\n'
+ 'Content-Length: 10\r\n',
+ '\r\n'
+ '1234567890'
+ ]
+ con.request('GET', '/')
+
+ expected_req = ('GET / HTTP/1.1\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n\r\n')
+
+ self.assertEqual(('1.2.3.4', 80), con.sock.sa)
+ self.assertEqual(expected_req, con.sock.sent)
+ resp = con.getresponse()
+ self.assertEqual('1234567890', resp.read())
+ self.assertEqual(['Value', 'Other Value', 'One More!'],
+ resp.headers.getheaders('multiheader'))
+ self.assertEqual(['BogusServer 1.0'],
+ resp.headers.getheaders('server'))
+
+ def testHeaderlessResponse(self):
+ con = http.HTTPConnection('1.2.3.4', use_ssl=False)
+ con._connect()
+ con.sock.data = ['HTTP/1.1 200 OK\r\n',
+ '\r\n'
+ '1234567890'
+ ]
+ con.request('GET', '/')
+
+ expected_req = ('GET / HTTP/1.1\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n\r\n')
+
+ self.assertEqual(('1.2.3.4', 80), con.sock.sa)
+ self.assertEqual(expected_req, con.sock.sent)
+ resp = con.getresponse()
+ self.assertEqual('1234567890', resp.read())
+ self.assertEqual({}, dict(resp.headers))
+ self.assertEqual(resp.status, 200)
+
+ def testReadline(self):
+ con = http.HTTPConnection('1.2.3.4')
+ con._connect()
+ # make sure it trickles in one byte at a time
+ # so that we touch all the cases in readline
+ con.sock.data = list(''.join(
+ ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Connection: Close\r\n',
+ '\r\n'
+ '1\n2\nabcdefg\n4\n5']))
+
+ expected_req = ('GET / HTTP/1.1\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n\r\n')
+
+ con.request('GET', '/')
+ self.assertEqual(('1.2.3.4', 80), con.sock.sa)
+ self.assertEqual(expected_req, con.sock.sent)
+ r = con.getresponse()
+ for expected in ['1\n', '2\n', 'abcdefg\n', '4\n', '5']:
+ actual = r.readline()
+ self.assertEqual(expected, actual,
+ 'Expected %r, got %r' % (expected, actual))
+
+ def testIPv6(self):
+ self._run_simple_test('[::1]:8221',
+ ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Content-Length: 10',
+ '\r\n\r\n'
+ '1234567890'],
+ ('GET / HTTP/1.1\r\n'
+ 'Host: [::1]:8221\r\n'
+ 'accept-encoding: identity\r\n\r\n'),
+ '1234567890')
+ self._run_simple_test('::2',
+ ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Content-Length: 10',
+ '\r\n\r\n'
+ '1234567890'],
+ ('GET / HTTP/1.1\r\n'
+ 'Host: ::2\r\n'
+ 'accept-encoding: identity\r\n\r\n'),
+ '1234567890')
+ self._run_simple_test('[::3]:443',
+ ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Content-Length: 10',
+ '\r\n\r\n'
+ '1234567890'],
+ ('GET / HTTP/1.1\r\n'
+ 'Host: ::3\r\n'
+ 'accept-encoding: identity\r\n\r\n'),
+ '1234567890')
+
+ def testEarlyContinueResponse(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ sock = con.sock
+ sock.data = ['HTTP/1.1 403 Forbidden\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Content-Length: 18',
+ '\r\n\r\n'
+ "You can't do that."]
+ expected_req = self.doPost(con, expect_body=False)
+ self.assertEqual(('1.2.3.4', 80), sock.sa)
+ self.assertStringEqual(expected_req, sock.sent)
+ self.assertEqual("You can't do that.", con.getresponse().read())
+ self.assertEqual(sock.closed, True)
+
+ def testDeniedAfterContinueTimeoutExpires(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ sock = con.sock
+ sock.data = ['HTTP/1.1 403 Forbidden\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Content-Length: 18\r\n',
+ 'Connection: close',
+ '\r\n\r\n'
+ "You can't do that."]
+ sock.read_wait_sentinel = 'Dear server, send response!'
+ sock.close_on_empty = True
+ # send enough data out that we'll chunk it into multiple
+ # blocks and the socket will close before we can send the
+ # whole request.
+ post_body = ('This is some POST data\n' * 1024 * 32 +
+ 'Dear server, send response!\n' +
+ 'This is some POST data\n' * 1024 * 32)
+ expected_req = self.doPost(con, expect_body=False,
+ body_to_send=post_body)
+ self.assertEqual(('1.2.3.4', 80), sock.sa)
+ self.assert_('POST data\n' in sock.sent)
+ self.assert_('Dear server, send response!\n' in sock.sent)
+ # We expect not all of our data was sent.
+ self.assertNotEqual(sock.sent, expected_req)
+ self.assertEqual("You can't do that.", con.getresponse().read())
+ self.assertEqual(sock.closed, True)
+
+ def testPostData(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ sock = con.sock
+ sock.read_wait_sentinel = 'POST data'
+ sock.early_data = ['HTTP/1.1 100 Co', 'ntinue\r\n\r\n']
+ sock.data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Content-Length: 16',
+ '\r\n\r\n',
+ "You can do that."]
+ expected_req = self.doPost(con, expect_body=True)
+ self.assertEqual(('1.2.3.4', 80), sock.sa)
+ self.assertEqual(expected_req, sock.sent)
+ self.assertEqual("You can do that.", con.getresponse().read())
+ self.assertEqual(sock.closed, False)
+
+ def testServerWithoutContinue(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ sock = con.sock
+ sock.read_wait_sentinel = 'POST data'
+ sock.data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Content-Length: 16',
+ '\r\n\r\n',
+ "You can do that."]
+ expected_req = self.doPost(con, expect_body=True)
+ self.assertEqual(('1.2.3.4', 80), sock.sa)
+ self.assertEqual(expected_req, sock.sent)
+ self.assertEqual("You can do that.", con.getresponse().read())
+ self.assertEqual(sock.closed, False)
+
+ def testServerWithSlowContinue(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ sock = con.sock
+ sock.read_wait_sentinel = 'POST data'
+ sock.data = ['HTTP/1.1 100 ', 'Continue\r\n\r\n',
+ 'HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Content-Length: 16',
+ '\r\n\r\n',
+ "You can do that."]
+ expected_req = self.doPost(con, expect_body=True)
+ self.assertEqual(('1.2.3.4', 80), sock.sa)
+ self.assertEqual(expected_req, sock.sent)
+ resp = con.getresponse()
+ self.assertEqual("You can do that.", resp.read())
+ self.assertEqual(200, resp.status)
+ self.assertEqual(sock.closed, False)
+
+ def testSlowConnection(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ # simulate one byte arriving at a time, to check for various
+ # corner cases
+ con.sock.data = list('HTTP/1.1 200 OK\r\n'
+ 'Server: BogusServer 1.0\r\n'
+ 'Content-Length: 10'
+ '\r\n\r\n'
+ '1234567890')
+ con.request('GET', '/')
+
+ expected_req = ('GET / HTTP/1.1\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n\r\n')
+
+ self.assertEqual(('1.2.3.4', 80), con.sock.sa)
+ self.assertEqual(expected_req, con.sock.sent)
+ self.assertEqual('1234567890', con.getresponse().read())
+
+ def testTimeout(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ con.sock.data = []
+ con.request('GET', '/')
+ self.assertRaises(http.HTTPTimeoutException,
+ con.getresponse)
+
+ expected_req = ('GET / HTTP/1.1\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n\r\n')
+
+ self.assertEqual(('1.2.3.4', 80), con.sock.sa)
+ self.assertEqual(expected_req, con.sock.sent)
+
+ def test_conn_keep_alive_but_server_close_anyway(self):
+ sockets = []
+ def closingsocket(*args, **kwargs):
+ s = util.MockSocket(*args, **kwargs)
+ sockets.append(s)
+ s.data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Connection: Keep-Alive\r\n',
+ 'Content-Length: 16',
+ '\r\n\r\n',
+ 'You can do that.']
+ s.close_on_empty = True
+ return s
+
+ socket.socket = closingsocket
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ con.request('GET', '/')
+ r1 = con.getresponse()
+ r1.read()
+ self.assertFalse(con.sock.closed)
+ self.assert_(con.sock.remote_closed)
+ con.request('GET', '/')
+ self.assertEqual(2, len(sockets))
+
+ def test_no_response_raises_response_not_ready(self):
+ con = http.HTTPConnection('foo')
+ self.assertRaises(http.httplib.ResponseNotReady, con.getresponse)
+# no-check-code
diff --git a/mercurial/httpclient/tests/test_bogus_responses.py b/mercurial/httpclient/tests/test_bogus_responses.py
new file mode 100644
index 0000000..486e770
--- /dev/null
+++ b/mercurial/httpclient/tests/test_bogus_responses.py
@@ -0,0 +1,68 @@
+# Copyright 2010, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+"""Tests against malformed responses.
+
+Server implementations that respond with only LF instead of CRLF have
+been observed. Checking against ones that use only CR is a hedge
+against that potential insanit.y
+"""
+import unittest
+
+import http
+
+# relative import to ease embedding the library
+import util
+
+
+class SimpleHttpTest(util.HttpTestBase, unittest.TestCase):
+
+ def bogusEOL(self, eol):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ con.sock.data = ['HTTP/1.1 200 OK%s' % eol,
+ 'Server: BogusServer 1.0%s' % eol,
+ 'Content-Length: 10',
+ eol * 2,
+ '1234567890']
+ con.request('GET', '/')
+
+ expected_req = ('GET / HTTP/1.1\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n\r\n')
+
+ self.assertEqual(('1.2.3.4', 80), con.sock.sa)
+ self.assertEqual(expected_req, con.sock.sent)
+ self.assertEqual('1234567890', con.getresponse().read())
+
+ def testOnlyLinefeed(self):
+ self.bogusEOL('\n')
+
+ def testOnlyCarriageReturn(self):
+ self.bogusEOL('\r')
+# no-check-code
diff --git a/mercurial/httpclient/tests/test_chunked_transfer.py b/mercurial/httpclient/tests/test_chunked_transfer.py
new file mode 100644
index 0000000..87153e3
--- /dev/null
+++ b/mercurial/httpclient/tests/test_chunked_transfer.py
@@ -0,0 +1,137 @@
+# Copyright 2010, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import cStringIO
+import unittest
+
+import http
+
+# relative import to ease embedding the library
+import util
+
+
+def chunkedblock(x, eol='\r\n'):
+ r"""Make a chunked transfer-encoding block.
+
+ >>> chunkedblock('hi')
+ '2\r\nhi\r\n'
+ >>> chunkedblock('hi' * 10)
+ '14\r\nhihihihihihihihihihi\r\n'
+ >>> chunkedblock('hi', eol='\n')
+ '2\nhi\n'
+ """
+ return ''.join((hex(len(x))[2:], eol, x, eol))
+
+
+class ChunkedTransferTest(util.HttpTestBase, unittest.TestCase):
+ def testChunkedUpload(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ sock = con.sock
+ sock.read_wait_sentinel = '0\r\n\r\n'
+ sock.data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Content-Length: 6',
+ '\r\n\r\n',
+ "Thanks"]
+
+ zz = 'zz\n'
+ con.request('POST', '/', body=cStringIO.StringIO(
+ (zz * (0x8010 / 3)) + 'end-of-body'))
+ expected_req = ('POST / HTTP/1.1\r\n'
+ 'transfer-encoding: chunked\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n\r\n')
+ expected_req += chunkedblock('zz\n' * (0x8000 / 3) + 'zz')
+ expected_req += chunkedblock(
+ '\n' + 'zz\n' * ((0x1b - len('end-of-body')) / 3) + 'end-of-body')
+ expected_req += '0\r\n\r\n'
+ self.assertEqual(('1.2.3.4', 80), sock.sa)
+ self.assertStringEqual(expected_req, sock.sent)
+ self.assertEqual("Thanks", con.getresponse().read())
+ self.assertEqual(sock.closed, False)
+
+ def testChunkedDownload(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ sock = con.sock
+ sock.data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'transfer-encoding: chunked',
+ '\r\n\r\n',
+ chunkedblock('hi '),
+ chunkedblock('there'),
+ chunkedblock(''),
+ ]
+ con.request('GET', '/')
+ self.assertStringEqual('hi there', con.getresponse().read())
+
+ def testChunkedDownloadBadEOL(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ sock = con.sock
+ sock.data = ['HTTP/1.1 200 OK\n',
+ 'Server: BogusServer 1.0\n',
+ 'transfer-encoding: chunked',
+ '\n\n',
+ chunkedblock('hi ', eol='\n'),
+ chunkedblock('there', eol='\n'),
+ chunkedblock('', eol='\n'),
+ ]
+ con.request('GET', '/')
+ self.assertStringEqual('hi there', con.getresponse().read())
+
+ def testChunkedDownloadPartialChunkBadEOL(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ sock = con.sock
+ sock.data = ['HTTP/1.1 200 OK\n',
+ 'Server: BogusServer 1.0\n',
+ 'transfer-encoding: chunked',
+ '\n\n',
+ chunkedblock('hi ', eol='\n'),
+ ] + list(chunkedblock('there\n' * 5, eol='\n')) + [
+ chunkedblock('', eol='\n')]
+ con.request('GET', '/')
+ self.assertStringEqual('hi there\nthere\nthere\nthere\nthere\n',
+ con.getresponse().read())
+
+ def testChunkedDownloadPartialChunk(self):
+ con = http.HTTPConnection('1.2.3.4:80')
+ con._connect()
+ sock = con.sock
+ sock.data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'transfer-encoding: chunked',
+ '\r\n\r\n',
+ chunkedblock('hi '),
+ ] + list(chunkedblock('there\n' * 5)) + [chunkedblock('')]
+ con.request('GET', '/')
+ self.assertStringEqual('hi there\nthere\nthere\nthere\nthere\n',
+ con.getresponse().read())
+# no-check-code
diff --git a/mercurial/httpclient/tests/test_proxy_support.py b/mercurial/httpclient/tests/test_proxy_support.py
new file mode 100644
index 0000000..1526a9a
--- /dev/null
+++ b/mercurial/httpclient/tests/test_proxy_support.py
@@ -0,0 +1,135 @@
+# Copyright 2010, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import unittest
+import socket
+
+import http
+
+# relative import to ease embedding the library
+import util
+
+
+def make_preloaded_socket(data):
+ """Make a socket pre-loaded with data so it can be read during connect.
+
+ Useful for https proxy tests because we have to read from the
+ socket during _connect rather than later on.
+ """
+ def s(*args, **kwargs):
+ sock = util.MockSocket(*args, **kwargs)
+ sock.early_data = data[:]
+ return sock
+ return s
+
+
+class ProxyHttpTest(util.HttpTestBase, unittest.TestCase):
+
+ def _run_simple_test(self, host, server_data, expected_req, expected_data):
+ con = http.HTTPConnection(host)
+ con._connect()
+ con.sock.data = server_data
+ con.request('GET', '/')
+
+ self.assertEqual(expected_req, con.sock.sent)
+ self.assertEqual(expected_data, con.getresponse().read())
+
+ def testSimpleRequest(self):
+ con = http.HTTPConnection('1.2.3.4:80',
+ proxy_hostport=('magicproxy', 4242))
+ con._connect()
+ con.sock.data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'MultiHeader: Value\r\n'
+ 'MultiHeader: Other Value\r\n'
+ 'MultiHeader: One More!\r\n'
+ 'Content-Length: 10\r\n',
+ '\r\n'
+ '1234567890'
+ ]
+ con.request('GET', '/')
+
+ expected_req = ('GET http://1.2.3.4/ HTTP/1.1\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n\r\n')
+
+ self.assertEqual(('127.0.0.42', 4242), con.sock.sa)
+ self.assertStringEqual(expected_req, con.sock.sent)
+ resp = con.getresponse()
+ self.assertEqual('1234567890', resp.read())
+ self.assertEqual(['Value', 'Other Value', 'One More!'],
+ resp.headers.getheaders('multiheader'))
+ self.assertEqual(['BogusServer 1.0'],
+ resp.headers.getheaders('server'))
+
+ def testSSLRequest(self):
+ con = http.HTTPConnection('1.2.3.4:443',
+ proxy_hostport=('magicproxy', 4242))
+ socket.socket = make_preloaded_socket(
+ ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Content-Length: 10\r\n',
+ '\r\n'
+ '1234567890'])
+ con._connect()
+ con.sock.data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'Content-Length: 10\r\n',
+ '\r\n'
+ '1234567890'
+ ]
+ connect_sent = con.sock.sent
+ con.sock.sent = ''
+ con.request('GET', '/')
+
+ expected_connect = ('CONNECT 1.2.3.4:443 HTTP/1.0\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n'
+ '\r\n')
+ expected_request = ('GET / HTTP/1.1\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n\r\n')
+
+ self.assertEqual(('127.0.0.42', 4242), con.sock.sa)
+ self.assertStringEqual(expected_connect, connect_sent)
+ self.assertStringEqual(expected_request, con.sock.sent)
+ resp = con.getresponse()
+ self.assertEqual(resp.status, 200)
+ self.assertEqual('1234567890', resp.read())
+ self.assertEqual(['BogusServer 1.0'],
+ resp.headers.getheaders('server'))
+
+ def testSSLProxyFailure(self):
+ con = http.HTTPConnection('1.2.3.4:443',
+ proxy_hostport=('magicproxy', 4242))
+ socket.socket = make_preloaded_socket(
+ ['HTTP/1.1 407 Proxy Authentication Required\r\n\r\n'])
+ self.assertRaises(http.HTTPProxyConnectFailedException, con._connect)
+ self.assertRaises(http.HTTPProxyConnectFailedException,
+ con.request, 'GET', '/')
+# no-check-code
diff --git a/mercurial/httpclient/tests/test_ssl.py b/mercurial/httpclient/tests/test_ssl.py
new file mode 100644
index 0000000..5799a8f
--- /dev/null
+++ b/mercurial/httpclient/tests/test_ssl.py
@@ -0,0 +1,93 @@
+# Copyright 2011, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import unittest
+
+import http
+
+# relative import to ease embedding the library
+import util
+
+
+
+class HttpSslTest(util.HttpTestBase, unittest.TestCase):
+ def testSslRereadRequired(self):
+ con = http.HTTPConnection('1.2.3.4:443')
+ con._connect()
+ # extend the list instead of assign because of how
+ # MockSSLSocket works.
+ con.sock.data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'MultiHeader: Value\r\n'
+ 'MultiHeader: Other Value\r\n'
+ 'MultiHeader: One More!\r\n'
+ 'Content-Length: 10\r\n',
+ '\r\n'
+ '1234567890'
+ ]
+ con.request('GET', '/')
+
+ expected_req = ('GET / HTTP/1.1\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'accept-encoding: identity\r\n\r\n')
+
+ self.assertEqual(('1.2.3.4', 443), con.sock.sa)
+ self.assertEqual(expected_req, con.sock.sent)
+ resp = con.getresponse()
+ self.assertEqual('1234567890', resp.read())
+ self.assertEqual(['Value', 'Other Value', 'One More!'],
+ resp.headers.getheaders('multiheader'))
+ self.assertEqual(['BogusServer 1.0'],
+ resp.headers.getheaders('server'))
+
+ def testSslRereadInEarlyResponse(self):
+ con = http.HTTPConnection('1.2.3.4:443')
+ con._connect()
+ con.sock.early_data = ['HTTP/1.1 200 OK\r\n',
+ 'Server: BogusServer 1.0\r\n',
+ 'MultiHeader: Value\r\n'
+ 'MultiHeader: Other Value\r\n'
+ 'MultiHeader: One More!\r\n'
+ 'Content-Length: 10\r\n',
+ '\r\n'
+ '1234567890'
+ ]
+
+ expected_req = self.doPost(con, False)
+ self.assertEqual(None, con.sock,
+ 'Connection should have disowned socket')
+
+ resp = con.getresponse()
+ self.assertEqual(('1.2.3.4', 443), resp.sock.sa)
+ self.assertEqual(expected_req, resp.sock.sent)
+ self.assertEqual('1234567890', resp.read())
+ self.assertEqual(['Value', 'Other Value', 'One More!'],
+ resp.headers.getheaders('multiheader'))
+ self.assertEqual(['BogusServer 1.0'],
+ resp.headers.getheaders('server'))
+# no-check-code
diff --git a/mercurial/httpclient/tests/util.py b/mercurial/httpclient/tests/util.py
new file mode 100644
index 0000000..bbc3d87
--- /dev/null
+++ b/mercurial/httpclient/tests/util.py
@@ -0,0 +1,195 @@
+# Copyright 2010, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import difflib
+import socket
+
+import http
+
+
+class MockSocket(object):
+ """Mock non-blocking socket object.
+
+ This is ONLY capable of mocking a nonblocking socket.
+
+ Attributes:
+ early_data: data to always send as soon as end of headers is seen
+ data: a list of strings to return on recv(), with the
+ assumption that the socket would block between each
+ string in the list.
+ read_wait_sentinel: data that must be written to the socket before
+ beginning the response.
+ close_on_empty: If true, close the socket when it runs out of data
+ for the client.
+ """
+ def __init__(self, af, socktype, proto):
+ self.af = af
+ self.socktype = socktype
+ self.proto = proto
+
+ self.early_data = []
+ self.data = []
+ self.remote_closed = self.closed = False
+ self.close_on_empty = False
+ self.sent = ''
+ self.read_wait_sentinel = http._END_HEADERS
+
+ def close(self):
+ self.closed = True
+
+ def connect(self, sa):
+ self.sa = sa
+
+ def setblocking(self, timeout):
+ assert timeout == 0
+
+ def recv(self, amt=-1):
+ if self.early_data:
+ datalist = self.early_data
+ elif not self.data:
+ return ''
+ else:
+ datalist = self.data
+ if amt == -1:
+ return datalist.pop(0)
+ data = datalist.pop(0)
+ if len(data) > amt:
+ datalist.insert(0, data[amt:])
+ if not self.data and not self.early_data and self.close_on_empty:
+ self.remote_closed = True
+ return data[:amt]
+
+ @property
+ def ready_for_read(self):
+ return ((self.early_data and http._END_HEADERS in self.sent)
+ or (self.read_wait_sentinel in self.sent and self.data)
+ or self.closed or self.remote_closed)
+
+ def send(self, data):
+ # this is a horrible mock, but nothing needs us to raise the
+ # correct exception yet
+ assert not self.closed, 'attempted to write to a closed socket'
+ assert not self.remote_closed, ('attempted to write to a'
+ ' socket closed by the server')
+ if len(data) > 8192:
+ data = data[:8192]
+ self.sent += data
+ return len(data)
+
+
+def mockselect(r, w, x, timeout=0):
+ """Simple mock for select()
+ """
+ readable = filter(lambda s: s.ready_for_read, r)
+ return readable, w[:], []
+
+
+class MockSSLSocket(object):
+ def __init__(self, sock):
+ self._sock = sock
+ self._fail_recv = True
+
+ def __getattr__(self, key):
+ return getattr(self._sock, key)
+
+ def __setattr__(self, key, value):
+ if key not in ('_sock', '_fail_recv'):
+ return setattr(self._sock, key, value)
+ return object.__setattr__(self, key, value)
+
+ def recv(self, amt=-1):
+ try:
+ if self._fail_recv:
+ raise socket.sslerror(socket.SSL_ERROR_WANT_READ)
+ return self._sock.recv(amt=amt)
+ finally:
+ self._fail_recv = not self._fail_recv
+
+
+def mocksslwrap(sock, keyfile=None, certfile=None,
+ server_side=False, cert_reqs=http.socketutil.CERT_NONE,
+ ssl_version=None, ca_certs=None,
+ do_handshake_on_connect=True,
+ suppress_ragged_eofs=True):
+ return MockSSLSocket(sock)
+
+
+def mockgetaddrinfo(host, port, unused, streamtype):
+ assert unused == 0
+ assert streamtype == socket.SOCK_STREAM
+ if host.count('.') != 3:
+ host = '127.0.0.42'
+ return [(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP, '',
+ (host, port))]
+
+
+class HttpTestBase(object):
+ def setUp(self):
+ self.orig_socket = socket.socket
+ socket.socket = MockSocket
+
+ self.orig_getaddrinfo = socket.getaddrinfo
+ socket.getaddrinfo = mockgetaddrinfo
+
+ self.orig_select = http.select.select
+ http.select.select = mockselect
+
+ self.orig_sslwrap = http.socketutil.wrap_socket
+ http.socketutil.wrap_socket = mocksslwrap
+
+ def tearDown(self):
+ socket.socket = self.orig_socket
+ http.select.select = self.orig_select
+ http.socketutil.wrap_socket = self.orig_sslwrap
+ socket.getaddrinfo = self.orig_getaddrinfo
+
+ def assertStringEqual(self, l, r):
+ try:
+ self.assertEqual(l, r, ('failed string equality check, '
+ 'see stdout for details'))
+ except:
+ add_nl = lambda li: map(lambda x: x + '\n', li)
+ print 'failed expectation:'
+ print ''.join(difflib.unified_diff(
+ add_nl(l.splitlines()), add_nl(r.splitlines()),
+ fromfile='expected', tofile='got'))
+ raise
+
+ def doPost(self, con, expect_body, body_to_send='This is some POST data'):
+ con.request('POST', '/', body=body_to_send,
+ expect_continue=True)
+ expected_req = ('POST / HTTP/1.1\r\n'
+ 'Host: 1.2.3.4\r\n'
+ 'content-length: %d\r\n'
+ 'Expect: 100-Continue\r\n'
+ 'accept-encoding: identity\r\n\r\n' %
+ len(body_to_send))
+ if expect_body:
+ expected_req += body_to_send
+ return expected_req
+# no-check-code
diff --git a/mercurial/httpconnection.py b/mercurial/httpconnection.py
index ce316d9..91745b9 100644
--- a/mercurial/httpconnection.py
+++ b/mercurial/httpconnection.py
@@ -38,7 +38,7 @@ class httpsendfile(object):
self.write = self._data.write
self.length = os.fstat(self._data.fileno()).st_size
self._pos = 0
- self._total = self.length // 1024 * 2
+ self._total = self.length / 1024 * 2
def read(self, *args, **kwargs):
try:
@@ -51,7 +51,7 @@ class httpsendfile(object):
# requires authentication. Since we can't know until we try
# once whether authentication will be required, just lie to
# the user and maybe the push succeeds suddenly at 50%.
- self.ui.progress(_('sending'), self._pos // 1024,
+ self.ui.progress(_('sending'), self._pos / 1024,
unit=_('kb'), total=self._total)
return ret
@@ -70,11 +70,7 @@ def readauthforuri(ui, uri, user):
gdict[setting] = val
# Find the best match
- if '://' in uri:
- scheme, hostpath = uri.split('://', 1)
- else:
- # py2.4.1 doesn't provide the full URI
- scheme, hostpath = 'http', uri
+ scheme, hostpath = uri.split('://', 1)
bestuser = None
bestlen = 0
bestauth = None
diff --git a/mercurial/httppeer.py b/mercurial/httprepo.py
index 9b84d32..d5fd03f 100644
--- a/mercurial/httppeer.py
+++ b/mercurial/httprepo.py
@@ -1,4 +1,4 @@
-# httppeer.py - HTTP repository proxy classes for mercurial
+# httprepo.py - HTTP repository proxy classes for mercurial
#
# Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
# Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>
@@ -23,12 +23,11 @@ def zgenerator(f):
raise IOError(None, _('connection ended unexpectedly'))
yield zd.flush()
-class httppeer(wireproto.wirepeer):
+class httprepository(wireproto.wirerepository):
def __init__(self, ui, path):
self.path = path
self.caps = None
self.handler = None
- self.urlopener = None
u = util.url(path)
if u.query or u.fragment:
raise util.Abort(_('unsupported URL component: "%s"') %
@@ -43,10 +42,10 @@ class httppeer(wireproto.wirepeer):
self.urlopener = url.opener(ui, authinfo)
def __del__(self):
- if self.urlopener:
- for h in self.urlopener.handlers:
- h.close()
- getattr(h, "close_all", lambda : None)()
+ for h in self.urlopener.handlers:
+ h.close()
+ if hasattr(h, "close_all"):
+ h.close_all()
def url(self):
return self.path
@@ -56,7 +55,7 @@ class httppeer(wireproto.wirepeer):
def _fetchcaps(self):
self.caps = set(self._call('capabilities').split())
- def _capabilities(self):
+ def get_caps(self):
if self.caps is None:
try:
self._fetchcaps()
@@ -66,6 +65,8 @@ class httppeer(wireproto.wirepeer):
(' '.join(self.caps or ['none'])))
return self.caps
+ capabilities = property(get_caps)
+
def lock(self):
raise util.Abort(_('operation not supported over http'))
@@ -79,9 +80,6 @@ class httppeer(wireproto.wirepeer):
elif data is not None:
size = len(data)
headers = args.pop('headers', {})
- if data is not None and 'Content-Type' not in headers:
- headers['Content-Type'] = 'application/mercurial-0.1'
-
if size and self.ui.configbool('ui', 'usehttp2', False):
headers['Expect'] = '100-Continue'
@@ -141,8 +139,6 @@ class httppeer(wireproto.wirepeer):
proto = resp.headers.get('content-type', '')
safeurl = util.hidepassword(self._url)
- if proto.startswith('application/hg-error'):
- raise error.OutOfBandError(resp.read())
# accept old "text/plain" and "application/hg-changegroup" for now
if not (proto.startswith('application/mercurial-') or
proto.startswith('text/plain') or
@@ -216,21 +212,21 @@ class httppeer(wireproto.wirepeer):
def _decompress(self, stream):
return util.chunkbuffer(zgenerator(stream))
-class httpspeer(httppeer):
+class httpsrepository(httprepository):
def __init__(self, ui, path):
if not url.has_https:
raise util.Abort(_('Python support for SSL and HTTPS '
'is not installed'))
- httppeer.__init__(self, ui, path)
+ httprepository.__init__(self, ui, path)
def instance(ui, path, create):
if create:
raise util.Abort(_('cannot create new http repository'))
try:
if path.startswith('https:'):
- inst = httpspeer(ui, path)
+ inst = httpsrepository(ui, path)
else:
- inst = httppeer(ui, path)
+ inst = httprepository(ui, path)
try:
# Try to do useful work when checking compatibility.
# Usually saves a roundtrip since we want the caps anyway.
diff --git a/mercurial/i18n.py b/mercurial/i18n.py
index b06a02e..f6370e0 100644
--- a/mercurial/i18n.py
+++ b/mercurial/i18n.py
@@ -9,7 +9,7 @@ import encoding
import gettext, sys, os
# modelled after templater.templatepath:
-if getattr(sys, 'frozen', None) is not None:
+if hasattr(sys, 'frozen'):
module = sys.executable
else:
module = __file__
@@ -61,3 +61,4 @@ if _plain():
_ = lambda message: message
else:
_ = gettext
+
diff --git a/mercurial/ignore.py b/mercurial/ignore.py
index 9c2e9cf..c43cd05 100644
--- a/mercurial/ignore.py
+++ b/mercurial/ignore.py
@@ -78,7 +78,6 @@ def ignore(root, files, warn):
pats[f] = []
fp = open(f)
pats[f], warnings = ignorepats(fp)
- fp.close()
for warning in warnings:
warn("%s: %s\n" % (f, warning))
except IOError, inst:
diff --git a/mercurial/keepalive.py b/mercurial/keepalive.py
index 13243ba..205a9e6 100644
--- a/mercurial/keepalive.py
+++ b/mercurial/keepalive.py
@@ -9,8 +9,10 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, see
-# <http://www.gnu.org/licenses/>.
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330,
+# Boston, MA 02111-1307 USA
# This file is part of urlgrabber, a high-level cross-protocol url-grabber
# Copyright 2002-2004 Michael D. Stenner, Ryan Tomayko
@@ -136,7 +138,7 @@ class ConnectionManager(object):
def add(self, host, connection, ready):
self._lock.acquire()
try:
- if host not in self._hostmap:
+ if not host in self._hostmap:
self._hostmap[host] = []
self._hostmap[host].append(connection)
self._connmap[connection] = host
@@ -211,7 +213,7 @@ class KeepAliveHandler(object):
h.close()
def _request_closed(self, request, host, connection):
- """tells us that this request is now closed and that the
+ """tells us that this request is now closed and the the
connection is ready for another request"""
self._cm.set_ready(connection, 1)
@@ -290,7 +292,7 @@ class KeepAliveHandler(object):
# worked. We'll check the version below, too.
except (socket.error, httplib.HTTPException):
r = None
- except: # re-raises
+ except:
# adding this block just in case we've missed
# something we will still raise the exception, but
# lets try and close the connection and remove it
@@ -534,7 +536,7 @@ def safesend(self, str):
if self.auto_open:
self.connect()
else:
- raise httplib.NotConnected
+ raise httplib.NotConnected()
# send the data to the server. if we get a broken pipe, then close
# the socket. we want to reconnect when somebody tries to send again.
@@ -545,14 +547,13 @@ def safesend(self, str):
print "send:", repr(str)
try:
blocksize = 8192
- read = getattr(str, 'read', None)
- if read is not None:
+ if hasattr(str,'read') :
if self.debuglevel > 0:
print "sendIng a read()able"
- data = read(blocksize)
+ data = str.read(blocksize)
while data:
self.sock.sendall(data)
- data = read(blocksize)
+ data = str.read(blocksize)
else:
self.sock.sendall(str)
except socket.error, v:
@@ -758,7 +759,7 @@ if __name__ == '__main__':
try:
N = int(sys.argv[1])
url = sys.argv[2]
- except (IndexError, ValueError):
+ except:
print "%s <integer> <url>" % sys.argv[0]
else:
test(url, N)
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
index 89c1edd..6c1f6b7 100644
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -4,168 +4,72 @@
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
+
from node import bin, hex, nullid, nullrev, short
from i18n import _
-import peer, changegroup, subrepo, discovery, pushkey, obsolete
-import changelog, dirstate, filelog, manifest, context, bookmarks, phases
-import lock, transaction, store, encoding, base85
-import scmutil, util, extensions, hook, error, revset
+import repo, changegroup, subrepo, discovery, pushkey
+import changelog, dirstate, filelog, manifest, context, bookmarks
+import lock, transaction, store, encoding
+import scmutil, util, extensions, hook, error
import match as matchmod
import merge as mergemod
import tags as tagsmod
from lock import release
import weakref, errno, os, time, inspect
propertycache = util.propertycache
-filecache = scmutil.filecache
-
-class storecache(filecache):
- """filecache for files in the store"""
- def join(self, obj, fname):
- return obj.sjoin(fname)
-
-MODERNCAPS = set(('lookup', 'branchmap', 'pushkey', 'known', 'getbundle'))
-LEGACYCAPS = MODERNCAPS.union(set(['changegroupsubset']))
-
-class localpeer(peer.peerrepository):
- '''peer for a local repo; reflects only the most recent API'''
-
- def __init__(self, repo, caps=MODERNCAPS):
- peer.peerrepository.__init__(self)
- self._repo = repo
- self.ui = repo.ui
- self._caps = repo._restrictcapabilities(caps)
- self.requirements = repo.requirements
- self.supportedformats = repo.supportedformats
-
- def close(self):
- self._repo.close()
-
- def _capabilities(self):
- return self._caps
-
- def local(self):
- return self._repo
-
- def canpush(self):
- return True
-
- def url(self):
- return self._repo.url()
-
- def lookup(self, key):
- return self._repo.lookup(key)
-
- def branchmap(self):
- return discovery.visiblebranchmap(self._repo)
-
- def heads(self):
- return discovery.visibleheads(self._repo)
-
- def known(self, nodes):
- return self._repo.known(nodes)
-
- def getbundle(self, source, heads=None, common=None):
- return self._repo.getbundle(source, heads=heads, common=common)
-
- # TODO We might want to move the next two calls into legacypeer and add
- # unbundle instead.
-
- def lock(self):
- return self._repo.lock()
-
- def addchangegroup(self, cg, source, url):
- return self._repo.addchangegroup(cg, source, url)
-
- def pushkey(self, namespace, key, old, new):
- return self._repo.pushkey(namespace, key, old, new)
-
- def listkeys(self, namespace):
- return self._repo.listkeys(namespace)
-
- def debugwireargs(self, one, two, three=None, four=None, five=None):
- '''used to test argument passing over the wire'''
- return "%s %s %s %s %s" % (one, two, three, four, five)
-
-class locallegacypeer(localpeer):
- '''peer extension which implements legacy methods too; used for tests with
- restricted capabilities'''
-
- def __init__(self, repo):
- localpeer.__init__(self, repo, caps=LEGACYCAPS)
-
- def branches(self, nodes):
- return self._repo.branches(nodes)
-
- def between(self, pairs):
- return self._repo.between(pairs)
-
- def changegroup(self, basenodes, source):
- return self._repo.changegroup(basenodes, source)
-
- def changegroupsubset(self, bases, heads, source):
- return self._repo.changegroupsubset(bases, heads, source)
-
-class localrepository(object):
+class localrepository(repo.repository):
+ capabilities = set(('lookup', 'changegroupsubset', 'branchmap', 'pushkey',
+ 'known', 'getbundle'))
supportedformats = set(('revlogv1', 'generaldelta'))
supported = supportedformats | set(('store', 'fncache', 'shared',
'dotencode'))
- openerreqs = set(('revlogv1', 'generaldelta'))
- requirements = ['revlogv1']
-
- def _baserequirements(self, create):
- return self.requirements[:]
def __init__(self, baseui, path=None, create=False):
- self.wopener = scmutil.opener(path, expand=True)
- self.wvfs = self.wopener
- self.root = self.wvfs.base
- self.path = self.wvfs.join(".hg")
+ repo.repository.__init__(self)
+ self.root = os.path.realpath(util.expandpath(path))
+ self.path = os.path.join(self.root, ".hg")
self.origroot = path
self.auditor = scmutil.pathauditor(self.root, self._checknested)
self.opener = scmutil.opener(self.path)
- self.vfs = self.opener
+ self.wopener = scmutil.opener(self.root)
self.baseui = baseui
self.ui = baseui.copy()
- # A list of callback to shape the phase if no data were found.
- # Callback are in the form: func(repo, roots) --> processed root.
- # This list it to be filled by extension during repo setup
- self._phasedefaults = []
+
try:
self.ui.readconfig(self.join("hgrc"), self.root)
extensions.loadall(self.ui)
except IOError:
pass
- if not self.vfs.isdir():
+ if not os.path.isdir(self.path):
if create:
- if not self.wvfs.exists():
- self.wvfs.makedirs()
- self.vfs.makedir(notindexed=True)
- requirements = self._baserequirements(create)
+ if not os.path.exists(path):
+ util.makedirs(path)
+ util.makedir(self.path, notindexed=True)
+ requirements = ["revlogv1"]
if self.ui.configbool('format', 'usestore', True):
- self.vfs.mkdir("store")
+ os.mkdir(os.path.join(self.path, "store"))
requirements.append("store")
if self.ui.configbool('format', 'usefncache', True):
requirements.append("fncache")
if self.ui.configbool('format', 'dotencode', True):
requirements.append('dotencode')
# create an invalid changelog
- self.vfs.append(
+ self.opener.append(
"00changelog.i",
'\0\0\0\2' # represents revlogv2
' dummy changelog to prevent using the old repo layout'
)
if self.ui.configbool('format', 'generaldelta', False):
requirements.append("generaldelta")
- requirements = set(requirements)
else:
raise error.RepoError(_("repository %s not found") % path)
elif create:
raise error.RepoError(_("repository %s already exists") % path)
else:
try:
- requirements = scmutil.readrequires(self.vfs, self.supported)
+ requirements = scmutil.readrequires(self.opener, self.supported)
except IOError, inst:
if inst.errno != errno.ENOENT:
raise
@@ -173,7 +77,7 @@ class localrepository(object):
self.sharedpath = self.path
try:
- s = os.path.realpath(self.opener.read("sharedpath").rstrip('\n'))
+ s = os.path.realpath(self.opener.read("sharedpath"))
if not os.path.exists(s):
raise error.RepoError(
_('.hg/sharedpath points to nonexistent directory %s') % s)
@@ -185,36 +89,32 @@ class localrepository(object):
self.store = store.store(requirements, self.sharedpath, scmutil.opener)
self.spath = self.store.path
self.sopener = self.store.opener
- self.svfs = self.sopener
self.sjoin = self.store.join
self.opener.createmode = self.store.createmode
self._applyrequirements(requirements)
if create:
self._writerequirements()
+ # These two define the set of tags for this repository. _tags
+ # maps tag name to node; _tagtypes maps tag name to 'global' or
+ # 'local'. (Global tags are defined by .hgtags across all
+ # heads, and local tags are defined in .hg/localtags.) They
+ # constitute the in-memory cache of tags.
+ self._tags = None
+ self._tagtypes = None
self._branchcache = None
self._branchcachetip = None
+ self.nodetagscache = None
self.filterpats = {}
self._datafilters = {}
self._transref = self._lockref = self._wlockref = None
- # A cache for various files under .hg/ that tracks file changes,
- # (used by the filecache decorator)
- #
- # Maps a property name to its util.filecacheentry
- self._filecache = {}
-
- def close(self):
- pass
-
- def _restrictcapabilities(self, caps):
- return caps
-
def _applyrequirements(self, requirements):
self.requirements = requirements
+ openerreqs = set(('revlogv1', 'generaldelta'))
self.sopener.options = dict((r, 1) for r in requirements
- if r in self.openerreqs)
+ if r in openerreqs)
def _writerequirements(self):
reqfile = self.opener("requires", "w")
@@ -227,7 +127,6 @@ class localrepository(object):
if not path.startswith(self.root):
return False
subpath = path[len(self.root) + 1:]
- normsubpath = util.pconvert(subpath)
# XXX: Checking against the current working copy is wrong in
# the sense that it can reject things like
@@ -249,9 +148,9 @@ class localrepository(object):
ctx = self[None]
parts = util.splitpath(subpath)
while parts:
- prefix = '/'.join(parts)
+ prefix = os.sep.join(parts)
if prefix in ctx.substate:
- if prefix == normsubpath:
+ if prefix == subpath:
return True
else:
sub = ctx.sub(prefix)
@@ -260,61 +159,15 @@ class localrepository(object):
parts.pop()
return False
- def peer(self):
- return localpeer(self) # not cached to avoid reference cycle
-
- @filecache('bookmarks')
+ @util.propertycache
def _bookmarks(self):
return bookmarks.read(self)
- @filecache('bookmarks.current')
+ @util.propertycache
def _bookmarkcurrent(self):
return bookmarks.readcurrent(self)
- def _writebookmarks(self, marks):
- bookmarks.write(self)
-
- def bookmarkheads(self, bookmark):
- name = bookmark.split('@', 1)[0]
- heads = []
- for mark, n in self._bookmarks.iteritems():
- if mark.split('@', 1)[0] == name:
- heads.append(n)
- return heads
-
- @storecache('phaseroots')
- def _phasecache(self):
- return phases.phasecache(self, self._phasedefaults)
-
- @storecache('obsstore')
- def obsstore(self):
- store = obsolete.obsstore(self.sopener)
- if store and not obsolete._enabled:
- # message is rare enough to not be translated
- msg = 'obsolete feature not enabled but %i markers found!\n'
- self.ui.warn(msg % len(list(store)))
- return store
-
@propertycache
- def hiddenrevs(self):
- """hiddenrevs: revs that should be hidden by command and tools
-
- This set is carried on the repo to ease initialisation and lazy
- loading it'll probably move back to changelog for efficienty and
- consistency reason
-
- Note that the hiddenrevs will needs invalidations when
- - a new changesets is added (possible unstable above extinct)
- - a new obsolete marker is added (possible new extinct changeset)
- """
- hidden = set()
- if self.obsstore:
- ### hide extinct changeset that are not accessible by any mean
- hiddenquery = 'extinct() - ::(. + bookmark() + tagged())'
- hidden.update(self.revs(hiddenquery))
- return hidden
-
- @storecache('00changelog.i')
def changelog(self):
c = changelog.changelog(self.sopener)
if 'HG_PENDING' in os.environ:
@@ -323,11 +176,11 @@ class localrepository(object):
c.readpending('00changelog.i.a')
return c
- @storecache('00manifest.i')
+ @propertycache
def manifest(self):
return manifest.manifest(self.sopener)
- @filecache('dirstate')
+ @propertycache
def dirstate(self):
warned = [0]
def validate(node):
@@ -364,20 +217,6 @@ class localrepository(object):
for i in xrange(len(self)):
yield i
- def revs(self, expr, *args):
- '''Return a list of revisions matching the given revset'''
- expr = revset.formatspec(expr, *args)
- m = revset.match(None, expr)
- return [r for r in m(self, range(len(self)))]
-
- def set(self, expr, *args):
- '''
- Yield a context for each matching revision, after doing arg
- replacement via revset.formatspec
- '''
- for r in self.revs(expr, *args):
- yield self[r]
-
def url(self):
return 'file:' + self.root
@@ -410,9 +249,8 @@ class localrepository(object):
fp.write('\n')
for name in names:
m = munge and munge(name) or name
- if (self._tagscache.tagtypes and
- name in self._tagscache.tagtypes):
- old = self.tags().get(name, nullid)
+ if self._tagtypes and name in self._tagtypes:
+ old = self._tags.get(name, nullid)
fp.write('%s %s\n' % (hex(old), m))
fp.write('%s %s\n' % (hex(node), m))
fp.close()
@@ -446,8 +284,6 @@ class localrepository(object):
fp.close()
- self.invalidatecaches()
-
if '.hgtags' not in self.dirstate:
self[None].add(['.hgtags'])
@@ -489,40 +325,12 @@ class localrepository(object):
self.tags() # instantiate the cache
self._tag(names, node, message, local, user, date)
- @propertycache
- def _tagscache(self):
- '''Returns a tagscache object that contains various tags related
- caches.'''
-
- # This simplifies its cache management by having one decorated
- # function (this one) and the rest simply fetch things from it.
- class tagscache(object):
- def __init__(self):
- # These two define the set of tags for this repository. tags
- # maps tag name to node; tagtypes maps tag name to 'global' or
- # 'local'. (Global tags are defined by .hgtags across all
- # heads, and local tags are defined in .hg/localtags.)
- # They constitute the in-memory cache of tags.
- self.tags = self.tagtypes = None
-
- self.nodetagscache = self.tagslist = None
-
- cache = tagscache()
- cache.tags, cache.tagtypes = self._findtags()
-
- return cache
-
def tags(self):
'''return a mapping of tag to node'''
- t = {}
- for k, v in self._tagscache.tags.iteritems():
- try:
- # ignore tags to unknown nodes
- self.changelog.rev(v)
- t[k] = v
- except (error.LookupError, ValueError):
- pass
- return t
+ if self._tags is None:
+ (self._tags, self._tagtypes) = self._findtags()
+
+ return self._tags
def _findtags(self):
'''Do the hard work of finding tags. Return a pair of dicts
@@ -551,7 +359,12 @@ class localrepository(object):
tags = {}
for (name, (node, hist)) in alltags.iteritems():
if node != nullid:
- tags[encoding.tolocal(name)] = node
+ try:
+ # ignore tags to unknown nodes
+ self.changelog.lookup(node)
+ tags[encoding.tolocal(name)] = node
+ except error.LookupError:
+ pass
tags['tip'] = self.changelog.tip()
tagtypes = dict([(encoding.tolocal(name), value)
for (name, value) in tagtypes.iteritems()])
@@ -566,29 +379,27 @@ class localrepository(object):
None : tag does not exist
'''
- return self._tagscache.tagtypes.get(tagname)
+ self.tags()
+
+ return self._tagtypes.get(tagname)
def tagslist(self):
'''return a list of tags ordered by revision'''
- if not self._tagscache.tagslist:
- l = []
- for t, n in self.tags().iteritems():
- r = self.changelog.rev(n)
- l.append((r, t, n))
- self._tagscache.tagslist = [(t, n) for r, t, n in sorted(l)]
-
- return self._tagscache.tagslist
+ l = []
+ for t, n in self.tags().iteritems():
+ r = self.changelog.rev(n)
+ l.append((r, t, n))
+ return [(t, n) for r, t, n in sorted(l)]
def nodetags(self, node):
'''return the tags associated with a node'''
- if not self._tagscache.nodetagscache:
- nodetagscache = {}
- for t, n in self._tagscache.tags.iteritems():
- nodetagscache.setdefault(n, []).append(t)
- for tags in nodetagscache.itervalues():
+ if not self.nodetagscache:
+ self.nodetagscache = {}
+ for t, n in self.tags().iteritems():
+ self.nodetagscache.setdefault(n, []).append(t)
+ for tags in self.nodetagscache.itervalues():
tags.sort()
- self._tagscache.nodetagscache = nodetagscache
- return self._tagscache.nodetagscache.get(node, [])
+ return self.nodetagscache.get(node, [])
def nodebookmarks(self, node):
marks = []
@@ -610,7 +421,7 @@ class localrepository(object):
def updatebranchcache(self):
tip = self.changelog.tip()
if self._branchcache is not None and self._branchcachetip == tip:
- return
+ return self._branchcache
oldtip = self._branchcachetip
self._branchcachetip = tip
@@ -621,7 +432,7 @@ class localrepository(object):
partial = self._branchcache
self._branchtags(partial, lrev)
- # this private cache holds all heads (not just the branch tips)
+ # this private cache holds all heads (not just tips)
self._branchcache = partial
def branchmap(self):
@@ -629,27 +440,17 @@ class localrepository(object):
self.updatebranchcache()
return self._branchcache
- def _branchtip(self, heads):
- '''return the tipmost branch head in heads'''
- tip = heads[-1]
- for h in reversed(heads):
- if not self[h].closesbranch():
- tip = h
- break
- return tip
-
- def branchtip(self, branch):
- '''return the tip node for a given branch'''
- if branch not in self.branchmap():
- raise error.RepoLookupError(_("unknown branch '%s'") % branch)
- return self._branchtip(self.branchmap()[branch])
-
def branchtags(self):
'''return a dict where branch names map to the tipmost head of
the branch, open heads come before closed'''
bt = {}
for bn, heads in self.branchmap().iteritems():
- bt[bn] = self._branchtip(heads)
+ tip = heads[-1]
+ for h in reversed(heads):
+ if 'close' not in self.changelog.read(h)[5]:
+ tip = h
+ break
+ bt[bn] = tip
return bt
def _readbranchcache(self):
@@ -672,9 +473,6 @@ class localrepository(object):
continue
node, label = l.split(" ", 1)
label = encoding.tolocal(label.strip())
- if not node in self:
- raise ValueError('invalidating branch cache because node '+
- '%s does not exist' % node)
partial.setdefault(label, []).append(bin(node))
except KeyboardInterrupt:
raise
@@ -691,15 +489,11 @@ class localrepository(object):
for label, nodes in branches.iteritems():
for node in nodes:
f.write("%s %s\n" % (hex(node), encoding.fromlocal(label)))
- f.close()
+ f.rename()
except (IOError, OSError):
pass
def _updatebranchcache(self, partial, ctxgen):
- """Given a branchhead cache, partial, that may have extra nodes or be
- missing heads, and a generator of nodes that are at least a superset of
- heads missing, this function updates partial to be correct.
- """
# collect new branch entries
newbranches = {}
for c in ctxgen:
@@ -709,54 +503,54 @@ class localrepository(object):
# 1 (branch a) -> 2 (branch b) -> 3 (branch a)
for branch, newnodes in newbranches.iteritems():
bheads = partial.setdefault(branch, [])
- # Remove candidate heads that no longer are in the repo (e.g., as
- # the result of a strip that just happened). Avoid using 'node in
- # self' here because that dives down into branchcache code somewhat
- # recrusively.
- bheadrevs = [self.changelog.rev(node) for node in bheads
- if self.changelog.hasnode(node)]
- newheadrevs = [self.changelog.rev(node) for node in newnodes
- if self.changelog.hasnode(node)]
- ctxisnew = bheadrevs and min(newheadrevs) > max(bheadrevs)
- # Remove duplicates - nodes that are in newheadrevs and are already
- # in bheadrevs. This can happen if you strip a node whose parent
- # was already a head (because they're on different branches).
- bheadrevs = sorted(set(bheadrevs).union(newheadrevs))
-
- # Starting from tip means fewer passes over reachable. If we know
- # the new candidates are not ancestors of existing heads, we don't
- # have to examine ancestors of existing heads
- if ctxisnew:
- iterrevs = sorted(newheadrevs)
- else:
- iterrevs = list(bheadrevs)
-
- # This loop prunes out two kinds of heads - heads that are
- # superceded by a head in newheadrevs, and newheadrevs that are not
- # heads because an existing head is their descendant.
- while iterrevs:
- latest = iterrevs.pop()
- if latest not in bheadrevs:
+ bheads.extend(newnodes)
+ if len(bheads) <= 1:
+ continue
+ bheads = sorted(bheads, key=lambda x: self[x].rev())
+ # starting from tip means fewer passes over reachable
+ while newnodes:
+ latest = newnodes.pop()
+ if latest not in bheads:
continue
- ancestors = set(self.changelog.ancestors([latest],
- bheadrevs[0]))
- if ancestors:
- bheadrevs = [b for b in bheadrevs if b not in ancestors]
- partial[branch] = [self.changelog.node(rev) for rev in bheadrevs]
-
- # There may be branches that cease to exist when the last commit in the
- # branch was stripped. This code filters them out. Note that the
- # branch that ceased to exist may not be in newbranches because
- # newbranches is the set of candidate heads, which when you strip the
- # last commit in a branch will be the parent branch.
- for branch in partial.keys():
- nodes = [head for head in partial[branch]
- if self.changelog.hasnode(head)]
- if not nodes:
- del partial[branch]
+ minbhrev = self[bheads[0]].node()
+ reachable = self.changelog.reachable(latest, minbhrev)
+ reachable.remove(latest)
+ if reachable:
+ bheads = [b for b in bheads if b not in reachable]
+ partial[branch] = bheads
def lookup(self, key):
- return self[key].node()
+ if isinstance(key, int):
+ return self.changelog.node(key)
+ elif key == '.':
+ return self.dirstate.p1()
+ elif key == 'null':
+ return nullid
+ elif key == 'tip':
+ return self.changelog.tip()
+ n = self.changelog._match(key)
+ if n:
+ return n
+ if key in self._bookmarks:
+ return self._bookmarks[key]
+ if key in self.tags():
+ return self.tags()[key]
+ if key in self.branchtags():
+ return self.branchtags()[key]
+ n = self.changelog._partialmatch(key)
+ if n:
+ return n
+
+ # can't find key, check if it might have come from damaged dirstate
+ if key in self.dirstate.parents():
+ raise error.Abort(_("working directory has unknown parent '%s'!")
+ % short(key))
+ try:
+ if len(key) == 20:
+ key = hex(key)
+ except TypeError:
+ pass
+ raise error.RepoLookupError(_("unknown revision '%s'") % key)
def lookupbranch(self, key, remote=None):
repo = remote or self
@@ -768,20 +562,11 @@ class localrepository(object):
def known(self, nodes):
nm = self.changelog.nodemap
- pc = self._phasecache
- result = []
- for n in nodes:
- r = nm.get(n)
- resp = not (r is None or pc.phase(self, r) >= phases.secret)
- result.append(resp)
- return result
+ return [(n in nm) for n in nodes]
def local(self):
return self
- def cancopy(self):
- return self.local() # so statichttprepo's override of local() works
-
def join(self, f):
return os.path.join(self.path, f)
@@ -800,17 +585,6 @@ class localrepository(object):
'''get list of changectxs for parents of changeid'''
return self[changeid].parents()
- def setparents(self, p1, p2=nullid):
- copies = self.dirstate.setparents(p1, p2)
- if copies:
- # Adjust copy records, the dirstate cannot do it, it
- # requires access to parents manifests. Preserve them
- # only for entries added to first parent.
- pctx = self[p1]
- for f in copies:
- if f not in pctx and copies[f] in pctx:
- self.dirstate.copy(copies[f], f)
-
def filectx(self, path, changeid=None, fileid=None):
"""changeid can be a changeset revision, node, or tag.
fileid can be a file revision or node."""
@@ -901,8 +675,8 @@ class localrepository(object):
raise error.RepoError(
_("abandoned transaction found - run hg recover"))
- self._writejournal(desc)
- renames = [(x, undoname(x)) for x in self._journalfiles()]
+ journalfiles = self._writejournal(desc)
+ renames = [(x, undoname(x)) for x in journalfiles]
tr = transaction.transaction(self.ui.warn, self.sopener,
self.sjoin("journal"),
@@ -911,26 +685,27 @@ class localrepository(object):
self._transref = weakref.ref(tr)
return tr
- def _journalfiles(self):
- return (self.sjoin('journal'), self.join('journal.dirstate'),
- self.join('journal.branch'), self.join('journal.desc'),
- self.join('journal.bookmarks'),
- self.sjoin('journal.phaseroots'))
-
- def undofiles(self):
- return [undoname(x) for x in self._journalfiles()]
-
def _writejournal(self, desc):
- self.opener.write("journal.dirstate",
- self.opener.tryread("dirstate"))
+ # save dirstate for rollback
+ try:
+ ds = self.opener.read("dirstate")
+ except IOError:
+ ds = ""
+ self.opener.write("journal.dirstate", ds)
self.opener.write("journal.branch",
encoding.fromlocal(self.dirstate.branch()))
self.opener.write("journal.desc",
"%d\n%s\n" % (len(self), desc))
- self.opener.write("journal.bookmarks",
- self.opener.tryread("bookmarks"))
- self.sopener.write("journal.phaseroots",
- self.sopener.tryread("phaseroots"))
+
+ bkname = self.join('bookmarks')
+ if os.path.exists(bkname):
+ util.copyfile(bkname, self.join('journal.bookmarks'))
+ else:
+ self.opener.write('journal.bookmarks', '')
+
+ return (self.sjoin('journal'), self.join('journal.dirstate'),
+ self.join('journal.branch'), self.join('journal.desc'),
+ self.join('journal.bookmarks'))
def recover(self):
lock = self.lock()
@@ -947,127 +722,67 @@ class localrepository(object):
finally:
lock.release()
- def rollback(self, dryrun=False, force=False):
+ def rollback(self, dryrun=False):
wlock = lock = None
try:
wlock = self.wlock()
lock = self.lock()
if os.path.exists(self.sjoin("undo")):
- return self._rollback(dryrun, force)
+ try:
+ args = self.opener.read("undo.desc").splitlines()
+ if len(args) >= 3 and self.ui.verbose:
+ 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 = _("repository tip rolled back to revision %s"
+ " (undo %s)\n") % (
+ int(args[0]) - 1, args[1])
+ except IOError:
+ desc = _("rolling back unknown transaction\n")
+ self.ui.status(desc)
+ if dryrun:
+ return
+ transaction.rollback(self.sopener, self.sjoin("undo"),
+ self.ui.warn)
+ util.rename(self.join("undo.dirstate"), self.join("dirstate"))
+ if os.path.exists(self.join('undo.bookmarks')):
+ util.rename(self.join('undo.bookmarks'),
+ self.join('bookmarks'))
+ try:
+ branch = self.opener.read("undo.branch")
+ self.dirstate.setbranch(branch)
+ except IOError:
+ self.ui.warn(_("named branch could not be reset, "
+ "current branch is still: %s\n")
+ % self.dirstate.branch())
+ 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
finally:
release(lock, wlock)
- def _rollback(self, dryrun, force):
- ui = self.ui
- try:
- args = self.opener.read('undo.desc').splitlines()
- (oldlen, desc, detail) = (int(args[0]), args[1], None)
- if len(args) >= 3:
- detail = args[2]
- oldtip = oldlen - 1
-
- if detail and ui.verbose:
- msg = (_('repository tip rolled back to revision %s'
- ' (undo %s: %s)\n')
- % (oldtip, desc, detail))
- else:
- msg = (_('repository tip rolled back to revision %s'
- ' (undo %s)\n')
- % (oldtip, desc))
- except IOError:
- msg = _('rolling back unknown transaction\n')
- desc = None
-
- if not force and self['.'] != self['tip'] and desc == 'commit':
- raise util.Abort(
- _('rollback of last commit while not checked out '
- 'may lose data'), hint=_('use -f to force'))
-
- ui.status(msg)
- if dryrun:
- return 0
-
- parents = self.dirstate.parents()
- transaction.rollback(self.sopener, self.sjoin('undo'), ui.warn)
- if os.path.exists(self.join('undo.bookmarks')):
- util.rename(self.join('undo.bookmarks'),
- self.join('bookmarks'))
- if os.path.exists(self.sjoin('undo.phaseroots')):
- util.rename(self.sjoin('undo.phaseroots'),
- self.sjoin('phaseroots'))
- self.invalidate()
-
- # Discard all cache entries to force reloading everything.
- self._filecache.clear()
-
- parentgone = (parents[0] not in self.changelog.nodemap or
- parents[1] not in self.changelog.nodemap)
- if parentgone:
- util.rename(self.join('undo.dirstate'), self.join('dirstate'))
- try:
- branch = self.opener.read('undo.branch')
- self.dirstate.setbranch(branch)
- except IOError:
- ui.warn(_('named branch could not be reset: '
- 'current branch is still \'%s\'\n')
- % self.dirstate.branch())
-
- self.dirstate.invalidate()
- parents = tuple([p.rev() for p in self.parents()])
- if len(parents) > 1:
- ui.status(_('working directory now based on '
- 'revisions %d and %d\n') % parents)
- else:
- ui.status(_('working directory now based on '
- 'revision %d\n') % parents)
- # TODO: if we know which new heads may result from this rollback, pass
- # them to destroy(), which will prevent the branchhead cache from being
- # invalidated.
- self.destroyed()
- return 0
-
def invalidatecaches(self):
- def delcache(name):
- try:
- delattr(self, name)
- except AttributeError:
- pass
-
- delcache('_tagscache')
-
+ self._tags = None
+ self._tagtypes = None
+ self.nodetagscache = None
self._branchcache = None # in UTF-8
self._branchcachetip = None
- def invalidatedirstate(self):
- '''Invalidates the dirstate, causing the next call to dirstate
- to check if it was modified since the last time it was read,
- rereading it if it has.
-
- This is different to dirstate.invalidate() that it doesn't always
- rereads the dirstate. Use dirstate.invalidate() if you want to
- explicitly read the dirstate again (i.e. restoring it to a previous
- known good state).'''
- if 'dirstate' in self.__dict__:
- for k in self.dirstate._filecache:
- try:
- delattr(self.dirstate, k)
- except AttributeError:
- pass
- delattr(self, 'dirstate')
-
def invalidate(self):
- for k in self._filecache:
- # dirstate is invalidated separately in invalidatedirstate()
- if k == 'dirstate':
- continue
-
- try:
- delattr(self, k)
- except AttributeError:
- pass
+ for a in ("changelog", "manifest", "_bookmarks", "_bookmarkcurrent"):
+ if a in self.__dict__:
+ delattr(self, a)
self.invalidatecaches()
def _lock(self, lockname, wait, releasefn, acquirefn, desc):
@@ -1085,16 +800,6 @@ class localrepository(object):
acquirefn()
return l
- def _afterlock(self, callback):
- """add a callback to the current repository lock.
-
- The callback will be executed on lock release."""
- l = self._lockref and self._lockref()
- if l:
- l.postrelease.append(callback)
- else:
- callback()
-
def lock(self, wait=True):
'''Lock the repository store (.hg/store) and return a weak reference
to the lock. Use this before modifying the store (e.g. committing or
@@ -1104,16 +809,7 @@ class localrepository(object):
l.lock()
return l
- def unlock():
- self.store.write()
- if '_phasecache' in vars(self):
- self._phasecache.write()
- for k, ce in self._filecache.items():
- if k == 'dirstate':
- continue
- ce.refresh()
-
- l = self._lock(self.sjoin("lock"), wait, unlock,
+ l = self._lock(self.sjoin("lock"), wait, self.store.write,
self.invalidate, _('repository %s') % self.origroot)
self._lockref = weakref.ref(l)
return l
@@ -1127,14 +823,8 @@ class localrepository(object):
l.lock()
return l
- def unlock():
- self.dirstate.write()
- ce = self._filecache.get('dirstate')
- if ce:
- ce.refresh()
-
- l = self._lock(self.join("wlock"), wait, unlock,
- self.invalidatedirstate, _('working directory of %s') %
+ l = self._lock(self.join("wlock"), wait, self.dirstate.write,
+ self.dirstate.invalidate, _('working directory of %s') %
self.origroot)
self._wlockref = weakref.ref(l)
return l
@@ -1255,58 +945,36 @@ class localrepository(object):
# check subrepos
subs = []
- commitsubs = set()
- newstate = wctx.substate.copy()
- # only manage subrepos and .hgsubstate if .hgsub is present
+ removedsubs = set()
if '.hgsub' in wctx:
- # we'll decide whether to track this ourselves, thanks
- if '.hgsubstate' in changes[0]:
- changes[0].remove('.hgsubstate')
- if '.hgsubstate' in changes[2]:
- changes[2].remove('.hgsubstate')
-
- # compare current state to last committed state
- # build new substate based on last committed state
- oldstate = wctx.p1().substate
- for s in sorted(newstate.keys()):
- if not match(s):
- # ignore working copy, use old state if present
- if s in oldstate:
- newstate[s] = oldstate[s]
- continue
- if not force:
- raise util.Abort(
- _("commit with new subrepo %s excluded") % s)
- if wctx.sub(s).dirty(True):
- if not self.ui.configbool('ui', 'commitsubrepos'):
- raise util.Abort(
- _("uncommitted changes in subrepo %s") % s,
- hint=_("use --subrepos for recursive commit"))
- subs.append(s)
- commitsubs.add(s)
- else:
- bs = wctx.sub(s).basestate()
- newstate[s] = (newstate[s][0], bs, newstate[s][2])
- if oldstate.get(s, (None, None, None))[1] != bs:
- subs.append(s)
-
- # check for removed subrepos
+ # only manage subrepos and .hgsubstate if .hgsub is present
for p in wctx.parents():
- r = [s for s in p.substate if s not in newstate]
- subs += [s for s in r if match(s)]
- if subs:
+ removedsubs.update(s for s in p.substate if match(s))
+ for s in wctx.substate:
+ removedsubs.discard(s)
+ if match(s) and wctx.sub(s).dirty():
+ subs.append(s)
+ if (subs or removedsubs):
if (not match('.hgsub') and
'.hgsub' in (wctx.modified() + wctx.added())):
raise util.Abort(
_("can't commit subrepos without .hgsub"))
- changes[0].insert(0, '.hgsubstate')
-
+ if '.hgsubstate' not in changes[0]:
+ changes[0].insert(0, '.hgsubstate')
+ if '.hgsubstate' in changes[2]:
+ changes[2].remove('.hgsubstate')
elif '.hgsub' in changes[2]:
# clean up .hgsubstate when .hgsub is removed
if ('.hgsubstate' in wctx and
'.hgsubstate' not in changes[0] + changes[1] + changes[2]):
changes[2].insert(0, '.hgsubstate')
+ if subs and not self.ui.configbool('ui', 'commitsubrepos', True):
+ changedsubs = [s for s in subs if wctx.sub(s).dirty(True)]
+ if changedsubs:
+ raise util.Abort(_("uncommitted changes in subrepo %s")
+ % changedsubs[0])
+
# make sure all explicit patterns are matched
if not force and match.files():
matched = set(changes[0] + changes[1] + changes[2])
@@ -1331,9 +999,6 @@ class localrepository(object):
and wctx.branch() == wctx.p1().branch()):
return None
- if merge and changes[3]:
- raise util.Abort(_("cannot commit merge with missing files"))
-
ms = mergemod.mergestate(self)
for f in changes[0]:
if f in ms and ms[f] == 'u':
@@ -1345,15 +1010,16 @@ class localrepository(object):
cctx._text = editor(self, cctx, subs)
edited = (text != cctx._text)
- # commit subs and write new state
- if subs:
- for s in sorted(commitsubs):
+ # commit subs
+ if subs or removedsubs:
+ state = wctx.substate.copy()
+ for s in sorted(subs):
sub = wctx.sub(s)
self.ui.status(_('committing subrepository %s\n') %
subrepo.subrelpath(sub))
sr = sub.commit(cctx._text, user, date)
- newstate[s] = (newstate[s][0], sr)
- subrepo.writestate(self, newstate)
+ state[s] = (state[s][0], sr)
+ subrepo.writestate(self, state)
# Save commit message in case this transaction gets rolled back
# (e.g. by a pretxncommit hook). Leave the content alone on
@@ -1363,17 +1029,16 @@ class localrepository(object):
p1, p2 = self.dirstate.parents()
hookp1, hookp2 = hex(p1), (p2 != nullid and hex(p2) or '')
try:
- self.hook("precommit", throw=True, parent1=hookp1,
- parent2=hookp2)
+ self.hook("precommit", throw=True, parent1=hookp1, parent2=hookp2)
ret = self.commitctx(cctx, True)
- except: # re-raises
+ except:
if edited:
self.ui.write(
_('note: commit message saved in %s\n') % msgfn)
raise
# update bookmarks, dirstate and mergestate
- bookmarks.update(self, [p1, p2], ret)
+ bookmarks.update(self, p1, ret)
for f in changes[0] + changes[1]:
self.dirstate.normal(f)
for f in changes[2]:
@@ -1383,9 +1048,7 @@ class localrepository(object):
finally:
wlock.release()
- def commithook(node=hex(ret), parent1=hookp1, parent2=hookp2):
- self.hook("commit", node=node, parent1=parent1, parent2=parent2)
- self._afterlock(commithook)
+ self.hook("commit", node=hex(ret), parent1=hookp1, parent2=hookp2)
return ret
def commitctx(self, ctx, error=False):
@@ -1452,44 +1115,22 @@ class localrepository(object):
self.hook('pretxncommit', throw=True, node=hex(n), parent1=xp1,
parent2=xp2, pending=p)
self.changelog.finalize(trp)
- # set the new commit is proper phase
- targetphase = phases.newcommitphase(self.ui)
- if targetphase:
- # retract boundary do not alter parent changeset.
- # if a parent have higher the resulting phase will
- # be compliant anyway
- #
- # if minimal phase was 0 we don't need to retract anything
- phases.retractboundary(self, targetphase, [n])
tr.close()
- self.updatebranchcache()
+
+ if self._branchcache:
+ self.updatebranchcache()
return n
finally:
if tr:
tr.release()
lock.release()
- def destroyed(self, newheadnodes=None):
+ def destroyed(self):
'''Inform the repository that nodes have been destroyed.
Intended for use by strip and rollback, so there's a common
- place for anything that has to be done after destroying history.
-
- If you know the branchheadcache was uptodate before nodes were removed
- and you also know the set of candidate new heads that may have resulted
- from the destruction, you can set newheadnodes. This will enable the
- code to update the branchheads cache, rather than having future code
- decide it's invalid and regenrating it from scratch.
- '''
- # If we have info, newheadnodes, on how to update the branch cache, do
- # it, Otherwise, since nodes were destroyed, the cache is stale and this
- # will be caught the next time it is read.
- if newheadnodes:
- tiprev = len(self) - 1
- ctxgen = (self[node] for node in newheadnodes
- if self.changelog.hasnode(node))
- self._updatebranchcache(self._branchcache, ctxgen)
- self._writebranchcache(self._branchcache, self.changelog.tip(),
- tiprev)
+ place for anything that has to be done after destroying history.'''
+ # XXX it might be nice if we could take the list of destroyed
+ # nodes, but I don't see an easy way for rollback() to do that
# Ensure the persistent tag cache is updated. Doing it now
# means that the tag cache only has to worry about destroyed
@@ -1503,9 +1144,6 @@ class localrepository(object):
# tag cache retrieval" case to work.
self.invalidatecaches()
- # Discard all cache entries to force reloading everything.
- self._filecache.clear()
-
def walk(self, match, node=None):
'''
walk recursively through the directory tree or a given
@@ -1517,8 +1155,7 @@ class localrepository(object):
def status(self, node1='.', node2=None, match=None,
ignored=False, clean=False, unknown=False,
listsubrepos=False):
- """return status of files between two nodes or node and working
- directory.
+ """return status of files between two nodes or node and working directory
If node1 is None, use the first dirstate parent instead.
If node2 is None, compare node1 with working directory.
@@ -1526,8 +1163,6 @@ class localrepository(object):
def mfmatches(ctx):
mf = ctx.manifest().copy()
- if match.always():
- return mf
for fn in mf.keys():
if not match(fn):
del mf[fn]
@@ -1553,9 +1188,7 @@ class localrepository(object):
if not parentworking:
def bad(f, msg):
- # 'f' may be a directory pattern from 'match.files()',
- # so 'f not in ctx1' is not enough
- if f not in ctx1 and f not in ctx1.dirs():
+ if f not in ctx1:
self.ui.warn('%s: %s\n' % (self.dirstate.pathto(f), msg))
match.bad = bad
@@ -1613,11 +1246,10 @@ class localrepository(object):
mf2 = mfmatches(ctx2)
modified, added, clean = [], [], []
- withflags = mf1.withflags() | mf2.withflags()
for fn in mf2:
if fn in mf1:
if (fn not in deleted and
- ((fn in withflags and mf1.flags(fn) != mf2.flags(fn)) or
+ (mf1.flags(fn) != mf2.flags(fn) or
(mf1[fn] != mf2[fn] and
(mf2[fn] or ctx1[fn].cmp(ctx2[fn]))))):
modified.append(fn)
@@ -1628,22 +1260,6 @@ class localrepository(object):
added.append(fn)
removed = mf1.keys()
- if working and modified and not self.dirstate._checklink:
- # Symlink placeholders may get non-symlink-like contents
- # via user error or dereferencing by NFS or Samba servers,
- # so we filter out any placeholders that don't look like a
- # symlink
- sane = []
- for f in modified:
- if ctx2.flags(f) == 'l':
- d = ctx2[f].data()
- if len(d) >= 1024 or '\n' in d or util.binary(d):
- self.ui.debug('ignoring suspect symlink placeholder'
- ' "%s"\n' % f)
- continue
- sane.append(f)
- modified = sane
-
r = modified, added, removed, deleted, unknown, ignored, clean
if listsubrepos:
@@ -1692,7 +1308,8 @@ class localrepository(object):
fbheads = set(self.changelog.nodesbetween([start], bheads)[2])
bheads = [h for h in bheads if h in fbheads]
if not closed:
- bheads = [h for h in bheads if not self[h].closesbranch()]
+ bheads = [h for h in bheads if
+ ('close' not in self.changelog.read(h)[5])]
return bheads
def branches(self, nodes):
@@ -1729,10 +1346,6 @@ class localrepository(object):
return r
def pull(self, remote, heads=None, force=False):
- # don't open transaction for nothing or you break future useful
- # rollback call
- tr = None
- trname = 'pull\n' + util.hidepassword(remote.url())
lock = self.lock()
try:
tmp = discovery.findcommonincoming(self, remote, heads=heads,
@@ -1740,10 +1353,8 @@ class localrepository(object):
common, fetch, rheads = tmp
if not fetch:
self.ui.status(_("no changes found\n"))
- added = []
result = 0
else:
- tr = self.transaction(trname)
if heads is None and list(common) == [nullid]:
self.ui.status(_("requesting all changes\n"))
elif heads is None and remote.capable('changegroupsubset'):
@@ -1761,50 +1372,9 @@ class localrepository(object):
"changegroupsubset."))
else:
cg = remote.changegroupsubset(fetch, heads, 'pull')
- clstart = len(self.changelog)
- result = self.addchangegroup(cg, 'pull', remote.url())
- clend = len(self.changelog)
- added = [self.changelog.node(r) for r in xrange(clstart, clend)]
-
- # compute target subset
- if heads is None:
- # We pulled every thing possible
- # sync on everything common
- subset = common + added
- else:
- # We pulled a specific subset
- # sync on this subset
- subset = heads
-
- # Get remote phases data from remote
- remotephases = remote.listkeys('phases')
- publishing = bool(remotephases.get('publishing', False))
- if remotephases and not publishing:
- # remote is new and unpublishing
- pheads, _dr = phases.analyzeremotephases(self, subset,
- remotephases)
- phases.advanceboundary(self, phases.public, pheads)
- phases.advanceboundary(self, phases.draft, subset)
- else:
- # Remote is old or publishing all common changesets
- # should be seen as public
- phases.advanceboundary(self, phases.public, subset)
-
- if obsolete._enabled:
- self.ui.debug('fetching remote obsolete markers')
- remoteobs = remote.listkeys('obsolete')
- if 'dump0' in remoteobs:
- if tr is None:
- tr = self.transaction(trname)
- for key in sorted(remoteobs, reverse=True):
- if key.startswith('dump'):
- data = base85.b85decode(remoteobs[key])
- self.obsstore.mergemarkers(tr, data)
- if tr is not None:
- tr.close()
+ result = self.addchangegroup(cg, 'pull', remote.url(),
+ lock=lock)
finally:
- if tr is not None:
- tr.release()
lock.release()
return result
@@ -1819,8 +1389,7 @@ class localrepository(object):
def push(self, remote, force=False, revs=None, newbranch=False):
'''Push outgoing changesets (limited by revs) from the current
repository to remote. Return an integer:
- - None means nothing to push
- - 0 means HTTP error
+ - 0 means HTTP error *or* nothing to push
- 1 means we pushed and remote head count is unchanged *or*
we have outgoing changesets but refused to push
- other values as described by addchangegroup()
@@ -1833,152 +1402,33 @@ class localrepository(object):
# unbundle assumes local user cannot lock remote repo (new ssh
# servers, http servers).
- if not remote.canpush():
- raise util.Abort(_("destination does not support push"))
- # get local lock as we might write phase data
- locallock = self.lock()
+ self.checkpush(force, revs)
+ lock = None
+ unbundle = remote.capable('unbundle')
+ if not unbundle:
+ lock = remote.lock()
try:
- self.checkpush(force, revs)
- lock = None
- unbundle = remote.capable('unbundle')
- if not unbundle:
- lock = remote.lock()
- try:
- # discovery
- fci = discovery.findcommonincoming
- commoninc = fci(self, remote, force=force)
- common, inc, remoteheads = commoninc
- fco = discovery.findcommonoutgoing
- outgoing = fco(self, remote, onlyheads=revs,
- commoninc=commoninc, force=force)
-
-
- if not outgoing.missing:
- # nothing to push
- scmutil.nochangesfound(self.ui, self, outgoing.excluded)
- ret = None
- else:
- # something to push
- if not force:
- # if self.obsstore == False --> no obsolete
- # then, save the iteration
- if self.obsstore:
- # this message are here for 80 char limit reason
- mso = _("push includes an obsolete changeset: %s!")
- msu = _("push includes an unstable changeset: %s!")
- # If we are to push if there is at least one
- # obsolete or unstable changeset in missing, at
- # least one of the missinghead will be obsolete or
- # unstable. So checking heads only is ok
- for node in outgoing.missingheads:
- ctx = self[node]
- if ctx.obsolete():
- raise util.Abort(_(mso) % ctx)
- elif ctx.unstable():
- raise util.Abort(_(msu) % ctx)
- discovery.checkheads(self, remote, outgoing,
- remoteheads, newbranch,
- bool(inc))
-
- # create a changegroup from local
- if revs is None and not outgoing.excluded:
- # push everything,
- # use the fast path, no race possible on push
- cg = self._changegroup(outgoing.missing, 'push')
- else:
- cg = self.getlocalbundle('push', outgoing)
-
- # apply changegroup to remote
- if unbundle:
- # local repo finds heads on server, finds out what
- # revs it must push. once revs transferred, if server
- # finds it has different heads (someone else won
- # commit/push race), server aborts.
- if force:
- remoteheads = ['force']
- # ssh: return remote's addchangegroup()
- # http: return remote's addchangegroup() or 0 for error
- ret = remote.unbundle(cg, remoteheads, 'push')
- else:
- # we return an integer indicating remote head count
- # change
- ret = remote.addchangegroup(cg, 'push', self.url())
-
- if ret:
- # push succeed, synchonize target of the push
- cheads = outgoing.missingheads
- elif revs is None:
- # All out push fails. synchronize all common
- cheads = outgoing.commonheads
- else:
- # I want cheads = heads(::missingheads and ::commonheads)
- # (missingheads is revs with secret changeset filtered out)
- #
- # This can be expressed as:
- # cheads = ( (missingheads and ::commonheads)
- # + (commonheads and ::missingheads))"
- # )
- #
- # while trying to push we already computed the following:
- # common = (::commonheads)
- # missing = ((commonheads::missingheads) - commonheads)
- #
- # We can pick:
- # * missingheads part of comon (::commonheads)
- common = set(outgoing.common)
- cheads = [node for node in revs if node in common]
- # and
- # * commonheads parents on missing
- revset = self.set('%ln and parents(roots(%ln))',
- outgoing.commonheads,
- outgoing.missing)
- cheads.extend(c.node() for c in revset)
- # even when we don't push, exchanging phase data is useful
- remotephases = remote.listkeys('phases')
- if not remotephases: # old server or public only repo
- phases.advanceboundary(self, phases.public, cheads)
- # don't push any phase data as there is nothing to push
+ cg, remote_heads = discovery.prepush(self, remote, force, revs,
+ newbranch)
+ ret = remote_heads
+ if cg is not None:
+ if unbundle:
+ # local repo finds heads on server, finds out what
+ # revs it must push. once revs transferred, if server
+ # finds it has different heads (someone else won
+ # commit/push race), server aborts.
+ if force:
+ remote_heads = ['force']
+ # ssh: return remote's addchangegroup()
+ # http: return remote's addchangegroup() or 0 for error
+ ret = remote.unbundle(cg, remote_heads, 'push')
else:
- ana = phases.analyzeremotephases(self, cheads, remotephases)
- pheads, droots = ana
- ### Apply remote phase on local
- if remotephases.get('publishing', False):
- phases.advanceboundary(self, phases.public, cheads)
- else: # publish = False
- phases.advanceboundary(self, phases.public, pheads)
- phases.advanceboundary(self, phases.draft, cheads)
- ### Apply local phase on remote
-
- # Get the list of all revs draft on remote by public here.
- # XXX Beware that revset break if droots is not strictly
- # XXX root we may want to ensure it is but it is costly
- outdated = self.set('heads((%ln::%ln) and public())',
- droots, cheads)
- for newremotehead in outdated:
- r = remote.pushkey('phases',
- newremotehead.hex(),
- str(phases.draft),
- str(phases.public))
- if not r:
- self.ui.warn(_('updating %s to public failed!\n')
- % newremotehead)
- self.ui.debug('try to push obsolete markers to remote\n')
- if (obsolete._enabled and self.obsstore and
- 'obsolete' in remote.listkeys('namespaces')):
- rslts = []
- remotedata = self.listkeys('obsolete')
- for key in sorted(remotedata, reverse=True):
- # reverse sort to ensure we end with dump0
- data = remotedata[key]
- rslts.append(remote.pushkey('obsolete', key, '', data))
- if [r for r in rslts if not r]:
- msg = _('failed to push some obsolete markers!\n')
- self.ui.warn(msg)
- finally:
- if lock is not None:
- lock.release()
+ # we return an integer indicating remote head count change
+ ret = remote.addchangegroup(cg, 'push', self.url(),
+ lock=lock)
finally:
- locallock.release()
+ if lock is not None:
+ lock.release()
self.ui.debug("checking for updated bookmarks\n")
rb = remote.listkeys('bookmarks')
@@ -2024,21 +1474,9 @@ class localrepository(object):
bases = [nullid]
csets, bases, heads = cl.nodesbetween(bases, heads)
# We assume that all ancestors of bases are known
- common = set(cl.ancestors([cl.rev(n) for n in bases]))
+ common = set(cl.ancestors(*[cl.rev(n) for n in bases]))
return self._changegroupsubset(common, csets, heads, source)
- def getlocalbundle(self, source, outgoing):
- """Like getbundle, but taking a discovery.outgoing as an argument.
-
- This is only implemented for local repos and reuses potentially
- precomputed sets in outgoing."""
- if not outgoing.missing:
- return None
- return self._changegroupsubset(outgoing.common,
- outgoing.missing,
- outgoing.missingheads,
- source)
-
def getbundle(self, source, heads=None, common=None):
"""Like changegroupsubset, but returns the set difference between the
ancestors of heads and the ancestors common.
@@ -2056,8 +1494,10 @@ class localrepository(object):
common = [nullid]
if not heads:
heads = cl.heads()
- return self.getlocalbundle(source,
- discovery.outgoing(cl, common, heads))
+ common, missing = cl.findcommonmissing(common, heads)
+ if not missing:
+ return None
+ return self._changegroupsubset(common, missing, heads, source)
def _changegroupsubset(self, commonrevs, csets, heads, source):
@@ -2067,7 +1507,7 @@ class localrepository(object):
fnodes = {} # needed file nodes
changedfiles = set()
fstate = ['', {}]
- count = [0, 0]
+ count = [0]
# can we go through the fast path ?
heads.sort()
@@ -2080,15 +1520,8 @@ class localrepository(object):
# filter any nodes that claim to be part of the known set
def prune(revlog, missing):
- rr, rl = revlog.rev, revlog.linkrev
return [n for n in missing
- if rl(rr(n)) not in commonrevs]
-
- progress = self.ui.progress
- _bundling = _('bundling')
- _changesets = _('changesets')
- _manifests = _('manifests')
- _files = _('files')
+ if revlog.linkrev(revlog.rev(n)) not in commonrevs]
def lookup(revlog, x):
if revlog == cl:
@@ -2096,22 +1529,23 @@ class localrepository(object):
changedfiles.update(c[3])
mfs.setdefault(c[0], x)
count[0] += 1
- progress(_bundling, count[0],
- unit=_changesets, total=count[1])
+ self.ui.progress(_('bundling'), count[0],
+ unit=_('changesets'), total=len(csets))
return x
elif revlog == mf:
clnode = mfs[x]
mdata = mf.readfast(x)
- for f, n in mdata.iteritems():
- if f in changedfiles:
- fnodes[f].setdefault(n, clnode)
+ for f in changedfiles:
+ if f in mdata:
+ fnodes.setdefault(f, {}).setdefault(mdata[f], clnode)
count[0] += 1
- progress(_bundling, count[0],
- unit=_manifests, total=count[1])
- return clnode
+ self.ui.progress(_('bundling'), count[0],
+ unit=_('manifests'), total=len(mfs))
+ return mfs[x]
else:
- progress(_bundling, count[0], item=fstate[0],
- unit=_files, total=count[1])
+ self.ui.progress(
+ _('bundling'), count[0], item=fstate[0],
+ unit=_('files'), total=len(changedfiles))
return fstate[1][x]
bundler = changegroup.bundle10(lookup)
@@ -2124,29 +1558,25 @@ class localrepository(object):
def gengroup():
# Create a changenode group generator that will call our functions
# back to lookup the owning changenode and collect information.
- count[:] = [0, len(csets)]
for chunk in cl.group(csets, bundler, reorder=reorder):
yield chunk
- progress(_bundling, None)
+ self.ui.progress(_('bundling'), None)
# Create a generator for the manifestnodes that calls our lookup
# and data collection functions back.
- for f in changedfiles:
- fnodes[f] = {}
- count[:] = [0, len(mfs)]
+ count[0] = 0
for chunk in mf.group(prune(mf, mfs), bundler, reorder=reorder):
yield chunk
- progress(_bundling, None)
+ self.ui.progress(_('bundling'), None)
mfs.clear()
# Go through all our files in order sorted by name.
- count[:] = [0, len(changedfiles)]
+ count[0] = 0
for fname in sorted(changedfiles):
filerevlog = self.file(fname)
if not len(filerevlog):
- raise util.Abort(_("empty or missing revlog for %s")
- % fname)
+ raise util.Abort(_("empty or missing revlog for %s") % fname)
fstate[0] = fname
fstate[1] = fnodes.pop(fname, {})
@@ -2159,7 +1589,7 @@ class localrepository(object):
# Signal that no more groups are left.
yield bundler.close()
- progress(_bundling, None)
+ self.ui.progress(_('bundling'), None)
if csets:
self.hook('outgoing', node=hex(csets[0]), source=source)
@@ -2185,7 +1615,7 @@ class localrepository(object):
mfs = {}
changedfiles = set()
fstate = ['']
- count = [0, 0]
+ count = [0]
self.hook('preoutgoing', throw=True, source=source)
self.changegroupinfo(nodes, source)
@@ -2193,14 +1623,7 @@ class localrepository(object):
revset = set([cl.rev(n) for n in nodes])
def gennodelst(log):
- ln, llr = log.node, log.linkrev
- return [ln(r) for r in log if llr(r) in revset]
-
- progress = self.ui.progress
- _bundling = _('bundling')
- _changesets = _('changesets')
- _manifests = _('manifests')
- _files = _('files')
+ return [log.node(r) for r in log if log.linkrev(r) in revset]
def lookup(revlog, x):
if revlog == cl:
@@ -2208,17 +1631,18 @@ class localrepository(object):
changedfiles.update(c[3])
mfs.setdefault(c[0], x)
count[0] += 1
- progress(_bundling, count[0],
- unit=_changesets, total=count[1])
+ self.ui.progress(_('bundling'), count[0],
+ unit=_('changesets'), total=len(nodes))
return x
elif revlog == mf:
count[0] += 1
- progress(_bundling, count[0],
- unit=_manifests, total=count[1])
+ self.ui.progress(_('bundling'), count[0],
+ unit=_('manifests'), total=len(mfs))
return cl.node(revlog.linkrev(revlog.rev(x)))
else:
- progress(_bundling, count[0], item=fstate[0],
- total=count[1], unit=_files)
+ self.ui.progress(
+ _('bundling'), count[0], item=fstate[0],
+ total=len(changedfiles), unit=_('files'))
return cl.node(revlog.linkrev(revlog.rev(x)))
bundler = changegroup.bundle10(lookup)
@@ -2232,22 +1656,20 @@ class localrepository(object):
'''yield a sequence of changegroup chunks (strings)'''
# construct a list of all changed files
- count[:] = [0, len(nodes)]
for chunk in cl.group(nodes, bundler, reorder=reorder):
yield chunk
- progress(_bundling, None)
+ self.ui.progress(_('bundling'), None)
- count[:] = [0, len(mfs)]
+ count[0] = 0
for chunk in mf.group(gennodelst(mf), bundler, reorder=reorder):
yield chunk
- progress(_bundling, None)
+ self.ui.progress(_('bundling'), None)
- count[:] = [0, len(changedfiles)]
+ count[0] = 0
for fname in sorted(changedfiles):
filerevlog = self.file(fname)
if not len(filerevlog):
- raise util.Abort(_("empty or missing revlog for %s")
- % fname)
+ raise util.Abort(_("empty or missing revlog for %s") % fname)
fstate[0] = fname
nodelist = gennodelst(filerevlog)
if nodelist:
@@ -2256,17 +1678,19 @@ class localrepository(object):
for chunk in filerevlog.group(nodelist, bundler, reorder):
yield chunk
yield bundler.close()
- progress(_bundling, None)
+ self.ui.progress(_('bundling'), None)
if nodes:
self.hook('outgoing', node=hex(nodes[0]), source=source)
return changegroup.unbundle10(util.chunkbuffer(gengroup()), 'UN')
- def addchangegroup(self, source, srctype, url, emptyok=False):
+ def addchangegroup(self, source, srctype, url, emptyok=False, lock=None):
"""Add the changegroup returned by source.read() to this repo.
srctype is a string like 'push', 'pull', or 'unbundle'. url is
the URL of the repo where this changegroup is coming from.
+ If lock is not None, the function takes ownership of the lock
+ and releases it after the changegroup is added.
Return an integer summarizing the change to this repo:
- nothing changed or no source: 0
@@ -2314,8 +1738,8 @@ class localrepository(object):
source.callback = pr
source.changelogheader()
- srccontent = cl.addgroup(source, csmap, trp)
- if not (srccontent or emptyok):
+ if (cl.addgroup(source, csmap, trp) is None
+ and not emptyok):
raise util.Abort(_("received changelog group is empty"))
clend = len(cl)
changesets = clend - clstart
@@ -2363,7 +1787,7 @@ class localrepository(object):
pr()
fl = self.file(f)
o = len(fl)
- if not fl.addgroup(source, revmap, trp):
+ if fl.addgroup(source, revmap, trp) is None:
raise util.Abort(_("received file revlog group is empty"))
revisions += len(fl) - o
files += 1
@@ -2392,7 +1816,7 @@ class localrepository(object):
heads = cl.heads()
dh = len(heads) - len(oldheads)
for h in heads:
- if h not in oldheads and self[h].closesbranch():
+ if h not in oldheads and 'close' in self[h].extra():
dh -= 1
htext = ""
if dh:
@@ -2408,46 +1832,26 @@ class localrepository(object):
node=hex(cl.node(clstart)), source=srctype,
url=url, pending=p)
- added = [cl.node(r) for r in xrange(clstart, clend)]
- publishing = self.ui.configbool('phases', 'publish', True)
- if srctype == 'push':
- # Old server can not push the boundary themself.
- # New server won't push the boundary if changeset already
- # existed locally as secrete
- #
- # We should not use added here but the list of all change in
- # the bundle
- if publishing:
- phases.advanceboundary(self, phases.public, srccontent)
- else:
- phases.advanceboundary(self, phases.draft, srccontent)
- phases.retractboundary(self, phases.draft, added)
- elif srctype != 'strip':
- # publishing only alter behavior during push
- #
- # strip should not touch boundary at all
- phases.retractboundary(self, phases.draft, added)
-
# make changelog see real files again
cl.finalize(trp)
tr.close()
-
- if changesets > 0:
- def runhooks():
- # forcefully update the on-disk branch cache
- self.ui.debug("updating the branch cache\n")
- self.updatebranchcache()
- self.hook("changegroup", node=hex(cl.node(clstart)),
- source=srctype, url=url)
-
- for n in added:
- self.hook("incoming", node=hex(n), source=srctype,
- url=url)
- self._afterlock(runhooks)
-
finally:
tr.release()
+ if lock:
+ lock.release()
+
+ if changesets > 0:
+ # forcefully update the on-disk branch cache
+ self.ui.debug("updating the branch cache\n")
+ self.updatebranchcache()
+ self.hook("changegroup", node=hex(cl.node(clstart)),
+ source=srctype, url=url)
+
+ for i in xrange(clstart, clend):
+ self.hook("incoming", node=hex(cl.node(i)),
+ source=srctype, url=url)
+
# never return 0 here:
if dh < 0:
return dh - 1
@@ -2463,7 +1867,7 @@ class localrepository(object):
resp = int(l)
except ValueError:
raise error.ResponseError(
- _('unexpected response from remote server:'), l)
+ _('Unexpected response from remote server:'), l)
if resp == 1:
raise util.Abort(_('operation forbidden by server'))
elif resp == 2:
@@ -2476,11 +1880,9 @@ class localrepository(object):
total_files, total_bytes = map(int, l.split(' ', 1))
except (ValueError, TypeError):
raise error.ResponseError(
- _('unexpected response from remote server:'), l)
+ _('Unexpected response from remote server:'), l)
self.ui.status(_('%d files to transfer, %s of data\n') %
(total_files, util.bytecount(total_bytes)))
- handled_bytes = 0
- self.ui.progress(_('clone'), 0, total=total_bytes)
start = time.time()
for i in xrange(total_files):
# XXX doesn't support '\n' or '\r' in filenames
@@ -2490,28 +1892,21 @@ class localrepository(object):
size = int(size)
except (ValueError, TypeError):
raise error.ResponseError(
- _('unexpected response from remote server:'), l)
- if self.ui.debugflag:
- self.ui.debug('adding %s (%s)\n' %
- (name, util.bytecount(size)))
+ _('Unexpected response from remote server:'), l)
+ self.ui.debug('adding %s (%s)\n' % (name, util.bytecount(size)))
# for backwards compat, name was partially encoded
ofp = self.sopener(store.decodedir(name), 'w')
for chunk in util.filechunkiter(fp, limit=size):
- handled_bytes += len(chunk)
- self.ui.progress(_('clone'), handled_bytes,
- total=total_bytes)
ofp.write(chunk)
ofp.close()
elapsed = time.time() - start
if elapsed <= 0:
elapsed = 0.001
- self.ui.progress(_('clone'), None)
self.ui.status(_('transferred %s in %.1f seconds (%s/sec)\n') %
(util.bytecount(total_bytes), elapsed,
util.bytecount(total_bytes / elapsed)))
- # new requirements = old non-format requirements +
- # new format-related
+ # new requirements = old non-format requirements + new format-related
# requirements from the streamed-in repository
requirements.update(set(self.requirements) - self.supportedformats)
self._applyrequirements(requirements)
@@ -2537,10 +1932,6 @@ class localrepository(object):
# and format flags on "stream" capability, and use
# uncompressed only if compatible.
- if not stream:
- # if the server explicitely prefer to stream (for fast LANs)
- stream = remote.capable('stream-preferred')
-
if stream and not heads:
# 'stream' means remote revlog format is revlogv1 only
if remote.capable('stream'):
@@ -2557,7 +1948,6 @@ class localrepository(object):
def pushkey(self, namespace, key, old, new):
self.hook('prepushkey', throw=True, namespace=namespace, key=key,
old=old, new=new)
- self.ui.debug('pushing key for "%s:%s"\n' % (namespace, key))
ret = pushkey.push(self, namespace, key, old, new)
self.hook('pushkey', namespace=namespace, key=key, old=old, new=new,
ret=ret)
@@ -2565,7 +1955,6 @@ class localrepository(object):
def listkeys(self, namespace):
self.hook('prelistkeys', throw=True, namespace=namespace)
- self.ui.debug('listing keys for "%s"\n' % namespace)
values = pushkey.list(self, namespace)
self.hook('listkeys', namespace=namespace, values=values)
return values
@@ -2587,10 +1976,7 @@ def aftertrans(files):
renamefiles = [tuple(t) for t in files]
def a():
for src, dest in renamefiles:
- try:
- util.rename(src, dest)
- except OSError: # journal file does not yet exist
- pass
+ util.rename(src, dest)
return a
def undoname(fn):
diff --git a/mercurial/lock.py b/mercurial/lock.py
index cc2c533..bf33f02 100644
--- a/mercurial/lock.py
+++ b/mercurial/lock.py
@@ -35,7 +35,6 @@ class lock(object):
self.timeout = timeout
self.releasefn = releasefn
self.desc = desc
- self.postrelease = []
self.lock()
def __del__(self):
@@ -120,10 +119,6 @@ class lock(object):
return locker
def release(self):
- """release the lock and execute callback function if any
-
- If the lock have been aquired multiple time, the actual release is
- delayed to the last relase call."""
if self.held > 1:
self.held -= 1
elif self.held == 1:
@@ -134,10 +129,9 @@ class lock(object):
util.unlink(self.f)
except OSError:
pass
- for callback in self.postrelease:
- callback()
def release(*locks):
for lock in locks:
if lock is not None:
lock.release()
+
diff --git a/mercurial/lsprof.py b/mercurial/lsprof.py
index 4970f06..e9b185b 100644
--- a/mercurial/lsprof.py
+++ b/mercurial/lsprof.py
@@ -38,8 +38,8 @@ class Stats(object):
d = d[:top]
cols = "% 12s %12s %11.4f %11.4f %s\n"
hcols = "% 12s %12s %12s %12s %s\n"
- file.write(hcols % ("CallCount", "Recursive", "Total(s)",
- "Inline(s)", "module:lineno(function)"))
+ file.write(hcols % ("CallCount", "Recursive", "Total(ms)",
+ "Inline(ms)", "module:lineno(function)"))
count = 0
for e in d:
file.write(cols % (e.callcount, e.reccallcount, e.totaltime,
@@ -48,7 +48,7 @@ class Stats(object):
if limit is not None and count == limit:
return
ccount = 0
- if climit and e.calls:
+ if e.calls:
for se in e.calls:
file.write(cols % ("+%s" % se.callcount, se.reccallcount,
se.totaltime, se.inlinetime,
@@ -86,7 +86,9 @@ def label(code):
for k, v in list(sys.modules.iteritems()):
if v is None:
continue
- if not isinstance(getattr(v, '__file__', None), str):
+ if not hasattr(v, '__file__'):
+ continue
+ if not isinstance(v.__file__, str):
continue
if v.__file__.startswith(code.co_filename):
mname = _fn2mod[code.co_filename] = k
diff --git a/mercurial/mail.py b/mercurial/mail.py
index 1154a4a..6f11ead 100644
--- a/mercurial/mail.py
+++ b/mercurial/mail.py
@@ -7,7 +7,7 @@
from i18n import _
import util, encoding
-import os, smtplib, socket, quopri, time
+import os, smtplib, socket, quopri
import email.Header, email.MIMEText, email.Utils
_oldheaderinit = email.Header.Header.__init__
@@ -37,7 +37,7 @@ def _smtp(ui):
# backward compatible: when tls = true, we use starttls.
starttls = tls == 'starttls' or util.parsebool(tls)
smtps = tls == 'smtps'
- if (starttls or smtps) and not util.safehasattr(socket, 'ssl'):
+ if (starttls or smtps) and not hasattr(socket, 'ssl'):
raise util.Abort(_("can't use TLS: Python SSL support not installed"))
if smtps:
ui.note(_('(using smtps)\n'))
@@ -93,29 +93,15 @@ def _sendmail(ui, sender, recipients, msg):
os.path.basename(program.split(None, 1)[0]),
util.explainexit(ret)[0]))
-def _mbox(mbox, sender, recipients, msg):
- '''write mails to mbox'''
- fp = open(mbox, 'ab+')
- # Should be time.asctime(), but Windows prints 2-characters day
- # of month instead of one. Make them print the same thing.
- date = time.strftime('%a %b %d %H:%M:%S %Y', time.localtime())
- fp.write('From %s %s\n' % (sender, date))
- fp.write(msg)
- fp.write('\n\n')
- fp.close()
-
-def connect(ui, mbox=None):
+def connect(ui):
'''make a mail connection. return a function to send mail.
call as sendmail(sender, list-of-recipients, msg).'''
- if mbox:
- open(mbox, 'wb').close()
- return lambda s, r, m: _mbox(mbox, s, r, m)
if ui.config('email', 'method', 'smtp') == 'smtp':
return _smtp(ui)
return lambda s, r, m: _sendmail(ui, s, r, m)
-def sendmail(ui, sender, recipients, msg, mbox=None):
- send = connect(ui, mbox=mbox)
+def sendmail(ui, sender, recipients, msg):
+ send = connect(ui)
return send(sender, recipients, msg)
def validateconfig(ui):
@@ -131,9 +117,14 @@ def validateconfig(ui):
'but not in PATH') % method)
def mimetextpatch(s, subtype='plain', display=False):
- '''Return MIME message suitable for a patch.
- Charset will be detected as utf-8 or (possibly fake) us-ascii.
- Transfer encodings will be used if necessary.'''
+ '''If patch in utf-8 transfer-encode it.'''
+
+ enc = None
+ for line in s.splitlines():
+ if len(line) > 950:
+ s = quopri.encodestring(s)
+ enc = "quoted-printable"
+ break
cs = 'us-ascii'
if not display:
@@ -147,20 +138,7 @@ def mimetextpatch(s, subtype='plain', display=False):
# We'll go with us-ascii as a fallback.
pass
- return mimetextqp(s, subtype, cs)
-
-def mimetextqp(body, subtype, charset):
- '''Return MIME message.
- Qouted-printable transfer encoding will be used if necessary.
- '''
- enc = None
- for line in body.splitlines():
- if len(line) > 950:
- body = quopri.encodestring(body)
- enc = "quoted-printable"
- break
-
- msg = email.MIMEText.MIMEText(body, subtype, charset)
+ msg = email.MIMEText.MIMEText(s, subtype, cs)
if enc:
del msg['Content-Transfer-Encoding']
msg['Content-Transfer-Encoding'] = enc
@@ -252,4 +230,4 @@ def mimeencode(ui, s, charsets=None, display=False):
cs = 'us-ascii'
if not display:
s, cs = _encode(ui, s, charsets)
- return mimetextqp(s, 'plain', cs)
+ return email.MIMEText.MIMEText(s, 'plain', cs)
diff --git a/mercurial/manifest.py b/mercurial/manifest.py
index 07f0b6d..7c3781c 100644
--- a/mercurial/manifest.py
+++ b/mercurial/manifest.py
@@ -6,7 +6,7 @@
# GNU General Public License version 2 or any later version.
from i18n import _
-import mdiff, parsers, error, revlog, util
+import mdiff, parsers, error, revlog
import array, struct
class manifestdict(dict):
@@ -19,8 +19,6 @@ class manifestdict(dict):
self._flags = flags
def flags(self, f):
return self._flags.get(f, "")
- def withflags(self):
- return set(self._flags.keys())
def set(self, f, flags):
self._flags[f] = flags
def copy(self):
@@ -126,8 +124,8 @@ class manifest(revlog.revlog):
addlist[start:end] = array.array('c', content)
else:
del addlist[start:end]
- return "".join(struct.pack(">lll", start, end, len(content))
- + content for start, end, content in x)
+ return "".join(struct.pack(">lll", start, end, len(content)) + content
+ for start, end, content in x)
def checkforbidden(l):
for f in l:
@@ -166,7 +164,7 @@ class manifest(revlog.revlog):
dline = [""]
start = 0
# zero copy representation of addlist as a buffer
- addbuf = util.buffer(addlist)
+ addbuf = buffer(addlist)
# start with a readonly loop that finds the offset of
# each line and creates the deltas
@@ -198,7 +196,7 @@ class manifest(revlog.revlog):
# apply the delta to the addlist, and get a delta for addrevision
cachedelta = (self.rev(p1), addlistdelta(addlist, delta))
arraytext = addlist
- text = util.buffer(arraytext)
+ text = buffer(arraytext)
n = self.addrevision(text, transaction, link, p1, p2, cachedelta)
self._mancache = (n, map, arraytext)
diff --git a/mercurial/match.py b/mercurial/match.py
index 927cd59..e01b835 100644
--- a/mercurial/match.py
+++ b/mercurial/match.py
@@ -9,14 +9,6 @@ import re
import scmutil, util, fileset
from i18n import _
-def _rematcher(pat):
- m = util.compilere(pat)
- try:
- # slightly faster, provided by facebook's re2 bindings
- return m.test_match
- except AttributeError:
- return m.match
-
def _expandsets(pats, ctx):
'''convert set: patterns into a list of files in the given context'''
fset = set()
@@ -57,6 +49,7 @@ class match(object):
'<something>' - a pattern of the specified default type
"""
+ self._ctx = None
self._root = root
self._cwd = cwd
self._files = []
@@ -70,10 +63,7 @@ class match(object):
pats = _normalize(exclude, 'glob', root, cwd, auditor)
self.excludepat, em = _buildmatch(ctx, pats, '(?:/|$)')
if exact:
- if isinstance(patterns, list):
- self._files = patterns
- else:
- self._files = list(patterns)
+ self._files = patterns
pm = self.exact
elif patterns:
pats = _normalize(patterns, default, root, cwd, auditor)
@@ -129,8 +119,6 @@ class match(object):
return self._files
def anypats(self):
return self._anypats
- def always(self):
- return False
class exact(match):
def __init__(self, root, cwd, files):
@@ -139,8 +127,6 @@ class exact(match):
class always(match):
def __init__(self, root, cwd):
match.__init__(self, root, cwd, [])
- def always(self):
- return True
class narrowmatcher(match):
"""Adapt a matcher to work on a subdirectory only.
@@ -287,8 +273,8 @@ def _buildregexmatch(pats, tail):
try:
pat = '(?:%s)' % '|'.join([_regex(k, p, tail) for (k, p) in pats])
if len(pat) > 20000:
- raise OverflowError
- return pat, _rematcher(pat)
+ raise OverflowError()
+ return pat, re.compile(pat).match
except OverflowError:
# We're using a Python with a tiny regex engine and we
# made it explode, so we'll divide the pattern list in two
@@ -302,7 +288,7 @@ def _buildregexmatch(pats, tail):
except re.error:
for k, p in pats:
try:
- _rematcher('(?:%s)' % _regex(k, p, tail))
+ re.compile('(?:%s)' % _regex(k, p, tail))
except re.error:
raise util.Abort(_("invalid pattern (%s): %s") % (k, p))
raise util.Abort(_("invalid pattern"))
@@ -348,5 +334,5 @@ def _roots(patterns):
def _anypats(patterns):
for kind, name in patterns:
- if kind in ('glob', 're', 'relglob', 'relre', 'set'):
+ if kind in ('glob', 're', 'relglob', 'relre'):
return True
diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py
index f93a8a6..4d1e760 100644
--- a/mercurial/mdiff.py
+++ b/mercurial/mdiff.py
@@ -67,81 +67,14 @@ defaultopts = diffopts()
def wsclean(opts, text, blank=True):
if opts.ignorews:
- text = bdiff.fixws(text, 1)
+ text = re.sub('[ \t\r]+', '', text)
elif opts.ignorewsamount:
- text = bdiff.fixws(text, 0)
+ text = re.sub('[ \t\r]+', ' ', text)
+ text = text.replace(' \n', '\n')
if blank and opts.ignoreblanklines:
- text = re.sub('\n+', '\n', text).strip('\n')
+ text = re.sub('\n+', '', text)
return text
-def splitblock(base1, lines1, base2, lines2, opts):
- # The input lines matches except for interwoven blank lines. We
- # transform it into a sequence of matching blocks and blank blocks.
- lines1 = [(wsclean(opts, l) and 1 or 0) for l in lines1]
- lines2 = [(wsclean(opts, l) and 1 or 0) for l in lines2]
- s1, e1 = 0, len(lines1)
- s2, e2 = 0, len(lines2)
- while s1 < e1 or s2 < e2:
- i1, i2, btype = s1, s2, '='
- if (i1 >= e1 or lines1[i1] == 0
- or i2 >= e2 or lines2[i2] == 0):
- # Consume the block of blank lines
- btype = '~'
- while i1 < e1 and lines1[i1] == 0:
- i1 += 1
- while i2 < e2 and lines2[i2] == 0:
- i2 += 1
- else:
- # Consume the matching lines
- while i1 < e1 and lines1[i1] == 1 and lines2[i2] == 1:
- i1 += 1
- i2 += 1
- yield [base1 + s1, base1 + i1, base2 + s2, base2 + i2], btype
- s1 = i1
- s2 = i2
-
-def allblocks(text1, text2, opts=None, lines1=None, lines2=None, refine=False):
- """Return (block, type) tuples, where block is an mdiff.blocks
- line entry. type is '=' for blocks matching exactly one another
- (bdiff blocks), '!' for non-matching blocks and '~' for blocks
- matching only after having filtered blank lines. If refine is True,
- then '~' blocks are refined and are only made of blank lines.
- line1 and line2 are text1 and text2 split with splitnewlines() if
- they are already available.
- """
- if opts is None:
- opts = defaultopts
- if opts.ignorews or opts.ignorewsamount:
- text1 = wsclean(opts, text1, False)
- text2 = wsclean(opts, text2, False)
- diff = bdiff.blocks(text1, text2)
- for i, s1 in enumerate(diff):
- # The first match is special.
- # we've either found a match starting at line 0 or a match later
- # in the file. If it starts later, old and new below will both be
- # empty and we'll continue to the next match.
- if i > 0:
- s = diff[i - 1]
- else:
- s = [0, 0, 0, 0]
- s = [s[1], s1[0], s[3], s1[2]]
-
- # bdiff sometimes gives huge matches past eof, this check eats them,
- # and deals with the special first match case described above
- if s[0] != s[1] or s[2] != s[3]:
- type = '!'
- if opts.ignoreblanklines:
- if lines1 is None:
- lines1 = splitnewlines(text1)
- if lines2 is None:
- lines2 = splitnewlines(text2)
- old = wsclean(opts, "".join(lines1[s[0]:s[1]]))
- new = wsclean(opts, "".join(lines2[s[2]:s[3]]))
- if old == new:
- type = '~'
- yield s, type
- yield s1, '='
-
def diffline(revs, a, b, opts):
parts = ['diff']
if opts.git:
@@ -156,10 +89,10 @@ def diffline(revs, a, b, opts):
return ' '.join(parts) + '\n'
def unidiff(a, ad, b, bd, fn1, fn2, r=None, opts=defaultopts):
- def datetag(date, fn=None):
+ def datetag(date, addtab=True):
if not opts.git and not opts.nodates:
return '\t%s\n' % date
- if fn and ' ' in fn:
+ if addtab and ' ' in fn1:
return '\t\n'
return '\n'
@@ -167,9 +100,6 @@ def unidiff(a, ad, b, bd, fn1, fn2, r=None, opts=defaultopts):
return ""
epoch = util.datestr((0, 0))
- fn1 = util.pconvert(fn1)
- fn2 = util.pconvert(fn2)
-
if not opts.text and (util.binary(a) or util.binary(b)):
if a and b and len(a) == len(b) and a == b:
return ""
@@ -177,19 +107,19 @@ def unidiff(a, ad, b, bd, fn1, fn2, r=None, opts=defaultopts):
elif not a:
b = splitnewlines(b)
if a is None:
- l1 = '--- /dev/null%s' % datetag(epoch)
+ l1 = '--- /dev/null%s' % datetag(epoch, False)
else:
- l1 = "--- %s%s" % ("a/" + fn1, datetag(ad, fn1))
- l2 = "+++ %s%s" % ("b/" + fn2, datetag(bd, fn2))
+ l1 = "--- %s%s" % ("a/" + fn1, datetag(ad))
+ l2 = "+++ %s%s" % ("b/" + fn2, datetag(bd))
l3 = "@@ -0,0 +1,%d @@\n" % len(b)
l = [l1, l2, l3] + ["+" + e for e in b]
elif not b:
a = splitnewlines(a)
- l1 = "--- %s%s" % ("a/" + fn1, datetag(ad, fn1))
+ l1 = "--- %s%s" % ("a/" + fn1, datetag(ad))
if b is None:
- l2 = '+++ /dev/null%s' % datetag(epoch)
+ l2 = '+++ /dev/null%s' % datetag(epoch, False)
else:
- l2 = "+++ %s%s" % ("b/" + fn2, datetag(bd, fn2))
+ l2 = "+++ %s%s" % ("b/" + fn2, datetag(bd))
l3 = "@@ -1,%d +0,0 @@\n" % len(a)
l = [l1, l2, l3] + ["-" + e for e in a]
else:
@@ -199,8 +129,8 @@ def unidiff(a, ad, b, bd, fn1, fn2, r=None, opts=defaultopts):
if not l:
return ""
- l.insert(0, "--- a/%s%s" % (fn1, datetag(ad, fn1)))
- l.insert(1, "+++ b/%s%s" % (fn2, datetag(bd, fn2)))
+ l.insert(0, "--- a/%s%s" % (fn1, datetag(ad)))
+ l.insert(1, "+++ b/%s%s" % (fn2, datetag(bd)))
for ln in xrange(len(l)):
if l[ln][-1] != '\n':
@@ -227,7 +157,6 @@ def _unidiff(t1, t2, l1, l2, opts=defaultopts):
return 0
return ret
- lastfunc = [0, '']
def yieldhunk(hunk):
(astart, a2, bstart, b2, delta) = hunk
aend = contextend(a2, len(l1))
@@ -236,55 +165,61 @@ def _unidiff(t1, t2, l1, l2, opts=defaultopts):
func = ""
if opts.showfunc:
- lastpos, func = lastfunc
- # walk backwards from the start of the context up to the start of
- # the previous hunk context until we find a line starting with an
- # alphanumeric char.
- for i in xrange(astart - 1, lastpos - 1, -1):
- if l1[i][0].isalnum():
- func = ' ' + l1[i].rstrip()[:40]
- lastfunc[1] = func
+ # walk backwards from the start of the context
+ # to find a line starting with an alphanumeric char.
+ for x in xrange(astart - 1, -1, -1):
+ t = l1[x].rstrip()
+ if funcre.match(t):
+ func = ' ' + t[:40]
break
- # by recording this hunk's starting point as the next place to
- # start looking for function lines, we avoid reading any line in
- # the file more than once.
- lastfunc[0] = astart
-
- # zero-length hunk ranges report their start line as one less
- if alen:
- astart += 1
- if blen:
- bstart += 1
-
- yield "@@ -%d,%d +%d,%d @@%s\n" % (astart, alen,
- bstart, blen, func)
+
+ yield "@@ -%d,%d +%d,%d @@%s\n" % (astart + 1, alen,
+ bstart + 1, blen, func)
for x in delta:
yield x
for x in xrange(a2, aend):
yield ' ' + l1[x]
+ if opts.showfunc:
+ funcre = re.compile('\w')
+
# bdiff.blocks gives us the matching sequences in the files. The loop
# below finds the spaces between those matching sequences and translates
# them into diff output.
#
+ if opts.ignorews or opts.ignorewsamount:
+ t1 = wsclean(opts, t1, False)
+ t2 = wsclean(opts, t2, False)
+
+ diff = bdiff.blocks(t1, t2)
hunk = None
- ignoredlines = 0
- for s, stype in allblocks(t1, t2, opts, l1, l2):
- a1, a2, b1, b2 = s
- if stype != '!':
- if stype == '~':
- # The diff context lines are based on t1 content. When
- # blank lines are ignored, the new lines offsets must
- # be adjusted as if equivalent blocks ('~') had the
- # same sizes on both sides.
- ignoredlines += (b2 - b1) - (a2 - a1)
- continue
+ for i, s1 in enumerate(diff):
+ # The first match is special.
+ # we've either found a match starting at line 0 or a match later
+ # in the file. If it starts later, old and new below will both be
+ # empty and we'll continue to the next match.
+ if i > 0:
+ s = diff[i - 1]
+ else:
+ s = [0, 0, 0, 0]
delta = []
+ a1 = s[1]
+ a2 = s1[0]
+ b1 = s[3]
+ b2 = s1[2]
+
old = l1[a1:a2]
new = l2[b1:b2]
- b1 -= ignoredlines
- b2 -= ignoredlines
+ # bdiff sometimes gives huge matches past eof, this check eats them,
+ # and deals with the special first match case described above
+ if not old and not new:
+ continue
+
+ if opts.ignoreblanklines:
+ if wsclean(opts, "".join(old)) == wsclean(opts, "".join(new)):
+ continue
+
astart = contextstart(a1)
bstart = contextstart(b1)
prev = None
@@ -327,7 +262,7 @@ def patchtext(bin):
def patch(a, bin):
if len(a) == 0:
# skip over trivial delta header
- return util.buffer(bin, 12)
+ return buffer(bin, 12)
return mpatch.patches(a, [bin])
# similar to difflib.SequenceMatcher.get_matching_blocks
diff --git a/mercurial/merge.py b/mercurial/merge.py
index 19ffb28..240081f 100644
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -7,7 +7,7 @@
from node import nullid, nullrev, hex, bin
from i18n import _
-import error, scmutil, util, filemerge, copies, subrepo
+import scmutil, util, filemerge, copies, subrepo, encoding
import errno, os, shutil
class mergestate(object):
@@ -81,50 +81,23 @@ class mergestate(object):
self.mark(dfile, 'r')
return r
-def _checkunknownfile(repo, wctx, mctx, f):
- return (not repo.dirstate._ignore(f)
- and os.path.isfile(repo.wjoin(f))
- and repo.dirstate.normalize(f) not in repo.dirstate
- and mctx[f].cmp(wctx[f]))
-
-def _checkunknown(repo, wctx, mctx):
+def _checkunknown(wctx, mctx):
"check for collisions between unknown files and files in mctx"
+ for f in wctx.unknown():
+ if f in mctx and mctx[f].cmp(wctx[f]):
+ raise util.Abort(_("untracked file in working directory differs"
+ " from file in requested revision: '%s'") % f)
- error = False
- for f in mctx:
- if f not in wctx and _checkunknownfile(repo, wctx, mctx, f):
- error = True
- wctx._repo.ui.warn(_("%s: untracked file differs\n") % f)
- if error:
- raise util.Abort(_("untracked files in working directory differ "
- "from files in requested revision"))
-
-def _checkcollision(mctx, wctx):
+def _checkcollision(mctx):
"check for case folding collisions in the destination context"
folded = {}
for fn in mctx:
- fold = util.normcase(fn)
+ fold = encoding.lower(fn)
if fold in folded:
raise util.Abort(_("case-folding collision between %s and %s")
% (fn, folded[fold]))
folded[fold] = fn
- if wctx:
- # class to delay looking up copy mapping
- class pathcopies(object):
- @util.propertycache
- def map(self):
- # {dst@mctx: src@wctx} copy mapping
- return copies.pathcopies(wctx, mctx)
- pc = pathcopies()
-
- for fn in wctx:
- fold = util.normcase(fn)
- mfn = folded.get(fold, None)
- if mfn and mfn != fn and pc.map.get(mfn) != fn:
- raise util.Abort(_("case-folding collision between %s and %s")
- % (mfn, fn))
-
def _forgetremoved(wctx, mctx, branchmerge):
"""
Forget removed files
@@ -179,11 +152,6 @@ def manifestmerge(repo, p1, p2, pa, overwrite, partial):
if m and m != a: # changed from a to m
return m
if n and n != a: # changed from a to n
- if (n == 'l' or a == 'l') and m1.get(f) != ma.get(f):
- # can't automatically merge symlink flag when there
- # are file-level conflicts here, let filemerge take
- # care of it
- return m
return n
return '' # flag was cleared
@@ -198,16 +166,14 @@ def manifestmerge(repo, p1, p2, pa, overwrite, partial):
elif pa == p2: # backwards
pa = p1.p1()
elif pa and repo.ui.configbool("merge", "followcopies", True):
- copy, diverge, renamedelete = copies.mergecopies(repo, p1, p2, pa)
+ dirs = repo.ui.configbool("merge", "followdirs", True)
+ copy, diverge = copies.copies(repo, p1, p2, pa, dirs)
for of, fl in diverge.iteritems():
act("divergent renames", "dr", of, fl)
- for of, fl in renamedelete.iteritems():
- act("rename and delete", "rd", of, fl)
repo.ui.note(_("resolving manifests\n"))
- repo.ui.debug(" overwrite: %s, partial: %s\n"
- % (bool(overwrite), bool(partial)))
- repo.ui.debug(" ancestor: %s, local: %s, remote: %s\n" % (pa, p1, p2))
+ repo.ui.debug(" overwrite %s partial %s\n" % (overwrite, bool(partial)))
+ repo.ui.debug(" ancestor %s local %s remote %s\n" % (pa, p1, p2))
m1, m2, ma = p1.manifest(), p2.manifest(), pa.manifest()
copied = set(copy.values())
@@ -256,7 +222,7 @@ def manifestmerge(repo, p1, p2, pa, overwrite, partial):
act("prompt keep", "a", f)
elif n[20:] == "a": # added, no remote
act("remote deleted", "f", f)
- else:
+ elif n[20:] != "u":
act("other deleted", "r", f)
for f, n in m2.iteritems():
@@ -276,13 +242,7 @@ def manifestmerge(repo, p1, p2, pa, overwrite, partial):
act("remote moved to " + f, "m",
f2, f, f, fmerge(f2, f, f2), True)
elif f not in ma:
- if (not overwrite
- and _checkunknownfile(repo, p1, p2, f)):
- rflags = fmerge(f, f, f)
- act("remote differs from untracked local",
- "m", f, f, f, rflags, False)
- else:
- act("remote created", "g", f, m2.flags(f))
+ act("remote created", "g", f, m2.flags(f))
elif n != ma[f]:
if repo.ui.promptchoice(
_("remote changed %s which local deleted\n"
@@ -313,6 +273,7 @@ def applyupdates(repo, action, wctx, mctx, actx, overwrite):
action.sort(key=actionkey)
# prescan for merges
+ u = repo.ui
for a in action:
f, m = a[:2]
if m == 'm': # merge
@@ -347,8 +308,8 @@ def applyupdates(repo, action, wctx, mctx, actx, overwrite):
numupdates = len(action)
for i, a in enumerate(action):
f, m = a[:2]
- repo.ui.progress(_('updating'), i + 1, item=f, total=numupdates,
- unit=_('files'))
+ u.progress(_('updating'), i + 1, item=f, total=numupdates,
+ unit=_('files'))
if f and f[0] == "/":
continue
if m == "r": # remove
@@ -365,8 +326,7 @@ def applyupdates(repo, action, wctx, mctx, actx, overwrite):
removed += 1
elif m == "m": # merge
if f == '.hgsubstate': # subrepo states need updating
- subrepo.submerge(repo, wctx, mctx, wctx.ancestor(mctx),
- overwrite)
+ subrepo.submerge(repo, wctx, mctx, wctx.ancestor(mctx), overwrite)
continue
f2, fd, flags, move = a[2:]
repo.wopener.audit(fd)
@@ -378,6 +338,7 @@ def applyupdates(repo, action, wctx, mctx, actx, overwrite):
updated += 1
else:
merged += 1
+ util.setflags(repo.wjoin(fd), 'l' in flags, 'x' in flags)
if (move and repo.dirstate.normalize(fd) != f
and os.path.lexists(repo.wjoin(f))):
repo.ui.debug("removing %s\n" % f)
@@ -411,18 +372,12 @@ def applyupdates(repo, action, wctx, mctx, actx, overwrite):
"multiple times to:\n") % f)
for nf in fl:
repo.ui.warn(" %s\n" % nf)
- elif m == "rd": # rename and delete
- fl = a[2]
- repo.ui.warn(_("note: possible conflict - %s was deleted "
- "and renamed to:\n") % f)
- for nf in fl:
- repo.ui.warn(" %s\n" % nf)
elif m == "e": # exec
flags = a[2]
repo.wopener.audit(f)
util.setflags(repo.wjoin(f), 'l' in flags, 'x' in flags)
ms.commit()
- repo.ui.progress(_('updating'), None, total=numupdates, unit=_('files'))
+ u.progress(_('updating'), None, total=numupdates, unit=_('files'))
return updated, merged, removed, unresolved
@@ -488,8 +443,7 @@ def recordupdates(repo, action, branchmerge):
if f:
repo.dirstate.drop(f)
-def update(repo, node, branchmerge, force, partial, ancestor=None,
- mergeancestor=False):
+def update(repo, node, branchmerge, force, partial, ancestor=None):
"""
Perform a merge between the working directory and the given node
@@ -497,10 +451,6 @@ def update(repo, node, branchmerge, force, partial, ancestor=None,
branchmerge = whether to merge between branches
force = whether to force branch merging or file overwriting
partial = a function to filter file lists (dirstate not updated)
- mergeancestor = if false, merging with an ancestor (fast-forward)
- is only allowed between different named branches. This flag
- is used by rebase extension as a temporary fix and should be
- avoided in general.
The table below shows all the behaviors of the update command
given the -c and -C or no options, whether the working directory
@@ -537,8 +487,8 @@ def update(repo, node, branchmerge, force, partial, ancestor=None,
if node is None:
# tip of current branch
try:
- node = repo.branchtip(wc.branch())
- except error.RepoLookupError:
+ node = repo.branchtags()[wc.branch()]
+ except KeyError:
if wc.branch() == "default": # no default branch!
node = repo.lookup("tip") # update to tip
else:
@@ -561,13 +511,12 @@ def update(repo, node, branchmerge, force, partial, ancestor=None,
raise util.Abort(_("merging with a working directory ancestor"
" has no effect"))
elif pa == p1:
- if not mergeancestor and p1.branch() == p2.branch():
- raise util.Abort(_("nothing to merge"),
- hint=_("use 'hg update' "
- "or check 'hg heads'"))
+ if p1.branch() == p2.branch():
+ raise util.Abort(_("nothing to merge (use 'hg update'"
+ " or check 'hg heads')"))
if not force and (wc.files() or wc.deleted()):
- raise util.Abort(_("outstanding uncommitted changes"),
- hint=_("use 'hg status' to list changes"))
+ 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 "
@@ -584,20 +533,15 @@ def update(repo, node, branchmerge, force, partial, ancestor=None,
" --check to force update)"))
else:
# Allow jumping branches if clean and specific rev given
- pa = p1
+ overwrite = True
### calculate phase
action = []
- folding = not util.checkcase(repo.path)
- if folding:
- # collision check is not needed for clean update
- if (not branchmerge and
- (force or not wc.dirty(missing=True, branch=False))):
- _checkcollision(p2, None)
- else:
- _checkcollision(p2, wc)
+ wc.status(unknown=True) # prime cache
if not force:
- _checkunknown(repo, wc, p2)
+ _checkunknown(wc, p2)
+ if not util.checkcase(repo.path):
+ _checkcollision(p2)
action += _forgetremoved(wc, p2, branchmerge)
action += manifestmerge(repo, wc, p2, pa, overwrite, partial)
@@ -610,7 +554,7 @@ def update(repo, node, branchmerge, force, partial, ancestor=None,
stats = applyupdates(repo, action, wc, p2, pa, overwrite)
if not partial:
- repo.setparents(fp1, fp2)
+ repo.dirstate.setparents(fp1, fp2)
recordupdates(repo, action, branchmerge)
if not branchmerge:
repo.dirstate.setbranch(p2.branch())
diff --git a/mercurial/minirst.py b/mercurial/minirst.py
index 0586213..01e6528 100644
--- a/mercurial/minirst.py
+++ b/mercurial/minirst.py
@@ -18,33 +18,18 @@ Remember to update http://mercurial.selenic.com/wiki/HelpStyleGuide
when adding support for new constructs.
"""
-import re
+import re, sys
import util, encoding
from i18n import _
+
def replace(text, substs):
- '''
- Apply a list of (find, replace) pairs to a text.
-
- >>> replace("foo bar", [('f', 'F'), ('b', 'B')])
- 'Foo Bar'
- >>> encoding.encoding = 'latin1'
- >>> replace('\\x81\\\\', [('\\\\', '/')])
- '\\x81/'
- >>> encoding.encoding = 'shiftjis'
- >>> replace('\\x81\\\\', [('\\\\', '/')])
- '\\x81\\\\'
- '''
-
- # some character encodings (cp932 for Japanese, at least) use
- # ASCII characters other than control/alphabet/digit as a part of
- # multi-bytes characters, so direct replacing with such characters
- # on strings in local encoding causes invalid byte sequences.
utext = text.decode(encoding.encoding)
for f, t in substs:
utext = utext.replace(f, t)
return utext.encode(encoding.encoding)
+
_blockre = re.compile(r"\n(?:\s*\n)+")
def findblocks(text):
@@ -54,14 +39,14 @@ def findblocks(text):
has an 'indent' field and a 'lines' field.
"""
blocks = []
- for b in _blockre.split(text.lstrip('\n').rstrip()):
+ for b in _blockre.split(text.strip()):
lines = b.splitlines()
- if lines:
- indent = min((len(l) - len(l.lstrip())) for l in lines)
- lines = [l[indent:] for l in lines]
- blocks.append(dict(indent=indent, lines=lines))
+ indent = min((len(l) - len(l.lstrip())) for l in lines)
+ lines = [l[indent:] for l in lines]
+ blocks.append(dict(indent=indent, lines=lines))
return blocks
+
def findliteralblocks(blocks):
"""Finds literal blocks and adds a 'type' field to the blocks.
@@ -118,7 +103,6 @@ _optionre = re.compile(r'^(-([a-zA-Z0-9]), )?(--[a-z0-9-]+)'
r'((.*) +)(.*)$')
_fieldre = re.compile(r':(?![: ])([^:]*)(?<! ):[ ]+(.*)')
_definitionre = re.compile(r'[^ ]')
-_tablere = re.compile(r'(=+\s+)*=+')
def splitparagraphs(blocks):
"""Split paragraphs into lists."""
@@ -162,28 +146,34 @@ def splitparagraphs(blocks):
i += 1
return blocks
-_fieldwidth = 14
+
+_fieldwidth = 12
def updatefieldlists(blocks):
- """Find key for field lists."""
+ """Find key and maximum key width for field lists."""
i = 0
while i < len(blocks):
if blocks[i]['type'] != 'field':
i += 1
continue
+ keywidth = 0
j = i
while j < len(blocks) and blocks[j]['type'] == 'field':
m = _fieldre.match(blocks[j]['lines'][0])
key, rest = m.groups()
blocks[j]['lines'][0] = rest
blocks[j]['key'] = key
+ keywidth = max(keywidth, len(key))
j += 1
+ for block in blocks[i:j]:
+ block['keywidth'] = keywidth
i = j + 1
return blocks
+
def updateoptionlists(blocks):
i = 0
while i < len(blocks):
@@ -248,67 +238,18 @@ def prunecontainers(blocks, keep):
# Always delete "..container:: type" block
del blocks[i]
j = i
- i -= 1
while j < len(blocks) and blocks[j]['indent'] > indent:
if prune:
del blocks[j]
+ i -= 1 # adjust outer index
else:
blocks[j]['indent'] -= adjustment
j += 1
i += 1
return blocks, pruned
-_sectionre = re.compile(r"""^([-=`:.'"~^_*+#])\1+$""")
-
-def findtables(blocks):
- '''Find simple tables
-
- Only simple one-line table elements are supported
- '''
- for block in blocks:
- # Searching for a block that looks like this:
- #
- # === ==== ===
- # A B C
- # === ==== === <- optional
- # 1 2 3
- # x y z
- # === ==== ===
- if (block['type'] == 'paragraph' and
- len(block['lines']) > 2 and
- _tablere.match(block['lines'][0]) and
- block['lines'][0] == block['lines'][-1]):
- block['type'] = 'table'
- block['header'] = False
- div = block['lines'][0]
-
- # column markers are ASCII so we can calculate column
- # position in bytes
- columns = [x for x in xrange(len(div))
- if div[x] == '=' and (x == 0 or div[x - 1] == ' ')]
- rows = []
- for l in block['lines'][1:-1]:
- if l == div:
- block['header'] = True
- continue
- row = []
- # we measure columns not in bytes or characters but in
- # colwidth which makes things tricky
- pos = columns[0] # leading whitespace is bytes
- for n, start in enumerate(columns):
- if n + 1 < len(columns):
- width = columns[n + 1] - start
- v = encoding.getcols(l, pos, width) # gather columns
- pos += len(v) # calculate byte position of end
- row.append(v.strip())
- else:
- row.append(l[pos:].strip())
- rows.append(row)
-
- block['table'] = rows
-
- return blocks
+_sectionre = re.compile(r"""^([-=`:.'"~^_*+#])\1+$""")
def findsections(blocks):
"""Finds sections.
@@ -332,6 +273,7 @@ def findsections(blocks):
del block['lines'][1]
return blocks
+
def inlineliterals(blocks):
substs = [('``', '"')]
for b in blocks:
@@ -339,6 +281,7 @@ def inlineliterals(blocks):
b['lines'] = [replace(l, substs) for l in b['lines']]
return blocks
+
def hgrole(blocks):
substs = [(':hg:`', '"hg '), ('`', '"')]
for b in blocks:
@@ -350,6 +293,7 @@ def hgrole(blocks):
b['lines'] = [replace(l, substs) for l in b['lines']]
return blocks
+
def addmargins(blocks):
"""Adds empty blocks for vertical spacing.
@@ -422,7 +366,7 @@ def formatoption(block, width):
hanging = block['optstrwidth']
initindent = '%s%s ' % (block['optstr'], ' ' * ((hanging - colwidth)))
hangindent = ' ' * (encoding.colwidth(initindent) + 1)
- return ' %s\n' % (util.wrap(desc, usablewidth,
+ return ' %s' % (util.wrap(desc, usablewidth,
initindent=initindent,
hangindent=hangindent))
@@ -437,47 +381,25 @@ def formatblock(block, width):
defindent = indent + hang * ' '
text = ' '.join(map(str.strip, block['lines']))
- return '%s\n%s\n' % (indent + admonition,
- util.wrap(text, width=width,
- initindent=defindent,
- hangindent=defindent))
+ return '%s\n%s' % (indent + admonition, util.wrap(text, width=width,
+ initindent=defindent,
+ hangindent=defindent))
if block['type'] == 'margin':
- return '\n'
+ return ''
if block['type'] == 'literal':
indent += ' '
- return indent + ('\n' + indent).join(block['lines']) + '\n'
+ return indent + ('\n' + indent).join(block['lines'])
if block['type'] == 'section':
underline = encoding.colwidth(block['lines'][0]) * block['underline']
- return "%s%s\n%s%s\n" % (indent, block['lines'][0],indent, underline)
- if block['type'] == 'table':
- table = block['table']
- # compute column widths
- widths = [max([encoding.colwidth(e) for e in c]) for c in zip(*table)]
- text = ''
- span = sum(widths) + len(widths) - 1
- indent = ' ' * block['indent']
- hang = ' ' * (len(indent) + span - widths[-1])
-
- for row in table:
- l = []
- for w, v in zip(widths, row):
- pad = ' ' * (w - encoding.colwidth(v))
- l.append(v + pad)
- l = ' '.join(l)
- l = util.wrap(l, width=width, initindent=indent, hangindent=hang)
- if not text and block['header']:
- text = l + '\n' + indent + '-' * (min(width, span)) + '\n'
- else:
- text += l + "\n"
- return text
+ return "%s%s\n%s%s" % (indent, block['lines'][0],indent, underline)
if block['type'] == 'definition':
term = indent + block['lines'][0]
hang = len(block['lines'][-1]) - len(block['lines'][-1].lstrip())
defindent = indent + hang * ' '
text = ' '.join(map(str.strip, block['lines'][1:]))
- return '%s\n%s\n' % (term, util.wrap(text, width=width,
- initindent=defindent,
- hangindent=defindent))
+ return '%s\n%s' % (term, util.wrap(text, width=width,
+ initindent=defindent,
+ hangindent=defindent))
subindent = indent
if block['type'] == 'bullet':
if block['lines'][0].startswith('| '):
@@ -488,13 +410,19 @@ def formatblock(block, width):
m = _bulletre.match(block['lines'][0])
subindent = indent + m.end() * ' '
elif block['type'] == 'field':
+ keywidth = block['keywidth']
key = block['key']
+
subindent = indent + _fieldwidth * ' '
if len(key) + 2 > _fieldwidth:
# key too large, use full line width
key = key.ljust(width)
+ elif keywidth + 2 < _fieldwidth:
+ # all keys are small, add only two spaces
+ key = key.ljust(keywidth + 2)
+ subindent = indent + (keywidth + 2) * ' '
else:
- # key fits within field width
+ # mixed sizes, use fieldwidth for this one
key = key.ljust(_fieldwidth)
block['lines'][0] = key + block['lines'][0]
elif block['type'] == 'option':
@@ -503,103 +431,15 @@ def formatblock(block, width):
text = ' '.join(map(str.strip, block['lines']))
return util.wrap(text, width=width,
initindent=indent,
- hangindent=subindent) + '\n'
-
-def formathtml(blocks):
- """Format RST blocks as HTML"""
-
- out = []
- headernest = ''
- listnest = []
-
- def openlist(start, level):
- if not listnest or listnest[-1][0] != start:
- listnest.append((start, level))
- out.append('<%s>\n' % start)
-
- blocks = [b for b in blocks if b['type'] != 'margin']
-
- for pos, b in enumerate(blocks):
- btype = b['type']
- level = b['indent']
- lines = b['lines']
-
- if btype == 'admonition':
- admonition = _admonitiontitles[b['admonitiontitle']]
- text = ' '.join(map(str.strip, lines))
- out.append('<p>\n<b>%s</b> %s\n</p>\n' % (admonition, text))
- elif btype == 'paragraph':
- out.append('<p>\n%s\n</p>\n' % '\n'.join(lines))
- elif btype == 'margin':
- pass
- elif btype == 'literal':
- out.append('<pre>\n%s\n</pre>\n' % '\n'.join(lines))
- elif btype == 'section':
- i = b['underline']
- if i not in headernest:
- headernest += i
- level = headernest.index(i) + 1
- out.append('<h%d>%s</h%d>\n' % (level, lines[0], level))
- elif btype == 'table':
- table = b['table']
- t = []
- for row in table:
- l = []
- for v in zip(row):
- if not t:
- l.append('<th>%s</th>' % v)
- else:
- l.append('<td>%s</td>' % v)
- t.append(' <tr>%s</tr>\n' % ''.join(l))
- out.append('<table>\n%s</table>\n' % ''.join(t))
- elif btype == 'definition':
- openlist('dl', level)
- term = lines[0]
- text = ' '.join(map(str.strip, lines[1:]))
- out.append(' <dt>%s\n <dd>%s\n' % (term, text))
- elif btype == 'bullet':
- bullet, head = lines[0].split(' ', 1)
- if bullet == '-':
- openlist('ul', level)
- else:
- openlist('ol', level)
- out.append(' <li> %s\n' % ' '.join([head] + lines[1:]))
- elif btype == 'field':
- openlist('dl', level)
- key = b['key']
- text = ' '.join(map(str.strip, lines))
- out.append(' <dt>%s\n <dd>%s\n' % (key, text))
- elif btype == 'option':
- openlist('dl', level)
- opt = b['optstr']
- desc = ' '.join(map(str.strip, lines))
- out.append(' <dt>%s\n <dd>%s\n' % (opt, desc))
-
- # close lists if indent level of next block is lower
- if listnest:
- start, level = listnest[-1]
- if pos == len(blocks) - 1:
- out.append('</%s>\n' % start)
- listnest.pop()
- else:
- nb = blocks[pos + 1]
- ni = nb['indent']
- if (ni < level or
- (ni == level and
- nb['type'] not in 'definition bullet field option')):
- out.append('</%s>\n' % start)
- listnest.pop()
-
- return ''.join(out)
-
-def parse(text, indent=0, keep=None):
- """Parse text into a list of blocks"""
- pruned = []
+ hangindent=subindent)
+
+
+def format(text, width, indent=0, keep=None):
+ """Parse and format the text according to width."""
blocks = findblocks(text)
for b in blocks:
b['indent'] += indent
blocks = findliteralblocks(blocks)
- blocks = findtables(blocks)
blocks, pruned = prunecontainers(blocks, keep or [])
blocks = findsections(blocks)
blocks = inlineliterals(blocks)
@@ -610,68 +450,33 @@ def parse(text, indent=0, keep=None):
blocks = addmargins(blocks)
blocks = prunecomments(blocks)
blocks = findadmonitions(blocks)
- return blocks, pruned
-
-def formatblocks(blocks, width):
- text = ''.join(formatblock(b, width) for b in blocks)
- return text
-
-def format(text, width=80, indent=0, keep=None, style='plain'):
- """Parse and format the text according to width."""
- blocks, pruned = parse(text, indent, keep or [])
- if style == 'html':
- text = formathtml(blocks)
- else:
- text = ''.join(formatblock(b, width) for b in blocks)
+ text = '\n'.join(formatblock(b, width) for b in blocks)
if keep is None:
return text
else:
return text, pruned
-def getsections(blocks):
- '''return a list of (section name, nesting level, blocks) tuples'''
- nest = ""
- level = 0
- secs = []
- for b in blocks:
- if b['type'] == 'section':
- i = b['underline']
- if i not in nest:
- nest += i
- level = nest.index(i) + 1
- nest = nest[:level]
- secs.append((b['lines'][0], level, [b]))
- else:
- if not secs:
- # add an initial empty section
- secs = [('', 0, [])]
- secs[-1][2].append(b)
- return secs
-
-def decorateblocks(blocks, width):
- '''generate a list of (section name, line text) pairs for search'''
- lines = []
- for s in getsections(blocks):
- section = s[0]
- text = formatblocks(s[2], width)
- lines.append([(section, l) for l in text.splitlines(True)])
- return lines
-
-def maketable(data, indent=0, header=False):
- '''Generate an RST table for the given table data as a list of lines'''
-
- widths = [max(encoding.colwidth(e) for e in c) for c in zip(*data)]
- indent = ' ' * indent
- div = indent + ' '.join('=' * w for w in widths) + '\n'
-
- out = [div]
- for row in data:
- l = []
- for w, v in zip(widths, row):
- pad = ' ' * (w - encoding.colwidth(v))
- l.append(v + pad)
- out.append(indent + ' '.join(l) + "\n")
- if header and len(data) > 1:
- out.insert(2, div)
- out.append(div)
- return out
+
+if __name__ == "__main__":
+ from pprint import pprint
+
+ def debug(func, *args):
+ blocks = func(*args)
+ print "*** after %s:" % func.__name__
+ pprint(blocks)
+ print
+ return blocks
+
+ text = sys.stdin.read()
+ blocks = debug(findblocks, text)
+ blocks = debug(findliteralblocks, blocks)
+ blocks, pruned = debug(prunecontainers, blocks, sys.argv[1:])
+ blocks = debug(inlineliterals, blocks)
+ blocks = debug(splitparagraphs, blocks)
+ blocks = debug(updatefieldlists, blocks)
+ blocks = debug(updateoptionlists, blocks)
+ blocks = debug(findsections, blocks)
+ blocks = debug(addmargins, blocks)
+ blocks = debug(prunecomments, blocks)
+ blocks = debug(findadmonitions, blocks)
+ print '\n'.join(formatblock(b, 30) for b in blocks)
diff --git a/mercurial/mpatch.c b/mercurial/mpatch.c
index ab429b5..e85d20d 100644
--- a/mercurial/mpatch.c
+++ b/mercurial/mpatch.c
@@ -20,13 +20,48 @@
of the GNU General Public License, incorporated herein by reference.
*/
-#define PY_SSIZE_T_CLEAN
#include <Python.h>
#include <stdlib.h>
#include <string.h>
#include "util.h"
+/* Definitions to get compatibility with python 2.4 and earlier which
+ does not have Py_ssize_t. See also PEP 353.
+ Note: msvc (8 or earlier) does not have ssize_t, so we use Py_ssize_t.
+*/
+#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
+typedef int Py_ssize_t;
+#define PY_SSIZE_T_MAX INT_MAX
+#define PY_SSIZE_T_MIN INT_MIN
+#endif
+
+#ifdef _WIN32
+#ifdef _MSC_VER
+/* msvc 6.0 has problems */
+#define inline __inline
+typedef unsigned long uint32_t;
+#else
+#include <stdint.h>
+#endif
+static uint32_t ntohl(uint32_t x)
+{
+ return ((x & 0x000000ffUL) << 24) |
+ ((x & 0x0000ff00UL) << 8) |
+ ((x & 0x00ff0000UL) >> 8) |
+ ((x & 0xff000000UL) >> 24);
+}
+#else
+/* not windows */
+#include <sys/types.h>
+#if defined __BEOS__ && !defined __HAIKU__
+#include <ByteOrder.h>
+#else
+#include <arpa/inet.h>
+#endif
+#include <inttypes.h>
+#endif
+
static char mpatch_doc[] = "Efficient binary patching.";
static PyObject *mpatch_Error;
@@ -39,7 +74,7 @@ struct flist {
struct frag *base, *head, *tail;
};
-static struct flist *lalloc(Py_ssize_t size)
+static struct flist *lalloc(int size)
{
struct flist *a = NULL;
@@ -69,7 +104,7 @@ static void lfree(struct flist *a)
}
}
-static Py_ssize_t lsize(struct flist *a)
+static int lsize(struct flist *a)
{
return a->tail - a->head;
}
@@ -198,11 +233,12 @@ static struct flist *combine(struct flist *a, struct flist *b)
}
/* decode a binary patch into a hunk list */
-static struct flist *decode(const char *bin, Py_ssize_t len)
+static struct flist *decode(const char *bin, int len)
{
struct flist *l;
struct frag *lt;
const char *data = bin + 12, *end = bin + len;
+ uint32_t decode[3]; /* for dealing with alignment issues */
/* assume worst case size, we won't have many of these lists */
l = lalloc(len / 12);
@@ -212,9 +248,10 @@ static struct flist *decode(const char *bin, Py_ssize_t len)
lt = l->tail;
while (data <= end) {
- lt->start = getbe32(bin);
- lt->end = getbe32(bin + 4);
- lt->len = getbe32(bin + 8);
+ memcpy(decode, bin, 12);
+ lt->start = ntohl(decode[0]);
+ lt->end = ntohl(decode[1]);
+ lt->len = ntohl(decode[2]);
if (lt->start > lt->end)
break; /* sanity check */
bin = data + lt->len;
@@ -237,9 +274,9 @@ static struct flist *decode(const char *bin, Py_ssize_t len)
}
/* calculate the size of resultant text */
-static Py_ssize_t calcsize(Py_ssize_t len, struct flist *l)
+static int calcsize(int len, struct flist *l)
{
- Py_ssize_t outlen = 0, last = 0;
+ int outlen = 0, last = 0;
struct frag *f = l->head;
while (f != l->tail) {
@@ -259,7 +296,7 @@ static Py_ssize_t calcsize(Py_ssize_t len, struct flist *l)
return outlen;
}
-static int apply(char *buf, const char *orig, Py_ssize_t len, struct flist *l)
+static int apply(char *buf, const char *orig, int len, struct flist *l)
{
struct frag *f = l->head;
int last = 0;
@@ -284,9 +321,10 @@ static int apply(char *buf, const char *orig, Py_ssize_t len, struct flist *l)
}
/* recursively generate a patch of all bins between start and end */
-static struct flist *fold(PyObject *bins, Py_ssize_t start, Py_ssize_t end)
+static struct flist *fold(PyObject *bins, int start, int end)
{
- Py_ssize_t len, blen;
+ int len;
+ Py_ssize_t blen;
const char *buffer;
if (start + 1 == end) {
@@ -312,7 +350,8 @@ patches(PyObject *self, PyObject *args)
struct flist *patch;
const char *in;
char *out;
- Py_ssize_t len, outlen, inlen;
+ int len, outlen;
+ Py_ssize_t inlen;
if (!PyArg_ParseTuple(args, "OO:mpatch", &text, &bins))
return NULL;
@@ -356,8 +395,9 @@ static PyObject *
patchedsize(PyObject *self, PyObject *args)
{
long orig, start, end, len, outlen = 0, last = 0;
- Py_ssize_t patchlen;
+ int patchlen;
char *bin, *binend, *data;
+ uint32_t decode[3]; /* for dealing with alignment issues */
if (!PyArg_ParseTuple(args, "ls#", &orig, &bin, &patchlen))
return NULL;
@@ -366,9 +406,10 @@ patchedsize(PyObject *self, PyObject *args)
data = bin + 12;
while (data <= binend) {
- start = getbe32(bin);
- end = getbe32(bin + 4);
- len = getbe32(bin + 8);
+ memcpy(decode, bin, 12);
+ start = ntohl(decode[0]);
+ end = ntohl(decode[1]);
+ len = ntohl(decode[2]);
if (start > end)
break; /* sanity check */
bin = data + len;
diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py
deleted file mode 100644
index aea116d..0000000
--- a/mercurial/obsolete.py
+++ /dev/null
@@ -1,331 +0,0 @@
-# obsolete.py - obsolete markers handling
-#
-# Copyright 2012 Pierre-Yves David <pierre-yves.david@ens-lyon.org>
-# Logilab SA <contact@logilab.fr>
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-"""Obsolete markers handling
-
-An obsolete marker maps an old changeset to a list of new
-changesets. If the list of new changesets is empty, the old changeset
-is said to be "killed". Otherwise, the old changeset is being
-"replaced" by the new changesets.
-
-Obsolete markers can be used to record and distribute changeset graph
-transformations performed by history rewriting operations, and help
-building new tools to reconciliate conflicting rewriting actions. To
-facilitate conflicts resolution, markers include various annotations
-besides old and news changeset identifiers, such as creation date or
-author name.
-
-
-Format
-------
-
-Markers are stored in an append-only file stored in
-'.hg/store/obsstore'.
-
-The file starts with a version header:
-
-- 1 unsigned byte: version number, starting at zero.
-
-
-The header is followed by the markers. Each marker is made of:
-
-- 1 unsigned byte: number of new changesets "R", could be zero.
-
-- 1 unsigned 32-bits integer: metadata size "M" in bytes.
-
-- 1 byte: a bit field. It is reserved for flags used in obsolete
- markers common operations, to avoid repeated decoding of metadata
- entries.
-
-- 20 bytes: obsoleted changeset identifier.
-
-- N*20 bytes: new changesets identifiers.
-
-- M bytes: metadata as a sequence of nul-terminated strings. Each
- string contains a key and a value, separated by a color ':', without
- additional encoding. Keys cannot contain '\0' or ':' and values
- cannot contain '\0'.
-"""
-import struct
-from mercurial import util, base85
-from i18n import _
-
-# the obsolete feature is not mature enought to be enabled by default.
-# you have to rely on third party extension extension to enable this.
-_enabled = False
-
-_pack = struct.pack
-_unpack = struct.unpack
-
-# the obsolete feature is not mature enought to be enabled by default.
-# you have to rely on third party extension extension to enable this.
-_enabled = False
-
-# data used for parsing and writing
-_fmversion = 0
-_fmfixed = '>BIB20s'
-_fmnode = '20s'
-_fmfsize = struct.calcsize(_fmfixed)
-_fnodesize = struct.calcsize(_fmnode)
-
-def _readmarkers(data):
- """Read and enumerate markers from raw data"""
- off = 0
- diskversion = _unpack('>B', data[off:off + 1])[0]
- off += 1
- if diskversion != _fmversion:
- raise util.Abort(_('parsing obsolete marker: unknown version %r')
- % diskversion)
-
- # Loop on markers
- l = len(data)
- while off + _fmfsize <= l:
- # read fixed part
- cur = data[off:off + _fmfsize]
- off += _fmfsize
- nbsuc, mdsize, flags, pre = _unpack(_fmfixed, cur)
- # read replacement
- sucs = ()
- if nbsuc:
- s = (_fnodesize * nbsuc)
- cur = data[off:off + s]
- sucs = _unpack(_fmnode * nbsuc, cur)
- off += s
- # read metadata
- # (metadata will be decoded on demand)
- metadata = data[off:off + mdsize]
- if len(metadata) != mdsize:
- raise util.Abort(_('parsing obsolete marker: metadata is too '
- 'short, %d bytes expected, got %d')
- % (mdsize, len(metadata)))
- off += mdsize
- yield (pre, sucs, flags, metadata)
-
-def encodemeta(meta):
- """Return encoded metadata string to string mapping.
-
- Assume no ':' in key and no '\0' in both key and value."""
- for key, value in meta.iteritems():
- if ':' in key or '\0' in key:
- raise ValueError("':' and '\0' are forbidden in metadata key'")
- if '\0' in value:
- raise ValueError("':' are forbidden in metadata value'")
- return '\0'.join(['%s:%s' % (k, meta[k]) for k in sorted(meta)])
-
-def decodemeta(data):
- """Return string to string dictionary from encoded version."""
- d = {}
- for l in data.split('\0'):
- if l:
- key, value = l.split(':')
- d[key] = value
- return d
-
-class marker(object):
- """Wrap obsolete marker raw data"""
-
- def __init__(self, repo, data):
- # the repo argument will be used to create changectx in later version
- self._repo = repo
- self._data = data
- self._decodedmeta = None
-
- def precnode(self):
- """Precursor changeset node identifier"""
- return self._data[0]
-
- def succnodes(self):
- """List of successor changesets node identifiers"""
- return self._data[1]
-
- def metadata(self):
- """Decoded metadata dictionary"""
- if self._decodedmeta is None:
- self._decodedmeta = decodemeta(self._data[3])
- return self._decodedmeta
-
- def date(self):
- """Creation date as (unixtime, offset)"""
- parts = self.metadata()['date'].split(' ')
- return (float(parts[0]), int(parts[1]))
-
-class obsstore(object):
- """Store obsolete markers
-
- Markers can be accessed with two mappings:
- - precursors: old -> set(new)
- - successors: new -> set(old)
- """
-
- def __init__(self, sopener):
- self._all = []
- # new markers to serialize
- self.precursors = {}
- self.successors = {}
- self.sopener = sopener
- data = sopener.tryread('obsstore')
- if data:
- self._load(_readmarkers(data))
-
- def __iter__(self):
- return iter(self._all)
-
- def __nonzero__(self):
- return bool(self._all)
-
- def create(self, transaction, prec, succs=(), flag=0, metadata=None):
- """obsolete: add a new obsolete marker
-
- * ensuring it is hashable
- * check mandatory metadata
- * encode metadata
- """
- if metadata is None:
- metadata = {}
- if len(prec) != 20:
- raise ValueError(prec)
- for succ in succs:
- if len(succ) != 20:
- raise ValueError(succ)
- marker = (str(prec), tuple(succs), int(flag), encodemeta(metadata))
- self.add(transaction, [marker])
-
- def add(self, transaction, markers):
- """Add new markers to the store
-
- Take care of filtering duplicate.
- Return the number of new marker."""
- if not _enabled:
- raise util.Abort('obsolete feature is not enabled on this repo')
- new = [m for m in markers if m not in self._all]
- if new:
- f = self.sopener('obsstore', 'ab')
- try:
- # Whether the file's current position is at the begin or at
- # the end after opening a file for appending is implementation
- # defined. So we must seek to the end before calling tell(),
- # or we may get a zero offset for non-zero sized files on
- # some platforms (issue3543).
- f.seek(0, 2) # os.SEEK_END
- offset = f.tell()
- transaction.add('obsstore', offset)
- # offset == 0: new file - add the version header
- for bytes in _encodemarkers(new, offset == 0):
- f.write(bytes)
- finally:
- # XXX: f.close() == filecache invalidation == obsstore rebuilt.
- # call 'filecacheentry.refresh()' here
- f.close()
- self._load(new)
- return len(new)
-
- def mergemarkers(self, transation, data):
- markers = _readmarkers(data)
- self.add(transation, markers)
-
- def _load(self, markers):
- for mark in markers:
- self._all.append(mark)
- pre, sucs = mark[:2]
- self.precursors.setdefault(pre, set()).add(mark)
- for suc in sucs:
- self.successors.setdefault(suc, set()).add(mark)
-
-def _encodemarkers(markers, addheader=False):
- # Kept separate from flushmarkers(), it will be reused for
- # markers exchange.
- if addheader:
- yield _pack('>B', _fmversion)
- for marker in markers:
- yield _encodeonemarker(marker)
-
-
-def _encodeonemarker(marker):
- pre, sucs, flags, metadata = marker
- nbsuc = len(sucs)
- format = _fmfixed + (_fmnode * nbsuc)
- data = [nbsuc, len(metadata), flags, pre]
- data.extend(sucs)
- return _pack(format, *data) + metadata
-
-# arbitrary picked to fit into 8K limit from HTTP server
-# you have to take in account:
-# - the version header
-# - the base85 encoding
-_maxpayload = 5300
-
-def listmarkers(repo):
- """List markers over pushkey"""
- if not repo.obsstore:
- return {}
- keys = {}
- parts = []
- currentlen = _maxpayload * 2 # ensure we create a new part
- for marker in repo.obsstore:
- nextdata = _encodeonemarker(marker)
- if (len(nextdata) + currentlen > _maxpayload):
- currentpart = []
- currentlen = 0
- parts.append(currentpart)
- currentpart.append(nextdata)
- currentlen += len(nextdata)
- for idx, part in enumerate(reversed(parts)):
- data = ''.join([_pack('>B', _fmversion)] + part)
- keys['dump%i' % idx] = base85.b85encode(data)
- return keys
-
-def pushmarker(repo, key, old, new):
- """Push markers over pushkey"""
- if not key.startswith('dump'):
- repo.ui.warn(_('unknown key: %r') % key)
- return 0
- if old:
- repo.ui.warn(_('unexpected old value') % key)
- return 0
- data = base85.b85decode(new)
- lock = repo.lock()
- try:
- tr = repo.transaction('pushkey: obsolete markers')
- try:
- repo.obsstore.mergemarkers(tr, data)
- tr.close()
- return 1
- finally:
- tr.release()
- finally:
- lock.release()
-
-def allmarkers(repo):
- """all obsolete markers known in a repository"""
- for markerdata in repo.obsstore:
- yield marker(repo, markerdata)
-
-def precursormarkers(ctx):
- """obsolete marker making this changeset obsolete"""
- for data in ctx._repo.obsstore.precursors.get(ctx.node(), ()):
- yield marker(ctx._repo, data)
-
-def successormarkers(ctx):
- """obsolete marker marking this changeset as a successors"""
- for data in ctx._repo.obsstore.successors.get(ctx.node(), ()):
- yield marker(ctx._repo, data)
-
-def anysuccessors(obsstore, node):
- """Yield every successor of <node>
-
- This this a linear yield unsuitable to detect splitted changeset."""
- remaining = set([node])
- seen = set(remaining)
- while remaining:
- current = remaining.pop()
- yield current
- for mark in obsstore.precursors.get(current, ()):
- for suc in mark[1]:
- if suc not in seen:
- seen.add(suc)
- remaining.add(suc)
diff --git a/mercurial/osutil.c b/mercurial/osutil.c
index 5c3efb7..196d5fe 100644
--- a/mercurial/osutil.c
+++ b/mercurial/osutil.c
@@ -12,7 +12,6 @@
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
-#include <errno.h>
#ifdef _WIN32
#include <windows.h>
@@ -289,8 +288,7 @@ static PyObject *_listdir(char *path, int pathlen, int keepstat, char *skip)
#endif
if (pathlen >= PATH_MAX) {
- errno = ENAMETOOLONG;
- PyErr_SetFromErrnoWithFilename(PyExc_OSError, path);
+ PyErr_SetString(PyExc_ValueError, "path too long");
goto error_value;
}
strncpy(fullpath, path, PATH_MAX);
@@ -331,9 +329,6 @@ static PyObject *_listdir(char *path, int pathlen, int keepstat, char *skip)
err = lstat(fullpath, &st);
#endif
if (err == -1) {
- /* race with file deletion? */
- if (errno == ENOENT)
- continue;
strncpy(fullpath + pathlen + 1, ent->d_name,
PATH_MAX - pathlen);
fullpath[PATH_MAX] = 0;
diff --git a/mercurial/parsers.c b/mercurial/parsers.c
index 6710ea6..66060d1 100644
--- a/mercurial/parsers.c
+++ b/mercurial/parsers.c
@@ -13,10 +13,8 @@
#include "util.h"
-static inline int hexdigit(const char *p, Py_ssize_t off)
+static int hexdigit(char c)
{
- char c = p[off];
-
if (c >= '0' && c <= '9')
return c - '0';
if (c >= 'a' && c <= 'f')
@@ -34,8 +32,8 @@ static inline int hexdigit(const char *p, Py_ssize_t off)
static PyObject *unhexlify(const char *str, int len)
{
PyObject *ret;
+ const char *c;
char *d;
- int i;
ret = PyBytes_FromStringAndSize(NULL, len / 2);
@@ -44,9 +42,9 @@ static PyObject *unhexlify(const char *str, int len)
d = PyBytes_AsString(ret);
- for (i = 0; i < len;) {
- int hi = hexdigit(str, i++);
- int lo = hexdigit(str, i++);
+ for (c = str; c < str + len;) {
+ int hi = hexdigit(*c++);
+ int lo = hexdigit(*c++);
*d++ = (hi << 4) | lo;
}
@@ -137,6 +135,33 @@ quit:
return NULL;
}
+#ifdef _WIN32
+#ifdef _MSC_VER
+/* msvc 6.0 has problems */
+#define inline __inline
+typedef unsigned long uint32_t;
+typedef unsigned __int64 uint64_t;
+#else
+#include <stdint.h>
+#endif
+static uint32_t ntohl(uint32_t x)
+{
+ return ((x & 0x000000ffUL) << 24) |
+ ((x & 0x0000ff00UL) << 8) |
+ ((x & 0x00ff0000UL) >> 8) |
+ ((x & 0xff000000UL) >> 24);
+}
+#else
+/* not windows */
+#include <sys/types.h>
+#if defined __BEOS__ && !defined __HAIKU__
+#include <ByteOrder.h>
+#else
+#include <arpa/inet.h>
+#endif
+#include <inttypes.h>
+#endif
+
static PyObject *parse_dirstate(PyObject *self, PyObject *args)
{
PyObject *dmap, *cmap, *parents = NULL, *ret = NULL;
@@ -145,6 +170,7 @@ static PyObject *parse_dirstate(PyObject *self, PyObject *args)
int state, mode, size, mtime;
unsigned int flen;
int len;
+ uint32_t decode[4]; /* for alignment */
if (!PyArg_ParseTuple(args, "O!O!s#:parse_dirstate",
&PyDict_Type, &dmap,
@@ -167,10 +193,11 @@ static PyObject *parse_dirstate(PyObject *self, PyObject *args)
while (cur < end - 17) {
/* unpack header */
state = *cur;
- mode = getbe32(cur + 1);
- size = getbe32(cur + 5);
- mtime = getbe32(cur + 9);
- flen = getbe32(cur + 13);
+ memcpy(decode, cur + 1, 16);
+ mode = ntohl(decode[0]);
+ size = ntohl(decode[1]);
+ mtime = ntohl(decode[2]);
+ flen = ntohl(decode[3]);
cur += 17;
if (cur + flen > end || cur + flen < cur) {
PyErr_SetString(PyExc_ValueError, "overflow in dirstate");
@@ -214,240 +241,10 @@ quit:
return ret;
}
-static inline int getintat(PyObject *tuple, int off, uint32_t *v)
-{
- PyObject *o = PyTuple_GET_ITEM(tuple, off);
- long val;
-
- if (PyInt_Check(o))
- val = PyInt_AS_LONG(o);
- else if (PyLong_Check(o)) {
- val = PyLong_AsLong(o);
- if (val == -1 && PyErr_Occurred())
- return -1;
- } else {
- PyErr_SetString(PyExc_TypeError, "expected an int or long");
- return -1;
- }
- if (LONG_MAX > INT_MAX && (val > INT_MAX || val < INT_MIN)) {
- PyErr_SetString(PyExc_OverflowError,
- "Python value to large to convert to uint32_t");
- return -1;
- }
- *v = (uint32_t)val;
- return 0;
-}
-
-static PyObject *dirstate_unset;
-
-/*
- * Efficiently pack a dirstate object into its on-disk format.
- */
-static PyObject *pack_dirstate(PyObject *self, PyObject *args)
-{
- PyObject *packobj = NULL;
- PyObject *map, *copymap, *pl;
- Py_ssize_t nbytes, pos, l;
- PyObject *k, *v, *pn;
- char *p, *s;
- double now;
-
- if (!PyArg_ParseTuple(args, "O!O!Od:pack_dirstate",
- &PyDict_Type, &map, &PyDict_Type, &copymap,
- &pl, &now))
- return NULL;
-
- if (!PySequence_Check(pl) || PySequence_Size(pl) != 2) {
- PyErr_SetString(PyExc_TypeError, "expected 2-element sequence");
- return NULL;
- }
-
- /* Figure out how much we need to allocate. */
- for (nbytes = 40, pos = 0; PyDict_Next(map, &pos, &k, &v);) {
- PyObject *c;
- if (!PyString_Check(k)) {
- PyErr_SetString(PyExc_TypeError, "expected string key");
- goto bail;
- }
- nbytes += PyString_GET_SIZE(k) + 17;
- c = PyDict_GetItem(copymap, k);
- if (c) {
- if (!PyString_Check(c)) {
- PyErr_SetString(PyExc_TypeError,
- "expected string key");
- goto bail;
- }
- nbytes += PyString_GET_SIZE(c) + 1;
- }
- }
-
- packobj = PyString_FromStringAndSize(NULL, nbytes);
- if (packobj == NULL)
- goto bail;
-
- p = PyString_AS_STRING(packobj);
-
- pn = PySequence_ITEM(pl, 0);
- if (PyString_AsStringAndSize(pn, &s, &l) == -1 || l != 20) {
- PyErr_SetString(PyExc_TypeError, "expected a 20-byte hash");
- goto bail;
- }
- memcpy(p, s, l);
- p += 20;
- pn = PySequence_ITEM(pl, 1);
- if (PyString_AsStringAndSize(pn, &s, &l) == -1 || l != 20) {
- PyErr_SetString(PyExc_TypeError, "expected a 20-byte hash");
- goto bail;
- }
- memcpy(p, s, l);
- p += 20;
-
- for (pos = 0; PyDict_Next(map, &pos, &k, &v); ) {
- uint32_t mode, size, mtime;
- Py_ssize_t len, l;
- PyObject *o;
- char *s, *t;
-
- if (!PyTuple_Check(v) || PyTuple_GET_SIZE(v) != 4) {
- PyErr_SetString(PyExc_TypeError, "expected a 4-tuple");
- goto bail;
- }
- o = PyTuple_GET_ITEM(v, 0);
- if (PyString_AsStringAndSize(o, &s, &l) == -1 || l != 1) {
- PyErr_SetString(PyExc_TypeError, "expected one byte");
- goto bail;
- }
- *p++ = *s;
- if (getintat(v, 1, &mode) == -1)
- goto bail;
- if (getintat(v, 2, &size) == -1)
- goto bail;
- if (getintat(v, 3, &mtime) == -1)
- goto bail;
- if (*s == 'n' && mtime == (uint32_t)now) {
- /* See dirstate.py:write for why we do this. */
- if (PyDict_SetItem(map, k, dirstate_unset) == -1)
- goto bail;
- mode = 0, size = -1, mtime = -1;
- }
- putbe32(mode, p);
- putbe32(size, p + 4);
- putbe32(mtime, p + 8);
- t = p + 12;
- p += 16;
- len = PyString_GET_SIZE(k);
- memcpy(p, PyString_AS_STRING(k), len);
- p += len;
- o = PyDict_GetItem(copymap, k);
- if (o) {
- *p++ = '\0';
- l = PyString_GET_SIZE(o);
- memcpy(p, PyString_AS_STRING(o), l);
- p += l;
- len += l + 1;
- }
- putbe32((uint32_t)len, t);
- }
-
- pos = p - PyString_AS_STRING(packobj);
- if (pos != nbytes) {
- PyErr_Format(PyExc_SystemError, "bad dirstate size: %ld != %ld",
- (long)pos, (long)nbytes);
- goto bail;
- }
+const char nullid[20];
+const int nullrev = -1;
- return packobj;
-bail:
- Py_XDECREF(packobj);
- return NULL;
-}
-
-/*
- * A base-16 trie for fast node->rev mapping.
- *
- * Positive value is index of the next node in the trie
- * Negative value is a leaf: -(rev + 1)
- * Zero is empty
- */
-typedef struct {
- int children[16];
-} nodetree;
-
-/*
- * This class has two behaviours.
- *
- * When used in a list-like way (with integer keys), we decode an
- * entry in a RevlogNG index file on demand. Our last entry is a
- * sentinel, always a nullid. We have limited support for
- * integer-keyed insert and delete, only at elements right before the
- * sentinel.
- *
- * With string keys, we lazily perform a reverse mapping from node to
- * rev, using a base-16 trie.
- */
-typedef struct {
- PyObject_HEAD
- /* Type-specific fields go here. */
- PyObject *data; /* raw bytes of index */
- PyObject **cache; /* cached tuples */
- const char **offsets; /* populated on demand */
- Py_ssize_t raw_length; /* original number of elements */
- Py_ssize_t length; /* current number of elements */
- PyObject *added; /* populated on demand */
- PyObject *headrevs; /* cache, invalidated on changes */
- nodetree *nt; /* base-16 trie */
- int ntlength; /* # nodes in use */
- int ntcapacity; /* # nodes allocated */
- int ntdepth; /* maximum depth of tree */
- int ntsplits; /* # splits performed */
- int ntrev; /* last rev scanned */
- int ntlookups; /* # lookups */
- int ntmisses; /* # lookups that miss the cache */
- int inlined;
-} indexObject;
-
-static Py_ssize_t index_length(const indexObject *self)
-{
- if (self->added == NULL)
- return self->length;
- return self->length + PyList_GET_SIZE(self->added);
-}
-
-static PyObject *nullentry;
-static const char nullid[20];
-
-static long inline_scan(indexObject *self, const char **offsets);
-
-#if LONG_MAX == 0x7fffffffL
-static char *tuple_format = "Kiiiiiis#";
-#else
-static char *tuple_format = "kiiiiiis#";
-#endif
-
-/* A RevlogNG v1 index entry is 64 bytes long. */
-static const long v1_hdrsize = 64;
-
-/*
- * Return a pointer to the beginning of a RevlogNG record.
- */
-static const char *index_deref(indexObject *self, Py_ssize_t pos)
-{
- if (self->inlined && pos > 0) {
- if (self->offsets == NULL) {
- self->offsets = malloc(self->raw_length *
- sizeof(*self->offsets));
- if (self->offsets == NULL)
- return (const char *)PyErr_NoMemory();
- inline_scan(self, self->offsets);
- }
- return self->offsets[pos];
- }
-
- return PyString_AS_STRING(self->data) + pos * v1_hdrsize;
-}
-
-/*
- * RevlogNG format (all in big endian, data may be inlined):
+/* RevlogNG format (all in big endian, data may be inlined):
* 6 bytes: offset
* 2 bytes: flags
* 4 bytes: compressed length
@@ -458,1076 +255,147 @@ static const char *index_deref(indexObject *self, Py_ssize_t pos)
* 4 bytes: parent 2 revision
* 32 bytes: nodeid (only 20 bytes used)
*/
-static PyObject *index_get(indexObject *self, Py_ssize_t pos)
+static int _parse_index_ng(const char *data, int size, int inlined,
+ PyObject *index)
{
+ PyObject *entry;
+ int n = 0, err;
uint64_t offset_flags;
int comp_len, uncomp_len, base_rev, link_rev, parent_1, parent_2;
const char *c_node_id;
- const char *data;
- Py_ssize_t length = index_length(self);
- PyObject *entry;
-
- if (pos < 0)
- pos += length;
-
- if (pos < 0 || pos >= length) {
- PyErr_SetString(PyExc_IndexError, "revlog index out of range");
- return NULL;
- }
-
- if (pos == length - 1) {
- Py_INCREF(nullentry);
- return nullentry;
- }
-
- if (pos >= self->length - 1) {
- PyObject *obj;
- obj = PyList_GET_ITEM(self->added, pos - self->length + 1);
- Py_INCREF(obj);
- return obj;
- }
-
- if (self->cache) {
- if (self->cache[pos]) {
- Py_INCREF(self->cache[pos]);
- return self->cache[pos];
+ const char *end = data + size;
+ uint32_t decode[8]; /* to enforce alignment with inline data */
+
+ while (data < end) {
+ unsigned int step;
+
+ memcpy(decode, data, 32);
+ offset_flags = ntohl(decode[1]);
+ if (n == 0) /* mask out version number for the first entry */
+ offset_flags &= 0xFFFF;
+ else {
+ uint32_t offset_high = ntohl(decode[0]);
+ offset_flags |= ((uint64_t)offset_high) << 32;
}
- } else {
- self->cache = calloc(self->raw_length, sizeof(PyObject *));
- if (self->cache == NULL)
- return PyErr_NoMemory();
- }
-
- data = index_deref(self, pos);
- if (data == NULL)
- return NULL;
-
- offset_flags = getbe32(data + 4);
- if (pos == 0) /* mask out version number for the first entry */
- offset_flags &= 0xFFFF;
- else {
- uint32_t offset_high = getbe32(data);
- offset_flags |= ((uint64_t)offset_high) << 32;
- }
- comp_len = getbe32(data + 8);
- uncomp_len = getbe32(data + 12);
- base_rev = getbe32(data + 16);
- link_rev = getbe32(data + 20);
- parent_1 = getbe32(data + 24);
- parent_2 = getbe32(data + 28);
- c_node_id = data + 32;
+ comp_len = ntohl(decode[2]);
+ uncomp_len = ntohl(decode[3]);
+ base_rev = ntohl(decode[4]);
+ link_rev = ntohl(decode[5]);
+ parent_1 = ntohl(decode[6]);
+ parent_2 = ntohl(decode[7]);
+ c_node_id = data + 32;
- entry = Py_BuildValue(tuple_format, offset_flags, comp_len,
+ entry = Py_BuildValue("Liiiiiis#", offset_flags, comp_len,
uncomp_len, base_rev, link_rev,
parent_1, parent_2, c_node_id, 20);
- if (entry)
- PyObject_GC_UnTrack(entry);
-
- self->cache[pos] = entry;
- Py_INCREF(entry);
-
- return entry;
-}
-
-/*
- * Return the 20-byte SHA of the node corresponding to the given rev.
- */
-static const char *index_node(indexObject *self, Py_ssize_t pos)
-{
- Py_ssize_t length = index_length(self);
- const char *data;
-
- if (pos == length - 1 || pos == INT_MAX)
- return nullid;
-
- if (pos >= length)
- return NULL;
-
- if (pos >= self->length - 1) {
- PyObject *tuple, *str;
- tuple = PyList_GET_ITEM(self->added, pos - self->length + 1);
- str = PyTuple_GetItem(tuple, 7);
- return str ? PyString_AS_STRING(str) : NULL;
- }
-
- data = index_deref(self, pos);
- return data ? data + 32 : NULL;
-}
-
-static int nt_insert(indexObject *self, const char *node, int rev);
-
-static int node_check(PyObject *obj, char **node, Py_ssize_t *nodelen)
-{
- if (PyString_AsStringAndSize(obj, node, nodelen) == -1)
- return -1;
- if (*nodelen == 20)
- return 0;
- PyErr_SetString(PyExc_ValueError, "20-byte hash required");
- return -1;
-}
-
-static PyObject *index_insert(indexObject *self, PyObject *args)
-{
- PyObject *obj;
- char *node;
- long offset;
- Py_ssize_t len, nodelen;
-
- if (!PyArg_ParseTuple(args, "lO", &offset, &obj))
- return NULL;
-
- if (!PyTuple_Check(obj) || PyTuple_GET_SIZE(obj) != 8) {
- PyErr_SetString(PyExc_TypeError, "8-tuple required");
- return NULL;
- }
-
- if (node_check(PyTuple_GET_ITEM(obj, 7), &node, &nodelen) == -1)
- return NULL;
-
- len = index_length(self);
-
- if (offset < 0)
- offset += len;
-
- if (offset != len - 1) {
- PyErr_SetString(PyExc_IndexError,
- "insert only supported at index -1");
- return NULL;
- }
-
- if (offset > INT_MAX) {
- PyErr_SetString(PyExc_ValueError,
- "currently only 2**31 revs supported");
- return NULL;
- }
-
- if (self->added == NULL) {
- self->added = PyList_New(0);
- if (self->added == NULL)
- return NULL;
- }
-
- if (PyList_Append(self->added, obj) == -1)
- return NULL;
-
- if (self->nt)
- nt_insert(self, node, (int)offset);
-
- Py_CLEAR(self->headrevs);
- Py_RETURN_NONE;
-}
-
-static void _index_clearcaches(indexObject *self)
-{
- if (self->cache) {
- Py_ssize_t i;
-
- for (i = 0; i < self->raw_length; i++)
- Py_CLEAR(self->cache[i]);
- free(self->cache);
- self->cache = NULL;
- }
- if (self->offsets) {
- free(self->offsets);
- self->offsets = NULL;
- }
- if (self->nt) {
- free(self->nt);
- self->nt = NULL;
- }
- Py_CLEAR(self->headrevs);
-}
-
-static PyObject *index_clearcaches(indexObject *self)
-{
- _index_clearcaches(self);
- self->ntlength = self->ntcapacity = 0;
- self->ntdepth = self->ntsplits = 0;
- self->ntrev = -1;
- self->ntlookups = self->ntmisses = 0;
- Py_RETURN_NONE;
-}
-
-static PyObject *index_stats(indexObject *self)
-{
- PyObject *obj = PyDict_New();
-
- if (obj == NULL)
- return NULL;
-
-#define istat(__n, __d) \
- if (PyDict_SetItemString(obj, __d, PyInt_FromSsize_t(self->__n)) == -1) \
- goto bail;
-
- if (self->added) {
- Py_ssize_t len = PyList_GET_SIZE(self->added);
- if (PyDict_SetItemString(obj, "index entries added",
- PyInt_FromSsize_t(len)) == -1)
- goto bail;
- }
-
- if (self->raw_length != self->length - 1)
- istat(raw_length, "revs on disk");
- istat(length, "revs in memory");
- istat(ntcapacity, "node trie capacity");
- istat(ntdepth, "node trie depth");
- istat(ntlength, "node trie count");
- istat(ntlookups, "node trie lookups");
- istat(ntmisses, "node trie misses");
- istat(ntrev, "node trie last rev scanned");
- istat(ntsplits, "node trie splits");
-
-#undef istat
-
- return obj;
-
-bail:
- Py_XDECREF(obj);
- return NULL;
-}
-
-/*
- * When we cache a list, we want to be sure the caller can't mutate
- * the cached copy.
- */
-static PyObject *list_copy(PyObject *list)
-{
- Py_ssize_t len = PyList_GET_SIZE(list);
- PyObject *newlist = PyList_New(len);
- Py_ssize_t i;
-
- if (newlist == NULL)
- return NULL;
-
- for (i = 0; i < len; i++) {
- PyObject *obj = PyList_GET_ITEM(list, i);
- Py_INCREF(obj);
- PyList_SET_ITEM(newlist, i, obj);
- }
-
- return newlist;
-}
-
-static PyObject *index_headrevs(indexObject *self)
-{
- Py_ssize_t i, len, addlen;
- char *nothead = NULL;
- PyObject *heads;
-
- if (self->headrevs)
- return list_copy(self->headrevs);
-
- len = index_length(self) - 1;
- heads = PyList_New(0);
- if (heads == NULL)
- goto bail;
- if (len == 0) {
- PyObject *nullid = PyInt_FromLong(-1);
- if (nullid == NULL || PyList_Append(heads, nullid) == -1) {
- Py_XDECREF(nullid);
- goto bail;
- }
- goto done;
- }
-
- nothead = calloc(len, 1);
- if (nothead == NULL)
- goto bail;
-
- for (i = 0; i < self->raw_length; i++) {
- const char *data = index_deref(self, i);
- int parent_1 = getbe32(data + 24);
- int parent_2 = getbe32(data + 28);
- if (parent_1 >= 0)
- nothead[parent_1] = 1;
- if (parent_2 >= 0)
- nothead[parent_2] = 1;
- }
-
- addlen = self->added ? PyList_GET_SIZE(self->added) : 0;
-
- for (i = 0; i < addlen; i++) {
- PyObject *rev = PyList_GET_ITEM(self->added, i);
- PyObject *p1 = PyTuple_GET_ITEM(rev, 5);
- PyObject *p2 = PyTuple_GET_ITEM(rev, 6);
- long parent_1, parent_2;
-
- if (!PyInt_Check(p1) || !PyInt_Check(p2)) {
- PyErr_SetString(PyExc_TypeError,
- "revlog parents are invalid");
- goto bail;
- }
- parent_1 = PyInt_AS_LONG(p1);
- parent_2 = PyInt_AS_LONG(p2);
- if (parent_1 >= 0)
- nothead[parent_1] = 1;
- if (parent_2 >= 0)
- nothead[parent_2] = 1;
- }
-
- for (i = 0; i < len; i++) {
- PyObject *head;
-
- if (nothead[i])
- continue;
- head = PyInt_FromLong(i);
- if (head == NULL || PyList_Append(heads, head) == -1) {
- Py_XDECREF(head);
- goto bail;
- }
- }
-
-done:
- self->headrevs = heads;
- free(nothead);
- return list_copy(self->headrevs);
-bail:
- Py_XDECREF(heads);
- free(nothead);
- return NULL;
-}
-
-static inline int nt_level(const char *node, Py_ssize_t level)
-{
- int v = node[level>>1];
- if (!(level & 1))
- v >>= 4;
- return v & 0xf;
-}
-
-/*
- * Return values:
- *
- * -4: match is ambiguous (multiple candidates)
- * -2: not found
- * rest: valid rev
- */
-static int nt_find(indexObject *self, const char *node, Py_ssize_t nodelen,
- int hex)
-{
- int (*getnybble)(const char *, Py_ssize_t) = hex ? hexdigit : nt_level;
- int level, maxlevel, off;
-
- if (nodelen == 20 && node[0] == '\0' && memcmp(node, nullid, 20) == 0)
- return -1;
-
- if (self->nt == NULL)
- return -2;
-
- if (hex)
- maxlevel = nodelen > 40 ? 40 : (int)nodelen;
- else
- maxlevel = nodelen > 20 ? 40 : ((int)nodelen * 2);
-
- for (level = off = 0; level < maxlevel; level++) {
- int k = getnybble(node, level);
- nodetree *n = &self->nt[off];
- int v = n->children[k];
-
- if (v < 0) {
- const char *n;
- Py_ssize_t i;
-
- v = -v - 1;
- n = index_node(self, v);
- if (n == NULL)
- return -2;
- for (i = level; i < maxlevel; i++)
- if (getnybble(node, i) != nt_level(n, i))
- return -2;
- return v;
- }
- if (v == 0)
- return -2;
- off = v;
- }
- /* multiple matches against an ambiguous prefix */
- return -4;
-}
-
-static int nt_new(indexObject *self)
-{
- if (self->ntlength == self->ntcapacity) {
- self->ntcapacity *= 2;
- self->nt = realloc(self->nt,
- self->ntcapacity * sizeof(nodetree));
- if (self->nt == NULL) {
- PyErr_SetString(PyExc_MemoryError, "out of memory");
- return -1;
- }
- memset(&self->nt[self->ntlength], 0,
- sizeof(nodetree) * (self->ntcapacity - self->ntlength));
- }
- return self->ntlength++;
-}
-
-static int nt_insert(indexObject *self, const char *node, int rev)
-{
- int level = 0;
- int off = 0;
-
- while (level < 40) {
- int k = nt_level(node, level);
- nodetree *n;
- int v;
-
- n = &self->nt[off];
- v = n->children[k];
-
- if (v == 0) {
- n->children[k] = -rev - 1;
+ if (!entry)
return 0;
- }
- if (v < 0) {
- const char *oldnode = index_node(self, -v - 1);
- int noff;
-
- if (!oldnode || !memcmp(oldnode, node, 20)) {
- n->children[k] = -rev - 1;
- return 0;
- }
- noff = nt_new(self);
- if (noff == -1)
- return -1;
- /* self->nt may have been changed by realloc */
- self->nt[off].children[k] = noff;
- off = noff;
- n = &self->nt[off];
- n->children[nt_level(oldnode, ++level)] = v;
- if (level > self->ntdepth)
- self->ntdepth = level;
- self->ntsplits += 1;
- } else {
- level += 1;
- off = v;
- }
- }
-
- return -1;
-}
-
-static int nt_init(indexObject *self)
-{
- if (self->nt == NULL) {
- self->ntcapacity = self->raw_length < 4
- ? 4 : self->raw_length / 2;
- self->nt = calloc(self->ntcapacity, sizeof(nodetree));
- if (self->nt == NULL) {
- PyErr_NoMemory();
- return -1;
- }
- self->ntlength = 1;
- self->ntrev = (int)index_length(self) - 1;
- self->ntlookups = 1;
- self->ntmisses = 0;
- if (nt_insert(self, nullid, INT_MAX) == -1)
- return -1;
- }
- return 0;
-}
-
-/*
- * Return values:
- *
- * -3: error (exception set)
- * -2: not found (no exception set)
- * rest: valid rev
- */
-static int index_find_node(indexObject *self,
- const char *node, Py_ssize_t nodelen)
-{
- int rev;
-
- self->ntlookups++;
- rev = nt_find(self, node, nodelen, 0);
- if (rev >= -1)
- return rev;
-
- if (nt_init(self) == -1)
- return -3;
-
- /*
- * For the first handful of lookups, we scan the entire index,
- * and cache only the matching nodes. This optimizes for cases
- * like "hg tip", where only a few nodes are accessed.
- *
- * After that, we cache every node we visit, using a single
- * scan amortized over multiple lookups. This gives the best
- * bulk performance, e.g. for "hg log".
- */
- if (self->ntmisses++ < 4) {
- for (rev = self->ntrev - 1; rev >= 0; rev--) {
- const char *n = index_node(self, rev);
- if (n == NULL)
- return -2;
- if (memcmp(node, n, nodelen > 20 ? 20 : nodelen) == 0) {
- if (nt_insert(self, n, rev) == -1)
- return -3;
- break;
- }
- }
- } else {
- for (rev = self->ntrev - 1; rev >= 0; rev--) {
- const char *n = index_node(self, rev);
- if (n == NULL) {
- self->ntrev = rev + 1;
- return -2;
- }
- if (nt_insert(self, n, rev) == -1) {
- self->ntrev = rev + 1;
- return -3;
- }
- if (memcmp(node, n, nodelen > 20 ? 20 : nodelen) == 0) {
- break;
- }
- }
- self->ntrev = rev;
- }
-
- if (rev >= 0)
- return rev;
- return -2;
-}
-
-static PyObject *raise_revlog_error(void)
-{
- static PyObject *errclass;
- PyObject *mod = NULL, *errobj;
-
- if (errclass == NULL) {
- PyObject *dict;
-
- mod = PyImport_ImportModule("mercurial.error");
- if (mod == NULL)
- goto classfail;
-
- dict = PyModule_GetDict(mod);
- if (dict == NULL)
- goto classfail;
-
- errclass = PyDict_GetItemString(dict, "RevlogError");
- if (errclass == NULL) {
- PyErr_SetString(PyExc_SystemError,
- "could not find RevlogError");
- goto classfail;
- }
- Py_INCREF(errclass);
- }
-
- errobj = PyObject_CallFunction(errclass, NULL);
- if (errobj == NULL)
- return NULL;
- PyErr_SetObject(errclass, errobj);
- return errobj;
-
-classfail:
- Py_XDECREF(mod);
- return NULL;
-}
-
-static PyObject *index_getitem(indexObject *self, PyObject *value)
-{
- char *node;
- Py_ssize_t nodelen;
- int rev;
-
- if (PyInt_Check(value))
- return index_get(self, PyInt_AS_LONG(value));
-
- if (node_check(value, &node, &nodelen) == -1)
- return NULL;
- rev = index_find_node(self, node, nodelen);
- if (rev >= -1)
- return PyInt_FromLong(rev);
- if (rev == -2)
- raise_revlog_error();
- return NULL;
-}
-
-static int nt_partialmatch(indexObject *self, const char *node,
- Py_ssize_t nodelen)
-{
- int rev;
-
- if (nt_init(self) == -1)
- return -3;
-
- if (self->ntrev > 0) {
- /* ensure that the radix tree is fully populated */
- for (rev = self->ntrev - 1; rev >= 0; rev--) {
- const char *n = index_node(self, rev);
- if (n == NULL)
- return -2;
- if (nt_insert(self, n, rev) == -1)
- return -3;
- }
- self->ntrev = rev;
- }
-
- return nt_find(self, node, nodelen, 1);
-}
-
-static PyObject *index_partialmatch(indexObject *self, PyObject *args)
-{
- const char *fullnode;
- int nodelen;
- char *node;
- int rev, i;
-
- if (!PyArg_ParseTuple(args, "s#", &node, &nodelen))
- return NULL;
-
- if (nodelen < 4) {
- PyErr_SetString(PyExc_ValueError, "key too short");
- return NULL;
- }
-
- if (nodelen > 40)
- nodelen = 40;
-
- for (i = 0; i < nodelen; i++)
- hexdigit(node, i);
- if (PyErr_Occurred()) {
- /* input contains non-hex characters */
- PyErr_Clear();
- Py_RETURN_NONE;
- }
-
- rev = nt_partialmatch(self, node, nodelen);
-
- switch (rev) {
- case -4:
- raise_revlog_error();
- case -3:
- return NULL;
- case -2:
- Py_RETURN_NONE;
- case -1:
- return PyString_FromStringAndSize(nullid, 20);
- }
-
- fullnode = index_node(self, rev);
- if (fullnode == NULL) {
- PyErr_Format(PyExc_IndexError,
- "could not access rev %d", rev);
- return NULL;
- }
- return PyString_FromStringAndSize(fullnode, 20);
-}
-
-static PyObject *index_m_get(indexObject *self, PyObject *args)
-{
- Py_ssize_t nodelen;
- PyObject *val;
- char *node;
- int rev;
-
- if (!PyArg_ParseTuple(args, "O", &val))
- return NULL;
- if (node_check(val, &node, &nodelen) == -1)
- return NULL;
- rev = index_find_node(self, node, nodelen);
- if (rev == -3)
- return NULL;
- if (rev == -2)
- Py_RETURN_NONE;
- return PyInt_FromLong(rev);
-}
-
-static int index_contains(indexObject *self, PyObject *value)
-{
- char *node;
- Py_ssize_t nodelen;
-
- if (PyInt_Check(value)) {
- long rev = PyInt_AS_LONG(value);
- return rev >= -1 && rev < index_length(self);
- }
-
- if (node_check(value, &node, &nodelen) == -1)
- return -1;
- switch (index_find_node(self, node, nodelen)) {
- case -3:
- return -1;
- case -2:
- return 0;
- default:
- return 1;
- }
-}
-
-/*
- * Invalidate any trie entries introduced by added revs.
- */
-static void nt_invalidate_added(indexObject *self, Py_ssize_t start)
-{
- Py_ssize_t i, len = PyList_GET_SIZE(self->added);
-
- for (i = start; i < len; i++) {
- PyObject *tuple = PyList_GET_ITEM(self->added, i);
- PyObject *node = PyTuple_GET_ITEM(tuple, 7);
-
- nt_insert(self, PyString_AS_STRING(node), -1);
- }
-
- if (start == 0)
- Py_CLEAR(self->added);
-}
-
-/*
- * Delete a numeric range of revs, which must be at the end of the
- * range, but exclude the sentinel nullid entry.
- */
-static int index_slice_del(indexObject *self, PyObject *item)
-{
- Py_ssize_t start, stop, step, slicelength;
- Py_ssize_t length = index_length(self);
- int ret = 0;
-
- if (PySlice_GetIndicesEx((PySliceObject*)item, length,
- &start, &stop, &step, &slicelength) < 0)
- return -1;
-
- if (slicelength <= 0)
- return 0;
-
- if ((step < 0 && start < stop) || (step > 0 && start > stop))
- stop = start;
-
- if (step < 0) {
- stop = start + 1;
- start = stop + step*(slicelength - 1) - 1;
- step = -step;
- }
-
- if (step != 1) {
- PyErr_SetString(PyExc_ValueError,
- "revlog index delete requires step size of 1");
- return -1;
- }
-
- if (stop != length - 1) {
- PyErr_SetString(PyExc_IndexError,
- "revlog index deletion indices are invalid");
- return -1;
- }
-
- if (start < self->length - 1) {
- if (self->nt) {
- Py_ssize_t i;
-
- for (i = start + 1; i < self->length - 1; i++) {
- const char *node = index_node(self, i);
-
- if (node)
- nt_insert(self, node, -1);
- }
- if (self->added)
- nt_invalidate_added(self, 0);
- if (self->ntrev > start)
- self->ntrev = (int)start;
- }
- self->length = start + 1;
- if (start < self->raw_length)
- self->raw_length = start;
- goto done;
- }
-
- if (self->nt) {
- nt_invalidate_added(self, start - self->length + 1);
- if (self->ntrev > start)
- self->ntrev = (int)start;
- }
- if (self->added)
- ret = PyList_SetSlice(self->added, start - self->length + 1,
- PyList_GET_SIZE(self->added), NULL);
-done:
- Py_CLEAR(self->headrevs);
- return ret;
-}
-
-/*
- * Supported ops:
- *
- * slice deletion
- * string assignment (extend node->rev mapping)
- * string deletion (shrink node->rev mapping)
- */
-static int index_assign_subscript(indexObject *self, PyObject *item,
- PyObject *value)
-{
- char *node;
- Py_ssize_t nodelen;
- long rev;
-
- if (PySlice_Check(item) && value == NULL)
- return index_slice_del(self, item);
-
- if (node_check(item, &node, &nodelen) == -1)
- return -1;
+ PyObject_GC_UnTrack(entry); /* don't waste time with this */
- if (value == NULL)
- return self->nt ? nt_insert(self, node, -1) : 0;
- rev = PyInt_AsLong(value);
- if (rev > INT_MAX || rev < 0) {
- if (!PyErr_Occurred())
- PyErr_SetString(PyExc_ValueError, "rev out of range");
- return -1;
- }
- return nt_insert(self, node, (int)rev);
-}
+ if (inlined) {
+ err = PyList_Append(index, entry);
+ Py_DECREF(entry);
+ if (err)
+ return 0;
+ } else
+ PyList_SET_ITEM(index, n, entry); /* steals reference */
-/*
- * Find all RevlogNG entries in an index that has inline data. Update
- * the optional "offsets" table with those entries.
- */
-static long inline_scan(indexObject *self, const char **offsets)
-{
- const char *data = PyString_AS_STRING(self->data);
- const char *end = data + PyString_GET_SIZE(self->data);
- long incr = v1_hdrsize;
- Py_ssize_t len = 0;
-
- while (data + v1_hdrsize <= end) {
- uint32_t comp_len;
- const char *old_data;
- /* 3rd element of header is length of compressed inline data */
- comp_len = getbe32(data + 8);
- incr = v1_hdrsize + comp_len;
- if (incr < v1_hdrsize)
- break;
- if (offsets)
- offsets[len] = data;
- len++;
- old_data = data;
- data += incr;
- if (data <= old_data)
+ n++;
+ step = 64 + (inlined ? comp_len : 0);
+ if (data + step > end || data + step < data)
break;
+ data += step;
}
-
- if (data != end && data + v1_hdrsize != end) {
+ if (data != end) {
if (!PyErr_Occurred())
PyErr_SetString(PyExc_ValueError, "corrupt index file");
- return -1;
+ return 0;
}
- return len;
-}
+ /* create the magic nullid entry in the index at [-1] */
+ entry = Py_BuildValue("Liiiiiis#", (uint64_t)0, 0, 0, -1, -1, -1, -1, nullid, 20);
-static int index_init(indexObject *self, PyObject *args)
-{
- PyObject *data_obj, *inlined_obj;
- Py_ssize_t size;
-
- if (!PyArg_ParseTuple(args, "OO", &data_obj, &inlined_obj))
- return -1;
- if (!PyString_Check(data_obj)) {
- PyErr_SetString(PyExc_TypeError, "data is not a string");
- return -1;
- }
- size = PyString_GET_SIZE(data_obj);
-
- self->inlined = inlined_obj && PyObject_IsTrue(inlined_obj);
- self->data = data_obj;
- self->cache = NULL;
-
- self->added = NULL;
- self->headrevs = NULL;
- self->offsets = NULL;
- self->nt = NULL;
- self->ntlength = self->ntcapacity = 0;
- self->ntdepth = self->ntsplits = 0;
- self->ntlookups = self->ntmisses = 0;
- self->ntrev = -1;
- Py_INCREF(self->data);
-
- if (self->inlined) {
- long len = inline_scan(self, NULL);
- if (len == -1)
- goto bail;
- self->raw_length = len;
- self->length = len + 1;
- } else {
- if (size % v1_hdrsize) {
- PyErr_SetString(PyExc_ValueError, "corrupt index file");
- goto bail;
- }
- self->raw_length = size / v1_hdrsize;
- self->length = self->raw_length + 1;
- }
+ if (!entry)
+ return 0;
- return 0;
-bail:
- return -1;
-}
+ PyObject_GC_UnTrack(entry); /* don't waste time with this */
-static PyObject *index_nodemap(indexObject *self)
-{
- Py_INCREF(self);
- return (PyObject *)self;
-}
+ if (inlined) {
+ err = PyList_Append(index, entry);
+ Py_DECREF(entry);
+ if (err)
+ return 0;
+ } else
+ PyList_SET_ITEM(index, n, entry); /* steals reference */
-static void index_dealloc(indexObject *self)
-{
- _index_clearcaches(self);
- Py_DECREF(self->data);
- Py_XDECREF(self->added);
- PyObject_Del(self);
+ return 1;
}
-static PySequenceMethods index_sequence_methods = {
- (lenfunc)index_length, /* sq_length */
- 0, /* sq_concat */
- 0, /* sq_repeat */
- (ssizeargfunc)index_get, /* sq_item */
- 0, /* sq_slice */
- 0, /* sq_ass_item */
- 0, /* sq_ass_slice */
- (objobjproc)index_contains, /* sq_contains */
-};
-
-static PyMappingMethods index_mapping_methods = {
- (lenfunc)index_length, /* mp_length */
- (binaryfunc)index_getitem, /* mp_subscript */
- (objobjargproc)index_assign_subscript, /* mp_ass_subscript */
-};
-
-static PyMethodDef index_methods[] = {
- {"clearcaches", (PyCFunction)index_clearcaches, METH_NOARGS,
- "clear the index caches"},
- {"get", (PyCFunction)index_m_get, METH_VARARGS,
- "get an index entry"},
- {"headrevs", (PyCFunction)index_headrevs, METH_NOARGS,
- "get head revisions"},
- {"insert", (PyCFunction)index_insert, METH_VARARGS,
- "insert an index entry"},
- {"partialmatch", (PyCFunction)index_partialmatch, METH_VARARGS,
- "match a potentially ambiguous node ID"},
- {"stats", (PyCFunction)index_stats, METH_NOARGS,
- "stats for the index"},
- {NULL} /* Sentinel */
-};
-
-static PyGetSetDef index_getset[] = {
- {"nodemap", (getter)index_nodemap, NULL, "nodemap", NULL},
- {NULL} /* Sentinel */
-};
-
-static PyTypeObject indexType = {
- PyObject_HEAD_INIT(NULL)
- 0, /* ob_size */
- "parsers.index", /* tp_name */
- sizeof(indexObject), /* tp_basicsize */
- 0, /* tp_itemsize */
- (destructor)index_dealloc, /* tp_dealloc */
- 0, /* tp_print */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_compare */
- 0, /* tp_repr */
- 0, /* tp_as_number */
- &index_sequence_methods, /* tp_as_sequence */
- &index_mapping_methods, /* tp_as_mapping */
- 0, /* tp_hash */
- 0, /* tp_call */
- 0, /* tp_str */
- 0, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT, /* tp_flags */
- "revlog index", /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- 0, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- index_methods, /* tp_methods */
- 0, /* tp_members */
- index_getset, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- (initproc)index_init, /* tp_init */
- 0, /* tp_alloc */
-};
-
-/*
- * returns a tuple of the form (index, index, cache) with elements as
- * follows:
+/* This function parses a index file and returns a Python tuple of the
+ * following format: (index, cache)
*
- * index: an index object that lazily parses RevlogNG records
- * cache: if data is inlined, a tuple (index_file_content, 0), else None
- *
- * added complications are for backwards compatibility
+ * index: a list of tuples containing the RevlogNG records
+ * cache: if data is inlined, a tuple (index_file_content, 0) else None
*/
static PyObject *parse_index2(PyObject *self, PyObject *args)
{
- PyObject *tuple = NULL, *cache = NULL;
- indexObject *idx;
- int ret;
+ const char *data;
+ int size, inlined;
+ PyObject *rval = NULL, *index = NULL, *cache = NULL;
+ PyObject *data_obj = NULL, *inlined_obj;
- idx = PyObject_New(indexObject, &indexType);
- if (idx == NULL)
- goto bail;
+ if (!PyArg_ParseTuple(args, "s#O", &data, &size, &inlined_obj))
+ return NULL;
+ inlined = inlined_obj && PyObject_IsTrue(inlined_obj);
- ret = index_init(idx, args);
- if (ret == -1)
- goto bail;
+ /* If no data is inlined, we know the size of the index list in
+ * advance: size divided by the size of one revlog record (64 bytes)
+ * plus one for nullid */
+ index = inlined ? PyList_New(0) : PyList_New(size / 64 + 1);
+ if (!index)
+ goto quit;
- if (idx->inlined) {
- cache = Py_BuildValue("iO", 0, idx->data);
- if (cache == NULL)
- goto bail;
+ /* set up the cache return value */
+ if (inlined) {
+ /* Note that the reference to data_obj is only borrowed */
+ data_obj = PyTuple_GET_ITEM(args, 0);
+ cache = Py_BuildValue("iO", 0, data_obj);
+ if (!cache)
+ goto quit;
} else {
cache = Py_None;
- Py_INCREF(cache);
+ Py_INCREF(Py_None);
}
- tuple = Py_BuildValue("NN", idx, cache);
- if (!tuple)
- goto bail;
- return tuple;
+ /* actually populate the index with data */
+ if (!_parse_index_ng(data, size, inlined, index))
+ goto quit;
+
+ rval = Py_BuildValue("NN", index, cache);
+ if (!rval)
+ goto quit;
+ return rval;
-bail:
- Py_XDECREF(idx);
+quit:
+ Py_XDECREF(index);
Py_XDECREF(cache);
- Py_XDECREF(tuple);
+ Py_XDECREF(rval);
return NULL;
}
+
static char parsers_doc[] = "Efficient content parsing.";
static PyMethodDef methods[] = {
- {"pack_dirstate", pack_dirstate, METH_VARARGS, "pack a dirstate\n"},
{"parse_manifest", parse_manifest, METH_VARARGS, "parse a manifest\n"},
{"parse_dirstate", parse_dirstate, METH_VARARGS, "parse a dirstate\n"},
{"parse_index2", parse_index2, METH_VARARGS, "parse a revlog index\n"},
{NULL, NULL}
};
-static void module_init(PyObject *mod)
-{
- indexType.tp_new = PyType_GenericNew;
- if (PyType_Ready(&indexType) < 0)
- return;
- Py_INCREF(&indexType);
-
- PyModule_AddObject(mod, "index", (PyObject *)&indexType);
-
- nullentry = Py_BuildValue("iiiiiiis#", 0, 0, 0,
- -1, -1, -1, -1, nullid, 20);
- if (nullentry)
- PyObject_GC_UnTrack(nullentry);
-
- dirstate_unset = Py_BuildValue("ciii", 'n', 0, -1, -1);
-}
-
#ifdef IS_PY3K
static struct PyModuleDef parsers_module = {
PyModuleDef_HEAD_INIT,
@@ -1539,14 +407,12 @@ static struct PyModuleDef parsers_module = {
PyMODINIT_FUNC PyInit_parsers(void)
{
- PyObject *mod = PyModule_Create(&parsers_module);
- module_init(mod);
- return mod;
+ return PyModule_Create(&parsers_module);
}
#else
PyMODINIT_FUNC initparsers(void)
{
- PyObject *mod = Py_InitModule3("parsers", methods, parsers_doc);
- module_init(mod);
+ Py_InitModule3("parsers", methods, parsers_doc);
}
#endif
+
diff --git a/mercurial/patch.py b/mercurial/patch.py
index b216734..6c224ee 100644
--- a/mercurial/patch.py
+++ b/mercurial/patch.py
@@ -126,7 +126,7 @@ def split(stream):
mimeheaders = ['content-type']
- if not util.safehasattr(stream, 'next'):
+ if not hasattr(stream, 'next'):
# http responses, for example, have readline but not next
stream = fiter(stream)
@@ -230,7 +230,7 @@ def extract(ui, fileobj):
elif line.startswith("# Node ID "):
nodeid = line[10:]
elif line.startswith("# Parent "):
- parents.append(line[9:].lstrip())
+ parents.append(line[10:])
elif not line.startswith("# "):
hgpatchheader = False
elif line == '---' and gitsendmail:
@@ -245,7 +245,7 @@ def extract(ui, fileobj):
tmpfp.write('\n')
elif not diffs_seen and message and content_type == 'text/plain':
message += '\n' + payload
- except: # re-raises
+ except:
tmpfp.close()
os.unlink(tmpname)
raise
@@ -290,19 +290,6 @@ class patchmeta(object):
other.binary = self.binary
return other
- def _ispatchinga(self, afile):
- if afile == '/dev/null':
- return self.op == 'ADD'
- return afile == 'a/' + (self.oldpath or self.path)
-
- def _ispatchingb(self, bfile):
- if bfile == '/dev/null':
- return self.op == 'DELETE'
- return bfile == 'b/' + self.path
-
- def ispatching(self, afile, bfile):
- return self._ispatchinga(afile) and self._ispatchingb(bfile)
-
def __repr__(self):
return "<patchmeta %s %r>" % (self.op, self.path)
@@ -488,15 +475,9 @@ class workingbackend(fsbackend):
addremoved = set(self.changed)
for src, dst in self.copied:
scmutil.dirstatecopy(self.ui, self.repo, wctx, src, dst)
- if self.removed:
+ addremoved.discard(src)
+ if (not self.similarity) and self.removed:
wctx.forget(sorted(self.removed))
- for f in self.removed:
- if f not in self.repo.dirstate:
- # File was deleted and no longer belongs to the
- # dirstate, it was probably marked added then
- # deleted, and should not be considered by
- # addremove().
- addremoved.discard(f)
if addremoved:
cwd = self.repo.getcwd()
if cwd:
@@ -534,7 +515,7 @@ class filestore(object):
if fname in self.data:
return self.data[fname]
if not self.opener or fname not in self.files:
- raise IOError
+ raise IOError()
fn, mode, copied = self.files[fname]
return self.opener.read(fn), mode, copied
@@ -560,7 +541,7 @@ class repobackend(abstractbackend):
try:
fctx = self.ctx[fname]
except error.LookupError:
- raise IOError
+ raise IOError()
flags = fctx.flags()
return fctx.data(), ('l' in flags, 'x' in flags)
@@ -585,8 +566,8 @@ class repobackend(abstractbackend):
return self.changed | self.removed
# @@ -start,len +start,len @@ or @@ -start +start @@ if len is 1
-unidesc = re.compile('@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@')
-contextdesc = re.compile('(?:---|\*\*\*) (\d+)(?:,(\d+))? (?:---|\*\*\*)')
+unidesc = re.compile('@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@')
+contextdesc = re.compile('(---|\*\*\*) (\d+)(,(\d+))? (---|\*\*\*)')
eolmodes = ['strict', 'crlf', 'lf', 'auto']
class patchfile(object):
@@ -634,7 +615,7 @@ class patchfile(object):
if self.mode is None:
self.mode = (False, False)
if self.missing:
- self.ui.warn(_("unable to find '%s' for patching\n") % self.fname)
+ self.ui.warn(_("unable to find '%s' for patching\n") % self.fname)
self.hash = {}
self.dirty = 0
@@ -741,19 +722,22 @@ class patchfile(object):
h = h.getnormalized()
# fast case first, no offsets, no fuzz
- old, oldstart, new, newstart = h.fuzzit(0, False)
- oldstart += self.offset
- orig_start = oldstart
+ old = h.old()
+ # patch starts counting at 1 unless we are adding the file
+ if h.starta == 0:
+ start = 0
+ else:
+ start = h.starta + self.offset - 1
+ orig_start = start
# if there's skew we want to emit the "(offset %d lines)" even
# when the hunk cleanly applies at start + skew, so skip the
# fast case code
- if (self.skew == 0 and
- diffhelpers.testhunk(old, self.lines, oldstart) == 0):
+ if self.skew == 0 and diffhelpers.testhunk(old, self.lines, start) == 0:
if self.remove:
self.backend.unlink(self.fname)
else:
- self.lines[oldstart:oldstart + len(old)] = new
- self.offset += len(new) - len(old)
+ self.lines[start : start + h.lena] = h.new()
+ self.offset += h.lenb - h.lena
self.dirty = True
return 0
@@ -761,23 +745,23 @@ class patchfile(object):
self.hash = {}
for x, s in enumerate(self.lines):
self.hash.setdefault(s, []).append(x)
+ if h.hunk[-1][0] != ' ':
+ # if the hunk tried to put something at the bottom of the file
+ # override the start line and use eof here
+ search_start = len(self.lines)
+ else:
+ search_start = orig_start + self.skew
for fuzzlen in xrange(3):
for toponly in [True, False]:
- old, oldstart, new, newstart = h.fuzzit(fuzzlen, toponly)
- oldstart = oldstart + self.offset + self.skew
- oldstart = min(oldstart, len(self.lines))
- if old:
- cand = self.findlines(old[0][1:], oldstart)
- else:
- # Only adding lines with no or fuzzed context, just
- # take the skew in account
- cand = [oldstart]
+ old = h.old(fuzzlen, toponly)
+ cand = self.findlines(old[0][1:], search_start)
for l in cand:
- if not old or diffhelpers.testhunk(old, self.lines, l) == 0:
- self.lines[l : l + len(old)] = new
- self.offset += len(new) - len(old)
+ if diffhelpers.testhunk(old, self.lines, l) == 0:
+ newlines = h.new(fuzzlen, toponly)
+ self.lines[l : l + len(old)] = newlines
+ self.offset += len(newlines) - len(old)
self.skew = l - orig_start
self.dirty = True
offset = l - orig_start - fuzzlen
@@ -847,7 +831,7 @@ class hunk(object):
m = unidesc.match(self.desc)
if not m:
raise PatchError(_("bad hunk #%d") % self.number)
- self.starta, self.lena, self.startb, self.lenb = m.groups()
+ self.starta, foo, self.lena, self.startb, foo2, self.lenb = m.groups()
if self.lena is None:
self.lena = 1
else:
@@ -858,8 +842,7 @@ class hunk(object):
self.lenb = int(self.lenb)
self.starta = int(self.starta)
self.startb = int(self.startb)
- diffhelpers.addlines(lr, self.hunk, self.lena, self.lenb, self.a,
- self.b)
+ diffhelpers.addlines(lr, self.hunk, self.lena, self.lenb, self.a, self.b)
# if we hit eof before finishing out the hunk, the last line will
# be zero length. Lets try to fix it up.
while len(self.hunk[-1]) == 0:
@@ -875,7 +858,7 @@ class hunk(object):
m = contextdesc.match(self.desc)
if not m:
raise PatchError(_("bad hunk #%d") % self.number)
- self.starta, aend = m.groups()
+ foo, self.starta, foo2, aend, foo3 = m.groups()
self.starta = int(self.starta)
if aend is None:
aend = self.starta
@@ -908,7 +891,7 @@ class hunk(object):
m = contextdesc.match(l)
if not m:
raise PatchError(_("bad hunk #%d") % self.number)
- self.startb, bend = m.groups()
+ foo, self.startb, foo2, bend, foo3 = m.groups()
self.startb = int(self.startb)
if bend is None:
bend = self.startb
@@ -983,11 +966,11 @@ class hunk(object):
def complete(self):
return len(self.a) == self.lena and len(self.b) == self.lenb
- def _fuzzit(self, old, new, fuzz, toponly):
+ def fuzzit(self, l, fuzz, toponly):
# this removes context lines from the top and bottom of list 'l'. It
# checks the hunk to make sure only context lines are removed, and then
# returns a new shortened list of lines.
- fuzz = min(fuzz, len(old))
+ fuzz = min(fuzz, len(l)-1)
if fuzz:
top = 0
bot = 0
@@ -1005,28 +988,32 @@ class hunk(object):
else:
break
- bot = min(fuzz, bot)
- top = min(fuzz, top)
- return old[top:len(old)-bot], new[top:len(new)-bot], top
- return old, new, 0
-
- def fuzzit(self, fuzz, toponly):
- old, new, top = self._fuzzit(self.a, self.b, fuzz, toponly)
- oldstart = self.starta + top
- newstart = self.startb + top
- # zero length hunk ranges already have their start decremented
- if self.lena and oldstart > 0:
- oldstart -= 1
- if self.lenb and newstart > 0:
- newstart -= 1
- return old, oldstart, new, newstart
+ # top and bot now count context in the hunk
+ # adjust them if either one is short
+ context = max(top, bot, 3)
+ if bot < context:
+ bot = max(0, fuzz - (context - bot))
+ else:
+ bot = min(fuzz, bot)
+ if top < context:
+ top = max(0, fuzz - (context - top))
+ else:
+ top = min(fuzz, top)
+
+ return l[top:len(l)-bot]
+ return l
+
+ def old(self, fuzz=0, toponly=False):
+ return self.fuzzit(self.a, fuzz, toponly)
+
+ def new(self, fuzz=0, toponly=False):
+ return self.fuzzit(self.b, fuzz, toponly)
class binhunk(object):
'A binary patch file. Only understands literals so far.'
- def __init__(self, lr, fname):
+ def __init__(self, lr):
self.text = None
self.hunk = ['GIT binary patch\n']
- self._fname = fname
self._read(lr)
def complete(self):
@@ -1036,37 +1023,30 @@ class binhunk(object):
return [self.text]
def _read(self, lr):
- def getline(lr, hunk):
- l = lr.readline()
- hunk.append(l)
- return l.rstrip('\r\n')
-
- while True:
- line = getline(lr, self.hunk)
- if not line:
- raise PatchError(_('could not extract "%s" binary data')
- % self._fname)
- if line.startswith('literal '):
- break
+ line = lr.readline()
+ self.hunk.append(line)
+ while line and not line.startswith('literal '):
+ line = lr.readline()
+ self.hunk.append(line)
+ if not line:
+ raise PatchError(_('could not extract binary patch'))
size = int(line[8:].rstrip())
dec = []
- line = getline(lr, self.hunk)
+ line = lr.readline()
+ self.hunk.append(line)
while len(line) > 1:
l = line[0]
if l <= 'Z' and l >= 'A':
l = ord(l) - ord('A') + 1
else:
l = ord(l) - ord('a') + 27
- try:
- dec.append(base85.b85decode(line[1:])[:l])
- except ValueError, e:
- raise PatchError(_('could not decode "%s" binary patch: %s')
- % (self._fname, str(e)))
- line = getline(lr, self.hunk)
+ dec.append(base85.b85decode(line[1:-1])[:l])
+ line = lr.readline()
+ self.hunk.append(line)
text = zlib.decompress(''.join(dec))
if len(text) != size:
- raise PatchError(_('"%s" length is %d bytes, should be %d')
- % (self._fname, len(text), size))
+ raise PatchError(_('binary patch is %d bytes, not %d') %
+ len(text), size)
self.text = text
def parsefilename(str):
@@ -1202,10 +1182,10 @@ def iterhunks(fp):
or x.startswith('GIT binary patch')):
gp = None
if (gitpatches and
- gitpatches[-1].ispatching(afile, bfile)):
- gp = gitpatches.pop()
+ (gitpatches[-1][0] == afile or gitpatches[-1][1] == bfile)):
+ gp = gitpatches.pop()[2]
if x.startswith('GIT binary patch'):
- h = binhunk(lr, gp.path)
+ h = binhunk(lr)
else:
if context is None and x.startswith('***************'):
context = True
@@ -1216,24 +1196,25 @@ def iterhunks(fp):
yield 'file', (afile, bfile, h, gp and gp.copy() or None)
yield 'hunk', h
elif x.startswith('diff --git'):
- m = gitre.match(x.rstrip(' \r\n'))
+ m = gitre.match(x)
if not m:
continue
- if gitpatches is None:
+ if not gitpatches:
# scan whole input for git metadata
- gitpatches = scangitpatch(lr, x)
- yield 'git', [g.copy() for g in gitpatches
- if g.op in ('COPY', 'RENAME')]
+ gitpatches = [('a/' + gp.path, 'b/' + gp.path, gp) for gp
+ in scangitpatch(lr, x)]
+ yield 'git', [g[2].copy() for g in gitpatches
+ if g[2].op in ('COPY', 'RENAME')]
gitpatches.reverse()
afile = 'a/' + m.group(1)
bfile = 'b/' + m.group(2)
- while gitpatches and not gitpatches[-1].ispatching(afile, bfile):
- gp = gitpatches.pop()
+ while afile != gitpatches[-1][0] and bfile != gitpatches[-1][1]:
+ gp = gitpatches.pop()[2]
yield 'file', ('a/' + gp.path, 'b/' + gp.path, None, gp.copy())
- if not gitpatches:
- raise PatchError(_('failed to synchronize metadata for "%s"')
- % afile[2:])
- gp = gitpatches[-1]
+ gp = gitpatches[-1][2]
+ # copy/rename + modify should modify target, not source
+ if gp.op in ('COPY', 'DELETE', 'RENAME', 'ADD') or gp.mode:
+ afile = bfile
newfile = True
elif x.startswith('---'):
# check for a unified diff
@@ -1268,7 +1249,7 @@ def iterhunks(fp):
hunknum = 0
while gitpatches:
- gp = gitpatches.pop()
+ gp = gitpatches.pop()[2]
yield 'file', ('a/' + gp.path, 'b/' + gp.path, None, gp.copy())
def applydiff(ui, fp, backend, store, strip=1, eolmode='strict'):
@@ -1307,6 +1288,7 @@ def _applydiff(ui, fp, patcher, backend, store, strip=1,
current_file = None
afile, bfile, first_hunk, gp = values
if gp:
+ path = pstrip(gp.path)
gp.path = pstrip(gp.path)
if gp.oldpath:
gp.oldpath = pstrip(gp.oldpath)
@@ -1345,17 +1327,8 @@ def _applydiff(ui, fp, patcher, backend, store, strip=1,
elif state == 'git':
for gp in values:
path = pstrip(gp.oldpath)
- try:
- data, mode = backend.getfile(path)
- except IOError, e:
- if e.errno != errno.ENOENT:
- raise
- # The error ignored here will trigger a getfile()
- # error in a place more appropriate for error
- # handling, and will not interrupt the patching
- # process.
- else:
- store.setfile(path, data, mode)
+ data, mode = backend.getfile(path)
+ store.setfile(path, data, mode)
else:
raise util.Abort(_('unsupported parser state: %s') % state)
@@ -1555,10 +1528,10 @@ def b85diff(to, tn):
class GitDiffRequired(Exception):
pass
-def diffopts(ui, opts=None, untrusted=False, section='diff'):
+def diffopts(ui, opts=None, untrusted=False):
def get(key, name=None, getter=ui.configbool):
return ((opts and opts.get(key)) or
- getter(section, name or key, None, untrusted=untrusted))
+ getter('diff', name or key, None, untrusted=untrusted))
return mdiff.diffopts(
text=opts and opts.get('text'),
git=get('git'),
@@ -1597,12 +1570,12 @@ def diff(repo, node1=None, node2=None, match=None, changes=None, opts=None,
def lrugetfilectx():
cache = {}
- order = util.deque()
+ order = []
def getfilectx(f, ctx):
fctx = ctx.filectx(f, filelog=cache.get(f))
if f not in cache:
if len(cache) > 20:
- del cache[order.popleft()]
+ del cache[order.pop(0)]
cache[f] = fctx.filelog()
else:
order.remove(f)
@@ -1628,16 +1601,15 @@ def diff(repo, node1=None, node2=None, match=None, changes=None, opts=None,
copy = {}
if opts.git or opts.upgrade:
- copy = copies.pathcopies(ctx1, ctx2)
+ copy = copies.copies(repo, ctx1, ctx2, repo[nullid])[0]
- def difffn(opts, losedata):
- return trydiff(repo, revs, ctx1, ctx2, modified, added, removed,
- copy, getfilectx, opts, losedata, prefix)
+ difffn = lambda opts, losedata: trydiff(repo, revs, ctx1, ctx2,
+ modified, added, removed, copy, getfilectx, opts, losedata, prefix)
if opts.upgrade and not opts.git:
try:
def losedata(fn):
if not losedatafn or not losedatafn(fn=fn):
- raise GitDiffRequired
+ raise GitDiffRequired()
# Buffer the whole output until we are sure it can be generated
return list(difffn(opts.copy(git=False), losedata))
except GitDiffRequired:
@@ -1647,36 +1619,27 @@ def diff(repo, node1=None, node2=None, match=None, changes=None, opts=None,
def difflabel(func, *args, **kw):
'''yields 2-tuples of (output, label) based on the output of func()'''
- headprefixes = [('diff', 'diff.diffline'),
- ('copy', 'diff.extended'),
- ('rename', 'diff.extended'),
- ('old', 'diff.extended'),
- ('new', 'diff.extended'),
- ('deleted', 'diff.extended'),
- ('---', 'diff.file_a'),
- ('+++', 'diff.file_b')]
- textprefixes = [('@', 'diff.hunk'),
- ('-', 'diff.deleted'),
- ('+', 'diff.inserted')]
- head = False
+ prefixes = [('diff', 'diff.diffline'),
+ ('copy', 'diff.extended'),
+ ('rename', 'diff.extended'),
+ ('old', 'diff.extended'),
+ ('new', 'diff.extended'),
+ ('deleted', 'diff.extended'),
+ ('---', 'diff.file_a'),
+ ('+++', 'diff.file_b'),
+ ('@@', 'diff.hunk'),
+ ('-', 'diff.deleted'),
+ ('+', 'diff.inserted')]
+
for chunk in func(*args, **kw):
lines = chunk.split('\n')
for i, line in enumerate(lines):
if i != 0:
yield ('\n', '')
- if head:
- if line.startswith('@'):
- head = False
- else:
- if line and line[0] not in ' +-@\\':
- head = True
stripline = line
- if not head and line and line[0] in '+-':
+ if line and line[0] in '+-':
# highlight trailing whitespace, but only in changed lines
stripline = line.rstrip()
- prefixes = textprefixes
- if head:
- prefixes = headprefixes
for prefix, label in prefixes:
if stripline.startswith(prefix):
yield (stripline, label)
@@ -1815,29 +1778,27 @@ def diffstatdata(lines):
diffre = re.compile('^diff .*-r [a-z0-9]+\s(.*)$')
results = []
- filename, adds, removes, isbinary = None, 0, 0, False
+ filename, adds, removes = None, 0, 0
def addresult():
if filename:
+ isbinary = adds == 0 and removes == 0
results.append((filename, adds, removes, isbinary))
for line in lines:
if line.startswith('diff'):
addresult()
# set numbers to 0 anyway when starting new file
- adds, removes, isbinary = 0, 0, False
+ adds, removes = 0, 0
if line.startswith('diff --git'):
filename = gitre.search(line).group(1)
elif line.startswith('diff -r'):
# format: "diff -r ... -r ... filename"
filename = diffre.search(line).group(1)
- elif line.startswith('+') and not line.startswith('+++ '):
+ elif line.startswith('+') and not line.startswith('+++'):
adds += 1
- elif line.startswith('-') and not line.startswith('--- '):
+ elif line.startswith('-') and not line.startswith('---'):
removes += 1
- elif (line.startswith('GIT binary patch') or
- line.startswith('Binary file')):
- isbinary = True
addresult()
return results
@@ -1862,7 +1823,7 @@ def diffstat(lines, width=80, git=False):
return max(i * graphwidth // maxtotal, int(bool(i)))
for filename, adds, removes, isbinary in stats:
- if isbinary:
+ if git and isbinary:
count = 'Bin'
else:
count = adds + removes
@@ -1873,8 +1834,7 @@ def diffstat(lines, width=80, git=False):
countwidth, count, pluses, minuses))
if stats:
- output.append(_(' %d files changed, %d insertions(+), '
- '%d deletions(-)\n')
+ output.append(_(' %d files changed, %d insertions(+), %d deletions(-)\n')
% (len(stats), totaladds, totalremoves))
return ''.join(output)
diff --git a/mercurial/phases.py b/mercurial/phases.py
deleted file mode 100644
index 614bcbb..0000000
--- a/mercurial/phases.py
+++ /dev/null
@@ -1,387 +0,0 @@
-""" Mercurial phases support code
-
- ---
-
- Copyright 2011 Pierre-Yves David <pierre-yves.david@ens-lyon.org>
- Logilab SA <contact@logilab.fr>
- Augie Fackler <durin42@gmail.com>
-
- This software may be used and distributed according to the terms
- of the GNU General Public License version 2 or any later version.
-
- ---
-
-This module implements most phase logic in mercurial.
-
-
-Basic Concept
-=============
-
-A 'changeset phase' is an indicator that tells us how a changeset is
-manipulated and communicated. The details of each phase is described
-below, here we describe the properties they have in common.
-
-Like bookmarks, phases are not stored in history and thus are not
-permanent and leave no audit trail.
-
-First, no changeset can be in two phases at once. Phases are ordered,
-so they can be considered from lowest to highest. The default, lowest
-phase is 'public' - this is the normal phase of existing changesets. A
-child changeset can not be in a lower phase than its parents.
-
-These phases share a hierarchy of traits:
-
- immutable shared
- public: X X
- draft: X
- secret:
-
-Local commits are draft by default.
-
-Phase Movement and Exchange
-===========================
-
-Phase data is exchanged by pushkey on pull and push. Some servers have
-a publish option set, we call such a server a "publishing server".
-Pushing a draft changeset to a publishing server changes the phase to
-public.
-
-A small list of fact/rules define the exchange of phase:
-
-* old client never changes server states
-* pull never changes server states
-* publish and old server changesets are seen as public by client
-* any secret changeset seen in another repository is lowered to at
- least draft
-
-Here is the final table summing up the 49 possible use cases of phase
-exchange:
-
- server
- old publish non-publish
- N X N D P N D P
- old client
- pull
- N - X/X - X/D X/P - X/D X/P
- X - X/X - X/D X/P - X/D X/P
- push
- X X/X X/X X/P X/P X/P X/D X/D X/P
- new client
- pull
- N - P/X - P/D P/P - D/D P/P
- D - P/X - P/D P/P - D/D P/P
- P - P/X - P/D P/P - P/D P/P
- push
- D P/X P/X P/P P/P P/P D/D D/D P/P
- P P/X P/X P/P P/P P/P P/P P/P P/P
-
-Legend:
-
- A/B = final state on client / state on server
-
- * N = new/not present,
- * P = public,
- * D = draft,
- * X = not tracked (i.e., the old client or server has no internal
- way of recording the phase.)
-
- passive = only pushes
-
-
- A cell here can be read like this:
-
- "When a new client pushes a draft changeset (D) to a publishing
- server where it's not present (N), it's marked public on both
- sides (P/P)."
-
-Note: old client behave as a publishing server with draft only content
-- other people see it as public
-- content is pushed as draft
-
-"""
-
-import errno
-from node import nullid, nullrev, bin, hex, short
-from i18n import _
-import util
-
-allphases = public, draft, secret = range(3)
-trackedphases = allphases[1:]
-phasenames = ['public', 'draft', 'secret']
-
-def _filterunknown(ui, changelog, phaseroots):
- """remove unknown nodes from the phase boundary
-
- Nothing is lost as unknown nodes only hold data for their descendants.
- """
- updated = False
- nodemap = changelog.nodemap # to filter unknown nodes
- for phase, nodes in enumerate(phaseroots):
- missing = [node for node in nodes if node not in nodemap]
- if missing:
- for mnode in missing:
- ui.debug(
- 'removing unknown node %s from %i-phase boundary\n'
- % (short(mnode), phase))
- nodes.symmetric_difference_update(missing)
- updated = True
- return updated
-
-def _readroots(repo, phasedefaults=None):
- """Read phase roots from disk
-
- phasedefaults is a list of fn(repo, roots) callable, which are
- executed if the phase roots file does not exist. When phases are
- being initialized on an existing repository, this could be used to
- set selected changesets phase to something else than public.
-
- Return (roots, dirty) where dirty is true if roots differ from
- what is being stored.
- """
- dirty = False
- roots = [set() for i in allphases]
- try:
- f = repo.sopener('phaseroots')
- try:
- for line in f:
- phase, nh = line.split()
- roots[int(phase)].add(bin(nh))
- finally:
- f.close()
- except IOError, inst:
- if inst.errno != errno.ENOENT:
- raise
- if phasedefaults:
- for f in phasedefaults:
- roots = f(repo, roots)
- dirty = True
- if _filterunknown(repo.ui, repo.changelog, roots):
- dirty = True
- return roots, dirty
-
-class phasecache(object):
- def __init__(self, repo, phasedefaults, _load=True):
- if _load:
- # Cheap trick to allow shallow-copy without copy module
- self.phaseroots, self.dirty = _readroots(repo, phasedefaults)
- self.opener = repo.sopener
- self._phaserevs = None
-
- def copy(self):
- # Shallow copy meant to ensure isolation in
- # advance/retractboundary(), nothing more.
- ph = phasecache(None, None, _load=False)
- ph.phaseroots = self.phaseroots[:]
- ph.dirty = self.dirty
- ph.opener = self.opener
- ph._phaserevs = self._phaserevs
- return ph
-
- def replace(self, phcache):
- for a in 'phaseroots dirty opener _phaserevs'.split():
- setattr(self, a, getattr(phcache, a))
-
- def getphaserevs(self, repo, rebuild=False):
- if rebuild or self._phaserevs is None:
- revs = [public] * len(repo.changelog)
- for phase in trackedphases:
- roots = map(repo.changelog.rev, self.phaseroots[phase])
- if roots:
- for rev in roots:
- revs[rev] = phase
- for rev in repo.changelog.descendants(roots):
- revs[rev] = phase
- self._phaserevs = revs
- return self._phaserevs
-
- def phase(self, repo, rev):
- # We need a repo argument here to be able to build _phaserev
- # if necessary. The repository instance is not stored in
- # phasecache to avoid reference cycles. The changelog instance
- # is not stored because it is a filecache() property and can
- # be replaced without us being notified.
- if rev == nullrev:
- return public
- if self._phaserevs is None or rev >= len(self._phaserevs):
- self._phaserevs = self.getphaserevs(repo, rebuild=True)
- return self._phaserevs[rev]
-
- def write(self):
- if not self.dirty:
- return
- f = self.opener('phaseroots', 'w', atomictemp=True)
- try:
- for phase, roots in enumerate(self.phaseroots):
- for h in roots:
- f.write('%i %s\n' % (phase, hex(h)))
- finally:
- f.close()
- self.dirty = False
-
- def _updateroots(self, phase, newroots):
- self.phaseroots[phase] = newroots
- self._phaserevs = None
- self.dirty = True
-
- def advanceboundary(self, repo, targetphase, nodes):
- # Be careful to preserve shallow-copied values: do not update
- # phaseroots values, replace them.
-
- delroots = [] # set of root deleted by this path
- for phase in xrange(targetphase + 1, len(allphases)):
- # filter nodes that are not in a compatible phase already
- nodes = [n for n in nodes
- if self.phase(repo, repo[n].rev()) >= phase]
- if not nodes:
- break # no roots to move anymore
- olds = self.phaseroots[phase]
- roots = set(ctx.node() for ctx in repo.set(
- 'roots((%ln::) - (%ln::%ln))', olds, olds, nodes))
- if olds != roots:
- self._updateroots(phase, roots)
- # some roots may need to be declared for lower phases
- delroots.extend(olds - roots)
- # declare deleted root in the target phase
- if targetphase != 0:
- self.retractboundary(repo, targetphase, delroots)
-
- def retractboundary(self, repo, targetphase, nodes):
- # Be careful to preserve shallow-copied values: do not update
- # phaseroots values, replace them.
-
- currentroots = self.phaseroots[targetphase]
- newroots = [n for n in nodes
- if self.phase(repo, repo[n].rev()) < targetphase]
- if newroots:
- if nullid in newroots:
- raise util.Abort(_('cannot change null revision phase'))
- currentroots = currentroots.copy()
- currentroots.update(newroots)
- ctxs = repo.set('roots(%ln::)', currentroots)
- currentroots.intersection_update(ctx.node() for ctx in ctxs)
- self._updateroots(targetphase, currentroots)
-
-def advanceboundary(repo, targetphase, nodes):
- """Add nodes to a phase changing other nodes phases if necessary.
-
- This function move boundary *forward* this means that all nodes
- are set in the target phase or kept in a *lower* phase.
-
- Simplify boundary to contains phase roots only."""
- phcache = repo._phasecache.copy()
- phcache.advanceboundary(repo, targetphase, nodes)
- repo._phasecache.replace(phcache)
-
-def retractboundary(repo, targetphase, nodes):
- """Set nodes back to a phase changing other nodes phases if
- necessary.
-
- This function move boundary *backward* this means that all nodes
- are set in the target phase or kept in a *higher* phase.
-
- Simplify boundary to contains phase roots only."""
- phcache = repo._phasecache.copy()
- phcache.retractboundary(repo, targetphase, nodes)
- repo._phasecache.replace(phcache)
-
-def listphases(repo):
- """List phases root for serialization over pushkey"""
- keys = {}
- value = '%i' % draft
- for root in repo._phasecache.phaseroots[draft]:
- keys[hex(root)] = value
-
- if repo.ui.configbool('phases', 'publish', True):
- # Add an extra data to let remote know we are a publishing
- # repo. Publishing repo can't just pretend they are old repo.
- # When pushing to a publishing repo, the client still need to
- # push phase boundary
- #
- # Push do not only push changeset. It also push phase data.
- # New phase data may apply to common changeset which won't be
- # push (as they are common). Here is a very simple example:
- #
- # 1) repo A push changeset X as draft to repo B
- # 2) repo B make changeset X public
- # 3) repo B push to repo A. X is not pushed but the data that
- # X as now public should
- #
- # The server can't handle it on it's own as it has no idea of
- # client phase data.
- keys['publishing'] = 'True'
- return keys
-
-def pushphase(repo, nhex, oldphasestr, newphasestr):
- """List phases root for serialisation over pushkey"""
- lock = repo.lock()
- try:
- currentphase = repo[nhex].phase()
- newphase = abs(int(newphasestr)) # let's avoid negative index surprise
- oldphase = abs(int(oldphasestr)) # let's avoid negative index surprise
- if currentphase == oldphase and newphase < oldphase:
- advanceboundary(repo, newphase, [bin(nhex)])
- return 1
- elif currentphase == newphase:
- # raced, but got correct result
- return 1
- else:
- return 0
- finally:
- lock.release()
-
-def analyzeremotephases(repo, subset, roots):
- """Compute phases heads and root in a subset of node from root dict
-
- * subset is heads of the subset
- * roots is {<nodeid> => phase} mapping. key and value are string.
-
- Accept unknown element input
- """
- # build list from dictionary
- draftroots = []
- nodemap = repo.changelog.nodemap # to filter unknown nodes
- for nhex, phase in roots.iteritems():
- if nhex == 'publishing': # ignore data related to publish option
- continue
- node = bin(nhex)
- phase = int(phase)
- if phase == 0:
- if node != nullid:
- repo.ui.warn(_('ignoring inconsistent public root'
- ' from remote: %s\n') % nhex)
- elif phase == 1:
- if node in nodemap:
- draftroots.append(node)
- else:
- repo.ui.warn(_('ignoring unexpected root from remote: %i %s\n')
- % (phase, nhex))
- # compute heads
- publicheads = newheads(repo, subset, draftroots)
- return publicheads, draftroots
-
-def newheads(repo, heads, roots):
- """compute new head of a subset minus another
-
- * `heads`: define the first subset
- * `rroots`: define the second we substract to the first"""
- revset = repo.set('heads((%ln + parents(%ln)) - (%ln::%ln))',
- heads, roots, roots, heads)
- return [c.node() for c in revset]
-
-
-def newcommitphase(ui):
- """helper to get the target phase of new commit
-
- Handle all possible values for the phases.new-commit options.
-
- """
- v = ui.config('phases', 'new-commit', draft)
- try:
- return phasenames.index(v)
- except ValueError:
- try:
- return int(v)
- except ValueError:
- msg = _("phases.new-commit: not a valid phase name ('%s')")
- raise error.ConfigError(msg % v)
-
diff --git a/mercurial/posix.py b/mercurial/posix.py
index a97c076..367d7a4 100644
--- a/mercurial/posix.py
+++ b/mercurial/posix.py
@@ -6,8 +6,7 @@
# GNU General Public License version 2 or any later version.
from i18n import _
-import encoding
-import os, sys, errno, stat, getpass, pwd, grp, tempfile, unicodedata
+import os, sys, errno, stat, getpass, pwd, grp, tempfile
posixfile = open
nulldev = '/dev/null'
@@ -85,21 +84,6 @@ def setflags(f, l, x):
# Turn off all +x bits
os.chmod(f, s & 0666)
-def copymode(src, dst, mode=None):
- '''Copy the file mode from the file at path src to dst.
- If src doesn't exist, we're using mode instead. If mode is None, we're
- using umask.'''
- try:
- st_mode = os.lstat(src).st_mode & 0777
- except OSError, inst:
- if inst.errno != errno.ENOENT:
- raise
- st_mode = mode
- if st_mode is None:
- st_mode = ~umask
- st_mode &= 0666
- os.chmod(dst, st_mode)
-
def checkexec(path):
"""
Check whether the given path is on a filesystem with UNIX-like exec flags
@@ -165,32 +149,8 @@ def samedevice(fpath1, fpath2):
st2 = os.lstat(fpath2)
return st1.st_dev == st2.st_dev
-# os.path.normcase is a no-op, which doesn't help us on non-native filesystems
-def normcase(path):
- return path.lower()
-
if sys.platform == 'darwin':
import fcntl # only needed on darwin, missing on jython
-
- def normcase(path):
- try:
- u = path.decode('utf-8')
- except UnicodeDecodeError:
- # percent-encode any characters that don't round-trip
- p2 = path.decode('utf-8', 'ignore').encode('utf-8')
- s = ""
- pos = 0
- for c in path:
- if p2[pos:pos + 1] == c:
- s += c
- pos += 1
- else:
- s += "%%%02X" % ord(c)
- u = s.decode('utf-8')
-
- # Decompose then lowercase (HFS+ technote specifies lower)
- return unicodedata.normalize('NFD', u).lower().encode('utf-8')
-
def realpath(path):
'''
Returns the true, canonical file system path equivalent to the given
@@ -224,63 +184,10 @@ if sys.platform == 'darwin':
return fcntl.fcntl(fd, F_GETPATH, '\0' * 1024).rstrip('\0')
finally:
os.close(fd)
-elif sys.version_info < (2, 4, 2, 'final'):
- # Workaround for http://bugs.python.org/issue1213894 (os.path.realpath
- # didn't resolve symlinks that were the first component of the path.)
- def realpath(path):
- if os.path.isabs(path):
- return os.path.realpath(path)
- else:
- return os.path.realpath('./' + path)
else:
# Fallback to the likely inadequate Python builtin function.
realpath = os.path.realpath
-if sys.platform == 'cygwin':
- # workaround for cygwin, in which mount point part of path is
- # treated as case sensitive, even though underlying NTFS is case
- # insensitive.
-
- # default mount points
- cygwinmountpoints = sorted([
- "/usr/bin",
- "/usr/lib",
- "/cygdrive",
- ], reverse=True)
-
- # use upper-ing as normcase as same as NTFS workaround
- def normcase(path):
- pathlen = len(path)
- if (pathlen == 0) or (path[0] != os.sep):
- # treat as relative
- return encoding.upper(path)
-
- # to preserve case of mountpoint part
- for mp in cygwinmountpoints:
- if not path.startswith(mp):
- continue
-
- mplen = len(mp)
- if mplen == pathlen: # mount point itself
- return mp
- if path[mplen] == os.sep:
- return mp + encoding.upper(path[mplen:])
-
- return encoding.upper(path)
-
- # Cygwin translates native ACLs to POSIX permissions,
- # but these translations are not supported by native
- # tools, so the exec bit tends to be set erroneously.
- # Therefore, disable executable bit access on Cygwin.
- def checkexec(path):
- return False
-
- # Similarly, Cygwin's symlink emulation is likely to create
- # problems when Mercurial is used from both Cygwin and native
- # Windows, with other native tools, or on shared volumes
- def checklink(path):
- return False
-
def shellquote(s):
if os.sys.platform == 'OpenVMS':
return '"%s"' % s
@@ -324,16 +231,13 @@ def findexe(command):
def findexisting(executable):
'Will return executable if existing file'
- if os.path.isfile(executable) and os.access(executable, os.X_OK):
+ if os.path.exists(executable):
return executable
return None
if os.sep in command:
return findexisting(command)
- if sys.platform == 'plan9':
- return findexisting(os.path.join('/bin', command))
-
for path in os.environ.get('PATH', '').split(os.pathsep):
executable = findexisting(os.path.join(path, command))
if executable is not None:
@@ -407,13 +311,10 @@ def termwidth():
continue
if not os.isatty(fd):
continue
- try:
- arri = fcntl.ioctl(fd, termios.TIOCGWINSZ, '\0' * 8)
- width = array.array('h', arri)[1]
- if width > 0:
- return width
- except AttributeError:
- pass
+ arri = fcntl.ioctl(fd, termios.TIOCGWINSZ, '\0' * 8)
+ width = array.array('h', arri)[1]
+ if width > 0:
+ return width
except ValueError:
pass
except IOError, e:
@@ -424,47 +325,3 @@ def termwidth():
except ImportError:
pass
return 80
-
-def makedir(path, notindexed):
- os.mkdir(path)
-
-def unlinkpath(f):
- """unlink and remove the directory if it is empty"""
- os.unlink(f)
- # try removing directories that might now be empty
- try:
- os.removedirs(os.path.dirname(f))
- except OSError:
- pass
-
-def lookupreg(key, name=None, scope=None):
- return None
-
-def hidewindow():
- """Hide current shell window.
-
- Used to hide the window opened when starting asynchronous
- child process under Windows, unneeded on other systems.
- """
- pass
-
-class cachestat(object):
- def __init__(self, path):
- self.stat = os.stat(path)
-
- def cacheable(self):
- return bool(self.stat.st_ino)
-
- __hash__ = object.__hash__
-
- def __eq__(self, other):
- try:
- return self.stat == other.stat
- except AttributeError:
- return False
-
- def __ne__(self, other):
- return not self == other
-
-def executablepath():
- return None # available on Windows only
diff --git a/mercurial/pure/__init__.py b/mercurial/pure/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/mercurial/pure/__init__.py
+++ /dev/null
diff --git a/mercurial/pure/base85.py b/mercurial/pure/base85.py
index 8b93192..930d251 100644
--- a/mercurial/pure/base85.py
+++ b/mercurial/pure/base85.py
@@ -54,10 +54,9 @@ def b85decode(text):
try:
acc = acc * 85 + _b85dec[c]
except KeyError:
- raise ValueError('bad base85 character at position %d'
- % (i + j))
+ raise TypeError('Bad base85 character at byte %d' % (i + j))
if acc > 4294967295:
- raise ValueError('Base85 overflow in hunk starting at byte %d' % i)
+ raise OverflowError('Base85 overflow in hunk starting at byte %d' % i)
out.append(acc)
# Pad final chunk if necessary
diff --git a/mercurial/pure/bdiff.py b/mercurial/pure/bdiff.py
index 06f0bd3..0e457d3 100644
--- a/mercurial/pure/bdiff.py
+++ b/mercurial/pure/bdiff.py
@@ -5,7 +5,7 @@
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-import struct, difflib, re
+import struct, difflib
def splitnewlines(text):
'''like str.splitlines, but only split on newlines.'''
@@ -78,10 +78,3 @@ def blocks(a, b):
d = _normalizeblocks(an, bn, d)
return [(i, i + n, j, j + n) for (i, j, n) in d]
-def fixws(text, allws):
- if allws:
- text = re.sub('[ \t\r]+', '', text)
- else:
- text = re.sub('[ \t\r]+', ' ', text)
- text = text.replace(' \n', '\n')
- return text
diff --git a/mercurial/pure/mpatch.py b/mercurial/pure/mpatch.py
index 1738d97..760740d 100644
--- a/mercurial/pure/mpatch.py
+++ b/mercurial/pure/mpatch.py
@@ -85,10 +85,10 @@ def patches(a, bins):
p1, p2, l = struct.unpack(">lll", m.read(12))
pull(new, frags, p1 - last) # what didn't change
pull([], frags, p2 - p1) # what got deleted
- new.append((l, pos + 12)) # what got added
+ new.append((l, pos + 12)) # what got added
pos += l + 12
last = p2
- frags.extend(reversed(new)) # what was left at the end
+ frags.extend(reversed(new)) # what was left at the end
t = collect(b2, frags)
diff --git a/mercurial/pure/osutil.py b/mercurial/pure/osutil.py
index 2476bd6..28bbbc5 100644
--- a/mercurial/pure/osutil.py
+++ b/mercurial/pure/osutil.py
@@ -58,7 +58,7 @@ def listdir(path, stat=False, skip=None):
if os.name != 'nt':
posixfile = open
else:
- import ctypes, msvcrt
+ import ctypes, ctypes.util
_kernel32 = ctypes.windll.kernel32
@@ -68,6 +68,15 @@ else:
_INVALID_HANDLE_VALUE = _HANDLE(-1).value
+ def _crtname():
+ try:
+ # find_msvcrt was introduced in Python 2.6
+ return ctypes.util.find_msvcrt()
+ except AttributeError:
+ return 'msvcr71.dll' # CPython 2.5 and 2.4
+
+ _crt = ctypes.PyDLL(_crtname())
+
# CreateFile
_FILE_SHARE_READ = 0x00000001
_FILE_SHARE_WRITE = 0x00000002
@@ -96,6 +105,9 @@ else:
_DWORD, _DWORD, _HANDLE]
_kernel32.CreateFileA.restype = _HANDLE
+ _crt._open_osfhandle.argtypes = [_HANDLE, ctypes.c_int]
+ _crt._open_osfhandle.restype = ctypes.c_int
+
def _raiseioerror(name):
err = ctypes.WinError()
raise IOError(err.errno, '%s: %s' % (name, err.strerror))
@@ -119,7 +131,7 @@ else:
flags = _O_TEXT
m0 = mode[0]
- if m0 == 'r' and '+' not in mode:
+ if m0 == 'r' and not '+' in mode:
flags |= _O_RDONLY
access = _GENERIC_READ
else:
@@ -144,7 +156,10 @@ else:
if fh == _INVALID_HANDLE_VALUE:
_raiseioerror(name)
- fd = msvcrt.open_osfhandle(fh, flags)
+ # for CPython we must use the same CRT as Python uses,
+ # or the os.fdopen call below will abort with
+ # "OSError: [Errno 9] Bad file descriptor"
+ fd = _crt._open_osfhandle(fh, flags)
if fd == -1:
_kernel32.CloseHandle(fh)
_raiseioerror(name)
diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py
index c4fe285..868dba5 100644
--- a/mercurial/pure/parsers.py
+++ b/mercurial/pure/parsers.py
@@ -36,7 +36,7 @@ def parse_index2(data, inline):
s = struct.calcsize(indexformatng)
index = []
cache = None
- off = 0
+ n = off = 0
l = len(data) - s
append = index.append
@@ -45,6 +45,7 @@ def parse_index2(data, inline):
while off <= l:
e = _unpack(indexformatng, data[off:off + s])
append(e)
+ n += 1
if e[1] < 0:
break
off += e[1] + s
@@ -52,6 +53,7 @@ def parse_index2(data, inline):
while off <= l:
e = _unpack(indexformatng, data[off:off + s])
append(e)
+ n += 1
off += s
if off != len(data):
diff --git a/mercurial/pushkey.py b/mercurial/pushkey.py
index 7d692d0..2343319 100644
--- a/mercurial/pushkey.py
+++ b/mercurial/pushkey.py
@@ -5,21 +5,16 @@
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-import bookmarks, phases, obsolete
+import bookmarks
def _nslist(repo):
n = {}
for k in _namespaces:
n[k] = ""
- if not obsolete._enabled:
- n.pop('obsolete')
return n
_namespaces = {"namespaces": (lambda *x: False, _nslist),
- "bookmarks": (bookmarks.pushbookmark, bookmarks.listbookmarks),
- "phases": (phases.pushphase, phases.listphases),
- "obsolete": (obsolete.pushmarker, obsolete.listmarkers),
- }
+ "bookmarks": (bookmarks.pushbookmark, bookmarks.listbookmarks)}
def register(namespace, pushkey, listkeys):
_namespaces[namespace] = (pushkey, listkeys)
diff --git a/mercurial/pvec.py b/mercurial/pvec.py
deleted file mode 100644
index d29bbbc..0000000
--- a/mercurial/pvec.py
+++ /dev/null
@@ -1,210 +0,0 @@
-# pvec.py - probabilistic vector clocks for Mercurial
-#
-# Copyright 2012 Matt Mackall <mpm@selenic.com>
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2 or any later version.
-
-'''
-A "pvec" is a changeset property based on the theory of vector clocks
-that can be compared to discover relatedness without consulting a
-graph. This can be useful for tasks like determining how a
-disconnected patch relates to a repository.
-
-Currently a pvec consist of 448 bits, of which 24 are 'depth' and the
-remainder are a bit vector. It is represented as a 70-character base85
-string.
-
-Construction:
-
-- a root changeset has a depth of 0 and a bit vector based on its hash
-- a normal commit has a changeset where depth is increased by one and
- one bit vector bit is flipped based on its hash
-- a merge changeset pvec is constructed by copying changes from one pvec into
- the other to balance its depth
-
-Properties:
-
-- for linear changes, difference in depth is always <= hamming distance
-- otherwise, changes are probably divergent
-- when hamming distance is < 200, we can reliably detect when pvecs are near
-
-Issues:
-
-- hamming distance ceases to work over distances of ~ 200
-- detecting divergence is less accurate when the common ancestor is very close
- to either revision or total distance is high
-- this could probably be improved by modeling the relation between
- delta and hdist
-
-Uses:
-
-- a patch pvec can be used to locate the nearest available common ancestor for
- resolving conflicts
-- ordering of patches can be established without a DAG
-- two head pvecs can be compared to determine whether push/pull/merge is needed
- and approximately how many changesets are involved
-- can be used to find a heuristic divergence measure between changesets on
- different branches
-'''
-
-import base85, util
-from node import nullrev
-
-_size = 448 # 70 chars b85-encoded
-_bytes = _size / 8
-_depthbits = 24
-_depthbytes = _depthbits / 8
-_vecbytes = _bytes - _depthbytes
-_vecbits = _vecbytes * 8
-_radius = (_vecbits - 30) / 2 # high probability vecs are related
-
-def _bin(bs):
- '''convert a bytestring to a long'''
- v = 0
- for b in bs:
- v = v * 256 + ord(b)
- return v
-
-def _str(v, l):
- bs = ""
- for p in xrange(l):
- bs = chr(v & 255) + bs
- v >>= 8
- return bs
-
-def _split(b):
- '''depth and bitvec'''
- return _bin(b[:_depthbytes]), _bin(b[_depthbytes:])
-
-def _join(depth, bitvec):
- return _str(depth, _depthbytes) + _str(bitvec, _vecbytes)
-
-def _hweight(x):
- c = 0
- while x:
- if x & 1:
- c += 1
- x >>= 1
- return c
-_htab = [_hweight(x) for x in xrange(256)]
-
-def _hamming(a, b):
- '''find the hamming distance between two longs'''
- d = a ^ b
- c = 0
- while d:
- c += _htab[d & 0xff]
- d >>= 8
- return c
-
-def _mergevec(x, y, c):
- # Ideally, this function would be x ^ y ^ ancestor, but finding
- # ancestors is a nuisance. So instead we find the minimal number
- # of changes to balance the depth and hamming distance
-
- d1, v1 = x
- d2, v2 = y
- if d1 < d2:
- d1, d2, v1, v2 = d2, d1, v2, v1
-
- hdist = _hamming(v1, v2)
- ddist = d1 - d2
- v = v1
- m = v1 ^ v2 # mask of different bits
- i = 1
-
- if hdist > ddist:
- # if delta = 10 and hdist = 100, then we need to go up 55 steps
- # to the ancestor and down 45
- changes = (hdist - ddist + 1) / 2
- else:
- # must make at least one change
- changes = 1
- depth = d1 + changes
-
- # copy changes from v2
- if m:
- while changes:
- if m & i:
- v ^= i
- changes -= 1
- i <<= 1
- else:
- v = _flipbit(v, c)
-
- return depth, v
-
-def _flipbit(v, node):
- # converting bit strings to longs is slow
- bit = (hash(node) & 0xffffffff) % _vecbits
- return v ^ (1<<bit)
-
-def ctxpvec(ctx):
- '''construct a pvec for ctx while filling in the cache'''
- r = ctx._repo
- if not util.safehasattr(r, "_pveccache"):
- r._pveccache = {}
- pvc = r._pveccache
- if ctx.rev() not in pvc:
- cl = r.changelog
- for n in xrange(ctx.rev() + 1):
- if n not in pvc:
- node = cl.node(n)
- p1, p2 = cl.parentrevs(n)
- if p1 == nullrev:
- # start with a 'random' vector at root
- pvc[n] = (0, _bin((node * 3)[:_vecbytes]))
- elif p2 == nullrev:
- d, v = pvc[p1]
- pvc[n] = (d + 1, _flipbit(v, node))
- else:
- pvc[n] = _mergevec(pvc[p1], pvc[p2], node)
- bs = _join(*pvc[ctx.rev()])
- return pvec(base85.b85encode(bs))
-
-class pvec(object):
- def __init__(self, hashorctx):
- if isinstance(hashorctx, str):
- self._bs = hashorctx
- self._depth, self._vec = _split(base85.b85decode(hashorctx))
- else:
- self._vec = ctxpvec(ctx)
-
- def __str__(self):
- return self._bs
-
- def __eq__(self, b):
- return self._vec == b._vec and self._depth == b._depth
-
- def __lt__(self, b):
- delta = b._depth - self._depth
- if delta < 0:
- return False # always correct
- if _hamming(self._vec, b._vec) > delta:
- return False
- return True
-
- def __gt__(self, b):
- return b < self
-
- def __or__(self, b):
- delta = abs(b._depth - self._depth)
- if _hamming(self._vec, b._vec) <= delta:
- return False
- return True
-
- def __sub__(self, b):
- if self | b:
- raise ValueError("concurrent pvecs")
- return self._depth - b._depth
-
- def distance(self, b):
- d = abs(b._depth - self._depth)
- h = _hamming(self._vec, b._vec)
- return max(d, h)
-
- def near(self, b):
- dist = abs(b.depth - self._depth)
- if dist > _radius or _hamming(self._vec, b._vec) > _radius:
- return False
diff --git a/mercurial/repair.py b/mercurial/repair.py
index 9ccaa34..c95dff1 100644
--- a/mercurial/repair.py
+++ b/mercurial/repair.py
@@ -10,7 +10,6 @@ from mercurial import changegroup, bookmarks
from mercurial.node import short
from mercurial.i18n import _
import os
-import errno
def _bundle(repo, bases, heads, node, suffix, compress=True):
"""create a bundle with the specified revisions as a backup"""
@@ -38,14 +37,14 @@ def _collectbrokencsets(repo, files, striprev):
"""return the changesets which will be broken by the truncation"""
s = set()
def collectone(revlog):
- linkgen = (revlog.linkrev(i) for i in revlog)
+ links = (revlog.linkrev(i) for i in revlog)
# find the truncation point of the revlog
- for lrev in linkgen:
+ for lrev in links:
if lrev >= striprev:
break
# see if any revision after this point has a linkrev
# less than striprev (those will be broken by strip)
- for lrev in linkgen:
+ for lrev in links:
if lrev < striprev:
s.add(lrev)
@@ -55,29 +54,10 @@ def _collectbrokencsets(repo, files, striprev):
return s
-def strip(ui, repo, nodelist, backup="all", topic='backup'):
- # It simplifies the logic around updating the branchheads cache if we only
- # have to consider the effect of the stripped revisions and not revisions
- # missing because the cache is out-of-date.
- repo.updatebranchcache()
-
+def strip(ui, repo, node, backup="all"):
cl = repo.changelog
- # TODO handle undo of merge sets
- if isinstance(nodelist, str):
- nodelist = [nodelist]
- striplist = [cl.rev(node) for node in nodelist]
- striprev = min(striplist)
-
- # Generate set of branches who will have nodes stripped.
- striprevs = repo.revs("%ld::", striplist)
- stripbranches = set([repo[rev].branch() for rev in striprevs])
-
- # Set of potential new heads resulting from the strip. The parents of any
- # node removed could be a new head because the node to be removed could have
- # been the only child of the parent.
- newheadrevs = repo.revs("parents(%ld::) - %ld::", striprevs, striprevs)
- newheadnodes = set([cl.node(rev) for rev in newheadrevs])
- newheadbranches = set([repo[rev].branch() for rev in newheadrevs])
+ # TODO delete the undo files, and handle undo of merge sets
+ striprev = cl.rev(node)
keeppartialbundle = backup == 'strip'
@@ -88,10 +68,8 @@ def strip(ui, repo, nodelist, backup="all", topic='backup'):
# the list of heads and bases of the set of interesting revisions.
# (head = revision in the set that has no descendant in the set;
# base = revision in the set that has no ancestor in the set)
- tostrip = set(striplist)
- for rev in striplist:
- for desc in cl.descendants([rev]):
- tostrip.add(desc)
+ tostrip = set(cl.descendants(striprev))
+ tostrip.add(striprev)
files = _collectfiles(repo, striprev)
saverevs = _collectbrokencsets(repo, files, striprev)
@@ -107,17 +85,9 @@ def strip(ui, repo, nodelist, backup="all", topic='backup'):
# compute base nodes
if saverevs:
- descendants = set(cl.descendants(saverevs))
+ descendants = set(cl.descendants(*saverevs))
saverevs.difference_update(descendants)
savebases = [cl.node(r) for r in saverevs]
- stripbases = [cl.node(r) for r in tostrip]
- rset = ' or '.join([str(r) for r in tostrip])
- newbmtarget = repo.revs('sort(heads(ancestors(%r) - (%r)), -rev)',
- rset, rset)
- if newbmtarget:
- newbmtarget = newbmtarget[0]
- else:
- newbmtarget = '.'
bm = repo._bookmarks
updatebm = []
@@ -129,7 +99,7 @@ def strip(ui, repo, nodelist, backup="all", topic='backup'):
# create a changegroup for all the branches we need to keep
backupfile = None
if backup == "all":
- backupfile = _bundle(repo, stripbases, cl.heads(), node, topic)
+ backupfile = _bundle(repo, [node], cl.heads(), node, 'backup')
repo.ui.status(_("saved backup bundle to %s\n") % backupfile)
if saveheads or savebases:
# do not compress partial bundle if we remove it from disk later
@@ -154,7 +124,7 @@ def strip(ui, repo, nodelist, backup="all", topic='backup'):
file, troffset, ignore = tr.entries[i]
repo.sopener(file, 'a').truncate(troffset)
tr.close()
- except: # re-raises
+ except:
tr.abort()
raise
@@ -172,18 +142,11 @@ def strip(ui, repo, nodelist, backup="all", topic='backup'):
if not keeppartialbundle:
os.unlink(chgrpfile)
- # remove undo files
- for undofile in repo.undofiles():
- try:
- os.unlink(undofile)
- except OSError, e:
- if e.errno != errno.ENOENT:
- ui.warn(_('error removing %s: %s\n') % (undofile, str(e)))
-
for m in updatebm:
- bm[m] = repo[newbmtarget].node()
+ bm[m] = repo['.'].node()
bookmarks.write(repo)
- except: # re-raises
+
+ except:
if backupfile:
ui.warn(_("strip failed, full bundle stored in '%s'\n")
% backupfile)
@@ -192,10 +155,4 @@ def strip(ui, repo, nodelist, backup="all", topic='backup'):
% chgrpfile)
raise
- if len(stripbranches) == 1 and len(newheadbranches) == 1 \
- and stripbranches == newheadbranches:
- repo.destroyed(newheadnodes)
- else:
- # Multiple branches involved in strip. Will allow branchcache to become
- # invalid and later on rebuilt from scratch
- repo.destroyed()
+ repo.destroyed()
diff --git a/mercurial/peer.py b/mercurial/repo.py
index 40841ca..60de133 100644
--- a/mercurial/peer.py
+++ b/mercurial/repo.py
@@ -1,4 +1,4 @@
-# peer.py - repository base classes for mercurial
+# repo.py - repository base classes for mercurial
#
# Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
# Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>
@@ -9,18 +9,16 @@
from i18n import _
import error
-class peerrepository(object):
-
+class repository(object):
def capable(self, name):
'''tell whether repo supports named capability.
return False if not supported.
if boolean capability, return True.
if string capability, return string.'''
- caps = self._capabilities()
- if name in caps:
+ if name in self.capabilities:
return True
name_eq = name + '='
- for cap in caps:
+ for cap in self.capabilities:
if cap.startswith(name_eq):
return cap[len(name_eq):]
return False
@@ -33,14 +31,10 @@ class peerrepository(object):
'support the %r capability') % (purpose, name))
def local(self):
- '''return peer as a localrepo, or None'''
- return None
-
- def peer(self):
- return self
+ return False
- def canpush(self):
- return True
+ def cancopy(self):
+ return self.local()
def close(self):
pass
diff --git a/mercurial/revlog.py b/mercurial/revlog.py
index 8ed1d82..97151aa 100644
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -75,6 +75,35 @@ def hash(text, p1, p2):
s.update(text)
return s.digest()
+def compress(text):
+ """ generate a possibly-compressed representation of text """
+ if not text:
+ return ("", text)
+ l = len(text)
+ bin = None
+ if l < 44:
+ pass
+ elif l > 1000000:
+ # zlib makes an internal copy, thus doubling memory usage for
+ # large files, so lets do this in pieces
+ z = zlib.compressobj()
+ p = []
+ pos = 0
+ while pos < l:
+ pos2 = pos + 2**20
+ p.append(z.compress(text[pos:pos2]))
+ pos = pos2
+ p.append(z.flush())
+ if sum(map(len, p)) < l:
+ bin = "".join(p)
+ else:
+ bin = _compress(text)
+ if bin is None or len(bin) > l:
+ if text[0] == '\0':
+ return ("", text)
+ return ('u', text)
+ return ("", bin)
+
def decompress(bin):
""" decompress the given input """
if not bin:
@@ -83,10 +112,7 @@ def decompress(bin):
if t == '\0':
return bin
if t == 'x':
- try:
- return _decompress(bin)
- except zlib.error, e:
- raise RevlogError(_("revlog decompress error: %s") % str(e))
+ return _decompress(bin)
if t == 'u':
return bin[1:]
raise RevlogError(_("unknown compression type %r") % t)
@@ -148,7 +174,7 @@ class revlogio(object):
def parseindex(self, data, inline):
# call the C implementation to parse the index data
index, cache = parsers.parse_index2(data, inline)
- return index, getattr(index, 'nodemap', None), cache
+ return index, None, cache
def packentry(self, entry, node, version, rev):
p = _pack(indexformatng, *entry)
@@ -200,10 +226,9 @@ class revlog(object):
self._nodepos = None
v = REVLOG_DEFAULT_VERSION
- opts = getattr(opener, 'options', None)
- if opts is not None:
- if 'revlogv1' in opts:
- if 'generaldelta' in opts:
+ if hasattr(opener, 'options'):
+ if 'revlogv1' in opener.options:
+ if 'generaldelta' in opener.options:
v |= REVLOGGENERALDELTA
else:
v = 0
@@ -262,28 +287,10 @@ class revlog(object):
self.rev(self.node(0))
return self._nodecache
- def hasnode(self, node):
- try:
- self.rev(node)
- return True
- except KeyError:
- return False
-
- def clearcaches(self):
- try:
- self._nodecache.clearcaches()
- except AttributeError:
- self._nodecache = {nullid: nullrev}
- self._nodepos = None
-
def rev(self, node):
try:
return self._nodecache[node]
- except RevlogError:
- # parsers.c radix tree lookup failed
- raise LookupError(node, self.indexfile, _('no node'))
except KeyError:
- # pure python cache lookup failed
n = self._nodecache
i = self.index
p = self._nodepos
@@ -332,35 +339,47 @@ class revlog(object):
return len(t)
size = rawsize
- def ancestors(self, revs, stoprev=0):
+ def reachable(self, node, stop=None):
+ """return the set of all nodes ancestral to a given node, including
+ the node itself, stopping when stop is matched"""
+ reachable = set((node,))
+ visit = [node]
+ if stop:
+ stopn = self.rev(stop)
+ else:
+ stopn = 0
+ while visit:
+ n = visit.pop(0)
+ if n == stop:
+ continue
+ if n == nullid:
+ continue
+ for p in self.parents(n):
+ if self.rev(p) < stopn:
+ continue
+ if p not in reachable:
+ reachable.add(p)
+ visit.append(p)
+ return reachable
+
+ def ancestors(self, *revs):
"""Generate the ancestors of 'revs' in reverse topological order.
- Does not generate revs lower than stoprev.
Yield a sequence of revision numbers starting with the parents
of each revision in revs, i.e., each revision is *not* considered
an ancestor of itself. Results are in breadth-first order:
parents of each rev in revs, then parents of those, etc. Result
does not include the null revision."""
- visit = util.deque(revs)
+ visit = list(revs)
seen = set([nullrev])
while visit:
- for parent in self.parentrevs(visit.popleft()):
- if parent < stoprev:
- continue
+ for parent in self.parentrevs(visit.pop(0)):
if parent not in seen:
visit.append(parent)
seen.add(parent)
yield parent
- def incancestors(self, revs, stoprev=0):
- """Identical to ancestors() except it also generates the
- revisions, 'revs'"""
- for rev in revs:
- yield rev
- for rev in self.ancestors(revs, stoprev):
- yield rev
-
- def descendants(self, revs):
+ def descendants(self, *revs):
"""Generate the descendants of 'revs' in revision order.
Yield a sequence of revision numbers starting with a child of
@@ -383,10 +402,13 @@ class revlog(object):
def findcommonmissing(self, common=None, heads=None):
"""Return a tuple of the ancestors of common and the ancestors of heads
- that are not ancestors of common. In revset terminology, we return the
- tuple:
+ that are not ancestors of common.
- ::common, (::heads) - (::common)
+ More specifically, the second element is a list of nodes N such that
+ every N satisfies the following constraints:
+
+ 1. N is an ancestor of some node in 'heads'
+ 2. N is not an ancestor of any node in 'common'
The list is sorted by revision number, meaning it is
topologically sorted.
@@ -403,15 +425,15 @@ class revlog(object):
heads = [self.rev(n) for n in heads]
# we want the ancestors, but inclusive
- has = set(self.ancestors(common))
+ has = set(self.ancestors(*common))
has.add(nullrev)
has.update(common)
# take all ancestors from heads that aren't in has
missing = set()
- visit = util.deque(r for r in heads if r not in has)
+ visit = [r for r in heads if r not in has]
while visit:
- r = visit.popleft()
+ r = visit.pop(0)
if r in missing:
continue
else:
@@ -597,10 +619,6 @@ class revlog(object):
return (orderedout, roots, heads)
def headrevs(self):
- try:
- return self.index.headrevs()
- except AttributeError:
- pass
count = len(self)
if not count:
return [nullrev]
@@ -662,7 +680,7 @@ class revlog(object):
def descendant(self, start, end):
if start == nullrev:
return True
- for i in self.descendants([start]):
+ for i in self.descendants(start):
if i == end:
return True
elif i > end:
@@ -688,7 +706,7 @@ class revlog(object):
return self.node(c)
def _match(self, id):
- if isinstance(id, int):
+ if isinstance(id, (long, int)):
# rev
return self.node(id)
if len(id) == 20:
@@ -722,15 +740,6 @@ class revlog(object):
pass
def _partialmatch(self, id):
- try:
- return self.index.partialmatch(id)
- except RevlogError:
- # parsers.c radix tree lookup gave multiple matches
- raise LookupError(id, self.indexfile, _("ambiguous identifier"))
- except (AttributeError, ValueError):
- # we are pure python, or key was too short to search radix tree
- pass
-
if id in self._pcache:
return self._pcache[id]
@@ -790,10 +799,9 @@ class revlog(object):
readahead = max(65536, length)
df.seek(offset)
d = df.read(readahead)
- df.close()
self._addchunk(offset, d)
if readahead > length:
- return util.buffer(d, 0, length)
+ return d[:length]
return d
def _getchunk(self, offset, length):
@@ -806,7 +814,7 @@ class revlog(object):
if cachestart >= 0 and cacheend <= l:
if cachestart == 0 and cacheend == l:
return d # avoid a copy
- return util.buffer(d, cachestart, cacheend - cachestart)
+ return d[cachestart:cacheend]
return self._loadchunk(offset, length)
@@ -839,22 +847,13 @@ class revlog(object):
def revdiff(self, rev1, rev2):
"""return or calculate a delta between two revisions"""
if rev1 != nullrev and self.deltaparent(rev2) == rev1:
- return str(self._chunk(rev2))
+ return self._chunk(rev2)
- return mdiff.textdiff(self.revision(rev1),
- self.revision(rev2))
-
- def revision(self, nodeorrev):
- """return an uncompressed revision of a given node or revision
- number.
- """
- if isinstance(nodeorrev, int):
- rev = nodeorrev
- node = self.node(rev)
- else:
- node = nodeorrev
- rev = None
+ return mdiff.textdiff(self.revision(self.node(rev1)),
+ self.revision(self.node(rev2)))
+ def revision(self, node):
+ """return an uncompressed revision of a given node"""
cachedrev = None
if node == nullid:
return ""
@@ -865,8 +864,7 @@ class revlog(object):
# look up what we need to read
text = None
- if rev is None:
- rev = self.rev(node)
+ rev = self.rev(node)
# check rev flags
if self.flags(rev) & ~REVIDX_KNOWN_FLAGS:
@@ -898,7 +896,7 @@ class revlog(object):
self._chunkraw(base, rev)
if text is None:
- text = str(self._chunkbase(base))
+ text = self._chunkbase(base)
bins = [self._chunk(r) for r in chain]
text = mdiff.patches(text, bins)
@@ -947,9 +945,9 @@ class revlog(object):
e = self._io.packentry(self.index[i], self.node, self.version, i)
fp.write(e)
- # if we don't call close, the temp file will never replace the
+ # if we don't call rename, the temp file will never replace the
# real index
- fp.close()
+ fp.rename()
tr.replace(self.indexfile, trindex * self._io.size)
self._chunkclear()
@@ -979,35 +977,6 @@ class revlog(object):
dfh.close()
ifh.close()
- def compress(self, text):
- """ generate a possibly-compressed representation of text """
- if not text:
- return ("", text)
- l = len(text)
- bin = None
- if l < 44:
- pass
- elif l > 1000000:
- # zlib makes an internal copy, thus doubling memory usage for
- # large files, so lets do this in pieces
- z = zlib.compressobj()
- p = []
- pos = 0
- while pos < l:
- pos2 = pos + 2**20
- p.append(z.compress(text[pos:pos2]))
- pos = pos2
- p.append(z.flush())
- if sum(map(len, p)) < l:
- bin = "".join(p)
- else:
- bin = _compress(text)
- if bin is None or len(bin) > l:
- if text[0] == '\0':
- return ("", text)
- return ('u', text)
- return ("", bin)
-
def _addrevision(self, node, text, transaction, link, p1, p2,
cachedelta, ifh, dfh):
"""internal function to add revisions to the log
@@ -1040,7 +1009,7 @@ class revlog(object):
t = buildtext()
ptext = self.revision(self.node(rev))
delta = mdiff.textdiff(ptext, t)
- data = self.compress(delta)
+ data = compress(delta)
l = len(data[1]) + len(data[0])
if basecache[0] == rev:
chainbase = basecache[1]
@@ -1084,7 +1053,7 @@ class revlog(object):
textlen = len(text)
if d is None or dist > textlen * 2:
text = buildtext()
- data = self.compress(text)
+ data = compress(text)
l = len(data[1]) + len(data[0])
base = chainbase = curr
@@ -1163,7 +1132,6 @@ class revlog(object):
"""
# track the base of the current delta log
- content = []
node = None
r = len(self)
@@ -1194,8 +1162,6 @@ class revlog(object):
deltabase = chunkdata['deltabase']
delta = chunkdata['delta']
- content.append(node)
-
link = linkmapper(cs)
if node in self.nodemap:
# this can happen if two branches make the same change
@@ -1203,7 +1169,7 @@ class revlog(object):
continue
for p in (p1, p2):
- if p not in self.nodemap:
+ if not p in self.nodemap:
raise LookupError(p, self.indexfile,
_('unknown parent'))
@@ -1225,7 +1191,7 @@ class revlog(object):
dfh.close()
ifh.close()
- return content
+ return node
def strip(self, minlink, transaction):
"""truncate the revlog on the first revision with a linkrev >= minlink
@@ -1239,7 +1205,7 @@ class revlog(object):
So we truncate the revlog on the first of these revisions, and
trust that the caller has saved the revisions that shouldn't be
- removed and that it'll re-add them after this truncation.
+ removed and that it'll readd them after this truncation.
"""
if len(self) == 0:
return
diff --git a/mercurial/revset.py b/mercurial/revset.py
index a7e9d07..cb089d7 100644
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -6,76 +6,10 @@
# GNU General Public License version 2 or any later version.
import re
-import parser, util, error, discovery, hbisect, phases
-import node
+import parser, util, error, discovery, hbisect
import bookmarks as bookmarksmod
import match as matchmod
from i18n import _
-import encoding
-
-def _revancestors(repo, revs, followfirst):
- """Like revlog.ancestors(), but supports followfirst."""
- cut = followfirst and 1 or None
- cl = repo.changelog
- visit = util.deque(revs)
- seen = set([node.nullrev])
- while visit:
- for parent in cl.parentrevs(visit.popleft())[:cut]:
- if parent not in seen:
- visit.append(parent)
- seen.add(parent)
- yield parent
-
-def _revdescendants(repo, revs, followfirst):
- """Like revlog.descendants() but supports followfirst."""
- cut = followfirst and 1 or None
- cl = repo.changelog
- first = min(revs)
- nullrev = node.nullrev
- if first == nullrev:
- # Are there nodes with a null first parent and a non-null
- # second one? Maybe. Do we care? Probably not.
- for i in cl:
- yield i
- return
-
- seen = set(revs)
- for i in xrange(first + 1, len(cl)):
- for x in cl.parentrevs(i)[:cut]:
- if x != nullrev and x in seen:
- seen.add(i)
- yield i
- break
-
-def _revsbetween(repo, roots, heads):
- """Return all paths between roots and heads, inclusive of both endpoint
- sets."""
- if not roots:
- return []
- parentrevs = repo.changelog.parentrevs
- visit = heads[:]
- reachable = set()
- seen = {}
- minroot = min(roots)
- roots = set(roots)
- # open-code the post-order traversal due to the tiny size of
- # sys.getrecursionlimit()
- while visit:
- rev = visit.pop()
- if rev in roots:
- reachable.add(rev)
- parents = parentrevs(rev)
- seen[rev] = parents
- for parent in parents:
- if parent >= minroot and parent not in seen:
- visit.append(parent)
- if not reachable:
- return []
- for rev in sorted(seen):
- for parent in seen[rev]:
- if parent in reachable:
- reachable.add(rev)
- return sorted(reachable)
elements = {
"(": (20, ("group", 1, ")"), ("func", 1, ")")),
@@ -138,13 +72,12 @@ def tokenize(program):
pos += 1
else:
raise error.ParseError(_("unterminated string"), s)
- # gather up a symbol/keyword
- elif c.isalnum() or c in '._' or ord(c) > 127:
+ elif c.isalnum() or c in '._' or ord(c) > 127: # gather up a symbol/keyword
s = pos
pos += 1
while pos < l: # find end of symbol
d = program[pos]
- if not (d.isalnum() or d in "._/" or ord(d) > 127):
+ if not (d.isalnum() or d in "._" or ord(d) > 127):
break
if d == '.' and program[pos - 1] == '.': # special case for ..
pos -= 1
@@ -177,7 +110,7 @@ def getlist(x):
def getargs(x, min, max, err):
l = getlist(x)
- if len(l) < min or (max >= 0 and len(l) > max):
+ if len(l) < min or len(l) > max:
raise error.ParseError(err)
return l
@@ -186,16 +119,6 @@ def getset(repo, subset, x):
raise error.ParseError(_("missing argument"))
return methods[x[0]](repo, subset, *x[1:])
-def _getrevsource(repo, r):
- extra = repo[r].extra()
- for label in ('source', 'transplant_source', 'rebase_source'):
- if label in extra:
- try:
- return repo[extra[label]].rev()
- except error.RepoLookupError:
- pass
- return None
-
# operator methods
def stringset(repo, subset, x):
@@ -231,14 +154,6 @@ def rangeset(repo, subset, x, y):
s = set(subset)
return [x for x in r if x in s]
-def dagrange(repo, subset, x, y):
- if subset:
- r = range(len(repo))
- xs = _revsbetween(repo, getset(repo, r, x), getset(repo, r, y))
- s = set(subset)
- return [r for r in xs if r in s]
- return []
-
def andset(repo, subset, x, y):
return getset(repo, getset(repo, subset, x), y)
@@ -286,28 +201,19 @@ def ancestor(repo, subset, x):
return [r for r in an if r in subset]
-def _ancestors(repo, subset, x, followfirst=False):
- args = getset(repo, range(len(repo)), x)
- if not args:
- return []
- s = set(_revancestors(repo, args, followfirst)) | set(args)
- return [r for r in subset if r in s]
-
def ancestors(repo, subset, x):
"""``ancestors(set)``
Changesets that are ancestors of a changeset in set.
"""
- return _ancestors(repo, subset, x)
-
-def _firstancestors(repo, subset, x):
- # ``_firstancestors(set)``
- # Like ``ancestors(set)`` but follows only the first parents.
- return _ancestors(repo, subset, x, followfirst=True)
+ args = getset(repo, range(len(repo)), x)
+ if not args:
+ return []
+ s = set(repo.changelog.ancestors(*args)) | set(args)
+ return [r for r in subset if r in s]
def ancestorspec(repo, subset, x, n):
"""``set~n``
- Changesets that are the Nth ancestor (first parents only) of a changeset
- in set.
+ Changesets that are the Nth ancestor (first parents only) of a changeset in set.
"""
try:
n = int(n[1])
@@ -326,39 +232,22 @@ def author(repo, subset, x):
Alias for ``user(string)``.
"""
# i18n: "author" is a keyword
- n = encoding.lower(getstring(x, _("author requires a string")))
- kind, pattern, matcher = _substringmatcher(n)
- return [r for r in subset if matcher(encoding.lower(repo[r].user()))]
-
-def bisect(repo, subset, x):
- """``bisect(string)``
- Changesets marked in the specified bisect status:
-
- - ``good``, ``bad``, ``skip``: csets explicitly marked as good/bad/skip
- - ``goods``, ``bads`` : csets topologicaly good/bad
- - ``range`` : csets taking part in the bisection
- - ``pruned`` : csets that are goods, bads or skipped
- - ``untested`` : csets whose fate is yet unknown
- - ``ignored`` : csets ignored due to DAG topology
- - ``current`` : the cset currently being bisected
- """
- # i18n: "bisect" is a keyword
- status = getstring(x, _("bisect requires a string")).lower()
- state = set(hbisect.get(repo, status))
- return [r for r in subset if r in state]
+ n = getstring(x, _("author requires a string")).lower()
+ return [r for r in subset if n in repo[r].user().lower()]
-# Backward-compatibility
-# - no help entry so that we do not advertise it any more
def bisected(repo, subset, x):
- return bisect(repo, subset, x)
+ """``bisected(string)``
+ Changesets marked in the specified bisect state (good, bad, skip).
+ """
+ state = getstring(x, _("bisect requires a string")).lower()
+ if state not in ('good', 'bad', 'skip', 'unknown'):
+ raise error.ParseError(_('invalid bisect state'))
+ marked = set(repo.changelog.rev(n) for n in hbisect.load_state(repo)[state])
+ return [r for r in subset if r in marked]
def bookmark(repo, subset, x):
"""``bookmark([name])``
The named bookmark or all bookmarks.
-
- If `name` starts with `re:`, the remainder of the name is treated as
- a regular expression. To match a bookmark that actually starts with `re:`,
- use the prefix `literal:`.
"""
# i18n: "bookmark" is a keyword
args = getargs(x, 0, 1, _('bookmark takes one or no arguments'))
@@ -366,26 +255,11 @@ def bookmark(repo, subset, x):
bm = getstring(args[0],
# i18n: "bookmark" is a keyword
_('the argument to bookmark must be a string'))
- kind, pattern, matcher = _stringmatcher(bm)
- if kind == 'literal':
- bmrev = bookmarksmod.listbookmarks(repo).get(bm, None)
- if not bmrev:
- raise util.Abort(_("bookmark '%s' does not exist") % bm)
- bmrev = repo[bmrev].rev()
- return [r for r in subset if r == bmrev]
- else:
- matchrevs = set()
- for name, bmrev in bookmarksmod.listbookmarks(repo).iteritems():
- if matcher(name):
- matchrevs.add(bmrev)
- if not matchrevs:
- raise util.Abort(_("no bookmarks exist that match '%s'")
- % pattern)
- bmrevs = set()
- for bmrev in matchrevs:
- bmrevs.add(repo[bmrev].rev())
- return [r for r in subset if r in bmrevs]
-
+ bmrev = bookmarksmod.listbookmarks(repo).get(bm, None)
+ if not bmrev:
+ raise util.Abort(_("bookmark '%s' does not exist") % bm)
+ bmrev = repo[bmrev].rev()
+ return [r for r in subset if r == bmrev]
bms = set([repo[r].rev()
for r in bookmarksmod.listbookmarks(repo).values()])
return [r for r in subset if r in bms]
@@ -394,25 +268,14 @@ def branch(repo, subset, x):
"""``branch(string or set)``
All changesets belonging to the given branch or the branches of the given
changesets.
-
- If `string` starts with `re:`, the remainder of the name is treated as
- a regular expression. To match a branch that actually starts with `re:`,
- use the prefix `literal:`.
"""
try:
b = getstring(x, '')
+ if b in repo.branchmap():
+ return [r for r in subset if repo[r].branch() == b]
except error.ParseError:
# not a string, but another revspec, e.g. tip()
pass
- else:
- kind, pattern, matcher = _stringmatcher(b)
- if kind == 'literal':
- # note: falls through to the revspec case if no branch with
- # this name exists
- if pattern in repo.branchmap():
- return [r for r in subset if matcher(repo[r].branch())]
- else:
- return [r for r in subset if matcher(repo[r].branch())]
s = getset(repo, range(len(repo)), x)
b = set()
@@ -422,18 +285,13 @@ def branch(repo, subset, x):
return [r for r in subset if r in s or repo[r].branch() in b]
def checkstatus(repo, subset, pat, field):
- m = None
+ m = matchmod.match(repo.root, repo.getcwd(), [pat])
s = []
- hasset = matchmod.patkind(pat) == 'set'
- fname = None
+ fast = (m.files() == [pat])
for r in subset:
c = repo[r]
- if not m or hasset:
- m = matchmod.match(repo.root, repo.getcwd(), [pat], ctx=c)
- if not m.anypats() and len(m.files()) == 1:
- fname = m.files()[0]
- if fname is not None:
- if fname not in c.files():
+ if fast:
+ if pat not in c.files():
continue
else:
for f in c.files():
@@ -442,8 +300,8 @@ def checkstatus(repo, subset, pat, field):
else:
continue
files = repo.status(c.p1().node(), c.node())[field]
- if fname is not None:
- if fname in files:
+ if fast:
+ if pat in files:
s.append(r)
else:
for f in files:
@@ -452,21 +310,17 @@ def checkstatus(repo, subset, pat, field):
break
return s
-def _children(repo, narrow, parentset):
- cs = set()
- pr = repo.changelog.parentrevs
- for r in narrow:
- for p in pr(r):
- if p in parentset:
- cs.add(r)
- return cs
-
def children(repo, subset, x):
"""``children(set)``
Child changesets of changesets in set.
"""
+ cs = set()
+ cl = repo.changelog
s = set(getset(repo, range(len(repo)), x))
- cs = _children(repo, subset, s)
+ for r in xrange(0, len(repo)):
+ for p in cl.parentrevs(r):
+ if p in s:
+ cs.add(r)
return [r for r in subset if r in cs]
def closed(repo, subset, x):
@@ -475,7 +329,7 @@ def closed(repo, subset, x):
"""
# i18n: "closed" is a keyword
getargs(x, 0, 0, _("closed takes no arguments"))
- return [r for r in subset if repo[r].closesbranch()]
+ return [r for r in subset if repo[r].extra().get('close')]
def contains(repo, subset, x):
"""``contains(pattern)``
@@ -484,45 +338,20 @@ def contains(repo, subset, x):
"""
# i18n: "contains" is a keyword
pat = getstring(x, _("contains requires a pattern"))
- m = None
+ m = matchmod.match(repo.root, repo.getcwd(), [pat])
s = []
- if not matchmod.patkind(pat):
+ if m.files() == [pat]:
for r in subset:
if pat in repo[r]:
s.append(r)
else:
for r in subset:
- c = repo[r]
- if not m or matchmod.patkind(pat) == 'set':
- m = matchmod.match(repo.root, repo.getcwd(), [pat], ctx=c)
- for f in c.manifest():
+ for f in repo[r].manifest():
if m(f):
s.append(r)
break
return s
-def converted(repo, subset, x):
- """``converted([id])``
- Changesets converted from the given identifier in the old repository if
- present, or all converted changesets if no identifier is specified.
- """
-
- # There is exactly no chance of resolving the revision, so do a simple
- # string compare and hope for the best
-
- rev = None
- # i18n: "converted" is a keyword
- l = getargs(x, 0, 1, _('converted takes one or no arguments'))
- if l:
- # i18n: "converted" is a keyword
- rev = getstring(l[0], _('converted requires a revision'))
-
- def _matchvalue(r):
- source = repo[r].extra().get('convert_revision', None)
- return source is not None and (rev is None or source.startswith(rev))
-
- return [r for r in subset if _matchvalue(r)]
-
def date(repo, subset, x):
"""``date(interval)``
Changesets within the interval, see :hg:`help dates`.
@@ -537,136 +366,34 @@ def desc(repo, subset, x):
Search commit message for string. The match is case-insensitive.
"""
# i18n: "desc" is a keyword
- ds = encoding.lower(getstring(x, _("desc requires a string")))
+ ds = getstring(x, _("desc requires a string")).lower()
l = []
for r in subset:
c = repo[r]
- if ds in encoding.lower(c.description()):
+ if ds in c.description().lower():
l.append(r)
return l
-def _descendants(repo, subset, x, followfirst=False):
- args = getset(repo, range(len(repo)), x)
- if not args:
- return []
- s = set(_revdescendants(repo, args, followfirst)) | set(args)
- return [r for r in subset if r in s]
-
def descendants(repo, subset, x):
"""``descendants(set)``
Changesets which are descendants of changesets in set.
"""
- return _descendants(repo, subset, x)
-
-def _firstdescendants(repo, subset, x):
- # ``_firstdescendants(set)``
- # Like ``descendants(set)`` but follows only the first parents.
- return _descendants(repo, subset, x, followfirst=True)
-
-def destination(repo, subset, x):
- """``destination([set])``
- Changesets that were created by a graft, transplant or rebase operation,
- with the given revisions specified as the source. Omitting the optional set
- is the same as passing all().
- """
- if x is not None:
- args = set(getset(repo, range(len(repo)), x))
- else:
- args = set(getall(repo, range(len(repo)), x))
-
- dests = set()
-
- # subset contains all of the possible destinations that can be returned, so
- # iterate over them and see if their source(s) were provided in the args.
- # Even if the immediate src of r is not in the args, src's source (or
- # further back) may be. Scanning back further than the immediate src allows
- # transitive transplants and rebases to yield the same results as transitive
- # grafts.
- for r in subset:
- src = _getrevsource(repo, r)
- lineage = None
-
- while src is not None:
- if lineage is None:
- lineage = list()
-
- lineage.append(r)
-
- # The visited lineage is a match if the current source is in the arg
- # set. Since every candidate dest is visited by way of iterating
- # subset, any dests futher back in the lineage will be tested by a
- # different iteration over subset. Likewise, if the src was already
- # selected, the current lineage can be selected without going back
- # further.
- if src in args or src in dests:
- dests.update(lineage)
- break
-
- r = src
- src = _getrevsource(repo, r)
-
- return [r for r in subset if r in dests]
-
-def draft(repo, subset, x):
- """``draft()``
- Changeset in draft phase."""
- # i18n: "draft" is a keyword
- getargs(x, 0, 0, _("draft takes no arguments"))
- pc = repo._phasecache
- return [r for r in subset if pc.phase(repo, r) == phases.draft]
-
-def extinct(repo, subset, x):
- """``extinct()``
- Obsolete changesets with obsolete descendants only.
- """
- # i18n: "extinct" is a keyword
- getargs(x, 0, 0, _("extinct takes no arguments"))
- extinctset = set(repo.revs('(obsolete()::) - (::(not obsolete()))'))
- return [r for r in subset if r in extinctset]
-
-def extra(repo, subset, x):
- """``extra(label, [value])``
- Changesets with the given label in the extra metadata, with the given
- optional value.
-
- If `value` starts with `re:`, the remainder of the value is treated as
- a regular expression. To match a value that actually starts with `re:`,
- use the prefix `literal:`.
- """
-
- # i18n: "extra" is a keyword
- l = getargs(x, 1, 2, _('extra takes at least 1 and at most 2 arguments'))
- # i18n: "extra" is a keyword
- label = getstring(l[0], _('first argument to extra must be a string'))
- value = None
-
- if len(l) > 1:
- # i18n: "extra" is a keyword
- value = getstring(l[1], _('second argument to extra must be a string'))
- kind, value, matcher = _stringmatcher(value)
-
- def _matchvalue(r):
- extra = repo[r].extra()
- return label in extra and (value is None or matcher(extra[label]))
-
- return [r for r in subset if _matchvalue(r)]
+ args = getset(repo, range(len(repo)), x)
+ if not args:
+ return []
+ s = set(repo.changelog.descendants(*args)) | set(args)
+ return [r for r in subset if r in s]
def filelog(repo, subset, x):
"""``filelog(pattern)``
Changesets connected to the specified filelog.
-
- For performance reasons, ``filelog()`` does not show every changeset
- that affects the requested file(s). See :hg:`help log` for details. For
- a slower, more accurate result, use ``file()``.
"""
- # i18n: "filelog" is a keyword
pat = getstring(x, _("filelog requires a pattern"))
- m = matchmod.match(repo.root, repo.getcwd(), [pat], default='relpath',
- ctx=repo[None])
+ m = matchmod.match(repo.root, repo.getcwd(), [pat], default='relpath')
s = set()
- if not matchmod.patkind(pat):
+ if not m.anypats():
for f in m.files():
fl = repo.file(f)
for fr in fl:
@@ -680,42 +407,33 @@ def filelog(repo, subset, x):
return [r for r in subset if r in s]
-def first(repo, subset, x):
- """``first(set, [n])``
- An alias for limit().
+def follow(repo, subset, x):
+ """``follow([file])``
+ An alias for ``::.`` (ancestors of the working copy's first parent).
+ If a filename is specified, the history of the given file is followed,
+ including copies.
"""
- return limit(repo, subset, x)
-
-def _follow(repo, subset, x, name, followfirst=False):
- l = getargs(x, 0, 1, _("%s takes no arguments or a filename") % name)
- c = repo['.']
+ # i18n: "follow" is a keyword
+ l = getargs(x, 0, 1, _("follow takes no arguments or a filename"))
+ p = repo['.'].rev()
if l:
- x = getstring(l[0], _("%s expected a filename") % name)
- if x in c:
- cx = c[x]
- s = set(ctx.rev() for ctx in cx.ancestors(followfirst=followfirst))
- # include the revision responsible for the most recent version
- s.add(cx.linkrev())
- else:
- return []
+ x = getstring(l[0], _("follow expected a filename"))
+ s = set(ctx.rev() for ctx in repo['.'][x].ancestors())
else:
- s = set(_revancestors(repo, [c.rev()], followfirst)) | set([c.rev()])
+ s = set(repo.changelog.ancestors(p))
+ s |= set([p])
return [r for r in subset if r in s]
-def follow(repo, subset, x):
- """``follow([file])``
+def followfile(repo, subset, x):
+ """``follow()``
An alias for ``::.`` (ancestors of the working copy's first parent).
- If a filename is specified, the history of the given file is followed,
- including copies.
"""
- return _follow(repo, subset, x, 'follow')
-
-def _followfirst(repo, subset, x):
- # ``followfirst([file])``
- # Like ``follow([file])`` but follows only the first parent of
- # every revision or file revision.
- return _follow(repo, subset, x, '_followfirst', followfirst=True)
+ # i18n: "follow" is a keyword
+ getargs(x, 0, 0, _("follow takes no arguments"))
+ p = repo['.'].rev()
+ s = set(repo.changelog.ancestors(p)) | set([p])
+ return [r for r in subset if r in s]
def getall(repo, subset, x):
"""``all()``
@@ -745,79 +463,20 @@ def grep(repo, subset, x):
break
return l
-def _matchfiles(repo, subset, x):
- # _matchfiles takes a revset list of prefixed arguments:
- #
- # [p:foo, i:bar, x:baz]
- #
- # builds a match object from them and filters subset. Allowed
- # prefixes are 'p:' for regular patterns, 'i:' for include
- # patterns and 'x:' for exclude patterns. Use 'r:' prefix to pass
- # a revision identifier, or the empty string to reference the
- # working directory, from which the match object is
- # initialized. Use 'd:' to set the default matching mode, default
- # to 'glob'. At most one 'r:' and 'd:' argument can be passed.
-
- # i18n: "_matchfiles" is a keyword
- l = getargs(x, 1, -1, _("_matchfiles requires at least one argument"))
- pats, inc, exc = [], [], []
- hasset = False
- rev, default = None, None
- for arg in l:
- # i18n: "_matchfiles" is a keyword
- s = getstring(arg, _("_matchfiles requires string arguments"))
- prefix, value = s[:2], s[2:]
- if prefix == 'p:':
- pats.append(value)
- elif prefix == 'i:':
- inc.append(value)
- elif prefix == 'x:':
- exc.append(value)
- elif prefix == 'r:':
- if rev is not None:
- # i18n: "_matchfiles" is a keyword
- raise error.ParseError(_('_matchfiles expected at most one '
- 'revision'))
- rev = value
- elif prefix == 'd:':
- if default is not None:
- # i18n: "_matchfiles" is a keyword
- raise error.ParseError(_('_matchfiles expected at most one '
- 'default mode'))
- default = value
- else:
- # i18n: "_matchfiles" is a keyword
- raise error.ParseError(_('invalid _matchfiles prefix: %s') % prefix)
- if not hasset and matchmod.patkind(value) == 'set':
- hasset = True
- if not default:
- default = 'glob'
- m = None
- s = []
- for r in subset:
- c = repo[r]
- if not m or (hasset and rev is None):
- ctx = c
- if rev is not None:
- ctx = repo[rev or None]
- m = matchmod.match(repo.root, repo.getcwd(), pats, include=inc,
- exclude=exc, ctx=ctx, default=default)
- for f in c.files():
- if m(f):
- s.append(r)
- break
- return s
-
def hasfile(repo, subset, x):
"""``file(pattern)``
Changesets affecting files matched by pattern.
-
- For a faster but less accurate result, consider using ``filelog()``
- instead.
"""
# i18n: "file" is a keyword
pat = getstring(x, _("file requires a pattern"))
- return _matchfiles(repo, subset, ('string', 'p:' + pat))
+ m = matchmod.match(repo.root, repo.getcwd(), [pat])
+ s = []
+ for r in subset:
+ for f in repo[r].files():
+ if m(f):
+ s.append(r)
+ break
+ return s
def head(repo, subset, x):
"""``head()``
@@ -844,26 +503,24 @@ def keyword(repo, subset, x):
string. The match is case-insensitive.
"""
# i18n: "keyword" is a keyword
- kw = encoding.lower(getstring(x, _("keyword requires a string")))
+ kw = getstring(x, _("keyword requires a string")).lower()
l = []
for r in subset:
c = repo[r]
t = " ".join(c.files() + [c.user(), c.description()])
- if kw in encoding.lower(t):
+ if kw in t.lower():
l.append(r)
return l
def limit(repo, subset, x):
- """``limit(set, [n])``
- First n members of set, defaulting to 1.
+ """``limit(set, n)``
+ First n members of set.
"""
# i18n: "limit" is a keyword
- l = getargs(x, 1, 2, _("limit requires one or two arguments"))
+ l = getargs(x, 2, 2, _("limit requires two arguments"))
try:
- lim = 1
- if len(l) == 2:
- # i18n: "limit" is a keyword
- lim = int(getstring(l[1], _("limit requires a number")))
+ # i18n: "limit" is a keyword
+ lim = int(getstring(l[1], _("limit requires a number")))
except (TypeError, ValueError):
# i18n: "limit" is a keyword
raise error.ParseError(_("limit expects a number"))
@@ -872,16 +529,14 @@ def limit(repo, subset, x):
return [r for r in os if r in ss]
def last(repo, subset, x):
- """``last(set, [n])``
- Last n members of set, defaulting to 1.
+ """``last(set, n)``
+ Last n members of set.
"""
# i18n: "last" is a keyword
- l = getargs(x, 1, 2, _("last requires one or two arguments"))
+ l = getargs(x, 2, 2, _("last requires two arguments"))
try:
- lim = 1
- if len(l) == 2:
- # i18n: "last" is a keyword
- lim = int(getstring(l[1], _("last requires a number")))
+ # i18n: "last" is a keyword
+ lim = int(getstring(l[1], _("last requires a number")))
except (TypeError, ValueError):
# i18n: "last" is a keyword
raise error.ParseError(_("last expects a number"))
@@ -928,7 +583,7 @@ def modifies(repo, subset, x):
pat = getstring(x, _("modifies requires a pattern"))
return checkstatus(repo, subset, pat, 0)
-def node_(repo, subset, x):
+def node(repo, subset, x):
"""``id(string)``
Revision non-ambiguously specified by the given hex string prefix.
"""
@@ -939,48 +594,9 @@ def node_(repo, subset, x):
if len(n) == 40:
rn = repo[n].rev()
else:
- rn = None
- pm = repo.changelog._partialmatch(n)
- if pm is not None:
- rn = repo.changelog.rev(pm)
-
+ rn = repo.changelog.rev(repo.changelog._partialmatch(n))
return [r for r in subset if r == rn]
-def obsolete(repo, subset, x):
- """``obsolete()``
- Mutable changeset with a newer version."""
- # i18n: "obsolete" is a keyword
- getargs(x, 0, 0, _("obsolete takes no arguments"))
- return [r for r in subset if repo[r].obsolete()]
-
-def origin(repo, subset, x):
- """``origin([set])``
- Changesets that were specified as a source for the grafts, transplants or
- rebases that created the given revisions. Omitting the optional set is the
- same as passing all(). If a changeset created by these operations is itself
- specified as a source for one of these operations, only the source changeset
- for the first operation is selected.
- """
- if x is not None:
- args = set(getset(repo, range(len(repo)), x))
- else:
- args = set(getall(repo, range(len(repo)), x))
-
- def _firstsrc(rev):
- src = _getrevsource(repo, rev)
- if src is None:
- return None
-
- while True:
- prev = _getrevsource(repo, src)
-
- if prev is None:
- return src
- src = prev
-
- o = set([_firstsrc(r) for r in args])
- return [r for r in subset if r in o]
-
def outgoing(repo, subset, x):
"""``outgoing([path])``
Changesets not found in the specified destination repository, or the
@@ -998,10 +614,10 @@ def outgoing(repo, subset, x):
revs = [repo.lookup(rev) for rev in revs]
other = hg.peer(repo, {}, dest)
repo.ui.pushbuffer()
- outgoing = discovery.findcommonoutgoing(repo, other, onlyheads=revs)
+ common, outheads = discovery.findcommonoutgoing(repo, other, onlyheads=revs)
repo.ui.popbuffer()
cl = repo.changelog
- o = set([cl.rev(r) for r in outgoing.missing])
+ o = set([cl.rev(r) for r in repo.changelog.findmissing(common, outheads)])
return [r for r in subset if r in o]
def p1(repo, subset, x):
@@ -1079,59 +695,12 @@ def present(repo, subset, x):
"""``present(set)``
An empty set, if any revision in set isn't found; otherwise,
all revisions in set.
-
- If any of specified revisions is not present in the local repository,
- the query is normally aborted. But this predicate allows the query
- to continue even in such cases.
"""
try:
return getset(repo, subset, x)
except error.RepoLookupError:
return []
-def public(repo, subset, x):
- """``public()``
- Changeset in public phase."""
- # i18n: "public" is a keyword
- getargs(x, 0, 0, _("public takes no arguments"))
- pc = repo._phasecache
- return [r for r in subset if pc.phase(repo, r) == phases.public]
-
-def remote(repo, subset, x):
- """``remote([id [,path]])``
- Local revision that corresponds to the given identifier in a
- remote repository, if present. Here, the '.' identifier is a
- synonym for the current local branch.
- """
-
- import hg # avoid start-up nasties
- # i18n: "remote" is a keyword
- l = getargs(x, 0, 2, _("remote takes one, two or no arguments"))
-
- q = '.'
- if len(l) > 0:
- # i18n: "remote" is a keyword
- q = getstring(l[0], _("remote requires a string id"))
- if q == '.':
- q = repo['.'].branch()
-
- dest = ''
- if len(l) > 1:
- # i18n: "remote" is a keyword
- dest = getstring(l[1], _("remote requires a repository path"))
- dest = repo.ui.expandpath(dest or 'default')
- dest, branches = hg.parseurl(dest)
- revs, checkout = hg.addbranchrevs(repo, repo, branches, [])
- if revs:
- revs = [repo.lookup(rev) for rev in revs]
- other = hg.peer(repo, {}, dest)
- n = other.lookup(q)
- if n in repo:
- r = repo[n].rev()
- if r in subset:
- return [r]
- return []
-
def removes(repo, subset, x):
"""``removes(pattern)``
Changesets which remove files matching pattern.
@@ -1154,144 +723,21 @@ def rev(repo, subset, x):
raise error.ParseError(_("rev expects a number"))
return [r for r in subset if r == l]
-def matching(repo, subset, x):
- """``matching(revision [, field])``
- Changesets in which a given set of fields match the set of fields in the
- selected revision or set.
-
- To match more than one field pass the list of fields to match separated
- by spaces (e.g. ``author description``).
-
- Valid fields are most regular revision fields and some special fields.
-
- Regular revision fields are ``description``, ``author``, ``branch``,
- ``date``, ``files``, ``phase``, ``parents``, ``substate``, ``user``
- and ``diff``.
- Note that ``author`` and ``user`` are synonyms. ``diff`` refers to the
- contents of the revision. Two revisions matching their ``diff`` will
- also match their ``files``.
-
- Special fields are ``summary`` and ``metadata``:
- ``summary`` matches the first line of the description.
- ``metadata`` is equivalent to matching ``description user date``
- (i.e. it matches the main metadata fields).
-
- ``metadata`` is the default field which is used when no fields are
- specified. You can match more than one field at a time.
- """
- # i18n: "matching" is a keyword
- l = getargs(x, 1, 2, _("matching takes 1 or 2 arguments"))
-
- revs = getset(repo, xrange(len(repo)), l[0])
-
- fieldlist = ['metadata']
- if len(l) > 1:
- fieldlist = getstring(l[1],
- # i18n: "matching" is a keyword
- _("matching requires a string "
- "as its second argument")).split()
-
- # Make sure that there are no repeated fields,
- # expand the 'special' 'metadata' field type
- # and check the 'files' whenever we check the 'diff'
- fields = []
- for field in fieldlist:
- if field == 'metadata':
- fields += ['user', 'description', 'date']
- elif field == 'diff':
- # a revision matching the diff must also match the files
- # since matching the diff is very costly, make sure to
- # also match the files first
- fields += ['files', 'diff']
- else:
- if field == 'author':
- field = 'user'
- fields.append(field)
- fields = set(fields)
- if 'summary' in fields and 'description' in fields:
- # If a revision matches its description it also matches its summary
- fields.discard('summary')
-
- # We may want to match more than one field
- # Not all fields take the same amount of time to be matched
- # Sort the selected fields in order of increasing matching cost
- fieldorder = ['phase', 'parents', 'user', 'date', 'branch', 'summary',
- 'files', 'description', 'substate', 'diff']
- def fieldkeyfunc(f):
- try:
- return fieldorder.index(f)
- except ValueError:
- # assume an unknown field is very costly
- return len(fieldorder)
- fields = list(fields)
- fields.sort(key=fieldkeyfunc)
-
- # Each field will be matched with its own "getfield" function
- # which will be added to the getfieldfuncs array of functions
- getfieldfuncs = []
- _funcs = {
- 'user': lambda r: repo[r].user(),
- 'branch': lambda r: repo[r].branch(),
- 'date': lambda r: repo[r].date(),
- 'description': lambda r: repo[r].description(),
- 'files': lambda r: repo[r].files(),
- 'parents': lambda r: repo[r].parents(),
- 'phase': lambda r: repo[r].phase(),
- 'substate': lambda r: repo[r].substate,
- 'summary': lambda r: repo[r].description().splitlines()[0],
- 'diff': lambda r: list(repo[r].diff(git=True),)
- }
- for info in fields:
- getfield = _funcs.get(info, None)
- if getfield is None:
- raise error.ParseError(
- # i18n: "matching" is a keyword
- _("unexpected field name passed to matching: %s") % info)
- getfieldfuncs.append(getfield)
- # convert the getfield array of functions into a "getinfo" function
- # which returns an array of field values (or a single value if there
- # is only one field to match)
- getinfo = lambda r: [f(r) for f in getfieldfuncs]
-
- matches = set()
- for rev in revs:
- target = getinfo(rev)
- for r in subset:
- match = True
- for n, f in enumerate(getfieldfuncs):
- if target[n] != f(r):
- match = False
- break
- if match:
- matches.add(r)
- return [r for r in subset if r in matches]
-
def reverse(repo, subset, x):
"""``reverse(set)``
Reverse order of set.
"""
l = getset(repo, subset, x)
- if not isinstance(l, list):
- l = list(l)
l.reverse()
return l
def roots(repo, subset, x):
"""``roots(set)``
- Changesets in set with no parent changeset in set.
+ Changesets with no parent changeset in set.
"""
- s = set(getset(repo, xrange(len(repo)), x))
- subset = [r for r in subset if r in s]
- cs = _children(repo, subset, s)
- return [r for r in subset if r not in cs]
-
-def secret(repo, subset, x):
- """``secret()``
- Changeset in secret phase."""
- # i18n: "secret" is a keyword
- getargs(x, 0, 0, _("secret takes no arguments"))
- pc = repo._phasecache
- return [r for r in subset if pc.phase(repo, r) == phases.secret]
+ s = getset(repo, subset, x)
+ cs = set(children(repo, subset, x))
+ return [r for r in s if r not in cs]
def sort(repo, subset, x):
"""``sort(set[, [-]key...])``
@@ -1310,7 +756,6 @@ def sort(repo, subset, x):
l = getargs(x, 1, 2, _("sort requires one or two arguments"))
keys = "rev"
if len(l) == 2:
- # i18n: "sort" is a keyword
keys = getstring(l[1], _("sort spec must be a string"))
s = l[0]
@@ -1349,51 +794,6 @@ def sort(repo, subset, x):
l.sort()
return [e[-1] for e in l]
-def _stringmatcher(pattern):
- """
- accepts a string, possibly starting with 're:' or 'literal:' prefix.
- returns the matcher name, pattern, and matcher function.
- missing or unknown prefixes are treated as literal matches.
-
- helper for tests:
- >>> def test(pattern, *tests):
- ... kind, pattern, matcher = _stringmatcher(pattern)
- ... return (kind, pattern, [bool(matcher(t)) for t in tests])
-
- exact matching (no prefix):
- >>> test('abcdefg', 'abc', 'def', 'abcdefg')
- ('literal', 'abcdefg', [False, False, True])
-
- regex matching ('re:' prefix)
- >>> test('re:a.+b', 'nomatch', 'fooadef', 'fooadefbar')
- ('re', 'a.+b', [False, False, True])
-
- force exact matches ('literal:' prefix)
- >>> test('literal:re:foobar', 'foobar', 're:foobar')
- ('literal', 're:foobar', [False, True])
-
- unknown prefixes are ignored and treated as literals
- >>> test('foo:bar', 'foo', 'bar', 'foo:bar')
- ('literal', 'foo:bar', [False, False, True])
- """
- if pattern.startswith('re:'):
- pattern = pattern[3:]
- try:
- regex = re.compile(pattern)
- except re.error, e:
- raise error.ParseError(_('invalid regular expression: %s')
- % e)
- return 're', pattern, regex.search
- elif pattern.startswith('literal:'):
- pattern = pattern[8:]
- return 'literal', pattern, pattern.__eq__
-
-def _substringmatcher(pattern):
- kind, pattern, matcher = _stringmatcher(pattern)
- if kind == 'literal':
- matcher = lambda s: pattern in s
- return kind, pattern, matcher
-
def tag(repo, subset, x):
"""``tag([name])``
The specified tag by name, or all tagged revisions if no name is given.
@@ -1402,20 +802,12 @@ def tag(repo, subset, x):
args = getargs(x, 0, 1, _("tag takes one or no arguments"))
cl = repo.changelog
if args:
- pattern = getstring(args[0],
- # i18n: "tag" is a keyword
- _('the argument to tag must be a string'))
- kind, pattern, matcher = _stringmatcher(pattern)
- if kind == 'literal':
- # avoid resolving all tags
- tn = repo._tagscache.tags.get(pattern, None)
- if tn is None:
- raise util.Abort(_("tag '%s' does not exist") % pattern)
- s = set([repo[tn].rev()])
- else:
- s = set([cl.rev(n) for t, n in repo.tagslist() if matcher(t)])
- if not s:
- raise util.Abort(_("no tags exist that match '%s'") % pattern)
+ tn = getstring(args[0],
+ # i18n: "tag" is a keyword
+ _('the argument to tag must be a string'))
+ if not repo.tags().get(tn, None):
+ raise util.Abort(_("tag '%s' does not exist") % tn)
+ s = set([cl.rev(n) for t, n in repo.tagslist() if t == tn])
else:
s = set([cl.rev(n) for t, n in repo.tagslist() if t != 'tip'])
return [r for r in subset if r in s]
@@ -1423,102 +815,58 @@ def tag(repo, subset, x):
def tagged(repo, subset, x):
return tag(repo, subset, x)
-def unstable(repo, subset, x):
- """``unstable()``
- Non-obsolete changesets with obsolete ancestors.
- """
- # i18n: "unstable" is a keyword
- getargs(x, 0, 0, _("unstable takes no arguments"))
- unstableset = set(repo.revs('(obsolete()::) - obsolete()'))
- return [r for r in subset if r in unstableset]
-
-
def user(repo, subset, x):
"""``user(string)``
User name contains string. The match is case-insensitive.
-
- If `string` starts with `re:`, the remainder of the string is treated as
- a regular expression. To match a user that actually contains `re:`, use
- the prefix `literal:`.
"""
return author(repo, subset, x)
-# for internal use
-def _list(repo, subset, x):
- s = getstring(x, "internal error")
- if not s:
- return []
- if not isinstance(subset, set):
- subset = set(subset)
- ls = [repo[r].rev() for r in s.split('\0')]
- return [r for r in ls if r in subset]
-
symbols = {
"adds": adds,
"all": getall,
"ancestor": ancestor,
"ancestors": ancestors,
- "_firstancestors": _firstancestors,
"author": author,
- "bisect": bisect,
"bisected": bisected,
"bookmark": bookmark,
"branch": branch,
"children": children,
"closed": closed,
"contains": contains,
- "converted": converted,
"date": date,
"desc": desc,
"descendants": descendants,
- "_firstdescendants": _firstdescendants,
- "destination": destination,
- "draft": draft,
- "extinct": extinct,
- "extra": extra,
"file": hasfile,
"filelog": filelog,
- "first": first,
"follow": follow,
- "_followfirst": _followfirst,
"grep": grep,
"head": head,
"heads": heads,
- "id": node_,
+ "id": node,
"keyword": keyword,
"last": last,
"limit": limit,
- "_matchfiles": _matchfiles,
"max": maxrev,
"merge": merge,
"min": minrev,
"modifies": modifies,
- "obsolete": obsolete,
- "origin": origin,
"outgoing": outgoing,
"p1": p1,
"p2": p2,
"parents": parents,
"present": present,
- "public": public,
- "remote": remote,
"removes": removes,
"rev": rev,
"reverse": reverse,
"roots": roots,
"sort": sort,
- "secret": secret,
- "matching": matching,
"tag": tag,
"tagged": tagged,
"user": user,
- "unstable": unstable,
- "_list": _list,
}
methods = {
"range": rangeset,
- "dagrange": dagrange,
"string": stringset,
"symbol": symbolset,
"and": andset,
@@ -1542,6 +890,9 @@ def optimize(x, small):
op = x[0]
if op == 'minus':
return optimize(('and', x[1], ('not', x[2])), small)
+ elif op == 'dagrange':
+ return optimize(('and', ('func', ('symbol', 'descendants'), x[1]),
+ ('func', ('symbol', 'ancestors'), x[2])), small)
elif op == 'dagrangepre':
return optimize(('func', ('symbol', 'ancestors'), x[1]), small)
elif op == 'dagrangepost':
@@ -1555,7 +906,7 @@ def optimize(x, small):
'-' + getstring(x[1], _("can't negate that"))), small)
elif op in 'string symbol negate':
return smallbonus, x # single revisions are small
- elif op == 'and':
+ elif op == 'and' or op == 'dagrange':
wa, ta = optimize(x[1], True)
wb, tb = optimize(x[2], True)
w = min(wa, wb)
@@ -1576,7 +927,7 @@ def optimize(x, small):
return o[0], (op, o[1])
elif op == 'group':
return optimize(x[1], small)
- elif op in 'dagrange range list parent ancestorspec':
+ elif op in 'range list parent ancestorspec':
if op == 'parent':
# x^:y means (x^) : y, not x ^ (:y)
post = ('parentpost', x[1])
@@ -1600,7 +951,7 @@ def optimize(x, small):
w = 100 # very slow
elif f == "ancestor":
w = 1 * smallbonus
- elif f in "reverse limit first":
+ elif f in "reverse limit":
w = 0
elif f in "sort":
w = 10 # assume most sorts look at changelog
@@ -1609,27 +960,6 @@ def optimize(x, small):
return w + wa, (op, x[1], ta)
return 1, x
-_aliasarg = ('func', ('symbol', '_aliasarg'))
-def _getaliasarg(tree):
- """If tree matches ('func', ('symbol', '_aliasarg'), ('string', X))
- return X, None otherwise.
- """
- if (len(tree) == 3 and tree[:2] == _aliasarg
- and tree[2][0] == 'string'):
- return tree[2][1]
- return None
-
-def _checkaliasarg(tree, known=None):
- """Check tree contains no _aliasarg construct or only ones which
- value is in known. Used to avoid alias placeholders injection.
- """
- if isinstance(tree, tuple):
- arg = _getaliasarg(tree)
- if arg is not None and (not known or arg not in known):
- raise error.ParseError(_("not a function: %s") % '_aliasarg')
- for t in tree:
- _checkaliasarg(t, known)
-
class revsetalias(object):
funcre = re.compile('^([^(]+)\(([^)]+)\)$')
args = None
@@ -1640,93 +970,46 @@ class revsetalias(object):
h = heads(default)
b($1) = ancestors($1) - ancestors(default)
'''
- m = self.funcre.search(name)
- if m:
- self.name = m.group(1)
- self.tree = ('func', ('symbol', m.group(1)))
- self.args = [x.strip() for x in m.group(2).split(',')]
- for arg in self.args:
- # _aliasarg() is an unknown symbol only used separate
- # alias argument placeholders from regular strings.
- value = value.replace(arg, '_aliasarg(%r)' % (arg,))
- else:
- self.name = name
- self.tree = ('symbol', name)
-
- self.replacement, pos = parse(value)
- if pos != len(value):
- raise error.ParseError(_('invalid token'), pos)
- # Check for placeholder injection
- _checkaliasarg(self.replacement, self.args)
-
-def _getalias(aliases, tree):
- """If tree looks like an unexpanded alias, return it. Return None
- otherwise.
- """
- if isinstance(tree, tuple) and tree:
- if tree[0] == 'symbol' and len(tree) == 2:
- name = tree[1]
- alias = aliases.get(name)
- if alias and alias.args is None and alias.tree == tree:
- return alias
- if tree[0] == 'func' and len(tree) > 1:
- if tree[1][0] == 'symbol' and len(tree[1]) == 2:
- name = tree[1][1]
- alias = aliases.get(name)
- if alias and alias.args is not None and alias.tree == tree[:2]:
- return alias
- return None
-
-def _expandargs(tree, args):
- """Replace _aliasarg instances with the substitution value of the
- same name in args, recursively.
- """
- if not tree or not isinstance(tree, tuple):
- return tree
- arg = _getaliasarg(tree)
- if arg is not None:
- return args[arg]
- return tuple(_expandargs(t, args) for t in tree)
-
-def _expandaliases(aliases, tree, expanding, cache):
- """Expand aliases in tree, recursively.
-
- 'aliases' is a dictionary mapping user defined aliases to
- revsetalias objects.
- """
- if not isinstance(tree, tuple):
- # Do not expand raw strings
+ if isinstance(name, tuple): # parameter substitution
+ self.tree = name
+ self.replacement = value
+ else: # alias definition
+ m = self.funcre.search(name)
+ if m:
+ self.tree = ('func', ('symbol', m.group(1)))
+ self.args = [x.strip() for x in m.group(2).split(',')]
+ for arg in self.args:
+ value = value.replace(arg, repr(arg))
+ else:
+ self.tree = ('symbol', name)
+
+ self.replacement, pos = parse(value)
+ if pos != len(value):
+ raise error.ParseError(_('invalid token'), pos)
+
+ def process(self, tree):
+ if isinstance(tree, tuple):
+ if self.args is None:
+ if tree == self.tree:
+ return self.replacement
+ elif tree[:2] == self.tree:
+ l = getlist(tree[2])
+ if len(l) != len(self.args):
+ raise error.ParseError(
+ _('invalid number of arguments: %s') % len(l))
+ result = self.replacement
+ for a, v in zip(self.args, l):
+ valalias = revsetalias(('string', a), v)
+ result = valalias.process(result)
+ return result
+ return tuple(map(self.process, tree))
return tree
- alias = _getalias(aliases, tree)
- if alias is not None:
- if alias in expanding:
- raise error.ParseError(_('infinite expansion of revset alias "%s" '
- 'detected') % alias.name)
- expanding.append(alias)
- if alias.name not in cache:
- cache[alias.name] = _expandaliases(aliases, alias.replacement,
- expanding, cache)
- result = cache[alias.name]
- expanding.pop()
- if alias.args is not None:
- l = getlist(tree[2])
- if len(l) != len(alias.args):
- raise error.ParseError(
- _('invalid number of arguments: %s') % len(l))
- l = [_expandaliases(aliases, a, [], cache) for a in l]
- result = _expandargs(result, dict(zip(alias.args, l)))
- else:
- result = tuple(_expandaliases(aliases, t, expanding, cache)
- for t in tree)
- return result
def findaliases(ui, tree):
- _checkaliasarg(tree)
- aliases = {}
for k, v in ui.configitems('revsetalias'):
alias = revsetalias(k, v)
- aliases[alias.name] = alias
- return _expandaliases(aliases, tree, [], {})
+ tree = alias.process(tree)
+ return tree
parse = parser.parser(tokenize, elements).parse
@@ -1736,121 +1019,11 @@ def match(ui, spec):
tree, pos = parse(spec)
if (pos != len(spec)):
raise error.ParseError(_("invalid token"), pos)
- if ui:
- tree = findaliases(ui, tree)
+ tree = findaliases(ui, tree)
weight, tree = optimize(tree, True)
def mfunc(repo, subset):
return getset(repo, subset, tree)
return mfunc
-def formatspec(expr, *args):
- '''
- This is a convenience function for using revsets internally, and
- escapes arguments appropriately. Aliases are intentionally ignored
- so that intended expression behavior isn't accidentally subverted.
-
- Supported arguments:
-
- %r = revset expression, parenthesized
- %d = int(arg), no quoting
- %s = string(arg), escaped and single-quoted
- %b = arg.branch(), escaped and single-quoted
- %n = hex(arg), single-quoted
- %% = a literal '%'
-
- Prefixing the type with 'l' specifies a parenthesized list of that type.
-
- >>> formatspec('%r:: and %lr', '10 or 11', ("this()", "that()"))
- '(10 or 11):: and ((this()) or (that()))'
- >>> formatspec('%d:: and not %d::', 10, 20)
- '10:: and not 20::'
- >>> formatspec('%ld or %ld', [], [1])
- "_list('') or 1"
- >>> formatspec('keyword(%s)', 'foo\\xe9')
- "keyword('foo\\\\xe9')"
- >>> b = lambda: 'default'
- >>> b.branch = b
- >>> formatspec('branch(%b)', b)
- "branch('default')"
- >>> formatspec('root(%ls)', ['a', 'b', 'c', 'd'])
- "root(_list('a\\x00b\\x00c\\x00d'))"
- '''
-
- def quote(s):
- return repr(str(s))
-
- def argtype(c, arg):
- if c == 'd':
- return str(int(arg))
- elif c == 's':
- return quote(arg)
- elif c == 'r':
- parse(arg) # make sure syntax errors are confined
- return '(%s)' % arg
- elif c == 'n':
- return quote(node.hex(arg))
- elif c == 'b':
- return quote(arg.branch())
-
- def listexp(s, t):
- l = len(s)
- if l == 0:
- return "_list('')"
- elif l == 1:
- return argtype(t, s[0])
- elif t == 'd':
- return "_list('%s')" % "\0".join(str(int(a)) for a in s)
- elif t == 's':
- return "_list('%s')" % "\0".join(s)
- elif t == 'n':
- return "_list('%s')" % "\0".join(node.hex(a) for a in s)
- elif t == 'b':
- return "_list('%s')" % "\0".join(a.branch() for a in s)
-
- m = l // 2
- return '(%s or %s)' % (listexp(s[:m], t), listexp(s[m:], t))
-
- ret = ''
- pos = 0
- arg = 0
- while pos < len(expr):
- c = expr[pos]
- if c == '%':
- pos += 1
- d = expr[pos]
- if d == '%':
- ret += d
- elif d in 'dsnbr':
- ret += argtype(d, args[arg])
- arg += 1
- elif d == 'l':
- # a list of some type
- pos += 1
- d = expr[pos]
- ret += listexp(list(args[arg]), d)
- arg += 1
- else:
- raise util.Abort('unexpected revspec format character %s' % d)
- else:
- ret += c
- pos += 1
-
- return ret
-
-def prettyformat(tree):
- def _prettyformat(tree, level, lines):
- if not isinstance(tree, tuple) or tree[0] in ('string', 'symbol'):
- lines.append((level, str(tree)))
- else:
- lines.append((level, '(%s' % tree[0]))
- for s in tree[1:]:
- _prettyformat(s, level + 1, lines)
- lines[-1:] = [(lines[-1][0], lines[-1][1] + ')')]
-
- lines = []
- _prettyformat(tree, 0, lines)
- output = '\n'.join((' '*l + s) for l, s in lines)
- return output
-
# tell hggettext to extract docstrings from these functions:
i18nfunctions = symbols.values()
diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py
index 96acfff..fcb89e6 100644
--- a/mercurial/scmutil.py
+++ b/mercurial/scmutil.py
@@ -6,27 +6,10 @@
# GNU General Public License version 2 or any later version.
from i18n import _
-import util, error, osutil, revset, similar, encoding, phases
+import util, error, osutil, revset, similar, encoding
import match as matchmod
import os, errno, re, stat, sys, glob
-def nochangesfound(ui, repo, excluded=None):
- '''Report no changes for push/pull, excluded is None or a list of
- nodes excluded from the push/pull.
- '''
- secretlist = []
- if excluded:
- for n in excluded:
- ctx = repo[n]
- if ctx.phase() >= phases.secret and not ctx.extinct():
- secretlist.append(n)
-
- if secretlist:
- ui.status(_("no changes found (ignored %d secret changesets)\n")
- % len(secretlist))
- else:
- ui.status(_("no changes found\n"))
-
def checkfilename(f):
'''Check that the filename f is an acceptable filename for a tracked file'''
if '\r' in f or '\n' in f:
@@ -58,27 +41,22 @@ def checkportabilityalert(ui):
return abort, warn
class casecollisionauditor(object):
- def __init__(self, ui, abort, dirstate):
+ def __init__(self, ui, abort, existingiter):
self._ui = ui
self._abort = abort
- allfiles = '\0'.join(dirstate._map)
- self._loweredfiles = set(encoding.lower(allfiles).split('\0'))
- self._dirstate = dirstate
- # The purpose of _newfiles is so that we don't complain about
- # case collisions if someone were to call this object with the
- # same filename twice.
- self._newfiles = set()
+ self._map = {}
+ for f in existingiter:
+ self._map[encoding.lower(f)] = f
def __call__(self, f):
fl = encoding.lower(f)
- if (fl in self._loweredfiles and f not in self._dirstate and
- f not in self._newfiles):
+ map = self._map
+ if fl in map and map[fl] != f:
msg = _('possible case-folding collision for %s') % f
if self._abort:
raise util.Abort(msg)
self._ui.warn(_("warning: %s\n") % msg)
- self._loweredfiles.add(fl)
- self._newfiles.add(f)
+ map[fl] = f
class pathauditor(object):
'''ensure that a filesystem path contains no banned components.
@@ -98,23 +76,18 @@ class pathauditor(object):
self.auditeddir = set()
self.root = root
self.callback = callback
- if os.path.lexists(root) and not util.checkcase(root):
- self.normcase = util.normcase
- else:
- self.normcase = lambda x: x
def __call__(self, path):
'''Check the relative path.
path may contain a pattern (e.g. foodir/**.txt)'''
- path = util.localpath(path)
- normpath = self.normcase(path)
- if normpath in self.audited:
+ if path in self.audited:
return
# AIX ignores "/" at end of path, others raise EISDIR.
if util.endswithsep(path):
raise util.Abort(_("path ends in directory separator: %s") % path)
- parts = util.splitpath(path)
+ normpath = os.path.normcase(path)
+ parts = util.splitpath(normpath)
if (os.path.splitdrive(path)[0]
or parts[0].lower() in ('.hg', '.hg.', '')
or os.pardir in parts):
@@ -125,19 +98,14 @@ class pathauditor(object):
if p in lparts[1:]:
pos = lparts.index(p)
base = os.path.join(*parts[:pos])
- raise util.Abort(_("path '%s' is inside nested repo %r")
+ raise util.Abort(_('path %r is inside nested repo %r')
% (path, base))
- normparts = util.splitpath(normpath)
- assert len(parts) == len(normparts)
-
parts.pop()
- normparts.pop()
prefixes = []
while parts:
prefix = os.sep.join(parts)
- normprefix = os.sep.join(normparts)
- if normprefix in self.auditeddir:
+ if prefix in self.auditeddir:
break
curpath = os.path.join(self.root, prefix)
try:
@@ -155,14 +123,12 @@ class pathauditor(object):
elif (stat.S_ISDIR(st.st_mode) and
os.path.isdir(os.path.join(curpath, '.hg'))):
if not self.callback or not self.callback(curpath):
- raise util.Abort(_("path '%s' is inside nested "
- "repo %r")
- % (path, prefix))
- prefixes.append(normprefix)
+ raise util.Abort(_('path %r is inside nested repo %r') %
+ (path, prefix))
+ prefixes.append(prefix)
parts.pop()
- normparts.pop()
- self.audited.add(normpath)
+ self.audited.add(path)
# only add prefixes to the cache after checking everything: we don't
# want to add "foo/bar/baz" before checking if there's a "foo/.hg"
self.auditeddir.update(prefixes)
@@ -174,15 +140,6 @@ class abstractopener(object):
'''Prevent instantiation; don't call this from subclasses.'''
raise NotImplementedError('attempted instantiating ' + str(type(self)))
- def tryread(self, path):
- '''gracefully return an empty string for missing files'''
- try:
- return self.read(path)
- except IOError, inst:
- if inst.errno != errno.ENOENT:
- raise
- return ""
-
def read(self, path):
fp = self(path, 'rb')
try:
@@ -204,30 +161,13 @@ class abstractopener(object):
finally:
fp.close()
- def mkdir(self, path=None):
- return os.mkdir(self.join(path))
-
- def exists(self, path=None):
- return os.path.exists(self.join(path))
-
- def isdir(self, path=None):
- return os.path.isdir(self.join(path))
-
- def makedir(self, path=None, notindexed=True):
- return util.makedir(self.join(path), notindexed)
-
- def makedirs(self, path=None, mode=None):
- return util.makedirs(self.join(path), mode)
-
class opener(abstractopener):
'''Open files relative to a base directory
This class is used to hide the details of COW semantics and
remote file access from higher level code.
'''
- def __init__(self, base, audit=True, expand=False):
- if expand:
- base = os.path.realpath(util.expandpath(base))
+ def __init__(self, base, audit=True):
self.base = base
self._audit = audit
if audit:
@@ -252,7 +192,7 @@ class opener(abstractopener):
if r:
raise util.Abort("%s: %r" % (r, path))
self.auditor(path)
- f = self.join(path)
+ f = os.path.join(self.base, path)
if not text and "b" not in mode:
mode += "b" # for that other OS
@@ -296,7 +236,7 @@ class opener(abstractopener):
def symlink(self, src, dst):
self.auditor(dst)
- linkname = self.join(dst)
+ linkname = os.path.join(self.base, dst)
try:
os.unlink(linkname)
except OSError:
@@ -321,12 +261,6 @@ class opener(abstractopener):
def audit(self, path):
self.auditor(path)
- def join(self, path):
- if path:
- return os.path.join(self.base, path)
- else:
- return self.base
-
class filteropener(abstractopener):
'''Wrapper opener for filtering filenames with a function.'''
@@ -358,16 +292,18 @@ def canonpath(root, cwd, myname, auditor=None):
else:
# Determine whether `name' is in the hierarchy at or beneath `root',
# by iterating name=dirname(name) until that causes no change (can't
- # check name == '/', because that doesn't work on windows). The list
- # `rel' holds the reversed list of components making up the relative
- # file name we want.
+ # check name == '/', because that doesn't work on windows). For each
+ # `name', compare dev/inode numbers. If they match, the list `rel'
+ # holds the reversed list of components making up the relative file
+ # name we want.
+ root_st = os.stat(root)
rel = []
while True:
try:
- s = util.samefile(name, root)
+ name_st = os.stat(name)
except OSError:
- s = False
- if s:
+ break
+ if util.samestat(name_st, root_st):
if not rel:
# name was actually the same as root (maybe a symlink)
return ''
@@ -384,15 +320,14 @@ def canonpath(root, cwd, myname, auditor=None):
raise util.Abort('%s not under root' % myname)
def walkrepos(path, followsym=False, seen_dirs=None, recurse=False):
- '''yield every hg repository under path, always recursively.
- The recurse flag will only control recursion into repo working dirs'''
+ '''yield every hg repository under path, recursively.'''
def errhandler(err):
if err.filename == path:
raise err
- samestat = getattr(os.path, 'samestat', None)
- if followsym and samestat is not None:
+ if followsym and hasattr(os.path, 'samestat'):
def adddir(dirlst, dirname):
match = False
+ samestat = os.path.samestat
dirstat = os.stat(dirname)
for lstdirstat in dirlst:
if samestat(dirstat, lstdirstat):
@@ -479,26 +414,19 @@ if os.name != 'nt':
def systemrcpath():
path = []
- if sys.platform == 'plan9':
- root = 'lib/mercurial'
- else:
- root = 'etc/mercurial'
# old mod_python does not set sys.argv
if len(getattr(sys, 'argv', [])) > 0:
p = os.path.dirname(os.path.dirname(sys.argv[0]))
- path.extend(rcfiles(os.path.join(p, root)))
- path.extend(rcfiles('/' + root))
+ path.extend(rcfiles(os.path.join(p, 'etc/mercurial')))
+ path.extend(rcfiles('/etc/mercurial'))
return path
def userrcpath():
- if sys.platform == 'plan9':
- return [os.environ['home'] + '/lib/hgrc']
- else:
- return [os.path.expanduser('~/.hgrc')]
+ return [os.path.expanduser('~/.hgrc')]
else:
- import _winreg
+ _HKEY_LOCAL_MACHINE = 0x80000002L
def systemrcpath():
'''return default os-specific hgrc search path'''
@@ -518,10 +446,10 @@ else:
return rcpath
# else look for a system rcpath in the registry
value = util.lookupreg('SOFTWARE\\Mercurial', None,
- _winreg.HKEY_LOCAL_MACHINE)
+ _HKEY_LOCAL_MACHINE)
if not isinstance(value, str) or not value:
return rcpath
- value = util.localpath(value)
+ value = value.replace('/', os.sep)
for p in value.split(os.pathsep):
if p.lower().endswith('mercurial.ini'):
rcpath.append(p)
@@ -558,11 +486,9 @@ def revpair(repo, revs):
l = revrange(repo, revs)
if len(l) == 0:
- if revs:
- raise util.Abort(_('empty revision range'))
return repo.dirstate.p1(), None
- if len(l) == 1 and len(revs) == 1 and _revrangesep not in revs[0]:
+ if len(l) == 1:
return repo.lookup(l[0]), None
return repo.lookup(l[0]), repo.lookup(l[-1])
@@ -575,12 +501,10 @@ def revrange(repo, revs):
def revfix(repo, val, defval):
if not val and val != 0 and defval is not None:
return defval
- return repo[val].rev()
+ return repo.changelog.rev(repo.lookup(val))
seen, l = set(), []
for spec in revs:
- if l and not seen:
- seen = set(l)
# attempt to parse old-style ranges first to deal with
# things like old-tag which contain query metacharacters
try:
@@ -594,18 +518,11 @@ def revrange(repo, revs):
start = revfix(repo, start, 0)
end = revfix(repo, end, len(repo) - 1)
step = start > end and -1 or 1
- if not seen and not l:
- # by far the most common case: revs = ["-1:0"]
- l = range(start, end + step, step)
- # defer syncing seen until next iteration
- continue
- newrevs = set(xrange(start, end + step, step))
- if seen:
- newrevs.difference_update(seen)
- seen.update(newrevs)
- else:
- seen = newrevs
- l.extend(sorted(newrevs, reverse=start > end))
+ for rev in xrange(start, end + step, step):
+ if rev in seen:
+ continue
+ seen.add(rev)
+ l.append(rev)
continue
elif spec and spec in repo: # single unquoted rev
rev = revfix(repo, spec, None)
@@ -619,9 +536,10 @@ def revrange(repo, revs):
# fall through to new-style queries if old-style fails
m = revset.match(repo.ui, spec)
- dl = [r for r in m(repo, xrange(len(repo))) if r not in seen]
- l.extend(dl)
- seen.update(dl)
+ for r in m(repo, range(len(repo))):
+ if r not in seen:
+ l.append(r)
+ seen.update(l)
return l
@@ -642,7 +560,7 @@ def expandpats(pats):
ret.append(p)
return ret
-def matchandpats(ctx, pats=[], opts={}, globbed=False, default='relpath'):
+def match(ctx, pats=[], opts={}, globbed=False, default='relpath'):
if pats == ("",):
pats = []
if not globbed and default == 'relpath':
@@ -653,10 +571,7 @@ def matchandpats(ctx, pats=[], opts={}, globbed=False, default='relpath'):
def badfn(f, msg):
ctx._repo.ui.warn("%s: %s\n" % (m.rel(f), msg))
m.bad = badfn
- return m, pats
-
-def match(ctx, pats=[], opts={}, globbed=False, default='relpath'):
- return matchandpats(ctx, pats, opts, globbed, default)[0]
+ return m
def matchall(repo):
return matchmod.always(repo.root, repo.getcwd())
@@ -673,9 +588,6 @@ def addremove(repo, pats=[], opts={}, dry_run=None, similarity=None):
added, unknown, deleted, removed = [], [], [], []
audit_path = pathauditor(repo.root)
m = match(repo[None], pats, opts)
- rejected = []
- m.bad = lambda x, y: rejected.append(x)
-
for abs in repo.walk(m):
target = repo.wjoin(abs)
good = True
@@ -689,9 +601,8 @@ def addremove(repo, pats=[], opts={}, dry_run=None, similarity=None):
unknown.append(abs)
if repo.ui.verbose or not exact:
repo.ui.status(_('adding %s\n') % ((pats and rel) or abs))
- elif (repo.dirstate[abs] != 'r' and
- (not good or not os.path.lexists(target) or
- (os.path.isdir(target) and not os.path.islink(target)))):
+ elif repo.dirstate[abs] != 'r' and (not good or not os.path.lexists(target)
+ or (os.path.isdir(target) and not os.path.islink(target))):
deleted.append(abs)
if repo.ui.verbose or not exact:
repo.ui.status(_('removing %s\n') % ((pats and rel) or abs))
@@ -721,11 +632,6 @@ def addremove(repo, pats=[], opts={}, dry_run=None, similarity=None):
finally:
wlock.release()
- for f in rejected:
- if f in m.files():
- return 1
- return 0
-
def updatedir(ui, repo, patches, similarity=0):
'''Update dirstate after patch application according to metadata'''
if not patches:
@@ -800,122 +706,6 @@ def readrequires(opener, supported):
missings.append(r)
missings.sort()
if missings:
- raise error.RequirementError(
- _("unknown repository format: requires features '%s' (upgrade "
- "Mercurial)") % "', '".join(missings))
+ raise error.RequirementError(_("unknown repository format: "
+ "requires features '%s' (upgrade Mercurial)") % "', '".join(missings))
return requirements
-
-class filecacheentry(object):
- def __init__(self, path):
- self.path = path
- self.cachestat = filecacheentry.stat(self.path)
-
- if self.cachestat:
- self._cacheable = self.cachestat.cacheable()
- else:
- # None means we don't know yet
- self._cacheable = None
-
- def refresh(self):
- if self.cacheable():
- self.cachestat = filecacheentry.stat(self.path)
-
- def cacheable(self):
- if self._cacheable is not None:
- return self._cacheable
-
- # we don't know yet, assume it is for now
- return True
-
- def changed(self):
- # no point in going further if we can't cache it
- if not self.cacheable():
- return True
-
- newstat = filecacheentry.stat(self.path)
-
- # we may not know if it's cacheable yet, check again now
- if newstat and self._cacheable is None:
- self._cacheable = newstat.cacheable()
-
- # check again
- if not self._cacheable:
- return True
-
- if self.cachestat != newstat:
- self.cachestat = newstat
- return True
- else:
- return False
-
- @staticmethod
- def stat(path):
- try:
- return util.cachestat(path)
- except OSError, e:
- if e.errno != errno.ENOENT:
- raise
-
-class filecache(object):
- '''A property like decorator that tracks a file under .hg/ for updates.
-
- Records stat info when called in _filecache.
-
- On subsequent calls, compares old stat info with new info, and recreates
- the object when needed, updating the new stat info in _filecache.
-
- Mercurial either atomic renames or appends for files under .hg,
- so to ensure the cache is reliable we need the filesystem to be able
- to tell us if a file has been replaced. If it can't, we fallback to
- recreating the object on every call (essentially the same behaviour as
- propertycache).'''
- def __init__(self, path):
- self.path = path
-
- def join(self, obj, fname):
- """Used to compute the runtime path of the cached file.
-
- Users should subclass filecache and provide their own version of this
- function to call the appropriate join function on 'obj' (an instance
- of the class that its member function was decorated).
- """
- return obj.join(fname)
-
- def __call__(self, func):
- self.func = func
- self.name = func.__name__
- return self
-
- def __get__(self, obj, type=None):
- # do we need to check if the file changed?
- if self.name in obj.__dict__:
- return obj.__dict__[self.name]
-
- entry = obj._filecache.get(self.name)
-
- if entry:
- if entry.changed():
- entry.obj = self.func(obj)
- else:
- path = self.join(obj, self.path)
-
- # We stat -before- creating the object so our cache doesn't lie if
- # a writer modified between the time we read and stat
- entry = filecacheentry(path)
- entry.obj = self.func(obj)
-
- obj._filecache[self.name] = entry
-
- obj.__dict__[self.name] = entry.obj
- return entry.obj
-
- def __set__(self, obj, value):
- if self.name in obj._filecache:
- obj._filecache[self.name].obj = value # update cached copy
- obj.__dict__[self.name] = value # update copy returned by obj.x
-
- def __delete__(self, obj):
- try:
- del obj.__dict__[self.name]
- except KeyError:
- raise AttributeError, self.name
diff --git a/mercurial/setdiscovery.py b/mercurial/setdiscovery.py
index 94d8bb0..c737db8 100644
--- a/mercurial/setdiscovery.py
+++ b/mercurial/setdiscovery.py
@@ -8,7 +8,7 @@
from node import nullid
from i18n import _
-import random, util, dagutil
+import random, collections, util, dagutil
def _updatesample(dag, nodes, sample, always, quicksamplesize=0):
# if nodes is empty we scan the entire graph
@@ -17,7 +17,7 @@ def _updatesample(dag, nodes, sample, always, quicksamplesize=0):
else:
heads = dag.heads()
dist = {}
- visit = util.deque(heads)
+ visit = collections.deque(heads)
seen = set()
factor = 1
while visit:
@@ -128,21 +128,16 @@ def findcommonheads(ui, local, remote,
return (srvheadhashes, False, srvheadhashes,)
if sample and util.all(yesno):
- ui.note(_("all local heads known remotely\n"))
+ ui.note("all local heads known remotely\n")
ownheadhashes = dag.externalizeall(ownheads)
return (ownheadhashes, True, srvheadhashes,)
# full blown discovery
+ undecided = dag.nodeset() # own nodes where I don't know if remote knows them
+ common = set() # own nodes I know we both know
+ missing = set() # own nodes I know remote lacks
- # own nodes where I don't know if remote knows them
- undecided = dag.nodeset()
- # own nodes I know we both know
- common = set()
- # own nodes I know remote lacks
- missing = set()
-
- # treat remote heads (and maybe own heads) as a first implicit sample
- # response
+ # treat remote heads (and maybe own heads) as a first implicit sample response
common.update(dag.ancestorset(srvheads))
undecided.difference_update(common)
@@ -163,7 +158,7 @@ def findcommonheads(ui, local, remote,
break
if full:
- ui.note(_("sampling from both directions\n"))
+ ui.note("sampling from both directions\n")
sample = _takefullsample(dag, undecided, size=fullsamplesize)
elif common:
# use cheapish initial sample
diff --git a/mercurial/similar.py b/mercurial/similar.py
index 8d4b581..b18795b 100644
--- a/mercurial/similar.py
+++ b/mercurial/similar.py
@@ -44,8 +44,7 @@ def _findsimilarmatches(repo, added, removed, threshold):
'''
copies = {}
for i, r in enumerate(removed):
- repo.ui.progress(_('searching for similar files'), i,
- total=len(removed))
+ repo.ui.progress(_('searching for similar files'), i, total=len(removed))
# lazily load text
@util.cachefunc
diff --git a/mercurial/simplemerge.py b/mercurial/simplemerge.py
index 10d7f54..7283751 100644
--- a/mercurial/simplemerge.py
+++ b/mercurial/simplemerge.py
@@ -11,7 +11,8 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# mbp: "you know that thing where cvs gives you conflict markers?"
# s: "i hate that."
@@ -94,7 +95,7 @@ class Merge3Text(object):
elif self.a[0].endswith('\r'):
newline = '\r'
if base_marker and reprocess:
- raise CantReprocessAndShowBase
+ raise CantReprocessAndShowBase()
if name_a:
start_marker = start_marker + ' ' + name_a
if name_b:
@@ -222,8 +223,7 @@ class Merge3Text(object):
# section a[0:ia] has been disposed of, etc
iz = ia = ib = 0
- for region in self.find_sync_regions():
- zmatch, zend, amatch, aend, bmatch, bend = region
+ for zmatch, zend, amatch, aend, bmatch, bend in self.find_sync_regions():
#print 'match base [%d:%d]' % (zmatch, zend)
matchlen = zend - zmatch
@@ -445,7 +445,7 @@ def simplemerge(ui, local, base, other, **opts):
out.write(line)
if not opts.get('print'):
- out.close()
+ out.rename()
if m3.conflicts:
if not opts.get('quiet'):
diff --git a/mercurial/sshpeer.py b/mercurial/sshrepo.py
index c9a48c0..342ae83 100644
--- a/mercurial/sshpeer.py
+++ b/mercurial/sshrepo.py
@@ -1,11 +1,10 @@
-# sshpeer.py - ssh repository proxy class for mercurial
+# sshrepo.py - ssh repository proxy class for mercurial
#
# Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-import re
from i18n import _
import util, error, wireproto
@@ -19,17 +18,10 @@ class remotelock(object):
if self.repo:
self.release()
-def _serverquote(s):
- '''quote a string for the remote shell ... which we assume is sh'''
- if re.match('[a-zA-Z0-9@%_+=:,./-]*$', s):
- return s
- return "'%s'" % s.replace("'", "'\\''")
-
-class sshpeer(wireproto.wirepeer):
+class sshrepository(wireproto.wirerepository):
def __init__(self, ui, path, create=False):
self._url = path
self.ui = ui
- self.pipeo = self.pipei = self.pipee = None
u = util.url(path, parsequery=False, parsefragment=False)
if u.scheme != 'ssh' or not u.host or u.path is None:
@@ -48,9 +40,9 @@ class sshpeer(wireproto.wirepeer):
args = util.sshargs(sshcmd, self.host, self.user, self.port)
if create:
- cmd = '%s %s %s' % (sshcmd, args,
- util.shellquote("%s init %s" %
- (_serverquote(remotecmd), _serverquote(self.path))))
+ cmd = '%s %s "%s init %s"'
+ cmd = cmd % (sshcmd, args, remotecmd, self.path)
+
ui.note(_('running %s\n') % cmd)
res = util.system(cmd)
if res != 0:
@@ -65,11 +57,11 @@ class sshpeer(wireproto.wirepeer):
# cleanup up previous run
self.cleanup()
- cmd = '%s %s %s' % (sshcmd, args,
- util.shellquote("%s -R %s serve --stdio" %
- (_serverquote(remotecmd), _serverquote(self.path))))
- ui.note(_('running %s\n') % cmd)
+ cmd = '%s %s "%s -R %s serve --stdio"'
+ cmd = cmd % (sshcmd, args, remotecmd, self.path)
+
cmd = util.quotecommand(cmd)
+ ui.note(_('running %s\n') % cmd)
self.pipeo, self.pipei, self.pipee = util.popen3(cmd)
# skip any noise generated by remote shell
@@ -87,18 +79,14 @@ class sshpeer(wireproto.wirepeer):
lines.append(l)
max_noise -= 1
else:
- self._abort(error.RepoError(_('no suitable response from '
- 'remote hg')))
+ self._abort(error.RepoError(_("no suitable response from remote hg")))
- self._caps = set()
+ self.capabilities = set()
for l in reversed(lines):
if l.startswith("capabilities:"):
- self._caps.update(l[:-1].split(":")[1].split())
+ self.capabilities.update(l[:-1].split(":")[1].split())
break
- def _capabilities(self):
- return self._caps
-
def readerr(self):
while True:
size = util.fstat(self.pipee).st_size
@@ -115,17 +103,15 @@ class sshpeer(wireproto.wirepeer):
raise exception
def cleanup(self):
- if self.pipeo is None:
- return
- self.pipeo.close()
- self.pipei.close()
try:
+ self.pipeo.close()
+ self.pipei.close()
# read the error descriptor until EOF
for l in self.pipee:
self.ui.status(_("remote: "), l)
- except (IOError, ValueError):
+ self.pipee.close()
+ except:
pass
- self.pipee.close()
__del__ = cleanup
@@ -178,17 +164,6 @@ class sshpeer(wireproto.wirepeer):
def _recv(self):
l = self.pipei.readline()
- if l == '\n':
- err = []
- while True:
- line = self.pipee.readline()
- if line == '-\n':
- break
- err.extend([line])
- if len(err) > 0:
- # strip the trailing newline added to the last line server-side
- err[-1] = err[-1][:-1]
- self._abort(error.OutOfBandError(*err))
self.readerr()
try:
l = int(l)
@@ -236,4 +211,4 @@ class sshpeer(wireproto.wirepeer):
except ValueError:
self._abort(error.ResponseError(_("unexpected response:"), r))
-instance = sshpeer
+instance = sshrepository
diff --git a/mercurial/sshserver.py b/mercurial/sshserver.py
index 7c0a4e8..d231178 100644
--- a/mercurial/sshserver.py
+++ b/mercurial/sshserver.py
@@ -82,12 +82,6 @@ class sshserver(object):
def sendpusherror(self, rsp):
self.sendresponse(rsp.res)
- def sendooberror(self, rsp):
- self.ui.ferr.write('%s\n-\n' % rsp.message)
- self.ui.ferr.flush()
- self.fout.write('\n')
- self.fout.flush()
-
def serve_forever(self):
try:
while self.serve_one():
@@ -102,7 +96,6 @@ class sshserver(object):
wireproto.streamres: sendstream,
wireproto.pushres: sendpushresponse,
wireproto.pusherr: sendpusherror,
- wireproto.ooberror: sendooberror,
}
def serve_one(self):
@@ -142,8 +135,8 @@ class sshserver(object):
self.sendresponse("")
cg = changegroup.unbundle10(self.fin, "UN")
- r = self.repo.addchangegroup(cg, 'serve', self._client())
- self.lock.release()
+ r = self.repo.addchangegroup(cg, 'serve', self._client(),
+ lock=self.lock)
return str(r)
def _client(self):
diff --git a/mercurial/sslutil.py b/mercurial/sslutil.py
index c6fe18b..be3882c 100644
--- a/mercurial/sslutil.py
+++ b/mercurial/sslutil.py
@@ -13,16 +13,8 @@ from mercurial.i18n import _
try:
# avoid using deprecated/broken FakeSocket in python 2.6
import ssl
+ ssl_wrap_socket = ssl.wrap_socket
CERT_REQUIRED = ssl.CERT_REQUIRED
- def ssl_wrap_socket(sock, keyfile, certfile,
- cert_reqs=ssl.CERT_NONE, ca_certs=None):
- sslsocket = ssl.wrap_socket(sock, keyfile, certfile,
- cert_reqs=cert_reqs, ca_certs=ca_certs)
- # check if wrap_socket failed silently because socket had been closed
- # - see http://bugs.python.org/issue13721
- if not sslsocket.cipher():
- raise util.Abort(_('ssl connection failed'))
- return sslsocket
except ImportError:
CERT_REQUIRED = 2
@@ -30,8 +22,6 @@ except ImportError:
def ssl_wrap_socket(sock, key_file, cert_file,
cert_reqs=CERT_REQUIRED, ca_certs=None):
- if not util.safehasattr(socket, 'ssl'):
- raise util.Abort(_('Python SSL support not found'))
if ca_certs:
raise util.Abort(_(
'certificate checking requires Python 2.6'))
@@ -103,41 +93,36 @@ class validator(object):
host = self.host
cacerts = self.ui.config('web', 'cacerts')
hostfingerprint = self.ui.config('hostfingerprints', host)
- if not getattr(sock, 'getpeercert', False): # python 2.5 ?
- if hostfingerprint:
- raise util.Abort(_("host fingerprint for %s can't be "
- "verified (Python too old)") % host)
- if self.ui.configbool('ui', 'reportoldssl', True):
- self.ui.warn(_("warning: certificate for %s can't be verified "
- "(Python too old)\n") % host)
- return
- if not sock.cipher(): # work around http://bugs.python.org/issue13721
- raise util.Abort(_('%s ssl connection error') % host)
- peercert = sock.getpeercert(True)
- if not peercert:
- raise util.Abort(_('%s certificate error: '
- 'no certificate received') % host)
- peerfingerprint = util.sha1(peercert).hexdigest()
- nicefingerprint = ":".join([peerfingerprint[x:x + 2]
- for x in xrange(0, len(peerfingerprint), 2)])
- if hostfingerprint:
- if peerfingerprint.lower() != \
- hostfingerprint.replace(':', '').lower():
- raise util.Abort(_('certificate for %s has unexpected '
- 'fingerprint %s') % (host, nicefingerprint),
- hint=_('check hostfingerprint configuration'))
- self.ui.debug('%s certificate matched fingerprint %s\n' %
- (host, nicefingerprint))
- elif cacerts:
+ if cacerts and not hostfingerprint:
msg = _verifycert(sock.getpeercert(), host)
if msg:
- raise util.Abort(_('%s certificate error: %s') % (host, msg),
- hint=_('configure hostfingerprint %s or use '
- '--insecure to connect insecurely') %
- nicefingerprint)
+ raise util.Abort(_('%s certificate error: %s '
+ '(use --insecure to connect '
+ 'insecurely)') % (host, msg))
self.ui.debug('%s certificate successfully verified\n' % host)
else:
- self.ui.warn(_('warning: %s certificate with fingerprint %s not '
- 'verified (check hostfingerprints or web.cacerts '
- 'config setting)\n') %
- (host, nicefingerprint))
+ if getattr(sock, 'getpeercert', False):
+ peercert = sock.getpeercert(True)
+ peerfingerprint = util.sha1(peercert).hexdigest()
+ nicefingerprint = ":".join([peerfingerprint[x:x + 2]
+ for x in xrange(0, len(peerfingerprint), 2)])
+ if hostfingerprint:
+ if peerfingerprint.lower() != \
+ hostfingerprint.replace(':', '').lower():
+ raise util.Abort(_('invalid certificate for %s '
+ 'with fingerprint %s') %
+ (host, nicefingerprint))
+ self.ui.debug('%s certificate matched fingerprint %s\n' %
+ (host, nicefingerprint))
+ else:
+ self.ui.warn(_('warning: %s certificate '
+ 'with fingerprint %s not verified '
+ '(check hostfingerprints or web.cacerts '
+ 'config setting)\n') %
+ (host, nicefingerprint))
+ else: # python 2.5 ?
+ if hostfingerprint:
+ raise util.Abort(_("host fingerprint for %s can't be "
+ "verified (Python too old)") % host)
+ self.ui.warn(_("warning: certificate for %s can't be "
+ "verified (Python too old)\n") % host)
diff --git a/mercurial/statichttprepo.py b/mercurial/statichttprepo.py
index c9274cd..769e4e2 100644
--- a/mercurial/statichttprepo.py
+++ b/mercurial/statichttprepo.py
@@ -26,17 +26,20 @@ class httprangereader(object):
end = ''
if bytes:
end = self.pos + bytes - 1
- if self.pos or end:
- req.add_header('Range', 'bytes=%d-%s' % (self.pos, end))
+ req.add_header('Range', 'bytes=%d-%s' % (self.pos, end))
try:
f = self.opener.open(req)
data = f.read()
- # Python 2.6+ defines a getcode() function, and 2.4 and
- # 2.5 appear to always have an undocumented code attribute
- # set. If we can't read either of those, fall back to 206
- # and hope for the best.
- code = getattr(f, 'getcode', lambda : getattr(f, 'code', 206))()
+ if hasattr(f, 'getcode'):
+ # python 2.6+
+ code = f.getcode()
+ elif hasattr(f, 'code'):
+ # undocumented attribute, seems to be set in 2.4 and 2.5
+ code = f.code
+ else:
+ # Don't know how to check, hope for the best.
+ code = 206
except urllib2.HTTPError, inst:
num = inst.code == 404 and errno.ENOENT or None
raise IOError(num, inst)
@@ -76,12 +79,6 @@ def build_opener(ui, authinfo):
return statichttpopener
-class statichttppeer(localrepo.localpeer):
- def local(self):
- return None
- def canpush(self):
- return False
-
class statichttprepository(localrepo.localrepository):
def __init__(self, ui, path):
self._url = path
@@ -93,8 +90,6 @@ class statichttprepository(localrepo.localrepository):
opener = build_opener(ui, authinfo)
self.opener = opener(self.path)
- self.vfs = self.opener
- self._phasedefaults = []
try:
requirements = scmutil.readrequires(self.opener, self.supported)
@@ -119,10 +114,7 @@ class statichttprepository(localrepo.localrepository):
self.store = store.store(requirements, self.path, opener)
self.spath = self.store.path
self.sopener = self.store.opener
- self.svfs = self.sopener
self.sjoin = self.store.join
- self._filecache = {}
- self.requirements = requirements
self.manifest = manifest.manifest(self.sopener)
self.changelog = changelog.changelog(self.sopener)
@@ -132,9 +124,7 @@ class statichttprepository(localrepo.localrepository):
self._branchcachetip = None
self.encodepats = None
self.decodepats = None
-
- def _restrictcapabilities(self, caps):
- return caps.difference(["pushkey"])
+ self.capabilities.difference_update(["pushkey"])
def url(self):
return self._url
@@ -142,9 +132,6 @@ class statichttprepository(localrepo.localrepository):
def local(self):
return False
- def peer(self):
- return statichttppeer(self)
-
def lock(self, wait=True):
raise util.Abort(_('cannot lock static-http repository'))
diff --git a/mercurial/store.py b/mercurial/store.py
index b6eb8b3..961c3aa 100644
--- a/mercurial/store.py
+++ b/mercurial/store.py
@@ -232,8 +232,7 @@ def _calcmode(path):
mode = None
return mode
-_data = ('data 00manifest.d 00manifest.i 00changelog.d 00changelog.i'
- ' phaseroots obsstore')
+_data = 'data 00manifest.d 00manifest.i 00changelog.d 00changelog.i'
class basicstore(object):
'''base class for local repository stores'''
@@ -265,8 +264,7 @@ class basicstore(object):
l.append((decodedir(n), n, st.st_size))
elif kind == stat.S_IFDIR and recurse:
visit.append(fp)
- l.sort()
- return l
+ return sorted(l)
def datafiles(self):
return self._walk('data', True)
@@ -319,36 +317,36 @@ class fncache(object):
def _load(self):
'''fill the entries from the fncache file'''
+ self.entries = set()
self._dirty = False
try:
fp = self.opener('fncache', mode='rb')
except IOError:
# skip nonexistent file
- self.entries = set()
return
- self.entries = set(map(decodedir, fp.read().splitlines()))
- if '' in self.entries:
- fp.seek(0)
- for n, line in enumerate(fp):
- if not line.rstrip('\n'):
- t = _('invalid entry in fncache, line %s') % (n + 1)
- raise util.Abort(t)
+ for n, line in enumerate(fp):
+ if (len(line) < 2) or (line[-1] != '\n'):
+ t = _('invalid entry in fncache, line %s') % (n + 1)
+ raise util.Abort(t)
+ self.entries.add(decodedir(line[:-1]))
fp.close()
- def _write(self, files, atomictemp):
- fp = self.opener('fncache', mode='wb', atomictemp=atomictemp)
- if files:
- fp.write('\n'.join(map(encodedir, files)) + '\n')
- fp.close()
- self._dirty = False
-
def rewrite(self, files):
- self._write(files, False)
+ fp = self.opener('fncache', mode='wb')
+ for p in files:
+ fp.write(encodedir(p) + '\n')
+ fp.close()
self.entries = set(files)
+ self._dirty = False
def write(self):
- if self._dirty:
- self._write(self.entries, True)
+ if not self._dirty:
+ return
+ fp = self.opener('fncache', mode='wb', atomictemp=True)
+ for p in self.entries:
+ fp.write(encodedir(p) + '\n')
+ fp.rename()
+ self._dirty = False
def add(self, fn):
if self.entries is None:
@@ -392,16 +390,15 @@ class fncachestore(basicstore):
def join(self, f):
return self.path + '/' + self.encode(f)
- def getsize(self, path):
- return os.stat(self.path + '/' + path).st_size
-
def datafiles(self):
rewrite = False
existing = []
+ spath = self.path
for f in self.fncache:
ef = self.encode(f)
try:
- yield f, ef, self.getsize(ef)
+ st = os.stat(spath + '/' + ef)
+ yield f, ef, st.st_size
existing.append(f)
except OSError:
# nonexistent entry
@@ -412,7 +409,7 @@ class fncachestore(basicstore):
self.fncache.rewrite(existing)
def copylist(self):
- d = ('data dh fncache phaseroots obsstore'
+ d = ('data dh fncache'
' 00manifest.d 00manifest.i 00changelog.d 00changelog.i')
return (['requires', '00changelog.i'] +
['store/' + f for f in d.split()])
diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py
index 437d8b9..b5068d0 100644
--- a/mercurial/subrepo.py
+++ b/mercurial/subrepo.py
@@ -8,7 +8,7 @@
import errno, os, re, xml.dom.minidom, shutil, posixpath
import stat, subprocess, tarfile
from i18n import _
-import config, scmutil, util, node, error, cmdutil, bookmarks, match as matchmod
+import config, scmutil, util, node, error, cmdutil, bookmarks
hg = None
propertycache = util.propertycache
@@ -43,22 +43,22 @@ def state(ctx, ui):
rev = {}
if '.hgsubstate' in ctx:
try:
- for i, l in enumerate(ctx['.hgsubstate'].data().splitlines()):
- l = l.lstrip()
- if not l:
- continue
- try:
- revision, path = l.split(" ", 1)
- except ValueError:
- raise util.Abort(_("invalid subrepository revision "
- "specifier in .hgsubstate line %d")
- % (i + 1))
+ for l in ctx['.hgsubstate'].data().splitlines():
+ revision, path = l.split(" ", 1)
rev[path] = revision
except IOError, err:
if err.errno != errno.ENOENT:
raise
- def remap(src):
+ state = {}
+ for path, src in p[''].items():
+ kind = 'hg'
+ if src.startswith('['):
+ if ']' not in src:
+ raise util.Abort(_('missing ] in subrepo source'))
+ kind, src = src.split(']', 1)
+ kind = kind[1:]
+
for pattern, repl in p.items('subpaths'):
# Turn r'C:\foo\bar' into r'C:\\foo\\bar' since re.sub
# does a string decode.
@@ -72,35 +72,8 @@ def state(ctx, ui):
except re.error, e:
raise util.Abort(_("bad subrepository pattern in %s: %s")
% (p.source('subpaths', pattern), e))
- return src
- state = {}
- for path, src in p[''].items():
- kind = 'hg'
- if src.startswith('['):
- if ']' not in src:
- raise util.Abort(_('missing ] in subrepo source'))
- kind, src = src.split(']', 1)
- kind = kind[1:]
- src = src.lstrip() # strip any extra whitespace after ']'
-
- if not util.url(src).isabs():
- parent = _abssource(ctx._repo, abort=False)
- if parent:
- parent = util.url(parent)
- parent.path = posixpath.join(parent.path or '', src)
- parent.path = posixpath.normpath(parent.path)
- joined = str(parent)
- # Remap the full joined path and use it if it changes,
- # else remap the original source.
- remapped = remap(joined)
- if remapped == joined:
- src = remap(src)
- else:
- src = remapped
-
- src = remap(src)
- state[util.pconvert(path)] = (src.strip(), rev.get(path, ''), kind)
+ state[path] = (src.strip(), rev.get(path, ''), kind)
return state
@@ -200,8 +173,7 @@ def _updateprompt(ui, sub, dirty, local, remote):
'use (l)ocal source (%s) or (r)emote source (%s)?\n')
% (subrelpath(sub), local, remote))
else:
- msg = (_(' subrepository sources for %s differ (in checked out '
- 'version)\n'
+ msg = (_(' subrepository sources for %s differ (in checked out version)\n'
'use (l)ocal source (%s) or (r)emote source (%s)?\n')
% (subrelpath(sub), local, remote))
return ui.promptchoice(msg, (_('&Local'), _('&Remote')), 0)
@@ -209,35 +181,34 @@ def _updateprompt(ui, sub, dirty, local, remote):
def reporelpath(repo):
"""return path to this (sub)repo as seen from outermost repo"""
parent = repo
- while util.safehasattr(parent, '_subparent'):
+ while hasattr(parent, '_subparent'):
parent = parent._subparent
- p = parent.root.rstrip(os.sep)
- return repo.root[len(p) + 1:]
+ return repo.root[len(parent.root)+1:]
def subrelpath(sub):
"""return path to this subrepo as seen from outermost repo"""
- if util.safehasattr(sub, '_relpath'):
+ if hasattr(sub, '_relpath'):
return sub._relpath
- if not util.safehasattr(sub, '_repo'):
+ if not hasattr(sub, '_repo'):
return sub._path
return reporelpath(sub._repo)
def _abssource(repo, push=False, abort=True):
"""return pull/push path of repo - either based on parent repo .hgsub info
or on the top repo config. Abort or return None if no source found."""
- if util.safehasattr(repo, '_subparent'):
+ if hasattr(repo, '_subparent'):
source = util.url(repo._subsource)
if source.isabs():
return str(source)
source.path = posixpath.normpath(source.path)
parent = _abssource(repo._subparent, push, abort=False)
if parent:
- parent = util.url(util.pconvert(parent))
+ parent = util.url(parent)
parent.path = posixpath.join(parent.path or '', source.path)
parent.path = posixpath.normpath(parent.path)
return str(parent)
else: # recursion reached top repo
- if util.safehasattr(repo, '_subtoppath'):
+ if hasattr(repo, '_subtoppath'):
return repo._subtoppath
if push and repo.ui.config('paths', 'default-push'):
return repo.ui.config('paths', 'default-push')
@@ -268,7 +239,7 @@ def subrepo(ctx, path):
hg = h
scmutil.pathauditor(ctx._repo.root)(path)
- state = ctx.substate[path]
+ state = ctx.substate.get(path, nullstate)
if state[2] not in types:
raise util.Abort(_('unknown subrepo type %s') % state[2])
return types[state[2]](ctx, path, state[:2])
@@ -284,11 +255,6 @@ class abstractsubrepo(object):
"""
raise NotImplementedError
- def basestate(self):
- """current working directory base state, disregarding .hgsubstate
- state and working directory modifications"""
- raise NotImplementedError
-
def checknested(self, path):
"""check if path is a subrepository within this repository"""
return False
@@ -317,14 +283,14 @@ class abstractsubrepo(object):
"""merge currently-saved state with the new state."""
raise NotImplementedError
- def push(self, opts):
+ def push(self, force):
"""perform whatever action is analogous to 'hg push'
This may be a no-op on some systems.
"""
raise NotImplementedError
- def add(self, ui, match, dryrun, listsubrepos, prefix, explicitonly):
+ def add(self, ui, match, dryrun, prefix):
return []
def status(self, rev2, **opts):
@@ -351,11 +317,8 @@ class abstractsubrepo(object):
"""return file flags"""
return ''
- def archive(self, ui, archiver, prefix, match=None):
- if match is not None:
- files = [f for f in self.files() if match(f)]
- else:
- files = self.files()
+ def archive(self, ui, archiver, prefix):
+ files = self.files()
total = len(files)
relpath = subrelpath(self)
ui.progress(_('archiving (%s)') % relpath, 0,
@@ -370,20 +333,6 @@ class abstractsubrepo(object):
unit=_('files'), total=total)
ui.progress(_('archiving (%s)') % relpath, None)
- def walk(self, match):
- '''
- walk recursively through the directory tree, finding all files
- matched by the match function
- '''
- pass
-
- def forget(self, ui, match, prefix):
- return ([], [])
-
- def revert(self, ui, substate, *pats, **opts):
- ui.warn('%s: reverting %s subrepos is unsupported\n' \
- % (substate[0], substate[2]))
- return []
class hgsubrepo(abstractsubrepo):
def __init__(self, ctx, path, state):
@@ -418,9 +367,9 @@ class hgsubrepo(abstractsubrepo):
addpathconfig('default-push', defpushpath)
fp.close()
- def add(self, ui, match, dryrun, listsubrepos, prefix, explicitonly):
- return cmdutil.add(ui, self._repo, match, dryrun, listsubrepos,
- os.path.join(prefix, self._path), explicitonly)
+ def add(self, ui, match, dryrun, prefix):
+ return cmdutil.add(ui, self._repo, match, dryrun, True,
+ os.path.join(prefix, self._path))
def status(self, rev2, **opts):
try:
@@ -448,16 +397,14 @@ class hgsubrepo(abstractsubrepo):
self._repo.ui.warn(_('warning: error "%s" in subrepository "%s"\n')
% (inst, subrelpath(self)))
- def archive(self, ui, archiver, prefix, match=None):
- self._get(self._state + ('hg',))
- abstractsubrepo.archive(self, ui, archiver, prefix, match)
+ def archive(self, ui, archiver, prefix):
+ abstractsubrepo.archive(self, ui, archiver, prefix)
rev = self._state[1]
ctx = self._repo[rev]
for subpath in ctx.substate:
s = subrepo(ctx, subpath)
- submatch = matchmod.narrowmatcher(subpath, match)
- s.archive(ui, archiver, os.path.join(prefix, self._path), submatch)
+ s.archive(ui, archiver, os.path.join(prefix, self._path))
def dirty(self, ignoreupdate=False):
r = self._state[1]
@@ -469,9 +416,6 @@ class hgsubrepo(abstractsubrepo):
return True
return w.dirty() # working directory changed
- def basestate(self):
- return self._repo['.'].hex()
-
def checknested(self, path):
return self._repo._checknested(self._repo.wjoin(path))
@@ -502,18 +446,15 @@ class hgsubrepo(abstractsubrepo):
self._repo.ui.status(_('cloning subrepo %s from %s\n')
% (subrelpath(self), srcurl))
parentrepo = self._repo._subparent
- shutil.rmtree(self._repo.path)
- other, cloned = hg.clone(self._repo._subparent.ui, {},
- other, self._repo.root,
- update=False)
- self._repo = cloned.local()
+ shutil.rmtree(self._repo.root)
+ other, self._repo = hg.clone(self._repo._subparent.ui, {}, other,
+ self._repo.root, update=False)
self._initrepo(parentrepo, source, create=True)
else:
self._repo.ui.status(_('pulling subrepo %s from %s\n')
% (subrelpath(self), srcurl))
self._repo.pull(other)
- bookmarks.updatefromremote(self._repo.ui, self._repo, other,
- srcurl)
+ bookmarks.updatefromremote(self._repo.ui, self._repo, other)
def get(self, state, overwrite=False):
self._get(state)
@@ -528,7 +469,7 @@ class hgsubrepo(abstractsubrepo):
anc = dst.ancestor(cur)
def mergefunc():
- if anc == cur and dst.branch() == cur.branch():
+ if anc == cur:
self._repo.ui.debug("updating subrepo %s\n" % subrelpath(self))
hg.update(self._repo, state[1])
elif anc == dst:
@@ -547,23 +488,19 @@ class hgsubrepo(abstractsubrepo):
else:
mergefunc()
- def push(self, opts):
- force = opts.get('force')
- newbranch = opts.get('new_branch')
- ssh = opts.get('ssh')
-
+ def push(self, force):
# push subrepos depth-first for coherent ordering
c = self._repo['']
subs = c.substate # only repos that are committed
for s in sorted(subs):
- if c.sub(s).push(opts) == 0:
+ if not c.sub(s).push(force):
return False
dsturl = _abssource(self._repo, True)
self._repo.ui.status(_('pushing subrepo %s to %s\n') %
(subrelpath(self), dsturl))
- other = hg.peer(self._repo.ui, {'ssh': ssh}, dsturl)
- return self._repo.push(other, force, newbranch=newbranch)
+ other = hg.peer(self._repo.ui, {}, dsturl)
+ return self._repo.push(other, force)
def outgoing(self, ui, dest, opts):
return hg.outgoing(ui, self._repo, _abssource(self._repo, True), opts)
@@ -585,45 +522,6 @@ class hgsubrepo(abstractsubrepo):
ctx = self._repo[rev]
return ctx.flags(name)
- def walk(self, match):
- ctx = self._repo[None]
- return ctx.walk(match)
-
- def forget(self, ui, match, prefix):
- return cmdutil.forget(ui, self._repo, match,
- os.path.join(prefix, self._path), True)
-
- def revert(self, ui, substate, *pats, **opts):
- # reverting a subrepo is a 2 step process:
- # 1. if the no_backup is not set, revert all modified
- # files inside the subrepo
- # 2. update the subrepo to the revision specified in
- # the corresponding substate dictionary
- ui.status(_('reverting subrepo %s\n') % substate[0])
- if not opts.get('no_backup'):
- # Revert all files on the subrepo, creating backups
- # Note that this will not recursively revert subrepos
- # We could do it if there was a set:subrepos() predicate
- opts = opts.copy()
- opts['date'] = None
- opts['rev'] = substate[1]
-
- pats = []
- if not opts['all']:
- pats = ['set:modified()']
- self.filerevert(ui, *pats, **opts)
-
- # Update the repo to the revision specified in the given substate
- self.get(substate, overwrite=True)
-
- def filerevert(self, ui, *pats, **opts):
- ctx = self._repo[opts['rev']]
- parents = self._repo.dirstate.parents()
- if opts['all']:
- pats = ['set:modified()']
- else:
- pats = []
- cmdutil.revert(ui, self._repo, ctx, parents, *pats, **opts)
class svnsubrepo(abstractsubrepo):
def __init__(self, ctx, path, state):
@@ -631,13 +529,9 @@ class svnsubrepo(abstractsubrepo):
self._state = state
self._ctx = ctx
self._ui = ctx._repo.ui
- self._exe = util.findexe('svn')
- if not self._exe:
- raise util.Abort(_("'svn' executable not found for subrepo '%s'")
- % self._path)
def _svncommand(self, commands, filename='', failok=False):
- cmd = [self._exe]
+ cmd = ['svn']
extrakw = {}
if not self._ui.interactive():
# Making stdin be a pipe should prevent svn from behaving
@@ -695,13 +589,12 @@ class svnsubrepo(abstractsubrepo):
return self._wcrevs()[0]
def _wcchanged(self):
- """Return (changes, extchanges, missing) where changes is True
- if the working directory was changed, extchanges is
- True if any of these changes concern an external entry and missing
- is True if any change is a missing entry.
+ """Return (changes, extchanges) where changes is True
+ if the working directory was changed, and extchanges is
+ True if any of these changes concern an external entry.
"""
output, err = self._svncommand(['status', '--xml'])
- externals, changes, missing = [], [], []
+ externals, changes = [], []
doc = xml.dom.minidom.parseString(output)
for e in doc.getElementsByTagName('entry'):
s = e.getElementsByTagName('wc-status')
@@ -712,16 +605,14 @@ class svnsubrepo(abstractsubrepo):
path = e.getAttribute('path')
if item == 'external':
externals.append(path)
- elif item == 'missing':
- missing.append(path)
if (item not in ('', 'normal', 'unversioned', 'external')
or props not in ('', 'none', 'normal')):
changes.append(path)
for path in changes:
for ext in externals:
if path == ext or path.startswith(ext + os.sep):
- return True, True, bool(missing)
- return bool(changes), False, bool(missing)
+ return True, True
+ return bool(changes), False
def dirty(self, ignoreupdate=False):
if not self._wcchanged()[0]:
@@ -729,42 +620,18 @@ class svnsubrepo(abstractsubrepo):
return False
return True
- def basestate(self):
- lastrev, rev = self._wcrevs()
- if lastrev != rev:
- # Last committed rev is not the same than rev. We would
- # like to take lastrev but we do not know if the subrepo
- # URL exists at lastrev. Test it and fallback to rev it
- # is not there.
- try:
- self._svncommand(['list', '%s@%s' % (self._state[0], lastrev)])
- return lastrev
- except error.Abort:
- pass
- return rev
-
def commit(self, text, user, date):
# user and date are out of our hands since svn is centralized
- changed, extchanged, missing = self._wcchanged()
+ changed, extchanged = self._wcchanged()
if not changed:
- return self.basestate()
+ return self._wcrev()
if extchanged:
# Do not try to commit externals
raise util.Abort(_('cannot commit svn externals'))
- if missing:
- # svn can commit with missing entries but aborting like hg
- # seems a better approach.
- raise util.Abort(_('cannot commit missing svn entries'))
commitinfo, err = self._svncommand(['commit', '-m', text])
self._ui.status(commitinfo)
newrev = re.search('Committed revision ([0-9]+).', commitinfo)
if not newrev:
- if not commitinfo.strip():
- # Sometimes, our definition of "changed" differs from
- # svn one. For instance, svn ignores missing files
- # when committing. If there are only missing files, no
- # commit is made, no output and no error code.
- raise util.Abort(_('failed to commit svn changes'))
raise util.Abort(commitinfo.splitlines()[-1])
newrev = newrev.groups()[0]
self._ui.status(self._svncommand(['update', '-r', newrev])[0])
@@ -806,7 +673,7 @@ class svnsubrepo(abstractsubrepo):
status, err = self._svncommand(args, failok=True)
if not re.search('Checked out revision [0-9]+.', status):
if ('is already a working copy for a different URL' in err
- and (self._wcchanged()[:2] == (False, False))):
+ and (self._wcchanged() == (False, False))):
# obstructed but clean working copy, so just blow it away.
self.remove()
self.get(state, overwrite=False)
@@ -817,36 +684,27 @@ class svnsubrepo(abstractsubrepo):
def merge(self, state):
old = self._state[1]
new = state[1]
- wcrev = self._wcrev()
- if new != wcrev:
- dirty = old == wcrev or self._wcchanged()[0]
- if _updateprompt(self._ui, self, dirty, wcrev, new):
+ if new != self._wcrev():
+ dirty = old == self._wcrev() or self._wcchanged()[0]
+ if _updateprompt(self._ui, self, dirty, self._wcrev(), new):
self.get(state, False)
- def push(self, opts):
+ def push(self, force):
# push is a no-op for SVN
return True
def files(self):
- output = self._svncommand(['list', '--recursive', '--xml'])[0]
- doc = xml.dom.minidom.parseString(output)
- paths = []
- for e in doc.getElementsByTagName('entry'):
- kind = str(e.getAttribute('kind'))
- if kind != 'file':
- continue
- name = ''.join(c.data for c
- in e.getElementsByTagName('name')[0].childNodes
- if c.nodeType == c.TEXT_NODE)
- paths.append(name)
- return paths
+ output = self._svncommand(['list'])
+ # This works because svn forbids \n in filenames.
+ return output.splitlines()
def filedata(self, name):
- return self._svncommand(['cat'], name)[0]
+ return self._svncommand(['cat'], name)
class gitsubrepo(abstractsubrepo):
def __init__(self, ctx, path, state):
+ # TODO add git version check.
self._state = state
self._ctx = ctx
self._path = path
@@ -854,29 +712,6 @@ class gitsubrepo(abstractsubrepo):
self._abspath = ctx._repo.wjoin(path)
self._subparent = ctx._repo
self._ui = ctx._repo.ui
- self._ensuregit()
-
- def _ensuregit(self):
- try:
- self._gitexecutable = 'git'
- out, err = self._gitnodir(['--version'])
- except OSError, e:
- if e.errno != 2 or os.name != 'nt':
- raise
- self._gitexecutable = 'git.cmd'
- out, err = self._gitnodir(['--version'])
- m = re.search(r'^git version (\d+)\.(\d+)\.(\d+)', out)
- if not m:
- self._ui.warn(_('cannot retrieve git version'))
- return
- version = (int(m.group(1)), m.group(2), m.group(3))
- # git 1.4.0 can't work at all, but 1.5.X can in at least some cases,
- # despite the docstring comment. For now, error on 1.4.0, warn on
- # 1.5.0 but attempt to continue.
- if version < (1, 5, 0):
- raise util.Abort(_('git subrepo requires at least 1.6.0 or later'))
- elif version < (1, 6, 0):
- self._ui.warn(_('git subrepo requires at least 1.6.0 or later'))
def _gitcommand(self, commands, env=None, stream=False):
return self._gitdir(commands, env=env, stream=stream)[0]
@@ -897,8 +732,8 @@ class gitsubrepo(abstractsubrepo):
errpipe = None
if self._ui.quiet:
errpipe = open(os.devnull, 'w')
- p = subprocess.Popen([self._gitexecutable] + commands, bufsize=-1,
- cwd=cwd, env=env, close_fds=util.closefds,
+ p = subprocess.Popen(['git'] + commands, bufsize=-1, cwd=cwd, env=env,
+ close_fds=util.closefds,
stdout=subprocess.PIPE, stderr=errpipe)
if stream:
return p.stdout, None
@@ -947,12 +782,6 @@ class gitsubrepo(abstractsubrepo):
def _gitisbare(self):
return self._gitcommand(['config', '--bool', 'core.bare']) == 'true'
- def _gitupdatestat(self):
- """This must be run before git diff-index.
- diff-index only looks at changes to file stat;
- this command looks at file contents and updates the stat."""
- self._gitcommand(['update-index', '-q', '--refresh'])
-
def _gitbranchmap(self):
'''returns 2 things:
a map from git branch to revision
@@ -980,10 +809,9 @@ class gitsubrepo(abstractsubrepo):
for b in branches:
if b.startswith('refs/remotes/'):
continue
- bname = b.split('/', 2)[2]
- remote = self._gitcommand(['config', 'branch.%s.remote' % bname])
+ remote = self._gitcommand(['config', 'branch.%s.remote' % b])
if remote:
- ref = self._gitcommand(['config', 'branch.%s.merge' % bname])
+ ref = self._gitcommand(['config', 'branch.%s.merge' % b])
tracking['refs/remotes/%s/%s' %
(remote, ref.split('/', 2)[2])] = b
return tracking
@@ -1022,13 +850,9 @@ class gitsubrepo(abstractsubrepo):
# different version checked out
return True
# check for staged changes or modified files; ignore untracked files
- self._gitupdatestat()
out, code = self._gitdir(['diff-index', '--quiet', 'HEAD'])
return code == 1
- def basestate(self):
- return self._gitstate()
-
def get(self, state, overwrite=False):
source, revision, kind = state
if not revision:
@@ -1133,7 +957,6 @@ class gitsubrepo(abstractsubrepo):
source, revision, kind = state
self._fetch(source, revision)
base = self._gitcommand(['merge-base', revision, self._state[1]])
- self._gitupdatestat()
out, code = self._gitdir(['diff-index', '--quiet', 'HEAD'])
def mergefunc():
@@ -1151,9 +974,7 @@ class gitsubrepo(abstractsubrepo):
else:
mergefunc()
- def push(self, opts):
- force = opts.get('force')
-
+ def push(self, force):
if not self._state[1]:
return True
if self._gitmissing():
@@ -1186,7 +1007,7 @@ class gitsubrepo(abstractsubrepo):
return True
else:
self._ui.warn(_('no branch checked out in subrepo %s\n'
- 'cannot push revision %s\n') %
+ 'cannot push revision %s') %
(self._relpath, self._state[1]))
return False
@@ -1210,7 +1031,7 @@ class gitsubrepo(abstractsubrepo):
else:
os.remove(path)
- def archive(self, ui, archiver, prefix, match=None):
+ def archive(self, ui, archiver, prefix):
source, revision = self._state
if not revision:
return
@@ -1226,8 +1047,6 @@ class gitsubrepo(abstractsubrepo):
for i, info in enumerate(tar):
if info.isdir():
continue
- if match and not match(info.name):
- continue
if info.issym():
data = info.linkname
else:
@@ -1245,7 +1064,6 @@ class gitsubrepo(abstractsubrepo):
# if the repo is missing, return no results
return [], [], [], [], [], [], []
modified, added, removed = [], [], []
- self._gitupdatestat()
if rev2:
command = ['diff-tree', rev1, rev2]
else:
diff --git a/mercurial/tags.py b/mercurial/tags.py
index e4e0129..d4047bd 100644
--- a/mercurial/tags.py
+++ b/mercurial/tags.py
@@ -181,7 +181,7 @@ def _readtagcache(ui, repo):
for line in cachelines:
if line == "\n":
break
- line = line.split()
+ line = line.rstrip().split()
cacherevs.append(int(line[0]))
headnode = bin(line[1])
cacheheads.append(headnode)
@@ -228,11 +228,6 @@ def _readtagcache(ui, repo):
# N.B. in case 4 (nodes destroyed), "new head" really means "newly
# exposed".
- if not len(repo.file('.hgtags')):
- # No tags have ever been committed, so we can avoid a
- # potentially expensive search.
- return (repoheads, cachefnode, None, True)
-
newheads = [head
for head in repoheads
if head not in set(cacheheads)]
@@ -241,7 +236,7 @@ def _readtagcache(ui, repo):
# This is the most expensive part of finding tags, so performance
# depends primarily on the size of newheads. Worst case: no cache
# file, so newheads == repoheads.
- for head in reversed(newheads):
+ for head in newheads:
cctx = repo[head]
try:
fnode = cctx.filenode('.hgtags')
@@ -292,6 +287,6 @@ def _writetagcache(ui, repo, heads, tagfnode, cachetags):
cachefile.write("%s %s\n" % (hex(node), name))
try:
- cachefile.close()
+ cachefile.rename()
except (OSError, IOError):
pass
diff --git a/mercurial/templatefilters.py b/mercurial/templatefilters.py
index b5264f2..389be70 100644
--- a/mercurial/templatefilters.py
+++ b/mercurial/templatefilters.py
@@ -7,7 +7,6 @@
import cgi, re, os, time, urllib
import encoding, node, util
-import hbisect
def addbreaks(text):
""":addbreaks: Any text. Add an XHTML "<br />" tag before the end of
@@ -189,13 +188,13 @@ def json(obj):
return '"%s"' % jsonescape(u)
elif isinstance(obj, unicode):
return '"%s"' % jsonescape(obj)
- elif util.safehasattr(obj, 'keys'):
+ elif hasattr(obj, 'keys'):
out = []
for k, v in obj.iteritems():
s = '%s: %s' % (json(k), json(v))
out.append(s)
return '{' + ', '.join(out) + '}'
- elif util.safehasattr(obj, '__iter__'):
+ elif hasattr(obj, '__iter__'):
out = []
for i in obj:
out.append(json(i))
@@ -242,29 +241,12 @@ def permissions(flags):
return "-rw-r--r--"
def person(author):
- """:person: Any text. Returns the name before an email address,
- interpreting it as per RFC 5322.
-
- >>> person('foo@bar')
- 'foo'
- >>> person('Foo Bar <foo@bar>')
- 'Foo Bar'
- >>> person('"Foo Bar" <foo@bar>')
- 'Foo Bar'
- >>> person('"Foo \"buz\" Bar" <foo@bar>')
- 'Foo "buz" Bar'
- >>> # The following are invalid, but do exist in real-life
- ...
- >>> person('Foo "buz" Bar <foo@bar>')
- 'Foo "buz" Bar'
- >>> person('"Foo Bar <foo@bar>')
- 'Foo Bar'
- """
- if '@' not in author:
+ """:person: Any text. Returns the text before an email address."""
+ if not '@' in author:
return author
f = author.find('<')
if f != -1:
- return author[:f].strip(' "').replace('\\"', '"')
+ return author[:f].rstrip()
f = author.find('@')
return author[:f].replace('.', ' ')
@@ -286,14 +268,6 @@ def short(text):
"""
return text[:12]
-def shortbisect(text):
- """:shortbisect: Any text. Treats `text` as a bisection status, and
- returns a single-character representing the status (G: good, B: bad,
- S: skipped, U: untested, I: ignored). Returns single space if `text`
- is not a valid bisection status.
- """
- return hbisect.shortlabel(text) or ' '
-
def shortdate(text):
""":shortdate: Date. Returns a date like "2006-09-18"."""
return util.shortdate(text)
@@ -305,7 +279,7 @@ def stringify(thing):
""":stringify: Any type. Turns the value into text by converting values into
text and concatenating them.
"""
- if util.safehasattr(thing, '__iter__') and not isinstance(thing, str):
+ if hasattr(thing, '__iter__') and not isinstance(thing, str):
return "".join([stringify(t) for t in thing if t is not None])
return str(thing)
@@ -336,14 +310,9 @@ def urlescape(text):
return urllib.quote(text)
def userfilter(text):
- """:user: Any text. Returns a short representation of a user name or email
- address."""
+ """:user: Any text. Returns the user portion of an email address."""
return util.shortuser(text)
-def emailuser(text):
- """:emailuser: Any text. Returns the user portion of an email address."""
- return util.emailuser(text)
-
def xmlescape(text):
text = (text
.replace('&', '&amp;')
@@ -378,7 +347,6 @@ filters = {
"rfc3339date": rfc3339date,
"rfc822date": rfc822date,
"short": short,
- "shortbisect": shortbisect,
"shortdate": shortdate,
"stringescape": stringescape,
"stringify": stringify,
@@ -387,7 +355,6 @@ filters = {
"tabindent": tabindent,
"urlescape": urlescape,
"user": userfilter,
- "emailuser": emailuser,
"xmlescape": xmlescape,
}
diff --git a/mercurial/templatekw.py b/mercurial/templatekw.py
index 489dda6..b88bafa 100644
--- a/mercurial/templatekw.py
+++ b/mercurial/templatekw.py
@@ -7,7 +7,6 @@
from node import hex
import patch, util, error
-import hbisect
def showlist(name, values, plural=None, **args):
'''expand set of values.
@@ -146,10 +145,6 @@ def showauthor(repo, ctx, templ, **args):
""":author: String. The unmodified author of the changeset."""
return ctx.user()
-def showbisect(repo, ctx, templ, **args):
- """:bisect: String. The changeset bisection status."""
- return hbisect.label(repo, ctx.node())
-
def showbranch(**args):
""":branch: String. The name of the branch on which the changeset was
committed.
@@ -275,14 +270,6 @@ def shownode(repo, ctx, templ, **args):
"""
return ctx.hex()
-def showphase(repo, ctx, templ, **args):
- """:phase: String. The changeset phase name."""
- return ctx.phasestr()
-
-def showphaseidx(repo, ctx, templ, **args):
- """:phaseidx: Integer. The changeset phase index."""
- return ctx.phase()
-
def showrev(repo, ctx, templ, **args):
""":rev: Integer. The repository-local changeset revision number."""
return ctx.rev()
@@ -301,7 +288,6 @@ def showtags(**args):
# revcache - a cache dictionary for the current revision
keywords = {
'author': showauthor,
- 'bisect': showbisect,
'branch': showbranch,
'branches': showbranches,
'bookmarks': showbookmarks,
@@ -320,22 +306,9 @@ keywords = {
'latesttagdistance': showlatesttagdistance,
'manifest': showmanifest,
'node': shownode,
- 'phase': showphase,
- 'phaseidx': showphaseidx,
'rev': showrev,
'tags': showtags,
}
-def _showparents(**args):
- """:parents: List of strings. The parents of the changeset in "rev:node"
- format. If the changeset has only one "natural" parent (the predecessor
- revision) nothing is shown."""
- pass
-
-dockeywords = {
- 'parents': _showparents,
-}
-dockeywords.update(keywords)
-
# tell hggettext to extract docstrings from these functions:
-i18nfunctions = dockeywords.values()
+i18nfunctions = keywords.values()
diff --git a/mercurial/templater.py b/mercurial/templater.py
index 16558da..2d8dbdd 100644
--- a/mercurial/templater.py
+++ b/mercurial/templater.py
@@ -135,7 +135,7 @@ def runsymbol(context, mapping, key):
v = mapping.get(key)
if v is None:
v = context._defaults.get(key, '')
- if util.safehasattr(v, '__call__'):
+ if hasattr(v, '__call__'):
return v(**mapping)
return v
@@ -172,14 +172,14 @@ def runmap(context, mapping, data):
def buildfunc(exp, context):
n = getsymbol(exp[1])
args = [compileexp(x, context) for x in getlist(exp[2])]
- if n in funcs:
- f = funcs[n]
- return (f, args)
if n in context._filters:
if len(args) != 1:
raise error.ParseError(_("filter %s expects one argument") % n)
f = context._filters[n]
return (runfilter, (args[0][0], args[0][1], f))
+ elif n in context._funcs:
+ f = context._funcs[n]
+ return (f, args)
methods = {
"string": lambda e, c: (runstring, e[1]),
@@ -191,9 +191,6 @@ methods = {
"func": buildfunc,
}
-funcs = {
-}
-
# template engine
path = ['templates', '../templates']
@@ -203,14 +200,14 @@ def _flatten(thing):
'''yield a single stream from a possibly nested set of iterators'''
if isinstance(thing, str):
yield thing
- elif not util.safehasattr(thing, '__iter__'):
+ elif not hasattr(thing, '__iter__'):
if thing is not None:
yield str(thing)
else:
for i in thing:
if isinstance(i, str):
yield i
- elif not util.safehasattr(i, '__iter__'):
+ elif not hasattr(i, '__iter__'):
if i is not None:
yield str(i)
elif i is not None:
@@ -312,7 +309,7 @@ class templater(object):
def load(self, t):
'''Get the template for the given template name. Use a local cache.'''
- if t not in self.cache:
+ if not t in self.cache:
try:
self.cache[t] = util.readfile(self.map[t][1])
except KeyError, inst:
@@ -341,7 +338,7 @@ def templatepath(name=None):
normpaths = []
# executable version (py2exe) doesn't support __file__
- if util.mainfrozen():
+ if hasattr(sys, 'frozen'):
module = sys.executable
else:
module = __file__
diff --git a/mercurial/templates/coal/map b/mercurial/templates/coal/map
index 320996f..50f4937 100644
--- a/mercurial/templates/coal/map
+++ b/mercurial/templates/coal/map
@@ -63,7 +63,6 @@ fileentry = '
filerevision = ../paper/filerevision.tmpl
fileannotate = ../paper/fileannotate.tmpl
filediff = ../paper/filediff.tmpl
-filecomparison = ../paper/filecomparison.tmpl
filelog = ../paper/filelog.tmpl
fileline = '
<div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
@@ -84,16 +83,6 @@ difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class=
difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
-comparisonblock ='
- <tbody class="block">
- {lines}
- </tbody>'
-comparisonline = '
- <tr>
- <td class="source {type}"><a href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
- <td class="source {type}"><a href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
- </tr>'
-
changelogparent = '
<tr>
<th class="parent">parent {rev}:</th>
@@ -210,7 +199,7 @@ indexentry = '
<td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
<td>{description}</td>
<td>{contact|obfuscate}</td>
- <td class="age">{lastchange|rfc822date}</td>
+ <td class="age">{lastchange|date}</td>
<td class="indexlinks">{archives%indexarchiveentry}</td>
</tr>\n'
indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
diff --git a/mercurial/templates/gitweb/changelogentry.tmpl b/mercurial/templates/gitweb/changelogentry.tmpl
index 3935de6..ffe97ce 100644
--- a/mercurial/templates/gitweb/changelogentry.tmpl
+++ b/mercurial/templates/gitweb/changelogentry.tmpl
@@ -1,5 +1,5 @@
<div>
-<a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}"><span class="age">{date|rfc822date}</span>{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a>
+<a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}"><span class="age">{date|date}</span>{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a>
</div>
<div class="title_text">
<div class="log_link">
diff --git a/mercurial/templates/gitweb/changeset.tmpl b/mercurial/templates/gitweb/changeset.tmpl
index 7c8f731..31399e3 100644
--- a/mercurial/templates/gitweb/changeset.tmpl
+++ b/mercurial/templates/gitweb/changeset.tmpl
@@ -32,7 +32,7 @@ changeset |
<div class="title_text">
<table cellspacing="0">
<tr><td>author</td><td>{author|obfuscate}</td></tr>
-<tr><td></td><td class="date age">{date|rfc822date}</td></tr>
+<tr><td></td><td class="date age">{date|date}</td></tr>
{branch%changesetbranch}
<tr><td>changeset {rev}</td><td style="font-family:monospace">{node|short}</td></tr>
{parent%changesetparent}
diff --git a/mercurial/templates/gitweb/fileannotate.tmpl b/mercurial/templates/gitweb/fileannotate.tmpl
index 66b4aac..6dbe69a 100644
--- a/mercurial/templates/gitweb/fileannotate.tmpl
+++ b/mercurial/templates/gitweb/fileannotate.tmpl
@@ -26,7 +26,6 @@
<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
annotate |
<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
-<a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
<a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a> |
<a href="{url}help{sessionvars%urlparameter}">help</a>
<br/>
@@ -41,7 +40,7 @@ annotate |
<td>{author|obfuscate}</td></tr>
<tr>
<td></td>
- <td class="date age">{date|rfc822date}</td></tr>
+ <td class="date age">{date|date}</td></tr>
{branch%filerevbranch}
<tr>
<td>changeset {rev}</td>
diff --git a/mercurial/templates/gitweb/filecomparison.tmpl b/mercurial/templates/gitweb/filecomparison.tmpl
deleted file mode 100644
index e062486..0000000
--- a/mercurial/templates/gitweb/filecomparison.tmpl
+++ /dev/null
@@ -1,71 +0,0 @@
-{header}
-<title>{repo|escape}: comparison {file|escape}</title>
-<link rel="alternate" type="application/atom+xml"
- href="{url}atom-log" title="Atom feed for {repo|escape}"/>
-<link rel="alternate" type="application/rss+xml"
- href="{url}rss-log" title="RSS feed for {repo|escape}"/>
-</head>
-<body>
-
-<div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / comparison
-</div>
-
-<div class="page_nav">
-<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
-<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
-<a href="{url}log{sessionvars%urlparameter}">changelog</a> |
-<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
-<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
-<a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
-<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
-<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
-<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
-<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
-<a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
-<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
-<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
-<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
-comparison |
-<a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a> |
-<a href="{url}help{sessionvars%urlparameter}">help</a>
-<br/>
-</div>
-
-<div class="title">{file|escape}</div>
-
-<table>
-{branch%filerevbranch}
-<tr>
- <td>changeset {rev}</td>
- <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
-{parent%filecompparent}
-{child%filecompchild}
-</table>
-
-<div class="list_head"></div>
-
-<div class="page_body">
-
-<div class="legend">
- <span class="legendinfo equal">equal</span>
- <span class="legendinfo delete">deleted</span>
- <span class="legendinfo insert">inserted</span>
- <span class="legendinfo replace">replaced</span>
-</div>
-
-<div class="comparison">
- <table style="border-collapse:collapse;">
- <thead class="header">
- <tr>
- <th>{leftrev}:{leftnode|short}</th>
- <th>{rightrev}:{rightnode|short}</th>
- </tr>
- </thead>
- {comparison}
- </table>
-</div>
-
-</div>
-
-{footer}
diff --git a/mercurial/templates/gitweb/filediff.tmpl b/mercurial/templates/gitweb/filediff.tmpl
index 42d0602..5450adb 100644
--- a/mercurial/templates/gitweb/filediff.tmpl
+++ b/mercurial/templates/gitweb/filediff.tmpl
@@ -26,10 +26,8 @@
<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
diff |
-<a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
-<a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a> |
+<a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a><br/> |
<a href="{url}help{sessionvars%urlparameter}">help</a>
-<br/>
</div>
<div class="title">{file|escape}</div>
diff --git a/mercurial/templates/gitweb/filelog.tmpl b/mercurial/templates/gitweb/filelog.tmpl
index 0591726..52c042b 100644
--- a/mercurial/templates/gitweb/filelog.tmpl
+++ b/mercurial/templates/gitweb/filelog.tmpl
@@ -23,7 +23,6 @@
revisions |
<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
-<a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
<a href="{url}rss-log/tip/{file|urlescape}">rss</a> |
<a href="{url}help{sessionvars%urlparameter}">help</a>
<br/>
diff --git a/mercurial/templates/gitweb/filerevision.tmpl b/mercurial/templates/gitweb/filerevision.tmpl
index f47320d..9338c67 100644
--- a/mercurial/templates/gitweb/filerevision.tmpl
+++ b/mercurial/templates/gitweb/filerevision.tmpl
@@ -26,7 +26,6 @@ file |
<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
-<a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
<a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a> |
<a href="{url}help{sessionvars%urlparameter}">help</a>
<br/>
@@ -41,7 +40,7 @@ file |
<td>{author|obfuscate}</td></tr>
<tr>
<td></td>
- <td class="date age">{date|rfc822date}</td></tr>
+ <td class="date age">{date|date}</td></tr>
{branch%filerevbranch}
<tr>
<td>changeset {rev}</td>
diff --git a/mercurial/templates/gitweb/graph.tmpl b/mercurial/templates/gitweb/graph.tmpl
index 039ef8b..0ddcf18 100644
--- a/mercurial/templates/gitweb/graph.tmpl
+++ b/mercurial/templates/gitweb/graph.tmpl
@@ -51,6 +51,16 @@ var data = {jsdata|json};
var graph = new Graph();
graph.scale({bg_height});
+graph.edge = function(x0, y0, x1, y1, color) \{
+
+ this.setColor(color, 0.0, 0.65);
+ this.ctx.beginPath();
+ this.ctx.moveTo(x0, y0);
+ this.ctx.lineTo(x1, y1);
+ this.ctx.stroke();
+
+}
+
var revlink = '<li style="_STYLE"><span class="desc">';
revlink += '<a class="list" href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID"><b>_DESC</b></a>';
revlink += '</span> _TAGS';
diff --git a/mercurial/templates/gitweb/map b/mercurial/templates/gitweb/map
index a1e93f5..3ab9be4 100644
--- a/mercurial/templates/gitweb/map
+++ b/mercurial/templates/gitweb/map
@@ -26,7 +26,6 @@ filenodelink = '
<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
- <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
</td>
</tr>'
@@ -38,7 +37,6 @@ filenolink = '
file |
annotate |
<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
- <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
</td>
</tr>'
@@ -83,7 +81,6 @@ fileentry = '
filerevision = filerevision.tmpl
fileannotate = fileannotate.tmpl
filediff = filediff.tmpl
-filecomparison = filecomparison.tmpl
filelog = filelog.tmpl
fileline = '
<div style="font-family:monospace" class="parity{parity}">
@@ -102,17 +99,6 @@ difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}"
difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
-
-comparisonblock ='
- <tbody class="block">
- {lines}
- </tbody>'
-comparisonline = '
- <tr style="font-family:monospace">
- <td class="{type}"><pre><a class="linenr" href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</pre></td>
- <td class="{type}"><pre><a class="linenr" href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</pre></td>
- </tr>'
-
changelogparent = '
<tr>
<th class="parent">parent {rev}:</th>
@@ -176,7 +162,7 @@ fileannotatechild = '
tags = tags.tmpl
tagentry = '
<tr class="parity{parity}">
- <td class="age"><i class="age">{date|rfc822date}</i></td>
+ <td class="age"><i class="age">{date|date}</i></td>
<td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
<td class="link">
<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
@@ -187,7 +173,7 @@ tagentry = '
bookmarks = bookmarks.tmpl
bookmarkentry = '
<tr class="parity{parity}">
- <td class="age"><i class="age">{date|rfc822date}</i></td>
+ <td class="age"><i class="age">{date|date}</i></td>
<td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td>
<td class="link">
<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
@@ -198,7 +184,7 @@ bookmarkentry = '
branches = branches.tmpl
branchentry = '
<tr class="parity{parity}">
- <td class="age"><i class="age">{date|rfc822date}</i></td>
+ <td class="age"><i class="age">{date|date}</i></td>
<td><a class="list" href="{url}shortlog/{node|short}{sessionvars%urlparameter}"><b>{node|short}</b></a></td>
<td class="{status}">{branch|escape}</td>
<td class="link">
@@ -217,15 +203,6 @@ filediffparent = '
</a>
</td>
</tr>'
-filecompparent = '
- <tr>
- <td>parent {rev}</td>
- <td style="font-family:monospace">
- <a class="list" href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
- {node|short}
- </a>
- </td>
- </tr>'
filelogparent = '
<tr>
<td align="right">parent {rev}:&nbsp;</td>
@@ -238,13 +215,6 @@ filediffchild = '
<a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
</td>
</tr>'
-filecompchild = '
- <tr>
- <td>child {rev}</td>
- <td style="font-family:monospace">
- <a class="list" href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
- </td>
- </tr>'
filelogchild = '
<tr>
<td align="right">child {rev}:&nbsp;</td>
@@ -258,7 +228,7 @@ inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
bookmarktag = '<span class="bookmarktag" title="{name}">{name}</span> '
shortlogentry = '
<tr class="parity{parity}">
- <td class="age"><i class="age">{date|rfc822date}</i></td>
+ <td class="age"><i class="age">{date|date}</i></td>
<td><i>{author|person}</i></td>
<td>
<a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
@@ -273,7 +243,7 @@ shortlogentry = '
</tr>'
filelogentry = '
<tr class="parity{parity}">
- <td class="age"><i class="age">{date|rfc822date}</i></td>
+ <td class="age"><i class="age">{date|date}</i></td>
<td>
<a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
<b>{desc|strip|firstline|escape|nonempty}</b>
@@ -292,7 +262,7 @@ indexentry = '
</td>
<td>{description}</td>
<td>{contact|obfuscate}</td>
- <td class="age">{lastchange|rfc822date}</td>
+ <td class="age">{lastchange|date}</td>
<td class="indexlinks">{archives%indexarchiveentry}</td>
<td><div class="rss_logo"><a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a></div></td>
</tr>\n'
diff --git a/mercurial/templates/gitweb/summary.tmpl b/mercurial/templates/gitweb/summary.tmpl
index 2d1aca2..79f42a1 100644
--- a/mercurial/templates/gitweb/summary.tmpl
+++ b/mercurial/templates/gitweb/summary.tmpl
@@ -56,11 +56,11 @@ summary |
<tr class="light"><td colspan="3"><a class="list" href="{url}bookmarks{sessionvars%urlparameter}">...</a></td></tr>
</table>
-<div><a class="title" href="{url}branches{sessionvars%urlparameter}">branches</a></div>
+<div><a class="title" href="#">branches</a></div>
<table cellspacing="0">
{branches%branchentry}
<tr class="light">
- <td colspan="4"><a class="list" href="{url}branches{sessionvars%urlparameter}">...</a></td>
+ <td colspan="4"><a class="list" href="#">...</a></td>
</tr>
</table>
{footer}
diff --git a/mercurial/templates/map-cmdline.bisect b/mercurial/templates/map-cmdline.bisect
deleted file mode 100644
index 37c5ffb..0000000
--- a/mercurial/templates/map-cmdline.bisect
+++ /dev/null
@@ -1,25 +0,0 @@
-changeset = 'changeset: {rev}:{node|short}\nbisect: {bisect}\n{branches}{bookmarks}{tags}{parents}user: {author}\ndate: {date|date}\nsummary: {desc|firstline}\n\n'
-changeset_quiet = '{bisect|shortbisect} {rev}:{node|short}\n'
-changeset_verbose = 'changeset: {rev}:{node|short}\nbisect: {bisect}\n{branches}{bookmarks}{tags}{parents}user: {author}\ndate: {date|date}\n{files}{file_copies_switch}description:\n{desc|strip}\n\n\n'
-changeset_debug = 'changeset: {rev}:{node}\nbisect: {bisect}\n{branches}{bookmarks}{tags}{parents}{manifest}user: {author}\ndate: {date|date}\n{file_mods}{file_adds}{file_dels}{file_copies_switch}{extras}description:\n{desc|strip}\n\n\n'
-start_files = 'files: '
-file = ' {file}'
-end_files = '\n'
-start_file_mods = 'files: '
-file_mod = ' {file_mod}'
-end_file_mods = '\n'
-start_file_adds = 'files+: '
-file_add = ' {file_add}'
-end_file_adds = '\n'
-start_file_dels = 'files-: '
-file_del = ' {file_del}'
-end_file_dels = '\n'
-start_file_copies = 'copies: '
-file_copy = ' {name} ({source})'
-end_file_copies = '\n'
-parent = 'parent: {rev}:{node|formatnode}\n'
-manifest = 'manifest: {rev}:{node}\n'
-branch = 'branch: {branch}\n'
-tag = 'tag: {tag}\n'
-bookmark = 'bookmark: {bookmark}\n'
-extra = 'extra: {key}={value|stringescape}\n'
diff --git a/mercurial/templates/map-cmdline.default b/mercurial/templates/map-cmdline.default
index 41131de..aeb695b 100644
--- a/mercurial/templates/map-cmdline.default
+++ b/mercurial/templates/map-cmdline.default
@@ -1,7 +1,7 @@
changeset = 'changeset: {rev}:{node|short}\n{branches}{bookmarks}{tags}{parents}user: {author}\ndate: {date|date}\nsummary: {desc|firstline}\n\n'
changeset_quiet = '{rev}:{node|short}\n'
changeset_verbose = 'changeset: {rev}:{node|short}\n{branches}{bookmarks}{tags}{parents}user: {author}\ndate: {date|date}\n{files}{file_copies_switch}description:\n{desc|strip}\n\n\n'
-changeset_debug = 'changeset: {rev}:{node}\n{branches}{bookmarks}{tags}phase: {phase}\n{parents}{manifest}user: {author}\ndate: {date|date}\n{file_mods}{file_adds}{file_dels}{file_copies_switch}{extras}description:\n{desc|strip}\n\n\n'
+changeset_debug = 'changeset: {rev}:{node}\n{branches}{bookmarks}{tags}{parents}{manifest}user: {author}\ndate: {date|date}\n{file_mods}{file_adds}{file_dels}{file_copies_switch}{extras}description:\n{desc|strip}\n\n\n'
start_files = 'files: '
file = ' {file}'
end_files = '\n'
diff --git a/mercurial/templates/monoblue/bookmarks.tmpl b/mercurial/templates/monoblue/bookmarks.tmpl
index d3870da..7fb79ee 100644
--- a/mercurial/templates/monoblue/bookmarks.tmpl
+++ b/mercurial/templates/monoblue/bookmarks.tmpl
@@ -7,7 +7,7 @@
<body>
<div id="container">
<div class="page-header">
- <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / bookmarks</h1>
+ <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Bookmarks</h1>
<form action="{url}log">
{sessionvars%hiddenformentry}
diff --git a/mercurial/templates/monoblue/branches.tmpl b/mercurial/templates/monoblue/branches.tmpl
index 4ef9c25..969e5a1 100644
--- a/mercurial/templates/monoblue/branches.tmpl
+++ b/mercurial/templates/monoblue/branches.tmpl
@@ -7,7 +7,7 @@
<body>
<div id="container">
<div class="page-header">
- <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / branches</h1>
+ <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Branches</h1>
<form action="{url}log">
{sessionvars%hiddenformentry}
diff --git a/mercurial/templates/monoblue/changelogentry.tmpl b/mercurial/templates/monoblue/changelogentry.tmpl
index 1c04f07..ef7be4e 100644
--- a/mercurial/templates/monoblue/changelogentry.tmpl
+++ b/mercurial/templates/monoblue/changelogentry.tmpl
@@ -1,6 +1,6 @@
<h3 class="changelog"><a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a></h3>
<ul class="changelog-entry">
- <li class="age">{date|rfc822date}</li>
+ <li class="age">{date|date}</li>
<li>by <span class="name">{author|obfuscate}</span> <span class="revdate">[{date|rfc822date}] rev {rev}</span></li>
<li class="description">{desc|strip|escape|addbreaks|nonempty}</li>
</ul>
diff --git a/mercurial/templates/monoblue/changeset.tmpl b/mercurial/templates/monoblue/changeset.tmpl
index 0ecbffb..47284a9 100644
--- a/mercurial/templates/monoblue/changeset.tmpl
+++ b/mercurial/templates/monoblue/changeset.tmpl
@@ -7,7 +7,7 @@
<body>
<div id="container">
<div class="page-header">
- <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changeset</h1>
+ <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1>
<form action="{url}log">
{sessionvars%hiddenformentry}
@@ -38,13 +38,13 @@
<h2 class="no-link no-border">changeset</h2>
<h3 class="changeset"><a href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a></h3>
- <p class="changeset-age age">{date|rfc822date}</p>
+ <p class="changeset-age age">{date|date}</p>
<dl class="overview">
<dt>author</dt>
<dd>{author|obfuscate}</dd>
<dt>date</dt>
- <dd>{date|rfc822date}</dd>
+ <dd>{date|date}</dd>
{branch%changesetbranch}
<dt>changeset {rev}</dt>
<dd>{node|short}</dd>
diff --git a/mercurial/templates/monoblue/error.tmpl b/mercurial/templates/monoblue/error.tmpl
index 61f3215..edbef72 100644
--- a/mercurial/templates/monoblue/error.tmpl
+++ b/mercurial/templates/monoblue/error.tmpl
@@ -7,7 +7,7 @@
<body>
<div id="container">
<div class="page-header">
- <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / not found: {repo|escape}</h1>
+ <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Not found: {repo|escape}</h1>
<form action="{url}log">
{sessionvars%hiddenformentry}
diff --git a/mercurial/templates/monoblue/fileannotate.tmpl b/mercurial/templates/monoblue/fileannotate.tmpl
index 38563cf..2e2349d 100644
--- a/mercurial/templates/monoblue/fileannotate.tmpl
+++ b/mercurial/templates/monoblue/fileannotate.tmpl
@@ -35,19 +35,18 @@
<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
<li class="current">annotate</li>
<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
- <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
<li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
</ul>
<h2 class="no-link no-border">{file|escape}@{node|short} (annotated)</h2>
<h3 class="changeset">{file|escape}</h3>
- <p class="changeset-age age">{date|rfc822date}</p>
+ <p class="changeset-age age">{date|date}</p>
<dl class="overview">
<dt>author</dt>
<dd>{author|obfuscate}</dd>
<dt>date</dt>
- <dd>{date|rfc822date}</dd>
+ <dd>{date|date}</dd>
{branch%filerevbranch}
<dt>changeset {rev}</dt>
<dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
diff --git a/mercurial/templates/monoblue/filecomparison.tmpl b/mercurial/templates/monoblue/filecomparison.tmpl
deleted file mode 100644
index 99204a6..0000000
--- a/mercurial/templates/monoblue/filecomparison.tmpl
+++ /dev/null
@@ -1,72 +0,0 @@
-{header}
-<title>{repo|escape}: comparison {file|escape}</title>
- <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
- <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
-</head>
-
-<body>
-<div id="container">
- <div class="page-header">
- <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file comparison</h1>
-
- <form action="{url}log">
- {sessionvars%hiddenformentry}
- <dl class="search">
- <dt><label>Search: </label></dt>
- <dd><input type="text" name="rev" /></dd>
- </dl>
- </form>
-
- <ul class="page-nav">
- <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
- <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
- <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
- <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
- <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
- <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
- <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
- <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
- <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
- </ul>
- </div>
-
- <ul class="submenu">
- <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
- <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
- <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
- <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
- <li class="current">comparison</li>
- <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li>
- </ul>
-
- <h2 class="no-link no-border">comparison: {file|escape}</h2>
- <h3 class="changeset">{file|escape}</h3>
-
- <dl class="overview">
- {branch%filerevbranch}
- <dt>changeset {rev}</dt>
- <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
- {parent%filecompparent}
- {child%filecompchild}
- </dl>
-
- <div class="legend">
- <span class="legendinfo equal">equal</span>
- <span class="legendinfo delete">deleted</span>
- <span class="legendinfo insert">inserted</span>
- <span class="legendinfo replace">replaced</span>
- </div>
-
- <div class="comparison">
- <table class="bigtable">
- <thead class="header">
- <tr>
- <th>{leftrev}:{leftnode|short}</th>
- <th>{rightrev}:{rightnode|short}</th>
- </tr>
- </thead>
- {comparison}
- </table>
- </div>
-
-{footer}
diff --git a/mercurial/templates/monoblue/filediff.tmpl b/mercurial/templates/monoblue/filediff.tmpl
index 2c2fa70..e6298f9 100644
--- a/mercurial/templates/monoblue/filediff.tmpl
+++ b/mercurial/templates/monoblue/filediff.tmpl
@@ -35,7 +35,6 @@
<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
<li class="current">diff</li>
- <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
<li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li>
</ul>
diff --git a/mercurial/templates/monoblue/filelog.tmpl b/mercurial/templates/monoblue/filelog.tmpl
index d737cd4..0e77f9f 100644
--- a/mercurial/templates/monoblue/filelog.tmpl
+++ b/mercurial/templates/monoblue/filelog.tmpl
@@ -35,7 +35,6 @@
<li class="current">revisions</li>
<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
- <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
<li><a href="{url}rss-log/tip/{file|urlescape}">rss</a></li>
</ul>
diff --git a/mercurial/templates/monoblue/filerevision.tmpl b/mercurial/templates/monoblue/filerevision.tmpl
index 6d404d7..dd73037 100644
--- a/mercurial/templates/monoblue/filerevision.tmpl
+++ b/mercurial/templates/monoblue/filerevision.tmpl
@@ -35,19 +35,18 @@
<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
- <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
</ul>
<h2 class="no-link no-border">{file|escape}@{node|short}</h2>
<h3 class="changeset">{file|escape}</h3>
- <p class="changeset-age age">{date|rfc822date}</p>
+ <p class="changeset-age age">{date|date}</p>
<dl class="overview">
<dt>author</dt>
<dd>{author|obfuscate}</dd>
<dt>date</dt>
- <dd>{date|rfc822date}</dd>
+ <dd>{date|date}</dd>
{branch%filerevbranch}
<dt>changeset {rev}</dt>
<dd><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
diff --git a/mercurial/templates/monoblue/footer.tmpl b/mercurial/templates/monoblue/footer.tmpl
index c19bdae..c7bdca5 100644
--- a/mercurial/templates/monoblue/footer.tmpl
+++ b/mercurial/templates/monoblue/footer.tmpl
@@ -9,7 +9,7 @@
</div>
<div id="powered-by">
- <p><a href="{logourl}" title="Mercurial"><img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a></p>
+ <p><a href="{logourl}" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
</div>
<div id="corner-top-left"></div>
diff --git a/mercurial/templates/monoblue/graph.tmpl b/mercurial/templates/monoblue/graph.tmpl
index fad0d82..08fd79d 100644
--- a/mercurial/templates/monoblue/graph.tmpl
+++ b/mercurial/templates/monoblue/graph.tmpl
@@ -49,6 +49,16 @@
var graph = new Graph();
graph.scale({bg_height});
+ graph.edge = function(x0, y0, x1, y1, color) \{
+
+ this.setColor(color, 0.0, 0.65);
+ this.ctx.beginPath();
+ this.ctx.moveTo(x0, y0);
+ this.ctx.lineTo(x1, y1);
+ this.ctx.stroke();
+
+ }
+
var revlink = '<li style="_STYLE"><span class="desc">';
revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
diff --git a/mercurial/templates/monoblue/help.tmpl b/mercurial/templates/monoblue/help.tmpl
index 8cdb77b..33468f2 100644
--- a/mercurial/templates/monoblue/help.tmpl
+++ b/mercurial/templates/monoblue/help.tmpl
@@ -7,7 +7,7 @@
<body>
<div id="container">
<div class="page-header">
- <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / help</h1>
+ <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Help</h1>
<form action="{url}log">
{sessionvars%hiddenformentry}
diff --git a/mercurial/templates/monoblue/helptopics.tmpl b/mercurial/templates/monoblue/helptopics.tmpl
index 364dd28..ca4ca9b 100644
--- a/mercurial/templates/monoblue/helptopics.tmpl
+++ b/mercurial/templates/monoblue/helptopics.tmpl
@@ -7,7 +7,7 @@
<body>
<div id="container">
<div class="page-header">
- <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / help</h1>
+ <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Help</h1>
<form action="{url}log">
{sessionvars%hiddenformentry}
diff --git a/mercurial/templates/monoblue/index.tmpl b/mercurial/templates/monoblue/index.tmpl
index e5086f7..25fe333 100644
--- a/mercurial/templates/monoblue/index.tmpl
+++ b/mercurial/templates/monoblue/index.tmpl
@@ -26,7 +26,7 @@
</div>
<div id="powered-by">
- <p><a href="{logourl}" title="Mercurial"><img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a></p>
+ <p><a href="{logourl}" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
</div>
<div id="corner-top-left"></div>
diff --git a/mercurial/templates/monoblue/map b/mercurial/templates/monoblue/map
index 209254d..b1fd123 100644
--- a/mercurial/templates/monoblue/map
+++ b/mercurial/templates/monoblue/map
@@ -26,7 +26,6 @@ filenodelink = '
<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
- <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
</td>
</tr>'
@@ -38,7 +37,6 @@ filenolink = '
file |
annotate |
<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
- <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
</td>
</tr>'
@@ -76,7 +74,6 @@ fileentry = '
filerevision = filerevision.tmpl
fileannotate = fileannotate.tmpl
filediff = filediff.tmpl
-filecomparison = filecomparison.tmpl
filelog = filelog.tmpl
fileline = '
<div style="font-family:monospace" class="parity{parity}">
@@ -85,7 +82,7 @@ fileline = '
annotateline = '
<tr class="parity{parity}">
<td class="linenr">
- <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
+ <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
</td>
<td class="lineno">
@@ -97,17 +94,6 @@ difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}"
difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
-
-comparisonblock ='
- <tbody class="block">
- {lines}
- </tbody>'
-comparisonline = '
- <tr>
- <td class="source {type}"><a class="linenr" href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
- <td class="source {type}"><a class="linenr" href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
- </tr>'
-
changelogparent = '
<tr>
<th class="parent">parent {rev}:</th>
@@ -155,7 +141,7 @@ fileannotatechild = '
tags = tags.tmpl
tagentry = '
<tr class="parity{parity}">
- <td class="nowrap age">{date|rfc822date}</td>
+ <td class="nowrap age">{date|date}</td>
<td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a></td>
<td class="nowrap">
<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
@@ -166,7 +152,7 @@ tagentry = '
bookmarks = bookmarks.tmpl
bookmarkentry = '
<tr class="parity{parity}">
- <td class="nowrap date">{date|rfc822date}</td>
+ <td class="nowrap date">{date|date}</td>
<td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{bookmark|escape}</a></td>
<td class="nowrap">
<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
@@ -177,7 +163,7 @@ bookmarkentry = '
branches = branches.tmpl
branchentry = '
<tr class="parity{parity}">
- <td class="nowrap age">{date|rfc822date}</td>
+ <td class="nowrap age">{date|date}</td>
<td><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
<td class="{status}">{branch|escape}</td>
<td class="nowrap">
@@ -190,9 +176,6 @@ diffblock = '<pre>{lines}</pre>'
filediffparent = '
<dt>parent {rev}</dt>
<dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
-filecompparent = '
- <dt>parent {rev}</dt>
- <dd><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
filelogparent = '
<tr>
<td align="right">parent {rev}:&nbsp;</td>
@@ -201,9 +184,6 @@ filelogparent = '
filediffchild = '
<dt>child {rev}</dt>
<dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
-filecompchild = '
- <dt>child {rev}</dt>
- <dd><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
filelogchild = '
<tr>
<td align="right">child {rev}:&nbsp;</td>
@@ -216,7 +196,7 @@ inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
bookmarktag = '<span class="bookmarktag" title="{name}">{name}</span> '
shortlogentry = '
<tr class="parity{parity}">
- <td class="nowrap age">{date|rfc822date}</td>
+ <td class="nowrap age">{date|date}</td>
<td>{author|person}</td>
<td>
<a href="{url}rev/{node|short}{sessionvars%urlparameter}">
@@ -231,7 +211,7 @@ shortlogentry = '
</tr>'
filelogentry = '
<tr class="parity{parity}">
- <td class="nowrap age">{date|rfc822date}</td>
+ <td class="nowrap age">{date|date}</td>
<td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td>
<td class="nowrap">
<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a>&nbsp;|&nbsp;<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>&nbsp;|&nbsp;<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
@@ -244,7 +224,7 @@ indexentry = '
<td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
<td>{description}</td>
<td>{contact|obfuscate}</td>
- <td class="age">{lastchange|rfc822date}</td>
+ <td class="age">{lastchange|date}</td>
<td class="indexlinks">{archives%indexarchiveentry}</td>
<td>
<div class="rss_logo">
diff --git a/mercurial/templates/monoblue/notfound.tmpl b/mercurial/templates/monoblue/notfound.tmpl
index 3410e6c..38df584 100644
--- a/mercurial/templates/monoblue/notfound.tmpl
+++ b/mercurial/templates/monoblue/notfound.tmpl
@@ -7,7 +7,7 @@
<body>
<div id="container">
<div class="page-header">
- <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / not found: {repo|escape}</h1>
+ <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Not found: {repo|escape}</h1>
<form action="{url}log">
{sessionvars%hiddenformentry}
diff --git a/mercurial/templates/monoblue/tags.tmpl b/mercurial/templates/monoblue/tags.tmpl
index 3e08735..0c8f93d 100644
--- a/mercurial/templates/monoblue/tags.tmpl
+++ b/mercurial/templates/monoblue/tags.tmpl
@@ -7,7 +7,7 @@
<body>
<div id="container">
<div class="page-header">
- <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags</h1>
+ <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Tags</h1>
<form action="{url}log">
{sessionvars%hiddenformentry}
diff --git a/mercurial/templates/paper/bookmarks.tmpl b/mercurial/templates/paper/bookmarks.tmpl
index 5989243..897d84b 100644
--- a/mercurial/templates/paper/bookmarks.tmpl
+++ b/mercurial/templates/paper/bookmarks.tmpl
@@ -11,7 +11,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
diff --git a/mercurial/templates/paper/branches.tmpl b/mercurial/templates/paper/branches.tmpl
index b26a04d..b239291 100644
--- a/mercurial/templates/paper/branches.tmpl
+++ b/mercurial/templates/paper/branches.tmpl
@@ -11,7 +11,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
diff --git a/mercurial/templates/paper/changeset.tmpl b/mercurial/templates/paper/changeset.tmpl
index b7cc62b..cca2745 100644
--- a/mercurial/templates/paper/changeset.tmpl
+++ b/mercurial/templates/paper/changeset.tmpl
@@ -6,7 +6,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
@@ -49,7 +49,7 @@ files, or words in the commit message</div>
</tr>
<tr>
<th class="date">date</th>
- <td class="date age">{date|rfc822date}</td></tr>
+ <td class="date age">{date|date}</td></tr>
<tr>
<th class="author">parents</th>
<td class="author">{parent%changesetparent}</td>
diff --git a/mercurial/templates/paper/error.tmpl b/mercurial/templates/paper/error.tmpl
index 6d17a80..1a850cb 100644
--- a/mercurial/templates/paper/error.tmpl
+++ b/mercurial/templates/paper/error.tmpl
@@ -7,7 +7,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
@@ -15,8 +15,6 @@
<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
-</ul>
-<ul>
<li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
</ul>
</div>
diff --git a/mercurial/templates/paper/fileannotate.tmpl b/mercurial/templates/paper/fileannotate.tmpl
index 1388337..121ef5f 100644
--- a/mercurial/templates/paper/fileannotate.tmpl
+++ b/mercurial/templates/paper/fileannotate.tmpl
@@ -7,7 +7,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
@@ -25,7 +25,6 @@
<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
<li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
-<li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
<li class="active">annotate</li>
<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
<li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
@@ -55,7 +54,7 @@ files, or words in the commit message</div>
</tr>
<tr>
<th class="date">date</th>
- <td class="date age">{date|rfc822date}</td>
+ <td class="date age">{date|date}</td>
</tr>
<tr>
<th class="author">parents</th>
diff --git a/mercurial/templates/paper/filecomparison.tmpl b/mercurial/templates/paper/filecomparison.tmpl
deleted file mode 100644
index 9d3421a..0000000
--- a/mercurial/templates/paper/filecomparison.tmpl
+++ /dev/null
@@ -1,93 +0,0 @@
-{header}
-<title>{repo|escape}: {file|escape} comparison</title>
-</head>
-<body>
-
-<div class="container">
-<div class="menu">
-<div class="logo">
-<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
-</div>
-<ul>
-<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
-<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
-<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
-<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
-<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
-</ul>
-<ul>
-<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
-<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
-</ul>
-<ul>
-<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
-<li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
-<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
-<li class="active">comparison</li>
-<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
-<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
-<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
-</ul>
-<ul>
-<li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
-</ul>
-</div>
-
-<div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
-<h3>comparison {file|escape} @ {rev}:{node|short}</h3>
-
-<form class="search" action="{url}log">
-<p>{sessionvars%hiddenformentry}</p>
-<p><input name="rev" id="search1" type="text" size="30" /></p>
-<div id="hint">find changesets by author, revision,
-files, or words in the commit message</div>
-</form>
-
-<div class="description">{desc|strip|escape|nonempty}</div>
-
-<table id="changesetEntry">
-<tr>
- <th>author</th>
- <td>{author|obfuscate}</td>
-</tr>
-<tr>
- <th>date</th>
- <td class="date age">{date|rfc822date}</td>
-</tr>
-<tr>
- <th>parents</th>
- <td>{parent%filerevparent}</td>
-</tr>
-<tr>
- <th>children</th>
- <td>{child%filerevchild}</td>
-</tr>
-{changesettag}
-</table>
-
-<div class="overflow">
-<div class="sourcefirst"> comparison</div>
-<div class="legend">
- <span class="legendinfo equal">equal</span>
- <span class="legendinfo delete">deleted</span>
- <span class="legendinfo insert">inserted</span>
- <span class="legendinfo replace">replaced</span>
-</div>
-
-<table class="bigtable">
- <thead class="header">
- <tr>
- <th>{leftrev}:{leftnode|short}</th>
- <th>{rightrev}:{rightnode|short}</th>
- </tr>
- </thead>
- {comparison}
-</table>
-
-</div>
-</div>
-</div>
-
-{footer}
diff --git a/mercurial/templates/paper/filediff.tmpl b/mercurial/templates/paper/filediff.tmpl
index b8d83de..3b63266 100644
--- a/mercurial/templates/paper/filediff.tmpl
+++ b/mercurial/templates/paper/filediff.tmpl
@@ -7,7 +7,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
@@ -24,7 +24,6 @@
<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
<li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
<li class="active">diff</li>
-<li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
@@ -54,7 +53,7 @@ files, or words in the commit message</div>
</tr>
<tr>
<th>date</th>
- <td class="date age">{date|rfc822date}</td>
+ <td class="date age">{date|date}</td>
</tr>
<tr>
<th>parents</th>
diff --git a/mercurial/templates/paper/filelog.tmpl b/mercurial/templates/paper/filelog.tmpl
index 8b043da..d03fcb4 100644
--- a/mercurial/templates/paper/filelog.tmpl
+++ b/mercurial/templates/paper/filelog.tmpl
@@ -11,7 +11,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
@@ -27,7 +27,6 @@
<ul>
<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
-<li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
<li class="active">file log</li>
<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
diff --git a/mercurial/templates/paper/filelogentry.tmpl b/mercurial/templates/paper/filelogentry.tmpl
index 8b4ae84..2829500 100644
--- a/mercurial/templates/paper/filelogentry.tmpl
+++ b/mercurial/templates/paper/filelogentry.tmpl
@@ -1,5 +1,5 @@
<tr class="parity{parity}">
- <td class="age">{date|rfc822date}</td>
+ <td class="age">{date|date}</td>
<td class="author">{author|person}</td>
<td class="description"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags%changelogtag}{rename%filelogrename}</td>
</tr>
diff --git a/mercurial/templates/paper/filerevision.tmpl b/mercurial/templates/paper/filerevision.tmpl
index c2a7468..d41356a 100644
--- a/mercurial/templates/paper/filerevision.tmpl
+++ b/mercurial/templates/paper/filerevision.tmpl
@@ -7,7 +7,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
@@ -23,7 +23,6 @@
<li class="active">file</li>
<li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
-<li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
@@ -53,7 +52,7 @@ files, or words in the commit message</div>
</tr>
<tr>
<th class="date">date</th>
- <td class="date age">{date|rfc822date}</td>
+ <td class="date age">{date|date}</td>
</tr>
<tr>
<th class="author">parents</th>
diff --git a/mercurial/templates/paper/graph.tmpl b/mercurial/templates/paper/graph.tmpl
index bee94ae..7a4f363 100644
--- a/mercurial/templates/paper/graph.tmpl
+++ b/mercurial/templates/paper/graph.tmpl
@@ -12,7 +12,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
@@ -62,6 +62,16 @@ var data = {jsdata|json};
var graph = new Graph();
graph.scale({bg_height});
+graph.edge = function(x0, y0, x1, y1, color) \{
+
+ this.setColor(color, 0.0, 0.65);
+ this.ctx.beginPath();
+ this.ctx.moveTo(x0, y0);
+ this.ctx.lineTo(x1, y1);
+ this.ctx.stroke();
+
+}
+
var revlink = '<li style="_STYLE"><span class="desc">';
revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
diff --git a/mercurial/templates/paper/help.tmpl b/mercurial/templates/paper/help.tmpl
index f490918..eab0ae5 100644
--- a/mercurial/templates/paper/help.tmpl
+++ b/mercurial/templates/paper/help.tmpl
@@ -11,7 +11,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
@@ -21,7 +21,7 @@
<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
</ul>
<ul>
- <li class="active"><a href="{url}help{sessionvars%urlparameter}">help</a></li>
+ <li class="active">help</li>
</ul>
</div>
diff --git a/mercurial/templates/paper/helptopics.tmpl b/mercurial/templates/paper/helptopics.tmpl
index a723b53..537954f 100644
--- a/mercurial/templates/paper/helptopics.tmpl
+++ b/mercurial/templates/paper/helptopics.tmpl
@@ -11,7 +11,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
diff --git a/mercurial/templates/paper/index.tmpl b/mercurial/templates/paper/index.tmpl
index 04b4ffb..57968f7 100644
--- a/mercurial/templates/paper/index.tmpl
+++ b/mercurial/templates/paper/index.tmpl
@@ -6,7 +6,7 @@
<div class="container">
<div class="menu">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
</div>
<div class="main">
<h2>Mercurial Repositories</h2>
diff --git a/mercurial/templates/paper/manifest.tmpl b/mercurial/templates/paper/manifest.tmpl
index 3dc7e77..1537550 100644
--- a/mercurial/templates/paper/manifest.tmpl
+++ b/mercurial/templates/paper/manifest.tmpl
@@ -7,7 +7,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
diff --git a/mercurial/templates/paper/map b/mercurial/templates/paper/map
index d384cc6..df9242a 100644
--- a/mercurial/templates/paper/map
+++ b/mercurial/templates/paper/map
@@ -62,7 +62,6 @@ fileentry = '
filerevision = filerevision.tmpl
fileannotate = fileannotate.tmpl
filediff = filediff.tmpl
-filecomparison = filecomparison.tmpl
filelog = filelog.tmpl
fileline = '
<div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
@@ -71,7 +70,7 @@ filelogentry = filelogentry.tmpl
annotateline = '
<tr class="parity{parity}">
<td class="annotate">
- <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
+ <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
</td>
<td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
@@ -83,16 +82,6 @@ difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class=
difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
-comparisonblock ='
- <tbody class="block">
- {lines}
- </tbody>'
-comparisonline = '
- <tr>
- <td class="source {type}"><a href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
- <td class="source {type}"><a href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
- </tr>'
-
changelogparent = '
<tr>
<th class="parent">parent {rev}:</th>
@@ -209,7 +198,7 @@ indexentry = '
<td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
<td>{description}</td>
<td>{contact|obfuscate}</td>
- <td class="age">{lastchange|rfc822date}</td>
+ <td class="age">{lastchange|date}</td>
<td class="indexlinks">{archives%indexarchiveentry}</td>
</tr>\n'
indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
diff --git a/mercurial/templates/paper/search.tmpl b/mercurial/templates/paper/search.tmpl
index feee155..f9d5e1f 100644
--- a/mercurial/templates/paper/search.tmpl
+++ b/mercurial/templates/paper/search.tmpl
@@ -7,7 +7,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a>
+<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
</div>
<ul>
<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
diff --git a/mercurial/templates/paper/shortlog.tmpl b/mercurial/templates/paper/shortlog.tmpl
index b69d4b0..a2694b5 100644
--- a/mercurial/templates/paper/shortlog.tmpl
+++ b/mercurial/templates/paper/shortlog.tmpl
@@ -11,7 +11,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li class="active">log</li>
diff --git a/mercurial/templates/paper/shortlogentry.tmpl b/mercurial/templates/paper/shortlogentry.tmpl
index 09e94c0..7faf468 100644
--- a/mercurial/templates/paper/shortlogentry.tmpl
+++ b/mercurial/templates/paper/shortlogentry.tmpl
@@ -1,5 +1,5 @@
<tr class="parity{parity}">
- <td class="age">{date|rfc822date}</td>
+ <td class="age">{date|date}</td>
<td class="author">{author|person}</td>
<td class="description"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags % '<span class="tag">{name|escape}</span> '}{bookmarks % '<span class="tag">{name|escape}</span> '}</td>
</tr>
diff --git a/mercurial/templates/paper/tags.tmpl b/mercurial/templates/paper/tags.tmpl
index 9b4e623..a2321cd 100644
--- a/mercurial/templates/paper/tags.tmpl
+++ b/mercurial/templates/paper/tags.tmpl
@@ -11,7 +11,7 @@
<div class="menu">
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" alt="mercurial" /></a>
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
diff --git a/mercurial/templates/raw/graph.tmpl b/mercurial/templates/raw/graph.tmpl
deleted file mode 100644
index da2a81a..0000000
--- a/mercurial/templates/raw/graph.tmpl
+++ /dev/null
@@ -1,6 +0,0 @@
-{header}
-# HG graph
-# Node ID {node}
-# Rows shown {rows}
-
-{nodes%graphnode}
diff --git a/mercurial/templates/raw/graphedge.tmpl b/mercurial/templates/raw/graphedge.tmpl
deleted file mode 100644
index cb84efa..0000000
--- a/mercurial/templates/raw/graphedge.tmpl
+++ /dev/null
@@ -1 +0,0 @@
-edge: ({col}, {row}) -> ({nextcol}, {nextrow}) (color {color})
diff --git a/mercurial/templates/raw/graphnode.tmpl b/mercurial/templates/raw/graphnode.tmpl
deleted file mode 100644
index b1c9983..0000000
--- a/mercurial/templates/raw/graphnode.tmpl
+++ /dev/null
@@ -1,7 +0,0 @@
-changeset: {node}
-user: {user}
-date: {age}
-summary: {desc}
-{branches%branchname}{tags%tagname}{bookmarks%bookmarkname}
-node: ({col}, {row}) (color {color})
-{edges%graphedge}
diff --git a/mercurial/templates/raw/map b/mercurial/templates/raw/map
index 5a682b2..ed5c35b 100644
--- a/mercurial/templates/raw/map
+++ b/mercurial/templates/raw/map
@@ -1,5 +1,3 @@
-default = 'shortlog'
-shortlog = "'raw' is not a browsable style"
mimetype = 'text/plain; charset={encoding}'
header = ''
footer = ''
@@ -30,9 +28,3 @@ bookmarks = '{entries%bookmarkentry}'
bookmarkentry = '{bookmark} {node}\n'
branches = '{entries%branchentry}'
branchentry = '{branch} {node} {status}\n'
-graph = graph.tmpl
-graphnode = graphnode.tmpl
-graphedge = graphedge.tmpl
-bookmarkname = 'bookmark: {name}\n'
-branchname = 'branch: {name}\n'
-tagname = 'tag: {name}\n'
diff --git a/mercurial/templates/spartan/changelogentry.tmpl b/mercurial/templates/spartan/changelogentry.tmpl
index f506b94..52dd3fd 100644
--- a/mercurial/templates/spartan/changelogentry.tmpl
+++ b/mercurial/templates/spartan/changelogentry.tmpl
@@ -1,6 +1,6 @@
<table class="logEntry parity{parity}">
<tr>
- <th><span class="age">{date|rfc822date}</span>:</th>
+ <th><span class="age">{date|date}</span>:</th>
<th class="firstline">{desc|strip|firstline|escape|nonempty}</th>
</tr>
<tr>
@@ -16,7 +16,7 @@
</tr>
<tr>
<th class="date">date:</th>
- <td class="date">{date|rfc822date}</td>
+ <td class="date">{date|date}</td>
</tr>
<tr>
<th class="files"><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>:</th>
diff --git a/mercurial/templates/spartan/changeset.tmpl b/mercurial/templates/spartan/changeset.tmpl
index b357126..51944ca 100644
--- a/mercurial/templates/spartan/changeset.tmpl
+++ b/mercurial/templates/spartan/changeset.tmpl
@@ -31,7 +31,7 @@
</tr>
<tr>
<th class="date">date:</th>
- <td class="date age">{date|rfc822date}</td>
+ <td class="date age">{date|date}</td>
</tr>
<tr>
<th class="files">files:</th>
diff --git a/mercurial/templates/spartan/fileannotate.tmpl b/mercurial/templates/spartan/fileannotate.tmpl
index 5d6a72b..6648103 100644
--- a/mercurial/templates/spartan/fileannotate.tmpl
+++ b/mercurial/templates/spartan/fileannotate.tmpl
@@ -30,7 +30,7 @@
<td>{author|obfuscate}</td></tr>
<tr>
<td class="metatag">date:</td>
- <td class="date age">{date|rfc822date}</td>
+ <td class="date age">{date|date}</td>
</tr>
<tr>
<td class="metatag">permissions:</td>
diff --git a/mercurial/templates/spartan/filelogentry.tmpl b/mercurial/templates/spartan/filelogentry.tmpl
index baff52d..63dd686 100644
--- a/mercurial/templates/spartan/filelogentry.tmpl
+++ b/mercurial/templates/spartan/filelogentry.tmpl
@@ -1,6 +1,6 @@
<table class="logEntry parity{parity}">
<tr>
- <th><span class="age">{date|rfc822date}</span>:</th>
+ <th><span class="age">{date|date}</span>:</th>
<th class="firstline"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></th>
</tr>
<tr>
@@ -18,7 +18,7 @@
</tr>
<tr>
<th class="date">date:</th>
- <td class="date">{date|rfc822date}</td>
+ <td class="date">{date|date}</td>
</tr>
</table>
diff --git a/mercurial/templates/spartan/filerevision.tmpl b/mercurial/templates/spartan/filerevision.tmpl
index 548d3c6..eb46a10 100644
--- a/mercurial/templates/spartan/filerevision.tmpl
+++ b/mercurial/templates/spartan/filerevision.tmpl
@@ -30,7 +30,7 @@
<td>{author|obfuscate}</td></tr>
<tr>
<td class="metatag">date:</td>
- <td class="date age">{date|rfc822date}</td></tr>
+ <td class="date age">{date|date}</td></tr>
<tr>
<td class="metatag">permissions:</td>
<td>{permissions|permissions}</td></tr>
diff --git a/mercurial/templates/spartan/footer.tmpl b/mercurial/templates/spartan/footer.tmpl
index 665bdb2..851c758 100644
--- a/mercurial/templates/spartan/footer.tmpl
+++ b/mercurial/templates/spartan/footer.tmpl
@@ -2,7 +2,7 @@
{motd}
<div class="logo">
<a href="{logourl}">
-<img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a>
+<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
</div>
</body>
diff --git a/mercurial/templates/spartan/graph.tmpl b/mercurial/templates/spartan/graph.tmpl
index 054bc42..67736e0 100644
--- a/mercurial/templates/spartan/graph.tmpl
+++ b/mercurial/templates/spartan/graph.tmpl
@@ -43,6 +43,16 @@ var data = {jsdata|json};
var graph = new Graph();
graph.scale({bg_height});
+graph.edge = function(x0, y0, x1, y1, color) \{
+
+ this.setColor(color, 0.0, 0.65);
+ this.ctx.beginPath();
+ this.ctx.moveTo(x0, y0);
+ this.ctx.lineTo(x1, y1);
+ this.ctx.stroke();
+
+}
+
var revlink = '<li style="_STYLE"><span class="desc">';
revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
revlink += '</span><span class="info">_DATE, by _USER</span></li>';
diff --git a/mercurial/templates/spartan/map b/mercurial/templates/spartan/map
index 8280723..8aaacae 100644
--- a/mercurial/templates/spartan/map
+++ b/mercurial/templates/spartan/map
@@ -168,7 +168,7 @@ indexentry = '
<td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
<td>{description}</td>
<td>{contact|obfuscate}</td>
- <td class="age">{lastchange|rfc822date}</td>
+ <td class="age">{lastchange|date}</td>
<td class="indexlinks">
<a href="{url}rss-log">RSS</a>
<a href="{url}atom-log">Atom</a>
diff --git a/mercurial/templates/spartan/shortlogentry.tmpl b/mercurial/templates/spartan/shortlogentry.tmpl
index d104753..670c786 100644
--- a/mercurial/templates/spartan/shortlogentry.tmpl
+++ b/mercurial/templates/spartan/shortlogentry.tmpl
@@ -1,6 +1,6 @@
<table class="slogEntry parity{parity}">
<tr>
- <td class="age">{date|rfc822date}</td>
+ <td class="age">{date|date}</td>
<td class="author">{author|person}</td>
<td class="node"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td>
</tr>
diff --git a/mercurial/templates/static/mercurial.js b/mercurial/templates/static/mercurial.js
index 70347d7..3bc27a4 100644
--- a/mercurial/templates/static/mercurial.js
+++ b/mercurial/templates/static/mercurial.js
@@ -58,44 +58,25 @@ function Graph() {
// Set the colour.
//
- // If color is a string, expect an hexadecimal RGB
- // value and apply it unchanged. If color is a number,
- // pick a distinct colour based on an internal wheel;
- // the bg parameter provides the value that should be
- // assigned to the 'zero' colours and the fg parameter
- // provides the multiplier that should be applied to
- // the foreground colours.
- var s;
- if(typeof color == "string") {
- s = "#" + color;
- } else { //typeof color == "number"
- color %= colors.length;
- var red = (colors[color][0] * fg) || bg;
- var green = (colors[color][1] * fg) || bg;
- var blue = (colors[color][2] * fg) || bg;
- red = Math.round(red * 255);
- green = Math.round(green * 255);
- blue = Math.round(blue * 255);
- s = 'rgb(' + red + ', ' + green + ', ' + blue + ')';
- }
+ // Picks a distinct colour based on an internal wheel; the bg
+ // parameter provides the value that should be assigned to the 'zero'
+ // colours and the fg parameter provides the multiplier that should be
+ // applied to the foreground colours.
+
+ color %= colors.length;
+ var red = (colors[color][0] * fg) || bg;
+ var green = (colors[color][1] * fg) || bg;
+ var blue = (colors[color][2] * fg) || bg;
+ red = Math.round(red * 255);
+ green = Math.round(green * 255);
+ blue = Math.round(blue * 255);
+ var s = 'rgb(' + red + ', ' + green + ', ' + blue + ')';
this.ctx.strokeStyle = s;
this.ctx.fillStyle = s;
return s;
}
- this.edge = function(x0, y0, x1, y1, color, width) {
-
- this.setColor(color, 0.0, 0.65);
- if(width >= 0)
- this.ctx.lineWidth = width;
- this.ctx.beginPath();
- this.ctx.moveTo(x0, y0);
- this.ctx.lineTo(x1, y1);
- this.ctx.stroke();
-
- }
-
this.render = function(data) {
var backgrounds = '';
@@ -112,20 +93,13 @@ function Graph() {
var edges = cur[2];
var fold = false;
- var prevWidth = this.ctx.lineWidth;
for (var j in edges) {
line = edges[j];
start = line[0];
end = line[1];
color = line[2];
- var width = line[3];
- if(width < 0)
- width = prevWidth;
- var branchcolor = line[4];
- if(branchcolor)
- color = branchcolor;
-
+
if (end > this.columns || start > this.columns) {
this.columns += 1;
}
@@ -139,10 +113,9 @@ function Graph() {
x1 = this.cell[0] + this.box_size * end + this.box_size / 2;
y1 = this.bg[1] + this.bg_height / 2;
- this.edge(x0, y0, x1, y1, color, width);
+ this.edge(x0, y0, x1, y1, color);
}
- this.ctx.lineWidth = prevWidth;
// Draw the revision node in the right column
diff --git a/mercurial/templates/static/style-coal.css b/mercurial/templates/static/style-coal.css
index 1dee828..33fb0e6 100644
--- a/mercurial/templates/static/style-coal.css
+++ b/mercurial/templates/static/style-coal.css
@@ -286,40 +286,3 @@ ul#graphnodes li .info {
position: relative;
top: -3px;
}
-
-/* Comparison */
-.legend {
- padding: 1.5% 0 1.5% 0;
-}
-
-.legendinfo {
- border: 1px solid #999;
- font-size: 80%;
- text-align: center;
- padding: 0.5%;
-}
-
-.equal {
- background-color: #ffffff;
-}
-
-.delete {
- background-color: #faa;
- color: #333;
-}
-
-.insert {
- background-color: #ffa;
-}
-
-.replace {
- background-color: #e8e8e8;
-}
-
-.header {
- text-align: center;
-}
-
-.block {
- border-top: 1px solid #999;
-}
diff --git a/mercurial/templates/static/style-gitweb.css b/mercurial/templates/static/style-gitweb.css
index c5e9514..82f5ef5 100644
--- a/mercurial/templates/static/style-gitweb.css
+++ b/mercurial/templates/static/style-gitweb.css
@@ -126,44 +126,3 @@ ul#graphnodes li .info {
top: -3px;
font-style: italic;
}
-
-/* Comparison */
-.legend {
- padding: 1.5% 0 1.5% 0;
-}
-
-.legendinfo {
- border: 1px solid #d9d8d1;
- font-size: 80%;
- text-align: center;
- padding: 0.5%;
-}
-
-.equal {
- background-color: #ffffff;
-}
-
-.delete {
- background-color: #faa;
- color: #333;
-}
-
-.insert {
- background-color: #ffa;
-}
-
-.replace {
- background-color: #e8e8e8;
-}
-
-.comparison {
- overflow-x: auto;
-}
-
-.header th {
- text-align: center;
-}
-
-.block {
- border-top: 1px solid #d9d8d1;
-}
diff --git a/mercurial/templates/static/style-monoblue.css b/mercurial/templates/static/style-monoblue.css
index b4e3579..c015061 100644
--- a/mercurial/templates/static/style-monoblue.css
+++ b/mercurial/templates/static/style-monoblue.css
@@ -477,50 +477,3 @@ ul#graphnodes li .info {
position: relative;
}
/** end of canvas **/
-
-/** comparison **/
-.legend {
- margin-left: 20px;
- padding: 1.5% 0 1.5% 0;
-}
-
-.legendinfo {
- border: 1px solid #999;
- font-size: 80%;
- text-align: center;
- padding: 0.5%;
-}
-
-.equal {
- background-color: #ffffff;
-}
-
-.delete {
- background-color: #faa;
- color: #333;
-}
-
-.insert {
- background-color: #ffa;
-}
-
-.replace {
- background-color: #e8e8e8;
-}
-
-.comparison {
- overflow-x: auto;
-}
-
-.comparison table td {
- padding: 0px 5px;
-}
-
-.header th {
- font-weight: bold;
-}
-
-.block {
- border-top: 1px solid #999;
-}
-/** end of comparison **/
diff --git a/mercurial/templates/static/style-paper.css b/mercurial/templates/static/style-paper.css
index e881c1c..6c8b1c2 100644
--- a/mercurial/templates/static/style-paper.css
+++ b/mercurial/templates/static/style-paper.css
@@ -275,40 +275,3 @@ ul#graphnodes li .info {
position: relative;
top: -3px;
}
-
-/* Comparison */
-.legend {
- padding: 1.5% 0 1.5% 0;
-}
-
-.legendinfo {
- border: 1px solid #999;
- font-size: 80%;
- text-align: center;
- padding: 0.5%;
-}
-
-.equal {
- background-color: #ffffff;
-}
-
-.delete {
- background-color: #faa;
- color: #333;
-}
-
-.insert {
- background-color: #ffa;
-}
-
-.replace {
- background-color: #e8e8e8;
-}
-
-.header {
- text-align: center;
-}
-
-.block {
- border-top: 1px solid #999;
-}
diff --git a/mercurial/transaction.py b/mercurial/transaction.py
index a7e9180..d197295 100644
--- a/mercurial/transaction.py
+++ b/mercurial/transaction.py
@@ -164,7 +164,7 @@ class transaction(object):
_playback(self.journal, self.report, self.opener,
self.entries, False)
self.report(_("rollback completed\n"))
- except Exception:
+ except:
self.report(_("rollback failed - please run hg recover\n"))
finally:
self.journal = None
diff --git a/mercurial/treediscovery.py b/mercurial/treediscovery.py
index 09a4afb..49011c9 100644
--- a/mercurial/treediscovery.py
+++ b/mercurial/treediscovery.py
@@ -56,11 +56,11 @@ def findcommonincoming(repo, remote, heads=None, force=False):
# a 'branch' here is a linear segment of history, with four parts:
# head, root, first parent, second parent
# (a branch always has two parents (or none) by definition)
- unknown = util.deque(remote.branches(unknown))
+ unknown = remote.branches(unknown)
while unknown:
r = []
while unknown:
- n = unknown.popleft()
+ n = unknown.pop(0)
if n[0] in seen:
continue
diff --git a/mercurial/ui.py b/mercurial/ui.py
index 5d80df4..8f3b1eb 100644
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -7,7 +7,7 @@
from i18n import _
import errno, getpass, os, socket, sys, tempfile, traceback
-import config, scmutil, util, error, formatter
+import config, scmutil, util, error
class ui(object):
def __init__(self, src=None):
@@ -19,7 +19,6 @@ class ui(object):
self._ucfg = config.config() # untrusted
self._trustusers = set()
self._trustgroups = set()
- self.callhooks = True
if src:
self.fout = src.fout
@@ -32,7 +31,6 @@ class ui(object):
self._trustusers = src._trustusers.copy()
self._trustgroups = src._trustgroups.copy()
self.environ = src.environ
- self.callhooks = src.callhooks
self.fixconfig()
else:
self.fout = sys.stdout
@@ -48,10 +46,7 @@ class ui(object):
def copy(self):
return self.__class__(self)
- def formatter(self, topic, opts):
- return formatter.formatter(self, topic, opts)
-
- def _trusted(self, fp, f):
+ def _is_trusted(self, fp, f):
st = util.fstat(fp)
if util.isowner(st):
return True
@@ -66,7 +61,7 @@ class ui(object):
return True
if self._reportuntrusted:
- self.warn(_('not trusting file %s from untrusted '
+ self.warn(_('Not trusting file %s from untrusted '
'user %s, group %s\n') % (f, user, group))
return False
@@ -80,15 +75,14 @@ class ui(object):
raise
cfg = config.config()
- trusted = sections or trust or self._trusted(fp, filename)
+ trusted = sections or trust or self._is_trusted(fp, filename)
try:
cfg.read(filename, fp, sections=sections, remap=remap)
- fp.close()
except error.ConfigError, inst:
if trusted:
raise
- self.warn(_("ignored: %s\n") % str(inst))
+ self.warn(_("Ignored: %s\n") % str(inst))
if self.plain():
for k in ('debug', 'fallbackencoding', 'quiet', 'slash',
@@ -147,15 +141,6 @@ class ui(object):
self._trustusers.update(self.configlist('trusted', 'users'))
self._trustgroups.update(self.configlist('trusted', 'groups'))
- def backupconfig(self, section, item):
- return (self._ocfg.backup(section, item),
- self._tcfg.backup(section, item),
- self._ucfg.backup(section, item),)
- def restoreconfig(self, data):
- self._ocfg.restore(data[0])
- self._tcfg.restore(data[1])
- self._ucfg.restore(data[2])
-
def setconfig(self, section, name, value, overlay=True):
if overlay:
self._ocfg.set(section, name, value)
@@ -170,19 +155,7 @@ class ui(object):
return self._data(untrusted).source(section, name) or 'none'
def config(self, section, name, default=None, untrusted=False):
- if isinstance(name, list):
- alternates = name
- else:
- alternates = [name]
-
- for n in alternates:
- value = self._data(untrusted).get(section, name, None)
- if value is not None:
- name = n
- break
- else:
- value = default
-
+ value = self._data(untrusted).get(section, name, default)
if self.debugflag and not untrusted and self._reportuntrusted:
uvalue = self._ucfg.get(section, name)
if uvalue is not None and uvalue != value:
@@ -191,14 +164,12 @@ class ui(object):
return value
def configpath(self, section, name, default=None, untrusted=False):
- 'get a path config item, expanded relative to repo root or config file'
+ 'get a path config item, expanded relative to config file'
v = self.config(section, name, default, untrusted)
- if v is None:
- return None
if not os.path.isabs(v) or "://" not in v:
src = self.configsource(section, name, untrusted)
if ':' in src:
- base = os.path.dirname(src.rsplit(':')[0])
+ base = os.path.dirname(src.rsplit(':'))
v = os.path.join(base, os.path.expanduser(v))
return v
@@ -411,7 +382,7 @@ class ui(object):
if user is None and not self.interactive():
try:
user = '%s@%s' % (util.getuser(), socket.getfqdn())
- self.warn(_("no username found, using '%s' instead\n") % user)
+ self.warn(_("No username found, using '%s' instead\n") % user)
except KeyError:
pass
if not user:
@@ -485,19 +456,14 @@ class ui(object):
if not getattr(self.ferr, 'closed', False):
self.ferr.flush()
except IOError, inst:
- if inst.errno not in (errno.EPIPE, errno.EIO, errno.EBADF):
+ if inst.errno not in (errno.EPIPE, errno.EIO):
raise
def flush(self):
try: self.fout.flush()
- except (IOError, ValueError): pass
+ except: pass
try: self.ferr.flush()
- except (IOError, ValueError): pass
-
- def _isatty(self, fh):
- if self.configbool('ui', 'nontty', False):
- return False
- return util.isatty(fh)
+ except: pass
def interactive(self):
'''is interactive input allowed?
@@ -517,7 +483,7 @@ class ui(object):
if i is None:
# some environments replace stdin without implementing isatty
# usually those are non-interactive
- return self._isatty(self.fin)
+ return util.isatty(self.fin)
return i
@@ -555,12 +521,12 @@ class ui(object):
if i is None:
# some environments replace stdout without implementing isatty
# usually those are non-interactive
- return self._isatty(self.fout)
+ return util.isatty(self.fout)
return i
def _readline(self, prompt=''):
- if self._isatty(self.fin):
+ if util.isatty(self.fin):
try:
# magically add command line editing support, where
# available
@@ -687,25 +653,17 @@ class ui(object):
printed.'''
if self.tracebackflag:
if exc:
- traceback.print_exception(exc[0], exc[1], exc[2],
- file=self.ferr)
+ traceback.print_exception(exc[0], exc[1], exc[2], file=self.ferr)
else:
traceback.print_exc(file=self.ferr)
return self.tracebackflag
def geteditor(self):
'''return editor to use'''
- if sys.platform == 'plan9':
- # vi is the MIPS instruction simulator on Plan 9. We
- # instead default to E to plumb commit messages to
- # avoid confusion.
- editor = 'E'
- else:
- editor = 'vi'
return (os.environ.get("HGEDITOR") or
self.config("ui", "editor") or
os.environ.get("VISUAL") or
- os.environ.get("EDITOR", editor))
+ os.environ.get("EDITOR", "vi"))
def progress(self, topic, pos, item="", unit="", total=None):
'''show a progress message
diff --git a/mercurial/url.py b/mercurial/url.py
index 9cb88e0..60b1012 100644
--- a/mercurial/url.py
+++ b/mercurial/url.py
@@ -135,7 +135,7 @@ def _gen_sendfile(orgsend):
orgsend(self, data)
return _sendfile
-has_https = util.safehasattr(urllib2, 'HTTPSHandler')
+has_https = hasattr(urllib2, 'HTTPSHandler')
if has_https:
try:
_create_connection = socket.create_connection
@@ -192,8 +192,8 @@ class httpconnection(keepalive.HTTPConnection):
# general transaction handler to support different ways to handle
# HTTPS proxying before and after Python 2.6.3.
def _generic_start_transaction(handler, h, req):
- tunnel_host = getattr(req, '_tunnel_host', None)
- if tunnel_host:
+ if hasattr(req, '_tunnel_host') and req._tunnel_host:
+ tunnel_host = req._tunnel_host
if tunnel_host[:7] not in ['http://', 'https:/']:
tunnel_host = 'https://' + tunnel_host
new_tunnel = True
@@ -377,8 +377,7 @@ if has_https:
keyfile = self.auth['key']
certfile = self.auth['cert']
- conn = httpsconnection(host, port, keyfile, certfile, *args,
- **kwargs)
+ conn = httpsconnection(host, port, keyfile, certfile, *args, **kwargs)
conn.ui = self.ui
return conn
diff --git a/mercurial/util.h b/mercurial/util.h
index facfd8b..0ecc867 100644
--- a/mercurial/util.h
+++ b/mercurial/util.h
@@ -101,66 +101,5 @@
#endif /* PY_VERSION_HEX */
-#if (PY_VERSION_HEX < 0x02050000)
-/* Definitions to get compatibility with python 2.4 and earlier which
- does not have Py_ssize_t. See also PEP 353.
- Note: msvc (8 or earlier) does not have ssize_t, so we use Py_ssize_t.
-*/
-typedef int Py_ssize_t;
-typedef Py_ssize_t (*lenfunc)(PyObject *);
-typedef PyObject *(*ssizeargfunc)(PyObject *, Py_ssize_t);
-#define PyInt_FromSsize_t PyInt_FromLong
-
-#if !defined(PY_SSIZE_T_MIN)
-#define PY_SSIZE_T_MAX INT_MAX
-#define PY_SSIZE_T_MIN INT_MIN
-#endif
-#endif
-
-#ifdef _WIN32
-#ifdef _MSC_VER
-/* msvc 6.0 has problems */
-#define inline __inline
-typedef unsigned long uint32_t;
-typedef unsigned __int64 uint64_t;
-#else
-#include <stdint.h>
-#endif
-#else
-/* not windows */
-#include <sys/types.h>
-#if defined __BEOS__ && !defined __HAIKU__
-#include <ByteOrder.h>
-#else
-#include <arpa/inet.h>
-#endif
-#include <inttypes.h>
-#endif
-
-#if defined __hpux || defined __SUNPRO_C || defined _AIX
-#define inline
-#endif
-
-#ifdef __linux
-#define inline __inline
-#endif
-
-static inline uint32_t getbe32(const char *c)
-{
- const unsigned char *d = (const unsigned char *)c;
-
- return ((d[0] << 24) |
- (d[1] << 16) |
- (d[2] << 8) |
- (d[3]));
-}
-
-static inline void putbe32(uint32_t x, char *c)
-{
- c[0] = (x >> 24) & 0xff;
- c[1] = (x >> 16) & 0xff;
- c[2] = (x >> 8) & 0xff;
- c[3] = (x) & 0xff;
-}
-
#endif /* _HG_UTIL_H_ */
+
diff --git a/mercurial/util.py b/mercurial/util.py
index 4a6e215..4597ffb 100644
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -14,85 +14,21 @@ hide platform-specific details from the core.
"""
from i18n import _
-import error, osutil, encoding, collections
+import error, osutil, encoding
import errno, re, shutil, sys, tempfile, traceback
-import os, time, datetime, calendar, textwrap, signal
+import os, time, calendar, textwrap, signal
import imp, socket, urllib
-if os.name == 'nt':
- import windows as platform
-else:
- import posix as platform
-
-cachestat = platform.cachestat
-checkexec = platform.checkexec
-checklink = platform.checklink
-copymode = platform.copymode
-executablepath = platform.executablepath
-expandglobs = platform.expandglobs
-explainexit = platform.explainexit
-findexe = platform.findexe
-gethgcmd = platform.gethgcmd
-getuser = platform.getuser
-groupmembers = platform.groupmembers
-groupname = platform.groupname
-hidewindow = platform.hidewindow
-isexec = platform.isexec
-isowner = platform.isowner
-localpath = platform.localpath
-lookupreg = platform.lookupreg
-makedir = platform.makedir
-nlinks = platform.nlinks
-normpath = platform.normpath
-normcase = platform.normcase
-nulldev = platform.nulldev
-openhardlinks = platform.openhardlinks
-oslink = platform.oslink
-parsepatchoutput = platform.parsepatchoutput
-pconvert = platform.pconvert
-popen = platform.popen
-posixfile = platform.posixfile
-quotecommand = platform.quotecommand
-realpath = platform.realpath
-rename = platform.rename
-samedevice = platform.samedevice
-samefile = platform.samefile
-samestat = platform.samestat
-setbinary = platform.setbinary
-setflags = platform.setflags
-setsignalhandler = platform.setsignalhandler
-shellquote = platform.shellquote
-spawndetached = platform.spawndetached
-sshargs = platform.sshargs
-statfiles = platform.statfiles
-termwidth = platform.termwidth
-testpid = platform.testpid
-umask = platform.umask
-unlink = platform.unlink
-unlinkpath = platform.unlinkpath
-username = platform.username
-
# Python compatibility
-_notset = object()
+def sha1(s):
+ return _fastsha1(s)
+_notset = object()
def safehasattr(thing, attr):
return getattr(thing, attr, _notset) is not _notset
-def sha1(s=''):
- '''
- Low-overhead wrapper around Python's SHA support
-
- >>> f = _fastsha1
- >>> a = sha1()
- >>> a = f()
- >>> a.hexdigest()
- 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
- '''
-
- return _fastsha1(s)
-
-def _fastsha1(s=''):
+def _fastsha1(s):
# This function will import sha1 from hashlib or sha (whichever is
# available) and overwrite itself with it on the first call.
# Subsequent calls will go directly to the imported function.
@@ -104,15 +40,18 @@ def _fastsha1(s=''):
_fastsha1 = sha1 = _sha1
return _sha1(s)
+import __builtin__
+
+if sys.version_info[0] < 3:
+ def fakebuffer(sliceable, offset=0):
+ return sliceable[offset:]
+else:
+ def fakebuffer(sliceable, offset=0):
+ return memoryview(sliceable)[offset:]
try:
- buffer = buffer
+ buffer
except NameError:
- if sys.version_info[0] < 3:
- def buffer(sliceable, offset=0):
- return sliceable[offset:]
- else:
- def buffer(sliceable, offset=0):
- return memoryview(sliceable)[offset:]
+ __builtin__.buffer = fakebuffer
import subprocess
closefds = os.name == 'posix'
@@ -199,27 +138,15 @@ def cachefunc(func):
return f
-try:
- collections.deque.remove
- deque = collections.deque
-except AttributeError:
- # python 2.4 lacks deque.remove
- class deque(collections.deque):
- def remove(self, val):
- for i, v in enumerate(self):
- if v == val:
- del self[i]
- break
-
def lrucachefunc(func):
'''cache most recent results of function calls'''
cache = {}
- order = deque()
+ order = []
if func.func_code.co_argcount == 1:
def f(arg):
if arg not in cache:
if len(cache) > 20:
- del cache[order.popleft()]
+ del cache[order.pop(0)]
cache[arg] = func(arg)
else:
order.remove(arg)
@@ -229,7 +156,7 @@ def lrucachefunc(func):
def f(*args):
if args not in cache:
if len(cache) > 20:
- del cache[order.popleft()]
+ del cache[order.pop(0)]
cache[args] = func(*args)
else:
order.remove(args)
@@ -380,8 +307,8 @@ def mainfrozen():
The code supports py2exe (most common, Windows only) and tools/freeze
(portable, not much used).
"""
- return (safehasattr(sys, "frozen") or # new py2exe
- safehasattr(sys, "importers") or # old py2exe
+ return (hasattr(sys, "frozen") or # new py2exe
+ hasattr(sys, "importers") or # old py2exe
imp.is_frozen("__main__")) # tools/freeze
def hgexecutable():
@@ -391,13 +318,10 @@ def hgexecutable():
"""
if _hgexecutable is None:
hg = os.environ.get('HG')
- mainmod = sys.modules['__main__']
if hg:
_sethgexecutable(hg)
elif mainfrozen():
_sethgexecutable(sys.executable)
- elif os.path.basename(getattr(mainmod, '__file__', '')) == 'hg':
- _sethgexecutable(mainmod.__file__)
else:
exe = findexe('hg') or os.path.basename(sys.argv[0])
_sethgexecutable(exe)
@@ -431,29 +355,22 @@ def system(cmd, environ={}, cwd=None, onerr=None, errprefix=None, out=None):
return str(val)
origcmd = cmd
cmd = quotecommand(cmd)
- if sys.platform == 'plan9':
- # subprocess kludge to work around issues in half-baked Python
- # ports, notably bichued/python:
- if not cwd is None:
- os.chdir(cwd)
- rc = os.system(cmd)
+ env = dict(os.environ)
+ env.update((k, py2shell(v)) for k, v in environ.iteritems())
+ env['HG'] = hgexecutable()
+ if out is None or out == sys.__stdout__:
+ rc = subprocess.call(cmd, shell=True, close_fds=closefds,
+ env=env, cwd=cwd)
else:
- env = dict(os.environ)
- env.update((k, py2shell(v)) for k, v in environ.iteritems())
- env['HG'] = hgexecutable()
- if out is None or out == sys.__stdout__:
- rc = subprocess.call(cmd, shell=True, close_fds=closefds,
- env=env, cwd=cwd)
- else:
- proc = subprocess.Popen(cmd, shell=True, close_fds=closefds,
- env=env, cwd=cwd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- for line in proc.stdout:
- out.write(line)
- proc.wait()
- rc = proc.returncode
- if sys.platform == 'OpenVMS' and rc & 1:
- rc = 0
+ proc = subprocess.Popen(cmd, shell=True, close_fds=closefds,
+ env=env, cwd=cwd, stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT)
+ for line in proc.stdout:
+ out.write(line)
+ proc.wait()
+ rc = proc.returncode
+ if sys.platform == 'OpenVMS' and rc & 1:
+ rc = 0
if rc and onerr:
errmsg = '%s %s' % (os.path.basename(origcmd.split(None, 1)[0]),
explainexit(rc)[0])
@@ -477,6 +394,18 @@ def checksignature(func):
return check
+def makedir(path, notindexed):
+ os.mkdir(path)
+
+def unlinkpath(f):
+ """unlink and remove the directory if it is empty"""
+ os.unlink(f)
+ # try removing directories that might now be empty
+ try:
+ os.removedirs(os.path.dirname(f))
+ except OSError:
+ pass
+
def copyfile(src, dest):
"copy a file, preserving mode and atime/mtime"
if os.path.islink(src):
@@ -542,7 +471,6 @@ def checkwinfilename(path):
"filename contains '\\\\x07', which is invalid on Windows"
>>> checkwinfilename("foo/bar/bla ")
"filename ends with ' ', which is not allowed on Windows"
- >>> checkwinfilename("../bar")
'''
for n in path.replace('\\', '/').split('/'):
if not n:
@@ -559,14 +487,26 @@ def checkwinfilename(path):
return _("filename contains '%s', which is reserved "
"on Windows") % base
t = n[-1]
- if t in '. ' and n not in '..':
+ if t in '. ':
return _("filename ends with '%s', which is not allowed "
"on Windows") % t
+def lookupreg(key, name=None, scope=None):
+ return None
+
+def hidewindow():
+ """Hide current shell window.
+
+ Used to hide the window opened when starting asynchronous
+ child process under Windows, unneeded on other systems.
+ """
+ pass
+
if os.name == 'nt':
checkosfilename = checkwinfilename
+ from windows import *
else:
- checkosfilename = platform.checkosfilename
+ from posix import *
def makelock(info, pathname):
try:
@@ -612,12 +552,9 @@ def checkcase(path):
"""
s1 = os.stat(path)
d, b = os.path.split(path)
- b2 = b.upper()
- if b == b2:
- b2 = b.lower()
- if b == b2:
- return True # no evidence against case sensitivity
- p2 = os.path.join(d, b2)
+ p2 = os.path.join(d, b.upper())
+ if path == p2:
+ p2 = os.path.join(d, b.lower())
try:
s2 = os.stat(p2)
if s2 == s1:
@@ -626,45 +563,22 @@ def checkcase(path):
except OSError:
return True
-try:
- import re2
- _re2 = None
-except ImportError:
- _re2 = False
-
-def compilere(pat):
- '''Compile a regular expression, using re2 if possible
-
- For best performance, use only re2-compatible regexp features.'''
- global _re2
- if _re2 is None:
- try:
- re2.compile
- _re2 = True
- except ImportError:
- _re2 = False
- if _re2:
- try:
- return re2.compile(pat)
- except re2.error:
- pass
- return re.compile(pat)
-
_fspathcache = {}
def fspath(name, root):
'''Get name in the case stored in the filesystem
- The name should be relative to root, and be normcase-ed for efficiency.
-
- Note that this function is unnecessary, and should not be
+ The name is either relative to root, or it is an absolute path starting
+ with root. Note that this function is unnecessary, and should not be
called, for case-sensitive filesystems (simply because it's expensive).
-
- The root should be normcase-ed, too.
'''
- def find(p, contents):
- for n in contents:
- if normcase(n) == p:
- return n
+ # If name is absolute, make it relative
+ if name.lower().startswith(root.lower()):
+ l = len(root)
+ if name[l] == os.sep or name[l] == os.altsep:
+ l = l + 1
+ name = name[l:]
+
+ if not os.path.lexists(os.path.join(root, name)):
return None
seps = os.sep
@@ -673,7 +587,7 @@ def fspath(name, root):
# Protect backslashes. This gets silly very quickly.
seps.replace('\\','\\\\')
pattern = re.compile(r'([^%s]+)|([%s]+)' % (seps, seps))
- dir = os.path.normpath(root)
+ dir = os.path.normcase(os.path.normpath(root))
result = []
for part, sep in pattern.findall(name):
if sep:
@@ -684,16 +598,16 @@ def fspath(name, root):
_fspathcache[dir] = os.listdir(dir)
contents = _fspathcache[dir]
- found = find(part, contents)
- if not found:
- # retry "once per directory" per "dirstate.walk" which
- # may take place for each patches of "hg qpush", for example
- contents = os.listdir(dir)
- _fspathcache[dir] = contents
- found = find(part, contents)
-
- result.append(found or part)
- dir = os.path.join(dir, part)
+ lpart = part.lower()
+ lenp = len(part)
+ for n in contents:
+ if lenp == len(n) and n.lower() == lpart:
+ result.append(n)
+ break
+ else:
+ # Cannot happen, as the file exists!
+ result.append(part)
+ dir = os.path.join(dir, lpart)
return ''.join(result)
@@ -776,7 +690,16 @@ def mktempcopy(name, emptyok=False, createmode=None):
# Temporary files are created with mode 0600, which is usually not
# what we want. If the original file already exists, just copy
# its mode. Otherwise, manually obey umask.
- copymode(name, temp, createmode)
+ try:
+ st_mode = os.lstat(name).st_mode & 0777
+ except OSError, inst:
+ if inst.errno != errno.ENOENT:
+ raise
+ st_mode = createmode
+ if st_mode is None:
+ st_mode = ~umask
+ st_mode &= 0666
+ os.chmod(temp, st_mode)
if emptyok:
return temp
try:
@@ -793,9 +716,9 @@ def mktempcopy(name, emptyok=False, createmode=None):
ofp.write(chunk)
ifp.close()
ofp.close()
- except: # re-raises
+ except:
try: os.unlink(temp)
- except OSError: pass
+ except: pass
raise
return temp
@@ -803,10 +726,11 @@ class atomictempfile(object):
'''writeable file object that atomically updates a file
All writes will go to a temporary copy of the original file. Call
- close() when you are done writing, and atomictempfile will rename
- the temporary copy to the original name, making the changes
- visible. If the object is destroyed without being closed, all your
- writes are discarded.
+ rename() when you are done writing, and atomictempfile will rename
+ the temporary copy to the original name, making the changes visible.
+
+ Unlike other file-like objects, close() discards your writes by
+ simply deleting the temporary file.
'''
def __init__(self, name, mode='w+b', createmode=None):
self.__name = name # permanent name
@@ -816,16 +740,14 @@ class atomictempfile(object):
# delegated methods
self.write = self._fp.write
- self.seek = self._fp.seek
- self.tell = self._fp.tell
self.fileno = self._fp.fileno
- def close(self):
+ def rename(self):
if not self._fp.closed:
self._fp.close()
rename(self._tempname, localpath(self.__name))
- def discard(self):
+ def close(self):
if not self._fp.closed:
try:
os.unlink(self._tempname)
@@ -834,25 +756,24 @@ class atomictempfile(object):
self._fp.close()
def __del__(self):
- if safehasattr(self, '_fp'): # constructor actually did something
- self.discard()
+ if hasattr(self, '_fp'): # constructor actually did something
+ self.close()
def makedirs(name, mode=None):
"""recursive directory creation with parent mode inheritance"""
+ parent = os.path.abspath(os.path.dirname(name))
try:
os.mkdir(name)
+ if mode is not None:
+ os.chmod(name, mode)
+ return
except OSError, err:
if err.errno == errno.EEXIST:
return
- if err.errno != errno.ENOENT or not name:
- raise
- parent = os.path.dirname(os.path.abspath(name))
- if parent == name:
+ if not name or parent == name or err.errno != errno.ENOENT:
raise
- makedirs(parent, mode)
- os.mkdir(name)
- if mode is not None:
- os.chmod(name, mode)
+ makedirs(parent, mode)
+ makedirs(name, mode)
def readfile(path):
fp = open(path, 'rb')
@@ -893,7 +814,7 @@ class chunkbuffer(object):
else:
yield chunk
self.iter = splitbig(in_iter)
- self._queue = deque()
+ self._queue = []
def read(self, l):
"""Read L bytes of data from the iterator of chunks of data.
@@ -913,10 +834,10 @@ class chunkbuffer(object):
if not queue:
break
- chunk = queue.popleft()
+ chunk = queue.pop(0)
left -= len(chunk)
if left < 0:
- queue.appendleft(chunk[left:])
+ queue.insert(0, chunk[left:])
buf += chunk[:left]
else:
buf += chunk
@@ -945,14 +866,16 @@ def filechunkiter(f, size=65536, limit=None):
yield s
def makedate():
- ct = time.time()
- if ct < 0:
+ lt = time.localtime()
+ if lt[8] == 1 and time.daylight:
+ tz = time.altzone
+ else:
+ tz = time.timezone
+ t = time.mktime(lt)
+ if t < 0:
hint = _("check your clock")
- raise Abort(_("negative timestamp: %d") % ct, hint=hint)
- delta = (datetime.datetime.utcfromtimestamp(ct) -
- datetime.datetime.fromtimestamp(ct))
- tz = delta.days * 86400 + delta.seconds
- return ct, tz
+ raise Abort(_("negative timestamp: %d") % t, hint=hint)
+ return t, tz
def datestr(date=None, format='%a %b %d %H:%M:%S %Y %1%2'):
"""represent a (unixtime, offset) tuple as a localized time.
@@ -1114,7 +1037,7 @@ def matchdate(date):
try:
d["d"] = days
return parsedate(date, extendeddateformats, d)[0]
- except Abort:
+ except:
pass
d["d"] = "28"
return parsedate(date, extendeddateformats, d)[0]
@@ -1167,16 +1090,6 @@ def shortuser(user):
user = user[:f]
return user
-def emailuser(user):
- """Return the user portion of an email address."""
- f = user.find('@')
- if f >= 0:
- user = user[:f]
- f = user.find('<')
- if f >= 0:
- user = user[f + 1:]
- return user
-
def email(author):
'''get email of author.'''
r = author.find('>')
@@ -1202,26 +1115,26 @@ def ellipsis(text, maxlength=400):
except (UnicodeDecodeError, UnicodeEncodeError):
return _ellipsis(text, maxlength)[0]
-_byteunits = (
- (100, 1 << 30, _('%.0f GB')),
- (10, 1 << 30, _('%.1f GB')),
- (1, 1 << 30, _('%.2f GB')),
- (100, 1 << 20, _('%.0f MB')),
- (10, 1 << 20, _('%.1f MB')),
- (1, 1 << 20, _('%.2f MB')),
- (100, 1 << 10, _('%.0f KB')),
- (10, 1 << 10, _('%.1f KB')),
- (1, 1 << 10, _('%.2f KB')),
- (1, 1, _('%.0f bytes')),
- )
-
def bytecount(nbytes):
'''return byte count formatted as readable string, with units'''
- for multiplier, divisor, format in _byteunits:
+ units = (
+ (100, 1 << 30, _('%.0f GB')),
+ (10, 1 << 30, _('%.1f GB')),
+ (1, 1 << 30, _('%.2f GB')),
+ (100, 1 << 20, _('%.0f MB')),
+ (10, 1 << 20, _('%.1f MB')),
+ (1, 1 << 20, _('%.2f MB')),
+ (100, 1 << 10, _('%.0f KB')),
+ (10, 1 << 10, _('%.1f KB')),
+ (1, 1 << 10, _('%.2f KB')),
+ (1, 1, _('%.0f bytes')),
+ )
+
+ for multiplier, divisor, format in units:
if nbytes >= divisor * multiplier:
return format % (nbytes / float(divisor))
- return _byteunits[-1][2] % nbytes
+ return units[-1][2] % nbytes
def uirepr(s):
# Avoid double backslash in Windows path repr()
@@ -1390,9 +1303,8 @@ def rundetached(args, condfn):
def handler(signum, frame):
terminated.add(os.wait())
prevhandler = None
- SIGCHLD = getattr(signal, 'SIGCHLD', None)
- if SIGCHLD is not None:
- prevhandler = signal.signal(SIGCHLD, handler)
+ if hasattr(signal, 'SIGCHLD'):
+ prevhandler = signal.signal(signal.SIGCHLD, handler)
try:
pid = spawndetached(args)
while not condfn():
@@ -1550,7 +1462,7 @@ class url(object):
"""
_safechars = "!~*'()+"
- _safepchars = "/!~*'()+:"
+ _safepchars = "/!~*'()+"
_matchscheme = re.compile(r'^[a-zA-Z0-9+.\-]+:').match
def __init__(self, path, parsequery=True, parsefragment=True):
@@ -1662,8 +1574,8 @@ class url(object):
Examples:
- >>> str(url('http://user:pw@host:80/c:/bob?fo:oo#ba:ar'))
- 'http://user:pw@host:80/c:/bob?fo:oo#ba:ar'
+ >>> str(url('http://user:pw@host:80/?foo#bar'))
+ 'http://user:pw@host:80/?foo#bar'
>>> str(url('http://user:pw@host:80/?foo=bar&baz=42'))
'http://user:pw@host:80/?foo=bar&baz=42'
>>> str(url('http://user:pw@host:80/?foo=bar%3dbaz'))
@@ -1684,8 +1596,6 @@ class url(object):
'path'
>>> str(url('file:///tmp/foo/bar'))
'file:///tmp/foo/bar'
- >>> str(url('file:///c:/tmp/foo/bar'))
- 'file:///c:/tmp/foo/bar'
>>> print url(r'bundle:foo\bar')
bundle:foo\bar
"""
@@ -1700,11 +1610,8 @@ class url(object):
s = self.scheme + ':'
if self.user or self.passwd or self.host:
s += '//'
- elif self.scheme and (not self.path or self.path.startswith('/')
- or hasdriveletter(self.path)):
+ elif self.scheme and (not self.path or self.path.startswith('/')):
s += '//'
- if hasdriveletter(self.path):
- s += '/'
if self.user:
s += urllib.quote(self.user, safe=self._safechars)
if self.passwd:
@@ -1741,10 +1648,8 @@ class url(object):
self.user, self.passwd = user, passwd
if not self.user:
return (s, None)
- # authinfo[1] is passed to urllib2 password manager, and its
- # URIs must not contain credentials. The host is passed in the
- # URIs list because Python < 2.4.3 uses only that to search for
- # a password.
+ # authinfo[1] is passed to urllib2 password manager, and its URIs
+ # must not contain credentials.
return (s, (None, (s, self.host),
self.user, self.passwd or ''))
@@ -1766,8 +1671,7 @@ class url(object):
# letters to paths with drive letters.
if hasdriveletter(self._hostport):
path = self._hostport + '/' + self.path
- elif (self.host is not None and self.path
- and not hasdriveletter(path)):
+ elif self.host is not None and self.path:
path = '/' + path
return path
return self._origpath
@@ -1776,7 +1680,7 @@ def hasscheme(path):
return bool(url(path).scheme)
def hasdriveletter(path):
- return path and path[1:2] == ':' and path[0:1].isalpha()
+ return path[1:2] == ':' and path[0:1].isalpha()
def urllocalpath(path):
return url(path, parsequery=False, parsefragment=False).localpath()
diff --git a/mercurial/verify.py b/mercurial/verify.py
index eb31faf..3e53862 100644
--- a/mercurial/verify.py
+++ b/mercurial/verify.py
@@ -87,7 +87,7 @@ def _verify(repo):
# attempt to filter down to real linkrevs
linkrevs = [l for l in linkrevs
if lrugetctx(l)[f].filenode() == node]
- except Exception:
+ except:
pass
warn(_(" (expected %s)") % " ".join(map(str, linkrevs)))
lr = None # can't be trusted
@@ -189,7 +189,7 @@ def _verify(repo):
try:
fl = repo.file(f)
lr = min([fl.linkrev(fl.rev(n)) for n in filenodes[f]])
- except Exception:
+ except:
lr = None
err(lr, _("in manifest but not in changeset"), f)
diff --git a/mercurial/win32.py b/mercurial/win32.py
index 6b3650f..e886caf 100644
--- a/mercurial/win32.py
+++ b/mercurial/win32.py
@@ -5,7 +5,8 @@
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-import ctypes, errno, os, subprocess, random
+import encoding
+import ctypes, errno, os, struct, subprocess, random
_kernel32 = ctypes.windll.kernel32
_advapi32 = ctypes.windll.advapi32
@@ -59,8 +60,6 @@ _FILE_SHARE_DELETE = 0x00000004
_OPEN_EXISTING = 3
-_FILE_FLAG_BACKUP_SEMANTICS = 0x02000000
-
# SetFileAttributes
_FILE_ATTRIBUTE_NORMAL = 0x80
_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x2000
@@ -71,6 +70,13 @@ _PROCESS_QUERY_INFORMATION = 0x0400
# GetExitCodeProcess
_STILL_ACTIVE = 259
+# registry
+_HKEY_CURRENT_USER = 0x80000001L
+_HKEY_LOCAL_MACHINE = 0x80000002L
+_KEY_READ = 0x20019
+_REG_SZ = 1
+_REG_DWORD = 4
+
class _STARTUPINFO(ctypes.Structure):
_fields_ = [('cb', _DWORD),
('lpReserved', _LPSTR),
@@ -97,7 +103,8 @@ class _PROCESS_INFORMATION(ctypes.Structure):
('dwProcessId', _DWORD),
('dwThreadId', _DWORD)]
-_CREATE_NO_WINDOW = 0x08000000
+_DETACHED_PROCESS = 0x00000008
+_STARTF_USESHOWWINDOW = 0x00000001
_SW_HIDE = 0
class _COORD(ctypes.Structure):
@@ -173,6 +180,17 @@ _kernel32.GetStdHandle.restype = _HANDLE
_kernel32.GetConsoleScreenBufferInfo.argtypes = [_HANDLE, ctypes.c_void_p]
_kernel32.GetConsoleScreenBufferInfo.restype = _BOOL
+_advapi32.RegOpenKeyExA.argtypes = [_HANDLE, _LPCSTR, _DWORD, _DWORD,
+ ctypes.c_void_p]
+_advapi32.RegOpenKeyExA.restype = _LONG
+
+_advapi32.RegQueryValueExA.argtypes = [_HANDLE, _LPCSTR, ctypes.c_void_p,
+ ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
+_advapi32.RegQueryValueExA.restype = _LONG
+
+_advapi32.RegCloseKey.argtypes = [_HANDLE]
+_advapi32.RegCloseKey.restype = _LONG
+
_advapi32.GetUserNameA.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
_advapi32.GetUserNameA.restype = _BOOL
@@ -193,7 +211,7 @@ def _raiseoserror(name):
def _getfileinfo(name):
fh = _kernel32.CreateFileA(name, 0,
_FILE_SHARE_READ | _FILE_SHARE_WRITE | _FILE_SHARE_DELETE,
- None, _OPEN_EXISTING, _FILE_FLAG_BACKUP_SEMANTICS, None)
+ None, _OPEN_EXISTING, 0, None)
if fh == _INVALID_HANDLE_VALUE:
_raiseoserror(name)
try:
@@ -215,18 +233,20 @@ def nlinks(name):
'''return number of hardlinks for the given file'''
return _getfileinfo(name).nNumberOfLinks
-def samefile(path1, path2):
- '''Returns whether path1 and path2 refer to the same file or directory.'''
- res1 = _getfileinfo(path1)
- res2 = _getfileinfo(path2)
+def samefile(fpath1, fpath2):
+ '''Returns whether fpath1 and fpath2 refer to the same file. This is only
+ guaranteed to work for files, not directories.'''
+ res1 = _getfileinfo(fpath1)
+ res2 = _getfileinfo(fpath2)
return (res1.dwVolumeSerialNumber == res2.dwVolumeSerialNumber
and res1.nFileIndexHigh == res2.nFileIndexHigh
and res1.nFileIndexLow == res2.nFileIndexLow)
-def samedevice(path1, path2):
- '''Returns whether path1 and path2 are on the same device.'''
- res1 = _getfileinfo(path1)
- res2 = _getfileinfo(path2)
+def samedevice(fpath1, fpath2):
+ '''Returns whether fpath1 and fpath2 are on the same device. This is only
+ guaranteed to work for files, not directories.'''
+ res1 = _getfileinfo(fpath1)
+ res2 = _getfileinfo(fpath2)
return res1.dwVolumeSerialNumber == res2.dwVolumeSerialNumber
def testpid(pid):
@@ -242,13 +262,50 @@ def testpid(pid):
_kernel32.CloseHandle(h)
return _kernel32.GetLastError() != _ERROR_INVALID_PARAMETER
+def lookupreg(key, valname=None, scope=None):
+ ''' Look up a key/value name in the Windows registry.
+
+ valname: value name. If unspecified, the default value for the key
+ is used.
+ scope: optionally specify scope for registry lookup, this can be
+ a sequence of scopes to look up in order. Default (CURRENT_USER,
+ LOCAL_MACHINE).
+ '''
+ byref = ctypes.byref
+ if scope is None:
+ scope = (_HKEY_CURRENT_USER, _HKEY_LOCAL_MACHINE)
+ elif not isinstance(scope, (list, tuple)):
+ scope = (scope,)
+ for s in scope:
+ kh = _HANDLE()
+ res = _advapi32.RegOpenKeyExA(s, key, 0, _KEY_READ, ctypes.byref(kh))
+ if res != _ERROR_SUCCESS:
+ continue
+ try:
+ size = _DWORD(600)
+ type = _DWORD()
+ buf = ctypes.create_string_buffer(size.value + 1)
+ res = _advapi32.RegQueryValueExA(kh.value, valname, None,
+ byref(type), buf, byref(size))
+ if res != _ERROR_SUCCESS:
+ continue
+ if type.value == _REG_SZ:
+ # never let a Unicode string escape into the wild
+ return encoding.tolocal(buf.value.encode('UTF-8'))
+ elif type.value == _REG_DWORD:
+ fmt = '<L'
+ s = ctypes.string_at(byref(buf), struct.calcsize(fmt))
+ return struct.unpack(fmt, s)[0]
+ finally:
+ _advapi32.RegCloseKey(kh.value)
+
def executablepath():
'''return full path of hg.exe'''
size = 600
buf = ctypes.create_string_buffer(size + 1)
len = _kernel32.GetModuleFileNameA(None, ctypes.byref(buf), size)
if len == 0:
- raise ctypes.WinError
+ raise ctypes.WinError()
elif len == size:
raise ctypes.WinError(_ERROR_INSUFFICIENT_BUFFER)
return buf.value
@@ -258,7 +315,7 @@ def getuser():
size = _DWORD(300)
buf = ctypes.create_string_buffer(size.value + 1)
if not _advapi32.GetUserNameA(ctypes.byref(buf), ctypes.byref(size)):
- raise ctypes.WinError
+ raise ctypes.WinError()
return buf.value
_signalhandler = []
@@ -276,7 +333,7 @@ def setsignalhandler():
h = _SIGNAL_HANDLER(handler)
_signalhandler.append(h) # needed to prevent garbage collection
if not _kernel32.SetConsoleCtrlHandler(h, True):
- raise ctypes.WinError
+ raise ctypes.WinError()
def hidewindow():
@@ -317,6 +374,8 @@ def spawndetached(args):
# which makes really detached processes impossible.
si = _STARTUPINFO()
si.cb = ctypes.sizeof(_STARTUPINFO)
+ si.dwFlags = _STARTF_USESHOWWINDOW
+ si.wShowWindow = _SW_HIDE
pi = _PROCESS_INFORMATION()
@@ -334,10 +393,10 @@ def spawndetached(args):
args = comspec + " /c " + args
res = _kernel32.CreateProcessA(
- None, args, None, None, False, _CREATE_NO_WINDOW,
+ None, args, None, None, False, _DETACHED_PROCESS,
env, os.getcwd(), ctypes.byref(si), ctypes.byref(pi))
if not res:
- raise ctypes.WinError
+ raise ctypes.WinError()
return pi.dwProcessId
diff --git a/mercurial/windows.py b/mercurial/windows.py
index aade404..ba3e6d8 100644
--- a/mercurial/windows.py
+++ b/mercurial/windows.py
@@ -6,26 +6,11 @@
# GNU General Public License version 2 or any later version.
from i18n import _
-import osutil, encoding
-import errno, msvcrt, os, re, sys, _winreg
-
-import win32
-executablepath = win32.executablepath
-getuser = win32.getuser
-hidewindow = win32.hidewindow
-makedir = win32.makedir
-nlinks = win32.nlinks
-oslink = win32.oslink
-samedevice = win32.samedevice
-samefile = win32.samefile
-setsignalhandler = win32.setsignalhandler
-spawndetached = win32.spawndetached
-termwidth = win32.termwidth
-testpid = win32.testpid
-unlink = win32.unlink
+import osutil
+import errno, msvcrt, os, re, sys
nulldev = 'NUL:'
-umask = 0022
+umask = 002
# wrap osutil.posixfile to provide friendlier exceptions
def posixfile(name, mode='r', buffering=-1):
@@ -105,9 +90,6 @@ def sshargs(sshcmd, host, user, port):
def setflags(f, l, x):
pass
-def copymode(src, dst, mode=None):
- pass
-
def checkexec(path):
return False
@@ -117,12 +99,11 @@ def checklink(path):
def setbinary(fd):
# When run without console, pipes may expose invalid
# fileno(), usually set to -1.
- fno = getattr(fd, 'fileno', None)
- if fno is not None and fno() >= 0:
- msvcrt.setmode(fno(), os.O_BINARY)
+ if hasattr(fd, 'fileno') and fd.fileno() >= 0:
+ msvcrt.setmode(fd.fileno(), os.O_BINARY)
def pconvert(path):
- return path.replace(os.sep, '/')
+ return '/'.join(path.split(os.sep))
def localpath(path):
return path.replace('/', '\\')
@@ -130,9 +111,6 @@ def localpath(path):
def normpath(path):
return pconvert(os.path.normpath(path))
-def normcase(path):
- return encoding.upper(path)
-
def realpath(path):
'''
Returns the true, canonical file system path equivalent to the given
@@ -140,7 +118,7 @@ def realpath(path):
'''
# TODO: There may be a more clever way to do this that also handles other,
# less common file systems.
- return os.path.normpath(normcase(os.path.realpath(path)))
+ return os.path.normpath(os.path.normcase(os.path.realpath(path)))
def samestat(s1, s2):
return False
@@ -216,16 +194,17 @@ def findexe(command):
def statfiles(files):
'''Stat each file in files and yield stat or None if file does not exist.
Cluster and cache stat per directory to minimize number of OS stat calls.'''
+ ncase = os.path.normcase
dircache = {} # dirname -> filename -> status | None if file does not exist
for nf in files:
- nf = normcase(nf)
+ nf = ncase(nf)
dir, base = os.path.split(nf)
if not dir:
dir = '.'
cache = dircache.get(dir, None)
if cache is None:
try:
- dmap = dict([(normcase(n), s)
+ dmap = dict([(ncase(n), s)
for n, k, s in osutil.listdir(dir, True)])
except OSError, err:
# handle directory not found in Python version prior to 2.5
@@ -291,39 +270,17 @@ def rename(src, dst):
def gethgcmd():
return [sys.executable] + sys.argv[:1]
+def termwidth():
+ # cmd.exe does not handle CR like a unix console, the CR is
+ # counted in the line length. On 80 columns consoles, if 80
+ # characters are written, the following CR won't apply on the
+ # current line but on the new one. Keep room for it.
+ return 79
+
def groupmembers(name):
# Don't support groups on Windows for now
- raise KeyError
+ raise KeyError()
-def isexec(f):
- return False
-
-class cachestat(object):
- def __init__(self, path):
- pass
-
- def cacheable(self):
- return False
-
-def lookupreg(key, valname=None, scope=None):
- ''' Look up a key/value name in the Windows registry.
-
- valname: value name. If unspecified, the default value for the key
- is used.
- scope: optionally specify scope for registry lookup, this can be
- a sequence of scopes to look up in order. Default (CURRENT_USER,
- LOCAL_MACHINE).
- '''
- if scope is None:
- scope = (_winreg.HKEY_CURRENT_USER, _winreg.HKEY_LOCAL_MACHINE)
- elif not isinstance(scope, (list, tuple)):
- scope = (scope,)
- for s in scope:
- try:
- val = _winreg.QueryValueEx(_winreg.OpenKey(s, key), valname)[0]
- # never let a Unicode string escape into the wild
- return encoding.tolocal(val.encode('UTF-8'))
- except EnvironmentError:
- pass
+from win32 import *
expandglobs = True
diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py
index 2b44fd6..51268fa 100644
--- a/mercurial/wireproto.py
+++ b/mercurial/wireproto.py
@@ -9,24 +9,24 @@ import urllib, tempfile, os, sys
from i18n import _
from node import bin, hex
import changegroup as changegroupmod
-import peer, error, encoding, util, store
-import discovery, phases
+import repo, error, encoding, util, store
+import pushkey as pushkeymod
# abstract batching support
class future(object):
'''placeholder for a value to be set later'''
def set(self, value):
- if util.safehasattr(self, 'value'):
+ if hasattr(self, 'value'):
raise error.RepoError("future is already set")
self.value = value
class batcher(object):
'''base class for batches of commands submittable in a single request
- All methods invoked on instances of this class are simply queued and
- return a a future for the result. Once you call submit(), all the queued
- calls are performed and the results set in their respective futures.
+ All methods invoked on instances of this class are simply queued and return a
+ a future for the result. Once you call submit(), all the queued calls are
+ performed and the results set in their respective futures.
'''
def __init__(self):
self.calls = []
@@ -51,17 +51,15 @@ class localbatch(batcher):
class remotebatch(batcher):
'''batches the queued calls; uses as few roundtrips as possible'''
def __init__(self, remote):
- '''remote must support _submitbatch(encbatch) and
- _submitone(op, encargs)'''
+ '''remote must support _submitbatch(encbatch) and _submitone(op, encargs)'''
batcher.__init__(self)
self.remote = remote
def submit(self):
req, rsp = [], []
for name, args, opts, resref in self.calls:
mtd = getattr(self.remote, name)
- batchablefn = getattr(mtd, 'batchable', None)
- if batchablefn is not None:
- batchable = batchablefn(mtd.im_self, *args, **opts)
+ if hasattr(mtd, 'batchable'):
+ batchable = getattr(mtd, 'batchable')(mtd.im_self, *args, **opts)
encargsorres, encresref = batchable.next()
if encresref:
req.append((name, encargsorres,))
@@ -98,14 +96,14 @@ def batchable(f):
encresref = future()
# Return encoded arguments and future:
yield encargs, encresref
- # Assuming the future to be filled with the result from the batched
- # request now. Decode it:
+ # Assuming the future to be filled with the result from the batched request
+ # now. Decode it:
yield decode(encresref.value)
- The decorator returns a function which wraps this coroutine as a plain
- method, but adds the original method as an attribute called "batchable",
- which is used by remotebatch to split the call into separate encoding and
- decoding phases.
+ The decorator returns a function which wraps this coroutine as a plain method,
+ but adds the original method as an attribute called "batchable", which is
+ used by remotebatch to split the call into separate encoding and decoding
+ phases.
'''
def plain(*args, **opts):
batchable = f(*args, **opts)
@@ -149,7 +147,7 @@ def unescapearg(escaped):
def todict(**args):
return args
-class wirepeer(peer.peerrepository):
+class wirerepository(repo.repository):
def batch(self):
return remotebatch(self)
@@ -236,20 +234,16 @@ class wirepeer(peer.peerrepository):
if not self.capable('pushkey'):
yield False, None
f = future()
- self.ui.debug('preparing pushkey for "%s:%s"\n' % (namespace, key))
yield todict(namespace=encoding.fromlocal(namespace),
key=encoding.fromlocal(key),
old=encoding.fromlocal(old),
new=encoding.fromlocal(new)), f
d = f.value
- d, output = d.split('\n', 1)
try:
d = bool(int(d))
except ValueError:
raise error.ResponseError(
_('push failed (unexpected response):'), d)
- for l in output.splitlines(True):
- self.ui.status(_('remote: '), l)
yield d
@batchable
@@ -257,7 +251,6 @@ class wirepeer(peer.peerrepository):
if not self.capable('pushkey'):
yield {}, None
f = future()
- self.ui.debug('preparing listkeys for "%s"\n' % namespace)
yield todict(namespace=encoding.fromlocal(namespace)), f
d = f.value
r = {}
@@ -341,10 +334,6 @@ class pusherr(object):
def __init__(self, res):
self.res = res
-class ooberror(object):
- def __init__(self, message):
- self.message = message
-
def dispatch(repo, proto, command):
func, spec = commands[command]
args = proto.getargs(spec)
@@ -386,8 +375,6 @@ def batch(repo, proto, cmds, others):
result = func(repo, proto, *[data[k] for k in keys])
else:
result = func(repo, proto)
- if isinstance(result, ooberror):
- return result
res.append(escapearg(result))
return ';'.join(res)
@@ -399,7 +386,7 @@ def between(repo, proto, pairs):
return "".join(r)
def branchmap(repo, proto):
- branchmap = discovery.visiblebranchmap(repo)
+ branchmap = repo.branchmap()
heads = []
for branch, nodes in branchmap.iteritems():
branchname = urllib.quote(encoding.fromlocal(branch))
@@ -418,8 +405,6 @@ def capabilities(repo, proto):
caps = ('lookup changegroupsubset branchmap pushkey known getbundle '
'unbundlehash batch').split()
if _allowstream(repo.ui):
- if repo.ui.configbool('server', 'preferuncompressed', False):
- caps.append('stream-preferred')
requiredformats = repo.requirements & repo.supportedformats
# if our local revlogs are just revlogv1, add 'stream' cap
if not requiredformats - set(('revlogv1',)):
@@ -455,7 +440,7 @@ def getbundle(repo, proto, others):
return streamres(proto.groupchunks(cg))
def heads(repo, proto):
- h = discovery.visibleheads(repo)
+ h = repo.heads()
return encodelist(h) + "\n"
def hello(repo, proto):
@@ -469,18 +454,14 @@ def hello(repo, proto):
return "capabilities: %s\n" % (capabilities(repo, proto))
def listkeys(repo, proto, namespace):
- d = repo.listkeys(encoding.tolocal(namespace)).items()
+ d = pushkeymod.list(repo, encoding.tolocal(namespace)).items()
t = '\n'.join(['%s\t%s' % (encoding.fromlocal(k), encoding.fromlocal(v))
for k, v in d])
return t
def lookup(repo, proto, key):
try:
- k = encoding.tolocal(key)
- c = repo[k]
- if c.phase() == phases.secret:
- raise error.RepoLookupError(_("unknown revision '%s'") % k)
- r = c.hex()
+ r = hex(repo.lookup(encoding.tolocal(key)))
success = 1
except Exception, inst:
r = str(inst)
@@ -503,8 +484,9 @@ def pushkey(repo, proto, namespace, key, old, new):
else:
new = encoding.tolocal(new) # normal path
- r = repo.pushkey(encoding.tolocal(namespace), encoding.tolocal(key),
- encoding.tolocal(old), new)
+ r = pushkeymod.push(repo,
+ encoding.tolocal(namespace), encoding.tolocal(key),
+ encoding.tolocal(old), new)
return '%s\n' % int(r)
def _allowstream(ui):
@@ -558,7 +540,7 @@ def unbundle(repo, proto, heads):
their_heads = decodelist(heads)
def check_heads():
- heads = discovery.visibleheads(repo)
+ heads = repo.heads()
heads_hash = util.sha1(''.join(sorted(heads))).digest()
return (their_heads == ['force'] or their_heads == heads or
their_heads == ['hashed', heads_hash])
@@ -587,7 +569,8 @@ def unbundle(repo, proto, heads):
gen = changegroupmod.readbundle(fp, None)
try:
- r = repo.addchangegroup(gen, 'serve', proto._client())
+ r = repo.addchangegroup(gen, 'serve', proto._client(),
+ lock=lock)
except util.Abort, inst:
sys.stderr.write("abort: %s\n" % inst)
finally:
diff --git a/setup.py b/setup.py
index 86bb2fb..cc88884 100644
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@
# 'python setup.py --help' for more options
import sys, platform
-if getattr(sys, 'version_info', (0, 0, 0)) < (2, 4, 0, 'final'):
+if not hasattr(sys, 'version_info') or sys.version_info < (2, 4, 0, 'final'):
raise SystemExit("Mercurial requires Python 2.4 or later.")
if sys.version_info[0] >= 3:
@@ -23,19 +23,35 @@ else:
try:
import hashlib
sha = hashlib.sha1()
-except ImportError:
+except:
try:
import sha
- except ImportError:
+ except:
raise SystemExit(
"Couldn't import standard hashlib (incomplete Python install).")
try:
import zlib
-except ImportError:
+except:
raise SystemExit(
"Couldn't import standard zlib (incomplete Python install).")
+# The base IronPython distribution (as of 2.7.1) doesn't support bz2
+isironpython = False
+try:
+ isironpython = platform.python_implementation().lower().find("ironpython") != -1
+except:
+ pass
+
+if isironpython:
+ print "warning: IronPython detected (no bz2 support)"
+else:
+ try:
+ import bz2
+ except:
+ raise SystemExit(
+ "Couldn't import standard bz2 (incomplete Python install).")
+
import os, subprocess, time
import shutil
import tempfile
@@ -48,24 +64,10 @@ from distutils.command.build_py import build_py
from distutils.command.install_scripts import install_scripts
from distutils.spawn import spawn, find_executable
from distutils.ccompiler import new_compiler
-from distutils import cygwinccompiler
from distutils.errors import CCompilerError, DistutilsExecError
from distutils.sysconfig import get_python_inc
from distutils.version import StrictVersion
-convert2to3 = '--c2to3' in sys.argv
-if convert2to3:
- try:
- from distutils.command.build_py import build_py_2to3 as build_py
- from lib2to3.refactor import get_fixers_from_package as getfixers
- except ImportError:
- if sys.version_info[0] < 3:
- raise SystemExit("--c2to3 is only compatible with python3.")
- raise
- sys.path.append('contrib')
-elif sys.version_info[0] >= 3:
- raise SystemExit("setup.py with python3 needs --c2to3 (experimental)")
-
scripts = ['hg']
if os.name == 'nt':
scripts.append('contrib/win32/hg.bat')
@@ -92,7 +94,7 @@ def hasfunction(cc, funcname):
os.dup2(devnull.fileno(), sys.stderr.fileno())
objects = cc.compile([fname], output_dir=tmpdir)
cc.link_executable(objects, os.path.join(tmpdir, "a.out"))
- except Exception:
+ except:
return False
return True
finally:
@@ -106,22 +108,14 @@ def hasfunction(cc, funcname):
try:
import py2exe
py2exeloaded = True
- # import py2exe's patched Distribution class
- from distutils.core import Distribution
except ImportError:
py2exeloaded = False
def runcmd(cmd, env):
- if sys.platform == 'plan9':
- # subprocess kludge to work around issues in half-baked Python
- # ports, notably bichued/python:
- _, out, err = os.popen3(cmd)
- return str(out), str(err)
- else:
- p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.PIPE, env=env)
- out, err = p.communicate()
- return out, err
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE, env=env)
+ out, err = p.communicate()
+ return out, err
def runhg(cmd, env):
out, err = runcmd(cmd, env)
@@ -139,22 +133,21 @@ def runhg(cmd, env):
version = ''
-# Execute hg out of this directory with a custom environment which
-# includes the pure Python modules in mercurial/pure. We also take
-# care to not use any hgrc files and do no localization.
-pypath = ['mercurial', os.path.join('mercurial', 'pure')]
-env = {'PYTHONPATH': os.pathsep.join(pypath),
- 'HGRCPATH': '',
- 'LANGUAGE': 'C'}
-if 'LD_LIBRARY_PATH' in os.environ:
- env['LD_LIBRARY_PATH'] = os.environ['LD_LIBRARY_PATH']
-if 'SystemRoot' in os.environ:
- # Copy SystemRoot into the custom environment for Python 2.6
- # under Windows. Otherwise, the subprocess will fail with
- # error 0xc0150004. See: http://bugs.python.org/issue3440
- env['SystemRoot'] = os.environ['SystemRoot']
-
if os.path.isdir('.hg'):
+ # Execute hg out of this directory with a custom environment which
+ # includes the pure Python modules in mercurial/pure. We also take
+ # care to not use any hgrc files and do no localization.
+ pypath = ['mercurial', os.path.join('mercurial', 'pure')]
+ env = {'PYTHONPATH': os.pathsep.join(pypath),
+ 'HGRCPATH': '',
+ 'LANGUAGE': 'C'}
+ if 'LD_LIBRARY_PATH' in os.environ:
+ env['LD_LIBRARY_PATH'] = os.environ['LD_LIBRARY_PATH']
+ if 'SystemRoot' in os.environ:
+ # Copy SystemRoot into the custom environment for Python 2.6
+ # under Windows. Otherwise, the subprocess will fail with
+ # error 0xc0150004. See: http://bugs.python.org/issue3440
+ env['SystemRoot'] = os.environ['SystemRoot']
cmd = [sys.executable, 'hg', 'id', '-i', '-t']
l = runhg(cmd, env).split()
while len(l) > 1 and l[-1][0].isalpha(): # remove non-numbered tags
@@ -192,19 +185,6 @@ try:
except ImportError:
version = 'unknown'
-class hgbuild(build):
- # Insert hgbuildmo first so that files in mercurial/locale/ are found
- # when build_py is run next.
- sub_commands = [('build_mo', None),
-
- # We also need build_ext before build_py. Otherwise, when 2to3 is
- # called (in build_py), it will not find osutil & friends,
- # thinking that those modules are global and, consequently, making
- # a mess, now that all module imports are global.
-
- ('build_ext', build.has_ext_modules),
- ] + build.sub_commands
-
class hgbuildmo(build):
description = "build translations (.mo files)"
@@ -236,20 +216,13 @@ class hgbuildmo(build):
self.make_file([pofile], mobuildfile, spawn, (cmd,))
-class hgdist(Distribution):
- pure = 0
+# Insert hgbuildmo first so that files in mercurial/locale/ are found
+# when build_py is run next.
+build.sub_commands.insert(0, ('build_mo', None))
- global_options = Distribution.global_options + \
- [('pure', None, "use pure (slow) Python "
- "code instead of C extensions"),
- ('c2to3', None, "(experimental!) convert "
- "code with 2to3"),
- ]
-
- def has_ext_modules(self):
- # self.ext_modules is emptied in hgbuildpy.finalize_options which is
- # too late for some cases
- return not self.pure and Distribution.has_ext_modules(self)
+Distribution.pure = 0
+Distribution.global_options.append(('pure', None, "use pure (slow) Python "
+ "code instead of C extensions"))
class hgbuildext(build_ext):
@@ -263,9 +236,6 @@ class hgbuildext(build_ext):
ext.name)
class hgbuildpy(build_py):
- if convert2to3:
- fixer_names = sorted(set(getfixers("lib2to3.fixes") +
- getfixers("hgfixes")))
def finalize_options(self):
build_py.finalize_options(self)
@@ -279,8 +249,7 @@ class hgbuildpy(build_py):
self.distribution.ext_modules = []
else:
if not os.path.exists(os.path.join(get_python_inc(), 'Python.h')):
- raise SystemExit('Python headers are required to build '
- 'Mercurial')
+ raise SystemExit("Python headers are required to build Mercurial")
def find_modules(self):
modules = build_py.find_modules(self)
@@ -319,25 +288,6 @@ class buildhgextindex(Command):
f.write(out)
f.close()
-class buildhgexe(build_ext):
- description = 'compile hg.exe from mercurial/exewrapper.c'
-
- def build_extensions(self):
- if os.name != 'nt':
- return
- if isinstance(self.compiler, HackedMingw32CCompiler):
- self.compiler.compiler_so = self.compiler.compiler # no -mdll
- self.compiler.dll_libraries = [] # no -lmsrvc90
- objects = self.compiler.compile(['mercurial/exewrapper.c'],
- output_dir=self.build_temp)
- dir = os.path.dirname(self.get_ext_fullpath('dummy'))
- target = os.path.join(dir, 'hg')
- pythonlib = ("python%d%d" %
- (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff))
- self.compiler.link_executable(objects, target,
- libraries=[pythonlib],
- output_dir=self.build_temp)
-
class hginstallscripts(install_scripts):
'''
This is a specialization of install_scripts that replaces the @LIBDIR@ with
@@ -376,7 +326,7 @@ class hginstallscripts(install_scripts):
fp.close()
# skip binary files
- if b('\0') in data:
+ if '\0' in data:
continue
data = data.replace('@LIBDIR@', libdir.encode('string_escape'))
@@ -384,18 +334,15 @@ class hginstallscripts(install_scripts):
fp.write(data)
fp.close()
-cmdclass = {'build': hgbuild,
- 'build_mo': hgbuildmo,
+cmdclass = {'build_mo': hgbuildmo,
'build_ext': hgbuildext,
'build_py': hgbuildpy,
'build_hgextindex': buildhgextindex,
- 'install_scripts': hginstallscripts,
- 'build_hgexe': buildhgexe,
- }
+ 'install_scripts': hginstallscripts}
-packages = ['mercurial', 'mercurial.hgweb', 'mercurial.httpclient',
- 'hgext', 'hgext.convert', 'hgext.highlight', 'hgext.zeroconf',
- 'hgext.largefiles']
+packages = ['mercurial', 'mercurial.hgweb',
+ 'mercurial.httpclient', 'mercurial.httpclient.tests',
+ 'hgext', 'hgext.convert', 'hgext.highlight', 'hgext.zeroconf']
pymodules = []
@@ -419,20 +366,6 @@ else:
extmodules.append(Extension('mercurial.osutil', ['mercurial/osutil.c'],
extra_link_args=osutil_ldflags))
-# the -mno-cygwin option has been deprecated for years
-Mingw32CCompiler = cygwinccompiler.Mingw32CCompiler
-
-class HackedMingw32CCompiler(cygwinccompiler.Mingw32CCompiler):
- def __init__(self, *args, **kwargs):
- Mingw32CCompiler.__init__(self, *args, **kwargs)
- for i in 'compiler compiler_so linker_exe linker_so'.split():
- try:
- getattr(self, i).remove('-mno-cygwin')
- except ValueError:
- pass
-
-cygwinccompiler.Mingw32CCompiler = HackedMingw32CCompiler
-
if sys.platform.startswith('linux') and os.uname()[2] > '2.6':
# The inotify extension is only usable with Linux 2.6 kernels.
# You also need a reasonably recent C library.
@@ -480,18 +413,10 @@ if os.name == 'nt':
if sys.platform == 'darwin' and os.path.exists('/usr/bin/xcodebuild'):
# XCode 4.0 dropped support for ppc architecture, which is hardcoded in
# distutils.sysconfig
- version = runcmd(['/usr/bin/xcodebuild', '-version'], {})[0].splitlines()
- if version:
- version = version[0]
- xcode4 = (version.startswith('Xcode') and
- StrictVersion(version.split()[1]) >= StrictVersion('4.0'))
- else:
- # xcodebuild returns empty on OS X Lion with XCode 4.3 not
- # installed, but instead with only command-line tools. Assume
- # that only happens on >= Lion, thus no PPC support.
- xcode4 = True
-
- if xcode4:
+ version = runcmd(['/usr/bin/xcodebuild', '-version'], {})[0].splitlines()[0]
+ # Also parse only first digit, because 3.2.1 can't be parsed nicely
+ if (version.startswith('Xcode') and
+ StrictVersion(version.split()[1]) >= StrictVersion('4.0')):
os.environ['ARCHFLAGS'] = ''
setup(name='mercurial',
@@ -508,7 +433,6 @@ setup(name='mercurial',
data_files=datafiles,
package_data=packagedata,
cmdclass=cmdclass,
- distclass=hgdist,
options=dict(py2exe=dict(packages=['hgext', 'email']),
bdist_mpkg=dict(zipdist=True,
license='COPYING',
diff --git a/tests/blacklists/linux-vfat b/tests/blacklists/linux-vfat
deleted file mode 100644
index 2812bf0..0000000
--- a/tests/blacklists/linux-vfat
+++ /dev/null
@@ -1,35 +0,0 @@
-# invalid filenames
-test-add.t
-test-init.t
-test-clone.t
-test-contrib.t
-test-hgweb-raw.t
-test-walk.t
-
-# no sockets or fifos
-test-hup.t
-test-inotify-debuginotify.t
-test-inotify-dirty-dirstate.t
-test-inotify-issue1208.t
-test-inotify-issue1371.t
-test-inotify-issue1542.t
-test-inotify-lookup.t
-test-inotify.t
-test-inotify-issue1556.t
-
-# no hardlinks
-test-hardlinks.t
-test-relink.t
-
-# exec bit problems
-test-convert-bzr-114.t
-test-convert-bzr-directories.t
-test-convert-bzr-merges.t
-test-convert-bzr-treeroot.t
-test-convert-darcs.t
-test-merge-tools.t
-
-# debugstate exec bit false positives
-test-dirstate.t
-test-filebranch.t
-test-merge-remove.t
diff --git a/tests/bundles/rebase-revset.hg b/tests/bundles/rebase-revset.hg
deleted file mode 100644
index 2a016a3..0000000
--- a/tests/bundles/rebase-revset.hg
+++ /dev/null
Binary files differ
diff --git a/tests/bundles/rename.sh b/tests/bundles/rename.sh
deleted file mode 100755
index f8eccf8..0000000
--- a/tests/bundles/rename.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-# @ 3: 'move2'
-# |
-# o 2: 'move1'
-# |
-# | o 1: 'change'
-# |/
-# o 0: 'add'
-
-hg init copies
-cd copies
-echo a > a
-echo b > b
-echo c > c
-hg ci -Am add
-echo a >> a
-echo b >> b
-echo c >> c
-hg ci -m change
-hg up -qC 0
-hg cp a d
-hg mv b e
-hg mv c f
-hg ci -m move1
-hg mv e g
-hg mv f c
-hg ci -m move2
-hg bundle -a ../renames.hg
-cd ..
diff --git a/tests/bundles/renames.hg b/tests/bundles/renames.hg
deleted file mode 100644
index 977a845..0000000
--- a/tests/bundles/renames.hg
+++ /dev/null
Binary files differ
diff --git a/tests/bzr-definitions b/tests/bzr-definitions
index 5e9895f..2899ada 100644
--- a/tests/bzr-definitions
+++ b/tests/bzr-definitions
@@ -9,7 +9,7 @@ echo 'hgext.graphlog = ' >> $HGRCPATH
glog()
{
- hg glog --template '{rev}@{branch} "{desc|firstline}" files: {files}\n' "$@"
+ hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
}
manifest()
diff --git a/tests/dummyssh b/tests/dummyssh
index 9b1430a..fc498b4 100755
--- a/tests/dummyssh
+++ b/tests/dummyssh
@@ -16,9 +16,5 @@ for i, arg in enumerate(sys.argv[1:]):
log.write(" %d:%s" % (i+1, arg))
log.write("\n")
log.close()
-hgcmd = sys.argv[2]
-if os.name == 'nt':
- # hack to make simple unix single quote quoting work on windows
- hgcmd = hgcmd.replace("'", '"')
-r = os.system(hgcmd)
+r = os.system(sys.argv[2])
sys.exit(bool(r))
diff --git a/tests/get-with-headers.py b/tests/get-with-headers.py
index 6d20dfc..0e2d6f5 100755
--- a/tests/get-with-headers.py
+++ b/tests/get-with-headers.py
@@ -21,14 +21,14 @@ reasons = {'Not modified': 'Not Modified'} # python 2.4
tag = None
def request(host, path, show):
- assert not path.startswith('/'), path
+
global tag
headers = {}
if tag:
headers['If-None-Match'] = tag
conn = httplib.HTTPConnection(host)
- conn.request("GET", '/' + path, None, headers)
+ conn.request("GET", path, None, headers)
response = conn.getresponse()
print response.status, reasons.get(response.reason, response.reason)
for h in [h.lower() for h in show]:
diff --git a/tests/heredoctest.py b/tests/heredoctest.py
deleted file mode 100644
index 7508c18..0000000
--- a/tests/heredoctest.py
+++ /dev/null
@@ -1,19 +0,0 @@
-import sys
-
-globalvars = {}
-localvars = {}
-lines = sys.stdin.readlines()
-while lines:
- l = lines.pop(0)
- if l.startswith('SALT'):
- print l[:-1]
- elif l.startswith('>>> '):
- snippet = l[4:]
- while lines and lines[0].startswith('... '):
- l = lines.pop(0)
- snippet += "\n" + l[4:]
- c = compile(snippet, '<heredoc>', 'single')
- try:
- exec c in globalvars, localvars
- except Exception, inst:
- print repr(inst)
diff --git a/tests/hghave b/tests/hghave
index dad1667..fd6e67c 100755
--- a/tests/hghave
+++ b/tests/hghave
@@ -4,10 +4,227 @@ if all features are there, non-zero otherwise. If a feature name is
prefixed with "no-", the absence of feature is tested.
"""
import optparse
+import os
+import re
import sys
-import hghave
+import tempfile
-checks = hghave.checks
+tempprefix = 'hg-hghave-'
+
+def matchoutput(cmd, regexp, ignorestatus=False):
+ """Return True if cmd executes successfully and its output
+ is matched by the supplied regular expression.
+ """
+ r = re.compile(regexp)
+ fh = os.popen(cmd)
+ s = fh.read()
+ try:
+ ret = fh.close()
+ except IOError:
+ # Happen in Windows test environment
+ ret = 1
+ return (ignorestatus or ret is None) and r.search(s)
+
+def has_baz():
+ return matchoutput('baz --version 2>&1', r'baz Bazaar version')
+
+def has_bzr():
+ try:
+ import bzrlib
+ return bzrlib.__doc__ != None
+ except ImportError:
+ return False
+
+def has_bzr114():
+ try:
+ import bzrlib
+ return (bzrlib.__doc__ != None
+ and bzrlib.version_info[:2] >= (1, 14))
+ except ImportError:
+ return False
+
+def has_cvs():
+ re = r'Concurrent Versions System.*?server'
+ return matchoutput('cvs --version 2>&1', re)
+
+def has_darcs():
+ return matchoutput('darcs --version', r'2\.[2-9]', True)
+
+def has_mtn():
+ return matchoutput('mtn --version', r'monotone', True) and not matchoutput(
+ 'mtn --version', r'monotone 0\.', True)
+
+def has_eol_in_paths():
+ try:
+ fd, path = tempfile.mkstemp(prefix=tempprefix, suffix='\n\r')
+ os.close(fd)
+ os.remove(path)
+ return True
+ except:
+ return False
+
+def has_executablebit():
+ fd, path = tempfile.mkstemp(prefix=tempprefix)
+ os.close(fd)
+ try:
+ s = os.lstat(path).st_mode
+ os.chmod(path, s | 0100)
+ return (os.lstat(path).st_mode & 0100 != 0)
+ finally:
+ os.remove(path)
+
+def has_icasefs():
+ # Stolen from mercurial.util
+ fd, path = tempfile.mkstemp(prefix=tempprefix, dir='.')
+ os.close(fd)
+ try:
+ s1 = os.stat(path)
+ d, b = os.path.split(path)
+ p2 = os.path.join(d, b.upper())
+ if path == p2:
+ p2 = os.path.join(d, b.lower())
+ try:
+ s2 = os.stat(p2)
+ return s2 == s1
+ except:
+ return False
+ finally:
+ os.remove(path)
+
+def has_inotify():
+ try:
+ import hgext.inotify.linux.watcher
+ return True
+ except ImportError:
+ return False
+
+def has_fifo():
+ return hasattr(os, "mkfifo")
+
+def has_lsprof():
+ try:
+ import _lsprof
+ return True
+ 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')
+
+def has_docutils():
+ try:
+ from docutils.core import publish_cmdline
+ return True
+ except ImportError:
+ return False
+
+def getsvnversion():
+ m = matchoutput('svn --version 2>&1', r'^svn,\s+version\s+(\d+)\.(\d+)')
+ if not m:
+ return (0, 0)
+ return (int(m.group(1)), int(m.group(2)))
+
+def has_svn15():
+ return getsvnversion() >= (1, 5)
+
+def has_svn():
+ return matchoutput('svn --version 2>&1', r'^svn, version') and \
+ matchoutput('svnadmin --version 2>&1', r'^svnadmin, version')
+
+def has_svn_bindings():
+ try:
+ import svn.core
+ version = svn.core.SVN_VER_MAJOR, svn.core.SVN_VER_MINOR
+ if version < (1, 4):
+ return False
+ return True
+ except ImportError:
+ return False
+
+def has_p4():
+ return matchoutput('p4 -V', r'Rev\. P4/') and matchoutput('p4d -V', r'Rev\. P4D/')
+
+def has_symlink():
+ return hasattr(os, "symlink")
+
+def has_tla():
+ return matchoutput('tla --version 2>&1', r'The GNU Arch Revision')
+
+def has_gpg():
+ return matchoutput('gpg --version 2>&1', r'GnuPG')
+
+def has_unix_permissions():
+ d = tempfile.mkdtemp(prefix=tempprefix, dir=".")
+ try:
+ fname = os.path.join(d, 'foo')
+ for umask in (077, 007, 022):
+ os.umask(umask)
+ f = open(fname, 'w')
+ f.close()
+ mode = os.stat(fname).st_mode
+ os.unlink(fname)
+ if mode & 0777 != ~umask & 0666:
+ return False
+ return True
+ finally:
+ os.rmdir(d)
+
+def has_pyflakes():
+ return matchoutput('echo "import re" 2>&1 | pyflakes',
+ r"<stdin>:1: 're' imported but unused",
+ True)
+
+def has_pygments():
+ try:
+ import pygments
+ return True
+ except ImportError:
+ return False
+
+def has_outer_repo():
+ return matchoutput('hg root 2>&1', r'')
+
+def has_ssl():
+ try:
+ import ssl
+ import OpenSSL
+ OpenSSL.SSL.Context
+ return True
+ except ImportError:
+ return False
+
+checks = {
+ "baz": (has_baz, "GNU Arch baz client"),
+ "bzr": (has_bzr, "Canonical's Bazaar client"),
+ "bzr114": (has_bzr114, "Canonical's Bazaar client >= 1.14"),
+ "cvs": (has_cvs, "cvs client/server"),
+ "darcs": (has_darcs, "darcs client"),
+ "docutils": (has_docutils, "Docutils text processing library"),
+ "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"),
+ "inotify": (has_inotify, "inotify extension support"),
+ "lsprof": (has_lsprof, "python lsprof module"),
+ "mtn": (has_mtn, "monotone client (>= 1.0)"),
+ "outer-repo": (has_outer_repo, "outer repo"),
+ "p4": (has_p4, "Perforce server and client"),
+ "pyflakes": (has_pyflakes, "Pyflakes python linter"),
+ "pygments": (has_pygments, "Pygments source highlighting library"),
+ "ssl": (has_ssl, "python >= 2.6 ssl module and python OpenSSL"),
+ "svn": (has_svn, "subversion client and admin tools"),
+ "svn15": (has_svn15, "subversion client and admin tools >= 1.5"),
+ "svn-bindings": (has_svn_bindings, "subversion python bindings"),
+ "symlink": (has_symlink, "symbolic links"),
+ "tla": (has_tla, "GNU Arch tla client"),
+ "unix-permissions": (has_unix_permissions, "unix-style permissions"),
+}
def list_features():
for name, feature in checks.iteritems():
diff --git a/tests/hghave.py b/tests/hghave.py
deleted file mode 100755
index 9b93ec5..0000000
--- a/tests/hghave.py
+++ /dev/null
@@ -1,308 +0,0 @@
-import os, stat, socket
-import re
-import sys
-import tempfile
-
-tempprefix = 'hg-hghave-'
-
-def matchoutput(cmd, regexp, ignorestatus=False):
- """Return True if cmd executes successfully and its output
- is matched by the supplied regular expression.
- """
- r = re.compile(regexp)
- fh = os.popen(cmd)
- s = fh.read()
- try:
- ret = fh.close()
- except IOError:
- # Happen in Windows test environment
- ret = 1
- return (ignorestatus or ret is None) and r.search(s)
-
-def has_baz():
- return matchoutput('baz --version 2>&1', r'baz Bazaar version')
-
-def has_bzr():
- try:
- import bzrlib
- return bzrlib.__doc__ is not None
- except ImportError:
- return False
-
-def has_bzr114():
- try:
- import bzrlib
- return (bzrlib.__doc__ is not None
- and bzrlib.version_info[:2] >= (1, 14))
- except ImportError:
- return False
-
-def has_cvs():
- re = r'Concurrent Versions System.*?server'
- return matchoutput('cvs --version 2>&1', re) and not has_msys()
-
-def has_darcs():
- return matchoutput('darcs --version', r'2\.[2-9]', True)
-
-def has_mtn():
- return matchoutput('mtn --version', r'monotone', True) and not matchoutput(
- 'mtn --version', r'monotone 0\.', True)
-
-def has_eol_in_paths():
- try:
- fd, path = tempfile.mkstemp(dir='.', prefix=tempprefix, suffix='\n\r')
- os.close(fd)
- os.remove(path)
- return True
- except (IOError, OSError):
- return False
-
-def has_executablebit():
- try:
- EXECFLAGS = stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH
- fh, fn = tempfile.mkstemp(dir='.', prefix=tempprefix)
- try:
- os.close(fh)
- m = os.stat(fn).st_mode & 0777
- new_file_has_exec = m & EXECFLAGS
- os.chmod(fn, m ^ EXECFLAGS)
- exec_flags_cannot_flip = ((os.stat(fn).st_mode & 0777) == m)
- finally:
- os.unlink(fn)
- except (IOError, OSError):
- # we don't care, the user probably won't be able to commit anyway
- return False
- return not (new_file_has_exec or exec_flags_cannot_flip)
-
-def has_icasefs():
- # Stolen from mercurial.util
- fd, path = tempfile.mkstemp(dir='.', prefix=tempprefix)
- os.close(fd)
- try:
- s1 = os.stat(path)
- d, b = os.path.split(path)
- p2 = os.path.join(d, b.upper())
- if path == p2:
- p2 = os.path.join(d, b.lower())
- try:
- s2 = os.stat(p2)
- return s2 == s1
- except OSError:
- return False
- finally:
- os.remove(path)
-
-def has_inotify():
- try:
- import hgext.inotify.linux.watcher
- except ImportError:
- return False
- name = tempfile.mktemp(dir='.', prefix=tempprefix)
- sock = socket.socket(socket.AF_UNIX)
- try:
- sock.bind(name)
- except socket.error, err:
- return False
- sock.close()
- os.unlink(name)
- return True
-
-def has_fifo():
- if getattr(os, "mkfifo", None) is None:
- return False
- name = tempfile.mktemp(dir='.', prefix=tempprefix)
- try:
- os.mkfifo(name)
- os.unlink(name)
- return True
- except OSError:
- return False
-
-def has_cacheable_fs():
- from mercurial import util
-
- fd, path = tempfile.mkstemp(dir='.', prefix=tempprefix)
- os.close(fd)
- try:
- return util.cachestat(path).cacheable()
- finally:
- os.remove(path)
-
-def has_lsprof():
- try:
- import _lsprof
- return True
- 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')
-
-def has_docutils():
- try:
- from docutils.core import publish_cmdline
- return True
- except ImportError:
- return False
-
-def getsvnversion():
- m = matchoutput('svn --version 2>&1', r'^svn,\s+version\s+(\d+)\.(\d+)')
- if not m:
- return (0, 0)
- return (int(m.group(1)), int(m.group(2)))
-
-def has_svn15():
- return getsvnversion() >= (1, 5)
-
-def has_svn13():
- return getsvnversion() >= (1, 3)
-
-def has_svn():
- return matchoutput('svn --version 2>&1', r'^svn, version') and \
- matchoutput('svnadmin --version 2>&1', r'^svnadmin, version')
-
-def has_svn_bindings():
- try:
- import svn.core
- version = svn.core.SVN_VER_MAJOR, svn.core.SVN_VER_MINOR
- if version < (1, 4):
- return False
- return True
- except ImportError:
- return False
-
-def has_p4():
- return (matchoutput('p4 -V', r'Rev\. P4/') and
- matchoutput('p4d -V', r'Rev\. P4D/'))
-
-def has_symlink():
- if getattr(os, "symlink", None) is None:
- return False
- name = tempfile.mktemp(dir='.', prefix=tempprefix)
- try:
- os.symlink(".", name)
- os.unlink(name)
- return True
- except (OSError, AttributeError):
- return False
-
-def has_hardlink():
- from mercurial import util
- fh, fn = tempfile.mkstemp(dir='.', prefix=tempprefix)
- os.close(fh)
- name = tempfile.mktemp(dir='.', prefix=tempprefix)
- try:
- try:
- util.oslink(fn, name)
- os.unlink(name)
- return True
- except OSError:
- return False
- finally:
- os.unlink(fn)
-
-def has_tla():
- return matchoutput('tla --version 2>&1', r'The GNU Arch Revision')
-
-def has_gpg():
- return matchoutput('gpg --version 2>&1', r'GnuPG')
-
-def has_unix_permissions():
- d = tempfile.mkdtemp(dir='.', prefix=tempprefix)
- try:
- fname = os.path.join(d, 'foo')
- for umask in (077, 007, 022):
- os.umask(umask)
- f = open(fname, 'w')
- f.close()
- mode = os.stat(fname).st_mode
- os.unlink(fname)
- if mode & 0777 != ~umask & 0666:
- return False
- return True
- finally:
- os.rmdir(d)
-
-def has_pyflakes():
- return matchoutput("sh -c \"echo 'import re' 2>&1 | pyflakes\"",
- r"<stdin>:1: 're' imported but unused",
- True)
-
-def has_pygments():
- try:
- import pygments
- return True
- except ImportError:
- return False
-
-def has_outer_repo():
- # failing for other reasons than 'no repo' imply that there is a repo
- return not matchoutput('hg root 2>&1',
- r'abort: no repository found', True)
-
-def has_ssl():
- try:
- import ssl
- import OpenSSL
- OpenSSL.SSL.Context
- return True
- except ImportError:
- return False
-
-def has_windows():
- return os.name == 'nt'
-
-def has_system_sh():
- return os.name != 'nt'
-
-def has_serve():
- return os.name != 'nt' # gross approximation
-
-def has_tic():
- return matchoutput('test -x "`which tic`"', '')
-
-def has_msys():
- return os.getenv('MSYSTEM')
-
-checks = {
- "true": (lambda: True, "yak shaving"),
- "false": (lambda: False, "nail clipper"),
- "baz": (has_baz, "GNU Arch baz client"),
- "bzr": (has_bzr, "Canonical's Bazaar client"),
- "bzr114": (has_bzr114, "Canonical's Bazaar client >= 1.14"),
- "cacheable": (has_cacheable_fs, "cacheable filesystem"),
- "cvs": (has_cvs, "cvs client/server"),
- "darcs": (has_darcs, "darcs client"),
- "docutils": (has_docutils, "Docutils text processing library"),
- "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"),
- "hardlink": (has_hardlink, "hardlinks"),
- "icasefs": (has_icasefs, "case insensitive file system"),
- "inotify": (has_inotify, "inotify extension support"),
- "lsprof": (has_lsprof, "python lsprof module"),
- "mtn": (has_mtn, "monotone client (>= 1.0)"),
- "outer-repo": (has_outer_repo, "outer repo"),
- "p4": (has_p4, "Perforce server and client"),
- "pyflakes": (has_pyflakes, "Pyflakes python linter"),
- "pygments": (has_pygments, "Pygments source highlighting library"),
- "serve": (has_serve, "platform and python can manage 'hg serve -d'"),
- "ssl": (has_ssl, "python >= 2.6 ssl module and python OpenSSL"),
- "svn": (has_svn, "subversion client and admin tools"),
- "svn13": (has_svn13, "subversion client and admin tools >= 1.3"),
- "svn15": (has_svn15, "subversion client and admin tools >= 1.5"),
- "svn-bindings": (has_svn_bindings, "subversion python bindings"),
- "symlink": (has_symlink, "symbolic links"),
- "system-sh": (has_system_sh, "system() uses sh"),
- "tic": (has_tic, "terminfo compiler"),
- "tla": (has_tla, "GNU Arch tla client"),
- "unix-permissions": (has_unix_permissions, "unix-style permissions"),
- "windows": (has_windows, "Windows"),
- "msys": (has_msys, "Windows with MSYS"),
-}
diff --git a/tests/histedit-helpers.sh b/tests/histedit-helpers.sh
deleted file mode 100644
index 4475883..0000000
--- a/tests/histedit-helpers.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-fixbundle() {
- grep -v 'saving bundle' | grep -v 'saved backup' | \
- grep -v added | grep -v adding | \
- grep -v "unable to find 'e' for patching" | \
- grep -v "e: No such file or directory"
-}
diff --git a/tests/missing-comment.hg b/tests/missing-comment.hg
deleted file mode 100644
index 7a5be69..0000000
--- a/tests/missing-comment.hg
+++ /dev/null
Binary files differ
diff --git a/tests/notcapable b/tests/notcapable
index ef8dc22..31c1858 100644
--- a/tests/notcapable
+++ b/tests/notcapable
@@ -6,18 +6,13 @@ then
fi
cat > notcapable-$CAP.py << EOF
-from mercurial import extensions, peer, localrepo
+from mercurial import extensions, repo
def extsetup():
- extensions.wrapfunction(peer.peerrepository, 'capable', wrapcapable)
- extensions.wrapfunction(localrepo.localrepository, 'peer', wrappeer)
-def wrapcapable(orig, self, name, *args, **kwargs):
+ extensions.wrapfunction(repo.repository, 'capable', wrapper)
+def wrapper(orig, self, name, *args, **kwargs):
if name in '$CAP'.split(' '):
return False
return orig(self, name, *args, **kwargs)
-def wrappeer(orig, self):
- # Since we're disabling some newer features, we need to make sure local
- # repos add in the legacy features again.
- return localrepo.locallegacypeer(self)
EOF
echo '[extensions]' >> $HGRCPATH
diff --git a/tests/printenv.py b/tests/printenv.py
index d00e149..befa546 100644
--- a/tests/printenv.py
+++ b/tests/printenv.py
@@ -3,7 +3,7 @@
# put something like this in the repo .hg/hgrc:
#
# [hooks]
-# changegroup = python "$TESTDIR/printenv.py" <hookname> [exit] [output]
+# changegroup = python "$TESTDIR"/printenv.py <hookname> [exit] [output]
#
# - <hookname> is a mandatory argument (e.g. "changegroup")
# - [exit] is the exit code of the hook (default: 0)
@@ -32,17 +32,13 @@ if len(sys.argv) > 2:
# variables with empty values may not exist on all platforms, filter
# them now for portability sake.
-env = [(k, v) for k, v in os.environ.iteritems()
+env = [k for k, v in os.environ.iteritems()
if k.startswith("HG_") and v]
env.sort()
out.write("%s hook: " % name)
-if os.name == 'nt':
- filter = lambda x: x.replace('\\', '/')
-else:
- filter = lambda x: x
-vars = ["%s=%s" % (k, filter(v)) for k, v in env]
-out.write(" ".join(vars))
+for v in env:
+ out.write("%s=%s " % (v, os.environ[v]))
out.write("\n")
out.close()
diff --git a/tests/run-tests.py b/tests/run-tests.py
index c9ef7d5..b9af4cb 100755
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -75,7 +75,7 @@ def Popen4(cmd, wd, timeout):
def t():
start = time.time()
while time.time() - start < timeout and p.returncode is None:
- time.sleep(.1)
+ time.sleep(1)
p.timeout = True
if p.returncode is None:
terminate(p)
@@ -87,7 +87,7 @@ def Popen4(cmd, wd, timeout):
SKIPPED_STATUS = 80
SKIPPED_PREFIX = 'skipped: '
FAILED_PREFIX = 'hghave check failed: '
-PYTHON = sys.executable.replace('\\', '/')
+PYTHON = sys.executable
IMPL_PATH = 'PYTHONPATH'
if 'java' in sys.platform:
IMPL_PATH = 'JYTHONPATH'
@@ -98,7 +98,7 @@ defaults = {
'jobs': ('HGTEST_JOBS', 1),
'timeout': ('HGTEST_TIMEOUT', 180),
'port': ('HGTEST_PORT', 20059),
- 'shell': ('HGTEST_SHELL', 'sh'),
+ 'shell': ('HGTEST_SHELL', '/bin/sh'),
}
def parselistfiles(files, listtype, warn=True):
@@ -141,8 +141,6 @@ def parseargs():
" rather than capturing and diff'ing it (disables timeout)")
parser.add_option("-f", "--first", action="store_true",
help="exit on the first test failure")
- parser.add_option("-H", "--htmlcov", action="store_true",
- help="create an HTML report of the coverage of the files")
parser.add_option("--inotify", action="store_true",
help="enable inotify extension when running tests")
parser.add_option("-i", "--interactive", action="store_true",
@@ -200,7 +198,6 @@ def parseargs():
options.pure = True
if options.with_hg:
- options.with_hg = os.path.expanduser(options.with_hg)
if not (os.path.isfile(options.with_hg) and
os.access(options.with_hg, os.X_OK)):
parser.error('--with-hg must specify an executable hg script')
@@ -209,12 +206,12 @@ def parseargs():
if options.local:
testdir = os.path.dirname(os.path.realpath(sys.argv[0]))
hgbin = os.path.join(os.path.dirname(testdir), 'hg')
- if os.name != 'nt' and not os.access(hgbin, os.X_OK):
+ if not os.access(hgbin, os.X_OK):
parser.error('--local specified, but %r not found or not executable'
% hgbin)
options.with_hg = hgbin
- options.anycoverage = options.cover or options.annotate or options.htmlcov
+ options.anycoverage = options.cover or options.annotate
if options.anycoverage:
try:
import coverage
@@ -343,7 +340,10 @@ def terminate(proc):
"""Terminate subprocess (with fallback for Python versions < 2.6)"""
vlog('# Terminating process %d' % proc.pid)
try:
- getattr(proc, 'terminate', lambda : os.kill(proc.pid, signal.SIGTERM))()
+ if hasattr(proc, 'terminate'):
+ proc.terminate()
+ else:
+ os.kill(proc.pid, signal.SIGTERM)
except OSError:
pass
@@ -360,7 +360,7 @@ def killdaemons():
os.kill(pid, 0)
vlog('# Killing daemon process %d' % pid)
os.kill(pid, signal.SIGTERM)
- time.sleep(0.1)
+ time.sleep(0.25)
os.kill(pid, 0)
vlog('# Daemon process %d is stuck - really killing it' % pid)
os.kill(pid, signal.SIGKILL)
@@ -496,11 +496,8 @@ def outputcoverage(options):
return
covrun('-c')
- omit = ','.join(os.path.join(x, '*') for x in [BINDIR, TESTDIR])
+ omit = ','.join([BINDIR, TESTDIR])
covrun('-i', '-r', '"--omit=%s"' % omit) # report
- if options.htmlcov:
- htmldir = os.path.join(TESTDIR, 'htmlcov')
- covrun('-i', '-b', '"--directory=%s"' % htmldir, '"--omit=%s"' % omit)
if options.annotate:
adir = os.path.join(TESTDIR, 'annotated')
if not os.path.isdir(adir):
@@ -514,7 +511,7 @@ def pytest(test, wd, options, replacements):
return run(cmd, wd, options, replacements)
def shtest(test, wd, options, replacements):
- cmd = '%s "%s"' % (options.shell, test)
+ cmd = '"%s"' % test
vlog("# Running", cmd)
return run(cmd, wd, options, replacements)
@@ -527,141 +524,23 @@ def escapef(m):
def stringescape(s):
return escapesub(escapef, s)
-def rematch(el, l):
- try:
- # ensure that the regex matches to the end of the string
- return re.match(el + r'\Z', l)
- except re.error:
- # el is an invalid regex
- return False
-
-def globmatch(el, l):
- # The only supported special characters are * and ? plus / which also
- # matches \ on windows. Escaping of these caracters is supported.
- i, n = 0, len(el)
- res = ''
- while i < n:
- c = el[i]
- i += 1
- if c == '\\' and el[i] in '*?\\/':
- res += el[i - 1:i + 1]
- i += 1
- elif c == '*':
- res += '.*'
- elif c == '?':
- res += '.'
- elif c == '/' and os.name == 'nt':
- res += '[/\\\\]'
- else:
- res += re.escape(c)
- return rematch(res, l)
-
-def linematch(el, l):
- if el == l: # perfect match (fast)
- return True
- if (el and
- (el.endswith(" (re)\n") and rematch(el[:-6] + '\n', l) or
- el.endswith(" (glob)\n") and globmatch(el[:-8] + '\n', l) or
- el.endswith(" (esc)\n") and
- (el[:-7].decode('string-escape') + '\n' == l or
- el[:-7].decode('string-escape').replace('\r', '') +
- '\n' == l and os.name == 'nt'))):
- return True
- return False
-
def tsttest(test, wd, options, replacements):
- # We generate a shell script which outputs unique markers to line
- # up script results with our source. These markers include input
- # line number and the last return code
+ t = open(test)
+ out = []
+ script = []
salt = "SALT" + str(time.time())
- def addsalt(line, inpython):
- if inpython:
- script.append('%s %d 0\n' % (salt, line))
- else:
- script.append('echo %s %s $?\n' % (salt, line))
- # After we run the shell script, we re-unify the script output
- # with non-active parts of the source, with synchronization by our
- # SALT line number markers. The after table contains the
- # non-active components, ordered by line number
- after = {}
pos = prepos = -1
-
- # Expected shellscript output
+ after = {}
expected = {}
-
- # We keep track of whether or not we're in a Python block so we
- # can generate the surrounding doctest magic
- inpython = False
-
- # True or False when in a true or false conditional section
- skipping = None
-
- def hghave(reqs):
- # TODO: do something smarter when all other uses of hghave is gone
- tdir = TESTDIR.replace('\\', '/')
- proc = Popen4('%s -c "%s/hghave %s"' %
- (options.shell, tdir, ' '.join(reqs)), wd, 0)
- proc.communicate()
- ret = proc.wait()
- if wifexited(ret):
- ret = os.WEXITSTATUS(ret)
- return ret == 0
-
- f = open(test)
- t = f.readlines()
- f.close()
-
- script = []
- if options.debug:
- script.append('set -x\n')
- if os.getenv('MSYSTEM'):
- script.append('alias pwd="pwd -W"\n')
for n, l in enumerate(t):
if not l.endswith('\n'):
l += '\n'
- if l.startswith('#if'):
- if skipping is not None:
- after.setdefault(pos, []).append(' !!! nested #if\n')
- skipping = not hghave(l.split()[1:])
- after.setdefault(pos, []).append(l)
- elif l.startswith('#else'):
- if skipping is None:
- after.setdefault(pos, []).append(' !!! missing #if\n')
- skipping = not skipping
- after.setdefault(pos, []).append(l)
- elif l.startswith('#endif'):
- if skipping is None:
- after.setdefault(pos, []).append(' !!! missing #if\n')
- skipping = None
- after.setdefault(pos, []).append(l)
- elif skipping:
- after.setdefault(pos, []).append(l)
- elif l.startswith(' >>> '): # python inlines
- after.setdefault(pos, []).append(l)
- prepos = pos
- pos = n
- if not inpython:
- # we've just entered a Python block, add the header
- inpython = True
- addsalt(prepos, False) # make sure we report the exit code
- script.append('%s -m heredoctest <<EOF\n' % PYTHON)
- addsalt(n, True)
- script.append(l[2:])
- elif l.startswith(' ... '): # python inlines
- after.setdefault(prepos, []).append(l)
- script.append(l[2:])
- elif l.startswith(' $ '): # commands
- if inpython:
- script.append("EOF\n")
- inpython = False
+ if l.startswith(' $ '): # commands
after.setdefault(pos, []).append(l)
prepos = pos
pos = n
- addsalt(n, False)
- cmd = l[4:].split()
- if len(cmd) == 2 and cmd[0] == 'cd':
- l = ' $ cd %s || exit 1\n' % cmd[1]
+ script.append('echo %s %s $?\n' % (salt, n))
script.append(l[4:])
elif l.startswith(' > '): # continuations
after.setdefault(prepos, []).append(l)
@@ -670,26 +549,21 @@ def tsttest(test, wd, options, replacements):
# queue up a list of expected results
expected.setdefault(pos, []).append(l[2:])
else:
- if inpython:
- script.append("EOF\n")
- inpython = False
# non-command/result - queue up for merged output
after.setdefault(pos, []).append(l)
- if inpython:
- script.append("EOF\n")
- if skipping is not None:
- after.setdefault(pos, []).append(' !!! missing #endif\n')
- addsalt(n + 1, False)
+ t.close()
+
+ script.append('echo %s %s $?\n' % (salt, n + 1))
- # Write out the script and execute it
fd, name = tempfile.mkstemp(suffix='hg-tst')
+
try:
for l in script:
os.write(fd, l)
os.close(fd)
- cmd = '%s "%s"' % (options.shell, name)
+ cmd = '"%s" "%s"' % (options.shell, name)
vlog("# Running", cmd)
exitcode, output = run(cmd, wd, options, replacements)
# do not merge output if skipped, return hghave message instead
@@ -699,7 +573,32 @@ def tsttest(test, wd, options, replacements):
finally:
os.remove(name)
- # Merge the script output back into a unified test
+ def rematch(el, l):
+ try:
+ # ensure that the regex matches to the end of the string
+ return re.match(el + r'\Z', l)
+ except re.error:
+ # el is an invalid regex
+ return False
+
+ def globmatch(el, l):
+ # The only supported special characters are * and ?. Escaping is
+ # supported.
+ i, n = 0, len(el)
+ res = ''
+ while i < n:
+ c = el[i]
+ i += 1
+ if c == '\\' and el[i] in '*?\\':
+ res += el[i - 1:i + 1]
+ i += 1
+ elif c == '*':
+ res += '.*'
+ elif c == '?':
+ res += '.'
+ else:
+ res += re.escape(c)
+ return rematch(res, l)
pos = -1
postout = []
@@ -711,16 +610,20 @@ def tsttest(test, wd, options, replacements):
if lout:
if lcmd:
- # output block had no trailing newline, clean up
lout += ' (no-eol)\n'
- # find the expected output at the current position
el = None
if pos in expected and expected[pos]:
el = expected[pos].pop(0)
- if linematch(el, lout):
- postout.append(" " + el)
+ if el == lout: # perfect match (fast)
+ postout.append(" " + lout)
+ elif (el and
+ (el.endswith(" (re)\n") and rematch(el[:-6] + '\n', lout) or
+ el.endswith(" (glob)\n") and globmatch(el[:-8] + '\n', lout)
+ or el.endswith(" (esc)\n") and
+ el.decode('string-escape') == l)):
+ postout.append(" " + el) # fallback regex/glob/esc match
else:
if needescape(lout):
lout = stringescape(lout.rstrip('\n')) + " (esc)\n"
@@ -732,7 +635,6 @@ def tsttest(test, wd, options, replacements):
if ret != 0:
postout.append(" [%s]\n" % ret)
if pos in after:
- # merge in non-active test bits
postout += after.pop(pos)
pos = int(lcmd.split()[0])
@@ -824,7 +726,6 @@ def runone(options, test):
rename(testpath + ".err", testpath)
else:
rename(testpath + ".err", testpath + ".out")
- result('p', test)
return
result('f', (test, msg))
@@ -896,7 +797,7 @@ def runone(options, test):
tf = open(testpath)
firstline = tf.readline().rstrip()
tf.close()
- except IOError:
+ except:
firstline = ''
lctest = test.lower()
@@ -915,24 +816,13 @@ def runone(options, test):
testtmp = os.environ["TESTTMP"] = os.environ["HOME"] = \
os.path.join(HGTMP, os.path.basename(test))
- replacements = [
+ os.mkdir(testtmp)
+ ret, out = runner(testpath, testtmp, options, [
+ (re.escape(testtmp), '$TESTTMP'),
(r':%s\b' % options.port, ':$HGPORT'),
(r':%s\b' % (options.port + 1), ':$HGPORT1'),
(r':%s\b' % (options.port + 2), ':$HGPORT2'),
- ]
- if os.name == 'nt':
- replacements.append((r'\r\n', '\n'))
- replacements.append(
- (''.join(c.isalpha() and '[%s%s]' % (c.lower(), c.upper()) or
- c in '/\\' and r'[/\\]' or
- c.isdigit() and c or
- '\\' + c
- for c in testtmp), '$TESTTMP'))
- else:
- replacements.append((re.escape(testtmp), '$TESTTMP'))
-
- os.mkdir(testtmp)
- ret, out = runner(testpath, testtmp, options, replacements)
+ ])
vlog("# Ret was:", ret)
mark = '.'
@@ -945,7 +835,7 @@ def runone(options, test):
refout = None # to match "out is None"
elif os.path.exists(ref):
f = open(ref, "r")
- refout = list(splitnewlines(f.read()))
+ refout = splitnewlines(f.read())
f.close()
else:
refout = []
@@ -1221,9 +1111,6 @@ def main():
os.environ['COLUMNS'] = '80'
os.environ['GREP_OPTIONS'] = ''
os.environ['http_proxy'] = ''
- os.environ['no_proxy'] = ''
- os.environ['NO_PROXY'] = ''
- os.environ['TERM'] = 'xterm'
# unset env related to hooks
for k in os.environ.keys():
@@ -1250,12 +1137,7 @@ def main():
#shutil.rmtree(tmpdir)
os.makedirs(tmpdir)
else:
- d = None
- if os.name == 'nt':
- # without this, we get the default temp dir location, but
- # in all lowercase, which causes troubles with paths (issue3490)
- d = os.getenv('TMP')
- tmpdir = tempfile.mkdtemp('', 'hgtests.', d)
+ tmpdir = tempfile.mkdtemp('', 'hgtests.')
HGTMP = os.environ['HGTMP'] = os.path.realpath(tmpdir)
DAEMON_PIDS = None
HGRCPATH = None
@@ -1317,7 +1199,7 @@ def main():
else:
runtests(options, tests)
finally:
- time.sleep(.1)
+ time.sleep(1)
cleanup(options)
if __name__ == '__main__':
diff --git a/tests/sitecustomize.py b/tests/sitecustomize.py
index 50d281f..b689d32 100644
--- a/tests/sitecustomize.py
+++ b/tests/sitecustomize.py
@@ -1,5 +1,6 @@
try:
import coverage
- getattr(coverage, 'process_startup', lambda: None)()
+ if hasattr(coverage, 'process_startup'):
+ coverage.process_startup()
except ImportError:
pass
diff --git a/tests/svn/empty.svndump b/tests/svn/empty.svndump
deleted file mode 100644
index 6bd513f..0000000
--- a/tests/svn/empty.svndump
+++ /dev/null
@@ -1,129 +0,0 @@
-SVN-fs-dump-format-version: 2
-
-UUID: b70c45d5-2b76-4722-a373-d9babae61626
-
-Revision-number: 0
-Prop-content-length: 260
-Content-length: 260
-
-K 8
-svn:date
-V 27
-2012-04-18T11:35:14.752409Z
-K 17
-svn:sync-from-url
-V 73
-file:///Users/pmezard/dev/hg/hg-pmezard/tests/svn/temp/svn-repo/trunk/dir
-K 18
-svn:sync-from-uuid
-V 36
-56625b9e-e7e9-45be-ab61-052d41f0e1dd
-K 24
-svn:sync-last-merged-rev
-V 1
-4
-PROPS-END
-
-Revision-number: 1
-Prop-content-length: 112
-Content-length: 112
-
-K 10
-svn:author
-V 7
-pmezard
-K 8
-svn:date
-V 27
-2012-04-18T11:35:14.769622Z
-K 7
-svn:log
-V 10
-init projA
-PROPS-END
-
-Node-path: trunk
-Node-kind: dir
-Node-action: add
-Prop-content-length: 10
-Content-length: 10
-
-PROPS-END
-
-
-Revision-number: 2
-Prop-content-length: 107
-Content-length: 107
-
-K 10
-svn:author
-V 7
-pmezard
-K 8
-svn:date
-V 27
-2012-04-18T11:35:15.052989Z
-K 7
-svn:log
-V 6
-adddir
-PROPS-END
-
-Node-path: trunk/dir
-Node-kind: dir
-Node-action: add
-Prop-content-length: 10
-Content-length: 10
-
-PROPS-END
-
-
-Node-path: trunk/dir/a
-Node-kind: file
-Node-action: add
-Prop-content-length: 10
-Text-content-length: 2
-Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3
-Text-content-sha1: 3f786850e387550fdab836ed7e6dc881de23001b
-Content-length: 12
-
-PROPS-END
-a
-
-
-Revision-number: 3
-Prop-content-length: 105
-Content-length: 105
-
-K 10
-svn:author
-V 7
-pmezard
-K 8
-svn:date
-V 27
-2012-04-18T11:35:16.050353Z
-K 7
-svn:log
-V 4
-addb
-PROPS-END
-
-Revision-number: 4
-Prop-content-length: 105
-Content-length: 105
-
-K 10
-svn:author
-V 7
-pmezard
-K 8
-svn:date
-V 27
-2012-04-18T11:35:17.050768Z
-K 7
-svn:log
-V 4
-addc
-PROPS-END
-
diff --git a/tests/svn/svndump-empty.sh b/tests/svn/svndump-empty.sh
deleted file mode 100755
index a4e96b2..0000000
--- a/tests/svn/svndump-empty.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-#
-# Use this script to generate empty.svndump
-#
-
-mkdir temp
-cd temp
-
-mkdir project-orig
-cd project-orig
-mkdir trunk
-mkdir branches
-mkdir tags
-cd ..
-
-svnadmin create svn-repo
-svnurl=file://`pwd`/svn-repo
-svn import project-orig $svnurl -m "init projA"
-
-svn co $svnurl project
-cd project
-mkdir trunk/dir
-echo a > trunk/dir/a
-svn add trunk/dir
-svn ci -m adddir
-
-echo b > trunk/b
-svn add trunk/b
-svn ci -m addb
-
-echo c > c
-svn add c
-svn ci -m addc
-cd ..
-
-# svnsync repo/trunk/dir only so the last two revisions are empty
-svnadmin create svn-empty
-cat > svn-empty/hooks/pre-revprop-change <<EOF
-#!/bin/sh
-exit 0
-EOF
-chmod +x svn-empty/hooks/pre-revprop-change
-svnsync init --username svnsync file://`pwd`/svn-empty file://`pwd`/svn-repo/trunk/dir
-svnsync sync file://`pwd`/svn-empty
-svn log -v file://`pwd`/svn-empty
-
-svnadmin dump svn-empty > ../empty.svndump
diff --git a/tests/svnxml.py b/tests/svnxml.py
deleted file mode 100644
index b3b2b63..0000000
--- a/tests/svnxml.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# Read the output of a "svn log --xml" command on stdin, parse it and
-# print a subset of attributes common to all svn versions tested by
-# hg.
-import xml.dom.minidom, sys
-
-def xmltext(e):
- return ''.join(c.data for c
- in e.childNodes
- if c.nodeType == c.TEXT_NODE)
-
-def parseentry(entry):
- e = {}
- e['revision'] = entry.getAttribute('revision')
- e['author'] = xmltext(entry.getElementsByTagName('author')[0])
- e['msg'] = xmltext(entry.getElementsByTagName('msg')[0])
- e['paths'] = []
- paths = entry.getElementsByTagName('paths')
- if paths:
- paths = paths[0]
- for p in paths.getElementsByTagName('path'):
- action = p.getAttribute('action')
- path = xmltext(p)
- frompath = p.getAttribute('copyfrom-path')
- fromrev = p.getAttribute('copyfrom-rev')
- e['paths'].append((path, action, frompath, fromrev))
- return e
-
-def parselog(data):
- entries = []
- doc = xml.dom.minidom.parseString(data)
- for e in doc.getElementsByTagName('logentry'):
- entries.append(parseentry(e))
- return entries
-
-def printentries(entries):
- fp = sys.stdout
- for e in entries:
- for k in ('revision', 'author', 'msg'):
- fp.write(('%s: %s\n' % (k, e[k])).encode('utf-8'))
- for path, action, fpath, frev in sorted(e['paths']):
- frominfo = ''
- if frev:
- frominfo = ' (from %s@%s)' % (fpath, frev)
- p = ' %s %s%s\n' % (action, path, frominfo)
- fp.write(p.encode('utf-8'))
-
-if __name__ == '__main__':
- data = sys.stdin.read()
- entries = parselog(data)
- printentries(entries)
-
diff --git a/tests/test-1102.t b/tests/test-1102.t
index 61e01e5..9d499aa 100644
--- a/tests/test-1102.t
+++ b/tests/test-1102.t
@@ -14,4 +14,3 @@
tip 3:a49829c4fc11
t1 0:f7b1eb17ad24
- $ cd ..
diff --git a/tests/test-1993.t b/tests/test-1993.t
index 317cba2..ddf7554 100644
--- a/tests/test-1993.t
+++ b/tests/test-1993.t
@@ -44,5 +44,3 @@
date: Thu Jan 01 00:00:00 1970 +0000
summary: Added tag default for changeset f7b1eb17ad24
-
- $ cd ..
diff --git a/tests/test-586.t b/tests/test-586.t
index 71b3cbf..399eebb 100644
--- a/tests/test-586.t
+++ b/tests/test-586.t
@@ -89,4 +89,3 @@ move b content
src/b
tst/a
- $ cd ..
diff --git a/tests/test-abort-checkin.t b/tests/test-abort-checkin.t
index c7a3c98..08a138a 100644
--- a/tests/test-abort-checkin.t
+++ b/tests/test-abort-checkin.t
@@ -31,5 +31,3 @@ called and .hg/journal.dirstate will not be deleted:
rollback completed
abort: no commits allowed
[255]
-
- $ cd ..
diff --git a/tests/test-acl.t b/tests/test-acl.t
index 6105d5d..04680a6 100644
--- a/tests/test-acl.t
+++ b/tests/test-acl.t
@@ -70,6 +70,9 @@
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ echo '[extensions]' >> $HGRCPATH
+ $ echo 'acl =' >> $HGRCPATH
+
$ config=b/.hg/hgrc
Extension disabled for lack of a hook
@@ -82,7 +85,6 @@ Extension disabled for lack of a hook
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -116,12 +118,10 @@ Extension disabled for lack of a hook
adding quux/file.py revisions
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
- listing keys for "phases"
- try to push obsolete markers to remote
updating the branch cache
checking for updated bookmarks
- listing keys for "bookmarks"
repository tip rolled back to revision 0 (undo push)
+ working directory now based on revision 0
0:6675d58eff77
@@ -141,7 +141,6 @@ Extension disabled for lack of acl.sources
searching for changes
all remote heads known locally
invalidating branch cache (tip differs)
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -177,12 +176,10 @@ Extension disabled for lack of acl.sources
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
acl: changes have source "push" - skipping
- listing keys for "phases"
- try to push obsolete markers to remote
updating the branch cache
checking for updated bookmarks
- listing keys for "bookmarks"
repository tip rolled back to revision 0 (undo push)
+ working directory now based on revision 0
0:6675d58eff77
@@ -203,7 +200,6 @@ No [acl.allow]/[acl.deny]
searching for changes
all remote heads known locally
invalidating branch cache (tip differs)
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -238,23 +234,20 @@ No [acl.allow]/[acl.deny]
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "fred"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow not enabled
acl: acl.deny not enabled
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- acl: path access granted: "911600dab2ae"
- listing keys for "phases"
- try to push obsolete markers to remote
+ acl: allowing changeset 911600dab2ae
updating the branch cache
checking for updated bookmarks
- listing keys for "bookmarks"
repository tip rolled back to revision 0 (undo push)
+ working directory now based on revision 0
0:6675d58eff77
@@ -275,7 +268,6 @@ Empty [acl.allow]
searching for changes
all remote heads known locally
invalidating branch cache (tip differs)
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -310,16 +302,16 @@ Empty [acl.allow]
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "fred"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 0 entries for user fred
acl: acl.deny not enabled
acl: branch access granted: "ef1ea85a6374" on branch "default"
- error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+ acl: user fred not allowed on foo/file.txt
+ error: pretxnchangegroup.acl hook failed: acl: access denied for changeset ef1ea85a6374
transaction abort!
rollback completed
- abort: acl: user "fred" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+ abort: acl: access denied for changeset ef1ea85a6374
no rollback information available
0:6675d58eff77
@@ -341,7 +333,6 @@ fred is allowed inside foo/
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -376,20 +367,20 @@ fred is allowed inside foo/
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "fred"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 1 entries for user fred
acl: acl.deny not enabled
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
+ acl: user fred not allowed on quux/file.py
+ error: pretxnchangegroup.acl hook failed: acl: access denied for changeset 911600dab2ae
transaction abort!
rollback completed
- abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
+ abort: acl: access denied for changeset 911600dab2ae
no rollback information available
0:6675d58eff77
@@ -412,7 +403,6 @@ Empty [acl.deny]
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -447,16 +437,16 @@ Empty [acl.deny]
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "barney"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 0 entries for user barney
acl: acl.deny enabled, 0 entries for user barney
acl: branch access granted: "ef1ea85a6374" on branch "default"
- error: pretxnchangegroup.acl hook failed: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+ acl: user barney not allowed on foo/file.txt
+ error: pretxnchangegroup.acl hook failed: acl: access denied for changeset ef1ea85a6374
transaction abort!
rollback completed
- abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+ abort: acl: access denied for changeset ef1ea85a6374
no rollback information available
0:6675d58eff77
@@ -480,7 +470,6 @@ fred is allowed inside foo/, but not foo/bar/ (case matters)
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -515,20 +504,20 @@ fred is allowed inside foo/, but not foo/bar/ (case matters)
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "fred"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 1 entries for user fred
acl: acl.deny enabled, 1 entries for user fred
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
+ acl: user fred not allowed on quux/file.py
+ error: pretxnchangegroup.acl hook failed: acl: access denied for changeset 911600dab2ae
transaction abort!
rollback completed
- abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
+ abort: acl: access denied for changeset 911600dab2ae
no rollback information available
0:6675d58eff77
@@ -553,7 +542,6 @@ fred is allowed inside foo/, but not foo/Bar/
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -588,18 +576,18 @@ fred is allowed inside foo/, but not foo/Bar/
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "fred"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 1 entries for user fred
acl: acl.deny enabled, 2 entries for user fred
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+ acl: user fred denied on foo/Bar/file.txt
+ error: pretxnchangegroup.acl hook failed: acl: access denied for changeset f9cafe1212c8
transaction abort!
rollback completed
- abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+ abort: acl: access denied for changeset f9cafe1212c8
no rollback information available
0:6675d58eff77
@@ -623,7 +611,6 @@ fred is allowed inside foo/, but not foo/Bar/
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -658,16 +645,16 @@ fred is allowed inside foo/, but not foo/Bar/
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "barney"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 0 entries for user barney
acl: acl.deny enabled, 0 entries for user barney
acl: branch access granted: "ef1ea85a6374" on branch "default"
- error: pretxnchangegroup.acl hook failed: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+ acl: user barney not allowed on foo/file.txt
+ error: pretxnchangegroup.acl hook failed: acl: access denied for changeset ef1ea85a6374
transaction abort!
rollback completed
- abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+ abort: acl: access denied for changeset ef1ea85a6374
no rollback information available
0:6675d58eff77
@@ -695,7 +682,6 @@ barney is allowed everywhere
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -730,23 +716,20 @@ barney is allowed everywhere
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "barney"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 1 entries for user barney
acl: acl.deny enabled, 0 entries for user barney
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- acl: path access granted: "911600dab2ae"
- listing keys for "phases"
- try to push obsolete markers to remote
+ acl: allowing changeset 911600dab2ae
updating the branch cache
checking for updated bookmarks
- listing keys for "bookmarks"
repository tip rolled back to revision 0 (undo push)
+ working directory now based on revision 0
0:6675d58eff77
@@ -774,7 +757,6 @@ wilma can change files with a .txt extension
searching for changes
all remote heads known locally
invalidating branch cache (tip differs)
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -809,20 +791,20 @@ wilma can change files with a .txt extension
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "wilma"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 1 entries for user wilma
acl: acl.deny enabled, 0 entries for user wilma
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- error: pretxnchangegroup.acl hook failed: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae")
+ acl: user wilma not allowed on quux/file.py
+ error: pretxnchangegroup.acl hook failed: acl: access denied for changeset 911600dab2ae
transaction abort!
rollback completed
- abort: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae")
+ abort: acl: access denied for changeset 911600dab2ae
no rollback information available
0:6675d58eff77
@@ -853,7 +835,6 @@ file specified by acl.config does not exist
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -888,11 +869,10 @@ file specified by acl.config does not exist
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "barney"
- error: pretxnchangegroup.acl hook raised an exception: [Errno 2] *: '../acl.config' (glob)
+ error: pretxnchangegroup.acl hook raised an exception: [Errno 2] No such file or directory: '../acl.config'
transaction abort!
rollback completed
- abort: *: ../acl.config (glob)
+ abort: No such file or directory: ../acl.config
no rollback information available
0:6675d58eff77
@@ -927,7 +907,6 @@ betty is allowed inside foo/ by a acl.config file
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -962,20 +941,20 @@ betty is allowed inside foo/ by a acl.config file
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "betty"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 1 entries for user betty
acl: acl.deny enabled, 0 entries for user betty
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- error: pretxnchangegroup.acl hook failed: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae")
+ acl: user betty not allowed on quux/file.py
+ error: pretxnchangegroup.acl hook failed: acl: access denied for changeset 911600dab2ae
transaction abort!
rollback completed
- abort: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae")
+ abort: acl: access denied for changeset 911600dab2ae
no rollback information available
0:6675d58eff77
@@ -1012,7 +991,6 @@ acl.config can set only [acl.allow]/[acl.deny]
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1047,23 +1025,20 @@ acl.config can set only [acl.allow]/[acl.deny]
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "barney"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 1 entries for user barney
acl: acl.deny enabled, 0 entries for user barney
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- acl: path access granted: "911600dab2ae"
- listing keys for "phases"
- try to push obsolete markers to remote
+ acl: allowing changeset 911600dab2ae
updating the branch cache
checking for updated bookmarks
- listing keys for "bookmarks"
repository tip rolled back to revision 0 (undo push)
+ working directory now based on revision 0
0:6675d58eff77
@@ -1092,7 +1067,6 @@ fred is always allowed
searching for changes
all remote heads known locally
invalidating branch cache (tip differs)
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1127,23 +1101,20 @@ fred is always allowed
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "fred"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 1 entries for user fred
acl: acl.deny not enabled
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- acl: path access granted: "911600dab2ae"
- listing keys for "phases"
- try to push obsolete markers to remote
+ acl: allowing changeset 911600dab2ae
updating the branch cache
checking for updated bookmarks
- listing keys for "bookmarks"
repository tip rolled back to revision 0 (undo push)
+ working directory now based on revision 0
0:6675d58eff77
@@ -1168,7 +1139,6 @@ no one is allowed inside foo/Bar/
searching for changes
all remote heads known locally
invalidating branch cache (tip differs)
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1203,18 +1173,18 @@ no one is allowed inside foo/Bar/
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "fred"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow enabled, 1 entries for user fred
acl: acl.deny enabled, 1 entries for user fred
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+ acl: user fred denied on foo/Bar/file.txt
+ error: pretxnchangegroup.acl hook failed: acl: access denied for changeset f9cafe1212c8
transaction abort!
rollback completed
- abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+ abort: acl: access denied for changeset f9cafe1212c8
no rollback information available
0:6675d58eff77
@@ -1243,7 +1213,6 @@ OS-level groups
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1278,24 +1247,21 @@ OS-level groups
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "fred"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: "group1" not defined in [acl.groups]
acl: acl.allow enabled, 1 entries for user fred
acl: acl.deny not enabled
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- acl: path access granted: "911600dab2ae"
- listing keys for "phases"
- try to push obsolete markers to remote
+ acl: allowing changeset 911600dab2ae
updating the branch cache
checking for updated bookmarks
- listing keys for "bookmarks"
repository tip rolled back to revision 0 (undo push)
+ working directory now based on revision 0
0:6675d58eff77
@@ -1320,7 +1286,6 @@ OS-level groups
searching for changes
all remote heads known locally
invalidating branch cache (tip differs)
- listing keys for "bookmarks"
3 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1355,7 +1320,6 @@ OS-level groups
files: 3/3 chunks (100.00%)
added 3 changesets with 3 changes to 3 files
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "fred"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: "group1" not defined in [acl.groups]
@@ -1363,12 +1327,13 @@ OS-level groups
acl: "group1" not defined in [acl.groups]
acl: acl.deny enabled, 1 entries for user fred
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+ acl: user fred denied on foo/Bar/file.txt
+ error: pretxnchangegroup.acl hook failed: acl: access denied for changeset f9cafe1212c8
transaction abort!
rollback completed
- abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+ abort: acl: access denied for changeset f9cafe1212c8
no rollback information available
0:6675d58eff77
@@ -1396,7 +1361,6 @@ Branch acl tests setup
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch foobar
marked working directory as branch foobar
- (branches are permanent and global, did you want a bookmark?)
$ hg commit -m 'create foobar'
$ echo 'foo contents' > abc.txt
$ hg add abc.txt
@@ -1434,7 +1398,6 @@ No branch acls specified
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
4 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1478,25 +1441,22 @@ No branch acls specified
files: 4/4 chunks (100.00%)
added 4 changesets with 4 changes to 4 files (+1 heads)
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "astro"
acl: acl.allow.branches not enabled
acl: acl.deny.branches not enabled
acl: acl.allow not enabled
acl: acl.deny not enabled
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- acl: path access granted: "911600dab2ae"
+ acl: allowing changeset 911600dab2ae
acl: branch access granted: "e8fc755d4d82" on branch "foobar"
- acl: path access granted: "e8fc755d4d82"
- listing keys for "phases"
- try to push obsolete markers to remote
+ acl: allowing changeset e8fc755d4d82
updating the branch cache
checking for updated bookmarks
- listing keys for "bookmarks"
repository tip rolled back to revision 2 (undo push)
+ working directory now based on revision 2
2:fb35475503ef
@@ -1518,7 +1478,6 @@ Branch acl deny test
searching for changes
all remote heads known locally
invalidating branch cache (tip differs)
- listing keys for "bookmarks"
4 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1562,17 +1521,16 @@ Branch acl deny test
files: 4/4 chunks (100.00%)
added 4 changesets with 4 changes to 4 files (+1 heads)
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "astro"
acl: acl.allow.branches not enabled
acl: acl.deny.branches enabled, 1 entries for user astro
acl: acl.allow not enabled
acl: acl.deny not enabled
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- acl: path access granted: "911600dab2ae"
+ acl: allowing changeset 911600dab2ae
error: pretxnchangegroup.acl hook failed: acl: user "astro" denied on branch "foobar" (changeset "e8fc755d4d82")
transaction abort!
rollback completed
@@ -1597,7 +1555,6 @@ Branch acl empty allow test
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
4 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1641,7 +1598,6 @@ Branch acl empty allow test
files: 4/4 chunks (100.00%)
added 4 changesets with 4 changes to 4 files (+1 heads)
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "astro"
acl: acl.allow.branches enabled, 0 entries for user astro
acl: acl.deny.branches not enabled
acl: acl.allow not enabled
@@ -1672,7 +1628,6 @@ Branch acl allow other
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
4 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1716,7 +1671,6 @@ Branch acl allow other
files: 4/4 chunks (100.00%)
added 4 changesets with 4 changes to 4 files (+1 heads)
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "astro"
acl: acl.allow.branches enabled, 0 entries for user astro
acl: acl.deny.branches not enabled
acl: acl.allow not enabled
@@ -1741,7 +1695,6 @@ Branch acl allow other
query 1; heads
searching for changes
all remote heads known locally
- listing keys for "bookmarks"
4 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1785,25 +1738,22 @@ Branch acl allow other
files: 4/4 chunks (100.00%)
added 4 changesets with 4 changes to 4 files (+1 heads)
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "george"
acl: acl.allow.branches enabled, 1 entries for user george
acl: acl.deny.branches not enabled
acl: acl.allow not enabled
acl: acl.deny not enabled
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- acl: path access granted: "911600dab2ae"
+ acl: allowing changeset 911600dab2ae
acl: branch access granted: "e8fc755d4d82" on branch "foobar"
- acl: path access granted: "e8fc755d4d82"
- listing keys for "phases"
- try to push obsolete markers to remote
+ acl: allowing changeset e8fc755d4d82
updating the branch cache
checking for updated bookmarks
- listing keys for "bookmarks"
repository tip rolled back to revision 2 (undo push)
+ working directory now based on revision 2
2:fb35475503ef
@@ -1830,7 +1780,6 @@ push foobar into the remote
searching for changes
all remote heads known locally
invalidating branch cache (tip differs)
- listing keys for "bookmarks"
4 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1874,25 +1823,22 @@ push foobar into the remote
files: 4/4 chunks (100.00%)
added 4 changesets with 4 changes to 4 files (+1 heads)
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "george"
acl: acl.allow.branches enabled, 1 entries for user george
acl: acl.deny.branches not enabled
acl: acl.allow not enabled
acl: acl.deny not enabled
acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
+ acl: allowing changeset ef1ea85a6374
acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
+ acl: allowing changeset f9cafe1212c8
acl: branch access granted: "911600dab2ae" on branch "default"
- acl: path access granted: "911600dab2ae"
+ acl: allowing changeset 911600dab2ae
acl: branch access granted: "e8fc755d4d82" on branch "foobar"
- acl: path access granted: "e8fc755d4d82"
- listing keys for "phases"
- try to push obsolete markers to remote
+ acl: allowing changeset e8fc755d4d82
updating the branch cache
checking for updated bookmarks
- listing keys for "bookmarks"
repository tip rolled back to revision 2 (undo push)
+ working directory now based on revision 2
2:fb35475503ef
Branch acl conflicting deny
@@ -1918,7 +1864,6 @@ Branch acl conflicting deny
searching for changes
all remote heads known locally
invalidating branch cache (tip differs)
- listing keys for "bookmarks"
4 changesets found
list of changesets:
ef1ea85a6374b77d6da9dcda9541f498f2d17df7
@@ -1962,7 +1907,6 @@ Branch acl conflicting deny
files: 4/4 chunks (100.00%)
added 4 changesets with 4 changes to 4 files (+1 heads)
calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "george"
acl: acl.allow.branches not enabled
acl: acl.deny.branches enabled, 1 entries for user george
acl: acl.allow not enabled
@@ -1974,160 +1918,3 @@ Branch acl conflicting deny
no rollback information available
2:fb35475503ef
-User 'astro' must not be denied
-
- $ init_config
- $ echo "[acl.deny.branches]" >> $config
- $ echo "default = !astro" >> $config
- $ do_push astro
- Pushing as user astro
- hgrc = """
- [acl]
- sources = push
- [extensions]
- [acl.deny.branches]
- default = !astro
- """
- pushing to ../b
- query 1; heads
- searching for changes
- all remote heads known locally
- listing keys for "bookmarks"
- 4 changesets found
- list of changesets:
- ef1ea85a6374b77d6da9dcda9541f498f2d17df7
- f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
- 911600dab2ae7a9baff75958b84fe606851ce955
- e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
- adding changesets
- bundling: 1/4 changesets (25.00%)
- bundling: 2/4 changesets (50.00%)
- bundling: 3/4 changesets (75.00%)
- bundling: 4/4 changesets (100.00%)
- bundling: 1/4 manifests (25.00%)
- bundling: 2/4 manifests (50.00%)
- bundling: 3/4 manifests (75.00%)
- bundling: 4/4 manifests (100.00%)
- bundling: abc.txt 1/4 files (25.00%)
- bundling: foo/Bar/file.txt 2/4 files (50.00%)
- bundling: foo/file.txt 3/4 files (75.00%)
- bundling: quux/file.py 4/4 files (100.00%)
- changesets: 1 chunks
- add changeset ef1ea85a6374
- changesets: 2 chunks
- add changeset f9cafe1212c8
- changesets: 3 chunks
- add changeset 911600dab2ae
- changesets: 4 chunks
- add changeset e8fc755d4d82
- adding manifests
- manifests: 1/4 chunks (25.00%)
- manifests: 2/4 chunks (50.00%)
- manifests: 3/4 chunks (75.00%)
- manifests: 4/4 chunks (100.00%)
- adding file changes
- adding abc.txt revisions
- files: 1/4 chunks (25.00%)
- adding foo/Bar/file.txt revisions
- files: 2/4 chunks (50.00%)
- adding foo/file.txt revisions
- files: 3/4 chunks (75.00%)
- adding quux/file.py revisions
- files: 4/4 chunks (100.00%)
- added 4 changesets with 4 changes to 4 files (+1 heads)
- calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "astro"
- acl: acl.allow.branches not enabled
- acl: acl.deny.branches enabled, 0 entries for user astro
- acl: acl.allow not enabled
- acl: acl.deny not enabled
- acl: branch access granted: "ef1ea85a6374" on branch "default"
- acl: path access granted: "ef1ea85a6374"
- acl: branch access granted: "f9cafe1212c8" on branch "default"
- acl: path access granted: "f9cafe1212c8"
- acl: branch access granted: "911600dab2ae" on branch "default"
- acl: path access granted: "911600dab2ae"
- acl: branch access granted: "e8fc755d4d82" on branch "foobar"
- acl: path access granted: "e8fc755d4d82"
- listing keys for "phases"
- try to push obsolete markers to remote
- updating the branch cache
- checking for updated bookmarks
- listing keys for "bookmarks"
- repository tip rolled back to revision 2 (undo push)
- 2:fb35475503ef
-
-
-Non-astro users must be denied
-
- $ do_push george
- Pushing as user george
- hgrc = """
- [acl]
- sources = push
- [extensions]
- [acl.deny.branches]
- default = !astro
- """
- pushing to ../b
- query 1; heads
- searching for changes
- all remote heads known locally
- invalidating branch cache (tip differs)
- listing keys for "bookmarks"
- 4 changesets found
- list of changesets:
- ef1ea85a6374b77d6da9dcda9541f498f2d17df7
- f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
- 911600dab2ae7a9baff75958b84fe606851ce955
- e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
- adding changesets
- bundling: 1/4 changesets (25.00%)
- bundling: 2/4 changesets (50.00%)
- bundling: 3/4 changesets (75.00%)
- bundling: 4/4 changesets (100.00%)
- bundling: 1/4 manifests (25.00%)
- bundling: 2/4 manifests (50.00%)
- bundling: 3/4 manifests (75.00%)
- bundling: 4/4 manifests (100.00%)
- bundling: abc.txt 1/4 files (25.00%)
- bundling: foo/Bar/file.txt 2/4 files (50.00%)
- bundling: foo/file.txt 3/4 files (75.00%)
- bundling: quux/file.py 4/4 files (100.00%)
- changesets: 1 chunks
- add changeset ef1ea85a6374
- changesets: 2 chunks
- add changeset f9cafe1212c8
- changesets: 3 chunks
- add changeset 911600dab2ae
- changesets: 4 chunks
- add changeset e8fc755d4d82
- adding manifests
- manifests: 1/4 chunks (25.00%)
- manifests: 2/4 chunks (50.00%)
- manifests: 3/4 chunks (75.00%)
- manifests: 4/4 chunks (100.00%)
- adding file changes
- adding abc.txt revisions
- files: 1/4 chunks (25.00%)
- adding foo/Bar/file.txt revisions
- files: 2/4 chunks (50.00%)
- adding foo/file.txt revisions
- files: 3/4 chunks (75.00%)
- adding quux/file.py revisions
- files: 4/4 chunks (100.00%)
- added 4 changesets with 4 changes to 4 files (+1 heads)
- calling hook pretxnchangegroup.acl: hgext.acl.hook
- acl: checking access for user "george"
- acl: acl.allow.branches not enabled
- acl: acl.deny.branches enabled, 1 entries for user george
- acl: acl.allow not enabled
- acl: acl.deny not enabled
- error: pretxnchangegroup.acl hook failed: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
- transaction abort!
- rollback completed
- abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
- no rollback information available
- 2:fb35475503ef
-
-
diff --git a/tests/test-add.t b/tests/test-add.t
index 85a9b4e..d0eeca7 100644
--- a/tests/test-add.t
+++ b/tests/test-add.t
@@ -33,7 +33,6 @@ should fail
A a
A b
-#if no-windows
$ echo foo > con.xml
$ hg --config ui.portablefilenames=jump add con.xml
abort: ui.portablefilenames value is invalid ('jump')
@@ -51,11 +50,6 @@ should fail
A a
A b
A con.xml
- $ hg forget con.xml
- $ rm con.xml
-#endif
-
-#if eol-in-paths
$ echo bla > 'hello:world'
$ hg --config ui.portablefilenames=abort add
adding hello:world
@@ -64,14 +58,15 @@ should fail
$ hg st
A a
A b
+ A con.xml
? hello:world
$ hg --config ui.portablefilenames=ignore add
adding hello:world
$ hg st
A a
A b
+ A con.xml
A hello:world
-#endif
$ hg ci -m 0 --traceback
@@ -91,7 +86,7 @@ should fail
$ hg merge
merging a
warning: conflicts during merge.
- merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging a failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
@@ -126,15 +121,14 @@ Issue683: peculiarity with hg revert of an removed then added file
? a.orig
$ hg add c && echo "unexpected addition of missing file"
- c: * (glob)
+ c: No such file or directory
[1]
$ echo c > c
$ hg add d c && echo "unexpected addition of missing file"
- d: * (glob)
+ d: No such file or directory
[1]
$ hg st
M a
A c
? a.orig
- $ cd ..
diff --git a/tests/test-addremove-similar.t b/tests/test-addremove-similar.t
index 0da9c69..edce376 100644
--- a/tests/test-addremove-similar.t
+++ b/tests/test-addremove-similar.t
@@ -81,7 +81,7 @@ Issue1527: repeated addremove causes util.Abort
$ hg addremove -s80
removing d/a
adding d/b
- recording removal of d/a as rename to d/b (100% similar) (glob)
+ recording removal of d/a as rename to d/b (100% similar)
$ hg debugstate
r 0 0 1970-01-01 00:00:00 d/a
a 0 -1 unset d/b
@@ -91,12 +91,10 @@ Issue1527: repeated addremove causes util.Abort
no copies found here (since the target isn't in d
$ hg addremove -s80 d
- removing d/b (glob)
+ removing d/b
copies here
$ hg addremove -s80
adding c
- recording removal of d/a as rename to c (100% similar) (glob)
-
- $ cd ..
+ recording removal of d/a as rename to c (100% similar)
diff --git a/tests/test-addremove.t b/tests/test-addremove.t
index 45be3f4..e6730a0 100644
--- a/tests/test-addremove.t
+++ b/tests/test-addremove.t
@@ -10,16 +10,19 @@
foo
committed changeset 0:6f7f953567a2
$ cd dir/
- $ touch ../foo_2 bar_2
+ $ touch ../foo_2 bar_2 con.xml
$ hg -v addremove
adding dir/bar_2
+ adding dir/con.xml
adding foo_2
+ warning: filename contains 'con', which is reserved on Windows: 'dir/con.xml'
$ hg -v commit -m "add 2"
dir/bar_2
+ dir/con.xml
foo_2
- committed changeset 1:e65414bf35c5
- $ cd ../..
+ committed changeset 1:6bb597da00f1
+ $ cd ..
$ hg init sim
$ cd sim
$ echo a > a
@@ -45,4 +48,3 @@
adding d
recording removal of a as rename to b (100% similar)
$ hg commit -mb
- $ cd ..
diff --git a/tests/test-alias.t b/tests/test-alias.t
index cf19233..eb9e8b3 100644
--- a/tests/test-alias.t
+++ b/tests/test-alias.t
@@ -4,10 +4,7 @@
> graphlog=
>
> [alias]
- > # should clobber ci but not commit (issue2993)
- > ci = version
> myinit = init
- > optionalrepo = showconfig alias.myinit
> cleanstatus = status -c
> unknown = bargle
> ambiguous = s
@@ -24,14 +21,14 @@
> dln = lognull --debug
> nousage = rollback
> put = export -r 0 -o "\$FOO/%R.diff"
- > blank = !printf '\n'
- > self = !printf '\$0\n'
- > echoall = !printf '\$@\n'
- > echo1 = !printf '\$1\n'
- > echo2 = !printf '\$2\n'
- > echo13 = !printf '\$1 \$3\n'
- > count = !hg log -r "\$@" --template=. | wc -c | sed -e 's/ //g'
- > mcount = !hg log \$@ --template=. | wc -c | sed -e 's/ //g'
+ > blank = !echo
+ > self = !echo '\$0'
+ > echo = !echo '\$@'
+ > echo1 = !echo '\$1'
+ > echo2 = !echo '\$2'
+ > echo13 = !echo '\$1' '\$3'
+ > count = !hg log -r '\$@' --template='.' | wc -c | sed -e 's/ //g'
+ > mcount = !hg log \$@ --template='.' | wc -c | sed -e 's/ //g'
> rt = root
> tglog = glog --template "{rev}:{node|short}: '{desc}' {branches}\n"
> idalias = id
@@ -39,10 +36,10 @@
> idaliasshell = !echo test
> parentsshell1 = !echo one
> parentsshell2 = !echo two
- > escaped1 = !printf 'test\$\$test\n'
- > escaped2 = !sh -c 'echo "HGFOO is \$\$HGFOO"'
- > escaped3 = !sh -c 'echo "\$1 is \$\$\$1"'
- > escaped4 = !printf '\$\$0 \$\$@\n'
+ > escaped1 = !echo 'test\$\$test'
+ > escaped2 = !echo "HGFOO is \$\$HGFOO"
+ > escaped3 = !echo "\$1 is \$\$\$1"
+ > escaped4 = !echo '\$\$0' '\$\$@'
>
> [defaults]
> mylog = -q
@@ -107,19 +104,8 @@ invalid options
$ hg help no--repository
error in definition for alias 'no--repository': --repository may only be given on the command line
-optional repository
-
-#if no-outer-repo
- $ hg optionalrepo
- init
-#endif
$ cd alias
- $ cat > .hg/hgrc <<EOF
- > [alias]
- > myinit = init -q
- > EOF
- $ hg optionalrepo
- init -q
+
no usage
@@ -127,7 +113,7 @@ no usage
no rollback information available
$ echo foo > foo
- $ hg commit -Amfoo
+ $ hg ci -Amfoo
adding foo
@@ -144,12 +130,6 @@ with opts and whitespace
positional arguments
- $ hg positional
- abort: too few arguments for command alias
- [255]
- $ hg positional a
- abort: too few arguments for command alias
- [255]
$ hg positional 'node|short' rev
0 e63c23eaa88a | 1970-01-01 00:00 +0000
@@ -200,11 +180,11 @@ simple shell aliases
$ hg self
self
- $ hg echoall
+ $ hg echo
- $ hg echoall foo
+ $ hg echo foo
foo
- $ hg echoall 'test $2' foo
+ $ hg echo 'test $2' foo
test $2 foo
$ hg echo1 foo bar baz
foo
@@ -215,7 +195,7 @@ simple shell aliases
$ hg echo2 foo
$ echo bar > bar
- $ hg commit -qA -m bar
+ $ hg ci -qA -m bar
$ hg count .
1
$ hg count 'branch(default)'
@@ -270,19 +250,19 @@ shell aliases with global options
0
$ hg --cwd .. count 'branch(default)'
2
- $ hg echoall --cwd ..
-
+ $ hg echo --cwd ..
+ --cwd ..
repo specific shell aliases
$ cat >> .hg/hgrc <<EOF
> [alias]
- > subalias = !echo sub
+ > subalias = !echo sub \$@
> EOF
$ cat >> ../.hg/hgrc <<EOF
> [alias]
- > mainalias = !echo main
+ > mainalias = !echo main \$@
> EOF
@@ -325,7 +305,7 @@ invalid arguments
$ hg rt foo
hg rt: invalid arguments
- hg rt
+ hg rt
alias for: hg root
@@ -340,24 +320,23 @@ invalid global arguments for normal commands, aliases, and shell aliases
basic commands:
- add add the specified files on the next commit
- annotate show changeset information by line for each file
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- init create a new repository in the given directory
- log show revision history of entire repository or files
- merge merge working directory with another revision
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- remove remove the specified files on the next commit
- serve start stand-alone webserver
- status show changed files in the working directory
- summary summarize working directory state
- update update working directory (or switch revisions)
+ add add the specified files on the next commit
+ annotate show changeset information by line for each file
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ init create a new repository in the given directory
+ log show revision history of entire repository or files
+ merge merge working directory with another revision
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ remove remove the specified files on the next commit
+ serve start stand-alone webserver
+ status show changed files in the working directory
+ summary summarize working directory state
+ update update working directory (or switch revisions)
use "hg help" for the full list of commands or "hg -v" for details
[255]
@@ -367,24 +346,23 @@ invalid global arguments for normal commands, aliases, and shell aliases
basic commands:
- add add the specified files on the next commit
- annotate show changeset information by line for each file
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- init create a new repository in the given directory
- log show revision history of entire repository or files
- merge merge working directory with another revision
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- remove remove the specified files on the next commit
- serve start stand-alone webserver
- status show changed files in the working directory
- summary summarize working directory state
- update update working directory (or switch revisions)
+ add add the specified files on the next commit
+ annotate show changeset information by line for each file
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ init create a new repository in the given directory
+ log show revision history of entire repository or files
+ merge merge working directory with another revision
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ remove remove the specified files on the next commit
+ serve start stand-alone webserver
+ status show changed files in the working directory
+ summary summarize working directory state
+ update update working directory (or switch revisions)
use "hg help" for the full list of commands or "hg -v" for details
[255]
@@ -394,35 +372,24 @@ invalid global arguments for normal commands, aliases, and shell aliases
basic commands:
- add add the specified files on the next commit
- annotate show changeset information by line for each file
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- init create a new repository in the given directory
- log show revision history of entire repository or files
- merge merge working directory with another revision
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- remove remove the specified files on the next commit
- serve start stand-alone webserver
- status show changed files in the working directory
- summary summarize working directory state
- update update working directory (or switch revisions)
+ add add the specified files on the next commit
+ annotate show changeset information by line for each file
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ init create a new repository in the given directory
+ log show revision history of entire repository or files
+ merge merge working directory with another revision
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ remove remove the specified files on the next commit
+ serve start stand-alone webserver
+ status show changed files in the working directory
+ summary summarize working directory state
+ update update working directory (or switch revisions)
use "hg help" for the full list of commands or "hg -v" for details
[255]
-This should show id:
-
- $ hg --config alias.log='id' log
- 000000000000 tip
-
-This shouldn't:
-
- $ hg --config alias.log='id' history
-
- $ cd ../..
diff --git a/tests/test-annotate.t b/tests/test-annotate.t
index 85a0985..a72694f 100644
--- a/tests/test-annotate.t
+++ b/tests/test-annotate.t
@@ -2,8 +2,7 @@
init
- $ hg init repo
- $ cd repo
+ $ hg init
commit
@@ -254,69 +253,3 @@ missing file
$ hg ann nosuchfile
abort: nosuchfile: no such file in rev e9e6b4fa872f
[255]
-
-annotate file without '\n' on last line
-
- $ printf "" > c
- $ hg ci -A -m test -u nobody -d '1 0'
- adding c
- $ hg annotate c
- $ printf "a\nb" > c
- $ hg ci -m test
- $ hg annotate c
- [0-9]+: a (re)
- [0-9]+: b (re)
-
-Test annotate with whitespace options
-
- $ cd ..
- $ hg init repo-ws
- $ cd repo-ws
- $ cat > a <<EOF
- > aa
- >
- > b b
- > EOF
- $ hg ci -Am "adda"
- adding a
- $ cat > a <<EOF
- > a a
- >
- >
- > b b
- > EOF
- $ hg ci -m "changea"
-
-Annotate with no option
-
- $ hg annotate a
- 1: a a
- 0:
- 1:
- 1: b b
-
-Annotate with --ignore-space-change
-
- $ hg annotate --ignore-space-change a
- 1: a a
- 1:
- 0:
- 0: b b
-
-Annotate with --ignore-all-space
-
- $ hg annotate --ignore-all-space a
- 0: a a
- 0:
- 1:
- 0: b b
-
-Annotate with --ignore-blank-lines (similar to no options case)
-
- $ hg annotate --ignore-blank-lines a
- 1: a a
- 0:
- 1:
- 1: b b
-
- $ cd ..
diff --git a/tests/test-archive-symlinks.t b/tests/test-archive-symlinks.t
index a0f15b5..2f3420a 100644
--- a/tests/test-archive-symlinks.t
+++ b/tests/test-archive-symlinks.t
@@ -18,7 +18,7 @@ files
$ cd "$origdir"
$ cd archive
- $ "$TESTDIR/readlink.py" dangling
+ $ $TESTDIR/readlink.py dangling
dangling -> nothing
tar
@@ -26,7 +26,7 @@ tar
$ cd "$origdir"
$ tar xf archive.tar
$ cd tar
- $ "$TESTDIR/readlink.py" dangling
+ $ $TESTDIR/readlink.py dangling
dangling -> nothing
zip
@@ -34,7 +34,5 @@ zip
$ cd "$origdir"
$ unzip archive.zip > /dev/null
$ cd zip
- $ "$TESTDIR/readlink.py" dangling
+ $ $TESTDIR/readlink.py dangling
dangling -> nothing
-
- $ cd ..
diff --git a/tests/test-archive.t b/tests/test-archive.t
index 6da530f..78f7eb3 100644
--- a/tests/test-archive.t
+++ b/tests/test-archive.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
$ hg init test
$ cd test
$ echo foo>foo
@@ -20,10 +18,10 @@
> hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
> cat hg.pid >> $DAEMON_PIDS
> echo % $1 allowed should give 200
- > "$TESTDIR/get-with-headers.py" localhost:$HGPORT "archive/tip.$2" | head -n 1
+ > "$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.$2" | head -n 1
> echo % $3 and $4 disallowed should both give 403
- > "$TESTDIR/get-with-headers.py" localhost:$HGPORT "archive/tip.$3" | head -n 1
- > "$TESTDIR/get-with-headers.py" localhost:$HGPORT "archive/tip.$4" | head -n 1
+ > "$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.$3" | head -n 1
+ > "$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.$4" | head -n 1
> "$TESTDIR/killdaemons.py"
> cat errors.log
> cp .hg/hgrc-base .hg/hgrc
@@ -56,7 +54,7 @@ check http return codes
invalid arch type should give 404
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT "archive/tip.invalid" | head -n 1
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.invalid" | head -n 1
404 Unsupported archive type: None
$ TIP=`hg id -v | cut -f1 -d' '`
@@ -102,10 +100,7 @@ invalid arch type should give 404
test/baz/bletch
test/foo
- $ hg archive --debug -t tbz2 -X baz test.tar.bz2
- archiving: 0/2 files (0.00%)
- archiving: bar 1/2 files (50.00%)
- archiving: foo 2/2 files (100.00%)
+ $ hg archive -t tbz2 -X baz test.tar.bz2
$ bunzip2 -dc test.tar.bz2 | tar tf - 2>/dev/null
test/.hg_archival.txt
test/bar
@@ -224,7 +219,7 @@ enable progress extension:
> width = 60
> EOF
- $ hg archive ../with-progress 2>&1 | "$TESTDIR/filtercr.py"
+ $ hg archive ../with-progress 2>&1 | $TESTDIR/filtercr.py
archiving [ ] 0/4
archiving [ ] 0/4
@@ -268,5 +263,3 @@ old file -- date clamped to 1980
*0*80*00:00*old/old (glob)
*-----* (glob)
\s*147\s+2 files (re)
-
- $ cd ..
diff --git a/tests/test-atomictempfile.py b/tests/test-atomictempfile.py
index 9ebd7c0..c897ba8 100644
--- a/tests/test-atomictempfile.py
+++ b/tests/test-atomictempfile.py
@@ -12,21 +12,22 @@ def test1_simple():
assert basename in glob.glob('.foo-*')
file.write('argh\n')
- file.close()
+ file.rename()
assert os.path.isfile('foo')
assert basename not in glob.glob('.foo-*')
print 'OK'
-# discard() removes the temp file without making the write permanent
-def test2_discard():
+# close() removes the temp file but does not make the write
+# permanent -- essentially discards your work (WTF?!)
+def test2_close():
if os.path.exists('foo'):
os.remove('foo')
file = atomictempfile('foo')
(dir, basename) = os.path.split(file._tempname)
file.write('yo\n')
- file.discard()
+ file.close()
assert not os.path.isfile('foo')
assert basename not in os.listdir('.')
@@ -44,5 +45,5 @@ def test3_oops():
if __name__ == '__main__':
test1_simple()
- test2_discard()
+ test2_close()
test3_oops()
diff --git a/tests/test-audit-path.t b/tests/test-audit-path.t
index d105e94..23d2478 100644
--- a/tests/test-audit-path.t
+++ b/tests/test-audit-path.t
@@ -1,40 +1,39 @@
$ hg init
-audit of .hg
+should fail
$ hg add .hg/00changelog.i
- abort: path contains illegal component: .hg/00changelog.i (glob)
+ abort: path contains illegal component: .hg/00changelog.i
[255]
-#if symlink
-
-Symlinks
-
$ mkdir a
$ echo a > a/a
$ hg ci -Ama
adding a/a
$ ln -s a b
$ echo b > a/b
+
+should fail
+
$ hg add b/b
- abort: path 'b/b' traverses symbolic link 'b' (glob)
+ abort: path 'b/b' traverses symbolic link 'b'
[255]
+
+should succeed
+
$ hg add b
should still fail - maybe
$ hg add b/b
- abort: path 'b/b' traverses symbolic link 'b' (glob)
+ abort: path 'b/b' traverses symbolic link 'b'
[255]
-#endif
-
-
unbundle tampered bundle
$ hg init target
$ cd target
- $ hg unbundle "$TESTDIR/bundles/tampered.hg"
+ $ hg unbundle $TESTDIR/bundles/tampered.hg
adding changesets
adding manifests
adding file changes
@@ -46,7 +45,7 @@ attack .hg/test
$ hg manifest -r0
.hg/test
$ hg update -Cr0
- abort: path contains illegal component: .hg/test (glob)
+ abort: path contains illegal component: .hg/test
[255]
attack foo/.hg/test
@@ -54,7 +53,7 @@ attack foo/.hg/test
$ hg manifest -r1
foo/.hg/test
$ hg update -Cr1
- abort: path 'foo/.hg/test' is inside nested repo 'foo' (glob)
+ abort: path 'foo/.hg/test' is inside nested repo 'foo'
[255]
attack back/test where back symlinks to ..
@@ -62,23 +61,16 @@ attack back/test where back symlinks to ..
$ hg manifest -r2
back
back/test
-#if symlink
$ hg update -Cr2
abort: path 'back/test' traverses symbolic link 'back'
[255]
-#else
-('back' will be a file and cause some other system specific error)
- $ hg update -Cr2
- abort: * (glob)
- [255]
-#endif
attack ../test
$ hg manifest -r3
../test
$ hg update -Cr3
- abort: path contains illegal component: ../test (glob)
+ abort: path contains illegal component: ../test
[255]
attack /tmp/test
@@ -86,7 +78,5 @@ attack /tmp/test
$ hg manifest -r4
/tmp/test
$ hg update -Cr4
- abort: *: $TESTTMP/target//tmp/test (glob)
+ abort: No such file or directory: $TESTTMP/target//tmp/test
[255]
-
- $ cd ..
diff --git a/tests/test-backout.t b/tests/test-backout.t
index c2404f5..7e47659 100644
--- a/tests/test-backout.t
+++ b/tests/test-backout.t
@@ -48,8 +48,8 @@ backout of backout is as if nothing happened
$ hg backout -d '3 0' --merge tip --tool=true
removing a
changeset 3:7f6d0f120113 backs out changeset 2:de31bdc76c0d
- $ test -f a
- [1]
+ $ cat a 2>/dev/null || echo cat: a: No such file or directory
+ cat: a: No such file or directory
across branch
@@ -117,8 +117,6 @@ check line 1 is back
line 2
line 3
- $ cd ..
-
backout should not back out subsequent changesets
$ hg init onecs
@@ -184,7 +182,7 @@ with --merge
backout of merge should fail
$ hg backout 4
- abort: cannot backout a merge changeset
+ abort: cannot backout a merge changeset without --parent
[255]
backout of merge with bad parent should fail
@@ -227,13 +225,11 @@ named branches
adding default
$ hg branch branch1
marked working directory as branch branch1
- (branches are permanent and global, did you want a bookmark?)
$ echo branch1 > file1
$ hg ci -d '1 0' -Am file1
adding file1
$ hg branch branch2
marked working directory as branch branch2
- (branches are permanent and global, did you want a bookmark?)
$ echo branch2 > file2
$ hg ci -d '2 0' -Am file2
adding file2
@@ -290,5 +286,3 @@ on branch1, so no file1 and file2:
$ hg st -A
C default
C file1
-
- $ cd ..
diff --git a/tests/test-bad-pull.t b/tests/test-bad-pull.t
index 7e32388..1b7b163 100644
--- a/tests/test-bad-pull.t
+++ b/tests/test-bad-pull.t
@@ -1,17 +1,9 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
-#if windows
- $ hg clone http://localhost:$HGPORT/ copy
- abort: * (glob)
- [255]
-#else
$ hg clone http://localhost:$HGPORT/ copy
abort: error: Connection refused
[255]
-#endif
- $ test -d copy
- [1]
+ $ test -d copy || echo copy: No such file or directory
+ copy: No such file or directory
$ cat > dumb.py <<EOF
> import BaseHTTPServer, SimpleHTTPServer, os, signal
@@ -19,15 +11,20 @@
> handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
> server_address = ('localhost', int(os.environ['HGPORT']))
> httpd = server_class(server_address, handler_class)
- > open("listening", "w")
- > httpd.handle_request()
+ > httpd.serve_forever()
+ > signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
> run()
> EOF
- $ python dumb.py 2> log &
- $ P=$!
- $ while [ ! -f listening ]; do sleep 0; done
- $ hg clone http://localhost:$HGPORT/foo copy2
+ $ python dumb.py 2>/dev/null &
+ $ echo $! >> $DAEMON_PIDS
+
+give the server some time to start running
+
+ $ sleep 1
+
+ $ hg clone http://localhost:$HGPORT/foo copy2 2>&1
abort: HTTP Error 404: * (glob)
[255]
- $ wait $P
+
+ $ kill $!
diff --git a/tests/test-basic.t b/tests/test-basic.t
index 4d350a5..6890994 100644
--- a/tests/test-basic.t
+++ b/tests/test-basic.t
@@ -53,5 +53,3 @@ Verify should succeed:
1 files, 1 changesets, 1 total revisions
At the end...
-
- $ cd ..
diff --git a/tests/test-bdiff.py b/tests/test-bdiff.py
index c17dfb0..254246d 100644
--- a/tests/test-bdiff.py
+++ b/tests/test-bdiff.py
@@ -50,17 +50,3 @@ showdiff("x\n\nx\n\nx\n\nx\n\nz\n", "x\n\nx\n\ny\n\nx\n\nx\n\nz\n")
showdiff("x\n\nx\n\nx\n\nx\n\nz\n", "x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n")
print "done"
-
-def testfixws(a, b, allws):
- c = bdiff.fixws(a, allws)
- if c != b:
- print "*** fixws", repr(a), repr(b), allws
- print "got:"
- print repr(c)
-
-testfixws(" \ta\r b\t\n", "ab\n", 1)
-testfixws(" \ta\r b\t\n", " a b\n", 0)
-testfixws("", "", 1)
-testfixws("", "", 0)
-
-print "done"
diff --git a/tests/test-bdiff.py.out b/tests/test-bdiff.py.out
index 9c00d05..8590fab 100644
--- a/tests/test-bdiff.py.out
+++ b/tests/test-bdiff.py.out
@@ -21,4 +21,3 @@
6 6 'y\n\n'
9 9 'y\n\n'
done
-done
diff --git a/tests/test-bheads.t b/tests/test-bheads.t
index 2093813..f4cc3c5 100644
--- a/tests/test-bheads.t
+++ b/tests/test-bheads.t
@@ -20,7 +20,6 @@
$ hg add a
$ hg branch a
marked working directory as branch a
- (branches are permanent and global, did you want a bookmark?)
$ hg commit -m "Adding a branch"
$ heads
1: Adding a branch (a)
@@ -37,7 +36,6 @@
$ hg add b
$ hg branch b
marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
$ hg commit -m "Adding b branch"
$ heads
2: Adding b branch (b)
@@ -119,7 +117,6 @@
$ hg add c
$ hg branch c
marked working directory as branch c
- (branches are permanent and global, did you want a bookmark?)
$ hg commit -m "Adding c branch"
$ heads
7: Adding c branch (c)
@@ -290,7 +287,6 @@ Init: no msg
$ hg branch b
marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
$ echo 1 > b
$ hg ci -Am "b2: Initial root for branch b"
adding b
@@ -302,7 +298,6 @@ Case NN: msg
$ hg up -q null
$ hg branch -f b
marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
$ echo 1 > bb
$ hg ci -Am "b4 (NN): new topo root for branch b"
adding bb
@@ -317,7 +312,6 @@ Case BN: msg
$ hg branch -f default
marked working directory as branch default
- (branches are permanent and global, did you want a bookmark?)
$ echo 1 > aa
$ hg ci -Am "a6 (BN): new branch root"
adding aa
@@ -337,7 +331,6 @@ Case BB: msg
$ hg merge -q 3
$ hg branch -f default
marked working directory as branch default
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -m "a8 (BB): weird new branch root"
created new head
@@ -372,4 +365,3 @@ Case HH: no msg
$ hg merge -q 3
$ hg ci -m "b12 (HH): merging two heads"
- $ cd ..
diff --git a/tests/test-bisect.t b/tests/test-bisect.t
index 4e8b771..b582817 100644
--- a/tests/test-bisect.t
+++ b/tests/test-bisect.t
@@ -222,7 +222,6 @@ mark revsets instead of single revs
Testing changeset 12:1941b52820a5 (23 changesets remaining, ~4 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat .hg/bisect.state
- current 1941b52820a544549596820a8ae006842b0e2c64
skip 9d7d07bc967ca98ad0600c24953fd289ad5fa991
skip ce8f0998e922c179e80819d5066fbe46e2998784
skip e7fa0811edb063f6319531f0d0a865882138e180
@@ -378,7 +377,7 @@ reproduce AssertionError, issue1445
date: Thu Jan 01 00:00:06 1970 +0000
summary: msg 6
- $ hg log -r "bisect(good)"
+ $ hg log -r "bisected(good)"
changeset: 0:b99c7b9c8e11
user: test
date: Thu Jan 01 00:00:00 1970 +0000
@@ -389,19 +388,13 @@ reproduce AssertionError, issue1445
date: Thu Jan 01 00:00:05 1970 +0000
summary: msg 5
- $ hg log -r "bisect(bad)"
+ $ hg log -r "bisected(bad)"
changeset: 6:a3d5c6fdf0d3
user: test
date: Thu Jan 01 00:00:06 1970 +0000
summary: msg 6
- $ hg log -r "bisect(current)"
- changeset: 5:7874a09ea728
- user: test
- date: Thu Jan 01 00:00:05 1970 +0000
- summary: msg 5
-
- $ hg log -r "bisect(skip)"
+ $ hg log -r "bisected(skip)"
changeset: 1:5cd978ea5149
user: test
date: Thu Jan 01 00:00:01 1970 +0000
@@ -423,15 +416,6 @@ reproduce AssertionError, issue1445
summary: msg 4
-test legacy bisected() keyword
-
- $ hg log -r "bisected(bad)"
- changeset: 6:a3d5c6fdf0d3
- user: test
- date: Thu Jan 01 00:00:06 1970 +0000
- summary: msg 6
-
-
$ set +e
test invalid command
@@ -459,52 +443,15 @@ test bisecting command
$ hg bisect --bad 0
Testing changeset 15:e7fa0811edb0 (31 changesets remaining, ~4 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg bisect --command "python \"$TESTTMP/script.py\" and some parameters"
- changeset 15:e7fa0811edb0: good
- changeset 7:03750880c6b5: good
- changeset 3:b53bea5e2fcb: bad
- changeset 5:7874a09ea728: bad
- changeset 6:a3d5c6fdf0d3: good
+ $ hg bisect --command "'`pwd`/script.py' and some parameters"
+ Changeset 15:e7fa0811edb0: good
+ Changeset 7:03750880c6b5: good
+ Changeset 3:b53bea5e2fcb: bad
+ Changeset 5:7874a09ea728: bad
+ Changeset 6:a3d5c6fdf0d3: good
The first good revision is:
changeset: 6:a3d5c6fdf0d3
user: test
date: Thu Jan 01 00:00:06 1970 +0000
summary: msg 6
-
-
-test bisecting via a command without updating the working dir, and
-ensure that the bisect state file is updated before running a test
-command
-
- $ hg update null
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ cat > script.sh <<'EOF'
- > #!/bin/sh
- > test -n "$HG_NODE" || (echo HG_NODE missing; exit 127)
- > current="`hg log -r \"bisect(current)\" --template {node}`"
- > test "$current" = "$HG_NODE" || (echo current is bad: $current; exit 127)
- > rev="`hg log -r $HG_NODE --template {rev}`"
- > test "$rev" -ge 6
- > EOF
- $ chmod +x script.sh
- $ hg bisect -r
- $ hg bisect --good tip --noupdate
- $ hg bisect --bad 0 --noupdate
- Testing changeset 15:e7fa0811edb0 (31 changesets remaining, ~4 tests)
- $ hg bisect --command "sh \"$TESTTMP/script.sh\" and some params" --noupdate
- changeset 15:e7fa0811edb0: good
- changeset 7:03750880c6b5: good
- changeset 3:b53bea5e2fcb: bad
- changeset 5:7874a09ea728: bad
- changeset 6:a3d5c6fdf0d3: good
- The first good revision is:
- changeset: 6:a3d5c6fdf0d3
- user: test
- date: Thu Jan 01 00:00:06 1970 +0000
- summary: msg 6
-
-
-ensure that we still don't have a working dir
-
- $ hg parents
diff --git a/tests/test-bisect2.t b/tests/test-bisect2.t
index 5414df7..892581a 100644
--- a/tests/test-bisect2.t
+++ b/tests/test-bisect2.t
@@ -252,25 +252,6 @@ complex bisect test 1 # first bad rev is 9
$ hg bisect -b 17 # -> update to rev 6
Testing changeset 6:a214d5d3811a (15 changesets remaining, ~3 tests)
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 17:228c06deef46
- $ hg log -q -r 'bisect(untested)'
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 16:609d82a7ebae
- $ hg log -q -r 'bisect(ignored)'
$ hg bisect -g # -> update to rev 13
Testing changeset 13:b0a32c86eb31 (9 changesets remaining, ~3 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
@@ -290,58 +271,6 @@ complex bisect test 1 # first bad rev is 9
date: Thu Jan 01 00:00:09 1970 +0000
summary: 9
- $ hg log -q -r 'bisect(range)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
- 18:d42e18c7bc9b
- $ hg log -q -r 'bisect(untested)'
- 11:82ca6f06eccd
- 12:9f259202bbe7
- $ hg log -q -r 'bisect(goods)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 8:dab8161ac8fc
- $ hg log -q -r 'bisect(bads)'
- 9:3c77083deb4a
- 10:429fcd26f52d
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
- 18:d42e18c7bc9b
complex bisect test 2 # first good rev is 13
@@ -353,31 +282,9 @@ complex bisect test 2 # first good rev is 13
$ hg bisect -s # -> update to rev 10
Testing changeset 10:429fcd26f52d (13 changesets remaining, ~3 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 6:a214d5d3811a
- 18:d42e18c7bc9b
$ hg bisect -b # -> update to rev 12
Testing changeset 12:9f259202bbe7 (5 changesets remaining, ~2 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 18:d42e18c7bc9b
- $ hg log -q -r 'bisect(untested)'
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
$ hg bisect -b # -> update to rev 13
Testing changeset 13:b0a32c86eb31 (3 changesets remaining, ~1 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -388,21 +295,6 @@ complex bisect test 2 # first good rev is 13
date: Thu Jan 01 00:00:13 1970 +0000
summary: 13
- $ hg log -q -r 'bisect(range)'
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 18:d42e18c7bc9b
complex bisect test 3
@@ -414,11 +306,6 @@ first bad rev is 15
$ hg bisect -b 16 # -> update to rev 6
Testing changeset 6:a214d5d3811a (13 changesets remaining, ~3 tests)
2 files updated, 0 files merged, 2 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 16:609d82a7ebae
- 17:228c06deef46
$ hg bisect -g # -> update to rev 13
Testing changeset 13:b0a32c86eb31 (8 changesets remaining, ~3 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
@@ -428,25 +315,12 @@ first bad rev is 15
$ hg bisect -s # -> update to rev 12
Testing changeset 12:9f259202bbe7 (8 changesets remaining, ~3 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 10:429fcd26f52d
- 13:b0a32c86eb31
- 16:609d82a7ebae
- 17:228c06deef46
$ hg bisect -g # -> update to rev 9
Testing changeset 9:3c77083deb4a (5 changesets remaining, ~2 tests)
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg bisect -s # -> update to rev 15
Testing changeset 15:857b178a7cf3 (5 changesets remaining, ~2 tests)
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(ignored)'
$ hg bisect -b
Due to skipped revisions, the first bad revision could be any of:
changeset: 9:3c77083deb4a
@@ -473,22 +347,6 @@ first bad rev is 15
date: Thu Jan 01 00:00:15 1970 +0000
summary: merge 10,13
- $ hg log -q -r 'bisect(range)'
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 16:609d82a7ebae
- $ hg log -q -r 'bisect(ignored)'
complex bisect test 4
@@ -506,40 +364,9 @@ first good revision is 17
$ hg bisect -b # -> update to rev 15
Testing changeset 15:857b178a7cf3 (3 changesets remaining, ~1 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 17:228c06deef46
$ hg bisect -s # -> update to rev 16
Testing changeset 16:609d82a7ebae (3 changesets remaining, ~1 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 17:228c06deef46
$ hg bisect -s
Due to skipped revisions, the first good revision could be any of:
changeset: 15:857b178a7cf3
@@ -559,33 +386,6 @@ first good revision is 17
date: Thu Jan 01 00:00:17 1970 +0000
summary: 17
- $ hg log -q -r 'bisect(range)'
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
test unrelated revs:
@@ -594,15 +394,6 @@ test unrelated revs:
$ hg bisect -g 14
abort: starting revisions are not directly related
[255]
- $ hg log -q -r 'bisect(range)'
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 7:50c76098bbf2
- 14:faa450606157
$ hg bisect --reset
end at merge: 17 bad, 11 good (but 9 is first bad)
@@ -612,14 +403,6 @@ end at merge: 17 bad, 11 good (but 9 is first bad)
$ hg bisect -g 11
Testing changeset 13:b0a32c86eb31 (5 changesets remaining, ~2 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(ignored)'
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 9:3c77083deb4a
- 10:429fcd26f52d
$ hg bisect -g
Testing changeset 15:857b178a7cf3 (3 changesets remaining, ~1 tests)
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -635,69 +418,12 @@ end at merge: 17 bad, 11 good (but 9 is first bad)
Not all ancestors of this changeset have been checked.
Use bisect --extend to continue the bisection from
the common ancestor, dab8161ac8fc.
- $ hg log -q -r 'bisect(range)'
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 8:dab8161ac8fc
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
- 18:d42e18c7bc9b
- $ hg log -q -r 'bisect(untested)'
- $ hg log -q -r 'bisect(ignored)'
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 9:3c77083deb4a
- 10:429fcd26f52d
$ hg bisect --extend
Extending search to changeset 8:dab8161ac8fc
2 files updated, 0 files merged, 2 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(untested)'
- $ hg log -q -r 'bisect(ignored)'
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- 9:3c77083deb4a
- 10:429fcd26f52d
$ hg bisect -g # dab8161ac8fc
Testing changeset 9:3c77083deb4a (3 changesets remaining, ~1 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(untested)'
- 9:3c77083deb4a
- 10:429fcd26f52d
- $ hg log -q -r 'bisect(ignored)'
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- $ hg log -q -r 'bisect(goods)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 8:dab8161ac8fc
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- $ hg log -q -r 'bisect(bads)'
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
- 18:d42e18c7bc9b
$ hg bisect -b
The first bad revision is:
changeset: 9:3c77083deb4a
@@ -705,91 +431,3 @@ end at merge: 17 bad, 11 good (but 9 is first bad)
date: Thu Jan 01 00:00:09 1970 +0000
summary: 9
- $ hg log -q -r 'bisect(range)'
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 8:dab8161ac8fc
- 9:3c77083deb4a
- 10:429fcd26f52d
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
- 18:d42e18c7bc9b
- $ hg log -q -r 'bisect(untested)'
- $ hg log -q -r 'bisect(ignored)'
- 2:051e12f87bf1
- 3:0950834f0a9c
- 4:5c668c22234f
- 5:385a529b6670
- 6:a214d5d3811a
- $ hg log -q -r 'bisect(goods)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 8:dab8161ac8fc
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- $ hg log -q -r 'bisect(bads)'
- 9:3c77083deb4a
- 10:429fcd26f52d
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
- 18:d42e18c7bc9b
-
-user adds irrelevant but consistent information (here: -g 2) to bisect state
-
- $ hg bisect -r
- $ hg bisect -b 13
- $ hg bisect -g 8
- Testing changeset 11:82ca6f06eccd (3 changesets remaining, ~1 tests)
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(untested)'
- 11:82ca6f06eccd
- 12:9f259202bbe7
- $ hg bisect -g 2
- Testing changeset 11:82ca6f06eccd (3 changesets remaining, ~1 tests)
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg log -q -r 'bisect(untested)'
- 11:82ca6f06eccd
- 12:9f259202bbe7
- $ hg bisect -b
- The first bad revision is:
- changeset: 11:82ca6f06eccd
- parent: 8:dab8161ac8fc
- user: test
- date: Thu Jan 01 00:00:11 1970 +0000
- summary: 11
-
- $ hg log -q -r 'bisect(range)'
- 8:dab8161ac8fc
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- $ hg log -q -r 'bisect(pruned)'
- 0:33b1f9bc8bc5
- 1:4ca5088da217
- 2:051e12f87bf1
- 8:dab8161ac8fc
- 11:82ca6f06eccd
- 12:9f259202bbe7
- 13:b0a32c86eb31
- 14:faa450606157
- 15:857b178a7cf3
- 16:609d82a7ebae
- 17:228c06deef46
- 18:d42e18c7bc9b
- $ hg log -q -r 'bisect(untested)'
diff --git a/tests/test-bisect3.t b/tests/test-bisect3.t
deleted file mode 100644
index 5d62120..0000000
--- a/tests/test-bisect3.t
+++ /dev/null
@@ -1,232 +0,0 @@
-# Here we create a simple DAG which has just enough of the required
-# topology to test all the bisection status labels:
-#
-# 13--14
-# /
-# 0--1--2--3---------9--10--11--12
-# \ /
-# 4--5--6--7--8
-
-
- $ hg init
-
- $ echo '0' >a
- $ hg add a
- $ hg ci -u test -d '0 0' -m '0'
- $ echo '1' >a
- $ hg ci -u test -d '1 0' -m '1'
-
-branch 2-3
-
- $ echo '2' >b
- $ hg add b
- $ hg ci -u test -d '2 0' -m '2'
- $ echo '3' >b
- $ hg ci -u test -d '3 0' -m '3'
-
-branch 4-8
-
- $ hg up -r 1
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo '4' >c
- $ hg add c
- $ hg ci -u test -d '4 0' -m '4'
- created new head
- $ echo '5' >c
- $ hg ci -u test -d '5 0' -m '5'
- $ echo '6' >c
- $ hg ci -u test -d '6 0' -m '6'
- $ echo '7' >c
- $ hg ci -u test -d '7 0' -m '7'
- $ echo '8' >c
- $ hg ci -u test -d '8 0' -m '8'
-
-merge
-
- $ hg merge -r 3
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -u test -d '9 0' -m '9=8+3'
-
- $ echo '10' >a
- $ hg ci -u test -d '10 0' -m '10'
- $ echo '11' >a
- $ hg ci -u test -d '11 0' -m '11'
- $ echo '12' >a
- $ hg ci -u test -d '12 0' -m '12'
-
-unrelated branch
-
- $ hg up -r 3
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo '13' >d
- $ hg add d
- $ hg ci -u test -d '13 0' -m '13'
- created new head
- $ echo '14' >d
- $ hg ci -u test -d '14 0' -m '14'
-
-mark changesets
-
- $ hg bisect --reset
- $ hg bisect --good 4
- $ hg bisect --good 6
- $ hg bisect --bad 12
- Testing changeset 9:2197c557e14c (6 changesets remaining, ~2 tests)
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg bisect --bad 10
- Testing changeset 8:e74a86251f58 (4 changesets remaining, ~2 tests)
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg bisect --skip 7
- Testing changeset 8:e74a86251f58 (4 changesets remaining, ~2 tests)
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-test template
-
- $ hg log --template '{rev}:{node|short} {bisect}\n'
- 14:cbf2f3105bbf
- 13:e07efca37c43
- 12:98c6b56349c0 bad
- 11:03f491376e63 bad (implicit)
- 10:c012b15e2409 bad
- 9:2197c557e14c untested
- 8:e74a86251f58 untested
- 7:a5f87041c899 skipped
- 6:7d997bedcd8d good
- 5:2dd1875f1028 good (implicit)
- 4:2a1daef14cd4 good
- 3:8417d459b90c ignored
- 2:e1355ee1f23e ignored
- 1:ce7c85e06a9f good (implicit)
- 0:b4e73ffab476 good (implicit)
- $ hg log --template '{bisect|shortbisect} {rev}:{node|short}\n'
- 14:cbf2f3105bbf
- 13:e07efca37c43
- B 12:98c6b56349c0
- B 11:03f491376e63
- B 10:c012b15e2409
- U 9:2197c557e14c
- U 8:e74a86251f58
- S 7:a5f87041c899
- G 6:7d997bedcd8d
- G 5:2dd1875f1028
- G 4:2a1daef14cd4
- I 3:8417d459b90c
- I 2:e1355ee1f23e
- G 1:ce7c85e06a9f
- G 0:b4e73ffab476
-
-test style
-
- $ hg log --style bisect
- changeset: 14:cbf2f3105bbf
- bisect:
- tag: tip
- user: test
- date: Thu Jan 01 00:00:14 1970 +0000
- summary: 14
-
- changeset: 13:e07efca37c43
- bisect:
- parent: 3:8417d459b90c
- user: test
- date: Thu Jan 01 00:00:13 1970 +0000
- summary: 13
-
- changeset: 12:98c6b56349c0
- bisect: bad
- user: test
- date: Thu Jan 01 00:00:12 1970 +0000
- summary: 12
-
- changeset: 11:03f491376e63
- bisect: bad (implicit)
- user: test
- date: Thu Jan 01 00:00:11 1970 +0000
- summary: 11
-
- changeset: 10:c012b15e2409
- bisect: bad
- user: test
- date: Thu Jan 01 00:00:10 1970 +0000
- summary: 10
-
- changeset: 9:2197c557e14c
- bisect: untested
- parent: 8:e74a86251f58
- parent: 3:8417d459b90c
- user: test
- date: Thu Jan 01 00:00:09 1970 +0000
- summary: 9=8+3
-
- changeset: 8:e74a86251f58
- bisect: untested
- user: test
- date: Thu Jan 01 00:00:08 1970 +0000
- summary: 8
-
- changeset: 7:a5f87041c899
- bisect: skipped
- user: test
- date: Thu Jan 01 00:00:07 1970 +0000
- summary: 7
-
- changeset: 6:7d997bedcd8d
- bisect: good
- user: test
- date: Thu Jan 01 00:00:06 1970 +0000
- summary: 6
-
- changeset: 5:2dd1875f1028
- bisect: good (implicit)
- user: test
- date: Thu Jan 01 00:00:05 1970 +0000
- summary: 5
-
- changeset: 4:2a1daef14cd4
- bisect: good
- parent: 1:ce7c85e06a9f
- user: test
- date: Thu Jan 01 00:00:04 1970 +0000
- summary: 4
-
- changeset: 3:8417d459b90c
- bisect: ignored
- user: test
- date: Thu Jan 01 00:00:03 1970 +0000
- summary: 3
-
- changeset: 2:e1355ee1f23e
- bisect: ignored
- user: test
- date: Thu Jan 01 00:00:02 1970 +0000
- summary: 2
-
- changeset: 1:ce7c85e06a9f
- bisect: good (implicit)
- user: test
- date: Thu Jan 01 00:00:01 1970 +0000
- summary: 1
-
- changeset: 0:b4e73ffab476
- bisect: good (implicit)
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 0
-
- $ hg log --quiet --style bisect
- 14:cbf2f3105bbf
- 13:e07efca37c43
- B 12:98c6b56349c0
- B 11:03f491376e63
- B 10:c012b15e2409
- U 9:2197c557e14c
- U 8:e74a86251f58
- S 7:a5f87041c899
- G 6:7d997bedcd8d
- G 5:2dd1875f1028
- G 4:2a1daef14cd4
- I 3:8417d459b90c
- I 2:e1355ee1f23e
- G 1:ce7c85e06a9f
- G 0:b4e73ffab476
diff --git a/tests/test-bookmarks-current.t b/tests/test-bookmarks-current.t
index cc31c3e..f96a805 100644
--- a/tests/test-bookmarks-current.t
+++ b/tests/test-bookmarks-current.t
@@ -125,46 +125,3 @@ deactivate current bookmark while renaming
$ hg bookmarks
X 0:719295282060
Z 0:719295282060
-
-bare update moves the active bookmark forward
-
- $ echo a > a
- $ hg ci -Am1
- adding a
- $ hg update X
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg bookmarks
- * X 0:719295282060
- Z 0:719295282060
- $ hg update
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- updating bookmark X
- $ hg bookmarks
- * X 1:cc586d725fbe
- Z 0:719295282060
-
-test deleting .hg/bookmarks.current when explicitly updating
-to a revision
-
- $ echo a >> b
- $ hg ci -m.
- $ hg up -q X
- $ test -f .hg/bookmarks.current
-
-try to update to it again to make sure we don't
-set and then unset it
-
- $ hg up -q X
- $ test -f .hg/bookmarks.current
-
- $ hg up -q 1
- $ test -f .hg/bookmarks.current
- [1]
-
-when a bookmark is active, hg up -r . is
-analogus to hg book -i <active bookmark>
-
- $ hg up -q X
- $ hg up -q .
- $ test -f .hg/bookmarks.current
- [1]
diff --git a/tests/test-bookmarks-merge.t b/tests/test-bookmarks-merge.t
deleted file mode 100644
index 96ed2c9..0000000
--- a/tests/test-bookmarks-merge.t
+++ /dev/null
@@ -1,93 +0,0 @@
-# init
-
- $ hg init
- $ echo a > a
- $ hg add a
- $ hg commit -m'a'
- $ echo b > b
- $ hg add b
- $ hg commit -m'b'
- $ hg up -C 0
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo c > c
- $ hg add c
- $ hg commit -m'c'
- created new head
-
-# test merging of diverged bookmarks
- $ hg bookmark -r 1 "c@diverge"
- $ hg bookmark -r 1 b
- $ hg bookmark c
- $ hg bookmarks
- b 1:d2ae7f538514
- * c 2:d36c0562f908
- c@diverge 1:d2ae7f538514
- $ hg merge "c@diverge"
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg commit -m'merge'
- $ hg bookmarks
- b 1:d2ae7f538514
- * c 3:b8f96cf4688b
-
- $ hg up -C 3
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ echo d > d
- $ hg add d
- $ hg commit -m'd'
-
- $ hg up -C 3
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo e > e
- $ hg add e
- $ hg commit -m'e'
- created new head
- $ hg up -C 5
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg bookmark e
- $ hg bookmarks
- b 1:d2ae7f538514
- c 3:b8f96cf4688b
- * e 5:26bee9c5bcf3
-
-# the picked side is bookmarked
-
- $ hg up -C 4
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge
- abort: heads are bookmarked - please merge with an explicit rev
- (run 'hg heads' to see all heads)
- [255]
-
-# our revision is bookmarked
-
- $ hg up -C e
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge
- abort: no matching bookmark to merge - please merge with an explicit rev or bookmark
- (run 'hg heads' to see all heads)
- [255]
-
-# merge bookmark heads
-
- $ hg up -C 4
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo f > f
- $ hg commit -Am "f"
- adding f
- $ hg up -C e
- 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
- $ hg bookmarks -r 4 "e@diverged"
- $ hg bookmarks
- b 1:d2ae7f538514
- c 3:b8f96cf4688b
- * e 5:26bee9c5bcf3
- e@diverged 4:a0546fcfe0fb
- $ hg merge
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg commit -m'merge'
- $ hg bookmarks
- b 1:d2ae7f538514
- c 3:b8f96cf4688b
- * e 7:ca784329f0ba
diff --git a/tests/test-bookmarks-pushpull.t b/tests/test-bookmarks-pushpull.t
index b62ca47..1670897 100644
--- a/tests/test-bookmarks-pushpull.t
+++ b/tests/test-bookmarks-pushpull.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
initialize
$ hg init a
@@ -29,16 +27,11 @@ import bookmark by name
adding file changes
added 1 changesets with 1 changes to 1 files
updating bookmark Y
- adding remote bookmark X
- adding remote bookmark Z
(run 'hg update' to get a working copy)
$ hg bookmarks
- X 0:4e3505fd9583
Y 0:4e3505fd9583
- Z 0:4e3505fd9583
$ hg debugpushkey ../a namespaces
bookmarks
- phases
namespaces
$ hg debugpushkey ../a bookmarks
Y 4e3505fd95835d721066b76e75dbb8cc554d7f77
@@ -51,7 +44,6 @@ import bookmark by name
$ hg bookmark
X 0:4e3505fd9583
Y 0:4e3505fd9583
- Z 0:4e3505fd9583
export bookmark by name
@@ -63,7 +55,6 @@ export bookmark by name
searching for changes
no changes found
exporting bookmark W
- [1]
$ hg -R ../a bookmarks
W -1:000000000000
X 0:4e3505fd9583
@@ -78,7 +69,6 @@ delete a remote bookmark
searching for changes
no changes found
deleting remote bookmark W
- [1]
push/pull name that doesn't exist
@@ -108,7 +98,6 @@ divergent bookmarks
$ cd ../b
$ hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- updating bookmark foobar
$ echo c2 > f2
$ hg ci -Am2
adding f2
@@ -116,27 +105,23 @@ divergent bookmarks
$ hg book
* X 1:9b140be10808
Y 0:4e3505fd9583
- Z 0:4e3505fd9583
foo -1:000000000000
- foobar 1:9b140be10808
+ foobar -1:000000000000
- $ hg pull --config paths.foo=../a foo
- pulling from $TESTTMP/a (glob)
+ $ hg pull ../a
+ pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
- divergent bookmark X stored as X@foo
- updating bookmark Z
+ not updating divergent bookmark X
(run 'hg heads' to see heads, 'hg merge' to merge)
$ hg book
* X 1:9b140be10808
- X@foo 2:0d2164f0ce0d
Y 0:4e3505fd9583
- Z 2:0d2164f0ce0d
foo -1:000000000000
- foobar 1:9b140be10808
+ foobar -1:000000000000
$ hg push -f ../a
pushing to ../a
searching for changes
@@ -149,55 +134,6 @@ divergent bookmarks
Y 0:4e3505fd9583
Z 1:0d2164f0ce0d
-update a remote bookmark from a non-head to a head
-
- $ hg up -q Y
- $ echo c3 > f2
- $ hg ci -Am3
- adding f2
- created new head
- $ hg push ../a
- pushing to ../a
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files (+1 heads)
- updating bookmark Y
- $ hg -R ../a book
- * X 1:0d2164f0ce0d
- Y 3:f6fc62dde3c0
- Z 1:0d2164f0ce0d
-
-diverging a remote bookmark fails
-
- $ hg up -q 4e3505fd9583
- $ echo c4 > f2
- $ hg ci -Am4
- adding f2
- created new head
- $ hg book -f Y
-
- $ cat <<EOF > ../a/.hg/hgrc
- > [web]
- > push_ssl = false
- > allow_push = *
- > EOF
-
- $ hg -R ../a serve -p $HGPORT2 -d --pid-file=../hg2.pid
- $ cat ../hg2.pid >> $DAEMON_PIDS
-
- $ hg push http://localhost:$HGPORT2/
- pushing to http://localhost:$HGPORT2/
- searching for changes
- abort: push creates new remote head 4efff6d98829!
- (did you forget to merge? use push -f to force)
- [255]
- $ hg -R ../a book
- * X 1:0d2164f0ce0d
- Y 3:f6fc62dde3c0
- Z 1:0d2164f0ce0d
-
hgweb
$ cat <<EOF > .hg/hgrc
@@ -212,87 +148,46 @@ hgweb
$ hg debugpushkey http://localhost:$HGPORT/ namespaces
bookmarks
- phases
namespaces
$ hg debugpushkey http://localhost:$HGPORT/ bookmarks
- Y 4efff6d98829d9c824c621afd6e3f01865f5439f
- foobar 9b140be1080824d768c5a4691a564088eede71f9
- Z 0d2164f0ce0d8f1d6f94351eba04b794909be66c
- foo 0000000000000000000000000000000000000000
+ Y 4e3505fd95835d721066b76e75dbb8cc554d7f77
X 9b140be1080824d768c5a4691a564088eede71f9
+ foo 0000000000000000000000000000000000000000
+ foobar 0000000000000000000000000000000000000000
$ hg out -B http://localhost:$HGPORT/
comparing with http://localhost:$HGPORT/
searching for changed bookmarks
- no changed bookmarks found
- [1]
+ Z 0d2164f0ce0d
$ hg push -B Z http://localhost:$HGPORT/
pushing to http://localhost:$HGPORT/
searching for changes
no changes found
exporting bookmark Z
- [1]
$ hg book -d Z
$ hg in -B http://localhost:$HGPORT/
comparing with http://localhost:$HGPORT/
searching for changed bookmarks
Z 0d2164f0ce0d
foo 000000000000
- foobar 9b140be10808
+ foobar 000000000000
$ hg pull -B Z http://localhost:$HGPORT/
pulling from http://localhost:$HGPORT/
no changes found
- adding remote bookmark foobar
- adding remote bookmark Z
- adding remote bookmark foo
- divergent bookmark X stored as X@1
+ not updating divergent bookmark X
importing bookmark Z
$ hg clone http://localhost:$HGPORT/ cloned-bookmarks
requesting all changes
adding changesets
adding manifests
adding file changes
- added 5 changesets with 5 changes to 3 files (+3 heads)
+ added 3 changesets with 3 changes to 3 files (+1 heads)
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R cloned-bookmarks bookmarks
X 1:9b140be10808
- Y 4:4efff6d98829
+ Y 0:4e3505fd9583
Z 2:0d2164f0ce0d
foo -1:000000000000
- foobar 1:9b140be10808
-
- $ cd ..
-
-Pushing a bookmark should only push the changes required by that
-bookmark, not all outgoing changes:
- $ hg clone http://localhost:$HGPORT/ addmarks
- requesting all changes
- adding changesets
- adding manifests
- adding file changes
- added 5 changesets with 5 changes to 3 files (+3 heads)
- updating to branch default
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd addmarks
- $ echo foo > foo
- $ hg add foo
- $ hg commit -m 'add foo'
- $ echo bar > bar
- $ hg add bar
- $ hg commit -m 'add bar'
- $ hg co "tip^"
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg book add-foo
- $ hg book -r tip add-bar
-Note: this push *must* push only a single changeset, as that's the point
-of this test.
- $ hg push -B add-foo
- pushing to http://localhost:$HGPORT/
- searching for changes
- remote: adding changesets
- remote: adding manifests
- remote: adding file changes
- remote: added 1 changesets with 1 changes to 1 files
- exporting bookmark add-foo
+ foobar -1:000000000000
- $ cd ..
+ $ kill `cat ../hg.pid`
diff --git a/tests/test-bookmarks-rebase.t b/tests/test-bookmarks-rebase.t
index 1b89620..49eb5c6 100644
--- a/tests/test-bookmarks-rebase.t
+++ b/tests/test-bookmarks-rebase.t
@@ -39,10 +39,11 @@ rebase
saved backup bundle to $TESTTMP/.hg/strip-backup/*-backup.hg (glob)
$ hg log
- changeset: 3:42e5ed2cdcf4
+ changeset: 3:9163974d1cb5
bookmark: two
tag: tip
parent: 1:925d80f479bb
+ parent: 2:db815d6d32e6
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 3
diff --git a/tests/test-bookmarks-strip.t b/tests/test-bookmarks-strip.t
index 3c46d76..a97b292 100644
--- a/tests/test-bookmarks-strip.t
+++ b/tests/test-bookmarks-strip.t
@@ -34,7 +34,7 @@ set bookmark
$ hg book test2
-update to -2 (inactives the active bookmark)
+update to -2
$ hg update -r -2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -60,8 +60,8 @@ strip to revision 1
list bookmarks
$ hg book
- test 0:5c9ad3787638
- test2 0:5c9ad3787638
+ test 1:8cf31af87a2b
+ * test2 1:8cf31af87a2b
immediate rollback and reentrancy issue
diff --git a/tests/test-bookmarks.t b/tests/test-bookmarks.t
index 8b8d062..2be06a3 100644
--- a/tests/test-bookmarks.t
+++ b/tests/test-bookmarks.t
@@ -84,20 +84,6 @@ bookmarks revset
date: Thu Jan 01 00:00:00 1970 +0000
summary: 1
- $ hg log -r 'bookmark("re:X")'
- changeset: 0:f7b1eb17ad24
- bookmark: X
- 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(unknown)'
abort: bookmark 'unknown' does not exist
[255]
@@ -253,10 +239,9 @@ the bookmark extension should be ignored now that it is part of core
test summary
$ hg summary
- parent: 2:db815d6d32e6 tip
+ parent: 2:db815d6d32e6 tip Y Z x y
2
branch: default
- bookmarks: *Z Y x y
commit: (clean)
update: 1 new changesets, 2 branch heads (merge)
@@ -283,24 +268,18 @@ test rollback
test clone
- $ hg bookmark -r 2 -i @
- $ hg bookmark -r 2 -i a@
$ hg bookmarks
- @ 2:db815d6d32e6
X2 1:925d80f479bb
Y 2:db815d6d32e6
* Z 2:db815d6d32e6
- a@ 2:db815d6d32e6
x y 2:db815d6d32e6
$ hg clone . cloned-bookmarks
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R cloned-bookmarks bookmarks
- @ 2:db815d6d32e6
X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 2:db815d6d32e6
- a@ 2:db815d6d32e6
x y 2:db815d6d32e6
test clone with pull protocol
@@ -314,16 +293,11 @@ test clone with pull protocol
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R cloned-bookmarks-pull bookmarks
- @ 2:db815d6d32e6
X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 2:db815d6d32e6
- a@ 2:db815d6d32e6
x y 2:db815d6d32e6
- $ hg bookmark -d @
- $ hg bookmark -d a@
-
test clone with a specific revision
$ hg clone -r 925d80 . cloned-bookmarks-rev
@@ -349,7 +323,6 @@ create bundle with two heads
$ echo y > tobundle/y
$ hg -R tobundle branch test
marked working directory as branch test
- (branches are permanent and global, did you want a bookmark?)
$ hg -R tobundle add tobundle/y
$ hg -R tobundle commit -m'y'
$ hg -R tobundle bundle tobundle.hg
@@ -369,91 +342,3 @@ create bundle with two heads
* Z 3:125c9a1d6df6
x y 2:db815d6d32e6
-test wrongly formated bookmark
-
- $ echo '' >> .hg/bookmarks
- $ hg bookmarks
- X2 1:925d80f479bb
- Y 2:db815d6d32e6
- * Z 3:125c9a1d6df6
- x y 2:db815d6d32e6
- $ echo "Ican'thasformatedlines" >> .hg/bookmarks
- $ hg bookmarks
- malformed line in .hg/bookmarks: "Ican'thasformatedlines"
- X2 1:925d80f479bb
- Y 2:db815d6d32e6
- * Z 3:125c9a1d6df6
- x y 2:db815d6d32e6
-
-test missing revisions
-
- $ echo "925d80f479bc z" > .hg/bookmarks
- $ hg book
- no bookmarks set
-
-test stripping a non-checked-out but bookmarked revision
-
- $ hg --config extensions.graphlog= log --graph
- o changeset: 4:9ba5f110a0b3
- | branch: test
- | tag: tip
- | parent: 2:db815d6d32e6
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: y
- |
- | @ changeset: 3:125c9a1d6df6
- |/ user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: x
- |
- o changeset: 2:db815d6d32e6
- | parent: 0:f7b1eb17ad24
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: 2
- |
- | o changeset: 1:925d80f479bb
- |/ user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: 1
- |
- o changeset: 0:f7b1eb17ad24
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 0
-
- $ hg book should-end-on-two
- $ hg co --clean 4
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg book four
- $ hg --config extensions.mq= strip 3
- saved backup bundle to * (glob)
-should-end-on-two should end up pointing to revision 2, as that's the
-tipmost surviving ancestor of the stripped revision.
- $ hg --config extensions.graphlog= log --graph
- @ changeset: 3:9ba5f110a0b3
- | branch: test
- | bookmark: four
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: y
- |
- o changeset: 2:db815d6d32e6
- | bookmark: should-end-on-two
- | parent: 0:f7b1eb17ad24
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: 2
- |
- | o changeset: 1:925d80f479bb
- |/ user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: 1
- |
- o changeset: 0:f7b1eb17ad24
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 0
-
diff --git a/tests/test-branch-option.t b/tests/test-branch-option.t
index fa81c33..7d4b2c8 100644
--- a/tests/test-branch-option.t
+++ b/tests/test-branch-option.t
@@ -4,7 +4,6 @@ test branch selection options
$ cd branch
$ hg branch a
marked working directory as branch a
- (branches are permanent and global, did you want a bookmark?)
$ echo a > foo
$ hg ci -d '0 0' -Ama
adding foo
@@ -14,7 +13,6 @@ test branch selection options
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch c
marked working directory as branch c
- (branches are permanent and global, did you want a bookmark?)
$ echo c > foo
$ hg ci -d '0 0' -mc
$ hg tag -l z
@@ -31,21 +29,18 @@ test branch selection options
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch b
marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
$ echo b > foo
$ hg ci -d '0 0' -mb
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg --encoding utf-8 branch æ
marked working directory as branch \xc3\xa6 (esc)
- (branches are permanent and global, did you want a bookmark?)
$ echo ae1 > foo
$ hg ci -d '0 0' -mae1
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg --encoding utf-8 branch -f æ
marked working directory as branch \xc3\xa6 (esc)
- (branches are permanent and global, did you want a bookmark?)
$ echo ae2 > foo
$ hg ci -d '0 0' -mae2
created new head
@@ -53,7 +48,6 @@ test branch selection options
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch -f b
marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
$ echo b2 > foo
$ hg ci -d '0 0' -mb2
created new head
diff --git a/tests/test-branch-tag-confict.t b/tests/test-branch-tag-confict.t
index 0bb6ffa..c333dc9 100644
--- a/tests/test-branch-tag-confict.t
+++ b/tests/test-branch-tag-confict.t
@@ -14,7 +14,6 @@ Create a branch with the same name as the tag.
$ hg branch branchortag
marked working directory as branch branchortag
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -m 'Create a branch with the same name as a tag.'
This is what we have:
@@ -61,5 +60,3 @@ Updating to the branch:
date: Thu Jan 01 00:00:00 1970 +0000
summary: Create a branch with the same name as a tag.
-
- $ cd ..
diff --git a/tests/test-branches.t b/tests/test-branches.t
index 29d9c13..730edee 100644
--- a/tests/test-branches.t
+++ b/tests/test-branches.t
@@ -8,12 +8,10 @@
$ hg add a
$ hg branch a
marked working directory as branch a
- (branches are permanent and global, did you want a bookmark?)
$ hg commit -d '1 0' -m "Adding a branch"
$ hg branch q
marked working directory as branch q
- (branches are permanent and global, did you want a bookmark?)
$ echo 'aa' >a
$ hg branch -C
reset working directory to branch a
@@ -25,7 +23,6 @@
$ hg add b
$ hg branch b
marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
$ hg commit -d '2 0' -m "Adding b branch"
$ echo 'bh1' >bh1
@@ -42,7 +39,6 @@
$ hg add c
$ hg branch c
marked working directory as branch c
- (branches are permanent and global, did you want a bookmark?)
$ hg commit -d '5 0' -m "Adding c branch"
$ hg branch tip
@@ -59,7 +55,6 @@
$ hg add d
$ hg branch 'a branch name much longer than the default justification used by branches'
marked working directory as branch a branch name much longer than the default justification used by branches
- (branches are permanent and global, did you want a bookmark?)
$ hg commit -d '6 0' -m "Adding d branch"
$ hg branches
@@ -241,11 +236,6 @@
default 0:19709c5a4e75 (inactive)
$ hg branches -a
a branch name much longer than the default justification used by branches 7:10ff5895aa57
- $ hg branches -q
- a branch name much longer than the default justification used by branches
- c
- a
- default
$ hg heads b
no open branch heads found on branches b
[1]
@@ -408,5 +398,3 @@ custom closed branch color:
\x1b[0;34mc\x1b[0m \x1b[0;36m 14:f894c25619d3\x1b[0m (closed) (esc)
\x1b[0;35ma\x1b[0m \x1b[0;36m 5:d8cbc61dbaa6\x1b[0m (inactive) (esc)
\x1b[0;35mdefault\x1b[0m \x1b[0;36m 0:19709c5a4e75\x1b[0m (inactive) (esc)
-
- $ cd ..
diff --git a/tests/test-bundle-r.t b/tests/test-bundle-r.t
index ce03f01..47f824a 100644
--- a/tests/test-bundle-r.t
+++ b/tests/test-bundle-r.t
@@ -1,6 +1,6 @@
$ hg init test
$ cd test
- $ hg unbundle "$TESTDIR/bundles/remote.hg"
+ $ hg unbundle $TESTDIR/bundles/remote.hg
adding changesets
adding manifests
adding file changes
@@ -154,6 +154,7 @@
4 files, 9 changesets, 7 total revisions
$ hg rollback
repository tip rolled back to revision 4 (undo pull)
+ working directory now based on revision -1
$ cd ..
should fail
@@ -231,6 +232,7 @@ revision 8
4 files, 9 changesets, 7 total revisions
$ hg rollback
repository tip rolled back to revision 2 (undo unbundle)
+ working directory now based on revision 2
revision 2
@@ -255,6 +257,7 @@ revision 4
2 files, 5 changesets, 5 total revisions
$ hg rollback
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
@@ -274,6 +277,7 @@ revision 6
3 files, 7 changesets, 6 total revisions
$ hg rollback
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
@@ -324,5 +328,3 @@ revision 9
crosschecking files in changesets and manifests
checking files
4 files, 10 changesets, 7 total revisions
-
- $ cd ..
diff --git a/tests/test-bundle-type.t b/tests/test-bundle-type.t
index 5b8fc24..0d68e0e 100644
--- a/tests/test-bundle-type.t
+++ b/tests/test-bundle-type.t
@@ -95,6 +95,7 @@ test invalid bundle type
$ cd t1
$ hg bundle -a -t garbage ../bgarbage
+ 1 changesets found
abort: unknown bundle type specified with --type
[255]
$ cd ..
diff --git a/tests/test-bundle-vs-outgoing.t b/tests/test-bundle-vs-outgoing.t
index f4bab19..86c1c37 100644
--- a/tests/test-bundle-vs-outgoing.t
+++ b/tests/test-bundle-vs-outgoing.t
@@ -142,4 +142,3 @@ with a destination repo... i.e. it's wrong too
$ hg bundle --base 3 foo.bundle
5 changesets found
- $ cd ..
diff --git a/tests/test-bundle.t b/tests/test-bundle.t
index 305d8eb..54031c8 100644
--- a/tests/test-bundle.t
+++ b/tests/test-bundle.t
@@ -37,15 +37,6 @@ Setting up test
$ cd ..
$ hg init empty
-Bundle and phase
-
- $ hg -R test phase --force --secret 0
- $ hg -R test bundle phase.hg empty
- searching for changes
- no changes found (ignored 9 secret changesets)
- [1]
- $ hg -R test phase --draft -r 'head()'
-
Bundle --all
$ hg -R test bundle --all all.hg
@@ -99,6 +90,7 @@ Rollback empty
$ hg -R empty rollback
repository tip rolled back to revision -1 (undo pull)
+ working directory now based on revision -1
Pull full.hg into empty again (using --cwd)
@@ -129,6 +121,7 @@ Rollback empty
$ hg -R empty rollback
repository tip rolled back to revision -1 (undo pull)
+ working directory now based on revision -1
Pull full.hg into empty again (using -R)
@@ -205,8 +198,8 @@ Make sure bundlerepo doesn't leak tempfiles (issue2491)
Pull ../full.hg into empty (with hook)
- $ echo "[hooks]" >> .hg/hgrc
- $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup" >> .hg/hgrc
+ $ echo '[hooks]' >> .hg/hgrc
+ $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup' >> .hg/hgrc
doesn't work (yet ?)
@@ -219,13 +212,14 @@ hg -R bundle://../full.hg verify
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
+ 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
repository tip rolled back to revision -1 (undo pull)
+ working directory now based on revision -1
$ cd ..
Log -R bundle:empty+full.hg
@@ -242,7 +236,7 @@ Pull full.hg into empty again (using -R; with hook)
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
+ 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
@@ -384,13 +378,10 @@ Outgoing -R full.hg vs partial2 in partial
Outgoing -R does-not-exist.hg vs partial2 in partial
$ hg -R bundle://../does-not-exist.hg outgoing ../partial2
- abort: *../does-not-exist.hg* (glob)
+ abort: No such file or directory: ../does-not-exist.hg
[255]
$ cd ..
-hide outer repo
- $ hg init
-
Direct clone from bundle (all-history)
$ hg clone full.hg full-clone
@@ -420,7 +411,7 @@ When cloning from a non-copiable repository into '', do not
recurse infinitely (issue 2528)
$ hg clone full.hg ''
- abort: empty destination path is not valid
+ abort: No such file or directory
[255]
test for http://mercurial.selenic.com/bts/issue216
@@ -540,36 +531,32 @@ bundle single branch
$ hg init branchy
$ cd branchy
$ echo a >a
- $ echo x >x
$ hg ci -Ama
adding a
- adding x
- $ echo c >c
- $ echo xx >x
- $ hg ci -Amc
- adding c
- $ echo c1 >c1
- $ hg ci -Amc1
- adding c1
- $ hg up 0
- 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ echo b >b
$ hg ci -Amb
adding b
- created new head
$ echo b1 >b1
- $ echo xx >x
$ hg ci -Amb1
adding b1
- $ hg clone -q -r2 . part
+ $ hg up 0
+ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ $ echo c >c
+ $ hg ci -Amc
+ adding c
+ created new head
+ $ echo c1 >c1
+ $ hg ci -Amc1
+ adding c1
+ $ hg clone -q .#tip part
== bundling via incoming
$ hg in -R part --bundle incoming.hg --template "{node}\n" .
comparing with .
searching for changes
- 1a38c1b849e8b70c756d2d80b0b9a3ac0b7ea11a
- 057f4db07f61970e1c11e83be79e9d08adc4dc31
+ d2ae7f538514cd87c17547b0de4cea71fe1af9fb
+ 5ece8e77363e2b5269e27c66828b72da29e4341a
== bundling
@@ -579,25 +566,12 @@ bundle single branch
all remote heads known locally
2 changesets found
list of changesets:
- 1a38c1b849e8b70c756d2d80b0b9a3ac0b7ea11a
- 057f4db07f61970e1c11e83be79e9d08adc4dc31
+ d2ae7f538514cd87c17547b0de4cea71fe1af9fb
+ 5ece8e77363e2b5269e27c66828b72da29e4341a
bundling: 1/2 changesets (50.00%)
bundling: 2/2 changesets (100.00%)
bundling: 1/2 manifests (50.00%)
bundling: 2/2 manifests (100.00%)
- bundling: b 1/3 files (33.33%)
- bundling: b1 2/3 files (66.67%)
- bundling: x 3/3 files (100.00%)
+ bundling: b 1/2 files (50.00%)
+ bundling: b1 2/2 files (100.00%)
-== Test for issue3441
-
- $ hg clone -q -r0 . part2
- $ hg -q -R part2 pull bundle.hg
- $ hg -R part2 verify
- checking changesets
- checking manifests
- crosschecking files in changesets and manifests
- checking files
- 4 files, 3 changesets, 5 total revisions
-
- $ cd ..
diff --git a/tests/test-casecollision-i18n.t b/tests/test-casecollision-i18n.t
new file mode 100644
index 0000000..6be2dcc
--- /dev/null
+++ b/tests/test-casecollision-i18n.t
@@ -0,0 +1,43 @@
+run only on case-insensitive filesystems, because collision check at
+"hg update" is done only on case-insensitive filesystems
+
+ $ "$TESTDIR/hghave" icasefs || exit 80
+
+setup repository, and target files
+
+ $ HGENCODING=cp932
+ $ export HGENCODING
+ $ hg init t
+ $ cd t
+ $ python << EOF
+ > names = ["\x83\x41", # cp932(0x83, 0x41='A'), UNICODE(0x30a2)
+ > "\x83\x5A", # cp932(0x83, 0x5A='Z'), UNICODE(0x30bb)
+ > "\x83\x61", # cp932(0x83, 0x61='a'), UNICODE(0x30c2)
+ > "\x83\x7A", # cp932(0x83, 0x7A='z'), UNICODE(0x30db)
+ > ]
+ > for num, name in zip(range(len(names)), names):
+ > # file for getting target filename of "hg add"
+ > f = file(str(num), 'w'); f.write(name); f.close()
+ > # target file of "hg add"
+ > f = file(name, 'w'); f.write(name); f.close()
+ > EOF
+
+test filename collison check at "hg add"
+
+ $ hg add --config ui.portablefilenames=abort `cat 0`
+ $ hg add --config ui.portablefilenames=abort `cat 1`
+ $ hg add --config ui.portablefilenames=abort `cat 2`
+ $ hg add --config ui.portablefilenames=abort `cat 3`
+ $ hg status -a
+ A \x83A (esc)
+ A \x83Z (esc)
+ A \x83a (esc)
+ A \x83z (esc)
+
+test filename collision check at "hg update"
+
+ $ hg commit -m 'revision 0'
+ $ hg update null
+ 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
+ $ hg update tip
+ 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
diff --git a/tests/test-casecollision-merge.t b/tests/test-casecollision-merge.t
deleted file mode 100644
index 39e0ed2..0000000
--- a/tests/test-casecollision-merge.t
+++ /dev/null
@@ -1,209 +0,0 @@
-run only on case-insensitive filesystems
-
- $ "$TESTDIR/hghave" icasefs || exit 80
-
-################################
-test for branch merging
-################################
-
-test for rename awareness of case-folding collision check:
-
-(1) colliding file is one renamed from collided file:
-this is also case for issue3370.
-
- $ hg init merge_renameaware_1
- $ cd merge_renameaware_1
-
- $ echo a > a
- $ hg add a
- $ hg commit -m '#0'
- $ hg rename a tmp
- $ hg rename tmp A
- $ hg commit -m '#1'
- $ hg update 0
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo 'modified at #2' > a
- $ hg commit -m '#2'
- created new head
-
- $ hg merge
- 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)
- $ hg status -A
- M A
- a
- R a
- $ cat A
- modified at #2
-
- $ hg update --clean 1
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge
- 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)
- $ hg status -A
- M A
- a
- $ cat A
- modified at #2
-
- $ cd ..
-
-(2) colliding file is not related to collided file
-
- $ hg init merge_renameaware_2
- $ cd merge_renameaware_2
-
- $ echo a > a
- $ hg add a
- $ hg commit -m '#0'
- $ hg remove a
- $ hg commit -m '#1'
- $ echo A > A
- $ hg add A
- $ hg commit -m '#2'
- $ hg update --clean 0
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo 'modified at #3' > a
- $ hg commit -m '#3'
- created new head
-
- $ hg merge
- abort: case-folding collision between A and a
- [255]
- $ hg parents --template '{rev}\n'
- 3
- $ hg status -A
- C a
- $ cat a
- modified at #3
-
- $ hg update --clean 2
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge
- abort: case-folding collision between a and A
- [255]
- $ hg parents --template '{rev}\n'
- 2
- $ hg status -A
- C A
- $ cat A
- A
-
- $ cd ..
-
-
-################################
-test for linear updates
-################################
-
-test for rename awareness of case-folding collision check:
-
-(1) colliding file is one renamed from collided file
-
- $ hg init linearupdate_renameaware_1
- $ cd linearupdate_renameaware_1
-
- $ echo a > a
- $ hg add a
- $ hg commit -m '#0'
- $ hg rename a tmp
- $ hg rename tmp A
- $ hg commit -m '#1'
-
- $ hg update 0
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
-
- $ echo 'this is added line' >> a
- $ hg update 1
- merging a and A to A
- 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
- $ hg status -A
- M A
- $ cat A
- a
- this is added line
-
- $ cd ..
-
-(2) colliding file is not related to collided file
-
- $ hg init linearupdate_renameaware_2
- $ cd linearupdate_renameaware_2
-
- $ echo a > a
- $ hg add a
- $ hg commit -m '#0'
- $ hg remove a
- $ hg commit -m '#1'
- $ echo A > A
- $ hg add A
- $ hg commit -m '#2'
-
- $ hg update 0
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg parents --template '{rev}\n'
- 0
- $ hg status -A
- C a
- $ cat A
- a
- $ hg up -qC 2
-
- $ hg update --check 0
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg parents --template '{rev}\n'
- 0
- $ hg status -A
- C a
- $ cat a
- a
-
- $ hg update --clean 2
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg parents --template '{rev}\n'
- 2
- $ hg status -A
- C A
- $ cat A
- A
-
- $ cd ..
-
-(3) colliding file is not related to collided file: added in working dir
-
- $ hg init linearupdate_renameaware_3
- $ cd linearupdate_renameaware_3
-
- $ echo a > a
- $ hg add a
- $ hg commit -m '#0'
- $ hg rename a b
- $ hg commit -m '#1'
- $ hg update 0
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
-
- $ echo B > B
- $ hg add B
- $ hg status
- A B
- $ hg update
- abort: case-folding collision between b and B
- [255]
-
- $ hg update --check
- abort: uncommitted local changes
- [255]
-
- $ hg update --clean
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg parents --template '{rev}\n'
- 1
- $ hg status -A
- C b
- $ cat b
- a
-
- $ cd ..
diff --git a/tests/test-casecollision.t b/tests/test-casecollision.t
index 235c7f2..efb014a 100644
--- a/tests/test-casecollision.t
+++ b/tests/test-casecollision.t
@@ -31,37 +31,6 @@ test file addition with colliding case
$ hg st
A A
A a
- $ mkdir b
- $ touch b/c b/D
- $ hg add b
- adding b/D
- adding b/c
- $ touch b/d b/C
- $ hg add b/C
- warning: possible case-folding collision for b/C
- $ hg add b/d
- warning: possible case-folding collision for b/d
- $ touch b/a1 b/a2
- $ hg add b
- adding b/a1
- adding b/a2
- $ touch b/A2 b/a1.1
- $ hg add b/a1.1 b/A2
- warning: possible case-folding collision for b/A2
- $ touch b/f b/F
- $ hg add b/f b/F
- warning: possible case-folding collision for b/f
- $ touch g G
- $ hg add g G
- warning: possible case-folding collision for g
- $ mkdir h H
- $ touch h/x H/x
- $ hg add h/x H/x
- warning: possible case-folding collision for h/x
- $ touch h/s H/s
- $ hg add h/s
- $ hg add H/s
- warning: possible case-folding collision for H/s
case changing rename must not warn or abort
diff --git a/tests/test-casefolding.t b/tests/test-casefolding.t
index 5f59617..88f4831 100644
--- a/tests/test-casefolding.t
+++ b/tests/test-casefolding.t
@@ -1,8 +1,5 @@
$ "$TESTDIR/hghave" icasefs || exit 80
- $ hg debugfs | grep 'case-sensitive:'
- case-sensitive: no
-
test file addition with bad case
$ hg init repo1
@@ -26,48 +23,13 @@ test case collision on rename (issue750)
adding a
a
committed changeset 0:07f4944404050f47db2e5c5071e0e84e7a27bba9
-
-Case-changing renames should work:
-
$ hg mv a A
- $ hg mv A a
- $ hg st
+ A: not overwriting - file exists
-test changing case of path components
+'a' used to be removed under windows
- $ mkdir D
- $ echo b > D/b
- $ hg ci -Am addb D/b
- $ hg mv D/b d/b
- D/b: not overwriting - file exists
- $ hg mv D/b d/c
- $ hg st
- A D/c
- R D/b
- $ mv D temp
- $ mv temp d
- $ hg st
- A D/c
- R D/b
- $ hg revert -aq
- $ rm d/c
- $ echo c > D/c
- $ hg add D/c
+ $ test -f a || echo 'a is missing'
$ hg st
- A D/c
- $ hg ci -m addc D/c
- $ hg mv d/b d/e
- moving D/b to D/e (glob)
- $ hg st
- A D/e
- R D/b
- $ hg revert -aq
- $ rm d/e
- $ hg mv d/b D/B
- moving D/b to D/B (glob)
- $ hg st
- A D/B
- R D/b
$ cd ..
test case collision between revisions (issue912)
@@ -94,70 +56,4 @@ used to fail under case insensitive fs
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg up -C
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
-
-no clobbering of untracked files with wrong casing
-
- $ hg up -r null
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo gold > a
- $ hg up
- A: untracked file differs
- abort: untracked files in working directory differ from files in requested revision
- [255]
- $ cat a
- gold
-
- $ cd ..
-
-issue 3342: file in nested directory causes unexpected abort
-
- $ hg init issue3342
- $ cd issue3342
-
- $ mkdir -p a/B/c/D
- $ echo e > a/B/c/D/e
- $ hg add a/B/c/D/e
-
- $ cd ..
-
-issue 3340: mq does not handle case changes correctly
-
-in addition to reported case, 'hg qrefresh' is also tested against
-case changes.
-
- $ echo "[extensions]" >> $HGRCPATH
- $ echo "mq=" >> $HGRCPATH
-
- $ hg init issue3340
- $ cd issue3340
-
- $ echo a > mIxEdCaSe
- $ hg add mIxEdCaSe
- $ hg commit -m '#0'
- $ hg rename mIxEdCaSe tmp
- $ hg rename tmp MiXeDcAsE
- $ hg status -A
- A MiXeDcAsE
- mIxEdCaSe
- R mIxEdCaSe
- $ hg qnew changecase
- $ hg status -A
- C MiXeDcAsE
-
- $ hg qpop -a
- popping changecase
- patch queue now empty
- $ hg qnew refresh-casechange
- $ hg status -A
- C mIxEdCaSe
- $ hg rename mIxEdCaSe tmp
- $ hg rename tmp MiXeDcAsE
- $ hg status -A
- A MiXeDcAsE
- mIxEdCaSe
- R mIxEdCaSe
- $ hg qrefresh
- $ hg status -A
- C MiXeDcAsE
-
$ cd ..
diff --git a/tests/test-changelog-exec.t b/tests/test-changelog-exec.t
index 028f8e5..c2ace8c 100644
--- a/tests/test-changelog-exec.t
+++ b/tests/test-changelog-exec.t
@@ -49,7 +49,5 @@ this should not mention bar:
$ hg debugindex bar
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 5 ..... 1 b004912a8510 000000000000 000000000000 (re)
-
- $ cd ..
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 5 0 1 b004912a8510 000000000000 000000000000
diff --git a/tests/test-check-code-hg.py b/tests/test-check-code-hg.py
new file mode 100644
index 0000000..b480ca9
--- /dev/null
+++ b/tests/test-check-code-hg.py
@@ -0,0 +1,24 @@
+# Pass all working directory files through check-code.py
+
+import sys, os, imp
+rootdir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..'))
+if not os.path.isdir(os.path.join(rootdir, '.hg')):
+ sys.stderr.write('skipped: cannot check code on non-repository sources\n')
+ sys.exit(80)
+
+checkpath = os.path.join(rootdir, 'contrib/check-code.py')
+checkcode = imp.load_source('checkcode', checkpath)
+
+from mercurial import hg, ui
+u = ui.ui()
+repo = hg.repository(u, rootdir)
+checked = 0
+wctx = repo[None]
+for f in wctx:
+ # ignore removed and unknown files
+ if f not in wctx:
+ continue
+ checked += 1
+ checkcode.checkfile(os.path.join(rootdir, f))
+if not checked:
+ sys.stderr.write('no file checked!\n')
diff --git a/tests/test-check-code-hg.t b/tests/test-check-code-hg.t
deleted file mode 100644
index 89f1d1a..0000000
--- a/tests/test-check-code-hg.t
+++ /dev/null
@@ -1,183 +0,0 @@
- $ check_code="$TESTDIR"/../contrib/check-code.py
- $ cd "$TESTDIR"/..
- $ if hg identify -q > /dev/null; then :
- > else
- > echo "skipped: not a Mercurial working dir" >&2
- > exit 80
- > fi
- $ hg manifest | xargs "$check_code" || echo 'FAILURE IS NOT AN OPTION!!!'
-
- $ hg manifest | xargs "$check_code" --warnings --nolineno --per-file=0 || true
- hgext/convert/cvsps.py:0:
- > ui.write('Ancestors: %s\n' % (','.join(r)))
- warning: unwrapped ui message
- hgext/convert/cvsps.py:0:
- > ui.write('Parent: %d\n' % cs.parents[0].id)
- warning: unwrapped ui message
- hgext/convert/cvsps.py:0:
- > ui.write('Parents: %s\n' %
- warning: unwrapped ui message
- hgext/convert/cvsps.py:0:
- > ui.write('Branchpoints: %s \n' % ', '.join(branchpoints))
- warning: unwrapped ui message
- hgext/convert/cvsps.py:0:
- > ui.write('Author: %s\n' % cs.author)
- warning: unwrapped ui message
- hgext/convert/cvsps.py:0:
- > ui.write('Branch: %s\n' % (cs.branch or 'HEAD'))
- warning: unwrapped ui message
- hgext/convert/cvsps.py:0:
- > ui.write('Date: %s\n' % util.datestr(cs.date,
- warning: unwrapped ui message
- hgext/convert/cvsps.py:0:
- > ui.write('Log:\n')
- warning: unwrapped ui message
- hgext/convert/cvsps.py:0:
- > ui.write('Members: \n')
- warning: unwrapped ui message
- hgext/convert/cvsps.py:0:
- > ui.write('PatchSet %d \n' % cs.id)
- warning: unwrapped ui message
- hgext/convert/cvsps.py:0:
- > ui.write('Tag%s: %s \n' % (['', 's'][len(cs.tags) > 1],
- warning: unwrapped ui message
- hgext/hgk.py:0:
- > ui.write("parent %s\n" % p)
- warning: unwrapped ui message
- hgext/hgk.py:0:
- > ui.write('k=%s\nv=%s\n' % (name, value))
- warning: unwrapped ui message
- hgext/hgk.py:0:
- > ui.write("author %s %s %s\n" % (ctx.user(), int(date[0]), date[1]))
- warning: unwrapped ui message
- hgext/hgk.py:0:
- > ui.write("branch %s\n\n" % ctx.branch())
- warning: unwrapped ui message
- hgext/hgk.py:0:
- > ui.write("committer %s %s %s\n" % (committer, int(date[0]), date[1]))
- warning: unwrapped ui message
- hgext/hgk.py:0:
- > ui.write("revision %d\n" % ctx.rev())
- warning: unwrapped ui message
- hgext/hgk.py:0:
- > ui.write("tree %s\n" % short(ctx.changeset()[0]))
- warning: unwrapped ui message
- hgext/mq.py:0:
- > ui.write("mq: %s\n" % ', '.join(m))
- warning: unwrapped ui message
- hgext/patchbomb.py:0:
- > ui.write('Subject: %s\n' % subj)
- warning: unwrapped ui message
- hgext/patchbomb.py:0:
- > ui.write('From: %s\n' % sender)
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.note('branch %s\n' % data)
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.note('node %s\n' % str(data))
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.note('tag %s\n' % name)
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write("unpruned common: %s\n" % " ".join([short(n)
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write("format: id, p1, p2, cset, delta base, len(delta)\n")
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write("local is subset\n")
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write("remote is subset\n")
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('deltas against other : ' + fmt % pcfmt(numother,
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('deltas against p1 : ' + fmt % pcfmt(nump1, numdeltas))
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('deltas against p2 : ' + fmt % pcfmt(nump2, numdeltas))
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write("common heads: %s\n" % " ".join([short(n) for n in common]))
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write("match: %s\n" % m(d[0]))
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('deltas against prev : ' + fmt % pcfmt(numprev, numdeltas))
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('path %s\n' % k)
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('uncompressed data size (min/max/avg) : %d / %d / %d\n'
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write("digraph G {\n")
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write("internal: %s %s\n" % d)
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write("standard: %s\n" % util.datestr(d))
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('avg chain length : ' + fmt % avgchainlen)
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('case-sensitive: %s\n' % (util.checkcase('.debugfsinfo')
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('compression ratio : ' + fmt % compratio)
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('delta size (min/max/avg) : %d / %d / %d\n'
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('exec: %s\n' % (util.checkexec(path) and 'yes' or 'no'))
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('flags : %s\n' % ', '.join(flags))
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('format : %d\n' % format)
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('full revision size (min/max/avg) : %d / %d / %d\n'
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('revision size : ' + fmt2 % totalsize)
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('revisions : ' + fmt2 % numrevs)
- warning: unwrapped ui message
- warning: unwrapped ui message
- mercurial/commands.py:0:
- > ui.write('symlink: %s\n' % (util.checklink(path) and 'yes' or 'no'))
- warning: unwrapped ui message
- tests/autodiff.py:0:
- > ui.write('data lost for: %s\n' % fn)
- warning: unwrapped ui message
- tests/test-convert-mtn.t:0:
- > > function get_passphrase(keypair_id)
- don't use 'function', use old style
- tests/test-import-git.t:0:
- > > Mc\${NkU|\`?^000jF3jhEB
- ^ must be quoted
- tests/test-import.t:0:
- > > diff -Naur proj-orig/foo proj-new/foo
- don't use 'diff -N'
- don't use 'diff -N'
- tests/test-schemes.t:0:
- > > z = file:\$PWD/
- don't use $PWD, use `pwd`
- tests/test-ui-color.py:0:
- > testui.warn('warning\n')
- warning: unwrapped ui message
- tests/test-ui-color.py:0:
- > testui.write('buffered\n')
- warning: unwrapped ui message
diff --git a/tests/test-check-code.t b/tests/test-check-code.t
index ee061d8..193020e 100644
--- a/tests/test-check-code.t
+++ b/tests/test-check-code.t
@@ -26,23 +26,6 @@
> # Do not complain about our own definition
> def any(x):
> pass
- >
- > # try/except/finally block does not exist in Python 2.4
- > try:
- > pass
- > except StandardError, inst:
- > pass
- > finally:
- > pass
- >
- > # nested try/finally+try/except is allowed
- > try:
- > try:
- > pass
- > except StandardError, inst:
- > pass
- > finally:
- > pass
> EOF
$ cat > classstyle.py <<EOF
> class newstyle_class(object):
@@ -67,8 +50,8 @@
Python keyword is not a function
./wrong.py:3:
> return ( 5+6, 9)
- gratuitous whitespace in () or []
missing whitespace in expression
+ gratuitous whitespace in () or []
./quote.py:5:
> '"""', 42+1, """and
missing whitespace in expression
@@ -81,9 +64,6 @@
./non-py24.py:4:
> y = format(x)
any/all/format not available in Python 2.4
- ./non-py24.py:11:
- > try:
- no try/except/finally in Py2.4
./classstyle.py:4:
> class oldstyle_class:
old-style class, use class foo(object)
@@ -132,11 +112,3 @@
object comparison with literal
[1]
- $ cat > warning.py <<EOF
- > except:
- > EOF
- $ "$check_code" warning.py --warning --nolineno
- warning.py:0:
- > except:
- warning: naked except clause
- [1]
diff --git a/tests/test-check-pyflakes.t b/tests/test-check-pyflakes.t
index 3b5c272..6d87e60 100644
--- a/tests/test-check-pyflakes.t
+++ b/tests/test-check-pyflakes.t
@@ -1,6 +1,14 @@
$ "$TESTDIR/hghave" pyflakes || exit 80
- $ cd "`dirname "$TESTDIR"`"
- $ pyflakes mercurial hgext 2>&1 | "$TESTDIR/filterpyflakes.py"
+ $ cd $(dirname $TESTDIR)
+ $ pyflakes mercurial hgext 2>&1 | $TESTDIR/filterpyflakes.py
+ mercurial/hgweb/server.py:*: 'activeCount' imported but unused (glob)
+ mercurial/commands.py:*: 'base85' imported but unused (glob)
+ mercurial/commands.py:*: 'bdiff' imported but unused (glob)
+ mercurial/commands.py:*: 'mpatch' imported but unused (glob)
+ mercurial/commands.py:*: 'osutil' imported but unused (glob)
hgext/inotify/linux/__init__.py:*: 'from _inotify import *' used; unable to detect undefined names (glob)
+ mercurial/util.py:*: 'from posix import *' used; unable to detect undefined names (glob)
+ mercurial/windows.py:*: 'from win32 import *' used; unable to detect undefined names (glob)
+ mercurial/util.py:*: 'from windows import *' used; unable to detect undefined names (glob)
diff --git a/tests/test-children.t b/tests/test-children.t
index ca812ef..a1abf5f 100644
--- a/tests/test-children.t
+++ b/tests/test-children.t
@@ -121,5 +121,3 @@ hg children file0 at revision 0 (should be 2)
date: Thu Jan 01 00:00:02 1970 +0000
summary: 2
-
- $ cd ..
diff --git a/tests/test-churn.t b/tests/test-churn.t
index b744d64..b38d166 100644
--- a/tests/test-churn.t
+++ b/tests/test-churn.t
@@ -158,5 +158,3 @@ Ignore trailing or leading spaces in emails
user4@x.com 2 *****************************
user2 2 *****************************
with space 1 **************
-
- $ cd ..
diff --git a/tests/test-clone-cgi.t b/tests/test-clone-cgi.t
index f857f07..e925237 100644
--- a/tests/test-clone-cgi.t
+++ b/tests/test-clone-cgi.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" no-msys || exit 80 # MSYS will translate web paths as if they were file paths
-
This is a test of the wire protocol over CGI-based hgweb.
initialize repository
diff --git a/tests/test-clone-failure.t b/tests/test-clone-failure.t
new file mode 100644
index 0000000..07759c4
--- /dev/null
+++ b/tests/test-clone-failure.t
@@ -0,0 +1,78 @@
+No local source
+
+ $ hg clone a b
+ abort: repository a not found!
+ [255]
+
+No remote source
+
+ $ hg clone http://127.0.0.1:3121/a b
+ abort: error: Connection refused
+ [255]
+ $ rm -rf b # work around bug with http clone
+
+Inaccessible source
+
+ $ mkdir a
+ $ chmod 000 a
+ $ hg clone a b
+ abort: repository a not found!
+ [255]
+
+Inaccessible destination
+
+ $ hg init b
+ $ cd b
+ $ hg clone . ../a
+ abort: Permission denied: ../a
+ [255]
+ $ cd ..
+ $ chmod 700 a
+ $ rm -r a b
+
+Source of wrong type
+
+ $ if "$TESTDIR/hghave" -q fifo; then
+ > mkfifo a
+ > hg clone a b
+ > rm a
+ > else
+ > echo "abort: repository a not found!"
+ > fi
+ abort: repository a not found!
+
+Default destination, same directory
+
+ $ hg init q
+ $ hg clone q
+ destination directory: q
+ abort: destination 'q' is not empty
+ [255]
+
+destination directory not empty
+
+ $ mkdir a
+ $ echo stuff > a/a
+ $ hg clone q a
+ abort: destination 'a' is not empty
+ [255]
+
+leave existing directory in place after clone failure
+
+ $ hg init c
+ $ cd c
+ $ echo c > c
+ $ hg commit -A -m test
+ adding c
+ $ chmod -rx .hg/store/data
+ $ cd ..
+ $ mkdir d
+ $ hg clone c d 2> err
+ [255]
+ $ test -d d
+ $ test -d d/.hg
+ [1]
+
+reenable perm to allow deletion
+
+ $ chmod +rx c/.hg/store/data
diff --git a/tests/test-clone-pull-corruption.t b/tests/test-clone-pull-corruption.t
index b92269c..2d0ba9b 100644
--- a/tests/test-clone-pull-corruption.t
+++ b/tests/test-clone-pull-corruption.t
@@ -15,8 +15,8 @@ Create two repos, so that one of them can pull from the other one.
Add a hook to wait 5 seconds and then abort the commit
$ cd ../corrupted
- $ echo "[hooks]" >> .hg/hgrc
- $ echo "pretxncommit = sh -c 'sleep 5; exit 1'" >> .hg/hgrc
+ $ echo '[hooks]' >> .hg/hgrc
+ $ echo 'pretxncommit = sleep 5; exit 1' >> .hg/hgrc
start a commit...
@@ -48,5 +48,3 @@ see what happened
crosschecking files in changesets and manifests
checking files
1 files, 2 changesets, 2 total revisions
-
- $ cd ..
diff --git a/tests/test-clone-r.t b/tests/test-clone-r.t
index afd8498..96040ae 100644
--- a/tests/test-clone-r.t
+++ b/tests/test-clone-r.t
@@ -38,33 +38,33 @@
$ hg commit -m "0.3m"
$ hg debugindex -f 1 afile
- rev flag offset length size ..... link p1 p2 nodeid (re)
- 0 0000 0 3 2 ..... 0 -1 -1 362fef284ce2 (re)
- 1 0000 3 5 4 ..... 1 0 -1 125144f7e028 (re)
- 2 0000 8 7 6 ..... 2 1 -1 4c982badb186 (re)
- 3 0000 15 9 8 ..... 3 2 -1 19b1fc555737 (re)
+ rev flag offset length size base link p1 p2 nodeid
+ 0 0000 0 3 2 0 0 -1 -1 362fef284ce2
+ 1 0000 3 5 4 1 1 0 -1 125144f7e028
+ 2 0000 8 7 6 2 2 1 -1 4c982badb186
+ 3 0000 15 9 8 3 3 2 -1 19b1fc555737
$ hg debugindex adifferentfile
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 75 ..... 7 2565f3199a74 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 75 0 7 2565f3199a74 000000000000 000000000000
$ hg debugindex anotherfile
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 75 ..... 8 2565f3199a74 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 75 0 8 2565f3199a74 000000000000 000000000000
$ hg debugindex fred
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 8 ..... 6 12ab3bcc5ea4 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 8 0 6 12ab3bcc5ea4 000000000000 000000000000
$ hg debugindex --manifest
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 48 ..... 0 43eadb1d2d06 000000000000 000000000000 (re)
- 1 48 48 ..... 1 8b89697eba2c 43eadb1d2d06 000000000000 (re)
- 2 96 48 ..... 2 626a32663c2f 8b89697eba2c 000000000000 (re)
- 3 144 48 ..... 3 f54c32f13478 626a32663c2f 000000000000 (re)
- 4 192 .. ..... 6 de68e904d169 626a32663c2f 000000000000 (re)
- 5 2.. 68 ..... 7 09bb521d218d de68e904d169 000000000000 (re)
- 6 3.. 54 ..... 8 1fde233dfb0f f54c32f13478 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 48 0 0 43eadb1d2d06 000000000000 000000000000
+ 1 48 48 1 1 8b89697eba2c 43eadb1d2d06 000000000000
+ 2 96 48 2 2 626a32663c2f 8b89697eba2c 000000000000
+ 3 144 48 3 3 f54c32f13478 626a32663c2f 000000000000
+ 4 192 58 3 6 de68e904d169 626a32663c2f 000000000000
+ 5 250 68 3 7 09bb521d218d de68e904d169 000000000000
+ 6 318 54 6 8 1fde233dfb0f f54c32f13478 000000000000
$ hg verify
checking changesets
diff --git a/tests/test-clone-update-order.t b/tests/test-clone-update-order.t
index 8a4f89d..222d03e 100644
--- a/tests/test-clone-update-order.t
+++ b/tests/test-clone-update-order.t
@@ -6,7 +6,6 @@
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg branch mine
marked working directory as branch mine
- (branches are permanent and global, did you want a bookmark?)
$ echo hello > world
$ hg commit -Am hello
adding world
@@ -14,7 +13,6 @@
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg branch other
marked working directory as branch other
- (branches are permanent and global, did you want a bookmark?)
$ echo good > bye
$ hg commit -Am other
adding bye
diff --git a/tests/test-clone.t b/tests/test-clone.t
index 3f83949..4e2aded 100644
--- a/tests/test-clone.t
+++ b/tests/test-clone.t
@@ -10,7 +10,7 @@ Prepare repo a:
Create a non-inlined filelog:
- $ python -c 'file("data1", "wb").write("".join("%s\n" % x for x in range(10000)))'
+ $ python -c 'for x in range(10000): print x' >> data1
$ for j in 0 1 2 3 4 5 6 7 8 9; do
> cat data1 >> b
> hg commit -m test
@@ -43,20 +43,13 @@ Default operation:
Invalid dest '' must abort:
$ hg clone . ''
- abort: empty destination path is not valid
+ abort: No such file or directory
[255]
No update, with debug option:
-#if hardlink
$ hg --debug clone -U . ../c
linked 8 files
- listing keys for "bookmarks"
-#else
- $ hg --debug clone -U . ../c
- copied 8 files
- listing keys for "bookmarks"
-#endif
$ cd ../c
$ cat a 2>/dev/null || echo "a not present"
a not present
@@ -92,7 +85,7 @@ Check that path aliases are expanded:
$ hg clone -q -U --config 'paths.foobar=a#0' foobar f
$ hg -R f showconfig paths.default
- $TESTTMP/a#0 (glob)
+ $TESTTMP/a#0
Use --pull:
@@ -114,7 +107,7 @@ Use --pull:
Invalid dest '' with --pull must abort (issue2528):
$ hg clone --pull a ''
- abort: empty destination path is not valid
+ abort: No such file or directory
[255]
Clone to '.':
@@ -139,7 +132,6 @@ Adding some more history to repo a:
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg branch stable
marked working directory as branch stable
- (branches are permanent and global, did you want a bookmark?)
$ echo some text >a
$ hg ci -m "starting branch stable"
$ hg tag ref2
@@ -451,9 +443,8 @@ iterable in addbranchrevs()
$ rm -r ua
$ cat <<EOF > branchclone.py
- > from mercurial import ui, hg, extensions
+ > from mercurial import ui, hg
> myui = ui.ui()
- > extensions.loadall(myui)
> repo = hg.repository(myui, 'a')
> hg.clone(myui, {}, repo, dest="ua", branch=["stable",])
> EOF
@@ -466,102 +457,3 @@ iterable in addbranchrevs()
updating to branch stable
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -r ua
-
-
-Testing failures:
-
- $ mkdir fail
- $ cd fail
-
-No local source
-
- $ hg clone a b
- abort: repository a not found!
- [255]
-
-No remote source
-
- $ hg clone http://127.0.0.1:3121/a b
- abort: error: *refused* (glob)
- [255]
- $ rm -rf b # work around bug with http clone
-
-
-#if unix-permissions
-
-Inaccessible source
-
- $ mkdir a
- $ chmod 000 a
- $ hg clone a b
- abort: repository a not found!
- [255]
-
-Inaccessible destination
-
- $ hg init b
- $ cd b
- $ hg clone . ../a
- abort: Permission denied: ../a
- [255]
- $ cd ..
- $ chmod 700 a
- $ rm -r a b
-
-#endif
-
-
-#if fifo
-
-Source of wrong type
-
- $ mkfifo a
- $ hg clone a b
- abort: repository a not found!
- [255]
- $ rm a
-
-#endif
-
-Default destination, same directory
-
- $ hg init q
- $ hg clone q
- destination directory: q
- abort: destination 'q' is not empty
- [255]
-
-destination directory not empty
-
- $ mkdir a
- $ echo stuff > a/a
- $ hg clone q a
- abort: destination 'a' is not empty
- [255]
-
-
-#if unix-permissions
-
-leave existing directory in place after clone failure
-
- $ hg init c
- $ cd c
- $ echo c > c
- $ hg commit -A -m test
- adding c
- $ chmod -rx .hg/store/data
- $ cd ..
- $ mkdir d
- $ hg clone c d 2> err
- [255]
- $ test -d d
- $ test -d d/.hg
- [1]
-
-reenable perm to allow deletion
-
- $ chmod +rx c/.hg/store/data
-
-#endif
-
- $ cd ..
diff --git a/tests/test-command-template.t b/tests/test-command-template.t
index d3fa338..81989bd 100644
--- a/tests/test-command-template.t
+++ b/tests/test-command-template.t
@@ -43,15 +43,6 @@ Second branch starting at nullrev:
$ hg mv second fourth
$ hg commit -m third -d "2020-01-01 10:01"
-Quoting for ui.logtemplate
-
- $ hg tip --config "ui.logtemplate={rev}\n"
- 8
- $ hg tip --config "ui.logtemplate='{rev}\n'"
- 8
- $ hg tip --config 'ui.logtemplate="{rev}\n"'
- 8
-
Make sure user/global hgrc does not affect tests
$ echo '[ui]' > .hg/hgrc
@@ -442,13 +433,11 @@ Test xml styles:
Error if style not readable:
-#if unix-permissions
$ touch q
$ chmod 0 q
$ hg log --style ./q
abort: Permission denied: ./q
[255]
-#endif
Error if no style:
@@ -466,15 +455,13 @@ Error if style missing key:
Error if include fails:
$ echo 'changeset = q' >> t
-#if unix-permissions
$ hg log --style ./t
abort: template file ./q: Permission denied
[255]
- $ rm q
-#endif
Include works:
+ $ rm q
$ echo '{rev}' > q
$ hg log --style ./t
8
@@ -1125,6 +1112,10 @@ Filters work:
other
user
+ $ hg log --template '{date|age}\n' > /dev/null || exit 1
+
+ $ hg log -l1 --template '{date|age}\n'
+ 8 years from now
$ hg log --template '{date|date}\n'
Wed Jan 01 10:01:00 2020 +0000
Mon Jan 12 13:46:40 1970 +0000
@@ -1227,20 +1218,6 @@ Formatnode filter works:
$ hg --debug log -r 0 --template '{node|formatnode}\n'
1e4e1b8f71e05681d422154f5421e385fec3454f
-Age filter:
-
- $ hg log --template '{date|age}\n' > /dev/null || exit 1
-
- >>> from datetime import datetime
- >>> fp = open('a', 'w')
- >>> fp.write(str(datetime.now().year + 8) + '-01-01 00:00')
- >>> fp.close()
- $ hg add a
- $ hg commit -m future -d "`cat a`"
-
- $ hg log -l1 --template '{date|age}\n'
- 7 years from now
-
Error on syntax:
$ echo 'x = "f' >> t
diff --git a/tests/test-commandserver.py b/tests/test-commandserver.py
index db6e76d..66e405e 100644
--- a/tests/test-commandserver.py
+++ b/tests/test-commandserver.py
@@ -18,7 +18,7 @@ def writeblock(server, data):
def readchannel(server):
data = server.stdout.read(5)
if not data:
- raise EOFError
+ raise EOFError()
channel, length = struct.unpack('>cI', data)
if channel in 'IL':
return channel, length
@@ -26,8 +26,6 @@ def readchannel(server):
return channel, server.stdout.read(length)
def runcommand(server, args, output=sys.stdout, error=sys.stderr, input=None):
- print ' runcommand', ' '.join(args)
- sys.stdout.flush()
server.stdin.write('runcommand\n')
writeblock(server, '\0'.join(args))
@@ -54,10 +52,6 @@ def runcommand(server, args, output=sys.stdout, error=sys.stderr, input=None):
return
def check(func, repopath=None):
- print
- print 'testing %s:' % func.__name__
- print
- sys.stdout.flush()
server = connect(repopath)
try:
return func(server)
@@ -71,8 +65,7 @@ def unknowncommand(server):
def hellomessage(server):
ch, data = readchannel(server)
# escaping python tests output not supported
- print '%c, %r' % (ch, re.sub('encoding: [a-zA-Z0-9-]+', 'encoding: ***',
- data))
+ print '%c, %r' % (ch, re.sub('encoding: [a-zA-Z0-9-]+', 'encoding: ***', data))
# run an arbitrary command to make sure the next thing the server sends
# isn't part of the hello message
@@ -131,7 +124,7 @@ def cwd(server):
""" check that --cwd doesn't persist between requests """
readchannel(server)
os.mkdir('foo')
- f = open('foo/bar', 'wb')
+ f = open('foo/bar', 'w')
f.write('a')
f.close()
runcommand(server, ['--cwd', 'foo', 'st', 'bar'])
@@ -143,13 +136,12 @@ def localhgrc(server):
is used """
readchannel(server)
- # the cached repo local hgrc contains ui.foo=bar, so showconfig should
- # show it
+ # the cached repo local hgrc contains ui.foo=bar, so showconfig should show it
runcommand(server, ['showconfig'])
# but not for this repo
runcommand(server, ['init', 'foo'])
- runcommand(server, ['-R', 'foo', 'showconfig', 'ui', 'defaults'])
+ runcommand(server, ['-R', 'foo', 'showconfig'])
shutil.rmtree('foo')
def hook(**args):
@@ -159,83 +151,9 @@ def hook(**args):
def hookoutput(server):
readchannel(server)
runcommand(server, ['--config',
- 'hooks.pre-identify=python:test-commandserver.hook',
- 'id'],
+ 'hooks.pre-identify=python:test-commandserver.hook', 'id'],
input=cStringIO.StringIO('some input'))
-def outsidechanges(server):
- readchannel(server)
- f = open('a', 'ab')
- f.write('a\n')
- f.close()
- runcommand(server, ['status'])
- os.system('hg ci -Am2')
- runcommand(server, ['tip'])
- runcommand(server, ['status'])
-
-def bookmarks(server):
- readchannel(server)
- runcommand(server, ['bookmarks'])
-
- # changes .hg/bookmarks
- os.system('hg bookmark -i bm1')
- os.system('hg bookmark -i bm2')
- runcommand(server, ['bookmarks'])
-
- # changes .hg/bookmarks.current
- os.system('hg upd bm1 -q')
- runcommand(server, ['bookmarks'])
-
- runcommand(server, ['bookmarks', 'bm3'])
- f = open('a', 'ab')
- f.write('a\n')
- f.close()
- runcommand(server, ['commit', '-Amm'])
- runcommand(server, ['bookmarks'])
-
-def tagscache(server):
- readchannel(server)
- runcommand(server, ['id', '-t', '-r', '0'])
- os.system('hg tag -r 0 foo')
- runcommand(server, ['id', '-t', '-r', '0'])
-
-def setphase(server):
- readchannel(server)
- runcommand(server, ['phase', '-r', '.'])
- os.system('hg phase -r . -p')
- runcommand(server, ['phase', '-r', '.'])
-
-def rollback(server):
- readchannel(server)
- runcommand(server, ['phase', '-r', '.', '-p'])
- f = open('a', 'ab')
- f.write('a\n')
- f.close()
- runcommand(server, ['commit', '-Am.'])
- runcommand(server, ['rollback'])
- runcommand(server, ['phase', '-r', '.'])
-
-def branch(server):
- readchannel(server)
- runcommand(server, ['branch'])
- os.system('hg branch foo')
- runcommand(server, ['branch'])
- os.system('hg branch default')
-
-def hgignore(server):
- readchannel(server)
- f = open('.hgignore', 'ab')
- f.write('')
- f.close()
- runcommand(server, ['commit', '-Am.'])
- f = open('ignored-file', 'ab')
- f.write('')
- f.close()
- f = open('.hgignore', 'ab')
- f.write('ignored-file')
- f.close()
- runcommand(server, ['status', '-i', '-u'])
-
if __name__ == '__main__':
os.system('hg init')
@@ -251,10 +169,3 @@ if __name__ == '__main__':
hgrc.close()
check(localhgrc)
check(hookoutput)
- check(outsidechanges)
- check(bookmarks)
- check(tagscache)
- check(setphase)
- check(rollback)
- check(branch)
- check(hgignore)
diff --git a/tests/test-commandserver.py.out b/tests/test-commandserver.py.out
index 054ba6c..d9301b1 100644
--- a/tests/test-commandserver.py.out
+++ b/tests/test-commandserver.py.out
@@ -1,165 +1,54 @@
-
-testing hellomessage:
-
o, 'capabilities: getencoding runcommand\nencoding: ***'
- runcommand id
000000000000 tip
-
-testing unknowncommand:
-
abort: unknown command unknowncommand
-
-testing checkruncommand:
-
- runcommand
Mercurial Distributed SCM
basic commands:
- add add the specified files on the next commit
- annotate show changeset information by line for each file
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- init create a new repository in the given directory
- log show revision history of entire repository or files
- merge merge working directory with another revision
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- remove remove the specified files on the next commit
- serve start stand-alone webserver
- status show changed files in the working directory
- summary summarize working directory state
- update update working directory (or switch revisions)
+ add add the specified files on the next commit
+ annotate show changeset information by line for each file
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ init create a new repository in the given directory
+ log show revision history of entire repository or files
+ merge merge working directory with another revision
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ remove remove the specified files on the next commit
+ serve start stand-alone webserver
+ status show changed files in the working directory
+ summary summarize working directory state
+ update update working directory (or switch revisions)
use "hg help" for the full list of commands or "hg -v" for details
- runcommand id --quiet
000000000000
- runcommand id
000000000000 tip
- runcommand id --config ui.quiet=True
000000000000
- runcommand id
000000000000 tip
-
-testing inputeof:
-
server exit code = 1
-
-testing serverinput:
-
- runcommand import -
applying patch from stdin
- runcommand log
changeset: 0:eff892de26ec
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 1
-
-testing cwd:
-
- runcommand --cwd foo st bar
? bar
- runcommand st foo/bar
? foo/bar
-
-testing localhgrc:
-
- runcommand showconfig
bundle.mainreporoot=$TESTTMP
defaults.backout=-d "0 0"
defaults.commit=-d "0 0"
defaults.tag=-d "0 0"
ui.slash=True
ui.foo=bar
- runcommand init foo
- runcommand -R foo showconfig ui defaults
+bundle.mainreporoot=$TESTTMP/foo
defaults.backout=-d "0 0"
defaults.commit=-d "0 0"
defaults.tag=-d "0 0"
ui.slash=True
-
-testing hookoutput:
-
- runcommand --config hooks.pre-identify=python:test-commandserver.hook id
hook talking
now try to read something: 'some input'
eff892de26ec tip
-
-testing outsidechanges:
-
- runcommand status
-M a
- runcommand tip
-changeset: 1:d3a0a68be6de
-tag: tip
-user: test
-date: Thu Jan 01 00:00:00 1970 +0000
-summary: 2
-
- runcommand status
-
-testing bookmarks:
-
- runcommand bookmarks
-no bookmarks set
- runcommand bookmarks
- bm1 1:d3a0a68be6de
- bm2 1:d3a0a68be6de
- runcommand bookmarks
- * bm1 1:d3a0a68be6de
- bm2 1:d3a0a68be6de
- runcommand bookmarks bm3
- runcommand commit -Amm
- runcommand bookmarks
- bm1 1:d3a0a68be6de
- bm2 1:d3a0a68be6de
- * bm3 2:aef17e88f5f0
-
-testing tagscache:
-
- runcommand id -t -r 0
-
- runcommand id -t -r 0
-foo
-
-testing setphase:
-
- runcommand phase -r .
-3: draft
- runcommand phase -r .
-3: public
-
-testing rollback:
-
- runcommand phase -r . -p
-no phases changed
- runcommand commit -Am.
- runcommand rollback
-repository tip rolled back to revision 3 (undo commit)
-working directory now based on revision 3
- runcommand phase -r .
-3: public
-
-testing branch:
-
- runcommand branch
-default
-marked working directory as branch foo
-(branches are permanent and global, did you want a bookmark?)
- runcommand branch
-foo
-marked working directory as branch default
-(branches are permanent and global, did you want a bookmark?)
-
-testing hgignore:
-
- runcommand commit -Am.
-adding .hgignore
- runcommand status -i -u
-I ignored-file
diff --git a/tests/test-commit-amend.t b/tests/test-commit-amend.t
deleted file mode 100644
index 8550fb5..0000000
--- a/tests/test-commit-amend.t
+++ /dev/null
@@ -1,357 +0,0 @@
- $ hg init
-
-Setup:
-
- $ echo a >> a
- $ hg ci -Am 'base'
- adding a
-
-Refuse to amend public csets:
-
- $ hg phase -r . -p
- $ hg ci --amend
- abort: cannot amend public changesets
- [255]
- $ hg phase -r . -f -d
-
- $ echo a >> a
- $ hg ci -Am 'base1'
-
-Nothing to amend:
-
- $ hg ci --amend
- nothing changed
- [1]
-
- $ cat >> $HGRCPATH <<EOF
- > [hooks]
- > pretxncommit.foo = sh -c "echo \"pretxncommit \$HG_NODE\"; hg id -r \$HG_NODE"
- > EOF
-
-Amending changeset with changes in working dir:
-
- $ echo a >> a
- $ hg ci --amend -m 'amend base1'
- pretxncommit 9cd25b479c51be2f4ed2c38e7abdf7ce67d8e0dc
- 9cd25b479c51 tip
- saved backup bundle to $TESTTMP/.hg/strip-backup/489edb5b847d-amend-backup.hg (glob)
- $ echo 'pretxncommit.foo = ' >> $HGRCPATH
- $ hg diff -c .
- diff -r ad120869acf0 -r 9cd25b479c51 a
- --- a/a Thu Jan 01 00:00:00 1970 +0000
- +++ b/a Thu Jan 01 00:00:00 1970 +0000
- @@ -1,1 +1,3 @@
- a
- +a
- +a
- $ hg log
- changeset: 1:9cd25b479c51
- tag: tip
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: amend base1
-
- changeset: 0:ad120869acf0
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: base
-
-
-Add new file:
-
- $ echo b > b
- $ hg ci --amend -Am 'amend base1 new file'
- adding b
- saved backup bundle to $TESTTMP/.hg/strip-backup/9cd25b479c51-amend-backup.hg (glob)
-
-Remove file that was added in amended commit:
-
- $ hg rm b
- $ hg ci --amend -m 'amend base1 remove new file'
- saved backup bundle to $TESTTMP/.hg/strip-backup/e2bb3ecffd2f-amend-backup.hg (glob)
-
- $ hg cat b
- b: no such file in rev 664a9b2d60cd
- [1]
-
-No changes, just a different message:
-
- $ hg ci -v --amend -m 'no changes, new message'
- amending changeset 664a9b2d60cd
- copying changeset 664a9b2d60cd to ad120869acf0
- a
- stripping amended changeset 664a9b2d60cd
- 1 changesets found
- saved backup bundle to $TESTTMP/.hg/strip-backup/664a9b2d60cd-amend-backup.hg (glob)
- 1 changesets found
- adding branch
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- committed changeset 1:ea6e356ff2ad
- $ hg diff -c .
- diff -r ad120869acf0 -r ea6e356ff2ad a
- --- a/a Thu Jan 01 00:00:00 1970 +0000
- +++ b/a Thu Jan 01 00:00:00 1970 +0000
- @@ -1,1 +1,3 @@
- a
- +a
- +a
- $ hg log
- changeset: 1:ea6e356ff2ad
- tag: tip
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: no changes, new message
-
- changeset: 0:ad120869acf0
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: base
-
-
-Disable default date on commit so when -d isn't given, the old date is preserved:
-
- $ echo '[defaults]' >> $HGRCPATH
- $ echo 'commit=' >> $HGRCPATH
-
-Test -u/-d:
-
- $ hg ci --amend -u foo -d '1 0'
- saved backup bundle to $TESTTMP/.hg/strip-backup/ea6e356ff2ad-amend-backup.hg (glob)
- $ echo a >> a
- $ hg ci --amend -u foo -d '1 0'
- saved backup bundle to $TESTTMP/.hg/strip-backup/377b91ce8b56-amend-backup.hg (glob)
- $ hg log -r .
- changeset: 1:2c94e4a5756f
- tag: tip
- user: foo
- date: Thu Jan 01 00:00:01 1970 +0000
- summary: no changes, new message
-
-
-Open editor with old commit message if a message isn't given otherwise:
-
- $ cat > editor.sh << '__EOF__'
- > #!/bin/sh
- > cat $1
- > echo "another precious commit message" > "$1"
- > __EOF__
- $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit --amend -v
- amending changeset 2c94e4a5756f
- copying changeset 2c94e4a5756f to ad120869acf0
- no changes, new message
-
-
- HG: Enter commit message. Lines beginning with 'HG:' are removed.
- HG: Leave message empty to abort commit.
- HG: --
- HG: user: foo
- HG: branch 'default'
- HG: changed a
- a
- stripping amended changeset 2c94e4a5756f
- 1 changesets found
- saved backup bundle to $TESTTMP/.hg/strip-backup/2c94e4a5756f-amend-backup.hg (glob)
- 1 changesets found
- adding branch
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- committed changeset 1:ffb49186f961
-
-Same, but with changes in working dir (different code path):
-
- $ echo a >> a
- $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit --amend -v
- amending changeset ffb49186f961
- another precious commit message
-
-
- HG: Enter commit message. Lines beginning with 'HG:' are removed.
- HG: Leave message empty to abort commit.
- HG: --
- HG: user: foo
- HG: branch 'default'
- HG: changed a
- a
- copying changeset 27f3aacd3011 to ad120869acf0
- a
- stripping intermediate changeset 27f3aacd3011
- stripping amended changeset ffb49186f961
- 2 changesets found
- saved backup bundle to $TESTTMP/.hg/strip-backup/ffb49186f961-amend-backup.hg (glob)
- 1 changesets found
- adding branch
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- committed changeset 1:fb6cca43446f
-
- $ rm editor.sh
- $ hg log -r .
- changeset: 1:fb6cca43446f
- tag: tip
- user: foo
- date: Thu Jan 01 00:00:01 1970 +0000
- summary: another precious commit message
-
-
-Moving bookmarks, preserve active bookmark:
-
- $ hg book book1
- $ hg book book2
- $ hg ci --amend -m 'move bookmarks'
- saved backup bundle to $TESTTMP/.hg/strip-backup/fb6cca43446f-amend-backup.hg (glob)
- $ hg book
- book1 1:0cf1c7a51bcf
- * book2 1:0cf1c7a51bcf
- $ echo a >> a
- $ hg ci --amend -m 'move bookmarks'
- saved backup bundle to $TESTTMP/.hg/strip-backup/0cf1c7a51bcf-amend-backup.hg (glob)
- $ hg book
- book1 1:7344472bd951
- * book2 1:7344472bd951
-
- $ echo '[defaults]' >> $HGRCPATH
- $ echo "commit=-d '0 0'" >> $HGRCPATH
-
-Moving branches:
-
- $ hg branch foo
- marked working directory as branch foo
- (branches are permanent and global, did you want a bookmark?)
- $ echo a >> a
- $ hg ci -m 'branch foo'
- $ hg branch default -f
- marked working directory as branch default
- (branches are permanent and global, did you want a bookmark?)
- $ hg ci --amend -m 'back to default'
- saved backup bundle to $TESTTMP/.hg/strip-backup/1661ca36a2db-amend-backup.hg (glob)
- $ hg branches
- default 2:f24ee5961967
-
-Close branch:
-
- $ hg up -q 0
- $ echo b >> b
- $ hg branch foo
- marked working directory as branch foo
- (branches are permanent and global, did you want a bookmark?)
- $ hg ci -Am 'fork'
- adding b
- $ echo b >> b
- $ hg ci -mb
- $ hg ci --amend --close-branch -m 'closing branch foo'
- saved backup bundle to $TESTTMP/.hg/strip-backup/c962248fa264-amend-backup.hg (glob)
-
-Same thing, different code path:
-
- $ echo b >> b
- $ hg ci -m 'reopen branch'
- reopening closed branch head 4
- $ echo b >> b
- $ hg ci --amend --close-branch
- saved backup bundle to $TESTTMP/.hg/strip-backup/5e302dcc12b8-amend-backup.hg (glob)
- $ hg branches
- default 2:f24ee5961967
-
-Refuse to amend merges:
-
- $ hg up -q default
- $ hg merge foo
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci --amend
- abort: cannot amend while merging
- [255]
- $ hg ci -m 'merge'
- $ hg ci --amend
- abort: cannot amend merge changesets
- [255]
-
-Follow copies/renames:
-
- $ hg mv b c
- $ hg ci -m 'b -> c'
- $ hg mv c d
- $ hg ci --amend -m 'b -> d'
- saved backup bundle to $TESTTMP/.hg/strip-backup/9c207120aa98-amend-backup.hg (glob)
- $ hg st --rev '.^' --copies d
- A d
- b
- $ hg cp d e
- $ hg ci -m 'e = d'
- $ hg cp e f
- $ hg ci --amend -m 'f = d'
- saved backup bundle to $TESTTMP/.hg/strip-backup/fda2b3b27b22-amend-backup.hg (glob)
- $ hg st --rev '.^' --copies f
- A f
- d
-
- $ mv f f.orig
- $ hg rm -A f
- $ hg ci -m removef
- $ hg cp a f
- $ mv f.orig f
- $ hg ci --amend -m replacef
- saved backup bundle to $TESTTMP/.hg/strip-backup/20a7413547f9-amend-backup.hg (glob)
- $ hg st --change . --copies
- $ hg log -r . --template "{file_copies}\n"
-
-
-Move added file (issue3410):
-
- $ echo g >> g
- $ hg ci -Am g
- adding g
- $ hg mv g h
- $ hg ci --amend
- saved backup bundle to $TESTTMP/.hg/strip-backup/5daa77a5d616-amend-backup.hg (glob)
- $ hg st --change . --copies h
- A h
- $ hg log -r . --template "{file_copies}\n"
-
-
-Can't rollback an amend:
-
- $ hg rollback
- no rollback information available
- [1]
-
-Preserve extra dict (issue3430):
-
- $ hg branch a
- marked working directory as branch a
- (branches are permanent and global, did you want a bookmark?)
- $ echo a >> a
- $ hg ci -ma
- $ hg ci --amend -m "a'"
- saved backup bundle to $TESTTMP/.hg/strip-backup/167f8e3031df-amend-backup.hg (glob)
- $ hg log -r . --template "{branch}\n"
- a
- $ hg ci --amend -m "a''"
- saved backup bundle to $TESTTMP/.hg/strip-backup/ceac1a44c806-amend-backup.hg (glob)
- $ hg log -r . --template "{branch}\n"
- a
-
-Also preserve other entries in the dict that are in the old commit,
-first graft something so there's an additional entry:
-
- $ hg up 0 -q
- $ echo z > z
- $ hg ci -Am 'fork'
- adding z
- created new head
- $ hg up 11
- 5 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg graft 12
- grafting revision 12
- $ hg ci --amend -m 'graft amend'
- saved backup bundle to $TESTTMP/.hg/strip-backup/18a5124daf7a-amend-backup.hg (glob)
- $ hg log -r . --debug | grep extra
- extra: branch=a
- extra: source=2647734878ef0236dda712fae9c1651cf694ea8a
diff --git a/tests/test-commit-copy.t b/tests/test-commit-copy.t
new file mode 100644
index 0000000..4ca44c2
--- /dev/null
+++ b/tests/test-commit-copy.t
@@ -0,0 +1,16 @@
+ $ hg init dir
+ $ cd dir
+ $ echo bleh > bar
+ $ hg add bar
+ $ hg ci -m 'add bar'
+
+ $ hg cp bar foo
+ $ echo >> bar
+ $ hg ci -m 'cp bar foo; change bar'
+
+ $ hg debugrename foo
+ foo renamed from bar:26d3ca0dfd18e44d796b564e38dd173c9668d3a9
+ $ hg debugindex bar
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 6 0 0 26d3ca0dfd18 000000000000 000000000000
+ 1 6 7 1 1 d267bddd54f7 26d3ca0dfd18 000000000000
diff --git a/tests/test-commit-multiple.t b/tests/test-commit-multiple.t
index 3337b76..a7dcc90 100644
--- a/tests/test-commit-multiple.t
+++ b/tests/test-commit-multiple.t
@@ -31,7 +31,6 @@ add initial changesets
commit bug fixes on bug fix branch
$ hg branch fixes
marked working directory as branch fixes
- (branches are permanent and global, did you want a bookmark?)
$ echo fix1 > bugfix
$ echo fix1 >> file1
$ hg ci -Am"fix 1"
@@ -53,7 +52,6 @@ transplant bug fixes onto release branch
1 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg branch release
marked working directory as branch release
- (branches are permanent and global, did you want a bookmark?)
$ hg transplant 2 3
applying [0-9a-f]{12} (re)
[0-9a-f]{12} transplanted to [0-9a-f]{12} (re)
@@ -129,5 +127,3 @@ Do a size-preserving modification outside of that process
5 fix 2 bugfix file1
6 x bugfix file1
7 y file1
-
- $ cd ..
diff --git a/tests/test-commit-unresolved.t b/tests/test-commit-unresolved.t
index 70a3300..9a96698 100644
--- a/tests/test-commit-unresolved.t
+++ b/tests/test-commit-unresolved.t
@@ -29,7 +29,7 @@ Merging a conflict araises
$ hg merge
merging A
warning: conflicts during merge.
- merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging A failed!
1 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
@@ -45,5 +45,3 @@ Mark the conflict as resolved and commit
$ hg resolve -m A
$ hg commit -m "Merged"
-
- $ cd ..
diff --git a/tests/test-commit.t b/tests/test-commit.t
index 21fd277..afe4b79 100644
--- a/tests/test-commit.t
+++ b/tests/test-commit.t
@@ -43,7 +43,7 @@ commit added file that has been deleted
$ mkdir dir
$ echo boo > dir/file
$ hg add
- adding dir/file (glob)
+ adding dir/file
$ hg -v commit -m commit-9 dir
dir/file
committed changeset 2:d2a76177cb42
@@ -71,16 +71,12 @@ commit added file that has been deleted
$ cd ..
$ hg commit -m commit-14 does-not-exist
- abort: does-not-exist: * (glob)
+ abort: does-not-exist: No such file or directory
[255]
-
-#if symlink
$ ln -s foo baz
$ hg commit -m commit-15 baz
abort: baz: file not tracked!
[255]
-#endif
-
$ touch quux
$ hg commit -m commit-16 quux
abort: quux: file not tracked!
@@ -117,8 +113,8 @@ partial subdir commit test
$ mkdir bar
$ echo bar > bar/bar
$ hg add
- adding bar/bar (glob)
- adding foo/foo (glob)
+ adding bar/bar
+ adding foo/foo
$ hg ci -m commit-subdir-1 foo
$ hg ci -m commit-subdir-2 bar
@@ -222,6 +218,7 @@ subdir log
Issue1049: Hg permits partial commit of merge without warning
+ $ cd ..
$ hg init issue1049
$ cd issue1049
$ echo a > a
@@ -282,26 +279,3 @@ test commit message content
HG: removed removed
abort: empty commit message
[255]
- $ cd ..
-
-
-commit copy
-
- $ hg init dir2
- $ cd dir2
- $ echo bleh > bar
- $ hg add bar
- $ hg ci -m 'add bar'
-
- $ hg cp bar foo
- $ echo >> bar
- $ hg ci -m 'cp bar foo; change bar'
-
- $ hg debugrename foo
- foo renamed from bar:26d3ca0dfd18e44d796b564e38dd173c9668d3a9
- $ hg debugindex bar
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 6 ..... 0 26d3ca0dfd18 000000000000 000000000000 (re)
- 1 6 7 ..... 1 d267bddd54f7 26d3ca0dfd18 000000000000 (re)
-
- $ cd ..
diff --git a/tests/test-committer.t b/tests/test-committer.t
index 5208f4e..ab35790 100644
--- a/tests/test-committer.t
+++ b/tests/test-committer.t
@@ -53,7 +53,7 @@
[255]
$ rm .hg/hgrc
$ hg commit -m commit-1 2>&1
- no username found, using '[^']*' instead (re)
+ No username found, using '[^']*' instead (re)
$ echo space > asdf
$ hg commit -u ' ' -m commit-1
@@ -61,5 +61,3 @@
rollback completed
abort: empty username!
[255]
-
- $ cd ..
diff --git a/tests/test-config-case.t b/tests/test-config-case.t
index 9ef0be8..da0eeba 100644
--- a/tests/test-config-case.t
+++ b/tests/test-config-case.t
@@ -1,6 +1,3 @@
-hide outer repo
- $ hg init
-
$ echo '[Section]' >> $HGRCPATH
$ echo 'KeY = Case Sensitive' >> $HGRCPATH
$ echo 'key = lower case' >> $HGRCPATH
diff --git a/tests/test-conflict.t b/tests/test-conflict.t
index 113b429..30c8b9b 100644
--- a/tests/test-conflict.t
+++ b/tests/test-conflict.t
@@ -13,7 +13,7 @@
$ hg merge 1
merging a
warning: conflicts during merge.
- merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging a failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
diff --git a/tests/test-contrib.t b/tests/test-contrib.t
index 98acb43..a1e7683 100644
--- a/tests/test-contrib.t
+++ b/tests/test-contrib.t
@@ -1,6 +1,6 @@
Set vars:
- $ CONTRIBDIR="$TESTDIR/../contrib"
+ $ CONTRIBDIR=$TESTDIR/../contrib
Prepare repo-a:
@@ -26,7 +26,7 @@ Prepare repo-a:
Dumping revlog of file a to stdout:
- $ python "$CONTRIBDIR/dumprevlog" .hg/store/data/a.i
+ $ python $CONTRIBDIR/dumprevlog .hg/store/data/a.i
file: .hg/store/data/a.i
node: 183d2312b35066fb6b3b449b84efc370d50993d0
linkrev: 0
@@ -58,14 +58,14 @@ Dumping revlog of file a to stdout:
Dump all revlogs to file repo.dump:
- $ find .hg/store -name "*.i" | sort | xargs python "$CONTRIBDIR/dumprevlog" > ../repo.dump
+ $ find .hg/store -name "*.i" | sort | xargs python $CONTRIBDIR/dumprevlog > ../repo.dump
$ cd ..
Undumping into repo-b:
$ hg init repo-b
$ cd repo-b
- $ python "$CONTRIBDIR/undumprevlog" < ../repo.dump
+ $ python $CONTRIBDIR/undumprevlog < ../repo.dump
.hg/store/00changelog.i
.hg/store/00manifest.i
.hg/store/data/a.i
@@ -104,12 +104,10 @@ Compare repos:
[1]
-#if hardlink
-
Test shrink-revlog:
$ cd repo-a
- $ hg --config extensions.shrink="$CONTRIBDIR/shrink-revlog.py" shrink
- shrinking $TESTTMP/repo-a/.hg/store/00manifest.i (glob)
+ $ hg --config extensions.shrink=$CONTRIBDIR/shrink-revlog.py shrink
+ shrinking $TESTTMP/repo-a/.hg/store/00manifest.i
reading revs
sorting revs
writing revs
@@ -117,8 +115,8 @@ Test shrink-revlog:
new file size: 324 bytes ( 0.0 MiB)
shrinkage: 0.0% (1.0x)
note: old revlog saved in:
- $TESTTMP/repo-a/.hg/store/00manifest.i.old (glob)
- $TESTTMP/repo-a/.hg/store/00manifest.d.old (glob)
+ $TESTTMP/repo-a/.hg/store/00manifest.i.old
+ $TESTTMP/repo-a/.hg/store/00manifest.d.old
(You can delete those files when you are satisfied that your
repository is still sane. Running 'hg verify' is strongly recommended.)
$ hg verify
@@ -129,8 +127,6 @@ Test shrink-revlog:
1 files, 3 changesets, 3 total revisions
$ cd ..
-#endif
-
Test simplemerge command:
$ cp "$CONTRIBDIR/simplemerge" .
diff --git a/tests/test-convert-authormap.t b/tests/test-convert-authormap.t
index 9d5ca9f..bc17837 100644
--- a/tests/test-convert-authormap.t
+++ b/tests/test-convert-authormap.t
@@ -22,12 +22,12 @@ Explicit --authors
> EOF
$ hg convert --authors authormap.txt orig new
initializing destination new repository
- ignoring bad line in author map file authormap.txt: this line is ignored
+ Ignoring bad line in author map file authormap.txt: this line is ignored
scanning source...
sorting...
converting...
0 foo
- writing author map file $TESTTMP/new/.hg/authormap (glob)
+ Writing author map file new/.hg/authormap
$ cat new/.hg/authormap
user name=Long User Name
$ hg -Rnew log
@@ -44,7 +44,7 @@ Implicit .hg/authormap
$ hg init new
$ mv authormap.txt new/.hg/authormap
$ hg convert orig new
- ignoring bad line in author map file $TESTTMP/new/.hg/authormap: this line is ignored (glob)
+ Ignoring bad line in author map file new/.hg/authormap: this line is ignored
scanning source...
sorting...
converting...
diff --git a/tests/test-convert-baz b/tests/test-convert-baz
new file mode 100755
index 0000000..699cca5
--- /dev/null
+++ b/tests/test-convert-baz
@@ -0,0 +1,79 @@
+#!/bin/sh
+
+"$TESTDIR/hghave" baz || exit 80
+
+baz my-id "mercurial <mercurial@selenic.com>"
+
+echo "[extensions]" >> $HGRCPATH
+echo "convert=" >> $HGRCPATH
+echo 'graphlog =' >> $HGRCPATH
+
+echo % create baz archive
+baz make-archive baz@mercurial--convert hg-test-convert-baz
+
+echo % initialize baz repo
+mkdir baz-repo
+cd baz-repo/
+baz init-tree baz@mercurial--convert/baz--test--0
+baz import
+
+echo % create initial files
+echo 'this is a file' > a
+baz add a
+mkdir src
+baz add src
+cd src
+dd count=1 if=/dev/zero of=b > /dev/null 2> /dev/null
+baz add b
+# HACK: hide GNU tar-1.22 "tar: The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+baz commit -s "added a file, src and src/b (binary)" 2>&1 | grep -v '^tar'
+
+echo % create link file and modify a
+ln -s ../a a-link
+baz add a-link
+echo 'this a modification to a' >> ../a
+baz commit -s "added link to a and modify a"
+
+echo % create second link and modify b
+ln -s ../a a-link-2
+baz add a-link-2
+dd count=1 seek=1 if=/dev/zero of=b > /dev/null 2> /dev/null
+baz commit -s "added second link and modify b"
+
+echo % b file to link and a-link-2 to regular file
+rm -f a-link-2
+echo 'this is now a regular file' > a-link-2
+ln -sf ../a b
+baz commit -s "file to link and link to file test"
+
+echo % move a-link-2 file and src directory
+cd ..
+baz mv src/a-link-2 c
+baz mv src test
+baz commit -s "move and rename a-link-2 file and src directory"
+
+echo % move and add the moved file again
+echo e > e
+baz add e
+baz commit -s "add e"
+baz mv e f
+echo ee > e
+baz add e
+baz commit -s "move e and recreate it again"
+cd ..
+
+echo % converting baz repo to Mercurial
+hg convert baz-repo baz-repo-hg
+
+baz register-archive -d baz@mercurial--convert
+
+glog()
+{
+ hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
+}
+
+echo % show graph log
+glog -R baz-repo-hg
+hg up -q -R baz-repo-hg
+hg -R baz-repo-hg manifest --debug
+hg -R baz-repo-hg log -r 5 -r 7 -C --debug | grep copies
diff --git a/tests/test-convert-baz.out b/tests/test-convert-baz.out
new file mode 100644
index 0000000..fc7d35e
--- /dev/null
+++ b/tests/test-convert-baz.out
@@ -0,0 +1,96 @@
+% create baz archive
+% initialize baz repo
+* creating version baz@mercurial--convert/baz--test--0
+* imported baz@mercurial--convert/baz--test--0
+% create initial files
+* build pristine tree for baz@mercurial--convert/baz--test--0--base-0
+* Scanning for full-tree revision: .
+* from import revision: baz@mercurial--convert/baz--test--0--base-0
+A/ .arch-ids
+A/ src
+A/ src/.arch-ids
+A .arch-ids/a.id
+A a
+A src/.arch-ids/=id
+A src/.arch-ids/b.id
+A src/b
+* update pristine tree (baz@mercurial--convert/baz--test--0--base-0 => baz--test--0--patch-1)
+* committed baz@mercurial--convert/baz--test--0--patch-1
+% create link file and modify a
+A src/.arch-ids/a-link.id
+A src/a-link
+M a
+* update pristine tree (baz@mercurial--convert/baz--test--0--patch-1 => baz--test--0--patch-2)
+* committed baz@mercurial--convert/baz--test--0--patch-2
+% create second link and modify b
+A src/.arch-ids/a-link-2.id
+A src/a-link-2
+Mb src/b
+* update pristine tree (baz@mercurial--convert/baz--test--0--patch-2 => baz--test--0--patch-3)
+* committed baz@mercurial--convert/baz--test--0--patch-3
+% b file to link and a-link-2 to regular file
+fl src/b
+lf src/a-link-2
+* update pristine tree (baz@mercurial--convert/baz--test--0--patch-3 => baz--test--0--patch-4)
+* committed baz@mercurial--convert/baz--test--0--patch-4
+% move a-link-2 file and src directory
+D/ src/.arch-ids
+A/ test/.arch-ids
+/> src test
+=> src/.arch-ids/a-link-2.id .arch-ids/c.id
+=> src/a-link-2 c
+=> src/.arch-ids/=id test/.arch-ids/=id
+=> src/.arch-ids/a-link.id test/.arch-ids/a-link.id
+=> src/.arch-ids/b.id test/.arch-ids/b.id
+* update pristine tree (baz@mercurial--convert/baz--test--0--patch-4 => baz--test--0--patch-5)
+* committed baz@mercurial--convert/baz--test--0--patch-5
+% move and add the moved file again
+A .arch-ids/e.id
+A e
+* update pristine tree (baz@mercurial--convert/baz--test--0--patch-5 => baz--test--0--patch-6)
+* committed baz@mercurial--convert/baz--test--0--patch-6
+A .arch-ids/e.id
+A e
+=> .arch-ids/e.id .arch-ids/f.id
+=> e f
+* update pristine tree (baz@mercurial--convert/baz--test--0--patch-6 => baz--test--0--patch-7)
+* committed baz@mercurial--convert/baz--test--0--patch-7
+% converting baz repo to Mercurial
+initializing destination baz-repo-hg repository
+analyzing tree version baz@mercurial--convert/baz--test--0...
+scanning source...
+sorting...
+converting...
+7 initial import
+6 added a file, src and src/b (binary)
+5 added link to a and modify a
+4 added second link and modify b
+3 file to link and link to file test
+2 move and rename a-link-2 file and src directory
+1 add e
+0 move e and recreate it again
+% show graph log
+o 7 "move e and recreate it again" files: e f
+|
+o 6 "add e" files: e
+|
+o 5 "move and rename a-link-2 file and src directory" files: c src/a-link src/a-link-2 src/b test/a-link test/b
+|
+o 4 "file to link and link to file test" files: src/a-link-2 src/b
+|
+o 3 "added second link and modify b" files: src/a-link-2 src/b
+|
+o 2 "added link to a and modify a" files: a src/a-link
+|
+o 1 "added a file, src and src/b (binary)" files: a src/b
+|
+o 0 "initial import" files:
+
+c4072c4b72e1cabace081888efa148ee80ca3cbb 644 a
+0201ac32a3a8e86e303dff60366382a54b48a72e 644 c
+1a4a864db0073705a11b1439f563bfa4b46d9246 644 e
+09e0222742fc3f75777fa9d68a5d8af7294cb5e7 644 f
+c0067ba5ff0b7c9a3eb17270839d04614c435623 644 @ test/a-link
+375f4263d86feacdea7e3c27100abd1560f2a973 644 @ test/b
+copies: c (src/a-link-2) test/a-link (src/a-link) test/b (src/b)
+copies: f (e)
diff --git a/tests/test-convert-baz.t b/tests/test-convert-baz.t
deleted file mode 100644
index 763e83c..0000000
--- a/tests/test-convert-baz.t
+++ /dev/null
@@ -1,163 +0,0 @@
- $ "$TESTDIR/hghave" baz symlink || exit 80
-
- $ baz my-id "mercurial <mercurial@selenic.com>"
-
- $ echo "[extensions]" >> $HGRCPATH
- $ echo "convert=" >> $HGRCPATH
- $ echo 'graphlog =' >> $HGRCPATH
-
-create baz archive
- $ baz make-archive baz@mercurial--convert hg-test-convert-baz
-
-initialize baz repo
- $ mkdir baz-repo
- $ cd baz-repo/
- $ baz init-tree baz@mercurial--convert/baz--test--0
- $ baz import
- * creating version baz@mercurial--convert/baz--test--0
- * imported baz@mercurial--convert/baz--test--0
-
-create initial files
- $ echo 'this is a file' > a
- $ baz add a
- $ mkdir src
- $ baz add src
- $ cd src
- $ dd count=1 if=/dev/zero of=b > /dev/null 2> /dev/null
- $ baz add b
-HACK: hide GNU tar-1.22 "tar: The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
- $ baz commit -s "added a file, src and src/b (binary)" 2>&1 | grep -v '^tar'
- * build pristine tree for baz@mercurial--convert/baz--test--0--base-0
- * Scanning for full-tree revision: .
- * from import revision: baz@mercurial--convert/baz--test--0--base-0
- A/ .arch-ids
- A/ src
- A/ src/.arch-ids
- A .arch-ids/a.id
- A a
- A src/.arch-ids/=id
- A src/.arch-ids/b.id
- A src/b
- * update pristine tree (baz@mercurial--convert/baz--test--0--base-0 => baz--test--0--patch-1)
- * committed baz@mercurial--convert/baz--test--0--patch-1
-
-create link file and modify a
- $ ln -s ../a a-link
- $ baz add a-link
- $ echo 'this a modification to a' >> ../a
- $ baz commit -s "added link to a and modify a"
- A src/.arch-ids/a-link.id
- A src/a-link
- M a
- * update pristine tree (baz@mercurial--convert/baz--test--0--patch-1 => baz--test--0--patch-2)
- * committed baz@mercurial--convert/baz--test--0--patch-2
-
-create second link and modify b
- $ ln -s ../a a-link-2
- $ baz add a-link-2
- $ dd count=1 seek=1 if=/dev/zero of=b > /dev/null 2> /dev/null
- $ baz commit -s "added second link and modify b"
- A src/.arch-ids/a-link-2.id
- A src/a-link-2
- Mb src/b
- * update pristine tree (baz@mercurial--convert/baz--test--0--patch-2 => baz--test--0--patch-3)
- * committed baz@mercurial--convert/baz--test--0--patch-3
-
-b file to link and a-link-2 to regular file
- $ rm -f a-link-2
- $ echo 'this is now a regular file' > a-link-2
- $ ln -sf ../a b
- $ baz commit -s "file to link and link to file test"
- fl src/b
- lf src/a-link-2
- * update pristine tree (baz@mercurial--convert/baz--test--0--patch-3 => baz--test--0--patch-4)
- * committed baz@mercurial--convert/baz--test--0--patch-4
-
-move a-link-2 file and src directory
- $ cd ..
- $ baz mv src/a-link-2 c
- $ baz mv src test
- $ baz commit -s "move and rename a-link-2 file and src directory"
- D/ src/.arch-ids
- A/ test/.arch-ids
- /> src test
- => src/.arch-ids/a-link-2.id .arch-ids/c.id
- => src/a-link-2 c
- => src/.arch-ids/=id test/.arch-ids/=id
- => src/.arch-ids/a-link.id test/.arch-ids/a-link.id
- => src/.arch-ids/b.id test/.arch-ids/b.id
- * update pristine tree (baz@mercurial--convert/baz--test--0--patch-4 => baz--test--0--patch-5)
- * committed baz@mercurial--convert/baz--test--0--patch-5
-
-move and add the moved file again
- $ echo e > e
- $ baz add e
- $ baz commit -s "add e"
- A .arch-ids/e.id
- A e
- * update pristine tree (baz@mercurial--convert/baz--test--0--patch-5 => baz--test--0--patch-6)
- * committed baz@mercurial--convert/baz--test--0--patch-6
- $ baz mv e f
- $ echo ee > e
- $ baz add e
- $ baz commit -s "move e and recreate it again"
- A .arch-ids/e.id
- A e
- => .arch-ids/e.id .arch-ids/f.id
- => e f
- * update pristine tree (baz@mercurial--convert/baz--test--0--patch-6 => baz--test--0--patch-7)
- * committed baz@mercurial--convert/baz--test--0--patch-7
- $ cd ..
-
-converting baz repo to Mercurial
- $ hg convert baz-repo baz-repo-hg
- initializing destination baz-repo-hg repository
- analyzing tree version baz@mercurial--convert/baz--test--0...
- scanning source...
- sorting...
- converting...
- 7 initial import
- 6 added a file, src and src/b (binary)
- 5 added link to a and modify a
- 4 added second link and modify b
- 3 file to link and link to file test
- 2 move and rename a-link-2 file and src directory
- 1 add e
- 0 move e and recreate it again
-
- $ baz register-archive -d baz@mercurial--convert
-
- $ glog()
- > {
- > hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
- > }
-
-show graph log
- $ glog -R baz-repo-hg
- o 7 "move e and recreate it again" files: e f
- |
- o 6 "add e" files: e
- |
- o 5 "move and rename a-link-2 file and src directory" files: c src/a-link src/a-link-2 src/b test/a-link test/b
- |
- o 4 "file to link and link to file test" files: src/a-link-2 src/b
- |
- o 3 "added second link and modify b" files: src/a-link-2 src/b
- |
- o 2 "added link to a and modify a" files: a src/a-link
- |
- o 1 "added a file, src and src/b (binary)" files: a src/b
- |
- o 0 "initial import" files:
-
- $ hg up -q -R baz-repo-hg
- $ hg -R baz-repo-hg manifest --debug
- c4072c4b72e1cabace081888efa148ee80ca3cbb 644 a
- 0201ac32a3a8e86e303dff60366382a54b48a72e 644 c
- 1a4a864db0073705a11b1439f563bfa4b46d9246 644 e
- 09e0222742fc3f75777fa9d68a5d8af7294cb5e7 644 f
- c0067ba5ff0b7c9a3eb17270839d04614c435623 644 @ test/a-link
- 375f4263d86feacdea7e3c27100abd1560f2a973 644 @ test/b
- $ hg -R baz-repo-hg log -r 5 -r 7 -C --debug | grep copies
- copies: c (src/a-link-2) test/a-link (src/a-link) test/b (src/b)
- copies: f (e)
diff --git a/tests/test-convert-bzr-directories.t b/tests/test-convert-bzr-directories.t
index 653d7b1..613fd6a 100644
--- a/tests/test-convert-bzr-directories.t
+++ b/tests/test-convert-bzr-directories.t
@@ -149,45 +149,3 @@ directory replace
644 second/something
644 third/dummy
$ cd ..
-
-divergent nested renames (issue3089)
-
- $ mkdir test-divergent-renames
- $ cd test-divergent-renames
- $ bzr init -q source
- $ cd source
- $ mkdir -p a/c
- $ echo a > a/fa
- $ echo c > a/c/fc
- $ bzr add -q a
- $ bzr commit -q -m 'Initial layout'
- $ bzr mv a b
- a => b
- $ mkdir a
- $ bzr add a
- add(ed|ing) a (re)
- $ bzr mv b/c a/c
- b/c => a/c
- $ bzr status
- added:
- a/
- renamed:
- a/? => b/? (re)
- a/c/? => a/c/? (re)
- $ bzr commit -q -m 'Divergent renames'
- $ cd ..
- $ hg convert source source-hg
- initializing destination source-hg repository
- scanning source...
- sorting...
- converting...
- 1 Initial layout
- 0 Divergent renames
- $ hg -R source-hg st -C --change 1
- A b/fa
- a/fa
- R a/fa
- $ hg -R source-hg manifest -r 1
- a/c/fc
- b/fa
- $ cd ..
diff --git a/tests/test-convert-bzr-ghosts.t b/tests/test-convert-bzr-ghosts.t
index ef9cd96..d463115 100644
--- a/tests/test-convert-bzr-ghosts.t
+++ b/tests/test-convert-bzr-ghosts.t
@@ -30,9 +30,7 @@ ghost revisions
1 Initial layout setup
0 Commit with ghost revision
$ glog -R source-hg
- o 1@source "Commit with ghost revision" files: somefile
+ o 1 "Commit with ghost revision" files: somefile
|
- o 0@source "Initial layout setup" files: somefile
+ o 0 "Initial layout setup" files: somefile
-
- $ cd ..
diff --git a/tests/test-convert-bzr-merges.t b/tests/test-convert-bzr-merges.t
index 1c10bbc..92d45af 100644
--- a/tests/test-convert-bzr-merges.t
+++ b/tests/test-convert-bzr-merges.t
@@ -48,17 +48,17 @@ test multiple merges at once
1 Added brach2 file
0 Merged branches
$ glog -R source-hg
- o 5@source "(octopus merge fixup)" files:
+ o 5 "(octopus merge fixup)" files:
|\
- | o 4@source "Merged branches" files: file-branch2
+ | o 4 "Merged branches" files: file-branch2
| |\
- o---+ 3@source-branch2 "Added brach2 file" files: file-branch2
+ o---+ 3 "Added brach2 file" files: file-branch2
/ /
- | o 2@source "Added parent file" files: file-parent
+ | o 2 "Added parent file" files: file-parent
| |
- o | 1@source-branch1 "Added branch1 file" files: file file-branch1
+ o | 1 "Added branch1 file" files: file file-branch1
|/
- o 0@source "Initial add" files: file
+ o 0 "Initial add" files: file
$ manifest source-hg tip
% manifest of tip
@@ -66,5 +66,3 @@ test multiple merges at once
644 file-branch1
644 file-branch2
644 file-parent
-
- $ cd ..
diff --git a/tests/test-convert-bzr-treeroot.t b/tests/test-convert-bzr-treeroot.t
index 5e59e32..2929fe4 100644
--- a/tests/test-convert-bzr-treeroot.t
+++ b/tests/test-convert-bzr-treeroot.t
@@ -31,5 +31,3 @@ change the id of the tree root
$ manifest source-hg tip
% manifest of tip
644 file
-
- $ cd ..
diff --git a/tests/test-convert-bzr.t b/tests/test-convert-bzr.t
index 709df79..d75ef94 100644
--- a/tests/test-convert-bzr.t
+++ b/tests/test-convert-bzr.t
@@ -1,3 +1,4 @@
+
$ . "$TESTDIR/bzr-definitions"
create and rename on the same file in the same step
@@ -5,17 +6,6 @@ create and rename on the same file in the same step
$ mkdir test-createandrename
$ cd test-createandrename
$ bzr init -q source
-
-test empty repo conversion (issue3233)
-
- $ hg convert source source-hg
- initializing destination source-hg repository
- scanning source...
- sorting...
- converting...
-
-back to the rename stuff
-
$ cd source
$ echo a > a
$ echo c > c
@@ -34,15 +24,16 @@ back to the rename stuff
$ bzr commit -q -m 'rename a into b, create a, rename c into d'
$ cd ..
$ hg convert source source-hg
+ initializing destination source-hg repository
scanning source...
sorting...
converting...
1 Initial add: a, c, e
0 rename a into b, create a, rename c into d
$ glog -R source-hg
- o 1@source "rename a into b, create a, rename c into d" files: a b c d e f
+ o 1 "rename a into b, create a, rename c into d" files: a b c d e f
|
- o 0@source "Initial add: a, c, e" files: a c e
+ o 0 "Initial add: a, c, e" files: a c e
manifest
@@ -62,7 +53,7 @@ test --rev option
converting...
0 Initial add: a, c, e
$ glog -R source-1-hg
- o 0@source "Initial add: a, c, e" files: a c e
+ o 0 "Initial add: a, c, e" files: a c e
test with filemap
@@ -85,12 +76,22 @@ test with filemap
convert from lightweight checkout
$ bzr checkout --lightweight source source-light
- $ hg convert -s bzr source-light source-light-hg
+ $ hg convert source-light source-light-hg
initializing destination source-light-hg repository
warning: lightweight checkouts may cause conversion failures, try with a regular branch instead.
- $TESTTMP/test-createandrename/source-light does not look like a Bazaar repository
- abort: source-light: missing or unsupported repository
- [255]
+ scanning source...
+ sorting...
+ converting...
+ 1 Initial add: a, c, e
+ 0 rename a into b, create a, rename c into d
+
+lightweight manifest
+
+ $ hg manifest -R source-light-hg -r tip
+ a
+ b
+ d
+ f
extract timestamps that look just like hg's {date|isodate}:
yyyy-mm-dd HH:MM zzzz (no seconds!)
@@ -145,18 +146,16 @@ merge
1 Editing b
0 Merged improve branch
$ glog -R source-hg
- o 3@source "Merged improve branch" files:
+ o 3 "Merged improve branch" files:
|\
- | o 2@source-improve "Editing b" files: b
+ | o 2 "Editing b" files: b
| |
- o | 1@source "Editing a" files: a
+ o | 1 "Editing a" files: a
|/
- o 0@source "Initial add" files: a b
+ o 0 "Initial add" files: a b
$ cd ..
-#if symlink execbit
-
symlinks and executable files
$ mkdir test-symlinks
@@ -199,88 +198,12 @@ symlinks and executable files
755 * newprog
644 program
644 @ syma
+ $ cd source-hg
test the symlinks can be recreated
- $ cd source-hg
$ hg up
5 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg cat syma; echo
a
- $ cd ../..
-
-#endif
-
-Multiple branches
-
- $ bzr init-repo -q --no-trees repo
- $ bzr init -q repo/trunk
- $ bzr co repo/trunk repo-trunk
- $ cd repo-trunk
- $ echo a > a
- $ bzr add -q a
- $ bzr ci -qm adda
- $ bzr tag trunk-tag
- Created tag trunk-tag.
- $ bzr switch -b branch
- Tree is up to date at revision 1.
- Switched to branch: *repo/branch/ (glob)
- $ sleep 1
- $ echo b > b
- $ bzr add -q b
- $ bzr ci -qm addb
- $ bzr tag branch-tag
- Created tag branch-tag.
- $ bzr switch --force ../repo/trunk
- Updated to revision 1.
- Switched to branch: */repo/trunk/ (glob)
- $ sleep 1
- $ echo a >> a
- $ bzr ci -qm changea
- $ cd ..
- $ hg convert --datesort repo repo-bzr
- initializing destination repo-bzr repository
- scanning source...
- sorting...
- converting...
- 2 adda
- 1 addb
- 0 changea
- updating tags
- $ (cd repo-bzr; glog)
- o 3@default "update tags" files: .hgtags
- |
- o 2@default "changea" files: a
- |
- | o 1@branch "addb" files: b
- |/
- o 0@default "adda" files: a
-
-
-Test tags (converted identifiers are not stable because bzr ones are
-not and get incorporated in extra fields).
-
- $ hg -R repo-bzr tags
- tip 3:* (glob)
- branch-tag 1:* (glob)
- trunk-tag 0:* (glob)
-Nested repositories (issue3254)
-
- $ bzr init-repo -q --no-trees repo/inner
- $ bzr init -q repo/inner/trunk
- $ bzr co repo/inner/trunk inner-trunk
- $ cd inner-trunk
- $ echo b > b
- $ bzr add -q b
- $ bzr ci -qm addb
- $ cd ..
- $ hg convert --datesort repo noinner-bzr
- initializing destination noinner-bzr repository
- scanning source...
- sorting...
- converting...
- 2 adda
- 1 addb
- 0 changea
- updating tags
diff --git a/tests/test-convert-clonebranches.t b/tests/test-convert-clonebranches.t
index 6a297ef..fa27e73 100644
--- a/tests/test-convert-clonebranches.t
+++ b/tests/test-convert-clonebranches.t
@@ -15,7 +15,6 @@ Add a merge with one parent in the same branch
$ hg up -qC 0
$ hg branch branch0
marked working directory as branch branch0
- (branches are permanent and global, did you want a bookmark?)
$ echo b > b
$ hg ci -qAm addb
$ hg up -qC
@@ -53,13 +52,11 @@ Add a merge with both parents and child in different branches
$ cd source
$ hg branch branch1
marked working directory as branch branch1
- (branches are permanent and global, did you want a bookmark?)
$ echo a > file1
$ hg ci -qAm c1
$ hg up -qC mergeab
$ hg branch branch2
marked working directory as branch branch2
- (branches are permanent and global, did you want a bookmark?)
$ echo a > file2
$ hg ci -qAm c2
$ hg merge branch1
@@ -67,7 +64,6 @@ Add a merge with both parents and child in different branches
(branch merge, don't forget to commit)
$ hg branch branch3
marked working directory as branch branch3
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -qAm c3
$ cd ..
diff --git a/tests/test-convert-cvs-branch.t b/tests/test-convert-cvs-branch.t
index ba35c02..d33d43f 100644
--- a/tests/test-convert-cvs-branch.t
+++ b/tests/test-convert-cvs-branch.t
@@ -190,4 +190,3 @@ issue 1447
b.txt:1.2->1.2.2.1
- $ cd ..
diff --git a/tests/test-convert-cvs.t b/tests/test-convert-cvs.t
index 365db71..91ace60 100644
--- a/tests/test-convert-cvs.t
+++ b/tests/test-convert-cvs.t
@@ -112,6 +112,7 @@ convert fresh repo with --filemap
1 import
filtering out empty revision
repository tip rolled back to revision 0 (undo commit)
+ working directory now based on revision -1
0 ci0
updating tags
$ hgcat b/c
@@ -143,9 +144,9 @@ convert full repository (issue1649)
sorting...
converting...
updating tags
- $ hg cat -r tip --cwd srcfull-hg src/a
+ $ hg cat -r tip srcfull-hg/src/a
a
- $ hg cat -r tip --cwd srcfull-hg src/b/c
+ $ hg cat -r tip srcfull-hg/src/b/c
c
c
@@ -458,4 +459,3 @@ testing debugcvsps
b/c:1.1.2.1->1.1.2.2
- $ cd ..
diff --git a/tests/test-convert-cvsnt-mergepoints.t b/tests/test-convert-cvsnt-mergepoints.t
index 1e3d02b..6e945da 100644
--- a/tests/test-convert-cvsnt-mergepoints.t
+++ b/tests/test-convert-cvsnt-mergepoints.t
@@ -91,8 +91,6 @@ script)
$ echo xyzzy > foo.txt
$ cvsci -m "merge1+clobber" foo.txt
-#if unix-permissions
-
return to trunk and merge MYBRANCH1_2
$ cvscall -Q update -P -A
@@ -103,7 +101,7 @@ return to trunk and merge MYBRANCH1_2
Merging differences between 1.1 and 1.1.2.2.2.1 into foo.txt
$ cvsci -m "merge2" foo.txt
$ REALCVS=`which cvs`
- $ echo "for x in \$*; do if [ \"\$x\" = \"rlog\" ]; then echo \"RCS file: $CVSROOT/foo/foo.txt,v\"; cat \"$TESTDIR/test-convert-cvsnt-mergepoints.rlog\"; exit 0; fi; done; $REALCVS \$*" > ../cvs
+ $ echo "for x in \$*; do if [ \"\$x\" = \"rlog\" ]; then echo \"RCS file: $CVSROOT/foo/foo.txt,v\"; cat $TESTDIR/test-convert-cvsnt-mergepoints.rlog; exit 0; fi; done; $REALCVS \$*" > ../cvs
$ chmod +x ../cvs
$ PATH=..:${PATH} hg debugcvsps --parents foo
collecting CVS rlog
@@ -202,6 +200,3 @@ return to trunk and merge MYBRANCH1_2
Members:
foo.txt:1.1.4.1->1.1.4.2
-#endif
-
- $ cd ..
diff --git a/tests/test-convert-darcs.t b/tests/test-convert-darcs.t
index b32cbde..0b4c17f 100644
--- a/tests/test-convert-darcs.t
+++ b/tests/test-convert-darcs.t
@@ -14,16 +14,12 @@ skip if we can't import elementtree
> exit 80
> fi
-#if no-outer-repo
-
try converting darcs1 repository
$ hg clone -q "$TESTDIR/bundles/darcs1.hg" darcs
$ hg convert -s darcs darcs/darcs1 2>&1 | grep darcs-1.0
darcs-1.0 repository format is unsupported, please upgrade
-#endif
-
initialize darcs repo
$ mkdir darcs-repo
@@ -36,7 +32,7 @@ initialize darcs repo
branch and update
- $ darcs get -q darcs-repo darcs-clone >/dev/null
+ $ darcs get darcs-repo darcs-clone >/dev/null
$ cd darcs-clone
$ echo c >> a
$ echo c > c
@@ -52,10 +48,11 @@ update source
$ darcs record -a -l -m p1.2
Finished recording patch 'p1.2'
- $ darcs pull -q -a --no-set-default ../darcs-clone
- Backing up ./a(*) (glob)
+ $ darcs pull -a ../darcs-clone
+ Backing up ./a(-darcs-backup0)
We have conflicts in the following files:
./a
+ Finished pulling and applying.
$ sleep 1
$ echo e > a
$ echo f > f
@@ -77,30 +74,64 @@ Test remove + move
$ darcs record -a -l -m p3
Finished recording patch 'p3'
-The converter does not currently handle patch conflicts very well.
-When they occur, it reverts *all* changes and moves forward,
-letting the conflict resolving patch fix collisions.
-Unfortunately, non-conflicting changes, like the addition of the
-"c" file in p1.1 patch are reverted too.
-Just to say that manifest not listing "c" here is a bug.
+test utf-8 commit message and author
+
+ $ echo g > g
+
+darcs is encoding agnostic, so it takes whatever bytes it's given
+ $ darcs record -a -l -m 'p4: desc ñ' -A 'author ñ'
+ Finished recording patch 'p4: desc \xc3\xb1' (esc)
+
+Test latin-1 commit message
+
+ $ echo h > h
+ $ printf "p5: desc " > ../p5
+ $ python -c 'print "".join([chr(i) for i in range(128, 256)])' >> ../p5
+ $ darcs record -a -l --logfile ../p5
+ Finished recording patch 'p5: desc \x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff' (esc)
+
+ $ glog()
+ > {
+ > HGENCODING=utf-8 hg glog --template '{rev} "{desc|firstline}" ({author}) files: {files}\n' "$@"
+ > }
$ cd ..
$ hg convert darcs-repo darcs-repo-hg
initializing destination darcs-repo-hg repository
scanning source...
sorting...
converting...
- 4 p0
- 3 p1.2
- 2 p1.1
- 1 p2
- 0 p3
- $ hg log -R darcs-repo-hg -g --template '{rev} "{desc|firstline}" ({author}) files: {files}\n' "$@"
- 4 "p3" (test@example.org) files: dir/d dir/d2 dir2/d f ff
- 3 "p2" (test@example.org) files: a dir/d dir/d2 f
- 2 "p1.1" (test@example.org) files:
- 1 "p1.2" (test@example.org) files: a b
- 0 "p0" (test@example.org) files: a
+ 6 p0
+ 5 p1.2
+ 4 p1.1
+ 3 p2
+ 2 p3
+ 1 p4: desc ?
+ 0 p5: desc ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
+
+The converter does not currently handle patch conflicts very well.
+When they occur, it reverts *all* changes and moves forward,
+letting the conflict resolving patch fix collisions.
+Unfortunately, non-conflicting changes, like the addition of the
+"c" file in p1.1 patch are reverted too.
+Just to say that manifest not listing "c" here is a bug.
+
+ $ HGENCODING=latin-1 glog -R darcs-repo-hg -r 6
+ o 6 "p5: desc \xc2\x80\xc2\x81\xc2\x82\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\xc2\x88\xc2\x89\xc2\x8a\xc2\x8b\xc2\x8c\xc2\x8d\xc2\x8e\xc2\x8f\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\xc2\x95\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\xc2\xa3\xc2\xa4\xc2\xa5\xc2\xa6\xc2\xa7\xc2\xa8\xc2\xa9\xc2\xaa\xc2\xab\xc2\xac\xc2\xad\xc2\xae\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc3\x80\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc3\x9e\xc3\x9f\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb7\xc3\xb8\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf" (test@example.org) files: h (esc)
+ |
+ $ HGENCODING=utf-8 glog -R darcs-repo-hg -r 0:5
+ o 5 "p4: desc \xc3\xb1" (author \xc3\xb1) files: g (esc)
+ |
+ o 4 "p3" (test@example.org) files: dir/d dir/d2 dir2/d f ff
+ |
+ o 3 "p2" (test@example.org) files: a dir/d dir/d2 f
+ |
+ o 2 "p1.1" (test@example.org) files:
+ |
+ o 1 "p1.2" (test@example.org) files: a b
+ |
+ o 0 "p0" (test@example.org) files: a
+
$ hg up -q -R darcs-repo-hg
$ hg -R darcs-repo-hg manifest --debug
@@ -108,3 +139,5 @@ Just to say that manifest not listing "c" here is a bug.
1e88685f5ddec574a34c70af492f95b6debc8741 644 b
37406831adc447ec2385014019599dfec953c806 644 dir2/d
b783a337463792a5c7d548ad85a7d3253c16ba8c 644 ff
+ 0973eb1b2ecc4de7fafe7447ce1b7462108b4848 644 g
+ fe6f8b4f507fe3eb524c527192a84920a4288dac 644 h
diff --git a/tests/test-convert-datesort.t b/tests/test-convert-datesort.t
index 486f656..014d103 100644
--- a/tests/test-convert-datesort.t
+++ b/tests/test-convert-datesort.t
@@ -11,7 +11,6 @@
adding a
$ hg branch brancha
marked working directory as branch brancha
- (branches are permanent and global, did you want a bookmark?)
$ echo a >> a
$ hg ci -m a1 -d '2 0'
$ echo a >> a
@@ -22,7 +21,6 @@
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch branchb
marked working directory as branch branchb
- (branches are permanent and global, did you want a bookmark?)
$ echo b >> b
$ hg ci -Am b0 -d '6 0'
adding b
diff --git a/tests/test-convert-filemap.t b/tests/test-convert-filemap.t
index e351d7c..026284f 100644
--- a/tests/test-convert-filemap.t
+++ b/tests/test-convert-filemap.t
@@ -86,7 +86,8 @@ final file versions in this repo:
bc3eca3f47023a3e70ca0d8cc95a22a6827db19d 644 quux
$ hg debugrename copied
copied renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
-
+ $ echo
+
$ cd ..
$ splitrepo()
> {
@@ -299,7 +300,6 @@ test branch closing revision pruning if branch is pruned
$ cd branchpruning
$ hg branch foo
marked working directory as branch foo
- (branches are permanent and global, did you want a bookmark?)
$ echo a > a
$ hg ci -Am adda
adding a
@@ -308,14 +308,12 @@ test branch closing revision pruning if branch is pruned
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch empty
marked working directory as branch empty
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -m emptybranch
$ hg ci --close-branch -m closeempty
$ hg up 0
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch default
marked working directory as branch default
- (branches are permanent and global, did you want a bookmark?)
$ echo b > b
$ hg ci -Am addb
adding b
@@ -375,222 +373,3 @@ exercise incremental conversion at the same time
|
o 0 "addb" files: b
-
-filemap rename undoing revision rename
-
- $ hg init renameundo
- $ cd renameundo
- $ echo 1 > a
- $ echo 1 > c
- $ hg ci -qAm add
- $ hg mv -q a b/a
- $ hg mv -q c b/c
- $ hg ci -qm rename
- $ echo 2 > b/a
- $ echo 2 > b/c
- $ hg ci -qm modify
- $ cd ..
-
- $ echo "rename b ." > renameundo.fmap
- $ hg convert --filemap renameundo.fmap renameundo renameundo2
- initializing destination renameundo2 repository
- scanning source...
- sorting...
- converting...
- 2 add
- 1 rename
- filtering out empty revision
- repository tip rolled back to revision 0 (undo commit)
- 0 modify
- $ glog -R renameundo2
- o 1 "modify" files: a c
- |
- o 0 "add" files: a c
-
-
-
-test merge parents/empty merges pruning
-
- $ glog()
- > {
- > hg glog --template '{rev}:{node|short}@{branch} "{desc}" files: {files}\n' "$@"
- > }
-
-test anonymous branch pruning
-
- $ hg init anonymousbranch
- $ cd anonymousbranch
- $ echo a > a
- $ echo b > b
- $ hg ci -Am add
- adding a
- adding b
- $ echo a >> a
- $ hg ci -m changea
- $ hg up 0
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ echo b >> b
- $ hg ci -m changeb
- created new head
- $ hg up 1
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m merge
- $ cd ..
-
- $ cat > filemap <<EOF
- > include a
- > EOF
- $ hg convert --filemap filemap anonymousbranch anonymousbranch-hg
- initializing destination anonymousbranch-hg repository
- scanning source...
- sorting...
- converting...
- 3 add
- 2 changea
- 1 changeb
- 0 merge
- $ glog -R anonymousbranch
- @ 3:c71d5201a498@default "merge" files:
- |\
- | o 2:607eb44b17f9@default "changeb" files: b
- | |
- o | 1:1f60ea617824@default "changea" files: a
- |/
- o 0:0146e6129113@default "add" files: a b
-
- $ glog -R anonymousbranch-hg
- o 1:cda818e7219b@default "changea" files: a
- |
- o 0:c334dc3be0da@default "add" files: a
-
- $ cat anonymousbranch-hg/.hg/shamap
- 0146e6129113dba9ac90207cfdf2d7ed35257ae5 c334dc3be0daa2a4e9ce4d2e2bdcba40c09d4916
- 1f60ea61782421edf8d051ff4fcb61b330f26a4a cda818e7219b5f7f3fb9f49780054ed6a1905ec3
- 607eb44b17f9348cd5cbd26e16af87ba77b0b037 c334dc3be0daa2a4e9ce4d2e2bdcba40c09d4916
- c71d5201a498b2658d105a6bf69d7a0df2649aea cda818e7219b5f7f3fb9f49780054ed6a1905ec3
-
- $ cat > filemap <<EOF
- > include b
- > EOF
- $ hg convert --filemap filemap anonymousbranch anonymousbranch-hg2
- initializing destination anonymousbranch-hg2 repository
- scanning source...
- sorting...
- converting...
- 3 add
- 2 changea
- 1 changeb
- 0 merge
- $ glog -R anonymousbranch
- @ 3:c71d5201a498@default "merge" files:
- |\
- | o 2:607eb44b17f9@default "changeb" files: b
- | |
- o | 1:1f60ea617824@default "changea" files: a
- |/
- o 0:0146e6129113@default "add" files: a b
-
- $ glog -R anonymousbranch-hg2
- o 1:62dd350b0df6@default "changeb" files: b
- |
- o 0:4b9ced861657@default "add" files: b
-
- $ cat anonymousbranch-hg2/.hg/shamap
- 0146e6129113dba9ac90207cfdf2d7ed35257ae5 4b9ced86165703791653059a1db6ed864630a523
- 1f60ea61782421edf8d051ff4fcb61b330f26a4a 4b9ced86165703791653059a1db6ed864630a523
- 607eb44b17f9348cd5cbd26e16af87ba77b0b037 62dd350b0df695f7d2c82a02e0499b16fd790f22
- c71d5201a498b2658d105a6bf69d7a0df2649aea 62dd350b0df695f7d2c82a02e0499b16fd790f22
-
-test named branch pruning
-
- $ hg init namedbranch
- $ cd namedbranch
- $ echo a > a
- $ echo b > b
- $ hg ci -Am add
- adding a
- adding b
- $ echo a >> a
- $ hg ci -m changea
- $ hg up 0
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg branch foo
- marked working directory as branch foo
- (branches are permanent and global, did you want a bookmark?)
- $ echo b >> b
- $ hg ci -m changeb
- $ hg up default
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge foo
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m merge
- $ cd ..
-
- $ cat > filemap <<EOF
- > include a
- > EOF
- $ hg convert --filemap filemap namedbranch namedbranch-hg
- initializing destination namedbranch-hg repository
- scanning source...
- sorting...
- converting...
- 3 add
- 2 changea
- 1 changeb
- 0 merge
- $ glog -R namedbranch
- @ 3:73899bcbe45c@default "merge" files:
- |\
- | o 2:8097982d19fc@foo "changeb" files: b
- | |
- o | 1:1f60ea617824@default "changea" files: a
- |/
- o 0:0146e6129113@default "add" files: a b
-
- $ glog -R namedbranch-hg
- o 1:cda818e7219b@default "changea" files: a
- |
- o 0:c334dc3be0da@default "add" files: a
-
-
- $ cd namedbranch
- $ hg --config extensions.mq= strip tip
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- saved backup bundle to $TESTTMP/namedbranch/.hg/strip-backup/73899bcbe45c-backup.hg (glob)
- $ hg up foo
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m merge
- $ cd ..
-
- $ hg convert --filemap filemap namedbranch namedbranch-hg2
- initializing destination namedbranch-hg2 repository
- scanning source...
- sorting...
- converting...
- 3 add
- 2 changea
- 1 changeb
- 0 merge
- $ glog -R namedbranch
- @ 3:e1959de76e1b@foo "merge" files:
- |\
- | o 2:8097982d19fc@foo "changeb" files: b
- | |
- o | 1:1f60ea617824@default "changea" files: a
- |/
- o 0:0146e6129113@default "add" files: a b
-
- $ glog -R namedbranch-hg2
- o 2:dcf314454667@foo "merge" files:
- |\
- | o 1:cda818e7219b@default "changea" files: a
- |/
- o 0:c334dc3be0da@default "add" files: a
-
diff --git a/tests/test-convert-git.t b/tests/test-convert-git.t
index e4261b7..7b1c2aa 100644
--- a/tests/test-convert-git.t
+++ b/tests/test-convert-git.t
@@ -1,9 +1,5 @@
$ "$TESTDIR/hghave" git || exit 80
- $ echo "[core]" >> $HOME/.gitconfig
- $ echo "autocrlf = false" >> $HOME/.gitconfig
- $ echo "[core]" >> $HOME/.gitconfig
- $ echo "autocrlf = false" >> $HOME/.gitconfig
$ echo "[extensions]" >> $HGRCPATH
$ echo "convert=" >> $HGRCPATH
$ echo 'hgext.graphlog =' >> $HGRCPATH
@@ -202,6 +198,8 @@ full conversion
354ae8da6e890359ef49ade27b68bbc361f3ca88 644 baz
9277c9cc8dd4576fc01a17939b4351e5ada93466 644 foo
88dfeab657e8cf2cef3dec67b914f49791ae76b1 644 quux
+ $ echo
+
test binary conversion (issue 1359)
@@ -228,6 +226,8 @@ convert binary file
$ python -c 'print len(file("b", "rb").read())'
4096
$ cd ..
+ $ echo
+
test author vs committer
@@ -285,12 +285,9 @@ damage git repository and convert again
$ cat > damage.py <<EOF
> import os
- > import stat
> for root, dirs, files in os.walk('git-repo4/.git/objects'):
> if files:
> path = os.path.join(root, files[0])
- > if os.name == 'nt':
- > os.chmod(path, stat.S_IWUSR)
> os.remove(path)
> break
> EOF
diff --git a/tests/test-convert-hg-source.t b/tests/test-convert-hg-source.t
index a39b2b7..919d83e 100644
--- a/tests/test-convert-hg-source.t
+++ b/tests/test-convert-hg-source.t
@@ -1,3 +1,4 @@
+
$ cat >> $HGRCPATH <<EOF
> [extensions]
> convert=
@@ -17,7 +18,7 @@
$ hg ci -m 'make bar and baz copies of foo' -d '2 0'
created new head
$ hg bookmark premerge1
- $ hg merge -r 1
+ $ hg merge
merging baz and foo to baz
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -31,11 +32,7 @@
(branch merge, don't forget to commit)
$ hg ci -m 'merge remote copy' -d '4 0'
created new head
-#if execbit
$ chmod +x baz
-#else
- $ echo some other change to make sure we get a rev 5 > baz
-#endif
$ hg ci -m 'mark baz executable' -d '5 0'
$ cd ..
$ hg convert --datesort orig new 2>&1 | grep -v 'subversion python bindings could not be loaded'
@@ -56,16 +53,9 @@
searching for changes
no changes found
[1]
-#if execbit
$ hg bookmarks
premerge1 3:973ef48a98a4
premerge2 5:13d9b87cf8f8
-#else
-Different hash because no x bit
- $ hg bookmarks
- premerge1 3:973ef48a98a4
- premerge2 5:df0779bcf33c
-#endif
$ cd ..
check shamap LF and CRLF handling
diff --git a/tests/test-convert-hg-startrev.t b/tests/test-convert-hg-startrev.t
index 4d62cf2..7424d89 100644
--- a/tests/test-convert-hg-startrev.t
+++ b/tests/test-convert-hg-startrev.t
@@ -115,7 +115,6 @@ Convert from merge parent
o 0 "1: add c" files: a b c
$ cd conv1
- $ hg up -q
Check copy preservation
diff --git a/tests/test-convert-hg-svn.t b/tests/test-convert-hg-svn.t
index d7ebedd..ef002a7 100644
--- a/tests/test-convert-hg-svn.t
+++ b/tests/test-convert-hg-svn.t
@@ -1,18 +1,15 @@
$ "$TESTDIR/hghave" svn svn-bindings || exit 80
+ $ fix_path()
+ > {
+ > tr '\\' /
+ > }
$ echo "[extensions]" >> $HGRCPATH
$ echo "convert = " >> $HGRCPATH
$ echo "mq = " >> $HGRCPATH
-
- $ SVNREPOPATH=`pwd`/svn-repo
-#if windows
- $ SVNREPOURL=file:///`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
-#else
- $ SVNREPOURL=file://`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
-#endif
-
- $ svnadmin create "$SVNREPOPATH"
- $ cat > "$SVNREPOPATH"/hooks/pre-revprop-change <<EOF
+ $ svnpath=`pwd | fix_path`/svn-repo
+ $ svnadmin create "$svnpath"
+ $ cat > "$svnpath"/hooks/pre-revprop-change <<EOF
> #!/bin/sh
>
> REPOS="$1"
@@ -28,10 +25,16 @@
> echo "Changing prohibited revision property" >&2
> exit 1
> EOF
- $ chmod +x "$SVNREPOPATH"/hooks/pre-revprop-change
- $ svn co "$SVNREPOURL" "$SVNREPOPATH"-wc
+ $ chmod +x "$svnpath"/hooks/pre-revprop-change
+ $
+ $ # SVN wants all paths to start with a slash. Unfortunately,
+ $ # Windows ones don't. Handle that.
+ $ svnurl="$svnpath"
+ $ expr "$svnurl" : "\/" > /dev/null || svnurl="/$svnurl"
+ $ svnurl="file://$svnurl"
+ $ svn co "$svnurl" "$svnpath"-wc
Checked out revision 0.
- $ cd "$SVNREPOPATH"-wc
+ $ cd "$svnpath"-wc
$ echo a > a
$ svn add a
A a
@@ -43,33 +46,33 @@
initial roundtrip
- $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg | grep -v initializing
+ $ hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg | grep -v initializing
scanning source...
sorting...
converting...
0 added a
- $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
+ $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
scanning source...
sorting...
converting...
second roundtrip should do nothing
- $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg
+ $ hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg
scanning source...
sorting...
converting...
- $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
+ $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
scanning source...
sorting...
converting...
new hg rev
- $ hg clone "$SVNREPOPATH"-hg "$SVNREPOPATH"-work
+ $ hg clone "$svnpath"-hg "$svnpath"-work
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd "$SVNREPOPATH"-work
+ $ cd "$svnpath"-work
$ echo b > b
$ hg add b
$ hg ci -mb
@@ -82,8 +85,8 @@ adding an empty revision
echo hg to svn
- $ hg --cwd "$SVNREPOPATH"-hg pull -q "$SVNREPOPATH"-work
- $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
+ $ hg --cwd "$svnpath"-hg pull -q "$svnpath"-work
+ $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
scanning source...
sorting...
converting...
@@ -92,14 +95,14 @@ echo hg to svn
svn back to hg should do nothing
- $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg
+ $ hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg
scanning source...
sorting...
converting...
hg back to svn should do nothing
- $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
+ $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
scanning source...
sorting...
converting...
diff --git a/tests/test-convert-p4 b/tests/test-convert-p4
new file mode 100755
index 0000000..3ae3c72
--- /dev/null
+++ b/tests/test-convert-p4
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+"$TESTDIR/hghave" p4 || exit 80
+
+echo "[extensions]" >> $HGRCPATH
+echo "convert = " >> $HGRCPATH
+
+echo % create p4 depot
+P4ROOT=`pwd`/depot; export P4ROOT
+P4AUDIT=$P4ROOT/audit; export P4AUDIT
+P4JOURNAL=$P4ROOT/journal; export P4JOURNAL
+P4LOG=$P4ROOT/log; export P4LOG
+P4PORT=localhost:16661; export P4PORT
+P4DEBUG=1; export P4DEBUG
+
+echo % start the p4 server
+[ ! -d $P4ROOT ] && mkdir $P4ROOT
+p4d -f -J off >$P4ROOT/stdout 2>$P4ROOT/stderr &
+trap "echo % stop the p4 server ; p4 admin stop" EXIT
+
+# wait for the server to initialize
+while ! p4 ; do
+ sleep 1
+done >/dev/null 2>/dev/null
+
+echo % create a client spec
+P4CLIENT=hg-p4-import; export P4CLIENT
+DEPOTPATH=//depot/test-mercurial-import/...
+p4 client -o | sed '/^View:/,$ d' >p4client
+echo View: >>p4client
+echo " $DEPOTPATH //$P4CLIENT/..." >>p4client
+p4 client -i <p4client
+
+echo % populate the depot
+echo a > a
+mkdir b
+echo c > b/c
+p4 add a b/c
+p4 submit -d initial
+
+echo % change some files
+p4 edit a
+echo aa >> a
+p4 submit -d "change a"
+
+p4 edit b/c
+echo cc >> b/c
+p4 submit -d "change b/c"
+
+echo % convert
+hg convert -s p4 $DEPOTPATH dst
+hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
+
+echo % change some files
+p4 edit a b/c
+echo aaa >> a
+echo ccc >> b/c
+p4 submit -d "change a b/c"
+
+echo % convert again
+hg convert -s p4 $DEPOTPATH dst
+hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
+
+echo % interesting names
+echo dddd > "d d"
+mkdir " e"
+echo fff >" e/ f"
+p4 add "d d" " e/ f"
+p4 submit -d "add d e f"
+
+echo % convert again
+hg convert -s p4 $DEPOTPATH dst
+hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
+
+
diff --git a/tests/test-convert-p4-filetypes b/tests/test-convert-p4-filetypes
new file mode 100755
index 0000000..5c0e1a8
--- /dev/null
+++ b/tests/test-convert-p4-filetypes
@@ -0,0 +1,104 @@
+#!/bin/sh
+
+"$TESTDIR/hghave" p4 execbit symlink || exit 80
+
+echo "[extensions]" >> $HGRCPATH
+echo "convert = " >> $HGRCPATH
+
+echo % create p4 depot
+P4ROOT=`pwd`/depot; export P4ROOT
+P4AUDIT=$P4ROOT/audit; export P4AUDIT
+P4JOURNAL=$P4ROOT/journal; export P4JOURNAL
+P4LOG=$P4ROOT/log; export P4LOG
+P4PORT=localhost:16661; export P4PORT
+P4DEBUG=1; export P4DEBUG
+P4CHARSET=utf8; export P4CHARSET
+
+echo % start the p4 server
+[ ! -d $P4ROOT ] && mkdir $P4ROOT
+p4d -f -J off -xi >$P4ROOT/stdout 2>$P4ROOT/stderr
+p4d -f -J off >$P4ROOT/stdout 2>$P4ROOT/stderr &
+trap "echo % stop the p4 server ; p4 admin stop" EXIT
+
+# wait for the server to initialize
+while ! p4 ; do
+ sleep 1
+done >/dev/null 2>/dev/null
+
+echo % create a client spec
+P4CLIENT=hg-p4-import; export P4CLIENT
+DEPOTPATH=//depot/test-mercurial-import/...
+p4 client -o | sed '/^View:/,$ d' >p4client
+echo View: >>p4client
+echo " $DEPOTPATH //$P4CLIENT/..." >>p4client
+p4 client -i <p4client
+
+echo % populate the depot
+TYPES="text binary symlink"
+TYPES="$TYPES text+m text+w text+x text+k text+kx text+ko text+l text+C text+D text+F text+S text+S2"
+TYPES="$TYPES binary+k binary+x binary+kx symlink+k"
+TYPES="$TYPES ctext cxtext ktext kxtext ltext tempobj ubinary uxbinary xbinary xltext xtempobj xtext"
+# not testing these
+#TYPES="$TYPES apple resource unicode utf16 uresource xunicode xutf16"
+for T in $TYPES ; do
+ T2=`echo $T | tr [:upper:] [:lower:]`
+ case $T in
+ apple)
+ ;;
+ symlink*)
+ echo "this is target $T" >target_$T2
+ ln -s target_$T file_$T2
+ p4 add target_$T2
+ p4 add -t $T file_$T2
+ ;;
+ binary*)
+ python -c "file('file_$T2', 'wb').write('this is $T')"
+ p4 add -t $T file_$T2
+ ;;
+ *)
+ echo "this is $T" >file_$T2
+ p4 add -t $T file_$T2
+ ;;
+ esac
+done
+p4 submit -d initial
+
+echo % test keyword expansion
+p4 edit file_* target_*
+for T in $TYPES ; do
+ T2=`echo $T | tr [:upper:] [:lower:]`
+ echo '$Id$' >>file_$T2
+ echo '$Header$' >>file_$T2
+ echo '$Date$' >>file_$T2
+ echo '$DateTime$' >>file_$T2
+ echo '$Change$' >>file_$T2
+ echo '$File$' >>file_$T2
+ echo '$Revision$' >>file_$T2
+ echo '$Header$$Header$Header$' >>file_$T2
+done
+
+ln -s 'target_$Header$' crazy_symlink+k
+p4 add -t symlink+k crazy_symlink+k
+
+p4 submit -d keywords
+
+echo % check keywords in p4
+grep -H Header file_*
+
+echo % convert
+hg convert -s p4 $DEPOTPATH dst
+hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'g
+
+echo % revision 0
+hg -R dst update 0
+head dst/file_* | cat -v
+
+echo
+echo % revision 1
+hg -R dst update 1
+head dst/file_* | cat -v
+echo
+echo % crazy_symlink
+readlink crazy_symlink+k
+readlink dst/crazy_symlink+k
+
diff --git a/tests/test-convert-p4-filetypes.out b/tests/test-convert-p4-filetypes.out
new file mode 100644
index 0000000..372c0d8
--- /dev/null
+++ b/tests/test-convert-p4-filetypes.out
@@ -0,0 +1,642 @@
+% create p4 depot
+% start the p4 server
+% create a client spec
+Client hg-p4-import saved.
+% populate the depot
+//depot/test-mercurial-import/file_text#1 - opened for add
+//depot/test-mercurial-import/file_binary#1 - opened for add
+//depot/test-mercurial-import/target_symlink#1 - opened for add
+//depot/test-mercurial-import/file_symlink#1 - opened for add
+//depot/test-mercurial-import/file_text+m#1 - opened for add
+//depot/test-mercurial-import/file_text+w#1 - opened for add
+//depot/test-mercurial-import/file_text+x#1 - opened for add
+//depot/test-mercurial-import/file_text+k#1 - opened for add
+//depot/test-mercurial-import/file_text+kx#1 - opened for add
+//depot/test-mercurial-import/file_text+ko#1 - opened for add
+//depot/test-mercurial-import/file_text+l#1 - opened for add
+//depot/test-mercurial-import/file_text+c#1 - opened for add
+//depot/test-mercurial-import/file_text+d#1 - opened for add
+//depot/test-mercurial-import/file_text+f#1 - opened for add
+//depot/test-mercurial-import/file_text+s#1 - opened for add
+//depot/test-mercurial-import/file_text+s2#1 - opened for add
+//depot/test-mercurial-import/file_binary+k#1 - opened for add
+//depot/test-mercurial-import/file_binary+x#1 - opened for add
+//depot/test-mercurial-import/file_binary+kx#1 - opened for add
+//depot/test-mercurial-import/target_symlink+k#1 - opened for add
+//depot/test-mercurial-import/file_symlink+k#1 - opened for add
+//depot/test-mercurial-import/file_ctext#1 - opened for add
+//depot/test-mercurial-import/file_cxtext#1 - opened for add
+//depot/test-mercurial-import/file_ktext#1 - opened for add
+//depot/test-mercurial-import/file_kxtext#1 - opened for add
+//depot/test-mercurial-import/file_ltext#1 - opened for add
+//depot/test-mercurial-import/file_tempobj#1 - opened for add
+//depot/test-mercurial-import/file_ubinary#1 - opened for add
+//depot/test-mercurial-import/file_uxbinary#1 - opened for add
+//depot/test-mercurial-import/file_xbinary#1 - opened for add
+//depot/test-mercurial-import/file_xltext#1 - opened for add
+//depot/test-mercurial-import/file_xtempobj#1 - opened for add
+//depot/test-mercurial-import/file_xtext#1 - opened for add
+Submitting change 1.
+Locking 33 files ...
+add //depot/test-mercurial-import/file_binary#1
+add //depot/test-mercurial-import/file_binary+k#1
+add //depot/test-mercurial-import/file_binary+kx#1
+add //depot/test-mercurial-import/file_binary+x#1
+add //depot/test-mercurial-import/file_ctext#1
+add //depot/test-mercurial-import/file_cxtext#1
+add //depot/test-mercurial-import/file_ktext#1
+add //depot/test-mercurial-import/file_kxtext#1
+add //depot/test-mercurial-import/file_ltext#1
+add //depot/test-mercurial-import/file_symlink#1
+add //depot/test-mercurial-import/file_symlink+k#1
+add //depot/test-mercurial-import/file_tempobj#1
+add //depot/test-mercurial-import/file_text#1
+add //depot/test-mercurial-import/file_text+c#1
+add //depot/test-mercurial-import/file_text+d#1
+add //depot/test-mercurial-import/file_text+f#1
+add //depot/test-mercurial-import/file_text+k#1
+add //depot/test-mercurial-import/file_text+ko#1
+add //depot/test-mercurial-import/file_text+kx#1
+add //depot/test-mercurial-import/file_text+l#1
+add //depot/test-mercurial-import/file_text+m#1
+add //depot/test-mercurial-import/file_text+s#1
+add //depot/test-mercurial-import/file_text+s2#1
+add //depot/test-mercurial-import/file_text+w#1
+add //depot/test-mercurial-import/file_text+x#1
+add //depot/test-mercurial-import/file_ubinary#1
+add //depot/test-mercurial-import/file_uxbinary#1
+add //depot/test-mercurial-import/file_xbinary#1
+add //depot/test-mercurial-import/file_xltext#1
+add //depot/test-mercurial-import/file_xtempobj#1
+add //depot/test-mercurial-import/file_xtext#1
+add //depot/test-mercurial-import/target_symlink#1
+add //depot/test-mercurial-import/target_symlink+k#1
+Change 1 submitted.
+//depot/test-mercurial-import/file_binary+k#1 - refreshing
+//depot/test-mercurial-import/file_binary+kx#1 - refreshing
+//depot/test-mercurial-import/file_ktext#1 - refreshing
+//depot/test-mercurial-import/file_kxtext#1 - refreshing
+//depot/test-mercurial-import/file_symlink+k#1 - refreshing
+//depot/test-mercurial-import/file_text+k#1 - refreshing
+//depot/test-mercurial-import/file_text+ko#1 - refreshing
+//depot/test-mercurial-import/file_text+kx#1 - refreshing
+% test keyword expansion
+//depot/test-mercurial-import/file_binary#1 - opened for edit
+//depot/test-mercurial-import/file_binary+k#1 - opened for edit
+//depot/test-mercurial-import/file_binary+kx#1 - opened for edit
+//depot/test-mercurial-import/file_binary+x#1 - opened for edit
+//depot/test-mercurial-import/file_ctext#1 - opened for edit
+//depot/test-mercurial-import/file_cxtext#1 - opened for edit
+//depot/test-mercurial-import/file_ktext#1 - opened for edit
+//depot/test-mercurial-import/file_kxtext#1 - opened for edit
+//depot/test-mercurial-import/file_ltext#1 - opened for edit
+//depot/test-mercurial-import/file_symlink#1 - opened for edit
+//depot/test-mercurial-import/file_symlink+k#1 - opened for edit
+//depot/test-mercurial-import/file_tempobj#1 - opened for edit
+//depot/test-mercurial-import/file_text#1 - opened for edit
+//depot/test-mercurial-import/file_text+c#1 - opened for edit
+//depot/test-mercurial-import/file_text+d#1 - opened for edit
+//depot/test-mercurial-import/file_text+f#1 - opened for edit
+//depot/test-mercurial-import/file_text+k#1 - opened for edit
+//depot/test-mercurial-import/file_text+ko#1 - opened for edit
+//depot/test-mercurial-import/file_text+kx#1 - opened for edit
+//depot/test-mercurial-import/file_text+l#1 - opened for edit
+//depot/test-mercurial-import/file_text+m#1 - opened for edit
+//depot/test-mercurial-import/file_text+s#1 - opened for edit
+//depot/test-mercurial-import/file_text+s2#1 - opened for edit
+//depot/test-mercurial-import/file_text+w#1 - opened for edit
+//depot/test-mercurial-import/file_text+x#1 - opened for edit
+//depot/test-mercurial-import/file_ubinary#1 - opened for edit
+//depot/test-mercurial-import/file_uxbinary#1 - opened for edit
+//depot/test-mercurial-import/file_xbinary#1 - opened for edit
+//depot/test-mercurial-import/file_xltext#1 - opened for edit
+//depot/test-mercurial-import/file_xtempobj#1 - opened for edit
+//depot/test-mercurial-import/file_xtext#1 - opened for edit
+//depot/test-mercurial-import/target_symlink#1 - opened for edit
+//depot/test-mercurial-import/target_symlink+k#1 - opened for edit
+//depot/test-mercurial-import/crazy_symlink+k#1 - opened for add
+Submitting change 2.
+Locking 34 files ...
+add //depot/test-mercurial-import/crazy_symlink+k#1
+edit //depot/test-mercurial-import/file_binary#2
+edit //depot/test-mercurial-import/file_binary+k#2
+edit //depot/test-mercurial-import/file_binary+kx#2
+edit //depot/test-mercurial-import/file_binary+x#2
+edit //depot/test-mercurial-import/file_ctext#2
+edit //depot/test-mercurial-import/file_cxtext#2
+edit //depot/test-mercurial-import/file_ktext#2
+edit //depot/test-mercurial-import/file_kxtext#2
+edit //depot/test-mercurial-import/file_ltext#2
+edit //depot/test-mercurial-import/file_symlink#2
+edit //depot/test-mercurial-import/file_symlink+k#2
+edit //depot/test-mercurial-import/file_tempobj#2
+edit //depot/test-mercurial-import/file_text#2
+edit //depot/test-mercurial-import/file_text+c#2
+edit //depot/test-mercurial-import/file_text+d#2
+edit //depot/test-mercurial-import/file_text+f#2
+edit //depot/test-mercurial-import/file_text+k#2
+edit //depot/test-mercurial-import/file_text+ko#2
+edit //depot/test-mercurial-import/file_text+kx#2
+edit //depot/test-mercurial-import/file_text+l#2
+edit //depot/test-mercurial-import/file_text+m#2
+edit //depot/test-mercurial-import/file_text+s#2
+edit //depot/test-mercurial-import/file_text+s2#2
+edit //depot/test-mercurial-import/file_text+w#2
+edit //depot/test-mercurial-import/file_text+x#2
+edit //depot/test-mercurial-import/file_ubinary#2
+edit //depot/test-mercurial-import/file_uxbinary#2
+edit //depot/test-mercurial-import/file_xbinary#2
+edit //depot/test-mercurial-import/file_xltext#2
+edit //depot/test-mercurial-import/file_xtempobj#2
+edit //depot/test-mercurial-import/file_xtext#2
+edit //depot/test-mercurial-import/target_symlink#2
+edit //depot/test-mercurial-import/target_symlink+k#2
+Change 2 submitted.
+//depot/test-mercurial-import/crazy_symlink+k#1 - refreshing
+//depot/test-mercurial-import/file_binary+k#2 - refreshing
+//depot/test-mercurial-import/file_binary+kx#2 - refreshing
+//depot/test-mercurial-import/file_ktext#2 - refreshing
+//depot/test-mercurial-import/file_kxtext#2 - refreshing
+//depot/test-mercurial-import/file_symlink+k#2 - refreshing
+//depot/test-mercurial-import/file_text+k#2 - refreshing
+//depot/test-mercurial-import/file_text+ko#2 - refreshing
+//depot/test-mercurial-import/file_text+kx#2 - refreshing
+% check keywords in p4
+file_binary:$Header$
+file_binary:$Header$$Header$Header$
+file_binary+k:$Header: //depot/test-mercurial-import/file_binary+k#2 $
+file_binary+k:$Header: //depot/test-mercurial-import/file_binary+k#2 $$Header: //depot/test-mercurial-import/file_binary+k#2 $Header$
+file_binary+kx:$Header: //depot/test-mercurial-import/file_binary+kx#2 $
+file_binary+kx:$Header: //depot/test-mercurial-import/file_binary+kx#2 $$Header: //depot/test-mercurial-import/file_binary+kx#2 $Header$
+file_binary+x:$Header$
+file_binary+x:$Header$$Header$Header$
+file_ctext:$Header$
+file_ctext:$Header$$Header$Header$
+file_cxtext:$Header$
+file_cxtext:$Header$$Header$Header$
+file_ktext:$Header: //depot/test-mercurial-import/file_ktext#2 $
+file_ktext:$Header: //depot/test-mercurial-import/file_ktext#2 $$Header: //depot/test-mercurial-import/file_ktext#2 $Header$
+file_kxtext:$Header: //depot/test-mercurial-import/file_kxtext#2 $
+file_kxtext:$Header: //depot/test-mercurial-import/file_kxtext#2 $$Header: //depot/test-mercurial-import/file_kxtext#2 $Header$
+file_ltext:$Header$
+file_ltext:$Header$$Header$Header$
+file_symlink:$Header$
+file_symlink:$Header$$Header$Header$
+file_symlink+k:$Header$
+file_symlink+k:$Header$$Header$Header$
+file_tempobj:$Header$
+file_tempobj:$Header$$Header$Header$
+file_text:$Header$
+file_text:$Header$$Header$Header$
+file_text+c:$Header$
+file_text+c:$Header$$Header$Header$
+file_text+d:$Header$
+file_text+d:$Header$$Header$Header$
+file_text+f:$Header$
+file_text+f:$Header$$Header$Header$
+file_text+k:$Header: //depot/test-mercurial-import/file_text+k#2 $
+file_text+k:$Header: //depot/test-mercurial-import/file_text+k#2 $$Header: //depot/test-mercurial-import/file_text+k#2 $Header$
+file_text+ko:$Header: //depot/test-mercurial-import/file_text+ko#2 $
+file_text+ko:$Header: //depot/test-mercurial-import/file_text+ko#2 $$Header: //depot/test-mercurial-import/file_text+ko#2 $Header$
+file_text+kx:$Header: //depot/test-mercurial-import/file_text+kx#2 $
+file_text+kx:$Header: //depot/test-mercurial-import/file_text+kx#2 $$Header: //depot/test-mercurial-import/file_text+kx#2 $Header$
+file_text+l:$Header$
+file_text+l:$Header$$Header$Header$
+file_text+m:$Header$
+file_text+m:$Header$$Header$Header$
+file_text+s:$Header$
+file_text+s:$Header$$Header$Header$
+file_text+s2:$Header$
+file_text+s2:$Header$$Header$Header$
+file_text+w:$Header$
+file_text+w:$Header$$Header$Header$
+file_text+x:$Header$
+file_text+x:$Header$$Header$Header$
+file_ubinary:$Header$
+file_ubinary:$Header$$Header$Header$
+file_uxbinary:$Header$
+file_uxbinary:$Header$$Header$Header$
+file_xbinary:$Header$
+file_xbinary:$Header$$Header$Header$
+file_xltext:$Header$
+file_xltext:$Header$$Header$Header$
+file_xtempobj:$Header$
+file_xtempobj:$Header$$Header$Header$
+file_xtext:$Header$
+file_xtext:$Header$$Header$Header$
+% convert
+initializing destination dst repository
+reading p4 views
+collecting p4 changelists
+1 initial
+2 keywords
+scanning source...
+sorting...
+converting...
+1 initial
+0 keywords
+rev=1 desc="keywords" tags="tip" files="crazy_symlink+k file_binary file_binary+k file_binary+kx file_binary+x file_ctext file_cxtext file_ktext file_kxtext file_ltext file_text file_text+c file_text+d file_text+f file_text+k file_text+ko file_text+kx file_text+l file_text+m file_text+s file_text+s2 file_text+w file_text+x file_ubinary file_uxbinary file_xbinary file_xltext file_xtext target_symlink target_symlink+k"
+grev=0 desc="initial" tags="" files="file_binary file_binary+k file_binary+kx file_binary+x file_ctext file_cxtext file_ktext file_kxtext file_ltext file_symlink file_symlink+k file_text file_text+c file_text+d file_text+f file_text+k file_text+ko file_text+kx file_text+l file_text+m file_text+s2 file_text+w file_text+x file_ubinary file_uxbinary file_xbinary file_xltext file_xtext target_symlink target_symlink+k"
+g% revision 0
+30 files updated, 0 files merged, 0 files removed, 0 files unresolved
+==> dst/file_binary <==
+this is binary
+==> dst/file_binary+k <==
+this is binary+k
+==> dst/file_binary+kx <==
+this is binary+kx
+==> dst/file_binary+x <==
+this is binary+x
+==> dst/file_ctext <==
+this is ctext
+
+==> dst/file_cxtext <==
+this is cxtext
+
+==> dst/file_ktext <==
+this is ktext
+
+==> dst/file_kxtext <==
+this is kxtext
+
+==> dst/file_ltext <==
+this is ltext
+
+==> dst/file_symlink <==
+this is target symlink
+
+==> dst/file_symlink+k <==
+this is target symlink+k
+
+==> dst/file_text <==
+this is text
+
+==> dst/file_text+c <==
+this is text+C
+
+==> dst/file_text+d <==
+this is text+D
+
+==> dst/file_text+f <==
+this is text+F
+
+==> dst/file_text+k <==
+this is text+k
+
+==> dst/file_text+ko <==
+this is text+ko
+
+==> dst/file_text+kx <==
+this is text+kx
+
+==> dst/file_text+l <==
+this is text+l
+
+==> dst/file_text+m <==
+this is text+m
+
+==> dst/file_text+s2 <==
+this is text+S2
+
+==> dst/file_text+w <==
+this is text+w
+
+==> dst/file_text+x <==
+this is text+x
+
+==> dst/file_ubinary <==
+this is ubinary
+
+==> dst/file_uxbinary <==
+this is uxbinary
+
+==> dst/file_xbinary <==
+this is xbinary
+
+==> dst/file_xltext <==
+this is xltext
+
+==> dst/file_xtext <==
+this is xtext
+
+% revision 1
+30 files updated, 0 files merged, 0 files removed, 0 files unresolved
+==> dst/file_binary <==
+this is binary$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_binary+k <==
+this is binary+k$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_binary+kx <==
+this is binary+kx$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_binary+x <==
+this is binary+x$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_ctext <==
+this is ctext
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_cxtext <==
+this is cxtext
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_ktext <==
+this is ktext
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_kxtext <==
+this is kxtext
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_ltext <==
+this is ltext
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_symlink <==
+this is target symlink
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_symlink+k <==
+this is target symlink+k
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text <==
+this is text
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+c <==
+this is text+C
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+d <==
+this is text+D
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+f <==
+this is text+F
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+k <==
+this is text+k
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+ko <==
+this is text+ko
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+kx <==
+this is text+kx
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+l <==
+this is text+l
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+m <==
+this is text+m
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+s <==
+this is text+S
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+s2 <==
+this is text+S2
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+w <==
+this is text+w
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_text+x <==
+this is text+x
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_ubinary <==
+this is ubinary
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_uxbinary <==
+this is uxbinary
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_xbinary <==
+this is xbinary
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_xltext <==
+this is xltext
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+==> dst/file_xtext <==
+this is xtext
+$Id$
+$Header$
+$Date$
+$DateTime$
+$Change$
+$File$
+$Revision$
+$Header$$Header$Header$
+
+% crazy_symlink
+target_$Header: //depot/test-mercurial-import/crazy_symlink+k#1 $
+target_$Header$
+% stop the p4 server
diff --git a/tests/test-convert-p4-filetypes.t b/tests/test-convert-p4-filetypes.t
deleted file mode 100644
index 3405486..0000000
--- a/tests/test-convert-p4-filetypes.t
+++ /dev/null
@@ -1,733 +0,0 @@
- $ "$TESTDIR/hghave" p4 execbit symlink || exit 80
-
- $ echo "[extensions]" >> $HGRCPATH
- $ echo "convert = " >> $HGRCPATH
-
-create p4 depot
- $ P4ROOT=`pwd`/depot; export P4ROOT
- $ P4AUDIT=$P4ROOT/audit; export P4AUDIT
- $ P4JOURNAL=$P4ROOT/journal; export P4JOURNAL
- $ P4LOG=$P4ROOT/log; export P4LOG
- $ P4PORT=localhost:16661; export P4PORT
- $ P4DEBUG=1; export P4DEBUG
- $ P4CHARSET=utf8; export P4CHARSET
-
-start the p4 server
- $ [ ! -d $P4ROOT ] && mkdir $P4ROOT
- $ p4d -f -J off -xi >$P4ROOT/stdout 2>$P4ROOT/stderr
- $ p4d -f -J off >$P4ROOT/stdout 2>$P4ROOT/stderr &
- $ echo $! >> $DAEMON_PIDS
- $ trap "echo stopping the p4 server ; p4 admin stop" EXIT
-
-wait for the server to initialize
- $ while ! p4 ; do
- > sleep 1
- > done >/dev/null 2>/dev/null
-
-create a client spec
- $ P4CLIENT=hg-p4-import; export P4CLIENT
- $ DEPOTPATH=//depot/test-mercurial-import/...
- $ p4 client -o | sed '/^View:/,$ d' >p4client
- $ echo View: >>p4client
- $ echo " $DEPOTPATH //$P4CLIENT/..." >>p4client
- $ p4 client -i <p4client
- Client hg-p4-import saved.
-
-populate the depot
- $ TYPES="text binary symlink"
- $ TYPES="$TYPES text+m text+w text+x text+k text+kx text+ko text+l text+C text+D text+F text+S text+S2"
- $ TYPES="$TYPES binary+k binary+x binary+kx symlink+k"
- $ TYPES="$TYPES ctext cxtext ktext kxtext ltext tempobj ubinary uxbinary xbinary xltext xtempobj xtext"
-not testing these
- $ #TYPES="$TYPES apple resource unicode utf16 uresource xunicode xutf16"
- $ for T in $TYPES ; do
- > T2=`echo $T | tr [:upper:] [:lower:]`
- > case $T in
- > apple)
- > ;;
- > symlink*)
- > echo "this is target $T" >target_$T2
- > ln -s target_$T file_$T2
- > p4 add target_$T2
- > p4 add -t $T file_$T2
- > ;;
- > binary*)
- > python -c "file('file_$T2', 'wb').write('this is $T')"
- > p4 add -t $T file_$T2
- > ;;
- > *)
- > echo "this is $T" >file_$T2
- > p4 add -t $T file_$T2
- > ;;
- > esac
- > done
- //depot/test-mercurial-import/file_text#1 - opened for add
- //depot/test-mercurial-import/file_binary#1 - opened for add
- //depot/test-mercurial-import/target_symlink#1 - opened for add
- //depot/test-mercurial-import/file_symlink#1 - opened for add
- //depot/test-mercurial-import/file_text+m#1 - opened for add
- //depot/test-mercurial-import/file_text+w#1 - opened for add
- //depot/test-mercurial-import/file_text+x#1 - opened for add
- //depot/test-mercurial-import/file_text+k#1 - opened for add
- //depot/test-mercurial-import/file_text+kx#1 - opened for add
- //depot/test-mercurial-import/file_text+ko#1 - opened for add
- //depot/test-mercurial-import/file_text+l#1 - opened for add
- //depot/test-mercurial-import/file_text+c#1 - opened for add
- //depot/test-mercurial-import/file_text+d#1 - opened for add
- //depot/test-mercurial-import/file_text+f#1 - opened for add
- //depot/test-mercurial-import/file_text+s#1 - opened for add
- //depot/test-mercurial-import/file_text+s2#1 - opened for add
- //depot/test-mercurial-import/file_binary+k#1 - opened for add
- //depot/test-mercurial-import/file_binary+x#1 - opened for add
- //depot/test-mercurial-import/file_binary+kx#1 - opened for add
- //depot/test-mercurial-import/target_symlink+k#1 - opened for add
- //depot/test-mercurial-import/file_symlink+k#1 - opened for add
- //depot/test-mercurial-import/file_ctext#1 - opened for add
- //depot/test-mercurial-import/file_cxtext#1 - opened for add
- //depot/test-mercurial-import/file_ktext#1 - opened for add
- //depot/test-mercurial-import/file_kxtext#1 - opened for add
- //depot/test-mercurial-import/file_ltext#1 - opened for add
- //depot/test-mercurial-import/file_tempobj#1 - opened for add
- //depot/test-mercurial-import/file_ubinary#1 - opened for add
- //depot/test-mercurial-import/file_uxbinary#1 - opened for add
- //depot/test-mercurial-import/file_xbinary#1 - opened for add
- //depot/test-mercurial-import/file_xltext#1 - opened for add
- //depot/test-mercurial-import/file_xtempobj#1 - opened for add
- //depot/test-mercurial-import/file_xtext#1 - opened for add
- $ p4 submit -d initial
- Submitting change 1.
- Locking 33 files ...
- add //depot/test-mercurial-import/file_binary#1
- add //depot/test-mercurial-import/file_binary+k#1
- add //depot/test-mercurial-import/file_binary+kx#1
- add //depot/test-mercurial-import/file_binary+x#1
- add //depot/test-mercurial-import/file_ctext#1
- add //depot/test-mercurial-import/file_cxtext#1
- add //depot/test-mercurial-import/file_ktext#1
- add //depot/test-mercurial-import/file_kxtext#1
- add //depot/test-mercurial-import/file_ltext#1
- add //depot/test-mercurial-import/file_symlink#1
- add //depot/test-mercurial-import/file_symlink+k#1
- add //depot/test-mercurial-import/file_tempobj#1
- add //depot/test-mercurial-import/file_text#1
- add //depot/test-mercurial-import/file_text+c#1
- add //depot/test-mercurial-import/file_text+d#1
- add //depot/test-mercurial-import/file_text+f#1
- add //depot/test-mercurial-import/file_text+k#1
- add //depot/test-mercurial-import/file_text+ko#1
- add //depot/test-mercurial-import/file_text+kx#1
- add //depot/test-mercurial-import/file_text+l#1
- add //depot/test-mercurial-import/file_text+m#1
- add //depot/test-mercurial-import/file_text+s#1
- add //depot/test-mercurial-import/file_text+s2#1
- add //depot/test-mercurial-import/file_text+w#1
- add //depot/test-mercurial-import/file_text+x#1
- add //depot/test-mercurial-import/file_ubinary#1
- add //depot/test-mercurial-import/file_uxbinary#1
- add //depot/test-mercurial-import/file_xbinary#1
- add //depot/test-mercurial-import/file_xltext#1
- add //depot/test-mercurial-import/file_xtempobj#1
- add //depot/test-mercurial-import/file_xtext#1
- add //depot/test-mercurial-import/target_symlink#1
- add //depot/test-mercurial-import/target_symlink+k#1
- Change 1 submitted.
- //depot/test-mercurial-import/file_binary+k#1 - refreshing
- //depot/test-mercurial-import/file_binary+kx#1 - refreshing
- //depot/test-mercurial-import/file_ktext#1 - refreshing
- //depot/test-mercurial-import/file_kxtext#1 - refreshing
- //depot/test-mercurial-import/file_symlink+k#1 - refreshing
- //depot/test-mercurial-import/file_text+k#1 - refreshing
- //depot/test-mercurial-import/file_text+ko#1 - refreshing
- //depot/test-mercurial-import/file_text+kx#1 - refreshing
-
-test keyword expansion
- $ p4 edit file_* target_*
- //depot/test-mercurial-import/file_binary#1 - opened for edit
- //depot/test-mercurial-import/file_binary+k#1 - opened for edit
- //depot/test-mercurial-import/file_binary+kx#1 - opened for edit
- //depot/test-mercurial-import/file_binary+x#1 - opened for edit
- //depot/test-mercurial-import/file_ctext#1 - opened for edit
- //depot/test-mercurial-import/file_cxtext#1 - opened for edit
- //depot/test-mercurial-import/file_ktext#1 - opened for edit
- //depot/test-mercurial-import/file_kxtext#1 - opened for edit
- //depot/test-mercurial-import/file_ltext#1 - opened for edit
- //depot/test-mercurial-import/file_symlink#1 - opened for edit
- //depot/test-mercurial-import/file_symlink+k#1 - opened for edit
- //depot/test-mercurial-import/file_tempobj#1 - opened for edit
- //depot/test-mercurial-import/file_text#1 - opened for edit
- //depot/test-mercurial-import/file_text+c#1 - opened for edit
- //depot/test-mercurial-import/file_text+d#1 - opened for edit
- //depot/test-mercurial-import/file_text+f#1 - opened for edit
- //depot/test-mercurial-import/file_text+k#1 - opened for edit
- //depot/test-mercurial-import/file_text+ko#1 - opened for edit
- //depot/test-mercurial-import/file_text+kx#1 - opened for edit
- //depot/test-mercurial-import/file_text+l#1 - opened for edit
- //depot/test-mercurial-import/file_text+m#1 - opened for edit
- //depot/test-mercurial-import/file_text+s#1 - opened for edit
- //depot/test-mercurial-import/file_text+s2#1 - opened for edit
- //depot/test-mercurial-import/file_text+w#1 - opened for edit
- //depot/test-mercurial-import/file_text+x#1 - opened for edit
- //depot/test-mercurial-import/file_ubinary#1 - opened for edit
- //depot/test-mercurial-import/file_uxbinary#1 - opened for edit
- //depot/test-mercurial-import/file_xbinary#1 - opened for edit
- //depot/test-mercurial-import/file_xltext#1 - opened for edit
- //depot/test-mercurial-import/file_xtempobj#1 - opened for edit
- //depot/test-mercurial-import/file_xtext#1 - opened for edit
- //depot/test-mercurial-import/target_symlink#1 - opened for edit
- //depot/test-mercurial-import/target_symlink+k#1 - opened for edit
- $ for T in $TYPES ; do
- > T2=`echo $T | tr [:upper:] [:lower:]`
- > echo '$Id$' >>file_$T2
- > echo '$Header$' >>file_$T2
- > echo '$Date$' >>file_$T2
- > echo '$DateTime$' >>file_$T2
- > echo '$Change$' >>file_$T2
- > echo '$File$' >>file_$T2
- > echo '$Revision$' >>file_$T2
- > echo '$Header$$Header$Header$' >>file_$T2
- > done
-
- $ ln -s 'target_$Header$' crazy_symlink+k
- $ p4 add -t symlink+k crazy_symlink+k
- //depot/test-mercurial-import/crazy_symlink+k#1 - opened for add
-
- $ p4 submit -d keywords
- Submitting change 2.
- Locking 34 files ...
- add //depot/test-mercurial-import/crazy_symlink+k#1
- edit //depot/test-mercurial-import/file_binary#2
- edit //depot/test-mercurial-import/file_binary+k#2
- edit //depot/test-mercurial-import/file_binary+kx#2
- edit //depot/test-mercurial-import/file_binary+x#2
- edit //depot/test-mercurial-import/file_ctext#2
- edit //depot/test-mercurial-import/file_cxtext#2
- edit //depot/test-mercurial-import/file_ktext#2
- edit //depot/test-mercurial-import/file_kxtext#2
- edit //depot/test-mercurial-import/file_ltext#2
- edit //depot/test-mercurial-import/file_symlink#2
- edit //depot/test-mercurial-import/file_symlink+k#2
- edit //depot/test-mercurial-import/file_tempobj#2
- edit //depot/test-mercurial-import/file_text#2
- edit //depot/test-mercurial-import/file_text+c#2
- edit //depot/test-mercurial-import/file_text+d#2
- edit //depot/test-mercurial-import/file_text+f#2
- edit //depot/test-mercurial-import/file_text+k#2
- edit //depot/test-mercurial-import/file_text+ko#2
- edit //depot/test-mercurial-import/file_text+kx#2
- edit //depot/test-mercurial-import/file_text+l#2
- edit //depot/test-mercurial-import/file_text+m#2
- edit //depot/test-mercurial-import/file_text+s#2
- edit //depot/test-mercurial-import/file_text+s2#2
- edit //depot/test-mercurial-import/file_text+w#2
- edit //depot/test-mercurial-import/file_text+x#2
- edit //depot/test-mercurial-import/file_ubinary#2
- edit //depot/test-mercurial-import/file_uxbinary#2
- edit //depot/test-mercurial-import/file_xbinary#2
- edit //depot/test-mercurial-import/file_xltext#2
- edit //depot/test-mercurial-import/file_xtempobj#2
- edit //depot/test-mercurial-import/file_xtext#2
- edit //depot/test-mercurial-import/target_symlink#2
- edit //depot/test-mercurial-import/target_symlink+k#2
- Change 2 submitted.
- //depot/test-mercurial-import/crazy_symlink+k#1 - refreshing
- //depot/test-mercurial-import/file_binary+k#2 - refreshing
- //depot/test-mercurial-import/file_binary+kx#2 - refreshing
- //depot/test-mercurial-import/file_ktext#2 - refreshing
- //depot/test-mercurial-import/file_kxtext#2 - refreshing
- //depot/test-mercurial-import/file_symlink+k#2 - refreshing
- //depot/test-mercurial-import/file_text+k#2 - refreshing
- //depot/test-mercurial-import/file_text+ko#2 - refreshing
- //depot/test-mercurial-import/file_text+kx#2 - refreshing
-
-check keywords in p4
- $ grep -H Header file_*
- file_binary:$Header$
- file_binary:$Header$$Header$Header$
- file_binary+k:$Header: //depot/test-mercurial-import/file_binary+k#2 $
- file_binary+k:$Header: //depot/test-mercurial-import/file_binary+k#2 $$Header: //depot/test-mercurial-import/file_binary+k#2 $Header$
- file_binary+kx:$Header: //depot/test-mercurial-import/file_binary+kx#2 $
- file_binary+kx:$Header: //depot/test-mercurial-import/file_binary+kx#2 $$Header: //depot/test-mercurial-import/file_binary+kx#2 $Header$
- file_binary+x:$Header$
- file_binary+x:$Header$$Header$Header$
- file_ctext:$Header$
- file_ctext:$Header$$Header$Header$
- file_cxtext:$Header$
- file_cxtext:$Header$$Header$Header$
- file_ktext:$Header: //depot/test-mercurial-import/file_ktext#2 $
- file_ktext:$Header: //depot/test-mercurial-import/file_ktext#2 $$Header: //depot/test-mercurial-import/file_ktext#2 $Header$
- file_kxtext:$Header: //depot/test-mercurial-import/file_kxtext#2 $
- file_kxtext:$Header: //depot/test-mercurial-import/file_kxtext#2 $$Header: //depot/test-mercurial-import/file_kxtext#2 $Header$
- file_ltext:$Header$
- file_ltext:$Header$$Header$Header$
- file_symlink:$Header$
- file_symlink:$Header$$Header$Header$
- file_symlink+k:$Header$
- file_symlink+k:$Header$$Header$Header$
- file_tempobj:$Header$
- file_tempobj:$Header$$Header$Header$
- file_text:$Header$
- file_text:$Header$$Header$Header$
- file_text+c:$Header$
- file_text+c:$Header$$Header$Header$
- file_text+d:$Header$
- file_text+d:$Header$$Header$Header$
- file_text+f:$Header$
- file_text+f:$Header$$Header$Header$
- file_text+k:$Header: //depot/test-mercurial-import/file_text+k#2 $
- file_text+k:$Header: //depot/test-mercurial-import/file_text+k#2 $$Header: //depot/test-mercurial-import/file_text+k#2 $Header$
- file_text+ko:$Header: //depot/test-mercurial-import/file_text+ko#2 $
- file_text+ko:$Header: //depot/test-mercurial-import/file_text+ko#2 $$Header: //depot/test-mercurial-import/file_text+ko#2 $Header$
- file_text+kx:$Header: //depot/test-mercurial-import/file_text+kx#2 $
- file_text+kx:$Header: //depot/test-mercurial-import/file_text+kx#2 $$Header: //depot/test-mercurial-import/file_text+kx#2 $Header$
- file_text+l:$Header$
- file_text+l:$Header$$Header$Header$
- file_text+m:$Header$
- file_text+m:$Header$$Header$Header$
- file_text+s:$Header$
- file_text+s:$Header$$Header$Header$
- file_text+s2:$Header$
- file_text+s2:$Header$$Header$Header$
- file_text+w:$Header$
- file_text+w:$Header$$Header$Header$
- file_text+x:$Header$
- file_text+x:$Header$$Header$Header$
- file_ubinary:$Header$
- file_ubinary:$Header$$Header$Header$
- file_uxbinary:$Header$
- file_uxbinary:$Header$$Header$Header$
- file_xbinary:$Header$
- file_xbinary:$Header$$Header$Header$
- file_xltext:$Header$
- file_xltext:$Header$$Header$Header$
- file_xtempobj:$Header$
- file_xtempobj:$Header$$Header$Header$
- file_xtext:$Header$
- file_xtext:$Header$$Header$Header$
-
-convert
- $ hg convert -s p4 $DEPOTPATH dst
- initializing destination dst repository
- reading p4 views
- collecting p4 changelists
- 1 initial
- 2 keywords
- scanning source...
- sorting...
- converting...
- 1 initial
- 0 keywords
- $ hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
- rev=1 desc="keywords" tags="tip" files="crazy_symlink+k file_binary file_binary+k file_binary+kx file_binary+x file_ctext file_cxtext file_ktext file_kxtext file_ltext file_text file_text+c file_text+d file_text+f file_text+k file_text+ko file_text+kx file_text+l file_text+m file_text+s file_text+s2 file_text+w file_text+x file_ubinary file_uxbinary file_xbinary file_xltext file_xtext target_symlink target_symlink+k"
- rev=0 desc="initial" tags="" files="file_binary file_binary+k file_binary+kx file_binary+x file_ctext file_cxtext file_ktext file_kxtext file_ltext file_symlink file_symlink+k file_text file_text+c file_text+d file_text+f file_text+k file_text+ko file_text+kx file_text+l file_text+m file_text+s2 file_text+w file_text+x file_ubinary file_uxbinary file_xbinary file_xltext file_xtext target_symlink target_symlink+k"
-
-revision 0
- $ hg -R dst update 0
- 30 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ head dst/file_* | cat -v
- ==> dst/file_binary <==
- this is binary
- ==> dst/file_binary+k <==
- this is binary+k
- ==> dst/file_binary+kx <==
- this is binary+kx
- ==> dst/file_binary+x <==
- this is binary+x
- ==> dst/file_ctext <==
- this is ctext
-
- ==> dst/file_cxtext <==
- this is cxtext
-
- ==> dst/file_ktext <==
- this is ktext
-
- ==> dst/file_kxtext <==
- this is kxtext
-
- ==> dst/file_ltext <==
- this is ltext
-
- ==> dst/file_symlink <==
- this is target symlink
-
- ==> dst/file_symlink+k <==
- this is target symlink+k
-
- ==> dst/file_text <==
- this is text
-
- ==> dst/file_text+c <==
- this is text+C
-
- ==> dst/file_text+d <==
- this is text+D
-
- ==> dst/file_text+f <==
- this is text+F
-
- ==> dst/file_text+k <==
- this is text+k
-
- ==> dst/file_text+ko <==
- this is text+ko
-
- ==> dst/file_text+kx <==
- this is text+kx
-
- ==> dst/file_text+l <==
- this is text+l
-
- ==> dst/file_text+m <==
- this is text+m
-
- ==> dst/file_text+s2 <==
- this is text+S2
-
- ==> dst/file_text+w <==
- this is text+w
-
- ==> dst/file_text+x <==
- this is text+x
-
- ==> dst/file_ubinary <==
- this is ubinary
-
- ==> dst/file_uxbinary <==
- this is uxbinary
-
- ==> dst/file_xbinary <==
- this is xbinary
-
- ==> dst/file_xltext <==
- this is xltext
-
- ==> dst/file_xtext <==
- this is xtext
-
-revision 1
- $ hg -R dst update 1
- 30 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ head dst/file_* | cat -v
- ==> dst/file_binary <==
- this is binary$Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_binary+k <==
- this is binary+k$Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_binary+kx <==
- this is binary+kx$Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_binary+x <==
- this is binary+x$Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_ctext <==
- this is ctext
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_cxtext <==
- this is cxtext
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_ktext <==
- this is ktext
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_kxtext <==
- this is kxtext
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_ltext <==
- this is ltext
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_symlink <==
- this is target symlink
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_symlink+k <==
- this is target symlink+k
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text <==
- this is text
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+c <==
- this is text+C
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+d <==
- this is text+D
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+f <==
- this is text+F
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+k <==
- this is text+k
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+ko <==
- this is text+ko
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+kx <==
- this is text+kx
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+l <==
- this is text+l
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+m <==
- this is text+m
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+s <==
- this is text+S
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+s2 <==
- this is text+S2
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+w <==
- this is text+w
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_text+x <==
- this is text+x
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_ubinary <==
- this is ubinary
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_uxbinary <==
- this is uxbinary
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_xbinary <==
- this is xbinary
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_xltext <==
- this is xltext
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
- ==> dst/file_xtext <==
- this is xtext
- $Id$
- $Header$
- $Date$
- $DateTime$
- $Change$
- $File$
- $Revision$
- $Header$$Header$Header$
-
-crazy_symlink
- $ readlink crazy_symlink+k
- target_$Header: //depot/test-mercurial-import/crazy_symlink+k#1 $
- $ readlink dst/crazy_symlink+k
- target_$Header$
-
-exit trap:
- stopping the p4 server
diff --git a/tests/test-convert-p4.out b/tests/test-convert-p4.out
new file mode 100644
index 0000000..9451cf8
--- /dev/null
+++ b/tests/test-convert-p4.out
@@ -0,0 +1,88 @@
+% create p4 depot
+% start the p4 server
+% create a client spec
+Client hg-p4-import saved.
+% populate the depot
+//depot/test-mercurial-import/a#1 - opened for add
+//depot/test-mercurial-import/b/c#1 - opened for add
+Submitting change 1.
+Locking 2 files ...
+add //depot/test-mercurial-import/a#1
+add //depot/test-mercurial-import/b/c#1
+Change 1 submitted.
+% change some files
+//depot/test-mercurial-import/a#1 - opened for edit
+Submitting change 2.
+Locking 1 files ...
+edit //depot/test-mercurial-import/a#2
+Change 2 submitted.
+//depot/test-mercurial-import/b/c#1 - opened for edit
+Submitting change 3.
+Locking 1 files ...
+edit //depot/test-mercurial-import/b/c#2
+Change 3 submitted.
+% convert
+initializing destination dst repository
+reading p4 views
+collecting p4 changelists
+1 initial
+2 change a
+3 change b/c
+scanning source...
+sorting...
+converting...
+2 initial
+1 change a
+0 change b/c
+rev=2 desc="change b/c" tags="tip" files="b/c"
+rev=1 desc="change a" tags="" files="a"
+rev=0 desc="initial" tags="" files="a b/c"
+% change some files
+//depot/test-mercurial-import/a#2 - opened for edit
+//depot/test-mercurial-import/b/c#2 - opened for edit
+Submitting change 4.
+Locking 2 files ...
+edit //depot/test-mercurial-import/a#3
+edit //depot/test-mercurial-import/b/c#3
+Change 4 submitted.
+% convert again
+reading p4 views
+collecting p4 changelists
+1 initial
+2 change a
+3 change b/c
+4 change a b/c
+scanning source...
+sorting...
+converting...
+0 change a b/c
+rev=3 desc="change a b/c" tags="tip" files="a b/c"
+rev=2 desc="change b/c" tags="" files="b/c"
+rev=1 desc="change a" tags="" files="a"
+rev=0 desc="initial" tags="" files="a b/c"
+% interesting names
+//depot/test-mercurial-import/d d#1 - opened for add
+//depot/test-mercurial-import/ e/ f#1 - opened for add
+Submitting change 5.
+Locking 2 files ...
+add //depot/test-mercurial-import/ e/ f#1
+add //depot/test-mercurial-import/d d#1
+Change 5 submitted.
+% convert again
+reading p4 views
+collecting p4 changelists
+1 initial
+2 change a
+3 change b/c
+4 change a b/c
+5 add d e f
+scanning source...
+sorting...
+converting...
+0 add d e f
+rev=4 desc="add d e f" tags="tip" files=" e/ f d d"
+rev=3 desc="change a b/c" tags="" files="a b/c"
+rev=2 desc="change b/c" tags="" files="b/c"
+rev=1 desc="change a" tags="" files="a"
+rev=0 desc="initial" tags="" files="a b/c"
+% stop the p4 server
diff --git a/tests/test-convert-p4.t b/tests/test-convert-p4.t
deleted file mode 100644
index 6a59759..0000000
--- a/tests/test-convert-p4.t
+++ /dev/null
@@ -1,152 +0,0 @@
- $ "$TESTDIR/hghave" p4 || exit 80
-
- $ echo "[extensions]" >> $HGRCPATH
- $ echo "convert = " >> $HGRCPATH
-
-create p4 depot
- $ P4ROOT=`pwd`/depot; export P4ROOT
- $ P4AUDIT=$P4ROOT/audit; export P4AUDIT
- $ P4JOURNAL=$P4ROOT/journal; export P4JOURNAL
- $ P4LOG=$P4ROOT/log; export P4LOG
- $ P4PORT=localhost:16661; export P4PORT
- $ P4DEBUG=1; export P4DEBUG
-
-start the p4 server
- $ [ ! -d $P4ROOT ] && mkdir $P4ROOT
- $ p4d -f -J off >$P4ROOT/stdout 2>$P4ROOT/stderr &
- $ echo $! >> $DAEMON_PIDS
- $ trap "echo stopping the p4 server ; p4 admin stop" EXIT
-
- $ # wait for the server to initialize
- $ while ! p4 ; do
- > sleep 1
- > done >/dev/null 2>/dev/null
-
-create a client spec
- $ P4CLIENT=hg-p4-import; export P4CLIENT
- $ DEPOTPATH=//depot/test-mercurial-import/...
- $ p4 client -o | sed '/^View:/,$ d' >p4client
- $ echo View: >>p4client
- $ echo " $DEPOTPATH //$P4CLIENT/..." >>p4client
- $ p4 client -i <p4client
- Client hg-p4-import saved.
-
-populate the depot
- $ echo a > a
- $ mkdir b
- $ echo c > b/c
- $ p4 add a b/c
- //depot/test-mercurial-import/a#1 - opened for add
- //depot/test-mercurial-import/b/c#1 - opened for add
- $ p4 submit -d initial
- Submitting change 1.
- Locking 2 files ...
- add //depot/test-mercurial-import/a#1
- add //depot/test-mercurial-import/b/c#1
- Change 1 submitted.
-
-change some files
- $ p4 edit a
- //depot/test-mercurial-import/a#1 - opened for edit
- $ echo aa >> a
- $ p4 submit -d "change a"
- Submitting change 2.
- Locking 1 files ...
- edit //depot/test-mercurial-import/a#2
- Change 2 submitted.
-
- $ p4 edit b/c
- //depot/test-mercurial-import/b/c#1 - opened for edit
- $ echo cc >> b/c
- $ p4 submit -d "change b/c"
- Submitting change 3.
- Locking 1 files ...
- edit //depot/test-mercurial-import/b/c#2
- Change 3 submitted.
-
-convert
- $ hg convert -s p4 $DEPOTPATH dst
- initializing destination dst repository
- reading p4 views
- collecting p4 changelists
- 1 initial
- 2 change a
- 3 change b/c
- scanning source...
- sorting...
- converting...
- 2 initial
- 1 change a
- 0 change b/c
- $ hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
- rev=2 desc="change b/c" tags="tip" files="b/c"
- rev=1 desc="change a" tags="" files="a"
- rev=0 desc="initial" tags="" files="a b/c"
-
-change some files
- $ p4 edit a b/c
- //depot/test-mercurial-import/a#2 - opened for edit
- //depot/test-mercurial-import/b/c#2 - opened for edit
- $ echo aaa >> a
- $ echo ccc >> b/c
- $ p4 submit -d "change a b/c"
- Submitting change 4.
- Locking 2 files ...
- edit //depot/test-mercurial-import/a#3
- edit //depot/test-mercurial-import/b/c#3
- Change 4 submitted.
-
-convert again
- $ hg convert -s p4 $DEPOTPATH dst
- reading p4 views
- collecting p4 changelists
- 1 initial
- 2 change a
- 3 change b/c
- 4 change a b/c
- scanning source...
- sorting...
- converting...
- 0 change a b/c
- $ hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
- rev=3 desc="change a b/c" tags="tip" files="a b/c"
- rev=2 desc="change b/c" tags="" files="b/c"
- rev=1 desc="change a" tags="" files="a"
- rev=0 desc="initial" tags="" files="a b/c"
-
-interesting names
- $ echo dddd > "d d"
- $ mkdir " e"
- $ echo fff >" e/ f"
- $ p4 add "d d" " e/ f"
- //depot/test-mercurial-import/d d#1 - opened for add
- //depot/test-mercurial-import/ e/ f#1 - opened for add
- $ p4 submit -d "add d e f"
- Submitting change 5.
- Locking 2 files ...
- add //depot/test-mercurial-import/ e/ f#1
- add //depot/test-mercurial-import/d d#1
- Change 5 submitted.
-
-convert again
- $ hg convert -s p4 $DEPOTPATH dst
- reading p4 views
- collecting p4 changelists
- 1 initial
- 2 change a
- 3 change b/c
- 4 change a b/c
- 5 add d e f
- scanning source...
- sorting...
- converting...
- 0 add d e f
- $ hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
- rev=4 desc="add d e f" tags="tip" files=" e/ f d d"
- rev=3 desc="change a b/c" tags="" files="a b/c"
- rev=2 desc="change b/c" tags="" files="b/c"
- rev=1 desc="change a" tags="" files="a"
- rev=0 desc="initial" tags="" files="a b/c"
-
-exit trap:
- stopping the p4 server
diff --git a/tests/test-convert-splicemap.t b/tests/test-convert-splicemap.t
index d5bb15f..6104fdf 100644
--- a/tests/test-convert-splicemap.t
+++ b/tests/test-convert-splicemap.t
@@ -4,8 +4,7 @@
$ echo 'graphlog =' >> $HGRCPATH
$ glog()
> {
- > hg glog --template '{rev}:{node|short} "{desc|firstline}"\
- > files: {files}\n' "$@"
+ > hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
> }
$ hg init repo1
$ cd repo1
@@ -22,14 +21,6 @@
adding c
$ PARENTID2=`hg id --debug -i`
$ cd ..
- $ glog -R repo1
- @ 2:e55c719b85b6 "addc" files: c
- |
- o 1:6d4c2037ddc2 "addb" files: a b
- |
- o 0:07f494440405 "adda" files: a
-
-
$ hg init repo2
$ cd repo2
$ echo b > a
@@ -45,13 +36,6 @@
$ hg ci -Am adde
adding e
$ cd ..
- $ glog -R repo2
- @ 2:a39b65753b0a "adde" files: e
- |
- o 1:e4ea00df9189 "changed" files: d
- |
- o 0:527cdedf31fb "addaandd" files: a d
-
test invalid splicemap
@@ -59,7 +43,7 @@ test invalid splicemap
> $CHILDID2
> EOF
$ hg convert --splicemap splicemap repo2 repo1
- abort: syntax error in splicemap(1): child parent1[,parent2] expected
+ abort: syntax error in splicemap(1): key/value pair expected
[255]
splice repo2 on repo1
@@ -67,12 +51,7 @@ splice repo2 on repo1
$ cat > splicemap <<EOF
> $CHILDID1 $PARENTID1
> $CHILDID2 $PARENTID2,$CHILDID1
- >
> EOF
- $ cat splicemap
- 527cdedf31fbd5ea708aa14eeecf53d4676f38db 6d4c2037ddc2cb2627ac3a244ecce35283268f8e
- e4ea00df91897da3079a10fab658c1eddba6617b e55c719b85b60e5102fac26110ba626e7cb6b7dc,527cdedf31fbd5ea708aa14eeecf53d4676f38db
-
$ hg clone repo1 target1
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -86,137 +65,15 @@ splice repo2 on repo1
spliced in ['e55c719b85b60e5102fac26110ba626e7cb6b7dc', '527cdedf31fbd5ea708aa14eeecf53d4676f38db'] as parents of e4ea00df91897da3079a10fab658c1eddba6617b
0 adde
$ glog -R target1
- o 5:16bc847b02aa "adde" files: e
+ o 5 "adde" files: e
|
- o 4:e30e4fee3418 "changed" files: d
+ o 4 "changed" files: d
|\
- | o 3:e673348c3a3c "addaandd" files: a d
+ | o 3 "addaandd" files: a d
| |
- @ | 2:e55c719b85b6 "addc" files: c
+ @ | 2 "addc" files: c
|/
- o 1:6d4c2037ddc2 "addb" files: a b
+ o 1 "addb" files: a b
|
- o 0:07f494440405 "adda" files: a
-
-
-
-
-Test splicemap and conversion order
-
- $ hg init ordered
- $ cd ordered
- $ echo a > a
- $ hg ci -Am adda
- adding a
- $ hg branch branch
- marked working directory as branch branch
- (branches are permanent and global, did you want a bookmark?)
- $ echo a >> a
- $ hg ci -Am changea
- $ echo a >> a
- $ hg ci -Am changeaagain
- $ hg up 0
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ echo b > b
- $ hg ci -Am addb
- adding b
-
-We want 2 to depend on 1 and 3. Since 3 is always converted after 2,
-the bug should be exhibited with all conversion orders.
-
- $ cat > ../splicemap <<EOF
- > `(hg id -r 2 -i --debug)` `(hg id -r 1 -i --debug)`, `(hg id -r 3 -i --debug)`
- > EOF
- $ cd ..
- $ cat splicemap
- 7c364e7fa7d70ae525610c016317ed717b519d97 717d54d67e6c31fd75ffef2ff3042bdd98418437, 102a90ea7b4a3361e4082ed620918c261189a36a
-
-Test regular conversion
-
- $ hg convert --splicemap splicemap ordered ordered-hg1
- initializing destination ordered-hg1 repository
- scanning source...
- sorting...
- converting...
- 3 adda
- 2 changea
- 1 addb
- 0 changeaagain
- spliced in ['717d54d67e6c31fd75ffef2ff3042bdd98418437', '102a90ea7b4a3361e4082ed620918c261189a36a'] as parents of 7c364e7fa7d70ae525610c016317ed717b519d97
- $ glog -R ordered-hg1
- o 3:4cb04b9afbf2 "changeaagain" files: a
- |\
- | o 2:102a90ea7b4a "addb" files: b
- | |
- o | 1:717d54d67e6c "changea" files: a
- |/
- o 0:07f494440405 "adda" files: a
+ o 0 "adda" files: a
-
-Test conversion with parent revisions already in dest, using source
-and destination identifiers. Test unknown splicemap target.
-
- $ hg convert -r1 ordered ordered-hg2
- initializing destination ordered-hg2 repository
- scanning source...
- sorting...
- converting...
- 1 adda
- 0 changea
- $ hg convert -r3 ordered ordered-hg2
- scanning source...
- sorting...
- converting...
- 0 addb
- $ cat > splicemap <<EOF
- > `(hg -R ordered id -r 2 -i --debug)` \
- > `(hg -R ordered-hg2 id -r 1 -i --debug)`,\
- > `(hg -R ordered-hg2 id -r 2 -i --debug)`
- > deadbeef102a90ea7b4a3361e4082ed620918c26 deadbeef102a90ea7b4a3361e4082ed620918c27
- > EOF
- $ hg convert --splicemap splicemap ordered ordered-hg2
- scanning source...
- splice map revision deadbeef102a90ea7b4a3361e4082ed620918c26 is not being converted, ignoring
- sorting...
- converting...
- 0 changeaagain
- spliced in ['717d54d67e6c31fd75ffef2ff3042bdd98418437', '102a90ea7b4a3361e4082ed620918c261189a36a'] as parents of 7c364e7fa7d70ae525610c016317ed717b519d97
- $ glog -R ordered-hg2
- o 3:4cb04b9afbf2 "changeaagain" files: a
- |\
- | o 2:102a90ea7b4a "addb" files: b
- | |
- o | 1:717d54d67e6c "changea" files: a
- |/
- o 0:07f494440405 "adda" files: a
-
-
-Test empty conversion
-
- $ hg convert --splicemap splicemap ordered ordered-hg2
- scanning source...
- splice map revision deadbeef102a90ea7b4a3361e4082ed620918c26 is not being converted, ignoring
- sorting...
- converting...
-
-Test clonebranches
-
- $ hg --config convert.hg.clonebranches=true convert \
- > --splicemap splicemap ordered ordered-hg3
- initializing destination ordered-hg3 repository
- scanning source...
- abort: revision 717d54d67e6c31fd75ffef2ff3042bdd98418437 not found in destination repository (lookups with clonebranches=true are not implemented)
- [255]
-
-Test invalid dependency
-
- $ cat > splicemap <<EOF
- > `(hg -R ordered id -r 2 -i --debug)` \
- > deadbeef102a90ea7b4a3361e4082ed620918c26,\
- > `(hg -R ordered-hg2 id -r 2 -i --debug)`
- > EOF
- $ hg convert --splicemap splicemap ordered ordered-hg4
- initializing destination ordered-hg4 repository
- scanning source...
- abort: unknown splice map parent: deadbeef102a90ea7b4a3361e4082ed620918c26
- [255]
diff --git a/tests/test-convert-svn-branches.t b/tests/test-convert-svn-branches.t
index 95df843..0c09f6e 100644
--- a/tests/test-convert-svn-branches.t
+++ b/tests/test-convert-svn-branches.t
@@ -14,8 +14,6 @@ Convert trunk and branches
$ cat > branchmap <<EOF
> old3 newbranch
- >
- >
> EOF
$ hg convert --branchmap=branchmap --datesort -r 10 svn-repo A-hg
initializing destination A-hg repository
diff --git a/tests/test-convert-svn-move.t b/tests/test-convert-svn-move.t
index b8f0dde..174578d 100644
--- a/tests/test-convert-svn-move.t
+++ b/tests/test-convert-svn-move.t
@@ -1,6 +1,10 @@
$ "$TESTDIR/hghave" svn svn-bindings || exit 80
+ $ fixpath()
+ > {
+ > tr '\\' /
+ > }
$ cat >> $HGRCPATH <<EOF
> [extensions]
> convert =
@@ -9,16 +13,20 @@
$ svnadmin create svn-repo
$ svnadmin load -q svn-repo < "$TESTDIR/svn/move.svndump"
- $ SVNREPOPATH=`pwd`/svn-repo
-#if windows
- $ SVNREPOURL=file:///`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
-#else
- $ SVNREPOURL=file://`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
-#endif
+ $ svnpath=`pwd | fixpath`
+
+SVN wants all paths to start with a slash. Unfortunately,
+Windows ones don't. Handle that.
+
+ $ expr "$svnpath" : "\/" > /dev/null
+ > if [ $? -ne 0 ]; then
+ > svnpath="/$svnpath"
+ > fi
+ > svnurl="file://$svnpath/svn-repo"
Convert trunk and branches
- $ hg convert --datesort "$SVNREPOURL"/subproject A-hg
+ $ hg convert --datesort "$svnurl"/subproject A-hg
initializing destination A-hg repository
scanning source...
sorting...
@@ -159,13 +167,12 @@ Test convert progress bar'
> [progress]
> assume-tty = 1
> delay = 0
- > changedelay = 0
> format = topic bar number
> refresh = 0
> width = 60
> EOF
- $ hg convert svn-repo hg-progress 2>&1 | "$TESTDIR/filtercr.py"
+ $ hg convert svn-repo hg-progress 2>&1 | $TESTDIR/filtercr.py
scanning [ <=> ] 1
scanning [ <=> ] 2
@@ -239,5 +246,3 @@ Test convert progress bar'
1 branch
0 clobberdir
-
- $ cd ..
diff --git a/tests/test-convert-svn-sink.t b/tests/test-convert-svn-sink.t
index ab39f7f..7aa8ebb 100644
--- a/tests/test-convert-svn-sink.t
+++ b/tests/test-convert-svn-sink.t
@@ -1,16 +1,24 @@
- $ "$TESTDIR/hghave" svn13 || exit 80
+ $ "$TESTDIR/hghave" svn no-outer-repo || exit 80
+
+ $ fixpath()
+ > {
+ > tr '\\' /
+ > }
$ svnupanddisplay()
> {
> (
> cd $1;
- > svn up -q;
- > svn st -v | sed 's/ */ /g' | sort
+ > svn up;
+ > svn st -v | fixpath | sed 's/ */ /g'
> limit=''
> if [ $2 -gt 0 ]; then
> limit="--limit=$2"
> fi
- > svn log --xml -v $limit | python "$TESTDIR/svnxml.py"
+ > svn log --xml -v $limit \
+ > | fixpath \
+ > | sed 's,<date>.*,<date/>,' \
+ > | grep -v 'kind="'
> )
> }
@@ -27,16 +35,18 @@ Add
$ echo a > a/a
$ mkdir -p a/d1/d2
$ echo b > a/d1/d2/b
+ $ ln -s a/missing a/link
$ hg --cwd a ci -d '0 0' -A -m 'add a file'
adding a
adding d1/d2/b
+ adding link
Modify
$ "$TESTDIR/svn-safe-append.py" a a/a
$ hg --cwd a ci -d '1 0' -m 'modify a file'
$ hg --cwd a tip -q
- 1:e0e2b8a9156b
+ 1:8231f652da37
$ hg convert -d svn a
assuming destination a-hg
@@ -48,38 +58,64 @@ Modify
1 add a file
0 modify a file
$ svnupanddisplay a-hg-wc 2
- 2 1 test d1
- 2 1 test d1/d2 (glob)
- 2 1 test d1/d2/b (glob)
+ At revision 2.
2 2 test .
2 2 test a
- revision: 2
- author: test
- msg: modify a file
- M /a
- revision: 1
- author: test
- msg: add a file
- A /a
- A /d1
- A /d1/d2
- A /d1/d2/b
+ 2 1 test d1
+ 2 1 test d1/d2
+ 2 1 test d1/d2/b
+ 2 1 test link
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="2">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="M">/a</path>
+ </paths>
+ <msg>modify a file</msg>
+ </logentry>
+ <logentry
+ revision="1">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/a</path>
+ <path
+ action="A">/d1</path>
+ <path
+ action="A">/d1/d2</path>
+ <path
+ action="A">/d1/d2/b</path>
+ <path
+ action="A">/link</path>
+ </paths>
+ <msg>add a file</msg>
+ </logentry>
+ </log>
$ ls a a-hg-wc
a:
a
d1
+ link
a-hg-wc:
a
d1
+ link
$ cmp a/a a-hg-wc/a
Rename
$ hg --cwd a mv a b
+ $ hg --cwd a mv link newlink
+
$ hg --cwd a ci -d '2 0' -m 'rename a file'
$ hg --cwd a tip -q
- 2:eb5169441d43
+ 2:a67e26ccec09
$ hg convert -d svn a
assuming destination a-hg
@@ -89,24 +125,46 @@ Rename
converting...
0 rename a file
$ svnupanddisplay a-hg-wc 1
- 3 1 test d1
- 3 1 test d1/d2 (glob)
- 3 1 test d1/d2/b (glob)
+ At revision 3.
3 3 test .
3 3 test b
- revision: 3
- author: test
- msg: rename a file
- D /a
- A /b (from /a@2)
+ 3 1 test d1
+ 3 1 test d1/d2
+ 3 1 test d1/d2/b
+ 3 3 test newlink
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="3">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="D">/a</path>
+ <path
+ copyfrom-path="/a"
+ copyfrom-rev="2"
+ action="A">/b</path>
+ <path
+ copyfrom-path="/link"
+ copyfrom-rev="2"
+ action="A">/newlink</path>
+ <path
+ action="D">/link</path>
+ </paths>
+ <msg>rename a file</msg>
+ </logentry>
+ </log>
$ ls a a-hg-wc
a:
b
d1
+ newlink
a-hg-wc:
b
d1
+ newlink
Copy
@@ -114,7 +172,7 @@ Copy
$ hg --cwd a ci -d '3 0' -m 'copy a file'
$ hg --cwd a tip -q
- 3:60effef6ab48
+ 3:0cf087b9ab02
$ hg convert -d svn a
assuming destination a-hg
@@ -124,34 +182,48 @@ Copy
converting...
0 copy a file
$ svnupanddisplay a-hg-wc 1
- 4 1 test d1
- 4 1 test d1/d2 (glob)
- 4 1 test d1/d2/b (glob)
- 4 3 test b
+ At revision 4.
4 4 test .
+ 4 3 test b
4 4 test c
- revision: 4
- author: test
- msg: copy a file
- A /c (from /b@3)
+ 4 1 test d1
+ 4 1 test d1/d2
+ 4 1 test d1/d2/b
+ 4 3 test newlink
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="4">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ copyfrom-path="/b"
+ copyfrom-rev="3"
+ action="A">/c</path>
+ </paths>
+ <msg>copy a file</msg>
+ </logentry>
+ </log>
$ ls a a-hg-wc
a:
b
c
d1
+ newlink
a-hg-wc:
b
c
d1
+ newlink
$ hg --cwd a rm b
-
-Remove
-
+ $ echo % remove
+ % remove
$ hg --cwd a ci -d '4 0' -m 'remove a file'
$ hg --cwd a tip -q
- 4:87bbe3013fb6
+ 4:07b2e34a5b17
$ hg convert -d svn a
assuming destination a-hg
@@ -161,39 +233,43 @@ Remove
converting...
0 remove a file
$ svnupanddisplay a-hg-wc 1
- 5 1 test d1
- 5 1 test d1/d2 (glob)
- 5 1 test d1/d2/b (glob)
- 5 4 test c
+ At revision 5.
5 5 test .
- revision: 5
- author: test
- msg: remove a file
- D /b
+ 5 4 test c
+ 5 1 test d1
+ 5 1 test d1/d2
+ 5 1 test d1/d2/b
+ 5 3 test newlink
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="5">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="D">/b</path>
+ </paths>
+ <msg>remove a file</msg>
+ </logentry>
+ </log>
$ ls a a-hg-wc
a:
c
d1
+ newlink
a-hg-wc:
c
d1
+ newlink
-Executable
+Exectutable
-#if execbit
$ chmod +x a/c
-#else
- $ echo fake >> a/c
-#endif
$ hg --cwd a ci -d '5 0' -m 'make a file executable'
-#if execbit
- $ hg --cwd a tip -q
- 5:ff42e473c340
-#else
$ hg --cwd a tip -q
- 5:817a700c8cf1
-#endif
+ 5:31093672760b
$ hg convert -d svn a
assuming destination a-hg
@@ -203,65 +279,36 @@ Executable
converting...
0 make a file executable
$ svnupanddisplay a-hg-wc 1
- 6 1 test d1
- 6 1 test d1/d2 (glob)
- 6 1 test d1/d2/b (glob)
+ At revision 6.
6 6 test .
6 6 test c
- revision: 6
- author: test
- msg: make a file executable
- M /c
-#if execbit
+ 6 1 test d1
+ 6 1 test d1/d2
+ 6 1 test d1/d2/b
+ 6 3 test newlink
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="6">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="M">/c</path>
+ </paths>
+ <msg>make a file executable</msg>
+ </logentry>
+ </log>
$ test -x a-hg-wc/c
-#endif
-
-#if symlink
-
-Symlinks
-
- $ ln -s a/missing a/link
- $ hg --cwd a commit -Am 'add symlink'
- adding link
- $ hg --cwd a mv link newlink
- $ hg --cwd a commit -m 'move symlink'
- $ hg convert -d svn a
- assuming destination a-hg
- initializing svn working copy 'a-hg-wc'
- scanning source...
- sorting...
- converting...
- 1 add symlink
- 0 move symlink
- $ svnupanddisplay a-hg-wc 1
- 8 1 test d1
- 8 1 test d1/d2
- 8 1 test d1/d2/b
- 8 6 test c
- 8 8 test .
- 8 8 test newlink
- revision: 8
- author: test
- msg: move symlink
- D /link
- A /newlink (from /link@7)
-
-#endif
-
- $ rm -rf a a-hg a-hg-wc
-
Executable in new directory
+ $ rm -rf a a-hg a-hg-wc
$ hg init a
$ mkdir a/d1
$ echo a > a/d1/a
-#if execbit
$ chmod +x a/d1/a
-#else
- $ echo fake >> a/d1/a
-#endif
$ hg --cwd a ci -d '0 0' -A -m 'add executable file in new directory'
adding d1/a
@@ -274,17 +321,26 @@ Executable in new directory
converting...
0 add executable file in new directory
$ svnupanddisplay a-hg-wc 1
+ At revision 1.
1 1 test .
1 1 test d1
- 1 1 test d1/a (glob)
- revision: 1
- author: test
- msg: add executable file in new directory
- A /d1
- A /d1/a
-#if execbit
+ 1 1 test d1/a
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="1">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/d1</path>
+ <path
+ action="A">/d1/a</path>
+ </paths>
+ <msg>add executable file in new directory</msg>
+ </logentry>
+ </log>
$ test -x a-hg-wc/d1/a
-#endif
Copy to new directory
@@ -300,16 +356,29 @@ Copy to new directory
converting...
0 copy file to new directory
$ svnupanddisplay a-hg-wc 1
- 2 1 test d1
- 2 1 test d1/a (glob)
+ At revision 2.
2 2 test .
+ 2 1 test d1
+ 2 1 test d1/a
2 2 test d2
- 2 2 test d2/a (glob)
- revision: 2
- author: test
- msg: copy file to new directory
- A /d2
- A /d2/a (from /d1/a@1)
+ 2 2 test d2/a
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="2">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/d2</path>
+ <path
+ copyfrom-path="/d1/a"
+ copyfrom-rev="1"
+ action="A">/d2/a</path>
+ </paths>
+ <msg>copy file to new directory</msg>
+ </logentry>
+ </log>
Branchy history
@@ -347,12 +416,12 @@ Branchy history
$ hg --cwd b merge
merging b
warning: conflicts during merge.
- merging b incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging b failed!
2 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
$ hg --cwd b revert -r 2 b
- $ hg --cwd b resolve -m b
+ $ hg resolve -m b
$ hg --cwd b ci -d '5 0' -m 'merge'
Expect 4 changes
@@ -372,31 +441,62 @@ Expect 4 changes
0 merge
$ svnupanddisplay b-hg-wc 0
- 4 2 test left-1
+ At revision 4.
+ 4 4 test .
4 3 test b
+ 4 2 test left-1
4 3 test left-2
- 4 4 test .
4 4 test right-1
4 4 test right-2
- revision: 4
- author: test
- msg: merge
- A /right-1
- A /right-2
- revision: 3
- author: test
- msg: left-2
- M /b
- A /left-2
- revision: 2
- author: test
- msg: left-1
- M /b
- A /left-1
- revision: 1
- author: test
- msg: base
- A /b
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="4">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/right-1</path>
+ <path
+ action="A">/right-2</path>
+ </paths>
+ <msg>merge</msg>
+ </logentry>
+ <logentry
+ revision="3">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="M">/b</path>
+ <path
+ action="A">/left-2</path>
+ </paths>
+ <msg>left-2</msg>
+ </logentry>
+ <logentry
+ revision="2">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="M">/b</path>
+ <path
+ action="A">/left-1</path>
+ </paths>
+ <msg>left-1</msg>
+ </logentry>
+ <logentry
+ revision="1">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/b</path>
+ </paths>
+ <msg>base</msg>
+ </logentry>
+ </log>
Tags are not supported, but must not break conversion
@@ -418,15 +518,31 @@ Tags are not supported, but must not break conversion
0 Tagged as v1.0
writing Subversion tags is not yet implemented
$ svnupanddisplay a-hg-wc 2
- 2 1 test a
+ At revision 2.
2 2 test .
+ 2 1 test a
2 2 test .hgtags
- revision: 2
- author: test
- msg: Tagged as v1.0
- A /.hgtags
- revision: 1
- author: test
- msg: Add file a
- A /a
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="2">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/.hgtags</path>
+ </paths>
+ <msg>Tagged as v1.0</msg>
+ </logentry>
+ <logentry
+ revision="1">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/a</path>
+ </paths>
+ <msg>Add file a</msg>
+ </logentry>
+ </log>
$ rm -rf a a-hg a-hg-wc
diff --git a/tests/test-convert-svn-source.t b/tests/test-convert-svn-source.t
index 544f3a5..a97adeb 100644
--- a/tests/test-convert-svn-source.t
+++ b/tests/test-convert-svn-source.t
@@ -1,6 +1,10 @@
$ "$TESTDIR/hghave" svn svn-bindings || exit 80
+ $ fixpath()
+ > {
+ > tr '\\' /
+ > }
$ cat >> $HGRCPATH <<EOF
> [extensions]
> convert =
@@ -10,12 +14,14 @@
> EOF
$ svnadmin create svn-repo
- $ SVNREPOPATH=`pwd`/svn-repo
-#if windows
- $ SVNREPOURL=file:///`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
-#else
- $ SVNREPOURL=file://`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
-#endif
+ $ svnpath=`pwd | fixpath`
+
+
+ $ expr "$svnpath" : "\/" > /dev/null
+ > if [ $? -ne 0 ]; then
+ > svnpath="/$svnpath"
+ > fi
+ > svnurl="file://$svnpath/svn-repo"
Now test that it works with trunk/tags layout, but no branches yet.
@@ -27,15 +33,16 @@ Initial svn import
$ mkdir tags
$ cd ..
- $ svn import -m "init projB" projB "$SVNREPOURL/proj%20B" | sort
+ $ svnurl="file://$svnpath/svn-repo/proj%20B"
+ $ svn import -m "init projB" projB "$svnurl" | fixpath
+ Adding projB/mytrunk
+ Adding projB/tags
- Adding projB/mytrunk (glob)
- Adding projB/tags (glob)
Committed revision 1.
Update svn repository
- $ svn co "$SVNREPOURL/proj%20B/mytrunk" B
+ $ svn co "$svnurl"/mytrunk B | fixpath
Checked out revision 1.
$ cd B
$ echo hello > 'letter .txt'
@@ -52,7 +59,7 @@ Update svn repository
Transmitting file data .
Committed revision 3.
- $ svn copy -m "tag v0.1" "$SVNREPOURL/proj%20B/mytrunk" "$SVNREPOURL/proj%20B/tags/v0.1"
+ $ svn copy -m "tag v0.1" "$svnurl"/mytrunk "$svnurl"/tags/v0.1
Committed revision 4.
@@ -65,7 +72,7 @@ Update svn repository
Convert to hg once
- $ hg convert "$SVNREPOURL/proj%20B" B-hg
+ $ hg convert "$svnurl" B-hg
initializing destination B-hg repository
scanning source...
sorting...
@@ -89,7 +96,7 @@ Update svn repository again
Transmitting file data ..
Committed revision 6.
- $ svn copy -m "tag v0.2" "$SVNREPOURL/proj%20B/mytrunk" "$SVNREPOURL/proj%20B/tags/v0.2"
+ $ svn copy -m "tag v0.2" "$svnurl"/mytrunk "$svnurl"/tags/v0.2
Committed revision 7.
@@ -100,7 +107,7 @@ Update svn repository again
Committed revision 8.
$ cd ..
- $ hg convert -s svn "$SVNREPOURL/proj%20B/non-existent-path" dest
+ $ hg convert -s svn "$svnurl/non-existent-path" dest
initializing destination dest repository
abort: no revision found in module /proj B/non-existent-path
[255]
@@ -109,7 +116,7 @@ Update svn repository again
Test incremental conversion
- $ hg convert "$SVNREPOURL/proj%20B" B-hg
+ $ hg convert "$svnurl" B-hg
scanning source...
sorting...
converting...
@@ -143,7 +150,7 @@ Test incremental conversion
Test filemap
$ echo 'include letter2.txt' > filemap
- $ hg convert --filemap filemap "$SVNREPOURL/proj%20B/mytrunk" fmap
+ $ hg convert --filemap filemap "$svnurl"/mytrunk fmap
initializing destination fmap repository
scanning source...
sorting...
@@ -163,7 +170,7 @@ Test filemap
Test stop revision
- $ hg convert --rev 1 "$SVNREPOURL/proj%20B/mytrunk" stoprev
+ $ hg convert --rev 1 "$svnurl"/mytrunk stoprev
initializing destination stoprev repository
scanning source...
sorting...
@@ -180,24 +187,3 @@ This is also the only place testing more than one extra field in a revision.
extra: branch=default
extra: convert_revision=svn:........-....-....-....-............/proj B/mytrunk@1 (re)
$ cd ..
-
-Test converting empty heads (issue3347)
-
- $ svnadmin create svn-empty
- $ svnadmin load -q svn-empty < "$TESTDIR/svn/empty.svndump"
- $ hg --config convert.svn.trunk= convert svn-empty
- assuming destination svn-empty-hg
- initializing destination svn-empty-hg repository
- scanning source...
- sorting...
- converting...
- 1 init projA
- 0 adddir
- $ hg --config convert.svn.trunk= convert "$SVNREPOURL/../svn-empty/trunk"
- assuming destination trunk-hg
- initializing destination trunk-hg repository
- scanning source...
- sorting...
- converting...
- 1 init projA
- 0 adddir
diff --git a/tests/test-convert-tagsbranch-topology.t b/tests/test-convert-tagsbranch-topology.t
index 0af7e79..ab2d15b 100644
--- a/tests/test-convert-tagsbranch-topology.t
+++ b/tests/test-convert-tagsbranch-topology.t
@@ -1,9 +1,5 @@
$ "$TESTDIR/hghave" git || exit 80
- $ echo "[core]" >> $HOME/.gitconfig
- $ echo "autocrlf = false" >> $HOME/.gitconfig
- $ echo "[core]" >> $HOME/.gitconfig
- $ echo "autocrlf = false" >> $HOME/.gitconfig
$ echo "[extensions]" >> $HGRCPATH
$ echo "convert=" >> $HGRCPATH
$ echo 'hgext.graphlog =' >> $HGRCPATH
@@ -86,5 +82,3 @@ Print the log
/
o 0 "rev1" files: a
-
- $ cd ..
diff --git a/tests/test-convert-tla.t b/tests/test-convert-tla.t
index 8437e57..2c5c8dc 100644
--- a/tests/test-convert-tla.t
+++ b/tests/test-convert-tla.t
@@ -1,5 +1,5 @@
- $ "$TESTDIR/hghave" tla symlink || exit 80
+ $ "$TESTDIR/hghave" tla || exit 80
$ tla my-id "mercurial <mercurial@selenic.com>"
$ echo "[extensions]" >> $HGRCPATH
$ echo "convert=" >> $HGRCPATH
diff --git a/tests/test-convert.t b/tests/test-convert.t
index 26a7441..ae767aa 100644
--- a/tests/test-convert.t
+++ b/tests/test-convert.t
@@ -1,3 +1,4 @@
+
$ cat >> $HGRCPATH <<EOF
> [extensions]
> convert=
@@ -120,25 +121,24 @@
to a named branch.
Mercurial Source
- ################
+ ''''''''''''''''
The Mercurial source recognizes the following configuration options, which
you can set on the command line with "--config":
convert.hg.ignoreerrors
- ignore integrity errors when reading. Use it to fix
- Mercurial repositories with missing revlogs, by converting
- from and to Mercurial. Default is False.
+ ignore integrity errors when reading. 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 (forces target IDs
- to change). It takes a boolean argument and defaults to
- False.
+ 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
- revision identifier and defaults to 0.
+ convert start revision and its descendants. It takes a hg
+ revision identifier and defaults to 0.
CVS Source
- ##########
+ ''''''''''
CVS source will use a sandbox (i.e. a checked-out copy) from CVS to
indicate the starting point of what will be converted. Direct access to
@@ -152,35 +152,36 @@
The following options can be used with "--config":
convert.cvsps.cache
- Set to False to disable remote log caching, for testing and
- debugging purposes. Default is True.
+ Set to False to disable remote log caching, for testing and
+ debugging purposes. Default is True.
convert.cvsps.fuzz
- Specify the maximum time (in seconds) that is allowed
- between commits with identical user and log message in a
- single changeset. When very large files were checked in as
- part of a changeset then the default may not be long enough.
- The default is 60.
+ Specify the maximum time (in seconds) that is allowed between
+ commits with identical user and log message in a single
+ changeset. When very large files were checked in as part of a
+ changeset then the default may not be long enough. The default
+ is 60.
convert.cvsps.mergeto
- Specify a regular expression to which commit log messages
- are matched. If a match occurs, then the conversion process
- will insert a dummy revision merging the branch on which
- this log message occurs to the branch indicated in the
- regex. Default is "{{mergetobranch ([-\w]+)}}"
+ Specify a regular expression to which commit log messages are
+ matched. If a match occurs, then the conversion process will
+ insert a dummy revision merging the branch on which this log
+ message occurs to the branch indicated in the regex. Default
+ is "{{mergetobranch ([-\w]+)}}"
convert.cvsps.mergefrom
- Specify a regular expression to which commit log messages
- are matched. If a match occurs, then the conversion process
- will add the most recent revision on the branch indicated in
- the regex as the second parent of the changeset. Default is
- "{{mergefrombranch ([-\w]+)}}"
- hook.cvslog Specify a Python function to be called at the end of
- gathering the CVS log. The function is passed a list with
- the log entries, and can modify the entries in-place, or add
- or delete them.
+ Specify a regular expression to which commit log messages are
+ matched. If a match occurs, then the conversion process will
+ add the most recent revision on the branch indicated in the
+ regex as the second parent of the changeset. Default is
+ "{{mergefrombranch ([-\w]+)}}"
+ hook.cvslog
+ Specify a Python function to be called at the end of gathering
+ the CVS log. The function is passed a list with the log
+ entries, and can modify the entries in-place, or add or delete
+ them.
hook.cvschangesets
- Specify a Python function to be called after the changesets
- are calculated from the CVS log. The function is passed a
- list with the changeset entries, and can modify the
- changesets in-place, or add or delete them.
+ Specify a Python function to be called after the changesets
+ are calculated from the the CVS log. The function is passed a
+ list with the changeset entries, and can modify the changesets
+ in-place, or add or delete them.
An additional "debugcvsps" Mercurial command allows the builtin changeset
merging code to be run without doing a conversion. Its parameters and
@@ -188,7 +189,7 @@
more details.
Subversion Source
- #################
+ '''''''''''''''''
Subversion source detects classical trunk/branches/tags layouts. By
default, the supplied "svn://repo/path/" source URL is converted as a
@@ -203,24 +204,22 @@
The following options can be set with "--config":
convert.svn.branches
- specify the directory containing branches. The default is
- "branches".
+ specify the directory containing branches. The default is
+ "branches".
convert.svn.tags
- specify the directory containing tags. The default is
- "tags".
+ specify the directory containing tags. The default is "tags".
convert.svn.trunk
- specify the name of the trunk branch. The default 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
supported.
convert.svn.startrev
- specify start Subversion revision number. The default is 0.
+ specify start Subversion revision number. The default is 0.
Perforce Source
- ###############
+ '''''''''''''''
The Perforce (P4) importer can be given a p4 depot path or a client
specification as source. It will convert all files in the source to a flat
@@ -232,36 +231,36 @@
specifying an initial Perforce revision:
convert.p4.startrev
- specify initial Perforce revision (a Perforce changelist
- number).
+ specify initial Perforce revision (a Perforce changelist
+ number).
Mercurial Destination
- #####################
+ '''''''''''''''''''''
The following options are supported:
convert.hg.clonebranches
- dispatch source branches in separate clones. The default is
- False.
+ dispatch source branches in separate clones. The default is
+ False.
convert.hg.tagsbranch
- branch name for tag revisions, defaults to "default".
+ 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:
- -s --source-type TYPE source repository type
- -d --dest-type TYPE destination repository type
- -r --rev REV import up to target revision REV
- -A --authormap FILE remap usernames using this file
- --filemap FILE remap file names using contents of file
- --splicemap FILE splice synthesized history into place
- --branchmap FILE change branch names while converting
- --branchsort try to sort changesets by branches
- --datesort try to sort changesets by date
- --sourcesort preserve source changesets order
-
- use "hg -v help convert" to show more info
+ -s --source-type TYPE source repository type
+ -d --dest-type TYPE destination repository type
+ -r --rev REV import up to target revision REV
+ -A --authormap FILE remap usernames using this file
+ --filemap FILE remap file names using contents of file
+ --splicemap FILE splice synthesized history into place
+ --branchmap FILE change branch names while converting
+ --branchsort try to sort changesets by branches
+ --datesort try to sort changesets by date
+ --sourcesort preserve source changesets order
+
+ use "hg -v help convert" to show global options
$ hg init a
$ cd a
$ echo a > a
@@ -291,27 +290,24 @@
pulling from ../a
searching for changes
no changes found
+ $ touch bogusfile
-conversion to existing file should fail
+should fail
- $ touch bogusfile
$ hg convert a bogusfile
initializing destination bogusfile repository
abort: cannot create new bundle repository
[255]
-
-#if unix-permissions
-
-conversion to dir without permissions should fail
-
$ mkdir bogusdir
$ chmod 000 bogusdir
+should fail
+
$ hg convert a bogusdir
abort: Permission denied: bogusdir
[255]
-user permissions should succeed
+should succeed
$ chmod 700 bogusdir
$ hg convert a bogusdir
@@ -325,8 +321,6 @@ user permissions should succeed
1 d
0 e
-#endif
-
test pre and post conversion actions
$ echo 'include b' > filemap
@@ -396,52 +390,3 @@ test bogus URL
$ hg convert -q bzr+ssh://foobar@selenic.com/baz baz
abort: bzr+ssh://foobar@selenic.com/baz: missing or unsupported repository
[255]
-
-test revset converted() lookup
-
- $ hg --config convert.hg.saverev=True convert a c
- initializing destination c repository
- scanning source...
- sorting...
- converting...
- 4 a
- 3 b
- 2 c
- 1 d
- 0 e
- $ echo f > c/f
- $ hg -R c ci -d'0 0' -Amf
- adding f
- created new head
- $ hg -R c log -r "converted(09d945a62ce6)"
- changeset: 1:98c3dd46a874
- user: test
- date: Thu Jan 01 00:00:01 1970 +0000
- summary: b
-
- $ hg -R c log -r "converted()"
- changeset: 0:31ed57b2037c
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
- changeset: 1:98c3dd46a874
- user: test
- date: Thu Jan 01 00:00:01 1970 +0000
- summary: b
-
- changeset: 2:3b9ca06ef716
- user: test
- date: Thu Jan 01 00:00:02 1970 +0000
- summary: c
-
- changeset: 3:4e0debd37cf2
- user: test
- date: Thu Jan 01 00:00:03 1970 +0000
- summary: d
-
- changeset: 4:9de3bc9349c5
- user: test
- date: Thu Jan 01 00:00:04 1970 +0000
- summary: e
-
diff --git a/tests/test-copy-move-merge.t b/tests/test-copy-move-merge.t
index cc64b4c..d5fbb8e 100644
--- a/tests/test-copy-move-merge.t
+++ b/tests/test-copy-move-merge.t
@@ -24,13 +24,13 @@
unmatched files in other:
b
c
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
c -> a *
b -> a *
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: b8bf91eeebbc, local: add3f11052fa+, remote: 17c05bb7fcb6
+ overwrite None partial False
+ ancestor b8bf91eeebbc local add3f11052fa+ remote 17c05bb7fcb6
a: remote moved to c -> m
a: remote moved to b -> m
preserving a for resolve of b
@@ -60,5 +60,3 @@ file c
0
1
2
-
- $ cd ..
diff --git a/tests/test-copy.t b/tests/test-copy.t
index a3cd463..3bad7a4 100644
--- a/tests/test-copy.t
+++ b/tests/test-copy.t
@@ -1,7 +1,3 @@
-
- $ mkdir part1
- $ cd part1
-
$ hg init
$ echo a > a
$ hg add a
@@ -57,8 +53,8 @@ we should see one log entry for a
this should show a revision linked to changeset 0
$ hg debugindex a
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 0 b789fdd96dc2 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 0 b789fdd96dc2 000000000000 000000000000
we should see one log entry for b
@@ -73,8 +69,8 @@ we should see one log entry for b
this should show a revision linked to changeset 1
$ hg debugindex b
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 65 ..... 1 37d9b5d994ea 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 65 0 1 37d9b5d994ea 000000000000 000000000000
this should show the rename information in the metadata
@@ -82,13 +78,13 @@ this should show the rename information in the metadata
copy: a
copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
- $ "$TESTDIR/md5sum.py" .hg/store/data/b.i
+ $ $TESTDIR/md5sum.py .hg/store/data/b.i
4999f120a3b88713bbefddd195cf5133 .hg/store/data/b.i
$ hg cat b > bsum
- $ "$TESTDIR/md5sum.py" bsum
+ $ $TESTDIR/md5sum.py bsum
60b725f10c9c85c70d97880dfe8191b3 bsum
$ hg cat a > asum
- $ "$TESTDIR/md5sum.py" asum
+ $ $TESTDIR/md5sum.py asum
60b725f10c9c85c70d97880dfe8191b3 asum
$ hg verify
checking changesets
@@ -96,121 +92,3 @@ this should show the rename information in the metadata
crosschecking files in changesets and manifests
checking files
2 files, 2 changesets, 2 total revisions
-
- $ cd ..
-
-
- $ mkdir part2
- $ cd part2
-
- $ hg init
- $ echo foo > foo
-should fail - foo is not managed
- $ hg mv foo bar
- foo: not copying - file is not managed
- abort: no files to copy
- [255]
- $ hg st -A
- ? foo
- $ hg add foo
-dry-run; print a warning that this is not a real copy; foo is added
- $ hg mv --dry-run foo bar
- foo has not been committed yet, so no copy data will be stored for bar.
- $ hg st -A
- A foo
-should print a warning that this is not a real copy; bar is added
- $ hg mv foo bar
- foo has not been committed yet, so no copy data will be stored for bar.
- $ hg st -A
- A bar
-should print a warning that this is not a real copy; foo is added
- $ hg cp bar foo
- bar has not been committed yet, so no copy data will be stored for foo.
- $ hg rm -f bar
- $ rm bar
- $ hg st -A
- A foo
- $ hg commit -m1
-
-moving a missing file
- $ rm foo
- $ hg mv foo foo3
- foo: deleted in working copy
- foo3 does not exist!
- $ hg up -qC .
-
-copy --after to a nonexistant target filename
- $ hg cp -A foo dummy
- foo: not recording copy - dummy does not exist
-
-dry-run; should show that foo is clean
- $ hg copy --dry-run foo bar
- $ hg st -A
- C foo
-should show copy
- $ hg copy foo bar
- $ hg st -C
- A bar
- foo
-
-shouldn't show copy
- $ hg commit -m2
- $ hg st -C
-
-should match
- $ hg debugindex foo
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 5 ..... 0 2ed2a3912a0b 000000000000 000000000000 (re)
- $ hg debugrename bar
- bar renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
-
- $ echo bleah > foo
- $ echo quux > bar
- $ hg commit -m3
-
-should not be renamed
- $ hg debugrename bar
- bar not renamed
-
- $ hg copy -f foo bar
-should show copy
- $ hg st -C
- M bar
- foo
- $ hg commit -m3
-
-should show no parents for tip
- $ hg debugindex bar
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 69 ..... 1 7711d36246cc 000000000000 000000000000 (re)
- 1 69 6 ..... 2 bdf70a2b8d03 7711d36246cc 000000000000 (re)
- 2 75 81 ..... 3 b2558327ea8d 000000000000 000000000000 (re)
-should match
- $ hg debugindex foo
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 5 ..... 0 2ed2a3912a0b 000000000000 000000000000 (re)
- 1 5 7 ..... 2 dd12c926cf16 2ed2a3912a0b 000000000000 (re)
- $ hg debugrename bar
- bar renamed from foo:dd12c926cf165e3eb4cf87b084955cb617221c17
-
-should show no copies
- $ hg st -C
-
-copy --after on an added file
- $ cp bar baz
- $ hg add baz
- $ hg cp -A bar baz
- $ hg st -C
- A baz
- bar
-
-foo was clean:
- $ hg st -AC foo
- C foo
-but it's considered modified after a copy --after --force
- $ hg copy -Af bar foo
- $ hg st -AC foo
- M foo
- bar
-
- $ cd ..
diff --git a/tests/test-copy2.t b/tests/test-copy2.t
new file mode 100644
index 0000000..6c0aa8a
--- /dev/null
+++ b/tests/test-copy2.t
@@ -0,0 +1,109 @@
+ $ hg init
+ $ echo foo > foo
+should fail - foo is not managed
+ $ hg mv foo bar
+ foo: not copying - file is not managed
+ abort: no files to copy
+ [255]
+ $ hg st -A
+ ? foo
+ $ hg add foo
+dry-run; print a warning that this is not a real copy; foo is added
+ $ hg mv --dry-run foo bar
+ foo has not been committed yet, so no copy data will be stored for bar.
+ $ hg st -A
+ A foo
+should print a warning that this is not a real copy; bar is added
+ $ hg mv foo bar
+ foo has not been committed yet, so no copy data will be stored for bar.
+ $ hg st -A
+ A bar
+should print a warning that this is not a real copy; foo is added
+ $ hg cp bar foo
+ bar has not been committed yet, so no copy data will be stored for foo.
+ $ hg rm -f bar
+ $ rm bar
+ $ hg st -A
+ A foo
+ $ hg commit -m1
+
+moving a missing file
+ $ rm foo
+ $ hg mv foo foo3
+ foo: deleted in working copy
+ foo3 does not exist!
+ $ hg up -qC .
+
+copy --after to a nonexistant target filename
+ $ hg cp -A foo dummy
+ foo: not recording copy - dummy does not exist
+
+dry-run; should show that foo is clean
+ $ hg copy --dry-run foo bar
+ $ hg st -A
+ C foo
+should show copy
+ $ hg copy foo bar
+ $ hg st -C
+ A bar
+ foo
+
+shouldn't show copy
+ $ hg commit -m2
+ $ hg st -C
+
+should match
+ $ hg debugindex foo
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
+ $ hg debugrename bar
+ bar renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
+
+ $ echo bleah > foo
+ $ echo quux > bar
+ $ hg commit -m3
+
+should not be renamed
+ $ hg debugrename bar
+ bar not renamed
+
+ $ hg copy -f foo bar
+should show copy
+ $ hg st -C
+ M bar
+ foo
+ $ hg commit -m3
+
+should show no parents for tip
+ $ hg debugindex bar
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 69 0 1 7711d36246cc 000000000000 000000000000
+ 1 69 6 1 2 bdf70a2b8d03 7711d36246cc 000000000000
+ 2 75 81 1 3 b2558327ea8d 000000000000 000000000000
+should match
+ $ hg debugindex foo
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
+ 1 5 7 1 2 dd12c926cf16 2ed2a3912a0b 000000000000
+ $ hg debugrename bar
+ bar renamed from foo:dd12c926cf165e3eb4cf87b084955cb617221c17
+
+should show no copies
+ $ hg st -C
+
+copy --after on an added file
+ $ cp bar baz
+ $ hg add baz
+ $ hg cp -A bar baz
+ $ hg st -C
+ A baz
+ bar
+
+foo was clean:
+ $ hg st -AC foo
+ C foo
+but it's considered modified after a copy --after --force
+ $ hg copy -Af bar foo
+ $ hg st -AC foo
+ M foo
+ bar
diff --git a/tests/test-debugbuilddag.t b/tests/test-debugbuilddag.t
index e07941a..f9e2284 100644
--- a/tests/test-debugbuilddag.t
+++ b/tests/test-debugbuilddag.t
@@ -7,9 +7,8 @@ plain
$ hg debugbuilddag '+2:f +3:p2 @temp <f+4 @default /p2 +2' \
> --config extensions.progress= --config progress.assume-tty=1 \
> --config progress.delay=0 --config progress.refresh=0 \
- > --config progress.format=topic,bar,number \
> --config progress.width=60 2>&1 | \
- > python "$TESTDIR/filtercr.py"
+ > python $TESTDIR/filtercr.py
building [ ] 0/12
building [ ] 0/12
@@ -87,19 +86,18 @@ glog
o 0: r0 [] @ 0.00
-overwritten files, starting on a non-default branch
+overwritten files
$ rm -r .hg
$ hg init
- $ hg debugbuilddag '@start.@default.:f +3:p2 @temp <f+4 @default /p2 +2' -q -o
+ $ hg debugbuilddag '+2:f +3:p2 @temp <f+4 @default /p2 +2' -q -o
tags
$ cat .hg/localtags
- f778700ebd50fcf282b23a4446bd155da6453eb6 f
- bbccf169769006e2490efd2a02f11c3d38d462bd p2
+ 2a8ed67d317e370eac733dccc501b12d7b9c441a f
+ 4226a30965b7af58f94d0cda7e6c2c9c63e6bf90 p2
dag
$ hg debugdag -t -b
- @start+1
- @default+1:f
+ +2:f
+3:p2
@temp*f+3
@default*/p2+2:tip
@@ -130,7 +128,7 @@ glog
|/
o 1: r1 [] @ 1.00
|
- o 0: r0 [start] @ 0.00
+ o 0: r0 [] @ 0.00
glog of
$ hg glog --template '{rev}: {desc} [{branches}]\n' of
@@ -156,13 +154,13 @@ glog of
|/
o 1: r1 []
|
- o 0: r0 [start]
+ o 0: r0 []
tags
$ hg tags -v
- tip 11:9ffe238a67a2
- p2 4:bbccf1697690 local
- f 1:f778700ebd50 local
+ tip 11:58a51e5eb988
+ p2 4:4226a30965b7 local
+ f 1:2a8ed67d317e local
cat of
$ hg cat of --rev tip
r11
diff --git a/tests/test-debugbundle.t b/tests/test-debugbundle.t
index 4e911ea..1eb4085 100644
--- a/tests/test-debugbundle.t
+++ b/tests/test-debugbundle.t
@@ -34,4 +34,3 @@ Verbose output:
c
b80de5d138758541c5f05265ad144ab9fa86d1db 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 0000000000000000000000000000000000000000 12
- $ cd ..
diff --git a/tests/test-debugcommands.t b/tests/test-debugcommands.t
deleted file mode 100644
index ecd1eb1..0000000
--- a/tests/test-debugcommands.t
+++ /dev/null
@@ -1,25 +0,0 @@
- $ hg init debugrevlog
- $ cd debugrevlog
- $ echo a > a
- $ hg ci -Am adda
- adding a
- $ hg debugrevlog -m
- format : 1
- flags : inline
-
- revisions : 1
- merges : 0 ( 0.00%)
- normal : 1 (100.00%)
- revisions : 1
- full : 1 (100.00%)
- deltas : 0 ( 0.00%)
- revision size : 44
- full : 44 (100.00%)
- deltas : 0 ( 0.00%)
-
- avg chain length : 0
- compression ratio : 0
-
- uncompressed data size (min/max/avg) : 43 / 43 / 43
- full revision size (min/max/avg) : 44 / 44 / 44
- delta size (min/max/avg) : 0 / 0 / 0
diff --git a/tests/test-debugcomplete.t b/tests/test-debugcomplete.t
index b23b23d..7ebfa36 100644
--- a/tests/test-debugcomplete.t
+++ b/tests/test-debugcomplete.t
@@ -17,7 +17,6 @@ Show all commands except debug commands
diff
export
forget
- graft
grep
heads
help
@@ -32,7 +31,6 @@ Show all commands except debug commands
outgoing
parents
paths
- phase
pull
push
recover
@@ -86,9 +84,7 @@ Show debug commands if there are no other candidates
debugindexdot
debuginstall
debugknown
- debugobsolete
debugpushkey
- debugpvec
debugrebuildstate
debugrename
debugrevlog
@@ -192,16 +188,15 @@ Show an error if we use --options with an ambiguous abbreviation
Show all commands + options
$ hg debugcommands
add: include, exclude, subrepos, dry-run
- annotate: rev, follow, no-follow, text, user, file, date, number, changeset, line-number, ignore-all-space, ignore-space-change, ignore-blank-lines, include, exclude
+ annotate: rev, follow, no-follow, text, user, file, date, number, changeset, line-number, include, exclude
clone: noupdate, updaterev, rev, branch, pull, uncompressed, ssh, remotecmd, insecure
- commit: addremove, close-branch, amend, include, exclude, message, logfile, date, user, subrepos
+ commit: addremove, close-branch, include, exclude, message, logfile, date, user
diff: rev, change, text, git, nodates, show-function, reverse, ignore-all-space, ignore-space-change, ignore-blank-lines, unified, stat, include, exclude, subrepos
export: output, switch-parent, rev, text, git, nodates
forget: include, exclude
init: ssh, remotecmd, insecure
- log: follow, follow-first, date, copies, keyword, rev, removed, only-merges, user, only-branch, branch, prune, hidden, patch, git, limit, no-merges, stat, graph, style, template, include, exclude
- merge: force, rev, preview, tool
- phase: public, draft, secret, force, rev
+ log: follow, follow-first, date, copies, keyword, rev, removed, only-merges, user, only-branch, branch, prune, hidden, patch, git, limit, no-merges, stat, style, template, include, exclude
+ merge: force, tool, rev, preview
pull: update, force, rev, bookmark, branch, ssh, remotecmd, insecure
push: force, rev, bookmark, branch, new-branch, ssh, remotecmd, insecure
remove: after, force, include, exclude
@@ -211,7 +206,7 @@ Show all commands + options
update: clean, check, date, rev
addremove: similarity, include, exclude, dry-run
archive: no-decode, prefix, rev, type, subrepos, include, exclude
- backout: merge, parent, rev, tool, include, exclude, message, logfile, date, user
+ backout: merge, parent, tool, rev, include, exclude, message, logfile, date, user
bisect: reset, good, bad, skip, extend, command, noupdate
bookmarks: force, rev, delete, rename, inactive
branch: force, clean
@@ -237,9 +232,7 @@ Show all commands + options
debugindexdot:
debuginstall:
debugknown:
- debugobsolete: date, user
debugpushkey:
- debugpvec:
debugrebuildstate: rev
debugrename: rev
debugrevlog: changelog, manifest, dump
@@ -249,23 +242,22 @@ Show all commands + options
debugsub: rev
debugwalk: include, exclude
debugwireargs: three, four, five, ssh, remotecmd, insecure
- graft: rev, continue, edit, log, currentdate, currentuser, date, user, tool, dry-run
grep: print0, all, text, follow, ignore-case, files-with-matches, line-number, rev, user, date, include, exclude
heads: rev, topo, active, closed, style, template
- help: extension, command, keyword
- identify: rev, num, id, branch, tags, bookmarks, ssh, remotecmd, insecure
- import: strip, base, edit, force, no-commit, bypass, exact, import-branch, message, logfile, date, user, similarity
- incoming: force, newest-first, bundle, rev, bookmarks, branch, patch, git, limit, no-merges, stat, graph, style, template, ssh, remotecmd, insecure, subrepos
+ help: extension, command
+ identify: rev, num, id, branch, tags, bookmarks
+ import: strip, base, force, no-commit, bypass, 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
manifest: rev, all
- outgoing: force, rev, newest-first, bookmarks, branch, patch, git, limit, no-merges, stat, graph, style, template, ssh, remotecmd, insecure, subrepos
+ outgoing: force, rev, newest-first, bookmarks, branch, patch, git, limit, no-merges, stat, style, template, ssh, remotecmd, insecure, subrepos
parents: rev, style, template
paths:
recover:
rename: after, force, include, exclude, dry-run
- resolve: all, list, mark, unmark, no-status, tool, include, exclude
+ resolve: all, list, mark, unmark, tool, no-status, include, exclude
revert: all, date, rev, no-backup, include, exclude, dry-run
- rollback: dry-run, force
+ rollback: dry-run
root:
showconfig: untrusted
tag: force, local, rev, remove, edit, message, date, user
diff --git a/tests/test-debugindexdot.t b/tests/test-debugindexdot.t
index 98ee015..e8a6123 100644
--- a/tests/test-debugindexdot.t
+++ b/tests/test-debugindexdot.t
@@ -21,5 +21,3 @@ Create a short file history including a merge.
2 -> 3
1 -> 3
}
-
- $ cd ..
diff --git a/tests/test-default-push.t b/tests/test-default-push.t
index 5c7d492..b1b75b5 100644
--- a/tests/test-default-push.t
+++ b/tests/test-default-push.t
@@ -18,7 +18,7 @@
Push should push to 'default' when 'default-push' not set:
$ hg --cwd b push
- pushing to $TESTTMP/a (glob)
+ pushing to $TESTTMP/a
searching for changes
adding changesets
adding manifests
@@ -29,7 +29,7 @@ Push should push to 'default-push' when set:
$ echo 'default-push = ../c' >> b/.hg/hgrc
$ hg --cwd b push
- pushing to $TESTTMP/c (glob)
+ pushing to $TESTTMP/c
searching for changes
adding changesets
adding manifests
diff --git a/tests/test-diff-binary-file.t b/tests/test-diff-binary-file.t
index eac24c9..9262809 100644
--- a/tests/test-diff-binary-file.t
+++ b/tests/test-diff-binary-file.t
@@ -1,6 +1,6 @@
$ hg init a
$ cd a
- $ cp "$TESTDIR/binfile.bin" .
+ $ cp $TESTDIR/binfile.bin .
$ hg add binfile.bin
$ hg ci -m 'add binfile.bin'
@@ -37,4 +37,3 @@
$ hg diff --git -r 0 -r 2
- $ cd ..
diff --git a/tests/test-diff-change.t b/tests/test-diff-change.t
index 05d34ad..271735e 100644
--- a/tests/test-diff-change.t
+++ b/tests/test-diff-change.t
@@ -29,18 +29,12 @@ Testing diff --change
-first
+second
-Test dumb revspecs (issue3474)
-
- $ hg diff -r 2:2
- $ hg diff -r "2 and 1"
- abort: empty revision range
- [255]
Testing diff --change when merge:
$ for i in 1 2 3 4 5 6 7 8 9 10; do
- > echo $i >> file.txt
- > done
+ $ echo $i >> file.txt
+ $ done
$ hg commit -m "lots of text" # 3
$ sed -e 's,^2$,x,' file.txt > file.txt.tmp
@@ -90,4 +84,3 @@ must be similar to 'hg diff --change 5':
9
10
- $ cd ..
diff --git a/tests/test-diff-color.t b/tests/test-diff-color.t
index fe898d9..94387ac 100644
--- a/tests/test-diff-color.t
+++ b/tests/test-diff-color.t
@@ -72,11 +72,9 @@ diffstat
$ echo "[diff]" >> $HGRCPATH
$ echo "git=True" >> $HGRCPATH
-#if execbit
-
record
- $ chmod +x a
+ $ chmod 0755 a
$ hg record --color=always -m moda a <<EOF
> y
> y
@@ -85,7 +83,7 @@ record
\x1b[0;36;1mold mode 100644\x1b[0m (esc)
\x1b[0;36;1mnew mode 100755\x1b[0m (esc)
1 hunks, 1 lines changed
- \x1b[0;33mexamine changes to 'a'? [Ynesfdaq?]\x1b[0m (esc)
+ \x1b[0;33mexamine changes to 'a'? [Ynsfdaq?]\x1b[0m (esc)
\x1b[0;35m@@ -2,7 +2,7 @@\x1b[0m (esc)
c
a
@@ -95,8 +93,9 @@ record
a
a
c
- \x1b[0;33mrecord this change to 'a'? [Ynesfdaq?]\x1b[0m (esc)
-
+ \x1b[0;33mrecord this change to 'a'? [Ynsfdaq?]\x1b[0m (esc)
+ $ echo
+
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg rollback
@@ -113,7 +112,7 @@ qrecord
\x1b[0;36;1mold mode 100644\x1b[0m (esc)
\x1b[0;36;1mnew mode 100755\x1b[0m (esc)
1 hunks, 1 lines changed
- \x1b[0;33mexamine changes to 'a'? [Ynesfdaq?]\x1b[0m (esc)
+ \x1b[0;33mexamine changes to 'a'? [Ynsfdaq?]\x1b[0m (esc)
\x1b[0;35m@@ -2,7 +2,7 @@\x1b[0m (esc)
c
a
@@ -123,8 +122,6 @@ qrecord
a
a
c
- \x1b[0;33mrecord this change to 'a'? [Ynesfdaq?]\x1b[0m (esc)
-
-#endif
-
- $ cd ..
+ \x1b[0;33mrecord this change to 'a'? [Ynsfdaq?]\x1b[0m (esc)
+ $ echo
+
diff --git a/tests/test-diff-hashes.t b/tests/test-diff-hashes.t
index 718f46e..2100276 100644
--- a/tests/test-diff-hashes.t
+++ b/tests/test-diff-hashes.t
@@ -2,8 +2,8 @@
$ cd a
$ hg diff inexistent1 inexistent2
- inexistent1: * (glob)
- inexistent2: * (glob)
+ inexistent1: No such file or directory
+ inexistent2: No such file or directory
$ echo bar > foo
$ hg add foo
@@ -43,4 +43,3 @@
-bar
+foobar
- $ cd ..
diff --git a/tests/test-diff-ignore-whitespace.t b/tests/test-diff-ignore-whitespace.t
index 35ca98d..ac5764a 100644
--- a/tests/test-diff-ignore-whitespace.t
+++ b/tests/test-diff-ignore-whitespace.t
@@ -442,59 +442,3 @@ Only new line noticed:
New line not noticed when space change ignored:
$ hg ndiff --ignore-blank-lines --ignore-all-space
-
-Do not ignore all newlines, only blank lines
-
- $ printf 'hello \nworld\ngoodbye world\n' > foo
- $ hg ndiff --ignore-blank-lines
- diff -r 540c40a65b78 foo
- --- a/foo
- +++ b/foo
- @@ -1,2 +1,3 @@
- -hello world
- +hello
- +world
- goodbye world
-
-Test hunk offsets adjustments with --ignore-blank-lines
-
- $ hg revert -aC
- reverting foo
- $ printf '\nb\nx\nd\n' > a
- $ printf 'b\ny\nd\n' > b
- $ hg add a b
- $ hg ci -m add
- $ hg cat -r . a > b
- $ hg cat -r . b > a
- $ hg diff -B --nodates a > ../diffa
- $ cat ../diffa
- diff -r 0e66aa54f318 a
- --- a/a
- +++ b/a
- @@ -1,4 +1,4 @@
-
- b
- -x
- +y
- d
- $ hg diff -B --nodates b > ../diffb
- $ cat ../diffb
- diff -r 0e66aa54f318 b
- --- a/b
- +++ b/b
- @@ -1,3 +1,3 @@
- b
- -y
- +x
- d
- $ hg revert -aC
- reverting a
- reverting b
- $ hg import --no-commit ../diffa
- applying ../diffa
- $ hg revert -aC
- reverting a
- $ hg import --no-commit ../diffb
- applying ../diffb
- $ hg revert -aC
- reverting b
diff --git a/tests/test-diff-newlines.t b/tests/test-diff-newlines.t
index 565b756..523b319 100644
--- a/tests/test-diff-newlines.t
+++ b/tests/test-diff-newlines.t
@@ -1,6 +1,6 @@
$ hg init
- $ python -c 'file("a", "wb").write("confuse str.splitlines\nembedded\rnewline\n")'
+ $ python -c 'print "confuse str.splitlines\nembedded\rnewline"' > a
$ hg ci -Ama -d '1 0'
adding a
diff --git a/tests/test-diff-subdir.t b/tests/test-diff-subdir.t
index e10a87c..ecf3c4b 100644
--- a/tests/test-diff-subdir.t
+++ b/tests/test-diff-subdir.t
@@ -44,4 +44,3 @@ inside beta
@@ -0,0 +1,1 @@
+2
- $ cd ..
diff --git a/tests/test-diff-unified.t b/tests/test-diff-unified.t
index a79d520..63cc620 100644
--- a/tests/test-diff-unified.t
+++ b/tests/test-diff-unified.t
@@ -89,110 +89,23 @@ invalid diff.unified
abort: diff context lines count must be an integer, not 'foo'
[255]
- $ cd ..
+test off-by-one error with diff -p
-
-0 lines of context hunk header matches gnu diff hunk header
-
- $ hg init diffzero
- $ cd diffzero
- $ cat > f1 << EOF
- > c2
- > c4
- > c5
- > EOF
- $ hg commit -Am0
- adding f1
-
- $ cat > f2 << EOF
- > c1
- > c2
- > c3
- > c4
- > EOF
- $ mv f2 f1
- $ hg diff -U0 --nodates
- diff -r 55d8ff78db23 f1
- --- a/f1
- +++ b/f1
- @@ -0,0 +1,1 @@
- +c1
- @@ -1,0 +3,1 @@
- +c3
- @@ -3,1 +4,0 @@
- -c5
-
- $ hg diff -U0 --nodates --git
- diff --git a/f1 b/f1
- --- a/f1
- +++ b/f1
- @@ -0,0 +1,1 @@
- +c1
- @@ -1,0 +3,1 @@
- +c3
- @@ -3,1 +4,0 @@
- -c5
-
- $ hg diff -U0 --nodates -p
- diff -r 55d8ff78db23 f1
- --- a/f1
- +++ b/f1
- @@ -0,0 +1,1 @@
- +c1
- @@ -1,0 +3,1 @@ c2
- +c3
- @@ -3,1 +4,0 @@ c4
- -c5
-
- $ echo a > f1
- $ hg ci -m movef2
-
-Test diff headers terminating with TAB when necessary (issue3357)
-Regular diff --nodates, file creation
-
- $ hg mv f1 'f 1'
- $ echo b > 'f 1'
- $ hg diff --nodates 'f 1'
- diff -r 7574207d0d15 f 1
- --- /dev/null
- +++ b/f 1
- @@ -0,0 +1,1 @@
- +b
-
-Git diff, adding space
-
- $ hg diff --git
- diff --git a/f1 b/f 1
- rename from f1
- rename to f 1
- --- a/f1
- +++ b/f 1
- @@ -1,1 +1,1 @@
- -a
+ $ hg init diffp
+ $ cd diffp
+ $ echo a > a
+ $ hg ci -Ama
+ adding a
+ $ rm a
+ $ echo b > a
+ $ echo a >> a
+ $ echo c >> a
+ $ hg diff -U0 -p --nodates
+ diff -r cb9a9f314b8b a
+ --- a/a
+ +++ b/a
+ @@ -1,0 +1,1 @@
+b
+ @@ -2,0 +3,1 @@ a
+ +c
-Regular diff --nodates, file deletion
-
- $ hg ci -m addspace
- $ hg mv 'f 1' f1
- $ echo a > f1
- $ hg diff --nodates 'f 1'
- diff -r ca50fe67c9c7 f 1
- --- a/f 1
- +++ /dev/null
- @@ -1,1 +0,0 @@
- -b
-
-Git diff, removing space
-
- $ hg diff --git
- diff --git a/f 1 b/f1
- rename from f 1
- rename to f1
- --- a/f 1
- +++ b/f1
- @@ -1,1 +1,1 @@
- -b
- +a
-
- $ cd ..
diff --git a/tests/test-diff-upgrade.t b/tests/test-diff-upgrade.t
index 94c299a..3d69a4d 100644
--- a/tests/test-diff-upgrade.t
+++ b/tests/test-diff-upgrade.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" execbit || exit 80
$ echo "[extensions]" >> $HGRCPATH
$ echo "autodiff=$TESTDIR/autodiff.py" >> $HGRCPATH
diff --git a/tests/test-diffstat.t b/tests/test-diffstat.t
index 5d03cdc..2f20d3d 100644
--- a/tests/test-diffstat.t
+++ b/tests/test-diffstat.t
@@ -35,32 +35,30 @@ Narrow diffstat:
$ hg ci -m appenda
- >>> open("c", "wb").write("\0")
- $ touch d
- $ hg add c d
+ $ printf '\0' > c
+ $ hg add c
Binary diffstat:
$ hg diff --stat
- c | Bin
+ c | 0
1 files changed, 0 insertions(+), 0 deletions(-)
Binary git diffstat:
$ hg diff --stat --git
c | Bin
- d | 0
- 2 files changed, 0 insertions(+), 0 deletions(-)
+ 1 files changed, 0 insertions(+), 0 deletions(-)
$ hg ci -m createb
- >>> open("file with spaces", "wb").write("\0")
+ $ printf '\0' > "file with spaces"
$ hg add "file with spaces"
Filename with spaces diffstat:
$ hg diff --stat
- file with spaces | Bin
+ file with spaces | 0
1 files changed, 0 insertions(+), 0 deletions(-)
Filename with spaces git diffstat:
@@ -69,4 +67,3 @@ Filename with spaces git diffstat:
file with spaces | Bin
1 files changed, 0 insertions(+), 0 deletions(-)
- $ cd ..
diff --git a/tests/test-dirstate.t b/tests/test-dirstate.t
index 6b65f59..5e5c80e 100644
--- a/tests/test-dirstate.t
+++ b/tests/test-dirstate.t
@@ -11,24 +11,9 @@
adding a/b/c/d/y
adding a/b/c/d/z
$ hg mv a z
- moving a/b/c/d/x to z/b/c/d/x (glob)
- moving a/b/c/d/y to z/b/c/d/y (glob)
- moving a/b/c/d/z to z/b/c/d/z (glob)
-
-Test name collisions
-
- $ rm z/b/c/d/x
- $ mkdir z/b/c/d/x
- $ touch z/b/c/d/x/y
- $ hg add z/b/c/d/x/y
- abort: file 'z/b/c/d/x' in dirstate clashes with 'z/b/c/d/x/y'
- [255]
- $ rm -rf z/b/c/d
- $ touch z/b/c/d
- $ hg add z/b/c/d
- abort: directory 'z/b/c/d' already in dirstate
- [255]
-
+ moving a/b/c/d/x to z/b/c/d/x
+ moving a/b/c/d/y to z/b/c/d/y
+ moving a/b/c/d/z to z/b/c/d/z
$ cd ..
Issue1790: dirstate entry locked into unset if file mtime is set into
diff --git a/tests/test-dispatch.t b/tests/test-dispatch.t
index 3b11d14..ab0f7fb 100644
--- a/tests/test-dispatch.t
+++ b/tests/test-dispatch.t
@@ -1,5 +1,9 @@
test command parsing and dispatch
+ $ "$TESTDIR/hghave" no-outer-repo || exit 80
+
+ $ dir=`pwd`
+
$ hg init a
$ cd a
@@ -21,11 +25,11 @@ Missing arg:
options:
- -o --output FORMAT print output to file with formatted name
- -r --rev REV print the given revision
- --decode apply any matching decode filter
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
+ -o --output FORMAT print output to file with formatted name
+ -r --rev REV print the given revision
+ --decode apply any matching decode filter
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
[+] marked option can be specified multiple times
@@ -44,10 +48,6 @@ Missing arg:
a: no such file in rev 000000000000
[1]
- $ cd "$TESTTMP"
-
-#if no-outer-repo
-
No repo:
$ cd $dir
@@ -55,4 +55,3 @@ No repo:
abort: no repository found in '$TESTTMP' (.hg not found)!
[255]
-#endif
diff --git a/tests/test-doctest.py b/tests/test-doctest.py
index 8f143c1..6a10b2f 100644
--- a/tests/test-doctest.py
+++ b/tests/test-doctest.py
@@ -4,9 +4,6 @@ if 'TERM' in os.environ:
del os.environ['TERM']
import doctest
-import mercurial.util
-doctest.testmod(mercurial.util)
-
import mercurial.changelog
doctest.testmod(mercurial.changelog)
@@ -25,6 +22,9 @@ doctest.testmod(mercurial.ui)
import mercurial.url
doctest.testmod(mercurial.url)
+import mercurial.util
+doctest.testmod(mercurial.util)
+
import mercurial.encoding
doctest.testmod(mercurial.encoding)
@@ -33,12 +33,3 @@ doctest.testmod(mercurial.hgweb.hgwebdir_mod)
import hgext.convert.cvsps
doctest.testmod(hgext.convert.cvsps)
-
-import mercurial.revset
-doctest.testmod(mercurial.revset)
-
-import mercurial.minirst
-doctest.testmod(mercurial.minirst)
-
-import mercurial.templatefilters
-doctest.testmod(mercurial.templatefilters)
diff --git a/tests/test-double-merge.t b/tests/test-double-merge.t
index a703c5b..06c0f65 100644
--- a/tests/test-double-merge.t
+++ b/tests/test-double-merge.t
@@ -29,12 +29,12 @@ we get conflicts that shouldn't be there
searching for copies back to rev 1
unmatched files in other:
bar
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
bar -> foo *
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104
+ overwrite None partial False
+ ancestor e6dc8efe11cc local 6a0df1dad128+ remote 484bf6903104
foo: versions differ -> m
foo: remote copied to bar -> m
preserving foo for resolve of bar
@@ -63,5 +63,3 @@ contents of bar
line 0
line 1
line 2-2
-
- $ cd ..
diff --git a/tests/test-duplicateoptions.py b/tests/test-duplicateoptions.py
index 22964c4..43b4b87 100644
--- a/tests/test-duplicateoptions.py
+++ b/tests/test-duplicateoptions.py
@@ -1,7 +1,7 @@
import os
from mercurial import ui, commands, extensions
-ignore = set(['highlight', 'inotify', 'win32text', 'factotum'])
+ignore = set(['highlight', 'inotify', 'win32text'])
if os.name != 'nt':
ignore.add('win32mbcs')
@@ -19,15 +19,9 @@ hgrc.close()
u = ui.ui()
extensions.loadall(u)
-globalshort = set()
-globallong = set()
-for option in commands.globalopts:
- option[0] and globalshort.add(option[0])
- option[1] and globallong.add(option[1])
-
for cmd, entry in commands.table.iteritems():
- seenshort = globalshort.copy()
- seenlong = globallong.copy()
+ seenshort = set()
+ seenlong = set()
for option in entry[1]:
if (option[0] and option[0] in seenshort) or \
(option[1] and option[1] in seenlong):
diff --git a/tests/test-empty-file.t b/tests/test-empty-file.t
index 07e7c58..d25a00d 100644
--- a/tests/test-empty-file.t
+++ b/tests/test-empty-file.t
@@ -44,4 +44,3 @@ empty file that came from rev 1:
b80de5d138758541c5f05265ad144ab9fa86d1db 644 empty2
b80de5d138758541c5f05265ad144ab9fa86d1db 644 empty3
- $ cd ..
diff --git a/tests/test-empty.t b/tests/test-empty.t
index 5f25f36..16aad6a 100644
--- a/tests/test-empty.t
+++ b/tests/test-empty.t
@@ -51,5 +51,3 @@ Poke at a clone:
Should be empty:
$ ls .hg/store
-
- $ cd ..
diff --git a/tests/test-encode.t b/tests/test-encode.t
index 863bba3..ed6e0fd 100644
--- a/tests/test-encode.t
+++ b/tests/test-encode.t
@@ -59,5 +59,3 @@ check hg cat operation
this is a test
$ hg -R .. cat --decode ../a.gz | gunzip
this is a test
-
- $ cd ..
diff --git a/tests/test-encoding-align.t b/tests/test-encoding-align.t
index b0ce561..1d674c7 100644
--- a/tests/test-encoding-align.t
+++ b/tests/test-encoding-align.t
@@ -46,20 +46,20 @@ alignment of option descriptions in help
check alignment of option descriptions in help
$ hg help showoptlist
- hg showoptlist
+ hg showoptlist
dummy command to show option descriptions
options:
- -s --opt1 \xe7\x9f\xad\xe5\x90\x8d short width \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d (esc)
- -m --opt2 MIDDLE_ middle width MIDDLE_ MIDDLE_ MIDDLE_ MIDDLE_ MIDDLE_
- MIDDLE_ MIDDLE_ MIDDLE_
- -l --opt3 \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d long width \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d (esc)
- \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d (esc)
- \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d (esc)
+ -s --opt1 \xe7\x9f\xad\xe5\x90\x8d short width \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d \xe7\x9f\xad\xe5\x90\x8d (esc)
+ -m --opt2 MIDDLE_ middle width MIDDLE_ MIDDLE_ MIDDLE_ MIDDLE_ MIDDLE_
+ MIDDLE_ MIDDLE_ MIDDLE_
+ -l --opt3 \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d long width \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d (esc)
+ \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d (esc)
+ \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d (esc)
- use "hg -v help showoptlist" to show more info
+ use "hg -v help showoptlist" to show global options
$ rm -f s; touch s
@@ -115,15 +115,12 @@ add branches/tags
$ hg branch $S
marked working directory as branch \xe7\x9f\xad\xe5\x90\x8d (esc)
- (branches are permanent and global, did you want a bookmark?)
$ hg tag $S
$ hg branch $M
marked working directory as branch MIDDLE_
- (branches are permanent and global, did you want a bookmark?)
$ hg tag $M
$ hg branch $L
marked working directory as branch \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d (esc)
- (branches are permanent and global, did you want a bookmark?)
$ hg tag $L
check alignment of branches
@@ -141,5 +138,3 @@ check alignment of tags
\xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d 4:9259be597f19 (esc)
MIDDLE_ 3:b06c5b6def9e
\xe7\x9f\xad\xe5\x90\x8d 2:64a70663cee8 (esc)
-
- $ cd ..
diff --git a/tests/test-encoding-textwrap.t b/tests/test-encoding-textwrap.t
index 67b0488..d683c37 100644
--- a/tests/test-encoding-textwrap.t
+++ b/tests/test-encoding-textwrap.t
@@ -57,7 +57,7 @@ define commands to display help text
(1-1) display Japanese full-width characters in cp932
$ COLUMNS=60 hg --encoding cp932 --config extensions.show=./show.py help show_full_ja
- hg show_full_ja
+ hg show_full_ja
\x82\xa0\x82\xa2\x82\xa4\x82\xa6\x82\xa8\x82\xa9\x82\xab\x82\xad\x82\xaf \x82\xa0\x82\xa2\x82\xa4\x82\xa6\x82\xa8\x82\xa9\x82\xab\x82\xad\x82\xaf \x82\xa0\x82\xa2\x82\xa4\x82\xa6\x82\xa8\x82\xa9\x82\xab\x82\xad\x82\xaf (esc)
@@ -67,12 +67,12 @@ define commands to display help text
\x82\xa0\x82\xa2\x82\xa4\x82\xa6\x82\xa8\x82\xa9\x82\xab\x82\xad\x82\xaf\x82\xa0\x82\xa2\x82\xa4\x82\xa6\x82\xa8\x82\xa9\x82\xab\x82\xad\x82\xaf\x82\xa0\x82\xa2\x82\xa4\x82\xa6\x82\xa8\x82\xa9\x82\xab\x82\xad\x82\xaf (esc)
\x82\xa0\x82\xa2\x82\xa4\x82\xa6\x82\xa8\x82\xa9\x82\xab\x82\xad\x82\xaf (esc)
- use "hg -v help show_full_ja" to show more info
+ use "hg -v help show_full_ja" to show global options
(1-2) display Japanese full-width characters in utf-8
$ COLUMNS=60 hg --encoding utf-8 --config extensions.show=./show.py help show_full_ja
- hg show_full_ja
+ hg show_full_ja
\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a\xe3\x81\x8b\xe3\x81\x8d\xe3\x81\x8f\xe3\x81\x91 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a\xe3\x81\x8b\xe3\x81\x8d\xe3\x81\x8f\xe3\x81\x91 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a\xe3\x81\x8b\xe3\x81\x8d\xe3\x81\x8f\xe3\x81\x91 (esc)
@@ -82,13 +82,13 @@ define commands to display help text
\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a\xe3\x81\x8b\xe3\x81\x8d\xe3\x81\x8f\xe3\x81\x91\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a\xe3\x81\x8b\xe3\x81\x8d\xe3\x81\x8f\xe3\x81\x91\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a\xe3\x81\x8b\xe3\x81\x8d\xe3\x81\x8f\xe3\x81\x91 (esc)
\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a\xe3\x81\x8b\xe3\x81\x8d\xe3\x81\x8f\xe3\x81\x91 (esc)
- use "hg -v help show_full_ja" to show more info
+ use "hg -v help show_full_ja" to show global options
(1-3) display Japanese half-width characters in cp932
$ COLUMNS=60 hg --encoding cp932 --config extensions.show=./show.py help show_half_ja
- hg show_half_ja
+ hg show_half_ja
\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9 \xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9 \xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9 \xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9 (esc)
@@ -98,12 +98,12 @@ define commands to display help text
\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9 (esc)
\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9 (esc)
- use "hg -v help show_half_ja" to show more info
+ use "hg -v help show_half_ja" to show global options
(1-4) display Japanese half-width characters in utf-8
$ COLUMNS=60 hg --encoding utf-8 --config extensions.show=./show.py help show_half_ja
- hg show_half_ja
+ hg show_half_ja
\xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9 \xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9 \xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9 \xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9 (esc)
@@ -113,7 +113,7 @@ define commands to display help text
\xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9\xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9\xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9\xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9\xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9\xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9 (esc)
\xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9\xef\xbd\xb1\xef\xbd\xb2\xef\xbd\xb3\xef\xbd\xb4\xef\xbd\xb5\xef\xbd\xb6\xef\xbd\xb7\xef\xbd\xb8\xef\xbd\xb9 (esc)
- use "hg -v help show_half_ja" to show more info
+ use "hg -v help show_half_ja" to show global options
@@ -124,7 +124,7 @@ define commands to display help text
(2-1-1) display Japanese ambiguous-width characters in cp932
$ COLUMNS=60 hg --encoding cp932 --config extensions.show=./show.py help show_ambig_ja
- hg show_ambig_ja
+ hg show_ambig_ja
\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b \x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b \x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b (esc)
@@ -134,12 +134,12 @@ define commands to display help text
\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b (esc)
\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b (esc)
- use "hg -v help show_ambig_ja" to show more info
+ use "hg -v help show_ambig_ja" to show global options
(2-1-2) display Japanese ambiguous-width characters in utf-8
$ COLUMNS=60 hg --encoding utf-8 --config extensions.show=./show.py help show_ambig_ja
- hg show_ambig_ja
+ hg show_ambig_ja
\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b \xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b \xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b (esc)
@@ -149,12 +149,12 @@ define commands to display help text
\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b (esc)
\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b (esc)
- use "hg -v help show_ambig_ja" to show more info
+ use "hg -v help show_ambig_ja" to show global options
(2-1-3) display Russian ambiguous-width characters in cp1251
$ COLUMNS=60 hg --encoding cp1251 --config extensions.show=./show.py help show_ambig_ru
- hg show_ambig_ru
+ hg show_ambig_ru
\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 \xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 \xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 \xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 \xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 (esc)
@@ -164,12 +164,12 @@ define commands to display help text
\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 (esc)
\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 (esc)
- use "hg -v help show_ambig_ru" to show more info
+ use "hg -v help show_ambig_ru" to show global options
(2-1-4) display Russian ambiguous-width characters in utf-8
$ COLUMNS=60 hg --encoding utf-8 --config extensions.show=./show.py help show_ambig_ru
- hg show_ambig_ru
+ hg show_ambig_ru
\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 \xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 \xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 \xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 \xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 (esc)
@@ -179,7 +179,7 @@ define commands to display help text
\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 (esc)
\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 (esc)
- use "hg -v help show_ambig_ru" to show more info
+ use "hg -v help show_ambig_ru" to show global options
(2-2) treat width of ambiguous characters as wide
@@ -187,7 +187,7 @@ define commands to display help text
(2-2-1) display Japanese ambiguous-width characters in cp932
$ COLUMNS=60 HGENCODINGAMBIGUOUS=wide hg --encoding cp932 --config extensions.show=./show.py help show_ambig_ja
- hg show_ambig_ja
+ hg show_ambig_ja
\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b \x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b \x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b (esc)
@@ -200,12 +200,12 @@ define commands to display help text
\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b (esc)
\x83\xbf\x83\xc0\x83\xc1\x83\xc2\x83\xd2\x83\xc4\x83\xc5\x83\xc6\x81\x9b (esc)
- use "hg -v help show_ambig_ja" to show more info
+ use "hg -v help show_ambig_ja" to show global options
(2-2-2) display Japanese ambiguous-width characters in utf-8
$ COLUMNS=60 HGENCODINGAMBIGUOUS=wide hg --encoding utf-8 --config extensions.show=./show.py help show_ambig_ja
- hg show_ambig_ja
+ hg show_ambig_ja
\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b \xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b \xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b (esc)
@@ -218,12 +218,12 @@ define commands to display help text
\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b (esc)
\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xcf\x85\xce\xb6\xce\xb7\xce\xb8\xe2\x97\x8b (esc)
- use "hg -v help show_ambig_ja" to show more info
+ use "hg -v help show_ambig_ja" to show global options
(2-2-3) display Russian ambiguous-width characters in cp1251
$ COLUMNS=60 HGENCODINGAMBIGUOUS=wide hg --encoding cp1251 --config extensions.show=./show.py help show_ambig_ru
- hg show_ambig_ru
+ hg show_ambig_ru
\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 \xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 \xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 (esc)
\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 \xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 (esc)
@@ -236,12 +236,12 @@ define commands to display help text
\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 (esc)
\xcd\xe0\xf1\xf2\xf0\xee\xe9\xea\xe8 (esc)
- use "hg -v help show_ambig_ru" to show more info
+ use "hg -v help show_ambig_ru" to show global options
(2-2-4) display Russian ambiguous-width charactes in utf-8
$ COLUMNS=60 HGENCODINGAMBIGUOUS=wide hg --encoding utf-8 --config extensions.show=./show.py help show_ambig_ru
- hg show_ambig_ru
+ hg show_ambig_ru
\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 \xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 \xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 (esc)
\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 \xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 (esc)
@@ -254,6 +254,4 @@ define commands to display help text
\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 (esc)
\xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 (esc)
- use "hg -v help show_ambig_ru" to show more info
-
- $ cd ..
+ use "hg -v help show_ambig_ru" to show global options
diff --git a/tests/test-encoding.t b/tests/test-encoding.t
index ee884ba..e691a03 100644
--- a/tests/test-encoding.t
+++ b/tests/test-encoding.t
@@ -5,7 +5,7 @@ Test character encoding
we need a repo with some legacy latin-1 changesets
- $ hg unbundle "$TESTDIR/bundles/legacy-encoding.hg"
+ $ hg unbundle $TESTDIR/bundles/legacy-encoding.hg
adding changesets
adding manifests
adding file changes
@@ -42,7 +42,6 @@ these should work
$ HGENCODING=latin-1 hg tag `cat latin-1-tag`
$ HGENCODING=latin-1 hg branch `cat latin-1-tag`
marked working directory as branch \xe9 (esc)
- (branches are permanent and global, did you want a bookmark?)
$ HGENCODING=latin-1 hg ci -m 'latin1 branch'
$ rm .hg/branch
@@ -235,8 +234,7 @@ hg log (utf-8)
hg log (dolphin)
$ HGENCODING=dolphin hg log
- abort: unknown encoding: dolphin
- (please check your locale settings)
+ abort: unknown encoding: dolphin, please check your locale settings
[255]
$ HGENCODING=ascii hg branch `cat latin-1-tag`
abort: decoding near '\xe9': 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)! (esc)
@@ -249,4 +247,3 @@ Test roundtrip encoding of lookup tables when not using UTF-8 (issue2763)
$ HGENCODING=latin-1 hg up `cat latin-1-tag`
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ cd ..
diff --git a/tests/test-eol-clone.t b/tests/test-eol-clone.t
index b9b4358..60f03b7 100644
--- a/tests/test-eol-clone.t
+++ b/tests/test-eol-clone.t
@@ -72,5 +72,3 @@ Test clone of revision with .hgeol
first\r (esc)
second\r (esc)
third\r (esc)
-
- $ cd ..
diff --git a/tests/test-eol-hook.t b/tests/test-eol-hook.t
index 9fdfe5e..12716bc 100644
--- a/tests/test-eol-hook.t
+++ b/tests/test-eol-hook.t
@@ -161,6 +161,7 @@ We can fix the head and push again
added 3 changesets with 3 changes to 2 files (+1 heads)
$ hg -R ../main rollback
repository tip rolled back to revision 5 (undo push)
+ working directory now based on revision -1
Test it still fails with checkallhook
@@ -214,5 +215,3 @@ Test multiple files/revisions output
d.txt in a7040e68714f should not have CRLF line endings
b.txt in fbcf9b1025f5 should not have CRLF line endings
[255]
-
- $ cd ..
diff --git a/tests/test-eol-tag.t b/tests/test-eol-tag.t
index 56fad6b..29bc5a4 100644
--- a/tests/test-eol-tag.t
+++ b/tests/test-eol-tag.t
@@ -35,5 +35,3 @@ Rewrite .hgtags file as it would look on a new checkout:
Touch .hgtags file again:
$ hg tag 2.0
-
- $ cd ..
diff --git a/tests/test-eol.t b/tests/test-eol.t
index 2b8f585..b204759 100644
--- a/tests/test-eol.t
+++ b/tests/test-eol.t
@@ -384,13 +384,10 @@ Mixed tests
% hg status
$ rm -r mixed
- $ echo '[extensions]' >> $HGRCPATH
- $ echo 'eol =' >> $HGRCPATH
-
-#if unix-permissions
-
Test issue2569 -- eol extension takes write lock on reading:
+ $ echo '[extensions]' >> $HGRCPATH
+ $ echo 'eol =' >> $HGRCPATH
$ hg init repo
$ cd repo
$ touch .hgeol
@@ -404,8 +401,6 @@ Test issue2569 -- eol extension takes write lock on reading:
$ chmod -R u+w .hg
$ cd ..
-#endif
-
Test cleverencode: and cleverdecode: aliases for win32text extension
$ echo '[encode]' >> $HGRCPATH
@@ -446,83 +441,3 @@ Test handling of a broken .hgeol file:
warning: ignoring .hgeol file due to parse error at .hgeol:1: bad
$ hg status
? .hgeol.orig
-
-Test eol.only-consistent can be specified in .hgeol
-
- $ cd $TESTTMP
- $ hg init only-consistent
- $ cd only-consistent
- $ printf "first\nsecond\r\n" > a.txt
- $ hg add a.txt
- $ cat > .hgeol << EOF
- > [eol]
- > only-consistent = True
- > EOF
- $ hg commit -m 'inconsistent'
- abort: inconsistent newline style in a.txt
-
- [255]
- $ cat > .hgeol << EOF
- > [eol]
- > only-consistent = False
- > EOF
- $ hg commit -m 'consistent'
-
-
-Test trailing newline
-
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > eol=
- > EOF
-
-setup repository
-
- $ cd $TESTTMP
- $ hg init trailing
- $ cd trailing
- $ cat > .hgeol <<EOF
- > [patterns]
- > **.txt = native
- > [eol]
- > fix-trailing-newline = False
- > EOF
-
-add text without trailing newline
-
- $ printf "first\nsecond" > a.txt
- $ hg commit --addremove -m 'checking in'
- adding .hgeol
- adding a.txt
- $ rm a.txt
- $ hg update -C -q
- $ cat a.txt
- first
- second (no-eol)
-
- $ cat > .hgeol <<EOF
- > [patterns]
- > **.txt = native
- > [eol]
- > fix-trailing-newline = True
- > EOF
- $ printf "third\nfourth" > a.txt
- $ hg commit -m 'checking in with newline fix'
- $ rm a.txt
- $ hg update -C -q
- $ cat a.txt
- third
- fourth
-
-append a line without trailing newline
-
- $ printf "fifth" >> a.txt
- $ hg commit -m 'adding another line line'
- $ rm a.txt
- $ hg update -C -q
- $ cat a.txt
- third
- fourth
- fifth
-
- $ cd ..
diff --git a/tests/test-eolfilename.t b/tests/test-eolfilename.t
index 632d0c0..662fcd6 100644
--- a/tests/test-eolfilename.t
+++ b/tests/test-eolfilename.t
@@ -68,5 +68,3 @@ test issue2039
\x1b[0;35;1;4mbar\x1b[0m (esc)
\x1b[0;35;1;4m? foo\x1b[0m (esc)
\x1b[0;35;1;4mbar.baz\x1b[0m (esc)
-
- $ cd ..
diff --git a/tests/test-excessive-merge.t b/tests/test-excessive-merge.t
index 8d324b8..d85e8f6 100644
--- a/tests/test-excessive-merge.t
+++ b/tests/test-excessive-merge.t
@@ -64,12 +64,12 @@
summary: test
$ hg debugindex --changelog
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 60 ..... 0 5e0375449e74 000000000000 000000000000 (re)
- 1 60 62 ..... 1 96155394af80 5e0375449e74 000000000000 (re)
- 2 122 62 ..... 2 92cc4c306b19 5e0375449e74 000000000000 (re)
- 3 184 69 ..... 3 e16a66a37edd 92cc4c306b19 96155394af80 (re)
- 4 253 29 ..... 4 2ee31f665a86 96155394af80 92cc4c306b19 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 60 0 0 5e0375449e74 000000000000 000000000000
+ 1 60 62 1 1 96155394af80 5e0375449e74 000000000000
+ 2 122 62 2 2 92cc4c306b19 5e0375449e74 000000000000
+ 3 184 69 3 3 e16a66a37edd 92cc4c306b19 96155394af80
+ 4 253 29 3 4 2ee31f665a86 96155394af80 92cc4c306b19
revision 1
$ hg manifest --debug 1
@@ -89,9 +89,9 @@ revision 4
79d7492df40aa0fa093ec4209be78043c181f094 644 b
$ hg debugindex a
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 5 ..... 0 2ed2a3912a0b 000000000000 000000000000 (re)
- 1 5 6 ..... 1 79d7492df40a 2ed2a3912a0b 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
+ 1 5 6 1 1 79d7492df40a 2ed2a3912a0b 000000000000
$ hg verify
checking changesets
diff --git a/tests/test-export.t b/tests/test-export.t
index a371f7b..fd039c0 100644
--- a/tests/test-export.t
+++ b/tests/test-export.t
@@ -7,7 +7,7 @@
> hg ci -m "foo-$i"
> done
- $ for out in "%nof%N" "%%%H" "%b-%R" "%h" "%r" "%m"; do
+ $ for out in "%nof%N" "%%%H" "%b-%R" "%h" "%r"; do
> echo
> echo "# foo-$out.patch"
> hg export -v -o "foo-$out.patch" 2:tip
@@ -77,19 +77,6 @@
foo-09.patch
foo-10.patch
foo-11.patch
-
- # foo-%m.patch
- exporting patches:
- foo-foo_2.patch
- foo-foo_3.patch
- foo-foo_4.patch
- foo-foo_5.patch
- foo-foo_6.patch
- foo-foo_7.patch
- foo-foo_8.patch
- foo-foo_9.patch
- foo-foo_10.patch
- foo-foo_11.patch
Exporting 4 changesets to a file:
@@ -121,27 +108,3 @@ Exporting revision -2 to a file:
foo-9
+foo-10
-Checking if only alphanumeric characters are used in the file name (%m option):
-
- $ echo "line" >> foo
- $ hg commit -m " !\"#$%&(,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~"
- $ hg export -v -o %m.patch tip
- exporting patch:
- ____________0123456789_______ABCDEFGHIJKLMNOPQRSTUVWXYZ______abcdefghijklmnopqrstuvwxyz____.patch
-
-Catch exporting unknown revisions (especially empty revsets, see issue3353)
-
- $ hg export
- abort: export requires at least one changeset
- [255]
- $ hg export ""
- hg: parse error: empty query
- [255]
- $ hg export 999
- abort: unknown revision '999'!
- [255]
- $ hg export "not all()"
- abort: export requires at least one changeset
- [255]
-
- $ cd ..
diff --git a/tests/test-extdiff.t b/tests/test-extdiff.t
index d4190c4..40aab85 100644
--- a/tests/test-extdiff.t
+++ b/tests/test-extdiff.t
@@ -39,15 +39,15 @@ Should diff cloned directories:
options:
- -o --option OPT [+] pass option to comparison program
- -r --rev REV [+] revision
- -c --change REV change made by revision
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
+ -o --option OPT [+] pass option to comparison program
+ -r --rev REV [+] revision
+ -c --change REV change made by revision
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
[+] marked option can be specified multiple times
- use "hg -v help falabala" to show more info
+ use "hg -v help falabala" to show global options
$ hg ci -d '0 0' -mtest1
@@ -92,8 +92,6 @@ Check diff are made from the first parent:
diffing */extdiff.*/a.2a13a4d2da36/a a.46c0e4daeb72/a (glob)
diff-like tools yield a non-zero exit code
-#if execbit
-
Test extdiff of multiple files in tmp dir:
$ hg update -C 0 > /dev/null
@@ -182,10 +180,6 @@ Test with revsets:
$ cd ..
-#endif
-
-#if symlink
-
Test symlinks handling (issue1909)
$ hg init testsymlinks
@@ -200,5 +194,3 @@ Test symlinks handling (issue1909)
diffing testsymlinks.07f494440405 testsymlinks
[1]
$ cd ..
-
-#endif
diff --git a/tests/test-extension.t b/tests/test-extension.t
index 0f4be50..1d85b45 100644
--- a/tests/test-extension.t
+++ b/tests/test-extension.t
@@ -1,5 +1,7 @@
Test basic extension support
+ $ "$TESTDIR/hghave" no-outer-repo || exit 80
+
$ cat > foobar.py <<EOF
> import os
> from mercurial import commands
@@ -130,9 +132,6 @@ Check hgweb's load order:
$ cd ..
-hide outer repo
- $ hg init
-
$ cat > empty.py <<EOF
> '''empty cmdtable
> '''
@@ -179,27 +178,27 @@ hide outer repo
list of commands:
- foo yet another foo command
+ foo:
+ yet another foo command
global options:
-
- -R --repository REPO repository root directory or name of overlay bundle
- file
- --cwd DIR change working directory
- -y --noninteractive do not prompt, automatically pick the first choice for
- all prompts
- -q --quiet suppress output
- -v --verbose enable additional output
- --config CONFIG [+] set/override config option (use 'section.name=value')
- --debug enable debugging output
- --debugger start debugger
- --encoding ENCODE set the charset encoding (default: ascii)
- --encodingmode MODE set the charset encoding mode (default: strict)
- --traceback always print a traceback on exception
- --time time how long the command takes
- --profile print command execution profile
- --version output version information and exit
- -h --help display help and exit
+ -R --repository REPO repository root directory or name of overlay bundle
+ file
+ --cwd DIR change working directory
+ -y --noninteractive do not prompt, automatically pick the first choice
+ for all prompts
+ -q --quiet suppress output
+ -v --verbose enable additional output
+ --config CONFIG [+] set/override config option (use 'section.name=value')
+ --debug enable debugging output
+ --debugger start debugger
+ --encoding ENCODE set the charset encoding (default: ascii)
+ --encodingmode MODE set the charset encoding mode (default: strict)
+ --traceback always print a traceback on exception
+ --time time how long the command takes
+ --profile print command execution profile
+ --version output version information and exit
+ -h --help display help and exit
[+] marked option can be specified multiple times
@@ -208,28 +207,29 @@ hide outer repo
list of commands:
- debugfoobar yet another debug command
- foo yet another foo command
+ debugfoobar:
+ yet another debug command
+ foo:
+ yet another foo command
global options:
-
- -R --repository REPO repository root directory or name of overlay bundle
- file
- --cwd DIR change working directory
- -y --noninteractive do not prompt, automatically pick the first choice for
- all prompts
- -q --quiet suppress output
- -v --verbose enable additional output
- --config CONFIG [+] set/override config option (use 'section.name=value')
- --debug enable debugging output
- --debugger start debugger
- --encoding ENCODE set the charset encoding (default: ascii)
- --encodingmode MODE set the charset encoding mode (default: strict)
- --traceback always print a traceback on exception
- --time time how long the command takes
- --profile print command execution profile
- --version output version information and exit
- -h --help display help and exit
+ -R --repository REPO repository root directory or name of overlay bundle
+ file
+ --cwd DIR change working directory
+ -y --noninteractive do not prompt, automatically pick the first choice
+ for all prompts
+ -q --quiet suppress output
+ -v --verbose enable additional output
+ --config CONFIG [+] set/override config option (use 'section.name=value')
+ --debug enable debugging output
+ --debugger start debugger
+ --encoding ENCODE set the charset encoding (default: ascii)
+ --encodingmode MODE set the charset encoding mode (default: strict)
+ --traceback always print a traceback on exception
+ --time time how long the command takes
+ --profile print command execution profile
+ --version output version information and exit
+ -h --help display help and exit
[+] marked option can be specified multiple times
$ echo 'debugextension = !' >> $HGRCPATH
@@ -260,16 +260,16 @@ Extension module help vs command help:
options:
- -p --program CMD comparison program to run
- -o --option OPT [+] pass option to comparison program
- -r --rev REV [+] revision
- -c --change REV change made by revision
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
+ -p --program CMD comparison program to run
+ -o --option OPT [+] pass option to comparison program
+ -r --rev REV [+] revision
+ -c --change REV change made by revision
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
[+] marked option can be specified multiple times
- use "hg -v help extdiff" to show more info
+ use "hg -v help extdiff" to show global options
$ hg help --extension extdiff
extdiff extension - command to allow external programs to compare revisions
@@ -299,8 +299,7 @@ Extension module help vs command help:
# (see http://www.vim.org/scripts/script.php?script_id=102) Non
# English user, be sure to put "let g:DirDiffDynamicDiffText = 1" in
# your .vimrc
- vimdiff = gvim -f "+next" \
- "+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))"
+ vimdiff = gvim -f '+next' '+execute "DirDiff" argv(0) argv(1)'
Tool arguments can include variables that are expanded at runtime:
@@ -326,7 +325,7 @@ Extension module help vs command help:
list of commands:
- extdiff use external program to diff repository (or selected files)
+ extdiff use external program to diff repository (or selected files)
use "hg -v help extdiff" to show builtin aliases and global options
@@ -372,7 +371,7 @@ Test help topic with same name as extension
multirevs command
- use "hg -v help multirevs" to show more info
+ use "hg -v help multirevs" to show global options
$ hg multirevs
hg multirevs: invalid arguments
@@ -418,14 +417,14 @@ Disabled extension commands:
$ hg help email
'email' is provided by the following extension:
- patchbomb command to send changesets as (a series of) patch emails
+ patchbomb command to send changesets as (a series of) patch emails
use "hg help extensions" for information on enabling extensions
$ hg qdel
hg: unknown command 'qdel'
'qdelete' is provided by the following extension:
- mq manage a stack of patches
+ mq manage a stack of patches
use "hg help extensions" for information on enabling extensions
[255]
@@ -433,7 +432,7 @@ Disabled extension commands:
hg: unknown command 'churn'
'churn' is provided by the following extension:
- churn command to display statistics about repository history
+ churn command to display statistics about repository history
use "hg help extensions" for information on enabling extensions
[255]
@@ -472,90 +471,7 @@ Broken disabled extension and command:
> cmdtable = None
> EOF
$ hg --config extensions.path=./path.py help foo > /dev/null
- warning: error finding commands in $TESTTMP/hgext/forest.py (glob)
+ warning: error finding commands in $TESTTMP/hgext/forest.py
hg: unknown command 'foo'
- warning: error finding commands in $TESTTMP/hgext/forest.py (glob)
+ warning: error finding commands in $TESTTMP/hgext/forest.py
[255]
-
- $ cat > throw.py <<EOF
- > from mercurial import cmdutil, commands
- > cmdtable = {}
- > command = cmdutil.command(cmdtable)
- > class Bogon(Exception): pass
- >
- > @command('throw', [], 'hg throw')
- > def throw(ui, **opts):
- > """throws an exception"""
- > raise Bogon()
- > commands.norepo += " throw"
- > EOF
-No declared supported version, extension complains:
- $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
- ** Unknown exception encountered with possibly-broken third-party extension throw
- ** which supports versions unknown of Mercurial.
- ** Please disable throw and try your action again.
- ** If that fixes the bug please report it to the extension author.
- ** Python * (glob)
- ** Mercurial Distributed SCM * (glob)
- ** Extensions loaded: throw
-If the extension specifies a buglink, show that:
- $ echo 'buglink = "http://example.com/bts"' >> throw.py
- $ rm -f throw.pyc throw.pyo
- $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
- ** Unknown exception encountered with possibly-broken third-party extension throw
- ** which supports versions unknown of Mercurial.
- ** Please disable throw and try your action again.
- ** If that fixes the bug please report it to http://example.com/bts
- ** Python * (glob)
- ** Mercurial Distributed SCM (*) (glob)
- ** Extensions loaded: throw
-If the extensions declare outdated versions, accuse the older extension first:
- $ echo "from mercurial import util" >> older.py
- $ echo "util.version = lambda:'2.2'" >> older.py
- $ echo "testedwith = '1.9.3'" >> older.py
- $ echo "testedwith = '2.1.1'" >> throw.py
- $ rm -f throw.pyc throw.pyo
- $ hg --config extensions.throw=throw.py --config extensions.older=older.py \
- > throw 2>&1 | egrep '^\*\*'
- ** Unknown exception encountered with possibly-broken third-party extension older
- ** which supports versions 1.9.3 of Mercurial.
- ** Please disable older and try your action again.
- ** If that fixes the bug please report it to the extension author.
- ** Python * (glob)
- ** Mercurial Distributed SCM (version 2.2)
- ** Extensions loaded: throw, older
-One extension only tested with older, one only with newer versions:
- $ echo "util.version = lambda:'2.1.0'" >> older.py
- $ rm -f older.pyc older.pyo
- $ hg --config extensions.throw=throw.py --config extensions.older=older.py \
- > throw 2>&1 | egrep '^\*\*'
- ** Unknown exception encountered with possibly-broken third-party extension older
- ** which supports versions 1.9.3 of Mercurial.
- ** Please disable older and try your action again.
- ** If that fixes the bug please report it to the extension author.
- ** Python * (glob)
- ** Mercurial Distributed SCM (version 2.1.0)
- ** Extensions loaded: throw, older
-Older extension is tested with current version, the other only with newer:
- $ echo "util.version = lambda:'1.9.3'" >> older.py
- $ rm -f older.pyc older.pyo
- $ hg --config extensions.throw=throw.py --config extensions.older=older.py \
- > throw 2>&1 | egrep '^\*\*'
- ** Unknown exception encountered with possibly-broken third-party extension throw
- ** which supports versions 2.1.1 of Mercurial.
- ** Please disable throw and try your action again.
- ** If that fixes the bug please report it to http://example.com/bts
- ** Python * (glob)
- ** Mercurial Distributed SCM (version 1.9.3)
- ** Extensions loaded: throw, older
-
-Declare the version as supporting this hg version, show regular bts link:
- $ hgver=`python -c 'from mercurial import util; print util.version().split("+")[0]'`
- $ echo 'testedwith = """'"$hgver"'"""' >> throw.py
- $ rm -f throw.pyc throw.pyo
- $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
- ** unknown exception encountered, please report by visiting
- ** http://mercurial.selenic.com/wiki/BugTracker
- ** Python * (glob)
- ** Mercurial Distributed SCM (*) (glob)
- ** Extensions loaded: throw
diff --git a/tests/test-extra-filelog-entry.t b/tests/test-extra-filelog-entry.t
index 701e23b..c6c5a21 100644
--- a/tests/test-extra-filelog-entry.t
+++ b/tests/test-extra-filelog-entry.t
@@ -16,6 +16,6 @@ Issue351: mq: qrefresh can create extra revlog entry
$ hg qrefresh
$ hg debugindex b
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 0 1e88685f5dde 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 0 1e88685f5dde 000000000000 000000000000
diff --git a/tests/test-fetch.t b/tests/test-fetch.t
index d52742f..afabef9 100644
--- a/tests/test-fetch.t
+++ b/tests/test-fetch.t
@@ -1,4 +1,4 @@
- $ "$TESTDIR/hghave" serve || exit 80
+adjust to non-default HGPORT, e.g. with run-tests.py -j
$ echo "[extensions]" >> $HGRCPATH
$ echo "fetch=" >> $HGRCPATH
@@ -7,7 +7,7 @@ test fetch with default branches only
$ hg init a
$ echo a > a/a
- $ hg --cwd a commit -Ama
+ $ hg --cwd a commit -d '1 0' -Ama
adding a
$ hg clone a b
updating to branch default
@@ -16,10 +16,10 @@ test fetch with default branches only
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo b > a/b
- $ hg --cwd a commit -Amb
+ $ hg --cwd a commit -d '2 0' -Amb
adding b
$ hg --cwd a parents -q
- 1:d2ae7f538514
+ 1:97d72e5f12c7
should pull one change
@@ -32,9 +32,9 @@ should pull one change
added 1 changesets with 1 changes to 1 files
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg --cwd b parents -q
- 1:d2ae7f538514
+ 1:97d72e5f12c7
$ echo c > c/c
- $ hg --cwd c commit -Amc
+ $ hg --cwd c commit -d '3 0' -Amc
adding c
$ hg clone c d
updating to branch default
@@ -48,37 +48,39 @@ repo, because the path of the repo will be included in the commit
message, making every commit appear different.
should merge c into a
- $ hg --cwd c fetch -d '0 0' -m 'automated merge' ../a
+ $ hg --cwd c fetch -d '4 0' -m 'automated merge' ../a
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
- updating to 2:d2ae7f538514
+ updating to 2:97d72e5f12c7
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- merging with 1:d36c0562f908
+ merging with 1:5e056962225c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- new changeset 3:a323a0c43ec4 merges remote changes with local
+ new changeset 3:cd3a41621cf0 merges remote changes with local
$ ls c
a
b
c
+ $ netstat -tnap 2>/dev/null | grep $HGPORT | grep LISTEN
+ [1]
$ hg --cwd a serve -a localhost -p $HGPORT -d --pid-file=hg.pid
$ cat a/hg.pid >> "$DAEMON_PIDS"
fetch over http, no auth
- $ hg --cwd d fetch http://localhost:$HGPORT/
+ $ hg --cwd d fetch -d '5 0' http://localhost:$HGPORT/
pulling from http://localhost:$HGPORT/
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
- updating to 2:d2ae7f538514
+ updating to 2:97d72e5f12c7
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- merging with 1:d36c0562f908
+ merging with 1:5e056962225c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
new changeset 3:* merges remote changes with local (glob)
$ hg --cwd d tip --template '{desc}\n'
@@ -86,16 +88,16 @@ fetch over http, no auth
fetch over http with auth (should be hidden in desc)
- $ hg --cwd e fetch http://user:password@localhost:$HGPORT/
+ $ hg --cwd e fetch -d '5 0' http://user:password@localhost:$HGPORT/
pulling from http://user:***@localhost:$HGPORT/
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
- updating to 2:d2ae7f538514
+ updating to 2:97d72e5f12c7
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- merging with 1:d36c0562f908
+ merging with 1:5e056962225c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
new changeset 3:* merges remote changes with local (glob)
$ hg --cwd e tip --template '{desc}\n'
@@ -107,17 +109,17 @@ fetch over http with auth (should be hidden in desc)
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo f > f/f
- $ hg --cwd f ci -Amf
+ $ hg --cwd f ci -d '6 0' -Amf
adding f
$ echo g > g/g
- $ hg --cwd g ci -Amg
+ $ hg --cwd g ci -d '6 0' -Amg
adding g
$ hg clone -q f h
$ hg clone -q g i
should merge f into g
- $ hg --cwd g fetch -d '0 0' --switch -m 'automated merge' ../f
+ $ hg --cwd g fetch -d '7 0' --switch -m 'automated merge' ../f
pulling from ../f
searching for changes
adding changesets
@@ -125,9 +127,9 @@ should merge f into g
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- merging with 3:6343ca3eff20
+ merging with 3:cc6a3744834d
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- new changeset 4:f7faa0b7d3c6 merges remote changes with local
+ new changeset 4:55aa4f32ec59 merges remote changes with local
$ rm i/g
should abort, because i is modified
@@ -140,21 +142,21 @@ test fetch with named branches
$ hg init nbase
$ echo base > nbase/a
- $ hg -R nbase ci -Am base
+ $ hg -R nbase ci -d '1 0' -Am base
adding a
$ hg -R nbase branch a
marked working directory as branch a
- (branches are permanent and global, did you want a bookmark?)
$ echo a > nbase/a
- $ hg -R nbase ci -m a
+ $ hg -R nbase ci -d '2 0' -m a
$ hg -R nbase up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R nbase branch b
marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
$ echo b > nbase/b
- $ hg -R nbase ci -Am b
+ $ hg -R nbase ci -Ad '3 0' -m b
adding b
+ $ echo
+
pull in change on foreign branch
@@ -167,10 +169,10 @@ pull in change on foreign branch
$ hg -R n1 up -C a
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo aa > n1/a
- $ hg -R n1 ci -m a1
+ $ hg -R n1 ci -d '4 0' -m a1
$ hg -R n2 up -C b
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg -R n2 fetch -m 'merge' n1
+ $ hg -R n2 fetch -d '9 0' -m 'merge' n1
pulling from n1
searching for changes
adding changesets
@@ -183,6 +185,8 @@ parent should be 2 (no automatic update)
$ hg -R n2 parents --template '{rev}\n'
2
$ rm -fr n1 n2
+ $ echo
+
pull in changes on both foreign and local branches
@@ -195,14 +199,14 @@ pull in changes on both foreign and local branches
$ hg -R n1 up -C a
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo aa > n1/a
- $ hg -R n1 ci -m a1
+ $ hg -R n1 ci -d '4 0' -m a1
$ hg -R n1 up -C b
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo bb > n1/b
- $ hg -R n1 ci -m b1
+ $ hg -R n1 ci -d '5 0' -m b1
$ hg -R n2 up -C b
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg -R n2 fetch -m 'merge' n1
+ $ hg -R n2 fetch -d '9 0' -m 'merge' n1
pulling from n1
searching for changes
adding changesets
@@ -216,6 +220,8 @@ parent should be 4 (fast forward)
$ hg -R n2 parents --template '{rev}\n'
4
$ rm -fr n1 n2
+ $ echo
+
pull changes on foreign (2 new heads) and local (1 new head) branches
with a local change
@@ -229,33 +235,33 @@ with a local change
$ hg -R n1 up -C a
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo a1 > n1/a
- $ hg -R n1 ci -m a1
+ $ hg -R n1 ci -d '4 0' -m a1
$ hg -R n1 up -C b
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo bb > n1/b
- $ hg -R n1 ci -m b1
+ $ hg -R n1 ci -d '5 0' -m b1
$ hg -R n1 up -C 1
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo a2 > n1/a
- $ hg -R n1 ci -m a2
+ $ hg -R n1 ci -d '6 0' -m a2
created new head
$ hg -R n2 up -C b
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo change >> n2/c
- $ hg -R n2 ci -A -m local
+ $ hg -R n2 ci -Ad '7 0' -m local
adding c
- $ hg -R n2 fetch -d '0 0' -m 'merge' n1
+ $ hg -R n2 fetch -d '9 0' -m 'merge' n1
pulling from n1
searching for changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 2 files (+2 heads)
- updating to 5:3c4a837a864f
+ updating to 5:708c6cce3d26
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- merging with 3:1267f84a9ea5
+ merging with 3:d83427717b1f
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- new changeset 7:2cf2a1261f21 merges remote changes with local
+ new changeset 7:48f1a33f52af merges remote changes with local
parent should be 7 (new merge changeset)
@@ -277,21 +283,21 @@ heads) with a local change
$ hg -R n1 merge b
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
- $ hg -R n1 ci -m merge
+ $ hg -R n1 ci -d '4 0' -m merge
$ hg -R n1 up -C 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo c > n1/a
- $ hg -R n1 ci -m c
+ $ hg -R n1 ci -d '5 0' -m c
$ hg -R n1 up -C 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo cc > n1/a
- $ hg -R n1 ci -m cc
+ $ hg -R n1 ci -d '6 0' -m cc
created new head
$ hg -R n2 up -C b
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo change >> n2/b
- $ hg -R n2 ci -A -m local
- $ hg -R n2 fetch -m 'merge' n1
+ $ hg -R n2 ci -Ad '7 0' -m local
+ $ hg -R n2 fetch -d '9 0' -m 'merge' n1
pulling from n1
searching for changes
adding changesets
@@ -320,8 +326,7 @@ pull in change on different branch than dirstate
$ hg -R n1 ci -m next
$ hg -R n2 branch topic
marked working directory as branch topic
- (branches are permanent and global, did you want a bookmark?)
- $ hg -R n2 fetch -m merge n1
+ $ hg -R n2 fetch -d '0 0' -m merge n1
abort: working dir not at branch tip (use "hg update" to check out branch tip)
[255]
@@ -339,13 +344,11 @@ test fetch with inactive branches
adding a
$ hg --cwd ib1 branch second
marked working directory as branch second
- (branches are permanent and global, did you want a bookmark?)
$ echo b > ib1/b
$ hg --cwd ib1 ci -Am onsecond
adding b
$ hg --cwd ib1 branch -f default
marked working directory as branch default
- (branches are permanent and global, did you want a bookmark?)
$ echo c > ib1/c
$ hg --cwd ib1 ci -Am newdefault
adding c
@@ -390,6 +393,8 @@ test issue1726
new changeset 3:* merges remote changes with local (glob)
$ hg --cwd i1726r2 heads default --template '{rev}\n'
3
+ $ echo
+
test issue2047
@@ -410,5 +415,4 @@ test issue2047
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
-
- $ cd ..
+ $ "$TESTDIR/killdaemons.py"
diff --git a/tests/test-filebranch.t b/tests/test-filebranch.t
index 5558fb0..2c4057a 100644
--- a/tests/test-filebranch.t
+++ b/tests/test-filebranch.t
@@ -76,11 +76,11 @@ We shouldn't have anything but foo in merge state here:
main: we should have a merge here:
$ hg debugindex --changelog
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 73 ..... 0 cdca01651b96 000000000000 000000000000 (re)
- 1 73 68 ..... 1 f6718a9cb7f3 cdca01651b96 000000000000 (re)
- 2 141 68 ..... 2 bdd988058d16 cdca01651b96 000000000000 (re)
- 3 209 66 ..... 3 d8a521142a3c f6718a9cb7f3 bdd988058d16 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 73 0 0 cdca01651b96 000000000000 000000000000
+ 1 73 68 1 1 f6718a9cb7f3 cdca01651b96 000000000000
+ 2 141 68 2 2 bdd988058d16 cdca01651b96 000000000000
+ 3 209 66 3 3 d8a521142a3c f6718a9cb7f3 bdd988058d16
log should show foo and quux changed:
@@ -100,32 +100,32 @@ log should show foo and quux changed:
foo: we should have a merge here:
$ hg debugindex foo
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 0 b8e02f643373 000000000000 000000000000 (re)
- 1 3 4 ..... 1 2ffeddde1b65 b8e02f643373 000000000000 (re)
- 2 7 4 ..... 2 33d1fb69067a b8e02f643373 000000000000 (re)
- 3 11 4 ..... 3 aa27919ee430 2ffeddde1b65 33d1fb69067a (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 0 b8e02f643373 000000000000 000000000000
+ 1 3 4 1 1 2ffeddde1b65 b8e02f643373 000000000000
+ 2 7 4 2 2 33d1fb69067a b8e02f643373 000000000000
+ 3 11 4 3 3 aa27919ee430 2ffeddde1b65 33d1fb69067a
bar: we should not have a merge here:
$ hg debugindex bar
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 0 b8e02f643373 000000000000 000000000000 (re)
- 1 3 4 ..... 2 33d1fb69067a b8e02f643373 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 0 b8e02f643373 000000000000 000000000000
+ 1 3 4 1 2 33d1fb69067a b8e02f643373 000000000000
baz: we should not have a merge here:
$ hg debugindex baz
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 0 b8e02f643373 000000000000 000000000000 (re)
- 1 3 4 ..... 1 2ffeddde1b65 b8e02f643373 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 0 b8e02f643373 000000000000 000000000000
+ 1 3 4 1 1 2ffeddde1b65 b8e02f643373 000000000000
quux: we should not have a merge here:
$ hg debugindex quux
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 0 b8e02f643373 000000000000 000000000000 (re)
- 1 3 5 ..... 3 6128c0f33108 b8e02f643373 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 0 b8e02f643373 000000000000 000000000000
+ 1 3 5 1 3 6128c0f33108 b8e02f643373 000000000000
Manifest entries should match tips of all files:
@@ -146,4 +146,3 @@ Everything should be clean now:
checking files
4 files, 4 changesets, 10 total revisions
- $ cd ..
diff --git a/tests/test-filecache.py b/tests/test-filecache.py
deleted file mode 100644
index 552a62a..0000000
--- a/tests/test-filecache.py
+++ /dev/null
@@ -1,95 +0,0 @@
-import sys, os, subprocess
-
-if subprocess.call(['python', '%s/hghave' % os.environ['TESTDIR'],
- 'cacheable']):
- sys.exit(80)
-
-from mercurial import util, scmutil, extensions
-
-filecache = scmutil.filecache
-
-class fakerepo(object):
- def __init__(self):
- self._filecache = {}
-
- def join(self, p):
- return p
-
- def sjoin(self, p):
- return p
-
- @filecache('x')
- def cached(self):
- print 'creating'
-
- def invalidate(self):
- for k in self._filecache:
- try:
- delattr(self, k)
- except AttributeError:
- pass
-
-def basic(repo):
- # file doesn't exist, calls function
- repo.cached
-
- repo.invalidate()
- # file still doesn't exist, uses cache
- repo.cached
-
- # create empty file
- f = open('x', 'w')
- f.close()
- repo.invalidate()
- # should recreate the object
- repo.cached
-
- f = open('x', 'w')
- f.write('a')
- f.close()
- repo.invalidate()
- # should recreate the object
- repo.cached
-
- repo.invalidate()
- # stats file again, nothing changed, reuses object
- repo.cached
-
- # atomic replace file, size doesn't change
- # hopefully st_mtime doesn't change as well so this doesn't use the cache
- # because of inode change
- f = scmutil.opener('.')('x', 'w', atomictemp=True)
- f.write('b')
- f.close()
-
- repo.invalidate()
- repo.cached
-
-def fakeuncacheable():
- def wrapcacheable(orig, *args, **kwargs):
- return False
-
- def wrapinit(orig, *args, **kwargs):
- pass
-
- originit = extensions.wrapfunction(util.cachestat, '__init__', wrapinit)
- origcacheable = extensions.wrapfunction(util.cachestat, 'cacheable',
- wrapcacheable)
-
- try:
- os.remove('x')
- except OSError:
- pass
-
- basic(fakerepo())
-
- util.cachestat.cacheable = origcacheable
- util.cachestat.__init__ = originit
-
-print 'basic:'
-print
-basic(fakerepo())
-print
-print 'fakeuncacheable:'
-print
-fakeuncacheable()
diff --git a/tests/test-filecache.py.out b/tests/test-filecache.py.out
deleted file mode 100644
index dc386fe..0000000
--- a/tests/test-filecache.py.out
+++ /dev/null
@@ -1,15 +0,0 @@
-basic:
-
-creating
-creating
-creating
-creating
-
-fakeuncacheable:
-
-creating
-creating
-creating
-creating
-creating
-creating
diff --git a/tests/test-filelog.py b/tests/test-filelog
index bf9f437..923fe29 100755
--- a/tests/test-filelog.py
+++ b/tests/test-filelog
@@ -17,17 +17,12 @@ def addrev(text, renamed=False):
else:
meta = {}
- lock = t = None
+ t = repo.transaction('commit')
try:
- lock = repo.lock()
- t = repo.transaction('commit')
node = fl.add(text, meta, t, 0, nullid, nullid)
return node
finally:
- if t:
- t.close()
- if lock:
- lock.release()
+ t.close()
def error(text):
print 'ERROR: ' + text
diff --git a/tests/test-filelog.py.out b/tests/test-filelog.out
index d9ecd51..d9ecd51 100644
--- a/tests/test-filelog.py.out
+++ b/tests/test-filelog.out
diff --git a/tests/test-flags.t b/tests/test-flags.t
index 0c4d11f..ad6581c 100644
--- a/tests/test-flags.t
+++ b/tests/test-flags.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" execbit || exit 80
-
$ umask 027
$ hg init test1
@@ -138,14 +136,12 @@ the changelog should mention file a:
-rwxr-x---
$ hg debugindex a
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 0 ..... 0 b80de5d13875 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 0 0 0 b80de5d13875 000000000000 000000000000
$ hg debugindex -R ../test2 a
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 0 ..... 0 b80de5d13875 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 0 0 0 b80de5d13875 000000000000 000000000000
$ hg debugindex -R ../test1 a
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 0 ..... 0 b80de5d13875 000000000000 000000000000 (re)
- 1 0 5 ..... 1 7fe919cc0336 b80de5d13875 000000000000 (re)
-
- $ cd ..
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 0 0 0 b80de5d13875 000000000000 000000000000
+ 1 0 5 1 1 7fe919cc0336 b80de5d13875 000000000000
diff --git a/tests/test-fncache.t b/tests/test-fncache.t
index 643088c..f8c476a 100644
--- a/tests/test-fncache.t
+++ b/tests/test-fncache.t
@@ -14,7 +14,7 @@ Testing a.i/b:
$ mkdir a.i
$ echo "some other text" > a.i/b
$ hg add
- adding a.i/b (glob)
+ adding a.i/b
$ hg ci -m second
$ cat .hg/store/fncache | sort
data/a.i
@@ -25,7 +25,7 @@ Testing a.i.hg/c:
$ mkdir a.i.hg
$ echo "yet another text" > a.i.hg/c
$ hg add
- adding a.i.hg/c (glob)
+ adding a.i.hg/c
$ hg ci -m third
$ cat .hg/store/fncache | sort
data/a.i
@@ -69,21 +69,17 @@ Non store repo:
.hg
.hg/00changelog.i
.hg/00manifest.i
- .hg/cache
- .hg/cache/branchheads
.hg/data
.hg/data/tst.d.hg
.hg/data/tst.d.hg/foo.i
.hg/dirstate
.hg/last-message.txt
- .hg/phaseroots
.hg/requires
.hg/undo
.hg/undo.bookmarks
.hg/undo.branch
.hg/undo.desc
.hg/undo.dirstate
- .hg/undo.phaseroots
$ cd ..
Non fncache repo:
@@ -97,8 +93,6 @@ Non fncache repo:
$ find .hg | sort
.hg
.hg/00changelog.i
- .hg/cache
- .hg/cache/branchheads
.hg/dirstate
.hg/last-message.txt
.hg/requires
@@ -108,9 +102,7 @@ Non fncache repo:
.hg/store/data
.hg/store/data/tst.d.hg
.hg/store/data/tst.d.hg/_foo.i
- .hg/store/phaseroots
.hg/store/undo
- .hg/store/undo.phaseroots
.hg/undo.bookmarks
.hg/undo.branch
.hg/undo.desc
diff --git a/tests/test-gendoc.t b/tests/test-gendoc.t
index 63a67d7..33259f1 100644
--- a/tests/test-gendoc.t
+++ b/tests/test-gendoc.t
@@ -3,18 +3,18 @@ Test document extraction
$ "$TESTDIR/hghave" docutils || exit 80
$ HGENCODING=UTF-8
$ export HGENCODING
- $ { echo C; find "$TESTDIR/../i18n" -name "*.po" | sort; } | while read PO; do
- > LOCALE=`basename "$PO" .po`
+ $ for PO in C $TESTDIR/../i18n/*.po; do
+ > LOCALE=`basename $PO .po`
> echo
> echo "% extracting documentation from $LOCALE"
> echo ".. -*- coding: utf-8 -*-" > gendoc-$LOCALE.txt
> echo "" >> gendoc-$LOCALE.txt
- > LC_ALL=$LOCALE python "$TESTDIR/../doc/gendoc.py" >> gendoc-$LOCALE.txt 2> /dev/null || exit
+ > LC_ALL=$LOCALE python $TESTDIR/../doc/gendoc.py >> gendoc-$LOCALE.txt 2> /dev/null || exit
>
> # We call runrst without adding "--halt warning" to make it report
> # all errors instead of stopping on the first one.
> echo "checking for parse errors"
- > python "$TESTDIR/../doc/runrst" html gendoc-$LOCALE.txt /dev/null
+ > python $TESTDIR/../doc/runrst html gendoc-$LOCALE.txt /dev/null
> done
% extracting documentation from C
diff --git a/tests/test-getbundle.t b/tests/test-getbundle.t
index 83feda6..049b45c 100644
--- a/tests/test-getbundle.t
+++ b/tests/test-getbundle.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
= Test the getbundle() protocol function =
diff --git a/tests/test-git-export.t b/tests/test-git-export.t
index 3efdc16..b4b6592 100644
--- a/tests/test-git-export.t
+++ b/tests/test-git-export.t
@@ -56,8 +56,6 @@ Delete:
$ hg ci -Amsrc
adding src
-#if execbit
-
chmod 644:
$ chmod +x src
@@ -94,20 +92,9 @@ Nonexistent in tip+chmod:
old mode 100644
new mode 100755
-#else
-
-Dummy changes when no exec bit, mocking the execbit commit structure
-
- $ echo change >> src
- $ hg ci -munexec
- $ hg mv src dst
- $ hg ci -mrenamemod
-
-#endif
-
Binary diff:
- $ cp "$TESTDIR/binfile.bin" .
+ $ cp $TESTDIR/binfile.bin .
$ hg add binfile.bin
$ hg diff --git > b.diff
$ cat b.diff
@@ -136,7 +123,7 @@ Import binary diff:
$ rm binfile.bin
$ hg import -mfoo b.diff
applying b.diff
- $ cmp binfile.bin "$TESTDIR/binfile.bin"
+ $ cmp binfile.bin $TESTDIR/binfile.bin
Rename binary file:
diff --git a/tests/test-globalopts.t b/tests/test-globalopts.t
index 53716cd..67e0130 100644
--- a/tests/test-globalopts.t
+++ b/tests/test-globalopts.t
@@ -1,3 +1,5 @@
+ $ "$TESTDIR/hghave" no-outer-repo || exit 80
+
$ hg init a
$ cd a
$ echo a > a
@@ -75,8 +77,6 @@ Testing -R/--repository:
8580ff50825a tip
$ cd ..
-#if no-outer-repo
-
Implicit -R:
$ hg ann a/a
@@ -93,8 +93,6 @@ Implicit -R:
abort: no repository found in '$TESTTMP' (.hg not found)!
[255]
-#endif
-
Abbreviation of long option:
$ hg --repo c tip
@@ -138,16 +136,16 @@ earlygetopt with illegal abbreviations:
abort: option --cwd may not be abbreviated!
[255]
$ hg --rep a tip
- abort: option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
+ abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
[255]
$ hg --repositor a tip
- abort: option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
+ abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
[255]
$ hg -qR a tip
- abort: option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
+ abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
[255]
$ hg -qRa tip
- abort: option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
+ abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
[255]
Testing --cwd:
@@ -267,16 +265,13 @@ Testing --time:
$ hg --cwd a --time id
8580ff50825a tip
- time: real * (glob)
+ Time: real * (glob)
Testing --version:
$ hg --version -q
Mercurial Distributed SCM * (glob)
-hide outer repo
- $ hg init
-
Testing -h/--help:
$ hg -h
@@ -284,80 +279,77 @@ Testing -h/--help:
list of commands:
- add add the specified files on the next commit
- addremove add all new files, delete all missing files
- annotate show changeset information by line for each file
- archive create an unversioned archive of a repository revision
- backout reverse effect of earlier changeset
- bisect subdivision search of changesets
- bookmarks track a line of development with movable markers
- branch set or show the current branch name
- branches list repository named branches
- bundle create a changegroup file
- cat output the current or given revision of files
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- copy mark files as copied for the next commit
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- graft copy changes from other branches onto the current branch
- grep search for a pattern in specified files and revisions
- heads show current repository heads or show branch heads
- help show help for a given topic or a help overview
- identify identify the working copy or specified revision
- import import an ordered set of patches
- incoming show new changesets found in source
- init create a new repository in the given directory
- locate locate files matching specific patterns
- log show revision history of entire repository or files
- manifest output the current or given revision of the project manifest
- merge merge working directory with another revision
- outgoing show changesets not found in the destination
- parents show the parents of the working directory or revision
- paths show aliases for remote repositories
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- recover roll back an interrupted transaction
- remove remove the specified files on the next commit
- rename rename files; equivalent of copy + remove
- resolve redo merges or set/view the merge status of files
- revert restore files to their checkout state
- rollback roll back the last transaction (dangerous)
- root print the root (top) of the current working directory
- serve start stand-alone webserver
- showconfig show combined config settings from all hgrc files
- status show changed files in the working directory
- summary summarize working directory state
- tag add one or more tags for the current or given revision
- tags list repository tags
- tip show the tip revision
- unbundle apply one or more changegroup files
- update update working directory (or switch revisions)
- verify verify the integrity of the repository
- version output version and copyright information
+ add add the specified files on the next commit
+ addremove add all new files, delete all missing files
+ annotate show changeset information by line for each file
+ archive create an unversioned archive of a repository revision
+ backout reverse effect of earlier changeset
+ bisect subdivision search of changesets
+ bookmarks track a line of development with movable markers
+ branch set or show the current branch name
+ branches list repository named branches
+ bundle create a changegroup file
+ cat output the current or given revision of files
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ copy mark files as copied for the next commit
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ grep search for a pattern in specified files and revisions
+ heads show current repository heads or show branch heads
+ help show help for a given topic or a help overview
+ identify identify the working copy or specified revision
+ import import an ordered set of patches
+ incoming show new changesets found in source
+ init create a new repository in the given directory
+ locate locate files matching specific patterns
+ log show revision history of entire repository or files
+ manifest output the current or given revision of the project manifest
+ merge merge working directory with another revision
+ outgoing show changesets not found in the destination
+ parents show the parents of the working directory or revision
+ paths show aliases for remote repositories
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ recover roll back an interrupted transaction
+ remove remove the specified files on the next commit
+ rename rename files; equivalent of copy + remove
+ resolve redo merges or set/view the merge status of files
+ revert restore files to their checkout state
+ rollback roll back the last transaction (dangerous)
+ root print the root (top) of the current working directory
+ serve start stand-alone webserver
+ showconfig show combined config settings from all hgrc files
+ status show changed files in the working directory
+ summary summarize working directory state
+ tag add one or more tags for the current or given revision
+ tags list repository tags
+ tip show the tip revision
+ unbundle apply one or more changegroup files
+ update update working directory (or switch revisions)
+ verify verify the integrity of the repository
+ version output version and copyright information
additional help topics:
- config Configuration Files
- dates Date Formats
- diffs Diff Formats
- environment Environment Variables
- extensions Using Additional Features
- filesets Specifying File Sets
- glossary Glossary
- hgignore Syntax for Mercurial Ignore Files
- hgweb Configuring hgweb
- merge-tools Merge Tools
- multirevs Specifying Multiple Revisions
- patterns File Name Patterns
- phases Working with Phases
- revisions Specifying Single Revisions
- revsets Specifying Revision Sets
- subrepos Subrepositories
- templating Template Usage
- urls URL Paths
+ config Configuration Files
+ dates Date Formats
+ diffs Diff Formats
+ environment Environment Variables
+ extensions Using additional features
+ filesets Specifying File Sets
+ glossary Glossary
+ hgignore syntax for Mercurial ignore files
+ hgweb Configuring hgweb
+ merge-tools Merge Tools
+ multirevs Specifying Multiple Revisions
+ patterns File Name Patterns
+ revisions Specifying Single Revisions
+ revsets Specifying Revision Sets
+ subrepos Subrepositories
+ templating Template Usage
+ urls URL Paths
use "hg -v help" to show builtin aliases and global options
@@ -368,80 +360,77 @@ Testing -h/--help:
list of commands:
- add add the specified files on the next commit
- addremove add all new files, delete all missing files
- annotate show changeset information by line for each file
- archive create an unversioned archive of a repository revision
- backout reverse effect of earlier changeset
- bisect subdivision search of changesets
- bookmarks track a line of development with movable markers
- branch set or show the current branch name
- branches list repository named branches
- bundle create a changegroup file
- cat output the current or given revision of files
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- copy mark files as copied for the next commit
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- graft copy changes from other branches onto the current branch
- grep search for a pattern in specified files and revisions
- heads show current repository heads or show branch heads
- help show help for a given topic or a help overview
- identify identify the working copy or specified revision
- import import an ordered set of patches
- incoming show new changesets found in source
- init create a new repository in the given directory
- locate locate files matching specific patterns
- log show revision history of entire repository or files
- manifest output the current or given revision of the project manifest
- merge merge working directory with another revision
- outgoing show changesets not found in the destination
- parents show the parents of the working directory or revision
- paths show aliases for remote repositories
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- recover roll back an interrupted transaction
- remove remove the specified files on the next commit
- rename rename files; equivalent of copy + remove
- resolve redo merges or set/view the merge status of files
- revert restore files to their checkout state
- rollback roll back the last transaction (dangerous)
- root print the root (top) of the current working directory
- serve start stand-alone webserver
- showconfig show combined config settings from all hgrc files
- status show changed files in the working directory
- summary summarize working directory state
- tag add one or more tags for the current or given revision
- tags list repository tags
- tip show the tip revision
- unbundle apply one or more changegroup files
- update update working directory (or switch revisions)
- verify verify the integrity of the repository
- version output version and copyright information
+ add add the specified files on the next commit
+ addremove add all new files, delete all missing files
+ annotate show changeset information by line for each file
+ archive create an unversioned archive of a repository revision
+ backout reverse effect of earlier changeset
+ bisect subdivision search of changesets
+ bookmarks track a line of development with movable markers
+ branch set or show the current branch name
+ branches list repository named branches
+ bundle create a changegroup file
+ cat output the current or given revision of files
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ copy mark files as copied for the next commit
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ grep search for a pattern in specified files and revisions
+ heads show current repository heads or show branch heads
+ help show help for a given topic or a help overview
+ identify identify the working copy or specified revision
+ import import an ordered set of patches
+ incoming show new changesets found in source
+ init create a new repository in the given directory
+ locate locate files matching specific patterns
+ log show revision history of entire repository or files
+ manifest output the current or given revision of the project manifest
+ merge merge working directory with another revision
+ outgoing show changesets not found in the destination
+ parents show the parents of the working directory or revision
+ paths show aliases for remote repositories
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ recover roll back an interrupted transaction
+ remove remove the specified files on the next commit
+ rename rename files; equivalent of copy + remove
+ resolve redo merges or set/view the merge status of files
+ revert restore files to their checkout state
+ rollback roll back the last transaction (dangerous)
+ root print the root (top) of the current working directory
+ serve start stand-alone webserver
+ showconfig show combined config settings from all hgrc files
+ status show changed files in the working directory
+ summary summarize working directory state
+ tag add one or more tags for the current or given revision
+ tags list repository tags
+ tip show the tip revision
+ unbundle apply one or more changegroup files
+ update update working directory (or switch revisions)
+ verify verify the integrity of the repository
+ version output version and copyright information
additional help topics:
- config Configuration Files
- dates Date Formats
- diffs Diff Formats
- environment Environment Variables
- extensions Using Additional Features
- filesets Specifying File Sets
- glossary Glossary
- hgignore Syntax for Mercurial Ignore Files
- hgweb Configuring hgweb
- merge-tools Merge Tools
- multirevs Specifying Multiple Revisions
- patterns File Name Patterns
- phases Working with Phases
- revisions Specifying Single Revisions
- revsets Specifying Revision Sets
- subrepos Subrepositories
- templating Template Usage
- urls URL Paths
+ config Configuration Files
+ dates Date Formats
+ diffs Diff Formats
+ environment Environment Variables
+ extensions Using additional features
+ filesets Specifying File Sets
+ glossary Glossary
+ hgignore syntax for Mercurial ignore files
+ hgweb Configuring hgweb
+ merge-tools Merge Tools
+ multirevs Specifying Multiple Revisions
+ patterns File Name Patterns
+ revisions Specifying Single Revisions
+ revsets Specifying Revision Sets
+ subrepos Subrepositories
+ templating Template Usage
+ urls URL Paths
use "hg -v help" to show builtin aliases and global options
diff --git a/tests/test-glog.t b/tests/test-glog.t
index 25d3fcc..69be0d5 100644
--- a/tests/test-glog.t
+++ b/tests/test-glog.t
@@ -69,6 +69,8 @@ o / (1) collapse
o (0) root
+ $ "$TESTDIR/hghave" no-outer-repo || exit 80
+
$ commit()
> {
> rev=$1
@@ -81,29 +83,8 @@ o (0) root
> hg commit -Aqd "$rev 0" -m "($rev) $msg"
> }
- $ cat > printrevset.py <<EOF
- > from mercurial import extensions, revset, commands, cmdutil
- >
- > def uisetup(ui):
- > def printrevset(orig, ui, repo, *pats, **opts):
- > if opts.get('print_revset'):
- > expr = cmdutil.getgraphlogrevs(repo, pats, opts)[1]
- > if expr:
- > tree = revset.parse(expr)[0]
- > else:
- > tree = []
- > ui.write('%r\n' % (opts.get('rev', []),))
- > ui.write(revset.prettyformat(tree) + '\n')
- > return 0
- > return orig(ui, repo, *pats, **opts)
- > entry = extensions.wrapcommand(commands.table, 'log', printrevset)
- > entry[1].append(('', 'print-revset', False,
- > 'print generated revset and exit (DEPRECATED)'))
- > EOF
-
$ echo "[extensions]" >> $HGRCPATH
$ echo "graphlog=" >> $HGRCPATH
- $ echo "printrevset=`pwd`/printrevset.py" >> $HGRCPATH
$ hg init repo
$ cd repo
@@ -1133,11 +1114,8 @@ File glog per revset (only merges):
Empty revision range - display nothing:
$ hg glog -r 1..0
- $ cd ..
-
-#if no-outer-repo
-
From outer space:
+ $ cd ..
$ hg glog -l1 repo
@ changeset: 34:fea3ac5810e0
| tag: tip
@@ -1156,8 +1134,6 @@ From outer space:
|
$ hg glog -l1 repo/missing
-#endif
-
File log with revs != cset revs:
$ hg init flog
$ cd flog
@@ -1383,13 +1359,9 @@ File + limit + -ra:b, b < tip, (b - a) < limit:
Do not crash or produce strange graphs if history is buggy
- $ hg branch branch
- marked working directory as branch branch
- (branches are permanent and global, did you want a bookmark?)
$ commit 36 "buggy merge: identical parents" 35 35
$ hg glog -l5
- @ changeset: 36:08a19a744424
- | branch: branch
+ @ changeset: 36:95fa8febd08a
| tag: tip
| parent: 35:9159c3644c5e
| parent: 35:9159c3644c5e
@@ -1424,665 +1396,76 @@ Do not crash or produce strange graphs if history is buggy
Test log -G options
- $ testlog() {
- > hg log -G --print-revset "$@"
- > hg log --template 'nodetag {rev}\n' "$@" | grep nodetag \
- > | sed 's/.*nodetag/nodetag/' > log.nodes
- > hg log -G --template 'nodetag {rev}\n' "$@" | grep nodetag \
- > | sed 's/.*nodetag/nodetag/' > glog.nodes
- > diff -u log.nodes glog.nodes | grep '^[-+@ ]' || :
- > }
-
-glog always reorders nodes which explains the difference with log
-
- $ testlog -r 27 -r 25 -r 21 -r 34 -r 32 -r 31
- ['27', '25', '21', '34', '32', '31']
- []
- --- log.nodes * (glob)
- +++ glog.nodes * (glob)
- @@ -1,6 +1,6 @@
- -nodetag 27
- -nodetag 25
- -nodetag 21
- nodetag 34
- nodetag 32
- nodetag 31
- +nodetag 27
- +nodetag 25
- +nodetag 21
- $ testlog -u test -u not-a-user
- []
- (group
- (group
- (or
- (func
- ('symbol', 'user')
- ('string', 'test'))
- (func
- ('symbol', 'user')
- ('string', 'not-a-user')))))
- $ testlog -b not-a-branch
- abort: unknown revision 'not-a-branch'!
- abort: unknown revision 'not-a-branch'!
- abort: unknown revision 'not-a-branch'!
- $ testlog -b 35 -b 36 --only-branch branch
- []
- (group
- (group
- (or
- (or
- (func
- ('symbol', 'branch')
- ('string', 'default'))
- (func
- ('symbol', 'branch')
- ('string', 'branch')))
- (func
- ('symbol', 'branch')
- ('string', 'branch')))))
- $ testlog -k expand -k merge
- []
- (group
- (group
- (or
- (func
- ('symbol', 'keyword')
- ('string', 'expand'))
- (func
- ('symbol', 'keyword')
- ('string', 'merge')))))
- $ testlog --only-merges
- []
- (group
- (func
- ('symbol', 'merge')
- None))
- $ testlog --no-merges
- []
- (group
- (not
- (func
- ('symbol', 'merge')
- None)))
- $ testlog --date '2 0 to 4 0'
- []
- (group
- (func
- ('symbol', 'date')
- ('string', '2 0 to 4 0')))
- $ hg log -G -d 'brace ) in a date'
- abort: invalid date: 'brace ) in a date'
+ $ hg log -G -u 'something nice'
+ $ hg log -G -b 'something nice'
+ abort: unknown revision 'something nice'!
[255]
- $ testlog --prune 31 --prune 32
- []
- (group
- (group
- (and
- (not
- (group
- (or
- ('string', '31')
- (func
- ('symbol', 'ancestors')
- ('string', '31')))))
- (not
- (group
- (or
- ('string', '32')
- (func
- ('symbol', 'ancestors')
- ('string', '32'))))))))
-
-Dedicated repo for --follow and paths filtering. The g is crafted to
-have 2 filelog topological heads in a linear changeset graph.
-
- $ cd ..
- $ hg init follow
- $ cd follow
- $ testlog --follow
- []
- []
- $ echo a > a
- $ echo aa > aa
- $ echo f > f
- $ hg ci -Am "add a" a aa f
- $ hg cp a b
- $ hg cp f g
- $ hg ci -m "copy a b"
- $ mkdir dir
- $ hg mv b dir
- $ echo g >> g
- $ echo f >> f
- $ hg ci -m "mv b dir/b"
- $ hg mv a b
- $ hg cp -f f g
- $ echo a > d
- $ hg add d
- $ hg ci -m "mv a b; add d"
- $ hg mv dir/b e
- $ hg ci -m "mv dir/b e"
- $ hg glog --template '({rev}) {desc|firstline}\n'
- @ (4) mv dir/b e
- |
- o (3) mv a b; add d
- |
- o (2) mv b dir/b
- |
- o (1) copy a b
+ $ hg log -G -k 'something nice'
+ $ hg log -G --only-branch 'something nice'
+ abort: unknown revision 'something nice'!
+ [255]
+ $ hg log -G --include 'some file' --exclude 'another file'
+ $ hg log -G --follow --template 'nodetag {rev}\n' | grep nodetag | wc -l
+ \s*36 (re)
+ $ hg log -G --removed --template 'nodetag {rev}\n' | grep nodetag | wc -l
+ \s*0 (re)
+ $ hg log -G --only-merges --template 'nodetag {rev}\n' | grep nodetag | wc -l
+ \s*28 (re)
+ $ hg log -G --no-merges --template 'nodetag {rev}\n'
+ o nodetag 35
|
- o (0) add a
-
-
- $ testlog a
- []
- (group
- (group
- (func
- ('symbol', 'filelog')
- ('string', 'a'))))
- $ testlog a b
- []
- (group
- (group
- (or
- (func
- ('symbol', 'filelog')
- ('string', 'a'))
- (func
- ('symbol', 'filelog')
- ('string', 'b')))))
-
-Test falling back to slow path for non-existing files
-
- $ testlog a c
- []
- (group
- (func
- ('symbol', '_matchfiles')
- (list
- (list
- (list
- ('string', 'r:')
- ('string', 'd:relpath'))
- ('string', 'p:a'))
- ('string', 'p:c'))))
-
-Test multiple --include/--exclude/paths
-
- $ testlog --include a --include e --exclude b --exclude e a e
- []
- (group
- (func
- ('symbol', '_matchfiles')
- (list
- (list
- (list
- (list
- (list
- (list
- (list
- ('string', 'r:')
- ('string', 'd:relpath'))
- ('string', 'p:a'))
- ('string', 'p:e'))
- ('string', 'i:a'))
- ('string', 'i:e'))
- ('string', 'x:b'))
- ('string', 'x:e'))))
-
-Test glob expansion of pats
-
- $ expandglobs=`python -c "import mercurial.util; \
- > print mercurial.util.expandglobs and 'true' or 'false'"`
- $ if [ $expandglobs = "true" ]; then
- > testlog 'a*';
- > else
- > testlog a*;
- > fi;
- []
- (group
- (group
- (func
- ('symbol', 'filelog')
- ('string', 'aa'))))
-
-Test --follow on a directory
-
- $ testlog -f dir
- abort: cannot follow file not in parent revision: "dir"
- abort: cannot follow file not in parent revision: "dir"
- abort: cannot follow file not in parent revision: "dir"
-
-Test --follow on file not in parent revision
-
- $ testlog -f a
- abort: cannot follow file not in parent revision: "a"
- abort: cannot follow file not in parent revision: "a"
- abort: cannot follow file not in parent revision: "a"
-
-Test --follow and patterns
-
- $ testlog -f 'glob:*'
- abort: can only follow copies/renames for explicit filenames
- abort: can only follow copies/renames for explicit filenames
- abort: can only follow copies/renames for explicit filenames
-
-Test --follow on a single rename
-
- $ hg up -q 2
- $ testlog -f a
- []
- (group
- (group
- (func
- ('symbol', 'follow')
- ('string', 'a'))))
-
-Test --follow and multiple renames
-
- $ hg up -q tip
- $ testlog -f e
- []
- (group
- (group
- (func
- ('symbol', 'follow')
- ('string', 'e'))))
-
-Test --follow and multiple filelog heads
-
- $ hg up -q 2
- $ testlog -f g
- []
- (group
- (group
- (func
- ('symbol', 'follow')
- ('string', 'g'))))
- $ cat log.nodes
- nodetag 2
- nodetag 1
- nodetag 0
- $ hg up -q tip
- $ testlog -f g
- []
- (group
- (group
- (func
- ('symbol', 'follow')
- ('string', 'g'))))
- $ cat log.nodes
- nodetag 3
- nodetag 2
- nodetag 0
-
-Test --follow and multiple files
-
- $ testlog -f g e
- []
- (group
- (group
- (or
- (func
- ('symbol', 'follow')
- ('string', 'g'))
- (func
- ('symbol', 'follow')
- ('string', 'e')))))
- $ cat log.nodes
- nodetag 4
- nodetag 3
- nodetag 2
- nodetag 1
- nodetag 0
-
-Test --follow-first
-
- $ hg up -q 3
- $ echo ee > e
- $ hg ci -Am "add another e" e
- created new head
- $ hg merge --tool internal:other 4
- 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ echo merge > e
- $ hg ci -m "merge 5 and 4"
- $ testlog --follow-first
- []
- (group
- (func
- ('symbol', '_firstancestors')
- ('symbol', '6')))
-
-Cannot compare with log --follow-first FILE as it never worked
-
- $ hg log -G --print-revset --follow-first e
- []
- (group
- (group
- (func
- ('symbol', '_followfirst')
- ('string', 'e'))))
- $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n'
- @ 6 merge 5 and 4
- |\
- o | 5 add another e
- | |
-
-Test --copies
-
- $ hg log -G --copies --template "{rev} {desc|firstline} \
- > copies: {file_copies_switch}\n"
- @ 6 merge 5 and 4 copies:
+ o nodetag 34
|\
- | o 5 add another e copies:
- | |
- o | 4 mv dir/b e copies: e (dir/b)
+ | \
+ | |\
+ | | \
+ | | |\
+ | | | \
+ | | | |\
+ | | | | \
+ | | | | |\
+ +-+-+-+-----o nodetag 33
+ | | | | | |
+ +---------o nodetag 29
+ | | | | |
+ +-+-+---o nodetag 27
+ | | | |/
+ | | | o nodetag 3
+ | | |/
+ | | o nodetag 2
+ | |/
+ | o nodetag 1
|/
- o 3 mv a b; add d copies: b (a)g (f)
- |
- o 2 mv b dir/b copies: dir/b (b)
- |
- o 1 copy a b copies: b (a)g (f)
- |
- o 0 add a copies:
+ o nodetag 0
-Test "set:..." and parent revision
-
- $ hg up -q 4
- $ testlog "set:copied()"
- []
- (group
- (func
- ('symbol', '_matchfiles')
- (list
- (list
- ('string', 'r:')
- ('string', 'd:relpath'))
- ('string', 'p:set:copied()'))))
- $ testlog --include "set:copied()"
- []
- (group
- (func
- ('symbol', '_matchfiles')
- (list
- (list
- ('string', 'r:')
- ('string', 'd:relpath'))
- ('string', 'i:set:copied()'))))
- $ testlog -r "sort(file('set:copied()'), -rev)"
- ["sort(file('set:copied()'), -rev)"]
- []
-
-Test --removed
-
- $ testlog --removed
- []
- []
- $ testlog --removed a
- []
- (group
- (func
- ('symbol', '_matchfiles')
- (list
- (list
- ('string', 'r:')
- ('string', 'd:relpath'))
- ('string', 'p:a'))))
- $ testlog --removed --follow a
- abort: can only follow copies/renames for explicit filenames
- abort: can only follow copies/renames for explicit filenames
- abort: can only follow copies/renames for explicit filenames
-
-Test --patch and --stat with --follow and --follow-first
-
- $ hg up -q 3
- $ hg log -G --git --patch b
- o changeset: 1:216d4c92cf98
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: copy a b
- |
- | diff --git a/a b/b
- | copy from a
- | copy to b
- |
-
- $ hg log -G --git --stat b
- o changeset: 1:216d4c92cf98
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: copy a b
- |
- | a | 0
- | 1 files changed, 0 insertions(+), 0 deletions(-)
- |
-
- $ hg log -G --git --patch --follow b
- o changeset: 1:216d4c92cf98
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: copy a b
- |
- | diff --git a/a b/b
- | copy from a
- | copy to b
+ $ hg log -G -d 'brace ) in a date'
+ abort: invalid date: 'brace ) in a date'
+ [255]
+ $ hg log -G -P 32 --template '{rev}\n'
+ @ 36
|
- o changeset: 0:f8035bb17114
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add a
-
- diff --git a/a b/a
- new file mode 100644
- --- /dev/null
- +++ b/a
- @@ -0,0 +1,1 @@
- +a
-
-
- $ hg log -G --git --stat --follow b
- o changeset: 1:216d4c92cf98
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: copy a b
+ o 35
|
- | a | 0
- | 1 files changed, 0 insertions(+), 0 deletions(-)
+ o 34
|
- o changeset: 0:f8035bb17114
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add a
-
- a | 1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-
- $ hg up -q 6
- $ hg log -G --git --patch --follow-first e
- @ changeset: 6:fc281d8ff18d
- |\ tag: tip
- | | parent: 5:99b31f1c2782
- | | parent: 4:17d952250a9d
- | | user: test
- | | date: Thu Jan 01 00:00:00 1970 +0000
- | | summary: merge 5 and 4
+ | o 33
| |
- | | diff --git a/e b/e
- | | --- a/e
- | | +++ b/e
- | | @@ -1,1 +1,1 @@
- | | -ee
- | | +merge
- | |
- o | changeset: 5:99b31f1c2782
- | | parent: 3:5918b8d165d1
- | | user: test
- | | date: Thu Jan 01 00:00:00 1970 +0000
- | | summary: add another e
- | |
- | | diff --git a/e b/e
- | | new file mode 100644
- | | --- /dev/null
- | | +++ b/e
- | | @@ -0,0 +1,1 @@
- | | +ee
- | |
-
-Test old-style --rev
-
- $ hg tag 'foo-bar'
- $ testlog -r 'foo-bar'
- ['foo-bar']
- []
+ $ hg log -G --follow a
+ abort: -G/--graph option is incompatible with --follow with file argument
+ [255]
-Test --follow and forward --rev
+Test multiple revision specifications are correctly handled
- $ hg up -q 6
- $ echo g > g
- $ hg ci -Am 'add g' g
- created new head
- $ hg up -q 2
- $ hg log -G --template "{rev} {desc|firstline}\n"
- o 8 add g
+ $ hg log -G -r 27 -r 25 -r 21 -r 34 -r 32 -r 31 --template '{rev}\n'
+ o 34
|
- | o 7 Added tag foo-bar for changeset fc281d8ff18d
- |/
- o 6 merge 5 and 4
+ o 32
|\
- | o 5 add another e
- | |
- o | 4 mv dir/b e
+ | o 31
+ | |\
+ o | | 27
+ |/ /
+ | o 25
|/
- o 3 mv a b; add d
- |
- @ 2 mv b dir/b
- |
- o 1 copy a b
- |
- o 0 add a
-
- $ testlog --follow -r6 -r8 -r5 -r7 -r4
- ['6', '8', '5', '7', '4']
- (group
- (func
- ('symbol', 'descendants')
- ('symbol', '6')))
- --- log.nodes * (glob)
- +++ glog.nodes * (glob)
- @@ -1,3 +1,3 @@
- -nodetag 6
- nodetag 8
- nodetag 7
- +nodetag 6
-
-Test --follow-first and forward --rev
-
- $ testlog --follow-first -r6 -r8 -r5 -r7 -r4
- ['6', '8', '5', '7', '4']
- (group
- (func
- ('symbol', '_firstdescendants')
- ('symbol', '6')))
- --- log.nodes * (glob)
- +++ glog.nodes * (glob)
- @@ -1,3 +1,3 @@
- -nodetag 6
- nodetag 8
- nodetag 7
- +nodetag 6
-
-Test --follow and backward --rev
-
- $ testlog --follow -r6 -r5 -r7 -r8 -r4
- ['6', '5', '7', '8', '4']
- (group
- (func
- ('symbol', 'ancestors')
- ('symbol', '6')))
-
-Test --follow-first and backward --rev
-
- $ testlog --follow-first -r6 -r5 -r7 -r8 -r4
- ['6', '5', '7', '8', '4']
- (group
- (func
- ('symbol', '_firstancestors')
- ('symbol', '6')))
-
-Test subdir
-
- $ hg up -q 3
- $ cd dir
- $ testlog .
- []
- (group
- (func
- ('symbol', '_matchfiles')
- (list
- (list
- ('string', 'r:')
- ('string', 'd:relpath'))
- ('string', 'p:.'))))
- $ testlog ../b
- []
- (group
- (group
- (func
- ('symbol', 'filelog')
- ('string', '../b'))))
- $ testlog -f ../b
- []
- (group
- (group
- (func
- ('symbol', 'follow')
- ('string', 'b'))))
- $ cd ..
-
-Test --hidden
-
- $ cat > $HGTMP/testhidden.py << EOF
- > def reposetup(ui, repo):
- > for line in repo.opener('hidden'):
- > ctx = repo[line.strip()]
- > repo.hiddenrevs.add(ctx.rev())
- > EOF
- $ echo '[extensions]' >> .hg/hgrc
- $ echo "hidden=$HGTMP/testhidden.py" >> .hg/hgrc
- $ hg id --debug -i -r 0 > .hg/hidden
- $ testlog
- []
- []
- $ testlog --hidden
- []
- []
-
-A template without trailing newline should do something sane
-
- $ hg glog -r ::2 --template '{rev} {desc}'
- o 2 mv b dir/b
- |
- o 1 copy a b
- |
-
-Extra newlines must be preserved
-
- $ hg glog -r ::2 --template '\n{rev} {desc}\n\n'
- o
- | 2 mv b dir/b
- |
- o
- | 1 copy a b
- |
-
-The almost-empty template should do something sane too ...
-
- $ hg glog -r ::2 --template '\n'
- o
- |
- o
- |
-
- $ cd ..
+ o 21
+ |\
diff --git a/tests/test-gpg.t b/tests/test-gpg.t
index 5ec6fa0..6549de3 100644
--- a/tests/test-gpg.t
+++ b/tests/test-gpg.t
@@ -6,7 +6,7 @@ Test the GPG extension
> gpg=
>
> [gpg]
- > cmd=gpg --no-permission-warning --no-secmem-warning --no-auto-check-trustdb --homedir "$TESTDIR/gpg"
+ > cmd=gpg --no-permission-warning --no-secmem-warning --homedir $TESTDIR/gpg
> EOF
$ hg init r
$ cd r
@@ -17,7 +17,7 @@ Test the GPG extension
$ hg sigs
$ hg sign 0
- signing 0:e63c23eaa88a
+ Signing 0:e63c23eaa88a
$ hg sigs
hgtest 0:e63c23eaa88ae77967edcf4ea194d31167c478b0
@@ -25,10 +25,3 @@ Test the GPG extension
$ hg sigcheck 0
e63c23eaa88a is signed by:
hgtest
-
-verify that this test has not modified the trustdb.gpg file back in
-the main hg working dir
- $ "$TESTDIR/md5sum.py" "$TESTDIR/gpg/trustdb.gpg"
- f6b9c78c65fa9536e7512bb2ceb338ae */gpg/trustdb.gpg (glob)
-
- $ cd ..
diff --git a/tests/test-graft.t b/tests/test-graft.t
deleted file mode 100644
index 6ec5aec..0000000
--- a/tests/test-graft.t
+++ /dev/null
@@ -1,535 +0,0 @@
-Create a repo with some stuff in it:
-
- $ hg init a
- $ cd a
- $ echo a > a
- $ echo a > d
- $ echo a > e
- $ hg ci -qAm0
- $ echo b > a
- $ hg ci -m1 -u bar
- $ hg mv a b
- $ hg ci -m2
- $ hg cp b c
- $ hg ci -m3 -u baz
- $ echo b > d
- $ echo f > e
- $ hg ci -m4
- $ hg up -q 3
- $ echo b > e
- $ hg branch -q stable
- $ hg ci -m5
- $ hg merge -q default --tool internal:local
- $ hg branch -q default
- $ hg ci -m6
- $ hg phase --public 3
- $ hg phase --force --secret 6
-
- $ hg --config extensions.graphlog= log -G --template '{author}@{rev}.{phase}: {desc}\n'
- @ test@6.secret: 6
- |\
- | o test@5.draft: 5
- | |
- o | test@4.draft: 4
- |/
- o baz@3.public: 3
- |
- o test@2.public: 2
- |
- o bar@1.public: 1
- |
- o test@0.public: 0
-
-
-Need to specify a rev:
-
- $ hg graft
- abort: no revisions specified
- [255]
-
-Can't graft ancestor:
-
- $ hg graft 1 2
- skipping ancestor revision 1
- skipping ancestor revision 2
- [255]
-
-Specify revisions with -r:
-
- $ hg graft -r 1 -r 2
- skipping ancestor revision 1
- skipping ancestor revision 2
- [255]
-
- $ hg graft -r 1 2
- skipping ancestor revision 2
- skipping ancestor revision 1
- [255]
-
-Can't graft with dirty wd:
-
- $ hg up -q 0
- $ echo foo > a
- $ hg graft 1
- abort: outstanding uncommitted changes
- [255]
- $ hg revert a
-
-Graft a rename:
-
- $ hg graft 2 -u foo
- grafting revision 2
- merging a and b to b
- $ hg export tip --git
- # HG changeset patch
- # User foo
- # Date 0 0
- # Node ID ef0ef43d49e79e81ddafdc7997401ba0041efc82
- # Parent 68795b066622ca79a25816a662041d8f78f3cd9e
- 2
-
- diff --git a/a b/b
- rename from a
- rename to b
-
-Look for extra:source
-
- $ hg log --debug -r tip
- changeset: 7:ef0ef43d49e79e81ddafdc7997401ba0041efc82
- tag: tip
- phase: draft
- parent: 0:68795b066622ca79a25816a662041d8f78f3cd9e
- parent: -1:0000000000000000000000000000000000000000
- manifest: 7:e59b6b228f9cbf9903d5e9abf996e083a1f533eb
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- files+: b
- files-: a
- extra: branch=default
- extra: source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4
- description:
- 2
-
-
-
-Graft out of order, skipping a merge and a duplicate
-
- $ hg graft 1 5 4 3 'merge()' 2 -n
- skipping ungraftable merge revision 6
- skipping already grafted revision 2
- grafting revision 1
- grafting revision 5
- grafting revision 4
- grafting revision 3
-
- $ hg graft 1 5 4 3 'merge()' 2 --debug
- skipping ungraftable merge revision 6
- scanning for duplicate grafts
- skipping already grafted revision 2
- grafting revision 1
- searching for copies back to rev 1
- unmatched files in local:
- b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
- b -> a *
- checking for directory renames
- resolving manifests
- overwrite: False, partial: False
- ancestor: 68795b066622, local: ef0ef43d49e7+, remote: 5d205f8b35b6
- b: local copied/moved to a -> m
- preserving b for resolve of b
- updating: b 1/1 files (100.00%)
- picked tool 'internal:merge' for b (binary False symlink False)
- merging b and a to b
- my b@ef0ef43d49e7+ other a@5d205f8b35b6 ancestor a@68795b066622
- premerge successful
- b
- grafting revision 5
- searching for copies back to rev 1
- resolving manifests
- overwrite: False, partial: False
- ancestor: 4c60f11aa304, local: 6b9e5368ca4e+, remote: 97f8bfe72746
- e: remote is newer -> g
- updating: e 1/1 files (100.00%)
- getting e
- e
- grafting revision 4
- searching for copies back to rev 1
- resolving manifests
- overwrite: False, partial: False
- ancestor: 4c60f11aa304, local: 1905859650ec+, remote: 9c233e8e184d
- e: versions differ -> m
- d: remote is newer -> g
- preserving e for resolve of e
- updating: d 1/2 files (50.00%)
- getting d
- updating: e 2/2 files (100.00%)
- picked tool 'internal:merge' for e (binary False symlink False)
- merging e
- my e@1905859650ec+ other e@9c233e8e184d ancestor e@68795b066622
- warning: conflicts during merge.
- merging e incomplete! (edit conflicts, then use 'hg resolve --mark')
- abort: unresolved conflicts, can't continue
- (use hg resolve and hg graft --continue)
- [255]
-
-Continue without resolve should fail:
-
- $ hg graft -c
- grafting revision 4
- abort: unresolved merge conflicts (see hg help resolve)
- [255]
-
-Fix up:
-
- $ echo b > e
- $ hg resolve -m e
-
-Continue with a revision should fail:
-
- $ hg graft -c 6
- abort: can't specify --continue and revisions
- [255]
-
- $ hg graft -c -r 6
- abort: can't specify --continue and revisions
- [255]
-
-Continue for real, clobber usernames
-
- $ hg graft -c -U
- grafting revision 4
- grafting revision 3
-
-Compare with original:
-
- $ hg diff -r 6
- $ hg status --rev 0:. -C
- M d
- M e
- A b
- a
- A c
- a
- R a
-
-View graph:
-
- $ hg --config extensions.graphlog= log -G --template '{author}@{rev}.{phase}: {desc}\n'
- @ test@11.draft: 3
- |
- o test@10.draft: 4
- |
- o test@9.draft: 5
- |
- o bar@8.draft: 1
- |
- o foo@7.draft: 2
- |
- | o test@6.secret: 6
- | |\
- | | o test@5.draft: 5
- | | |
- | o | test@4.draft: 4
- | |/
- | o baz@3.public: 3
- | |
- | o test@2.public: 2
- | |
- | o bar@1.public: 1
- |/
- o test@0.public: 0
-
-Graft again onto another branch should preserve the original source
- $ hg up -q 0
- $ echo 'g'>g
- $ hg add g
- $ hg ci -m 7
- created new head
- $ hg graft 7
- grafting revision 7
-
- $ hg log -r 7 --template '{rev}:{node}\n'
- 7:ef0ef43d49e79e81ddafdc7997401ba0041efc82
- $ hg log -r 2 --template '{rev}:{node}\n'
- 2:5c095ad7e90f871700f02dd1fa5012cb4498a2d4
-
- $ hg log --debug -r tip
- changeset: 13:9db0f28fd3747e92c57d015f53b5593aeec53c2d
- tag: tip
- phase: draft
- parent: 12:b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f
- parent: -1:0000000000000000000000000000000000000000
- manifest: 13:dc313617b8c32457c0d589e0dbbedfe71f3cd637
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- files+: b
- files-: a
- extra: branch=default
- extra: source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4
- description:
- 2
-
-
-Disallow grafting an already grafted cset onto its original branch
- $ hg up -q 6
- $ hg graft 7
- skipping already grafted revision 7 (was grafted from 2)
- [255]
-
-Disallow grafting already grafted csets with the same origin onto each other
- $ hg up -q 13
- $ hg graft 2
- skipping already grafted revision 2
- [255]
- $ hg graft 7
- skipping already grafted revision 7 (same origin 2)
- [255]
-
- $ hg up -q 7
- $ hg graft 2
- skipping already grafted revision 2
- [255]
- $ hg graft tip
- skipping already grafted revision 13 (same origin 2)
- [255]
-
-Graft with --log
-
- $ hg up -Cq 1
- $ hg graft 3 --log -u foo
- grafting revision 3
- warning: can't find ancestor for 'c' copied from 'b'!
- $ hg log --template '{rev} {parents} {desc}\n' -r tip
- 14 1:5d205f8b35b6 3
- (grafted from 4c60f11aa304a54ae1c199feb94e7fc771e51ed8)
-
-Resolve conflicted graft
- $ hg up -q 0
- $ echo b > a
- $ hg ci -m 8
- created new head
- $ echo a > a
- $ hg ci -m 9
- $ hg graft 1 --tool internal:fail
- grafting revision 1
- abort: unresolved conflicts, can't continue
- (use hg resolve and hg graft --continue)
- [255]
- $ hg resolve --all
- merging a
- $ hg graft -c
- grafting revision 1
- $ hg export tip --git
- # HG changeset patch
- # User bar
- # Date 0 0
- # Node ID 64ecd9071ce83c6e62f538d8ce7709d53f32ebf7
- # Parent 4bdb9a9d0b84ffee1d30f0dfc7744cade17aa19c
- 1
-
- diff --git a/a b/a
- --- a/a
- +++ b/a
- @@ -1,1 +1,1 @@
- -a
- +b
-
-Resolve conflicted graft with rename
- $ echo c > a
- $ hg ci -m 10
- $ hg graft 2 --tool internal:fail
- grafting revision 2
- abort: unresolved conflicts, can't continue
- (use hg resolve and hg graft --continue)
- [255]
- $ hg resolve --all
- merging a and b to b
- $ hg graft -c
- grafting revision 2
- $ hg export tip --git
- # HG changeset patch
- # User test
- # Date 0 0
- # Node ID 2e80e1351d6ed50302fe1e05f8bd1d4d412b6e11
- # Parent e5a51ae854a8bbaaf25cc5c6a57ff46042dadbb4
- 2
-
- diff --git a/a b/b
- rename from a
- rename to b
-
-Test simple origin(), with and without args
- $ hg log -r 'origin()'
- changeset: 1:5d205f8b35b6
- user: bar
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 1
-
- changeset: 2:5c095ad7e90f
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 3:4c60f11aa304
- user: baz
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 3
-
- changeset: 4:9c233e8e184d
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 4
-
- changeset: 5:97f8bfe72746
- branch: stable
- parent: 3:4c60f11aa304
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 5
-
- $ hg log -r 'origin(7)'
- changeset: 2:5c095ad7e90f
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
-Now transplant a graft to test following through copies
- $ hg up -q 0
- $ hg branch -q dev
- $ hg ci -qm "dev branch"
- $ hg --config extensions.transplant= transplant -q 7
- $ hg log -r 'origin(.)'
- changeset: 2:5c095ad7e90f
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
-Test simple destination
- $ hg log -r 'destination()'
- changeset: 7:ef0ef43d49e7
- parent: 0:68795b066622
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 8:6b9e5368ca4e
- user: bar
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 1
-
- changeset: 9:1905859650ec
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 5
-
- changeset: 10:52dc0b4c6907
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 4
-
- changeset: 11:882b35362a6b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 3
-
- changeset: 13:9db0f28fd374
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 14:f64defefacee
- parent: 1:5d205f8b35b6
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 3
-
- changeset: 17:64ecd9071ce8
- user: bar
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 1
-
- changeset: 19:2e80e1351d6e
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 21:7e61b508e709
- branch: dev
- tag: tip
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- $ hg log -r 'destination(2)'
- changeset: 7:ef0ef43d49e7
- parent: 0:68795b066622
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 13:9db0f28fd374
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 19:2e80e1351d6e
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 21:7e61b508e709
- branch: dev
- tag: tip
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
-Transplants of grafts can find a destination...
- $ hg log -r 'destination(7)'
- changeset: 21:7e61b508e709
- branch: dev
- tag: tip
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
-... grafts of grafts unfortunately can't
- $ hg graft -q 13
- $ hg log -r 'destination(13)'
-All copies of a cset
- $ hg log -r 'origin(13) or destination(origin(13))'
- changeset: 2:5c095ad7e90f
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 7:ef0ef43d49e7
- parent: 0:68795b066622
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 13:9db0f28fd374
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 19:2e80e1351d6e
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 21:7e61b508e709
- branch: dev
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
- changeset: 22:1313d0a825e2
- branch: dev
- tag: tip
- user: foo
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 2
-
diff --git a/tests/test-grep.t b/tests/test-grep.t
index 0b4c3f2..80f94a8 100644
--- a/tests/test-grep.t
+++ b/tests/test-grep.t
@@ -59,9 +59,8 @@ other
follow
- $ hg grep --traceback -f 'import\n\Z' port2
+ $ hg grep --traceback -f 'import$' port2
port:0:import
-
$ echo deport >> port2
$ hg commit -m 5 -u eggs -d '6 0'
$ hg grep -f --all -nu port port2
@@ -107,8 +106,12 @@ match in last "line" without newline
$ python -c 'fp = open("noeol", "wb"); fp.write("no infinite loop"); fp.close();'
$ hg ci -Amnoeol
adding noeol
+
+last character omitted in output to avoid infinite loop
+
$ hg grep loop
- noeol:4:no infinite loop
+ noeol:4:no infinite loo
+
$ cd ..
@@ -163,14 +166,10 @@ of just using revision numbers.
color:3:-:red
color:1:+:red
- $ cd ..
-
$ hg init a
$ cd a
- $ cp "$TESTDIR/binfile.bin" .
+ $ cp $TESTDIR/binfile.bin .
$ hg add binfile.bin
$ hg ci -m 'add binfile.bin'
$ hg grep "MaCam" --all
binfile.bin:0:+: Binary file matches
-
- $ cd ..
diff --git a/tests/test-hardlinks.t b/tests/test-hardlinks.t
index 65978e1..5f00a61 100644
--- a/tests/test-hardlinks.t
+++ b/tests/test-hardlinks.t
@@ -1,11 +1,8 @@
- $ "$TESTDIR/hghave" hardlink || exit 80
-
$ cat > nlinks.py <<EOF
- > import sys
- > from mercurial import util
+ > import os, sys
> for f in sorted(sys.stdin.readlines()):
> f = f[:-1]
- > print util.nlinks(f), f
+ > print os.lstat(f).st_nlink, f
> EOF
$ nlinksdir()
@@ -48,16 +45,13 @@ Prepare repo r1:
1 r1/.hg/store/data/d1/f2.i
1 r1/.hg/store/data/f1.i
1 r1/.hg/store/fncache
- 1 r1/.hg/store/phaseroots
1 r1/.hg/store/undo
- 1 r1/.hg/store/undo.phaseroots
Create hardlinked clone r2:
$ hg clone -U --debug r1 r2
linked 7 files
- listing keys for "bookmarks"
Create non-hardlinked clone r3:
@@ -79,9 +73,7 @@ Repos r1 and r2 should now contain hardlinked files:
2 r1/.hg/store/data/d1/f2.i
2 r1/.hg/store/data/f1.i
2 r1/.hg/store/fncache
- 1 r1/.hg/store/phaseroots
1 r1/.hg/store/undo
- 1 r1/.hg/store/undo.phaseroots
$ nlinksdir r2/.hg/store
2 r2/.hg/store/00changelog.i
@@ -98,18 +90,13 @@ Repo r3 should not be hardlinked:
1 r3/.hg/store/data/d1/f2.i
1 r3/.hg/store/data/f1.i
1 r3/.hg/store/fncache
- 1 r3/.hg/store/phaseroots
1 r3/.hg/store/undo
- 1 r3/.hg/store/undo.phaseroots
Create a non-inlined filelog in r3:
$ cd r3/d1
- >>> f = open('data1', 'wb')
- >>> for x in range(10000):
- ... f.write("%s\n" % str(x))
- >>> f.close()
+ $ python -c 'for x in range(10000): print x' >> data1
$ for j in 0 1 2 3 4 5 6 7 8 9; do
> cat data1 >> f2
> hg commit -m$j
@@ -123,9 +110,7 @@ Create a non-inlined filelog in r3:
1 r3/.hg/store/data/d1/f2.i
1 r3/.hg/store/data/f1.i
1 r3/.hg/store/fncache
- 1 r3/.hg/store/phaseroots
1 r3/.hg/store/undo
- 1 r3/.hg/store/undo.phaseroots
Push to repo r1 should break up most hardlinks in r2:
@@ -138,7 +123,7 @@ Push to repo r1 should break up most hardlinks in r2:
$ cd r3
$ hg push
- pushing to $TESTTMP/r1 (glob)
+ pushing to $TESTTMP/r1
searching for changes
adding changesets
adding manifests
@@ -208,9 +193,7 @@ r4 has hardlinks in the working dir (not just inside .hg):
2 r4/.hg/store/data/d1/f2.i
2 r4/.hg/store/data/f1.i
2 r4/.hg/store/fncache
- 2 r4/.hg/store/phaseroots
2 r4/.hg/store/undo
- 2 r4/.hg/store/undo.phaseroots
2 r4/.hg/undo.bookmarks
2 r4/.hg/undo.branch
2 r4/.hg/undo.desc
@@ -239,9 +222,7 @@ Update back to revision 11 in r4 should break hardlink of file f1:
2 r4/.hg/store/data/d1/f2.i
2 r4/.hg/store/data/f1.i
2 r4/.hg/store/fncache
- 2 r4/.hg/store/phaseroots
2 r4/.hg/store/undo
- 2 r4/.hg/store/undo.phaseroots
2 r4/.hg/undo.bookmarks
2 r4/.hg/undo.branch
2 r4/.hg/undo.desc
@@ -349,4 +330,3 @@ Test tags hardlinking:
$ cat ../b/.hg/localtags
4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c lfoo
- $ cd ..
diff --git a/tests/test-help.t b/tests/test-help.t
index fe1eb25..39f51d5 100644
--- a/tests/test-help.t
+++ b/tests/test-help.t
@@ -5,252 +5,262 @@ Short help:
basic commands:
- add add the specified files on the next commit
- annotate show changeset information by line for each file
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- init create a new repository in the given directory
- log show revision history of entire repository or files
- merge merge working directory with another revision
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- remove remove the specified files on the next commit
- serve start stand-alone webserver
- status show changed files in the working directory
- summary summarize working directory state
- update update working directory (or switch revisions)
+ add add the specified files on the next commit
+ annotate show changeset information by line for each file
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ init create a new repository in the given directory
+ log show revision history of entire repository or files
+ merge merge working directory with another revision
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ remove remove the specified files on the next commit
+ serve start stand-alone webserver
+ status show changed files in the working directory
+ summary summarize working directory state
+ update update working directory (or switch revisions)
use "hg help" for the full list of commands or "hg -v" for details
$ hg -q
- add add the specified files on the next commit
- annotate show changeset information by line for each file
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- init create a new repository in the given directory
- log show revision history of entire repository or files
- merge merge working directory with another revision
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- remove remove the specified files on the next commit
- serve start stand-alone webserver
- status show changed files in the working directory
- summary summarize working directory state
- update update working directory (or switch revisions)
+ add add the specified files on the next commit
+ annotate show changeset information by line for each file
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ init create a new repository in the given directory
+ log show revision history of entire repository or files
+ merge merge working directory with another revision
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ remove remove the specified files on the next commit
+ serve start stand-alone webserver
+ status show changed files in the working directory
+ summary summarize working directory state
+ update update working directory (or switch revisions)
$ hg help
Mercurial Distributed SCM
list of commands:
- add add the specified files on the next commit
- addremove add all new files, delete all missing files
- annotate show changeset information by line for each file
- archive create an unversioned archive of a repository revision
- backout reverse effect of earlier changeset
- bisect subdivision search of changesets
- bookmarks track a line of development with movable markers
- branch set or show the current branch name
- branches list repository named branches
- bundle create a changegroup file
- cat output the current or given revision of files
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- copy mark files as copied for the next commit
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- graft copy changes from other branches onto the current branch
- grep search for a pattern in specified files and revisions
- heads show current repository heads or show branch heads
- help show help for a given topic or a help overview
- identify identify the working copy or specified revision
- import import an ordered set of patches
- incoming show new changesets found in source
- init create a new repository in the given directory
- locate locate files matching specific patterns
- log show revision history of entire repository or files
- manifest output the current or given revision of the project manifest
- merge merge working directory with another revision
- outgoing show changesets not found in the destination
- parents show the parents of the working directory or revision
- paths show aliases for remote repositories
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- recover roll back an interrupted transaction
- remove remove the specified files on the next commit
- rename rename files; equivalent of copy + remove
- resolve redo merges or set/view the merge status of files
- revert restore files to their checkout state
- rollback roll back the last transaction (dangerous)
- root print the root (top) of the current working directory
- serve start stand-alone webserver
- showconfig show combined config settings from all hgrc files
- status show changed files in the working directory
- summary summarize working directory state
- tag add one or more tags for the current or given revision
- tags list repository tags
- tip show the tip revision
- unbundle apply one or more changegroup files
- update update working directory (or switch revisions)
- verify verify the integrity of the repository
- version output version and copyright information
+ add add the specified files on the next commit
+ addremove add all new files, delete all missing files
+ annotate show changeset information by line for each file
+ archive create an unversioned archive of a repository revision
+ backout reverse effect of earlier changeset
+ bisect subdivision search of changesets
+ bookmarks track a line of development with movable markers
+ branch set or show the current branch name
+ branches list repository named branches
+ bundle create a changegroup file
+ cat output the current or given revision of files
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ copy mark files as copied for the next commit
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ grep search for a pattern in specified files and revisions
+ heads show current repository heads or show branch heads
+ help show help for a given topic or a help overview
+ identify identify the working copy or specified revision
+ import import an ordered set of patches
+ incoming show new changesets found in source
+ init create a new repository in the given directory
+ locate locate files matching specific patterns
+ log show revision history of entire repository or files
+ manifest output the current or given revision of the project manifest
+ merge merge working directory with another revision
+ outgoing show changesets not found in the destination
+ parents show the parents of the working directory or revision
+ paths show aliases for remote repositories
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ recover roll back an interrupted transaction
+ remove remove the specified files on the next commit
+ rename rename files; equivalent of copy + remove
+ resolve redo merges or set/view the merge status of files
+ revert restore files to their checkout state
+ rollback roll back the last transaction (dangerous)
+ root print the root (top) of the current working directory
+ serve start stand-alone webserver
+ showconfig show combined config settings from all hgrc files
+ status show changed files in the working directory
+ summary summarize working directory state
+ tag add one or more tags for the current or given revision
+ tags list repository tags
+ tip show the tip revision
+ unbundle apply one or more changegroup files
+ update update working directory (or switch revisions)
+ verify verify the integrity of the repository
+ version output version and copyright information
additional help topics:
- config Configuration Files
- dates Date Formats
- diffs Diff Formats
- environment Environment Variables
- extensions Using Additional Features
- filesets Specifying File Sets
- glossary Glossary
- hgignore Syntax for Mercurial Ignore Files
- hgweb Configuring hgweb
- merge-tools Merge Tools
- multirevs Specifying Multiple Revisions
- patterns File Name Patterns
- phases Working with Phases
- revisions Specifying Single Revisions
- revsets Specifying Revision Sets
- subrepos Subrepositories
- templating Template Usage
- urls URL Paths
+ config Configuration Files
+ dates Date Formats
+ diffs Diff Formats
+ environment Environment Variables
+ extensions Using additional features
+ filesets Specifying File Sets
+ glossary Glossary
+ hgignore syntax for Mercurial ignore files
+ hgweb Configuring hgweb
+ merge-tools Merge Tools
+ multirevs Specifying Multiple Revisions
+ patterns File Name Patterns
+ revisions Specifying Single Revisions
+ revsets Specifying Revision Sets
+ subrepos Subrepositories
+ templating Template Usage
+ urls URL Paths
use "hg -v help" to show builtin aliases and global options
$ hg -q help
- add add the specified files on the next commit
- addremove add all new files, delete all missing files
- annotate show changeset information by line for each file
- archive create an unversioned archive of a repository revision
- backout reverse effect of earlier changeset
- bisect subdivision search of changesets
- bookmarks track a line of development with movable markers
- branch set or show the current branch name
- branches list repository named branches
- bundle create a changegroup file
- cat output the current or given revision of files
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- copy mark files as copied for the next commit
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- graft copy changes from other branches onto the current branch
- grep search for a pattern in specified files and revisions
- heads show current repository heads or show branch heads
- help show help for a given topic or a help overview
- identify identify the working copy or specified revision
- import import an ordered set of patches
- incoming show new changesets found in source
- init create a new repository in the given directory
- locate locate files matching specific patterns
- log show revision history of entire repository or files
- manifest output the current or given revision of the project manifest
- merge merge working directory with another revision
- outgoing show changesets not found in the destination
- parents show the parents of the working directory or revision
- paths show aliases for remote repositories
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- recover roll back an interrupted transaction
- remove remove the specified files on the next commit
- rename rename files; equivalent of copy + remove
- resolve redo merges or set/view the merge status of files
- revert restore files to their checkout state
- rollback roll back the last transaction (dangerous)
- root print the root (top) of the current working directory
- serve start stand-alone webserver
- showconfig show combined config settings from all hgrc files
- status show changed files in the working directory
- summary summarize working directory state
- tag add one or more tags for the current or given revision
- tags list repository tags
- tip show the tip revision
- unbundle apply one or more changegroup files
- update update working directory (or switch revisions)
- verify verify the integrity of the repository
- version output version and copyright information
+ add add the specified files on the next commit
+ addremove add all new files, delete all missing files
+ annotate show changeset information by line for each file
+ archive create an unversioned archive of a repository revision
+ backout reverse effect of earlier changeset
+ bisect subdivision search of changesets
+ bookmarks track a line of development with movable markers
+ branch set or show the current branch name
+ branches list repository named branches
+ bundle create a changegroup file
+ cat output the current or given revision of files
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ copy mark files as copied for the next commit
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ grep search for a pattern in specified files and revisions
+ heads show current repository heads or show branch heads
+ help show help for a given topic or a help overview
+ identify identify the working copy or specified revision
+ import import an ordered set of patches
+ incoming show new changesets found in source
+ init create a new repository in the given directory
+ locate locate files matching specific patterns
+ log show revision history of entire repository or files
+ manifest output the current or given revision of the project manifest
+ merge merge working directory with another revision
+ outgoing show changesets not found in the destination
+ parents show the parents of the working directory or revision
+ paths show aliases for remote repositories
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ recover roll back an interrupted transaction
+ remove remove the specified files on the next commit
+ rename rename files; equivalent of copy + remove
+ resolve redo merges or set/view the merge status of files
+ revert restore files to their checkout state
+ rollback roll back the last transaction (dangerous)
+ root print the root (top) of the current working directory
+ serve start stand-alone webserver
+ showconfig show combined config settings from all hgrc files
+ status show changed files in the working directory
+ summary summarize working directory state
+ tag add one or more tags for the current or given revision
+ tags list repository tags
+ tip show the tip revision
+ unbundle apply one or more changegroup files
+ update update working directory (or switch revisions)
+ verify verify the integrity of the repository
+ version output version and copyright information
additional help topics:
- config Configuration Files
- dates Date Formats
- diffs Diff Formats
- environment Environment Variables
- extensions Using Additional Features
- filesets Specifying File Sets
- glossary Glossary
- hgignore Syntax for Mercurial Ignore Files
- hgweb Configuring hgweb
- merge-tools Merge Tools
- multirevs Specifying Multiple Revisions
- patterns File Name Patterns
- phases Working with Phases
- revisions Specifying Single Revisions
- revsets Specifying Revision Sets
- subrepos Subrepositories
- templating Template Usage
- urls URL Paths
+ config Configuration Files
+ dates Date Formats
+ diffs Diff Formats
+ environment Environment Variables
+ extensions Using additional features
+ filesets Specifying File Sets
+ glossary Glossary
+ hgignore syntax for Mercurial ignore files
+ hgweb Configuring hgweb
+ merge-tools Merge Tools
+ multirevs Specifying Multiple Revisions
+ patterns File Name Patterns
+ revisions Specifying Single Revisions
+ revsets Specifying Revision Sets
+ subrepos Subrepositories
+ templating Template Usage
+ urls URL Paths
Test short command list with verbose option
$ hg -v help shortlist
- Mercurial Distributed SCM
+ Mercurial Distributed SCM (version *) (glob)
+ (see http://mercurial.selenic.com for more information)
+
+ 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.
basic commands:
- add add the specified files on the next commit
- annotate, blame
- show changeset information by line for each file
- clone make a copy of an existing repository
- commit, ci commit the specified files or all outstanding changes
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- init create a new repository in the given directory
- log, history show revision history of entire repository or files
- merge merge working directory with another revision
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- remove, rm remove the specified files on the next commit
- serve start stand-alone webserver
- status, st show changed files in the working directory
- summary, sum summarize working directory state
- update, up, checkout, co
- update working directory (or switch revisions)
+ add:
+ add the specified files on the next commit
+ annotate, blame:
+ show changeset information by line for each file
+ clone:
+ make a copy of an existing repository
+ commit, ci:
+ commit the specified files or all outstanding changes
+ diff:
+ diff repository (or selected files)
+ export:
+ dump the header and diffs for one or more changesets
+ forget:
+ forget the specified files on the next commit
+ init:
+ create a new repository in the given directory
+ log, history:
+ show revision history of entire repository or files
+ merge:
+ merge working directory with another revision
+ pull:
+ pull changes from the specified source
+ push:
+ push changes to the specified destination
+ remove, rm:
+ remove the specified files on the next commit
+ serve:
+ start stand-alone webserver
+ status, st:
+ show changed files in the working directory
+ summary, sum:
+ summarize working directory state
+ update, up, checkout, co:
+ update working directory (or switch revisions)
global options:
-
- -R --repository REPO repository root directory or name of overlay bundle
- file
- --cwd DIR change working directory
- -y --noninteractive do not prompt, automatically pick the first choice for
- all prompts
- -q --quiet suppress output
- -v --verbose enable additional output
- --config CONFIG [+] set/override config option (use 'section.name=value')
- --debug enable debugging output
- --debugger start debugger
- --encoding ENCODE set the charset encoding (default: ascii)
- --encodingmode MODE set the charset encoding mode (default: strict)
- --traceback always print a traceback on exception
- --time time how long the command takes
- --profile print command execution profile
- --version output version information and exit
- -h --help display help and exit
+ -R --repository REPO repository root directory or name of overlay bundle
+ file
+ --cwd DIR change working directory
+ -y --noninteractive do not prompt, automatically pick the first choice
+ for all prompts
+ -q --quiet suppress output
+ -v --verbose enable additional output
+ --config CONFIG [+] set/override config option (use 'section.name=value')
+ --debug enable debugging output
+ --debugger start debugger
+ --encoding ENCODE set the charset encoding (default: ascii)
+ --encodingmode MODE set the charset encoding mode (default: strict)
+ --traceback always print a traceback on exception
+ --time time how long the command takes
+ --profile print command execution profile
+ --version output version information and exit
+ -h --help display help and exit
[+] marked option can be specified multiple times
@@ -270,16 +280,18 @@ Test short command list with verbose option
Returns 0 if all files are successfully added.
+ use "hg -v help add" to show verbose help
+
options:
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
- -S --subrepos recurse into subrepositories
- -n --dry-run do not perform actions, just print output
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
+ -S --subrepos recurse into subrepositories
+ -n --dry-run do not perform actions, just print output
[+] marked option can be specified multiple times
- use "hg -v help add" to show more info
+ use "hg -v help add" to show global options
Verbose help for add
@@ -311,32 +323,30 @@ Verbose help for add
options:
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
- -S --subrepos recurse into subrepositories
- -n --dry-run do not perform actions, just print output
-
- [+] marked option can be specified multiple times
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
+ -S --subrepos recurse into subrepositories
+ -n --dry-run do not perform actions, just print output
global options:
-
- -R --repository REPO repository root directory or name of overlay bundle
- file
- --cwd DIR change working directory
- -y --noninteractive do not prompt, automatically pick the first choice for
- all prompts
- -q --quiet suppress output
- -v --verbose enable additional output
- --config CONFIG [+] set/override config option (use 'section.name=value')
- --debug enable debugging output
- --debugger start debugger
- --encoding ENCODE set the charset encoding (default: ascii)
- --encodingmode MODE set the charset encoding mode (default: strict)
- --traceback always print a traceback on exception
- --time time how long the command takes
- --profile print command execution profile
- --version output version information and exit
- -h --help display help and exit
+ -R --repository REPO repository root directory or name of overlay bundle
+ file
+ --cwd DIR change working directory
+ -y --noninteractive do not prompt, automatically pick the first choice
+ for all prompts
+ -q --quiet suppress output
+ -v --verbose enable additional output
+ --config CONFIG [+] set/override config option (use
+ 'section.name=value')
+ --debug enable debugging output
+ --debugger start debugger
+ --encoding ENCODE set the charset encoding (default: ascii)
+ --encodingmode MODE set the charset encoding mode (default: strict)
+ --traceback always print a traceback on exception
+ --time time how long the command takes
+ --profile print command execution profile
+ --version output version information and exit
+ -h --help display help and exit
[+] marked option can be specified multiple times
@@ -346,9 +356,35 @@ Test help option with version option
Mercurial Distributed SCM (version *) (glob)
(see http://mercurial.selenic.com for more information)
- Copyright (C) 2005-2012 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.
+
+ hg add [OPTION]... [FILE]...
+
+ add the specified files on the next commit
+
+ Schedule files to be version controlled and added to the repository.
+
+ The files will be added to the repository at the next commit. To undo an
+ add before that, see "hg forget".
+
+ If no names are given, add all files to the repository.
+
+ Returns 0 if all files are successfully added.
+
+ use "hg -v help add" to show verbose help
+
+ options:
+
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
+ -S --subrepos recurse into subrepositories
+ -n --dry-run do not perform actions, just print output
+
+ [+] marked option can be specified multiple times
+
+ use "hg -v help add" to show global options
$ hg add --skjdfks
hg add: option --skjdfks not recognized
@@ -358,10 +394,10 @@ Test help option with version option
options:
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
- -S --subrepos recurse into subrepositories
- -n --dry-run do not perform actions, just print output
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
+ -S --subrepos recurse into subrepositories
+ -n --dry-run do not perform actions, just print output
[+] marked option can be specified multiple times
@@ -373,8 +409,8 @@ Test ambiguous command help
$ hg help ad
list of commands:
- add add the specified files on the next commit
- addremove add all new files, delete all missing files
+ add add the specified files on the next commit
+ addremove add all new files, delete all missing files
use "hg -v help ad" to show builtin aliases and global options
@@ -394,7 +430,7 @@ Test command without options
Returns 0 on success, 1 if errors are encountered.
- use "hg -v help verify" to show more info
+ use "hg -v help verify" to show global options
$ hg help diff
hg diff [OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]...
@@ -429,25 +465,25 @@ Test command without options
options:
- -r --rev REV [+] revision
- -c --change REV change made by revision
- -a --text treat all files as text
- -g --git use git extended diff format
- --nodates omit dates from diff headers
- -p --show-function show which function each change is in
- --reverse produce a diff that undoes the changes
- -w --ignore-all-space ignore white space when comparing lines
- -b --ignore-space-change ignore changes in the amount of white space
- -B --ignore-blank-lines ignore changes whose lines are all blank
- -U --unified NUM number of lines of context to show
- --stat output diffstat-style summary of changes
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
- -S --subrepos recurse into subrepositories
+ -r --rev REV [+] revision
+ -c --change REV change made by revision
+ -a --text treat all files as text
+ -g --git use git extended diff format
+ --nodates omit dates from diff headers
+ -p --show-function show which function each change is in
+ --reverse produce a diff that undoes the changes
+ -w --ignore-all-space ignore white space when comparing lines
+ -b --ignore-space-change ignore changes in the amount of white space
+ -B --ignore-blank-lines ignore changes whose lines are all blank
+ -U --unified NUM number of lines of context to show
+ --stat output diffstat-style summary of changes
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
+ -S --subrepos recurse into subrepositories
[+] marked option can be specified multiple times
- use "hg -v help diff" to show more info
+ use "hg -v help diff" to show global options
$ hg help status
hg status [OPTION]... [FILE]...
@@ -491,26 +527,26 @@ Test command without options
options:
- -A --all show status of all files
- -m --modified show only modified files
- -a --added show only added files
- -r --removed show only removed files
- -d --deleted show only deleted (but tracked) files
- -c --clean show only files without changes
- -u --unknown show only unknown (not tracked) files
- -i --ignored show only ignored files
- -n --no-status hide status prefix
- -C --copies show source of copied files
- -0 --print0 end filenames with NUL, for use with xargs
- --rev REV [+] show difference from revision
- --change REV list the changed files of a revision
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
- -S --subrepos recurse into subrepositories
+ -A --all show status of all files
+ -m --modified show only modified files
+ -a --added show only added files
+ -r --removed show only removed files
+ -d --deleted show only deleted (but tracked) files
+ -c --clean show only files without changes
+ -u --unknown show only unknown (not tracked) files
+ -i --ignored show only ignored files
+ -n --no-status hide status prefix
+ -C --copies show source of copied files
+ -0 --print0 end filenames with NUL, for use with xargs
+ --rev REV [+] show difference from revision
+ --change REV list the changed files of a revision
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
+ -S --subrepos recurse into subrepositories
[+] marked option can be specified multiple times
- use "hg -v help status" to show more info
+ use "hg -v help status" to show global options
$ hg -q help status
hg status [OPTION]... [FILE]...
@@ -523,24 +559,23 @@ Test command without options
basic commands:
- add add the specified files on the next commit
- annotate show changeset information by line for each file
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- init create a new repository in the given directory
- log show revision history of entire repository or files
- merge merge working directory with another revision
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- remove remove the specified files on the next commit
- serve start stand-alone webserver
- status show changed files in the working directory
- summary summarize working directory state
- update update working directory (or switch revisions)
+ add add the specified files on the next commit
+ annotate show changeset information by line for each file
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ init create a new repository in the given directory
+ log show revision history of entire repository or files
+ merge merge working directory with another revision
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ remove remove the specified files on the next commit
+ serve start stand-alone webserver
+ status show changed files in the working directory
+ summary summarize working directory state
+ update update working directory (or switch revisions)
use "hg help" for the full list of commands or "hg -v" for details
[255]
@@ -551,24 +586,23 @@ Test command without options
basic commands:
- add add the specified files on the next commit
- annotate show changeset information by line for each file
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- init create a new repository in the given directory
- log show revision history of entire repository or files
- merge merge working directory with another revision
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- remove remove the specified files on the next commit
- serve start stand-alone webserver
- status show changed files in the working directory
- summary summarize working directory state
- update update working directory (or switch revisions)
+ add add the specified files on the next commit
+ annotate show changeset information by line for each file
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ init create a new repository in the given directory
+ log show revision history of entire repository or files
+ merge merge working directory with another revision
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ remove remove the specified files on the next commit
+ serve start stand-alone webserver
+ status show changed files in the working directory
+ summary summarize working directory state
+ update update working directory (or switch revisions)
use "hg help" for the full list of commands or "hg -v" for details
[255]
@@ -596,16 +630,7 @@ Test command with no help text
(no help text available)
- use "hg -v help nohelp" to show more info
-
- $ hg help -k nohelp
- Commands:
-
- nohelp hg nohelp
-
- Extension Commands:
-
- nohelp (no help text available)
+ use "hg -v help nohelp" to show global options
Test that default list of commands omits extension commands
@@ -614,84 +639,81 @@ Test that default list of commands omits extension commands
list of commands:
- add add the specified files on the next commit
- addremove add all new files, delete all missing files
- annotate show changeset information by line for each file
- archive create an unversioned archive of a repository revision
- backout reverse effect of earlier changeset
- bisect subdivision search of changesets
- bookmarks track a line of development with movable markers
- branch set or show the current branch name
- branches list repository named branches
- bundle create a changegroup file
- cat output the current or given revision of files
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- copy mark files as copied for the next commit
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- graft copy changes from other branches onto the current branch
- grep search for a pattern in specified files and revisions
- heads show current repository heads or show branch heads
- help show help for a given topic or a help overview
- identify identify the working copy or specified revision
- import import an ordered set of patches
- incoming show new changesets found in source
- init create a new repository in the given directory
- locate locate files matching specific patterns
- log show revision history of entire repository or files
- manifest output the current or given revision of the project manifest
- merge merge working directory with another revision
- outgoing show changesets not found in the destination
- parents show the parents of the working directory or revision
- paths show aliases for remote repositories
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- recover roll back an interrupted transaction
- remove remove the specified files on the next commit
- rename rename files; equivalent of copy + remove
- resolve redo merges or set/view the merge status of files
- revert restore files to their checkout state
- rollback roll back the last transaction (dangerous)
- root print the root (top) of the current working directory
- serve start stand-alone webserver
- showconfig show combined config settings from all hgrc files
- status show changed files in the working directory
- summary summarize working directory state
- tag add one or more tags for the current or given revision
- tags list repository tags
- tip show the tip revision
- unbundle apply one or more changegroup files
- update update working directory (or switch revisions)
- verify verify the integrity of the repository
- version output version and copyright information
+ add add the specified files on the next commit
+ addremove add all new files, delete all missing files
+ annotate show changeset information by line for each file
+ archive create an unversioned archive of a repository revision
+ backout reverse effect of earlier changeset
+ bisect subdivision search of changesets
+ bookmarks track a line of development with movable markers
+ branch set or show the current branch name
+ branches list repository named branches
+ bundle create a changegroup file
+ cat output the current or given revision of files
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ copy mark files as copied for the next commit
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ grep search for a pattern in specified files and revisions
+ heads show current repository heads or show branch heads
+ help show help for a given topic or a help overview
+ identify identify the working copy or specified revision
+ import import an ordered set of patches
+ incoming show new changesets found in source
+ init create a new repository in the given directory
+ locate locate files matching specific patterns
+ log show revision history of entire repository or files
+ manifest output the current or given revision of the project manifest
+ merge merge working directory with another revision
+ outgoing show changesets not found in the destination
+ parents show the parents of the working directory or revision
+ paths show aliases for remote repositories
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ recover roll back an interrupted transaction
+ remove remove the specified files on the next commit
+ rename rename files; equivalent of copy + remove
+ resolve redo merges or set/view the merge status of files
+ revert restore files to their checkout state
+ rollback roll back the last transaction (dangerous)
+ root print the root (top) of the current working directory
+ serve start stand-alone webserver
+ showconfig show combined config settings from all hgrc files
+ status show changed files in the working directory
+ summary summarize working directory state
+ tag add one or more tags for the current or given revision
+ tags list repository tags
+ tip show the tip revision
+ unbundle apply one or more changegroup files
+ update update working directory (or switch revisions)
+ verify verify the integrity of the repository
+ version output version and copyright information
enabled extensions:
- helpext (no help text available)
+ helpext (no help text available)
additional help topics:
- config Configuration Files
- dates Date Formats
- diffs Diff Formats
- environment Environment Variables
- extensions Using Additional Features
- filesets Specifying File Sets
- glossary Glossary
- hgignore Syntax for Mercurial Ignore Files
- hgweb Configuring hgweb
- merge-tools Merge Tools
- multirevs Specifying Multiple Revisions
- patterns File Name Patterns
- phases Working with Phases
- revisions Specifying Single Revisions
- revsets Specifying Revision Sets
- subrepos Subrepositories
- templating Template Usage
- urls URL Paths
+ config Configuration Files
+ dates Date Formats
+ diffs Diff Formats
+ environment Environment Variables
+ extensions Using additional features
+ filesets Specifying File Sets
+ glossary Glossary
+ hgignore syntax for Mercurial ignore files
+ hgweb Configuring hgweb
+ merge-tools Merge Tools
+ multirevs Specifying Multiple Revisions
+ patterns File Name Patterns
+ revisions Specifying Single Revisions
+ revsets Specifying Revision Sets
+ subrepos Subrepositories
+ templating Template Usage
+ urls URL Paths
use "hg -v help" to show builtin aliases and global options
@@ -704,7 +726,7 @@ Test list of commands with command with no help text
list of commands:
- nohelp (no help text available)
+ nohelp (no help text available)
use "hg -v help helpext" to show builtin aliases and global options
@@ -726,13 +748,13 @@ Test a help topic
short-form identifier is only valid if it is the prefix of exactly one
full-length identifier.
- Any other string is treated as a bookmark, tag, or branch name. A bookmark
- is a movable pointer to a revision. A tag is a permanent name associated
- with a revision. A branch name denotes the tipmost revision of that
- branch. Bookmark, tag, and branch names must not contain the ":"
- character.
+ Any other string is treated as a tag or branch name. A tag name is a
+ symbolic name associated with a revision identifier. A branch name denotes
+ the tipmost revision of that branch. Tag and branch names must not contain
+ the ":" character.
- The reserved name "tip" always identifies the most recent revision.
+ The reserved name "tip" is a special tag that always identifies the most
+ recent revision.
The reserved name "null" indicates the null revision. This is the revision
of an empty repository, and the parent of revision 0.
@@ -744,10 +766,10 @@ Test a help topic
Test templating help
$ hg help templating | egrep '(desc|diffstat|firstline|nonempty) '
- desc String. The text of the changeset description.
- diffstat String. Statistics of changes with the following format:
- firstline Any text. Returns the first line of text.
- nonempty Any text. Returns '(none)' if the string is empty.
+ desc String. The text of the changeset description.
+ diffstat String. Statistics of changes with the following format:
+ firstline Any text. Returns the first line of text.
+ nonempty Any text. Returns '(none)' if the string is empty.
Test help hooks
@@ -775,30 +797,3 @@ Test help hooks
$ hg help revsets | grep helphook
helphook1
helphook2
-
-Test keyword search help
-
- $ hg help -k clone
- Topics:
-
- config Configuration Files
- extensions Using Additional Features
- glossary Glossary
- phases Working with Phases
- subrepos Subrepositories
- urls URL Paths
-
- Commands:
-
- clone make a copy of an existing repository
- paths show aliases for remote repositories
- update update working directory (or switch revisions)
-
- Extensions:
-
- relink recreates hardlinks between repository clones
-
- Extension Commands:
-
- qclone clone main and patch repository at same time
-
diff --git a/tests/test-hgcia.t b/tests/test-hgcia.t
index 10e9418..cf9cfcd 100644
--- a/tests/test-hgcia.t
+++ b/tests/test-hgcia.t
@@ -90,5 +90,3 @@ Test the CIA extension
</body>
<timestamp>0</timestamp>
</message>
-
- $ cd ..
diff --git a/tests/test-hgignore.t b/tests/test-hgignore.t
index 3b4a9aa..405669f 100644
--- a/tests/test-hgignore.t
+++ b/tests/test-hgignore.t
@@ -44,11 +44,11 @@ Should display baz only:
$ echo "*.o" > .hgignore
$ hg status
- abort: $TESTTMP/.hgignore: invalid pattern (relre): *.o (glob)
+ abort: $TESTTMP/.hgignore: invalid pattern (relre): *.o
[255]
$ echo ".*\.o" > .hgignore
- $ hg status
+ $ hg status
A dir/b.o
? .hgignore
? a.c
@@ -88,7 +88,7 @@ Check it does not ignore the current directory '.':
$ echo "syntax: invalid" > .hgignore
$ hg status
- $TESTTMP/.hgignore: ignoring invalid syntax 'invalid' (glob)
+ $TESTTMP/.hgignore: ignoring invalid syntax 'invalid'
A dir/b.o
? .hgignore
? a.c
@@ -122,5 +122,3 @@ Check it does not ignore the current directory '.':
$ hg debugignore
(?:(?:|.*/)[^/]*(?:/|$))
-
- $ cd ..
diff --git a/tests/test-hgk.t b/tests/test-hgk.t
index acdbd06..10b9bbc 100644
--- a/tests/test-hgk.t
+++ b/tests/test-hgk.t
@@ -16,5 +16,3 @@ Minimal hgk check
branch default
adda
-
- $ cd ..
diff --git a/tests/test-hgrc.t b/tests/test-hgrc.t
index 65434ac..79c078a 100644
--- a/tests/test-hgrc.t
+++ b/tests/test-hgrc.t
@@ -1,24 +1,15 @@
-hide outer repo
- $ hg init
-
Use hgrc within $TESTTMP
$ HGRCPATH=`pwd`/hgrc
$ export HGRCPATH
-Use an alternate var for scribbling on hgrc to keep check-code from
-complaining about the important settings we may be overwriting:
-
- $ HGRC=`pwd`/hgrc
- $ export HGRC
-
Basic syntax error
- $ echo "invalid" > $HGRC
+ $ echo "invalid" > $HGRCPATH
$ hg version
hg: parse error at $TESTTMP/hgrc:1: invalid
[255]
- $ echo "" > $HGRC
+ $ echo "" > $HGRCPATH
Issue1199: Can't use '%' in hgrc (eg url encoded username)
@@ -29,36 +20,36 @@ Issue1199: Can't use '%' in hgrc (eg url encoded username)
$ cd foobar
$ cat .hg/hgrc
[paths]
- default = $TESTTMP/foo%bar (glob)
+ default = $TESTTMP/foo%bar
$ hg paths
- default = $TESTTMP/foo%bar (glob)
+ default = $TESTTMP/foo%bar
$ hg showconfig
- bundle.mainreporoot=$TESTTMP/foobar (glob)
- paths.default=$TESTTMP/foo%bar (glob)
+ bundle.mainreporoot=$TESTTMP/foobar
+ paths.default=$TESTTMP/foo%bar
$ cd ..
issue1829: wrong indentation
- $ echo '[foo]' > $HGRC
- $ echo ' x = y' >> $HGRC
+ $ echo '[foo]' > $HGRCPATH
+ $ echo ' x = y' >> $HGRCPATH
$ hg version
hg: parse error at $TESTTMP/hgrc:2: x = y
[255]
$ python -c "print '[foo]\nbar = a\n b\n c \n de\n fg \nbaz = bif cb \n'" \
- > > $HGRC
+ > > $HGRCPATH
$ hg showconfig foo
foo.bar=a\nb\nc\nde\nfg
foo.baz=bif cb
$ FAKEPATH=/path/to/nowhere
$ export FAKEPATH
- $ echo '%include $FAKEPATH/no-such-file' > $HGRC
+ $ echo '%include $FAKEPATH/no-such-file' > $HGRCPATH
$ hg version
Mercurial Distributed SCM (version *) (glob)
(see http://mercurial.selenic.com for more information)
- Copyright (C) 2005-2012 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.
$ unset FAKEPATH
@@ -66,7 +57,6 @@ issue1829: wrong indentation
make sure global options given on the cmdline take precedence
$ hg showconfig --config ui.verbose=True --quiet
- bundle.mainreporoot=$TESTTMP
ui.verbose=False
ui.debug=False
ui.quiet=True
@@ -85,8 +75,8 @@ username expansion
$ FAKEUSER='John Doe'
$ export FAKEUSER
- $ echo '[ui]' > $HGRC
- $ echo 'username = $FAKEUSER' >> $HGRC
+ $ echo '[ui]' > $HGRCPATH
+ $ echo 'username = $FAKEUSER' >> $HGRCPATH
$ hg init usertest
$ cd usertest
@@ -97,7 +87,6 @@ username expansion
$ cd ..
$ hg showconfig
- bundle.mainreporoot=$TESTTMP
ui.username=$FAKEUSER
$ unset FAKEUSER
@@ -106,10 +95,10 @@ username expansion
showconfig with multiple arguments
- $ echo "[alias]" > $HGRC
- $ echo "log = log -g" >> $HGRC
- $ echo "[defaults]" >> $HGRC
- $ echo "identify = -n" >> $HGRC
+ $ echo "[alias]" > $HGRCPATH
+ $ echo "log = log -g" >> $HGRCPATH
+ $ echo "[defaults]" >> $HGRCPATH
+ $ echo "identify = -n" >> $HGRCPATH
$ hg showconfig alias defaults
alias.log=log -g
defaults.identify=-n
@@ -122,26 +111,27 @@ showconfig with multiple arguments
HGPLAIN
- $ echo "[ui]" > $HGRC
- $ echo "debug=true" >> $HGRC
- $ echo "fallbackencoding=ASCII" >> $HGRC
- $ echo "quiet=true" >> $HGRC
- $ echo "slash=true" >> $HGRC
- $ echo "traceback=true" >> $HGRC
- $ echo "verbose=true" >> $HGRC
- $ echo "style=~/.hgstyle" >> $HGRC
- $ echo "logtemplate={node}" >> $HGRC
- $ echo "[defaults]" >> $HGRC
- $ echo "identify=-n" >> $HGRC
- $ echo "[alias]" >> $HGRC
- $ echo "log=log -g" >> $HGRC
+ $ cd ..
+ $ p=`pwd`
+ $ echo "[ui]" > $HGRCPATH
+ $ echo "debug=true" >> $HGRCPATH
+ $ echo "fallbackencoding=ASCII" >> $HGRCPATH
+ $ echo "quiet=true" >> $HGRCPATH
+ $ echo "slash=true" >> $HGRCPATH
+ $ echo "traceback=true" >> $HGRCPATH
+ $ echo "verbose=true" >> $HGRCPATH
+ $ echo "style=~/.hgstyle" >> $HGRCPATH
+ $ echo "logtemplate={node}" >> $HGRCPATH
+ $ echo "[defaults]" >> $HGRCPATH
+ $ echo "identify=-n" >> $HGRCPATH
+ $ echo "[alias]" >> $HGRCPATH
+ $ echo "log=log -g" >> $HGRCPATH
customized hgrc
$ hg showconfig
read config from: $TESTTMP/hgrc
$TESTTMP/hgrc:13: alias.log=log -g
- none: bundle.mainreporoot=$TESTTMP
$TESTTMP/hgrc:11: defaults.identify=-n
$TESTTMP/hgrc:2: ui.debug=true
$TESTTMP/hgrc:3: ui.fallbackencoding=ASCII
@@ -157,7 +147,6 @@ plain hgrc
$ HGPLAIN=; export HGPLAIN
$ hg showconfig --config ui.traceback=True --debug
read config from: $TESTTMP/hgrc
- none: bundle.mainreporoot=$TESTTMP
none: ui.traceback=True
none: ui.verbose=False
none: ui.debug=True
@@ -169,13 +158,12 @@ plain mode with exceptions
> def uisetup(ui):
> ui.write('plain: %r\n' % ui.plain())
> EOF
- $ echo "[extensions]" >> $HGRC
- $ echo "plain=./plain.py" >> $HGRC
+ $ echo "[extensions]" >> $HGRCPATH
+ $ echo "plain=./plain.py" >> $HGRCPATH
$ HGPLAINEXCEPT=; export HGPLAINEXCEPT
$ hg showconfig --config ui.traceback=True --debug
plain: True
read config from: $TESTTMP/hgrc
- none: bundle.mainreporoot=$TESTTMP
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
none: ui.verbose=False
@@ -185,7 +173,6 @@ plain mode with exceptions
$ hg showconfig --config ui.traceback=True --debug
plain: True
read config from: $TESTTMP/hgrc
- none: bundle.mainreporoot=$TESTTMP
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
none: ui.verbose=False
@@ -195,7 +182,6 @@ plain mode with exceptions
$ hg showconfig --config ui.traceback=True --debug
plain: True
read config from: $TESTTMP/hgrc
- none: bundle.mainreporoot=$TESTTMP
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
none: ui.verbose=False
diff --git a/tests/test-hgweb-commands.t b/tests/test-hgweb-commands.t
index acf337e..ed07981 100644
--- a/tests/test-hgweb-commands.t
+++ b/tests/test-hgweb-commands.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
An attempt at more fully testing the hgweb web interface.
The following things are tested elsewhere and are therefore omitted:
- archive, tested in test-archive
@@ -22,31 +20,13 @@ Set up the repo
$ echo another > foo
$ hg branch stable
marked working directory as branch stable
- (branches are permanent and global, did you want a bookmark?)
- $ hg ci -Ambranch
- $ hg branch unstable
- marked working directory as branch unstable
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Ambranch
- $ echo [graph] >> .hg/hgrc
- $ echo default.width = 3 >> .hg/hgrc
- $ echo stable.width = 3 >> .hg/hgrc
- $ echo stable.color = FF0000 >> .hg/hgrc
$ hg serve --config server.uncompressed=False -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
- $ hg log -G --template '{rev}:{node|short} {desc}\n'
- @ 3:ba87b23d29ca branch
- |
- o 2:1d22e65f027e branch
- |
- o 1:a4f92ed23982 Added tag 1.0 for changeset 2ef0ac749a14
- |
- o 0:2ef0ac749a14 base
-
Logs and changes
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/?style=atom'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/?style=atom'
200 Script output follows
<?xml version="1.0" encoding="ascii"?>
@@ -60,22 +40,6 @@ Logs and changes
<entry>
<title>branch</title>
- <id>http://*:$HGPORT/#changeset-ba87b23d29ca67a305625d81a20ac279c1e3f444</id> (glob)
- <link href="http://*:$HGPORT/rev/ba87b23d29ca"/> (glob)
- <author>
- <name>test</name>
- <email>&#116;&#101;&#115;&#116;</email>
- </author>
- <updated>1970-01-01T00:00:00+00:00</updated>
- <published>1970-01-01T00:00:00+00:00</published>
- <content type="xhtml">
- <div xmlns="http://www.w3.org/1999/xhtml">
- <pre xml:space="preserve">branch</pre>
- </div>
- </content>
- </entry>
- <entry>
- <title>branch</title>
<id>http://*:$HGPORT/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id> (glob)
<link href="http://*:$HGPORT/rev/1d22e65f027e"/> (glob)
<author>
@@ -124,7 +88,7 @@ Logs and changes
</entry>
</feed>
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/1/?style=atom'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/?style=atom'
200 Script output follows
<?xml version="1.0" encoding="ascii"?>
@@ -138,22 +102,6 @@ Logs and changes
<entry>
<title>branch</title>
- <id>http://*:$HGPORT/#changeset-ba87b23d29ca67a305625d81a20ac279c1e3f444</id> (glob)
- <link href="http://*:$HGPORT/rev/ba87b23d29ca"/> (glob)
- <author>
- <name>test</name>
- <email>&#116;&#101;&#115;&#116;</email>
- </author>
- <updated>1970-01-01T00:00:00+00:00</updated>
- <published>1970-01-01T00:00:00+00:00</published>
- <content type="xhtml">
- <div xmlns="http://www.w3.org/1999/xhtml">
- <pre xml:space="preserve">branch</pre>
- </div>
- </content>
- </entry>
- <entry>
- <title>branch</title>
<id>http://*:$HGPORT/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id> (glob)
<link href="http://*:$HGPORT/rev/1d22e65f027e"/> (glob)
<author>
@@ -202,7 +150,7 @@ Logs and changes
</entry>
</feed>
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/1/foo/?style=atom'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/foo/?style=atom'
200 Script output follows
<?xml version="1.0" encoding="ascii"?>
@@ -230,7 +178,7 @@ Logs and changes
</entry>
</feed>
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/shortlog/'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -257,14 +205,14 @@ Logs and changes
</div>
<ul>
<li class="active">log</li>
- <li><a href="/graph/ba87b23d29ca">graph</a></li>
+ <li><a href="/graph/1d22e65f027e">graph</a></li>
<li><a href="/tags">tags</a></li>
<li><a href="/bookmarks">bookmarks</a></li>
<li><a href="/branches">branches</a></li>
</ul>
<ul>
- <li><a href="/rev/ba87b23d29ca">changeset</a></li>
- <li><a href="/file/ba87b23d29ca">browse</a></li>
+ <li><a href="/rev/1d22e65f027e">changeset</a></li>
+ <li><a href="/file/1d22e65f027e">browse</a></li>
</ul>
<ul>
@@ -286,9 +234,9 @@ Logs and changes
</form>
<div class="navigate">
- <a href="/shortlog/3?revcount=30">less</a>
- <a href="/shortlog/3?revcount=120">more</a>
- | rev 3: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
+ <a href="/shortlog/2?revcount=30">less</a>
+ <a href="/shortlog/2?revcount=120">more</a>
+ | rev 2: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
</div>
<table class="bigtable">
@@ -298,22 +246,17 @@ Logs and changes
<th class="description">description</th>
</tr>
<tr class="parity0">
- <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
<td class="author">test</td>
- <td class="description"><a href="/rev/ba87b23d29ca">branch</a><span class="branchhead">unstable</span> <span class="tag">tip</span> <span class="tag">something</span> </td>
+ <td class="description"><a href="/rev/1d22e65f027e">branch</a><span class="branchhead">stable</span> <span class="tag">tip</span> <span class="tag">something</span> </td>
</tr>
<tr class="parity1">
- <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
- <td class="author">test</td>
- <td class="description"><a href="/rev/1d22e65f027e">branch</a><span class="branchhead">stable</span> </td>
- </tr>
- <tr class="parity0">
- <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
<td class="author">test</td>
<td class="description"><a href="/rev/a4f92ed23982">Added tag 1.0 for changeset 2ef0ac749a14</a><span class="branchhead">default</span> </td>
</tr>
- <tr class="parity1">
- <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <tr class="parity0">
+ <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
<td class="author">test</td>
<td class="description"><a href="/rev/2ef0ac749a14">base</a><span class="tag">1.0</span> <span class="tag">anotherthing</span> </td>
</tr>
@@ -321,9 +264,9 @@ Logs and changes
</table>
<div class="navigate">
- <a href="/shortlog/3?revcount=30">less</a>
- <a href="/shortlog/3?revcount=120">more</a>
- | rev 3: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
+ <a href="/shortlog/2?revcount=30">less</a>
+ <a href="/shortlog/2?revcount=120">more</a>
+ | rev 2: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
</div>
</div>
@@ -335,7 +278,7 @@ Logs and changes
</body>
</html>
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/0/'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/0/'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -396,7 +339,7 @@ Logs and changes
</tr>
<tr>
<th class="date">date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td></tr>
+ <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
<tr>
<th class="author">parents</th>
<td class="author"></td>
@@ -462,7 +405,7 @@ Logs and changes
</body>
</html>
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/1/?style=raw'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/1/?style=raw'
200 Script output follows
@@ -479,7 +422,7 @@ Logs and changes
@@ -0,0 +1,1 @@
+2ef0ac749a14e4f57a5a822464a0902c6f7f448f 1.0
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?rev=base'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log?rev=base'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -533,7 +476,7 @@ Logs and changes
<th class="description">description</th>
</tr>
<tr class="parity0">
- <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
<td class="author">test</td>
<td class="description"><a href="/rev/2ef0ac749a14">base</a><span class="tag">1.0</span> <span class="tag">anotherthing</span> </td>
</tr>
@@ -557,11 +500,11 @@ Logs and changes
File-related
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/1/foo/?style=raw'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo/?style=raw'
200 Script output follows
foo
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/1/foo/?style=raw'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/annotate/1/foo/?style=raw'
200 Script output follows
@@ -570,7 +513,7 @@ File-related
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/1/?style=raw'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/?style=raw'
200 Script output follows
@@ -579,7 +522,7 @@ File-related
-rw-r--r-- 4 foo
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/1/foo'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -614,7 +557,6 @@ File-related
<li class="active">file</li>
<li><a href="/file/tip/foo">latest</a></li>
<li><a href="/diff/a4f92ed23982/foo">diff</a></li>
- <li><a href="/comparison/a4f92ed23982/foo">comparison</a></li>
<li><a href="/annotate/a4f92ed23982/foo">annotate</a></li>
<li><a href="/log/a4f92ed23982/foo">file log</a></li>
<li><a href="/raw-file/a4f92ed23982/foo">raw</a></li>
@@ -644,7 +586,7 @@ File-related
</tr>
<tr>
<th class="date">date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
</tr>
<tr>
<th class="author">parents</th>
@@ -673,11 +615,11 @@ File-related
</body>
</html>
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'filediff/0/foo/?style=raw'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/filediff/1/foo/?style=raw'
200 Script output follows
- diff -r 000000000000 -r 2ef0ac749a14 foo
+ diff -r 000000000000 -r a4f92ed23982 foo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/foo Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
@@ -687,34 +629,24 @@ File-related
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'filediff/1/foo/?style=raw'
- 200 Script output follows
-
-
-
-
-
-
-
Overviews
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'raw-tags'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-tags'
200 Script output follows
- tip ba87b23d29ca67a305625d81a20ac279c1e3f444
+ tip 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
1.0 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'raw-branches'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-branches'
200 Script output follows
- unstable ba87b23d29ca67a305625d81a20ac279c1e3f444 open
- stable 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe inactive
+ stable 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe open
default a4f92ed23982be056b9852de5dfe873eaac7f0de inactive
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'raw-bookmarks'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-bookmarks'
200 Script output follows
anotherthing 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
- something ba87b23d29ca67a305625d81a20ac279c1e3f444
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'summary/?style=gitweb'
+ something 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/summary/?style=gitweb'
200 Script output follows
<?xml version="1.0" encoding="ascii"?>
@@ -753,7 +685,7 @@ Overviews
<a href="/tags?style=gitweb">tags</a> |
<a href="/bookmarks?style=gitweb">bookmarks</a> |
<a href="/branches?style=gitweb">branches</a> |
- <a href="/file/ba87b23d29ca?style=gitweb">files</a> |
+ <a href="/file/1d22e65f027e?style=gitweb">files</a> |
<a href="/help?style=gitweb">help</a>
<br/>
</div>
@@ -769,26 +701,12 @@ Overviews
<table cellspacing="0">
<tr class="parity0">
- <td class="age"><i class="age">Thu, 01 Jan 1970 00:00:00 +0000</i></td>
- <td><i>test</i></td>
- <td>
- <a class="list" href="/rev/ba87b23d29ca?style=gitweb">
- <b>branch</b>
- <span class="logtags"><span class="branchtag" title="unstable">unstable</span> <span class="tagtag" title="tip">tip</span> <span class="bookmarktag" title="something">something</span> </span>
- </a>
- </td>
- <td class="link" nowrap>
- <a href="/rev/ba87b23d29ca?style=gitweb">changeset</a> |
- <a href="/file/ba87b23d29ca?style=gitweb">files</a>
- </td>
- </tr>
- <tr class="parity1">
- <td class="age"><i class="age">Thu, 01 Jan 1970 00:00:00 +0000</i></td>
+ <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
<td><i>test</i></td>
<td>
<a class="list" href="/rev/1d22e65f027e?style=gitweb">
<b>branch</b>
- <span class="logtags"><span class="branchtag" title="stable">stable</span> </span>
+ <span class="logtags"><span class="branchtag" title="stable">stable</span> <span class="tagtag" title="tip">tip</span> <span class="bookmarktag" title="something">something</span> </span>
</a>
</td>
<td class="link" nowrap>
@@ -796,8 +714,8 @@ Overviews
<a href="/file/1d22e65f027e?style=gitweb">files</a>
</td>
</tr>
- <tr class="parity0">
- <td class="age"><i class="age">Thu, 01 Jan 1970 00:00:00 +0000</i></td>
+ <tr class="parity1">
+ <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
<td><i>test</i></td>
<td>
<a class="list" href="/rev/a4f92ed23982?style=gitweb">
@@ -810,8 +728,8 @@ Overviews
<a href="/file/a4f92ed23982?style=gitweb">files</a>
</td>
</tr>
- <tr class="parity1">
- <td class="age"><i class="age">Thu, 01 Jan 1970 00:00:00 +0000</i></td>
+ <tr class="parity0">
+ <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
<td><i>test</i></td>
<td>
<a class="list" href="/rev/2ef0ac749a14?style=gitweb">
@@ -831,7 +749,7 @@ Overviews
<table cellspacing="0">
<tr class="parity0">
- <td class="age"><i class="age">Thu, 01 Jan 1970 00:00:00 +0000</i></td>
+ <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
<td><a class="list" href="/rev/2ef0ac749a14?style=gitweb"><b>1.0</b></a></td>
<td class="link">
<a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
@@ -846,7 +764,7 @@ Overviews
<table cellspacing="0">
<tr class="parity0">
- <td class="age"><i class="age">Thu, 01 Jan 1970 00:00:00 +0000</i></td>
+ <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
<td><a class="list" href="/rev/2ef0ac749a14?style=gitweb"><b>anotherthing</b></a></td>
<td class="link">
<a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
@@ -855,32 +773,22 @@ Overviews
</td>
</tr>
<tr class="parity1">
- <td class="age"><i class="age">Thu, 01 Jan 1970 00:00:00 +0000</i></td>
- <td><a class="list" href="/rev/ba87b23d29ca?style=gitweb"><b>something</b></a></td>
+ <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
+ <td><a class="list" href="/rev/1d22e65f027e?style=gitweb"><b>something</b></a></td>
<td class="link">
- <a href="/rev/ba87b23d29ca?style=gitweb">changeset</a> |
- <a href="/log/ba87b23d29ca?style=gitweb">changelog</a> |
- <a href="/file/ba87b23d29ca?style=gitweb">files</a>
+ <a href="/rev/1d22e65f027e?style=gitweb">changeset</a> |
+ <a href="/log/1d22e65f027e?style=gitweb">changelog</a> |
+ <a href="/file/1d22e65f027e?style=gitweb">files</a>
</td>
</tr>
<tr class="light"><td colspan="3"><a class="list" href="/bookmarks?style=gitweb">...</a></td></tr>
</table>
- <div><a class="title" href="/branches?style=gitweb">branches</a></div>
+ <div><a class="title" href="#">branches</a></div>
<table cellspacing="0">
<tr class="parity0">
- <td class="age"><i class="age">Thu, 01 Jan 1970 00:00:00 +0000</i></td>
- <td><a class="list" href="/shortlog/ba87b23d29ca?style=gitweb"><b>ba87b23d29ca</b></a></td>
- <td class="">unstable</td>
- <td class="link">
- <a href="/changeset/ba87b23d29ca?style=gitweb">changeset</a> |
- <a href="/log/ba87b23d29ca?style=gitweb">changelog</a> |
- <a href="/file/ba87b23d29ca?style=gitweb">files</a>
- </td>
- </tr>
- <tr class="parity1">
- <td class="age"><i class="age">Thu, 01 Jan 1970 00:00:00 +0000</i></td>
+ <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
<td><a class="list" href="/shortlog/1d22e65f027e?style=gitweb"><b>1d22e65f027e</b></a></td>
<td class="">stable</td>
<td class="link">
@@ -889,8 +797,8 @@ Overviews
<a href="/file/1d22e65f027e?style=gitweb">files</a>
</td>
</tr>
- <tr class="parity0">
- <td class="age"><i class="age">Thu, 01 Jan 1970 00:00:00 +0000</i></td>
+ <tr class="parity1">
+ <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
<td><a class="list" href="/shortlog/a4f92ed23982?style=gitweb"><b>a4f92ed23982</b></a></td>
<td class="">default</td>
<td class="link">
@@ -900,7 +808,7 @@ Overviews
</td>
</tr>
<tr class="light">
- <td colspan="4"><a class="list" href="/branches?style=gitweb">...</a></td>
+ <td colspan="4"><a class="list" href="#">...</a></td>
</tr>
</table>
<script type="text/javascript">process_dates()</script>
@@ -916,7 +824,7 @@ Overviews
</body>
</html>
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/?style=gitweb'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/?style=gitweb'
200 Script output follows
<?xml version="1.0" encoding="ascii"?>
@@ -950,17 +858,17 @@ Overviews
<div class="page_nav">
<a href="/summary?style=gitweb">summary</a> |
<a href="/shortlog?style=gitweb">shortlog</a> |
- <a href="/log/3?style=gitweb">changelog</a> |
+ <a href="/log/2?style=gitweb">changelog</a> |
graph |
<a href="/tags?style=gitweb">tags</a> |
<a href="/bookmarks?style=gitweb">bookmarks</a> |
<a href="/branches?style=gitweb">branches</a> |
- <a href="/file/ba87b23d29ca?style=gitweb">files</a> |
+ <a href="/file/1d22e65f027e?style=gitweb">files</a> |
<a href="/help?style=gitweb">help</a>
<br/>
- <a href="/graph/3?style=gitweb&revcount=30">less</a>
- <a href="/graph/3?style=gitweb&revcount=120">more</a>
- | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
+ <a href="/graph/2?style=gitweb&revcount=30">less</a>
+ <a href="/graph/2?style=gitweb&revcount=120">more</a>
+ | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/2ef0ac749a14?style=gitweb">-2</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
</div>
<div class="title">&nbsp;</div>
@@ -969,17 +877,27 @@ Overviews
<div id="wrapper">
<ul id="nodebgs"></ul>
- <canvas id="graph" width="480" height="168"></canvas>
+ <canvas id="graph" width="480" height="129"></canvas>
<ul id="graphnodes"></ul>
</div>
<script>
<!-- hide script content
- var data = [["ba87b23d29ca", [0, 1], [[0, 0, 1, 3, "FF0000"]], "branch", "test", "1970-01-01", ["unstable", true], ["tip"], ["something"]], ["1d22e65f027e", [0, 1], [[0, 0, 1, 3, ""]], "branch", "test", "1970-01-01", ["stable", true], [], []], ["a4f92ed23982", [0, 1], [[0, 0, 1, 3, ""]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], [], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"], ["anotherthing"]]];
+ var data = [["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", true], ["tip"], ["something"]], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], [], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"], ["anotherthing"]]];
var graph = new Graph();
graph.scale(39);
+ graph.edge = function(x0, y0, x1, y1, color) {
+
+ this.setColor(color, 0.0, 0.65);
+ this.ctx.beginPath();
+ this.ctx.moveTo(x0, y0);
+ this.ctx.lineTo(x1, y1);
+ this.ctx.stroke();
+
+ }
+
var revlink = '<li style="_STYLE"><span class="desc">';
revlink += '<a class="list" href="/rev/_NODEID?style=gitweb" title="_NODEID"><b>_DESC</b></a>';
revlink += '</span> _TAGS';
@@ -1039,9 +957,9 @@ Overviews
</script>
<div class="page_nav">
- <a href="/graph/3?style=gitweb&revcount=30">less</a>
- <a href="/graph/3?style=gitweb&revcount=120">more</a>
- | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
+ <a href="/graph/2?style=gitweb&revcount=30">less</a>
+ <a href="/graph/2?style=gitweb&revcount=120">more</a>
+ | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/2ef0ac749a14?style=gitweb">-2</a> <a href="/graph/tip?style=gitweb">tip</a>
</div>
<script type="text/javascript">process_dates()</script>
@@ -1057,55 +975,6 @@ Overviews
</body>
</html>
-raw graph
-
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/?style=raw'
- 200 Script output follows
-
-
- # HG graph
- # Node ID ba87b23d29ca67a305625d81a20ac279c1e3f444
- # Rows shown 4
-
- changeset: ba87b23d29ca
- user: test
- date: 1970-01-01
- summary: branch
- branch: unstable
- tag: tip
- bookmark: something
-
- node: (0, 0) (color 1)
- edge: (0, 0) -> (0, 1) (color 1)
-
- changeset: 1d22e65f027e
- user: test
- date: 1970-01-01
- summary: branch
- branch: stable
-
- node: (0, 1) (color 1)
- edge: (0, 1) -> (0, 2) (color 1)
-
- changeset: a4f92ed23982
- user: test
- date: 1970-01-01
- summary: Added tag 1.0 for changeset 2ef0ac749a14
- branch: default
-
- node: (0, 2) (color 1)
- edge: (0, 2) -> (0, 3) (color 1)
-
- changeset: 2ef0ac749a14
- user: test
- date: 1970-01-01
- summary: base
- tag: 1.0
- bookmark: anotherthing
-
- node: (0, 3) (color 1)
-
-
capabilities
@@ -1119,7 +988,7 @@ heads
$ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=heads'
200 Script output follows
- ba87b23d29ca67a305625d81a20ac279c1e3f444
+ 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
branches
@@ -1133,11 +1002,10 @@ changegroup
$ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=changegroup&roots=0000000000000000000000000000000000000000'
200 Script output follows
- x\x9c\xbdTMHTQ\x14\x1e\xfc\xef\xd9&\x10\x11*x\x88\x81\x9aN\xf7\xddw\xdf{\xf7Y\x0efR\xb4\x11\xb1U\x82\xc5\xfd\x9d!c\x06\x9c'd\xa0\x99X\x82\x92i\xablUZ-*\x08\x84\x82\x02KkQ\xf8\x13\xe4\xaa\x8dn\x94\x906)\xd5B\x02\xeb\xbe\x9c\x01\x85\xc9\x996\x1d\xf8x\x97{\xefy\xe7;\xe7|\xe7\x06\x02\x81\xb1\xe0\xda\x13\xefN\xd1\xca\x8f\xcb-\xbde\xfc\xeepU\xecJ\xc3\xcd@\x86\x96\xc6\xb7^`\xe9"[H\xe4\x18T\x1a\x16p]\xc3\x96\x14\x13\xcbt\xa1tM\x0c\x1c\x0b2,M\xcd\x13qO\x03:\xd089"c1\xcd\x87FI\\\xa8\xbf|\xbc\xbf\x11\\p{_\xe5\xb6\xddn^j\xdd\xec\x0f=z\xb7\xb6\x94)\xebT\xbe\x89\xa3 (esc)
- \x1f6!6p\x00\xc4H`L\x18\x83\xdc\xa6\x8c\x0b\x84\x01\x06\x06s\xb84\x1cn2F4u\x19*\xd4*\x14\x04#a\x8f\x84\xe3\xfe^\xc8OS\xa1\xfc8\xe7\x82\xebj[7\x82@\x97\xb1v\x9dEH4,\xe2\xc2\xd3\xa1\x90\x800\x07\xb9\xc4@\xea\xee\xe4\xc1\xd2\xcf\xe7\xb3\xba[\xf2\xf6X\xdd]C\x1d\x05\xf3\x87\x1f,l\xeeBt\x87\xa5\xf2\xdd\x9e\x90*\xa9kC\xac"!\x17\x12)!c\x000\xd7\x05&\xb5\xa9\xc5\xa8-Ln (esc)
- \x0c|\xf2A\x85\x1a\x85bUy\x9d\xb6\x93(\x8b\xd4\xc4=B/\x8a?\rP'G\x15\x98B\xde\xd6\xa9Zy/\xfb'j+f\xc2\xe3\xb9\xb4\xf5\xea\x98\xf6\xa6sz\xf9{\xc3.\xa4vX*\xdf\x04\x0f\xff[\xb4\x8dGG4\xc1$\xe1:\xb9\xbaq\xf2\xeb\xa9\xfd\xebM\xa3\xc5?\x07\xce\xdc\xda\xc0\xf9\xcd\xef\xbf\xa5\xd3g\xd2\xd2\xa8\xa5uKu\x01(8$\xa6k@\x02(D\x16\x80\x00\x99\x82\x08\xa5\r\x81(t\\f`\xea\x02\xce\xb5\x7f\xba\xac\x02\x8c\\x\x98\x9f\xd5\xb7:0W\xdd6\xbf\xd2\xd3s\xa0k\xbd\xeb\xd8L\xa6 \xa5Q\x86\x91Pc\x80\x98\x8cB,L\x07#\x80\x04\x82\xb6\x8d)\xa3\x08X\x02\x00\xear\x0c-`b\x9b\x18>\xa1\x1b\xf9g\xe9@\xd1\xe9\xca_US{G\xb3\x9f?\x9b\x8d\xd6\x86zR\x91LE\xe8/\xdd& (esc)
- C
- \xd5~u\xb0e#\x08\r\x8c\xd5\xf83\x93\x01B\x95\xe8\x1c\x03\xdb\x92s*\x99`\xcc0\x88\xb4d\xb2\xbd\x85\xc9,\x14\xb7\xf1\xd9\xf2\xe5Ku\x8d\xf5rp\xb6\xee\\\xe0\xc5\xa7C\xd9\xd7\xefe\xda\xe94\xc5\xaa\xde>\x8a\x02I\xcb!\x16\xc1\x10"\x1b\x11\xe0\x02\xc8l\xe9H\x84\xb0\xf4\xa78\xc9-\xf1(\xa9\x15\x0f.\x8c\x8fT\x16\x965\xe9'\xbe\xac6\xaeLtN\x0f\x0e/fJ-\x8d\x08s\x12#\xe7[\xfe\xff\x0b\x17\xb9\xc6KK\xfa\xa2o\xa7\x1e\x87\xfaKb\x8b\xaf?\xcc\xed{z>\xd3\xb8\xbb\xcc}\x8eB\x01\x89\xc6\xbc\x88hO\xa6\x15\xf8\rr4\xb3\xe5 (no-eol) (esc)
+ x\x9c\xbdTMHUA\x14\xbe\xa8\xf9\xec\xda&\x10\x11*\xb8\x88\x81\x99\xbef\xe6\xce\xbdw\xc6\xf2a\x16E\x1b\x11[%\x98\xcc\xaf\x8f\x8c\xf7\xc0\xf7\x82 (esc)
+ 4\x11KP2m\x95\xad*\xabE\x05AP\xd0\xc22Z\x14\xf9\x03\xb9j\xa3\x9b$\xa4MJ\xb4\x90\xc0\x9a\x9bO0\x10\xdf\x13\xa2\x81\x0f\x869g\xe6|\xe7\x9c\xef\x8ceY\xf7\xa2KO\xd2\xb7K\x16~\\n\xe9\xad\x90w\x86\xab\x93W\x8e\xdf\xb0r\\Y\xee6(\xa2)\xf6\x95\xc6\x01\xe4\x1az\x80R\xe8kN\x98\xe7R\xa4\xa9K@\xe0!A\xb4k\xa7U*m\x03\x07\xd8\x92\x1d\xd2\xc9\xa4\x1d\xc2\xe6,\xa5\xcc+\x1f\xef\xafDgi\xef\xab\x1d\x1d\xb7\x9a\xe7[W\xfbc\x8f\xde-\xcd\xe7\xcaz\xb3\xbb\x19\xd3\x81\x10>c>\x08\x00"X\x11\xc2\x84@\xd2\xe7B*L\x00\x01P\x04R\xc3@\xbaB0\xdb8#\x83:\x83\xa2h\xbc=\xcd\xdaS\xe1Y,L\xd3\xa0\xf2\xa8\x94J:\xe6\xd8\x81Q\xe0\xe8d\xa7#\xe2,\xd1\xaeR*\xed \xa5\x01\x13\x01\xa6\x0cb\xe3;\xbe\xaf\xfcK[^wK\xe1N\xaf\xbbk\xe8B\xd1\xf4\xc1\x07\xb3\xab[\x10\xfdkmvwcB\xa6\xa4\xd4G\xc4D\xc2\x141\xad\x91\x10\x00\x08J\x81\xcb}\xee \xee+W\xba\x8a\x80\x90|\xd4\xa0\xd6\xa0\xd4T\xde\xe1\x9d,!\xe2\xb5\xa94\xe3\xe7\xd5\x9f\x06\x18\xcba\x03aP\xb8f\xcd\x04\x1a_\\9\xf1\xed\xe4\x9e\xe5\xa6\xd1\xd2\x9f\x03\xa7o\xae\x90H\xf3\xfb\xef\xffH3\xadk (esc)
+ \xb0\x90\x92\x88\xb9\x14"\x068\xc2\x1e@\x00\xbb\x8a)\xd3'\x859 (esc)
+ \xa8\x80\x84S \xa5\xbd-g\x13`\xe4\xdc\xc3H^\xdf\xe2\xc0TM\xc7\xf4BO\xcf\xde\xae\xe5\xae#\x1frM(K\x97`F\x19\x16s\x05GD\xb9\x01\xc1\x00+\x8c|\x9fp\xc11\xf0\x14\x00\x9cJ\x82<\xe0\x12\x9f\xc1\x90\xd0\xf5\xc8\x19>Pr\xaa\xeaW\xf5\xc4\xae\xd1\xfc\x17\xcf'\x13u\xb1\x9e\xcdHnC\x0e\xcc`\xc8\xa0&\xac\x0e\xf1|\x8c\x10$\xc4\x8c\xa2p\x05`\xdc\x08 \x80\xc4\xd7Rr-\x94\x10\x102\xedi;\xf3f\xf1z\x16\x86\xdb\xd8d\xe5\xe7\x8b\xf5\x8d\rzp\xb2\xfe\xac\xf5\xf2\xd3\xfe\xfckws\xedt\x96b\xd5l\x1c\x0b\x85\xb5\x170\x8f\x11\x84\xb0\x8f\x19\xa0\x00 _\x07\x1ac\xa2\xc3\x89Z\xe7\x96\xf9 \xccNFg\xc7F\xaa\x8a+\x9a\x9cc_\x17\x1b\x17\x9e]z38<\x97+\xb5,",\xc8\xc8?\\\x91\xff\x17.~U\x96\x97\xf5%\xdeN<\x8e\xf5\x97%\xe7^\xcfL\xed~\xda\x96k\xdc->\x86\x02\x83"\x96H\xa6\xe3\xaas=-\xeb7\xe5\xda\x8f\xbc (no-eol) (esc)
stream_out
@@ -1157,7 +1025,7 @@ failing unbundle, requires POST request
Static files
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'static/style.css'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/static/style.css'
200 Script output follows
a { text-decoration:none; }
@@ -1266,10 +1134,10 @@ Static files
top: -1px;
}
-Stop and restart with HGENCODING=cp932 and preferuncompressed
+Stop and restart with HGENCODING=cp932
$ "$TESTDIR/killdaemons.py"
- $ HGENCODING=cp932 hg serve --config server.preferuncompressed=True -n test \
+ $ HGENCODING=cp932 hg serve --config server.uncompressed=False -n test \
> -p $HGPORT -d --pid-file=hg.pid -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
@@ -1280,84 +1148,10 @@ commit message with Japanese Kanji 'Noh', which ends with '\x5c'
Graph json escape of multibyte character
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/' \
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/' \
> | grep '^var data ='
- var data = [["548001d11f45", [0, 1], [[0, 0, 1, -1, ""]], "\u80fd", "test", "1970-01-01", ["unstable", true], ["tip"], ["something"]], ["ba87b23d29ca", [0, 1], [[0, 0, 1, 3, "FF0000"]], "branch", "test", "1970-01-01", ["unstable", false], [], []], ["1d22e65f027e", [0, 1], [[0, 0, 1, 3, ""]], "branch", "test", "1970-01-01", ["stable", true], [], []], ["a4f92ed23982", [0, 1], [[0, 0, 1, 3, ""]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], [], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"], ["anotherthing"]]];
-
-capabilities
-
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=capabilities'; echo
- 200 Script output follows
-
- lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream-preferred stream unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024
-
-heads
+ var data = [["40b4d6888e92", [0, 1], [[0, 0, 1]], "\u80fd", "test", "1970-01-01", ["stable", true], ["tip"], ["something"]], ["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", false], [], []], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], [], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"], ["anotherthing"]]];
ERRORS ENCOUNTERED
$ cat errors.log
- $ "$TESTDIR/killdaemons.py"
-
- $ cd ..
-
-Test graph paging
-
- $ mkcommit() {
- > echo $1 >> a
- > hg ci -Am $1 a
- > }
-
- $ hg init graph
- $ cd graph
- $ mkcommit 0
- $ mkcommit 1
- $ mkcommit 2
- $ mkcommit 3
- $ mkcommit 4
- $ mkcommit 5
- $ hg serve --config server.uncompressed=False \
- > --config web.maxshortchanges=2 \
- > -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
- $ cat hg.pid >> $DAEMON_PIDS
- $ hg log -G --template '{rev}:{node|short} {desc}\n'
- @ 5:aed2d9c1d0e7 5
- |
- o 4:b60a39a85a01 4
- |
- o 3:ada793dcc118 3
- |
- o 2:ab4f1438558b 2
- |
- o 1:e06180cbfb0c 1
- |
- o 0:b4e73ffab476 0
-
-
-Test paging
-
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT \
- > 'graph/?style=raw' | grep changeset
- changeset: aed2d9c1d0e7
- changeset: b60a39a85a01
-
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT \
- > 'graph/?style=raw&revcount=3' | grep changeset
- changeset: aed2d9c1d0e7
- changeset: b60a39a85a01
- changeset: ada793dcc118
-
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT \
- > 'graph/e06180cbfb0?style=raw&revcount=3' | grep changeset
- changeset: ab4f1438558b
- changeset: e06180cbfb0c
- changeset: b4e73ffab476
-
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT \
- > 'graph/b4e73ffab47?style=raw&revcount=3' | grep changeset
- changeset: ab4f1438558b
- changeset: e06180cbfb0c
- changeset: b4e73ffab476
-
- $ cat errors.log
-
- $ cd ..
diff --git a/tests/test-hgweb-descend-empties.t b/tests/test-hgweb-descend-empties.t
index b97c018..db70cfd 100644
--- a/tests/test-hgweb-descend-empties.t
+++ b/tests/test-hgweb-descend-empties.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
Test chains of near empty directories, terminating 3 different ways:
- a1: file at level 4 (deepest)
- b1: two dirs at level 3
@@ -29,7 +27,7 @@ Set up the repo
manifest with descending
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file'
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -140,5 +138,3 @@ manifest with descending
$ cat errors.log
-
- $ cd ..
diff --git a/tests/test-hgweb-diffs.t b/tests/test-hgweb-diffs.t
index f96f42b..6bb9d81 100644
--- a/tests/test-hgweb-diffs.t
+++ b/tests/test-hgweb-diffs.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
setting up repo
$ hg init test
@@ -12,22 +10,8 @@ setting up repo
change permissions for git diffs
- $ hg import -q --bypass - <<EOF
- > # HG changeset patch
- > # User test
- > # Date 0 0
- > b
- >
- > diff --git a/a b/a
- > old mode 100644
- > new mode 100755
- > diff --git a/b b/b
- > deleted file mode 100644
- > --- a/b
- > +++ /dev/null
- > @@ -1,1 +0,0 @@
- > -b
- > EOF
+ $ chmod 755 a
+ $ hg ci -Amb
set up hgweb
@@ -36,7 +20,7 @@ set up hgweb
revision
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rev/0'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/0'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -97,14 +81,14 @@ revision
</tr>
<tr>
<th class="date">date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td></tr>
+ <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
<tr>
<th class="author">parents</th>
<td class="author"></td>
</tr>
<tr>
<th class="author">children</th>
- <td class="author"> <a href="/rev/559edbd9ed20">559edbd9ed20</a></td>
+ <td class="author"> <a href="/rev/78e4ebad7cdf">78e4ebad7cdf</a></td>
</tr>
<tr>
<th class="files">files</th>
@@ -166,7 +150,7 @@ revision
raw revision
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'raw-rev/0'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-rev/0'
200 Script output follows
@@ -191,7 +175,7 @@ raw revision
diff removed file
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/tip/b'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -202,7 +186,7 @@ diff removed file
<link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
<script type="text/javascript" src="/static/mercurial.js"></script>
- <title>test: b diff</title>
+ <title>test: a diff</title>
</head>
<body>
@@ -213,24 +197,23 @@ diff removed file
<img src="/static/hglogo.png" alt="mercurial" /></a>
</div>
<ul>
- <li><a href="/shortlog/559edbd9ed20">log</a></li>
- <li><a href="/graph/559edbd9ed20">graph</a></li>
+ <li><a href="/shortlog/78e4ebad7cdf">log</a></li>
+ <li><a href="/graph/78e4ebad7cdf">graph</a></li>
<li><a href="/tags">tags</a></li>
<li><a href="/bookmarks">bookmarks</a></li>
<li><a href="/branches">branches</a></li>
</ul>
<ul>
- <li><a href="/rev/559edbd9ed20">changeset</a></li>
- <li><a href="/file/559edbd9ed20">browse</a></li>
+ <li><a href="/rev/78e4ebad7cdf">changeset</a></li>
+ <li><a href="/file/78e4ebad7cdf">browse</a></li>
</ul>
<ul>
- <li><a href="/file/559edbd9ed20/b">file</a></li>
- <li><a href="/file/tip/b">latest</a></li>
+ <li><a href="/file/78e4ebad7cdf/a">file</a></li>
+ <li><a href="/file/tip/a">latest</a></li>
<li class="active">diff</li>
- <li><a href="/comparison/559edbd9ed20/b">comparison</a></li>
- <li><a href="/annotate/559edbd9ed20/b">annotate</a></li>
- <li><a href="/log/559edbd9ed20/b">file log</a></li>
- <li><a href="/raw-file/559edbd9ed20/b">raw</a></li>
+ <li><a href="/annotate/78e4ebad7cdf/a">annotate</a></li>
+ <li><a href="/log/78e4ebad7cdf/a">file log</a></li>
+ <li><a href="/raw-file/78e4ebad7cdf/a">raw</a></li>
</ul>
<ul>
<li><a href="/help">help</a></li>
@@ -239,7 +222,7 @@ diff removed file
<div class="main">
<h2><a href="/">test</a></h2>
- <h3>diff b @ 1:559edbd9ed20</h3>
+ <h3>diff a @ 1:78e4ebad7cdf</h3>
<form class="search" action="/log">
<p></p>
@@ -257,11 +240,11 @@ diff removed file
</tr>
<tr>
<th>date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
</tr>
<tr>
<th>parents</th>
- <td><a href="/file/0cd96de13884/b">0cd96de13884</a> </td>
+ <td></td>
</tr>
<tr>
<th>children</th>
@@ -273,10 +256,10 @@ diff removed file
<div class="overflow">
<div class="sourcefirst"> line diff</div>
- <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- a/b Thu Jan 01 00:00:00 1970 +0000
- </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
- </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -1,1 +0,0 @@
- </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="minusline">-b
+ <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+ </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ b/a Thu Jan 01 00:00:00 1970 +0000
+ </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -0,0 +1,1 @@
+ </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="plusline">+a
</span></pre></div>
</div>
</div>
@@ -297,7 +280,7 @@ set up hgweb with git diffs
revision
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rev/0'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/0'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -358,14 +341,14 @@ revision
</tr>
<tr>
<th class="date">date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td></tr>
+ <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
<tr>
<th class="author">parents</th>
<td class="author"></td>
</tr>
<tr>
<th class="author">children</th>
- <td class="author"> <a href="/rev/559edbd9ed20">559edbd9ed20</a></td>
+ <td class="author"> <a href="/rev/78e4ebad7cdf">78e4ebad7cdf</a></td>
</tr>
<tr>
<th class="files">files</th>
@@ -429,7 +412,7 @@ revision
revision
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'raw-rev/0'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-rev/0'
200 Script output follows
@@ -456,7 +439,7 @@ revision
diff removed file
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/tip/a'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -478,24 +461,23 @@ diff removed file
<img src="/static/hglogo.png" alt="mercurial" /></a>
</div>
<ul>
- <li><a href="/shortlog/559edbd9ed20">log</a></li>
- <li><a href="/graph/559edbd9ed20">graph</a></li>
+ <li><a href="/shortlog/78e4ebad7cdf">log</a></li>
+ <li><a href="/graph/78e4ebad7cdf">graph</a></li>
<li><a href="/tags">tags</a></li>
<li><a href="/bookmarks">bookmarks</a></li>
<li><a href="/branches">branches</a></li>
</ul>
<ul>
- <li><a href="/rev/559edbd9ed20">changeset</a></li>
- <li><a href="/file/559edbd9ed20">browse</a></li>
+ <li><a href="/rev/78e4ebad7cdf">changeset</a></li>
+ <li><a href="/file/78e4ebad7cdf">browse</a></li>
</ul>
<ul>
- <li><a href="/file/559edbd9ed20/a">file</a></li>
+ <li><a href="/file/78e4ebad7cdf/a">file</a></li>
<li><a href="/file/tip/a">latest</a></li>
<li class="active">diff</li>
- <li><a href="/comparison/559edbd9ed20/a">comparison</a></li>
- <li><a href="/annotate/559edbd9ed20/a">annotate</a></li>
- <li><a href="/log/559edbd9ed20/a">file log</a></li>
- <li><a href="/raw-file/559edbd9ed20/a">raw</a></li>
+ <li><a href="/annotate/78e4ebad7cdf/a">annotate</a></li>
+ <li><a href="/log/78e4ebad7cdf/a">file log</a></li>
+ <li><a href="/raw-file/78e4ebad7cdf/a">raw</a></li>
</ul>
<ul>
<li><a href="/help">help</a></li>
@@ -504,7 +486,7 @@ diff removed file
<div class="main">
<h2><a href="/">test</a></h2>
- <h3>diff a @ 1:559edbd9ed20</h3>
+ <h3>diff a @ 1:78e4ebad7cdf</h3>
<form class="search" action="/log">
<p></p>
@@ -522,7 +504,7 @@ diff removed file
</tr>
<tr>
<th>date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
</tr>
<tr>
<th>parents</th>
@@ -538,377 +520,12 @@ diff removed file
<div class="overflow">
<div class="sourcefirst"> line diff</div>
- <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> old mode 100644
- <a href="#l1.2" id="l1.2"> 1.2</a> new mode 100755
- </pre></div>
- </div>
- </div>
- </div>
-
- <script type="text/javascript">process_dates()</script>
-
-
- </body>
- </html>
-
-
-comparison new file
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'comparison/0/a'
- 200 Script output follows
-
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
- <head>
- <link rel="icon" href="/static/hgicon.png" type="image/png" />
- <meta name="robots" content="index, nofollow" />
- <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
- <script type="text/javascript" src="/static/mercurial.js"></script>
-
- <title>test: a comparison</title>
- </head>
- <body>
-
- <div class="container">
- <div class="menu">
- <div class="logo">
- <a href="http://mercurial.selenic.com/">
- <img src="/static/hglogo.png" alt="mercurial" /></a>
- </div>
- <ul>
- <li><a href="/shortlog/0cd96de13884">log</a></li>
- <li><a href="/graph/0cd96de13884">graph</a></li>
- <li><a href="/tags">tags</a></li>
- <li><a href="/bookmarks">bookmarks</a></li>
- <li><a href="/branches">branches</a></li>
- </ul>
- <ul>
- <li><a href="/rev/0cd96de13884">changeset</a></li>
- <li><a href="/file/0cd96de13884">browse</a></li>
- </ul>
- <ul>
- <li><a href="/file/0cd96de13884/a">file</a></li>
- <li><a href="/file/tip/a">latest</a></li>
- <li><a href="/diff/0cd96de13884/a">diff</a></li>
- <li class="active">comparison</li>
- <li><a href="/annotate/0cd96de13884/a">annotate</a></li>
- <li><a href="/log/0cd96de13884/a">file log</a></li>
- <li><a href="/raw-file/0cd96de13884/a">raw</a></li>
- </ul>
- <ul>
- <li><a href="/help">help</a></li>
- </ul>
- </div>
-
- <div class="main">
- <h2><a href="/">test</a></h2>
- <h3>comparison a @ 0:0cd96de13884</h3>
-
- <form class="search" action="/log">
- <p></p>
- <p><input name="rev" id="search1" type="text" size="30" /></p>
- <div id="hint">find changesets by author, revision,
- files, or words in the commit message</div>
- </form>
-
- <div class="description">a</div>
-
- <table id="changesetEntry">
- <tr>
- <th>author</th>
- <td>&#116;&#101;&#115;&#116;</td>
- </tr>
- <tr>
- <th>date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
- </tr>
- <tr>
- <th>parents</th>
- <td></td>
- </tr>
- <tr>
- <th>children</th>
- <td></td>
- </tr>
-
- </table>
-
- <div class="overflow">
- <div class="sourcefirst"> comparison</div>
- <div class="legend">
- <span class="legendinfo equal">equal</span>
- <span class="legendinfo delete">deleted</span>
- <span class="legendinfo insert">inserted</span>
- <span class="legendinfo replace">replaced</span>
- </div>
-
- <table class="bigtable">
- <thead class="header">
- <tr>
- <th>-1:000000000000</th>
- <th>0:b789fdd96dc2</th>
- </tr>
- </thead>
-
- <tbody class="block">
-
- <tr>
- <td class="source insert"><a href="#r1" id="r1"> </a> </td>
- <td class="source insert"><a href="#r1" id="r1"> 1</a> a</td>
- </tr>
- </tbody>
- </table>
-
- </div>
- </div>
- </div>
-
- <script type="text/javascript">process_dates()</script>
-
-
- </body>
- </html>
-
-
-comparison existing file
-
- $ hg up
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo a >> a
- $ hg ci -mc
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'comparison/tip/a'
- 200 Script output follows
-
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
- <head>
- <link rel="icon" href="/static/hgicon.png" type="image/png" />
- <meta name="robots" content="index, nofollow" />
- <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
- <script type="text/javascript" src="/static/mercurial.js"></script>
-
- <title>test: a comparison</title>
- </head>
- <body>
-
- <div class="container">
- <div class="menu">
- <div class="logo">
- <a href="http://mercurial.selenic.com/">
- <img src="/static/hglogo.png" alt="mercurial" /></a>
- </div>
- <ul>
- <li><a href="/shortlog/d73db4d812ff">log</a></li>
- <li><a href="/graph/d73db4d812ff">graph</a></li>
- <li><a href="/tags">tags</a></li>
- <li><a href="/bookmarks">bookmarks</a></li>
- <li><a href="/branches">branches</a></li>
- </ul>
- <ul>
- <li><a href="/rev/d73db4d812ff">changeset</a></li>
- <li><a href="/file/d73db4d812ff">browse</a></li>
- </ul>
- <ul>
- <li><a href="/file/d73db4d812ff/a">file</a></li>
- <li><a href="/file/tip/a">latest</a></li>
- <li><a href="/diff/d73db4d812ff/a">diff</a></li>
- <li class="active">comparison</li>
- <li><a href="/annotate/d73db4d812ff/a">annotate</a></li>
- <li><a href="/log/d73db4d812ff/a">file log</a></li>
- <li><a href="/raw-file/d73db4d812ff/a">raw</a></li>
- </ul>
- <ul>
- <li><a href="/help">help</a></li>
- </ul>
- </div>
-
- <div class="main">
- <h2><a href="/">test</a></h2>
- <h3>comparison a @ 2:d73db4d812ff</h3>
-
- <form class="search" action="/log">
- <p></p>
- <p><input name="rev" id="search1" type="text" size="30" /></p>
- <div id="hint">find changesets by author, revision,
- files, or words in the commit message</div>
- </form>
-
- <div class="description">c</div>
-
- <table id="changesetEntry">
- <tr>
- <th>author</th>
- <td>&#116;&#101;&#115;&#116;</td>
- </tr>
- <tr>
- <th>date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
- </tr>
- <tr>
- <th>parents</th>
- <td><a href="/file/0cd96de13884/a">0cd96de13884</a> </td>
- </tr>
- <tr>
- <th>children</th>
- <td></td>
- </tr>
-
- </table>
-
- <div class="overflow">
- <div class="sourcefirst"> comparison</div>
- <div class="legend">
- <span class="legendinfo equal">equal</span>
- <span class="legendinfo delete">deleted</span>
- <span class="legendinfo insert">inserted</span>
- <span class="legendinfo replace">replaced</span>
- </div>
-
- <table class="bigtable">
- <thead class="header">
- <tr>
- <th>0:b789fdd96dc2</th>
- <th>1:a80d06849b33</th>
- </tr>
- </thead>
-
- <tbody class="block">
-
- <tr>
- <td class="source equal"><a href="#l1r1" id="l1r1"> 1</a> a</td>
- <td class="source equal"><a href="#l1r1" id="l1r1"> 1</a> a</td>
- </tr>
- <tr>
- <td class="source insert"><a href="#r2" id="r2"> </a> </td>
- <td class="source insert"><a href="#r2" id="r2"> 2</a> a</td>
- </tr>
- </tbody>
- </table>
-
- </div>
- </div>
- </div>
-
- <script type="text/javascript">process_dates()</script>
-
-
- </body>
- </html>
-
-
-comparison removed file
-
- $ hg rm a
- $ hg ci -md
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'comparison/tip/a'
- 200 Script output follows
-
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
- <head>
- <link rel="icon" href="/static/hgicon.png" type="image/png" />
- <meta name="robots" content="index, nofollow" />
- <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
- <script type="text/javascript" src="/static/mercurial.js"></script>
-
- <title>test: a comparison</title>
- </head>
- <body>
-
- <div class="container">
- <div class="menu">
- <div class="logo">
- <a href="http://mercurial.selenic.com/">
- <img src="/static/hglogo.png" alt="mercurial" /></a>
- </div>
- <ul>
- <li><a href="/shortlog/20e80271eb7a">log</a></li>
- <li><a href="/graph/20e80271eb7a">graph</a></li>
- <li><a href="/tags">tags</a></li>
- <li><a href="/bookmarks">bookmarks</a></li>
- <li><a href="/branches">branches</a></li>
- </ul>
- <ul>
- <li><a href="/rev/20e80271eb7a">changeset</a></li>
- <li><a href="/file/20e80271eb7a">browse</a></li>
- </ul>
- <ul>
- <li><a href="/file/20e80271eb7a/a">file</a></li>
- <li><a href="/file/tip/a">latest</a></li>
- <li><a href="/diff/20e80271eb7a/a">diff</a></li>
- <li class="active">comparison</li>
- <li><a href="/annotate/20e80271eb7a/a">annotate</a></li>
- <li><a href="/log/20e80271eb7a/a">file log</a></li>
- <li><a href="/raw-file/20e80271eb7a/a">raw</a></li>
- </ul>
- <ul>
- <li><a href="/help">help</a></li>
- </ul>
- </div>
-
- <div class="main">
- <h2><a href="/">test</a></h2>
- <h3>comparison a @ 3:20e80271eb7a</h3>
-
- <form class="search" action="/log">
- <p></p>
- <p><input name="rev" id="search1" type="text" size="30" /></p>
- <div id="hint">find changesets by author, revision,
- files, or words in the commit message</div>
- </form>
-
- <div class="description">d</div>
-
- <table id="changesetEntry">
- <tr>
- <th>author</th>
- <td>&#116;&#101;&#115;&#116;</td>
- </tr>
- <tr>
- <th>date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
- </tr>
- <tr>
- <th>parents</th>
- <td><a href="/file/0cd96de13884/a">0cd96de13884</a> </td>
- </tr>
- <tr>
- <th>children</th>
- <td></td>
- </tr>
-
- </table>
-
- <div class="overflow">
- <div class="sourcefirst"> comparison</div>
- <div class="legend">
- <span class="legendinfo equal">equal</span>
- <span class="legendinfo delete">deleted</span>
- <span class="legendinfo insert">inserted</span>
- <span class="legendinfo replace">replaced</span>
- </div>
-
- <table class="bigtable">
- <thead class="header">
- <tr>
- <th>1:a80d06849b33</th>
- <th>-1:000000000000</th>
- </tr>
- </thead>
-
- <tbody class="block">
-
- <tr>
- <td class="source delete"><a href="#l1" id="l1"> 1</a> a</td>
- <td class="source delete"><a href="#l1" id="l1"> </a> </td>
- </tr>
- <tr>
- <td class="source delete"><a href="#l2" id="l2"> 2</a> a</td>
- <td class="source delete"><a href="#l2" id="l2"> </a> </td>
- </tr>
- </tbody>
- </table>
-
+ <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> new file mode 100755
+ <a href="#l1.2" id="l1.2"> 1.2</a> <span class="minusline">--- /dev/null
+ </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="plusline">+++ b/a
+ </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="atline">@@ -0,0 +1,1 @@
+ </span><a href="#l1.5" id="l1.5"> 1.5</a> <span class="plusline">+a
+ </span></pre></div>
</div>
</div>
</div>
@@ -919,7 +536,6 @@ comparison removed file
</body>
</html>
-
$ cd ..
test import rev as raw-rev
@@ -932,55 +548,8 @@ test import rev as raw-rev
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd test1
- $ hg import -q --bypass --exact http://localhost:$HGPORT/rev/1
-
-raw revision with diff block numbers
-
- $ "$TESTDIR/killdaemons.py"
- $ cat <<EOF > .hg/hgrc
- > [web]
- > templates = rawdiff
- > EOF
- $ mkdir rawdiff
- $ cat <<EOF > rawdiff/map
- > mimetype = 'text/plain; charset={encoding}'
- > changeset = '{diff}'
- > difflineplus = '{line}'
- > difflineminus = '{line}'
- > difflineat = '{line}'
- > diffline = '{line}'
- > filenodelink = ''
- > filenolink = ''
- > fileline = '{line}'
- > diffblock = 'Block: {blockno}\n{lines}\n'
- > EOF
- $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
- $ cat hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'raw-rev/0'
- 200 Script output follows
-
- Block: 1
- diff -r 000000000000 -r 0cd96de13884 a
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/a Thu Jan 01 00:00:00 1970 +0000
- @@ -0,0 +1,1 @@
- +a
-
- Block: 2
- diff -r 000000000000 -r 0cd96de13884 b
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/b Thu Jan 01 00:00:00 1970 +0000
- @@ -0,0 +1,1 @@
- +b
-
- $ "$TESTDIR/killdaemons.py"
- $ rm .hg/hgrc rawdiff/map
- $ rmdir rawdiff
- $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
- $ cat hg.pid >> $DAEMON_PIDS
+ $ hg import -q --exact http://localhost:$HGPORT/rev/1
errors
$ cat ../test/errors.log
-
- $ cd ..
diff --git a/tests/test-hgweb-empty.t b/tests/test-hgweb-empty.t
index 33d6cfd..010e55c 100644
--- a/tests/test-hgweb-empty.t
+++ b/tests/test-hgweb-empty.t
@@ -1,12 +1,10 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
Some tests for hgweb in an empty repository
$ hg init test
$ cd test
$ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'shortlog')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/shortlog')
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -91,7 +89,7 @@ Some tests for hgweb in an empty repository
</body>
</html>
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log')
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -176,7 +174,7 @@ Some tests for hgweb in an empty repository
</body>
</html>
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'graph')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/graph')
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -250,6 +248,16 @@ Some tests for hgweb in an empty repository
var graph = new Graph();
graph.scale(39);
+ graph.edge = function(x0, y0, x1, y1, color) {
+
+ this.setColor(color, 0.0, 0.65);
+ this.ctx.beginPath();
+ this.ctx.moveTo(x0, y0);
+ this.ctx.lineTo(x1, y1);
+ this.ctx.stroke();
+
+ }
+
var revlink = '<li style="_STYLE"><span class="desc">';
revlink += '<a href="/rev/_NODEID" title="_NODEID">_DESC</a>';
revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
@@ -322,7 +330,7 @@ Some tests for hgweb in an empty repository
</body>
</html>
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file')
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -395,5 +403,3 @@ Some tests for hgweb in an empty repository
</body>
</html>
-
- $ cd ..
diff --git a/tests/test-hgweb-filelog.t b/tests/test-hgweb-filelog.t
index 95d7f9e..c38dbae 100644
--- a/tests/test-hgweb-filelog.t
+++ b/tests/test-hgweb-filelog.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
$ hg init test
$ cd test
@@ -109,7 +108,7 @@
tip - two revisions
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/tip/a')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/tip/a')
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -148,7 +147,6 @@ tip - two revisions
<ul>
<li><a href="/file/01de2d66a28d/a">file</a></li>
<li><a href="/diff/01de2d66a28d/a">diff</a></li>
- <li><a href="/comparison/01de2d66a28d/a">comparison</a></li>
<li><a href="/annotate/01de2d66a28d/a">annotate</a></li>
<li class="active">file log</li>
<li><a href="/raw-file/01de2d66a28d/a">raw</a></li>
@@ -181,12 +179,12 @@ tip - two revisions
<th class="description">description</th>
</tr>
<tr class="parity0">
- <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
<td class="author">test</td>
<td class="description"><a href="/rev/01de2d66a28d">second a</a></td>
</tr>
<tr class="parity1">
- <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
<td class="author">test</td>
<td class="description"><a href="/rev/5ed941583260">first a</a></td>
</tr>
@@ -211,7 +209,7 @@ tip - two revisions
second version - two revisions
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/3/a')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/3/a')
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -250,7 +248,6 @@ second version - two revisions
<ul>
<li><a href="/file/01de2d66a28d/a">file</a></li>
<li><a href="/diff/01de2d66a28d/a">diff</a></li>
- <li><a href="/comparison/01de2d66a28d/a">comparison</a></li>
<li><a href="/annotate/01de2d66a28d/a">annotate</a></li>
<li class="active">file log</li>
<li><a href="/raw-file/01de2d66a28d/a">raw</a></li>
@@ -283,12 +280,12 @@ second version - two revisions
<th class="description">description</th>
</tr>
<tr class="parity0">
- <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
<td class="author">test</td>
<td class="description"><a href="/rev/01de2d66a28d">second a</a></td>
</tr>
<tr class="parity1">
- <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
<td class="author">test</td>
<td class="description"><a href="/rev/5ed941583260">first a</a></td>
</tr>
@@ -313,7 +310,7 @@ second version - two revisions
first deleted - one revision
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/2/a')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/2/a')
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -352,7 +349,6 @@ first deleted - one revision
<ul>
<li><a href="/file/5ed941583260/a">file</a></li>
<li><a href="/diff/5ed941583260/a">diff</a></li>
- <li><a href="/comparison/5ed941583260/a">comparison</a></li>
<li><a href="/annotate/5ed941583260/a">annotate</a></li>
<li class="active">file log</li>
<li><a href="/raw-file/5ed941583260/a">raw</a></li>
@@ -385,7 +381,7 @@ first deleted - one revision
<th class="description">description</th>
</tr>
<tr class="parity0">
- <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
<td class="author">test</td>
<td class="description"><a href="/rev/5ed941583260">first a</a></td>
</tr>
@@ -410,7 +406,7 @@ first deleted - one revision
first version - one revision
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/1/a')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/1/a')
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -449,7 +445,6 @@ first version - one revision
<ul>
<li><a href="/file/5ed941583260/a">file</a></li>
<li><a href="/diff/5ed941583260/a">diff</a></li>
- <li><a href="/comparison/5ed941583260/a">comparison</a></li>
<li><a href="/annotate/5ed941583260/a">annotate</a></li>
<li class="active">file log</li>
<li><a href="/raw-file/5ed941583260/a">raw</a></li>
@@ -482,7 +477,7 @@ first version - one revision
<th class="description">description</th>
</tr>
<tr class="parity0">
- <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
<td class="author">test</td>
<td class="description"><a href="/rev/5ed941583260">first a</a></td>
</tr>
@@ -507,7 +502,7 @@ first version - one revision
before addition - error
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/0/a')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/0/a')
404 Not Found
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -534,8 +529,6 @@ before addition - error
<li><a href="/tags">tags</a></li>
<li><a href="/bookmarks">bookmarks</a></li>
<li><a href="/branches">branches</a></li>
- </ul>
- <ul>
<li><a href="/help">help</a></li>
</ul>
</div>
@@ -573,7 +566,7 @@ before addition - error
should show base link, use spartan because it shows it
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/tip/c?style=spartan')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/tip/c?style=spartan')
200 Script output follows
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
@@ -611,7 +604,7 @@ should show base link, use spartan because it shows it
<table class="logEntry parity0">
<tr>
- <th><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>:</th>
+ <th><span class="age">Thu Jan 01 00:00:00 1970 +0000</span>:</th>
<th class="firstline"><a href="/rev/b7682196df1c?style=spartan">change c</a></th>
</tr>
<tr>
@@ -629,14 +622,14 @@ should show base link, use spartan because it shows it
</tr>
<tr>
<th class="date">date:</th>
- <td class="date">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="date">Thu Jan 01 00:00:00 1970 +0000</td>
</tr>
</table>
<table class="logEntry parity1">
<tr>
- <th><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>:</th>
+ <th><span class="age">Thu Jan 01 00:00:00 1970 +0000</span>:</th>
<th class="firstline"><a href="/rev/1a6696706df2?style=spartan">mv b</a></th>
</tr>
<tr>
@@ -662,7 +655,7 @@ should show base link, use spartan because it shows it
</tr>
<tr>
<th class="date">date:</th>
- <td class="date">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="date">Thu Jan 01 00:00:00 1970 +0000</td>
</tr>
</table>
@@ -682,7 +675,7 @@ should show base link, use spartan because it shows it
rss log
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rss-log/tip/a')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rss-log/tip/a')
200 Script output follows
<?xml version="1.0" encoding="ascii"?>
@@ -713,7 +706,7 @@ rss log
atom log
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'atom-log/tip/a')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/atom-log/tip/a')
200 Script output follows
<?xml version="1.0" encoding="ascii"?>
@@ -761,5 +754,3 @@ atom log
errors
$ cat errors.log
-
- $ cd ..
diff --git a/tests/test-hgweb-no-path-info.t b/tests/test-hgweb-no-path-info.t
index dfcc571..7741d5e 100644
--- a/tests/test-hgweb-no-path-info.t
+++ b/tests/test-hgweb-no-path-info.t
@@ -105,5 +105,3 @@ should be used from d74fc8dec2b4 onward to route the request.
---- ERRORS
-
- $ cd ..
diff --git a/tests/test-hgweb-no-request-uri.t b/tests/test-hgweb-no-request-uri.t
index e6fb1f8..cc9fd00 100644
--- a/tests/test-hgweb-no-request-uri.t
+++ b/tests/test-hgweb-no-request-uri.t
@@ -139,5 +139,3 @@ should be used from d74fc8dec2b4 onward to route the request.
---- ERRORS
-
- $ cd ..
diff --git a/tests/test-hgweb-non-interactive.t b/tests/test-hgweb-non-interactive.t
index da04036..aab9e77 100644
--- a/tests/test-hgweb-non-interactive.t
+++ b/tests/test-hgweb-non-interactive.t
@@ -78,5 +78,3 @@ by the WSGI standard and strictly implemented by mod_wsgi.
[]
---- request.ENVIRON wsgi variables
['wsgi.errors', 'wsgi.input', 'wsgi.multiprocess', 'wsgi.multithread', 'wsgi.run_once', 'wsgi.url_scheme', 'wsgi.version']
-
- $ cd ..
diff --git a/tests/test-hgweb-raw.t b/tests/test-hgweb-raw.t
index b982ba3..fbe0b89 100644
--- a/tests/test-hgweb-raw.t
+++ b/tests/test-hgweb-raw.t
@@ -1,58 +1,57 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
Test raw style of hgweb
$ hg init test
$ cd test
$ mkdir sub
- $ cat >'sub/some text%.txt' <<ENDSOME
+ $ cat >'sub/some "text".txt' <<ENDSOME
> This is just some random text
> that will go inside the file and take a few lines.
> It is very boring to read, but computers don't
> care about things like that.
> ENDSOME
- $ hg add 'sub/some text%.txt'
+ $ hg add 'sub/some "text".txt'
+ warning: filename contains '"', which is reserved on Windows: 'sub/some "text".txt'
$ hg commit -d "1 0" -m "Just some text"
$ hg serve -p $HGPORT -A access.log -E error.log -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '?f=bf0ff59095c9;file=sub/some%20text%25.txt;style=raw' content-type content-length content-disposition) >getoutput.txt
-
- $ while kill `cat hg.pid` 2>/dev/null; do sleep 0; done
-
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?f=a23bf1310f6e;file=sub/some%20%22text%22.txt;style=raw' content-type content-length content-disposition) >getoutput.txt &
+ $ sleep 5
+ $ kill `cat hg.pid`
+ $ sleep 1 # wait for server to scream and die
$ cat getoutput.txt
200 Script output follows
content-type: application/binary
content-length: 157
- content-disposition: inline; filename="some text%.txt"
+ content-disposition: inline; filename="some \"text\".txt"
This is just some random text
that will go inside the file and take a few lines.
It is very boring to read, but computers don't
care about things like that.
$ cat access.log error.log
- 127.0.0.1 - - [*] "GET /?f=bf0ff59095c9;file=sub/some%20text%25.txt;style=raw HTTP/1.1" 200 - (glob)
+ 127.0.0.1 - - [*] "GET /?f=a23bf1310f6e;file=sub/some%20%22text%22.txt;style=raw HTTP/1.1" 200 - (glob)
$ rm access.log error.log
$ hg serve -p $HGPORT -A access.log -E error.log -d --pid-file=hg.pid \
> --config web.guessmime=True
$ cat hg.pid >> $DAEMON_PIDS
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '?f=bf0ff59095c9;file=sub/some%20text%25.txt;style=raw' content-type content-length content-disposition) >getoutput.txt
- $ while kill `cat hg.pid` 2>/dev/null; do sleep 0; done
-
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?f=a23bf1310f6e;file=sub/some%20%22text%22.txt;style=raw' content-type content-length content-disposition) >getoutput.txt &
+ $ sleep 5
+ $ kill `cat hg.pid`
+ $ sleep 1 # wait for server to scream and die
$ cat getoutput.txt
200 Script output follows
content-type: text/plain; charset="ascii"
content-length: 157
- content-disposition: inline; filename="some text%.txt"
+ content-disposition: inline; filename="some \"text\".txt"
This is just some random text
that will go inside the file and take a few lines.
It is very boring to read, but computers don't
care about things like that.
$ cat access.log error.log
- 127.0.0.1 - - [*] "GET /?f=bf0ff59095c9;file=sub/some%20text%25.txt;style=raw HTTP/1.1" 200 - (glob)
+ 127.0.0.1 - - [*] "GET /?f=a23bf1310f6e;file=sub/some%20%22text%22.txt;style=raw HTTP/1.1" 200 - (glob)
- $ cd ..
diff --git a/tests/test-hgweb-removed.t b/tests/test-hgweb-removed.t
index d96997c..745427e 100644
--- a/tests/test-hgweb-removed.t
+++ b/tests/test-hgweb-removed.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
setting up repo
$ hg init test
@@ -17,7 +15,7 @@ set up hgweb
revision
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rev/tip'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/tip'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -78,7 +76,7 @@ revision
</tr>
<tr>
<th class="date">date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td></tr>
+ <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
<tr>
<th class="author">parents</th>
<td class="author"><a href="/rev/cb9a9f314b8b">cb9a9f314b8b</a> </td>
@@ -135,7 +133,7 @@ revision
diff removed file
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/tip/a'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -171,7 +169,6 @@ diff removed file
<li><a href="/file/c78f6c5cbea9/a">file</a></li>
<li><a href="/file/tip/a">latest</a></li>
<li class="active">diff</li>
- <li><a href="/comparison/c78f6c5cbea9/a">comparison</a></li>
<li><a href="/annotate/c78f6c5cbea9/a">annotate</a></li>
<li><a href="/log/c78f6c5cbea9/a">file log</a></li>
<li><a href="/raw-file/c78f6c5cbea9/a">raw</a></li>
@@ -201,7 +198,7 @@ diff removed file
</tr>
<tr>
<th>date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
</tr>
<tr>
<th>parents</th>
@@ -232,5 +229,3 @@ diff removed file
</body>
</html>
-
- $ cd ..
diff --git a/tests/test-hgweb.t b/tests/test-hgweb.t
index e8846a3..5a8a1e4 100644
--- a/tests/test-hgweb.t
+++ b/tests/test-hgweb.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
Some tests for hgweb. Tests static files, plain files and different 404's.
$ hg init test
@@ -15,7 +13,7 @@ Some tests for hgweb. Tests static files, plain files and different 404's.
manifest
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/?style=raw')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/?style=raw')
200 Script output follows
@@ -23,7 +21,7 @@ manifest
-rw-r--r-- 4 foo
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/da?style=raw')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/da?style=raw')
200 Script output follows
@@ -33,14 +31,14 @@ manifest
plain file
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/foo?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/foo?style=raw'
200 Script output follows
foo
should give a 404 - static file that does not exist
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'static/bogus'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/static/bogus'
404 Not Found
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -67,8 +65,6 @@ should give a 404 - static file that does not exist
<li><a href="/tags">tags</a></li>
<li><a href="/bookmarks">bookmarks</a></li>
<li><a href="/branches">branches</a></li>
- </ul>
- <ul>
<li><a href="/help">help</a></li>
</ul>
</div>
@@ -106,7 +102,7 @@ should give a 404 - static file that does not exist
should give a 404 - bad revision
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/spam/foo?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/spam/foo?style=raw'
404 Not Found
@@ -115,7 +111,7 @@ should give a 404 - bad revision
should give a 400 - bad command
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/foo?cmd=spam&style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/foo?cmd=spam&style=raw'
400* (glob)
@@ -124,13 +120,13 @@ should give a 400 - bad command
should give a 404 - file does not exist
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/bork?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/bork?style=raw'
404 Not Found
error: bork@2ef0ac749a14: not found in manifest
[1]
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/bork'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/bork'
404 Not Found
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -157,8 +153,6 @@ should give a 404 - file does not exist
<li><a href="/tags">tags</a></li>
<li><a href="/bookmarks">bookmarks</a></li>
<li><a href="/branches">branches</a></li>
- </ul>
- <ul>
<li><a href="/help">help</a></li>
</ul>
</div>
@@ -193,7 +187,7 @@ should give a 404 - file does not exist
</html>
[1]
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/tip/bork?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/bork?style=raw'
404 Not Found
@@ -202,7 +196,7 @@ should give a 404 - file does not exist
try bad style
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/?style=foobar')
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/?style=foobar')
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -310,7 +304,7 @@ Test the access/error files are opened in append mode
static file
- $ "$TESTDIR/get-with-headers.py" --twice localhost:$HGPORT 'static/style-gitweb.css'
+ $ "$TESTDIR/get-with-headers.py" --twice localhost:$HGPORT '/static/style-gitweb.css'
200 Script output follows
body { font-family: sans-serif; font-size: 12px; margin:0px; border:solid #d9d8d1; border-width:1px; margin:10px; }
@@ -441,52 +435,9 @@ static file
top: -3px;
font-style: italic;
}
-
- /* Comparison */
- .legend {
- padding: 1.5% 0 1.5% 0;
- }
-
- .legendinfo {
- border: 1px solid #d9d8d1;
- font-size: 80%;
- text-align: center;
- padding: 0.5%;
- }
-
- .equal {
- background-color: #ffffff;
- }
-
- .delete {
- background-color: #faa;
- color: #333;
- }
-
- .insert {
- background-color: #ffa;
- }
-
- .replace {
- background-color: #e8e8e8;
- }
-
- .comparison {
- overflow-x: auto;
- }
-
- .header th {
- text-align: center;
- }
-
- .block {
- border-top: 1px solid #d9d8d1;
- }
304 Not Modified
errors
$ cat errors.log
-
- $ cd ..
diff --git a/tests/test-hgwebdir.t b/tests/test-hgwebdir.t
index 4e3a58b..f3d43fa 100644
--- a/tests/test-hgwebdir.t
+++ b/tests/test-hgwebdir.t
@@ -1,10 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
-hide outer repo and work in dir without '.hg'
- $ hg init
- $ mkdir dir
- $ cd dir
-
Tests some basic hgwebdir functionality. Tests setting up paths and
collection, different forms of 404s and the subdirectory support.
@@ -36,36 +29,12 @@ create a nested repository
$ hg --cwd c ci -Amc -d'3 0'
adding c
-create a subdirectory containing repositories and subrepositories
-
- $ mkdir notrepo
- $ cd notrepo
- $ hg init e
- $ echo e > e/e
- $ hg --cwd e ci -Ame -d'4 0'
- adding e
- $ hg init e/e2
- $ echo e2 > e/e2/e2
- $ hg --cwd e/e2 ci -Ame2 -d '4 0'
- adding e2
- $ hg init f
- $ echo f > f/f
- $ hg --cwd f ci -Amf -d'4 0'
- adding f
- $ hg init f/f2
- $ echo f2 > f/f2/f2
- $ hg --cwd f/f2 ci -Amf2 -d '4 0'
- adding f2
- $ cd ..
-
create repository without .hg/store
$ hg init nostore
$ rm -R nostore/.hg/store
$ root=`pwd`
$ cd ..
-
-serve
$ cat > paths.conf <<EOF
> [paths]
> a=$root/a
@@ -77,7 +46,7 @@ serve
should give a 404 - file does not exist
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'a/file/tip/bork?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/file/tip/bork?style=raw'
404 Not Found
@@ -86,25 +55,25 @@ should give a 404 - file does not exist
should succeed
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?style=raw'
200 Script output follows
/a/
/b/
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'a/file/tip/a?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/file/tip/a?style=raw'
200 Script output follows
a
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'b/file/tip/b?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/b/file/tip/b?style=raw'
200 Script output follows
b
should give a 404 - repo is not published
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'c/file/tip/c?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/c/file/tip/c?style=raw'
404 Not Found
@@ -113,14 +82,14 @@ should give a 404 - repo is not published
atom-log without basedir
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'a/atom-log' | grep '<link'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/atom-log' | grep '<link'
<link rel="self" href="http://*:$HGPORT/a/atom-log"/> (glob)
<link rel="alternate" href="http://*:$HGPORT/a/"/> (glob)
<link href="http://*:$HGPORT/a/rev/8580ff50825a"/> (glob)
rss-log without basedir
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'a/rss-log' | grep '<guid'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/rss-log' | grep '<guid'
<guid isPermaLink="true">http://*:$HGPORT/a/rev/8580ff50825a</guid> (glob)
$ cat > paths.conf <<EOF
> [paths]
@@ -138,7 +107,7 @@ rss-log without basedir
should succeed, slashy names
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=raw'
200 Script output follows
@@ -148,36 +117,24 @@ should succeed, slashy names
/coll/a/.hg/patches/
/coll/b/
/coll/c/
- /coll/notrepo/e/
- /coll/notrepo/f/
/rcoll/a/
/rcoll/a/.hg/patches/
/rcoll/b/
/rcoll/b/d/
/rcoll/c/
- /rcoll/notrepo/e/
- /rcoll/notrepo/e/e2/
- /rcoll/notrepo/f/
- /rcoll/notrepo/f/f2/
/star/webdir/a/
/star/webdir/a/.hg/patches/
/star/webdir/b/
/star/webdir/c/
- /star/webdir/notrepo/e/
- /star/webdir/notrepo/f/
/starstar/webdir/a/
/starstar/webdir/a/.hg/patches/
/starstar/webdir/b/
/starstar/webdir/b/d/
/starstar/webdir/c/
- /starstar/webdir/notrepo/e/
- /starstar/webdir/notrepo/e/e2/
- /starstar/webdir/notrepo/f/
- /starstar/webdir/notrepo/f/f2/
/astar/
/astar/.hg/patches/
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=paper'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=paper'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -258,22 +215,6 @@ should succeed, slashy names
</tr>
<tr class="parity0">
- <td><a href="/coll/notrepo/e/?style=paper">coll/notrepo/e</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity1">
- <td><a href="/coll/notrepo/f/?style=paper">coll/notrepo/f</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity0">
<td><a href="/rcoll/a/?style=paper">rcoll/a</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
@@ -314,38 +255,6 @@ should succeed, slashy names
</tr>
<tr class="parity1">
- <td><a href="/rcoll/notrepo/e/?style=paper">rcoll/notrepo/e</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity0">
- <td><a href="/rcoll/notrepo/e/e2/?style=paper">rcoll/notrepo/e/e2</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity1">
- <td><a href="/rcoll/notrepo/f/?style=paper">rcoll/notrepo/f</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity0">
- <td><a href="/rcoll/notrepo/f/f2/?style=paper">rcoll/notrepo/f/f2</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity1">
<td><a href="/star/webdir/a/?style=paper">star/webdir/a</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
@@ -378,22 +287,6 @@ should succeed, slashy names
</tr>
<tr class="parity1">
- <td><a href="/star/webdir/notrepo/e/?style=paper">star/webdir/notrepo/e</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity0">
- <td><a href="/star/webdir/notrepo/f/?style=paper">star/webdir/notrepo/f</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity1">
<td><a href="/starstar/webdir/a/?style=paper">starstar/webdir/a</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
@@ -434,38 +327,6 @@ should succeed, slashy names
</tr>
<tr class="parity0">
- <td><a href="/starstar/webdir/notrepo/e/?style=paper">starstar/webdir/notrepo/e</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity1">
- <td><a href="/starstar/webdir/notrepo/e/e2/?style=paper">starstar/webdir/notrepo/e/e2</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity0">
- <td><a href="/starstar/webdir/notrepo/f/?style=paper">starstar/webdir/notrepo/f</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity1">
- <td><a href="/starstar/webdir/notrepo/f/f2/?style=paper">starstar/webdir/notrepo/f/f2</a></td>
- <td>unknown</td>
- <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
- <td class="age">*</td> (glob)
- <td class="indexlinks"></td>
- </tr>
-
- <tr class="parity0">
<td><a href="/astar/?style=paper">astar</a></td>
<td>unknown</td>
<td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
@@ -490,19 +351,19 @@ should succeed, slashy names
</body>
</html>
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t?style=raw'
200 Script output follows
/t/a/
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/?style=raw'
200 Script output follows
/t/a/
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/?style=paper'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/?style=paper'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -551,7 +412,7 @@ should succeed, slashy names
</body>
</html>
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/a?style=atom'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a?style=atom'
200 Script output follows
<?xml version="1.0" encoding="ascii"?>
@@ -581,7 +442,7 @@ should succeed, slashy names
</entry>
</feed>
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/a/?style=atom'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a/?style=atom'
200 Script output follows
<?xml version="1.0" encoding="ascii"?>
@@ -611,14 +472,14 @@ should succeed, slashy names
</entry>
</feed>
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/a/file/tip/a?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a/file/tip/a?style=raw'
200 Script output follows
a
Test [paths] '*' extension
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/?style=raw'
200 Script output follows
@@ -626,60 +487,15 @@ Test [paths] '*' extension
/coll/a/.hg/patches/
/coll/b/
/coll/c/
- /coll/notrepo/e/
- /coll/notrepo/f/
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/a/file/tip/a?style=raw'
200 Script output follows
a
Test [paths] '**' extension
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/?style=raw'
- 200 Script output follows
-
-
- /rcoll/a/
- /rcoll/a/.hg/patches/
- /rcoll/b/
- /rcoll/b/d/
- /rcoll/c/
- /rcoll/notrepo/e/
- /rcoll/notrepo/e/e2/
- /rcoll/notrepo/f/
- /rcoll/notrepo/f/f2/
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
- 200 Script output follows
-
- d
-
-Test collapse = True
-
- $ "$TESTDIR/killdaemons.py"
- $ cat >> paths.conf <<EOF
- > [web]
- > collapse=true
- > EOF
- $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
- > -A access-paths.log -E error-paths-3.log
- $ cat hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/?style=raw'
- 200 Script output follows
-
-
- /coll/a/
- /coll/a/.hg/patches/
- /coll/b/
- /coll/c/
- /coll/notrepo/
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
- 200 Script output follows
-
- a
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/?style=raw'
200 Script output follows
@@ -688,97 +504,12 @@ Test collapse = True
/rcoll/b/
/rcoll/b/d/
/rcoll/c/
- /rcoll/notrepo/
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
- 200 Script output follows
-
- d
-
-Test intermediate directories
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/?style=raw'
- 200 Script output follows
-
-
- /rcoll/notrepo/e/
- /rcoll/notrepo/e/e2/
- /rcoll/notrepo/f/
- /rcoll/notrepo/f/f2/
-
-
-Test repositories inside intermediate directories
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/e/file/tip/e?style=raw'
- 200 Script output follows
-
- e
-
-Test subrepositories inside intermediate directories
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/f/f2/file/tip/f2?style=raw'
- 200 Script output follows
-
- f2
-
-Test descend = False
-
- $ "$TESTDIR/killdaemons.py"
- $ cat >> paths.conf <<EOF
- > descend=false
- > EOF
- $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
- > -A access-paths.log -E error-paths-4.log
- $ cat hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/?style=raw'
- 200 Script output follows
-
-
- /coll/a/
- /coll/b/
- /coll/c/
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
- 200 Script output follows
-
- a
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/?style=raw'
- 200 Script output follows
-
-
- /rcoll/a/
- /rcoll/b/
- /rcoll/c/
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/b/d/file/tip/d?style=raw'
200 Script output follows
d
-Test intermediate directories
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/?style=raw'
- 200 Script output follows
-
-
- /rcoll/notrepo/e/
- /rcoll/notrepo/f/
-
-
-Test repositories inside intermediate directories
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/e/file/tip/e?style=raw'
- 200 Script output follows
-
- e
-
-Test subrepositories inside intermediate directories
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/f/f2/file/tip/f2?style=raw'
- 200 Script output follows
-
- f2
-
Test [paths] '*' in a repo root
$ hg id http://localhost:$HGPORT1/astar
@@ -790,67 +521,22 @@ Test [paths] '*' in a repo root
> t/a = $root/a
> t/b = $root/b
> c = $root/c
- > EOF
- $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
- > -A access-paths.log -E error-paths-5.log
- $ cat hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=raw'
- 200 Script output follows
-
-
- /t/a/
- /t/b/
- /c/
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/?style=raw'
- 200 Script output follows
-
-
- /t/a/
- /t/b/
-
-
-Test collapse = True
-
- $ "$TESTDIR/killdaemons.py"
- $ cat >> paths.conf <<EOF
> [web]
- > collapse=true
+ > descend=false
> EOF
$ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
- > -A access-paths.log -E error-paths-6.log
+ > -A access-paths.log -E error-paths-3.log
$ cat hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=raw'
- 200 Script output follows
-
-
- /t/
- /c/
-
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/?style=raw'
- 200 Script output follows
-
-
- /t/a/
- /t/b/
-
test descend = False
- $ "$TESTDIR/killdaemons.py"
- $ cat >> paths.conf <<EOF
- > descend=false
- > EOF
- $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
- > -A access-paths.log -E error-paths-7.log
- $ cat hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=raw'
200 Script output follows
/c/
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/?style=raw'
200 Script output follows
@@ -864,12 +550,12 @@ test descend = False
> inexistent = $root/inexistent
> EOF
$ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
- > -A access-paths.log -E error-paths-8.log
+ > -A access-paths.log -E error-paths-4.log
$ cat hg.pid >> $DAEMON_PIDS
test inexistent and inaccessible repo should be ignored silently
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 ''
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/'
200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -921,7 +607,7 @@ test inexistent and inaccessible repo should be ignored silently
collections: should succeed
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/?style=raw'
200 Script output follows
@@ -929,32 +615,30 @@ collections: should succeed
/a/.hg/patches/
/b/
/c/
- /notrepo/e/
- /notrepo/f/
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'a/file/tip/a?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/file/tip/a?style=raw'
200 Script output follows
a
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'b/file/tip/b?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/b/file/tip/b?style=raw'
200 Script output follows
b
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'c/file/tip/c?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/c/file/tip/c?style=raw'
200 Script output follows
c
atom-log with basedir /
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'a/atom-log' | grep '<link'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/atom-log' | grep '<link'
<link rel="self" href="http://hg.example.com:8080/a/atom-log"/>
<link rel="alternate" href="http://hg.example.com:8080/a/"/>
<link href="http://hg.example.com:8080/a/rev/8580ff50825a"/>
rss-log with basedir /
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'a/rss-log' | grep '<guid'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/rss-log' | grep '<guid'
<guid isPermaLink="true">http://hg.example.com:8080/a/rev/8580ff50825a</guid>
$ "$TESTDIR/killdaemons.py"
$ hg serve --config web.baseurl=http://hg.example.com:8080/foo/ -p $HGPORT2 -d \
@@ -964,14 +648,14 @@ rss-log with basedir /
atom-log with basedir /foo/
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'a/atom-log' | grep '<link'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/atom-log' | grep '<link'
<link rel="self" href="http://hg.example.com:8080/foo/a/atom-log"/>
<link rel="alternate" href="http://hg.example.com:8080/foo/a/"/>
<link href="http://hg.example.com:8080/foo/a/rev/8580ff50825a"/>
rss-log with basedir /foo/
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'a/rss-log' | grep '<guid'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/rss-log' | grep '<guid'
<guid isPermaLink="true">http://hg.example.com:8080/foo/a/rev/8580ff50825a</guid>
paths errors 1
@@ -986,26 +670,6 @@ paths errors 3
$ cat error-paths-3.log
-paths errors 4
-
- $ cat error-paths-4.log
-
-paths errors 5
-
- $ cat error-paths-5.log
-
-paths errors 6
-
- $ cat error-paths-6.log
-
-paths errors 7
-
- $ cat error-paths-7.log
-
-paths errors 8
-
- $ cat error-paths-8.log
-
collections errors
$ cat error-collections.log
diff --git a/tests/test-hgwebdirsym.t b/tests/test-hgwebdirsym.t
index ee479e2..be4385b 100644
--- a/tests/test-hgwebdirsym.t
+++ b/tests/test-hgwebdirsym.t
@@ -1,10 +1,6 @@
Tests whether or not hgwebdir properly handles various symlink topologies.
- $ "$TESTDIR/hghave" serve symlink || exit 80
-
-hide outer repo
- $ hg init
-
+ $ "$TESTDIR/hghave" symlink || exit 80
$ hg init a
$ echo a > a/a
$ hg --cwd a ci -Ama -d'1 0'
@@ -33,7 +29,7 @@ hide outer repo
should succeed
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?style=raw'
200 Script output follows
@@ -41,34 +37,34 @@ should succeed
/b/
/c/
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'al/file/tip/a?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/al/file/tip/a?style=raw'
200 Script output follows
a
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'b/file/tip/b?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/b/file/tip/b?style=raw'
200 Script output follows
b
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'c/file/tip/c?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/c/file/tip/c?style=raw'
200 Script output follows
c
should fail
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'circle/al/file/tip/a?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/circle/al/file/tip/a?style=raw'
404 Not Found
error: repository circle/al/file/tip/a not found
[1]
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'circle/b/file/tip/a?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/circle/b/file/tip/a?style=raw'
404 Not Found
error: repository circle/b/file/tip/a not found
[1]
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'circle/c/file/tip/a?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/circle/c/file/tip/a?style=raw'
404 Not Found
diff --git a/tests/test-highlight.t b/tests/test-highlight.t
index 53ea7e1..7394e48 100644
--- a/tests/test-highlight.t
+++ b/tests/test-highlight.t
@@ -1,5 +1,5 @@
- $ "$TESTDIR/hghave" pygments serve || exit 80
+ $ "$TESTDIR/hghave" pygments || exit 80
$ cat <<EOF >> $HGRCPATH
> [extensions]
> highlight =
@@ -55,7 +55,7 @@ hg serve
hgweb filerevision, html
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/primes.py') \
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/primes.py') \
> | sed "s/class=\"k\"/class=\"kn\"/g" | sed "s/class=\"mf\"/class=\"mi\"/g"
200 Script output follows
@@ -92,7 +92,6 @@ hgweb filerevision, html
<li class="active">file</li>
<li><a href="/file/tip/primes.py">latest</a></li>
<li><a href="/diff/853dcd4de2a6/primes.py">diff</a></li>
- <li><a href="/comparison/853dcd4de2a6/primes.py">comparison</a></li>
<li><a href="/annotate/853dcd4de2a6/primes.py">annotate</a></li>
<li><a href="/log/853dcd4de2a6/primes.py">file log</a></li>
<li><a href="/raw-file/853dcd4de2a6/primes.py">raw</a></li>
@@ -122,7 +121,7 @@ hgweb filerevision, html
</tr>
<tr>
<th class="date">date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
</tr>
<tr>
<th class="author">parents</th>
@@ -184,7 +183,7 @@ hgweb filerevision, html
hgweb fileannotate, html
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'annotate/tip/primes.py') \
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/primes.py') \
> | sed "s/class=\"k\"/class=\"kn\"/g" | sed "s/class=\"mi\"/class=\"mf\"/g"
200 Script output follows
@@ -223,7 +222,6 @@ hgweb fileannotate, html
<li><a href="/file/853dcd4de2a6/primes.py">file</a></li>
<li><a href="/file/tip/primes.py">latest</a></li>
<li><a href="/diff/853dcd4de2a6/primes.py">diff</a></li>
- <li><a href="/comparison/853dcd4de2a6/primes.py">comparison</a></li>
<li class="active">annotate</li>
<li><a href="/log/853dcd4de2a6/primes.py">file log</a></li>
<li><a href="/raw-annotate/853dcd4de2a6/primes.py">raw</a></li>
@@ -253,7 +251,7 @@ hgweb fileannotate, html
</tr>
<tr>
<th class="date">date</th>
- <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
+ <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
</tr>
<tr>
<th class="author">parents</th>
@@ -275,224 +273,224 @@ hgweb fileannotate, html
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l1"
+ <a href="/annotate/853dcd4de2a6/primes.py#1"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l1" id="l1"> 1</a> <span class="c">#!/usr/bin/env python</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l2"
+ <a href="/annotate/853dcd4de2a6/primes.py#2"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l2" id="l2"> 2</a> </td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l3"
+ <a href="/annotate/853dcd4de2a6/primes.py#3"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l3" id="l3"> 3</a> <span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l4"
+ <a href="/annotate/853dcd4de2a6/primes.py#4"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l4" id="l4"> 4</a> </td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l5"
+ <a href="/annotate/853dcd4de2a6/primes.py#5"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l5" id="l5"> 5</a> <span class="sd">primes = 2 : sieve [3, 5..]</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l6"
+ <a href="/annotate/853dcd4de2a6/primes.py#6"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l6" id="l6"> 6</a> <span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l7"
+ <a href="/annotate/853dcd4de2a6/primes.py#7"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l7" id="l7"> 7</a> <span class="sd">&quot;&quot;&quot;</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l8"
+ <a href="/annotate/853dcd4de2a6/primes.py#8"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l8" id="l8"> 8</a> </td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l9"
+ <a href="/annotate/853dcd4de2a6/primes.py#9"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l9" id="l9"> 9</a> <span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l10"
+ <a href="/annotate/853dcd4de2a6/primes.py#10"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l10" id="l10"> 10</a> </td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l11"
+ <a href="/annotate/853dcd4de2a6/primes.py#11"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l11" id="l11"> 11</a> <span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l12"
+ <a href="/annotate/853dcd4de2a6/primes.py#12"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l12" id="l12"> 12</a> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l13"
+ <a href="/annotate/853dcd4de2a6/primes.py#13"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l13" id="l13"> 13</a> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l14"
+ <a href="/annotate/853dcd4de2a6/primes.py#14"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l14" id="l14"> 14</a> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l15"
+ <a href="/annotate/853dcd4de2a6/primes.py#15"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l15" id="l15"> 15</a> <span class="c"># It is important to yield *here* in order to stop the</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l16"
+ <a href="/annotate/853dcd4de2a6/primes.py#16"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l16" id="l16"> 16</a> <span class="c"># infinite recursion.</span></td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l17"
+ <a href="/annotate/853dcd4de2a6/primes.py#17"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l17" id="l17"> 17</a> <span class="kn">yield</span> <span class="n">p</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l18"
+ <a href="/annotate/853dcd4de2a6/primes.py#18"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l18" id="l18"> 18</a> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mf">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l19"
+ <a href="/annotate/853dcd4de2a6/primes.py#19"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l19" id="l19"> 19</a> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l20"
+ <a href="/annotate/853dcd4de2a6/primes.py#20"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l20" id="l20"> 20</a> <span class="kn">yield</span> <span class="n">n</span></td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l21"
+ <a href="/annotate/853dcd4de2a6/primes.py#21"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l21" id="l21"> 21</a> </td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l22"
+ <a href="/annotate/853dcd4de2a6/primes.py#22"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l22" id="l22"> 22</a> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mf">2</span> <span class="o">==</span> <span class="mf">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l23"
+ <a href="/annotate/853dcd4de2a6/primes.py#23"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l23" id="l23"> 23</a> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mf">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mf">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l24"
+ <a href="/annotate/853dcd4de2a6/primes.py#24"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l24" id="l24"> 24</a> </td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l25"
+ <a href="/annotate/853dcd4de2a6/primes.py#25"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l25" id="l25"> 25</a> <span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l26"
+ <a href="/annotate/853dcd4de2a6/primes.py#26"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l26" id="l26"> 26</a> <span class="kn">import</span> <span class="nn">sys</span></td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l27"
+ <a href="/annotate/853dcd4de2a6/primes.py#27"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l27" id="l27"> 27</a> <span class="kn">try</span><span class="p">:</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l28"
+ <a href="/annotate/853dcd4de2a6/primes.py#28"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l28" id="l28"> 28</a> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mf">1</span><span class="p">])</span></td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l29"
+ <a href="/annotate/853dcd4de2a6/primes.py#29"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l29" id="l29"> 29</a> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l30"
+ <a href="/annotate/853dcd4de2a6/primes.py#30"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l30" id="l30"> 30</a> <span class="n">n</span> <span class="o">=</span> <span class="mf">10</span></td>
</tr>
<tr class="parity0">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l31"
+ <a href="/annotate/853dcd4de2a6/primes.py#31"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l31" id="l31"> 31</a> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></td>
</tr>
<tr class="parity1">
<td class="annotate">
- <a href="/annotate/853dcd4de2a6/primes.py#l32"
+ <a href="/annotate/853dcd4de2a6/primes.py#32"
title="853dcd4de2a6: a">test@0</a>
</td>
<td class="source"><a href="#l32" id="l32"> 32</a> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></td>
@@ -511,7 +509,7 @@ hgweb fileannotate, html
hgweb fileannotate, raw
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'annotate/tip/primes.py?style=raw') \
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/primes.py?style=raw') \
> | sed "s/test@//" > a
$ echo "200 Script output follows" > b
$ echo "" >> b
@@ -522,19 +520,23 @@ hgweb fileannotate, raw
$ echo "" >> b
$ echo "" >> b
$ diff -u b a
+ $ echo
+
hgweb filerevision, raw
- $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/primes.py?style=raw') \
+ $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/primes.py?style=raw') \
> > a
$ echo "200 Script output follows" > b
$ echo "" >> b
$ hg cat primes.py >> b
$ diff -u b a
+ $ echo
+
hgweb highlightcss friendly
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'highlightcss' > out
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/highlightcss' > out
$ head -n 4 out
200 Script output follows
@@ -561,7 +563,7 @@ hg serve again
hgweb highlightcss fruity
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'highlightcss' > out
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/highlightcss' > out
$ head -n 4 out
200 Script output follows
@@ -585,7 +587,7 @@ errors encountered
> cat hg.pid >> $DAEMON_PIDS
>
> echo % hgweb filerevision, html
- > "$TESTDIR/get-with-headers.py" localhost:$HGPORT "file/tip/$2" \
+ > "$TESTDIR/get-with-headers.py" localhost:$HGPORT "/file/tip/$2" \
> | grep '<div class="parity0 source">'
> echo % errors encountered
> cat errors.log
@@ -605,5 +607,3 @@ errors encountered
% hgweb filerevision, html
<div class="parity0 source"><a href="#l1" id="l1"> 1</a> ??</div>
% errors encountered
-
- $ cd ..
diff --git a/tests/test-histedit-bookmark-motion.t b/tests/test-histedit-bookmark-motion.t
deleted file mode 100644
index 8ab9907..0000000
--- a/tests/test-histedit-bookmark-motion.t
+++ /dev/null
@@ -1,187 +0,0 @@
- $ . "$TESTDIR/histedit-helpers.sh"
-
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > histedit=
- > EOF
-
- $ hg init r
- $ cd r
-
- $ for x in a b c d e f ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
-
- $ hg book -r 1 will-move-backwards
- $ hg book -r 2 two
- $ hg book -r 2 also-two
- $ hg book -r 3 three
- $ hg book -r 4 four
- $ hg book -r tip five
- $ hg log --graph
- @ changeset: 5:652413bf663e
- | bookmark: five
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:e860deea161a
- | bookmark: four
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:055a42cdd887
- | bookmark: three
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | bookmark: also-two
- | bookmark: two
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | bookmark: will-move-backwards
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
- $ HGEDITOR=cat hg histedit 1
- pick d2ae7f538514 1 b
- pick 177f92b77385 2 c
- pick 055a42cdd887 3 d
- pick e860deea161a 4 e
- pick 652413bf663e 5 f
-
- # Edit history between d2ae7f538514 and 652413bf663e
- #
- # Commands:
- # p, pick = use commit
- # e, edit = use commit, but stop for amending
- # f, fold = use commit, but fold into previous commit (combines N and N-1)
- # d, drop = remove commit from history
- # m, mess = edit message without changing commit content
- #
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cat >> commands.txt <<EOF
- > pick 177f92b77385 2 c
- > drop d2ae7f538514 1 b
- > pick 055a42cdd887 3 d
- > fold e860deea161a 4 e
- > pick 652413bf663e 5 f
- > EOF
- $ hg histedit 1 --commands commands.txt --verbose | grep histedit
- histedit: Should update metadata for the following changes:
- histedit: 055a42cdd887 to ae467701c500
- histedit: moving bookmarks three
- histedit: 177f92b77385 to d36c0562f908
- histedit: moving bookmarks also-two, two
- histedit: 652413bf663e to 0efacef7cb48
- histedit: moving bookmarks five
- histedit: d2ae7f538514 to cb9a9f314b8b
- histedit: moving bookmarks will-move-backwards
- histedit: e860deea161a to ae467701c500
- histedit: moving bookmarks four
- saved backup bundle to $TESTTMP/r/.hg/strip-backup/d2ae7f538514-backup.hg (glob)
- saved backup bundle to $TESTTMP/r/.hg/strip-backup/34a9919932c1-backup.hg (glob)
- $ hg log --graph
- @ changeset: 3:0efacef7cb48
- | bookmark: five
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 2:ae467701c500
- | bookmark: four
- | bookmark: three
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 1:d36c0562f908
- | bookmark: also-two
- | bookmark: two
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 0:cb9a9f314b8b
- bookmark: will-move-backwards
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
- $ HGEDITOR=cat hg histedit 1
- pick d36c0562f908 1 c
- pick ae467701c500 2 d
- pick 0efacef7cb48 3 f
-
- # Edit history between d36c0562f908 and 0efacef7cb48
- #
- # Commands:
- # p, pick = use commit
- # e, edit = use commit, but stop for amending
- # f, fold = use commit, but fold into previous commit (combines N and N-1)
- # d, drop = remove commit from history
- # m, mess = edit message without changing commit content
- #
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cat > commands.txt << EOF
- > pick d36c0562f908 1 c
- > pick 0efacef7cb48 3 f
- > pick ae467701c500 2 d
- > EOF
- $ hg histedit 1 --commands commands.txt --verbose | grep histedit
- histedit: Should update metadata for the following changes:
- histedit: 0efacef7cb48 to 1be9c35b4cb2
- histedit: moving bookmarks five
- histedit: 0efacef7cb48 to 7c044e3e33a9
- histedit: ae467701c500 to 1be9c35b4cb2
- histedit: moving bookmarks four, three
- saved backup bundle to $TESTTMP/r/.hg/strip-backup/ae467701c500-backup.hg (glob)
-
-We expect 'five' to stay at tip, since the tipmost bookmark is most
-likely the useful signal.
-
- $ hg log --graph
- @ changeset: 3:1be9c35b4cb2
- | bookmark: five
- | bookmark: four
- | bookmark: three
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:7c044e3e33a9
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 1:d36c0562f908
- | bookmark: also-two
- | bookmark: two
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 0:cb9a9f314b8b
- bookmark: will-move-backwards
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
diff --git a/tests/test-histedit-commute.t b/tests/test-histedit-commute.t
deleted file mode 100644
index 7c1257b..0000000
--- a/tests/test-histedit-commute.t
+++ /dev/null
@@ -1,359 +0,0 @@
- $ . "$TESTDIR/histedit-helpers.sh"
-
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > histedit=
- > EOF
-
- $ EDITED="$TESTTMP/editedhistory"
- $ cat > $EDITED <<EOF
- > pick 177f92b77385 c
- > pick e860deea161a e
- > pick 652413bf663e f
- > pick 055a42cdd887 d
- > EOF
- $ initrepo ()
- > {
- > hg init r
- > cd r
- > for x in a b c d e f ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
- > }
-
- $ initrepo
-
-log before edit
- $ hg log --graph
- @ changeset: 5:652413bf663e
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:e860deea161a
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-show the edit commands offered
- $ HGEDITOR=cat hg histedit 177f92b77385
- pick 177f92b77385 2 c
- pick 055a42cdd887 3 d
- pick e860deea161a 4 e
- pick 652413bf663e 5 f
-
- # Edit history between 177f92b77385 and 652413bf663e
- #
- # Commands:
- # p, pick = use commit
- # e, edit = use commit, but stop for amending
- # f, fold = use commit, but fold into previous commit (combines N and N-1)
- # d, drop = remove commit from history
- # m, mess = edit message without changing commit content
- #
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-edit the history
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
- 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-rules should end up in .hg/histedit-last-edit.txt:
- $ cat .hg/histedit-last-edit.txt
- pick 177f92b77385 c
- pick e860deea161a e
- pick 652413bf663e f
- pick 055a42cdd887 d
-
-log after edit
- $ hg log --graph
- @ changeset: 5:853c68da763f
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 4:26f6a030ae82
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 3:b069cc29fb22
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-put things back
-
- $ cat > $EDITED <<EOF
- > pick 177f92b77385 c
- > pick 853c68da763f d
- > pick b069cc29fb22 e
- > pick 26f6a030ae82 f
- > EOF
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
- 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
- $ hg log --graph
- @ changeset: 5:652413bf663e
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:e860deea161a
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-slightly different this time
-
- $ cat > $EDITED <<EOF
- > pick 055a42cdd887 d
- > pick 652413bf663e f
- > pick e860deea161a e
- > pick 177f92b77385 c
- > EOF
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
- 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg log --graph
- @ changeset: 5:99a62755c625
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 4:7c6fdd608667
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:c4f52e213402
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 2:bfe4a5a76b37
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-keep prevents stripping dead revs
- $ cat > $EDITED <<EOF
- > pick bfe4a5a76b37 d
- > pick c4f52e213402 f
- > pick 99a62755c625 c
- > pick 7c6fdd608667 e
- > EOF
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit bfe4a5a76b37 --keep 2>&1 | fixbundle
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg log --graph
- > cat > $EDITED <<EOF
- > pick 7c6fdd608667 e
- > pick 99a62755c625 c
- > EOF
- @ changeset: 7:99e266581538
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 6:5ad36efb0653
- | parent: 3:c4f52e213402
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- | o changeset: 5:99a62755c625
- | | user: test
- | | date: Thu Jan 01 00:00:00 1970 +0000
- | | summary: c
- | |
- | o changeset: 4:7c6fdd608667
- |/ user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:c4f52e213402
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 2:bfe4a5a76b37
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-try with --rev
- $ hg histedit --commands "$EDITED" --rev -2 2>&1 | fixbundle
- abort: may not use changesets other than the ones listed
- $ hg log --graph
- @ changeset: 7:99e266581538
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 6:5ad36efb0653
- | parent: 3:c4f52e213402
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- | o changeset: 5:99a62755c625
- | | user: test
- | | date: Thu Jan 01 00:00:00 1970 +0000
- | | summary: c
- | |
- | o changeset: 4:7c6fdd608667
- |/ user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:c4f52e213402
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 2:bfe4a5a76b37
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-should also work if a commit message is missing
- $ BUNDLE="$TESTDIR/missing-comment.hg"
- $ hg init missing
- $ cd missing
- $ hg unbundle $BUNDLE
- adding changesets
- adding manifests
- adding file changes
- added 3 changesets with 3 changes to 1 files
- (run 'hg update' to get a working copy)
- $ hg co tip
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg log --graph
- @ changeset: 2:bd22688093b3
- | tag: tip
- | user: Robert Altman <robert.altman@telventDTN.com>
- | date: Mon Nov 28 16:40:04 2011 +0000
- | summary: Update file.
- |
- o changeset: 1:3b3e956f9171
- | user: Robert Altman <robert.altman@telventDTN.com>
- | date: Mon Nov 28 16:37:57 2011 +0000
- |
- o changeset: 0:141947992243
- user: Robert Altman <robert.altman@telventDTN.com>
- date: Mon Nov 28 16:35:28 2011 +0000
- summary: Checked in text file
-
- $ hg histedit 0
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd ..
diff --git a/tests/test-histedit-drop.t b/tests/test-histedit-drop.t
deleted file mode 100644
index f425263..0000000
--- a/tests/test-histedit-drop.t
+++ /dev/null
@@ -1,107 +0,0 @@
- $ . "$TESTDIR/histedit-helpers.sh"
-
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > histedit=
- > EOF
-
- $ EDITED="$TESTTMP/editedhistory"
- $ cat > $EDITED <<EOF
- > drop 177f92b77385 c
- > pick e860deea161a e
- > pick 652413bf663e f
- > pick 055a42cdd887 d
- > EOF
- $ initrepo ()
- > {
- > hg init r
- > cd r
- > for x in a b c d e f ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
- > }
-
- $ initrepo
-
-log before edit
- $ hg log --graph
- @ changeset: 5:652413bf663e
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:e860deea161a
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-edit the history
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
- 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-log after edit
- $ hg log --graph
- @ changeset: 4:708943196e52
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 3:75cbdffecadb
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 2:493dc0964412
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-manifest after edit
- $ hg manifest
- a
- b
- d
- e
- f
-
- $ cd ..
diff --git a/tests/test-histedit-edit.t b/tests/test-histedit-edit.t
deleted file mode 100644
index 0ebe620..0000000
--- a/tests/test-histedit-edit.t
+++ /dev/null
@@ -1,178 +0,0 @@
- $ . "$TESTDIR/histedit-helpers.sh"
-
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > histedit=
- > EOF
-
- $ EDITED="$TESTTMP/editedhistory"
- $ cat > $EDITED <<EOF
- > pick 177f92b77385 c
- > pick 055a42cdd887 d
- > edit e860deea161a e
- > pick 652413bf663e f
- > EOF
- $ initrepo ()
- > {
- > hg init r
- > cd r
- > for x in a b c d e f ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
- > }
-
- $ initrepo
-
-log before edit
- $ hg log --graph
- @ changeset: 5:652413bf663e
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:e860deea161a
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-edit the history
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- abort: Make changes as needed, you may commit or record as needed now.
- When you are finished, run hg histedit --continue to resume.
-
-commit, then edit the revision
- $ hg ci -m 'wat'
- created new head
- $ echo a > e
- $ HGEDITOR='echo foobaz > ' hg histedit --continue 2>&1 | fixbundle
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
- $ hg log --graph
- @ changeset: 6:bf757c081cd0
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 5:d6b15fed32d4
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: foobaz
- |
- o changeset: 4:1a60820cd1f6
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: wat
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
- $ hg cat e
- a
-
- $ cat > $EDITED <<EOF
- > edit bf757c081cd0 f
- > EOF
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit tip 2>&1 | fixbundle
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- abort: Make changes as needed, you may commit or record as needed now.
- When you are finished, run hg histedit --continue to resume.
- $ hg status
- A f
- $ HGEDITOR='true' hg histedit --continue
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg status
-
-log after edit
- $ hg log --limit 1
- changeset: 6:bf757c081cd0
- tag: tip
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: f
-
-
-say we'll change the message, but don't.
- $ cat > ../edit.sh <<EOF
- > cat "\$1" | sed s/pick/mess/ > tmp
- > mv tmp "\$1"
- > EOF
- $ HGEDITOR="sh ../edit.sh" hg histedit tip 2>&1 | fixbundle
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg status
- $ hg log --limit 1
- changeset: 6:bf757c081cd0
- tag: tip
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: f
-
-
-modify the message
- $ cat > $EDITED <<EOF
- > mess bf757c081cd0 f
- > EOF
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit tip 2>&1 | fixbundle
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg status
- $ hg log --limit 1
- changeset: 6:0b16746f8e89
- tag: tip
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: mess bf757c081cd0 f
-
-
-rollback should not work after a histedit
- $ hg rollback
- no rollback information available
- [1]
-
- $ cd ..
diff --git a/tests/test-histedit-fold-non-commute.t b/tests/test-histedit-fold-non-commute.t
deleted file mode 100644
index 502446b..0000000
--- a/tests/test-histedit-fold-non-commute.t
+++ /dev/null
@@ -1,147 +0,0 @@
- $ . "$TESTDIR/histedit-helpers.sh"
-
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > histedit=
- > EOF
-
- $ EDITED="$TESTTMP/editedhistory"
- $ cat > $EDITED <<EOF
- > pick 177f92b77385 c
- > pick 055a42cdd887 d
- > fold bfa474341cc9 does not commute with e
- > pick e860deea161a e
- > pick 652413bf663e f
- > EOF
- $ initrepo ()
- > {
- > hg init $1
- > cd $1
- > for x in a b c d e f ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
- > echo a >> e
- > hg ci -m 'does not commute with e'
- > cd ..
- > }
-
- $ initrepo r
- $ cd r
-
-log before edit
- $ hg log --graph
- @ changeset: 6:bfa474341cc9
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: does not commute with e
- |
- o changeset: 5:652413bf663e
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:e860deea161a
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-edit the history
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- 1 out of 1 hunks FAILED -- saving rejects to file e.rej
- abort: Fix up the change and run hg histedit --continue
-
-fix up
- $ echo a > e
- $ hg add e
- $ cat > cat.py <<EOF
- > import sys
- > print open(sys.argv[1]).read()
- > print
- > print
- > EOF
- $ HGEDITOR="python cat.py" hg histedit --continue 2>&1 | fixbundle | grep -v '2 files removed'
- d
- ***
- does not commute with e
-
-
-
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- file e already exists
- 1 out of 1 hunks FAILED -- saving rejects to file e.rej
- abort: Fix up the change and run hg histedit --continue
-
-just continue this time
- $ hg histedit --continue 2>&1 | fixbundle
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-log after edit
- $ hg log --graph
- @ changeset: 4:f768fd60ca34
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 3:671efe372e33
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-contents of e
- $ hg cat e
- a
-
-manifest
- $ hg manifest
- a
- b
- c
- d
- e
- f
-
- $ cd ..
diff --git a/tests/test-histedit-fold.t b/tests/test-histedit-fold.t
deleted file mode 100644
index 645cbc2..0000000
--- a/tests/test-histedit-fold.t
+++ /dev/null
@@ -1,238 +0,0 @@
- $ . "$TESTDIR/histedit-helpers.sh"
-
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > histedit=
- > EOF
-
- $ EDITED="$TESTTMP/editedhistory"
- $ cat > $EDITED <<EOF
- > pick e860deea161a e
- > pick 652413bf663e f
- > fold 177f92b77385 c
- > pick 055a42cdd887 d
- > EOF
- $ initrepo ()
- > {
- > hg init r
- > cd r
- > for x in a b c d e f ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
- > }
-
- $ initrepo
-
-log before edit
- $ hg log --graph
- @ changeset: 5:652413bf663e
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:e860deea161a
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-edit the history
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
- 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-log after edit
- $ hg log --graph
- @ changeset: 4:82b0c1ff1777
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 3:150aafb44a91
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: pick e860deea161a e
- |
- o changeset: 2:493dc0964412
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-post-fold manifest
- $ hg manifest
- a
- b
- c
- d
- e
- f
-
- $ cd ..
-
-folding and creating no new change doesn't break:
- $ mkdir fold-to-empty-test
- $ cd fold-to-empty-test
- $ hg init
- $ printf "1\n2\n3\n" > file
- $ hg add file
- $ hg commit -m '1+2+3'
- $ echo 4 >> file
- $ hg commit -m '+4'
- $ echo 5 >> file
- $ hg commit -m '+5'
- $ echo 6 >> file
- $ hg commit -m '+6'
- $ hg log --graph
- @ changeset: 3:251d831eeec5
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: +6
- |
- o changeset: 2:888f9082bf99
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: +5
- |
- o changeset: 1:617f94f13c0f
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: +4
- |
- o changeset: 0:0189ba417d34
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 1+2+3
-
-
- $ cat > editor.py <<EOF
- > import re, sys
- > rules = sys.argv[1]
- > data = open(rules).read()
- > data = re.sub(r'pick ([0-9a-f]{12} 2 \+5)', r'drop \1', data)
- > data = re.sub(r'pick ([0-9a-f]{12} 2 \+6)', r'fold \1', data)
- > open(rules, 'w').write(data)
- > EOF
-
- $ HGEDITOR='python editor.py' hg histedit 1
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- patching file file
- Hunk #1 FAILED at 2
- 1 out of 1 hunks FAILED -- saving rejects to file file.rej
- abort: Fix up the change and run hg histedit --continue
- [255]
-There were conflicts, but we'll continue without resolving. This
-should effectively drop the changes from +6.
- $ hg status
- ? editor.py
- ? file.rej
- $ hg histedit --continue
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- saved backup bundle to $TESTTMP/*-backup.hg (glob)
- $ hg log --graph
- @ changeset: 1:617f94f13c0f
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: +4
- |
- o changeset: 0:0189ba417d34
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: 1+2+3
-
-
- $ cd ..
-
-Test corner case where folded revision is separated from its parent by a
-dropped revision.
-
-
- $ hg init fold-with-dropped
- $ cd fold-with-dropped
- $ printf "1\n2\n3\n" > file
- $ hg commit -Am '1+2+3'
- adding file
- $ echo 4 >> file
- $ hg commit -m '+4'
- $ echo 5 >> file
- $ hg commit -m '+5'
- $ echo 6 >> file
- $ hg commit -m '+6'
- $ hg log -G --template '{rev}:{node|short} {desc|firstline}\n'
- @ 3:251d831eeec5 +6
- |
- o 2:888f9082bf99 +5
- |
- o 1:617f94f13c0f +4
- |
- o 0:0189ba417d34 1+2+3
-
- $ EDITED="$TESTTMP/editcommands"
- $ cat > $EDITED <<EOF
- > pick 617f94f13c0f 1 +4
- > drop 888f9082bf99 2 +5
- > fold 251d831eeec5 3 +6
- > EOF
- $ HGEDITOR="cat $EDITED >" hg histedit 1
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- patching file file
- Hunk #1 FAILED at 2
- 1 out of 1 hunks FAILED -- saving rejects to file file.rej
- abort: Fix up the change and run hg histedit --continue
- [255]
- $ echo 5 >> file
- $ hg commit -m '+5.2'
- created new head
- $ echo 6 >> file
- $ HGEDITOR=cat hg histedit --continue
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- +4
- ***
- +5.2
- ***
- +6
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- saved backup bundle to $TESTTMP/fold-with-dropped/.hg/strip-backup/617f94f13c0f-backup.hg (glob)
- $ cd ..
-
diff --git a/tests/test-histedit-no-change.t b/tests/test-histedit-no-change.t
deleted file mode 100644
index 6d9ce27..0000000
--- a/tests/test-histedit-no-change.t
+++ /dev/null
@@ -1,187 +0,0 @@
-test for old histedit issue #6:
-editing a changeset without any actual change would corrupt the repository
-
- $ . "$TESTDIR/histedit-helpers.sh"
-
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > histedit=
- > EOF
-
- $ initrepo ()
- > {
- > dir="$1"
- > comment="$2"
- > if [ -n "${comment}" ]; then
- > echo % ${comment}
- > echo % ${comment} | sed 's:.:-:g'
- > fi
- > hg init ${dir}
- > cd ${dir}
- > for x in a b c d e f ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
- > cd ..
- > }
-
- $ geneditor ()
- > {
- > # generate an editor script for selecting changesets to be edited
- > choice=$1 # changesets that should be edited (using sed line ranges)
- > cat <<EOF | sed 's:^....::'
- > # editing the rules, replacing 'pick' with 'edit' for the chosen lines
- > sed '${choice}s:^pick:edit:' "\$1" > "\${1}.tmp"
- > mv "\${1}.tmp" "\$1"
- > # displaying the resulting rules, minus comments and empty lines
- > sed '/^#/d;/^$/d;s:^:| :' "\$1" >&2
- > EOF
- > }
-
- $ startediting ()
- > {
- > # begin an editing session
- > choice="$1" # changesets that should be edited
- > number="$2" # number of changesets considered (from tip)
- > comment="$3"
- > geneditor "${choice}" > edit.sh
- > echo % start editing the history ${comment}
- > HGEDITOR="sh ./edit.sh" hg histedit -- -${number} 2>&1 | fixbundle
- > }
-
- $ continueediting ()
- > {
- > # continue an edit already in progress
- > editor="$1" # message editor when finalizing editing
- > comment="$2"
- > echo % finalize changeset editing ${comment}
- > HGEDITOR=${editor} hg histedit --continue 2>&1 | fixbundle
- > }
-
- $ graphlog ()
- > {
- > comment="${1:-log}"
- > echo % "${comment}"
- > hg glog --template '{rev} {node} \"{desc|firstline}\"\n'
- > }
-
-
- $ initrepo r1 "test editing with no change"
- % test editing with no change
- -----------------------------
- $ cd r1
- $ graphlog "log before editing"
- % log before editing
- @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"
- |
- o 4 e860deea161a2f77de56603b340ebbb4536308ae "e"
- |
- o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"
- |
- o 2 177f92b773850b59254aa5e923436f921b55483b "c"
- |
- o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b"
- |
- o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a"
-
- $ startediting 2 3 "(not changing anything)" # edit the 2nd of 3 changesets
- % start editing the history (not changing anything)
- | pick 055a42cdd887 3 d
- | edit e860deea161a 4 e
- | pick 652413bf663e 5 f
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- abort: Make changes as needed, you may commit or record as needed now.
- When you are finished, run hg histedit --continue to resume.
- $ continueediting true "(leaving commit message unaltered)"
- % finalize changeset editing (leaving commit message unaltered)
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-check state of working copy
- $ hg id
- 652413bf663e tip
-
- $ graphlog "log after history editing"
- % log after history editing
- @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"
- |
- o 4 e860deea161a2f77de56603b340ebbb4536308ae "e"
- |
- o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"
- |
- o 2 177f92b773850b59254aa5e923436f921b55483b "c"
- |
- o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b"
- |
- o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a"
-
-
- $ cd ..
-
- $ initrepo r2 "test editing with no change, then abort"
- % test editing with no change, then abort
- -----------------------------------------
- $ cd r2
- $ graphlog "log before editing"
- % log before editing
- @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"
- |
- o 4 e860deea161a2f77de56603b340ebbb4536308ae "e"
- |
- o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"
- |
- o 2 177f92b773850b59254aa5e923436f921b55483b "c"
- |
- o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b"
- |
- o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a"
-
- $ startediting 1,2 3 "(not changing anything)" # edit the 1st two of 3 changesets
- % start editing the history (not changing anything)
- | edit 055a42cdd887 3 d
- | edit e860deea161a 4 e
- | pick 652413bf663e 5 f
- 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
- abort: Make changes as needed, you may commit or record as needed now.
- When you are finished, run hg histedit --continue to resume.
- $ continueediting true "(leaving commit message unaltered)"
- % finalize changeset editing (leaving commit message unaltered)
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- abort: Make changes as needed, you may commit or record as needed now.
- When you are finished, run hg histedit --continue to resume.
- $ graphlog "log after first edit"
- % log after first edit
- o 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"
- |
- o 4 e860deea161a2f77de56603b340ebbb4536308ae "e"
- |
- @ 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"
- |
- o 2 177f92b773850b59254aa5e923436f921b55483b "c"
- |
- o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b"
- |
- o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a"
-
-
-abort editing session
- $ hg histedit --abort 2>&1 | fixbundle
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
- $ graphlog "log after abort"
- % log after abort
- @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"
- |
- o 4 e860deea161a2f77de56603b340ebbb4536308ae "e"
- |
- o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"
- |
- o 2 177f92b773850b59254aa5e923436f921b55483b "c"
- |
- o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b"
- |
- o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a"
-
-
- $ cd ..
diff --git a/tests/test-histedit-non-commute-abort.t b/tests/test-histedit-non-commute-abort.t
deleted file mode 100644
index 925a624..0000000
--- a/tests/test-histedit-non-commute-abort.t
+++ /dev/null
@@ -1,131 +0,0 @@
- $ . "$TESTDIR/histedit-helpers.sh"
-
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > histedit=
- > EOF
-
- $ EDITED="$TESTTMP/editedhistory"
- $ cat > $EDITED <<EOF
- > pick 177f92b77385 c
- > pick 055a42cdd887 d
- > pick bfa474341cc9 does not commute with e
- > pick e860deea161a e
- > pick 652413bf663e f
- > EOF
- $ initrepo ()
- > {
- > hg init r
- > cd r
- > for x in a b c d e f ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
- > echo a >> e
- > hg ci -m 'does not commute with e'
- > cd ..
- > }
-
- $ initrepo
- $ cd r
-
-log before edit
- $ hg log --graph
- @ changeset: 6:bfa474341cc9
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: does not commute with e
- |
- o changeset: 5:652413bf663e
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:e860deea161a
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-edit the history
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- 1 out of 1 hunks FAILED -- saving rejects to file e.rej
- abort: Fix up the change and run hg histedit --continue
-
-fix up (pre abort)
- $ echo a > e
- $ hg add e
- $ hg histedit --continue 2>&1 | fixbundle
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- file e already exists
- 1 out of 1 hunks FAILED -- saving rejects to file e.rej
- abort: Fix up the change and run hg histedit --continue
-
-abort the edit
- $ hg histedit --abort 2>&1 | fixbundle
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-log after abort
- $ hg log --graph
- @ changeset: 6:bfa474341cc9
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: does not commute with e
- |
- o changeset: 5:652413bf663e
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:e860deea161a
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
- $ cd ..
diff --git a/tests/test-histedit-non-commute.t b/tests/test-histedit-non-commute.t
deleted file mode 100644
index 31d6096..0000000
--- a/tests/test-histedit-non-commute.t
+++ /dev/null
@@ -1,244 +0,0 @@
- $ . "$TESTDIR/histedit-helpers.sh"
-
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > histedit=
- > EOF
-
- $ EDITED="$TESTTMP/editedhistory"
- $ cat > $EDITED <<EOF
- > pick 177f92b77385 c
- > pick 055a42cdd887 d
- > pick bfa474341cc9 does not commute with e
- > pick e860deea161a e
- > pick 652413bf663e f
- > EOF
- $ initrepo ()
- > {
- > hg init $1
- > cd $1
- > for x in a b c d e f ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
- > echo a >> e
- > hg ci -m 'does not commute with e'
- > cd ..
- > }
-
- $ initrepo r1
- $ cd r1
-
-log before edit
- $ hg log --graph
- @ changeset: 6:bfa474341cc9
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: does not commute with e
- |
- o changeset: 5:652413bf663e
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:e860deea161a
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-edit the history
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- 1 out of 1 hunks FAILED -- saving rejects to file e.rej
- abort: Fix up the change and run hg histedit --continue
-
-abort the edit
- $ hg histedit --abort 2>&1 | fixbundle
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-
-second edit set
-
- $ hg log --graph
- @ changeset: 6:bfa474341cc9
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: does not commute with e
- |
- o changeset: 5:652413bf663e
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:e860deea161a
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: e
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-edit the history
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- 1 out of 1 hunks FAILED -- saving rejects to file e.rej
- abort: Fix up the change and run hg histedit --continue
-
-fix up
- $ echo a > e
- $ hg add e
- $ hg histedit --continue 2>&1 | fixbundle
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- file e already exists
- 1 out of 1 hunks FAILED -- saving rejects to file e.rej
- abort: Fix up the change and run hg histedit --continue
-
-just continue this time
- $ hg histedit --continue 2>&1 | fixbundle
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-log after edit
- $ hg log --graph
- @ changeset: 5:9ab84894b459
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:1fff3ae8199d
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: does not commute with e
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
-start over
-
- $ cd ..
-
- $ initrepo r2
- $ cd r2
- $ cat > $EDITED <<EOF
- > pick 177f92b77385 c
- > pick 055a42cdd887 d
- > mess bfa474341cc9 does not commute with e
- > pick e860deea161a e
- > pick 652413bf663e f
- > EOF
-
-edit the history, this time with a fold action
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- 1 out of 1 hunks FAILED -- saving rejects to file e.rej
- abort: Fix up the change and run hg histedit --continue
-
- $ echo a > e
- $ hg add e
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit --continue 2>&1 | fixbundle
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- file e already exists
- 1 out of 1 hunks FAILED -- saving rejects to file e.rej
- abort: Fix up the change and run hg histedit --continue
-second edit also fails, but just continue
- $ hg histedit --continue 2>&1 | fixbundle
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-post message fix
- $ hg log --graph
- @ changeset: 5:6459970fb49b
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: f
- |
- o changeset: 4:556f27c874b0
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: pick 177f92b77385 c
- |
- o changeset: 3:055a42cdd887
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: d
- |
- o changeset: 2:177f92b77385
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: c
- |
- o changeset: 1:d2ae7f538514
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b
- |
- o changeset: 0:cb9a9f314b8b
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a
-
-
- $ cd ..
diff --git a/tests/test-histedit-outgoing.t b/tests/test-histedit-outgoing.t
deleted file mode 100644
index 8025891..0000000
--- a/tests/test-histedit-outgoing.t
+++ /dev/null
@@ -1,84 +0,0 @@
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > histedit=
- > EOF
-
- $ initrepos ()
- > {
- > hg init r
- > cd r
- > for x in a b c ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
- > cd ..
- > hg clone r r2 | grep -v updating
- > cd r2
- > for x in d e f ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
- > cd ..
- > hg init r3
- > cd r3
- > for x in g h i ; do
- > echo $x > $x
- > hg add $x
- > hg ci -m $x
- > done
- > cd ..
- > }
-
- $ initrepos
- 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-show the edit commands offered by outgoing
- $ cd r2
- $ HGEDITOR=cat hg histedit --outgoing ../r | grep -v comparing | grep -v searching
- pick 055a42cdd887 3 d
- pick e860deea161a 4 e
- pick 652413bf663e 5 f
-
- # Edit history between 055a42cdd887 and 652413bf663e
- #
- # Commands:
- # p, pick = use commit
- # e, edit = use commit, but stop for amending
- # f, fold = use commit, but fold into previous commit (combines N and N-1)
- # d, drop = remove commit from history
- # m, mess = edit message without changing commit content
- #
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd ..
-
-show the error from unrelated repos
- $ cd r3
- $ HGEDITOR=cat hg histedit --outgoing ../r | grep -v comparing | grep -v searching
- abort: repository is unrelated
- [1]
- $ cd ..
-
-show the error from unrelated repos
- $ cd r3
- $ HGEDITOR=cat hg histedit --force --outgoing ../r
- comparing with ../r
- searching for changes
- warning: repository is unrelated
- pick 2a4042b45417 0 g
- pick 68c46b4927ce 1 h
- pick 51281e65ba79 2 i
-
- # Edit history between 2a4042b45417 and 51281e65ba79
- #
- # Commands:
- # p, pick = use commit
- # e, edit = use commit, but stop for amending
- # f, fold = use commit, but fold into previous commit (combines N and N-1)
- # d, drop = remove commit from history
- # m, mess = edit message without changing commit content
- #
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd ..
diff --git a/tests/test-histedit-revspec.t b/tests/test-histedit-revspec.t
deleted file mode 100644
index 06601d3..0000000
--- a/tests/test-histedit-revspec.t
+++ /dev/null
@@ -1,62 +0,0 @@
-This test requires parentrevspec support in revsets, so check for that
-and skip the test if we're on an unusual hg that supports .t tests but
-not parentrevspec.
- $ python -c 'from mercurial import revset ; revset.methods["parentpost"]' || exit 80
-
-Enable extensions used by this test.
- $ cat >>$HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > histedit=
- > EOF
-
-Repo setup.
- $ hg init foo
- $ cd foo
- $ echo alpha >> alpha
- $ hg addr
- adding alpha
- $ hg ci -m one
- $ echo alpha >> alpha
- $ hg ci -m two
- $ echo alpha >> alpha
- $ hg ci -m three
- $ echo alpha >> alpha
- $ hg ci -m four
- $ echo alpha >> alpha
- $ hg ci -m five
-
- $ hg log --style compact --graph
- @ 4[tip] 08d98a8350f3 1970-01-01 00:00 +0000 test
- | five
- |
- o 3 c8e68270e35a 1970-01-01 00:00 +0000 test
- | four
- |
- o 2 eb57da33312f 1970-01-01 00:00 +0000 test
- | three
- |
- o 1 579e40513370 1970-01-01 00:00 +0000 test
- | two
- |
- o 0 6058cbb6cfd7 1970-01-01 00:00 +0000 test
- one
-
-
-Run a dummy edit to make sure we get tip^^ correctly via revsingle.
- $ HGEDITOR=cat hg histedit "tip^^"
- pick eb57da33312f 2 three
- pick c8e68270e35a 3 four
- pick 08d98a8350f3 4 five
-
- # Edit history between eb57da33312f and 08d98a8350f3
- #
- # Commands:
- # p, pick = use commit
- # e, edit = use commit, but stop for amending
- # f, fold = use commit, but fold into previous commit (combines N and N-1)
- # d, drop = remove commit from history
- # m, mess = edit message without changing commit content
- #
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
diff --git a/tests/test-hook.t b/tests/test-hook.t
index 8b0b12c..6d61f19 100644
--- a/tests/test-hook.t
+++ b/tests/test-hook.t
@@ -2,25 +2,23 @@ commit hooks can see env vars
$ hg init a
$ cd a
- $ cat > .hg/hgrc <<EOF
- > [hooks]
- > commit = sh -c "HG_LOCAL= HG_TAG= python \"$TESTDIR/printenv.py\" commit"
- > commit.b = sh -c "HG_LOCAL= HG_TAG= python \"$TESTDIR/printenv.py\" commit.b"
- > precommit = sh -c "HG_LOCAL= HG_NODE= HG_TAG= python \"$TESTDIR/printenv.py\" precommit"
- > pretxncommit = sh -c "HG_LOCAL= HG_TAG= python \"$TESTDIR/printenv.py\" pretxncommit"
- > pretxncommit.tip = hg -q tip
- > pre-identify = python "$TESTDIR/printenv.py" pre-identify 1
- > pre-cat = python "$TESTDIR/printenv.py" pre-cat
- > post-cat = python "$TESTDIR/printenv.py" post-cat
- > EOF
+ $ echo "[hooks]" > .hg/hgrc
+ $ echo 'commit = unset HG_LOCAL HG_TAG; python "$TESTDIR"/printenv.py commit' >> .hg/hgrc
+ $ echo 'commit.b = unset HG_LOCAL HG_TAG; python "$TESTDIR"/printenv.py commit.b' >> .hg/hgrc
+ $ echo 'precommit = unset HG_LOCAL HG_NODE HG_TAG; python "$TESTDIR"/printenv.py precommit' >> .hg/hgrc
+ $ echo 'pretxncommit = unset HG_LOCAL HG_TAG; python "$TESTDIR"/printenv.py pretxncommit' >> .hg/hgrc
+ $ echo 'pretxncommit.tip = hg -q tip' >> .hg/hgrc
+ $ echo 'pre-identify = python "$TESTDIR"/printenv.py pre-identify 1' >> .hg/hgrc
+ $ echo 'pre-cat = python "$TESTDIR"/printenv.py pre-cat' >> .hg/hgrc
+ $ echo 'post-cat = python "$TESTDIR"/printenv.py post-cat' >> .hg/hgrc
$ echo a > a
$ hg add a
$ hg commit -m a
- precommit hook: HG_PARENT1=0000000000000000000000000000000000000000
- pretxncommit hook: HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PARENT1=0000000000000000000000000000000000000000 HG_PENDING=$TESTTMP/a
+ precommit hook: HG_PARENT1=0000000000000000000000000000000000000000
+ pretxncommit hook: HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PARENT1=0000000000000000000000000000000000000000 HG_PENDING=$TESTTMP/a
0:cb9a9f314b8b
- commit hook: HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PARENT1=0000000000000000000000000000000000000000
- commit.b hook: HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PARENT1=0000000000000000000000000000000000000000
+ commit hook: HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PARENT1=0000000000000000000000000000000000000000
+ commit.b hook: HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PARENT1=0000000000000000000000000000000000000000
$ hg clone . ../b
updating to branch default
@@ -29,118 +27,114 @@ commit hooks can see env vars
changegroup hooks can see env vars
- $ cat > .hg/hgrc <<EOF
- > [hooks]
- > prechangegroup = python "$TESTDIR/printenv.py" prechangegroup
- > changegroup = python "$TESTDIR/printenv.py" changegroup
- > incoming = python "$TESTDIR/printenv.py" incoming
- > EOF
+ $ echo '[hooks]' > .hg/hgrc
+ $ echo 'prechangegroup = python "$TESTDIR"/printenv.py prechangegroup' >> .hg/hgrc
+ $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup' >> .hg/hgrc
+ $ echo 'incoming = python "$TESTDIR"/printenv.py incoming' >> .hg/hgrc
pretxncommit and commit hooks can see both parents of merge
$ cd ../a
$ echo b >> a
$ hg commit -m a1 -d "1 0"
- precommit hook: HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
- pretxncommit hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PENDING=$TESTTMP/a
+ precommit hook: HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
+ pretxncommit hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PENDING=$TESTTMP/a
1:ab228980c14d
- commit hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
- commit.b hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
+ commit hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
+ commit.b hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
$ hg update -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo b > b
$ hg add b
$ hg commit -m b -d '1 0'
- precommit hook: HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
- pretxncommit hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PENDING=$TESTTMP/a
+ precommit hook: HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
+ pretxncommit hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PENDING=$TESTTMP/a
2:ee9deb46ab31
- commit hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
- commit.b hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
+ commit hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
+ commit.b hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
created new head
$ hg merge 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg commit -m merge -d '2 0'
- precommit hook: HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd
- pretxncommit hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd HG_PENDING=$TESTTMP/a
+ precommit hook: HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd
+ pretxncommit hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd HG_PENDING=$TESTTMP/a
3:07f3376c1e65
- commit hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd
- commit.b hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd
+ commit hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd
+ commit.b hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd
test generic hooks
$ hg id
- pre-identify hook: HG_ARGS=id HG_OPTS={'bookmarks': None, 'branch': None, 'id': None, 'insecure': None, 'num': None, 'remotecmd': '', 'rev': '', 'ssh': '', '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
- pre-cat hook: HG_ARGS=cat b HG_OPTS={'decode': None, 'exclude': [], 'include': [], 'output': '', 'rev': ''} HG_PATS=['b']
+ pre-cat hook: HG_ARGS=cat b HG_OPTS={'decode': None, 'exclude': [], 'include': [], 'output': '', 'rev': ''} HG_PATS=['b']
b
- post-cat hook: HG_ARGS=cat b HG_OPTS={'decode': None, 'exclude': [], 'include': [], 'output': '', 'rev': ''} HG_PATS=['b'] HG_RESULT=0
+ post-cat hook: HG_ARGS=cat b HG_OPTS={'decode': None, 'exclude': [], 'include': [], 'output': '', 'rev': ''} HG_PATS=['b'] HG_RESULT=0
$ cd ../b
$ hg pull ../a
pulling from ../a
searching for changes
- prechangegroup hook: HG_SOURCE=pull HG_URL=file:$TESTTMP/a
+ 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
+ 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
(run 'hg update' to get a working copy)
tag hooks can see env vars
$ cd ../a
- $ cat >> .hg/hgrc <<EOF
- > pretag = python "$TESTDIR/printenv.py" pretag
- > tag = sh -c "HG_PARENT1= HG_PARENT2= python \"$TESTDIR/printenv.py\" tag"
- > EOF
+ $ echo 'pretag = python "$TESTDIR"/printenv.py pretag' >> .hg/hgrc
+ $ echo 'tag = unset HG_PARENT1 HG_PARENT2; python "$TESTDIR"/printenv.py tag' >> .hg/hgrc
$ hg tag -d '3 0' a
- pretag hook: HG_LOCAL=0 HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_TAG=a
- precommit hook: HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2
- pretxncommit hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PENDING=$TESTTMP/a
+ pretag hook: HG_LOCAL=0 HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_TAG=a
+ precommit hook: HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2
+ pretxncommit hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PENDING=$TESTTMP/a
4:539e4b31b6dc
- tag hook: HG_LOCAL=0 HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_TAG=a
- commit hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2
- commit.b hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2
+ commit hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2
+ commit.b hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2
+ tag hook: HG_LOCAL=0 HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_TAG=a
$ hg tag -l la
- pretag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=la
- tag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=la
+ pretag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=la
+ tag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=la
pretag hook can forbid tagging
- $ echo "pretag.forbid = python \"$TESTDIR/printenv.py\" pretag.forbid 1" >> .hg/hgrc
+ $ echo 'pretag.forbid = python "$TESTDIR"/printenv.py pretag.forbid 1' >> .hg/hgrc
$ hg tag -d '4 0' fa
- pretag hook: HG_LOCAL=0 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fa
- pretag.forbid hook: HG_LOCAL=0 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fa
+ pretag hook: HG_LOCAL=0 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fa
+ pretag.forbid hook: HG_LOCAL=0 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fa
abort: pretag.forbid hook exited with status 1
[255]
$ hg tag -l fla
- pretag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fla
- pretag.forbid hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fla
+ pretag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fla
+ pretag.forbid hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fla
abort: pretag.forbid hook exited with status 1
[255]
pretxncommit hook can see changeset, can roll back txn, changeset no
more there after
- $ echo "pretxncommit.forbid0 = hg tip -q" >> .hg/hgrc
- $ echo "pretxncommit.forbid1 = python \"$TESTDIR/printenv.py\" pretxncommit.forbid 1" >> .hg/hgrc
+ $ echo 'pretxncommit.forbid0 = hg tip -q' >> .hg/hgrc
+ $ echo 'pretxncommit.forbid1 = python "$TESTDIR"/printenv.py pretxncommit.forbid 1' >> .hg/hgrc
$ echo z > z
$ hg add z
$ hg -q tip
4:539e4b31b6dc
$ hg commit -m 'fail' -d '4 0'
- precommit hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10
- pretxncommit hook: HG_NODE=6f611f8018c10e827fee6bd2bc807f937e761567 HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/a
+ precommit hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10
+ pretxncommit hook: HG_NODE=6f611f8018c10e827fee6bd2bc807f937e761567 HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/a
5:6f611f8018c1
5:6f611f8018c1
- pretxncommit.forbid hook: HG_NODE=6f611f8018c10e827fee6bd2bc807f937e761567 HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/a
+ pretxncommit.forbid hook: HG_NODE=6f611f8018c10e827fee6bd2bc807f937e761567 HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/a
transaction abort!
rollback completed
abort: pretxncommit.forbid1 hook exited with status 1
@@ -150,10 +144,10 @@ more there after
precommit hook can prevent commit
- $ echo "precommit.forbid = python \"$TESTDIR/printenv.py\" precommit.forbid 1" >> .hg/hgrc
+ $ echo 'precommit.forbid = python "$TESTDIR"/printenv.py precommit.forbid 1' >> .hg/hgrc
$ hg commit -m 'fail' -d '4 0'
- precommit hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10
- precommit.forbid hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10
+ precommit hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10
+ precommit.forbid hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10
abort: precommit.forbid hook exited with status 1
[255]
$ hg -q tip
@@ -161,22 +155,22 @@ precommit hook can prevent commit
preupdate hook can prevent update
- $ echo "preupdate = python \"$TESTDIR/printenv.py\" preupdate" >> .hg/hgrc
+ $ echo 'preupdate = python "$TESTDIR"/printenv.py preupdate' >> .hg/hgrc
$ hg update 1
- preupdate hook: HG_PARENT1=ab228980c14d
+ preupdate hook: HG_PARENT1=ab228980c14d
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
update hook
- $ echo "update = python \"$TESTDIR/printenv.py\" update" >> .hg/hgrc
+ $ echo 'update = python "$TESTDIR"/printenv.py update' >> .hg/hgrc
$ hg update
- preupdate hook: HG_PARENT1=539e4b31b6dc
- update hook: HG_ERROR=0 HG_PARENT1=539e4b31b6dc
+ preupdate hook: HG_PARENT1=539e4b31b6dc
+ update hook: HG_ERROR=0 HG_PARENT1=539e4b31b6dc
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
pushkey hook
- $ echo "pushkey = python \"$TESTDIR/printenv.py\" pushkey" >> .hg/hgrc
+ $ echo 'pushkey = python "$TESTDIR"/printenv.py pushkey' >> .hg/hgrc
$ cd ../b
$ hg bookmark -r null foo
$ hg push -B foo ../a
@@ -184,51 +178,47 @@ pushkey hook
searching for changes
no changes found
exporting bookmark foo
- pushkey hook: HG_KEY=foo HG_NAMESPACE=bookmarks HG_NEW=0000000000000000000000000000000000000000 HG_RET=1
- [1]
+ pushkey hook: HG_KEY=foo HG_NAMESPACE=bookmarks HG_NEW=0000000000000000000000000000000000000000 HG_RET=1
$ cd ../a
listkeys hook
- $ echo "listkeys = python \"$TESTDIR/printenv.py\" listkeys" >> .hg/hgrc
+ $ echo 'listkeys = python "$TESTDIR"/printenv.py listkeys' >> .hg/hgrc
$ hg bookmark -r null bar
$ cd ../b
$ hg pull -B bar ../a
pulling from ../a
- listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'}
+ listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'}
no changes found
- listkeys hook: HG_NAMESPACE=phases HG_VALUES={'cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b': '1', 'publishing': 'True'}
- listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'}
- adding remote bookmark bar
+ listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'}
importing bookmark bar
$ cd ../a
test that prepushkey can prevent incoming keys
- $ echo "prepushkey = python \"$TESTDIR/printenv.py\" prepushkey.forbid 1" >> .hg/hgrc
+ $ echo 'prepushkey = python "$TESTDIR"/printenv.py prepushkey.forbid 1' >> .hg/hgrc
$ cd ../b
$ hg bookmark -r null baz
$ hg push -B baz ../a
pushing to ../a
searching for changes
no changes found
- listkeys hook: HG_NAMESPACE=phases HG_VALUES={'cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b': '1', 'publishing': 'True'}
- listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'}
- listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'}
+ listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'}
+ listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'}
exporting bookmark baz
- prepushkey.forbid hook: HG_KEY=baz HG_NAMESPACE=bookmarks HG_NEW=0000000000000000000000000000000000000000
+ prepushkey.forbid hook: HG_KEY=baz HG_NAMESPACE=bookmarks HG_NEW=0000000000000000000000000000000000000000
abort: prepushkey hook exited with status 1
[255]
$ cd ../a
test that prelistkeys can prevent listing keys
- $ echo "prelistkeys = python \"$TESTDIR/printenv.py\" prelistkeys.forbid 1" >> .hg/hgrc
+ $ echo 'prelistkeys = python "$TESTDIR"/printenv.py prelistkeys.forbid 1' >> .hg/hgrc
$ hg bookmark -r null quux
$ cd ../b
$ hg pull -B quux ../a
pulling from ../a
- prelistkeys.forbid hook: HG_NAMESPACE=bookmarks
+ prelistkeys.forbid hook: HG_NAMESPACE=bookmarks
abort: prelistkeys hook exited with status 1
[255]
$ cd ../a
@@ -238,25 +228,21 @@ prechangegroup hook can prevent incoming changes
$ cd ../b
$ hg -q tip
3:07f3376c1e65
- $ cat > .hg/hgrc <<EOF
- > [hooks]
- > prechangegroup.forbid = python "$TESTDIR/printenv.py" prechangegroup.forbid 1
- > EOF
+ $ echo '[hooks]' > .hg/hgrc
+ $ echo 'prechangegroup.forbid = python "$TESTDIR"/printenv.py prechangegroup.forbid 1' >> .hg/hgrc
$ hg pull ../a
pulling from ../a
searching for changes
- prechangegroup.forbid hook: HG_SOURCE=pull HG_URL=file:$TESTTMP/a
+ prechangegroup.forbid hook: HG_SOURCE=pull HG_URL=file:$TESTTMP/a
abort: prechangegroup.forbid hook exited with status 1
[255]
pretxnchangegroup hook can see incoming changes, can roll back txn,
incoming changes no longer there after
- $ cat > .hg/hgrc <<EOF
- > [hooks]
- > pretxnchangegroup.forbid0 = hg tip -q
- > pretxnchangegroup.forbid1 = python "$TESTDIR/printenv.py" pretxnchangegroup.forbid 1
- > EOF
+ $ echo '[hooks]' > .hg/hgrc
+ $ echo 'pretxnchangegroup.forbid0 = hg tip -q' >> .hg/hgrc
+ $ echo 'pretxnchangegroup.forbid1 = python "$TESTDIR"/printenv.py pretxnchangegroup.forbid 1' >> .hg/hgrc
$ hg pull ../a
pulling from ../a
searching for changes
@@ -265,7 +251,7 @@ incoming changes no longer there after
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
+ 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
@@ -276,61 +262,56 @@ incoming changes no longer there after
outgoing hooks can see env vars
$ rm .hg/hgrc
- $ cat > ../a/.hg/hgrc <<EOF
- > [hooks]
- > preoutgoing = python "$TESTDIR/printenv.py" preoutgoing
- > outgoing = python "$TESTDIR/printenv.py" outgoing
- > EOF
+ $ echo '[hooks]' > ../a/.hg/hgrc
+ $ echo 'preoutgoing = python "$TESTDIR"/printenv.py preoutgoing' >> ../a/.hg/hgrc
+ $ echo 'outgoing = python "$TESTDIR"/printenv.py outgoing' >> ../a/.hg/hgrc
$ hg pull ../a
pulling from ../a
searching for changes
- preoutgoing hook: HG_SOURCE=pull
+ preoutgoing hook: HG_SOURCE=pull
adding changesets
- outgoing hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_SOURCE=pull
+ outgoing hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_SOURCE=pull
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
- adding remote bookmark quux
(run 'hg update' to get a working copy)
$ hg rollback
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
+ $ 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
+ preoutgoing hook: HG_SOURCE=pull
+ preoutgoing.forbid hook: HG_SOURCE=pull
abort: preoutgoing.forbid hook exited with status 1
[255]
outgoing hooks work for local clones
$ cd ..
- $ cat > a/.hg/hgrc <<EOF
- > [hooks]
- > preoutgoing = python "$TESTDIR/printenv.py" preoutgoing
- > outgoing = python "$TESTDIR/printenv.py" outgoing
- > EOF
+ $ echo '[hooks]' > a/.hg/hgrc
+ $ echo 'preoutgoing = python "$TESTDIR"/printenv.py preoutgoing' >> a/.hg/hgrc
+ $ echo 'outgoing = python "$TESTDIR"/printenv.py outgoing' >> a/.hg/hgrc
$ hg clone a c
- preoutgoing hook: HG_SOURCE=clone
- outgoing hook: HG_NODE=0000000000000000000000000000000000000000 HG_SOURCE=clone
+ preoutgoing hook: HG_SOURCE=clone
+ outgoing hook: HG_NODE=0000000000000000000000000000000000000000 HG_SOURCE=clone
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf c
preoutgoing hook can prevent outgoing changes for local clones
- $ echo "preoutgoing.forbid = python \"$TESTDIR/printenv.py\" preoutgoing.forbid 1" >> a/.hg/hgrc
+ $ echo 'preoutgoing.forbid = python "$TESTDIR"/printenv.py preoutgoing.forbid 1' >> a/.hg/hgrc
$ hg clone a zzz
- preoutgoing hook: HG_SOURCE=clone
- preoutgoing.forbid hook: HG_SOURCE=clone
+ preoutgoing hook: HG_SOURCE=clone
+ preoutgoing.forbid hook: HG_SOURCE=clone
abort: preoutgoing.forbid hook exited with status 1
[255]
-
- $ cd "$TESTTMP/b"
+ $ cd b
$ cat > hooktests.py <<EOF
> from mercurial import util
@@ -368,20 +349,13 @@ preoutgoing hook can prevent outgoing changes for local clones
> def verbosehook(ui, **args):
> ui.note('verbose output from hook\n')
>
- > def printtags(ui, repo, **args):
- > print repo.tags().keys()
- >
> class container:
> unreachable = 1
> EOF
test python hooks
-#if windows
- $ PYTHONPATH="$TESTTMP/b;$PYTHONPATH"
-#else
- $ PYTHONPATH="$TESTTMP/b:$PYTHONPATH"
-#endif
+ $ PYTHONPATH="`pwd`:$PYTHONPATH"
$ export PYTHONPATH
$ echo '[hooks]' > ../a/.hg/hgrc
@@ -466,7 +440,6 @@ test python hooks
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
- adding remote bookmark quux
(run 'hg update' to get a working copy)
make sure --traceback works
@@ -528,20 +501,6 @@ test python hook configured with python:[file]:[hook] syntax
nothing changed
[1]
- $ echo '[hooks]' > .hg/hgrc
- $ echo "update.ne = python:`pwd`/nonexisting.py:testhook" >> .hg/hgrc
- $ echo "pre-identify.npmd = python:`pwd`/:no_python_module_dir" >> .hg/hgrc
-
- $ hg up null
- loading update.ne hook failed:
- abort: No such file or directory: $TESTTMP/d/repo/nonexisting.py
- [255]
-
- $ hg id
- loading pre-identify.npmd hook failed:
- abort: No module named repo!
- [255]
-
$ cd ../../b
make sure --traceback works on hook import failure
@@ -556,7 +515,7 @@ make sure --traceback works on hook import failure
$ echo 'precommit.importfail = python:importfail.whatever' >> .hg/hgrc
$ echo a >> a
- $ hg --traceback commit -ma 2>&1 | egrep -v '^( +File| [a-zA-Z(])'
+ $ hg --traceback commit -ma 2>&1 | egrep '^(exception|Traceback|ImportError)'
exception from first failed import attempt:
Traceback (most recent call last):
ImportError: No module named somebogusmodule
@@ -564,8 +523,6 @@ make sure --traceback works on hook import failure
Traceback (most recent call last):
ImportError: No module named hgext_importfail
Traceback (most recent call last):
- Abort: precommit.importfail hook is invalid (import of "importfail" failed)
- abort: precommit.importfail hook is invalid (import of "importfail" failed)
Issue1827: Hooks Update & Commit not completely post operation
@@ -592,53 +549,3 @@ that is passed to pre/post hooks
calling hook pre-identify: hooktests.verbosehook
verbose output from hook
cb9a9f314b8b
-
-Ensure hooks can be prioritized
-
- $ echo '[hooks]' > .hg/hgrc
- $ echo 'pre-identify.a = python:hooktests.verbosehook' >> .hg/hgrc
- $ echo 'pre-identify.b = python:hooktests.verbosehook' >> .hg/hgrc
- $ echo 'priority.pre-identify.b = 1' >> .hg/hgrc
- $ echo 'pre-identify.c = python:hooktests.verbosehook' >> .hg/hgrc
- $ hg id --verbose
- calling hook pre-identify.b: hooktests.verbosehook
- verbose output from hook
- calling hook pre-identify.a: hooktests.verbosehook
- verbose output from hook
- calling hook pre-identify.c: hooktests.verbosehook
- verbose output from hook
- cb9a9f314b8b
-
-new tags must be visible in pretxncommit (issue3210)
-
- $ echo 'pretxncommit.printtags = python:hooktests.printtags' >> .hg/hgrc
- $ hg tag -f foo
- ['a', 'foo', 'tip']
-
-new commits must be visible in pretxnchangegroup (issue3428)
-
- $ cd ..
- $ hg init to
- $ echo '[hooks]' >> to/.hg/hgrc
- $ echo 'pretxnchangegroup = hg --traceback tip' >> to/.hg/hgrc
- $ echo a >> to/a
- $ hg --cwd to ci -Ama
- adding a
- $ hg clone to from
- updating to branch default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ echo aa >> from/a
- $ hg --cwd from ci -mb
- $ hg --cwd from push
- pushing to $TESTTMP/to (glob)
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- changeset: 1:9836a07b9b9d
- tag: tip
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: b
-
diff --git a/tests/test-http-branchmap.t b/tests/test-http-branchmap.t
index 1f0b95a..fd64c8d 100644
--- a/tests/test-http-branchmap.t
+++ b/tests/test-http-branchmap.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
$ hgserve() {
> hg serve -a localhost -p $HGPORT1 -d --pid-file=hg.pid -E errors.log -v $@
@@ -7,7 +6,6 @@
$ hg init a
$ hg --encoding utf-8 -R a branch æ
marked working directory as branch \xc3\xa6 (esc)
- (branches are permanent and global, did you want a bookmark?)
$ echo foo > a/foo
$ hg -R a ci -Am foo
adding foo
diff --git a/tests/test-http-clone-r.t b/tests/test-http-clone-r.t
index 454fd3b..b3ff94e 100644
--- a/tests/test-http-clone-r.t
+++ b/tests/test-http-clone-r.t
@@ -1,10 +1,8 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
creating 'remote
$ hg init remote
$ cd remote
- $ hg unbundle "$TESTDIR/bundles/remote.hg"
+ $ hg unbundle $TESTDIR/bundles/remote.hg
adding changesets
adding manifests
adding file changes
diff --git a/tests/test-http-proxy.t b/tests/test-http-proxy.t
index a8d6890..b82a1df 100644
--- a/tests/test-http-proxy.t
+++ b/tests/test-http-proxy.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
$ hg init a
$ cd a
@@ -8,9 +7,10 @@
$ hg --config server.uncompressed=True serve -p $HGPORT -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
$ cd ..
- $ "$TESTDIR/tinyproxy.py" $HGPORT1 localhost >proxy.log 2>&1 </dev/null &
- $ while [ ! -f proxy.pid ]; do sleep 0; done
+ $ ("$TESTDIR/tinyproxy.py" $HGPORT1 localhost >proxy.log 2>&1 </dev/null &
+ $ echo $! > proxy.pid)
$ cat proxy.pid >> $DAEMON_PIDS
+ $ sleep 2
url for proxy, stream
@@ -104,21 +104,17 @@ do not use the proxy if it is in the no list
* - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629 (glob)
- * - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=phases (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=bookmarks (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629 (glob)
- * - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=phases (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=bookmarks (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629 (glob)
- * - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=phases (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=bookmarks (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629 (glob)
- * - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=phases (glob)
* - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=bookmarks (glob)
diff --git a/tests/test-http.t b/tests/test-http.t
index 6c3f6b4..eb9b7df 100644
--- a/tests/test-http.t
+++ b/tests/test-http.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
$ hg init test
$ cd test
@@ -17,15 +16,9 @@
Test server address cannot be reused
-#if windows
- $ hg serve -p $HGPORT1 2>&1
- abort: cannot start server at ':$HGPORT1': * (glob)
- [255]
-#else
$ hg serve -p $HGPORT1 2>&1
abort: cannot start server at ':$HGPORT1': Address already in use
[255]
-#endif
$ cd ..
$ cat hg1.pid hg2.pid >> $DAEMON_PIDS
@@ -99,7 +92,7 @@ pull
$ cd copy-pull
$ echo '[hooks]' >> .hg/hgrc
- $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup" >> .hg/hgrc
+ $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup' >> .hg/hgrc
$ hg pull
pulling from http://localhost:$HGPORT1/
searching for changes
@@ -107,7 +100,7 @@ pull
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/
+ changegroup hook: HG_NODE=5fed3813f7f5e1824344fdc9cf8f63bb662c292d HG_SOURCE=pull HG_URL=http://localhost:$HGPORT1/
(run 'hg update' to get a working copy)
$ cd ..
@@ -118,7 +111,6 @@ clone from invalid URL
[255]
test http authentication
-+ use the same server to test server side streaming preference
$ cd test
$ cat << EOT > userpass.py
@@ -134,8 +126,7 @@ test http authentication
> def extsetup():
> common.permhooks.insert(0, perform_authentication)
> EOT
- $ hg --config extensions.x=userpass.py serve -p $HGPORT2 -d --pid-file=pid \
- > --config server.preferuncompressed=True
+ $ hg --config extensions.x=userpass.py serve -p $HGPORT2 -d --pid-file=pid
$ cat pid >> $DAEMON_PIDS
$ hg id http://localhost:$HGPORT2/
@@ -157,13 +148,8 @@ test http authentication
5fed3813f7f5
$ hg id http://user@localhost:$HGPORT2/
5fed3813f7f5
- $ hg clone http://user:pass@localhost:$HGPORT2/ dest 2>&1
- streaming all changes
- 7 files to transfer, 916 bytes of data
- transferred * bytes in * seconds (*/sec) (glob)
- updating to branch default
- 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
+ $ hg id http://user:pass@localhost:$HGPORT2/
+ 5fed3813f7f5
$ hg id http://user2@localhost:$HGPORT2/
abort: http authorization required
[255]
@@ -176,10 +162,7 @@ test http authentication
clone of serve with repo in root and unserved subrepo (issue2970)
$ hg --cwd test init sub
- $ echo empty > test/sub/empty
- $ hg --cwd test/sub add empty
- $ hg --cwd test/sub commit -qm 'add empty'
- $ hg --cwd test/sub tag -r 0 something
+ $ hg --cwd test/sub tag something
$ echo sub = sub > test/.hgsub
$ hg --cwd test add .hgsub
$ hg --cwd test commit -qm 'add subrepo'
diff --git a/tests/test-https.t b/tests/test-https.t
index c702de8..4bf272d 100644
--- a/tests/test-https.t
+++ b/tests/test-https.t
@@ -1,6 +1,6 @@
Proper https client requires the built-in ssl from Python 2.6.
- $ "$TESTDIR/hghave" serve ssl || exit 80
+ $ "$TESTDIR/hghave" ssl || exit 80
Certificates created with:
printf '.\n.\n.\n.\n.\nlocalhost\nhg@localhost\n' | \
@@ -104,15 +104,9 @@ cacert not found
Test server address cannot be reused
-#if windows
- $ hg serve -p $HGPORT --certificate=$PRIV 2>&1
- abort: cannot start server at ':$HGPORT': (glob)
- [255]
-#else
$ hg serve -p $HGPORT --certificate=$PRIV 2>&1
abort: cannot start server at ':$HGPORT': Address already in use
[255]
-#endif
$ cd ..
clone via pull
@@ -124,9 +118,9 @@ clone via pull
adding manifests
adding file changes
added 1 changesets with 4 changes to 4 files
- 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)
updating to branch default
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ 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)
$ hg verify -R copy-pull
checking changesets
checking manifests
@@ -143,7 +137,7 @@ pull without cacert
$ cd copy-pull
$ echo '[hooks]' >> .hg/hgrc
- $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup" >> .hg/hgrc
+ $ 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)
pulling from https://localhost:$HGPORT/
@@ -152,8 +146,8 @@ pull without cacert
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)
- changegroup hook: HG_NODE=5fed3813f7f5e1824344fdc9cf8f63bb662c292d HG_SOURCE=pull HG_URL=https://localhost:$HGPORT/
(run 'hg update' to get a working copy)
$ cd ..
@@ -186,8 +180,7 @@ variables in the filename
cacert mismatch
$ hg -R copy-pull pull --config web.cacerts=pub.pem https://127.0.0.1:$HGPORT/
- abort: 127.0.0.1 certificate error: certificate is for localhost
- (configure hostfingerprint 91:4f:1a:ff:87:24:9c:09:b6:85:9b:88:b1:90:6d:30:75:64:91:ca or use --insecure to connect insecurely)
+ abort: 127.0.0.1 certificate error: certificate is for localhost (use --insecure to connect insecurely)
[255]
$ hg -R copy-pull pull --config web.cacerts=pub.pem https://127.0.0.1:$HGPORT/ --insecure
warning: 127.0.0.1 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)
@@ -231,21 +224,22 @@ Fingerprints
- fails when cert doesn't match hostname (port is ignored)
$ hg -R copy-pull id https://localhost:$HGPORT1/
- abort: certificate for localhost has unexpected fingerprint 28:ff:71:bf:65:31:14:23:ad:62:92:b4:0e:31:99:18:fc:83:e3:9b
- (check hostfingerprint configuration)
+ abort: invalid certificate for localhost with fingerprint 28:ff:71:bf:65:31:14:23:ad:62:92:b4:0e:31:99:18:fc:83:e3:9b
[255]
- ignores that certificate doesn't match hostname
$ hg -R copy-pull id https://127.0.0.1:$HGPORT/
5fed3813f7f5
- $ while kill `cat hg1.pid` 2>/dev/null; do sleep 0; done
-
Prepare for connecting through proxy
- $ "$TESTDIR/tinyproxy.py" $HGPORT1 localhost >proxy.log </dev/null 2>&1 &
- $ while [ ! -f proxy.pid ]; do sleep 0; done
+ $ kill `cat hg1.pid`
+ $ sleep 1
+
+ $ ("$TESTDIR/tinyproxy.py" $HGPORT1 localhost >proxy.log 2>&1 </dev/null &
+ $ echo $! > proxy.pid)
$ cat proxy.pid >> $DAEMON_PIDS
+ $ sleep 2
$ echo "[http_proxy]" >> copy-pull/.hg/hgrc
$ echo "always=True" >> copy-pull/.hg/hgrc
diff --git a/tests/test-hup.t b/tests/test-hup.t
index 9745643..12aeba7 100644
--- a/tests/test-hup.t
+++ b/tests/test-hup.t
@@ -1,28 +1,20 @@
Test hangup signal in the middle of transaction
- $ "$TESTDIR/hghave" serve fifo || exit 80
+ $ "$TESTDIR/hghave" fifo || exit 80
$ hg init
$ mkfifo p
- $ hg serve --stdio < p 1>out 2>&1 &
+ $ hg serve --stdio < p &
$ P=$!
-
-Do test while holding fifo open
-
- $ (
- > echo lock
- > echo addchangegroup
- > while [ ! -s .hg/store/journal ]; do sleep 0; done
- > kill -HUP $P
- > ) > p
-
- $ wait
- $ cat out
+ $ (echo lock; echo addchangegroup; sleep 5) > p &
+ $ Q=$!
+ $ sleep 3
0
0
adding changesets
+ $ kill -HUP $P
+ $ wait
transaction abort!
rollback completed
killed!
-
$ echo .hg/* .hg/store/*
- .hg/00changelog.i .hg/journal.bookmarks .hg/journal.branch .hg/journal.desc .hg/journal.dirstate .hg/requires .hg/store .hg/store/00changelog.i .hg/store/00changelog.i.a .hg/store/journal.phaseroots
+ .hg/00changelog.i .hg/journal.bookmarks .hg/journal.branch .hg/journal.desc .hg/journal.dirstate .hg/requires .hg/store .hg/store/00changelog.i .hg/store/00changelog.i.a
diff --git a/tests/test-i18n.t b/tests/test-i18n.t
index ec90fd0..f40d004 100644
--- a/tests/test-i18n.t
+++ b/tests/test-i18n.t
@@ -2,8 +2,6 @@ Translations are optional:
$ "$TESTDIR/hghave" gettext || exit 80
-#if no-outer-repo
-
Test that translations are compiled and installed correctly.
Default encoding in tests is "ascii" and the translation is encoded
@@ -24,17 +22,3 @@ Different encoding:
$ HGENCODING=Latin-1 LANGUAGE=pt_BR hg tip
abortado: n\xe3o foi encontrado um reposit\xf3rio em '$TESTTMP' (.hg n\xe3o encontrado)! (esc)
[255]
-
-#endif
-
-Test keyword search in translated help text:
-
- $ HGENCODING=UTF-8 LANGUAGE=de hg help -k blättern
- Topics:
-
- extensions Benutzung erweiterter Funktionen
-
- Erweiterungen:
-
- pager Verwendet einen externen Pager zum Bl\xc3\xa4ttern in der Ausgabe von Befehlen (esc)
-
diff --git a/tests/test-identify.t b/tests/test-identify.t
index 823badb..c0432cc 100644
--- a/tests/test-identify.t
+++ b/tests/test-identify.t
@@ -1,6 +1,4 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
-#if no-outer-repo
+ $ "$TESTDIR/hghave" no-outer-repo || exit 80
no repo
@@ -8,8 +6,6 @@ no repo
abort: there is no Mercurial repository here (.hg not found)
[255]
-#endif
-
create repo
$ hg init test
@@ -55,10 +51,8 @@ other local repo
$ cd ..
$ hg -R test id
cb9a9f314b8b+ tip
-#if no-outer-repo
$ hg id test
cb9a9f314b8b+ tip
-#endif
with remote http repo
@@ -117,8 +111,7 @@ Make sure we do not obscure unknown requires file entries (issue2649)
[255]
$ cd ..
-#if no-outer-repo
$ hg id test
abort: unknown repository format: requires features 'fake' (upgrade Mercurial)!
[255]
-#endif
+
diff --git a/tests/test-impexp-branch.t b/tests/test-impexp-branch.t
index c089a46..fbe9aac 100644
--- a/tests/test-impexp-branch.t
+++ b/tests/test-impexp-branch.t
@@ -1,6 +1,3 @@
- $ echo '[extensions]' >> $HGRCPATH
- $ echo 'mq =' >> $HGRCPATH
-
$ cat >findbranch.py <<EOF
> import re, sys
>
@@ -22,7 +19,6 @@
$ hg commit -m "No branch."
$ hg branch abranch
marked working directory as branch abranch
- (branches are permanent and global, did you want a bookmark?)
$ echo "Rev 2" >rev
$ hg commit -m "With branch."
@@ -58,16 +54,3 @@ Make sure import still works with branch information in patches.
applying ../r0.patch
$ hg import --exact ../r1.patch
applying ../r1.patch
-
-Test --exact and patch header separators (issue3356)
-
- $ hg strip --no-backup .
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- >>> import re
- >>> p = file('../r1.patch', 'rb').read()
- >>> p = re.sub(r'Parent\s+', 'Parent ', p)
- >>> file('../r1-ws.patch', 'wb').write(p)
- $ hg import --exact ../r1-ws.patch
- applying ../r1-ws.patch
-
- $ cd ..
diff --git a/tests/test-import-bypass.t b/tests/test-import-bypass.t
index bbee13b..7413ce2 100644
--- a/tests/test-import-bypass.t
+++ b/tests/test-import-bypass.t
@@ -16,7 +16,6 @@ Test --bypass with other options
$ echo a >> a
$ hg branch foo
marked working directory as branch foo
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Am changea
$ hg export . > ../test.diff
$ hg up null
@@ -62,7 +61,8 @@ Test --user, --date and --message
@ 0:07f494440405 test 0 0 - default - adda
$ hg rollback
- repository tip rolled back to revision 1 (undo import)
+ repository tip rolled back to revision 1 (undo commit)
+ working directory now based on revision 0
Test --import-branch
@@ -74,7 +74,8 @@ Test --import-branch
@ 0:07f494440405 test 0 0 - default - adda
$ hg rollback
- repository tip rolled back to revision 1 (undo import)
+ repository tip rolled back to revision 1 (undo commit)
+ working directory now based on revision 0
Test --strip
@@ -96,7 +97,8 @@ Test --strip
> EOF
applying patch from stdin
$ hg rollback
- repository tip rolled back to revision 1 (undo import)
+ repository tip rolled back to revision 1 (undo commit)
+ working directory now based on revision 0
Test unsupported combinations
@@ -109,15 +111,7 @@ Test unsupported combinations
Test commit editor
- $ cat > ../test.diff <<EOF
- > diff -r 07f494440405 -r 4e322f7ce8e3 a
- > --- a/a Thu Jan 01 00:00:00 1970 +0000
- > +++ b/a Thu Jan 01 00:00:00 1970 +0000
- > @@ -1,1 +1,2 @@
- > -a
- > +b
- > +c
- > EOF
+ $ hg diff -c 1 > ../test.diff
$ HGEDITOR=cat hg import --bypass ../test.diff
applying ../test.diff
@@ -144,7 +138,7 @@ Test patch.eol is handled
$ hg --config patch.eol=auto import -d '0 0' -m 'test patch.eol' --bypass ../test.diff
applying ../test.diff
$ shortlog
- o 3:c606edafba99 test 0 0 - default - test patch.eol
+ o 3:d7805b4d2cb3 test 0 0 - default - test patch.eol
|
@ 2:872023de769d test 0 0 - default - makeacrlf
|
@@ -180,6 +174,7 @@ Test applying multiple patches
$ hg import --bypass ../patch1.diff ../patch2.diff
applying ../patch1.diff
applying ../patch2.diff
+ applied 16581080145e
$ shortlog
o 3:bc8ca3f8a7c4 test 0 0 - default - addf
|
@@ -204,6 +199,7 @@ Test applying multiple patches with --exact
$ hg import --bypass --exact ../patch1.diff ../patch2.diff
applying ../patch1.diff
applying ../patch2.diff
+ applied 16581080145e
$ shortlog
o 3:d60cb8989666 test 0 0 - foo - addf
|
@@ -216,8 +212,6 @@ Test applying multiple patches with --exact
$ cd ..
-#if symlink execbit
-
Test complicated patch with --exact
$ hg init repo-exact
@@ -265,6 +259,3 @@ data. If not, diff both heads to debug it.
|
o 0:a0e19e636a43 test 0 0 - default - t
-#endif
-
- $ cd ..
diff --git a/tests/test-import-context.t b/tests/test-import-context.t
index 848cd41..befa54c 100644
--- a/tests/test-import-context.t
+++ b/tests/test-import-context.t
@@ -123,4 +123,3 @@ What's in a
$ python ../cat.py d
'A\nA\nA\nA\n'
- $ cd ..
diff --git a/tests/test-import-git.t b/tests/test-import-git.t
index caba23b..ca5462a 100644
--- a/tests/test-import-git.t
+++ b/tests/test-import-git.t
@@ -1,5 +1,5 @@
- $ hg init repo
- $ cd repo
+
+ $ hg init
New file:
@@ -40,19 +40,14 @@ chmod +x:
> EOF
applying patch from stdin
-#if execbit
$ hg tip -q
2:3a34410f282e
+
$ test -x new
- $ hg rollback -q
-#else
- $ hg tip -q
- 1:ab199dc869b5
-#endif
-Copy and removing x bit:
+Copy:
- $ hg import -f -d "1000000 0" -mcopy - <<EOF
+ $ hg import -d "1000000 0" -mcopy - <<EOF
> diff --git a/new b/copy
> old mode 100755
> new mode 100644
@@ -66,37 +61,15 @@ Copy and removing x bit:
> EOF
applying patch from stdin
- $ test -f copy
-#if execbit
- $ test ! -x copy
- $ test -x copyx
- $ hg tip -q
- 2:21dfaae65c71
-#else
$ hg tip -q
- 2:0efdaa8e3bf3
-#endif
-
- $ hg up -qCr1
- $ hg rollback -q
+ 3:37bacb7ca14d
-Copy (like above but independent of execbit):
-
- $ hg import -d "1000000 0" -mcopy - <<EOF
- > diff --git a/new b/copy
- > similarity index 100%
- > copy from new
- > copy to copy
- > diff --git a/new b/copyx
- > similarity index 100%
- > copy from new
- > copy to copyx
- > EOF
- applying patch from stdin
-
- $ hg tip -q
- 2:0efdaa8e3bf3
- $ test -f copy
+ $ if "$TESTDIR/hghave" -q execbit; then
+ > test -f copy -a ! -x copy || echo bad
+ > test -x copyx || echo bad
+ > else
+ > test -f copy || echo bad
+ > fi
$ cat copy
a
@@ -115,7 +88,7 @@ Rename:
applying patch from stdin
$ hg tip -q
- 3:b1f57753fad2
+ 4:47b81a94361d
$ hg locate
copyx
@@ -137,7 +110,7 @@ Delete:
applying patch from stdin
$ hg tip -q
- 4:1bd1da94b9b2
+ 5:d9b001d98336
$ hg locate
empty
@@ -164,7 +137,7 @@ Regular diff:
applying patch from stdin
$ hg tip -q
- 5:46fe99cb3035
+ 6:ebe901e7576b
Copy and modify:
@@ -187,7 +160,7 @@ Copy and modify:
applying patch from stdin
$ hg tip -q
- 6:ffeb3197c12d
+ 7:18f368958ecd
$ hg cat copy2
a
@@ -217,7 +190,7 @@ Rename and modify:
applying patch from stdin
$ hg tip -q
- 7:401aede9e6bb
+ 8:c32b0d7e6f44
$ hg locate copy2
[1]
@@ -241,10 +214,10 @@ One file renamed multiple times:
applying patch from stdin
$ hg tip -q
- 8:2ef727e684e8
+ 9:034a6bf95330
$ hg log -vr. --template '{rev} {files} / {file_copies}\n'
- 8 rename2 rename3 rename3-2 / rename3 (rename2)rename3-2 (rename2)
+ 9 rename2 rename3 rename3-2 / rename3 (rename2)rename3-2 (rename2)
$ hg locate rename2 rename3 rename3-2
rename3
@@ -285,7 +258,7 @@ Binary files and regular patch hunks:
applying patch from stdin
$ hg tip -q
- 10:27377172366e
+ 11:c39bce63e786
$ cat foo2
foo
@@ -314,7 +287,7 @@ Multiple binary files:
applying patch from stdin
$ hg tip -q
- 11:18b73a84b4ab
+ 12:30b530085242
$ hg manifest --debug | grep mbinary
045c85ba38952325e126c70962cc0f9d9077bc67 644 mbinary1
@@ -334,7 +307,7 @@ Filenames with spaces:
applying patch from stdin
$ hg tip -q
- 12:47500ce1614e
+ 13:04750ef42fb3
$ cat "foo bar"
foo
@@ -357,7 +330,7 @@ Copy then modify the original file:
applying patch from stdin
$ hg tip -q
- 13:6757efb07ea9
+ 14:c4cd9cdeaa74
$ cat foo3
foo
@@ -388,77 +361,6 @@ Move text file and patch as binary
A binary2
text2
R text2
-
-Invalid base85 content
-
- $ hg rollback
- repository tip rolled back to revision 14 (undo import)
- working directory now based on revision 14
- $ hg revert -aq
- $ hg import -d "1000000 0" -m invalid-binary - <<"EOF"
- > diff --git a/text2 b/binary2
- > rename from text2
- > rename to binary2
- > index 78981922613b2afb6025042ff6bd878ac1994e85..10efcb362e9f3b3420fcfbfc0e37f3dc16e29757
- > GIT binary patch
- > literal 5
- > Mc$`b*O.$Pw00T?_*Z=?k
- >
- > EOF
- applying patch from stdin
- abort: could not decode "binary2" binary patch: bad base85 character at position 6
- [255]
-
- $ hg revert -aq
- $ hg import -d "1000000 0" -m rename-as-binary - <<"EOF"
- > diff --git a/text2 b/binary2
- > rename from text2
- > rename to binary2
- > index 78981922613b2afb6025042ff6bd878ac1994e85..10efcb362e9f3b3420fcfbfc0e37f3dc16e29757
- > GIT binary patch
- > literal 6
- > Mc$`b*O5$Pw00T?_*Z=?k
- >
- > EOF
- applying patch from stdin
- abort: "binary2" length is 5 bytes, should be 6
- [255]
-
- $ hg revert -aq
- $ hg import -d "1000000 0" -m rename-as-binary - <<"EOF"
- > diff --git a/text2 b/binary2
- > rename from text2
- > rename to binary2
- > index 78981922613b2afb6025042ff6bd878ac1994e85..10efcb362e9f3b3420fcfbfc0e37f3dc16e29757
- > GIT binary patch
- > Mc$`b*O5$Pw00T?_*Z=?k
- >
- > EOF
- applying patch from stdin
- abort: could not extract "binary2" binary data
- [255]
-
-Simulate a copy/paste turning LF into CRLF (issue2870)
-
- $ hg revert -aq
- $ cat > binary.diff <<"EOF"
- > diff --git a/text2 b/binary2
- > rename from text2
- > rename to binary2
- > index 78981922613b2afb6025042ff6bd878ac1994e85..10efcb362e9f3b3420fcfbfc0e37f3dc16e29757
- > GIT binary patch
- > literal 5
- > Mc$`b*O5$Pw00T?_*Z=?k
- >
- > EOF
- >>> fp = file('binary.diff', 'rb')
- >>> data = fp.read()
- >>> fp.close()
- >>> file('binary.diff', 'wb').write(data.replace('\n', '\r\n'))
- $ rm binary2
- $ hg import --no-commit binary.diff
- applying binary.diff
-
$ cd ..
Consecutive import with renames (issue2459)
@@ -499,23 +401,6 @@ Renames and strip
A b
a
R a
-
-Renames, similarity and git diff
-
- $ hg revert -aC
- undeleting a
- forgetting b
- $ rm b
- $ hg import --similarity 90 --no-commit - <<EOF
- > diff --git a/a b/b
- > rename from a
- > rename to b
- > EOF
- applying patch from stdin
- $ hg st --copies
- A b
- a
- R a
$ cd ..
Pure copy with existing destination
@@ -558,8 +443,6 @@ Copy and changes with existing destination
$ cat b
b
-#if symlink
-
$ ln -s b linkb
$ hg add linkb
$ hg ci -m addlinkb
@@ -582,30 +465,4 @@ Copy and changes with existing destination
? b.rej
? linkb.rej
-#endif
-
-Test corner case involving copies and multiple hunks (issue3384)
-
- $ hg revert -qa
- $ hg import --no-commit - <<EOF
- > diff --git a/a b/c
- > copy from a
- > copy to c
- > --- a/a
- > +++ b/c
- > @@ -1,1 +1,2 @@
- > a
- > +a
- > @@ -2,1 +2,2 @@
- > a
- > +a
- > diff --git a/a b/a
- > --- a/a
- > +++ b/a
- > @@ -1,1 +1,2 @@
- > a
- > +b
- > EOF
- applying patch from stdin
-
$ cd ..
diff --git a/tests/test-import-merge.t b/tests/test-import-merge.t
deleted file mode 100644
index 924f076..0000000
--- a/tests/test-import-merge.t
+++ /dev/null
@@ -1,115 +0,0 @@
- $ echo "[extensions]" >> $HGRCPATH
- $ echo "mq=" >> $HGRCPATH
-
- $ tipparents() {
- > hg parents --template "{rev}:{node|short} {desc|firstline}\n" -r tip
- > }
-
-Test import and merge diffs
-
- $ hg init repo
- $ cd repo
- $ echo a > a
- $ hg ci -Am adda
- adding a
- $ echo a >> a
- $ hg ci -m changea
- $ echo c > c
- $ hg ci -Am addc
- adding c
- $ hg up 0
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo b > b
- $ hg ci -Am addb
- adding b
- created new head
- $ hg up 1
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge 3
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m merge
- $ hg export . > ../merge.diff
- $ cd ..
- $ hg clone -r2 repo repo2
- adding changesets
- adding manifests
- adding file changes
- added 3 changesets with 3 changes to 2 files
- updating to branch default
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd repo2
- $ hg pull -r3 ../repo
- pulling from ../repo
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
-
-Test without --exact and diff.p1 == workingdir.p1
-
- $ hg up 1
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg import ../merge.diff
- applying ../merge.diff
- $ tipparents
- 1:540395c44225 changea
- 3:102a90ea7b4a addb
- $ hg strip --no-backup tip
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
-
-Test without --exact and diff.p1 != workingdir.p1
-
- $ hg up 2
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg import ../merge.diff
- applying ../merge.diff
- $ tipparents
- 2:890ecaa90481 addc
- $ hg strip --no-backup tip
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
-
-Test with --exact
-
- $ hg import --exact ../merge.diff
- applying ../merge.diff
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ tipparents
- 1:540395c44225 changea
- 3:102a90ea7b4a addb
- $ hg strip --no-backup tip
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
-
-Test with --bypass and diff.p1 == workingdir.p1
-
- $ hg up 1
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg import --bypass ../merge.diff
- applying ../merge.diff
- $ tipparents
- 1:540395c44225 changea
- 3:102a90ea7b4a addb
- $ hg strip --no-backup tip
-
-Test with --bypass and diff.p1 != workingdir.p1
-
- $ hg up 2
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg import --bypass ../merge.diff
- applying ../merge.diff
- $ tipparents
- 2:890ecaa90481 addc
- $ hg strip --no-backup tip
-
-Test with --bypass and --exact
-
- $ hg import --bypass --exact ../merge.diff
- applying ../merge.diff
- $ tipparents
- 1:540395c44225 changea
- 3:102a90ea7b4a addb
- $ hg strip --no-backup tip
-
- $ cd ..
diff --git a/tests/test-import-unknown.t b/tests/test-import-unknown.t
index a143676..c0ee1bd 100644
--- a/tests/test-import-unknown.t
+++ b/tests/test-import-unknown.t
@@ -65,5 +65,3 @@ Test copying onto an unknown file
applying ../unknown.diff
abort: cannot create copied: destination already exists
[255]
-
- $ cd ..
diff --git a/tests/test-import.t b/tests/test-import.t
index ccd35cc..a141c32 100644
--- a/tests/test-import.t
+++ b/tests/test-import.t
@@ -10,11 +10,6 @@
$ echo line 2 >> a/a
$ hg --cwd a ci -u someone -d '1 0' -m'second change'
-import with no args:
-
- $ hg --cwd a import
- abort: need at least one patch to import
- [255]
generate patches for the test
@@ -52,6 +47,7 @@ import exported patch with external patcher
> print 'patching file a'
> file('a', 'wb').write('line2\n')
> EOF
+ $ chmod +x dummypatch.py
$ hg clone -r0 a b
adding changesets
adding manifests
@@ -203,6 +199,7 @@ import two patches in one stream
$ hg init b
$ hg --cwd a export 0:tip | hg --cwd b import -
applying patch from stdin
+ applied 80971e65b431
$ hg --cwd a id
1d4bd90af0e4 tip
$ hg --cwd b id
@@ -232,7 +229,7 @@ override commit message
> msg.set_payload('email commit message\n' + patch)
> msg['Subject'] = 'email patch'
> msg['From'] = 'email patcher'
- > file(sys.argv[2], 'wb').write(msg.as_string())
+ > sys.stdout.write(msg.as_string())
> EOF
@@ -245,7 +242,7 @@ plain diff in email, subject, message body
added 1 changesets with 2 changes to 2 files
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ python mkmsg.py diffed-tip.patch msg.patch
+ $ python mkmsg.py diffed-tip.patch > msg.patch
$ hg --cwd b import ../msg.patch
applying ../msg.patch
$ hg --cwd b tip | grep email
@@ -307,8 +304,7 @@ hg export in email, should use patch header
added 1 changesets with 2 changes to 2 files
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ python mkmsg.py exported-tip.patch msg.patch
- $ cat msg.patch | hg --cwd b import -
+ $ python mkmsg.py exported-tip.patch | hg --cwd b import -
applying patch from stdin
$ hg --cwd b tip | grep second
summary: second change
@@ -325,7 +321,7 @@ The '---' tests the gitsendmail handling without proper mail headers
> msg.set_payload('email patch\n\nnext line\n---\n' + patch)
> msg['Subject'] = '[PATCH] email patch'
> msg['From'] = 'email patcher'
- > file(sys.argv[2], 'wb').write(msg.as_string())
+ > sys.stdout.write(msg.as_string())
> EOF
@@ -338,8 +334,7 @@ plain diff in email, [PATCH] subject, message body with subject
added 1 changesets with 2 changes to 2 files
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ python mkmsg2.py diffed-tip.patch msg.patch
- $ cat msg.patch | hg --cwd b import -
+ $ python mkmsg2.py diffed-tip.patch | hg --cwd b import -
applying patch from stdin
$ hg --cwd b tip --template '{desc}\n'
email patch
@@ -361,20 +356,15 @@ patches: import patch1 patch2; rollback
$ hg clone -qr0 a b
$ hg --cwd b parents --template 'parent: {rev}\n'
parent: 0
- $ hg --cwd b import -v ../patch1 ../patch2
+ $ hg --cwd b import ../patch1 ../patch2
applying ../patch1
- patching file a
- a
- created 1d4bd90af0e4
applying ../patch2
- patching file a
- a
- created 6d019af21222
+ applied 1d4bd90af0e4
$ hg --cwd b rollback
- repository tip rolled back to revision 0 (undo import)
- working directory now based on revision 0
+ 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: 0
+ parent: 1
$ rm -r b
@@ -442,8 +432,7 @@ Test fuzziness (ambiguous patch location, fuzz=2)
$ hg import --no-commit -v fuzzy-tip.patch
applying fuzzy-tip.patch
patching file a
- Hunk #1 succeeded at 2 with fuzz 1 (offset 0 lines).
- applied to working directory
+ Hunk #1 succeeded at 1 with fuzz 2 (offset -2 lines).
$ hg revert -a
reverting a
@@ -459,8 +448,7 @@ test fuzziness with eol=auto
$ hg --config patch.eol=auto import --no-commit -v fuzzy-tip.patch
applying fuzzy-tip.patch
patching file a
- Hunk #1 succeeded at 2 with fuzz 1 (offset 0 lines).
- applied to working directory
+ Hunk #1 succeeded at 1 with fuzz 2 (offset -2 lines).
$ cd ..
@@ -629,7 +617,7 @@ test paths outside repo root
> rename to bar
> EOF
applying patch from stdin
- abort: path contains illegal component: ../outside/foo (glob)
+ abort: path contains illegal component: ../outside/foo
[255]
$ cd ..
@@ -660,9 +648,9 @@ test import with similarity and git and strip (issue295 et al.)
applying ../rename.diff
patching file a
patching file b
+ removing a
adding b
recording removal of a as rename to b (88% similar)
- applied to working directory
$ hg st -C
A b
a
@@ -675,8 +663,8 @@ test import with similarity and git and strip (issue295 et al.)
applying ../rename.diff
patching file a
patching file b
+ removing a
adding b
- applied to working directory
$ hg st -C
A b
R a
@@ -692,7 +680,6 @@ Issue1495: add empty file from the end of patch
adding a
$ hg ci -m "commit"
$ cat > a.patch <<EOF
- > add a, b
> diff --git a/a b/a
> --- a/a
> +++ b/a
@@ -703,25 +690,9 @@ Issue1495: add empty file from the end of patch
> EOF
$ hg import --no-commit a.patch
applying a.patch
-
-apply a good patch followed by an empty patch (mainly to ensure
-that dirstate is *not* updated when import crashes)
- $ hg update -q -C .
- $ rm b
- $ touch empty.patch
- $ hg import a.patch empty.patch
- applying a.patch
- applying empty.patch
- transaction abort!
- rollback completed
- abort: empty.patch: no diffs found
- [255]
- $ hg tip --template '{rev} {desc|firstline}\n'
- 0 commit
- $ hg -q status
- M a
$ cd ..
+
create file when source is not /dev/null
$ cat > create.patch <<EOF
@@ -754,7 +725,6 @@ some people have patches like the following too
$ cat foo
a
- $ cd ..
Issue1859: first line mistaken for email headers
@@ -789,7 +759,7 @@ Issue1859: first line mistaken for email headers
$ cd ..
-in commit message
+--- in commit message
$ hg init commitconfusion
$ cd commitconfusion
@@ -905,16 +875,12 @@ Issue2102: hg export and hg import speak different languages
> new mode 100755
> EOF
applying patch from stdin
-
-#if execbit
-
$ hg sum
parent: 1:d59915696727 tip
help management of empty pkg and lib directories in perforce
branch: default
commit: (clean)
update: (current)
-
$ hg diff --git -c tip
diff --git a/lib/place-holder b/lib/place-holder
new file mode 100644
@@ -933,39 +899,6 @@ Issue2102: hg export and hg import speak different languages
diff --git a/src/cmd/gc/mksys.bash b/src/cmd/gc/mksys.bash
old mode 100644
new mode 100755
-
-#else
-
- $ hg sum
- parent: 1:28f089cc9ccc tip
- help management of empty pkg and lib directories in perforce
- branch: default
- commit: (clean)
- update: (current)
-
- $ hg diff --git -c tip
- diff --git a/lib/place-holder b/lib/place-holder
- new file mode 100644
- --- /dev/null
- +++ b/lib/place-holder
- @@ -0,0 +1,2 @@
- +perforce does not maintain empty directories.
- +this file helps.
- diff --git a/pkg/place-holder b/pkg/place-holder
- new file mode 100644
- --- /dev/null
- +++ b/pkg/place-holder
- @@ -0,0 +1,2 @@
- +perforce does not maintain empty directories.
- +this file helps.
-
-/* The mode change for mksys.bash is missing here, because on platforms */
-/* that don't support execbits, mode changes in patches are ignored when */
-/* they are imported. This is obviously also the reason for why the hash */
-/* in the created changeset is different to the one you see above the */
-/* #else clause */
-
-#endif
$ cd ..
@@ -995,161 +928,3 @@ diff lines looking like headers
$ diff want have
$ cd ..
-import a unified diff with no lines of context (diff -U0)
-
- $ hg init diffzero
- $ cd diffzero
- $ cat > f << EOF
- > c2
- > c4
- > c5
- > EOF
- $ hg commit -Am0
- adding f
-
- $ hg import --no-commit - << EOF
- > # HG changeset patch
- > # User test
- > # Date 0 0
- > # Node ID f4974ab632f3dee767567b0576c0ec9a4508575c
- > # Parent 8679a12a975b819fae5f7ad3853a2886d143d794
- > 1
- > diff -r 8679a12a975b -r f4974ab632f3 f
- > --- a/f Thu Jan 01 00:00:00 1970 +0000
- > +++ b/f Thu Jan 01 00:00:00 1970 +0000
- > @@ -0,0 +1,1 @@
- > +c1
- > @@ -1,0 +3,1 @@
- > +c3
- > @@ -3,1 +4,0 @@
- > -c5
- > EOF
- applying patch from stdin
-
- $ cat f
- c1
- c2
- c3
- c4
-
- $ cd ..
-
-no segfault while importing a unified diff which start line is zero but chunk
-size is non-zero
-
- $ hg init startlinezero
- $ cd startlinezero
- $ echo foo > foo
- $ hg commit -Amfoo
- adding foo
-
- $ hg import --no-commit - << EOF
- > diff a/foo b/foo
- > --- a/foo
- > +++ b/foo
- > @@ -0,1 +0,1 @@
- > foo
- > EOF
- applying patch from stdin
-
- $ cd ..
-
-Test corner case involving fuzz and skew
-
- $ hg init morecornercases
- $ cd morecornercases
-
- $ cat > 01-no-context-beginning-of-file.diff <<EOF
- > diff --git a/a b/a
- > --- a/a
- > +++ b/a
- > @@ -1,0 +1,1 @@
- > +line
- > EOF
-
- $ cat > 02-no-context-middle-of-file.diff <<EOF
- > diff --git a/a b/a
- > --- a/a
- > +++ b/a
- > @@ -1,1 +1,1 @@
- > -2
- > +add some skew
- > @@ -2,0 +2,1 @@
- > +line
- > EOF
-
- $ cat > 03-no-context-end-of-file.diff <<EOF
- > diff --git a/a b/a
- > --- a/a
- > +++ b/a
- > @@ -10,0 +10,1 @@
- > +line
- > EOF
-
- $ cat > 04-middle-of-file-completely-fuzzed.diff <<EOF
- > diff --git a/a b/a
- > --- a/a
- > +++ b/a
- > @@ -1,1 +1,1 @@
- > -2
- > +add some skew
- > @@ -2,2 +2,3 @@
- > not matching, should fuzz
- > ... a bit
- > +line
- > EOF
-
- $ cat > a <<EOF
- > 1
- > 2
- > 3
- > 4
- > EOF
- $ hg ci -Am adda a
- $ for p in *.diff; do
- > hg import -v --no-commit $p
- > cat a
- > hg revert -aqC a
- > # patch -p1 < $p
- > # cat a
- > # hg revert -aC a
- > done
- applying 01-no-context-beginning-of-file.diff
- patching file a
- applied to working directory
- 1
- line
- 2
- 3
- 4
- applying 02-no-context-middle-of-file.diff
- patching file a
- Hunk #1 succeeded at 2 (offset 1 lines).
- Hunk #2 succeeded at 4 (offset 1 lines).
- applied to working directory
- 1
- add some skew
- 3
- line
- 4
- applying 03-no-context-end-of-file.diff
- patching file a
- Hunk #1 succeeded at 5 (offset -6 lines).
- applied to working directory
- 1
- 2
- 3
- 4
- line
- applying 04-middle-of-file-completely-fuzzed.diff
- patching file a
- Hunk #1 succeeded at 2 (offset 1 lines).
- Hunk #2 succeeded at 5 with fuzz 2 (offset 1 lines).
- applied to working directory
- 1
- add some skew
- 3
- 4
- line
-
- $ cd ..
diff --git a/tests/test-incoming-outgoing.t b/tests/test-incoming-outgoing.t
index 03deeac..1d54572 100644
--- a/tests/test-incoming-outgoing.t
+++ b/tests/test-incoming-outgoing.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
$ hg init test
$ cd test
$ for i in 0 1 2 3 4 5 6 7 8; do
@@ -399,15 +397,6 @@ test outgoing
date: Thu Jan 01 00:00:00 1970 +0000
summary: 13
-test outgoing with secret changesets
-
- $ hg -R test-dev phase --force --secret 9
- $ hg -R test-dev outgoing test
- comparing with test
- searching for changes
- no changes found (ignored 5 secret changesets)
- [1]
- $ hg -R test-dev phase --draft -r 'head()'
limit to 3 changesets
diff --git a/tests/test-inherit-mode.t b/tests/test-inherit-mode.t
index cf6c9e5..70ee5d8 100644
--- a/tests/test-inherit-mode.t
+++ b/tests/test-inherit-mode.t
@@ -65,8 +65,6 @@ new directories are setgid
$ python ../printmodes.py .
00700 ./.hg/
00600 ./.hg/00changelog.i
- 00770 ./.hg/cache/
- 00660 ./.hg/cache/branchheads
00660 ./.hg/dirstate
00660 ./.hg/last-message.txt
00600 ./.hg/requires
@@ -78,9 +76,7 @@ new directories are setgid
00660 ./.hg/store/data/dir/bar.i
00660 ./.hg/store/data/foo.i
00660 ./.hg/store/fncache
- 00660 ./.hg/store/phaseroots
00660 ./.hg/store/undo
- 00660 ./.hg/store/undo.phaseroots
00660 ./.hg/undo.bookmarks
00660 ./.hg/undo.branch
00660 ./.hg/undo.desc
@@ -121,9 +117,7 @@ group can still write everything
00660 ../push/.hg/store/data/dir/bar.i
00660 ../push/.hg/store/data/foo.i
00660 ../push/.hg/store/fncache
- 00660 ../push/.hg/store/phaseroots
00660 ../push/.hg/store/undo
- 00660 ../push/.hg/store/undo.phaseroots
00660 ../push/.hg/undo.bookmarks
00660 ../push/.hg/undo.branch
00660 ../push/.hg/undo.desc
@@ -138,7 +132,7 @@ just check that directories have the same mode.
$ hg init setgid
$ cd setgid
$ chmod g+rwx .hg/store
- $ chmod g+s .hg/store 2> /dev/null || true
+ $ chmod g+s .hg/store 2> /dev/null
$ mkdir dir
$ touch dir/file
$ hg ci -qAm 'add dir/file'
@@ -146,7 +140,4 @@ just check that directories have the same mode.
$ dirmode=`python ../mode.py .hg/store/data/dir`
$ if [ "$storemode" != "$dirmode" ]; then
> echo "$storemode != $dirmode"
- > fi
- $ cd ..
-
- $ cd .. # g-s dir
+ $ fi
diff --git a/tests/test-init.t b/tests/test-init.t
index aa4610b..1980769 100644
--- a/tests/test-init.t
+++ b/tests/test-init.t
@@ -19,8 +19,8 @@ creating 'local'
store created
00changelog.i created
revlogv1
- fncache
store
+ fncache
dotencode
$ echo this > local/foo
$ hg ci --cwd local -A -m "init"
@@ -48,8 +48,8 @@ creating repo with format.dotencode=false
store created
00changelog.i created
revlogv1
- fncache
store
+ fncache
test failure
@@ -59,7 +59,7 @@ test failure
init+push to remote2
- $ hg init -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote2
+ $ hg init -e "python $TESTDIR/dummyssh" ssh://user@dummy/remote2
$ hg incoming -R remote2 local
comparing with local
changeset: 0:08b9e9f63b32
@@ -69,7 +69,7 @@ init+push to remote2
summary: init
- $ hg push -R local -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote2
+ $ hg push -R local -e "python $TESTDIR/dummyssh" ssh://user@dummy/remote2
pushing to ssh://user@dummy/remote2
searching for changes
remote: adding changesets
@@ -79,7 +79,7 @@ init+push to remote2
clone to remote1
- $ hg clone -e "python \"$TESTDIR/dummyssh\"" local ssh://user@dummy/remote1
+ $ hg clone -e "python $TESTDIR/dummyssh" local ssh://user@dummy/remote1
searching for changes
remote: adding changesets
remote: adding manifests
@@ -88,14 +88,14 @@ clone to remote1
init to existing repo
- $ hg init -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote1
+ $ hg init -e "python $TESTDIR/dummyssh" ssh://user@dummy/remote1
abort: repository remote1 already exists!
abort: could not create remote repo!
[255]
clone to existing repo
- $ hg clone -e "python \"$TESTDIR/dummyssh\"" local ssh://user@dummy/remote1
+ $ hg clone -e "python $TESTDIR/dummyssh" local ssh://user@dummy/remote1
abort: repository remote1 already exists!
abort: could not create remote repo!
[255]
@@ -122,7 +122,7 @@ comparing repositories
check names for repositories (clashes with URL schemes, special chars)
- $ for i in bundle file hg http https old-http ssh static-http "with space"; do
+ $ for i in bundle file hg http https old-http ssh static-http " " "with space"; do
> printf "hg init \"$i\"... "
> hg init "$i"
> test -d "$i" -a -d "$i/.hg" && echo "ok" || echo "failed"
@@ -135,13 +135,8 @@ check names for repositories (clashes with URL schemes, special chars)
hg init "old-http"... ok
hg init "ssh"... ok
hg init "static-http"... ok
+ hg init " "... ok
hg init "with space"... ok
-#if eol-in-paths
-/* " " is not a valid name for a directory on Windows */
- $ hg init " "
- $ test -d " "
- $ test -d " /.hg"
-#endif
creating 'local/sub/repo'
@@ -150,8 +145,8 @@ creating 'local/sub/repo'
store created
00changelog.i created
revlogv1
- fncache
store
+ fncache
dotencode
prepare test of init of url configured from paths
@@ -167,8 +162,8 @@ init should (for consistency with clone) expand the url
store created
00changelog.i created
revlogv1
- fncache
store
+ fncache
dotencode
verify that clone also expand urls
@@ -180,8 +175,8 @@ verify that clone also expand urls
store created
00changelog.i created
revlogv1
- fncache
store
+ fncache
dotencode
clone bookmarks
@@ -189,7 +184,7 @@ clone bookmarks
$ hg -R local bookmark test
$ hg -R local bookmarks
* test 0:08b9e9f63b32
- $ hg clone -e "python \"$TESTDIR/dummyssh\"" local ssh://user@dummy/remote-bookmarks
+ $ hg clone -e "python $TESTDIR/dummyssh" local ssh://user@dummy/remote-bookmarks
searching for changes
remote: adding changesets
remote: adding manifests
diff --git a/tests/test-inotify-dirty-dirstate.t b/tests/test-inotify-dirty-dirstate.t
index af9bd8e..15b67bc 100644
--- a/tests/test-inotify-dirty-dirstate.t
+++ b/tests/test-inotify-dirty-dirstate.t
@@ -68,5 +68,3 @@ st should not output anything
$ hg status
$ hg qrefresh
$ hg status
-
- $ cd ..
diff --git a/tests/test-inotify-issue1208.t b/tests/test-inotify-issue1208.t
index e8e5237..b87fa2f 100644
--- a/tests/test-inotify-issue1208.t
+++ b/tests/test-inotify-issue1208.t
@@ -34,5 +34,3 @@ if we try to start twice the server, make sure we get a correct error
abort: child process failed to start
[255]
$ kill `cat hg.pid`
-
- $ cd ..
diff --git a/tests/test-inotify.t b/tests/test-inotify.t
index 34be779..55eb61d 100644
--- a/tests/test-inotify.t
+++ b/tests/test-inotify.t
@@ -158,5 +158,3 @@ build/x & build/y shouldn't appear in "hg st"
$ hg st
$ kill `cat hg.pid`
-
- $ cd ..
diff --git a/tests/test-install.t b/tests/test-install.t
index 5d7741d..3ecc3b0 100644
--- a/tests/test-install.t
+++ b/tests/test-install.t
@@ -1,19 +1,19 @@
hg debuginstall
$ hg debuginstall
- checking encoding (ascii)...
- checking installed modules (*mercurial)... (glob)
- checking templates (*mercurial?templates)... (glob)
- checking commit editor...
- checking username...
- no problems detected
+ Checking encoding (ascii)...
+ Checking installed modules (*/mercurial)... (glob)
+ Checking templates...
+ Checking commit editor...
+ Checking username...
+ No problems detected
hg debuginstall with no username
$ HGUSER= hg debuginstall
- checking encoding (ascii)...
- checking installed modules (*mercurial)... (glob)
- checking templates (*mercurial?templates)... (glob)
- checking commit editor...
- checking username...
+ Checking encoding (ascii)...
+ Checking installed modules (*/mercurial)... (glob)
+ Checking templates...
+ Checking commit editor...
+ Checking username...
no username supplied (see "hg help config")
(specify a username in your configuration file)
1 problems detected, please check your install!
diff --git a/tests/test-interhg.t b/tests/test-interhg.t
index ee08846..5b829a3 100644
--- a/tests/test-interhg.t
+++ b/tests/test-interhg.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
$ hg init test
$ cd test
@@ -23,11 +21,9 @@
log
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '' | grep bts
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/' | grep bts
<td class="description"><a href="/rev/1b0e7ece6bd6"><a href="http://bts.example.org/issue123">Issue123</a>: fixed the <i class="x">bug</i>!</a><span class="branchhead">default</span> <span class="tag">tip</span> </td>
errors
$ cat errors.log
-
- $ cd ..
diff --git a/tests/test-issue1089.t b/tests/test-issue1089.t
index 2bdd3d0..5075f64 100644
--- a/tests/test-issue1089.t
+++ b/tests/test-issue1089.t
@@ -7,7 +7,7 @@ http://mercurial.selenic.com/bts/issue1089
adding a/b
$ hg rm a
- removing a/b (glob)
+ removing a/b
$ hg ci -m m a
$ mkdir a b
@@ -16,11 +16,10 @@ http://mercurial.selenic.com/bts/issue1089
adding a/b
$ hg rm a
- removing a/b (glob)
+ removing a/b
$ cd b
Relative delete:
$ hg ci -m m ../a
- $ cd ..
diff --git a/tests/test-issue1306.t b/tests/test-issue1306.t
index a176284..e77970f 100644
--- a/tests/test-issue1306.t
+++ b/tests/test-issue1306.t
@@ -11,7 +11,6 @@ Initialize remote repo with branches:
$ hg branch br
marked working directory as branch br
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Amb
$ echo c > c
diff --git a/tests/test-issue1502.t b/tests/test-issue1502.t
index 4963502..5466c8f 100644
--- a/tests/test-issue1502.t
+++ b/tests/test-issue1502.t
@@ -13,7 +13,7 @@ Initialize repository
$ 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 (glob)
+ pulling from $TESTTMP/foo
searching for changes
adding changesets
adding manifests
@@ -29,7 +29,7 @@ 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 (glob)
+ pulling from $TESTTMP/foo
searching for changes
adding changesets
adding manifests
diff --git a/tests/test-issue1802.t b/tests/test-issue1802.t
deleted file mode 100644
index 9b3268a..0000000
--- a/tests/test-issue1802.t
+++ /dev/null
@@ -1,73 +0,0 @@
- $ "$TESTDIR/hghave" execbit || exit 80
-
-Create extension that can disable exec checks:
-
- $ cat > noexec.py <<EOF
- > from mercurial import extensions, util
- > def setflags(orig, f, l, x):
- > pass
- > def checkexec(orig, path):
- > return False
- > def extsetup(ui):
- > extensions.wrapfunction(util, 'setflags', setflags)
- > extensions.wrapfunction(util, 'checkexec', checkexec)
- > EOF
-
- $ hg init unix-repo
- $ cd unix-repo
- $ touch a
- $ hg add a
- $ hg commit -m 'unix: add a'
- $ hg clone . ../win-repo
- updating to branch default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ chmod +x a
- $ hg commit -m 'unix: chmod a'
- $ hg manifest -v
- 755 * a
-
- $ cd ../win-repo
-
- $ touch b
- $ hg add b
- $ hg commit -m 'win: add b'
-
- $ hg manifest -v
- 644 a
- 644 b
-
- $ hg pull
- pulling from $TESTTMP/unix-repo
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 0 changes to 0 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
-
- $ hg manifest -v -r tip
- 755 * a
-
-Simulate a Windows merge:
-
- $ hg --config extensions.n=$TESTTMP/noexec.py merge --debug
- searching for copies back to rev 1
- unmatched files in local:
- b
- resolving manifests
- overwrite: False, partial: False
- ancestor: a03b0deabf2b, local: d6fa54f68ae1+, remote: 2d8bcf2dda39
- a: update permissions -> e
- updating: a 1/1 files (100.00%)
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
-
-Simulate a Windows commit:
-
- $ hg --config extensions.n=$TESTTMP/noexec.py commit -m 'win: merge'
-
- $ hg manifest -v
- 755 * a
- 644 b
-
- $ cd ..
diff --git a/tests/test-issue1877.t b/tests/test-issue1877.t
index aa3083a..64eb9f4 100644
--- a/tests/test-issue1877.t
+++ b/tests/test-issue1877.t
@@ -43,4 +43,3 @@ http://mercurial.selenic.com/bts/issue1877
$ hg book
main 2:d36c0562f908
- $ cd ..
diff --git a/tests/test-issue2137.t b/tests/test-issue2137.t
index 99b41f4..94d626a 100644
--- a/tests/test-issue2137.t
+++ b/tests/test-issue2137.t
@@ -52,5 +52,3 @@ Test that new changesets are visible to repo.lookup():
date: Thu Jan 01 00:00:00 1970 +0000
summary: one more commit to demonstrate the bug
-
- $ cd ..
diff --git a/tests/test-issue3084.t b/tests/test-issue3084.t
deleted file mode 100644
index 43945b1..0000000
--- a/tests/test-issue3084.t
+++ /dev/null
@@ -1,110 +0,0 @@
-
- $ echo "[extensions]" >> $HGRCPATH
- $ echo "largefiles =" >> $HGRCPATH
-
-Create the repository outside $HOME since largefiles write to
-$HOME/.cache/largefiles.
-
- $ hg init test
- $ cd test
- $ echo "root" > root
- $ hg add root
- $ hg commit -m "Root commit"
-
- $ echo "large" > foo
- $ hg add --large foo
- $ hg commit -m "Add foo as a largefile"
-
- $ hg update -r 0
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- getting changed largefiles
- 0 largefiles updated, 1 removed
-
- $ echo "normal" > foo
- $ hg add foo
- $ hg commit -m "Add foo as normal file"
- created new head
-
-Normal file in the working copy, keeping the normal version:
-
- $ echo "n" | hg merge --config ui.interactive=Yes
- foo has been turned into a largefile
- use (l)argefile or keep as (n)ormal file? 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
-
- $ hg status
- $ cat foo
- normal
-
-Normal file in the working copy, keeping the largefile version:
-
- $ hg update -q -C
- $ echo "l" | hg merge --config ui.interactive=Yes
- foo has been turned into a largefile
- use (l)argefile or keep as (n)ormal file? 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- getting changed largefiles
- 1 largefiles updated, 0 removed
-
- $ hg status
- M foo
-
- $ hg diff --nodates
- diff -r fa129ab6b5a7 .hglf/foo
- --- /dev/null
- +++ b/.hglf/foo
- @@ -0,0 +1,1 @@
- +7f7097b041ccf68cc5561e9600da4655d21c6d18
- diff -r fa129ab6b5a7 foo
- --- a/foo
- +++ /dev/null
- @@ -1,1 +0,0 @@
- -normal
-
- $ cat foo
- large
-
-Largefile in the working copy, keeping the normal version:
-
- $ hg update -q -C -r 1
- $ echo "n" | hg merge --config ui.interactive=Yes
- foo has been turned into a normal file
- keep as (l)argefile or use (n)ormal file? 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- getting changed largefiles
- 0 largefiles updated, 0 removed
-
- $ hg status
- M foo
-
- $ hg diff --nodates
- diff -r ff521236428a .hglf/foo
- --- a/.hglf/foo
- +++ /dev/null
- @@ -1,1 +0,0 @@
- -7f7097b041ccf68cc5561e9600da4655d21c6d18
- diff -r ff521236428a foo
- --- /dev/null
- +++ b/foo
- @@ -0,0 +1,1 @@
- +normal
-
- $ cat foo
- normal
-
-Largefile in the working copy, keeping the largefile version:
-
- $ hg update -q -C -r 1
- $ echo "l" | hg merge --config ui.interactive=Yes
- foo has been turned into a normal file
- keep as (l)argefile or use (n)ormal file? 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- getting changed largefiles
- 1 largefiles updated, 0 removed
-
- $ hg status
-
- $ cat foo
- large
-
- $ cd ..
diff --git a/tests/test-issue522.t b/tests/test-issue522.t
index a21f23b..a81cf95 100644
--- a/tests/test-issue522.t
+++ b/tests/test-issue522.t
@@ -29,8 +29,8 @@ revision.
unmatched files in local:
bar
resolving manifests
- overwrite: False, partial: False
- ancestor: bbd179dfa0a7, local: 71766447bdbb+, remote: 4d9e78aaceee
+ overwrite None partial False
+ ancestor bbd179dfa0a7 local 71766447bdbb+ remote 4d9e78aaceee
foo: remote is newer -> g
updating: foo 1/1 files (100.00%)
getting foo
@@ -49,8 +49,8 @@ revision.
c6fc755d7e68f49f880599da29f15add41f42f5a 644 foo
$ hg debugindex foo
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 5 ..... 0 2ed2a3912a0b 000000000000 000000000000 (re)
- 1 5 9 ..... 1 6f4310b00b9a 2ed2a3912a0b 000000000000 (re)
- 2 14 5 ..... 2 c6fc755d7e68 6f4310b00b9a 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
+ 1 5 9 1 1 6f4310b00b9a 2ed2a3912a0b 000000000000
+ 2 14 5 2 2 c6fc755d7e68 6f4310b00b9a 000000000000
diff --git a/tests/test-issue612.t b/tests/test-issue612.t
index 2985abb..67df561 100644
--- a/tests/test-issue612.t
+++ b/tests/test-issue612.t
@@ -7,7 +7,7 @@ http://mercurial.selenic.com/bts/issue612
adding src/a.c
$ hg mv src source
- moving src/a.c to source/a.c (glob)
+ moving src/a.c to source/a.c
$ hg ci -Ammove
@@ -24,11 +24,11 @@ http://mercurial.selenic.com/bts/issue612
$ hg merge
merging src/a.c and source/a.c to source/a.c
- 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+ 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg status
M source/a.c
R src/a.c
- ? src/a.o
+ ? source/a.o
diff --git a/tests/test-issue619.t b/tests/test-issue619.t
index e53e4df..70c2a72 100644
--- a/tests/test-issue619.t
+++ b/tests/test-issue619.t
@@ -8,7 +8,6 @@ http://mercurial.selenic.com/bts/issue619
$ echo b > b
$ hg branch b
marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Amb
adding b
diff --git a/tests/test-issue660.t b/tests/test-issue660.t
index 850eb3f..516a81d 100644
--- a/tests/test-issue660.t
+++ b/tests/test-issue660.t
@@ -67,9 +67,9 @@ Revert all - should succeed:
$ hg revert --all
undeleting a
- forgetting a/a (glob)
+ forgetting a/a
forgetting b
- undeleting b/b (glob)
+ undeleting b/b
$ hg st
diff --git a/tests/test-issue672.t b/tests/test-issue672.t
index a6e4fcb..c2041d7 100644
--- a/tests/test-issue672.t
+++ b/tests/test-issue672.t
@@ -28,12 +28,12 @@ http://mercurial.selenic.com/bts/issue672
searching for copies back to rev 1
unmatched files in other:
1a
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
1a -> 1
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 81f4b099af3d, local: c64f439569a9+, remote: c12dcd37c90a
+ overwrite None partial False
+ ancestor 81f4b099af3d local c64f439569a9+ remote c12dcd37c90a
1: other deleted -> r
1a: remote created -> g
updating: 1 1/2 files (50.00%)
@@ -59,12 +59,12 @@ http://mercurial.selenic.com/bts/issue672
searching for copies back to rev 1
unmatched files in local:
1a
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
1a -> 1 *
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: c64f439569a9, local: e327dca35ac8+, remote: 746e9549ea96
+ overwrite None partial False
+ ancestor c64f439569a9 local e327dca35ac8+ remote 746e9549ea96
1a: local copied/moved to 1 -> m
preserving 1a for resolve of 1a
updating: 1a 1/1 files (100.00%)
@@ -82,12 +82,12 @@ http://mercurial.selenic.com/bts/issue672
searching for copies back to rev 1
unmatched files in other:
1a
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
1a -> 1 *
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: c64f439569a9, local: 746e9549ea96+, remote: e327dca35ac8
+ overwrite None partial False
+ ancestor c64f439569a9 local 746e9549ea96+ remote e327dca35ac8
1: remote moved to 1a -> m
preserving 1 for resolve of 1a
removing 1
diff --git a/tests/test-issue842.t b/tests/test-issue842.t
index 6cf9b9d..bf64e61 100644
--- a/tests/test-issue842.t
+++ b/tests/test-issue842.t
@@ -31,7 +31,6 @@ Should not issue new head warning:
$ echo crap > a
$ hg branch testing
marked working directory as branch testing
- (branches are permanent and global, did you want a bookmark?)
Should not issue warning:
diff --git a/tests/test-journal-exists.t b/tests/test-journal-exists.t
index 4cc908f..5867ee0 100644
--- a/tests/test-journal-exists.t
+++ b/tests/test-journal-exists.t
@@ -22,7 +22,6 @@
Check that zero-size journals are correctly aborted:
-#if unix-permissions
$ hg bundle -qa repo.hg
$ chmod -w foo/.hg/store/00changelog.i
@@ -32,5 +31,4 @@ Check that zero-size journals are correctly aborted:
[255]
$ if test -f foo/.hg/store/journal; then echo 'journal exists :-('; fi
-#endif
diff --git a/tests/test-keyword.t b/tests/test-keyword.t
index 56fb4ba..7da72f0 100644
--- a/tests/test-keyword.t
+++ b/tests/test-keyword.t
@@ -9,9 +9,6 @@
> interactive = true
> EOF
-hide outer repo
- $ hg init
-
Run kwdemo before [keyword] files are set up
as it would succeed without uisetup otherwise
@@ -163,31 +160,13 @@ hg cat files and symlink, no expansion
ignore $Id$
a
+Test hook execution
+
$ diff a hooktest
$ cp $HGRCPATH.nohooks $HGRCPATH
$ rm hooktest
-hg status of kw-ignored binary file starting with '\1\n'
-
- >>> open("i", "wb").write("\1\nfoo")
- $ hg -q commit -Am metasep i
- $ hg status
- >>> open("i", "wb").write("\1\nbar")
- $ hg status
- M i
- $ hg -q commit -m "modify metasep" i
- $ hg status --rev 2:3
- M i
- $ touch empty
- $ hg -q commit -A -m "another file"
- $ hg status -A --rev 3:4 i
- C i
-
- $ hg -q strip -n 2
-
-Test hook execution
-
bundle
$ hg bundle --base null ../kw.hg
@@ -229,7 +208,7 @@ Pull from bundle and trigger notify
Message-Id: <hg.a2392c293916*> (glob)
To: Test
- changeset a2392c293916 in $TESTTMP/Test (glob)
+ changeset a2392c293916 in $TESTTMP/Test
details: $TESTTMP/Test?cmd=changeset;node=a2392c293916
description:
addsym
@@ -252,7 +231,7 @@ Pull from bundle and trigger notify
Message-Id: <hg.ef63ca68695b*> (glob)
To: Test
- changeset ef63ca68695b in $TESTTMP/Test (glob)
+ changeset ef63ca68695b in $TESTTMP/Test
details: $TESTTMP/Test?cmd=changeset;node=ef63ca68695b
description:
absym
@@ -295,20 +274,16 @@ Check whether expansion is filewise and file mode is preserved
$ echo '$Id$' > c
$ echo 'tests for different changenodes' >> c
-#if unix-permissions
$ chmod 600 c
$ ls -l c | cut -b 1-10
-rw-------
-#endif
commit file c
$ hg commit -A -mcndiff -d '1 0' -u 'User Name <user@example.com>'
adding c
-#if unix-permissions
$ ls -l c | cut -b 1-10
-rw-------
-#endif
force expansion
@@ -332,32 +307,30 @@ record
record chunk
- >>> lines = open('a', 'rb').readlines()
- >>> lines.insert(1, 'foo\n')
- >>> lines.append('bar\n')
- >>> open('a', 'wb').writelines(lines)
- $ hg record -d '10 1' -m rectest a<<EOF
+ $ python -c \
+ > 'l=open("a").readlines();l.insert(1,"foo\n");l.append("bar\n");open("a","w").writelines(l);'
+ $ hg record -d '1 10' -m rectest a<<EOF
> y
> y
> n
> EOF
diff --git a/a b/a
2 hunks, 2 lines changed
- examine changes to 'a'? [Ynesfdaq?]
+ examine changes to 'a'? [Ynsfdaq?]
@@ -1,3 +1,4 @@
expand $Id$
+foo
do not process $Id:
xxx $
- record change 1/2 to 'a'? [Ynesfdaq?]
+ record change 1/2 to 'a'? [Ynsfdaq?]
@@ -2,2 +3,3 @@
do not process $Id:
xxx $
+bar
- record change 2/2 to 'a'? [Ynesfdaq?]
+ record change 2/2 to 'a'? [Ynsfdaq?]
$ hg identify
- 5f5eb23505c3+ tip
+ d17e03c92c97+ tip
$ hg status
M a
A r
@@ -365,7 +338,7 @@ record chunk
Cat modified file a
$ cat a
- expand $Id: a,v 5f5eb23505c3 1970/01/01 00:00:10 test $
+ expand $Id: a,v d17e03c92c97 1970/01/01 00:00:01 test $
foo
do not process $Id:
xxx $
@@ -374,8 +347,8 @@ Cat modified file a
Diff remaining chunk
$ hg diff a
- diff -r 5f5eb23505c3 a
- --- a/a Thu Jan 01 00:00:09 1970 -0000
+ diff -r d17e03c92c97 a
+ --- a/a Wed Dec 31 23:59:51 1969 -0000
+++ b/a * (glob)
@@ -2,3 +2,4 @@
foo
@@ -393,25 +366,25 @@ Record all chunks in file a
- do not use "hg record -m" here!
- $ hg record -l msg -d '11 1' a<<EOF
+ $ hg record -l msg -d '1 11' a<<EOF
> y
> y
> y
> EOF
diff --git a/a b/a
2 hunks, 2 lines changed
- examine changes to 'a'? [Ynesfdaq?]
+ examine changes to 'a'? [Ynsfdaq?]
@@ -1,3 +1,4 @@
expand $Id$
+foo
do not process $Id:
xxx $
- record change 1/2 to 'a'? [Ynesfdaq?]
+ record change 1/2 to 'a'? [Ynsfdaq?]
@@ -2,2 +3,3 @@
do not process $Id:
xxx $
+bar
- record change 2/2 to 'a'? [Ynesfdaq?]
+ record change 2/2 to 'a'? [Ynsfdaq?]
File a should be clean
@@ -421,7 +394,7 @@ File a should be clean
rollback and revert expansion
$ cat a
- expand $Id: a,v 78e0a02d76aa 1970/01/01 00:00:11 test $
+ expand $Id: a,v 59f969a3b52c 1970/01/01 00:00:01 test $
foo
do not process $Id:
xxx $
@@ -462,14 +435,14 @@ Only z should be overwritten
record added file alone
- $ hg -v record -l msg -d '12 2' r<<EOF
+ $ hg -v record -l msg -d '1 12' r<<EOF
> y
> EOF
diff --git a/r b/r
new file mode 100644
- examine changes to 'r'? [Ynesfdaq?]
+ examine changes to 'r'? [Ynsfdaq?]
r
- committed changeset 3:82a2f715724d
+ committed changeset 3:899491280810
overwriting r expanding keywords
- status call required for dirstate.normallookup() check
$ hg status r
@@ -486,35 +459,20 @@ record added keyword ignored file
$ echo '$Id$' > i
$ hg add i
- $ hg --verbose record -d '13 1' -m recignored<<EOF
+ $ hg --verbose record -d '1 13' -m recignored<<EOF
> y
> EOF
diff --git a/i b/i
new file mode 100644
- examine changes to 'i'? [Ynesfdaq?]
+ examine changes to 'i'? [Ynsfdaq?]
i
- committed changeset 3:9f40ceb5a072
+ committed changeset 3:5f40fe93bbdc
$ cat i
$Id$
$ hg -q rollback
$ hg forget i
$ rm i
-amend
-
- $ echo amend >> a
- $ echo amend >> b
- $ hg -q commit -d '14 1' -m 'prepare amend'
-
- $ hg --debug commit --amend -d '15 1' -m 'amend without changes' | grep keywords
- overwriting a expanding keywords
- $ hg -q id
- 577e60613a88
- $ head -1 a
- expand $Id: a,v 577e60613a88 1970/01/01 00:00:15 test $
-
- $ hg -q strip -n tip
-
Test patch queue repo
$ hg init --mq
@@ -578,7 +536,6 @@ Commit and show expansion in original and copy
$ hg --debug commit -ma2c -d '1 0' -u 'User Name <user@example.com>'
c
c: copy a:0045e12f6c5791aac80ca6cbfd97709a88307292
- removing unknown node 40a904bbbe4c from 1-phase boundary
overwriting c expanding keywords
committed changeset 2:25736cf2f5cbe41f6be4e6784ef6ecf9f3bbcc7d
$ cat a c
@@ -614,7 +571,6 @@ Copy ignored file to ignored file: no overwriting
cp symlink file; hg cp -A symlink file (part1)
- copied symlink points to kwfile: overwrite
-#if symlink
$ cp sym i
$ ls -l i
-rw-r--r--* (glob)
@@ -627,7 +583,6 @@ cp symlink file; hg cp -A symlink file (part1)
expand $Id$
$ hg forget i
$ rm i
-#endif
Test different options of hg kwfiles
@@ -664,8 +619,6 @@ Status after rollback:
$ hg update --clean
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-#if symlink
-
cp symlink file; hg cp -A symlink file (part2)
- copied symlink points to kw ignored file: do not overwrite
@@ -687,8 +640,6 @@ cp symlink file; hg cp -A symlink file (part2)
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm i symignored
-#endif
-
Custom keywordmaps as argument to kwdemo
$ hg --quiet kwdemo "Xinfo = {author}: {desc}"
@@ -749,7 +700,6 @@ Commit with multiline message and custom expansion
$ hg --debug commit -l log -d '2 0' -u 'User Name <user@example.com>'
a
- removing unknown node 40a904bbbe4c from 1-phase boundary
overwriting a expanding keywords
committed changeset 2:bb948857c743469b22bbf51f7ec8112279ca5d83
$ rm log
@@ -847,7 +797,7 @@ Clone to test incoming
> default = ../Test
> EOF
$ hg incoming
- comparing with $TESTTMP/Test (glob)
+ comparing with $TESTTMP/Test
searching for changes
changeset: 2:bb948857c743
tag: tip
@@ -857,9 +807,8 @@ Clone to test incoming
Imported patch should not be rejected
- >>> import re
- >>> text = re.sub(r'(Id.*)', r'\1 rejecttest', open('a').read())
- >>> open('a', 'wb').write(text)
+ $ python -c \
+ > 'import re; s=re.sub("(Id.*)","\\1 rejecttest",open("a").read()); open("a","wb").write(s);'
$ hg --debug commit -m'rejects?' -d '3 0' -u 'User Name <user@example.com>'
a
overwriting a expanding keywords
@@ -876,7 +825,7 @@ Imported patch should not be rejected
ignore $Id$
$ hg rollback
- repository tip rolled back to revision 2 (undo import)
+ 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
@@ -928,7 +877,6 @@ kwexpand nonexistent
nonexistent:* (glob)
-#if serve
hg serve
- expand with hgweb file
- no expansion with hgweb annotate/changeset/filediff
@@ -936,14 +884,14 @@ hg serve
$ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/a/?style=raw'
+ $ $TESTDIR/get-with-headers.py localhost:$HGPORT '/file/tip/a/?style=raw'
200 Script output follows
expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
do not process $Id:
xxx $
$Xinfo: User Name <user@example.com>: firstline $
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'annotate/tip/a/?style=raw'
+ $ $TESTDIR/get-with-headers.py localhost:$HGPORT '/annotate/tip/a/?style=raw'
200 Script output follows
@@ -955,7 +903,7 @@ hg serve
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rev/tip/?style=raw'
+ $ $TESTDIR/get-with-headers.py localhost:$HGPORT '/rev/tip/?style=raw'
200 Script output follows
@@ -975,7 +923,7 @@ hg serve
+xxx $
+$Xinfo$
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/bb948857c743/a?style=raw'
+ $ $TESTDIR/get-with-headers.py localhost:$HGPORT '/diff/bb948857c743/a?style=raw'
200 Script output follows
@@ -992,7 +940,6 @@ hg serve
$ cat errors.log
-#endif
Prepare merge and resolve tests
@@ -1027,7 +974,7 @@ conflict: keyword should stay outside conflict zone
$ hg merge
merging m
warning: conflicts during merge.
- merging m incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging m failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
@@ -1053,7 +1000,6 @@ Test restricted mode with transplant -b
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch foo
marked working directory as branch foo
- (branches are permanent and global, did you want a bookmark?)
$ mv a a.bak
$ echo foobranch > a
$ cat a.bak >> a
@@ -1135,5 +1081,3 @@ Now disable keyword expansion
$Xinfo$
ignore $Id$
a
-
- $ cd ..
diff --git a/tests/test-known.t b/tests/test-known.t
index 3c19ebe..5706fd7 100644
--- a/tests/test-known.t
+++ b/tests/test-known.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
= Test the known() protocol function =
diff --git a/tests/test-largefiles-cache.t b/tests/test-largefiles-cache.t
deleted file mode 100644
index ae6631c..0000000
--- a/tests/test-largefiles-cache.t
+++ /dev/null
@@ -1,125 +0,0 @@
-Create user cache directory
-
- $ USERCACHE=`pwd`/cache; export USERCACHE
- $ cat <<EOF >> ${HGRCPATH}
- > [extensions]
- > hgext.largefiles=
- > [largefiles]
- > usercache=${USERCACHE}
- > EOF
- $ mkdir -p ${USERCACHE}
-
-Create source repo, and commit adding largefile.
-
- $ hg init src
- $ cd src
- $ echo large > large
- $ hg add --large large
- $ hg commit -m 'add largefile'
- $ cd ..
-
-Discard all cached largefiles in USERCACHE
-
- $ rm -rf ${USERCACHE}
-
-Create mirror repo, and pull from source without largefile:
-"pull" is used instead of "clone" for suppression of (1) updating to
-tip (= cahcing largefile from source repo), and (2) recording source
-repo as "default" path in .hg/hgrc.
-
- $ hg init mirror
- $ cd mirror
- $ hg pull ../src
- pulling from ../src
- requesting all 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)
- caching new largefiles
- 0 largefiles cached
-
-Update working directory to "tip", which requires largefile("large"),
-but there is no cache file for it. So, hg must treat it as
-"missing"(!) file.
-
- $ hg update
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- large: can't get file locally
- (no default or default-push path set in hgrc)
- 0 largefiles updated, 0 removed
- $ hg status
- ! large
-
-Update working directory to null: this cleanup .hg/largefiles/dirstate
-
- $ hg update null
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- getting changed largefiles
- 0 largefiles updated, 0 removed
-
-Update working directory to tip, again.
-
- $ hg update
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- large: can't get file locally
- (no default or default-push path set in hgrc)
- 0 largefiles updated, 0 removed
- $ hg status
- ! large
- $ cd ..
-
-#if unix-permissions
-
-Portable way to print file permissions:
-
- $ cat > ls-l.py <<EOF
- > #!/usr/bin/env python
- > import sys, os
- > path = sys.argv[1]
- > print '%03o' % (os.lstat(path).st_mode & 0777)
- > EOF
- $ chmod +x ls-l.py
-
-Test that files in .hg/largefiles inherit mode from .hg/store, not
-from file in working copy:
-
- $ cd src
- $ chmod 750 .hg/store
- $ chmod 660 large
- $ echo change >> large
- $ hg commit -m change
- $ ../ls-l.py .hg/largefiles/e151b474069de4ca6898f67ce2f2a7263adf8fea
- 640
-
-Test permission of with files in .hg/largefiles created by update:
-
- $ cd ../mirror
- $ rm -r "$USERCACHE" .hg/largefiles # avoid links
- $ chmod 750 .hg/store
- $ hg pull ../src --update -q
- $ ../ls-l.py .hg/largefiles/e151b474069de4ca6898f67ce2f2a7263adf8fea
- 640
-
-Test permission of files created by push:
-
- $ hg serve -R ../src -d -p $HGPORT --pid-file hg.pid \
- > --config "web.allow_push=*" --config web.push_ssl=no
- $ cat hg.pid >> $DAEMON_PIDS
-
- $ echo change >> large
- $ hg commit -m change
-
- $ rm -r "$USERCACHE"
-
- $ hg push -q http://localhost:$HGPORT/
-
- $ ../ls-l.py ../src/.hg/largefiles/b734e14a0971e370408ab9bce8d56d8485e368a9
- 640
-
- $ cd ..
-
-#endif
diff --git a/tests/test-largefiles-small-disk.t b/tests/test-largefiles-small-disk.t
deleted file mode 100644
index feb11e3..0000000
--- a/tests/test-largefiles-small-disk.t
+++ /dev/null
@@ -1,67 +0,0 @@
-Test how largefiles abort in case the disk runs full
-
- $ cat > criple.py <<EOF
- > import os, errno, shutil
- > from mercurial import util
- > #
- > # this makes the original largefiles code abort:
- > def copyfileobj(fsrc, fdst, length=16*1024):
- > fdst.write(fsrc.read(4))
- > raise IOError(errno.ENOSPC, os.strerror(errno.ENOSPC))
- > shutil.copyfileobj = copyfileobj
- > #
- > # this makes the rewritten code abort:
- > def filechunkiter(f, size=65536, limit=None):
- > yield f.read(4)
- > raise IOError(errno.ENOSPC, os.strerror(errno.ENOSPC))
- > util.filechunkiter = filechunkiter
- > #
- > def oslink(src, dest):
- > raise OSError("no hardlinks, try copying instead")
- > util.oslink = oslink
- > EOF
-
- $ echo "[extensions]" >> $HGRCPATH
- $ echo "largefiles =" >> $HGRCPATH
-
- $ hg init alice
- $ cd alice
- $ echo "this is a very big file" > big
- $ hg add --large big
- $ hg commit --config extensions.criple=$TESTTMP/criple.py -m big
- abort: No space left on device
- [255]
-
-The largefile is not created in .hg/largefiles:
-
- $ ls .hg/largefiles
- dirstate
-
-The user cache is not even created:
-
- >>> import os; os.path.exists("$HOME/.cache/largefiles/")
- False
-
-Make the commit with space on the device:
-
- $ hg commit -m big
-
-Now make a clone with a full disk, and make sure lfutil.link function
-makes copies instead of hardlinks:
-
- $ cd ..
- $ hg --config extensions.criple=$TESTTMP/criple.py clone --pull alice bob
- requesting all changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- updating to branch default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- abort: No space left on device
- [255]
-
-The largefile is not created in .hg/largefiles:
-
- $ ls bob/.hg/largefiles
diff --git a/tests/test-largefiles.t b/tests/test-largefiles.t
deleted file mode 100644
index c64dd73..0000000
--- a/tests/test-largefiles.t
+++ /dev/null
@@ -1,1447 +0,0 @@
- $ USERCACHE="$TESTTMP/cache"; export USERCACHE
- $ mkdir "${USERCACHE}"
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > largefiles=
- > purge=
- > rebase=
- > transplant=
- > [phases]
- > publish=False
- > [largefiles]
- > minsize=2
- > patterns=glob:**.dat
- > usercache=${USERCACHE}
- > [hooks]
- > precommit=sh -c "echo \"Invoking status precommit hook\"; hg status"
- > EOF
-
-Create the repo with a couple of revisions of both large and normal
-files, testing that status correctly shows largefiles and that summary output
-is correct.
-
- $ hg init a
- $ cd a
- $ mkdir sub
- $ echo normal1 > normal1
- $ echo normal2 > sub/normal2
- $ echo large1 > large1
- $ echo large2 > sub/large2
- $ hg add normal1 sub/normal2
- $ hg add --large large1 sub/large2
- $ hg commit -m "add files"
- Invoking status precommit hook
- A large1
- A normal1
- A sub/large2
- A sub/normal2
- $ echo normal11 > normal1
- $ echo normal22 > sub/normal2
- $ echo large11 > large1
- $ echo large22 > sub/large2
- $ hg commit -m "edit files"
- Invoking status precommit hook
- M large1
- M normal1
- M sub/large2
- M sub/normal2
- $ hg sum --large
- parent: 1:ce8896473775 tip
- edit files
- branch: default
- commit: (clean)
- update: (current)
- largefiles: No remote repo
-
-Commit preserved largefile contents.
-
- $ cat normal1
- normal11
- $ cat large1
- large11
- $ cat sub/normal2
- normal22
- $ cat sub/large2
- large22
-
-Test status, subdir and unknown files
-
- $ echo unknown > sub/unknown
- $ hg st --all
- ? sub/unknown
- C large1
- C normal1
- C sub/large2
- C sub/normal2
- $ hg st --all sub
- ? sub/unknown
- C sub/large2
- C sub/normal2
- $ rm sub/unknown
-
-Remove both largefiles and normal files.
-
- $ hg remove normal1 large1
- $ hg status large1
- R large1
- $ hg commit -m "remove files"
- Invoking status precommit hook
- R large1
- R normal1
- $ ls
- sub
- $ echo "testlargefile" > large1-test
- $ hg add --large large1-test
- $ hg st
- A large1-test
- $ hg rm large1-test
- not removing large1-test: file has been marked for add (use forget to undo)
- $ hg st
- A large1-test
- $ hg forget large1-test
- $ hg st
- ? large1-test
- $ rm large1-test
-
-Copy both largefiles and normal files (testing that status output is correct).
-
- $ hg cp sub/normal2 normal1
- $ hg cp sub/large2 large1
- $ hg commit -m "copy files"
- Invoking status precommit hook
- A large1
- A normal1
- $ cat normal1
- normal22
- $ cat large1
- large22
-
-Test moving largefiles and verify that normal files are also unaffected.
-
- $ hg mv normal1 normal3
- $ hg mv large1 large3
- $ hg mv sub/normal2 sub/normal4
- $ hg mv sub/large2 sub/large4
- $ hg commit -m "move files"
- Invoking status precommit hook
- A large3
- A normal3
- A sub/large4
- A sub/normal4
- R large1
- R normal1
- R sub/large2
- R sub/normal2
- $ cat normal3
- normal22
- $ cat large3
- large22
- $ cat sub/normal4
- normal22
- $ cat sub/large4
- large22
-
-Test copies and moves from a directory other than root (issue3516)
-
- $ cd ..
- $ hg init lf_cpmv
- $ cd lf_cpmv
- $ mkdir dira
- $ mkdir dira/dirb
- $ touch dira/dirb/largefile
- $ hg add --large dira/dirb/largefile
- $ hg commit -m "added"
- Invoking status precommit hook
- A dira/dirb/largefile
- $ cd dira
- $ hg cp dirb/largefile foo/largefile
- $ hg ci -m "deep copy"
- Invoking status precommit hook
- A dira/foo/largefile
- $ find . | sort
- .
- ./dirb
- ./dirb/largefile
- ./foo
- ./foo/largefile
- $ hg mv foo/largefile baz/largefile
- $ hg ci -m "moved"
- Invoking status precommit hook
- A dira/baz/largefile
- R dira/foo/largefile
- $ find . | sort
- .
- ./baz
- ./baz/largefile
- ./dirb
- ./dirb/largefile
- ./foo
- $ cd ../../a
-
-#if hgweb
-Test display of largefiles in hgweb
-
- $ hg serve -d -p $HGPORT --pid-file ../hg.pid
- $ cat ../hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/tip/?style=raw'
- 200 Script output follows
-
-
- drwxr-xr-x sub
- -rw-r--r-- 41 large3
- -rw-r--r-- 9 normal3
-
-
- $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/tip/sub/?style=raw'
- 200 Script output follows
-
-
- -rw-r--r-- 41 large4
- -rw-r--r-- 9 normal4
-
-
- $ "$TESTDIR/killdaemons.py"
-#endif
-
-Test archiving the various revisions. These hit corner cases known with
-archiving.
-
- $ hg archive -r 0 ../archive0
- $ hg archive -r 1 ../archive1
- $ hg archive -r 2 ../archive2
- $ hg archive -r 3 ../archive3
- $ hg archive -r 4 ../archive4
- $ cd ../archive0
- $ cat normal1
- normal1
- $ cat large1
- large1
- $ cat sub/normal2
- normal2
- $ cat sub/large2
- large2
- $ cd ../archive1
- $ cat normal1
- normal11
- $ cat large1
- large11
- $ cat sub/normal2
- normal22
- $ cat sub/large2
- large22
- $ cd ../archive2
- $ ls
- sub
- $ cat sub/normal2
- normal22
- $ cat sub/large2
- large22
- $ cd ../archive3
- $ cat normal1
- normal22
- $ cat large1
- large22
- $ cat sub/normal2
- normal22
- $ cat sub/large2
- large22
- $ cd ../archive4
- $ cat normal3
- normal22
- $ cat large3
- large22
- $ cat sub/normal4
- normal22
- $ cat sub/large4
- large22
-
-Commit corner case: specify files to commit.
-
- $ cd ../a
- $ echo normal3 > normal3
- $ echo large3 > large3
- $ echo normal4 > sub/normal4
- $ echo large4 > sub/large4
- $ hg commit normal3 large3 sub/normal4 sub/large4 -m "edit files again"
- Invoking status precommit hook
- M large3
- M normal3
- M sub/large4
- M sub/normal4
- $ cat normal3
- normal3
- $ cat large3
- large3
- $ cat sub/normal4
- normal4
- $ cat sub/large4
- large4
-
-One more commit corner case: commit from a subdirectory.
-
- $ cd ../a
- $ echo normal33 > normal3
- $ echo large33 > large3
- $ echo normal44 > sub/normal4
- $ echo large44 > sub/large4
- $ cd sub
- $ hg commit -m "edit files yet again"
- Invoking status precommit hook
- M large3
- M normal3
- M sub/large4
- M sub/normal4
- $ cat ../normal3
- normal33
- $ cat ../large3
- large33
- $ cat normal4
- normal44
- $ cat large4
- large44
-
-Committing standins is not allowed.
-
- $ cd ..
- $ echo large3 > large3
- $ hg commit .hglf/large3 -m "try to commit standin"
- abort: file ".hglf/large3" is a largefile standin
- (commit the largefile itself instead)
- [255]
-
-Corner cases for adding largefiles.
-
- $ echo large5 > large5
- $ hg add --large large5
- $ hg add --large large5
- large5 already a largefile
- $ mkdir sub2
- $ echo large6 > sub2/large6
- $ echo large7 > sub2/large7
- $ hg add --large sub2
- adding sub2/large6 as a largefile (glob)
- adding sub2/large7 as a largefile (glob)
- $ hg st
- M large3
- A large5
- A sub2/large6
- A sub2/large7
-
-Test "hg status" with combination of 'file pattern' and 'directory
-pattern' for largefiles:
-
- $ hg status sub2/large6 sub2
- A sub2/large6
- A sub2/large7
-
-Config settings (pattern **.dat, minsize 2 MB) are respected.
-
- $ echo testdata > test.dat
- $ dd bs=1k count=2k if=/dev/zero of=reallylarge > /dev/null 2> /dev/null
- $ hg add
- adding reallylarge as a largefile
- adding test.dat as a largefile
-
-Test that minsize and --lfsize handle float values;
-also tests that --lfsize overrides largefiles.minsize.
-(0.250 MB = 256 kB = 262144 B)
-
- $ dd if=/dev/zero of=ratherlarge bs=1024 count=256 > /dev/null 2> /dev/null
- $ dd if=/dev/zero of=medium bs=1024 count=128 > /dev/null 2> /dev/null
- $ hg --config largefiles.minsize=.25 add
- adding ratherlarge as a largefile
- adding medium
- $ hg forget medium
- $ hg --config largefiles.minsize=.25 add --lfsize=.125
- adding medium as a largefile
- $ dd if=/dev/zero of=notlarge bs=1024 count=127 > /dev/null 2> /dev/null
- $ hg --config largefiles.minsize=.25 add --lfsize=.125
- adding notlarge
- $ hg forget notlarge
-
-Test forget on largefiles.
-
- $ hg forget large3 large5 test.dat reallylarge ratherlarge medium
- $ hg commit -m "add/edit more largefiles"
- Invoking status precommit hook
- A sub2/large6
- A sub2/large7
- R large3
- ? large5
- ? medium
- ? notlarge
- ? ratherlarge
- ? reallylarge
- ? test.dat
- $ hg st
- ? large3
- ? large5
- ? medium
- ? notlarge
- ? ratherlarge
- ? reallylarge
- ? test.dat
-
-Purge with largefiles: verify that largefiles are still in the working
-dir after a purge.
-
- $ hg purge --all
- $ cat sub/large4
- large44
- $ cat sub2/large6
- large6
- $ cat sub2/large7
- large7
-
-Test addremove: verify that files that should be added as largfiles are added as
-such and that already-existing largfiles are not added as normal files by
-accident.
-
- $ rm normal3
- $ rm sub/large4
- $ echo "testing addremove with patterns" > testaddremove.dat
- $ echo "normaladdremove" > normaladdremove
- $ hg addremove
- removing sub/large4
- adding testaddremove.dat as a largefile
- removing normal3
- adding normaladdremove
-
-Test addremove with -R
-
- $ hg up -C
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 1 largefiles updated, 0 removed
- $ rm normal3
- $ rm sub/large4
- $ echo "testing addremove with patterns" > testaddremove.dat
- $ echo "normaladdremove" > normaladdremove
- $ cd ..
- $ hg -R a addremove
- removing sub/large4
- adding a/testaddremove.dat as a largefile (glob)
- removing normal3
- adding normaladdremove
- $ cd a
-
-Test 3364
- $ hg clone . ../addrm
- updating to branch default
- 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 3 largefiles updated, 0 removed
- $ cd ../addrm
- $ cat >> .hg/hgrc <<EOF
- > [hooks]
- > post-commit.stat=sh -c "echo \"Invoking status postcommit hook\"; hg status -A"
- > EOF
- $ touch foo
- $ hg add --large foo
- $ hg ci -m "add foo"
- Invoking status precommit hook
- A foo
- Invoking status postcommit hook
- C foo
- C normal3
- C sub/large4
- C sub/normal4
- C sub2/large6
- C sub2/large7
- $ rm foo
- $ hg st
- ! foo
-hmm.. no precommit invoked, but there is a postcommit??
- $ hg ci -m "will not checkin"
- nothing changed
- Invoking status postcommit hook
- ! foo
- C normal3
- C sub/large4
- C sub/normal4
- C sub2/large6
- C sub2/large7
- [1]
- $ hg addremove
- removing foo
- $ hg st
- R foo
- $ hg ci -m "used to say nothing changed"
- Invoking status precommit hook
- R foo
- Invoking status postcommit hook
- C normal3
- C sub/large4
- C sub/normal4
- C sub2/large6
- C sub2/large7
- $ hg st
-
-Test 3507 (both normal files and largefiles were a problem)
-
- $ touch normal
- $ touch large
- $ hg add normal
- $ hg add --large large
- $ hg ci -m "added"
- Invoking status precommit hook
- A large
- A normal
- Invoking status postcommit hook
- C large
- C normal
- C normal3
- C sub/large4
- C sub/normal4
- C sub2/large6
- C sub2/large7
- $ hg remove normal
- $ hg addremove --traceback
- $ hg ci -m "addremoved normal"
- Invoking status precommit hook
- R normal
- Invoking status postcommit hook
- C large
- C normal3
- C sub/large4
- C sub/normal4
- C sub2/large6
- C sub2/large7
- $ hg up -C '.^'
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 0 largefiles updated, 0 removed
- $ hg remove large
- $ hg addremove --traceback
- $ hg ci -m "removed large"
- Invoking status precommit hook
- R large
- created new head
- Invoking status postcommit hook
- C normal
- C normal3
- C sub/large4
- C sub/normal4
- C sub2/large6
- C sub2/large7
-
-Test that a standin can't be added as a large file
-
- $ touch large
- $ hg add --large large
- $ hg ci -m "add"
- Invoking status precommit hook
- A large
- Invoking status postcommit hook
- C large
- C normal
- C normal3
- C sub/large4
- C sub/normal4
- C sub2/large6
- C sub2/large7
- $ hg remove large
- $ touch large
- $ hg addremove --config largefiles.patterns=**large --traceback
- adding large as a largefile
-
-Test that outgoing --large works (with revsets too)
- $ hg outgoing --rev '.^' --large
- comparing with $TESTTMP/a (glob)
- searching for changes
- changeset: 8:c02fd3b77ec4
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add foo
-
- changeset: 9:289dd08c9bbb
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: used to say nothing changed
-
- changeset: 10:34f23ac6ac12
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: added
-
- changeset: 12:710c1b2f523c
- parent: 10:34f23ac6ac12
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: removed large
-
- searching for changes
- largefiles to upload:
- large
- foo
-
- $ cd ../a
-
-Clone a largefiles repo.
-
- $ hg clone . ../b
- updating to branch default
- 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 3 largefiles updated, 0 removed
- $ cd ../b
- $ hg log --template '{rev}:{node|short} {desc|firstline}\n'
- 7:daea875e9014 add/edit more largefiles
- 6:4355d653f84f edit files yet again
- 5:9d5af5072dbd edit files again
- 4:74c02385b94c move files
- 3:9e8fbc4bce62 copy files
- 2:51a0ae4d5864 remove files
- 1:ce8896473775 edit files
- 0:30d30fe6a5be add files
- $ cat normal3
- normal33
- $ cat sub/normal4
- normal44
- $ cat sub/large4
- large44
- $ cat sub2/large6
- large6
- $ cat sub2/large7
- large7
- $ cd ..
- $ hg clone a -r 3 c
- adding changesets
- adding manifests
- adding file changes
- added 4 changesets with 10 changes to 4 files
- updating to branch default
- 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 2 largefiles updated, 0 removed
- $ cd c
- $ hg log --template '{rev}:{node|short} {desc|firstline}\n'
- 3:9e8fbc4bce62 copy files
- 2:51a0ae4d5864 remove files
- 1:ce8896473775 edit files
- 0:30d30fe6a5be add files
- $ cat normal1
- normal22
- $ cat large1
- large22
- $ cat sub/normal2
- normal22
- $ cat sub/large2
- large22
-
-Old revisions of a clone have correct largefiles content (this also
-tests update).
-
- $ hg update -r 1
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 1 largefiles updated, 0 removed
- $ cat large1
- large11
- $ cat sub/large2
- large22
- $ cd ..
-
-Test cloning with --all-largefiles flag
-
- $ rm "${USERCACHE}"/*
- $ hg clone --all-largefiles a a-backup
- updating to branch default
- 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 3 largefiles updated, 0 removed
- 8 additional largefiles cached
-
- $ hg clone --all-largefiles a ssh://localhost/a
- abort: --all-largefiles is incompatible with non-local destination ssh://localhost/a
- [255]
-
-Test pulling with --all-largefiles flag
-
- $ rm -Rf a-backup
- $ hg clone -r 1 a a-backup
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 8 changes to 4 files
- updating to branch default
- 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 2 largefiles updated, 0 removed
- $ rm "${USERCACHE}"/*
- $ cd a-backup
- $ hg pull --all-largefiles
- pulling from $TESTTMP/a (glob)
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 6 changesets with 16 changes to 8 files
- (run 'hg update' to get a working copy)
- caching new largefiles
- 3 largefiles cached
- 3 additional largefiles cached
- $ cd ..
-
-Rebasing between two repositories does not revert largefiles to old
-revisions (this was a very bad bug that took a lot of work to fix).
-
- $ hg clone a d
- updating to branch default
- 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 3 largefiles updated, 0 removed
- $ cd b
- $ echo large4-modified > sub/large4
- $ echo normal3-modified > normal3
- $ hg commit -m "modify normal file and largefile in repo b"
- Invoking status precommit hook
- M normal3
- M sub/large4
- $ cd ../d
- $ echo large6-modified > sub2/large6
- $ echo normal4-modified > sub/normal4
- $ hg commit -m "modify normal file largefile in repo d"
- Invoking status precommit hook
- M sub/normal4
- M sub2/large6
- $ cd ..
- $ hg clone d e
- updating to branch default
- 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 3 largefiles updated, 0 removed
- $ cd d
- $ hg pull --rebase ../b
- pulling from ../b
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 2 changes to 2 files (+1 heads)
- Invoking status precommit hook
- M sub/normal4
- M sub2/large6
- saved backup bundle to $TESTTMP/d/.hg/strip-backup/f574fb32bb45-backup.hg (glob)
- nothing to rebase
- $ hg log --template '{rev}:{node|short} {desc|firstline}\n'
- 9:598410d3eb9a modify normal file largefile in repo d
- 8:a381d2c8c80e modify normal file and largefile in repo b
- 7:daea875e9014 add/edit more largefiles
- 6:4355d653f84f edit files yet again
- 5:9d5af5072dbd edit files again
- 4:74c02385b94c move files
- 3:9e8fbc4bce62 copy files
- 2:51a0ae4d5864 remove files
- 1:ce8896473775 edit files
- 0:30d30fe6a5be add files
- $ cat normal3
- normal3-modified
- $ cat sub/normal4
- normal4-modified
- $ cat sub/large4
- large4-modified
- $ cat sub2/large6
- large6-modified
- $ cat sub2/large7
- large7
- $ cd ../e
- $ hg pull ../b
- pulling from ../b
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 2 changes to 2 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
- caching new largefiles
- 0 largefiles cached
- $ hg rebase
- Invoking status precommit hook
- M sub/normal4
- M sub2/large6
- saved backup bundle to $TESTTMP/e/.hg/strip-backup/f574fb32bb45-backup.hg (glob)
- $ hg log --template '{rev}:{node|short} {desc|firstline}\n'
- 9:598410d3eb9a modify normal file largefile in repo d
- 8:a381d2c8c80e modify normal file and largefile in repo b
- 7:daea875e9014 add/edit more largefiles
- 6:4355d653f84f edit files yet again
- 5:9d5af5072dbd edit files again
- 4:74c02385b94c move files
- 3:9e8fbc4bce62 copy files
- 2:51a0ae4d5864 remove files
- 1:ce8896473775 edit files
- 0:30d30fe6a5be add files
- $ cat normal3
- normal3-modified
- $ cat sub/normal4
- normal4-modified
- $ cat sub/large4
- large4-modified
- $ cat sub2/large6
- large6-modified
- $ cat sub2/large7
- large7
-
-Rollback on largefiles.
-
- $ echo large4-modified-again > sub/large4
- $ hg commit -m "Modify large4 again"
- Invoking status precommit hook
- M sub/large4
- $ hg rollback
- repository tip rolled back to revision 9 (undo commit)
- working directory now based on revision 9
- $ hg st
- M sub/large4
- $ hg log --template '{rev}:{node|short} {desc|firstline}\n'
- 9:598410d3eb9a modify normal file largefile in repo d
- 8:a381d2c8c80e modify normal file and largefile in repo b
- 7:daea875e9014 add/edit more largefiles
- 6:4355d653f84f edit files yet again
- 5:9d5af5072dbd edit files again
- 4:74c02385b94c move files
- 3:9e8fbc4bce62 copy files
- 2:51a0ae4d5864 remove files
- 1:ce8896473775 edit files
- 0:30d30fe6a5be add files
- $ cat sub/large4
- large4-modified-again
-
-"update --check" refuses to update with uncommitted changes.
- $ hg update --check 8
- abort: uncommitted local changes
- [255]
-
-"update --clean" leaves correct largefiles in working copy.
-
- $ hg update --clean
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 1 largefiles updated, 0 removed
- $ cat normal3
- normal3-modified
- $ cat sub/normal4
- normal4-modified
- $ cat sub/large4
- large4-modified
- $ cat sub2/large6
- large6-modified
- $ cat sub2/large7
- large7
-
-Now "update check" is happy.
- $ hg update --check 8
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 1 largefiles updated, 0 removed
- $ hg update --check
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 1 largefiles updated, 0 removed
-
-Test removing empty largefiles directories on update
- $ test -d sub2 && echo "sub2 exists"
- sub2 exists
- $ hg update -q null
- $ test -d sub2 && echo "error: sub2 should not exist anymore"
- [1]
- $ hg update -q
-
-Test hg remove removes empty largefiles directories
- $ test -d sub2 && echo "sub2 exists"
- sub2 exists
- $ hg remove sub2/*
- $ test -d sub2 && echo "error: sub2 should not exist anymore"
- [1]
- $ hg revert sub2/large6 sub2/large7
-
-"revert" works on largefiles (and normal files too).
- $ echo hack3 >> normal3
- $ echo hack4 >> sub/normal4
- $ echo hack4 >> sub/large4
- $ rm sub2/large6
- $ hg revert sub2/large6
- $ hg rm sub2/large6
- $ echo new >> sub2/large8
- $ hg add --large sub2/large8
-# XXX we don't really want to report that we're reverting the standin;
-# that's just an implementation detail. But I don't see an obvious fix. ;-(
- $ hg revert sub
- reverting .hglf/sub/large4 (glob)
- reverting sub/normal4 (glob)
- $ hg status
- M normal3
- A sub2/large8
- R sub2/large6
- ? sub/large4.orig
- ? sub/normal4.orig
- $ cat sub/normal4
- normal4-modified
- $ cat sub/large4
- large4-modified
- $ hg revert -a --no-backup
- undeleting .hglf/sub2/large6 (glob)
- forgetting .hglf/sub2/large8 (glob)
- reverting normal3
- $ hg status
- ? sub/large4.orig
- ? sub/normal4.orig
- ? sub2/large8
- $ cat normal3
- normal3-modified
- $ cat sub2/large6
- large6-modified
- $ rm sub/*.orig sub2/large8
-
-revert some files to an older revision
- $ hg revert --no-backup -r 8 sub2
- reverting .hglf/sub2/large6 (glob)
- $ cat sub2/large6
- large6
- $ hg revert --no-backup -C -r '.^' sub2
- reverting .hglf/sub2/large6 (glob)
- $ hg revert --no-backup sub2
- reverting .hglf/sub2/large6 (glob)
- $ hg status
-
-"verify --large" actually verifies largefiles
-
- $ hg verify --large
- checking changesets
- checking manifests
- crosschecking files in changesets and manifests
- checking files
- 10 files, 10 changesets, 28 total revisions
- searching 1 changesets for largefiles
- verified existence of 3 revisions of 3 largefiles
-
-Merging does not revert to old versions of largefiles and also check
-that merging after having pulled from a non-default remote works
-correctly.
-
- $ cd ..
- $ hg clone -r 7 e temp
- adding changesets
- adding manifests
- adding file changes
- added 8 changesets with 24 changes to 10 files
- updating to branch default
- 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 3 largefiles updated, 0 removed
- $ hg clone temp f
- updating to branch default
- 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 3 largefiles updated, 0 removed
-# Delete the largefiles in the largefiles system cache so that we have an
-# opportunity to test that caching after a pull works.
- $ rm "${USERCACHE}"/*
- $ cd f
- $ echo "large4-merge-test" > sub/large4
- $ hg commit -m "Modify large4 to test merge"
- Invoking status precommit hook
- M sub/large4
- $ hg pull ../e
- pulling from ../e
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 4 changes to 4 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
- caching new largefiles
- 2 largefiles cached
- $ hg merge
- merging sub/large4
- largefile sub/large4 has a merge conflict
- keep (l)ocal or take (o)ther? l
- 3 files updated, 1 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- getting changed largefiles
- 1 largefiles updated, 0 removed
- $ hg commit -m "Merge repos e and f"
- Invoking status precommit hook
- M normal3
- M sub/normal4
- M sub2/large6
- $ cat normal3
- normal3-modified
- $ cat sub/normal4
- normal4-modified
- $ cat sub/large4
- large4-merge-test
- $ cat sub2/large6
- large6-modified
- $ cat sub2/large7
- large7
-
-Test status after merging with a branch that introduces a new largefile:
-
- $ echo large > large
- $ hg add --large large
- $ hg commit -m 'add largefile'
- Invoking status precommit hook
- A large
- $ hg update -q ".^"
- $ echo change >> normal3
- $ hg commit -m 'some change'
- Invoking status precommit hook
- M normal3
- created new head
- $ hg merge
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- getting changed largefiles
- 1 largefiles updated, 0 removed
- $ hg status
- M large
-
-Test that a normal file and a largefile with the same name and path cannot
-coexist.
-
- $ rm sub2/large7
- $ echo "largeasnormal" > sub2/large7
- $ hg add sub2/large7
- sub2/large7 already a largefile
-
-Test that transplanting a largefile change works correctly.
-
- $ cd ..
- $ hg clone -r 8 d g
- adding changesets
- adding manifests
- adding file changes
- added 9 changesets with 26 changes to 10 files
- updating to branch default
- 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 3 largefiles updated, 0 removed
- $ cd g
- $ hg transplant -s ../d 598410d3eb9a
- searching for changes
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 2 changes to 2 files
- getting changed largefiles
- 1 largefiles updated, 0 removed
- $ hg log --template '{rev}:{node|short} {desc|firstline}\n'
- 9:598410d3eb9a modify normal file largefile in repo d
- 8:a381d2c8c80e modify normal file and largefile in repo b
- 7:daea875e9014 add/edit more largefiles
- 6:4355d653f84f edit files yet again
- 5:9d5af5072dbd edit files again
- 4:74c02385b94c move files
- 3:9e8fbc4bce62 copy files
- 2:51a0ae4d5864 remove files
- 1:ce8896473775 edit files
- 0:30d30fe6a5be add files
- $ cat normal3
- normal3-modified
- $ cat sub/normal4
- normal4-modified
- $ cat sub/large4
- large4-modified
- $ cat sub2/large6
- large6-modified
- $ cat sub2/large7
- large7
-
-Cat a largefile
- $ hg cat normal3
- normal3-modified
- $ hg cat sub/large4
- large4-modified
- $ rm "${USERCACHE}"/*
- $ hg cat -r a381d2c8c80e -o cat.out sub/large4
- $ cat cat.out
- large4-modified
- $ rm cat.out
- $ hg cat -r a381d2c8c80e normal3
- normal3-modified
- $ hg cat -r '.^' normal3
- normal3-modified
- $ hg cat -r '.^' sub/large4
- large4-modified
-
-Test that renaming a largefile results in correct output for status
-
- $ hg rename sub/large4 large4-renamed
- $ hg commit -m "test rename output"
- Invoking status precommit hook
- A large4-renamed
- R sub/large4
- $ cat large4-renamed
- large4-modified
- $ cd sub2
- $ hg rename large6 large6-renamed
- $ hg st
- A sub2/large6-renamed
- R sub2/large6
- $ cd ..
-
-Test --normal flag
-
- $ dd if=/dev/zero bs=2k count=11k > new-largefile 2> /dev/null
- $ hg add --normal --large new-largefile
- abort: --normal cannot be used with --large
- [255]
- $ hg add --normal new-largefile
- new-largefile: up to 69 MB of RAM may be required to manage this file
- (use 'hg revert new-largefile' to cancel the pending addition)
- $ cd ..
-
-#if serve
-vanilla clients not locked out from largefiles servers on vanilla repos
- $ mkdir r1
- $ cd r1
- $ hg init
- $ echo c1 > f1
- $ hg add f1
- $ hg commit -m "m1"
- Invoking status precommit hook
- A f1
- $ cd ..
- $ hg serve -R r1 -d -p $HGPORT --pid-file hg.pid
- $ cat hg.pid >> $DAEMON_PIDS
- $ hg --config extensions.largefiles=! clone http://localhost:$HGPORT r2
- requesting all changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- updating to branch default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-largefiles clients still work with vanilla servers
- $ hg --config extensions.largefiles=! serve -R r1 -d -p $HGPORT1 --pid-file hg.pid
- $ cat hg.pid >> $DAEMON_PIDS
- $ hg clone http://localhost:$HGPORT1 r3
- requesting all changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- updating to branch default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-#endif
-
-
-vanilla clients locked out from largefiles http repos
- $ mkdir r4
- $ cd r4
- $ hg init
- $ echo c1 > f1
- $ hg add --large f1
- $ hg commit -m "m1"
- Invoking status precommit hook
- A f1
- $ cd ..
-
-#if serve
- $ hg serve -R r4 -d -p $HGPORT2 --pid-file hg.pid
- $ cat hg.pid >> $DAEMON_PIDS
- $ hg --config extensions.largefiles=! clone http://localhost:$HGPORT2 r5
- abort: remote error:
-
- This repository uses the largefiles extension.
-
- Please enable it in your Mercurial config file.
- [255]
-
-used all HGPORTs, kill all daemons
- $ "$TESTDIR/killdaemons.py"
-#endif
-
-vanilla clients locked out from largefiles ssh repos
- $ hg --config extensions.largefiles=! clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/r4 r5
- abort: remote error:
-
- This repository uses the largefiles extension.
-
- Please enable it in your Mercurial config file.
- [255]
-
-#if serve
-
-largefiles clients refuse to push largefiles repos to vanilla servers
- $ mkdir r6
- $ cd r6
- $ hg init
- $ echo c1 > f1
- $ hg add f1
- $ hg commit -m "m1"
- Invoking status precommit hook
- A f1
- $ cat >> .hg/hgrc <<!
- > [web]
- > push_ssl = false
- > allow_push = *
- > !
- $ cd ..
- $ hg clone r6 r7
- updating to branch default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd r7
- $ echo c2 > f2
- $ hg add --large f2
- $ hg commit -m "m2"
- Invoking status precommit hook
- A f2
- $ hg --config extensions.largefiles=! -R ../r6 serve -d -p $HGPORT --pid-file ../hg.pid
- $ cat ../hg.pid >> $DAEMON_PIDS
- $ hg push http://localhost:$HGPORT
- pushing to http://localhost:$HGPORT/
- searching for changes
- abort: http://localhost:$HGPORT/ does not appear to be a largefile store
- [255]
- $ cd ..
-
-putlfile errors are shown (issue3123)
-Corrupt the cached largefile in r7 and in the usercache (required for testing on vfat)
- $ echo corruption > "$TESTTMP/r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8"
- $ echo corruption > "$USERCACHE/4cdac4d8b084d0b599525cf732437fb337d422a8"
- $ hg init empty
- $ hg serve -R empty -d -p $HGPORT1 --pid-file hg.pid \
- > --config 'web.allow_push=*' --config web.push_ssl=False
- $ cat hg.pid >> $DAEMON_PIDS
- $ hg push -R r7 http://localhost:$HGPORT1
- pushing to http://localhost:$HGPORT1/
- searching for changes
- remote: largefiles: failed to put 4cdac4d8b084d0b599525cf732437fb337d422a8 into store: largefile contents do not match hash
- abort: remotestore: could not put $TESTTMP/r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8 to remote store http://localhost:$HGPORT1/ (glob)
- [255]
- $ rm -rf empty
-
-Push a largefiles repository to a served empty repository
- $ hg init r8
- $ echo c3 > r8/f1
- $ hg add --large r8/f1 -R r8
- $ hg commit -m "m1" -R r8
- Invoking status precommit hook
- A f1
- $ hg init empty
- $ hg serve -R empty -d -p $HGPORT2 --pid-file hg.pid \
- > --config 'web.allow_push=*' --config web.push_ssl=False
- $ cat hg.pid >> $DAEMON_PIDS
- $ rm "${USERCACHE}"/*
- $ hg push -R r8 http://localhost:$HGPORT2
- pushing to http://localhost:$HGPORT2/
- searching for changes
- searching for changes
- remote: adding changesets
- remote: adding manifests
- remote: adding file changes
- remote: added 1 changesets with 1 changes to 1 files
- $ rm -rf empty
-
-used all HGPORTs, kill all daemons
- $ "$TESTDIR/killdaemons.py"
-
-#endif
-
-
-#if unix-permissions
-
-Clone a local repository owned by another user
-We have to simulate that here by setting $HOME and removing write permissions
- $ ORIGHOME="$HOME"
- $ mkdir alice
- $ HOME="`pwd`/alice"
- $ cd alice
- $ hg init pubrepo
- $ cd pubrepo
- $ dd if=/dev/zero bs=1k count=11k > a-large-file 2> /dev/null
- $ hg add --large a-large-file
- $ hg commit -m "Add a large file"
- Invoking status precommit hook
- A a-large-file
- $ cd ..
- $ chmod -R a-w pubrepo
- $ cd ..
- $ mkdir bob
- $ HOME="`pwd`/bob"
- $ cd bob
- $ hg clone --pull ../alice/pubrepo pubrepo
- requesting all changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- updating to branch default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 1 largefiles updated, 0 removed
- $ cd ..
- $ chmod -R u+w alice/pubrepo
- $ HOME="$ORIGHOME"
-
-#endif
-
-#if symlink
-
-Symlink to a large largefile should behave the same as a symlink to a normal file
- $ hg init largesymlink
- $ cd largesymlink
- $ dd if=/dev/zero bs=1k count=10k of=largefile 2>/dev/null
- $ hg add --large largefile
- $ hg commit -m "commit a large file"
- Invoking status precommit hook
- A largefile
- $ ln -s largefile largelink
- $ hg add largelink
- $ hg commit -m "commit a large symlink"
- Invoking status precommit hook
- A largelink
- $ rm -f largelink
- $ hg up >/dev/null
- $ test -f largelink
- [1]
- $ test -L largelink
- [1]
- $ rm -f largelink # make next part of the test independent of the previous
- $ hg up -C >/dev/null
- $ test -f largelink
- $ test -L largelink
- $ cd ..
-
-#endif
-
-test for pattern matching on 'hg status':
-to boost performance, largefiles checks whether specified patterns are
-related to largefiles in working directory (NOT to STANDIN) or not.
-
- $ hg init statusmatch
- $ cd statusmatch
-
- $ mkdir -p a/b/c/d
- $ echo normal > a/b/c/d/e.normal.txt
- $ hg add a/b/c/d/e.normal.txt
- $ echo large > a/b/c/d/e.large.txt
- $ hg add --large a/b/c/d/e.large.txt
- $ mkdir -p a/b/c/x
- $ echo normal > a/b/c/x/y.normal.txt
- $ hg add a/b/c/x/y.normal.txt
- $ hg commit -m 'add files'
- Invoking status precommit hook
- A a/b/c/d/e.large.txt
- A a/b/c/d/e.normal.txt
- A a/b/c/x/y.normal.txt
-
-(1) no pattern: no performance boost
- $ hg status -A
- C a/b/c/d/e.large.txt
- C a/b/c/d/e.normal.txt
- C a/b/c/x/y.normal.txt
-
-(2) pattern not related to largefiles: performance boost
- $ hg status -A a/b/c/x
- C a/b/c/x/y.normal.txt
-
-(3) pattern related to largefiles: no performance boost
- $ hg status -A a/b/c/d
- C a/b/c/d/e.large.txt
- C a/b/c/d/e.normal.txt
-
-(4) pattern related to STANDIN (not to largefiles): performance boost
- $ hg status -A .hglf/a
- C .hglf/a/b/c/d/e.large.txt
-
-(5) mixed case: no performance boost
- $ hg status -A a/b/c/x a/b/c/d
- C a/b/c/d/e.large.txt
- C a/b/c/d/e.normal.txt
- C a/b/c/x/y.normal.txt
-
-verify that largefiles doesn't break filesets
-
- $ hg log --rev . --exclude "set:binary()"
- changeset: 0:41bd42f10efa
- tag: tip
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add files
-
-verify that large files in subrepos handled properly
- $ hg init subrepo
- $ echo "subrepo = subrepo" > .hgsub
- $ hg add .hgsub
- $ hg ci -m "add subrepo"
- Invoking status precommit hook
- A .hgsub
- ? .hgsubstate
- $ echo "rev 1" > subrepo/large.txt
- $ hg -R subrepo add --large subrepo/large.txt
- $ hg sum
- parent: 1:8ee150ea2e9c tip
- add subrepo
- branch: default
- commit: 1 subrepos
- update: (current)
- $ hg st
- $ hg st -S
- A subrepo/large.txt
- $ hg ci -S -m "commit top repo"
- committing subrepository subrepo
- Invoking status precommit hook
- A large.txt
- Invoking status precommit hook
- M .hgsubstate
-# No differences
- $ hg st -S
- $ hg sum
- parent: 2:ce4cd0c527a6 tip
- commit top repo
- branch: default
- commit: (clean)
- update: (current)
- $ echo "rev 2" > subrepo/large.txt
- $ hg st -S
- M subrepo/large.txt
- $ hg sum
- parent: 2:ce4cd0c527a6 tip
- commit top repo
- branch: default
- commit: 1 subrepos
- update: (current)
- $ hg ci -m "this commit should fail without -S"
- abort: uncommitted changes in subrepo subrepo
- (use --subrepos for recursive commit)
- [255]
-
-Add a normal file to the subrepo, then test archiving
-
- $ echo 'normal file' > subrepo/normal.txt
- $ hg -R subrepo add subrepo/normal.txt
-
-Lock in subrepo, otherwise the change isn't archived
-
- $ hg ci -S -m "add normal file to top level"
- committing subrepository subrepo
- Invoking status precommit hook
- M large.txt
- A normal.txt
- Invoking status precommit hook
- M .hgsubstate
- $ hg archive -S lf_subrepo_archive
- $ find lf_subrepo_archive | sort
- lf_subrepo_archive
- lf_subrepo_archive/.hg_archival.txt
- lf_subrepo_archive/.hgsub
- lf_subrepo_archive/.hgsubstate
- lf_subrepo_archive/a
- lf_subrepo_archive/a/b
- lf_subrepo_archive/a/b/c
- lf_subrepo_archive/a/b/c/d
- lf_subrepo_archive/a/b/c/d/e.large.txt
- lf_subrepo_archive/a/b/c/d/e.normal.txt
- lf_subrepo_archive/a/b/c/x
- lf_subrepo_archive/a/b/c/x/y.normal.txt
- lf_subrepo_archive/subrepo
- lf_subrepo_archive/subrepo/large.txt
- lf_subrepo_archive/subrepo/normal.txt
-
- $ cd ..
diff --git a/tests/test-lfconvert.t b/tests/test-lfconvert.t
deleted file mode 100644
index 50330eb..0000000
--- a/tests/test-lfconvert.t
+++ /dev/null
@@ -1,272 +0,0 @@
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > largefiles =
- > share =
- > graphlog =
- > mq =
- > [largefiles]
- > minsize = 0.5
- > patterns = **.other
- > **.dat
- > EOF
-
-"lfconvert" works
- $ hg init bigfile-repo
- $ cd bigfile-repo
- $ cat >> .hg/hgrc <<EOF
- > [extensions]
- > largefiles = !
- > EOF
- $ mkdir sub
- $ dd if=/dev/zero bs=1k count=256 > large 2> /dev/null
- $ dd if=/dev/zero bs=1k count=256 > large2 2> /dev/null
- $ echo normal > normal1
- $ echo alsonormal > sub/normal2
- $ dd if=/dev/zero bs=1k count=10 > sub/maybelarge.dat 2> /dev/null
- $ hg addremove
- adding large
- adding large2
- adding normal1
- adding sub/maybelarge.dat
- adding sub/normal2
- $ hg commit -m"add large, normal1" large normal1
- $ hg commit -m"add sub/*" sub
-
-Test tag parsing
- $ cat >> .hgtags <<EOF
- > IncorrectlyFormattedTag!
- > invalidhash sometag
- > 0123456789abcdef anothertag
- > EOF
- $ hg add .hgtags
- $ hg commit -m"add large2" large2 .hgtags
-
-Test link+rename largefile codepath
- $ [ -d .hg/largefiles ] && echo fail || echo pass
- pass
- $ cd ..
- $ hg lfconvert --size 0.2 bigfile-repo largefiles-repo
- initializing destination largefiles-repo
- skipping incorrectly formatted tag IncorrectlyFormattedTag!
- skipping incorrectly formatted id invalidhash
- no mapping for id 0123456789abcdef
-#if symlink
- $ hg --cwd bigfile-repo rename large2 large3
- $ ln -sf large bigfile-repo/large3
- $ hg --cwd bigfile-repo commit -m"make large2 a symlink" large2 large3
- $ hg lfconvert --size 0.2 bigfile-repo largefiles-repo-symlink
- initializing destination largefiles-repo-symlink
- skipping incorrectly formatted tag IncorrectlyFormattedTag!
- skipping incorrectly formatted id invalidhash
- no mapping for id 0123456789abcdef
- abort: renamed/copied largefile large3 becomes symlink
- [255]
-#endif
- $ cd bigfile-repo
- $ hg strip --no-backup 2
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- $ cd ..
- $ rm -rf largefiles-repo largefiles-repo-symlink
-
- $ hg lfconvert --size 0.2 bigfile-repo largefiles-repo
- initializing destination largefiles-repo
-
-"lfconvert" converts content correctly
- $ cd largefiles-repo
- $ hg up
- 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 2 largefiles updated, 0 removed
- $ hg locate
- .hglf/large
- .hglf/sub/maybelarge.dat
- normal1
- sub/normal2
- $ cat normal1
- normal
- $ cat sub/normal2
- alsonormal
- $ "$TESTDIR/md5sum.py" large sub/maybelarge.dat
- ec87a838931d4d5d2e94a04644788a55 large
- 1276481102f218c981e0324180bafd9f sub/maybelarge.dat
-
-"lfconvert" adds 'largefiles' to .hg/requires.
- $ cat .hg/requires
- largefiles
- revlogv1
- fncache
- store
- dotencode
-
-"lfconvert" includes a newline at the end of the standin files.
- $ cat .hglf/large .hglf/sub/maybelarge.dat
- 2e000fa7e85759c7f4c254d4d9c33ef481e459a7
- 34e163be8e43c5631d8b92e9c43ab0bf0fa62b9c
- $ cd ..
-
-add some changesets to rename/remove/merge
- $ cd bigfile-repo
- $ hg mv -q sub stuff
- $ hg commit -m"rename sub/ to stuff/"
- $ hg update -q 1
- $ echo blah >> normal3
- $ echo blah >> sub/normal2
- $ echo blah >> sub/maybelarge.dat
- $ "$TESTDIR/md5sum.py" sub/maybelarge.dat
- 1dd0b99ff80e19cff409702a1d3f5e15 sub/maybelarge.dat
- $ hg commit -A -m"add normal3, modify sub/*"
- adding normal3
- created new head
- $ hg rm large normal3
- $ hg commit -q -m"remove large, normal3"
- $ hg merge
- merging sub/maybelarge.dat and stuff/maybelarge.dat to stuff/maybelarge.dat
- warning: $TESTTMP/bigfile-repo/stuff/maybelarge.dat looks like a binary file. (glob)
- merging stuff/maybelarge.dat incomplete! (edit conflicts, then use 'hg resolve --mark')
- merging sub/normal2 and stuff/normal2 to stuff/normal2
- 0 files updated, 1 files merged, 0 files removed, 1 files unresolved
- use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ hg cat -r . sub/maybelarge.dat > stuff/maybelarge.dat
- $ hg resolve -m stuff/maybelarge.dat
- $ hg commit -m"merge"
- $ hg glog --template "{rev}:{node|short} {desc|firstline}\n"
- @ 5:4884f215abda merge
- |\
- | o 4:7285f817b77e remove large, normal3
- | |
- | o 3:67e3892e3534 add normal3, modify sub/*
- | |
- o | 2:c96c8beb5d56 rename sub/ to stuff/
- |/
- o 1:020c65d24e11 add sub/*
- |
- o 0:117b8328f97a add large, normal1
-
- $ cd ..
-
-lfconvert with rename, merge, and remove
- $ rm -rf largefiles-repo
- $ hg lfconvert --size 0.2 bigfile-repo largefiles-repo
- initializing destination largefiles-repo
- $ cd largefiles-repo
- $ hg glog --template "{rev}:{node|short} {desc|firstline}\n"
- o 5:8e05f5f2b77e merge
- |\
- | o 4:a5a02de7a8e4 remove large, normal3
- | |
- | o 3:55759520c76f add normal3, modify sub/*
- | |
- o | 2:261ad3f3f037 rename sub/ to stuff/
- |/
- o 1:334e5237836d add sub/*
- |
- o 0:d4892ec57ce2 add large, normal1
-
- $ hg locate -r 2
- .hglf/large
- .hglf/stuff/maybelarge.dat
- normal1
- stuff/normal2
- $ hg locate -r 3
- .hglf/large
- .hglf/sub/maybelarge.dat
- normal1
- normal3
- sub/normal2
- $ hg locate -r 4
- .hglf/sub/maybelarge.dat
- normal1
- sub/normal2
- $ hg locate -r 5
- .hglf/stuff/maybelarge.dat
- normal1
- stuff/normal2
- $ hg update
- 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
- getting changed largefiles
- 1 largefiles updated, 0 removed
- $ cat stuff/normal2
- alsonormal
- blah
- $ "$TESTDIR/md5sum.py" stuff/maybelarge.dat
- 1dd0b99ff80e19cff409702a1d3f5e15 stuff/maybelarge.dat
- $ cat .hglf/stuff/maybelarge.dat
- 76236b6a2c6102826c61af4297dd738fb3b1de38
- $ cd ..
-
-"lfconvert" error cases
- $ hg lfconvert http://localhost/foo foo
- abort: http://localhost/foo is not a local Mercurial repo
- [255]
- $ hg lfconvert foo ssh://localhost/foo
- abort: ssh://localhost/foo is not a local Mercurial repo
- [255]
- $ hg lfconvert nosuchrepo foo
- abort: repository nosuchrepo not found!
- [255]
- $ hg share -q -U bigfile-repo shared
- $ printf 'bogus' > shared/.hg/sharedpath
- $ hg lfconvert shared foo
- abort: .hg/sharedpath points to nonexistent directory $TESTTMP/bogus! (glob)
- [255]
- $ hg lfconvert bigfile-repo largefiles-repo
- initializing destination largefiles-repo
- abort: repository largefiles-repo already exists!
- [255]
-
-add another largefile to the new largefiles repo
- $ cd largefiles-repo
- $ dd if=/dev/zero bs=1k count=1k > anotherlarge 2> /dev/null
- $ hg add --lfsize=1 anotherlarge
- $ hg commit -m "add anotherlarge (should be a largefile)"
- $ cat .hglf/anotherlarge
- 3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3
- $ cd ..
-
-round-trip: converting back to a normal (non-largefiles) repo with
-"lfconvert --to-normal" should give the same as ../bigfile-repo
- $ cd largefiles-repo
- $ hg lfconvert --to-normal . ../normal-repo
- initializing destination ../normal-repo
- $ cd ../normal-repo
- $ cat >> .hg/hgrc <<EOF
- > [extensions]
- > largefiles = !
- > EOF
-
-# Hmmm: the changeset ID for rev 5 is different from the original
-# normal repo (../bigfile-repo), because the changelog filelist
-# differs between the two incarnations of rev 5: this repo includes
-# 'large' in the list, but ../bigfile-repo does not. Since rev 5
-# removes 'large' relative to the first parent in both repos, it seems
-# to me that lfconvert is doing a *better* job than
-# "hg remove" + "hg merge" + "hg commit".
-# $ hg -R ../bigfile-repo debugdata -c 5
-# $ hg debugdata -c 5
- $ hg glog --template "{rev}:{node|short} {desc|firstline}\n"
- o 6:1635824e6f59 add anotherlarge (should be a largefile)
- |
- o 5:7215f8deeaaf merge
- |\
- | o 4:7285f817b77e remove large, normal3
- | |
- | o 3:67e3892e3534 add normal3, modify sub/*
- | |
- o | 2:c96c8beb5d56 rename sub/ to stuff/
- |/
- o 1:020c65d24e11 add sub/*
- |
- o 0:117b8328f97a add large, normal1
-
- $ hg update
- 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg locate
- anotherlarge
- normal1
- stuff/maybelarge.dat
- stuff/normal2
- $ [ -d .hg/largefiles ] && echo fail || echo pass
- pass
-
- $ cd ..
diff --git a/tests/test-locate.t b/tests/test-locate.t
index 9d18a3e..0f5bf87 100644
--- a/tests/test-locate.t
+++ b/tests/test-locate.t
@@ -1,5 +1,5 @@
- $ hg init repo
- $ cd repo
+ $ hg init t
+ $ cd t
$ echo 0 > a
$ echo 0 > b
$ echo 0 > t.h
@@ -88,34 +88,33 @@ Issue294: hg remove --after dir fails when dir.* also exists
$ rm -r t
$ hg locate 't/**'
- t/b (glob)
- t/e.h (glob)
- t/x (glob)
+ t/b
+ t/e.h
+ t/x
$ mkdir otherdir
$ cd otherdir
$ hg locate b
- ../b (glob)
- ../t/b (glob)
+ ../b
+ ../t/b
$ hg locate '*.h'
- ../t.h (glob)
- ../t/e.h (glob)
+ ../t.h
+ ../t/e.h
$ hg locate path:t/x
- ../t/x (glob)
+ ../t/x
$ hg locate 're:.*\.h$'
- ../t.h (glob)
- ../t/e.h (glob)
+ ../t.h
+ ../t/e.h
$ hg locate -r 0 b
- ../b (glob)
- ../t/b (glob)
+ ../b
+ ../t/b
$ hg locate -r 0 '*.h'
- ../t.h (glob)
- ../t/e.h (glob)
+ ../t.h
+ ../t/e.h
$ hg locate -r 0 path:t/x
- ../t/x (glob)
+ ../t/x
$ hg locate -r 0 're:.*\.h$'
- ../t.h (glob)
- ../t/e.h (glob)
+ ../t.h
+ ../t/e.h
- $ cd ../..
diff --git a/tests/test-lock-badness.t b/tests/test-lock-badness.t
index 9c3319c..ea68db7 100644
--- a/tests/test-lock-badness.t
+++ b/tests/test-lock-badness.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" unix-permissions || exit 80
-
$ hg init a
$ echo a > a/a
$ hg -R a ci -A -m a
diff --git a/tests/test-log.t b/tests/test-log.t
index 0a4248e..f85387c 100644
--- a/tests/test-log.t
+++ b/tests/test-log.t
@@ -1,26 +1,18 @@
-The g is crafted to have 2 filelog topological heads in a linear
-changeset graph
-
$ hg init a
+
$ cd a
$ echo a > a
- $ echo f > f
$ hg ci -Ama -d '1 0'
adding a
- adding f
$ hg cp a b
- $ hg cp f g
$ hg ci -mb -d '2 0'
$ mkdir dir
$ hg mv b dir
- $ echo g >> g
- $ echo f >> f
$ hg ci -mc -d '3 0'
$ hg mv a b
- $ hg cp -f f g
$ echo a > d
$ hg add d
$ hg ci -md -d '4 0'
@@ -29,7 +21,7 @@ changeset graph
$ hg ci -me -d '5 0'
$ hg log a
- changeset: 0:9161b9aeaf16
+ changeset: 0:8580ff50825a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: a
@@ -38,34 +30,34 @@ changeset graph
-f, directory
$ hg log -f dir
- abort: cannot follow file not in parent revision: "dir"
+ abort: cannot follow nonexistent file: "dir"
[255]
-f, but no args
$ hg log -f
- changeset: 4:7e4639b4691b
+ changeset: 4:66c1345dc4f9
tag: tip
user: test
date: Thu Jan 01 00:00:05 1970 +0000
summary: e
- changeset: 3:2ca5ba701980
+ changeset: 3:7c6c671bb7cc
user: test
date: Thu Jan 01 00:00:04 1970 +0000
summary: d
- changeset: 2:f8954cd4dc1f
+ changeset: 2:41dd4284081e
user: test
date: Thu Jan 01 00:00:03 1970 +0000
summary: c
- changeset: 1:d89b0a12d229
+ changeset: 1:784de7cef101
user: test
date: Thu Jan 01 00:00:02 1970 +0000
summary: b
- changeset: 0:9161b9aeaf16
+ changeset: 0:8580ff50825a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: a
@@ -73,12 +65,11 @@ changeset graph
one rename
- $ hg up -q 2
$ hg log -vf a
- changeset: 0:9161b9aeaf16
+ changeset: 0:8580ff50825a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
- files: a f
+ files: a
description:
a
@@ -86,9 +77,8 @@ one rename
many renames
- $ hg up -q tip
$ hg log -vf e
- changeset: 4:7e4639b4691b
+ changeset: 4:66c1345dc4f9
tag: tip
user: test
date: Thu Jan 01 00:00:05 1970 +0000
@@ -97,26 +87,26 @@ many renames
e
- changeset: 2:f8954cd4dc1f
+ changeset: 2:41dd4284081e
user: test
date: Thu Jan 01 00:00:03 1970 +0000
- files: b dir/b f g
+ files: b dir/b
description:
c
- changeset: 1:d89b0a12d229
+ changeset: 1:784de7cef101
user: test
date: Thu Jan 01 00:00:02 1970 +0000
- files: b g
+ files: b
description:
b
- changeset: 0:9161b9aeaf16
+ changeset: 0:8580ff50825a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
- files: a f
+ files: a
description:
a
@@ -125,36 +115,35 @@ many renames
log -pf dir/b
- $ hg up -q 3
$ hg log -pf dir/b
- changeset: 2:f8954cd4dc1f
+ changeset: 2:41dd4284081e
user: test
date: Thu Jan 01 00:00:03 1970 +0000
summary: c
- diff -r d89b0a12d229 -r f8954cd4dc1f dir/b
+ diff -r 784de7cef101 -r 41dd4284081e dir/b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dir/b Thu Jan 01 00:00:03 1970 +0000
@@ -0,0 +1,1 @@
+a
- changeset: 1:d89b0a12d229
+ changeset: 1:784de7cef101
user: test
date: Thu Jan 01 00:00:02 1970 +0000
summary: b
- diff -r 9161b9aeaf16 -r d89b0a12d229 b
+ diff -r 8580ff50825a -r 784de7cef101 b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/b Thu Jan 01 00:00:02 1970 +0000
@@ -0,0 +1,1 @@
+a
- changeset: 0:9161b9aeaf16
+ changeset: 0:8580ff50825a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: a
- diff -r 000000000000 -r 9161b9aeaf16 a
+ diff -r 000000000000 -r 8580ff50825a a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:01 1970 +0000
@@ -0,0 +1,1 @@
@@ -164,53 +153,39 @@ log -pf dir/b
log -vf dir/b
$ hg log -vf dir/b
- changeset: 2:f8954cd4dc1f
+ changeset: 2:41dd4284081e
user: test
date: Thu Jan 01 00:00:03 1970 +0000
- files: b dir/b f g
+ files: b dir/b
description:
c
- changeset: 1:d89b0a12d229
+ changeset: 1:784de7cef101
user: test
date: Thu Jan 01 00:00:02 1970 +0000
- files: b g
+ files: b
description:
b
- changeset: 0:9161b9aeaf16
+ changeset: 0:8580ff50825a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
- files: a f
+ files: a
description:
a
--f and multiple filelog heads
-
- $ hg up -q 2
- $ hg log -f g --template '{rev}\n'
- 2
- 1
- 0
- $ hg up -q tip
- $ hg log -f g --template '{rev}\n'
- 3
- 2
- 0
-
-
log copies with --copies
$ hg log -vC --template '{rev} {file_copies}\n'
4 e (dir/b)
- 3 b (a)g (f)
+ 3 b (a)
2 dir/b (b)
- 1 b (a)g (f)
+ 1 b (a)
0
log copies switch without --copies, with old filecopy template
@@ -226,16 +201,16 @@ log copies switch with --copies
$ hg log -vC --template '{rev} {file_copies_switch}\n'
4 e (dir/b)
- 3 b (a)g (f)
+ 3 b (a)
2 dir/b (b)
- 1 b (a)g (f)
+ 1 b (a)
0
log copies with hardcoded style and with --style=default
$ hg log -vC -r4
- changeset: 4:7e4639b4691b
+ changeset: 4:66c1345dc4f9
tag: tip
user: test
date: Thu Jan 01 00:00:05 1970 +0000
@@ -246,7 +221,7 @@ log copies with hardcoded style and with --style=default
$ hg log -vC -r4 --style=default
- changeset: 4:7e4639b4691b
+ changeset: 4:66c1345dc4f9
tag: tip
user: test
date: Thu Jan 01 00:00:05 1970 +0000
@@ -273,26 +248,24 @@ log copies, non-linear manifest
log copies, execute bit set
-#if execbit
$ chmod +x e
$ hg ci -me3 -d '7 0'
$ hg log -v --template '{rev} {file_copies}\n' -r 6
6
-#endif
log -p d
$ hg log -pv d
- changeset: 3:2ca5ba701980
+ changeset: 3:7c6c671bb7cc
user: test
date: Thu Jan 01 00:00:04 1970 +0000
- files: a b d g
+ files: a b d
description:
d
- diff -r f8954cd4dc1f -r 2ca5ba701980 d
+ diff -r 41dd4284081e -r 7c6c671bb7cc d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/d Thu Jan 01 00:00:04 1970 +0000
@@ -0,0 +1,1 @@
@@ -303,18 +276,18 @@ log -p d
log --removed file
$ hg log --removed -v a
- changeset: 3:2ca5ba701980
+ changeset: 3:7c6c671bb7cc
user: test
date: Thu Jan 01 00:00:04 1970 +0000
- files: a b d g
+ files: a b d
description:
d
- changeset: 0:9161b9aeaf16
+ changeset: 0:8580ff50825a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
- files: a f
+ files: a
description:
a
@@ -323,20 +296,20 @@ log --removed file
log --removed revrange file
$ hg log --removed -v -r0:2 a
- changeset: 0:9161b9aeaf16
+ changeset: 0:8580ff50825a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
- files: a f
+ files: a
description:
a
- $ cd ..
+
log --follow tests
- $ hg init follow
- $ cd follow
+ $ hg init ../follow
+ $ cd ../follow
$ echo base > base
$ hg ci -Ambase -d '1 0'
@@ -539,6 +512,34 @@ log -k r1
date: Thu Jan 01 00:00:01 1970 +0000
summary: r1
+log -d " " (whitespaces only)
+
+ $ hg log -d " "
+ abort: dates cannot consist entirely of whitespace
+ [255]
+
+log -d -1
+
+ $ hg log -d -1
+
+log -d ">"
+
+ $ hg log -d ">"
+ abort: invalid day spec, use '>DATE'
+ [255]
+
+log -d "<"
+
+ $ hg log -d "<"
+ abort: invalid day spec, use '<DATE'
+ [255]
+
+Negative ranges
+ $ hg log -d "--2"
+ abort: -2 must be nonnegative (see 'hg help dates')
+ [255]
+
+
log -p -l2 --color=always
$ hg --config extensions.color= --config color.mode=ansi \
@@ -586,9 +587,6 @@ log -r tip --stat
$ cd ..
-
-User
-
$ hg init usertest
$ cd usertest
@@ -629,7 +627,6 @@ User
adding a
$ hg branch test
marked working directory as branch test
- (branches are permanent and global, did you want a bookmark?)
$ echo b > b
$ hg ci -A -m "commit on test"
adding b
@@ -873,11 +870,12 @@ log -p -R repo
+a
- $ cd ../..
+ $ cd ..
$ hg init follow2
$ cd follow2
+
# Build the following history:
# tip - o - x - o - x - x
# \ /
@@ -922,7 +920,7 @@ log -p -R repo
$ hg merge 7
merging foo
warning: conflicts during merge.
- merging foo incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging foo failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
@@ -933,7 +931,7 @@ log -p -R repo
$ hg merge 4
merging foo
warning: conflicts during merge.
- merging foo incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging foo failed!
1 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
@@ -941,7 +939,7 @@ log -p -R repo
$ hg resolve -m foo
$ hg ci -m "Last merge, related"
- $ hg log --graph
+ $ hg --config "extensions.graphlog=" glog
@ changeset: 10:4dae8563d2c5
|\ tag: tip
| | parent: 9:7b35701b003e
@@ -1051,7 +1049,6 @@ Also check when maxrev < lastrevfilelog
date: Thu Jan 01 00:00:00 1970 +0000
summary: add foo, related
- $ cd ..
Issue2383: hg log showing _less_ differences than hg diff
@@ -1128,8 +1125,7 @@ Diff here should be the same:
'hg log -r rev fn' when last(filelog(fn)) != rev
- $ hg init simplelog
- $ cd simplelog
+ $ hg init simplelog; cd simplelog
$ echo f > a
$ hg ci -Am'a' -d '0 0'
adding a
@@ -1146,7 +1142,7 @@ Diff here should be the same:
> def reposetup(ui, repo):
> for line in repo.opener('hidden'):
> ctx = repo[line.strip()]
- > repo.hiddenrevs.add(ctx.rev())
+ > repo.changelog.hiddenrevs.add(ctx.rev())
> EOF
$ echo '[extensions]' >> $HGRCPATH
$ echo "hidden=$HGTMP/testhidden.py" >> $HGRCPATH
@@ -1160,56 +1156,3 @@ Diff here should be the same:
$ hg log --template='{rev}:{node}\n' --hidden
1:a765632148dc55d38c35c4f247c618701886cb2f
0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
-
-clear extensions configuration
- $ echo '[extensions]' >> $HGRCPATH
- $ echo "hidden=!" >> $HGRCPATH
- $ cd ..
-
-test -u/-k for problematic encoding
-# unicode: cp932:
-# u30A2 0x83 0x41(= 'A')
-# u30C2 0x83 0x61(= 'a')
-
- $ hg init problematicencoding
- $ cd problematicencoding
-
- $ python > setup.sh <<EOF
- > print u'''
- > echo a > text
- > hg add text
- > hg --encoding utf-8 commit -u '\u30A2' -m none
- > echo b > text
- > hg --encoding utf-8 commit -u '\u30C2' -m none
- > echo c > text
- > hg --encoding utf-8 commit -u none -m '\u30A2'
- > echo d > text
- > hg --encoding utf-8 commit -u none -m '\u30C2'
- > '''.encode('utf-8')
- > EOF
- $ sh < setup.sh
-
-test in problematic encoding
- $ python > test.sh <<EOF
- > print u'''
- > hg --encoding cp932 log --template '{rev}\\n' -u '\u30A2'
- > echo ====
- > hg --encoding cp932 log --template '{rev}\\n' -u '\u30C2'
- > echo ====
- > hg --encoding cp932 log --template '{rev}\\n' -k '\u30A2'
- > echo ====
- > hg --encoding cp932 log --template '{rev}\\n' -k '\u30C2'
- > '''.encode('cp932')
- > EOF
- $ sh < test.sh
- 0
- ====
- 1
- ====
- 2
- 0
- ====
- 3
- 1
-
- $ cd ..
diff --git a/tests/test-mactext.t b/tests/test-mactext.t
index efbd4d2..3df5db5 100644
--- a/tests/test-mactext.t
+++ b/tests/test-mactext.t
@@ -19,14 +19,16 @@
[hooks]
pretxncommit.cr = python:hgext.win32text.forbidcr
pretxnchangegroup.cr = python:hgext.win32text.forbidcr
-
+ $ echo
+
$ echo hello > f
$ hg add f
$ hg ci -m 1
-
+ $ echo
+
$ python unix2mac.py f
$ hg ci -m 2
- attempt to commit or push text file(s) using CR line endings
+ Attempt to commit or push text file(s) using CR line endings
in dea860dc51ec: f
transaction abort!
rollback completed
diff --git a/tests/test-manifest-merging.t b/tests/test-manifest-merging.t
index aa91cf0..9531838 100644
--- a/tests/test-manifest-merging.t
+++ b/tests/test-manifest-merging.t
@@ -34,4 +34,3 @@ Update --clean to revision 1 to simulate a failed merge:
$ hg update --clean 1
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd ..
diff --git a/tests/test-merge-closedheads.t b/tests/test-merge-closedheads.t
index ad78c1e..259f09f 100644
--- a/tests/test-merge-closedheads.t
+++ b/tests/test-merge-closedheads.t
@@ -68,7 +68,6 @@ hg update -C 8
hg branch some-branch
$ hg branch some-branch
marked working directory as branch some-branch
- (branches are permanent and global, did you want a bookmark?)
hg commit
$ hgcommit -m 'started some-branch'
hg commit --close-branch
@@ -84,4 +83,3 @@ hg merge some-branch
hg commit (no reopening of some-branch)
$ hgcommit -m 'merge with closed branch'
- $ cd ..
diff --git a/tests/test-merge-commit.t b/tests/test-merge-commit.t
index 23a6e16..bbd3986 100644
--- a/tests/test-merge-commit.t
+++ b/tests/test-merge-commit.t
@@ -35,17 +35,17 @@ Test with the merge on 3 having the rename on the local parent
$ hg ci -m '3: merge with local rename'
$ hg debugindex bar
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 77 ..... 2 d35118874825 000000000000 000000000000 (re)
- 1 77 76 ..... 3 5345f5ab8abd 000000000000 d35118874825 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 77 0 2 d35118874825 000000000000 000000000000
+ 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
$ hg debugrename bar
bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
$ hg debugindex foo
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 7 ..... 0 690b295714ae 000000000000 000000000000 (re)
- 1 7 13 ..... 1 9e25c27b8757 690b295714ae 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 7 0 0 690b295714ae 000000000000 000000000000
+ 1 7 13 1 1 9e25c27b8757 690b295714ae 000000000000
Revert the content change from rev 2:
@@ -69,8 +69,8 @@ This should use bar@rev2 as the ancestor:
$ hg --debug merge 3
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 0555950ead28
+ overwrite None partial False
+ ancestor 0f2ff26688b9 local 2263c1be0967+ remote 0555950ead28
bar: versions differ -> m
preserving bar for resolve of bar
updating: bar 1/1 files (100.00%)
@@ -88,11 +88,11 @@ This should use bar@rev2 as the ancestor:
$ hg ci -m '5: merge'
$ hg debugindex bar
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 77 ..... 2 d35118874825 000000000000 000000000000 (re)
- 1 77 76 ..... 3 5345f5ab8abd 000000000000 d35118874825 (re)
- 2 153 7 ..... 4 ff4b45017382 d35118874825 000000000000 (re)
- 3 160 13 ..... 5 3701b4893544 ff4b45017382 5345f5ab8abd (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 77 0 2 d35118874825 000000000000 000000000000
+ 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
+ 2 153 7 2 4 ff4b45017382 d35118874825 000000000000
+ 3 160 13 3 5 3701b4893544 ff4b45017382 5345f5ab8abd
Same thing, but with the merge on 3 having the rename
@@ -122,17 +122,17 @@ on the remote parent:
$ hg ci -m '3: merge with remote rename'
$ hg debugindex bar
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 77 ..... 2 d35118874825 000000000000 000000000000 (re)
- 1 77 76 ..... 3 5345f5ab8abd 000000000000 d35118874825 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 77 0 2 d35118874825 000000000000 000000000000
+ 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
$ hg debugrename bar
bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
$ hg debugindex foo
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 7 ..... 0 690b295714ae 000000000000 000000000000 (re)
- 1 7 13 ..... 1 9e25c27b8757 690b295714ae 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 7 0 0 690b295714ae 000000000000 000000000000
+ 1 7 13 1 1 9e25c27b8757 690b295714ae 000000000000
Revert the content change from rev 2:
@@ -156,8 +156,8 @@ This should use bar@rev2 as the ancestor:
$ hg --debug merge 3
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 3ffa6b9e35f0
+ overwrite None partial False
+ ancestor 0f2ff26688b9 local 2263c1be0967+ remote 3ffa6b9e35f0
bar: versions differ -> m
preserving bar for resolve of bar
updating: bar 1/1 files (100.00%)
@@ -175,10 +175,9 @@ This should use bar@rev2 as the ancestor:
$ hg ci -m '5: merge'
$ hg debugindex bar
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 77 ..... 2 d35118874825 000000000000 000000000000 (re)
- 1 77 76 ..... 3 5345f5ab8abd 000000000000 d35118874825 (re)
- 2 153 7 ..... 4 ff4b45017382 d35118874825 000000000000 (re)
- 3 160 13 ..... 5 3701b4893544 ff4b45017382 5345f5ab8abd (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 77 0 2 d35118874825 000000000000 000000000000
+ 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
+ 2 153 7 2 4 ff4b45017382 d35118874825 000000000000
+ 3 160 13 3 5 3701b4893544 ff4b45017382 5345f5ab8abd
- $ cd ..
diff --git a/tests/test-merge-default.t b/tests/test-merge-default.t
index 64f64d3..dac2b4a 100644
--- a/tests/test-merge-default.t
+++ b/tests/test-merge-default.t
@@ -66,7 +66,7 @@ Should succeed - 2 heads:
Should fail because at tip:
$ hg merge
- abort: nothing to merge
+ abort: there is nothing to merge
[255]
$ hg up 0
@@ -75,8 +75,7 @@ Should fail because at tip:
Should fail because there is only one head:
$ hg merge
- abort: nothing to merge
- (use 'hg update' instead)
+ abort: there is nothing to merge - use "hg update" instead
[255]
$ hg up 3
@@ -85,7 +84,6 @@ Should fail because there is only one head:
$ echo f >> a
$ hg branch foobranch
marked working directory as branch foobranch
- (branches are permanent and global, did you want a bookmark?)
$ hg commit -mf
Should fail because merge with other branch:
diff --git a/tests/test-merge-force.t b/tests/test-merge-force.t
index 7a13f66..748ed59 100644
--- a/tests/test-merge-force.t
+++ b/tests/test-merge-force.t
@@ -19,8 +19,7 @@ Local deleted a file, remote removed
Should fail, since there are deleted files:
$ hg merge
- abort: outstanding uncommitted changes
- (use 'hg status' to list changes)
+ abort: outstanding uncommitted changes (use 'hg status' to list changes)
[255]
Should succeed with --force:
diff --git a/tests/test-merge-local.t b/tests/test-merge-local.t
index 8e1e5b1..63fd54e 100644
--- a/tests/test-merge-local.t
+++ b/tests/test-merge-local.t
@@ -63,7 +63,7 @@ Local merge with bad merge tool:
merging zzz1_merge_ok
merging zzz2_merge_bad
warning: conflicts during merge.
- merging zzz2_merge_bad incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging zzz2_merge_bad failed!
2 files updated, 1 files merged, 3 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges
[1]
@@ -88,7 +88,7 @@ Local merge with conflicts:
merging zzz1_merge_ok
merging zzz2_merge_bad
warning: conflicts during merge.
- merging zzz2_merge_bad incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging zzz2_merge_bad failed!
3 files updated, 1 files merged, 2 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges
[1]
@@ -97,7 +97,7 @@ Local merge with conflicts:
merging zzz1_merge_ok
merging zzz2_merge_bad
warning: conflicts during merge.
- merging zzz2_merge_bad incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging zzz2_merge_bad failed!
2 files updated, 1 files merged, 3 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges
[1]
diff --git a/tests/test-merge-prompt.t b/tests/test-merge-prompt.t
index 43f39c2..58d0f99 100644
--- a/tests/test-merge-prompt.t
+++ b/tests/test-merge-prompt.t
@@ -77,7 +77,7 @@ Interactive merge:
$ status
--- status ---
- file2: * (glob)
+ file2: No such file or directory
C file1
--- file1 ---
1
@@ -133,7 +133,7 @@ Interactive merge with not enough input:
$ status
--- status ---
- file2: * (glob)
+ file2: No such file or directory
C file1
--- file1 ---
1
diff --git a/tests/test-merge-revert2.t b/tests/test-merge-revert2.t
index 4025e56..9f2fc3a 100644
--- a/tests/test-merge-revert2.t
+++ b/tests/test-merge-revert2.t
@@ -45,7 +45,7 @@
$ hg update
merging file1
warning: conflicts during merge.
- merging file1 incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging file1 failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges
[1]
diff --git a/tests/test-merge-symlinks.t b/tests/test-merge-symlinks.t
index 9d50146..2219dbc 100644
--- a/tests/test-merge-symlinks.t
+++ b/tests/test-merge-symlinks.t
@@ -1,3 +1,4 @@
+
$ cat > echo.py <<EOF
> #!/usr/bin/env python
> import os, sys
@@ -59,5 +60,3 @@ merge working directory
HG_OTHER_ISLINK 0
HG_BASE_ISLINK 0
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-
- $ cd ..
diff --git a/tests/test-merge-tools.t b/tests/test-merge-tools.t
index cee56cd..b143be4 100644
--- a/tests/test-merge-tools.t
+++ b/tests/test-merge-tools.t
@@ -31,7 +31,8 @@ revision 3 - simple to merge
$ hg commit -Am "revision 3"
created new head
$ echo "[merge-tools]" > .hg/hgrc
-
+ $ echo
+
$ beforemerge() {
> cat .hg/hgrc
> echo "# hg update -C 1"
@@ -43,10 +44,22 @@ revision 3 - simple to merge
> echo "# hg stat"
> hg stat
> rm -f f.orig
+ > echo
+ > }
+ $ domerge() {
+ > beforemerge
+ > echo "# hg merge $*"
+ > hg merge $*
+ > aftermerge
> }
+ $ echo
+
Tool selection
+ $ echo
+
+
default is internal merge:
$ beforemerge
@@ -60,7 +73,7 @@ running from a devel copy, not a temp installation
$ PATH="$BINDIR" $PYTHON "$BINDIR"/hg merge -r 2
merging f
warning: conflicts during merge.
- merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
@@ -75,167 +88,137 @@ running from a devel copy, not a temp installation
# hg stat
M f
? f.orig
+
simplest hgrc using false for merge:
$ echo "false.whatever=" >> .hg/hgrc
- $ beforemerge
+ $ domerge -r 2
[merge-tools]
false.whatever=
# hg update -C 1
- $ hg merge -r 2
+ # hg merge -r 2
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
-
-unexecutable file in $PATH shouldn't be found:
-
- $ touch false
- $ hg up -qC 1
- $ PATH="`pwd`:$BINDIR" $PYTHON "$BINDIR"/hg merge -r 2
- merging f
- warning: conflicts during merge.
- merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
- 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
- use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ rm false
-
-executable directory in $PATH shouldn't be found:
-
- $ mkdir false
- $ hg up -qC 1
- $ PATH="`pwd`:$BINDIR" $PYTHON "$BINDIR"/hg merge -r 2
- merging f
- warning: conflicts during merge.
- merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
- 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
- use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ rmdir false
+
true with higher .priority gets precedence:
$ echo "true.priority=1" >> .hg/hgrc
- $ beforemerge
+ $ domerge -r 2
[merge-tools]
false.whatever=
true.priority=1
# hg update -C 1
- $ hg merge -r 2
+ # hg merge -r 2
merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
+
unless lowered on command line:
- $ beforemerge
+ $ domerge -r 2 --config merge-tools.true.priority=-7
[merge-tools]
false.whatever=
true.priority=1
# hg update -C 1
- $ hg merge -r 2 --config merge-tools.true.priority=-7
+ # hg merge -r 2 --config merge-tools.true.priority=-7
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
+
or false set higher on command line:
- $ beforemerge
+ $ domerge -r 2 --config merge-tools.false.priority=117
[merge-tools]
false.whatever=
true.priority=1
# hg update -C 1
- $ hg merge -r 2 --config merge-tools.false.priority=117
+ # hg merge -r 2 --config merge-tools.false.priority=117
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
+
or true.executable not found in PATH:
- $ beforemerge
+ $ domerge -r 2 --config merge-tools.true.executable=nonexistingmergetool
[merge-tools]
false.whatever=
true.priority=1
# hg update -C 1
- $ hg merge -r 2 --config merge-tools.true.executable=nonexistingmergetool
+ # hg merge -r 2 --config merge-tools.true.executable=nonexistingmergetool
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
+
or true.executable with bogus path:
- $ beforemerge
+ $ domerge -r 2 --config merge-tools.true.executable=/nonexisting/mergetool
[merge-tools]
false.whatever=
true.priority=1
# hg update -C 1
- $ hg merge -r 2 --config merge-tools.true.executable=/nonexisting/mergetool
+ # hg merge -r 2 --config merge-tools.true.executable=/nonexisting/mergetool
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
+
but true.executable set to cat found in PATH works:
$ echo "true.executable=cat" >> .hg/hgrc
- $ beforemerge
+ $ domerge -r 2
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2
+ # hg merge -r 2
merging f
revision 1
space
@@ -245,22 +228,22 @@ but true.executable set to cat found in PATH works:
space
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
+
and true.executable set to cat with path works:
- $ beforemerge
+ $ domerge -r 2 --config merge-tools.true.executable=cat
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config merge-tools.true.executable=cat
+ # hg merge -r 2 --config merge-tools.true.executable=cat
merging f
revision 1
space
@@ -270,223 +253,199 @@ and true.executable set to cat with path works:
space
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
-
-#if unix-permissions
-
-environment variables in true.executable are handled:
-
- $ echo 'echo "custom merge tool"' > "$HGTMP/merge.sh"
- $ beforemerge
- [merge-tools]
- false.whatever=
- true.priority=1
- true.executable=cat
- # hg update -C 1
- $ hg --config merge-tools.true.executable='sh' \
- > --config merge-tools.true.args="$HGTMP/merge.sh" \
- > merge -r 2
- merging f
- custom merge tool
- 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ aftermerge
- # cat f
- revision 1
- space
- # hg stat
- M f
-
-#endif
+
+ $ echo
+
Tool selection and merge-patterns
+ $ echo
+
+
merge-patterns specifies new tool false:
- $ beforemerge
+ $ domerge -r 2 --config merge-patterns.f=false
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config merge-patterns.f=false
+ # hg merge -r 2 --config merge-patterns.f=false
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
+
merge-patterns specifies executable not found in PATH and gets warning:
- $ beforemerge
+ $ domerge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=nonexistingmergetool
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=nonexistingmergetool
+ # hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=nonexistingmergetool
couldn't find merge tool true specified for f
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
+
merge-patterns specifies executable with bogus path and gets warning:
- $ beforemerge
+ $ domerge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/nonexisting/mergetool
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/nonexisting/mergetool
+ # hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/nonexisting/mergetool
couldn't find merge tool true specified for f
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
+
+ $ echo
+
ui.merge overrules priority
+ $ echo
+
+
ui.merge specifies false:
- $ beforemerge
+ $ domerge -r 2 --config ui.merge=false
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config ui.merge=false
+ # hg merge -r 2 --config ui.merge=false
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
+
ui.merge specifies internal:fail:
- $ beforemerge
+ $ domerge -r 2 --config ui.merge=internal:fail
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config ui.merge=internal:fail
+ # hg merge -r 2 --config ui.merge=internal:fail
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
+
ui.merge specifies internal:local:
- $ beforemerge
+ $ domerge -r 2 --config ui.merge=internal:local
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config ui.merge=internal:local
+ # hg merge -r 2 --config ui.merge=internal:local
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
+
ui.merge specifies internal:other:
- $ beforemerge
+ $ domerge -r 2 --config ui.merge=internal:other
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config ui.merge=internal:other
+ # hg merge -r 2 --config ui.merge=internal:other
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
- $ aftermerge
# cat f
revision 2
space
# hg stat
M f
+
ui.merge specifies internal:prompt:
- $ beforemerge
+ $ domerge -r 2 --config ui.merge=internal:prompt
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config ui.merge=internal:prompt
+ # hg merge -r 2 --config ui.merge=internal:prompt
no tool found to merge f
keep (l)ocal or take (o)ther? l
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
+
ui.merge specifies internal:dump:
- $ beforemerge
+ $ domerge -r 2 --config ui.merge=internal:dump
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config ui.merge=internal:dump
+ # hg merge -r 2 --config ui.merge=internal:dump
merging f
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
@@ -496,6 +455,7 @@ ui.merge specifies internal:dump:
? f.local
? f.orig
? f.other
+
f.base:
@@ -515,127 +475,129 @@ f.other:
revision 2
space
$ rm f.base f.local f.other
+ $ echo
+
ui.merge specifies internal:other but is overruled by pattern for false:
- $ beforemerge
+ $ domerge -r 2 --config ui.merge=internal:other --config merge-patterns.f=false
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config ui.merge=internal:other --config merge-patterns.f=false
+ # hg merge -r 2 --config ui.merge=internal:other --config merge-patterns.f=false
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
+
+ $ echo
+
Premerge
+ $ echo
+
+
ui.merge specifies internal:other but is overruled by --tool=false
- $ beforemerge
+ $ domerge -r 2 --config ui.merge=internal:other --tool=false
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --config ui.merge=internal:other --tool=false
+ # hg merge -r 2 --config ui.merge=internal:other --tool=false
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
-
+
HGMERGE specifies internal:other but is overruled by --tool=false
$ HGMERGE=internal:other ; export HGMERGE
- $ beforemerge
+ $ domerge -r 2 --tool=false
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 2 --tool=false
+ # hg merge -r 2 --tool=false
merging f
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
-
+
$ unset HGMERGE # make sure HGMERGE doesn't interfere with remaining tests
Default is silent simplemerge:
- $ beforemerge
+ $ domerge -r 3
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 3
+ # hg merge -r 3
merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
- $ aftermerge
# cat f
revision 1
space
revision 3
# hg stat
M f
+
.premerge=True is same:
- $ beforemerge
+ $ domerge -r 3 --config merge-tools.true.premerge=True
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 3 --config merge-tools.true.premerge=True
+ # hg merge -r 3 --config merge-tools.true.premerge=True
merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
- $ aftermerge
# cat f
revision 1
space
revision 3
# hg stat
M f
+
.premerge=False executes merge-tool:
- $ beforemerge
+ $ domerge -r 3 --config merge-tools.true.premerge=False
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -r 3 --config merge-tools.true.premerge=False
+ # hg merge -r 3 --config merge-tools.true.premerge=False
merging f
revision 1
space
@@ -646,17 +608,21 @@ Default is silent simplemerge:
revision 3
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
+
+ $ echo
+
Tool execution
-set tools.args explicit to include $base $local $other $output:
-
+ $ echo
+
+ $ echo '# set tools.args explicit to include $base $local $other $output:' # default '$local $base $other'
+ # set tools.args explicit to include $base $local $other $output:
$ beforemerge
[merge-tools]
false.whatever=
@@ -689,9 +655,9 @@ set tools.args explicit to include $base $local $other $output:
space
# hg stat
M f
-
-Merge with "echo mergeresult > $local":
-
+
+ $ echo '# Merge with "echo mergeresult > $local":'
+ # Merge with "echo mergeresult > $local":
$ beforemerge
[merge-tools]
false.whatever=
@@ -707,9 +673,9 @@ Merge with "echo mergeresult > $local":
mergeresult
# hg stat
M f
-
-- and $local is the file f:
-
+
+ $ echo '# - and $local is the file f:'
+ # - and $local is the file f:
$ beforemerge
[merge-tools]
false.whatever=
@@ -725,9 +691,9 @@ Merge with "echo mergeresult > $local":
mergeresult
# hg stat
M f
-
-Merge with "echo mergeresult > $output" - the variable is a bit magic:
-
+
+ $ echo '# Merge with "echo mergeresult > $output" - the variable is a bit magic:'
+ # Merge with "echo mergeresult > $output" - the variable is a bit magic:
$ beforemerge
[merge-tools]
false.whatever=
@@ -743,6 +709,7 @@ Merge with "echo mergeresult > $output" - the variable is a bit magic:
mergeresult
# hg stat
M f
+
Merge using tool with a path that must be quoted:
@@ -753,11 +720,11 @@ Merge using tool with a path that must be quoted:
true.executable=cat
# hg update -C 1
$ cat <<EOF > 'my merge tool'
+ > #!/bin/sh
> cat "\$1" "\$2" "\$3" > "\$4"
> EOF
- $ hg --config merge-tools.true.executable='sh' \
- > --config merge-tools.true.args='"./my merge tool" $base $local $other $output' \
- > merge -r 2
+ $ chmod +x 'my merge tool'
+ $ hg merge -r 2 --config merge-tools.true.executable='./my merge tool' --config merge-tools.true.args='$base $local $other $output'
merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -772,18 +739,24 @@ Merge using tool with a path that must be quoted:
space
# hg stat
M f
+
+ $ echo
+
Merge post-processing
+ $ echo
+
+
cat is a bad merge-tool and doesn't change:
- $ beforemerge
+ $ domerge -y -r 2 --config merge-tools.true.checkchanged=1
[merge-tools]
false.whatever=
true.priority=1
true.executable=cat
# hg update -C 1
- $ hg merge -y -r 2 --config merge-tools.true.checkchanged=1
+ # hg merge -y -r 2 --config merge-tools.true.checkchanged=1
merging f
revision 1
space
@@ -796,11 +769,10 @@ cat is a bad merge-tool and doesn't change:
merging f failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
- [1]
- $ aftermerge
# cat f
revision 1
space
# hg stat
M f
? f.orig
+
diff --git a/tests/test-merge-types.t b/tests/test-merge-types.t
index c51a029..e328399 100644
--- a/tests/test-merge-types.t
+++ b/tests/test-merge-types.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" symlink execbit || exit 80
-
$ hg init
$ echo a > a
@@ -19,8 +17,8 @@
$ hg merge --debug
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: c334dc3be0da, local: 521a1e40188f+, remote: 3574f3e69b1c
+ overwrite None partial False
+ ancestor c334dc3be0da local 521a1e40188f+ remote 3574f3e69b1c
conflicting flags for a
(n)one, e(x)ec or sym(l)ink? n
a: update permissions -> e
@@ -47,8 +45,8 @@ Symlink is local parent, executable is other:
$ hg merge --debug
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: c334dc3be0da, local: 3574f3e69b1c+, remote: 521a1e40188f
+ overwrite None partial False
+ ancestor c334dc3be0da local 3574f3e69b1c+ remote 521a1e40188f
conflicting flags for a
(n)one, e(x)ec or sym(l)ink? n
a: remote is newer -> g
@@ -70,41 +68,3 @@ Symlink is other parent, executable is local:
> fi
a has no flags (default for conflicts)
-Update to link without local change should get us a symlink (issue3316):
-
- $ hg up -C 0
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg up
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg st
-
-Update to link with local change should cause a merge prompt (issue3200):
-
- $ hg up -C 0
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ echo data > a
- $ HGMERGE= hg up -y --debug
- searching for copies back to rev 2
- resolving manifests
- overwrite: False, partial: False
- ancestor: c334dc3be0da, local: c334dc3be0da+, remote: 521a1e40188f
- a: versions differ -> m
- preserving a for resolve of a
- updating: a 1/1 files (100.00%)
- (couldn't find merge tool hgmerge|tool hgmerge can't handle symlinks) (re)
- picked tool 'internal:prompt' for a (binary False symlink True)
- no tool found to merge a
- keep (l)ocal or take (o)ther? l
- 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
- $ hg diff --git
- diff --git a/a b/a
- old mode 120000
- new mode 100644
- --- a/a
- +++ b/a
- @@ -1,1 +1,1 @@
- -symlink
- \ No newline at end of file
- +data
-
-
diff --git a/tests/test-merge1.t b/tests/test-merge1.t
index e0303c9..dfebd5b 100644
--- a/tests/test-merge1.t
+++ b/tests/test-merge1.t
@@ -66,8 +66,7 @@ no merges expected
$ echo This is file b2 > b
merge should fail
$ hg merge 1
- b: untracked file differs
- abort: untracked files in working directory differ from files in requested revision
+ abort: untracked file in working directory differs from file in requested revision: 'b'
[255]
merge of b expected
$ hg merge -f 1
@@ -109,10 +108,10 @@ Contents of b should be "this is file b1"
$ echo This is file b22 > b
merge fails
$ hg merge 2
- abort: outstanding uncommitted changes
- (use 'hg status' to list changes)
+ abort: outstanding uncommitted changes (use 'hg status' to list changes)
[255]
-merge expected!
+ $ echo %% merge expected!
+ %% merge expected!
$ hg merge -f 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -146,8 +145,7 @@ merge expected!
$ echo This is file b33 > b
merge of b should fail
$ hg merge 2
- abort: outstanding uncommitted changes
- (use 'hg status' to list changes)
+ abort: outstanding uncommitted changes (use 'hg status' to list changes)
[255]
merge of b expected
$ hg merge -f 2
@@ -172,5 +170,3 @@ Test for issue2364
$ hg ci -md
$ hg revert -r -2 b
$ hg up -q -- -2
-
- $ cd ..
diff --git a/tests/test-merge10.t b/tests/test-merge10.t
index 0ac57f4..96bd416 100644
--- a/tests/test-merge10.t
+++ b/tests/test-merge10.t
@@ -49,5 +49,3 @@ but then local changes are added in the same directory)
@@ -1,1 +1,1 @@
-a
+alpha
-
- $ cd ..
diff --git a/tests/test-merge2.t b/tests/test-merge2.t
index 4b6d566..b1a9e5a 100644
--- a/tests/test-merge2.t
+++ b/tests/test-merge2.t
@@ -49,5 +49,3 @@
$ hg commit -A -m "commit #2"
adding b
created new head
-
- $ cd ..
diff --git a/tests/test-merge4.t b/tests/test-merge4.t
index d0c27d1..3e6436c 100644
--- a/tests/test-merge4.t
+++ b/tests/test-merge4.t
@@ -16,10 +16,5 @@
(branch merge, don't forget to commit)
$ rm b
$ echo This is file c22 > c
-
-Test hg behaves when committing with a missing file added by a merge
-
$ hg commit -m "commit #3"
- abort: cannot commit merge with missing files
- [255]
diff --git a/tests/test-merge6.t b/tests/test-merge6.t
index 8aee05e..d05dda9 100644
--- a/tests/test-merge6.t
+++ b/tests/test-merge6.t
@@ -66,5 +66,3 @@ bar should remain deleted.
bar should remain deleted.
$ hg manifest --debug
f9b0e817f6a48de3564c6b2957687c5e7297c5a0 644 foo
-
- $ cd ..
diff --git a/tests/test-merge7.t b/tests/test-merge7.t
index 10eed9a..9ae816b 100644
--- a/tests/test-merge7.t
+++ b/tests/test-merge7.t
@@ -45,7 +45,7 @@ now pull and merge from test-a
$ hg merge
merging test.txt
warning: conflicts during merge.
- merging test.txt incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging test.txt failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
@@ -81,8 +81,8 @@ pull and merge from test-a again
$ hg merge --debug
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 96b70246a118, local: 50c3a7e29886+, remote: 40d11a4173a8
+ overwrite None partial False
+ ancestor 96b70246a118 local 50c3a7e29886+ remote 40d11a4173a8
test.txt: versions differ -> m
preserving test.txt for resolve of test.txt
updating: test.txt 1/1 files (100.00%)
@@ -90,7 +90,7 @@ pull and merge from test-a again
merging test.txt
my test.txt@50c3a7e29886+ other test.txt@40d11a4173a8 ancestor test.txt@96b70246a118
warning: conflicts during merge.
- merging test.txt incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging test.txt failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
@@ -105,12 +105,12 @@ pull and merge from test-a again
three
$ hg debugindex test.txt
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 7 ..... 0 01365c4cca56 000000000000 000000000000 (re)
- 1 7 9 ..... 1 7b013192566a 01365c4cca56 000000000000 (re)
- 2 16 15 ..... 2 8fe46a3eb557 01365c4cca56 000000000000 (re)
- 3 31 2. ..... 3 fc3148072371 7b013192566a 8fe46a3eb557 (re)
- 4 5. 25 ..... 4 d40249267ae3 8fe46a3eb557 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 7 0 0 01365c4cca56 000000000000 000000000000
+ 1 7 9 1 1 7b013192566a 01365c4cca56 000000000000
+ 2 16 15 2 2 8fe46a3eb557 01365c4cca56 000000000000
+ 3 31 27 2 3 fc3148072371 7b013192566a 8fe46a3eb557
+ 4 58 25 4 4 d40249267ae3 8fe46a3eb557 000000000000
$ hg log
changeset: 4:40d11a4173a8
@@ -143,5 +143,3 @@ pull and merge from test-a again
date: Thu Jan 01 00:00:00 1970 +0000
summary: Initial
-
- $ cd ..
diff --git a/tests/test-merge8.t b/tests/test-merge8.t
index 9a3a2cd..39054d2 100644
--- a/tests/test-merge8.t
+++ b/tests/test-merge8.t
@@ -25,5 +25,3 @@ Test for changeset ba7c74081861
(run 'hg update' to get a working copy)
$ hg update
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
-
- $ cd ..
diff --git a/tests/test-merge9.t b/tests/test-merge9.t
index 85e06f0..7d8b0e6 100644
--- a/tests/test-merge9.t
+++ b/tests/test-merge9.t
@@ -83,12 +83,10 @@ resolve all
$ hg resolve -a
merging bar
warning: conflicts during merge.
- merging bar incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging bar failed!
[1]
after
$ hg resolve -l
U bar
R baz
-
- $ cd ..
diff --git a/tests/test-minirst.py b/tests/test-minirst.py
index df5fbb6..52475c1 100644
--- a/tests/test-minirst.py
+++ b/tests/test-minirst.py
@@ -1,30 +1,19 @@
from pprint import pprint
from mercurial import minirst
-def debugformat(text, form, **kwargs):
- if form == 'html':
- print "html format:"
- out = minirst.format(text, style=form, **kwargs)
- else:
- print "%d column format:" % form
- out = minirst.format(text, width=form, **kwargs)
-
+def debugformat(title, text, width, **kwargs):
+ print "%s formatted to fit within %d characters:" % (title, width)
print "-" * 70
- if type(out) == tuple:
- print out[0][:-1]
+ formatted = minirst.format(text, width, **kwargs)
+ if type(formatted) == tuple:
+ print formatted[0]
print "-" * 70
- pprint(out[1])
+ pprint(formatted[1])
else:
- print out[:-1]
+ print formatted
print "-" * 70
print
-def debugformats(title, text, **kwargs):
- print "== %s ==" % title
- debugformat(text, 60, **kwargs)
- debugformat(text, 30, **kwargs)
- debugformat(text, 'html', **kwargs)
-
paragraphs = """
This is some text in the first paragraph.
@@ -34,7 +23,9 @@ This is some text in the first paragraph.
\n \n \nThe third and final paragraph.
"""
-debugformats('paragraphs', paragraphs)
+debugformat('paragraphs', paragraphs, 60)
+debugformat('paragraphs', paragraphs, 30)
+
definitions = """
A Term
@@ -49,7 +40,9 @@ Another Term
Definition.
"""
-debugformats('definitions', definitions)
+debugformat('definitions', definitions, 60)
+debugformat('definitions', definitions, 30)
+
literals = r"""
The fully minimized form is the most
@@ -73,7 +66,9 @@ simply ends with space-double-colon. ::
with '::' disappears in the final output.
"""
-debugformats('literals', literals)
+debugformat('literals', literals, 60)
+debugformat('literals', literals, 30)
+
lists = """
- This is the first list item.
@@ -117,7 +112,9 @@ Line blocks are also a form of list:
| This is the second line.
"""
-debugformats('lists', lists)
+debugformat('lists', lists, 60)
+debugformat('lists', lists, 30)
+
options = """
There is support for simple option lists,
@@ -143,7 +140,9 @@ marker after the option. It is treated as a normal paragraph:
--foo bar baz
"""
-debugformats('options', options)
+debugformat('options', options, 60)
+debugformat('options', options, 30)
+
fields = """
:a: First item.
@@ -156,7 +155,8 @@ Next list:
:much too large: This key is big enough to get its own line.
"""
-debugformats('fields', fields)
+debugformat('fields', fields, 60)
+debugformat('fields', fields, 30)
containers = """
Normal output.
@@ -174,14 +174,14 @@ Normal output.
Debug output.
"""
-debugformats('containers (normal)', containers)
-debugformats('containers (verbose)', containers, keep=['verbose'])
-debugformats('containers (debug)', containers, keep=['debug'])
-debugformats('containers (verbose debug)', containers,
+debugformat('containers (normal)', containers, 60)
+debugformat('containers (verbose)', containers, 60, keep=['verbose'])
+debugformat('containers (debug)', containers, 60, keep=['debug'])
+debugformat('containers (verbose debug)', containers, 60,
keep=['verbose', 'debug'])
roles = """Please see :hg:`add`."""
-debugformats('roles', roles)
+debugformat('roles', roles, 60)
sections = """
@@ -197,7 +197,7 @@ Subsection
Markup: ``foo`` and :hg:`help`
------------------------------
"""
-debugformats('sections', sections)
+debugformat('sections', sections, 20)
admonitions = """
@@ -214,7 +214,7 @@ admonitions = """
This is danger
"""
-debugformats('admonitions', admonitions)
+debugformat('admonitions', admonitions, 30)
comments = """
Some text.
@@ -230,16 +230,4 @@ Some text.
Empty comment above
"""
-debugformats('comments', comments)
-
-
-data = [['a', 'b', 'c'],
- ['1', '2', '3'],
- ['foo', 'bar', 'baz this list is very very very long man']]
-
-rst = minirst.maketable(data, 2, True)
-table = ''.join(rst)
-
-print table
-
-debugformats('table', table)
+debugformat('comments', comments, 30)
diff --git a/tests/test-minirst.py.out b/tests/test-minirst.py.out
index c2562ac..77e9537 100644
--- a/tests/test-minirst.py.out
+++ b/tests/test-minirst.py.out
@@ -1,5 +1,4 @@
-== paragraphs ==
-60 column format:
+paragraphs formatted to fit within 60 characters:
----------------------------------------------------------------------
This is some text in the first paragraph.
@@ -9,7 +8,7 @@ This is some text in the first paragraph.
The third and final paragraph.
----------------------------------------------------------------------
-30 column format:
+paragraphs formatted to fit within 30 characters:
----------------------------------------------------------------------
This is some text in the first
paragraph.
@@ -22,23 +21,7 @@ paragraph.
The third and final paragraph.
----------------------------------------------------------------------
-html format:
-----------------------------------------------------------------------
-<p>
-This is some text in the first paragraph.
-</p>
-<p>
-A small indented paragraph.
-It is followed by some lines
-containing random whitespace.
-</p>
-<p>
-The third and final paragraph.
-</p>
-----------------------------------------------------------------------
-
-== definitions ==
-60 column format:
+definitions formatted to fit within 60 characters:
----------------------------------------------------------------------
A Term
Definition. The indented lines make up the definition.
@@ -52,7 +35,7 @@ Another Term
Definition.
----------------------------------------------------------------------
-30 column format:
+definitions formatted to fit within 30 characters:
----------------------------------------------------------------------
A Term
Definition. The indented
@@ -71,20 +54,7 @@ Another Term
Definition.
----------------------------------------------------------------------
-html format:
-----------------------------------------------------------------------
-<dl>
- <dt>A Term
- <dd>Definition. The indented lines make up the definition.
- <dt>Another Term
- <dd>Another definition. The final line in the definition determines the indentation, so this will be indented with four spaces.
- <dt>A Nested/Indented Term
- <dd>Definition.
-</dl>
-----------------------------------------------------------------------
-
-== literals ==
-60 column format:
+literals formatted to fit within 60 characters:
----------------------------------------------------------------------
The fully minimized form is the most convenient form:
@@ -104,7 +74,7 @@ space-double-colon.
with '::' disappears in the final output.
----------------------------------------------------------------------
-30 column format:
+literals formatted to fit within 30 characters:
----------------------------------------------------------------------
The fully minimized form is
the most convenient form:
@@ -126,35 +96,7 @@ with space-double-colon.
with '::' disappears in the final output.
----------------------------------------------------------------------
-html format:
-----------------------------------------------------------------------
-<p>
-The fully minimized form is the most
-convenient form:
-</p>
-<pre>
-Hello
- literal
- world
-</pre>
-<p>
-In the partially minimized form a paragraph
-simply ends with space-double-colon.
-</p>
-<pre>
-////////////////////////////////////////
-long un-wrapped line in a literal block
-\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
-</pre>
-<pre>
-This literal block is started with '::',
- the so-called expanded form. The paragraph
- with '::' disappears in the final output.
-</pre>
-----------------------------------------------------------------------
-
-== lists ==
-60 column format:
+lists formatted to fit within 60 characters:
----------------------------------------------------------------------
- This is the first list item.
@@ -189,7 +131,7 @@ This is the first line. The line continues here.
This is the second line.
----------------------------------------------------------------------
-30 column format:
+lists formatted to fit within 30 characters:
----------------------------------------------------------------------
- This is the first list item.
@@ -233,53 +175,7 @@ line continues here.
This is the second line.
----------------------------------------------------------------------
-html format:
-----------------------------------------------------------------------
-<ul>
- <li> This is the first list item.
-<p>
-Second paragraph in the first list item.
-</p>
- <li> List items need not be separated by a blank line.
- <li> And will be rendered without one in any case.
-</ul>
-<p>
-We can have indented lists:
-</p>
-<ul>
- <li> This is an indented list item
- <li> Another indented list item:
-<pre>
-- A literal block in the middle
- of an indented list.
-</pre>
-<pre>
-(The above is not a list item since we are in the literal block.)
-</pre>
-</ul>
-<pre>
-Literal block with no indentation (apart from
-the two spaces added to all literal blocks).
-</pre>
-<ol>
- <li> This is an enumerated list (first item).
- <li> Continuing with the second item.
- <li> foo
- <li> bar
- <li> Another
- <li> List
-</ol>
-<p>
-Line blocks are also a form of list:
-</p>
-<ol>
- <li> This is the first line. The line continues here.
- <li> This is the second line.
-</ol>
-----------------------------------------------------------------------
-
-== options ==
-60 column format:
+options formatted to fit within 60 characters:
----------------------------------------------------------------------
There is support for simple option lists, but only with long
options:
@@ -306,7 +202,7 @@ paragraph:
--foo bar baz
----------------------------------------------------------------------
-30 column format:
+options formatted to fit within 30 characters:
----------------------------------------------------------------------
There is support for simple
option lists, but only with
@@ -378,123 +274,45 @@ normal paragraph:
--foo bar baz
----------------------------------------------------------------------
-html format:
-----------------------------------------------------------------------
-<p>
-There is support for simple option lists,
-but only with long options:
-</p>
-<dl>
- <dt>-X --exclude filter
- <dd>an option with a short and long option with an argument
- <dt>-I --include
- <dd>an option with both a short option and a long option
- <dt> --all
- <dd>Output all.
- <dt> --both
- <dd>Output both (this description is quite long).
- <dt> --long
- <dd>Output all day long.
- <dt> --par
- <dd>This option has two paragraphs in its description. This is the first.
-<p>
-This is the second. Blank lines may be omitted between
-options (as above) or left in (as here).
-</p>
-</dl>
-<p>
-The next paragraph looks like an option list, but lacks the two-space
-marker after the option. It is treated as a normal paragraph:
-</p>
-<p>
---foo bar baz
-</p>
+fields formatted to fit within 60 characters:
----------------------------------------------------------------------
-
-== fields ==
-60 column format:
-----------------------------------------------------------------------
-a First item.
-ab Second item. Indentation and wrapping is
- handled automatically.
+a First item.
+ab Second item. Indentation and wrapping is handled
+ automatically.
Next list:
-small The larger key below triggers full indentation
- here.
+small The larger key below triggers full indentation
+ here.
much too large
- This key is big enough to get its own line.
+ This key is big enough to get its own line.
----------------------------------------------------------------------
-30 column format:
+fields formatted to fit within 30 characters:
----------------------------------------------------------------------
-a First item.
-ab Second item.
- Indentation and
- wrapping is
- handled
- automatically.
+a First item.
+ab Second item. Indentation
+ and wrapping is handled
+ automatically.
Next list:
-small The larger key
- below triggers
- full indentation
- here.
+small The larger key
+ below triggers
+ full indentation
+ here.
much too large
- This key is big
- enough to get
- its own line.
-----------------------------------------------------------------------
-
-html format:
-----------------------------------------------------------------------
-<dl>
- <dt>a
- <dd>First item.
- <dt>ab
- <dd>Second item. Indentation and wrapping is handled automatically.
-</dl>
-<p>
-Next list:
-</p>
-<dl>
- <dt>small
- <dd>The larger key below triggers full indentation here.
- <dt>much too large
- <dd>This key is big enough to get its own line.
-</dl>
-----------------------------------------------------------------------
-
-== containers (normal) ==
-60 column format:
-----------------------------------------------------------------------
-Normal output.
-----------------------------------------------------------------------
-
-30 column format:
-----------------------------------------------------------------------
-Normal output.
-----------------------------------------------------------------------
-
-html format:
-----------------------------------------------------------------------
-<p>
-Normal output.
-</p>
+ This key is big
+ enough to get its
+ own line.
----------------------------------------------------------------------
-== containers (verbose) ==
-60 column format:
+containers (normal) formatted to fit within 60 characters:
----------------------------------------------------------------------
Normal output.
-
-Verbose output.
-----------------------------------------------------------------------
-['debug', 'debug']
----------------------------------------------------------------------
-30 column format:
+containers (verbose) formatted to fit within 60 characters:
----------------------------------------------------------------------
Normal output.
@@ -503,64 +321,16 @@ Verbose output.
['debug', 'debug']
----------------------------------------------------------------------
-html format:
+containers (debug) formatted to fit within 60 characters:
----------------------------------------------------------------------
-<p>
Normal output.
-</p>
-<p>
-Verbose output.
-</p>
-----------------------------------------------------------------------
-['debug', 'debug']
-----------------------------------------------------------------------
-
-== containers (debug) ==
-60 column format:
-----------------------------------------------------------------------
-Normal output.
-
-Initial debug output.
-----------------------------------------------------------------------
-['verbose']
-----------------------------------------------------------------------
-
-30 column format:
-----------------------------------------------------------------------
-Normal output.
-
-Initial debug output.
-----------------------------------------------------------------------
-['verbose']
-----------------------------------------------------------------------
-html format:
-----------------------------------------------------------------------
-<p>
-Normal output.
-</p>
-<p>
Initial debug output.
-</p>
----------------------------------------------------------------------
['verbose']
----------------------------------------------------------------------
-== containers (verbose debug) ==
-60 column format:
-----------------------------------------------------------------------
-Normal output.
-
-Initial debug output.
-
-Verbose output.
-
-Debug output.
-----------------------------------------------------------------------
-[]
-----------------------------------------------------------------------
-
-30 column format:
+containers (verbose debug) formatted to fit within 60 characters:
----------------------------------------------------------------------
Normal output.
@@ -573,59 +343,12 @@ Debug output.
[]
----------------------------------------------------------------------
-html format:
-----------------------------------------------------------------------
-<p>
-Normal output.
-</p>
-<p>
-Initial debug output.
-</p>
-<p>
-Verbose output.
-</p>
-<p>
-Debug output.
-</p>
-----------------------------------------------------------------------
-[]
-----------------------------------------------------------------------
-
-== roles ==
-60 column format:
-----------------------------------------------------------------------
-Please see "hg add".
-----------------------------------------------------------------------
-
-30 column format:
+roles formatted to fit within 60 characters:
----------------------------------------------------------------------
Please see "hg add".
----------------------------------------------------------------------
-html format:
-----------------------------------------------------------------------
-<p>
-Please see "hg add".
-</p>
-----------------------------------------------------------------------
-
-== sections ==
-60 column format:
-----------------------------------------------------------------------
-Title
-=====
-
-Section
--------
-
-Subsection
-''''''''''
-
-Markup: "foo" and "hg help"
----------------------------
-----------------------------------------------------------------------
-
-30 column format:
+sections formatted to fit within 20 characters:
----------------------------------------------------------------------
Title
=====
@@ -640,31 +363,7 @@ Markup: "foo" and "hg help"
---------------------------
----------------------------------------------------------------------
-html format:
-----------------------------------------------------------------------
-<h1>Title</h1>
-<h2>Section</h2>
-<h3>Subsection</h3>
-<h2>Markup: "foo" and "hg help"</h2>
-----------------------------------------------------------------------
-
-== admonitions ==
-60 column format:
-----------------------------------------------------------------------
-Note:
- This is a note
-
- - Bullet 1
- - Bullet 2
-
- Warning!
- This is a warning Second input line of warning
-
-!Danger!
- This is danger
-----------------------------------------------------------------------
-
-30 column format:
+admonitions formatted to fit within 30 characters:
----------------------------------------------------------------------
Note:
This is a note
@@ -680,25 +379,7 @@ Note:
This is danger
----------------------------------------------------------------------
-html format:
-----------------------------------------------------------------------
-<p>
-<b>Note:</b> This is a note
-</p>
-<ul>
- <li> Bullet 1
- <li> Bullet 2
-</ul>
-<p>
-<b>Warning!</b> This is a warning Second input line of warning
-</p>
-<p>
-<b>!Danger!</b> This is danger
-</p>
-----------------------------------------------------------------------
-
-== comments ==
-60 column format:
+comments formatted to fit within 30 characters:
----------------------------------------------------------------------
Some text.
@@ -707,60 +388,3 @@ Some text.
Empty comment above
----------------------------------------------------------------------
-30 column format:
-----------------------------------------------------------------------
-Some text.
-
- Some indented text.
-
-Empty comment above
-----------------------------------------------------------------------
-
-html format:
-----------------------------------------------------------------------
-<p>
-Some text.
-</p>
-<p>
-Some indented text.
-</p>
-<p>
-Empty comment above
-</p>
-----------------------------------------------------------------------
-
- === === ========================================
- a b c
- === === ========================================
- 1 2 3
- foo bar baz this list is very very very long man
- === === ========================================
-
-== table ==
-60 column format:
-----------------------------------------------------------------------
- a b c
- ------------------------------------------------
- 1 2 3
- foo bar baz this list is very very very long man
-----------------------------------------------------------------------
-
-30 column format:
-----------------------------------------------------------------------
- a b c
- ------------------------------
- 1 2 3
- foo bar baz this list is
- very very very long
- man
-----------------------------------------------------------------------
-
-html format:
-----------------------------------------------------------------------
-<table>
- <tr><th>a</th><th>b</th><th>c</th></tr>
- <tr><td>1</td><td>2</td><td>3</td></tr>
- <tr><td>foo</td><td>bar</td><td>baz this list is very very very long man</td></tr>
-</table>
-----------------------------------------------------------------------
-
diff --git a/tests/test-mq-caches.t b/tests/test-mq-caches.t
index f74a528..5791aa0 100644
--- a/tests/test-mq-caches.t
+++ b/tests/test-mq-caches.t
@@ -26,7 +26,7 @@
mq patch on an empty repo
- $ hg qnew -d '0 0' p1
+ $ hg qnew p1
$ show_branch_cache
tip: 0
No branch cache
@@ -36,8 +36,7 @@ mq patch on an empty repo
$ hg qrefresh -m 'patch 1'
$ show_branch_cache
tip: 0
- d986d5caac23a7d44a46efc0ddaf5eb9665844cf 0
- d986d5caac23a7d44a46efc0ddaf5eb9665844cf default
+ No branch cache
some regular revisions
@@ -70,14 +69,14 @@ add some mq patches
c229711f16da3d7591f89b1b8d963b79bda22714 bar
dc25e3827021582e979f600811852e36cbe57341 foo
- $ hg qnew -d '0 0' p2
+ $ hg qnew p2
$ echo foo > .hg/branch
$ echo foo2 >> foo
$ hg qrefresh -m 'patch 2'
$ show_branch_cache 1
tip: 3
- 982611f6955f9c48d3365decea203217c945ef0d 2
- 982611f6955f9c48d3365decea203217c945ef0d bar
+ c229711f16da3d7591f89b1b8d963b79bda22714 1
+ c229711f16da3d7591f89b1b8d963b79bda22714 bar
dc25e3827021582e979f600811852e36cbe57341 foo
branch foo: 3
branch bar: 2
@@ -123,4 +122,3 @@ detect an invalid cache
dc25e3827021582e979f600811852e36cbe57341 0
dc25e3827021582e979f600811852e36cbe57341 foo
- $ cd ..
diff --git a/tests/test-mq-guards.t b/tests/test-mq-guards.t
index 4ab4ac9..b02c698 100644
--- a/tests/test-mq-guards.t
+++ b/tests/test-mq-guards.t
@@ -107,9 +107,6 @@ should skip c.patch
applying b.patch
skipping c.patch - guarded by '-a'
now at: b.patch
- $ hg qnext
- all patches applied
- [1]
should display b.patch
@@ -172,8 +169,6 @@ should push b.patch
$ hg qpush -a
applying c.patch
now at: c.patch
- $ hg qprev
- b.patch
Used to be an issue with holes in the patch sequence
So, put one hole on the base and ask for topmost patch.
@@ -439,71 +434,3 @@ hg qseries -m with color
$ hg --config extensions.color= --config color.mode=ansi qseries -m --color=always
\x1b[0;31;1mb.patch\x1b[0m (esc)
-
-
-excercise cornercases in "qselect --reapply"
-
- $ hg qpop -a
- popping c.patch
- popping new.patch
- patch queue now empty
- $ hg qguard -- new.patch -not-new
- $ hg qguard -- c.patch -not-c
- $ hg qguard -- d.patch -not-d
- $ hg qpush -a
- applying new.patch
- applying c.patch
- applying d.patch
- patch d.patch is empty
- now at: d.patch
- $ hg qguard -l
- new.patch: -not-new
- c.patch: -not-c
- d.patch: -not-d
- $ hg qselect --reapply not-d
- popping guarded patches
- popping d.patch
- now at: c.patch
- reapplying unguarded patches
- cannot push 'd.patch' - guarded by '-not-d'
- $ hg qser -v
- 0 A new.patch
- 1 A c.patch
- 2 G d.patch
- $ hg qselect --reapply -n
- guards deactivated
- $ hg qpush
- applying d.patch
- patch d.patch is empty
- now at: d.patch
- $ hg qser -v
- 0 A new.patch
- 1 A c.patch
- 2 A d.patch
- $ hg qselect --reapply not-c
- popping guarded patches
- popping d.patch
- popping c.patch
- now at: new.patch
- reapplying unguarded patches
- applying d.patch
- patch d.patch is empty
- now at: d.patch
- $ hg qser -v
- 0 A new.patch
- 1 G c.patch
- 2 A d.patch
- $ hg qselect --reapply not-new
- popping guarded patches
- popping d.patch
- popping new.patch
- patch queue now empty
- reapplying unguarded patches
- applying c.patch
- applying d.patch
- patch d.patch is empty
- now at: d.patch
- $ hg qser -v
- 0 G new.patch
- 1 A c.patch
- 2 A d.patch
diff --git a/tests/test-mq-header-from.t b/tests/test-mq-header-from.t
index 64668ec..b297f13 100644
--- a/tests/test-mq-header-from.t
+++ b/tests/test-mq-header-from.t
@@ -967,5 +967,3 @@
2: Three (again) - maria
1: imported patch 2.patch - jane
0: imported patch 1.patch - mary
-
- $ cd ..
diff --git a/tests/test-mq-merge.t b/tests/test-mq-merge.t
index 955134a..f1640d2 100644
--- a/tests/test-mq-merge.t
+++ b/tests/test-mq-merge.t
@@ -56,7 +56,7 @@ Create a patch removing a:
Save the patch queue so we can merge it later:
$ hg qsave -c -e
- copy $TESTTMP/t/.hg/patches to $TESTTMP/t/.hg/patches.1 (glob)
+ copy $TESTTMP/t/.hg/patches to $TESTTMP/t/.hg/patches.1
$ checkundo
Update b and commit in an "update" changeset:
@@ -76,7 +76,7 @@ Update b and commit in an "update" changeset:
b
$ hg qpush -a -m
- merging with queue at: $TESTTMP/t/.hg/patches.1 (glob)
+ merging with queue at: $TESTTMP/t/.hg/patches.1
applying rm_a
now at: rm_a
@@ -115,20 +115,22 @@ Classic MQ merge sequence *with an explicit named queue*:
Create the reference queue:
$ hg qsave -c -e -n refqueue
- copy $TESTTMP/t2/.hg/patches to $TESTTMP/t2/.hg/refqueue (glob)
+ copy $TESTTMP/t2/.hg/patches to $TESTTMP/t2/.hg/refqueue
$ hg up -C 1
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Merge:
$ HGMERGE=internal:other hg qpush -a -m -n refqueue
- merging with queue at: $TESTTMP/t2/.hg/refqueue (glob)
+ merging with queue at: $TESTTMP/t2/.hg/refqueue
applying patcha
patching file a
- Hunk #1 succeeded at 2 with fuzz 1 (offset 0 lines).
- fuzz found when applying patch, stopping
+ Hunk #1 FAILED at 0
+ 1 out of 1 hunks FAILED -- saving rejects to file a.rej
+ patch failed, unable to continue (try -v)
+ patch failed, rejects left in working dir
patch didn't work out, merging patcha
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
applying patcha2
@@ -147,11 +149,13 @@ Check patcha is still a git patch:
-b
+a
+c
- diff --git a/aa b/aa
- new file mode 100644
- --- /dev/null
+ diff --git a/a b/aa
+ copy from a
+ copy to aa
+ --- a/a
+++ b/aa
- @@ -0,0 +1,1 @@
+ @@ -1,1 +1,1 @@
+ -b
+a
Check patcha2 is still a regular patch:
diff --git a/tests/test-mq-missingfiles.t b/tests/test-mq-missingfiles.t
index 6897ff0..9217abd 100644
--- a/tests/test-mq-missingfiles.t
+++ b/tests/test-mq-missingfiles.t
@@ -73,53 +73,6 @@ Display rejections:
+c
+c
-Test missing renamed file
-
- $ hg qpop
- popping changeb
- patch queue now empty
- $ hg up -qC 0
- $ echo a > a
- $ hg mv b bb
- $ python ../writelines.py bb 2 'b\n' 10 'a\n' 2 'c\n'
- $ echo c > c
- $ hg add a c
- $ hg qnew changebb
- $ hg qpop
- popping changebb
- patch queue now empty
- $ hg up -qC 1
- $ hg qpush
- applying changebb
- patching file bb
- Hunk #1 FAILED at 0
- Hunk #2 FAILED at 7
- 2 out of 2 hunks FAILED -- saving rejects to file bb.rej
- b not tracked!
- patch failed, unable to continue (try -v)
- patch failed, rejects left in working dir
- errors during apply, please fix and refresh changebb
- [2]
- $ cat a
- a
- $ cat c
- c
- $ cat bb.rej
- --- bb
- +++ bb
- @@ -1,3 +1,5 @@
- +b
- +b
- a
- a
- a
- @@ -8,3 +10,5 @@
- a
- a
- a
- +c
- +c
-
$ cd ..
diff --git a/tests/test-mq-qclone-http.t b/tests/test-mq-qclone-http.t
index 4c92f4a..7170118 100644
--- a/tests/test-mq-qclone-http.t
+++ b/tests/test-mq-qclone-http.t
@@ -1,7 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
-hide outer repo
- $ hg init
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
@@ -34,7 +30,7 @@ test with recursive collection
$ hg serve -p $HGPORT -d --pid-file=hg.pid --webdir-conf collections.conf \
> -A access-paths.log -E error-paths-1.log
$ cat hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?style=raw'
200 Script output follows
@@ -73,7 +69,7 @@ test with normal collection
$ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf collections1.conf \
> -A access-paths.log -E error-paths-1.log
$ cat hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=raw'
200 Script output follows
@@ -112,7 +108,7 @@ test with old-style collection
$ hg serve -p $HGPORT2 -d --pid-file=hg.pid --webdir-conf collections2.conf \
> -A access-paths.log -E error-paths-1.log
$ cat hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '?style=raw'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/?style=raw'
200 Script output follows
diff --git a/tests/test-mq-qdelete.t b/tests/test-mq-qdelete.t
index 2729a4d..a5fc08f 100644
--- a/tests/test-mq-qdelete.t
+++ b/tests/test-mq-qdelete.t
@@ -188,10 +188,7 @@ more complex state 'both known and unknown patches
$ echo > .hg/patches/series # remove 4.diff and 5.diff from series to confuse mq
$ echo hup >> base
$ hg qnew -f -d '1 0' -m 6 6.diff
- $ echo pup > base
$ hg qfinish -a
- warning: uncommitted changes in the working directory
revision 2b1c98802260 refers to unknown patches: 5.diff
revision 33a6861311c0 refers to unknown patches: 4.diff
- $ cd ..
diff --git a/tests/test-mq-qdiff.t b/tests/test-mq-qdiff.t
index 905a970..27db5a9 100644
--- a/tests/test-mq-qdiff.t
+++ b/tests/test-mq-qdiff.t
@@ -98,7 +98,7 @@ qdiff filename:
diff -r b0c220e1cf43 lines
--- a/lines
+++ b/lines
- @@ -4,4 +4,4 @@
+ @@ -4,4 +6,4 @@
4
-hello world
-goodbye world
@@ -173,5 +173,3 @@ qdiff when file deleted (but not removed) in working dir:
$ hg qrefresh
$ rm newfile
$ hg qdiff
-
- $ cd ..
diff --git a/tests/test-mq-qgoto.t b/tests/test-mq-qgoto.t
index 891b3dd..ae2073d 100644
--- a/tests/test-mq-qgoto.t
+++ b/tests/test-mq-qgoto.t
@@ -75,4 +75,3 @@ Detect ambiguous non-index:
abort: patch 14 not in series
[255]
- $ cd ..
diff --git a/tests/test-mq-qimport-fail-cleanup.t b/tests/test-mq-qimport-fail-cleanup.t
index a4ae565..7186989 100644
--- a/tests/test-mq-qimport-fail-cleanup.t
+++ b/tests/test-mq-qimport-fail-cleanup.t
@@ -16,10 +16,14 @@ imported patches in series file.
> a
> +b
> EOF
+ $ echo
+
empty series
$ hg qseries
+ $ echo
+
qimport valid patch followed by invalid patch
@@ -27,16 +31,10 @@ qimport valid patch followed by invalid patch
adding b.patch to series file
abort: unable to read file fakepatch
[255]
+ $ echo
+
valid patches before fail added to series
$ hg qseries
b.patch
-
- $ hg pull -q -r 0 . # update phase
- $ hg qimport -r 0
- abort: revision 0 is not mutable
- (see "hg help phases" for details)
- [255]
-
- $ cd ..
diff --git a/tests/test-mq-qimport.t b/tests/test-mq-qimport.t
index 52b3568..c2248ca 100644
--- a/tests/test-mq-qimport.t
+++ b/tests/test-mq-qimport.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
$ cat > writelines.py <<EOF
> import sys
@@ -22,26 +21,12 @@
$ hg init repo
$ cd repo
-qimport without file or revision
-
- $ hg qimport
- abort: no files or revisions specified
- [255]
-
qimport non-existing-file
$ hg qimport non-existing-file
abort: unable to read file non-existing-file
[255]
-qimport null revision
-
- $ hg qimport -r null
- abort: revision -1 is not mutable
- (see "hg help phases" for details)
- [255]
- $ hg qseries
-
import email
$ hg qimport --push -n email - <<EOF
@@ -167,41 +152,21 @@ qimport CRLF diff
try to import --push
- $ cat > appendfoo.diff <<EOF
- > append foo
- >
- > diff -r 07f494440405 -r 261500830e46 baz
- > --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- > +++ b/baz Thu Jan 01 00:00:00 1970 +0000
- > @@ -0,0 +1,1 @@
- > +foo
- > EOF
-
- $ cat > appendbar.diff <<EOF
- > append bar
- >
- > diff -r 07f494440405 -r 261500830e46 baz
- > --- a/baz Thu Jan 01 00:00:00 1970 +0000
- > +++ b/baz Thu Jan 01 00:00:00 1970 +0000
- > @@ -1,1 +1,2 @@
- > foo
- > +bar
- > EOF
-
- $ hg qimport --push appendfoo.diff appendbar.diff
- adding appendfoo.diff to series file
- adding appendbar.diff to series file
- applying appendfoo.diff
- applying appendbar.diff
- now at: appendbar.diff
+ $ echo another >> b
+ $ hg diff > another.diff
+ $ hg up -C
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg qimport --push another.diff
+ adding another.diff to series file
+ applying another.diff
+ now at: another.diff
$ hg qfin -a
patch b.diff finalized without changeset message
- $ hg qimport -r 'p1(.)::' -P
+ patch another.diff finalized without changeset message
+ $ hg qimport -rtip -P
$ hg qpop -a
- popping 3.diff
popping 2.diff
patch queue now empty
- $ hg qdel 3.diff
$ hg qdel -k 2.diff
qimport -e
@@ -260,21 +225,3 @@ set up hgweb
$ cd ../repo
$ hg qimport http://localhost:$HGPORT/raw-rev/0///
adding 0 to series file
-
-check qimport phase:
-
- $ hg -q qpush
- now at: 0
- $ hg phase qparent
- 1: draft
- $ hg qimport -r qparent
- $ hg phase qbase
- 1: draft
- $ hg qfinish qbase
- $ echo '[mq]' >> $HGRCPATH
- $ echo 'secret=true' >> $HGRCPATH
- $ hg qimport -r qparent
- $ hg phase qbase
- 1: secret
-
- $ cd ..
diff --git a/tests/test-mq-qnew.t b/tests/test-mq-qnew.t
index 7400cad..d8ff633 100644
--- a/tests/test-mq-qnew.t
+++ b/tests/test-mq-qnew.t
@@ -111,7 +111,7 @@ plain headers
abort: "#" cannot be used in the name of a patch
abort: ":" cannot be used in the name of a patch
% qnew with name containing slash
- abort: path ends in directory separator: foo/ (glob)
+ abort: path ends in directory separator: foo/
abort: "foo" already exists as a directory
foo/bar.patch
popping foo/bar.patch
@@ -123,7 +123,7 @@ plain headers
A series
A uncommitted.patch
% qnew missing
- abort: missing: * (glob)
+ abort: missing: No such file or directory
% qnew -m
foo bar
@@ -155,7 +155,7 @@ plain headers
created new head
merging a
warning: conflicts during merge.
- merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging a failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
abort: cannot manage merge changesets
@@ -178,7 +178,7 @@ hg headers
abort: "#" cannot be used in the name of a patch
abort: ":" cannot be used in the name of a patch
% qnew with name containing slash
- abort: path ends in directory separator: foo/ (glob)
+ abort: path ends in directory separator: foo/
abort: "foo" already exists as a directory
foo/bar.patch
popping foo/bar.patch
@@ -190,7 +190,7 @@ hg headers
A series
A uncommitted.patch
% qnew missing
- abort: missing: * (glob)
+ abort: missing: No such file or directory
% qnew -m
# HG changeset patch
# Parent
@@ -228,7 +228,7 @@ hg headers
created new head
merging a
warning: conflicts during merge.
- merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging a failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
abort: cannot manage merge changesets
diff --git a/tests/test-mq-qpush-exact.t b/tests/test-mq-qpush-exact.t
index 99fb74e..db5f55b 100644
--- a/tests/test-mq-qpush-exact.t
+++ b/tests/test-mq-qpush-exact.t
@@ -286,4 +286,3 @@ qpush --exact a patch without a parent recorded
abort: p0 does not have a parent recorded
[255]
- $ cd ..
diff --git a/tests/test-mq-qpush-fail.t b/tests/test-mq-qpush-fail.t
index 44379cd..0521381 100644
--- a/tests/test-mq-qpush-fail.t
+++ b/tests/test-mq-qpush-fail.t
@@ -150,277 +150,3 @@ and now we try it one more time with a unguarded, while we're not at the top of
abort: cannot push to a previous patch: a
[255]
-test qpop --force and backup files
-
- $ hg qpop -a
- popping b
- patch queue now empty
- $ hg qq --create force
- $ echo a > a
- $ echo b > b
- $ echo c > c
- $ hg ci -Am add a b c
- $ echo a >> a
- $ hg rm b
- $ hg rm c
- $ hg qnew p1
- $ echo a >> a
- $ echo bb > b
- $ hg add b
- $ echo cc > c
- $ hg add c
- $ hg qpop --force --verbose
- saving current version of a as a.orig
- saving current version of b as b.orig
- saving current version of c as c.orig
- popping p1
- patch queue now empty
- $ hg st
- ? a.orig
- ? b.orig
- ? c.orig
- ? untracked-file
- $ cat a.orig
- a
- a
- a
- $ cat b.orig
- bb
- $ cat c.orig
- cc
-
-test qpop --force --no-backup
-
- $ hg qpush
- applying p1
- now at: p1
- $ rm a.orig
- $ echo a >> a
- $ hg qpop --force --no-backup --verbose
- popping p1
- patch queue now empty
- $ test -f a.orig && echo 'error: backup with --no-backup'
- [1]
-
-test qpop --keep-changes
-
- $ hg qpush
- applying p1
- now at: p1
- $ hg qpop --keep-changes --force
- abort: cannot use both --force and --keep-changes
- [255]
- $ echo a >> a
- $ hg qpop --keep-changes
- abort: local changes found, refresh first
- [255]
- $ hg revert -qa a
- $ rm a
- $ hg qpop --keep-changes
- abort: local changes found, refresh first
- [255]
- $ hg rm -A a
- $ hg qpop --keep-changes
- abort: local changes found, refresh first
- [255]
- $ hg revert -qa a
- $ echo b > b
- $ hg add b
- $ hg qpop --keep-changes
- abort: local changes found, refresh first
- [255]
- $ hg forget b
- $ echo d > d
- $ hg add d
- $ hg qpop --keep-changes
- popping p1
- patch queue now empty
- $ hg forget d
- $ rm d
-
-test qpush --force and backup files
-
- $ echo a >> a
- $ hg qnew p2
- $ echo b >> b
- $ echo d > d
- $ echo e > e
- $ hg add d e
- $ hg rm c
- $ hg qnew p3
- $ hg qpop -a
- popping p3
- popping p2
- patch queue now empty
- $ echo a >> a
- $ echo b1 >> b
- $ echo d1 > d
- $ hg add d
- $ echo e1 > e
- $ hg qpush -a --force --verbose
- applying p2
- saving current version of a as a.orig
- patching file a
- a
- applying p3
- saving current version of b as b.orig
- saving current version of d as d.orig
- patching file b
- patching file c
- patching file d
- file d already exists
- 1 out of 1 hunks FAILED -- saving rejects to file d.rej
- patching file e
- file e already exists
- 1 out of 1 hunks FAILED -- saving rejects to file e.rej
- patch failed to apply
- b
- patch failed, rejects left in working dir
- errors during apply, please fix and refresh p3
- [2]
- $ cat a.orig
- a
- a
- $ cat b.orig
- b
- b1
- $ cat d.orig
- d1
-
-test qpush --force --no-backup
-
- $ hg revert -qa
- $ hg qpop -a
- popping p3
- popping p2
- patch queue now empty
- $ echo a >> a
- $ rm a.orig
- $ hg qpush --force --no-backup --verbose
- applying p2
- patching file a
- a
- now at: p2
- $ test -f a.orig && echo 'error: backup with --no-backup'
- [1]
-
-test qgoto --force --no-backup
-
- $ hg qpop
- popping p2
- patch queue now empty
- $ echo a >> a
- $ hg qgoto --force --no-backup p2 --verbose
- applying p2
- patching file a
- a
- now at: p2
- $ test -f a.orig && echo 'error: backup with --no-backup'
- [1]
-
-test qpush --keep-changes
-
- $ hg qpush --keep-changes --force
- abort: cannot use both --force and --keep-changes
- [255]
- $ hg qpush --keep-changes --exact
- abort: cannot use --exact and --keep-changes together
- [255]
- $ echo b >> b
- $ hg qpush --keep-changes
- applying p3
- errors during apply, please fix and refresh p2
- [2]
- $ rm b
- $ hg qpush --keep-changes
- applying p3
- errors during apply, please fix and refresh p2
- [2]
- $ hg rm -A b
- $ hg qpush --keep-changes
- applying p3
- errors during apply, please fix and refresh p2
- [2]
- $ hg revert -aq b
- $ echo d > d
- $ hg add d
- $ hg qpush --keep-changes
- applying p3
- errors during apply, please fix and refresh p2
- [2]
- $ hg forget d
- $ rm d
- $ hg qpop
- popping p2
- patch queue now empty
- $ echo b >> b
- $ hg qpush -a --keep-changes
- applying p2
- applying p3
- errors during apply, please fix and refresh p2
- [2]
- $ hg qtop
- p2
- $ hg parents --template "{rev} {desc}\n"
- 2 imported patch p2
- $ hg st b
- M b
- $ cat b
- b
- b
-
-test qgoto --keep-changes
-
- $ hg revert -aq b
- $ rm e
- $ hg qgoto --keep-changes --force p3
- abort: cannot use both --force and --keep-changes
- [255]
- $ echo a >> a
- $ hg qgoto --keep-changes p3
- applying p3
- now at: p3
- $ hg st a
- M a
- $ hg qgoto --keep-changes p2
- popping p3
- now at: p2
- $ hg st a
- M a
-
-test mq.keepchanges setting
-
- $ hg --config mq.keepchanges=1 qpush
- applying p3
- now at: p3
- $ hg st a
- M a
- $ hg --config mq.keepchanges=1 qpop
- popping p3
- now at: p2
- $ hg st a
- M a
- $ hg --config mq.keepchanges=1 qgoto p3
- applying p3
- now at: p3
- $ hg st a
- M a
- $ echo b >> b
- $ hg --config mq.keepchanges=1 qpop --force
- popping p3
- now at: p2
- $ hg st b
- $ hg --config mq.keepchanges=1 qpush --exact
- abort: local changes found, refresh first
- [255]
- $ hg revert -qa a
- $ hg qpop
- popping p2
- patch queue now empty
- $ echo a >> a
- $ hg --config mq.keepchanges=1 qpush --force
- applying p2
- now at: p2
- $ hg st a
-
- $ cd ..
diff --git a/tests/test-mq-qrefresh-interactive.t b/tests/test-mq-qrefresh-interactive.t
index 41c27ce..626ca2f 100644
--- a/tests/test-mq-qrefresh-interactive.t
+++ b/tests/test-mq-qrefresh-interactive.t
@@ -31,22 +31,22 @@ help qrefresh (no record)
options:
- -e --edit edit commit message
- -g --git use git extended diff format
- -s --short refresh only files already in the patch and
- specified files
- -U --currentuser add/update author field in patch with current user
- -u --user USER add/update author field in patch with given user
- -D --currentdate add/update date field in patch with current date
- -d --date DATE add/update date field in patch with given date
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
- -m --message TEXT use text as commit message
- -l --logfile FILE read commit message from file
+ -e --edit edit commit message
+ -g --git use git extended diff format
+ -s --short refresh only files already in the patch and
+ specified files
+ -U --currentuser add/update author field in patch with current user
+ -u --user USER add/update author field in patch with given user
+ -D --currentdate add/update date field in patch with current date
+ -d --date DATE add/update date field in patch with given date
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
+ -m --message TEXT use text as commit message
+ -l --logfile FILE read commit message from file
[+] marked option can be specified multiple times
- use "hg -v help qrefresh" to show more info
+ use "hg -v help qrefresh" to show global options
help qrefresh (record)
@@ -75,23 +75,23 @@ help qrefresh (record)
options:
- -e --edit edit commit message
- -g --git use git extended diff format
- -s --short refresh only files already in the patch and
- specified files
- -U --currentuser add/update author field in patch with current user
- -u --user USER add/update author field in patch with given user
- -D --currentdate add/update date field in patch with current date
- -d --date DATE add/update date field in patch with given date
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
- -m --message TEXT use text as commit message
- -l --logfile FILE read commit message from file
- -i --interactive interactively select changes to refresh
+ -e --edit edit commit message
+ -g --git use git extended diff format
+ -s --short refresh only files already in the patch and
+ specified files
+ -U --currentuser add/update author field in patch with current user
+ -u --user USER add/update author field in patch with given user
+ -D --currentdate add/update date field in patch with current date
+ -d --date DATE add/update date field in patch with given date
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
+ -m --message TEXT use text as commit message
+ -l --logfile FILE read commit message from file
+ -i --interactive interactively select changes to refresh
[+] marked option can be specified multiple times
- use "hg -v help qrefresh" to show more info
+ use "hg -v help qrefresh" to show global options
$ hg init a
$ cd a
@@ -185,22 +185,22 @@ partial qrefresh
> EOF
diff --git a/1.txt b/1.txt
2 hunks, 2 lines changed
- examine changes to '1.txt'? [Ynesfdaq?]
+ examine changes to '1.txt'? [Ynsfdaq?]
@@ -1,3 +1,3 @@
1
-2
+2 2
3
- record change 1/4 to '1.txt'? [Ynesfdaq?]
+ record change 1/4 to '1.txt'? [Ynsfdaq?]
@@ -3,3 +3,3 @@
3
-4
+4 4
5
- record change 2/4 to '1.txt'? [Ynesfdaq?]
+ record change 2/4 to '1.txt'? [Ynsfdaq?]
diff --git a/2.txt b/2.txt
1 hunks, 1 lines changed
- examine changes to '2.txt'? [Ynesfdaq?]
+ examine changes to '2.txt'? [Ynsfdaq?]
@@ -1,5 +1,5 @@
a
-b
@@ -208,10 +208,10 @@ partial qrefresh
c
d
e
- record change 3/4 to '2.txt'? [Ynesfdaq?]
+ record change 3/4 to '2.txt'? [Ynsfdaq?]
diff --git a/dir/a.txt b/dir/a.txt
1 hunks, 1 lines changed
- examine changes to 'dir/a.txt'? [Ynesfdaq?]
+ examine changes to 'dir/a.txt'? [Ynsfdaq?]
After partial qrefresh 'tip'
@@ -279,7 +279,7 @@ qrefresh interactively everything else
> EOF
diff --git a/1.txt b/1.txt
1 hunks, 1 lines changed
- examine changes to '1.txt'? [Ynesfdaq?]
+ examine changes to '1.txt'? [Ynsfdaq?]
@@ -1,5 +1,5 @@
1
2 2
@@ -287,17 +287,17 @@ qrefresh interactively everything else
-4
+4 4
5
- record change 1/2 to '1.txt'? [Ynesfdaq?]
+ record change 1/2 to '1.txt'? [Ynsfdaq?]
diff --git a/dir/a.txt b/dir/a.txt
1 hunks, 1 lines changed
- examine changes to 'dir/a.txt'? [Ynesfdaq?]
+ examine changes to 'dir/a.txt'? [Ynsfdaq?]
@@ -1,4 +1,4 @@
-hello world
+hello world!
someone
up
- record change 2/2 to 'dir/a.txt'? [Ynesfdaq?]
+ record change 2/2 to 'dir/a.txt'? [Ynsfdaq?]
After final qrefresh 'tip'
@@ -346,5 +346,3 @@ After final qrefresh 'tip'
After qrefresh 'diff'
$ hg diff --nodates
-
- $ cd ..
diff --git a/tests/test-mq-qrefresh.t b/tests/test-mq-qrefresh.t
index 700380e..396b5f4 100644
--- a/tests/test-mq-qrefresh.t
+++ b/tests/test-mq-qrefresh.t
@@ -523,24 +523,3 @@ but only after writing the bad name into the patch.
diff --git a/a b/a
new file mode 100644
$ cd ..
-
-Refresh with phase data:
-
-
-
- $ cd repo
- $ echo 'babar' >> a
- $ hg qnew -m 'update a' p2.diff
- $ hg phase p2.diff
- 2: draft
- $ echo 'beber' >> a
- $ hg qref
- $ hg phase p2.diff
- 2: draft
- $ hg phase --force --secret p2.diff
- $ echo 'bibir' >> a
- $ hg qref
- $ hg phase p2.diff
- 2: secret
-
- $ cd ..
diff --git a/tests/test-mq-qrename.t b/tests/test-mq-qrename.t
index 6baf88c..621507b 100644
--- a/tests/test-mq-qrename.t
+++ b/tests/test-mq-qrename.t
@@ -76,8 +76,8 @@ Test overlapping renames (issue2388)
$ hg qrename patchb patchc
$ hg qrename patcha patchb
$ hg st --mq
+ M patchb
M series
- A patchb
A patchc
R patcha
$ cd ..
@@ -94,32 +94,3 @@ Test renames with mq repo (issue2097)
nothing changed
[1]
$ cd ..
-
-Test renaming to a folded patch (issue3058)
-
- $ hg init issue3058
- $ cd issue3058
- $ hg init --mq
- $ echo a > a
- $ hg add a
- $ hg qnew adda
- $ echo b >> a
- $ hg qnew addb
- $ hg qpop
- popping addb
- now at: adda
- $ hg ci --mq -m "save mq"
- $ hg qfold addb
- $ hg qmv addb
- $ cat .hg/patches/addb
- # HG changeset patch
- # Parent 0000000000000000000000000000000000000000
-
- diff -r 000000000000 a
- --- /dev/null * (glob)
- +++ b/a * (glob)
- @@ -0,0 +1,2 @@
- +a
- +b
- $ cd ..
-
diff --git a/tests/test-mq-safety.t b/tests/test-mq-safety.t
index d6fe35d..d184d8e 100644
--- a/tests/test-mq-safety.t
+++ b/tests/test-mq-safety.t
@@ -1,6 +1,5 @@
$ echo '[extensions]' >> $HGRCPATH
- $ echo 'hgext.mq =' >> $HGRCPATH
- $ echo 'hgext.graphlog =' >> $HGRCPATH
+ $ echo 'mq =' >> $HGRCPATH
$ hg init repo
$ cd repo
@@ -18,35 +17,6 @@
$ echo bar >> foo
$ hg qrefresh -m 'append bar'
-Try to operate on public mq changeset
-
- $ hg qpop
- popping bar
- now at: foo
- $ hg phase --public qbase
- $ echo babar >> foo
- $ hg qref
- abort: cannot refresh immutable revision
- (see "hg help phases" for details)
- [255]
- $ hg revert -a
- reverting foo
- $ hg qpop
- abort: popping would remove an immutable revision
- (see "hg help phases" for details)
- [255]
- $ hg qfold bar
- abort: cannot refresh immutable revision
- (see "hg help phases" for details)
- [255]
- $ hg revert -a
- reverting foo
-
-restore state for remaining test
-
- $ hg qpush
- applying bar
- now at: bar
try to commit on top of a patch
@@ -69,7 +39,7 @@ qpop/qrefresh on the wrong revision
abort: popping would remove a revision not managed by this patch queue
[255]
$ hg qpop -n patches
- using patch queue: $TESTTMP/repo/.hg/patches (glob)
+ using patch queue: $TESTTMP/repo/.hg/patches
abort: popping would remove a revision not managed by this patch queue
[255]
$ hg qrefresh
@@ -106,7 +76,6 @@ qpush warning branchheads
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg branch b
marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
$ echo c > c
$ hg ci -Amc
adding c
@@ -156,7 +125,6 @@ Testing applied patches, push and --force
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch branch
marked working directory as branch branch
- (branches are permanent and global, did you want a bookmark?)
$ echo b > b
$ hg ci -Am addb
adding b
@@ -174,7 +142,7 @@ Testing applied patches, push and --force
Pushing applied patch with --rev without --force
- $ hg push -r . ../forcepush2
+ $ hg push -r default ../forcepush2
pushing to ../forcepush2
abort: source has mq patches applied
[255]
@@ -188,7 +156,7 @@ Pushing applied patch with branchhash, without --force
Pushing revs excluding applied patch
- $ hg push --new-branch -r 'branch(branch)' -r 2 ../forcepush2
+ $ hg push --new-branch -r branch -r 2 ../forcepush2
pushing to ../forcepush2
searching for changes
adding changesets
@@ -198,13 +166,6 @@ Pushing revs excluding applied patch
Pushing applied patch with --force
- $ hg phase --force --secret 'mq()'
- $ hg push --force -r default ../forcepush2
- pushing to ../forcepush2
- searching for changes
- no changes found (ignored 1 secret changesets)
- [1]
- $ hg phase --draft 'mq()'
$ hg push --force -r default ../forcepush2
pushing to ../forcepush2
searching for changes
@@ -212,5 +173,3 @@ Pushing applied patch with --force
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
-
- $ cd ..
diff --git a/tests/test-mq-strip.t b/tests/test-mq-strip.t
index 70fffb1..a854e31 100644
--- a/tests/test-mq-strip.t
+++ b/tests/test-mq-strip.t
@@ -311,6 +311,7 @@ after strip of merge parent
$ hg strip 2 4
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
+ saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
$ hg glog
@ changeset: 2:65bd5f99a4a3
| tag: tip
@@ -420,49 +421,3 @@ Verify strip protects against stripping wc parent when there are uncommited mods
$ hg status
M bar
? b
- $ cd ..
-
-stripping many nodes on a complex graph (issue3299)
-
- $ hg init issue3299
- $ cd issue3299
- $ hg debugbuilddag '@a.:a@b.:b.:x<a@a.:a<b@b.:b<a@a.:a'
- $ hg strip 'not ancestors(x)'
- saved backup bundle to $TESTTMP/issue3299/.hg/strip-backup/*-backup.hg (glob)
-
-test hg strip -B bookmark
-
- $ cd ..
- $ hg init bookmarks
- $ cd bookmarks
- $ hg debugbuilddag '..<2.*1/2:m<2+3:c<m+3:a<2.:b'
- $ hg bookmark -r 'a' 'todelete'
- $ hg bookmark -r 'b' 'B'
- $ hg bookmark -r 'b' 'nostrip'
- $ hg bookmark -r 'c' 'delete'
- $ hg up -C todelete
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg strip -B nostrip
- bookmark 'nostrip' deleted
- abort: empty revision set
- [255]
- $ hg strip -B todelete
- bookmark 'todelete' deleted
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
- $ hg id -ir dcbb326fdec2
- abort: unknown revision 'dcbb326fdec2'!
- [255]
- $ hg id -ir d62d843c9a01
- d62d843c9a01
- $ hg bookmarks
- B 9:ff43616e5d0f
- delete 6:2702dd0c91e7
- $ hg strip -B delete
- bookmark 'delete' deleted
- saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
- $ hg id -ir 6:2702dd0c91e7
- abort: unknown revision '2702dd0c91e7'!
- [255]
-
- $ cd ..
diff --git a/tests/test-mq-subrepo-svn.t b/tests/test-mq-subrepo-svn.t
index 39e5c0b..9ed9121 100644
--- a/tests/test-mq-subrepo-svn.t
+++ b/tests/test-mq-subrepo-svn.t
@@ -1,4 +1,4 @@
- $ "$TESTDIR/hghave" svn13 || exit 80
+ $ "$TESTDIR/hghave" svn || exit 80
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
@@ -16,29 +16,28 @@ fn to create new repository, and cd into it
handle svn subrepos safely
$ svnadmin create svn-repo-2499
-
- $ SVNREPOPATH=`pwd`/svn-repo-2499/project
-#if windows
- $ SVNREPOURL=file:///`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
-#else
- $ SVNREPOURL=file://`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
-#endif
-
+ $ curpath=`pwd | tr '\\\\' /`
+ $ expr "$svnpath" : "\/" > /dev/null
+ > if [ $? -ne 0 ]; then
+ > curpath="/$curpath"
+ > fi
+ $ svnurl="file://$curpath/svn-repo-2499/project"
$ mkdir -p svn-project-2499/trunk
- $ svn import -m 'init project' svn-project-2499 "$SVNREPOURL"
- Adding svn-project-2499/trunk (glob)
+ $ svn import -m 'init project' svn-project-2499 "$svnurl"
+ Adding svn-project-2499/trunk
Committed revision 1.
qnew on repo w/svn subrepo
$ mkrepo repo-2499-svn-subrepo
- $ svn co "$SVNREPOURL"/trunk sub
+ $ svn co "$svnurl"/trunk sub
Checked out revision 1.
$ echo 'sub = [svn]sub' >> .hgsub
$ hg add .hgsub
$ hg status -S -X '**/format'
A .hgsub
$ hg qnew -m0 0.diff
+ committing subrepository sub
$ cd sub
$ echo a > a
$ svn add a
@@ -50,5 +49,3 @@ qnew on repo w/svn subrepo
$ hg qnew -m1 1.diff
abort: uncommitted changes in subrepository sub
[255]
-
- $ cd ..
diff --git a/tests/test-mq-subrepo.t b/tests/test-mq-subrepo.t
index 948006a..ffd880c 100644
--- a/tests/test-mq-subrepo.t
+++ b/tests/test-mq-subrepo.t
@@ -1,5 +1,3 @@
- $ echo "[ui]" >> $HGRCPATH
- $ echo "commitsubrepos = Yes" >> $HGRCPATH
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ echo "record=" >> $HGRCPATH
@@ -105,6 +103,7 @@ handle subrepos safely on qnew
% update substate when adding .hgsub w/clean updated subrepo
A .hgsub
% qnew -m0 0.diff
+ committing subrepository sub
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
@@ -120,6 +119,7 @@ handle subrepos safely on qnew
% update substate when modifying .hgsub w/clean updated subrepo
M .hgsub
% qnew -m1 1.diff
+ committing subrepository sub2
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
@@ -164,6 +164,7 @@ handle subrepos safely on qrefresh
% update substate when adding .hgsub w/clean updated subrepo
A .hgsub
% qrefresh
+ committing subrepository sub
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
@@ -180,6 +181,7 @@ handle subrepos safely on qrefresh
% update substate when modifying .hgsub w/clean updated subrepo
M .hgsub
% qrefresh
+ committing subrepository sub2
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
@@ -221,6 +223,7 @@ handle subrepos safely on qpush/qpop
$ echo sub = sub > .hgsub
$ hg add .hgsub
$ hg qnew -m0 0.diff
+ committing subrepository sub
$ hg debugsub
path sub
source sub
@@ -263,7 +266,7 @@ handle subrepos safely on qrecord
% qrecord --config ui.interactive=1 -m0 0.diff
diff --git a/.hgsub b/.hgsub
new file mode 100644
- examine changes to '.hgsub'? [Ynesfdaq?]
+ examine changes to '.hgsub'? [Ynsfdaq?]
abort: uncommitted changes in subrepository sub
[255]
% update substate when adding .hgsub w/clean updated subrepo
@@ -271,7 +274,8 @@ handle subrepos safely on qrecord
% qrecord --config ui.interactive=1 -m0 0.diff
diff --git a/.hgsub b/.hgsub
new file mode 100644
- examine changes to '.hgsub'? [Ynesfdaq?]
+ examine changes to '.hgsub'? [Ynsfdaq?]
+ committing subrepository sub
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
@@ -287,11 +291,11 @@ handle subrepos safely on qrecord
% qrecord --config ui.interactive=1 -m1 1.diff
diff --git a/.hgsub b/.hgsub
1 hunks, 1 lines changed
- examine changes to '.hgsub'? [Ynesfdaq?]
+ examine changes to '.hgsub'? [Ynsfdaq?]
@@ -1,1 +1,2 @@
sub = sub
+sub2 = sub2
- record this change to '.hgsub'? [Ynesfdaq?]
+ record this change to '.hgsub'? [Ynsfdaq?]
abort: uncommitted changes in subrepository sub2
[255]
% update substate when modifying .hgsub w/clean updated subrepo
@@ -299,11 +303,12 @@ handle subrepos safely on qrecord
% qrecord --config ui.interactive=1 -m1 1.diff
diff --git a/.hgsub b/.hgsub
1 hunks, 1 lines changed
- examine changes to '.hgsub'? [Ynesfdaq?]
+ examine changes to '.hgsub'? [Ynsfdaq?]
@@ -1,1 +1,2 @@
sub = sub
+sub2 = sub2
- record this change to '.hgsub'? [Ynesfdaq?]
+ record this change to '.hgsub'? [Ynsfdaq?]
+ committing subrepository sub2
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
@@ -324,7 +329,7 @@ handle subrepos safely on qrecord
% qrecord --config ui.interactive=1 -m2 2.diff
diff --git a/.hgsub b/.hgsub
deleted file mode 100644
- examine changes to '.hgsub'? [Ynesfdaq?]
+ examine changes to '.hgsub'? [Ynsfdaq?]
% debugsub should be empty
$ hg qpop -qa
@@ -339,7 +344,7 @@ handle subrepos safely on qrecord
% qrecord --config ui.interactive=1 -m3 3.diff
diff --git a/.hgsub b/.hgsub
deleted file mode 100644
- examine changes to '.hgsub'? [Ynesfdaq?]
+ examine changes to '.hgsub'? [Ynsfdaq?]
% debugsub should be empty
$ cd ..
@@ -353,162 +358,4 @@ correctly handle subrepos with patch queues
$ echo sub = sub >> .hgsub
$ hg add .hgsub
$ hg qnew 0.diff
-
- $ cd ..
-
-check whether MQ operations can import updated .hgsubstate correctly
-both into 'revision' and 'patch file under .hg/patches':
-
- $ hg init importing-hgsubstate
- $ cd importing-hgsubstate
-
- $ echo a > a
- $ hg commit -u test -d '0 0' -Am '#0 in parent'
- adding a
- $ hg init sub
- $ echo sa > sub/sa
- $ hg -R sub commit -u test -d '0 0' -Am '#0 in sub'
- adding sa
- $ echo 'sub = sub' > .hgsub
- $ touch .hgsubstate
- $ hg add .hgsub .hgsubstate
-
- $ hg qnew -u test -d '0 0' import-at-qnew
- $ hg -R sub parents --template '{node} sub\n'
- b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub
- $ cat .hgsubstate
- b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub
- $ hg diff -c tip
- diff -r f499373e340c -r b20ffac88564 .hgsub
- --- /dev/null
- +++ b/.hgsub
- @@ -0,0 +1,1 @@
- +sub = sub
- diff -r f499373e340c -r b20ffac88564 .hgsubstate
- --- /dev/null
- +++ b/.hgsubstate
- @@ -0,0 +1,1 @@
- +b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub
- $ cat .hg/patches/import-at-qnew
- # HG changeset patch
- # Parent f499373e340cdca5d01dee904aeb42dd2a325e71
- # User test
- # Date 0 0
-
- diff -r f499373e340c -r b20ffac88564 .hgsub
- --- /dev/null
- +++ b/.hgsub
- @@ -0,0 +1,1 @@
- +sub = sub
- diff -r f499373e340c -r b20ffac88564 .hgsubstate
- --- /dev/null
- +++ b/.hgsubstate
- @@ -0,0 +1,1 @@
- +b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub
- $ hg qpop
- popping import-at-qnew
- patch queue now empty
- $ hg qpush
- applying import-at-qnew
- now at: import-at-qnew
-
- $ hg qnew import-at-qrefresh
- $ echo sb > sub/sb
- $ hg -R sub commit -u test -d '0 0' -Am '#1 in sub'
- adding sb
- $ hg qrefresh -u test -d '0 0'
- $ hg -R sub parents --template '{node} sub\n'
- 88ac1bef5ed43b689d1d200b59886b675dec474b sub
- $ cat .hgsubstate
- 88ac1bef5ed43b689d1d200b59886b675dec474b sub
- $ hg diff -c tip
- diff -r 44f846335325 -r b3e8c5fa3aaa .hgsubstate
- --- a/.hgsubstate
- +++ b/.hgsubstate
- @@ -1,1 +1,1 @@
- -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub
- +88ac1bef5ed43b689d1d200b59886b675dec474b sub
- $ cat .hg/patches/import-at-qrefresh
- # HG changeset patch
- # Date 0 0
- # User test
- # Parent 44f846335325209be6be35dc2c9a4be107278c09
-
- diff -r 44f846335325 .hgsubstate
- --- a/.hgsubstate
- +++ b/.hgsubstate
- @@ -1,1 +1,1 @@
- -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub
- +88ac1bef5ed43b689d1d200b59886b675dec474b sub
-
- $ hg qrefresh -u test -d '0 0'
- $ cat .hgsubstate
- 88ac1bef5ed43b689d1d200b59886b675dec474b sub
- $ hg diff -c tip
- diff -r 44f846335325 -r b3e8c5fa3aaa .hgsubstate
- --- a/.hgsubstate
- +++ b/.hgsubstate
- @@ -1,1 +1,1 @@
- -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub
- +88ac1bef5ed43b689d1d200b59886b675dec474b sub
- $ cat .hg/patches/import-at-qrefresh
- # HG changeset patch
- # Date 0 0
- # User test
- # Parent 44f846335325209be6be35dc2c9a4be107278c09
-
- diff -r 44f846335325 .hgsubstate
- --- a/.hgsubstate
- +++ b/.hgsubstate
- @@ -1,1 +1,1 @@
- -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub
- +88ac1bef5ed43b689d1d200b59886b675dec474b sub
-
- $ hg update -C tip
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg qpop -a
- popping import-at-qrefresh
- popping import-at-qnew
- patch queue now empty
-
- $ hg -R sub update -C 0
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo 'sub = sub' > .hgsub
- $ hg commit -Am '#1 in parent'
- adding .hgsub
- $ hg -R sub update -C 1
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg commit -Am '#2 in parent (but be rollbacked soon)'
- $ hg rollback
- repository tip rolled back to revision 1 (undo commit)
- working directory now based on revision 1
- $ hg status
- M .hgsubstate
- $ hg qnew -u test -d '0 0' checkstate-at-qnew
- $ hg -R sub parents --template '{node} sub\n'
- 88ac1bef5ed43b689d1d200b59886b675dec474b sub
- $ cat .hgsubstate
- 88ac1bef5ed43b689d1d200b59886b675dec474b sub
- $ hg diff -c tip
- diff -r 4d91eb2fa1d1 -r 1259c112d884 .hgsubstate
- --- a/.hgsubstate
- +++ b/.hgsubstate
- @@ -1,1 +1,1 @@
- -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub
- +88ac1bef5ed43b689d1d200b59886b675dec474b sub
- $ cat .hg/patches/checkstate-at-qnew
- # HG changeset patch
- # Parent 4d91eb2fa1d1b22ec513347b9cd06f6b49d470fa
- # User test
- # Date 0 0
-
- diff -r 4d91eb2fa1d1 -r 1259c112d884 .hgsubstate
- --- a/.hgsubstate
- +++ b/.hgsubstate
- @@ -1,1 +1,1 @@
- -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub
- +88ac1bef5ed43b689d1d200b59886b675dec474b sub
-
- $ cd ..
-
- $ cd ..
+ committing subrepository sub
diff --git a/tests/test-mq-symlinks.t b/tests/test-mq-symlinks.t
index ffbc790..fd3db67 100644
--- a/tests/test-mq-symlinks.t
+++ b/tests/test-mq-symlinks.t
@@ -11,7 +11,7 @@
$ echo ccc > c
$ hg add a b c
$ hg qrefresh
- $ "$TESTDIR/readlink.py" a
+ $ $TESTDIR/readlink.py a
a -> a not a symlink
@@ -21,7 +21,7 @@ test replacing a file with a symlink
$ rm a
$ ln -s b a
$ hg qrefresh --git
- $ "$TESTDIR/readlink.py" a
+ $ $TESTDIR/readlink.py a
a -> b
$ hg qpop
@@ -30,7 +30,7 @@ test replacing a file with a symlink
$ hg qpush
applying symlink.patch
now at: symlink.patch
- $ "$TESTDIR/readlink.py" a
+ $ $TESTDIR/readlink.py a
a -> b
@@ -39,7 +39,7 @@ test updating a symlink
$ rm a
$ ln -s c a
$ hg qnew --git -f updatelink
- $ "$TESTDIR/readlink.py" a
+ $ $TESTDIR/readlink.py a
a -> c
$ hg qpop
popping updatelink
@@ -49,7 +49,7 @@ test updating a symlink
patching file a
a
now at: updatelink
- $ "$TESTDIR/readlink.py" a
+ $ $TESTDIR/readlink.py a
a -> c
$ hg st
@@ -104,5 +104,5 @@ replace broken symlink with another broken symlink
$ hg qpush
applying movelink
now at: movelink
- $ "$TESTDIR/readlink.py" linkb
+ $ $TESTDIR/readlink.py linkb
linkb -> linkb
diff --git a/tests/test-mq.t b/tests/test-mq.t
index 7e31845..04dc1ce 100644
--- a/tests/test-mq.t
+++ b/tests/test-mq.t
@@ -48,50 +48,34 @@ help
will override the [diff] section and always generate git or regular patches,
possibly losing data in the second case.
- It may be desirable for mq changesets to be kept in the secret phase (see "hg
- help phases"), which can be enabled with the following setting:
-
- [mq]
- secret = True
-
You will by default be managing a patch queue named "patches". You can create
other, independent patch queues with the "hg qqueue" command.
- If the working directory contains uncommitted files, qpush, qpop and qgoto
- abort immediately. If -f/--force is used, the changes are discarded. Setting:
-
- [mq]
- keepchanges = True
-
- make them behave as if --keep-changes were passed, and non-conflicting local
- changes will be tolerated and preserved. If incompatible options such as
- -f/--force or --exact are passed, this setting is ignored.
-
list of commands:
- qapplied print the patches already applied
- qclone clone main and patch repository at same time
- qdelete remove patches from queue
- qdiff diff of the current patch and subsequent modifications
- qfinish move applied patches into repository history
- qfold fold the named patches into the current patch
- qgoto push or pop patches until named patch is at top of stack
- qguard set or print guards for a patch
- qheader print the header of the topmost or specified patch
- qimport import a patch or existing changeset
- qnew create a new patch
- qnext print the name of the next pushable patch
- qpop pop the current patch off the stack
- qprev print the name of the preceding applied patch
- qpush push the next patch onto the stack
- qqueue manage multiple patch queues
- qrefresh update the current patch
- qrename rename a patch
- qselect set or print guarded patches to push
- qseries print the entire series file
- qtop print the name of the current patch
- qunapplied print the patches not yet applied
- strip strip changesets and all their descendants from the repository
+ qapplied print the patches already applied
+ qclone clone main and patch repository at same time
+ qdelete remove patches from queue
+ qdiff diff of the current patch and subsequent modifications
+ qfinish move applied patches into repository history
+ qfold fold the named patches into the current patch
+ qgoto push or pop patches until named patch is at top of stack
+ qguard set or print guards for a patch
+ qheader print the header of the topmost or specified patch
+ qimport import a patch
+ qnew create a new patch
+ qnext print the name of the next patch
+ qpop pop the current patch off the stack
+ qprev print the name of the previous patch
+ qpush push the next patch onto the stack
+ qqueue manage multiple patch queues
+ qrefresh update the current patch
+ qrename rename a patch
+ qselect set or print guarded patches to push
+ qseries print the entire series file
+ qtop print the name of the current patch
+ qunapplied print the patches not yet applied
+ strip strip changesets and all their descendants from the repository
use "hg -v help mq" to show builtin aliases and global options
@@ -151,7 +135,7 @@ qinit -c should create both files if they don't exist
guards
$ cat .hg/patches/series
$ hg qinit -c
- abort: repository $TESTTMP/d/.hg/patches already exists! (glob)
+ abort: repository $TESTTMP/d/.hg/patches already exists!
[255]
$ cd ..
@@ -162,20 +146,16 @@ qinit -c should create both files if they don't exist
$ hg qnew A
$ checkundo qnew
$ echo foo > foo
- $ hg phase -r qbase
- 0: draft
$ hg add foo
$ hg qrefresh
- $ hg phase -r qbase
- 0: draft
$ hg qnew B
$ echo >> foo
$ hg qrefresh
$ echo status >> .hg/patches/.hgignore
$ echo bleh >> .hg/patches/.hgignore
$ hg qinit -c
- adding .hg/patches/A (glob)
- adding .hg/patches/B (glob)
+ adding .hg/patches/A
+ adding .hg/patches/B
$ hg -R .hg/patches status
A .hgignore
A A
@@ -207,12 +187,10 @@ status --mq with color (issue2096)
try the --mq option on a command provided by an extension
$ hg purge --mq --verbose --config extensions.purge=
- removing file flaf
+ Removing file flaf
$ cd ..
-#if no-outer-repo
-
init --mq without repo
$ mkdir f
@@ -222,8 +200,6 @@ init --mq without repo
[255]
$ cd ..
-#endif
-
init --mq with repo path
$ hg init g
@@ -319,8 +295,6 @@ Dump the tag cache to ensure that it has exactly one head after qpush.
$ hg qpush
applying test.patch
now at: test.patch
- $ hg phase -r qbase
- 2: draft
$ hg tags > /dev/null
.hg/cache/tags (post qpush):
@@ -411,7 +385,7 @@ commit should fail
abort: cannot commit over an applied mq patch
[255]
-push should fail if draft
+push should fail
$ hg push ../../k
pushing to ../../k
@@ -531,18 +505,7 @@ cleaning up
$ hg qpush --move test.patch # already applied
abort: cannot push to a previous patch: test.patch
[255]
- $ sed '2i\
- > # make qtip index different in series and fullseries
- > ' `hg root`/.hg/patches/series > $TESTTMP/sedtmp
- $ cp $TESTTMP/sedtmp `hg root`/.hg/patches/series
- $ cat `hg root`/.hg/patches/series
- # comment
- # make qtip index different in series and fullseries
-
- test.patch
- test1b.patch
- test2.patch
- $ hg qpush --move test2.patch
+ $ hg qpush
applying test2.patch
now at: test2.patch
@@ -550,12 +513,11 @@ cleaning up
series after move
$ cat `hg root`/.hg/patches/series
- # comment
- # make qtip index different in series and fullseries
-
test.patch
test1b.patch
test2.patch
+ # comment
+
pop, qapplied, qunapplied
@@ -799,7 +761,6 @@ strip with local changes, should complain
$ hg strip -f tip
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)
- $ cd ..
cd b; hg qrefresh
@@ -910,27 +871,20 @@ bad node in status
no patches applied
[1]
- $ cd ..
-
-
-git patches
-
$ cat >>$HGRCPATH <<EOF
> [diff]
> git = True
> EOF
+ $ cd ..
$ hg init git
$ cd git
$ hg qinit
$ hg qnew -m'new file' new
$ echo foo > new
-#if execbit
$ chmod +x new
-#endif
$ hg add new
$ hg qrefresh
-#if execbit
$ cat .hg/patches/new
new file
@@ -940,17 +894,6 @@ git patches
+++ b/new
@@ -0,0 +1,1 @@
+foo
-#else
- $ cat .hg/patches/new
- new file
-
- diff --git a/new b/new
- new file mode 100644
- --- /dev/null
- +++ b/new
- @@ -0,0 +1,1 @@
- +foo
-#endif
$ hg qnew -m'copy file' copy
$ hg cp new copy
@@ -1202,7 +1145,7 @@ strip again
$ hg strip 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- saved backup bundle to $TESTTMP/strip/.hg/strip-backup/*-backup.hg (glob)
+ saved backup bundle to $TESTTMP/b/strip/.hg/strip-backup/*-backup.hg (glob)
$ checkundo strip
$ hg log
changeset: 1:20cbbe65cff7
@@ -1248,7 +1191,7 @@ repo with unversioned patch dir
$ cd qclonesource
$ hg qinit -c
- adding .hg/patches/patch1 (glob)
+ adding .hg/patches/patch1
$ hg qci -m checkpoint
$ qlog
main repo:
@@ -1387,15 +1330,11 @@ qpush should fail, local changes
apply force, should discard changes in hello, but not bye
- $ hg qpush -f --verbose
+ $ hg qpush -f
applying empty
- saving current version of hello.txt as hello.txt.orig
- patching file hello.txt
- hello.txt
now at: empty
$ hg st
M bye.txt
- ? hello.txt.orig
$ hg diff --config diff.nodates=True
diff -r ba252371dbc1 bye.txt
--- a/bye.txt
@@ -1453,100 +1392,3 @@ test popping must remove files added in subdirectories first
patch queue now empty
$ cd ..
-
-test case preservation through patch pushing especially on case
-insensitive filesystem
-
- $ hg init casepreserve
- $ cd casepreserve
-
- $ hg qnew add-file1
- $ echo a > TeXtFiLe.TxT
- $ hg add TeXtFiLe.TxT
- $ hg qrefresh
-
- $ hg qnew add-file2
- $ echo b > AnOtHeRFiLe.TxT
- $ hg add AnOtHeRFiLe.TxT
- $ hg qrefresh
-
- $ hg qnew modify-file
- $ echo c >> AnOtHeRFiLe.TxT
- $ hg qrefresh
-
- $ hg qapplied
- add-file1
- add-file2
- modify-file
- $ hg qpop -a
- popping modify-file
- popping add-file2
- popping add-file1
- patch queue now empty
-
-this qpush causes problems below, if case preservation on case
-insensitive filesystem is not enough:
-(1) unexpected "adding ..." messages are shown
-(2) patching fails in modification of (1) files
-
- $ hg qpush -a
- applying add-file1
- applying add-file2
- applying modify-file
- now at: modify-file
-
-Proper phase default with mq:
-
-1. mq.secret=false
-
- $ rm .hg/store/phaseroots
- $ hg phase 'qparent::'
- 0: draft
- 1: draft
- 2: draft
- $ echo '[mq]' >> $HGRCPATH
- $ echo 'secret=true' >> $HGRCPATH
- $ rm -f .hg/store/phaseroots
- $ hg phase 'qparent::'
- 0: secret
- 1: secret
- 2: secret
-
-Test that qfinish change phase when mq.secret=true
-
- $ hg qfinish qbase
- patch add-file1 finalized without changeset message
- $ hg phase 'all()'
- 0: draft
- 1: secret
- 2: secret
-
-Test that qfinish respect phases.new-commit setting
-
- $ echo '[phases]' >> $HGRCPATH
- $ echo 'new-commit=secret' >> $HGRCPATH
- $ hg qfinish qbase
- patch add-file2 finalized without changeset message
- $ hg phase 'all()'
- 0: draft
- 1: secret
- 2: secret
-
-(restore env for next test)
-
- $ sed -e 's/new-commit=secret//' $HGRCPATH > $TESTTMP/sedtmp
- $ cp $TESTTMP/sedtmp $HGRCPATH
- $ hg qimport -r 1 --name add-file2
-
-Test that qfinish preserve phase when mq.secret=false
-
- $ sed -e 's/secret=true/secret=false/' $HGRCPATH > $TESTTMP/sedtmp
- $ cp $TESTTMP/sedtmp $HGRCPATH
- $ hg qfinish qbase
- patch add-file2 finalized without changeset message
- $ hg phase 'all()'
- 0: draft
- 1: secret
- 2: secret
-
- $ cd ..
diff --git a/tests/test-mv-cp-st-diff.t b/tests/test-mv-cp-st-diff.t
index 5342fea..025e62f 100644
--- a/tests/test-mv-cp-st-diff.t
+++ b/tests/test-mv-cp-st-diff.t
@@ -560,7 +560,6 @@ $4 - test description
- parent to root: --rev . --rev 0
M a
- b
R b
diff --git a/a b/a
@@ -612,7 +611,6 @@ $4 - test description
- parent to branch: --rev . --rev 2
M a
- b
A x/y
R b
@@ -908,7 +906,6 @@ $4 - test description
- parent to root: --rev . --rev 0
M a
- b
R b
R c
@@ -978,7 +975,6 @@ $4 - test description
- parent to branch: --rev . --rev 2
M a
- b
A x/y
R b
R c
@@ -1142,7 +1138,7 @@ $4 - test description
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
created new head
- moving x/x to y/x (glob)
+ moving x/x to y/x
** directory move **
** hg mv x y / add y/x x1 / add y/x x2
- working to parent:
diff --git a/tests/test-nested-repo.t b/tests/test-nested-repo.t
index ddea413..1ac7352 100644
--- a/tests/test-nested-repo.t
+++ b/tests/test-nested-repo.t
@@ -11,16 +11,16 @@ Should print nothing:
Should fail:
$ hg st b/x
- abort: path 'b/x' is inside nested repo 'b' (glob)
+ abort: path 'b/x' is inside nested repo 'b'
[255]
$ hg add b/x
- abort: path 'b/x' is inside nested repo 'b' (glob)
+ abort: path 'b/x' is inside nested repo 'b'
[255]
Should fail:
$ hg add b b/x
- abort: path 'b/x' is inside nested repo 'b' (glob)
+ abort: path 'b/x' is inside nested repo 'b'
[255]
$ hg st
@@ -34,8 +34,7 @@ Should arguably print nothing:
Should fail:
$ hg mv a b
- abort: path 'b/a' is inside nested repo 'b' (glob)
+ abort: path 'b/a' is inside nested repo 'b'
[255]
$ hg st
- $ cd ..
diff --git a/tests/test-newbranch.t b/tests/test-newbranch.t
index f1099b8..89ecadf 100644
--- a/tests/test-newbranch.t
+++ b/tests/test-newbranch.t
@@ -9,13 +9,11 @@
$ hg ci -m "initial"
$ hg branch foo
marked working directory as branch foo
- (branches are permanent and global, did you want a bookmark?)
$ hg branch
foo
$ hg ci -m "add branch name"
$ hg branch bar
marked working directory as branch bar
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -m "change branch name"
Branch shadowing:
@@ -27,7 +25,6 @@ Branch shadowing:
$ hg branch -f default
marked working directory as branch default
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -m "clear branch name"
created new head
@@ -130,7 +127,6 @@ Test for invalid branch cache:
changeset: 4:adf1a74a7f7b4cd193d12992f5d0d6a004ed21d6
branch: foo
tag: tip
- phase: draft
parent: 1:6c0e42da283a56b5edc5b4fadb491365ec7f5fa8
parent: -1:0000000000000000000000000000000000000000
manifest: 1:8c342a37dfba0b3d3ce073562a00d8a813c54ffe
@@ -190,7 +186,6 @@ Update with no arguments: tipmost revision of the current branch:
$ hg branch foobar
marked working directory as branch foobar
- (branches are permanent and global, did you want a bookmark?)
$ hg up
abort: branch foobar not found
@@ -200,7 +195,6 @@ Fastforward merge:
$ hg branch ff
marked working directory as branch ff
- (branches are permanent and global, did you want a bookmark?)
$ echo ff > ff
$ hg ci -Am'fast forward'
@@ -262,7 +256,6 @@ Test merging, add 3 default heads and one test head:
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg branch test
marked working directory as branch test
- (branches are permanent and global, did you want a bookmark?)
$ echo e >> e
$ hg ci -Ame
adding e
@@ -327,4 +320,3 @@ Implicit merge with default branch as parent:
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
- $ cd ..
diff --git a/tests/test-newcgi.t b/tests/test-newcgi.t
index fb4f541..8795e78 100644
--- a/tests/test-newcgi.t
+++ b/tests/test-newcgi.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" no-msys || exit 80 # MSYS will translate web paths as if they were file paths
-
This tests if CGI files from after d0db3462d568 but
before d74fc8dec2b4 still work.
diff --git a/tests/test-newercgi.t b/tests/test-newercgi.t
index b6771fc..ca40d74 100644
--- a/tests/test-newercgi.t
+++ b/tests/test-newercgi.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" no-msys || exit 80 # MSYS will translate web paths as if they were file paths
-
This is a rudimentary test of the CGI files as of d74fc8dec2b4.
$ hg init test
diff --git a/tests/test-notify-changegroup.t b/tests/test-notify-changegroup.t
index d317adb..c872d02 100644
--- a/tests/test-notify-changegroup.t
+++ b/tests/test-notify-changegroup.t
@@ -56,11 +56,11 @@ push
Message-Id: <*> (glob)
To: baz, foo@bar
- changeset cb9a9f314b8b in $TESTTMP/a (glob)
+ changeset cb9a9f314b8b in $TESTTMP/a
details: $TESTTMP/a?cmd=changeset;node=cb9a9f314b8b
summary: a
- changeset ba677d0156c1 in $TESTTMP/a (glob)
+ changeset ba677d0156c1 in $TESTTMP/a
details: $TESTTMP/a?cmd=changeset;node=ba677d0156c1
summary: b
@@ -72,143 +72,4 @@ push
@@ -0,0 +1,2 @@
+a
+a
- $ hg --cwd a rollback
- repository tip rolled back to revision -1 (undo push)
-
-unbundle with unrelated source
-
- $ hg --cwd b bundle ../test.hg ../a
- searching for changes
- 2 changesets found
- $ hg --cwd a unbundle ../test.hg
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 1 files
- (run 'hg update' to get a working copy)
- $ hg --cwd a rollback
- repository tip rolled back to revision -1 (undo unbundle)
-
-unbundle with correct source
-
- $ hg --config notify.sources=unbundle --cwd a unbundle ../test.hg 2>&1 |
- > python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),'
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 1 files
- Content-Type: text/plain; charset="us-ascii"
- MIME-Version: 1.0
- Content-Transfer-Encoding: 7bit
- Date: * (glob)
- Subject: * (glob)
- From: test
- X-Hg-Notification: changeset cb9a9f314b8b
- Message-Id: <*> (glob)
- To: baz, foo@bar
-
- changeset cb9a9f314b8b in $TESTTMP/a (glob)
- details: $TESTTMP/a?cmd=changeset;node=cb9a9f314b8b
- summary: a
-
- changeset ba677d0156c1 in $TESTTMP/a (glob)
- details: $TESTTMP/a?cmd=changeset;node=ba677d0156c1
- summary: b
-
- diffs (6 lines):
-
- diff -r 000000000000 -r ba677d0156c1 a
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/a Thu Jan 01 00:00:00 1970 +0000
- @@ -0,0 +1,2 @@
- +a
- +a
- (run 'hg update' to get a working copy)
-
-Check that using the first committer as the author of a changeset works:
-Check that the config option works.
-Check that the first committer is indeed used for "From:".
-Check that the merge user is NOT used for "From:"
-
-Create new file
-
- $ echo a > b/b
- $ echo b >> b/b
- $ echo c >> b/b
- $ hg --traceback --cwd b commit -Amnewfile -u committer_1
- adding b
-
-commit as one user
-
- $ echo x > b/b
- $ echo b >> b/b
- $ echo c >> b/b
- $ hg --traceback --cwd b commit -Amx -u committer_2
-
-commit as other user, change file so we can do an (automatic) merge
-
- $ hg --cwd b up 2
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ echo a > b/b
- $ echo b >> b/b
- $ echo y >> b/b
- $ hg --traceback --cwd b commit -Amy -u committer_3
- created new head
-
-merge as a different user
-
- $ hg --cwd b merge --config notify.fromauthor=True
- merging b
- 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
-
- $ hg --traceback --cwd b commit -Am "merged"
-
-push
-
- $ hg --traceback --cwd b --config notify.fromauthor=True push ../a 2>&1 |
- > python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),'
- pushing to ../a
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 4 changesets with 4 changes to 1 files
- Content-Type: text/plain; charset="us-ascii"
- MIME-Version: 1.0
- Content-Transfer-Encoding: 7bit
- Date: * (glob)
- Subject: * (glob)
- From: committer_1
- X-Hg-Notification: changeset 84e487dddc58
- Message-Id: <*> (glob)
- To: baz, foo@bar
-
- changeset 84e487dddc58 in $TESTTMP/a (glob)
- details: $TESTTMP/a?cmd=changeset;node=84e487dddc58
- summary: newfile
-
- changeset b29c7a2b6b0c in $TESTTMP/a (glob)
- details: $TESTTMP/a?cmd=changeset;node=b29c7a2b6b0c
- summary: x
-
- changeset 0957c7d64886 in $TESTTMP/a (glob)
- details: $TESTTMP/a?cmd=changeset;node=0957c7d64886
- summary: y
-
- changeset 485b4e6b0249 in $TESTTMP/a (glob)
- details: $TESTTMP/a?cmd=changeset;node=485b4e6b0249
- summary: merged
-
- diffs (7 lines):
-
- diff -r ba677d0156c1 -r 485b4e6b0249 b
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/b Thu Jan 01 00:00:00 1970 +0000
- @@ -0,0 +1,3 @@
- +x
- +b
- +y
- $ hg --cwd a rollback
- repository tip rolled back to revision 1 (undo push)
diff --git a/tests/test-notify.t b/tests/test-notify.t
index 543ceba..06554ce 100644
--- a/tests/test-notify.t
+++ b/tests/test-notify.t
@@ -17,125 +17,67 @@
> * = baz
> EOF
$ hg help notify
- notify extension - hooks for sending email push notifications
+ notify extension - hooks for sending email notifications at commit/push time
- This extension implements hooks to send email notifications when changesets
- are sent from or received by the local repository.
+ Subscriptions can be managed through a hgrc file. Default mode is to print
+ messages to stdout, for testing and configuring.
- First, enable the extension as explained in "hg help extensions", and register
- the hook you want to run. "incoming" and "changegroup" hooks are run when
- changesets are received, while "outgoing" hooks are for changesets sent to
- another repository:
+ To use, configure the notify extension and enable it in hgrc like this:
+
+ [extensions]
+ notify =
[hooks]
# one email for each incoming changeset
incoming.notify = python:hgext.notify.hook
- # one email for all incoming changesets
+ # batch emails when many changesets incoming at one time
changegroup.notify = python:hgext.notify.hook
-
- # one email for all outgoing changesets
+ # batch emails when many changesets outgoing at one time (client side)
outgoing.notify = python:hgext.notify.hook
- This registers the hooks. To enable notification, subscribers must be assigned
- to repositories. The "[usersubs]" section maps multiple repositories to a
- given recipient. The "[reposubs]" section maps multiple recipients to a single
- repository:
+ [notify]
+ # config items go here
+
+ Required configuration items:
+
+ config = /path/to/file # file containing subscriptions
+
+ Optional configuration items:
+
+ test = True # print messages to stdout for testing
+ strip = 3 # number of slashes to strip for url paths
+ domain = example.com # domain to use if committer missing domain
+ style = ... # style file to use when formatting email
+ template = ... # template to use when formatting email
+ incoming = ... # template to use when run as incoming hook
+ outgoing = ... # template to use when run as outgoing hook
+ changegroup = ... # template to use when run as changegroup hook
+ maxdiff = 300 # max lines of diffs to include (0=none, -1=all)
+ maxsubject = 67 # truncate subject line longer than this
+ diffstat = True # add a diffstat before the diff content
+ sources = serve # notify if source of incoming changes in this list
+ # (serve == ssh or http, push, pull, bundle)
+ merge = False # send notification for merges (default True)
+ [email]
+ from = user@host.com # email address to send as if none given
+ [web]
+ baseurl = http://hgserver/... # root of hg web site for browsing commits
+
+ The notify config file has same format as a regular hgrc file. It has two
+ sections so you can express subscriptions in whatever way is handier for you.
[usersubs]
- # key is subscriber email, value is a comma-separated list of repo glob
- # patterns
+ # key is subscriber email, value is ","-separated list of glob patterns
user@host = pattern
[reposubs]
- # key is glob pattern, value is a comma-separated list of subscriber
- # emails
+ # key is glob pattern, value is ","-separated list of subscriber emails
pattern = user@host
- Glob patterns are matched against absolute path to repository root.
-
- In order to place them under direct user management, "[usersubs]" and
- "[reposubs]" sections may be placed in a separate "hgrc" file and incorporated
- by reference:
-
- [notify]
- config = /path/to/subscriptionsfile
-
- Notifications will not be sent until the "notify.test" value is set to
- "False"; see below.
-
- Notifications content can be tweaked with the following configuration entries:
-
- notify.test
- If "True", print messages to stdout instead of sending them. Default: True.
-
- notify.sources
- Space-separated list of change sources. Notifications are activated only
- when a changeset's source is in this list. Sources may be:
-
- "serve" changesets received via http or ssh
- "pull" changesets received via "hg pull"
- "unbundle" changesets received via "hg unbundle"
- "push" changesets sent or received via "hg push"
- "bundle" changesets sent via "hg unbundle"
-
- Default: serve.
-
- notify.strip
- Number of leading slashes to strip from url paths. By default, notifications
- reference repositories with their absolute path. "notify.strip" lets you
- turn them into relative paths. For example, "notify.strip=3" will change
- "/long/path/repository" into "repository". Default: 0.
-
- notify.domain
- Default email domain for sender or recipients with no explicit domain.
-
- notify.style
- Style file to use when formatting emails.
+ Glob patterns are matched against path to repository root.
- notify.template
- Template to use when formatting emails.
-
- notify.incoming
- Template to use when run as an incoming hook, overriding "notify.template".
-
- notify.outgoing
- Template to use when run as an outgoing hook, overriding "notify.template".
-
- notify.changegroup
- Template to use when running as a changegroup hook, overriding
- "notify.template".
-
- notify.maxdiff
- Maximum number of diff lines to include in notification email. Set to 0 to
- disable the diff, or -1 to include all of it. Default: 300.
-
- notify.maxsubject
- Maximum number of characters in email's subject line. Default: 67.
-
- notify.diffstat
- Set to True to include a diffstat before diff content. Default: True.
-
- notify.merge
- If True, send notifications for merge changesets. Default: True.
-
- notify.mbox
- If set, append mails to this mbox file instead of sending. Default: None.
-
- notify.fromauthor
- If set, use the committer of the first changeset in a changegroup for the
- "From" field of the notification mail. If not set, take the user from the
- pushing repo. Default: False.
-
- If set, the following entries will also be used to customize the
- notifications:
-
- email.from
- Email "From" address to use if none can be found in the generated email
- content.
-
- web.baseurl
- Root repository URL to combine with repository paths when making references.
- See also "notify.strip".
+ If you like, you can put notify config file in repository that users can push
+ changes to, they can manage their own subscriptions.
no commands defined
$ hg init a
@@ -187,7 +129,7 @@ pull (minimal config)
Message-Id: <*> (glob)
To: baz, foo@bar
- changeset 0647d048b600 in $TESTTMP/b (glob)
+ changeset 0647d048b600 in $TESTTMP/b
details: $TESTTMP/b?cmd=changeset;node=0647d048b600
description: b
@@ -214,6 +156,7 @@ fail for config file is missing
$ hg --cwd b rollback
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"
@@ -222,6 +165,7 @@ pull
$ hg --cwd b rollback
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
@@ -266,6 +210,7 @@ pull
$ hg --cwd b rollback
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
@@ -364,7 +309,7 @@ test merge
description: merge
(run 'hg update' to get a working copy)
-non-ascii content and truncation of multi-byte subject
+truncate multi-byte subject
$ cat <<EOF >> $HGRCPATH
> [notify]
@@ -409,67 +354,3 @@ non-ascii content and truncation of multi-byte subject
a
+a
(run 'hg update' to get a working copy)
-
-long lines
-
- $ cat <<EOF >> $HGRCPATH
- > [notify]
- > maxsubject = 67
- > test = False
- > mbox = mbox
- > EOF
- $ python -c 'file("a/a", "ab").write("no" * 500 + "\n")'
- $ hg --cwd a commit -A -m "long line"
- $ hg --traceback --cwd b pull ../a
- pulling from ../a
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- notify: sending 2 subscribers 1 changes
- (run 'hg update' to get a working copy)
- $ python -c 'import sys,re; print re.sub("\n\t", " ", file("b/mbox").read()),'
- From test@test.com ... ... .. ..:..:.. .... (re)
- Content-Type: text/plain; charset="us-ascii"
- MIME-Version: 1.0
- Content-Transfer-Encoding: quoted-printable
- X-Test: foo
- Date: * (glob)
- Subject: long line
- From: test@test.com
- X-Hg-Notification: changeset e0be44cf638b
- Message-Id: <hg.e0be44cf638b.*.*@*> (glob)
- To: baz@test.com, foo@bar
-
- changeset e0be44cf638b in b
- description: long line
- diffstat:
-
- a | 1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
- diffs (8 lines):
-
- diff -r 7ea05ad269dc -r e0be44cf638b a
- --- a/a Thu Jan 01 00:00:00 1970 +0000
- +++ b/a Thu Jan 01 00:00:00 1970 +0000
- @@ -1,3 +1,4 @@
- a
- a
- a
- +nonononononononononononononononononononononononononononononononononononono=
- nononononononononononononononononononononononononononononononononononononon=
- ononononononononononononononononononononononononononononononononononononono=
- nononononononononononononononononononononononononononononononononononononon=
- ononononononononononononononononononononononononononononononononononononono=
- nononononononononononononononononononononononononononononononononononononon=
- ononononononononononononononononononononononononononononononononononononono=
- nononononononononononononononononononononononononononononononononononononon=
- ononononononononononononononononononononononononononononononononononononono=
- nononononononononononononononononononononononononononononononononononononon=
- ononononononononononononononononononononononononononononononononononononono=
- nononononononononononononononononononononononononononononononononononononon=
- ononononononononononononononononononononononononononononononononononononono=
- nonononononononononononono
-
diff --git a/tests/test-obsolete-changeset-exchange.t b/tests/test-obsolete-changeset-exchange.t
deleted file mode 100644
index 861556e..0000000
--- a/tests/test-obsolete-changeset-exchange.t
+++ /dev/null
@@ -1,55 +0,0 @@
-Test changesets filtering during exchanges (some tests are still in
-test-obsolete.t)
-
- $ cat > obs.py << EOF
- > import mercurial.obsolete
- > mercurial.obsolete._enabled = True
- > EOF
- $ echo '[extensions]' >> $HGRCPATH
- $ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH
-
-Push does not corrupt remote
-----------------------------
-
-Create a DAG where a changeset reuses a revision from a file first used in an
-extinct changeset.
-
- $ hg init local
- $ cd local
- $ echo 'base' > base
- $ hg commit -Am base
- adding base
- $ echo 'A' > A
- $ hg commit -Am A
- adding A
- $ hg up 0
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg revert -ar 1
- adding A
- $ hg commit -Am "A'"
- created new head
- $ hg log -G --template='{desc} {node}'
- @ A' f89bcc95eba5174b1ccc3e33a82e84c96e8338ee
- |
- | o A 9d73aac1b2ed7d53835eaeec212ed41ea47da53a
- |/
- o base d20a80d4def38df63a4b330b7fb688f3d4cae1e3
-
- $ hg debugobsolete 9d73aac1b2ed7d53835eaeec212ed41ea47da53a f89bcc95eba5174b1ccc3e33a82e84c96e8338ee
-
-Push it. The bundle should not refer to the extinct changeset.
-
- $ hg init ../other
- $ hg push ../other
- pushing to ../other
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 2 files
- $ hg -R ../other verify
- checking changesets
- checking manifests
- crosschecking files in changesets and manifests
- checking files
- 2 files, 2 changesets, 2 total revisions
diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t
deleted file mode 100644
index 40abaca..0000000
--- a/tests/test-obsolete.t
+++ /dev/null
@@ -1,508 +0,0 @@
- $ cat >> $HGRCPATH << EOF
- > [extensions]
- > graphlog=
- > [phases]
- > # public changeset are not obsolete
- > publish=false
- > EOF
- $ mkcommit() {
- > echo "$1" > "$1"
- > hg add "$1"
- > hg ci -m "add $1"
- > }
- $ getid() {
- > hg id --debug -ir "desc('$1')"
- > }
-
- $ cat > debugkeys.py <<EOF
- > def reposetup(ui, repo):
- > class debugkeysrepo(repo.__class__):
- > def listkeys(self, namespace):
- > ui.write('listkeys %s\n' % (namespace,))
- > return super(debugkeysrepo, self).listkeys(namespace)
- >
- > if repo.local():
- > repo.__class__ = debugkeysrepo
- > EOF
-
- $ hg init tmpa
- $ cd tmpa
- $ mkcommit kill_me
-
-Checking that the feature is properly disabled
-
- $ hg debugobsolete -d '0 0' `getid kill_me` -u babar
- abort: obsolete feature is not enabled on this repo
- [255]
-
-Enabling it
-
- $ cat > ../obs.py << EOF
- > import mercurial.obsolete
- > mercurial.obsolete._enabled = True
- > EOF
- $ echo '[extensions]' >> $HGRCPATH
- $ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH
-
-Killing a single changeset without replacement
-
- $ hg debugobsolete 0
- abort: changeset references must be full hexadecimal node identifiers
- [255]
- $ hg debugobsolete '00'
- abort: changeset references must be full hexadecimal node identifiers
- [255]
- $ hg debugobsolete -d '0 0' `getid kill_me` -u babar
- $ hg debugobsolete
- 97b7c2d76b1845ed3eb988cd612611e72406cef0 0 {'date': '0 0', 'user': 'babar'}
- $ cd ..
-
-Killing a single changeset with replacement
-
- $ hg init tmpb
- $ cd tmpb
- $ mkcommit a
- $ mkcommit b
- $ mkcommit original_c
- $ hg up "desc('b')"
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ mkcommit new_c
- created new head
- $ hg debugobsolete `getid original_c` `getid new_c` -d '56 12'
- $ hg debugobsolete
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
-
-do it again (it read the obsstore before adding new changeset)
-
- $ hg up '.^'
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ mkcommit new_2_c
- created new head
- $ hg debugobsolete -d '1337 0' `getid new_c` `getid new_2_c`
- $ hg debugobsolete
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
- cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
-
-Register two markers with a missing node
-
- $ hg up '.^'
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ mkcommit new_3_c
- created new head
- $ hg debugobsolete -d '1338 0' `getid new_2_c` 1337133713371337133713371337133713371337
- $ hg debugobsolete -d '1339 0' 1337133713371337133713371337133713371337 `getid new_3_c`
- $ hg debugobsolete
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
- cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
- 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
-
-Check that graphlog detect that a changeset is obsolete:
-
- $ hg glog
- @ changeset: 5:5601fb93a350
- | tag: tip
- | parent: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add new_3_c
- |
- o changeset: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add b
- |
- o changeset: 0:1f0dee641bb7
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add a
-
-
-Check that public changeset are not accounted as obsolete:
-
- $ hg phase --public 2
- $ hg --config 'extensions.graphlog=' glog
- @ changeset: 5:5601fb93a350
- | tag: tip
- | parent: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add new_3_c
- |
- | o changeset: 2:245bde4270cd
- |/ user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add original_c
- |
- o changeset: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add b
- |
- o changeset: 0:1f0dee641bb7
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add a
-
-
- $ cd ..
-
-Exchange Test
-============================
-
-Destination repo does not have any data
----------------------------------------
-
-Try to pull markers
-(extinct changeset are excluded but marker are pushed)
-
- $ hg init tmpc
- $ cd tmpc
- $ hg pull ../tmpb
- pulling from ../tmpb
- requesting all changes
- adding changesets
- adding manifests
- adding file changes
- added 4 changesets with 4 changes to 4 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
- $ hg debugobsolete
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
- cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
- 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
-
-Rollback//Transaction support
-
- $ hg debugobsolete -d '1340 0' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
- $ hg debugobsolete
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
- cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
- 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 {'date': '1340 0', 'user': 'test'}
- $ hg rollback -n
- repository tip rolled back to revision 3 (undo debugobsolete)
- $ hg rollback
- repository tip rolled back to revision 3 (undo debugobsolete)
- $ hg debugobsolete
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
- cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
- 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
-
- $ cd ..
-
-Try to pull markers
-
- $ hg init tmpd
- $ hg -R tmpb push tmpd
- pushing to tmpd
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 4 changesets with 4 changes to 4 files (+1 heads)
- $ hg -R tmpd debugobsolete
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
- cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
- 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
-
-Check obsolete keys are exchanged only if source has an obsolete store
-
- $ hg init empty
- $ hg --config extensions.debugkeys=debugkeys.py -R empty push tmpd
- pushing to tmpd
- no changes found
- listkeys phases
- listkeys bookmarks
- [1]
-
-clone support
-(markers are copied and extinct changesets are included to allow hardlinks)
-
- $ hg clone tmpb clone-dest
- updating to branch default
- 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg -R clone-dest log -G --hidden
- @ changeset: 5:5601fb93a350
- | tag: tip
- | parent: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add new_3_c
- |
- | x changeset: 4:ca819180edb9
- |/ parent: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add new_2_c
- |
- | x changeset: 3:cdbce2fbb163
- |/ parent: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add new_c
- |
- | o changeset: 2:245bde4270cd
- |/ user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add original_c
- |
- o changeset: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add b
- |
- o changeset: 0:1f0dee641bb7
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add a
-
- $ hg -R clone-dest debugobsolete
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
- cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
- 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
-
-
-Destination repo have existing data
----------------------------------------
-
-On pull
-
- $ hg init tmpe
- $ cd tmpe
- $ hg debugobsolete -d '1339 0' 2448244824482448244824482448244824482448 1339133913391339133913391339133913391339
- $ hg pull ../tmpb
- pulling from ../tmpb
- requesting all changes
- adding changesets
- adding manifests
- adding file changes
- added 4 changesets with 4 changes to 4 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
- $ hg debugobsolete
- 2448244824482448244824482448244824482448 1339133913391339133913391339133913391339 0 {'date': '1339 0', 'user': 'test'}
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
- cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
- 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
-
-
-On push
-
- $ hg push ../tmpc
- pushing to ../tmpc
- searching for changes
- no changes found
- [1]
- $ hg -R ../tmpc debugobsolete
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
- cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
- 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
- 2448244824482448244824482448244824482448 1339133913391339133913391339133913391339 0 {'date': '1339 0', 'user': 'test'}
-
-detect outgoing obsolete and unstable
----------------------------------------
-
-
- $ hg glog
- o changeset: 3:5601fb93a350
- | tag: tip
- | parent: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add new_3_c
- |
- | o changeset: 2:245bde4270cd
- |/ user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add original_c
- |
- o changeset: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add b
- |
- o changeset: 0:1f0dee641bb7
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add a
-
- $ hg up 'desc("new_3_c")'
- 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ mkcommit original_d
- $ mkcommit original_e
- $ hg debugobsolete `getid original_d` -d '0 0'
- $ hg log -r 'obsolete()'
- changeset: 4:7c694bff0650
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add original_d
-
- $ hg glog -r '::unstable()'
- @ changeset: 5:6e572121998e
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add original_e
- |
- x changeset: 4:7c694bff0650
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add original_d
- |
- o changeset: 3:5601fb93a350
- | parent: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add new_3_c
- |
- o changeset: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add b
- |
- o changeset: 0:1f0dee641bb7
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add a
-
-
-refuse to push obsolete changeset
-
- $ hg push ../tmpc/ -r 'desc("original_d")'
- pushing to ../tmpc/
- searching for changes
- abort: push includes an obsolete changeset: 7c694bff0650!
- [255]
-
-refuse to push unstable changeset
-
- $ hg push ../tmpc/
- pushing to ../tmpc/
- searching for changes
- abort: push includes an unstable changeset: 6e572121998e!
- [255]
-
-Test that extinct changeset are properly detected
-
- $ hg log -r 'extinct()'
-
-Don't try to push extinct changeset
-
- $ hg init ../tmpf
- $ hg out ../tmpf
- comparing with ../tmpf
- searching for changes
- changeset: 0:1f0dee641bb7
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add a
-
- changeset: 1:7c3bad9141dc
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add b
-
- changeset: 2:245bde4270cd
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add original_c
-
- changeset: 3:5601fb93a350
- parent: 1:7c3bad9141dc
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add new_3_c
-
- changeset: 4:7c694bff0650
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add original_d
-
- changeset: 5:6e572121998e
- tag: tip
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add original_e
-
- $ hg push ../tmpf -f # -f because be push unstable too
- pushing to ../tmpf
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 6 changesets with 6 changes to 6 files (+1 heads)
-
-no warning displayed
-
- $ hg push ../tmpf
- pushing to ../tmpf
- searching for changes
- no changes found
- [1]
-
-Do not warn about new head when the new head is a successors of a remote one
-
- $ hg glog
- @ changeset: 5:6e572121998e
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add original_e
- |
- x changeset: 4:7c694bff0650
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add original_d
- |
- o changeset: 3:5601fb93a350
- | parent: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add new_3_c
- |
- | o changeset: 2:245bde4270cd
- |/ user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add original_c
- |
- o changeset: 1:7c3bad9141dc
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: add b
- |
- o changeset: 0:1f0dee641bb7
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add a
-
- $ hg up -q 'desc(new_3_c)'
- $ mkcommit obsolete_e
- created new head
- $ hg debugobsolete `getid 'original_e'` `getid 'obsolete_e'`
- $ hg push ../tmpf
- pushing to ../tmpf
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files (+1 heads)
-
-Checking _enable=False warning if obsolete marker exists
-
- $ echo '[extensions]' >> $HGRCPATH
- $ echo "obs=!" >> $HGRCPATH
- $ hg log -r tip
- obsolete feature not enabled but 7 markers found!
- changeset: 6:d6a026544050
- tag: tip
- parent: 3:5601fb93a350
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: add obsolete_e
-
diff --git a/tests/test-oldcgi.t b/tests/test-oldcgi.t
index 2651a9c..d397711 100644
--- a/tests/test-oldcgi.t
+++ b/tests/test-oldcgi.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" no-msys || exit 80 # MSYS will translate web paths as if they were file paths
-
This tests if CGI files from before d0db3462d568 still work.
$ hg init test
diff --git a/tests/test-parents.t b/tests/test-parents.t
index 36f7c65..db2fc1c 100644
--- a/tests/test-parents.t
+++ b/tests/test-parents.t
@@ -150,5 +150,3 @@ merge working dir with 1 parent, hg parents c
date: Thu Jan 01 00:00:04 1970 +0000
summary: c2
-
- $ cd ..
diff --git a/tests/test-parse-date.t b/tests/test-parse-date.t
index c08b27c..58414ef 100644
--- a/tests/test-parse-date.t
+++ b/tests/test-parse-date.t
@@ -93,29 +93,13 @@ Test 12-hours times
standard: Wed Feb 01 13:00:30 2006 +0000
$ hg debugdate "1:00:30PM" > /dev/null
-Normal range
-
- $ hg log -d -1
-
-Negative range
-
- $ hg log -d "--2"
- abort: -2 must be nonnegative (see 'hg help dates')
- [255]
-
-Whitespace only
-
- $ hg log -d " "
- abort: dates cannot consist entirely of whitespace
- [255]
-
Test date formats with '>' or '<' accompanied by space characters
$ hg log -d '>' --template '{date|date}\n'
abort: invalid day spec, use '>DATE'
[255]
- $ hg log -d '<' --template '{date|date}\n'
- abort: invalid day spec, use '<DATE'
+ $ hg log -d '<' hg log -d '>' --template '{date|date}\n'
+ abort: invalid day spec, use '>DATE'
[255]
$ hg log -d ' >' --template '{date|date}\n'
diff --git a/tests/test-parseindex.t b/tests/test-parseindex.t
index 6807f50..711b70e 100644
--- a/tests/test-parseindex.t
+++ b/tests/test-parseindex.t
@@ -57,5 +57,3 @@ We approximate that by reducing the read buffer to 1 byte.
2 revisions:
7c31755bf9b5
26333235a41c
-
- $ cd ..
diff --git a/tests/test-parseindex2.py b/tests/test-parseindex2.py
index 1098226..c42db80 100644
--- a/tests/test-parseindex2.py
+++ b/tests/test-parseindex2.py
@@ -52,6 +52,7 @@ def py_parseindex(data, inline) :
return index, cache
+
data_inlined = '\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x01\x8c' \
'\x00\x00\x04\x07\x00\x00\x00\x00\x00\x00\x15\x15\xff\xff\xff' \
'\xff\xff\xff\xff\xff\xebG\x97\xb7\x1fB\x04\xcf\x13V\x81\tw\x1b' \
@@ -93,16 +94,13 @@ data_non_inlined = '\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01D\x19' \
'\xb6\r\x98B\xcb\x07\xbd`\x8f\x92\xd9\xc4\x84\xbdK\x00\x00\x00' \
'\x00\x00\x00\x00\x00\x00\x00\x00\x00'
-def parse_index2(data, inline):
- index, chunkcache = parsers.parse_index2(data, inline)
- return list(index), chunkcache
-
def runtest() :
+
py_res_1 = py_parseindex(data_inlined, True)
- c_res_1 = parse_index2(data_inlined, True)
+ c_res_1 = parsers.parse_index2(data_inlined, True)
py_res_2 = py_parseindex(data_non_inlined, False)
- c_res_2 = parse_index2(data_non_inlined, False)
+ c_res_2 = parsers.parse_index2(data_non_inlined, False)
if py_res_1 != c_res_1:
print "Parse index result (with inlined data) differs!"
@@ -110,17 +108,6 @@ def runtest() :
if py_res_2 != c_res_2:
print "Parse index result (no inlined data) differs!"
- ix = parsers.parse_index2(data_inlined, True)[0]
- for i, r in enumerate(ix):
- if r[7] == nullid:
- i = -1
- try:
- if ix[r[7]] != i:
- print 'Reverse lookup inconsistent for %r' % r[7].encode('hex')
- except TypeError:
- # pure version doesn't support this
- break
-
print "done"
runtest()
diff --git a/tests/test-patch-offset.t b/tests/test-patch-offset.t
index 02508c5..8745d88 100644
--- a/tests/test-patch-offset.t
+++ b/tests/test-patch-offset.t
@@ -69,11 +69,8 @@ import patch
Hunk #2 succeeded at 87 (offset 34 lines).
Hunk #3 succeeded at 109 (offset 34 lines).
a
- created 189885cecb41
compare imported changes against reference file
$ python ../writepatterns.py aref 34X 10A 1B 1a 9A 1C 10A 1B 10A 1D 10A 1B 1a 9A 1E 10A 1B 1a 9A
$ diff aref a
-
- $ cd ..
diff --git a/tests/test-patch.t b/tests/test-patch.t
index 6528ce0..f7c628b 100644
--- a/tests/test-patch.t
+++ b/tests/test-patch.t
@@ -37,7 +37,7 @@ check custom patch options are honored
$ hg --cwd b import -v ../a.diff
applying ../a.diff
Using custom patch
- applied to working directory
+
Issue2417: hg import with # comments in description
diff --git a/tests/test-patchbomb.t b/tests/test-patchbomb.t
index 3ce7407..ba5ea3f 100644
--- a/tests/test-patchbomb.t
+++ b/tests/test-patchbomb.t
@@ -1,3 +1,11 @@
+ $ fixheaders()
+ > {
+ > sed -e 's/\(Message-Id:.*@\).*/\1/' \
+ > -e 's/\(In-Reply-To:.*@\).*/\1/' \
+ > -e 's/\(References:.*@\).*/\1/' \
+ > -e 's/\(User-Agent:.*\)\/.*/\1/' \
+ > -e 's/===.*/===/'
+ > }
$ echo "[extensions]" >> $HGRCPATH
$ echo "patchbomb=" >> $HGRCPATH
@@ -8,16 +16,16 @@
adding a
$ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -r tip
- this patch series consists of 1 patches.
+ This patch series consists of 1 patches.
- displaying [PATCH] a ...
+ Displaying [PATCH] a ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.60@*> (glob)
+ Message-Id: <8580ff50825a50c8f716.60@* (glob)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
@@ -41,7 +49,7 @@
$ hg --config ui.interactive=1 email --confirm -n -f quux -t foo -c bar -r tip<<EOF
> n
> EOF
- this patch series consists of 1 patches.
+ This patch series consists of 1 patches.
Final summary:
@@ -61,18 +69,18 @@
adding b
$ hg email --date '1970-1-1 0:2' -n -f quux -t foo -c bar -s test -r 0:tip
- this patch series consists of 2 patches.
+ This patch series consists of 2 patches.
Write the introductory message for the patch series.
- displaying [PATCH 0 of 2] test ...
+ Displaying [PATCH 0 of 2] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 2] test
- Message-Id: <patchbomb.120@*> (glob)
+ Message-Id: <patchbomb\.120@[^>]*> (re)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Thu, 01 Jan 1970 00:02:00 +0000
From: quux
@@ -80,15 +88,15 @@
Cc: bar
- displaying [PATCH 1 of 2] a ...
+ Displaying [PATCH 1 of 2] a ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 1 of 2] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.121@*> (glob)
- In-Reply-To: <patchbomb.120@*> (glob)
- References: <patchbomb.120@*> (glob)
+ Message-Id: <8580ff50825a50c8f716\.121@[^>]*> (re)
+ In-Reply-To: <patchbomb\.120@[^>]*> (re)
+ References: <patchbomb\.120@[^>]*> (re)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Thu, 01 Jan 1970 00:02:01 +0000
From: quux
@@ -108,15 +116,15 @@
@@ -0,0 +1,1 @@
+a
- displaying [PATCH 2 of 2] b ...
+ Displaying [PATCH 2 of 2] b ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 2 of 2] b
X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- Message-Id: <97d72e5f12c7e84f8506.122@*> (glob)
- In-Reply-To: <patchbomb.120@*> (glob)
- References: <patchbomb.120@*> (glob)
+ Message-Id: <97d72e5f12c7e84f8506\.122@[^>]*> (re)
+ In-Reply-To: <patchbomb\.120@[^>]*> (re)
+ References: <patchbomb\.120@[^>]*> (re)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Thu, 01 Jan 1970 00:02:02 +0000
From: quux
@@ -139,10 +147,12 @@
.hg/last-email.txt
- $ cat > editor.sh << '__EOF__'
+ $ cat > editor << '__EOF__'
+ > #!/bin/sh
> echo "a precious introductory message" > "$1"
> __EOF__
- $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg email -n -t foo -s test -r 0:tip > /dev/null
+ $ chmod +x editor
+ $ HGEDITOR="'`pwd`'"/editor hg email -n -t foo -s test -r 0:tip > /dev/null
$ cat .hg/last-email.txt
a precious introductory message
@@ -150,27 +160,27 @@
> --config extensions.progress= --config progress.assume-tty=1 \
> --config progress.delay=0 --config progress.refresh=0 \
> --config progress.width=60 2>&1 | \
- > python "$TESTDIR/filtercr.py"
- this patch series consists of 2 patches.
+ > python $TESTDIR/filtercr.py
+ This patch series consists of 2 patches.
Write the introductory message for the patch series.
- sending [ ] 0/3
- sending [ ] 0/3
+ writing [ ] 0/3
+ writing [ ] 0/3
- sending [==============> ] 1/3
- sending [==============> ] 1/3
+ writing [==============> ] 1/3
+ writing [==============> ] 1/3
- sending [=============================> ] 2/3
- sending [=============================> ] 2/3
+ writing [=============================> ] 2/3
+ writing [=============================> ] 2/3
\r (esc)
- sending [PATCH 0 of 2] test ...
- sending [PATCH 1 of 2] a ...
- sending [PATCH 2 of 2] b ...
+ Writing [PATCH 0 of 2] test ...
+ Writing [PATCH 1 of 2] a ...
+ Writing [PATCH 2 of 2] b ...
$ cd ..
@@ -190,22 +200,22 @@
test bundle and description:
$ hg email --date '1970-1-1 0:3' -n -f quux -t foo \
- > -c bar -s test -r tip -b --desc description
+ > -c bar -s test -r tip -b --desc description | fixheaders
searching for changes
1 changesets found
- displaying test ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ Displaying test ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: test
- Message-Id: <patchbomb.180@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <patchbomb.180@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:03:00 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -214,7 +224,7 @@ test bundle and description:
description
- --===* (glob)
+ --===
Content-Type: application/x-mercurial-bundle
MIME-Version: 1.0
Content-Disposition: attachment; filename="bundle.hg"
@@ -227,176 +237,86 @@ test bundle and description:
SlIBpFisgGkyRjX//TMtfcUAEsGu56+YnE1OlTZmzKm8BSu2rvo4rHAYYaadIFFuTy0LYgIkgLVD
sgVa2F19D1tx9+hgbAygLgQwaIqcDdgA4BjQgIiz/AEP72++llgDKhKducqodGE4B0ETqF3JFOFC
Q70eyNw=
- --===*-- (glob)
+ --===
utf-8 patch:
$ python -c 'fp = open("utf", "wb"); fp.write("h\xC3\xB6mma!\n"); fp.close();'
- $ hg commit -A -d '4 0' -m 'utf-8 content'
+ $ hg commit -A -d '4 0' -m 'charset=utf-8; content-transfer-encoding: base64'
adding description
adding utf
no mime encoding for email --test:
- $ hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n
- this patch series consists of 1 patches.
-
-
- displaying [PATCH] utf-8 content ...
- Content-Type: text/plain; charset="us-ascii"
- MIME-Version: 1.0
- Content-Transfer-Encoding: 8bit
- Subject: [PATCH] utf-8 content
- X-Mercurial-Node: 909a00e13e9d78b575aeee23dddbada46d5a143f
- Message-Id: <909a00e13e9d78b575ae.240@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
- Date: Thu, 01 Jan 1970 00:04:00 +0000
- From: quux
- To: foo
- Cc: bar
-
- # HG changeset patch
- # User test
- # Date 4 0
- # Node ID 909a00e13e9d78b575aeee23dddbada46d5a143f
- # Parent ff2c9fa2018b15fa74b33363bda9527323e2a99f
- utf-8 content
-
- diff -r ff2c9fa2018b -r 909a00e13e9d description
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/description Thu Jan 01 00:00:04 1970 +0000
- @@ -0,0 +1,3 @@
- +a multiline
- +
- +description
- diff -r ff2c9fa2018b -r 909a00e13e9d utf
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/utf Thu Jan 01 00:00:04 1970 +0000
- @@ -0,0 +1,1 @@
- +h\xc3\xb6mma! (esc)
-
+ $ hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n | fixheaders > mailtest
+
+md5sum of 8-bit output:
+ $ $TESTDIR/md5sum.py mailtest
+ e726c29b3008e77994c7572563e57c34 mailtest
+
+ $ rm mailtest
mime encoded mbox (base64):
- $ hg email --date '1970-1-1 0:4' -f 'Q <quux>' -t foo -c bar -r tip -m mbox
- this patch series consists of 1 patches.
+ $ hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -m mbox
+ This patch series consists of 1 patches.
- sending [PATCH] utf-8 content ...
+ Writing [PATCH] charset=utf-8; content-transfer-encoding: base64 ...
$ cat mbox
- From quux ... ... .. ..:..:.. .... (re)
+ From quux Thu Jan 01 00:04:01 1970
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
- Subject: [PATCH] utf-8 content
- X-Mercurial-Node: 909a00e13e9d78b575aeee23dddbada46d5a143f
- Message-Id: <909a00e13e9d78b575ae.240@*> (glob)
+ Subject: [PATCH] charset=utf-8; content-transfer-encoding: base64
+ X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
+ Message-Id: <c3c9e37db9f4fe4882cd.240@* (glob)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Thu, 01 Jan 1970 00:04:00 +0000
- From: Q <quux>
+ From: quux
To: foo
Cc: bar
- IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIHRlc3QKIyBEYXRlIDQgMAojIE5vZGUgSUQgOTA5
- YTAwZTEzZTlkNzhiNTc1YWVlZTIzZGRkYmFkYTQ2ZDVhMTQzZgojIFBhcmVudCAgZmYyYzlmYTIw
- MThiMTVmYTc0YjMzMzYzYmRhOTUyNzMyM2UyYTk5Zgp1dGYtOCBjb250ZW50CgpkaWZmIC1yIGZm
- MmM5ZmEyMDE4YiAtciA5MDlhMDBlMTNlOWQgZGVzY3JpcHRpb24KLS0tIC9kZXYvbnVsbAlUaHUg
- SmFuIDAxIDAwOjAwOjAwIDE5NzAgKzAwMDAKKysrIGIvZGVzY3JpcHRpb24JVGh1IEphbiAwMSAw
- MDowMDowNCAxOTcwICswMDAwCkBAIC0wLDAgKzEsMyBAQAorYSBtdWx0aWxpbmUKKworZGVzY3Jp
- cHRpb24KZGlmZiAtciBmZjJjOWZhMjAxOGIgLXIgOTA5YTAwZTEzZTlkIHV0ZgotLS0gL2Rldi9u
- dWxsCVRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCArMDAwMAorKysgYi91dGYJVGh1IEphbiAwMSAw
- MDowMDowNCAxOTcwICswMDAwCkBAIC0wLDAgKzEsMSBAQAoraMO2bW1hIQo=
-
-
- $ python -c 'print open("mbox").read().split("\n\n")[1].decode("base64")'
- # HG changeset patch
- # User test
- # Date 4 0
- # Node ID 909a00e13e9d78b575aeee23dddbada46d5a143f
- # Parent ff2c9fa2018b15fa74b33363bda9527323e2a99f
- utf-8 content
+ IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIHRlc3QKIyBEYXRlIDQgMAojIE5vZGUgSUQgYzNj
+ OWUzN2RiOWY0ZmU0ODgyY2RhMzliYWY0MmZlZDZiYWQ4YjE1YQojIFBhcmVudCAgZmYyYzlmYTIw
+ MThiMTVmYTc0YjMzMzYzYmRhOTUyNzMyM2UyYTk5ZgpjaGFyc2V0PXV0Zi04OyBjb250ZW50LXRy
+ YW5zZmVyLWVuY29kaW5nOiBiYXNlNjQKCmRpZmYgLXIgZmYyYzlmYTIwMThiIC1yIGMzYzllMzdk
+ YjlmNCBkZXNjcmlwdGlvbgotLS0gL2Rldi9udWxsCVRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCAr
+ MDAwMAorKysgYi9kZXNjcmlwdGlvbglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg
+ LTAsMCArMSwzIEBACithIG11bHRpbGluZQorCitkZXNjcmlwdGlvbgpkaWZmIC1yIGZmMmM5ZmEy
+ MDE4YiAtciBjM2M5ZTM3ZGI5ZjQgdXRmCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDow
+ MCAxOTcwICswMDAwCisrKyBiL3V0ZglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg
+ LTAsMCArMSwxIEBACitow7ZtbWEhCg==
- diff -r ff2c9fa2018b -r 909a00e13e9d description
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/description Thu Jan 01 00:00:04 1970 +0000
- @@ -0,0 +1,3 @@
- +a multiline
- +
- +description
- diff -r ff2c9fa2018b -r 909a00e13e9d utf
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/utf Thu Jan 01 00:00:04 1970 +0000
- @@ -0,0 +1,1 @@
- +h\xc3\xb6mma! (esc)
$ rm mbox
mime encoded mbox (quoted-printable):
- $ python -c 'fp = open("long", "wb"); fp.write("%s\nfoo\n\nbar\n" % ("x" * 1024)); fp.close();'
- $ hg commit -A -d '4 0' -m 'long line'
- adding long
+ $ python -c 'fp = open("qp", "wb"); fp.write("%s\nfoo\n\nbar\n" % ("x" * 1024)); fp.close();'
+ $ hg commit -A -d '4 0' -m 'charset=utf-8; content-transfer-encoding: quoted-printable'
+ adding qp
no mime encoding for email --test:
- $ hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n
- this patch series consists of 1 patches.
-
-
- displaying [PATCH] long line ...
- Content-Type: text/plain; charset="us-ascii"
- MIME-Version: 1.0
- Content-Transfer-Encoding: quoted-printable
- Subject: [PATCH] long line
- X-Mercurial-Node: a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- Message-Id: <a2ea8fc83dd8b93cfd86.240@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
- Date: Thu, 01 Jan 1970 00:04:00 +0000
- From: quux
- To: foo
- Cc: bar
-
- # HG changeset patch
- # User test
- # Date 4 0
- # Node ID a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- # Parent 909a00e13e9d78b575aeee23dddbada46d5a143f
- long line
-
- diff -r 909a00e13e9d -r a2ea8fc83dd8 long
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/long Thu Jan 01 00:00:04 1970 +0000
- @@ -0,0 +1,4 @@
- +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- +foo
- +
- +bar
-
+ $ hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n | \
+ > fixheaders > mailtest
+md5sum of qp output:
+ $ $TESTDIR/md5sum.py mailtest
+ 0402c7d033e04044e423bb04816f9dae mailtest
+ $ rm mailtest
mime encoded mbox (quoted-printable):
$ hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -m mbox
- this patch series consists of 1 patches.
+ This patch series consists of 1 patches.
- sending [PATCH] long line ...
- $ cat mbox
- From quux ... ... .. ..:..:.. .... (re)
+ Writing [PATCH] charset=utf-8; content-transfer-encoding: quoted-printable ...
+ $ cat mbox | fixheaders
+ From quux Thu Jan 01 00:04:01 1970
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
- Subject: [PATCH] long line
- X-Mercurial-Node: a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- Message-Id: <a2ea8fc83dd8b93cfd86.240@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Subject: [PATCH] charset=utf-8; content-transfer-encoding: quoted-printable
+ X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ Message-Id: <c655633f8c87700bb38c.240@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:04:00 +0000
From: quux
To: foo
@@ -405,13 +325,13 @@ mime encoded mbox (quoted-printable):
# HG changeset patch
# User test
# Date 4 0
- # Node ID a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- # Parent 909a00e13e9d78b575aeee23dddbada46d5a143f
- long line
+ # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
+ charset=3Dutf-8; content-transfer-encoding: quoted-printable
- diff -r 909a00e13e9d -r a2ea8fc83dd8 long
+ diff -r c3c9e37db9f4 -r c655633f8c87 qp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/long Thu Jan 01 00:00:04 1970 +0000
+ +++ b/qp Thu Jan 01 00:00:04 1970 +0000
@@ -0,0 +1,4 @@
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
@@ -437,47 +357,25 @@ mime encoded mbox (quoted-printable):
iso-8859-1 patch:
$ python -c 'fp = open("isolatin", "wb"); fp.write("h\xF6mma!\n"); fp.close();'
- $ hg commit -A -d '5 0' -m 'isolatin 8-bit encoding'
+ $ hg commit -A -d '5 0' -m 'charset=us-ascii; content-transfer-encoding: 8bit'
adding isolatin
fake ascii mbox:
$ hg email --date '1970-1-1 0:5' -f quux -t foo -c bar -r tip -m mbox
- this patch series consists of 1 patches.
-
-
- sending [PATCH] isolatin 8-bit encoding ...
- $ cat mbox
- From quux ... ... .. ..:..:.. .... (re)
- Content-Type: text/plain; charset="us-ascii"
- MIME-Version: 1.0
- Content-Transfer-Encoding: 8bit
- Subject: [PATCH] isolatin 8-bit encoding
- X-Mercurial-Node: 240fb913fc1b7ff15ddb9f33e73d82bf5277c720
- Message-Id: <240fb913fc1b7ff15ddb.300@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
- Date: Thu, 01 Jan 1970 00:05:00 +0000
- From: quux
- To: foo
- Cc: bar
-
- # HG changeset patch
- # User test
- # Date 5 0
- # Node ID 240fb913fc1b7ff15ddb9f33e73d82bf5277c720
- # Parent a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- isolatin 8-bit encoding
-
- diff -r a2ea8fc83dd8 -r 240fb913fc1b isolatin
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/isolatin Thu Jan 01 00:00:05 1970 +0000
- @@ -0,0 +1,1 @@
- +h\xf6mma! (esc)
+ This patch series consists of 1 patches.
+ Writing [PATCH] charset=us-ascii; content-transfer-encoding: 8bit ...
+ $ fixheaders < mbox > mboxfix
+
+md5sum of 8-bit output:
+ $ $TESTDIR/md5sum.py mboxfix
+ 9ea043d8fc43a71045114508baed144b mboxfix
test diffstat for single patch:
- $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y -r 2
- this patch series consists of 1 patches.
+ $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y -r 2 | \
+ > fixheaders
+ This patch series consists of 1 patches.
Final summary:
@@ -491,14 +389,14 @@ test diffstat for single patch:
are you sure you want to send (yn)? y
- displaying [PATCH] test ...
+ Displaying [PATCH] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH] test
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <ff2c9fa2018b15fa74b3.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
@@ -524,8 +422,8 @@ test diffstat for single patch:
test diffstat for multiple patches:
$ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y \
- > -r 0:1
- this patch series consists of 2 patches.
+ > -r 0:1 | fixheaders
+ This patch series consists of 2 patches.
Write the introductory message for the patch series.
@@ -549,13 +447,13 @@ test diffstat for multiple patches:
are you sure you want to send (yn)? y
- displaying [PATCH 0 of 2] test ...
+ Displaying [PATCH 0 of 2] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 2] test
- Message-Id: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
@@ -566,16 +464,16 @@ test diffstat for multiple patches:
b | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
- displaying [PATCH 1 of 2] a ...
+ Displaying [PATCH 1 of 2] a ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 1 of 2] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.61@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <8580ff50825a50c8f716.61@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:01 +0000
From: quux
To: foo
@@ -598,16 +496,16 @@ test diffstat for multiple patches:
@@ -0,0 +1,1 @@
+a
- displaying [PATCH 2 of 2] b ...
+ Displaying [PATCH 2 of 2] b ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 2 of 2] b
X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- Message-Id: <97d72e5f12c7e84f8506.62@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <97d72e5f12c7e84f8506.62@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:02 +0000
From: quux
To: foo
@@ -632,23 +530,24 @@ test diffstat for multiple patches:
test inline for single patch:
- $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 2
- this patch series consists of 1 patches.
+ $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 2 | \
+ > fixheaders
+ This patch series consists of 1 patches.
- displaying [PATCH] test ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ Displaying [PATCH] test ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: [PATCH] test
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <ff2c9fa2018b15fa74b3.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -667,27 +566,28 @@ test inline for single patch:
@@ -0,0 +1,1 @@
+c
- --===*-- (glob)
+ --===
test inline for single patch (quoted-printable):
- $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 4
- this patch series consists of 1 patches.
+ $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 4 | \
+ > fixheaders
+ This patch series consists of 1 patches.
- displaying [PATCH] test ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ Displaying [PATCH] test ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: [PATCH] test
- X-Mercurial-Node: a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- Message-Id: <a2ea8fc83dd8b93cfd86.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ Message-Id: <c655633f8c87700bb38c.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
@@ -696,13 +596,13 @@ test inline for single patch (quoted-printable):
# HG changeset patch
# User test
# Date 4 0
- # Node ID a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- # Parent 909a00e13e9d78b575aeee23dddbada46d5a143f
- long line
+ # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
+ charset=3Dutf-8; content-transfer-encoding: quoted-printable
- diff -r 909a00e13e9d -r a2ea8fc83dd8 long
+ diff -r c3c9e37db9f4 -r c655633f8c87 qp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/long Thu Jan 01 00:00:04 1970 +0000
+ +++ b/qp Thu Jan 01 00:00:04 1970 +0000
@@ -0,0 +1,4 @@
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
@@ -722,45 +622,45 @@ test inline for single patch (quoted-printable):
+
+bar
- --===*-- (glob)
+ --===
test inline for multiple patches:
$ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i \
- > -r 0:1 -r 4
- this patch series consists of 3 patches.
+ > -r 0:1 -r 4 | fixheaders
+ This patch series consists of 3 patches.
Write the introductory message for the patch series.
- displaying [PATCH 0 of 3] test ...
+ Displaying [PATCH 0 of 3] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 3] test
- Message-Id: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- displaying [PATCH 1 of 3] a ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ Displaying [PATCH 1 of 3] a ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: [PATCH 1 of 3] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.61@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <8580ff50825a50c8f716.61@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:01 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -779,22 +679,22 @@ test inline for multiple patches:
@@ -0,0 +1,1 @@
+a
- --===*-- (glob)
- displaying [PATCH 2 of 3] b ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ --===
+ Displaying [PATCH 2 of 3] b ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: [PATCH 2 of 3] b
X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- Message-Id: <97d72e5f12c7e84f8506.62@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <97d72e5f12c7e84f8506.62@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:02 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -813,22 +713,23 @@ test inline for multiple patches:
@@ -0,0 +1,1 @@
+b
- --===*-- (glob)
- displaying [PATCH 3 of 3] long line ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
- MIME-Version: 1.0
- Subject: [PATCH 3 of 3] long line
- X-Mercurial-Node: a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- Message-Id: <a2ea8fc83dd8b93cfd86.63@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ --===
+ Displaying [PATCH 3 of 3] charset=utf-8; content-transfer-encoding: quoted-printable ...
+ Content-Type: multipart/mixed; boundary="===
+ MIME-Version: 1.0
+ Subject: [PATCH 3 of 3] charset=utf-8;
+ content-transfer-encoding: quoted-printable
+ X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ Message-Id: <c655633f8c87700bb38c.63@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:03 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
@@ -837,13 +738,13 @@ test inline for multiple patches:
# HG changeset patch
# User test
# Date 4 0
- # Node ID a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- # Parent 909a00e13e9d78b575aeee23dddbada46d5a143f
- long line
+ # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
+ charset=3Dutf-8; content-transfer-encoding: quoted-printable
- diff -r 909a00e13e9d -r a2ea8fc83dd8 long
+ diff -r c3c9e37db9f4 -r c655633f8c87 qp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/long Thu Jan 01 00:00:04 1970 +0000
+ +++ b/qp Thu Jan 01 00:00:04 1970 +0000
@@ -0,0 +1,4 @@
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
@@ -863,26 +764,27 @@ test inline for multiple patches:
+
+bar
- --===*-- (glob)
+ --===
test attach for single patch:
- $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a -r 2
- this patch series consists of 1 patches.
+ $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a -r 2 | \
+ > fixheaders
+ This patch series consists of 1 patches.
- displaying [PATCH] test ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ Displaying [PATCH] test ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: [PATCH] test
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <ff2c9fa2018b15fa74b3.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -891,7 +793,7 @@ test attach for single patch:
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -910,26 +812,27 @@ test attach for single patch:
@@ -0,0 +1,1 @@
+c
- --===*-- (glob)
+ --===
test attach for single patch (quoted-printable):
- $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a -r 4
- this patch series consists of 1 patches.
+ $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a -r 4 | \
+ > fixheaders
+ This patch series consists of 1 patches.
- displaying [PATCH] test ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ Displaying [PATCH] test ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: [PATCH] test
- X-Mercurial-Node: a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- Message-Id: <a2ea8fc83dd8b93cfd86.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ Message-Id: <c655633f8c87700bb38c.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -938,7 +841,7 @@ test attach for single patch (quoted-printable):
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
@@ -947,13 +850,13 @@ test attach for single patch (quoted-printable):
# HG changeset patch
# User test
# Date 4 0
- # Node ID a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- # Parent 909a00e13e9d78b575aeee23dddbada46d5a143f
- long line
+ # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
+ charset=3Dutf-8; content-transfer-encoding: quoted-printable
- diff -r 909a00e13e9d -r a2ea8fc83dd8 long
+ diff -r c3c9e37db9f4 -r c655633f8c87 qp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/long Thu Jan 01 00:00:04 1970 +0000
+ +++ b/qp Thu Jan 01 00:00:04 1970 +0000
@@ -0,0 +1,4 @@
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
@@ -973,101 +876,45 @@ test attach for single patch (quoted-printable):
+
+bar
- --===*-- (glob)
-
-test attach and body for single patch:
- $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a --body -r 2
- this patch series consists of 1 patches.
-
-
- displaying [PATCH] test ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
- MIME-Version: 1.0
- Subject: [PATCH] test
- X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
- Date: Thu, 01 Jan 1970 00:01:00 +0000
- From: quux
- To: foo
- Cc: bar
-
- --===* (glob)
- Content-Type: text/plain; charset="us-ascii"
- MIME-Version: 1.0
- Content-Transfer-Encoding: 7bit
-
- # HG changeset patch
- # User test
- # Date 3 0
- # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
- # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- c
-
- diff -r 97d72e5f12c7 -r ff2c9fa2018b c
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/c Thu Jan 01 00:00:03 1970 +0000
- @@ -0,0 +1,1 @@
- +c
-
- --===* (glob)
- Content-Type: text/x-patch; charset="us-ascii"
- MIME-Version: 1.0
- Content-Transfer-Encoding: 7bit
- Content-Disposition: attachment; filename=t2.patch
-
- # HG changeset patch
- # User test
- # Date 3 0
- # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
- # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- c
-
- diff -r 97d72e5f12c7 -r ff2c9fa2018b c
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/c Thu Jan 01 00:00:03 1970 +0000
- @@ -0,0 +1,1 @@
- +c
-
- --===*-- (glob)
+ --===
test attach for multiple patches:
$ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a \
- > -r 0:1 -r 4
- this patch series consists of 3 patches.
+ > -r 0:1 -r 4 | fixheaders
+ This patch series consists of 3 patches.
Write the introductory message for the patch series.
- displaying [PATCH 0 of 3] test ...
+ Displaying [PATCH 0 of 3] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 3] test
- Message-Id: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- displaying [PATCH 1 of 3] a ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ Displaying [PATCH 1 of 3] a ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: [PATCH 1 of 3] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.61@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <8580ff50825a50c8f716.61@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:01 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -1076,7 +923,7 @@ test attach for multiple patches:
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -1095,22 +942,22 @@ test attach for multiple patches:
@@ -0,0 +1,1 @@
+a
- --===*-- (glob)
- displaying [PATCH 2 of 3] b ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ --===
+ Displaying [PATCH 2 of 3] b ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: [PATCH 2 of 3] b
X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- Message-Id: <97d72e5f12c7e84f8506.62@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <97d72e5f12c7e84f8506.62@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:02 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -1119,7 +966,7 @@ test attach for multiple patches:
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -1138,22 +985,23 @@ test attach for multiple patches:
@@ -0,0 +1,1 @@
+b
- --===*-- (glob)
- displaying [PATCH 3 of 3] long line ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
- MIME-Version: 1.0
- Subject: [PATCH 3 of 3] long line
- X-Mercurial-Node: a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- Message-Id: <a2ea8fc83dd8b93cfd86.63@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ --===
+ Displaying [PATCH 3 of 3] charset=utf-8; content-transfer-encoding: quoted-printable ...
+ Content-Type: multipart/mixed; boundary="===
+ MIME-Version: 1.0
+ Subject: [PATCH 3 of 3] charset=utf-8;
+ content-transfer-encoding: quoted-printable
+ X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ Message-Id: <c655633f8c87700bb38c.63@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:03 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -1162,7 +1010,7 @@ test attach for multiple patches:
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
@@ -1171,13 +1019,13 @@ test attach for multiple patches:
# HG changeset patch
# User test
# Date 4 0
- # Node ID a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- # Parent 909a00e13e9d78b575aeee23dddbada46d5a143f
- long line
+ # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
+ charset=3Dutf-8; content-transfer-encoding: quoted-printable
- diff -r 909a00e13e9d -r a2ea8fc83dd8 long
+ diff -r c3c9e37db9f4 -r c655633f8c87 qp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/long Thu Jan 01 00:00:04 1970 +0000
+ +++ b/qp Thu Jan 01 00:00:04 1970 +0000
@@ -0,0 +1,4 @@
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
@@ -1197,40 +1045,40 @@ test attach for multiple patches:
+
+bar
- --===*-- (glob)
+ --===
test intro for single patch:
$ hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test \
- > -r 2
- this patch series consists of 1 patches.
+ > -r 2 | fixheaders
+ This patch series consists of 1 patches.
Write the introductory message for the patch series.
- displaying [PATCH 0 of 1] test ...
+ Displaying [PATCH 0 of 1] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 1] test
- Message-Id: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- displaying [PATCH 1 of 1] c ...
+ Displaying [PATCH 1 of 1] c ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 1 of 1] c
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.61@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <ff2c9fa2018b15fa74b3.61@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:01 +0000
From: quux
To: foo
@@ -1253,17 +1101,17 @@ test intro for single patch:
test --desc without --intro for a single patch:
$ echo foo > intro.text
$ hg email --date '1970-1-1 0:1' -n --desc intro.text -f quux -t foo -c bar \
- > -s test -r 2
- this patch series consists of 1 patches.
+ > -s test -r 2 | fixheaders
+ This patch series consists of 1 patches.
- displaying [PATCH 0 of 1] test ...
+ Displaying [PATCH 0 of 1] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 1] test
- Message-Id: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
@@ -1271,16 +1119,16 @@ test --desc without --intro for a single patch:
foo
- displaying [PATCH 1 of 1] c ...
+ Displaying [PATCH 1 of 1] c ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 1 of 1] c
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.61@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <ff2c9fa2018b15fa74b3.61@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:01 +0000
From: quux
To: foo
@@ -1302,36 +1150,36 @@ test --desc without --intro for a single patch:
test intro for multiple patches:
$ hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test \
- > -r 0:1
- this patch series consists of 2 patches.
+ > -r 0:1 | fixheaders
+ This patch series consists of 2 patches.
Write the introductory message for the patch series.
- displaying [PATCH 0 of 2] test ...
+ Displaying [PATCH 0 of 2] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 2] test
- Message-Id: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- displaying [PATCH 1 of 2] a ...
+ Displaying [PATCH 1 of 2] a ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 1 of 2] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.61@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <8580ff50825a50c8f716.61@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:01 +0000
From: quux
To: foo
@@ -1350,16 +1198,16 @@ test intro for multiple patches:
@@ -0,0 +1,1 @@
+a
- displaying [PATCH 2 of 2] b ...
+ Displaying [PATCH 2 of 2] b ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 2 of 2] b
X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- Message-Id: <97d72e5f12c7e84f8506.62@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <97d72e5f12c7e84f8506.62@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:02 +0000
From: quux
To: foo
@@ -1381,18 +1229,18 @@ test intro for multiple patches:
test reply-to via config:
$ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -r 2 \
- > --config patchbomb.reply-to='baz@example.com'
- this patch series consists of 1 patches.
+ > --config patchbomb.reply-to='baz@example.com' | fixheaders
+ This patch series consists of 1 patches.
- displaying [PATCH] test ...
+ Displaying [PATCH] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH] test
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <ff2c9fa2018b15fa74b3.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
@@ -1415,18 +1263,18 @@ test reply-to via config:
test reply-to via command line:
$ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -r 2 \
- > --reply-to baz --reply-to fred
- this patch series consists of 1 patches.
+ > --reply-to baz --reply-to fred | fixheaders
+ This patch series consists of 1 patches.
- displaying [PATCH] test ...
+ Displaying [PATCH] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH] test
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <ff2c9fa2018b15fa74b3.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
@@ -1453,23 +1301,24 @@ tagging csets:
$ hg tag -r2 two two.diff
test inline for single named patch:
- $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 2
- this patch series consists of 1 patches.
+ $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 2 | \
+ > fixheaders
+ This patch series consists of 1 patches.
- displaying [PATCH] test ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ Displaying [PATCH] test ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: [PATCH] test
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <ff2c9fa2018b15fa74b3.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -1488,44 +1337,45 @@ test inline for single named patch:
@@ -0,0 +1,1 @@
+c
- --===*-- (glob)
+ --===
test inline for multiple named/unnamed patches:
- $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 0:1
- this patch series consists of 2 patches.
+ $ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 0:1 | \
+ > fixheaders
+ This patch series consists of 2 patches.
Write the introductory message for the patch series.
- displaying [PATCH 0 of 2] test ...
+ Displaying [PATCH 0 of 2] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 2] test
- Message-Id: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- displaying [PATCH 1 of 2] a ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ Displaying [PATCH 1 of 2] a ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: [PATCH 1 of 2] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.61@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <8580ff50825a50c8f716.61@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:01 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -1544,22 +1394,22 @@ test inline for multiple named/unnamed patches:
@@ -0,0 +1,1 @@
+a
- --===*-- (glob)
- displaying [PATCH 2 of 2] b ...
- Content-Type: multipart/mixed; boundary="===*" (glob)
+ --===
+ Displaying [PATCH 2 of 2] b ...
+ Content-Type: multipart/mixed; boundary="===
MIME-Version: 1.0
Subject: [PATCH 2 of 2] b
X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- Message-Id: <97d72e5f12c7e84f8506.62@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <97d72e5f12c7e84f8506.62@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:02 +0000
From: quux
To: foo
Cc: bar
- --===* (glob)
+ --===
Content-Type: text/x-patch; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
@@ -1578,25 +1428,25 @@ test inline for multiple named/unnamed patches:
@@ -0,0 +1,1 @@
+b
- --===*-- (glob)
+ --===
test inreplyto:
$ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
- > -r tip
- this patch series consists of 1 patches.
+ > -r tip | fixheaders
+ This patch series consists of 1 patches.
- displaying [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b ...
+ Displaying [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b
- X-Mercurial-Node: 7aead2484924c445ad8ce2613df91f52f9e502ed
- Message-Id: <7aead2484924c445ad8c.60@*> (glob)
+ X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6
+ Message-Id: <e317db6a6f288748d1f6.60@
In-Reply-To: <baz>
References: <baz>
- User-Agent: Mercurial-patchbomb/* (glob)
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
@@ -1605,11 +1455,11 @@ test inreplyto:
# HG changeset patch
# User test
# Date 0 0
- # Node ID 7aead2484924c445ad8ce2613df91f52f9e502ed
- # Parent 045ca29b1ea20e4940411e695e20e521f2f0f98e
+ # Node ID e317db6a6f288748d1f6cb064f3810fcba66b1b6
+ # Parent eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
Added tag two, two.diff for changeset ff2c9fa2018b
- diff -r 045ca29b1ea2 -r 7aead2484924 .hgtags
+ diff -r eae5fcf795ee -r e317db6a6f28 .hgtags
--- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
@@ -2,3 +2,5 @@
@@ -1619,105 +1469,47 @@ test inreplyto:
+ff2c9fa2018b15fa74b33363bda9527323e2a99f two
+ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff
-no intro message in non-interactive mode
+
$ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
> -r 0:1
- this patch series consists of 2 patches.
-
- (optional) Subject: [PATCH 0 of 2]
-
- displaying [PATCH 1 of 2] a ...
- Content-Type: text/plain; charset="us-ascii"
- MIME-Version: 1.0
- Content-Transfer-Encoding: 7bit
- Subject: [PATCH 1 of 2] a
- X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.60@*> (glob)
- In-Reply-To: <baz>
- References: <baz>
- User-Agent: Mercurial-patchbomb/* (glob)
- Date: Thu, 01 Jan 1970 00:01:00 +0000
- From: quux
- To: foo
- Cc: bar
-
- # HG changeset patch
- # User test
- # Date 1 0
- # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
- # Parent 0000000000000000000000000000000000000000
- a
-
- diff -r 000000000000 -r 8580ff50825a a
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/a Thu Jan 01 00:00:01 1970 +0000
- @@ -0,0 +1,1 @@
- +a
-
- displaying [PATCH 2 of 2] b ...
- Content-Type: text/plain; charset="us-ascii"
- MIME-Version: 1.0
- Content-Transfer-Encoding: 7bit
- Subject: [PATCH 2 of 2] b
- X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- Message-Id: <97d72e5f12c7e84f8506.61@*> (glob)
- In-Reply-To: <8580ff50825a50c8f716.60@*> (glob)
- References: <8580ff50825a50c8f716.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
- Date: Thu, 01 Jan 1970 00:01:01 +0000
- From: quux
- To: foo
- Cc: bar
-
- # HG changeset patch
- # User test
- # Date 2 0
- # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
- b
+ This patch series consists of 2 patches.
- diff -r 8580ff50825a -r 97d72e5f12c7 b
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/b Thu Jan 01 00:00:02 1970 +0000
- @@ -0,0 +1,1 @@
- +b
-
-
-
+ abort: Subject: [PATCH 0 of 2] Please enter a valid value
+ [255]
$ hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
- > -s test -r 0:1
- this patch series consists of 2 patches.
+ > -s test -r 0:1 | fixheaders
+ This patch series consists of 2 patches.
Write the introductory message for the patch series.
- displaying [PATCH 0 of 2] test ...
+ Displaying [PATCH 0 of 2] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 2] test
- Message-Id: <patchbomb.60@*> (glob)
+ Message-Id: <patchbomb.60@
In-Reply-To: <baz>
References: <baz>
- User-Agent: Mercurial-patchbomb/* (glob)
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- displaying [PATCH 1 of 2] a ...
+ Displaying [PATCH 1 of 2] a ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 1 of 2] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.61@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <8580ff50825a50c8f716.61@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:01 +0000
From: quux
To: foo
@@ -1736,16 +1528,16 @@ no intro message in non-interactive mode
@@ -0,0 +1,1 @@
+a
- displaying [PATCH 2 of 2] b ...
+ Displaying [PATCH 2 of 2] b ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 2 of 2] b
X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- Message-Id: <97d72e5f12c7e84f8506.62@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <97d72e5f12c7e84f8506.62@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:02 +0000
From: quux
To: foo
@@ -1767,18 +1559,18 @@ no intro message in non-interactive mode
test single flag for single patch:
$ hg email --date '1970-1-1 0:1' -n --flag fooFlag -f quux -t foo -c bar -s test \
- > -r 2
- this patch series consists of 1 patches.
+ > -r 2 | fixheaders
+ This patch series consists of 1 patches.
- displaying [PATCH fooFlag] test ...
+ Displaying [PATCH fooFlag] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH fooFlag] test
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <ff2c9fa2018b15fa74b3.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
@@ -1800,36 +1592,36 @@ test single flag for single patch:
test single flag for multiple patches:
$ hg email --date '1970-1-1 0:1' -n --flag fooFlag -f quux -t foo -c bar -s test \
- > -r 0:1
- this patch series consists of 2 patches.
+ > -r 0:1 | fixheaders
+ This patch series consists of 2 patches.
Write the introductory message for the patch series.
- displaying [PATCH 0 of 2 fooFlag] test ...
+ Displaying [PATCH 0 of 2 fooFlag] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 2 fooFlag] test
- Message-Id: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- displaying [PATCH 1 of 2 fooFlag] a ...
+ Displaying [PATCH 1 of 2 fooFlag] a ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 1 of 2 fooFlag] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.61@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <8580ff50825a50c8f716.61@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:01 +0000
From: quux
To: foo
@@ -1848,16 +1640,16 @@ test single flag for multiple patches:
@@ -0,0 +1,1 @@
+a
- displaying [PATCH 2 of 2 fooFlag] b ...
+ Displaying [PATCH 2 of 2 fooFlag] b ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 2 of 2 fooFlag] b
X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- Message-Id: <97d72e5f12c7e84f8506.62@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <97d72e5f12c7e84f8506.62@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:02 +0000
From: quux
To: foo
@@ -1879,18 +1671,18 @@ test single flag for multiple patches:
test mutiple flags for single patch:
$ hg email --date '1970-1-1 0:1' -n --flag fooFlag --flag barFlag -f quux -t foo \
- > -c bar -s test -r 2
- this patch series consists of 1 patches.
+ > -c bar -s test -r 2 | fixheaders
+ This patch series consists of 1 patches.
- displaying [PATCH fooFlag barFlag] test ...
+ Displaying [PATCH fooFlag barFlag] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH fooFlag barFlag] test
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <ff2c9fa2018b15fa74b3.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
@@ -1912,36 +1704,36 @@ test mutiple flags for single patch:
test multiple flags for multiple patches:
$ hg email --date '1970-1-1 0:1' -n --flag fooFlag --flag barFlag -f quux -t foo \
- > -c bar -s test -r 0:1
- this patch series consists of 2 patches.
+ > -c bar -s test -r 0:1 | fixheaders
+ This patch series consists of 2 patches.
Write the introductory message for the patch series.
- displaying [PATCH 0 of 2 fooFlag barFlag] test ...
+ Displaying [PATCH 0 of 2 fooFlag barFlag] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 2 fooFlag barFlag] test
- Message-Id: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
Cc: bar
- displaying [PATCH 1 of 2 fooFlag barFlag] a ...
+ Displaying [PATCH 1 of 2 fooFlag barFlag] a ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 1 of 2 fooFlag barFlag] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.61@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <8580ff50825a50c8f716.61@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:01 +0000
From: quux
To: foo
@@ -1960,16 +1752,16 @@ test multiple flags for multiple patches:
@@ -0,0 +1,1 @@
+a
- displaying [PATCH 2 of 2 fooFlag barFlag] b ...
+ Displaying [PATCH 2 of 2 fooFlag barFlag] b ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 2 of 2 fooFlag barFlag] b
X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
- Message-Id: <97d72e5f12c7e84f8506.62@*> (glob)
- In-Reply-To: <patchbomb.60@*> (glob)
- References: <patchbomb.60@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <97d72e5f12c7e84f8506.62@
+ In-Reply-To: <patchbomb.60@
+ References: <patchbomb.60@
+ User-Agent: Mercurial-patchbomb
Date: Thu, 01 Jan 1970 00:01:02 +0000
From: quux
To: foo
@@ -1993,19 +1785,19 @@ test multi-address parsing:
$ hg email --date '1980-1-1 0:1' -m tmp.mbox -f quux -t 'spam<spam><eggs>' \
> -t toast -c 'foo,bar@example.com' -c '"A, B <>" <a@example.com>' -s test -r 0 \
> --config email.bcc='"Quux, A." <quux>'
- this patch series consists of 1 patches.
+ This patch series consists of 1 patches.
- sending [PATCH] test ...
- $ cat < tmp.mbox
- From quux ... ... .. ..:..:.. .... (re)
+ Writing [PATCH] test ...
+ $ fixheaders < tmp.mbox
+ From quux Tue Jan 01 00:01:01 1980
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH] test
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.315532860@*> (glob)
- User-Agent: Mercurial-patchbomb/* (glob)
+ Message-Id: <8580ff50825a50c8f716.315532860@
+ User-Agent: Mercurial-patchbomb
Date: Tue, 01 Jan 1980 00:01:00 +0000
From: quux
To: spam <spam>, eggs, toast
@@ -2032,20 +1824,20 @@ test multi-byte domain parsing:
$ HGENCODING=iso-8859-1
$ export HGENCODING
$ hg email --date '1980-1-1 0:1' -m tmp.mbox -f quux -t "bar@${UUML}nicode.com" -s test -r 0
- this patch series consists of 1 patches.
+ This patch series consists of 1 patches.
Cc:
- sending [PATCH] test ...
+ Writing [PATCH] test ...
$ cat tmp.mbox
- From quux ... ... .. ..:..:.. .... (re)
+ From quux Tue Jan 01 00:01:01 1980
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH] test
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
- Message-Id: <8580ff50825a50c8f716.315532860@*> (glob)
+ Message-Id: <8580ff50825a50c8f716.315532860@* (glob)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Tue, 01 Jan 1980 00:01:00 +0000
From: quux
@@ -2072,68 +1864,42 @@ test outgoing:
$ hg branch test
marked working directory as branch test
- (branches are permanent and global, did you want a bookmark?)
$ echo d > d
$ hg add d
$ hg ci -md -d '4 0'
- $ echo d >> d
- $ hg ci -mdd -d '5 0'
- $ hg --config extensions.graphlog= glog --template "{rev}:{node|short} {desc|firstline}\n"
- @ 10:3b6f1ec9dde9 dd
- |
- o 9:2f9fa9b998c5 d
- |
- | o 8:7aead2484924 Added tag two, two.diff for changeset ff2c9fa2018b
- | |
- | o 7:045ca29b1ea2 Added tag one, one.patch for changeset 97d72e5f12c7
- | |
- | o 6:5d5ef15dfe5e Added tag zero, zero.foo for changeset 8580ff50825a
- | |
- | o 5:240fb913fc1b isolatin 8-bit encoding
- | |
- | o 4:a2ea8fc83dd8 long line
- | |
- | o 3:909a00e13e9d utf-8 content
- | |
- | o 2:ff2c9fa2018b c
- |/
- o 1:97d72e5f12c7 b
- |
- o 0:8580ff50825a a
-
- $ hg phase --force --secret -r 10
- $ hg email --date '1980-1-1 0:1' -n -t foo -s test -o ../t -r 'rev(10) or rev(6)'
+ $ hg email --date '1980-1-1 0:1' -n -t foo -s test -o ../t
comparing with ../t
+ searching for changes
From [test]: test
- this patch series consists of 6 patches.
+ This patch series consists of 8 patches.
Write the introductory message for the patch series.
Cc:
- displaying [PATCH 0 of 6] test ...
+ Displaying [PATCH 0 of 8] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
- Subject: [PATCH 0 of 6] test
- Message-Id: <patchbomb.315532860@*> (glob)
+ Subject: [PATCH 0 of 8] test
+ Message-Id: <patchbomb.315532860@* (glob)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Tue, 01 Jan 1980 00:01:00 +0000
From: test
To: foo
- displaying [PATCH 1 of 6] c ...
+ Displaying [PATCH 1 of 8] c ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
- Subject: [PATCH 1 of 6] c
+ Subject: [PATCH 1 of 8] c
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
- Message-Id: <ff2c9fa2018b15fa74b3.315532861@*> (glob)
- In-Reply-To: <patchbomb.315532860@*> (glob)
- References: <patchbomb.315532860@*> (glob)
+ Message-Id: <ff2c9fa2018b15fa74b3.315532861@* (glob)
+ In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
+ References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Tue, 01 Jan 1980 00:01:01 +0000
From: test
@@ -2152,15 +1918,15 @@ test outgoing:
@@ -0,0 +1,1 @@
+c
- displaying [PATCH 2 of 6] utf-8 content ...
+ Displaying [PATCH 2 of 8] charset=utf-8; content-transfer-encoding: base64 ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
- Subject: [PATCH 2 of 6] utf-8 content
- X-Mercurial-Node: 909a00e13e9d78b575aeee23dddbada46d5a143f
- Message-Id: <909a00e13e9d78b575ae.315532862@*> (glob)
- In-Reply-To: <patchbomb.315532860@*> (glob)
- References: <patchbomb.315532860@*> (glob)
+ Subject: [PATCH 2 of 8] charset=utf-8; content-transfer-encoding: base64
+ X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
+ Message-Id: <c3c9e37db9f4fe4882cd.315532862@* (glob)
+ In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
+ References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Tue, 01 Jan 1980 00:01:02 +0000
From: test
@@ -2169,32 +1935,33 @@ test outgoing:
# HG changeset patch
# User test
# Date 4 0
- # Node ID 909a00e13e9d78b575aeee23dddbada46d5a143f
+ # Node ID c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
# Parent ff2c9fa2018b15fa74b33363bda9527323e2a99f
- utf-8 content
+ charset=utf-8; content-transfer-encoding: base64
- diff -r ff2c9fa2018b -r 909a00e13e9d description
+ diff -r ff2c9fa2018b -r c3c9e37db9f4 description
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/description Thu Jan 01 00:00:04 1970 +0000
@@ -0,0 +1,3 @@
+a multiline
+
+description
- diff -r ff2c9fa2018b -r 909a00e13e9d utf
+ diff -r ff2c9fa2018b -r c3c9e37db9f4 utf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/utf Thu Jan 01 00:00:04 1970 +0000
@@ -0,0 +1,1 @@
+h\xc3\xb6mma! (esc)
- displaying [PATCH 3 of 6] long line ...
+ Displaying [PATCH 3 of 8] charset=utf-8; content-transfer-encoding: quoted-printable ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
- Subject: [PATCH 3 of 6] long line
- X-Mercurial-Node: a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- Message-Id: <a2ea8fc83dd8b93cfd86.315532863@*> (glob)
- In-Reply-To: <patchbomb.315532860@*> (glob)
- References: <patchbomb.315532860@*> (glob)
+ Subject: [PATCH 3 of 8] charset=utf-8;
+ content-transfer-encoding: quoted-printable
+ X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ Message-Id: <c655633f8c87700bb38c.315532863@* (glob)
+ In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
+ References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Tue, 01 Jan 1980 00:01:03 +0000
From: test
@@ -2203,13 +1970,13 @@ test outgoing:
# HG changeset patch
# User test
# Date 4 0
- # Node ID a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- # Parent 909a00e13e9d78b575aeee23dddbada46d5a143f
- long line
+ # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
+ charset=3Dutf-8; content-transfer-encoding: quoted-printable
- diff -r 909a00e13e9d -r a2ea8fc83dd8 long
+ diff -r c3c9e37db9f4 -r c655633f8c87 qp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/long Thu Jan 01 00:00:04 1970 +0000
+ +++ b/qp Thu Jan 01 00:00:04 1970 +0000
@@ -0,0 +1,4 @@
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
@@ -2229,15 +1996,15 @@ test outgoing:
+
+bar
- displaying [PATCH 4 of 6] isolatin 8-bit encoding ...
+ Displaying [PATCH 4 of 8] charset=us-ascii; content-transfer-encoding: 8bit ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
- Subject: [PATCH 4 of 6] isolatin 8-bit encoding
- X-Mercurial-Node: 240fb913fc1b7ff15ddb9f33e73d82bf5277c720
- Message-Id: <240fb913fc1b7ff15ddb.315532864@*> (glob)
- In-Reply-To: <patchbomb.315532860@*> (glob)
- References: <patchbomb.315532860@*> (glob)
+ Subject: [PATCH 4 of 8] charset=us-ascii; content-transfer-encoding: 8bit
+ X-Mercurial-Node: 22d0f96be12f5945fd67d101af58f7bc8263c835
+ Message-Id: <22d0f96be12f5945fd67.315532864@* (glob)
+ In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
+ References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Tue, 01 Jan 1980 00:01:04 +0000
From: test
@@ -2246,25 +2013,25 @@ test outgoing:
# HG changeset patch
# User test
# Date 5 0
- # Node ID 240fb913fc1b7ff15ddb9f33e73d82bf5277c720
- # Parent a2ea8fc83dd8b93cfd86ac97b28287204ab806e1
- isolatin 8-bit encoding
+ # Node ID 22d0f96be12f5945fd67d101af58f7bc8263c835
+ # Parent c655633f8c87700bb38cc6a59a2753bdc5a6c376
+ charset=us-ascii; content-transfer-encoding: 8bit
- diff -r a2ea8fc83dd8 -r 240fb913fc1b isolatin
+ diff -r c655633f8c87 -r 22d0f96be12f isolatin
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/isolatin Thu Jan 01 00:00:05 1970 +0000
@@ -0,0 +1,1 @@
+h\xf6mma! (esc)
- displaying [PATCH 5 of 6] Added tag zero, zero.foo for changeset 8580ff50825a ...
+ Displaying [PATCH 5 of 8] Added tag zero, zero.foo for changeset 8580ff50825a ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
- Subject: [PATCH 5 of 6] Added tag zero, zero.foo for changeset 8580ff50825a
- X-Mercurial-Node: 5d5ef15dfe5e7bd3a4ee154b5fff76c7945ec433
- Message-Id: <5d5ef15dfe5e7bd3a4ee.315532865@*> (glob)
- In-Reply-To: <patchbomb.315532860@*> (glob)
- References: <patchbomb.315532860@*> (glob)
+ Subject: [PATCH 5 of 8] Added tag zero, zero.foo for changeset 8580ff50825a
+ X-Mercurial-Node: dd9c2b4b8a8a0934d5523c15f2c119b362360903
+ Message-Id: <dd9c2b4b8a8a0934d552.315532865@* (glob)
+ In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
+ References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Tue, 01 Jan 1980 00:01:05 +0000
From: test
@@ -2273,26 +2040,26 @@ test outgoing:
# HG changeset patch
# User test
# Date 0 0
- # Node ID 5d5ef15dfe5e7bd3a4ee154b5fff76c7945ec433
- # Parent 240fb913fc1b7ff15ddb9f33e73d82bf5277c720
+ # Node ID dd9c2b4b8a8a0934d5523c15f2c119b362360903
+ # Parent 22d0f96be12f5945fd67d101af58f7bc8263c835
Added tag zero, zero.foo for changeset 8580ff50825a
- diff -r 240fb913fc1b -r 5d5ef15dfe5e .hgtags
+ diff -r 22d0f96be12f -r dd9c2b4b8a8a .hgtags
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,2 @@
+8580ff50825a50c8f716709acdf8de0deddcd6ab zero
+8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
- displaying [PATCH 6 of 6] d ...
+ Displaying [PATCH 6 of 8] Added tag one, one.patch for changeset 97d72e5f12c7 ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
- Subject: [PATCH 6 of 6] d
- X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
- Message-Id: <2f9fa9b998c5fe3ac2bd.315532866@*> (glob)
- In-Reply-To: <patchbomb.315532860@*> (glob)
- References: <patchbomb.315532860@*> (glob)
+ Subject: [PATCH 6 of 8] Added tag one, one.patch for changeset 97d72e5f12c7
+ X-Mercurial-Node: eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
+ Message-Id: <eae5fcf795eee29d0e45.315532866@* (glob)
+ In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
+ References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Tue, 01 Jan 1980 00:01:06 +0000
From: test
@@ -2300,6 +2067,67 @@ test outgoing:
# HG changeset patch
# User test
+ # Date 0 0
+ # Node ID eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
+ # Parent dd9c2b4b8a8a0934d5523c15f2c119b362360903
+ Added tag one, one.patch for changeset 97d72e5f12c7
+
+ diff -r dd9c2b4b8a8a -r eae5fcf795ee .hgtags
+ --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
+ +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
+ @@ -1,2 +1,4 @@
+ 8580ff50825a50c8f716709acdf8de0deddcd6ab zero
+ 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
+ +97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
+ +97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
+
+ Displaying [PATCH 7 of 8] Added tag two, two.diff for changeset ff2c9fa2018b ...
+ Content-Type: text/plain; charset="us-ascii"
+ MIME-Version: 1.0
+ Content-Transfer-Encoding: 7bit
+ Subject: [PATCH 7 of 8] Added tag two, two.diff for changeset ff2c9fa2018b
+ X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6
+ Message-Id: <e317db6a6f288748d1f6.315532867@* (glob)
+ In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
+ References: <patchbomb\.315532860@[^>]*> (re)
+ User-Agent: Mercurial-patchbomb/* (glob)
+ Date: Tue, 01 Jan 1980 00:01:07 +0000
+ From: test
+ To: foo
+
+ # HG changeset patch
+ # User test
+ # Date 0 0
+ # Node ID e317db6a6f288748d1f6cb064f3810fcba66b1b6
+ # Parent eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
+ Added tag two, two.diff for changeset ff2c9fa2018b
+
+ diff -r eae5fcf795ee -r e317db6a6f28 .hgtags
+ --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
+ +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
+ @@ -2,3 +2,5 @@
+ 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
+ 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
+ 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
+ +ff2c9fa2018b15fa74b33363bda9527323e2a99f two
+ +ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff
+
+ Displaying [PATCH 8 of 8] d ...
+ Content-Type: text/plain; charset="us-ascii"
+ MIME-Version: 1.0
+ Content-Transfer-Encoding: 7bit
+ Subject: [PATCH 8 of 8] d
+ X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
+ Message-Id: <2f9fa9b998c5fe3ac2bd\.315532868[^>]*> (re)
+ In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
+ References: <patchbomb\.315532860@[^>]*> (re)
+ User-Agent: Mercurial-patchbomb/* (glob)
+ Date: Tue, 01 Jan 1980 00:01:08 +0000
+ From: test
+ To: foo
+
+ # HG changeset patch
+ # User test
# Date 4 0
# Branch test
# Node ID 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
@@ -2316,18 +2144,19 @@ test outgoing:
dest#branch URIs:
$ hg email --date '1980-1-1 0:1' -n -t foo -s test -o ../t#test
comparing with ../t
+ searching for changes
From [test]: test
- this patch series consists of 1 patches.
+ This patch series consists of 1 patches.
Cc:
- displaying [PATCH] test ...
+ Displaying [PATCH] test ...
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH] test
X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
- Message-Id: <2f9fa9b998c5fe3ac2bd.315532860@*> (glob)
+ Message-Id: <2f9fa9b998c5fe3ac2bd.315532860@* (glob)
User-Agent: Mercurial-patchbomb/* (glob)
Date: Tue, 01 Jan 1980 00:01:00 +0000
From: test
@@ -2347,5 +2176,3 @@ dest#branch URIs:
@@ -0,0 +1,1 @@
+d
-
- $ cd ..
diff --git a/tests/test-paths.t b/tests/test-paths.t
index 99a45aa..d97554a 100644
--- a/tests/test-paths.t
+++ b/tests/test-paths.t
@@ -7,35 +7,29 @@
$ echo 'dupe = ../b' >> .hg/hgrc
$ echo 'expand = $SOMETHING/bar' >> .hg/hgrc
$ hg in dupe
- comparing with $TESTTMP/b (glob)
+ comparing with $TESTTMP/b
no changes found
[1]
$ cd ..
$ hg -R a in dupe
- comparing with $TESTTMP/b (glob)
+ comparing with $TESTTMP/b
no changes found
[1]
$ cd a
$ hg paths
- dupe = $TESTTMP/b (glob)
- expand = $TESTTMP/a/$SOMETHING/bar (glob)
+ dupe = $TESTTMP/b
+ expand = $TESTTMP/a/$SOMETHING/bar
$ SOMETHING=foo hg paths
- dupe = $TESTTMP/b (glob)
- expand = $TESTTMP/a/foo/bar (glob)
-#if msys
- $ SOMETHING=//foo hg paths
- dupe = $TESTTMP/b (glob)
- expand = /foo/bar
-#else
+ dupe = $TESTTMP/b
+ expand = $TESTTMP/a/foo/bar
$ SOMETHING=/foo hg paths
- dupe = $TESTTMP/b (glob)
+ dupe = $TESTTMP/b
expand = /foo/bar
-#endif
$ hg paths -q
dupe
expand
$ hg paths dupe
- $TESTTMP/b (glob)
+ $TESTTMP/b
$ hg paths -q dupe
$ hg paths unknown
not found!
@@ -62,4 +56,3 @@
$ hg -q id
000000000000
- $ cd ..
diff --git a/tests/test-pending.t b/tests/test-pending.t
index d449d29..1a1ace7 100644
--- a/tests/test-pending.t
+++ b/tests/test-pending.t
@@ -60,6 +60,7 @@ python hook
external hook
$ cat <<EOF > reject.sh
+ > #! /bin/sh
> printf 'hook '; hg tip --template '{node}\\n'
> # create the notify file so caller knows we're running
> fpath=$d/notify
@@ -72,6 +73,7 @@ external hook
> done
> exit 1 # reject the changesets
> EOF
+ $ chmod +x reject.sh
create repos
@@ -103,7 +105,7 @@ test external hook
$ cat <<EOF > parent/.hg/hgrc
> [hooks]
- > pretxnchangegroup = sh $d/reject.sh
+ > pretxnchangegroup = $d/reject.sh
> EOF
$ dotest
diff --git a/tests/test-permissions.t b/tests/test-permissions.t
index 88f0637..8de4106 100644
--- a/tests/test-permissions.t
+++ b/tests/test-permissions.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" unix-permissions || exit 80
-
$ hg init t
$ cd t
@@ -69,4 +67,3 @@ Reenable perm to allow deletion:
$ chmod +rx dir
- $ cd ..
diff --git a/tests/test-phases-exchange.t b/tests/test-phases-exchange.t
deleted file mode 100644
index a8a4483..0000000
--- a/tests/test-phases-exchange.t
+++ /dev/null
@@ -1,1065 +0,0 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
- $ cat >> $HGRCPATH <<EOF
- > [extensions]
- > graphlog=
- > EOF
- $ hgph() { hg log -G --template "{rev} {phase} {desc} - {node|short}\n" $*; }
-
- $ mkcommit() {
- > echo "$1" > "$1"
- > hg add "$1"
- > message="$1"
- > shift
- > hg ci -m "$message" $*
- > }
-
- $ hg init alpha
- $ cd alpha
- $ mkcommit a-A
- $ mkcommit a-B
- $ mkcommit a-C
- $ mkcommit a-D
- $ hgph
- @ 3 draft a-D - b555f63b6063
- |
- o 2 draft a-C - 54acac6f23ab
- |
- o 1 draft a-B - 548a3d25dbf0
- |
- o 0 draft a-A - 054250a37db4
-
-
- $ hg init ../beta
- $ hg push -r 1 ../beta
- pushing to ../beta
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 2 files
- $ hgph
- @ 3 draft a-D - b555f63b6063
- |
- o 2 draft a-C - 54acac6f23ab
- |
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
- $ cd ../beta
- $ hgph
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ hg up -q
- $ mkcommit b-A
- $ hgph
- @ 2 draft b-A - f54f1bb90ff3
- |
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ hg pull ../alpha
- pulling from ../alpha
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 2 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
- $ hgph
- o 4 public a-D - b555f63b6063
- |
- o 3 public a-C - 54acac6f23ab
- |
- | @ 2 draft b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-pull did not updated ../alpha state.
-push from alpha to beta should update phase even if nothing is transfered
-
- $ cd ../alpha
- $ hgph # not updated by remote pull
- @ 3 draft a-D - b555f63b6063
- |
- o 2 draft a-C - 54acac6f23ab
- |
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ hg push ../beta
- pushing to ../beta
- searching for changes
- no changes found
- [1]
- $ hgph
- @ 3 public a-D - b555f63b6063
- |
- o 2 public a-C - 54acac6f23ab
- |
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-update must update phase of common changeset too
-
- $ hg pull ../beta # getting b-A
- pulling from ../beta
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
-
- $ cd ../beta
- $ hgph # not updated by remote pull
- o 4 public a-D - b555f63b6063
- |
- o 3 public a-C - 54acac6f23ab
- |
- | @ 2 draft b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ hg pull ../alpha
- pulling from ../alpha
- searching for changes
- no changes found
- $ hgph
- o 4 public a-D - b555f63b6063
- |
- o 3 public a-C - 54acac6f23ab
- |
- | @ 2 public b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-Publish configuration option
-----------------------------
-
-Pull
-````
-
-changegroup are added without phase movement
-
- $ hg bundle -a ../base.bundle
- 5 changesets found
- $ cd ..
- $ hg init mu
- $ cd mu
- $ cat > .hg/hgrc << EOF
- > [phases]
- > publish=0
- > EOF
- $ hg unbundle ../base.bundle
- adding changesets
- adding manifests
- adding file changes
- added 5 changesets with 5 changes to 5 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
- $ hgph
- o 4 draft a-D - b555f63b6063
- |
- o 3 draft a-C - 54acac6f23ab
- |
- | o 2 draft b-A - f54f1bb90ff3
- |/
- o 1 draft a-B - 548a3d25dbf0
- |
- o 0 draft a-A - 054250a37db4
-
- $ cd ..
-
-Pulling from publish=False to publish=False does not move boundary.
-
- $ hg init nu
- $ cd nu
- $ cat > .hg/hgrc << EOF
- > [phases]
- > publish=0
- > EOF
- $ hg pull ../mu -r 54acac6f23ab
- pulling from ../mu
- adding changesets
- adding manifests
- adding file changes
- added 3 changesets with 3 changes to 3 files
- (run 'hg update' to get a working copy)
- $ hgph
- o 2 draft a-C - 54acac6f23ab
- |
- o 1 draft a-B - 548a3d25dbf0
- |
- o 0 draft a-A - 054250a37db4
-
-
-Even for common
-
- $ hg pull ../mu -r f54f1bb90ff3
- pulling from ../mu
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
- $ hgph
- o 3 draft b-A - f54f1bb90ff3
- |
- | o 2 draft a-C - 54acac6f23ab
- |/
- o 1 draft a-B - 548a3d25dbf0
- |
- o 0 draft a-A - 054250a37db4
-
-
-
-Pulling from Publish=True to Publish=False move boundary in common set.
-we are in nu
-
- $ hg pull ../alpha -r b555f63b6063
- pulling from ../alpha
- 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)
- $ hgph # f54f1bb90ff3 stay draft, not ancestor of -r
- o 4 public a-D - b555f63b6063
- |
- | o 3 draft b-A - f54f1bb90ff3
- | |
- o | 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-pulling from Publish=False to publish=False with some public
-
- $ hg up -q f54f1bb90ff3
- $ mkcommit n-A
- $ mkcommit n-B
- $ hgph
- @ 6 draft n-B - 145e75495359
- |
- o 5 draft n-A - d6bcb4f74035
- |
- | o 4 public a-D - b555f63b6063
- | |
- o | 3 draft b-A - f54f1bb90ff3
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ cd ../mu
- $ hg pull ../nu
- pulling from ../nu
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 2 files
- (run 'hg update' to get a working copy)
- $ hgph
- o 6 draft n-B - 145e75495359
- |
- o 5 draft n-A - d6bcb4f74035
- |
- | o 4 public a-D - b555f63b6063
- | |
- | o 3 public a-C - 54acac6f23ab
- | |
- o | 2 draft b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ cd ..
-
-pulling into publish=True
-
- $ cd alpha
- $ hgph
- o 4 public b-A - f54f1bb90ff3
- |
- | @ 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ hg pull ../mu
- pulling from ../mu
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 2 files
- (run 'hg update' to get a working copy)
- $ hgph
- o 6 draft n-B - 145e75495359
- |
- o 5 draft n-A - d6bcb4f74035
- |
- o 4 public b-A - f54f1bb90ff3
- |
- | @ 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ cd ..
-
-pulling back into original repo
-
- $ cd nu
- $ hg pull ../alpha
- pulling from ../alpha
- searching for changes
- no changes found
- $ hgph
- @ 6 public n-B - 145e75495359
- |
- o 5 public n-A - d6bcb4f74035
- |
- | o 4 public a-D - b555f63b6063
- | |
- o | 3 public b-A - f54f1bb90ff3
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-Push
-````
-
-(inserted)
-
-Test that phase are pushed even when they are nothing to pus
-(this might be tested later bu are very convenient to not alter too much test)
-
-Push back to alpha
-
- $ hg push ../alpha # from nu
- pushing to ../alpha
- searching for changes
- no changes found
- [1]
- $ cd ..
- $ cd alpha
- $ hgph
- o 6 public n-B - 145e75495359
- |
- o 5 public n-A - d6bcb4f74035
- |
- o 4 public b-A - f54f1bb90ff3
- |
- | @ 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-(end insertion)
-
-
-initial setup
-
- $ hg glog # of alpha
- o changeset: 6:145e75495359
- | tag: tip
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: n-B
- |
- o changeset: 5:d6bcb4f74035
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: n-A
- |
- o changeset: 4:f54f1bb90ff3
- | parent: 1:548a3d25dbf0
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: b-A
- |
- | @ changeset: 3:b555f63b6063
- | | user: test
- | | date: Thu Jan 01 00:00:00 1970 +0000
- | | summary: a-D
- | |
- | o changeset: 2:54acac6f23ab
- |/ user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: a-C
- |
- o changeset: 1:548a3d25dbf0
- | user: test
- | date: Thu Jan 01 00:00:00 1970 +0000
- | summary: a-B
- |
- o changeset: 0:054250a37db4
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: a-A
-
- $ mkcommit a-E
- $ mkcommit a-F
- $ mkcommit a-G
- $ hg up d6bcb4f74035 -q
- $ mkcommit a-H
- created new head
- $ hgph
- @ 10 draft a-H - 967b449fbc94
- |
- | o 9 draft a-G - 3e27b6f1eee1
- | |
- | o 8 draft a-F - b740e3e5c05d
- | |
- | o 7 draft a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- o | 4 public b-A - f54f1bb90ff3
- | |
- | o 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-Pulling from bundle does not alter phases of changeset not present in the bundle
-
- $ hg bundle --base 1 -r 6 -r 3 ../partial-bundle.hg
- 5 changesets found
- $ hg pull ../partial-bundle.hg
- pulling from ../partial-bundle.hg
- searching for changes
- no changes found
- $ hgph
- @ 10 draft a-H - 967b449fbc94
- |
- | o 9 draft a-G - 3e27b6f1eee1
- | |
- | o 8 draft a-F - b740e3e5c05d
- | |
- | o 7 draft a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- o | 4 public b-A - f54f1bb90ff3
- | |
- | o 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-Pushing to Publish=False (unknown changeset)
-
- $ hg push ../mu -r b740e3e5c05d # a-F
- pushing to ../mu
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 2 files
- $ hgph
- @ 10 draft a-H - 967b449fbc94
- |
- | o 9 draft a-G - 3e27b6f1eee1
- | |
- | o 8 draft a-F - b740e3e5c05d
- | |
- | o 7 draft a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- o | 4 public b-A - f54f1bb90ff3
- | |
- | o 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
- $ cd ../mu
- $ hgph # again f54f1bb90ff3, d6bcb4f74035 and 145e75495359 stay draft,
- > # not ancestor of -r
- o 8 draft a-F - b740e3e5c05d
- |
- o 7 draft a-E - e9f537e46dea
- |
- | o 6 draft n-B - 145e75495359
- | |
- | o 5 draft n-A - d6bcb4f74035
- | |
- o | 4 public a-D - b555f63b6063
- | |
- o | 3 public a-C - 54acac6f23ab
- | |
- | o 2 draft b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-Pushing to Publish=True (unknown changeset)
-
- $ hg push ../beta -r b740e3e5c05d
- pushing to ../beta
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 2 files
- $ hgph # again f54f1bb90ff3, d6bcb4f74035 and 145e75495359 stay draft,
- > # not ancestor of -r
- o 8 public a-F - b740e3e5c05d
- |
- o 7 public a-E - e9f537e46dea
- |
- | o 6 draft n-B - 145e75495359
- | |
- | o 5 draft n-A - d6bcb4f74035
- | |
- o | 4 public a-D - b555f63b6063
- | |
- o | 3 public a-C - 54acac6f23ab
- | |
- | o 2 draft b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-Pushing to Publish=True (common changeset)
-
- $ cd ../beta
- $ hg push ../alpha
- pushing to ../alpha
- searching for changes
- no changes found
- [1]
- $ hgph
- o 6 public a-F - b740e3e5c05d
- |
- o 5 public a-E - e9f537e46dea
- |
- o 4 public a-D - b555f63b6063
- |
- o 3 public a-C - 54acac6f23ab
- |
- | @ 2 public b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ cd ../alpha
- $ hgph
- @ 10 draft a-H - 967b449fbc94
- |
- | o 9 draft a-G - 3e27b6f1eee1
- | |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- o | 4 public b-A - f54f1bb90ff3
- | |
- | o 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-Pushing to Publish=False (common changeset that change phase + unknown one)
-
- $ hg push ../mu -r 967b449fbc94 -f
- pushing to ../mu
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files (+1 heads)
- $ hgph
- @ 10 draft a-H - 967b449fbc94
- |
- | o 9 draft a-G - 3e27b6f1eee1
- | |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- o | 4 public b-A - f54f1bb90ff3
- | |
- | o 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ cd ../mu
- $ hgph # d6bcb4f74035 should have changed phase
- > # 145e75495359 is still draft. not ancestor of -r
- o 9 draft a-H - 967b449fbc94
- |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 draft n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- | o 4 public a-D - b555f63b6063
- | |
- | o 3 public a-C - 54acac6f23ab
- | |
- o | 2 public b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-
-Pushing to Publish=True (common changeset from publish=False)
-
-(in mu)
- $ hg push ../alpha
- pushing to ../alpha
- searching for changes
- no changes found
- [1]
- $ hgph
- o 9 public a-H - 967b449fbc94
- |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- | o 4 public a-D - b555f63b6063
- | |
- | o 3 public a-C - 54acac6f23ab
- | |
- o | 2 public b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ hgph -R ../alpha # a-H should have been synced to 0
- @ 10 public a-H - 967b449fbc94
- |
- | o 9 draft a-G - 3e27b6f1eee1
- | |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- o | 4 public b-A - f54f1bb90ff3
- | |
- | o 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-
-Discovery locally secret changeset on a remote repository:
-
-- should make it non-secret
-
- $ cd ../alpha
- $ mkcommit A-secret --config phases.new-commit=2
- $ hgph
- @ 11 secret A-secret - 435b5d83910c
- |
- o 10 public a-H - 967b449fbc94
- |
- | o 9 draft a-G - 3e27b6f1eee1
- | |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- o | 4 public b-A - f54f1bb90ff3
- | |
- | o 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ hg bundle --base 'parents(.)' -r . ../secret-bundle.hg
- 1 changesets found
- $ hg -R ../mu unbundle ../secret-bundle.hg
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- (run 'hg update' to get a working copy)
- $ hgph -R ../mu
- o 10 draft A-secret - 435b5d83910c
- |
- o 9 public a-H - 967b449fbc94
- |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- | o 4 public a-D - b555f63b6063
- | |
- | o 3 public a-C - 54acac6f23ab
- | |
- o | 2 public b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
- $ hg pull ../mu
- pulling from ../mu
- searching for changes
- no changes found
- $ hgph
- @ 11 draft A-secret - 435b5d83910c
- |
- o 10 public a-H - 967b449fbc94
- |
- | o 9 draft a-G - 3e27b6f1eee1
- | |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- o | 4 public b-A - f54f1bb90ff3
- | |
- | o 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-pushing a locally public and draft changesets remotly secret should make them
-appear on the remote side.
-
-
- $ hg -R ../mu phase --secret --force 967b449fbc94
- $ hg push -r 435b5d83910c ../mu
- pushing to ../mu
- searching for changes
- abort: push creates new remote head 435b5d83910c!
- (did you forget to merge? use push -f to force)
- [255]
- $ hg push -fr 435b5d83910c ../mu # because the push will create new visible head
- pushing to ../mu
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 0 changesets with 0 changes to 2 files
- $ hgph -R ../mu
- o 10 draft A-secret - 435b5d83910c
- |
- o 9 public a-H - 967b449fbc94
- |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- | o 4 public a-D - b555f63b6063
- | |
- | o 3 public a-C - 54acac6f23ab
- | |
- o | 2 public b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-pull new changeset with common draft locally
-
- $ hg up -q 967b449fbc94 # create a new root for draft
- $ mkcommit 'alpha-more'
- created new head
- $ hg push -fr . ../mu
- pushing to ../mu
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files (+1 heads)
- $ cd ../mu
- $ hg phase --secret --force 1c5cfd894796
- $ hg up -q 435b5d83910c
- $ mkcommit 'mu-more'
- $ cd ../alpha
- $ hg pull ../mu
- pulling from ../mu
- 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)
- $ hgph
- o 13 draft mu-more - 5237fb433fc8
- |
- | @ 12 draft alpha-more - 1c5cfd894796
- | |
- o | 11 draft A-secret - 435b5d83910c
- |/
- o 10 public a-H - 967b449fbc94
- |
- | o 9 draft a-G - 3e27b6f1eee1
- | |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- o | 4 public b-A - f54f1bb90ff3
- | |
- | o 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-Test that test are properly ignored on remote event when existing locally
-
- $ cd ..
- $ hg clone -qU -r b555f63b6063 -r f54f1bb90ff3 beta gamma
-
-# pathological case are
-#
-# * secret remotely
-# * known locally
-# * repo have uncommon changeset
-
- $ hg -R beta phase --secret --force f54f1bb90ff3
- $ hg -R gamma phase --draft --force f54f1bb90ff3
-
- $ cd gamma
- $ hg pull ../beta
- pulling from ../beta
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 2 files
- (run 'hg update' to get a working copy)
- $ hg phase f54f1bb90ff3
- 2: draft
-
-same over the wire
-
- $ cd ../beta
- $ hg serve -p $HGPORT -d --pid-file=../beta.pid -E ../beta-error.log
- $ cat ../beta.pid >> $DAEMON_PIDS
- $ cd ../gamma
-
- $ hg pull http://localhost:$HGPORT/
- pulling from http://localhost:$HGPORT/
- searching for changes
- no changes found
- $ hg phase f54f1bb90ff3
- 2: draft
-
-check that secret local on both side are not synced to public
-
- $ hg push -r b555f63b6063 http://localhost:$HGPORT/
- pushing to http://localhost:$HGPORT/
- searching for changes
- no changes found
- [1]
- $ hg phase f54f1bb90ff3
- 2: draft
-
-put the changeset in the draft state again
-(first test after this one expect to be able to copy)
-
- $ cd ..
-
-
-Test Clone behavior
-
-A. Clone without secret changeset
-
-1. cloning non-publishing repository
-(Phase should be preserved)
-
-# make sure there is no secret so we can use a copy clone
-
- $ hg -R mu phase --draft 'secret()'
-
- $ hg clone -U mu Tau
- $ hgph -R Tau
- o 12 draft mu-more - 5237fb433fc8
- |
- | o 11 draft alpha-more - 1c5cfd894796
- | |
- o | 10 draft A-secret - 435b5d83910c
- |/
- o 9 public a-H - 967b449fbc94
- |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- | o 4 public a-D - b555f63b6063
- | |
- | o 3 public a-C - 54acac6f23ab
- | |
- o | 2 public b-A - f54f1bb90ff3
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
-2. cloning publishing repository
-
-(everything should be public)
-
- $ hg clone -U alpha Upsilon
- $ hgph -R Upsilon
- o 13 public mu-more - 5237fb433fc8
- |
- | o 12 public alpha-more - 1c5cfd894796
- | |
- o | 11 public A-secret - 435b5d83910c
- |/
- o 10 public a-H - 967b449fbc94
- |
- | o 9 public a-G - 3e27b6f1eee1
- | |
- | o 8 public a-F - b740e3e5c05d
- | |
- | o 7 public a-E - e9f537e46dea
- | |
- +---o 6 public n-B - 145e75495359
- | |
- o | 5 public n-A - d6bcb4f74035
- | |
- o | 4 public b-A - f54f1bb90ff3
- | |
- | o 3 public a-D - b555f63b6063
- | |
- | o 2 public a-C - 54acac6f23ab
- |/
- o 1 public a-B - 548a3d25dbf0
- |
- o 0 public a-A - 054250a37db4
-
-
diff --git a/tests/test-phases.t b/tests/test-phases.t
deleted file mode 100644
index 28e7dab..0000000
--- a/tests/test-phases.t
+++ /dev/null
@@ -1,479 +0,0 @@
- $ hglog() { hg log --template "{rev} {phaseidx} {desc}\n" $*; }
- $ mkcommit() {
- > echo "$1" > "$1"
- > hg add "$1"
- > message="$1"
- > shift
- > hg ci -m "$message" $*
- > }
-
- $ hg init initialrepo
- $ cd initialrepo
-
-Cannot change null revision phase
-
- $ hg phase --force --secret null
- abort: cannot change null revision phase
- [255]
- $ hg phase null
- -1: public
-
- $ mkcommit A
-
-New commit are draft by default
-
- $ hglog
- 0 1 A
-
-Following commit are draft too
-
- $ mkcommit B
-
- $ hglog
- 1 1 B
- 0 1 A
-
-Draft commit are properly created over public one:
-
- $ hg phase --public .
- $ hglog
- 1 0 B
- 0 0 A
-
- $ mkcommit C
- $ mkcommit D
-
- $ hglog
- 3 1 D
- 2 1 C
- 1 0 B
- 0 0 A
-
-Test creating changeset as secret
-
- $ mkcommit E --config phases.new-commit='secret'
- $ hglog
- 4 2 E
- 3 1 D
- 2 1 C
- 1 0 B
- 0 0 A
-
-Test the secret property is inherited
-
- $ mkcommit H
- $ hglog
- 5 2 H
- 4 2 E
- 3 1 D
- 2 1 C
- 1 0 B
- 0 0 A
-
-Even on merge
-
- $ hg up -q 1
- $ mkcommit "B'"
- created new head
- $ hglog
- 6 1 B'
- 5 2 H
- 4 2 E
- 3 1 D
- 2 1 C
- 1 0 B
- 0 0 A
- $ hg merge 4 # E
- 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m "merge B' and E"
- $ hglog
- 7 2 merge B' and E
- 6 1 B'
- 5 2 H
- 4 2 E
- 3 1 D
- 2 1 C
- 1 0 B
- 0 0 A
-
-Test secret changeset are not pushed
-
- $ hg init ../push-dest
- $ cat > ../push-dest/.hg/hgrc << EOF
- > [phases]
- > publish=False
- > EOF
- $ hg outgoing ../push-dest --template='{rev} {phase} {desc|firstline}\n'
- comparing with ../push-dest
- searching for changes
- 0 public A
- 1 public B
- 2 draft C
- 3 draft D
- 6 draft B'
- $ hg outgoing -r 'branch(default)' ../push-dest --template='{rev} {phase} {desc|firstline}\n'
- comparing with ../push-dest
- searching for changes
- 0 public A
- 1 public B
- 2 draft C
- 3 draft D
- 6 draft B'
-
- $ hg push ../push-dest -f # force because we push multiple heads
- pushing to ../push-dest
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 5 changesets with 5 changes to 5 files (+1 heads)
- $ hglog
- 7 2 merge B' and E
- 6 1 B'
- 5 2 H
- 4 2 E
- 3 1 D
- 2 1 C
- 1 0 B
- 0 0 A
- $ cd ../push-dest
- $ hglog
- 4 1 B'
- 3 1 D
- 2 1 C
- 1 0 B
- 0 0 A
-
-(Issue3303)
-Check that remote secret changeset are ignore when checking creation of remote heads
-
-We add a secret head into the push destination. This secreat head shadow a
-visible shared between the initial repo and the push destination.
-
- $ hg up -q 4 # B'
- $ mkcommit Z --config phases.new-commit=secret
- $ hg phase .
- 5: secret
-
-# We now try to push a new public changeset that descend from the common public
-# head shadowed by the remote secret head.
-
- $ cd ../initialrepo
- $ hg up -q 6 #B'
- $ mkcommit I
- created new head
- $ hg push ../push-dest
- pushing to ../push-dest
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files (+1 heads)
-
-:note: The "(+1 heads)" is wrong as we do not had any visible head
-
-
-Restore condition prior extra insertion.
- $ hg -q --config extensions.mq= strip .
- $ hg up -q 7
- $ cd ..
-
-Test secret changeset are not pull
-
- $ hg init pull-dest
- $ cd pull-dest
- $ hg pull ../initialrepo
- pulling from ../initialrepo
- requesting all changes
- adding changesets
- adding manifests
- adding file changes
- added 5 changesets with 5 changes to 5 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
- $ hglog
- 4 0 B'
- 3 0 D
- 2 0 C
- 1 0 B
- 0 0 A
- $ cd ..
-
-But secret can still be bundled explicitly
-
- $ cd initialrepo
- $ hg bundle --base '4^' -r 'children(4)' ../secret-bundle.hg
- 4 changesets found
- $ cd ..
-
-Test secret changeset are not cloned
-(during local clone)
-
- $ hg clone -qU initialrepo clone-dest
- $ hglog -R clone-dest
- 4 0 B'
- 3 0 D
- 2 0 C
- 1 0 B
- 0 0 A
-
-Test revset
-
- $ cd initialrepo
- $ hglog -r 'public()'
- 0 0 A
- 1 0 B
- $ hglog -r 'draft()'
- 2 1 C
- 3 1 D
- 6 1 B'
- $ hglog -r 'secret()'
- 4 2 E
- 5 2 H
- 7 2 merge B' and E
-
-test that phase are displayed in log at debug level
-
- $ hg log --debug
- changeset: 7:17a481b3bccb796c0521ae97903d81c52bfee4af
- tag: tip
- phase: secret
- parent: 6:cf9fe039dfd67e829edf6522a45de057b5c86519
- parent: 4:a603bfb5a83e312131cebcd05353c217d4d21dde
- manifest: 7:5e724ffacba267b2ab726c91fc8b650710deaaa8
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- files+: C D E
- extra: branch=default
- description:
- merge B' and E
-
-
- changeset: 6:cf9fe039dfd67e829edf6522a45de057b5c86519
- phase: draft
- parent: 1:27547f69f25460a52fff66ad004e58da7ad3fb56
- parent: -1:0000000000000000000000000000000000000000
- manifest: 6:ab8bfef2392903058bf4ebb9e7746e8d7026b27a
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- files+: B'
- extra: branch=default
- description:
- B'
-
-
- changeset: 5:a030c6be5127abc010fcbff1851536552e6951a8
- phase: secret
- parent: 4:a603bfb5a83e312131cebcd05353c217d4d21dde
- parent: -1:0000000000000000000000000000000000000000
- manifest: 5:5c710aa854874fe3d5fa7192e77bdb314cc08b5a
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- files+: H
- extra: branch=default
- description:
- H
-
-
- changeset: 4:a603bfb5a83e312131cebcd05353c217d4d21dde
- phase: secret
- parent: 3:b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e
- parent: -1:0000000000000000000000000000000000000000
- manifest: 4:7173fd1c27119750b959e3a0f47ed78abe75d6dc
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- files+: E
- extra: branch=default
- description:
- E
-
-
- changeset: 3:b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e
- phase: draft
- parent: 2:f838bfaca5c7226600ebcfd84f3c3c13a28d3757
- parent: -1:0000000000000000000000000000000000000000
- manifest: 3:6e1f4c47ecb533ffd0c8e52cdc88afb6cd39e20c
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- files+: D
- extra: branch=default
- description:
- D
-
-
- changeset: 2:f838bfaca5c7226600ebcfd84f3c3c13a28d3757
- phase: draft
- parent: 1:27547f69f25460a52fff66ad004e58da7ad3fb56
- parent: -1:0000000000000000000000000000000000000000
- manifest: 2:66a5a01817fdf5239c273802b5b7618d051c89e4
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- files+: C
- extra: branch=default
- description:
- C
-
-
- changeset: 1:27547f69f25460a52fff66ad004e58da7ad3fb56
- parent: 0:4a2df7238c3b48766b5e22fafbb8a2f506ec8256
- parent: -1:0000000000000000000000000000000000000000
- manifest: 1:cb5cbbc1bfbf24cc34b9e8c16914e9caa2d2a7fd
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- files+: B
- extra: branch=default
- description:
- B
-
-
- changeset: 0:4a2df7238c3b48766b5e22fafbb8a2f506ec8256
- parent: -1:0000000000000000000000000000000000000000
- parent: -1:0000000000000000000000000000000000000000
- manifest: 0:007d8c9d88841325f5c6b06371b35b4e8a2b1a83
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- files+: A
- extra: branch=default
- description:
- A
-
-
-
-Test phase command
-===================
-
-initial picture
-
- $ cat >> $HGRCPATH << EOF
- > [extensions]
- > hgext.graphlog=
- > EOF
- $ hg log -G --template "{rev} {phase} {desc}\n"
- @ 7 secret merge B' and E
- |\
- | o 6 draft B'
- | |
- +---o 5 secret H
- | |
- o | 4 secret E
- | |
- o | 3 draft D
- | |
- o | 2 draft C
- |/
- o 1 public B
- |
- o 0 public A
-
-
-display changesets phase
-
-(mixing -r and plain rev specification)
-
- $ hg phase 1::4 -r 7
- 1: public
- 2: draft
- 3: draft
- 4: secret
- 7: secret
-
-
-move changeset forward
-
-(with -r option)
-
- $ hg phase --public -r 2
- $ hg log -G --template "{rev} {phase} {desc}\n"
- @ 7 secret merge B' and E
- |\
- | o 6 draft B'
- | |
- +---o 5 secret H
- | |
- o | 4 secret E
- | |
- o | 3 draft D
- | |
- o | 2 public C
- |/
- o 1 public B
- |
- o 0 public A
-
-
-move changeset backward
-
-(without -r option)
-
- $ hg phase --draft --force 2
- $ hg log -G --template "{rev} {phase} {desc}\n"
- @ 7 secret merge B' and E
- |\
- | o 6 draft B'
- | |
- +---o 5 secret H
- | |
- o | 4 secret E
- | |
- o | 3 draft D
- | |
- o | 2 draft C
- |/
- o 1 public B
- |
- o 0 public A
-
-
-move changeset forward and backward
-
- $ hg phase --draft --force 1::4
- $ hg log -G --template "{rev} {phase} {desc}\n"
- @ 7 secret merge B' and E
- |\
- | o 6 draft B'
- | |
- +---o 5 secret H
- | |
- o | 4 draft E
- | |
- o | 3 draft D
- | |
- o | 2 draft C
- |/
- o 1 draft B
- |
- o 0 public A
-
-test partial failure
-
- $ hg phase --public 7
- $ hg phase --draft '5 or 7'
- cannot move 1 changesets to a more permissive phase, use --force
- phase changed for 1 changesets
- [1]
- $ hg log -G --template "{rev} {phase} {desc}\n"
- @ 7 public merge B' and E
- |\
- | o 6 public B'
- | |
- +---o 5 draft H
- | |
- o | 4 public E
- | |
- o | 3 public D
- | |
- o | 2 public C
- |/
- o 1 public B
- |
- o 0 public A
-
-
-test complete failure
-
- $ hg phase --draft 7
- cannot move 1 changesets to a more permissive phase, use --force
- no phases changed
- [1]
-
- $ cd ..
diff --git a/tests/test-profile.t b/tests/test-profile.t
index f05a8dd..9591927 100644
--- a/tests/test-profile.t
+++ b/tests/test-profile.t
@@ -1,31 +1,31 @@
test --time
- $ hg --time help -q help 2>&1 | grep time > /dev/null
+ $ hg --time help -q help 2>&1 | grep Time > /dev/null
$ hg init a
$ cd a
-#if lsprof
-
test --profile
- $ hg --profile st 2>../out
- $ grep CallCount ../out > /dev/null || cat ../out
-
- $ hg --profile --config profiling.output=../out st
- $ grep CallCount ../out > /dev/null || cat ../out
-
- $ hg --profile --config profiling.format=text st 2>../out
- $ grep CallCount ../out > /dev/null || cat ../out
-
- $ echo "[profiling]" >> $HGRCPATH
- $ echo "format=kcachegrind" >> $HGRCPATH
-
- $ hg --profile st 2>../out
- $ grep 'events: Ticks' ../out > /dev/null || cat ../out
-
- $ hg --profile --config profiling.output=../out st
- $ grep 'events: Ticks' ../out > /dev/null || cat ../out
-
-#endif
-
- $ cd ..
+ $ if "$TESTDIR/hghave" -q lsprof; then
+ > hg --profile st 2>../out || echo --profile failed
+ > grep CallCount < ../out > /dev/null || echo wrong --profile
+ >
+ > hg --profile --config profiling.output=../out st 2>&1 \
+ > || echo --profile + output to file failed
+ > grep CallCount < ../out > /dev/null \
+ > || echo wrong --profile output when saving to a file
+ >
+ > hg --profile --config profiling.format=text st 2>&1 \
+ > | grep CallCount > /dev/null || echo --profile format=text failed
+ >
+ > echo "[profiling]" >> $HGRCPATH
+ > echo "format=kcachegrind" >> $HGRCPATH
+ >
+ > hg --profile st 2>../out || echo --profile format=kcachegrind failed
+ > grep 'events: Ticks' < ../out > /dev/null || echo --profile output is wrong
+ >
+ > hg --profile --config profiling.output=../out st 2>&1 \
+ > || echo --profile format=kcachegrind + output to file failed
+ > grep 'events: Ticks' < ../out > /dev/null \
+ > || echo --profile output is wrong
+ > fi
diff --git a/tests/test-progress.t b/tests/test-progress.t
index 5fa0a62..6fe1c1e 100644
--- a/tests/test-progress.t
+++ b/tests/test-progress.t
@@ -9,102 +9,53 @@
> total = loops
> if opts.get('total', None):
> total = int(opts.get('total'))
- > nested = False
- > if opts.get('nested', None):
- > nested = True
> loops = abs(loops)
>
> for i in range(loops):
> ui.progress('loop', i, 'loop.%d' % i, 'loopnum', total)
- > if opts.get('parallel'):
- > ui.progress('other', i, 'other.%d' % i, 'othernum', total)
- > if nested:
- > for j in range(2):
- > ui.progress('nested', j, 'nested.%d' % j, 'nestnum', 2)
- > ui.progress('nested', None, 'nested.done', 'nestnum', 2)
> ui.progress('loop', None, 'loop.done', 'loopnum', total)
>
> commands.norepo += " loop"
>
> cmdtable = {
- > "loop": (loop, [('', 'total', '', 'override for total'),
- > ('', 'nested', False, 'show nested results'),
- > ('', 'parallel', False, 'show parallel sets of results'),
- > ],
+ > "loop": (loop, [('', 'total', '', 'override for total')],
> 'hg loop LOOPS'),
> }
> EOF
- $ cp $HGRCPATH $HGRCPATH.orig
$ echo "[extensions]" >> $HGRCPATH
$ echo "progress=" >> $HGRCPATH
$ echo "loop=`pwd`/loop.py" >> $HGRCPATH
$ echo "[progress]" >> $HGRCPATH
- $ echo "format = topic bar number" >> $HGRCPATH
+ $ echo "format = topic bar number" >> $HGRCPATH
$ echo "assume-tty=1" >> $HGRCPATH
$ echo "width=60" >> $HGRCPATH
test default params, display nothing because of delay
- $ hg -y loop 3 2>&1 | "$TESTDIR/filtercr.py"
+ $ hg -y loop 3 2>&1 | $TESTDIR/filtercr.py
$ echo "delay=0" >> $HGRCPATH
$ echo "refresh=0" >> $HGRCPATH
test with delay=0, refresh=0
- $ hg -y loop 3 2>&1 | "$TESTDIR/filtercr.py"
+ $ hg -y loop 3 2>&1 | $TESTDIR/filtercr.py
loop [ ] 0/3
loop [===============> ] 1/3
loop [===============================> ] 2/3
\r (esc)
-
-test nested short-lived topics (which shouldn't display with nestdelay):
-
- $ hg -y loop 3 --nested 2>&1 | \
- > python "$TESTDIR/filtercr.py"
-
- loop [ ] 0/3
- loop [===============> ] 1/3
- loop [===============================> ] 2/3
- \r (esc)
-
-
- $ hg --config progress.changedelay=0 -y loop 3 --nested 2>&1 | \
- > python "$TESTDIR/filtercr.py"
-
- loop [ ] 0/3
- nested [ ] 0/2
- nested [======================> ] 1/2
- loop [===============> ] 1/3
- nested [ ] 0/2
- nested [======================> ] 1/2
- loop [===============================> ] 2/3
- nested [ ] 0/2
- nested [======================> ] 1/2
- \r (esc)
-
-
-test two topics being printed in parallel (as when we're doing a local
---pull clone, where you get the unbundle and bundle progress at the
-same time):
- $ hg loop 3 --parallel 2>&1 | python "$TESTDIR/filtercr.py"
-
- loop [ ] 0/3
- loop [===============> ] 1/3
- loop [===============================> ] 2/3
- \r (esc)
test refresh is taken in account
- $ hg -y --config progress.refresh=100 loop 3 2>&1 | "$TESTDIR/filtercr.py"
+ $ hg -y --config progress.refresh=100 loop 3 2>&1 | $TESTDIR/filtercr.py
test format options 1
$ hg -y --config 'progress.format=number topic item+2' loop 2 2>&1 \
- > | "$TESTDIR/filtercr.py"
+ > | $TESTDIR/filtercr.py
0/2 loop lo
1/2 loop lo
@@ -113,7 +64,7 @@ test format options 1
test format options 2
$ hg -y --config 'progress.format=number item-3 bar' loop 2 2>&1 \
- > | "$TESTDIR/filtercr.py"
+ > | $TESTDIR/filtercr.py
0/2 p.0 [ ]
1/2 p.1 [=======================> ]
@@ -122,7 +73,7 @@ test format options 2
test format options and indeterminate progress
$ hg -y --config 'progress.format=number item bar' loop -- -2 2>&1 \
- > | "$TESTDIR/filtercr.py"
+ > | $TESTDIR/filtercr.py
0 loop.0 [ <=> ]
1 loop.1 [ <=> ]
@@ -130,7 +81,7 @@ test format options and indeterminate progress
make sure things don't fall over if count > total
- $ hg -y loop --total 4 6 2>&1 | "$TESTDIR/filtercr.py"
+ $ hg -y loop --total 4 6 2>&1 | $TESTDIR/filtercr.py
loop [ ] 0/4
loop [===========> ] 1/4
@@ -142,7 +93,7 @@ make sure things don't fall over if count > total
test immediate progress completion
- $ hg -y loop 0 2>&1 | "$TESTDIR/filtercr.py"
+ $ hg -y loop 0 2>&1 | $TESTDIR/filtercr.py
test delay time estimates
@@ -163,8 +114,7 @@ test delay time estimates
> time.time = mocktime(int(os.environ.get('MOCKTIME', '11')))
> EOF
- $ cp $HGRCPATH.orig $HGRCPATH
- $ echo "[extensions]" >> $HGRCPATH
+ $ echo "[extensions]" > $HGRCPATH
$ echo "mocktime=`pwd`/mocktime.py" >> $HGRCPATH
$ echo "progress=" >> $HGRCPATH
$ echo "loop=`pwd`/loop.py" >> $HGRCPATH
@@ -173,7 +123,7 @@ test delay time estimates
$ echo "delay=25" >> $HGRCPATH
$ echo "width=60" >> $HGRCPATH
- $ hg -y loop 8 2>&1 | python "$TESTDIR/filtercr.py"
+ $ hg -y loop 8 2>&1 | python $TESTDIR/filtercr.py
loop [=========> ] 2/8 1m07s
loop [===============> ] 3/8 56s
@@ -183,7 +133,7 @@ test delay time estimates
loop [=====================================> ] 7/8 12s
\r (esc)
- $ MOCKTIME=10000 hg -y loop 4 2>&1 | python "$TESTDIR/filtercr.py"
+ $ MOCKTIME=10000 hg -y loop 4 2>&1 | python $TESTDIR/filtercr.py
loop [ ] 0/4
loop [=========> ] 1/4 8h21m
@@ -191,7 +141,7 @@ test delay time estimates
loop [==============================> ] 3/4 2h47m
\r (esc)
- $ MOCKTIME=1000000 hg -y loop 4 2>&1 | python "$TESTDIR/filtercr.py"
+ $ MOCKTIME=1000000 hg -y loop 4 2>&1 | python $TESTDIR/filtercr.py
loop [ ] 0/4
loop [=========> ] 1/4 5w00d
@@ -200,7 +150,7 @@ test delay time estimates
\r (esc)
- $ MOCKTIME=14000000 hg -y loop 4 2>&1 | python "$TESTDIR/filtercr.py"
+ $ MOCKTIME=14000000 hg -y loop 4 2>&1 | python $TESTDIR/filtercr.py
loop [ ] 0/4
loop [=========> ] 1/4 1y18w
@@ -209,7 +159,7 @@ test delay time estimates
\r (esc)
Time estimates should not fail when there's no end point:
- $ hg -y loop -- -4 2>&1 | python "$TESTDIR/filtercr.py"
+ $ hg -y loop -- -4 2>&1 | python $TESTDIR/filtercr.py
loop [ <=> ] 2
loop [ <=> ] 3
diff --git a/tests/test-pull-branch.t b/tests/test-pull-branch.t
index a9545cf..89f82c3 100644
--- a/tests/test-pull-branch.t
+++ b/tests/test-pull-branch.t
@@ -5,7 +5,6 @@
adding foo
$ hg branch branchA
marked working directory as branch branchA
- (branches are permanent and global, did you want a bookmark?)
$ echo a1 > foo
$ hg ci -ma1 # 1
@@ -33,7 +32,6 @@ Create branch B:
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch branchB
marked working directory as branch branchB
- (branches are permanent and global, did you want a bookmark?)
$ echo b1 > foo
$ hg ci -mb1 # 3
@@ -141,7 +139,6 @@ Make changes on new branch on tt
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch branchC
marked working directory as branch branchC
- (branches are permanent and global, did you want a bookmark?)
$ echo b1 > bar
$ hg ci -Am "commit on branchC on tt"
adding bar
@@ -212,5 +209,3 @@ Pull from tt
adding file changes
added 2 changesets with 2 changes to 2 files (+2 heads)
(run 'hg heads .' to see heads, 'hg merge' to merge)
-
- $ cd ..
diff --git a/tests/test-pull-http.t b/tests/test-pull-http.t
index 7c53682..3c42ae4 100644
--- a/tests/test-pull-http.t
+++ b/tests/test-pull-http.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
$ hg init test
$ cd test
@@ -13,30 +12,13 @@
$ echo a >> a
$ hg ci -mb
-Cloning with a password in the URL should not save the password in .hg/hgrc:
-
- $ hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
- $ cat hg.pid >> $DAEMON_PIDS
- $ hg clone http://foo:xyzzy@localhost:$HGPORT/ test3
- requesting all changes
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 1 files
- updating to branch default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cat test3/.hg/hgrc
- [paths]
- default = http://foo@localhost:$HGPORT/
- $ "$TESTDIR/killdaemons.py"
-
expect error, cloning not allowed
$ echo '[web]' > .hg/hgrc
$ echo 'allowpull = false' >> .hg/hgrc
$ hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
- $ hg clone http://localhost:$HGPORT/ test4
+ $ hg clone http://localhost:$HGPORT/ test3
requesting all changes
abort: authorization failed
[255]
@@ -61,5 +43,3 @@ expect error, pulling not allowed
searching for changes
abort: authorization failed
% serve errors
-
- $ cd ..
diff --git a/tests/test-pull-permission.t b/tests/test-pull-permission.t
index 8df5527..bc9fdf6 100644
--- a/tests/test-pull-permission.t
+++ b/tests/test-pull-permission.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" unix-permissions || exit 80
-
$ hg init a
$ cd a
$ echo foo > b
@@ -29,4 +27,3 @@
checking files
1 files, 1 changesets, 1 total revisions
- $ cd ..
diff --git a/tests/test-pull-pull-corruption.t b/tests/test-pull-pull-corruption.t
index 4df2984..3294d72 100644
--- a/tests/test-pull-pull-corruption.t
+++ b/tests/test-pull-pull-corruption.t
@@ -37,27 +37,26 @@ use a hook to make the second pull start while the first one is still running
start a pull...
- $ hg pull ../source1 > pull.out 2>&1 &
+ $ hg pull ../source1 &
... 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
- searching for changes
adding changesets
adding manifests
adding file changes
- added 1 changesets with 1 changes to 1 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
- $ cat pull.out
- pulling from ../source1
- requesting all changes
+ added 10 changesets with 10 changes to 1 files
+ (run 'hg update' to get a working copy)
+ searching for changes
adding changesets
adding manifests
adding file changes
- added 10 changesets with 10 changes to 1 files
- (run 'hg update' to get a working copy)
+ added 1 changesets with 1 changes to 1 files (+1 heads)
+ (run 'hg heads' to see heads, 'hg merge' to merge)
see the result
@@ -68,5 +67,3 @@ see the result
crosschecking files in changesets and manifests
checking files
1 files, 11 changesets, 11 total revisions
-
- $ cd ..
diff --git a/tests/test-pull-pull-corruption2.t b/tests/test-pull-pull-corruption2.t
new file mode 100644
index 0000000..ad4509c
--- /dev/null
+++ b/tests/test-pull-pull-corruption2.t
@@ -0,0 +1,44 @@
+Corrupt an hg repo with two pulls.
+create one repo with a long history
+
+ $ hg init source1
+ $ cd source1
+ $ touch foo
+ $ hg add foo
+ $ for i in 1 2 3 4 5 6 7 8 9 10; do
+ > echo $i >> foo
+ > hg ci -m $i
+ > done
+ $ cd ..
+
+create a third repo to pull both other repos into it
+
+ $ hg init version2
+ $ hg -R version2 pull source1 &
+ $ sleep 1
+ pulling from source1
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 10 changesets with 10 changes to 1 files
+ (run 'hg update' to get a working copy)
+ $ hg clone --pull -U version2 corrupted
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 10 changesets with 10 changes to 1 files
+ $ wait
+ $ hg -R corrupted verify
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 1 files, 10 changesets, 10 total revisions
+ $ hg -R version2 verify
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 1 files, 10 changesets, 10 total revisions
diff --git a/tests/test-pull-r.t b/tests/test-pull-r.t
index af91b6d..ed2cada 100644
--- a/tests/test-pull-r.t
+++ b/tests/test-pull-r.t
@@ -43,7 +43,7 @@ don't show "(+1 heads)" message when pulling closed head
2:effea6de0384
1:ed1b79f46b9a
$ hg pull
- pulling from $TESTTMP/repo2 (glob)
+ pulling from $TESTTMP/repo2
searching for changes
adding changesets
adding manifests
@@ -101,4 +101,3 @@ This used to abort: received changelog group is empty:
$ hg pull -qr 1 ../repo
- $ cd ..
diff --git a/tests/test-pull-update.t b/tests/test-pull-update.t
index 3aa5a49..7124fef 100644
--- a/tests/test-pull-update.t
+++ b/tests/test-pull-update.t
@@ -59,4 +59,3 @@ Should work:
added 1 changesets with 1 changes to 1 files (-1 heads)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd ..
diff --git a/tests/test-pull.t b/tests/test-pull.t
index b14d7f7..7d194f9 100644
--- a/tests/test-pull.t
+++ b/tests/test-pull.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
$ hg init test
$ cd test
@@ -45,7 +43,7 @@
2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 foo
$ hg pull
- pulling from http://foo@localhost:$HGPORT/
+ pulling from http://foo:***@localhost:$HGPORT/
searching for changes
no changes found
@@ -88,5 +86,3 @@ regular shell commands.
$ URL=`python -c "import os; print 'file://localhost' + ('/' + os.getcwd().replace(os.sep, '/')).replace('//', '/') + '/../test'"`
$ hg pull -q "$URL"
-
- $ cd ..
diff --git a/tests/test-purge.t b/tests/test-purge.t
index 75f9f90..9e544d5 100644
--- a/tests/test-purge.t
+++ b/tests/test-purge.t
@@ -24,7 +24,7 @@ delete an empty directory
$ hg purge -p
empty_dir
$ hg purge -v
- removing directory empty_dir
+ Removing directory empty_dir
$ ls
directory
r1
@@ -38,9 +38,9 @@ delete an untracked directory
untracked_dir/untracked_file1
untracked_dir/untracked_file2
$ hg purge -v
- removing file untracked_dir/untracked_file1
- removing file untracked_dir/untracked_file2
- removing directory untracked_dir
+ Removing file untracked_dir/untracked_file1
+ Removing file untracked_dir/untracked_file2
+ Removing directory untracked_dir
$ ls
directory
r1
@@ -58,8 +58,8 @@ delete an untracked file
untracked_file
untracked_file_readonly
$ hg purge -v
- removing file untracked_file
- removing file untracked_file_readonly
+ Removing file untracked_file
+ Removing file untracked_file_readonly
$ ls
directory
r1
@@ -70,7 +70,7 @@ delete an untracked file in a tracked directory
$ hg purge -p
directory/untracked_file
$ hg purge -v
- removing file directory/untracked_file
+ Removing file directory/untracked_file
$ ls
directory
r1
@@ -81,8 +81,8 @@ delete nested directories
$ hg purge -p
untracked_directory/nested_directory
$ hg purge -v
- removing directory untracked_directory/nested_directory
- removing directory untracked_directory
+ Removing directory untracked_directory/nested_directory
+ Removing directory untracked_directory
$ ls
directory
r1
@@ -94,8 +94,8 @@ delete nested directories from a subdir
$ hg purge -p
untracked_directory/nested_directory
$ hg purge -v
- removing directory untracked_directory/nested_directory
- removing directory untracked_directory
+ Removing directory untracked_directory/nested_directory
+ Removing directory untracked_directory
$ cd ..
$ ls
directory
@@ -109,8 +109,8 @@ delete only part of the tree
$ hg purge -p ../untracked_directory
untracked_directory/nested_directory
$ hg purge -v ../untracked_directory
- removing directory untracked_directory/nested_directory
- removing directory untracked_directory
+ Removing directory untracked_directory/nested_directory
+ Removing directory untracked_directory
$ cd ..
$ ls
directory
@@ -131,7 +131,7 @@ skip ignored files if --all not specified
$ hg purge -p --all
ignored
$ hg purge -v --all
- removing file ignored
+ Removing file ignored
$ ls
directory
r1
@@ -152,7 +152,7 @@ hide error messages to avoid changing the output when the text changes
$ hg purge -p
untracked_file
$ hg purge -v 2> /dev/null
- removing file untracked_file
+ Removing file untracked_file
$ hg st
! r1
@@ -168,7 +168,7 @@ tracked file in ignored directory (issue621)
$ hg purge -p
untracked_file
$ hg purge -v
- removing file untracked_file
+ Removing file untracked_file
skip excluded files
@@ -214,5 +214,3 @@ skip patterns
$ touch directory/.svn/foo
$ hg purge -p -X .svn -X '*/.svn'
$ hg purge -p -X re:.*.svn
-
- $ cd ..
diff --git a/tests/test-push-cgi.t b/tests/test-push-cgi.t
index 365a73a..e0ae84a 100644
--- a/tests/test-push-cgi.t
+++ b/tests/test-push-cgi.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" no-msys || exit 80 # MSYS will translate web paths as if they were file paths
-
This is a test of the push wire protocol over CGI-based hgweb.
initialize repository
@@ -88,5 +86,3 @@ successful push, SHA1 hash of heads (unbundlehash capability)
adding manifests
adding file changes
added 0 changesets with 0 changes to 1 files
-
- $ cd ..
diff --git a/tests/test-push-http.t b/tests/test-push-http.t
index 7f3c6d6..7474d7b 100644
--- a/tests/test-push-http.t
+++ b/tests/test-push-http.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
$ hg init test
$ cd test
@@ -28,8 +27,6 @@ expect ssl error
pushing to http://localhost:$HGPORT/
searching for changes
remote: ssl required
- remote: ssl required
- updating cb9a9f314b8b to public failed!
% serve errors
expect authorization error
@@ -55,7 +52,7 @@ expect success
$ echo 'allow_push = *' >> .hg/hgrc
$ echo '[hooks]' >> .hg/hgrc
- $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup 0" >> .hg/hgrc
+ $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup 0' >> .hg/hgrc
$ req
pushing to http://localhost:$HGPORT/
searching for changes
@@ -63,10 +60,11 @@ expect success
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
- remote: changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http:*: (glob)
+ remote: changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http:*: (glob)
% serve errors
$ hg rollback
repository tip rolled back to revision 0 (undo serve)
+ working directory now based on revision 0
expect success, server lacks the httpheader capability
@@ -79,10 +77,11 @@ expect success, server lacks the httpheader capability
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
- remote: changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http:*: (glob)
+ remote: changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http:*: (glob)
% serve errors
$ hg rollback
repository tip rolled back to revision 0 (undo serve)
+ working directory now based on revision 0
expect success, server lacks the unbundlehash capability
@@ -95,10 +94,11 @@ expect success, server lacks the unbundlehash capability
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
- remote: changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http:*: (glob)
+ remote: changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http:*: (glob)
% serve errors
$ hg rollback
repository tip rolled back to revision 0 (undo serve)
+ working directory now based on revision 0
expect authorization error: all users denied
@@ -119,5 +119,3 @@ expect authorization error: some users denied, users must be authenticated
searching for changes
abort: authorization failed
% serve errors
-
- $ cd ..
diff --git a/tests/test-push-r.t b/tests/test-push-r.t
index d6e541b..39e4254 100644
--- a/tests/test-push-r.t
+++ b/tests/test-push-r.t
@@ -1,6 +1,6 @@
$ hg init test
$ cd test
- $ hg unbundle "$TESTDIR/bundles/remote.hg"
+ $ hg unbundle $TESTDIR/bundles/remote.hg
adding changesets
adding manifests
adding file changes
@@ -146,4 +146,3 @@
checking files
4 files, 9 changesets, 7 total revisions
- $ cd ..
diff --git a/tests/test-push-validation.t b/tests/test-push-validation.t
index a4b49de..869d7a8 100644
--- a/tests/test-push-validation.t
+++ b/tests/test-push-validation.t
@@ -40,7 +40,7 @@ Expected to fail:
Expected to fail:
$ hg push
- pushing to $TESTTMP/test (glob)
+ pushing to $TESTTMP/test
searching for changes
adding changesets
adding manifests
@@ -50,4 +50,3 @@ Expected to fail:
abort: missing file data for beta:dddc47b3ba30e54484720ce0f4f768a0f4b6efb9 - run hg verify
[255]
- $ cd ..
diff --git a/tests/test-push-warn.t b/tests/test-push-warn.t
index 37c1589..f659d30 100644
--- a/tests/test-push-warn.t
+++ b/tests/test-push-warn.t
@@ -37,7 +37,6 @@
searching: 2 queries
query 2; still undecided: 1, sample size is: 1
2 total queries
- listing keys for "bookmarks"
new remote heads on branch 'default'
new remote head 1e108cc5548c
abort: push creates new remote head 1e108cc5548c!
@@ -117,7 +116,6 @@
pushing to ../c
searching for changes
no changes found
- [1]
$ hg push -r 3 ../c
pushing to ../c
@@ -395,7 +393,6 @@ Check prepush logic with merged branches:
$ hg init j
$ hg -R j branch a
marked working directory as branch a
- (branches are permanent and global, did you want a bookmark?)
$ echo init > j/foo
$ hg -R j ci -Am init
adding foo
@@ -406,7 +403,6 @@ Check prepush logic with merged branches:
$ hg -R j ci -m a1
$ hg -R k branch b
marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
$ echo b > k/foo
$ hg -R k ci -m b
$ hg -R k up 0
@@ -470,13 +466,11 @@ Check prepush with new branch head on former topo non-head:
$ cd n
$ hg branch A
marked working directory as branch A
- (branches are permanent and global, did you want a bookmark?)
$ echo a >a
$ hg ci -Ama
adding a
$ hg branch B
marked working directory as branch B
- (branches are permanent and global, did you want a bookmark?)
$ echo b >b
$ hg ci -Amb
adding b
@@ -549,13 +543,11 @@ Check prepush with new branch head on former topo head:
$ cd o
$ hg branch A
marked working directory as branch A
- (branches are permanent and global, did you want a bookmark?)
$ echo a >a
$ hg ci -Ama
adding a
$ hg branch B
marked working directory as branch B
- (branches are permanent and global, did you want a bookmark?)
$ echo b >b
$ hg ci -Amb
adding b
@@ -637,7 +629,6 @@ but child is on different branch:
$ cd p
$ hg branch A
marked working directory as branch A
- (branches are permanent and global, did you want a bookmark?)
$ echo a0 >a
$ hg ci -Ama0
adding a
@@ -647,7 +638,6 @@ but child is on different branch:
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg branch B
marked working directory as branch B
- (branches are permanent and global, did you want a bookmark?)
$ echo b0 >b
$ hg ci -Amb0
adding b
@@ -662,7 +652,6 @@ but child is on different branch:
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg branch -f B
marked working directory as branch B
- (branches are permanent and global, did you want a bookmark?)
$ echo a3 >a
$ hg ci -ma3
created new head
@@ -670,7 +659,6 @@ but child is on different branch:
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg branch -f A
marked working directory as branch A
- (branches are permanent and global, did you want a bookmark?)
$ echo b3 >b
$ hg ci -mb3
created new head
@@ -728,5 +716,3 @@ outgoing:
searching for changes
no changes found
[1]
-
- $ cd ..
diff --git a/tests/test-qrecord.t b/tests/test-qrecord.t
index ca218f3..0badb91 100644
--- a/tests/test-qrecord.t
+++ b/tests/test-qrecord.t
@@ -6,8 +6,7 @@ Create configuration
help record (no record)
$ hg help record
- record extension - commands to interactively select changes for
- commit/qrefresh
+ record extension - commands to interactively select changes for commit/qrefresh
use "hg help extensions" for information on enabling extensions
@@ -16,7 +15,7 @@ help qrecord (no record)
$ hg help qrecord
'qrecord' is provided by the following extension:
- record commands to interactively select changes for commit/qrefresh
+ record commands to interactively select changes for commit/qrefresh
use "hg help extensions" for information on enabling extensions
@@ -41,7 +40,6 @@ help record (record)
y - record this change
n - skip this change
- e - edit this change manually
s - skip remaining changes to this file
f - record remaining changes to this file
@@ -56,25 +54,23 @@ help record (record)
options:
- -A --addremove mark new/missing files as added/removed before
- committing
- --close-branch mark a branch as closed, hiding it from the branch
- list
- --amend amend the parent of the working dir
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
- -m --message TEXT use text as commit message
- -l --logfile FILE read commit message from file
- -d --date DATE record the specified date as commit date
- -u --user USER record the specified user as committer
- -S --subrepos recurse into subrepositories
- -w --ignore-all-space ignore white space when comparing lines
- -b --ignore-space-change ignore changes in the amount of white space
- -B --ignore-blank-lines ignore changes whose lines are all blank
+ -A --addremove mark new/missing files as added/removed before
+ committing
+ --close-branch mark a branch as closed, hiding it from the branch
+ list
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
+ -m --message TEXT use text as commit message
+ -l --logfile FILE read commit message from file
+ -d --date DATE record the specified date as commit date
+ -u --user USER record the specified user as committer
+ -w --ignore-all-space ignore white space when comparing lines
+ -b --ignore-space-change ignore changes in the amount of white space
+ -B --ignore-blank-lines ignore changes whose lines are all blank
[+] marked option can be specified multiple times
- use "hg -v help record" to show more info
+ use "hg -v help record" to show global options
help (no mq, so no qrecord)
@@ -85,7 +81,7 @@ help (no mq, so no qrecord)
See "hg help qnew" & "hg help record" for more information and usage.
- use "hg -v help qrecord" to show more info
+ use "hg -v help qrecord" to show global options
$ hg init a
@@ -110,14 +106,14 @@ help (bad mq)
$ echo "mq=nonexistant" >> $HGRCPATH
$ hg help qrecord
- *** failed to import extension mq from nonexistant: [Errno 2] * (glob)
+ *** failed to import extension mq from nonexistant: [Errno 2] No such file or directory
hg qrecord [OPTION]... PATCH [FILE]...
interactively record a new patch
See "hg help qnew" & "hg help record" for more information and usage.
- use "hg -v help qrecord" to show more info
+ use "hg -v help qrecord" to show global options
help (mq present)
@@ -133,24 +129,24 @@ help (mq present)
options:
- -e --edit edit commit message
- -g --git use git extended diff format
- -U --currentuser add "From: <current user>" to patch
- -u --user USER add "From: <USER>" to patch
- -D --currentdate add "Date: <current date>" to patch
- -d --date DATE add "Date: <DATE>" to patch
- -I --include PATTERN [+] include names matching the given patterns
- -X --exclude PATTERN [+] exclude names matching the given patterns
- -m --message TEXT use text as commit message
- -l --logfile FILE read commit message from file
- -w --ignore-all-space ignore white space when comparing lines
- -b --ignore-space-change ignore changes in the amount of white space
- -B --ignore-blank-lines ignore changes whose lines are all blank
- --mq operate on patch repository
+ -e --edit edit commit message
+ -g --git use git extended diff format
+ -U --currentuser add "From: <current user>" to patch
+ -u --user USER add "From: <USER>" to patch
+ -D --currentdate add "Date: <current date>" to patch
+ -d --date DATE add "Date: <DATE>" to patch
+ -I --include PATTERN [+] include names matching the given patterns
+ -X --exclude PATTERN [+] exclude names matching the given patterns
+ -m --message TEXT use text as commit message
+ -l --logfile FILE read commit message from file
+ -w --ignore-all-space ignore white space when comparing lines
+ -b --ignore-space-change ignore changes in the amount of white space
+ -B --ignore-blank-lines ignore changes whose lines are all blank
+ --mq operate on patch repository
[+] marked option can be specified multiple times
- use "hg -v help qrecord" to show more info
+ use "hg -v help qrecord" to show global options
$ cd a
@@ -248,22 +244,22 @@ qrecord a.patch
> EOF
diff --git a/1.txt b/1.txt
2 hunks, 2 lines changed
- examine changes to '1.txt'? [Ynesfdaq?]
+ examine changes to '1.txt'? [Ynsfdaq?]
@@ -1,3 +1,3 @@
1
-2
+2 2
3
- record change 1/4 to '1.txt'? [Ynesfdaq?]
+ record change 1/4 to '1.txt'? [Ynsfdaq?]
@@ -3,3 +3,3 @@
3
-4
+4 4
5
- record change 2/4 to '1.txt'? [Ynesfdaq?]
+ record change 2/4 to '1.txt'? [Ynsfdaq?]
diff --git a/2.txt b/2.txt
1 hunks, 1 lines changed
- examine changes to '2.txt'? [Ynesfdaq?]
+ examine changes to '2.txt'? [Ynsfdaq?]
@@ -1,5 +1,5 @@
a
-b
@@ -271,10 +267,10 @@ qrecord a.patch
c
d
e
- record change 3/4 to '2.txt'? [Ynesfdaq?]
+ record change 3/4 to '2.txt'? [Ynsfdaq?]
diff --git a/dir/a.txt b/dir/a.txt
1 hunks, 1 lines changed
- examine changes to 'dir/a.txt'? [Ynesfdaq?]
+ examine changes to 'dir/a.txt'? [Ynsfdaq?]
After qrecord a.patch 'tip'"
@@ -343,7 +339,7 @@ qrecord b.patch
> EOF
diff --git a/1.txt b/1.txt
1 hunks, 1 lines changed
- examine changes to '1.txt'? [Ynesfdaq?]
+ examine changes to '1.txt'? [Ynsfdaq?]
@@ -1,5 +1,5 @@
1
2 2
@@ -351,17 +347,17 @@ qrecord b.patch
-4
+4 4
5
- record change 1/2 to '1.txt'? [Ynesfdaq?]
+ record change 1/2 to '1.txt'? [Ynsfdaq?]
diff --git a/dir/a.txt b/dir/a.txt
1 hunks, 1 lines changed
- examine changes to 'dir/a.txt'? [Ynesfdaq?]
+ examine changes to 'dir/a.txt'? [Ynsfdaq?]
@@ -1,4 +1,4 @@
-hello world
+hello world!
someone
up
- record change 2/2 to 'dir/a.txt'? [Ynesfdaq?]
+ record change 2/2 to 'dir/a.txt'? [Ynsfdaq?]
After qrecord b.patch 'tip'
@@ -398,5 +394,3 @@ After qrecord b.patch 'tip'
After qrecord b.patch 'diff'
$ hg diff --nodates
-
- $ cd ..
diff --git a/tests/test-rebase-abort.t b/tests/test-rebase-abort.t
index 3be364e..fab0214 100644
--- a/tests/test-rebase-abort.t
+++ b/tests/test-rebase-abort.t
@@ -3,11 +3,8 @@
> graphlog=
> rebase=
>
- > [phases]
- > publish=False
- >
> [alias]
- > tglog = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
+ > tglog = log -G --template "{rev}: '{desc}' {branches}\n"
> EOF
@@ -35,18 +32,16 @@
$ mv common.new common
$ hg ci -m L2
- $ hg phase --force --secret 2
-
$ hg tglog
- @ 4:draft 'L2'
+ @ 4: 'L2'
|
- o 3:draft 'L1'
+ o 3: 'L1'
|
- | o 2:secret 'C3'
+ | o 2: 'C3'
|/
- o 1:draft 'C2'
+ o 1: 'C2'
|
- o 0:draft 'C1'
+ o 0: 'C1'
Conflicting rebase:
@@ -54,7 +49,7 @@ Conflicting rebase:
$ hg rebase -s 3 -d 2
merging common
warning: conflicts during merge.
- merging common incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging common failed!
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
@@ -65,15 +60,15 @@ Abort:
rebase aborted
$ hg tglog
- @ 4:draft 'L2'
+ @ 4: 'L2'
|
- o 3:draft 'L1'
+ o 3: 'L1'
|
- | o 2:secret 'C3'
+ | o 2: 'C3'
|/
- o 1:draft 'C2'
+ o 1: 'C2'
|
- o 0:draft 'C1'
+ o 0: 'C1'
$ cd ..
@@ -106,53 +101,48 @@ Constrcut new repo:
$ hg ci -Am C1
adding c
- $ hg phase --force --secret 1
- $ hg phase --public 1
-
Rebase and abort without generating new changesets:
$ hg tglog
- @ 4:draft 'C1'
+ @ 4: 'C1'
|
- o 3:draft 'B bis'
+ o 3: 'B bis'
|
- | o 2:secret 'C'
+ | o 2: 'C'
| |
- | o 1:public 'B'
+ | o 1: 'B'
|/
- o 0:public 'A'
+ o 0: 'A'
$ hg rebase -b 4 -d 2
merging c
warning: conflicts during merge.
- merging c incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging c failed!
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
$ hg tglog
- @ 4:draft 'C1'
+ @ 4: 'C1'
|
- o 3:draft 'B bis'
+ o 3: 'B bis'
|
- | @ 2:secret 'C'
+ | @ 2: 'C'
| |
- | o 1:public 'B'
+ | o 1: 'B'
|/
- o 0:public 'A'
+ o 0: 'A'
$ hg rebase -a
rebase aborted
$ hg tglog
- @ 4:draft 'C1'
+ @ 4: 'C1'
|
- o 3:draft 'B bis'
+ o 3: 'B bis'
|
- | o 2:secret 'C'
+ | o 2: 'C'
| |
- | o 1:public 'B'
+ | o 1: 'B'
|/
- o 0:public 'A'
+ o 0: 'A'
-
- $ cd ..
diff --git a/tests/test-rebase-bookmarks.t b/tests/test-rebase-bookmarks.t
index fe5a251..4186be9 100644
--- a/tests/test-rebase-bookmarks.t
+++ b/tests/test-rebase-bookmarks.t
@@ -3,9 +3,6 @@
> graphlog=
> rebase=
>
- > [phases]
- > publish=False
- >
> [alias]
> tglog = log -G --template "{rev}: '{desc}' bookmarks: {bookmarks}\n"
> EOF
@@ -36,10 +33,8 @@ Create a repo with several bookmarks
adding d
created new head
- $ hg book W
-
$ hg tglog
- @ 3: 'D' bookmarks: W
+ @ 3: 'D' bookmarks:
|
| o 2: 'C' bookmarks: Y Z
| |
@@ -56,13 +51,13 @@ Move only rebased bookmarks
$ cd a1
$ hg up -q Z
- $ hg rebase -s Y -d 3
+ $ hg rebase --detach -s Y -d 3
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@ 3: 'C' bookmarks: Y Z
|
- o 2: 'D' bookmarks: W
+ o 2: 'D' bookmarks:
|
| o 1: 'B' bookmarks: X
|/
@@ -84,30 +79,7 @@ Keep bookmarks to the correct rebased changeset
|
o 2: 'B' bookmarks: X
|
- o 1: 'D' bookmarks: W
+ o 1: 'D' bookmarks:
|
o 0: 'A' bookmarks:
-
-Keep active bookmark on the correct changeset
-
- $ cd ..
- $ hg clone -q a a3
-
- $ cd a3
- $ hg up -q X
-
- $ hg rebase -d W
- saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
-
- $ hg tglog
- @ 3: 'C' bookmarks: Y Z
- |
- o 2: 'B' bookmarks: X
- |
- o 1: 'D' bookmarks: W
- |
- o 0: 'A' bookmarks:
-
-
- $ cd ..
diff --git a/tests/test-rebase-cache.t b/tests/test-rebase-cache.t
index 81fa012..4792b55 100644
--- a/tests/test-rebase-cache.t
+++ b/tests/test-rebase-cache.t
@@ -2,10 +2,6 @@
> [extensions]
> graphlog=
> rebase=
- > mq=
- >
- > [phases]
- > publish=False
>
> [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
@@ -21,7 +17,6 @@
$ hg branch branch1
marked working directory as branch branch1
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -m 'branch1'
$ echo b > b
@@ -32,7 +27,6 @@
$ hg branch branch2
marked working directory as branch branch2
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -m 'branch2'
$ echo c > C
@@ -43,7 +37,6 @@
$ hg branch -f branch2
marked working directory as branch branch2
- (branches are permanent and global, did you want a bookmark?)
$ echo d > d
$ hg ci -Am D
adding d
@@ -58,7 +51,6 @@
$ hg branch branch3
marked working directory as branch branch3
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -m 'branch3'
$ echo f > f
@@ -105,7 +97,7 @@ Rebase part of branch2 (5-6) onto branch3 (8):
2: 'B' branch1
0: 'A'
- $ hg rebase -s 5 -d 8
+ $ hg rebase --detach -s 5 -d 8
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg branches
@@ -166,7 +158,7 @@ Rebase head of branch3 (8) onto branch2 (6):
|/
o 0: 'A'
- $ hg rebase -s 8 -d 6
+ $ hg rebase --detach -s 8 -d 6
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg branches
@@ -230,7 +222,7 @@ Rebase entire branch3 (7-8) onto branch2 (6):
|/
o 0: 'A'
- $ hg rebase -s 7 -d 6
+ $ hg rebase --detach -s 7 -d 6
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
$ hg branches
@@ -263,125 +255,3 @@ Rebase entire branch3 (7-8) onto branch2 (6):
$ hg verify -q
-Stripping multiple branches in one go bypasses the fast-case code to
-update the branch cache.
-
- $ hg strip 2
- 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
- saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
-
- $ hg tglog
- o 3: 'C' branch2
- |
- o 2: 'branch2' branch2
- |
- | @ 1: 'branch1' branch1
- |/
- o 0: 'A'
-
-
- $ hg branches
- branch2 3:e4fdb121d036
- branch1 1:63379ac49655
- default 0:1994f17a630e (inactive)
-
- $ hg theads
- 3: 'C' branch2
- 1: 'branch1' branch1
- 0: 'A'
-
-Fast path branchcache code should not be invoked if branches stripped is not
-the same as branches remaining.
-
- $ hg init b
- $ cd b
-
- $ hg branch branch1
- marked working directory as branch branch1
- (branches are permanent and global, did you want a bookmark?)
- $ hg ci -m 'branch1'
-
- $ hg branch branch2
- marked working directory as branch branch2
- (branches are permanent and global, did you want a bookmark?)
- $ hg ci -m 'branch2'
-
- $ hg branch -f branch1
- marked working directory as branch branch1
- (branches are permanent and global, did you want a bookmark?)
-
- $ echo a > A
- $ hg ci -Am A
- adding A
- created new head
-
- $ hg tglog
- @ 2: 'A' branch1
- |
- o 1: 'branch2' branch2
- |
- o 0: 'branch1' branch1
-
-
- $ hg theads
- 2: 'A' branch1
- 1: 'branch2' branch2
-
- $ hg strip 2
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- saved backup bundle to $TESTTMP/a3/b/.hg/strip-backup/*-backup.hg (glob)
-
- $ hg theads
- 1: 'branch2' branch2
- 0: 'branch1' branch1
-
-
-Make sure requesting to strip a revision already stripped does not confuse things.
-Try both orders.
-
- $ cd ..
-
- $ hg init c
- $ cd c
-
- $ echo a > a
- $ hg ci -Am A
- adding a
- $ echo b > b
- $ hg ci -Am B
- adding b
- $ echo c > c
- $ hg ci -Am C
- adding c
- $ echo d > d
- $ hg ci -Am D
- adding d
- $ echo e > e
- $ hg ci -Am E
- adding e
-
- $ hg tglog
- @ 4: 'E'
- |
- o 3: 'D'
- |
- o 2: 'C'
- |
- o 1: 'B'
- |
- o 0: 'A'
-
-
- $ hg strip 3 4
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- saved backup bundle to $TESTTMP/a3/c/.hg/strip-backup/*-backup.hg (glob)
-
- $ hg theads
- 2: 'C'
-
- $ hg strip 2 1
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- saved backup bundle to $TESTTMP/a3/c/.hg/strip-backup/*-backup.hg (glob)
-
- $ hg theads
- 0: 'A'
diff --git a/tests/test-rebase-check-restore.t b/tests/test-rebase-check-restore.t
index c664725..779e29d 100644
--- a/tests/test-rebase-check-restore.t
+++ b/tests/test-rebase-check-restore.t
@@ -3,11 +3,8 @@
> graphlog=
> rebase=
>
- > [phases]
- > publish=False
- >
> [alias]
- > tglog = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
+ > tglog = log -G --template "{rev}: '{desc}' {branches}\n"
> EOF
@@ -39,36 +36,34 @@
$ hg branch 'notdefault'
marked working directory as branch notdefault
- (branches are permanent and global, did you want a bookmark?)
$ echo F >> A
$ hg ci -m F
$ cd ..
-Rebasing B onto E - check keep: and phases
+Rebasing B onto E - check keep:
$ hg clone -q -u . a a1
$ cd a1
- $ hg phase --force --secret 2
$ hg tglog
- @ 5:draft 'F' notdefault
+ @ 5: 'F' notdefault
|
- | o 4:draft 'E'
+ | o 4: 'E'
| |
- | o 3:draft 'D'
+ | o 3: 'D'
|/
- | o 2:secret 'C'
+ | o 2: 'C'
| |
- | o 1:draft 'B'
+ | o 1: 'B'
|/
- o 0:draft 'A'
+ o 0: 'A'
$ hg rebase -s 1 -d 4 --keep
merging A
warning: conflicts during merge.
- merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging A failed!
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
@@ -80,21 +75,21 @@ Solve the conflict and go on:
$ hg rebase --continue
$ hg tglog
- @ 7:secret 'C'
+ @ 7: 'C'
|
- o 6:draft 'B'
+ o 6: 'B'
|
- | o 5:draft 'F' notdefault
+ | o 5: 'F' notdefault
| |
- o | 4:draft 'E'
+ o | 4: 'E'
| |
- o | 3:draft 'D'
+ o | 3: 'D'
|/
- | o 2:secret 'C'
+ | o 2: 'C'
| |
- | o 1:draft 'B'
+ | o 1: 'B'
|/
- o 0:draft 'A'
+ o 0: 'A'
$ cd ..
@@ -103,25 +98,24 @@ Rebase F onto E - check keepbranches:
$ hg clone -q -u . a a2
$ cd a2
- $ hg phase --force --secret 2
$ hg tglog
- @ 5:draft 'F' notdefault
+ @ 5: 'F' notdefault
|
- | o 4:draft 'E'
+ | o 4: 'E'
| |
- | o 3:draft 'D'
+ | o 3: 'D'
|/
- | o 2:secret 'C'
+ | o 2: 'C'
| |
- | o 1:draft 'B'
+ | o 1: 'B'
|/
- o 0:draft 'A'
+ o 0: 'A'
$ hg rebase -s 5 -d 4 --keepbranches
merging A
warning: conflicts during merge.
- merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging A failed!
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
@@ -134,17 +128,15 @@ Solve the conflict and go on:
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
- @ 5:draft 'F' notdefault
+ @ 5: 'F' notdefault
|
- o 4:draft 'E'
+ o 4: 'E'
|
- o 3:draft 'D'
+ o 3: 'D'
|
- | o 2:secret 'C'
+ | o 2: 'C'
| |
- | o 1:draft 'B'
+ | o 1: 'B'
|/
- o 0:draft 'A'
+ o 0: 'A'
-
- $ cd ..
diff --git a/tests/test-rebase-collapse.t b/tests/test-rebase-collapse.t
index a89b8fe..1266f82 100644
--- a/tests/test-rebase-collapse.t
+++ b/tests/test-rebase-collapse.t
@@ -2,21 +2,16 @@
> [extensions]
> graphlog=
> rebase=
- > mq=
- >
- > [phases]
- > publish=False
>
> [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
- > tglogp = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
> EOF
Create repo a:
$ hg init a
$ cd a
- $ hg unbundle "$TESTDIR/bundles/rebase.hg"
+ $ hg unbundle $TESTDIR/bundles/rebase.hg
adding changesets
adding manifests
adding file changes
@@ -45,31 +40,28 @@ Create repo a:
$ cd ..
-Rebasing B onto H and collapsing changesets with different phases:
-
+Rebasing B onto H:
$ hg clone -q -u 3 a a1
$ cd a1
- $ hg phase --force --secret 3
-
$ hg rebase --collapse --keepbranches
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
- $ hg tglogp
- @ 5:secret 'Collapsed revision
+ $ hg tglog
+ @ 5: 'Collapsed revision
| * B
| * C
| * D'
- o 4:draft 'H'
+ o 4: 'H'
|
- | o 3:draft 'G'
+ | o 3: 'G'
|/|
- o | 2:draft 'F'
+ o | 2: 'F'
| |
- | o 1:draft 'E'
+ | o 1: 'E'
|/
- o 0:draft 'A'
+ o 0: 'A'
$ hg manifest
A
@@ -82,13 +74,12 @@ Rebasing B onto H and collapsing changesets with different phases:
$ cd ..
-Rebasing E onto H:
+Rebasing G onto H:
$ hg clone -q -u . a a2
$ cd a2
- $ hg phase --force --secret 6
- $ hg rebase --source 4 --collapse
+ $ hg rebase --base 6 --collapse
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -124,7 +115,7 @@ Rebasing G onto H with custom message:
abort: message can only be specified with collapse
[255]
- $ hg rebase --source 4 --collapse -m 'custom message'
+ $ hg rebase --base 6 --collapse -m 'custom message'
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -231,7 +222,7 @@ Rebase and collapse - more than one external (fail):
Rebase and collapse - E onto H:
- $ hg rebase -s 4 --collapse # root (4) is not a merge
+ $ hg rebase -s 4 --collapse
saved backup bundle to $TESTTMP/b1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -251,6 +242,7 @@ Rebase and collapse - E onto H:
$ hg manifest
A
+ B
C
D
E
@@ -260,44 +252,6 @@ Rebase and collapse - E onto H:
$ cd ..
-
-
-Test that branchheads cache is updated correctly when doing a strip in which
-the parent of the ancestor node to be stripped does not become a head and
-also, the parent of a node that is a child of the node stripped becomes a head
-(node 3).
-
- $ hg clone -q -u . b b2
- $ cd b2
-
- $ hg heads --template="{rev}:{node} {branch}\n"
- 7:c65502d4178782309ce0574c5ae6ee9485a9bafa default
- 6:c772a8b2dc17629cec88a19d09c926c4814b12c7 default
-
- $ cat $TESTTMP/b2/.hg/cache/branchheads
- c65502d4178782309ce0574c5ae6ee9485a9bafa 7
- c772a8b2dc17629cec88a19d09c926c4814b12c7 default
- c65502d4178782309ce0574c5ae6ee9485a9bafa default
-
- $ hg strip 4
- saved backup bundle to $TESTTMP/b2/.hg/strip-backup/8a5212ebc852-backup.hg (glob)
-
- $ cat $TESTTMP/b2/.hg/cache/branchheads
- c65502d4178782309ce0574c5ae6ee9485a9bafa 4
- 2870ad076e541e714f3c2bc32826b5c6a6e5b040 default
- c65502d4178782309ce0574c5ae6ee9485a9bafa default
-
- $ hg heads --template="{rev}:{node} {branch}\n"
- 4:c65502d4178782309ce0574c5ae6ee9485a9bafa default
- 3:2870ad076e541e714f3c2bc32826b5c6a6e5b040 default
-
- $ cd ..
-
-
-
-
-
-
Create repo c:
$ hg init c
@@ -378,7 +332,7 @@ Rebase and collapse - E onto I:
$ hg clone -q -u . c c1
$ cd c1
- $ hg rebase -s 4 --collapse # root (4) is not a merge
+ $ hg rebase -s 4 --collapse
merging E
saved backup bundle to $TESTTMP/c1/.hg/strip-backup/*-backup.hg (glob)
@@ -400,6 +354,7 @@ Rebase and collapse - E onto I:
$ hg manifest
A
+ B
C
D
E
@@ -497,14 +452,12 @@ Interactions between collapse and keepbranches
$ hg branch '1'
marked working directory as branch 1
- (branches are permanent and global, did you want a bookmark?)
$ echo 'b' > b
$ hg ci -Am 'B'
adding b
$ hg branch '2'
marked working directory as branch 2
- (branches are permanent and global, did you want a bookmark?)
$ echo 'c' > c
$ hg ci -Am 'C'
adding c
@@ -527,196 +480,3 @@ Interactions between collapse and keepbranches
abort: cannot collapse multiple named branches
[255]
- $ repeatchange() {
- > hg checkout $1
- > hg cp d z
- > echo blah >> z
- > hg commit -Am "$2" --user "$3"
- > }
- $ repeatchange 3 "E" "user1"
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ repeatchange 3 "E" "user2"
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- created new head
- $ hg tglog
- @ 5: 'E'
- |
- | o 4: 'E'
- |/
- o 3: 'D'
- |
- | o 2: 'C' 2
- | |
- | o 1: 'B' 1
- |/
- o 0: 'A'
-
- $ hg rebase -s 5 -d 4
- saved backup bundle to $TESTTMP/e/.hg/strip-backup/*-backup.hg (glob)
- $ hg tglog
- @ 4: 'E'
- |
- o 3: 'D'
- |
- | o 2: 'C' 2
- | |
- | o 1: 'B' 1
- |/
- o 0: 'A'
-
- $ hg export tip
- # HG changeset patch
- # User user1
- # Date 0 0
- # Node ID f338eb3c2c7cc5b5915676a2376ba7ac558c5213
- # Parent 41acb9dca9eb976e84cd21fcb756b4afa5a35c09
- E
-
- diff -r 41acb9dca9eb -r f338eb3c2c7c z
- --- /dev/null Thu Jan 01 00:00:00 1970 +0000
- +++ b/z Thu Jan 01 00:00:00 1970 +0000
- @@ -0,0 +1,2 @@
- +d
- +blah
-
- $ cd ..
-
-Rebase, collapse and copies
-
- $ hg init copies
- $ cd copies
- $ hg unbundle "$TESTDIR/bundles/renames.hg"
- adding changesets
- adding manifests
- adding file changes
- added 4 changesets with 11 changes to 7 files (+1 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
- $ hg up -q tip
- $ hg tglog
- @ 3: 'move2'
- |
- o 2: 'move1'
- |
- | o 1: 'change'
- |/
- o 0: 'add'
-
- $ hg rebase --collapse -d 1
- merging a and d to d
- merging b and e to e
- merging c and f to f
- merging e and g to g
- merging f and c to c
- saved backup bundle to $TESTTMP/copies/.hg/strip-backup/*-backup.hg (glob)
- $ hg st
- $ hg st --copies --change .
- A d
- a
- A g
- b
- R b
- $ cat c
- c
- c
- $ cat d
- a
- a
- $ cat g
- b
- b
- $ hg log -r . --template "{file_copies}\n"
- d (a)g (b)
-
-Test collapsing a middle revision in-place
-
- $ hg tglog
- @ 2: 'Collapsed revision
- | * move1
- | * move2'
- o 1: 'change'
- |
- o 0: 'add'
-
- $ hg rebase --collapse -r 1 -d 0
- abort: can't remove original changesets with unrebased descendants
- (use --keep to keep original changesets)
- [255]
-
-Test collapsing in place
-
- $ hg rebase --collapse -b . -d 0
- saved backup bundle to $TESTTMP/copies/.hg/strip-backup/*-backup.hg (glob)
- $ hg st --change . --copies
- M a
- M c
- A d
- a
- A g
- b
- R b
- $ cat a
- a
- a
- $ cat c
- c
- c
- $ cat d
- a
- a
- $ cat g
- b
- b
- $ cd ..
-
-
-Test stripping a revision with another child
-
- $ hg init f
- $ cd f
-
- $ echo A > A
- $ hg ci -Am A
- adding A
- $ echo B > B
- $ hg ci -Am B
- adding B
-
- $ hg up -q 0
-
- $ echo C > C
- $ hg ci -Am C
- adding C
- created new head
-
- $ hg tglog
- @ 2: 'C'
- |
- | o 1: 'B'
- |/
- o 0: 'A'
-
-
-
- $ hg heads --template="{rev}:{node} {branch}: {desc}\n"
- 2:c5cefa58fd557f84b72b87f970135984337acbc5 default: C
- 1:27547f69f25460a52fff66ad004e58da7ad3fb56 default: B
-
- $ hg strip 2
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- saved backup bundle to $TESTTMP/f/.hg/strip-backup/*-backup.hg (glob)
-
- $ hg tglog
- o 1: 'B'
- |
- @ 0: 'A'
-
-
-
- $ hg heads --template="{rev}:{node} {branch}: {desc}\n"
- 1:27547f69f25460a52fff66ad004e58da7ad3fb56 default: B
-
- $ cd ..
-
-
-
-
diff --git a/tests/test-rebase-conflicts.t b/tests/test-rebase-conflicts.t
index 9d0a156..2ee4bdd 100644
--- a/tests/test-rebase-conflicts.t
+++ b/tests/test-rebase-conflicts.t
@@ -3,11 +3,8 @@
> graphlog=
> rebase=
>
- > [phases]
- > publish=False
- >
> [alias]
- > tglog = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
+ > tglog = log -G --template "{rev}: '{desc}' {branches}\n"
> EOF
$ hg init a
@@ -37,20 +34,18 @@
$ hg add extra2
$ hg ci -m L3
- $ hg phase --force --secret 4
-
$ hg tglog
- @ 5:secret 'L3'
+ @ 5: 'L3'
|
- o 4:secret 'L2'
+ o 4: 'L2'
|
- o 3:draft 'L1'
+ o 3: 'L1'
|
- | o 2:draft 'C3'
+ | o 2: 'C3'
|/
- o 1:draft 'C2'
+ o 1: 'C2'
|
- o 0:draft 'C1'
+ o 0: 'C1'
Try to call --continue:
@@ -63,7 +58,7 @@ Conflicting rebase:
$ hg rebase -s 3 -d 2
merging common
warning: conflicts during merge.
- merging common incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging common failed!
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
@@ -81,17 +76,17 @@ Conclude rebase:
saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
- @ 5:secret 'L3'
+ @ 5: 'L3'
|
- o 4:secret 'L2'
+ o 4: 'L2'
|
- o 3:draft 'L1'
+ o 3: 'L1'
|
- o 2:draft 'C3'
+ o 2: 'C3'
|
- o 1:draft 'C2'
+ o 1: 'C2'
|
- o 0:draft 'C1'
+ o 0: 'C1'
Check correctness:
@@ -118,4 +113,3 @@ Check correctness:
$ hg cat -r 5 common
resolved merge
- $ cd ..
diff --git a/tests/test-rebase-detach.t b/tests/test-rebase-detach.t
index cacc754..35ce8f0 100644
--- a/tests/test-rebase-detach.t
+++ b/tests/test-rebase-detach.t
@@ -3,9 +3,6 @@
> graphlog=
> rebase=
>
- > [phases]
- > publish=False
- >
> [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
> EOF
@@ -13,7 +10,7 @@
$ hg init a
$ cd a
- $ hg unbundle "$TESTDIR/bundles/rebase.hg"
+ $ hg unbundle $TESTDIR/bundles/rebase.hg
adding changesets
adding manifests
adding file changes
@@ -47,26 +44,25 @@ Rebasing D onto H detaching from C:
|/
o 0: 'A'
- $ hg phase --force --secret 3
- $ hg rebase -s 3 -d 7
+ $ hg rebase --detach -s 3 -d 7
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
- $ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
- @ 7:secret 'D'
+ $ hg tglog
+ @ 7: 'D'
|
- o 6:draft 'H'
+ o 6: 'H'
|
- | o 5:draft 'G'
+ | o 5: 'G'
|/|
- o | 4:draft 'F'
+ o | 4: 'F'
| |
- | o 3:draft 'E'
+ | o 3: 'E'
|/
- | o 2:draft 'C'
+ | o 2: 'C'
| |
- | o 1:draft 'B'
+ | o 1: 'B'
|/
- o 0:draft 'A'
+ o 0: 'A'
$ hg manifest
A
@@ -99,7 +95,7 @@ Rebasing C onto H detaching from B:
|/
o 0: 'A'
- $ hg rebase -s 2 -d 7
+ $ hg rebase --detach -s 2 -d 7
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -151,7 +147,7 @@ Rebasing B onto H using detach (same as not using it):
|/
o 0: 'A'
- $ hg rebase -s 1 -d 7
+ $ hg rebase --detach -s 1 -d 7
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -186,7 +182,6 @@ Rebasing C onto H detaching from B and collapsing:
$ hg clone -q -u . a a4
$ cd a4
- $ hg phase --force --secret 3
$ hg tglog
@ 7: 'H'
@@ -205,24 +200,24 @@ Rebasing C onto H detaching from B and collapsing:
|/
o 0: 'A'
- $ hg rebase --collapse -s 2 -d 7
+ $ hg rebase --detach --collapse -s 2 -d 7
saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob)
- $ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
- @ 6:secret 'Collapsed revision
+ $ hg tglog
+ @ 6: 'Collapsed revision
| * C
| * D'
- o 5:draft 'H'
+ o 5: 'H'
|
- | o 4:draft 'G'
+ | o 4: 'G'
|/|
- o | 3:draft 'F'
+ o | 3: 'F'
| |
- | o 2:draft 'E'
+ | o 2: 'E'
|/
- | o 1:draft 'B'
+ | o 1: 'B'
|/
- o 0:draft 'A'
+ o 0: 'A'
$ hg manifest
A
@@ -264,7 +259,7 @@ Rebasing across null as ancestor
|/
o 0: 'A'
- $ hg rebase -s 1 -d tip
+ $ hg rebase --detach -s 1 -d tip
saved backup bundle to $TESTTMP/a5/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -286,115 +281,3 @@ Rebasing across null as ancestor
|/
o 0: 'A'
-
- $ hg rebase -d 5 -s 7
- saved backup bundle to $TESTTMP/a5/.hg/strip-backup/13547172c9c0-backup.hg (glob)
- $ hg tglog
- @ 8: 'D'
- |
- o 7: 'C'
- |
- | o 6: 'B'
- |/
- o 5: 'extra branch'
-
- o 4: 'H'
- |
- | o 3: 'G'
- |/|
- o | 2: 'F'
- | |
- | o 1: 'E'
- |/
- o 0: 'A'
-
- $ cd ..
-
-Verify that target is not selected as external rev (issue3085)
-
- $ hg clone -q -U a a6
- $ cd a6
- $ hg up -q 6
-
- $ echo "I" >> E
- $ hg ci -m "I"
- $ hg merge 7
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m "Merge"
- $ echo "J" >> F
- $ hg ci -m "J"
-
- $ hg rebase -s 8 -d 7 --collapse --config ui.merge=internal:other
- remote changed E which local deleted
- use (c)hanged version or leave (d)eleted? c
- saved backup bundle to $TESTTMP/a6/.hg/strip-backup/*-backup.hg (glob)
-
- $ hg tglog
- @ 8: 'Collapsed revision
- | * I
- | * Merge
- | * J'
- o 7: 'H'
- |
- | o 6: 'G'
- |/|
- o | 5: 'F'
- | |
- | o 4: 'E'
- |/
- | o 3: 'D'
- | |
- | o 2: 'C'
- | |
- | o 1: 'B'
- |/
- o 0: 'A'
-
-
- $ hg parents
- changeset: 8:9472f4b1d736
- tag: tip
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: Collapsed revision
-
-
- $ cd ..
-
-Ensure --continue restores a correct state (issue3046) and phase:
- $ hg clone -q a a7
- $ cd a7
- $ hg up -q 3
- $ echo 'H2' > H
- $ hg ci -A -m 'H2'
- adding H
- $ hg phase --force --secret 8
- $ hg rebase -s 8 -d 7 --config ui.merge=internal:fail
- merging H
- warning: conflicts during merge.
- merging H incomplete! (edit conflicts, then use 'hg resolve --mark')
- abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
- [255]
- $ hg resolve --all -t internal:local
- $ hg rebase -c
- saved backup bundle to $TESTTMP/a7/.hg/strip-backup/6215fafa5447-backup.hg (glob)
- $ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
- @ 7:draft 'H'
- |
- | o 6:draft 'G'
- |/|
- o | 5:draft 'F'
- | |
- | o 4:draft 'E'
- |/
- | o 3:draft 'D'
- | |
- | o 2:draft 'C'
- | |
- | o 1:draft 'B'
- |/
- o 0:draft 'A'
-
-
- $ cd ..
diff --git a/tests/test-rebase-interruptions.t b/tests/test-rebase-interruptions.t
index 28fd76e..15251be 100644
--- a/tests/test-rebase-interruptions.t
+++ b/tests/test-rebase-interruptions.t
@@ -3,12 +3,8 @@
> graphlog=
> rebase=
>
- > [phases]
- > publish=False
- >
> [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
- > tglogp = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
> EOF
@@ -60,7 +56,7 @@ Rebasing B onto E:
$ hg rebase -s 1 -d 4
merging A
warning: conflicts during merge.
- merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging A failed!
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
@@ -72,31 +68,27 @@ Force a commit on C during the interruption:
$ hg add Extra
$ hg ci -m 'Extra'
-Force this commit onto secret phase
-
- $ hg phase --force --secret 6
-
- $ hg tglogp
- @ 6:secret 'Extra'
+ $ hg tglog
+ @ 6: 'Extra'
|
- | o 5:draft 'B'
+ | o 5: 'B'
| |
- | o 4:draft 'E'
+ | o 4: 'E'
| |
- | o 3:draft 'D'
+ | o 3: 'D'
| |
- o | 2:draft 'C'
+ o | 2: 'C'
| |
- o | 1:draft 'B'
+ o | 1: 'B'
|/
- o 0:draft 'A'
+ o 0: 'A'
Resume the rebasing:
$ hg rebase --continue
merging A
warning: conflicts during merge.
- merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging A failed!
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
@@ -109,22 +101,22 @@ Solve the conflict and go on:
$ hg rebase --continue
warning: new changesets detected on source branch, not stripping
- $ hg tglogp
- @ 7:draft 'C'
+ $ hg tglog
+ @ 7: 'C'
|
- | o 6:secret 'Extra'
+ | o 6: 'Extra'
| |
- o | 5:draft 'B'
+ o | 5: 'B'
| |
- o | 4:draft 'E'
+ o | 4: 'E'
| |
- o | 3:draft 'D'
+ o | 3: 'D'
| |
- | o 2:draft 'C'
+ | o 2: 'C'
| |
- | o 1:draft 'B'
+ | o 1: 'B'
|/
- o 0:draft 'A'
+ o 0: 'A'
$ cd ..
@@ -150,7 +142,7 @@ Rebasing B onto E:
$ hg rebase -s 1 -d 4
merging A
warning: conflicts during merge.
- merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging A failed!
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
@@ -200,69 +192,3 @@ Abort the rebasing:
$ cd ..
-Changes during an interruption - abort (again):
-
- $ hg clone -q -u . a a3
- $ cd a3
-
- $ hg tglogp
- @ 4:draft 'E'
- |
- o 3:draft 'D'
- |
- | o 2:draft 'C'
- | |
- | o 1:draft 'B'
- |/
- o 0:draft 'A'
-
-Rebasing B onto E:
-
- $ hg rebase -s 1 -d 4
- merging A
- warning: conflicts during merge.
- merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
- abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
- [255]
-
-Change phase on B and B'
-
- $ hg up -q -C 5
- $ hg phase --public 1
- $ hg phase --public 5
- $ hg phase --secret -f 2
-
- $ hg tglogp
- @ 5:public 'B'
- |
- o 4:public 'E'
- |
- o 3:public 'D'
- |
- | o 2:secret 'C'
- | |
- | o 1:public 'B'
- |/
- o 0:public 'A'
-
-Abort the rebasing:
-
- $ hg rebase --abort
- abort: can't abort rebase due to immutable changesets 45396c49d53b
- (see hg help phases for details)
- [255]
-
- $ hg tglogp
- @ 5:public 'B'
- |
- o 4:public 'E'
- |
- o 3:public 'D'
- |
- | o 2:secret 'C'
- | |
- | o 1:public 'B'
- |/
- o 0:public 'A'
-
- $ cd ..
diff --git a/tests/test-rebase-issue-noparam-single-rev.t b/tests/test-rebase-issue-noparam-single-rev.t
index 6e96ee7..38f7e79 100644
--- a/tests/test-rebase-issue-noparam-single-rev.t
+++ b/tests/test-rebase-issue-noparam-single-rev.t
@@ -3,9 +3,6 @@
> graphlog=
> rebase=
>
- > [phases]
- > publish=False
- >
> [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
> EOF
@@ -124,5 +121,3 @@ Rebase with no arguments - single revision in target branch:
|
o 0: 'c1'
-
- $ cd ..
diff --git a/tests/test-rebase-mq-skip.t b/tests/test-rebase-mq-skip.t
index 8d70458..75384ee 100644
--- a/tests/test-rebase-mq-skip.t
+++ b/tests/test-rebase-mq-skip.t
@@ -7,9 +7,6 @@ already has one local mq patch
> rebase=
> mq=
>
- > [phases]
- > publish=False
- >
> [alias]
> tglog = log -G --template "{rev}: '{desc}' tags: {tags}\n"
> EOF
@@ -117,7 +114,9 @@ already has one local mq patch
saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
- @ 8: 'r5' tags: 5.diff qtip tip
+ @ 9: 'r5' tags: 5.diff qtip tip
+ |
+ o 8: 'r4' tags: 4.diff
|
o 7: 'r2' tags: 2.diff qbase
|
@@ -135,5 +134,3 @@ already has one local mq patch
|
o 0: 'r0' tags:
-
- $ cd ..
diff --git a/tests/test-rebase-mq.t b/tests/test-rebase-mq.t
index 7301ebe..3d3579c 100644
--- a/tests/test-rebase-mq.t
+++ b/tests/test-rebase-mq.t
@@ -62,7 +62,7 @@ Rebase - generate a conflict:
$ hg rebase -s 2 -d 1
merging f
warning: conflicts during merge.
- merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging f failed!
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
@@ -73,7 +73,7 @@ Fix the 1st conflict:
$ hg rebase -c
merging f
warning: conflicts during merge.
- merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging f failed!
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
@@ -235,7 +235,6 @@ Rebase the applied mq patches:
-mq1
+mq2
- $ cd ..
Rebase with guards
@@ -245,48 +244,32 @@ Rebase with guards
$ hg ci -Am a
adding a
-Create mq repo with guarded patches foo and bar and empty patch:
+Create mq repo with guarded patches foo and bar:
$ hg qinit
- $ echo guarded > guarded
- $ hg add guarded
- $ hg qnew guarded
- $ hg qnew empty-important -m 'important commit message'
- $ echo bar > bar
- $ hg add bar
- $ hg qnew bar
+ $ hg qnew foo
+ $ hg qguard foo +baz
$ echo foo > foo
$ hg add foo
- $ hg qnew foo
- $ hg qpop -a
+ $ hg qref
+ $ hg qpop
popping foo
- popping bar
- popping empty-important
- popping guarded
patch queue now empty
- $ hg qguard guarded +guarded
+
+ $ hg qnew bar
$ hg qguard bar +baz
- $ hg qguard foo +baz
- $ hg qselect baz
- number of unguarded, unapplied patches has changed from 1 to 3
- $ hg qpush bar
- applying empty-important
- patch empty-important is empty
- applying bar
- now at: bar
+ $ echo bar > bar
+ $ hg add bar
+ $ hg qref
$ hg qguard -l
- guarded: +guarded
- empty-important: unguarded
bar: +baz
foo: +baz
$ hg tglog
- @ 2: 'imported patch bar' tags: bar qtip tip
+ @ 1:* '[mq]: bar' tags: bar qbase qtip tip (glob)
|
- o 1: 'important commit message' tags: empty-important qbase
- |
- o 0: 'a' tags: qparent
+ o 0:* 'a' tags: qparent (glob)
Create new head to rebase bar onto:
@@ -296,40 +279,30 @@ Create new head to rebase bar onto:
$ hg add b
$ hg ci -m b
created new head
- $ hg up -C 2
+ $ hg up -C 1
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo a >> a
$ hg qref
$ hg tglog
- @ 3: '[mq]: bar' tags: bar qtip tip
+ @ 2:* '[mq]: bar' tags: bar qbase qtip tip (glob)
|
- | o 2: 'b' tags:
- | |
- o | 1: 'important commit message' tags: empty-important qbase
+ | o 1:* 'b' tags: (glob)
|/
- o 0: 'a' tags: qparent
+ o 0:* 'a' tags: qparent (glob)
-Rebase bar (make sure series order is preserved and empty-important also is
-removed from the series):
+Rebase bar (make sure series order is preserved):
$ hg qseries
- guarded
- empty-important
bar
foo
- $ [ -f .hg/patches/empty-important ]
- $ hg -q rebase -d 2
+ $ hg -q rebase -d 1
$ hg qseries
- guarded
bar
foo
- $ [ -f .hg/patches/empty-important ]
- [1]
$ hg qguard -l
- guarded: +guarded
bar: +baz
foo: +baz
@@ -340,4 +313,3 @@ removed from the series):
|
o 0:* 'a' tags: (glob)
- $ cd ..
diff --git a/tests/test-rebase-named-branches.t b/tests/test-rebase-named-branches.t
index 0f2f904..1f92f8d 100644
--- a/tests/test-rebase-named-branches.t
+++ b/tests/test-rebase-named-branches.t
@@ -3,16 +3,13 @@
> graphlog=
> rebase=
>
- > [phases]
- > publish=False
- >
> [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
> EOF
$ hg init a
$ cd a
- $ hg unbundle "$TESTDIR/bundles/rebase.hg"
+ $ hg unbundle $TESTDIR/bundles/rebase.hg
adding changesets
adding manifests
adding file changes
@@ -22,82 +19,24 @@
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ..
+
+Rebasing descendant onto ancestor across different named branches
+
$ hg clone -q -u . a a1
$ cd a1
- $ hg update 3
- 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
- $ hg branch dev-one
- marked working directory as branch dev-one
- (branches are permanent and global, did you want a bookmark?)
- $ hg ci -m 'dev-one named branch'
-
- $ hg update 7
- 2 files updated, 0 files merged, 3 files removed, 0 files unresolved
- $ hg branch dev-two
- marked working directory as branch dev-two
- (branches are permanent and global, did you want a bookmark?)
+ $ hg branch dev
+ marked working directory as branch dev
$ echo x > x
$ hg add x
- $ hg ci -m 'dev-two named branch'
-
- $ hg tglog
- @ 9: 'dev-two named branch' dev-two
- |
- | o 8: 'dev-one named branch' dev-one
- | |
- o | 7: 'H'
- | |
- +---o 6: 'G'
- | | |
- o | | 5: 'F'
- | | |
- +---o 4: 'E'
- | |
- | o 3: 'D'
- | |
- | o 2: 'C'
- | |
- | o 1: 'B'
- |/
- o 0: 'A'
-
-
-Branch name containing a dash (issue3181)
-
- $ hg rebase -b dev-two -d dev-one --keepbranches
- saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
+ $ hg ci -m 'extra named branch'
$ hg tglog
- @ 9: 'dev-two named branch' dev-two
- |
- o 8: 'H'
- |
- | o 7: 'G'
- |/|
- o | 6: 'F'
- | |
- o | 5: 'dev-one named branch' dev-one
- | |
- | o 4: 'E'
- | |
- o | 3: 'D'
- | |
- o | 2: 'C'
- | |
- o | 1: 'B'
- |/
- o 0: 'A'
-
- $ hg rebase -s dev-one -d 0 --keepbranches
- saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
-
- $ hg tglog
- @ 8: 'dev-two named branch' dev-two
+ @ 8: 'extra named branch' dev
|
o 7: 'H'
|
@@ -115,82 +54,7 @@ Branch name containing a dash (issue3181)
|/
o 0: 'A'
- $ hg update 3
- 3 files updated, 0 files merged, 3 files removed, 0 files unresolved
- $ hg branch dev-one
- marked working directory as branch dev-one
- (branches are permanent and global, did you want a bookmark?)
- $ hg ci -m 'dev-one named branch'
- $ hg tglog
- @ 9: 'dev-one named branch' dev-one
- |
- | o 8: 'dev-two named branch' dev-two
- | |
- | o 7: 'H'
- | |
- | | o 6: 'G'
- | |/|
- | o | 5: 'F'
- | | |
- | | o 4: 'E'
- | |/
- o | 3: 'D'
- | |
- o | 2: 'C'
- | |
- o | 1: 'B'
- |/
- o 0: 'A'
-
- $ hg rebase -b 'max(branch("dev-two"))' -d dev-one --keepbranches
- saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
-
- $ hg tglog
- @ 9: 'dev-two named branch' dev-two
- |
- o 8: 'H'
- |
- | o 7: 'G'
- |/|
- o | 6: 'F'
- | |
- o | 5: 'dev-one named branch' dev-one
- | |
- | o 4: 'E'
- | |
- o | 3: 'D'
- | |
- o | 2: 'C'
- | |
- o | 1: 'B'
- |/
- o 0: 'A'
-
- $ hg rebase -s 'max(branch("dev-one"))' -d 0 --keepbranches
- saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
-
- $ hg tglog
- @ 8: 'dev-two named branch' dev-two
- |
- o 7: 'H'
- |
- | o 6: 'G'
- |/|
- o | 5: 'F'
- | |
- | o 4: 'E'
- |/
- | o 3: 'D'
- | |
- | o 2: 'C'
- | |
- | o 1: 'B'
- |/
- o 0: 'A'
-
-
-Rebasing descendant onto ancestor across different named branches
$ hg rebase -s 1 -d 8 --keepbranches
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
@@ -202,7 +66,7 @@ Rebasing descendant onto ancestor across different named branches
|
o 6: 'B'
|
- o 5: 'dev-two named branch' dev-two
+ o 5: 'extra named branch' dev
|
o 4: 'H'
|
@@ -228,7 +92,7 @@ Rebasing descendant onto ancestor across different named branches
|
o 6: 'B'
|
- o 5: 'dev-two named branch'
+ o 5: 'extra named branch'
|
o 4: 'H'
|
diff --git a/tests/test-rebase-newancestor.t b/tests/test-rebase-newancestor.t
index 949c5d2..17a6ab7 100644
--- a/tests/test-rebase-newancestor.t
+++ b/tests/test-rebase-newancestor.t
@@ -52,5 +52,3 @@
|
o 0: 'A'
-
- $ cd ..
diff --git a/tests/test-rebase-parameters.t b/tests/test-rebase-parameters.t
index 6597f75..98df15e 100644
--- a/tests/test-rebase-parameters.t
+++ b/tests/test-rebase-parameters.t
@@ -3,9 +3,6 @@
> graphlog=
> rebase=
>
- > [phases]
- > publish=False
- >
> [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
> EOF
@@ -13,7 +10,7 @@
$ hg init a
$ cd a
- $ hg unbundle "$TESTDIR/bundles/rebase.hg"
+ $ hg unbundle $TESTDIR/bundles/rebase.hg
adding changesets
adding manifests
adding file changes
@@ -54,8 +51,8 @@ These fail:
$ cd a1
$ hg rebase -s 8 -d 7
- nothing to rebase
- [1]
+ abort: source is descendant of destination
+ [255]
$ hg rebase --continue --abort
abort: cannot use both abort and continue
@@ -70,13 +67,6 @@ These fail:
[255]
$ hg rebase --base 5 --source 4
- abort: cannot specify both a source and a base
- [255]
-
- $ hg rebase --rev 5 --source 4
- abort: cannot specify both a revision and a source
- [255]
- $ hg rebase --base 5 --rev 4
abort: cannot specify both a revision and a base
[255]
@@ -86,7 +76,7 @@ These fail:
$ hg up -q 7
- $ hg rebase --traceback
+ $ hg rebase
nothing to rebase
[1]
@@ -158,12 +148,12 @@ Rebase with base == '.' => same as no arguments (from 3 onto 8):
$ cd ..
-Rebase with dest == branch(.) => same as no arguments (from 3 onto 8):
+Rebase with dest == `hg branch` => same as no arguments (from 3 onto 8):
$ hg clone -q -u 3 a a3
$ cd a3
- $ hg rebase --dest 'branch(.)'
+ $ hg rebase --dest `hg branch`
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -193,25 +183,25 @@ Specify only source (from 2 onto 8):
$ hg clone -q -u . a a4
$ cd a4
- $ hg rebase --source 'desc("C")'
+ $ hg rebase --source 2
saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@ 8: 'D'
|
- o 7: 'C'
- |
- o 6: 'I'
- |
- o 5: 'H'
- |
- | o 4: 'G'
- |/|
- o | 3: 'F'
+ o 7: 'C'
+ |\
+ | o 6: 'I'
| |
- | o 2: 'E'
- |/
- | o 1: 'B'
+ | o 5: 'H'
+ | |
+ | | o 4: 'G'
+ | |/|
+ | o | 3: 'F'
+ | | |
+ | | o 2: 'E'
+ | |/
+ o | 1: 'B'
|/
o 0: 'A'
@@ -253,7 +243,7 @@ Specify only base (from 1 onto 8):
$ hg clone -q -u . a a6
$ cd a6
- $ hg rebase --base 'desc("D")'
+ $ hg rebase --base 3
saved backup bundle to $TESTTMP/a6/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -283,7 +273,7 @@ Specify source and dest (from 2 onto 7):
$ hg clone -q -u . a a7
$ cd a7
- $ hg rebase --source 2 --dest 7
+ $ hg rebase --detach --source 2 --dest 7
saved backup bundle to $TESTTMP/a7/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -337,36 +327,6 @@ Specify base and dest (from 1 onto 7):
$ cd ..
-
-Specify only revs (from 2 onto 8)
-
- $ hg clone -q -u . a a9
- $ cd a9
-
- $ hg rebase --rev 'desc("C")::'
- saved backup bundle to $TESTTMP/a9/.hg/strip-backup/*-backup.hg (glob)
-
- $ hg tglog
- @ 8: 'D'
- |
- o 7: 'C'
- |
- o 6: 'I'
- |
- o 5: 'H'
- |
- | o 4: 'G'
- |/|
- o | 3: 'F'
- | |
- | o 2: 'E'
- |/
- | o 1: 'B'
- |/
- o 0: 'A'
-
- $ cd ..
-
Test --tool parameter:
$ hg init b
@@ -427,4 +387,3 @@ Test --tool parameter:
tool option will be ignored
saved backup bundle to $TESTTMP/b3/.hg/strip-backup/*-backup.hg (glob)
- $ cd ..
diff --git a/tests/test-rebase-pull.t b/tests/test-rebase-pull.t
index 07388d5..ff8ab75 100644
--- a/tests/test-rebase-pull.t
+++ b/tests/test-rebase-pull.t
@@ -48,7 +48,7 @@
Now b has one revision to be pulled from a:
$ hg pull --rebase
- pulling from $TESTTMP/a (glob)
+ pulling from $TESTTMP/a
searching for changes
adding changesets
adding manifests
@@ -68,7 +68,7 @@ Now b has one revision to be pulled from a:
Re-run:
$ hg pull --rebase
- pulling from $TESTTMP/a (glob)
+ pulling from $TESTTMP/a
searching for changes
no changes found
@@ -77,9 +77,8 @@ Invoke pull --rebase and nothing to rebase:
$ cd ../c
- $ hg book norebase
$ hg pull --rebase
- pulling from $TESTTMP/a (glob)
+ pulling from $TESTTMP/a
searching for changes
adding changesets
adding manifests
@@ -87,7 +86,6 @@ Invoke pull --rebase and nothing to rebase:
added 1 changesets with 1 changes to 1 files
nothing to rebase
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- updating bookmark norebase
$ hg tglog -l 1
@ 2: 'R1'
@@ -96,7 +94,7 @@ Invoke pull --rebase and nothing to rebase:
pull --rebase --update should ignore --update:
$ hg pull --rebase --update
- pulling from $TESTTMP/a (glob)
+ pulling from $TESTTMP/a
searching for changes
no changes found
@@ -105,7 +103,7 @@ pull --rebase doesn't update if nothing has been pulled:
$ hg up -q 1
$ hg pull --rebase
- pulling from $TESTTMP/a (glob)
+ pulling from $TESTTMP/a
searching for changes
no changes found
@@ -113,4 +111,3 @@ pull --rebase doesn't update if nothing has been pulled:
o 2: 'R1'
|
- $ cd ..
diff --git a/tests/test-rebase-rename.t b/tests/test-rebase-rename.t
index c46f7c7..81b05d0 100644
--- a/tests/test-rebase-rename.t
+++ b/tests/test-rebase-rename.t
@@ -168,4 +168,3 @@ Test rebase across repeating renames:
unrelated.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
- $ cd ..
diff --git a/tests/test-rebase-scenario-global.t b/tests/test-rebase-scenario-global.t
index 7cb6e8d..3a89d2e 100644
--- a/tests/test-rebase-scenario-global.t
+++ b/tests/test-rebase-scenario-global.t
@@ -3,9 +3,6 @@
> graphlog=
> rebase=
>
- > [phases]
- > publish=False
- >
> [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
> EOF
@@ -13,7 +10,7 @@
$ hg init a
$ cd a
- $ hg unbundle "$TESTDIR/bundles/rebase.hg"
+ $ hg unbundle $TESTDIR/bundles/rebase.hg
adding changesets
adding manifests
adding file changes
@@ -52,19 +49,19 @@ D onto H - simple rebase:
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
- @ 7: 'D'
- |
- o 6: 'H'
- |
- | o 5: 'G'
- |/|
- o | 4: 'F'
+ @ 7: 'D'
+ |\
+ | o 6: 'H'
| |
- | o 3: 'E'
- |/
- | o 2: 'C'
+ | | o 5: 'G'
+ | |/|
+ | o | 4: 'F'
+ | | |
+ | | o 3: 'E'
+ | |/
+ o | 2: 'C'
| |
- | o 1: 'B'
+ o | 1: 'B'
|/
o 0: 'A'
@@ -80,19 +77,19 @@ D onto F - intermediate point:
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
- @ 7: 'D'
- |
- | o 6: 'H'
- |/
- | o 5: 'G'
- |/|
- o | 4: 'F'
- | |
- | o 3: 'E'
- |/
- | o 2: 'C'
+ @ 7: 'D'
+ |\
+ | | o 6: 'H'
+ | |/
+ | | o 5: 'G'
+ | |/|
+ | o | 4: 'F'
+ | | |
+ | | o 3: 'E'
+ | |/
+ o | 2: 'C'
| |
- | o 1: 'B'
+ o | 1: 'B'
|/
o 0: 'A'
@@ -215,8 +212,8 @@ G onto F - rebase onto an ancestor:
$ cd a7
$ hg rebase -s 6 -d 5
- nothing to rebase
- [1]
+ abort: source is descendant of destination
+ [255]
F onto G - rebase onto a descendant:
@@ -251,297 +248,3 @@ F onto G - rebase onto a descendant:
nothing to rebase
[1]
-C onto A - rebase onto an ancestor:
-
- $ hg rebase -d 0 -s 2
- saved backup bundle to $TESTTMP/a7/.hg/strip-backup/5fddd98957c8-backup.hg (glob)
- $ hg tglog
- @ 7: 'D'
- |
- o 6: 'C'
- |
- | o 5: 'H'
- | |
- | | o 4: 'G'
- | |/|
- | o | 3: 'F'
- |/ /
- | o 2: 'E'
- |/
- | o 1: 'B'
- |/
- o 0: 'A'
-
-
-Check rebasing public changeset
-
- $ hg pull --config phases.publish=True -q -r 6 . # update phase of 6
- $ hg rebase -d 5 -b 6
- abort: can't rebase immutable changeset e1c4361dd923
- (see hg help phases for details)
- [255]
-
- $ hg rebase -d 5 -b 6 --keep
-
-Check rebasing mutable changeset
-Source phase greater or equal to destination phase: new changeset get the phase of source:
- $ hg rebase -s9 -d0
- saved backup bundle to $TESTTMP/a7/.hg/strip-backup/2b23e52411f4-backup.hg (glob)
- $ hg log --template "{phase}\n" -r 9
- draft
- $ hg rebase -s9 -d1
- saved backup bundle to $TESTTMP/a7/.hg/strip-backup/2cb10d0cfc6c-backup.hg (glob)
- $ hg log --template "{phase}\n" -r 9
- draft
- $ hg phase --force --secret 9
- $ hg rebase -s9 -d0
- saved backup bundle to $TESTTMP/a7/.hg/strip-backup/c5b12b67163a-backup.hg (glob)
- $ hg log --template "{phase}\n" -r 9
- secret
- $ hg rebase -s9 -d1
- saved backup bundle to $TESTTMP/a7/.hg/strip-backup/2a0524f868ac-backup.hg (glob)
- $ hg log --template "{phase}\n" -r 9
- secret
-Source phase lower than destination phase: new changeset get the phase of destination:
- $ hg rebase -s8 -d9
- saved backup bundle to $TESTTMP/a7/.hg/strip-backup/6d4f22462821-backup.hg (glob)
- $ hg log --template "{phase}\n" -r 'rev(9)'
- secret
-
- $ cd ..
-
-Test for revset
-
-We need a bit different graph
-All destination are B
-
- $ hg init ah
- $ cd ah
- $ hg unbundle "$TESTDIR/bundles/rebase-revset.hg"
- adding changesets
- adding manifests
- adding file changes
- added 9 changesets with 9 changes to 9 files (+2 heads)
- (run 'hg heads' to see heads, 'hg merge' to merge)
- $ hg tglog
- o 8: 'I'
- |
- o 7: 'H'
- |
- o 6: 'G'
- |
- | o 5: 'F'
- | |
- | o 4: 'E'
- |/
- o 3: 'D'
- |
- o 2: 'C'
- |
- | o 1: 'B'
- |/
- o 0: 'A'
-
- $ cd ..
-
-
-Simple case with keep:
-
-Source on have two descendant heads but ask for one
-
- $ hg clone -q -u . ah ah1
- $ cd ah1
- $ hg rebase -r '2::8' -d 1
- abort: can't remove original changesets with unrebased descendants
- (use --keep to keep original changesets)
- [255]
- $ hg rebase -r '2::8' -d 1 --keep
- $ hg tglog
- @ 13: 'I'
- |
- o 12: 'H'
- |
- o 11: 'G'
- |
- o 10: 'D'
- |
- o 9: 'C'
- |
- | o 8: 'I'
- | |
- | o 7: 'H'
- | |
- | o 6: 'G'
- | |
- | | o 5: 'F'
- | | |
- | | o 4: 'E'
- | |/
- | o 3: 'D'
- | |
- | o 2: 'C'
- | |
- o | 1: 'B'
- |/
- o 0: 'A'
-
-
- $ cd ..
-
-Base on have one descendant heads we ask for but common ancestor have two
-
- $ hg clone -q -u . ah ah2
- $ cd ah2
- $ hg rebase -r '3::8' -d 1
- abort: can't remove original changesets with unrebased descendants
- (use --keep to keep original changesets)
- [255]
- $ hg rebase -r '3::8' -d 1 --keep
- $ hg tglog
- @ 12: 'I'
- |
- o 11: 'H'
- |
- o 10: 'G'
- |
- o 9: 'D'
- |
- | o 8: 'I'
- | |
- | o 7: 'H'
- | |
- | o 6: 'G'
- | |
- | | o 5: 'F'
- | | |
- | | o 4: 'E'
- | |/
- | o 3: 'D'
- | |
- | o 2: 'C'
- | |
- o | 1: 'B'
- |/
- o 0: 'A'
-
-
- $ cd ..
-
-rebase subset
-
- $ hg clone -q -u . ah ah3
- $ cd ah3
- $ hg rebase -r '3::7' -d 1
- abort: can't remove original changesets with unrebased descendants
- (use --keep to keep original changesets)
- [255]
- $ hg rebase -r '3::7' -d 1 --keep
- $ hg tglog
- @ 11: 'H'
- |
- o 10: 'G'
- |
- o 9: 'D'
- |
- | o 8: 'I'
- | |
- | o 7: 'H'
- | |
- | o 6: 'G'
- | |
- | | o 5: 'F'
- | | |
- | | o 4: 'E'
- | |/
- | o 3: 'D'
- | |
- | o 2: 'C'
- | |
- o | 1: 'B'
- |/
- o 0: 'A'
-
-
- $ cd ..
-
-rebase subset with multiple head
-
- $ hg clone -q -u . ah ah4
- $ cd ah4
- $ hg rebase -r '3::(7+5)' -d 1
- abort: can't remove original changesets with unrebased descendants
- (use --keep to keep original changesets)
- [255]
- $ hg rebase -r '3::(7+5)' -d 1 --keep
- $ hg tglog
- @ 13: 'H'
- |
- o 12: 'G'
- |
- | o 11: 'F'
- | |
- | o 10: 'E'
- |/
- o 9: 'D'
- |
- | o 8: 'I'
- | |
- | o 7: 'H'
- | |
- | o 6: 'G'
- | |
- | | o 5: 'F'
- | | |
- | | o 4: 'E'
- | |/
- | o 3: 'D'
- | |
- | o 2: 'C'
- | |
- o | 1: 'B'
- |/
- o 0: 'A'
-
-
- $ cd ..
-
-More advanced tests
-
-rebase on ancestor with revset
-
- $ hg clone -q -u . ah ah5
- $ cd ah5
- $ hg rebase -r '6::' -d 2
- saved backup bundle to $TESTTMP/ah5/.hg/strip-backup/3d8a618087a7-backup.hg (glob)
- $ hg tglog
- @ 8: 'I'
- |
- o 7: 'H'
- |
- o 6: 'G'
- |
- | o 5: 'F'
- | |
- | o 4: 'E'
- | |
- | o 3: 'D'
- |/
- o 2: 'C'
- |
- | o 1: 'B'
- |/
- o 0: 'A'
-
- $ cd ..
-
-
-rebase with multiple root.
-We rebase E and G on B
-We would expect heads are I, F if it was supported
-
- $ hg clone -q -u . ah ah6
- $ cd ah6
- $ hg rebase -r '(4+6)::' -d 1
- abort: can't rebase multiple roots
- [255]
- $ cd ..
diff --git a/tests/test-rebuildstate.t b/tests/test-rebuildstate.t
index 954d343..35b2729 100644
--- a/tests/test-rebuildstate.t
+++ b/tests/test-rebuildstate.t
@@ -17,8 +17,8 @@ basic test for hg debugrebuildstate
state dump after
$ hg debugstate --nodates | sort
- n 644 -1 bar
- n 644 -1 foo
+ n 666 -1 bar
+ n 666 -1 foo
status
@@ -27,4 +27,3 @@ status
? baz
C foo
- $ cd ..
diff --git a/tests/test-record.t b/tests/test-record.t
index 833b290..8a697c5 100644
--- a/tests/test-record.t
+++ b/tests/test-record.t
@@ -18,7 +18,7 @@ Select no files
> EOF
diff --git a/empty-rw b/empty-rw
new file mode 100644
- examine changes to 'empty-rw'? [Ynesfdaq?]
+ examine changes to 'empty-rw'? [Ynsfdaq?]
no changes to record
$ hg tip -p
@@ -37,7 +37,7 @@ Select files but no hunks
> EOF
diff --git a/empty-rw b/empty-rw
new file mode 100644
- examine changes to 'empty-rw'? [Ynesfdaq?]
+ examine changes to 'empty-rw'? [Ynsfdaq?]
abort: empty commit message
[255]
@@ -57,7 +57,7 @@ Record empty file
> EOF
diff --git a/empty-rw b/empty-rw
new file mode 100644
- examine changes to 'empty-rw'? [Ynesfdaq?]
+ examine changes to 'empty-rw'? [Ynsfdaq?]
$ hg tip -p
changeset: 0:c0708cf4e46e
@@ -86,7 +86,7 @@ Rename empty file
diff --git a/empty-rw b/empty-rename
rename from empty-rw
rename to empty-rename
- examine changes to 'empty-rw' and 'empty-rename'? [Ynesfdaq?]
+ examine changes to 'empty-rw' and 'empty-rename'? [Ynsfdaq?]
$ hg tip -p
changeset: 1:d695e8dcb197
@@ -106,7 +106,7 @@ Copy empty file
diff --git a/empty-rename b/empty-copy
copy from empty-rename
copy to empty-copy
- examine changes to 'empty-rename' and 'empty-copy'? [Ynesfdaq?]
+ examine changes to 'empty-rename' and 'empty-copy'? [Ynsfdaq?]
$ hg tip -p
changeset: 2:1d4b90bea524
@@ -125,7 +125,7 @@ Delete empty file
> EOF
diff --git a/empty-copy b/empty-copy
deleted file mode 100644
- examine changes to 'empty-copy'? [Ynesfdaq?]
+ examine changes to 'empty-copy'? [Ynsfdaq?]
$ hg tip -p
changeset: 3:b39a238f01a1
@@ -147,7 +147,7 @@ Add binary file
diff --git a/tip.bundle b/tip.bundle
new file mode 100644
this is a binary file
- examine changes to 'tip.bundle'? [Ynesfdaq?]
+ examine changes to 'tip.bundle'? [Ynsfdaq?]
$ hg tip -p
changeset: 4:ad816da3711e
@@ -169,7 +169,7 @@ Change binary file
> EOF
diff --git a/tip.bundle b/tip.bundle
this modifies a binary file (all or nothing)
- examine changes to 'tip.bundle'? [Ynesfdaq?]
+ examine changes to 'tip.bundle'? [Ynsfdaq?]
$ hg tip -p
changeset: 5:dccd6f3eb485
@@ -194,7 +194,7 @@ Rename and change binary file
rename from tip.bundle
rename to top.bundle
this modifies a binary file (all or nothing)
- examine changes to 'tip.bundle' and 'top.bundle'? [Ynesfdaq?]
+ examine changes to 'tip.bundle' and 'top.bundle'? [Ynsfdaq?]
$ hg tip -p
changeset: 6:7fa44105f5b3
@@ -222,7 +222,7 @@ Add plain file
> EOF
diff --git a/plain b/plain
new file mode 100644
- examine changes to 'plain'? [Ynesfdaq?]
+ examine changes to 'plain'? [Ynsfdaq?]
$ hg tip -p
changeset: 7:11fb457c1be4
@@ -256,13 +256,13 @@ Modify end of plain file
> EOF
diff --git a/plain b/plain
1 hunks, 1 lines changed
- examine changes to 'plain'? [Ynesfdaq?]
+ examine changes to 'plain'? [Ynsfdaq?]
@@ -8,3 +8,4 @@
8
9
10
+11
- record this change to 'plain'? [Ynesfdaq?]
+ record this change to 'plain'? [Ynsfdaq?]
Modify end of plain file, no EOL
@@ -273,14 +273,14 @@ Modify end of plain file, no EOL
> EOF
diff --git a/plain b/plain
1 hunks, 1 lines changed
- examine changes to 'plain'? [Ynesfdaq?]
+ examine changes to 'plain'? [Ynsfdaq?]
@@ -9,3 +9,4 @@
9
10
11
+7264f99c5f5ff3261504828afa4fb4d406c3af54
\ No newline at end of file
- record this change to 'plain'? [Ynesfdaq?]
+ record this change to 'plain'? [Ynsfdaq?]
Modify end of plain file, add EOL
@@ -294,7 +294,7 @@ Modify end of plain file, add EOL
> EOF
diff --git a/plain b/plain
1 hunks, 1 lines changed
- examine changes to 'plain'? [Ynesfdaq?]
+ examine changes to 'plain'? [Ynsfdaq?]
@@ -9,4 +9,4 @@
9
10
@@ -302,10 +302,10 @@ Modify end of plain file, add EOL
-7264f99c5f5ff3261504828afa4fb4d406c3af54
\ No newline at end of file
+7264f99c5f5ff3261504828afa4fb4d406c3af54
- record change 1/2 to 'plain'? [Ynesfdaq?]
+ record change 1/2 to 'plain'? [Ynsfdaq?]
diff --git a/plain2 b/plain2
new file mode 100644
- examine changes to 'plain2'? [Ynesfdaq?]
+ examine changes to 'plain2'? [Ynsfdaq?]
Modify beginning, trim end, record both, add another file to test
changes numbering
@@ -325,28 +325,28 @@ changes numbering
> EOF
diff --git a/plain b/plain
2 hunks, 3 lines changed
- examine changes to 'plain'? [Ynesfdaq?]
+ examine changes to 'plain'? [Ynsfdaq?]
@@ -1,4 +1,4 @@
-1
+2
2
3
4
- record change 1/3 to 'plain'? [Ynesfdaq?]
+ record change 1/3 to 'plain'? [Ynsfdaq?]
@@ -8,5 +8,3 @@
8
9
10
-11
-7264f99c5f5ff3261504828afa4fb4d406c3af54
- record change 2/3 to 'plain'? [Ynesfdaq?]
+ record change 2/3 to 'plain'? [Ynsfdaq?]
diff --git a/plain2 b/plain2
1 hunks, 1 lines changed
- examine changes to 'plain2'? [Ynesfdaq?]
+ examine changes to 'plain2'? [Ynsfdaq?]
@@ -1,1 +1,2 @@
1
+2
- record change 3/3 to 'plain2'? [Ynesfdaq?]
+ record change 3/3 to 'plain2'? [Ynsfdaq?]
$ hg tip -p
changeset: 11:21df83db12b8
@@ -394,7 +394,7 @@ Record end
> EOF
diff --git a/plain b/plain
2 hunks, 4 lines changed
- examine changes to 'plain'? [Ynesfdaq?]
+ examine changes to 'plain'? [Ynsfdaq?]
@@ -1,9 +1,6 @@
-2
-2
@@ -405,7 +405,7 @@ Record end
7
8
9
- record change 1/2 to 'plain'? [Ynesfdaq?]
+ record change 1/2 to 'plain'? [Ynsfdaq?]
@@ -4,7 +1,7 @@
4
5
@@ -415,7 +415,7 @@ Record end
9
-10
+10.new
- record change 2/2 to 'plain'? [Ynesfdaq?]
+ record change 2/2 to 'plain'? [Ynsfdaq?]
$ hg tip -p
changeset: 12:99337501826f
@@ -443,7 +443,7 @@ Record beginning
> EOF
diff --git a/plain b/plain
1 hunks, 3 lines changed
- examine changes to 'plain'? [Ynesfdaq?]
+ examine changes to 'plain'? [Ynsfdaq?]
@@ -1,6 +1,3 @@
-2
-2
@@ -451,7 +451,7 @@ Record beginning
4
5
6
- record this change to 'plain'? [Ynesfdaq?]
+ record this change to 'plain'? [Ynsfdaq?]
$ hg tip -p
changeset: 13:bbd45465d540
@@ -488,7 +488,7 @@ Record end
> EOF
diff --git a/plain b/plain
2 hunks, 4 lines changed
- examine changes to 'plain'? [Ynesfdaq?]
+ examine changes to 'plain'? [Ynsfdaq?]
@@ -1,6 +1,9 @@
+1
+2
@@ -499,7 +499,7 @@ Record end
7
8
9
- record change 1/2 to 'plain'? [Ynesfdaq?]
+ record change 1/2 to 'plain'? [Ynsfdaq?]
@@ -1,7 +4,6 @@
4
5
@@ -508,7 +508,7 @@ Record end
8
9
-10.new
- record change 2/2 to 'plain'? [Ynesfdaq?]
+ record change 2/2 to 'plain'? [Ynsfdaq?]
Add to beginning, middle, end
@@ -527,14 +527,14 @@ Record beginning, middle
> EOF
diff --git a/plain b/plain
3 hunks, 7 lines changed
- examine changes to 'plain'? [Ynesfdaq?]
+ examine changes to 'plain'? [Ynsfdaq?]
@@ -1,2 +1,5 @@
+1
+2
+3
4
5
- record change 1/3 to 'plain'? [Ynesfdaq?]
+ record change 1/3 to 'plain'? [Ynsfdaq?]
@@ -1,6 +4,8 @@
4
5
@@ -544,7 +544,7 @@ Record beginning, middle
7
8
9
- record change 2/3 to 'plain'? [Ynesfdaq?]
+ record change 2/3 to 'plain'? [Ynsfdaq?]
@@ -3,4 +8,6 @@
6
7
@@ -552,7 +552,7 @@ Record beginning, middle
9
+10
+11
- record change 3/3 to 'plain'? [Ynesfdaq?]
+ record change 3/3 to 'plain'? [Ynsfdaq?]
$ hg tip -p
changeset: 15:f34a7937ec33
@@ -585,14 +585,14 @@ Record end
> EOF
diff --git a/plain b/plain
1 hunks, 2 lines changed
- examine changes to 'plain'? [Ynesfdaq?]
+ examine changes to 'plain'? [Ynsfdaq?]
@@ -9,3 +9,5 @@
7
8
9
+10
+11
- record this change to 'plain'? [Ynesfdaq?]
+ record this change to 'plain'? [Ynsfdaq?]
$ hg tip -p
changeset: 16:f9900b71a04c
@@ -625,11 +625,11 @@ Record end
> EOF
diff --git a/subdir/a b/subdir/a
1 hunks, 1 lines changed
- examine changes to 'subdir/a'? [Ynesfdaq?]
+ examine changes to 'subdir/a'? [Ynsfdaq?]
@@ -1,1 +1,2 @@
a
+a
- record this change to 'subdir/a'? [Ynesfdaq?]
+ record this change to 'subdir/a'? [Ynsfdaq?]
$ hg tip -p
changeset: 18:61be427a9deb
@@ -663,17 +663,16 @@ Help, quit
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
+ examine changes to 'subdir/f1'? [Ynsfdaq?]
y - record this change
n - skip this change
- e - edit this change manually
s - skip remaining changes to this file
f - record remaining changes to this file
d - done, skip remaining changes and files
a - record all changes to all remaining files
q - quit, recording no changes
? - display help
- examine changes to 'subdir/f1'? [Ynesfdaq?]
+ examine changes to 'subdir/f1'? [Ynsfdaq?]
abort: user quit
[255]
@@ -684,10 +683,10 @@ Skip
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
+ examine changes to 'subdir/f1'? [Ynsfdaq?]
diff --git a/subdir/f2 b/subdir/f2
1 hunks, 1 lines changed
- examine changes to 'subdir/f2'? [Ynesfdaq?] abort: response expected
+ examine changes to 'subdir/f2'? [Ynsfdaq?] abort: response expected
[255]
No
@@ -697,10 +696,10 @@ No
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
+ examine changes to 'subdir/f1'? [Ynsfdaq?]
diff --git a/subdir/f2 b/subdir/f2
1 hunks, 1 lines changed
- examine changes to 'subdir/f2'? [Ynesfdaq?] abort: response expected
+ examine changes to 'subdir/f2'? [Ynsfdaq?] abort: response expected
[255]
f, quit
@@ -711,10 +710,10 @@ f, quit
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
+ examine changes to 'subdir/f1'? [Ynsfdaq?]
diff --git a/subdir/f2 b/subdir/f2
1 hunks, 1 lines changed
- examine changes to 'subdir/f2'? [Ynesfdaq?]
+ examine changes to 'subdir/f2'? [Ynsfdaq?]
abort: user quit
[255]
@@ -726,10 +725,10 @@ s, all
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
+ examine changes to 'subdir/f1'? [Ynsfdaq?]
diff --git a/subdir/f2 b/subdir/f2
1 hunks, 1 lines changed
- examine changes to 'subdir/f2'? [Ynesfdaq?]
+ examine changes to 'subdir/f2'? [Ynsfdaq?]
$ hg tip -p
changeset: 20:b3df3dda369a
@@ -753,7 +752,7 @@ f
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
+ examine changes to 'subdir/f1'? [Ynsfdaq?]
$ hg tip -p
changeset: 21:38ec577f126b
@@ -770,8 +769,6 @@ f
+a
-#if execbit
-
Preserve chmod +x
$ chmod +x f1
@@ -785,12 +782,12 @@ Preserve chmod +x
old mode 100644
new mode 100755
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
+ examine changes to 'subdir/f1'? [Ynsfdaq?]
@@ -1,2 +1,3 @@
a
a
+a
- record this change to 'subdir/f1'? [Ynesfdaq?]
+ record this change to 'subdir/f1'? [Ynsfdaq?]
$ hg tip --config diff.git=True -p
changeset: 22:3261adceb075
@@ -820,13 +817,13 @@ Preserve execute permission on original
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
+ examine changes to 'subdir/f1'? [Ynsfdaq?]
@@ -1,3 +1,4 @@
a
a
a
+b
- record this change to 'subdir/f1'? [Ynesfdaq?]
+ record this change to 'subdir/f1'? [Ynsfdaq?]
$ hg tip --config diff.git=True -p
changeset: 23:b429867550db
@@ -858,13 +855,13 @@ Preserve chmod -x
old mode 100755
new mode 100644
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
+ examine changes to 'subdir/f1'? [Ynsfdaq?]
@@ -2,3 +2,4 @@
a
a
b
+c
- record this change to 'subdir/f1'? [Ynesfdaq?]
+ record this change to 'subdir/f1'? [Ynsfdaq?]
$ hg tip --config diff.git=True -p
changeset: 24:0b082130c20a
@@ -885,120 +882,8 @@ Preserve chmod -x
+c
-#else
-
-Slightly bogus tests to get almost same repo structure as when x bit is used
-- but with different hashes.
-
-Mock "Preserve chmod +x"
-
- $ echo a >> f1
- $ hg record -d '20 0' -mz <<EOF
- > y
- > y
- > y
- > EOF
- diff --git a/subdir/f1 b/subdir/f1
- 1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
- @@ -1,2 +1,3 @@
- a
- a
- +a
- record this change to 'subdir/f1'? [Ynesfdaq?]
-
- $ hg tip --config diff.git=True -p
- changeset: 22:0d463bd428f5
- tag: tip
- user: test
- date: Thu Jan 01 00:00:20 1970 +0000
- summary: z
-
- diff --git a/subdir/f1 b/subdir/f1
- --- a/subdir/f1
- +++ b/subdir/f1
- @@ -1,2 +1,3 @@
- a
- a
- +a
-
-
-Mock "Preserve execute permission on original"
-
- $ echo b >> f1
- $ hg record -d '21 0' -maa <<EOF
- > y
- > y
- > y
- > EOF
- diff --git a/subdir/f1 b/subdir/f1
- 1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
- @@ -1,3 +1,4 @@
- a
- a
- a
- +b
- record this change to 'subdir/f1'? [Ynesfdaq?]
-
- $ hg tip --config diff.git=True -p
- changeset: 23:0eab41a3e524
- tag: tip
- user: test
- date: Thu Jan 01 00:00:21 1970 +0000
- summary: aa
-
- diff --git a/subdir/f1 b/subdir/f1
- --- a/subdir/f1
- +++ b/subdir/f1
- @@ -1,3 +1,4 @@
- a
- a
- a
- +b
-
-
-Mock "Preserve chmod -x"
-
- $ chmod -x f1
- $ echo c >> f1
- $ hg record -d '22 0' -mab <<EOF
- > y
- > y
- > y
- > EOF
- diff --git a/subdir/f1 b/subdir/f1
- 1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
- @@ -2,3 +2,4 @@
- a
- a
- b
- +c
- record this change to 'subdir/f1'? [Ynesfdaq?]
-
- $ hg tip --config diff.git=True -p
- changeset: 24:f4f718f27b7c
- tag: tip
- user: test
- date: Thu Jan 01 00:00:22 1970 +0000
- summary: ab
-
- diff --git a/subdir/f1 b/subdir/f1
- --- a/subdir/f1
- +++ b/subdir/f1
- @@ -2,3 +2,4 @@
- a
- a
- b
- +c
-
-
-#endif
-
$ cd ..
-
Abort early when a merge is in progress
$ hg up 4
@@ -1009,7 +894,6 @@ Abort early when a merge is in progress
$ hg branch thatbranch
marked working directory as branch thatbranch
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -m'new head'
@@ -1027,149 +911,6 @@ Abort early when a merge is in progress
$ hg up -C
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
-Editing patch
-
- $ cat > editor.sh << '__EOF__'
- > sed -e 7d -e '5s/^-/ /' "$1" > tmp
- > mv tmp "$1"
- > __EOF__
- $ cat > editedfile << '__EOF__'
- > This is the first line
- > This is the second line
- > This is the third line
- > __EOF__
- $ hg add editedfile
- $ hg commit -medit-patch-1
- $ cat > editedfile << '__EOF__'
- > This line has changed
- > This change will be committed
- > This is the third line
- > __EOF__
- $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg record -d '23 0' -medit-patch-2 <<EOF
- > y
- > e
- > EOF
- diff --git a/editedfile b/editedfile
- 1 hunks, 2 lines changed
- examine changes to 'editedfile'? [Ynesfdaq?]
- @@ -1,3 +1,3 @@
- -This is the first line
- -This is the second line
- +This line has changed
- +This change will be committed
- This is the third line
- record this change to 'editedfile'? [Ynesfdaq?]
- $ cat editedfile
- This line has changed
- This change will be committed
- This is the third line
- $ hg cat -r tip editedfile
- This is the first line
- This change will be committed
- This is the third line
- $ hg revert editedfile
-
-Trying to edit patch for whole file
-
- $ echo "This is the fourth line" >> editedfile
- $ hg record <<EOF
- > e
- > q
- > EOF
- diff --git a/editedfile b/editedfile
- 1 hunks, 1 lines changed
- examine changes to 'editedfile'? [Ynesfdaq?]
- cannot edit patch for whole file
- examine changes to 'editedfile'? [Ynesfdaq?]
- abort: user quit
- [255]
- $ hg revert editedfile
-
-Removing changes from patch
-
- $ sed -e '3s/third/second/' -e '2s/will/will not/' -e 1d editedfile > tmp
- $ mv tmp editedfile
- $ echo "This line has been added" >> editedfile
- $ cat > editor.sh << '__EOF__'
- > sed -e 's/^[-+]/ /' "$1" > tmp
- > mv tmp "$1"
- > __EOF__
- $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg record <<EOF
- > y
- > e
- > EOF
- diff --git a/editedfile b/editedfile
- 1 hunks, 3 lines changed
- examine changes to 'editedfile'? [Ynesfdaq?]
- @@ -1,3 +1,3 @@
- -This is the first line
- -This change will be committed
- -This is the third line
- +This change will not be committed
- +This is the second line
- +This line has been added
- record this change to 'editedfile'? [Ynesfdaq?]
- no changes to record
- $ cat editedfile
- This change will not be committed
- This is the second line
- This line has been added
- $ hg cat -r tip editedfile
- This is the first line
- This change will be committed
- This is the third line
- $ hg revert editedfile
-
-Invalid patch
-
- $ sed -e '3s/third/second/' -e '2s/will/will not/' -e 1d editedfile > tmp
- $ mv tmp editedfile
- $ echo "This line has been added" >> editedfile
- $ cat > editor.sh << '__EOF__'
- > sed s/This/That/ "$1" > tmp
- > mv tmp "$1"
- > __EOF__
- $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg record <<EOF
- > y
- > e
- > EOF
- diff --git a/editedfile b/editedfile
- 1 hunks, 3 lines changed
- examine changes to 'editedfile'? [Ynesfdaq?]
- @@ -1,3 +1,3 @@
- -This is the first line
- -This change will be committed
- -This is the third line
- +This change will not be committed
- +This is the second line
- +This line has been added
- record this change to 'editedfile'? [Ynesfdaq?]
- patching file editedfile
- Hunk #1 FAILED at 0
- 1 out of 1 hunks FAILED -- saving rejects to file editedfile.rej
- abort: patch failed to apply
- [255]
- $ cat editedfile
- This change will not be committed
- This is the second line
- This line has been added
- $ hg cat -r tip editedfile
- This is the first line
- This change will be committed
- This is the third line
- $ cat editedfile.rej
- --- editedfile
- +++ editedfile
- @@ -1,3 +1,3 @@
- -That is the first line
- -That change will be committed
- -That is the third line
- +That change will not be committed
- +That is the second line
- +That line has been added
- $ hg up -C
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
With win32text
$ echo '[extensions]' >> .hg/hgrc
@@ -1187,35 +928,34 @@ Ignore win32text deprecation warning for now:
$ echo 'warn = no' >> .hg/hgrc
$ echo d >> subdir/f1
- $ hg record -d '24 0' -mw1 <<EOF
+ $ hg record -d '23 0' -mw1 <<EOF
> y
> y
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynesfdaq?]
+ examine changes to 'subdir/f1'? [Ynsfdaq?]
@@ -3,3 +3,4 @@
a
b
c
+d
- record this change to 'subdir/f1'? [Ynesfdaq?]
+ record this change to 'subdir/f1'? [Ynsfdaq?]
$ hg tip -p
- changeset: 28:* (glob)
+ changeset: 26:b8306e70edc4
tag: tip
+ parent: 24:0b082130c20a
user: test
- date: Thu Jan 01 00:00:24 1970 +0000
+ date: Thu Jan 01 00:00:23 1970 +0000
summary: w1
- diff -r ???????????? -r ???????????? subdir/f1 (glob)
- --- a/subdir/f1 Thu Jan 01 00:00:23 1970 +0000
- +++ b/subdir/f1 Thu Jan 01 00:00:24 1970 +0000
+ diff -r 0b082130c20a -r b8306e70edc4 subdir/f1
+ --- a/subdir/f1 Thu Jan 01 00:00:22 1970 +0000
+ +++ b/subdir/f1 Thu Jan 01 00:00:23 1970 +0000
@@ -3,3 +3,4 @@
a
b
c
+d
-
- $ cd ..
diff --git a/tests/test-relink.t b/tests/test-relink.t
index 2b0bc2b..1c07911 100644
--- a/tests/test-relink.t
+++ b/tests/test-relink.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" hardlink || exit 80
-
$ echo "[extensions]" >> $HGRCPATH
$ echo "relink=" >> $HGRCPATH
@@ -27,21 +25,21 @@ create source repository
$ hg ci -Am addfile
adding a
adding b
- $ cat "$TESTDIR/binfile.bin" >> a
- $ cat "$TESTDIR/binfile.bin" >> b
+ $ cat $TESTDIR/binfile.bin >> a
+ $ cat $TESTDIR/binfile.bin >> b
$ hg ci -Am changefiles
make another commit to create files larger than 1 KB to test
formatting of final byte count
- $ cat "$TESTDIR/binfile.bin" >> a
- $ cat "$TESTDIR/binfile.bin" >> b
+ $ cat $TESTDIR/binfile.bin >> a
+ $ cat $TESTDIR/binfile.bin >> b
$ hg ci -m anotherchange
don't sit forever trying to double-lock the source repo
$ hg relink .
- relinking $TESTTMP/repo/.hg/store to $TESTTMP/repo/.hg/store (glob)
+ relinking $TESTTMP/repo/.hg/store to $TESTTMP/repo/.hg/store
there is nothing to relink
diff --git a/tests/test-remove-new.t b/tests/test-remove-new.t
new file mode 100644
index 0000000..fcc633a
--- /dev/null
+++ b/tests/test-remove-new.t
@@ -0,0 +1,13 @@
+test that 'hg commit' does not crash if the user removes a newly added file
+
+ $ hg init
+ $ echo This is file a1 > a
+ $ hg add a
+ $ hg commit -m "commit #0"
+ $ touch b
+ $ hg add b
+ $ rm b
+ $ hg commit -A -m"comment #1"
+ removing b
+ nothing changed
+ [1]
diff --git a/tests/test-remove.t b/tests/test-remove.t
index f67146e..70d175b 100644
--- a/tests/test-remove.t
+++ b/tests/test-remove.t
@@ -29,7 +29,7 @@ the table cases
$ echo b > bar
$ hg add bar
$ remove bar
- not removing bar: file has been marked for add (use forget to undo)
+ not removing bar: file has been marked for add (use -f to force removal)
exit code: 1
A bar
./bar
@@ -196,8 +196,8 @@ dir, options none
$ rm test/bar
$ remove test
- removing test/bar (glob)
- removing test/foo (glob)
+ removing test/bar
+ removing test/foo
exit code: 0
R test/bar
R test/foo
@@ -208,8 +208,8 @@ dir, options -f
$ rm test/bar
$ remove -f test
- removing test/bar (glob)
- removing test/foo (glob)
+ removing test/bar
+ removing test/foo
exit code: 0
R test/bar
R test/foo
@@ -220,8 +220,8 @@ dir, options -A
$ rm test/bar
$ remove -A test
- not removing test/foo: file still exists (use -f to force removal) (glob)
- removing test/bar (glob)
+ not removing test/foo: file still exists (use -f to force removal)
+ removing test/bar
exit code: 1
R test/bar
./foo
@@ -232,8 +232,8 @@ dir, options -Af
$ rm test/bar
$ remove -Af test
- removing test/bar (glob)
- removing test/foo (glob)
+ removing test/bar
+ removing test/foo
exit code: 0
R test/bar
R test/foo
@@ -250,19 +250,7 @@ test remove dropping empty trees (issue1861)
adding issue1861/b/c/y
adding issue1861/x
$ hg rm issue1861/b
- removing issue1861/b/c/y (glob)
+ removing issue1861/b/c/y
$ hg ci -m remove
$ ls issue1861
x
-
-test that commit does not crash if the user removes a newly added file
-
- $ touch f1
- $ hg add f1
- $ rm f1
- $ hg ci -A -mx
- removing f1
- nothing changed
- [1]
-
- $ cd ..
diff --git a/tests/test-rename-after-merge.t b/tests/test-rename-after-merge.t
index 8c6bd49..c6033fe 100644
--- a/tests/test-rename-after-merge.t
+++ b/tests/test-rename-after-merge.t
@@ -118,4 +118,3 @@ Commit issue 1476 with a rename on the other side:
$ hg log -r tip -C -v | grep copies
copies: b2 (b1)
- $ cd ..
diff --git a/tests/test-rename-dir-merge.t b/tests/test-rename-dir-merge.t
index b115c26..c66318b 100644
--- a/tests/test-rename-dir-merge.t
+++ b/tests/test-rename-dir-merge.t
@@ -11,8 +11,8 @@
$ hg co -C 0
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg mv a b
- moving a/a to b/a (glob)
- moving a/b to b/b (glob)
+ moving a/a to b/a
+ moving a/b to b/b
$ hg ci -m "1 mv a/ b/"
$ hg co -C 0
@@ -27,38 +27,43 @@
searching for copies back to rev 1
unmatched files in local:
a/c
+ a/d
unmatched files in other:
b/a
b/b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b/a -> a/a
b/b -> a/b
checking for directory renames
dir a/ -> b/
file a/c -> b/c
+ file a/d -> b/d
resolving manifests
- overwrite: False, partial: False
- ancestor: f9b20c0d4c51, local: ce36d17b18fb+, remote: 397f8b00a740
+ overwrite None partial False
+ ancestor f9b20c0d4c51 local ce36d17b18fb+ remote 397f8b00a740
+ a/d: remote renamed directory to b/d -> d
a/c: remote renamed directory to b/c -> d
a/b: other deleted -> r
a/a: other deleted -> r
b/a: remote created -> g
b/b: remote created -> g
- updating: a/a 1/5 files (20.00%)
+ updating: a/a 1/6 files (16.67%)
removing a/a
- updating: a/b 2/5 files (40.00%)
+ updating: a/b 2/6 files (33.33%)
removing a/b
- updating: a/c 3/5 files (60.00%)
+ updating: a/c 3/6 files (50.00%)
moving a/c to b/c
- updating: b/a 4/5 files (80.00%)
+ updating: a/d 4/6 files (66.67%)
+ moving a/d to b/d
+ updating: b/a 5/6 files (83.33%)
getting b/a
- updating: b/b 5/5 files (100.00%)
+ updating: b/b 6/6 files (100.00%)
getting b/b
- 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ 4 files updated, 0 files merged, 2 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ echo a/* b/*
- a/d b/a b/b b/c
+ a/* b/a b/b b/c b/d
$ hg st -C
M b/a
M b/b
@@ -67,10 +72,10 @@
R a/a
R a/b
R a/c
- ? a/d
+ ? b/d
$ hg ci -m "3 merge 2+1"
$ hg debugrename b/c
- b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 (glob)
+ b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88
$ hg co -C 1
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
@@ -79,17 +84,18 @@
unmatched files in local:
b/a
b/b
+ b/d
unmatched files in other:
a/c
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b/a -> a/a
b/b -> a/b
checking for directory renames
dir a/ -> b/
file a/c -> b/c
resolving manifests
- overwrite: False, partial: False
- ancestor: f9b20c0d4c51, local: 397f8b00a740+, remote: ce36d17b18fb
+ overwrite None partial False
+ ancestor f9b20c0d4c51 local 397f8b00a740+ remote ce36d17b18fb
None: local renamed directory to b/c -> d
updating:None 1/1 files (100.00%)
getting a/c to b/c
@@ -97,15 +103,15 @@
(branch merge, don't forget to commit)
$ echo a/* b/*
- a/d b/a b/b b/c
+ a/* b/a b/b b/c b/d
$ hg st -C
A b/c
a/c
- ? a/d
+ ? b/d
$ hg ci -m "4 merge 1+2"
created new head
$ hg debugrename b/c
- b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 (glob)
+ b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88
Second scenario with two repos:
@@ -116,7 +122,7 @@ Second scenario with two repos:
$ mkdir a
$ echo foo > a/f
$ hg add a
- adding a/f (glob)
+ adding a/f
$ hg ci -m "a/f == foo"
$ cd ..
@@ -125,7 +131,7 @@ Second scenario with two repos:
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd r2
$ hg mv a b
- moving a/f to b/f (glob)
+ moving a/f to b/f
$ echo foo1 > b/f
$ hg ci -m" a -> b, b/f == foo1"
$ cd ..
@@ -134,7 +140,7 @@ Second scenario with two repos:
$ mkdir a/aa
$ echo bar > a/aa/g
$ hg add a/aa
- adding a/aa/g (glob)
+ adding a/aa/g
$ hg ci -m "a/aa/g"
$ hg pull ../r2
pulling from ../r2
@@ -155,5 +161,3 @@ Second scenario with two repos:
a/aa/g
R a/aa/g
R a/f
-
- $ cd ..
diff --git a/tests/test-rename-merge1.t b/tests/test-rename-merge1.t
index f6b5f52..5a77cba 100644
--- a/tests/test-rename-merge1.t
+++ b/tests/test-rename-merge1.t
@@ -28,15 +28,15 @@
unmatched files in other:
b
b2
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
c2 -> a2 !
b -> a *
b2 -> a2 !
checking for directory renames
a2: divergent renames -> dr
resolving manifests
- overwrite: False, partial: False
- ancestor: af1939970a1c, local: 044f8520aeeb+, remote: 85c198ef2f6c
+ overwrite None partial False
+ ancestor af1939970a1c local 044f8520aeeb+ remote 85c198ef2f6c
a: remote moved to b -> m
b2: remote created -> g
preserving a for resolve of b
@@ -68,9 +68,9 @@
$ hg ci -m "merge"
$ hg debugindex b
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 67 ..... 1 57eacc201a7f 000000000000 000000000000 (re)
- 1 67 72 ..... 3 4727ba907962 000000000000 57eacc201a7f (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 67 0 1 57eacc201a7f 000000000000 000000000000
+ 1 67 72 1 3 4727ba907962 000000000000 57eacc201a7f
$ hg debugrename b
b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66
@@ -95,6 +95,9 @@ We'd rather not warn on divergent renames done in the same changeset (issue2113)
$ hg up c761c6948de0
1 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg up
+ note: possible conflict - b was renamed multiple times to:
+ b3
+ b4
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
Check for issue2642
@@ -123,8 +126,6 @@ Check for issue2642
$ cat f2
c0
- $ cd ..
-
Check for issue2089
$ hg init repo2089
@@ -154,42 +155,3 @@ Check for issue2089
$ cat f2
c2
-
- $ cd ..
-
-Check for issue3074
-
- $ hg init repo3074
- $ cd repo3074
- $ echo foo > file
- $ hg add file
- $ hg commit -m "added file"
- $ hg mv file newfile
- $ hg commit -m "renamed file"
- $ hg update 0
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg rm file
- $ hg commit -m "deleted file"
- created new head
- $ hg merge --debug
- searching for copies back to rev 1
- unmatched files in other:
- newfile
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
- newfile -> file %
- checking for directory renames
- file: rename and delete -> rd
- resolving manifests
- overwrite: False, partial: False
- ancestor: 19d7f95df299, local: 0084274f6b67+, remote: 5d32493049f0
- newfile: remote created -> g
- updating: file 1/2 files (50.00%)
- note: possible conflict - file was deleted and renamed to:
- newfile
- updating: newfile 2/2 files (100.00%)
- getting newfile
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg status
- M newfile
- $ cd ..
diff --git a/tests/test-rename-merge2.t b/tests/test-rename-merge2.t
index e5ba1d5..ba4a90b 100644
--- a/tests/test-rename-merge2.t
+++ b/tests/test-rename-merge2.t
@@ -80,12 +80,12 @@ $4 = expected result
searching for copies back to rev 1
unmatched files in other:
b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b -> a *
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: e300d1c794ec+, remote: 4ce40f5aca24
+ overwrite None partial False
+ ancestor 924404dff337 local e300d1c794ec+ remote 4ce40f5aca24
rev: versions differ -> m
a: remote copied to b -> m
preserving a for resolve of b
@@ -115,12 +115,12 @@ $4 = expected result
searching for copies back to rev 1
unmatched files in local:
b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b -> a *
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 86a2aa42fc76+, remote: f4db7e329e71
+ overwrite None partial False
+ ancestor 924404dff337 local 86a2aa42fc76+ remote f4db7e329e71
a: remote is newer -> g
b: local copied/moved to a -> m
rev: versions differ -> m
@@ -153,12 +153,12 @@ $4 = expected result
searching for copies back to rev 1
unmatched files in other:
b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b -> a *
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: e300d1c794ec+, remote: bdb19105162a
+ overwrite None partial False
+ ancestor 924404dff337 local e300d1c794ec+ remote bdb19105162a
rev: versions differ -> m
a: remote moved to b -> m
preserving a for resolve of b
@@ -188,12 +188,12 @@ $4 = expected result
searching for copies back to rev 1
unmatched files in local:
b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b -> a *
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 02963e448370+, remote: f4db7e329e71
+ overwrite None partial False
+ ancestor 924404dff337 local 02963e448370+ remote f4db7e329e71
b: local copied/moved to a -> m
rev: versions differ -> m
preserving b for resolve of b
@@ -222,12 +222,12 @@ $4 = expected result
searching for copies back to rev 1
unmatched files in other:
b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b -> a
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: 4ce40f5aca24
+ overwrite None partial False
+ ancestor 924404dff337 local 94b33a1b7f2d+ remote 4ce40f5aca24
rev: versions differ -> m
b: remote created -> g
preserving rev for resolve of rev
@@ -252,12 +252,12 @@ $4 = expected result
searching for copies back to rev 1
unmatched files in local:
b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b -> a
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 97c705ade336
+ overwrite None partial False
+ ancestor 924404dff337 local 86a2aa42fc76+ remote 97c705ade336
rev: versions differ -> m
preserving rev for resolve of rev
updating: rev 1/1 files (100.00%)
@@ -279,12 +279,12 @@ $4 = expected result
searching for copies back to rev 1
unmatched files in other:
b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b -> a
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: bdb19105162a
+ overwrite None partial False
+ ancestor 924404dff337 local 94b33a1b7f2d+ remote bdb19105162a
a: other deleted -> r
rev: versions differ -> m
b: remote created -> g
@@ -311,12 +311,12 @@ $4 = expected result
searching for copies back to rev 1
unmatched files in local:
b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b -> a
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 02963e448370+, remote: 97c705ade336
+ overwrite None partial False
+ ancestor 924404dff337 local 02963e448370+ remote 97c705ade336
rev: versions differ -> m
preserving rev for resolve of rev
updating: rev 1/1 files (100.00%)
@@ -336,8 +336,8 @@ $4 = expected result
--------------
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 62e7bf090eba+, remote: 49b6d8032493
+ overwrite None partial False
+ ancestor 924404dff337 local 62e7bf090eba+ remote 49b6d8032493
b: versions differ -> m
rev: versions differ -> m
preserving b for resolve of b
@@ -369,14 +369,14 @@ m "um a c" "um x c" " " "10 do merge with no ancestor"
b
unmatched files in other:
c
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
c -> a !
b -> a !
checking for directory renames
a: divergent renames -> dr
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 02963e448370+, remote: fe905ef2c33e
+ overwrite None partial False
+ ancestor 924404dff337 local 02963e448370+ remote fe905ef2c33e
rev: versions differ -> m
c: remote created -> g
preserving rev for resolve of rev
@@ -404,8 +404,8 @@ m "um a c" "um x c" " " "10 do merge with no ancestor"
--------------
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 86a2aa42fc76+, remote: af30c7647fc7
+ overwrite None partial False
+ ancestor 924404dff337 local 86a2aa42fc76+ remote af30c7647fc7
b: versions differ -> m
rev: versions differ -> m
preserving b for resolve of b
@@ -432,8 +432,8 @@ m "um a c" "um x c" " " "10 do merge with no ancestor"
--------------
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
+ overwrite None partial False
+ ancestor 924404dff337 local 59318016310c+ remote bdb19105162a
a: other deleted -> r
b: versions differ -> m
rev: versions differ -> m
@@ -462,8 +462,8 @@ m "um a c" "um x c" " " "10 do merge with no ancestor"
--------------
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a
+ overwrite None partial False
+ ancestor 924404dff337 local 86a2aa42fc76+ remote 8dbce441892a
a: remote is newer -> g
b: versions differ -> m
rev: versions differ -> m
@@ -493,8 +493,8 @@ m "um a c" "um x c" " " "10 do merge with no ancestor"
--------------
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
+ overwrite None partial False
+ ancestor 924404dff337 local 59318016310c+ remote bdb19105162a
a: other deleted -> r
b: versions differ -> m
rev: versions differ -> m
@@ -523,8 +523,8 @@ m "um a c" "um x c" " " "10 do merge with no ancestor"
--------------
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a
+ overwrite None partial False
+ ancestor 924404dff337 local 86a2aa42fc76+ remote 8dbce441892a
a: remote is newer -> g
b: versions differ -> m
rev: versions differ -> m
@@ -554,8 +554,8 @@ m "um a c" "um x c" " " "10 do merge with no ancestor"
--------------
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 0b76e65c8289+, remote: 4ce40f5aca24
+ overwrite None partial False
+ ancestor 924404dff337 local 0b76e65c8289+ remote 4ce40f5aca24
b: versions differ -> m
rev: versions differ -> m
preserving b for resolve of b
@@ -582,8 +582,8 @@ m "um a c" "um x c" " " "10 do merge with no ancestor"
--------------
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a
+ overwrite None partial False
+ ancestor 924404dff337 local 02963e448370+ remote 8dbce441892a
b: versions differ -> m
rev: versions differ -> m
remote changed a which local deleted
@@ -615,8 +615,8 @@ m "um a c" "um x c" " " "10 do merge with no ancestor"
--------------
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a
+ overwrite None partial False
+ ancestor 924404dff337 local 0b76e65c8289+ remote bdb19105162a
local changed a which remote deleted
use (c)hanged version or (d)elete? c
a: prompt keep -> a
@@ -648,12 +648,12 @@ m "um a c" "um x c" " " "10 do merge with no ancestor"
searching for copies back to rev 1
unmatched files in other:
b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b -> a *
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: e300d1c794ec+, remote: 49b6d8032493
+ overwrite None partial False
+ ancestor 924404dff337 local e300d1c794ec+ remote 49b6d8032493
rev: versions differ -> m
a: remote moved to b -> m
preserving a for resolve of b
@@ -682,12 +682,12 @@ m "um a c" "um x c" " " "10 do merge with no ancestor"
searching for copies back to rev 1
unmatched files in local:
b
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b -> a *
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 62e7bf090eba+, remote: f4db7e329e71
+ overwrite None partial False
+ ancestor 924404dff337 local 62e7bf090eba+ remote f4db7e329e71
b: local copied/moved to a -> m
rev: versions differ -> m
preserving b for resolve of b
@@ -720,12 +720,12 @@ m "nm a b" "um x a" " " "22 get a, keep b"
b
unmatched files in other:
c
- all copies found (* = to merge, ! = divergent, % = renamed and deleted):
+ all copies found (* = to merge, ! = divergent):
b -> a *
checking for directory renames
resolving manifests
- overwrite: False, partial: False
- ancestor: 924404dff337, local: 02963e448370+, remote: 2b958612230f
+ overwrite None partial False
+ ancestor 924404dff337 local 02963e448370+ remote 2b958612230f
b: local copied/moved to a -> m
rev: versions differ -> m
c: remote created -> g
@@ -750,5 +750,3 @@ m "nm a b" "um x a" " " "22 get a, keep b"
M c
--------------
-
- $ cd ..
diff --git a/tests/test-rename.t b/tests/test-rename.t
index 059f569..b26924d 100644
--- a/tests/test-rename.t
+++ b/tests/test-rename.t
@@ -69,7 +69,7 @@ rename --after a single file when src and tgt already tracked
rename --after a single file to a nonexistant target filename
$ hg rename --after d1/a dummy
- d1/a: not recording move - dummy does not exist (glob)
+ d1/a: not recording move - dummy does not exist
move a single file to an existing directory
@@ -119,10 +119,10 @@ rename --after a file using a relative path
rename directory d1 as d3
$ hg rename d1/ d3
- moving d1/a to d3/a (glob)
- moving d1/b to d3/b (glob)
- moving d1/ba to d3/ba (glob)
- moving d1/d11/a1 to d3/d11/a1 (glob)
+ moving d1/a to d3/a
+ moving d1/b to d3/b
+ moving d1/ba to d3/ba
+ moving d1/d11/a1 to d3/d11/a1
$ hg status -C
A d3/a
d1/a
@@ -144,10 +144,10 @@ rename --after directory d1 as d3
$ mv d1 d3
$ hg rename --after d1 d3
- moving d1/a to d3/a (glob)
- moving d1/b to d3/b (glob)
- moving d1/ba to d3/ba (glob)
- moving d1/d11/a1 to d3/d11/a1 (glob)
+ moving d1/a to d3/a
+ moving d1/b to d3/b
+ moving d1/ba to d3/ba
+ moving d1/d11/a1 to d3/d11/a1
$ hg status -C
A d3/a
d1/a
@@ -168,7 +168,7 @@ rename --after directory d1 as d3
move a directory using a relative path
$ (cd d2; mkdir d3; hg rename ../d1/d11 d3)
- moving ../d1/d11/a1 to d3/d11/a1 (glob)
+ moving ../d1/d11/a1 to d3/d11/a1
$ hg status -C
A d2/d3/d11/a1
d1/d11/a1
@@ -180,7 +180,7 @@ move a directory using a relative path
move --after a directory using a relative path
$ (cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d11 d3)
- moving ../d1/d11/a1 to d3/d11/a1 (glob)
+ moving ../d1/d11/a1 to d3/d11/a1
$ hg status -C
A d2/d3/d11/a1
d1/d11/a1
@@ -192,7 +192,7 @@ move --after a directory using a relative path
move directory d1/d11 to an existing directory d2 (removes empty d1)
$ hg rename d1/d11/ d2
- moving d1/d11/a1 to d2/d11/a1 (glob)
+ moving d1/d11/a1 to d2/d11/a1
$ hg status -C
A d2/d11/a1
d1/d11/a1
@@ -205,11 +205,11 @@ move directories d1 and d2 to a new directory d3
$ mkdir d3
$ hg rename d1 d2 d3
- moving d1/a to d3/d1/a (glob)
- moving d1/b to d3/d1/b (glob)
- moving d1/ba to d3/d1/ba (glob)
- moving d1/d11/a1 to d3/d1/d11/a1 (glob)
- moving d2/b to d3/d2/b (glob)
+ moving d1/a to d3/d1/a
+ moving d1/b to d3/d1/b
+ moving d1/ba to d3/d1/ba
+ moving d1/d11/a1 to d3/d1/d11/a1
+ moving d2/b to d3/d2/b
$ hg status -C
A d3/d1/a
d1/a
@@ -235,11 +235,11 @@ move --after directories d1 and d2 to a new directory d3
$ mkdir d3
$ mv d1 d2 d3
$ hg rename --after d1 d2 d3
- moving d1/a to d3/d1/a (glob)
- moving d1/b to d3/d1/b (glob)
- moving d1/ba to d3/d1/ba (glob)
- moving d1/d11/a1 to d3/d1/d11/a1 (glob)
- moving d2/b to d3/d2/b (glob)
+ moving d1/a to d3/d1/a
+ moving d1/b to d3/d1/b
+ moving d1/ba to d3/d1/ba
+ moving d1/d11/a1 to d3/d1/d11/a1
+ moving d2/b to d3/d2/b
$ hg status -C
A d3/d1/a
d1/a
@@ -265,7 +265,7 @@ overwrite existing files (d2/b)
$ hg rename d1/* d2
d2/b: not overwriting - file exists
- moving d1/d11/a1 to d2/d11/a1 (glob)
+ moving d1/d11/a1 to d2/d11/a1
$ hg status -C
A d2/a
d1/a
@@ -306,10 +306,10 @@ move every file under d1 to d2/d21 (glob)
$ mkdir d2/d21
$ hg rename 'glob:d1/**' d2/d21
- moving d1/a to d2/d21/a (glob)
- moving d1/b to d2/d21/b (glob)
- moving d1/ba to d2/d21/ba (glob)
- moving d1/d11/a1 to d2/d21/a1 (glob)
+ moving d1/a to d2/d21/a
+ moving d1/b to d2/d21/b
+ moving d1/ba to d2/d21/ba
+ moving d1/d11/a1 to d2/d21/a1
$ hg status -C
A d2/d21/a
d1/a
@@ -332,10 +332,10 @@ move --after some files under d1 to d2/d21 (glob)
$ mkdir d2/d21
$ mv d1/a d1/d11/a1 d2/d21
$ hg rename --after 'glob:d1/**' d2/d21
- moving d1/a to d2/d21/a (glob)
- d1/b: not recording move - d2/d21/b does not exist (glob)
- d1/ba: not recording move - d2/d21/ba does not exist (glob)
- moving d1/d11/a1 to d2/d21/a1 (glob)
+ moving d1/a to d2/d21/a
+ d1/b: not recording move - d2/d21/b does not exist
+ d1/ba: not recording move - d2/d21/ba does not exist
+ moving d1/d11/a1 to d2/d21/a1
$ hg status -C
A d2/d21/a
d1/a
@@ -351,8 +351,8 @@ move every file under d1 starting with an 'a' to d2/d21 (regexp)
$ mkdir d2/d21
$ hg rename 're:d1/([^a][^/]*/)*a.*' d2/d21
- moving d1/a to d2/d21/a (glob)
- moving d1/d11/a1 to d2/d21/a1 (glob)
+ moving d1/a to d2/d21/a
+ moving d1/d11/a1 to d2/d21/a1
$ hg status -C
A d2/d21/a
d1/a
@@ -388,7 +388,6 @@ forced overwrite of an existing file
attempt to overwrite an existing broken symlink
-#if symlink
$ ln -s ba d1/ca
$ hg rename --traceback d1/ba d1/ca
d1/ca: not overwriting - file exists
@@ -409,13 +408,12 @@ replace a symlink with a file
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d1/ca
-#endif
do not copy more than one source file to the same destination file
$ mkdir d3
$ hg rename d1/* d2/* d3
- moving d1/d11/a1 to d3/d11/a1 (glob)
+ moving d1/d11/a1 to d3/d11/a1
d3/b: not overwriting - d2/b collides with d1/b
$ hg status -C
A d3/a
@@ -441,7 +439,7 @@ move a whole subtree with "hg rename ."
moving a to ../d3/d1/a
moving b to ../d3/d1/b
moving ba to ../d3/d1/ba
- moving d11/a1 to ../d3/d1/d11/a1 (glob)
+ moving d11/a1 to ../d3/d1/d11/a1
$ hg status -C
A d3/d1/a
d1/a
@@ -467,7 +465,7 @@ move a whole subtree with "hg rename --after ."
moving a to ../d3/a
moving b to ../d3/b
moving ba to ../d3/ba
- moving d11/a1 to ../d3/d11/a1 (glob)
+ moving d11/a1 to ../d3/d11/a1
$ hg status -C
A d3/a
d1/a
@@ -488,9 +486,9 @@ move a whole subtree with "hg rename --after ."
move the parent tree with "hg rename .."
$ (cd d1/d11; hg rename .. ../../d3)
- moving ../a to ../../d3/a (glob)
- moving ../b to ../../d3/b (glob)
- moving ../ba to ../../d3/ba (glob)
+ moving ../a to ../../d3/a
+ moving ../b to ../../d3/b
+ moving ../ba to ../../d3/ba
moving a1 to ../../d3/d11/a1
$ hg status -C
A d3/a
@@ -513,9 +511,9 @@ skip removed files
$ hg remove d1/b
$ hg rename d1 d3
- moving d1/a to d3/a (glob)
- moving d1/ba to d3/ba (glob)
- moving d1/d11/a1 to d3/d11/a1 (glob)
+ moving d1/a to d3/a
+ moving d1/ba to d3/ba
+ moving d1/d11/a1 to d3/d11/a1
$ hg status -C
A d3/a
d1/a
@@ -589,7 +587,7 @@ overwriting with renames (issue1959)
check illegal path components
$ hg rename d1/d11/a1 .hg/foo
- abort: path contains illegal component: .hg/foo (glob)
+ abort: path contains illegal component: .hg/foo
[255]
$ hg status -C
$ hg rename d1/d11/a1 ../foo
@@ -599,7 +597,7 @@ check illegal path components
$ mv d1/d11/a1 .hg/foo
$ hg rename --after d1/d11/a1 .hg/foo
- abort: path contains illegal component: .hg/foo (glob)
+ abort: path contains illegal component: .hg/foo
[255]
$ hg status -C
! d1/d11/a1
@@ -608,17 +606,17 @@ check illegal path components
$ rm .hg/foo
$ hg rename d1/d11/a1 .hg
- abort: path contains illegal component: .hg/a1 (glob)
+ abort: path contains illegal component: .hg/a1
[255]
$ hg status -C
$ hg rename d1/d11/a1 ..
- abort: ../a1 not under root (glob)
+ abort: ../a1 not under root
[255]
$ hg status -C
$ mv d1/d11/a1 .hg
$ hg rename --after d1/d11/a1 .hg
- abort: path contains illegal component: .hg/a1 (glob)
+ abort: path contains illegal component: .hg/a1
[255]
$ hg status -C
! d1/d11/a1
@@ -627,7 +625,7 @@ check illegal path components
$ rm .hg/a1
$ (cd d1/d11; hg rename ../../d2/b ../../.hg/foo)
- abort: path contains illegal component: .hg/foo (glob)
+ abort: path contains illegal component: .hg/foo
[255]
$ hg status -C
$ (cd d1/d11; hg rename ../../d2/b ../../../foo)
diff --git a/tests/test-repair-strip.t b/tests/test-repair-strip.t
index 6393ea2..bc7dc9d 100644
--- a/tests/test-repair-strip.t
+++ b/tests/test-repair-strip.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" unix-permissions || exit 80
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=">> $HGRCPATH
@@ -129,4 +128,3 @@
checking files
2 files, 2 changesets, 2 total revisions
- $ cd ..
diff --git a/tests/test-requires.t b/tests/test-requires.t
index ff3427d..9b487f5 100644
--- a/tests/test-requires.t
+++ b/tests/test-requires.t
@@ -15,5 +15,3 @@
$ hg tip
abort: unknown repository format: requires features 'indoor-pool', 'outdoor-pool' (upgrade Mercurial)!
[255]
-
- $ cd ..
diff --git a/tests/test-resolve.t b/tests/test-resolve.t
index 86dc9ea..c895488 100644
--- a/tests/test-resolve.t
+++ b/tests/test-resolve.t
@@ -42,5 +42,3 @@ test crashed merge with empty mergestate
resolve -l, should be empty
$ hg resolve -l
-
- $ cd ..
diff --git a/tests/test-revert-flags.t b/tests/test-revert-flags.t
index 890e590..6419dec 100644
--- a/tests/test-revert-flags.t
+++ b/tests/test-revert-flags.t
@@ -19,5 +19,3 @@ reverting to rev 0
diff --git a/foo b/foo
old mode 100755
new mode 100644
-
- $ cd ..
diff --git a/tests/test-revert.t b/tests/test-revert.t
index c2b085f..e0751f0 100644
--- a/tests/test-revert.t
+++ b/tests/test-revert.t
@@ -80,7 +80,7 @@ should show b deleted
should not find b
$ hg status b
- b: * (glob)
+ b: No such file or directory
should show a c e
@@ -153,7 +153,6 @@ should silently keep d removed
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-#if execbit
$ chmod +x c
$ hg revert --all
reverting c
@@ -174,7 +173,6 @@ should print executable
$ test -x c && echo executable
executable
-#endif
$ cd ..
@@ -216,11 +214,11 @@ Issue332: confusing message when reverting directory
$ echo foo > newdir/newfile
$ hg add newdir/newfile
$ hg revert b newdir
- reverting b/b (glob)
- forgetting newdir/newfile (glob)
+ reverting b/b
+ forgetting newdir/newfile
$ echo foobar > b/b
$ hg revert .
- reverting b/b (glob)
+ reverting b/b
reverting a rename target should revert the source
@@ -261,8 +259,8 @@ should revert ignored* and undelete *removed
$ hg revert -a --no-backup
reverting ignored
- reverting ignoreddir/file (glob)
- undeleting ignoreddir/removed (glob)
+ reverting ignoreddir/file
+ undeleting ignoreddir/removed
undeleting removed
$ hg st -mardi
@@ -274,5 +272,3 @@ should silently revert the named files
$ hg revert --no-backup ignored removed
$ hg st -mardi
-
- $ cd ..
diff --git a/tests/test-revlog-ancestry.py b/tests/test-revlog-ancestry.py
index 0834646..e5c2a42 100644
--- a/tests/test-revlog-ancestry.py
+++ b/tests/test-revlog-ancestry.py
@@ -47,31 +47,27 @@ if __name__ == '__main__':
# Ancestors
print 'Ancestors of 5'
- for r in repo.changelog.ancestors([5]):
+ for r in repo.changelog.ancestors(5):
print r,
print '\nAncestors of 6 and 5'
- for r in repo.changelog.ancestors([6, 5]):
+ for r in repo.changelog.ancestors(6, 5):
print r,
print '\nAncestors of 5 and 4'
- for r in repo.changelog.ancestors([5, 4]):
- print r,
-
- print '\nAncestors of 7, stop at 6'
- for r in repo.changelog.ancestors([7], 6):
+ for r in repo.changelog.ancestors(5, 4):
print r,
# Descendants
print '\n\nDescendants of 5'
- for r in repo.changelog.descendants([5]):
+ for r in repo.changelog.descendants(5):
print r,
print '\nDescendants of 5 and 3'
- for r in repo.changelog.descendants([5, 3]):
+ for r in repo.changelog.descendants(5, 3):
print r,
print '\nDescendants of 5 and 4'
- for r in repo.changelog.descendants([5, 4]):
+ for r in repo.changelog.descendants(5, 4):
print r,
diff --git a/tests/test-revlog-ancestry.py.out b/tests/test-revlog-ancestry.py.out
index d5c167a..b0b37ea 100644
--- a/tests/test-revlog-ancestry.py.out
+++ b/tests/test-revlog-ancestry.py.out
@@ -4,8 +4,6 @@ Ancestors of 6 and 5
3 4 2 1 0
Ancestors of 5 and 4
4 2 0
-Ancestors of 7, stop at 6
-6
Descendants of 5
7 8
diff --git a/tests/test-revlog-group-emptyiter.t b/tests/test-revlog-group-emptyiter.t
index 905a6e0..f97a020 100644
--- a/tests/test-revlog-group-emptyiter.t
+++ b/tests/test-revlog-group-emptyiter.t
@@ -32,4 +32,3 @@ pushing
adding file changes
added 1 changesets with 0 changes to 0 files (+1 heads)
- $ cd ..
diff --git a/tests/test-revlog-packentry.t b/tests/test-revlog-packentry.t
index 4bcb3f9..160869c 100644
--- a/tests/test-revlog-packentry.t
+++ b/tests/test-revlog-packentry.t
@@ -16,8 +16,6 @@ this should be stored as a delta against rev 0
created new head
$ hg debugindex foo
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 0 ..... 0 b80de5d13875 000000000000 000000000000 (re)
- 1 0 24 ..... 1 0376abec49b8 000000000000 000000000000 (re)
-
- $ cd ..
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 0 0 0 b80de5d13875 000000000000 000000000000
+ 1 0 24 0 1 0376abec49b8 000000000000 000000000000
diff --git a/tests/test-revset-dirstate-parents.t b/tests/test-revset-dirstate-parents.t
index 0582bc7..27e6d18 100644
--- a/tests/test-revset-dirstate-parents.t
+++ b/tests/test-revset-dirstate-parents.t
@@ -13,17 +13,11 @@
$ cd repo
$ try 'p1()'
- (func
- ('symbol', 'p1')
- None)
+ ('func', ('symbol', 'p1'), None)
$ try 'p2()'
- (func
- ('symbol', 'p2')
- None)
+ ('func', ('symbol', 'p2'), None)
$ try 'parents()'
- (func
- ('symbol', 'parents')
- None)
+ ('func', ('symbol', 'parents'), None)
null revision
$ log 'p1()'
@@ -56,5 +50,3 @@ merge in progress
$ log 'parents()'
1
2
-
- $ cd ..
diff --git a/tests/test-revset-outgoing.t b/tests/test-revset-outgoing.t
index 18d36f2..456c684 100644
--- a/tests/test-revset-outgoing.t
+++ b/tests/test-revset-outgoing.t
@@ -21,7 +21,6 @@
$ hg branch stable
marked working directory as branch stable
- (branches are permanent and global, did you want a bookmark?)
$ echo bar >> a
$ hg ci -qm2
@@ -40,7 +39,7 @@
$ cd b
$ cat .hg/hgrc
[paths]
- default = $TESTTMP/a#stable (glob)
+ default = $TESTTMP/a#stable
$ echo red >> a
$ hg ci -qm3
@@ -61,7 +60,7 @@
$ hg tout
- comparing with $TESTTMP/a (glob)
+ comparing with $TESTTMP/a
searching for changes
2:1d4099801a4e: '3' stable
@@ -80,15 +79,14 @@
$ cat .hg/hgrc
[paths]
- default = $TESTTMP/a#stable (glob)
+ default = $TESTTMP/a#stable
green = ../a#default
$ hg tout green
- comparing with $TESTTMP/a (glob)
+ comparing with $TESTTMP/a
searching for changes
3:f0461977a3db: '4'
$ hg tlog -r 'outgoing("green")'
3:f0461977a3db: '4'
- $ cd ..
diff --git a/tests/test-revset.t b/tests/test-revset.t
index 2a41901..242ec6c 100644
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -15,36 +15,22 @@
$ echo a > a
$ hg branch a
marked working directory as branch a
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Aqm0
$ echo b > b
$ hg branch b
marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Aqm1
$ rm a
$ hg branch a-b-c-
marked working directory as branch a-b-c-
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Aqm2 -u Bob
- $ hg log -r "extra('branch', 'a-b-c-')" --template '{rev}\n'
- 2
- $ hg log -r "extra('branch')" --template '{rev}\n'
- 0
- 1
- 2
- $ hg log -r "extra('branch', 're:a')" --template '{rev} {branch}\n'
- 0 a
- 2 a-b-c-
-
$ hg co 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch +a+b+c+
marked working directory as branch +a+b+c+
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Aqm3
$ hg co 2 # interleave
@@ -52,14 +38,12 @@
$ echo bb > b
$ hg branch -- -a-b-c-
marked working directory as branch -a-b-c-
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Aqm4 -d "May 12 2005"
$ hg co 3
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg branch !a/b/c/
- marked working directory as branch !a/b/c/
- (branches are permanent and global, did you want a bookmark?)
+ $ hg branch /a/b/c/
+ marked working directory as branch /a/b/c/
$ hg ci -Aqm"5 bug"
$ hg merge 4
@@ -67,17 +51,14 @@
(branch merge, don't forget to commit)
$ hg branch _a_b_c_
marked working directory as branch _a_b_c_
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Aqm"6 issue619"
$ hg branch .a.b.c.
marked working directory as branch .a.b.c.
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Aqm7
$ hg branch all
marked working directory as branch all
- (branches are permanent and global, did you want a bookmark?)
$ hg ci --close-branch -Aqm8
abort: can only close branch heads
[255]
@@ -86,7 +67,6 @@
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch é
marked working directory as branch \xc3\xa9 (esc)
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -Aqm9
$ hg tag -r6 1.0
@@ -102,25 +82,19 @@ names that should work without quoting
('symbol', 'a')
0
$ try b-a
- (minus
- ('symbol', 'b')
- ('symbol', 'a'))
+ ('minus', ('symbol', 'b'), ('symbol', 'a'))
1
$ try _a_b_c_
('symbol', '_a_b_c_')
6
$ try _a_b_c_-a
- (minus
- ('symbol', '_a_b_c_')
- ('symbol', 'a'))
+ ('minus', ('symbol', '_a_b_c_'), ('symbol', 'a'))
6
$ try .a.b.c.
('symbol', '.a.b.c.')
7
$ try .a.b.c.-a
- (minus
- ('symbol', '.a.b.c.')
- ('symbol', 'a'))
+ ('minus', ('symbol', '.a.b.c.'), ('symbol', 'a'))
7
$ try -- '-a-b-c-' # complains
hg: parse error at 7: not a prefix: end
@@ -128,15 +102,7 @@ names that should work without quoting
$ log -a-b-c- # succeeds with fallback
4
$ try -- -a-b-c--a # complains
- (minus
- (minus
- (minus
- (negate
- ('symbol', 'a'))
- ('symbol', 'b'))
- ('symbol', 'c'))
- (negate
- ('symbol', 'a')))
+ ('minus', ('minus', ('minus', ('negate', ('symbol', 'a')), ('symbol', 'b')), ('symbol', 'c')), ('negate', ('symbol', 'a')))
abort: unknown revision '-a'!
[255]
$ try é
@@ -146,9 +112,7 @@ names that should work without quoting
quoting needed
$ try '"-a-b-c-"-a'
- (minus
- ('string', '-a-b-c-')
- ('symbol', 'a'))
+ ('minus', ('string', '-a-b-c-'), ('symbol', 'a'))
4
$ log '1 or 2'
@@ -160,32 +124,15 @@ quoting needed
$ log '1 and 2'
$ log '1&2'
$ try '1&2|3' # precedence - and is higher
- (or
- (and
- ('symbol', '1')
- ('symbol', '2'))
- ('symbol', '3'))
+ ('or', ('and', ('symbol', '1'), ('symbol', '2')), ('symbol', '3'))
3
$ try '1|2&3'
- (or
- ('symbol', '1')
- (and
- ('symbol', '2')
- ('symbol', '3')))
+ ('or', ('symbol', '1'), ('and', ('symbol', '2'), ('symbol', '3')))
1
$ try '1&2&3' # associativity
- (and
- (and
- ('symbol', '1')
- ('symbol', '2'))
- ('symbol', '3'))
+ ('and', ('and', ('symbol', '1'), ('symbol', '2')), ('symbol', '3'))
$ try '1|(2|3)'
- (or
- ('symbol', '1')
- (group
- (or
- ('symbol', '2')
- ('symbol', '3'))))
+ ('or', ('symbol', '1'), ('group', ('or', ('symbol', '2'), ('symbol', '3'))))
1
2
3
@@ -231,30 +178,9 @@ quoting needed
5
$ log 'author(bob)'
2
- $ log 'author("re:bob|test")'
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
$ log 'branch(é)'
8
9
- $ log 'branch(a)'
- 0
- $ hg log -r 'branch("re:a")' --template '{rev} {branch}\n'
- 0 a
- 2 a-b-c-
- 3 +a+b+c+
- 4 -a-b-c-
- 5 !a/b/c/
- 6 _a_b_c_
- 7 .a.b.c.
$ log 'children(ancestor(4,5))'
2
3
@@ -275,7 +201,7 @@ quoting needed
7
8
9
- $ log 'file("b*")'
+ $ log 'file(b)'
1
4
$ log 'follow()'
@@ -288,19 +214,13 @@ quoting needed
$ log 'grep("issue\d+")'
6
$ try 'grep("(")' # invalid regular expression
- (func
- ('symbol', 'grep')
- ('string', '('))
+ ('func', ('symbol', 'grep'), ('string', '('))
hg: parse error: invalid match pattern: unbalanced parenthesis
[255]
$ try 'grep("\bissue\d+")'
- (func
- ('symbol', 'grep')
- ('string', '\x08issue\\d+'))
+ ('func', ('symbol', 'grep'), ('string', '\x08issue\\d+'))
$ try 'grep(r"\bissue\d+")'
- (func
- ('symbol', 'grep')
- ('string', '\\bissue\\d+'))
+ ('func', ('symbol', 'grep'), ('string', '\\bissue\\d+'))
6
$ try 'grep(r"\")'
hg: parse error at 7: unterminated string
@@ -321,11 +241,6 @@ quoting needed
6
$ log 'limit(head(), 1)'
0
- $ log 'matching(6)'
- 6
- $ log 'matching(6:7, "phase parents user date branch summary files description substate")'
- 6
- 7
$ log 'max(contains(a))'
5
$ log 'min(contains(a))'
@@ -334,13 +249,6 @@ quoting needed
6
$ log 'modifies(b)'
4
- $ log 'modifies("path:b")'
- 4
- $ log 'modifies("*")'
- 4
- 6
- $ log 'modifies("set:modified()")'
- 4
$ log 'id(5)'
2
$ log 'outgoing()'
@@ -372,17 +280,6 @@ quoting needed
4
3
2
- $ log 'reverse(all())'
- 9
- 8
- 7
- 6
- 5
- 4
- 3
- 2
- 1
- 0
$ log 'rev(5)'
5
$ log 'sort(limit(reverse(all()), 3))'
@@ -402,22 +299,6 @@ quoting needed
6
$ log 'tag(tip)'
9
-
-we can use patterns when searching for tags
-
- $ log 'tag("1..*")'
- abort: tag '1..*' does not exist
- [255]
- $ log 'tag("re:1..*")'
- 6
- $ log 'tag("re:[0-9].[0-9]")'
- 6
- $ log 'tag("literal:1.0")'
- 6
- $ log 'tag("re:0..*")'
- abort: no tags exist that match '0..*'
- [255]
-
$ log 'tag(unknown)'
abort: tag 'unknown' does not exist
[255]
@@ -466,10 +347,6 @@ we can use patterns when searching for tags
0
$ log '4::8 - 8'
4
- $ log 'matching(1 or 2 or 3) and (2 or 3 or 1)'
- 2
- 3
- 1
issue2437
@@ -483,8 +360,6 @@ issue2437
2
$ log 'roots(all()) or roots(all())'
0
- $ hg debugrevspec 'roots(all()) or roots(all())'
- 0
$ log 'heads(branch(é)) or heads(branch(é))'
9
$ log 'ancestors(8) and (heads(branch("-a-b-c-")) or heads(branch(é)))'
@@ -543,192 +418,41 @@ aliases:
$ echo '[revsetalias]' >> .hg/hgrc
$ echo 'm = merge()' >> .hg/hgrc
- $ echo 'sincem = descendants(m)' >> .hg/hgrc
$ echo 'd($1) = reverse(sort($1, date))' >> .hg/hgrc
$ echo 'rs(ARG1, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
$ echo 'rs4(ARG1, ARGA, ARGB, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
$ try m
('symbol', 'm')
- (func
- ('symbol', 'merge')
- None)
- 6
-
-test alias recursion
-
- $ try sincem
- ('symbol', 'sincem')
- (func
- ('symbol', 'descendants')
- (func
- ('symbol', 'merge')
- None))
+ ('func', ('symbol', 'merge'), None)
6
- 7
-
-test infinite recursion
-
- $ echo 'recurse1 = recurse2' >> .hg/hgrc
- $ echo 'recurse2 = recurse1' >> .hg/hgrc
- $ try recurse1
- ('symbol', 'recurse1')
- hg: parse error: infinite expansion of revset alias "recurse1" detected
- [255]
-
- $ echo 'level1($1, $2) = $1 or $2' >> .hg/hgrc
- $ echo 'level2($1, $2) = level1($2, $1)' >> .hg/hgrc
- $ try "level2(level1(1, 2), 3)"
- (func
- ('symbol', 'level2')
- (list
- (func
- ('symbol', 'level1')
- (list
- ('symbol', '1')
- ('symbol', '2')))
- ('symbol', '3')))
- (or
- ('symbol', '3')
- (or
- ('symbol', '1')
- ('symbol', '2')))
- 3
- 1
- 2
-
-test nesting and variable passing
-
- $ echo 'nested($1) = nested2($1)' >> .hg/hgrc
- $ echo 'nested2($1) = nested3($1)' >> .hg/hgrc
- $ echo 'nested3($1) = max($1)' >> .hg/hgrc
- $ try 'nested(2:5)'
- (func
- ('symbol', 'nested')
- (range
- ('symbol', '2')
- ('symbol', '5')))
- (func
- ('symbol', 'max')
- (range
- ('symbol', '2')
- ('symbol', '5')))
- 5
-
-test variable isolation, variable placeholders are rewritten as string
-then parsed and matched again as string. Check they do not leak too
-far away.
-
- $ echo 'injectparamasstring = max("$1")' >> .hg/hgrc
- $ echo 'callinjection($1) = descendants(injectparamasstring)' >> .hg/hgrc
- $ try 'callinjection(2:5)'
- (func
- ('symbol', 'callinjection')
- (range
- ('symbol', '2')
- ('symbol', '5')))
- (func
- ('symbol', 'descendants')
- (func
- ('symbol', 'max')
- ('string', '$1')))
- abort: unknown revision '$1'!
- [255]
-
- $ echo 'injectparamasstring2 = max(_aliasarg("$1"))' >> .hg/hgrc
- $ echo 'callinjection2($1) = descendants(injectparamasstring2)' >> .hg/hgrc
- $ try 'callinjection2(2:5)'
- (func
- ('symbol', 'callinjection2')
- (range
- ('symbol', '2')
- ('symbol', '5')))
- hg: parse error: not a function: _aliasarg
- [255]
- >>> data = file('.hg/hgrc', 'rb').read()
- >>> file('.hg/hgrc', 'wb').write(data.replace('_aliasarg', ''))
-
$ try 'd(2:5)'
- (func
- ('symbol', 'd')
- (range
- ('symbol', '2')
- ('symbol', '5')))
- (func
- ('symbol', 'reverse')
- (func
- ('symbol', 'sort')
- (list
- (range
- ('symbol', '2')
- ('symbol', '5'))
- ('symbol', 'date'))))
+ ('func', ('symbol', 'd'), ('range', ('symbol', '2'), ('symbol', '5')))
+ ('func', ('symbol', 'reverse'), ('func', ('symbol', 'sort'), ('list', ('range', ('symbol', '2'), ('symbol', '5')), ('symbol', 'date'))))
4
5
3
2
$ try 'rs(2 or 3, date)'
- (func
- ('symbol', 'rs')
- (list
- (or
- ('symbol', '2')
- ('symbol', '3'))
- ('symbol', 'date')))
- (func
- ('symbol', 'reverse')
- (func
- ('symbol', 'sort')
- (list
- (or
- ('symbol', '2')
- ('symbol', '3'))
- ('symbol', 'date'))))
+ ('func', ('symbol', 'rs'), ('list', ('or', ('symbol', '2'), ('symbol', '3')), ('symbol', 'date')))
+ ('func', ('symbol', 'reverse'), ('func', ('symbol', 'sort'), ('list', ('or', ('symbol', '2'), ('symbol', '3')), ('symbol', 'date'))))
3
2
$ try 'rs()'
- (func
- ('symbol', 'rs')
- None)
+ ('func', ('symbol', 'rs'), None)
hg: parse error: invalid number of arguments: 0
[255]
$ try 'rs(2)'
- (func
- ('symbol', 'rs')
- ('symbol', '2'))
+ ('func', ('symbol', 'rs'), ('symbol', '2'))
hg: parse error: invalid number of arguments: 1
[255]
$ try 'rs(2, data, 7)'
- (func
- ('symbol', 'rs')
- (list
- (list
- ('symbol', '2')
- ('symbol', 'data'))
- ('symbol', '7')))
+ ('func', ('symbol', 'rs'), ('list', ('list', ('symbol', '2'), ('symbol', 'data')), ('symbol', '7')))
hg: parse error: invalid number of arguments: 3
[255]
$ try 'rs4(2 or 3, x, x, date)'
- (func
- ('symbol', 'rs4')
- (list
- (list
- (list
- (or
- ('symbol', '2')
- ('symbol', '3'))
- ('symbol', 'x'))
- ('symbol', 'x'))
- ('symbol', 'date')))
- (func
- ('symbol', 'reverse')
- (func
- ('symbol', 'sort')
- (list
- (or
- ('symbol', '2')
- ('symbol', '3'))
- ('symbol', 'date'))))
+ ('func', ('symbol', 'rs4'), ('list', ('list', ('list', ('or', ('symbol', '2'), ('symbol', '3')), ('symbol', 'x')), ('symbol', 'x')), ('symbol', 'date')))
+ ('func', ('symbol', 'reverse'), ('func', ('symbol', 'sort'), ('list', ('or', ('symbol', '2'), ('symbol', '3')), ('symbol', 'date'))))
3
2
@@ -739,79 +463,3 @@ issue2549 - correct optimizations
$ log 'max(1 or 2) and not 2'
$ log 'min(1 or 2) and not 1'
$ log 'last(1 or 2, 1) and not 2'
-
-tests for 'remote()' predicate:
-#. (csets in remote) (id) (remote)
-1. less than local current branch "default"
-2. same with local specified "default"
-3. more than local specified specified
-
- $ hg clone --quiet -U . ../remote3
- $ cd ../remote3
- $ hg update -q 7
- $ echo r > r
- $ hg ci -Aqm 10
- $ log 'remote()'
- 7
- $ log 'remote("a-b-c-")'
- 2
- $ cd ../repo
- $ log 'remote(".a.b.c.", "../remote3")'
-
- $ cd ..
-
-test author/desc/keyword in problematic encoding
-# unicode: cp932:
-# u30A2 0x83 0x41(= 'A')
-# u30C2 0x83 0x61(= 'a')
-
- $ hg init problematicencoding
- $ cd problematicencoding
-
- $ python > setup.sh <<EOF
- > print u'''
- > echo a > text
- > hg add text
- > hg --encoding utf-8 commit -u '\u30A2' -m none
- > echo b > text
- > hg --encoding utf-8 commit -u '\u30C2' -m none
- > echo c > text
- > hg --encoding utf-8 commit -u none -m '\u30A2'
- > echo d > text
- > hg --encoding utf-8 commit -u none -m '\u30C2'
- > '''.encode('utf-8')
- > EOF
- $ sh < setup.sh
-
-test in problematic encoding
- $ python > test.sh <<EOF
- > print u'''
- > hg --encoding cp932 log --template '{rev}\\n' -r 'author(\u30A2)'
- > echo ====
- > hg --encoding cp932 log --template '{rev}\\n' -r 'author(\u30C2)'
- > echo ====
- > hg --encoding cp932 log --template '{rev}\\n' -r 'desc(\u30A2)'
- > echo ====
- > hg --encoding cp932 log --template '{rev}\\n' -r 'desc(\u30C2)'
- > echo ====
- > hg --encoding cp932 log --template '{rev}\\n' -r 'keyword(\u30A2)'
- > echo ====
- > hg --encoding cp932 log --template '{rev}\\n' -r 'keyword(\u30C2)'
- > '''.encode('cp932')
- > EOF
- $ sh < test.sh
- 0
- ====
- 1
- ====
- 2
- ====
- 3
- ====
- 0
- 2
- ====
- 1
- 3
-
- $ cd ..
diff --git a/tests/test-rollback.t b/tests/test-rollback.t
index 305555b..889e350 100644
--- a/tests/test-rollback.t
+++ b/tests/test-rollback.t
@@ -1,9 +1,9 @@
-setup repo
+
$ hg init t
$ cd t
$ echo a > a
- $ hg commit -Am'add a'
- adding a
+ $ hg add a
+ $ hg commit -m "test"
$ hg verify
checking changesets
checking manifests
@@ -11,14 +11,12 @@ setup repo
checking files
1 files, 1 changesets, 1 total revisions
$ hg parents
- changeset: 0:1f0dee641bb7
+ changeset: 0:acb14030fe0a
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
- summary: add a
+ summary: test
-
-rollback to null revision
$ hg status
$ hg rollback
repository tip rolled back to revision -1 (undo commit)
@@ -33,68 +31,36 @@ rollback to null revision
$ hg status
A a
-Two changesets this time so we rollback to a real changeset
- $ hg commit -m'add a again'
- $ echo a >> a
- $ hg commit -m'modify a'
+Test issue 902
-Test issue 902 (current branch is preserved)
+ $ hg commit -m "test2"
$ hg branch test
marked working directory as branch test
- (branches are permanent and global, did you want a bookmark?)
$ hg rollback
- repository tip rolled back to revision 0 (undo commit)
- working directory now based on revision 0
+ repository tip rolled back to revision -1 (undo commit)
+ working directory now based on revision -1
$ hg branch
default
Test issue 1635 (commit message saved)
+.hg/last-message.txt:
+
$ cat .hg/last-message.txt ; echo
- modify a
+ test2
Test rollback of hg before issue 902 was fixed
$ hg commit -m "test3"
$ hg branch test
marked working directory as branch test
- (branches are permanent and global, did you want a bookmark?)
$ rm .hg/undo.branch
$ hg rollback
- repository tip rolled back to revision 0 (undo commit)
- named branch could not be reset: current branch is still 'test'
- working directory now based on revision 0
+ repository tip rolled back to revision -1 (undo commit)
+ named branch could not be reset, current branch is still: test
+ working directory now based on revision -1
$ hg branch
test
-working dir unaffected by rollback: do not restore dirstate et. al.
- $ hg log --template '{rev} {branch} {desc|firstline}\n'
- 0 default add a again
- $ hg status
- M a
- $ hg bookmark foo
- $ hg commit -m'modify a again'
- $ echo b > b
- $ hg commit -Am'add b'
- adding b
- $ hg log --template '{rev} {branch} {desc|firstline}\n'
- 2 test add b
- 1 test modify a again
- 0 default add a again
- $ hg update default
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg bookmark bar
- $ cat .hg/undo.branch ; echo
- test
- $ hg rollback -f
- repository tip rolled back to revision 1 (undo commit)
- $ hg id -n
- 0
- $ hg branch
- default
- $ cat .hg/bookmarks.current ; echo
- bar
- $ hg bookmark --delete foo
-
rollback by pretxncommit saves commit message (issue 1635)
$ echo a >> a
@@ -103,15 +69,20 @@ rollback by pretxncommit saves commit message (issue 1635)
rollback completed
abort: pretxncommit hook exited with status * (glob)
[255]
+
+.hg/last-message.txt:
+
$ cat .hg/last-message.txt ; echo
precious commit message
same thing, but run $EDITOR
- $ cat > editor.sh << '__EOF__'
+ $ cat > editor << '__EOF__'
+ > #!/bin/sh
> echo "another precious commit message" > "$1"
> __EOF__
- $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg --config hooks.pretxncommit=false commit 2>&1
+ $ chmod +x editor
+ $ HGEDITOR="'`pwd`'"/editor hg --config hooks.pretxncommit=false commit 2>&1
transaction abort!
rollback completed
note: commit message saved in .hg/last-message.txt
@@ -122,7 +93,6 @@ same thing, but run $EDITOR
test rollback on served repository
-#if serve
$ hg commit -m "precious commit message"
$ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
@@ -132,56 +102,18 @@ test rollback on served repository
adding changesets
adding manifests
adding file changes
- added 3 changesets with 2 changes to 1 files (+1 heads)
- updating to branch default
+ added 1 changesets with 1 changes to 1 files
+ updating to branch test
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd u
$ hg id default
- 068774709090
+ 1df294f7b1a2
now rollback and observe that 'hg serve' reloads the repository and
presents the correct tip changeset:
$ hg -R ../t rollback
- repository tip rolled back to revision 1 (undo commit)
- working directory now based on revision 0
+ repository tip rolled back to revision -1 (undo commit)
+ working directory now based on revision -1
$ hg id default
- 791dd2169706
-#endif
-
-update to older changeset and then refuse rollback, because
-that would lose data (issue2998)
- $ cd ../t
- $ hg -q update
- $ rm `hg status -un`
- $ template='{rev}:{node|short} [{branch}] {desc|firstline}\n'
- $ echo 'valuable new file' > b
- $ echo 'valuable modification' >> a
- $ hg commit -A -m'a valuable change'
- adding b
- $ hg update 0
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg rollback
- abort: rollback of last commit while not checked out may lose data
- (use -f to force)
- [255]
- $ hg tip -q
- 2:4d9cd3795eea
- $ hg rollback -f
- repository tip rolled back to revision 1 (undo commit)
- $ hg status
- $ hg log --removed b # yep, it's gone
-
-same again, but emulate an old client that doesn't write undo.desc
- $ hg -q update
- $ echo 'valuable modification redux' >> a
- $ hg commit -m'a valuable change redux'
- $ rm .hg/undo.desc
- $ hg update 0
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg rollback
- rolling back unknown transaction
- $ cat a
- a
-
- $ cd ..
+ 000000000000
diff --git a/tests/test-run-tests.t b/tests/test-run-tests.t
index 68b60cf..977f0fd 100644
--- a/tests/test-run-tests.t
+++ b/tests/test-run-tests.t
@@ -16,25 +16,6 @@ Multi-line command:
$ foo
bar
-Return codes before inline python:
-
- $ sh -c 'exit 1'
- [1]
-
-Doctest commands:
-
- >>> print 'foo'
- foo
- $ echo interleaved
- interleaved
- >>> for c in 'xyz':
- ... print c
- x
- y
- z
- >>> print
-
-
Regular expressions:
$ echo foobarbaz
@@ -52,47 +33,6 @@ Literal match ending in " (re)":
$ echo 'foo (re)'
foo (re)
-testing hghave
-
- $ "$TESTDIR/hghave" true
- $ "$TESTDIR/hghave" false
- skipped: missing feature: nail clipper
- [1]
- $ "$TESTDIR/hghave" no-true
- skipped: system supports yak shaving
- [1]
- $ "$TESTDIR/hghave" no-false
-
-Conditional sections based on hghave:
-
-#if true
- $ echo tested
- tested
-#else
- $ echo skipped
-#endif
-
-#if false
- $ echo skipped
-#else
- $ echo tested
- tested
-#endif
-
-#if no-false
- $ echo tested
- tested
-#else
- $ echo skipped
-#endif
-
-#if no-true
- $ echo skipped
-#else
- $ echo tested
- tested
-#endif
-
Exit code:
$ (exit 1)
diff --git a/tests/test-schemes.t b/tests/test-schemes.t
index a31ae80..7ae54f4 100644
--- a/tests/test-schemes.t
+++ b/tests/test-schemes.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
$ cat <<EOF >> $HGRCPATH
> [extensions]
@@ -46,5 +45,3 @@ check that paths are expanded
errors
$ cat errors.log
-
- $ cd ..
diff --git a/tests/test-serve.t b/tests/test-serve.t
index 8ae4a86..20784b4 100644
--- a/tests/test-serve.t
+++ b/tests/test-serve.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
$ hgserve()
> {
@@ -9,12 +8,13 @@
> cat hg.pid >> "$DAEMON_PIDS"
> echo % errors
> cat errors.log
+ > sleep 1
> if [ "$KILLQUIETLY" = "Y" ]; then
> kill `cat hg.pid` 2>/dev/null
> else
> kill `cat hg.pid`
> fi
- > while kill -0 `cat hg.pid` 2>/dev/null; do sleep 0; done
+ > sleep 1
> }
$ hg init test
@@ -28,9 +28,9 @@ Without -v
$ hg serve -a localhost -p $HGPORT -d --pid-file=hg.pid -E errors.log
$ cat hg.pid >> "$DAEMON_PIDS"
$ if [ -f access.log ]; then
- > echo 'access log created - .hg/hgrc respected'
- > fi
+ $ echo 'access log created - .hg/hgrc respected'
access log created - .hg/hgrc respected
+ $ fi
errors
@@ -80,5 +80,3 @@ With --prefix /foo/
$ hgserve --prefix /foo/
listening at http://localhost/foo/ (bound to 127.0.0.1:HGPORT1)
% errors
-
- $ cd ..
diff --git a/tests/test-setdiscovery.t b/tests/test-setdiscovery.t
index cca197d..72d0d87 100644
--- a/tests/test-setdiscovery.t
+++ b/tests/test-setdiscovery.t
@@ -288,7 +288,7 @@ One with >200 heads, which used to use up all of the sample:
reading DAG from stdin
$ hg heads -t --template . | wc -c
- \s*261 (re)
+ *261 (re)
$ hg clone -b a . a
adding changesets
@@ -324,4 +324,3 @@ One with >200 heads, which used to use up all of the sample:
5 total queries
common heads: 3ee37d65064a
- $ cd ..
diff --git a/tests/test-share.t b/tests/test-share.t
index 0eb755f..ba20b02 100644
--- a/tests/test-share.t
+++ b/tests/test-share.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
$ echo "[extensions]" >> $HGRCPATH
$ echo "share = " >> $HGRCPATH
@@ -27,16 +26,7 @@ share shouldn't have a store dir
Some sed versions appends newline, some don't, and some just fails
$ cat .hg/sharedpath; echo
- $TESTTMP/repo1/.hg (glob)
-
-trailing newline on .hg/sharedpath is ok
- $ hg tip -q
- 0:d3873e73d99e
- $ echo '' >> .hg/sharedpath
- $ cat .hg/sharedpath
- $TESTTMP/repo1/.hg (glob)
- $ hg tip -q
- 0:d3873e73d99e
+ $TESTTMP/repo1/.hg
commit in shared clone
@@ -99,7 +89,7 @@ hg serve shared clone
$ hg serve -n test -p $HGPORT -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
- $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'raw-file/'
+ $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-file/'
200 Script output follows
@@ -107,23 +97,3 @@ hg serve shared clone
-rw-r--r-- 2 b
-
-test unshare command
-
- $ hg unshare
- $ test -d .hg/store
- $ test -f .hg/sharedpath
- [1]
- $ hg unshare
- abort: this is not a shared repo
- [255]
-
-check that a change does not propagate
-
- $ echo b >> b
- $ hg commit -m'change in unshared'
- $ cd ../repo1
- $ hg id -r tip
- c2e0ac586386 tip
-
- $ cd ..
diff --git a/tests/test-simple-update.t b/tests/test-simple-update.t
index 080bdc7..f87d9ca 100644
--- a/tests/test-simple-update.t
+++ b/tests/test-simple-update.t
@@ -54,5 +54,3 @@ update to rev 0 with a date
$ hg upd -d foo 0
abort: you can't specify a revision and a date
[255]
-
- $ cd ..
diff --git a/tests/test-simplemerge.py b/tests/test-simplemerge.py
index fb6add0..9746d00 100644
--- a/tests/test-simplemerge.py
+++ b/tests/test-simplemerge.py
@@ -11,7 +11,8 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import unittest
from unittest import TestCase
diff --git a/tests/test-ssh-clone-r.t b/tests/test-ssh-clone-r.t
index 4c1dff2..02bd316 100644
--- a/tests/test-ssh-clone-r.t
+++ b/tests/test-ssh-clone-r.t
@@ -4,7 +4,7 @@ creating 'remote' repo
$ hg init remote
$ cd remote
- $ hg unbundle "$TESTDIR/bundles/remote.hg"
+ $ hg unbundle $TESTDIR/bundles/remote.hg
adding changesets
adding manifests
adding file changes
@@ -17,7 +17,7 @@ creating 'remote' repo
clone remote via stream
$ for i in 0 1 2 3 4 5 6 7 8; do
- > hg clone -e "python \"$TESTDIR/dummyssh\"" --uncompressed -r "$i" ssh://user@dummy/remote test-"$i"
+ > hg clone -e "python $TESTDIR/dummyssh" --uncompressed -r "$i" ssh://user@dummy/remote test-"$i"
> if cd test-"$i"; then
> hg verify
> cd ..
@@ -139,7 +139,7 @@ clone remote via stream
4 files, 9 changesets, 7 total revisions
$ cd ..
$ cd test-1
- $ hg pull -e "python \"$TESTDIR/dummyssh\"" -r 4 ssh://user@dummy/remote
+ $ hg pull -e "python $TESTDIR/dummyssh" -r 4 ssh://user@dummy/remote
pulling from ssh://user@dummy/remote
searching for changes
adding changesets
@@ -153,7 +153,7 @@ clone remote via stream
crosschecking files in changesets and manifests
checking files
1 files, 3 changesets, 2 total revisions
- $ hg pull -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote
+ $ hg pull -e "python $TESTDIR/dummyssh" ssh://user@dummy/remote
pulling from ssh://user@dummy/remote
searching for changes
adding changesets
@@ -163,7 +163,7 @@ clone remote via stream
(run 'hg update' to get a working copy)
$ cd ..
$ cd test-2
- $ hg pull -e "python \"$TESTDIR/dummyssh\"" -r 5 ssh://user@dummy/remote
+ $ hg pull -e "python $TESTDIR/dummyssh" -r 5 ssh://user@dummy/remote
pulling from ssh://user@dummy/remote
searching for changes
adding changesets
@@ -177,7 +177,7 @@ clone remote via stream
crosschecking files in changesets and manifests
checking files
1 files, 5 changesets, 3 total revisions
- $ hg pull -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote
+ $ hg pull -e "python $TESTDIR/dummyssh" ssh://user@dummy/remote
pulling from ssh://user@dummy/remote
searching for changes
adding changesets
@@ -191,5 +191,3 @@ clone remote via stream
crosschecking files in changesets and manifests
checking files
4 files, 9 changesets, 7 total revisions
-
- $ cd ..
diff --git a/tests/test-ssh.t b/tests/test-ssh.t
index 169473d..3a3b636 100644
--- a/tests/test-ssh.t
+++ b/tests/test-ssh.t
@@ -14,27 +14,27 @@ creating 'remote' repo
> uncompressed = True
>
> [hooks]
- > changegroup = python "$TESTDIR/printenv.py" changegroup-in-remote 0 ../dummylog
+ > changegroup = python "$TESTDIR"/printenv.py changegroup-in-remote 0 ../dummylog
> EOF
$ cd ..
repo not found error
- $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/nonexistent local
- remote: abort: there is no Mercurial repository here (.hg not found)!
+ $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy/nonexistent local
+ remote: abort: There is no Mercurial repository here (.hg not found)!
abort: no suitable response from remote hg!
[255]
non-existent absolute path
- $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy//`pwd`/nonexistent local
- remote: abort: there is no Mercurial repository here (.hg not found)!
+ $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy//`pwd`/nonexistent local
+ remote: abort: There is no Mercurial repository here (.hg not found)!
abort: no suitable response from remote hg!
[255]
clone remote via stream
- $ hg clone -e "python \"$TESTDIR/dummyssh\"" --uncompressed ssh://user@dummy/remote local-stream
+ $ hg clone -e "python $TESTDIR/dummyssh" --uncompressed ssh://user@dummy/remote local-stream
streaming all changes
4 files to transfer, 392 bytes of data
transferred 392 bytes in * seconds (*/sec) (glob)
@@ -51,7 +51,7 @@ clone remote via stream
clone remote via pull
- $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote local
+ $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy/remote local
requesting all changes
adding changesets
adding manifests
@@ -70,13 +70,13 @@ verify
checking files
2 files, 1 changesets, 2 total revisions
$ echo '[hooks]' >> .hg/hgrc
- $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup-in-local 0 ../dummylog" >> .hg/hgrc
+ $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup-in-local 0 ../dummylog' >> .hg/hgrc
empty default pull
$ hg paths
default = ssh://user@dummy/remote
- $ hg pull -e "python \"$TESTDIR/dummyssh\""
+ $ hg pull -e "python $TESTDIR/dummyssh"
pulling from ssh://user@dummy/remote
searching for changes
no changes found
@@ -90,7 +90,7 @@ updating rc
$ echo "default-push = ssh://user@dummy/remote" >> .hg/hgrc
$ echo "[ui]" >> .hg/hgrc
- $ echo "ssh = python \"$TESTDIR/dummyssh\"" >> .hg/hgrc
+ $ echo "ssh = python $TESTDIR/dummyssh" >> .hg/hgrc
find outgoing
@@ -106,7 +106,7 @@ find outgoing
find incoming on the remote side
- $ hg incoming -R ../remote -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/local
+ $ hg incoming -R ../remote -e "python $TESTDIR/dummyssh" ssh://user@dummy/local
comparing with ssh://user@dummy/local
searching for changes
changeset: 1:a28a9d1a809c
@@ -118,7 +118,7 @@ find incoming on the remote side
find incoming on the remote side (using absolute path)
- $ hg incoming -R ../remote -e "python \"$TESTDIR/dummyssh\"" "ssh://user@dummy/`pwd`"
+ $ hg incoming -R ../remote -e "python $TESTDIR/dummyssh" "ssh://user@dummy/`pwd`"
comparing with ssh://user@dummy/$TESTTMP/local
searching for changes
changeset: 1:a28a9d1a809c
@@ -163,9 +163,8 @@ check remote tip
test pushkeys and bookmarks
$ cd ../local
- $ hg debugpushkey --config ui.ssh="python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote namespaces
+ $ hg debugpushkey --config ui.ssh="python $TESTDIR/dummyssh" ssh://user@dummy/remote namespaces
bookmarks
- phases
namespaces
$ hg book foo -r 0
$ hg out -B
@@ -177,8 +176,7 @@ test pushkeys and bookmarks
searching for changes
no changes found
exporting bookmark foo
- [1]
- $ hg debugpushkey --config ui.ssh="python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote bookmarks
+ $ hg debugpushkey --config ui.ssh="python $TESTDIR/dummyssh" ssh://user@dummy/remote bookmarks
foo 1160648e36cec0054048a7edc4110c6f84fde594
$ hg book -f foo
$ hg push --traceback
@@ -186,7 +184,6 @@ test pushkeys and bookmarks
searching for changes
no changes found
updating bookmark foo
- [1]
$ hg book -d foo
$ hg in -B
comparing with ssh://user@dummy/remote
@@ -204,7 +201,6 @@ test pushkeys and bookmarks
searching for changes
no changes found
deleting remote bookmark foo
- [1]
a bad, evil hook that prints to stdout
@@ -249,7 +245,7 @@ clone bookmarks
$ hg -R ../remote bookmark test
$ hg -R ../remote bookmarks
* test 2:6c0482d977a3
- $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote local-bookmarks
+ $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy/remote local-bookmarks
requesting all changes
adding changesets
adding manifests
@@ -270,85 +266,6 @@ results here)
[255]
$ cd ..
-
-hide outer repo
- $ hg init
-
-Test remote paths with spaces (issue2983):
-
- $ hg init --ssh "python \"$TESTDIR/dummyssh\"" "ssh://user@dummy/a repo"
- $ touch "$TESTTMP/a repo/test"
- $ hg -R 'a repo' commit -A -m "test"
- adding test
- $ hg -R 'a repo' tag tag
- $ hg id --ssh "python \"$TESTDIR/dummyssh\"" "ssh://user@dummy/a repo"
- 73649e48688a
-
-Test hg-ssh using a helper script that will restore PYTHONPATH (which might
-have been cleared by a hg.exe wrapper) and invoke hg-ssh with the right
-parameters:
-
- $ cat > ssh.sh << EOF
- > userhost="\$1"
- > SSH_ORIGINAL_COMMAND="\$2"
- > export SSH_ORIGINAL_COMMAND
- > PYTHONPATH="$PYTHONPATH"
- > export PYTHONPATH
- > python "$TESTDIR/../contrib/hg-ssh" "$TESTTMP/a repo"
- > EOF
-
- $ hg id --ssh "sh ssh.sh" "ssh://user@dummy/a repo"
- 73649e48688a
-
- $ hg id --ssh "sh ssh.sh" "ssh://user@dummy/a'repo"
- remote: Illegal repository "$TESTTMP/a'repo" (glob)
- abort: no suitable response from remote hg!
- [255]
-
- $ hg id --ssh "sh ssh.sh" --remotecmd hacking "ssh://user@dummy/a'repo"
- remote: Illegal command "hacking -R 'a'\''repo' serve --stdio"
- abort: no suitable response from remote hg!
- [255]
-
- $ SSH_ORIGINAL_COMMAND="'hg' -R 'a'repo' serve --stdio" python "$TESTDIR/../contrib/hg-ssh"
- Illegal command "'hg' -R 'a'repo' serve --stdio": No closing quotation
- [255]
-
-Test hg-ssh in read-only mode:
-
- $ cat > ssh.sh << EOF
- > userhost="\$1"
- > SSH_ORIGINAL_COMMAND="\$2"
- > export SSH_ORIGINAL_COMMAND
- > PYTHONPATH="$PYTHONPATH"
- > export PYTHONPATH
- > python "$TESTDIR/../contrib/hg-ssh" --read-only "$TESTTMP/remote"
- > EOF
-
- $ hg clone --ssh "sh ssh.sh" "ssh://user@dummy/$TESTTMP/remote" read-only-local
- requesting all changes
- adding changesets
- adding manifests
- adding file changes
- added 4 changesets with 5 changes to 4 files (+1 heads)
- updating to branch default
- 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
- $ cd read-only-local
- $ echo "baz" > bar
- $ hg ci -A -m "unpushable commit" bar
- $ hg push --ssh "sh ../ssh.sh"
- pushing to ssh://user@dummy/*/remote (glob)
- searching for changes
- remote: Permission denied
- remote: abort: prechangegroup.hg-ssh hook failed
- remote: Permission denied
- remote: abort: prepushkey.hg-ssh hook failed
- abort: unexpected response: empty string
- [255]
-
- $ cd ..
-
$ cat dummylog
Got arguments 1:user@dummy 2:hg -R nonexistent serve --stdio
Got arguments 1:user@dummy 2:hg -R /$TESTTMP/nonexistent serve --stdio
@@ -359,7 +276,7 @@ Test hg-ssh in read-only mode:
Got arguments 1:user@dummy 2:hg -R local serve --stdio
Got arguments 1:user@dummy 2:hg -R $TESTTMP/local serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
- changegroup-in-remote hook: HG_NODE=a28a9d1a809cab7d4e2fde4bee738a9ede948b60 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1
+ changegroup-in-remote hook: HG_NODE=a28a9d1a809cab7d4e2fde4bee738a9ede948b60 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
@@ -369,8 +286,5 @@ Test hg-ssh in read-only mode:
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
- changegroup-in-remote hook: HG_NODE=1383141674ec756a6056f6a9097618482fe0f4a6 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1
+ changegroup-in-remote hook: HG_NODE=1383141674ec756a6056f6a9097618482fe0f4a6 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
- Got arguments 1:user@dummy 2:hg init 'a repo'
- Got arguments 1:user@dummy 2:hg -R 'a repo' serve --stdio
- Got arguments 1:user@dummy 2:hg -R 'a repo' serve --stdio
diff --git a/tests/test-static-http.t b/tests/test-static-http.t
index ed9ab54..d454fbf 100644
--- a/tests/test-static-http.t
+++ b/tests/test-static-http.t
@@ -1,14 +1,7 @@
- $ "$TESTDIR/hghave" serve || exit 80
-#if windows
- $ hg clone http://localhost:$HGPORT/ copy
- abort: * (glob)
- [255]
-#else
$ hg clone http://localhost:$HGPORT/ copy
abort: error: Connection refused
[255]
-#endif
$ test -d copy
[1]
@@ -72,7 +65,7 @@ check for HTTP opener failures when cachefile does not exist
$ rm .hg/cache/*
$ cd ../local
$ echo '[hooks]' >> .hg/hgrc
- $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup" >> .hg/hgrc
+ $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup' >> .hg/hgrc
$ hg pull
pulling from static-http://localhost:$HGPORT/remote
searching for changes
@@ -80,7 +73,7 @@ check for HTTP opener failures when cachefile does not exist
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
+ 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
@@ -91,7 +84,7 @@ trying to push
$ hg commit -m"test"
$ hg push
pushing to static-http://localhost:$HGPORT/remote
- abort: destination does not support push
+ abort: cannot lock static-http repository
[255]
trying clone -r
@@ -112,9 +105,6 @@ test with "/" URI (issue 747) and subrepo
$ hg init
$ hg init sub
- $ touch sub/test
- $ hg -R sub commit -A -m "test"
- adding test
$ hg -R sub tag not-empty
$ echo sub=sub > .hgsub
$ echo a > a
@@ -132,7 +122,7 @@ test with "/" URI (issue 747) and subrepo
adding changesets
adding manifests
adding file changes
- added 2 changesets with 2 changes to 2 files
+ 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
diff --git a/tests/test-status-color.t b/tests/test-status-color.t
index f7917f7..0c8af2b 100644
--- a/tests/test-status-color.t
+++ b/tests/test-status-color.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" tic || exit 80
-
$ echo "[extensions]" >> $HGRCPATH
$ echo "color=" >> $HGRCPATH
$ echo "[color]" >> $HGRCPATH
@@ -136,7 +134,7 @@ hg status:
hg status modified added removed deleted unknown never-existed ignored:
$ hg status --color=always modified added removed deleted unknown never-existed ignored
- never-existed: * (glob)
+ never-existed: No such file or directory
\x1b[0;32;1mA added\x1b[0m (esc)
\x1b[0;31;1mR removed\x1b[0m (esc)
\x1b[0;36;1;4m! deleted\x1b[0m (esc)
@@ -169,9 +167,9 @@ hg status -A:
hg status -A (with terminfo color):
- $ mkdir "$TESTTMP/terminfo"
- $ TERMINFO="$TESTTMP/terminfo" tic "$TESTDIR/hgterm.ti"
- $ TERM=hgterm TERMINFO="$TESTTMP/terminfo" hg status --config color.mode=terminfo --color=always -A
+ $ mkdir $TESTTMP/terminfo
+ $ TERMINFO=$TESTTMP/terminfo tic $TESTDIR/hgterm.ti
+ $ TERM=hgterm TERMINFO=$TESTTMP/terminfo hg status --config color.mode=terminfo --color=always -A
\x1b[30m\x1b[32m\x1b[1mA added\x1b[30m (esc)
\x1b[30m\x1b[32m\x1b[1mA copied\x1b[30m (esc)
\x1b[30m\x1b[30m modified\x1b[30m (esc)
@@ -282,10 +280,10 @@ test 'resolve -l'
$ hg merge
merging a
warning: conflicts during merge.
- merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging a failed!
merging b
warning: conflicts during merge.
- merging b incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging b failed!
0 files updated, 0 files merged, 0 files removed, 2 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
@@ -296,5 +294,3 @@ hg resolve with one unresolved, one resolved:
$ hg resolve --color=always -l
\x1b[0;31;1mU a\x1b[0m (esc)
\x1b[0;32;1mR b\x1b[0m (esc)
-
- $ cd ..
diff --git a/tests/test-status.t b/tests/test-status.t
index 8de94a1..1f36b34 100644
--- a/tests/test-status.t
+++ b/tests/test-status.t
@@ -127,7 +127,7 @@ hg status:
hg status modified added removed deleted unknown never-existed ignored:
$ hg status modified added removed deleted unknown never-existed ignored
- never-existed: * (glob)
+ never-existed: No such file or directory
A added
R removed
! deleted
@@ -263,71 +263,12 @@ hg status -C --change 1 added modified copied removed deleted:
modified
R removed
-hg status -A --change 1 and revset:
+hg status -A --change 1:
- $ hg status -A --change '1|1'
+ $ hg status -A --change 1
M modified
A added
A copied
modified
R removed
C deleted
-
- $ cd ..
-
-hg status of binary file starting with '\1\n', a separator for metadata:
-
- $ hg init repo5
- $ cd repo5
- >>> open("010a", "wb").write("\1\nfoo")
- $ hg ci -q -A -m 'initial checkin'
- $ hg status -A
- C 010a
-
- >>> open("010a", "wb").write("\1\nbar")
- $ hg status -A
- M 010a
- $ hg ci -q -m 'modify 010a'
- $ hg status -A --rev 0:1
- M 010a
-
- $ touch empty
- $ hg ci -q -A -m 'add another file'
- $ hg status -A --rev 1:2 010a
- C 010a
-
- $ cd ..
-
-test "hg status" with "directory pattern" which matches against files
-only known on target revision.
-
- $ hg init repo6
- $ cd repo6
-
- $ echo a > a.txt
- $ hg add a.txt
- $ hg commit -m '#0'
- $ mkdir -p 1/2/3/4/5
- $ echo b > 1/2/3/4/5/b.txt
- $ hg add 1/2/3/4/5/b.txt
- $ hg commit -m '#1'
-
- $ hg update -C 0 > /dev/null
- $ hg status -A
- C a.txt
-
-the directory matching against specified pattern should be removed,
-because directory existence prevents 'dirstate.walk()' from showing
-warning message about such pattern.
-
- $ test ! -d 1
- $ hg status -A --rev 1 1/2/3/4/5/b.txt
- R 1/2/3/4/5/b.txt
- $ hg status -A --rev 1 1/2/3/4/5
- R 1/2/3/4/5/b.txt
- $ hg status -A --rev 1 1/2/3
- R 1/2/3/4/5/b.txt
- $ hg status -A --rev 1 1
- R 1/2/3/4/5/b.txt
-
- $ cd ..
diff --git a/tests/test-strict.t b/tests/test-strict.t
index 0e108cb..4612046 100644
--- a/tests/test-strict.t
+++ b/tests/test-strict.t
@@ -7,9 +7,6 @@
$ hg an a
0: a
- $ hg --config ui.strict=False an a
- 0: a
-
$ echo "[ui]" >> $HGRCPATH
$ echo "strict=True" >> $HGRCPATH
@@ -19,24 +16,23 @@
basic commands:
- add add the specified files on the next commit
- annotate show changeset information by line for each file
- clone make a copy of an existing repository
- commit commit the specified files or all outstanding changes
- diff diff repository (or selected files)
- export dump the header and diffs for one or more changesets
- forget forget the specified files on the next commit
- init create a new repository in the given directory
- log show revision history of entire repository or files
- merge merge working directory with another revision
- phase set or show the current phase name
- pull pull changes from the specified source
- push push changes to the specified destination
- remove remove the specified files on the next commit
- serve start stand-alone webserver
- status show changed files in the working directory
- summary summarize working directory state
- update update working directory (or switch revisions)
+ add add the specified files on the next commit
+ annotate show changeset information by line for each file
+ clone make a copy of an existing repository
+ commit commit the specified files or all outstanding changes
+ diff diff repository (or selected files)
+ export dump the header and diffs for one or more changesets
+ forget forget the specified files on the next commit
+ init create a new repository in the given directory
+ log show revision history of entire repository or files
+ merge merge working directory with another revision
+ pull pull changes from the specified source
+ push push changes to the specified destination
+ remove remove the specified files on the next commit
+ serve start stand-alone webserver
+ status show changed files in the working directory
+ summary summarize working directory state
+ update update working directory (or switch revisions)
use "hg help" for the full list of commands or "hg -v" for details
[255]
diff --git a/tests/test-strip-cross.t b/tests/test-strip-cross.t
index 95bc17b..dbc584f 100644
--- a/tests/test-strip-cross.t
+++ b/tests/test-strip-cross.t
@@ -34,12 +34,12 @@ test stripping of filelogs where the linkrev doesn't always increase
$ hg clone -q -U -r -1 -r -2 -r -3 -r -4 -r -6 orig crossed
$ cd crossed
$ hg debugindex --manifest
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 112 ..... 0 6f105cbb914d 000000000000 000000000000 (re)
- 1 112 56 ..... 3 1b55917b3699 000000000000 000000000000 (re)
- 2 168 123 ..... 1 8f3d04e263e5 000000000000 000000000000 (re)
- 3 291 122 ..... 2 f0ef8726ac4f 000000000000 000000000000 (re)
- 4 413 87 ..... 4 0b76e38b4070 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 112 0 0 6f105cbb914d 000000000000 000000000000
+ 1 112 56 1 3 1b55917b3699 000000000000 000000000000
+ 2 168 123 1 1 8f3d04e263e5 000000000000 000000000000
+ 3 291 122 1 2 f0ef8726ac4f 000000000000 000000000000
+ 4 413 87 4 4 0b76e38b4070 000000000000 000000000000
$ for i in 012 021 102 120 201 210 manifest-file; do
> echo $i
@@ -47,45 +47,45 @@ test stripping of filelogs where the linkrev doesn't always increase
> echo
> done
012
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 0 b8e02f643373 000000000000 000000000000 (re)
- 1 3 3 ..... 1 5d9299349fc0 000000000000 000000000000 (re)
- 2 6 3 ..... 2 2661d26c6496 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 0 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 1 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 2 2661d26c6496 000000000000 000000000000
021
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 0 b8e02f643373 000000000000 000000000000 (re)
- 1 3 3 ..... 2 5d9299349fc0 000000000000 000000000000 (re)
- 2 6 3 ..... 1 2661d26c6496 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 0 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 2 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 1 2661d26c6496 000000000000 000000000000
102
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 1 b8e02f643373 000000000000 000000000000 (re)
- 1 3 3 ..... 0 5d9299349fc0 000000000000 000000000000 (re)
- 2 6 3 ..... 2 2661d26c6496 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 1 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 0 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 2 2661d26c6496 000000000000 000000000000
120
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 1 b8e02f643373 000000000000 000000000000 (re)
- 1 3 3 ..... 2 5d9299349fc0 000000000000 000000000000 (re)
- 2 6 3 ..... 0 2661d26c6496 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 1 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 2 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 0 2661d26c6496 000000000000 000000000000
201
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 2 b8e02f643373 000000000000 000000000000 (re)
- 1 3 3 ..... 0 5d9299349fc0 000000000000 000000000000 (re)
- 2 6 3 ..... 1 2661d26c6496 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 2 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 0 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 1 2661d26c6496 000000000000 000000000000
210
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 2 b8e02f643373 000000000000 000000000000 (re)
- 1 3 3 ..... 1 5d9299349fc0 000000000000 000000000000 (re)
- 2 6 3 ..... 0 2661d26c6496 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 2 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 1 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 0 2661d26c6496 000000000000 000000000000
manifest-file
- rev offset length ..... linkrev nodeid p1 p2 (re)
- 0 0 3 ..... 3 b8e02f643373 000000000000 000000000000 (re)
- 1 3 3 ..... 4 5d9299349fc0 000000000000 000000000000 (re)
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 3 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 4 5d9299349fc0 000000000000 000000000000
$ cd ..
$ for i in 0 1 2 3 4; do
diff --git a/tests/test-subrepo-deep-nested-change.t b/tests/test-subrepo-deep-nested-change.t
index aa79c87..0e8a60d 100644
--- a/tests/test-subrepo-deep-nested-change.t
+++ b/tests/test-subrepo-deep-nested-change.t
@@ -3,7 +3,7 @@ Preparing the subrepository 'sub2'
$ hg init sub2
$ echo sub2 > sub2/sub2
$ hg add -R sub2
- adding sub2/sub2 (glob)
+ adding sub2/sub2
$ hg commit -R sub2 -m "sub2 import"
Preparing the 'sub1' repo which depends on the subrepo 'sub2'
@@ -15,9 +15,10 @@ Preparing the 'sub1' repo which depends on the subrepo 'sub2'
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg add -R sub1
- adding sub1/.hgsub (glob)
- adding sub1/sub1 (glob)
+ adding sub1/.hgsub
+ adding sub1/sub1
$ hg commit -R sub1 -m "sub1 import"
+ committing subrepository sub2
Preparing the 'main' repo which depends on the subrepo 'sub1'
@@ -29,9 +30,10 @@ Preparing the 'main' repo which depends on the subrepo 'sub1'
cloning subrepo sub2 from $TESTTMP/sub2
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg add -R main
- adding main/.hgsub (glob)
- adding main/main (glob)
+ adding main/.hgsub
+ adding main/main
$ hg commit -R main -m "main import"
+ committing subrepository sub1
Cleaning both repositories, just as a clone -U
@@ -49,7 +51,7 @@ Clone main
$ hg clone main cloned
updating to branch default
cloning subrepo sub1 from $TESTTMP/sub1
- cloning subrepo sub1/sub2 from $TESTTMP/sub2 (glob)
+ cloning subrepo sub1/sub2 from $TESTTMP/sub2
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Checking cloned repo ids
@@ -75,9 +77,9 @@ debugsub output for main and sub1
Modifying deeply nested 'sub2'
$ echo modified > cloned/sub1/sub2/sub2
- $ hg commit --subrepos -m "deep nested modif should trigger a commit" -R cloned
+ $ hg commit -m "deep nested modif should trigger a commit" -R cloned
committing subrepository sub1
- committing subrepository sub1/sub2 (glob)
+ committing subrepository sub1/sub2
Checking modified node ids
@@ -98,167 +100,3 @@ debugsub output for main and sub1
path sub2
source ../sub2
revision 53dd3430bcaf5ab4a7c48262bcad6d441f510487
-
-Check that deep archiving works
-
- $ cd cloned
- $ echo 'test' > sub1/sub2/test.txt
- $ hg --config extensions.largefiles=! add sub1/sub2/test.txt
- $ mkdir sub1/sub2/folder
- $ echo 'subfolder' > sub1/sub2/folder/test.txt
- $ hg --config extensions.largefiles=! add sub1/sub2/folder/test.txt
- $ hg ci -Sm "add test.txt"
- committing subrepository sub1
- committing subrepository sub1/sub2 (glob)
- $ hg --config extensions.largefiles=! archive -S ../archive_all
- $ find ../archive_all | sort
- ../archive_all
- ../archive_all/.hg_archival.txt
- ../archive_all/.hgsub
- ../archive_all/.hgsubstate
- ../archive_all/main
- ../archive_all/sub1
- ../archive_all/sub1/.hgsub
- ../archive_all/sub1/.hgsubstate
- ../archive_all/sub1/sub1
- ../archive_all/sub1/sub2
- ../archive_all/sub1/sub2/folder
- ../archive_all/sub1/sub2/folder/test.txt
- ../archive_all/sub1/sub2/sub2
- ../archive_all/sub1/sub2/test.txt
-
-Check that archive -X works in deep subrepos
-
- $ hg --config extensions.largefiles=! archive -S -X '**test*' ../archive_exclude
- $ find ../archive_exclude | sort
- ../archive_exclude
- ../archive_exclude/.hg_archival.txt
- ../archive_exclude/.hgsub
- ../archive_exclude/.hgsubstate
- ../archive_exclude/main
- ../archive_exclude/sub1
- ../archive_exclude/sub1/.hgsub
- ../archive_exclude/sub1/.hgsubstate
- ../archive_exclude/sub1/sub1
- ../archive_exclude/sub1/sub2
- ../archive_exclude/sub1/sub2/sub2
-
- $ hg --config extensions.largefiles=! archive -S -I '**test*' ../archive_include
- $ find ../archive_include | sort
- ../archive_include
- ../archive_include/sub1
- ../archive_include/sub1/sub2
- ../archive_include/sub1/sub2/folder
- ../archive_include/sub1/sub2/folder/test.txt
- ../archive_include/sub1/sub2/test.txt
-
-Check that deep archive works with largefiles (which overrides hgsubrepo impl)
-This also tests the repo.ui regression in 43fb170a23bd, and that lf subrepo
-subrepos are archived properly.
-Note that add --large through a subrepo currently adds the file as a normal file
-
- $ echo "large" > sub1/sub2/large.bin
- $ hg --config extensions.largefiles= add --large -R sub1/sub2 sub1/sub2/large.bin
- $ echo "large" > large.bin
- $ hg --config extensions.largefiles= add --large large.bin
- $ hg --config extensions.largefiles= ci -S -m "add large files"
- committing subrepository sub1
- committing subrepository sub1/sub2 (glob)
-
- $ hg --config extensions.largefiles= archive -S ../archive_lf
- $ find ../archive_lf | sort
- ../archive_lf
- ../archive_lf/.hg_archival.txt
- ../archive_lf/.hgsub
- ../archive_lf/.hgsubstate
- ../archive_lf/large.bin
- ../archive_lf/main
- ../archive_lf/sub1
- ../archive_lf/sub1/.hgsub
- ../archive_lf/sub1/.hgsubstate
- ../archive_lf/sub1/sub1
- ../archive_lf/sub1/sub2
- ../archive_lf/sub1/sub2/folder
- ../archive_lf/sub1/sub2/folder/test.txt
- ../archive_lf/sub1/sub2/large.bin
- ../archive_lf/sub1/sub2/sub2
- ../archive_lf/sub1/sub2/test.txt
- $ rm -rf ../archive_lf
-
-Exclude large files from main and sub-sub repo
-
- $ hg --config extensions.largefiles= archive -S -X '**.bin' ../archive_lf
- $ find ../archive_lf | sort
- ../archive_lf
- ../archive_lf/.hg_archival.txt
- ../archive_lf/.hgsub
- ../archive_lf/.hgsubstate
- ../archive_lf/main
- ../archive_lf/sub1
- ../archive_lf/sub1/.hgsub
- ../archive_lf/sub1/.hgsubstate
- ../archive_lf/sub1/sub1
- ../archive_lf/sub1/sub2
- ../archive_lf/sub1/sub2/folder
- ../archive_lf/sub1/sub2/folder/test.txt
- ../archive_lf/sub1/sub2/sub2
- ../archive_lf/sub1/sub2/test.txt
- $ rm -rf ../archive_lf
-
-Exclude normal files from main and sub-sub repo
-
- $ hg --config extensions.largefiles= archive -S -X '**.txt' ../archive_lf
- $ find ../archive_lf | sort
- ../archive_lf
- ../archive_lf/.hgsub
- ../archive_lf/.hgsubstate
- ../archive_lf/large.bin
- ../archive_lf/main
- ../archive_lf/sub1
- ../archive_lf/sub1/.hgsub
- ../archive_lf/sub1/.hgsubstate
- ../archive_lf/sub1/sub1
- ../archive_lf/sub1/sub2
- ../archive_lf/sub1/sub2/large.bin
- ../archive_lf/sub1/sub2/sub2
- $ rm -rf ../archive_lf
-
-Include normal files from within a largefiles subrepo
-
- $ hg --config extensions.largefiles= archive -S -I '**.txt' ../archive_lf
- $ find ../archive_lf | sort
- ../archive_lf
- ../archive_lf/.hg_archival.txt
- ../archive_lf/sub1
- ../archive_lf/sub1/sub2
- ../archive_lf/sub1/sub2/folder
- ../archive_lf/sub1/sub2/folder/test.txt
- ../archive_lf/sub1/sub2/test.txt
- $ rm -rf ../archive_lf
-
-Include large files from within a largefiles subrepo
-
- $ hg --config extensions.largefiles= archive -S -I '**.bin' ../archive_lf
- $ find ../archive_lf | sort
- ../archive_lf
- ../archive_lf/large.bin
- ../archive_lf/sub1
- ../archive_lf/sub1/sub2
- ../archive_lf/sub1/sub2/large.bin
- $ rm -rf ../archive_lf
-
-Find an exact largefile match in a largefiles subrepo
-
- $ hg --config extensions.largefiles= archive -S -I 'sub1/sub2/large.bin' ../archive_lf
- $ find ../archive_lf | sort
- ../archive_lf
- ../archive_lf/sub1
- ../archive_lf/sub1/sub2
- ../archive_lf/sub1/sub2/large.bin
- $ rm -rf ../archive_lf
-
-Find an exact match to a standin (should archive nothing)
- $ hg --config extensions.largefiles= archive -S -I 'sub/sub2/.hglf/large.bin' ../archive_lf
- $ find ../archive_lf 2> /dev/null | sort
-
- $ cd ..
diff --git a/tests/test-subrepo-git.t b/tests/test-subrepo-git.t
index 3f06a46..9fbe85e 100644
--- a/tests/test-subrepo-git.t
+++ b/tests/test-subrepo-git.t
@@ -2,8 +2,6 @@
make git commits repeatable
- $ echo "[core]" >> $HOME/.gitconfig
- $ echo "autocrlf = false" >> $HOME/.gitconfig
$ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
$ GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL
$ GIT_AUTHOR_DATE='1234567891 +0000'; export GIT_AUTHOR_DATE
@@ -36,6 +34,7 @@ add subrepo clone
$ git clone -q ../gitroot s
$ hg add .hgsub
$ hg commit -m 'new git subrepo'
+ committing subrepository s
$ hg debugsub
path s
source ../gitroot
@@ -56,6 +55,7 @@ record a new commit from upstream from a different branch
$ hg status --subrepos
M s/g
$ hg commit -m 'update git subrepo'
+ committing subrepository s
$ hg debugsub
path s
source ../gitroot
@@ -103,7 +103,7 @@ clone root, make local change
$ echo ggg >> s/g
$ hg status --subrepos
M s/g
- $ hg commit --subrepos -m ggg
+ $ hg commit -m ggg
committing subrepository s
$ hg debugsub
path s
@@ -125,7 +125,7 @@ clone root separately, make different local change
$ hg status --subrepos
A s/f
- $ hg commit --subrepos -m f
+ $ hg commit -m f
committing subrepository s
$ hg debugsub
path s
@@ -135,7 +135,7 @@ clone root separately, make different local change
user b push changes
$ hg push 2>/dev/null
- pushing to $TESTTMP/t (glob)
+ pushing to $TESTTMP/t
pushing branch testing of subrepo s
searching for changes
adding changesets
@@ -147,7 +147,7 @@ user a pulls, merges, commits
$ cd ../ta
$ hg pull
- pulling from $TESTTMP/t (glob)
+ pulling from $TESTTMP/t
searching for changes
adding changesets
adding manifests
@@ -164,7 +164,7 @@ user a pulls, merges, commits
g
gg
ggg
- $ hg commit --subrepos -m 'merge'
+ $ hg commit -m 'merge'
committing subrepository s
$ hg status --subrepos --rev 1:5
M .hgsubstate
@@ -175,7 +175,7 @@ user a pulls, merges, commits
source ../gitroot
revision f47b465e1bce645dbf37232a00574aa1546ca8d3
$ hg push 2>/dev/null
- pushing to $TESTTMP/t (glob)
+ pushing to $TESTTMP/t
pushing branch testing of subrepo s
searching for changes
adding changesets
@@ -207,7 +207,7 @@ make and push changes to hg without updating the subrepo
$ echo aa >> a
$ hg commit -m aa
$ hg push
- pushing to $TESTTMP/t (glob)
+ pushing to $TESTTMP/t
searching for changes
adding changesets
adding manifests
@@ -222,6 +222,7 @@ sync to upstream git, distribute changes
$ git pull -q >/dev/null 2>/dev/null
$ cd ..
$ hg commit -m 'git upstream sync'
+ committing subrepository s
$ hg debugsub
path s
source ../gitroot
@@ -270,16 +271,6 @@ archive subrepos
gg
ggg
- $ hg -R ../tc archive --subrepo -r 5 -X ../tc/**f ../archive_x 2>/dev/null
- $ find ../archive_x | sort | grep -v pax_global_header
- ../archive_x
- ../archive_x/.hg_archival.txt
- ../archive_x/.hgsub
- ../archive_x/.hgsubstate
- ../archive_x/a
- ../archive_x/s
- ../archive_x/s/g
-
create nested repo
$ cd ..
@@ -296,15 +287,16 @@ create nested repo
$ echo inner = inner > .hgsub
$ hg add .hgsub
$ hg commit -m 'nested sub'
+ committing subrepository inner
nested commit
$ echo ffff >> inner/s/f
$ hg status --subrepos
M inner/s/f
- $ hg commit --subrepos -m nested
+ $ hg commit -m nested
committing subrepository inner
- committing subrepository inner/s (glob)
+ committing subrepository inner/s
nested archive
@@ -333,7 +325,7 @@ Don't crash if the subrepo is missing
$ hg push -q
abort: subrepo s is missing
[255]
- $ hg commit --subrepos -qm missing
+ $ hg commit -qm missing
abort: subrepo s is missing
[255]
$ hg update -C
@@ -347,41 +339,27 @@ Don't crash if the .hgsubstate entry is missing
$ hg update 1 -q
$ hg rm .hgsubstate
$ hg commit .hgsubstate -m 'no substate'
- nothing changed
- [1]
+ created new head
$ hg tag -l nosubstate
$ hg manifest
.hgsub
- .hgsubstate
a
$ hg status -S
- R .hgsubstate
$ hg sum | grep commit
- commit: 1 removed, 1 subrepos (new branch head)
+ commit: 1 subrepos
$ hg commit -m 'restore substate'
- nothing changed
- [1]
+ committing subrepository s
$ hg manifest
.hgsub
.hgsubstate
a
$ hg sum | grep commit
- commit: 1 removed, 1 subrepos (new branch head)
+ commit: (clean)
$ hg update -qC nosubstate
$ ls s
- g
-
-issue3109: false positives in git diff-index
-
- $ hg update -q
- $ touch -t 200001010000 s/g
- $ hg status --subrepos
- $ touch -t 200001010000 s/g
- $ hg sum | grep commit
- commit: (clean)
Check hg update --clean
$ cd $TESTTMP/ta
@@ -430,7 +408,7 @@ Sticky subrepositorys, file changes
$ git add f1
$ cd ..
$ hg id -n
- 1+
+ 1
$ cd s
$ git rev-parse HEAD
da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
@@ -487,14 +465,16 @@ Sticky subrepository, file changes and revision updates
l
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
- 7+
+ 7
$ cd s
$ git rev-parse HEAD
aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
$ cd ..
Sticky repository, update --clean
- $ hg update --clean tip 2>/dev/null
+ $ hg update --clean tip
+ Previous HEAD position was aa84837... f
+ HEAD is now at 32a3438... fff
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
7
@@ -519,16 +499,3 @@ Test subrepo already at intended revision:
da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
$ cd ..
-Test forgetting files, not implemented in git subrepo, used to
-traceback
-#if no-windows
- $ hg forget 'notafile*'
- notafile*: No such file or directory
- [1]
-#else
- $ hg forget 'notafile'
- notafile: * (glob)
- [1]
-#endif
-
- $ cd ..
diff --git a/tests/test-subrepo-missing.t b/tests/test-subrepo-missing.t
index fb6bca9..323efe8 100644
--- a/tests/test-subrepo-missing.t
+++ b/tests/test-subrepo-missing.t
@@ -7,26 +7,12 @@
$ echo 'subrepo = subrepo' > .hgsub
$ hg ci -Am addsubrepo
adding .hgsub
+ committing subrepository subrepo
$ echo b > subrepo/b
$ hg -R subrepo ci -Am addb
adding b
$ hg ci -m updatedsub
-
-ignore blanklines in .hgsubstate
-
- >>> file('.hgsubstate', 'wb').write('\n\n \t \n \n')
- $ hg st --subrepos
- M .hgsubstate
- $ hg revert -qC .hgsubstate
-
-abort more gracefully on .hgsubstate parsing error
-
- $ cp .hgsubstate .hgsubstate.old
- >>> file('.hgsubstate', 'wb').write('\ninvalid')
- $ hg st --subrepos
- abort: invalid subrepository revision specifier in .hgsubstate line 2
- [255]
- $ mv .hgsubstate.old .hgsubstate
+ committing subrepository subrepo
delete .hgsub and revert it
@@ -67,5 +53,3 @@ delete .hgsubstate and update
$ hg st
$ ls subrepo
a
-
- $ cd ..
diff --git a/tests/test-subrepo-paths.t b/tests/test-subrepo-paths.t
index fd5c9c9..b3f5931 100644
--- a/tests/test-subrepo-paths.t
+++ b/tests/test-subrepo-paths.t
@@ -1,23 +1,20 @@
$ hg init outer
$ cd outer
- $ echo '[paths]' >> .hg/hgrc
- $ echo 'default = http://example.net/' >> .hg/hgrc
-
hg debugsub with no remapping
- $ echo 'sub = libfoo' > .hgsub
+ $ echo 'sub = http://example.net/libfoo' > .hgsub
$ hg add .hgsub
$ hg debugsub
path sub
- source libfoo
+ source http://example.net/libfoo
revision
hg debugsub with remapping
- $ echo '[subpaths]' >> .hg/hgrc
- $ printf 'http://example.net/lib(.*) = C:\\libs\\\\1-lib\\\n' >> .hg/hgrc # no-check-code
+ $ echo '[subpaths]' > .hg/hgrc
+ $ printf 'http://example.net/lib(.*) = C:\\libs\\\\1-lib\\\n' >> .hg/hgrc
$ hg debugsub
path sub
@@ -33,21 +30,6 @@ test cumulative remapping, the $HGRCPATH file is loaded first
source C:\libs\bar-lib\
revision
-test absolute source path -- testing with a URL is important since
-standard os.path.join wont treat that as an absolute path
-
- $ echo 'abs = http://example.net/abs' > .hgsub
- $ hg debugsub
- path abs
- source http://example.net/abs
- revision
-
- $ echo 'abs = /abs' > .hgsub
- $ hg debugsub
- path abs
- source /abs
- revision
-
test bad subpaths pattern
$ cat > .hg/hgrc <<EOF
@@ -55,7 +37,5 @@ test bad subpaths pattern
> .* = \1
> EOF
$ hg debugsub
- abort: bad subrepository pattern in $TESTTMP/outer/.hg/hgrc:2: invalid group reference (glob)
+ abort: bad subrepository pattern in $TESTTMP/outer/.hg/hgrc:2: invalid group reference
[255]
-
- $ cd ..
diff --git a/tests/test-subrepo-recursion.t b/tests/test-subrepo-recursion.t
index fa419b3..c953cdf 100644
--- a/tests/test-subrepo-recursion.t
+++ b/tests/test-subrepo-recursion.t
@@ -23,10 +23,10 @@ Add files --- .hgsub files must go first to trigger subrepos:
$ hg add -S .hgsub
$ hg add -S foo/.hgsub
$ hg add -S foo/bar
- adding foo/bar/z.txt (glob)
+ adding foo/bar/z.txt
$ hg add -S
adding x.txt
- adding foo/y.txt (glob)
+ adding foo/y.txt
Test recursive status without committing anything:
@@ -58,16 +58,9 @@ Test recursive diff without committing anything:
Commits:
- $ hg commit -m fails
- abort: uncommitted changes in subrepo foo
- (use --subrepos for recursive commit)
- [255]
-
-The --subrepos flag overwrite the config setting:
-
- $ hg commit -m 0-0-0 --config ui.commitsubrepos=No --subrepos
+ $ hg commit -m 0-0-0
committing subrepository foo
- committing subrepository foo/bar (glob)
+ committing subrepository foo/bar
$ cd foo
$ echo y2 >> y.txt
@@ -79,9 +72,11 @@ The --subrepos flag overwrite the config setting:
$ cd ..
$ hg commit -m 0-2-1
+ committing subrepository bar
$ cd ..
$ hg commit -m 1-2-1
+ committing subrepository foo
Change working directory:
@@ -182,26 +177,9 @@ Status with relative path:
Cleanup and final commit:
$ rm -r dir
- $ hg commit --subrepos -m 2-3-2
+ $ hg commit -m 2-3-2
committing subrepository foo
- committing subrepository foo/bar (glob)
-
-Test explicit path commands within subrepos: add/forget
- $ echo z1 > foo/bar/z2.txt
- $ hg status -S
- ? foo/bar/z2.txt
- $ hg add foo/bar/z2.txt
- $ hg status -S
- A foo/bar/z2.txt
- $ hg forget foo/bar/z2.txt
- $ hg status -S
- ? foo/bar/z2.txt
- $ hg forget foo/bar/z2.txt
- not removing foo/bar/z2.txt: file is already untracked (glob)
- [1]
- $ hg status -S
- ? foo/bar/z2.txt
- $ rm foo/bar/z2.txt
+ committing subrepository foo/bar
Log with the relationships between repo and its subrepo:
@@ -260,7 +238,7 @@ Enable progress extension for archive tests:
Test archiving to a directory tree (the doubled lines in the output
only show up in the test output, not in real usage):
- $ hg archive --subrepos ../archive 2>&1 | "$TESTDIR/filtercr.py"
+ $ hg archive --subrepos ../archive 2>&1 | $TESTDIR/filtercr.py
archiving [ ] 0/3
archiving [ ] 0/3
@@ -280,10 +258,10 @@ only show up in the test output, not in real usage):
archiving (foo) [====================================>] 3/3
archiving (foo) [====================================>] 3/3
- archiving (foo/bar) [ ] 0/1 (glob)
- archiving (foo/bar) [ ] 0/1 (glob)
- archiving (foo/bar) [================================>] 1/1 (glob)
- archiving (foo/bar) [================================>] 1/1 (glob)
+ archiving (foo/bar) [ ] 0/1
+ archiving (foo/bar) [ ] 0/1
+ archiving (foo/bar) [================================>] 1/1
+ archiving (foo/bar) [================================>] 1/1
\r (esc)
$ find ../archive | sort
../archive
@@ -300,7 +278,7 @@ only show up in the test output, not in real usage):
Test archiving to zip file (unzip output is unstable):
- $ hg archive --subrepos ../archive.zip 2>&1 | "$TESTDIR/filtercr.py"
+ $ hg archive --subrepos ../archive.zip 2>&1 | $TESTDIR/filtercr.py
archiving [ ] 0/3
archiving [ ] 0/3
@@ -320,80 +298,27 @@ Test archiving to zip file (unzip output is unstable):
archiving (foo) [====================================>] 3/3
archiving (foo) [====================================>] 3/3
- archiving (foo/bar) [ ] 0/1 (glob)
- archiving (foo/bar) [ ] 0/1 (glob)
- archiving (foo/bar) [================================>] 1/1 (glob)
- archiving (foo/bar) [================================>] 1/1 (glob)
+ archiving (foo/bar) [ ] 0/1
+ archiving (foo/bar) [ ] 0/1
+ archiving (foo/bar) [================================>] 1/1
+ archiving (foo/bar) [================================>] 1/1
\r (esc)
-Test archiving a revision that references a subrepo that is not yet
-cloned:
-
- $ hg clone -U . ../empty
- $ cd ../empty
- $ hg archive --subrepos -r tip ../archive.tar.gz 2>&1 | "$TESTDIR/filtercr.py"
-
- archiving [ ] 0/3
- archiving [ ] 0/3
- archiving [=============> ] 1/3
- archiving [=============> ] 1/3
- archiving [===========================> ] 2/3
- archiving [===========================> ] 2/3
- archiving [==========================================>] 3/3
- archiving [==========================================>] 3/3
-
- archiving (foo) [ ] 0/3
- archiving (foo) [ ] 0/3
- archiving (foo) [===========> ] 1/3
- archiving (foo) [===========> ] 1/3
- archiving (foo) [=======================> ] 2/3
- archiving (foo) [=======================> ] 2/3
- archiving (foo) [====================================>] 3/3
- archiving (foo) [====================================>] 3/3
-
- archiving (foo/bar) [ ] 0/1 (glob)
- archiving (foo/bar) [ ] 0/1 (glob)
- archiving (foo/bar) [================================>] 1/1 (glob)
- archiving (foo/bar) [================================>] 1/1 (glob)
-
- cloning subrepo foo from $TESTTMP/repo/foo
- cloning subrepo foo/bar from $TESTTMP/repo/foo/bar (glob)
-
-The newly cloned subrepos contain no working copy:
-
- $ hg -R foo summary
- parent: -1:000000000000 (no revision checked out)
- branch: default
- commit: (clean)
- update: 4 new changesets (update)
-
Disable progress extension and cleanup:
$ mv $HGRCPATH.no-progress $HGRCPATH
-Test archiving when there is a directory in the way for a subrepo
-created by archive:
-
- $ hg clone -U . ../almost-empty
- $ cd ../almost-empty
- $ mkdir foo
- $ echo f > foo/f
- $ hg archive --subrepos -r tip archive
- cloning subrepo foo from $TESTTMP/empty/foo
- abort: destination '$TESTTMP/almost-empty/foo' is not empty (glob)
- [255]
-
Clone and test outgoing:
$ cd ..
$ hg clone repo repo2
updating to branch default
cloning subrepo foo from $TESTTMP/repo/foo
- cloning subrepo foo/bar from $TESTTMP/repo/foo/bar (glob)
+ cloning subrepo foo/bar from $TESTTMP/repo/foo/bar
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd repo2
$ hg outgoing -S
- comparing with $TESTTMP/repo (glob)
+ comparing with $TESTTMP/repo
searching for changes
no changes found
comparing with $TESTTMP/repo/foo
@@ -416,10 +341,10 @@ Make nested change:
y2
y3
+y4
- $ hg commit --subrepos -m 3-4-2
+ $ hg commit -m 3-4-2
committing subrepository foo
$ hg outgoing -S
- comparing with $TESTTMP/repo (glob)
+ comparing with $TESTTMP/repo
searching for changes
changeset: 3:2655b8ecc4ee
tag: tip
@@ -449,7 +374,7 @@ Switch to original repo and setup default path:
Test incoming:
$ hg incoming -S
- comparing with $TESTTMP/repo2 (glob)
+ comparing with $TESTTMP/repo2
searching for changes
changeset: 3:2655b8ecc4ee
tag: tip
@@ -490,5 +415,3 @@ The subrepo must sorts after the explicit filename.
$ hg add .hgsub
$ touch a x/a
$ hg add a x/a
-
- $ cd ..
diff --git a/tests/test-subrepo-relative-path.t b/tests/test-subrepo-relative-path.t
index e101511..f3fc8f5 100644
--- a/tests/test-subrepo-relative-path.t
+++ b/tests/test-subrepo-relative-path.t
@@ -1,11 +1,9 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
Preparing the subrepository 'sub'
$ hg init sub
$ echo sub > sub/sub
$ hg add -R sub
- adding sub/sub (glob)
+ adding sub/sub
$ hg commit -R sub -m "sub import"
Preparing the 'main' repo which depends on the subrepo 'sub'
@@ -17,9 +15,10 @@ Preparing the 'main' repo which depends on the subrepo 'sub'
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg add -R main
- adding main/.hgsub (glob)
- adding main/main (glob)
+ adding main/.hgsub
+ adding main/main
$ hg commit -R main -m "main import"
+ committing subrepository sub
Cleaning both repositories, just as a clone -U
@@ -29,9 +28,6 @@ Cleaning both repositories, just as a clone -U
0 files updated, 0 files merged, 3 files removed, 0 files unresolved
$ rm -rf main/sub
-hide outer repo
- $ hg init
-
Serving them both using hgweb
$ printf '[paths]\n/main = main\nsub = sub\n' > webdir.conf
@@ -74,7 +70,9 @@ subrepo debug for 'main' clone
subrepo paths with ssh urls
- $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/cloned sshclone
+ $ cp $TESTDIR/dummyssh $BINDIR/ssh
+
+ $ hg clone ssh://user@dummy/cloned sshclone
requesting all changes
adding changesets
adding manifests
@@ -89,17 +87,17 @@ subrepo paths with ssh urls
added 1 changesets with 1 changes to 1 files
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg -R sshclone push -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/`pwd`/cloned
+ $ hg -R sshclone push ssh://user@dummy/$TESTTMP/cloned
pushing to ssh://user@dummy/$TESTTMP/cloned
pushing subrepo sub to ssh://user@dummy/$TESTTMP/sub
searching for changes
no changes found
searching for changes
no changes found
- [1]
$ cat dummylog
Got arguments 1:user@dummy 2:hg -R cloned serve --stdio
Got arguments 1:user@dummy 2:hg -R sub serve --stdio
Got arguments 1:user@dummy 2:hg -R $TESTTMP/cloned serve --stdio
Got arguments 1:user@dummy 2:hg -R $TESTTMP/sub serve --stdio
+ $ rm $BINDIR/ssh
diff --git a/tests/test-subrepo-svn.t b/tests/test-subrepo-svn.t
index ba9611d..97bf860 100644
--- a/tests/test-subrepo-svn.t
+++ b/tests/test-subrepo-svn.t
@@ -1,38 +1,45 @@
- $ "$TESTDIR/hghave" svn15 || exit 80
+ $ "$TESTDIR/hghave" svn || exit 80
- $ SVNREPOPATH=`pwd`/svn-repo
-#if windows
- $ SVNREPOURL=file:///`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
-#else
- $ SVNREPOURL=file://`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
-#endif
+ $ fix_path()
+ > {
+ > tr '\\' /
+ > }
+
+SVN wants all paths to start with a slash. Unfortunately, Windows ones
+don't. Handle that.
+
+ $ escapedwd=`pwd | fix_path`
+ $ expr "$escapedwd" : '\/' > /dev/null || escapedwd="/$escapedwd"
+ $ escapedwd=`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$escapedwd"`
create subversion repo
+ $ SVNREPO="file://$escapedwd/svn-repo"
$ WCROOT="`pwd`/svn-wc"
$ svnadmin create svn-repo
- $ svn co "$SVNREPOURL" svn-wc
+ $ svn co "$SVNREPO" svn-wc
Checked out revision 0.
$ cd svn-wc
$ mkdir src
$ echo alpha > src/alpha
$ svn add src
A src
- A src/alpha (glob)
+ A src/alpha
$ mkdir externals
$ echo other > externals/other
$ svn add externals
A externals
- A externals/other (glob)
+ A externals/other
$ svn ci -m 'Add alpha'
Adding externals
- Adding externals/other (glob)
+ Adding externals/other
Adding src
- Adding src/alpha (glob)
+ Adding src/alpha
Transmitting file data ..
Committed revision 1.
- $ svn up -q
- $ echo "externals -r1 $SVNREPOURL/externals" > extdef
+ $ svn up
+ At revision 1.
+ $ echo "externals -r1 $SVNREPO/externals" > extdef
$ svn propset -F extdef svn:externals src
property 'svn:externals' set on 'src'
$ svn ci -m 'Setting externals'
@@ -56,13 +63,15 @@ first revision, no sub
add first svn sub with leading whitespaces
- $ echo "s = [svn] $SVNREPOURL/src" >> .hgsub
- $ echo "subdir/s = [svn] $SVNREPOURL/src" >> .hgsub
- $ svn co --quiet "$SVNREPOURL"/src s
+ $ echo "s = [svn] $SVNREPO/src" >> .hgsub
+ $ echo "subdir/s = [svn] $SVNREPO/src" >> .hgsub
+ $ svn co --quiet "$SVNREPO"/src s
$ mkdir subdir
- $ svn co --quiet "$SVNREPOURL"/src subdir/s
+ $ svn co --quiet "$SVNREPO"/src subdir/s
$ hg add .hgsub
$ hg ci -m1
+ committing subrepository s
+ committing subrepository subdir/s
make sure we avoid empty commits (issue2445)
@@ -96,13 +105,13 @@ change file in svn and hg, commit
branch: default
commit: 1 modified, 1 subrepos
update: (current)
- $ hg commit --subrepos -m 'Message!' | grep -v Updating
+ $ hg commit -m 'Message!'
committing subrepository s
Sending*s/alpha (glob)
Transmitting file data .
Committed revision 3.
- Fetching external item into '*s/externals'* (glob)
+ Fetching external item into '$TESTTMP/sub/t/s/externals'
External at revision 1.
At revision 3.
@@ -114,22 +123,18 @@ change file in svn and hg, commit
source file://*/svn-repo/src (glob)
revision 2
-missing svn file, commit should fail
-
- $ rm s/alpha
- $ hg commit --subrepos -m 'abort on missing file'
- committing subrepository s
- abort: cannot commit missing svn entries
- [255]
- $ svn revert s/alpha > /dev/null
-
add an unrelated revision in svn and update the subrepo to without
bringing any changes.
- $ svn mkdir "$SVNREPOURL/unrelated" -m 'create unrelated'
+ $ svn mkdir "$SVNREPO/unrelated" -m 'create unrelated'
Committed revision 4.
- $ svn up -q s
+ $ svn up s
+
+ Fetching external item into 's/externals'
+ External at revision 1.
+
+ At revision 4.
$ hg sum
parent: 2:* tip (glob)
Message!
@@ -145,13 +150,20 @@ should be empty despite change to s/a
add a commit from svn
- $ cd "$WCROOT/src"
- $ svn up -q
+ $ cd "$WCROOT"/src
+ $ svn up
+ U alpha
+
+ Fetching external item into 'externals'
+ A externals/other
+ Updated external to revision 1.
+
+ Updated to revision 4.
$ echo xyz >> alpha
$ svn propset svn:mime-type 'text/xml' alpha
property 'svn:mime-type' set on 'alpha'
$ svn ci -m 'amend a from svn'
- Sending *alpha (glob)
+ Sending src/alpha
Transmitting file data .
Committed revision 5.
$ cd ../../sub/t
@@ -159,26 +171,28 @@ add a commit from svn
this commit from hg will fail
$ echo zzz >> s/alpha
- $ (hg ci --subrepos -m 'amend alpha from hg' 2>&1; echo "[$?]") | grep -vi 'out of date'
+ $ hg ci -m 'amend alpha from hg'
committing subrepository s
- abort: svn:*Commit failed (details follow): (glob)
+ abort: svn: Commit failed (details follow):
+ svn: (Out of date)?.*/src/alpha.*(is out of date)? (re)
[255]
$ svn revert -q s/alpha
this commit fails because of meta changes
$ svn propset svn:mime-type 'text/html' s/alpha
- property 'svn:mime-type' set on 's/alpha' (glob)
- $ (hg ci --subrepos -m 'amend alpha from hg' 2>&1; echo "[$?]") | grep -vi 'out of date'
+ property 'svn:mime-type' set on 's/alpha'
+ $ hg ci -m 'amend alpha from hg'
committing subrepository s
- abort: svn:*Commit failed (details follow): (glob)
+ abort: svn: Commit failed (details follow):
+ svn: (Out of date)?.*/src/alpha.*(is out of date)? (re)
[255]
$ svn revert -q s/alpha
this commit fails because of externals changes
$ echo zzz > s/externals/other
- $ hg ci --subrepos -m 'amend externals from hg'
+ $ hg ci -m 'amend externals from hg'
committing subrepository s
abort: cannot commit svn externals
[255]
@@ -199,8 +213,8 @@ this commit fails because of externals changes
this commit fails because of externals meta changes
$ svn propset svn:mime-type 'text/html' s/externals/other
- property 'svn:mime-type' set on 's/externals/other' (glob)
- $ hg ci --subrepos -m 'amend externals from hg'
+ property 'svn:mime-type' set on 's/externals/other'
+ $ hg ci -m 'amend externals from hg'
committing subrepository s
abort: cannot commit svn externals
[255]
@@ -209,21 +223,21 @@ this commit fails because of externals meta changes
clone
$ cd ..
- $ hg clone t tc
+ $ hg clone t tc | fix_path
updating to branch default
- A tc/s/alpha (glob)
- U tc/s (glob)
+ A tc/s/alpha
+ U tc/s
- Fetching external item into 'tc/s/externals'* (glob)
- A tc/s/externals/other (glob)
+ Fetching external item into 'tc/s/externals'
+ A tc/s/externals/other
Checked out external at revision 1.
Checked out revision 3.
- A tc/subdir/s/alpha (glob)
- U tc/subdir/s (glob)
+ A tc/subdir/s/alpha
+ U tc/subdir/s
- Fetching external item into 'tc/subdir/s/externals'* (glob)
- A tc/subdir/s/externals/other (glob)
+ Fetching external item into 'tc/subdir/s/externals'
+ A tc/subdir/s/externals/other
Checked out external at revision 1.
Checked out revision 2.
@@ -252,39 +266,39 @@ update to nullrev (must delete the subrepo)
$ ls
Check hg update --clean
- $ cd "$TESTTMP/sub/t"
+ $ cd $TESTTMP/sub/t
$ cd s
$ echo c0 > alpha
$ echo c1 > f1
$ echo c1 > f2
$ svn add f1 -q
- $ svn status | sort
-
+ $ svn status
? * a (glob)
+ X * externals (glob)
? * f2 (glob)
- A * f1 (glob)
M * alpha (glob)
- Performing status on external item at 'externals'* (glob)
- X * externals (glob)
+ A * f1 (glob)
+
+ Performing status on external item at 'externals'
$ cd ../..
$ hg -R t update -C
- Fetching external item into 't/s/externals'* (glob)
+ Fetching external item into 't/s/externals'
Checked out external at revision 1.
Checked out revision 3.
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd t/s
- $ svn status | sort
-
+ $ svn status
? * a (glob)
+ X * externals (glob)
? * f1 (glob)
? * f2 (glob)
- Performing status on external item at 'externals'* (glob)
- X * externals (glob)
+
+ Performing status on external item at 'externals'
Sticky subrepositories, no changes
- $ cd "$TESTTMP/sub/t"
+ $ cd $TESTTMP/sub/t
$ hg id -n
2
$ cd s
@@ -292,9 +306,9 @@ Sticky subrepositories, no changes
3
$ cd ..
$ hg update 1
- U *s/alpha (glob)
+ U $TESTTMP/sub/t/s/alpha
- Fetching external item into '*s/externals'* (glob)
+ Fetching external item into '$TESTTMP/sub/t/s/externals'
Checked out external at revision 1.
Checked out revision 2.
@@ -313,7 +327,7 @@ Sticky subrepositorys, file changes
A f1
$ cd ..
$ hg id -n
- 1+
+ 1
$ cd s
$ svnversion
2M
@@ -330,9 +344,9 @@ Sticky subrepositorys, file changes
2M
$ cd ..
$ hg update --clean tip
- U *s/alpha (glob)
+ U $TESTTMP/sub/t/s/alpha
- Fetching external item into '*s/externals'* (glob)
+ Fetching external item into '$TESTTMP/sub/t/s/externals'
Checked out external at revision 1.
Checked out revision 3.
@@ -346,7 +360,14 @@ Sticky subrepository, revision updates
3
$ cd ..
$ cd s
- $ svn update -qr 1
+ $ svn update -r 1
+ U alpha
+ U .
+
+ Fetching external item into 'externals'
+ Updated external to revision 1.
+
+ Updated to revision 1.
$ cd ..
$ hg update 1
subrepository sources for s differ (in checked out version)
@@ -376,18 +397,18 @@ Sticky subrepository, file changes and revision updates
l
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
- 2+
+ 2
$ cd s
$ svnversion
1M
$ cd ..
Sticky repository, update --clean
- $ hg update --clean tip | grep -v 's[/\]externals[/\]other'
- U *s/alpha (glob)
- U *s (glob)
+ $ hg update --clean tip
+ U $TESTTMP/sub/t/s/alpha
+ U $TESTTMP/sub/t/s
- Fetching external item into '*s/externals'* (glob)
+ Fetching external item into '$TESTTMP/sub/t/s/externals'
Checked out external at revision 1.
Checked out revision 3.
@@ -401,7 +422,13 @@ Sticky repository, update --clean
Test subrepo already at intended revision:
$ cd s
- $ svn update -qr 2
+ $ svn update -r 2
+ U alpha
+
+ Fetching external item into 'externals'
+ Updated external to revision 1.
+
+ Updated to revision 2.
$ cd ..
$ hg update 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -415,62 +442,75 @@ Test subrepo already at intended revision:
Test case where subversion would fail to update the subrepo because there
are unknown directories being replaced by tracked ones (happens with rebase).
- $ cd "$WCROOT/src"
+ $ cd $WCROOT/src
$ mkdir dir
$ echo epsilon.py > dir/epsilon.py
$ svn add dir
A dir
- A dir/epsilon.py (glob)
+ A dir/epsilon.py
$ svn ci -m 'Add dir/epsilon.py'
- Adding *dir (glob)
- Adding *dir/epsilon.py (glob)
+ Adding src/dir
+ Adding src/dir/epsilon.py
Transmitting file data .
Committed revision 6.
$ cd ../..
$ hg init rebaserepo
$ cd rebaserepo
- $ svn co -r5 --quiet "$SVNREPOURL"/src s
- $ echo "s = [svn] $SVNREPOURL/src" >> .hgsub
+ $ svn co -r5 --quiet "$SVNREPO"/src s
+ $ echo "s = [svn] $SVNREPO/src" >> .hgsub
$ hg add .hgsub
$ hg ci -m addsub
+ committing subrepository s
$ echo a > a
$ hg ci -Am adda
adding a
$ hg up 0
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ svn up -qr6 s
+ $ svn up -r6 s
+ A s/dir
+ A s/dir/epsilon.py
+
+ Fetching external item into 's/externals'
+ Updated external to revision 1.
+
+ Updated to revision 6.
$ hg ci -m updatesub
+ committing subrepository s
created new head
$ echo pyc > s/dir/epsilon.pyc
$ hg up 1
- D *s/dir (glob)
+ D $TESTTMP/rebaserepo/s/dir
- Fetching external item into '*s/externals'* (glob)
+ Fetching external item into '$TESTTMP/rebaserepo/s/externals'
Checked out external at revision 1.
Checked out revision 5.
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg up -q 2
+ $ if "$TESTDIR/hghave" -q svn15; then
+ > hg up 2 >/dev/null 2>&1 || echo update failed
+ > fi
Modify one of the externals to point to a different path so we can
test having obstructions when switching branches on checkout:
$ hg checkout tip
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ echo "obstruct = [svn] $SVNREPOURL/externals" >> .hgsub
- $ svn co -r5 --quiet "$SVNREPOURL"/externals obstruct
- $ hg commit -m 'Start making obstructed working copy'
+ $ echo "obstruct = [svn] $SVNREPO/externals" >> .hgsub
+ $ svn co -r5 --quiet "$SVNREPO"/externals obstruct
+ $ hg commit -m 'Start making obstructed wc'
+ committing subrepository obstruct
$ hg book other
$ hg co -r 'p1(tip)'
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ echo "obstruct = [svn] $SVNREPOURL/src" >> .hgsub
- $ svn co -r5 --quiet "$SVNREPOURL"/src obstruct
+ $ echo "obstruct = [svn] $SVNREPO/src" >> .hgsub
+ $ svn co -r5 --quiet "$SVNREPO"/src obstruct
$ hg commit -m 'Other branch which will be obstructed'
+ committing subrepository obstruct
created new head
Switching back to the head where we have another path mapped to the
same subrepo should work if the subrepo is clean.
$ hg co other
- A *obstruct/other (glob)
+ A $TESTTMP/rebaserepo/obstruct/other
Checked out revision 1.
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -483,19 +523,19 @@ This is surprising, but is also correct based on the current code:
Point to a Subversion branch which has since been deleted and recreated
First, create that condition in the repository.
- $ hg ci --subrepos -m cleanup | grep -v Updating
+ $ hg ci -m cleanup
committing subrepository obstruct
- Sending obstruct/other (glob)
+ Sending obstruct/other
Transmitting file data .
Committed revision 7.
At revision 7.
- $ svn mkdir -m "baseline" $SVNREPOURL/trunk
+ $ svn mkdir -m "baseline" $SVNREPO/trunk
Committed revision 8.
- $ svn copy -m "initial branch" $SVNREPOURL/trunk $SVNREPOURL/branch
+ $ svn copy -m "initial branch" $SVNREPO/trunk $SVNREPO/branch
Committed revision 9.
- $ svn co --quiet "$SVNREPOURL"/branch tempwc
+ $ svn co --quiet "$SVNREPO"/branch tempwc
$ cd tempwc
$ echo "something old" > somethingold
$ svn add somethingold
@@ -504,13 +544,15 @@ First, create that condition in the repository.
Adding somethingold
Transmitting file data .
Committed revision 10.
- $ svn rm -m "remove branch" $SVNREPOURL/branch
+ $ svn rm -m "remove branch" $SVNREPO/branch
Committed revision 11.
- $ svn copy -m "recreate branch" $SVNREPOURL/trunk $SVNREPOURL/branch
+ $ svn copy -m "recreate branch" $SVNREPO/trunk $SVNREPO/branch
Committed revision 12.
- $ svn up -q
+ $ svn up
+ D somethingold
+ Updated to revision 12.
$ echo "something new" > somethingnew
$ svn add somethingnew
A somethingnew
@@ -520,106 +562,24 @@ First, create that condition in the repository.
Committed revision 13.
$ cd ..
$ rm -rf tempwc
- $ svn co "$SVNREPOURL/branch"@10 recreated
- A recreated/somethingold (glob)
+ $ svn co "$SVNREPO/branch"@10 recreated
+ A recreated/somethingold
Checked out revision 10.
- $ echo "recreated = [svn] $SVNREPOURL/branch" >> .hgsub
+ $ echo "recreated = [svn] $SVNREPO/branch" >> .hgsub
$ hg ci -m addsub
+ committing subrepository recreated
$ cd recreated
- $ svn up -q
+ $ svn up
+ D somethingold
+ A somethingnew
+ Updated to revision 13.
$ cd ..
$ hg ci -m updatesub
+ committing subrepository recreated
$ hg up -r-2
- D *recreated/somethingnew (glob)
- A *recreated/somethingold (glob)
+ D $TESTTMP/rebaserepo/recreated/somethingnew
+ A $TESTTMP/rebaserepo/recreated/somethingold
Checked out revision 10.
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ test -f recreated/somethingold
-
-Test archive
-
- $ hg archive -S ../archive-all --debug
- archiving: 0/2 files (0.00%)
- archiving: .hgsub 1/2 files (50.00%)
- archiving: .hgsubstate 2/2 files (100.00%)
- archiving (obstruct): 0/1 files (0.00%)
- archiving (obstruct): 1/1 files (100.00%)
- archiving (s): 0/2 files (0.00%)
- archiving (s): 1/2 files (50.00%)
- archiving (s): 2/2 files (100.00%)
- archiving (recreated): 0/1 files (0.00%)
- archiving (recreated): 1/1 files (100.00%)
-
- $ hg archive -S ../archive-exclude --debug -X **old
- archiving: 0/2 files (0.00%)
- archiving: .hgsub 1/2 files (50.00%)
- archiving: .hgsubstate 2/2 files (100.00%)
- archiving (obstruct): 0/1 files (0.00%)
- archiving (obstruct): 1/1 files (100.00%)
- archiving (s): 0/2 files (0.00%)
- archiving (s): 1/2 files (50.00%)
- archiving (s): 2/2 files (100.00%)
- archiving (recreated): 0 files
- $ find ../archive-exclude | sort
- ../archive-exclude
- ../archive-exclude/.hg_archival.txt
- ../archive-exclude/.hgsub
- ../archive-exclude/.hgsubstate
- ../archive-exclude/obstruct
- ../archive-exclude/obstruct/other
- ../archive-exclude/s
- ../archive-exclude/s/alpha
- ../archive-exclude/s/dir
- ../archive-exclude/s/dir/epsilon.py
-
-Test forgetting files, not implemented in svn subrepo, used to
-traceback
-
-#if no-windows
- $ hg forget 'notafile*'
- notafile*: No such file or directory
- [1]
-#else
- $ hg forget 'notafile'
- notafile: * (glob)
- [1]
-#endif
-
-Test a subrepo referencing a just moved svn path. Last commit rev will
-be different from the revision, and the path will be different as
-well.
-
- $ cd "$WCROOT"
- $ svn up > /dev/null
- $ mkdir trunk/subdir branches
- $ echo a > trunk/subdir/a
- $ svn add trunk/subdir branches
- A trunk/subdir (glob)
- A trunk/subdir/a (glob)
- A branches
- $ svn ci -m addsubdir
- Adding branches
- Adding trunk/subdir (glob)
- Adding trunk/subdir/a (glob)
- Transmitting file data .
- Committed revision 14.
- $ svn cp -m branchtrunk $SVNREPOURL/trunk $SVNREPOURL/branches/somebranch
-
- Committed revision 15.
- $ cd ..
+ $ test -e recreated/somethingold
- $ hg init repo2
- $ cd repo2
- $ svn co $SVNREPOURL/branches/somebranch/subdir
- A subdir/a (glob)
- Checked out revision 15.
- $ echo "subdir = [svn] $SVNREPOURL/branches/somebranch/subdir" > .hgsub
- $ hg add .hgsub
- $ hg ci -m addsub
- $ hg up null
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- $ hg up
- A *subdir/a (glob)
- Checked out revision 15.
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd ..
diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t
index bb58c2f..dba8278 100644
--- a/tests/test-subrepo.t
+++ b/tests/test-subrepo.t
@@ -1,8 +1,6 @@
-Let commit recurse into subrepos by default to match pre-2.0 behavior:
-
- $ echo "[ui]" >> $HGRCPATH
- $ echo "commitsubrepos = Yes" >> $HGRCPATH
-
+ $ rm -rf sub
+ $ mkdir sub
+ $ cd sub
$ hg init t
$ cd t
@@ -34,21 +32,7 @@ Issue2232: committing a subrepo without .hgsub
commit: 1 added, 1 subrepos
update: (current)
$ hg ci -m1
-
-Revert subrepo and test subrepo fileset keyword:
-
- $ echo b > s/a
- $ hg revert "set:subrepo('glob:s*')"
- reverting subrepo s
- reverting s/a (glob)
- $ rm s/a.orig
-
-Revert subrepo with no backup. The "reverting s/a" line is gone since
-we're really running 'hg update' in the subrepo:
-
- $ echo b > s/a
- $ hg revert --no-backup s
- reverting subrepo s
+ committing subrepository s
Issue2022: update -C
@@ -68,14 +52,6 @@ Issue2022: update -C
commit: (clean)
update: (current)
-commands that require a clean repo should respect subrepos
-
- $ echo b >> s/a
- $ hg backout tip
- abort: uncommitted changes in subrepo s
- [255]
- $ hg revert -C -R s s/a
-
add sub sub
$ echo ss = ss > s/.hgsub
@@ -91,7 +67,7 @@ add sub sub
update: (current)
$ hg ci -m2
committing subrepository s
- committing subrepository s/ss (glob)
+ committing subrepository s/ss
$ hg sum
parent: 2:df30734270ae tip
2
@@ -104,24 +80,18 @@ bump sub rev (and check it is ignored by ui.commitsubrepos)
$ echo b > s/a
$ hg -R s ci -ms1
$ hg --config ui.commitsubrepos=no ci -m3
+ committing subrepository s
leave sub dirty (and check ui.commitsubrepos=no aborts the commit)
$ echo c > s/a
$ hg --config ui.commitsubrepos=no ci -m4
abort: uncommitted changes in subrepo s
- (use --subrepos for recursive commit)
[255]
- $ hg id
- f6affe3fbfaa+ tip
- $ hg -R s ci -mc
- $ hg id
- f6affe3fbfaa+ tip
- $ echo d > s/a
$ hg ci -m4
committing subrepository s
$ hg tip -R s
- changeset: 4:02dcf1d70411
+ changeset: 3:1c833a7a9e3a
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
@@ -141,7 +111,7 @@ restore
$ hg debugsub
path s
source s
- revision 02dcf1d704118aee3ee306ccfa1910850d5b05ef
+ revision 1c833a7a9e3a4445c711aaf0f012379cd0d4034e
new branch for merge tests
@@ -151,7 +121,7 @@ new branch for merge tests
$ hg init t
$ echo t > t/t
$ hg -R t add t
- adding t/t (glob)
+ adding t/t
5
@@ -203,16 +173,16 @@ merge tests
$ hg merge 6 --debug # test change
searching for copies back to rev 2
resolving manifests
- overwrite: False, partial: False
- ancestor: 1f14a2e2d3ec, local: f0d2028bf86d+, remote: 1831e14459c4
+ overwrite None partial False
+ ancestor 1f14a2e2d3ec local f0d2028bf86d+ remote 1831e14459c4
.hgsubstate: versions differ -> m
updating: .hgsubstate 1/1 files (100.00%)
subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec
subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg
getting subrepo t
resolving manifests
- overwrite: True, partial: False
- ancestor: 60ca1237c194+, local: 60ca1237c194+, remote: 6747d179aa9a
+ overwrite True partial False
+ ancestor 60ca1237c194+ local 60ca1237c194+ remote 6747d179aa9a
t: remote is newer -> g
updating: t 1/1 files (100.00%)
getting t
@@ -231,8 +201,8 @@ merge tests
$ HGMERGE=internal:merge hg merge --debug 7 # test conflict
searching for copies back to rev 2
resolving manifests
- overwrite: False, partial: False
- ancestor: 1831e14459c4, local: e45c8b14af55+, remote: f94576341bcf
+ overwrite None partial False
+ ancestor 1831e14459c4 local e45c8b14af55+ remote f94576341bcf
.hgsubstate: versions differ -> m
updating: .hgsubstate 1/1 files (100.00%)
subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4
@@ -240,8 +210,8 @@ merge tests
merging subrepo t
searching for copies back to rev 2
resolving manifests
- overwrite: False, partial: False
- ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198
+ overwrite None partial False
+ ancestor 6747d179aa9a local 20a0db6fbf6c+ remote 7af322bc1198
t: versions differ -> m
preserving t for resolve of t
updating: t 1/1 files (100.00%)
@@ -249,7 +219,7 @@ merge tests
merging t
my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a
warning: conflicts during merge.
- merging t incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging t failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -269,9 +239,9 @@ clone
$ cd ..
$ hg clone t tc
updating to branch default
- cloning subrepo s from $TESTTMP/t/s (glob)
- cloning subrepo s/ss from $TESTTMP/t/s/ss (glob)
- cloning subrepo t from $TESTTMP/t/t (glob)
+ cloning subrepo s from $TESTTMP/sub/t/s
+ cloning subrepo s/ss from $TESTTMP/sub/t/s/ss
+ cloning subrepo t from $TESTTMP/sub/t/t
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd tc
$ hg debugsub
@@ -288,14 +258,14 @@ push
$ hg ci -m11
committing subrepository t
$ hg push
- pushing to $TESTTMP/t (glob)
- pushing subrepo s/ss to $TESTTMP/t/s/ss (glob)
+ pushing to $TESTTMP/sub/t
+ pushing subrepo s/ss to $TESTTMP/sub/t/s/ss
searching for changes
no changes found
- pushing subrepo s to $TESTTMP/t/s (glob)
+ pushing subrepo s to $TESTTMP/sub/t/s
searching for changes
no changes found
- pushing subrepo t to $TESTTMP/t/t (glob)
+ pushing subrepo t to $TESTTMP/sub/t/t
searching for changes
adding changesets
adding manifests
@@ -313,27 +283,27 @@ push -f
$ hg ci -m12
committing subrepository s
$ hg push
- pushing to $TESTTMP/t (glob)
- pushing subrepo s/ss to $TESTTMP/t/s/ss (glob)
+ pushing to $TESTTMP/sub/t
+ pushing subrepo s/ss to $TESTTMP/sub/t/s/ss
searching for changes
no changes found
- pushing subrepo s to $TESTTMP/t/s (glob)
+ pushing subrepo s to $TESTTMP/sub/t/s
searching for changes
abort: push creates new remote head 12a213df6fa9!
(did you forget to merge? use push -f to force)
[255]
$ hg push -f
- pushing to $TESTTMP/t (glob)
- pushing subrepo s/ss to $TESTTMP/t/s/ss (glob)
+ pushing to $TESTTMP/sub/t
+ pushing subrepo s/ss to $TESTTMP/sub/t/s/ss
searching for changes
no changes found
- pushing subrepo s to $TESTTMP/t/s (glob)
+ pushing subrepo s to $TESTTMP/sub/t/s
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
- pushing subrepo t to $TESTTMP/t/t (glob)
+ pushing subrepo t to $TESTTMP/sub/t/t
searching for changes
no changes found
searching for changes
@@ -355,7 +325,7 @@ pull
$ cd ../tc
$ hg pull
- pulling from $TESTTMP/t (glob)
+ pulling from $TESTTMP/sub/t
searching for changes
adding changesets
adding manifests
@@ -366,7 +336,7 @@ pull
should pull t
$ hg up
- pulling subrepo t from $TESTTMP/t/t (glob)
+ pulling subrepo t from $TESTTMP/sub/t/t
searching for changes
adding changesets
adding manifests
@@ -411,7 +381,6 @@ shouldn't need merging
adding a
$ hg branch br
marked working directory as branch br
- (branches are permanent and global, did you want a bookmark?)
$ echo a >> a
$ hg ci -m1
$ hg up default
@@ -459,14 +428,15 @@ shouldn't need merging
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg ci -Am1
adding .hgsub
+ committing subrepository s
$ hg branch br
marked working directory as branch br
- (branches are permanent and global, did you want a bookmark?)
$ echo b > b
$ hg -R s up 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg ci -Am1
adding b
+ committing subrepository s
$ hg up default
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo c > c
@@ -485,6 +455,7 @@ shouldn't need merging
$ echo d > d
$ hg ci -Am1
adding d
+ committing subrepository s
$ hg up 3
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg -R s up 5
@@ -492,6 +463,7 @@ shouldn't need merging
$ echo e > e
$ hg ci -Am1
adding e
+ committing subrepository s
$ hg up 5
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -509,16 +481,18 @@ test subrepo delete from .hgsubstate
$ echo test > testdelete/nested/foo
$ echo test > testdelete/nested2/foo
$ hg -R testdelete/nested add
- adding testdelete/nested/foo (glob)
+ adding testdelete/nested/foo
$ hg -R testdelete/nested2 add
- adding testdelete/nested2/foo (glob)
+ adding testdelete/nested2/foo
$ hg -R testdelete/nested ci -m test
$ hg -R testdelete/nested2 ci -m test
$ echo nested = nested > testdelete/.hgsub
$ echo nested2 = nested2 >> testdelete/.hgsub
$ hg -R testdelete add
- adding testdelete/.hgsub (glob)
+ adding testdelete/.hgsub
$ hg -R testdelete ci -m "nested 1 & 2 added"
+ committing subrepository nested
+ committing subrepository nested2
$ echo nested = nested > testdelete/.hgsub
$ hg -R testdelete ci -m "nested 2 deleted"
$ cat testdelete/.hgsubstate
@@ -534,20 +508,22 @@ test repository cloning
$ hg init nested_absolute
$ echo test > nested_absolute/foo
$ hg -R nested_absolute add
- adding nested_absolute/foo (glob)
+ adding nested_absolute/foo
$ hg -R nested_absolute ci -mtest
$ cd mercurial
$ hg init nested_relative
$ echo test2 > nested_relative/foo2
$ hg -R nested_relative add
- adding nested_relative/foo2 (glob)
+ adding nested_relative/foo2
$ hg -R nested_relative ci -mtest2
$ hg init main
$ echo "nested_relative = ../nested_relative" > main/.hgsub
$ echo "nested_absolute = `pwd`/nested_absolute" >> main/.hgsub
$ hg -R main add
- adding main/.hgsub (glob)
+ adding main/.hgsub
$ hg -R main ci -m "add subrepos"
+ committing subrepository nested_absolute
+ committing subrepository nested_relative
$ cd ..
$ hg clone mercurial/main mercurial2/main
updating to branch default
@@ -555,9 +531,9 @@ test repository cloning
$ cat mercurial2/main/nested_absolute/.hg/hgrc \
> mercurial2/main/nested_relative/.hg/hgrc
[paths]
- default = $TESTTMP/mercurial/nested_absolute
+ default = $TESTTMP/sub/mercurial/nested_absolute
[paths]
- default = $TESTTMP/mercurial/nested_relative
+ default = $TESTTMP/sub/mercurial/nested_relative
$ rm -rf mercurial mercurial2
Issue1977: multirepo push should fail if subrepo push fails
@@ -570,9 +546,10 @@ Issue1977: multirepo push should fail if subrepo push fails
$ echo s = s > repo/.hgsub
$ hg -R repo ci -Am1
adding .hgsub
+ committing subrepository s
$ hg clone repo repo2
updating to branch default
- cloning subrepo s from $TESTTMP/repo/s (glob)
+ cloning subrepo s from $TESTTMP/sub/repo/s
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -q -R repo2 pull -u
$ echo 1 > repo2/s/a
@@ -584,6 +561,7 @@ Issue1977: multirepo push should fail if subrepo push fails
$ hg -R repo2/s ci -m3
created new head
$ hg -R repo2 ci -m3
+ committing subrepository s
$ hg -q -R repo2 push
abort: push creates new remote head 9d66565e64e1!
(did you forget to merge? use push -f to force)
@@ -605,10 +583,10 @@ Prepare a repo with subrepo
$ echo sub/repo = sub/repo > .hgsub
$ hg add .hgsub
$ hg ci -mtest
- committing subrepository sub/repo (glob)
+ committing subrepository sub/repo
$ echo test >> sub/repo/foo
$ hg ci -mtest
- committing subrepository sub/repo (glob)
+ committing subrepository sub/repo
$ cd ..
Create repo without default path, pull top repo, and see what happens on update
@@ -623,7 +601,7 @@ Create repo without default path, pull top repo, and see what happens on update
added 2 changesets with 3 changes to 2 files
(run 'hg update' to get a working copy)
$ hg -R issue1852b update
- abort: default path for subrepository sub/repo not found (glob)
+ abort: default path for subrepository sub/repo not found
[255]
Pull -u now doesn't help
@@ -642,14 +620,14 @@ Try the same, but with pull -u
adding manifests
adding file changes
added 1 changesets with 2 changes to 2 files
- cloning subrepo sub/repo from issue1852a/sub/repo (glob)
+ cloning subrepo sub/repo from issue1852a/sub/repo
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Try to push from the other side
$ hg -R issue1852a push `pwd`/issue1852c
- pushing to $TESTTMP/issue1852c
- pushing subrepo sub/repo to $TESTTMP/issue1852c/sub/repo (glob)
+ pushing to $TESTTMP/sub/issue1852c
+ pushing subrepo sub/repo to $TESTTMP/sub/issue1852c/sub/repo
searching for changes
no changes found
searching for changes
@@ -693,11 +671,12 @@ subrepository:
$ echo subrepo-2 = subrepo-2 >> .hgsub
$ hg add .hgsub
$ hg ci -m 'Added subrepos'
+ committing subrepository subrepo-1
committing subrepository subrepo-2
$ hg st subrepo-2/file
Check hg update --clean
- $ cd $TESTTMP/t
+ $ cd $TESTTMP/sub/t
$ rm -r t/t.orig
$ hg status -S --all
C .hgsub
@@ -725,7 +704,7 @@ Check hg update --clean
? s/c
Sticky subrepositories, no changes
- $ cd $TESTTMP/t
+ $ cd $TESTTMP/sub/t
$ hg id
925c17564ef8 tip
$ hg -R s id
@@ -747,7 +726,7 @@ Sticky subrepositorys, file changes
$ hg add -S s/f1
$ hg add -S t/f1
$ hg id
- 365661e5936a+
+ 365661e5936a
$ hg -R s id
fc627a69481f+
$ hg -R t id
@@ -791,7 +770,7 @@ Sticky subrepository, revision updates
$ hg id
e45c8b14af55+
$ hg -R s id
- 02dcf1d70411
+ 1c833a7a9e3a
$ hg -R t id
7af322bc1198
@@ -803,21 +782,21 @@ Sticky subrepository, file changes and revision updates
$ hg id
e45c8b14af55+
$ hg -R s id
- 02dcf1d70411+
+ 1c833a7a9e3a+
$ hg -R t id
7af322bc1198+
$ hg update tip
subrepository sources for s differ
- use (l)ocal source (02dcf1d70411) or (r)emote source (12a213df6fa9)?
+ use (l)ocal source (1c833a7a9e3a) or (r)emote source (12a213df6fa9)?
l
subrepository sources for t differ
use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a)?
l
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
- 925c17564ef8+ tip
+ 925c17564ef8 tip
$ hg -R s id
- 02dcf1d70411+
+ 1c833a7a9e3a+
$ hg -R t id
7af322bc1198+
@@ -850,16 +829,17 @@ Test that removing .hgsubstate doesn't break anything:
$ hg rm -f .hgsubstate
$ hg ci -mrm
- nothing changed
- [1]
+ committing subrepository s
+ committing subrepository t
+ created new head
$ hg log -vr tip
- changeset: 13:925c17564ef8
+ changeset: 14:3941e0aa5236
tag: tip
+ parent: 11:365661e5936a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
- files: .hgsubstate
description:
- 13
+ rm
@@ -867,11 +847,9 @@ Test that removing .hgsub removes .hgsubstate:
$ hg rm .hgsub
$ hg ci -mrm2
- created new head
$ hg log -vr tip
- changeset: 14:2400bccd50af
+ changeset: 15:8b31de9d13d1
tag: tip
- parent: 11:365661e5936a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
files: .hgsub .hgsubstate
@@ -879,145 +857,3 @@ Test that removing .hgsub removes .hgsubstate:
rm2
-Test issue3153: diff -S with deleted subrepos
-
- $ hg diff --nodates -S -c .
- diff -r 365661e5936a -r 2400bccd50af .hgsub
- --- a/.hgsub
- +++ /dev/null
- @@ -1,2 +0,0 @@
- -s = s
- -t = t
- diff -r 365661e5936a -r 2400bccd50af .hgsubstate
- --- a/.hgsubstate
- +++ /dev/null
- @@ -1,2 +0,0 @@
- -fc627a69481fcbe5f1135069e8a3881c023e4cf5 s
- -e95bcfa18a358dc4936da981ebf4147b4cad1362 t
-
-Test behavior of add for explicit path in subrepo:
- $ cd ..
- $ hg init explicit
- $ cd explicit
- $ echo s = s > .hgsub
- $ hg add .hgsub
- $ hg init s
- $ hg ci -m0
-Adding with an explicit path in a subrepo adds the file
- $ echo c1 > f1
- $ echo c2 > s/f2
- $ hg st -S
- ? f1
- ? s/f2
- $ hg add s/f2
- $ hg st -S
- A s/f2
- ? f1
- $ hg ci -R s -m0
- $ hg ci -Am1
- adding f1
-Adding with an explicit path in a subrepo with -S has the same behavior
- $ echo c3 > f3
- $ echo c4 > s/f4
- $ hg st -S
- ? f3
- ? s/f4
- $ hg add -S s/f4
- $ hg st -S
- A s/f4
- ? f3
- $ hg ci -R s -m1
- $ hg ci -Ama2
- adding f3
-Adding without a path or pattern silently ignores subrepos
- $ echo c5 > f5
- $ echo c6 > s/f6
- $ echo c7 > s/f7
- $ hg st -S
- ? f5
- ? s/f6
- ? s/f7
- $ hg add
- adding f5
- $ hg st -S
- A f5
- ? s/f6
- ? s/f7
- $ hg ci -R s -Am2
- adding f6
- adding f7
- $ hg ci -m3
-Adding without a path or pattern with -S also adds files in subrepos
- $ echo c8 > f8
- $ echo c9 > s/f9
- $ echo c10 > s/f10
- $ hg st -S
- ? f8
- ? s/f10
- ? s/f9
- $ hg add -S
- adding f8
- adding s/f10 (glob)
- adding s/f9 (glob)
- $ hg st -S
- A f8
- A s/f10
- A s/f9
- $ hg ci -R s -m3
- $ hg ci -m4
-Adding with a pattern silently ignores subrepos
- $ echo c11 > fm11
- $ echo c12 > fn12
- $ echo c13 > s/fm13
- $ echo c14 > s/fn14
- $ hg st -S
- ? fm11
- ? fn12
- ? s/fm13
- ? s/fn14
- $ hg add 'glob:**fm*'
- adding fm11
- $ hg st -S
- A fm11
- ? fn12
- ? s/fm13
- ? s/fn14
- $ hg ci -R s -Am4
- adding fm13
- adding fn14
- $ hg ci -Am5
- adding fn12
-Adding with a pattern with -S also adds matches in subrepos
- $ echo c15 > fm15
- $ echo c16 > fn16
- $ echo c17 > s/fm17
- $ echo c18 > s/fn18
- $ hg st -S
- ? fm15
- ? fn16
- ? s/fm17
- ? s/fn18
- $ hg add -S 'glob:**fm*'
- adding fm15
- adding s/fm17 (glob)
- $ hg st -S
- A fm15
- A s/fm17
- ? fn16
- ? s/fn18
- $ hg ci -R s -Am5
- adding fn18
- $ hg ci -Am6
- adding fn16
-
-Test behavior of forget for explicit path in subrepo:
-Forgetting an explicit path in a subrepo untracks the file
- $ echo c19 > s/f19
- $ hg add s/f19
- $ hg st -S
- A s/f19
- $ hg forget s/f19
- $ hg st -S
- ? s/f19
- $ rm s/f19
- $ cd ..
diff --git a/tests/test-symlink-os-yes-fs-no.py b/tests/test-symlink-os-yes-fs-no.py
index e122d60..ea736e8 100644
--- a/tests/test-symlink-os-yes-fs-no.py
+++ b/tests/test-symlink-os-yes-fs-no.py
@@ -5,14 +5,11 @@ TESTDIR = os.environ["TESTDIR"]
BUNDLEPATH = os.path.join(TESTDIR, 'bundles', 'test-no-symlinks.hg')
# only makes sense to test on os which supports symlinks
-if not getattr(os, "symlink", False):
+if not hasattr(os, "symlink"):
sys.exit(80) # SKIPPED_STATUS defined in run-tests.py
-u = ui.ui()
-# hide outer repo
-hg.peer(u, {}, '.', create=True)
-
# clone with symlink support
+u = ui.ui()
hg.clone(u, {}, BUNDLEPATH, 'test0')
repo = hg.repository(u, 'test0')
diff --git a/tests/test-symlink-placeholder.t b/tests/test-symlink-placeholder.t
deleted file mode 100644
index 501b62b..0000000
--- a/tests/test-symlink-placeholder.t
+++ /dev/null
@@ -1,72 +0,0 @@
- $ "$TESTDIR/hghave" symlink || exit 80
-
-Create extension that can disable symlink support:
-
- $ cat > nolink.py <<EOF
- > from mercurial import extensions, util
- > def setflags(orig, f, l, x):
- > pass
- > def checklink(orig, path):
- > return False
- > def extsetup(ui):
- > extensions.wrapfunction(util, 'setflags', setflags)
- > extensions.wrapfunction(util, 'checklink', checklink)
- > EOF
-
- $ hg init unix-repo
- $ cd unix-repo
- $ echo foo > a
- $ ln -s a b
- $ hg ci -Am0
- adding a
- adding b
- $ cd ..
-
-Simulate a checkout shared on NFS/Samba:
-
- $ hg clone -q unix-repo shared
- $ cd shared
- $ rm b
- $ echo foo > b
- $ hg --config extensions.n=$TESTTMP/nolink.py status --debug
- ignoring suspect symlink placeholder "b"
-
-Make a clone using placeholders:
-
- $ hg --config extensions.n=$TESTTMP/nolink.py clone . ../win-repo
- updating to branch default
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd ../win-repo
- $ cat b
- a (no-eol)
- $ hg --config extensions.n=$TESTTMP/nolink.py st --debug
-
-Write binary data to the placeholder:
-
- >>> open('b', 'w').write('this is a binary\0')
- $ hg --config extensions.n=$TESTTMP/nolink.py st --debug
- ignoring suspect symlink placeholder "b"
-
-Write a long string to the placeholder:
-
- >>> open('b', 'w').write('this' * 1000)
- $ hg --config extensions.n=$TESTTMP/nolink.py st --debug
- ignoring suspect symlink placeholder "b"
-
-Commit shouldn't succeed:
-
- $ hg --config extensions.n=$TESTTMP/nolink.py ci -m1
- nothing changed
- [1]
-
-Write a valid string to the placeholder:
-
- >>> open('b', 'w').write('this')
- $ hg --config extensions.n=$TESTTMP/nolink.py st --debug
- M b
- $ hg --config extensions.n=$TESTTMP/nolink.py ci -m1
- $ hg manifest tip --verbose
- 644 a
- 644 @ b
-
- $ cd ..
diff --git a/tests/test-symlinks.t b/tests/test-symlinks.t
index 660ab91..9d35c80 100644
--- a/tests/test-symlinks.t
+++ b/tests/test-symlinks.t
@@ -168,12 +168,11 @@ now addremove should remove old files
? foo
$ hg status ../link
? foo
- $ hg add foo
- $ hg cp foo "$TESTTMP/link/bar"
- foo has not been committed yet, so no copy data will be stored for bar.
$ cd ..
+
+
$ hg init b
$ cd b
$ ln -s nothing dangling
@@ -195,13 +194,13 @@ now addremove should remove old files
$ hg manifest --debug
2564acbe54bbbedfbf608479340b359f04597f80 644 @ dangling
- $ "$TESTDIR/readlink.py" dangling
+ $ $TESTDIR/readlink.py dangling
dangling -> nothing
$ rm dangling
$ ln -s void dangling
$ hg commit -m 'change symlink'
- $ "$TESTDIR/readlink.py" dangling
+ $ $TESTDIR/readlink.py dangling
dangling -> void
@@ -209,7 +208,7 @@ modifying link
$ rm dangling
$ ln -s empty dangling
- $ "$TESTDIR/readlink.py" dangling
+ $ $TESTDIR/readlink.py dangling
dangling -> empty
@@ -217,13 +216,13 @@ reverting to rev 0:
$ hg revert -r 0 -a
reverting dangling
- $ "$TESTDIR/readlink.py" dangling
+ $ $TESTDIR/readlink.py dangling
dangling -> nothing
backups:
- $ "$TESTDIR/readlink.py" *.orig
+ $ $TESTDIR/readlink.py *.orig
dangling.orig -> empty
$ rm *.orig
$ hg up -C
@@ -236,7 +235,7 @@ copies
$ hg st -Cmard
A dangling2
dangling
- $ "$TESTDIR/readlink.py" dangling dangling2
+ $ $TESTDIR/readlink.py dangling dangling2
dangling -> void
dangling2 -> void
@@ -253,4 +252,3 @@ Issue995: hg copy -A incorrectly handles symbolic links
$ mv dirlink newdir/dirlink
$ hg mv -A dirlink newdir/dirlink
- $ cd ..
diff --git a/tests/test-tag.t b/tests/test-tag.t
index 3731802..d087d18 100644
--- a/tests/test-tag.t
+++ b/tests/test-tag.t
@@ -205,18 +205,19 @@ tag and branch using same name
$ hg branch tag-and-branch-same-name
marked working directory as branch tag-and-branch-same-name
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -m"discouraged"
$ hg tag tag-and-branch-same-name
warning: tag tag-and-branch-same-name conflicts with existing branch name
test custom commit messages
- $ cat > editor.sh << '__EOF__'
+ $ cat > editor << '__EOF__'
+ > #!/bin/sh
> echo "custom tag message" > "$1"
> echo "second line" >> "$1"
> __EOF__
- $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg tag custom-tag -e
+ $ chmod +x editor
+ $ HGEDITOR="'`pwd`'"/editor hg tag custom-tag -e
$ hg log -l1 --template "{desc}\n"
custom tag message
second line
@@ -231,7 +232,7 @@ local tag with .hgtags modified
$ hg st
M .hgtags
? .hgtags.orig
- ? editor.sh
+ ? editor
$ hg tag --local baz
$ hg revert --no-backup .hgtags
@@ -248,6 +249,7 @@ tagging when at named-branch-head that's not a topo-head
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg tag new-topo-head
+
tagging on null rev
$ hg up null
@@ -258,12 +260,6 @@ tagging on null rev
$ hg init empty
$ hg tag -R empty nullrev
- abort: null revision specified
- [255]
-
- $ hg tag -R empty -r 00000000000 -f nulltag
- abort: null revision specified
- [255]
$ cd ..
@@ -280,7 +276,6 @@ tagging on an uncommitted merge (issue2542)
$ hg co -q 0
$ hg branch b1
marked working directory as branch b1
- (branches are permanent and global, did you want a bookmark?)
$ hg ci -m2
$ hg up default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -301,19 +296,3 @@ tagging on an uncommitted merge (issue2542)
t3 1:c3adabd1a5f4 local
$ cd ..
-
-commit hook on tag used to be run without write lock - issue3344
-
- $ hg init repo-tag
- $ touch repo-tag/test
- $ hg -R repo-tag commit -A -m "test"
- adding test
- $ hg init repo-tag-target
- $ hg -R repo-tag --config hooks.commit="\"hg\" push \"`pwd`/repo-tag-target\"" tag tag
- pushing to $TESTTMP/repo-tag-target
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 2 files
-
diff --git a/tests/test-tags.t b/tests/test-tags.t
index 557c076..798fd01 100644
--- a/tests/test-tags.t
+++ b/tests/test-tags.t
@@ -75,13 +75,11 @@ Repeat with cold tag cache:
And again, but now unable to write tag cache:
-#if unix-permissions
$ rm -f .hg/cache/tags
$ chmod 555 .hg
$ hg identify
b9154636be93 tip
$ chmod 755 .hg
-#endif
Create a branch:
@@ -137,6 +135,8 @@ Add invalid tags:
$ echo >> .hgtags
$ echo "foo bar" >> .hgtags
$ echo "a5a5 invalid" >> .hg/localtags
+ $ echo "committing .hgtags:"
+ committing .hgtags:
$ cat .hgtags
acb14030fe0a21b60322c440ad2d20cf7685a376 first
spam
@@ -380,5 +380,3 @@ to remove a tag of type X which actually only exists as a type Y:
tip 1:a0b6fe111088
localtag 0:bbd179dfa0a7 local
globaltag 0:bbd179dfa0a7
-
- $ cd ..
diff --git a/tests/test-template-engine.t b/tests/test-template-engine.t
index 9dafebf..1eb7c78 100644
--- a/tests/test-template-engine.t
+++ b/tests/test-template-engine.t
@@ -35,5 +35,3 @@
adding mymap
$ hg log --style=./mymap
0 97e5f848f0936960273bbf75be6388cd0350a32b test
-
- $ cd ..
diff --git a/tests/test-transplant.t b/tests/test-transplant.t
index 36a61f7..d2545f3 100644
--- a/tests/test-transplant.t
+++ b/tests/test-transplant.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
$ cat <<EOF >> $HGRCPATH
> [extensions]
> transplant=
@@ -83,87 +81,6 @@ test tranplanted keyword
1
0
-test destination() revset predicate with a transplant of a transplant; new
-clone so subsequent rollback isn't affected
- $ hg clone -q . ../destination
- $ cd ../destination
- $ hg up -Cq 0
- $ hg branch -q b4
- $ hg ci -qm "b4"
- $ hg transplant 7
- applying ffd6818a3975
- ffd6818a3975 transplanted to 502236fa76bb
-
-
- $ hg log -r 'destination()'
- changeset: 5:e234d668f844
- parent: 1:d11e3596cc1a
- user: test
- date: Thu Jan 01 00:00:00 1970 +0000
- summary: b1
-
- changeset: 6:539f377d78df
- user: test
- date: Thu Jan 01 00:00:01 1970 +0000
- summary: b2
-
- changeset: 7:ffd6818a3975
- user: test
- date: Thu Jan 01 00:00:02 1970 +0000
- summary: b3
-
- changeset: 9:502236fa76bb
- branch: b4
- tag: tip
- user: test
- date: Thu Jan 01 00:00:02 1970 +0000
- summary: b3
-
- $ hg log -r 'destination(a53251cdf717)'
- changeset: 7:ffd6818a3975
- user: test
- date: Thu Jan 01 00:00:02 1970 +0000
- summary: b3
-
- changeset: 9:502236fa76bb
- branch: b4
- tag: tip
- user: test
- date: Thu Jan 01 00:00:02 1970 +0000
- summary: b3
-
-
-test subset parameter in reverse order
- $ hg log -r 'reverse(all()) and destination(a53251cdf717)'
- changeset: 9:502236fa76bb
- branch: b4
- tag: tip
- user: test
- date: Thu Jan 01 00:00:02 1970 +0000
- summary: b3
-
- changeset: 7:ffd6818a3975
- user: test
- date: Thu Jan 01 00:00:02 1970 +0000
- summary: b3
-
-
-back to the original dir
- $ cd ../rebase
-
-rollback the transplant
- $ hg rollback
- repository tip rolled back to revision 4 (undo transplant)
- working directory now based on revision 1
- $ hg tip -q
- 4:a53251cdf717
- $ hg parents -q
- 1:d11e3596cc1a
- $ hg status
- ? b1
- ? b2
- ? b3
-
$ hg clone ../t ../prune
updating to branch default
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -188,25 +105,7 @@ rebase b onto r1, skipping b2
1 r2
0 r1
-test same-parent transplant with --log
- $ hg clone -r 1 ../t ../sameparent
- adding changesets
- adding manifests
- adding file changes
- added 2 changesets with 2 changes to 2 files
- updating to branch default
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd ../sameparent
- $ hg transplant --log -s ../prune 5
- searching for changes
- applying e234d668f844
- e234d668f844 transplanted to e07aea8ecf9c
- $ hg log --template '{rev} {parents} {desc}\n'
- 2 b1
- (transplanted from e234d668f844e1b1a765f01db83a32c0c7bfa170)
- 1 r2
- 0 r1
remote transplant
$ hg clone -r 1 ../t ../remote
@@ -298,9 +197,7 @@ transplant --continue
> baz
> EOF
$ echo toremove > toremove
- $ echo baz > baz
$ hg ci -Amfoo
- adding baz
adding foo
adding toremove
$ cat <<EOF > foo
@@ -314,22 +211,17 @@ transplant --continue
adding added
removing toremove
$ echo bar > bar
- $ cat > baz <<EOF
- > before baz
- > baz
- > after baz
- > EOF
$ hg ci -Ambar
adding bar
$ echo bar2 >> bar
$ hg ci -mbar2
$ hg up 0
- 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ 2 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ echo foobar > foo
$ hg ci -mfoobar
created new head
$ hg transplant 1:3
- applying 46ae92138f3c
+ applying a1e30dd1b8e7
patching file foo
Hunk #1 FAILED at 0
1 out of 1 hunks FAILED -- saving rejects to file foo.rej
@@ -343,7 +235,7 @@ transplant -c shouldn't use an old changeset
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm added
$ hg transplant 1
- applying 46ae92138f3c
+ applying a1e30dd1b8e7
patching file foo
Hunk #1 FAILED at 0
1 out of 1 hunks FAILED -- saving rejects to file foo.rej
@@ -351,41 +243,17 @@ transplant -c shouldn't use an old changeset
abort: fix up the merge and run hg transplant --continue
[255]
$ hg transplant --continue
- 46ae92138f3c transplanted as 9159dada197d
+ a1e30dd1b8e7 transplanted as f1563cf27039
$ hg transplant 1:3
- skipping already applied revision 1:46ae92138f3c
- applying 9d6d6b5a8275
- 9d6d6b5a8275 transplanted to 2d17a10c922f
- applying 1dab759070cf
- 1dab759070cf transplanted to e06a69927eb0
+ skipping already applied revision 1:a1e30dd1b8e7
+ applying 1739ac5f6139
+ 1739ac5f6139 transplanted to d649c221319f
+ applying 0282d5fbbe02
+ 0282d5fbbe02 transplanted to 77418277ccb3
$ hg locate
added
bar
- baz
foo
-
-test multiple revisions and --continue
-
- $ hg up -qC 0
- $ echo bazbaz > baz
- $ hg ci -Am anotherbaz baz
- created new head
- $ hg transplant 1:3
- applying 46ae92138f3c
- 46ae92138f3c transplanted to 1024233ea0ba
- applying 9d6d6b5a8275
- patching file baz
- Hunk #1 FAILED at 0
- 1 out of 1 hunks FAILED -- saving rejects to file baz.rej
- patch failed to apply
- abort: fix up the merge and run hg transplant --continue
- [255]
- $ echo fixed > baz
- $ hg transplant --continue
- 9d6d6b5a8275 transplanted as d80c49962290
- applying 1dab759070cf
- 1dab759070cf transplanted to aa0ffe6bd5ae
-
$ cd ..
Issue1111: Test transplant --merge
@@ -424,8 +292,6 @@ test transplant into empty repository
$ cd ..
-#if unix-permissions system-sh
-
test filter
$ hg init filter
@@ -511,10 +377,6 @@ test transplant with filter handles invalid changelog
filtering * (glob)
abort: filter corrupted changeset (no user or date)
[255]
- $ cd ..
-
-#endif
-
test with a win32ext like setup (differing EOLs)
@@ -547,88 +409,3 @@ test with a win32ext like setup (differing EOLs)
a\r (esc)
b\r (esc)
$ cd ..
-
-test transplant with merge changeset is skipped
-
- $ hg init merge1a
- $ cd merge1a
- $ echo a > a
- $ hg ci -Am a
- adding a
- $ hg branch b
- marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
- $ hg ci -m branchb
- $ echo b > b
- $ hg ci -Am b
- adding b
- $ hg update default
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge b
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m mergeb
- $ cd ..
-
- $ hg init merge1b
- $ cd merge1b
- $ hg transplant -s ../merge1a tip
- $ cd ..
-
-test transplant with merge changeset accepts --parent
-
- $ hg init merge2a
- $ cd merge2a
- $ echo a > a
- $ hg ci -Am a
- adding a
- $ hg branch b
- marked working directory as branch b
- (branches are permanent and global, did you want a bookmark?)
- $ hg ci -m branchb
- $ echo b > b
- $ hg ci -Am b
- adding b
- $ hg update default
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge b
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m mergeb
- $ cd ..
-
- $ hg init merge2b
- $ cd merge2b
- $ hg transplant -s ../merge2a --parent 0 tip
- applying be9f9b39483f
- be9f9b39483f transplanted to 9959e51f94d1
- $ cd ..
-
-test transplanting a patch turning into a no-op
-
- $ hg init binarysource
- $ cd binarysource
- $ echo a > a
- $ hg ci -Am adda a
- >>> file('b', 'wb').write('\0b1')
- $ hg ci -Am addb b
- >>> file('b', 'wb').write('\0b2')
- $ hg ci -m changeb b
- $ cd ..
-
- $ hg clone -r0 binarysource binarydest
- adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- updating to branch default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd binarydest
- $ cp ../binarysource/b b
- $ hg ci -Am addb2 b
- $ hg transplant -s ../binarysource 2
- searching for changes
- applying 7a7d57e15850
- skipping emptied changeset 7a7d57e15850
- $ cd ..
-
diff --git a/tests/test-treediscovery-legacy.t b/tests/test-treediscovery-legacy.t
index bc3563c..b31e574 100644
--- a/tests/test-treediscovery-legacy.t
+++ b/tests/test-treediscovery-legacy.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
Tests discovery against servers without getbundle support:
$ cat >> $HGRCPATH <<EOF
@@ -15,13 +13,6 @@ Tests discovery against servers without getbundle support:
$ cp $HGRCPATH $HGRCPATH-nocap
$ cp $HGRCPATH-withcap $HGRCPATH
-Prep for test server without branchmap support
-
- $ CAP="branchmap"
- $ . "$TESTDIR/notcapable"
- $ cp $HGRCPATH $HGRCPATH-nocap-branchmap
- $ cp $HGRCPATH-withcap $HGRCPATH
-
Setup HTTP server control:
$ remote=http://localhost:$HGPORT/
@@ -58,7 +49,6 @@ Both are empty:
$ hg push -R empty1 $remote
pushing to http://localhost:$HGPORT/
no changes found
- [1]
$ tstop
Base repo:
@@ -118,7 +108,6 @@ Full clone:
pushing to http://localhost:$HGPORT/
searching for changes
no changes found
- [1]
$ cd ..
Local is empty:
@@ -149,7 +138,6 @@ Local is empty:
$ hg push $remote
pushing to http://localhost:$HGPORT/
no changes found
- [1]
$ hg pull $remote
pulling from http://localhost:$HGPORT/
requesting all changes
@@ -194,7 +182,6 @@ Local is subset:
pushing to http://localhost:$HGPORT/
searching for changes
no changes found
- [1]
$ hg pull $remote
pulling from http://localhost:$HGPORT/
searching for changes
@@ -321,51 +308,3 @@ Partial pull:
$ tstop
-Exercise pushing to server without branchmap capability
-
- $ cp $HGRCPATH-nocap-branchmap $HGRCPATH-nocap
- $ hg init rlocal
- $ cd rlocal
- $ echo A > A
- $ hg ci -Am A
- adding A
- $ cd ..
- $ hg clone rlocal rremote
- updating to branch default
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ cd rlocal
- $ echo B > B
- $ hg ci -Am B
- adding B
- $ cd ..
- $ tstart rremote
-
- $ cd rlocal
- $ hg incoming $remote
- comparing with http://localhost:$HGPORT/
- searching for changes
- no changes found
- [1]
- $ hg outgoing $remote
- comparing with http://localhost:$HGPORT/
- searching for changes
- 1 27547f69f254: B
- $ hg pull $remote
- pulling from http://localhost:$HGPORT/
- searching for changes
- no changes found
- $ hg push $remote
- pushing to http://localhost:$HGPORT/
- searching for changes
- remote: adding changesets
- remote: adding manifests
- remote: adding file changes
- remote: added 1 changesets with 1 changes to 1 files
- $ hg outgoing $remote
- comparing with http://localhost:$HGPORT/
- searching for changes
- no changes found
- [1]
- $ cd ..
-
- $ tstop
diff --git a/tests/test-treediscovery.t b/tests/test-treediscovery.t
index 1f59d0b..499ad6e 100644
--- a/tests/test-treediscovery.t
+++ b/tests/test-treediscovery.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
-
Tests discovery against servers without getbundle support:
$ CAP=getbundle
@@ -45,7 +43,6 @@ Both are empty:
$ hg push -R empty1 $remote
pushing to http://localhost:$HGPORT/
no changes found
- [1]
$ tstop
Base repo:
@@ -105,7 +102,6 @@ Full clone:
pushing to http://localhost:$HGPORT/
searching for changes
no changes found
- [1]
$ cd ..
Local is empty:
@@ -132,7 +128,6 @@ Local is empty:
$ hg push $remote
pushing to http://localhost:$HGPORT/
no changes found
- [1]
$ hg pull $remote
pulling from http://localhost:$HGPORT/
requesting all changes
@@ -175,7 +170,6 @@ Local is subset:
pushing to http://localhost:$HGPORT/
searching for changes
no changes found
- [1]
$ hg pull $remote
pulling from http://localhost:$HGPORT/
searching for changes
diff --git a/tests/test-trusted.py.out b/tests/test-trusted.py.out
index 8774db3..371bf37 100644
--- a/tests/test-trusted.py.out
+++ b/tests/test-trusted.py.out
@@ -15,7 +15,7 @@ untrusted
. . local = /another/path
# different user, same group
-not trusting file .hg/hgrc from untrusted user abc, group bar
+Not trusting file .hg/hgrc from untrusted user abc, group bar
trusted
global = /some/path
untrusted
@@ -31,7 +31,7 @@ untrusted
. . local = /another/path
# different user, different group
-not trusting file .hg/hgrc from untrusted user abc, group def
+Not trusting file .hg/hgrc from untrusted user abc, group def
trusted
global = /some/path
untrusted
@@ -91,7 +91,7 @@ untrusted
# we don't get confused by users and groups with the same name
# different user, different group
-not trusting file .hg/hgrc from untrusted user abc, group def
+Not trusting file .hg/hgrc from untrusted user abc, group def
trusted
global = /some/path
untrusted
@@ -118,7 +118,7 @@ untrusted
# Can't figure out the name of the user running this process
# different user, different group
-not trusting file .hg/hgrc from untrusted user abc, group def
+Not trusting file .hg/hgrc from untrusted user abc, group def
trusted
global = /some/path
untrusted
@@ -127,7 +127,7 @@ untrusted
# prints debug warnings
# different user, different group
-not trusting file .hg/hgrc from untrusted user abc, group def
+Not trusting file .hg/hgrc from untrusted user abc, group def
trusted
ignoring untrusted configuration option paths.local = /another/path
global = /some/path
@@ -146,7 +146,7 @@ untrusted
# report_untrusted enabled with debug shows warnings
# different user, different group
-not trusting file .hg/hgrc from untrusted user abc, group def
+Not trusting file .hg/hgrc from untrusted user abc, group def
trusted
ignoring untrusted configuration option paths.local = /another/path
global = /some/path
@@ -159,7 +159,7 @@ untrusted
quux
# read trusted, untrusted, new ui, trusted
-not trusting file foobar from untrusted user abc, group def
+Not trusting file foobar from untrusted user abc, group def
trusted:
ignoring untrusted configuration option foobar.baz = quux
None
@@ -173,7 +173,7 @@ quux
# parse error
# different user, different group
-not trusting file .hg/hgrc from untrusted user abc, group def
+Not trusting file .hg/hgrc from untrusted user abc, group def
('foo', '.hg/hgrc:1')
# same user, same group
('foo', '.hg/hgrc:1')
diff --git a/tests/test-unbundlehash.t b/tests/test-unbundlehash.t
index e55e1b7..a386cde 100644
--- a/tests/test-unbundlehash.t
+++ b/tests/test-unbundlehash.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
Test wire protocol unbundle with hashed heads (capability: unbundlehash)
diff --git a/tests/test-unrelated-pull.t b/tests/test-unrelated-pull.t
index 5779905..f9ae036 100644
--- a/tests/test-unrelated-pull.t
+++ b/tests/test-unrelated-pull.t
@@ -41,5 +41,3 @@
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
-
- $ cd ..
diff --git a/tests/test-up-local-change.t b/tests/test-up-local-change.t
index 815f9fb..f41e461 100644
--- a/tests/test-up-local-change.t
+++ b/tests/test-up-local-change.t
@@ -44,8 +44,8 @@
unmatched files in other:
b
resolving manifests
- overwrite: False, partial: False
- ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb
+ overwrite False partial False
+ ancestor c19d34741b0a local c19d34741b0a+ remote 1e71731e6fbb
a: versions differ -> m
b: remote created -> g
preserving a for resolve of a
@@ -65,8 +65,8 @@
$ hg --debug up 0
resolving manifests
- overwrite: False, partial: False
- ancestor: 1e71731e6fbb, local: 1e71731e6fbb+, remote: c19d34741b0a
+ overwrite False partial False
+ ancestor 1e71731e6fbb local 1e71731e6fbb+ remote c19d34741b0a
a: versions differ -> m
b: other deleted -> r
preserving a for resolve of a
@@ -84,8 +84,7 @@
summary: 1
$ hg --debug merge
- abort: nothing to merge
- (use 'hg update' instead)
+ abort: there is nothing to merge - use "hg update" instead
[255]
$ hg parents
changeset: 0:c19d34741b0a
@@ -98,8 +97,8 @@
unmatched files in other:
b
resolving manifests
- overwrite: False, partial: False
- ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb
+ overwrite False partial False
+ ancestor c19d34741b0a local c19d34741b0a+ remote 1e71731e6fbb
a: versions differ -> m
b: remote created -> g
preserving a for resolve of a
@@ -170,14 +169,13 @@ create a second head
abort: crosses branches (merge branches or use --clean to discard changes)
[255]
$ hg --debug merge
- abort: outstanding uncommitted changes
- (use 'hg status' to list changes)
+ abort: outstanding uncommitted changes (use 'hg status' to list changes)
[255]
$ hg --debug merge -f
searching for copies back to rev 1
resolving manifests
- overwrite: False, partial: False
- ancestor: c19d34741b0a, local: 1e71731e6fbb+, remote: 83c51d0caff4
+ overwrite False partial False
+ ancestor c19d34741b0a local 1e71731e6fbb+ remote 83c51d0caff4
a: versions differ -> m
b: versions differ -> m
preserving a for resolve of a
@@ -234,5 +232,3 @@ test a local add
added 1 changesets with 1 changes to 1 files
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg st
-
- $ cd ..
diff --git a/tests/test-update-branches.t b/tests/test-update-branches.t
index e6a578e..d900037 100644
--- a/tests/test-update-branches.t
+++ b/tests/test-update-branches.t
@@ -15,11 +15,6 @@
$ hg init
$ echo foo > foo
$ echo zero > a
- $ hg init sub
- $ echo suba > sub/suba
- $ hg --cwd sub ci -Am addsuba
- adding suba
- $ echo 'sub = sub' > .hgsub
$ hg ci -qAm0
$ echo one > a ; hg ci -m1
$ echo two > a ; hg ci -m2
@@ -34,46 +29,44 @@ Initial repo state:
$ hg --config 'extensions.graphlog=' \
> glog --template '{rev}:{node|short} {parents} {branches}\n'
- @ 5:ff252e8273df b1
+ @ 5:e1bb631146ca b1
|
- o 4:d047485b3896 0:60829823a42a b1
+ o 4:a4fdb3b883c4 0:b608b9236435 b1
|
- | o 3:6efa171f091b 1:0786582aa4b1
+ | o 3:4b57d2520816 1:44592833ba9f
| |
- | | o 2:bd10386d478c
+ | | o 2:063f31070f65
| |/
- | o 1:0786582aa4b1
+ | o 1:44592833ba9f
|/
- o 0:60829823a42a
+ o 0:b608b9236435
Test helper functions:
$ revtest () {
> msg=$1
- > dirtyflag=$2 # 'clean', 'dirty' or 'dirtysub'
+ > dirtyflag=$2 # 'clean' or 'dirty'
> startrev=$3
> targetrev=$4
> opt=$5
> hg up -qC $startrev
> test $dirtyflag = dirty && echo dirty > foo
- > test $dirtyflag = dirtysub && echo dirty > sub/suba
> hg up $opt $targetrev
> hg parent --template 'parent={rev}\n'
- > hg stat -S
+ > hg stat
> }
$ norevtest () {
> msg=$1
- > dirtyflag=$2 # 'clean', 'dirty' or 'dirtysub'
+ > dirtyflag=$2 # 'clean' or 'dirty'
> startrev=$3
> opt=$4
> hg up -qC $startrev
> test $dirtyflag = dirty && echo dirty > foo
- > test $dirtyflag = dirtysub && echo dirty > sub/suba
> hg up $opt
> hg parent --template 'parent={rev}\n'
- > hg stat -S
+ > hg stat
> }
Test cases are documented in a table in the update function of merge.py.
@@ -106,30 +99,16 @@ Cases are run as shown in that table, row by row.
parent=2
M foo
- $ revtest 'none dirtysub linear' dirtysub 1 2
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- parent=2
- M sub/suba
-
$ revtest 'none dirty same' dirty 2 3
abort: crosses branches (merge branches or use --clean to discard changes)
parent=2
M foo
- $ revtest 'none dirtysub same' dirtysub 2 3
- abort: crosses branches (merge branches or use --clean to discard changes)
- parent=2
- M sub/suba
-
$ revtest 'none dirty cross' dirty 3 4
abort: crosses branches (merge branches or use --clean to discard changes)
parent=3
M foo
- $ revtest 'none dirtysub cross' dirtysub 3 4
- abort: crosses branches (merge branches or use --clean to discard changes)
- parent=3
- M sub/suba
$ revtest '-C dirty linear' dirty 1 2 -C
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -140,11 +119,6 @@ Cases are run as shown in that table, row by row.
parent=1
M foo
- $ revtest '-c dirtysub linear' dirtysub 1 2 -c
- abort: uncommitted local changes
- parent=1
- M sub/suba
-
$ norevtest '-c clean same' clean 2 -c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
parent=3
diff --git a/tests/test-update-issue1456.t b/tests/test-update-issue1456.t
index e6c8f23..afce859 100644
--- a/tests/test-update-issue1456.t
+++ b/tests/test-update-issue1456.t
@@ -1,5 +1,3 @@
- $ "$TESTDIR/hghave" execbit || exit 80
-
$ rm -rf a
$ hg init a
$ cd a
@@ -33,4 +31,3 @@ Validate update of standalone execute bit change:
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg st
- $ cd ..
diff --git a/tests/test-update-renames.t b/tests/test-update-renames.t
index 829317a..8008e4b 100644
--- a/tests/test-update-renames.t
+++ b/tests/test-update-renames.t
@@ -21,7 +21,10 @@ Update with local changes across a file rename
$ hg up
merging a and b to b
warning: conflicts during merge.
- merging b incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging b failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges
[1]
+
+ $ cd ..
+
diff --git a/tests/test-update-reverse.t b/tests/test-update-reverse.t
index 4d1dd26..2aa997d 100644
--- a/tests/test-update-reverse.t
+++ b/tests/test-update-reverse.t
@@ -66,8 +66,8 @@
$ hg update --debug -C 1
resolving manifests
- overwrite: True, partial: False
- ancestor: 91ebc10ed028+, local: 91ebc10ed028+, remote: 71a760306caf
+ overwrite True partial False
+ ancestor 91ebc10ed028+ local 91ebc10ed028+ remote 71a760306caf
side2: other deleted -> r
side1: other deleted -> r
main: remote created -> g
diff --git a/tests/test-url-rev.t b/tests/test-url-rev.t
index 517b83b..f6b05c0 100644
--- a/tests/test-url-rev.t
+++ b/tests/test-url-rev.t
@@ -6,7 +6,6 @@ Test basic functionality of url#rev syntax
$ hg ci -qAm 'add a'
$ hg branch foo
marked working directory as branch foo
- (branches are permanent and global, did you want a bookmark?)
$ echo >> a
$ hg ci -m 'change a'
$ cd ..
@@ -42,7 +41,7 @@ Test basic functionality of url#rev syntax
$ cat clone/.hg/hgrc
[paths]
- default = $TESTTMP/repo#foo (glob)
+ default = $TESTTMP/repo#foo
Changing original repo:
@@ -103,6 +102,7 @@ Changing original repo:
$ cd clone
$ hg rollback
repository tip rolled back to revision 1 (undo push)
+ working directory now based on revision 1
$ hg -q incoming
2:faba9097cad4
@@ -147,6 +147,10 @@ No new revs, no update:
$ hg rollback
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
$ hg parents -q
0:1f0dee641bb7
@@ -201,10 +205,4 @@ Pull -u takes us back to branch foo:
date: Thu Jan 01 00:00:00 1970 +0000
summary: new head of branch foo
-Test handling of invalid urls
- $ hg id http://foo/?bar
- abort: unsupported URL component: "bar"
- [255]
-
- $ cd ..
diff --git a/tests/test-url.py b/tests/test-url.py
index 0cf2ad6..6abe553 100644
--- a/tests/test-url.py
+++ b/tests/test-url.py
@@ -1,4 +1,4 @@
-import os
+import sys
def check(a, b):
if a != b:
@@ -219,15 +219,7 @@ def test_url():
>>> u
<url scheme: 'file', path: 'f:oo/bar/baz'>
>>> str(u)
- 'file:///f:oo/bar/baz'
- >>> u.localpath()
- 'f:oo/bar/baz'
-
- >>> u = url('file://localhost/f:oo/bar/baz')
- >>> u
- <url scheme: 'file', host: 'localhost', path: 'f:oo/bar/baz'>
- >>> str(u)
- 'file://localhost/f:oo/bar/baz'
+ 'file:f%3Aoo/bar/baz'
>>> u.localpath()
'f:oo/bar/baz'
@@ -240,7 +232,4 @@ def test_url():
'foo/bar/baz'
"""
-if 'TERM' in os.environ:
- del os.environ['TERM']
-
doctest.testmod(optionflags=doctest.NORMALIZE_WHITESPACE)
diff --git a/tests/test-verify.t b/tests/test-verify.t
index 5f3d7a7..b900a5a 100644
--- a/tests/test-verify.t
+++ b/tests/test-verify.t
@@ -58,7 +58,6 @@ introduce some bugs in repo
(first damaged changeset appears to be 0)
[1]
- $ cd ../../..
$ cd ..
test revlog corruption
@@ -100,4 +99,3 @@ test revlog format 0
crosschecking files in changesets and manifests
checking files
1 files, 1 changesets, 1 total revisions
- $ cd ..
diff --git a/tests/test-walk.t b/tests/test-walk.t
index 52de65e..0829376 100644
--- a/tests/test-walk.t
+++ b/tests/test-walk.t
@@ -12,6 +12,7 @@
$ echo fennel > fennel
$ echo fenugreek > fenugreek
$ echo fiddlehead > fiddlehead
+ $ echo glob:glob > glob:glob
$ hg addremove
adding beans/black
adding beans/borlotti
@@ -22,10 +23,12 @@
adding fennel
adding fenugreek
adding fiddlehead
+ adding glob:glob
adding mammals/Procyonidae/cacomistle
adding mammals/Procyonidae/coatimundi
adding mammals/Procyonidae/raccoon
adding mammals/skunk
+ warning: filename contains ':', which is reserved on Windows: 'glob:glob'
$ hg commit -m "commit #0"
$ hg debugwalk
@@ -38,6 +41,7 @@
f fennel fennel
f fenugreek fenugreek
f fiddlehead fiddlehead
+ f glob:glob glob:glob
f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
@@ -52,6 +56,7 @@
f fennel fennel
f fenugreek fenugreek
f fiddlehead fiddlehead
+ f glob:glob glob:glob
f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
@@ -68,6 +73,7 @@
f fennel ../fennel
f fenugreek ../fenugreek
f fiddlehead ../fiddlehead
+ f glob:glob ../glob:glob
f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
f mammals/Procyonidae/raccoon Procyonidae/raccoon
@@ -76,6 +82,7 @@
f fennel ../fennel
f fenugreek ../fenugreek
f fiddlehead ../fiddlehead
+ f glob:glob ../glob:glob
f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
f mammals/Procyonidae/raccoon Procyonidae/raccoon
@@ -105,7 +112,7 @@
f beans/navy ../beans/navy
f beans/pinto ../beans/pinto
f beans/turtle ../beans/turtle
- $ hg debugwalk -I 'relpath:detour/../../beans'
+ $ hg debugwalk -I 'relpath:../beans'
f beans/black ../beans/black
f beans/borlotti ../beans/borlotti
f beans/kidney ../beans/kidney
@@ -152,10 +159,10 @@
f mammals/Procyonidae/raccoon Procyonidae/raccoon
f mammals/skunk skunk
$ hg debugwalk .hg
- abort: path 'mammals/.hg' is inside nested repo 'mammals' (glob)
+ abort: path 'mammals/.hg' is inside nested repo 'mammals'
[255]
$ hg debugwalk ../.hg
- abort: path contains illegal component: .hg (glob)
+ abort: path contains illegal component: .hg
[255]
$ cd ..
@@ -187,16 +194,16 @@
abort: beans/../.. not under root
[255]
$ hg debugwalk .hg
- abort: path contains illegal component: .hg (glob)
+ abort: path contains illegal component: .hg
[255]
$ hg debugwalk beans/../.hg
- abort: path contains illegal component: .hg (glob)
+ abort: path contains illegal component: .hg
[255]
$ hg debugwalk beans/../.hg/data
- abort: path contains illegal component: .hg/data (glob)
+ abort: path contains illegal component: .hg/data
[255]
$ hg debugwalk beans/.hg
- abort: path 'beans/.hg' is inside nested repo 'beans' (glob)
+ abort: path 'beans/.hg' is inside nested repo 'beans'
[255]
Test absolute paths:
@@ -218,26 +225,7 @@ Test patterns:
f fennel fennel
f fenugreek fenugreek
f fiddlehead fiddlehead
-#if eol-in-paths
- $ echo glob:glob > glob:glob
- $ hg addremove
- adding glob:glob
- warning: filename contains ':', which is reserved on Windows: 'glob:glob'
- $ hg debugwalk glob:\*
- f fennel fennel
- f fenugreek fenugreek
- f fiddlehead fiddlehead
f glob:glob glob:glob
- $ hg debugwalk glob:glob
- glob: No such file or directory
- $ hg debugwalk glob:glob:glob
- f glob:glob glob:glob exact
- $ hg debugwalk path:glob:glob
- f glob:glob glob:glob exact
- $ rm glob:glob
- $ hg addremove
- removing glob:glob
-#endif
$ hg debugwalk 'glob:**e'
f beans/turtle beans/turtle
@@ -246,6 +234,7 @@ Test patterns:
$ hg debugwalk 're:.*[kb]$'
f beans/black beans/black
f fenugreek fenugreek
+ f glob:glob glob:glob
f mammals/skunk mammals/skunk
$ hg debugwalk path:beans/black
@@ -283,13 +272,11 @@ Test patterns:
f mammals/skunk mammals/skunk
$ hg debugwalk 'glob:j*'
$ hg debugwalk NOEXIST
- NOEXIST: * (glob)
+ NOEXIST: No such file or directory
-#if fifo
$ mkfifo fifo
$ hg debugwalk fifo
fifo: unsupported file type (type is fifo)
-#endif
$ rm fenugreek
$ hg debugwalk fenugreek
@@ -310,12 +297,12 @@ Test patterns:
Test listfile and listfile0
- $ python -c "file('listfile0', 'wb').write('fenugreek\0new\0')"
- $ hg debugwalk -I 'listfile0:listfile0'
+ $ python -c "file('../listfile0', 'wb').write('fenugreek\0new\0')"
+ $ hg debugwalk -I 'listfile0:../listfile0'
f fenugreek fenugreek
f new new
- $ python -c "file('listfile', 'wb').write('fenugreek\nnew\r\nmammals/skunk\n')"
- $ hg debugwalk -I 'listfile:listfile'
+ $ python -c "file('../listfile', 'wb').write('fenugreek\nnew\r\nmammals/skunk\n')"
+ $ hg debugwalk -I 'listfile:../listfile'
f fenugreek fenugreek
f mammals/skunk mammals/skunk
f new new
@@ -329,5 +316,3 @@ Test listfile and listfile0
f mammals/skunk ../t/mammals/skunk exact
$ hg debugwalk --cwd ../t mammals/skunk
f mammals/skunk mammals/skunk exact
-
- $ cd ..
diff --git a/tests/test-walkrepo.py b/tests/test-walkrepo.py
index bbeebd4..0cb3501 100644
--- a/tests/test-walkrepo.py
+++ b/tests/test-walkrepo.py
@@ -1,12 +1,11 @@
import os
from mercurial import hg, ui
from mercurial.scmutil import walkrepos
-from mercurial.util import checklink
from os import mkdir, chdir
from os.path import join as pjoin
u = ui.ui()
-sym = checklink('.')
+sym = hasattr(os, 'symlink') and hasattr(os.path, 'samestat')
hg.repository(u, 'top1', create=1)
mkdir('subdir')
@@ -24,12 +23,10 @@ def runtest():
reposet = frozenset(walkrepos('.', followsym=True))
if sym and (len(reposet) != 3):
print "reposet = %r" % (reposet,)
- print ("Found %d repositories when I should have found 3"
- % (len(reposet),))
+ print "Found %d repositories when I should have found 3" % (len(reposet),)
if (not sym) and (len(reposet) != 2):
print "reposet = %r" % (reposet,)
- print ("Found %d repositories when I should have found 2"
- % (len(reposet),))
+ print "Found %d repositories when I should have found 2" % (len(reposet),)
sub1set = frozenset((pjoin('.', 'sub1'),
pjoin('.', 'circle', 'subdir', 'sub1')))
if len(sub1set & reposet) != 1:
@@ -43,7 +40,7 @@ def runtest():
print "reposet = %r" % (reposet,)
print "sub1set and reposet should have exactly one path in common."
sub3 = pjoin('.', 'circle', 'top1')
- if sym and sub3 not in reposet:
+ if sym and not (sub3 in reposet):
print "reposet = %r" % (reposet,)
print "Symbolic links are supported and %s is not in reposet" % (sub3,)
diff --git a/tests/test-win32text.t b/tests/test-win32text.t
index edbe842..386b6f3 100644
--- a/tests/test-win32text.t
+++ b/tests/test-win32text.t
@@ -16,14 +16,16 @@
[hooks]
pretxncommit.crlf = python:hgext.win32text.forbidcrlf
pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf
-
+ $ echo
+
$ echo hello > f
$ hg add f
commit should succeed
$ hg ci -m 1
-
+ $ echo
+
$ hg clone . ../zoz
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -33,13 +35,14 @@ commit should succeed
commit should fail
$ hg ci -m 2.1
- attempt to commit or push text file(s) using CRLF line endings
+ Attempt to commit or push text file(s) using CRLF line endings
in f583ea08d42a: f
transaction abort!
rollback completed
abort: pretxncommit.crlf hook failed
[255]
-
+ $ echo
+
$ mv .hg/hgrc .hg/hgrc.bak
commits should succeed
@@ -47,6 +50,8 @@ commits should succeed
$ hg ci -m 2
$ hg cp f g
$ hg ci -m 2.2
+ $ echo
+
push should fail
@@ -57,7 +62,7 @@ push should fail
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
- attempt to commit or push text file(s) using CRLF line endings
+ Attempt to commit or push text file(s) using CRLF line endings
in bc2d09796734: g
in b1aa5cde7ff4: f
@@ -79,7 +84,8 @@ push should fail
rollback completed
abort: pretxnchangegroup.crlf hook failed
[255]
-
+ $ echo
+
$ mv .hg/hgrc.bak .hg/hgrc
$ echo hello > f
$ hg rm g
@@ -87,6 +93,8 @@ push should fail
commit should succeed
$ hg ci -m 2.3
+ $ echo
+
push should succeed
@@ -97,6 +105,8 @@ push should succeed
adding manifests
adding file changes
added 3 changesets with 3 changes to 2 files
+ $ echo
+
and now for something completely different
@@ -105,19 +115,21 @@ and now for something completely different
$ python unix2dos.py d/f2
$ hg add d/f2
$ hg ci -m 3
- attempt to commit or push text file(s) using CRLF line endings
+ Attempt to commit or push text file(s) using CRLF line endings
in 053ba1a3035a: d/f2
transaction abort!
rollback completed
abort: pretxncommit.crlf hook failed
[255]
$ hg revert -a
- forgetting d/f2 (glob)
+ forgetting d/f2
$ rm d/f2
-
+ $ echo
+
$ hg rem f
$ hg ci -m 4
-
+ $ echo
+
$ python -c 'file("bin", "wb").write("hello\x00\x0D\x0A")'
$ hg add bin
$ hg ci -m 5
@@ -171,16 +183,19 @@ and now for something completely different
1
+ $ echo
+
$ hg clone . dupe
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
+ $ echo
+
$ for x in a b c d; do echo content > dupe/$x; done
$ hg -R dupe add
- adding dupe/a (glob)
- adding dupe/b (glob)
- adding dupe/c (glob)
- adding dupe/d (glob)
+ adding dupe/a
+ adding dupe/b
+ adding dupe/c
+ adding dupe/d
$ python unix2dos.py dupe/b dupe/c dupe/d
$ hg -R dupe ci -m a dupe/a
$ hg -R dupe ci -m b/c dupe/[bc]
@@ -259,6 +274,8 @@ and now for something completely different
1
+ $ echo
+
$ hg pull dupe
pulling from dupe
searching for changes
@@ -266,7 +283,7 @@ and now for something completely different
adding manifests
adding file changes
added 3 changesets with 4 changes to 4 files
- attempt to commit or push text file(s) using CRLF line endings
+ Attempt to commit or push text file(s) using CRLF line endings
in 67ac5962ab43: d
in 68c127d1834e: b
in 68c127d1834e: c
@@ -289,7 +306,8 @@ and now for something completely different
rollback completed
abort: pretxnchangegroup.crlf hook failed
[255]
-
+ $ echo
+
$ hg log -v
changeset: 5:f0b1c8d75fce
tag: tip
@@ -340,6 +358,8 @@ and now for something completely different
1
+ $ echo
+
$ rm .hg/hgrc
$ (echo some; echo text) > f3
$ python -c 'file("f4.bat", "wb").write("rem empty\x0D\x0A")'
@@ -352,7 +372,8 @@ and now for something completely different
text
$ cat f4.bat
rem empty\r (esc)
-
+ $ echo
+
$ echo '[extensions]' >> .hg/hgrc
$ echo 'win32text = ' >> .hg/hgrc
$ echo '[decode]' >> .hg/hgrc
@@ -385,7 +406,7 @@ Disable warning:
WARNING: f4.bat already has CRLF line endings
and does not need EOL conversion by the win32text plugin.
Before your next commit, please reconsider your encode/decode settings in
- Mercurial.ini or $TESTTMP/t/.hg/hgrc. (glob)
+ Mercurial.ini or $TESTTMP/t/.hg/hgrc.
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat bin
hello\x00\r (esc)
@@ -394,7 +415,8 @@ Disable warning:
text\r (esc)
$ cat f4.bat
rem empty\r (esc)
-
+ $ echo
+
$ python -c 'file("f5.sh", "wb").write("# empty\x0D\x0A")'
$ hg add f5.sh
$ hg ci -m 7
@@ -422,5 +444,3 @@ Disable warning:
$ hg st -q
$ cat linefeed
% just linefeed\r (esc)
-
- $ cd ..
diff --git a/tests/test-wireproto.py b/tests/test-wireproto.py
index 82f7f0b..ab6db19 100644
--- a/tests/test-wireproto.py
+++ b/tests/test-wireproto.py
@@ -9,7 +9,7 @@ class proto(object):
names = spec.split()
return [args[n] for n in names]
-class clientpeer(wireproto.wirepeer):
+class clientrepo(wireproto.wirerepository):
def __init__(self, serverrepo):
self.serverrepo = serverrepo
def _call(self, cmd, **args):
@@ -36,7 +36,7 @@ def greet(repo, proto, name):
wireproto.commands['greet'] = (greet, 'name',)
srv = serverrepo()
-clt = clientpeer(srv)
+clt = clientrepo(srv)
print clt.greet("Foobar")
b = clt.batch()
diff --git a/tests/test-wireproto.t b/tests/test-wireproto.t
index c8a81ea..204ab49 100644
--- a/tests/test-wireproto.t
+++ b/tests/test-wireproto.t
@@ -1,4 +1,3 @@
- $ "$TESTDIR/hghave" serve || exit 80
Test wire protocol argument passing
diff --git a/tests/tinyproxy.py b/tests/tinyproxy.py
index 044eba2..88f5688 100755
--- a/tests/tinyproxy.py
+++ b/tests/tinyproxy.py
@@ -12,7 +12,7 @@ Any help will be greatly appreciated. SUZUKI Hisao
__version__ = "0.2.1"
-import BaseHTTPServer, select, socket, SocketServer, urlparse, os
+import BaseHTTPServer, select, socket, SocketServer, urlparse
class ProxyHandler (BaseHTTPServer.BaseHTTPRequestHandler):
__base = BaseHTTPServer.BaseHTTPRequestHandler
@@ -23,8 +23,7 @@ class ProxyHandler (BaseHTTPServer.BaseHTTPRequestHandler):
def handle(self):
(ip, port) = self.client_address
- allowed = getattr(self, 'allowed_clients', None)
- if allowed is not None and ip not in allowed:
+ if hasattr(self, 'allowed_clients') and ip not in self.allowed_clients:
self.raw_requestline = self.rfile.readline()
if self.parse_request():
self.send_error(403)
@@ -47,7 +46,7 @@ class ProxyHandler (BaseHTTPServer.BaseHTTPRequestHandler):
try: soc.connect(host_port)
except socket.error, arg:
try: msg = arg[1]
- except (IndexError, TypeError): msg = arg
+ except: msg = arg
self.send_error(404, msg)
return 0
return 1
@@ -122,12 +121,7 @@ class ProxyHandler (BaseHTTPServer.BaseHTTPRequestHandler):
do_DELETE = do_GET
class ThreadingHTTPServer (SocketServer.ThreadingMixIn,
- BaseHTTPServer.HTTPServer):
- def __init__(self, *args, **kwargs):
- BaseHTTPServer.HTTPServer.__init__(self, *args, **kwargs)
- a = open("proxy.pid", "w")
- a.write(str(os.getpid()) + "\n")
- a.close()
+ BaseHTTPServer.HTTPServer): pass
if __name__ == '__main__':
from sys import argv