Mercurial > hg
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 |