Before you try to modify this code, read hacking.adoc.

This may reveal a bug in the second toposort function. There is a recipe for creating a close-to-minimal branch cycle testcase in tests/README.

Created as follows:

	mkdir vend-test1.vend
	cd vend-test1.vend
	echo 1 > FILE1
	cvs import -m v1 vend-test1 vend vend_1_0
	cd ..
	cvs co vend-test1
	cd vend-test1
	echo 1 > FILE2
	cvs add FILE2
	cvs commit -m c1
	cd ../vend-test1.vend/
	echo 2 > FILE1
	cvs import -m v2 vend-test1 vend vend_1_1
	cd ../vend-test1/
	cvs up
	echo 2 > FILE2
	cvs commit -m c2
	cvs tag lost-repo-state
	echo 3 > FILE1
	cvs commit -m c3

Loz says: Subset tag will probably paper over the problem. Imagine the repo didn’t have the +"lost-repo-state" tag. There wouldn’t be a commit for this state in the git repo."

lisp/progmodes/cperl-mode.el lisp/textmodes/flyspell.el

These have differently named 1.1.1 branches (ILYA and FLYSPELL). Merging them into the same import-1.1.1 branch causes all sorts of weirdness with tagging. The tags (e.g. Ilya_5_23) only point to commits in one branch.

I think they need to treated as separate branch heads.

This didn’t work with the old or new vendor branch code.