summaryrefslogtreecommitdiff
path: root/diffcore-delta.c
diff options
context:
space:
mode:
authorLibravatar Pete Wyckoff <pw@padd.com>2014-01-21 18:16:40 -0500
committerLibravatar Junio C Hamano <gitster@pobox.com>2014-01-22 08:05:04 -0800
commit40f846c35c504a1c2303be5dcca6db069a17b856 (patch)
tree7aae4e9a4e0a3065d0de1254d946246edc3fa234 /diffcore-delta.c
parentgit p4 test: ensure p4 symlink parsing works (diff)
downloadtgif-40f846c35c504a1c2303be5dcca6db069a17b856.tar.xz
git p4: work around p4 bug that causes empty symlinks
Damien Gérard highlights an interesting problem. Some p4 repositories end up with symlinks that have an empty target. It is not possible to create this with current p4, but they do indeed exist. The effect in git p4 is that "p4 print" on the symlink returns an empty string, confusing the curret symlink-handling code. Such broken repositories cause problems in p4 as well, even with no git involved. In p4, syncing to a change that includes a bogus symlink causes errors: //depot/empty-symlink - updating /home/me/p4/empty-symlink rename: /home/me/p4/empty-symlink: No such file or directory and leaves no symlink. In git, replicate the p4 behavior by ignoring these bad symlinks. If, in a later p4 revision, the symlink happens to point to something non-null, the symlink will be replaced properly. Add a big test for all this too. This happens to be a regression introduced by 1292df1 (git-p4: Fix occasional truncation of symlink contents., 2013-08-08) and appeared first in 1.8.5. But it shows up only in p4 repositories of dubious character, so can wait for a proper release. Tested-by: Damien Gérard <damien@iwi.me> Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'diffcore-delta.c')
0 files changed, 0 insertions, 0 deletions