view tests/test-help.out @ 535:fba26990604a

Deal with failed clone/transaction interaction -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Deal with failed clone/transaction interaction > What is happening is that something in the transaction machinery is > causing the directory to be completely recreated. The transaction gets rolled back by its destructor. This is critical so it happens whenever an exception occurs that unwinds the stack. Unfortunately, what's happening with clone is we're trying to delete the directory during exception propagation. And a reference to the transaction is held in the exception backtrace stack frames so it still exists until the exception is completely resolved. So there's no way to do the directory delete inside the exception handling cleanly. But we can handle it similarly to the transaction itself: use an object with a destructor. manifest hash: fc38550a20d64d08333f256bbedc312493c1390b -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCxDT2ywK+sNU5EO8RAjikAJ0Tej56rAutxQDfYzVbFGtT1sEC5ACgmVds /fwdQyHn+FwshugqXLemUaM= =3f78 -----END PGP SIGNATURE-----
author mpm@selenic.com
date Thu, 30 Jun 2005 10:07:50 -0800
parents 98a2935c3d6c
children 9db6d5455642
line wrap: on
line source

+ hg -q help
hg commands:

 add         add the specified files on the next commit
 addremove   add all new files, delete all missing files
 annotate    show changeset information per file line
 cat         output the latest or given revision of a file
 clone       make a copy of an existing repository
 commit      commit the specified files or all outstanding changes
 copy        mark a file as copied or renamed for the next commit
 diff        diff working directory (or selected files)
 export      dump the changeset header and diffs for a revision
 forget      don't add the specified files on the next commit
 heads       show current repository heads
 help        show help for a given command or all commands
 identify    print information about the working copy
 import      import an ordered set of patches
 init        create a new repository in the current directory
 log         show the revision history of the repository or a single file
 manifest    output the latest or given revision of the project manifest
 parents     show the parents of the current working dir
 pull        pull changes from the specified source
 push        push changes to the specified destination
 rawcommit   raw commit interface
 recover     roll back an interrupted transaction
 remove      remove the specified files on the next commit
 root        print the root (top) of the current working dir
 serve       export the repository via HTTP
 status      show changed files in the working directory
 tag         add a tag for the current tip or a given revision
 tags        list repository tags
 tip         show the tip revision
 undo        undo the last transaction
 update      update or merge working directory
 verify      verify the integrity of the repository
 version     output version and copyright information
+ hg add -h
hg add: option -h not recognized
hg add [files]

add the specified files on the next commit
+ hg help diff
hg diff [-r A] [-r B] [files]

 -r --rev 
   revision

diff working directory (or selected files)
+ hg help foo
hg: unknown command foo
+ hg -q commands
hg: unknown command 'commands'
hg commands:

 add         add the specified files on the next commit
 addremove   add all new files, delete all missing files
 annotate    show changeset information per file line
 cat         output the latest or given revision of a file
 clone       make a copy of an existing repository
 commit      commit the specified files or all outstanding changes
 copy        mark a file as copied or renamed for the next commit
 diff        diff working directory (or selected files)
 export      dump the changeset header and diffs for a revision
 forget      don't add the specified files on the next commit
 heads       show current repository heads
 help        show help for a given command or all commands
 identify    print information about the working copy
 import      import an ordered set of patches
 init        create a new repository in the current directory
 log         show the revision history of the repository or a single file
 manifest    output the latest or given revision of the project manifest
 parents     show the parents of the current working dir
 pull        pull changes from the specified source
 push        push changes to the specified destination
 rawcommit   raw commit interface
 recover     roll back an interrupted transaction
 remove      remove the specified files on the next commit
 root        print the root (top) of the current working dir
 serve       export the repository via HTTP
 status      show changed files in the working directory
 tag         add a tag for the current tip or a given revision
 tags        list repository tags
 tip         show the tip revision
 undo        undo the last transaction
 update      update or merge working directory
 verify      verify the integrity of the repository
 version     output version and copyright information
+ exit 0