tests/test-update-issue1456.t
author Yuya Nishihara <yuya@tcha.org>
Sun, 26 Jun 2016 18:17:12 +0900
changeset 29934 2c6a05b938d8
parent 22046 7a9cbb315d84
child 45840 527ce85c2e60
permissions -rw-r--r--
revset: fix order of nested 'or' expression (BC) This fixes the order of 'x & (y + z)' where 'y' and 'z' are not trivial. The follow-order 'or' operation is slower than the ordered operation if an input set is large: #0 #1 #2 #3 0) 0.002968 0.002980 0.002982 0.073042 1) 0.004513 0.004485 0.012029 0.075261 #0: 0:4000 & (0:1099 + 1000:2099 + 2000:3099) #1: 4000:0 & (0:1099 + 1000:2099 + 2000:3099) #2: 10000:0 & (0:1099 + 1000:2099 + 2000:3099) #3: file("path:hg") & (0:1099 + 1000:2099 + 2000:3099) I've tried another implementation, but which appeared to be slower than this version. ss = [getset(repo, fullreposet(repo), x) for x in xs] return subset.filter(lambda r: any(r in s for s in ss), cache=False)

#require execbit

  $ rm -rf a
  $ hg init a
  $ cd a

  $ echo foo > foo
  $ hg ci -qAm0
  $ echo toremove > toremove
  $ echo todelete > todelete
  $ chmod +x foo toremove todelete
  $ hg ci -qAm1

Test that local removed/deleted, remote removed works with flags
  $ hg rm toremove
  $ rm todelete
  $ hg co -q 0

  $ echo dirty > foo
  $ hg up -c
  abort: uncommitted changes
  [255]
  $ hg up -q
  $ cat foo
  dirty
  $ hg st -A
  M foo
  C todelete
  C toremove

Validate update of standalone execute bit change:

  $ hg up -C 0
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved
  $ chmod -x foo
  $ hg ci -m removeexec
  nothing changed
  [1]
  $ hg up -C 0
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg up
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg st

  $ cd ..