Mercurial > hg-stable
view tests/test-mq-qrefresh @ 9547:f57640bf10d4
cmdutil: changeset_printer: use methods of filectx/changectx.
This allows extensions that modify changeset metadata (e.g.
description) by overriding methods of changectx to get consistent
behavior from all log-like commands, regardless of whether templates
or styles are used. Without this, overriding changectx methods works
if you use styles or templates, but not with default log format.
This meant adding filectx.extra() for consistency with changectx.
author | Greg Ward <greg-hg@gerg.ca> |
---|---|
date | Mon, 05 Oct 2009 18:17:13 -0400 |
parents | 5f7e3f17aece |
children | 08a0f04b56bd b8801b58bbd8 |
line wrap: on
line source
#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "mq=" >> $HGRCPATH echo % init hg init a cd a echo % commit mkdir 1 2 echo 'base' > 1/base echo 'base' > 2/base hg ci -Ambase -d '1 0' echo % qnew mqbase hg qnew -mmqbase mqbase echo % qrefresh echo 'patched' > 1/base echo 'patched' > 2/base hg qrefresh echo % qdiff hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % qdiff dirname hg qdiff . | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % patch file contents cat .hg/patches/mqbase | \ sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % qrefresh 1 echo 'patched again' > base hg qrefresh 1 echo % qdiff hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % qdiff dirname hg qdiff . | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % patch file contents cat .hg/patches/mqbase | \ sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % qrefresh . in subdir ( cd 1 ; hg qrefresh . ) echo % qdiff hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % qdiff dirname hg qdiff . | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % patch file contents cat .hg/patches/mqbase | \ sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % qrefresh in hg-root again hg qrefresh echo % qdiff hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % qdiff dirname hg qdiff . | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % patch file contents cat .hg/patches/mqbase | \ sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo echo % qrefresh --short tests: echo 'orphan' > orphanchild hg add orphanchild echo % - add 1/base and 2/base one by one hg qrefresh nonexistingfilename # clear patch hg qrefresh --short 1/base hg qrefresh --short 2/base echo % -- qdiff output hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % -- patch file content cat .hg/patches/mqbase | \ sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" hg st echo % -- diff shows what is not in patch hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/^\(diff\).*/\1/" echo % - before starting exclusive tests sed -n '/^diff/s/diff -r [^ ]* //p' .hg/patches/mqbase echo % - exclude 2/base hg qref -s -X 2/base sed -n '/^diff/s/diff -r [^ ]* //p' .hg/patches/mqbase echo % -- status shows 2/base as dirty hg st echo % - remove 1/base and add 2/base again but not orphanchild hg qref -s -X orphanchild -X 1/base 2/base orphanchild sed -n '/^diff/s/diff -r [^ ]* //p' .hg/patches/mqbase echo % - add 1/base with include filter - and thus remove 2/base from patch hg qref -s -I 1/ o* */* sed -n '/^diff/s/diff -r [^ ]* //p' .hg/patches/mqbase echo cd .. # Test qrefresh --git losing copy metadata echo % create test repo hg init repo cd repo echo "[diff]" >> .hg/hgrc echo "git=True" >> .hg/hgrc echo a > a hg ci -Am adda hg copy a ab echo b >> ab hg copy a ac echo c >> ac echo % capture changes hg qnew -f p1 hg qdiff echo % refresh and check changes again hg qref hg qdiff cd .. # Test issue 1441: qrefresh confused after hg rename echo % issue1441 without git patches hg init repo-1441 cd repo-1441 echo a > a hg add a hg qnew -f p hg mv a b hg qrefresh hg qdiff --nodates cd .. echo % issue1441 with git patches hg init repo-1441-git cd repo-1441-git echo "[diff]" >> .hg/hgrc echo "git=True" >> .hg/hgrc echo a > a hg add a hg qnew -f p hg mv a b hg qrefresh hg qdiff --nodates cd ..