728 |
728 |
729 def commitfunc(ui, repo, message, match, opts): |
729 def commitfunc(ui, repo, message, match, opts): |
730 return repo.commit(message, opts.get('user'), opts.get('date'), match, |
730 return repo.commit(message, opts.get('user'), opts.get('date'), match, |
731 editor=e, extra=extra) |
731 editor=e, extra=extra) |
732 |
732 |
|
733 branch = repo[None].branch() |
|
734 bheads = repo.branchheads(branch) |
|
735 |
733 node = cmdutil.commit(ui, repo, commitfunc, pats, opts) |
736 node = cmdutil.commit(ui, repo, commitfunc, pats, opts) |
734 if not node: |
737 if not node: |
735 ui.status(_("nothing changed\n")) |
738 ui.status(_("nothing changed\n")) |
736 return |
739 return |
737 cl = repo.changelog |
740 |
738 rev = cl.rev(node) |
741 ctx = repo[node] |
739 parents = cl.parentrevs(rev) |
742 parents = ctx.parents() |
740 if rev - 1 in parents: |
743 |
741 # one of the parents was the old tip |
744 if bheads and [x for x in parents if x.node() not in bheads]: |
742 pass |
|
743 elif (parents == (nullrev, nullrev) or |
|
744 len(cl.heads(cl.node(parents[0]))) > 1 and |
|
745 (parents[1] == nullrev or len(cl.heads(cl.node(parents[1]))) > 1)): |
|
746 ui.status(_('created new head\n')) |
745 ui.status(_('created new head\n')) |
747 |
746 |
748 if not opts.get('close_branch'): |
747 if not opts.get('close_branch'): |
749 for r in parents: |
748 for r in parents: |
750 if repo[r].extra().get('close'): |
749 if r.extra().get('close'): |
751 ui.status(_('reopening closed branch head %d\n') % r) |
750 ui.status(_('reopening closed branch head %d\n') % r) |
752 |
751 |
753 if ui.debugflag: |
752 if ui.debugflag: |
754 ui.write(_('committed changeset %d:%s\n') % (rev, hex(node))) |
753 ui.write(_('committed changeset %d:%s\n') % (int(ctx), ctx.hex())) |
755 elif ui.verbose: |
754 elif ui.verbose: |
756 ui.write(_('committed changeset %d:%s\n') % (rev, short(node))) |
755 ui.write(_('committed changeset %d:%s\n') % (int(ctx), ctx)) |
757 |
756 |
758 def copy(ui, repo, *pats, **opts): |
757 def copy(ui, repo, *pats, **opts): |
759 """mark files as copied for the next commit |
758 """mark files as copied for the next commit |
760 |
759 |
761 Mark dest as having copies of source files. If dest is a |
760 Mark dest as having copies of source files. If dest is a |