Skip to content

git config で diff.mnemonicPrefix true に設定すると Error: unexpected git diff line が発生する #17

@zztkm

Description

@zztkm

git config で diff.mnemonicPrefix true に設定している状態で mamediff を実行すると以下のようなエラーが発生します。

$ mamediff --version
mamediff 0.3.0

$ mamediff
Error: unexpected git diff line: diff --git i/README.md w/README.md
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/diff.rs:386
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/diff.rs:32
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/git.rs:43
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/git.rs:63
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/git.rs:75
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/widget_diff_tree.rs:199
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/widget_diff_tree.rs:34
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/app.rs:18
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/main.rs:30

mamediff は diff --git a/README.md b/README.md のように prefix が a/ b/ であることを期待しているが、diff.mnemonicPrefix true を設定することで、エラーログにあるように diff --git i/README.md w/README.md となり、prefix が i/ w/ になるからということはわかりました。

修正するとしたら src/diff.rs の 374 行目の parse method の処理を修正するのが良いかなと考えていますが、対応するかどうかの判断も聞いておきたいので一旦 issue 化しました、ご確認お願いします 🙏🏼

再現手順

cd mamediff

git config --global diff.mnemonicPrefix true

# 差分を作る
editor README.md

mamediff
Error: unexpected git diff line: diff --git i/README.md w/README.md
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/diff.rs:386
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/diff.rs:32
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/git.rs:43
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/git.rs:63
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/git.rs:75
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/widget_diff_tree.rs:199
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/widget_diff_tree.rs:34
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/app.rs:18
  at /Users/zztkm/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mamediff-0.3.0/src/main.rs:30

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions