##// END OF EJS Templates
resolve: keep wlock while resolving...
Mads Kiilerich <madski at unity3d.com> -
r21709:14560418 stable
parent child Browse files
Show More
@@ -4927,44 +4927,49 b' def resolve(ui, repo, *pats, **opts):'
4927 raise util.Abort(_('no files or directories specified; '
4927 raise util.Abort(_('no files or directories specified; '
4928 'use --all to remerge all files'))
4928 'use --all to remerge all files'))
4929
4929
4930 ms = mergemod.mergestate(repo)
4930 wlock = repo.wlock()
4931 m = scmutil.match(repo[None], pats, opts)
4931 try:
4932 ret = 0
4932 ms = mergemod.mergestate(repo)
4933
4933 m = scmutil.match(repo[None], pats, opts)
4934 for f in ms:
4934 ret = 0
4935 if m(f):
4935
4936 if show:
4936 for f in ms:
4937 if nostatus:
4937 if m(f):
4938 ui.write("%s\n" % f)
4938 if show:
4939 if nostatus:
4940 ui.write("%s\n" % f)
4941 else:
4942 ui.write("%s %s\n" % (ms[f].upper(), f),
4943 label='resolve.' +
4944 {'u': 'unresolved', 'r': 'resolved'}[ms[f]])
4945 elif mark:
4946 ms.mark(f, "r")
4947 elif unmark:
4948 ms.mark(f, "u")
4939 else:
4949 else:
4940 ui.write("%s %s\n" % (ms[f].upper(), f),
4950 wctx = repo[None]
4941 label='resolve.' +
4951
4942 {'u': 'unresolved', 'r': 'resolved'}[ms[f]])
4952 # backup pre-resolve (merge uses .orig for its own purposes)
4943 elif mark:
4953 a = repo.wjoin(f)
4944 ms.mark(f, "r")
4954 util.copyfile(a, a + ".resolve")
4945 elif unmark:
4955
4946 ms.mark(f, "u")
4956 try:
4947 else:
4957 # resolve file
4948 wctx = repo[None]
4958 ui.setconfig('ui', 'forcemerge', opts.get('tool', ''),
4949
4959 'resolve')
4950 # backup pre-resolve (merge uses .orig for its own purposes)
4960 if ms.resolve(f, wctx):
4951 a = repo.wjoin(f)
4961 ret = 1
4952 util.copyfile(a, a + ".resolve")
4962 finally:
4953
4963 ui.setconfig('ui', 'forcemerge', '', 'resolve')
4954 try:
4964 ms.commit()
4955 # resolve file
4965
4956 ui.setconfig('ui', 'forcemerge', opts.get('tool', ''),
4966 # replace filemerge's .orig file with our resolve file
4957 'resolve')
4967 util.rename(a + ".resolve", a + ".orig")
4958 if ms.resolve(f, wctx):
4968
4959 ret = 1
4969 ms.commit()
4960 finally:
4970 finally:
4961 ui.setconfig('ui', 'forcemerge', '', 'resolve')
4971 wlock.release()
4962 ms.commit()
4972
4963
4964 # replace filemerge's .orig file with our resolve file
4965 util.rename(a + ".resolve", a + ".orig")
4966
4967 ms.commit()
4968 return ret
4973 return ret
4969
4974
4970 @command('revert',
4975 @command('revert',
General Comments 0
You need to be logged in to leave comments. Login now