##// END OF EJS Templates
mq: add parent node IDs to MQ patches on qrefresh/qnew...
mq: add parent node IDs to MQ patches on qrefresh/qnew The goal of this patch is to add the IDs of the parents of applied MQ patches into the patch file headers whenever qnew or qrefresh are run. This will serve as a reminder of when the patches last applied cleanly and will let us do more intelligent things in the future, such as: * Resolve conflicts found when qpushing to a new location by merging instead of simply showing rejects. * Display better diffs of versioned MQ patches because we can tell how the patched files have changed in the meantime. Here are the new rules this patch introduces. They are checked in this order: * If a patch currently has old, plain-style patch headers ("From:" and "Date:") do not change the style or add any new headers. * If the 'mq.plain' configuration setting is true, only plain-style headers will be used for all MQ patches. * qnew will initialize new patches with HG-style headers and fill in the "# Parent" header with the appropriate parent node. * qrefresh will refresh the "# Parent" header with the current parent of the current patch.

File last commit:

r10397:8cb81d75 default
r10397:8cb81d75 default
Show More
test-mq-qpush-fail
62 lines | 1.1 KiB | text/plain | TextLexer
/ tests / test-mq-qpush-fail
Alexis S. L. Carvalho
mq: test that qpush cleans things up when it fails
r4658 #!/bin/sh
# Test that qpush cleans things up if it doesn't complete
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
hg init repo
cd repo
echo foo > foo
Martin Geisler
tests: removed redundant "-d '0 0'" from test scripts...
r8167 hg ci -Am 'add foo'
Alexis S. L. Carvalho
mq: test that qpush cleans things up when it fails
r4658
touch untracked-file
echo 'syntax: glob' > .hgignore
echo '.hgignore' >> .hgignore
hg qinit
Adrian Buehlmann
mq: eliminate warning on qpush with empty series...
r8795
echo '% test qpush on empty series'
hg qpush
Alexis S. L. Carvalho
mq: test that qpush cleans things up when it fails
r4658 hg qnew patch1
echo >> foo
hg qrefresh -m 'patch 1'
hg qnew patch2
echo bar > bar
hg add bar
hg qrefresh -m 'patch 2'
Steve Losh
mq: add parent node IDs to MQ patches on qrefresh/qnew...
r10397 hg qnew --config 'mq.plain=true' bad-patch
Alexis S. L. Carvalho
mq: test that qpush cleans things up when it fails
r4658 echo >> foo
hg qrefresh
hg qpop -a
python -c 'print "\xe9"' > message
cat .hg/patches/bad-patch >> message
mv message .hg/patches/bad-patch
hg qpush -a && echo 'qpush succeded?!'
hg parents
echo '% bar should be gone; other unknown/ignored files should still be around'
hg status -A
Dirkjan Ochtman
mq: fix error message for qpush inexistent-patch (issue1702)
r8875
echo '% preparing qpush of a missing patch'
hg qpop -a
hg qpush
rm .hg/patches/patch2
echo '% now we expect the push to fail, but it should NOT complain about patch1'
hg qpush
Benoit Allard
mq: fix traceback for qpush inexistant-patch with no patch applied
r9590 echo '% preparing qpush of missing patch with no patch applied'
hg qpop -a
rm .hg/patches/patch1
echo '% qpush should fail the same way as below'
hg qpush
Dirkjan Ochtman
mq: fix error message for qpush inexistent-patch (issue1702)
r8875 true # happy ending