Mercurial > hgsubversion
comparison hg_delta_editor.py @ 312:4dc197f533c1
hg_delta_editor: reformat huge comment, rename __determine_parent_branch()
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sun, 03 May 2009 21:42:41 -0500 |
parents | 153266401676 |
children | 942f198b8ff5 |
comparison
equal
deleted
inserted
replaced
311:b6a9cdee2f68 | 312:4dc197f533c1 |
---|---|
446 return 'trunk' | 446 return 'trunk' |
447 elif branch.startswith('../'): | 447 elif branch.startswith('../'): |
448 return branch[3:] | 448 return branch[3:] |
449 return 'branches/%s' % branch | 449 return 'branches/%s' % branch |
450 | 450 |
451 def __determine_parent_branch(self, p, src_path, src_rev, revnum): | 451 def _determine_parent_branch(self, p, src_path, src_rev, revnum): |
452 if src_path is not None: | 452 if src_path is not None: |
453 src_file, src_branch = self._path_and_branch_for_path(src_path) | 453 src_file, src_branch = self._path_and_branch_for_path(src_path) |
454 src_tag = self._is_path_tag(src_path) | 454 src_tag = self._is_path_tag(src_path) |
455 if src_tag != False: | 455 if src_tag != False: |
456 # also case 2 | 456 # also case 2 |
488 added_tags[t_name] = branch, src_rev | 488 added_tags[t_name] = branch, src_rev |
489 elif (paths[p].action == 'D' and p.endswith(t_name) | 489 elif (paths[p].action == 'D' and p.endswith(t_name) |
490 and t_name in self.tags): | 490 and t_name in self.tags): |
491 tags_to_delete.add(t_name) | 491 tags_to_delete.add(t_name) |
492 continue | 492 continue |
493 # At this point we know the path is not a tag. In that case, we only care if it | 493 # At this point we know the path is not a tag. In that |
494 # is the root of a new branch (in this function). This is determined by the | 494 # case, we only care if it is the root of a new branch (in |
495 # following checks: | 495 # this function). This is determined by the following |
496 # 1. Is the file located inside any currently known branch? | 496 # checks: |
497 # If yes, then we're done with it, this isn't interesting. | 497 # 1. Is the file located inside any currently known |
498 # 2. Does the file have copyfrom information that means it is a copy from the root | 498 # branch? If yes, then we're done with it, this isn't |
499 # of some other branch? | 499 # interesting. |
500 # If yes, then we're done: this is a new branch, and we record the copyfrom in | 500 # 2. Does the file have copyfrom information that means it |
501 # added_branches | 501 # is a copy from the root of some other branch? If |
502 # 3. Neither of the above. This could be a branch, but it might never work out for | 502 # yes, then we're done: this is a new branch, and we |
503 # us. It's only ever a branch (as far as we're concerned) if it gets committed | 503 # record the copyfrom in added_branches |
504 # to, which we have to detect at file-write time anyway. So we do nothing here. | 504 # 3. Neither of the above. This could be a branch, but it |
505 # 4. It's the root of an already-known branch, with an action of 'D'. We mark the | 505 # might never work out for us. It's only ever a branch |
506 # branch as deleted. | 506 # (as far as we're concerned) if it gets committed to, |
507 # 5. It's the parent directory of one or more already-known branches, so we mark them | 507 # which we have to detect at file-write time anyway. So |
508 # as deleted. | 508 # we do nothing here. |
509 # 6. It's a branch being replaced by another branch - the action will be 'R'. | 509 # 4. It's the root of an already-known branch, with an |
510 # action of 'D'. We mark the branch as deleted. | |
511 # 5. It's the parent directory of one or more | |
512 # already-known branches, so we mark them as deleted. | |
513 # 6. It's a branch being replaced by another branch - the | |
514 # action will be 'R'. | |
510 fi, br = self._path_and_branch_for_path(p) | 515 fi, br = self._path_and_branch_for_path(p) |
511 if fi is not None: | 516 if fi is not None: |
512 if fi == '': | 517 if fi == '': |
513 if paths[p].action == 'D': | 518 if paths[p].action == 'D': |
514 self.branches_to_delete.add(br) # case 4 | 519 self.branches_to_delete.add(br) # case 4 |
515 elif paths[p].action == 'R': | 520 elif paths[p].action == 'R': |
516 added_branches.update(self.__determine_parent_branch(p, paths[p].copyfrom_path, | 521 parent = self._determine_parent_branch( |
517 paths[p].copyfrom_rev, | 522 p, paths[p].copyfrom_path, paths[p].copyfrom_rev, |
518 revision.revnum)) | 523 revision.revnum) |
524 added_branches.update(parent) | |
519 continue # case 1 | 525 continue # case 1 |
520 if paths[p].action == 'D': | 526 if paths[p].action == 'D': |
521 # check for case 5 | |
522 for known in self.branches: | 527 for known in self.branches: |
523 if self._svnpath(known).startswith(p): | 528 if self._svnpath(known).startswith(p): |
524 self.branches_to_delete.add(known) # case 5 | 529 self.branches_to_delete.add(known) # case 5 |
525 added_branches.update(self.__determine_parent_branch(p, paths[p].copyfrom_path, | 530 parent = self._determine_parent_branch( |
526 paths[p].copyfrom_rev, revision.revnum)) | 531 p, paths[p].copyfrom_path, paths[p].copyfrom_rev, revision.revnum) |
532 added_branches.update(parent) | |
527 for t in tags_to_delete: | 533 for t in tags_to_delete: |
528 del self.tags[t] | 534 del self.tags[t] |
529 for br in self.branches_to_delete: | 535 for br in self.branches_to_delete: |
530 del self.branches[br] | 536 del self.branches[br] |
531 for t, info in added_tags.items(): | 537 for t, info in added_tags.items(): |