Mercurial > hg-stable
changeset 11255:e4dbaa40096d stable
clone: save hardlink state of util.copyfiles()
When trying to do hardlink-cloning, the os_link() call of the
first file tried already fails on Windows, if the source is on a
UNC path.
This change avoids calling os_link() for the rest of files, leaving
us with a *single* failed os_link() call per clone operation, if the
source can't do hardlinks.
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Fri, 28 May 2010 17:28:34 +0200 |
parents | 640d419725d0 |
children | 94b7b3a1ae1b 24fe2629c6fd |
files | mercurial/hg.py |
diffstat | 1 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hg.py Fri May 28 17:28:34 2010 +0200 +++ b/mercurial/hg.py Fri May 28 17:28:34 2010 +0200 @@ -277,6 +277,7 @@ % dest) raise + hardlink = None for f in src_repo.store.copylist(): src = os.path.join(src_repo.sharedpath, f) dst = os.path.join(dest_path, f) @@ -287,7 +288,7 @@ if dst.endswith('data'): # lock to avoid premature writing to the target dest_lock = lock.lock(os.path.join(dstbase, "lock")) - util.copyfiles(src, dst) + hardlink = util.copyfiles(src, dst, hardlink) # we need to re-init the repo after manually copying the data # into it