erplibre/doc/GIT_REPO.fr.md
Mathieu Benoit a2d3aa2a78 [ADD] Multilingual translation of all documentation (EN/FR)
Added 30 .base.md files using the mmg (Multilingual Markdown Generator)
format to automatically generate English (.md) and French (.fr.md)
versions of all project documentation.
Updated conf/make.documentation.Makefile to process all .base.md files
via `make doc_markdown`.
2026-03-04 22:23:52 -05:00

127 lines
No EOL
3.5 KiB
Markdown

# git-repo
Ce guide explique le fonctionnement de git-repo. Les scripts dans ERPLibre utilisent git-repo automatiquement.
[git-repo de Google](https://code.google.com/archive/p/git-repo) est utilisé pour gérer tous les dépôts git sous
licence [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.html).
## Configurer repo
```bash
curl https://storage.googleapis.com/git-repo-downloads/repo > .venv.erplibre/bin/repo
```
## prod
```bash
.venv.erplibre/bin/repo init -u https://github.com/ERPLibre/ERPLibre -b master
.venv.erplibre/bin/repo sync -c -j $(nproc --all)
```
## dev
```bash
.venv.erplibre/bin/repo init -u https://github.com/ERPLibre/ERPLibre -b 12.0_repo -m ./manifest/default.dev.xml
.venv.erplibre/bin/repo sync -c -j $(nproc --all)
```
## dev local
[Guide pour configurer git localement](https://railsware.com/blog/taming-the-git-daemon-to-quickly-share-git-repository/).
```bash
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
.venv.erplibre/bin/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --abbrev-ref HEAD) -m ./manifest/default.dev.xml
.venv.erplibre/bin/repo sync -c -j $(nproc --all) -m ./manifest/default.dev.xml
```
# Créer un Manifest
Un [Manifest](https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.md) est un fichier XML géré par
git-repo pour générer un dépôt.
## Créer une nouvelle version de prod
Cela fige tous les dépôts, du dev vers la prod.
Cela ajoutera le hash de révision git dans le manifest.
```bash
.venv.erplibre/bin/repo manifest -r -o ./default.xml
```
Committez.
```bash
git commit -am "[#ticket] subject: short sentence"
```
### Mélanger prod et dev pour créer une version de staging
Lorsque dev contient une révision spécifique avec la révision par défaut, vous devez remplacer la révision par défaut par la révision prod et garder la version spécifique :
```bash
./script/git/git_merge_repo_manifest.py --input "./manifest/default.dev.xml;./default.xml" --output ./manifest/default.staged.xml
git commit -am "Updated manifest/default.staged.xml"
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
.venv.erplibre/bin/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --abbrev-ref HEAD) -m ./manifest/default.staged.xml
.venv.erplibre/bin/repo sync -c -j $(nproc --all) -m ./manifest/default.staged.xml
.venv.erplibre/bin/repo manifest -r -o ./default.xml
```
## Créer une version dev
```bash
.venv.erplibre/bin/repo manifest -o ./manifest/default.dev.xml
```
Committez.
```bash
git commit -am "[#ticket] subject: short sentence"
```
## Commandes utiles
### Rechercher tous les dépôts avec un nom de branche spécifique
```bash
.venv.erplibre/bin/repo forall -pc "git branch -a|grep BRANCH"
```
### Rechercher les branches manquantes dans tous les dépôts
```bash
.venv.erplibre/bin/repo forall -pc 'git branch -a|(grep /BRANCH$||echo "no match")|grep "no match"'
```
### Rechercher les fichiers modifiés dans tous les dépôts
```bash
.venv.erplibre/bin/repo forall -pc "git status -s"
```
### Tout nettoyer
Avant de nettoyer, vérifiez les fichiers modifiés dans tous les dépôts.
```bash
.venv.erplibre/bin/repo forall -pc "git status -s"
```
Vérifiez les branches modifiées, et poussez les changements si nécessaire.
```bash
./script/git/git_show_code_diff_repo_manifest.py -m ./manifest/default.dev.xml
```
Peut-être que certaines versions divergent de votre manifest. Nettoyez simplement tout et relancez votre installation.
```bash
./script/git/clean_repo_manifest.sh
```