##// END OF EJS Templates
patch: support diff data loss detection and upgrade...
patch: support diff data loss detection and upgrade In worst case, generating diff in upgrade mode can be two times more expensive than generating it in git mode directly: we may have to regenerate the whole diff again whenever a git feature is detected. Also, the first diff attempt is completely buffered instead of being streamed. That said, even without having profiled it yet, I am convinced we can fast-path the upgrade mode if necessary were it to be used in regular diff commands, and not only in mq where avoiding data loss is worth the price.

File last commit:

r9044:d4d4da54 default
r10189:e451e599 default
Show More
test-convert-p4
75 lines | 1.7 KiB | text/plain | TextLexer
Frank Kingswood
convert: Perforce source for conversion to Mercurial
r7823 #!/bin/sh
"$TESTDIR/hghave" p4 || exit 80
echo "[extensions]" >> $HGRCPATH
echo "convert = " >> $HGRCPATH
echo % create p4 depot
David Champion
Bourne shells do not maintain $PWD; update tests accordingly
r9044 P4ROOT=`pwd`/depot; export P4ROOT
Brodie Rao
tests: remove more instances of export FOO=bar bashism
r9043 P4AUDIT=$P4ROOT/audit; export P4AUDIT
P4JOURNAL=$P4ROOT/journal; export P4JOURNAL
P4LOG=$P4ROOT/log; export P4LOG
P4PORT=localhost:16661; export P4PORT
P4DEBUG=1; export P4DEBUG
Frank Kingswood
convert: Perforce source for conversion to Mercurial
r7823
echo % start the p4 server
[ ! -d $P4ROOT ] && mkdir $P4ROOT
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
Brodie Rao
tests: remove more instances of export FOO=bar bashism
r9043 P4CLIENT=hg-p4-import; export P4CLIENT
Frank Kingswood
convert: Perforce source for conversion to Mercurial
r7823 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
echo a > a
mkdir b
echo c > b/c
p4 add a b/c
p4 submit -d initial
echo % change some files
p4 edit a
echo aa >> a
p4 submit -d "change a"
p4 edit b/c
echo cc >> b/c
p4 submit -d "change b/c"
echo % convert
hg convert -s p4 $DEPOTPATH dst
Martin Geisler
tests: replace #...# syntax with {...}
r8523 hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
Frank Kingswood
convert: Perforce source for conversion to Mercurial
r7823
echo % change some files
p4 edit a b/c
echo aaa >> a
echo ccc >> b/c
p4 submit -d "change a b/c"
echo % convert again
hg convert -s p4 $DEPOTPATH dst
Martin Geisler
tests: replace #...# syntax with {...}
r8523 hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
Frank Kingswood
convert: Perforce source for conversion to Mercurial
r7823
echo % interesting names
echo dddd > "d d"
Patrick Mezard
convert/p4: win32 fixes...
r8063 mkdir " e"
echo fff >" e/ f"
p4 add "d d" " e/ f"
Frank Kingswood
convert: Perforce source for conversion to Mercurial
r7823 p4 submit -d "add d e f"
echo % convert again
hg convert -s p4 $DEPOTPATH dst
Martin Geisler
tests: replace #...# syntax with {...}
r8523 hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
Frank Kingswood
convert: Perforce source for conversion to Mercurial
r7823