Daniel Rall wrote:
> On Fri, 24 Feb 2006, blair@tigris.org wrote:
> ...
> 
>>--- trunk/contrib/client-side/svnmerge.py	(original)
>>+++ trunk/contrib/client-side/svnmerge.py	Fri Feb 24 17:49:01 2006
>>@@ -435,7 +435,13 @@
>> 
>> def is_wc(dir):
>>     """Check if a directory is a working copy."""
>>-    return os.path.isdir(dir) and os.path.isdir(os.path.join(dir, ".svn"))
>>+    if not os.path.isdir(dir):
>>+        return False
> 
> 
> Blair, this initial check is unecessary, and results in an extra stat
> when the parent directory is present:
> 
>   $ strace python -c 'import os; os.path.isdir("/etc") and os.path.isdir("/etc/hosts")' 2>&1 | grep etc | grep stat
>   stat64("/etc", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
>   stat64("/etc/hosts", {st_mode=S_IFREG|0644, st_size=191, ...}) = 0
>   $ strace python -c 'import os; os.path.isdir("/etc/hosts")' 2>&1 | grep etc | grep stat
>   stat64("/etc/hosts", {st_mode=S_IFREG|0644, st_size=191, ...}) = 0
> 
> 
>>+    if os.path.isdir(os.path.join(dir, ".svn")):
>>+        return True
>>+    if os.path.isdir(os.path.join(dir, "_svn")):
>>+        return True
>>+    return False
>> 
>> _cache_svninfo = {}
>> def get_svninfo(path):
> 
> 
> An os.path.join() call is generally cheaper than that initial stat.
> How about:
> 
> Index: svnmerge.py
> ===================================================================
> --- svnmerge.py	(revision 18629)
> +++ svnmerge.py	(working copy)
> @@ -435,13 +435,8 @@
>  
>  def is_wc(dir):
>      """Check if a directory is a working copy."""
> -    if not os.path.isdir(dir):
> -        return False
> -    if os.path.isdir(os.path.join(dir, ".svn")):
> -        return True
> -    if os.path.isdir(os.path.join(dir, "_svn")):
> -        return True
> -    return False
> +    return os.path.isdir(os.path.join(dir, ".svn")) or \
> +           os.path.isdir(os.path.join(dir, "_svn"))
Thanks.  Improved in 18634.
Regards,
Blair
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Feb 27 20:54:22 2006