mercurial/hg.py
changeset 724 1c0c413cccdd
parent 723 9e0f3ba4a9c2
child 725 c6b912f8b5b2
equal deleted inserted replaced
723:9e0f3ba4a9c2 724:1c0c413cccdd
    10 from revlog import *
    10 from revlog import *
    11 from demandload import *
    11 from demandload import *
    12 demandload(globals(), "re lock urllib urllib2 transaction time socket")
    12 demandload(globals(), "re lock urllib urllib2 transaction time socket")
    13 demandload(globals(), "tempfile httprangereader bdiff")
    13 demandload(globals(), "tempfile httprangereader bdiff")
    14 demandload(globals(), "bisect select")
    14 demandload(globals(), "bisect select")
    15 
       
    16 def always(fn):
       
    17     return True
       
    18 
    15 
    19 class filelog(revlog):
    16 class filelog(revlog):
    20     def __init__(self, opener, path):
    17     def __init__(self, opener, path):
    21         revlog.__init__(self, opener,
    18         revlog.__init__(self, opener,
    22                         os.path.join("data", path + ".i"),
    19                         os.path.join("data", path + ".i"),
   414                 f = f + "\0" + c
   411                 f = f + "\0" + c
   415             e = struct.pack(">cllll", e[0], e[1], e[2], e[3], len(f))
   412             e = struct.pack(">cllll", e[0], e[1], e[2], e[3], len(f))
   416             st.write(e + f)
   413             st.write(e + f)
   417         self.dirty = 0
   414         self.dirty = 0
   418 
   415 
   419     def walk(self, files = None, match = always):
   416     def walk(self, files = None, match = util.always):
   420         self.read()
   417         self.read()
   421         dc = self.map.copy()
   418         dc = self.map.copy()
   422         # walk all files by default
   419         # walk all files by default
   423         if not files: files = [self.root]
   420         if not files: files = [self.root]
   424         def traverse():
   421         def traverse():
   452             elif self.ignore(fn):
   449             elif self.ignore(fn):
   453                 continue
   450                 continue
   454             if match(fn):
   451             if match(fn):
   455                 yield fn
   452                 yield fn
   456 
   453 
   457     def changes(self, files = None, match = always):
   454     def changes(self, files = None, match = util.always):
   458         self.read()
   455         self.read()
   459         dc = self.map.copy()
   456         dc = self.map.copy()
   460         lookup, changed, added, unknown = [], [], [], []
   457         lookup, changed, added, unknown = [], [], [], []
   461 
   458 
   462         for fn in self.walk(files, match):
   459         for fn in self.walk(files, match):
   838         self.dirstate.forget(remove)
   835         self.dirstate.forget(remove)
   839 
   836 
   840         if not self.hook("commit", node=hex(n)):
   837         if not self.hook("commit", node=hex(n)):
   841             return 1
   838             return 1
   842 
   839 
   843     def walk(self, rev = None, files = [], match = always):
   840     def walk(self, node = None, files = [], match = util.always):
   844         if rev is None: fns = self.dirstate.walk(files, match)
   841         if node:
   845         else: fns = filter(match, self.manifest.read(rev))
   842             change = self.changelog.read(node)
       
   843             fns = filter(match, self.manifest.read(change[0]))
       
   844         else:
       
   845             fns = self.dirstate.walk(files, match)
   846         for fn in fns: yield fn
   846         for fn in fns: yield fn
   847 
   847 
   848     def changes(self, node1 = None, node2 = None, files = [], match = always):
   848     def changes(self, node1 = None, node2 = None, files = [],
       
   849                 match = util.always):
   849         mf2, u = None, []
   850         mf2, u = None, []
   850 
   851 
   851         def fcmp(fn, mf):
   852         def fcmp(fn, mf):
   852             t1 = self.wfile(fn).read()
   853             t1 = self.wfile(fn).read()
   853             t2 = self.file(fn).revision(mf[fn])
   854             t2 = self.file(fn).revision(mf[fn])
   920             p = self.wjoin(f)
   921             p = self.wjoin(f)
   921             if not os.path.exists(p):
   922             if not os.path.exists(p):
   922                 self.ui.warn("%s does not exist!\n" % f)
   923                 self.ui.warn("%s does not exist!\n" % f)
   923             elif not os.path.isfile(p):
   924             elif not os.path.isfile(p):
   924                 self.ui.warn("%s not added: mercurial only supports files currently\n" % f)
   925                 self.ui.warn("%s not added: mercurial only supports files currently\n" % f)
   925             elif self.dirstate.state(f) == 'n':
   926             elif self.dirstate.state(f) in 'an':
   926                 self.ui.warn("%s already tracked!\n" % f)
   927                 self.ui.warn("%s already tracked!\n" % f)
   927             else:
   928             else:
   928                 self.dirstate.update([f], "a")
   929                 self.dirstate.update([f], "a")
   929 
   930 
   930     def forget(self, list):
   931     def forget(self, list):