README.md

A Laravel Zero app to test Pijul

This is a Laravel Zero app to test Pijul, a distributed version control system.

laravel-zero.com

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 --message if 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 --short for a summary view.
  • pijul log --channel my-work and pijul log --channel review-main to compare recorded changes by channel.
  • pijul change <hash> to inspect an individual recorded change in detail.
  • Plain pijul diff still 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-base unchanged 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-base and pijul log --channel cleanup-pass if 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.

Personal first-time setup notes

See First-Time Setup Notes for Nest and Pijul.