extensions: recommend against using wrapfunction for repo methods
Instead, all extensions should use the "dynamic subclass" trick:
subclass repo.__class__ and then replace repo.__class__ with your new
subclass. This avoids conflicts that happen when one extension uses
wrapfunction and another uses subclassing to extend the same method of
localrepository.
adding foo
% test qpush on empty series
no patches in series
popping bad-patch
popping patch2
popping patch1
patch queue now empty
applying patch1
applying patch2
applying bad-patch
transaction abort!
rollback completed
cleaning up working directory...done
abort: decoding near 'é': 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)!
changeset: 0:bbd179dfa0a7
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add foo
% bar should be gone; other unknown/ignored files should still be around
? untracked-file
I .hgignore
C foo
% preparing qpush of a missing patch
no patches applied
applying patch1
now at: patch1
% now we expect the push to fail, but it should NOT complain about patch1
applying patch2
unable to read patch2
now at: patch1
% preparing qpush of missing patch with no patch applied
popping patch1
patch queue now empty
% qpush should fail the same way as below
applying patch1
unable to read patch1