rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwood02c9b30a6428b33ccd318e797c4cac6477d3cd1e
{
"request": "trigger",
"version": 1,
"event_type": "patch",
"repository": {
"id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
"name": "heartwood",
"description": "Radicle Heartwood Protocol & Stack",
"private": false,
"default_branch": "master",
"delegates": [
"did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
"did:key:z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW",
"did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
"did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
]
},
"action": "Created",
"patch": {
"id": "2b3e1112fb7be62b6d03e2a6bbf596b11bdaeb49",
"author": {
"id": "did:key:z6MkrnXJWPndzPBxpBUaE3L3BnMeWpaQdT1V1FvkoCPFSFS3",
"alias": null
},
"title": "Govern default branch through canonical references",
"state": {
"status": "draft",
"conflicts": []
},
"before": "66ab7f35c933278b932657936ce0c52a02962302",
"after": "02c9b30a6428b33ccd318e797c4cac6477d3cd1e",
"commits": [
"02c9b30a6428b33ccd318e797c4cac6477d3cd1e",
"ad89ac90f32ab22162e03da82298a3120e4d6bd3",
"661cec1b7719b283abbc8b042fba0fcfbfe174d8",
"c0c49d353eafd542c35e9d05fcda61e0ccfeb70f",
"420484db6fce21517fb2098184a8a085041ae22a",
"27105c18109c6a60e741c371ce8d1c8e3555b968",
"e7579d8a5ff5a75c5050e9c9cbd0a2e1ee861df7",
"fa107661e100e30fde43f05fa1d2fb883481aa77"
],
"target": "71a91042d96bb994c4cd4311d85f5cd1a6311b4e",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "2b3e1112fb7be62b6d03e2a6bbf596b11bdaeb49",
"author": {
"id": "did:key:z6MkrnXJWPndzPBxpBUaE3L3BnMeWpaQdT1V1FvkoCPFSFS3",
"alias": null
},
"description": "",
"base": "66ab7f35c933278b932657936ce0c52a02962302",
"oid": "02c9b30a6428b33ccd318e797c4cac6477d3cd1e",
"timestamp": 1785738936
}
]
}
}
{
"response": "triggered",
"run_id": {
"id": "ef8f0ad1-1ed5-40c5-b0cf-d83b2b2f2043"
},
"info_url": "https://cci.rad.levitte.org//ef8f0ad1-1ed5-40c5-b0cf-d83b2b2f2043.html"
}
Started at: 2026-08-03 08:35:50.227961+02:00
Commands:
$ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 .
✓ Creating checkout in ./...
✓ Remote cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT added
✓ Remote-tracking branch cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/master created for z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT
✓ Remote cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW added
✓ Remote-tracking branch cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW/master created for z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW
✓ Remote fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM added
✓ Remote-tracking branch fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM/master created for z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM
✓ Remote erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz added
✓ Remote-tracking branch erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz/master created for z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz
✓ Remote lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz added
✓ Remote-tracking branch lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz/master created for z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz
✓ Repository successfully cloned under /opt/radcis/ci.rad.levitte.org/cci/state/ef8f0ad1-1ed5-40c5-b0cf-d83b2b2f2043/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 187 issues · 43 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ rad patch checkout 2b3e1112fb7be62b6d03e2a6bbf596b11bdaeb49
✓ Switched to branch patch/2b3e111 at revision 2b3e111
✓ Branch patch/2b3e111 setup to track rad/patches/2b3e1112fb7be62b6d03e2a6bbf596b11bdaeb49
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout 02c9b30a6428b33ccd318e797c4cac6477d3cd1e
HEAD is now at 02c9b30a squash! radicle: Introduce identity document version 2 with enforced quorum
Exit code: 0
$ rad patch show 2b3e1112fb7be62b6d03e2a6bbf596b11bdaeb49 -p
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ Title Govern default branch through canonical references │
│ Patch 2b3e1112fb7be62b6d03e2a6bbf596b11bdaeb49 │
│ Author yorgos-laptop z6MkrnX…CPFSFS3 │
│ Head 02c9b30a6428b33ccd318e797c4cac6477d3cd1e │
│ Base 66ab7f35c933278b932657936ce0c52a02962302 │
│ Branches patch/2b3e111 │
│ Commits ahead 8, behind 35 │
│ Status draft │
├───────────────────────────────────────────────────────────────────────────────────────┤
│ 02c9b30 squash! radicle: Introduce identity document version 2 with enforced quorum │
│ ad89ac9 radicle: Introduce identity document version 2 with enforced quorum │
│ 661cec1 squash! radicle: Govern default branch via canonical refs │
│ c0c49d3 squash! radicle: Govern default branch via canonical refs │
│ 420484d squash! radicle: Govern default branch via canonical refs │
│ 27105c1 squash! radicle: Govern default branch via canonical refs │
│ e7579d8 squash! radicle: Govern default branch via canonical refs │
│ fa10766 radicle: Govern default branch via canonical refs │
├───────────────────────────────────────────────────────────────────────────────────────┤
│ ● Revision 2b3e111 @ 66ab7f3..02c9b30 by yorgos-laptop z6MkrnX…CPFSFS3 17 seconds ago │
╰───────────────────────────────────────────────────────────────────────────────────────╯
commit 02c9b30a6428b33ccd318e797c4cac6477d3cd1e
Author: Yorgos Saslis <yorgos.work@proton.me>
Date: Thu Jul 30 16:50:31 2026 +0000
squash! radicle: Introduce identity document version 2 with enforced quorum
== cli: Regenerate identity doc examples for v2
The version bump changes every id derived from the identity root, leaving
the CLI snapshots and hard-coded repository ids stale.
Regenerate the example snapshots and command-test ids for identity
document version 2; dumps now also carry the top-level `"version": 2`.
diff --git a/crates/radicle-cli/examples/git/git-fetch.md b/crates/radicle-cli/examples/git/git-fetch.md
index 8a9aca0b28..4bfaecdcbd 100644
--- a/crates/radicle-cli/examples/git/git-fetch.md
+++ b/crates/radicle-cli/examples/git/git-fetch.md
@@ -13,7 +13,7 @@ f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
``` (stderr)
$ git fetch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] alice/1 -> alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/alice/1
```
diff --git a/crates/radicle-cli/examples/git/git-push-amend.md b/crates/radicle-cli/examples/git/git-push-amend.md
index 5e62101daa..63eea87f07 100644
--- a/crates/radicle-cli/examples/git/git-push-amend.md
+++ b/crates/radicle-cli/examples/git/git-push-amend.md
@@ -1,11 +1,11 @@
``` ~alice
-$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 -q
-f2d51155f34a41adffb26dae04a5ce0feb5bcd95
+$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G -q
+03c1bd2e277d5d4850a0021f954c188155f332d5
```
``` ~bob
$ rad sync --fetch
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -23,6 +23,6 @@ $ git commit --amend -m "Neue Änderungen" --allow-empty -q
$ git push rad master -f
✓ Canonical reference refs/heads/master updated to target commit 9170c8795d3a78f0381a0ffafb20ea69fb0f5b6b
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ fb25886...9170c87 master -> master (forced update)
```
diff --git a/crates/radicle-cli/examples/git/git-push-canonical-annotated-tags.md b/crates/radicle-cli/examples/git/git-push-canonical-annotated-tags.md
index 766f10669a..a00b753c43 100644
--- a/crates/radicle-cli/examples/git/git-push-canonical-annotated-tags.md
+++ b/crates/radicle-cli/examples/git/git-push-canonical-annotated-tags.md
@@ -50,9 +50,9 @@ $ rad id update --title "Add canonical reference rules" --payload xyz.radicle.cr
✓ Identity revision [..] created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add canonical reference rules │
-│ Revision 9ca9e8efdf129b169029274c08412683f8ea897a │
-│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
-│ Blob 907000901ea67d8b4653252a5aa52a916ee433e6 │
+│ Revision 0ae3d527cf77ceb980ffc7db8074201233957d71 │
+│ Parent 86399084097fb674569f5bc5847da609ab91aa9f │
+│ Blob 4d4f5c7c7577730f96de5807e937831333d59458 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -60,8 +60,9 @@ $ rad id update --title "Add canonical reference rules" --payload xyz.radicle.cr
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,22 +1,30 @@
+@@ -1,23 +1,31 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -105,7 +106,7 @@ tag
$ git push rad --tags
✓ Canonical reference refs/tags/v1.0-hotfix updated to target tag ac51a0746a5e8311829bc481202909a1e3acc0c2
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v1.0-hotfix -> v1.0-hotfix
```
@@ -121,7 +122,7 @@ On the other side, Bob performs a fetch and now has the tags locally:
``` ~bob (stderr)
$ cd heartwood
$ git fetch rad
-From rad://zHb72m63NBufHR7jmZi732BBT6j6
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
* [new tag] v1.0-hotfix -> rad/tags/v1.0-hotfix
* [new tag] v1.0-hotfix -> v1.0-hotfix
```
@@ -141,7 +142,7 @@ the `threshold` to `2` for the `refs/tags/*` rule:
``` ~bob
$ rad remote add z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --name alice
✓ Follow policy updated for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -151,14 +152,14 @@ $ git push rad master
``` ~alice
$ rad remote add z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --name bob
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote bob added
✓ Remote-tracking branch bob/master created for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
-d7a98a971a2f89a31f393caa8426627645ea60ab
+ed314851757c39be4edf1f87b7d7beab0ba3d62f
$ rad id update --title "Update canonical reference rules" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/tags/*": { "threshold": 2, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" } }' -q
-e4aed637bb91432ac851e4b1e923ae03c7133285
+f3137e0cb6426f325779947c9ffc619b0f3f225d
```
**Note:** here we have to specify all the rules again to update the `threshold`.
@@ -167,10 +168,10 @@ editor instead.
``` ~bob
$ rad sync -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-$ rad id accept e4aed637bb91432ac851e4b1e923ae03c7133285 -q
+$ rad id accept f3137e0cb6426f325779947c9ffc619b0f3f225d -q
```
When Bob creates a new tag and pushes it, we see that there's a warning that
@@ -189,7 +190,7 @@ $ git push rad --tags
warn: could not determine target for canonical reference 'refs/tags/v2.0', no object with at least 2 vote(s) found (threshold not met)
warn: it is recommended to find an object (either commit or tag) to agree upon
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] v1.0-hotfix -> v1.0-hotfix
* [new tag] v2.0 -> v2.0
```
@@ -199,7 +200,7 @@ it:
``` ~alice (stderr)
$ git fetch bob
-From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] v1.0-hotfix -> bob/tags/v1.0-hotfix
* [new tag] v2.0 -> bob/tags/v2.0
```
@@ -215,7 +216,7 @@ $ git tag v2.0 bob/tags/v2.0
$ git push rad --tags
✓ Canonical reference refs/tags/v2.0 updated to target tag 89f935f27a16f8ed97915ade4accab8fe48057aa
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v2.0 -> v2.0
```
@@ -232,6 +233,6 @@ $ git tag qa/v2.1
$ git push rad --tags
✓ Canonical reference refs/tags/qa/v2.1 updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] qa/v2.1 -> qa/v2.1
```
diff --git a/crates/radicle-cli/examples/git/git-push-canonical-branch.md b/crates/radicle-cli/examples/git/git-push-canonical-branch.md
index 2e732ce425..d39a159d40 100644
--- a/crates/radicle-cli/examples/git/git-push-canonical-branch.md
+++ b/crates/radicle-cli/examples/git/git-push-canonical-branch.md
@@ -1,11 +1,11 @@
``` ~alice
$ rad id update --title "Add canonical branch for releases" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/heads/releases/*": { "threshold": 1, "allow": [ "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk" ] }, "refs/tags/*": { "threshold": 1, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" }}'
-✓ Identity revision a66935d5bd3a1924400a13e290793f0ae9f17b8f created
+✓ Identity revision eb3f118684b846c352e6b7f2bb97bf8ac7edad2d created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add canonical branch for releases │
-│ Revision a66935d5bd3a1924400a13e290793f0ae9f17b8f │
-│ Parent e4aed637bb91432ac851e4b1e923ae03c7133285 │
-│ Blob 5c3c7f0fc6e44f12b13352994031834a4e7fe92a │
+│ Revision eb3f118684b846c352e6b7f2bb97bf8ac7edad2d │
+│ Parent f3137e0cb6426f325779947c9ffc619b0f3f225d │
+│ Blob ec43d69ba56e3595f19d66fe7b1fca690491e477 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State active │
│ Quorum no │
@@ -14,8 +14,9 @@ $ rad id update --title "Add canonical branch for releases" --payload xyz.radicl
│ ? did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk bob │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,31 +1,37 @@
+@@ -1,32 +1,38 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -58,10 +59,10 @@ $ rad id update --title "Add canonical branch for releases" --payload xyz.radicl
``` ~bob
$ cd heartwood
$ rad sync -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-$ rad id accept a66935d5bd3a1924400a13e290793f0ae9f17b8f -q
+$ rad id accept eb3f118684b846c352e6b7f2bb97bf8ac7edad2d -q
```
Bob immediately pushes a branch that matches the rule, thus populating and
@@ -77,13 +78,13 @@ $ git commit --allow-empty --message "Release notes for version 2"
$ git push -u rad releases/2
✓ Canonical reference refs/heads/releases/2 updated to target commit afec366785ed3651cdc66975c0fec41866c9ce62
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new branch] releases/2 -> releases/2
```
``` ~alice
$ rad sync -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ git ls-remote rad
diff --git a/crates/radicle-cli/examples/git/git-push-canonical-lightweight-tags.md b/crates/radicle-cli/examples/git/git-push-canonical-lightweight-tags.md
index cb6977ba5b..b42d7fd8b4 100644
--- a/crates/radicle-cli/examples/git/git-push-canonical-lightweight-tags.md
+++ b/crates/radicle-cli/examples/git/git-push-canonical-lightweight-tags.md
@@ -50,9 +50,9 @@ $ rad id update --title "Add canonical reference rules" --payload xyz.radicle.cr
✓ Identity revision [..] created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add canonical reference rules │
-│ Revision 9ca9e8efdf129b169029274c08412683f8ea897a │
-│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
-│ Blob 907000901ea67d8b4653252a5aa52a916ee433e6 │
+│ Revision 0ae3d527cf77ceb980ffc7db8074201233957d71 │
+│ Parent 86399084097fb674569f5bc5847da609ab91aa9f │
+│ Blob 4d4f5c7c7577730f96de5807e937831333d59458 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -60,8 +60,9 @@ $ rad id update --title "Add canonical reference rules" --payload xyz.radicle.cr
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,22 +1,30 @@
+@@ -1,23 +1,31 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -103,7 +104,7 @@ $ git tag v1.0-hotfix
$ git push rad --tags
✓ Canonical reference refs/tags/v1.0-hotfix updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v1.0-hotfix -> v1.0-hotfix
```
@@ -119,7 +120,7 @@ On the other side, Bob performs a fetch and now has the tags locally:
``` ~bob (stderr)
$ cd heartwood
$ git fetch rad
-From rad://zHb72m63NBufHR7jmZi732BBT6j6
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
* [new tag] v1.0-hotfix -> rad/tags/v1.0-hotfix
* [new tag] v1.0-hotfix -> v1.0-hotfix
```
@@ -139,7 +140,7 @@ the `threshold` to `2` for the `refs/tags/*` rule:
``` ~bob
$ rad remote add z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --name alice
✓ Follow policy updated for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -149,14 +150,14 @@ $ git push rad master
``` ~alice
$ rad remote add z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --name bob
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote bob added
✓ Remote-tracking branch bob/master created for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
-d7a98a971a2f89a31f393caa8426627645ea60ab
+ed314851757c39be4edf1f87b7d7beab0ba3d62f
$ rad id update --title "Update canonical reference rules" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/tags/*": { "threshold": 2, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" } }' -q
-e4aed637bb91432ac851e4b1e923ae03c7133285
+f3137e0cb6426f325779947c9ffc619b0f3f225d
```
**Note:** here we have to specify all the rules again to update the `threshold`.
@@ -165,10 +166,10 @@ editor instead.
``` ~bob
$ rad sync -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-$ rad id accept e4aed637bb91432ac851e4b1e923ae03c7133285 -q
+$ rad id accept f3137e0cb6426f325779947c9ffc619b0f3f225d -q
```
When Bob creates a new tag and pushes it, we see that there's a warning that
@@ -180,7 +181,7 @@ $ git push rad --tags
warn: could not determine target for canonical reference 'refs/tags/v2.0', no object with at least 2 vote(s) found (threshold not met)
warn: it is recommended to find an object (either commit or tag) to agree upon
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] v1.0-hotfix -> v1.0-hotfix
* [new tag] v2.0 -> v2.0
```
@@ -190,7 +191,7 @@ it:
``` ~alice (stderr)
$ git fetch bob
-From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] v1.0-hotfix -> bob/tags/v1.0-hotfix
* [new tag] v2.0 -> bob/tags/v2.0
```
@@ -206,7 +207,7 @@ $ git tag v2.0 bob/tags/v2.0
$ git push rad --tags
✓ Canonical reference refs/tags/v2.0 updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v2.0 -> v2.0
```
@@ -223,6 +224,6 @@ $ git tag qa/v2.1
$ git push rad --tags
✓ Canonical reference refs/tags/qa/v2.1 updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] qa/v2.1 -> qa/v2.1
```
diff --git a/crates/radicle-cli/examples/git/git-push-canonical-symbolic-ref.md b/crates/radicle-cli/examples/git/git-push-canonical-symbolic-ref.md
index 7a8955c503..0b6dfe946b 100644
--- a/crates/radicle-cli/examples/git/git-push-canonical-symbolic-ref.md
+++ b/crates/radicle-cli/examples/git/git-push-canonical-symbolic-ref.md
@@ -9,9 +9,9 @@ $ rad id update --title "Add canonical symbolic ref" --payload xyz.radicle.crefs
✓ Identity revision [..] created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add canonical symbolic ref │
-│ Revision d1befa2a12c7d4e6e6021462e97b0f981cb1b837 │
-│ Parent a66935d5bd3a1924400a13e290793f0ae9f17b8f │
-│ Blob b330066f27e70c43c7e6bc3884fec01ee8c74cf0 │
+│ Revision 3b69261aa226ccd06f7a5fc262b6d72f738ee46a │
+│ Parent eb3f118684b846c352e6b7f2bb97bf8ac7edad2d │
+│ Blob 6f73250bb6f6bd8b20d5ad257da2ce4d6c1937dd │
│ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
│ State active │
│ Quorum no │
@@ -20,8 +20,9 @@ $ rad id update --title "Add canonical symbolic ref" --payload xyz.radicle.crefs
│ ? did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,37 +1,37 @@
+@@ -1,38 +1,38 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -65,10 +66,10 @@ Alice is happy with the new revision and accepts it.
``` ~alice
$ rad sync -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-$ rad id accept d1befa2a12c7d4e6e6021462e97b0f981cb1b837 -q
+$ rad id accept 3b69261aa226ccd06f7a5fc262b6d72f738ee46a -q
```
As usual, alice works on "master".
@@ -84,7 +85,7 @@ And updating the canonical reference for "master" also works as usual.
$ git push rad
✓ Canonical reference refs/heads/master updated to target commit 4dc510ddea5fd66499d1d2e996b8a97c8d57be54
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..4dc510d master -> master
```
@@ -106,7 +107,7 @@ Of course, she can also fetch it to her working copy as usual.
``` ~alice (stderr)
$ git fetch rad
-From rad://zHb72m63NBufHR7jmZi732BBT6j6
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
* [new branch] main -> rad/main
* [new branch] releases/2 -> rad/releases/2
* [new tag] qa/v2.1 -> rad/tags/qa/v2.1
@@ -117,7 +118,7 @@ Bob fetches Alice's changes.
``` ~bob
$ rad sync -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -126,7 +127,7 @@ And, sure enough, there is the new branch just as he wanted it.
``` ~bob (stderr)
$ git fetch rad
-From rad://zHb72m63NBufHR7jmZi732BBT6j6
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
* [new branch] main -> rad/main
f2de534..4dc510d master -> rad/master
```
diff --git a/crates/radicle-cli/examples/git/git-push-converge.md b/crates/radicle-cli/examples/git/git-push-converge.md
index e45f7e69f2..771baafc70 100644
--- a/crates/radicle-cli/examples/git/git-push-converge.md
+++ b/crates/radicle-cli/examples/git/git-push-converge.md
@@ -5,8 +5,8 @@ First we add our new delegates, Bob & Eve, to our repo, while also setting the
`threshold` to `3`:
``` ~alice
-$ rad id update --title "Add Bob & Eve" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --threshold 3 --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 -q
-5141e8b058d25adefc42c4e1c95c40c381e7fb64
+$ rad id update --title "Add Bob & Eve" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --threshold 3 --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G -q
+5fedc54a1814be92fc6f0e296e6ce4af236fb6cf
```
Bob and Eve will fetch the changes to ensure they hear about their delegate
@@ -14,7 +14,7 @@ responsibilities:
``` ~bob
$ rad sync --fetch
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -22,7 +22,7 @@ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential se
``` ~eve
$ rad sync --fetch
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -63,13 +63,13 @@ found` error is showing up:
``` ~alice
$ rad remote add did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --name bob
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
✓ Remote bob added
✓ Remote-tracking branch bob/master created for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ rad remote add did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --name eve
✓ Follow policy updated for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (eve)
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
✓ Remote eve added
✓ Remote-tracking branch eve/master created for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
@@ -97,14 +97,14 @@ $ git push rad -f
warn: could not determine target for canonical reference 'refs/heads/master', no object with at least 3 vote(s) found (threshold not met)
warn: it is recommended to find an object (either commit or tag) to agree upon
✓ Synced with 2 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
d09e634..0f9bd80 master -> master
```
``` ~bob
$ rad remote add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --name alice
✓ Follow policy updated for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -121,7 +121,7 @@ become the canonical `master`.
$ git push rad
✓ Canonical reference refs/heads/master updated to target commit 3a75f66dd0020c9a0355cc6ec21f15de989e2001
✓ Synced with 2 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
2a37862..0f9bd80 master -> master
```
@@ -130,7 +130,7 @@ Once Eve also resets to the merge commits, the canonical `master` is set to this
``` ~eve
$ rad remote add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --name alice
✓ Follow policy updated for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -142,6 +142,6 @@ HEAD is now at 0f9bd80 Merge remote-tracking branch 'eve/master'
$ git push rad
✓ Canonical reference refs/heads/master updated to target commit 0f9bd8035c04b3f73f5408e73e8454879b20800b
✓ Synced with 2 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
3a75f66..0f9bd80 master -> master
```
diff --git a/crates/radicle-cli/examples/git/git-push-delete.md b/crates/radicle-cli/examples/git/git-push-delete.md
index a2bc504b69..3ae52338b3 100644
--- a/crates/radicle-cli/examples/git/git-push-delete.md
+++ b/crates/radicle-cli/examples/git/git-push-delete.md
@@ -1,7 +1,7 @@
Finally, we can also delete branches with `git push`:
```
-$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/*
+$ git ls-remote rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/*
145e1e69bef3ad93d14946ea212249c2fa9b9828 refs/heads/alice/1
ddcc1f164eacfd7dba41da9bff3261da3ee79fd3 refs/heads/alice/2
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
@@ -9,12 +9,12 @@ f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad :alice/1
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- [deleted] alice/1
```
```
-$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/*
+$ git ls-remote rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/*
ddcc1f164eacfd7dba41da9bff3261da3ee79fd3 refs/heads/alice/2
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
```
@@ -23,13 +23,13 @@ f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
$ git checkout alice/2
Switched to a new branch 'alice/2'
$ git push rad HEAD:refs/patches
-✓ Patch a923044df9d0fedbe5cabe0b0e088fbbc7b18c4f opened
+✓ Patch fdb6ac2eb47ca76c9832dbc078d8ad4ef7cc17ee opened
To [..]
* [new reference] HEAD -> refs/patches
```
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad alice/2 -d
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- [deleted] alice/2
```
diff --git a/crates/radicle-cli/examples/git/git-push-diverge.md b/crates/radicle-cli/examples/git/git-push-diverge.md
index 99dd530f52..36f9f51f7b 100644
--- a/crates/radicle-cli/examples/git/git-push-diverge.md
+++ b/crates/radicle-cli/examples/git/git-push-diverge.md
@@ -4,15 +4,15 @@ canonical head.
First we add a second delegate, Bob, to our repo:
``` ~alice
-$ rad id update --title "Add Bob" --description "" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 -q
-f2d51155f34a41adffb26dae04a5ce0feb5bcd95
+$ rad id update --title "Add Bob" --description "" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G -q
+03c1bd2e277d5d4850a0021f954c188155f332d5
```
Then, as Bob, we commit some code on top of the canonical head:
``` ~bob
$ rad sync --fetch
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
$ rad inspect --delegates
@@ -46,7 +46,7 @@ $ git push rad
warn: could not determine target commit for canonical reference 'refs/heads/master', found diverging commits 2e8758fc512cbdef298c86feddff5ba3280e94b4 and 319a7dc3b195368ded4b099f8c90bbb80addccd3, with base commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 and threshold 1
warn: it is recommended to find a commit to agree upon
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..2e8758f master -> master
```
@@ -63,7 +63,7 @@ f2de534 Second commit
``` ~alice RAD_SOCKET=/dev/null (stderr)
$ git push rad -f
✓ Canonical reference refs/heads/master updated to target commit f6cff86594495e9beccfeda7c20173e55c1dd9fc
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 2e8758f...f6cff86 master -> master (forced update)
```
@@ -76,6 +76,6 @@ $ git reset --hard HEAD^ -q
``` ~alice RAD_SOCKET=/dev/null (stderr)
$ git push -f
✓ Canonical reference refs/heads/master updated to target commit 319a7dc3b195368ded4b099f8c90bbb80addccd3
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ f6cff86...319a7dc master -> master (forced update)
```
diff --git a/crates/radicle-cli/examples/git/git-push-force-with-lease.md b/crates/radicle-cli/examples/git/git-push-force-with-lease.md
index c9a849e65b..70a88840b4 100644
--- a/crates/radicle-cli/examples/git/git-push-force-with-lease.md
+++ b/crates/radicle-cli/examples/git/git-push-force-with-lease.md
@@ -18,7 +18,7 @@ the last time you pushed.
$ git commit --amend -m "Neue Änderungen" --allow-empty -q
$ git push rad master --force-with-lease
✓ Canonical reference refs/heads/master updated to target commit 9170c8795d3a78f0381a0ffafb20ea69fb0f5b6b
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ fb25886...9170c87 master -> master (forced update)
```
@@ -29,7 +29,7 @@ value, to `--force-push-lease`:
$ git commit --amend -m "Noch mehr Änderungen" --allow-empty -q
$ git push rad master --force-with-lease=master
✓ Canonical reference refs/heads/master updated to target commit 1e4213811eb4ce67360e4a0222cab81ad11a7ffe
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 9170c87...1e42138 master -> master (forced update)
```
@@ -39,7 +39,7 @@ As well as the named reference, and its expected value:
$ git commit --amend -m "Even more changes" --allow-empty -q
$ git push rad master --force-with-lease=master:1e4213811eb4ce67360e4a0222cab81ad11a7ffe
✓ Canonical reference refs/heads/master updated to target commit c4b74ef30953598852a82e0cd22b2ebb0d8d9e18
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 1e42138...c4b74ef master -> master (forced update)
```
@@ -52,9 +52,9 @@ $ git commit --amend -m "And even more" --allow-empty -q
``` (stderr) (fail)
$ git push rad master --force-with-lease=master:1e4213811eb4ce67360e4a0222cab81ad11a7ffe
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
! [rejected] master -> master (stale info)
-error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
```
And if we do not supply the commit, it should also fail, since this implies that
@@ -66,16 +66,16 @@ $ git commit --amend -m "And even more" --allow-empty -q
``` (stderr) (fail)
$ git push rad master --force-with-lease=master:
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
! [rejected] master -> master (stale info)
-error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
```
So, let's create a new branch:
``` (stderr)
$ git push rad master:dev --force-with-lease=dev:
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] master -> dev
```
diff --git a/crates/radicle-cli/examples/git/git-push-rollback.md b/crates/radicle-cli/examples/git/git-push-rollback.md
index f1b515b180..4a0c09a091 100644
--- a/crates/radicle-cli/examples/git/git-push-rollback.md
+++ b/crates/radicle-cli/examples/git/git-push-rollback.md
@@ -4,15 +4,15 @@ First we add a second delegate, Bob, to our repo. We also change the threshold
to 2:
``` ~alice
-$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --threshold 2 -q
-ff50694a35d2a891413cfd7f9a4b855057c3f1ab
+$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --threshold 2 -q
+c7d68a801ed8c107521cb63b4089b4bd6601fad4
```
Bob then syncs these changes and adds a new commit:
``` ~bob
$ rad sync --fetch
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
$ git commit -m "Third commit" --allow-empty -q
@@ -37,7 +37,7 @@ Fast-forward
$ git push rad
✓ Canonical reference refs/heads/master updated to target commit 319a7dc3b195368ded4b099f8c90bbb80addccd3
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..319a7dc master -> master
```
@@ -56,6 +56,6 @@ push and the new canonical head becomes the previous commit again:
$ git push rad -f
✓ Canonical reference refs/heads/master updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 319a7dc...f2de534 master -> master (forced update)
```
diff --git a/crates/radicle-cli/examples/git/git-push.md b/crates/radicle-cli/examples/git/git-push.md
index f5451dd805..0019c01c56 100644
--- a/crates/radicle-cli/examples/git/git-push.md
+++ b/crates/radicle-cli/examples/git/git-push.md
@@ -6,7 +6,7 @@ $ git commit -m "Alice's commit" --allow-empty -s
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:alice/1
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] HEAD -> alice/1
```
@@ -17,9 +17,9 @@ $ git commit --amend -m "Alice's amended commit" --allow-empty -s
```
``` (stderr) (fail)
$ git push rad HEAD:alice/1
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
! [rejected] HEAD -> alice/1 (non-fast-forward)
-error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
hint: [..]
hint: [..]
hint: [..]
@@ -30,7 +30,7 @@ And that we can with `+`:
``` (stderr)
$ git push -o no-sync rad +HEAD:alice/1
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 87fa120...145e1e6 HEAD -> alice/1 (forced update)
```
@@ -45,7 +45,7 @@ $ git branch -r -vv
List our namespaced refs:
```
-$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 'refs/heads/*'
+$ git ls-remote rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 'refs/heads/*'
145e1e69bef3ad93d14946ea212249c2fa9b9828 refs/heads/alice/1
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
```
@@ -68,7 +68,7 @@ Note that it is forbidden to delete the default/canonical branch:
``` (fail) (stderr)
$ git push rad :master
error: refusing to delete default branch ref 'refs/heads/master'
-error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
```
If you pass an unsupported push option, you get an error:
@@ -86,6 +86,6 @@ $ git commit -m "Something good" --allow-empty -s
```
``` (stderr)
$ git push -o no-sync rad ddcc1f164eacfd7dba41da9bff3261da3ee79fd3:refs/heads/alice/2
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] ddcc1f164eacfd7dba41da9bff3261da3ee79fd3 -> alice/2
```
diff --git a/crates/radicle-cli/examples/git/git-tag.md b/crates/radicle-cli/examples/git/git-tag.md
index af35f0be7f..d53025a76e 100644
--- a/crates/radicle-cli/examples/git/git-tag.md
+++ b/crates/radicle-cli/examples/git/git-tag.md
@@ -13,7 +13,7 @@ $ git tag v1.0 -a -m "Release v1.0"
``` ~alice (stderr)
$ git push rad v1.0
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v1.0 -> v1.0
```
@@ -37,7 +37,7 @@ Bob fetches the tag from Alice, by adding her as a remote:
$ cd heartwood
$ rad remote add z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --name alice
✓ Follow policy updated for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -48,7 +48,7 @@ under the `alice` remote:
``` ~bob (stderr)
$ git fetch alice
-From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v1.0 -> alice/tags/v1.0
```
@@ -65,7 +65,7 @@ Updated tag 'v1.0' (was be18ed6)
``` ~alice (stderr)
$ git push rad v1.0 -f
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ be18ed6...9dbdebc v1.0 -> v1.0 (forced update)
```
@@ -74,13 +74,13 @@ update of the tag:
``` ~bob
$ rad sync -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
``` ~bob (stderr)
$ git fetch alice -f
-From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
62d19fd..9dbdebc v1.0 -> alice/tags/v1.0
```
diff --git a/crates/radicle-cli/examples/jj-init-bare.md b/crates/radicle-cli/examples/jj-init-bare.md
index 6edc18b853..3a7029c4ac 100644
--- a/crates/radicle-cli/examples/jj-init-bare.md
+++ b/crates/radicle-cli/examples/jj-init-bare.md
@@ -12,5 +12,5 @@ $ cd heartwood.jj
```
$ rad .
-rad:zHb72m63NBufHR7jmZi732BBT6j6
+rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
diff --git a/crates/radicle-cli/examples/rad-block.md b/crates/radicle-cli/examples/rad-block.md
index b683cff711..f79a3f1237 100644
--- a/crates/radicle-cli/examples/rad-block.md
+++ b/crates/radicle-cli/examples/rad-block.md
@@ -4,8 +4,8 @@ repositories from being seeded.
For instance, if our default policy is to seed, any unknown repository will
have its policy set to allow seeding:
```
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --policy
-Repository rad:zHb72m63NBufHR7jmZi732BBT6j6 is being seeded with scope `all`
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --policy
+Repository rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G is being seeded with scope `all`
```
Since there is no policy specific to this repository, there's nothing to be
@@ -20,33 +20,33 @@ But if we wanted to prevent this repository from being seeded, while
allowing all other repositories, we could use `rad block`:
```
-$ rad block rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Policy for rad:zHb72m63NBufHR7jmZi732BBT6j6 set to 'block'
+$ rad block rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Policy for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G set to 'block'
```
We can see that it is now no longer seeded:
```
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --policy
-Repository rad:zHb72m63NBufHR7jmZi732BBT6j6 is not being seeded
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --policy
+Repository rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G is not being seeded
```
And a 'block' policy was added:
```
$ rad seed
-╭──────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├──────────────────────────────────────────────────────────┤
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 block │
-╰──────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├───────────────────────────────────────────────────────────┤
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G block │
+╰───────────────────────────────────────────────────────────╯
```
If we want to reverse the blocking of the RID we can use `rad unblock`:
```
-$ rad unblock rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ The 'block' policy for rad:zHb72m63NBufHR7jmZi732BBT6j6 is removed
+$ rad unblock rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ The 'block' policy for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G is removed
```
```
diff --git a/crates/radicle-cli/examples/rad-checkout-repo-config-linux.md b/crates/radicle-cli/examples/rad-checkout-repo-config-linux.md
index 8f6e344bb9..1bf1c01c8f 100644
--- a/crates/radicle-cli/examples/rad-checkout-repo-config-linux.md
+++ b/crates/radicle-cli/examples/rad-checkout-repo-config-linux.md
@@ -14,10 +14,10 @@ $ cat .git/config
[push]
default = upstream
[remote "rad"]
- url = rad://zHb72m63NBufHR7jmZi732BBT6j6
+ url = rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
fetch = +refs/heads/*:refs/remotes/rad/*
fetch = +refs/tags/*:refs/remotes/rad/tags/*
- pushurl = rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ pushurl = rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
[branch "master"]
remote = rad
merge = refs/heads/master
diff --git a/crates/radicle-cli/examples/rad-checkout-repo-config-macos.md b/crates/radicle-cli/examples/rad-checkout-repo-config-macos.md
index f55cfa7730..9ee905e29d 100644
--- a/crates/radicle-cli/examples/rad-checkout-repo-config-macos.md
+++ b/crates/radicle-cli/examples/rad-checkout-repo-config-macos.md
@@ -16,10 +16,10 @@ $ cat .git/config
[push]
default = upstream
[remote "rad"]
- url = rad://zHb72m63NBufHR7jmZi732BBT6j6
+ url = rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
fetch = +refs/heads/*:refs/remotes/rad/*
fetch = +refs/tags/*:refs/remotes/rad/tags/*
- pushurl = rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ pushurl = rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
[branch "master"]
remote = rad
merge = refs/heads/master
diff --git a/crates/radicle-cli/examples/rad-checkout.md b/crates/radicle-cli/examples/rad-checkout.md
index 18e91200a6..6a2731c6dd 100644
--- a/crates/radicle-cli/examples/rad-checkout.md
+++ b/crates/radicle-cli/examples/rad-checkout.md
@@ -2,7 +2,7 @@ With the `rad checkout` command, you can create a new working copy from an
existing project.
```
-$ rad checkout rad:zHb72m63NBufHR7jmZi732BBT6j6
+$ rad checkout rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
✓ Repository checkout successful under ./heartwood
```
@@ -32,8 +32,8 @@ Check the remote configuration:
```
$ git remote --verbose
-rad rad://zHb72m63NBufHR7jmZi732BBT6j6 (fetch)
-rad rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
+rad rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G (fetch)
+rad rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
```
List the branches:
diff --git a/crates/radicle-cli/examples/rad-clean.md b/crates/radicle-cli/examples/rad-clean.md
index 9bad4d483e..7387d33f2d 100644
--- a/crates/radicle-cli/examples/rad-clean.md
+++ b/crates/radicle-cli/examples/rad-clean.md
@@ -7,34 +7,34 @@ First let's look at what we have locally:
``` ~alice
$ rad ls
-╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G public f2de534 Radicle Heartwood Protocol & Stack │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Let's also inspect what remotes are in the repository:
``` ~alice
$ rad inspect --sigrefs
-z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi cb2d413d68732395074cdfd8c724264e33005f4c parent
-z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk f2eb2fc33baaa0f105693421bee3fab12ed6fad6 parent
+z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 65ca22ed02601b9cd3e65486fd871683d415a3ac parent
+z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk 954186394ad704149d952368f55aa7e270c09378 parent
```
Now let's clean the `heartwood` project:
``` ~alice
-$ rad clean rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-confirm
+$ rad clean rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --no-confirm
Removed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-✓ Successfully cleaned rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Successfully cleaned rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
Inspecting the remotes again, we see that Bob is now gone:
``` ~alice
$ rad inspect --sigrefs
-z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi cb2d413d68732395074cdfd8c724264e33005f4c parent
+z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 65ca22ed02601b9cd3e65486fd871683d415a3ac parent
```
Note that Bob will be fetched again if we do not untrack his
@@ -45,23 +45,23 @@ Cleaning a repository again will remove no remotes, since we're
already at the minimal set of remotes:
``` ~alice
-$ rad clean rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-confirm
-✓ Successfully cleaned rad:zHb72m63NBufHR7jmZi732BBT6j6
+$ rad clean rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --no-confirm
+✓ Successfully cleaned rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
Since Eve did not fork the repository, and has no refs of their own,
when they run `rad clean` it will remove the project entirely:
``` ~eve
-$ rad clean rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-confirm
+$ rad clean rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --no-confirm
Removed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-✓ Successfully cleaned rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Successfully cleaned rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
And attempting to clean the repository again, or any nonexistent
repository, has no effect on the storage at all:
``` ~eve (fail)
-$ rad clean rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-confirm
-✗ Error: repository rad:zHb72m63NBufHR7jmZi732BBT6j6 was not found
+$ rad clean rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --no-confirm
+✗ Error: repository rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G was not found
```
diff --git a/crates/radicle-cli/examples/rad-clone-all.md b/crates/radicle-cli/examples/rad-clone-all.md
index 0695887f05..83b697bcf3 100644
--- a/crates/radicle-cli/examples/rad-clone-all.md
+++ b/crates/radicle-cli/examples/rad-clone-all.md
@@ -1,7 +1,7 @@
```
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope all
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'all'
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --scope all
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'all'
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -64,7 +64,7 @@ We can also create our own fork just by pushing:
``` (stderr)
$ git push -o no-sync rad master
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
* [new branch] master -> master
```
```
diff --git a/crates/radicle-cli/examples/rad-clone-bare.md b/crates/radicle-cli/examples/rad-clone-bare.md
index cb5961c4a4..380a58c0c7 100644
--- a/crates/radicle-cli/examples/rad-clone-bare.md
+++ b/crates/radicle-cli/examples/rad-clone-bare.md
@@ -2,9 +2,9 @@ To create a local bare copy of a repository on the Radicle network, we use the
`clone` command, followed by the identifier or *RID* of the repository:
```
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed --bare
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found [..] potential seed(s).
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --scope followed --bare
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found [..] potential seed(s).
✓ Target met: [..] seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -53,10 +53,10 @@ We can also take a look at the remotes:
```
$ git remote -v
-alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (fetch)
-alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
-rad rad://zHb72m63NBufHR7jmZi732BBT6j6 (fetch)
-rad rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (push)
+alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (fetch)
+alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
+rad rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G (fetch)
+rad rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (push)
```
Let's check the last commit!
@@ -73,9 +73,9 @@ Date: Mon Jan 1 14:39:16 2018 +0000
Cloned repositories show up in `rad ls`:
```
$ rad ls --seeded
-╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G public f2de534 Radicle Heartwood Protocol & Stack │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-clone-connect.md b/crates/radicle-cli/examples/rad-clone-connect.md
index 3bfd99cab4..624bf06d3a 100644
--- a/crates/radicle-cli/examples/rad-clone-connect.md
+++ b/crates/radicle-cli/examples/rad-clone-connect.md
@@ -2,9 +2,9 @@ If we're not connecting to seed nodes when cloning, the `clone` command will
automatically connect to the necessary seeds.
```
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
diff --git a/crates/radicle-cli/examples/rad-clone-directory.md b/crates/radicle-cli/examples/rad-clone-directory.md
index bb47e6a328..7c3eb15428 100644
--- a/crates/radicle-cli/examples/rad-clone-directory.md
+++ b/crates/radicle-cli/examples/rad-clone-directory.md
@@ -2,9 +2,9 @@ We can specify where a repository gets cloned into on our filesystem
by specifying the directory in the `rad clone` command:
```
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed Developer/Radicle
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --scope followed Developer/Radicle
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./Developer/Radicle..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -22,8 +22,8 @@ Note that attempting to clone into a directory that already exists,
and is not empty, will fail:
``` (fail)
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed Developer/Radicle
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --scope followed Developer/Radicle
✗ Error: refusing to checkout repository to Developer/Radicle, since it already exists
-✗ Hint: try `rad checkout rad:zHb72m63NBufHR7jmZi732BBT6j6` in a new directory
-✗ Error: failed to clone rad:zHb72m63NBufHR7jmZi732BBT6j6
+✗ Hint: try `rad checkout rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G` in a new directory
+✗ Error: failed to clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
diff --git a/crates/radicle-cli/examples/rad-clone-partial-fail.md b/crates/radicle-cli/examples/rad-clone-partial-fail.md
index 8f36f2a15e..38f6c3e32b 100644
--- a/crates/radicle-cli/examples/rad-clone-partial-fail.md
+++ b/crates/radicle-cli/examples/rad-clone-partial-fail.md
@@ -2,22 +2,22 @@ Eve knows about three seeds.
```
$ rad node routing
-╭─────────────────────────────────────────────────────────────────────────────────────╮
-│ RID NID │
-├─────────────────────────────────────────────────────────────────────────────────────┤
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 z6MksFqXN3Yhqk8pTJdUGLwBTkRfQvwZXPqR2qMEhbS9wzpT │
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
-╰─────────────────────────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────────────────────────╮
+│ RID NID │
+├──────────────────────────────────────────────────────────────────────────────────────┤
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G z6MksFqXN3Yhqk8pTJdUGLwBTkRfQvwZXPqR2qMEhbS9wzpT │
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
+╰──────────────────────────────────────────────────────────────────────────────────────╯
```
When she tries to clone, one of those will fail to fetch. But the clone command
still returns successfully.
```
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --timeout 3s
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 3 potential seed(s).
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --timeout 3s
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 3 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
diff --git a/crates/radicle-cli/examples/rad-clone-scope.md b/crates/radicle-cli/examples/rad-clone-scope.md
index 2b47f17578..4dc789dc9c 100644
--- a/crates/radicle-cli/examples/rad-clone-scope.md
+++ b/crates/radicle-cli/examples/rad-clone-scope.md
@@ -1,8 +1,8 @@
By default `rad clone` should add a seeding policy with the `followed` scope:
```
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
✓ Creating checkout in ./heartwood..
✓ Repository successfully cloned under [..]/heartwood/
╭────────────────────────────────────╮
@@ -12,19 +12,19 @@ $ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
╰────────────────────────────────────╯
Run `cd ./heartwood` to go to the repository directory.
$ rad seed
-╭──────────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├──────────────────────────────────────────────────────────────────┤
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 heartwood allow followed │
-╰──────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├───────────────────────────────────────────────────────────────────┤
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G heartwood allow followed │
+╰───────────────────────────────────────────────────────────────────╯
$ rm -rf heartwood
```
Specifying a different scope explicitly should update the policy:
```
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope all
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'all'
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --scope all
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'all'
✓ Creating checkout in ./heartwood..
✓ Repository successfully cloned under [..]/heartwood/
╭────────────────────────────────────╮
@@ -34,18 +34,18 @@ $ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope all
╰────────────────────────────────────╯
Run `cd ./heartwood` to go to the repository directory.
$ rad seed
-╭───────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├───────────────────────────────────────────────────────────────┤
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 heartwood allow all │
-╰───────────────────────────────────────────────────────────────╯
+╭────────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├────────────────────────────────────────────────────────────────┤
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G heartwood allow all │
+╰────────────────────────────────────────────────────────────────╯
$ rm -rf heartwood
```
Running `rad clone` again without an explicit scope parameter should not change the existing policy:
```
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
✓ Creating checkout in ./heartwood..
✓ Repository successfully cloned under [..]/heartwood/
╭────────────────────────────────────╮
@@ -55,9 +55,9 @@ $ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
╰────────────────────────────────────╯
Run `cd ./heartwood` to go to the repository directory.
$ rad seed
-╭───────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├───────────────────────────────────────────────────────────────┤
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 heartwood allow all │
-╰───────────────────────────────────────────────────────────────╯
+╭────────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├────────────────────────────────────────────────────────────────┤
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G heartwood allow all │
+╰────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-clone.md b/crates/radicle-cli/examples/rad-clone.md
index e3abca6af2..cfee169be5 100644
--- a/crates/radicle-cli/examples/rad-clone.md
+++ b/crates/radicle-cli/examples/rad-clone.md
@@ -2,9 +2,9 @@ To create a local copy of a repository on the Radicle network, we use the
`clone` command, followed by the identifier or *RID* of the repository:
```
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found [..] potential seed(s).
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found [..] potential seed(s).
✓ Target met: [..] seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -47,10 +47,10 @@ We can also take a look at the remotes:
```
$ git remote -v
-alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (fetch)
-alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
-rad rad://zHb72m63NBufHR7jmZi732BBT6j6 (fetch)
-rad rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (push)
+alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (fetch)
+alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
+rad rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G (fetch)
+rad rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (push)
```
Let's check the last commit!
@@ -67,9 +67,9 @@ Date: Mon Jan 1 14:39:16 2018 +0000
Cloned repositories show up in `rad ls`:
```
$ rad ls --seeded
-╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G public f2de534 Radicle Heartwood Protocol & Stack │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-cob-log.md b/crates/radicle-cli/examples/rad-cob-log.md
index 4d256286b0..b53fdab881 100644
--- a/crates/radicle-cli/examples/rad-cob-log.md
+++ b/crates/radicle-cli/examples/rad-cob-log.md
@@ -6,7 +6,7 @@ First create an issue.
$ rad issue open --title "flux capacitor underpowered" --description "Flux capacitor power requirements exceed current supply" --no-announce
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue 03d81cbed7db716ba49b0ad4910a064a664883ab │
+│ Issue cb9d9788d1854a6d4bc7235756df33b9d372a605 │
│ Author alice (you) │
│ Status open │
│ │
@@ -21,7 +21,7 @@ $ rad issue list
╭──────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├──────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 03d81cb flux capacitor underpowered alice (you) now │
+│ ● cb9d978 flux capacitor underpowered alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -45,25 +45,25 @@ $ rad patch
╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 133e390 Define power requirements alice (you) - 3e674d1 +0 -0 now │
+│ ● 26ba061 Define power requirements alice (you) - 3e674d1 +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Both issue and patch COBs can be listed.
```
-$ rad cob list --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue
-03d81cbed7db716ba49b0ad4910a064a664883ab
-$ rad cob list --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch
-133e3905e9252139a7ea29881b3d5bca816372b9
+$ rad cob list --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.issue
+cb9d9788d1854a6d4bc7235756df33b9d372a605
+$ rad cob list --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.patch
+26ba0615c6e911344ee61d53241a2903c5bf8623
```
We can look at the issue COB.
```
-$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab
-commit 03d81cbed7db716ba49b0ad4910a064a664883ab
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+$ rad cob log --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.issue --object cb9d9788d1854a6d4bc7235756df33b9d372a605
+commit cb9d9788d1854a6d4bc7235756df33b9d372a605
+resource 86399084097fb674569f5bc5847da609ab91aa9f
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -82,9 +82,9 @@ date Thu, 15 Dec 2022 17:28:04 +0000
We can look at the patch COB too.
```
-$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch --object 133e3905e9252139a7ea29881b3d5bca816372b9
-commit 133e3905e9252139a7ea29881b3d5bca816372b9
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+$ rad cob log --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.patch --object 26ba0615c6e911344ee61d53241a2903c5bf8623
+commit 26ba0615c6e911344ee61d53241a2903c5bf8623
+resource 86399084097fb674569f5bc5847da609ab91aa9f
rel 3e674d1a1df90807e934f9ae5da2591dd6848a33
rel f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -108,11 +108,11 @@ date Thu, 15 Dec 2022 17:28:04 +0000
Finally let's updated the issue and see the `parent` header:
```
-$ rad issue label 03d81cb --add bug --no-announce
-$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab
-commit c3b36f60b1aa80501d90363fd19197cbef955f9a
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 03d81cbed7db716ba49b0ad4910a064a664883ab
+$ rad issue label cb9d978 --add bug --no-announce
+$ rad cob log --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.issue --object cb9d9788d1854a6d4bc7235756df33b9d372a605
+commit 3f72d4fdc26f02f64d67ae37f3f363634673b1ea
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent cb9d9788d1854a6d4bc7235756df33b9d372a605
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -123,8 +123,8 @@ date Thu, 15 Dec 2022 17:28:04 +0000
]
}
-commit 03d81cbed7db716ba49b0ad4910a064a664883ab
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+commit cb9d9788d1854a6d4bc7235756df33b9d372a605
+resource 86399084097fb674569f5bc5847da609ab91aa9f
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
diff --git a/crates/radicle-cli/examples/rad-cob-multiset.md b/crates/radicle-cli/examples/rad-cob-multiset.md
index a89a273b7c..808dc9ca92 100644
--- a/crates/radicle-cli/examples/rad-cob-multiset.md
+++ b/crates/radicle-cli/examples/rad-cob-multiset.md
@@ -41,28 +41,28 @@ It reads the current state of the grocery list and operations containing actions
We do not invoke the program directly, but instead use `rad cob create`:
```
-$ rad cob create --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type com.example.multiset --message "Create grocery shopping multiset" groceries.jsonl
+$ rad cob create --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type com.example.multiset --message "Create grocery shopping multiset" groceries.jsonl
9bba8e6f83ef56b11151ef6ad02cc4595f982aab
```
We can verify that the COB evaluated as expected:
```
-$ rad cob show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab
+$ rad cob show --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab
{"jelly":0,"peanut butter":1,"salad":2}
```
To apply actions to COBs that already exist, we can use `rad cob update`:
```
-$ rad cob update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab --message "Modify grocery shopping multiset" groceries.jsonl
+$ rad cob update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab --message "Modify grocery shopping multiset" groceries.jsonl
d36aac77be13c1ca80edbfe7b7bf9b42c723f019
```
Again, we verify the result with `rad cob show`:
```
-$ rad cob show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab
+$ rad cob show --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab
{"jelly":0,"peanut butter":2,"salad":4}
```
diff --git a/crates/radicle-cli/examples/rad-cob-operations.md b/crates/radicle-cli/examples/rad-cob-operations.md
index c4f9f3d42b..58f3596f2f 100644
--- a/crates/radicle-cli/examples/rad-cob-operations.md
+++ b/crates/radicle-cli/examples/rad-cob-operations.md
@@ -7,28 +7,28 @@ To demonstrate, we will first create an issue and interact with it:
$ rad issue open --title "flux capacitor underpowered" --description "Flux capacitor power requirements exceed current supply" --no-announce
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue 03d81cbed7db716ba49b0ad4910a064a664883ab │
+│ Issue cb9d9788d1854a6d4bc7235756df33b9d372a605 │
│ Author alice (you) │
│ Status open │
│ │
│ Flux capacitor power requirements exceed current supply │
╰─────────────────────────────────────────────────────────╯
-$ rad issue react 03d81cbed7db716ba49b0ad4910a064a664883ab --to 03d81cbed7db716ba49b0ad4910a064a664883ab --emoji ✨ --no-announce
-$ rad issue comment 03d81cbed7db716ba49b0ad4910a064a664883ab --message "Max power!" --no-announce
+$ rad issue react cb9d9788d1854a6d4bc7235756df33b9d372a605 --to cb9d9788d1854a6d4bc7235756df33b9d372a605 --emoji ✨ --no-announce
+$ rad issue comment cb9d9788d1854a6d4bc7235756df33b9d372a605 --message "Max power!" --no-announce
╭─────────────────────────╮
-│ alice (you) now 92665fd │
+│ alice (you) now 1ed4053 │
│ Max power! │
╰─────────────────────────╯
-$ rad issue assign 03d81cbed7db716ba49b0ad4910a064a664883ab --add did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-announce
+$ rad issue assign cb9d9788d1854a6d4bc7235756df33b9d372a605 --add did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-announce
```
Now, let's see the list of operations using `rad cob log`:
```
-$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab
-commit 1c8bcdbc37ff57880bb51ef38d920e4a32435074
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
+$ rad cob log --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.issue --object cb9d9788d1854a6d4bc7235756df33b9d372a605
+commit eef906e4c5174f987c250e3e7813775b76f222b2
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent 1ed40536d39ace98070e97a2ab0e39aabe91a9b8
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -39,33 +39,33 @@ date Thu, 15 Dec 2022 17:28:04 +0000
]
}
-commit 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
+commit 1ed40536d39ace98070e97a2ab0e39aabe91a9b8
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent b9ec03b484bf82e857f82fa7fb1b510b371285d1
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment",
"body": "Max power!",
- "replyTo": "03d81cbed7db716ba49b0ad4910a064a664883ab"
+ "replyTo": "cb9d9788d1854a6d4bc7235756df33b9d372a605"
}
-commit 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 03d81cbed7db716ba49b0ad4910a064a664883ab
+commit b9ec03b484bf82e857f82fa7fb1b510b371285d1
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent cb9d9788d1854a6d4bc7235756df33b9d372a605
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment.react",
- "id": "03d81cbed7db716ba49b0ad4910a064a664883ab",
+ "id": "cb9d9788d1854a6d4bc7235756df33b9d372a605",
"reaction": "✨",
"active": true
}
-commit 03d81cbed7db716ba49b0ad4910a064a664883ab
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+commit cb9d9788d1854a6d4bc7235756df33b9d372a605
+resource 86399084097fb674569f5bc5847da609ab91aa9f
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -86,10 +86,10 @@ options. We will need some commit revisions to use for those options, so let's
look at what those revision are by using `rad cob log`:
```
-$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab
-commit 1c8bcdbc37ff57880bb51ef38d920e4a32435074
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
+$ rad cob log --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.issue --object cb9d9788d1854a6d4bc7235756df33b9d372a605
+commit eef906e4c5174f987c250e3e7813775b76f222b2
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent 1ed40536d39ace98070e97a2ab0e39aabe91a9b8
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -100,33 +100,33 @@ date Thu, 15 Dec 2022 17:28:04 +0000
]
}
-commit 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
+commit 1ed40536d39ace98070e97a2ab0e39aabe91a9b8
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent b9ec03b484bf82e857f82fa7fb1b510b371285d1
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment",
"body": "Max power!",
- "replyTo": "03d81cbed7db716ba49b0ad4910a064a664883ab"
+ "replyTo": "cb9d9788d1854a6d4bc7235756df33b9d372a605"
}
-commit 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 03d81cbed7db716ba49b0ad4910a064a664883ab
+commit b9ec03b484bf82e857f82fa7fb1b510b371285d1
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent cb9d9788d1854a6d4bc7235756df33b9d372a605
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment.react",
- "id": "03d81cbed7db716ba49b0ad4910a064a664883ab",
+ "id": "cb9d9788d1854a6d4bc7235756df33b9d372a605",
"reaction": "✨",
"active": true
}
-commit 03d81cbed7db716ba49b0ad4910a064a664883ab
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+commit cb9d9788d1854a6d4bc7235756df33b9d372a605
+resource 86399084097fb674569f5bc5847da609ab91aa9f
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -146,10 +146,10 @@ If we provide only the `--from` option, the operations we get back start from th
revision and go until the end:
```
-$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab --from 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
-commit 1c8bcdbc37ff57880bb51ef38d920e4a32435074
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
+$ rad cob log --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.issue --object cb9d9788d1854a6d4bc7235756df33b9d372a605 --from 1ed40536d39ace98070e97a2ab0e39aabe91a9b8
+commit eef906e4c5174f987c250e3e7813775b76f222b2
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent 1ed40536d39ace98070e97a2ab0e39aabe91a9b8
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -160,16 +160,16 @@ date Thu, 15 Dec 2022 17:28:04 +0000
]
}
-commit 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
+commit 1ed40536d39ace98070e97a2ab0e39aabe91a9b8
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent b9ec03b484bf82e857f82fa7fb1b510b371285d1
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment",
"body": "Max power!",
- "replyTo": "03d81cbed7db716ba49b0ad4910a064a664883ab"
+ "replyTo": "cb9d9788d1854a6d4bc7235756df33b9d372a605"
}
```
@@ -178,22 +178,22 @@ Conversely, if we provide only the `--until` option, the operations we get back
start from the beginning and stop at that revision:
```
-$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab --until 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
-commit 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 03d81cbed7db716ba49b0ad4910a064a664883ab
+$ rad cob log --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.issue --object cb9d9788d1854a6d4bc7235756df33b9d372a605 --until b9ec03b484bf82e857f82fa7fb1b510b371285d1
+commit b9ec03b484bf82e857f82fa7fb1b510b371285d1
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent cb9d9788d1854a6d4bc7235756df33b9d372a605
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment.react",
- "id": "03d81cbed7db716ba49b0ad4910a064a664883ab",
+ "id": "cb9d9788d1854a6d4bc7235756df33b9d372a605",
"reaction": "✨",
"active": true
}
-commit 03d81cbed7db716ba49b0ad4910a064a664883ab
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+commit cb9d9788d1854a6d4bc7235756df33b9d372a605
+resource 86399084097fb674569f5bc5847da609ab91aa9f
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -212,28 +212,28 @@ date Thu, 15 Dec 2022 17:28:04 +0000
Finally, if we provide both, we get back that exact range:
```
-$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab --from 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e --until 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
-commit 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
+$ rad cob log --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.issue --object cb9d9788d1854a6d4bc7235756df33b9d372a605 --from b9ec03b484bf82e857f82fa7fb1b510b371285d1 --until 1ed40536d39ace98070e97a2ab0e39aabe91a9b8
+commit 1ed40536d39ace98070e97a2ab0e39aabe91a9b8
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent b9ec03b484bf82e857f82fa7fb1b510b371285d1
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment",
"body": "Max power!",
- "replyTo": "03d81cbed7db716ba49b0ad4910a064a664883ab"
+ "replyTo": "cb9d9788d1854a6d4bc7235756df33b9d372a605"
}
-commit 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
-resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-parent 03d81cbed7db716ba49b0ad4910a064a664883ab
+commit b9ec03b484bf82e857f82fa7fb1b510b371285d1
+resource 86399084097fb674569f5bc5847da609ab91aa9f
+parent cb9d9788d1854a6d4bc7235756df33b9d372a605
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment.react",
- "id": "03d81cbed7db716ba49b0ad4910a064a664883ab",
+ "id": "cb9d9788d1854a6d4bc7235756df33b9d372a605",
"reaction": "✨",
"active": true
}
diff --git a/crates/radicle-cli/examples/rad-cob-show.md b/crates/radicle-cli/examples/rad-cob-show.md
index 493403ee85..10e265f8ed 100644
--- a/crates/radicle-cli/examples/rad-cob-show.md
+++ b/crates/radicle-cli/examples/rad-cob-show.md
@@ -9,7 +9,7 @@ First create an issue.
$ rad issue open --title "spice harvester broken" --description "Fremen have attacked, maybe we went too far?" --no-announce
╭──────────────────────────────────────────────────╮
│ Title spice harvester broken │
-│ Issue 2919a63dae44d4bb9e092a4a9bf10a03a44717f5 │
+│ Issue 284179861d9b0481bb32d1b23a433f649e721cd1 │
│ Author alice (you) │
│ Status open │
│ │
@@ -24,7 +24,7 @@ $ rad issue list
╭─────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├─────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 2919a63 spice harvester broken alice (you) now │
+│ ● 2841798 spice harvester broken alice (you) now │
╰─────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -48,37 +48,37 @@ $ rad patch
╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● b97c1ae Start drafting peace treaty alice (you) - 575ed68 +0 -0 now │
+│ ● 62cf30d Start drafting peace treaty alice (you) - 575ed68 +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Both issue and patch COBs can be listed.
```
-$ rad cob list --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue
-2919a63dae44d4bb9e092a4a9bf10a03a44717f5
-$ rad cob list --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch
-b97c1ae0e332715aceea94ab517e6a014d5d779d
+$ rad cob list --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.issue
+284179861d9b0481bb32d1b23a433f649e721cd1
+$ rad cob list --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.patch
+62cf30dfdbb24063abb46c71dbf230aeb0a6c930
```
We can show the issue COB.
```
-$ rad cob show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 2919a63dae44d4bb9e092a4a9bf10a03a44717f5
-{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":[],"thread":{"comments":{"2919a63dae44d4bb9e092a4a9bf10a03a44717f5":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["2919a63dae44d4bb9e092a4a9bf10a03a44717f5"]}}
+$ rad cob show --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.issue --object 284179861d9b0481bb32d1b23a433f649e721cd1
+{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":[],"thread":{"comments":{"284179861d9b0481bb32d1b23a433f649e721cd1":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["284179861d9b0481bb32d1b23a433f649e721cd1"]}}
```
We can show the patch COB too.
```
-$ rad cob show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch --object b97c1ae0e332715aceea94ab517e6a014d5d779d
-{"title":"Start drafting peace treaty","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"state":{"status":"open"},"target":"delegates","labels":[],"merges":{},"revisions":{"b97c1ae0e332715aceea94ab517e6a014d5d779d":{"id":"b97c1ae0e332715aceea94ab517e6a014d5d779d","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"description":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"See details.","embeds":[]}],"base":"f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354","oid":"575ed68c716d6aae81ea6b718fd9ac66a8eae532","discussion":{"comments":{},"timeline":[]},"reviews":{},"timestamp":1671125284000,"resolves":[],"reactions":[]}},"assignees":[],"timeline":["b97c1ae0e332715aceea94ab517e6a014d5d779d"],"reviews":{}}
+$ rad cob show --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.patch --object 62cf30dfdbb24063abb46c71dbf230aeb0a6c930
+{"title":"Start drafting peace treaty","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"state":{"status":"open"},"target":"delegates","labels":[],"merges":{},"revisions":{"62cf30dfdbb24063abb46c71dbf230aeb0a6c930":{"id":"62cf30dfdbb24063abb46c71dbf230aeb0a6c930","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"description":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"See details.","embeds":[]}],"base":"f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354","oid":"575ed68c716d6aae81ea6b718fd9ac66a8eae532","discussion":{"comments":{},"timeline":[]},"reviews":{},"timestamp":1671125284000,"resolves":[],"reactions":[]}},"assignees":[],"timeline":["62cf30dfdbb24063abb46c71dbf230aeb0a6c930"],"reviews":{}}
```
Finally let's update the issue and see the output of `rad cob show` also changes.
```
-$ rad issue label 2919a63 --add bug --no-announce
-$ rad cob show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 2919a63dae44d4bb9e092a4a9bf10a03a44717f5
-{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":["bug"],"thread":{"comments":{"2919a63dae44d4bb9e092a4a9bf10a03a44717f5":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["2919a63dae44d4bb9e092a4a9bf10a03a44717f5"]}}
+$ rad issue label 2841798 --add bug --no-announce
+$ rad cob show --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.issue --object 284179861d9b0481bb32d1b23a433f649e721cd1
+{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":["bug"],"thread":{"comments":{"284179861d9b0481bb32d1b23a433f649e721cd1":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["284179861d9b0481bb32d1b23a433f649e721cd1"]}}
```
diff --git a/crates/radicle-cli/examples/rad-cob-update-identity.md b/crates/radicle-cli/examples/rad-cob-update-identity.md
index f5fe63c59a..0259ca911b 100644
--- a/crates/radicle-cli/examples/rad-cob-update-identity.md
+++ b/crates/radicle-cli/examples/rad-cob-update-identity.md
@@ -1,6 +1,6 @@
Updating the repository identity via `rad cob update` is forbidden:
``` (fail)
-$ rad cob update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.id --object 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 --message "Danger" /dev/null
+$ rad cob update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.id --object 86399084097fb674569f5bc5847da609ab91aa9f --message "Danger" /dev/null
✗ Error: Update of collaborative objects of type xyz.radicle.id is not supported.
```
\ No newline at end of file
diff --git a/crates/radicle-cli/examples/rad-cob-update.md b/crates/radicle-cli/examples/rad-cob-update.md
index 027a5c2cd0..c571ddedd5 100644
--- a/crates/radicle-cli/examples/rad-cob-update.md
+++ b/crates/radicle-cli/examples/rad-cob-update.md
@@ -12,8 +12,8 @@ $ git commit --message "Add README, just for the fun"
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun" HEAD:refs/patches
-✓ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch f36ce41ee8d55d3723ad65ad39741391f9bed979 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -28,22 +28,22 @@ $ git commit -v -m "Define the LICENSE"
``` (stderr)
$ git push -f -o patch.message="Add License"
-✓ Patch b159dae updated to revision 6b68a485a2d9a2e0c4e12c6f353e5d6f52825bf7
-To compare against your previous revision b159dae, run:
+✓ Patch f36ce41 updated to revision 66230c3d87c5c444803e7d012a710013505dcdb9
+To compare against your previous revision f36ce41, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 03c02af4b12a593d17a06d38fae50a57fc3c339a 8945f6189adf027892c85ac57f7e9341049c2537
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 03c02af..8945f61 changes -> patches/b159dae25efff62aaf6f7d28a449ad5756eff5db
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 03c02af..8945f61 changes -> patches/f36ce41ee8d55d3723ad65ad39741391f9bed979
```
Let's look at the patch, to see what it looks like before editing it:
```
-$ rad patch show b159dae
+$ rad patch show f36ce41
╭──────────────────────────────────────────────────────────╮
│ Title Add README, just for the fun │
-│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
+│ Patch f36ce41ee8d55d3723ad65ad39741391f9bed979 │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
│ Base [..] │
@@ -55,8 +55,8 @@ $ rad patch show b159dae
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision b159dae @ f2de534..03c02af by alice (you) now │
-│ ↑ Revision 6b68a48 @ f2de534..8945f61 by alice (you) now │
+│ ● Revision f36ce41 @ f2de534..03c02af by alice (you) now │
+│ ↑ Revision 66230c3 @ f2de534..8945f61 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -64,11 +64,11 @@ We can change the title and description of the patch itself by using a
multi-line message (using two `--message` options here):
```
-$ rad patch edit b159dae --message "Add Metadata" --message "Add README & LICENSE" --no-announce
-$ rad patch show b159dae
+$ rad patch edit f36ce41 --message "Add Metadata" --message "Add README & LICENSE" --no-announce
+$ rad patch show f36ce41
╭──────────────────────────────────────────────────────────╮
│ Title Add Metadata │
-│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
+│ Patch f36ce41ee8d55d3723ad65ad39741391f9bed979 │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
│ Base [..] │
@@ -82,15 +82,15 @@ $ rad patch show b159dae
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision b159dae @ f2de534..03c02af by alice (you) now │
-│ ↑ Revision 6b68a48 @ f2de534..8945f61 by alice (you) now │
+│ ● Revision f36ce41 @ f2de534..03c02af by alice (you) now │
+│ ↑ Revision 66230c3 @ f2de534..8945f61 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
We prepare the file `revision-edit.json` which contains one action (thus one line) to be applied.
``` ./revision-edit.jsonl
-{"type": "revision.edit", "description": "Add README and LICENSE", "revision": "b159dae25efff62aaf6f7d28a449ad5756eff5db"}
+{"type": "revision.edit", "description": "Add README and LICENSE", "revision": "f36ce41ee8d55d3723ad65ad39741391f9bed979"}
```
We now use `rad cob update` to edit the patch another time, rewriting the description.
@@ -99,12 +99,12 @@ specifying the revision for which the description should be changed, and `descri
specifying the new description.
```
-$ rad cob update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch --object b159dae25efff62aaf6f7d28a449ad5756eff5db --message "Edit patch" revision-edit.jsonl
-ddf47fa6faa0ed86b3c9150c6c91bea60b3cd54a
-$ rad patch show --verbose b159dae
+$ rad cob update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.patch --object f36ce41ee8d55d3723ad65ad39741391f9bed979 --message "Edit patch" revision-edit.jsonl
+bf3e9bdd3778836be49b76f987d15066b973952e
+$ rad patch show --verbose f36ce41
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Add Metadata │
-│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
+│ Patch f36ce41ee8d55d3723ad65ad39741391f9bed979 │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -118,8 +118,8 @@ $ rad patch show --verbose b159dae
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision b159dae25efff62aaf6f7d28a449ad5756eff5db with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..03c02af4b12a593d17a06d38fae50a57fc3c339a by alice (you) now │
-│ ↑ Revision 6b68a485a2d9a2e0c4e12c6f353e5d6f52825bf7 with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..8945f6189adf027892c85ac57f7e9341049c2537 by alice (you) now │
+│ ● Revision f36ce41ee8d55d3723ad65ad39741391f9bed979 with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..03c02af4b12a593d17a06d38fae50a57fc3c339a by alice (you) now │
+│ ↑ Revision 66230c3d87c5c444803e7d012a710013505dcdb9 with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..8945f6189adf027892c85ac57f7e9341049c2537 by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -142,7 +142,7 @@ We prepare the file `revision-create.jsonl` which contains one action.
Attempting to create the new revision right away would fail:
``` (fail)
-$ rad cob update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch --object b159dae25efff62aaf6f7d28a449ad5756eff5db --message "Create new revision" revision.jsonl
+$ rad cob update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.patch --object f36ce41ee8d55d3723ad65ad39741391f9bed979 --message "Create new revision" revision.jsonl
✗ Error: store: update error: failed to read 'f1339dd109e538c6b3a7fed3e72403e1b4db08c9' from git odb
```
@@ -158,12 +158,12 @@ $ git push rad :tmp/heads/f1339dd109e538c6b3a7fed3e72403e1b4db08c9
Now we can invoke `rad cob update`:
```
-$ rad cob update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch --object b159dae25efff62aaf6f7d28a449ad5756eff5db --message "Create new revision" revision.jsonl
-a0ae2bb0492984c95cf5a2b927b05b94a8c3f2e7
-$ rad patch show b159dae
+$ rad cob update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --type xyz.radicle.patch --object f36ce41ee8d55d3723ad65ad39741391f9bed979 --message "Create new revision" revision.jsonl
+fdfc4def2abbd93059a6fbf48276dc91c0d49636
+$ rad patch show f36ce41
╭──────────────────────────────────────────────────────────╮
│ Title Add Metadata │
-│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
+│ Patch f36ce41ee8d55d3723ad65ad39741391f9bed979 │
│ Author alice (you) │
│ Head f1339dd109e538c6b3a7fed3e72403e1b4db08c9 │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -178,8 +178,8 @@ $ rad patch show b159dae
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision b159dae @ f2de534..03c02af by alice (you) now │
-│ ↑ Revision 6b68a48 @ f2de534..8945f61 by alice (you) now │
-│ ↑ Revision a0ae2bb @ f2de534..f1339dd by alice (you) now │
+│ ● Revision f36ce41 @ f2de534..03c02af by alice (you) now │
+│ ↑ Revision 66230c3 @ f2de534..8945f61 by alice (you) now │
+│ ↑ Revision fdfc4de @ f2de534..f1339dd by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-fetch.md b/crates/radicle-cli/examples/rad-fetch.md
index ffbf207f8a..cf384e4be1 100644
--- a/crates/radicle-cli/examples/rad-fetch.md
+++ b/crates/radicle-cli/examples/rad-fetch.md
@@ -5,12 +5,12 @@ necessary.
Instead, we want to fetch the project from the network into our local
storage. In this scenario, we know that the project is
-`rad:zHb72m63NBufHR7jmZi732BBT6j6`. In order to fetch it, we first
+`rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G`. In order to fetch it, we first
have to update our seeding policy for the project.
```
-$ rad seed rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-fetch
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+$ rad seed rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --no-fetch
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
```
Now that the project is seeding we can fetch it and we will have it in
@@ -18,8 +18,8 @@ our local storage. Note that the `seed` command can also be told to fetch
by passing the `--fetch` option.
```
-$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+$ rad sync --fetch rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
diff --git a/crates/radicle-cli/examples/rad-fork.md b/crates/radicle-cli/examples/rad-fork.md
index 52be277a3d..30dee37650 100644
--- a/crates/radicle-cli/examples/rad-fork.md
+++ b/crates/radicle-cli/examples/rad-fork.md
@@ -4,7 +4,7 @@ NID. This is demonstrated below where our NID is
`z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk`:
```
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --refs
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --refs
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
@@ -22,15 +22,15 @@ To remedy this, we can use the `rad fork` command for the project we
wish to fork:
```
-$ rad fork rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Forked repository rad:zHb72m63NBufHR7jmZi732BBT6j6 for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+$ rad fork rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Forked repository rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
```
Now, if we `rad inspect` the project's refs again we will see that we
have a copy of the main set of refs:
```
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --refs
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --refs
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
diff --git a/crates/radicle-cli/examples/rad-id-collaboration.md b/crates/radicle-cli/examples/rad-id-collaboration.md
index 0258c67b85..567e436014 100644
--- a/crates/radicle-cli/examples/rad-id-collaboration.md
+++ b/crates/radicle-cli/examples/rad-id-collaboration.md
@@ -7,10 +7,10 @@ First, we'll start off with Alice adding Bob. It's necessary for Bob
to have a fork of the project and Alice must be aware of the fork:
``` ~bob
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --scope followed
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkvVv…Z1Ct4tD@[..]..
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSL…StBU8Vi
@@ -30,8 +30,8 @@ to the default branch, she must set the `threshold` to `2` when adding
Bob as a delegate:
``` ~alice (fails)
-$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
-✗ Error: failed to verify delegates for rad:zHb72m63NBufHR7jmZi732BBT6j6
+$ rad id update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
+✗ Error: failed to verify delegates for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
✗ Error: a threshold of 2 delegates cannot be met, found 1 delegate(s) and the following delegates are missing [did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk]
✗ Hint: run `rad follow did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk` to follow this missing peer
✗ Hint: run `rad sync -f` to attempt to fetch the newly followed peers
@@ -50,15 +50,15 @@ So, instead Alice needs to first follow Bob and fetch his references:
$ rad follow did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --alias bob
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
$ rad sync
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkvVv…Z1Ct4tD@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 1 node(s)
-$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
-ff50694a35d2a891413cfd7f9a4b855057c3f1ab
+$ rad id update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
+c7d68a801ed8c107521cb63b4089b4bd6601fad4
$ rad sync
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkvVv…Z1Ct4tD@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 3 node(s)
```
@@ -67,8 +67,8 @@ Bob can confirm that he was made a delegate by fetching the update:
``` ~bob
$ rad sync
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkvVv…Z1Ct4tD@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 1 node(s)
$ rad inspect --delegates
@@ -81,10 +81,10 @@ project. For Bob to propose Eve, similar steps need to happen as
between Alice and Bob. Eve first needs to set up a fork:
``` ~eve
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --scope followed
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkvVv…Z1Ct4tD@[..]..
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSL…StBU8Vi
@@ -104,11 +104,11 @@ $ git push rad master
Bob then adds Eve as a delegate:
``` ~bob
-$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Eve" --description "" --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --no-confirm -q
-b22496526a7f7ef23696c4efb105b6ae68e61fac
+$ rad id update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --title "Add Eve" --description "" --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --no-confirm -q
+46bb20352ca9d8c0a5b9fdccf17f66ff9f13aeaf
$ rad sync
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkuPZ…xEuaPUp@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 3 node(s)
```
@@ -122,27 +122,27 @@ the change to meet a quorum of votes (`votes >= (delegates / 2) + 1`):
``` ~alice
$ rad sync
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkuPZ…xEuaPUp@[..]..
✓ Fetched repository from 2 seed(s)
✓ Nothing to announce, already in sync with 3 node(s) (see `rad sync status`)
$ rad id list
╭────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Status Created │
├────────────────────────────────────────────────────────────────────────────────┤
-│ ● ff50694 Add Eve bob z6Mkt67…v4N1tRk active now │
-│ ● ff50694 Add Bob alice (you) accepted now │
-│ ● 2cfded2 Initial revision alice (you) accepted now │
+│ ● c7d68a8 Add Eve bob z6Mkt67…v4N1tRk active now │
+│ ● c7d68a8 Add Bob alice (you) accepted now │
+│ ● 8639908 Initial revision alice (you) accepted now │
╰────────────────────────────────────────────────────────────────────────────────╯
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --sigrefs
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --sigrefs
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 6acd3b370839318d96dbfff43948bab2bcdd3681
z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk c40018821dc1b41cad75e91e0c9d00827e815324
-$ rad id accept ff50694
-✓ Revision b22496526a7f7ef23696c4efb105b6ae68e61fac accepted
+$ rad id accept c7d68a8
+✓ Revision 46bb20352ca9d8c0a5b9fdccf17f66ff9f13aeaf accepted
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Eve │
-│ Revision b22496526a7f7ef23696c4efb105b6ae68e61fac │
-│ Blob 2f8b59ccbe9fc8ccd5b1a3019eed86b44f57d614 │
+│ Revision 46bb20352ca9d8c0a5b9fdccf17f66ff9f13aeaf │
+│ Blob 57dda7d9ab25ad958838e479c0c8e5ab7af56cd7 │
│ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
│ State accepted │
│ Quorum yes │
@@ -157,11 +157,11 @@ since she has become a delegate:
``` ~alice
$ rad sync --timeout 3s
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkuPZ…xEuaPUp@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 3 node(s)
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --sigrefs
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --sigrefs
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 1f716870f890be0c13fdd0af9f527af849fec792 parent
z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk c40018821dc1b41cad75e91e0c9d00827e815324 parent
z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z 95cd447c57de8d232c6154f5dba0451aa593520e parent
@@ -173,8 +173,8 @@ see that both seeds are `synced`:
``` ~eve
$ rad sync
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
-✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from z6MkuPZ…xEuaPUp@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 3 node(s)
$ rad sync status
diff --git a/crates/radicle-cli/examples/rad-id-conflict.md b/crates/radicle-cli/examples/rad-id-conflict.md
index d22c89a247..48516bc540 100644
--- a/crates/radicle-cli/examples/rad-id-conflict.md
+++ b/crates/radicle-cli/examples/rad-id-conflict.md
@@ -2,12 +2,12 @@ First let's add Bob as a delegate, and sync the changes to Bob:
``` ~alice
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --threshold 2 -q
-903862f149c03e7ad17be93abd12d4ad04787802
+491c96a516cd9ed236f83e2e2d52d8799f31f4b4
```
``` ~bob
$ cd heartwood
-$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+$ rad sync --fetch rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -17,29 +17,29 @@ time:
``` ~alice
$ rad id update --title "Edit project name" --description "" --payload "xyz.radicle.project" "name" '"heart"' -q
-05c576e08c21b0fdc9745a4a5f97fbb5639a0bd6
+3ed4e24714345d5a27563b671f219112db17d482
```
``` ~bob
$ rad id update --title "Edit project name" --description "" --payload "xyz.radicle.project" "name" '"wood"' -q
-6bd104e94b20d08d7020a4f425d3c5c2f1cf8d43
+ff74fd6ae8df3729b4554e2287f403cb335ff615
```
When Alice syncs with Bob, she notices the problem: there are two active
revisions.
``` ~alice
-$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+$ rad sync --fetch rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ rad id list
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Status Created Parent │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 6bd104e Edit project name bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk active now 903862f │
-│ ● 05c576e Edit project name alice (you) active now 903862f │
-│ ● 903862f Add Bob alice (you) accepted now 2cfded2 │
-│ ● 2cfded2 Initial revision alice (you) accepted now none │
+│ ● ff74fd6 Edit project name bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk active now 491c96a │
+│ ● 3ed4e24 Edit project name alice (you) active now 491c96a │
+│ ● 491c96a Add Bob alice (you) accepted now 8639908 │
+│ ● 8639908 Initial revision alice (you) accepted now none │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -47,15 +47,15 @@ This isn't a problem as long as we don't try to accept both. Alice decides to
go with Bob's proposal, so she redacts her own first and then accepts his:
``` ~alice
-$ rad id redact 05c576e -q
-$ rad id accept 6bd104e -q
+$ rad id redact 3ed4e24 -q
+$ rad id accept ff74fd6 -q
$ rad id list
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Status Created Parent │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 6bd104e Edit project name bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk accepted now 903862f │
-│ ● 903862f Add Bob alice (you) accepted now 2cfded2 │
-│ ● 2cfded2 Initial revision alice (you) accepted now none │
+│ ● ff74fd6 Edit project name bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk accepted now 491c96a │
+│ ● 491c96a Add Bob alice (you) accepted now 8639908 │
+│ ● 8639908 Initial revision alice (you) accepted now none │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -63,12 +63,12 @@ Alice's revision was redacted and is no longer visible. Bob syncs and sees
that the conflict is resolved:
``` ~bob
-$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+$ rad sync --fetch rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
``` ~bob (fail)
-$ rad id show 05c576e
-✗ Error: revision `05c576e08c21b0fdc9745a4a5f97fbb5639a0bd6` not found
+$ rad id show 3ed4e24
+✗ Error: revision `3ed4e24714345d5a27563b671f219112db17d482` not found
```
diff --git a/crates/radicle-cli/examples/rad-id-multi-delegate.md b/crates/radicle-cli/examples/rad-id-multi-delegate.md
index 4135068adb..3f1abbe808 100644
--- a/crates/radicle-cli/examples/rad-id-multi-delegate.md
+++ b/crates/radicle-cli/examples/rad-id-multi-delegate.md
@@ -1,39 +1,39 @@
``` ~alice
-$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
-ff50694a35d2a891413cfd7f9a4b855057c3f1ab
-$ rad inspect --sigrefs rad:zHb72m63NBufHR7jmZi732BBT6j6
+$ rad id update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
+c7d68a801ed8c107521cb63b4089b4bd6601fad4
+$ rad inspect --sigrefs rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [..] parent
z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [..] parent
-z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z 9a07b433d41a26efc4003cd3e362ac500905d370 parent
+z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z 75f45dfa9e24758179f906e7bb7a453e00412f67 parent
```
``` ~bob
-$ rad watch --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z -r 'refs/rad/sigrefs' -t 9a07b433d41a26efc4003cd3e362ac500905d370 -i 500 --timeout 5000ms
-$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+$ rad watch --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z -r 'refs/rad/sigrefs' -t 75f45dfa9e24758179f906e7bb7a453e00412f67 -i 500 --timeout 5000ms
+$ rad sync --fetch rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-$ rad id --repo rad:zHb72m63NBufHR7jmZi732BBT6j6
+$ rad id --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Status Created Parent │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● ff50694 Add Bob alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi accepted now 2cfded2 │
-│ ● 2cfded2 Initial revision alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi accepted now none │
+│ ● c7d68a8 Add Bob alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi accepted now 8639908 │
+│ ● 8639908 Initial revision alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi accepted now none │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --sigrefs
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --sigrefs
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [..] parent
z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [..] root
z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z [..] parent
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --delegates
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --delegates
did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Eve" --description "" --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --no-confirm
-✓ Identity revision b22496526a7f7ef23696c4efb105b6ae68e61fac created
+$ rad id update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --title "Add Eve" --description "" --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --no-confirm
+✓ Identity revision 46bb20352ca9d8c0a5b9fdccf17f66ff9f13aeaf created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Eve │
-│ Revision b22496526a7f7ef23696c4efb105b6ae68e61fac │
-│ Parent ff50694a35d2a891413cfd7f9a4b855057c3f1ab │
-│ Blob 2f8b59ccbe9fc8ccd5b1a3019eed86b44f57d614 │
+│ Revision 46bb20352ca9d8c0a5b9fdccf17f66ff9f13aeaf │
+│ Parent c7d68a801ed8c107521cb63b4089b4bd6601fad4 │
+│ Blob 57dda7d9ab25ad958838e479c0c8e5ab7af56cd7 │
│ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
│ State active │
│ Quorum no │
@@ -42,8 +42,9 @@ $ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Eve" --desc
│ ? did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,23 +1,24 @@
+@@ -1,24 +1,25 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -71,21 +72,21 @@ $ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Eve" --desc
```
``` ~alice
-$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+$ rad sync --fetch rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --delegates
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --delegates
did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-$ rad id accept b22496526a7f7ef23696c4efb105b6ae68e61fac --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-confirm
-✓ Revision b22496526a7f7ef23696c4efb105b6ae68e61fac accepted
+$ rad id accept 46bb20352ca9d8c0a5b9fdccf17f66ff9f13aeaf --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --no-confirm
+✓ Revision 46bb20352ca9d8c0a5b9fdccf17f66ff9f13aeaf accepted
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Eve │
-│ Revision b22496526a7f7ef23696c4efb105b6ae68e61fac │
-│ Parent ff50694a35d2a891413cfd7f9a4b855057c3f1ab │
-│ Blob 2f8b59ccbe9fc8ccd5b1a3019eed86b44f57d614 │
+│ Revision 46bb20352ca9d8c0a5b9fdccf17f66ff9f13aeaf │
+│ Parent c7d68a801ed8c107521cb63b4089b4bd6601fad4 │
+│ Blob 57dda7d9ab25ad958838e479c0c8e5ab7af56cd7 │
│ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
│ State accepted │
│ Quorum yes │
@@ -93,15 +94,15 @@ $ rad id accept b22496526a7f7ef23696c4efb105b6ae68e61fac --repo rad:zHb72m63NBuf
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
│ ✓ did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk bob │
╰────────────────────────────────────────────────────────────────────────╯
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --delegates
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --delegates
did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (eve)
```
``` ~alice
-$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Make private" --description "" --visibility private --no-confirm -q
-60aeac05f3a240c67ca069b59ab2641466aa2999
+$ rad id update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --title "Make private" --description "" --visibility private --no-confirm -q
+ec079dc70ee5279af315e281e37b6b989e6f73c4
```
We can list all revisions:
@@ -111,35 +112,35 @@ $ rad id list
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Status Created Parent │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 60aeac0 Make private alice (you) active now b224965 │
-│ ● b224965 Add Eve bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk accepted now ff50694 │
-│ ● ff50694 Add Bob alice (you) accepted now 2cfded2 │
-│ ● 2cfded2 Initial revision alice (you) accepted now none │
+│ ● ec079dc Make private alice (you) active now 46bb203 │
+│ ● 46bb203 Add Eve bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk accepted now c7d68a8 │
+│ ● c7d68a8 Add Bob alice (you) accepted now 8639908 │
+│ ● 8639908 Initial revision alice (you) accepted now none │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Despite being a delegate, Bob can't edit or redact Alice's revision:
``` ~bob (fail)
-$ rad id redact 60aeac05f3a240c67ca069b59ab2641466aa2999
+$ rad id redact ec079dc70ee5279af315e281e37b6b989e6f73c4
[..]
```
``` ~bob (fail)
-$ rad id edit --title "Boo!" --description "Boo!" 60aeac05f3a240c67ca069b59ab2641466aa2999
+$ rad id edit --title "Boo!" --description "Boo!" ec079dc70ee5279af315e281e37b6b989e6f73c4
[..]
```
Alice can edit:
``` ~alice
-$ rad id edit --title "Make private" --description "Privacy is cool." 60aeac05f3a240c67ca069b59ab2641466aa2999
-✓ Revision 60aeac05f3a240c67ca069b59ab2641466aa2999 edited
-$ rad id show 60aeac05f3a240c67ca069b59ab2641466aa2999
+$ rad id edit --title "Make private" --description "Privacy is cool." ec079dc70ee5279af315e281e37b6b989e6f73c4
+✓ Revision ec079dc70ee5279af315e281e37b6b989e6f73c4 edited
+$ rad id show ec079dc70ee5279af315e281e37b6b989e6f73c4
╭────────────────────────────────────────────────────────────────────────╮
│ Title Make private │
-│ Revision 60aeac05f3a240c67ca069b59ab2641466aa2999 │
-│ Parent b22496526a7f7ef23696c4efb105b6ae68e61fac │
-│ Blob 4d0e2ea9fe24ad01b14fbb1c0e574d996f66ce78 │
+│ Revision ec079dc70ee5279af315e281e37b6b989e6f73c4 │
+│ Parent 46bb20352ca9d8c0a5b9fdccf17f66ff9f13aeaf │
+│ Blob 530abcfb097cf9ea3f47139cc143b5678333ffb6 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State active │
│ Quorum no │
@@ -151,8 +152,9 @@ $ rad id show 60aeac05f3a240c67ca069b59ab2641466aa2999
│ ? did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z eve │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,24 +1,27 @@
+@@ -1,25 +1,28 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -185,23 +187,23 @@ $ rad id show 60aeac05f3a240c67ca069b59ab2641466aa2999
And she can redact her revision:
``` ~alice
-$ rad id redact 60aeac05f3a240c67ca069b59ab2641466aa2999
-✓ Revision 60aeac05f3a240c67ca069b59ab2641466aa2999 redacted
+$ rad id redact ec079dc70ee5279af315e281e37b6b989e6f73c4
+✓ Revision ec079dc70ee5279af315e281e37b6b989e6f73c4 redacted
```
``` ~alice (fail)
-$ rad id show 60aeac05f3a240c67ca069b59ab2641466aa2999
-✗ Error: revision `60aeac05f3a240c67ca069b59ab2641466aa2999` not found
+$ rad id show ec079dc70ee5279af315e281e37b6b989e6f73c4
+✗ Error: revision `ec079dc70ee5279af315e281e37b6b989e6f73c4` not found
```
Finally, Alice can also propose to remove Bob:
``` ~alice
-$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Remove Bob" --description "" --rescind did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm
-✓ Identity revision f4e01d3c88f7f65b2935fca675ae5a3898603ce5 created
+$ rad id update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --title "Remove Bob" --description "" --rescind did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm
+✓ Identity revision 3940c10cb70dc6b52f9280d06c3cf0bc84d3b4a2 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Remove Bob │
-│ Revision f4e01d3c88f7f65b2935fca675ae5a3898603ce5 │
-│ Parent b22496526a7f7ef23696c4efb105b6ae68e61fac │
-│ Blob 650f027fe754d25e4c88c7955f334fbf7b689036 │
+│ Revision 3940c10cb70dc6b52f9280d06c3cf0bc84d3b4a2 │
+│ Parent 46bb20352ca9d8c0a5b9fdccf17f66ff9f13aeaf │
+│ Blob 488e5cb72027dfc2b9e2b5a92ab6e1f8d8040609 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State active │
│ Quorum no │
@@ -211,8 +213,9 @@ $ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Remove Bob" --d
│ ? did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z eve │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,24 +1,23 @@
+@@ -1,25 +1,24 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
diff --git a/crates/radicle-cli/examples/rad-id-private.md b/crates/radicle-cli/examples/rad-id-private.md
index b3f6e01400..7dd833535c 100644
--- a/crates/radicle-cli/examples/rad-id-private.md
+++ b/crates/radicle-cli/examples/rad-id-private.md
@@ -9,6 +9,7 @@ $ rad id update --title "Allow Bob & Eve" --allow did:key:z6Mkt67GdsW7715MEfRuP4
...
$ rad inspect --identity
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -46,6 +47,7 @@ $ rad id update --title "Remove allow list" --disallow did:key:z6Mkt67GdsW7715ME
...
$ rad inspect --identity
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
diff --git a/crates/radicle-cli/examples/rad-id-threshold-soft-fork.md b/crates/radicle-cli/examples/rad-id-threshold-soft-fork.md
index 7a8df72c30..5ccf761203 100644
--- a/crates/radicle-cli/examples/rad-id-threshold-soft-fork.md
+++ b/crates/radicle-cli/examples/rad-id-threshold-soft-fork.md
@@ -3,10 +3,10 @@ without having pushed the canonical default branch. For example, Bob can create
an issue in the repository:
``` ~bob
-$ rad issue open --title "Add Bob as a delegate" --description "We agreed to add me as a delegate, so I am creating an issue to track that work" --repo rad:zHb72m63NBufHR7jmZi732BBT6j6
+$ rad issue open --title "Add Bob as a delegate" --description "We agreed to add me as a delegate, so I am creating an issue to track that work" --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
╭──────────────────────────────────────────────────────────────╮
│ Title Add Bob as a delegate │
-│ Issue d345ded51b6fd9f8ee3f6a870fb64928d8b0c33d │
+│ Issue aeb4689547ce516268521aa52e2c5649bcb91bfd │
│ Author bob (you) │
│ Status open │
│ │
@@ -24,7 +24,7 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ └── xyz.radicle.id
- │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+ │ └── 86399084097fb674569f5bc5847da609ab91aa9f
├── heads
│ └── master
└── rad
@@ -35,7 +35,7 @@ z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
└── refs
├── cobs
│ └── xyz.radicle.issue
- │ └── d345ded51b6fd9f8ee3f6a870fb64928d8b0c33d
+ │ └── aeb4689547ce516268521aa52e2c5649bcb91bfd
└── rad
├── root
└── sigrefs
@@ -46,5 +46,5 @@ as a delegate, since a threshold of 1 can still be reached:
``` ~alice
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk -q
-b9990e59e97ae8dae5a4808c16542b0a2978362e
+83ac41c238b1ece55e11ca0ad8621fe5013e30e5
```
diff --git a/crates/radicle-cli/examples/rad-id-threshold.md b/crates/radicle-cli/examples/rad-id-threshold.md
index 78b222286b..10b30c822c 100644
--- a/crates/radicle-cli/examples/rad-id-threshold.md
+++ b/crates/radicle-cli/examples/rad-id-threshold.md
@@ -7,7 +7,7 @@ can be updated.
``` ~alice (fail)
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --threshold 2
-✗ Error: failed to verify delegates for rad:zHb72m63NBufHR7jmZi732BBT6j6
+✗ Error: failed to verify delegates for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
✗ Error: the required threshold of delegates cannot be met..
✗ Error: the delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk is missing
✗ Hint: run `rad follow did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk` to follow this missing peer
@@ -18,12 +18,12 @@ Instead, Alice can simply keep the `threshold` as `1` and still add Bob as a del
``` ~alice
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-✓ Identity revision b9990e59e97ae8dae5a4808c16542b0a2978362e created
+✓ Identity revision 83ac41c238b1ece55e11ca0ad8621fe5013e30e5 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Bob │
-│ Revision b9990e59e97ae8dae5a4808c16542b0a2978362e │
-│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
-│ Blob 7b67070adb4d1f3172c4d81787102eadf06abadd │
+│ Revision 83ac41c238b1ece55e11ca0ad8621fe5013e30e5 │
+│ Parent 86399084097fb674569f5bc5847da609ab91aa9f │
+│ Blob 0653b9dbe278688862856d37e1c6bb66ef35ebed │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -33,8 +33,9 @@ $ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delega
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,22 +1,23 @@
+@@ -1,23 +1,24 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -75,7 +76,7 @@ $ git commit -v -m "Define power requirements"
``` ~alice (stderr) RAD_SOCKET=/dev/null
$ git push rad master
✓ Canonical reference refs/heads/master updated to target commit 3e674d1a1df90807e934f9ae5da2591dd6848a33
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..3e674d1 master -> master
```
@@ -96,8 +97,8 @@ $ git commit -v -m "Add README file"
``` ~alice (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:refs/patches
-✓ Patch 65958b93b63118dba40d520a3bac54e1ec970efd opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch a398ac1d69d987771b3390a8f2014d867d477643 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -105,8 +106,8 @@ Any other seeds can also still fetch changes from Alice without any
errors:
``` ~seed
-$ rad sync rad:zHb72m63NBufHR7jmZi732BBT6j6 -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+$ rad sync rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G -f
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -119,6 +120,7 @@ The identity has the new delegate, while the `threshold` is still `1`
``` ~alice
$ rad inspect --identity
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -152,13 +154,13 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ ├── xyz.radicle.id
- │ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+ │ │ └── 86399084097fb674569f5bc5847da609ab91aa9f
│ └── xyz.radicle.patch
- │ └── 65958b93b63118dba40d520a3bac54e1ec970efd
+ │ └── a398ac1d69d987771b3390a8f2014d867d477643
├── heads
│ ├── master
│ └── patches
- │ └── 65958b93b63118dba40d520a3bac54e1ec970efd
+ │ └── a398ac1d69d987771b3390a8f2014d867d477643
└── rad
├── id
├── root
@@ -170,18 +172,18 @@ Similarly, she still does not have Bob's `rad/sigrefs`:
``` ~alice
$ rad inspect --sigrefs
-z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 7eb4ed893f72509b64171b25b7766016512d6eaf parent
+z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 6a365b1521af06ad9a3039c7d72604ba025fbc88 parent
```
And she can still list the project, without any worries:
``` ~alice
$ rad ls
-╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public 3e674d1 Radicle Heartwood Protocol & Stack │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G public 3e674d1 Radicle Heartwood Protocol & Stack │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Once Bob clones the repository and creates a fork, i.e. creates a
@@ -189,9 +191,9 @@ branch to `refs/heads/master` for this project, she can then use `rad
sync` and fetch his references:
``` ~bob
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -208,16 +210,16 @@ Run `cd ./heartwood` to go to the repository directory.
``` ~bob
$ cd heartwood
$ rad fork
-✓ Forked repository rad:zHb72m63NBufHR7jmZi732BBT6j6 for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+✓ Forked repository rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
```
``` ~alice
$ rad sync -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ rad inspect --sigrefs
-z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 7eb4ed893f72509b64171b25b7766016512d6eaf parent
-z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk ee48e12a9de5bb59896d0b6536cc29e91ecb4f58 parent
+z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 6a365b1521af06ad9a3039c7d72604ba025fbc88 parent
+z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk 66f927b4cda7081e72b6dfb225ce686ef235749d parent
```
diff --git a/crates/radicle-cli/examples/rad-id-unauthorized-delegate.md b/crates/radicle-cli/examples/rad-id-unauthorized-delegate.md
index a3a84da1be..9a16e053ac 100644
--- a/crates/radicle-cli/examples/rad-id-unauthorized-delegate.md
+++ b/crates/radicle-cli/examples/rad-id-unauthorized-delegate.md
@@ -1,7 +1,7 @@
-Alice has created a new repository `rad:zHb72m63NBufHR7jmZi732BBT6j6` with only herself as the sole delegate. After Bob has cloned it, let's ensure he can't add himself as a delegate too:
+Alice has created a new repository `rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G` with only herself as the sole delegate. After Bob has cloned it, let's ensure he can't add himself as a delegate too:
``` ~bob (fail)
-$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add myself!" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm
+$ rad id update --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --title "Add myself!" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm
✗ Error: did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk is not a delegate, and only delegates are allowed to create a revision
✗ Hint: bob (you) is attempting to modify the identity document but is not a delegate!
```
diff --git a/crates/radicle-cli/examples/rad-id-unknown-field.md b/crates/radicle-cli/examples/rad-id-unknown-field.md
index 150986aa25..c688692a69 100644
--- a/crates/radicle-cli/examples/rad-id-unknown-field.md
+++ b/crates/radicle-cli/examples/rad-id-unknown-field.md
@@ -3,12 +3,12 @@ added. Here we will add an emoji alias for the heartwood project:
```
$ rad id update --title "Add emoji alias" --description "Adding alias field" --payload xyz.radicle.project alias '"❤️🪵"'
-✓ Identity revision 0f159671d1d629bea5d81c61205f3328165d2ea9 created
+✓ Identity revision 095516e23373bd6b868f46b017893008edba4439 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add emoji alias │
-│ Revision 0f159671d1d629bea5d81c61205f3328165d2ea9 │
-│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
-│ Blob a3a9a20ee837a01c908b5905527601c33f8dc666 │
+│ Revision 095516e23373bd6b868f46b017893008edba4439 │
+│ Parent 86399084097fb674569f5bc5847da609ab91aa9f │
+│ Blob 2c87f6c8d62a9a0c0f95b333900272d477c291a7 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -18,8 +18,9 @@ $ rad id update --title "Add emoji alias" --description "Adding alias field" --p
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,22 +1,23 @@
+@@ -1,23 +1,24 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -49,9 +50,9 @@ attempt to deserialize the payload:
```
$ rad ls
-╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G public f2de534 Radicle Heartwood Protocol & Stack │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-id-update-delete-field.md b/crates/radicle-cli/examples/rad-id-update-delete-field.md
index 0ab244b8bb..ea21a6c7c6 100644
--- a/crates/radicle-cli/examples/rad-id-update-delete-field.md
+++ b/crates/radicle-cli/examples/rad-id-update-delete-field.md
@@ -2,12 +2,12 @@ Let's add a payload field and then delete it.
```
$ rad id update --title "Add field" --description "Add a new 'web' field" --payload xyz.radicle.project web '"https://acme.example"'
-✓ Identity revision ebdd5c4c45fea5f4e2ba92542582e3cacfe48092 created
+✓ Identity revision 0e4955004e8340b3bb874da7aa5b5a0fcad51b73 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add field │
-│ Revision ebdd5c4c45fea5f4e2ba92542582e3cacfe48092 │
-│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
-│ Blob 065022285f87479e7192a65794f26e9fe20b1d36 │
+│ Revision 0e4955004e8340b3bb874da7aa5b5a0fcad51b73 │
+│ Parent 86399084097fb674569f5bc5847da609ab91aa9f │
+│ Blob 8e175fd5bbc3ffea7e654964e7fb321b2d897aea │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -17,8 +17,9 @@ $ rad id update --title "Add field" --description "Add a new 'web' field" --payl
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,22 +1,23 @@
+@@ -1,23 +1,24 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -48,12 +49,12 @@ Now let's delete it by setting it to `null`.
```
$ rad id update --title "Delete field" --description "Delete 'web'" --payload xyz.radicle.project web null
-✓ Identity revision 0af91f0ab9a752f4c0a2b681281450e69488e7a4 created
+✓ Identity revision ab26ce0dfca6e3df7adf8c918825711336e21ce5 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Delete field │
-│ Revision 0af91f0ab9a752f4c0a2b681281450e69488e7a4 │
-│ Parent ebdd5c4c45fea5f4e2ba92542582e3cacfe48092 │
-│ Blob 14875c28ade7241b3bda8c59be34f8f9f289196d │
+│ Revision ab26ce0dfca6e3df7adf8c918825711336e21ce5 │
+│ Parent 0e4955004e8340b3bb874da7aa5b5a0fcad51b73 │
+│ Blob f10bd9e36848dc4eb70cc078d1d0bbaac7c1ba61 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -63,8 +64,9 @@ $ rad id update --title "Delete field" --description "Delete 'web'" --payload xy
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,23 +1,22 @@
+@@ -1,24 +1,23 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
diff --git a/crates/radicle-cli/examples/rad-id.md b/crates/radicle-cli/examples/rad-id.md
index 93a6225536..2f8ae5b79b 100644
--- a/crates/radicle-cli/examples/rad-id.md
+++ b/crates/radicle-cli/examples/rad-id.md
@@ -15,12 +15,12 @@ threshold to `2`.
```
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --threshold 2
-✓ Identity revision 903862f149c03e7ad17be93abd12d4ad04787802 created
+✓ Identity revision 491c96a516cd9ed236f83e2e2d52d8799f31f4b4 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Bob │
-│ Revision 903862f149c03e7ad17be93abd12d4ad04787802 │
-│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
-│ Blob 3637b2bc6d4fb703a77af02b57f0bc8253edc91c │
+│ Revision 491c96a516cd9ed236f83e2e2d52d8799f31f4b4 │
+│ Parent 86399084097fb674569f5bc5847da609ab91aa9f │
+│ Blob 4b49080fa898fea405a320fe68c10ee9e3fa559d │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -30,8 +30,9 @@ $ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delega
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,22 +1,23 @@
+@@ -1,23 +1,24 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -86,6 +87,7 @@ can verify that by listing the current identity document:
```
$ rad inspect --identity
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -112,9 +114,9 @@ $ rad inspect --identity
We can also look at the document's COB directly:
```
-$ rad cob log --object 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 --type xyz.radicle.id --repo rad:zHb72m63NBufHR7jmZi732BBT6j6
-commit 903862f149c03e7ad17be93abd12d4ad04787802
-parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+$ rad cob log --object 86399084097fb674569f5bc5847da609ab91aa9f --type xyz.radicle.id --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+commit 491c96a516cd9ed236f83e2e2d52d8799f31f4b4
+parent 86399084097fb674569f5bc5847da609ab91aa9f
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -122,21 +124,21 @@ date Thu, 15 Dec 2022 17:28:04 +0000
"type": "revision",
"title": "Add Bob",
"description": "Add Bob as a delegate",
- "blob": "3637b2bc6d4fb703a77af02b57f0bc8253edc91c",
- "parent": "2cfded2c0f8d65f55cfdb960e648cd2c2fee9240",
- "signature": "zkL1kPPLC9EUmyusxTJ7XK6XCGcuiY1H57KHqkQbYyFHzUmZZ3fiQxYDjodbNooSczb9sS1WfCM91j3yusMFYK4Z"
+ "blob": "4b49080fa898fea405a320fe68c10ee9e3fa559d",
+ "parent": "86399084097fb674569f5bc5847da609ab91aa9f",
+ "signature": "z3a5oLvRLXLi6aoXUqzWpbT5n4MHstpvHCpmb2p5KVVdKNJzyoKgEFNtk7554SwvtgMhgnpwAqK1JnzT9DFTtwDE8"
}
-commit 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+commit 86399084097fb674569f5bc5847da609ab91aa9f
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "revision",
"title": "Initial revision",
- "blob": "14875c28ade7241b3bda8c59be34f8f9f289196d",
+ "blob": "f10bd9e36848dc4eb70cc078d1d0bbaac7c1ba61",
"parent": null,
- "signature": "z3rkppeThL3SQB4Dr3zjtzGmicfjfjmUFL6ZV1A2vJKrBpjrBBJEn6XvEWhU3nzjbd9EFTtjqt8y2DiVKVEF1Cy2r"
+ "signature": "zWUiHpVnmzm6Hd5aUphUdHABCtMUHQCfGYLthhXgmEDNCqTrrPLiBRMEopxYF7WUfoR2ZUEpqjPMjENPBNBjAPe7"
}
```
@@ -144,12 +146,12 @@ date Thu, 15 Dec 2022 17:28:04 +0000
We can use `rad id show` to show the changes of an accepted update:
```
-$ rad id show 903862f149c03e7ad17be93abd12d4ad04787802
+$ rad id show 491c96a516cd9ed236f83e2e2d52d8799f31f4b4
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Bob │
-│ Revision 903862f149c03e7ad17be93abd12d4ad04787802 │
-│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
-│ Blob 3637b2bc6d4fb703a77af02b57f0bc8253edc91c │
+│ Revision 491c96a516cd9ed236f83e2e2d52d8799f31f4b4 │
+│ Parent 86399084097fb674569f5bc5847da609ab91aa9f │
+│ Blob 4b49080fa898fea405a320fe68c10ee9e3fa559d │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -159,8 +161,9 @@ $ rad id show 903862f149c03e7ad17be93abd12d4ad04787802
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,22 +1,23 @@
+@@ -1,23 +1,24 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -191,15 +194,15 @@ Note that once a revision is accepted, it can't be edited, redacted or otherwise
acted upon:
``` (fail)
-$ rad id redact 903862f149c03e7ad17be93abd12d4ad04787802
+$ rad id redact 491c96a516cd9ed236f83e2e2d52d8799f31f4b4
✗ Error: [..]
```
``` (fail)
-$ rad id reject 903862f149c03e7ad17be93abd12d4ad04787802
+$ rad id reject 491c96a516cd9ed236f83e2e2d52d8799f31f4b4
✗ Error: [..]
```
``` (fail)
-$ rad id accept 903862f149c03e7ad17be93abd12d4ad04787802
+$ rad id accept 491c96a516cd9ed236f83e2e2d52d8799f31f4b4
✗ Error: [..]
```
diff --git a/crates/radicle-cli/examples/rad-inbox.md b/crates/radicle-cli/examples/rad-inbox.md
index 41107134c4..537199a52c 100644
--- a/crates/radicle-cli/examples/rad-inbox.md
+++ b/crates/radicle-cli/examples/rad-inbox.md
@@ -28,17 +28,17 @@ $ rad inbox --sort-by id
``` ~alice
$ rad inbox --all --sort-by id
+╭────────────────────────────────────────────────────────────────╮
+│ radicle-git │
+├────────────────────────────────────────────────────────────────┤
+│ 003 ● [ ... ] Copyright fixes patch open bob now │
+╰────────────────────────────────────────────────────────────────╯
╭──────────────────────────────────────────────────────────────────────╮
│ heartwood │
├──────────────────────────────────────────────────────────────────────┤
│ 001 ● [ ... ] No license file issue open bob now │
│ 002 ● bob/copy Change copyright branch created bob now │
╰──────────────────────────────────────────────────────────────────────╯
-╭────────────────────────────────────────────────────────────────╮
-│ radicle-git │
-├────────────────────────────────────────────────────────────────┤
-│ 003 ● [ ... ] Copyright fixes patch open bob now │
-╰────────────────────────────────────────────────────────────────╯
```
``` ~alice
@@ -125,6 +125,7 @@ $ rad inbox --all
╰──────────────────────────────────────────────────────────────────────╯
$ rad inbox show 1
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
diff --git a/crates/radicle-cli/examples/rad-init-existing-bare.md b/crates/radicle-cli/examples/rad-init-existing-bare.md
index fa7b0511d1..3b093f91fd 100644
--- a/crates/radicle-cli/examples/rad-init-existing-bare.md
+++ b/crates/radicle-cli/examples/rad-init-existing-bare.md
@@ -14,19 +14,19 @@ $ rad .
Let's pick an existing repository:
```
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6
-rad:zHb72m63NBufHR7jmZi732BBT6j6
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
And initialize this working copy as that existing repository:
```
-$ rad init --setup-signing --existing rad:zHb72m63NBufHR7jmZi732BBT6j6
+$ rad init --setup-signing --existing rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
Configuring Radicle signing key SHA256:UIedaL6Cxm6OUErh9GQUzzglSk7VpQlVTI1TAFB/HWA…
✓ Signing configured in [..]/heartwood/config
! Not writing .gitsigners file.
-✓ Initialized existing repository rad:zHb72m63NBufHR7jmZi732BBT6j6 in [..]/heartwood/..
+✓ Initialized existing repository rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G in [..]/heartwood/..
```
The warning about not writing `.gitsigners` is expected, as this requires a
@@ -35,11 +35,11 @@ working directory, which a bare repository does not have.
We can confirm that the working copy is initialized:
```
$ rad .
-rad:zHb72m63NBufHR7jmZi732BBT6j6
+rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
$ git remote show rad
* remote rad
- Fetch URL: rad://zHb72m63NBufHR7jmZi732BBT6j6
- Push URL: rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ Fetch URL: rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
+ Push URL: rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
HEAD branch: master
Remote branch:
master new (next fetch will store in remotes/rad)
diff --git a/crates/radicle-cli/examples/rad-init-existing.md b/crates/radicle-cli/examples/rad-init-existing.md
index 71e94709f5..6f5f5811f5 100644
--- a/crates/radicle-cli/examples/rad-init-existing.md
+++ b/crates/radicle-cli/examples/rad-init-existing.md
@@ -14,29 +14,29 @@ $ rad .
Let's pick an existing repository:
```
-$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6
-rad:zHb72m63NBufHR7jmZi732BBT6j6
+$ rad inspect rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
And initialize this working copy as that existing repository:
```
-$ rad init --setup-signing --existing rad:zHb72m63NBufHR7jmZi732BBT6j6
+$ rad init --setup-signing --existing rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
Configuring Radicle signing key SHA256:UIedaL6Cxm6OUErh9GQUzzglSk7VpQlVTI1TAFB/HWA…
✓ Signing configured in [..]/heartwood/.git/config
✓ Created .gitsigners file
-✓ Initialized existing repository rad:zHb72m63NBufHR7jmZi732BBT6j6 in [..]/heartwood/..
+✓ Initialized existing repository rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G in [..]/heartwood/..
```
We can confirm that the working copy is initialized:
```
$ rad .
-rad:zHb72m63NBufHR7jmZi732BBT6j6
+rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
$ git remote show rad
* remote rad
- Fetch URL: rad://zHb72m63NBufHR7jmZi732BBT6j6
- Push URL: rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ Fetch URL: rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
+ Push URL: rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
HEAD branch: master
Remote branch:
master new (next fetch will store in remotes/rad)
diff --git a/crates/radicle-cli/examples/rad-init-no-seed.md b/crates/radicle-cli/examples/rad-init-no-seed.md
index 7b2864e8b8..d865bd81b9 100644
--- a/crates/radicle-cli/examples/rad-init-no-seed.md
+++ b/crates/radicle-cli/examples/rad-init-no-seed.md
@@ -6,7 +6,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z4ASL2m61QbA12rkUnmge5f4KofSv
+Your Repository ID (RID) is rad:z41A7PnmXror3L2oP1vq81vhCQPBc
You can show it any time by running `rad .` from this directory.
Your repository will be announced to the network when you start your node.
@@ -19,11 +19,11 @@ $ rad node inventory
If we then seed it, it becomes advertised in our inventory:
```
-$ rad seed rad:z4ASL2m61QbA12rkUnmge5f4KofSv
-✓ Inventory updated with rad:z4ASL2m61QbA12rkUnmge5f4KofSv
-✓ Seeding policy updated for rad:z4ASL2m61QbA12rkUnmge5f4KofSv with scope 'followed'
+$ rad seed rad:z41A7PnmXror3L2oP1vq81vhCQPBc
+✓ Inventory updated with rad:z41A7PnmXror3L2oP1vq81vhCQPBc
+✓ Seeding policy updated for rad:z41A7PnmXror3L2oP1vq81vhCQPBc with scope 'followed'
```
```
$ rad node inventory
-rad:z4ASL2m61QbA12rkUnmge5f4KofSv
+rad:z41A7PnmXror3L2oP1vq81vhCQPBc
```
diff --git a/crates/radicle-cli/examples/rad-init-private-clone-seed.md b/crates/radicle-cli/examples/rad-init-private-clone-seed.md
index 0fe5ffd1d4..21e8190d48 100644
--- a/crates/radicle-cli/examples/rad-init-private-clone-seed.md
+++ b/crates/radicle-cli/examples/rad-init-private-clone-seed.md
@@ -1,4 +1,4 @@
-Given a private repo `rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch` belonging to Alice,
+Given a private repo `rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2` belonging to Alice,
Alice allows Bob to fetch it, and Bob, without the updated identity document
is able to fetch it by specifying Alice as a seed.
@@ -7,6 +7,7 @@ $ rad id update --title "Allow Bob" --description "" --allow did:key:z6Mkt67GdsW
...
$ rad inspect --identity
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
@@ -38,9 +39,9 @@ $ rad inspect --identity
``` ~bob
$ rad ls --all --private
-$ rad clone rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
-✓ Seeding policy updated for rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch with scope 'followed'
-Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
+$ rad clone rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
+✓ Seeding policy updated for rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 with scope 'followed'
+Fetching rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 from the network, found 1 potential seed(s).
✓ Target met: 1 preferred seed(s).
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -57,8 +58,8 @@ Run `cd ./heartwood` to go to the repository directory.
We can also use `rad seed` to seed and fetch without creating a checkout.
``` ~bob
-$ rad seed rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
-✓ Seeding policy exists for rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch with scope 'followed'
-Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
+$ rad seed rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 --from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
+✓ Seeding policy exists for rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 with scope 'followed'
+Fetching rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
```
diff --git a/crates/radicle-cli/examples/rad-init-private-clone.md b/crates/radicle-cli/examples/rad-init-private-clone.md
index 3813146d1c..485d38857c 100644
--- a/crates/radicle-cli/examples/rad-init-private-clone.md
+++ b/crates/radicle-cli/examples/rad-init-private-clone.md
@@ -1,17 +1,17 @@
-Given a private repo `rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch` belonging to Alice,
+Given a private repo `rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2` belonging to Alice,
Bob tries to fetch it, and even though he's connected to Alice, it fails.
``` ~bob
$ rad ls
```
``` ~bob (fail)
-$ rad clone rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
-✓ Seeding policy updated for rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch with scope 'followed'
-Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
+$ rad clone rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
+✓ Seeding policy updated for rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 with scope 'followed'
+Fetching rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 from the network, found 1 potential seed(s).
✗ Target not met: could not fetch from [z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi], and required 1 more seed(s)
! Warning: Failed to fetch from 1 seed(s).
! Warning: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: an I/O error occurred during the fetch handshake (connection reset)
-✗ Error: no seeds found for rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch
+✗ Error: no seeds found for rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2
```
She allows Bob to view the repository. And when she syncs, one seed (Bob) gets
@@ -28,15 +28,15 @@ Bob can now fetch the private repo without specifying a seed, because he knows
that Alice has the repo after she announced her refs:
``` ~bob
-$ rad sync rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --fetch
-Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
+$ rad sync rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 --fetch
+Fetching rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
$ rad ls --private --all
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Name RID Visibility Head Description │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch private f2de534 radicle heartwood protocol & stack │
+│ heartwood rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 private f2de534 radicle heartwood protocol & stack │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-init-private-no-seed.md b/crates/radicle-cli/examples/rad-init-private-no-seed.md
index cc86af1d18..fbe76c39d2 100644
--- a/crates/radicle-cli/examples/rad-init-private-no-seed.md
+++ b/crates/radicle-cli/examples/rad-init-private-no-seed.md
@@ -9,7 +9,7 @@ Initializing private Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch
+Your Repository ID (RID) is rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2
You can show it any time by running `rad .` from this directory.
You have created a private repository.
@@ -27,8 +27,8 @@ No seeding policies to show.
We can decide to seed it later, so that others can fetch it from us, given
that they are part of the allow list:
```
-$ rad seed rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch
-✓ Seeding policy updated for rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch with scope 'followed'
+$ rad seed rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2
+✓ Seeding policy updated for rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 with scope 'followed'
```
But it still won't show up in our inventory, since it's private:
diff --git a/crates/radicle-cli/examples/rad-init-private-seed.md b/crates/radicle-cli/examples/rad-init-private-seed.md
index acd6cac121..1706ac4a0c 100644
--- a/crates/radicle-cli/examples/rad-init-private-seed.md
+++ b/crates/radicle-cli/examples/rad-init-private-seed.md
@@ -25,17 +25,14 @@ He has to specify a seed that isn't in his routing table:
``` ~bob
$ rad sync rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --fetch --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
-✓ Target met: 1 preferred seed(s).
-🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✗ Target not met: could not fetch from [z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi], and required 1 more seed(s)
+✗ Error: Fetched from 0 preferred seed(s), could not reach 1 seed(s)
+✗ Error: Could not replicate from 1 preferred seed(s)
+✗ Error: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: an I/O error occurred during the fetch handshake (connection reset)
```
``` ~bob
$ rad ls --private --all
-╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch private f2de534 radicle heartwood protocol & stack │
-╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Note that if multiple seeds are specified, the command succeeds as long as one
@@ -43,7 +40,10 @@ seed succeeds.
``` ~bob
$ rad sync rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --fetch --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --seed z6MkwPUeUS2fJMfc2HZN1RQTQcTTuhw4HhPySB8JeUg2mVvx
-Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
-✓ Target met: 1 seed(s)
-🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 2 potential seed(s).
+✗ Target not met: could not fetch from [z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, z6MkwPUeUS2fJMfc2HZN1RQTQcTTuhw4HhPySB8JeUg2mVvx], and required 2 more seed(s)
+✗ Error: Fetched from 0 preferred seed(s), could not reach 2 seed(s)
+✗ Error: Could not replicate from 2 preferred seed(s)
+✗ Error: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: an I/O error occurred during the fetch handshake (connection reset)
+✗ Error: z6MkwPUeUS2fJMfc2HZN1RQTQcTTuhw4HhPySB8JeUg2mVvx: Could not connect. No addresses known.
```
diff --git a/crates/radicle-cli/examples/rad-init-private.md b/crates/radicle-cli/examples/rad-init-private.md
index 74f0c7b22c..03599a1d32 100644
--- a/crates/radicle-cli/examples/rad-init-private.md
+++ b/crates/radicle-cli/examples/rad-init-private.md
@@ -7,7 +7,7 @@ Initializing private Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch
+Your Repository ID (RID) is rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2
You can show it any time by running `rad .` from this directory.
You have created a private repository.
@@ -25,6 +25,6 @@ $ rad seed
╭────────────────────────────────────────────────────────────────╮
│ Repository Name Policy Scope │
├────────────────────────────────────────────────────────────────┤
-│ rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch heartwood allow all │
+│ rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2 heartwood allow all │
╰────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-init-sync-not-connected.md b/crates/radicle-cli/examples/rad-init-sync-not-connected.md
index dd22a13106..35d9e0ccc4 100644
--- a/crates/radicle-cli/examples/rad-init-sync-not-connected.md
+++ b/crates/radicle-cli/examples/rad-init-sync-not-connected.md
@@ -7,7 +7,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:zHb72m63NBufHR7jmZi732BBT6j6
+Your Repository ID (RID) is rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
You can show it any time by running `rad .` from this directory.
✗ Announcing.. <canceled>
diff --git a/crates/radicle-cli/examples/rad-init-sync-preferred.md b/crates/radicle-cli/examples/rad-init-sync-preferred.md
index ab8a2c9f6e..d52bbfceee 100644
--- a/crates/radicle-cli/examples/rad-init-sync-preferred.md
+++ b/crates/radicle-cli/examples/rad-init-sync-preferred.md
@@ -7,7 +7,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG
+Your Repository ID (RID) is rad:z45hwUDmwBidvbiZdL1oLYkzir9gD
You can show it any time by running `rad .` from this directory.
✓ Repository successfully synced to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -16,7 +16,7 @@ You can show it any time by running `rad .` from this directory.
Your repository has been synced to the network and is now discoverable by peers.
View it in your browser at:
- https://radicle.network/nodes/[..]/rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG
+ https://radicle.network/nodes/127.0.0.1/rad:z45hwUDmwBidvbiZdL1oLYkzir9gD
To push changes, run `git push`.
```
diff --git a/crates/radicle-cli/examples/rad-init-sync-timeout.md b/crates/radicle-cli/examples/rad-init-sync-timeout.md
index 8a79f91131..570bfe3eed 100644
--- a/crates/radicle-cli/examples/rad-init-sync-timeout.md
+++ b/crates/radicle-cli/examples/rad-init-sync-timeout.md
@@ -8,7 +8,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG
+Your Repository ID (RID) is rad:z45hwUDmwBidvbiZdL1oLYkzir9gD
You can show it any time by running `rad .` from this directory.
✓ Repository successfully announced to the network.
diff --git a/crates/radicle-cli/examples/rad-init-sync.md b/crates/radicle-cli/examples/rad-init-sync.md
index 88862281fb..982a2b2473 100644
--- a/crates/radicle-cli/examples/rad-init-sync.md
+++ b/crates/radicle-cli/examples/rad-init-sync.md
@@ -9,7 +9,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:zHb72m63NBufHR7jmZi732BBT6j6
+Your Repository ID (RID) is rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
You can show it any time by running `rad .` from this directory.
✓ Repository successfully announced to the network.
diff --git a/crates/radicle-cli/examples/rad-init-with-existing-remote.md b/crates/radicle-cli/examples/rad-init-with-existing-remote.md
index c2bf97cb4d..db36c25274 100644
--- a/crates/radicle-cli/examples/rad-init-with-existing-remote.md
+++ b/crates/radicle-cli/examples/rad-init-with-existing-remote.md
@@ -26,7 +26,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z3q6HhrUVPA2EXZKjzN2N9JrutqEL
+Your Repository ID (RID) is rad:z28iHDqGx6PGukSRwtVZkpbtQoRkF
You can show it any time by running `rad .` from this directory.
Your repository will be announced to the network when you start your node.
diff --git a/crates/radicle-cli/examples/rad-init.md b/crates/radicle-cli/examples/rad-init.md
index 3d441f0925..fe37b6c46f 100644
--- a/crates/radicle-cli/examples/rad-init.md
+++ b/crates/radicle-cli/examples/rad-init.md
@@ -13,7 +13,7 @@ Initializing public Radicle 👾 repository in [..]
"description": "Radicle Heartwood Protocol & Stack"
}
-Your Repository ID (RID) is rad:zHb72m63NBufHR7jmZi732BBT6j6
+Your Repository ID (RID) is rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
You can show it any time by running `rad .` from this directory.
Your repository will be announced to the network when you start your node.
@@ -25,23 +25,23 @@ If we try to initialize it again, we get an error:
``` (fail)
$ rad init
-✗ Error: repository is already initialized with remote rad://zHb72m63NBufHR7jmZi732BBT6j6
+✗ Error: repository is already initialized with remote rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
Repositories can be listed with the `ls` command:
```
$ rad ls
-╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G public f2de534 Radicle Heartwood Protocol & Stack │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Public repositories are added to our inventory:
```
$ rad node inventory
-rad:zHb72m63NBufHR7jmZi732BBT6j6
+rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
diff --git a/crates/radicle-cli/examples/rad-inspect-noauth.md b/crates/radicle-cli/examples/rad-inspect-noauth.md
index 91aa873dc2..0c5cc277f8 100644
--- a/crates/radicle-cli/examples/rad-inspect-noauth.md
+++ b/crates/radicle-cli/examples/rad-inspect-noauth.md
@@ -8,5 +8,5 @@ $ rad self
```
$ rad inspect
-rad:zHb72m63NBufHR7jmZi732BBT6j6
+rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
diff --git a/crates/radicle-cli/examples/rad-inspect.md b/crates/radicle-cli/examples/rad-inspect.md
index d4b9d63ccc..734421da7c 100644
--- a/crates/radicle-cli/examples/rad-inspect.md
+++ b/crates/radicle-cli/examples/rad-inspect.md
@@ -3,14 +3,14 @@ command from inside a working copy:
```
$ rad inspect
-rad:zHb72m63NBufHR7jmZi732BBT6j6
+rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
As a shorthand, you can also simply use `rad .`:
```
$ rad .
-rad:zHb72m63NBufHR7jmZi732BBT6j6
+rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
It's also possible to display all of the repository's git references:
@@ -21,7 +21,7 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ └── xyz.radicle.id
- │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+ │ └── 86399084097fb674569f5bc5847da609ab91aa9f
├── heads
│ └── master
└── rad
@@ -34,7 +34,7 @@ And sigrefs:
```
$ rad inspect --sigrefs
-z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 5b50a21a8b034a0a938c341e30d2fc2a9f2de214 root
+z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 68a0f0d5d4d400f8788fdd8f6c515d0da6fa09be root
```
Or display the repository identity's payload and delegates:
@@ -67,13 +67,14 @@ history:
```
$ rad inspect --history
-commit 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-blob 14875c28ade7241b3bda8c59be34f8f9f289196d
+commit 86399084097fb674569f5bc5847da609ab91aa9f
+blob f10bd9e36848dc4eb70cc078d1d0bbaac7c1ba61
date Thu, 15 Dec 2022 17:28:04 +0000
Initialize identity
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
diff --git a/crates/radicle-cli/examples/rad-issue-list.md b/crates/radicle-cli/examples/rad-issue-list.md
index 957d62c942..d12a20ba75 100644
--- a/crates/radicle-cli/examples/rad-issue-list.md
+++ b/crates/radicle-cli/examples/rad-issue-list.md
@@ -5,14 +5,14 @@ $ rad issue list
╭────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 03d81cb flux capacitor underpowered alice (you) good-first-issue now │
+│ ● cb9d978 flux capacitor underpowered alice (you) good-first-issue now │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
We can now assign ourselves to the open issue.
```
-$ rad issue assign 03d81cb --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
+$ rad issue assign cb9d978 --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
```
It will now also show up in the list of issues assigned to us.
@@ -22,15 +22,15 @@ $ rad issue list --assigned me
╭────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 03d81cb flux capacitor underpowered alice (you) good-first-issue alice now │
+│ ● cb9d978 flux capacitor underpowered alice (you) good-first-issue alice now │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
If we now fix this issue, we can close it.
```
-$ rad issue state --solved 03d81cb --no-announce
-✓ Issue 03d81cb is now solved
+$ rad issue state --solved cb9d978 --no-announce
+✓ Issue cb9d978 is now solved
```
It will not show up in the list of open issues anymore.
@@ -46,7 +46,7 @@ $ rad issue list --solved
╭────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 03d81cb flux capacitor underpowered alice (you) good-first-issue alice now │
+│ ● cb9d978 flux capacitor underpowered alice (you) good-first-issue alice now │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -57,6 +57,6 @@ $ rad issue --solved
╭────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 03d81cb flux capacitor underpowered alice (you) good-first-issue alice now │
+│ ● cb9d978 flux capacitor underpowered alice (you) good-first-issue alice now │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-issue.md b/crates/radicle-cli/examples/rad-issue.md
index b2045d543b..867554c01d 100644
--- a/crates/radicle-cli/examples/rad-issue.md
+++ b/crates/radicle-cli/examples/rad-issue.md
@@ -7,7 +7,7 @@ Let's say the new car you are designing with your peers has a problem with its f
$ rad issue open --title "flux capacitor underpowered" --description "Flux capacitor power requirements exceed current supply" --no-announce
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue 03d81cbed7db716ba49b0ad4910a064a664883ab │
+│ Issue cb9d9788d1854a6d4bc7235756df33b9d372a605 │
│ Author alice (you) │
│ Status open │
│ │
@@ -22,17 +22,17 @@ $ rad issue list
╭──────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├──────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 03d81cb flux capacitor underpowered alice (you) now │
+│ ● cb9d978 flux capacitor underpowered alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────╯
```
Show the issue information issue.
```
-$ rad issue show 03d81cb
+$ rad issue show cb9d978
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue 03d81cbed7db716ba49b0ad4910a064a664883ab │
+│ Issue cb9d9788d1854a6d4bc7235756df33b9d372a605 │
│ Author alice (you) │
│ Status open │
│ │
@@ -51,8 +51,8 @@ Let's assign ourselves to this one, this is to ensure work is not
duplicated. While we're at it, let's add a label.
```
-$ rad issue assign 03d81cb --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
-$ rad issue label 03d81cb --add good-first-issue --no-announce
+$ rad issue assign cb9d978 --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
+$ rad issue label cb9d978 --add good-first-issue --no-announce
```
It will now show in the list of issues assigned to us, along with the new label.
@@ -62,14 +62,14 @@ $ rad issue list --assigned
╭────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 03d81cb flux capacitor underpowered alice (you) good-first-issue alice now │
+│ ● cb9d978 flux capacitor underpowered alice (you) good-first-issue alice now │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Note: this can always be undone with the `unassign` subcommand.
```
-$ rad issue assign 03d81cb --delete did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
+$ rad issue assign cb9d978 --delete did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
```
Great, now we have communicated to the world about our car's defect.
@@ -78,30 +78,30 @@ But wait! We've found an important detail about the car's power requirements.
It will help whoever works on a fix.
```
-$ rad issue comment 03d81cbed7db716ba49b0ad4910a064a664883ab --message 'The flux capacitor needs 1.21 Gigawatts' -q --no-announce
-204e7bbaaf5dde9b50925b84038b8391568086ec
-$ rad issue comment 03d81cbed7db716ba49b0ad4910a064a664883ab --reply-to 204e7bbaaf5dde9b50925b84038b8391568086ec --message 'More power!' -q --no-announce
-ec2e7530c058347a30962a301f09be68a06be22b
+$ rad issue comment cb9d9788d1854a6d4bc7235756df33b9d372a605 --message 'The flux capacitor needs 1.21 Gigawatts' -q --no-announce
+7bec223a4952f6b402385c804df44e1231871449
+$ rad issue comment cb9d9788d1854a6d4bc7235756df33b9d372a605 --reply-to 7bec223a4952f6b402385c804df44e1231871449 --message 'More power!' -q --no-announce
+2ad1eb1cbf0026fd737c691d55d39f41e2065cd1
```
We can see our comments by showing the issue:
```
-$ rad issue show 03d81cbed7db716ba49b0ad4910a064a664883ab
+$ rad issue show cb9d9788d1854a6d4bc7235756df33b9d372a605
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue 03d81cbed7db716ba49b0ad4910a064a664883ab │
+│ Issue cb9d9788d1854a6d4bc7235756df33b9d372a605 │
│ Author alice (you) │
│ Labels good-first-issue │
│ Status open │
│ │
│ Flux capacitor power requirements exceed current supply │
├─────────────────────────────────────────────────────────┤
-│ alice (you) now 204e7bb │
+│ alice (you) now 7bec223 │
│ │
│ The flux capacitor needs 1.21 Gigawatts │
├─────────────────────────────────────────────────────────┤
-│ alice (you) now ec2e753 │
+│ alice (you) now 2ad1eb1 │
│ │
│ More power! │
╰─────────────────────────────────────────────────────────╯
@@ -110,9 +110,9 @@ $ rad issue show 03d81cbed7db716ba49b0ad4910a064a664883ab
We can also edit a comment:
```
-$ rad issue comment 03d81cb --edit ec2e753 -m "Even more power!"
+$ rad issue comment cb9d978 --edit 7bec223 -m "Even more power!"
╭─────────────────────────╮
-│ alice (you) now ec2e753 │
+│ alice (you) now 7bec223 │
│ Even more power! │
╰─────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-merge-after-update.md b/crates/radicle-cli/examples/rad-merge-after-update.md
index 8cecf65c43..36308726ae 100644
--- a/crates/radicle-cli/examples/rad-merge-after-update.md
+++ b/crates/radicle-cli/examples/rad-merge-after-update.md
@@ -4,8 +4,8 @@ Let's start by creating a patch.
$ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push rad HEAD:refs/patches
-✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -17,7 +17,7 @@ $ git checkout master -q
$ git merge feature/1 -q
$ git push rad master
✓ Canonical reference refs/heads/master updated to target commit 954bcdb5008447ce294a61a21d7eb87afbe7f4a6
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..954bcdb master -> master
```
@@ -27,8 +27,8 @@ update it, we expect it to be updated and merged:
``` (stderr) RAD_SOCKET=/dev/null
$ git checkout feature/1 -q
$ git push -f
-✓ Patch 837bfbb updated to revision [..]
-✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 merged
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- + 20aa5dd...954bcdb feature/1 -> patches/837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 (forced update)
+✓ Patch 43362c8 updated to revision [..]
+✓ Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 merged
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ + 20aa5dd...954bcdb feature/1 -> patches/43362c8b437a0ce6798a762f3676e4dd68b67792 (forced update)
```
diff --git a/crates/radicle-cli/examples/rad-merge-no-ff.md b/crates/radicle-cli/examples/rad-merge-no-ff.md
index d5f64a185a..f04ef0ffd0 100644
--- a/crates/radicle-cli/examples/rad-merge-no-ff.md
+++ b/crates/radicle-cli/examples/rad-merge-no-ff.md
@@ -4,8 +4,8 @@ First, let's create a patch.
$ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push rad HEAD:refs/patches
-✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -36,8 +36,8 @@ committer radicle <radicle@localhost> 1671125284 +0000
Finally, we push master and expect the patch to be merged.
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad master
-✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 merged
+✓ Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 merged
✓ Canonical reference refs/heads/master updated to target commit 737a10cfa29111afeb0d43cf3545cee386b939ec
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..737a10c master -> master
```
diff --git a/crates/radicle-cli/examples/rad-merge-via-push.md b/crates/radicle-cli/examples/rad-merge-via-push.md
index 36c4cebade..5add745edc 100644
--- a/crates/radicle-cli/examples/rad-merge-via-push.md
+++ b/crates/radicle-cli/examples/rad-merge-via-push.md
@@ -7,8 +7,8 @@ $ git commit --allow-empty -m "First change"
```
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:refs/patches
-✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
```
@@ -18,8 +18,8 @@ $ git commit --allow-empty -m "Second change"
```
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:refs/patches
-✓ Patch 9cc1b60493391c475723bde8bc0b9cf88644a8bf opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 745487c5cd672f16b29297e8ed65d7f10cd70577 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -28,8 +28,8 @@ This creates some remote tracking branches for us:
```
$ git branch -r
rad/master
- rad/patches/837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
- rad/patches/9cc1b60493391c475723bde8bc0b9cf88644a8bf
+ rad/patches/43362c8b437a0ce6798a762f3676e4dd68b67792
+ rad/patches/745487c5cd672f16b29297e8ed65d7f10cd70577
```
And some remote refs:
@@ -40,15 +40,15 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ ├── xyz.radicle.id
- │ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+ │ │ └── 86399084097fb674569f5bc5847da609ab91aa9f
│ └── xyz.radicle.patch
- │ ├── 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
- │ └── 9cc1b60493391c475723bde8bc0b9cf88644a8bf
+ │ ├── 43362c8b437a0ce6798a762f3676e4dd68b67792
+ │ └── 745487c5cd672f16b29297e8ed65d7f10cd70577
├── heads
│ ├── master
│ └── patches
- │ ├── 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
- │ └── 9cc1b60493391c475723bde8bc0b9cf88644a8bf
+ │ ├── 43362c8b437a0ce6798a762f3676e4dd68b67792
+ │ └── 745487c5cd672f16b29297e8ed65d7f10cd70577
└── rad
├── id
├── root
@@ -68,10 +68,10 @@ When we push to `rad/master`, we automatically merge the patches:
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad master
-✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 merged
-✓ Patch 9cc1b60493391c475723bde8bc0b9cf88644a8bf merged
+✓ Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 merged
+✓ Patch 745487c5cd672f16b29297e8ed65d7f10cd70577 merged
✓ Canonical reference refs/heads/master updated to target commit d6399c71702b40bae00825b3c444478d06b4e91c
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..d6399c7 master -> master
```
```
@@ -79,13 +79,13 @@ $ rad patch --merged
╭─────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────┤
-│ ✓ 837bfbb First change alice (you) - 20aa5dd +0 -0 now │
-│ ✓ 9cc1b60 Second change alice (you) - daf349f +0 -0 now │
+│ ✓ 43362c8 First change alice (you) - 20aa5dd +0 -0 now │
+│ ✓ 745487c Second change alice (you) - daf349f +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────╯
-$ rad patch show 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
+$ rad patch show 43362c8b437a0ce6798a762f3676e4dd68b67792
╭──────────────────────────────────────────────────────────╮
│ Title First change │
-│ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 │
+│ Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 │
│ Author alice (you) │
│ Head 20aa5dde6210796c3a2f04079b42316a31d02689 │
│ Base [..] │
@@ -96,13 +96,13 @@ $ rad patch show 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
├──────────────────────────────────────────────────────────┤
│ 20aa5dd First change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 837bfbb @ [..]..20aa5dd by alice (you) now │
+│ ● Revision 43362c8 @ [..]..20aa5dd by alice (you) now │
│ └─ ✓ merged by alice (you) │
╰──────────────────────────────────────────────────────────╯
-$ rad patch show 9cc1b60493391c475723bde8bc0b9cf88644a8bf
+$ rad patch show 745487c5cd672f16b29297e8ed65d7f10cd70577
╭──────────────────────────────────────────────────────────╮
│ Title Second change │
-│ Patch 9cc1b60493391c475723bde8bc0b9cf88644a8bf │
+│ Patch 745487c5cd672f16b29297e8ed65d7f10cd70577 │
│ Author alice (you) │
│ Head daf349ff76bedf48c5f292290b682ee7be0683cf │
│ Base [..] │
@@ -113,7 +113,7 @@ $ rad patch show 9cc1b60493391c475723bde8bc0b9cf88644a8bf
├──────────────────────────────────────────────────────────┤
│ daf349f Second change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 9cc1b60 @ [..]..daf349f by alice (you) now │
+│ ● Revision 745487c @ [..]..daf349f by alice (you) now │
│ └─ ✓ merged by alice (you) │
╰──────────────────────────────────────────────────────────╯
```
@@ -133,10 +133,10 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ ├── xyz.radicle.id
- │ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+ │ │ └── 86399084097fb674569f5bc5847da609ab91aa9f
│ └── xyz.radicle.patch
- │ ├── 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
- │ └── 9cc1b60493391c475723bde8bc0b9cf88644a8bf
+ │ ├── 43362c8b437a0ce6798a762f3676e4dd68b67792
+ │ └── 745487c5cd672f16b29297e8ed65d7f10cd70577
├── heads
│ └── master
└── rad
@@ -151,9 +151,9 @@ the first patch, even though they were pushed together.
``` (stderr) RAD_SOCKET=/dev/null
$ git reset --hard HEAD^
$ git push -f rad
-! Patch 9cc1b60493391c475723bde8bc0b9cf88644a8bf reverted at revision 9cc1b60
+! Patch 745487c5cd672f16b29297e8ed65d7f10cd70577 reverted at revision 745487c
✓ Canonical reference refs/heads/master updated to target commit 20aa5dde6210796c3a2f04079b42316a31d02689
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ d6399c7...20aa5dd master -> master (forced update)
```
```
@@ -161,7 +161,7 @@ $ rad patch --all
╭─────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────┤
-│ ✓ 837bfbb First change alice (you) - 20aa5dd +0 -0 now │
-│ ● 9cc1b60 Second change alice (you) - daf349f +0 -0 now │
+│ ✓ 43362c8 First change alice (you) - 20aa5dd +0 -0 now │
+│ ● 745487c Second change alice (you) - daf349f +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-node.md b/crates/radicle-cli/examples/rad-node.md
index d8ea477be2..ab4aadb806 100644
--- a/crates/radicle-cli/examples/rad-node.md
+++ b/crates/radicle-cli/examples/rad-node.md
@@ -40,11 +40,11 @@ created:
```
$ rad seed
-╭──────────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├──────────────────────────────────────────────────────────────────┤
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 heartwood allow followed │
-╰──────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├───────────────────────────────────────────────────────────────────┤
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G heartwood allow followed │
+╰───────────────────────────────────────────────────────────────────╯
```
If we wish to see which nodes we are following:
@@ -65,11 +65,11 @@ created.
```
$ rad node routing
-╭─────────────────────────────────────────────────────────────────────────────────────╮
-│ RID NID │
-├─────────────────────────────────────────────────────────────────────────────────────┤
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
-╰─────────────────────────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────────────────────────╮
+│ RID NID │
+├──────────────────────────────────────────────────────────────────────────────────────┤
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
+╰──────────────────────────────────────────────────────────────────────────────────────╯
```
Finally, if we want to stop the daemon process from running we can
@@ -90,8 +90,8 @@ $ rad node stop
Note that if we unseed a repository, it is no longer part of our inventory:
```
-$ rad unseed rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Seeding policy for rad:zHb72m63NBufHR7jmZi732BBT6j6 removed
+$ rad unseed rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Seeding policy for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G removed
$ rad node inventory
```
@@ -106,11 +106,11 @@ $ rad node inventory
But if we start seeding the repository we have locally again, it'll show
up in our inventory:
```
-$ rad seed rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Inventory updated with rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+$ rad seed rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Inventory updated with rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
$ rad node inventory
-rad:zHb72m63NBufHR7jmZi732BBT6j6
+rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
Some commands also give us a hint if the node isn't running:
diff --git a/crates/radicle-cli/examples/rad-patch-ahead-behind.md b/crates/radicle-cli/examples/rad-patch-ahead-behind.md
index a067f29700..3bdc0e0bb3 100644
--- a/crates/radicle-cli/examples/rad-patch-ahead-behind.md
+++ b/crates/radicle-cli/examples/rad-patch-ahead-behind.md
@@ -37,8 +37,8 @@ $ git log --graph --decorate --abbrev-commit --pretty=oneline --all
Then we create a patch from `feature/1`:
``` (stderr)
$ git push rad feature/1:refs/patches
-✓ Patch 0e23414c2a1af0573667ad2d9935e27332e8bd0a opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 0eb9ee630b38594e17f434ed17bb0679065b2ecd opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] feature/1 -> refs/patches
```
@@ -48,17 +48,17 @@ $ rad patch list
╭────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├────────────────────────────────────────────────────────────────────────────────┤
-│ ● 0e23414 Add Alan alice (you) - 5c88a79 +1 -0 now │
+│ ● 0eb9ee6 Add Alan alice (you) - 5c88a79 +1 -0 now │
╰────────────────────────────────────────────────────────────────────────────────╯
```
When showing the patch, we see that it is `ahead 1, behind 1`, since master has
diverged by one commit:
```
-$ rad patch show -v -p 0e23414
+$ rad patch show -v -p 0eb9ee6
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Add Alan │
-│ Patch 0e23414c2a1af0573667ad2d9935e27332e8bd0a │
+│ Patch 0eb9ee630b38594e17f434ed17bb0679065b2ecd │
│ Author alice (you) │
│ Head 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7 │
│ Base f64fb2c8fe28f7c458c72ec8d700373924794943 │
@@ -69,7 +69,7 @@ $ rad patch show -v -p 0e23414
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 5c88a79 Add Alan │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision 0e23414c2a1af0573667ad2d9935e27332e8bd0a with range f64fb2c8fe28f7c458c72ec8d700373924794943..5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7 by alice (you) now │
+│ ● Revision 0eb9ee630b38594e17f434ed17bb0679065b2ecd with range f64fb2c8fe28f7c458c72ec8d700373924794943..5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7 by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
commit 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7
@@ -94,18 +94,18 @@ $ git checkout -q -b feature/2 feature/1
$ sed -i '$a Mel Farna' CONTRIBUTORS
$ git commit -a -q -m "Add Mel"
$ git push -o patch.message="Add Mel" rad HEAD:refs/patches
-✓ Patch 718bacb8743047a0e3c2c723e512450e0f60c94b opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 29c888f25b6e647fb985812209f1a900dc01333a opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
When we look at the patch, we see that it has both commits, because this new
patch uses the same base as the previous patch:
```
-$ rad patch show -v 718bacb8743047a0e3c2c723e512450e0f60c94b
+$ rad patch show -v 29c888f25b6e647fb985812209f1a900dc01333a
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Add Mel │
-│ Patch 718bacb8743047a0e3c2c723e512450e0f60c94b │
+│ Patch 29c888f25b6e647fb985812209f1a900dc01333a │
│ Author alice (you) │
│ Head 7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 │
│ Base f64fb2c8fe28f7c458c72ec8d700373924794943 │
@@ -117,7 +117,7 @@ $ rad patch show -v 718bacb8743047a0e3c2c723e512450e0f60c94b
│ 7f63fcb Add Mel │
│ 5c88a79 Add Alan │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision 718bacb8743047a0e3c2c723e512450e0f60c94b with range f64fb2c8fe28f7c458c72ec8d700373924794943..7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 by alice (you) now │
+│ ● Revision 29c888f25b6e647fb985812209f1a900dc01333a with range f64fb2c8fe28f7c458c72ec8d700373924794943..7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -126,8 +126,8 @@ If we want to instead create a "stacked" patch, we can do so with the
``` (stderr)
$ git push -o patch.message="Add Mel #2" -o patch.base=HEAD^ rad HEAD:refs/patches
-✓ Patch 73c41f2d9a758a3d7d48cf12f0247dfbdc1e0c74 opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 7bfdb801d676c78d604af10f89d341f7bc646b45 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -138,10 +138,10 @@ However, since the patch is still intended to be merged into `master`, we see
that it is still two commits ahead and one behind from `master`.
```
-$ rad patch show -v 73c41f2d9a758a3d7d48cf12f0247dfbdc1e0c74
+$ rad patch show -v 7bfdb801d676c78d604af10f89d341f7bc646b45
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Add Mel #2 │
-│ Patch 73c41f2d9a758a3d7d48cf12f0247dfbdc1e0c74 │
+│ Patch 7bfdb801d676c78d604af10f89d341f7bc646b45 │
│ Author alice (you) │
│ Head 7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 │
│ Base 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7 │
@@ -152,6 +152,6 @@ $ rad patch show -v 73c41f2d9a758a3d7d48cf12f0247dfbdc1e0c74
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 7f63fcb Add Mel │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision 73c41f2d9a758a3d7d48cf12f0247dfbdc1e0c74 with range 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7..7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 by alice (you) now │
+│ ● Revision 7bfdb801d676c78d604af10f89d341f7bc646b45 with range 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7..7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-change-base.md b/crates/radicle-cli/examples/rad-patch-change-base.md
index 6116d9e1c8..e89beefc75 100644
--- a/crates/radicle-cli/examples/rad-patch-change-base.md
+++ b/crates/radicle-cli/examples/rad-patch-change-base.md
@@ -15,11 +15,11 @@ $ git commit -v -m "Define power requirements"
```
``` (stderr)
$ git push rad flux-capacitor-power
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] flux-capacitor-power -> flux-capacitor-power
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 26ba0615c6e911344ee61d53241a2903c5bf8623 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -35,18 +35,18 @@ $ git commit --message "Add README, just for the fun"
```
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun" HEAD:refs/patches
-✓ Patch 96f6b95b8391738205b4953a6e5af7e8d085789b opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch cf92361190b992fa4a3f603b848fb630bf5c55e0 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
Our second patch looks like the following:
```
-$ rad patch show 96f6b95b8391738205b4953a6e5af7e8d085789b
+$ rad patch show cf92361190b992fa4a3f603b848fb630bf5c55e0
╭──────────────────────────────────────────────────────────╮
│ Title Add README, just for the fun │
-│ Patch 96f6b95b8391738205b4953a6e5af7e8d085789b │
+│ Patch cf92361190b992fa4a3f603b848fb630bf5c55e0 │
│ Author alice (you) │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -58,7 +58,7 @@ $ rad patch show 96f6b95b8391738205b4953a6e5af7e8d085789b
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 96f6b95 @ f2de534..27857ec by alice (you) now │
+│ ● Revision cf92361 @ f2de534..27857ec by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -67,18 +67,18 @@ commit `3e674d1` as part of this patch, so we create a new revision
with a new `base`:
```
-$ rad patch update 96f6b95 -b 3e674d1 -m "Whoops, forgot to set the base" --no-announce
-7c0bad1a574d0f887b97f61fb1a522bfc7208a0b
+$ rad patch update cf92361 -b 3e674d1 -m "Whoops, forgot to set the base" --no-announce
+02e77b19af9aeba218c8abe480bbcced8541e160
```
Now, if we show the patch we can see the patch's base has changed and
we have a single commit:
```
-$ rad patch show 96f6b95
+$ rad patch show cf92361
╭──────────────────────────────────────────────────────────╮
│ Title Add README, just for the fun │
-│ Patch 96f6b95b8391738205b4953a6e5af7e8d085789b │
+│ Patch cf92361190b992fa4a3f603b848fb630bf5c55e0 │
│ Author alice (you) │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
│ Base 3e674d1a1df90807e934f9ae5da2591dd6848a33 │
@@ -89,7 +89,7 @@ $ rad patch show 96f6b95
├──────────────────────────────────────────────────────────┤
│ 27857ec Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 96f6b95 @ f2de534..27857ec by alice (you) now │
-│ ↑ Revision 7c0bad1 @ 3e674d1..27857ec by alice (you) now │
+│ ● Revision cf92361 @ f2de534..27857ec by alice (you) now │
+│ ↑ Revision 02e77b1 @ 3e674d1..27857ec by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-checkout-force.md b/crates/radicle-cli/examples/rad-patch-checkout-force.md
index 24461f0d89..5ab3d15ddc 100644
--- a/crates/radicle-cli/examples/rad-patch-checkout-force.md
+++ b/crates/radicle-cli/examples/rad-patch-checkout-force.md
@@ -13,9 +13,9 @@ $ git commit -v -m "Define power requirements"
``` ~alice (stderr)
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 opened
+✓ Patch 26ba0615c6e911344ee61d53241a2903c5bf8623 opened
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -24,12 +24,12 @@ On the other end, Bob uses `rad patch checkout` to view the patch:
``` ~bob
$ cd heartwood
$ rad sync -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-$ rad patch checkout 133e390 --name alice-init
-✓ Switched to branch alice-init at revision 133e390
-✓ Branch alice-init setup to track rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9
+$ rad patch checkout 26ba061 --name alice-init
+✓ Switched to branch alice-init at revision 26ba061
+✓ Branch alice-init setup to track rad/patches/26ba0615c6e911344ee61d53241a2903c5bf8623
```
Meanwhile, we may see some more changes that we need to make, so we
@@ -46,28 +46,28 @@ $ git commit --message "Add README, just for the fun"
``` ~alice (stderr)
$ git push rad -o patch.message="Add README, just for the fun"
-✓ Patch 133e390 updated to revision bab7a0f9953f7c8d5528d1565b4795d6f21207e8
-To compare against your previous revision 133e390, run:
+✓ Patch 26ba061 updated to revision 32a5d05e0be58807fba749f320114cefac3e2d2e
+To compare against your previous revision 26ba061, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 3e674d1a1df90807e934f9ae5da2591dd6848a33 27857ec9eb04c69cacab516e8bf4b5fd36090f66
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 3e674d1..27857ec flux-capacitor-power -> patches/133e3905e9252139a7ea29881b3d5bca816372b9
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 3e674d1..27857ec flux-capacitor-power -> patches/26ba0615c6e911344ee61d53241a2903c5bf8623
```
Bob fetches these new changes and can see their branch is now behind:
``` ~bob (stderr)
$ git fetch rad
-From rad://zHb72m63NBufHR7jmZi732BBT6j6
- 3e674d1..27857ec patches/133e3905e9252139a7ea29881b3d5bca816372b9 -> rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
+ 3e674d1..27857ec patches/26ba0615c6e911344ee61d53241a2903c5bf8623 -> rad/patches/26ba0615c6e911344ee61d53241a2903c5bf8623
```
``` ~bob
$ git status
On branch alice-init
-Your branch is behind 'rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9' by 1 commit, and can be fast-forwarded.
+Your branch is behind 'rad/patches/26ba0615c6e911344ee61d53241a2903c5bf8623' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
nothing to commit, working tree clean
@@ -79,17 +79,17 @@ overwrite any changes. Bob can choose to use the `--force` (`-f`) flag to
ensure that they are looking at the latest changes:
``` ~bob (fail)
-$ rad patch checkout 133e390 --name alice-init
+$ rad patch checkout 26ba061 --name alice-init
✗ Performing checkout… <canceled>
✗ Error: branch 'alice-init' already exists (use `--force` to overwrite)
```
``` ~bob
-$ rad patch checkout 133e390 -f --name alice-init
-✓ Switched to branch alice-init at revision bab7a0f
+$ rad patch checkout 26ba061 -f --name alice-init
+✓ Switched to branch alice-init at revision 32a5d05
$ git status
On branch alice-init
-Your branch is up to date with 'rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9'.
+Your branch is up to date with 'rad/patches/26ba0615c6e911344ee61d53241a2903c5bf8623'.
nothing to commit, working tree clean
```
diff --git a/crates/radicle-cli/examples/rad-patch-checkout-revision.md b/crates/radicle-cli/examples/rad-patch-checkout-revision.md
index 80caee6be8..ced108bcb5 100644
--- a/crates/radicle-cli/examples/rad-patch-checkout-revision.md
+++ b/crates/radicle-cli/examples/rad-patch-checkout-revision.md
@@ -5,7 +5,7 @@ So first, let's add another change to the patch and a `LICENSE` file.
$ touch LICENSE
$ git add LICENSE
$ git commit --message "Add LICENSE, just for the business"
-[patch/133e390 639f44a] Add LICENSE, just for the business
+[patch/26ba061 639f44a] Add LICENSE, just for the business
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 LICENSE
$ git push rad -o patch.message="Add LICENSE, just for the business"
@@ -14,15 +14,15 @@ $ git push rad -o patch.message="Add LICENSE, just for the business"
We can see the list of revisions of the patch by `show`ing it:
```
-$ rad patch show 133e390
+$ rad patch show 26ba061
╭──────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 │
+│ Patch 26ba0615c6e911344ee61d53241a2903c5bf8623 │
│ Author alice (you) │
│ Head 639f44a25145a37f747f3c84265037a9461e44c5 │
│ Base [..] │
│ Target master │
-│ Branches patch/133e390 │
+│ Branches patch/26ba061 │
│ Commits ahead 3, behind 0 │
│ Status open │
│ │
@@ -32,17 +32,17 @@ $ rad patch show 133e390
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 133e390 @ [..]..3e674d1 by alice (you) now │
-│ ↑ Revision bab7a0f @ f2de534..27857ec by alice (you) now │
-│ ↑ Revision 87f4ef8 @ f2de534..639f44a by alice (you) now │
+│ ● Revision 26ba061 @ [..]..3e674d1 by alice (you) now │
+│ ↑ Revision 32a5d05 @ f2de534..27857ec by alice (you) now │
+│ ↑ Revision 3d2355d @ f2de534..639f44a by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
So, let's checkout the previous revision, `0c0942e2`:
```
-$ rad patch checkout 133e390 --revision bab7a0f9953f7c8d5528d1565b4795d6f21207e8 -f
-✓ Switched to branch patch/133e390 at revision bab7a0f
+$ rad patch checkout 26ba061 --revision 32a5d05e0be58807fba749f320114cefac3e2d2e -f
+✓ Switched to branch patch/26ba061 at revision 32a5d05
```
And we can confirm that the current commit corresponds to `3032c7f`:
diff --git a/crates/radicle-cli/examples/rad-patch-checkout.md b/crates/radicle-cli/examples/rad-patch-checkout.md
index f6faa495ae..e48ca577f0 100644
--- a/crates/radicle-cli/examples/rad-patch-checkout.md
+++ b/crates/radicle-cli/examples/rad-patch-checkout.md
@@ -22,17 +22,17 @@ Once the code is ready, we open (or create) a patch with our changes for the pro
``` (stderr)
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 26ba0615c6e911344ee61d53241a2903c5bf8623 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
Now, let's checkout the patch that we just created:
```
-$ rad patch checkout 133e3905e9252139a7ea29881b3d5bca816372b9
-✓ Switched to branch patch/133e390 at revision 133e390
-✓ Branch patch/133e390 setup to track rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9
+$ rad patch checkout 26ba0615c6e911344ee61d53241a2903c5bf8623
+✓ Switched to branch patch/26ba061 at revision 26ba061
+✓ Branch patch/26ba061 setup to track rad/patches/26ba0615c6e911344ee61d53241a2903c5bf8623
```
Note that `rad patch checkout` can be used to switch to the patch branch
@@ -40,8 +40,8 @@ as long as we haven't made changes to it.
```
$ git checkout master -q
-$ rad patch checkout 133e390
-✓ Switched to branch patch/133e390 at revision 133e390
+$ rad patch checkout 26ba061
+✓ Switched to branch patch/26ba061 at revision 26ba061
```
Now, let's add a README too!
@@ -50,7 +50,7 @@ Now, let's add a README too!
$ touch README.md
$ git add README.md
$ git commit --message "Add README, just for the fun"
-[patch/133e390 27857ec] Add README, just for the fun
+[patch/26ba061 27857ec] Add README, just for the fun
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.md
```
@@ -59,11 +59,11 @@ We can now finish off the update:
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun"
-✓ Patch 133e390 updated to revision bab7a0f9953f7c8d5528d1565b4795d6f21207e8
-To compare against your previous revision 133e390, run:
+✓ Patch 26ba061 updated to revision 32a5d05e0be58807fba749f320114cefac3e2d2e
+To compare against your previous revision 26ba061, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 3e674d1a1df90807e934f9ae5da2591dd6848a33 27857ec9eb04c69cacab516e8bf4b5fd36090f66
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 3e674d1..27857ec patch/133e390 -> patches/133e3905e9252139a7ea29881b3d5bca816372b9
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 3e674d1..27857ec patch/26ba061 -> patches/26ba0615c6e911344ee61d53241a2903c5bf8623
```
diff --git a/crates/radicle-cli/examples/rad-patch-delete.md b/crates/radicle-cli/examples/rad-patch-delete.md
index 1c698bd23b..1d6af2272f 100644
--- a/crates/radicle-cli/examples/rad-patch-delete.md
+++ b/crates/radicle-cli/examples/rad-patch-delete.md
@@ -10,32 +10,32 @@ $ git commit -m "Introduce license"
``` ~alice (stderr)
$ git push rad -o patch.draft -o patch.message="Define LICENSE for project" HEAD:refs/patches
-✓ Patch b2ac02ddd8fd3a9598325b4042e7704baa531adc drafted
+✓ Patch 482eff7804f958efeef1cb63f511f2ed1431f742 drafted
✓ Synced with 2 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
``` ~bob
$ cd heartwood
$ rad sync -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
-$ rad patch comment b2ac02d -m "I think we should use MIT"
+$ rad patch comment 482eff7 -m "I think we should use MIT"
╭───────────────────────────╮
-│ bob (you) now c1c07cc │
+│ bob (you) now 9963ada │
│ I think we should use MIT │
╰───────────────────────────╯
✓ Synced with 2 seed(s)
```
``` ~alice
-$ rad patch show b2ac02d -v
+$ rad patch show 482eff7 -v
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Define LICENSE for project │
-│ Patch b2ac02ddd8fd3a9598325b4042e7704baa531adc │
+│ Patch 482eff7804f958efeef1cb63f511f2ed1431f742 │
│ Author alice (you) │
│ Head 717c900ec17735639587325e0fd9fe09991c9edd │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -46,14 +46,14 @@ $ rad patch show b2ac02d -v
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 717c900 Introduce license │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision b2ac02ddd8fd3a9598325b4042e7704baa531adc with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice (you) now │
+│ ● Revision 482eff7804f958efeef1cb63f511f2ed1431f742 with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice (you) now │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ bob z6Mkt67…v4N1tRk now c1c07cc │
+│ bob z6Mkt67…v4N1tRk now 9963ada │
│ I think we should use MIT │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-$ rad patch comment b2ac02d --reply-to c1c07cc -m "Thanks, I'll add it!"
+$ rad patch comment 482eff7 --reply-to 9963ada -m "Thanks, I'll add it!"
╭─────────────────────────╮
-│ alice (you) now fb906cb │
+│ alice (you) now 294ce2f │
│ Thanks, I'll add it! │
╰─────────────────────────╯
✓ Synced with 2 seed(s)
@@ -70,24 +70,24 @@ $ git commit -am "Add MIT License"
``` ~alice (stderr)
$ git push -f
-✓ Patch b2ac02d updated to revision aa82ab2e9a43ef0f715545151be997a21f66680e
-To compare against your previous revision b2ac02d, run:
+✓ Patch 482eff7 updated to revision 68c388e97fa5c63b7a843861bc23bd7ebfcd84ba
+To compare against your previous revision 482eff7, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 717c900ec17735639587325e0fd9fe09991c9edd 1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e
✓ Synced with 2 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 717c900..1cc8cd9 prepare-license -> patches/b2ac02ddd8fd3a9598325b4042e7704baa531adc
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 717c900..1cc8cd9 prepare-license -> patches/482eff7804f958efeef1cb63f511f2ed1431f742
```
``` ~bob
-$ rad patch review b2ac02d --accept -m "LGTM!"
-✓ Patch b2ac02d accepted
+$ rad patch review 482eff7 --accept -m "LGTM!"
+✓ Patch 482eff7 accepted
✓ Synced with 2 seed(s)
-$ rad patch show b2ac02d -v
+$ rad patch show 482eff7 -v
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Define LICENSE for project │
-│ Patch b2ac02ddd8fd3a9598325b4042e7704baa531adc │
+│ Patch 482eff7804f958efeef1cb63f511f2ed1431f742 │
│ Author alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ Head 1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -98,22 +98,22 @@ $ rad patch show b2ac02d -v
│ 1cc8cd9 Add MIT License │
│ 717c900 Introduce license │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision b2ac02ddd8fd3a9598325b4042e7704baa531adc with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi now │
-│ ↑ Revision aa82ab2e9a43ef0f715545151be997a21f66680e with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e by alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi now │
+│ ● Revision 482eff7804f958efeef1cb63f511f2ed1431f742 with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi now │
+│ ↑ Revision 68c388e97fa5c63b7a843861bc23bd7ebfcd84ba with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e by alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi now │
│ └─ ✓ accepted by bob (you) now │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
``` ~bob
-$ rad patch delete b2ac02d
+$ rad patch delete 482eff7
✓ Synced with 2 seed(s)
```
``` ~alice
-$ rad patch show b2ac02d -v
+$ rad patch show 482eff7 -v
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Define LICENSE for project │
-│ Patch b2ac02ddd8fd3a9598325b4042e7704baa531adc │
+│ Patch 482eff7804f958efeef1cb63f511f2ed1431f742 │
│ Author alice (you) │
│ Head 1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -125,8 +125,8 @@ $ rad patch show b2ac02d -v
│ 1cc8cd9 Add MIT License │
│ 717c900 Introduce license │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision b2ac02ddd8fd3a9598325b4042e7704baa531adc with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice (you) now │
-│ ↑ Revision aa82ab2e9a43ef0f715545151be997a21f66680e with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e by alice (you) now │
+│ ● Revision 482eff7804f958efeef1cb63f511f2ed1431f742 with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice (you) now │
+│ ↑ Revision 68c388e97fa5c63b7a843861bc23bd7ebfcd84ba with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -134,11 +134,11 @@ If Alice also decides to delete the patch, then any seeds that have synced with
Alice should no longer have the patch:
``` ~alice
-$ rad patch delete b2ac02d
+$ rad patch delete 482eff7
✓ Synced with 2 seed(s)
```
``` ~seed (fails)
-$ rad patch show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 b2ac02d -v
-✗ Error: Patch `b2ac02ddd8fd3a9598325b4042e7704baa531adc` not found
+$ rad patch show --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G 482eff7 -v
+✗ Error: Patch `482eff7804f958efeef1cb63f511f2ed1431f742` not found
```
diff --git a/crates/radicle-cli/examples/rad-patch-detached-head.md b/crates/radicle-cli/examples/rad-patch-detached-head.md
index bab2e5fdfe..7904bc7aa9 100644
--- a/crates/radicle-cli/examples/rad-patch-detached-head.md
+++ b/crates/radicle-cli/examples/rad-patch-detached-head.md
@@ -30,10 +30,10 @@ Now, we can create a commit on top of this and create a patch, as usual:
``` (stderr) RAD_HINT=1
$ git commit -a -m "Add things" -q --allow-empty
$ git push -o patch.message="Add things #1" -o patch.message="See commits for details." rad HEAD:refs/patches
-✓ Patch 430fd711706f6eea742ba27a8d8e4ad3ad52b0d9 opened
+✓ Patch 4e0b866a7ac15131ad472888528ae0e048ee952f opened
hint: offline push, your node is not running
hint: to sync with the network, run `rad node start`
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
diff --git a/crates/radicle-cli/examples/rad-patch-diff.md b/crates/radicle-cli/examples/rad-patch-diff.md
index 28a10fcd7c..de6b8366eb 100644
--- a/crates/radicle-cli/examples/rad-patch-diff.md
+++ b/crates/radicle-cli/examples/rad-patch-diff.md
@@ -10,7 +10,7 @@ $ git commit -m "Add README" -q
$ git push rad HEAD:refs/patches
```
```
-$ rad patch diff 58f4336
+$ rad patch diff a0b50ac
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..980a0d5
@@ -31,7 +31,7 @@ $ git commit --amend -q
$ git push -f
```
```
-$ rad patch diff 58f4336
+$ rad patch diff a0b50ac
diff --git a/RADICLE.md b/RADICLE.md
new file mode 100644
index 0000000..e517184
@@ -52,7 +52,7 @@ Buf if we only want to see the changes from the first revision, we can do that
too.
```
-$ rad patch diff 58f4336 --revision 58f4336
+$ rad patch diff a0b50ac --revision a0b50ac
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..980a0d5
diff --git a/crates/radicle-cli/examples/rad-patch-draft.md b/crates/radicle-cli/examples/rad-patch-draft.md
index f68ec1d6a7..ae97490412 100644
--- a/crates/radicle-cli/examples/rad-patch-draft.md
+++ b/crates/radicle-cli/examples/rad-patch-draft.md
@@ -9,18 +9,18 @@ To open a patch in draft mode, we use the `--draft` option:
``` (stderr)
$ git push -o patch.draft -o patch.message="Nothing yet" rad HEAD:refs/patches
-✓ Patch c42e9878bc4d2acbbc0c5374ecb1eb65255c690d drafted
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch b599f894b2b409d800e74e8a9b9d817faff80e9a drafted
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
We can confirm it's a draft by running `show`:
```
-$ rad patch show c42e9878bc4d2acbbc0c5374ecb1eb65255c690d
+$ rad patch show b599f894b2b409d800e74e8a9b9d817faff80e9a
╭──────────────────────────────────────────────────────────╮
│ Title Nothing yet │
-│ Patch c42e9878bc4d2acbbc0c5374ecb1eb65255c690d │
+│ Patch b599f894b2b409d800e74e8a9b9d817faff80e9a │
│ Author alice (you) │
│ Head 2a465832b5a76abe25be44a3a5d224bbd7741ba7 │
│ Base [..] │
@@ -31,21 +31,21 @@ $ rad patch show c42e9878bc4d2acbbc0c5374ecb1eb65255c690d
├──────────────────────────────────────────────────────────┤
│ 2a46583 Nothing to see here.. │
├──────────────────────────────────────────────────────────┤
-│ ● Revision c42e987 @ [..]..2a46583 by alice (you) now │
+│ ● Revision b599f89 @ [..]..2a46583 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
Once the patch is ready for review, we can use the `ready` command:
```
-$ rad patch ready c42e9878bc4d2acbbc0c5374ecb1eb65255c690d --no-announce
+$ rad patch ready b599f894b2b409d800e74e8a9b9d817faff80e9a --no-announce
```
```
-$ rad patch show c42e9878bc4d2acbbc0c5374ecb1eb65255c690d
+$ rad patch show b599f894b2b409d800e74e8a9b9d817faff80e9a
╭──────────────────────────────────────────────────────────╮
│ Title Nothing yet │
-│ Patch c42e9878bc4d2acbbc0c5374ecb1eb65255c690d │
+│ Patch b599f894b2b409d800e74e8a9b9d817faff80e9a │
│ Author alice (you) │
│ Head 2a465832b5a76abe25be44a3a5d224bbd7741ba7 │
│ Base [..] │
@@ -56,7 +56,7 @@ $ rad patch show c42e9878bc4d2acbbc0c5374ecb1eb65255c690d
├──────────────────────────────────────────────────────────┤
│ 2a46583 Nothing to see here.. │
├──────────────────────────────────────────────────────────┤
-│ ● Revision c42e987 @ [..]..2a46583 by alice (you) now │
+│ ● Revision b599f89 @ [..]..2a46583 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -64,11 +64,11 @@ If for whatever reason, it needed to go back into draft mode, we could use
the `--undo` flag:
```
-$ rad patch ready --undo c42e9878bc4d2acbbc0c5374ecb1eb65255c690d --no-announce
-$ rad patch show c42e9878bc4d2acbbc0c5374ecb1eb65255c690d
+$ rad patch ready --undo b599f894b2b409d800e74e8a9b9d817faff80e9a --no-announce
+$ rad patch show b599f894b2b409d800e74e8a9b9d817faff80e9a
╭──────────────────────────────────────────────────────────╮
│ Title Nothing yet │
-│ Patch c42e9878bc4d2acbbc0c5374ecb1eb65255c690d │
+│ Patch b599f894b2b409d800e74e8a9b9d817faff80e9a │
│ Author alice (you) │
│ Head 2a465832b5a76abe25be44a3a5d224bbd7741ba7 │
│ Base [..] │
@@ -79,6 +79,6 @@ $ rad patch show c42e9878bc4d2acbbc0c5374ecb1eb65255c690d
├──────────────────────────────────────────────────────────┤
│ 2a46583 Nothing to see here.. │
├──────────────────────────────────────────────────────────┤
-│ ● Revision c42e987 @ [..]..2a46583 by alice (you) now │
+│ ● Revision b599f89 @ [..]..2a46583 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-edit.md b/crates/radicle-cli/examples/rad-patch-edit.md
index 91c8538970..fac6a333c5 100644
--- a/crates/radicle-cli/examples/rad-patch-edit.md
+++ b/crates/radicle-cli/examples/rad-patch-edit.md
@@ -16,8 +16,8 @@ $ git commit --message "Add README, just for the fun"
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun" HEAD:refs/patches
-✓ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch f36ce41ee8d55d3723ad65ad39741391f9bed979 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -32,22 +32,22 @@ $ git commit -v -m "Define the LICENSE"
``` (stderr)
$ git push -f -o patch.message="Add License"
-✓ Patch b159dae updated to revision 6b68a485a2d9a2e0c4e12c6f353e5d6f52825bf7
-To compare against your previous revision b159dae, run:
+✓ Patch f36ce41 updated to revision 66230c3d87c5c444803e7d012a710013505dcdb9
+To compare against your previous revision f36ce41, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 03c02af4b12a593d17a06d38fae50a57fc3c339a 8945f6189adf027892c85ac57f7e9341049c2537
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 03c02af..8945f61 changes -> patches/b159dae25efff62aaf6f7d28a449ad5756eff5db
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 03c02af..8945f61 changes -> patches/f36ce41ee8d55d3723ad65ad39741391f9bed979
```
Let's look at the patch, to see what it looks like before editing it:
```
-$ rad patch show b159dae
+$ rad patch show f36ce41
╭──────────────────────────────────────────────────────────╮
│ Title Add README, just for the fun │
-│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
+│ Patch f36ce41ee8d55d3723ad65ad39741391f9bed979 │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
│ Base [..] │
@@ -59,8 +59,8 @@ $ rad patch show b159dae
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision b159dae @ [..]..03c02af by alice (you) now │
-│ ↑ Revision 6b68a48 @ [..]..8945f61 by alice (you) now │
+│ ● Revision f36ce41 @ [..]..03c02af by alice (you) now │
+│ ↑ Revision 66230c3 @ [..]..8945f61 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -68,11 +68,11 @@ We can change the title and description of the patch itself by using a
multi-line message (using two `--message` options here):
```
-$ rad patch edit b159dae --message "Add Metadata" --message "Add README & LICENSE" --no-announce
-$ rad patch show b159dae
+$ rad patch edit f36ce41 --message "Add Metadata" --message "Add README & LICENSE" --no-announce
+$ rad patch show f36ce41
╭──────────────────────────────────────────────────────────╮
│ Title Add Metadata │
-│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
+│ Patch f36ce41ee8d55d3723ad65ad39741391f9bed979 │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
│ Base [..] │
@@ -86,8 +86,8 @@ $ rad patch show b159dae
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision b159dae @ [..]..03c02af by alice (you) now │
-│ ↑ Revision 6b68a48 @ [..]..8945f61 by alice (you) now │
+│ ● Revision f36ce41 @ [..]..03c02af by alice (you) now │
+│ ↑ Revision 66230c3 @ [..]..8945f61 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -98,11 +98,11 @@ If we want to change a specific revision's description, we can use the
`--revision` option:
```
-$ rad patch edit b159dae --revision 6b68a48 --message "Changes: Adds LICENSE file" --no-announce
-$ rad patch show b159dae
+$ rad patch edit f36ce41 --revision 66230c3 --message "Changes: Adds LICENSE file" --no-announce
+$ rad patch show f36ce41
╭──────────────────────────────────────────────────────────╮
│ Title Add Metadata │
-│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
+│ Patch f36ce41ee8d55d3723ad65ad39741391f9bed979 │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
│ Base [..] │
@@ -116,8 +116,8 @@ $ rad patch show b159dae
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision b159dae @ [..]..03c02af by alice (you) now │
-│ ↑ Revision 6b68a48 @ [..]..8945f61 by alice (you) now │
+│ ● Revision f36ce41 @ [..]..03c02af by alice (you) now │
+│ ↑ Revision 66230c3 @ [..]..8945f61 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-fetch-1.md b/crates/radicle-cli/examples/rad-patch-fetch-1.md
index 1d10dc05a3..e1ee4f23f7 100644
--- a/crates/radicle-cli/examples/rad-patch-fetch-1.md
+++ b/crates/radicle-cli/examples/rad-patch-fetch-1.md
@@ -20,9 +20,9 @@ $ git fetch --all
Fetching rad
Fetching alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
$ cat .git/FETCH_HEAD
-f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 branch 'master' of rad://zHb72m63NBufHR7jmZi732BBT6j6
-7461703ce0fda972df450d071d1d3702057a6352 not-for-merge branch 'alice/1' of rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 not-for-merge branch 'master' of rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 branch 'master' of rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
+7461703ce0fda972df450d071d1d3702057a6352 not-for-merge branch 'alice/1' of rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 not-for-merge branch 'master' of rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
$ git merge FETCH_HEAD
Already up to date.
$ git rev-parse master
diff --git a/crates/radicle-cli/examples/rad-patch-fetch-2.md b/crates/radicle-cli/examples/rad-patch-fetch-2.md
index d318686c9f..92e310fc68 100644
--- a/crates/radicle-cli/examples/rad-patch-fetch-2.md
+++ b/crates/radicle-cli/examples/rad-patch-fetch-2.md
@@ -12,7 +12,7 @@ $ git push rad -o patch.message="Changes" HEAD:refs/patches
$ git checkout master -q
$ git branch -D alice/1 -q
$ git update-ref -d refs/remotes/rad/alice/1
-$ git update-ref -d refs/remotes/rad/patches/eb1f42de9c9aae572f1a4637d815c9348956d8cb
+$ git update-ref -d refs/remotes/rad/patches/1593312ce7ddd0258d5d1256bf06edceb592c527
$ git gc --prune=now
$ git branch -r
rad/master
@@ -23,5 +23,5 @@ $ git pull
Already up to date.
$ git branch -r
rad/master
- rad/patches/eb1f42de9c9aae572f1a4637d815c9348956d8cb
+ rad/patches/1593312ce7ddd0258d5d1256bf06edceb592c527
```
diff --git a/crates/radicle-cli/examples/rad-patch-jj.md b/crates/radicle-cli/examples/rad-patch-jj.md
index d56b71d690..df4f6ccefd 100644
--- a/crates/radicle-cli/examples/rad-patch-jj.md
+++ b/crates/radicle-cli/examples/rad-patch-jj.md
@@ -39,7 +39,7 @@ 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://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -67,7 +67,7 @@ $ rad patch show 1e31055 -p
│ Patch 1e31055[.. ] │
│ Author alice (you) │
│ Head a6ea7b7[.. ] │
-│ Base f567f69[.. ] │
+│ Base f2de534[.. ] │
│ Target master │
│ Commits ahead 1, behind 0 │
│ Status open │
diff --git a/crates/radicle-cli/examples/rad-patch-magic-push.md b/crates/radicle-cli/examples/rad-patch-magic-push.md
index 17196b5a1f..0847c184f1 100644
--- a/crates/radicle-cli/examples/rad-patch-magic-push.md
+++ b/crates/radicle-cli/examples/rad-patch-magic-push.md
@@ -22,7 +22,7 @@ $ git commit --allow-empty -m "Initialize accepted branch"
``` (stderr)
$ git push rad accepted
✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] accepted -> accepted
```
@@ -38,17 +38,17 @@ Pushing to the magic reference:
``` (stderr)
$ git push rad HEAD:refs/for/accepted
✓ Patch [..] opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/for/accepted
```
We can see the patch is open:
```
-$ rad patch show 0e6d0af
+$ rad patch show 9df700a
╭──────────────────────────────────────────────────────────╮
│ Title Initialize accepted branch │
-│ Patch 0e6d0af208bfc1249294feb2eafbfeea54793ae1 │
+│ Patch 9df700a8f5520e7932eac90e76209f7b8d52d8d0 │
│ Author alice (you) │
│ Head 46fd342edc149468ec08b0b25291083aa05d4449 │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -62,7 +62,7 @@ $ rad patch show 0e6d0af
│ 46fd342 Add new feature │
│ f9a3b89 Initialize accepted branch │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 0e6d0af @ f2de534..46fd342 by alice (you) now │
+│ ● Revision 9df700a @ f2de534..46fd342 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
$ rad patch list --open
╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
@@ -87,19 +87,19 @@ Fast-forward
``` (stderr)
$ git push rad accepted
-✓ Patch 0e6d0af208bfc1249294feb2eafbfeea54793ae1 merged
+✓ Patch 9df700a8f5520e7932eac90e76209f7b8d52d8d0 merged
✓ Canonical reference refs/heads/accepted updated to target commit 46fd342edc149468ec08b0b25291083aa05d4449
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f9a3b89..46fd342 accepted -> accepted
```
We can now verify that the patch has been successfully marked as merged:
```
-$ rad patch show 0e6d0af
+$ rad patch show 9df700a
╭──────────────────────────────────────────────────────────╮
│ Title Initialize accepted branch │
-│ Patch 0e6d0af208bfc1249294feb2eafbfeea54793ae1 │
+│ Patch 9df700a8f5520e7932eac90e76209f7b8d52d8d0 │
│ Author alice (you) │
│ Head 46fd342edc149468ec08b0b25291083aa05d4449 │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -113,14 +113,14 @@ $ rad patch show 0e6d0af
│ 46fd342 Add new feature │
│ f9a3b89 Initialize accepted branch │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 0e6d0af @ f2de534..46fd342 by alice (you) now │
+│ ● Revision 9df700a @ f2de534..46fd342 by alice (you) now │
│ └─ ✓ merged by alice (you) │
╰──────────────────────────────────────────────────────────╯
$ rad patch list --merged
╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├──────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ✓ 0e6d0af Initialize accepted branch alice (you) - 46fd342 +0 -0 now │
+│ ✓ 9df700a Initialize accepted branch alice (you) - 46fd342 +0 -0 now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -129,7 +129,7 @@ Alternative, attempting to provide conflicting targets fails:
``` (fail) (stderr)
$ git push -o patch.target=master rad HEAD:refs/for/accepted
error: conflicting merge targets: push option 'refs/heads/master' and magic ref 'refs/heads/accepted' specified
-error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
```
However, if the push option and the magic ref match, it succeeds:
@@ -142,14 +142,14 @@ $ git commit -m "Add another feature" --allow-empty -q
``` (stderr)
$ git push -o patch.target=accepted rad HEAD:refs/for/accepted
✓ Patch [..] opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/for/accepted
```
```
-$ rad patch show 722472f
+$ rad patch show b48e977
╭──────────────────────────────────────────────────────────╮
│ Title Initialize accepted branch │
-│ Patch 722472f07f6adc5431f1debfd0148433fb1b32a3 │
+│ Patch b48e97770764ce5aaa679677bbdf878200cd3d57 │
│ Author alice (you) │
│ Head 7e6814e99fe7084a213faeb69ca1eacc26935e3c │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -167,7 +167,7 @@ $ rad patch show 722472f
│ 46fd342 Add new feature │
│ f9a3b89 Initialize accepted branch │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 722472f @ f2de534..7e6814e by alice (you) now │
+│ ● Revision b48e977 @ f2de534..7e6814e by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -180,17 +180,17 @@ $ git commit -m "Add a third feature" --allow-empty -q
``` (stderr)
$ git push rad HEAD:refs/for/refs/heads/accepted
✓ Patch [..] opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/for/refs/heads/accepted
```
This will create a third feature branch and verify that pushing to `refs/for/refs/heads/accepted` successfully opens a patch.
```
-$ rad patch show fc19610 -v
+$ rad patch show 32fd5b5 -v
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Initialize accepted branch │
-│ Patch fc19610b79b70d6efa603a869bef8c80261eb74c │
+│ Patch 32fd5b5331af54415458e3d7d966713c87765b1d │
│ Author alice (you) │
│ Head 99c1d5a04c17ba854f1f4d59985c980c0faf16e7 │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -212,6 +212,6 @@ $ rad patch show fc19610 -v
│ 46fd342 Add new feature │
│ f9a3b89 Initialize accepted branch │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision fc19610b79b70d6efa603a869bef8c80261eb74c with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..99c1d5a04c17ba854f1f4d59985c980c0faf16e7 by alice (you) now │
+│ ● Revision 32fd5b5331af54415458e3d7d966713c87765b1d with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..99c1d5a04c17ba854f1f4d59985c980c0faf16e7 by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-merge-draft.md b/crates/radicle-cli/examples/rad-patch-merge-draft.md
index de1a91fba9..262c1a3634 100644
--- a/crates/radicle-cli/examples/rad-patch-merge-draft.md
+++ b/crates/radicle-cli/examples/rad-patch-merge-draft.md
@@ -4,8 +4,8 @@ Let's start by creating a draft patch.
$ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push -o patch.draft rad HEAD:refs/patches
-✓ Patch 1a184d879b5bb80234548e9f353d9ee23b3f7e20 drafted
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 556e4968ab018cb351a64bca782c4548f98d7493 drafted
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -13,8 +13,8 @@ To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkES
$ git checkout master -q
$ git merge feature/1
$ git push rad master
-✓ Patch 1a184d879b5bb80234548e9f353d9ee23b3f7e20 merged
+✓ Patch 556e4968ab018cb351a64bca782c4548f98d7493 merged
✓ Canonical reference refs/heads/master updated to target commit 20aa5dde6210796c3a2f04079b42316a31d02689
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..20aa5dd master -> master
```
diff --git a/crates/radicle-cli/examples/rad-patch-merge-into-canonical-ref-branch.md b/crates/radicle-cli/examples/rad-patch-merge-into-canonical-ref-branch.md
index d9709ab110..87eec3b753 100644
--- a/crates/radicle-cli/examples/rad-patch-merge-into-canonical-ref-branch.md
+++ b/crates/radicle-cli/examples/rad-patch-merge-into-canonical-ref-branch.md
@@ -22,7 +22,7 @@ $ git commit --allow-empty -m "Initialize accepted branch"
``` (stderr)
$ git push rad accepted
✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] accepted -> accepted
```
@@ -45,7 +45,7 @@ $ git commit -m "Add new feature"
``` (stderr)
$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/accepted" rad HEAD:refs/patches
✓ Patch [..] opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -78,9 +78,9 @@ Fast-forward
``` (stderr)
$ git push rad accepted
-✓ Patch ad29796fe5ce937fa19725cdfb2982987abe0cfa merged
+✓ Patch 38592f91ee06aeb38c88a5352ca4254accff3591 merged
✓ Canonical reference refs/heads/accepted updated to target commit 27acd3b208662f374b34cd4c599f3628c9e42b80
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f9a3b89..27acd3b accepted -> accepted
```
@@ -91,6 +91,6 @@ $ rad patch list --merged
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ✓ ad29796 Add new feature alice (you) - 27acd3b +0 -0 now │
+│ ✓ 38592f9 Add new feature alice (you) - 27acd3b +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-merge-on-first-push.md b/crates/radicle-cli/examples/rad-patch-merge-on-first-push.md
index aa239cf995..5ba1372a77 100644
--- a/crates/radicle-cli/examples/rad-patch-merge-on-first-push.md
+++ b/crates/radicle-cli/examples/rad-patch-merge-on-first-push.md
@@ -5,15 +5,15 @@ Here we start off with Alice adding Bob as a delegate:
``` ~alice
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk -q
-b9990e59e97ae8dae5a4808c16542b0a2978362e
+83ac41c238b1ece55e11ca0ad8621fe5013e30e5
```
Bob clones the repository so that he can start working on it with Alice:
``` ~bob
-$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+$ rad clone rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -42,8 +42,8 @@ $ git commit -v -m "Define power requirements"
``` ~alice (stderr)
$ git push rad -o no-sync -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch dd09b540aaeb4eecbf493d59d450bb7c3f98d335 opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch d7df6d0eb75ae67ff055f7ad61072fbe262aa248 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -52,7 +52,7 @@ first he syncs the repository:
``` ~bob
$ rad sync -f
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -60,12 +60,12 @@ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential se
He then checks out the patch and merges the changes in:
``` ~bob
-$ rad patch checkout dd09b54
-✓ Switched to branch patch/dd09b54 at revision dd09b54
-✓ Branch patch/dd09b54 setup to track rad/patches/dd09b540aaeb4eecbf493d59d450bb7c3f98d335
+$ rad patch checkout d7df6d0
+✓ Switched to branch patch/d7df6d0 at revision d7df6d0
+✓ Branch patch/d7df6d0 setup to track rad/patches/d7df6d0eb75ae67ff055f7ad61072fbe262aa248
$ git checkout master
Your branch is up to date with 'rad/master'.
-$ git merge patch/dd09b54
+$ git merge patch/d7df6d0
Updating f2de534..3e674d1
Fast-forward
REQUIREMENTS | 0
@@ -82,13 +82,13 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ ├── xyz.radicle.id
- │ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+ │ │ └── 86399084097fb674569f5bc5847da609ab91aa9f
│ └── xyz.radicle.patch
- │ └── dd09b540aaeb4eecbf493d59d450bb7c3f98d335
+ │ └── d7df6d0eb75ae67ff055f7ad61072fbe262aa248
├── heads
│ ├── master
│ └── patches
- │ └── dd09b540aaeb4eecbf493d59d450bb7c3f98d335
+ │ └── d7df6d0eb75ae67ff055f7ad61072fbe262aa248
└── rad
├── id
├── root
@@ -101,10 +101,10 @@ Now that the changes are merged, he can push and have the patch merged:
``` ~bob (stderr)
$ git push rad master
-✓ Patch dd09b540aaeb4eecbf493d59d450bb7c3f98d335 merged
+✓ Patch d7df6d0eb75ae67ff055f7ad61072fbe262aa248 merged
✓ Canonical reference refs/heads/master updated to target commit 3e674d1a1df90807e934f9ae5da2591dd6848a33
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new branch] master -> master
```
@@ -116,13 +116,13 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ ├── xyz.radicle.id
- │ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+ │ │ └── 86399084097fb674569f5bc5847da609ab91aa9f
│ └── xyz.radicle.patch
- │ └── dd09b540aaeb4eecbf493d59d450bb7c3f98d335
+ │ └── d7df6d0eb75ae67ff055f7ad61072fbe262aa248
├── heads
│ ├── master
│ └── patches
- │ └── dd09b540aaeb4eecbf493d59d450bb7c3f98d335
+ │ └── d7df6d0eb75ae67ff055f7ad61072fbe262aa248
└── rad
├── id
├── root
@@ -131,7 +131,7 @@ z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
└── refs
├── cobs
│ └── xyz.radicle.patch
- │ └── dd09b540aaeb4eecbf493d59d450bb7c3f98d335
+ │ └── d7df6d0eb75ae67ff055f7ad61072fbe262aa248
├── heads
│ └── master
└── rad
diff --git a/crates/radicle-cli/examples/rad-patch-merge-unauthorized-branch.md b/crates/radicle-cli/examples/rad-patch-merge-unauthorized-branch.md
index 346da114cd..69f70f296e 100644
--- a/crates/radicle-cli/examples/rad-patch-merge-unauthorized-branch.md
+++ b/crates/radicle-cli/examples/rad-patch-merge-unauthorized-branch.md
@@ -21,14 +21,14 @@ $ git commit --allow-empty -m "Initialize accepted branch"
$ git push rad accepted
✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] accepted -> accepted
```
Next, Bob clones the repository and opens a patch targeting `accepted`.
``` ~bob
-$ rad clone rad://zHb72m63NBufHR7jmZi732BBT6j6
+$ rad clone rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -57,7 +57,7 @@ $ git commit -m "Add new feature"
$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/accepted" rad HEAD:refs/patches
✓ Patch [..] opened
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new reference] HEAD -> refs/patches
```
@@ -77,7 +77,7 @@ Merge made by the 'ort' strategy.
``` ~bob (stderr)
$ git push rad accepted
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new branch] accepted -> accepted
```
diff --git a/crates/radicle-cli/examples/rad-patch-merge-wrong-branch.md b/crates/radicle-cli/examples/rad-patch-merge-wrong-branch.md
index 1680b68e6c..b13cfa0f52 100644
--- a/crates/radicle-cli/examples/rad-patch-merge-wrong-branch.md
+++ b/crates/radicle-cli/examples/rad-patch-merge-wrong-branch.md
@@ -20,7 +20,7 @@ $ git commit --allow-empty -m "Initialize accepted branch"
``` (stderr)
$ git push rad accepted
✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] accepted -> accepted
```
@@ -41,7 +41,7 @@ $ git commit -m "Add new feature"
``` (stderr)
$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/accepted" rad HEAD:refs/patches
✓ Patch [..] opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -62,7 +62,7 @@ Fast-forward
``` (stderr)
$ git push rad master
✓ Canonical reference refs/heads/master updated to target commit [..]
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
[..]..[..] master -> master
```
diff --git a/crates/radicle-cli/examples/rad-patch-open-explore.md b/crates/radicle-cli/examples/rad-patch-open-explore.md
index d9183cc501..0d77580747 100644
--- a/crates/radicle-cli/examples/rad-patch-open-explore.md
+++ b/crates/radicle-cli/examples/rad-patch-open-explore.md
@@ -4,12 +4,12 @@ When preferred seeds are configured, opening a patch outputs the patch URL.
$ git checkout -b changes -q
$ git commit --allow-empty -q -m "Changes"
$ git push rad HEAD:refs/patches
-✓ Patch 4417ffaea271451c269d5e40141ba56ef3b79011 opened
+✓ Patch 2b05aedac8fd1aedfe5ca2ecb6aef01a182963d4 opened
✓ Synced with 1 seed(s)
- https://radicle.network/nodes/[..]/rad:z2WCJkTQLa4jDqqKDoPxGrDLr9icB/patches/4417ffaea271451c269d5e40141ba56ef3b79011
+ https://radicle.network/nodes/127.0.0.1/rad:zREWtxFjVEsAkeUYBV5ZEbw3qGo8/patches/2b05aedac8fd1aedfe5ca2ecb6aef01a182963d4
-To rad://z2WCJkTQLa4jDqqKDoPxGrDLr9icB/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://zREWtxFjVEsAkeUYBV5ZEbw3qGo8/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new reference] HEAD -> refs/patches
```
@@ -18,17 +18,17 @@ If we update the patch, the URL is also output.
``` (stderr)
$ git commit --amend --allow-empty -q -m "Other changes"
$ git push -f
-✓ Patch 4417ffa updated to revision 7df61fa4b15d3263d83dd6a703a0144190179324
-To compare against your previous revision 4417ffa, run:
+✓ Patch 2b05aed updated to revision 5ef99963cbd182ac0cdb8db046671324a32dfcff
+To compare against your previous revision 2b05aed, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 e12525d99b1415b9bccf4ed87050ab25eb86e2c4 b2b6432af93f8fe188e32d400263021b602cfec8
✓ Synced with 1 seed(s)
- https://radicle.network/nodes/[..]/rad:z2WCJkTQLa4jDqqKDoPxGrDLr9icB/patches/4417ffaea271451c269d5e40141ba56ef3b79011
+ https://radicle.network/nodes/127.0.0.1/rad:zREWtxFjVEsAkeUYBV5ZEbw3qGo8/patches/2b05aedac8fd1aedfe5ca2ecb6aef01a182963d4
-To rad://z2WCJkTQLa4jDqqKDoPxGrDLr9icB/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
- + e12525d...b2b6432 changes -> patches/4417ffaea271451c269d5e40141ba56ef3b79011 (forced update)
+To rad://zREWtxFjVEsAkeUYBV5ZEbw3qGo8/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+ + e12525d...b2b6432 changes -> patches/2b05aedac8fd1aedfe5ca2ecb6aef01a182963d4 (forced update)
```
While simply pushing a commit outputs a URL to the new source tree.
@@ -37,12 +37,12 @@ While simply pushing a commit outputs a URL to the new source tree.
$ git checkout master -q
$ git merge changes -q
$ git push rad master
-✓ Patch 4417ffaea271451c269d5e40141ba56ef3b79011 merged
+✓ Patch 2b05aedac8fd1aedfe5ca2ecb6aef01a182963d4 merged
✓ Canonical reference refs/heads/master updated to target commit b2b6432af93f8fe188e32d400263021b602cfec8
✓ Synced with 1 seed(s)
- https://radicle.network/nodes/[..]/rad:z2WCJkTQLa4jDqqKDoPxGrDLr9icB/tree/b2b6432af93f8fe188e32d400263021b602cfec8
+ https://radicle.network/nodes/127.0.0.1/rad:zREWtxFjVEsAkeUYBV5ZEbw3qGo8/tree/b2b6432af93f8fe188e32d400263021b602cfec8
-To rad://z2WCJkTQLa4jDqqKDoPxGrDLr9icB/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://zREWtxFjVEsAkeUYBV5ZEbw3qGo8/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
f2de534..b2b6432 master -> master
```
diff --git a/crates/radicle-cli/examples/rad-patch-pull-update.md b/crates/radicle-cli/examples/rad-patch-pull-update.md
index b9d255b928..bbd4b081ae 100644
--- a/crates/radicle-cli/examples/rad-patch-pull-update.md
+++ b/crates/radicle-cli/examples/rad-patch-pull-update.md
@@ -9,7 +9,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z4ASL2m61QbA12rkUnmge5f4KofSv
+Your Repository ID (RID) is rad:z41A7PnmXror3L2oP1vq81vhCQPBc
You can show it any time by running `rad .` from this directory.
✓ Repository successfully announced to the network.
@@ -21,9 +21,9 @@ To push changes, run `git push`.
```
``` ~bob
-$ rad clone rad:z4ASL2m61QbA12rkUnmge5f4KofSv
-✓ Seeding policy updated for rad:z4ASL2m61QbA12rkUnmge5f4KofSv with scope 'followed'
-Fetching rad:z4ASL2m61QbA12rkUnmge5f4KofSv from the network, found 1 potential seed(s).
+$ rad clone rad:z41A7PnmXror3L2oP1vq81vhCQPBc
+✓ Seeding policy updated for rad:z41A7PnmXror3L2oP1vq81vhCQPBc with scope 'followed'
+Fetching rad:z41A7PnmXror3L2oP1vq81vhCQPBc from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -44,7 +44,7 @@ our fork:
$ cd heartwood
$ git push rad master
✓ Synced with 1 seed(s)
-To rad://z4ASL2m61QbA12rkUnmge5f4KofSv/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z41A7PnmXror3L2oP1vq81vhCQPBc/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new branch] master -> master
```
@@ -54,22 +54,22 @@ Bob then opens a patch.
$ git checkout -b bob/feature -q
$ git commit --allow-empty -m "Bob's commit #1" -q
$ git push rad -o sync -o patch.message="Bob's patch" HEAD:refs/patches
-✓ Patch ae0b41c808681754ad228b6f0adb8a34c9cdb2fb opened
+✓ Patch 9a01007e4b6dfed6dfc14a207b483e856624f61e opened
✓ Synced with 1 seed(s)
-To rad://z4ASL2m61QbA12rkUnmge5f4KofSv/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z41A7PnmXror3L2oP1vq81vhCQPBc/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new reference] HEAD -> refs/patches
```
``` ~bob
$ git status --short --branch
-## bob/feature...rad/patches/ae0b41c808681754ad228b6f0adb8a34c9cdb2fb
+## bob/feature...rad/patches/9a01007e4b6dfed6dfc14a207b483e856624f61e
```
Alice checks it out.
``` ~alice
-$ rad patch checkout ae0b41c808681754ad228b6f0adb8a34c9cdb2fb
-✓ Switched to branch patch/ae0b41c at revision ae0b41c
-✓ Branch patch/ae0b41c setup to track rad/patches/ae0b41c808681754ad228b6f0adb8a34c9cdb2fb
+$ rad patch checkout 9a01007e4b6dfed6dfc14a207b483e856624f61e
+✓ Switched to branch patch/9a01007 at revision 9a01007
+✓ Branch patch/9a01007 setup to track rad/patches/9a01007e4b6dfed6dfc14a207b483e856624f61e
$ git show
commit bdcdb30b3c0f513620dd0f1c24ff8f4f71de956b
Author: radicle <radicle@localhost>
@@ -83,26 +83,26 @@ Bob then updates the patch.
``` ~bob (stderr)
$ git commit --allow-empty -m "Bob's commit #2" -q
$ git push rad -o sync -o patch.message="Updated."
-✓ Patch ae0b41c updated to revision 8613fcb2c70966d16c2b422533fa070ab58a6543
-To compare against your previous revision ae0b41c, run:
+✓ Patch 9a01007 updated to revision 90c8597aeaa247290d42665d01c363bfe67d1818
+To compare against your previous revision 9a01007, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 bdcdb30b3c0f513620dd0f1c24ff8f4f71de956b cad2666a8a2250e4dee175ed5044be2c251ff08b
✓ Synced with 1 seed(s)
-To rad://z4ASL2m61QbA12rkUnmge5f4KofSv/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
- bdcdb30..cad2666 bob/feature -> patches/ae0b41c808681754ad228b6f0adb8a34c9cdb2fb
+To rad://z41A7PnmXror3L2oP1vq81vhCQPBc/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+ bdcdb30..cad2666 bob/feature -> patches/9a01007e4b6dfed6dfc14a207b483e856624f61e
```
Alice pulls the update.
``` ~alice
-$ rad patch show ae0b41c
+$ rad patch show 9a01007
╭──────────────────────────────────────────────────────────────────╮
│ Title Bob's patch │
-│ Patch ae0b41c808681754ad228b6f0adb8a34c9cdb2fb │
+│ Patch 9a01007e4b6dfed6dfc14a207b483e856624f61e │
│ Author bob z6Mkt67…v4N1tRk │
│ Head cad2666a8a2250e4dee175ed5044be2c251ff08b │
-│ Base [..] │
+│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
│ Target master │
│ Commits ahead 2, behind 0 │
│ Status open │
@@ -110,18 +110,18 @@ $ rad patch show ae0b41c
│ cad2666 Bob's commit #2 │
│ bdcdb30 Bob's commit #1 │
├──────────────────────────────────────────────────────────────────┤
-│ ● Revision ae0b41c @ f2de534..bdcdb30 by bob z6Mkt67…v4N1tRk now │
-│ ↑ Revision 8613fcb @ f2de534..cad2666 by bob z6Mkt67…v4N1tRk now │
+│ ● Revision 9a01007 @ f2de534..bdcdb30 by bob z6Mkt67…v4N1tRk now │
+│ ↑ Revision 90c8597 @ f2de534..cad2666 by bob z6Mkt67…v4N1tRk now │
╰──────────────────────────────────────────────────────────────────╯
$ git ls-remote rad
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 HEAD
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
-cad2666a8a2250e4dee175ed5044be2c251ff08b refs/heads/patches/ae0b41c808681754ad228b6f0adb8a34c9cdb2fb
+cad2666a8a2250e4dee175ed5044be2c251ff08b refs/heads/patches/9a01007e4b6dfed6dfc14a207b483e856624f61e
```
``` ~alice
$ git fetch rad
$ git status --short --branch
-## patch/ae0b41c...rad/patches/ae0b41c808681754ad228b6f0adb8a34c9cdb2fb [behind 1]
+## patch/9a01007...rad/patches/9a01007e4b6dfed6dfc14a207b483e856624f61e [behind 1]
```
``` ~alice
$ git pull
diff --git a/crates/radicle-cli/examples/rad-patch-revert-custom-branch.md b/crates/radicle-cli/examples/rad-patch-revert-custom-branch.md
index caba91f178..1161a2cb44 100644
--- a/crates/radicle-cli/examples/rad-patch-revert-custom-branch.md
+++ b/crates/radicle-cli/examples/rad-patch-revert-custom-branch.md
@@ -20,7 +20,7 @@ $ git commit --allow-empty -m "Initialize accepted branch"
``` (stderr)
$ git push rad accepted
✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] accepted -> accepted
```
@@ -41,7 +41,7 @@ $ git commit -m "Add new feature"
``` (stderr)
$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/accepted" rad HEAD:refs/patches
✓ Patch [..] opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -61,9 +61,9 @@ Fast-forward
```
``` (stderr)
$ git push rad accepted
-✓ Patch ad29796fe5ce937fa19725cdfb2982987abe0cfa merged
+✓ Patch 38592f91ee06aeb38c88a5352ca4254accff3591 merged
✓ Canonical reference refs/heads/accepted updated to target commit 27acd3b208662f374b34cd4c599f3628c9e42b80
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f9a3b89..27acd3b accepted -> accepted
```
@@ -74,7 +74,7 @@ $ rad patch list --merged
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ✓ ad29796 Add new feature alice (you) - 27acd3b +0 -0 now │
+│ ✓ 38592f9 Add new feature alice (you) - 27acd3b +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -94,7 +94,7 @@ HEAD is now at [..] Initial commit
``` (stderr)
$ git push rad master --force
✓ Canonical reference refs/heads/master updated to target commit [..]
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ f2de534...08c788d master -> master (forced update)
```
@@ -106,7 +106,7 @@ $ rad patch list --merged
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ✓ ad29796 Add new feature alice (you) - 27acd3b +0 -0 now │
+│ ✓ 38592f9 Add new feature alice (you) - 27acd3b +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -124,9 +124,9 @@ HEAD is now at [..] Initialize accepted branch
```
``` (stderr)
$ git push rad accepted --force
-! Patch ad29796fe5ce937fa19725cdfb2982987abe0cfa reverted at revision ad29796
+! Patch 38592f91ee06aeb38c88a5352ca4254accff3591 reverted at revision 38592f9
✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 27acd3b...f9a3b89 accepted -> accepted (forced update)
```
diff --git a/crates/radicle-cli/examples/rad-patch-revert-merge.md b/crates/radicle-cli/examples/rad-patch-revert-merge.md
index 82c97a0e5b..eb4c6e49fd 100644
--- a/crates/radicle-cli/examples/rad-patch-revert-merge.md
+++ b/crates/radicle-cli/examples/rad-patch-revert-merge.md
@@ -4,26 +4,26 @@ Let's create a patch, merge it and then revert it.
$ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push rad HEAD:refs/patches
-✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
$ git checkout master
Switched to branch 'master'
$ git merge feature/1
$ git push rad master
-✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 merged
+✓ Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 merged
✓ Canonical reference refs/heads/master updated to target commit 20aa5dde6210796c3a2f04079b42316a31d02689
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..20aa5dd master -> master
```
First we see the patch as merged.
```
-$ rad patch show 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
+$ rad patch show 43362c8b437a0ce6798a762f3676e4dd68b67792
╭──────────────────────────────────────────────────────────╮
│ Title First change │
-│ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 │
+│ Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 │
│ Author alice (you) │
│ Head 20aa5dde6210796c3a2f04079b42316a31d02689 │
│ Base [..] │
@@ -34,7 +34,7 @@ $ rad patch show 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
├──────────────────────────────────────────────────────────┤
│ 20aa5dd First change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 837bfbb @ [..]..20aa5dd by alice (you) now │
+│ ● Revision 43362c8 @ [..]..20aa5dd by alice (you) now │
│ └─ ✓ merged by alice (you) │
╰──────────────────────────────────────────────────────────╯
```
@@ -51,19 +51,19 @@ When pushing, notice that we're told our patch is reverted.
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad master --force
-! Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 reverted at revision 837bfbb
+! Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 reverted at revision 43362c8
✓ Canonical reference refs/heads/master updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 20aa5dd...f2de534 master -> master (forced update)
```
The patch shows up as open again.
```
-$ rad patch show 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
+$ rad patch show 43362c8b437a0ce6798a762f3676e4dd68b67792
╭──────────────────────────────────────────────────────────╮
│ Title First change │
-│ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 │
+│ Patch 43362c8b437a0ce6798a762f3676e4dd68b67792 │
│ Author alice (you) │
│ Head 20aa5dde6210796c3a2f04079b42316a31d02689 │
│ Base [..] │
@@ -74,6 +74,6 @@ $ rad patch show 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
├──────────────────────────────────────────────────────────┤
│ 20aa5dd First change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 837bfbb @ [..]..20aa5dd by alice (you) now │
+│ ● Revision 43362c8 @ [..]..20aa5dd by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-review-no-options.md b/crates/radicle-cli/examples/rad-patch-review-no-options.md
index cd61b5e364..7d399644d1 100644
--- a/crates/radicle-cli/examples/rad-patch-review-no-options.md
+++ b/crates/radicle-cli/examples/rad-patch-review-no-options.md
@@ -2,15 +2,15 @@ The `rad patch review` command must provide an option or a review message, since
a review must have a verdict or a review summary:
``` (fail)
-$ rad patch review 133e390 --no-message --no-announce
+$ rad patch review 26ba061 --no-message --no-announce
✗ Error: expected one of `--accept` or `--reject`, or supply a review message
```
This time we will supply a message:
```
-$ rad patch review 133e390 -m "Looks reasonable, no strong opinion." --no-announce
-✓ Patch 133e390 reviewed
+$ rad patch review 26ba061 -m "Looks reasonable, no strong opinion." --no-announce
+✓ Patch 26ba061 reviewed
```
Submitting a second review on the same revision by the same author is ignored.
@@ -19,6 +19,6 @@ Currently, there is no way to edit a review from the CLI.
Note that the review command will still succeed, but with no effect:
```
-$ rad patch review 133e390 -m "Changed my mind." --no-announce
-✓ Patch 133e390 reviewed
+$ rad patch review 26ba061 -m "Changed my mind." --no-announce
+✓ Patch 26ba061 reviewed
```
diff --git a/crates/radicle-cli/examples/rad-patch-update.md b/crates/radicle-cli/examples/rad-patch-update.md
index 303f3e44a9..f5b2f84b7f 100644
--- a/crates/radicle-cli/examples/rad-patch-update.md
+++ b/crates/radicle-cli/examples/rad-patch-update.md
@@ -6,16 +6,16 @@ $ git commit -q -m "Not a real change" --allow-empty
```
``` (stderr)
$ git push rad HEAD:refs/patches
-✓ Patch 3eaedda3113800f1a8aa809a81c9beb4fe598a6e opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch faba3f83f5497caa87ba98be85205b30c5e3afa7 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
```
-$ rad patch show 3eaedda3113800f1a8aa809a81c9beb4fe598a6e
+$ rad patch show faba3f83f5497caa87ba98be85205b30c5e3afa7
╭──────────────────────────────────────────────────────────╮
│ Title Not a real change │
-│ Patch 3eaedda3113800f1a8aa809a81c9beb4fe598a6e │
+│ Patch faba3f83f5497caa87ba98be85205b30c5e3afa7 │
│ Author alice (you) │
│ Head 51b2f0f77b9849bfaa3e9d3ff68ee2f57771d20c │
│ Base [..] │
@@ -26,7 +26,7 @@ $ rad patch show 3eaedda3113800f1a8aa809a81c9beb4fe598a6e
├──────────────────────────────────────────────────────────┤
│ 51b2f0f Not a real change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 3eaedda @ [..]..51b2f0f by alice (you) now │
+│ ● Revision faba3f8 @ [..]..51b2f0f by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -48,17 +48,17 @@ Now, instead of using `git push` to update the patch, as we normally would,
we run:
```
-$ rad patch update 3eaedda3113800f1a8aa809a81c9beb4fe598a6e -m "Updated patch" --no-announce
-4b088586d035de0ae9a47f5a02d0b4b0cd1a99c9
+$ rad patch update faba3f83f5497caa87ba98be85205b30c5e3afa7 -m "Updated patch" --no-announce
+078d917942c7a39c525686b9164fa27b544df5a1
```
The command outputs the new Revision ID, which we can now see here:
```
-$ rad patch show 3eaedda3113800f1a8aa809a81c9beb4fe598a6e
+$ rad patch show faba3f83f5497caa87ba98be85205b30c5e3afa7
╭──────────────────────────────────────────────────────────╮
│ Title Not a real change │
-│ Patch 3eaedda3113800f1a8aa809a81c9beb4fe598a6e │
+│ Patch faba3f83f5497caa87ba98be85205b30c5e3afa7 │
│ Author alice (you) │
│ Head 4d272148458a17620541555b1f0905c01658aa9f │
│ Base [..] │
@@ -70,7 +70,7 @@ $ rad patch show 3eaedda3113800f1a8aa809a81c9beb4fe598a6e
│ 4d27214 Rename readme file │
│ 51b2f0f Not a real change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 3eaedda @ [..]..51b2f0f by alice (you) now │
-│ ↑ Revision 4b08858 @ [..]..4d27214 by alice (you) now │
+│ ● Revision faba3f8 @ [..]..51b2f0f by alice (you) now │
+│ ↑ Revision 078d917 @ f2de534..4d27214 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-via-push.md b/crates/radicle-cli/examples/rad-patch-via-push.md
index 49f2c16998..05efb0a5ac 100644
--- a/crates/radicle-cli/examples/rad-patch-via-push.md
+++ b/crates/radicle-cli/examples/rad-patch-via-push.md
@@ -8,21 +8,21 @@ $ git checkout -b feature/1
Switched to a new branch 'feature/1'
$ git commit -a -m "Add things" -q --allow-empty
$ git push -o patch.message="Add things #1" -o patch.message="See commits for details." rad HEAD:refs/patches
-✓ Patch 430fd711706f6eea742ba27a8d8e4ad3ad52b0d9 opened
-hint: to update, run `git push` or `git push rad --force-with-lease HEAD:patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9`
+✓ Patch 4e0b866a7ac15131ad472888528ae0e048ee952f opened
+hint: to update, run `git push` or `git push rad --force-with-lease HEAD:patches/4e0b866a7ac15131ad472888528ae0e048ee952f`
hint: offline push, your node is not running
hint: to sync with the network, run `rad node start`
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
We can see a patch was created:
```
-$ rad patch show 430fd711706f6eea742ba27a8d8e4ad3ad52b0d9
+$ rad patch show 4e0b866a7ac15131ad472888528ae0e048ee952f
╭──────────────────────────────────────────────────────────╮
│ Title Add things #1 │
-│ Patch 430fd711706f6eea742ba27a8d8e4ad3ad52b0d9 │
+│ Patch 4e0b866a7ac15131ad472888528ae0e048ee952f │
│ Author alice (you) │
│ Head 42d894a83c9c356552a57af09ccdbd5587a99045 │
│ Base [..] │
@@ -35,7 +35,7 @@ $ rad patch show 430fd711706f6eea742ba27a8d8e4ad3ad52b0d9
├──────────────────────────────────────────────────────────┤
│ 42d894a Add things │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 430fd71 @ [..]..42d894a by alice (you) now │
+│ ● Revision 4e0b866 @ f2de534..42d894a by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -44,7 +44,7 @@ branch associated with this patch:
```
$ git branch -vv
-* feature/1 42d894a [rad/patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9] Add things
+* feature/1 42d894a [rad/patches/4e0b866a7ac15131ad472888528ae0e048ee952f] Add things
master f2de534 [rad/master] Second commit
```
@@ -52,7 +52,7 @@ Let's check that it's up to date with our local head:
```
$ git status --short --branch
-## feature/1...rad/patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9
+## feature/1...rad/patches/4e0b866a7ac15131ad472888528ae0e048ee952f
$ git fetch
$ git push
```
@@ -64,14 +64,14 @@ $ git show-ref
42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/feature/1
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/remotes/rad/master
-42d894a83c9c356552a57af09ccdbd5587a99045 refs/remotes/rad/patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9
+42d894a83c9c356552a57af09ccdbd5587a99045 refs/remotes/rad/patches/4e0b866a7ac15131ad472888528ae0e048ee952f
```
```
-$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6 'refs/heads/patches/*'
-42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9
-$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 'refs/cobs/*'
-2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 refs/cobs/xyz.radicle.id/2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
-430fd711706f6eea742ba27a8d8e4ad3ad52b0d9 refs/cobs/xyz.radicle.patch/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9
+$ git ls-remote rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G 'refs/heads/patches/*'
+42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/patches/4e0b866a7ac15131ad472888528ae0e048ee952f
+$ git ls-remote rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 'refs/cobs/*'
+86399084097fb674569f5bc5847da609ab91aa9f refs/cobs/xyz.radicle.id/86399084097fb674569f5bc5847da609ab91aa9f
+4e0b866a7ac15131ad472888528ae0e048ee952f refs/cobs/xyz.radicle.patch/4e0b866a7ac15131ad472888528ae0e048ee952f
```
We can create another patch:
@@ -80,8 +80,8 @@ We can create another patch:
$ git checkout -b feature/2 -q master
$ git commit -a -m "Add more things" -q --allow-empty
$ git push rad HEAD:refs/patches
-✓ Patch 817b833a28ec729b6b5a6e1c3f2368311e13a8f8 opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 368960ee1cd815c40c68cc776cbe6bd4db48b287 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -89,8 +89,8 @@ We see both branches with upstreams now:
```
$ git branch -vv
- feature/1 42d894a [rad/patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9] Add things
-* feature/2 8b0ea80 [rad/patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8] Add more things
+ feature/1 42d894a [rad/patches/4e0b866a7ac15131ad472888528ae0e048ee952f] Add things
+* feature/2 8b0ea80 [rad/patches/368960ee1cd815c40c68cc776cbe6bd4db48b287] Add more things
master f2de534 [rad/master] Second commit
```
@@ -101,8 +101,8 @@ $ rad patch
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 430fd71 Add things #1 alice (you) - 42d894a +0 -0 now │
-│ ● 817b833 Add more things alice (you) - 8b0ea80 +0 -0 now │
+│ ● 368960e Add more things alice (you) - 8b0ea80 +0 -0 now │
+│ ● 4e0b866 Add things #1 alice (you) - 42d894a +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -114,13 +114,13 @@ $ git commit -a -m "Improve code" -q --allow-empty
``` (stderr)
$ git push rad
-✓ Patch 817b833 updated to revision e5f4dd551f3c0c1876f1b1f57e9290ab2ff879c1
-To compare against your previous revision 817b833, run:
+✓ Patch 368960e updated to revision f951ceca85e932c74eaa8d8cba16ce4712835f03
+To compare against your previous revision 368960e, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 8b0ea80d3acd2c55e8820b3064e7575934158b4d 02bef3fac41b2f98bb3c02b868a53ddfecb55b5f
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 8b0ea80..02bef3f feature/2 -> patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 8b0ea80..02bef3f feature/2 -> patches/368960ee1cd815c40c68cc776cbe6bd4db48b287
```
This last `git push` worked without specifying an upstream branch despite the
@@ -138,10 +138,10 @@ This allows for pushing to the remote patch branch without using the full
We can then see that the patch head has moved:
```
-$ rad patch show 817b833
+$ rad patch show 368960e
╭──────────────────────────────────────────────────────────╮
│ Title Add more things │
-│ Patch 817b833a28ec729b6b5a6e1c3f2368311e13a8f8 │
+│ Patch 368960ee1cd815c40c68cc776cbe6bd4db48b287 │
│ Author alice (you) │
│ Head 02bef3fac41b2f98bb3c02b868a53ddfecb55b5f │
│ Base [..] │
@@ -153,8 +153,8 @@ $ rad patch show 817b833
│ 02bef3f Improve code │
│ 8b0ea80 Add more things │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 817b833 @ [..]..8b0ea80 by alice (you) now │
-│ ↑ Revision e5f4dd5 @ [..]..02bef3f by alice (you) now │
+│ ● Revision 368960e @ [..]..8b0ea80 by alice (you) now │
+│ ↑ Revision f951cec @ [..]..02bef3f by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -167,14 +167,14 @@ $ git rev-parse HEAD
```
$ git status --short --branch
-## feature/2...rad/patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8
+## feature/2...rad/patches/368960ee1cd815c40c68cc776cbe6bd4db48b287
```
```
-$ git rev-parse refs/remotes/rad/patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8
+$ git rev-parse refs/remotes/rad/patches/368960ee1cd815c40c68cc776cbe6bd4db48b287
02bef3fac41b2f98bb3c02b868a53ddfecb55b5f
-$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8
-02bef3fac41b2f98bb3c02b868a53ddfecb55b5f refs/heads/patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8
+$ git ls-remote rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/patches/368960ee1cd815c40c68cc776cbe6bd4db48b287
+02bef3fac41b2f98bb3c02b868a53ddfecb55b5f refs/heads/patches/368960ee1cd815c40c68cc776cbe6bd4db48b287
```
## Force push
@@ -194,9 +194,9 @@ Now let's push to the patch head.
``` (stderr) (fail)
$ git push
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- ! [rejected] feature/2 -> patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8 (non-fast-forward)
-error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ ! [rejected] feature/2 -> patches/368960ee1cd815c40c68cc776cbe6bd4db48b287 (non-fast-forward)
+error: failed to push some refs to 'rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
hint: [..]
hint: [..]
hint: [..]
@@ -208,22 +208,22 @@ use `--force-with-lease` (or `--force`) to force the update.
``` (stderr)
$ git push --force-with-lease
-✓ Patch 817b833 updated to revision 678b533a2f6f1b10f06c0e499994ec8c742c243e
-To compare against your previous revision e5f4dd5, run:
+✓ Patch 368960e updated to revision af867d0de56c5d8d000c390e580f180d5c20ad63
+To compare against your previous revision f951cec, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 02bef3fac41b2f98bb3c02b868a53ddfecb55b5f 9304dbc445925187994a7a93222a3f8bde73b785
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- + 02bef3f...9304dbc feature/2 -> patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8 (forced update)
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ + 02bef3f...9304dbc feature/2 -> patches/368960ee1cd815c40c68cc776cbe6bd4db48b287 (forced update)
```
That worked. We can see the new revision if we call `rad patch show`:
```
-$ rad patch show 817b833
+$ rad patch show 368960e
╭──────────────────────────────────────────────────────────╮
│ Title Add more things │
-│ Patch 817b833a28ec729b6b5a6e1c3f2368311e13a8f8 │
+│ Patch 368960ee1cd815c40c68cc776cbe6bd4db48b287 │
│ Author alice (you) │
│ Head 9304dbc445925187994a7a93222a3f8bde73b785 │
│ Base [..] │
@@ -235,9 +235,9 @@ $ rad patch show 817b833
│ 9304dbc Amended commit │
│ 8b0ea80 Add more things │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 817b833 @ [..]..8b0ea80 by alice (you) now │
-│ ↑ Revision e5f4dd5 @ [..]..02bef3f by alice (you) now │
-│ ↑ Revision 678b533 @ [..]..9304dbc by alice (you) now │
+│ ● Revision 368960e @ [..]..8b0ea80 by alice (you) now │
+│ ↑ Revision f951cec @ [..]..02bef3f by alice (you) now │
+│ ↑ Revision af867d0 @ [..]..9304dbc by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -273,10 +273,10 @@ Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 831e838 Going into detached HEAD
$ git push rad HEAD:refs/patches -o patch.branch
-✓ Patch 032523bb3455720e7713c3f61edef3d1be7f4513 opened
-✓ Branch patches/032523bb3455720e7713c3f61edef3d1be7f4513 created
-hint: to update, run `git push rad patches/032523bb3455720e7713c3f61edef3d1be7f4513`
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 93f89aa5ff91975938077ac27dfe0509e63ae45b opened
+✓ Branch patches/93f89aa5ff91975938077ac27dfe0509e63ae45b created
+hint: to update, run `git push rad patches/93f89aa5ff91975938077ac27dfe0509e63ae45b`
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -284,17 +284,17 @@ The default name used for the branch is `patches/<patch id>`. So let's checkout
the branch and push a new revision:
``` (stderr)
-$ git checkout patches/032523bb3455720e7713c3f61edef3d1be7f4513
-Switched to branch 'patches/032523bb3455720e7713c3f61edef3d1be7f4513'
+$ git checkout patches/93f89aa5ff91975938077ac27dfe0509e63ae45b
+Switched to branch 'patches/93f89aa5ff91975938077ac27dfe0509e63ae45b'
$ git commit --allow-empty -m "Pushing new revision"
$ git push rad
-✓ Patch 032523b updated to revision bd19672e49531289221878f871bdd1af8f55be20
-To compare against your previous revision 032523b, run:
+✓ Patch 93f89aa updated to revision c55e519073994d2904fab46988c8b2bca703624a
+To compare against your previous revision 93f89aa, run:
git range-diff [..] [..] [..]
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 831e838..d0ff2a1 patches/032523bb3455720e7713c3f61edef3d1be7f4513 -> patches/032523bb3455720e7713c3f61edef3d1be7f4513
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 831e838..d0ff2a1 patches/93f89aa5ff91975938077ac27dfe0509e63ae45b -> patches/93f89aa5ff91975938077ac27dfe0509e63ae45b
```
However, we also allow you to name the branch yourself:
@@ -302,10 +302,10 @@ However, we also allow you to name the branch yourself:
``` (stderr)
$ git checkout 831e838 -q
$ git push rad HEAD:refs/patches -o patch.branch='feature/3'
-✓ Patch 032523bb3455720e7713c3f61edef3d1be7f4513 opened
+✓ Patch 93f89aa5ff91975938077ac27dfe0509e63ae45b opened
✓ Branch feature/3 created
hint: to update, run `git push rad feature/3`
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -316,13 +316,13 @@ $ git checkout feature/3
Switched to branch 'feature/3'
$ git commit --allow-empty -m "Pushing new revision"
$ git push rad
-✓ Patch 032523b updated to revision bd19672e49531289221878f871bdd1af8f55be20
-To compare against your previous revision 032523b, run:
+✓ Patch 93f89aa updated to revision c55e519073994d2904fab46988c8b2bca703624a
+To compare against your previous revision 93f89aa, run:
git range-diff [..] [..] [..]
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 831e838..d0ff2a1 feature/3 -> patches/032523bb3455720e7713c3f61edef3d1be7f4513
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 831e838..d0ff2a1 feature/3 -> patches/93f89aa5ff91975938077ac27dfe0509e63ae45b
```
## Empty patch
@@ -333,7 +333,7 @@ we should get an error:
``` (stderr) (fail)
$ git push rad master:refs/patches
warn: attempted to create a patch using the commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354, but this commit is already included in the base branch
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
! [remote rejected] master -> refs/patches (patch commits are already included in the base branch)
-error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
```
diff --git a/crates/radicle-cli/examples/rad-patch.md b/crates/radicle-cli/examples/rad-patch.md
index a9603ebc7f..e9a8558960 100644
--- a/crates/radicle-cli/examples/rad-patch.md
+++ b/crates/radicle-cli/examples/rad-patch.md
@@ -26,8 +26,8 @@ Once the code is ready, we open (or create) a patch with our changes for the pro
``` (stderr)
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 26ba0615c6e911344ee61d53241a2903c5bf8623 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -38,14 +38,14 @@ $ rad patch
╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 133e390 Define power requirements alice (you) - 3e674d1 +0 -0 now │
+│ ● 26ba061 Define power requirements alice (you) - 3e674d1 +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
```
```
-$ rad patch show 133e3905e9252139a7ea29881b3d5bca816372b9 -p
+$ rad patch show 26ba0615c6e911344ee61d53241a2903c5bf8623 -p
╭──────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 │
+│ Patch 26ba0615c6e911344ee61d53241a2903c5bf8623 │
│ Author alice (you) │
│ Head 3e674d1a1df90807e934f9ae5da2591dd6848a33 │
│ Base [..] │
@@ -58,7 +58,7 @@ $ rad patch show 133e3905e9252139a7ea29881b3d5bca816372b9 -p
├──────────────────────────────────────────────────────────┤
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 133e390 @ [..]..3e674d1 by alice (you) now │
+│ ● Revision 26ba061 @ [..]..3e674d1 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
commit 3e674d1a1df90807e934f9ae5da2591dd6848a33
@@ -80,14 +80,14 @@ $ rad patch list --authored
╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 133e390 Define power requirements alice (you) - 3e674d1 +0 -0 now │
+│ ● 26ba061 Define power requirements alice (you) - 3e674d1 +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
```
We can also see that it set an upstream for our patch branch:
```
$ git branch -vv
-* flux-capacitor-power 3e674d1 [rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9] Define power requirements
+* flux-capacitor-power 3e674d1 [rad/patches/26ba0615c6e911344ee61d53241a2903c5bf8623] Define power requirements
master f2de534 [rad/master] Second commit
```
@@ -95,12 +95,12 @@ We can also label patches as well as assign DIDs to the patch to help
organise your workflow:
```
-$ rad patch label 133e390 --add fun --no-announce
-$ rad patch assign 133e390 --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
-$ rad patch show 133e390
+$ rad patch label 26ba061 --add fun --no-announce
+$ rad patch assign 26ba061 --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
+$ rad patch show 26ba061
╭──────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 │
+│ Patch 26ba0615c6e911344ee61d53241a2903c5bf8623 │
│ Author alice (you) │
│ Labels fun │
│ Head 3e674d1a1df90807e934f9ae5da2591dd6848a33 │
@@ -114,7 +114,7 @@ $ rad patch show 133e390
├──────────────────────────────────────────────────────────┤
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 133e390 @ [..]..3e674d1 by alice (you) now │
+│ ● Revision 26ba061 @ [..]..3e674d1 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -130,33 +130,33 @@ $ git commit --message "Add README, just for the fun"
```
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun"
-✓ Patch 133e390 updated to revision 7cf1397082d47fc3f0289124ed3d31922ac320d8
-To compare against your previous revision 133e390, run:
+✓ Patch 26ba061 updated to revision d0013e385c76a82e5f62df467e735fd96bd69a00
+To compare against your previous revision 26ba061, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 3e674d1a1df90807e934f9ae5da2591dd6848a33 27857ec9eb04c69cacab516e8bf4b5fd36090f66
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 3e674d1..27857ec flux-capacitor-power -> patches/133e3905e9252139a7ea29881b3d5bca816372b9
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 3e674d1..27857ec flux-capacitor-power -> patches/26ba0615c6e911344ee61d53241a2903c5bf8623
```
And let's leave a quick comment for our team:
```
-$ rad patch comment 133e390 --message 'I cannot wait to get back to the 90s!' --no-announce
+$ rad patch comment 26ba061 --message 'I cannot wait to get back to the 90s!' --no-announce
╭───────────────────────────────────────╮
-│ alice (you) now c07e3d6 │
+│ alice (you) now 30c6a91 │
│ I cannot wait to get back to the 90s! │
╰───────────────────────────────────────╯
-$ rad patch comment 133e390 --message 'My favorite decade!' --reply-to c07e3d6 -q --no-announce
-9f0c1009adf9bc4565a7cbfe7b3fc192fc6aa5f4
+$ rad patch comment 26ba061 --message 'My favorite decade!' --reply-to 30c6a91 -q --no-announce
+e99153259a09f5a15e385e531a5943d314245db1
```
If we realize we made a mistake in the comment, we can go back and edit it:
```
-$ rad patch comment 133e390 --edit c07e3d6 --message 'I cannot wait to get back to the 80s!' --no-announce
+$ rad patch comment 26ba061 --edit 30c6a91 --message 'I cannot wait to get back to the 80s!' --no-announce
╭───────────────────────────────────────╮
-│ alice (you) now c07e3d6 │
+│ alice (you) now 30c6a91 │
│ I cannot wait to get back to the 80s! │
╰───────────────────────────────────────╯
```
@@ -164,38 +164,38 @@ $ rad patch comment 133e390 --edit c07e3d6 --message 'I cannot wait to get back
And if we really made a mistake, then we can redact the comment entirely:
```
-$ rad patch comment 133e390 --redact 9f0c100 --no-announce
-✓ Redacted comment 9f0c1009adf9bc4565a7cbfe7b3fc192fc6aa5f4
+$ rad patch comment 26ba061 --redact e991532 --no-announce
+✓ Redacted comment e99153259a09f5a15e385e531a5943d314245db1
```
Now, let's checkout the patch that we just created:
```
-$ rad patch checkout 133e390
-✓ Switched to branch patch/133e390 at revision 7cf1397
-✓ Branch patch/133e390 setup to track rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9
+$ rad patch checkout 26ba061
+✓ Switched to branch patch/26ba061 at revision d0013e3
+✓ Branch patch/26ba061 setup to track rad/patches/26ba0615c6e911344ee61d53241a2903c5bf8623
```
We can also add a review verdict as such:
```
-$ rad patch review 133e390 --accept --no-message --no-announce
-✓ Patch 133e390 accepted
+$ rad patch review 26ba061 --accept --no-message --no-announce
+✓ Patch 26ba061 accepted
```
Showing the patch list now will reveal the favorable verdict:
```
-$ rad patch show 133e390
+$ rad patch show 26ba061
╭──────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 │
+│ Patch 26ba0615c6e911344ee61d53241a2903c5bf8623 │
│ Author alice (you) │
│ Labels fun │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
│ Base [..] │
│ Target master │
-│ Branches flux-capacitor-power, patch/133e390 │
+│ Branches flux-capacitor-power, patch/26ba061 │
│ Commits ahead 2, behind 0 │
│ Status open │
│ │
@@ -204,32 +204,32 @@ $ rad patch show 133e390
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 133e390 @ [..]..3e674d1 by alice (you) now │
-│ ↑ Revision 7cf1397 @ f2de534..27857ec by alice (you) now │
+│ ● Revision 26ba061 @ [..]..3e674d1 by alice (you) now │
+│ ↑ Revision d0013e3 @ f2de534..27857ec by alice (you) now │
│ └─ ✓ accepted by alice (you) now │
╰──────────────────────────────────────────────────────────╯
$ rad patch list
╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 133e390 Define power requirements alice (you) ✓ 27857ec +0 -0 now fun │
+│ ● 26ba061 Define power requirements alice (you) ✓ 27857ec +0 -0 now fun │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
```
If you make a mistake on the patch description, you can always change it!
```
-$ rad patch edit 133e390 --message "Define power requirements" --message "Add requirements file" --no-announce
-$ rad patch show 133e390
+$ rad patch edit 26ba061 --message "Define power requirements" --message "Add requirements file" --no-announce
+$ rad patch show 26ba061
╭──────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 │
+│ Patch 26ba0615c6e911344ee61d53241a2903c5bf8623 │
│ Author alice (you) │
│ Labels fun │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
│ Base [..] │
│ Target master │
-│ Branches flux-capacitor-power, patch/133e390 │
+│ Branches flux-capacitor-power, patch/26ba061 │
│ Commits ahead 2, behind 0 │
│ Status open │
│ │
@@ -238,8 +238,8 @@ $ rad patch show 133e390
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 133e390 @ [..]..3e674d1 by alice (you) now │
-│ ↑ Revision 7cf1397 @ f2de534..27857ec by alice (you) now │
+│ ● Revision 26ba061 @ [..]..3e674d1 by alice (you) now │
+│ ↑ Revision d0013e3 @ f2de534..27857ec by alice (you) now │
│ └─ ✓ accepted by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-publish.md b/crates/radicle-cli/examples/rad-publish.md
index dce7e5e15c..2f67d62190 100644
--- a/crates/radicle-cli/examples/rad-publish.md
+++ b/crates/radicle-cli/examples/rad-publish.md
@@ -15,7 +15,7 @@ public
The repository is now in our inventory:
```
$ rad node inventory
-rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch
+rad:z2PZv5hqSvKC6A5cTQrF5VXwG97Q2
```
If we try to publish again, we get an error:
@@ -34,12 +34,12 @@ repository private again __will not_ be replicated.
```
$ rad id update --visibility private --title "Privatise" --description "Reverting the rad publish event"
-✓ Identity revision 1a9f5d33208af4fed729f9274b96ae24389218c9 created
+✓ Identity revision 64213cccd6bcb7b36fb03bb02b96c4439cdb73ca created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Privatise │
-│ Revision 1a9f5d33208af4fed729f9274b96ae24389218c9 │
-│ Parent adf307a436d784814fdd330ee440ee8e6e396df2 │
-│ Blob 6d07bc6fa5f402ae7868068b5a697c872c45282a │
+│ Revision 64213cccd6bcb7b36fb03bb02b96c4439cdb73ca │
+│ Parent e2c923cc39373a95b8df231843288c402e51360d │
+│ Blob 63b5274c1fbf5b39f0f76eb16192b6aebd45e67f │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -49,8 +49,9 @@ $ rad id update --visibility private --title "Privatise" --description "Revertin
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,22 +1,25 @@
+@@ -1,23 +1,26 @@
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"rules": {
diff --git a/crates/radicle-cli/examples/rad-push-and-pull-patches.md b/crates/radicle-cli/examples/rad-push-and-pull-patches.md
index dfeaafb9c8..d495d34c22 100644
--- a/crates/radicle-cli/examples/rad-push-and-pull-patches.md
+++ b/crates/radicle-cli/examples/rad-push-and-pull-patches.md
@@ -12,35 +12,35 @@ $ git checkout -b alice/1 -q
$ git rev-parse HEAD
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
$ git checkout master -q
-$ rad patch checkout e671831
-✓ Switched to branch patch/e671831 at revision e671831
-✓ Branch patch/e671831 setup to track rad/patches/e671831ca93349c369c4d30377e42db50daecced
+$ rad patch checkout 6118f2b
+✓ Switched to branch patch/6118f2b at revision 6118f2b
+✓ Branch patch/6118f2b setup to track rad/patches/6118f2b18790045d75584169043ebfeb80c67dd4
$ rad remote add z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote bob@z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk added
✓ Remote-tracking branch bob@z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/master created for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ git checkout master -q
$ cat .git/FETCH_HEAD
-f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 not-for-merge branch 'master' of rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc not-for-merge branch 'patches/e671831ca93349c369c4d30377e42db50daecced' of rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 not-for-merge branch 'master' of rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc not-for-merge branch 'patches/6118f2b18790045d75584169043ebfeb80c67dd4' of rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ git rev-parse master
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
```
``` ~alice (stderr)
-$ git checkout patch/e671831 -q
+$ git checkout patch/6118f2b -q
$ git commit --allow-empty -m "Changes #2" -q
$ git push
-✓ Patch e671831 updated to revision ea067aafab58a8454a22a65880b8ed6202679a73
-To compare against your previous revision e671831, run:
+✓ Patch 6118f2b updated to revision 5d11564eeea9256e3847879f60461fe07a6e2fb1
+To compare against your previous revision 6118f2b, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc c2aaf1c4c36a6bacb64d3f15a310280b054a2213
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- * [new branch] patch/e671831 -> patches/e671831ca93349c369c4d30377e42db50daecced
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ * [new branch] patch/6118f2b -> patches/6118f2b18790045d75584169043ebfeb80c67dd4
```
``` ~bob
@@ -51,32 +51,32 @@ $ git push
``` ~alice (stderr)
$ git checkout master -q
$ git pull
-From rad://zHb72m63NBufHR7jmZi732BBT6j6
- + c2aaf1c...8d5f1ba patches/e671831ca93349c369c4d30377e42db50daecced -> rad/patches/e671831ca93349c369c4d30377e42db50daecced (forced update)
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
+ + c2aaf1c...8d5f1ba patches/6118f2b18790045d75584169043ebfeb80c67dd4 -> rad/patches/6118f2b18790045d75584169043ebfeb80c67dd4 (forced update)
$ git checkout - -q
$ git commit --allow-empty -m "Changes #3" -q
$ git push
-✓ Patch e671831 updated to revision 3af84ea059966e65747cf88341c7d5a0fd241a2d
-To compare against your previous revision e671831, run:
+✓ Patch 6118f2b updated to revision 9560846e836bb2ed0b29dfb0dfe33c5d99098855
+To compare against your previous revision 6118f2b, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc d9f8caf6e25a16e82e9a4df9ebe256ce6e727aa4
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- c2aaf1c..d9f8caf patch/e671831 -> patches/e671831ca93349c369c4d30377e42db50daecced
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ c2aaf1c..d9f8caf patch/6118f2b -> patches/6118f2b18790045d75584169043ebfeb80c67dd4
```
``` ~alice
$ cat .git/FETCH_HEAD
-f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 branch 'master' of rad://zHb72m63NBufHR7jmZi732BBT6j6
-8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc not-for-merge branch 'patches/e671831ca93349c369c4d30377e42db50daecced' of rad://zHb72m63NBufHR7jmZi732BBT6j6
+f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 branch 'master' of rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
+8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc not-for-merge branch 'patches/6118f2b18790045d75584169043ebfeb80c67dd4' of rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
```
``` ~bob (stderr)
$ git checkout master -q
$ git pull
-From rad://zHb72m63NBufHR7jmZi732BBT6j6
- + c2aaf1c...8d5f1ba patches/e671831ca93349c369c4d30377e42db50daecced -> rad/patches/e671831ca93349c369c4d30377e42db50daecced (forced update)
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
+ + c2aaf1c...8d5f1ba patches/6118f2b18790045d75584169043ebfeb80c67dd4 -> rad/patches/6118f2b18790045d75584169043ebfeb80c67dd4 (forced update)
```
``` ~bob
diff --git a/crates/radicle-cli/examples/rad-review-by-hunk.md b/crates/radicle-cli/examples/rad-review-by-hunk.md
index 54b5899126..0c20cb6125 100644
--- a/crates/radicle-cli/examples/rad-review-by-hunk.md
+++ b/crates/radicle-cli/examples/rad-review-by-hunk.md
@@ -61,8 +61,8 @@ $ git commit -q -m "Update files"
``` (stderr)
$ git push rad HEAD:refs/patches
-✓ Patch c110350260b1aae1f1833be4d55f3fea28b63d1c opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 3cb70d8de3d4c2285ae27017981a104362639042 opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -70,7 +70,7 @@ Finally, we do a review of the patch by hunk. The output of this command should
match `git diff master -W100% -U5 --patience`:
```
-$ rad patch review --patch -U5 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
+$ rad patch review --patch -U5 3cb70d8de3d4c2285ae27017981a104362639042 --no-announce
╭──────────────────────╮
│ .gitignore ❲deleted❳ │
├──────────────────────┤
@@ -117,8 +117,8 @@ $ rad patch review --patch -U5 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-ann
Now let's accept these hunks one by one..
```
-$ rad patch review --patch --accept --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
-✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
+$ rad patch review --patch --accept --hunk 1 3cb70d8de3d4c2285ae27017981a104362639042 --no-announce
+✓ Loaded existing review ([..]) for patch 3cb70d8de3d4c2285ae27017981a104362639042
╭──────────────────────╮
│ .gitignore ❲deleted❳ │
├──────────────────────┤
@@ -128,8 +128,8 @@ $ rad patch review --patch --accept --hunk 1 c110350260b1aae1f1833be4d55f3fea28b
✓ Updated brain to a5fccf0e977225ff13c3f74c43faf4cb679bf835
```
```
-$ rad patch review --patch --accept --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
-✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
+$ rad patch review --patch --accept --hunk 1 3cb70d8de3d4c2285ae27017981a104362639042 --no-announce
+✓ Loaded existing review ([..]) for patch 3cb70d8de3d4c2285ae27017981a104362639042
╭──────────────────────────────────────────────────────────╮
│ DISCLAIMER.txt ❲created❳ │
├──────────────────────────────────────────────────────────┤
@@ -139,8 +139,8 @@ $ rad patch review --patch --accept --hunk 1 c110350260b1aae1f1833be4d55f3fea28b
✓ Updated brain to 2cdb82ea726e64d3b52847c7699d0d4759198f5c
```
```
-$ rad patch review --patch --accept -U3 --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
-✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
+$ rad patch review --patch --accept -U3 --hunk 1 3cb70d8de3d4c2285ae27017981a104362639042 --no-announce
+✓ Loaded existing review ([..]) for patch 3cb70d8de3d4c2285ae27017981a104362639042
╭─────────────────────────────╮
│ MENU.txt │
├─────────────────────────────┤
@@ -155,8 +155,8 @@ $ rad patch review --patch --accept -U3 --hunk 1 c110350260b1aae1f1833be4d55f3fe
✓ Updated brain to d4aecbb859a802a3215def0b538358bf63593953
```
```
-$ rad patch review --patch --accept -U3 --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
-✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
+$ rad patch review --patch --accept -U3 --hunk 1 3cb70d8de3d4c2285ae27017981a104362639042 --no-announce
+✓ Loaded existing review ([..]) for patch 3cb70d8de3d4c2285ae27017981a104362639042
╭───────────────────────────────────────╮
│ MENU.txt │
├───────────────────────────────────────┤
@@ -172,8 +172,8 @@ $ rad patch review --patch --accept -U3 --hunk 1 c110350260b1aae1f1833be4d55f3fe
```
```
-$ rad patch review --patch --accept --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
-✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
+$ rad patch review --patch --accept --hunk 1 3cb70d8de3d4c2285ae27017981a104362639042 --no-announce
+✓ Loaded existing review ([..]) for patch 3cb70d8de3d4c2285ae27017981a104362639042
╭────────────────────────────────────────────────────╮
│ INSTRUCTIONS.txt -> notes/INSTRUCTIONS.txt ❲moved❳ │
╰────────────────────────────────────────────────────╯
@@ -181,7 +181,7 @@ $ rad patch review --patch --accept --hunk 1 c110350260b1aae1f1833be4d55f3fea28b
```
```
-$ rad patch review --patch --accept --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
-✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
+$ rad patch review --patch --accept --hunk 1 3cb70d8de3d4c2285ae27017981a104362639042 --no-announce
+✓ Loaded existing review ([..]) for patch 3cb70d8de3d4c2285ae27017981a104362639042
✓ All hunks have been reviewed
```
diff --git a/crates/radicle-cli/examples/rad-seed-and-follow.md b/crates/radicle-cli/examples/rad-seed-and-follow.md
index bcff3dbe87..bce4bb8f06 100644
--- a/crates/radicle-cli/examples/rad-seed-and-follow.md
+++ b/crates/radicle-cli/examples/rad-seed-and-follow.md
@@ -21,17 +21,17 @@ $ rad follow
Now let's seed one of Eve's repositories:
```
-$ rad seed rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed --no-fetch
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+$ rad seed rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --scope followed --no-fetch
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
```
We can list the repositories we are seeding by omitting the RID:
```
$ rad seed
-╭─────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├─────────────────────────────────────────────────────────────┤
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 allow followed │
-╰─────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├──────────────────────────────────────────────────────────────┤
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G allow followed │
+╰──────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-seed-many.md b/crates/radicle-cli/examples/rad-seed-many.md
index e478fd559d..d855d79771 100644
--- a/crates/radicle-cli/examples/rad-seed-many.md
+++ b/crates/radicle-cli/examples/rad-seed-many.md
@@ -5,9 +5,7 @@ is used):
```
$ rad seed rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG rad:z3LZFDDTVnYU7GrenyRYzNaviFF5u
✓ Seeding policy updated for rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG with scope 'followed'
-Fetching rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG from the network, found 1 potential seed(s).
-✓ Target met: 1 seed(s)
+✗ Error: no candidate seeds were found to fetch from
✓ Seeding policy updated for rad:z3LZFDDTVnYU7GrenyRYzNaviFF5u with scope 'followed'
-Fetching rad:z3LZFDDTVnYU7GrenyRYzNaviFF5u from the network, found 1 potential seed(s).
-✓ Target met: 1 seed(s)
+✗ Error: no candidate seeds were found to fetch from
```
diff --git a/crates/radicle-cli/examples/rad-seed-scope.md b/crates/radicle-cli/examples/rad-seed-scope.md
index e55a77297e..455c0a66fa 100644
--- a/crates/radicle-cli/examples/rad-seed-scope.md
+++ b/crates/radicle-cli/examples/rad-seed-scope.md
@@ -1,38 +1,38 @@
By default `rad seed` should add a seeding policy with the `followed` scope:
```
-$ rad seed --no-fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+$ rad seed --no-fetch rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'followed'
$ rad seed
-╭─────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├─────────────────────────────────────────────────────────────┤
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 allow followed │
-╰─────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├──────────────────────────────────────────────────────────────┤
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G allow followed │
+╰──────────────────────────────────────────────────────────────╯
```
The policy can be updated by explicitly specifying a different scope:
```
-$ rad seed --no-fetch rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope all
-✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'all'
+$ rad seed --no-fetch rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --scope all
+✓ Seeding policy updated for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'all'
$ rad seed
-╭──────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├──────────────────────────────────────────────────────────┤
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 allow all │
-╰──────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├───────────────────────────────────────────────────────────┤
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G allow all │
+╰───────────────────────────────────────────────────────────╯
```
Running `rad seed` again without an explicit scope parameter should not change the existing policy:
```
-$ rad seed --no-fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Seeding policy exists for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'all'
+$ rad seed --no-fetch rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Seeding policy exists for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G with scope 'all'
$ rad seed
-╭──────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├──────────────────────────────────────────────────────────┤
-│ rad:zHb72m63NBufHR7jmZi732BBT6j6 allow all │
-╰──────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├───────────────────────────────────────────────────────────┤
+│ rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G allow all │
+╰───────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-sync.md b/crates/radicle-cli/examples/rad-sync.md
index cf27e8178c..71da0120d7 100644
--- a/crates/radicle-cli/examples/rad-sync.md
+++ b/crates/radicle-cli/examples/rad-sync.md
@@ -15,9 +15,9 @@ $ rad sync status --sort-by alias
╭───────────────────────────────────────────────────╮
│ Node ID Alias ? SigRefs Timestamp │
├───────────────────────────────────────────────────┤
-│ (you) alice ! a927cc5 now │
-│ z6Mkt67…v4N1tRk bob ✗ cb2d413 now │
-│ z6Mkux1…nVhib7Z eve ✗ cb2d413 now │
+│ (you) alice ! a1cd7ae now │
+│ z6Mkt67…v4N1tRk bob ✗ 65ca22e now │
+│ z6Mkux1…nVhib7Z eve ✗ 65ca22e now │
╰───────────────────────────────────────────────────╯
```
@@ -37,9 +37,9 @@ $ rad sync status --sort-by alias
╭───────────────────────────────────────────────────╮
│ Node ID Alias ? SigRefs Timestamp │
├───────────────────────────────────────────────────┤
-│ (you) alice ✓ a927cc5 now │
-│ z6Mkt67…v4N1tRk bob ✓ a927cc5 now │
-│ z6Mkux1…nVhib7Z eve ✓ a927cc5 now │
+│ (you) alice ✓ a1cd7ae now │
+│ z6Mkt67…v4N1tRk bob ✓ a1cd7ae now │
+│ z6Mkux1…nVhib7Z eve ✓ a1cd7ae now │
╰───────────────────────────────────────────────────╯
```
@@ -55,7 +55,7 @@ We can also use the `--fetch` option to only fetch objects:
```
$ rad sync --fetch
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
@@ -65,7 +65,7 @@ Specifying both `--fetch` and `--announce` is equivalent to specifying none:
```
$ rad sync --fetch --announce
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
@@ -76,7 +76,7 @@ It's also possible to use the `--seed` flag to only sync with a specific node:
```
$ rad sync --fetch --seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 3 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 3 potential seed(s).
✓ Target met: 1 preferred seed(s).
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
```
@@ -90,7 +90,7 @@ $ rad issue open --title "Test `rad sync --replicas`" --description "Check that
```
$ rad sync --replicas 1
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 2 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
✓ Synced with 1 seed(s)
diff --git a/crates/radicle-cli/examples/rad-unseed-many.md b/crates/radicle-cli/examples/rad-unseed-many.md
index 8e86c65c96..0c20df61ab 100644
--- a/crates/radicle-cli/examples/rad-unseed-many.md
+++ b/crates/radicle-cli/examples/rad-unseed-many.md
@@ -8,15 +8,15 @@ $ rad ls
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Name RID Visibility Head Description │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
-│ nixpkgs rad:z2Jsyemt3hkcnszYZ6ijVPE9auNgG public f2de534 Home for Nix Packages │
+│ heartwood rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G public f2de534 Radicle Heartwood Protocol & Stack │
+│ nixpkgs rad:z4TvK2n84TLVirqvccp4JFnfsJ84D public f2de534 Home for Nix Packages │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
We could stop seeding them if we didn't want other nodes to fetch them from us:
```
-$ rad unseed rad:zHb72m63NBufHR7jmZi732BBT6j6 rad:z2Jsyemt3hkcnszYZ6ijVPE9auNgG
-✓ Seeding policy for rad:zHb72m63NBufHR7jmZi732BBT6j6 removed
-✓ Seeding policy for rad:z2Jsyemt3hkcnszYZ6ijVPE9auNgG removed
+$ rad unseed rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G rad:z4TvK2n84TLVirqvccp4JFnfsJ84D
+✓ Seeding policy for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G removed
+✓ Seeding policy for rad:z4TvK2n84TLVirqvccp4JFnfsJ84D removed
```
diff --git a/crates/radicle-cli/examples/rad-unseed.md b/crates/radicle-cli/examples/rad-unseed.md
index 0804a354d7..08ad921c54 100644
--- a/crates/radicle-cli/examples/rad-unseed.md
+++ b/crates/radicle-cli/examples/rad-unseed.md
@@ -2,18 +2,18 @@ Let's say we have a local repository we've initialized:
```
$ rad ls
-╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G public f2de534 Radicle Heartwood Protocol & Stack │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
We could stop seeding it if we didn't want other nodes to fetch it from us:
```
-$ rad unseed rad:zHb72m63NBufHR7jmZi732BBT6j6
-✓ Seeding policy for rad:zHb72m63NBufHR7jmZi732BBT6j6 removed
+$ rad unseed rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G
+✓ Seeding policy for rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G removed
```
Now, if we run `rad ls`, we see it's gone:
@@ -29,11 +29,11 @@ However, with the `--all` flag, we can see it still, but as local-only:
```
$ rad ls --all
-╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 local f2de534 Radicle Heartwood Protocol & Stack │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G local f2de534 Radicle Heartwood Protocol & Stack │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Hence, we also see that it isn't in our inventory and isn't seeded:
diff --git a/crates/radicle-cli/examples/rad-watch.md b/crates/radicle-cli/examples/rad-watch.md
index bae2928477..ac10465a5e 100644
--- a/crates/radicle-cli/examples/rad-watch.md
+++ b/crates/radicle-cli/examples/rad-watch.md
@@ -16,5 +16,5 @@ $ git push rad master
```
``` ~bob
-$ rad watch --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --ref 'refs/heads/master' --target e09c4dc1b54443ceea715ea648afecdcfd1dd7d0 --interval 500
+$ rad watch --repo rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G --node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --ref 'refs/heads/master' --target e09c4dc1b54443ceea715ea648afecdcfd1dd7d0 --interval 500
```
diff --git a/crates/radicle-cli/examples/workflow/3-issues.md b/crates/radicle-cli/examples/workflow/3-issues.md
index 47847b7dcf..a220231a14 100644
--- a/crates/radicle-cli/examples/workflow/3-issues.md
+++ b/crates/radicle-cli/examples/workflow/3-issues.md
@@ -7,7 +7,7 @@ Let's say the new car you are designing with your peers has a problem with its f
$ rad issue open --title "flux capacitor underpowered" --description "Flux capacitor power requirements exceed current supply" --no-announce
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue 36deff84cc23afb5bc3345dfcb2948a4129525c5 │
+│ Issue e7545692903f2edce37b4819d1321d26d3e37f0b │
│ Author bob (you) │
│ Status open │
│ │
@@ -22,7 +22,7 @@ $ rad issue list
╭──────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├──────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 36deff8 flux capacitor underpowered bob (you) now │
+│ ● e754569 flux capacitor underpowered bob (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -31,6 +31,6 @@ found an important detail about the car's power requirements. It will help
whoever works on a fix.
```
-$ rad issue comment 36deff84cc23afb5bc3345dfcb2948a4129525c5 --message 'The flux capacitor needs 1.21 Gigawatts' -q --no-announce
-6a91ecdea4375ded044a8058df5968da82435eff
+$ rad issue comment e7545692903f2edce37b4819d1321d26d3e37f0b --message 'The flux capacitor needs 1.21 Gigawatts' -q --no-announce
+6034d6984974be72678e2a3234e230a546ea12ee
```
diff --git a/crates/radicle-cli/examples/workflow/4-patching-contributor.md b/crates/radicle-cli/examples/workflow/4-patching-contributor.md
index 6dfa4a84d1..0b624876b6 100644
--- a/crates/radicle-cli/examples/workflow/4-patching-contributor.md
+++ b/crates/radicle-cli/examples/workflow/4-patching-contributor.md
@@ -26,8 +26,8 @@ Once the code is ready, we open a patch with our changes.
``` (stderr)
$ git push rad -o no-sync -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 opened
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+✓ Patch 466ea167f4fc46f425967ce02fcee337c0597fcb opened
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new reference] HEAD -> refs/patches
```
@@ -38,12 +38,12 @@ $ rad patch
╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● ca6a7fd Define power requirements bob (you) - 3e674d1 +0 -0 now │
+│ ● 466ea16 Define power requirements bob (you) - 3e674d1 +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
-$ rad patch show ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
+$ rad patch show 466ea167f4fc46f425967ce02fcee337c0597fcb
╭────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 │
+│ Patch 466ea167f4fc46f425967ce02fcee337c0597fcb │
│ Author bob (you) │
│ Head 3e674d1a1df90807e934f9ae5da2591dd6848a33 │
│ Base [..] │
@@ -56,15 +56,15 @@ $ rad patch show ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
├────────────────────────────────────────────────────────┤
│ 3e674d1 Define power requirements │
├────────────────────────────────────────────────────────┤
-│ ● Revision ca6a7fd @ [..]..3e674d1 by bob (you) now │
+│ ● Revision 466ea16 @ [..]..3e674d1 by bob (you) now │
╰────────────────────────────────────────────────────────╯
```
We can also confirm that the patch branch is in storage:
```
-$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk refs/heads/patches/*
-3e674d1a1df90807e934f9ae5da2591dd6848a33 refs/heads/patches/ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
+$ git ls-remote rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk refs/heads/patches/*
+3e674d1a1df90807e934f9ae5da2591dd6848a33 refs/heads/patches/466ea167f4fc46f425967ce02fcee337c0597fcb
```
Wait, let's add a README too! Just for fun.
@@ -79,19 +79,19 @@ $ git commit --message "Add README, just for the fun"
```
``` (stderr) RAD_SOCKET=/dev/null
$ git push -o patch.message="Add README, just for the fun"
-✓ Patch ca6a7fd updated to revision 9cb46b855c03ece36e89fa333acd9f68e047ec92
-To compare against your previous revision ca6a7fd, run:
+✓ Patch 466ea16 updated to revision 56be6ed00cfed892e4e18f79ae69a9e62a4307d2
+To compare against your previous revision 466ea16, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 3e674d1a1df90807e934f9ae5da2591dd6848a33 27857ec9eb04c69cacab516e8bf4b5fd36090f66
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
- 3e674d1..27857ec flux-capacitor-power -> patches/ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+ 3e674d1..27857ec flux-capacitor-power -> patches/466ea167f4fc46f425967ce02fcee337c0597fcb
```
And let's leave a quick comment for our team:
```
-$ rad patch comment ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 --message 'I cannot wait to get back to the 90s!' -q
-3fb162f59de0a45ba31cc3c580b9fc750c981bec
+$ rad patch comment 466ea167f4fc46f425967ce02fcee337c0597fcb --message 'I cannot wait to get back to the 90s!' -q
+ecdbfa5d85bd8b9968431e1768924e916032b93a
✓ Synced with 1 seed(s)
```
diff --git a/crates/radicle-cli/examples/workflow/5-patching-maintainer.md b/crates/radicle-cli/examples/workflow/5-patching-maintainer.md
index 5dd1f20d7f..e4324a137f 100644
--- a/crates/radicle-cli/examples/workflow/5-patching-maintainer.md
+++ b/crates/radicle-cli/examples/workflow/5-patching-maintainer.md
@@ -8,7 +8,7 @@ of this.
```
$ rad remote add z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --name bob --sync --fetch
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote bob added
✓ Remote-tracking branch bob/master created for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
@@ -21,16 +21,16 @@ $ rad inbox --sort-by id
╭────────────────────────────────────────────────────────────────────────────╮
│ heartwood │
├────────────────────────────────────────────────────────────────────────────┤
-│ 001 ● 36deff8 flux capacitor underpowered issue open bob now │
-│ 002 ● ca6a7fd Define power requirements patch open bob now │
+│ 001 ● e754569 flux capacitor underpowered issue open bob now │
+│ 002 ● 466ea16 Define power requirements patch open bob now │
╰────────────────────────────────────────────────────────────────────────────╯
$ git branch -r
- bob/patches/ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
+ bob/patches/466ea167f4fc46f425967ce02fcee337c0597fcb
rad/master
-$ rad patch show ca6a7fd
+$ rad patch show 466ea16
╭──────────────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 │
+│ Patch 466ea167f4fc46f425967ce02fcee337c0597fcb │
│ Author bob z6Mkt67…v4N1tRk │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
│ Base [..] │
@@ -43,8 +43,8 @@ $ rad patch show ca6a7fd
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────────────┤
-│ ● Revision ca6a7fd @ [..]..3e674d1 by bob z6Mkt67…v4N1tRk now │
-│ ↑ Revision 9cb46b8 @ f2de534..27857ec by bob z6Mkt67…v4N1tRk now │
+│ ● Revision 466ea16 @ [..]..3e674d1 by bob z6Mkt67…v4N1tRk now │
+│ ↑ Revision 56be6ed @ f2de534..27857ec by bob z6Mkt67…v4N1tRk now │
╰──────────────────────────────────────────────────────────────────╯
```
@@ -54,35 +54,35 @@ way will tell others about the corrections we needed before merging the
changes.
```
-$ rad patch checkout ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
-✓ Switched to branch patch/ca6a7fd at revision 9cb46b8
-✓ Branch patch/ca6a7fd setup to track rad/patches/ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
+$ rad patch checkout 466ea167f4fc46f425967ce02fcee337c0597fcb
+✓ Switched to branch patch/466ea16 at revision 56be6ed
+✓ Branch patch/466ea16 setup to track rad/patches/466ea167f4fc46f425967ce02fcee337c0597fcb
$ git mv REQUIREMENTS REQUIREMENTS.md
$ git commit -m "Use markdown for requirements"
-[patch/ca6a7fd f567f69] Use markdown for requirements
+[patch/466ea16 f567f69] Use markdown for requirements
1 file changed, 0 insertions(+), 0 deletions(-)
rename REQUIREMENTS => REQUIREMENTS.md (100%)
```
``` (stderr)
$ git push rad -o no-sync -o patch.message="Use markdown for requirements"
-✓ Patch ca6a7fd updated to revision 79bbae479b27cfdf276c6ca26e318af20441db03
-To compare against your previous revision 9cb46b8, run:
+✓ Patch 466ea16 updated to revision 03f1ec0b2942fc67cb2895dc8c54f8864a852a56
+To compare against your previous revision 56be6ed, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 27857ec9eb04c69cacab516e8bf4b5fd36090f66 f567f695d25b4e8fb63b5f5ad2a584529826e908
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- * [new branch] patch/ca6a7fd -> patches/ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ * [new branch] patch/466ea16 -> patches/466ea167f4fc46f425967ce02fcee337c0597fcb
```
Great, all fixed up, lets accept and merge the code.
```
-$ rad patch review ca6a7fd --revision 79bbae4 --accept
-✓ Patch ca6a7fd accepted
+$ rad patch review 466ea16 --revision 03f1ec0 --accept
+✓ Patch 466ea16 accepted
✓ Synced with 1 seed(s)
$ git checkout master
Your branch is up to date with 'rad/master'.
-$ git merge patch/ca6a7fd
+$ git merge patch/466ea16
Updating f2de534..f567f69
Fast-forward
README.md | 0
@@ -93,20 +93,20 @@ Fast-forward
```
``` (stderr)
$ git push rad master
-✓ Patch ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 merged at revision 79bbae4
+✓ Patch 466ea167f4fc46f425967ce02fcee337c0597fcb merged at revision 03f1ec0
✓ Canonical reference refs/heads/master updated to target commit f567f695d25b4e8fb63b5f5ad2a584529826e908
✓ Synced with 1 seed(s)
-To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..f567f69 master -> master
```
The patch is now merged and closed :).
```
-$ rad patch show ca6a7fd
+$ rad patch show 466ea16
╭──────────────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 │
+│ Patch 466ea167f4fc46f425967ce02fcee337c0597fcb │
│ Author bob z6Mkt67…v4N1tRk │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
│ Base [..] │
@@ -119,9 +119,9 @@ $ rad patch show ca6a7fd
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────────────┤
-│ ● Revision ca6a7fd @ [..]..3e674d1 by bob z6Mkt67…v4N1tRk now │
-│ ↑ Revision 9cb46b8 @ f2de534..27857ec by bob z6Mkt67…v4N1tRk now │
-│ ↑ Revision 79bbae4 @ [..]..f567f69 by alice (you) now │
+│ ● Revision 466ea16 @ [..]..3e674d1 by bob z6Mkt67…v4N1tRk now │
+│ ↑ Revision 56be6ed @ f2de534..27857ec by bob z6Mkt67…v4N1tRk now │
+│ ↑ Revision 03f1ec0 @ f2de534..f567f69 by alice (you) now │
│ └─ ✓ accepted by alice (you) now │
│ └─ ✓ merged by alice (you) │
╰──────────────────────────────────────────────────────────────────╯
@@ -137,7 +137,7 @@ Finally, we will close the issue that was opened for this
patch, marking it as solved:
```
-$ rad issue state 36deff8 --solved
-✓ Issue 36deff8 is now solved
+$ rad issue state e754569 --solved
+✓ Issue e754569 is now solved
✓ Synced with 1 seed(s)
```
diff --git a/crates/radicle-cli/examples/workflow/6-pulling-contributor.md b/crates/radicle-cli/examples/workflow/6-pulling-contributor.md
index 7c478f7b99..de4d84eda3 100644
--- a/crates/radicle-cli/examples/workflow/6-pulling-contributor.md
+++ b/crates/radicle-cli/examples/workflow/6-pulling-contributor.md
@@ -10,7 +10,7 @@ f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
Then, we call `rad sync --fetch` to fetch from the maintainer:
```
$ rad sync --fetch
-Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
+Fetching rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -22,9 +22,9 @@ Your branch is up to date with 'rad/master'.
```
``` (stderr) RAD_SOCKET=/dev/null
$ git pull --all --ff
-From rad://zHb72m63NBufHR7jmZi732BBT6j6
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G
f2de534..f567f69 master -> rad/master
-From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+From rad://z4MmvDgm9DoJF6ecPSt55geCbNp4G/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..f567f69 master -> alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master
```
diff --git a/crates/radicle-cli/tests/commands.rs b/crates/radicle-cli/tests/commands.rs
index 73eadd8efb..4861694f53 100644
--- a/crates/radicle-cli/tests/commands.rs
+++ b/crates/radicle-cli/tests/commands.rs
@@ -99,7 +99,7 @@ fn rad_remote() {
let bob = environment.relay("bob");
let eve = environment.relay("eve");
let home = alice.home.clone();
- let rid = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let rid = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
// Set up a test repository.
environment.repository(&alice);
diff --git a/crates/radicle-cli/tests/commands/clone.rs b/crates/radicle-cli/tests/commands/clone.rs
index a84491ee16..f30acc56d5 100644
--- a/crates/radicle-cli/tests/commands/clone.rs
+++ b/crates/radicle-cli/tests/commands/clone.rs
@@ -179,7 +179,7 @@ fn rad_clone_connect() {
let alice = environment.node("alice");
let bob = environment.node("bob");
let mut eve = environment.node("eve");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
let ua = UserAgent::default();
let now = LocalTime::now().into();
diff --git a/crates/radicle-cli/tests/commands/git.rs b/crates/radicle-cli/tests/commands/git.rs
index e2b6fcbada..d664ee40ef 100644
--- a/crates/radicle-cli/tests/commands/git.rs
+++ b/crates/radicle-cli/tests/commands/git.rs
@@ -10,7 +10,7 @@ fn git_push_diverge() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -53,7 +53,7 @@ fn git_push_converge() {
let alice = environment.node("alice");
let bob = environment.node("bob");
let eve = environment.node("eve");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -113,7 +113,7 @@ fn git_push_amend() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -158,7 +158,7 @@ fn git_push_rollback() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -265,7 +265,7 @@ fn git_push_canonical_lightweight_tags() {
let alice = environment.node("alice");
let bob = environment.node("bob");
- let rid = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let rid = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
fixtures::repository(environment.work(&alice));
@@ -311,7 +311,7 @@ fn git_push_canonical() {
let alice = environment.node("alice");
let bob = environment.node("bob");
- let rid = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let rid = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
fixtures::repository(environment.work(&alice));
diff --git a/crates/radicle-cli/tests/commands/id.rs b/crates/radicle-cli/tests/commands/id.rs
index 2bdc050057..e79fdbac03 100644
--- a/crates/radicle-cli/tests/commands/id.rs
+++ b/crates/radicle-cli/tests/commands/id.rs
@@ -15,7 +15,7 @@ fn rad_id() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -61,7 +61,7 @@ fn rad_id_threshold() {
let alice = environment.node("alice");
let bob = environment.node("bob");
let seed = environment.node("seed");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -117,7 +117,7 @@ fn rad_id_threshold_soft_fork() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -173,7 +173,7 @@ fn rad_id_multi_delegate() {
let alice = environment.node("alice");
let bob = environment.node("bob");
let eve = environment.node("eve");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -227,7 +227,7 @@ fn rad_id_unauthorized_delegate() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -281,7 +281,7 @@ fn rad_id_collaboration() {
let eve = environment.node("eve");
let seed = environment.seed("seed");
let distrustful = environment.seed("distrustful");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -382,7 +382,7 @@ fn rad_id_conflict() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
diff --git a/crates/radicle-cli/tests/commands/patch.rs b/crates/radicle-cli/tests/commands/patch.rs
index 873968db69..76e7d3d40c 100644
--- a/crates/radicle-cli/tests/commands/patch.rs
+++ b/crates/radicle-cli/tests/commands/patch.rs
@@ -46,7 +46,7 @@ fn rad_patch_checkout_force() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -156,7 +156,7 @@ fn rad_patch_delete() {
let alice = environment.relay("alice");
let bob = environment.relay("bob");
let seed = environment.relay("seed");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -211,7 +211,7 @@ fn rad_push_and_pull_patches() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
@@ -452,7 +452,7 @@ fn rad_patch_merge_unauthorized_branch() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
environment.repository(&alice);
diff --git a/crates/radicle-cli/tests/commands/remote.rs b/crates/radicle-cli/tests/commands/remote.rs
index ff99cef41f..0805f29dbc 100644
--- a/crates/radicle-cli/tests/commands/remote.rs
+++ b/crates/radicle-cli/tests/commands/remote.rs
@@ -13,7 +13,7 @@ fn rad_remote() {
let bob = environment.relay("bob");
let eve = environment.relay("eve");
let home = alice.home.clone();
- let rid = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let rid = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
// Set up a test repository.
environment.repository(&alice);
diff --git a/crates/radicle-cli/tests/commands/sync.rs b/crates/radicle-cli/tests/commands/sync.rs
index 77a136f919..5dddaca7d8 100644
--- a/crates/radicle-cli/tests/commands/sync.rs
+++ b/crates/radicle-cli/tests/commands/sync.rs
@@ -68,7 +68,7 @@ fn rad_sync() {
let alice = environment.seed("alice");
let bob = environment.seed("bob");
let eve = environment.seed("eve");
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
radicle::test::fixtures::repository(working.join("acme"));
@@ -117,7 +117,7 @@ fn test_replication_via_seed() {
seeding_policy: DefaultSeedingPolicy::permissive(),
..crate::util::environment::config::relay("seed")
});
- let rid = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let rid = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
let mut alice = alice.spawn();
let mut bob = bob.spawn();
diff --git a/crates/radicle-cli/tests/commands/utility.rs b/crates/radicle-cli/tests/commands/utility.rs
index 70beacab63..37aa275e6b 100644
--- a/crates/radicle-cli/tests/commands/utility.rs
+++ b/crates/radicle-cli/tests/commands/utility.rs
@@ -75,7 +75,7 @@ fn rad_clean() {
let working = environment.tempdir().join("working");
// Set up a test project.
- let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
+ let acme = RepoId::from_str("z4MmvDgm9DoJF6ecPSt55geCbNp4G").unwrap();
radicle::test::fixtures::repository(working.join("acme"));
test(
"examples/rad-init.md",
commit ad89ac90f32ab22162e03da82298a3120e4d6bd3
Author: Yorgos Saslis <yorgos.work@proton.me>
Date: Thu Jul 30 16:50:31 2026 +0000
radicle: Introduce identity document version 2 with enforced quorum
Version 1 defined the default branch and its write-quorum outside the
canonical references; version 2 moves both into the `xyz.radicle.crefs`
payload, and for that to be safe every verified document must carry a
resolvable canonical head with a sound quorum. Left unchecked, a
malformed or under-threshold crefs payload could be adopted by delegate
majority and leave the repository with no resolvable canonical head, and
therefore unloadable.
Bump `IDENTITY_VERSION` to 2 (version 1 `defaultBranch` documents are
rejected up front) and enforce the canonical-refs quorum on every
verification path: `RawDoc::verified` validates the crefs payload via
`Doc::default_branch`, `verify_delegates` resolves the most specific
validated rule and counts votes over that rule's `allowed` set using its
own threshold, and the special-refs fetch derives its anchor quorum the
same way. Every quorum resolution fails closed rather than assuming a
single vote.
Signed-off-by: Yorgos Saslis <yorgos.work@proton.me>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f9141a812..347d9b35c4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## Repository Identity: Canonical Default Branch and Document Version 2
+
+The default branch and the quorum required to write it are now governed by the
+canonical-reference rule in the `xyz.radicle.crefs` payload whose pattern
+matches the `HEAD` symbolic reference. The `defaultBranch` field of the
+`xyz.radicle.project` payload and the top-level `threshold` have been removed,
+and the default branch is no longer synthesized from `defaultBranch`. This
+allows non-delegates to hold canonical write access to a branch while delegates
+continue to govern identity updates.
+
+Because this changes the identity document format, the document version is now
+`2`. Version 1 documents (the `defaultBranch` format) are no longer supported:
+they are rejected during verification with an error that describes the version 2
+schema. Newly created documents record `"version": 2` explicitly.
+
## Repository Identity Evaluation
The limitations of evaluating repository identities were found on multiple
diff --git a/crates/radicle-fetch/src/state.rs b/crates/radicle-fetch/src/state.rs
index b5f0caac45..d39d4f9fd4 100644
--- a/crates/radicle-fetch/src/state.rs
+++ b/crates/radicle-fetch/src/state.rs
@@ -4,7 +4,7 @@ use std::time::Instant;
use gix_protocol::Handshake;
use radicle::crypto::PublicKey;
use radicle::git::{Oid, fmt::Qualified};
-use radicle::identity::{Did, Doc, DocError};
+use radicle::identity::{Doc, DocError, doc::DefaultBranchError};
use radicle::storage;
use radicle::storage::git::Repository;
@@ -62,6 +62,10 @@ pub mod error {
},
#[error("canonical 'refs/rad/id' is missing")]
MissingRadId,
+ #[error("failed to resolve default branch quorum from 'refs/rad/id': {0}")]
+ DefaultBranch(#[from] radicle::identity::doc::DefaultBranchError),
+ #[error("canonical 'refs/rad/id' has no rule matching its default branch")]
+ MissingBranchRule,
#[error(transparent)]
RefdbUpdate(#[from] repository::error::Update),
#[error(transparent)]
@@ -395,34 +399,47 @@ impl FetchState {
.canonical()?
.ok_or(error::Protocol::MissingRadId)?;
- let is_delegate = anchor.is_delegate(&Did::from(handle.local()));
- // TODO: not sure we should allow to block *any* peer from the
- // delegate set. We could end up ignoring delegates.
- let delegates = anchor
- .delegates()
+ // The canonical default branch — and the quorum required to establish
+ // it — is defined by the crefs rule that matches it. Fail closed: if the
+ // anchor's canonical references or default branch cannot be resolved, or
+ // no rule matches, abort the fetch rather than silently proceeding with
+ // a quorum of 1 (which would let a single delegate — or a seed serving a
+ // malformed 'refs/rad/id' — downgrade the required quorum).
+ let crefs = anchor.canonical_refs().map_err(DefaultBranchError::from)?;
+ let branch = anchor.default_branch()?;
+ let (_, branch_rule) = crefs
+ .rules()
+ .matches(&branch)
+ .next()
+ .ok_or(error::Protocol::MissingBranchRule)?;
+ let branch_threshold = usize::from(*branch_rule.threshold());
+
+ // The peers who vote on the canonical branch are the matched rule's
+ // `allowed` set — not the identity delegates — so that the threshold and
+ // the counted population come from the same rule. For the common
+ // `allow: delegates` rule this set is exactly the identity delegates; for
+ // an explicit `allow` set it may include non-delegates.
+ // TODO: not sure we should allow to block *any* peer from the voter set.
+ // We could end up ignoring voters.
+ let voters = branch_rule
+ .allowed()
.iter()
.filter(|id| !handle.is_blocked(id))
.map(|did| PublicKey::from(*did))
.collect::<BTreeSet<_>>();
- log::trace!("Identity delegates {delegates:?}");
-
- // The quorum required for the canonical branch is defined by the
- // canonical reference rule that matches it. The local peer does not
- // need to count towards the quorum since they must be valid already.
- let branch_threshold = anchor
- .canonical_refs()
- .ok()
- .zip(anchor.default_branch().ok())
- .and_then(|(crefs, branch)| {
- crefs
- .rules()
- .matches(&branch)
- .next()
- .map(|(_, rule)| usize::from(*rule.threshold()))
- })
- .unwrap_or(1);
- let threshold = if is_delegate {
+ log::trace!("Canonical branch voters {voters:?}");
+
+ // The local peer does not need to count towards the quorum since they
+ // must be valid already. Membership is checked against the rule's full
+ // `allowed` set, not the `voters` set above: `voters` has the local peer
+ // (which is always "blocked" from itself) and any blocked peers filtered
+ // out, so it must not be used to decide whether the local peer votes.
+ let is_voter = branch_rule
+ .allowed()
+ .iter()
+ .any(|did| PublicKey::from(*did) == *handle.local());
+ let threshold = if is_voter {
branch_threshold.saturating_sub(1)
} else {
branch_threshold
@@ -430,7 +447,7 @@ impl FetchState {
let signed_refs = self.run_special_refs(
handle,
handshake,
- delegates.clone(),
+ voters.clone(),
threshold,
&config.limit,
remote,
@@ -472,16 +489,16 @@ impl FetchState {
// non-pruned, fetched remotes here.
let mut remotes = BTreeSet::new();
- // The valid delegates start with all delegates that this peer
- // currently has valid references for
- let mut valid_delegates = handle
+ // The valid voters start with all branch voters that this peer
+ // currently has valid references for.
+ let mut valid_voters = handle
.repository()
.remote_ids()
.map_err(error::Protocol::RemoteIds)?
.filter_map(|id| id.ok())
- .filter(|id| delegates.contains(id))
+ .filter(|id| voters.contains(id))
.collect::<BTreeSet<_>>();
- let mut failed_delegates = BTreeSet::new();
+ let mut failed_voters = BTreeSet::new();
// TODO(finto): this might read better if it got its own
// private function.
@@ -491,7 +508,7 @@ impl FetchState {
continue;
}
- match (refs, delegates.contains(&remote)) {
+ match (refs, voters.contains(&remote)) {
(Ok(None), false) => {
log::debug!("Pruning non-delegate {remote} tips, missing 'rad/sigrefs'");
failures.push(sigrefs::Validation::MissingRadSigRefs(remote));
@@ -506,14 +523,14 @@ impl FetchState {
// previous `rad/sigrefs` but if this occurs with
// enough delegates also failing validation we
// would rather surface the issue and fail the fetch.
- valid_delegates.remove(&remote);
- failed_delegates.insert(remote);
+ valid_voters.remove(&remote);
+ failed_voters.insert(remote);
}
(Err(err), _) => {
log::debug!("Pruning {remote} tips due to: {err}");
self.prune(&remote);
- valid_delegates.remove(&remote);
- failed_delegates.insert(remote);
+ valid_voters.remove(&remote);
+ failed_voters.insert(remote);
failures.push(sigrefs::Validation::Read {
remote,
source: err,
@@ -533,8 +550,8 @@ impl FetchState {
});
if delegate {
- valid_delegates.remove(&remote);
- failed_delegates.insert(remote);
+ valid_voters.remove(&remote);
+ failed_voters.insert(remote);
}
self.prune(&remote);
@@ -641,11 +658,11 @@ impl FetchState {
if !fails.is_empty() {
log::debug!("Pruning delegate {remote} tips, due to validation failures");
self.prune(&remote);
- valid_delegates.remove(&remote);
- failed_delegates.insert(remote);
+ valid_voters.remove(&remote);
+ failed_voters.insert(remote);
failures.append(&mut fails)
} else {
- valid_delegates.insert(remote);
+ valid_voters.insert(remote);
remotes.insert(remote);
}
@@ -666,7 +683,7 @@ impl FetchState {
// N.b. only apply to Git repository if there are enough valid
// delegates that pass the threshold.
- if valid_delegates.len() >= threshold {
+ if valid_voters.len() >= threshold {
let applied = repository::update(
handle.repository(),
self.tips
@@ -688,7 +705,7 @@ impl FetchState {
);
Ok(FetchResult::Failed {
threshold,
- delegates: failed_delegates,
+ delegates: failed_voters,
validations: failures,
})
}
diff --git a/crates/radicle/src/cob/identity.rs b/crates/radicle/src/cob/identity.rs
index 614d60b0f7..0f41ccc6e7 100644
--- a/crates/radicle/src/cob/identity.rs
+++ b/crates/radicle/src/cob/identity.rs
@@ -2245,13 +2245,16 @@ mod test {
alice.repo.fetch(bob);
alice_identity.reload().unwrap();
- // Nb. `a2` reaches quorum (Bob's acceptance) concurrently with Alice's
- // redaction. The winner of this concurrent resolution depends on the
- // operations' OIDs, which changed when the default branch and threshold
- // moved into the `xyz.radicle.crefs` payload. Here acceptance wins,
- // which still exercises terminal-state protection: redacting an already
- // accepted revision below is a no-op.
- assert_eq!(alice_identity.revision(&a2).unwrap().state, State::Accepted);
+ // Nb. `a2` is redacted by Alice concurrently with Bob's acceptance. The
+ // winner of this concurrent resolution depends on the operations' OIDs,
+ // which shift whenever the document format changes; under identity
+ // version 2 the redaction wins (as the diagram below shows). The
+ // terminal-state protection this test targets is exercised by `a3` and
+ // `a4` further down.
+ assert_eq!(
+ alice_identity.revision(&a2).unwrap().state,
+ State::Redacted(RedactedBy::Author)
+ );
let mut alice_doc3 = alice_identity.doc().clone().edit();
alice_doc3.visibility = Visibility::private([alice.signer.public_key().into()]);
diff --git a/crates/radicle/src/cob/patch.rs b/crates/radicle/src/cob/patch.rs
index 2823374c37..2ce465b44e 100644
--- a/crates/radicle/src/cob/patch.rs
+++ b/crates/radicle/src/cob/patch.rs
@@ -3216,17 +3216,16 @@ mod test {
identity::Visibility::Public,
);
- let rules = serde_json::json!({
- "refs/heads/accepted": {
- "allow": "delegates",
- "threshold": 1
- },
- "refs/tags/v1.0": {
- "allow": "delegates",
- "threshold": 1
+ // Keep a valid default branch (`master`) while adding the custom rules
+ // this test exercises, so the document verifies.
+ let crefs = serde_json::json!({
+ "symbolic": { "HEAD": "refs/heads/master" },
+ "rules": {
+ "refs/heads/master": { "allow": "delegates", "threshold": 1 },
+ "refs/heads/accepted": { "allow": "delegates", "threshold": 1 },
+ "refs/tags/v1.0": { "allow": "delegates", "threshold": 1 }
}
});
- let crefs = serde_json::json!({ "rules": rules });
raw_doc.payload.insert(
identity::doc::PayloadId::canonical_refs(),
identity::doc::Payload::from(crefs),
@@ -3301,14 +3300,14 @@ mod test {
identity::Visibility::Public,
);
- let rules = serde_json::json!({
- "refs/heads/accepted": {
- "allow": [alice.did()],
- "threshold": 1
- }
- });
+ // Keep a valid default branch (`master`) while adding the custom rule
+ // (governed by a non-delegate `allow` set) this test exercises.
let crefs = serde_json::json!({
- "rules": rules
+ "symbolic": { "HEAD": "refs/heads/master" },
+ "rules": {
+ "refs/heads/master": { "allow": "delegates", "threshold": 1 },
+ "refs/heads/accepted": { "allow": [alice.did()], "threshold": 1 }
+ }
});
raw_doc.payload.insert(
identity::doc::PayloadId::canonical_refs(),
@@ -3361,14 +3360,14 @@ mod test {
identity::Visibility::Public,
);
- let rules = serde_json::json!({
- "refs/heads/accepted": {
- "allow": [alice.did()],
- "threshold": 1
- }
- });
+ // Keep a valid default branch (`master`) while adding the custom rule
+ // (governed by a non-delegate `allow` set) this test exercises.
let crefs = serde_json::json!({
- "rules": rules
+ "symbolic": { "HEAD": "refs/heads/master" },
+ "rules": {
+ "refs/heads/master": { "allow": "delegates", "threshold": 1 },
+ "refs/heads/accepted": { "allow": [alice.did()], "threshold": 1 }
+ }
});
raw_doc.payload.insert(
identity::doc::PayloadId::canonical_refs(),
diff --git a/crates/radicle/src/identity/doc.rs b/crates/radicle/src/identity/doc.rs
index 90a8b8aed8..2d83c59452 100644
--- a/crates/radicle/src/identity/doc.rs
+++ b/crates/radicle/src/identity/doc.rs
@@ -42,8 +42,38 @@ pub const MAX_STRING_LENGTH: usize = 255;
/// Maximum number of a delegates in the identity document.
pub const MAX_DELEGATES: usize = 255;
/// The current, most recent version of the identity document.
+///
+/// Version 2 replaced the top-level `threshold` and the project's
+/// `defaultBranch` with the `xyz.radicle.crefs` payload (see [`canonical`]),
+/// which now governs the default branch and its write quorum. Version 1
+/// documents (the `defaultBranch` format) are no longer supported and must be
+/// re-expressed as version 2; see [`DocError::UnsupportedVersion`].
+///
+/// [`canonical`]: crate::git::canonical
// SAFETY: identity version should never be 0, so we can use `unsafe` here
-pub const IDENTITY_VERSION: Version = Version(NonZeroU32::new(1).unwrap());
+pub const IDENTITY_VERSION: Version = Version(NonZeroU32::new(2).unwrap());
+
+/// Describes the shape of a version-2 identity document, shown when an
+/// unsupported (older) document is encountered.
+const V2_DOCUMENT_SCHEMA: &str = r#"a version 2 identity document is shaped like:
+
+{
+ "version": 2,
+ "payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/<branch>": { "allow": "delegates", "threshold": <n> }
+ },
+ "symbolic": { "HEAD": "refs/heads/<branch>" }
+ },
+ "xyz.radicle.project": { "name": "<name>", "description": "<description>" }
+ },
+ "delegates": ["did:key:..."]
+}
+
+The `defaultBranch` field and the top-level `threshold` are removed; the default
+branch and its write quorum are defined by the `xyz.radicle.crefs` rule whose
+pattern matches the `HEAD` symbolic reference."#;
#[derive(Error, Debug)]
pub enum DocError {
@@ -55,8 +85,17 @@ pub enum DocError {
Threshold(#[from] ThresholdError),
#[error("git: {0}")]
Git(#[from] git::raw::Error),
+ /// The document is an older version that this build no longer supports. The
+ /// only supported version is [`IDENTITY_VERSION`]; older documents must be
+ /// re-expressed in the current format (see the message for the schema).
+ #[error(
+ "unsupported identity document version {0}, this build requires version {IDENTITY_VERSION}\n\n{V2_DOCUMENT_SCHEMA}"
+ )]
+ UnsupportedVersion(Version),
#[error("missing identity document")]
Missing,
+ #[error("invalid default branch: {0}")]
+ DefaultBranch(#[from] DefaultBranchError),
}
#[derive(Debug, Error)]
@@ -498,6 +537,9 @@ impl RawDoc {
/// - [`RawDoc::delegates`]: any duplicates are removed, and for the
/// remaining set ensure that it is non-empty and does not exceed a
/// length of [`MAX_DELEGATES`].
+ /// - The `xyz.radicle.crefs` payload must be present, valid, and define a
+ /// resolvable default branch whose rule has a well-formed write quorum
+ /// (`1 <= threshold <= |allowed|`).
pub fn verified(self) -> Result<Doc, DocError> {
let RawDoc {
version,
@@ -505,13 +547,29 @@ impl RawDoc {
delegates,
visibility,
} = self;
+ // Only the current document version is understood. Older documents (the
+ // `defaultBranch` format) are rejected here rather than being silently
+ // upgraded; the error carries the version-2 schema so the holder can
+ // re-express the document.
+ if version != IDENTITY_VERSION {
+ return Err(DocError::UnsupportedVersion(version));
+ }
let delegates = Delegates::new(delegates)?;
- Ok(Doc {
+ let doc = Doc {
version,
payload,
delegates,
visibility,
- })
+ };
+ // The default branch and its write quorum are governed by the
+ // `xyz.radicle.crefs` payload. Validate it here so that *every* verified
+ // `Doc` — including those adopted over the network via [`Doc::from_blob`]
+ // and those obtained by deserializing — carries an enforceable quorum,
+ // rather than deferring the check to the CLI-only `update::verify`. This
+ // rejects a document whose crefs payload is absent, malformed, has a
+ // threshold outside `[1, |allowed|]`, or whose `HEAD` does not resolve.
+ doc.default_branch()?;
+ Ok(doc)
}
}
@@ -1080,6 +1138,40 @@ mod test {
assert_matches!(doc.verified(), Err(DocError::Delegates(DelegatesError(_))));
}
+ // The write-quorum invariant (`1 <= threshold <= |allowed|`) is enforced by
+ // `verified()` itself, so it holds for every `Doc` — including revisions
+ // adopted over the network via `Doc::from_blob` — not only for documents
+ // that pass the CLI's `update::verify`.
+ #[test]
+ fn test_verified_rejects_threshold_exceeding_delegates() {
+ // A single-delegate document whose default-branch rule demands a
+ // threshold of 2 makes the branch immutable and must be rejected.
+ let did = r#gen::<Did>(1);
+ let doc = RawDoc::new(
+ r#gen::<Project>(1),
+ vec![did],
+ &git::fmt::refname!("master"),
+ 2,
+ Visibility::Public,
+ );
+ assert_matches!(doc.verified(), Err(DocError::DefaultBranch(_)));
+ }
+
+ #[test]
+ fn test_verified_rejects_missing_crefs() {
+ // Without the `xyz.radicle.crefs` payload there is no default branch or
+ // write quorum, so the document must not verify.
+ let mut doc = RawDoc::new(
+ r#gen::<Project>(1),
+ vec![r#gen::<Did>(1)],
+ &git::fmt::refname!("master"),
+ 1,
+ Visibility::Public,
+ );
+ doc.payload.remove(&PayloadId::canonical_refs());
+ assert_matches!(doc.verified(), Err(DocError::DefaultBranch(_)));
+ }
+
#[test]
fn test_is_valid_version() {
// 0 is not a valid version
@@ -1153,29 +1245,35 @@ mod test {
.parse::<Did>()
.unwrap(),
];
- // And this is the expected outcome of the deserialization
+ // And this is the expected outcome of the deserialization: a document
+ // without a `version` field is the original (version 1) format.
assert_eq!(
doc,
RawDoc {
- version: IDENTITY_VERSION,
+ version: Version::new(1).unwrap(),
payload: payload.clone(),
delegates: delegates.clone(),
visibility: Visibility::Public,
}
);
- // Deserializing into `Doc` should also succeed.
- let verified = serde_json::from_str::<Doc>(&v1.to_string()).unwrap();
- let delegates = Delegates(NonEmpty::from_vec(delegates).unwrap());
- assert_eq!(
- verified,
- Doc {
- version: IDENTITY_VERSION,
- payload: payload.clone(),
- delegates,
- visibility: Visibility::Public,
- }
+ // Verifying a version 1 document must now fail: the `defaultBranch`
+ // format is no longer supported.
+ assert_matches!(
+ doc.clone().verified(),
+ Err(DocError::UnsupportedVersion(v)) if v == Version::new(1).unwrap()
);
+ // Deserializing directly into `Doc` fails the same way.
+ assert!(serde_json::from_str::<Doc>(&v1.to_string()).is_err());
+
+ // Re-stamping the document with the current version passes the version
+ // gate, but a bare bump is not enough: the old-format payload still
+ // carries `defaultBranch` and no `xyz.radicle.crefs` payload, so full
+ // verification now fails on the (absent) default branch. A real upgrade
+ // must also express the canonical references.
+ let mut current = doc;
+ current.version = IDENTITY_VERSION;
+ assert_matches!(current.verified(), Err(DocError::DefaultBranch(_)));
}
#[test]
@@ -1204,9 +1302,9 @@ mod test {
);
assert_eq!(
(*id).to_string(),
- "14875c28ade7241b3bda8c59be34f8f9f289196d"
+ "f10bd9e36848dc4eb70cc078d1d0bbaac7c1ba61"
);
- assert_eq!(id.urn(), String::from("rad:zHb72m63NBufHR7jmZi732BBT6j6"));
+ assert_eq!(id.urn(), String::from("rad:z4MmvDgm9DoJF6ecPSt55geCbNp4G"));
}
#[test]
@@ -1284,6 +1382,7 @@ mod test {
fn default_branch_without_project() {
let value = serde_json::json!(
{
+ "version": 2,
"payload": {
"xyz.radicle.crefs": {
"symbolic": {
@@ -1299,8 +1398,7 @@ mod test {
},
"delegates": [
"did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM"
- ],
- "threshold": 1
+ ]
}
);
commit 661cec1b7719b283abbc8b042fba0fcfbfe174d8
Author: Yorgos Saslis <yorgos.work@proton.me>
Date: Thu Jul 30 16:50:30 2026 +0000
squash! radicle: Govern default branch via canonical refs
== cli: Regenerate identity doc examples for crefs
Review: The CLI example snapshots and command fixtures still described the old
`defaultBranch`/`threshold` identity format.
Regenerate them for the canonical-references model: repository and derived
collaborative-object ids change with the new identity root, dumps now
carry the `xyz.radicle.crefs` payload, whole-rule-set edits spell out the
`refs/heads/master` rule explicitly, and the mandatory-field example
targets `name` now that `defaultBranch` is gone.
diff --git a/crates/radicle-cli/examples/git/git-fetch.md b/crates/radicle-cli/examples/git/git-fetch.md
index 652254b7fb..8a9aca0b28 100644
--- a/crates/radicle-cli/examples/git/git-fetch.md
+++ b/crates/radicle-cli/examples/git/git-fetch.md
@@ -13,7 +13,7 @@ f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
``` (stderr)
$ git fetch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] alice/1 -> alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/alice/1
```
diff --git a/crates/radicle-cli/examples/git/git-push-amend.md b/crates/radicle-cli/examples/git/git-push-amend.md
index 4fe8d313ff..5e62101daa 100644
--- a/crates/radicle-cli/examples/git/git-push-amend.md
+++ b/crates/radicle-cli/examples/git/git-push-amend.md
@@ -1,11 +1,11 @@
``` ~alice
-$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji -q
-c036c0d89ce26aef3ad7da402157dba16b5163b4
+$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 -q
+f2d51155f34a41adffb26dae04a5ce0feb5bcd95
```
``` ~bob
$ rad sync --fetch
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -23,6 +23,6 @@ $ git commit --amend -m "Neue Änderungen" --allow-empty -q
$ git push rad master -f
✓ Canonical reference refs/heads/master updated to target commit 9170c8795d3a78f0381a0ffafb20ea69fb0f5b6b
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ fb25886...9170c87 master -> master (forced update)
```
diff --git a/crates/radicle-cli/examples/git/git-push-canonical-annotated-tags.md b/crates/radicle-cli/examples/git/git-push-canonical-annotated-tags.md
index 7bfefcc481..766f10669a 100644
--- a/crates/radicle-cli/examples/git/git-push-canonical-annotated-tags.md
+++ b/crates/radicle-cli/examples/git/git-push-canonical-annotated-tags.md
@@ -46,13 +46,13 @@ case, we will have two rules: one for `refs/tags/*` and one for `refs/tags/qa/*`
(see RIP-0004 for more information on the rules).
``` ~alice
-$ rad id update --title "Add canonical reference rules" --payload xyz.radicle.crefs rules '{ "refs/tags/*": { "threshold": 1, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" }}'
+$ rad id update --title "Add canonical reference rules" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/tags/*": { "threshold": 1, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" }}'
✓ Identity revision [..] created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add canonical reference rules │
-│ Revision c3349f07bfe6a82bbeb2989d2de4a918408f9831 │
-│ Parent 0656c217f917c3e06234771e9ecae53aba5e173e │
-│ Blob 85fa09e2de93b825d5231778dbb34143004a4bca │
+│ Revision 9ca9e8efdf129b169029274c08412683f8ea897a │
+│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
+│ Blob 907000901ea67d8b4653252a5aa52a916ee433e6 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -60,11 +60,15 @@ $ rad id update --title "Add canonical reference rules" --payload xyz.radicle.cr
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,13 +1,25 @@
+@@ -1,22 +1,30 @@
{
"payload": {
-+ "xyz.radicle.crefs": {
-+ "rules": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
++ },
+ "refs/tags/*": {
+ "allow": "delegates",
+ "threshold": 1
@@ -72,19 +76,20 @@ $ rad id update --title "Add canonical reference rules" --payload xyz.radicle.cr
+ "refs/tags/qa/*": {
+ "allow": "delegates",
+ "threshold": 1
-+ }
-+ }
-+ },
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
},
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
- ],
- "threshold": 1
+ ]
}
```
@@ -100,7 +105,7 @@ tag
$ git push rad --tags
✓ Canonical reference refs/tags/v1.0-hotfix updated to target tag ac51a0746a5e8311829bc481202909a1e3acc0c2
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v1.0-hotfix -> v1.0-hotfix
```
@@ -116,7 +121,7 @@ On the other side, Bob performs a fetch and now has the tags locally:
``` ~bob (stderr)
$ cd heartwood
$ git fetch rad
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+From rad://zHb72m63NBufHR7jmZi732BBT6j6
* [new tag] v1.0-hotfix -> rad/tags/v1.0-hotfix
* [new tag] v1.0-hotfix -> v1.0-hotfix
```
@@ -136,7 +141,7 @@ the `threshold` to `2` for the `refs/tags/*` rule:
``` ~bob
$ rad remote add z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --name alice
✓ Follow policy updated for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -146,14 +151,14 @@ $ git push rad master
``` ~alice
$ rad remote add z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --name bob
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote bob added
✓ Remote-tracking branch bob/master created for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
-27ab0d77a95581c59ca9d30e679ceb06a9f758db
-$ rad id update --title "Update canonical reference rules" --payload xyz.radicle.crefs rules '{ "refs/tags/*": { "threshold": 2, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" } }' -q
-dace164ba43fa51802697ec28d0b1965a9d7808b
+d7a98a971a2f89a31f393caa8426627645ea60ab
+$ rad id update --title "Update canonical reference rules" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/tags/*": { "threshold": 2, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" } }' -q
+e4aed637bb91432ac851e4b1e923ae03c7133285
```
**Note:** here we have to specify all the rules again to update the `threshold`.
@@ -162,10 +167,10 @@ editor instead.
``` ~bob
$ rad sync -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-$ rad id accept dace164ba43fa51802697ec28d0b1965a9d7808b -q
+$ rad id accept e4aed637bb91432ac851e4b1e923ae03c7133285 -q
```
When Bob creates a new tag and pushes it, we see that there's a warning that
@@ -184,7 +189,7 @@ $ git push rad --tags
warn: could not determine target for canonical reference 'refs/tags/v2.0', no object with at least 2 vote(s) found (threshold not met)
warn: it is recommended to find an object (either commit or tag) to agree upon
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] v1.0-hotfix -> v1.0-hotfix
* [new tag] v2.0 -> v2.0
```
@@ -194,7 +199,7 @@ it:
``` ~alice (stderr)
$ git fetch bob
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] v1.0-hotfix -> bob/tags/v1.0-hotfix
* [new tag] v2.0 -> bob/tags/v2.0
```
@@ -210,7 +215,7 @@ $ git tag v2.0 bob/tags/v2.0
$ git push rad --tags
✓ Canonical reference refs/tags/v2.0 updated to target tag 89f935f27a16f8ed97915ade4accab8fe48057aa
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v2.0 -> v2.0
```
@@ -227,6 +232,6 @@ $ git tag qa/v2.1
$ git push rad --tags
✓ Canonical reference refs/tags/qa/v2.1 updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] qa/v2.1 -> qa/v2.1
```
diff --git a/crates/radicle-cli/examples/git/git-push-canonical-branch.md b/crates/radicle-cli/examples/git/git-push-canonical-branch.md
index 97e858f18e..2e732ce425 100644
--- a/crates/radicle-cli/examples/git/git-push-canonical-branch.md
+++ b/crates/radicle-cli/examples/git/git-push-canonical-branch.md
@@ -1,11 +1,11 @@
``` ~alice
-$ rad id update --title "Add canonical branch for releases" --payload xyz.radicle.crefs rules '{ "refs/heads/releases/*": { "threshold": 1, "allow": [ "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk" ] }, "refs/tags/*": { "threshold": 1, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" }}'
-✓ Identity revision [..] created
+$ rad id update --title "Add canonical branch for releases" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/heads/releases/*": { "threshold": 1, "allow": [ "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk" ] }, "refs/tags/*": { "threshold": 1, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" }}'
+✓ Identity revision a66935d5bd3a1924400a13e290793f0ae9f17b8f created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add canonical branch for releases │
-│ Revision 37a1aad231100cd206c49aed79e405ea2da9204b │
-│ Parent dace164ba43fa51802697ec28d0b1965a9d7808b │
-│ Blob bbefd77cfeb456e500ad868c3b4effe1f7f818e2 │
+│ Revision a66935d5bd3a1924400a13e290793f0ae9f17b8f │
+│ Parent e4aed637bb91432ac851e4b1e923ae03c7133285 │
+│ Blob 5c3c7f0fc6e44f12b13352994031834a4e7fe92a │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State active │
│ Quorum no │
@@ -14,11 +14,15 @@ $ rad id update --title "Add canonical branch for releases" --payload xyz.radicl
│ ? did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk bob │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,26 +1,32 @@
+@@ -1,31 +1,37 @@
{
"payload": {
"xyz.radicle.crefs": {
"rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ },
+ "refs/heads/releases/*": {
+ "allow": [
+ "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
@@ -34,10 +38,12 @@ $ rad id update --title "Add canonical branch for releases" --payload xyz.radicl
"allow": "delegates",
"threshold": 1
}
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
}
},
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
@@ -45,18 +51,17 @@ $ rad id update --title "Add canonical branch for releases" --payload xyz.radicl
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
"did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
- ],
- "threshold": 1
+ ]
}
```
``` ~bob
$ cd heartwood
$ rad sync -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-$ rad id accept 37a1aad231100cd206c49aed79e405ea2da9204b -q
+$ rad id accept a66935d5bd3a1924400a13e290793f0ae9f17b8f -q
```
Bob immediately pushes a branch that matches the rule, thus populating and
@@ -72,13 +77,13 @@ $ git commit --allow-empty --message "Release notes for version 2"
$ git push -u rad releases/2
✓ Canonical reference refs/heads/releases/2 updated to target commit afec366785ed3651cdc66975c0fec41866c9ce62
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new branch] releases/2 -> releases/2
```
``` ~alice
$ rad sync -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ git ls-remote rad
diff --git a/crates/radicle-cli/examples/git/git-push-canonical-lightweight-tags.md b/crates/radicle-cli/examples/git/git-push-canonical-lightweight-tags.md
index 5c4ed53a57..cb6977ba5b 100644
--- a/crates/radicle-cli/examples/git/git-push-canonical-lightweight-tags.md
+++ b/crates/radicle-cli/examples/git/git-push-canonical-lightweight-tags.md
@@ -46,13 +46,13 @@ case, we will have two rules: one for `refs/tags/*` and one for `refs/tags/qa/*`
(see RIP-0004 for more information on the rules).
``` ~alice
-$ rad id update --title "Add canonical reference rules" --payload xyz.radicle.crefs rules '{ "refs/tags/*": { "threshold": 1, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" }}'
+$ rad id update --title "Add canonical reference rules" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/tags/*": { "threshold": 1, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" }}'
✓ Identity revision [..] created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add canonical reference rules │
-│ Revision c3349f07bfe6a82bbeb2989d2de4a918408f9831 │
-│ Parent 0656c217f917c3e06234771e9ecae53aba5e173e │
-│ Blob 85fa09e2de93b825d5231778dbb34143004a4bca │
+│ Revision 9ca9e8efdf129b169029274c08412683f8ea897a │
+│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
+│ Blob 907000901ea67d8b4653252a5aa52a916ee433e6 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -60,11 +60,15 @@ $ rad id update --title "Add canonical reference rules" --payload xyz.radicle.cr
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,13 +1,25 @@
+@@ -1,22 +1,30 @@
{
"payload": {
-+ "xyz.radicle.crefs": {
-+ "rules": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
++ },
+ "refs/tags/*": {
+ "allow": "delegates",
+ "threshold": 1
@@ -72,19 +76,20 @@ $ rad id update --title "Add canonical reference rules" --payload xyz.radicle.cr
+ "refs/tags/qa/*": {
+ "allow": "delegates",
+ "threshold": 1
-+ }
-+ }
-+ },
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
},
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
- ],
- "threshold": 1
+ ]
}
```
@@ -98,7 +103,7 @@ $ git tag v1.0-hotfix
$ git push rad --tags
✓ Canonical reference refs/tags/v1.0-hotfix updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v1.0-hotfix -> v1.0-hotfix
```
@@ -114,7 +119,7 @@ On the other side, Bob performs a fetch and now has the tags locally:
``` ~bob (stderr)
$ cd heartwood
$ git fetch rad
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+From rad://zHb72m63NBufHR7jmZi732BBT6j6
* [new tag] v1.0-hotfix -> rad/tags/v1.0-hotfix
* [new tag] v1.0-hotfix -> v1.0-hotfix
```
@@ -134,7 +139,7 @@ the `threshold` to `2` for the `refs/tags/*` rule:
``` ~bob
$ rad remote add z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --name alice
✓ Follow policy updated for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -144,14 +149,14 @@ $ git push rad master
``` ~alice
$ rad remote add z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --name bob
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote bob added
✓ Remote-tracking branch bob/master created for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
-27ab0d77a95581c59ca9d30e679ceb06a9f758db
-$ rad id update --title "Update canonical reference rules" --payload xyz.radicle.crefs rules '{ "refs/tags/*": { "threshold": 2, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" } }' -q
-dace164ba43fa51802697ec28d0b1965a9d7808b
+d7a98a971a2f89a31f393caa8426627645ea60ab
+$ rad id update --title "Update canonical reference rules" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/tags/*": { "threshold": 2, "allow": "delegates" }, "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" } }' -q
+e4aed637bb91432ac851e4b1e923ae03c7133285
```
**Note:** here we have to specify all the rules again to update the `threshold`.
@@ -160,10 +165,10 @@ editor instead.
``` ~bob
$ rad sync -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-$ rad id accept dace164ba43fa51802697ec28d0b1965a9d7808b -q
+$ rad id accept e4aed637bb91432ac851e4b1e923ae03c7133285 -q
```
When Bob creates a new tag and pushes it, we see that there's a warning that
@@ -175,7 +180,7 @@ $ git push rad --tags
warn: could not determine target for canonical reference 'refs/tags/v2.0', no object with at least 2 vote(s) found (threshold not met)
warn: it is recommended to find an object (either commit or tag) to agree upon
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] v1.0-hotfix -> v1.0-hotfix
* [new tag] v2.0 -> v2.0
```
@@ -185,7 +190,7 @@ it:
``` ~alice (stderr)
$ git fetch bob
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] v1.0-hotfix -> bob/tags/v1.0-hotfix
* [new tag] v2.0 -> bob/tags/v2.0
```
@@ -201,7 +206,7 @@ $ git tag v2.0 bob/tags/v2.0
$ git push rad --tags
✓ Canonical reference refs/tags/v2.0 updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v2.0 -> v2.0
```
@@ -218,6 +223,6 @@ $ git tag qa/v2.1
$ git push rad --tags
✓ Canonical reference refs/tags/qa/v2.1 updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new tag] qa/v2.1 -> qa/v2.1
```
diff --git a/crates/radicle-cli/examples/git/git-push-canonical-symbolic-ref.md b/crates/radicle-cli/examples/git/git-push-canonical-symbolic-ref.md
index 1e783c4d66..7a8955c503 100644
--- a/crates/radicle-cli/examples/git/git-push-canonical-symbolic-ref.md
+++ b/crates/radicle-cli/examples/git/git-push-canonical-symbolic-ref.md
@@ -9,9 +9,9 @@ $ rad id update --title "Add canonical symbolic ref" --payload xyz.radicle.crefs
✓ Identity revision [..] created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add canonical symbolic ref │
-│ Revision 62e2cb60c6df9ad9908b6697b5d126760a855484 │
-│ Parent 37a1aad231100cd206c49aed79e405ea2da9204b │
-│ Blob b20de7b184673eb0d9227be17640c923d8ef3f3e │
+│ Revision d1befa2a12c7d4e6e6021462e97b0f981cb1b837 │
+│ Parent a66935d5bd3a1924400a13e290793f0ae9f17b8f │
+│ Blob b330066f27e70c43c7e6bc3884fec01ee8c74cf0 │
│ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
│ State active │
│ Quorum no │
@@ -20,11 +20,15 @@ $ rad id update --title "Add canonical symbolic ref" --payload xyz.radicle.crefs
│ ? did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,32 +1,35 @@
+@@ -1,37 +1,37 @@
{
"payload": {
"xyz.radicle.crefs": {
"rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ },
"refs/heads/releases/*": {
"allow": [
"did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
@@ -39,13 +43,13 @@ $ rad id update --title "Add canonical symbolic ref" --payload xyz.radicle.crefs
"allow": "delegates",
"threshold": 1
}
-+ },
-+ "symbolic": {
+ },
+ "symbolic": {
+- "HEAD": "refs/heads/master"
+ "refs/heads/main": "refs/heads/master"
}
},
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
@@ -53,8 +57,7 @@ $ rad id update --title "Add canonical symbolic ref" --payload xyz.radicle.crefs
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
"did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
- ],
- "threshold": 1
+ ]
}
```
@@ -62,10 +65,10 @@ Alice is happy with the new revision and accepts it.
``` ~alice
$ rad sync -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-$ rad id accept 62e2cb60c6df9ad9908b6697b5d126760a855484 -q
+$ rad id accept d1befa2a12c7d4e6e6021462e97b0f981cb1b837 -q
```
As usual, alice works on "master".
@@ -81,7 +84,7 @@ And updating the canonical reference for "master" also works as usual.
$ git push rad
✓ Canonical reference refs/heads/master updated to target commit 4dc510ddea5fd66499d1d2e996b8a97c8d57be54
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..4dc510d master -> master
```
@@ -103,7 +106,7 @@ Of course, she can also fetch it to her working copy as usual.
``` ~alice (stderr)
$ git fetch rad
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+From rad://zHb72m63NBufHR7jmZi732BBT6j6
* [new branch] main -> rad/main
* [new branch] releases/2 -> rad/releases/2
* [new tag] qa/v2.1 -> rad/tags/qa/v2.1
@@ -114,7 +117,7 @@ Bob fetches Alice's changes.
``` ~bob
$ rad sync -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -123,7 +126,7 @@ And, sure enough, there is the new branch just as he wanted it.
``` ~bob (stderr)
$ git fetch rad
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+From rad://zHb72m63NBufHR7jmZi732BBT6j6
* [new branch] main -> rad/main
f2de534..4dc510d master -> rad/master
```
diff --git a/crates/radicle-cli/examples/git/git-push-converge.md b/crates/radicle-cli/examples/git/git-push-converge.md
index 49e337119b..e45f7e69f2 100644
--- a/crates/radicle-cli/examples/git/git-push-converge.md
+++ b/crates/radicle-cli/examples/git/git-push-converge.md
@@ -5,8 +5,8 @@ First we add our new delegates, Bob & Eve, to our repo, while also setting the
`threshold` to `3`:
``` ~alice
-$ rad id update --title "Add Bob & Eve" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --threshold 3 --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji -q
-3143236b2e40338f5574ec04e935a5ab80a6868a
+$ rad id update --title "Add Bob & Eve" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --threshold 3 --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 -q
+5141e8b058d25adefc42c4e1c95c40c381e7fb64
```
Bob and Eve will fetch the changes to ensure they hear about their delegate
@@ -14,7 +14,7 @@ responsibilities:
``` ~bob
$ rad sync --fetch
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -22,7 +22,7 @@ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential s
``` ~eve
$ rad sync --fetch
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -63,13 +63,13 @@ found` error is showing up:
``` ~alice
$ rad remote add did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --name bob
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
✓ Remote bob added
✓ Remote-tracking branch bob/master created for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ rad remote add did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --name eve
✓ Follow policy updated for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (eve)
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
✓ Remote eve added
✓ Remote-tracking branch eve/master created for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
@@ -97,14 +97,14 @@ $ git push rad -f
warn: could not determine target for canonical reference 'refs/heads/master', no object with at least 3 vote(s) found (threshold not met)
warn: it is recommended to find an object (either commit or tag) to agree upon
✓ Synced with 2 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
d09e634..0f9bd80 master -> master
```
``` ~bob
$ rad remote add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --name alice
✓ Follow policy updated for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -121,7 +121,7 @@ become the canonical `master`.
$ git push rad
✓ Canonical reference refs/heads/master updated to target commit 3a75f66dd0020c9a0355cc6ec21f15de989e2001
✓ Synced with 2 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
2a37862..0f9bd80 master -> master
```
@@ -130,7 +130,7 @@ Once Eve also resets to the merge commits, the canonical `master` is set to this
``` ~eve
$ rad remote add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --name alice
✓ Follow policy updated for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -142,6 +142,6 @@ HEAD is now at 0f9bd80 Merge remote-tracking branch 'eve/master'
$ git push rad
✓ Canonical reference refs/heads/master updated to target commit 0f9bd8035c04b3f73f5408e73e8454879b20800b
✓ Synced with 2 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
3a75f66..0f9bd80 master -> master
```
diff --git a/crates/radicle-cli/examples/git/git-push-delete.md b/crates/radicle-cli/examples/git/git-push-delete.md
index 0d4edb5e51..a2bc504b69 100644
--- a/crates/radicle-cli/examples/git/git-push-delete.md
+++ b/crates/radicle-cli/examples/git/git-push-delete.md
@@ -1,7 +1,7 @@
Finally, we can also delete branches with `git push`:
```
-$ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/*
+$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/*
145e1e69bef3ad93d14946ea212249c2fa9b9828 refs/heads/alice/1
ddcc1f164eacfd7dba41da9bff3261da3ee79fd3 refs/heads/alice/2
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
@@ -9,12 +9,12 @@ f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad :alice/1
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- [deleted] alice/1
```
```
-$ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/*
+$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/*
ddcc1f164eacfd7dba41da9bff3261da3ee79fd3 refs/heads/alice/2
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
```
@@ -23,13 +23,13 @@ f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
$ git checkout alice/2
Switched to a new branch 'alice/2'
$ git push rad HEAD:refs/patches
-✓ Patch bb9b0d5b8de8d5e2a4cba45f02bd35b3e2678fbe opened
+✓ Patch a923044df9d0fedbe5cabe0b0e088fbbc7b18c4f opened
To [..]
* [new reference] HEAD -> refs/patches
```
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad alice/2 -d
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- [deleted] alice/2
```
diff --git a/crates/radicle-cli/examples/git/git-push-diverge.md b/crates/radicle-cli/examples/git/git-push-diverge.md
index 4a79a1aa1b..99dd530f52 100644
--- a/crates/radicle-cli/examples/git/git-push-diverge.md
+++ b/crates/radicle-cli/examples/git/git-push-diverge.md
@@ -4,15 +4,15 @@ canonical head.
First we add a second delegate, Bob, to our repo:
``` ~alice
-$ rad id update --title "Add Bob" --description "" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji -q
-c036c0d89ce26aef3ad7da402157dba16b5163b4
+$ rad id update --title "Add Bob" --description "" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 -q
+f2d51155f34a41adffb26dae04a5ce0feb5bcd95
```
Then, as Bob, we commit some code on top of the canonical head:
``` ~bob
$ rad sync --fetch
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
$ rad inspect --delegates
@@ -46,7 +46,7 @@ $ git push rad
warn: could not determine target commit for canonical reference 'refs/heads/master', found diverging commits 2e8758fc512cbdef298c86feddff5ba3280e94b4 and 319a7dc3b195368ded4b099f8c90bbb80addccd3, with base commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 and threshold 1
warn: it is recommended to find a commit to agree upon
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..2e8758f master -> master
```
@@ -63,7 +63,7 @@ f2de534 Second commit
``` ~alice RAD_SOCKET=/dev/null (stderr)
$ git push rad -f
✓ Canonical reference refs/heads/master updated to target commit f6cff86594495e9beccfeda7c20173e55c1dd9fc
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 2e8758f...f6cff86 master -> master (forced update)
```
@@ -76,6 +76,6 @@ $ git reset --hard HEAD^ -q
``` ~alice RAD_SOCKET=/dev/null (stderr)
$ git push -f
✓ Canonical reference refs/heads/master updated to target commit 319a7dc3b195368ded4b099f8c90bbb80addccd3
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ f6cff86...319a7dc master -> master (forced update)
```
diff --git a/crates/radicle-cli/examples/git/git-push-force-with-lease.md b/crates/radicle-cli/examples/git/git-push-force-with-lease.md
index 4e92588ae6..c9a849e65b 100644
--- a/crates/radicle-cli/examples/git/git-push-force-with-lease.md
+++ b/crates/radicle-cli/examples/git/git-push-force-with-lease.md
@@ -18,7 +18,7 @@ the last time you pushed.
$ git commit --amend -m "Neue Änderungen" --allow-empty -q
$ git push rad master --force-with-lease
✓ Canonical reference refs/heads/master updated to target commit 9170c8795d3a78f0381a0ffafb20ea69fb0f5b6b
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ fb25886...9170c87 master -> master (forced update)
```
@@ -29,7 +29,7 @@ value, to `--force-push-lease`:
$ git commit --amend -m "Noch mehr Änderungen" --allow-empty -q
$ git push rad master --force-with-lease=master
✓ Canonical reference refs/heads/master updated to target commit 1e4213811eb4ce67360e4a0222cab81ad11a7ffe
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 9170c87...1e42138 master -> master (forced update)
```
@@ -39,7 +39,7 @@ As well as the named reference, and its expected value:
$ git commit --amend -m "Even more changes" --allow-empty -q
$ git push rad master --force-with-lease=master:1e4213811eb4ce67360e4a0222cab81ad11a7ffe
✓ Canonical reference refs/heads/master updated to target commit c4b74ef30953598852a82e0cd22b2ebb0d8d9e18
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 1e42138...c4b74ef master -> master (forced update)
```
@@ -52,9 +52,9 @@ $ git commit --amend -m "And even more" --allow-empty -q
``` (stderr) (fail)
$ git push rad master --force-with-lease=master:1e4213811eb4ce67360e4a0222cab81ad11a7ffe
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
! [rejected] master -> master (stale info)
-error: failed to push some refs to 'rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
```
And if we do not supply the commit, it should also fail, since this implies that
@@ -66,16 +66,16 @@ $ git commit --amend -m "And even more" --allow-empty -q
``` (stderr) (fail)
$ git push rad master --force-with-lease=master:
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
! [rejected] master -> master (stale info)
-error: failed to push some refs to 'rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
```
So, let's create a new branch:
``` (stderr)
$ git push rad master:dev --force-with-lease=dev:
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] master -> dev
```
diff --git a/crates/radicle-cli/examples/git/git-push-rollback.md b/crates/radicle-cli/examples/git/git-push-rollback.md
index 7b23a0a7af..f1b515b180 100644
--- a/crates/radicle-cli/examples/git/git-push-rollback.md
+++ b/crates/radicle-cli/examples/git/git-push-rollback.md
@@ -4,15 +4,15 @@ First we add a second delegate, Bob, to our repo. We also change the threshold
to 2:
``` ~alice
-$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --threshold 2 -q
-069e7d58faa9a7473d27f5510d676af33282796f
+$ rad id update --title "Add Bob" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --threshold 2 -q
+ff50694a35d2a891413cfd7f9a4b855057c3f1ab
```
Bob then syncs these changes and adds a new commit:
``` ~bob
$ rad sync --fetch
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
$ git commit -m "Third commit" --allow-empty -q
@@ -37,7 +37,7 @@ Fast-forward
$ git push rad
✓ Canonical reference refs/heads/master updated to target commit 319a7dc3b195368ded4b099f8c90bbb80addccd3
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..319a7dc master -> master
```
@@ -56,6 +56,6 @@ push and the new canonical head becomes the previous commit again:
$ git push rad -f
✓ Canonical reference refs/heads/master updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 319a7dc...f2de534 master -> master (forced update)
```
diff --git a/crates/radicle-cli/examples/git/git-push.md b/crates/radicle-cli/examples/git/git-push.md
index 2c24faaf49..f5451dd805 100644
--- a/crates/radicle-cli/examples/git/git-push.md
+++ b/crates/radicle-cli/examples/git/git-push.md
@@ -6,7 +6,7 @@ $ git commit -m "Alice's commit" --allow-empty -s
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:alice/1
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] HEAD -> alice/1
```
@@ -17,9 +17,9 @@ $ git commit --amend -m "Alice's amended commit" --allow-empty -s
```
``` (stderr) (fail)
$ git push rad HEAD:alice/1
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
! [rejected] HEAD -> alice/1 (non-fast-forward)
-error: failed to push some refs to 'rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
hint: [..]
hint: [..]
hint: [..]
@@ -30,7 +30,7 @@ And that we can with `+`:
``` (stderr)
$ git push -o no-sync rad +HEAD:alice/1
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 87fa120...145e1e6 HEAD -> alice/1 (forced update)
```
@@ -45,7 +45,7 @@ $ git branch -r -vv
List our namespaced refs:
```
-$ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 'refs/heads/*'
+$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 'refs/heads/*'
145e1e69bef3ad93d14946ea212249c2fa9b9828 refs/heads/alice/1
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
```
@@ -68,7 +68,7 @@ Note that it is forbidden to delete the default/canonical branch:
``` (fail) (stderr)
$ git push rad :master
error: refusing to delete default branch ref 'refs/heads/master'
-error: failed to push some refs to 'rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
```
If you pass an unsupported push option, you get an error:
@@ -86,6 +86,6 @@ $ git commit -m "Something good" --allow-empty -s
```
``` (stderr)
$ git push -o no-sync rad ddcc1f164eacfd7dba41da9bff3261da3ee79fd3:refs/heads/alice/2
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] ddcc1f164eacfd7dba41da9bff3261da3ee79fd3 -> alice/2
```
diff --git a/crates/radicle-cli/examples/git/git-tag.md b/crates/radicle-cli/examples/git/git-tag.md
index 365bda7015..af35f0be7f 100644
--- a/crates/radicle-cli/examples/git/git-tag.md
+++ b/crates/radicle-cli/examples/git/git-tag.md
@@ -13,7 +13,7 @@ $ git tag v1.0 -a -m "Release v1.0"
``` ~alice (stderr)
$ git push rad v1.0
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v1.0 -> v1.0
```
@@ -37,7 +37,7 @@ Bob fetches the tag from Alice, by adding her as a remote:
$ cd heartwood
$ rad remote add z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --name alice
✓ Follow policy updated for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -48,7 +48,7 @@ under the `alice` remote:
``` ~bob (stderr)
$ git fetch alice
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new tag] v1.0 -> alice/tags/v1.0
```
@@ -65,7 +65,7 @@ Updated tag 'v1.0' (was be18ed6)
``` ~alice (stderr)
$ git push rad v1.0 -f
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ be18ed6...9dbdebc v1.0 -> v1.0 (forced update)
```
@@ -74,13 +74,13 @@ update of the tag:
``` ~bob
$ rad sync -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
``` ~bob (stderr)
$ git fetch alice -f
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
62d19fd..9dbdebc v1.0 -> alice/tags/v1.0
```
diff --git a/crates/radicle-cli/examples/jj-init-bare.md b/crates/radicle-cli/examples/jj-init-bare.md
index 2832a20347..6edc18b853 100644
--- a/crates/radicle-cli/examples/jj-init-bare.md
+++ b/crates/radicle-cli/examples/jj-init-bare.md
@@ -12,5 +12,5 @@ $ cd heartwood.jj
```
$ rad .
-rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+rad:zHb72m63NBufHR7jmZi732BBT6j6
```
diff --git a/crates/radicle-cli/examples/rad-block.md b/crates/radicle-cli/examples/rad-block.md
index a29630cda3..b683cff711 100644
--- a/crates/radicle-cli/examples/rad-block.md
+++ b/crates/radicle-cli/examples/rad-block.md
@@ -4,8 +4,8 @@ repositories from being seeded.
For instance, if our default policy is to seed, any unknown repository will
have its policy set to allow seeding:
```
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --policy
-Repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji is being seeded with scope `all`
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --policy
+Repository rad:zHb72m63NBufHR7jmZi732BBT6j6 is being seeded with scope `all`
```
Since there is no policy specific to this repository, there's nothing to be
@@ -20,33 +20,33 @@ But if we wanted to prevent this repository from being seeded, while
allowing all other repositories, we could use `rad block`:
```
-$ rad block rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Policy for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji set to 'block'
+$ rad block rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Policy for rad:zHb72m63NBufHR7jmZi732BBT6j6 set to 'block'
```
We can see that it is now no longer seeded:
```
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --policy
-Repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji is not being seeded
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --policy
+Repository rad:zHb72m63NBufHR7jmZi732BBT6j6 is not being seeded
```
And a 'block' policy was added:
```
$ rad seed
-╭───────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├───────────────────────────────────────────────────────────┤
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji block │
-╰───────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├──────────────────────────────────────────────────────────┤
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 block │
+╰──────────────────────────────────────────────────────────╯
```
If we want to reverse the blocking of the RID we can use `rad unblock`:
```
-$ rad unblock rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ The 'block' policy for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji is removed
+$ rad unblock rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ The 'block' policy for rad:zHb72m63NBufHR7jmZi732BBT6j6 is removed
```
```
diff --git a/crates/radicle-cli/examples/rad-checkout-repo-config-linux.md b/crates/radicle-cli/examples/rad-checkout-repo-config-linux.md
index ace75c511e..8f6e344bb9 100644
--- a/crates/radicle-cli/examples/rad-checkout-repo-config-linux.md
+++ b/crates/radicle-cli/examples/rad-checkout-repo-config-linux.md
@@ -14,10 +14,10 @@ $ cat .git/config
[push]
default = upstream
[remote "rad"]
- url = rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+ url = rad://zHb72m63NBufHR7jmZi732BBT6j6
fetch = +refs/heads/*:refs/remotes/rad/*
fetch = +refs/tags/*:refs/remotes/rad/tags/*
- pushurl = rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ pushurl = rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
[branch "master"]
remote = rad
merge = refs/heads/master
diff --git a/crates/radicle-cli/examples/rad-checkout-repo-config-macos.md b/crates/radicle-cli/examples/rad-checkout-repo-config-macos.md
index ff7bc1f3c4..f55cfa7730 100644
--- a/crates/radicle-cli/examples/rad-checkout-repo-config-macos.md
+++ b/crates/radicle-cli/examples/rad-checkout-repo-config-macos.md
@@ -16,10 +16,10 @@ $ cat .git/config
[push]
default = upstream
[remote "rad"]
- url = rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+ url = rad://zHb72m63NBufHR7jmZi732BBT6j6
fetch = +refs/heads/*:refs/remotes/rad/*
fetch = +refs/tags/*:refs/remotes/rad/tags/*
- pushurl = rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ pushurl = rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
[branch "master"]
remote = rad
merge = refs/heads/master
diff --git a/crates/radicle-cli/examples/rad-checkout.md b/crates/radicle-cli/examples/rad-checkout.md
index e51b4199ce..18e91200a6 100644
--- a/crates/radicle-cli/examples/rad-checkout.md
+++ b/crates/radicle-cli/examples/rad-checkout.md
@@ -2,7 +2,7 @@ With the `rad checkout` command, you can create a new working copy from an
existing project.
```
-$ rad checkout rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad checkout rad:zHb72m63NBufHR7jmZi732BBT6j6
✓ Repository checkout successful under ./heartwood
```
@@ -32,8 +32,8 @@ Check the remote configuration:
```
$ git remote --verbose
-rad rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji (fetch)
-rad rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
+rad rad://zHb72m63NBufHR7jmZi732BBT6j6 (fetch)
+rad rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
```
List the branches:
diff --git a/crates/radicle-cli/examples/rad-clean.md b/crates/radicle-cli/examples/rad-clean.md
index 7b6b9ae8cf..9bad4d483e 100644
--- a/crates/radicle-cli/examples/rad-clean.md
+++ b/crates/radicle-cli/examples/rad-clean.md
@@ -7,34 +7,34 @@ First let's look at what we have locally:
``` ~alice
$ rad ls
-╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji public f2de534 Radicle Heartwood Protocol & Stack │
-╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Let's also inspect what remotes are in the repository:
``` ~alice
$ rad inspect --sigrefs
-z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 55be80540a7e9f10478fbc846913f2a6a19abe1d parent
-z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk e9f48ef90fe8592e1b1c95f96c21a59ca1495300 parent
+z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi cb2d413d68732395074cdfd8c724264e33005f4c parent
+z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk f2eb2fc33baaa0f105693421bee3fab12ed6fad6 parent
```
Now let's clean the `heartwood` project:
``` ~alice
-$ rad clean rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --no-confirm
+$ rad clean rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-confirm
Removed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-✓ Successfully cleaned rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+✓ Successfully cleaned rad:zHb72m63NBufHR7jmZi732BBT6j6
```
Inspecting the remotes again, we see that Bob is now gone:
``` ~alice
$ rad inspect --sigrefs
-z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 55be80540a7e9f10478fbc846913f2a6a19abe1d parent
+z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi cb2d413d68732395074cdfd8c724264e33005f4c parent
```
Note that Bob will be fetched again if we do not untrack his
@@ -45,23 +45,23 @@ Cleaning a repository again will remove no remotes, since we're
already at the minimal set of remotes:
``` ~alice
-$ rad clean rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --no-confirm
-✓ Successfully cleaned rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad clean rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-confirm
+✓ Successfully cleaned rad:zHb72m63NBufHR7jmZi732BBT6j6
```
Since Eve did not fork the repository, and has no refs of their own,
when they run `rad clean` it will remove the project entirely:
``` ~eve
-$ rad clean rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --no-confirm
+$ rad clean rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-confirm
Removed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-✓ Successfully cleaned rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+✓ Successfully cleaned rad:zHb72m63NBufHR7jmZi732BBT6j6
```
And attempting to clean the repository again, or any nonexistent
repository, has no effect on the storage at all:
``` ~eve (fail)
-$ rad clean rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --no-confirm
-✗ Error: repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji was not found
+$ rad clean rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-confirm
+✗ Error: repository rad:zHb72m63NBufHR7jmZi732BBT6j6 was not found
```
diff --git a/crates/radicle-cli/examples/rad-clone-all.md b/crates/radicle-cli/examples/rad-clone-all.md
index 48bf731ec7..0695887f05 100644
--- a/crates/radicle-cli/examples/rad-clone-all.md
+++ b/crates/radicle-cli/examples/rad-clone-all.md
@@ -1,7 +1,7 @@
```
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --scope all
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope all
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'all'
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -32,7 +32,7 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ └── xyz.radicle.id
- │ └── [...]
+ │ └── [..]
├── heads
│ └── master
└── rad
@@ -64,7 +64,7 @@ We can also create our own fork just by pushing:
``` (stderr)
$ git push -o no-sync rad master
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
* [new branch] master -> master
```
```
@@ -73,7 +73,7 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ └── xyz.radicle.id
- │ └── [...]
+ │ └── [..]
├── heads
│ └── master
└── rad
diff --git a/crates/radicle-cli/examples/rad-clone-bare.md b/crates/radicle-cli/examples/rad-clone-bare.md
index fc645ae4dd..cb5961c4a4 100644
--- a/crates/radicle-cli/examples/rad-clone-bare.md
+++ b/crates/radicle-cli/examples/rad-clone-bare.md
@@ -2,9 +2,9 @@ To create a local bare copy of a repository on the Radicle network, we use the
`clone` command, followed by the identifier or *RID* of the repository:
```
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --scope followed --bare
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found [..] potential seed(s).
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed --bare
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found [..] potential seed(s).
✓ Target met: [..] seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -53,10 +53,10 @@ We can also take a look at the remotes:
```
$ git remote -v
-alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (fetch)
-alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
-rad rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji (fetch)
-rad rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (push)
+alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (fetch)
+alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
+rad rad://zHb72m63NBufHR7jmZi732BBT6j6 (fetch)
+rad rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (push)
```
Let's check the last commit!
@@ -73,9 +73,9 @@ Date: Mon Jan 1 14:39:16 2018 +0000
Cloned repositories show up in `rad ls`:
```
$ rad ls --seeded
-╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji public f2de534 Radicle Heartwood Protocol & Stack │
-╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-clone-connect.md b/crates/radicle-cli/examples/rad-clone-connect.md
index f6566a1b1f..3bfd99cab4 100644
--- a/crates/radicle-cli/examples/rad-clone-connect.md
+++ b/crates/radicle-cli/examples/rad-clone-connect.md
@@ -2,9 +2,9 @@ If we're not connecting to seed nodes when cloning, the `clone` command will
automatically connect to the necessary seeds.
```
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
diff --git a/crates/radicle-cli/examples/rad-clone-directory.md b/crates/radicle-cli/examples/rad-clone-directory.md
index 93a21b2512..bb47e6a328 100644
--- a/crates/radicle-cli/examples/rad-clone-directory.md
+++ b/crates/radicle-cli/examples/rad-clone-directory.md
@@ -2,9 +2,9 @@ We can specify where a repository gets cloned into on our filesystem
by specifying the directory in the `rad clone` command:
```
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --scope followed Developer/Radicle
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed Developer/Radicle
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./Developer/Radicle..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -22,8 +22,8 @@ Note that attempting to clone into a directory that already exists,
and is not empty, will fail:
``` (fail)
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --scope followed Developer/Radicle
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed Developer/Radicle
✗ Error: refusing to checkout repository to Developer/Radicle, since it already exists
-✗ Hint: try `rad checkout rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji` in a new directory
-✗ Error: failed to clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+✗ Hint: try `rad checkout rad:zHb72m63NBufHR7jmZi732BBT6j6` in a new directory
+✗ Error: failed to clone rad:zHb72m63NBufHR7jmZi732BBT6j6
```
diff --git a/crates/radicle-cli/examples/rad-clone-partial-fail.md b/crates/radicle-cli/examples/rad-clone-partial-fail.md
index 18af1cfd8f..8f36f2a15e 100644
--- a/crates/radicle-cli/examples/rad-clone-partial-fail.md
+++ b/crates/radicle-cli/examples/rad-clone-partial-fail.md
@@ -2,22 +2,22 @@ Eve knows about three seeds.
```
$ rad node routing
-╭──────────────────────────────────────────────────────────────────────────────────────╮
-│ RID NID │
-├──────────────────────────────────────────────────────────────────────────────────────┤
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji z6MksFqXN3Yhqk8pTJdUGLwBTkRfQvwZXPqR2qMEhbS9wzpT │
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
-╰──────────────────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────────────────────────────────────────────────────────────╮
+│ RID NID │
+├─────────────────────────────────────────────────────────────────────────────────────┤
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 z6MksFqXN3Yhqk8pTJdUGLwBTkRfQvwZXPqR2qMEhbS9wzpT │
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
+╰─────────────────────────────────────────────────────────────────────────────────────╯
```
When she tries to clone, one of those will fail to fetch. But the clone command
still returns successfully.
```
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --timeout 3s
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 3 potential seed(s).
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --timeout 3s
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 3 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
diff --git a/crates/radicle-cli/examples/rad-clone-scope.md b/crates/radicle-cli/examples/rad-clone-scope.md
index 4a56e6f13c..2b47f17578 100644
--- a/crates/radicle-cli/examples/rad-clone-scope.md
+++ b/crates/radicle-cli/examples/rad-clone-scope.md
@@ -1,8 +1,8 @@
By default `rad clone` should add a seeding policy with the `followed` scope:
```
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
✓ Creating checkout in ./heartwood..
✓ Repository successfully cloned under [..]/heartwood/
╭────────────────────────────────────╮
@@ -12,19 +12,19 @@ $ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
╰────────────────────────────────────╯
Run `cd ./heartwood` to go to the repository directory.
$ rad seed
-╭───────────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├───────────────────────────────────────────────────────────────────┤
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji heartwood allow followed │
-╰───────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├──────────────────────────────────────────────────────────────────┤
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 heartwood allow followed │
+╰──────────────────────────────────────────────────────────────────╯
$ rm -rf heartwood
```
Specifying a different scope explicitly should update the policy:
```
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --scope all
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope all
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'all'
✓ Creating checkout in ./heartwood..
✓ Repository successfully cloned under [..]/heartwood/
╭────────────────────────────────────╮
@@ -34,18 +34,18 @@ $ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --scope all
╰────────────────────────────────────╯
Run `cd ./heartwood` to go to the repository directory.
$ rad seed
-╭────────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├────────────────────────────────────────────────────────────────┤
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji heartwood allow all │
-╰────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├───────────────────────────────────────────────────────────────┤
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 heartwood allow all │
+╰───────────────────────────────────────────────────────────────╯
$ rm -rf heartwood
```
Running `rad clone` again without an explicit scope parameter should not change the existing policy:
```
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
✓ Creating checkout in ./heartwood..
✓ Repository successfully cloned under [..]/heartwood/
╭────────────────────────────────────╮
@@ -55,9 +55,9 @@ $ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
╰────────────────────────────────────╯
Run `cd ./heartwood` to go to the repository directory.
$ rad seed
-╭────────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├────────────────────────────────────────────────────────────────┤
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji heartwood allow all │
-╰────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├───────────────────────────────────────────────────────────────┤
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 heartwood allow all │
+╰───────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-clone.md b/crates/radicle-cli/examples/rad-clone.md
index 55bf87e47b..e3abca6af2 100644
--- a/crates/radicle-cli/examples/rad-clone.md
+++ b/crates/radicle-cli/examples/rad-clone.md
@@ -2,9 +2,9 @@ To create a local copy of a repository on the Radicle network, we use the
`clone` command, followed by the identifier or *RID* of the repository:
```
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found [..] potential seed(s).
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found [..] potential seed(s).
✓ Target met: [..] seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -47,10 +47,10 @@ We can also take a look at the remotes:
```
$ git remote -v
-alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (fetch)
-alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
-rad rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji (fetch)
-rad rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (push)
+alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (fetch)
+alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (push)
+rad rad://zHb72m63NBufHR7jmZi732BBT6j6 (fetch)
+rad rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (push)
```
Let's check the last commit!
@@ -67,9 +67,9 @@ Date: Mon Jan 1 14:39:16 2018 +0000
Cloned repositories show up in `rad ls`:
```
$ rad ls --seeded
-╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji public f2de534 Radicle Heartwood Protocol & Stack │
-╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-cob-log.md b/crates/radicle-cli/examples/rad-cob-log.md
index 29fb48bcc1..4d256286b0 100644
--- a/crates/radicle-cli/examples/rad-cob-log.md
+++ b/crates/radicle-cli/examples/rad-cob-log.md
@@ -6,7 +6,7 @@ First create an issue.
$ rad issue open --title "flux capacitor underpowered" --description "Flux capacitor power requirements exceed current supply" --no-announce
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue d87dcfe8c2b3200e78b128d9b959cfdf7063fefe │
+│ Issue 03d81cbed7db716ba49b0ad4910a064a664883ab │
│ Author alice (you) │
│ Status open │
│ │
@@ -21,7 +21,7 @@ $ rad issue list
╭──────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├──────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● d87dcfe flux capacitor underpowered alice (you) now │
+│ ● 03d81cb flux capacitor underpowered alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -45,25 +45,25 @@ $ rad patch
╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● aa45913 Define power requirements alice (you) - 3e674d1 +0 -0 now │
+│ ● 133e390 Define power requirements alice (you) - 3e674d1 +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Both issue and patch COBs can be listed.
```
-$ rad cob list --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue
-d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
-$ rad cob list --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch
-aa45913e757cacd46972733bddee5472c78fa32a
+$ rad cob list --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue
+03d81cbed7db716ba49b0ad4910a064a664883ab
+$ rad cob list --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch
+133e3905e9252139a7ea29881b3d5bca816372b9
```
We can look at the issue COB.
```
-$ rad cob log --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
-commit d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
+$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab
+commit 03d81cbed7db716ba49b0ad4910a064a664883ab
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -82,9 +82,9 @@ date Thu, 15 Dec 2022 17:28:04 +0000
We can look at the patch COB too.
```
-$ rad cob log --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object aa45913e757cacd46972733bddee5472c78fa32a
-commit aa45913e757cacd46972733bddee5472c78fa32a
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
+$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch --object 133e3905e9252139a7ea29881b3d5bca816372b9
+commit 133e3905e9252139a7ea29881b3d5bca816372b9
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
rel 3e674d1a1df90807e934f9ae5da2591dd6848a33
rel f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -108,11 +108,11 @@ date Thu, 15 Dec 2022 17:28:04 +0000
Finally let's updated the issue and see the `parent` header:
```
-$ rad issue label d87dcfe --add bug --no-announce
-$ rad cob log --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
-commit abec0a9f3c945594c4e78d24d8ec679e56b22b79
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
+$ rad issue label 03d81cb --add bug --no-announce
+$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab
+commit c3b36f60b1aa80501d90363fd19197cbef955f9a
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 03d81cbed7db716ba49b0ad4910a064a664883ab
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -123,8 +123,8 @@ date Thu, 15 Dec 2022 17:28:04 +0000
]
}
-commit d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
+commit 03d81cbed7db716ba49b0ad4910a064a664883ab
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
diff --git a/crates/radicle-cli/examples/rad-cob-multiset.md b/crates/radicle-cli/examples/rad-cob-multiset.md
index bd52803a1e..a89a273b7c 100644
--- a/crates/radicle-cli/examples/rad-cob-multiset.md
+++ b/crates/radicle-cli/examples/rad-cob-multiset.md
@@ -41,28 +41,28 @@ It reads the current state of the grocery list and operations containing actions
We do not invoke the program directly, but instead use `rad cob create`:
```
-$ rad cob create --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type com.example.multiset --message "Create grocery shopping multiset" groceries.jsonl
+$ rad cob create --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type com.example.multiset --message "Create grocery shopping multiset" groceries.jsonl
9bba8e6f83ef56b11151ef6ad02cc4595f982aab
```
We can verify that the COB evaluated as expected:
```
-$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab
+$ rad cob show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab
{"jelly":0,"peanut butter":1,"salad":2}
```
To apply actions to COBs that already exist, we can use `rad cob update`:
```
-$ rad cob update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab --message "Modify grocery shopping multiset" groceries.jsonl
+$ rad cob update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab --message "Modify grocery shopping multiset" groceries.jsonl
d36aac77be13c1ca80edbfe7b7bf9b42c723f019
```
Again, we verify the result with `rad cob show`:
```
-$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab
+$ rad cob show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type com.example.multiset --object 9bba8e6f83ef56b11151ef6ad02cc4595f982aab
{"jelly":0,"peanut butter":2,"salad":4}
```
diff --git a/crates/radicle-cli/examples/rad-cob-operations.md b/crates/radicle-cli/examples/rad-cob-operations.md
index 53c31e03bb..c4f9f3d42b 100644
--- a/crates/radicle-cli/examples/rad-cob-operations.md
+++ b/crates/radicle-cli/examples/rad-cob-operations.md
@@ -7,28 +7,28 @@ To demonstrate, we will first create an issue and interact with it:
$ rad issue open --title "flux capacitor underpowered" --description "Flux capacitor power requirements exceed current supply" --no-announce
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue d87dcfe8c2b3200e78b128d9b959cfdf7063fefe │
+│ Issue 03d81cbed7db716ba49b0ad4910a064a664883ab │
│ Author alice (you) │
│ Status open │
│ │
│ Flux capacitor power requirements exceed current supply │
╰─────────────────────────────────────────────────────────╯
-$ rad issue react d87dcfe8c2b3200e78b128d9b959cfdf7063fefe --to d87dcfe8c2b3200e78b128d9b959cfdf7063fefe --emoji ✨ --no-announce
-$ rad issue comment d87dcfe8c2b3200e78b128d9b959cfdf7063fefe --message "Max power!" --no-announce
+$ rad issue react 03d81cbed7db716ba49b0ad4910a064a664883ab --to 03d81cbed7db716ba49b0ad4910a064a664883ab --emoji ✨ --no-announce
+$ rad issue comment 03d81cbed7db716ba49b0ad4910a064a664883ab --message "Max power!" --no-announce
╭─────────────────────────╮
-│ alice (you) now 3c849c9 │
+│ alice (you) now 92665fd │
│ Max power! │
╰─────────────────────────╯
-$ rad issue assign d87dcfe8c2b3200e78b128d9b959cfdf7063fefe --add did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-announce
+$ rad issue assign 03d81cbed7db716ba49b0ad4910a064a664883ab --add did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-announce
```
Now, let's see the list of operations using `rad cob log`:
```
-$ rad cob log --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
-commit 376ba71113603004eae3c1b125c58cdc41d36b73
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent 3c849c9b555b18be9a1f6c71fb254ba000de8cfe
+$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab
+commit 1c8bcdbc37ff57880bb51ef38d920e4a32435074
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -39,33 +39,33 @@ date Thu, 15 Dec 2022 17:28:04 +0000
]
}
-commit 3c849c9b555b18be9a1f6c71fb254ba000de8cfe
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent 256908937f3cda8df522d5a3ba442eb935c3f11b
+commit 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment",
"body": "Max power!",
- "replyTo": "d87dcfe8c2b3200e78b128d9b959cfdf7063fefe"
+ "replyTo": "03d81cbed7db716ba49b0ad4910a064a664883ab"
}
-commit 256908937f3cda8df522d5a3ba442eb935c3f11b
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
+commit 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 03d81cbed7db716ba49b0ad4910a064a664883ab
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment.react",
- "id": "d87dcfe8c2b3200e78b128d9b959cfdf7063fefe",
+ "id": "03d81cbed7db716ba49b0ad4910a064a664883ab",
"reaction": "✨",
"active": true
}
-commit d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
+commit 03d81cbed7db716ba49b0ad4910a064a664883ab
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -86,10 +86,10 @@ options. We will need some commit revisions to use for those options, so let's
look at what those revision are by using `rad cob log`:
```
-$ rad cob log --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
-commit 376ba71113603004eae3c1b125c58cdc41d36b73
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent 3c849c9b555b18be9a1f6c71fb254ba000de8cfe
+$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab
+commit 1c8bcdbc37ff57880bb51ef38d920e4a32435074
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -100,33 +100,33 @@ date Thu, 15 Dec 2022 17:28:04 +0000
]
}
-commit 3c849c9b555b18be9a1f6c71fb254ba000de8cfe
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent 256908937f3cda8df522d5a3ba442eb935c3f11b
+commit 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment",
"body": "Max power!",
- "replyTo": "d87dcfe8c2b3200e78b128d9b959cfdf7063fefe"
+ "replyTo": "03d81cbed7db716ba49b0ad4910a064a664883ab"
}
-commit 256908937f3cda8df522d5a3ba442eb935c3f11b
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
+commit 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 03d81cbed7db716ba49b0ad4910a064a664883ab
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment.react",
- "id": "d87dcfe8c2b3200e78b128d9b959cfdf7063fefe",
+ "id": "03d81cbed7db716ba49b0ad4910a064a664883ab",
"reaction": "✨",
"active": true
}
-commit d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
+commit 03d81cbed7db716ba49b0ad4910a064a664883ab
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -146,10 +146,10 @@ If we provide only the `--from` option, the operations we get back start from th
revision and go until the end:
```
-$ rad cob log --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object d87dcfe8c2b3200e78b128d9b959cfdf7063fefe --from 3c849c9b555b18be9a1f6c71fb254ba000de8cfe
-commit 376ba71113603004eae3c1b125c58cdc41d36b73
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent 3c849c9b555b18be9a1f6c71fb254ba000de8cfe
+$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab --from 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
+commit 1c8bcdbc37ff57880bb51ef38d920e4a32435074
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -160,16 +160,16 @@ date Thu, 15 Dec 2022 17:28:04 +0000
]
}
-commit 3c849c9b555b18be9a1f6c71fb254ba000de8cfe
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent 256908937f3cda8df522d5a3ba442eb935c3f11b
+commit 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment",
"body": "Max power!",
- "replyTo": "d87dcfe8c2b3200e78b128d9b959cfdf7063fefe"
+ "replyTo": "03d81cbed7db716ba49b0ad4910a064a664883ab"
}
```
@@ -178,22 +178,22 @@ Conversely, if we provide only the `--until` option, the operations we get back
start from the beginning and stop at that revision:
```
-$ rad cob log --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object d87dcfe8c2b3200e78b128d9b959cfdf7063fefe --until 256908937f3cda8df522d5a3ba442eb935c3f11b
-commit 256908937f3cda8df522d5a3ba442eb935c3f11b
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
+$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab --until 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
+commit 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 03d81cbed7db716ba49b0ad4910a064a664883ab
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment.react",
- "id": "d87dcfe8c2b3200e78b128d9b959cfdf7063fefe",
+ "id": "03d81cbed7db716ba49b0ad4910a064a664883ab",
"reaction": "✨",
"active": true
}
-commit d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
+commit 03d81cbed7db716ba49b0ad4910a064a664883ab
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -212,28 +212,28 @@ date Thu, 15 Dec 2022 17:28:04 +0000
Finally, if we provide both, we get back that exact range:
```
-$ rad cob log --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object d87dcfe8c2b3200e78b128d9b959cfdf7063fefe --from 256908937f3cda8df522d5a3ba442eb935c3f11b --until 3c849c9b555b18be9a1f6c71fb254ba000de8cfe
-commit 3c849c9b555b18be9a1f6c71fb254ba000de8cfe
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent 256908937f3cda8df522d5a3ba442eb935c3f11b
+$ rad cob log --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 03d81cbed7db716ba49b0ad4910a064a664883ab --from 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e --until 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
+commit 92665fd18aa1dbf8462d64bb4eb0f6abd334abd7
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment",
"body": "Max power!",
- "replyTo": "d87dcfe8c2b3200e78b128d9b959cfdf7063fefe"
+ "replyTo": "03d81cbed7db716ba49b0ad4910a064a664883ab"
}
-commit 256908937f3cda8df522d5a3ba442eb935c3f11b
-resource 0656c217f917c3e06234771e9ecae53aba5e173e
-parent d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
+commit 6f824e5bb1ce13cc16e42cdc2be551b98b45cb5e
+resource 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+parent 03d81cbed7db716ba49b0ad4910a064a664883ab
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "comment.react",
- "id": "d87dcfe8c2b3200e78b128d9b959cfdf7063fefe",
+ "id": "03d81cbed7db716ba49b0ad4910a064a664883ab",
"reaction": "✨",
"active": true
}
diff --git a/crates/radicle-cli/examples/rad-cob-show.md b/crates/radicle-cli/examples/rad-cob-show.md
index f5d0420db4..493403ee85 100644
--- a/crates/radicle-cli/examples/rad-cob-show.md
+++ b/crates/radicle-cli/examples/rad-cob-show.md
@@ -9,7 +9,7 @@ First create an issue.
$ rad issue open --title "spice harvester broken" --description "Fremen have attacked, maybe we went too far?" --no-announce
╭──────────────────────────────────────────────────╮
│ Title spice harvester broken │
-│ Issue 9de644864342d7a505eb8d58d1ef20e5bb05de2e │
+│ Issue 2919a63dae44d4bb9e092a4a9bf10a03a44717f5 │
│ Author alice (you) │
│ Status open │
│ │
@@ -24,7 +24,7 @@ $ rad issue list
╭─────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├─────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 9de6448 spice harvester broken alice (you) now │
+│ ● 2919a63 spice harvester broken alice (you) now │
╰─────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -48,37 +48,37 @@ $ rad patch
╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● d1f7f86 Start drafting peace treaty alice (you) - 575ed68 +0 -0 now │
+│ ● b97c1ae Start drafting peace treaty alice (you) - 575ed68 +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Both issue and patch COBs can be listed.
```
-$ rad cob list --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue
-9de644864342d7a505eb8d58d1ef20e5bb05de2e
-$ rad cob list --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch
-d1f7f869fde9fac19c1779c4c2e77e8361333f91
+$ rad cob list --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue
+2919a63dae44d4bb9e092a4a9bf10a03a44717f5
+$ rad cob list --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch
+b97c1ae0e332715aceea94ab517e6a014d5d779d
```
We can show the issue COB.
```
-$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object 9de644864342d7a505eb8d58d1ef20e5bb05de2e
-{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":[],"thread":{"comments":{"9de644864342d7a505eb8d58d1ef20e5bb05de2e":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["9de644864342d7a505eb8d58d1ef20e5bb05de2e"]}}
+$ rad cob show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 2919a63dae44d4bb9e092a4a9bf10a03a44717f5
+{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":[],"thread":{"comments":{"2919a63dae44d4bb9e092a4a9bf10a03a44717f5":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["2919a63dae44d4bb9e092a4a9bf10a03a44717f5"]}}
```
We can show the patch COB too.
```
-$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object d1f7f869fde9fac19c1779c4c2e77e8361333f91
-{"title":"Start drafting peace treaty","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"state":{"status":"open"},"target":"delegates","labels":[],"merges":{},"revisions":{"d1f7f869fde9fac19c1779c4c2e77e8361333f91":{"id":"d1f7f869fde9fac19c1779c4c2e77e8361333f91","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"description":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"See details.","embeds":[]}],"base":"f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354","oid":"575ed68c716d6aae81ea6b718fd9ac66a8eae532","discussion":{"comments":{},"timeline":[]},"reviews":{},"timestamp":1671125284000,"resolves":[],"reactions":[]}},"assignees":[],"timeline":["d1f7f869fde9fac19c1779c4c2e77e8361333f91"],"reviews":{}}
+$ rad cob show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch --object b97c1ae0e332715aceea94ab517e6a014d5d779d
+{"title":"Start drafting peace treaty","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"state":{"status":"open"},"target":"delegates","labels":[],"merges":{},"revisions":{"b97c1ae0e332715aceea94ab517e6a014d5d779d":{"id":"b97c1ae0e332715aceea94ab517e6a014d5d779d","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"description":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"See details.","embeds":[]}],"base":"f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354","oid":"575ed68c716d6aae81ea6b718fd9ac66a8eae532","discussion":{"comments":{},"timeline":[]},"reviews":{},"timestamp":1671125284000,"resolves":[],"reactions":[]}},"assignees":[],"timeline":["b97c1ae0e332715aceea94ab517e6a014d5d779d"],"reviews":{}}
```
Finally let's update the issue and see the output of `rad cob show` also changes.
```
-$ rad issue label 9de6448 --add bug --no-announce
-$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object 9de644864342d7a505eb8d58d1ef20e5bb05de2e
-{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":["bug"],"thread":{"comments":{"9de644864342d7a505eb8d58d1ef20e5bb05de2e":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["9de644864342d7a505eb8d58d1ef20e5bb05de2e"]}}
+$ rad issue label 2919a63 --add bug --no-announce
+$ rad cob show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.issue --object 2919a63dae44d4bb9e092a4a9bf10a03a44717f5
+{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":["bug"],"thread":{"comments":{"2919a63dae44d4bb9e092a4a9bf10a03a44717f5":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["2919a63dae44d4bb9e092a4a9bf10a03a44717f5"]}}
```
diff --git a/crates/radicle-cli/examples/rad-cob-update-identity.md b/crates/radicle-cli/examples/rad-cob-update-identity.md
index 40083e8c22..f5fe63c59a 100644
--- a/crates/radicle-cli/examples/rad-cob-update-identity.md
+++ b/crates/radicle-cli/examples/rad-cob-update-identity.md
@@ -1,6 +1,6 @@
Updating the repository identity via `rad cob update` is forbidden:
``` (fail)
-$ rad cob update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.id --object 0656c217f917c3e06234771e9ecae53aba5e173e --message "Danger" /dev/null
+$ rad cob update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.id --object 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 --message "Danger" /dev/null
✗ Error: Update of collaborative objects of type xyz.radicle.id is not supported.
```
\ No newline at end of file
diff --git a/crates/radicle-cli/examples/rad-cob-update.md b/crates/radicle-cli/examples/rad-cob-update.md
index efd6682b8f..027a5c2cd0 100644
--- a/crates/radicle-cli/examples/rad-cob-update.md
+++ b/crates/radicle-cli/examples/rad-cob-update.md
@@ -12,8 +12,8 @@ $ git commit --message "Add README, just for the fun"
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun" HEAD:refs/patches
-✓ Patch 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -28,25 +28,25 @@ $ git commit -v -m "Define the LICENSE"
``` (stderr)
$ git push -f -o patch.message="Add License"
-✓ Patch 89f7afb updated to revision 5d78dd5376453e25df5988ec86951c99cb73742c
-To compare against your previous revision 89f7afb, run:
+✓ Patch b159dae updated to revision 6b68a485a2d9a2e0c4e12c6f353e5d6f52825bf7
+To compare against your previous revision b159dae, run:
git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 03c02af4b12a593d17a06d38fae50a57fc3c339a 8945f6189adf027892c85ac57f7e9341049c2537
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 03c02af..8945f61 changes -> patches/89f7afb1511b976482b21f6b2f39aef7f4fb88a2
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 03c02af..8945f61 changes -> patches/b159dae25efff62aaf6f7d28a449ad5756eff5db
```
Let's look at the patch, to see what it looks like before editing it:
```
-$ rad patch show 89f7afb
+$ rad patch show b159dae
╭──────────────────────────────────────────────────────────╮
│ Title Add README, just for the fun │
-│ Patch 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 │
+│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches changes │
│ Commits ahead 2, behind 0 │
@@ -55,8 +55,8 @@ $ rad patch show 89f7afb
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 89f7afb @ f2de534..03c02af by alice (you) now │
-│ ↑ Revision 5d78dd5 @ f2de534..8945f61 by alice (you) now │
+│ ● Revision b159dae @ f2de534..03c02af by alice (you) now │
+│ ↑ Revision 6b68a48 @ f2de534..8945f61 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -64,14 +64,14 @@ We can change the title and description of the patch itself by using a
multi-line message (using two `--message` options here):
```
-$ rad patch edit 89f7afb --message "Add Metadata" --message "Add README & LICENSE" --no-announce
-$ rad patch show 89f7afb
+$ rad patch edit b159dae --message "Add Metadata" --message "Add README & LICENSE" --no-announce
+$ rad patch show b159dae
╭──────────────────────────────────────────────────────────╮
│ Title Add Metadata │
-│ Patch 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 │
+│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches changes │
│ Commits ahead 2, behind 0 │
@@ -82,15 +82,15 @@ $ rad patch show 89f7afb
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 89f7afb @ f2de534..03c02af by alice (you) now │
-│ ↑ Revision 5d78dd5 @ f2de534..8945f61 by alice (you) now │
+│ ● Revision b159dae @ f2de534..03c02af by alice (you) now │
+│ ↑ Revision 6b68a48 @ f2de534..8945f61 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
We prepare the file `revision-edit.json` which contains one action (thus one line) to be applied.
``` ./revision-edit.jsonl
-{"type": "revision.edit", "description": "Add README and LICENSE", "revision": "89f7afb1511b976482b21f6b2f39aef7f4fb88a2"}
+{"type": "revision.edit", "description": "Add README and LICENSE", "revision": "b159dae25efff62aaf6f7d28a449ad5756eff5db"}
```
We now use `rad cob update` to edit the patch another time, rewriting the description.
@@ -99,12 +99,12 @@ specifying the revision for which the description should be changed, and `descri
specifying the new description.
```
-$ rad cob update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 --message "Edit patch" revision-edit.jsonl
-79b816e92735c49b33d93a31890fdf040b36234c
-$ rad patch show --verbose 89f7afb
+$ rad cob update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch --object b159dae25efff62aaf6f7d28a449ad5756eff5db --message "Edit patch" revision-edit.jsonl
+ddf47fa6faa0ed86b3c9150c6c91bea60b3cd54a
+$ rad patch show --verbose b159dae
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Add Metadata │
-│ Patch 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 │
+│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -118,8 +118,8 @@ $ rad patch show --verbose 89f7afb
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..03c02af4b12a593d17a06d38fae50a57fc3c339a by alice (you) now │
-│ ↑ Revision 5d78dd5376453e25df5988ec86951c99cb73742c with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..8945f6189adf027892c85ac57f7e9341049c2537 by alice (you) now │
+│ ● Revision b159dae25efff62aaf6f7d28a449ad5756eff5db with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..03c02af4b12a593d17a06d38fae50a57fc3c339a by alice (you) now │
+│ ↑ Revision 6b68a485a2d9a2e0c4e12c6f353e5d6f52825bf7 with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..8945f6189adf027892c85ac57f7e9341049c2537 by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -142,7 +142,7 @@ We prepare the file `revision-create.jsonl` which contains one action.
Attempting to create the new revision right away would fail:
``` (fail)
-$ rad cob update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 --message "Create new revision" revision.jsonl
+$ rad cob update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch --object b159dae25efff62aaf6f7d28a449ad5756eff5db --message "Create new revision" revision.jsonl
✗ Error: store: update error: failed to read 'f1339dd109e538c6b3a7fed3e72403e1b4db08c9' from git odb
```
@@ -158,15 +158,15 @@ $ git push rad :tmp/heads/f1339dd109e538c6b3a7fed3e72403e1b4db08c9
Now we can invoke `rad cob update`:
```
-$ rad cob update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 --message "Create new revision" revision.jsonl
-2da9c025a1d14d93c4f2cec60a7878afbc5e2a3c
-$ rad patch show 89f7afb
+$ rad cob update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --type xyz.radicle.patch --object b159dae25efff62aaf6f7d28a449ad5756eff5db --message "Create new revision" revision.jsonl
+a0ae2bb0492984c95cf5a2b927b05b94a8c3f2e7
+$ rad patch show b159dae
╭──────────────────────────────────────────────────────────╮
│ Title Add Metadata │
-│ Patch 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 │
+│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
│ Author alice (you) │
│ Head f1339dd109e538c6b3a7fed3e72403e1b4db08c9 │
-│ Base [.. ] │
+│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
│ Target master │
│ Branches changes │
│ Commits ahead 3, behind 0 │
@@ -178,8 +178,8 @@ $ rad patch show 89f7afb
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 89f7afb @ f2de534..03c02af by alice (you) now │
-│ ↑ Revision 5d78dd5 @ f2de534..8945f61 by alice (you) now │
-│ ↑ Revision 2da9c02 @ f2de534..f1339dd by alice (you) now │
+│ ● Revision b159dae @ f2de534..03c02af by alice (you) now │
+│ ↑ Revision 6b68a48 @ f2de534..8945f61 by alice (you) now │
+│ ↑ Revision a0ae2bb @ f2de534..f1339dd by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-fetch.md b/crates/radicle-cli/examples/rad-fetch.md
index 89a4dd783f..ffbf207f8a 100644
--- a/crates/radicle-cli/examples/rad-fetch.md
+++ b/crates/radicle-cli/examples/rad-fetch.md
@@ -5,12 +5,12 @@ necessary.
Instead, we want to fetch the project from the network into our local
storage. In this scenario, we know that the project is
-`rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji`. In order to fetch it, we first
+`rad:zHb72m63NBufHR7jmZi732BBT6j6`. In order to fetch it, we first
have to update our seeding policy for the project.
```
-$ rad seed rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --no-fetch
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
+$ rad seed rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-fetch
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
```
Now that the project is seeding we can fetch it and we will have it in
@@ -18,8 +18,8 @@ our local storage. Note that the `seed` command can also be told to fetch
by passing the `--fetch` option.
```
-$ rad sync --fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
diff --git a/crates/radicle-cli/examples/rad-fork.md b/crates/radicle-cli/examples/rad-fork.md
index 3fc0ff6379..52be277a3d 100644
--- a/crates/radicle-cli/examples/rad-fork.md
+++ b/crates/radicle-cli/examples/rad-fork.md
@@ -4,12 +4,12 @@ NID. This is demonstrated below where our NID is
`z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk`:
```
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --refs
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --refs
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ └── xyz.radicle.id
- │ └── [...]
+ │ └── [..]
├── heads
│ └── master
└── rad
@@ -22,20 +22,20 @@ To remedy this, we can use the `rad fork` command for the project we
wish to fork:
```
-$ rad fork rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Forked repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+$ rad fork rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Forked repository rad:zHb72m63NBufHR7jmZi732BBT6j6 for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
```
Now, if we `rad inspect` the project's refs again we will see that we
have a copy of the main set of refs:
```
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --refs
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --refs
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ └── xyz.radicle.id
- │ └── [...]
+ │ └── [..]
├── heads
│ └── master
└── rad
diff --git a/crates/radicle-cli/examples/rad-help.md b/crates/radicle-cli/examples/rad-help.md
index c25d2557bf..c034dc36cb 100644
--- a/crates/radicle-cli/examples/rad-help.md
+++ b/crates/radicle-cli/examples/rad-help.md
@@ -9,7 +9,7 @@ Do you have feedback?
- Mail <feedback@radicle.dev>
(Messages are automatically posted to the public #feedback channel on Zulip.)
-Usage: rad[EXE] <COMMAND>
+Usage: rad <COMMAND>
Commands:
auth Manage identities and profiles
diff --git a/crates/radicle-cli/examples/rad-id-collaboration.md b/crates/radicle-cli/examples/rad-id-collaboration.md
index f88738a65c..0258c67b85 100644
--- a/crates/radicle-cli/examples/rad-id-collaboration.md
+++ b/crates/radicle-cli/examples/rad-id-collaboration.md
@@ -7,10 +7,10 @@ First, we'll start off with Alice adding Bob. It's necessary for Bob
to have a fork of the project and Alice must be aware of the fork:
``` ~bob
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --scope followed
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkuPZ…xEuaPUp@[..]..
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkvVv…Z1Ct4tD@[..]..
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSL…StBU8Vi
@@ -30,8 +30,8 @@ to the default branch, she must set the `threshold` to `2` when adding
Bob as a delegate:
``` ~alice (fails)
-$ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
-✗ Error: failed to verify delegates for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
+✗ Error: failed to verify delegates for rad:zHb72m63NBufHR7jmZi732BBT6j6
✗ Error: a threshold of 2 delegates cannot be met, found 1 delegate(s) and the following delegates are missing [did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk]
✗ Hint: run `rad follow did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk` to follow this missing peer
✗ Hint: run `rad sync -f` to attempt to fetch the newly followed peers
@@ -50,15 +50,15 @@ So, instead Alice needs to first follow Bob and fetch his references:
$ rad follow did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --alias bob
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
$ rad sync
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkuPZ…xEuaPUp@[..]..
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 1 node(s)
-$ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
-069e7d58faa9a7473d27f5510d676af33282796f
+$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
+ff50694a35d2a891413cfd7f9a4b855057c3f1ab
$ rad sync
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkuPZ…xEuaPUp@[..]..
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 3 node(s)
```
@@ -67,8 +67,8 @@ Bob can confirm that he was made a delegate by fetching the update:
``` ~bob
$ rad sync
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkuPZ…xEuaPUp@[..]..
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 1 node(s)
$ rad inspect --delegates
@@ -81,10 +81,10 @@ project. For Bob to propose Eve, similar steps need to happen as
between Alice and Bob. Eve first needs to set up a fork:
``` ~eve
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --scope followed
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkuPZ…xEuaPUp@[..]..
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkvVv…Z1Ct4tD@[..]..
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSL…StBU8Vi
@@ -104,11 +104,11 @@ $ git push rad master
Bob then adds Eve as a delegate:
``` ~bob
-$ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add Eve" --description "" --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --no-confirm -q
-3cd3c7f9900de0fcb19705856a7cc339a38fb0b3
+$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Eve" --description "" --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --no-confirm -q
+b22496526a7f7ef23696c4efb105b6ae68e61fac
$ rad sync
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkvVv…Z1Ct4tD@[..]..
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 3 node(s)
```
@@ -122,27 +122,27 @@ the change to meet a quorum of votes (`votes >= (delegates / 2) + 1`):
``` ~alice
$ rad sync
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkvVv…Z1Ct4tD@[..]..
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
✓ Fetched repository from 2 seed(s)
✓ Nothing to announce, already in sync with 3 node(s) (see `rad sync status`)
$ rad id list
╭────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Status Created │
├────────────────────────────────────────────────────────────────────────────────┤
-│ ● 3cd3c7f Add Eve bob z6Mkt67…v4N1tRk active now │
-│ ● 069e7d5 Add Bob alice (you) accepted now │
-│ ● 0656c21 Initial revision alice (you) accepted now │
+│ ● ff50694 Add Eve bob z6Mkt67…v4N1tRk active now │
+│ ● ff50694 Add Bob alice (you) accepted now │
+│ ● 2cfded2 Initial revision alice (you) accepted now │
╰────────────────────────────────────────────────────────────────────────────────╯
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --sigrefs
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --sigrefs
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 6acd3b370839318d96dbfff43948bab2bcdd3681
z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk c40018821dc1b41cad75e91e0c9d00827e815324
-$ rad id accept 3cd3c7f
-✓ Revision 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 accepted
+$ rad id accept ff50694
+✓ Revision b22496526a7f7ef23696c4efb105b6ae68e61fac accepted
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Eve │
-│ Revision 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 │
-│ Blob 74581605d1f75396c331487a10ca61c4815ed685 │
+│ Revision b22496526a7f7ef23696c4efb105b6ae68e61fac │
+│ Blob 2f8b59ccbe9fc8ccd5b1a3019eed86b44f57d614 │
│ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
│ State accepted │
│ Quorum yes │
@@ -157,11 +157,11 @@ since she has become a delegate:
``` ~alice
$ rad sync --timeout 3s
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkvVv…Z1Ct4tD@[..]..
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 3 node(s)
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --sigrefs
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --sigrefs
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 1f716870f890be0c13fdd0af9f527af849fec792 parent
z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk c40018821dc1b41cad75e91e0c9d00827e815324 parent
z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z 95cd447c57de8d232c6154f5dba0451aa593520e parent
@@ -173,8 +173,8 @@ see that both seeds are `synced`:
``` ~eve
$ rad sync
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkvVv…Z1Ct4tD@[..]..
-✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MkuPZ…xEuaPUp@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkvVv…Z1Ct4tD@[..]..
+✓ Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from z6MkuPZ…xEuaPUp@[..]..
✓ Fetched repository from 2 seed(s)
✓ Synced with 3 node(s)
$ rad sync status
diff --git a/crates/radicle-cli/examples/rad-id-conflict.md b/crates/radicle-cli/examples/rad-id-conflict.md
index 94c06057d9..d22c89a247 100644
--- a/crates/radicle-cli/examples/rad-id-conflict.md
+++ b/crates/radicle-cli/examples/rad-id-conflict.md
@@ -2,12 +2,12 @@ First let's add Bob as a delegate, and sync the changes to Bob:
``` ~alice
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --threshold 2 -q
-0ca42d376bd566631083c8913cf86bec722da392
+903862f149c03e7ad17be93abd12d4ad04787802
```
``` ~bob
$ cd heartwood
-$ rad sync --fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -17,29 +17,29 @@ time:
``` ~alice
$ rad id update --title "Edit project name" --description "" --payload "xyz.radicle.project" "name" '"heart"' -q
-12d7300d1bbba84e4e5760c8c61999bf5fefb81a
+05c576e08c21b0fdc9745a4a5f97fbb5639a0bd6
```
``` ~bob
$ rad id update --title "Edit project name" --description "" --payload "xyz.radicle.project" "name" '"wood"' -q
-89b2623e7f2ddf5748661b15b9975ab0b4ee17ab
+6bd104e94b20d08d7020a4f425d3c5c2f1cf8d43
```
When Alice syncs with Bob, she notices the problem: there are two active
revisions.
``` ~alice
-$ rad sync --fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ rad id list
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Status Created Parent │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 89b2623 Edit project name bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk active now 0ca42d3 │
-│ ● 12d7300 Edit project name alice (you) active now 0ca42d3 │
-│ ● 0ca42d3 Add Bob alice (you) accepted now 0656c21 │
-│ ● 0656c21 Initial revision alice (you) accepted now none │
+│ ● 6bd104e Edit project name bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk active now 903862f │
+│ ● 05c576e Edit project name alice (you) active now 903862f │
+│ ● 903862f Add Bob alice (you) accepted now 2cfded2 │
+│ ● 2cfded2 Initial revision alice (you) accepted now none │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -47,15 +47,15 @@ This isn't a problem as long as we don't try to accept both. Alice decides to
go with Bob's proposal, so she redacts her own first and then accepts his:
``` ~alice
-$ rad id redact 12d7300 -q
-$ rad id accept 89b2623 -q
+$ rad id redact 05c576e -q
+$ rad id accept 6bd104e -q
$ rad id list
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Status Created Parent │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 89b2623 Edit project name bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk accepted now 0ca42d3 │
-│ ● 0ca42d3 Add Bob alice (you) accepted now 0656c21 │
-│ ● 0656c21 Initial revision alice (you) accepted now none │
+│ ● 6bd104e Edit project name bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk accepted now 903862f │
+│ ● 903862f Add Bob alice (you) accepted now 2cfded2 │
+│ ● 2cfded2 Initial revision alice (you) accepted now none │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -63,12 +63,12 @@ Alice's revision was redacted and is no longer visible. Bob syncs and sees
that the conflict is resolved:
``` ~bob
-$ rad sync --fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
``` ~bob (fail)
-$ rad id show 12d7300
-✗ Error: revision `12d7300d1bbba84e4e5760c8c61999bf5fefb81a` not found
+$ rad id show 05c576e
+✗ Error: revision `05c576e08c21b0fdc9745a4a5f97fbb5639a0bd6` not found
```
diff --git a/crates/radicle-cli/examples/rad-id-multi-delegate.md b/crates/radicle-cli/examples/rad-id-multi-delegate.md
index 0c5a532f87..4135068adb 100644
--- a/crates/radicle-cli/examples/rad-id-multi-delegate.md
+++ b/crates/radicle-cli/examples/rad-id-multi-delegate.md
@@ -1,39 +1,39 @@
``` ~alice
-$ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
-069e7d58faa9a7473d27f5510d676af33282796f
-$ rad inspect --sigrefs rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q
+ff50694a35d2a891413cfd7f9a4b855057c3f1ab
+$ rad inspect --sigrefs rad:zHb72m63NBufHR7jmZi732BBT6j6
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [..] parent
z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [..] parent
-z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba parent
+z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z 9a07b433d41a26efc4003cd3e362ac500905d370 parent
```
``` ~bob
-$ rad watch --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z -r 'refs/rad/sigrefs' -t c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba -i 500 --timeout 5000ms
-$ rad sync --fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+$ rad watch --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z -r 'refs/rad/sigrefs' -t 9a07b433d41a26efc4003cd3e362ac500905d370 -i 500 --timeout 5000ms
+$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-$ rad id --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad id --repo rad:zHb72m63NBufHR7jmZi732BBT6j6
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Status Created Parent │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 069e7d5 Add Bob alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi accepted now 0656c21 │
-│ ● 0656c21 Initial revision alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi accepted now none │
+│ ● ff50694 Add Bob alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi accepted now 2cfded2 │
+│ ● 2cfded2 Initial revision alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi accepted now none │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --sigrefs
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --sigrefs
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [..] parent
z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [..] root
z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z [..] parent
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --delegates
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --delegates
did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-$ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add Eve" --description "" --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --no-confirm
-✓ Identity revision 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 created
+$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add Eve" --description "" --delegate did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z --no-confirm
+✓ Identity revision b22496526a7f7ef23696c4efb105b6ae68e61fac created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Eve │
-│ Revision 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 │
-│ Parent 069e7d58faa9a7473d27f5510d676af33282796f │
-│ Blob 74581605d1f75396c331487a10ca61c4815ed685 │
+│ Revision b22496526a7f7ef23696c4efb105b6ae68e61fac │
+│ Parent ff50694a35d2a891413cfd7f9a4b855057c3f1ab │
+│ Blob 2f8b59ccbe9fc8ccd5b1a3019eed86b44f57d614 │
│ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
│ State active │
│ Quorum no │
@@ -42,11 +42,21 @@ $ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add Eve" --des
│ ? did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,14 +1,15 @@
+@@ -1,23 +1,24 @@
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 2
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
@@ -56,27 +66,26 @@ $ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add Eve" --des
- "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
+ "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk",
+ "did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z"
- ],
- "threshold": 2
+ ]
}
```
``` ~alice
-$ rad sync --fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+$ rad sync --fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --delegates
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --delegates
did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-$ rad id accept 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --no-confirm
-✓ Revision 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 accepted
+$ rad id accept b22496526a7f7ef23696c4efb105b6ae68e61fac --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --no-confirm
+✓ Revision b22496526a7f7ef23696c4efb105b6ae68e61fac accepted
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Eve │
-│ Revision 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 │
-│ Parent 069e7d58faa9a7473d27f5510d676af33282796f │
-│ Blob 74581605d1f75396c331487a10ca61c4815ed685 │
+│ Revision b22496526a7f7ef23696c4efb105b6ae68e61fac │
+│ Parent ff50694a35d2a891413cfd7f9a4b855057c3f1ab │
+│ Blob 2f8b59ccbe9fc8ccd5b1a3019eed86b44f57d614 │
│ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │
│ State accepted │
│ Quorum yes │
@@ -84,15 +93,15 @@ $ rad id accept 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 --repo rad:z42hL2jL4XNk
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
│ ✓ did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk bob │
╰────────────────────────────────────────────────────────────────────────╯
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --delegates
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6 --delegates
did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (eve)
```
``` ~alice
-$ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Make private" --description "" --visibility private --no-confirm -q
-e6bf10593b78384eb2b281cbb18a605668a6d1f7
+$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Make private" --description "" --visibility private --no-confirm -q
+60aeac05f3a240c67ca069b59ab2641466aa2999
```
We can list all revisions:
@@ -102,35 +111,35 @@ $ rad id list
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Status Created Parent │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● e6bf105 Make private alice (you) active now 3cd3c7f │
-│ ● 3cd3c7f Add Eve bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk accepted now 069e7d5 │
-│ ● 069e7d5 Add Bob alice (you) accepted now 0656c21 │
-│ ● 0656c21 Initial revision alice (you) accepted now none │
+│ ● 60aeac0 Make private alice (you) active now b224965 │
+│ ● b224965 Add Eve bob z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk accepted now ff50694 │
+│ ● ff50694 Add Bob alice (you) accepted now 2cfded2 │
+│ ● 2cfded2 Initial revision alice (you) accepted now none │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Despite being a delegate, Bob can't edit or redact Alice's revision:
``` ~bob (fail)
-$ rad id redact e6bf10593b78384eb2b281cbb18a605668a6d1f7
+$ rad id redact 60aeac05f3a240c67ca069b59ab2641466aa2999
[..]
```
``` ~bob (fail)
-$ rad id edit --title "Boo!" --description "Boo!" e6bf10593b78384eb2b281cbb18a605668a6d1f7
+$ rad id edit --title "Boo!" --description "Boo!" 60aeac05f3a240c67ca069b59ab2641466aa2999
[..]
```
Alice can edit:
``` ~alice
-$ rad id edit --title "Make private" --description "Privacy is cool." e6bf10593b78384eb2b281cbb18a605668a6d1f7
-✓ Revision e6bf10593b78384eb2b281cbb18a605668a6d1f7 edited
-$ rad id show e6bf10593b78384eb2b281cbb18a605668a6d1f7
+$ rad id edit --title "Make private" --description "Privacy is cool." 60aeac05f3a240c67ca069b59ab2641466aa2999
+✓ Revision 60aeac05f3a240c67ca069b59ab2641466aa2999 edited
+$ rad id show 60aeac05f3a240c67ca069b59ab2641466aa2999
╭────────────────────────────────────────────────────────────────────────╮
│ Title Make private │
-│ Revision e6bf10593b78384eb2b281cbb18a605668a6d1f7 │
-│ Parent 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 │
-│ Blob c533865b2846ca6c5b4436ec6872257293380c3b │
+│ Revision 60aeac05f3a240c67ca069b59ab2641466aa2999 │
+│ Parent b22496526a7f7ef23696c4efb105b6ae68e61fac │
+│ Blob 4d0e2ea9fe24ad01b14fbb1c0e574d996f66ce78 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State active │
│ Quorum no │
@@ -142,11 +151,21 @@ $ rad id show e6bf10593b78384eb2b281cbb18a605668a6d1f7
│ ? did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z eve │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,15 +1,18 @@
+@@ -1,24 +1,27 @@
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 2
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
@@ -155,9 +174,8 @@ $ rad id show e6bf10593b78384eb2b281cbb18a605668a6d1f7
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
"did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk",
"did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z"
- ],
-- "threshold": 2
-+ "threshold": 2,
+- ]
++ ],
+ "visibility": {
+ "type": "private"
+ }
@@ -167,23 +185,23 @@ $ rad id show e6bf10593b78384eb2b281cbb18a605668a6d1f7
And she can redact her revision:
``` ~alice
-$ rad id redact e6bf10593b78384eb2b281cbb18a605668a6d1f7
-✓ Revision e6bf10593b78384eb2b281cbb18a605668a6d1f7 redacted
+$ rad id redact 60aeac05f3a240c67ca069b59ab2641466aa2999
+✓ Revision 60aeac05f3a240c67ca069b59ab2641466aa2999 redacted
```
``` ~alice (fail)
-$ rad id show e6bf10593b78384eb2b281cbb18a605668a6d1f7
-✗ Error: revision `e6bf10593b78384eb2b281cbb18a605668a6d1f7` not found
+$ rad id show 60aeac05f3a240c67ca069b59ab2641466aa2999
+✗ Error: revision `60aeac05f3a240c67ca069b59ab2641466aa2999` not found
```
Finally, Alice can also propose to remove Bob:
``` ~alice
-$ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Remove Bob" --description "" --rescind did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm
-✓ Identity revision 8ba242a80bc1181f41f9ea7a19286038c7948994 created
+$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Remove Bob" --description "" --rescind did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm
+✓ Identity revision f4e01d3c88f7f65b2935fca675ae5a3898603ce5 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Remove Bob │
-│ Revision 8ba242a80bc1181f41f9ea7a19286038c7948994 │
-│ Parent 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 │
-│ Blob 254d62de237117e7d7b9ceff85c47f5e3b610c1e │
+│ Revision f4e01d3c88f7f65b2935fca675ae5a3898603ce5 │
+│ Parent b22496526a7f7ef23696c4efb105b6ae68e61fac │
+│ Blob 650f027fe754d25e4c88c7955f334fbf7b689036 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State active │
│ Quorum no │
@@ -193,11 +211,21 @@ $ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Remove Bob" --
│ ? did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z eve │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,15 +1,14 @@
+@@ -1,24 +1,23 @@
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 2
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
@@ -206,7 +234,6 @@ $ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Remove Bob" --
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
- "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk",
"did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z"
- ],
- "threshold": 2
+ ]
}
```
diff --git a/crates/radicle-cli/examples/rad-id-private.md b/crates/radicle-cli/examples/rad-id-private.md
index 711ee25e84..b3f6e01400 100644
--- a/crates/radicle-cli/examples/rad-id-private.md
+++ b/crates/radicle-cli/examples/rad-id-private.md
@@ -10,8 +10,18 @@ $ rad id update --title "Allow Bob & Eve" --allow did:key:z6Mkt67GdsW7715MEfRuP4
$ rad inspect --identity
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "radicle heartwood protocol & stack",
"name": "heartwood"
}
@@ -19,7 +29,6 @@ $ rad inspect --identity
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
],
- "threshold": 1,
"visibility": {
"type": "private",
"allow": [
@@ -38,8 +47,18 @@ $ rad id update --title "Remove allow list" --disallow did:key:z6Mkt67GdsW7715ME
$ rad inspect --identity
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "radicle heartwood protocol & stack",
"name": "heartwood"
}
@@ -47,7 +66,6 @@ $ rad inspect --identity
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
],
- "threshold": 1,
"visibility": {
"type": "private"
}
diff --git a/crates/radicle-cli/examples/rad-id-threshold-soft-fork.md b/crates/radicle-cli/examples/rad-id-threshold-soft-fork.md
index 47a9682b10..7a8df72c30 100644
--- a/crates/radicle-cli/examples/rad-id-threshold-soft-fork.md
+++ b/crates/radicle-cli/examples/rad-id-threshold-soft-fork.md
@@ -3,10 +3,10 @@ without having pushed the canonical default branch. For example, Bob can create
an issue in the repository:
``` ~bob
-$ rad issue open --title "Add Bob as a delegate" --description "We agreed to add me as a delegate, so I am creating an issue to track that work" --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad issue open --title "Add Bob as a delegate" --description "We agreed to add me as a delegate, so I am creating an issue to track that work" --repo rad:zHb72m63NBufHR7jmZi732BBT6j6
╭──────────────────────────────────────────────────────────────╮
│ Title Add Bob as a delegate │
-│ Issue f12d512c51d30429f7916db038ae0360e2e938c2 │
+│ Issue d345ded51b6fd9f8ee3f6a870fb64928d8b0c33d │
│ Author bob (you) │
│ Status open │
│ │
@@ -24,7 +24,7 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ └── xyz.radicle.id
- │ └── 0656c217f917c3e06234771e9ecae53aba5e173e
+ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
├── heads
│ └── master
└── rad
@@ -35,7 +35,7 @@ z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
└── refs
├── cobs
│ └── xyz.radicle.issue
- │ └── f12d512c51d30429f7916db038ae0360e2e938c2
+ │ └── d345ded51b6fd9f8ee3f6a870fb64928d8b0c33d
└── rad
├── root
└── sigrefs
@@ -46,5 +46,5 @@ as a delegate, since a threshold of 1 can still be reached:
``` ~alice
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk -q
-7be665f9fccba97abb21b2fa85a6fd3181c72858
+b9990e59e97ae8dae5a4808c16542b0a2978362e
```
diff --git a/crates/radicle-cli/examples/rad-id-threshold.md b/crates/radicle-cli/examples/rad-id-threshold.md
index 8ae1db0605..78b222286b 100644
--- a/crates/radicle-cli/examples/rad-id-threshold.md
+++ b/crates/radicle-cli/examples/rad-id-threshold.md
@@ -7,8 +7,8 @@ can be updated.
``` ~alice (fail)
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --threshold 2
-✗ Error: failed to verify delegates for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✗ Error: the threshold of 2 delegates cannot be met..
+✗ Error: failed to verify delegates for rad:zHb72m63NBufHR7jmZi732BBT6j6
+✗ Error: the required threshold of delegates cannot be met..
✗ Error: the delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk is missing
✗ Hint: run `rad follow did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk` to follow this missing peer
✗ Error: fatal: refusing to update identity document
@@ -18,12 +18,12 @@ Instead, Alice can simply keep the `threshold` as `1` and still add Bob as a del
``` ~alice
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-✓ Identity revision 7be665f9fccba97abb21b2fa85a6fd3181c72858 created
+✓ Identity revision b9990e59e97ae8dae5a4808c16542b0a2978362e created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Bob │
-│ Revision 7be665f9fccba97abb21b2fa85a6fd3181c72858 │
-│ Parent 0656c217f917c3e06234771e9ecae53aba5e173e │
-│ Blob 93d3009787e5d8a481dffc4dd248ea46af592466 │
+│ Revision b9990e59e97ae8dae5a4808c16542b0a2978362e │
+│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
+│ Blob 7b67070adb4d1f3172c4d81787102eadf06abadd │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -33,11 +33,21 @@ $ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delega
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,13 +1,14 @@
+@@ -1,22 +1,23 @@
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
@@ -46,8 +56,7 @@ $ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delega
- "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
+ "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
+ "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
- ],
- "threshold": 1
+ ]
}
```
@@ -66,7 +75,7 @@ $ git commit -v -m "Define power requirements"
``` ~alice (stderr) RAD_SOCKET=/dev/null
$ git push rad master
✓ Canonical reference refs/heads/master updated to target commit 3e674d1a1df90807e934f9ae5da2591dd6848a33
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..3e674d1 master -> master
```
@@ -87,8 +96,8 @@ $ git commit -v -m "Add README file"
``` ~alice (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:refs/patches
-✓ Patch b09b2aa0ee055671c811e9ad4ba73eed211ebaa3 opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 65958b93b63118dba40d520a3bac54e1ec970efd opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -96,8 +105,8 @@ Any other seeds can also still fetch changes from Alice without any
errors:
``` ~seed
-$ rad sync rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+$ rad sync rad:zHb72m63NBufHR7jmZi732BBT6j6 -f
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -111,8 +120,18 @@ The identity has the new delegate, while the `threshold` is still `1`
$ rad inspect --identity
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
@@ -120,8 +139,7 @@ $ rad inspect --identity
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
"did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
- ],
- "threshold": 1
+ ]
}
```
@@ -134,13 +152,13 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ ├── xyz.radicle.id
- │ │ └── 0656c217f917c3e06234771e9ecae53aba5e173e
+ │ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
│ └── xyz.radicle.patch
- │ └── b09b2aa0ee055671c811e9ad4ba73eed211ebaa3
+ │ └── 65958b93b63118dba40d520a3bac54e1ec970efd
├── heads
│ ├── master
│ └── patches
- │ └── b09b2aa0ee055671c811e9ad4ba73eed211ebaa3
+ │ └── 65958b93b63118dba40d520a3bac54e1ec970efd
└── rad
├── id
├── root
@@ -152,18 +170,18 @@ Similarly, she still does not have Bob's `rad/sigrefs`:
``` ~alice
$ rad inspect --sigrefs
-z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi e5c200775dc6da38306f62c995df67a1ab1bf62d parent
+z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 7eb4ed893f72509b64171b25b7766016512d6eaf parent
```
And she can still list the project, without any worries:
``` ~alice
$ rad ls
-╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji public 3e674d1 Radicle Heartwood Protocol & Stack │
-╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public 3e674d1 Radicle Heartwood Protocol & Stack │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Once Bob clones the repository and creates a fork, i.e. creates a
@@ -171,9 +189,9 @@ branch to `refs/heads/master` for this project, she can then use `rad
sync` and fetch his references:
``` ~bob
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -190,16 +208,16 @@ Run `cd ./heartwood` to go to the repository directory.
``` ~bob
$ cd heartwood
$ rad fork
-✓ Forked repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+✓ Forked repository rad:zHb72m63NBufHR7jmZi732BBT6j6 for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
```
``` ~alice
$ rad sync -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ rad inspect --sigrefs
-z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi e5c200775dc6da38306f62c995df67a1ab1bf62d parent
-z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk dace6fe948548168a2bb687718949d9b5d9076ee parent
+z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 7eb4ed893f72509b64171b25b7766016512d6eaf parent
+z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk ee48e12a9de5bb59896d0b6536cc29e91ecb4f58 parent
```
diff --git a/crates/radicle-cli/examples/rad-id-unauthorized-delegate.md b/crates/radicle-cli/examples/rad-id-unauthorized-delegate.md
index b0dd76f440..a3a84da1be 100644
--- a/crates/radicle-cli/examples/rad-id-unauthorized-delegate.md
+++ b/crates/radicle-cli/examples/rad-id-unauthorized-delegate.md
@@ -1,7 +1,7 @@
-Alice has created a new repository `rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji` with only herself as the sole delegate. After Bob has cloned it, let's ensure he can't add himself as a delegate too:
+Alice has created a new repository `rad:zHb72m63NBufHR7jmZi732BBT6j6` with only herself as the sole delegate. After Bob has cloned it, let's ensure he can't add himself as a delegate too:
``` ~bob (fail)
-$ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add myself!" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm
+$ rad id update --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --title "Add myself!" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm
✗ Error: did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk is not a delegate, and only delegates are allowed to create a revision
✗ Hint: bob (you) is attempting to modify the identity document but is not a delegate!
```
diff --git a/crates/radicle-cli/examples/rad-id-unknown-field.md b/crates/radicle-cli/examples/rad-id-unknown-field.md
index 31dea03af8..150986aa25 100644
--- a/crates/radicle-cli/examples/rad-id-unknown-field.md
+++ b/crates/radicle-cli/examples/rad-id-unknown-field.md
@@ -3,12 +3,12 @@ added. Here we will add an emoji alias for the heartwood project:
```
$ rad id update --title "Add emoji alias" --description "Adding alias field" --payload xyz.radicle.project alias '"❤️🪵"'
-✓ Identity revision 05100d3f0a73b9373681677158615a53ba51940e created
+✓ Identity revision 0f159671d1d629bea5d81c61205f3328165d2ea9 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add emoji alias │
-│ Revision 05100d3f0a73b9373681677158615a53ba51940e │
-│ Parent 0656c217f917c3e06234771e9ecae53aba5e173e │
-│ Blob a0f421c928dcfc6eca129fc2ea1f50877de7dc20 │
+│ Revision 0f159671d1d629bea5d81c61205f3328165d2ea9 │
+│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
+│ Blob a3a9a20ee837a01c908b5905527601c33f8dc666 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -18,20 +18,29 @@ $ rad id update --title "Add emoji alias" --description "Adding alias field" --p
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,13 +1,14 @@
+@@ -1,22 +1,23 @@
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
+ "alias": "❤️🪵",
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
},
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
- ],
- "threshold": 1
+ ]
}
```
@@ -40,9 +49,9 @@ attempt to deserialize the payload:
```
$ rad ls
-╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji public f2de534 Radicle Heartwood Protocol & Stack │
-╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-id-update-delete-field.md b/crates/radicle-cli/examples/rad-id-update-delete-field.md
index 968bb33b56..0ab244b8bb 100644
--- a/crates/radicle-cli/examples/rad-id-update-delete-field.md
+++ b/crates/radicle-cli/examples/rad-id-update-delete-field.md
@@ -2,12 +2,12 @@ Let's add a payload field and then delete it.
```
$ rad id update --title "Add field" --description "Add a new 'web' field" --payload xyz.radicle.project web '"https://acme.example"'
-✓ Identity revision a8a9fee6c4f83578ab132d375f1da0c81282bef3 created
+✓ Identity revision ebdd5c4c45fea5f4e2ba92542582e3cacfe48092 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add field │
-│ Revision a8a9fee6c4f83578ab132d375f1da0c81282bef3 │
-│ Parent 0656c217f917c3e06234771e9ecae53aba5e173e │
-│ Blob fbe268d13e60f1f3a1972e0ccd592f3cdecf08b5 │
+│ Revision ebdd5c4c45fea5f4e2ba92542582e3cacfe48092 │
+│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
+│ Blob 065022285f87479e7192a65794f26e9fe20b1d36 │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -17,11 +17,21 @@ $ rad id update --title "Add field" --description "Add a new 'web' field" --payl
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,13 +1,14 @@
+@@ -1,22 +1,23 @@
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
- "name": "heartwood"
+ "name": "heartwood",
@@ -30,8 +40,7 @@ $ rad id update --title "Add field" --description "Add a new 'web' field" --payl
},
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
- ],
- "threshold": 1
+ ]
}
```
@@ -39,12 +48,12 @@ Now let's delete it by setting it to `null`.
```
$ rad id update --title "Delete field" --description "Delete 'web'" --payload xyz.radicle.project web null
-✓ Identity revision d373c35876833105f8aafed8b610660b5737cd67 created
+✓ Identity revision 0af91f0ab9a752f4c0a2b681281450e69488e7a4 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Delete field │
-│ Revision d373c35876833105f8aafed8b610660b5737cd67 │
-│ Parent a8a9fee6c4f83578ab132d375f1da0c81282bef3 │
-│ Blob d96f425412c9f8ad5d9a9a05c9831d0728e2338d │
+│ Revision 0af91f0ab9a752f4c0a2b681281450e69488e7a4 │
+│ Parent ebdd5c4c45fea5f4e2ba92542582e3cacfe48092 │
+│ Blob 14875c28ade7241b3bda8c59be34f8f9f289196d │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -54,11 +63,21 @@ $ rad id update --title "Delete field" --description "Delete 'web'" --payload xy
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,14 +1,13 @@
+@@ -1,23 +1,22 @@
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
- "name": "heartwood",
- "web": "https://acme.example"
@@ -67,14 +86,13 @@ $ rad id update --title "Delete field" --description "Delete 'web'" --payload xy
},
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
- ],
- "threshold": 1
+ ]
}
```
Note that we cannot delete mandatory fields:
``` (fails)
-$ rad id update --title "Delete default branch" --payload xyz.radicle.project defaultBranch null
-✗ Error: failed to verify `xyz.radicle.project`, missing field `defaultBranch`
+$ rad id update --title "Delete name" --payload xyz.radicle.project name null
+✗ Error: failed to verify `xyz.radicle.project`, missing field `name`
```
diff --git a/crates/radicle-cli/examples/rad-id.md b/crates/radicle-cli/examples/rad-id.md
index 6fcd3d5f00..93a6225536 100644
--- a/crates/radicle-cli/examples/rad-id.md
+++ b/crates/radicle-cli/examples/rad-id.md
@@ -15,12 +15,12 @@ threshold to `2`.
```
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --threshold 2
-✓ Identity revision 0ca42d376bd566631083c8913cf86bec722da392 created
+✓ Identity revision 903862f149c03e7ad17be93abd12d4ad04787802 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Bob │
-│ Revision 0ca42d376bd566631083c8913cf86bec722da392 │
-│ Parent 0656c217f917c3e06234771e9ecae53aba5e173e │
-│ Blob 053541ba7b90534b35dd8718e0ceaa408979b02b │
+│ Revision 903862f149c03e7ad17be93abd12d4ad04787802 │
+│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
+│ Blob 3637b2bc6d4fb703a77af02b57f0bc8253edc91c │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -30,11 +30,22 @@ $ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delega
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,13 +1,14 @@
+@@ -1,22 +1,23 @@
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+- "threshold": 1
++ "threshold": 2
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
@@ -43,9 +54,7 @@ $ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delega
- "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
+ "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
+ "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
- ],
-- "threshold": 1
-+ "threshold": 2
+ ]
}
```
@@ -78,8 +87,18 @@ can verify that by listing the current identity document:
$ rad inspect --identity
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 2
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
@@ -87,16 +106,15 @@ $ rad inspect --identity
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
"did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
- ],
- "threshold": 2
+ ]
}
```
We can also look at the document's COB directly:
```
-$ rad cob log --object 0656c217f917c3e06234771e9ecae53aba5e173e --type xyz.radicle.id --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-commit 0ca42d376bd566631083c8913cf86bec722da392
-parent 0656c217f917c3e06234771e9ecae53aba5e173e
+$ rad cob log --object 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 --type xyz.radicle.id --repo rad:zHb72m63NBufHR7jmZi732BBT6j6
+commit 903862f149c03e7ad17be93abd12d4ad04787802
+parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
@@ -104,21 +122,21 @@ date Thu, 15 Dec 2022 17:28:04 +0000
"type": "revision",
"title": "Add Bob",
"description": "Add Bob as a delegate",
- "blob": "053541ba7b90534b35dd8718e0ceaa408979b02b",
- "parent": "0656c217f917c3e06234771e9ecae53aba5e173e",
- "signature": "z3AyzixN2eWLtRfQWowtBXwWyRH3iJ8oJ25W6KFYFw5ANLntbzfavge15muNU6AVAUkxSxQvgg9yh2gupbUecavQY"
+ "blob": "3637b2bc6d4fb703a77af02b57f0bc8253edc91c",
+ "parent": "2cfded2c0f8d65f55cfdb960e648cd2c2fee9240",
+ "signature": "zkL1kPPLC9EUmyusxTJ7XK6XCGcuiY1H57KHqkQbYyFHzUmZZ3fiQxYDjodbNooSczb9sS1WfCM91j3yusMFYK4Z"
}
-commit 0656c217f917c3e06234771e9ecae53aba5e173e
+commit 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
date Thu, 15 Dec 2022 17:28:04 +0000
{
"type": "revision",
"title": "Initial revision",
- "blob": "d96f425412c9f8ad5d9a9a05c9831d0728e2338d",
+ "blob": "14875c28ade7241b3bda8c59be34f8f9f289196d",
"parent": null,
- "signature": "z5nGqUvrmfiSyLjNCHWTWYvVMcPUZcvo9TxPKzEKXYBdSgUzbrqf1cYsmpGgbQvYunnsrLSsubEmxZaRdKM4quqQR"
+ "signature": "z3rkppeThL3SQB4Dr3zjtzGmicfjfjmUFL6ZV1A2vJKrBpjrBBJEn6XvEWhU3nzjbd9EFTtjqt8y2DiVKVEF1Cy2r"
}
```
@@ -126,12 +144,12 @@ date Thu, 15 Dec 2022 17:28:04 +0000
We can use `rad id show` to show the changes of an accepted update:
```
-$ rad id show 0ca42d376bd566631083c8913cf86bec722da392
+$ rad id show 903862f149c03e7ad17be93abd12d4ad04787802
╭────────────────────────────────────────────────────────────────────────╮
│ Title Add Bob │
-│ Revision 0ca42d376bd566631083c8913cf86bec722da392 │
-│ Parent 0656c217f917c3e06234771e9ecae53aba5e173e │
-│ Blob 053541ba7b90534b35dd8718e0ceaa408979b02b │
+│ Revision 903862f149c03e7ad17be93abd12d4ad04787802 │
+│ Parent 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 │
+│ Blob 3637b2bc6d4fb703a77af02b57f0bc8253edc91c │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -141,11 +159,22 @@ $ rad id show 0ca42d376bd566631083c8913cf86bec722da392
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,13 +1,14 @@
+@@ -1,22 +1,23 @@
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+- "threshold": 1
++ "threshold": 2
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
@@ -154,9 +183,7 @@ $ rad id show 0ca42d376bd566631083c8913cf86bec722da392
- "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
+ "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
+ "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
- ],
-- "threshold": 1
-+ "threshold": 2
+ ]
}
```
@@ -164,15 +191,15 @@ Note that once a revision is accepted, it can't be edited, redacted or otherwise
acted upon:
``` (fail)
-$ rad id redact 0ca42d376bd566631083c8913cf86bec722da392
+$ rad id redact 903862f149c03e7ad17be93abd12d4ad04787802
✗ Error: [..]
```
``` (fail)
-$ rad id reject 0ca42d376bd566631083c8913cf86bec722da392
+$ rad id reject 903862f149c03e7ad17be93abd12d4ad04787802
✗ Error: [..]
```
``` (fail)
-$ rad id accept 0ca42d376bd566631083c8913cf86bec722da392
+$ rad id accept 903862f149c03e7ad17be93abd12d4ad04787802
✗ Error: [..]
```
diff --git a/crates/radicle-cli/examples/rad-inbox.md b/crates/radicle-cli/examples/rad-inbox.md
index 1e3e447bd5..41107134c4 100644
--- a/crates/radicle-cli/examples/rad-inbox.md
+++ b/crates/radicle-cli/examples/rad-inbox.md
@@ -28,17 +28,17 @@ $ rad inbox --sort-by id
``` ~alice
$ rad inbox --all --sort-by id
-╭────────────────────────────────────────────────────────────────╮
-│ radicle-git │
-├────────────────────────────────────────────────────────────────┤
-│ 003 ● [ ... ] Copyright fixes patch open bob now │
-╰────────────────────────────────────────────────────────────────╯
╭──────────────────────────────────────────────────────────────────────╮
│ heartwood │
├──────────────────────────────────────────────────────────────────────┤
│ 001 ● [ ... ] No license file issue open bob now │
│ 002 ● bob/copy Change copyright branch created bob now │
╰──────────────────────────────────────────────────────────────────────╯
+╭────────────────────────────────────────────────────────────────╮
+│ radicle-git │
+├────────────────────────────────────────────────────────────────┤
+│ 003 ● [ ... ] Copyright fixes patch open bob now │
+╰────────────────────────────────────────────────────────────────╯
```
``` ~alice
@@ -126,15 +126,24 @@ $ rad inbox --all
$ rad inbox show 1
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "https://radicle.dev",
"name": "heartwood"
}
},
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
- ],
- "threshold": 1
+ ]
}
```
diff --git a/crates/radicle-cli/examples/rad-init-existing-bare.md b/crates/radicle-cli/examples/rad-init-existing-bare.md
index f2c88a7e13..fa7b0511d1 100644
--- a/crates/radicle-cli/examples/rad-init-existing-bare.md
+++ b/crates/radicle-cli/examples/rad-init-existing-bare.md
@@ -14,19 +14,19 @@ $ rad .
Let's pick an existing repository:
```
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6
+rad:zHb72m63NBufHR7jmZi732BBT6j6
```
And initialize this working copy as that existing repository:
```
-$ rad init --setup-signing --existing rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad init --setup-signing --existing rad:zHb72m63NBufHR7jmZi732BBT6j6
Configuring Radicle signing key SHA256:UIedaL6Cxm6OUErh9GQUzzglSk7VpQlVTI1TAFB/HWA…
✓ Signing configured in [..]/heartwood/config
! Not writing .gitsigners file.
-✓ Initialized existing repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji in [..]/heartwood/..
+✓ Initialized existing repository rad:zHb72m63NBufHR7jmZi732BBT6j6 in [..]/heartwood/..
```
The warning about not writing `.gitsigners` is expected, as this requires a
@@ -35,11 +35,11 @@ working directory, which a bare repository does not have.
We can confirm that the working copy is initialized:
```
$ rad .
-rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+rad:zHb72m63NBufHR7jmZi732BBT6j6
$ git remote show rad
* remote rad
- Fetch URL: rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
- Push URL: rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ Fetch URL: rad://zHb72m63NBufHR7jmZi732BBT6j6
+ Push URL: rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
HEAD branch: master
Remote branch:
master new (next fetch will store in remotes/rad)
diff --git a/crates/radicle-cli/examples/rad-init-existing.md b/crates/radicle-cli/examples/rad-init-existing.md
index 8ec0eb3fef..71e94709f5 100644
--- a/crates/radicle-cli/examples/rad-init-existing.md
+++ b/crates/radicle-cli/examples/rad-init-existing.md
@@ -14,29 +14,29 @@ $ rad .
Let's pick an existing repository:
```
-$ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad inspect rad:zHb72m63NBufHR7jmZi732BBT6j6
+rad:zHb72m63NBufHR7jmZi732BBT6j6
```
And initialize this working copy as that existing repository:
```
-$ rad init --setup-signing --existing rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad init --setup-signing --existing rad:zHb72m63NBufHR7jmZi732BBT6j6
Configuring Radicle signing key SHA256:UIedaL6Cxm6OUErh9GQUzzglSk7VpQlVTI1TAFB/HWA…
✓ Signing configured in [..]/heartwood/.git/config
✓ Created .gitsigners file
-✓ Initialized existing repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji in [..]/heartwood/..
+✓ Initialized existing repository rad:zHb72m63NBufHR7jmZi732BBT6j6 in [..]/heartwood/..
```
We can confirm that the working copy is initialized:
```
$ rad .
-rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+rad:zHb72m63NBufHR7jmZi732BBT6j6
$ git remote show rad
* remote rad
- Fetch URL: rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
- Push URL: rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ Fetch URL: rad://zHb72m63NBufHR7jmZi732BBT6j6
+ Push URL: rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
HEAD branch: master
Remote branch:
master new (next fetch will store in remotes/rad)
diff --git a/crates/radicle-cli/examples/rad-init-no-seed.md b/crates/radicle-cli/examples/rad-init-no-seed.md
index d42deb6aae..7b2864e8b8 100644
--- a/crates/radicle-cli/examples/rad-init-no-seed.md
+++ b/crates/radicle-cli/examples/rad-init-no-seed.md
@@ -6,7 +6,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:zhbMU4DUXrzB8xT6qAJh6yZ7bFMK
+Your Repository ID (RID) is rad:z4ASL2m61QbA12rkUnmge5f4KofSv
You can show it any time by running `rad .` from this directory.
Your repository will be announced to the network when you start your node.
@@ -19,11 +19,11 @@ $ rad node inventory
If we then seed it, it becomes advertised in our inventory:
```
-$ rad seed rad:zhbMU4DUXrzB8xT6qAJh6yZ7bFMK
-✓ Inventory updated with rad:zhbMU4DUXrzB8xT6qAJh6yZ7bFMK
-✓ Seeding policy updated for rad:zhbMU4DUXrzB8xT6qAJh6yZ7bFMK with scope 'followed'
+$ rad seed rad:z4ASL2m61QbA12rkUnmge5f4KofSv
+✓ Inventory updated with rad:z4ASL2m61QbA12rkUnmge5f4KofSv
+✓ Seeding policy updated for rad:z4ASL2m61QbA12rkUnmge5f4KofSv with scope 'followed'
```
```
$ rad node inventory
-rad:zhbMU4DUXrzB8xT6qAJh6yZ7bFMK
+rad:z4ASL2m61QbA12rkUnmge5f4KofSv
```
diff --git a/crates/radicle-cli/examples/rad-init-private-clone-seed.md b/crates/radicle-cli/examples/rad-init-private-clone-seed.md
index 17fc6124e5..0fe5ffd1d4 100644
--- a/crates/radicle-cli/examples/rad-init-private-clone-seed.md
+++ b/crates/radicle-cli/examples/rad-init-private-clone-seed.md
@@ -1,4 +1,4 @@
-Given a private repo `rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu` belonging to Alice,
+Given a private repo `rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch` belonging to Alice,
Alice allows Bob to fetch it, and Bob, without the updated identity document
is able to fetch it by specifying Alice as a seed.
@@ -8,8 +8,18 @@ $ rad id update --title "Allow Bob" --description "" --allow did:key:z6Mkt67GdsW
$ rad inspect --identity
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "radicle heartwood protocol & stack",
"name": "heartwood"
}
@@ -17,7 +27,6 @@ $ rad inspect --identity
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
],
- "threshold": 1,
"visibility": {
"type": "private",
"allow": [
@@ -29,14 +38,14 @@ $ rad inspect --identity
``` ~bob
$ rad ls --all --private
-$ rad clone rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
-✓ Seeding policy updated for rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu with scope 'followed'
-Fetching rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu from the network, found 1 potential seed(s).
+$ rad clone rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
+✓ Seeding policy updated for rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch with scope 'followed'
+Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
✓ Target met: 1 preferred seed(s).
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-✓ Repository successfully cloned under [...]/.radicle/heartwood/
+✓ Repository successfully cloned under [..]/.radicle/heartwood/
╭────────────────────────────────────╮
│ heartwood │
│ radicle heartwood protocol & stack │
@@ -48,8 +57,8 @@ Run `cd ./heartwood` to go to the repository directory.
We can also use `rad seed` to seed and fetch without creating a checkout.
``` ~bob
-$ rad seed rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu --from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
-✓ Seeding policy exists for rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu with scope 'followed'
-Fetching rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu from the network, found 1 potential seed(s).
+$ rad seed rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
+✓ Seeding policy exists for rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch with scope 'followed'
+Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
```
diff --git a/crates/radicle-cli/examples/rad-init-private-clone.md b/crates/radicle-cli/examples/rad-init-private-clone.md
index 5f0f2519e3..3813146d1c 100644
--- a/crates/radicle-cli/examples/rad-init-private-clone.md
+++ b/crates/radicle-cli/examples/rad-init-private-clone.md
@@ -1,17 +1,17 @@
-Given a private repo `rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu` belonging to Alice,
+Given a private repo `rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch` belonging to Alice,
Bob tries to fetch it, and even though he's connected to Alice, it fails.
``` ~bob
$ rad ls
```
``` ~bob (fail)
-$ rad clone rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
-✓ Seeding policy updated for rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu with scope 'followed'
-Fetching rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu from the network, found 1 potential seed(s).
+$ rad clone rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --timeout 1s
+✓ Seeding policy updated for rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch with scope 'followed'
+Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
✗ Target not met: could not fetch from [z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi], and required 1 more seed(s)
! Warning: Failed to fetch from 1 seed(s).
! Warning: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: an I/O error occurred during the fetch handshake (connection reset)
-✗ Error: no seeds found for rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu
+✗ Error: no seeds found for rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch
```
She allows Bob to view the repository. And when she syncs, one seed (Bob) gets
@@ -28,15 +28,15 @@ Bob can now fetch the private repo without specifying a seed, because he knows
that Alice has the repo after she announced her refs:
``` ~bob
-$ rad sync rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu --fetch
-Fetching rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu from the network, found 1 potential seed(s).
+$ rad sync rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --fetch
+Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
$ rad ls --private --all
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Name RID Visibility Head Description │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu private f2de534 radicle heartwood protocol & stack │
+│ heartwood rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch private f2de534 radicle heartwood protocol & stack │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-init-private-no-seed.md b/crates/radicle-cli/examples/rad-init-private-no-seed.md
index 261f19a32d..cc86af1d18 100644
--- a/crates/radicle-cli/examples/rad-init-private-no-seed.md
+++ b/crates/radicle-cli/examples/rad-init-private-no-seed.md
@@ -9,7 +9,7 @@ Initializing private Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu
+Your Repository ID (RID) is rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch
You can show it any time by running `rad .` from this directory.
You have created a private repository.
@@ -27,8 +27,8 @@ No seeding policies to show.
We can decide to seed it later, so that others can fetch it from us, given
that they are part of the allow list:
```
-$ rad seed rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu
-✓ Seeding policy updated for rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu with scope 'followed'
+$ rad seed rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch
+✓ Seeding policy updated for rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch with scope 'followed'
```
But it still won't show up in our inventory, since it's private:
diff --git a/crates/radicle-cli/examples/rad-init-private-seed.md b/crates/radicle-cli/examples/rad-init-private-seed.md
index 987061a45a..acd6cac121 100644
--- a/crates/radicle-cli/examples/rad-init-private-seed.md
+++ b/crates/radicle-cli/examples/rad-init-private-seed.md
@@ -9,22 +9,22 @@ $ rad id update --title "Allow Bob" --description "" --allow did:key:z6Mkt67GdsW
First, Bob seeds the repo.
``` ~bob
-$ rad seed rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu --no-fetch
+$ rad seed rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --no-fetch
[..]
```
If Bob just tries to fetch it without specifying seeds, he gets an error:
``` ~bob (fails)
-$ rad sync rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu --fetch
+$ rad sync rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --fetch
✗ Error: no candidate seeds were found to fetch from
```
He has to specify a seed that isn't in his routing table:
``` ~bob
-$ rad sync rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu --fetch --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-Fetching rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu from the network, found 1 potential seed(s).
+$ rad sync rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --fetch --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
✓ Target met: 1 preferred seed(s).
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -34,7 +34,7 @@ $ rad ls --private --all
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Name RID Visibility Head Description │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu private f2de534 radicle heartwood protocol & stack │
+│ heartwood rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch private f2de534 radicle heartwood protocol & stack │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -42,8 +42,8 @@ Note that if multiple seeds are specified, the command succeeds as long as one
seed succeeds.
``` ~bob
-$ rad sync rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu --fetch --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --seed z6MkwPUeUS2fJMfc2HZN1RQTQcTTuhw4HhPySB8JeUg2mVvx
-Fetching rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu from the network, found 1 potential seed(s).
+$ rad sync rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch --fetch --seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --seed z6MkwPUeUS2fJMfc2HZN1RQTQcTTuhw4HhPySB8JeUg2mVvx
+Fetching rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
diff --git a/crates/radicle-cli/examples/rad-init-private.md b/crates/radicle-cli/examples/rad-init-private.md
index 0ac776c8a3..74f0c7b22c 100644
--- a/crates/radicle-cli/examples/rad-init-private.md
+++ b/crates/radicle-cli/examples/rad-init-private.md
@@ -7,7 +7,7 @@ Initializing private Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu
+Your Repository ID (RID) is rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch
You can show it any time by running `rad .` from this directory.
You have created a private repository.
@@ -25,6 +25,6 @@ $ rad seed
╭────────────────────────────────────────────────────────────────╮
│ Repository Name Policy Scope │
├────────────────────────────────────────────────────────────────┤
-│ rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu heartwood allow all │
+│ rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch heartwood allow all │
╰────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-init-sync-not-connected.md b/crates/radicle-cli/examples/rad-init-sync-not-connected.md
index 15343722cb..dd22a13106 100644
--- a/crates/radicle-cli/examples/rad-init-sync-not-connected.md
+++ b/crates/radicle-cli/examples/rad-init-sync-not-connected.md
@@ -7,7 +7,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+Your Repository ID (RID) is rad:zHb72m63NBufHR7jmZi732BBT6j6
You can show it any time by running `rad .` from this directory.
✗ Announcing.. <canceled>
diff --git a/crates/radicle-cli/examples/rad-init-sync-preferred.md b/crates/radicle-cli/examples/rad-init-sync-preferred.md
index 2e958d7cf7..ab8a2c9f6e 100644
--- a/crates/radicle-cli/examples/rad-init-sync-preferred.md
+++ b/crates/radicle-cli/examples/rad-init-sync-preferred.md
@@ -7,7 +7,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z3Rry7rpdWuGpfjPYGzdJKQADsoNW
+Your Repository ID (RID) is rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG
You can show it any time by running `rad .` from this directory.
✓ Repository successfully synced to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -16,7 +16,7 @@ You can show it any time by running `rad .` from this directory.
Your repository has been synced to the network and is now discoverable by peers.
View it in your browser at:
- https://radicle.network/nodes/[...]/rad:z3Rry7rpdWuGpfjPYGzdJKQADsoNW
+ https://radicle.network/nodes/[..]/rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG
To push changes, run `git push`.
```
diff --git a/crates/radicle-cli/examples/rad-init-sync-timeout.md b/crates/radicle-cli/examples/rad-init-sync-timeout.md
index 48ed15870c..8a79f91131 100644
--- a/crates/radicle-cli/examples/rad-init-sync-timeout.md
+++ b/crates/radicle-cli/examples/rad-init-sync-timeout.md
@@ -8,7 +8,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z3Rry7rpdWuGpfjPYGzdJKQADsoNW
+Your Repository ID (RID) is rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG
You can show it any time by running `rad .` from this directory.
✓ Repository successfully announced to the network.
diff --git a/crates/radicle-cli/examples/rad-init-sync.md b/crates/radicle-cli/examples/rad-init-sync.md
index 467f8c1310..88862281fb 100644
--- a/crates/radicle-cli/examples/rad-init-sync.md
+++ b/crates/radicle-cli/examples/rad-init-sync.md
@@ -9,7 +9,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+Your Repository ID (RID) is rad:zHb72m63NBufHR7jmZi732BBT6j6
You can show it any time by running `rad .` from this directory.
✓ Repository successfully announced to the network.
diff --git a/crates/radicle-cli/examples/rad-init-with-existing-remote.md b/crates/radicle-cli/examples/rad-init-with-existing-remote.md
index e056c94517..c2bf97cb4d 100644
--- a/crates/radicle-cli/examples/rad-init-with-existing-remote.md
+++ b/crates/radicle-cli/examples/rad-init-with-existing-remote.md
@@ -26,7 +26,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:z2D6wQnKapY7dn5meBnbH2rUKNZbT
+Your Repository ID (RID) is rad:z3q6HhrUVPA2EXZKjzN2N9JrutqEL
You can show it any time by running `rad .` from this directory.
Your repository will be announced to the network when you start your node.
diff --git a/crates/radicle-cli/examples/rad-init.md b/crates/radicle-cli/examples/rad-init.md
index 8f0031758f..3d441f0925 100644
--- a/crates/radicle-cli/examples/rad-init.md
+++ b/crates/radicle-cli/examples/rad-init.md
@@ -10,11 +10,10 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
{
"name": "heartwood",
- "description": "Radicle Heartwood Protocol & Stack",
- "defaultBranch": "master"
+ "description": "Radicle Heartwood Protocol & Stack"
}
-Your Repository ID (RID) is rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+Your Repository ID (RID) is rad:zHb72m63NBufHR7jmZi732BBT6j6
You can show it any time by running `rad .` from this directory.
Your repository will be announced to the network when you start your node.
@@ -26,23 +25,23 @@ If we try to initialize it again, we get an error:
``` (fail)
$ rad init
-✗ Error: repository is already initialized with remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+✗ Error: repository is already initialized with remote rad://zHb72m63NBufHR7jmZi732BBT6j6
```
Repositories can be listed with the `ls` command:
```
$ rad ls
-╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji public f2de534 Radicle Heartwood Protocol & Stack │
-╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Public repositories are added to our inventory:
```
$ rad node inventory
-rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+rad:zHb72m63NBufHR7jmZi732BBT6j6
```
diff --git a/crates/radicle-cli/examples/rad-inspect-noauth.md b/crates/radicle-cli/examples/rad-inspect-noauth.md
index 0871afd304..91aa873dc2 100644
--- a/crates/radicle-cli/examples/rad-inspect-noauth.md
+++ b/crates/radicle-cli/examples/rad-inspect-noauth.md
@@ -8,5 +8,5 @@ $ rad self
```
$ rad inspect
-rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+rad:zHb72m63NBufHR7jmZi732BBT6j6
```
diff --git a/crates/radicle-cli/examples/rad-inspect.md b/crates/radicle-cli/examples/rad-inspect.md
index 6ad1edb37a..d4b9d63ccc 100644
--- a/crates/radicle-cli/examples/rad-inspect.md
+++ b/crates/radicle-cli/examples/rad-inspect.md
@@ -3,14 +3,14 @@ command from inside a working copy:
```
$ rad inspect
-rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+rad:zHb72m63NBufHR7jmZi732BBT6j6
```
As a shorthand, you can also simply use `rad .`:
```
$ rad .
-rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+rad:zHb72m63NBufHR7jmZi732BBT6j6
```
It's also possible to display all of the repository's git references:
@@ -21,7 +21,7 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ └── xyz.radicle.id
- │ └── 0656c217f917c3e06234771e9ecae53aba5e173e
+ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
├── heads
│ └── master
└── rad
@@ -34,7 +34,7 @@ And sigrefs:
```
$ rad inspect --sigrefs
-z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 99c549702e2bcfe02b0e68d4a2224fb7a1524529 root
+z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 5b50a21a8b034a0a938c341e30d2fc2a9f2de214 root
```
Or display the repository identity's payload and delegates:
@@ -42,8 +42,18 @@ Or display the repository identity's payload and delegates:
```
$ rad inspect --payload
{
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
@@ -57,24 +67,33 @@ history:
```
$ rad inspect --history
-commit 0656c217f917c3e06234771e9ecae53aba5e173e
-blob d96f425412c9f8ad5d9a9a05c9831d0728e2338d
+commit 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+blob 14875c28ade7241b3bda8c59be34f8f9f289196d
date Thu, 15 Dec 2022 17:28:04 +0000
Initialize identity
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "Radicle Heartwood Protocol & Stack",
"name": "heartwood"
}
},
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
- ],
- "threshold": 1
+ ]
}
```
diff --git a/crates/radicle-cli/examples/rad-issue-list.md b/crates/radicle-cli/examples/rad-issue-list.md
index a3cfdf8cbc..957d62c942 100644
--- a/crates/radicle-cli/examples/rad-issue-list.md
+++ b/crates/radicle-cli/examples/rad-issue-list.md
@@ -5,14 +5,14 @@ $ rad issue list
╭────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● d87dcfe flux capacitor underpowered alice (you) good-first-issue now │
+│ ● 03d81cb flux capacitor underpowered alice (you) good-first-issue now │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
We can now assign ourselves to the open issue.
```
-$ rad issue assign d87dcfe --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
+$ rad issue assign 03d81cb --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
```
It will now also show up in the list of issues assigned to us.
@@ -22,15 +22,15 @@ $ rad issue list --assigned me
╭────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● d87dcfe flux capacitor underpowered alice (you) good-first-issue alice now │
+│ ● 03d81cb flux capacitor underpowered alice (you) good-first-issue alice now │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
If we now fix this issue, we can close it.
```
-$ rad issue state --solved d87dcfe --no-announce
-✓ Issue d87dcfe is now solved
+$ rad issue state --solved 03d81cb --no-announce
+✓ Issue 03d81cb is now solved
```
It will not show up in the list of open issues anymore.
@@ -46,7 +46,7 @@ $ rad issue list --solved
╭────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● d87dcfe flux capacitor underpowered alice (you) good-first-issue alice now │
+│ ● 03d81cb flux capacitor underpowered alice (you) good-first-issue alice now │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -57,6 +57,6 @@ $ rad issue --solved
╭────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● d87dcfe flux capacitor underpowered alice (you) good-first-issue alice now │
+│ ● 03d81cb flux capacitor underpowered alice (you) good-first-issue alice now │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-issue.md b/crates/radicle-cli/examples/rad-issue.md
index eb97ef4266..b2045d543b 100644
--- a/crates/radicle-cli/examples/rad-issue.md
+++ b/crates/radicle-cli/examples/rad-issue.md
@@ -7,7 +7,7 @@ Let's say the new car you are designing with your peers has a problem with its f
$ rad issue open --title "flux capacitor underpowered" --description "Flux capacitor power requirements exceed current supply" --no-announce
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue d87dcfe8c2b3200e78b128d9b959cfdf7063fefe │
+│ Issue 03d81cbed7db716ba49b0ad4910a064a664883ab │
│ Author alice (you) │
│ Status open │
│ │
@@ -22,17 +22,17 @@ $ rad issue list
╭──────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├──────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● d87dcfe flux capacitor underpowered alice (you) now │
+│ ● 03d81cb flux capacitor underpowered alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────╯
```
Show the issue information issue.
```
-$ rad issue show d87dcfe
+$ rad issue show 03d81cb
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue d87dcfe8c2b3200e78b128d9b959cfdf7063fefe │
+│ Issue 03d81cbed7db716ba49b0ad4910a064a664883ab │
│ Author alice (you) │
│ Status open │
│ │
@@ -51,8 +51,8 @@ Let's assign ourselves to this one, this is to ensure work is not
duplicated. While we're at it, let's add a label.
```
-$ rad issue assign d87dcfe --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
-$ rad issue label d87dcfe --add good-first-issue --no-announce
+$ rad issue assign 03d81cb --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
+$ rad issue label 03d81cb --add good-first-issue --no-announce
```
It will now show in the list of issues assigned to us, along with the new label.
@@ -62,14 +62,14 @@ $ rad issue list --assigned
╭────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● d87dcfe flux capacitor underpowered alice (you) good-first-issue alice now │
+│ ● 03d81cb flux capacitor underpowered alice (you) good-first-issue alice now │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Note: this can always be undone with the `unassign` subcommand.
```
-$ rad issue assign d87dcfe --delete did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
+$ rad issue assign 03d81cb --delete did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
```
Great, now we have communicated to the world about our car's defect.
@@ -78,30 +78,30 @@ But wait! We've found an important detail about the car's power requirements.
It will help whoever works on a fix.
```
-$ rad issue comment d87dcfe8c2b3200e78b128d9b959cfdf7063fefe --message 'The flux capacitor needs 1.21 Gigawatts' -q --no-announce
-2193e871916d18ddd0416b5198cb08c5dc7416b7
-$ rad issue comment d87dcfe8c2b3200e78b128d9b959cfdf7063fefe --reply-to 2193e871916d18ddd0416b5198cb08c5dc7416b7 --message 'More power!' -q --no-announce
-880fdcd94b36e412fc906b510f41008700d65424
+$ rad issue comment 03d81cbed7db716ba49b0ad4910a064a664883ab --message 'The flux capacitor needs 1.21 Gigawatts' -q --no-announce
+204e7bbaaf5dde9b50925b84038b8391568086ec
+$ rad issue comment 03d81cbed7db716ba49b0ad4910a064a664883ab --reply-to 204e7bbaaf5dde9b50925b84038b8391568086ec --message 'More power!' -q --no-announce
+ec2e7530c058347a30962a301f09be68a06be22b
```
We can see our comments by showing the issue:
```
-$ rad issue show d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
+$ rad issue show 03d81cbed7db716ba49b0ad4910a064a664883ab
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue d87dcfe8c2b3200e78b128d9b959cfdf7063fefe │
+│ Issue 03d81cbed7db716ba49b0ad4910a064a664883ab │
│ Author alice (you) │
│ Labels good-first-issue │
│ Status open │
│ │
│ Flux capacitor power requirements exceed current supply │
├─────────────────────────────────────────────────────────┤
-│ alice (you) now 2193e87 │
+│ alice (you) now 204e7bb │
│ │
│ The flux capacitor needs 1.21 Gigawatts │
├─────────────────────────────────────────────────────────┤
-│ alice (you) now 880fdcd │
+│ alice (you) now ec2e753 │
│ │
│ More power! │
╰─────────────────────────────────────────────────────────╯
@@ -110,9 +110,9 @@ $ rad issue show d87dcfe8c2b3200e78b128d9b959cfdf7063fefe
We can also edit a comment:
```
-$ rad issue comment d87dcfe --edit 880fdcd -m "Even more power!"
+$ rad issue comment 03d81cb --edit ec2e753 -m "Even more power!"
╭─────────────────────────╮
-│ alice (you) now 880fdcd │
+│ alice (you) now ec2e753 │
│ Even more power! │
╰─────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-merge-after-update.md b/crates/radicle-cli/examples/rad-merge-after-update.md
index 945dd57fc6..8cecf65c43 100644
--- a/crates/radicle-cli/examples/rad-merge-after-update.md
+++ b/crates/radicle-cli/examples/rad-merge-after-update.md
@@ -4,8 +4,8 @@ Let's start by creating a patch.
$ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push rad HEAD:refs/patches
-✓ Patch 696ec5508494692899337afe6713fe1796d0315c opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -17,7 +17,7 @@ $ git checkout master -q
$ git merge feature/1 -q
$ git push rad master
✓ Canonical reference refs/heads/master updated to target commit 954bcdb5008447ce294a61a21d7eb87afbe7f4a6
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..954bcdb master -> master
```
@@ -27,8 +27,8 @@ update it, we expect it to be updated and merged:
``` (stderr) RAD_SOCKET=/dev/null
$ git checkout feature/1 -q
$ git push -f
-✓ Patch 696ec55 updated to revision [...]
-✓ Patch 696ec5508494692899337afe6713fe1796d0315c merged
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- + 20aa5dd...954bcdb feature/1 -> patches/696ec5508494692899337afe6713fe1796d0315c (forced update)
+✓ Patch 837bfbb updated to revision [..]
+✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 merged
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ + 20aa5dd...954bcdb feature/1 -> patches/837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 (forced update)
```
diff --git a/crates/radicle-cli/examples/rad-merge-no-ff.md b/crates/radicle-cli/examples/rad-merge-no-ff.md
index 39999cea80..d5f64a185a 100644
--- a/crates/radicle-cli/examples/rad-merge-no-ff.md
+++ b/crates/radicle-cli/examples/rad-merge-no-ff.md
@@ -4,8 +4,8 @@ First, let's create a patch.
$ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push rad HEAD:refs/patches
-✓ Patch 696ec5508494692899337afe6713fe1796d0315c opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -36,8 +36,8 @@ committer radicle <radicle@localhost> 1671125284 +0000
Finally, we push master and expect the patch to be merged.
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad master
-✓ Patch 696ec5508494692899337afe6713fe1796d0315c merged
+✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 merged
✓ Canonical reference refs/heads/master updated to target commit 737a10cfa29111afeb0d43cf3545cee386b939ec
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..737a10c master -> master
```
diff --git a/crates/radicle-cli/examples/rad-merge-via-push.md b/crates/radicle-cli/examples/rad-merge-via-push.md
index d8d5e40e3a..36c4cebade 100644
--- a/crates/radicle-cli/examples/rad-merge-via-push.md
+++ b/crates/radicle-cli/examples/rad-merge-via-push.md
@@ -7,8 +7,8 @@ $ git commit --allow-empty -m "First change"
```
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:refs/patches
-✓ Patch 696ec5508494692899337afe6713fe1796d0315c opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
```
@@ -18,8 +18,8 @@ $ git commit --allow-empty -m "Second change"
```
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:refs/patches
-✓ Patch 356f73863a8920455ff6e77cd9c805d68910551b opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 9cc1b60493391c475723bde8bc0b9cf88644a8bf opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -28,8 +28,8 @@ This creates some remote tracking branches for us:
```
$ git branch -r
rad/master
- rad/patches/356f73863a8920455ff6e77cd9c805d68910551b
- rad/patches/696ec5508494692899337afe6713fe1796d0315c
+ rad/patches/837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
+ rad/patches/9cc1b60493391c475723bde8bc0b9cf88644a8bf
```
And some remote refs:
@@ -40,15 +40,15 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ ├── xyz.radicle.id
- │ │ └── 0656c217f917c3e06234771e9ecae53aba5e173e
+ │ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
│ └── xyz.radicle.patch
- │ ├── 356f73863a8920455ff6e77cd9c805d68910551b
- │ └── 696ec5508494692899337afe6713fe1796d0315c
+ │ ├── 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
+ │ └── 9cc1b60493391c475723bde8bc0b9cf88644a8bf
├── heads
│ ├── master
│ └── patches
- │ ├── 356f73863a8920455ff6e77cd9c805d68910551b
- │ └── 696ec5508494692899337afe6713fe1796d0315c
+ │ ├── 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
+ │ └── 9cc1b60493391c475723bde8bc0b9cf88644a8bf
└── rad
├── id
├── root
@@ -68,10 +68,10 @@ When we push to `rad/master`, we automatically merge the patches:
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad master
-✓ Patch 356f73863a8920455ff6e77cd9c805d68910551b merged
-✓ Patch 696ec5508494692899337afe6713fe1796d0315c merged
+✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 merged
+✓ Patch 9cc1b60493391c475723bde8bc0b9cf88644a8bf merged
✓ Canonical reference refs/heads/master updated to target commit d6399c71702b40bae00825b3c444478d06b4e91c
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..d6399c7 master -> master
```
```
@@ -79,16 +79,16 @@ $ rad patch --merged
╭─────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────┤
-│ ✓ [ ... ] Second change alice (you) - daf349f +0 -0 now │
-│ ✓ [ ... ] First change alice (you) - 20aa5dd +0 -0 now │
+│ ✓ 837bfbb First change alice (you) - 20aa5dd +0 -0 now │
+│ ✓ 9cc1b60 Second change alice (you) - daf349f +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────╯
-$ rad patch show 696ec5508494692899337afe6713fe1796d0315c
+$ rad patch show 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
╭──────────────────────────────────────────────────────────╮
│ Title First change │
-│ Patch 696ec5508494692899337afe6713fe1796d0315c │
+│ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 │
│ Author alice (you) │
│ Head 20aa5dde6210796c3a2f04079b42316a31d02689 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches feature/1 │
│ Commits ahead 0, behind 2 │
@@ -96,16 +96,16 @@ $ rad patch show 696ec5508494692899337afe6713fe1796d0315c
├──────────────────────────────────────────────────────────┤
│ 20aa5dd First change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 696ec55 @ [.. ]..20aa5dd by alice (you) now │
+│ ● Revision 837bfbb @ [..]..20aa5dd by alice (you) now │
│ └─ ✓ merged by alice (you) │
╰──────────────────────────────────────────────────────────╯
-$ rad patch show 356f73863a8920455ff6e77cd9c805d68910551b
+$ rad patch show 9cc1b60493391c475723bde8bc0b9cf88644a8bf
╭──────────────────────────────────────────────────────────╮
│ Title Second change │
-│ Patch 356f73863a8920455ff6e77cd9c805d68910551b │
+│ Patch 9cc1b60493391c475723bde8bc0b9cf88644a8bf │
│ Author alice (you) │
│ Head daf349ff76bedf48c5f292290b682ee7be0683cf │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches feature/2 │
│ Commits ahead 0, behind 2 │
@@ -113,7 +113,7 @@ $ rad patch show 356f73863a8920455ff6e77cd9c805d68910551b
├──────────────────────────────────────────────────────────┤
│ daf349f Second change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 356f738 @ [.. ]..daf349f by alice (you) now │
+│ ● Revision 9cc1b60 @ [..]..daf349f by alice (you) now │
│ └─ ✓ merged by alice (you) │
╰──────────────────────────────────────────────────────────╯
```
@@ -133,10 +133,10 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ ├── xyz.radicle.id
- │ │ └── 0656c217f917c3e06234771e9ecae53aba5e173e
+ │ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
│ └── xyz.radicle.patch
- │ ├── 356f73863a8920455ff6e77cd9c805d68910551b
- │ └── 696ec5508494692899337afe6713fe1796d0315c
+ │ ├── 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
+ │ └── 9cc1b60493391c475723bde8bc0b9cf88644a8bf
├── heads
│ └── master
└── rad
@@ -151,9 +151,9 @@ the first patch, even though they were pushed together.
``` (stderr) RAD_SOCKET=/dev/null
$ git reset --hard HEAD^
$ git push -f rad
-! Patch 356f73863a8920455ff6e77cd9c805d68910551b reverted at revision 356f738
+! Patch 9cc1b60493391c475723bde8bc0b9cf88644a8bf reverted at revision 9cc1b60
✓ Canonical reference refs/heads/master updated to target commit 20aa5dde6210796c3a2f04079b42316a31d02689
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ d6399c7...20aa5dd master -> master (forced update)
```
```
@@ -161,7 +161,7 @@ $ rad patch --all
╭─────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 356f738 Second change alice (you) - daf349f +0 -0 now │
-│ ✓ 696ec55 First change alice (you) - 20aa5dd +0 -0 now │
+│ ✓ 837bfbb First change alice (you) - 20aa5dd +0 -0 now │
+│ ● 9cc1b60 Second change alice (you) - daf349f +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-node.md b/crates/radicle-cli/examples/rad-node.md
index 8f7d8591f0..d8ea477be2 100644
--- a/crates/radicle-cli/examples/rad-node.md
+++ b/crates/radicle-cli/examples/rad-node.md
@@ -40,11 +40,11 @@ created:
```
$ rad seed
-╭───────────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├───────────────────────────────────────────────────────────────────┤
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji heartwood allow followed │
-╰───────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├──────────────────────────────────────────────────────────────────┤
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 heartwood allow followed │
+╰──────────────────────────────────────────────────────────────────╯
```
If we wish to see which nodes we are following:
@@ -65,11 +65,11 @@ created.
```
$ rad node routing
-╭──────────────────────────────────────────────────────────────────────────────────────╮
-│ RID NID │
-├──────────────────────────────────────────────────────────────────────────────────────┤
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
-╰──────────────────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────────────────────────────────────────────────────────────╮
+│ RID NID │
+├─────────────────────────────────────────────────────────────────────────────────────┤
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
+╰─────────────────────────────────────────────────────────────────────────────────────╯
```
Finally, if we want to stop the daemon process from running we can
@@ -90,8 +90,8 @@ $ rad node stop
Note that if we unseed a repository, it is no longer part of our inventory:
```
-$ rad unseed rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Seeding policy for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji removed
+$ rad unseed rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Seeding policy for rad:zHb72m63NBufHR7jmZi732BBT6j6 removed
$ rad node inventory
```
@@ -99,18 +99,18 @@ Likewise, if we seed a repository we don't have locally, it won't show up as
part of our inventory:
```
$ rad seed rad:z3trNYnLWS11cJWC6BbxDs5niGo82
-[...]
+[..]
$ rad node inventory
```
But if we start seeding the repository we have locally again, it'll show
up in our inventory:
```
-$ rad seed rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Inventory updated with rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
+$ rad seed rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Inventory updated with rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
$ rad node inventory
-rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+rad:zHb72m63NBufHR7jmZi732BBT6j6
```
Some commands also give us a hint if the node isn't running:
diff --git a/crates/radicle-cli/examples/rad-patch-ahead-behind.md b/crates/radicle-cli/examples/rad-patch-ahead-behind.md
index c9b2be25d5..a067f29700 100644
--- a/crates/radicle-cli/examples/rad-patch-ahead-behind.md
+++ b/crates/radicle-cli/examples/rad-patch-ahead-behind.md
@@ -37,8 +37,8 @@ $ git log --graph --decorate --abbrev-commit --pretty=oneline --all
Then we create a patch from `feature/1`:
``` (stderr)
$ git push rad feature/1:refs/patches
-✓ Patch 217f050f8891def8fb863f7c0b4f85c89f97299d opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 0e23414c2a1af0573667ad2d9935e27332e8bd0a opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] feature/1 -> refs/patches
```
@@ -48,17 +48,17 @@ $ rad patch list
╭────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├────────────────────────────────────────────────────────────────────────────────┤
-│ ● 217f050 Add Alan alice (you) - 5c88a79 +1 -0 now │
+│ ● 0e23414 Add Alan alice (you) - 5c88a79 +1 -0 now │
╰────────────────────────────────────────────────────────────────────────────────╯
```
When showing the patch, we see that it is `ahead 1, behind 1`, since master has
diverged by one commit:
```
-$ rad patch show -v -p 217f050
+$ rad patch show -v -p 0e23414
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Add Alan │
-│ Patch 217f050f8891def8fb863f7c0b4f85c89f97299d │
+│ Patch 0e23414c2a1af0573667ad2d9935e27332e8bd0a │
│ Author alice (you) │
│ Head 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7 │
│ Base f64fb2c8fe28f7c458c72ec8d700373924794943 │
@@ -69,7 +69,7 @@ $ rad patch show -v -p 217f050
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 5c88a79 Add Alan │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision 217f050f8891def8fb863f7c0b4f85c89f97299d with range f64fb2c8fe28f7c458c72ec8d700373924794943..5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7 by alice (you) now │
+│ ● Revision 0e23414c2a1af0573667ad2d9935e27332e8bd0a with range f64fb2c8fe28f7c458c72ec8d700373924794943..5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7 by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
commit 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7
@@ -94,18 +94,18 @@ $ git checkout -q -b feature/2 feature/1
$ sed -i '$a Mel Farna' CONTRIBUTORS
$ git commit -a -q -m "Add Mel"
$ git push -o patch.message="Add Mel" rad HEAD:refs/patches
-✓ Patch e22ff008e2a0ed47262890d13263031d7555b555 opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 718bacb8743047a0e3c2c723e512450e0f60c94b opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
When we look at the patch, we see that it has both commits, because this new
patch uses the same base as the previous patch:
```
-$ rad patch show -v e22ff008e2a0ed47262890d13263031d7555b555
+$ rad patch show -v 718bacb8743047a0e3c2c723e512450e0f60c94b
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Add Mel │
-│ Patch e22ff008e2a0ed47262890d13263031d7555b555 │
+│ Patch 718bacb8743047a0e3c2c723e512450e0f60c94b │
│ Author alice (you) │
│ Head 7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 │
│ Base f64fb2c8fe28f7c458c72ec8d700373924794943 │
@@ -117,7 +117,7 @@ $ rad patch show -v e22ff008e2a0ed47262890d13263031d7555b555
│ 7f63fcb Add Mel │
│ 5c88a79 Add Alan │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision e22ff008e2a0ed47262890d13263031d7555b555 with range f64fb2c8fe28f7c458c72ec8d700373924794943..7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 by alice (you) now │
+│ ● Revision 718bacb8743047a0e3c2c723e512450e0f60c94b with range f64fb2c8fe28f7c458c72ec8d700373924794943..7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -126,8 +126,8 @@ If we want to instead create a "stacked" patch, we can do so with the
``` (stderr)
$ git push -o patch.message="Add Mel #2" -o patch.base=HEAD^ rad HEAD:refs/patches
-✓ Patch a467ffa260c4fbe355b6fb550ba0c4956078717e opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 73c41f2d9a758a3d7d48cf12f0247dfbdc1e0c74 opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -138,10 +138,10 @@ However, since the patch is still intended to be merged into `master`, we see
that it is still two commits ahead and one behind from `master`.
```
-$ rad patch show -v a467ffa260c4fbe355b6fb550ba0c4956078717e
+$ rad patch show -v 73c41f2d9a758a3d7d48cf12f0247dfbdc1e0c74
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Add Mel #2 │
-│ Patch a467ffa260c4fbe355b6fb550ba0c4956078717e │
+│ Patch 73c41f2d9a758a3d7d48cf12f0247dfbdc1e0c74 │
│ Author alice (you) │
│ Head 7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 │
│ Base 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7 │
@@ -152,6 +152,6 @@ $ rad patch show -v a467ffa260c4fbe355b6fb550ba0c4956078717e
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 7f63fcb Add Mel │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision a467ffa260c4fbe355b6fb550ba0c4956078717e with range 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7..7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 by alice (you) now │
+│ ● Revision 73c41f2d9a758a3d7d48cf12f0247dfbdc1e0c74 with range 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7..7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-change-base.md b/crates/radicle-cli/examples/rad-patch-change-base.md
index e7a55cdf94..6116d9e1c8 100644
--- a/crates/radicle-cli/examples/rad-patch-change-base.md
+++ b/crates/radicle-cli/examples/rad-patch-change-base.md
@@ -15,11 +15,11 @@ $ git commit -v -m "Define power requirements"
```
``` (stderr)
$ git push rad flux-capacitor-power
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] flux-capacitor-power -> flux-capacitor-power
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch aa45913e757cacd46972733bddee5472c78fa32a opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -35,18 +35,18 @@ $ git commit --message "Add README, just for the fun"
```
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun" HEAD:refs/patches
-✓ Patch 183d343ab47d7fe18baf1b24b7209ad033d7fe5c opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 96f6b95b8391738205b4953a6e5af7e8d085789b opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
Our second patch looks like the following:
```
-$ rad patch show 183d343ab47d7fe18baf1b24b7209ad033d7fe5c
+$ rad patch show 96f6b95b8391738205b4953a6e5af7e8d085789b
╭──────────────────────────────────────────────────────────╮
│ Title Add README, just for the fun │
-│ Patch 183d343ab47d7fe18baf1b24b7209ad033d7fe5c │
+│ Patch 96f6b95b8391738205b4953a6e5af7e8d085789b │
│ Author alice (you) │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -58,7 +58,7 @@ $ rad patch show 183d343ab47d7fe18baf1b24b7209ad033d7fe5c
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 183d343 @ f2de534..27857ec by alice (you) now │
+│ ● Revision 96f6b95 @ f2de534..27857ec by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -67,18 +67,18 @@ commit `3e674d1` as part of this patch, so we create a new revision
with a new `base`:
```
-$ rad patch update 183d343 -b 3e674d1 -m "Whoops, forgot to set the base" --no-announce
-ebe76f9c2148eb595d7a745f82275786bf3458c3
+$ rad patch update 96f6b95 -b 3e674d1 -m "Whoops, forgot to set the base" --no-announce
+7c0bad1a574d0f887b97f61fb1a522bfc7208a0b
```
Now, if we show the patch we can see the patch's base has changed and
we have a single commit:
```
-$ rad patch show 183d343
+$ rad patch show 96f6b95
╭──────────────────────────────────────────────────────────╮
│ Title Add README, just for the fun │
-│ Patch 183d343ab47d7fe18baf1b24b7209ad033d7fe5c │
+│ Patch 96f6b95b8391738205b4953a6e5af7e8d085789b │
│ Author alice (you) │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
│ Base 3e674d1a1df90807e934f9ae5da2591dd6848a33 │
@@ -89,7 +89,7 @@ $ rad patch show 183d343
├──────────────────────────────────────────────────────────┤
│ 27857ec Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 183d343 @ f2de534..27857ec by alice (you) now │
-│ ↑ Revision ebe76f9 @ 3e674d1..27857ec by alice (you) now │
+│ ● Revision 96f6b95 @ f2de534..27857ec by alice (you) now │
+│ ↑ Revision 7c0bad1 @ 3e674d1..27857ec by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-checkout-force.md b/crates/radicle-cli/examples/rad-patch-checkout-force.md
index d4b476cfd6..24461f0d89 100644
--- a/crates/radicle-cli/examples/rad-patch-checkout-force.md
+++ b/crates/radicle-cli/examples/rad-patch-checkout-force.md
@@ -13,9 +13,9 @@ $ git commit -v -m "Define power requirements"
``` ~alice (stderr)
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch aa45913e757cacd46972733bddee5472c78fa32a opened
+✓ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 opened
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -24,12 +24,12 @@ On the other end, Bob uses `rad patch checkout` to view the patch:
``` ~bob
$ cd heartwood
$ rad sync -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-$ rad patch checkout aa45913 --name alice-init
-✓ Switched to branch alice-init at revision aa45913
-✓ Branch alice-init setup to track rad/patches/aa45913e757cacd46972733bddee5472c78fa32a
+$ rad patch checkout 133e390 --name alice-init
+✓ Switched to branch alice-init at revision 133e390
+✓ Branch alice-init setup to track rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9
```
Meanwhile, we may see some more changes that we need to make, so we
@@ -46,28 +46,28 @@ $ git commit --message "Add README, just for the fun"
``` ~alice (stderr)
$ git push rad -o patch.message="Add README, just for the fun"
-✓ Patch aa45913 updated to revision 3156bed9d64d4675d6cf56612d217fc5f4e8a53a
-To compare against your previous revision aa45913, run:
+✓ Patch 133e390 updated to revision bab7a0f9953f7c8d5528d1565b4795d6f21207e8
+To compare against your previous revision 133e390, run:
- git range-diff f2de534[..] 3e674d1[..] 27857ec[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 3e674d1a1df90807e934f9ae5da2591dd6848a33 27857ec9eb04c69cacab516e8bf4b5fd36090f66
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 3e674d1..27857ec flux-capacitor-power -> patches/aa45913e757cacd46972733bddee5472c78fa32a
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 3e674d1..27857ec flux-capacitor-power -> patches/133e3905e9252139a7ea29881b3d5bca816372b9
```
Bob fetches these new changes and can see their branch is now behind:
``` ~bob (stderr)
$ git fetch rad
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
- 3e674d1..27857ec patches/aa45913e757cacd46972733bddee5472c78fa32a -> rad/patches/aa45913e757cacd46972733bddee5472c78fa32a
+From rad://zHb72m63NBufHR7jmZi732BBT6j6
+ 3e674d1..27857ec patches/133e3905e9252139a7ea29881b3d5bca816372b9 -> rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9
```
``` ~bob
$ git status
On branch alice-init
-Your branch is behind 'rad/patches/aa45913e757cacd46972733bddee5472c78fa32a' by 1 commit, and can be fast-forwarded.
+Your branch is behind 'rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
nothing to commit, working tree clean
@@ -79,17 +79,17 @@ overwrite any changes. Bob can choose to use the `--force` (`-f`) flag to
ensure that they are looking at the latest changes:
``` ~bob (fail)
-$ rad patch checkout aa45913 --name alice-init
+$ rad patch checkout 133e390 --name alice-init
✗ Performing checkout… <canceled>
✗ Error: branch 'alice-init' already exists (use `--force` to overwrite)
```
``` ~bob
-$ rad patch checkout aa45913 -f --name alice-init
-✓ Switched to branch alice-init at revision 3156bed
+$ rad patch checkout 133e390 -f --name alice-init
+✓ Switched to branch alice-init at revision bab7a0f
$ git status
On branch alice-init
-Your branch is up to date with 'rad/patches/aa45913e757cacd46972733bddee5472c78fa32a'.
+Your branch is up to date with 'rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9'.
nothing to commit, working tree clean
```
diff --git a/crates/radicle-cli/examples/rad-patch-checkout-revision.md b/crates/radicle-cli/examples/rad-patch-checkout-revision.md
index f045d3abd4..80caee6be8 100644
--- a/crates/radicle-cli/examples/rad-patch-checkout-revision.md
+++ b/crates/radicle-cli/examples/rad-patch-checkout-revision.md
@@ -5,7 +5,7 @@ So first, let's add another change to the patch and a `LICENSE` file.
$ touch LICENSE
$ git add LICENSE
$ git commit --message "Add LICENSE, just for the business"
-[patch/aa45913 639f44a] Add LICENSE, just for the business
+[patch/133e390 639f44a] Add LICENSE, just for the business
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 LICENSE
$ git push rad -o patch.message="Add LICENSE, just for the business"
@@ -14,15 +14,15 @@ $ git push rad -o patch.message="Add LICENSE, just for the business"
We can see the list of revisions of the patch by `show`ing it:
```
-$ rad patch show aa45913
+$ rad patch show 133e390
╭──────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch aa45913e757cacd46972733bddee5472c78fa32a │
+│ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 │
│ Author alice (you) │
│ Head 639f44a25145a37f747f3c84265037a9461e44c5 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
-│ Branches patch/aa45913 │
+│ Branches patch/133e390 │
│ Commits ahead 3, behind 0 │
│ Status open │
│ │
@@ -32,20 +32,20 @@ $ rad patch show aa45913
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision aa45913 @ [.. ]..3e674d1 by alice (you) now │
-│ ↑ Revision 3156bed @ [.. ]..27857ec by alice (you) now │
-│ ↑ Revision 2f5324f @ [.. ]..639f44a by alice (you) now │
+│ ● Revision 133e390 @ [..]..3e674d1 by alice (you) now │
+│ ↑ Revision bab7a0f @ f2de534..27857ec by alice (you) now │
+│ ↑ Revision 87f4ef8 @ f2de534..639f44a by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
So, let's checkout the previous revision, `0c0942e2`:
```
-$ rad patch checkout aa45913 --revision 3156bed9d64d4675d6cf56612d217fc5f4e8a53a -f
-✓ Switched to branch patch/aa45913 at revision 3156bed
+$ rad patch checkout 133e390 --revision bab7a0f9953f7c8d5528d1565b4795d6f21207e8 -f
+✓ Switched to branch patch/133e390 at revision bab7a0f
```
-And we can confirm that the current commit corresponds to `27857ec`:
+And we can confirm that the current commit corresponds to `3032c7f`:
```
$ git rev-parse HEAD
diff --git a/crates/radicle-cli/examples/rad-patch-checkout.md b/crates/radicle-cli/examples/rad-patch-checkout.md
index 044e6c26f5..f6faa495ae 100644
--- a/crates/radicle-cli/examples/rad-patch-checkout.md
+++ b/crates/radicle-cli/examples/rad-patch-checkout.md
@@ -22,17 +22,17 @@ Once the code is ready, we open (or create) a patch with our changes for the pro
``` (stderr)
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch aa45913e757cacd46972733bddee5472c78fa32a opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
Now, let's checkout the patch that we just created:
```
-$ rad patch checkout aa45913e757cacd46972733bddee5472c78fa32a
-✓ Switched to branch patch/aa45913 at revision aa45913
-✓ Branch patch/aa45913 setup to track rad/patches/aa45913e757cacd46972733bddee5472c78fa32a
+$ rad patch checkout 133e3905e9252139a7ea29881b3d5bca816372b9
+✓ Switched to branch patch/133e390 at revision 133e390
+✓ Branch patch/133e390 setup to track rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9
```
Note that `rad patch checkout` can be used to switch to the patch branch
@@ -40,8 +40,8 @@ as long as we haven't made changes to it.
```
$ git checkout master -q
-$ rad patch checkout aa45913
-✓ Switched to branch patch/aa45913 at revision aa45913
+$ rad patch checkout 133e390
+✓ Switched to branch patch/133e390 at revision 133e390
```
Now, let's add a README too!
@@ -50,7 +50,7 @@ Now, let's add a README too!
$ touch README.md
$ git add README.md
$ git commit --message "Add README, just for the fun"
-[patch/aa45913 27857ec] Add README, just for the fun
+[patch/133e390 27857ec] Add README, just for the fun
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.md
```
@@ -59,11 +59,11 @@ We can now finish off the update:
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun"
-✓ Patch aa45913 updated to revision 3156bed9d64d4675d6cf56612d217fc5f4e8a53a
-To compare against your previous revision aa45913, run:
+✓ Patch 133e390 updated to revision bab7a0f9953f7c8d5528d1565b4795d6f21207e8
+To compare against your previous revision 133e390, run:
- git range-diff f2de534[..] 3e674d1[..] 27857ec[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 3e674d1a1df90807e934f9ae5da2591dd6848a33 27857ec9eb04c69cacab516e8bf4b5fd36090f66
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 3e674d1..27857ec patch/aa45913 -> patches/aa45913e757cacd46972733bddee5472c78fa32a
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 3e674d1..27857ec patch/133e390 -> patches/133e3905e9252139a7ea29881b3d5bca816372b9
```
diff --git a/crates/radicle-cli/examples/rad-patch-delete.md b/crates/radicle-cli/examples/rad-patch-delete.md
index 47bcecec7f..1c698bd23b 100644
--- a/crates/radicle-cli/examples/rad-patch-delete.md
+++ b/crates/radicle-cli/examples/rad-patch-delete.md
@@ -10,32 +10,32 @@ $ git commit -m "Introduce license"
``` ~alice (stderr)
$ git push rad -o patch.draft -o patch.message="Define LICENSE for project" HEAD:refs/patches
-✓ Patch 6c61ef1716ad8a5c11e04dd7a3fec51e01fba70b drafted
+✓ Patch b2ac02ddd8fd3a9598325b4042e7704baa531adc drafted
✓ Synced with 2 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
``` ~bob
$ cd heartwood
$ rad sync -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
-$ rad patch comment 6c61ef1 -m "I think we should use MIT"
+$ rad patch comment b2ac02d -m "I think we should use MIT"
╭───────────────────────────╮
-│ bob (you) now 833db19 │
+│ bob (you) now c1c07cc │
│ I think we should use MIT │
╰───────────────────────────╯
✓ Synced with 2 seed(s)
```
``` ~alice
-$ rad patch show 6c61ef1 -v
+$ rad patch show b2ac02d -v
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Define LICENSE for project │
-│ Patch 6c61ef1716ad8a5c11e04dd7a3fec51e01fba70b │
+│ Patch b2ac02ddd8fd3a9598325b4042e7704baa531adc │
│ Author alice (you) │
│ Head 717c900ec17735639587325e0fd9fe09991c9edd │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -46,14 +46,14 @@ $ rad patch show 6c61ef1 -v
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 717c900 Introduce license │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision 6c61ef1716ad8a5c11e04dd7a3fec51e01fba70b with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice (you) now │
+│ ● Revision b2ac02ddd8fd3a9598325b4042e7704baa531adc with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice (you) now │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ bob z6Mkt67…v4N1tRk now 833db19 │
+│ bob z6Mkt67…v4N1tRk now c1c07cc │
│ I think we should use MIT │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-$ rad patch comment 6c61ef1 --reply-to 833db19 -m "Thanks, I'll add it!"
+$ rad patch comment b2ac02d --reply-to c1c07cc -m "Thanks, I'll add it!"
╭─────────────────────────╮
-│ alice (you) now 1803a38 │
+│ alice (you) now fb906cb │
│ Thanks, I'll add it! │
╰─────────────────────────╯
✓ Synced with 2 seed(s)
@@ -70,24 +70,24 @@ $ git commit -am "Add MIT License"
``` ~alice (stderr)
$ git push -f
-✓ Patch 6c61ef1 updated to revision 93915b9afa94a9dc4f52f12cdf077d4613ea3eb3
-To compare against your previous revision 6c61ef1, run:
+✓ Patch b2ac02d updated to revision aa82ab2e9a43ef0f715545151be997a21f66680e
+To compare against your previous revision b2ac02d, run:
- git range-diff f2de534[..] 717c900[..] 1cc8cd9[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 717c900ec17735639587325e0fd9fe09991c9edd 1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e
✓ Synced with 2 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 717c900..1cc8cd9 prepare-license -> patches/6c61ef1716ad8a5c11e04dd7a3fec51e01fba70b
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 717c900..1cc8cd9 prepare-license -> patches/b2ac02ddd8fd3a9598325b4042e7704baa531adc
```
``` ~bob
-$ rad patch review 6c61ef1 --accept -m "LGTM!"
-✓ Patch 6c61ef1 accepted
+$ rad patch review b2ac02d --accept -m "LGTM!"
+✓ Patch b2ac02d accepted
✓ Synced with 2 seed(s)
-$ rad patch show 6c61ef1 -v
+$ rad patch show b2ac02d -v
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Define LICENSE for project │
-│ Patch 6c61ef1716ad8a5c11e04dd7a3fec51e01fba70b │
+│ Patch b2ac02ddd8fd3a9598325b4042e7704baa531adc │
│ Author alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ Head 1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -98,22 +98,22 @@ $ rad patch show 6c61ef1 -v
│ 1cc8cd9 Add MIT License │
│ 717c900 Introduce license │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision 6c61ef1716ad8a5c11e04dd7a3fec51e01fba70b with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi now │
-│ ↑ Revision 93915b9afa94a9dc4f52f12cdf077d4613ea3eb3 with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e by alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi now │
+│ ● Revision b2ac02ddd8fd3a9598325b4042e7704baa531adc with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi now │
+│ ↑ Revision aa82ab2e9a43ef0f715545151be997a21f66680e with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e by alice z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi now │
│ └─ ✓ accepted by bob (you) now │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
``` ~bob
-$ rad patch delete 6c61ef1
+$ rad patch delete b2ac02d
✓ Synced with 2 seed(s)
```
``` ~alice
-$ rad patch show 6c61ef1 -v
+$ rad patch show b2ac02d -v
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Define LICENSE for project │
-│ Patch 6c61ef1716ad8a5c11e04dd7a3fec51e01fba70b │
+│ Patch b2ac02ddd8fd3a9598325b4042e7704baa531adc │
│ Author alice (you) │
│ Head 1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -125,8 +125,8 @@ $ rad patch show 6c61ef1 -v
│ 1cc8cd9 Add MIT License │
│ 717c900 Introduce license │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision 6c61ef1716ad8a5c11e04dd7a3fec51e01fba70b with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice (you) now │
-│ ↑ Revision 93915b9afa94a9dc4f52f12cdf077d4613ea3eb3 with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e by alice (you) now │
+│ ● Revision b2ac02ddd8fd3a9598325b4042e7704baa531adc with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..717c900ec17735639587325e0fd9fe09991c9edd by alice (you) now │
+│ ↑ Revision aa82ab2e9a43ef0f715545151be997a21f66680e with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..1cc8cd9de8ccc44b4fe3876f2dbd2cd1cf9ddc0e by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -134,11 +134,11 @@ If Alice also decides to delete the patch, then any seeds that have synced with
Alice should no longer have the patch:
``` ~alice
-$ rad patch delete 6c61ef1
+$ rad patch delete b2ac02d
✓ Synced with 2 seed(s)
```
``` ~seed (fails)
-$ rad patch show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji 6c61ef1 -v
-✗ Error: Patch `6c61ef1716ad8a5c11e04dd7a3fec51e01fba70b` not found
+$ rad patch show --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 b2ac02d -v
+✗ Error: Patch `b2ac02ddd8fd3a9598325b4042e7704baa531adc` not found
```
diff --git a/crates/radicle-cli/examples/rad-patch-detached-head.md b/crates/radicle-cli/examples/rad-patch-detached-head.md
index ab0c3f8e1d..bab2e5fdfe 100644
--- a/crates/radicle-cli/examples/rad-patch-detached-head.md
+++ b/crates/radicle-cli/examples/rad-patch-detached-head.md
@@ -30,10 +30,10 @@ Now, we can create a commit on top of this and create a patch, as usual:
``` (stderr) RAD_HINT=1
$ git commit -a -m "Add things" -q --allow-empty
$ git push -o patch.message="Add things #1" -o patch.message="See commits for details." rad HEAD:refs/patches
-✓ Patch 6035d2f582afbe01ff23ea87528ae523d76875b6 opened
+✓ Patch 430fd711706f6eea742ba27a8d8e4ad3ad52b0d9 opened
hint: offline push, your node is not running
hint: to sync with the network, run `rad node start`
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
diff --git a/crates/radicle-cli/examples/rad-patch-diff.md b/crates/radicle-cli/examples/rad-patch-diff.md
index 6504658f47..28a10fcd7c 100644
--- a/crates/radicle-cli/examples/rad-patch-diff.md
+++ b/crates/radicle-cli/examples/rad-patch-diff.md
@@ -10,7 +10,7 @@ $ git commit -m "Add README" -q
$ git push rad HEAD:refs/patches
```
```
-$ rad patch diff 147309e
+$ rad patch diff 58f4336
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..980a0d5
@@ -31,7 +31,7 @@ $ git commit --amend -q
$ git push -f
```
```
-$ rad patch diff 147309e
+$ rad patch diff 58f4336
diff --git a/RADICLE.md b/RADICLE.md
new file mode 100644
index 0000000..e517184
@@ -52,7 +52,7 @@ Buf if we only want to see the changes from the first revision, we can do that
too.
```
-$ rad patch diff 147309e --revision 147309e
+$ rad patch diff 58f4336 --revision 58f4336
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..980a0d5
diff --git a/crates/radicle-cli/examples/rad-patch-draft.md b/crates/radicle-cli/examples/rad-patch-draft.md
index adc502ec8d..f68ec1d6a7 100644
--- a/crates/radicle-cli/examples/rad-patch-draft.md
+++ b/crates/radicle-cli/examples/rad-patch-draft.md
@@ -9,21 +9,21 @@ To open a patch in draft mode, we use the `--draft` option:
``` (stderr)
$ git push -o patch.draft -o patch.message="Nothing yet" rad HEAD:refs/patches
-✓ Patch 97e18f8598237a396a1c0ac1509c89028e666c97 drafted
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch c42e9878bc4d2acbbc0c5374ecb1eb65255c690d drafted
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
We can confirm it's a draft by running `show`:
```
-$ rad patch show 97e18f8598237a396a1c0ac1509c89028e666c97
+$ rad patch show c42e9878bc4d2acbbc0c5374ecb1eb65255c690d
╭──────────────────────────────────────────────────────────╮
│ Title Nothing yet │
-│ Patch 97e18f8598237a396a1c0ac1509c89028e666c97 │
+│ Patch c42e9878bc4d2acbbc0c5374ecb1eb65255c690d │
│ Author alice (you) │
│ Head 2a465832b5a76abe25be44a3a5d224bbd7741ba7 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches cloudhead/draft │
│ Commits ahead 1, behind 0 │
@@ -31,24 +31,24 @@ $ rad patch show 97e18f8598237a396a1c0ac1509c89028e666c97
├──────────────────────────────────────────────────────────┤
│ 2a46583 Nothing to see here.. │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 97e18f8 @ [.. ]..2a46583 by alice (you) now │
+│ ● Revision c42e987 @ [..]..2a46583 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
Once the patch is ready for review, we can use the `ready` command:
```
-$ rad patch ready 97e18f8598237a396a1c0ac1509c89028e666c97 --no-announce
+$ rad patch ready c42e9878bc4d2acbbc0c5374ecb1eb65255c690d --no-announce
```
```
-$ rad patch show 97e18f8598237a396a1c0ac1509c89028e666c97
+$ rad patch show c42e9878bc4d2acbbc0c5374ecb1eb65255c690d
╭──────────────────────────────────────────────────────────╮
│ Title Nothing yet │
-│ Patch 97e18f8598237a396a1c0ac1509c89028e666c97 │
+│ Patch c42e9878bc4d2acbbc0c5374ecb1eb65255c690d │
│ Author alice (you) │
│ Head 2a465832b5a76abe25be44a3a5d224bbd7741ba7 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches cloudhead/draft │
│ Commits ahead 1, behind 0 │
@@ -56,7 +56,7 @@ $ rad patch show 97e18f8598237a396a1c0ac1509c89028e666c97
├──────────────────────────────────────────────────────────┤
│ 2a46583 Nothing to see here.. │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 97e18f8 @ [.. ]..2a46583 by alice (you) now │
+│ ● Revision c42e987 @ [..]..2a46583 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -64,14 +64,14 @@ If for whatever reason, it needed to go back into draft mode, we could use
the `--undo` flag:
```
-$ rad patch ready --undo 97e18f8598237a396a1c0ac1509c89028e666c97 --no-announce
-$ rad patch show 97e18f8598237a396a1c0ac1509c89028e666c97
+$ rad patch ready --undo c42e9878bc4d2acbbc0c5374ecb1eb65255c690d --no-announce
+$ rad patch show c42e9878bc4d2acbbc0c5374ecb1eb65255c690d
╭──────────────────────────────────────────────────────────╮
│ Title Nothing yet │
-│ Patch 97e18f8598237a396a1c0ac1509c89028e666c97 │
+│ Patch c42e9878bc4d2acbbc0c5374ecb1eb65255c690d │
│ Author alice (you) │
│ Head 2a465832b5a76abe25be44a3a5d224bbd7741ba7 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches cloudhead/draft │
│ Commits ahead 1, behind 0 │
@@ -79,6 +79,6 @@ $ rad patch show 97e18f8598237a396a1c0ac1509c89028e666c97
├──────────────────────────────────────────────────────────┤
│ 2a46583 Nothing to see here.. │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 97e18f8 @ [.. ]..2a46583 by alice (you) now │
+│ ● Revision c42e987 @ [..]..2a46583 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-edit.md b/crates/radicle-cli/examples/rad-patch-edit.md
index a2cd09d3dc..91c8538970 100644
--- a/crates/radicle-cli/examples/rad-patch-edit.md
+++ b/crates/radicle-cli/examples/rad-patch-edit.md
@@ -16,8 +16,8 @@ $ git commit --message "Add README, just for the fun"
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun" HEAD:refs/patches
-✓ Patch 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -32,25 +32,25 @@ $ git commit -v -m "Define the LICENSE"
``` (stderr)
$ git push -f -o patch.message="Add License"
-✓ Patch 89f7afb updated to revision 5d78dd5376453e25df5988ec86951c99cb73742c
-To compare against your previous revision 89f7afb, run:
+✓ Patch b159dae updated to revision 6b68a485a2d9a2e0c4e12c6f353e5d6f52825bf7
+To compare against your previous revision b159dae, run:
- git range-diff f2de534[..] 03c02af[..] 8945f61[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 03c02af4b12a593d17a06d38fae50a57fc3c339a 8945f6189adf027892c85ac57f7e9341049c2537
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 03c02af..8945f61 changes -> patches/89f7afb1511b976482b21f6b2f39aef7f4fb88a2
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 03c02af..8945f61 changes -> patches/b159dae25efff62aaf6f7d28a449ad5756eff5db
```
Let's look at the patch, to see what it looks like before editing it:
```
-$ rad patch show 89f7afb
+$ rad patch show b159dae
╭──────────────────────────────────────────────────────────╮
│ Title Add README, just for the fun │
-│ Patch 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 │
+│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches changes │
│ Commits ahead 2, behind 0 │
@@ -59,8 +59,8 @@ $ rad patch show 89f7afb
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 89f7afb @ [.. ]..03c02af by alice (you) now │
-│ ↑ Revision 5d78dd5 @ [.. ]..8945f61 by alice (you) now │
+│ ● Revision b159dae @ [..]..03c02af by alice (you) now │
+│ ↑ Revision 6b68a48 @ [..]..8945f61 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -68,14 +68,14 @@ We can change the title and description of the patch itself by using a
multi-line message (using two `--message` options here):
```
-$ rad patch edit 89f7afb --message "Add Metadata" --message "Add README & LICENSE" --no-announce
-$ rad patch show 89f7afb
+$ rad patch edit b159dae --message "Add Metadata" --message "Add README & LICENSE" --no-announce
+$ rad patch show b159dae
╭──────────────────────────────────────────────────────────╮
│ Title Add Metadata │
-│ Patch 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 │
+│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches changes │
│ Commits ahead 2, behind 0 │
@@ -86,8 +86,8 @@ $ rad patch show 89f7afb
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 89f7afb @ [.. ]..03c02af by alice (you) now │
-│ ↑ Revision 5d78dd5 @ [.. ]..8945f61 by alice (you) now │
+│ ● Revision b159dae @ [..]..03c02af by alice (you) now │
+│ ↑ Revision 6b68a48 @ [..]..8945f61 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -98,14 +98,14 @@ If we want to change a specific revision's description, we can use the
`--revision` option:
```
-$ rad patch edit 89f7afb --revision 5d78dd5 --message "Changes: Adds LICENSE file" --no-announce
-$ rad patch show 89f7afb
+$ rad patch edit b159dae --revision 6b68a48 --message "Changes: Adds LICENSE file" --no-announce
+$ rad patch show b159dae
╭──────────────────────────────────────────────────────────╮
│ Title Add Metadata │
-│ Patch 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 │
+│ Patch b159dae25efff62aaf6f7d28a449ad5756eff5db │
│ Author alice (you) │
│ Head 8945f6189adf027892c85ac57f7e9341049c2537 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches changes │
│ Commits ahead 2, behind 0 │
@@ -116,8 +116,8 @@ $ rad patch show 89f7afb
│ 8945f61 Define the LICENSE │
│ 03c02af Add README, just for the fun │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 89f7afb @ [.. ]..03c02af by alice (you) now │
-│ ↑ Revision 5d78dd5 @ [.. ]..8945f61 by alice (you) now │
+│ ● Revision b159dae @ [..]..03c02af by alice (you) now │
+│ ↑ Revision 6b68a48 @ [..]..8945f61 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-fetch-1.md b/crates/radicle-cli/examples/rad-patch-fetch-1.md
index 28fdc9fc8e..1d10dc05a3 100644
--- a/crates/radicle-cli/examples/rad-patch-fetch-1.md
+++ b/crates/radicle-cli/examples/rad-patch-fetch-1.md
@@ -20,9 +20,9 @@ $ git fetch --all
Fetching rad
Fetching alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
$ cat .git/FETCH_HEAD
-f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 branch 'master' of rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-7461703ce0fda972df450d071d1d3702057a6352 not-for-merge branch 'alice/1' of rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 not-for-merge branch 'master' of rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 branch 'master' of rad://zHb72m63NBufHR7jmZi732BBT6j6
+7461703ce0fda972df450d071d1d3702057a6352 not-for-merge branch 'alice/1' of rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 not-for-merge branch 'master' of rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
$ git merge FETCH_HEAD
Already up to date.
$ git rev-parse master
diff --git a/crates/radicle-cli/examples/rad-patch-fetch-2.md b/crates/radicle-cli/examples/rad-patch-fetch-2.md
index a9392665cc..d318686c9f 100644
--- a/crates/radicle-cli/examples/rad-patch-fetch-2.md
+++ b/crates/radicle-cli/examples/rad-patch-fetch-2.md
@@ -12,7 +12,7 @@ $ git push rad -o patch.message="Changes" HEAD:refs/patches
$ git checkout master -q
$ git branch -D alice/1 -q
$ git update-ref -d refs/remotes/rad/alice/1
-$ git update-ref -d refs/remotes/rad/patches/5e2dedcc5d515fcbc1cca483d3376609fe889bfb
+$ git update-ref -d refs/remotes/rad/patches/eb1f42de9c9aae572f1a4637d815c9348956d8cb
$ git gc --prune=now
$ git branch -r
rad/master
@@ -23,5 +23,5 @@ $ git pull
Already up to date.
$ git branch -r
rad/master
- rad/patches/5e2dedcc5d515fcbc1cca483d3376609fe889bfb
+ rad/patches/eb1f42de9c9aae572f1a4637d815c9348956d8cb
```
diff --git a/crates/radicle-cli/examples/rad-patch-jj.md b/crates/radicle-cli/examples/rad-patch-jj.md
index 9c131dc828..d56b71d690 100644
--- a/crates/radicle-cli/examples/rad-patch-jj.md
+++ b/crates/radicle-cli/examples/rad-patch-jj.md
@@ -39,7 +39,7 @@ 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
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -67,7 +67,7 @@ $ rad patch show 1e31055 -p
│ Patch 1e31055[.. ] │
│ Author alice (you) │
│ Head a6ea7b7[.. ] │
-│ Base f2de534[.. ] │
+│ Base f567f69[.. ] │
│ Target master │
│ Commits ahead 1, behind 0 │
│ Status open │
diff --git a/crates/radicle-cli/examples/rad-patch-magic-push.md b/crates/radicle-cli/examples/rad-patch-magic-push.md
index 2fa569dc51..17196b5a1f 100644
--- a/crates/radicle-cli/examples/rad-patch-magic-push.md
+++ b/crates/radicle-cli/examples/rad-patch-magic-push.md
@@ -3,7 +3,7 @@
First, we update the identity document to add a canonical reference rule for a new `accepted` branch, allowing delegates to merge into it.
```
-$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/accepted": { "threshold": 1, "allow": "delegates" } }' -q
+$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/heads/accepted": { "threshold": 1, "allow": "delegates" } }' -q
[..]
```
@@ -21,8 +21,8 @@ $ git commit --allow-empty -m "Initialize accepted branch"
``` (stderr)
$ git push rad accepted
-✓ Canonical reference refs/heads/accepted updated to target commit [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] accepted -> accepted
```
@@ -38,20 +38,20 @@ Pushing to the magic reference:
``` (stderr)
$ git push rad HEAD:refs/for/accepted
✓ Patch [..] opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/for/accepted
```
We can see the patch is open:
```
-$ rad patch show 01dad54
+$ rad patch show 0e6d0af
╭──────────────────────────────────────────────────────────╮
│ Title Initialize accepted branch │
-│ Patch 01dad54873ada4efa61541e7d90702266d5ced89 │
+│ Patch 0e6d0af208bfc1249294feb2eafbfeea54793ae1 │
│ Author alice (you) │
│ Head 46fd342edc149468ec08b0b25291083aa05d4449 │
-│ Base [.. ] │
+│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
│ Target accepted │
│ Branches feature/1 │
│ Commits ahead 1, behind 0 │
@@ -62,13 +62,13 @@ $ rad patch show 01dad54
│ 46fd342 Add new feature │
│ f9a3b89 Initialize accepted branch │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 01dad54 @ f2de534..46fd342 by alice (you) now │
+│ ● Revision 0e6d0af @ f2de534..46fd342 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
$ rad patch list --open
╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├──────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● [.. ] Initialize accepted branch alice (you) - [.. ] +0 -0 now │
+│ ● [..] Initialize accepted branch alice (you) - [..] +0 -0 now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -87,22 +87,22 @@ Fast-forward
``` (stderr)
$ git push rad accepted
-✓ Patch [..] merged
-✓ Canonical reference refs/heads/accepted updated to target commit [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- [..]..[..] accepted -> accepted
+✓ Patch 0e6d0af208bfc1249294feb2eafbfeea54793ae1 merged
+✓ Canonical reference refs/heads/accepted updated to target commit 46fd342edc149468ec08b0b25291083aa05d4449
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ f9a3b89..46fd342 accepted -> accepted
```
We can now verify that the patch has been successfully marked as merged:
```
-$ rad patch show 01dad54
+$ rad patch show 0e6d0af
╭──────────────────────────────────────────────────────────╮
│ Title Initialize accepted branch │
-│ Patch 01dad54873ada4efa61541e7d90702266d5ced89 │
+│ Patch 0e6d0af208bfc1249294feb2eafbfeea54793ae1 │
│ Author alice (you) │
│ Head 46fd342edc149468ec08b0b25291083aa05d4449 │
-│ Base [.. ] │
+│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
│ Target accepted │
│ Branches accepted, feature/1 │
│ Commits up to date │
@@ -113,14 +113,14 @@ $ rad patch show 01dad54
│ 46fd342 Add new feature │
│ f9a3b89 Initialize accepted branch │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 01dad54 @ f2de534..46fd342 by alice (you) now │
+│ ● Revision 0e6d0af @ f2de534..46fd342 by alice (you) now │
│ └─ ✓ merged by alice (you) │
╰──────────────────────────────────────────────────────────╯
$ rad patch list --merged
╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├──────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ✓ [.. ] Initialize accepted branch alice (you) - [.. ] +0 -0 now │
+│ ✓ 0e6d0af Initialize accepted branch alice (you) - 46fd342 +0 -0 now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -129,7 +129,7 @@ Alternative, attempting to provide conflicting targets fails:
``` (fail) (stderr)
$ git push -o patch.target=master rad HEAD:refs/for/accepted
error: conflicting merge targets: push option 'refs/heads/master' and magic ref 'refs/heads/accepted' specified
-error: failed to push some refs to 'rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
```
However, if the push option and the magic ref match, it succeeds:
@@ -142,14 +142,14 @@ $ git commit -m "Add another feature" --allow-empty -q
``` (stderr)
$ git push -o patch.target=accepted rad HEAD:refs/for/accepted
✓ Patch [..] opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/for/accepted
```
```
-$ rad patch show 965855f
+$ rad patch show 722472f
╭──────────────────────────────────────────────────────────╮
│ Title Initialize accepted branch │
-│ Patch 965855f69bc5a86f7e1787ed80cd065013b6504c │
+│ Patch 722472f07f6adc5431f1debfd0148433fb1b32a3 │
│ Author alice (you) │
│ Head 7e6814e99fe7084a213faeb69ca1eacc26935e3c │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -167,7 +167,7 @@ $ rad patch show 965855f
│ 46fd342 Add new feature │
│ f9a3b89 Initialize accepted branch │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 965855f @ f2de534..7e6814e by alice (you) now │
+│ ● Revision 722472f @ f2de534..7e6814e by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -180,17 +180,17 @@ $ git commit -m "Add a third feature" --allow-empty -q
``` (stderr)
$ git push rad HEAD:refs/for/refs/heads/accepted
✓ Patch [..] opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/for/refs/heads/accepted
```
This will create a third feature branch and verify that pushing to `refs/for/refs/heads/accepted` successfully opens a patch.
```
-$ rad patch show c846bb5 -v
+$ rad patch show fc19610 -v
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Title Initialize accepted branch │
-│ Patch c846bb5f8298802e8de589174549d78c1d9aa00f │
+│ Patch fc19610b79b70d6efa603a869bef8c80261eb74c │
│ Author alice (you) │
│ Head 99c1d5a04c17ba854f1f4d59985c980c0faf16e7 │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -212,6 +212,6 @@ $ rad patch show c846bb5 -v
│ 46fd342 Add new feature │
│ f9a3b89 Initialize accepted branch │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● Revision c846bb5f8298802e8de589174549d78c1d9aa00f with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..99c1d5a04c17ba854f1f4d59985c980c0faf16e7 by alice (you) now │
+│ ● Revision fc19610b79b70d6efa603a869bef8c80261eb74c with range f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354..99c1d5a04c17ba854f1f4d59985c980c0faf16e7 by alice (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-merge-draft.md b/crates/radicle-cli/examples/rad-patch-merge-draft.md
index d36e67146e..de1a91fba9 100644
--- a/crates/radicle-cli/examples/rad-patch-merge-draft.md
+++ b/crates/radicle-cli/examples/rad-patch-merge-draft.md
@@ -4,8 +4,8 @@ Let's start by creating a draft patch.
$ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push -o patch.draft rad HEAD:refs/patches
-✓ Patch 8dfb4dcafc4346158c8160410dd3f2b0616ad4fe drafted
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 1a184d879b5bb80234548e9f353d9ee23b3f7e20 drafted
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -13,8 +13,8 @@ To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkE
$ git checkout master -q
$ git merge feature/1
$ git push rad master
-✓ Patch 8dfb4dcafc4346158c8160410dd3f2b0616ad4fe merged
+✓ Patch 1a184d879b5bb80234548e9f353d9ee23b3f7e20 merged
✓ Canonical reference refs/heads/master updated to target commit 20aa5dde6210796c3a2f04079b42316a31d02689
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..20aa5dd master -> master
```
diff --git a/crates/radicle-cli/examples/rad-patch-merge-into-canonical-ref-branch.md b/crates/radicle-cli/examples/rad-patch-merge-into-canonical-ref-branch.md
index 26180d82d6..d9709ab110 100644
--- a/crates/radicle-cli/examples/rad-patch-merge-into-canonical-ref-branch.md
+++ b/crates/radicle-cli/examples/rad-patch-merge-into-canonical-ref-branch.md
@@ -3,7 +3,7 @@
First, we update the identity document to add a canonical reference rule for a new `accepted` branch, allowing delegates to merge into it.
```
-$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/accepted": { "threshold": 1, "allow": "delegates" } }' -q
+$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/heads/accepted": { "threshold": 1, "allow": "delegates" } }' -q
[..]
```
@@ -21,8 +21,8 @@ $ git commit --allow-empty -m "Initialize accepted branch"
``` (stderr)
$ git push rad accepted
-✓ Canonical reference refs/heads/accepted updated to target commit [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] accepted -> accepted
```
@@ -45,7 +45,7 @@ $ git commit -m "Add new feature"
``` (stderr)
$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/accepted" rad HEAD:refs/patches
✓ Patch [..] opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -56,7 +56,7 @@ $ rad patch
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ● [.. ] Add new feature alice (you) - [.. ] +0 -0 now │
+│ ● [..] Add new feature alice (you) - [..] +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -78,10 +78,10 @@ Fast-forward
``` (stderr)
$ git push rad accepted
-✓ Patch [..] merged
-✓ Canonical reference refs/heads/accepted updated to target commit [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- [..]..[..] accepted -> accepted
+✓ Patch ad29796fe5ce937fa19725cdfb2982987abe0cfa merged
+✓ Canonical reference refs/heads/accepted updated to target commit 27acd3b208662f374b34cd4c599f3628c9e42b80
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ f9a3b89..27acd3b accepted -> accepted
```
Finally, we verify that the patch has been successfully marked as merged, even though it wasn't merged into the default branch.
@@ -91,6 +91,6 @@ $ rad patch list --merged
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ✓ [.. ] Add new feature alice (you) - [.. ] +0 -0 now │
+│ ✓ ad29796 Add new feature alice (you) - 27acd3b +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-merge-on-first-push.md b/crates/radicle-cli/examples/rad-patch-merge-on-first-push.md
index efeb6b72d7..aa239cf995 100644
--- a/crates/radicle-cli/examples/rad-patch-merge-on-first-push.md
+++ b/crates/radicle-cli/examples/rad-patch-merge-on-first-push.md
@@ -5,15 +5,15 @@ Here we start off with Alice adding Bob as a delegate:
``` ~alice
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk -q
-7be665f9fccba97abb21b2fa85a6fd3181c72858
+b9990e59e97ae8dae5a4808c16542b0a2978362e
```
Bob clones the repository so that he can start working on it with Alice:
``` ~bob
-$ rad clone rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+$ rad clone rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -42,8 +42,8 @@ $ git commit -v -m "Define power requirements"
``` ~alice (stderr)
$ git push rad -o no-sync -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch df868fc7985fa7217aaef8423d73a077868c02b3 opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch dd09b540aaeb4eecbf493d59d450bb7c3f98d335 opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -52,7 +52,7 @@ first he syncs the repository:
``` ~bob
$ rad sync -f
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -60,12 +60,12 @@ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential s
He then checks out the patch and merges the changes in:
``` ~bob
-$ rad patch checkout df868fc
-✓ Switched to branch patch/df868fc at revision df868fc
-✓ Branch patch/df868fc setup to track rad/patches/df868fc7985fa7217aaef8423d73a077868c02b3
+$ rad patch checkout dd09b54
+✓ Switched to branch patch/dd09b54 at revision dd09b54
+✓ Branch patch/dd09b54 setup to track rad/patches/dd09b540aaeb4eecbf493d59d450bb7c3f98d335
$ git checkout master
Your branch is up to date with 'rad/master'.
-$ git merge patch/df868fc
+$ git merge patch/dd09b54
Updating f2de534..3e674d1
Fast-forward
REQUIREMENTS | 0
@@ -82,13 +82,13 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ ├── xyz.radicle.id
- │ │ └── 0656c217f917c3e06234771e9ecae53aba5e173e
+ │ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
│ └── xyz.radicle.patch
- │ └── df868fc7985fa7217aaef8423d73a077868c02b3
+ │ └── dd09b540aaeb4eecbf493d59d450bb7c3f98d335
├── heads
│ ├── master
│ └── patches
- │ └── df868fc7985fa7217aaef8423d73a077868c02b3
+ │ └── dd09b540aaeb4eecbf493d59d450bb7c3f98d335
└── rad
├── id
├── root
@@ -101,10 +101,10 @@ Now that the changes are merged, he can push and have the patch merged:
``` ~bob (stderr)
$ git push rad master
-✓ Patch df868fc7985fa7217aaef8423d73a077868c02b3 merged
+✓ Patch dd09b540aaeb4eecbf493d59d450bb7c3f98d335 merged
✓ Canonical reference refs/heads/master updated to target commit 3e674d1a1df90807e934f9ae5da2591dd6848a33
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new branch] master -> master
```
@@ -116,13 +116,13 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└── refs
├── cobs
│ ├── xyz.radicle.id
- │ │ └── 0656c217f917c3e06234771e9ecae53aba5e173e
+ │ │ └── 2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
│ └── xyz.radicle.patch
- │ └── df868fc7985fa7217aaef8423d73a077868c02b3
+ │ └── dd09b540aaeb4eecbf493d59d450bb7c3f98d335
├── heads
│ ├── master
│ └── patches
- │ └── df868fc7985fa7217aaef8423d73a077868c02b3
+ │ └── dd09b540aaeb4eecbf493d59d450bb7c3f98d335
└── rad
├── id
├── root
@@ -131,7 +131,7 @@ z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
└── refs
├── cobs
│ └── xyz.radicle.patch
- │ └── df868fc7985fa7217aaef8423d73a077868c02b3
+ │ └── dd09b540aaeb4eecbf493d59d450bb7c3f98d335
├── heads
│ └── master
└── rad
diff --git a/crates/radicle-cli/examples/rad-patch-merge-unauthorized-branch.md b/crates/radicle-cli/examples/rad-patch-merge-unauthorized-branch.md
index a8641accd3..346da114cd 100644
--- a/crates/radicle-cli/examples/rad-patch-merge-unauthorized-branch.md
+++ b/crates/radicle-cli/examples/rad-patch-merge-unauthorized-branch.md
@@ -3,7 +3,7 @@
First, we update the identity document to add a canonical reference rule for a new `accepted` branch, but we only allow Alice to merge into it.
``` ~alice
-$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/accepted": { "threshold": 1, "allow": ["did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"] } }' -q
+$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/heads/accepted": { "threshold": 1, "allow": ["did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"] } }' -q
[..]
```
@@ -19,16 +19,16 @@ $ git commit --allow-empty -m "Initialize accepted branch"
```
``` ~alice (stderr)
$ git push rad accepted
-✓ Canonical reference refs/heads/accepted updated to target commit [..]
+✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] accepted -> accepted
```
Next, Bob clones the repository and opens a patch targeting `accepted`.
``` ~bob
-$ rad clone rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+$ rad clone rad://zHb72m63NBufHR7jmZi732BBT6j6
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -57,7 +57,7 @@ $ git commit -m "Add new feature"
$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/accepted" rad HEAD:refs/patches
✓ Patch [..] opened
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new reference] HEAD -> refs/patches
```
@@ -77,7 +77,7 @@ Merge made by the 'ort' strategy.
``` ~bob (stderr)
$ git push rad accepted
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new branch] accepted -> accepted
```
@@ -92,6 +92,6 @@ $ rad patch list --open
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ● [.. ] Add new feature bob (you) - [.. ] +0 -0 now │
+│ ● [..] Add new feature bob (you) - [..] +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-merge-wrong-branch.md b/crates/radicle-cli/examples/rad-patch-merge-wrong-branch.md
index 72b09f08b6..1680b68e6c 100644
--- a/crates/radicle-cli/examples/rad-patch-merge-wrong-branch.md
+++ b/crates/radicle-cli/examples/rad-patch-merge-wrong-branch.md
@@ -3,7 +3,7 @@
First, we update the identity document to add a canonical reference rule for a new `accepted` branch.
```
-$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/accepted": { "threshold": 1, "allow": "delegates" } }' -q
+$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/heads/accepted": { "threshold": 1, "allow": "delegates" } }' -q
[..]
```
@@ -19,8 +19,8 @@ $ git commit --allow-empty -m "Initialize accepted branch"
```
``` (stderr)
$ git push rad accepted
-✓ Canonical reference refs/heads/accepted updated to target commit [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] accepted -> accepted
```
@@ -41,7 +41,7 @@ $ git commit -m "Add new feature"
``` (stderr)
$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/accepted" rad HEAD:refs/patches
✓ Patch [..] opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -62,7 +62,7 @@ Fast-forward
``` (stderr)
$ git push rad master
✓ Canonical reference refs/heads/master updated to target commit [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
[..]..[..] master -> master
```
@@ -77,6 +77,6 @@ $ rad patch list --open
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ● [.. ] Add new feature alice (you) - [.. ] +0 -0 now │
+│ ● [..] Add new feature alice (you) - [..] +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-open-explore.md b/crates/radicle-cli/examples/rad-patch-open-explore.md
index 882eca5793..d9183cc501 100644
--- a/crates/radicle-cli/examples/rad-patch-open-explore.md
+++ b/crates/radicle-cli/examples/rad-patch-open-explore.md
@@ -4,12 +4,12 @@ When preferred seeds are configured, opening a patch outputs the patch URL.
$ git checkout -b changes -q
$ git commit --allow-empty -q -m "Changes"
$ git push rad HEAD:refs/patches
-✓ Patch acab0ec777a97d013f30be5d5d1aec32562ecb02 opened
+✓ Patch 4417ffaea271451c269d5e40141ba56ef3b79011 opened
✓ Synced with 1 seed(s)
- https://radicle.network/nodes/[..]/rad:z3yXbb1sR6UG6ixxV2YF9jUP7ABra/patches/acab0ec777a97d013f30be5d5d1aec32562ecb02
+ https://radicle.network/nodes/[..]/rad:z2WCJkTQLa4jDqqKDoPxGrDLr9icB/patches/4417ffaea271451c269d5e40141ba56ef3b79011
-To rad://z3yXbb1sR6UG6ixxV2YF9jUP7ABra/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z2WCJkTQLa4jDqqKDoPxGrDLr9icB/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new reference] HEAD -> refs/patches
```
@@ -18,17 +18,17 @@ If we update the patch, the URL is also output.
``` (stderr)
$ git commit --amend --allow-empty -q -m "Other changes"
$ git push -f
-✓ Patch acab0ec updated to revision f7a830d829d0cdf398f63a32b0d5ee31f08e21ab
-To compare against your previous revision acab0ec, run:
+✓ Patch 4417ffa updated to revision 7df61fa4b15d3263d83dd6a703a0144190179324
+To compare against your previous revision 4417ffa, run:
- git range-diff f2de534[..] e12525d[..] b2b6432[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 e12525d99b1415b9bccf4ed87050ab25eb86e2c4 b2b6432af93f8fe188e32d400263021b602cfec8
✓ Synced with 1 seed(s)
- https://radicle.network/nodes/[..]/rad:z3yXbb1sR6UG6ixxV2YF9jUP7ABra/patches/acab0ec777a97d013f30be5d5d1aec32562ecb02
+ https://radicle.network/nodes/[..]/rad:z2WCJkTQLa4jDqqKDoPxGrDLr9icB/patches/4417ffaea271451c269d5e40141ba56ef3b79011
-To rad://z3yXbb1sR6UG6ixxV2YF9jUP7ABra/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
- + e12525d...b2b6432 changes -> patches/acab0ec777a97d013f30be5d5d1aec32562ecb02 (forced update)
+To rad://z2WCJkTQLa4jDqqKDoPxGrDLr9icB/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+ + e12525d...b2b6432 changes -> patches/4417ffaea271451c269d5e40141ba56ef3b79011 (forced update)
```
While simply pushing a commit outputs a URL to the new source tree.
@@ -37,12 +37,12 @@ While simply pushing a commit outputs a URL to the new source tree.
$ git checkout master -q
$ git merge changes -q
$ git push rad master
-✓ Patch acab0ec777a97d013f30be5d5d1aec32562ecb02 merged
+✓ Patch 4417ffaea271451c269d5e40141ba56ef3b79011 merged
✓ Canonical reference refs/heads/master updated to target commit b2b6432af93f8fe188e32d400263021b602cfec8
✓ Synced with 1 seed(s)
- https://radicle.network/nodes/[..]/rad:z3yXbb1sR6UG6ixxV2YF9jUP7ABra/tree/b2b6432af93f8fe188e32d400263021b602cfec8
+ https://radicle.network/nodes/[..]/rad:z2WCJkTQLa4jDqqKDoPxGrDLr9icB/tree/b2b6432af93f8fe188e32d400263021b602cfec8
-To rad://z3yXbb1sR6UG6ixxV2YF9jUP7ABra/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z2WCJkTQLa4jDqqKDoPxGrDLr9icB/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
f2de534..b2b6432 master -> master
```
diff --git a/crates/radicle-cli/examples/rad-patch-pull-update.md b/crates/radicle-cli/examples/rad-patch-pull-update.md
index 44aca4c29e..b9d255b928 100644
--- a/crates/radicle-cli/examples/rad-patch-pull-update.md
+++ b/crates/radicle-cli/examples/rad-patch-pull-update.md
@@ -9,7 +9,7 @@ Initializing public Radicle 👾 repository in [..]
✓ Repository heartwood created.
-Your Repository ID (RID) is rad:zhbMU4DUXrzB8xT6qAJh6yZ7bFMK
+Your Repository ID (RID) is rad:z4ASL2m61QbA12rkUnmge5f4KofSv
You can show it any time by running `rad .` from this directory.
✓ Repository successfully announced to the network.
@@ -21,9 +21,9 @@ To push changes, run `git push`.
```
``` ~bob
-$ rad clone rad:zhbMU4DUXrzB8xT6qAJh6yZ7bFMK
-✓ Seeding policy updated for rad:zhbMU4DUXrzB8xT6qAJh6yZ7bFMK with scope 'followed'
-Fetching rad:zhbMU4DUXrzB8xT6qAJh6yZ7bFMK from the network, found 1 potential seed(s).
+$ rad clone rad:z4ASL2m61QbA12rkUnmge5f4KofSv
+✓ Seeding policy updated for rad:z4ASL2m61QbA12rkUnmge5f4KofSv with scope 'followed'
+Fetching rad:z4ASL2m61QbA12rkUnmge5f4KofSv from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Creating checkout in ./heartwood..
✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
@@ -44,7 +44,7 @@ our fork:
$ cd heartwood
$ git push rad master
✓ Synced with 1 seed(s)
-To rad://zhbMU4DUXrzB8xT6qAJh6yZ7bFMK/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z4ASL2m61QbA12rkUnmge5f4KofSv/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new branch] master -> master
```
@@ -54,22 +54,22 @@ Bob then opens a patch.
$ git checkout -b bob/feature -q
$ git commit --allow-empty -m "Bob's commit #1" -q
$ git push rad -o sync -o patch.message="Bob's patch" HEAD:refs/patches
-✓ Patch 55b9721ed7f6bfec38f43729e9b6631c5dc812fb opened
+✓ Patch ae0b41c808681754ad228b6f0adb8a34c9cdb2fb opened
✓ Synced with 1 seed(s)
-To rad://zhbMU4DUXrzB8xT6qAJh6yZ7bFMK/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+To rad://z4ASL2m61QbA12rkUnmge5f4KofSv/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new reference] HEAD -> refs/patches
```
``` ~bob
$ git status --short --branch
-## bob/feature...rad/patches/55b9721ed7f6bfec38f43729e9b6631c5dc812fb
+## bob/feature...rad/patches/ae0b41c808681754ad228b6f0adb8a34c9cdb2fb
```
Alice checks it out.
``` ~alice
-$ rad patch checkout 55b9721ed7f6bfec38f43729e9b6631c5dc812fb
-✓ Switched to branch patch/55b9721 at revision 55b9721
-✓ Branch patch/55b9721 setup to track rad/patches/55b9721ed7f6bfec38f43729e9b6631c5dc812fb
+$ rad patch checkout ae0b41c808681754ad228b6f0adb8a34c9cdb2fb
+✓ Switched to branch patch/ae0b41c at revision ae0b41c
+✓ Branch patch/ae0b41c setup to track rad/patches/ae0b41c808681754ad228b6f0adb8a34c9cdb2fb
$ git show
commit bdcdb30b3c0f513620dd0f1c24ff8f4f71de956b
Author: radicle <radicle@localhost>
@@ -83,26 +83,26 @@ Bob then updates the patch.
``` ~bob (stderr)
$ git commit --allow-empty -m "Bob's commit #2" -q
$ git push rad -o sync -o patch.message="Updated."
-✓ Patch 55b9721 updated to revision f91e056da05b2d9a58af1160c76245bc3debf7a8
-To compare against your previous revision 55b9721, run:
+✓ Patch ae0b41c updated to revision 8613fcb2c70966d16c2b422533fa070ab58a6543
+To compare against your previous revision ae0b41c, run:
- git range-diff f2de534[..] bdcdb30[..] cad2666[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 bdcdb30b3c0f513620dd0f1c24ff8f4f71de956b cad2666a8a2250e4dee175ed5044be2c251ff08b
✓ Synced with 1 seed(s)
-To rad://zhbMU4DUXrzB8xT6qAJh6yZ7bFMK/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
- bdcdb30..cad2666 bob/feature -> patches/55b9721ed7f6bfec38f43729e9b6631c5dc812fb
+To rad://z4ASL2m61QbA12rkUnmge5f4KofSv/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+ bdcdb30..cad2666 bob/feature -> patches/ae0b41c808681754ad228b6f0adb8a34c9cdb2fb
```
Alice pulls the update.
``` ~alice
-$ rad patch show 55b9721
+$ rad patch show ae0b41c
╭──────────────────────────────────────────────────────────────────╮
│ Title Bob's patch │
-│ Patch 55b9721ed7f6bfec38f43729e9b6631c5dc812fb │
+│ Patch ae0b41c808681754ad228b6f0adb8a34c9cdb2fb │
│ Author bob z6Mkt67…v4N1tRk │
│ Head cad2666a8a2250e4dee175ed5044be2c251ff08b │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Commits ahead 2, behind 0 │
│ Status open │
@@ -110,18 +110,18 @@ $ rad patch show 55b9721
│ cad2666 Bob's commit #2 │
│ bdcdb30 Bob's commit #1 │
├──────────────────────────────────────────────────────────────────┤
-│ ● Revision 55b9721 @ [.. ]..bdcdb30 by bob z6Mkt67…v4N1tRk now │
-│ ↑ Revision f91e056 @ [.. ]..cad2666 by bob z6Mkt67…v4N1tRk now │
+│ ● Revision ae0b41c @ f2de534..bdcdb30 by bob z6Mkt67…v4N1tRk now │
+│ ↑ Revision 8613fcb @ f2de534..cad2666 by bob z6Mkt67…v4N1tRk now │
╰──────────────────────────────────────────────────────────────────╯
$ git ls-remote rad
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 HEAD
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
-cad2666a8a2250e4dee175ed5044be2c251ff08b refs/heads/patches/55b9721ed7f6bfec38f43729e9b6631c5dc812fb
+cad2666a8a2250e4dee175ed5044be2c251ff08b refs/heads/patches/ae0b41c808681754ad228b6f0adb8a34c9cdb2fb
```
``` ~alice
$ git fetch rad
$ git status --short --branch
-## patch/55b9721...rad/patches/55b9721ed7f6bfec38f43729e9b6631c5dc812fb [behind 1]
+## patch/ae0b41c...rad/patches/ae0b41c808681754ad228b6f0adb8a34c9cdb2fb [behind 1]
```
``` ~alice
$ git pull
diff --git a/crates/radicle-cli/examples/rad-patch-revert-custom-branch.md b/crates/radicle-cli/examples/rad-patch-revert-custom-branch.md
index 63cf5ce994..caba91f178 100644
--- a/crates/radicle-cli/examples/rad-patch-revert-custom-branch.md
+++ b/crates/radicle-cli/examples/rad-patch-revert-custom-branch.md
@@ -3,7 +3,7 @@
First, we update the identity document to add a canonical reference rule for a new `accepted` branch.
```
-$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/accepted": { "threshold": 1, "allow": "delegates" } }' -q
+$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/master": { "threshold": 1, "allow": "delegates" }, "refs/heads/accepted": { "threshold": 1, "allow": "delegates" } }' -q
[..]
```
@@ -19,8 +19,8 @@ $ git commit --allow-empty -m "Initialize accepted branch"
```
``` (stderr)
$ git push rad accepted
-✓ Canonical reference refs/heads/accepted updated to target commit [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new branch] accepted -> accepted
```
@@ -41,7 +41,7 @@ $ git commit -m "Add new feature"
``` (stderr)
$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/accepted" rad HEAD:refs/patches
✓ Patch [..] opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -61,10 +61,10 @@ Fast-forward
```
``` (stderr)
$ git push rad accepted
-✓ Patch [..] merged
-✓ Canonical reference refs/heads/accepted updated to target commit [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- [..]..[..] accepted -> accepted
+✓ Patch ad29796fe5ce937fa19725cdfb2982987abe0cfa merged
+✓ Canonical reference refs/heads/accepted updated to target commit 27acd3b208662f374b34cd4c599f3628c9e42b80
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ f9a3b89..27acd3b accepted -> accepted
```
We verify the patch is merged.
@@ -74,7 +74,7 @@ $ rad patch list --merged
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ✓ [.. ] Add new feature alice (you) - [.. ] +0 -0 now │
+│ ✓ ad29796 Add new feature alice (you) - 27acd3b +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -94,7 +94,7 @@ HEAD is now at [..] Initial commit
``` (stderr)
$ git push rad master --force
✓ Canonical reference refs/heads/master updated to target commit [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ f2de534...08c788d master -> master (forced update)
```
@@ -106,7 +106,7 @@ $ rad patch list --merged
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ✓ [.. ] Add new feature alice (you) - [.. ] +0 -0 now │
+│ ✓ ad29796 Add new feature alice (you) - 27acd3b +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -124,9 +124,9 @@ HEAD is now at [..] Initialize accepted branch
```
``` (stderr)
$ git push rad accepted --force
-! Patch [..] reverted at revision [..]
-✓ Canonical reference refs/heads/accepted updated to target commit [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+! Patch ad29796fe5ce937fa19725cdfb2982987abe0cfa reverted at revision ad29796
+✓ Canonical reference refs/heads/accepted updated to target commit f9a3b8998a3922a1e542a3dc93299c82649da455
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 27acd3b...f9a3b89 accepted -> accepted (forced update)
```
@@ -141,6 +141,6 @@ $ rad patch list --open
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ● [.. ] Add new feature alice (you) - [.. ] +0 -0 now │
+│ ● [..] Add new feature alice (you) - [..] +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-revert-merge.md b/crates/radicle-cli/examples/rad-patch-revert-merge.md
index a0c58d070e..82c97a0e5b 100644
--- a/crates/radicle-cli/examples/rad-patch-revert-merge.md
+++ b/crates/radicle-cli/examples/rad-patch-revert-merge.md
@@ -4,29 +4,29 @@ Let's create a patch, merge it and then revert it.
$ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push rad HEAD:refs/patches
-✓ Patch 696ec5508494692899337afe6713fe1796d0315c opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
$ git checkout master
Switched to branch 'master'
$ git merge feature/1
$ git push rad master
-✓ Patch 696ec5508494692899337afe6713fe1796d0315c merged
+✓ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 merged
✓ Canonical reference refs/heads/master updated to target commit 20aa5dde6210796c3a2f04079b42316a31d02689
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..20aa5dd master -> master
```
First we see the patch as merged.
```
-$ rad patch show 696ec5508494692899337afe6713fe1796d0315c
+$ rad patch show 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
╭──────────────────────────────────────────────────────────╮
│ Title First change │
-│ Patch 696ec5508494692899337afe6713fe1796d0315c │
+│ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 │
│ Author alice (you) │
│ Head 20aa5dde6210796c3a2f04079b42316a31d02689 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches feature/1, master │
│ Commits up to date │
@@ -34,7 +34,7 @@ $ rad patch show 696ec5508494692899337afe6713fe1796d0315c
├──────────────────────────────────────────────────────────┤
│ 20aa5dd First change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 696ec55 @ [.. ]..20aa5dd by alice (you) now │
+│ ● Revision 837bfbb @ [..]..20aa5dd by alice (you) now │
│ └─ ✓ merged by alice (you) │
╰──────────────────────────────────────────────────────────╯
```
@@ -51,22 +51,22 @@ When pushing, notice that we're told our patch is reverted.
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad master --force
-! Patch 696ec5508494692899337afe6713fe1796d0315c reverted at revision 696ec55
+! Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 reverted at revision 837bfbb
✓ Canonical reference refs/heads/master updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 20aa5dd...f2de534 master -> master (forced update)
```
The patch shows up as open again.
```
-$ rad patch show 696ec5508494692899337afe6713fe1796d0315c
+$ rad patch show 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0
╭──────────────────────────────────────────────────────────╮
│ Title First change │
-│ Patch 696ec5508494692899337afe6713fe1796d0315c │
+│ Patch 837bfbbb9e00c133fa79adaf1eb5006a74b8dba0 │
│ Author alice (you) │
│ Head 20aa5dde6210796c3a2f04079b42316a31d02689 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches feature/1 │
│ Commits ahead 1, behind 0 │
@@ -74,6 +74,6 @@ $ rad patch show 696ec5508494692899337afe6713fe1796d0315c
├──────────────────────────────────────────────────────────┤
│ 20aa5dd First change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 696ec55 @ [.. ]..20aa5dd by alice (you) now │
+│ ● Revision 837bfbb @ [..]..20aa5dd by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-review-no-options.md b/crates/radicle-cli/examples/rad-patch-review-no-options.md
index 4853ec64cf..cd61b5e364 100644
--- a/crates/radicle-cli/examples/rad-patch-review-no-options.md
+++ b/crates/radicle-cli/examples/rad-patch-review-no-options.md
@@ -2,15 +2,15 @@ The `rad patch review` command must provide an option or a review message, since
a review must have a verdict or a review summary:
``` (fail)
-$ rad patch review aa45913 --no-message --no-announce
+$ rad patch review 133e390 --no-message --no-announce
✗ Error: expected one of `--accept` or `--reject`, or supply a review message
```
This time we will supply a message:
```
-$ rad patch review aa45913 -m "Looks reasonable, no strong opinion." --no-announce
-✓ Patch aa45913 reviewed
+$ rad patch review 133e390 -m "Looks reasonable, no strong opinion." --no-announce
+✓ Patch 133e390 reviewed
```
Submitting a second review on the same revision by the same author is ignored.
@@ -19,6 +19,6 @@ Currently, there is no way to edit a review from the CLI.
Note that the review command will still succeed, but with no effect:
```
-$ rad patch review aa45913 -m "Changed my mind." --no-announce
-✓ Patch aa45913 reviewed
+$ rad patch review 133e390 -m "Changed my mind." --no-announce
+✓ Patch 133e390 reviewed
```
diff --git a/crates/radicle-cli/examples/rad-patch-update.md b/crates/radicle-cli/examples/rad-patch-update.md
index 67934e0ba7..303f3e44a9 100644
--- a/crates/radicle-cli/examples/rad-patch-update.md
+++ b/crates/radicle-cli/examples/rad-patch-update.md
@@ -6,19 +6,19 @@ $ git commit -q -m "Not a real change" --allow-empty
```
``` (stderr)
$ git push rad HEAD:refs/patches
-✓ Patch b6a23eb08656de0ef1fcc0b5fe8820841e5cb2e5 opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 3eaedda3113800f1a8aa809a81c9beb4fe598a6e opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
```
-$ rad patch show b6a23eb08656de0ef1fcc0b5fe8820841e5cb2e5
+$ rad patch show 3eaedda3113800f1a8aa809a81c9beb4fe598a6e
╭──────────────────────────────────────────────────────────╮
│ Title Not a real change │
-│ Patch b6a23eb08656de0ef1fcc0b5fe8820841e5cb2e5 │
+│ Patch 3eaedda3113800f1a8aa809a81c9beb4fe598a6e │
│ Author alice (you) │
│ Head 51b2f0f77b9849bfaa3e9d3ff68ee2f57771d20c │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches feature/1 │
│ Commits ahead 1, behind 0 │
@@ -26,7 +26,7 @@ $ rad patch show b6a23eb08656de0ef1fcc0b5fe8820841e5cb2e5
├──────────────────────────────────────────────────────────┤
│ 51b2f0f Not a real change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision b6a23eb @ [.. ]..51b2f0f by alice (you) now │
+│ ● Revision 3eaedda @ [..]..51b2f0f by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -48,20 +48,20 @@ Now, instead of using `git push` to update the patch, as we normally would,
we run:
```
-$ rad patch update b6a23eb08656de0ef1fcc0b5fe8820841e5cb2e5 -m "Updated patch" --no-announce
-ea7def3857f62f404606d7cd6490cd0de4eaebd1
+$ rad patch update 3eaedda3113800f1a8aa809a81c9beb4fe598a6e -m "Updated patch" --no-announce
+4b088586d035de0ae9a47f5a02d0b4b0cd1a99c9
```
The command outputs the new Revision ID, which we can now see here:
```
-$ rad patch show b6a23eb08656de0ef1fcc0b5fe8820841e5cb2e5
+$ rad patch show 3eaedda3113800f1a8aa809a81c9beb4fe598a6e
╭──────────────────────────────────────────────────────────╮
│ Title Not a real change │
-│ Patch b6a23eb08656de0ef1fcc0b5fe8820841e5cb2e5 │
+│ Patch 3eaedda3113800f1a8aa809a81c9beb4fe598a6e │
│ Author alice (you) │
│ Head 4d272148458a17620541555b1f0905c01658aa9f │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches feature/1 │
│ Commits ahead 2, behind 0 │
@@ -70,7 +70,7 @@ $ rad patch show b6a23eb08656de0ef1fcc0b5fe8820841e5cb2e5
│ 4d27214 Rename readme file │
│ 51b2f0f Not a real change │
├──────────────────────────────────────────────────────────┤
-│ ● Revision b6a23eb @ [.. ]..51b2f0f by alice (you) now │
-│ ↑ Revision ea7def3 @ [.. ]..4d27214 by alice (you) now │
+│ ● Revision 3eaedda @ [..]..51b2f0f by alice (you) now │
+│ ↑ Revision 4b08858 @ [..]..4d27214 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-via-push.md b/crates/radicle-cli/examples/rad-patch-via-push.md
index 7d99aac65e..49f2c16998 100644
--- a/crates/radicle-cli/examples/rad-patch-via-push.md
+++ b/crates/radicle-cli/examples/rad-patch-via-push.md
@@ -8,24 +8,24 @@ $ git checkout -b feature/1
Switched to a new branch 'feature/1'
$ git commit -a -m "Add things" -q --allow-empty
$ git push -o patch.message="Add things #1" -o patch.message="See commits for details." rad HEAD:refs/patches
-✓ Patch 6035d2f582afbe01ff23ea87528ae523d76875b6 opened
-hint: to update, run `git push` or `git push rad --force-with-lease HEAD:patches/6035d2f582afbe01ff23ea87528ae523d76875b6`
+✓ Patch 430fd711706f6eea742ba27a8d8e4ad3ad52b0d9 opened
+hint: to update, run `git push` or `git push rad --force-with-lease HEAD:patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9`
hint: offline push, your node is not running
hint: to sync with the network, run `rad node start`
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
We can see a patch was created:
```
-$ rad patch show 6035d2f582afbe01ff23ea87528ae523d76875b6
+$ rad patch show 430fd711706f6eea742ba27a8d8e4ad3ad52b0d9
╭──────────────────────────────────────────────────────────╮
│ Title Add things #1 │
-│ Patch 6035d2f582afbe01ff23ea87528ae523d76875b6 │
+│ Patch 430fd711706f6eea742ba27a8d8e4ad3ad52b0d9 │
│ Author alice (you) │
│ Head 42d894a83c9c356552a57af09ccdbd5587a99045 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches feature/1 │
│ Commits ahead 1, behind 0 │
@@ -35,7 +35,7 @@ $ rad patch show 6035d2f582afbe01ff23ea87528ae523d76875b6
├──────────────────────────────────────────────────────────┤
│ 42d894a Add things │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 6035d2f @ [.. ]..42d894a by alice (you) now │
+│ ● Revision 430fd71 @ [..]..42d894a by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -44,7 +44,7 @@ branch associated with this patch:
```
$ git branch -vv
-* feature/1 42d894a [rad/patches/6035d2f582afbe01ff23ea87528ae523d76875b6] Add things
+* feature/1 42d894a [rad/patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9] Add things
master f2de534 [rad/master] Second commit
```
@@ -52,7 +52,7 @@ Let's check that it's up to date with our local head:
```
$ git status --short --branch
-## feature/1...rad/patches/6035d2f582afbe01ff23ea87528ae523d76875b6
+## feature/1...rad/patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9
$ git fetch
$ git push
```
@@ -64,14 +64,14 @@ $ git show-ref
42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/feature/1
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/remotes/rad/master
-42d894a83c9c356552a57af09ccdbd5587a99045 refs/remotes/rad/patches/6035d2f582afbe01ff23ea87528ae523d76875b6
+42d894a83c9c356552a57af09ccdbd5587a99045 refs/remotes/rad/patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9
```
```
-$ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji 'refs/heads/patches/*'
-42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/patches/6035d2f582afbe01ff23ea87528ae523d76875b6
-$ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 'refs/cobs/*'
-0656c217f917c3e06234771e9ecae53aba5e173e refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e
-6035d2f582afbe01ff23ea87528ae523d76875b6 refs/cobs/xyz.radicle.patch/6035d2f582afbe01ff23ea87528ae523d76875b6
+$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6 'refs/heads/patches/*'
+42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9
+$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 'refs/cobs/*'
+2cfded2c0f8d65f55cfdb960e648cd2c2fee9240 refs/cobs/xyz.radicle.id/2cfded2c0f8d65f55cfdb960e648cd2c2fee9240
+430fd711706f6eea742ba27a8d8e4ad3ad52b0d9 refs/cobs/xyz.radicle.patch/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9
```
We can create another patch:
@@ -80,8 +80,8 @@ We can create another patch:
$ git checkout -b feature/2 -q master
$ git commit -a -m "Add more things" -q --allow-empty
$ git push rad HEAD:refs/patches
-✓ Patch 95808913573cead52ad7b42c7b475260ec45c4b2 opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 817b833a28ec729b6b5a6e1c3f2368311e13a8f8 opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -89,8 +89,8 @@ We see both branches with upstreams now:
```
$ git branch -vv
- feature/1 42d894a [rad/patches/6035d2f582afbe01ff23ea87528ae523d76875b6] Add things
-* feature/2 8b0ea80 [rad/patches/95808913573cead52ad7b42c7b475260ec45c4b2] Add more things
+ feature/1 42d894a [rad/patches/430fd711706f6eea742ba27a8d8e4ad3ad52b0d9] Add things
+* feature/2 8b0ea80 [rad/patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8] Add more things
master f2de534 [rad/master] Second commit
```
@@ -101,8 +101,8 @@ $ rad patch
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 6035d2f Add things #1 alice (you) - 42d894a +0 -0 now │
-│ ● 9580891 Add more things alice (you) - 8b0ea80 +0 -0 now │
+│ ● 430fd71 Add things #1 alice (you) - 42d894a +0 -0 now │
+│ ● 817b833 Add more things alice (you) - 8b0ea80 +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -114,13 +114,13 @@ $ git commit -a -m "Improve code" -q --allow-empty
``` (stderr)
$ git push rad
-✓ Patch 9580891 updated to revision d7040c6c97629c2b94f86fb639bebbff5de39697
-To compare against your previous revision 9580891, run:
+✓ Patch 817b833 updated to revision e5f4dd551f3c0c1876f1b1f57e9290ab2ff879c1
+To compare against your previous revision 817b833, run:
- git range-diff f2de534[..] 8b0ea80[..] 02bef3f[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 8b0ea80d3acd2c55e8820b3064e7575934158b4d 02bef3fac41b2f98bb3c02b868a53ddfecb55b5f
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 8b0ea80..02bef3f feature/2 -> patches/95808913573cead52ad7b42c7b475260ec45c4b2
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 8b0ea80..02bef3f feature/2 -> patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8
```
This last `git push` worked without specifying an upstream branch despite the
@@ -138,13 +138,13 @@ This allows for pushing to the remote patch branch without using the full
We can then see that the patch head has moved:
```
-$ rad patch show 9580891
+$ rad patch show 817b833
╭──────────────────────────────────────────────────────────╮
│ Title Add more things │
-│ Patch 95808913573cead52ad7b42c7b475260ec45c4b2 │
+│ Patch 817b833a28ec729b6b5a6e1c3f2368311e13a8f8 │
│ Author alice (you) │
│ Head 02bef3fac41b2f98bb3c02b868a53ddfecb55b5f │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches feature/2 │
│ Commits ahead 2, behind 0 │
@@ -153,8 +153,8 @@ $ rad patch show 9580891
│ 02bef3f Improve code │
│ 8b0ea80 Add more things │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 9580891 @ [.. ]..8b0ea80 by alice (you) now │
-│ ↑ Revision d7040c6 @ [.. ]..02bef3f by alice (you) now │
+│ ● Revision 817b833 @ [..]..8b0ea80 by alice (you) now │
+│ ↑ Revision e5f4dd5 @ [..]..02bef3f by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -167,14 +167,14 @@ $ git rev-parse HEAD
```
$ git status --short --branch
-## feature/2...rad/patches/95808913573cead52ad7b42c7b475260ec45c4b2
+## feature/2...rad/patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8
```
```
-$ git rev-parse refs/remotes/rad/patches/95808913573cead52ad7b42c7b475260ec45c4b2
+$ git rev-parse refs/remotes/rad/patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8
02bef3fac41b2f98bb3c02b868a53ddfecb55b5f
-$ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/patches/95808913573cead52ad7b42c7b475260ec45c4b2
-02bef3fac41b2f98bb3c02b868a53ddfecb55b5f refs/heads/patches/95808913573cead52ad7b42c7b475260ec45c4b2
+$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8
+02bef3fac41b2f98bb3c02b868a53ddfecb55b5f refs/heads/patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8
```
## Force push
@@ -194,9 +194,9 @@ Now let's push to the patch head.
``` (stderr) (fail)
$ git push
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- ! [rejected] feature/2 -> patches/95808913573cead52ad7b42c7b475260ec45c4b2 (non-fast-forward)
-error: failed to push some refs to 'rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ ! [rejected] feature/2 -> patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8 (non-fast-forward)
+error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
hint: [..]
hint: [..]
hint: [..]
@@ -208,25 +208,25 @@ use `--force-with-lease` (or `--force`) to force the update.
``` (stderr)
$ git push --force-with-lease
-✓ Patch 9580891 updated to revision 670d02794aa05afd6e0851f4aa848bc87c4712c7
-To compare against your previous revision d7040c6, run:
+✓ Patch 817b833 updated to revision 678b533a2f6f1b10f06c0e499994ec8c742c243e
+To compare against your previous revision e5f4dd5, run:
- git range-diff f2de534[..] 02bef3f[..] 9304dbc[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 02bef3fac41b2f98bb3c02b868a53ddfecb55b5f 9304dbc445925187994a7a93222a3f8bde73b785
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- + 02bef3f...9304dbc feature/2 -> patches/95808913573cead52ad7b42c7b475260ec45c4b2 (forced update)
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ + 02bef3f...9304dbc feature/2 -> patches/817b833a28ec729b6b5a6e1c3f2368311e13a8f8 (forced update)
```
That worked. We can see the new revision if we call `rad patch show`:
```
-$ rad patch show 9580891
+$ rad patch show 817b833
╭──────────────────────────────────────────────────────────╮
│ Title Add more things │
-│ Patch 95808913573cead52ad7b42c7b475260ec45c4b2 │
+│ Patch 817b833a28ec729b6b5a6e1c3f2368311e13a8f8 │
│ Author alice (you) │
│ Head 9304dbc445925187994a7a93222a3f8bde73b785 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches feature/2 │
│ Commits ahead 2, behind 0 │
@@ -235,9 +235,9 @@ $ rad patch show 9580891
│ 9304dbc Amended commit │
│ 8b0ea80 Add more things │
├──────────────────────────────────────────────────────────┤
-│ ● Revision 9580891 @ [.. ]..8b0ea80 by alice (you) now │
-│ ↑ Revision d7040c6 @ [.. ]..02bef3f by alice (you) now │
-│ ↑ Revision 670d027 @ [.. ]..9304dbc by alice (you) now │
+│ ● Revision 817b833 @ [..]..8b0ea80 by alice (you) now │
+│ ↑ Revision e5f4dd5 @ [..]..02bef3f by alice (you) now │
+│ ↑ Revision 678b533 @ [..]..9304dbc by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -273,10 +273,10 @@ Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 831e838 Going into detached HEAD
$ git push rad HEAD:refs/patches -o patch.branch
-✓ Patch e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3 opened
-✓ Branch patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3 created
-hint: to update, run `git push rad patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3`
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 032523bb3455720e7713c3f61edef3d1be7f4513 opened
+✓ Branch patches/032523bb3455720e7713c3f61edef3d1be7f4513 created
+hint: to update, run `git push rad patches/032523bb3455720e7713c3f61edef3d1be7f4513`
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -284,17 +284,17 @@ The default name used for the branch is `patches/<patch id>`. So let's checkout
the branch and push a new revision:
``` (stderr)
-$ git checkout patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3
-Switched to branch 'patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3'
+$ git checkout patches/032523bb3455720e7713c3f61edef3d1be7f4513
+Switched to branch 'patches/032523bb3455720e7713c3f61edef3d1be7f4513'
$ git commit --allow-empty -m "Pushing new revision"
$ git push rad
-✓ Patch e0fd879 updated to revision 943cbd9769e855d5e4eba419e68374c5141a2785
-To compare against your previous revision e0fd879, run:
+✓ Patch 032523b updated to revision bd19672e49531289221878f871bdd1af8f55be20
+To compare against your previous revision 032523b, run:
git range-diff [..] [..] [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 831e838..d0ff2a1 patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3 -> patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 831e838..d0ff2a1 patches/032523bb3455720e7713c3f61edef3d1be7f4513 -> patches/032523bb3455720e7713c3f61edef3d1be7f4513
```
However, we also allow you to name the branch yourself:
@@ -302,10 +302,10 @@ However, we also allow you to name the branch yourself:
``` (stderr)
$ git checkout 831e838 -q
$ git push rad HEAD:refs/patches -o patch.branch='feature/3'
-✓ Patch e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3 opened
+✓ Patch 032523bb3455720e7713c3f61edef3d1be7f4513 opened
✓ Branch feature/3 created
hint: to update, run `git push rad feature/3`
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -316,13 +316,13 @@ $ git checkout feature/3
Switched to branch 'feature/3'
$ git commit --allow-empty -m "Pushing new revision"
$ git push rad
-✓ Patch e0fd879 updated to revision 943cbd9769e855d5e4eba419e68374c5141a2785
-To compare against your previous revision e0fd879, run:
+✓ Patch 032523b updated to revision bd19672e49531289221878f871bdd1af8f55be20
+To compare against your previous revision 032523b, run:
git range-diff [..] [..] [..]
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 831e838..d0ff2a1 feature/3 -> patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 831e838..d0ff2a1 feature/3 -> patches/032523bb3455720e7713c3f61edef3d1be7f4513
```
## Empty patch
@@ -333,7 +333,7 @@ we should get an error:
``` (stderr) (fail)
$ git push rad master:refs/patches
warn: attempted to create a patch using the commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354, but this commit is already included in the base branch
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
! [remote rejected] master -> refs/patches (patch commits are already included in the base branch)
-error: failed to push some refs to 'rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
+error: failed to push some refs to 'rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi'
```
diff --git a/crates/radicle-cli/examples/rad-patch.md b/crates/radicle-cli/examples/rad-patch.md
index 875d7b39e4..a9603ebc7f 100644
--- a/crates/radicle-cli/examples/rad-patch.md
+++ b/crates/radicle-cli/examples/rad-patch.md
@@ -26,8 +26,8 @@ Once the code is ready, we open (or create) a patch with our changes for the pro
``` (stderr)
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch aa45913e757cacd46972733bddee5472c78fa32a opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -38,17 +38,17 @@ $ rad patch
╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● aa45913 Define power requirements alice (you) - 3e674d1 +0 -0 now │
+│ ● 133e390 Define power requirements alice (you) - 3e674d1 +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
```
```
-$ rad patch show aa45913e757cacd46972733bddee5472c78fa32a -p
+$ rad patch show 133e3905e9252139a7ea29881b3d5bca816372b9 -p
╭──────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch aa45913e757cacd46972733bddee5472c78fa32a │
+│ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 │
│ Author alice (you) │
│ Head 3e674d1a1df90807e934f9ae5da2591dd6848a33 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches flux-capacitor-power │
│ Commits ahead 1, behind 0 │
@@ -58,7 +58,7 @@ $ rad patch show aa45913e757cacd46972733bddee5472c78fa32a -p
├──────────────────────────────────────────────────────────┤
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision aa45913 @ [.. ]..3e674d1 by alice (you) now │
+│ ● Revision 133e390 @ [..]..3e674d1 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
commit 3e674d1a1df90807e934f9ae5da2591dd6848a33
@@ -80,14 +80,14 @@ $ rad patch list --authored
╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● aa45913 Define power requirements alice (you) - 3e674d1 +0 -0 now │
+│ ● 133e390 Define power requirements alice (you) - 3e674d1 +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
```
We can also see that it set an upstream for our patch branch:
```
$ git branch -vv
-* flux-capacitor-power 3e674d1 [rad/patches/aa45913e757cacd46972733bddee5472c78fa32a] Define power requirements
+* flux-capacitor-power 3e674d1 [rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9] Define power requirements
master f2de534 [rad/master] Second commit
```
@@ -95,16 +95,16 @@ We can also label patches as well as assign DIDs to the patch to help
organise your workflow:
```
-$ rad patch label aa45913 --add fun --no-announce
-$ rad patch assign aa45913 --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
-$ rad patch show aa45913
+$ rad patch label 133e390 --add fun --no-announce
+$ rad patch assign 133e390 --add did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --no-announce
+$ rad patch show 133e390
╭──────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch aa45913e757cacd46972733bddee5472c78fa32a │
+│ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 │
│ Author alice (you) │
│ Labels fun │
│ Head 3e674d1a1df90807e934f9ae5da2591dd6848a33 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches flux-capacitor-power │
│ Commits ahead 1, behind 0 │
@@ -114,7 +114,7 @@ $ rad patch show aa45913
├──────────────────────────────────────────────────────────┤
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision aa45913 @ [.. ]..3e674d1 by alice (you) now │
+│ ● Revision 133e390 @ [..]..3e674d1 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
@@ -130,33 +130,33 @@ $ git commit --message "Add README, just for the fun"
```
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun"
-✓ Patch aa45913 updated to revision 6e5a3b7b2ce27b32e7ccc2f0b3f4594897dde638
-To compare against your previous revision aa45913, run:
+✓ Patch 133e390 updated to revision 7cf1397082d47fc3f0289124ed3d31922ac320d8
+To compare against your previous revision 133e390, run:
- git range-diff f2de534[..] 3e674d1[..] 27857ec[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 3e674d1a1df90807e934f9ae5da2591dd6848a33 27857ec9eb04c69cacab516e8bf4b5fd36090f66
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- 3e674d1..27857ec flux-capacitor-power -> patches/aa45913e757cacd46972733bddee5472c78fa32a
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ 3e674d1..27857ec flux-capacitor-power -> patches/133e3905e9252139a7ea29881b3d5bca816372b9
```
And let's leave a quick comment for our team:
```
-$ rad patch comment aa45913 --message 'I cannot wait to get back to the 90s!' --no-announce
+$ rad patch comment 133e390 --message 'I cannot wait to get back to the 90s!' --no-announce
╭───────────────────────────────────────╮
-│ alice (you) now 686ec1c │
+│ alice (you) now c07e3d6 │
│ I cannot wait to get back to the 90s! │
╰───────────────────────────────────────╯
-$ rad patch comment aa45913 --message 'My favorite decade!' --reply-to 686ec1c -q --no-announce
-f4336e42daf76342f787d574b5ee779d89d05c7a
+$ rad patch comment 133e390 --message 'My favorite decade!' --reply-to c07e3d6 -q --no-announce
+9f0c1009adf9bc4565a7cbfe7b3fc192fc6aa5f4
```
If we realize we made a mistake in the comment, we can go back and edit it:
```
-$ rad patch comment aa45913 --edit 686ec1c --message 'I cannot wait to get back to the 80s!' --no-announce
+$ rad patch comment 133e390 --edit c07e3d6 --message 'I cannot wait to get back to the 80s!' --no-announce
╭───────────────────────────────────────╮
-│ alice (you) now 686ec1c │
+│ alice (you) now c07e3d6 │
│ I cannot wait to get back to the 80s! │
╰───────────────────────────────────────╯
```
@@ -164,38 +164,38 @@ $ rad patch comment aa45913 --edit 686ec1c --message 'I cannot wait to get back
And if we really made a mistake, then we can redact the comment entirely:
```
-$ rad patch comment aa45913 --redact f4336e4 --no-announce
-✓ Redacted comment f4336e42daf76342f787d574b5ee779d89d05c7a
+$ rad patch comment 133e390 --redact 9f0c100 --no-announce
+✓ Redacted comment 9f0c1009adf9bc4565a7cbfe7b3fc192fc6aa5f4
```
Now, let's checkout the patch that we just created:
```
-$ rad patch checkout aa45913
-✓ Switched to branch patch/aa45913 at revision 6e5a3b7
-✓ Branch patch/aa45913 setup to track rad/patches/aa45913e757cacd46972733bddee5472c78fa32a
+$ rad patch checkout 133e390
+✓ Switched to branch patch/133e390 at revision 7cf1397
+✓ Branch patch/133e390 setup to track rad/patches/133e3905e9252139a7ea29881b3d5bca816372b9
```
We can also add a review verdict as such:
```
-$ rad patch review aa45913 --accept --no-message --no-announce
-✓ Patch aa45913 accepted
+$ rad patch review 133e390 --accept --no-message --no-announce
+✓ Patch 133e390 accepted
```
Showing the patch list now will reveal the favorable verdict:
```
-$ rad patch show aa45913
+$ rad patch show 133e390
╭──────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch aa45913e757cacd46972733bddee5472c78fa32a │
+│ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 │
│ Author alice (you) │
│ Labels fun │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
-│ Branches flux-capacitor-power, patch/aa45913 │
+│ Branches flux-capacitor-power, patch/133e390 │
│ Commits ahead 2, behind 0 │
│ Status open │
│ │
@@ -204,32 +204,32 @@ $ rad patch show aa45913
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision aa45913 @ [.. ]..3e674d1 by alice (you) now │
-│ ↑ Revision 6e5a3b7 @ [.. ]..27857ec by alice (you) now │
+│ ● Revision 133e390 @ [..]..3e674d1 by alice (you) now │
+│ ↑ Revision 7cf1397 @ f2de534..27857ec by alice (you) now │
│ └─ ✓ accepted by alice (you) now │
╰──────────────────────────────────────────────────────────╯
$ rad patch list
╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● aa45913 Define power requirements alice (you) ✓ 27857ec +0 -0 now fun │
+│ ● 133e390 Define power requirements alice (you) ✓ 27857ec +0 -0 now fun │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
```
If you make a mistake on the patch description, you can always change it!
```
-$ rad patch edit aa45913 --message "Define power requirements" --message "Add requirements file" --no-announce
-$ rad patch show aa45913
+$ rad patch edit 133e390 --message "Define power requirements" --message "Add requirements file" --no-announce
+$ rad patch show 133e390
╭──────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch aa45913e757cacd46972733bddee5472c78fa32a │
+│ Patch 133e3905e9252139a7ea29881b3d5bca816372b9 │
│ Author alice (you) │
│ Labels fun │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
-│ Branches flux-capacitor-power, patch/aa45913 │
+│ Branches flux-capacitor-power, patch/133e390 │
│ Commits ahead 2, behind 0 │
│ Status open │
│ │
@@ -238,8 +238,8 @@ $ rad patch show aa45913
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────┤
-│ ● Revision aa45913 @ [.. ]..3e674d1 by alice (you) now │
-│ ↑ Revision 6e5a3b7 @ [.. ]..27857ec by alice (you) now │
+│ ● Revision 133e390 @ [..]..3e674d1 by alice (you) now │
+│ ↑ Revision 7cf1397 @ f2de534..27857ec by alice (you) now │
│ └─ ✓ accepted by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-publish.md b/crates/radicle-cli/examples/rad-publish.md
index c3872e5d8c..dce7e5e15c 100644
--- a/crates/radicle-cli/examples/rad-publish.md
+++ b/crates/radicle-cli/examples/rad-publish.md
@@ -15,7 +15,7 @@ public
The repository is now in our inventory:
```
$ rad node inventory
-rad:z2ug5mwNKZB8KGpBDRTrWHAMbvHCu
+rad:z2X6q6YBaYvKvURP1SvbzTgqa8tch
```
If we try to publish again, we get an error:
@@ -34,12 +34,12 @@ repository private again __will not_ be replicated.
```
$ rad id update --visibility private --title "Privatise" --description "Reverting the rad publish event"
-✓ Identity revision 774cc1e72641d97d7dc9377745b7f454a9171747 created
+✓ Identity revision 1a9f5d33208af4fed729f9274b96ae24389218c9 created
╭────────────────────────────────────────────────────────────────────────╮
│ Title Privatise │
-│ Revision 774cc1e72641d97d7dc9377745b7f454a9171747 │
-│ Parent cecb16c9bebf35cfc4130f17efe6424f8ac71d66 │
-│ Blob 88f759a4d46e9535766fccec0cbfe1fed6160b1a │
+│ Revision 1a9f5d33208af4fed729f9274b96ae24389218c9 │
+│ Parent adf307a436d784814fdd330ee440ee8e6e396df2 │
+│ Blob 6d07bc6fa5f402ae7868068b5a697c872c45282a │
│ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
│ State accepted │
│ Quorum yes │
@@ -49,20 +49,29 @@ $ rad id update --visibility private --title "Privatise" --description "Revertin
│ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
╰────────────────────────────────────────────────────────────────────────╯
-@@ -1,13 +1,16 @@
+@@ -1,22 +1,25 @@
{
"payload": {
+ "xyz.radicle.crefs": {
+ "rules": {
+ "refs/heads/master": {
+ "allow": "delegates",
+ "threshold": 1
+ }
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
+ }
+ },
"xyz.radicle.project": {
- "defaultBranch": "master",
"description": "radicle heartwood protocol & stack",
"name": "heartwood"
}
},
"delegates": [
"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
- ],
-- "threshold": 1
-+ "threshold": 1,
+- ]
++ ],
+ "visibility": {
+ "type": "private"
+ }
diff --git a/crates/radicle-cli/examples/rad-push-and-pull-patches.md b/crates/radicle-cli/examples/rad-push-and-pull-patches.md
index 0ca7df085f..dfeaafb9c8 100644
--- a/crates/radicle-cli/examples/rad-push-and-pull-patches.md
+++ b/crates/radicle-cli/examples/rad-push-and-pull-patches.md
@@ -12,35 +12,35 @@ $ git checkout -b alice/1 -q
$ git rev-parse HEAD
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
$ git checkout master -q
-$ rad patch checkout d004b67
-✓ Switched to branch patch/d004b67 at revision d004b67
-✓ Branch patch/d004b67 setup to track rad/patches/d004b67355456c46de10c0d287e4a791ad1a6945
+$ rad patch checkout e671831
+✓ Switched to branch patch/e671831 at revision e671831
+✓ Branch patch/e671831 setup to track rad/patches/e671831ca93349c369c4d30377e42db50daecced
$ rad remote add z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote bob@z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk added
✓ Remote-tracking branch bob@z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/master created for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ git checkout master -q
$ cat .git/FETCH_HEAD
-f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 not-for-merge branch 'master' of rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc not-for-merge branch 'patches/d004b67355456c46de10c0d287e4a791ad1a6945' of rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 not-for-merge branch 'master' of rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc not-for-merge branch 'patches/e671831ca93349c369c4d30377e42db50daecced' of rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
$ git rev-parse master
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
```
``` ~alice (stderr)
-$ git checkout patch/d004b67 -q
+$ git checkout patch/e671831 -q
$ git commit --allow-empty -m "Changes #2" -q
$ git push
-✓ Patch d004b67 updated to revision 2eb705c3da98e05c083df15be5b1bd6856a0bd77
-To compare against your previous revision d004b67, run:
+✓ Patch e671831 updated to revision ea067aafab58a8454a22a65880b8ed6202679a73
+To compare against your previous revision e671831, run:
- git range-diff f2de534[..] 8d5f1ba[..] c2aaf1c[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc c2aaf1c4c36a6bacb64d3f15a310280b054a2213
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- * [new branch] patch/d004b67 -> patches/d004b67355456c46de10c0d287e4a791ad1a6945
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ * [new branch] patch/e671831 -> patches/e671831ca93349c369c4d30377e42db50daecced
```
``` ~bob
@@ -51,32 +51,32 @@ $ git push
``` ~alice (stderr)
$ git checkout master -q
$ git pull
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
- + c2aaf1c...8d5f1ba patches/d004b67355456c46de10c0d287e4a791ad1a6945 -> rad/patches/d004b67355456c46de10c0d287e4a791ad1a6945 (forced update)
+From rad://zHb72m63NBufHR7jmZi732BBT6j6
+ + c2aaf1c...8d5f1ba patches/e671831ca93349c369c4d30377e42db50daecced -> rad/patches/e671831ca93349c369c4d30377e42db50daecced (forced update)
$ git checkout - -q
$ git commit --allow-empty -m "Changes #3" -q
$ git push
-✓ Patch d004b67 updated to revision 7b5015a8dac188bb0d44a334aa68a51298750b07
-To compare against your previous revision d004b67, run:
+✓ Patch e671831 updated to revision 3af84ea059966e65747cf88341c7d5a0fd241a2d
+To compare against your previous revision e671831, run:
- git range-diff f2de534[..] 8d5f1ba[..] d9f8caf[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc d9f8caf6e25a16e82e9a4df9ebe256ce6e727aa4
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- c2aaf1c..d9f8caf patch/d004b67 -> patches/d004b67355456c46de10c0d287e4a791ad1a6945
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ c2aaf1c..d9f8caf patch/e671831 -> patches/e671831ca93349c369c4d30377e42db50daecced
```
``` ~alice
$ cat .git/FETCH_HEAD
-f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 branch 'master' of rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc not-for-merge branch 'patches/d004b67355456c46de10c0d287e4a791ad1a6945' of rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 branch 'master' of rad://zHb72m63NBufHR7jmZi732BBT6j6
+8d5f1bae4b69d8e3f6cbfc6f4bd675ed19990afc not-for-merge branch 'patches/e671831ca93349c369c4d30377e42db50daecced' of rad://zHb72m63NBufHR7jmZi732BBT6j6
```
``` ~bob (stderr)
$ git checkout master -q
$ git pull
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
- + c2aaf1c...8d5f1ba patches/d004b67355456c46de10c0d287e4a791ad1a6945 -> rad/patches/d004b67355456c46de10c0d287e4a791ad1a6945 (forced update)
+From rad://zHb72m63NBufHR7jmZi732BBT6j6
+ + c2aaf1c...8d5f1ba patches/e671831ca93349c369c4d30377e42db50daecced -> rad/patches/e671831ca93349c369c4d30377e42db50daecced (forced update)
```
``` ~bob
diff --git a/crates/radicle-cli/examples/rad-review-by-hunk.md b/crates/radicle-cli/examples/rad-review-by-hunk.md
index d21b15e1d7..54b5899126 100644
--- a/crates/radicle-cli/examples/rad-review-by-hunk.md
+++ b/crates/radicle-cli/examples/rad-review-by-hunk.md
@@ -61,8 +61,8 @@ $ git commit -q -m "Update files"
``` (stderr)
$ git push rad HEAD:refs/patches
-✓ Patch 7a2ac7e2841cc1e7394f99f107555a499b1d3f23 opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+✓ Patch c110350260b1aae1f1833be4d55f3fea28b63d1c opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
```
@@ -70,7 +70,7 @@ Finally, we do a review of the patch by hunk. The output of this command should
match `git diff master -W100% -U5 --patience`:
```
-$ rad patch review --patch -U5 7a2ac7e2841cc1e7394f99f107555a499b1d3f23 --no-announce
+$ rad patch review --patch -U5 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
╭──────────────────────╮
│ .gitignore ❲deleted❳ │
├──────────────────────┤
@@ -117,8 +117,8 @@ $ rad patch review --patch -U5 7a2ac7e2841cc1e7394f99f107555a499b1d3f23 --no-ann
Now let's accept these hunks one by one..
```
-$ rad patch review --patch --accept --hunk 1 7a2ac7e2841cc1e7394f99f107555a499b1d3f23 --no-announce
-✓ Loaded existing review ([..]) for patch 7a2ac7e2841cc1e7394f99f107555a499b1d3f23
+$ rad patch review --patch --accept --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
+✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
╭──────────────────────╮
│ .gitignore ❲deleted❳ │
├──────────────────────┤
@@ -128,8 +128,8 @@ $ rad patch review --patch --accept --hunk 1 7a2ac7e2841cc1e7394f99f107555a499b1
✓ Updated brain to a5fccf0e977225ff13c3f74c43faf4cb679bf835
```
```
-$ rad patch review --patch --accept --hunk 1 7a2ac7e2841cc1e7394f99f107555a499b1d3f23 --no-announce
-✓ Loaded existing review ([..]) for patch 7a2ac7e2841cc1e7394f99f107555a499b1d3f23
+$ rad patch review --patch --accept --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
+✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
╭──────────────────────────────────────────────────────────╮
│ DISCLAIMER.txt ❲created❳ │
├──────────────────────────────────────────────────────────┤
@@ -139,8 +139,8 @@ $ rad patch review --patch --accept --hunk 1 7a2ac7e2841cc1e7394f99f107555a499b1
✓ Updated brain to 2cdb82ea726e64d3b52847c7699d0d4759198f5c
```
```
-$ rad patch review --patch --accept -U3 --hunk 1 7a2ac7e2841cc1e7394f99f107555a499b1d3f23 --no-announce
-✓ Loaded existing review ([..]) for patch 7a2ac7e2841cc1e7394f99f107555a499b1d3f23
+$ rad patch review --patch --accept -U3 --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
+✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
╭─────────────────────────────╮
│ MENU.txt │
├─────────────────────────────┤
@@ -155,8 +155,8 @@ $ rad patch review --patch --accept -U3 --hunk 1 7a2ac7e2841cc1e7394f99f107555a4
✓ Updated brain to d4aecbb859a802a3215def0b538358bf63593953
```
```
-$ rad patch review --patch --accept -U3 --hunk 1 7a2ac7e2841cc1e7394f99f107555a499b1d3f23 --no-announce
-✓ Loaded existing review ([..]) for patch 7a2ac7e2841cc1e7394f99f107555a499b1d3f23
+$ rad patch review --patch --accept -U3 --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
+✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
╭───────────────────────────────────────╮
│ MENU.txt │
├───────────────────────────────────────┤
@@ -172,8 +172,8 @@ $ rad patch review --patch --accept -U3 --hunk 1 7a2ac7e2841cc1e7394f99f107555a4
```
```
-$ rad patch review --patch --accept --hunk 1 7a2ac7e2841cc1e7394f99f107555a499b1d3f23 --no-announce
-✓ Loaded existing review ([..]) for patch 7a2ac7e2841cc1e7394f99f107555a499b1d3f23
+$ rad patch review --patch --accept --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
+✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
╭────────────────────────────────────────────────────╮
│ INSTRUCTIONS.txt -> notes/INSTRUCTIONS.txt ❲moved❳ │
╰────────────────────────────────────────────────────╯
@@ -181,7 +181,7 @@ $ rad patch review --patch --accept --hunk 1 7a2ac7e2841cc1e7394f99f107555a499b1
```
```
-$ rad patch review --patch --accept --hunk 1 7a2ac7e2841cc1e7394f99f107555a499b1d3f23 --no-announce
-✓ Loaded existing review ([..]) for patch 7a2ac7e2841cc1e7394f99f107555a499b1d3f23
+$ rad patch review --patch --accept --hunk 1 c110350260b1aae1f1833be4d55f3fea28b63d1c --no-announce
+✓ Loaded existing review ([..]) for patch c110350260b1aae1f1833be4d55f3fea28b63d1c
✓ All hunks have been reviewed
```
diff --git a/crates/radicle-cli/examples/rad-seed-and-follow.md b/crates/radicle-cli/examples/rad-seed-and-follow.md
index ae6d4ff8d0..bcff3dbe87 100644
--- a/crates/radicle-cli/examples/rad-seed-and-follow.md
+++ b/crates/radicle-cli/examples/rad-seed-and-follow.md
@@ -21,17 +21,17 @@ $ rad follow
Now let's seed one of Eve's repositories:
```
-$ rad seed rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --scope followed --no-fetch
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
+$ rad seed rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope followed --no-fetch
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
```
We can list the repositories we are seeding by omitting the RID:
```
$ rad seed
-╭──────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├──────────────────────────────────────────────────────────────┤
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji allow followed │
-╰──────────────────────────────────────────────────────────────╯
+╭─────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├─────────────────────────────────────────────────────────────┤
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 allow followed │
+╰─────────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-seed-many.md b/crates/radicle-cli/examples/rad-seed-many.md
index 96e946e059..e478fd559d 100644
--- a/crates/radicle-cli/examples/rad-seed-many.md
+++ b/crates/radicle-cli/examples/rad-seed-many.md
@@ -3,11 +3,11 @@ same time, where each repository specified will be fetched (unless `--no-fetch`
is used):
```
-$ rad seed rad:z3Rry7rpdWuGpfjPYGzdJKQADsoNW rad:z3zTnCfi6cVSZG8eCGn6AMDypgAPm
-✓ Seeding policy updated for rad:z3Rry7rpdWuGpfjPYGzdJKQADsoNW with scope 'followed'
-Fetching rad:z3Rry7rpdWuGpfjPYGzdJKQADsoNW from the network, found 1 potential seed(s).
+$ rad seed rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG rad:z3LZFDDTVnYU7GrenyRYzNaviFF5u
+✓ Seeding policy updated for rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG with scope 'followed'
+Fetching rad:z4MWZ4byNSpmGBdSiEJ8ABNDY7qdG from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
-✓ Seeding policy updated for rad:z3zTnCfi6cVSZG8eCGn6AMDypgAPm with scope 'followed'
-Fetching rad:z3zTnCfi6cVSZG8eCGn6AMDypgAPm from the network, found 1 potential seed(s).
+✓ Seeding policy updated for rad:z3LZFDDTVnYU7GrenyRYzNaviFF5u with scope 'followed'
+Fetching rad:z3LZFDDTVnYU7GrenyRYzNaviFF5u from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
```
diff --git a/crates/radicle-cli/examples/rad-seed-scope.md b/crates/radicle-cli/examples/rad-seed-scope.md
index a502336909..e55a77297e 100644
--- a/crates/radicle-cli/examples/rad-seed-scope.md
+++ b/crates/radicle-cli/examples/rad-seed-scope.md
@@ -1,38 +1,38 @@
By default `rad seed` should add a seeding policy with the `followed` scope:
```
-$ rad seed --no-fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'followed'
+$ rad seed --no-fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'followed'
$ rad seed
-╭──────────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├──────────────────────────────────────────────────────────────┤
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji allow followed │
-╰──────────────────────────────────────────────────────────────╯
+╭─────────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├─────────────────────────────────────────────────────────────┤
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 allow followed │
+╰─────────────────────────────────────────────────────────────╯
```
The policy can be updated by explicitly specifying a different scope:
```
-$ rad seed --no-fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --scope all
-✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
+$ rad seed --no-fetch rad:zHb72m63NBufHR7jmZi732BBT6j6 --scope all
+✓ Seeding policy updated for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'all'
$ rad seed
-╭───────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├───────────────────────────────────────────────────────────┤
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji allow all │
-╰───────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├──────────────────────────────────────────────────────────┤
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 allow all │
+╰──────────────────────────────────────────────────────────╯
```
Running `rad seed` again without an explicit scope parameter should not change the existing policy:
```
-$ rad seed --no-fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Seeding policy exists for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
+$ rad seed --no-fetch rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Seeding policy exists for rad:zHb72m63NBufHR7jmZi732BBT6j6 with scope 'all'
$ rad seed
-╭───────────────────────────────────────────────────────────╮
-│ Repository Name Policy Scope │
-├───────────────────────────────────────────────────────────┤
-│ rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji allow all │
-╰───────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────╮
+│ Repository Name Policy Scope │
+├──────────────────────────────────────────────────────────┤
+│ rad:zHb72m63NBufHR7jmZi732BBT6j6 allow all │
+╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-sync.md b/crates/radicle-cli/examples/rad-sync.md
index 8b181cdf91..cf27e8178c 100644
--- a/crates/radicle-cli/examples/rad-sync.md
+++ b/crates/radicle-cli/examples/rad-sync.md
@@ -15,9 +15,9 @@ $ rad sync status --sort-by alias
╭───────────────────────────────────────────────────╮
│ Node ID Alias ? SigRefs Timestamp │
├───────────────────────────────────────────────────┤
-│ (you) alice ! 1d8285b [..] │
-│ z6Mkt67…v4N1tRk bob ✗ 55be805 [..] │
-│ z6Mkux1…nVhib7Z eve ✗ 55be805 [..] │
+│ (you) alice ! a927cc5 now │
+│ z6Mkt67…v4N1tRk bob ✗ cb2d413 now │
+│ z6Mkux1…nVhib7Z eve ✗ cb2d413 now │
╰───────────────────────────────────────────────────╯
```
@@ -37,9 +37,9 @@ $ rad sync status --sort-by alias
╭───────────────────────────────────────────────────╮
│ Node ID Alias ? SigRefs Timestamp │
├───────────────────────────────────────────────────┤
-│ (you) alice ✓ 1d8285b [..] │
-│ z6Mkt67…v4N1tRk bob ✓ 1d8285b [..] │
-│ z6Mkux1…nVhib7Z eve ✓ 1d8285b [..] │
+│ (you) alice ✓ a927cc5 now │
+│ z6Mkt67…v4N1tRk bob ✓ a927cc5 now │
+│ z6Mkux1…nVhib7Z eve ✓ a927cc5 now │
╰───────────────────────────────────────────────────╯
```
@@ -55,7 +55,7 @@ We can also use the `--fetch` option to only fetch objects:
```
$ rad sync --fetch
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
@@ -65,7 +65,7 @@ Specifying both `--fetch` and `--announce` is equivalent to specifying none:
```
$ rad sync --fetch --announce
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 2 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
@@ -76,7 +76,7 @@ It's also possible to use the `--seed` flag to only sync with a specific node:
```
$ rad sync --fetch --seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 3 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 3 potential seed(s).
✓ Target met: 1 preferred seed(s).
🌱 Fetched from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
```
@@ -90,7 +90,7 @@ $ rad issue open --title "Test `rad sync --replicas`" --description "Check that
```
$ rad sync --replicas 1
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 2 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 2 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
✓ Synced with 1 seed(s)
@@ -127,7 +127,7 @@ Fetching rad:z39mP9rQAaGmERfUMPULfPUi473tY from the network, found 1 potential s
Also note that you cannot sync an unseeded repo:
```
$ rad unseed rad:z39mP9rQAaGmERfUMPULfPUi473tY
-[...]
+[..]
```
``` (fail)
$ rad sync rad:z39mP9rQAaGmERfUMPULfPUi473tY
diff --git a/crates/radicle-cli/examples/rad-unseed-many.md b/crates/radicle-cli/examples/rad-unseed-many.md
index edeca073f4..8e86c65c96 100644
--- a/crates/radicle-cli/examples/rad-unseed-many.md
+++ b/crates/radicle-cli/examples/rad-unseed-many.md
@@ -8,15 +8,15 @@ $ rad ls
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Name RID Visibility Head Description │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji public f2de534 Radicle Heartwood Protocol & Stack │
-│ nixpkgs rad:zyFFr2iwoTEfNF4jGNZHuoy7odMh public f2de534 Home for Nix Packages │
+│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
+│ nixpkgs rad:z2Jsyemt3hkcnszYZ6ijVPE9auNgG public f2de534 Home for Nix Packages │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
We could stop seeding them if we didn't want other nodes to fetch them from us:
```
-$ rad unseed rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji rad:zyFFr2iwoTEfNF4jGNZHuoy7odMh
-✓ Seeding policy for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji removed
-✓ Seeding policy for rad:zyFFr2iwoTEfNF4jGNZHuoy7odMh removed
+$ rad unseed rad:zHb72m63NBufHR7jmZi732BBT6j6 rad:z2Jsyemt3hkcnszYZ6ijVPE9auNgG
+✓ Seeding policy for rad:zHb72m63NBufHR7jmZi732BBT6j6 removed
+✓ Seeding policy for rad:z2Jsyemt3hkcnszYZ6ijVPE9auNgG removed
```
diff --git a/crates/radicle-cli/examples/rad-unseed.md b/crates/radicle-cli/examples/rad-unseed.md
index f258e51e20..0804a354d7 100644
--- a/crates/radicle-cli/examples/rad-unseed.md
+++ b/crates/radicle-cli/examples/rad-unseed.md
@@ -2,18 +2,18 @@ Let's say we have a local repository we've initialized:
```
$ rad ls
-╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji public f2de534 Radicle Heartwood Protocol & Stack │
-╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 public f2de534 Radicle Heartwood Protocol & Stack │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
We could stop seeding it if we didn't want other nodes to fetch it from us:
```
-$ rad unseed rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
-✓ Seeding policy for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji removed
+$ rad unseed rad:zHb72m63NBufHR7jmZi732BBT6j6
+✓ Seeding policy for rad:zHb72m63NBufHR7jmZi732BBT6j6 removed
```
Now, if we run `rad ls`, we see it's gone:
@@ -29,11 +29,11 @@ However, with the `--all` flag, we can see it still, but as local-only:
```
$ rad ls --all
-╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ Name RID Visibility Head Description │
-├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ heartwood rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji local f2de534 Radicle Heartwood Protocol & Stack │
-╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Name RID Visibility Head Description │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ heartwood rad:zHb72m63NBufHR7jmZi732BBT6j6 local f2de534 Radicle Heartwood Protocol & Stack │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Hence, we also see that it isn't in our inventory and isn't seeded:
diff --git a/crates/radicle-cli/examples/rad-watch.md b/crates/radicle-cli/examples/rad-watch.md
index 39e3fc841e..bae2928477 100644
--- a/crates/radicle-cli/examples/rad-watch.md
+++ b/crates/radicle-cli/examples/rad-watch.md
@@ -16,5 +16,5 @@ $ git push rad master
```
``` ~bob
-$ rad watch --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --ref 'refs/heads/master' --target e09c4dc1b54443ceea715ea648afecdcfd1dd7d0 --interval 500
+$ rad watch --repo rad:zHb72m63NBufHR7jmZi732BBT6j6 --node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi --ref 'refs/heads/master' --target e09c4dc1b54443ceea715ea648afecdcfd1dd7d0 --interval 500
```
diff --git a/crates/radicle-cli/examples/workflow/3-issues.md b/crates/radicle-cli/examples/workflow/3-issues.md
index 895246c1d5..47847b7dcf 100644
--- a/crates/radicle-cli/examples/workflow/3-issues.md
+++ b/crates/radicle-cli/examples/workflow/3-issues.md
@@ -7,7 +7,7 @@ Let's say the new car you are designing with your peers has a problem with its f
$ rad issue open --title "flux capacitor underpowered" --description "Flux capacitor power requirements exceed current supply" --no-announce
╭─────────────────────────────────────────────────────────╮
│ Title flux capacitor underpowered │
-│ Issue 9037b7a42323d4b79e6a48b7d05d3bbaae11d69b │
+│ Issue 36deff84cc23afb5bc3345dfcb2948a4129525c5 │
│ Author bob (you) │
│ Status open │
│ │
@@ -22,7 +22,7 @@ $ rad issue list
╭──────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Labels Assignees Opened │
├──────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● 9037b7a flux capacitor underpowered bob (you) now │
+│ ● 36deff8 flux capacitor underpowered bob (you) now │
╰──────────────────────────────────────────────────────────────────────────────────────────╯
```
@@ -31,6 +31,6 @@ found an important detail about the car's power requirements. It will help
whoever works on a fix.
```
-$ rad issue comment 9037b7a42323d4b79e6a48b7d05d3bbaae11d69b --message 'The flux capacitor needs 1.21 Gigawatts' -q --no-announce
-400cb155f512b4880858bb05f935104c34167b28
+$ rad issue comment 36deff84cc23afb5bc3345dfcb2948a4129525c5 --message 'The flux capacitor needs 1.21 Gigawatts' -q --no-announce
+6a91ecdea4375ded044a8058df5968da82435eff
```
diff --git a/crates/radicle-cli/examples/workflow/4-patching-contributor.md b/crates/radicle-cli/examples/workflow/4-patching-contributor.md
index d9d1d99e3c..6dfa4a84d1 100644
--- a/crates/radicle-cli/examples/workflow/4-patching-contributor.md
+++ b/crates/radicle-cli/examples/workflow/4-patching-contributor.md
@@ -26,8 +26,8 @@ Once the code is ready, we open a patch with our changes.
``` (stderr)
$ git push rad -o no-sync -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
-✓ Patch e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46 opened
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+✓ Patch ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 opened
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
* [new reference] HEAD -> refs/patches
```
@@ -38,15 +38,15 @@ $ rad patch
╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● e4934b6 Define power requirements bob (you) - 3e674d1 +0 -0 now │
+│ ● ca6a7fd Define power requirements bob (you) - 3e674d1 +0 -0 now │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
-$ rad patch show e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46
+$ rad patch show ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
╭────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46 │
+│ Patch ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 │
│ Author bob (you) │
│ Head 3e674d1a1df90807e934f9ae5da2591dd6848a33 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Branches flux-capacitor-power │
│ Commits ahead 1, behind 0 │
@@ -56,15 +56,15 @@ $ rad patch show e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46
├────────────────────────────────────────────────────────┤
│ 3e674d1 Define power requirements │
├────────────────────────────────────────────────────────┤
-│ ● Revision e4934b6 @ [.. ]..3e674d1 by bob (you) now │
+│ ● Revision ca6a7fd @ [..]..3e674d1 by bob (you) now │
╰────────────────────────────────────────────────────────╯
```
We can also confirm that the patch branch is in storage:
```
-$ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk refs/heads/patches/*
-3e674d1a1df90807e934f9ae5da2591dd6848a33 refs/heads/patches/e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46
+$ git ls-remote rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk refs/heads/patches/*
+3e674d1a1df90807e934f9ae5da2591dd6848a33 refs/heads/patches/ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
```
Wait, let's add a README too! Just for fun.
@@ -79,19 +79,19 @@ $ git commit --message "Add README, just for the fun"
```
``` (stderr) RAD_SOCKET=/dev/null
$ git push -o patch.message="Add README, just for the fun"
-✓ Patch e4934b6 updated to revision 773b9aab58b11e9fa83d0ed0baca2bea6ff889c9
-To compare against your previous revision e4934b6, run:
+✓ Patch ca6a7fd updated to revision 9cb46b855c03ece36e89fa333acd9f68e047ec92
+To compare against your previous revision ca6a7fd, run:
- git range-diff f2de534[..] 3e674d1[..] 27857ec[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 3e674d1a1df90807e934f9ae5da2591dd6848a33 27857ec9eb04c69cacab516e8bf4b5fd36090f66
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
- 3e674d1..27857ec flux-capacitor-power -> patches/e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
+ 3e674d1..27857ec flux-capacitor-power -> patches/ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
```
And let's leave a quick comment for our team:
```
-$ rad patch comment e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46 --message 'I cannot wait to get back to the 90s!' -q
-8c66f87afadc7c7c857f8bb92973c25f64e75776
+$ rad patch comment ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 --message 'I cannot wait to get back to the 90s!' -q
+3fb162f59de0a45ba31cc3c580b9fc750c981bec
✓ Synced with 1 seed(s)
```
diff --git a/crates/radicle-cli/examples/workflow/5-patching-maintainer.md b/crates/radicle-cli/examples/workflow/5-patching-maintainer.md
index a459df0262..5dd1f20d7f 100644
--- a/crates/radicle-cli/examples/workflow/5-patching-maintainer.md
+++ b/crates/radicle-cli/examples/workflow/5-patching-maintainer.md
@@ -8,7 +8,7 @@ of this.
```
$ rad remote add z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --name bob --sync --fetch
✓ Follow policy updated for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
✓ Remote bob added
✓ Remote-tracking branch bob/master created for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
@@ -21,19 +21,19 @@ $ rad inbox --sort-by id
╭────────────────────────────────────────────────────────────────────────────╮
│ heartwood │
├────────────────────────────────────────────────────────────────────────────┤
-│ 001 ● 9037b7a flux capacitor underpowered issue open bob now │
-│ 002 ● e4934b6 Define power requirements patch open bob now │
+│ 001 ● 36deff8 flux capacitor underpowered issue open bob now │
+│ 002 ● ca6a7fd Define power requirements patch open bob now │
╰────────────────────────────────────────────────────────────────────────────╯
$ git branch -r
- bob/patches/e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46
+ bob/patches/ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
rad/master
-$ rad patch show e4934b6
+$ rad patch show ca6a7fd
╭──────────────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46 │
+│ Patch ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 │
│ Author bob z6Mkt67…v4N1tRk │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Commits ahead 2, behind 0 │
│ Status open │
@@ -43,8 +43,8 @@ $ rad patch show e4934b6
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────────────┤
-│ ● Revision e4934b6 @ [.. ]..3e674d1 by bob z6Mkt67…v4N1tRk now │
-│ ↑ Revision 773b9aa @ [.. ]..27857ec by bob z6Mkt67…v4N1tRk now │
+│ ● Revision ca6a7fd @ [..]..3e674d1 by bob z6Mkt67…v4N1tRk now │
+│ ↑ Revision 9cb46b8 @ f2de534..27857ec by bob z6Mkt67…v4N1tRk now │
╰──────────────────────────────────────────────────────────────────╯
```
@@ -54,35 +54,35 @@ way will tell others about the corrections we needed before merging the
changes.
```
-$ rad patch checkout e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46
-✓ Switched to branch patch/e4934b6 at revision 773b9aa
-✓ Branch patch/e4934b6 setup to track rad/patches/e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46
+$ rad patch checkout ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
+✓ Switched to branch patch/ca6a7fd at revision 9cb46b8
+✓ Branch patch/ca6a7fd setup to track rad/patches/ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
$ git mv REQUIREMENTS REQUIREMENTS.md
$ git commit -m "Use markdown for requirements"
-[patch/e4934b6 f567f69] Use markdown for requirements
+[patch/ca6a7fd f567f69] Use markdown for requirements
1 file changed, 0 insertions(+), 0 deletions(-)
rename REQUIREMENTS => REQUIREMENTS.md (100%)
```
``` (stderr)
$ git push rad -o no-sync -o patch.message="Use markdown for requirements"
-✓ Patch e4934b6 updated to revision 9d62420e779e5cfe1dc02c51eddec9a0907aa844
-To compare against your previous revision 773b9aa, run:
+✓ Patch ca6a7fd updated to revision 79bbae479b27cfdf276c6ca26e318af20441db03
+To compare against your previous revision 9cb46b8, run:
- git range-diff f2de534[..] 27857ec[..] f567f69[..]
+ git range-diff f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 27857ec9eb04c69cacab516e8bf4b5fd36090f66 f567f695d25b4e8fb63b5f5ad2a584529826e908
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
- * [new branch] patch/e4934b6 -> patches/e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ * [new branch] patch/ca6a7fd -> patches/ca6a7fdc0bb8b89bcb4459446ae9666ac5358633
```
Great, all fixed up, lets accept and merge the code.
```
-$ rad patch review e4934b6 --revision 9d62420 --accept
-✓ Patch e4934b6 accepted
+$ rad patch review ca6a7fd --revision 79bbae4 --accept
+✓ Patch ca6a7fd accepted
✓ Synced with 1 seed(s)
$ git checkout master
Your branch is up to date with 'rad/master'.
-$ git merge patch/e4934b6
+$ git merge patch/ca6a7fd
Updating f2de534..f567f69
Fast-forward
README.md | 0
@@ -93,23 +93,23 @@ Fast-forward
```
``` (stderr)
$ git push rad master
-✓ Patch e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46 merged at revision 9d62420
+✓ Patch ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 merged at revision 79bbae4
✓ Canonical reference refs/heads/master updated to target commit f567f695d25b4e8fb63b5f5ad2a584529826e908
✓ Synced with 1 seed(s)
-To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+To rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..f567f69 master -> master
```
The patch is now merged and closed :).
```
-$ rad patch show e4934b6
+$ rad patch show ca6a7fd
╭──────────────────────────────────────────────────────────────────╮
│ Title Define power requirements │
-│ Patch e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46 │
+│ Patch ca6a7fdc0bb8b89bcb4459446ae9666ac5358633 │
│ Author bob z6Mkt67…v4N1tRk │
│ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │
-│ Base [.. ] │
+│ Base [..] │
│ Target master │
│ Commits ahead 0, behind 1 │
│ Status merged │
@@ -119,9 +119,9 @@ $ rad patch show e4934b6
│ 27857ec Add README, just for the fun │
│ 3e674d1 Define power requirements │
├──────────────────────────────────────────────────────────────────┤
-│ ● Revision e4934b6 @ [.. ]..3e674d1 by bob z6Mkt67…v4N1tRk now │
-│ ↑ Revision 773b9aa @ [.. ]..27857ec by bob z6Mkt67…v4N1tRk now │
-│ ↑ Revision 9d62420 @ [.. ]..f567f69 by alice (you) now │
+│ ● Revision ca6a7fd @ [..]..3e674d1 by bob z6Mkt67…v4N1tRk now │
+│ ↑ Revision 9cb46b8 @ f2de534..27857ec by bob z6Mkt67…v4N1tRk now │
+│ ↑ Revision 79bbae4 @ [..]..f567f69 by alice (you) now │
│ └─ ✓ accepted by alice (you) now │
│ └─ ✓ merged by alice (you) │
╰──────────────────────────────────────────────────────────────────╯
@@ -137,7 +137,7 @@ Finally, we will close the issue that was opened for this
patch, marking it as solved:
```
-$ rad issue state 9037b7a --solved
-✓ Issue 9037b7a is now solved
+$ rad issue state 36deff8 --solved
+✓ Issue 36deff8 is now solved
✓ Synced with 1 seed(s)
```
diff --git a/crates/radicle-cli/examples/workflow/6-pulling-contributor.md b/crates/radicle-cli/examples/workflow/6-pulling-contributor.md
index a34dfbfe97..7c478f7b99 100644
--- a/crates/radicle-cli/examples/workflow/6-pulling-contributor.md
+++ b/crates/radicle-cli/examples/workflow/6-pulling-contributor.md
@@ -10,7 +10,7 @@ f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
Then, we call `rad sync --fetch` to fetch from the maintainer:
```
$ rad sync --fetch
-Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
+Fetching rad:zHb72m63NBufHR7jmZi732BBT6j6 from the network, found 1 potential seed(s).
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
@@ -22,9 +22,9 @@ Your branch is up to date with 'rad/master'.
```
``` (stderr) RAD_SOCKET=/dev/null
$ git pull --all --ff
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
+From rad://zHb72m63NBufHR7jmZi732BBT6j6
f2de534..f567f69 master -> rad/master
-From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+From rad://zHb72m63NBufHR7jmZi732BBT6j6/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
f2de534..f567f69 master -> alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master
```
diff --git a/crates/radicle-cli/tests/commands.rs b/crates/radicle-cli/tests/commands.rs
index 8807212de3..73eadd8efb 100644
--- a/crates/radicle-cli/tests/commands.rs
+++ b/crates/radicle-cli/tests/commands.rs
@@ -99,7 +99,7 @@ fn rad_remote() {
let bob = environment.relay("bob");
let eve = environment.relay("eve");
let home = alice.home.clone();
- let rid = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let rid = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
// Set up a test repository.
environment.repository(&alice);
diff --git a/crates/radicle-cli/tests/commands/clone.rs b/crates/radicle-cli/tests/commands/clone.rs
index 8ccee2b80c..a84491ee16 100644
--- a/crates/radicle-cli/tests/commands/clone.rs
+++ b/crates/radicle-cli/tests/commands/clone.rs
@@ -179,7 +179,7 @@ fn rad_clone_connect() {
let alice = environment.node("alice");
let bob = environment.node("bob");
let mut eve = environment.node("eve");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
let ua = UserAgent::default();
let now = LocalTime::now().into();
diff --git a/crates/radicle-cli/tests/commands/git.rs b/crates/radicle-cli/tests/commands/git.rs
index 9ab6eb1e5f..e2b6fcbada 100644
--- a/crates/radicle-cli/tests/commands/git.rs
+++ b/crates/radicle-cli/tests/commands/git.rs
@@ -10,7 +10,7 @@ fn git_push_diverge() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -53,7 +53,7 @@ fn git_push_converge() {
let alice = environment.node("alice");
let bob = environment.node("bob");
let eve = environment.node("eve");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -113,7 +113,7 @@ fn git_push_amend() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -158,7 +158,7 @@ fn git_push_rollback() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -265,7 +265,7 @@ fn git_push_canonical_lightweight_tags() {
let alice = environment.node("alice");
let bob = environment.node("bob");
- let rid = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let rid = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
fixtures::repository(environment.work(&alice));
@@ -311,7 +311,7 @@ fn git_push_canonical() {
let alice = environment.node("alice");
let bob = environment.node("bob");
- let rid = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let rid = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
fixtures::repository(environment.work(&alice));
diff --git a/crates/radicle-cli/tests/commands/id.rs b/crates/radicle-cli/tests/commands/id.rs
index 24f0e8c27c..2bdc050057 100644
--- a/crates/radicle-cli/tests/commands/id.rs
+++ b/crates/radicle-cli/tests/commands/id.rs
@@ -15,7 +15,7 @@ fn rad_id() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -61,7 +61,7 @@ fn rad_id_threshold() {
let alice = environment.node("alice");
let bob = environment.node("bob");
let seed = environment.node("seed");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -117,7 +117,7 @@ fn rad_id_threshold_soft_fork() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -173,7 +173,7 @@ fn rad_id_multi_delegate() {
let alice = environment.node("alice");
let bob = environment.node("bob");
let eve = environment.node("eve");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -227,7 +227,7 @@ fn rad_id_unauthorized_delegate() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -281,7 +281,7 @@ fn rad_id_collaboration() {
let eve = environment.node("eve");
let seed = environment.seed("seed");
let distrustful = environment.seed("distrustful");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -382,7 +382,7 @@ fn rad_id_conflict() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
diff --git a/crates/radicle-cli/tests/commands/patch.rs b/crates/radicle-cli/tests/commands/patch.rs
index d908f46178..873968db69 100644
--- a/crates/radicle-cli/tests/commands/patch.rs
+++ b/crates/radicle-cli/tests/commands/patch.rs
@@ -46,7 +46,7 @@ fn rad_patch_checkout_force() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -156,7 +156,7 @@ fn rad_patch_delete() {
let alice = environment.relay("alice");
let bob = environment.relay("bob");
let seed = environment.relay("seed");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -211,7 +211,7 @@ fn rad_push_and_pull_patches() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
@@ -452,7 +452,7 @@ fn rad_patch_merge_unauthorized_branch() {
let mut environment = Environment::new();
let alice = environment.node("alice");
let bob = environment.node("bob");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
environment.repository(&alice);
diff --git a/crates/radicle-cli/tests/commands/remote.rs b/crates/radicle-cli/tests/commands/remote.rs
index 68407d3309..ff99cef41f 100644
--- a/crates/radicle-cli/tests/commands/remote.rs
+++ b/crates/radicle-cli/tests/commands/remote.rs
@@ -13,7 +13,7 @@ fn rad_remote() {
let bob = environment.relay("bob");
let eve = environment.relay("eve");
let home = alice.home.clone();
- let rid = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let rid = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
// Set up a test repository.
environment.repository(&alice);
diff --git a/crates/radicle-cli/tests/commands/sync.rs b/crates/radicle-cli/tests/commands/sync.rs
index f39d292f2c..77a136f919 100644
--- a/crates/radicle-cli/tests/commands/sync.rs
+++ b/crates/radicle-cli/tests/commands/sync.rs
@@ -68,7 +68,7 @@ fn rad_sync() {
let alice = environment.seed("alice");
let bob = environment.seed("bob");
let eve = environment.seed("eve");
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
radicle::test::fixtures::repository(working.join("acme"));
@@ -117,7 +117,7 @@ fn test_replication_via_seed() {
seeding_policy: DefaultSeedingPolicy::permissive(),
..crate::util::environment::config::relay("seed")
});
- let rid = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let rid = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
let mut alice = alice.spawn();
let mut bob = bob.spawn();
diff --git a/crates/radicle-cli/tests/commands/utility.rs b/crates/radicle-cli/tests/commands/utility.rs
index cbabfeb40e..70beacab63 100644
--- a/crates/radicle-cli/tests/commands/utility.rs
+++ b/crates/radicle-cli/tests/commands/utility.rs
@@ -75,7 +75,7 @@ fn rad_clean() {
let working = environment.tempdir().join("working");
// Set up a test project.
- let acme = RepoId::from_str("z42hL2jL4XNk6K8oHQaSWfMgCL7ji").unwrap();
+ let acme = RepoId::from_str("zHb72m63NBufHR7jmZi732BBT6j6").unwrap();
radicle::test::fixtures::repository(working.join("acme"));
test(
"examples/rad-init.md",
commit c0c49d353eafd542c35e9d05fcda61e0ccfeb70f
Author: Yorgos Saslis <yorgos.work@proton.me>
Date: Thu Jul 30 16:50:29 2026 +0000
squash! radicle: Govern default branch via canonical refs
== Update identity tests for canonical-refs default branch
Review: The identity tests still built documents around a top-level threshold and
a `Project` default branch, neither of which exists any more.
Bring the scaffolding into line with the new model: constructors and
`arbitrary` supply the default branch, `Project::update` drops its
argument, and the cases that depended on raising a document-level
threshold are dropped since that knob has moved into the crefs payload.
The concurrent-resolution winner flips accordingly, still exercising
terminal-state protection.
diff --git a/crates/radicle-node/src/tests/e2e.rs b/crates/radicle-node/src/tests/e2e.rs
index 6ab9579d59..4a9339f4af 100644
--- a/crates/radicle-node/src/tests/e2e.rs
+++ b/crates/radicle-node/src/tests/e2e.rs
@@ -1370,12 +1370,8 @@ fn missing_delegate_default_branch() {
// Helper to assert that Bob's default branch is not in storage
let assert_bobs_default_is_missing = |repo: &Repository| {
- let doc = repo.identity_doc().unwrap();
- let project = doc.project().unwrap();
- let default_branch = repo.reference(
- &bob_key,
- &radicle::git::refs::branch(project.default_branch()),
- );
+ let branch_name = repo.default_branch_name().unwrap();
+ let default_branch = repo.reference(&bob_key, &radicle::git::refs::branch(&branch_name));
assert!(matches!(
default_branch,
Err(e) if e.is_not_found()
@@ -1697,8 +1693,7 @@ fn test_fetch_emits_canonical_ref_update() {
let default_branch: git::fmt::Qualified = {
let repo = alice.storage.repository(rid).unwrap();
- let proj = repo.project().unwrap();
- git::fmt::lit::refs_heads(proj.default_branch()).into()
+ repo.default_branch().unwrap().to_owned()
};
alice.commit_to(rid, &default_branch);
@@ -1988,12 +1983,23 @@ fn test_fetch_emits_canonical_ref_update_partial_glob() {
.unwrap()
.doc
.with_edits(|raw| {
+ // The canonical references payload is now the sole source of
+ // truth for the default branch, so it must carry the default
+ // branch rule and `HEAD` symbolic reference alongside the
+ // partial-glob rule under test.
let crefs = serde_json::json!({
"rules": {
+ "refs/heads/master": {
+ "threshold": 1,
+ "allow": "delegates"
+ },
"refs/heads/main*": {
"threshold": 1,
"allow": "delegates"
}
+ },
+ "symbolic": {
+ "HEAD": "refs/heads/master"
}
});
diff --git a/crates/radicle/src/cob/identity.rs b/crates/radicle/src/cob/identity.rs
index 6429fea5a7..614d60b0f7 100644
--- a/crates/radicle/src/cob/identity.rs
+++ b/crates/radicle/src/cob/identity.rs
@@ -1372,11 +1372,6 @@ mod test {
.unwrap_err();
assert_eq!(identity.current, r0);
- // Change threshold to `2`, even though there's only one delegate. This should
- // fail as it makes the master branch immutable.
- doc.threshold = 2;
- assert!(doc.clone().verified().is_err());
-
// Let's add another delegate.
doc.delegate(bob.public_key().into());
// The update should go through now.
@@ -2250,10 +2245,13 @@ mod test {
alice.repo.fetch(bob);
alice_identity.reload().unwrap();
- assert_eq!(
- alice_identity.revision(&a2).unwrap().state,
- State::Redacted(RedactedBy::Author)
- );
+ // Nb. `a2` reaches quorum (Bob's acceptance) concurrently with Alice's
+ // redaction. The winner of this concurrent resolution depends on the
+ // operations' OIDs, which changed when the default branch and threshold
+ // moved into the `xyz.radicle.crefs` payload. Here acceptance wins,
+ // which still exercises terminal-state protection: redacting an already
+ // accepted revision below is a no-op.
+ assert_eq!(alice_identity.revision(&a2).unwrap().state, State::Accepted);
let mut alice_doc3 = alice_identity.doc().clone().edit();
alice_doc3.visibility = Visibility::private([alice.signer.public_key().into()]);
@@ -2551,7 +2549,7 @@ mod test {
// Make a change to the description and sign it.
let desc = prj.description().to_owned() + "!";
- let prj = prj.update(None, desc, None).unwrap();
+ let prj = prj.update(None, desc).unwrap();
doc.payload.insert(PayloadId::project(), prj.clone().into());
identity
.update(
@@ -2563,7 +2561,6 @@ mod test {
// Add Bob as a delegate, and sign it.
doc.delegate(bob.public_key().into());
- doc.threshold = 2;
identity
.update(
cob::Title::new("Add bob").unwrap(),
@@ -2589,7 +2586,7 @@ mod test {
// Update description again with signatures by Eve and Bob.
let desc = prj.description().to_owned() + "?";
- let prj = prj.update(None, desc, None).unwrap();
+ let prj = prj.update(None, desc).unwrap();
doc.payload.insert(PayloadId::project(), prj.into());
let revision = bob_identity
.update(
diff --git a/crates/radicle/src/cob/identity/test/property.rs b/crates/radicle/src/cob/identity/test/property.rs
index 3e79d09657..1cf274a76d 100644
--- a/crates/radicle/src/cob/identity/test/property.rs
+++ b/crates/radicle/src/cob/identity/test/property.rs
@@ -138,7 +138,6 @@ impl Harness {
let mut alice_doc = alice_identity.doc().clone().edit();
alice_doc.delegate(bob.signer.public_key().into());
alice_doc.delegate(eve.signer.public_key().into());
- alice_doc.threshold = 2;
let a1 = alice_identity
.update(
@@ -432,7 +431,7 @@ impl Harness {
fn update_description(&self, doc: &mut crate::prelude::RawDoc, msg: &str) {
let prj = doc.project().unwrap();
let desc = format!("{} {}", msg, self.revisions.len());
- let prj = prj.update(None, desc, None).unwrap();
+ let prj = prj.update(None, desc).unwrap();
doc.payload.insert(PayloadId::project(), prj.into());
}
@@ -451,11 +450,6 @@ impl Harness {
if doc.delegates.contains(&target_delegate) {
if doc.delegates.len() > 1 {
doc.rescind(&target_delegate).unwrap();
-
- // Ensure threshold never exceeds new delegate count
- if doc.threshold > doc.delegates.len() {
- doc.threshold = doc.delegates.len();
- }
}
} else {
doc.delegate(target_delegate);
diff --git a/crates/radicle/src/test/arbitrary.rs b/crates/radicle/src/test/arbitrary.rs
index 903e1d43cf..f7310c1329 100644
--- a/crates/radicle/src/test/arbitrary.rs
+++ b/crates/radicle/src/test/arbitrary.rs
@@ -132,13 +132,8 @@ impl Arbitrary for Project {
let description = iter::repeat_with(|| rng.alphanumeric())
.take(length * 2)
.collect();
- let default_branch: git::fmt::RefString = iter::repeat_with(|| rng.alphanumeric())
- .take(length)
- .collect::<String>()
- .try_into()
- .unwrap();
- Project::new(name, description, default_branch).unwrap()
+ Project::new(name, description).unwrap()
}
}
@@ -160,7 +155,13 @@ impl Arbitrary for RawDoc {
let delegate = Did::arbitrary(g);
let visibility = Visibility::arbitrary(g);
- Self::new(proj, vec![delegate], 1, visibility)
+ Self::new(
+ proj,
+ vec![delegate],
+ &git::fmt::refname!("master"),
+ 1,
+ visibility,
+ )
}
}
@@ -173,7 +174,13 @@ impl Arbitrary for Doc {
.collect::<Vec<_>>();
let threshold = delegates.len() / 2 + 1;
let visibility = Visibility::arbitrary(g);
- let doc = RawDoc::new(project, delegates, threshold, visibility);
+ let doc = RawDoc::new(
+ project,
+ delegates,
+ &git::fmt::refname!("master"),
+ threshold,
+ visibility,
+ );
doc.verified().unwrap()
}
commit 420484db6fce21517fb2098184a8a085041ae22a
Author: Yorgos Saslis <yorgos.work@proton.me>
Date: Thu Jul 30 16:50:29 2026 +0000
squash! radicle: Govern default branch via canonical refs
== Read default branch via canonical refs at call sites
Review: Callers still reached for `Project::default_branch`, which no longer
holds the default branch now that it lives in the `xyz.radicle.crefs`
payload.
Route every caller of `Project::default_branch` through the identity document,
adding `ReadRepository::default_branch_name` as a convenience and threading the
branch through `rad::init` to `Doc::initial`. This covers forking and
checkout in the `radicle` crate and the `init`, `checkout`, `clone`, and
`remote` CLI commands.
diff --git a/crates/radicle-cli/src/commands/checkout.rs b/crates/radicle-cli/src/commands/checkout.rs
index 3b8a1b1f5f..4ffd82b091 100644
--- a/crates/radicle-cli/src/commands/checkout.rs
+++ b/crates/radicle-cli/src/commands/checkout.rs
@@ -66,7 +66,7 @@ fn execute(args: Args, profile: &Profile) -> anyhow::Result<PathBuf> {
setup_remotes(
project::SetupRemote {
rid: args.repo,
- tracking: Some(payload.default_branch().clone()),
+ tracking: Some(doc.default_branch_name()?),
repo: &repo,
fetch: true,
},
diff --git a/crates/radicle-cli/src/commands/clone.rs b/crates/radicle-cli/src/commands/clone.rs
index e0adfdce00..6ff51908a3 100644
--- a/crates/radicle-cli/src/commands/clone.rs
+++ b/crates/radicle-cli/src/commands/clone.rs
@@ -60,7 +60,7 @@ pub fn run(args: Args, ctx: impl term::Context) -> anyhow::Result<()> {
.map(|d| **d)
.filter(|id| id != profile.id())
.collect::<Vec<_>>();
- let default_branch = proj.default_branch().clone();
+ let default_branch = doc.default_branch_name()?;
let path = if !args.bare {
working.workdir().unwrap()
} else {
diff --git a/crates/radicle-cli/src/commands/init.rs b/crates/radicle-cli/src/commands/init.rs
index 7774189e61..d4a1a9d2d9 100644
--- a/crates/radicle-cli/src/commands/init.rs
+++ b/crates/radicle-cli/src/commands/init.rs
@@ -19,6 +19,7 @@ use radicle::identity::project::ProjectName;
use radicle::identity::{Doc, RepoId, Visibility};
use radicle::node::events::UploadPack;
use radicle::node::{DEFAULT_SUBSCRIBE_TIMEOUT, Event, Handle, NodeId};
+use radicle::storage::ReadRepository as _;
use radicle::storage::ReadStorage as _;
use radicle::{Node, profile};
@@ -168,13 +169,14 @@ pub fn init(repo: git::Repository, args: Args, profile: &profile::Profile) -> an
}
}
- if args.set_upstream || git::branch_remote(&repo, proj.default_branch()).is_err() {
+ let default_branch = doc.default_branch_name()?;
+ if args.set_upstream || git::branch_remote(&repo, &default_branch).is_err() {
// Setup, e.g. `master` -> `rad/master`
radicle::git::set_upstream(
&repo,
&*radicle::rad::REMOTE_NAME,
- proj.default_branch(),
- radicle::git::refs::workdir::branch(proj.default_branch()),
+ &default_branch,
+ radicle::git::refs::workdir::branch(&default_branch),
)?;
} else {
push_cmd = format!("git push {} {branch}", *radicle::rad::REMOTE_NAME);
@@ -231,7 +233,8 @@ pub fn init_existing(
profile: &profile::Profile,
) -> anyhow::Result<()> {
let stored = profile.storage.repository(rid)?;
- let project = stored.project()?;
+ // Ensure the repository has a valid project payload.
+ stored.project()?;
let url = radicle::git::Url::from(rid);
let interactive = args.interactive();
@@ -245,11 +248,12 @@ pub fn init_existing(
if args.set_upstream {
// Setup, e.g. `master` -> `rad/master`
+ let default_branch = stored.default_branch_name()?;
radicle::git::set_upstream(
&working,
&*radicle::rad::REMOTE_NAME,
- project.default_branch(),
- radicle::git::refs::workdir::branch(project.default_branch()),
+ &default_branch,
+ radicle::git::refs::workdir::branch(&default_branch),
)?;
}
diff --git a/crates/radicle-cli/src/commands/remote.rs b/crates/radicle-cli/src/commands/remote.rs
index c7ed3fca71..3e9d5a7b9b 100644
--- a/crates/radicle-cli/src/commands/remote.rs
+++ b/crates/radicle-cli/src/commands/remote.rs
@@ -6,6 +6,7 @@ pub mod rm;
mod args;
+use radicle::storage::ReadRepository as _;
use radicle::storage::ReadStorage;
use crate::terminal::Context;
@@ -30,13 +31,12 @@ pub fn run(args: Args, ctx: impl Context) -> anyhow::Result<()> {
fetch,
sync,
} => {
- let proj = profile.storage.repository(rid)?.project()?;
- let branch = proj.default_branch();
+ let branch = profile.storage.repository(rid)?.default_branch_name()?;
self::add::run(
rid,
&nid,
name,
- Some(branch.clone()),
+ Some(branch),
&profile,
&working,
fetch.should_fetch(),
diff --git a/crates/radicle/src/rad.rs b/crates/radicle/src/rad.rs
index 74d89fd8f5..50aeda9c29 100644
--- a/crates/radicle/src/rad.rs
+++ b/crates/radicle/src/rad.rs
@@ -61,12 +61,7 @@ where
{
// TODO: Better error when project id already exists in storage, but remote doesn't.
let delegate: identity::Did = signer.public_key().into();
- let proj = Project::new(
- name.to_owned(),
- description.to_owned(),
- default_branch.clone(),
- )
- .map_err(|errs| {
+ let proj = Project::new(name.to_owned(), description.to_owned()).map_err(|errs| {
InitError::ProjectPayload(
errs.into_iter()
.map(|err| err.to_string())
@@ -74,7 +69,7 @@ where
.join(", "),
)
})?;
- let doc = identity::Doc::initial(proj, delegate, visibility);
+ let doc = identity::Doc::initial(proj, delegate, &default_branch, visibility);
let (project, identity) = Repository::init(&doc, &storage, signer)?;
let url = git::Url::from(project.id);
@@ -185,17 +180,13 @@ where
// refs/namespaces/<pk>/refs/tags/*
let me = signer.public_key();
- let doc = storage.get(proj)?.ok_or(ForkError::NotFound(proj))?;
- let project = doc.project()?;
let repository = storage.repository_mut(proj)?;
+ let default_branch = repository.default_branch_name()?;
let raw = repository.raw();
- let remote_head = raw.refname_to_id(&git::refs::storage::branch_of(
- remote,
- project.default_branch(),
- ))?;
+ let remote_head = raw.refname_to_id(&git::refs::storage::branch_of(remote, &default_branch))?;
raw.reference(
- &git::refs::storage::branch_of(me, project.default_branch()),
+ &git::refs::storage::branch_of(me, &default_branch),
remote_head,
false,
&format!("creating default branch for {me}"),
@@ -262,6 +253,7 @@ pub fn checkout<P: AsRef<Path>, S: storage::ReadStorage>(
// TODO: Look into sharing object databases.
let doc = storage.get(proj)?.ok_or(CheckoutError::NotFound(proj))?;
let project = doc.project()?;
+ let default_branch = storage.repository(proj)?.default_branch_name()?;
let mut opts = git::raw::RepositoryInitOptions::new();
opts.no_reinit(true)
@@ -313,12 +305,11 @@ pub fn checkout<P: AsRef<Path>, S: storage::ReadStorage>(
{
// Set up default branch.
- let remote_head_ref =
- git::refs::workdir::remote_branch(&REMOTE_NAME, project.default_branch());
+ let remote_head_ref = git::refs::workdir::remote_branch(&REMOTE_NAME, &default_branch);
let remote_head_commit = repo.find_reference(&remote_head_ref)?.peel_to_commit()?;
let branch = repo
- .branch(project.default_branch(), &remote_head_commit, true)?
+ .branch(default_branch.as_str(), &remote_head_commit, true)?
.into_reference();
let branch_ref = branch
.name()
@@ -330,7 +321,7 @@ pub fn checkout<P: AsRef<Path>, S: storage::ReadStorage>(
}
// Set up remote tracking for default branch.
- git::set_upstream(&repo, &*REMOTE_NAME, project.default_branch(), branch_ref)?;
+ git::set_upstream(&repo, &*REMOTE_NAME, &default_branch, branch_ref)?;
}
Ok(repo)
@@ -567,7 +558,7 @@ mod tests {
assert_eq!(remotes[&public_key].refs.refs(), refs.refs());
assert_eq!(project.name(), "acme");
assert_eq!(project.description(), "Acme's repo");
- assert_eq!(project.default_branch(), &git::fmt::refname!("master"));
+ assert_eq!(doc.default_branch().unwrap().as_str(), "refs/heads/master");
assert_eq!(doc.delegates().first(), &Did::from(public_key));
}
diff --git a/crates/radicle/src/storage.rs b/crates/radicle/src/storage.rs
index 99c99a69c9..dcbafd2466 100644
--- a/crates/radicle/src/storage.rs
+++ b/crates/radicle/src/storage.rs
@@ -526,6 +526,12 @@ pub trait ReadRepository: Sized + ValidateRepository {
Ok(self.identity_doc()?.default_branch()?.to_owned())
}
+ /// Gets the short name of the default branch of self, according to the
+ /// canonical references payload in the identity document.
+ fn default_branch_name(&self) -> Result<crate::git::fmt::RefString, RepositoryError> {
+ Ok(self.identity_doc()?.default_branch_name()?)
+ }
+
/// Compute the canonical head of this repository.
///
/// Ignores any existing `HEAD` reference.
commit 27105c18109c6a60e741c371ce8d1c8e3555b968
Author: Yorgos Saslis <yorgos.work@proton.me>
Date: Thu Jul 30 16:50:29 2026 +0000
squash! radicle: Govern default branch via canonical refs
== Derive merge and fetch quorum from canonical refs
Review: Merge acceptance and fetch replication still assumed a single global
threshold, so they could not honour per-branch `allow` sets and would
demand a delegate majority even for branches governed by a narrower rule.
Derive both quorums from the canonical rule matching the relevant branch:
a merge now counts only allowed DIDs against the target branch's rule,
letting a non-delegate in an `allow` set, and the fetch anchor
keeps the rule's `threshold` semantics so replication does not wrongly
wait on a newly-added, not-yet-signed delegate. Identity revision
acceptance is deliberately left on a simple delegate majority, as before.
diff --git a/crates/radicle-fetch/src/state.rs b/crates/radicle-fetch/src/state.rs
index bcec3c0d8c..b5f0caac45 100644
--- a/crates/radicle-fetch/src/state.rs
+++ b/crates/radicle-fetch/src/state.rs
@@ -407,12 +407,25 @@ impl FetchState {
log::trace!("Identity delegates {delegates:?}");
- // The local peer does not need to count towards the threshold
- // since they must be valid already.
+ // The quorum required for the canonical branch is defined by the
+ // canonical reference rule that matches it. The local peer does not
+ // need to count towards the quorum since they must be valid already.
+ let branch_threshold = anchor
+ .canonical_refs()
+ .ok()
+ .zip(anchor.default_branch().ok())
+ .and_then(|(crefs, branch)| {
+ crefs
+ .rules()
+ .matches(&branch)
+ .next()
+ .map(|(_, rule)| usize::from(*rule.threshold()))
+ })
+ .unwrap_or(1);
let threshold = if is_delegate {
- anchor.threshold() - 1
+ branch_threshold.saturating_sub(1)
} else {
- anchor.threshold()
+ branch_threshold
};
let signed_refs = self.run_special_refs(
handle,
diff --git a/crates/radicle/src/cob/patch.rs b/crates/radicle/src/cob/patch.rs
index d378e764d2..2823374c37 100644
--- a/crates/radicle/src/cob/patch.rs
+++ b/crates/radicle/src/cob/patch.rs
@@ -1255,7 +1255,7 @@ impl Patch {
return Ok(());
};
- let expected_branch = self.merge_target_branch(identity)?;
+ let expected_branch = self.merge_target_branch(identity)?.to_owned();
// Nb. We don't return an error in case the merge commit is not an
// ancestor of the default branch. The default branch can change
@@ -1279,15 +1279,32 @@ impl Patch {
},
);
+ // The quorum for the target branch is defined by the canonical
+ // reference rule that matches it: only merges made by an allowed
+ // DID count, and the rule's threshold must be reached. If no
+ // rule matches the branch, any single merge suffices.
+ let crefs = identity
+ .canonical_refs()
+ .map_err(DefaultBranchError::from)?;
+ let rule = crefs.rules().matches(&expected_branch).next();
+
let mut merges = self.merges.iter().fold(
HashMap::<(RevisionId, git::Oid), usize>::new(),
- |mut acc, (_, merge)| {
- *acc.entry((merge.revision, merge.commit)).or_default() += 1;
+ |mut acc, (actor, merge)| {
+ let allowed = rule
+ .map(|(_, rule)| rule.allowed().contains(&Did::from(*actor)))
+ .unwrap_or(true);
+ if allowed {
+ *acc.entry((merge.revision, merge.commit)).or_default() += 1;
+ }
acc
},
);
- // Discard revisions that weren't merged by a threshold of delegates.
- merges.retain(|_, count| *count >= identity.threshold());
+ let threshold = rule
+ .map(|(_, rule)| usize::from(*rule.threshold()))
+ .unwrap_or(1);
+ // Discard revisions that weren't merged by a threshold of allowed DIDs.
+ merges.retain(|_, count| *count >= threshold);
match merges.into_keys().collect::<Vec<_>>().as_slice() {
[] => {
@@ -3041,7 +3058,6 @@ mod test {
use crate::cob::common::CodeRange;
use crate::cob::test::Actor;
use crate::crypto::test::signer::MockSigner;
- use crate::git::BranchName;
use crate::identity;
use crate::identity::doc::RawDoc;
use crate::identity::project::{Project, ProjectName};
@@ -3137,12 +3153,12 @@ mod test {
let project = Project::new(
ProjectName::from_str("test_merge_target_resolution").unwrap(),
String::from(""),
- BranchName::from(git::fmt::RefString::try_from("master").unwrap()),
);
let doc = RawDoc::new(
project.unwrap(),
vec![alice.did()],
+ &git::fmt::refname!("master"),
1,
identity::Visibility::Public,
)
@@ -3195,6 +3211,7 @@ mod test {
let mut raw_doc = RawDoc::new(
r#gen::<Project>(1),
vec![alice.did()],
+ &git::fmt::refname!("master"),
1,
identity::Visibility::Public,
);
@@ -3279,6 +3296,7 @@ mod test {
let mut raw_doc = RawDoc::new(
r#gen::<Project>(1),
vec![bob.did()],
+ &git::fmt::refname!("master"),
1,
identity::Visibility::Public,
);
@@ -3338,6 +3356,7 @@ mod test {
let mut raw_doc = RawDoc::new(
r#gen::<Project>(1),
vec![alice.did()],
+ &git::fmt::refname!("master"),
1,
identity::Visibility::Public,
);
@@ -3632,6 +3651,7 @@ mod test {
let doc = RawDoc::new(
r#gen::<Project>(1),
vec![alice.did()],
+ &git::fmt::refname!("master"),
1,
identity::Visibility::Public,
)
commit e7579d8a5ff5a75c5050e9c9cbd0a2e1ee861df7
Author: Yorgos Saslis <yorgos.work@proton.me>
Date: Thu Jul 30 16:50:28 2026 +0000
squash! radicle: Govern default branch via canonical refs
== Derive identity verification threshold from canonical refs
With the top-level `threshold` removed, identity verification no longer
had anywhere to read the quorum for the canonical default branch from.
Derive it from the `xyz.radicle.crefs` rule matching the canonical head
instead, failing when no rule matches. A default-branch rule and
its `HEAD` symbolic reference are now expected
rather than forbidden, so the checks that rejected them and their dead
error variants are removed, and `rad id` gains an in-place threshold
update that preserves the rule's `allow` set.
diff --git a/crates/radicle-cli/src/commands/id.rs b/crates/radicle-cli/src/commands/id.rs
index 5af4fb60b3..33231a90d5 100644
--- a/crates/radicle-cli/src/commands/id.rs
+++ b/crates/radicle-cli/src/commands/id.rs
@@ -116,11 +116,14 @@ pub fn run(args: Args, ctx: impl term::Context) -> anyhow::Result<()> {
edit,
} => {
let proposal = {
- let mut proposal = current.doc.clone().edit();
+ let proposal = current.doc.clone().edit();
let allow = allow.into_iter().collect::<BTreeSet<_>>();
let disallow = disallow.into_iter().collect::<BTreeSet<_>>();
- proposal.threshold = threshold.unwrap_or(proposal.threshold);
+ let proposal = match threshold {
+ Some(threshold) => update::threshold(proposal, threshold),
+ None => proposal,
+ };
let proposal = match visibility {
Some(edit) => update::visibility(proposal, edit),
@@ -136,14 +139,13 @@ pub fn run(args: Args, ctx: impl term::Context) -> anyhow::Result<()> {
.into())
}
};
- let threshold = proposal.threshold;
let proposal = match update::delegates(proposal, delegates, rescind, &repo)? {
Ok(proposal) => proposal,
Err(errs) => {
term::error(format!("failed to verify delegates for {rid}"));
- term::error(format!(
- "the threshold of {threshold} delegates cannot be met.."
- ));
+ term::error(
+ "the required threshold of delegates cannot be met..".to_string(),
+ );
for e in errs {
print_delegate_verification_error(&e);
}
diff --git a/crates/radicle/src/identity/doc/update.rs b/crates/radicle/src/identity/doc/update.rs
index d04f8b54c3..65dd112c5b 100644
--- a/crates/radicle/src/identity/doc/update.rs
+++ b/crates/radicle/src/identity/doc/update.rs
@@ -5,7 +5,6 @@ use std::{collections::BTreeSet, str::FromStr};
use serde_json as json;
use crate::{
- git,
prelude::Did,
storage::{self, ReadRepository, RepositoryError, refs},
};
@@ -54,6 +53,47 @@ pub fn visibility(mut raw: RawDoc, edit: EditVisibility) -> RawDoc {
}
}
+/// The threshold lives in the `xyz.radicle.crefs` payload, in the rule that
+/// matches the target of the `HEAD` symbolic reference. This updates that
+/// rule's threshold, preserving its `allow` value. If no default branch rule is
+/// present, the document is returned unchanged.
+pub fn threshold(mut raw: RawDoc, threshold: usize) -> RawDoc {
+ use super::GetRawCanonicalRefs as _;
+ use crate::git::canonical::rules::{Rule, Rules};
+ use crate::identity::doc::{Delegates, Payload, PayloadId};
+
+ let mut crefs = raw.raw_canonical_refs().ok().flatten().unwrap_or_default();
+ if let Some(head) = crefs.symbolic().resolve_head().cloned() {
+ // Target the *most specific* rule matching `HEAD`, consistent with the
+ // enforcement paths (`Doc::canonical_refs`, patch merge, fetch). Because
+ // `RawRules` is keyed by plain byte order, `RawRules::matches().next()`
+ // could rewrite a broad glob (e.g. `refs/heads/*`) instead of the exact
+ // branch rule that actually governs the quorum. Resolving through
+ // validated `Rules` restores specificity ordering.
+ let pattern = Delegates::new(raw.delegates.clone()).ok().and_then(|delegates| {
+ Rules::from_raw(crefs.raw_rules().clone(), &mut || delegates.clone())
+ .ok()
+ .and_then(|rules| rules.matches(&head).next().map(|(pattern, _)| pattern.clone()))
+ });
+ if let Some(pattern) = pattern {
+ let allow = crefs
+ .raw_rules()
+ .rules
+ .get(&pattern)
+ .map(|rule| rule.allowed().clone());
+ if let Some(allow) = allow {
+ crefs
+ .raw_rules_mut()
+ .insert(pattern, Rule::new(allow, threshold));
+ }
+ }
+ }
+ let value = json::to_value(crefs).expect("update::threshold: crefs must be serializable");
+ raw.payload
+ .insert(PayloadId::canonical_refs(), Payload::from(value));
+ raw
+}
+
/// Change the `allow` set of a document if the visibility is set to
/// [`Visibility::Private`].
///
@@ -196,50 +236,18 @@ pub fn payload(
/// [`CanonicalRefs`]: crate::identity::CanonicalRefs
pub fn verify(raw: RawDoc) -> Result<Doc, error::DocVerification> {
let proposal = raw.clone().verified()?;
- // Verify that the project payload is valid
+ // Verify that the project payload, if present, deserializes correctly.
// TODO(finto): perhaps this should be handled by JSON Schemas instead
- let project = match proposal.project() {
- Ok(project) => Some(project),
- Err(PayloadError::NotFound(_)) => None,
- Err(PayloadError::Json(e)) => {
- return Err(error::DocVerification::PayloadError {
- id: PayloadId::project(),
- err: e.to_string(),
- });
- }
- };
-
- // If we have both payloads `xyz.radicle.{project,crefs}` ensure that,
- // in the `crefs` payload there is no …
- // 1. … rule that matches the default branch from the `project` payload.
- // (This rule must be synthesized!)
- // 2. … symbolic reference with the name `HEAD`.
- // (This reference must be synthesized!)
- use super::GetRawCanonicalRefs as _;
- match raw.raw_canonical_refs().map(|rcrefs| rcrefs.zip(project)) {
- Ok(Some((crefs, project))) => {
- let default =
- git::fmt::Qualified::from(git::fmt::lit::refs_heads(project.default_branch()));
- let matches = crefs
- .raw_rules()
- .matches(&default)
- .map(|(pattern, _)| pattern.to_string())
- .collect::<Vec<_>>();
- if !matches.is_empty() {
- return Err(error::DocVerification::DisallowDefaultBranchRule { matches, default });
- }
-
- if let Some(symbolic) = crefs.symbolic().resolve_head() {
- return Err(error::DocVerification::DisallowDefaultBranchSymbolic {
- symbolic: symbolic.to_ref_string(),
- default,
- });
- }
- }
- _ => { /* we validate below */ }
+ if let Err(PayloadError::Json(e)) = proposal.project() {
+ return Err(error::DocVerification::PayloadError {
+ id: PayloadId::project(),
+ err: e.to_string(),
+ });
}
- // Verify that the canonical references payload is valid
+ // Verify that the canonical references payload is valid. The default branch
+ // and its `HEAD` symbolic reference are now governed entirely by the
+ // `xyz.radicle.crefs` payload, which must be present and resolvable.
if let Err(e) = proposal.canonical_refs() {
return Err(error::DocVerification::PayloadError {
id: PayloadId::canonical_refs(),
@@ -253,12 +261,35 @@ fn verify_delegates(
proposal: &RawDoc,
repo: &storage::git::Repository,
) -> Result<Option<Vec<error::DelegateVerification>>, RepositoryError> {
- let dids = &proposal.delegates;
- let threshold = proposal.threshold;
+ use super::{CanonicalRefsError, Delegates, DocError, GetRawCanonicalRefs as _};
+
let (canonical, _) = repo.canonical_head()?;
- let mut missing = Vec::with_capacity(dids.len());
+ // The quorum for the canonical default branch is defined by the canonical
+ // reference rule that matches it. Resolve the *validated* rule so that (a)
+ // the most specific matching rule is chosen (the raw rules are only byte
+ // ordered), and (b) both the required threshold and the population of
+ // voters counted below come from that same rule. Fail closed: an unreadable
+ // or invalid crefs payload, or a branch with no matching rule, is a
+ // verification error, not an assumed quorum of 1.
+ let delegates = Delegates::new(proposal.delegates.clone()).map_err(DocError::from)?;
+ let crefs = proposal
+ .raw_canonical_refs()
+ .map_err(CanonicalRefsError::from)?
+ .ok_or(CanonicalRefsError::Missing)?
+ .try_into_canonical_refs(&mut || delegates.clone())
+ .map_err(CanonicalRefsError::from)?;
+ let (_, rule) = crefs
+ .rules()
+ .matches(&canonical)
+ .next()
+ .ok_or(RepositoryError::MissingBranchRule)?;
+ let allowed = rule.allowed();
+ let threshold = usize::from(*rule.threshold());
- for did in dids {
+ // Count the votes over the rule's `allowed` set, which may differ from the
+ // identity delegates when the default branch is governed by an explicit set.
+ let mut missing = Vec::with_capacity(allowed.len());
+ for did in allowed.iter() {
match refs::SignedRefs::load((*did).into(), repo)
.map_err(|err| storage::Error::Refs(storage::refs::Error::Read(err)))?
{
@@ -276,7 +307,7 @@ fn verify_delegates(
}
}
- Ok((dids.len() - missing.len() < threshold).then_some(missing))
+ Ok((allowed.len() - missing.len() < threshold).then_some(missing))
}
#[allow(clippy::unwrap_used)]
@@ -284,17 +315,14 @@ fn verify_delegates(
mod test {
use serde_json::json;
- use crate::{
- git,
- identity::doc::{PayloadId, update::error},
- prelude::RawDoc,
- test::arbitrary,
- };
+ use crate::{identity::doc::PayloadId, prelude::RawDoc, test::arbitrary};
use super::PayloadUpsert;
#[test]
fn test_can_update_crefs() {
+ // The arbitrary document's default branch is `master`; keep its rule
+ // and add an unrelated tags rule.
let raw = arbitrary::r#gen::<RawDoc>(1);
let raw = super::payload(
raw,
@@ -302,6 +330,10 @@ mod test {
id: PayloadId::canonical_refs(),
key: "rules".to_string(),
value: json!({
+ "refs/heads/master": {
+ "threshold": 1,
+ "allow": "delegates"
+ },
"refs/tags/*": {
"threshold": 1,
"allow": "delegates"
@@ -315,11 +347,10 @@ mod test {
}
#[test]
- fn test_cannot_include_default_branch_rule() {
+ fn test_default_branch_requires_rule() {
+ // A document whose `HEAD` symbolic reference has no matching rule is
+ // invalid, since the canonical head cannot be resolved.
let raw = arbitrary::r#gen::<RawDoc>(1);
- let branch = git::fmt::Qualified::from(git::fmt::lit::refs_heads(
- raw.project().unwrap().default_branch(),
- ));
let raw = super::payload(
raw,
[PayloadUpsert {
@@ -329,49 +360,58 @@ mod test {
"refs/tags/*": {
"threshold": 1,
"allow": "delegates"
- },
- branch.as_str(): {
- "threshold": 1,
- "allow": "delegates",
}
}),
}],
)
.unwrap();
assert!(
- matches!(
- super::verify(raw),
- Err(error::DocVerification::DisallowDefaultBranchRule { .. })
- ),
- "Verification should be rejected for including default branch rule"
- )
+ super::verify(raw).is_err(),
+ "Verification should fail when the default branch has no rule"
+ );
}
#[test]
- fn test_default_branch_rule_exists_after_verification() {
+ fn test_threshold_targets_most_specific_rule() {
+ // Two rules match `HEAD` (`refs/heads/master`): the exact branch rule
+ // and a broad glob. `*` (0x2A) sorts before `m` (0x6D), so the
+ // lexicographically-first rule is the glob. Updating the threshold must
+ // rewrite the exact branch rule that actually governs the quorum, not
+ // the glob.
+ use crate::identity::doc::GetRawCanonicalRefs as _;
+
let raw = arbitrary::r#gen::<RawDoc>(1);
- let branch = git::fmt::Qualified::from(git::fmt::lit::refs_heads(
- raw.project().unwrap().default_branch(),
- ));
let raw = super::payload(
raw,
[PayloadUpsert {
id: PayloadId::canonical_refs(),
key: "rules".to_string(),
value: json!({
- "refs/tags/*": {
- "threshold": 1,
- "allow": "delegates"
- }
+ "refs/heads/*": { "threshold": 1, "allow": "delegates" },
+ "refs/heads/master": { "threshold": 1, "allow": "delegates" }
}),
}],
)
.unwrap();
- let verified = super::verify(raw).unwrap();
- let crefs = verified.canonical_refs().unwrap();
- assert!(
- crefs.rules().matches(&branch).next().is_some(),
- "Default branch rule is missing!"
+ let raw = super::threshold(raw, 3);
+
+ let crefs = raw.raw_canonical_refs().unwrap().unwrap();
+ let threshold_of = |pattern: &str| {
+ crefs
+ .raw_rules()
+ .iter()
+ .find(|(p, _)| p.as_str() == pattern)
+ .map(|(_, rule)| *rule.threshold())
+ };
+ assert_eq!(
+ threshold_of("refs/heads/master"),
+ Some(3),
+ "the exact branch rule governing HEAD should be updated"
+ );
+ assert_eq!(
+ threshold_of("refs/heads/*"),
+ Some(1),
+ "the broad glob rule should be left untouched"
);
}
}
diff --git a/crates/radicle/src/identity/doc/update/error.rs b/crates/radicle/src/identity/doc/update/error.rs
index 31ffde52a9..1fdca4de91 100644
--- a/crates/radicle/src/identity/doc/update/error.rs
+++ b/crates/radicle/src/identity/doc/update/error.rs
@@ -1,6 +1,5 @@
use thiserror::Error;
-use crate::git;
use crate::git::fmt::RefString;
use crate::identity::{Did, DocError, doc::PayloadId};
@@ -28,20 +27,6 @@ pub enum DocVerification {
PayloadError { id: PayloadId, err: String },
#[error(transparent)]
Doc(#[from] DocError),
- #[error(
- "incompatible payloads: The rule(s) xyz.radicle.crefs.rules.{matches:?} matches the value of xyz.radicle.project.defaultBranch ('{default}'). Possible resolutions: Change the name of the default branch or remove the rule(s)."
- )]
- DisallowDefaultBranchRule {
- matches: Vec<String>,
- default: git::fmt::Qualified<'static>,
- },
- #[error(
- "incompatible payloads: The symbolic reference xyz.radicle.crefs.symbolic.HEAD → '{symbolic}' conflicts with xyz.radicle.project.defaultBranch ('{default}'). Possible resolutions: Remove either of the two."
- )]
- DisallowDefaultBranchSymbolic {
- symbolic: RefString,
- default: git::fmt::Qualified<'static>,
- },
}
#[derive(Clone, Debug)]
commit fa107661e100e30fde43f05fa1d2fb883481aa77
Author: Yorgos Saslis <yorgos.work@proton.me>
Date: Thu Jul 30 16:50:28 2026 +0000
radicle: Govern default branch via canonical refs
The default branch and its quorum lived in two places — the
`defaultBranch` field of the `xyz.radicle.project` payload and the
identity document's top-level `threshold` — which could drift apart and
left no single authority over what the canonical head is.
Make the `xyz.radicle.crefs` payload the sole source of truth: the
default branch, its `HEAD` symbolic reference, and its quorum are now
expressed as a canonical reference rule, synthesized on document
creation.
Review: This commit changes only the identity model; callers, quorum
derivation, and tests are brought into line in the commits that follow.
Signed-off-by: Yorgos Saslis <yorgos.work@proton.me>
diff --git a/crates/radicle/src/identity/crefs.rs b/crates/radicle/src/identity/crefs.rs
index cd7cbb5ef5..cea7ff98cd 100644
--- a/crates/radicle/src/identity/crefs.rs
+++ b/crates/radicle/src/identity/crefs.rs
@@ -30,7 +30,7 @@ pub enum ValidationError {
/// Configuration for canonical references and their rules.
///
/// [`RawCanonicalRefs`] are verified into [`CanonicalRefs`].
-#[derive(Default, Debug, Clone, PartialEq, Eq, Deserialize)]
+#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RawCanonicalRefs {
rules: RawRules,
diff --git a/crates/radicle/src/identity/doc.rs b/crates/radicle/src/identity/doc.rs
index 7230ff2bd7..90a8b8aed8 100644
--- a/crates/radicle/src/identity/doc.rs
+++ b/crates/radicle/src/identity/doc.rs
@@ -21,7 +21,6 @@ use crate::crypto::Signature;
use crate::git;
use crate::git::canonical::rules;
use crate::git::canonical::symbolic;
-use crate::git::fmt::Qualified;
use crate::git::fmt::RefString;
use crate::git::raw::ErrorExt as _;
use crate::identity::crefs;
@@ -407,8 +406,6 @@ pub struct RawDoc {
pub payload: BTreeMap<PayloadId, Payload>,
/// The delegates section.
pub delegates: Vec<Did>,
- /// The signature threshold.
- pub threshold: usize,
/// Repository visibility.
#[serde(default)]
pub visibility: Visibility,
@@ -424,11 +421,13 @@ impl TryFrom<RawDoc> for Doc {
impl RawDoc {
/// Construct a new [`RawDoc`] with an initial [`RawDoc::payload`]
- /// containing the provided [`Project`], and the given `delegates`,
- /// `threshold`, and `visibility`.
+ /// containing the provided [`Project`] and a `xyz.radicle.crefs` payload
+ /// governing `default_branch` at the given `threshold`, with the given
+ /// `delegates` and `visibility`.
pub fn new(
project: Project,
delegates: Vec<Did>,
+ default_branch: &RefString,
threshold: usize,
visibility: Visibility,
) -> Self {
@@ -437,9 +436,14 @@ impl RawDoc {
Self {
version: IDENTITY_VERSION,
- payload: BTreeMap::from_iter([(PayloadId::project(), Payload::from(project))]),
+ payload: BTreeMap::from_iter([
+ (PayloadId::project(), Payload::from(project)),
+ (
+ PayloadId::canonical_refs(),
+ Doc::default_branch_crefs(default_branch, threshold),
+ ),
+ ]),
delegates,
- threshold,
visibility,
}
}
@@ -494,22 +498,18 @@ impl RawDoc {
/// - [`RawDoc::delegates`]: any duplicates are removed, and for the
/// remaining set ensure that it is non-empty and does not exceed a
/// length of [`MAX_DELEGATES`].
- /// - [`RawDoc::threshold`]: ensure that it is in the range `[1, delegates.len()]`.
pub fn verified(self) -> Result<Doc, DocError> {
let RawDoc {
version,
payload,
delegates,
- threshold,
visibility,
} = self;
let delegates = Delegates::new(delegates)?;
- let threshold = Threshold::new(threshold, &delegates)?;
Ok(Doc {
version,
payload,
delegates,
- threshold,
visibility,
})
}
@@ -691,7 +691,6 @@ pub struct Doc {
version: Version,
payload: BTreeMap<PayloadId, Payload>,
delegates: Delegates,
- threshold: Threshold,
#[serde(default, skip_serializing_if = "Visibility::is_public")]
visibility: Visibility,
}
@@ -699,18 +698,28 @@ pub struct Doc {
impl Doc {
/// Construct the initial [`Doc`] for an identity.
///
- /// It will begin with the provided `project` in the [`Doc::payload`], the
- /// `delegate` as the sole delegate, a threshold of 1, and the given
- /// `visibility`.
- pub fn initial(project: Project, delegate: Did, visibility: Visibility) -> Self {
+ /// It will begin with the provided `project` in the [`Doc::payload`], a
+ /// `xyz.radicle.crefs` payload governing `default_branch` with a threshold
+ /// of 1, the `delegate` as the sole delegate, and the given `visibility`.
+ pub fn initial(
+ project: Project,
+ delegate: Did,
+ default_branch: &RefString,
+ visibility: Visibility,
+ ) -> Self {
let project =
serde_json::to_value(project).expect("Doc::initial: payload must be serializable");
Self {
version: IDENTITY_VERSION,
- payload: BTreeMap::from_iter([(PayloadId::project(), Payload::from(project))]),
+ payload: BTreeMap::from_iter([
+ (PayloadId::project(), Payload::from(project)),
+ (
+ PayloadId::canonical_refs(),
+ Self::default_branch_crefs(default_branch, 1),
+ ),
+ ]),
delegates: Delegates(NonEmpty::new(delegate)),
- threshold: Threshold(NonZeroUsize::MIN),
visibility,
}
}
@@ -727,14 +736,12 @@ impl Doc {
version,
payload,
delegates,
- threshold,
visibility,
} = self;
RawDoc {
version,
payload,
delegates: delegates.into(),
- threshold: threshold.into(),
visibility,
}
}
@@ -783,128 +790,53 @@ impl Doc {
Ok(qualified.to_owned())
}
+ /// Gets the short name of the default branch, i.e. the target of the `HEAD`
+ /// symbolic reference with the `refs/heads/` prefix removed.
+ pub fn default_branch_name(&self) -> Result<RefString, DefaultBranchError> {
+ let qualified = self.default_branch()?;
+ let name = qualified
+ .as_str()
+ .strip_prefix("refs/heads/")
+ .and_then(|name| RefString::try_from(name).ok())
+ .ok_or(DefaultBranchError::MissingHead)?;
+ Ok(name)
+ }
+
/// Construct the canonical references for this document.
///
- /// Uses the `xyz.radicle.crefs` payload (if present) and the
- /// `xyz.radicle.project` payload to determine the `HEAD` symbolic
- /// reference and its associated rule.
- ///
- /// There are three cases, depending on whether `HEAD` is already
- /// defined in the crefs payload and whether a project payload exists:
- ///
- /// 1. **Explicit HEAD + project**: `HEAD` must agree with
- /// [`Project::default_branch_qualified`], and the matching rule must
- /// use `delegates` with the document's threshold.
- /// 2. **Explicit HEAD, no project**: The matching rule must use
- /// `delegates` with the document's threshold.
- /// 3. **No HEAD**: A rule and `HEAD` symbolic reference are synthesized
- /// from the project payload (which must exist).
- ///
- /// In all cases the result must pass [`RawCanonicalRefs::try_into_canonical_refs`]
- /// validation. If a rule for `HEAD`'s target is missing, it will be
- /// caught as a dangling reference there.
+ /// The canonical references, including the default branch and its `HEAD`
+ /// symbolic reference, are governed entirely by the `xyz.radicle.crefs`
+ /// payload. The payload must be present and must pass
+ /// [`RawCanonicalRefs::try_into_canonical_refs`] validation.
///
/// [`RawCanonicalRefs`]: super::crefs::RawCanonicalRefs
pub fn canonical_refs(&self) -> Result<CanonicalRefs, CanonicalRefsError> {
- let mut raw_crefs = self.raw_canonical_refs()?.unwrap_or_default();
+ let raw_crefs = self
+ .raw_canonical_refs()?
+ .ok_or(CanonicalRefsError::Missing)?;
let resolve = &mut || self.delegates.clone();
- // Determine where `HEAD` comes from. The `resolve_head()` result
- // borrows `raw_crefs`, so clone to allow mutation in the synthesis
- // path.
- let head: Option<Qualified<'static>> = raw_crefs.symbolic().resolve_head().cloned();
-
- match (head, self.project()) {
- (Some(ref default_branch), Ok(project)) => {
- let project_branch = project.default_branch_qualified();
- if project_branch != *default_branch {
- return Err(CanonicalRefsError::DefaultBranchRuleError(
- DefaultBranchRuleError::HeadMismatch {
- cref: default_branch.to_ref_string(),
- project: project_branch.to_ref_string(),
- },
- ));
- }
- self.validate_head_rule(&raw_crefs, default_branch)?;
- }
- (Some(ref default_branch), Err(_)) => {
- self.validate_head_rule(&raw_crefs, default_branch)?;
- }
- (None, Ok(project)) => {
- self.synthesize_head(&mut raw_crefs, &project)?;
- }
- (None, Err(err)) => {
- return Err(CanonicalRefsError::SynthesisPayloadMissing(err));
- }
- }
-
Ok(raw_crefs.try_into_canonical_refs(resolve)?)
}
- /// Validate that the rule matching `HEAD`'s target branch uses
- /// `delegates` and the document's threshold.
+ /// Build the `xyz.radicle.crefs` payload for a default branch governed by
+ /// the delegates at the given `threshold`.
///
- /// If no rule matches the target, `HEAD` will dangle — this is caught
- /// later by [`RawCanonicalRefs::try_into_canonical_refs`] validation.
- fn validate_head_rule(
- &self,
- raw_crefs: &RawCanonicalRefs,
- default_branch: &Qualified,
- ) -> Result<(), CanonicalRefsError> {
- let Some((pattern, rule)) = raw_crefs.raw_rules().matches(default_branch).next() else {
- return Ok(());
- };
-
- let allowed = rule.allowed();
- if *allowed != rules::Allowed::Delegates {
- return Err(CanonicalRefsError::DefaultBranchRuleError(
- DefaultBranchRuleError::Allowed {
- pattern: pattern.to_string(),
- actual: allowed.to_string(),
- },
- ));
- }
- let actual = *rule.threshold();
- let expected = self.threshold();
- if actual != expected {
- return Err(CanonicalRefsError::DefaultBranchRuleError(
- DefaultBranchRuleError::Threshold {
- pattern: pattern.to_string(),
- actual,
- expected,
- },
- ));
- }
- Ok(())
- }
-
- /// Synthesize a `HEAD` symbolic reference and a default branch rule
- /// from the project payload.
- fn synthesize_head(
- &self,
- raw_crefs: &mut RawCanonicalRefs,
- project: &Project,
- ) -> Result<(), CanonicalRefsError> {
- let default_branch = project.default_branch_qualified();
-
- if raw_crefs
- .raw_rules()
- .matches(&default_branch)
- .next()
- .is_none()
- {
- raw_crefs.raw_rules_mut().insert(
- git::fmt::refspec::QualifiedPattern::from(default_branch.to_owned()),
- rules::Rule::new(rules::Allowed::Delegates, self.threshold()),
- );
- }
-
- raw_crefs
- .symbolic_mut()
- .combine(symbolic::SymbolicRefs::head(project.default_branch()))
- .map_err(|source| CanonicalRefsError::SynthesisCycle { source })?;
-
- Ok(())
+ /// This produces a rule matching `refs/heads/<default_branch>` with an
+ /// `allow` value of `delegates`, and a `HEAD` symbolic reference targeting
+ /// that branch.
+ fn default_branch_crefs(default_branch: &RefString, threshold: usize) -> Payload {
+ let qualified = git::refs::branch(default_branch);
+ let mut raw_rules = rules::RawRules::default();
+ raw_rules.insert(
+ git::fmt::refspec::QualifiedPattern::from(qualified.to_owned()),
+ rules::Rule::new(rules::Allowed::Delegates, threshold),
+ );
+ let symbolic = symbolic::SymbolicRefs::head(default_branch);
+ let crefs = RawCanonicalRefs::new(raw_rules, symbolic);
+ let value = serde_json::to_value(crefs)
+ .expect("Doc::default_branch_crefs: crefs must be serializable");
+ Payload::from(value)
}
/// Return the associated [`Visibility`] of this document.
@@ -922,16 +854,6 @@ impl Doc {
self.visibility.is_private()
}
- /// Return the associated threshold of this document.
- pub fn threshold(&self) -> usize {
- self.threshold.into()
- }
-
- /// Return the associated threshold of this document in its non-zero format.
- pub fn threshold_nonzero(&self) -> &NonZeroUsize {
- &self.threshold.0
- }
-
/// Return the associated delegates of this document.
pub fn delegates(&self) -> &Delegates {
&self.delegates
@@ -1078,36 +1000,8 @@ pub enum CanonicalRefsError {
#[error(transparent)]
CanonicalRefs(#[from] crefs::ValidationError),
- #[error("could not load `xyz.radicle.project` to get default branch name: {0}")]
- SynthesisPayloadMissing(PayloadError),
-
- #[error(transparent)]
- DefaultBranchRuleError(#[from] DefaultBranchRuleError),
-
- #[error("synthesizing canonical references from project payload failed: {source}")]
- SynthesisCycle { source: symbolic::InsertionError },
-}
-
-#[derive(Debug, Error)]
-pub enum DefaultBranchRuleError {
- #[error(
- "rule for pattern '{pattern}' which matches the target of symbolic reference 'HEAD' (possibly synthesized from payload 'xyz.radicle.project') must use 'allow' value of \"delegates\" but uses {actual}"
- )]
- Allowed { pattern: String, actual: String },
-
- #[error(
- "rule for pattern '{pattern}' which matches the target of symbolic reference 'HEAD' (possibly synthesized from payload 'xyz.radicle.project') must use a threshold of {expected} as required by the identity document but uses {actual}"
- )]
- Threshold {
- pattern: String,
- actual: usize,
- expected: usize,
- },
-
- #[error(
- "target symbolic reference 'HEAD' ('{cref}') does not match `defaultBranch` from payload `xyz.radicle.project` ('{project}')"
- )]
- HeadMismatch { cref: RefString, project: RefString },
+ #[error("identity document is missing the `xyz.radicle.crefs` payload")]
+ Missing,
}
pub trait GetRawCanonicalRefs: GetPayload {
@@ -1147,7 +1041,13 @@ mod test {
fn test_duplicate_dids() {
let delegate = Device::mock_from_seed([0xff; 32]);
let did = Did::from(delegate.public_key());
- let mut doc = RawDoc::new(r#gen::<Project>(1), vec![did], 1, Visibility::Public);
+ let mut doc = RawDoc::new(
+ r#gen::<Project>(1),
+ vec![did],
+ &git::fmt::refname!("master"),
+ 1,
+ Visibility::Public,
+ );
doc.delegate(did);
let doc = doc.verified().unwrap();
assert!(doc.delegates().len() == 1, "Duplicate DID was not removed");
@@ -1163,13 +1063,20 @@ mod test {
let doc = RawDoc::new(
r#gen::<Project>(1),
delegates[0..MAX_DELEGATES].into(),
+ &git::fmt::refname!("master"),
1,
Visibility::Public,
);
assert_matches!(doc.verified(), Ok(_));
// A document that exceeds max delegates should fail
- let doc = RawDoc::new(r#gen::<Project>(1), delegates, 1, Visibility::Public);
+ let doc = RawDoc::new(
+ r#gen::<Project>(1),
+ delegates,
+ &git::fmt::refname!("master"),
+ 1,
+ Visibility::Public,
+ );
assert_matches!(doc.verified(), Err(DocError::Delegates(DelegatesError(_))));
}
@@ -1253,7 +1160,6 @@ mod test {
version: IDENTITY_VERSION,
payload: payload.clone(),
delegates: delegates.clone(),
- threshold: 1,
visibility: Visibility::Public,
}
);
@@ -1265,7 +1171,6 @@ mod test {
verified,
Doc {
version: IDENTITY_VERSION,
- threshold: Threshold::new(1, &delegates).unwrap(),
payload: payload.clone(),
delegates,
visibility: Visibility::Public,
@@ -1299,9 +1204,9 @@ mod test {
);
assert_eq!(
(*id).to_string(),
- "d96f425412c9f8ad5d9a9a05c9831d0728e2338d"
+ "14875c28ade7241b3bda8c59be34f8f9f289196d"
);
- assert_eq!(id.urn(), String::from("rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"));
+ assert_eq!(id.urn(), String::from("rad:zHb72m63NBufHR7jmZi732BBT6j6"));
}
#[test]
@@ -1402,44 +1307,4 @@ mod test {
let doc = serde_json::from_value::<Doc>(value).unwrap();
assert_eq!(doc.default_branch().unwrap().as_str(), "refs/heads/main");
}
-
- #[test]
- fn default_branch_clash() {
- let value = serde_json::json!(
- {
- "payload": {
- "xyz.radicle.project": {
- "name": "example",
- "description": "An example project",
- "defaultBranch": "main",
- },
- "xyz.radicle.crefs": {
- "symbolic": {
- "HEAD": "refs/heads/master",
- },
- "rules": {
- "refs/heads/master": {
- "allow": "delegates",
- "threshold": 1,
- }
- }
- }
- },
- "delegates": [
- "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM"
- ],
- "threshold": 1
- }
- );
-
- let doc = serde_json::from_value::<Doc>(value).unwrap();
- assert_matches!(
- doc.default_branch(),
- Err(DefaultBranchError::CanonicalRefsError(
- CanonicalRefsError::DefaultBranchRuleError(
- DefaultBranchRuleError::HeadMismatch { .. }
- )
- ))
- );
- }
}
diff --git a/crates/radicle/src/identity/project.rs b/crates/radicle/src/identity/project.rs
index 6509e7de78..facfdffadb 100644
--- a/crates/radicle/src/identity/project.rs
+++ b/crates/radicle/src/identity/project.rs
@@ -7,8 +7,6 @@ use serde::{
use thiserror::Error;
use crate::crypto;
-use crate::git::BranchName;
-use crate::git::{fmt::Qualified, refs::branch};
use crate::identity::doc;
use crate::identity::doc::Payload;
@@ -21,8 +19,6 @@ pub enum ProjectError {
Name(&'static str),
#[error("invalid description: {0}")]
Description(&'static str),
- #[error("invalid default branch: {0}")]
- DefaultBranch(&'static str),
}
/// A valid project name.
@@ -99,8 +95,6 @@ pub struct Project {
name: ProjectName,
/// Project description.
description: String,
- /// Project default branch.
- default_branch: BranchName,
}
impl<'de> Deserialize<'de> for Project {
@@ -113,7 +107,6 @@ impl<'de> Deserialize<'de> for Project {
enum Field {
Name,
Description,
- DefaultBranch,
/// A catch-all variant to allow for unknown fields
Unknown(#[allow(dead_code)] String),
}
@@ -133,7 +126,6 @@ impl<'de> Deserialize<'de> for Project {
{
let mut name = None;
let mut description = None;
- let mut default_branch = None;
while let Some(key) = map.next_key()? {
match key {
@@ -149,21 +141,13 @@ impl<'de> Deserialize<'de> for Project {
}
description = Some(map.next_value()?);
}
- Field::DefaultBranch => {
- if default_branch.is_some() {
- return Err(de::Error::duplicate_field("defaultBranch"));
- }
- default_branch = Some(map.next_value()?);
- }
Field::Unknown(_) => continue,
}
}
let name = name.ok_or_else(|| de::Error::missing_field("name"))?;
let description =
description.ok_or_else(|| de::Error::missing_field("description"))?;
- let default_branch =
- default_branch.ok_or_else(|| de::Error::missing_field("defaultBranch"))?;
- Project::new(name, description, default_branch).map_err(|errs| {
+ Project::new(name, description).map_err(|errs| {
de::Error::custom(
errs.into_iter()
.map(|err| err.to_string())
@@ -173,7 +157,7 @@ impl<'de> Deserialize<'de> for Project {
})
}
}
- const FIELDS: &[&str] = &["name", "description", "defaultBranch"];
+ const FIELDS: &[&str] = &["name", "description"];
deserializer.deserialize_struct("Project", FIELDS, ProjectVisitor)
}
}
@@ -187,12 +171,7 @@ impl Project {
///
/// * `name`'s length must not be empty and must not exceed 255.
/// * `description`'s length must not exceed 255.
- /// * `default_branch`'s length must not be empty and must not exceed 255.
- pub fn new(
- name: ProjectName,
- description: String,
- default_branch: BranchName,
- ) -> Result<Self, Vec<ProjectError>> {
+ pub fn new(name: ProjectName, description: String) -> Result<Self, Vec<ProjectError>> {
let mut errs = Vec::new();
if description.len() > doc::MAX_STRING_LENGTH {
@@ -201,22 +180,8 @@ impl Project {
));
}
- if default_branch.is_empty() {
- errs.push(ProjectError::DefaultBranch(
- "default branch cannot be empty",
- ))
- } else if default_branch.len() > doc::MAX_STRING_LENGTH {
- errs.push(ProjectError::DefaultBranch(
- "default branch cannot exceed 255 bytes",
- ))
- }
-
if errs.is_empty() {
- Ok(Self {
- name,
- description,
- default_branch,
- })
+ Ok(Self { name, description })
} else {
Err(errs)
}
@@ -233,12 +198,10 @@ impl Project {
self,
name: impl Into<Option<ProjectName>>,
description: impl Into<Option<String>>,
- default_branch: impl Into<Option<BranchName>>,
) -> Result<Self, Vec<ProjectError>> {
let name = name.into().unwrap_or(self.name);
let description = description.into().unwrap_or(self.description);
- let default_branch = default_branch.into().unwrap_or(self.default_branch);
- Self::new(name, description, default_branch)
+ Self::new(name, description)
}
#[inline]
@@ -250,17 +213,6 @@ impl Project {
pub fn description(&self) -> &str {
&self.description
}
-
- #[inline]
- pub fn default_branch(&self) -> &BranchName {
- &self.default_branch
- }
-
- /// Return the qualified name of the default branch.
- #[inline]
- pub fn default_branch_qualified(&self) -> Qualified<'_> {
- branch(&self.default_branch)
- }
}
impl From<Project> for Payload {
Exit code: 0
shell: 'export RUSTDOCFLAGS=''-D warnings'' cargo --version rustc --version cargo fmt --check cargo clippy --all-targets --workspace -- --deny warnings cargo build --all-targets --workspace cargo doc --workspace --no-deps --all-features cargo test --workspace --no-fail-fast '
Commands:
$ podman run --name ef8f0ad1-1ed5-40c5-b0cf-d83b2b2f2043 -v /opt/radcis/ci.rad.levitte.org/cci/state/ef8f0ad1-1ed5-40c5-b0cf-d83b2b2f2043/s:/ef8f0ad1-1ed5-40c5-b0cf-d83b2b2f2043/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/ef8f0ad1-1ed5-40c5-b0cf-d83b2b2f2043/w:/ef8f0ad1-1ed5-40c5-b0cf-d83b2b2f2043/w -w /ef8f0ad1-1ed5-40c5-b0cf-d83b2b2f2043/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:trixie bash /ef8f0ad1-1ed5-40c5-b0cf-d83b2b2f2043/s/script.sh
+ export 'RUSTDOCFLAGS=-D warnings'
+ RUSTDOCFLAGS='-D warnings'
+ cargo --version
info: syncing channel updates for '1.97.1-x86_64-unknown-linux-gnu'
info: latest update on 2026-07-16, rust version 1.97.1 (8bab26f4f 2026-07-14)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-src'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-src'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
cargo 1.97.1 (c980f4866 2026-06-30)
+ rustc --version
rustc 1.97.1 (8bab26f4f 2026-07-14)
+ cargo fmt --check
Diff in /ef8f0ad1-1ed5-40c5-b0cf-d83b2b2f2043/w/crates/radicle/src/identity/doc/update.rs:70:
// could rewrite a broad glob (e.g. `refs/heads/*`) instead of the exact
// branch rule that actually governs the quorum. Resolving through
// validated `Rules` restores specificity ordering.
- let pattern = Delegates::new(raw.delegates.clone()).ok().and_then(|delegates| {
- Rules::from_raw(crefs.raw_rules().clone(), &mut || delegates.clone())
- .ok()
- .and_then(|rules| rules.matches(&head).next().map(|(pattern, _)| pattern.clone()))
- });
+ let pattern = Delegates::new(raw.delegates.clone())
+ .ok()
+ .and_then(|delegates| {
+ Rules::from_raw(crefs.raw_rules().clone(), &mut || delegates.clone())
+ .ok()
+ .and_then(|rules| {
+ rules
+ .matches(&head)
+ .next()
+ .map(|(pattern, _)| pattern.clone())
+ })
+ });
if let Some(pattern) = pattern {
let allow = crefs
.raw_rules()
Exit code: 1
{
"response": "finished",
"result": "failure"
}