On Jan 18, 2009, at 7:15 PM, Craig A. Berry wrote:

On Jan 18, 2009, at 6:13 PM, TK Soh wrote:

On Sun, Jan 18, 2009 at 3:23 PM, Craig Berry <[email protected]>
wrote:
After installing TortoiseHg awhile back, I noticed that attempting
to open certain network folders resulted in a hang in explorer and
I would have to kill it with Task Manager.

Thanks for looking into this.

Thanks for the reply.

 The hang can be further narrowed to the call to os.path.isdir
with the following test program:

---- begin check_isdir.py -----
import os.path
import sys

hgpath = os.path.join(sys.argv[1], ".hg")
print "Checking whether '" + hgpath + "' is a directory."
if os.path.isdir(hgpath):
 print "Yes, it is"
----- end check_isdir.py -----


C:\work>python check_isdir.py \\mynode
Checking whether '\\mynode\.hg' is a directory.

Does  '\\mynode\.hg' exist?

No, not as far as I know, but of course part of the point is that I
don't have read access there to see.  Changing the filename from .hg
to any arbitrary string makes no difference.

Also, does it hang if you call
os.path.isdir("\\mynode")?

os.path.isdir("\\mynode") returns false immediately regardless of
whether it's a node where I have permissions to see what shares are
available.

and here we hang again.  So, to summarize, calling os.path.isdir("\
\mynode\.hg") when I do not have read access to the root of \
\mynode causes a hang.  This may well be a Python bug as it's
actually getting hung in os.stat, which is called by os.path.isdir.


Hopefully not, else it will be hard to fix.


Finally got back to this and put together a little patch, attached below. It just adds two lines to find_root that check for the readability of path p before checking os.path.isdir(os.path.join(p, ".hg")), and bails out if there is no access. It doesn't seem like this should be necessary if os.path.isdir were behaving, but it's pretty non-intrusive and does solve the problem.
________________________________________
Craig A. Berry
mailto:[email protected]

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Attachment: tortoisehg_rev1317.patch
Description: Binary data

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Tortoisehg-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to