##// END OF EJS Templates
sidedatacopies: only store an entry if it has values...
sidedatacopies: only store an entry if it has values This will make for a shorter storage and help use to write faster code in simple case. This change already provided a speed boost for copy tracing. For example here is combined time of running copies tracing on a 6989 pairs of revision on the pypy repos: before: 771s after: 631s - 18% This also has a very positive impact on changelog size. For example here are the number for the `00changelog.d` file of pypy. before: 30449712 Bytes after: 24973718 Bytes - 18% This give an overall quite acceptable overhead for storing copies into the changelog: filelog-only: 23370586 sidedata: 24973718 Bytes + 7% Differential Revision: https://phab.mercurial-scm.org/D7068

File last commit:

r43346:2372284d default
r43505:30570a05 default
Show More
build.py
60 lines | 1.5 KiB | text/x-python | PythonLexer
#!/usr/bin/env python3
# build.py - Inno installer build script.
#
# Copyright 2019 Gregory Szorc <gregory.szorc@gmail.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
# This script automates the building of the Inno MSI installer for Mercurial.
# no-check-code because Python 3 native.
import argparse
import os
import pathlib
import sys
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument(
'--python', required=True, help='path to python.exe to use'
)
parser.add_argument('--iscc', help='path to iscc.exe to use')
parser.add_argument(
'--version',
help='Mercurial version string to use '
'(detected from __version__.py if not defined',
)
args = parser.parse_args()
if not os.path.isabs(args.python):
raise Exception('--python arg must be an absolute path')
if args.iscc:
iscc = pathlib.Path(args.iscc)
else:
iscc = (
pathlib.Path(os.environ['ProgramFiles(x86)'])
/ 'Inno Setup 5'
/ 'ISCC.exe'
)
here = pathlib.Path(os.path.abspath(os.path.dirname(__file__)))
source_dir = here.parent.parent.parent
build_dir = source_dir / 'build'
sys.path.insert(0, str(source_dir / 'contrib' / 'packaging'))
from hgpackaging.inno import build
build(
source_dir,
build_dir,
pathlib.Path(args.python),
iscc,
version=args.version,
)