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.
This commit is contained in:
Adrian Buehlmann 2010-05-28 17:28:34 +02:00
parent a5e4e78e6f
commit 008aa04539

View File

@ -277,6 +277,7 @@ def clone(ui, source, dest=None, pull=False, rev=None, update=True,
% 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 @@ def clone(ui, source, dest=None, pull=False, rev=None, update=True,
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