Re: git-p4: exception when cloning a perforce repository
From: Pete Wyckoff <hidden>
Date: 2016-06-15 22:59:40
damien@iwi.me wrote on Wed, 15 Jan 2014 09:56 +0100:
p4 fstat //depot/openssl/0.9.8j/openssl/include/openssl/bn.h@59702 ... depotFile //depot/openssl/0.9.8j/openssl/include/openssl/bn.h ... headAction edit ... headType symlink ... headTime 1237906419 ... headRev 2 ... headChange 59702 ... headModTime 1231329423 p4 print -q //depot/openssl/0.9.8j/openssl/include/openssl/bn.h#2 | od -c 0000000 p4 print //depot/openssl/0.9.8j/openssl/include/openssl/bn.h#1 //depot/openssl/0.9.8j/openssl/include/openssl/bn.h#1 - add change 59574 (text) p4 print //depot/openssl/0.9.8j/openssl/include/openssl/bn.h#2 //depot/openssl/0.9.8j/openssl/include/openssl/bn.h#2 - edit change 59702 (symlink)
That's interesting. When I do the equivalent "p4 print" commands it shows something like this. arf-git-test$ p4 fstat //depot/bn.h ... depotFile //depot/bn.h ... clientFile /dev/shm/trash directory.t9802-git-p4-filetype/cli/bn.h ... isMapped ... headAction edit ... headType symlink ... headTime 1389876870 ... headRev 2 ... headChange 8 ... headModTime 1389876870 ... haveRev 2 arf-git-test$ p4 print //depot/bn.h#1 //depot/bn.h#1 - add change 7 (text) file-text arf-git-test$ p4 print //depot/bn.h#2 //depot/bn.h#2 - edit change 8 (symlink) /elsewhere/bn.h I don't know how you manage to get a symlink with an empty destination like that. I'll work on a way to hack around this failure. In the mean time, if you're game, it might be fun to see what p4 does with such a repository. You could make a client for just that little subdir, check out at 59702 and see what is there: mkdir testmess cd testmess cat <<EOF | p4 client -i Client: testmess Description: testmess Root: $(pwd) View: //depot/openssl/0.9.8j/openssl/include/openssl/... //testmess/... EOF then take a look at how p4 represents the "empty" symlink in the filesystem: p4 sync @59702 ls -la bn.h -- Pete