~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/branch.py

  • Committer: Aaron Bentley
  • Date: 2005-10-17 20:17:55 UTC
  • mfrom: (1185.16.59)
  • mto: (1185.25.1)
  • mto: This revision was merged to the branch mainline in revision 1474.
  • Revision ID: abentley@panoramicfeedback.com-20051017201755-48ed4650792388ab
Merged latest from Martin

Show diffs side-by-side

added added

removed removed

Lines of Context:
65
65
    # XXX: leave this here for about one release, then remove it
66
66
    raise NotImplementedError('find_branch() is not supported anymore, '
67
67
                              'please use one of the new branch constructors')
68
 
def _relpath(base, path):
69
 
    """Return path relative to base, or raise exception.
70
 
 
71
 
    The path may be either an absolute path or a path relative to the
72
 
    current working directory.
73
 
 
74
 
    Lifted out of Branch.relpath for ease of testing.
75
 
 
76
 
    os.path.commonprefix (python2.4) has a bad bug that it works just
77
 
    on string prefixes, assuming that '/u' is a prefix of '/u2'.  This
78
 
    avoids that problem."""
79
 
    rp = os.path.abspath(path)
80
 
 
81
 
    s = []
82
 
    head = rp
83
 
    while len(head) >= len(base):
84
 
        if head == base:
85
 
            break
86
 
        head, tail = os.path.split(head)
87
 
        if tail:
88
 
            s.insert(0, tail)
89
 
    else:
90
 
        raise NotBranchError("path %r is not within branch %r" % (rp, base))
91
 
 
92
 
    return os.sep.join(s)
93
 
        
94
68
 
95
69
######################################################################
96
70
# branch objects
378
352
            self._lock_mode = self._lock_count = None
379
353
 
380
354
    def abspath(self, name):
381
 
        """Return absolute filename for something in the branch"""
 
355
        """Return absolute filename for something in the branch
 
356
        
 
357
        XXX: Robert Collins 20051017 what is this used for? why is it a branch
 
358
        method and not a tree method.
 
359
        """
382
360
        return self._transport.abspath(name)
383
361
 
384
 
    def relpath(self, path):
385
 
        """Return path relative to this branch of something inside it.
386
 
 
387
 
        Raises an error if path is not in this branch."""
388
 
        return self._transport.relpath(path)
389
 
 
390
 
 
391
362
    def _rel_controlfilename(self, file_or_path):
392
363
        if isinstance(file_or_path, basestring):
393
364
            file_or_path = [file_or_path]
1028
999
        # much more complex to keep consistent than our careful .bzr subset.
1029
1000
        # instead, we should say that working trees are local only, and optimise
1030
1001
        # for that.
1031
 
        return WorkingTree(self._transport.base, self.read_working_inventory())
 
1002
        return WorkingTree(self.base, branch=self)
1032
1003
 
1033
1004
 
1034
1005
    def basis_tree(self):