644 if not lock: |
644 if not lock: |
645 lock = self.lock() |
645 lock = self.lock() |
646 tr = self.transaction() |
646 tr = self.transaction() |
647 |
647 |
648 # check in files |
648 # check in files |
649 new = [] |
649 new = {} |
650 linkrev = self.changelog.count() |
650 linkrev = self.changelog.count() |
651 commit.sort() |
651 commit.sort() |
652 for f in commit: |
652 for f in commit: |
653 self.ui.note(f + "\n") |
653 self.ui.note(f + "\n") |
654 try: |
654 try: |
655 m1[f] = self.filecommit(f, m1, m2, linkrev, tr, changed) |
655 new[f] = self.filecommit(f, m1, m2, linkrev, tr, changed) |
656 m1.set(f, util.is_exec(self.wjoin(f), m1.execf(f))) |
656 m1.set(f, util.is_exec(self.wjoin(f), m1.execf(f))) |
657 new.append(f) |
|
658 except IOError: |
657 except IOError: |
659 if use_dirstate: |
658 if use_dirstate: |
660 self.ui.warn(_("trouble committing %s!\n") % f) |
659 self.ui.warn(_("trouble committing %s!\n") % f) |
661 raise |
660 raise |
662 else: |
661 else: |
663 remove.append(f) |
662 remove.append(f) |
664 |
663 |
665 # update manifest |
664 # update manifest |
|
665 m1.update(new) |
666 remove.sort() |
666 remove.sort() |
667 |
667 |
668 for f in remove: |
668 for f in remove: |
669 if f in m1: |
669 if f in m1: |
670 del m1[f] |
670 del m1[f] |
671 mn = self.manifest.add(m1, tr, linkrev, c1[0], c2[0], (new, remove)) |
671 mn = self.manifest.add(m1, tr, linkrev, c1[0], c2[0], (new, remove)) |
672 |
672 |
673 # add changeset |
673 # add changeset |
|
674 new = new.keys() |
|
675 new.sort() |
|
676 |
674 user = user or self.ui.username() |
677 user = user or self.ui.username() |
675 if not text or force_editor: |
678 if not text or force_editor: |
676 edittext = [] |
679 edittext = [] |
677 if text: |
680 if text: |
678 edittext.append(text) |
681 edittext.append(text) |