view tests/test-mq-symlinks.t @ 20553:86cefb15e7b5

cmdutil: implemented new lazy increasingwindows Now log can work in a lazy way and get results as soon as they are processed. Performance Benchmarking: $ time hg log -l1 -qr "branch(default)" 0:9117c6561b0b real 0m2.303s user 0m2.252s sys 0m0.048s $ time ./hg log -l1 -qr "branch(default)" 0:9117c6561b0b real 0m0.238s user 0m0.199s sys 0m0.037s
author Lucas Moscovicz <lmoscovicz@fb.com>
date Thu, 13 Feb 2014 14:27:12 -0800
parents 904b7109938e
children 7a9cbb315d84
line wrap: on
line source

  $ "$TESTDIR/hghave" symlink || exit 80

  $ echo "[extensions]" >> $HGRCPATH
  $ echo "mq=" >> $HGRCPATH

  $ hg init
  $ hg qinit
  $ hg qnew base.patch
  $ echo aaa > a
  $ echo bbb > b
  $ echo ccc > c
  $ hg add a b c
  $ hg qrefresh
  $ "$TESTDIR/readlink.py" a
  a -> a not a symlink


test replacing a file with a symlink

  $ hg qnew symlink.patch
  $ rm a
  $ ln -s b a
  $ hg qrefresh --git
  $ "$TESTDIR/readlink.py" a
  a -> b

  $ hg qpop
  popping symlink.patch
  now at: base.patch
  $ hg qpush
  applying symlink.patch
  now at: symlink.patch
  $ "$TESTDIR/readlink.py" a
  a -> b


test updating a symlink

  $ rm a
  $ ln -s c a
  $ hg qnew --git -f updatelink
  $ "$TESTDIR/readlink.py" a
  a -> c
  $ hg qpop
  popping updatelink
  now at: symlink.patch
  $ hg qpush --debug
  applying updatelink
  patching file a
  a
  now at: updatelink
  $ "$TESTDIR/readlink.py" a
  a -> c
  $ hg st


test replacing a symlink with a file

  $ ln -s c s
  $ hg add s
  $ hg qnew --git -f addlink
  $ rm s
  $ echo sss > s
  $ hg qnew --git -f replacelinkwithfile
  $ hg qpop
  popping replacelinkwithfile
  now at: addlink
  $ hg qpush
  applying replacelinkwithfile
  now at: replacelinkwithfile
  $ cat s
  sss
  $ hg st


test symlink removal

  $ hg qnew removesl.patch
  $ hg rm a
  $ hg qrefresh --git
  $ hg qpop
  popping removesl.patch
  now at: replacelinkwithfile
  $ hg qpush
  applying removesl.patch
  now at: removesl.patch
  $ hg st -c
  C b
  C c
  C s

replace broken symlink with another broken symlink

  $ ln -s linka linka
  $ hg add linka
  $ hg qnew link
  $ hg mv linka linkb
  $ rm linkb
  $ ln -s linkb linkb
  $ hg qnew movelink
  $ hg qpop
  popping movelink
  now at: link
  $ hg qpush
  applying movelink
  now at: movelink
  $ "$TESTDIR/readlink.py" linkb
  linkb -> linkb