# [PATCH] git-p4: fix bug in symlink handling

3 messages from 2010-02-16 to 2010-02-20. Participants: Evan Powers, Pete Wyckoff, Junio C Hamano.
Thread: https://gitlist.dev/t/22673

## Evan Powers, 2010-02-16 08:44

Subject: [PATCH] git-p4: fix bug in symlink handling
Message-ID: <6682cfcf1002160044i7aacd1b0t7bb351380b1bd27c@mail.gmail.com>
URL: https://gitlist.dev/e/6682cfcf1002160044i7aacd1b0t7bb351380b1bd27c%40mail.gmail.com

```
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>
---
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

```

## Pete Wyckoff, 2010-02-20 14:05

Subject: Re: [PATCH] git-p4: fix bug in symlink handling
Message-ID: <20100220140500.GA23423@arf.padd.com>
URL: https://gitlist.dev/e/20100220140500.GA23423%40arf.padd.com
In-Reply-To: <6682cfcf1002160044i7aacd1b0t7bb351380b1bd27c@mail.gmail.com>

```
evan.powers@gmail.com wrote on Tue, 16 Feb 2010 00:44 -0800:
> 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

> ---
> 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
> 

```

## Junio C Hamano, 2010-02-20 19:22

Subject: Re: [PATCH] git-p4: fix bug in symlink handling
Message-ID: <7vsk8vk908.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vsk8vk908.fsf%40alter.siamese.dyndns.org
In-Reply-To: <20100220140500.GA23423@arf.padd.com>

```
Thanks; will apply to 'maint'.

```
