view tests/test-cat.t @ 43506:9f70512ae2cf

cleanup: remove pointless r-prefixes on single-quoted strings This is the promised second step on single-quoted strings. These had existed because our source transformer didn't turn r'' into b'', so we had tagged some strings as r-strings to get "native" strings on both Pythons. Now that the transformer is gone, we can dispense with this nonsense. Methodology: I ran hg locate 'set:added() or modified() or clean()' | egrep '.*\.py$' | xargs egrep --color=never -n -- \[\^b\]\[\^a-z\]r\'\[\^\'\\\\\]\*\'\[\^\'\ in an emacs grep-mode buffer, and then used a keyboard macro to iterate over the results and remove the r prefix as needed. # skip-blame removing unneeded r prefixes left over from Python 3 migration. Differential Revision: https://phab.mercurial-scm.org/D7306
author Augie Fackler <augie@google.com>
date Fri, 08 Nov 2019 11:19:20 -0800
parents 34ba47117164
children 55c6ebd11cb9
line wrap: on
line source

  $ hg init
  $ echo 0 > a
  $ echo 0 > b
  $ hg ci -A -m m
  adding a
  adding b
  $ hg rm a
  $ hg cat a
  0
  $ hg cat --decode a # more tests in test-encode
  0
  $ echo 1 > b
  $ hg ci -m m
  $ echo 2 > b
  $ hg cat -r 0 a
  0
  $ hg cat -r 0 b
  0
  $ hg cat -r 1 a
  a: no such file in rev 7040230c159c
  [1]
  $ hg cat -r 1 b
  1

Test multiple files

  $ echo 3 > c
  $ hg ci -Am addmore c
  $ hg cat b c
  1
  3
  $ hg cat .
  1
  3
  $ hg cat . c
  1
  3

Test fileset

  $ hg cat 'set:not(b) or a'
  3
  $ hg cat 'set:c or b'
  1
  3

  $ mkdir tmp
  $ hg cat --output tmp/HH_%H c
  $ hg cat --output tmp/RR_%R c
  $ hg cat --output tmp/h_%h c
  $ hg cat --output tmp/r_%r c
  $ hg cat --output tmp/%s_s c
  $ hg cat --output tmp/%d%%_d c
  $ hg cat --output tmp/%p_p c
  $ hg log -r . --template "{rev}: {node|short}\n"
  2: 45116003780e
  $ find tmp -type f | sort
  tmp/.%_d
  tmp/HH_45116003780e3678b333fb2c99fa7d559c8457e9
  tmp/RR_2
  tmp/c_p
  tmp/c_s
  tmp/h_45116003780e
  tmp/r_2

Test template output

  $ hg --cwd tmp cat ../b ../c -T '== {path|relpath} ({path}) r{rev} ==\n{data}'
  == ../b (b) r2 ==
  1
  == ../c (c) r2 ==
  3

  $ hg cat b c -Tjson --output -
  [
   {
    "data": "1\n",
    "path": "b"
   },
   {
    "data": "3\n",
    "path": "c"
   }
  ]

  $ hg cat b c -Tjson --output 'tmp/%p.json'
  $ cat tmp/b.json
  [
   {
    "data": "1\n",
    "path": "b"
   }
  ]
  $ cat tmp/c.json
  [
   {
    "data": "3\n",
    "path": "c"
   }
  ]

Test working directory

  $ echo b-wdir > b
  $ hg cat -r 'wdir()' b
  b-wdir

Environment variables are not visible by default

  $ PATTERN='t4' hg log -r '.' -T "{ifcontains('PATTERN', envvars, 'yes', 'no')}\n"
  no

Environment variable visibility can be explicit

  $ PATTERN='t4' hg log -r '.' -T "{envvars % '{key} -> {value}\n'}" \
  >                 --config "experimental.exportableenviron=PATTERN"
  PATTERN -> t4

Test behavior of output when directory structure does not already exist

  $ mkdir foo
  $ echo a > foo/a
  $ hg add foo/a
  $ hg commit -qm "add foo/a"
  $ hg cat --output "output/%p" foo/a
  $ cat output/foo/a
  a