Mercurial > public > mercurial-scm > hg
comparison mercurial/util.py @ 1207:a7b8812973d9
Rewrite copytree as copyfiles
This inverts the logic of copytree to allow copying single files at
the top level.
author | mpm@selenic.com |
---|---|
date | Wed, 07 Sep 2005 19:21:38 -0700 |
parents | 333de1d53846 |
children | 3b4f05ff3130 |
comparison
equal
deleted
inserted
replaced
1206:6512d352d6c1 | 1207:a7b8812973d9 |
---|---|
215 os.rename(src, dst) | 215 os.rename(src, dst) |
216 except: | 216 except: |
217 os.unlink(dst) | 217 os.unlink(dst) |
218 os.rename(src, dst) | 218 os.rename(src, dst) |
219 | 219 |
220 def copytree(src, dst, copyfile): | 220 def copyfiles(src, dst, copyfile): |
221 """Copy a directory tree, files are copied using 'copyfile'.""" | 221 """Copy a directory tree, files are copied using 'copyfile'.""" |
222 names = os.listdir(src) | 222 |
223 os.mkdir(dst) | 223 if os.path.isdir(src): |
224 | 224 os.mkdir(dst) |
225 for name in names: | 225 for name in os.listdir(src): |
226 srcname = os.path.join(src, name) | 226 srcname = os.path.join(src, name) |
227 dstname = os.path.join(dst, name) | 227 dstname = os.path.join(dst, name) |
228 if os.path.isdir(srcname): | 228 copyfiles(srcname, dstname, copyfile) |
229 copytree(srcname, dstname, copyfile) | 229 else: |
230 elif os.path.isfile(srcname): | 230 copyfile(src, dst) |
231 copyfile(srcname, dstname) | |
232 else: | |
233 pass | |
234 | 231 |
235 def opener(base): | 232 def opener(base): |
236 """ | 233 """ |
237 return a function that opens files relative to base | 234 return a function that opens files relative to base |
238 | 235 |