-- cgit v1.2.1 From 921ced43c48c1d170452a7b251b94cc96ec8dd44 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Sat, 1 Oct 2011 20:49:36 +0000 Subject: Imported from /srv/lorry/lorry-area/mercurial-tarball/mercurial-1.9.3.tar.gz. --- .hgignore | 8 +- .hgsigs | 14 - .hgtags | 15 - Makefile | 12 +- PKG-INFO | 2 +- README | 5 - contrib/bash_completion | 1 - contrib/check-code.py | 202 +- contrib/debugcmdserver.py | 47 - contrib/hg-ssh | 64 +- contrib/hgfixes/fix_bytes.py | 2 +- contrib/hgweb.fcgi | 3 +- contrib/hgweb.wsgi | 3 +- contrib/mercurial.el | 3 +- contrib/mq.el | 3 +- contrib/perf.py | 100 +- contrib/plan9/9diff | 42 - contrib/plan9/README | 39 - contrib/plan9/hgrc.d/9diff.rc | 7 - contrib/plan9/hgrc.d/factotum.rc | 4 - contrib/plan9/mkfile | 37 - contrib/plan9/proto | 24 - contrib/setup3k.py | 14 +- contrib/shrink-revlog.py | 29 +- contrib/win32/ReadMe.html | 2 +- contrib/win32/hgwebdir_wsgi.py | 2 +- contrib/win32/mercurial.ini | 8 +- contrib/wix/COPYING.rtf | Bin 1686 -> 1755 bytes contrib/wix/README.txt | 2 +- contrib/wix/guids.wxi | 6 +- contrib/wix/help.wxs | 1 - contrib/wix/i18n.wxs | 2 +- contrib/wix/templates.wxs | 1 - contrib/zsh_completion | 69 +- doc/gendoc.py | 17 +- doc/hg.1 | 2645 +- doc/hg.1.html | 2358 +- doc/hg.1.txt | 52 +- doc/hgignore.5 | 12 +- doc/hgignore.5.html | 13 +- doc/hgignore.5.txt | 8 +- doc/hgmanpage.py | 7 +- doc/hgrc.5 | 590 +- doc/hgrc.5.html | 524 +- doc/hgrc.5.txt | 10 +- doc/runrst | 2 - hgext/acl.py | 102 +- hgext/bugzilla.py | 341 +- hgext/children.py | 7 +- hgext/churn.py | 6 +- hgext/color.py | 24 +- hgext/convert/__init__.py | 21 +- hgext/convert/bzr.py | 101 +- hgext/convert/common.py | 82 +- hgext/convert/convcmd.py | 38 +- hgext/convert/cvs.py | 7 +- hgext/convert/cvsps.py | 60 +- hgext/convert/darcs.py | 6 +- hgext/convert/filemap.py | 52 +- hgext/convert/git.py | 30 +- hgext/convert/hg.py | 31 +- hgext/convert/monotone.py | 12 +- hgext/convert/p4.py | 3 +- hgext/convert/subversion.py | 262 +- hgext/convert/transport.py | 10 +- hgext/eol.py | 30 +- hgext/extdiff.py | 7 +- hgext/factotum.py | 120 - hgext/fetch.py | 25 +- hgext/gpg.py | 12 +- hgext/graphlog.py | 393 +- hgext/hgcia.py | 10 +- hgext/hgk.py | 8 +- hgext/highlight/__init__.py | 7 +- hgext/histedit.py | 715 - hgext/inotify/__init__.py | 8 +- hgext/inotify/linuxserver.py | 7 +- hgext/inotify/server.py | 4 +- hgext/interhg.py | 2 - hgext/keyword.py | 141 +- hgext/largefiles/CONTRIBUTORS | 4 - hgext/largefiles/__init__.py | 102 - hgext/largefiles/basestore.py | 195 - hgext/largefiles/lfcommands.py | 549 - hgext/largefiles/lfutil.py | 467 - hgext/largefiles/localstore.py | 82 - hgext/largefiles/overrides.py | 1080 - hgext/largefiles/proto.py | 173 - hgext/largefiles/remotestore.py | 110 - hgext/largefiles/reposetup.py | 475 - hgext/largefiles/uisetup.py | 167 - hgext/largefiles/wirestore.py | 37 - hgext/mq.py | 704 +- hgext/notify.py | 171 +- hgext/pager.py | 53 +- hgext/patchbomb.py | 197 +- hgext/progress.py | 55 +- hgext/purge.py | 8 +- hgext/rebase.py | 304 +- hgext/record.py | 101 +- hgext/relink.py | 9 +- hgext/schemes.py | 9 +- hgext/share.py | 39 +- hgext/transplant.py | 125 +- hgext/win32mbcs.py | 13 +- hgext/win32text.py | 4 +- hgext/zeroconf/Zeroconf.py | 4 +- hgext/zeroconf/__init__.py | 9 +- hgweb.cgi | 3 +- i18n/da.po | 9263 ++----- i18n/de.po | 25284 ++++++++----------- i18n/it.po | 5 +- i18n/ja.po | 10348 ++------ i18n/polib.py | 1501 +- i18n/pt_BR.po | 7966 ++---- i18n/ro.po | 2 - i18n/ru.po | 13886 +++------- i18n/sv.po | 6402 ++--- mercurial/__version__.py | 2 +- mercurial/archival.py | 21 +- mercurial/base85.c | 15 +- mercurial/bdiff.c | 110 +- mercurial/bookmarks.py | 92 +- mercurial/bundlerepo.py | 56 +- mercurial/byterange.py | 16 +- mercurial/changegroup.py | 2 +- mercurial/changelog.py | 38 +- mercurial/cmdutil.py | 789 +- mercurial/commands.py | 2435 +- mercurial/commandserver.py | 8 +- mercurial/config.py | 50 +- mercurial/context.py | 330 +- mercurial/copies.py | 147 +- mercurial/dagparser.py | 11 +- mercurial/dagutil.py | 12 +- mercurial/demandimport.py | 30 +- mercurial/diffhelpers.c | 31 +- mercurial/dirstate.py | 192 +- mercurial/discovery.py | 448 +- mercurial/dispatch.py | 244 +- mercurial/encoding.py | 150 +- mercurial/error.py | 3 - mercurial/exewrapper.c | 101 - mercurial/extensions.py | 38 +- mercurial/fancyopts.py | 2 +- mercurial/filemerge.py | 255 +- mercurial/fileset.py | 37 +- mercurial/formatter.py | 71 - mercurial/graphmod.py | 235 +- mercurial/hbisect.py | 123 +- mercurial/help.py | 154 +- mercurial/help/config.txt | 567 +- mercurial/help/filesets.txt | 2 +- mercurial/help/glossary.txt | 23 +- mercurial/help/hgignore.txt | 17 +- mercurial/help/hgweb.txt | 71 +- mercurial/help/merge-tools.txt | 32 +- mercurial/help/patterns.txt | 4 - mercurial/help/phases.txt | 84 - mercurial/help/revisions.txt | 12 +- mercurial/help/revsets.txt | 7 +- mercurial/help/subrepos.txt | 68 +- mercurial/hg.py | 189 +- mercurial/hgweb/common.py | 2 +- mercurial/hgweb/hgweb_mod.py | 11 +- mercurial/hgweb/hgwebdir_mod.py | 115 +- mercurial/hgweb/protocol.py | 5 - mercurial/hgweb/request.py | 2 +- mercurial/hgweb/server.py | 3 +- mercurial/hgweb/webcommands.py | 232 +- mercurial/hgweb/webutil.py | 86 +- mercurial/hgweb/wsgicgi.py | 3 +- mercurial/hook.py | 32 +- mercurial/httpclient/__init__.py | 214 +- mercurial/httpclient/_readers.py | 195 - mercurial/httpclient/tests/__init__.py | 1 + mercurial/httpclient/tests/simple_http_test.py | 386 + mercurial/httpclient/tests/test_bogus_responses.py | 68 + .../httpclient/tests/test_chunked_transfer.py | 137 + mercurial/httpclient/tests/test_proxy_support.py | 135 + mercurial/httpclient/tests/test_ssl.py | 93 + mercurial/httpclient/tests/util.py | 195 + mercurial/httpconnection.py | 10 +- mercurial/httppeer.py | 248 - mercurial/httprepo.py | 244 + mercurial/i18n.py | 3 +- mercurial/ignore.py | 1 - mercurial/keepalive.py | 23 +- mercurial/localrepo.py | 1250 +- mercurial/lock.py | 8 +- mercurial/lsprof.py | 10 +- mercurial/mail.py | 52 +- mercurial/manifest.py | 12 +- mercurial/match.py | 26 +- mercurial/mdiff.py | 175 +- mercurial/merge.py | 124 +- mercurial/minirst.py | 331 +- mercurial/mpatch.c | 75 +- mercurial/obsolete.py | 331 - mercurial/osutil.c | 7 +- mercurial/parsers.c | 1402 +- mercurial/patch.py | 280 +- mercurial/peer.py | 46 - mercurial/phases.py | 387 - mercurial/posix.py | 155 +- mercurial/pure/__init__.py | 0 mercurial/pure/base85.py | 5 +- mercurial/pure/bdiff.py | 9 +- mercurial/pure/mpatch.py | 4 +- mercurial/pure/osutil.py | 21 +- mercurial/pure/parsers.py | 4 +- mercurial/pushkey.py | 9 +- mercurial/pvec.py | 210 - mercurial/repair.py | 73 +- mercurial/repo.py | 40 + mercurial/revlog.py | 210 +- mercurial/revset.py | 1123 +- mercurial/scmutil.py | 318 +- mercurial/setdiscovery.py | 21 +- mercurial/similar.py | 3 +- mercurial/simplemerge.py | 10 +- mercurial/sshpeer.py | 239 - mercurial/sshrepo.py | 214 + mercurial/sshserver.py | 11 +- mercurial/sslutil.py | 75 +- mercurial/statichttprepo.py | 35 +- mercurial/store.py | 51 +- mercurial/subrepo.py | 316 +- mercurial/tags.py | 11 +- mercurial/templatefilters.py | 47 +- mercurial/templatekw.py | 29 +- mercurial/templater.py | 19 +- mercurial/templates/coal/map | 13 +- mercurial/templates/gitweb/changelogentry.tmpl | 2 +- mercurial/templates/gitweb/changeset.tmpl | 2 +- mercurial/templates/gitweb/fileannotate.tmpl | 3 +- mercurial/templates/gitweb/filecomparison.tmpl | 71 - mercurial/templates/gitweb/filediff.tmpl | 4 +- mercurial/templates/gitweb/filelog.tmpl | 1 - mercurial/templates/gitweb/filerevision.tmpl | 3 +- mercurial/templates/gitweb/graph.tmpl | 10 + mercurial/templates/gitweb/map | 42 +- mercurial/templates/gitweb/summary.tmpl | 4 +- mercurial/templates/map-cmdline.bisect | 25 - mercurial/templates/map-cmdline.default | 2 +- mercurial/templates/monoblue/bookmarks.tmpl | 2 +- mercurial/templates/monoblue/branches.tmpl | 2 +- mercurial/templates/monoblue/changelogentry.tmpl | 2 +- mercurial/templates/monoblue/changeset.tmpl | 6 +- mercurial/templates/monoblue/error.tmpl | 2 +- mercurial/templates/monoblue/fileannotate.tmpl | 5 +- mercurial/templates/monoblue/filecomparison.tmpl | 72 - mercurial/templates/monoblue/filediff.tmpl | 1 - mercurial/templates/monoblue/filelog.tmpl | 1 - mercurial/templates/monoblue/filerevision.tmpl | 5 +- mercurial/templates/monoblue/footer.tmpl | 2 +- mercurial/templates/monoblue/graph.tmpl | 10 + mercurial/templates/monoblue/help.tmpl | 2 +- mercurial/templates/monoblue/helptopics.tmpl | 2 +- mercurial/templates/monoblue/index.tmpl | 2 +- mercurial/templates/monoblue/map | 34 +- mercurial/templates/monoblue/notfound.tmpl | 2 +- mercurial/templates/monoblue/tags.tmpl | 2 +- mercurial/templates/paper/bookmarks.tmpl | 2 +- mercurial/templates/paper/branches.tmpl | 2 +- mercurial/templates/paper/changeset.tmpl | 4 +- mercurial/templates/paper/error.tmpl | 4 +- mercurial/templates/paper/fileannotate.tmpl | 5 +- mercurial/templates/paper/filecomparison.tmpl | 93 - mercurial/templates/paper/filediff.tmpl | 5 +- mercurial/templates/paper/filelog.tmpl | 3 +- mercurial/templates/paper/filelogentry.tmpl | 2 +- mercurial/templates/paper/filerevision.tmpl | 5 +- mercurial/templates/paper/graph.tmpl | 12 +- mercurial/templates/paper/help.tmpl | 4 +- mercurial/templates/paper/helptopics.tmpl | 2 +- mercurial/templates/paper/index.tmpl | 2 +- mercurial/templates/paper/manifest.tmpl | 2 +- mercurial/templates/paper/map | 15 +- mercurial/templates/paper/search.tmpl | 2 +- mercurial/templates/paper/shortlog.tmpl | 2 +- mercurial/templates/paper/shortlogentry.tmpl | 2 +- mercurial/templates/paper/tags.tmpl | 2 +- mercurial/templates/raw/graph.tmpl | 6 - mercurial/templates/raw/graphedge.tmpl | 1 - mercurial/templates/raw/graphnode.tmpl | 7 - mercurial/templates/raw/map | 8 - mercurial/templates/spartan/changelogentry.tmpl | 4 +- mercurial/templates/spartan/changeset.tmpl | 2 +- mercurial/templates/spartan/fileannotate.tmpl | 2 +- mercurial/templates/spartan/filelogentry.tmpl | 4 +- mercurial/templates/spartan/filerevision.tmpl | 2 +- mercurial/templates/spartan/footer.tmpl | 2 +- mercurial/templates/spartan/graph.tmpl | 10 + mercurial/templates/spartan/map | 2 +- mercurial/templates/spartan/shortlogentry.tmpl | 2 +- mercurial/templates/static/mercurial.js | 57 +- mercurial/templates/static/style-coal.css | 37 - mercurial/templates/static/style-gitweb.css | 41 - mercurial/templates/static/style-monoblue.css | 47 - mercurial/templates/static/style-paper.css | 37 - mercurial/transaction.py | 2 +- mercurial/treediscovery.py | 4 +- mercurial/ui.py | 76 +- mercurial/url.py | 9 +- mercurial/util.h | 63 +- mercurial/util.py | 400 +- mercurial/verify.py | 4 +- mercurial/win32.py | 95 +- mercurial/windows.py | 81 +- mercurial/wireproto.py | 69 +- setup.py | 181 +- tests/blacklists/linux-vfat | 35 - tests/bundles/rebase-revset.hg | Bin 1844 -> 0 bytes tests/bundles/rename.sh | 30 - tests/bundles/renames.hg | Bin 1600 -> 0 bytes tests/bzr-definitions | 2 +- tests/dummyssh | 6 +- tests/get-with-headers.py | 4 +- tests/heredoctest.py | 19 - tests/hghave | 221 +- tests/hghave.py | 308 - tests/histedit-helpers.sh | 6 - tests/missing-comment.hg | Bin 1077 -> 0 bytes tests/notcapable | 11 +- tests/printenv.py | 12 +- tests/run-tests.py | 248 +- tests/sitecustomize.py | 3 +- tests/svn/empty.svndump | 129 - tests/svn/svndump-empty.sh | 47 - tests/svnxml.py | 51 - tests/test-1102.t | 1 - tests/test-1993.t | 2 - tests/test-586.t | 1 - tests/test-abort-checkin.t | 2 - tests/test-acl.t | 385 +- tests/test-add.t | 16 +- tests/test-addremove-similar.t | 8 +- tests/test-addremove.t | 10 +- tests/test-alias.t | 181 +- tests/test-annotate.t | 69 +- tests/test-archive-symlinks.t | 8 +- tests/test-archive.t | 19 +- tests/test-atomictempfile.py | 11 +- tests/test-audit-path.t | 40 +- tests/test-backout.t | 12 +- tests/test-bad-pull.t | 31 +- tests/test-basic.t | 2 - tests/test-bdiff.py | 14 - tests/test-bdiff.py.out | 1 - tests/test-bheads.t | 8 - tests/test-bisect.t | 71 +- tests/test-bisect2.t | 362 - tests/test-bisect3.t | 232 - tests/test-bookmarks-current.t | 43 - tests/test-bookmarks-merge.t | 93 - tests/test-bookmarks-pushpull.t | 135 +- tests/test-bookmarks-rebase.t | 3 +- tests/test-bookmarks-strip.t | 6 +- tests/test-bookmarks.t | 117 +- tests/test-branch-option.t | 6 - tests/test-branch-tag-confict.t | 3 - tests/test-branches.t | 12 - tests/test-bundle-r.t | 8 +- tests/test-bundle-type.t | 1 + tests/test-bundle-vs-outgoing.t | 1 - tests/test-bundle.t | 76 +- tests/test-casecollision-i18n.t | 43 + tests/test-casecollision-merge.t | 209 - tests/test-casecollision.t | 31 - tests/test-casefolding.t | 110 +- tests/test-changelog-exec.t | 6 +- tests/test-check-code-hg.py | 24 + tests/test-check-code-hg.t | 183 - tests/test-check-code.t | 30 +- tests/test-check-pyflakes.t | 12 +- tests/test-children.t | 2 - tests/test-churn.t | 2 - tests/test-clone-cgi.t | 2 - tests/test-clone-failure.t | 78 + tests/test-clone-pull-corruption.t | 6 +- tests/test-clone-r.t | 38 +- tests/test-clone-update-order.t | 2 - tests/test-clone.t | 118 +- tests/test-command-template.t | 33 +- tests/test-commandserver.py | 101 +- tests/test-commandserver.py.out | 147 +- tests/test-commit-amend.t | 357 - tests/test-commit-copy.t | 16 + tests/test-commit-multiple.t | 4 - tests/test-commit-unresolved.t | 4 +- tests/test-commit.t | 36 +- tests/test-committer.t | 4 +- tests/test-config-case.t | 3 - tests/test-conflict.t | 2 +- tests/test-contrib.t | 20 +- tests/test-convert-authormap.t | 6 +- tests/test-convert-baz | 79 + tests/test-convert-baz.out | 96 + tests/test-convert-baz.t | 163 - tests/test-convert-bzr-directories.t | 42 - tests/test-convert-bzr-ghosts.t | 6 +- tests/test-convert-bzr-merges.t | 14 +- tests/test-convert-bzr-treeroot.t | 2 - tests/test-convert-bzr.t | 125 +- tests/test-convert-clonebranches.t | 4 - tests/test-convert-cvs-branch.t | 1 - tests/test-convert-cvs.t | 6 +- tests/test-convert-cvsnt-mergepoints.t | 7 +- tests/test-convert-darcs.t | 81 +- tests/test-convert-datesort.t | 2 - tests/test-convert-filemap.t | 225 +- tests/test-convert-git.t | 11 +- tests/test-convert-hg-source.t | 14 +- tests/test-convert-hg-startrev.t | 1 - tests/test-convert-hg-svn.t | 49 +- tests/test-convert-p4 | 75 + tests/test-convert-p4-filetypes | 104 + tests/test-convert-p4-filetypes.out | 642 + tests/test-convert-p4-filetypes.t | 733 - tests/test-convert-p4.out | 88 + tests/test-convert-p4.t | 152 - tests/test-convert-splicemap.t | 159 +- tests/test-convert-svn-branches.t | 2 - tests/test-convert-svn-move.t | 27 +- tests/test-convert-svn-sink.t | 428 +- tests/test-convert-svn-source.t | 62 +- tests/test-convert-tagsbranch-topology.t | 6 - tests/test-convert-tla.t | 2 +- tests/test-convert.t | 189 +- tests/test-copy-move-merge.t | 8 +- tests/test-copy.t | 136 +- tests/test-copy2.t | 109 + tests/test-debugbuilddag.t | 24 +- tests/test-debugbundle.t | 1 - tests/test-debugcommands.t | 25 - tests/test-debugcomplete.t | 32 +- tests/test-debugindexdot.t | 2 - tests/test-default-push.t | 4 +- tests/test-diff-binary-file.t | 3 +- tests/test-diff-change.t | 11 +- tests/test-diff-color.t | 21 +- tests/test-diff-hashes.t | 5 +- tests/test-diff-ignore-whitespace.t | 56 - tests/test-diff-newlines.t | 2 +- tests/test-diff-subdir.t | 1 - tests/test-diff-unified.t | 121 +- tests/test-diff-upgrade.t | 1 - tests/test-diffstat.t | 15 +- tests/test-dirstate.t | 21 +- tests/test-dispatch.t | 19 +- tests/test-doctest.py | 15 +- tests/test-double-merge.t | 8 +- tests/test-duplicateoptions.py | 12 +- tests/test-empty-file.t | 1 - tests/test-empty.t | 2 - tests/test-encode.t | 2 - tests/test-encoding-align.t | 21 +- tests/test-encoding-textwrap.t | 50 +- tests/test-encoding.t | 7 +- tests/test-eol-clone.t | 2 - tests/test-eol-hook.t | 3 +- tests/test-eol-tag.t | 2 - tests/test-eol.t | 89 +- tests/test-eolfilename.t | 2 - tests/test-excessive-merge.t | 18 +- tests/test-export.t | 39 +- tests/test-extdiff.t | 20 +- tests/test-extension.t | 198 +- tests/test-extra-filelog-entry.t | 4 +- tests/test-fetch.t | 104 +- tests/test-filebranch.t | 39 +- tests/test-filecache.py | 95 - tests/test-filecache.py.out | 15 - tests/test-filelog | 50 + tests/test-filelog.out | 2 + tests/test-filelog.py | 55 - tests/test-filelog.py.out | 2 - tests/test-flags.t | 18 +- tests/test-fncache.t | 12 +- tests/test-gendoc.t | 8 +- tests/test-getbundle.t | 1 - tests/test-git-export.t | 17 +- tests/test-globalopts.t | 297 +- tests/test-glog.t | 743 +- tests/test-gpg.t | 11 +- tests/test-graft.t | 535 - tests/test-grep.t | 15 +- tests/test-hardlinks.t | 28 +- tests/test-help.t | 881 +- tests/test-hgcia.t | 2 - tests/test-hgignore.t | 8 +- tests/test-hgk.t | 2 - tests/test-hgrc.t | 82 +- tests/test-hgweb-commands.t | 380 +- tests/test-hgweb-descend-empties.t | 6 +- tests/test-hgweb-diffs.t | 523 +- tests/test-hgweb-empty.t | 22 +- tests/test-hgweb-filelog.t | 45 +- tests/test-hgweb-no-path-info.t | 2 - tests/test-hgweb-no-request-uri.t | 2 - tests/test-hgweb-non-interactive.t | 2 - tests/test-hgweb-raw.t | 31 +- tests/test-hgweb-removed.t | 13 +- tests/test-hgweb.t | 71 +- tests/test-hgwebdir.t | 402 +- tests/test-hgwebdirsym.t | 20 +- tests/test-highlight.t | 92 +- tests/test-histedit-bookmark-motion.t | 187 - tests/test-histedit-commute.t | 359 - tests/test-histedit-drop.t | 107 - tests/test-histedit-edit.t | 178 - tests/test-histedit-fold-non-commute.t | 147 - tests/test-histedit-fold.t | 238 - tests/test-histedit-no-change.t | 187 - tests/test-histedit-non-commute-abort.t | 131 - tests/test-histedit-non-commute.t | 244 - tests/test-histedit-outgoing.t | 84 - tests/test-histedit-revspec.t | 62 - tests/test-hook.t | 299 +- tests/test-http-branchmap.t | 2 - tests/test-http-clone-r.t | 4 +- tests/test-http-proxy.t | 10 +- tests/test-http.t | 29 +- tests/test-https.t | 30 +- tests/test-hup.t | 24 +- tests/test-i18n.t | 16 - tests/test-identify.t | 11 +- tests/test-impexp-branch.t | 17 - tests/test-import-bypass.t | 29 +- tests/test-import-context.t | 1 - tests/test-import-git.t | 189 +- tests/test-import-merge.t | 115 - tests/test-import-unknown.t | 2 - tests/test-import.t | 263 +- tests/test-incoming-outgoing.t | 11 - tests/test-inherit-mode.t | 13 +- tests/test-init.t | 31 +- tests/test-inotify-dirty-dirstate.t | 2 - tests/test-inotify-issue1208.t | 2 - tests/test-inotify.t | 2 - tests/test-install.t | 22 +- tests/test-interhg.t | 6 +- tests/test-issue1089.t | 5 +- tests/test-issue1306.t | 1 - tests/test-issue1502.t | 4 +- tests/test-issue1802.t | 73 - tests/test-issue1877.t | 1 - tests/test-issue2137.t | 2 - tests/test-issue3084.t | 110 - tests/test-issue522.t | 12 +- tests/test-issue612.t | 6 +- tests/test-issue619.t | 1 - tests/test-issue660.t | 4 +- tests/test-issue672.t | 18 +- tests/test-issue842.t | 1 - tests/test-journal-exists.t | 2 - tests/test-keyword.t | 124 +- tests/test-known.t | 1 - tests/test-largefiles-cache.t | 125 - tests/test-largefiles-small-disk.t | 67 - tests/test-largefiles.t | 1447 -- tests/test-lfconvert.t | 272 - tests/test-locate.t | 39 +- tests/test-lock-badness.t | 2 - tests/test-log.t | 221 +- tests/test-mactext.t | 8 +- tests/test-manifest-merging.t | 1 - tests/test-merge-closedheads.t | 2 - tests/test-merge-commit.t | 53 +- tests/test-merge-default.t | 6 +- tests/test-merge-force.t | 3 +- tests/test-merge-local.t | 6 +- tests/test-merge-prompt.t | 4 +- tests/test-merge-revert2.t | 2 +- tests/test-merge-symlinks.t | 3 +- tests/test-merge-tools.t | 288 +- tests/test-merge-types.t | 48 +- tests/test-merge1.t | 14 +- tests/test-merge10.t | 2 - tests/test-merge2.t | 2 - tests/test-merge4.t | 5 - tests/test-merge6.t | 2 - tests/test-merge7.t | 22 +- tests/test-merge8.t | 2 - tests/test-merge9.t | 4 +- tests/test-minirst.py | 76 +- tests/test-minirst.py.out | 450 +- tests/test-mq-caches.t | 12 +- tests/test-mq-guards.t | 73 - tests/test-mq-header-from.t | 2 - tests/test-mq-merge.t | 26 +- tests/test-mq-missingfiles.t | 47 - tests/test-mq-qclone-http.t | 10 +- tests/test-mq-qdelete.t | 3 - tests/test-mq-qdiff.t | 4 +- tests/test-mq-qgoto.t | 1 - tests/test-mq-qimport-fail-cleanup.t | 14 +- tests/test-mq-qimport.t | 73 +- tests/test-mq-qnew.t | 12 +- tests/test-mq-qpush-exact.t | 1 - tests/test-mq-qpush-fail.t | 274 - tests/test-mq-qrefresh-interactive.t | 76 +- tests/test-mq-qrefresh.t | 21 - tests/test-mq-qrename.t | 31 +- tests/test-mq-safety.t | 49 +- tests/test-mq-strip.t | 47 +- tests/test-mq-subrepo-svn.t | 25 +- tests/test-mq-subrepo.t | 185 +- tests/test-mq-symlinks.t | 12 +- tests/test-mq.t | 228 +- tests/test-mv-cp-st-diff.t | 6 +- tests/test-nested-repo.t | 9 +- tests/test-newbranch.t | 8 - tests/test-newcgi.t | 2 - tests/test-newercgi.t | 2 - tests/test-notify-changegroup.t | 143 +- tests/test-notify.t | 217 +- tests/test-obsolete-changeset-exchange.t | 55 - tests/test-obsolete.t | 508 - tests/test-oldcgi.t | 2 - tests/test-parents.t | 2 - tests/test-parse-date.t | 20 +- tests/test-parseindex.t | 2 - tests/test-parseindex2.py | 21 +- tests/test-patch-offset.t | 3 - tests/test-patch.t | 2 +- tests/test-patchbomb.t | 1231 +- tests/test-paths.t | 23 +- tests/test-pending.t | 4 +- tests/test-permissions.t | 3 - tests/test-phases-exchange.t | 1065 - tests/test-phases.t | 479 - tests/test-profile.t | 48 +- tests/test-progress.t | 82 +- tests/test-pull-branch.t | 5 - tests/test-pull-http.t | 22 +- tests/test-pull-permission.t | 3 - tests/test-pull-pull-corruption.t | 19 +- tests/test-pull-pull-corruption2.t | 44 + tests/test-pull-r.t | 3 +- tests/test-pull-update.t | 1 - tests/test-pull.t | 6 +- tests/test-purge.t | 34 +- tests/test-push-cgi.t | 4 - tests/test-push-http.t | 16 +- tests/test-push-r.t | 3 +- tests/test-push-validation.t | 3 +- tests/test-push-warn.t | 14 - tests/test-qrecord.t | 94 +- tests/test-rebase-abort.t | 66 +- tests/test-rebase-bookmarks.t | 36 +- tests/test-rebase-cache.t | 136 +- tests/test-rebase-check-restore.t | 68 +- tests/test-rebase-collapse.t | 272 +- tests/test-rebase-conflicts.t | 34 +- tests/test-rebase-detach.t | 163 +- tests/test-rebase-interruptions.t | 114 +- tests/test-rebase-issue-noparam-single-rev.t | 5 - tests/test-rebase-mq-skip.t | 9 +- tests/test-rebase-mq.t | 68 +- tests/test-rebase-named-branches.t | 156 +- tests/test-rebase-newancestor.t | 2 - tests/test-rebase-parameters.t | 83 +- tests/test-rebase-pull.t | 13 +- tests/test-rebase-rename.t | 1 - tests/test-rebase-scenario-global.t | 349 +- tests/test-rebuildstate.t | 5 +- tests/test-record.t | 388 +- tests/test-relink.t | 12 +- tests/test-remove-new.t | 13 + tests/test-remove.t | 32 +- tests/test-rename-after-merge.t | 1 - tests/test-rename-dir-merge.t | 54 +- tests/test-rename-merge1.t | 56 +- tests/test-rename-merge2.t | 110 +- tests/test-rename.t | 98 +- tests/test-repair-strip.t | 2 - tests/test-requires.t | 2 - tests/test-resolve.t | 2 - tests/test-revert-flags.t | 2 - tests/test-revert.t | 16 +- tests/test-revlog-ancestry.py | 16 +- tests/test-revlog-ancestry.py.out | 2 - tests/test-revlog-group-emptyiter.t | 1 - tests/test-revlog-packentry.t | 8 +- tests/test-revset-dirstate-parents.t | 14 +- tests/test-revset-outgoing.t | 10 +- tests/test-revset.t | 402 +- tests/test-rollback.t | 124 +- tests/test-run-tests.t | 60 - tests/test-schemes.t | 3 - tests/test-serve.t | 10 +- tests/test-setdiscovery.t | 3 +- tests/test-share.t | 34 +- tests/test-simple-update.t | 2 - tests/test-simplemerge.py | 3 +- tests/test-ssh-clone-r.t | 14 +- tests/test-ssh.t | 120 +- tests/test-static-http.t | 18 +- tests/test-status-color.t | 16 +- tests/test-status.t | 65 +- tests/test-strict.t | 38 +- tests/test-strip-cross.t | 66 +- tests/test-subrepo-deep-nested-change.t | 182 +- tests/test-subrepo-git.t | 79 +- tests/test-subrepo-missing.t | 20 +- tests/test-subrepo-paths.t | 30 +- tests/test-subrepo-recursion.t | 123 +- tests/test-subrepo-relative-path.t | 20 +- tests/test-subrepo-svn.t | 346 +- tests/test-subrepo.t | 314 +- tests/test-symlink-os-yes-fs-no.py | 7 +- tests/test-symlink-placeholder.t | 72 - tests/test-symlinks.t | 18 +- tests/test-tag.t | 33 +- tests/test-tags.t | 6 +- tests/test-template-engine.t | 2 - tests/test-transplant.t | 241 +- tests/test-treediscovery-legacy.t | 61 - tests/test-treediscovery.t | 6 - tests/test-trusted.py.out | 16 +- tests/test-unbundlehash.t | 1 - tests/test-unrelated-pull.t | 2 - tests/test-up-local-change.t | 24 +- tests/test-update-branches.t | 46 +- tests/test-update-issue1456.t | 3 - tests/test-update-renames.t | 5 +- tests/test-update-reverse.t | 4 +- tests/test-url-rev.t | 14 +- tests/test-url.py | 15 +- tests/test-verify.t | 2 - tests/test-walk.t | 55 +- tests/test-walkrepo.py | 11 +- tests/test-win32text.t | 64 +- tests/test-wireproto.py | 4 +- tests/test-wireproto.t | 1 - tests/tinyproxy.py | 14 +- 738 files changed, 38541 insertions(+), 101727 deletions(-) delete mode 100755 contrib/debugcmdserver.py delete mode 100755 contrib/plan9/9diff delete mode 100644 contrib/plan9/README delete mode 100644 contrib/plan9/hgrc.d/9diff.rc delete mode 100644 contrib/plan9/hgrc.d/factotum.rc delete mode 100644 contrib/plan9/mkfile delete mode 100644 contrib/plan9/proto delete mode 100644 hgext/factotum.py delete mode 100644 hgext/histedit.py delete mode 100644 hgext/largefiles/CONTRIBUTORS delete mode 100644 hgext/largefiles/__init__.py delete mode 100644 hgext/largefiles/basestore.py delete mode 100644 hgext/largefiles/lfcommands.py delete mode 100644 hgext/largefiles/lfutil.py delete mode 100644 hgext/largefiles/localstore.py delete mode 100644 hgext/largefiles/overrides.py delete mode 100644 hgext/largefiles/proto.py delete mode 100644 hgext/largefiles/remotestore.py delete mode 100644 hgext/largefiles/reposetup.py delete mode 100644 hgext/largefiles/uisetup.py delete mode 100644 hgext/largefiles/wirestore.py delete mode 100644 mercurial/exewrapper.c delete mode 100644 mercurial/formatter.py delete mode 100644 mercurial/help/phases.txt delete mode 100644 mercurial/httpclient/_readers.py create mode 100644 mercurial/httpclient/tests/__init__.py create mode 100644 mercurial/httpclient/tests/simple_http_test.py create mode 100644 mercurial/httpclient/tests/test_bogus_responses.py create mode 100644 mercurial/httpclient/tests/test_chunked_transfer.py create mode 100644 mercurial/httpclient/tests/test_proxy_support.py create mode 100644 mercurial/httpclient/tests/test_ssl.py create mode 100644 mercurial/httpclient/tests/util.py delete mode 100644 mercurial/httppeer.py create mode 100644 mercurial/httprepo.py delete mode 100644 mercurial/obsolete.py delete mode 100644 mercurial/peer.py delete mode 100644 mercurial/phases.py delete mode 100644 mercurial/pure/__init__.py delete mode 100644 mercurial/pvec.py create mode 100644 mercurial/repo.py delete mode 100644 mercurial/sshpeer.py create mode 100644 mercurial/sshrepo.py delete mode 100644 mercurial/templates/gitweb/filecomparison.tmpl delete mode 100644 mercurial/templates/map-cmdline.bisect delete mode 100644 mercurial/templates/monoblue/filecomparison.tmpl delete mode 100644 mercurial/templates/paper/filecomparison.tmpl delete mode 100644 mercurial/templates/raw/graph.tmpl delete mode 100644 mercurial/templates/raw/graphedge.tmpl delete mode 100644 mercurial/templates/raw/graphnode.tmpl delete mode 100644 tests/blacklists/linux-vfat delete mode 100644 tests/bundles/rebase-revset.hg delete mode 100755 tests/bundles/rename.sh delete mode 100644 tests/bundles/renames.hg delete mode 100644 tests/heredoctest.py delete mode 100755 tests/hghave.py delete mode 100644 tests/histedit-helpers.sh delete mode 100644 tests/missing-comment.hg delete mode 100644 tests/svn/empty.svndump delete mode 100755 tests/svn/svndump-empty.sh delete mode 100644 tests/svnxml.py delete mode 100644 tests/test-bisect3.t delete mode 100644 tests/test-bookmarks-merge.t create mode 100644 tests/test-casecollision-i18n.t delete mode 100644 tests/test-casecollision-merge.t create mode 100644 tests/test-check-code-hg.py delete mode 100644 tests/test-check-code-hg.t create mode 100644 tests/test-clone-failure.t delete mode 100644 tests/test-commit-amend.t create mode 100644 tests/test-commit-copy.t create mode 100755 tests/test-convert-baz create mode 100644 tests/test-convert-baz.out delete mode 100644 tests/test-convert-baz.t create mode 100755 tests/test-convert-p4 create mode 100755 tests/test-convert-p4-filetypes create mode 100644 tests/test-convert-p4-filetypes.out delete mode 100644 tests/test-convert-p4-filetypes.t create mode 100644 tests/test-convert-p4.out delete mode 100644 tests/test-convert-p4.t create mode 100644 tests/test-copy2.t delete mode 100644 tests/test-debugcommands.t delete mode 100644 tests/test-filecache.py delete mode 100644 tests/test-filecache.py.out create mode 100755 tests/test-filelog create mode 100644 tests/test-filelog.out delete mode 100755 tests/test-filelog.py delete mode 100644 tests/test-filelog.py.out delete mode 100644 tests/test-graft.t delete mode 100644 tests/test-histedit-bookmark-motion.t delete mode 100644 tests/test-histedit-commute.t delete mode 100644 tests/test-histedit-drop.t delete mode 100644 tests/test-histedit-edit.t delete mode 100644 tests/test-histedit-fold-non-commute.t delete mode 100644 tests/test-histedit-fold.t delete mode 100644 tests/test-histedit-no-change.t delete mode 100644 tests/test-histedit-non-commute-abort.t delete mode 100644 tests/test-histedit-non-commute.t delete mode 100644 tests/test-histedit-outgoing.t delete mode 100644 tests/test-histedit-revspec.t delete mode 100644 tests/test-import-merge.t delete mode 100644 tests/test-issue1802.t delete mode 100644 tests/test-issue3084.t delete mode 100644 tests/test-largefiles-cache.t delete mode 100644 tests/test-largefiles-small-disk.t delete mode 100644 tests/test-largefiles.t delete mode 100644 tests/test-lfconvert.t delete mode 100644 tests/test-obsolete-changeset-exchange.t delete mode 100644 tests/test-obsolete.t delete mode 100644 tests/test-phases-exchange.t delete mode 100644 tests/test-phases.t create mode 100644 tests/test-pull-pull-corruption2.t create mode 100644 tests/test-remove-new.t delete mode 100644 tests/test-symlink-placeholder.t 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'.*(? 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'(?< ](\+=|-=|!=|<>|<=|>=|<<=|>>=|%=)\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'(?:(?', 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 . +;; (`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 . +;; 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

- Mercurial is Copyright 2005-2012 Matt Mackall and others. See + Mercurial is Copyright 2005-2010 Matt Mackall and others. See the Contributors.txt file for a list of contributors.

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 Binary files a/contrib/wix/COPYING.rtf and b/contrib/wix/COPYING.rtf 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 @@ - + - + - + 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 @@ - 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 @@ 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 @@ - 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 ]: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 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 as collapse commit message]:text:' \ - '(--edit -e)'{-e,--edit}'[invoke editor on commit messages]' \ - '(--logfile -l)'{-l+,--logfile}'[read collapse commit message from ]: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 -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. +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 check out a particular version, use \-u/\-\-update, or -\-U/\-\-noupdate to create a clone with no working directory. +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 -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. +Using \-r/\-\-rev (or \(aqclone src#rev dest\(aq) implies \-\-pull, even for +local source repositories. .sp -In some cases, you can clone repositories and the working -directory using full hardlinks with +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 .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,126 +1707,30 @@ 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. -.sp -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 -changed files and full commit message are shown. -.IP Note -. -log \-p/\-\-patch may generate unexpected diff output for merge -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: +ancestors or descendants of the starting revision. \-\-follow\-first +only follows the first parent of merge revisions. .sp -.nf -.ft C -hg log \-r "last(tagged())::" \-\-template "{desc|firstline}\en" -.ft P -.fi -.UNINDENT +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 -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. +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 +changed files and full commit message are shown. +.IP Note +. +log \-p/\-\-patch may generate unexpected diff output for merge +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 .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 \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. +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 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. -.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 @@ -5347,146 +4485,16 @@ re:.*\e.c$ any name ending in ".c", anywhere in the repository .ft P .fi .sp -File examples: -.sp -.nf -.ft C -listfile:list.txt read list from list.txt with one file pattern per line -listfile0:list.txt read list from list.txt with null byte delimiters -.ft P -.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: +File examples: .sp .nf .ft C -hg phase \-fd \(aqoutgoing(URL)\(aq +listfile:list.txt read list from list.txt with one file pattern per line +listfile0:list.txt read list from list.txt with null byte delimiters .ft P .fi -.UNINDENT -.UNINDENT -.UNINDENT .sp -See \%\fBhg help phase\fP\: for more information on manually manipulating phases. +See also \%\fBhg help filesets\fP\:. .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 +.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. -.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 \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\fP containing the bug -IDs separated by non\-digit characters. It may also contain -a named group \fB\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\(ga containing -the bug IDs separated by non\-digit characters. It may also contain -a named group \(ga\(ga\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= user= !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 @@ -8406,212 +7046,12 @@ There is a single configuration option: .sp .nf .ft C -[web] -pygments_style =