437 |
437 |
438 tr = self.transaction() |
438 tr = self.transaction() |
439 mm = m1.copy() |
439 mm = m1.copy() |
440 mfm = mf1.copy() |
440 mfm = mf1.copy() |
441 linkrev = self.changelog.count() |
441 linkrev = self.changelog.count() |
|
442 self.dirstate.setparents(p1, p2) |
442 for f in files: |
443 for f in files: |
443 try: |
444 try: |
444 t = self.wfile(f).read() |
445 t = self.wfile(f).read() |
445 tm = is_exec(self.wjoin(f)) |
446 tm = is_exec(self.wjoin(f)) |
446 r = self.file(f) |
447 r = self.file(f) |
447 mfm[f] = tm |
448 mfm[f] = tm |
448 mm[f] = r.add(t, tr, linkrev, |
449 mm[f] = r.add(t, tr, linkrev, |
449 m1.get(f, nullid), m2.get(f, nullid)) |
450 m1.get(f, nullid), m2.get(f, nullid)) |
|
451 self.dirstate.update([f], "n") |
450 except IOError: |
452 except IOError: |
451 del mm[f] |
453 try: |
452 del mfm[f] |
454 del mm[f] |
|
455 del mfm[f] |
|
456 self.dirstate.forget([f]) |
|
457 except: |
|
458 # deleted from p2? |
|
459 pass |
453 |
460 |
454 mnode = self.manifest.add(mm, mfm, tr, linkrev, c1[0], c2[0]) |
461 mnode = self.manifest.add(mm, mfm, tr, linkrev, c1[0], c2[0]) |
455 n = self.changelog.add(mnode, files, text, tr, p1, p2, user, date) |
462 n = self.changelog.add(mnode, files, text, tr, p1, p2, user, date) |
456 tr.close() |
463 tr.close() |
457 self.dirstate.setparents(p1, p2) |
|
458 self.dirstate.clear() |
|
459 self.dirstate.update(files, "n") |
|
460 |
464 |
461 def commit(self, files = None, text = ""): |
465 def commit(self, files = None, text = ""): |
462 commit = [] |
466 commit = [] |
463 remove = [] |
467 remove = [] |
464 if files: |
468 if files: |