git-p4: Fix occasional truncation of symlink contents.
authorAlexandru Juncu <alexj@rosedu.org>
Thu, 8 Aug 2013 13:17:38 +0000 (16:17 +0300)
committerJunio C Hamano <gitster@pobox.com>
Mon, 12 Aug 2013 17:10:46 +0000 (10:10 -0700)
Symlink contents in p4 print sometimes have a trailing
new line character, but sometimes it doesn't. git-p4
should only remove the last character if that character
is '\n'.

Signed-off-by: Alex Juncu <ajuncu@ixiacom.com>
Signed-off-by: Alex Badea <abadea@ixiacom.com>
Acked-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-p4.py
index 31e71ff8b248339749bbcd045acdf602a1a21463..a53a6dc406c26daaf263944d38b53b27db271072 100755 (executable)
--- a/git-p4.py
+++ b/git-p4.py
@@ -2180,9 +2180,13 @@ def streamOneP4File(self, file, contents):
             git_mode = "100755"
         if type_base == "symlink":
             git_mode = "120000"
             git_mode = "100755"
         if type_base == "symlink":
             git_mode = "120000"
-            # p4 print on a symlink contains "target\n"; remove the newline
+            # p4 print on a symlink sometimes contains "target\n";
+            # if it does, remove the newline
             data = ''.join(contents)
             data = ''.join(contents)
-            contents = [data[:-1]]
+            if data[-1] == '\n':
+                contents = [data[:-1]]
+            else:
+                contents = [data]
 
         if type_base == "utf16":
             # p4 delivers different text in the python output to -G
 
         if type_base == "utf16":
             # p4 delivers different text in the python output to -G