mercurial/hg.py
changeset 249 619e775aa7f9
parent 247 863b508c5b36
child 251 3fd8fc14b12f
equal deleted inserted replaced
248:b7645b3c86ff 249:619e775aa7f9
     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)
   313 
   313 
   314         if not self.remote:
   314         if not self.remote:
   315             self.dirstate = dirstate(self.opener, ui, self.root)
   315             self.dirstate = dirstate(self.opener, ui, self.root)
   316 
   316 
   317     def ignore(self, f):
   317     def ignore(self, f):
       
   318         import re
   318         if self.ignorelist is None:
   319         if self.ignorelist is None:
   319             self.ignorelist = []
   320             self.ignorelist = []
   320             try:
   321             try:
   321                 l = open(os.path.join(self.root, ".hgignore"))
   322                 l = open(os.path.join(self.root, ".hgignore"))
   322                 for pat in l:
   323                 for pat in l:
   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: