Mercurial > hg
comparison tests/ls-l.py @ 40495:3a333a582d7b
remotefilelog: import pruned-down remotefilelog extension from hg-experimental
This is remotefilelog as of my recent patches for compatibility with
current tip of hg, minus support for old versions of Mercurial and
some FB-specific features like their treemanifest extension and
fetching linkrev data from a patched phabricator. The file extutil.py
moved from hgext3rd to remotefilelog.
This is not yet ready to be landed, consider it a preview for
now. Planned changes include:
* replace lz4 with zstd
* rename some capabilities, requirements and wireproto commands to mark
them as experimental
* consolidate bits of shallowutil with related functions (eg readfile)
I'm certainly open to other (small) changes, but my rough mission is
to land this largely as-is so we can use it as a model of the
functionality we need going forward for lazy-fetching of file contents
from a server.
# no-check-commit because of a few foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D4782
author | Augie Fackler <augie@google.com> |
---|---|
date | Thu, 27 Sep 2018 13:03:19 -0400 |
parents | |
children | 2372284d9457 |
comparison
equal
deleted
inserted
replaced
40494:9aeb9e2d28a7 | 40495:3a333a582d7b |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 # like ls -l, but do not print date, user, or non-common mode bit, to avoid | |
4 # using globs in tests. | |
5 from __future__ import absolute_import, print_function | |
6 | |
7 import os | |
8 import stat | |
9 import sys | |
10 | |
11 def modestr(st): | |
12 mode = st.st_mode | |
13 result = '' | |
14 if mode & stat.S_IFDIR: | |
15 result += 'd' | |
16 else: | |
17 result += '-' | |
18 for owner in ['USR', 'GRP', 'OTH']: | |
19 for action in ['R', 'W', 'X']: | |
20 if mode & getattr(stat, 'S_I%s%s' % (action, owner)): | |
21 result += action.lower() | |
22 else: | |
23 result += '-' | |
24 return result | |
25 | |
26 def sizestr(st): | |
27 if st.st_mode & stat.S_IFREG: | |
28 return '%7d' % st.st_size | |
29 else: | |
30 # do not show size for non regular files | |
31 return ' ' * 7 | |
32 | |
33 os.chdir((sys.argv[1:] + ['.'])[0]) | |
34 | |
35 for name in sorted(os.listdir('.')): | |
36 st = os.stat(name) | |
37 print('%s %s %s' % (modestr(st), sizestr(st), name)) |