mercurial/hg.py
changeset 686 d7d68d27ebe5
parent 681 32b6bbf1c37b
child 690 f762860f82c6
equal deleted inserted replaced
685:79fb7032739f 686:d7d68d27ebe5
    19                         os.path.join("data", path + ".i"),
    19                         os.path.join("data", path + ".i"),
    20                         os.path.join("data", path + ".d"))
    20                         os.path.join("data", path + ".d"))
    21 
    21 
    22     def read(self, node):
    22     def read(self, node):
    23         t = self.revision(node)
    23         t = self.revision(node)
    24         if t[:2] != '\1\n':
    24         if not t.startswith('\1\n'):
    25             return t
    25             return t
    26         s = t.find('\1\n', 2)
    26         s = t.find('\1\n', 2)
    27         return t[s+2:]
    27         return t[s+2:]
    28 
    28 
    29     def readmeta(self, node):
    29     def readmeta(self, node):
    30         t = self.revision(node)
    30         t = self.revision(node)
    31         if t[:2] != '\1\n':
    31         if not t.startswith('\1\n'):
    32             return t
    32             return t
    33         s = t.find('\1\n', 2)
    33         s = t.find('\1\n', 2)
    34         mt = t[2:s]
    34         mt = t[2:s]
    35         for l in mt.splitlines():
    35         for l in mt.splitlines():
    36             k, v = l.split(": ", 1)
    36             k, v = l.split(": ", 1)
    37             m[k] = v
    37             m[k] = v
    38         return m
    38         return m
    39 
    39 
    40     def add(self, text, meta, transaction, link, p1=None, p2=None):
    40     def add(self, text, meta, transaction, link, p1=None, p2=None):
    41         if meta or text[:2] == '\1\n':
    41         if meta or text.startswith('\1\n'):
    42             mt = ""
    42             mt = ""
    43             if meta:
    43             if meta:
    44                 mt = [ "%s: %s\n" % (k, v) for k,v in meta.items() ]
    44                 mt = [ "%s: %s\n" % (k, v) for k,v in meta.items() ]
    45             text = "\1\n" + "".join(mt) + "\1\n" + text
    45             text = "\1\n" + "".join(mt) + "\1\n" + text
    46         return self.addrevision(text, transaction, link, p1, p2)
    46         return self.addrevision(text, transaction, link, p1, p2)
   434 
   434 
   435 # used to avoid circular references so destructors work
   435 # used to avoid circular references so destructors work
   436 def opener(base):
   436 def opener(base):
   437     p = base
   437     p = base
   438     def o(path, mode="r"):
   438     def o(path, mode="r"):
   439         if p[:7] == "http://":
   439         if p.startswith("http://"):
   440             f = os.path.join(p, urllib.quote(path))
   440             f = os.path.join(p, urllib.quote(path))
   441             return httprangereader.httprangereader(f)
   441             return httprangereader.httprangereader(f)
   442 
   442 
   443         f = os.path.join(p, path)
   443         f = os.path.join(p, path)
   444 
   444 
   463 class RepoError(Exception): pass
   463 class RepoError(Exception): pass
   464 
   464 
   465 class localrepository:
   465 class localrepository:
   466     def __init__(self, ui, path=None, create=0):
   466     def __init__(self, ui, path=None, create=0):
   467         self.remote = 0
   467         self.remote = 0
   468         if path and path[:7] == "http://":
   468         if path and path.startswith("http://"):
   469             self.remote = 1
   469             self.remote = 1
   470             self.path = path
   470             self.path = path
   471         else:
   471         else:
   472             if not path:
   472             if not path:
   473                 p = os.getcwd()
   473                 p = os.getcwd()