diff --git a/radicle-cli/examples/git/git-push-diverge.md b/radicle-cli/examples/git/git-push-diverge.md index 8d674e7f..6e32754e 100644 --- a/radicle-cli/examples/git/git-push-diverge.md +++ b/radicle-cli/examples/git/git-push-diverge.md @@ -6,7 +6,7 @@ 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 -60cbee1bbc49fcbb8063249bc4112c8886a756ba +c036c0d89ce26aef3ad7da402157dba16b5163b4 $ rad remote add did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk ✓ Remote bob@z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk added ✓ Remote-tracking branch bob@z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/master created for z6Mkt67…v4N1tRk diff --git a/radicle-cli/examples/rad-cob.md b/radicle-cli/examples/rad-cob.md index 1db4f697..08aa55a6 100644 --- a/radicle-cli/examples/rad-cob.md +++ b/radicle-cli/examples/rad-cob.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 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d │ +│ Issue d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 │ │ Author z6MknSL…StBU8Vi (you) │ │ Status open │ │ │ @@ -21,7 +21,7 @@ $ rad issue list ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Labels Assignees Opened │ ├───────────────────────────────────────────────────────────────────────────────────────────────────┤ -│ ● 9bf82c1 flux capacitor underpowered z6MknSL…StBU8Vi (you) now │ +│ ● d185ee1 flux capacitor underpowered z6MknSL…StBU8Vi (you) now │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ ``` @@ -45,7 +45,7 @@ $ rad patch ╭─────────────────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Head + - Updated │ ├─────────────────────────────────────────────────────────────────────────────────────────┤ -│ ● a892664 Define power requirements z6MknSL…StBU8Vi (you) 3e674d1 +0 -0 now │ +│ ● 6ff4f09 Define power requirements z6MknSL…StBU8Vi (you) 3e674d1 +0 -0 now │ ╰─────────────────────────────────────────────────────────────────────────────────────────╯ ``` @@ -53,17 +53,17 @@ Both issue and patch COBs can be listed. ``` $ rad cob list --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue -9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d +d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 $ rad cob list --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch -a8926643a8f6a65bc386b0131621994000485d4d +6ff4f09c1b5a81347981f59b02ef43a31a07cdae ``` We can look at the issue COB. ``` -$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d -commit 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d -parent 2317f74de0494c489a233ca6f29f2b8bff6d4f15 +$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 +commit d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 +parent 0656c217f917c3e06234771e9ecae53aba5e173e author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi date Thu, 15 Dec 2022 17:28:04 +0000 @@ -92,9 +92,9 @@ date Thu, 15 Dec 2022 17:28:04 +0000 We can look at the patch COB too. ``` -$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object a8926643a8f6a65bc386b0131621994000485d4d -commit a8926643a8f6a65bc386b0131621994000485d4d -parent 2317f74de0494c489a233ca6f29f2b8bff6d4f15 +$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object 6ff4f09c1b5a81347981f59b02ef43a31a07cdae +commit 6ff4f09c1b5a81347981f59b02ef43a31a07cdae +parent 0656c217f917c3e06234771e9ecae53aba5e173e parent 3e674d1a1df90807e934f9ae5da2591dd6848a33 parent f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi diff --git a/radicle-cli/examples/rad-id-conflict.md b/radicle-cli/examples/rad-id-conflict.md index a6d86faf..11f7e177 100644 --- a/radicle-cli/examples/rad-id-conflict.md +++ b/radicle-cli/examples/rad-id-conflict.md @@ -2,7 +2,7 @@ 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 -bd41a1cc152a7cb8b9fb84261e4214ffa4cdb7a4 +0ca42d376bd566631083c8913cf86bec722da392 ``` ``` ~bob $ cd heartwood @@ -16,11 +16,11 @@ time: ``` ~alice $ rad id update --title "Edit project name" --description "" --payload "xyz.radicle.project" "name" '"heart"' -q -6c07e4e604d855f6730f884dc56216c5698ef7f8 +12d7300d1bbba84e4e5760c8c61999bf5fefb81a ``` ``` ~bob $ rad id update --title "Edit project name" --description "" --payload "xyz.radicle.project" "name" '"wood"' -q -2e7f195fde751b73aabe4730bd1047c87893a787 +89b2623e7f2ddf5748661b15b9975ab0b4ee17ab ``` When Alice syncs with Bob, she notices the problem: there are two active @@ -34,10 +34,10 @@ $ rad id list ╭─────────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Status Created │ ├─────────────────────────────────────────────────────────────────────────────────┤ -│ ● 6c07e4e Edit project name alice (you) active now │ -│ ● 2e7f195 Edit project name bob z6Mkt67…v4N1tRk active now │ -│ ● bd41a1c Add Bob alice (you) accepted now │ -│ ● 2317f74 Initial revision alice (you) accepted now │ +│ ● 89b2623 Edit project name bob z6Mkt67…v4N1tRk active now │ +│ ● 12d7300 Edit project name alice (you) active now │ +│ ● 0ca42d3 Add Bob alice (you) accepted now │ +│ ● 0656c21 Initial revision alice (you) accepted now │ ╰─────────────────────────────────────────────────────────────────────────────────╯ ``` @@ -45,15 +45,15 @@ This isn't a problem as long as we don't try to accept both. So let's accept Bob's: ``` ~alice -$ rad id accept 2e7f195 -q +$ rad id accept 89b2623 -q $ rad id list ╭─────────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Status Created │ ├─────────────────────────────────────────────────────────────────────────────────┤ -│ ● 6c07e4e Edit project name alice (you) stale now │ -│ ● 2e7f195 Edit project name bob z6Mkt67…v4N1tRk accepted now │ -│ ● bd41a1c Add Bob alice (you) accepted now │ -│ ● 2317f74 Initial revision alice (you) accepted now │ +│ ● 89b2623 Edit project name bob z6Mkt67…v4N1tRk accepted now │ +│ ● 12d7300 Edit project name alice (you) stale now │ +│ ● 0ca42d3 Add Bob alice (you) accepted now │ +│ ● 0656c21 Initial revision alice (you) accepted now │ ╰─────────────────────────────────────────────────────────────────────────────────╯ ``` @@ -66,16 +66,16 @@ $ rad sync --fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji ✓ Fetched repository from 1 seed(s) ``` ``` ~bob (fail) -$ rad id accept 6c07e4e -q +$ rad id accept 12d7300 -q ✗ Error: cannot vote on revision that is stale -$ rad id reject 6c07e4e -q +$ rad id reject 12d7300 -q ✗ Error: cannot vote on revision that is stale ``` ``` ~bob -$ rad id show 6c07e4e +$ rad id show 12d7300 ╭────────────────────────────────────────────────────────────────────────╮ │ Title Edit project name │ -│ Revision 6c07e4e604d855f6730f884dc56216c5698ef7f8 │ +│ Revision 12d7300d1bbba84e4e5760c8c61999bf5fefb81a │ │ Blob e93aa3e3c5c448bacd3537a81daf1437eccd046a │ │ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │ │ State stale │ diff --git a/radicle-cli/examples/rad-id-multi-delegate.md b/radicle-cli/examples/rad-id-multi-delegate.md index 481e7cea..02d6f36c 100644 --- a/radicle-cli/examples/rad-id-multi-delegate.md +++ b/radicle-cli/examples/rad-id-multi-delegate.md @@ -1,6 +1,6 @@ ``` ~alice $ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q -5666f744e2bc2333cab30ea0256bc4b61c3205bf +069e7d58faa9a7473d27f5510d676af33282796f ``` ``` ~bob @@ -8,10 +8,10 @@ $ rad sync --fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji ✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSL…StBU8Vi.. ✓ Fetched repository from 1 seed(s) $ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add Eve" --description "" --delegate did:key:z6MkedTZGJGqgQ2py2b8kGecfxdt2yRdHWF6JpaZC47fovFn --no-confirm -✓ Identity revision e4b005ae70116fbe91340fef43127e86ab17e476 created +✓ Identity revision 9e5aceb50f9307ddcb29923dbaeb5ccbfd07766c created ╭────────────────────────────────────────────────────────────────────────╮ │ Title Add Eve │ -│ Revision e4b005ae70116fbe91340fef43127e86ab17e476 │ +│ Revision 9e5aceb50f9307ddcb29923dbaeb5ccbfd07766c │ │ Blob 4c7fd4c7b7d7fd5d7088a7c952556fab99a034e9 │ │ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │ │ State active │ @@ -47,11 +47,11 @@ $ rad sync --fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji $ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --delegates did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice) did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob) -$ rad id accept e4b005ae70116fbe91340fef43127e86ab17e476 --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --no-confirm -✓ Revision e4b005ae70116fbe91340fef43127e86ab17e476 accepted +$ rad id accept 9e5aceb50f9307ddcb29923dbaeb5ccbfd07766c --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --no-confirm +✓ Revision 9e5aceb50f9307ddcb29923dbaeb5ccbfd07766c accepted ╭────────────────────────────────────────────────────────────────────────╮ │ Title Add Eve │ -│ Revision e4b005ae70116fbe91340fef43127e86ab17e476 │ +│ Revision 9e5aceb50f9307ddcb29923dbaeb5ccbfd07766c │ │ Blob 4c7fd4c7b7d7fd5d7088a7c952556fab99a034e9 │ │ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │ │ State accepted │ @@ -68,7 +68,7 @@ did:key:z6MkedTZGJGqgQ2py2b8kGecfxdt2yRdHWF6JpaZC47fovFn ``` ~alice $ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Make private" --description "" --visibility private --no-confirm -q -3fba3b17851cde9814f35acce4f740f53fb63dd7 +efb8cdd368b9745396f832386f9c7d46988f6bd5 ``` We can list all revisions: @@ -78,33 +78,33 @@ $ rad id list ╭────────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Status Created │ ├────────────────────────────────────────────────────────────────────────────────┤ -│ ● 3fba3b1 Make private alice (you) active now │ -│ ● e4b005a Add Eve bob z6Mkt67…v4N1tRk accepted now │ -│ ● 5666f74 Add Bob alice (you) accepted now │ -│ ● 2317f74 Initial revision alice (you) accepted now │ +│ ● efb8cdd Make private alice (you) active now │ +│ ● 9e5aceb Add Eve bob z6Mkt67…v4N1tRk accepted now │ +│ ● 069e7d5 Add Bob alice (you) accepted now │ +│ ● 0656c21 Initial revision alice (you) accepted now │ ╰────────────────────────────────────────────────────────────────────────────────╯ ``` Despite being a delegate, Bob can't edit or redact Alice's revision: ``` ~bob (fail) -$ rad id redact 3fba3b17851cde9814f35acce4f740f53fb63dd7 +$ rad id redact efb8cdd368b9745396f832386f9c7d46988f6bd5 [..] ``` ``` ~bob (fail) -$ rad id edit --title "Boo!" --description "Boo!" 3fba3b17851cde9814f35acce4f740f53fb63dd7 +$ rad id edit --title "Boo!" --description "Boo!" efb8cdd368b9745396f832386f9c7d46988f6bd5 [..] ``` Alice can edit: ``` ~alice -$ rad id edit --title "Make private" --description "Privacy is cool." 3fba3b17851cde9814f35acce4f740f53fb63dd7 -✓ Revision 3fba3b17851cde9814f35acce4f740f53fb63dd7 edited -$ rad id show 3fba3b17851cde9814f35acce4f740f53fb63dd7 +$ rad id edit --title "Make private" --description "Privacy is cool." efb8cdd368b9745396f832386f9c7d46988f6bd5 +✓ Revision efb8cdd368b9745396f832386f9c7d46988f6bd5 edited +$ rad id show efb8cdd368b9745396f832386f9c7d46988f6bd5 ╭────────────────────────────────────────────────────────────────────────╮ │ Title Make private │ -│ Revision 3fba3b17851cde9814f35acce4f740f53fb63dd7 │ +│ Revision efb8cdd368b9745396f832386f9c7d46988f6bd5 │ │ Blob 79bc5c39103e811a3c9f11744f9a4029f063a5de │ │ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │ │ State active │ @@ -142,21 +142,21 @@ $ rad id show 3fba3b17851cde9814f35acce4f740f53fb63dd7 And she can redact her revision: ``` ~alice -$ rad id redact 3fba3b17851cde9814f35acce4f740f53fb63dd7 -✓ Revision 3fba3b17851cde9814f35acce4f740f53fb63dd7 redacted +$ rad id redact efb8cdd368b9745396f832386f9c7d46988f6bd5 +✓ Revision efb8cdd368b9745396f832386f9c7d46988f6bd5 redacted ``` ``` ~alice (fail) -$ rad id show 3fba3b17851cde9814f35acce4f740f53fb63dd7 -✗ Error: revision `3fba3b17851cde9814f35acce4f740f53fb63dd7` not found +$ rad id show efb8cdd368b9745396f832386f9c7d46988f6bd5 +✗ Error: revision `efb8cdd368b9745396f832386f9c7d46988f6bd5` 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 572b3189cf5a9cdba5f77db183a29a50562ba318 created +✓ Identity revision faf5fb018803d2883e9906bb9c08b6ec83aa55dd created ╭────────────────────────────────────────────────────────────────────────╮ │ Title Remove Bob │ -│ Revision 572b3189cf5a9cdba5f77db183a29a50562ba318 │ +│ Revision faf5fb018803d2883e9906bb9c08b6ec83aa55dd │ │ Blob 7109c1c201c223dd4e9fdb10f7330dc6f0310258 │ │ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │ │ State active │ diff --git a/radicle-cli/examples/rad-id.md b/radicle-cli/examples/rad-id.md index e01921bc..d720cc90 100644 --- a/radicle-cli/examples/rad-id.md +++ b/radicle-cli/examples/rad-id.md @@ -15,10 +15,10 @@ threshold to `2`. ``` $ rad id update --title "Add Bob" --description "Add Bob as a delegate" --delegate did:key:z6MkedTZGJGqgQ2py2b8kGecfxdt2yRdHWF6JpaZC47fovFn --threshold 2 -✓ Identity revision d067ffc7bf65d318dd68ca4b8c7adf61a369ea2f created +✓ Identity revision 07829cdd1993295cd6be18de6219fead428b4a5e created ╭───────────────────────────────────────────────────────────────────╮ │ Title Add Bob │ -│ Revision d067ffc7bf65d318dd68ca4b8c7adf61a369ea2f │ +│ Revision 07829cdd1993295cd6be18de6219fead428b4a5e │ │ Blob 7109c1c201c223dd4e9fdb10f7330dc6f0310258 │ │ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │ │ State accepted │ @@ -93,22 +93,22 @@ $ rad inspect --identity We can also look at the document's COB directly: ``` -$ rad cob show --object 2317f74de0494c489a233ca6f29f2b8bff6d4f15 --type xyz.radicle.id --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji -commit d067ffc7bf65d318dd68ca4b8c7adf61a369ea2f -parent 2317f74de0494c489a233ca6f29f2b8bff6d4f15 +$ rad cob show --object 0656c217f917c3e06234771e9ecae53aba5e173e --type xyz.radicle.id --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji +commit 07829cdd1993295cd6be18de6219fead428b4a5e +parent 0656c217f917c3e06234771e9ecae53aba5e173e author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi date Thu, 15 Dec 2022 17:28:04 +0000 { "blob": "7109c1c201c223dd4e9fdb10f7330dc6f0310258", "description": "Add Bob as a delegate", - "parent": "2317f74de0494c489a233ca6f29f2b8bff6d4f15", + "parent": "0656c217f917c3e06234771e9ecae53aba5e173e", "signature": "z3sne3sdReZ4AtgxQmn7R1pQnz7E9ZEUoRfCJDJ8ytgnBMFW4DJqRHuBz2h1NK4QdGEy3QCpyVoJKfE95tNoivXwz", "title": "Add Bob", "type": "revision" } -commit 2317f74de0494c489a233ca6f29f2b8bff6d4f15 +commit 0656c217f917c3e06234771e9ecae53aba5e173e author z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi date Thu, 15 Dec 2022 17:28:04 +0000 @@ -126,14 +126,14 @@ Note that once a revision is accepted, it can't be edited, redacted or otherwise acted upon: ``` (fail) -$ rad id redact d067ffc7bf65d318dd68ca4b8c7adf61a369ea2f +$ rad id redact 07829cdd1993295cd6be18de6219fead428b4a5e ✗ Error: [..] ``` ``` (fail) -$ rad id reject d067ffc7bf65d318dd68ca4b8c7adf61a369ea2f +$ rad id reject 07829cdd1993295cd6be18de6219fead428b4a5e ✗ Error: [..] ``` ``` (fail) -$ rad id accept d067ffc7bf65d318dd68ca4b8c7adf61a369ea2f +$ rad id accept 07829cdd1993295cd6be18de6219fead428b4a5e ✗ Error: [..] ``` diff --git a/radicle-cli/examples/rad-inspect.md b/radicle-cli/examples/rad-inspect.md index 43600ce6..6101f81c 100644 --- a/radicle-cli/examples/rad-inspect.md +++ b/radicle-cli/examples/rad-inspect.md @@ -21,7 +21,7 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi └── refs    ├── cobs    │   └── xyz.radicle.id -    │      └── 2317f74de0494c489a233ca6f29f2b8bff6d4f15 +    │      └── 0656c217f917c3e06234771e9ecae53aba5e173e    ├── heads    │   └── master    └── rad @@ -49,7 +49,7 @@ history: ``` $ rad inspect --history -commit 2317f74de0494c489a233ca6f29f2b8bff6d4f15 +commit 0656c217f917c3e06234771e9ecae53aba5e173e blob d96f425412c9f8ad5d9a9a05c9831d0728e2338d date Thu, 15 Dec 2022 17:28:04 +0000 diff --git a/radicle-cli/examples/rad-issue.md b/radicle-cli/examples/rad-issue.md index 1fbf4379..7de20f9a 100644 --- a/radicle-cli/examples/rad-issue.md +++ b/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 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d │ +│ Issue d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 │ │ Author z6MknSL…StBU8Vi (you) │ │ Status open │ │ │ @@ -22,17 +22,17 @@ $ rad issue list ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Labels Assignees Opened │ ├───────────────────────────────────────────────────────────────────────────────────────────────────┤ -│ ● 9bf82c1 flux capacitor underpowered z6MknSL…StBU8Vi (you) now │ +│ ● d185ee1 flux capacitor underpowered z6MknSL…StBU8Vi (you) now │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ ``` Show the issue information issue. ``` -$ rad issue show 9bf82c1 +$ rad issue show d185ee1 ╭─────────────────────────────────────────────────────────╮ │ Title flux capacitor underpowered │ -│ Issue 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d │ +│ Issue d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 │ │ Author z6MknSL…StBU8Vi (you) │ │ Status open │ │ │ @@ -49,7 +49,7 @@ others to work on. This is to ensure work is not duplicated. Let's assign ourselves to this one. ``` -$ rad assign 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d --to did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi +$ rad assign d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 --to did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi ``` It will now show in the list of issues assigned to us. @@ -59,14 +59,14 @@ $ rad issue list --assigned ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Labels Assignees Opened │ ├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ -│ ● 9bf82c1 flux capacitor underpowered z6MknSL…StBU8Vi (you) z6MknSL…StBU8Vi now │ +│ ● d185ee1 flux capacitor underpowered z6MknSL…StBU8Vi (you) z6MknSL…StBU8Vi now │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ``` Note: this can always be undone with the `unassign` subcommand. ``` -$ rad unassign 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d --from did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi +$ rad unassign d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 --from did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi ``` Great, now we have communicated to the world about our car's defect. @@ -75,28 +75,28 @@ 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 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d --message 'The flux capacitor needs 1.21 Gigawatts' -q -1a8e9d3d62d22b247064b12d1d89ad8598504129 -$ rad issue comment 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d --reply-to 1a8e9d3d62d22b247064b12d1d89ad8598504129 --message 'More power!' -q -fb6ab7e0ca5be3c34688bcae37d7302bb824decf +$ rad issue comment d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 --message 'The flux capacitor needs 1.21 Gigawatts' -q +14019611935fd1c66458111a5b49f0a7350c226f +$ rad issue comment d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 --reply-to 14019611935fd1c66458111a5b49f0a7350c226f --message 'More power!' -q +e342e47b7dd93451d47c806a0faeb0b5e957da2c ``` We can see our comments by showing the issue: ``` -$ rad issue show 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d +$ rad issue show d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 ╭─────────────────────────────────────────────────────────╮ │ Title flux capacitor underpowered │ -│ Issue 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d │ +│ Issue d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 │ │ Author z6MknSL…StBU8Vi (you) │ │ Status open │ │ │ │ Flux capacitor power requirements exceed current supply │ ├─────────────────────────────────────────────────────────┤ -│ z6MknSL…StBU8Vi (you) now 1a8e9d3 │ +│ z6MknSL…StBU8Vi (you) now 1401961 │ │ The flux capacitor needs 1.21 Gigawatts │ ├─────────────────────────────────────────────────────────┤ -│ z6MknSL…StBU8Vi (you) now fb6ab7e │ +│ z6MknSL…StBU8Vi (you) now e342e47 │ │ More power! │ ╰─────────────────────────────────────────────────────────╯ ``` diff --git a/radicle-cli/examples/rad-label.md b/radicle-cli/examples/rad-label.md index 7decb7ae..d66d2525 100644 --- a/radicle-cli/examples/rad-label.md +++ b/radicle-cli/examples/rad-label.md @@ -2,16 +2,16 @@ Labeling an issue is easy, let's add the `bug` and `good-first-issue` labels to some issue: ``` -$ rad label 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d bug good-first-issue +$ rad label d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 bug good-first-issue ``` We can now show the issue to check whether those labels were added: ``` -$ rad issue show 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d --format header +$ rad issue show d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 --format header ╭─────────────────────────────────────────────────────────╮ │ Title flux capacitor underpowered │ -│ Issue 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d │ +│ Issue d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 │ │ Author z6MknSL…StBU8Vi (you) │ │ Labels bug, good-first-issue │ │ Status open │ @@ -23,16 +23,16 @@ $ rad issue show 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d --format header Untagging an issue is very similar: ``` -$ rad unlabel 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d good-first-issue +$ rad unlabel d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 good-first-issue ``` Notice that the `good-first-issue` label has disappeared: ``` -$ rad issue show 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d --format header +$ rad issue show d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 --format header ╭─────────────────────────────────────────────────────────╮ │ Title flux capacitor underpowered │ -│ Issue 9bf82c141d5a9c54bb1d6b4517eb3bb7da8fb30d │ +│ Issue d185ee16a00bac874c0bcbc2a8ad80fdce5e1e61 │ │ Author z6MknSL…StBU8Vi (you) │ │ Labels bug │ │ Status open │ diff --git a/radicle-cli/examples/rad-merge-after-update.md b/radicle-cli/examples/rad-merge-after-update.md index 787eb6e5..66f58074 100644 --- a/radicle-cli/examples/rad-merge-after-update.md +++ b/radicle-cli/examples/rad-merge-after-update.md @@ -4,7 +4,7 @@ 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 f6c96cca58521d6dbb6cd4e6b7124342b9a86945 opened +✓ Patch a1207f6e82700e42cc46c9c38c7786b18cbd2040 opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` @@ -26,8 +26,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 f6c96cc updated to [...] -✓ Patch f6c96cca58521d6dbb6cd4e6b7124342b9a86945 merged +✓ Patch a1207f6 updated to [...] +✓ Patch a1207f6e82700e42cc46c9c38c7786b18cbd2040 merged To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi - + 20aa5dd...954bcdb feature/1 -> patches/f6c96cca58521d6dbb6cd4e6b7124342b9a86945 (forced update) + + 20aa5dd...954bcdb feature/1 -> patches/a1207f6e82700e42cc46c9c38c7786b18cbd2040 (forced update) ``` diff --git a/radicle-cli/examples/rad-merge-no-ff.md b/radicle-cli/examples/rad-merge-no-ff.md index 05f99a74..3a65a6d7 100644 --- a/radicle-cli/examples/rad-merge-no-ff.md +++ b/radicle-cli/examples/rad-merge-no-ff.md @@ -4,7 +4,7 @@ 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 f6c96cca58521d6dbb6cd4e6b7124342b9a86945 opened +✓ Patch a1207f6e82700e42cc46c9c38c7786b18cbd2040 opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` @@ -36,7 +36,7 @@ committer radicle 1671125284 +0000 Finally, we push master and expect the patch to be merged. ``` (stderr) RAD_SOCKET=/dev/null $ git push rad master -✓ Patch f6c96cca58521d6dbb6cd4e6b7124342b9a86945 merged +✓ Patch a1207f6e82700e42cc46c9c38c7786b18cbd2040 merged To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi f2de534..737a10c master -> master ``` diff --git a/radicle-cli/examples/rad-merge-via-push.md b/radicle-cli/examples/rad-merge-via-push.md index 74419fab..3d01aa57 100644 --- a/radicle-cli/examples/rad-merge-via-push.md +++ b/radicle-cli/examples/rad-merge-via-push.md @@ -4,7 +4,7 @@ Let's start by creating two patches. $ git checkout -b feature/1 -q $ git commit --allow-empty -q -m "First change" $ git push rad HEAD:refs/patches -✓ Patch f6c96cca58521d6dbb6cd4e6b7124342b9a86945 opened +✓ Patch a1207f6e82700e42cc46c9c38c7786b18cbd2040 opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` @@ -12,7 +12,7 @@ To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkE $ git checkout -b feature/2 -q master $ git commit --allow-empty -q -m "Second change" $ git push rad HEAD:refs/patches -✓ Patch 3b8203713e2945a6c46b238e6a432bd2711d3ccf opened +✓ Patch 8357a9f1d61e80309d314491aa754969d9f47d77 opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` @@ -22,8 +22,8 @@ This creates some remote tracking branches for us: ``` $ git branch -r rad/master - rad/patches/3b8203713e2945a6c46b238e6a432bd2711d3ccf - rad/patches/f6c96cca58521d6dbb6cd4e6b7124342b9a86945 + rad/patches/8357a9f1d61e80309d314491aa754969d9f47d77 + rad/patches/a1207f6e82700e42cc46c9c38c7786b18cbd2040 ``` And some remote refs: @@ -34,15 +34,15 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi └── refs    ├── cobs    │   ├── xyz.radicle.id -    │   │   └── 2317f74de0494c489a233ca6f29f2b8bff6d4f15 +    │   │   └── 0656c217f917c3e06234771e9ecae53aba5e173e    │   └── xyz.radicle.patch -    │      ├── 3b8203713e2945a6c46b238e6a432bd2711d3ccf -    │      └── f6c96cca58521d6dbb6cd4e6b7124342b9a86945 +    │      ├── 8357a9f1d61e80309d314491aa754969d9f47d77 +    │      └── a1207f6e82700e42cc46c9c38c7786b18cbd2040    ├── heads    │   ├── master    │   └── patches -    │      ├── 3b8203713e2945a6c46b238e6a432bd2711d3ccf -    │      └── f6c96cca58521d6dbb6cd4e6b7124342b9a86945 +    │      ├── 8357a9f1d61e80309d314491aa754969d9f47d77 +    │      └── a1207f6e82700e42cc46c9c38c7786b18cbd2040    └── rad       ├── id       └── sigrefs @@ -61,8 +61,8 @@ When we push to `rad/master`, we automatically merge the patches: ``` (stderr) RAD_SOCKET=/dev/null $ git push rad master -✓ Patch 3b8203713e2945a6c46b238e6a432bd2711d3ccf merged -✓ Patch f6c96cca58521d6dbb6cd4e6b7124342b9a86945 merged +✓ Patch 8357a9f1d61e80309d314491aa754969d9f47d77 merged +✓ Patch a1207f6e82700e42cc46c9c38c7786b18cbd2040 merged To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi f2de534..d6399c7 master -> master ``` @@ -91,10 +91,10 @@ z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi └── refs    ├── cobs    │   ├── xyz.radicle.id -    │   │   └── 2317f74de0494c489a233ca6f29f2b8bff6d4f15 +    │   │   └── 0656c217f917c3e06234771e9ecae53aba5e173e    │   └── xyz.radicle.patch -    │      ├── 3b8203713e2945a6c46b238e6a432bd2711d3ccf -    │      └── f6c96cca58521d6dbb6cd4e6b7124342b9a86945 +    │      ├── 8357a9f1d61e80309d314491aa754969d9f47d77 +    │      └── a1207f6e82700e42cc46c9c38c7786b18cbd2040    ├── heads    │   └── master    └── rad diff --git a/radicle-cli/examples/rad-patch-ahead-behind.md b/radicle-cli/examples/rad-patch-ahead-behind.md index 669e7be7..c69e6007 100644 --- a/radicle-cli/examples/rad-patch-ahead-behind.md +++ b/radicle-cli/examples/rad-patch-ahead-behind.md @@ -37,7 +37,7 @@ $ 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 71e51dfcf7ca124a75ec6e0cb21b13bf86b8bb2e opened +✓ Patch f03f6ea57890ba8937269190d559d32105b36e03 opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] feature/1 -> refs/patches ``` @@ -48,17 +48,17 @@ $ rad patch list ╭────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Head + - Updated │ ├────────────────────────────────────────────────────────────────────────┤ -│ ● 71e51df Add Alan z6MknSL…StBU8Vi (you) 5c88a79 +1 -0 now │ +│ ● f03f6ea Add Alan z6MknSL…StBU8Vi (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 71e51df +$ rad patch show -v -p f03f6ea ╭────────────────────────────────────────────────────╮ │ Title Add Alan │ -│ Patch 71e51dfcf7ca124a75ec6e0cb21b13bf86b8bb2e │ +│ Patch f03f6ea57890ba8937269190d559d32105b36e03 │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7 │ │ Base f64fb2c8fe28f7c458c72ec8d700373924794943 │ @@ -93,7 +93,7 @@ $ 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 364cc2809f14c1bc74a8868159e87eb3844eb7e2 opened +✓ Patch 13a3d64f00e1c3f01c4d65fe115d2a2ed57d6cb7 opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` @@ -101,10 +101,10 @@ To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkE 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 364cc2809f14c1bc74a8868159e87eb3844eb7e2 +$ rad patch show -v 13a3d64f00e1c3f01c4d65fe115d2a2ed57d6cb7 ╭────────────────────────────────────────────────────╮ │ Title Add Mel │ -│ Patch 364cc2809f14c1bc74a8868159e87eb3844eb7e2 │ +│ Patch 13a3d64f00e1c3f01c4d65fe115d2a2ed57d6cb7 │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 │ │ Base f64fb2c8fe28f7c458c72ec8d700373924794943 │ @@ -124,7 +124,7 @@ 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 11ab7fbec82c3aed393d7a696d6b3c7714735056 opened +✓ Patch c0083bdc7f7acda2e7a9db3134566dd385c7e88e opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` @@ -136,10 +136,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 11ab7fbec82c3aed393d7a696d6b3c7714735056 +$ rad patch show -v c0083bdc7f7acda2e7a9db3134566dd385c7e88e ╭────────────────────────────────────────────────────╮ │ Title Add Mel #2 │ -│ Patch 11ab7fbec82c3aed393d7a696d6b3c7714735056 │ +│ Patch c0083bdc7f7acda2e7a9db3134566dd385c7e88e │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 7f63fcbcf23fc39eea784c091ad3d20d7e4bd005 │ │ Base 5c88a79d75f5c2b4cc51ee6f163d2db91ee198d7 │ diff --git a/radicle-cli/examples/rad-patch-checkout.md b/radicle-cli/examples/rad-patch-checkout.md index 723be0e5..d2a089bc 100644 --- a/radicle-cli/examples/rad-patch-checkout.md +++ b/radicle-cli/examples/rad-patch-checkout.md @@ -22,7 +22,7 @@ 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 a8926643a8f6a65bc386b0131621994000485d4d opened +✓ Patch 6ff4f09c1b5a81347981f59b02ef43a31a07cdae opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` @@ -30,9 +30,9 @@ To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkE Now, let's checkout the patch that we just created: ``` -$ rad patch checkout a892664 -✓ Switched to branch patch/a892664 -✓ Branch patch/a892664 setup to track rad/patches/a8926643a8f6a65bc386b0131621994000485d4d +$ rad patch checkout 6ff4f09 +✓ Switched to branch patch/6ff4f09 +✓ Branch patch/6ff4f09 setup to track rad/patches/6ff4f09c1b5a81347981f59b02ef43a31a07cdae ``` Now, let's add a README too! @@ -41,7 +41,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/a892664 27857ec] Add README, just for the fun +[patch/6ff4f09 27857ec] Add README, just for the fun 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 README.md ``` @@ -55,18 +55,18 @@ Switched to branch 'master' ``` We can be safe in the knowledge that our changes on the -`patch/a892664` branch are still safe: +`patch/6ff4f09` branch are still safe: ``` -$ rad patch checkout a892664 -✓ Switched to branch patch/a892664 +$ rad patch checkout 6ff4f09 +✓ Switched to branch patch/6ff4f09 ``` We can now finish off the update: ``` (stderr) $ git push rad -o patch.message="Add README, just for the fun" -✓ Patch a892664 updated to 8d8aa0887a11f2a37fa8ed0d5723efa96fd727ed +✓ Patch 6ff4f09 updated to 0c0942e2ff2488617d950ede15567ca39a29972e To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi - 3e674d1..27857ec patch/a892664 -> patches/a8926643a8f6a65bc386b0131621994000485d4d + 3e674d1..27857ec patch/6ff4f09 -> patches/6ff4f09c1b5a81347981f59b02ef43a31a07cdae ``` diff --git a/radicle-cli/examples/rad-patch-draft.md b/radicle-cli/examples/rad-patch-draft.md index 56d63871..7bf8ad3f 100644 --- a/radicle-cli/examples/rad-patch-draft.md +++ b/radicle-cli/examples/rad-patch-draft.md @@ -9,7 +9,7 @@ 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 78fcb007b4a3a898379f1e220d4b9fb54ad04cfc drafted +✓ Patch 193a2540ded82245b49971de8afc89a129502c6d drafted To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` @@ -17,10 +17,10 @@ To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkE We can confirm it's a draft by running `show`: ``` -$ rad patch show 78fcb007b4a3a898379f1e220d4b9fb54ad04cfc +$ rad patch show 193a2540ded82245b49971de8afc89a129502c6d ╭────────────────────────────────────────────────────╮ │ Title Nothing yet │ -│ Patch 78fcb007b4a3a898379f1e220d4b9fb54ad04cfc │ +│ Patch 193a2540ded82245b49971de8afc89a129502c6d │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 2a465832b5a76abe25be44a3a5d224bbd7741ba7 │ │ Branches cloudhead/draft │ @@ -36,14 +36,14 @@ $ rad patch show 78fcb007b4a3a898379f1e220d4b9fb54ad04cfc Once the patch is ready for review, we can use the `ready` command: ``` -$ rad patch ready 78fcb007b4a3a898379f1e220d4b9fb54ad04cfc +$ rad patch ready 193a2540ded82245b49971de8afc89a129502c6d ``` ``` -$ rad patch show 78fcb007b4a3a898379f1e220d4b9fb54ad04cfc +$ rad patch show 193a2540ded82245b49971de8afc89a129502c6d ╭────────────────────────────────────────────────────╮ │ Title Nothing yet │ -│ Patch 78fcb007b4a3a898379f1e220d4b9fb54ad04cfc │ +│ Patch 193a2540ded82245b49971de8afc89a129502c6d │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 2a465832b5a76abe25be44a3a5d224bbd7741ba7 │ │ Branches cloudhead/draft │ @@ -60,11 +60,11 @@ If for whatever reason, it needed to go back into draft mode, we could use the `--undo` flag: ``` -$ rad patch ready --undo 78fcb007b4a3a898379f1e220d4b9fb54ad04cfc -$ rad patch show 78fcb007b4a3a898379f1e220d4b9fb54ad04cfc +$ rad patch ready --undo 193a2540ded82245b49971de8afc89a129502c6d +$ rad patch show 193a2540ded82245b49971de8afc89a129502c6d ╭────────────────────────────────────────────────────╮ │ Title Nothing yet │ -│ Patch 78fcb007b4a3a898379f1e220d4b9fb54ad04cfc │ +│ Patch 193a2540ded82245b49971de8afc89a129502c6d │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 2a465832b5a76abe25be44a3a5d224bbd7741ba7 │ │ Branches cloudhead/draft │ @@ -75,3 +75,4 @@ $ rad patch show 78fcb007b4a3a898379f1e220d4b9fb54ad04cfc ├────────────────────────────────────────────────────┤ │ ● opened by z6MknSL…StBU8Vi (you) [ ... ] │ ╰────────────────────────────────────────────────────╯ +``` diff --git a/radicle-cli/examples/rad-patch-pull-update.md b/radicle-cli/examples/rad-patch-pull-update.md index 78a944af..a0c89785 100644 --- a/radicle-cli/examples/rad-patch-pull-update.md +++ b/radicle-cli/examples/rad-patch-pull-update.md @@ -49,22 +49,22 @@ $ cd heartwood $ 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 a84ea2e8626a86442910a2e70837561538c20efb opened +✓ Patch 48c30356be83049458c0608d5a6f84789e9dc1d0 opened ✓ Synced with 1 node(s) To rad://zhbMU4DUXrzB8xT6qAJh6yZ7bFMK/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk * [new reference] HEAD -> refs/patches ``` ``` ~bob $ git status --short --branch -## bob/feature...rad/patches/a84ea2e8626a86442910a2e70837561538c20efb +## bob/feature...rad/patches/48c30356be83049458c0608d5a6f84789e9dc1d0 ``` Alice checks it out. ``` ~alice -$ rad patch checkout a84ea2e -✓ Switched to branch patch/a84ea2e -✓ Branch patch/a84ea2e setup to track rad/patches/a84ea2e8626a86442910a2e70837561538c20efb +$ rad patch checkout 48c3035 +✓ Switched to branch patch/48c3035 +✓ Branch patch/48c3035 setup to track rad/patches/48c30356be83049458c0608d5a6f84789e9dc1d0 $ git show commit bdcdb30b3c0f513620dd0f1c24ff8f4f71de956b Author: radicle @@ -78,19 +78,19 @@ 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 a84ea2e updated to 9fd6bb156bc899aef7119e6d97c6cf850639a7df +✓ Patch 48c3035 updated to 8c15a61af45f561b4bf0694aee03ade34a1b18f5 ✓ Synced with 1 node(s) To rad://zhbMU4DUXrzB8xT6qAJh6yZ7bFMK/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk - bdcdb30..cad2666 bob/feature -> patches/a84ea2e8626a86442910a2e70837561538c20efb + bdcdb30..cad2666 bob/feature -> patches/48c30356be83049458c0608d5a6f84789e9dc1d0 ``` Alice pulls the update. ``` ~alice -$ rad patch show a84ea2e +$ rad patch show 48c3035 ╭─────────────────────────────────────────────────────────────────────╮ │ Title Bob's patch │ -│ Patch a84ea2e8626a86442910a2e70837561538c20efb │ +│ Patch 48c30356be83049458c0608d5a6f84789e9dc1d0 │ │ Author bob z6Mkt67…v4N1tRk │ │ Head cad2666a8a2250e4dee175ed5044be2c251ff08b │ │ Commits ahead 2, behind 0 │ @@ -100,16 +100,16 @@ $ rad patch show a84ea2e │ bdcdb30 Bob's commit #1 │ ├─────────────────────────────────────────────────────────────────────┤ │ ● opened by bob z6Mkt67…v4N1tRk now │ -│ ↑ updated to 9fd6bb156bc899aef7119e6d97c6cf850639a7df (cad2666) now │ +│ ↑ updated to 8c15a61af45f561b4bf0694aee03ade34a1b18f5 (cad2666) now │ ╰─────────────────────────────────────────────────────────────────────╯ $ git ls-remote rad f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master -cad2666a8a2250e4dee175ed5044be2c251ff08b refs/heads/patches/a84ea2e8626a86442910a2e70837561538c20efb +cad2666a8a2250e4dee175ed5044be2c251ff08b refs/heads/patches/48c30356be83049458c0608d5a6f84789e9dc1d0 ``` ``` ~alice $ git fetch rad $ git status --short --branch -## patch/a84ea2e...rad/patches/a84ea2e8626a86442910a2e70837561538c20efb [behind 1] +## patch/48c3035...rad/patches/48c30356be83049458c0608d5a6f84789e9dc1d0 [behind 1] ``` ``` ~alice $ git pull diff --git a/radicle-cli/examples/rad-patch-update.md b/radicle-cli/examples/rad-patch-update.md index 37c262f3..c5f60622 100644 --- a/radicle-cli/examples/rad-patch-update.md +++ b/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 2541d346ba0b9377b3d38852dfded43f23833fc1 opened +✓ Patch 8f5dcedc07a89928fd450bce1479f2559bcfd1d4 opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` ``` -$ rad patch show 2541d346ba0b9377b3d38852dfded43f23833fc1 +$ rad patch show 8f5dcedc07a89928fd450bce1479f2559bcfd1d4 ╭────────────────────────────────────────────────────╮ │ Title Not a real change │ -│ Patch 2541d346ba0b9377b3d38852dfded43f23833fc1 │ +│ Patch 8f5dcedc07a89928fd450bce1479f2559bcfd1d4 │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 51b2f0f77b9849bfaa3e9d3ff68ee2f57771d20c │ │ Branches feature/1 │ @@ -46,17 +46,17 @@ Now, instead of using `git push` to update the patch, as we normally would, we run: ``` -$ rad patch update 2541d346ba0b9377b3d38852dfded43f23833fc1 -m "Updated patch" -d9c9ef902f2957d746bb53e744e69a5c3aa564bc +$ rad patch update 8f5dcedc07a89928fd450bce1479f2559bcfd1d4 -m "Updated patch" +74d453f93d81bb535ffa4ef65c46e5bd0a76015d ``` The command outputs the new Revision ID, which we can now see here: ``` -$ rad patch show 2541d346ba0b9377b3d38852dfded43f23833fc1 +$ rad patch show 8f5dcedc07a89928fd450bce1479f2559bcfd1d4 ╭─────────────────────────────────────────────────────────────────────╮ │ Title Not a real change │ -│ Patch 2541d346ba0b9377b3d38852dfded43f23833fc1 │ +│ Patch 8f5dcedc07a89928fd450bce1479f2559bcfd1d4 │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 4d272148458a17620541555b1f0905c01658aa9f │ │ Branches feature/1 │ @@ -67,6 +67,6 @@ $ rad patch show 2541d346ba0b9377b3d38852dfded43f23833fc1 │ 51b2f0f Not a real change │ ├─────────────────────────────────────────────────────────────────────┤ │ ● opened by z6MknSL…StBU8Vi (you) now │ -│ ↑ updated to d9c9ef902f2957d746bb53e744e69a5c3aa564bc (4d27214) now │ +│ ↑ updated to 74d453f93d81bb535ffa4ef65c46e5bd0a76015d (4d27214) now │ ╰─────────────────────────────────────────────────────────────────────╯ ``` diff --git a/radicle-cli/examples/rad-patch-via-push.md b/radicle-cli/examples/rad-patch-via-push.md index 1d879ee7..53e05e49 100644 --- a/radicle-cli/examples/rad-patch-via-push.md +++ b/radicle-cli/examples/rad-patch-via-push.md @@ -8,7 +8,7 @@ $ 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 e49e64637ab4a29e5a16c73000dacd2afa918d9d opened +✓ Patch 82faae29b2a2f11bf45bbba4c4787d6b32a12447 opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` @@ -16,10 +16,10 @@ To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkE We can see a patch was created: ``` -$ rad patch show e49e64637ab4a29e5a16c73000dacd2afa918d9d +$ rad patch show 82faae29b2a2f11bf45bbba4c4787d6b32a12447 ╭────────────────────────────────────────────────────╮ │ Title Add things #1 │ -│ Patch e49e64637ab4a29e5a16c73000dacd2afa918d9d │ +│ Patch 82faae29b2a2f11bf45bbba4c4787d6b32a12447 │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 42d894a83c9c356552a57af09ccdbd5587a99045 │ │ Branches feature/1 │ @@ -39,7 +39,7 @@ branch associated with this patch: ``` $ git branch -vv -* feature/1 42d894a [rad/patches/e49e64637ab4a29e5a16c73000dacd2afa918d9d] Add things +* feature/1 42d894a [rad/patches/82faae29b2a2f11bf45bbba4c4787d6b32a12447] Add things master f2de534 [rad/master] Second commit ``` @@ -47,7 +47,7 @@ Let's check that it's up to date with our local head: ``` $ git status --short --branch -## feature/1...rad/patches/e49e64637ab4a29e5a16c73000dacd2afa918d9d +## feature/1...rad/patches/82faae29b2a2f11bf45bbba4c4787d6b32a12447 $ git fetch $ git push ``` @@ -59,14 +59,14 @@ $ git show-ref 42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/feature/1 f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/remotes/rad/master -42d894a83c9c356552a57af09ccdbd5587a99045 refs/remotes/rad/patches/e49e64637ab4a29e5a16c73000dacd2afa918d9d +42d894a83c9c356552a57af09ccdbd5587a99045 refs/remotes/rad/patches/82faae29b2a2f11bf45bbba4c4787d6b32a12447 ``` ``` $ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji 'refs/heads/patches/*' -42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/patches/e49e64637ab4a29e5a16c73000dacd2afa918d9d +42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/patches/82faae29b2a2f11bf45bbba4c4787d6b32a12447 $ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi 'refs/cobs/*' -2317f74de0494c489a233ca6f29f2b8bff6d4f15 refs/cobs/xyz.radicle.id/2317f74de0494c489a233ca6f29f2b8bff6d4f15 -e49e64637ab4a29e5a16c73000dacd2afa918d9d refs/cobs/xyz.radicle.patch/e49e64637ab4a29e5a16c73000dacd2afa918d9d +0656c217f917c3e06234771e9ecae53aba5e173e refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e +82faae29b2a2f11bf45bbba4c4787d6b32a12447 refs/cobs/xyz.radicle.patch/82faae29b2a2f11bf45bbba4c4787d6b32a12447 ``` We can create another patch: @@ -75,7 +75,7 @@ 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 b1fd7b6883dca2ef11e0e486a7097e759ea90cdb opened +✓ Patch b77b2e8a05adcdc859a0184f7db859df1c6686b6 opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` @@ -84,8 +84,8 @@ We see both branches with upstreams now: ``` $ git branch -vv - feature/1 42d894a [rad/patches/e49e64637ab4a29e5a16c73000dacd2afa918d9d] Add things -* feature/2 8b0ea80 [rad/patches/b1fd7b6883dca2ef11e0e486a7097e759ea90cdb] Add more things + feature/1 42d894a [rad/patches/82faae29b2a2f11bf45bbba4c4787d6b32a12447] Add things +* feature/2 8b0ea80 [rad/patches/b77b2e8a05adcdc859a0184f7db859df1c6686b6] Add more things master f2de534 [rad/master] Second commit ``` @@ -96,8 +96,8 @@ $ rad patch ╭───────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Head + - Updated │ ├───────────────────────────────────────────────────────────────────────────────┤ -│ ● b1fd7b6 Add more things z6MknSL…StBU8Vi (you) 8b0ea80 +0 -0 now │ -│ ● e49e646 Add things #1 z6MknSL…StBU8Vi (you) 42d894a +0 -0 now │ +│ ● 82faae2 Add things #1 z6MknSL…StBU8Vi (you) 42d894a +0 -0 now │ +│ ● b77b2e8 Add more things z6MknSL…StBU8Vi (you) 8b0ea80 +0 -0 now │ ╰───────────────────────────────────────────────────────────────────────────────╯ ``` @@ -109,9 +109,9 @@ $ git commit -a -m "Improve code" -q --allow-empty ``` (stderr) $ git push -✓ Patch b1fd7b6 updated to c867846b9f294c271e8934820dfac2c5924ecd5a +✓ Patch b77b2e8 updated to 8d6692ce2b2219a54d09ccd5feefedb2bae33eba To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi - 8b0ea80..02bef3f feature/2 -> patches/b1fd7b6883dca2ef11e0e486a7097e759ea90cdb + 8b0ea80..02bef3f feature/2 -> patches/b77b2e8a05adcdc859a0184f7db859df1c6686b6 ``` This last `git push` worked without specifying an upstream branch despite the @@ -129,10 +129,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 b1fd7b6 +$ rad patch show b77b2e8 ╭─────────────────────────────────────────────────────────────────────╮ │ Title Add more things │ -│ Patch b1fd7b6883dca2ef11e0e486a7097e759ea90cdb │ +│ Patch b77b2e8a05adcdc859a0184f7db859df1c6686b6 │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 02bef3fac41b2f98bb3c02b868a53ddfecb55b5f │ │ Branches feature/2 │ @@ -143,7 +143,7 @@ $ rad patch show b1fd7b6 │ 8b0ea80 Add more things │ ├─────────────────────────────────────────────────────────────────────┤ │ ● opened by z6MknSL…StBU8Vi (you) now │ -│ ↑ updated to c867846b9f294c271e8934820dfac2c5924ecd5a (02bef3f) now │ +│ ↑ updated to 8d6692ce2b2219a54d09ccd5feefedb2bae33eba (02bef3f) now │ ╰─────────────────────────────────────────────────────────────────────╯ ``` @@ -156,14 +156,14 @@ $ git rev-parse HEAD ``` $ git status --short --branch -## feature/2...rad/patches/b1fd7b6883dca2ef11e0e486a7097e759ea90cdb +## feature/2...rad/patches/b77b2e8a05adcdc859a0184f7db859df1c6686b6 ``` ``` -$ git rev-parse refs/remotes/rad/patches/b1fd7b6883dca2ef11e0e486a7097e759ea90cdb +$ git rev-parse refs/remotes/rad/patches/b77b2e8a05adcdc859a0184f7db859df1c6686b6 02bef3fac41b2f98bb3c02b868a53ddfecb55b5f -$ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/patches/b1fd7b6883dca2ef11e0e486a7097e759ea90cdb -02bef3fac41b2f98bb3c02b868a53ddfecb55b5f refs/heads/patches/b1fd7b6883dca2ef11e0e486a7097e759ea90cdb +$ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi refs/heads/patches/b77b2e8a05adcdc859a0184f7db859df1c6686b6 +02bef3fac41b2f98bb3c02b868a53ddfecb55b5f refs/heads/patches/b77b2e8a05adcdc859a0184f7db859df1c6686b6 ``` ## Force push @@ -184,7 +184,7 @@ Now let's push to the patch head. ``` (stderr) (fail) $ git push To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi - ! [rejected] feature/2 -> patches/b1fd7b6883dca2ef11e0e486a7097e759ea90cdb (non-fast-forward) + ! [rejected] feature/2 -> patches/b77b2e8a05adcdc859a0184f7db859df1c6686b6 (non-fast-forward) error: failed to push some refs to 'rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi' hint: [..] hint: [..] @@ -197,18 +197,18 @@ use `--force` to force the update. ``` (stderr) $ git push --force -✓ Patch b1fd7b6 updated to cf4d8577a1ec8aaa21a7ccca67ad8627c3304024 +✓ Patch b77b2e8 updated to 8438ab3940316abe65c93982a0a8f39688400359 To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi - + 02bef3f...9304dbc feature/2 -> patches/b1fd7b6883dca2ef11e0e486a7097e759ea90cdb (forced update) + + 02bef3f...9304dbc feature/2 -> patches/b77b2e8a05adcdc859a0184f7db859df1c6686b6 (forced update) ``` That worked. We can see the new revision if we call `rad patch show`: ``` -$ rad patch show b1fd7b6 +$ rad patch show b77b2e8 ╭─────────────────────────────────────────────────────────────────────╮ │ Title Add more things │ -│ Patch b1fd7b6883dca2ef11e0e486a7097e759ea90cdb │ +│ Patch b77b2e8a05adcdc859a0184f7db859df1c6686b6 │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 9304dbc445925187994a7a93222a3f8bde73b785 │ │ Branches feature/2 │ @@ -219,8 +219,8 @@ $ rad patch show b1fd7b6 │ 8b0ea80 Add more things │ ├─────────────────────────────────────────────────────────────────────┤ │ ● opened by z6MknSL…StBU8Vi (you) now │ -│ ↑ updated to c867846b9f294c271e8934820dfac2c5924ecd5a (02bef3f) now │ -│ ↑ updated to cf4d8577a1ec8aaa21a7ccca67ad8627c3304024 (9304dbc) now │ +│ ↑ updated to 8d6692ce2b2219a54d09ccd5feefedb2bae33eba (02bef3f) now │ +│ ↑ updated to 8438ab3940316abe65c93982a0a8f39688400359 (9304dbc) now │ ╰─────────────────────────────────────────────────────────────────────╯ ``` diff --git a/radicle-cli/examples/rad-patch.md b/radicle-cli/examples/rad-patch.md index 904bea29..96d7ba56 100644 --- a/radicle-cli/examples/rad-patch.md +++ b/radicle-cli/examples/rad-patch.md @@ -26,7 +26,7 @@ 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 a8926643a8f6a65bc386b0131621994000485d4d opened +✓ Patch 6ff4f09c1b5a81347981f59b02ef43a31a07cdae opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi * [new reference] HEAD -> refs/patches ``` @@ -38,14 +38,14 @@ $ rad patch ╭─────────────────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Head + - Updated │ ├─────────────────────────────────────────────────────────────────────────────────────────┤ -│ ● a892664 Define power requirements z6MknSL…StBU8Vi (you) 3e674d1 +0 -0 now │ +│ ● 6ff4f09 Define power requirements z6MknSL…StBU8Vi (you) 3e674d1 +0 -0 now │ ╰─────────────────────────────────────────────────────────────────────────────────────────╯ ``` ``` -$ rad patch show a8926643a8f6a65bc386b0131621994000485d4d -p +$ rad patch show 6ff4f09c1b5a81347981f59b02ef43a31a07cdae -p ╭────────────────────────────────────────────────────╮ │ Title Define power requirements │ -│ Patch a8926643a8f6a65bc386b0131621994000485d4d │ +│ Patch 6ff4f09c1b5a81347981f59b02ef43a31a07cdae │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 3e674d1a1df90807e934f9ae5da2591dd6848a33 │ │ Branches flux-capacitor-power │ @@ -74,7 +74,7 @@ index 0000000..e69de29 We can also see that it set an upstream for our patch branch: ``` $ git branch -vv -* flux-capacitor-power 3e674d1 [rad/patches/a8926643a8f6a65bc386b0131621994000485d4d] Define power requirements +* flux-capacitor-power 3e674d1 [rad/patches/6ff4f09c1b5a81347981f59b02ef43a31a07cdae] Define power requirements master f2de534 [rad/master] Second commit ``` @@ -90,48 +90,48 @@ $ git commit --message "Add README, just for the fun" ``` ``` (stderr) $ git push rad -o patch.message="Add README, just for the fun" -✓ Patch a892664 updated to 8d8aa0887a11f2a37fa8ed0d5723efa96fd727ed +✓ Patch 6ff4f09 updated to 0c0942e2ff2488617d950ede15567ca39a29972e To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi - 3e674d1..27857ec flux-capacitor-power -> patches/a8926643a8f6a65bc386b0131621994000485d4d + 3e674d1..27857ec flux-capacitor-power -> patches/6ff4f09c1b5a81347981f59b02ef43a31a07cdae ``` And let's leave a quick comment for our team: ``` -$ rad patch comment a8926643a8f6a65bc386b0131621994000485d4d --message 'I cannot wait to get back to the 90s!' +$ rad patch comment 6ff4f09c1b5a81347981f59b02ef43a31a07cdae --message 'I cannot wait to get back to the 90s!' ╭───────────────────────────────────────╮ -│ z6MknSL…StBU8Vi (you) now b97a27f │ +│ z6MknSL…StBU8Vi (you) now cd811db │ │ I cannot wait to get back to the 90s! │ ╰───────────────────────────────────────╯ -$ rad patch comment a8926643a8f6a65bc386b0131621994000485d4d --message 'My favorite decade!' --reply-to b97a27f -q -a3a462bc8ab52e2a6f3568c28a11ba53cf40bbc8 +$ rad patch comment 6ff4f09c1b5a81347981f59b02ef43a31a07cdae --message 'My favorite decade!' --reply-to cd811db -q +b6a76fe394de87eb34cbc3823a0edc80ff98cb97 ``` Now, let's checkout the patch that we just created: ``` -$ rad patch checkout a892664 -✓ Switched to branch patch/a892664 -✓ Branch patch/a892664 setup to track rad/patches/a8926643a8f6a65bc386b0131621994000485d4d +$ rad patch checkout 6ff4f09 +✓ Switched to branch patch/6ff4f09 +✓ Branch patch/6ff4f09 setup to track rad/patches/6ff4f09c1b5a81347981f59b02ef43a31a07cdae ``` We can also add a review verdict as such: ``` -$ rad review a8926643a8f6a65bc386b0131621994000485d4d --accept --no-message --no-sync -✓ Patch a892664 accepted +$ rad review 6ff4f09c1b5a81347981f59b02ef43a31a07cdae --accept --no-message --no-sync +✓ Patch 6ff4f09 accepted ``` Showing the patch list now will reveal the favorable verdict: ``` -$ rad patch show a892664 +$ rad patch show 6ff4f09 ╭─────────────────────────────────────────────────────────────────────╮ │ Title Define power requirements │ -│ Patch a8926643a8f6a65bc386b0131621994000485d4d │ +│ Patch 6ff4f09c1b5a81347981f59b02ef43a31a07cdae │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │ -│ Branches flux-capacitor-power, patch/a892664 │ +│ Branches flux-capacitor-power, patch/6ff4f09 │ │ Commits ahead 2, behind 0 │ │ Status open │ │ │ @@ -141,7 +141,7 @@ $ rad patch show a892664 │ 3e674d1 Define power requirements │ ├─────────────────────────────────────────────────────────────────────┤ │ ● opened by z6MknSL…StBU8Vi (you) now │ -│ ↑ updated to 8d8aa0887a11f2a37fa8ed0d5723efa96fd727ed (27857ec) now │ +│ ↑ updated to 0c0942e2ff2488617d950ede15567ca39a29972e (27857ec) now │ │ ✓ accepted by z6MknSL…StBU8Vi (you) now │ ╰─────────────────────────────────────────────────────────────────────╯ ``` @@ -149,14 +149,14 @@ $ rad patch show a892664 If you make a mistake on the patch description, you can always change it! ``` -$ rad patch edit a892664 --message "Define power requirements" --message "Add requirements file" -$ rad patch show a892664 +$ rad patch edit 6ff4f09 --message "Define power requirements" --message "Add requirements file" +$ rad patch show 6ff4f09 ╭─────────────────────────────────────────────────────────────────────╮ │ Title Define power requirements │ -│ Patch a8926643a8f6a65bc386b0131621994000485d4d │ +│ Patch 6ff4f09c1b5a81347981f59b02ef43a31a07cdae │ │ Author z6MknSL…StBU8Vi (you) │ │ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │ -│ Branches flux-capacitor-power, patch/a892664 │ +│ Branches flux-capacitor-power, patch/6ff4f09 │ │ Commits ahead 2, behind 0 │ │ Status open │ │ │ @@ -166,7 +166,7 @@ $ rad patch show a892664 │ 3e674d1 Define power requirements │ ├─────────────────────────────────────────────────────────────────────┤ │ ● opened by z6MknSL…StBU8Vi (you) now │ -│ ↑ updated to 8d8aa0887a11f2a37fa8ed0d5723efa96fd727ed (27857ec) now │ +│ ↑ updated to 0c0942e2ff2488617d950ede15567ca39a29972e (27857ec) now │ │ ✓ accepted by z6MknSL…StBU8Vi (you) now │ ╰─────────────────────────────────────────────────────────────────────╯ ``` diff --git a/radicle-cli/examples/rad-review-by-hunk.md b/radicle-cli/examples/rad-review-by-hunk.md index 0eb3ff98..047cbcc8 100644 --- a/radicle-cli/examples/rad-review-by-hunk.md +++ b/radicle-cli/examples/rad-review-by-hunk.md @@ -61,7 +61,7 @@ $ git commit -q -m "Update files" ``` (stderr) $ git push rad HEAD:refs/patches -✓ Patch 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 opened +✓ Patch 52da8356aa9beec08e6943cb3c4063fa37f3241b opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/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 review --no-sync --patch -U5 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 +$ rad review --no-sync --patch -U5 52da8356aa9beec08e6943cb3c4063fa37f3241b diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 7937fb3..0000000 @@ -116,8 +116,8 @@ rename to notes/INSTRUCTIONS.txt Now let's accept these hunks one by one.. ``` -$ rad review --no-sync --patch --accept --hunk 1 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 -✓ Loaded existing review ([..]) for patch 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 +$ rad review --no-sync --patch --accept --hunk 1 52da8356aa9beec08e6943cb3c4063fa37f3241b +✓ Loaded existing review ([..]) for patch 52da8356aa9beec08e6943cb3c4063fa37f3241b diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 7937fb3..0000000 @@ -127,8 +127,8 @@ index 7937fb3..0000000 -*.draft ``` ``` -$ rad review --no-sync --patch --accept --hunk 1 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 -✓ Loaded existing review ([..]) for patch 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 +$ rad review --no-sync --patch --accept --hunk 1 52da8356aa9beec08e6943cb3c4063fa37f3241b +✓ Loaded existing review ([..]) for patch 52da8356aa9beec08e6943cb3c4063fa37f3241b diff --git a/DISCLAIMER.txt b/DISCLAIMER.txt new file mode 100644 index 0000000..2b5bd86 @@ -138,8 +138,8 @@ index 0000000..2b5bd86 +All food is served as-is, with no warranty! ``` ``` -$ rad review --no-sync --patch --accept -U3 --hunk 1 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 -✓ Loaded existing review ([..]) for patch 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 +$ rad review --no-sync --patch --accept -U3 --hunk 1 52da8356aa9beec08e6943cb3c4063fa37f3241b +✓ Loaded existing review ([..]) for patch 52da8356aa9beec08e6943cb3c4063fa37f3241b diff --git a/MENU.txt b/MENU.txt index 867958c..3af9741 100644 --- a/MENU.txt @@ -153,8 +153,8 @@ index 867958c..3af9741 100644 [..] ``` ``` -$ rad review --no-sync --patch --accept -U3 --hunk 1 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 -✓ Loaded existing review ([..]) for patch 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 +$ rad review --no-sync --patch --accept -U3 --hunk 1 52da8356aa9beec08e6943cb3c4063fa37f3241b +✓ Loaded existing review ([..]) for patch 52da8356aa9beec08e6943cb3c4063fa37f3241b diff --git a/MENU.txt b/MENU.txt index 4e2e828..3af9741 100644 --- a/MENU.txt @@ -169,8 +169,8 @@ index 4e2e828..3af9741 100644 ``` ``` -$ rad review --no-sync --patch --accept --hunk 1 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 -✓ Loaded existing review ([..]) for patch 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 +$ rad review --no-sync --patch --accept --hunk 1 52da8356aa9beec08e6943cb3c4063fa37f3241b +✓ Loaded existing review ([..]) for patch 52da8356aa9beec08e6943cb3c4063fa37f3241b diff --git a/INSTRUCTIONS.txt b/notes/INSTRUCTIONS.txt similarity index 100% rename from INSTRUCTIONS.txt @@ -178,7 +178,7 @@ rename to notes/INSTRUCTIONS.txt ``` ``` -$ rad review --no-sync --patch --accept --hunk 1 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 -✓ Loaded existing review ([..]) for patch 4f4fdb0fbb3327975b92fd1fa88e7427b1b141e2 +$ rad review --no-sync --patch --accept --hunk 1 52da8356aa9beec08e6943cb3c4063fa37f3241b +✓ Loaded existing review ([..]) for patch 52da8356aa9beec08e6943cb3c4063fa37f3241b ✓ All hunks have been reviewed ``` diff --git a/radicle-cli/examples/workflow/3-issues.md b/radicle-cli/examples/workflow/3-issues.md index 3ec64824..069b8e66 100644 --- a/radicle-cli/examples/workflow/3-issues.md +++ b/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 b0c5579944e37d0bf3455bf1cec9c91596c6f47a │ +│ Issue d0609890491d8b1892cb6229155508967418eafd │ │ Author bob (you) │ │ Status open │ │ │ @@ -22,7 +22,7 @@ $ rad issue list ╭──────────────────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Labels Assignees Opened │ ├──────────────────────────────────────────────────────────────────────────────────────────┤ -│ ● b0c5579 flux capacitor underpowered bob (you) now │ +│ ● d060989 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 b0c5579944e37d0bf3455bf1cec9c91596c6f47a --message 'The flux capacitor needs 1.21 Gigawatts' -q -c45d2acdd1de992c0127fd44519b8a5260695497 +$ rad issue comment d0609890491d8b1892cb6229155508967418eafd --message 'The flux capacitor needs 1.21 Gigawatts' -q +df9b63af142250fc1d0ee7dc4f82ae23d55d3250 ``` diff --git a/radicle-cli/examples/workflow/4-patching-contributor.md b/radicle-cli/examples/workflow/4-patching-contributor.md index 72807609..92a656be 100644 --- a/radicle-cli/examples/workflow/4-patching-contributor.md +++ b/radicle-cli/examples/workflow/4-patching-contributor.md @@ -26,7 +26,7 @@ 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 f5e2be41827ee9f80bcdcd02f4f0451287b36229 opened +✓ Patch 3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c opened To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk * [new reference] HEAD -> refs/patches ``` @@ -38,12 +38,12 @@ $ rad patch ╭────────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Head + - Updated │ ├────────────────────────────────────────────────────────────────────────────────┤ -│ ● f5e2be4 Define power requirements bob (you) 3e674d1 +0 -0 now │ +│ ● 3581e83 Define power requirements bob (you) 3e674d1 +0 -0 now │ ╰────────────────────────────────────────────────────────────────────────────────╯ -$ rad patch show f5e2be41827ee9f80bcdcd02f4f0451287b36229 +$ rad patch show 3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c ╭────────────────────────────────────────────────────╮ │ Title Define power requirements │ -│ Patch f5e2be41827ee9f80bcdcd02f4f0451287b36229 │ +│ Patch 3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c │ │ Author bob (you) │ │ Head 3e674d1a1df90807e934f9ae5da2591dd6848a33 │ │ Branches flux-capacitor-power │ @@ -62,7 +62,7 @@ We can also confirm that the patch branch is in storage: ``` $ git ls-remote rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk refs/heads/patches/* -3e674d1a1df90807e934f9ae5da2591dd6848a33 refs/heads/patches/f5e2be41827ee9f80bcdcd02f4f0451287b36229 +3e674d1a1df90807e934f9ae5da2591dd6848a33 refs/heads/patches/3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c ``` Wait, let's add a README too! Just for fun. @@ -77,14 +77,14 @@ $ 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 f5e2be4 updated to 68143c579935d115e1551b88154cc41763c43e1f +✓ Patch 3581e83 updated to 6de8527cdf51f96e12649c7278efe1dccfdee885 To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk - 3e674d1..27857ec flux-capacitor-power -> patches/f5e2be41827ee9f80bcdcd02f4f0451287b36229 + 3e674d1..27857ec flux-capacitor-power -> patches/3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c ``` And let's leave a quick comment for our team: ``` -$ rad patch comment f5e2be41827ee9f80bcdcd02f4f0451287b36229 --message 'I cannot wait to get back to the 90s!' -q -9b12eacdf5d326bdd16ed971809a9a88268ca435 +$ rad patch comment 3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c --message 'I cannot wait to get back to the 90s!' -q +b6711a58b45323f3ef2bb87cfb2b3b4d04c22a8b ``` diff --git a/radicle-cli/examples/workflow/5-patching-maintainer.md b/radicle-cli/examples/workflow/5-patching-maintainer.md index fcfe08cb..12a18320 100644 --- a/radicle-cli/examples/workflow/5-patching-maintainer.md +++ b/radicle-cli/examples/workflow/5-patching-maintainer.md @@ -22,7 +22,7 @@ $ git fetch bob ✓ Synced with 1 peer(s) From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk * [new branch] master -> bob/master - * [new branch] patches/f5e2be41827ee9f80bcdcd02f4f0451287b36229 -> bob/patches/f5e2be41827ee9f80bcdcd02f4f0451287b36229 + * [new branch] patches/3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c -> bob/patches/3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c ``` The contributor's changes are now visible to us. @@ -30,12 +30,12 @@ The contributor's changes are now visible to us. ``` $ git branch -r bob/master - bob/patches/f5e2be41827ee9f80bcdcd02f4f0451287b36229 + bob/patches/3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c rad/master -$ rad patch show f5e2be4 +$ rad patch show 3581e83 ╭─────────────────────────────────────────────────────────────────────╮ │ Title Define power requirements │ -│ Patch f5e2be41827ee9f80bcdcd02f4f0451287b36229 │ +│ Patch 3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c │ │ Author bob z6Mkt67…v4N1tRk │ │ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │ │ Commits ahead 2, behind 0 │ @@ -47,7 +47,7 @@ $ rad patch show f5e2be4 │ 3e674d1 Define power requirements │ ├─────────────────────────────────────────────────────────────────────┤ │ ● opened by bob z6Mkt67…v4N1tRk now │ -│ ↑ updated to 68143c579935d115e1551b88154cc41763c43e1f (27857ec) now │ +│ ↑ updated to 6de8527cdf51f96e12649c7278efe1dccfdee885 (27857ec) now │ ╰─────────────────────────────────────────────────────────────────────╯ ``` @@ -57,20 +57,20 @@ way will tell others about the corrections we needed before merging the changes. ``` -$ rad patch checkout f5e2be41827ee9f80bcdcd02f4f0451287b36229 -✓ Switched to branch patch/f5e2be4 -✓ Branch patch/f5e2be4 setup to track rad/patches/f5e2be41827ee9f80bcdcd02f4f0451287b36229 +$ rad patch checkout 3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c +✓ Switched to branch patch/3581e83 +✓ Branch patch/3581e83 setup to track rad/patches/3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c $ git mv REQUIREMENTS REQUIREMENTS.md $ git commit -m "Use markdown for requirements" -[patch/f5e2be4 f567f69] Use markdown for requirements +[patch/3581e83 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 f5e2be4 updated to 5dd1e6b73aa8c2dbfa192f8cf47cd1525c602ebf +✓ Patch 3581e83 updated to abb0360eae315bbd460743381303567587ab0e08 To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi - * [new branch] patch/f5e2be4 -> patches/f5e2be41827ee9f80bcdcd02f4f0451287b36229 + * [new branch] patch/3581e83 -> patches/3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c ``` Great, all fixed up, lets merge the code. @@ -78,7 +78,7 @@ Great, all fixed up, lets merge the code. ``` $ git checkout master Your branch is up to date with 'rad/master'. -$ git merge patch/f5e2be4 +$ git merge patch/3581e83 Updating f2de534..f567f69 Fast-forward README.md | 0 @@ -89,7 +89,7 @@ Fast-forward ``` ``` (stderr) $ git push rad master -✓ Patch f5e2be41827ee9f80bcdcd02f4f0451287b36229 merged at revision 5dd1e6b +✓ Patch 3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c merged at revision abb0360 ✓ Synced with 1 node(s) To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi f2de534..f567f69 master -> master @@ -98,10 +98,10 @@ To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkE The patch is now merged and closed :). ``` -$ rad patch show f5e2be4 +$ rad patch show 3581e83 ╭─────────────────────────────────────────────────────────────────────╮ │ Title Define power requirements │ -│ Patch f5e2be41827ee9f80bcdcd02f4f0451287b36229 │ +│ Patch 3581e83ad18f5cdd806ab50fa11cfd5dd4e8ae1c │ │ Author bob z6Mkt67…v4N1tRk │ │ Head 27857ec9eb04c69cacab516e8bf4b5fd36090f66 │ │ Commits ahead 0, behind 1 │ @@ -113,9 +113,9 @@ $ rad patch show f5e2be4 │ 3e674d1 Define power requirements │ ├─────────────────────────────────────────────────────────────────────┤ │ ● opened by bob z6Mkt67…v4N1tRk now │ -│ ↑ updated to 68143c579935d115e1551b88154cc41763c43e1f (27857ec) now │ -│ * revised by alice (you) in 5dd1e6b (f567f69) now │ -│ ✓ merged by alice (you) at revision 5dd1e6b (f567f69) now │ +│ ↑ updated to 6de8527cdf51f96e12649c7278efe1dccfdee885 (27857ec) now │ +│ * revised by alice (you) in abb0360 (f567f69) now │ +│ ✓ merged by alice (you) at revision abb0360 (f567f69) now │ ╰─────────────────────────────────────────────────────────────────────╯ ``` diff --git a/radicle-httpd/src/api/v1/projects.rs b/radicle-httpd/src/api/v1/projects.rs index ab453a24..1d885436 100644 --- a/radicle-httpd/src/api/v1/projects.rs +++ b/radicle-httpd/src/api/v1/projects.rs @@ -1980,7 +1980,7 @@ mod routes { #[tokio::test] async fn test_projects_issues_create() { - const CREATED_ISSUE_ID: &str = "8b42657072f6192cba9e08561582576a975656cd"; + const CREATED_ISSUE_ID: &str = "b2d0999498f98b0d1fa12d859d2d0306380333a0"; let tmp = tempfile::tempdir().unwrap(); let ctx = contributor(tmp.path()); @@ -2075,20 +2075,24 @@ mod routes { "content": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4//8/AAX+Av4N70a4AAAAAElFTkSuQmCC" } ], - "replyTo": CONTRIBUTOR_ISSUE_ID, + "replyTo": ISSUE_DISCUSSION_ID, })) .unwrap(); let response = patch( &app, - format!("/projects/{CONTRIBUTOR_RID}/issues/{CONTRIBUTOR_ISSUE_ID}"), + format!("/projects/{CONTRIBUTOR_RID}/issues/{ISSUE_DISCUSSION_ID}"), Some(Body::from(body)), Some(SESSION_ID.to_string()), ) .await; assert_eq!(response.status(), StatusCode::OK); - assert_eq!(response.success().await, true); + + // Get ID to redact later in the test + let response = response.json().await; + let id = &response["id"]; + assert!(id.is_string()); let body = serde_json::to_vec(&json!({ "type": "comment.react", @@ -2099,7 +2103,7 @@ mod routes { .unwrap(); patch( &app, - format!("/projects/{CONTRIBUTOR_RID}/issues/{CONTRIBUTOR_ISSUE_ID}"), + format!("/projects/{CONTRIBUTOR_RID}/issues/{ISSUE_DISCUSSION_ID}"), Some(Body::from(body)), Some(SESSION_ID.to_string()), ) @@ -2120,23 +2124,23 @@ mod routes { let response = patch( &app, - format!("/projects/{CONTRIBUTOR_RID}/issues/{CONTRIBUTOR_ISSUE_ID}"), + format!("/projects/{CONTRIBUTOR_RID}/issues/{ISSUE_DISCUSSION_ID}"), Some(Body::from(body)), Some(SESSION_ID.to_string()), ) - .await; + .await; assert_eq!(response.success().await, true); let body = serde_json::to_vec(&json!({ "type": "comment.redact", - "id": "918fff44966e4305523c077c80ac93b1196f1a7e", + "id": id.as_str().unwrap(), })) .unwrap(); let response = patch( &app, - format!("/projects/{CONTRIBUTOR_RID}/issues/{CONTRIBUTOR_ISSUE_ID}"), + format!("/projects/{CONTRIBUTOR_RID}/issues/{ISSUE_DISCUSSION_ID}"), Some(Body::from(body)), Some(SESSION_ID.to_string()), ) @@ -2146,14 +2150,14 @@ mod routes { let response = get( &app, - format!("/projects/{CONTRIBUTOR_RID}/issues/{CONTRIBUTOR_ISSUE_ID}"), + format!("/projects/{CONTRIBUTOR_RID}/issues/{ISSUE_DISCUSSION_ID}"), ) .await; assert_eq!( response.json().await, json!({ - "id": CONTRIBUTOR_ISSUE_ID, + "id": ISSUE_DISCUSSION_ID, "author": { "id": CONTRIBUTOR_DID, }, @@ -2215,7 +2219,7 @@ mod routes { let _ = get(&app, format!("/projects/{CONTRIBUTOR_RID}/issues")).await; let response = patch( &app, - format!("/projects/{CONTRIBUTOR_RID}/issues/{CONTRIBUTOR_ISSUE_ID}"), + format!("/projects/{CONTRIBUTOR_RID}/issues/{ISSUE_DISCUSSION_ID}"), Some(Body::from(body)), Some(SESSION_ID.to_string()), ) @@ -2226,14 +2230,14 @@ mod routes { let response = get( &app, - format!("/projects/{CONTRIBUTOR_RID}/issues/{CONTRIBUTOR_ISSUE_ID}"), + format!("/projects/{CONTRIBUTOR_RID}/issues/{ISSUE_DISCUSSION_ID}"), ) .await; assert_eq!( response.json().await, json!({ - "id": CONTRIBUTOR_ISSUE_ID, + "id": ISSUE_DISCUSSION_ID, "author": { "id": CONTRIBUTOR_DID, }, @@ -2366,7 +2370,7 @@ mod routes { #[tokio::test] async fn test_projects_create_patches() { - const CREATED_PATCH_ID: &str = "beaed2e1d3b9b01ef10326a9a1c951799ba5fb25"; + const CREATED_PATCH_ID: &str = "e546f1784df29d0ffd424021ebae556cbd950993"; let tmp = tempfile::tempdir().unwrap(); let ctx = contributor(tmp.path()); @@ -2615,10 +2619,10 @@ mod routes { "revisions": [ { "id": CONTRIBUTOR_PATCH_ID, - "description": "change `hello world` in README to something else", "author": { "id": CONTRIBUTOR_DID, }, + "description": "change `hello world` in README to something else", "base": PARENT, "oid": HEAD, "refs": [ @@ -2629,7 +2633,7 @@ mod routes { "reviews": [], }, { - "id": "341ba93c6db54e5891fbd3be4a4f64f4715681fa", + "id": "50d760ccbcfadddd81fe32bd94283cbfd80133fa", "author": { "id": CONTRIBUTOR_DID, }, diff --git a/radicle-httpd/src/test.rs b/radicle-httpd/src/test.rs index fe5357f3..39ac8732 100644 --- a/radicle-httpd/src/test.rs +++ b/radicle-httpd/src/test.rs @@ -34,23 +34,26 @@ pub const HEAD: &str = "e8c676b9e3b42308dc9d218b70faa5408f8e58ca"; pub const PARENT: &str = "ee8d6a29304623a78ebfa5eeed5af674d0e58f83"; pub const INITIAL_COMMIT: &str = "f604ce9fd5b7cc77b7609beda45ea8760bee78f7"; pub const DID: &str = "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"; -pub const ISSUE_ID: &str = "4f98396a1ac987af59ec069de9b80d9917b27050"; -pub const ISSUE_DISCUSSION_ID: &str = "ceafc6629ec8dc0a17644fb5a66726aaafc3ed1c"; -pub const ISSUE_COMMENT_ID: &str = "ca48480f3de728ffca0861538310c6a9704a73b7"; +pub const ISSUE_ID: &str = "45d118885b6b06360ee539573f5ceb24be2979f8"; +pub const ISSUE_DISCUSSION_ID: &str = "d11b03464c9bf58b09460713c8e2c74f0725d3bd"; +pub const ISSUE_COMMENT_ID: &str = "e3aa754cb47d2299781fed49cc91c4b41e06c219"; pub const SESSION_ID: &str = "u9MGAkkfkMOv0uDDB2WeUHBT7HbsO2Dy"; pub const TIMESTAMP: u64 = 1671125284; pub const CONTRIBUTOR_RID: &str = "rad:z4XaCmN3jLSeiMvW15YTDpNbDHFhG"; pub const CONTRIBUTOR_DID: &str = "did:key:z6Mkk7oqY4pPxhMmGEotDYsFo97vhCj85BLY1H256HrJmjN8"; pub const CONTRIBUTOR_NID: &str = "z6Mkk7oqY4pPxhMmGEotDYsFo97vhCj85BLY1H256HrJmjN8"; -pub const CONTRIBUTOR_ISSUE_ID: &str = "ceafc6629ec8dc0a17644fb5a66726aaafc3ed1c"; -pub const CONTRIBUTOR_PATCH_ID: &str = "4ff2ec53a2d165da7f54705023e847d4f9230bc3"; +pub const CONTRIBUTOR_PATCH_ID: &str = "0867c6389ee073304da0854a83885f47b1d7f5ed"; /// Create a new profile. pub fn profile(home: &Path, seed: [u8; 32]) -> radicle::Profile { let home = Home::new(home).unwrap(); - let storage = Storage::open(home.storage()).unwrap(); let keystore = Keystore::new(&home.keys()); let keypair = KeyPair::from_seed(Seed::from(seed)); + let alias = node::Alias::new("seed"); + let storage = Storage::open(home.storage(), radicle::git::UserInfo { + alias: alias.clone(), + key: keypair.pk.into(), + }).unwrap(); radicle::storage::git::transport::local::register(storage.clone()); keystore.store(keypair.clone(), "radicle", None).unwrap(); @@ -61,7 +64,7 @@ pub fn profile(home: &Path, seed: [u8; 32]) -> radicle::Profile { keystore, public_key: keypair.pk.into(), config: profile::Config { - node: node::Config::new(node::Alias::new("seed")), + node: node::Config::new(alias), }, } } diff --git a/radicle-node/src/runtime.rs b/radicle-node/src/runtime.rs index 1011846c..d7a4b056 100644 --- a/radicle-node/src/runtime.rs +++ b/radicle-node/src/runtime.rs @@ -136,7 +136,13 @@ impl Runtime { let network = config.network; let rng = fastrand::Rng::new(); let clock = LocalTime::now(); - let storage = Storage::open(home.storage())?; + let storage = Storage::open( + home.storage(), + git::UserInfo { + alias: alias.clone(), + key: id, + }, + )?; let address_db = node_dir.join(ADDRESS_DB_FILE); let routing_db = node_dir.join(ROUTING_DB_FILE); let tracking_db = node_dir.join(TRACKING_DB_FILE); diff --git a/radicle-node/src/test/environment.rs b/radicle-node/src/test/environment.rs index cb850c7e..b9c8b8a9 100644 --- a/radicle-node/src/test/environment.rs +++ b/radicle-node/src/test/environment.rs @@ -107,12 +107,19 @@ impl Environment { /// This should be used when a running node is not required. pub fn profile(&mut self, alias: &str) -> Profile { let home = Home::new(self.tmp().join("home").join(alias).join(".radicle")).unwrap(); - let storage = Storage::open(home.storage()).unwrap(); let keystore = Keystore::new(&home.keys()); let keypair = KeyPair::from_seed(Seed::from([!(self.users as u8); 32])); let tracking_db = home.node().join(TRACKING_DB_FILE); let alias = Alias::from_str(alias).unwrap(); - let config = profile::Config::init(alias, &home.config()).unwrap(); + let config = profile::Config::init(alias.clone(), &home.config()).unwrap(); + let storage = Storage::open( + home.storage(), + git::UserInfo { + alias, + key: keypair.pk.into(), + }, + ) + .unwrap(); tracking::Config::open(tracking_db).unwrap(); let addresses_db = home.node().join(ADDRESS_DB_FILE); @@ -329,7 +336,14 @@ impl Node { ); let home = Home::new(home).unwrap(); let signer = MockSigner::default(); - let storage = Storage::open(home.storage()).unwrap(); + let storage = Storage::open( + home.storage(), + git::UserInfo { + alias: config.alias.clone(), + key: *signer.public_key(), + }, + ) + .unwrap(); let addresses = home.addresses_mut().unwrap(); let tracking = home.tracking_mut().unwrap(); let routing = home.routing_mut().unwrap(); diff --git a/radicle-node/src/tests.rs b/radicle-node/src/tests.rs index 28a3587b..abae4b50 100644 --- a/radicle-node/src/tests.rs +++ b/radicle-node/src/tests.rs @@ -249,7 +249,7 @@ fn test_inventory_sync() { let mut alice = Peer::config( "alice", [7, 7, 7, 7], - Storage::open(tmp.path().join("alice")).unwrap(), + Storage::open(tmp.path().join("alice"), fixtures::user()).unwrap(), peer::Config::default(), ); let bob_signer = MockSigner::default(); @@ -631,13 +631,13 @@ fn test_refs_announcement_relay() { let mut alice = Peer::config( "alice", [7, 7, 7, 7], - Storage::open(tmp.path().join("alice")).unwrap(), + Storage::open(tmp.path().join("alice"), fixtures::user()).unwrap(), peer::Config::default(), ); let eve = Peer::config( "eve", [8, 8, 8, 8], - Storage::open(tmp.path().join("eve")).unwrap(), + Storage::open(tmp.path().join("eve"), fixtures::user()).unwrap(), peer::Config::default(), ); @@ -703,7 +703,7 @@ fn test_refs_announcement_fetch_trusted_no_inventory() { let mut alice = Peer::config( "alice", [7, 7, 7, 7], - Storage::open(tmp.path().join("alice")).unwrap(), + Storage::open(tmp.path().join("alice"), fixtures::user()).unwrap(), peer::Config::default(), ); let bob = { @@ -1202,7 +1202,7 @@ fn test_queued_fetch() { #[test] fn test_refs_synced_event() { let temp = tempfile::tempdir().unwrap(); - let storage = Storage::open(temp.path()).unwrap(); + let storage = Storage::open(temp.path(), fixtures::user()).unwrap(); let mut alice = Peer::with_storage("alice", [8, 8, 8, 8], storage); let bob = Peer::new("eve", [9, 9, 9, 9]); let acme = alice.project("acme", ""); @@ -1246,7 +1246,11 @@ fn test_refs_synced_event() { fn test_push_and_pull() { let tempdir = tempfile::tempdir().unwrap(); - let storage_alice = Storage::open(tempdir.path().join("alice").join("storage")).unwrap(); + let storage_alice = Storage::open( + tempdir.path().join("alice").join("storage"), + fixtures::user(), + ) + .unwrap(); let (repo, _) = fixtures::repository(tempdir.path().join("working")); let mut alice = Peer::config( "alice", @@ -1255,10 +1259,12 @@ fn test_push_and_pull() { peer::Config::default(), ); - let storage_bob = Storage::open(tempdir.path().join("bob").join("storage")).unwrap(); + let storage_bob = + Storage::open(tempdir.path().join("bob").join("storage"), fixtures::user()).unwrap(); let mut bob = Peer::config("bob", [8, 8, 8, 8], storage_bob, peer::Config::default()); - let storage_eve = Storage::open(tempdir.path().join("eve").join("storage")).unwrap(); + let storage_eve = + Storage::open(tempdir.path().join("eve").join("storage"), fixtures::user()).unwrap(); let mut eve = Peer::config("eve", [9, 9, 9, 9], storage_eve, peer::Config::default()); remote::mock::register(&alice.node_id(), alice.storage().path()); diff --git a/radicle/src/cob/identity.rs b/radicle/src/cob/identity.rs index f45b2b7a..99d3c715 100644 --- a/radicle/src/cob/identity.rs +++ b/radicle/src/cob/identity.rs @@ -1262,7 +1262,7 @@ mod test { eve.repo.fetch(bob); eve_identity.reload().unwrap(); - assert_eq!(eve_identity.timeline, vec![a0, a1, a2.id, b1, e1.id]); + assert_eq!(eve_identity.timeline, vec![a0, a1, a2.id, e1.id, b1]); assert!(!eve_identity.is_delegate(eve.signer.public_key())); } @@ -1316,7 +1316,7 @@ mod test { eve.repo.fetch(bob); eve_identity.reload().unwrap(); - assert_eq!(eve_identity.timeline, vec![a0, a1, a2.id, b1, e1, e2.id]); + assert_eq!(eve_identity.timeline, vec![a0, a1, a2.id, e1, b1, e2.id]); // Her revision is there, although stale, since another revision was accepted since. // However, it wasn't pruned, even though rejecting an accepted revision is an error. @@ -1346,7 +1346,6 @@ mod test { .unwrap(); bob.repo.fetch(alice); - eve.repo.fetch(bob); // TODO: Why is this needed for it not to panic? eve.repo.fetch(alice); let mut bob_identity = Identity::load_mut(&*bob.repo).unwrap(); @@ -1384,7 +1383,7 @@ mod test { eve.repo.fetch(alice); eve_identity.reload().unwrap(); - assert_eq!(eve_identity.timeline, vec![a0, a1.id, b1.id, a2, e1.id]); + assert_eq!(eve_identity.timeline, vec![a0, a1.id, b1.id, e1.id, a2]); assert_eq!(eve_identity.revision(&e1.id).unwrap().state, State::Stale); } @@ -1397,7 +1396,7 @@ mod test { let bob = MockSigner::new(&mut rng); let eve = MockSigner::new(&mut rng); - let storage = Storage::open(tempdir.path().join("storage")).unwrap(); + let storage = Storage::open(tempdir.path().join("storage"), fixtures::user()).unwrap(); let (id, _, _, _) = fixtures::project(tempdir.path().join("copy"), &storage, &alice).unwrap(); diff --git a/radicle/src/identity/doc.rs b/radicle/src/identity/doc.rs index 41738d24..a3e36e74 100644 --- a/radicle/src/identity/doc.rs +++ b/radicle/src/identity/doc.rs @@ -449,7 +449,7 @@ mod test { #[test] fn test_canonical_example() { let tempdir = tempfile::tempdir().unwrap(); - let storage = Storage::open(tempdir.path().join("storage")).unwrap(); + let storage = Storage::open(tempdir.path().join("storage"), fixtures::user()).unwrap(); transport::local::register(storage.clone()); @@ -480,7 +480,7 @@ mod test { #[test] fn test_not_found() { let tempdir = tempfile::tempdir().unwrap(); - let storage = Storage::open(tempdir.path().join("storage")).unwrap(); + let storage = Storage::open(tempdir.path().join("storage"), fixtures::user()).unwrap(); let remote = arbitrary::gen::(1); let proj = arbitrary::gen::(1); let repo = storage.create(proj).unwrap(); @@ -496,7 +496,7 @@ mod test { #[test] fn test_canonical_doc() { let tempdir = tempfile::tempdir().unwrap(); - let storage = Storage::open(tempdir.path().join("storage")).unwrap(); + let storage = Storage::open(tempdir.path().join("storage"), fixtures::user()).unwrap(); transport::local::register(storage.clone()); let (working, _) = fixtures::repository(tempdir.path().join("working")); diff --git a/radicle/src/profile.rs b/radicle/src/profile.rs index bf9838a9..aed40fe9 100644 --- a/radicle/src/profile.rs +++ b/radicle/src/profile.rs @@ -20,12 +20,12 @@ use thiserror::Error; use crate::crypto::ssh::agent::Agent; use crate::crypto::ssh::{keystore, Keystore, Passphrase}; use crate::crypto::{PublicKey, Signer}; -use crate::node; use crate::node::{address, routing, tracking, Alias, AliasStore}; use crate::prelude::Did; use crate::prelude::NodeId; use crate::storage::git::transport; use crate::storage::git::Storage; +use crate::{git, node}; /// Environment variables used by radicle. pub mod env { @@ -167,10 +167,16 @@ pub struct Profile { impl Profile { pub fn init(home: Home, alias: Alias, passphrase: Option) -> Result { - let storage = Storage::open(home.storage())?; let keystore = Keystore::new(&home.keys()); let public_key = keystore.init("radicle", passphrase)?; - let config = Config::init(alias, home.config().as_path())?; + let config = Config::init(alias.clone(), home.config().as_path())?; + let storage = Storage::open( + home.storage(), + git::UserInfo { + alias, + key: public_key, + }, + )?; transport::local::register(storage.clone()); @@ -185,12 +191,18 @@ impl Profile { pub fn load() -> Result { let home = self::home()?; - let storage = Storage::open(home.storage())?; let keystore = Keystore::new(&home.keys()); let public_key = keystore .public_key()? .ok_or_else(|| Error::NotFound(home.path().to_path_buf()))?; let config = Config::load(home.config().as_path())?; + let storage = Storage::open( + home.storage(), + git::UserInfo { + alias: config.alias().clone(), + key: public_key, + }, + )?; transport::local::register(storage.clone()); @@ -207,6 +219,13 @@ impl Profile { &self.public_key } + pub fn info(&self) -> git::UserInfo { + git::UserInfo { + alias: self.config.alias().clone(), + key: *self.id(), + } + } + pub fn did(&self) -> Did { Did::from(self.public_key) } diff --git a/radicle/src/rad.rs b/radicle/src/rad.rs index f062f5d4..51ad3b75 100644 --- a/radicle/src/rad.rs +++ b/radicle/src/rad.rs @@ -369,7 +369,7 @@ mod tests { let tempdir = tempfile::tempdir().unwrap(); let signer = MockSigner::default(); let public_key = *signer.public_key(); - let storage = Storage::open(tempdir.path().join("storage")).unwrap(); + let storage = Storage::open(tempdir.path().join("storage"), fixtures::user()).unwrap(); transport::local::register(storage.clone()); @@ -423,7 +423,7 @@ mod tests { let alice = MockSigner::new(&mut rng); let bob = MockSigner::new(&mut rng); let bob_id = bob.public_key(); - let storage = Storage::open(tempdir.path().join("storage")).unwrap(); + let storage = Storage::open(tempdir.path().join("storage"), fixtures::user()).unwrap(); transport::local::register(storage.clone()); @@ -460,7 +460,7 @@ mod tests { let tempdir = tempfile::tempdir().unwrap(); let signer = MockSigner::default(); let remote_id = signer.public_key(); - let storage = Storage::open(tempdir.path().join("storage")).unwrap(); + let storage = Storage::open(tempdir.path().join("storage"), fixtures::user()).unwrap(); transport::local::register(storage.clone()); diff --git a/radicle/src/storage.rs b/radicle/src/storage.rs index ead12d1c..af7affa3 100644 --- a/radicle/src/storage.rs +++ b/radicle/src/storage.rs @@ -313,6 +313,8 @@ impl Deref for Remote { pub trait ReadStorage { type Repository: ReadRepository; + /// Get user info for this storage. + fn info(&self) -> &UserInfo; /// Get the storage base path. fn path(&self) -> &Path; /// Get a repository's path. @@ -538,6 +540,10 @@ where { type Repository = S::Repository; + fn info(&self) -> &UserInfo { + self.deref().info() + } + fn path(&self) -> &Path { self.deref().path() } diff --git a/radicle/src/storage/git.rs b/radicle/src/storage/git.rs index 2c83c3ab..f6f7699a 100644 --- a/radicle/src/storage/git.rs +++ b/radicle/src/storage/git.rs @@ -81,11 +81,16 @@ impl<'a> TryFrom> for Ref { #[derive(Debug, Clone)] pub struct Storage { path: PathBuf, + info: UserInfo, } impl ReadStorage for Storage { type Repository = Repository; + fn info(&self) -> &UserInfo { + &self.info + } + fn path(&self) -> &Path { self.path.as_path() } @@ -125,7 +130,7 @@ impl WriteStorage for Storage { } fn create(&self, rid: Id) -> Result { - Repository::create(paths::repository(self, &rid), rid) + Repository::create(paths::repository(self, &rid), rid, &self.info) } fn remove(&self, rid: Id) -> Result<(), Error> { @@ -135,7 +140,7 @@ impl WriteStorage for Storage { impl Storage { // TODO: Return a better error when not found. - pub fn open>(path: P) -> Result { + pub fn open>(path: P, info: UserInfo) -> Result { let path = path.as_ref().to_path_buf(); match fs::create_dir_all(&path) { @@ -144,7 +149,7 @@ impl Storage { Ok(()) => {} } - Ok(Self { path }) + Ok(Self { path, info }) } pub fn path(&self) -> &Path { @@ -286,7 +291,7 @@ impl Repository { } /// Create a new repository. - pub fn create>(path: P, id: Id) -> Result { + pub fn create>(path: P, id: Id, info: &UserInfo) -> Result { let backend = git2::Repository::init_opts( &path, git2::RepositoryInitOptions::new() @@ -296,9 +301,8 @@ impl Repository { )?; let mut config = backend.config()?; - // TODO: Get ahold of user name and/or key. - config.set_str("user.name", "radicle")?; - config.set_str("user.email", "radicle@localhost")?; + config.set_str("user.name", &info.name())?; + config.set_str("user.email", &info.email())?; Ok(Self { id, backend }) } @@ -320,7 +324,7 @@ impl Repository { ) -> Result<(Self, git::Oid), RepositoryError> { let (doc_oid, _) = doc.encode()?; let id = Id::from(doc_oid); - let repo = Self::create(paths::repository(&storage, &id), id)?; + let repo = Self::create(paths::repository(&storage, &id), id, storage.info())?; let commit = doc.init(&repo, signer)?; Ok((repo, commit)) @@ -1116,7 +1120,7 @@ mod tests { fn test_references_of() { let tmp = tempfile::tempdir().unwrap(); let signer = MockSigner::default(); - let storage = Storage::open(tmp.path().join("storage")).unwrap(); + let storage = Storage::open(tmp.path().join("storage"), fixtures::user()).unwrap(); transport::local::register(storage.clone()); @@ -1145,7 +1149,7 @@ mod tests { let tmp = tempfile::tempdir().unwrap(); let mut rng = fastrand::Rng::new(); let signer = MockSigner::new(&mut rng); - let storage = Storage::open(tmp.path()).unwrap(); + let storage = Storage::open(tmp.path(), fixtures::user()).unwrap(); let proj_id = arbitrary::gen::(1); let alice = *signer.public_key(); let project = storage.create(proj_id).unwrap(); diff --git a/radicle/src/test.rs b/radicle/src/test.rs index 07e3c1c3..9640bde2 100644 --- a/radicle/src/test.rs +++ b/radicle/src/test.rs @@ -95,16 +95,23 @@ pub mod setup { fn default() -> Self { let root = tempfile::tempdir().unwrap(); - Self::new(root, MockSigner::default()) + Self::new(root, MockSigner::default(), "Radcliff") } } impl Node { - pub fn new(root: impl AsRef, signer: MockSigner) -> Self { + pub fn new(root: impl AsRef, signer: MockSigner, alias: &str) -> Self { let root = root.as_ref().to_path_buf(); let home = root.join("home"); let paths = Home::new(home.as_path()).unwrap(); - let storage = Storage::open(paths.storage()).unwrap(); + let storage = Storage::open( + paths.storage(), + git::UserInfo { + alias: Alias::new(alias), + key: *signer.public_key(), + }, + ) + .unwrap(); remote::mock::register(signer.public_key(), storage.path()); @@ -243,9 +250,21 @@ pub mod setup { impl Default for Network { fn default() -> Self { let tmp = tempfile::tempdir().unwrap(); - let alice = Node::new(tmp.path().join("alice"), MockSigner::from_seed([!0; 32])); - let mut bob = Node::new(tmp.path().join("bob"), MockSigner::from_seed([!1; 32])); - let mut eve = Node::new(tmp.path().join("eve"), MockSigner::from_seed([!2; 32])); + let alice = Node::new( + tmp.path().join("alice"), + MockSigner::from_seed([!0; 32]), + "alice", + ); + let mut bob = Node::new( + tmp.path().join("bob"), + MockSigner::from_seed([!1; 32]), + "bob", + ); + let mut eve = Node::new( + tmp.path().join("eve"), + MockSigner::from_seed([!2; 32]), + "eve", + ); let repo = alice.project(); let rid = repo.id; diff --git a/radicle/src/test/fixtures.rs b/radicle/src/test/fixtures.rs index adb1c3bf..1b73f7f7 100644 --- a/radicle/src/test/fixtures.rs +++ b/radicle/src/test/fixtures.rs @@ -1,9 +1,11 @@ use std::path::Path; +use std::str::FromStr; -use crate::crypto::{Signer, Verified}; +use crate::crypto::{PublicKey, Signer, Verified}; use crate::git; use crate::identity::doc::Visibility; use crate::identity::Id; +use crate::node::Alias; use crate::rad; use crate::storage::git::transport; use crate::storage::git::Storage; @@ -12,10 +14,18 @@ use crate::storage::refs::SignedRefs; /// The birth of the radicle project, January 1st, 2018. pub const RADICLE_EPOCH: i64 = 1514817556; +/// Create a new user info object. +pub fn user() -> git::UserInfo { + git::UserInfo { + alias: Alias::new("Radcliff"), + key: PublicKey::from_str("z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi").unwrap(), + } +} + /// Create a new storage with a project. pub fn storage, G: Signer>(path: P, signer: &G) -> Result { let path = path.as_ref(); - let storage = Storage::open(path.join("storage"))?; + let storage = Storage::open(path.join("storage"), user())?; transport::local::register(storage.clone()); transport::remote::mock::register(signer.public_key(), storage.path()); diff --git a/radicle/src/test/storage.rs b/radicle/src/test/storage.rs index eb5bd60b..1afada5c 100644 --- a/radicle/src/test/storage.rs +++ b/radicle/src/test/storage.rs @@ -11,10 +11,13 @@ use crate::node::NodeId; pub use crate::storage::*; +use super::fixtures; + #[derive(Clone, Debug)] pub struct MockStorage { pub path: PathBuf, pub inventory: HashMap, + pub info: git::UserInfo, /// All refs keyed by RID. /// Each value is a map of refs keyed by node Id (public key). @@ -25,17 +28,14 @@ impl MockStorage { pub fn new(inventory: Vec<(Id, DocAt)>) -> Self { Self { path: PathBuf::default(), + info: fixtures::user(), inventory: inventory.into_iter().collect(), remotes: HashMap::new(), } } pub fn empty() -> Self { - Self { - path: PathBuf::default(), - inventory: HashMap::new(), - remotes: HashMap::new(), - } + Self::new(Vec::new()) } /// Add a remote `node` with `signed_refs` for the repo `rid`. @@ -55,6 +55,10 @@ impl MockStorage { impl ReadStorage for MockStorage { type Repository = MockRepository; + fn info(&self) -> &git::UserInfo { + &self.info + } + fn path(&self) -> &Path { self.path.as_path() }