view tests/test-debugbackupbundle.t @ 50004:3c34a224c232

locking: take the `wlock` for the full `hg add` duration Otherwise, there is a race condition window between the time we resolve the file to add with the matcher and the time we lock the repo and modify the dirstate. For example, the working copy might have been updated away, or purged, and the matched files would no longer be correct.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 13 Dec 2022 04:21:27 +0100
parents 20d74eebe56c
children
line wrap: on
line source

  $ cat >> $HGRCPATH << EOF
  > [extensions]
  > strip=
  > EOF

Setup repo

  $ hg init repo
  $ cd repo

Test backups list and recover

  $ hg debugbackupbundle
  no backup changesets found

  $ mkcommit() {
  >    echo "$1" > "$1"
  >    hg add "$1"
  >    hg ci -l $1
  > }
  $ mkcommit a
  $ mkcommit b
  $ hg strip .
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d2ae7f538514-2953539b-backup.hg
  $ hg debugbackupbundle
  Recover changesets using: hg debugbackupbundle --recover <changeset hash>
  
  Available backup changesets:
  * (glob)
  d2ae7f538514 b

  $ hg debugbackupbundle --recover d2ae7f538514
  Unbundling d2ae7f538514
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 1 changes to 1 files
  new changesets d2ae7f538514 (1 drafts)