tests/test-subrepo-missing.t
author Yuya Nishihara <yuya@tcha.org>
Thu, 12 Jan 2012 00:49:45 +0900
branchstable
changeset 15848 012b285cf643
parent 14870 f73c7b70df68
child 16073 b254f827b7a6
permissions -rw-r--r--
filectx: fix cmp() of file starting with '\1\n' If file data starts with '\1\n', it will be escaped in the revlog to create an empty metadata block, thus adding four bytes to the size in the revlog size index. There's no way to detect that this has happened in filelog.size() faster than decompressing each revision [1]. For filectx.cmp(), we have the size of the file in the working directory available. If it differs by exactly four bytes, it may be this case, so do a full comparison. [1]: http://markmail.org/message/5akdbmmqx7vq2fsg

  $ hg init repo
  $ cd repo
  $ hg init subrepo
  $ echo a > subrepo/a
  $ hg -R subrepo ci -Am adda
  adding a
  $ echo 'subrepo = subrepo' > .hgsub
  $ hg ci -Am addsubrepo
  adding .hgsub
  committing subrepository subrepo
  $ echo b > subrepo/b
  $ hg -R subrepo ci -Am addb
  adding b
  $ hg ci -m updatedsub
  committing subrepository subrepo

delete .hgsub and revert it

  $ rm .hgsub
  $ hg revert .hgsub
  warning: subrepo spec file .hgsub not found
  warning: subrepo spec file .hgsub not found

delete .hgsubstate and revert it

  $ rm .hgsubstate
  $ hg revert .hgsubstate

delete .hgsub and update

  $ rm .hgsub
  $ hg up 0
  warning: subrepo spec file .hgsub not found
  warning: subrepo spec file .hgsub not found
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg st
  warning: subrepo spec file .hgsub not found
  ! .hgsub
  $ ls subrepo
  a

delete .hgsubstate and update

  $ hg up -C
  warning: subrepo spec file .hgsub not found
  warning: subrepo spec file .hgsub not found
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ rm .hgsubstate
  $ hg up 0  
  remote changed .hgsubstate which local deleted
  use (c)hanged version or leave (d)eleted? c
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg st
  $ ls subrepo
  a