git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 03/11] git p4: work around p4 bug that causes empty symlinks

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Jan 22, 2014, 01:26 UTC
Message-ID
<CAPig+cTbC9HN3REb0Lib7pzUvkLSG6te2ka4zUzcA5y5bcK_hg@mail.gmail.com>
In-Reply-To
<1390346208-9207-4-git-send-email-pw@padd.com>
On Tue, Jan 21, 2014 at 6:16 PM, Pete Wyckoff <pw@padd.com> wrote:
Show 26 quoted lines
> 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 only shows up only in p4
Redundant "only".
Show 5 quoted lines
> 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>
Previous: Pete WyckoffNext: Pete Wyckoff
Message 5 of 27 in “git p4 tests and a few bug fixes”
  1. 00/11 git p4 tests and a few bug fixesPete Wyckoff, Jan 21, 2014
  2. 01/11 git p4 test: wildcards are supportedPete Wyckoff, Jan 21, 2014
  3. 02/11 git p4 test: ensure p4 symlink parsing worksPete Wyckoff, Jan 21, 2014
  4. 03/11 git p4: work around p4 bug that causes empty symlinksPete Wyckoff, Jan 21, 2014
  5. Eric SunshineJan 22, 2014
  6. 04/11 git p4 test: explicitly check p4 wildcard deletePete Wyckoff, Jan 21, 2014
  7. 05/11 git p4 test: is_cli_file_writeable succeedsPete Wyckoff, Jan 21, 2014
  8. 06/11 git p4 test: run as user "author"Pete Wyckoff, Jan 21, 2014
  9. Eric SunshineJan 22, 2014
  10. 07/11 git p4 test: do not pollute /tmpPete Wyckoff, Jan 21, 2014
  11. 08/11 git p4: handle files with wildcards when doing RCS scrubbingPete Wyckoff, Jan 21, 2014
  12. 09/11 git p4: fix an error message when "p4 where" failsPete Wyckoff, Jan 21, 2014
  13. 10/11 git p4 test: examine behavior with locked (+l) filesPete Wyckoff, Jan 21, 2014
  14. 11/11 git p4 doc: use two-line style for options with multiple spellingsPete Wyckoff, Jan 21, 2014
  15. Junio C HamanoJan 22, 2014
  16. Pete WyckoffJan 22, 2014
  17. 01/11 git p4 test: wildcards are supportedPete Wyckoff, Jan 22, 2014
  18. 02/11 git p4 test: ensure p4 symlink parsing worksPete Wyckoff, Jan 22, 2014
  19. 03/11 git p4: work around p4 bug that causes empty symlinksPete Wyckoff, Jan 22, 2014
  20. 04/11 git p4 test: explicitly check p4 wildcard deletePete Wyckoff, Jan 22, 2014
  21. 05/11 git p4 test: is_cli_file_writeable succeedsPete Wyckoff, Jan 22, 2014
  22. 06/11 git p4 test: run as user "author"Pete Wyckoff, Jan 22, 2014
  23. 07/11 git p4 test: do not pollute /tmpPete Wyckoff, Jan 22, 2014
  24. 08/11 git p4: handle files with wildcards when doing RCS scrubbingPete Wyckoff, Jan 22, 2014
  25. 09/11 git p4: fix an error message when "p4 where" failsPete Wyckoff, Jan 22, 2014
  26. 10/11 git p4 test: examine behavior with locked (+l) filesPete Wyckoff, Jan 22, 2014
  27. 11/11 git p4 doc: use two-line style for options with multiple spellingsPete Wyckoff, Jan 22, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.