Radish alpha
r
Radicle Improvement Proposals (RIPs)
Radicle
Git (anonymous pull)
Log in to clone via SSH
RIP 1: Improvements to diagram
Alexis Sellier committed 3 years ago
commit 4fb5256eed7f44bfb7b92636efbeb9a986f71441
parent 1c402116983be19e754fb14aa7ce38145f0a4b09
1 file changed +20 -20
modified 0001-heartwood.md
@@ -492,26 +492,26 @@ This allows for code to be staged for publishing even while offline, provided
the user's storage is accessible. In most cases, it makes sense to keep
storage and working copies on the same machine.

-
    ┌─────────────────────────────────────┐          ┌───────────────────────────────────┐
-
    │ ┌────────────────────────┐ ┌──────┐ │          │ ┌──────┐ ┌──────────────────────┐ │
-
    │ │ Storage                │ │      │ │   git    │ │      │ │ Storage              │ │
-
    │ │                        ├─┤------├─┼─--------─┼─┤------├─┤                      │ │
-
    │ │ ┌───────┐  ┌───────┐  ┌│ │      │ │  fetch   │ │      │ │ ┌───────┐  ┌───────┐ │ │
-
    │ │ │Project│  │Project│  ││ │      │ │          │ │      │ │ │Project│  │Project│ │ │
-
    │ │ ├───────┤  ├───────┤  ├│ │      │ │          │ │      │ │ ├───────┤  ├───────┤ │ │
-
    │ └─┴────▲──┴──┴────┬──┴──┴┘ │      │ │          │ │      │ └─┴────┬──┴──┴────▲──┴─┘ │
-
    │        │          │        │      │ │  gossip  │ │      │        │          │      │
-
    │        │          │        │ node ├─┼─--------─┼─┤ node │        │          │      │
-
    │        │          │        │      │ │ protocol │ │      │        │          │      │
-
    │       push       pull      │      │ │          │ │      │       pull       push    │
-
    │        │          │        │      │ │          │ │      │        │          │      │
-
    │        │          │        │      │ │          │ │      │        │          │      │
-
    │        │          │        │      │ │          │ │      │        │          │      │
-
    │   ┌────┴───┐  ┌───▼────┐   │      │ │          │ │      │   ┌────▼───┐  ┌───┴────┐ │
-
    │   │Working │  │Working │   │      │ │          │ │      │   │Working │  │Working │ │
-
    │   │copy    │  │copy    │   │      │ │          │ │      │   │copy    │  │copy    │ │
-
    │   └────────┘  └────────┘   └──────┘ │          │ └──────┘   └────────┘  └────────┘ │
-
    └─────────────────────────────────────┘          └───────────────────────────────────┘
+
    ┌╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴┐          ┌╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴┐
+
    ┆ ┌───────────────────┐ ┌──────┐ ┆          ┆ ┌──────┐ ┌─────────────────┐ ┆
+
    ┆ │ Storage           │ │      │ ┆   Git    ┆ │      │ │ Storage         │ ┆
+
    ┆ │                   ├╸┆╸╸╸╸╸╸┆╸╸╸╸╸╸╸╸╸╸╸╸╸╸┆╸╸╸╸╸╸┆╸┤                 │ ┆
+
    ┆ │ ┌──────┐ ┌─────┐ ┌│ │      │ ┆ protocol ┆ │      │ │ ┌─────┐ ┌─────┐ │ ┆
+
    ┆ │ │repo  │ │repo │ ││ │      │ ┆          ┆ │      │ │ │repo │ │repo │ │ ┆
+
    ┆ │ ├──────┤ ├─────┤ ├│ │      │ ┆          ┆ │      │ │ ├─────┤ ├─────┤ │ ┆
+
    ┆ └─┴───╿──┴─┴───┬─┴─┴┘ │      │ ┆          ┆ │      │ └─┴───┬─┴─┴───╿─┴─┘ ┆
+
    ┆       │        │      │      │ ┆  gossip  ┆ │      │       │       │     ┆
+
    ┆       │        │      │ Node ├╸╸╸╸╸╸╸╸╸╸╸╸╸╸┤ Node │       │       │     ┆
+
    ┆       │        │      │      │ ┆ protocol ┆ │      │       │       │     ┆
+
    ┆      push     pull    │      │ ┆          ┆ │      │      pull    push   ┆
+
    ┆       │        │      │      │ ┆          ┆ │      │       │       │     ┆
+
    ┆       │        │      │      │ ┆          ┆ │      │       │       │     ┆
+
    ┆       │        │      │      │ ┆          ┆ │      │       │       │     ┆
+
    ┆  ┌────┴───┐ ┌──╽─────┐│      │ ┆          ┆ │      │ ┌─────╽──┐ ┌──┴────┐┆
+
    ┆  │working │ │working ││      │ ┆          ┆ │      │ │working │ │working│┆
+
    ┆  │copy    │ │copy    ││      │ ┆          ┆ │      │ │copy    │ │copy   │┆
+
    ┆  └────────┘ └────────┘└──────┘ ┆          ┆ └──────┘ └────────┘ └───────┘┆
+
    └╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴┘          └╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴┘

Splitting the storage into per-project repositories has numerous advantages
over previous designs that used a "monorepo":