D4344: tracing: new module to make tracing events in hg easier
durin42 (Augie Fackler)
phabricator at mercurial-scm.org
Fri Aug 24 13:14:54 EDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG284440041141: tracing: new module to make tracing events in hg easier (authored by durin42, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D4344?vs=10494&id=10553
REVISION DETAIL
https://phab.mercurial-scm.org/D4344
AFFECTED FILES
hgdemandimport/tracing.py
CHANGE DETAILS
diff --git a/hgdemandimport/tracing.py b/hgdemandimport/tracing.py
new file mode 100644
--- /dev/null
+++ b/hgdemandimport/tracing.py
@@ -0,0 +1,34 @@
+# Support code for event tracing in Mercurial. Lives in demandimport
+# so it can also be used in demandimport.
+#
+# Copyright 2018 Google LLC.
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2 or any later version.
+from __future__ import absolute_import
+
+import contextlib
+import os
+
+_pipe = None
+_checked = False
+
+ at contextlib.contextmanager
+def log(whencefmt, *whenceargs):
+ global _pipe, _session, _checked
+ if _pipe is None:
+ if _checked:
+ yield
+ return
+ _checked = True
+ if 'HGCATAPULTSERVERPIPE' not in os.environ:
+ yield
+ return
+ _pipe = open(os.environ['HGCATAPULTSERVERPIPE'], 'w', 1)
+ _session = os.environ.get('HGCATAPULTSESSION', 'none')
+ whence = whencefmt % whenceargs
+ try:
+ _pipe.write('START %s %s\n' % (_session, whence))
+ yield
+ finally:
+ _pipe.write('END %s %s\n' % (_session, whence))
To: durin42, #hg-reviewers
Cc: indygreg, mercurial-devel
More information about the Mercurial-devel
mailing list