3 # Copyright 2005 Matt Mackall <mpm@selenic.com> |
3 # Copyright 2005 Matt Mackall <mpm@selenic.com> |
4 # |
4 # |
5 # This software may be used and distributed according to the terms |
5 # This software may be used and distributed according to the terms |
6 # of the GNU General Public License, incorporated herein by reference. |
6 # of the GNU General Public License, incorporated herein by reference. |
7 |
7 |
8 import sys, struct, sha, socket, os, time, re, urllib2, tempfile |
8 import sys, struct, os |
9 import urllib |
9 from mercurial import lock |
10 from mercurial import byterange, lock |
|
11 from mercurial.transaction import * |
10 from mercurial.transaction import * |
12 from mercurial.revlog import * |
11 from mercurial.revlog import * |
13 from difflib import SequenceMatcher |
12 from difflib import SequenceMatcher |
14 |
13 |
15 class filelog(revlog): |
14 class filelog(revlog): |
137 def read(self, node): |
136 def read(self, node): |
138 return self.extract(self.revision(node)) |
137 return self.extract(self.revision(node)) |
139 |
138 |
140 def add(self, manifest, list, desc, transaction, p1=None, p2=None, |
139 def add(self, manifest, list, desc, transaction, p1=None, p2=None, |
141 user=None, date=None): |
140 user=None, date=None): |
|
141 import socket, time |
142 user = (user or |
142 user = (user or |
143 os.environ.get("HGUSER") or |
143 os.environ.get("HGUSER") or |
144 os.environ.get("EMAIL") or |
144 os.environ.get("EMAIL") or |
145 os.environ.get("LOGNAME", "unknown") + '@' + socket.getfqdn()) |
145 os.environ.get("LOGNAME", "unknown") + '@' + socket.getfqdn()) |
146 date = date or "%d %d" % (time.time(), time.timezone) |
146 date = date or "%d %d" % (time.time(), time.timezone) |
964 #os.unlink(f) |
965 #os.unlink(f) |
965 self.dirstate.update(remove, 'r') |
966 self.dirstate.update(remove, 'r') |
966 |
967 |
967 def merge3(self, fn, my, other): |
968 def merge3(self, fn, my, other): |
968 """perform a 3-way merge in the working directory""" |
969 """perform a 3-way merge in the working directory""" |
|
970 |
|
971 import tempfile |
969 |
972 |
970 def temp(prefix, node): |
973 def temp(prefix, node): |
971 pre = "%s~%s." % (os.path.basename(fn), prefix) |
974 pre = "%s~%s." % (os.path.basename(fn), prefix) |
972 (fd, name) = tempfile.mkstemp("", pre) |
975 (fd, name) = tempfile.mkstemp("", pre) |
973 f = os.fdopen(fd, "w") |
976 f = os.fdopen(fd, "w") |
1175 yield zd.decompress(d) |
1178 yield zd.decompress(d) |
1176 self.ui.note("%d bytes of data transfered\n" % bytes) |
1179 self.ui.note("%d bytes of data transfered\n" % bytes) |
1177 |
1180 |
1178 def repository(ui, path=None, create=0): |
1181 def repository(ui, path=None, create=0): |
1179 if path and path[:7] == "http://": |
1182 if path and path[:7] == "http://": |
|
1183 import urllib, urllib2 |
1180 return remoterepository(ui, path) |
1184 return remoterepository(ui, path) |
1181 if path and path[:5] == "hg://": |
1185 if path and path[:5] == "hg://": |
|
1186 import urllib, urllib2 |
1182 return remoterepository(ui, path.replace("hg://", "http://")) |
1187 return remoterepository(ui, path.replace("hg://", "http://")) |
1183 if path and path[:11] == "old-http://": |
1188 if path and path[:11] == "old-http://": |
|
1189 import urllib, urllib2 |
|
1190 from mercurial import byterange |
1184 return localrepository(ui, path.replace("old-http://", "http://")) |
1191 return localrepository(ui, path.replace("old-http://", "http://")) |
1185 else: |
1192 else: |
1186 return localrepository(ui, path, create) |
1193 return localrepository(ui, path, create) |
1187 |
1194 |
1188 class httprangereader: |
1195 class httprangereader: |