[任务描述]
为 status 命令添加 --porcelain 参数。Git 的 --porcelain 参数用于提供机器可读的输出格式,便于脚本和其他工具解析状态信息,而不是人类可读的格式。
porcelain 模式的特点:
- 机器可读:输出格式简洁、标准化,便于脚本解析
- 每行表示一个文件状态:每行包含状态代码和文件名
- 状态代码标准化:使用固定的两个字符表示文件状态
- 不包含额外信息:不输出分支信息、帮助提示等人类可读内容
[实现方案]
- 参考 libra 其他子命令的方式,给 status 命令添加 StatusArgs 结构体用于表示 status 命令的参数(在结构体中添加 bool 类型变量 porcelain 来表示 --porcelain 参数),通过 Parser 库解析命令行参数。
- 根据 porcelain 值来确定 status 命令的输出格式:
- 当 porcelain 为 false 时,使用现有的人类可读格式输出
- 当 porcelain 为 true 时,使用机器可读的格式输出
- 实现机器可读的输出格式,第一列表示暂存区状态,第二列表示工作区状态
状态代码:
- 'A' = 已添加到暂存区
- 'M' = 已修改
- 'D' = 已删除
- '??' = 未跟踪
- 修改现有的 status 命令实现,确保不破坏现有功能,并正确处理 porcelain 模式下的输出。
- /为修改后的代码编写测试样例,验证 porcelain 模式下的输出格式是否正确,以及非 porcelain 模式下的输出是否保持不变。
[任务描述]
为 status 命令添加 --porcelain 参数。Git 的 --porcelain 参数用于提供机器可读的输出格式,便于脚本和其他工具解析状态信息,而不是人类可读的格式。
porcelain 模式的特点:
[实现方案]
状态代码: