~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tree.py

  • Committer: mbp at sourcefrog
  • Date: 2005-03-27 09:50:34 UTC
  • Revision ID: mbp@sourcefrog.net-20050327095034-3ba7c32b0526f2ad
- cache ignore list in Tree
- bzrignore adds to default patterns

Show diffs side-by-side

added added

removed removed

Lines of Context:
262
262
 
263
263
 
264
264
    def get_ignore_list(self):
265
 
        """Return list of ignore patterns."""
 
265
        """Return list of ignore patterns.
 
266
 
 
267
        Cached in the Tree object after the first call.
 
268
        """
 
269
        if hasattr(self, '_ignorelist'):
 
270
            return self._ignorelist
 
271
 
 
272
        l = bzrlib.DEFAULT_IGNORE[:]
266
273
        if self.has_filename(bzrlib.IGNORE_FILENAME):
267
274
            f = self.get_file_byname(bzrlib.IGNORE_FILENAME)
268
 
            return [line.rstrip("\n\r") for line in f.readlines()]
269
 
        else:
270
 
            return bzrlib.DEFAULT_IGNORE
 
275
            l.extend([line.rstrip("\n\r") for line in f.readlines()])
 
276
        self._ignorelist = l
 
277
        return l
271
278
 
272
279
 
273
280
    def is_ignored(self, filename):
275
282
 
276
283
        Patterns containing '/' need to match the whole path; others
277
284
        match against only the last component."""
278
 
        ## TODO: Take them from a file, not hardcoded
279
285
        ## TODO: Use extended zsh-style globs maybe?
280
286
        ## TODO: Use '**' to match directories?
281
287
        for pat in self.get_ignore_list():