~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/status.py

  • Committer: Lukáš Lalinský
  • Date: 2008-08-28 13:41:15 UTC
  • mto: (3732.1.1 ianc-integration)
  • mto: This revision was merged to the branch mainline in revision 3733.
  • Revision ID: lalinsky@gmail.com-20080828134115-265uyumclq5qvetg
Fix `bzr st -rbranch:PATH_TO_BRANCH`

* Add RevisionSpec.as_tree which returns a tree representation of the revision specifier. This might return a remote revision tree.
* Make status use this new method and not require RevisionSpec.as_revision_id, which for RevisionSpec_branch fetches data to the local repository.
* Refactor common code for getting either a revision tree or a tree/branch's basis tree into a private function _get_revision_tree and make it use RevisionSpec.as_tree.

Show diffs side-by-side

added added

removed removed

Lines of Context:
87
87
            old = new.basis_tree()
88
88
        elif len(revision) > 0:
89
89
            try:
90
 
                rev_id = revision[0].as_revision_id(wt.branch)
91
 
                old = wt.branch.repository.revision_tree(rev_id)
 
90
                old = revision[0].as_tree(wt.branch)
92
91
            except errors.NoSuchRevision, e:
93
92
                raise errors.BzrCommandError(str(e))
94
93
            if (len(revision) > 1) and (revision[1].spec is not None):
95
94
                try:
96
 
                    rev_id = revision[1].as_revision_id(wt.branch)
97
 
                    new = wt.branch.repository.revision_tree(rev_id)
 
95
                    new = revision[1].as_tree(wt.branch)
98
96
                    new_is_working_tree = False
99
97
                except errors.NoSuchRevision, e:
100
98
                    raise errors.BzrCommandError(str(e))