575 def forget(self, ui, match, prefix): |
575 def forget(self, ui, match, prefix): |
576 return cmdutil.forget(ui, self._repo, match, |
576 return cmdutil.forget(ui, self._repo, match, |
577 os.path.join(prefix, self._path), True) |
577 os.path.join(prefix, self._path), True) |
578 |
578 |
579 def revert(self, ui, substate, *pats, **opts): |
579 def revert(self, ui, substate, *pats, **opts): |
580 # reverting a subrepo is done by updating it to the revision |
580 # reverting a subrepo is a 2 step process: |
581 # specified in the corresponding substate dictionary |
581 # 1. if the no_backup is not set, revert all modified |
|
582 # files inside the subrepo |
|
583 # 2. update the subrepo to the revision specified in |
|
584 # the corresponding substate dictionary |
582 ui.status(_('reverting subrepo %s\n') % substate[0]) |
585 ui.status(_('reverting subrepo %s\n') % substate[0]) |
|
586 if not opts.get('no_backup'): |
|
587 # Revert all files on the subrepo, creating backups |
|
588 # Note that this will not recursively revert subrepos |
|
589 # We could do it if there was a set:subrepos() predicate |
|
590 opts = opts.copy() |
|
591 opts['date'] = None |
|
592 opts['rev'] = substate[1] |
|
593 |
|
594 pats = [] |
|
595 if not opts['all']: |
|
596 pats = ['set:modified()'] |
|
597 self.filerevert(ui, *pats, **opts) |
583 |
598 |
584 # Update the repo to the revision specified in the given substate |
599 # Update the repo to the revision specified in the given substate |
585 self.get(substate, overwrite=True) |
600 self.get(substate, overwrite=True) |
|
601 |
|
602 def filerevert(self, ui, *pats, **opts): |
|
603 ctx = self._repo[opts['rev']] |
|
604 parents = self._repo.dirstate.parents() |
|
605 if opts['all']: |
|
606 pats = ['set:modified()'] |
|
607 else: |
|
608 pats = [] |
|
609 cmdutil.revert(ui, self._repo, ctx, parents, *pats, **opts) |
586 |
610 |
587 class svnsubrepo(abstractsubrepo): |
611 class svnsubrepo(abstractsubrepo): |
588 def __init__(self, ctx, path, state): |
612 def __init__(self, ctx, path, state): |
589 self._path = path |
613 self._path = path |
590 self._state = state |
614 self._state = state |