Mercurial > hgsubversion
comparison hg_delta_editor.py @ 123:58de7aea8a77
Fix a bug in replay convert where replaced files that couldn't use replay
would sometimes end up having no content.
| author | Augie Fackler <durin42@gmail.com> |
|---|---|
| date | Wed, 03 Dec 2008 22:51:03 -0600 |
| parents | f508c1fa19a5 |
| children | 291925677a9f |
comparison
equal
deleted
inserted
replaced
| 122:04c92c2c4501 | 123:58de7aea8a77 |
|---|---|
| 186 if islink: | 186 if islink: |
| 187 data = 'link ' + data | 187 data = 'link ' + data |
| 188 self.current_files[path] = data | 188 self.current_files[path] = data |
| 189 self.current_files_exec[path] = isexec | 189 self.current_files_exec[path] = isexec |
| 190 self.current_files_symlink[path] = islink | 190 self.current_files_symlink[path] = islink |
| 191 if path in self.deleted_files: | |
| 192 del self.deleted_files[path] | |
| 191 | 193 |
| 192 def _normalize_path(self, path): | 194 def _normalize_path(self, path): |
| 193 '''Normalize a path to strip of leading slashes and our subdir if we | 195 '''Normalize a path to strip of leading slashes and our subdir if we |
| 194 have one. | 196 have one. |
| 195 ''' | 197 ''' |
| 505 """ | 507 """ |
| 506 if parentctx == childctx: | 508 if parentctx == childctx: |
| 507 return True | 509 return True |
| 508 if parentctx.rev() > childctx.rev(): | 510 if parentctx.rev() > childctx.rev(): |
| 509 parentctx, childctx = childctx, parentctx | 511 parentctx, childctx = childctx, parentctx |
| 510 | 512 |
| 511 def selfandancestors(selfctx): | 513 def selfandancestors(selfctx): |
| 512 yield selfctx | 514 yield selfctx |
| 513 for ctx in selfctx.ancestors(): | 515 for ctx in selfctx.ancestors(): |
| 514 yield ctx | 516 yield ctx |
| 515 | 517 |
| 516 files = dict.fromkeys(files) | 518 files = dict.fromkeys(files) |
| 517 for pctx in selfandancestors(childctx): | 519 for pctx in selfandancestors(childctx): |
| 518 if pctx.rev() <= parentctx.rev(): | 520 if pctx.rev() <= parentctx.rev(): |
| 519 return True | 521 return True |
| 520 for f in pctx.files(): | 522 for f in pctx.files(): |
| 521 if f in files: | 523 if f in files: |
| 522 return False | 524 return False |
| 523 # parentctx is not an ancestor of childctx, files are unrelated | 525 # parentctx is not an ancestor of childctx, files are unrelated |
| 524 return False | 526 return False |
| 525 | 527 |
