mercurial/commands.py
changeset 1208 4644df4944ff
parent 1207 a7b8812973d9
child 1209 920682a532df
equal deleted inserted replaced
1207:a7b8812973d9 1208:4644df4944ff
   602         abspath = os.path.abspath(source)
   602         abspath = os.path.abspath(source)
   603         copyfile = (os.stat(dest).st_dev == other.dev()
   603         copyfile = (os.stat(dest).st_dev == other.dev()
   604                     and getattr(os, 'link', None) or shutil.copy2)
   604                     and getattr(os, 'link', None) or shutil.copy2)
   605         if copyfile is not shutil.copy2:
   605         if copyfile is not shutil.copy2:
   606             ui.note("cloning by hardlink\n")
   606             ui.note("cloning by hardlink\n")
       
   607 
   607         # we use a lock here because because we're not nicely ordered
   608         # we use a lock here because because we're not nicely ordered
   608         l = lock.lock(os.path.join(source, ".hg", "lock"))
   609         l = lock.lock(os.path.join(source, ".hg", "lock"))
   609 
   610 
   610         util.copyfiles(os.path.join(source, ".hg"), os.path.join(dest, ".hg"),
   611         os.mkdir(os.path.join(dest, ".hg"))
   611                       copyfile)
   612 
   612 
   613         files = "data 00manifest.d 00manifest.i 00changelog.d 00changelog.i"
   613         for fn in "dirstate", "lock", "hgrc", "localtags":
   614         for f in files.split():
   614             try:
   615             src = os.path.join(source, ".hg", f)
   615                 os.unlink(os.path.join(dest, ".hg", fn))
   616             dst = os.path.join(dest, ".hg", f)
   616             except OSError:
   617             util.copyfiles(src, dst, copyfile)
   617                 pass
       
   618 
   618 
   619         repo = hg.repository(ui, dest)
   619         repo = hg.repository(ui, dest)
   620 
   620 
   621     else:
   621     else:
   622         repo = hg.repository(ui, dest, create=1)
   622         repo = hg.repository(ui, dest, create=1)