Skip to content

[libra] 为 status 命令添加 --porcelain 参数 #1395

Description

@vvishuluck

[任务描述]
为 status 命令添加 --porcelain 参数。Git 的 --porcelain 参数用于提供机器可读的输出格式,便于脚本和其他工具解析状态信息,而不是人类可读的格式。

porcelain 模式的特点:

  1. 机器可读:输出格式简洁、标准化,便于脚本解析
  2. 每行表示一个文件状态:每行包含状态代码和文件名
  3. 状态代码标准化:使用固定的两个字符表示文件状态
  4. 不包含额外信息:不输出分支信息、帮助提示等人类可读内容

[实现方案]

  1. 参考 libra 其他子命令的方式,给 status 命令添加 StatusArgs 结构体用于表示 status 命令的参数(在结构体中添加 bool 类型变量 porcelain 来表示 --porcelain 参数),通过 Parser 库解析命令行参数。
  2. 根据 porcelain 值来确定 status 命令的输出格式:
  • 当 porcelain 为 false 时,使用现有的人类可读格式输出
  • 当 porcelain 为 true 时,使用机器可读的格式输出
  1. 实现机器可读的输出格式,第一列表示暂存区状态,第二列表示工作区状态
    状态代码:
  • 'A' = 已添加到暂存区
  • 'M' = 已修改
  • 'D' = 已删除
  • '??' = 未跟踪
  1. 修改现有的 status 命令实现,确保不破坏现有功能,并正确处理 porcelain 模式下的输出。
  2. /为修改后的代码编写测试样例,验证 porcelain 模式下的输出格式是否正确,以及非 porcelain 模式下的输出是否保持不变。

Metadata

Metadata

Assignees

Labels

Type

Fields

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions