equal
deleted
inserted
replaced
589 editor = getcommiteditor(**opts) |
589 editor = getcommiteditor(**opts) |
590 update = not opts.get('bypass') |
590 update = not opts.get('bypass') |
591 strip = opts["strip"] |
591 strip = opts["strip"] |
592 sim = float(opts.get('similarity') or 0) |
592 sim = float(opts.get('similarity') or 0) |
593 if not tmpname: |
593 if not tmpname: |
594 return (None, None) |
594 return (None, None, False) |
595 msg = _('applied to working directory') |
595 msg = _('applied to working directory') |
|
596 |
|
597 rejects = False |
596 |
598 |
597 try: |
599 try: |
598 cmdline_message = logmessage(ui, opts) |
600 cmdline_message = logmessage(ui, opts) |
599 if cmdline_message: |
601 if cmdline_message: |
600 # pickup the cmdline msg |
602 # pickup the cmdline msg |
637 repo.setparents(p1.node(), p2.node()) |
639 repo.setparents(p1.node(), p2.node()) |
638 |
640 |
639 if opts.get('exact') or opts.get('import_branch'): |
641 if opts.get('exact') or opts.get('import_branch'): |
640 repo.dirstate.setbranch(branch or 'default') |
642 repo.dirstate.setbranch(branch or 'default') |
641 |
643 |
|
644 partial = opts.get('partial', False) |
642 files = set() |
645 files = set() |
643 patch.patch(ui, repo, tmpname, strip=strip, files=files, |
646 try: |
644 eolmode=None, similarity=sim / 100.0) |
647 patch.patch(ui, repo, tmpname, strip=strip, files=files, |
|
648 eolmode=None, similarity=sim / 100.0) |
|
649 except patch.PatchError, e: |
|
650 if not partial: |
|
651 raise util.Abort(str(e)) |
|
652 if partial: |
|
653 rejects = True |
|
654 |
645 files = list(files) |
655 files = list(files) |
646 if opts.get('no_commit'): |
656 if opts.get('no_commit'): |
647 if message: |
657 if message: |
648 msgs.append(message) |
658 msgs.append(message) |
649 else: |
659 else: |
654 m = None |
664 m = None |
655 else: |
665 else: |
656 m = scmutil.matchfiles(repo, files or []) |
666 m = scmutil.matchfiles(repo, files or []) |
657 n = repo.commit(message, opts.get('user') or user, |
667 n = repo.commit(message, opts.get('user') or user, |
658 opts.get('date') or date, match=m, |
668 opts.get('date') or date, match=m, |
659 editor=editor) |
669 editor=editor, force=partial) |
660 else: |
670 else: |
661 if opts.get('exact') or opts.get('import_branch'): |
671 if opts.get('exact') or opts.get('import_branch'): |
662 branch = branch or 'default' |
672 branch = branch or 'default' |
663 else: |
673 else: |
664 branch = p1.branch() |
674 branch = p1.branch() |
682 if opts.get('exact') and hex(n) != nodeid: |
692 if opts.get('exact') and hex(n) != nodeid: |
683 raise util.Abort(_('patch is damaged or loses information')) |
693 raise util.Abort(_('patch is damaged or loses information')) |
684 if n: |
694 if n: |
685 # i18n: refers to a short changeset id |
695 # i18n: refers to a short changeset id |
686 msg = _('created %s') % short(n) |
696 msg = _('created %s') % short(n) |
687 return (msg, n) |
697 return (msg, n, rejects) |
688 finally: |
698 finally: |
689 os.unlink(tmpname) |
699 os.unlink(tmpname) |
690 |
700 |
691 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False, |
701 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False, |
692 opts=None): |
702 opts=None): |