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") ] |