radicle-heartwood-lfs/radicle-cli/examples
cloudhead 358324883c
node: Announce offline ref updates
Currently, if refs are updated while the node is stopped, these refs are
not immediately announced when the node starts, due to the node being
unaware of the updates.

To remedy this, on startup, we compare the refs we have in storage with
the refs we announced to the network. Since only our own refs could have
changed while the node was stopped, this change only applies to owned
refs. If we detect that storage has changed while the node was stopped,
we create ref announcements for the updated repos and store them in our
gossip database. These announcements will be included with other
historical gossip announcements when nodes connect to us.

To keep track of what was announced, we store our local node's sync
status in the database. This is also useful when using the `rad sync status`
command, as it tells us what oid our local node is at, and whether it
is aware of our local changes yet.

In addition to this, we make a small fix: previously, inventory and ref
announcements originating from our local node were not stored in the
announcement database. We ensure that they are via the new `announce`
method.
2023-11-20 17:54:36 +01:00
..
framework cli-test: Update framework with new features 2023-08-04 12:23:49 +02:00
git radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
workflow radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-auth.md cli: Minor output improvements to `rad auth` 2023-10-11 14:49:37 +02:00
rad-checkout-repo-config-linux.md cli: Add canonical remote to `init` and `checkout` 2023-04-24 15:42:00 +02:00
rad-checkout-repo-config-macos.md cli: Add canonical remote to `init` and `checkout` 2023-04-24 15:42:00 +02:00
rad-checkout.md cli: Add canonical remote to `init` and `checkout` 2023-04-24 15:42:00 +02:00
rad-clone-all.md cli: simplify rad-clone-all 2023-11-06 12:07:40 +01:00
rad-clone-connect.md cli: Adjust output of `rad sync` slightly 2023-09-05 11:16:09 +02:00
rad-clone-unknown.md cli: Simplify fatal error output 2023-09-01 15:17:41 +02:00
rad-clone.md cli: Show repo summary on `rad clone` 2023-09-01 12:22:50 +02:00
rad-cob.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-diff.md cli: Improve `rad diff` 2023-11-09 13:04:40 +01:00
rad-fetch.md cli: Fix rad-fetch readme link 2023-07-25 11:52:24 +02:00
rad-fork.md cob: Introduce `xyz.radicle.id` COB 2023-10-12 17:32:33 +02:00
rad-id-conflict.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-id-multi-delegate.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-id.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-init-no-git.md cli: Move `init` errors up so it fails sooner 2023-09-03 17:21:39 +02:00
rad-init-private-clone.md radicle: wire up radicle-fetch 2023-11-06 12:06:13 +01:00
rad-init-private.md cli: Add tests for `rad publish` 2023-09-05 11:16:09 +02:00
rad-init-sync.md cli: Choose repo visibility on init 2023-09-03 17:21:37 +02:00
rad-init.md cli: Update tracking without a running node 2023-11-03 17:17:07 +01:00
rad-inspect-noauth.md cli: Simplify fatal error output 2023-09-01 15:17:41 +02:00
rad-inspect.md cli: Add `rad inspect --sigrefs` command 2023-11-17 16:56:20 +01:00
rad-issue.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-label.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-merge-after-update.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-merge-no-ff.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-merge-via-push.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-node.md cli: Improve `rad node` output 2023-09-01 12:22:50 +02:00
rad-patch-ahead-behind.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-patch-checkout.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-patch-draft.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-patch-pull-update.md radicle: return RefsAt for announce_refs 2023-11-17 16:29:02 +01:00
rad-patch-update.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-patch-via-push.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-patch.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-publish.md cli: Add tests for `rad publish` 2023-09-05 11:16:09 +02:00
rad-remote.md remote-helper: Run sync on `git-fetch` 2023-09-27 12:29:46 +02:00
rad-review-by-hunk.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-rm.md cli: Show repo visibility in `rad ls` 2023-09-03 17:21:39 +02:00
rad-self.md node: Make node aliases required 2023-07-11 18:08:59 +02:00
rad-sync-without-node.md cli: Update tracking without a running node 2023-11-03 17:17:07 +01:00
rad-sync.md node: Announce offline ref updates 2023-11-20 17:54:36 +01:00
rad-track.md cli: Get fetch after track working 2023-04-26 09:49:37 +02:00