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

[PATCHv2 09/21] git p4: remove unreachable windows \r\n conversion code

From
PWPete Wyckoff <pw@padd.com>
Date
Jan 27, 2013, 03:11 UTC
Message-ID
<1359256284-5660-10-git-send-email-pw@padd.com>
In-Reply-To
<1359256284-5660-1-git-send-email-pw@padd.com>

Replacing \r\n with \n on windows was added in c1f9197 (Replace \r\n with \n when importing from p4 on Windows, 2007-05-24), to work around an oddity with "p4 print" on windows. Text files are printed with "\r\r\n" endings, regardless of whether they were created on unix or windows, and regardless of the client LineEnd setting.

As of d2c6dd3 (use p4CmdList() to get file contents in Python dicts. This is more robust., 2007-05-23), git-p4 uses "p4 -G print", which generates files in a raw format. As the native line ending format if p4 is \n, there will be no \r\n in the raw text.

Actually, it is possible to generate a text file so that the p4 representation includes embedded \r\n, even though this is not normal on either windows or unix. In that case the code would have mistakenly stripped them out, but now they will be left intact.

More information on how p4 deals with line endings is here:
    http://kb.perforce.com/article/63
Signed-off-by: Pete Wyckoff <pw@padd.com>
---
 git-p4.py | 9 ---------
 1 file changed, 9 deletions(-)
diff --git a/git-p4.py b/git-p4.py
index cbf8525..445d704 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -2134,15 +2134,6 @@ class P4Sync(Command, P4UserMap):
             print "\nIgnoring apple filetype file %s" % file['depotFile']
             return
 
-        # Perhaps windows wants unicode, utf16 newlines translated too;
-        # but this is not doing it.
-        if self.isWindows and type_base == "text":
-            mangled = []
-            for data in contents:
-                data = data.replace("\r\n", "\n")
-                mangled.append(data)
-            contents = mangled
-
         # Note that we do not try to de-mangle keywords on utf16 files,
         # even though in theory somebody may want that.
         pattern = p4_keywords_regexp_for_type(type_base, type_mods)
-- 
1.8.1.1.460.g6fa8886
Previous: Pete WyckoffNext: Pete Wyckoff
Message 10 of 22 in “[PATCHv2 00/21] git p4: work on cygwin”
  1. Pete WyckoffJan 27, 2013
  2. 01/21 git p4: temp branch name should use / even on windowsPete Wyckoff, Jan 27, 2013
  3. 02/21 git p4: remove unused importsPete Wyckoff, Jan 27, 2013
  4. 03/21 git p4: generate better error message for bad depot pathPete Wyckoff, Jan 27, 2013
  5. 04/21 git p4 test: use client_view to build the initial clientPete Wyckoff, Jan 27, 2013
  6. 05/21 git p4 test: avoid loop in client_viewPete Wyckoff, Jan 27, 2013
  7. 06/21 git p4 test: use client_view in t9806Pete Wyckoff, Jan 27, 2013
  8. 07/21 git p4 test: start p4d inside its db dirPete Wyckoff, Jan 27, 2013
  9. 08/21 git p4 test: translate windows paths for cygwinPete Wyckoff, Jan 27, 2013
  10. 09/21 git p4: remove unreachable windows \r\n conversion codePete Wyckoff, Jan 27, 2013
  11. 10/21 git p4: scrub crlf for utf16 files on windowsPete Wyckoff, Jan 27, 2013
  12. 11/21 git p4 test: newline handlingPete Wyckoff, Jan 27, 2013
  13. 12/21 git p4 test: use LineEnd unix in windows tests tooPete Wyckoff, Jan 27, 2013
  14. 13/21 git p4 test: avoid wildcard * in windowsPete Wyckoff, Jan 27, 2013
  15. 14/21 git p4: cygwin p4 client does not mark read-onlyPete Wyckoff, Jan 27, 2013
  16. 15/21 git p4 test: use test_chmod for cygwinPete Wyckoff, Jan 27, 2013
  17. 16/21 git p4: disable read-only attribute before deletingPete Wyckoff, Jan 27, 2013
  18. 17/21 git p4: avoid shell when mapping usersPete Wyckoff, Jan 27, 2013
  19. 18/21 git p4: avoid shell when invoking git rev-listPete Wyckoff, Jan 27, 2013
  20. 19/21 git p4: avoid shell when invoking git config --get-allPete Wyckoff, Jan 27, 2013
  21. 20/21 git p4: avoid shell when calling git configPete Wyckoff, Jan 27, 2013
  22. 21/21 git p4: introduce gitConfigBoolPete Wyckoff, Jan 27, 2013

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.