sapling/tests/test-globalopts.t

490 lines
15 KiB
Perl
Raw Normal View History

2010-09-04 00:10:08 +04:00
$ hg init a
$ cd a
$ echo a > a
$ hg ci -A -d'1 0' -m a
adding a
$ cd ..
$ hg init b
$ cd b
$ echo b > b
$ hg ci -A -d'1 0' -m b
adding b
$ cd ..
$ hg clone a c
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd c
$ cat >> .hg/hgrc <<EOF
> [paths]
> relative = ../a
> EOF
2010-09-04 00:10:08 +04:00
$ hg pull -f ../b
pulling from ../b
searching for changes
warning: repository is unrelated
requesting all changes
2010-09-04 00:10:08 +04:00
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
new changesets b6c483daf290
2010-09-04 00:10:08 +04:00
(run 'hg heads' to see heads, 'hg merge' to merge)
$ hg merge
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cd ..
Testing -R/--repository:
$ hg -R a tip
changeset: 0:8580ff50825a
tag: tip
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: a
$ hg --repository b tip
changeset: 0:b6c483daf290
tag: tip
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: b
-R with a URL:
$ hg -R file:a identify
8580ff50825a tip
$ hg -R file://localhost/`pwd`/a/ identify
8580ff50825a tip
-R with path aliases:
$ cd c
$ hg -R default identify
8580ff50825a tip
$ hg -R relative identify
8580ff50825a tip
$ echo '[paths]' >> $HGRCPATH
$ echo 'relativetohome = a' >> $HGRCPATH
$ HOME=`pwd`/../ hg -R relativetohome identify
8580ff50825a tip
$ cd ..
#if no-outer-repo
2010-09-04 00:10:08 +04:00
Implicit -R:
$ hg ann a/a
0: a
$ hg ann a/a a/a
0: a
$ hg ann a/a b/b
abort: no repository found in '$TESTTMP' (.hg not found)!
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
$ hg -R b ann a/a
abort: a/a not under root '$TESTTMP/b'
(consider using '--cwd b')
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
$ hg log
abort: no repository found in '$TESTTMP' (.hg not found)!
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
#endif
2010-09-04 00:10:08 +04:00
Abbreviation of long option:
$ hg --repo c tip
changeset: 1:b6c483daf290
tag: tip
parent: -1:000000000000
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: b
earlygetopt with duplicate options (36d23de02da1):
$ hg --cwd a --cwd b --cwd c tip
changeset: 1:b6c483daf290
tag: tip
parent: -1:000000000000
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: b
$ hg --repo c --repository b -R a tip
changeset: 0:8580ff50825a
tag: tip
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: a
earlygetopt short option without following space:
$ hg -q -Rb tip
0:b6c483daf290
earlygetopt with illegal abbreviations:
$ hg --configfi "foo.bar=baz"
abort: option --configfile may not be abbreviated!
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
$ hg --cw a tip
abort: option --cwd may not be abbreviated!
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
$ hg --rep a tip
2012-01-06 19:16:58 +04:00
abort: option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
$ hg --repositor a tip
2012-01-06 19:16:58 +04:00
abort: option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
$ hg -qR a tip
2012-01-06 19:16:58 +04:00
abort: option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
$ hg -qRa tip
2012-01-06 19:16:58 +04:00
abort: option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
Testing --cwd:
$ hg --cwd a parents
changeset: 0:8580ff50825a
tag: tip
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: a
Testing -y/--noninteractive - just be sure it is parsed:
$ hg --cwd a tip -q --noninteractive
0:8580ff50825a
$ hg --cwd a tip -q -y
0:8580ff50825a
Testing -q/--quiet:
$ hg -R a -q tip
0:8580ff50825a
$ hg -R b -q tip
0:b6c483daf290
$ hg -R c --quiet parents
0:8580ff50825a
1:b6c483daf290
Testing -v/--verbose:
$ hg --cwd c head -v
changeset: 1:b6c483daf290
tag: tip
parent: -1:000000000000
user: test
date: Thu Jan 01 00:00:01 1970 +0000
files: b
description:
b
changeset: 0:8580ff50825a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
files: a
description:
a
$ hg --cwd b tip --verbose
changeset: 0:b6c483daf290
tag: tip
user: test
date: Thu Jan 01 00:00:01 1970 +0000
files: b
description:
b
Testing --config:
$ hg --cwd c --config paths.quuxfoo=bar paths | grep quuxfoo > /dev/null && echo quuxfoo
quuxfoo
$ hg --cwd c --config '' tip -q
abort: malformed --config option: '' (use --config section.name=value)
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
$ hg --cwd c --config a.b tip -q
abort: malformed --config option: 'a.b' (use --config section.name=value)
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
$ hg --cwd c --config a tip -q
abort: malformed --config option: 'a' (use --config section.name=value)
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
$ hg --cwd c --config a.= tip -q
abort: malformed --config option: 'a.=' (use --config section.name=value)
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
$ hg --cwd c --config .b= tip -q
abort: malformed --config option: '.b=' (use --config section.name=value)
2010-09-17 02:51:32 +04:00
[255]
2010-09-04 00:10:08 +04:00
Testing --debug:
$ hg --cwd c log --debug
changeset: 1:b6c483daf2907ce5825c0bb50f5716226281cc1a
tag: tip
phase: public
2010-09-04 00:10:08 +04:00
parent: -1:0000000000000000000000000000000000000000
parent: -1:0000000000000000000000000000000000000000
manifest: 1:23226e7a252cacdc2d99e4fbdc3653441056de49
user: test
date: Thu Jan 01 00:00:01 1970 +0000
files+: b
extra: branch=default
description:
b
changeset: 0:8580ff50825a50c8f716709acdf8de0deddcd6ab
phase: public
2010-09-04 00:10:08 +04:00
parent: -1:0000000000000000000000000000000000000000
parent: -1:0000000000000000000000000000000000000000
manifest: 0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0
user: test
date: Thu Jan 01 00:00:01 1970 +0000
files+: a
extra: branch=default
description:
a
Testing --traceback:
#if no-chg
2010-09-04 00:10:08 +04:00
$ hg --cwd c --config x --traceback id 2>&1 | grep -i 'traceback'
Traceback (most recent call last):
#else
Traceback for '--config' errors not supported with chg.
$ hg --cwd c --config x --traceback id 2>&1 | grep -i 'traceback'
[1]
#endif
2010-09-04 00:10:08 +04:00
Testing --time:
$ hg --cwd a --time id
8580ff50825a tip
2012-06-12 16:18:18 +04:00
time: real * (glob)
2010-09-04 00:10:08 +04:00
Testing --version:
$ hg --version -q
Mercurial Distributed SCM * (glob)
2010-09-04 00:10:08 +04:00
hide outer repo
$ hg init
2010-09-04 00:10:08 +04:00
Testing -h/--help:
$ hg -h
Mercurial Distributed SCM
list of commands:
add add the specified files on the next commit
addremove add all new files, delete all missing files
annotate show changeset information by line for each file
archive create an unversioned archive of a repository revision
backout reverse effect of earlier changeset
bisect subdivision search of changesets
bookmarks create a new bookmark or list existing bookmarks
branch set or show the current branch name
branches list repository named branches
bundle create a bundle file
cat output the current or given revision of files
clone make a copy of an existing repository
commit commit the specified files or all outstanding changes
config show combined config settings from all hgrc files
copy mark files as copied for the next commit
diff diff repository (or selected files)
export dump the header and diffs for one or more changesets
files list tracked files
forget forget the specified files on the next commit
graft copy changes from other branches onto the current branch
grep search revision history for a pattern in specified files
heads show branch heads
help show help for a given topic or a help overview
hint acknowledge hints
identify identify the working directory or specified revision
import import an ordered set of patches
incoming show new changesets found in source
init create a new repository in the given directory
log show revision history of entire repository or files
manifest output the current or given revision of the project manifest
merge merge another revision into working directory
outgoing show changesets not found in the destination
paths show aliases for remote repositories
phase set or show the current phase name
pull pull changes from the specified source
push push changes to the specified destination
recover roll back an interrupted transaction
remove remove the specified files on the next commit
rename rename files; equivalent of copy + remove
resolve redo merges or set/view the merge status of files
revert restore files to their checkout state
root print the root (top) of the current working directory
serve start stand-alone webserver
status show changed files in the working directory
summary summarize working directory state
tag add one or more tags for the current or given revision
tags list repository tags
unbundle apply one or more bundle files
update update working directory (or switch revisions)
verify verify the integrity of the repository
version output version and copyright information
2010-09-04 00:10:08 +04:00
2018-01-13 03:58:28 +03:00
enabled extensions:
conflictinfo
debugshell a python shell with repo, changelog & manifest objects
errorredirect
redirect error message
2018-01-13 03:58:28 +03:00
githelp try mapping git commands to Mercurial commands
mergedriver custom merge drivers for autoresolved files
progressfile allows users to have JSON progress bar information written to a
path
simplecache
treedirstate tree-based dirstate implementation
2018-01-13 03:58:28 +03:00
2010-09-04 00:10:08 +04:00
additional help topics:
help: document bundle specifications I softly formalized the concept of a "bundle specification" a while ago when I was working on clone bundles and stream clone bundles and wanted a more robust way to define what exactly is in a bundle file. The concept has existed for a while. Since it is part of the clone bundles feature and exposed to the user via the "-t" argument to `hg bundle`, it is something we need to support for the long haul. After the 4.1 release, I heard a few people comment that they didn't realize you could generate zstd bundles with `hg bundle`. I'm partially to blame for not documenting it in bundle's docstring. Additionally, I added a hacky, experimental feature for controlling the compression level of bundles in 054e64c4d837. As the commit message says, I went with a quick and dirty solution out of time constraints. Furthermore, I wanted to eventually store this configuration in the "bundlespec" so it could be made more flexible. Given: a) bundlespecs are here to stay b) we don't have great documentation over what they are, despite being a user-facing feature c) the list of available compression engines and their behavior isn't exposed d) we need an extensible place to modify behavior of compression engines I want to move forward with formalizing bundlespecs as a user-facing feature. This commit does that by introducing a "bundlespec" help page. Leaning on the just-added compression engine documentation and API, the topic also conveniently lists available compression engines and details about them. This makes features like zstd bundle compression more discoverable. e.g. you can now `hg help -k zstd` and it lists the "bundlespec" topic.
2017-04-01 23:42:06 +03:00
bundlespec Bundle File Formats
color Colorizing Outputs
config Configuration Files
dates Date Formats
diffs Diff Formats
environment Environment Variables
extensions Using Additional Features
filesets Specifying File Sets
flags Command-line flags
glossary Glossary
hgignore Syntax for Mercurial Ignore Files
hgweb Configuring hgweb
internals Technical implementation topics
merge-tools Merge Tools
pager Pager Support
patterns File Name Patterns
2012-01-26 21:23:14 +04:00
phases Working with Phases
revisions Specifying Revisions
scripting Using Mercurial from scripts and automation
subrepos Subrepositories
templating Template Usage
urls URL Paths
2010-09-04 00:10:08 +04:00
2016-09-21 02:47:46 +03:00
(use 'hg help -v' to show built-in aliases and global options)
2010-09-04 00:10:08 +04:00
2010-09-04 00:10:08 +04:00
$ hg --help
Mercurial Distributed SCM
list of commands:
add add the specified files on the next commit
addremove add all new files, delete all missing files
annotate show changeset information by line for each file
archive create an unversioned archive of a repository revision
backout reverse effect of earlier changeset
bisect subdivision search of changesets
bookmarks create a new bookmark or list existing bookmarks
branch set or show the current branch name
branches list repository named branches
bundle create a bundle file
cat output the current or given revision of files
clone make a copy of an existing repository
commit commit the specified files or all outstanding changes
config show combined config settings from all hgrc files
copy mark files as copied for the next commit
diff diff repository (or selected files)
export dump the header and diffs for one or more changesets
files list tracked files
forget forget the specified files on the next commit
graft copy changes from other branches onto the current branch
grep search revision history for a pattern in specified files
heads show branch heads
help show help for a given topic or a help overview
hint acknowledge hints
identify identify the working directory or specified revision
import import an ordered set of patches
incoming show new changesets found in source
init create a new repository in the given directory
log show revision history of entire repository or files
manifest output the current or given revision of the project manifest
merge merge another revision into working directory
outgoing show changesets not found in the destination
paths show aliases for remote repositories
phase set or show the current phase name
pull pull changes from the specified source
push push changes to the specified destination
recover roll back an interrupted transaction
remove remove the specified files on the next commit
rename rename files; equivalent of copy + remove
resolve redo merges or set/view the merge status of files
revert restore files to their checkout state
root print the root (top) of the current working directory
serve start stand-alone webserver
status show changed files in the working directory
summary summarize working directory state
tag add one or more tags for the current or given revision
tags list repository tags
unbundle apply one or more bundle files
update update working directory (or switch revisions)
verify verify the integrity of the repository
version output version and copyright information
2010-09-04 00:10:08 +04:00
2018-01-13 03:58:28 +03:00
enabled extensions:
conflictinfo
debugshell a python shell with repo, changelog & manifest objects
errorredirect
redirect error message
2018-01-13 03:58:28 +03:00
githelp try mapping git commands to Mercurial commands
mergedriver custom merge drivers for autoresolved files
progressfile allows users to have JSON progress bar information written to a
path
simplecache
treedirstate tree-based dirstate implementation
2018-01-13 03:58:28 +03:00
2010-09-04 00:10:08 +04:00
additional help topics:
help: document bundle specifications I softly formalized the concept of a "bundle specification" a while ago when I was working on clone bundles and stream clone bundles and wanted a more robust way to define what exactly is in a bundle file. The concept has existed for a while. Since it is part of the clone bundles feature and exposed to the user via the "-t" argument to `hg bundle`, it is something we need to support for the long haul. After the 4.1 release, I heard a few people comment that they didn't realize you could generate zstd bundles with `hg bundle`. I'm partially to blame for not documenting it in bundle's docstring. Additionally, I added a hacky, experimental feature for controlling the compression level of bundles in 054e64c4d837. As the commit message says, I went with a quick and dirty solution out of time constraints. Furthermore, I wanted to eventually store this configuration in the "bundlespec" so it could be made more flexible. Given: a) bundlespecs are here to stay b) we don't have great documentation over what they are, despite being a user-facing feature c) the list of available compression engines and their behavior isn't exposed d) we need an extensible place to modify behavior of compression engines I want to move forward with formalizing bundlespecs as a user-facing feature. This commit does that by introducing a "bundlespec" help page. Leaning on the just-added compression engine documentation and API, the topic also conveniently lists available compression engines and details about them. This makes features like zstd bundle compression more discoverable. e.g. you can now `hg help -k zstd` and it lists the "bundlespec" topic.
2017-04-01 23:42:06 +03:00
bundlespec Bundle File Formats
color Colorizing Outputs
config Configuration Files
dates Date Formats
diffs Diff Formats
environment Environment Variables
extensions Using Additional Features
filesets Specifying File Sets
flags Command-line flags
glossary Glossary
hgignore Syntax for Mercurial Ignore Files
hgweb Configuring hgweb
internals Technical implementation topics
merge-tools Merge Tools
pager Pager Support
patterns File Name Patterns
2012-01-26 21:23:14 +04:00
phases Working with Phases
revisions Specifying Revisions
scripting Using Mercurial from scripts and automation
subrepos Subrepositories
templating Template Usage
urls URL Paths
2010-09-04 00:10:08 +04:00
2016-09-21 02:47:46 +03:00
(use 'hg help -v' to show built-in aliases and global options)
2010-09-04 00:10:08 +04:00
Not tested: --debugger