Mercurial > hg
view tests/test-mq-qfold @ 10672:c2e1e637d4da stable
rebase: always check if rebasing onto an applied mq patch.
Previously, it only checked for an mq patch if the user explicitly
passed -d/--dest. But rebasing onto an mq patch is a bad idea
regardless of how we determine the rebase destination.
author | Greg Ward <greg-hg@gerg.ca> |
---|---|
date | Tue, 02 Mar 2010 15:08:43 -0500 |
parents | 8cb81d75730c |
children |
line wrap: on
line source
#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "mq=" >> $HGRCPATH echo "[mq]" >> $HGRCPATH echo "git=keep" >> $HGRCPATH filterdiff() { grep -v diff | \ sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" } filterpatch() { sed -e "s/\(# Parent \).*/\1/" } echo '% init' hg init repo cd repo echo a > a hg ci -Am adda echo a >> a hg qnew -f p1 echo b >> a hg qnew -f p2 echo c >> a hg qnew -f p3 echo '% fold in the middle of the queue' hg qpop p1 hg qdiff | filterdiff hg qfold p2 grep git .hg/patches/p1 && echo 'git patch found!' hg qser hg qdiff | filterdiff echo '% fold with local changes' echo d >> a hg qfold p3 hg diff -c . | filterdiff hg revert -a --no-backup echo '% fold git patch into a regular patch, expect git patch' echo a >> a hg qnew -f regular hg cp a aa hg qnew --git -f git hg qpop hg qfold git cat .hg/patches/regular | filterpatch hg qpop hg qdel regular echo '% fold regular patch into a git patch, expect git patch' hg cp a aa hg qnew --git -f git echo b >> aa hg qnew -f regular hg qpop hg qfold regular cat .hg/patches/git | filterpatch cd ..