Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 26959:ed5f20f9c22e stable
resolve: restore .orig only after merge is fully complete (issue4952)
Previously, we'd restore the .orig file after the premerge is complete but
before the merge was complete. This would lead to the .orig file potentially
containing merge conflict markers in it, as a leftover from the last merge
attempt.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Fri, 13 Nov 2015 15:56:02 -0800 |
parents | 39dbf495880b |
children | f4fec0940278 59d5f619e69e |
comparison
equal
deleted
inserted
replaced
26945:8a256cee72c8 | 26959:ed5f20f9c22e |
---|---|
5668 ret = 1 | 5668 ret = 1 |
5669 finally: | 5669 finally: |
5670 ui.setconfig('ui', 'forcemerge', '', 'resolve') | 5670 ui.setconfig('ui', 'forcemerge', '', 'resolve') |
5671 ms.commit() | 5671 ms.commit() |
5672 | 5672 |
5673 # replace filemerge's .orig file with our resolve file | 5673 # replace filemerge's .orig file with our resolve file, but only |
5674 # for files in tocomplete, ms.resolve will not overwrite | 5674 # for merges that are complete |
5675 # .orig -- only preresolve does | 5675 if complete: |
5676 util.rename(a + ".resolve", a + ".orig") | 5676 util.rename(a + ".resolve", a + ".orig") |
5677 | 5677 |
5678 for f in tocomplete: | 5678 for f in tocomplete: |
5679 try: | 5679 try: |
5680 # resolve file | 5680 # resolve file |
5681 ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), | 5681 ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), |
5684 if r: | 5684 if r: |
5685 ret = 1 | 5685 ret = 1 |
5686 finally: | 5686 finally: |
5687 ui.setconfig('ui', 'forcemerge', '', 'resolve') | 5687 ui.setconfig('ui', 'forcemerge', '', 'resolve') |
5688 ms.commit() | 5688 ms.commit() |
5689 | |
5690 # replace filemerge's .orig file with our resolve file | |
5691 a = repo.wjoin(f) | |
5692 util.rename(a + ".resolve", a + ".orig") | |
5689 | 5693 |
5690 ms.commit() | 5694 ms.commit() |
5691 | 5695 |
5692 if not didwork and pats: | 5696 if not didwork and pats: |
5693 ui.warn(_("arguments do not match paths that need resolving\n")) | 5697 ui.warn(_("arguments do not match paths that need resolving\n")) |