comparison hgext/convert/hg.py @ 5280:11e1e574da02

convert: mercurial_source: also search for copies in modified files There are some corner cases where we may have a copy in a file that isn't in the added list: - the result of a hg copy --after --force - after a merge across a (local) rename
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Sat, 01 Sep 2007 02:49:18 -0300
parents 2dbd750b3ddd
children cc34be74eeec
comparison
equal deleted inserted replaced
5279:2dbd750b3ddd 5280:11e1e574da02
185 def getchanges(self, rev): 185 def getchanges(self, rev):
186 ctx = self.changectx(rev) 186 ctx = self.changectx(rev)
187 m, a, r = self.repo.status(ctx.parents()[0].node(), ctx.node())[:3] 187 m, a, r = self.repo.status(ctx.parents()[0].node(), ctx.node())[:3]
188 changes = [(name, rev) for name in m + a + r] 188 changes = [(name, rev) for name in m + a + r]
189 changes.sort() 189 changes.sort()
190 return (changes, self.getcopies(ctx)) 190 return (changes, self.getcopies(ctx, m + a))
191 191
192 def getcopies(self, ctx): 192 def getcopies(self, ctx, files):
193 added = self.repo.status(ctx.parents()[0].node(), ctx.node())[1]
194 copies = {} 193 copies = {}
195 for name in added: 194 for name in files:
196 try: 195 try:
197 copies[name] = ctx.filectx(name).renamed()[0] 196 copies[name] = ctx.filectx(name).renamed()[0]
198 except TypeError: 197 except TypeError:
199 pass 198 pass
200 return copies 199 return copies