diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -6,10 +6,10 @@ # of the GNU General Public License, incorporated herein by reference. import sys, struct, os -from mercurial import lock -from mercurial.transaction import * -from mercurial.revlog import * -from difflib import SequenceMatcher +from revlog import * +from demandload import * +demandload(globals(), "re lock urllib urllib2 transaction time socket") +demandload(globals(), "tempfile byterange difflib") class filelog(revlog): def __init__(self, opener, path): @@ -32,7 +32,7 @@ class filelog(revlog): def pair(parent, child): new = [] - sm = SequenceMatcher(None, strip(parent), strip(child)) + sm = difflib.SequenceMatcher(None, strip(parent), strip(child)) for o, m, n, s, t in sm.get_opcodes(): if o == 'equal': new += parent[m:n] @@ -138,7 +138,6 @@ class changelog(revlog): def add(self, manifest, list, desc, transaction, p1=None, p2=None, user=None, date=None): - import socket, time user = (user or os.environ.get("HGUSER") or os.environ.get("EMAIL") or @@ -310,7 +309,6 @@ class localrepository: self.dirstate = dirstate(self.opener, ui, self.root) def ignore(self, f): - import re if self.ignorelist is None: self.ignorelist = [] try: @@ -358,14 +356,15 @@ class localrepository: # save dirstate for undo ds = self.opener("dirstate").read() self.opener("undo.dirstate", "w").write(ds) - return transaction(self.opener, self.join("journal"), - self.join("undo")) + + return transaction.transaction(self.opener, self.join("journal"), + self.join("undo")) def recover(self): lock = self.lock() if os.path.exists(self.join("recover")): self.ui.status("attempting to rollback interrupted transaction\n") - return rollback(self.opener, self.join("recover")) + return transaction.rollback(self.opener, self.join("recover")) else: self.ui.warn("no interrupted transaction available\n") @@ -373,7 +372,7 @@ class localrepository: lock = self.lock() if os.path.exists(self.join("undo")): self.ui.status("attempting to rollback last transaction\n") - rollback(self.opener, self.join("undo")) + transaction.rollback(self.opener, self.join("undo")) self.dirstate = None os.rename(self.join("undo.dirstate"), self.join("dirstate")) self.dirstate = dirstate(self.opener, self.ui, self.root) @@ -952,8 +951,6 @@ class localrepository: def merge3(self, fn, my, other): """perform a 3-way merge in the working directory""" - import tempfile - def temp(prefix, node): pre = "%s~%s." % (os.path.basename(fn), prefix) (fd, name) = tempfile.mkstemp("", pre) @@ -1164,14 +1161,10 @@ class remoterepository: def repository(ui, path=None, create=0): if path and path[:7] == "http://": - import urllib, urllib2 return remoterepository(ui, path) if path and path[:5] == "hg://": - import urllib, urllib2 return remoterepository(ui, path.replace("hg://", "http://")) if path and path[:11] == "old-http://": - import urllib, urllib2 - from mercurial import byterange return localrepository(ui, path.replace("old-http://", "http://")) else: return localrepository(ui, path, create)