debian/rules
author Martin von Zweigbergk <martinvonz@google.com>
Thu, 30 Apr 2020 10:05:14 -0700
changeset 5341 13376ca93fa3
parent 4913 cac7e750422f
child 5294 29f3680823e9
permissions -rwxr-xr-x
evolve: always create commit when resolving divergence When resolving content-divergence, the final commit we create may end up empty (which means that Mercurial won't even create it). We've had code for handling that in evolve ever since 41bf6c27a122 (evolve: stabilize now handle conflicting changeset, 2012-08-23). However, that resolved the issue by marking on the divergent commits as successor. As Pierre-Yves has pointed out (in other code reviews), we should instead be creating a new successor. So that's what this patch does. It does that by setting `ui.allowemptycommit` while creating the final commit. However, that is not enough, because we may end up creating the same nodeid as already existed (we'd then end up trying to mark the "new" commit a successor of itself). To solve that, we add some salt to the commit extras. That salt affects lots of tests.

#!/usr/bin/make -f
#export DH_VERBOSE=1

%:
	dh $@ --with python2,python3,sphinxdoc --buildsystem=pybuild

ifeq (,$(filter nodoc, $(DEB_BUILD_OPTIONS)))
override_dh_auto_build:
	dh_auto_build
	# Workaround for Sphinx in Debian Buster defaulting to Python 3
	SPHINXBUILD="python -m sphinx -bhtml" $(MAKE) -C docs
endif

hgsrc_defined:
	# Use "! -z" instead of "-n", because "-n" without arguments is true
	test ! -z $(HGSRC) && test -d $(HGSRC) || (echo "$(HGSRC) is not a directory"; false)

ifeq (,$(filter nocheck, $(DEB_BUILD_OPTIONS)))
override_dh_auto_test: hgsrc_defined
	cd tests && python $(HGSRC)/tests/run-tests.py --with-hg=$(HGSRC)/hg --blacklist=$(CURDIR)/debian/test-blacklist
endif

override_dh_python2:
	# avoid conflict with mercurial's own hgext3rd/__init__.py
	find debian -path '*/hgext3rd/__init__.py' -delete
	dh_python2

override_dh_python3:
	# avoid conflict with mercurial's own hgext3rd/__init__.py
	find debian -path '*/hgext3rd/__init__.py' -delete
	dh_python3

override_dh_auto_clean: clean-docs
	dh_auto_clean
	rm -f tests/*.err

clean-docs:
	rm -rf html
	rm -f docs/static/logo-evolve.ico
	rm -f docs/tutorials/tutorial.rst
	rm -f docs/tutorials/topic-tutorial.rst