view tests/test-narrow-debugrebuilddirstate.t @ 47034:0d8ff1f4ab0c

revlog: add a `entry_binary` method on index The revlog index is already responsible for unpacking the binary entry, it would be simpler to make it responsible for packing them. In practice the C version of the index is already doing this internally. We introduce a "entry_binary" method that return the binary version of an existing revision. The method currently need to also take the revlog header to deal with the "first revision" special case. We will introduce further refactor in a later changeset to split that logic out. Differential Revision: https://phab.mercurial-scm.org/D10508
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 08 Apr 2021 00:01:11 +0200
parents 01c0f01b562b
children
line wrap: on
line source

  $ . "$TESTDIR/narrow-library.sh"
  $ hg init master
  $ cd master
  $ echo treemanifest >> .hg/requires
  $ echo 'contents of file' > file
  $ mkdir foo
  $ echo 'contents of foo/bar' > foo/bar
  $ hg ci -Am 'some change'
  adding file
  adding foo/bar

  $ cd ..
  $ hg clone --narrow ssh://user@dummy/master copy --include=foo
  requesting all changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 1 changes to 1 files
  new changesets * (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ cd copy

  $ hg debugdirstate --no-dates
  n *         20 *               foo/bar (glob)
  $ mv .hg/dirstate .hg/old_dirstate
  $ dd bs=40 count=1 if=.hg/old_dirstate of=.hg/dirstate 2>/dev/null
  $ hg debugdirstate
  $ hg debugrebuilddirstate
  $ hg debugdirstate
  n *         * unset               foo/bar (glob)