mercurial/hg.py
changeset 203 0b486b5e0796
parent 200 8450c18f2a45
child 207 ec327cf0d3a9
equal deleted inserted replaced
202:e875a0cf7f3a 203:0b486b5e0796
   135         return (manifest, user, date, files, desc)
   135         return (manifest, user, date, files, desc)
   136 
   136 
   137     def read(self, node):
   137     def read(self, node):
   138         return self.extract(self.revision(node))
   138         return self.extract(self.revision(node))
   139 
   139 
   140     def add(self, manifest, list, desc, transaction, p1=None, p2=None):
   140     def add(self, manifest, list, desc, transaction, p1=None, p2=None,
   141         user = (os.environ.get("HGUSER") or
   141                   user=None, date=None):
       
   142         user = (user or
       
   143                 os.environ.get("HGUSER") or
   142                 os.environ.get("EMAIL") or
   144                 os.environ.get("EMAIL") or
   143                 os.environ.get("LOGNAME", "unknown") + '@' + socket.getfqdn())
   145                 os.environ.get("LOGNAME", "unknown") + '@' + socket.getfqdn())
   144         date = "%d %d" % (time.time(), time.timezone)
   146         date = date or "%d %d" % (time.time(), time.timezone)
   145         list.sort()
   147         list.sort()
   146         l = [hex(manifest), user, date] + list + ["", desc]
   148         l = [hex(manifest), user, date] + list + ["", desc]
   147         text = "\n".join(l)
   149         text = "\n".join(l)
   148         return self.addrevision(text, transaction, self.count(), p1, p2)
   150         return self.addrevision(text, transaction, self.count(), p1, p2)
   149 
   151 
   341         except lock.LockHeld, inst:
   343         except lock.LockHeld, inst:
   342             if wait:
   344             if wait:
   343                 self.ui.warn("waiting for lock held by %s\n" % inst.args[0])
   345                 self.ui.warn("waiting for lock held by %s\n" % inst.args[0])
   344                 return lock.lock(self.join("lock"), wait)
   346                 return lock.lock(self.join("lock"), wait)
   345             raise inst
   347             raise inst
       
   348 
       
   349     def rawcommit(self, files, text, user, date, p1=None, p2=None):
       
   350         p1 = p1 or self.current or nullid
       
   351         pchange = self.changelog.read(p1)
       
   352         pmmap = self.manifest.read(pchange[0])
       
   353         tr = self.transaction()
       
   354         mmap = {}
       
   355         linkrev = self.changelog.count()
       
   356         for f in files:
       
   357             try:
       
   358                 t = file(f).read()
       
   359             except IOError:
       
   360                 self.ui.warn("Read file %s error, skipped\n" % f)
       
   361                 continue
       
   362             r = self.file(f)
       
   363             prev = pmmap.get(f, nullid)
       
   364             mmap[f] = r.add(t, tr, linkrev, prev)
       
   365 
       
   366         mnode = self.manifest.add(mmap, tr, linkrev, pchange[0])
       
   367         n = self.changelog.add(mnode, files, text, tr, p1, p2, user ,date, )
       
   368         tr.close()
       
   369         self.setcurrent(n)
       
   370         self.dircache.clear()
       
   371         self.dircache.update(mmap)
   346 
   372 
   347     def commit(self, parent, update = None, text = ""):
   373     def commit(self, parent, update = None, text = ""):
   348         self.lock()
   374         self.lock()
   349         try:
   375         try:
   350             remove = [ l[:-1] for l in self.opener("to-remove") ]
   376             remove = [ l[:-1] for l in self.opener("to-remove") ]