Qct issue on Win32

Steve Borho steve at borho.org
Thu Apr 26 17:24:50 CDT 2007

On Thursday 26 April 2007 5:08:35 pm TK Soh wrote:
> I'm taking the discussion to a new thread, as the original thread is
> getting crowded with OT posts.
> On 4/26/07, Steve Borho <steve at borho.org> wrote:
> > On Thursday 26 April 2007 3:59:14 pm Andrei Vermel wrote:
> > > On my windows box
> > > subprocess.Popen('hg help', shell=True)
> > > successfully calls hg.bat, so that's a simple fix.
> >
> > That breaks down if you have filenames with spaces in it.  Qct
> > tries to use the non-shell based interface (passing in command line
> > arguments as a list []) in order to avoid all the shell escaping
> > hell that you normally have to jump through.
> >
> > I think your first suggestion for discarding matches that fail to
> > execute is probably the best one.   I would really like to know
> > what non-executable 'hg' file is causing Tk Soh so much trouble.  
> > Does Windows have the equivalent of a 'which' command?
> I am a little confused, do you mean subprocess.Popen() supports
> non-executable 'hg' file on Win32, but somehow it doesn't work on my
> system?

Andrei's point was that if you tell subprocess.Popen() to use a shell to 
execute the subprocess, it can execute "hg version" by locating hg.bat 
in your path.  But I don't want to make Popen() use a shell because it 
opens a whole other can of worms.

The problem you are having is that Qct is finding 'hg', the python file, 
in your current (hg-crew) directory and then trying to use that instead 
of your hg.bat.  The fix I checked in a few minutes ago will try to 
execute 'hg', realize it's not a valid executable, and then go on 
looking for hg.bat, hg.cmd, etc...  This should prevent fatal false 

I'll upload a new qct-1.0-rc1-win32.exe soon to the web-page.

Steve Borho (steve at borho.org)
Key fingerprint = 2D08 E7CF B624 624C DE1F  E2E4 B0C2 5292 F2C6 2C8C

More information about the Mercurial mailing list