Is your feature request related to a problem? Please describe.
I'm always frustrated when viewing long evologs because each operation has identical-looking patches at first glance, especially if successive operations don't change much. I'd prefer to see the changes introduced by each successive operation (interdiff)
This can be done on the command line as follows:
$ jj evolog -r q
◆ qyrktxsx kimmy@kjwilber.org 2026-01-12 12:27:01 main* d6ebfdf0
│ Runner() is now a singleton, so multiple modules can say kg.Runner() without concern
│ -- operation 57ffff602562 describe commit 49c643bfa78991febfb759eff46a32616e7cc508
○ qyrktxsx hidden kimmy@kjwilber.org 2026-01-12 12:26:52 49c643bf
│ Runner() now a singleton, so multiple modules can say kg.Runner()
│ -- operation 292c282b7b95 describe commit edcd8ba22891d34428432de3caa48914aac3d4c1
...
$ jj diff --from edcd8 --to 49c64
The commandline also has jj evolog -p, which shows each entry as successive interdiff patches, doing exactly what I need.
Jjui already has a p binding which opens each entry in the preview view for easy scrolling, but it always compares that operation against its parent.
Describe the solution you'd like
The evolog has d for diff, but it always displays that entire change's diff as it existed at that operation. Instead, I'd like a way to diff between either two selected or successive operations to view the changes that each operation introduced. This is helpful for seeing which snapshots contain which changes.
I'm proposing two changes:
- In the evolog, make the
p binding show interdiff (changes introduced by each operation), just like how jj evolog -p does it.
- Add a new keybinding like
D that opens the diff view but --from is set to the operation's parent
Describe alternatives you've considered
I tend to use jjui to browse the evolog and copy the commit IDs to a jj diff commandline. Alternatively, browsing the evolog with jj evolog -p shows interdiff patches by default.
Is your feature request related to a problem? Please describe.
I'm always frustrated when viewing long evologs because each operation has identical-looking patches at first glance, especially if successive operations don't change much. I'd prefer to see the changes introduced by each successive operation (interdiff)
This can be done on the command line as follows:
The commandline also has
jj evolog -p, which shows each entry as successive interdiff patches, doing exactly what I need.Jjui already has a
pbinding which opens each entry in the preview view for easy scrolling, but it always compares that operation against its parent.Describe the solution you'd like
The evolog has
dfor diff, but it always displays that entire change's diff as it existed at that operation. Instead, I'd like a way to diff between either two selected or successive operations to view the changes that each operation introduced. This is helpful for seeing which snapshots contain which changes.I'm proposing two changes:
pbinding show interdiff (changes introduced by each operation), just like howjj evolog -pdoes it.Dthat opens the diff view but--fromis set to the operation's parentDescribe alternatives you've considered
I tend to use
jjuito browse the evolog and copy the commit IDs to ajj diffcommandline. Alternatively, browsing the evolog withjj evolog -pshows interdiff patches by default.