view tests/test-demandimport.py @ 25283:19d0e5efa6ca

match: enable 'subinclude:' syntax This adds a new rule syntax that allows the user to include a pattern file, but only have those patterns match against files underneath the subdirectory of the pattern file. This is useful when you have nested projects in a repository and the inner projects wants to set up ignore rules that won't affect other projects in the repository. It is also useful in high commit rate repositories for removing the root .hgignore as a point of contention.
author Durham Goode <durham@fb.com>
date Sat, 16 May 2015 16:25:05 -0700
parents 2205d00b6d2b
children 0d0f4070f6d7
line wrap: on
line source

from mercurial import demandimport
demandimport.enable()

import os
if os.name != 'nt':
    try:
        import distutils.msvc9compiler
        print ('distutils.msvc9compiler needs to be an immediate '
               'importerror on non-windows platforms')
        distutils.msvc9compiler
    except ImportError:
        pass

import re

rsub = re.sub
def f(obj):
    l = repr(obj)
    l = rsub("0x[0-9a-fA-F]+", "0x?", l)
    l = rsub("from '.*'", "from '?'", l)
    l = rsub("'<[a-z]*>'", "'<whatever>'", l)
    return l

import os

print "os =", f(os)
print "os.system =", f(os.system)
print "os =", f(os)

from mercurial import util

print "util =", f(util)
print "util.system =", f(util.system)
print "util =", f(util)
print "util.system =", f(util.system)

import re as fred
print "fred =", f(fred)

import sys as re
print "re =", f(re)

print "fred =", f(fred)
print "fred.sub =", f(fred.sub)
print "fred =", f(fred)

print "re =", f(re)
print "re.stderr =", f(re.stderr)
print "re =", f(re)

demandimport.disable()
os.environ['HGDEMANDIMPORT'] = 'disable'
demandimport.enable()
from mercurial import node
print "node =", f(node)