view Makefile @ 5544:0bb75a6c29b1

rewind: add a --dry-run flag There are 3 cases handled separately in formatstatus(): - common-case rewind when we have X current successors rewinding to Y predecessors - rewinding with --as-divergence, when we don't obsolete current successors - rewinding pruned commits, when we don't have current successors to show In the common case, we might have sub-cases that change the output with --dry-run (but not the way the rewind operates): - more predecessors than successors (e.g. after a fold), in which case we simply use successorsmap, which maps successors to a set of predecessors - equal number of predecessors and successors, see the previous case - more successors than predecessors (e.g. after a split), in which case we use a reverse of successorsmap (rsm), which maps predecessors to a set of successors and exists only for the sake of --dry-run functionality These two dicts allow us to group rewind targets and output separate lines for separate predecessors<->successors relations.
author Anton Shestakov <av6@dwimlabs.net>
date Tue, 21 Jul 2020 01:04:43 +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) $@