mercurial/hg.py
changeset 5233 aea35488ea66
parent 5232 d3874a286b51
parent 5225 76c4cadb49fc
child 5277 a32a8e50d233
--- a/mercurial/hg.py	Fri Aug 31 22:31:03 2007 +0200
+++ b/mercurial/hg.py	Fri Aug 31 22:31:43 2007 +0200
@@ -99,7 +99,7 @@
     """
 
     origsource = source
-    source, rev = cmdutil.parseurl(ui.expandpath(source), rev)
+    source, rev, checkout = cmdutil.parseurl(ui.expandpath(source), rev)
 
     if isinstance(source, str):
         src_repo = repository(ui, source)
@@ -141,7 +141,7 @@
     abspath = origsource
     copy = False
     if src_repo.local() and islocal(dest):
-        abspath = os.path.abspath(origsource)
+        abspath = os.path.abspath(util.drop_scheme('file', origsource))
         copy = not pull and not rev
 
     src_lock, dest_lock = None, None
@@ -229,10 +229,11 @@
             dest_lock.release()
 
         if update:
-            try:
-                checkout = dest_repo.lookup("default")
-            except:
-                checkout = dest_repo.changelog.tip()
+            if not checkout:
+                try:
+                    checkout = dest_repo.lookup("default")
+                except:
+                    checkout = dest_repo.changelog.tip()
             _update(dest_repo, checkout)
 
     return src_repo, dest_repo