view Makefile @ 5778:84affb254cdf

evolvecmd: don't update working copy when using in-memory merge This patch removes the update of the working copy after each in-memory merge and only instead updates the working copy afterwards (if requested). There's still no significant speedup in the hg repo. It seems that the cost of updating the working copy is not large enough to make much difference, and the cost of reading and updating obsmarkers is relatively high in that repo. A significant part of the time (~35%) is spent in `repoview.computehidden()` because it is recalculated for every commit (seems like potential for improvement). I made similar changes in the mozilla-unified repo (which has a significantly larger working copy), by adding 10 commits each changing one line of a file. There, evolving 9 of those commits took 34s before this patch and 20s after. I measured similar speedups in an internal repo (9.0s -> 5.2s).
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 24 Nov 2020 16:33:24 -0800
parents 77729ad7cb0c
children a86c2682f608
line wrap: on
line source

PYTHON ?= python
VERSION = $(shell python setup.py --version)
TESTFLAGS ?= $(shell echo $$HGTESTFLAGS)
HGTESTS = $(HGROOT)/tests

.PHONY: help
help:
	@echo 'Commonly used make targets:'
	@echo '  deb-prepare        - prepare the build of a debian package'
	@echo '  install-home       - install with setup.py install --home=$$HOME ($(HOME))'
	@echo '  tests              - run all tests in the automatic test suite'

.PHONY: all
all: help

.PHONY: deb-prepare
deb-prepare:
	python setup.py sdist --dist-dir ..
	mv -f ../hg-evolve-$(VERSION).tar.gz ../mercurial-evolve_$(VERSION).orig.tar.gz
	tar xf ../mercurial-evolve_$(VERSION).orig.tar.gz
	rm -rf ../mercurial-evolve_$(VERSION).orig
	mv hg-evolve-$(VERSION) ../mercurial-evolve_$(VERSION).orig
	cp -r debian/ ../mercurial-evolve_$(VERSION).orig/
	@cd ../mercurial-evolve_$(VERSION).orig && echo 'debian build directory ready at' `pwd`

.PHONY: install-home
install-home:
	$(PYTHON) setup.py install --home="$(HOME)" --prefix="" --force

.PHONY: doc
doc:
	$(MAKE) -C docs

.PHONY: _check_hgroot
_check_hgroot:
ifeq ($(HGROOT),)
	$(error HGROOT is not set to the root of the hg source tree)
endif

.PHONY: tests
tests: _check_hgroot
	cd tests && $(PYTHON) $(HGTESTS)/run-tests.py $(TESTFLAGS)

test-%: _check_hgroot
	cd tests && $(PYTHON) $(HGTESTS)/run-tests.py $(TESTFLAGS) $@