From: Daniel Harding Date: Sun, 30 Sep 2012 06:24:16 +0000 (+0100) Subject: Make hg-fast-export (actually) work on Windows X-Git-Tag: v160415~43^2 X-Git-Url: https://repo.or.cz/w/fast-export.git/commitdiff_plain/7eaba68bc2497cb5adbf3e8a01ad3f3ac657cf7b Make hg-fast-export (actually) work on Windows Because on Windows sys.stdout is initially in text mode, any LF characters written to it will be transformed to CRLF, which causes git to blow up. This change uses Windows platform-specific code to change sys.stdout to binary mode. --- diff --git a/hg-fast-export.py b/hg-fast-export.py index 0e0fa87..1fe2999 100755 --- a/hg-fast-export.py +++ b/hg-fast-export.py @@ -11,6 +11,14 @@ import re import sys import os +if sys.platform == "win32": + # On Windows, sys.stdout is initially opened in text mode, which means that + # when a LF (\n) character is written to sys.stdout, it will be converted + # into CRLF (\r\n). That makes git blow up, so use this platform-specific + # code to change the mode of sys.stdout to binary. + import msvcrt + msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) + # silly regex to catch Signed-off-by lines in log message sob_re=re.compile('^Signed-[Oo]ff-[Bb]y: (.+)$') # insert 'checkpoint' command after this many commits or none at all if 0