Mercurial > hg-stable
view tests/test-convert-hg-svn @ 11063:eb23c876c111
tag: warn users about tag/branch possible name conflicts
As reported recently, Mercurial users can easily find confusion when
using a common name for a tag and a branch. It seems reasonable to warn
them about this potential outcome, to avoid that "surprise".
* Explain briefly the issue in "hg help tag"
* Warn when tagging a revision
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Mon, 19 Apr 2010 17:41:12 +0900 |
parents | c52057614c72 |
children |
line wrap: on
line source
#!/bin/sh "$TESTDIR/hghave" svn svn-bindings || exit 80 fix_path() { tr '\\' / } echo "[extensions]" >> $HGRCPATH echo "convert = " >> $HGRCPATH echo "mq = " >> $HGRCPATH svnpath=`pwd | fix_path`/svn-repo svnadmin create "$svnpath" cat > "$svnpath"/hooks/pre-revprop-change <<'EOF' #!/bin/sh REPOS="$1" REV="$2" USER="$3" PROPNAME="$4" ACTION="$5" if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-branch" ]; then exit 0; fi if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-rev" ]; then exit 0; fi echo "Changing prohibited revision property" >&2 exit 1 EOF chmod +x "$svnpath"/hooks/pre-revprop-change # SVN wants all paths to start with a slash. Unfortunately, # Windows ones don't. Handle that. svnurl="$svnpath" expr "$svnurl" : "\/" > /dev/null if [ $? -ne 0 ]; then svnurl="/$svnurl" fi svnurl="file://$svnurl" svn co "$svnurl" "$svnpath"-wc cd "$svnpath"-wc echo a > a svn add a svn ci -m'added a' a cd .. echo % initial roundtrip hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg | grep -v initializing hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc echo % second roundtrip should do nothing hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc echo % new hg rev hg clone "$svnpath"-hg "$svnpath"-work cd "$svnpath"-work echo b > b hg add b hg ci -mb echo '% adding an empty revision' hg qnew -m emtpy empty hg qfinish -a cd .. echo % echo hg to svn hg --cwd "$svnpath"-hg pull -q "$svnpath"-work hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc echo % svn back to hg should do nothing hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg echo % hg back to svn should do nothing hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc