tests/test-narrow-debugrebuilddirstate.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Fri, 05 Apr 2024 14:13:47 +0200
changeset 51584 5b99b64328f2
parent 39871 01c0f01b562b
permissions -rw-r--r--
phases: use revision number in `_pushdiscoveryphase` We now reach our target checkpoint in terms of rev-num conversion. The `_pushdiscoveryphase` function is now performing graph computation based on revision number only. Avoiding repeated conversion from node-id to rev-num. See previous changeset updated `new_heads` for rationnal. Again, time saved in the 100 milliseconds order of magnitude for the mozilla-try benchmark I have been using. However, wow that the logic is done using revision number, we can look into having better logic in the next changesets, which will provide a much bigger speedup.

  $ . "$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)