martinvonz created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches.
REVISION SUMMARY When premerge is enabled (as it is for non-binary inputs by default) and the markers are not kept, we currently still write it to the output context and then restore the previous content right after. With the refactoring in the previous patch, we can easily avoid that step and instead write the output in the opposite case (i.e. when it's successful or when the markers are supposed to be kept). REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D12149 AFFECTED FILES mercurial/filemerge.py CHANGE DETAILS diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py --- a/mercurial/filemerge.py +++ b/mercurial/filemerge.py @@ -439,16 +439,15 @@ merged_text, conflicts = simplemerge.simplemerge( ui, local, base, other, mode=mode ) - # fcd.flags() already has the merged flags (done in - # mergestate.resolve()) - if merged_text is not None: + if merged_text is not None and ( + not conflicts or premerge in validkeep + ): + # fcd.flags() already has the merged flags (done in + # mergestate.resolve()) local.fctx.write(merged_text, local.fctx.flags()) if not conflicts: ui.debug(b" premerge successful\n") return 0 - if premerge not in validkeep: - # restore from backup and try again - _restorebackup(local.fctx, backup) return 1 # continue merging @@ -875,12 +874,6 @@ } -def _restorebackup(fcd, backup): - # TODO: Add a workingfilectx.write(otherfilectx) path so we can use - # util.copy here instead. - fcd.write(backup.data(), fcd.flags()) - - def _makebackup(repo, ui, wctx, fcd): """Makes and returns a filectx-like object for ``fcd``'s backup file. To: martinvonz, #hg-reviewers Cc: mercurial-patches, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel