Mercurial > hg
view tests/test-convert-filemap @ 10128:ea7c392f2b08
patch: drop eol normalization fast-path for 'lf' and 'crlf'
With eolmode set to 'lf' or 'crlf' we avoided the hunk duplication and
normalization by reading the input patch in text mode. Dropping this
optimization simplifies code expectations for a small overhead.
The change in test-mq-eol comes from a tolerance to CRLF instead of LF for last
lines without newlines being broken by this revision. This tolerance was only
partially supported and will be added again in a better way.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Wed, 23 Dec 2009 19:31:48 +0100 |
parents | bb5ea66789e3 |
children | 7fefef3ce791 |
line wrap: on
line source
#!/bin/sh HGMERGE=true; export HGMERGE echo '[extensions]' >> $HGRCPATH echo 'graphlog =' >> $HGRCPATH echo 'convert =' >> $HGRCPATH glog() { hg glog --template '{rev} "{desc}" files: {files}\n' "$@" } hg init source cd source echo foo > foo echo baz > baz mkdir -p dir/subdir echo dir/file >> dir/file echo dir/file2 >> dir/file2 echo dir/subdir/file3 >> dir/subdir/file3 echo dir/subdir/file4 >> dir/subdir/file4 hg ci -d '0 0' -qAm '0: add foo baz dir/' echo bar > bar echo quux > quux hg copy foo copied hg ci -d '1 0' -qAm '1: add bar quux; copy foo to copied' echo >> foo hg ci -d '2 0' -m '2: change foo' hg up -qC 1 echo >> bar echo >> quux hg ci -d '3 0' -m '3: change bar quux' hg up -qC 2 hg merge -qr 3 echo >> bar echo >> baz hg ci -d '4 0' -m '4: first merge; change bar baz' echo >> bar echo 1 >> baz echo >> quux hg ci -d '5 0' -m '5: change bar baz quux' hg up -qC 4 echo >> foo echo 2 >> baz hg ci -d '6 0' -m '6: change foo baz' hg up -qC 5 hg merge -qr 6 echo >> bar hg ci -d '7 0' -m '7: second merge; change bar' echo >> foo hg ci -m '8: change foo' glog echo '% final file versions in this repo:' hg manifest --debug hg debugrename copied echo cd .. splitrepo() { msg="$1" files="$2" opts=$3 echo "% $files: $msg" prefix=`echo "$files" | sed -e 's/ /-/g'` fmap="$prefix.fmap" repo="$prefix.repo" for i in $files; do echo "include $i" >> "$fmap" done hg -q convert $opts --filemap "$fmap" --datesort source "$repo" hg up -q -R "$repo" glog -R "$repo" hg -R "$repo" manifest --debug } splitrepo 'skip unwanted merges; use 1st parent in 1st merge, 2nd in 2nd' foo splitrepo 'merges are not merges anymore' bar splitrepo '1st merge is not a merge anymore; 2nd still is' baz splitrepo 'we add additional merges when they are interesting' 'foo quux' splitrepo 'partial conversion' 'bar quux' '-r 3' splitrepo 'complete the partial conversion' 'bar quux' rm -r foo.repo splitrepo 'partial conversion' 'foo' '-r 3' splitrepo 'complete the partial conversion' 'foo' splitrepo 'copied file; source not included in new repo' copied hg --cwd copied.repo debugrename copied splitrepo 'copied file; source included in new repo' 'foo copied' hg --cwd foo-copied.repo debugrename copied cat > renames.fmap <<EOF include dir exclude dir/file2 rename dir dir2 include foo include copied rename foo foo2 rename copied copied2 exclude dir/subdir include dir/subdir/file3 EOF hg -q convert --filemap renames.fmap --datesort source renames.repo hg up -q -R renames.repo glog -R renames.repo hg -R renames.repo manifest --debug hg --cwd renames.repo debugrename copied2 echo 'copied:' hg --cwd source cat copied echo 'copied2:' hg --cwd renames.repo cat copied2