tests/test-rebuildstate.t
author Durham Goode <durham@fb.com>
Fri, 09 Jan 2015 10:52:14 -0800
changeset 23835 aa4a1672583e
parent 16913 f2719b387380
child 23840 ddc17eaf0f1b
permissions -rw-r--r--
bundles: do not overwrite existing backup bundles (BC) Previously, a backup bundle could overwrite an existing bundle and cause user data loss. For instance, if you have A<-B<-C and strip B, it produces backup bundle B-backup.hg. If you then hg pull -r B B-backup.hg and strip it again, it overwrites the existing B-backup.hg and C is lost. The fix is to add a hash of all the nodes inside that bundle to the filename. Fixed up existing tests and added a new test in test-strip.t

basic test for hg debugrebuildstate

  $ hg init repo
  $ cd repo

  $ touch foo bar
  $ hg ci -Am 'add foo bar'
  adding bar
  adding foo

  $ touch baz
  $ hg add baz
  $ hg rm bar

  $ hg debugrebuildstate

state dump after

  $ hg debugstate --nodates | sort
  n 644         -1 bar
  n 644         -1 foo

status

  $ hg st -A
  ! bar
  ? baz
  C foo

  $ cd ..