2 个不稳定版本
0.1.0 | 2024年5月23日 |
---|---|
0.0.1 | 2023年12月25日 |
#285 in 开发工具
15KB
259 代码行
mtime-travel
一个用于保存和恢复文件mtime属性的小工具。保存时,它会记录文件的哈希值,恢复时,只有当文件哈希值匹配时才会恢复mtime。文件哈希使用SHA-256进行。
这可以用于避免在文件内容未更改但mtime已更改的情况下进行Rust重建,因为Rust会根据mtime进行重建(参见https://github.com/rust-lang/cargo/issues/6529)。一个不希望进行此类重建的例子是从CI中通过git拉取项目,因为这会改变mtime值,因此通常触发重建,即使你可能已经从之前的CI运行中缓存了构建工件。
安装
您可以通过 cargo
安装mtime-travel
cargo install --locked mtime-travel
用法
保存
Usage: mtime-travel save [OPTIONS] <TARGET_DIR>
Arguments:
<TARGET_DIR> The location to recursively scan for files
Options:
-f, --file <FILE> The location to a file to save the current mtimes to [default: mtimes.json]
-i, --ignore [<IGNORE>...] Regex patterns for which files to skip; multiple regex strings can be passed. Note the file paths checked are the absolute paths
-v, --verbose Enable verbose output
-h, --help Print help
将当前目录保存到名为 mtimes.json
的文件中
mtime-travel save ./
要忽略某些正则表达式
mtime-travel save --ignore ".*foo.*" ./
保存到其他位置
mtime-travel save --file <MTIME_FILE_PATH> ./
这将输出一个包含文件的哈希值和mtime值的 .json
文件。
恢复
Usage: mtime-travel restore [OPTIONS] <TARGET_DIR>
Arguments:
<TARGET_DIR> The location to recursively restore mtimes to
Options:
-f, --file <FILE> The location to a file to restore previous mtimes from [default: mtimes.json]
-v, --verbose Enable verbose output
-i, --ignore-hash Restore mtime for a file even if the hash does not match
-h, --help Print help
从同一目录中名为 mtimes.json
的文件恢复当前目录的文件 如果文件哈希值匹配
mtime-travel restore ./
忽略文件哈希值
mtime-travel restore --ignore-hash ./
从不同路径的文件恢复
mtime-travel restore --file <MTIME_FILE_PATH> ./
依赖项
~4–14MB
~161K SLoC