summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Carbonneaux2023-06-23 09:30:01 +0200
committerQuentin Carbonneaux2023-06-23 09:30:01 +0200
commitd1d7495d202d2a8d5c981911cb99dce947c14c11 (patch)
tree4cad3509131aae8c97f5f7a7c7d1af5e87d0c546
parent023f82b3ef59caef688fb001106e336a5fdcd2ef (diff)
[mx] better diffing in log command
-rw-r--r--memex/main.go28
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)