From: David Foster <davidfstr@gmail.com>
To: git@vger.kernel.org
Subject: Bug: git-p4: Sometimes p4 generates Windows-style output on OS X
Date: Mon, 06 May 2013 10:59:36 -0700 [thread overview]
Message-ID: <5187EF88.6040707@gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 878 bytes --]
I've observed that the p4 command that git-p4 delegates to occasionally
outputs Windows-style line endings even on the OS X platform. When this
happens, git-p4 gets very confused and crashes out.
I've attached a patch which seems to fix the issue in my case. Now this
patch is a pretty bad hack, and I don't recommend that it be accepted
as-is. It is just a starting point.
A real fix would determine in advance whether Perforce was going to emit
Windows-style output. Since I don't know the circumstances under which
this happens on non-Windows platforms, I can't provide a better patch.
Someone who has intimate knowledge of p4's operating modes would be best
to examine what's really going on with p4.
P.S. In case it matters, I am not subscribed to this mailing list, so
you will need to CC me for any replies to reach me.
---
David Foster
http://dafoster.net/
[-- Attachment #2: 0001-Compensate-for-Windows-style-output-from-the-p4-comm.patch --]
[-- Type: text/plain, Size: 1804 bytes --]
>From aef963f0c45dea81f3e6f30d3b4185a0983ca4de Mon Sep 17 00:00:00 2001
From: David Foster <davidfstr@gmail.com>
Date: Mon, 6 May 2013 10:50:01 -0700
Subject: [PATCH] Compensate for Windows-style output from the p4 command on
non-Windows systems.
---
git-p4.py | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/git-p4.py b/git-p4.py
index 647f110..949d66d 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1454,6 +1454,24 @@ class P4Submit(Command, P4UserMap):
tmpFile = open(fileName, "rb")
message = tmpFile.read()
tmpFile.close()
+
+ # HACK: If Perforce spontaneously generates Windows-style output,
+ # compensate by assuming the entire p4 command went into
+ # Windows mode.
+ if separatorLine not in message:
+ print "WARNING: Perforce has spontaneously decided to generate Windows-style output. Compensating."
+
+ # Assume that Perforce is now inexplicably operating in Windows mode
+ self.isWindows = True
+
+ # Retroactively rewrite expected output
+ submitTemplate = submitTemplate.replace("\n", "\r\n")
+ separatorLine = separatorLine.replace("\n", "\r\n")
+ newdiff = newdiff.replace("\n", "\r\n")
+
+ if separatorLine not in message:
+ raise ValueError('Confused. Thought Perforce went into Windows mode but apparently something else is wrong.')
+
submitTemplate = message[:message.index(separatorLine)]
if self.isWindows:
submitTemplate = submitTemplate.replace("\r\n", "\n")
--
1.7.7.5 (Apple Git-26)
next reply other threads:[~2013-05-06 17:59 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-06 17:59 David Foster [this message]
2013-05-12 12:59 ` Bug: git-p4: Sometimes p4 generates Windows-style output on OS X Pete Wyckoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5187EF88.6040707@gmail.com \
--to=davidfstr@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.