diff options
author | Pete Wyckoff <pw@padd.com> | 2014-01-21 18:16:40 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-01-22 08:05:04 -0800 |
commit | 40f846c35c504a1c2303be5dcca6db069a17b856 (patch) | |
tree | 7aae4e9a4e0a3065d0de1254d946246edc3fa234 /diffcore-delta.c | |
parent | git p4 test: ensure p4 symlink parsing works (diff) | |
download | tgif-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