Radish alpha
r
rad:z3trNYnLWS11cJWC6BbxDs5niGo82
Radicle Improvement Proposals (RIPs)
Radicle
Git
RIP 1: Improvements to diagram
Alexis Sellier committed 3 years ago
commit 4fb5256eed7f44bfb7b92636efbeb9a986f71441
parent 1c40211
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":