- #!/bin/sh
- "$TESTDIR/hghave" p4 execbit symlink || exit 80
- echo "[extensions]" >> $HGRCPATH
- echo "convert = " >> $HGRCPATH
- echo % create p4 depot
- P4ROOT=`pwd`/depot; export P4ROOT
- P4AUDIT=$P4ROOT/audit; export P4AUDIT
- P4JOURNAL=$P4ROOT/journal; export P4JOURNAL
- P4LOG=$P4ROOT/log; export P4LOG
- P4PORT=localhost:16661; export P4PORT
- P4DEBUG=1; export P4DEBUG
- P4CHARSET=utf8; export P4CHARSET
- echo % start the p4 server
- [ ! -d $P4ROOT ] && mkdir $P4ROOT
- p4d -f -J off -xi >$P4ROOT/stdout 2>$P4ROOT/stderr
- p4d -f -J off >$P4ROOT/stdout 2>$P4ROOT/stderr &
- trap "echo % stop the p4 server ; p4 admin stop" EXIT
- # wait for the server to initialize
- while ! p4 ; do
- sleep 1
- done >/dev/null 2>/dev/null
- echo % create a client spec
- P4CLIENT=hg-p4-import; export P4CLIENT
- DEPOTPATH=//depot/test-mercurial-import/...
- p4 client -o | sed '/^View:/,$ d' >p4client
- echo View: >>p4client
- echo " $DEPOTPATH //$P4CLIENT/..." >>p4client
- p4 client -i <p4client
- echo % populate the depot
- TYPES="text binary symlink"
- TYPES="$TYPES text+m text+w text+x text+k text+kx text+ko text+l text+C text+D text+F text+S text+S2"
- TYPES="$TYPES binary+k binary+x binary+kx symlink+k"
- TYPES="$TYPES ctext cxtext ktext kxtext ltext tempobj ubinary uxbinary xbinary xltext xtempobj xtext"
- # not testing these
- #TYPES="$TYPES apple resource unicode utf16 uresource xunicode xutf16"
- for T in $TYPES ; do
- T2=`echo $T | tr [:upper:] [:lower:]`
- case $T in
- apple)
- ;;
- symlink*)
- echo "this is target $T" >target_$T2
- ln -s target_$T file_$T2
- p4 add target_$T2
- p4 add -t $T file_$T2
- ;;
- binary*)
- python -c "file('file_$T2', 'wb').write('this is $T')"
- p4 add -t $T file_$T2
- ;;
- *)
- echo "this is $T" >file_$T2
- p4 add -t $T file_$T2
- ;;
- esac
- done
- p4 submit -d initial
- echo % test keyword expansion
- p4 edit file_* target_*
- for T in $TYPES ; do
- T2=`echo $T | tr [:upper:] [:lower:]`
- echo '$Id$' >>file_$T2
- echo '$Header$' >>file_$T2
- echo '$Date$' >>file_$T2
- echo '$DateTime$' >>file_$T2
- echo '$Change$' >>file_$T2
- echo '$File$' >>file_$T2
- echo '$Revision$' >>file_$T2
- echo '$Header$$Header$Header$' >>file_$T2
- done
- ln -s 'target_$Header$' crazy_symlink+k
- p4 add -t symlink+k crazy_symlink+k
- p4 submit -d keywords
- echo % check keywords in p4
- grep -H Header file_*
- echo % convert
- hg convert -s p4 $DEPOTPATH dst
- hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'g
- echo % revision 0
- hg -R dst update 0
- head dst/file_* | cat -v
- echo
- echo % revision 1
- hg -R dst update 1
- head dst/file_* | cat -v
- echo
- echo % crazy_symlink
- readlink crazy_symlink+k
- readlink dst/crazy_symlink+k
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 8266 | Mojmir Svoboda | branch sven/mercurial -> mojmir/mercurial | 12 years ago | |
//guest/sven_erik_knop/mercurial/tests/test-convert-p4-filetypes | |||||
#1 | 7918 | Sven Erik Knop | Added Mercurial Exporter to Perforce Mk 1. | 14 years ago |