# HG changeset patch # User Eric St-Jean # Date 1174533656 14400 # Node ID 1eaa8d90c6890f7556995be719803687cfb19429 # Parent 29eb88bd5c8d06e0b3d45dbcbb9e9fd6566ba671 fix util.copyfile to deal with symlinks diff -r 29eb88bd5c8d -r 1eaa8d90c689 mercurial/util.py --- a/mercurial/util.py Fri Mar 23 14:11:31 2007 -0700 +++ b/mercurial/util.py Wed Mar 21 23:20:56 2007 -0400 @@ -614,11 +614,18 @@ def copyfile(src, dest): "copy a file, preserving mode" - try: - shutil.copyfile(src, dest) - shutil.copymode(src, dest) - except shutil.Error, inst: - raise Abort(str(inst)) + if os.path.islink(src): + try: + os.unlink(dest) + except: + pass + os.symlink(os.readlink(src), dest) + else: + try: + shutil.copyfile(src, dest) + shutil.copymode(src, dest) + except shutil.Error, inst: + raise Abort(str(inst)) def copyfiles(src, dst, hardlink=None): """Copy a directory tree using hardlinks if possible"""