view tests/test-issue1102.t @ 51505:c9ceb4f60256 stable 6.7

phases: avoid N² behavior in `advanceboundary` We allowed duplicated entries in the deque, which each entry could potentially insert all its ancestors. So advancing boundary for the full repository would mean each revision would walk all its ancestors, resulting in O(N²) iteration. For repository of any decent size, N² is quickly insane. We introduce a simple set to avoid this and get back to reasonable performance.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 15 Mar 2024 01:31:57 +0100
parents 805419729e11
children
line wrap: on
line source

  $ rm -rf a
  $ hg init a
  $ cd a
  $ echo a > a
  $ hg ci -Am0
  adding a
  $ hg tag t1 # 1
  $ hg tag --remove t1 # 2

  $ hg co 1
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg tag -f -r0 t1
  $ hg tags
  tip                                3:a49829c4fc11
  t1                                 0:f7b1eb17ad24

Ensure that the username access fails gracefully if assumptions about the
environment made by python do not hold.

#if windows
  >>> import os
  >>> from mercurial import util
  >>> os.environ.pop('LOGNAME', None) and None
  >>> os.environ.pop('USER', None) and None
  >>> os.environ.pop('LNAME', None) and None
  >>> os.environ.pop('USERNAME', None) and None
  >>> print(util.username())
  None
#endif

  $ cd ..