comparison mercurial/util.py @ 7767:b2410ed2cbe9

Use shutil.copystat in copyfile().
author Will Maier <willmaier@ml1.net>
date Mon, 09 Feb 2009 07:55:42 -0600
parents 3793802ea41b
children 9892c4d94fb7
comparison
equal deleted inserted replaced
7766:2b2548342265 7767:b2410ed2cbe9
758 os.removedirs(os.path.dirname(f)) 758 os.removedirs(os.path.dirname(f))
759 except OSError: 759 except OSError:
760 pass 760 pass
761 761
762 def copyfile(src, dest): 762 def copyfile(src, dest):
763 "copy a file, preserving mode" 763 "copy a file, preserving mode and atime/mtime"
764 if os.path.islink(src): 764 if os.path.islink(src):
765 try: 765 try:
766 os.unlink(dest) 766 os.unlink(dest)
767 except: 767 except:
768 pass 768 pass
769 os.symlink(os.readlink(src), dest) 769 os.symlink(os.readlink(src), dest)
770 else: 770 else:
771 try: 771 try:
772 shutil.copyfile(src, dest) 772 shutil.copyfile(src, dest)
773 shutil.copymode(src, dest) 773 shutil.copystat(src, dest)
774 except shutil.Error, inst: 774 except shutil.Error, inst:
775 raise Abort(str(inst)) 775 raise Abort(str(inst))
776 776
777 def copyfiles(src, dst, hardlink=None): 777 def copyfiles(src, dst, hardlink=None):
778 """Copy a directory tree using hardlinks if possible""" 778 """Copy a directory tree using hardlinks if possible"""