##// END OF EJS Templates
convert/bzr: make it work with filemaps (issue1631)...
convert/bzr: make it work with filemaps (issue1631) The bzr converter maintains a child -> parents mapping and drop entries whenever a child is read. It does not work with filemaps, getchangedfiles() may be called more than once when filtered files belong to merge revisions. getchanges() still works that way but it is not clear whether a similar issue can arise when interacting with merges.

File last commit:

r7772:88887054 default
r8165:78658990 default
Show More
test-mq-guards
161 lines | 2.5 KiB | text/plain | TextLexer
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
hg init
hg qinit
echo x > x
hg ci -Ama
hg qnew a.patch
echo a > a
hg add a
hg qrefresh
hg qnew b.patch
echo b > b
hg add b
hg qrefresh
hg qnew c.patch
echo c > c
hg add c
hg qrefresh
hg qpop -a
echo % should fail
hg qguard does-not-exist.patch +bleh
echo % should fail
hg qguard +fail
hg qpush
echo % should guard a.patch
hg qguard +a
echo % should print +a
hg qguard
hg qpop
echo % should fail
hg qpush a.patch
hg qguard a.patch
echo % should push b.patch
hg qpush
hg qpop
echo % test selection of an empty guard
hg qselect ""
hg qselect a
echo % should push a.patch
hg qpush
hg qguard -- c.patch -a
echo % should print -a
hg qguard c.patch
echo % should skip c.patch
hg qpush -a
echo % should display b.patch
hg qtop
hg qguard -n c.patch
echo % should push c.patch
hg qpush -a
hg qpop -a
hg qselect -n
echo % should push all
hg qpush -a
hg qpop -a
hg qguard a.patch +1
hg qguard b.patch +2
hg qselect 1
echo % should push a.patch, not b.patch
hg qpush
hg qpush
hg qpop -a
hg qselect 2
echo % should push b.patch
hg qpush
hg qpush -a
# Used to be an issue with holes in the patch sequence
# So, put one hole on the base and ask for topmost patch.
hg qtop
hg qpop -a
hg qselect 1 2
echo % should push a.patch, b.patch
hg qpush
hg qpush
hg qpop -a
hg qguard -- a.patch +1 +2 -3
hg qselect 1 2 3
echo % list patches and guards
hg qguard -l
echo % list series
hg qseries -v
echo % list guards
hg qselect
echo % should push b.patch
hg qpush
hg qpush -a
hg qselect -n --reapply
echo % guards in series file: +1 +2 -3
hg qselect -s
echo % should show c.patch
hg qapplied
hg qrename a.patch new.patch
echo % should show :
echo % new.patch: +1 +2 -3
echo % b.patch: +2
echo % c.patch: unguarded
hg qguard -l
hg qnew d.patch
hg qpop
echo % should show new.patch and b.patch as Guarded, c.patch as Applied
echo % and d.patch as Unapplied
hg qseries -v
hg qguard d.patch +2
echo % new.patch, b.patch: Guarded. c.patch: Applied. d.patch: Guarded.
hg qseries -v
qappunappv()
{
for command in qapplied "qapplied -v" qunapplied "qunapplied -v"; do
echo % hg $command
hg $command
done
}
hg qpop -a
hg qguard -l
qappunappv
hg qselect 1
qappunappv
hg qpush -a
qappunappv
hg qselect 2
qappunappv
for patch in `hg qseries`; do
echo % hg qapplied $patch
hg qapplied $patch
echo % hg qunapplied $patch
hg qunapplied $patch
done
echo % hg qseries -m: only b.patch should be shown
echo the guards file was not ignored in the past
hg qdelete -k b.patch
hg qseries -m