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