tests/test-empty.t
author Arseniy Alekseyev <aalekseyev@janestreet.com>
Mon, 15 Aug 2022 16:12:41 +0100
changeset 49448 5fe7e9eda0f3
parent 48691 7ee07e1a25c0
child 49920 2f2682f40ea0
permissions -rw-r--r--
revlog: make _partialmatch fail fast on almost-hex inputs Before this change, resolving a revision like [0123456789^] on a large repo can take multiple seconds because: - hg does not realize this is a revset, so it tries various things, including _partialmatch(b"0123456789^") - after the rust lookup fails, it falls back to pure hg - pure hg takes all-but-last chars and converts them to binary, which *succeeds*, so it does the expensive part.

Create an empty repo:

  $ hg init a
  $ cd a

Try some commands:

  $ hg log
  $ hg grep wah
  [1]
  $ hg manifest
  $ hg verify
  checking changesets
  checking manifests
  crosschecking files in changesets and manifests
  checking files
  checked 0 changesets with 0 changes to 0 files

Check the basic files created:

  $ ls .hg
  00changelog.i
  cache
  requires
  store
  wcache

Should be empty (except for the "basic" requires):

  $ ls .hg/store
  requires

Poke at a clone:

  $ cd ..
  $ hg clone a b
  updating to branch default
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ cd b
  $ hg verify
  checking changesets
  checking manifests
  crosschecking files in changesets and manifests
  checking files
  checked 0 changesets with 0 changes to 0 files
  $ ls .hg
  00changelog.i
  cache
  dirstate
  hgrc
  requires
  store
  wcache

Should be empty (except for the "basic" requires):

  $ ls .hg/store
  requires

  $ cd ..