# HG changeset patch # User Patrick Mezard # Date 1200745167 -3600 # Node ID f1ac41359b365daad6fdf6ad8c395e4cd4636aef # Parent e181665c1c79186bda8184da9fc987abd211e642# Parent cacfeee38870ddb8611ea79e5fa1352d920c1a63 Merge with crew-stable diff -r e181665c1c79 -r f1ac41359b36 mercurial/util_win32.py --- a/mercurial/util_win32.py Sat Jan 19 03:06:01 2008 +0100 +++ b/mercurial/util_win32.py Sat Jan 19 13:19:27 2008 +0100 @@ -147,9 +147,18 @@ self.win_strerror) def os_link(src, dst): - # NB will only succeed on NTFS try: win32file.CreateHardLink(dst, src) + # CreateHardLink sometimes succeeds on mapped drives but + # following nlinks() returns 1. Check it now and bail out. + if nlinks(src) < 2: + try: + win32file.DeleteFile(dst) + except: + pass + # Fake hardlinking error + raise WinOSError((18, 'CreateHardLink', 'The system cannot ' + 'move the file to a different disk drive')) except pywintypes.error, details: raise WinOSError(details)