Mercurial > public > mercurial-scm > hg
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""" |