damien@xxxxxx wrote on Thu, 16 Jan 2014 14:46 +0100: > > On 16 Jan 2014, at 14:08, Pete Wyckoff <pw@xxxxxxxx> wrote: > > > damien@xxxxxx 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 > > I’ve tried exactly your commands, and I’ve got an empty folder.. > > {14:38}~/p4/testmess ➭ p4 sync @59702 > //depot/openssl/0.9.8j/openssl/include/openssl/aes.h#2 - refreshing /home/dgerard/p4/testmess/aes.h > //depot/openssl/0.9.8j/openssl/include/openssl/asn1.h#2 - refreshing /home/dgerard/p4/testmess/asn1.h > //depot/openssl/0.9.8j/openssl/include/openssl/asn1_mac.h#2 - refreshing /home/dgerard/p4/testmess/asn1_mac.h > //depot/openssl/0.9.8j/openssl/include/openssl/asn1t.h#2 - refreshing /home/dgerard/p4/testmess/asn1t.h > //depot/openssl/0.9.8j/openssl/include/openssl/bio.h#2 - refreshing /home/dgerard/p4/testmess/bio.h > //depot/openssl/0.9.8j/openssl/include/openssl/blowfish.h#2 - refreshing /home/dgerard/p4/testmess/blowfish.h > //depot/openssl/0.9.8j/openssl/include/openssl/bn.h#2 - refreshing /home/dgerard/p4/testmess/bn.h > //depot/openssl/0.9.8j/openssl/include/openssl/buffer.h#2 - refreshing /home/dgerard/p4/testmess/buffer.h > […] > > > {14:39}~/p4/testmess ➭ ls -la > total 12 > drwxr-xr-x 2 dgerard dgerard 4096 janv. 16 14:37 . > drwxr-xr-x 4 dgerard dgerard 4096 janv. 16 14:34 .. > -rw-r--r-- 1 dgerard dgerard 93 janv. 16 14:37 .perforce > > > Then I tried to sync the previous changeset, which is ok : > > {14:44}~/p4/testmess ➭ p4 sync -f @59701 > //depot/openssl/0.9.8j/openssl/include/openssl/aes.h#1 - updating /home/dgerard/p4/testmess/aes.h > […] > > {14:44}~/p4/testmess ➭ l > total 0 > -r--r--r-- 1 dgerard dgerard 0 janv. 16 14:44 aes.h > -r--r--r-- 1 dgerard dgerard 0 janv. 16 14:44 asn1.h > -r--r--r-- 1 dgerard dgerard 0 janv. 16 14:44 asn1_mac.h > -r--r--r-- 1 dgerard dgerard 0 janv. 16 14:44 asn1t.h > -r--r--r-- 1 dgerard dgerard 0 janv. 16 14:44 bio.h > -r--r--r-- 1 dgerard dgerard 0 janv. 16 14:44 blowfish.h > -r--r--r-- 1 dgerard dgerard 0 janv. 16 14:44 bn.h > -r--r--r-- 1 dgerard dgerard 0 janv. 16 14:44 buffer.h > […] > > > > However, when trying to sync to the appropriate changeset : > > {14:44}~/p4/testmess ➭ p4 sync -f @59702 > //depot/openssl/0.9.8j/openssl/include/openssl/aes.h#2 - updating /home/dgerard/p4/testmess/aes.h > rename: /home/dgerard/p4/testmess/aes.h: No such file or directory > //depot/openssl/0.9.8j/openssl/include/openssl/asn1.h#2 - updating /home/dgerard/p4/testmess/asn1.h > rename: /home/dgerard/p4/testmess/asn1.h: No such file or directory > //depot/openssl/0.9.8j/openssl/include/openssl/asn1_mac.h#2 - updating /home/dgerard/p4/testmess/asn1_mac.h > rename: /home/dgerard/p4/testmess/asn1_mac.h: No such file or directory > //depot/openssl/0.9.8j/openssl/include/openssl/asn1t.h#2 - updating /home/dgerard/p4/testmess/asn1t.h > rename: /home/dgerard/p4/testmess/asn1t.h: No such file or directory > //depot/openssl/0.9.8j/openssl/include/openssl/bio.h#2 - updating /home/dgerard/p4/testmess/bio.h > rename: /home/dgerard/p4/testmess/bio.h: No such file or directory > //depot/openssl/0.9.8j/openssl/include/openssl/blowfish.h#2 - updating /home/dgerard/p4/testmess/blowfish.h > rename: /home/dgerard/p4/testmess/blowfish.h: No such file or directory > //depot/openssl/0.9.8j/openssl/include/openssl/bn.h#2 - updating /home/dgerard/p4/testmess/bn.h > rename: /home/dgerard/p4/testmess/bn.h: No such file or directory > > And the folder remains untouched. > Quite strange for me... Oh cool, that helps a lot. P4 is just broken here, so we can get away with being a bit sloppy in git. I'll try just pretending "empty symlinks" are not in the repo. Hopefully you'll have a future commit in your p4 repo that brings back bn.h properly. Still not sure about how I'll test this. Thanks, -- Pete -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html