# HG changeset patch # User Adrian Buehlmann # Date 1275060514 -7200 # Node ID 640d419725d057492a63f4e9d84d49ff5111607c # Parent 0bb67503ad4b05a91531e6e6a066e2b4682a9de6 util.copyfiles: don't try os_link() again if it failed before If the os_link() call on the first file in the directory fails [1], we switch mode to using shutil.copy() for all remaining files. [1] happens for example on Windows for every file when cloning from a UNC path without specifying --pull. diff -r 0bb67503ad4b -r 640d419725d0 mercurial/util.py --- a/mercurial/util.py Mon May 31 21:37:01 2010 +0200 +++ b/mercurial/util.py Fri May 28 17:28:34 2010 +0200 @@ -451,7 +451,7 @@ for name, kind in osutil.listdir(src): srcname = os.path.join(src, name) dstname = os.path.join(dst, name) - copyfiles(srcname, dstname, hardlink) + hardlink = copyfiles(srcname, dstname, hardlink) else: if hardlink: try: @@ -462,6 +462,8 @@ else: shutil.copy(src, dst) + return hardlink + class path_auditor(object): '''ensure that a filesystem path contains no banned components. the following properties of a path are checked: