equal
deleted
inserted
replaced
167 break |
167 break |
168 except error.RepoLookupError: |
168 except error.RepoLookupError: |
169 continue |
169 continue |
170 _update(r, uprev) |
170 _update(r, uprev) |
171 |
171 |
172 def clone(ui, source, dest=None, pull=False, rev=None, update=True, |
172 def clone(ui, opts, source, dest=None, pull=False, rev=None, update=True, |
173 stream=False, branch=None): |
173 stream=False, branch=None): |
174 """Make a copy of an existing repository. |
174 """Make a copy of an existing repository. |
175 |
175 |
176 Create a copy of an existing repository in a new directory. The |
176 Create a copy of an existing repository in a new directory. The |
177 source and destination are URLs, as passed to the repository |
177 source and destination are URLs, as passed to the repository |
207 """ |
207 """ |
208 |
208 |
209 if isinstance(source, str): |
209 if isinstance(source, str): |
210 origsource = ui.expandpath(source) |
210 origsource = ui.expandpath(source) |
211 source, branch = parseurl(origsource, branch) |
211 source, branch = parseurl(origsource, branch) |
212 srcrepo = repository(ui, source) |
212 srcrepo = repository(remoteui(ui, opts), source) |
213 else: |
213 else: |
214 srcrepo = source |
214 srcrepo = source |
215 branch = (None, branch or []) |
215 branch = (None, branch or []) |
216 origsource = source = srcrepo.url() |
216 origsource = source = srcrepo.url() |
217 rev, checkout = addbranchrevs(srcrepo, srcrepo, branch, rev) |
217 rev, checkout = addbranchrevs(srcrepo, srcrepo, branch, rev) |
301 else: |
301 else: |
302 ui.debug("copied %d files\n" % num) |
302 ui.debug("copied %d files\n" % num) |
303 |
303 |
304 # we need to re-init the repo after manually copying the data |
304 # we need to re-init the repo after manually copying the data |
305 # into it |
305 # into it |
306 destrepo = repository(ui, dest) |
306 destrepo = repository(remoteui(ui, opts), dest) |
307 srcrepo.hook('outgoing', source='clone', |
307 srcrepo.hook('outgoing', source='clone', |
308 node=node.hex(node.nullid)) |
308 node=node.hex(node.nullid)) |
309 else: |
309 else: |
310 try: |
310 try: |
311 destrepo = repository(ui, dest, create=True) |
311 destrepo = repository(remoteui(ui, opts), dest, create=True) |
312 except OSError, inst: |
312 except OSError, inst: |
313 if inst.errno == errno.EEXIST: |
313 if inst.errno == errno.EEXIST: |
314 dircleanup.close() |
314 dircleanup.close() |
315 raise util.Abort(_("destination '%s' already exists") |
315 raise util.Abort(_("destination '%s' already exists") |
316 % dest) |
316 % dest) |