annotate contrib/casesmash.py @ 40073:e92454e69dc3

narrow: introduce a config option to check if narrow is enabled or not This patch introduces a new config option experimental.narrow which is set to False by default and set to True by the narrow extension. While moving narrow related logic into core, we need to know at places whether narrow extension is enabled or not. Checking the list of extension enabled is one solution but once narrow is inbuilt, we will definitely want a config option to check whether narrow is turned on or not. So this patch introduces a config option, which will evolve to the main point to turn narrow capability on and off once all the narrow is in core. Differential Revision: https://phab.mercurial-scm.org/D4889
author Pulkit Goyal <pulkit@yandex-team.ru>
date Fri, 05 Oct 2018 22:19:19 +0300
parents 42a7301fb4d5
children 2372284d9457
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28351
42a7301fb4d5 casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 19378
diff changeset
1 from __future__ import absolute_import
42a7301fb4d5 casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 19378
diff changeset
2 import __builtin__
42a7301fb4d5 casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 19378
diff changeset
3 import os
42a7301fb4d5 casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 19378
diff changeset
4 from mercurial import (
42a7301fb4d5 casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 19378
diff changeset
5 util,
42a7301fb4d5 casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 19378
diff changeset
6 )
14730
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
7
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
8 def lowerwrap(scope, funcname):
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
9 f = getattr(scope, funcname)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
10 def wrap(fname, *args, **kwargs):
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
11 d, base = os.path.split(fname)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
12 try:
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
13 files = os.listdir(d or '.')
19378
9de689d20230 cleanup: drop unused variables and an unused import
Simon Heimberg <simohe@besonet.ch>
parents: 19322
diff changeset
14 except OSError:
14730
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
15 files = []
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
16 if base in files:
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
17 return f(fname, *args, **kwargs)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
18 for fn in files:
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
19 if fn.lower() == base.lower():
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
20 return f(os.path.join(d, fn), *args, **kwargs)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
21 return f(fname, *args, **kwargs)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
22 scope.__dict__[funcname] = wrap
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
23
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
24 def normcase(path):
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
25 return path.lower()
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
26
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
27 os.path.normcase = normcase
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
28
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
29 for f in 'file open'.split():
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
30 lowerwrap(__builtin__, f)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
31
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
32 for f in "chmod chown open lstat stat remove unlink".split():
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
33 lowerwrap(os, f)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
34
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
35 for f in "exists lexists".split():
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
36 lowerwrap(os.path, f)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
37
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
38 lowerwrap(util, 'posixfile')