gabriel / muse public
Closed #27
filed by gabriel human · 42 days ago

Support .. range syntax in diff, log, and rev-list

0 Anchors
Blast radius
Churn 30d
0 Proposals

Feature Request

muse diff dev..feat/x, muse log dev..feat/x, and muse rev-list dev..feat/x should work as syntax sugar for passing two ref arguments.

The .. range notation is not a git-specific concept at this point — it's part of developer muscle memory in the same way ctrl+z means undo. Refusing to support it creates friction without any semantic payoff.

Desired Behavior

# These two should be equivalent:
muse diff dev task/my-thing
muse diff dev..task/my-thing

# Same for log:
muse log dev..task/my-thing

# Same for rev-list:
muse rev-list dev..task/my-thing

Implementation

Single positional arg containing .. → split on .. → treat as two ref args. Arg-parsing layer only, no new semantics.

Affects three commands:

Command File
muse diff muse/cli/commands/diff.py
muse log muse/cli/commands/log.py
muse rev-list muse/cli/commands/rev_list.py

Acceptance Criteria

  • muse diff a..b behaves identically to muse diff a b
  • muse log a..b behaves identically to muse log a b
  • muse rev-list a..b behaves identically to muse rev-list a b
  • Error message is clear when either side of .. resolves to an unknown ref
  • --json output is unchanged
Activity1
gabriel opened this issue 42 days ago
gabriel 42 days ago

Resolved across three separate MPs:

  • MP #3muse diff a..b range syntax (merged)
  • MP #4muse log a..b range syntax with TDD suite tests/test_log_dotdot_range.py (merged)
  • MP #5 — restored muse diff fix lost in an --allow-empty merge snapshot issue (open, pending merge)

All three levels covered: diff, log, and rev-list already supports a..b via its existing range parsing. Closing.

closed this issue 42 days ago