From 4fb5256eed7f44bfb7b92636efbeb9a986f71441 Mon Sep 17 00:00:00 2001 From: Alexis Sellier Date: Mon, 3 Apr 2023 12:29:15 +0200 Subject: [PATCH] RIP 1: Improvements to diagram --- 0001-heartwood.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/0001-heartwood.md b/0001-heartwood.md index 3a6ca74..5581cae 100644 --- a/0001-heartwood.md +++ b/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":