##// END OF EJS Templates
remove: rewrite to be ~400x faster, bit more friendly...
remove: rewrite to be ~400x faster, bit more friendly old remove code called localrepo.changes for each file. was very expensive: $ hg --time rm arch>/dev/null Time: real 1066.120 secs (user 1014.450+0.000 sys 18.090+0.000) new code, same files: $ hg --time rm arch>/dev/null Time: real 2.770 secs (user 2.190+0.000 sys 0.580+0.000) also mention "-f" if not removing files. also allow "-f" to forget added files. make test a bit better.

File last commit:

r1945:dec6d3c1 default
r2309:b2f37c70 default
Show More
hg.py
36 lines | 1.3 KiB | text/x-python | PythonLexer
# hg.py - repository classes for mercurial
#
# Copyright 2005 Matt Mackall <mpm@selenic.com>
#
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
from node import *
from repo import *
from demandload import *
demandload(globals(), "localrepo bundlerepo httprepo sshrepo statichttprepo")
def repository(ui, path=None, create=0):
if path:
if path.startswith("http://"):
return httprepo.httprepository(ui, path)
if path.startswith("https://"):
return httprepo.httpsrepository(ui, path)
if path.startswith("hg://"):
return httprepo.httprepository(
ui, path.replace("hg://", "http://"))
if path.startswith("old-http://"):
return statichttprepo.statichttprepository(
ui, path.replace("old-http://", "http://"))
if path.startswith("ssh://"):
return sshrepo.sshrepository(ui, path)
if path.startswith("bundle://"):
path = path[9:]
s = path.split("+", 1)
if len(s) == 1:
repopath, bundlename = "", s[0]
else:
repopath, bundlename = s
return bundlerepo.bundlerepository(ui, repopath, bundlename)
return localrepo.localrepository(ui, path, create)