test-convert-p4-filetypes
104 lines
| 2.6 KiB
| text/plain
|
TextLexer
/ tests / test-convert-p4-filetypes
|
r8829 | #!/bin/sh | ||
"$TESTDIR/hghave" p4 execbit symlink || exit 80 | ||||
echo "[extensions]" >> $HGRCPATH | ||||
echo "convert = " >> $HGRCPATH | ||||
echo % create p4 depot | ||||
export P4ROOT=$PWD/depot | ||||
export P4AUDIT=$P4ROOT/audit | ||||
export P4JOURNAL=$P4ROOT/journal | ||||
export P4LOG=$P4ROOT/log | ||||
export P4PORT=localhost:16661 | ||||
export P4DEBUG=1 | ||||
export P4CHARSET=utf8 | ||||
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 | ||||
export P4CLIENT=hg-p4-import | ||||
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 | ||||