Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
.. framework git workflow jj-config.md jj-init-bare.md jj-init-colocate.md rad-auth-errors.md rad-auth.md rad-block.md rad-checkout-repo-config-linux.md rad-checkout-repo-config-macos.md rad-checkout.md rad-clean.md rad-clone-all.md rad-clone-bare.md rad-clone-connect.md rad-clone-directory.md rad-clone-partial-fail.md rad-clone-scope.md rad-clone-unknown.md rad-clone.md rad-cob-log.md rad-cob-migrate.md rad-cob-multiset rad-cob-multiset.md rad-cob-operations.md rad-cob-show.md rad-cob-update-identity.md rad-cob-update.md rad-config.md rad-diff.md rad-fetch.md rad-fork.md rad-help.md rad-id-collaboration.md rad-id-conflict.md rad-id-multi-delegate.md rad-id-private.md rad-id-threshold-soft-fork.md rad-id-threshold.md rad-id-unauthorized-delegate.md rad-id-unknown-field.md rad-id-update-delete-field.md rad-id.md rad-inbox.md rad-init-detached-head.md rad-init-existing-bare.md rad-init-existing.md rad-init-no-git.md rad-init-no-seed.md rad-init-private-clone-seed.md rad-init-private-clone.md rad-init-private-no-seed.md rad-init-private-seed.md rad-init-private.md rad-init-sync-not-connected.md rad-init-sync-preferred.md rad-init-sync-timeout.md rad-init-sync.md rad-init-with-existing-remote.md rad-init.md rad-inspect-noauth.md rad-inspect.md rad-issue-list.md rad-issue.md rad-key-mismatch.md rad-merge-after-update.md rad-merge-no-ff.md rad-merge-via-push.md rad-node.md rad-patch-ahead-behind.md rad-patch-change-base.md rad-patch-checkout-force.md rad-patch-checkout-revision.md rad-patch-checkout.md rad-patch-delete.md rad-patch-detached-head.md rad-patch-diff.md rad-patch-draft.md rad-patch-edit.md rad-patch-fetch-1.md rad-patch-fetch-2.md rad-patch-jj.md rad-patch-merge-draft.md rad-patch-open-explore.md rad-patch-pull-update.md rad-patch-revert-merge.md rad-patch-update.md rad-patch-via-push.md rad-patch.md rad-publish.md rad-push-and-pull-patches.md rad-remote.md rad-review-by-hunk.md rad-seed-and-follow.md rad-seed-many.md rad-seed-policy-allow-no-scope.md rad-seed-scope.md rad-self.md rad-sync-without-node.md rad-sync.md rad-unseed-many.md rad-unseed.md rad-warn-old-nodes.md rad-watch.md
heartwood crates radicle-cli examples rad-patch-jj.md

The scenario in this file is a variation of the one in rad-patch.md, but uses Jujutsu.

$ touch REQUIREMENTS
$ jj describe --message "Define power requirements"
$ jj status
Working copy changes:
A REQUIREMENTS
Working copy  (@) : lvxkkpmk a6ea7b72 Define power requirements
Parent commit (@-): xpnzuzwn f2de534b master master@rad | Second commit
$ jj new

Just making sure that Git sees the Change ID…

$ git cat-file commit a6ea7b72
tree [..]
parent f2de534b[..]
author Test User <test.user@example.com> 981147906 +0700
committer Test User <test.user@example.com> 981147906 +0700
change-id lvxkkpmk[..]

Define power requirements

As of 2025-05 we can’t use jj to do push with options directly, see:

However, since we initialized Jujutusu to colocate with Git, we can just use Git to push.

$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
✓ Patch 1e31055ed3c41a48f2a71ba5317feb863b089700 opened
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches

It will now be listed as one of the open patches.

$ rad patch
╭─────────────────────────────────────────────────────────────────────────────────────────╮
│ ●  ID       Title                      Author         Reviews  Head     +   -   Updated │
├─────────────────────────────────────────────────────────────────────────────────────────┤
│ ●  1e31055  Define power requirements  alice   (you)  -        a6ea7b7  +0  -0  now     │
╰─────────────────────────────────────────────────────────────────────────────────────────╯

Let’s also create a bookmark for it.

$ jj bookmark create flux-capacitor-power
$ rad patch show 1e31055 -p
╭──────────────────────────────────────────────────────────╮
│ Title    Define power requirements                       │
│ Patch    1e31055[..                             ]        │
│ Author   alice (you)                                     │
│ Head     a6ea7b7[..                             ]        │
│ Base     f2de534[..                             ]        │
│ Commits  ahead 1, behind 0                               │
│ Status   open                                            │
│                                                          │
│ See details.                                             │
├──────────────────────────────────────────────────────────┤
│ a6ea7b7 Define power requirements                        │
├──────────────────────────────────────────────────────────┤
│ ● Revision 1e31055 @ [..   ]..a6ea7b7 by alice (you) now │
╰──────────────────────────────────────────────────────────╯

commit a6ea7b7[..]
Author: Test User <test.user@example.com>
Date:   Sat Feb 3 04:05:06 2001 +0700

    Define power requirements

diff --git a/REQUIREMENTS b/REQUIREMENTS
new file mode 100644
index 0000000..e69de29

The scenario in this file is a variation of the one in `rad-patch.md`,
but uses Jujutsu.

```
$ touch REQUIREMENTS
$ jj describe --message "Define power requirements"
$ jj status
Working copy changes:
A REQUIREMENTS
Working copy  (@) : lvxkkpmk a6ea7b72 Define power requirements
Parent commit (@-): xpnzuzwn f2de534b master master@rad | Second commit
```

```
$ jj new
```

Just making sure that Git sees the Change ID…

```
$ git cat-file commit a6ea7b72
tree [..]
parent f2de534b[..]
author Test User <test.user@example.com> 981147906 +0700
committer Test User <test.user@example.com> 981147906 +0700
change-id lvxkkpmk[..]

Define power requirements
```

As of 2025-05 we can't use `jj` to do push with options directly, see:

 - <https://github.com/jj-vcs/jj/issues/4075>
 - <https://github.com/jj-vcs/jj/pull/2098>

However, since we initialized Jujutusu to colocate with Git, we can just use
Git to push.

``` (stderr)
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
✓ Patch 1e31055ed3c41a48f2a71ba5317feb863b089700 opened
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```

It will now be listed as one of the open patches.

```
$ rad patch
╭─────────────────────────────────────────────────────────────────────────────────────────╮
│ ●  ID       Title                      Author         Reviews  Head     +   -   Updated │
├─────────────────────────────────────────────────────────────────────────────────────────┤
│ ●  1e31055  Define power requirements  alice   (you)  -        a6ea7b7  +0  -0  now     │
╰─────────────────────────────────────────────────────────────────────────────────────────╯
```

Let's also create a bookmark for it.

```
$ jj bookmark create flux-capacitor-power
```

```
$ rad patch show 1e31055 -p
╭──────────────────────────────────────────────────────────╮
│ Title    Define power requirements                       │
│ Patch    1e31055[..                             ]        │
│ Author   alice (you)                                     │
│ Head     a6ea7b7[..                             ]        │
│ Base     f2de534[..                             ]        │
│ Commits  ahead 1, behind 0                               │
│ Status   open                                            │
│                                                          │
│ See details.                                             │
├──────────────────────────────────────────────────────────┤
│ a6ea7b7 Define power requirements                        │
├──────────────────────────────────────────────────────────┤
│ ● Revision 1e31055 @ [..   ]..a6ea7b7 by alice (you) now │
╰──────────────────────────────────────────────────────────╯

commit a6ea7b7[..]
Author: Test User <test.user@example.com>
Date:   Sat Feb 3 04:05:06 2001 +0700

    Define power requirements

diff --git a/REQUIREMENTS b/REQUIREMENTS
new file mode 100644
index 0000000..e69de29

```