##// END OF EJS Templates
amend: fix amend with copies in extras...
amend: fix amend with copies in extras If copy information is stored only in the commit extras and not in filelogs, then they get lost on amend if the file wasn't also modified in the working copy. That's because we create `filectx` object from the old commit in those cases, and the `.copysource()` of such objects read only from the filelog. This patch fixes it by always creating a new `memfilectx` in these cases, passing the calculated copy information to it. Differential Revision: https://phab.mercurial-scm.org/D12387

File last commit:

r49730:6000f5b2 default
r49833:877d7e1a stable
Show More
memory.py
37 lines | 1.0 KiB | text/x-python | PythonLexer
Martin Geisler
contrib: helper extension to track memory usage
r10017 # memory.py - track memory usage
#
Raphaël Gomès
contributor: change mentions of mpm to olivia...
r47575 # Copyright 2009 Olivia Mackall <olivia@selenic.com> and others
Martin Geisler
contrib: helper extension to track memory usage
r10017 #
# This software may be used and distributed according to the terms of the
Matt Mackall
Merge with stable
r10264 # GNU General Public License version 2 or any later version.
Martin Geisler
contrib: helper extension to track memory usage
r10017
'''helper extension to measure memory usage
Reads current and peak memory usage from ``/proc/self/status`` and
prints it to ``stderr`` on exit.
'''
Pulkit Goyal
contrib: make memory.py use absolute_import
r28510 from __future__ import absolute_import
Martin Geisler
contrib: helper extension to track memory usage
r10017
Augie Fackler
formatting: blacken the codebase...
r43346
Martin Geisler
contrib: helper extension to track memory usage
r10017 def memusage(ui):
"""Report memory usage of the current process."""
result = {'peak': 0, 'rss': 0}
Bryan O'Sullivan
with: use context manager for file I/O in memusage
r27795 with open('/proc/self/status', 'r') as status:
Martin Geisler
contrib: helper extension to track memory usage
r10017 # This will only work on systems with a /proc file system
# (like Linux).
for line in status:
parts = line.split()
key = parts[0][2:-1].lower()
if key in result:
result[key] = int(parts[1])
Augie Fackler
formatting: blacken the codebase...
r43346 ui.write_err(
", ".join(
["%s: %.1f MiB" % (k, v / 1024.0) for k, v in result.iteritems()]
)
+ "\n"
)
Martin Geisler
contrib: helper extension to track memory usage
r10017
def extsetup(ui):
Bryan O'Sullivan
atexit: switch to home-grown implementation
r31958 ui.atexit(memusage, ui)