mirror of
https://github.com/sharkdp/bat.git
synced 2024-10-31 20:11:01 +01:00
Add new --style
called header-filesize
and display it by default (#1988)
Also rename `header` to `header-filename`. Related to #1701
This commit is contained in:
parent
f3f8194932
commit
312c8ef01f
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
- New style component `header-filesize` to show size of the displayed file in the header. See #1988 (@mdibaiee)
|
||||||
|
|
||||||
## Bugfixes
|
## Bugfixes
|
||||||
|
|
||||||
## Other
|
## Other
|
||||||
|
7
Cargo.lock
generated
7
Cargo.lock
generated
@ -82,6 +82,7 @@ dependencies = [
|
|||||||
"atty",
|
"atty",
|
||||||
"bincode",
|
"bincode",
|
||||||
"bugreport",
|
"bugreport",
|
||||||
|
"bytesize",
|
||||||
"clap",
|
"clap",
|
||||||
"clircle",
|
"clircle",
|
||||||
"console",
|
"console",
|
||||||
@ -169,6 +170,12 @@ version = "1.7.3"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "439989e6b8c38d1b6570a384ef1e49c8848128f5a97f3914baef02920842712f"
|
checksum = "439989e6b8c38d1b6570a384ef1e49c8848128f5a97f3914baef02920842712f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytesize"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6c58ec36aac5066d5ca17df51b3e70279f5670a72102f5752cb7e7c856adfc70"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.0.72"
|
version = "1.0.72"
|
||||||
|
@ -65,6 +65,7 @@ dirs-next = { version = "2.0.0", optional = true }
|
|||||||
grep-cli = { version = "0.1.6", optional = true }
|
grep-cli = { version = "0.1.6", optional = true }
|
||||||
regex = { version = "1.0", optional = true }
|
regex = { version = "1.0", optional = true }
|
||||||
walkdir = { version = "2.0", optional = true }
|
walkdir = { version = "2.0", optional = true }
|
||||||
|
bytesize = { version = "1.1.0" }
|
||||||
|
|
||||||
[dependencies.git2]
|
[dependencies.git2]
|
||||||
version = "0.13"
|
version = "0.13"
|
||||||
|
@ -396,11 +396,19 @@ pub fn build_app(interactive_output: bool) -> ClapApp<'static, 'static> {
|
|||||||
.validator(|val| {
|
.validator(|val| {
|
||||||
let mut invalid_vals = val.split(',').filter(|style| {
|
let mut invalid_vals = val.split(',').filter(|style| {
|
||||||
!&[
|
!&[
|
||||||
"auto", "full", "plain", "header", "grid", "rule", "numbers", "snip",
|
"auto",
|
||||||
|
"full",
|
||||||
|
"plain",
|
||||||
|
"header",
|
||||||
|
"header-filename",
|
||||||
|
"header-filesize",
|
||||||
|
"grid",
|
||||||
|
"rule",
|
||||||
|
"numbers",
|
||||||
|
"snip",
|
||||||
#[cfg(feature = "git")]
|
#[cfg(feature = "git")]
|
||||||
"changes",
|
"changes",
|
||||||
]
|
].contains(style)
|
||||||
.contains(style)
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if let Some(invalid) = invalid_vals.next() {
|
if let Some(invalid) = invalid_vals.next() {
|
||||||
@ -426,7 +434,9 @@ pub fn build_app(interactive_output: bool) -> ClapApp<'static, 'static> {
|
|||||||
* auto: same as 'full', unless the output is piped.\n \
|
* auto: same as 'full', unless the output is piped.\n \
|
||||||
* plain: disables all available components.\n \
|
* plain: disables all available components.\n \
|
||||||
* changes: show Git modification markers.\n \
|
* changes: show Git modification markers.\n \
|
||||||
* header: show filenames before the content.\n \
|
* header: alias for 'header-filename'.\n \
|
||||||
|
* header-filename: show filenames before the content.\n \
|
||||||
|
* header-filesize: show file sizes before the content.\n \
|
||||||
* grid: vertical/horizontal lines to separate side bar\n \
|
* grid: vertical/horizontal lines to separate side bar\n \
|
||||||
and the header from the content.\n \
|
and the header from the content.\n \
|
||||||
* rule: horizontal lines to delimit files.\n \
|
* rule: horizontal lines to delimit files.\n \
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use std::convert::TryFrom;
|
use std::convert::TryFrom;
|
||||||
|
use std::fs;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::{self, BufRead, BufReader, Read};
|
use std::io::{self, BufRead, BufReader, Read};
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
@ -87,6 +88,7 @@ impl<'a> InputKind<'a> {
|
|||||||
#[derive(Clone, Default)]
|
#[derive(Clone, Default)]
|
||||||
pub(crate) struct InputMetadata {
|
pub(crate) struct InputMetadata {
|
||||||
pub(crate) user_provided_name: Option<PathBuf>,
|
pub(crate) user_provided_name: Option<PathBuf>,
|
||||||
|
pub(crate) size: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Input<'a> {
|
pub struct Input<'a> {
|
||||||
@ -130,9 +132,14 @@ impl<'a> Input<'a> {
|
|||||||
|
|
||||||
fn _ordinary_file(path: &Path) -> Self {
|
fn _ordinary_file(path: &Path) -> Self {
|
||||||
let kind = InputKind::OrdinaryFile(path.to_path_buf());
|
let kind = InputKind::OrdinaryFile(path.to_path_buf());
|
||||||
|
let metadata = InputMetadata {
|
||||||
|
size: fs::metadata(path).map(|m| m.len()).ok(),
|
||||||
|
..InputMetadata::default()
|
||||||
|
};
|
||||||
|
|
||||||
Input {
|
Input {
|
||||||
description: kind.description(),
|
description: kind.description(),
|
||||||
metadata: InputMetadata::default(),
|
metadata,
|
||||||
kind,
|
kind,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
104
src/printer.rs
104
src/printer.rs
@ -4,6 +4,8 @@ use std::vec::Vec;
|
|||||||
use ansi_term::Colour::{Fixed, Green, Red, Yellow};
|
use ansi_term::Colour::{Fixed, Green, Red, Yellow};
|
||||||
use ansi_term::Style;
|
use ansi_term::Style;
|
||||||
|
|
||||||
|
use bytesize::ByteSize;
|
||||||
|
|
||||||
use console::AnsiCodeIterator;
|
use console::AnsiCodeIterator;
|
||||||
|
|
||||||
use syntect::easy::HighlightLines;
|
use syntect::easy::HighlightLines;
|
||||||
@ -29,6 +31,7 @@ use crate::error::*;
|
|||||||
use crate::input::OpenedInput;
|
use crate::input::OpenedInput;
|
||||||
use crate::line_range::RangeCheckResult;
|
use crate::line_range::RangeCheckResult;
|
||||||
use crate::preprocessor::{expand_tabs, replace_nonprintable};
|
use crate::preprocessor::{expand_tabs, replace_nonprintable};
|
||||||
|
use crate::style::StyleComponent;
|
||||||
use crate::terminal::{as_terminal_escaped, to_ansi_color};
|
use crate::terminal::{as_terminal_escaped, to_ansi_color};
|
||||||
use crate::vscreen::AnsiStyle;
|
use crate::vscreen::AnsiStyle;
|
||||||
use crate::wrapping::WrappingMode;
|
use crate::wrapping::WrappingMode;
|
||||||
@ -250,6 +253,21 @@ impl<'a> InteractivePrinter<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn print_header_component_indent(&mut self, handle: &mut dyn Write) -> std::io::Result<()> {
|
||||||
|
if self.config.style_components.grid() {
|
||||||
|
write!(
|
||||||
|
handle,
|
||||||
|
"{}{}",
|
||||||
|
" ".repeat(self.panel_width),
|
||||||
|
self.colors
|
||||||
|
.grid
|
||||||
|
.paint(if self.panel_width > 0 { "│ " } else { "" }),
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
write!(handle, "{}", " ".repeat(self.panel_width))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn preprocess(&self, text: &str, cursor: &mut usize) -> String {
|
fn preprocess(&self, text: &str, cursor: &mut usize) -> String {
|
||||||
if self.config.tab_width > 0 {
|
if self.config.tab_width > 0 {
|
||||||
return expand_tabs(text, self.config.tab_width, cursor);
|
return expand_tabs(text, self.config.tab_width, cursor);
|
||||||
@ -287,25 +305,6 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.config.style_components.grid() {
|
|
||||||
self.print_horizontal_line(handle, '┬')?;
|
|
||||||
|
|
||||||
write!(
|
|
||||||
handle,
|
|
||||||
"{}{}",
|
|
||||||
" ".repeat(self.panel_width),
|
|
||||||
self.colors
|
|
||||||
.grid
|
|
||||||
.paint(if self.panel_width > 0 { "│ " } else { "" }),
|
|
||||||
)?;
|
|
||||||
} else {
|
|
||||||
// Only pad space between files, if we haven't already drawn a horizontal rule
|
|
||||||
if add_header_padding && !self.config.style_components.rule() {
|
|
||||||
writeln!(handle)?;
|
|
||||||
}
|
|
||||||
write!(handle, "{}", " ".repeat(self.panel_width))?;
|
|
||||||
}
|
|
||||||
|
|
||||||
let mode = match self.content_type {
|
let mode = match self.content_type {
|
||||||
Some(ContentType::BINARY) => " <BINARY>",
|
Some(ContentType::BINARY) => " <BINARY>",
|
||||||
Some(ContentType::UTF_16LE) => " <UTF-16LE>",
|
Some(ContentType::UTF_16LE) => " <UTF-16LE>",
|
||||||
@ -315,17 +314,60 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let description = &input.description;
|
let description = &input.description;
|
||||||
|
let metadata = &input.metadata;
|
||||||
|
|
||||||
writeln!(
|
// We use this iterator to have a deterministic order for
|
||||||
handle,
|
// header components. HashSet has arbitrary order, but Vec is ordered.
|
||||||
"{}{}{}",
|
let header_components: Vec<StyleComponent> = [
|
||||||
description
|
(
|
||||||
.kind()
|
StyleComponent::HeaderFilename,
|
||||||
.map(|kind| format!("{}: ", kind))
|
self.config.style_components.header_filename(),
|
||||||
.unwrap_or_else(|| "".into()),
|
),
|
||||||
self.colors.filename.paint(description.title()),
|
(
|
||||||
mode
|
StyleComponent::HeaderFilesize,
|
||||||
)?;
|
self.config.style_components.header_filesize(),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.filter(|(_, is_enabled)| *is_enabled)
|
||||||
|
.map(|(component, _)| *component)
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
// Print the cornering grid before the first header component
|
||||||
|
if self.config.style_components.grid() {
|
||||||
|
self.print_horizontal_line(handle, '┬')?;
|
||||||
|
} else {
|
||||||
|
// Only pad space between files, if we haven't already drawn a horizontal rule
|
||||||
|
if add_header_padding && !self.config.style_components.rule() {
|
||||||
|
writeln!(handle)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
header_components.iter().try_for_each(|component| {
|
||||||
|
self.print_header_component_indent(handle)?;
|
||||||
|
|
||||||
|
match component {
|
||||||
|
StyleComponent::HeaderFilename => writeln!(
|
||||||
|
handle,
|
||||||
|
"{}{}{}",
|
||||||
|
description
|
||||||
|
.kind()
|
||||||
|
.map(|kind| format!("{}: ", kind))
|
||||||
|
.unwrap_or_else(|| "".into()),
|
||||||
|
self.colors.header_value.paint(description.title()),
|
||||||
|
mode
|
||||||
|
),
|
||||||
|
|
||||||
|
StyleComponent::HeaderFilesize => {
|
||||||
|
let bsize = metadata
|
||||||
|
.size
|
||||||
|
.map(|s| format!("{}", ByteSize(s)))
|
||||||
|
.unwrap_or_else(|| "-".into());
|
||||||
|
writeln!(handle, "Size: {}", self.colors.header_value.paint(bsize))
|
||||||
|
}
|
||||||
|
_ => Ok(()),
|
||||||
|
}
|
||||||
|
})?;
|
||||||
|
|
||||||
if self.config.style_components.grid() {
|
if self.config.style_components.grid() {
|
||||||
if self.content_type.map_or(false, |c| c.is_text()) || self.config.show_nonprintable {
|
if self.content_type.map_or(false, |c| c.is_text()) || self.config.show_nonprintable {
|
||||||
@ -617,7 +659,7 @@ const DEFAULT_GUTTER_COLOR: u8 = 238;
|
|||||||
pub struct Colors {
|
pub struct Colors {
|
||||||
pub grid: Style,
|
pub grid: Style,
|
||||||
pub rule: Style,
|
pub rule: Style,
|
||||||
pub filename: Style,
|
pub header_value: Style,
|
||||||
pub git_added: Style,
|
pub git_added: Style,
|
||||||
pub git_removed: Style,
|
pub git_removed: Style,
|
||||||
pub git_modified: Style,
|
pub git_modified: Style,
|
||||||
@ -646,7 +688,7 @@ impl Colors {
|
|||||||
Colors {
|
Colors {
|
||||||
grid: gutter_style,
|
grid: gutter_style,
|
||||||
rule: gutter_style,
|
rule: gutter_style,
|
||||||
filename: Style::new().bold(),
|
header_value: Style::new().bold(),
|
||||||
git_added: Green.normal(),
|
git_added: Green.normal(),
|
||||||
git_removed: Red.normal(),
|
git_removed: Red.normal(),
|
||||||
git_modified: Yellow.normal(),
|
git_modified: Yellow.normal(),
|
||||||
|
22
src/style.rs
22
src/style.rs
@ -3,6 +3,7 @@ use std::str::FromStr;
|
|||||||
|
|
||||||
use crate::error::*;
|
use crate::error::*;
|
||||||
|
|
||||||
|
#[non_exhaustive]
|
||||||
#[derive(Debug, Eq, PartialEq, Copy, Clone, Hash)]
|
#[derive(Debug, Eq, PartialEq, Copy, Clone, Hash)]
|
||||||
pub enum StyleComponent {
|
pub enum StyleComponent {
|
||||||
Auto,
|
Auto,
|
||||||
@ -11,6 +12,8 @@ pub enum StyleComponent {
|
|||||||
Grid,
|
Grid,
|
||||||
Rule,
|
Rule,
|
||||||
Header,
|
Header,
|
||||||
|
HeaderFilename,
|
||||||
|
HeaderFilesize,
|
||||||
LineNumbers,
|
LineNumbers,
|
||||||
Snip,
|
Snip,
|
||||||
Full,
|
Full,
|
||||||
@ -31,14 +34,17 @@ impl StyleComponent {
|
|||||||
StyleComponent::Changes => &[StyleComponent::Changes],
|
StyleComponent::Changes => &[StyleComponent::Changes],
|
||||||
StyleComponent::Grid => &[StyleComponent::Grid],
|
StyleComponent::Grid => &[StyleComponent::Grid],
|
||||||
StyleComponent::Rule => &[StyleComponent::Rule],
|
StyleComponent::Rule => &[StyleComponent::Rule],
|
||||||
StyleComponent::Header => &[StyleComponent::Header],
|
StyleComponent::Header => &[StyleComponent::HeaderFilename],
|
||||||
|
StyleComponent::HeaderFilename => &[StyleComponent::HeaderFilename],
|
||||||
|
StyleComponent::HeaderFilesize => &[StyleComponent::HeaderFilesize],
|
||||||
StyleComponent::LineNumbers => &[StyleComponent::LineNumbers],
|
StyleComponent::LineNumbers => &[StyleComponent::LineNumbers],
|
||||||
StyleComponent::Snip => &[StyleComponent::Snip],
|
StyleComponent::Snip => &[StyleComponent::Snip],
|
||||||
StyleComponent::Full => &[
|
StyleComponent::Full => &[
|
||||||
#[cfg(feature = "git")]
|
#[cfg(feature = "git")]
|
||||||
StyleComponent::Changes,
|
StyleComponent::Changes,
|
||||||
StyleComponent::Grid,
|
StyleComponent::Grid,
|
||||||
StyleComponent::Header,
|
StyleComponent::HeaderFilename,
|
||||||
|
StyleComponent::HeaderFilesize,
|
||||||
StyleComponent::LineNumbers,
|
StyleComponent::LineNumbers,
|
||||||
StyleComponent::Snip,
|
StyleComponent::Snip,
|
||||||
],
|
],
|
||||||
@ -58,6 +64,8 @@ impl FromStr for StyleComponent {
|
|||||||
"grid" => Ok(StyleComponent::Grid),
|
"grid" => Ok(StyleComponent::Grid),
|
||||||
"rule" => Ok(StyleComponent::Rule),
|
"rule" => Ok(StyleComponent::Rule),
|
||||||
"header" => Ok(StyleComponent::Header),
|
"header" => Ok(StyleComponent::Header),
|
||||||
|
"header-filename" => Ok(StyleComponent::HeaderFilename),
|
||||||
|
"header-filesize" => Ok(StyleComponent::HeaderFilesize),
|
||||||
"numbers" => Ok(StyleComponent::LineNumbers),
|
"numbers" => Ok(StyleComponent::LineNumbers),
|
||||||
"snip" => Ok(StyleComponent::Snip),
|
"snip" => Ok(StyleComponent::Snip),
|
||||||
"full" => Ok(StyleComponent::Full),
|
"full" => Ok(StyleComponent::Full),
|
||||||
@ -89,7 +97,15 @@ impl StyleComponents {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn header(&self) -> bool {
|
pub fn header(&self) -> bool {
|
||||||
self.0.contains(&StyleComponent::Header)
|
self.header_filename() || self.header_filesize()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn header_filename(&self) -> bool {
|
||||||
|
self.0.contains(&StyleComponent::HeaderFilename)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn header_filesize(&self) -> bool {
|
||||||
|
self.0.contains(&StyleComponent::HeaderFilesize)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn numbers(&self) -> bool {
|
pub fn numbers(&self) -> bool {
|
||||||
|
1
tests/benchmarks/many-small-files/small-file-0.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-0.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 0
|
1
tests/benchmarks/many-small-files/small-file-1.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-1.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 1
|
1
tests/benchmarks/many-small-files/small-file-10.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-10.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 10
|
1
tests/benchmarks/many-small-files/small-file-100.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-100.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 100
|
1
tests/benchmarks/many-small-files/small-file-11.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-11.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 11
|
1
tests/benchmarks/many-small-files/small-file-12.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-12.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 12
|
1
tests/benchmarks/many-small-files/small-file-13.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-13.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 13
|
1
tests/benchmarks/many-small-files/small-file-14.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-14.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 14
|
1
tests/benchmarks/many-small-files/small-file-15.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-15.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 15
|
1
tests/benchmarks/many-small-files/small-file-16.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-16.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 16
|
1
tests/benchmarks/many-small-files/small-file-17.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-17.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 17
|
1
tests/benchmarks/many-small-files/small-file-18.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-18.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 18
|
1
tests/benchmarks/many-small-files/small-file-19.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-19.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 19
|
1
tests/benchmarks/many-small-files/small-file-2.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-2.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 2
|
1
tests/benchmarks/many-small-files/small-file-20.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-20.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 20
|
1
tests/benchmarks/many-small-files/small-file-21.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-21.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 21
|
1
tests/benchmarks/many-small-files/small-file-22.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-22.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 22
|
1
tests/benchmarks/many-small-files/small-file-23.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-23.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 23
|
1
tests/benchmarks/many-small-files/small-file-24.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-24.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 24
|
1
tests/benchmarks/many-small-files/small-file-25.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-25.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 25
|
1
tests/benchmarks/many-small-files/small-file-26.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-26.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 26
|
1
tests/benchmarks/many-small-files/small-file-27.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-27.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 27
|
1
tests/benchmarks/many-small-files/small-file-28.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-28.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 28
|
1
tests/benchmarks/many-small-files/small-file-29.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-29.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 29
|
1
tests/benchmarks/many-small-files/small-file-3.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-3.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 3
|
1
tests/benchmarks/many-small-files/small-file-30.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-30.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 30
|
1
tests/benchmarks/many-small-files/small-file-31.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-31.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 31
|
1
tests/benchmarks/many-small-files/small-file-32.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-32.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 32
|
1
tests/benchmarks/many-small-files/small-file-33.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-33.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 33
|
1
tests/benchmarks/many-small-files/small-file-34.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-34.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 34
|
1
tests/benchmarks/many-small-files/small-file-35.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-35.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 35
|
1
tests/benchmarks/many-small-files/small-file-36.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-36.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 36
|
1
tests/benchmarks/many-small-files/small-file-37.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-37.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 37
|
1
tests/benchmarks/many-small-files/small-file-38.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-38.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 38
|
1
tests/benchmarks/many-small-files/small-file-39.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-39.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 39
|
1
tests/benchmarks/many-small-files/small-file-4.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-4.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 4
|
1
tests/benchmarks/many-small-files/small-file-40.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-40.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 40
|
1
tests/benchmarks/many-small-files/small-file-41.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-41.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 41
|
1
tests/benchmarks/many-small-files/small-file-42.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-42.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 42
|
1
tests/benchmarks/many-small-files/small-file-43.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-43.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 43
|
1
tests/benchmarks/many-small-files/small-file-44.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-44.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 44
|
1
tests/benchmarks/many-small-files/small-file-45.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-45.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 45
|
1
tests/benchmarks/many-small-files/small-file-46.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-46.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 46
|
1
tests/benchmarks/many-small-files/small-file-47.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-47.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 47
|
1
tests/benchmarks/many-small-files/small-file-48.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-48.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 48
|
1
tests/benchmarks/many-small-files/small-file-49.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-49.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 49
|
1
tests/benchmarks/many-small-files/small-file-5.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-5.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 5
|
1
tests/benchmarks/many-small-files/small-file-50.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-50.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 50
|
1
tests/benchmarks/many-small-files/small-file-51.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-51.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 51
|
1
tests/benchmarks/many-small-files/small-file-52.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-52.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 52
|
1
tests/benchmarks/many-small-files/small-file-53.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-53.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 53
|
1
tests/benchmarks/many-small-files/small-file-54.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-54.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 54
|
1
tests/benchmarks/many-small-files/small-file-55.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-55.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 55
|
1
tests/benchmarks/many-small-files/small-file-56.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-56.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 56
|
1
tests/benchmarks/many-small-files/small-file-57.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-57.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 57
|
1
tests/benchmarks/many-small-files/small-file-58.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-58.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 58
|
1
tests/benchmarks/many-small-files/small-file-59.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-59.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 59
|
1
tests/benchmarks/many-small-files/small-file-6.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-6.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 6
|
1
tests/benchmarks/many-small-files/small-file-60.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-60.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 60
|
1
tests/benchmarks/many-small-files/small-file-61.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-61.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 61
|
1
tests/benchmarks/many-small-files/small-file-62.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-62.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 62
|
1
tests/benchmarks/many-small-files/small-file-63.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-63.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 63
|
1
tests/benchmarks/many-small-files/small-file-64.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-64.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 64
|
1
tests/benchmarks/many-small-files/small-file-65.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-65.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 65
|
1
tests/benchmarks/many-small-files/small-file-66.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-66.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 66
|
1
tests/benchmarks/many-small-files/small-file-67.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-67.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 67
|
1
tests/benchmarks/many-small-files/small-file-68.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-68.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 68
|
1
tests/benchmarks/many-small-files/small-file-69.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-69.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 69
|
1
tests/benchmarks/many-small-files/small-file-7.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-7.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 7
|
1
tests/benchmarks/many-small-files/small-file-70.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-70.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 70
|
1
tests/benchmarks/many-small-files/small-file-71.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-71.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 71
|
1
tests/benchmarks/many-small-files/small-file-72.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-72.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 72
|
1
tests/benchmarks/many-small-files/small-file-73.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-73.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 73
|
1
tests/benchmarks/many-small-files/small-file-74.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-74.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 74
|
1
tests/benchmarks/many-small-files/small-file-75.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-75.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 75
|
1
tests/benchmarks/many-small-files/small-file-76.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-76.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 76
|
1
tests/benchmarks/many-small-files/small-file-77.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-77.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 77
|
1
tests/benchmarks/many-small-files/small-file-78.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-78.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 78
|
1
tests/benchmarks/many-small-files/small-file-79.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-79.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 79
|
1
tests/benchmarks/many-small-files/small-file-8.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-8.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 8
|
1
tests/benchmarks/many-small-files/small-file-80.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-80.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 80
|
1
tests/benchmarks/many-small-files/small-file-81.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-81.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 81
|
1
tests/benchmarks/many-small-files/small-file-82.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-82.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 82
|
1
tests/benchmarks/many-small-files/small-file-83.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-83.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 83
|
1
tests/benchmarks/many-small-files/small-file-84.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-84.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 84
|
1
tests/benchmarks/many-small-files/small-file-85.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-85.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 85
|
1
tests/benchmarks/many-small-files/small-file-86.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-86.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 86
|
1
tests/benchmarks/many-small-files/small-file-87.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-87.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 87
|
1
tests/benchmarks/many-small-files/small-file-88.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-88.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 88
|
1
tests/benchmarks/many-small-files/small-file-89.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-89.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 89
|
1
tests/benchmarks/many-small-files/small-file-9.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-9.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 9
|
1
tests/benchmarks/many-small-files/small-file-90.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-90.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 90
|
1
tests/benchmarks/many-small-files/small-file-91.txt
vendored
Normal file
1
tests/benchmarks/many-small-files/small-file-91.txt
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
I am small file 91
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user