Makefile
author Greg Ward <greg@gerg.ca>
Thu, 05 Jun 2014 18:07:39 -0400
branchstable
changeset 973 6d691fefdbd1
parent 542 ca5bb72d14ae
child 1524 bfbd99b50f8f
permissions -rw-r--r--
evolve: fix createmarkers() wrapper to accept an iterable Docstring in mercurial.obsolete says "<relations> must be an iterable of ...", and hgsubversion takes it at its word and passes a generator. Until around Mercurial 3.0, this did not cause any problems, but now it does: in a repo with both evolve and hgsubversion enabled, pushing to Subversion when obsolete changesets are present causes a crash: [...] File "/home/gward/src/hgsubversion/hgsubversion/wrappers.py", line 346, in push obsolete.createmarkers(repo, relations) File "/home/gward/src/hg-stable/mercurial/extensions.py", line 196, in wrap return wrapper(origfn, *args, **kwargs) File "/home/gward/src/hg-evolve/hgext/evolve.py", line 332, in _createmarkers relations[idx] = (prec, sucs, meta) TypeError: 'generator' object does not support item assignment Since hgsubersion is playing by the documented rules, evolve must be the guilty party here.

PYTHON=python
HG=`which hg`
VERSION=$(shell python setup.py --version)


help:
	@echo 'Commonly used make targets:'
	@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

tests:
	cd tests && $(PYTHON) run-tests.py --with-hg=$(HG) $(TESTFLAGS)

test-%:
	cd tests && $(PYTHON) run-tests.py --with-hg=$(HG) $(TESTFLAGS) $@

tests-%:
	@echo "Path to crew repo is $(CREW) - set this with CREW= if needed."
	hg -R $(CREW) checkout $$(echo $@ | sed s/tests-//) && \
	(cd $(CREW) ; $(MAKE) clean ) && \
	cd tests && $(PYTHON) $(CREW)/tests/run-tests.py $(TESTFLAGS)

all-version-tests: tests-1.3.1 tests-1.4.3 tests-1.5.4 \
                   tests-1.6.4 tests-1.7.5 tests-1.8 tests-tip

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: tests all-version-tests