git.ntnlv.ca
Repositories
Help
Report an Issue
processeur-decriture.git
Code
Commits
Branches
Tags
Search
Tree:
1ae1e42
Branches
Tags
dev
main
processeur-decriture.git
README.md
admin: notes et ajustements pour modules
David Valentine
commited
1ae1e42
at 2024-12-07 04:33:19
README.md
Blame
History
Raw
# 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/](loupbrun), 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 ```bash $ 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.