A Laravel Zero app to test Pijul
This is a Laravel Zero app to test Pijul, a distributed version control system.
Pijul credit with messages
Use ./ani pijul:credit-with-messages to keep pijul credit output intact while showing each hash’s change message inline.
Example:
./ani pijul:credit-with-messages README.md
Pijul record with intent tags
Use ./ani pijul:record-with-intent-tags to reuse intent tags from recent pijul log messages while recording a change.
- The command lists known tags as a reminder before prompting.
- The intent-tag prompt uses the same live suggestion UI as the search command.
- In an interactive terminal, the command now shows an explicit multi-select hunk picker before recording, so you can choose exactly which hunks to send through without editing Pijul’s temp file by hand.
- Skip the tag prompt or pass
--messageif you want to type a fresh message directly.
Examples:
./ani pijul:record-with-intent-tags
./ani pijul:record-with-intent-tags --all
./ani pijul:record-with-intent-tags --list-tags
To spin up a disposable repo for manually testing that flow, run:
./scripts/pijul-record-with-intent-tags-test-helper
It creates a temporary Pijul repo with pending README and notes changes, drops you into a shell there, and removes the repo automatically when you exit.
Pijul intent tag listing and search
Use ./ani pijul:list-intent-tags to print one unique intent tag per line, which makes it easy to pipe into shell tools.
Use ./ani pijul:search-intent-tags for built-in substring search over those tags.
If you omit the query in an interactive terminal, it opens a live, scrollable filter that starts by showing known tags and narrows on each keypress.
Examples:
./ani pijul:list-intent-tags
./ani pijul:list-intent-tags --limit=50 | fzf
./ani pijul:search-intent-tags zero --limit=50
./ani pijul:search-intent-tags 'feat(pijul-qol)' --exact
Before-push review against a remote
Pijul does not have a direct equivalent to git diff origin/main...HEAD, so the easiest review workflow is to pull the remote channel into a local review channel and diff against that.
Example:
pijul pull origin --from-channel main --to-channel review-main
pijul channel switch my-work
pijul diff --channel review-main
Useful variations:
pijul diff --channel review-main --shortfor a summary view.pijul log --channel my-workandpijul log --channel review-mainto compare recorded changes by channel.pijul change <hash>to inspect an individual recorded change in detail.- Plain
pijul diffstill shows only unrecorded working-copy changes.
Cleanup workflow with channels
If you want to do a bigger cleanup pass with a review step at the end, create a base channel and then do the cleanup work on a second channel:
pijul channel new cleanup-base
pijul channel new cleanup-pass
pijul channel switch cleanup-pass
Suggested flow:
- Keep
cleanup-baseunchanged as the comparison point. - Record cleanup changes on
cleanup-pass. - When you want a review of everything you changed, run
pijul diff --channel cleanup-base. - Use
pijul log --channel cleanup-baseandpijul log --channel cleanup-passif you want to compare recorded changes by channel.
This gives you a safer place to do a lot of cleanup before reviewing the full pass together.
Feature merge/unmerge workflow with a baseline channel
See Pijul feature channel merge and unmerge workflows for a simple recipe that uses a cleaner baseline such as mainer-main, feature channels such as feature-login, and an integration channel such as staging.