mirror of
https://seed.radicle.dev/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5.git
synced 2026-11-12 14:40:37 +08:00
Canonical references can not be used to model symbolic references. Relax this restriction by adding another member to the payload, named "symbolic". Its key-value/name-target pairs then translate directly to canonical symbolic references. Care is taken to not allow circular references, and that there always is a rule that could generate the target of a symbolic reference (or a chain of symbolic references). Still, a symbolic reference may dangle (for example when its target reference cannot be computed because of divergence), but at least it can be prevented that a symref *always* dangles, because there is no rule that would produce its target. Co-authored-by: Fintan Halpenny <fintan.halpenny@gmail.com>