tests/test-dispatch.t
author Patrick Mezard <pmezard@gmail.com>
Fri, 27 May 2011 21:50:09 +0200
changeset 14451 c78d41db6f88
parent 14115 1d5faa2c970f
child 15145 ff26712a0c50
permissions -rw-r--r--
patch: refactor file creation/removal detection The patcher has to know if a file is being created or removed to check if the target already exists, or to actually unlink the file when a hunk emptying it is applied. This was done by embedding the creation/removal information in the first (and only) hunk attached to the file. There are two problems with this approach: - creation/removal is really a property of the file being patched and not its hunk. - for regular patches, file creation cannot be deduced at parsing time: there are case where the *stripped* file paths must be compared. Modifying hunks after their creation is clumsy and prevent further refactorings related to copies handling. Instead, we delegate this job to selectfile() which has all the relevant information, and remove the hunk createfile() and rmfile() methods.

test command parsing and dispatch

  $ "$TESTDIR/hghave" no-outer-repo || exit 80

  $ dir=`pwd`

  $ hg init a
  $ cd a

Redundant options used to crash (issue436):
  $ hg -v log -v
  $ hg -v log -v x

  $ echo a > a
  $ hg ci -Ama
  adding a

Missing arg:

  $ hg cat
  hg cat: invalid arguments
  hg cat [OPTION]... FILE...
  
  output the current or given revision of files
  
  options:
  
   -o --output FORMAT        print output to file with formatted name
   -r --rev REV              print the given revision
      --decode               apply any matching decode filter
   -I --include PATTERN [+]  include names matching the given patterns
   -X --exclude PATTERN [+]  exclude names matching the given patterns
  
  [+] marked option can be specified multiple times
  
  use "hg help cat" to show the full help text
  [255]

[defaults]

  $ hg cat a
  a
  $ cat >> $HGRCPATH <<EOF
  > [defaults]
  > cat = -r null
  > EOF
  $ hg cat a
  a: no such file in rev 000000000000
  [1]

No repo:

  $ cd $dir
  $ hg cat
  abort: no repository found in '$TESTTMP' (.hg not found)!
  [255]