code hosting on jujutsu
A branch is a pointer. Your work is not.
Push with jj git push and review opens itself. The change keeps one identity through every amend, rebase, and force-push.
jj git clone https://dogfood.sh/snow/core.gitjj new main -m 'Cache shortest-unique prefixes per repo' Working copy now at: vlrxqmpd 8f21c0ab (empty) Cache shortest-unique prefixes Parent commit : mrukztqx c40d1f8 main | Drop the legacy branch-tip fallback jj status Working copy changes: M crates/store/prefix.rs A crates/store/prefix_cache.rs jj git push --change @ Changes to push to origin: Add bookmark push-vlrxqmpd to 8f21c0ab remote: change vlrx is open for review remote: /snow/core/changes/vlrx jj log -r 'stack(@)' ◆ zmltxruqpvks conflict in revset.rs ○ wpqvkrtnmzox approved @ vlrxqmpdtwzk open for review ┴─ main c40d1f8
Push a bookmark, the change opens for review. No web form, no PR button.
Live
public activity- snow/coresnow pushed tofix: 500 error because of database is patchedyuzpxzopsouq1mo
- snow/coresnow openedfix: 500 error because of database is patchedyuzpxzopsouq1mo
- snow/coresnow pushed tofix(db): bound every pool liveness ping so a dead connection cannot strand its slotsszylowxqlqt1mo
- snow/coresnow openedfix(db): bound every pool liveness ping so a dead connection cannot strand its slotsszylowxqlqt1mo
- snow/coresnow mergedfeat: given a new redesign and emulated terminal homepagerxkspqmsoknz1mo
- snow/coresnow pushed tofeat: given a new redesign and emulated terminal homepagerxkspqmsoknz1mo
- snow/coresnow pushed tofeat: given a new redesign and emulated terminal homepagerxkspqmsoknz1mo
- snow/coresnow pushed tofeat: given a new redesign and emulated terminal homepagerxkspqmsoknz1mo
- snow/coresnow openedfeat: given a new redesign and emulated terminal homepagerxkspqmsoknz1mo
- snow/coresnow pushed toattribute changes to their author, and index SSH pushesowzkxxuxzulu1mo
- snow/coresnow openedattribute changes to their author, and index SSH pushesowzkxxuxzulu1mo
- snow/coresnow pushed toinitial commit againqtlpvpwrzqyn1mo
Every row is a change id. The commit behind it may be rewritten; the row will not move.
Why switch
Four things a branch pointer cannot represent.- detached HEAD, lost workevery state is recoverable
- rebase hell across a stackstacks rebase themselves
- merge conflicts block youconflicts are just a state
- force-push rewrites historystable ids survive rewrites
Explore public repos
No account needed to read a repo, a change, or a stack.Stop fighting your version control.
Bring your team to a forge that matches how you already work.