2 ms·
This is so cool to have made yourself. How would you compare this to the functionality offered by jujutsu? I love the histogram, it was the first sort of thing
by mpalmer 8mo ago
This is so cool to have made yourself. How would you compare this to the functionality offered by jujutsu? I love the histogram, it was the first sort of thing I wanted out of jujutsu that its UI doesn't make very easy. But with jj the filesystem tracking is built in, which is a huge advantage.
- cyrusradfar 8mo agoI'm not a user, but I looked at the site and it looks like jj snapshots when you run a jj command. UNF snapshots continuously. If an AI agent rewrites 30 files and you haven't touched jj yet, jj has the before-state but none of the intermediate states. UNF* captured every save as it happened, at filesystem level. jj is a VCS. UNF is a safety net that sits below your VCS. - UNF* works alongside git, jj, or no VCS at all - No workflow change. You don't adopt a new tool, it just runs in the background - Works on files outside any repo (configs, scratch dirs, notes) as it doesn't require git. They're complementary, not competing. W.r.t. to the histogram, this is my fav feature of the app as well. Session segmentation (still definitely not perfect) creates selectable regions to make it easier, too. The algo is in the CLI as well for the Agent recap (rebuilding context) features.
- lexluthor38 8mo agoTo be fair, jujutsu has a watchman feature which uses inotify to create snapshots on file change as well. Your tool probably has a more tailored UX to handling these inter-commit changes though so there could still provide complementary value there.
- mpalmer 8mo agoYes, I was thinking of the watchman integration. And I also really love the DSLs it gives you for selecting change sets and assembling log formats.
- benoitg 8mo agoOne of the uses cases on their website is the agent deleted my .env file. jj wouldn’t help with that as it would be gitignored.
- JimDabell 8mo agoThis tool doesn’t help with that either: > The tool skips binaries and respects `.gitignore` if one exists.