diff options
| author | Quentin Carbonneaux | 2023-06-23 09:30:01 +0200 |
|---|---|---|
| committer | Quentin Carbonneaux | 2023-06-23 09:30:01 +0200 |
| commit | d1d7495d202d2a8d5c981911cb99dce947c14c11 (patch) | |
| tree | 4cad3509131aae8c97f5f7a7c7d1af5e87d0c546 | |
| parent | 023f82b3ef59caef688fb001106e336a5fdcd2ef (diff) | |
[mx] better diffing in log command
| -rw-r--r-- | memex/main.go | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/memex/main.go b/memex/main.go index 300b0ad..128cf74 100644 --- a/memex/main.go +++ b/memex/main.go @@ -427,10 +427,10 @@ func logCmd(args logArgs) { var acur, apre Addr acur = parseRevspec(args.rev, rd) - addrs := make(map[string]Addr) + ents := make(map[string]*Entry) for i := 0; i < len(args.paths); i++ { p := path.Join(args.cur, args.paths[i]) - addrs[p] = nil + ents[p] = nil } var cur, pre Commit @@ -446,21 +446,25 @@ func logCmd(args logArgs) { } /* find out if we need to show - * the prev commit */ - changed := len(addrs) == 0 - for p, old := range addrs { + * the previous commit (pre) */ + changed := len(ents) == 0 + for p, old := range ents { w, err := WalkTo(wrev, p) if err != nil { faile(err) } - if w.Here() == nil { - continue - } - new := w.Here().Addr - if !AddrEqual(old, new) { - changed = true + new := w.Here() + if old != nil && new != nil { + diff, _ := simpleDiff(old, new) + if diff != 0 { + changed = true + } + } else { + if old != nil || new != nil { + changed = true + } } - addrs[p] = new + ents[p] = new } if apre.Ok() && (changed || acur.IsZero()) { walkCommit(apre, pre) |
