0.0.3-alpha.4
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md -->
|
||||
<!-- version: 16 -->
|
||||
<!-- version: 17 -->
|
||||
|
||||
# Architecture de fondation Knowledge
|
||||
|
||||
@@ -480,3 +480,21 @@ snippets source Git courte/contextualisée séparée
|
||||
Les dépôts de contenu ne sont pas fusionnés dans PGR et ne sont pas requis comme submodules Git du dépôt applicatif. Leur localisation et leurs credentials sont de la configuration de déploiement.
|
||||
|
||||
Pendant `0.0.2`, cette configuration de déploiement est adaptée en configuration physique possédée par `knowledge-git-lib`. La racine de mirrors/worktrees reste un état généré reconstructible et ne remplace pas le futur stockage logique PostgreSQL.
|
||||
|
||||
## Écriture Git gardée acquise en 0.0.3-alpha.4
|
||||
|
||||
Le backend Git complète désormais le cycle provider-neutral d'écriture sans adapter de forge : un candidat retenu localement peut être publié vers une branche `refs/heads/...` uniquement sous garde explicite de l'état distant attendu.
|
||||
|
||||
Le chemin est :
|
||||
|
||||
```text
|
||||
candidat retenu sous refs/knowledge/candidates/<revision>
|
||||
-> observation `git ls-remote --refs origin <branche>`
|
||||
-> comparaison avec GitRemoteState attendu
|
||||
-> git push --force-with-lease=<branche>:<attendu>
|
||||
-> Updated(candidate) ou Conflict { actual }
|
||||
```
|
||||
|
||||
Pour `GitRemoteState::Absent`, la lease utilise une attente vide et autorise donc uniquement la création d'une branche encore absente. Pour `GitRemoteState::Revision(r)`, la mise à jour distante n'est acceptée que si la branche pointe encore exactement sur `r`. L'observation préalable fournit un conflit rapide ; `--force-with-lease` reste la garde autoritaire contre une course entre observation et push. Après un rejet de push, le backend observe à nouveau la branche afin de traduire une divergence concurrente en conflit récupérable.
|
||||
|
||||
Cette capacité ne fait aucun rebase/merge automatique et ne publie aucune pull/merge request. Elle utilise uniquement le remote `origin` possédé par le mirror contrôlé et conserve la forge hors du contrat.
|
||||
|
||||
Reference in New Issue
Block a user