--- a/mercurial/hg.py Sun Jun 05 10:42:52 2005 -0800
+++ b/mercurial/hg.py Sun Jun 05 10:48:39 2005 -0800
@@ -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 @@
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 @@
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 @@
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 @@
# 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 @@
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 @@
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 @@
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)