Mercurial > hg > mercurial-crew
annotate contrib/casesmash.py @ 28532:f6d1e92fdf8c
mac: ignore resource fork when checking file sizes
Some evil evil awful tool adds resource forks to files it's comparing.
Our Mac-specific code to do bulk stats was accidentally using "total
size" which includes those forks in the file size, causing them to be
reported as modified. This changes it to only care about the normal
data size and thus agree with what Mercurial's expecting.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 14 Jan 2016 12:37:15 -0600 |
parents | 9de689d20230 |
children |
rev | line source |
---|---|
19323
ff1586a3adc5
cleanup: remove unused imports
Simon Heimberg <simohe@besonet.ch>
parents:
14730
diff
changeset
|
1 import os, __builtin__ |
14730 | 2 from mercurial import util |
3 | |
4 def lowerwrap(scope, funcname): | |
5 f = getattr(scope, funcname) | |
6 def wrap(fname, *args, **kwargs): | |
7 d, base = os.path.split(fname) | |
8 try: | |
9 files = os.listdir(d or '.') | |
19378
9de689d20230
cleanup: drop unused variables and an unused import
Simon Heimberg <simohe@besonet.ch>
parents:
19323
diff
changeset
|
10 except OSError: |
14730 | 11 files = [] |
12 if base in files: | |
13 return f(fname, *args, **kwargs) | |
14 for fn in files: | |
15 if fn.lower() == base.lower(): | |
16 return f(os.path.join(d, fn), *args, **kwargs) | |
17 return f(fname, *args, **kwargs) | |
18 scope.__dict__[funcname] = wrap | |
19 | |
20 def normcase(path): | |
21 return path.lower() | |
22 | |
23 os.path.normcase = normcase | |
24 | |
25 for f in 'file open'.split(): | |
26 lowerwrap(__builtin__, f) | |
27 | |
28 for f in "chmod chown open lstat stat remove unlink".split(): | |
29 lowerwrap(os, f) | |
30 | |
31 for f in "exists lexists".split(): | |
32 lowerwrap(os.path, f) | |
33 | |
34 lowerwrap(util, 'posixfile') |