comparison mercurial/commit.py @ 45705:61454026fa04

commit: refactor salvage calculation to a different function Differential Revision: https://phab.mercurial-scm.org/D9191
author Pulkit Goyal <7895pulkit@gmail.com>
date Sat, 10 Oct 2020 12:53:35 +0530
parents 64a4b85c4a00
children b92887ce8db4
comparison
equal deleted inserted replaced
45704:5e72827dae1e 45705:61454026fa04
138 138
139 if writechangesetcopy: 139 if writechangesetcopy:
140 files.update_copies_from_p1(ctx.p1copies()) 140 files.update_copies_from_p1(ctx.p1copies())
141 files.update_copies_from_p2(ctx.p2copies()) 141 files.update_copies_from_p2(ctx.p2copies())
142 142
143 copy_sd = ctx.repo().filecopiesmode == b'changeset-sidedata' 143 ms = mergestate.mergestate.read(repo)
144 salvaged = _get_salvaged(ctx.repo(), ms, ctx)
145 for s in salvaged:
146 files.mark_salvaged(s)
147
148 return mn, files
149
150
151 def _get_salvaged(repo, ms, ctx):
152 """ returns a list of salvaged files
153
154 returns empty list if config option which process salvaged files are
155 not enabled """
156 salvaged = []
157 copy_sd = repo.filecopiesmode == b'changeset-sidedata'
144 if copy_sd and len(ctx.parents()) > 1: 158 if copy_sd and len(ctx.parents()) > 1:
145 # XXX this `mergestate.read` could be duplicated with a the merge state
146 # reading in _process_files So we could refactor further to reuse it in
147 # some cases.
148 ms = mergestate.mergestate.read(repo)
149 if ms.active(): 159 if ms.active():
150 for fname in sorted(ms._stateextras.keys()): 160 for fname in sorted(ms._stateextras.keys()):
151 might_removed = ms.extras(fname).get(b'merge-removal-candidate') 161 might_removed = ms.extras(fname).get(b'merge-removal-candidate')
152 if might_removed == b'yes': 162 if might_removed == b'yes':
153 if fname in ctx: 163 if fname in ctx:
154 files.mark_salvaged(fname) 164 salvaged.append(fname)
155 165 return salvaged
156 return mn, files
157 166
158 167
159 def _process_files(tr, ctx, error=False): 168 def _process_files(tr, ctx, error=False):
160 repo = ctx.repo() 169 repo = ctx.repo()
161 p1 = ctx.p1() 170 p1 = ctx.p1()