tests/test-strict.t
author Patrick Mezard <patrick@mezard.eu>
Sat, 19 May 2012 17:19:55 +0200
branchstable
changeset 16772 30e46d7138de
parent 16591 46e9ed223d2c
child 16853 7863ff383894
permissions -rw-r--r--
revset: fix infinite alias expansion detection The alias expansion code it changed from: 1- Get replacement tree 2- Substitute arguments in the replacement tree 3- Expand the replacement tree again into: 1- Get the replacement tree 2- Expand the replacement tree 3- Expand the arguments 4- Substitute the expanded arguments in the replacement tree and fixes cases like: [revsetalias] level1($1, $2) = $1 or $2 level2($1, $2) = level1($2, $1) $ hg log -r "level2(level1(1, 2), 3)" where the original version incorrectly aborted on infinite expansion error, because it was confusing the expanded aliases with their arguments.

  $ hg init

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

  $ hg an a
  0: a

  $ hg --config ui.strict=False an a
  0: a

  $ echo "[ui]" >> $HGRCPATH
  $ echo "strict=True" >> $HGRCPATH

  $ hg an a
  hg: unknown command 'an'
  Mercurial Distributed SCM
  
  basic commands:
  
   add         add the specified files on the next commit
   annotate    show changeset information by line for each file
   clone       make a copy of an existing repository
   commit      commit the specified files or all outstanding changes
   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
   init        create a new repository in the given directory
   log         show revision history of entire repository or files
   merge       merge working directory with another revision
   phase       set or show the current phase name
   pull        pull changes from the specified source
   push        push changes to the specified destination
   remove      remove the specified files on the next commit
   serve       start stand-alone webserver
   status      show changed files in the working directory
   summary     summarize working directory state
   update      update working directory (or switch revisions)
  
  use "hg help" for the full list of commands or "hg -v" for details
  [255]
  $ hg annotate a
  0: a

should succeed - up is an alias, not an abbreviation

  $ hg up
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved