view Makefile @ 5453:7f80558c9b8d stable

topic: treat argument to --topic as a literal topic name explicitly We already do treat it as a string (i.e. not a special revset language symbol) that needs to be escaped, because we use %s in repo.revs(), which escapes and single-quotes the appropriate argument. But now we abort in case user supplies topic name that doesn't exist. Before this patch, when user ran something like `hg push --topic .`, this code would use 'topic(".") - obsolete()' revset, which would get an empty set from repo.revs() unless there was a topic named "." (unlikely, because this name is reserved). This code would then add an empty set to the 'rev' argument of the original hg push command. And `hg push` without -r will try and push everything, and not just changesets on a specific topic.
author Anton Shestakov <av6@dwimlabs.net>
date Thu, 11 Jun 2020 18:50:29 +0800
parents b53343c8d692
children 7cdbe18838bc
line wrap: on
line source

VERSION=$(shell python setup.py --version)

PYTHON=python

all: help

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`

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

# test targets
TESTFLAGS ?= $(shell echo $$HGTESTFLAGS)

HGTESTS=$(HGROOT)/tests

help:
	@echo 'Commonly used make targets:'
	@echo '  deb-prepare        - prepare the build of a debian package'
	@echo '  tests              - run all tests in the automatic test suite'
	@echo '  all-version-tests - run all tests against many hg versions'
	@echo '  tests-%s           - run all tests in the specified hg version'

all: help

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

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

# /!\ run outside of the compatibility branch output test will likely fails

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

tests-%: _check_hgroot
	hg -R $(HGROOT) checkout $$(echo $@ | sed s/tests-//) && \
	(cd $(HGROOT) ; $(MAKE) clean ) && \
	cd tests && $(PYTHON) $(HGTESTS)/run-tests.py $(TESTFLAGS)

# build a script to extract declared version
all-version-tests: tests-@

.PHONY: tests all-version-tests