<div dir="ltr">On Fri, Jun 13, 2014 at 2:55 AM, Ryan Gonzalez <span dir="ltr"><<a href="mailto:rymg19@gmail.com" target="_blank">rymg19@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">SHELLS ARE NOT CROSS-PLATFORM!!!! Seriously, there are going to be differences. If you really must:<div>

<br></div><div>escape = lambda s: s.replace('^', '^^') if <a href="http://os.name" target="_blank">os.name</a> == 'nt' else s</div>

<div></div></div></blockquote><div class="gmail_quote"><span class=""></span></div></div><br></div><div class="gmail_extra">It is not about generic shell problem, it is about specific behavior that on Windows Python already uses cmd.exe shell hardcoded in its sources. So for crossplatform behavior on Windows, it should escape symbols on command passed to cmd.exe that are special to this shell to avoid breaking Python scripts. What you propose is a bad workaround, because it assumes that all Python users who use subprocess to execute hg or git should possess apriori knowledge about default subprocess behaviour with default shell on Windows and implement workaround for that.</div>

-- <br><div class="gmail_extra">anatoly t.
</div></div>