tests/test-globalopts.t
changeset 12194 9e40ea08c2ab
parent 7429 dbc40381620e
child 12316 4134686b83e1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-globalopts.t	Fri Sep 03 22:10:08 2010 +0200
@@ -0,0 +1,387 @@
+  $ "$TESTDIR/hghave" no-outer-repo || exit 80
+
+  $ 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
+  $ hg pull -f ../b
+  pulling from ../b
+  searching for changes
+  warning: repository is unrelated
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files (+1 heads)
+  (run 'hg heads' to see heads, 'hg merge' to merge)
+  $ 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
+  
+
+Implicit -R:
+
+  $ hg ann a/a
+  0: a
+  $ hg ann a/a a/a
+  0: a
+  $ hg ann a/a b/b
+  abort: There is no Mercurial repository here (.hg not found)!
+  $ hg -R b ann a/a
+  abort: a/a not under root
+  $ hg log
+  abort: There is no Mercurial repository here (.hg not found)!
+
+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 --confi "foo.bar=baz"
+  abort: option --config may not be abbreviated!
+  $ hg --cw a tip
+  abort: option --cwd may not be abbreviated!
+  $ hg --rep a tip
+  abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
+  $ hg --repositor a tip
+  abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
+  $ hg -qR a tip
+  abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
+  $ hg -qRa tip
+  abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
+
+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)
+  $ hg --cwd c --config a.b tip -q
+  abort: malformed --config option: 'a.b' (use --config section.name=value)
+  $ hg --cwd c --config a tip -q
+  abort: malformed --config option: 'a' (use --config section.name=value)
+  $ hg --cwd c --config a.= tip -q
+  abort: malformed --config option: 'a.=' (use --config section.name=value)
+  $ hg --cwd c --config .b= tip -q
+  abort: malformed --config option: '.b=' (use --config section.name=value)
+
+Testing --debug:
+
+  $ hg --cwd c log --debug
+  changeset:   1:b6c483daf2907ce5825c0bb50f5716226281cc1a
+  tag:         tip
+  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
+  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:
+
+  $ hg --cwd c --config x --traceback id 2>&1 | grep -i 'traceback'
+  Traceback (most recent call last):
+
+Testing --time:
+
+  $ hg --cwd a --time id
+  8580ff50825a tip
+  Time: real .*
+
+Testing --version:
+
+  $ hg --version -q
+  Mercurial Distributed SCM .*
+
+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
+   branch       set or show the current branch name
+   branches     list repository named branches
+   bundle       create a changegroup file
+   cat          output the current or given revision of files
+   clone        make a copy of an existing repository
+   commit       commit the specified files or all outstanding changes
+   copy         mark files as copied for the next commit
+   diff         diff repository (or selected files)
+   export       dump the header and diffs for one or more changesets
+   forget       forget the specified files on the next commit
+   grep         search for a pattern in specified files and revisions
+   heads        show current repository heads or show branch heads
+   help         show help for a given topic or a help overview
+   identify     identify the working copy or specified revision
+   import       import an ordered set of patches
+   incoming     show new changesets found in source
+   init         create a new repository in the given directory
+   locate       locate files matching specific patterns
+   log          show revision history of entire repository or files
+   manifest     output the current or given revision of the project manifest
+   merge        merge working directory with another revision
+   outgoing     show changesets not found in the destination
+   parents      show the parents of the working directory or revision
+   paths        show aliases for remote repositories
+   pull         pull changes from the specified source
+   push         push changes to the specified destination
+   recover      roll back an interrupted transaction
+   remove       remove the specified files on the next commit
+   rename       rename files; equivalent of copy + remove
+   resolve      redo merges or set/view the merge status of files
+   revert       restore individual files or directories to an earlier state
+   rollback     roll back the last transaction (dangerous)
+   root         print the root (top) of the current working directory
+   serve        start stand-alone webserver
+   showconfig   show combined config settings from all hgrc files
+   status       show changed files in the working directory
+   summary      summarize working directory state
+   tag          add one or more tags for the current or given revision
+   tags         list repository tags
+   tip          show the tip revision
+   unbundle     apply one or more changegroup files
+   update       update working directory (or switch revisions)
+   verify       verify the integrity of the repository
+   version      output version and copyright information
+  
+  additional help topics:
+  
+   config       Configuration Files
+   dates        Date Formats
+   patterns     File Name Patterns
+   environment  Environment Variables
+   revisions    Specifying Single Revisions
+   multirevs    Specifying Multiple Revisions
+   revsets      Specifying Revision Sets
+   diffs        Diff Formats
+   templating   Template Usage
+   urls         URL Paths
+   extensions   Using additional features
+   hgweb        Configuring hgweb
+   glossary     Glossary
+  
+  use "hg -v help" to show aliases and global options
+
+  $ 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
+   branch       set or show the current branch name
+   branches     list repository named branches
+   bundle       create a changegroup file
+   cat          output the current or given revision of files
+   clone        make a copy of an existing repository
+   commit       commit the specified files or all outstanding changes
+   copy         mark files as copied for the next commit
+   diff         diff repository (or selected files)
+   export       dump the header and diffs for one or more changesets
+   forget       forget the specified files on the next commit
+   grep         search for a pattern in specified files and revisions
+   heads        show current repository heads or show branch heads
+   help         show help for a given topic or a help overview
+   identify     identify the working copy or specified revision
+   import       import an ordered set of patches
+   incoming     show new changesets found in source
+   init         create a new repository in the given directory
+   locate       locate files matching specific patterns
+   log          show revision history of entire repository or files
+   manifest     output the current or given revision of the project manifest
+   merge        merge working directory with another revision
+   outgoing     show changesets not found in the destination
+   parents      show the parents of the working directory or revision
+   paths        show aliases for remote repositories
+   pull         pull changes from the specified source
+   push         push changes to the specified destination
+   recover      roll back an interrupted transaction
+   remove       remove the specified files on the next commit
+   rename       rename files; equivalent of copy + remove
+   resolve      redo merges or set/view the merge status of files
+   revert       restore individual files or directories to an earlier state
+   rollback     roll back the last transaction (dangerous)
+   root         print the root (top) of the current working directory
+   serve        start stand-alone webserver
+   showconfig   show combined config settings from all hgrc files
+   status       show changed files in the working directory
+   summary      summarize working directory state
+   tag          add one or more tags for the current or given revision
+   tags         list repository tags
+   tip          show the tip revision
+   unbundle     apply one or more changegroup files
+   update       update working directory (or switch revisions)
+   verify       verify the integrity of the repository
+   version      output version and copyright information
+  
+  additional help topics:
+  
+   config       Configuration Files
+   dates        Date Formats
+   patterns     File Name Patterns
+   environment  Environment Variables
+   revisions    Specifying Single Revisions
+   multirevs    Specifying Multiple Revisions
+   revsets      Specifying Revision Sets
+   diffs        Diff Formats
+   templating   Template Usage
+   urls         URL Paths
+   extensions   Using additional features
+   hgweb        Configuring hgweb
+   glossary     Glossary
+  
+  use "hg -v help" to show aliases and global options
+
+Not tested: --debugger
+