Show More
@@ -362,8 +362,6 b' def cat(ui, repo, file, rev = [], **opts' | |||||
362 |
|
362 | |||
363 | def clone(ui, source, dest = None, **opts): |
|
363 | def clone(ui, source, dest = None, **opts): | |
364 | """make a copy of an existing repository""" |
|
364 | """make a copy of an existing repository""" | |
365 | source = ui.expandpath(source) |
|
|||
366 |
|
||||
367 | if dest is None: |
|
365 | if dest is None: | |
368 | dest = os.path.basename(os.path.normpath(source)) |
|
366 | dest = os.path.basename(os.path.normpath(source)) | |
369 |
|
367 | |||
@@ -384,20 +382,13 b' def clone(ui, source, dest = None, **opt' | |||||
384 | self.rmtree(self.dir, True) |
|
382 | self.rmtree(self.dir, True) | |
385 |
|
383 | |||
386 | d = dircleanup(dest) |
|
384 | d = dircleanup(dest) | |
387 |
|
||||
388 | link = 0 |
|
385 | link = 0 | |
389 | abspath = source |
|
386 | abspath = source | |
390 | if not (source.startswith("http://") or |
|
387 | source = ui.expandpath(source) | |
391 | source.startswith("hg://") or |
|
388 | other = hg.repository(ui, source) | |
392 | source.startswith("ssh://") or |
|
|||
393 | source.startswith("old-http://")): |
|
|||
394 | abspath = os.path.abspath(source) |
|
|||
395 | d1 = os.stat(dest).st_dev |
|
|||
396 | d2 = os.stat(source).st_dev |
|
|||
397 | if d1 == d2: link = 1 |
|
|||
398 |
|
389 | |||
399 | if link: |
|
390 | if other.dev() != -1 and os.stat(dest).st_dev == other.dev(): | |
400 |
ui. |
|
391 | ui.status("cloning by hardlink\n") | |
401 | util.system("cp -al '%s'/.hg '%s'/.hg" % (source, dest)) |
|
392 | util.system("cp -al '%s'/.hg '%s'/.hg" % (source, dest)) | |
402 | try: |
|
393 | try: | |
403 | os.remove(os.path.join(dest, ".hg", "dirstate")) |
|
394 | os.remove(os.path.join(dest, ".hg", "dirstate")) | |
@@ -407,7 +398,6 b' def clone(ui, source, dest = None, **opt' | |||||
407 |
|
398 | |||
408 | else: |
|
399 | else: | |
409 | repo = hg.repository(ui, dest, create=1) |
|
400 | repo = hg.repository(ui, dest, create=1) | |
410 | other = hg.repository(ui, source) |
|
|||
411 | repo.pull(other) |
|
401 | repo.pull(other) | |
412 |
|
402 | |||
413 | f = repo.opener("hgrc", "w") |
|
403 | f = repo.opener("hgrc", "w") |
@@ -498,6 +498,10 b' class localrepository:' | |||||
498 | except KeyError: |
|
498 | except KeyError: | |
499 | return self.changelog.lookup(key) |
|
499 | return self.changelog.lookup(key) | |
500 |
|
500 | |||
|
501 | def dev(self): | |||
|
502 | if self.remote: return -1 | |||
|
503 | return os.stat(self.path).st_dev | |||
|
504 | ||||
501 | def join(self, f): |
|
505 | def join(self, f): | |
502 | return os.path.join(self.path, f) |
|
506 | return os.path.join(self.path, f) | |
503 |
|
507 | |||
@@ -1547,6 +1551,9 b' class httprepository:' | |||||
1547 | opener = urllib2.build_opener(proxy_handler, authinfo) |
|
1551 | opener = urllib2.build_opener(proxy_handler, authinfo) | |
1548 | urllib2.install_opener(opener) |
|
1552 | urllib2.install_opener(opener) | |
1549 |
|
1553 | |||
|
1554 | def dev(self): | |||
|
1555 | return -1 | |||
|
1556 | ||||
1550 | def do_cmd(self, cmd, **args): |
|
1557 | def do_cmd(self, cmd, **args): | |
1551 | self.ui.debug("sending %s command\n" % cmd) |
|
1558 | self.ui.debug("sending %s command\n" % cmd) | |
1552 | q = {"cmd": cmd} |
|
1559 | q = {"cmd": cmd} | |
@@ -1624,6 +1631,9 b' class sshrepository:' | |||||
1624 | self.pipeo.close() |
|
1631 | self.pipeo.close() | |
1625 | self.pipei.close() |
|
1632 | self.pipei.close() | |
1626 |
|
1633 | |||
|
1634 | def dev(self): | |||
|
1635 | return -1 | |||
|
1636 | ||||
1627 | def do_cmd(self, cmd, **args): |
|
1637 | def do_cmd(self, cmd, **args): | |
1628 | self.ui.debug("sending %s command\n" % cmd) |
|
1638 | self.ui.debug("sending %s command\n" % cmd) | |
1629 | self.pipeo.write("%s\n" % cmd) |
|
1639 | self.pipeo.write("%s\n" % cmd) |
General Comments 0
You need to be logged in to leave comments.
Login now