##// END OF EJS Templates
tests: use sha256line.py instead of /dev/random in test-censor.t (issue6858)...
tests: use sha256line.py instead of /dev/random in test-censor.t (issue6858) Sometimes the systems that run our test suite don't have enough entropy and they cannot produce target file of the expected size using /dev/random, which results in test failures. Switching to /dev/urandom would give us way more available data at the cost of it being less "random", but we don't really need to use entropy for this task at all, since we only care if the file size after compression is big enough to not be stored inline in the revlog. So let's use something that we already have used to generate this kind of data in other tests.

File last commit:

r49730:6000f5b2 default
r52255:e7be2ddf stable
Show More
narrowdirstate.py
75 lines | 2.5 KiB | text/x-python | PythonLexer
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 # narrowdirstate.py - extensions to mercurial dirstate to support narrow clones
#
# Copyright 2017 Google, Inc.
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from mercurial.i18n import _
Augie Fackler
formatting: blacken the codebase...
r43346 from mercurial import error
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
Kyle Lippincott
narrow: only wrap dirstate functions once, instead of per-reposetup...
r38142 def wrapdirstate(repo, dirstate):
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 """Add narrow spec dirstate ignore, block changes outside narrow spec."""
Kyle Lippincott
narrow: only wrap dirstate functions once, instead of per-reposetup...
r38142 def _editfunc(fn):
Valentin Gatien-Baron
merge: fix race that could cause wrong size in dirstate...
r42656 def _wrapper(self, *args, **kwargs):
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 narrowmatch = repo.narrowmatch()
for f in args:
Martin von Zweigbergk
narrow: avoid looking up dirstate again when editing dirstate...
r39996 if f is not None and not narrowmatch(f) and f not in self:
Augie Fackler
formatting: blacken the codebase...
r43346 raise error.Abort(
_(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b"cannot track '%s' - it is outside "
+ b"the narrow clone"
Augie Fackler
formatting: blacken the codebase...
r43346 )
% f
)
Valentin Gatien-Baron
merge: fix race that could cause wrong size in dirstate...
r42656 return fn(self, *args, **kwargs)
Augie Fackler
formatting: blacken the codebase...
r43346
Kyle Lippincott
narrow: only wrap dirstate functions once, instead of per-reposetup...
r38142 return _wrapper
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
Kyle Lippincott
narrow: only wrap dirstate functions once, instead of per-reposetup...
r38142 class narrowdirstate(dirstate.__class__):
# Prevent adding/editing/copying/deleting files that are outside the
# sparse checkout
@_editfunc
Valentin Gatien-Baron
merge: fix race that could cause wrong size in dirstate...
r42656 def normal(self, *args, **kwargs):
return super(narrowdirstate, self).normal(*args, **kwargs)
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
Kyle Lippincott
narrow: only wrap dirstate functions once, instead of per-reposetup...
r38142 @_editfunc
win32text: drop associated dirstate cache information on revert...
r49211 def set_tracked(self, *args, **kwargs):
return super(narrowdirstate, self).set_tracked(*args, **kwargs)
dirstate: add a `set_tracked` method for "hg add"-like usage...
r48393
@_editfunc
dirstate: add a `set_untracked` method for "hg remove"-like usage...
r48399 def set_untracked(self, *args):
return super(narrowdirstate, self).set_untracked(*args)
@_editfunc
Kyle Lippincott
narrow: only wrap dirstate functions once, instead of per-reposetup...
r38142 def add(self, *args):
return super(narrowdirstate, self).add(*args)
@_editfunc
def normallookup(self, *args):
return super(narrowdirstate, self).normallookup(*args)
@_editfunc
def copy(self, *args):
return super(narrowdirstate, self).copy(*args)
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
Kyle Lippincott
narrow: only wrap dirstate functions once, instead of per-reposetup...
r38142 @_editfunc
def remove(self, *args):
return super(narrowdirstate, self).remove(*args)
@_editfunc
def merge(self, *args):
return super(narrowdirstate, self).merge(*args)
def rebuild(self, parent, allfiles, changedfiles=None):
if changedfiles is None:
# Rebuilding entire dirstate, let's filter allfiles to match the
# narrowspec.
allfiles = [f for f in allfiles if repo.narrowmatch()(f)]
super(narrowdirstate, self).rebuild(parent, allfiles, changedfiles)
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
Kyle Lippincott
narrow: only wrap dirstate functions once, instead of per-reposetup...
r38142 dirstate.__class__ = narrowdirstate
return dirstate