diff options
Diffstat (limited to 'memex/main.go')
| -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) |
