From d1b975ae1c69ee6e1654f12f9be5abc829f468da Mon Sep 17 00:00:00 2001
From: Stefano Zacchiroli <zack@upsilon.cc>
Date: Fri, 9 Feb 2018 16:50:24 +0100
Subject: [PATCH] docs: add snapshot, branches, and visits to Merkle DAG
 diagram

---
 docs/images/swh-merkle-dag.dia | Bin 5482 -> 8072 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/docs/images/swh-merkle-dag.dia b/docs/images/swh-merkle-dag.dia
index 3e4ddc9106078a68c83869a4bf98cbf26a2d90ae..00edd643bf62df4f65766dcfaaf96be5611ea25b 100644
GIT binary patch
literal 8072
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

literal 5482
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

-- 
GitLab