Processeur de documents de rédaction. #Pandoc

David Valentine David Valentine admin: notes et ajustements pour modules 1ae1e42 @ 2024-12-07 04:33:19
archives initialisation 2024-12-06 22:19:45
docs initialisation 2024-12-06 22:19:45
scripts initialisation 2024-12-06 22:19:45
src add proposition module 2024-12-06 22:27:45
templates initialisation 2024-12-06 22:19:45
.gitignore 184 B initialisation 2024-12-06 22:19:45
.gitmodules 117 B admin: notes et ajustements pour modules 2024-12-07 04:33:19
LICENSE 20.36 KB initialisation 2024-12-06 22:19:45
README.md 2.63 KB admin: notes et ajustements pour modules 2024-12-07 04:33:19
makefile 1.8 KB initialisation 2024-12-06 22:19:45
README.md

Introduction

Ce dépôt contient les sources du processeur d'écriture des documents de rédaction scientifique de David Valentine. L'architecture globale est basée sur celle de https://git.loupbrun.ca/louis/lobrassard-net/, qui a l'immense gentillesse de partager son installation sous la licence CC-BY. Plusieurs modifications y sont toutefois appliquées pour répondre à des besoins particuliers.

Approche par modules

Tant les tâches de rédaction que les tâches de développement sont suivies avec Git. Le dépôt applique un principe de séparation entre la production des contenus textuels et le développement technique du processeur. Les tâches de développement sont validées (commited) directement dans ce dépôt, tandis que l'historique de la rédaction évolue dans un système de modules prévu à cet effet.

Voir le Pro Git book pour de l'information sur les modules : https://git-scm.com/book/en/v2/Git-Tools-Submodules

Ajouter un sous-module

  • $ git submodule add <chemin-vers-le-module> src/<nom-du-module>

Mettre à jour un sous-module localement (modifié à distance)

  • $ git submodule update --remote src/<nom-du-module> ou fetch and merge manuel dans le module
  • $ git add src/<nom-du-module>
  • $ git commit -m "update <nom-du-module> submodule"

Remarque : ne pas oublier d'indiquer, dans .gitmodules, la branche voulue pour l'update.

Partager les modifications locales du module vers le module à distance

Info : https://stackoverflow.com/a/5814351/16839131

$ cd your_submodule
$ git checkout main
<hack,edit>
$ git commit ...

Pour merger avec les validations distantes : après avoir checked out sur une branche du module (déjà fait supposément selon l'étape précédente), il faut $ cd ../../ && git submodule update --remote --rebase (ou merge).

Enfin, on peut git push directement dans le module pour partager le merge.

Sinon, on peut push en même temps que le dépôt principal : d'abord $ git add your_submodule && git commit -m "Updated submodule.

Puis : $ git push --recurse-submodules=on-demand

Pour aller plus loin : foreach, etc.

Note importante

Le dépôt distant du module n'est pas bare. Il s'y trouve donc une copie de travail et le push sera refusé par le dépôt distant.

Solutions possibles : https://www.slingacademy.com/article/solving-git-error-refusing-to-update-checked-out-branch/

La tactique du forçage ne fonctionne pas dans ce cas (raison incconnue). L'échange d'information entre le module et le dépôt distant s'effectue donc par l'entremise d'une branche distincte de main, puis sur le dépôt il s'agit de rebaser sur main.