# HG changeset patch # User Patrick Mezard # Date 1178996969 -7200 # Node ID 439b1c35348a5dc95cfc44ed7f5d7aae543ebcf2 # Parent ba22e867cb23fb11f83c37705743e050afd66a6a Fix issue483 - mq does not work under windows with gnu-win32 patch. Add --binary option to patch command under win32. diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -296,6 +296,9 @@ def patch(patchname, ui, strip=1, cwd=No patcher = util.find_in_path('gpatch', os.environ.get('PATH', ''), 'patch') args = [] + if util.needbinarypatch(): + args.append('--binary') + if cwd: args.append('-d %s' % util.shellquote(cwd)) fp = os.popen('%s %s -p%d < %s' % (patcher, ' '.join(args), strip, diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -793,6 +793,10 @@ def linkfunc(path, fallback): _umask = os.umask(0) os.umask(_umask) +def needbinarypatch(): + """return True if patches should be applied in binary mode by default.""" + return os.name == 'nt' + # Platform specific variants if os.name == 'nt': import msvcrt