418
418
def has_filename(self, filename):
419
419
return osutils.lexists(self.abspath(filename))
421
def get_file(self, file_id, path=None, filtered=True):
422
return self.get_file_with_stat(file_id, path, filtered=filtered)[0]
421
def get_file(self, path, file_id=None, filtered=True):
422
return self.get_file_with_stat(path, file_id, filtered=filtered)[0]
424
def get_file_with_stat(self, file_id, path=None, filtered=True,
424
def get_file_with_stat(self, path, file_id=None, filtered=True,
425
425
_fstat=osutils.fstat):
426
426
"""See Tree.get_file_with_stat."""
428
path = self.id2path(file_id)
429
file_obj = self.get_file_byname(path, filtered=False)
427
abspath = self.abspath(path)
428
file_obj = file(abspath, 'rb')
430
429
stat_value = _fstat(file_obj.fileno())
431
430
if filtered and self.supports_content_filtering():
432
431
filters = self._content_filter_stack(path)
433
432
file_obj = _mod_filters.filtered_input_file(file_obj, filters)
434
433
return (file_obj, stat_value)
436
def get_file_text(self, file_id, path=None, filtered=True):
437
my_file = self.get_file(file_id, path=path, filtered=filtered)
435
def get_file_text(self, path, file_id=None, filtered=True):
436
my_file = self.get_file(path, file_id, filtered=filtered)
439
438
return my_file.read()
443
def get_file_byname(self, filename, filtered=True):
444
path = self.abspath(filename)
446
if filtered and self.supports_content_filtering():
447
filters = self._content_filter_stack(filename)
448
return _mod_filters.filtered_input_file(f, filters)
452
def get_file_lines(self, file_id, path=None, filtered=True):
442
def get_file_lines(self, path, file_id=None, filtered=True):
453
443
"""See Tree.get_file_lines()"""
454
file = self.get_file(file_id, path, filtered=filtered)
444
file = self.get_file(path, file_id, filtered=filtered)
456
446
return file.readlines()
526
516
def id2abspath(self, file_id):
527
517
return self.abspath(self.id2path(file_id))
529
def get_file_size(self, file_id):
519
def get_file_size(self, path, file_id=None):
530
520
"""See Tree.get_file_size"""
531
521
# XXX: this returns the on-disk size; it should probably return the
534
return os.path.getsize(self.id2abspath(file_id))
524
return os.path.getsize(self.abspath(path))
535
525
except OSError as e:
536
526
if e.errno != errno.ENOENT: