Mercurial > hg
view tests/test-convert-svn-sink @ 12382:28ddf67198b2 stable
log: include unmodified-in-merge files in log diff/stat (issue2383)
f786fc4b8764 assumed that walkchangerevs called prep with all relevant matched
filenames, but actually it only contains the names of files changed in the
relevant changeset. That meant that log diff/stat of merges missed the diff for
files only changed in the other branch.
This is a minimal fix for making sure we only use fns when we are following and
thus will have problems with merges anyway ...
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Thu, 23 Sep 2010 01:23:16 +0200 |
parents | 28642f7fc2cf |
children |
line wrap: on
line source
#!/bin/sh "$TESTDIR/hghave" svn svn-bindings no-outer-repo || exit 80 fixpath() { tr '\\' / } svnupanddisplay() { ( cd $1; svn up; svn st -v | fixpath | sed 's/ */ /g' limit='' if [ $2 -gt 0 ]; then limit="--limit=$2" fi svn log --xml -v $limit | fixpath | sed 's,<date>.*,<date/>,' | grep -v 'kind="' ) } echo "[extensions]" >> $HGRCPATH echo "convert = " >> $HGRCPATH hg init a echo a > a/a mkdir -p a/d1/d2 echo b > a/d1/d2/b ln -s a/missing a/link echo % add hg --cwd a ci -d '0 0' -A -m 'add a file' "$TESTDIR/svn-safe-append.py" a a/a echo % modify hg --cwd a ci -d '1 0' -m 'modify a file' hg --cwd a tip -q hg convert -d svn a svnupanddisplay a-hg-wc 2 ls a a-hg-wc cmp a/a a-hg-wc/a && echo same || echo different hg --cwd a mv a b hg --cwd a mv link newlink echo % rename hg --cwd a ci -d '2 0' -m 'rename a file' hg --cwd a tip -q hg convert -d svn a svnupanddisplay a-hg-wc 1 ls a a-hg-wc hg --cwd a cp b c echo % copy hg --cwd a ci -d '3 0' -m 'copy a file' hg --cwd a tip -q hg convert -d svn a svnupanddisplay a-hg-wc 1 ls a a-hg-wc hg --cwd a rm b echo % remove hg --cwd a ci -d '4 0' -m 'remove a file' hg --cwd a tip -q hg convert -d svn a svnupanddisplay a-hg-wc 1 ls a a-hg-wc chmod +x a/c echo % executable hg --cwd a ci -d '5 0' -m 'make a file executable' hg --cwd a tip -q hg convert -d svn a svnupanddisplay a-hg-wc 1 test -x a-hg-wc/c && echo executable || echo not executable echo % executable in new directory rm -rf a a-hg a-hg-wc hg init a mkdir a/d1 echo a > a/d1/a chmod +x a/d1/a hg --cwd a ci -d '0 0' -A -m 'add executable file in new directory' hg convert -d svn a svnupanddisplay a-hg-wc 1 test -x a-hg-wc/d1/a && echo executable || echo not executable echo % copy to new directory mkdir a/d2 hg --cwd a cp d1/a d2/a hg --cwd a ci -d '1 0' -A -m 'copy file to new directory' hg convert -d svn a svnupanddisplay a-hg-wc 1 echo % branchy history hg init b echo base > b/b hg --cwd b ci -d '0 0' -Ambase "$TESTDIR/svn-safe-append.py" left-1 b/b echo left-1 > b/left-1 hg --cwd b ci -d '1 0' -Amleft-1 "$TESTDIR/svn-safe-append.py" left-2 b/b echo left-2 > b/left-2 hg --cwd b ci -d '2 0' -Amleft-2 hg --cwd b up 0 "$TESTDIR/svn-safe-append.py" right-1 b/b echo right-1 > b/right-1 hg --cwd b ci -d '3 0' -Amright-1 "$TESTDIR/svn-safe-append.py" right-2 b/b echo right-2 > b/right-2 hg --cwd b ci -d '4 0' -Amright-2 hg --cwd b up -C 2 hg --cwd b merge hg --cwd b revert -r 2 b hg resolve -m b hg --cwd b ci -d '5 0' -m 'merge' hg convert -d svn b echo % expect 4 changes svnupanddisplay b-hg-wc 0 echo % tags are not supported, but must not break conversion rm -rf a a-hg a-hg-wc hg init a echo a > a/a hg --cwd a ci -d '0 0' -A -m 'Add file a' hg --cwd a tag -d '1 0' -m 'Tagged as v1.0' v1.0 hg convert -d svn a svnupanddisplay a-hg-wc 2 rm -rf a a-hg a-hg-wc