comparison mercurial/hg.py @ 228:2502aa663484

teach rawcommit about dirstate.parents() -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 teach rawcommit about dirstate.parents() manifest hash: 776f28b896f8de8c39c9edb0956faca78c1a827a -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCoMN2ywK+sNU5EO8RAnJpAKCh5MVSMNlk1GRYPm7IOavhurYPLgCfYc9w k4bTiV62lgoyItdmkynS1Jg= =gVyk -----END PGP SIGNATURE-----
author mpm@selenic.com
date Fri, 03 Jun 2005 12:54:14 -0800
parents f57519cddd3d
children 1b11da6ee69e
comparison
equal deleted inserted replaced
227:f57519cddd3d 228:2502aa663484
386 self.ui.warn("waiting for lock held by %s\n" % inst.args[0]) 386 self.ui.warn("waiting for lock held by %s\n" % inst.args[0])
387 return lock.lock(self.join("lock"), wait) 387 return lock.lock(self.join("lock"), wait)
388 raise inst 388 raise inst
389 389
390 def rawcommit(self, files, text, user, date, p1=None, p2=None): 390 def rawcommit(self, files, text, user, date, p1=None, p2=None):
391 p1 = p1 or self.current or nullid 391 p1 = p1 or self.dirstate.parents()[0] or nullid
392 p2 = p2 or self.dirstate.parents()[1] or nullid
392 pchange = self.changelog.read(p1) 393 pchange = self.changelog.read(p1)
393 pmmap = self.manifest.read(pchange[0]) 394 pmmap = self.manifest.read(pchange[0])
394 tr = self.transaction() 395 tr = self.transaction()
395 mmap = {} 396 mmap = {}
396 linkrev = self.changelog.count() 397 linkrev = self.changelog.count()
399 t = file(f).read() 400 t = file(f).read()
400 except IOError: 401 except IOError:
401 self.ui.warn("Read file %s error, skipped\n" % f) 402 self.ui.warn("Read file %s error, skipped\n" % f)
402 continue 403 continue
403 r = self.file(f) 404 r = self.file(f)
405 # FIXME - need to find both parents properly
404 prev = pmmap.get(f, nullid) 406 prev = pmmap.get(f, nullid)
405 mmap[f] = r.add(t, tr, linkrev, prev) 407 mmap[f] = r.add(t, tr, linkrev, prev)
406 408
407 mnode = self.manifest.add(mmap, tr, linkrev, pchange[0]) 409 mnode = self.manifest.add(mmap, tr, linkrev, pchange[0])
408 n = self.changelog.add(mnode, files, text, tr, p1, p2, user ,date, ) 410 n = self.changelog.add(mnode, files, text, tr, p1, p2, user ,date, )
409 tr.close() 411 tr.close()
410 self.setcurrent(n) 412 self.dirstate.setparents(p1, p2)
411 self.dirstate.clear() 413 self.dirstate.clear()
412 self.dirstate.update(mmap.keys(), "n") 414 self.dirstate.update(mmap.keys(), "n")
413 415
414 def commit(self, parent, files = None, text = ""): 416 def commit(self, parent, files = None, text = ""):
415 self.lock() 417 self.lock()