Synchronisation Git
Ces outils pilotent le Git du système sur le dépôt du vault : lire son état, le synchroniser avec le distant, commiter, résoudre un vrai conflit. Initialiser le dépôt ou le connecter à un distant se fait dans l'application, pas ici.
mem_git_status n'écrit rien dans le vault. mem_git_sync, mem_git_commit et mem_git_resolve agissent sur le dépôt ; mem_git_commit et mem_git_resolve ne doivent être appelés qu'avec l'accord de l'utilisateur, comme le disent leurs descriptions.
Pour les demander en parlant à votre agent, voir Synchroniser la mémoire.
En pratique
« Où en est la synchronisation Git de ma mémoire ? Interroge le distant d'abord. »
« Commite mes changements avec le message « notes de la session » et pousse. »
Les outils
mem_git_status
Rend l'état git du vault : branche, distant (sans identifiants), en avance / en retard sur la branche suivie, changements non commités comptés et listés, opération en cours, fichiers suivis portant des marqueurs de conflit, et l'état du greffon Obsidian Git. Sans réseau par défaut ; fetch: true interroge d'abord le distant. N'écrit rien dans le vault. Git introuvable n'est pas une erreur : l'état le dit, avec la commande d'installation.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
fetch | boolean | non / no | Vrai : git fetch origin d'abord, pour que en avance / en retard soient à jour. Faux (défaut) : aucun réseau. |
mem_git_sync
Synchronise le vault avec son distant : fetch, rebase des commits locaux si le distant a avancé, puis poussée. Jamais forcé, jamais d'autostash. Un conflit réel ANNULE le rebase (le dépôt revient à l'état d'avant, aucun marqueur n'est laissé) et rend les fichiers en cause — le résoudre est une tâche, voir la procédure mem-git. Refusé si des changements non commités empêchent le rebase. À appeler en début et en fin de session, et quand un compte rendu de synchronisation n'est pas synchronise.
Aucun paramètre. / No parameters.
mem_git_commit
Commite les changements non commités du vault — tous, ou les chemins donnés — avec le message fourni, puis pousse (par défaut). Refusé si un fichier à commiter porte des marqueurs de conflit. À n'appeler qu'avec l'accord explicite de l'utilisateur : ces changements sont les siens.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
allow_markers | boolean | non / no | Vrai : un fichier qui CITE un marqueur de conflit (une note qui parle de git, un bloc de code) est accepté. Faux (défaut) : refusé. |
message | string | oui / yes | Message de commit, non vide, 1 000 caractères au plus. |
paths | array<string> | non / no | Chemins relatifs au vault à commiter. Absent : tous les changements. |
push | boolean | non / no | Pousser après le commit (vrai par défaut). |
mem_git_resolve
Résout un conflit git RÉEL entre ce poste et le distant, en deux temps. SANS resolutions : inspecte — fetch, prépare la fusion du distant, rend pour chaque fichier en conflit ses trois versions (base, local, distant) et une empreinte, puis annule : le dépôt ne change pas. AVEC resolutions et l'empreinte rendue : refait la même fusion, écrit le texte résolu de chaque fichier (aucun marqueur de conflit accepté ; content: null explicite supprime le fichier ; un fichier binaire ne se résout que par keep: local | distant), régénère les index dérivés, commite la fusion et pousse. Tout échec annule la fusion : aucun marqueur n'est jamais laissé. À n'employer qu'avec l'accord de l'utilisateur sur le texte fusionné. Voir la procédure mem-git.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
allow_markers | boolean | non / no | Vrai : un texte résolu qui CITE un marqueur de conflit (une note qui parle de git) est accepté. Faux (défaut) : refusé. |
fingerprint | string | non / no | L'empreinte rendue par l'inspection. Obligatoire avec resolutions : si le dépôt ou le distant a bougé depuis, rien n'est fait. |
resolutions | array<object> | non / no | Absent : inspecter. Présent : le texte résolu de CHAQUE fichier en conflit rendu par l'inspection (les index dérivés sont régénérés, ne pas les fournir). |
resolutions[].content | string | null | non / no |
resolutions[].keep | string | non / no | Au lieu de content : « local » ou « distant », garder ce côté tel quel, octet pour octet. Seul choix accepté pour un fichier binaire. |
resolutions[].path | string | oui / yes | Chemin relatif au vault, tel que l'inspection l'a rendu. |