##// END OF EJS Templates
dispatch: protect against malicious 'hg serve --stdio' invocations (sec)...
dispatch: protect against malicious 'hg serve --stdio' invocations (sec) Some shared-ssh installations assume that 'hg serve --stdio' is a safe command to run for minimally trusted users. Unfortunately, the messy implementation of argument parsing here meant that trying to access a repo named '--debugger' would give the user a pdb prompt, thereby sidestepping any hoped-for sandboxing. Serving repositories over HTTP(S) is unaffected. We're not currently hardening any subcommands other than 'serve'. If your service exposes other commands to users with arbitrary repository names, it is imperative that you defend against repository names of '--debugger' and anything starting with '--config'. The read-only mode of hg-ssh stopped working because it provided its hook configuration to "hg serve --stdio" via --config parameter. This is banned for security reasons now. This patch switches it to directly call ui.setconfig(). If your custom hosting infrastructure relies on passing --config to "hg serve --stdio", you'll need to find a different way to get that configuration into Mercurial, either by using ui.setconfig() as hg-ssh does in this patch, or by placing an hgrc file someplace where Mercurial will read it. mitrandir@fb.com provided some extra fixes for the dispatch code and for hg-ssh in places that I overlooked.

File last commit:

r32005:2406dbba default
r32050:77eaf953 4.1.3 stable
Show More
test-completion.t
354 lines | 8.4 KiB | text/troff | Tads3Lexer
/ tests / test-completion.t
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 Show all commands except debug commands
$ hg debugcomplete
add
addremove
annotate
archive
backout
bisect
bookmarks
branch
branches
bundle
cat
clone
commit
Matt Mackall
config: move showconfig code and add config as primary alias...
r20570 config
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 copy
diff
export
Matt Mackall
files: add new command unifying locate and manifest functionality
r22423 files
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 forget
graft
grep
heads
help
identify
import
incoming
init
locate
log
manifest
merge
outgoing
parents
paths
phase
pull
push
recover
remove
rename
resolve
revert
rollback
root
serve
status
summary
tag
tags
tip
unbundle
update
verify
version
Show all commands that start with "a"
$ hg debugcomplete a
add
addremove
annotate
archive
Do not show debug commands if there are other candidates
$ hg debugcomplete d
diff
Show debug commands if there are no other candidates
$ hg debugcomplete debug
debugancestor
Gregory Szorc
commands: support consuming stream clone bundles...
r26758 debugapplystreamclonebundle
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugbuilddag
debugbundle
debugcheckstate
debugcommands
debugcomplete
debugconfig
Gregory Szorc
commands: support creating stream clone bundles...
r26757 debugcreatestreamclonebundle
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugdag
debugdata
debugdate
Gregory Szorc
commands: add debugdeltachain command...
r27263 debugdeltachain
Mads Kiilerich
debugstate: rename to debugdirstate...
r18962 debugdirstate
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugdiscovery
liscju
mercurial: add debugextensions command (issue4676)...
r26351 debugextensions
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugfileset
debugfsinfo
debuggetbundle
debugignore
debugindex
debugindexdot
debuginstall
debugknown
debuglabelcomplete
Matt Mackall
commands: add debuglocks to report/clear lock state
r22559 debuglocks
Siddharth Agarwal
commands: add a new debug command to print merge state...
r26501 debugmergestate
Sean Farley
debugnamecomplete: rename from debuglabelcomplete...
r23762 debugnamecomplete
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugobsolete
debugpathcomplete
debugpushkey
debugpvec
Mads Kiilerich
debugrebuildstate: rename to debugrebuilddirstate...
r18963 debugrebuilddirstate
Gregory Szorc
repair: add functionality to rebuild fncache...
r25652 debugrebuildfncache
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugrename
debugrevlog
debugrevspec
debugsetparents
debugsub
debugsuccessorssets
Yuya Nishihara
templater: add debugtemplate command...
r28548 debugtemplate
Gregory Szorc
debugcommands: stub for debugupgraderepo command...
r30774 debugupgraderepo
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugwalk
debugwireargs
Do not show the alias of a debug command if there are other candidates
(this should hide rawcommit)
$ hg debugcomplete r
recover
remove
rename
resolve
revert
rollback
root
Show the alias of a debug command if there are no other candidates
$ hg debugcomplete rawc
Show the global options
$ hg debugcomplete --options | sort
--config
--cwd
--debug
--debugger
--encoding
--encodingmode
--help
--hidden
--noninteractive
--profile
--quiet
--repository
--time
--traceback
--verbose
--version
-R
-h
-q
-v
-y
Show the options for the "serve" command
$ hg debugcomplete --options serve | sort
--accesslog
--address
--certificate
--cmdserver
--config
--cwd
--daemon
Jun Wu
serve: rename --daemon-pipefds to --daemon-postexec (BC)...
r28194 --daemon-postexec
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 --debug
--debugger
--encoding
--encodingmode
--errorlog
--help
--hidden
--ipv6
--name
--noninteractive
--pid-file
--port
--prefix
--profile
--quiet
--repository
--stdio
--style
--templates
--time
--traceback
--verbose
--version
--web-conf
-6
-A
-E
-R
-a
-d
-h
-n
-p
-q
-t
-v
-y
Show an error if we use --options with an ambiguous abbreviation
$ hg debugcomplete --options s
hg: command 's' is ambiguous:
serve showconfig status summary
[255]
Show all commands + options
$ hg debugcommands
add: include, exclude, subrepos, dry-run
Yuya Nishihara
annotate: port to generic templater enabled by hidden -T option...
r22480 annotate: rev, follow, no-follow, text, user, file, date, number, changeset, line-number, ignore-all-space, ignore-space-change, ignore-blank-lines, include, exclude, template
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 clone: noupdate, updaterev, rev, branch, pull, uncompressed, ssh, remotecmd, insecure
Laurent Charignon
record: add interactive option to the commit command
r24278 commit: addremove, close-branch, amend, secret, edit, interactive, include, exclude, message, logfile, date, user, subrepos
Sean Farley
diff: rename --relative option to --root...
r24455 diff: rev, change, text, git, nodates, noprefix, show-function, reverse, ignore-all-space, ignore-space-change, ignore-blank-lines, unified, stat, root, include, exclude, subrepos
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 export: output, switch-parent, rev, text, git, nodates
forget: include, exclude
init: ssh, remotecmd, insecure
log: follow, follow-first, date, copies, keyword, rev, removed, only-merges, user, only-branch, branch, prune, patch, git, limit, no-merges, stat, graph, style, template, include, exclude
merge: force, rev, preview, tool
pull: update, force, rev, bookmark, branch, ssh, remotecmd, insecure
push: force, rev, bookmark, branch, new-branch, ssh, remotecmd, insecure
Matt Harbison
remove: recurse into subrepositories with --subrepos/-S flag...
r23325 remove: after, force, subrepos, include, exclude
Jun Wu
serve: rename --daemon-pipefds to --daemon-postexec (BC)...
r28194 serve: accesslog, daemon, daemon-postexec, errorlog, port, address, prefix, name, web-conf, webdir-conf, pid-file, stdio, cmdserver, templates, style, ipv6, certificate
Matt Mackall
commands: add hidden -T option for files/manifest/status/tags...
r22429 status: all, modified, added, removed, deleted, clean, unknown, ignored, no-status, copies, print0, rev, change, include, exclude, subrepos, template
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 summary: remote
Mads Kiilerich
update: introduce --tool for controlling the merge tool...
r21552 update: clean, check, date, rev, tool
Matt Harbison
addremove: add support for the -S flag...
r23538 addremove: similarity, subrepos, include, exclude, dry-run
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 archive: no-decode, prefix, rev, type, subrepos, include, exclude
Ruslan Sayfutdinov
backout: commit changeset by default (BC)...
r27890 backout: merge, commit, no-commit, parent, rev, edit, tool, include, exclude, message, logfile, date, user
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 bisect: reset, good, bad, skip, extend, command, noupdate
Yuya Nishihara
bookmarks: port to generic templater
r22776 bookmarks: force, rev, delete, rename, inactive, template
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 branch: force, clean
Yuya Nishihara
branches: port to generic templater
r22703 branches: active, closed, template
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 bundle: force, rev, branch, base, all, type, ssh, remotecmd, insecure
cat: output, rev, decode, include, exclude
Mathias De Maré
config: add template support...
r29950 config: untrusted, edit, local, global, template
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 copy: after, force, include, exclude, dry-run
debugancestor:
Gregory Szorc
commands: support consuming stream clone bundles...
r26758 debugapplystreamclonebundle:
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugbuilddag: mergeable-file, overwritten-file, new-file
Gregory Szorc
commands: teach debugbundle to print bundle specification...
r27885 debugbundle: all, spec
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugcheckstate:
debugcommands:
debugcomplete: options
Gregory Szorc
commands: support creating stream clone bundles...
r26757 debugcreatestreamclonebundle:
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugdag: tags, branches, dots, spaces
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 debugdata: changelog, manifest, dir
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugdate: extended
Gregory Szorc
commands: add debugdeltachain command...
r27263 debugdeltachain: changelog, manifest, dir, template
Mads Kiilerich
debugstate: rename to debugdirstate...
r18962 debugdirstate: nodates, datesort
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugdiscovery: old, nonheads, ssh, remotecmd, insecure
liscju
mercurial: add debugextensions command (issue4676)...
r26351 debugextensions: template
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugfileset: rev
debugfsinfo:
debuggetbundle: head, common, type
debugignore:
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 debugindex: changelog, manifest, dir, format
Gregory Szorc
commands.debugindexdot: use cmdutil.openrevlog()...
r27256 debugindexdot: changelog, manifest, dir
timeless
debuginstall: convert to formatter...
r28440 debuginstall: template
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugknown:
debuglabelcomplete:
Matt Mackall
commands: add debuglocks to report/clear lock state
r22559 debuglocks: force-lock, force-wlock
Siddharth Agarwal
commands: add a new debug command to print merge state...
r26501 debugmergestate:
Sean Farley
debugnamecomplete: rename from debuglabelcomplete...
r23762 debugnamecomplete:
Yuya Nishihara
debugobsolete: add formatter support (issue5134)...
r29795 debugobsolete: flags, record-parents, rev, index, delete, date, user, template
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugpathcomplete: full, normal, added, removed
debugpushkey:
debugpvec:
Durham Goode
dirstate: add --minimal flag to debugrebuilddirstate...
r26024 debugrebuilddirstate: rev, minimal
Gregory Szorc
repair: add functionality to rebuild fncache...
r25652 debugrebuildfncache:
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugrename: rev
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 debugrevlog: changelog, manifest, dir, dump
Yuya Nishihara
debugrevspec: add option to verify optimized result...
r29924 debugrevspec: optimize, show-stage, no-optimized, verify-optimized
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugsetparents:
debugsub: rev
debugsuccessorssets:
Yuya Nishihara
templater: add debugtemplate command...
r28548 debugtemplate: rev, define
Gregory Szorc
debugcommands: stub for debugupgraderepo command...
r30774 debugupgraderepo: optimize, run
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 debugwalk: include, exclude
debugwireargs: three, four, five, ssh, remotecmd, insecure
Matt Harbison
subrepo: add basic support to hgsubrepo for the files command...
r24413 files: rev, print0, include, exclude, template, subrepos
Siddharth Agarwal
graft: allow regrafting ancestors with --force (issue3220)
r21979 graft: rev, continue, edit, log, force, currentdate, currentuser, date, user, tool, dry-run
Yuya Nishihara
grep: add formatter support...
r29858 grep: print0, all, text, follow, ignore-case, files-with-matches, line-number, rev, user, date, template, include, exclude
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 heads: rev, topo, active, closed, style, template
timeless
help: add --system flag to get help for various platform(s)
r27763 help: extension, command, keyword, system
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 identify: rev, num, id, branch, tags, bookmarks, ssh, remotecmd, insecure
Siddharth Agarwal
commands.import: accept a prefix option...
r24258 import: strip, base, edit, force, no-commit, bypass, partial, exact, prefix, import-branch, message, logfile, date, user, similarity
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 incoming: force, newest-first, bundle, rev, bookmarks, branch, patch, git, limit, no-merges, stat, graph, style, template, ssh, remotecmd, insecure, subrepos
locate: rev, print0, fullpath, include, exclude
Matt Mackall
commands: add hidden -T option for files/manifest/status/tags...
r22429 manifest: rev, all, template
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 outgoing: force, rev, newest-first, bookmarks, branch, patch, git, limit, no-merges, stat, graph, style, template, ssh, remotecmd, insecure, subrepos
parents: rev, style, template
Yuya Nishihara
paths: port to generic templater...
r27728 paths: template
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 phase: public, draft, secret, force, rev
recover:
rename: after, force, include, exclude, dry-run
Yuya Nishihara
resolve: port to generic templater...
r24127 resolve: all, list, mark, unmark, no-status, tool, include, exclude, template
Laurent Charignon
revert: add flag to make revert interactive
r24359 revert: all, date, rev, no-backup, interactive, include, exclude, dry-run
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 rollback: dry-run, force
root:
tag: force, local, rev, remove, edit, message, date, user
Matt Mackall
commands: add hidden -T option for files/manifest/status/tags...
r22429 tags: template
Bryan O'Sullivan
tests: rename test-debugcomplete.t to test-completion.t
r18797 tip: patch, git, style, template
unbundle: update
verify:
Yuya Nishihara
version: add formatter support...
r29840 version: template
Bryan O'Sullivan
tests: test debugpathcomplete and debuglabelcomplete
r18798
$ hg init a
$ cd a
$ echo fee > fee
$ hg ci -q -Amfee
Bryan O'Sullivan
test-completion: test completion of tags
r18800 $ hg tag fee
Bryan O'Sullivan
tests: test debugpathcomplete and debuglabelcomplete
r18798 $ mkdir fie
$ echo dead > fie/dead
$ echo live > fie/live
$ hg bookmark fo
Bryan O'Sullivan
test-completion: test completion of tags
r18800 $ hg branch -q fie
Bryan O'Sullivan
tests: test debugpathcomplete and debuglabelcomplete
r18798 $ hg ci -q -Amfie
$ echo fo > fo
Bryan O'Sullivan
test-completion: test completion of tags
r18800 $ hg branch -qf default
Bryan O'Sullivan
tests: test debugpathcomplete and debuglabelcomplete
r18798 $ hg ci -q -Amfo
$ echo Fum > Fum
$ hg ci -q -AmFum
$ hg bookmark Fum
Test debugpathcomplete
$ hg debugpathcomplete f
Bryan O'Sullivan
test-completion: test completion of tags
r18800 fee
Sean Farley
pathcomplete: remove ambiguous entries for sole completion on a directory...
r20136 fie
Bryan O'Sullivan
test-completion: test completion of tags
r18800 fo
Bryan O'Sullivan
tests: test debugpathcomplete and debuglabelcomplete
r18798 $ hg debugpathcomplete -f f
Bryan O'Sullivan
test-completion: test completion of tags
r18800 fee
fie/dead
fie/live
fo
Bryan O'Sullivan
tests: test debugpathcomplete and debuglabelcomplete
r18798
$ hg rm Fum
$ hg debugpathcomplete -r F
Bryan O'Sullivan
test-completion: test completion of tags
r18800 Fum
Bryan O'Sullivan
tests: test debugpathcomplete and debuglabelcomplete
r18798
Sean Farley
debugnamecomplete: rename from debuglabelcomplete...
r23762 Test debugnamecomplete
Bryan O'Sullivan
tests: test debugpathcomplete and debuglabelcomplete
r18798
Sean Farley
debugnamecomplete: rename from debuglabelcomplete...
r23762 $ hg debugnamecomplete
Bryan O'Sullivan
test-completion: test completion of tags
r18800 Fum
default
fee
Bryan O'Sullivan
debuglabelcomplete: compute active branch heads correctly...
r18892 fie
Bryan O'Sullivan
test-completion: test completion of tags
r18800 fo
tip
Sean Farley
debugnamecomplete: rename from debuglabelcomplete...
r23762 $ hg debugnamecomplete f
Bryan O'Sullivan
test-completion: test completion of tags
r18800 fee
Bryan O'Sullivan
debuglabelcomplete: compute active branch heads correctly...
r18892 fie
Bryan O'Sullivan
test-completion: test completion of tags
r18800 fo