Mercurial > hg
view tests/test-mq-caches @ 10135:9a4034b630c4 stable
patch: better handling of sequence of offset patch hunks (issue1941)
The built-in patch implementation applied the hunks to the wrong lines of the
file if the file in the repo has been modified to skew the patch line numbers
and the file contains repetitive sequences of lines.
author | Greg Onufer <gonufer@jazzhaiku.com> |
---|---|
date | Wed, 09 Dec 2009 16:56:00 -0800 |
parents | 5b7da468531b |
children | bb5ea66789e3 |
line wrap: on
line source
#!/bin/sh branches=.hg/branchheads.cache echo '[extensions]' >> $HGRCPATH echo 'hgext.mq=' >> $HGRCPATH show_branch_cache() { # force cache (re)generation hg log -r does-not-exist 2> /dev/null hg log -r tip --template 'tip: {rev}\n' if [ -f $branches ]; then sort $branches else echo No branch cache fi if [ "$1" = 1 ]; then for b in foo bar; do hg log -r $b --template "branch $b: "'{rev}\n' done fi } hg init a cd a hg qinit -c echo '# mq patch on an empty repo' hg qnew p1 show_branch_cache echo > pfile hg add pfile hg qrefresh -m 'patch 1' show_branch_cache echo echo '# some regular revisions' hg qpop echo foo > foo hg add foo echo foo > .hg/branch hg ci -m 'branch foo' -d '1000000 0' echo bar > bar hg add bar echo bar > .hg/branch hg ci -m 'branch bar' -d '1000000 0' show_branch_cache echo echo '# add some mq patches' hg qpush show_branch_cache hg qnew p2 echo foo > .hg/branch echo foo2 >> foo hg qrefresh -m 'patch 2' show_branch_cache 1 echo echo '# removing the cache' rm $branches show_branch_cache 1 echo echo '# importing rev 1 (the cache now ends in one of the patches)' hg qimport -r 1 -n p0 show_branch_cache 1 hg log -r qbase --template 'qbase: {rev}\n' echo echo '# detect an invalid cache' hg qpop -a hg qpush -a show_branch_cache