2 个不稳定版本

0.2.0 2021年9月29日
0.1.0 2021年9月28日

#1870 in 命令行工具

MIT/Apache

105KB
2K SLoC

Rif,影响控制程序

注意

我完成了所有计划中的功能。然而,我还没有测试足够以确保这个程序按预期工作。我现在正在使用这个程序并修复已知的错误。如果您想使用稳定版本,那么可能需要等待。

关于rif

Rif检查文件之间的关联性并决定文件是过时的还是最新的。当文件引用多个其他文件时,您可以在需要确保所有文件都保持最新时使用此程序或库(即将推出)。

这是从我的名为gesign的项目衍生出来的。Gesign是一个独立的编辑器,因此不是很灵活,与其他程序一起使用时有些笨拙。另一方面,rif旨在通过默认的跨平台方式轻松附加文件引用检查。

通用用法

二进制文件

# Initiate rif project with default .rifginoe file
rif init

# Add all files in current project directory
rif add . 

# Update a file with update message
rif commit <FILE> -m "This is important update"

# Show status of rif directory
rif status

# Show whole rif tree 
rif ls

rif = "0.1.0"
use rif::{Rif, LisType};

// Every operation saves file to .rif which is created with new method
let rif = Rif::new();
let wd = Some(path::new("dir")); // Or use "None" for cwd
rif.new(wd);
rif.add(Path::new("file_to_add.txt", false));
rif.commit(None);
rif.list(None,LisType::All,None);

安装方法

# Simple binary file
cargo install rif --features binary

# With color prompt
cargo install rif --features binary,color

构建方法

请确保已安装Rust语言。 链接

# Clone the repo
git clone https://github.com/simhyeon/rif

# And build with cargo, compiled binary is located in target/release
cd rif && cargo build --release

一些用例

Rif旨在帮助设计师跟踪文档更改。特别是当文档高度模块化和相互关联时。一种通用用法是游戏设计文档。

设计师可以将文件添加到rif项目中,并将文件(子项)设置为对文件的引用(父项)。每当任何子文件更改时,父文件的状况也会更改。这个过程通过rif二进制文件手动检查(至少目前是这样)。

例如,

  1. 创建一个名为levelmanager.md的新文件,并将其添加到rif项目中
  2. 将"level.md"设置为"levelmanager.md"的引用
  3. 更新level.md的内容
  4. levelmanager.md的状态更新为过时
  5. 更新levelmanager.md的内容
  6. levelmanager.md的状态更新为"最新"

在这种情况下,levelmanager依赖于level,因为level的更改可能会影响level manager的行为。因此,level的内容更改使得level manager的状态变为过时,从而通知设计师手动确认level manager的内容是否应该更新。设计师应用适当的修改后,levelmanager的状态会更新。这样,设计师可以最大限度地减少由于未注意到的文件关系而产生的逻辑错误。

配置

您可以设置多个配置选项。我计划添加更多的配置选项。配置文件位于inc "$PWD/.rif/config"。

  • 钩子 - 触发:是否在检查命令后触发钩子过程 - 钩子命令:要触发的进程名称 - 钩子参数:应传递给进程的参数类型。它应该是以下之一:“所有”、“无”、“新鲜”、“陈旧”

示例

依赖项

~2–13MB
~119K SLoC