Radish alpha
r
rad:z371PVmDHdjJucejRoRYJcDEvD5pp
Radicle website including documentation and guides
Radicle
Git
Clarify Language in User Guide
Open fintohaps opened 3 months ago

The section “From remote viewing to adding remotes” could use some clarifying language.

1 file changed +47 -7 949a8701 1fc38e70
modified _guides/user.md
@@ -461,8 +461,6 @@ nodes. In the early stages of the Radicle network, all public repositories are
automatically seeded by `iris.radicle.xyz` and `rosa.radicle.xyz` which
are *public seed nodes* run by the core team.

-
<!-- TODO: Talk about seeding policies and following -->
-

<aside class="span-2"> <strong>Seed nodes</strong> are always-on machines that
significantly enhance the network’s capacity to provide continuous access to
repositories. They can vary in their seeding policies, from public seed nodes
@@ -478,6 +476,43 @@ reliable for code collaboration.
> that want to operate public seed nodes: if that's you, check out our
> [Seeder's Guide][seeder] for more details.

+
### Replication Policies
+

+
In the section above, we mentioned a "seeding policy". In this section, we will
+
talk about two kinds of policies: [seeding policies](#seeding-policy) and
+
[follow policies](#follow-policy).
+

+
#### Seeding Policy
+

+
Seeding policy refers to a local configuration per Repository ID (RID) and
+
affect how repositories are replicated.
+

+
A seeding policy can be broken down into two components:
+

+
1. *Policy*: whether the nodes allows or blocks the repository from being
+
fetched and can either be set to `allow` and `block`. If a seeding policy is
+
set to `block`, then the repository is ignored, rather than fetched.
+
2. *Scope* can be one of two values: `all` or `followed`:
+
   * `all`: references of *all* peer's namespaces within a repository are fetched.
+
   * `followed`  means that only references from your [followed](#follow-policy)
+
     peers are fetched.
+

+
In both cases, the delegates of the repository are also fetched. These peers are
+
privileged since the state of the repository's identity and the default branch
+
are decided by these peers.
+

+
#### Follow Policy
+

+
A follow policy refers to a policy that affects a peer. Similarly to a seeding
+
policy, it can either be `allow` or `block`, but it does not require a scope.
+

+
As mentioned above, this affects the references that are being fetched within a
+
repository. When a seeding policy's scope is `followed`, the set of followed
+
peers, who are `allow` are retrieved.
+

+
Conversely, in all cases above, if a peer's policy is set to `block` their
+
references are never fetched.
+

### Publishing *ch-ch-ch-ch-changes*

<div class="poem"> Still don't know what I was waiting for<br/> Requiring an
@@ -1430,14 +1465,17 @@ We can verify that it is merged via `rad patch show e5f0a5a`, or `rad patch

### From remote viewing to adding remotes

-
Whenever you `init` or `clone` a repository, your node will follow all peers
-
for that repository, which means that everyone's patches and issues will be
-
synchronized to your device.
+
Whenever you `init` or `clone` a repository, the `allow` policy of the
+
repository will be used, meaning that the node will register its interest
+
in changes for this repository. The node also uses a `scope` as part of the
+
policy to change the behavior of what peer data is replicated. The default is
+
`all`, which means that all Git references, patches, and issues are synchronized
+
to your local Radicle storage.

You can change this behavior by specifying a different scope when cloning or
initializing a repository, with the `--scope` option. For example, `--scope
followed` will only synchronize changes by peers you explicitly follow with the
-
`rad follow` command. The default is `--scope all`.
+
`rad follow` command.

But if a peer becomes a regular collaborator, it would be useful to add them as
a Git remote to track their changes and `checkout` their branches, even if
@@ -1449,7 +1487,9 @@ Calyx decides to do this, and adds us (Paxel) as a remote:
    rad remote add z6MkvZwzK64f3GuDcAs6dEcje89ddfHkBjS1v9Dkh7aCGq3C --name paxel

This allows Calyx to keep up with our changes by creating a remote tracking
-
branch in his working copy, that has our main branch as its upstream.
+
branch in his working copy, that has our main branch as its upstream. In other
+
words, it helps us create a `git remote` with the necessary configuration to
+
interact with the Radicle storage copy of the repository.

<pre class="wide"><code>$ git remote -v
paxel   rad://z3cyotNHuasWowQ2h4yF9c3tFFdvc/z6MkvZwzK64f3GuDcAs6dEcje89ddfHkBjS1v9Dkh7aCGq3C (fetch)