diff --git a/tests/test-globalopts.out b/tests/test-globalopts.out deleted file mode 100644 --- a/tests/test-globalopts.out +++ /dev/null @@ -1,292 +0,0 @@ -adding a -adding b -updating to branch default -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -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) -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -%% -R/--repository -changeset: 0:8580ff50825a -tag: tip -user: test -date: Thu Jan 01 00:00:01 1970 +0000 -summary: a - -changeset: 0:b6c483daf290 -tag: tip -user: test -date: Thu Jan 01 00:00:01 1970 +0000 -summary: b - -%% implicit -R -0: a -0: a -abort: There is no Mercurial repository here (.hg not found)! -abort: a/a not under root -abort: There is no Mercurial repository here (.hg not found)! -%% abbrev of long option -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) -changeset: 1:b6c483daf290 -tag: tip -parent: -1:000000000000 -user: test -date: Thu Jan 01 00:00:01 1970 +0000 -summary: b - -changeset: 0:8580ff50825a -tag: tip -user: test -date: Thu Jan 01 00:00:01 1970 +0000 -summary: a - -%% earlygetopt short option without following space -0:b6c483daf290 -%% earlygetopt with illegal abbreviations -abort: option --config may not be abbreviated! -abort: option --cwd may not be abbreviated! -abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo! -abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo! -abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo! -abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo! -%% --cwd -changeset: 0:8580ff50825a -tag: tip -user: test -date: Thu Jan 01 00:00:01 1970 +0000 -summary: a - -%% -y/--noninteractive - just be sure it is parsed -0:8580ff50825a -0:8580ff50825a -%% -q/--quiet -0:8580ff50825a -0:b6c483daf290 -0:8580ff50825a -1:b6c483daf290 -%% -v/--verbose -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 - - -changeset: 0:b6c483daf290 -tag: tip -user: test -date: Thu Jan 01 00:00:01 1970 +0000 -files: b -description: -b - - -%% --config -quuxfoo -abort: malformed --config option: '' (use --config section.name=value) -abort: malformed --config option: 'a.b' (use --config section.name=value) -abort: malformed --config option: 'a' (use --config section.name=value) -abort: malformed --config option: 'a.=' (use --config section.name=value) -abort: malformed --config option: '.b=' (use --config section.name=value) -%% --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 - - -%% --traceback -Traceback (most recent call last): -%% --time -Time: real x.x secs (user x.x+x.x sys x.x+x.x) -%% --version -Mercurial Distributed SCM (version xxx) -%% -h/--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 -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 diff --git a/tests/test-globalopts b/tests/test-globalopts.t old mode 100755 new mode 100644 rename from tests/test-globalopts rename to tests/test-globalopts.t --- a/tests/test-globalopts +++ b/tests/test-globalopts.t @@ -1,96 +1,387 @@ -#!/bin/sh + $ "$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 -"$TESTDIR/hghave" no-outer-repo || exit 80 + $ cd .. + + $ hg init b + $ cd b + $ echo b > b + $ hg ci -A -d'1 0' -m b + adding b + + $ cd .. -hg init a -cd a -echo a > a -hg ci -A -d'1 0' -m a + $ 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 .. + $ cd .. + +Testing -R/--repository: -hg init b -cd b -echo b > b -hg ci -A -d'1 0' -m b + $ 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)! -cd .. +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 clone a c -cd c -hg pull -f ../b -hg merge + $ 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 + -cd .. +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: -echo %% -R/--repository -hg -R a tip -hg --repository b tip + $ 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 -echo %% implicit -R -hg ann a/a -hg ann a/a a/a -hg ann a/a b/b -hg -R b ann a/a -hg log +Testing -v/--verbose: -echo %% abbrev of long option -hg --repo c tip + $ 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 + + -echo "%% earlygetopt with duplicate options (36d23de02da1)" -hg --cwd a --cwd b --cwd c tip -hg --repo c --repository b -R a tip +Testing --config: -echo "%% earlygetopt short option without following space" -hg -q -Rb tip + $ 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: -echo "%% earlygetopt with illegal abbreviations" -hg --confi "foo.bar=baz" -hg --cw a tip -hg --rep a tip -hg --repositor a tip -hg -qR a tip -hg -qRa tip - -echo %% --cwd -hg --cwd a parents + $ 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 + + -echo %% -y/--noninteractive - just be sure it is parsed -hg --cwd a tip -q --noninteractive -hg --cwd a tip -q -y +Testing --traceback: + + $ hg --cwd c --config x --traceback id 2>&1 | grep -i 'traceback' + Traceback (most recent call last): + +Testing --time: -echo %% -q/--quiet -hg -R a -q tip -hg -R b -q tip -hg -R c --quiet parents + $ hg --cwd a --time id + 8580ff50825a tip + Time: real .* -echo %% -v/--verbose -hg --cwd c head -v -hg --cwd b tip --verbose +Testing --version: + + $ hg --version -q + Mercurial Distributed SCM .* + +Testing -h/--help: -echo %% --config -hg --cwd c --config paths.quuxfoo=bar paths | grep quuxfoo > /dev/null && echo quuxfoo -hg --cwd c --config '' tip -q -hg --cwd c --config a.b tip -q -hg --cwd c --config a tip -q -hg --cwd c --config a.= tip -q -hg --cwd c --config .b= tip -q - -echo %% --debug -hg --cwd c log --debug + $ 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 -echo %% --traceback -hg --cwd c --config x --traceback tip 2>&1 | grep -i 'traceback' - -echo %% --time -hg --cwd a --time tip 2>&1 | grep '^Time:' | sed 's/[0-9][0-9]*/x/g' + $ 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 -echo %% --version -hg --version -q | sed 's/version [^)]*/version xxx/' +Not tested: --debugger -echo %% -h/--help -hg -h -hg --help - -echo %% not tested: --debugger -