Re: [PATCH] git-p4: fix bug in symlink handling
- From
- Pete Wyckoff <pw@padd.com>
- Date
- Feb 20, 2010, 14:05 UTC
- Message-ID
- <20100220140500.GA23423@arf.padd.com>
- In-Reply-To
- <6682cfcf1002160044i7aacd1b0t7bb351380b1bd27c@mail.gmail.com>
evan.powers@gmail.com wrote on Tue, 16 Feb 2010 00:44 -0800:
Show 5 quoted lines
> Fix inadvertent breakage from b932705 in the code that strips the > trailing '\n' from p4 print on a symlink. (In practice, contents is of > the form ['target\n', ''].) > > Signed-off-by: Evan Powers <evan.powers@gmail.com>
Acked-by: Pete Wyckoff <pw@padd.com>
This was indeed an inadvertent bug introduced by that commit. Old code just appended all the data sections so did not see the null. This fix works for me.
-- Pete
Show 31 quoted lines
> ---
> This patch Works For Me, but I didn't take the time to understand the
> entire code path so it might be equally valid to replace contents.pop()
> with contents.pop(0) and call it a day.
>
> contrib/fast-import/git-p4 | 5 ++---
> 1 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
> index e7c4814..cd96c6f 100755
> --- a/contrib/fast-import/git-p4
> +++ b/contrib/fast-import/git-p4
> @@ -967,9 +967,8 @@ class P4Sync(Command):
> elif file["type"] == "symlink":
> mode = "120000"
> # p4 print on a symlink contains "target\n", so strip it off
> - last = contents.pop()
> - last = last[:-1]
> - contents.append(last)
> + data = ''.join(contents)
> + contents = [data[:-1]]
>
> if self.isWindows and file["type"].endswith("text"):
> mangled = []
> --
> 1.6.6
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>