Mercurial > evolve
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) $@