mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
fc9106e076
Summary: When the user checks out a new commit (either by updating to it, by creating a new commit, or by amending or rebasing the current commit), create a unique identifier for that checkout. Log this identifier at the start and end of command processing, and allow other tools to also query and log the identifier. This allows both Mercurial commands and other commands that log the identifier to be correlated with a particular checkout. Reviewed By: quark-zju Differential Revision: D14648523 fbshipit-source-id: 2fad79c3010f5fad1a0e180e3d3d6d9c0a7f8e85
23 lines
743 B
Python
23 lines
743 B
Python
# An extension to make identifiers from util.makerandomidentifier into a stable
|
|
# incrementing sequence.
|
|
import os
|
|
|
|
from edenscm.hgext import extutil
|
|
from edenscm.mercurial import extensions, util
|
|
|
|
|
|
def makestableidentifier(orig, length=16):
|
|
stableidentifierfile = os.path.join(os.environ["TESTTMP"], "stableidentifier")
|
|
with extutil.flock(stableidentifierfile, "stableidentifier"):
|
|
try:
|
|
coid = int(open(stableidentifierfile).read().strip())
|
|
except Exception:
|
|
coid = 0
|
|
with open(stableidentifierfile, "w") as f:
|
|
f.write("%s\n" % (coid + 1))
|
|
return "%0*d" % (length, coid)
|
|
|
|
|
|
def uisetup(ui):
|
|
extensions.wrapfunction(util, "makerandomidentifier", makestableidentifier)
|