blocs de code: mode bash

This commit is contained in:
Emmanuel Viennet 2021-12-30 10:55:32 +01:00
parent ccb90ef8b9
commit e7ae9a6a91

View File

@ -86,8 +86,9 @@ basique:
Vous travaillez dans votre branche `ma_branche`. Pour lui appliquer les mises à Vous travaillez dans votre branche `ma_branche`. Pour lui appliquer les mises à
jour de `master` (remote): jour de `master` (remote):
```bash
git pull origin master git pull origin master
```
#### Commandes utiles, en vrac #### Commandes utiles, en vrac
@ -97,19 +98,19 @@ jour de `master` (remote):
#### Refactoring #### Refactoring
Lint tous les fichiers modifiés: Lint tous les fichiers modifiés:
``` ```bash
git status | grep modified | grep .py | awk '{print $2}' | xargs pylint -E git status | grep modified | grep .py | awk '{print $2}' | xargs pylint -E
``` ```
Restore les modes au besoin (SAMBA les changent parfois): Restore les modes au besoin (SAMBA les changent parfois):
``` ```bash
git diff -p -R --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply git diff -p -R --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply
``` ```
Affiche les variables non définies dans un fichier: Affiche les variables non définies dans un fichier:
``` ```bash
pylint --disable=all -e E sco_parcours_dut.py | grep undefined-variable | awk '{print $4;}' | sort | uniq | tr -d \' pylint --disable=all -e E sco_parcours_dut.py | grep undefined-variable | awk '{print $4;}' | sort | uniq | tr -d \'
``` ```
Prépare un sed pour renommer les variables non définies: Prépare un sed pour renommer les variables non définies:
``` ```bash
for f in *.py for f in *.py
do do
pylint --disable=all -e E "$f" | grep undefined-variable | awk '{print "sed -i .bak s/"$4"/scu."$4"/ '$f'";}' | sort | uniq | tr -d \' pylint --disable=all -e E "$f" | grep undefined-variable | awk '{print "sed -i .bak s/"$4"/scu."$4"/ '$f'";}' | sort | uniq | tr -d \'
@ -152,7 +153,7 @@ le dépôt officiel (`https://scodoc.org/git/ScoDoc/ScoDoc.git`).
pour ajouter une référence (et lui donner un nom) vers un dépôt distant, entrez pour ajouter une référence (et lui donner un nom) vers un dépôt distant, entrez
la commande: la commande:
``` ```bash
git remote add nom_remote https://scodoc.org/git/ScoDoc/<dépôt>.git git remote add nom_remote https://scodoc.org/git/ScoDoc/<dépôt>.git
``` ```
@ -162,7 +163,7 @@ cloné l'un des deux dépôts, la référence vers celui-ci existe et a pour nom
`origin`. `origin`.
La commande vous exposant tous les dépôts connus est : La commande vous exposant tous les dépôts connus est :
``` ```bash
git remote -v git remote -v
``` ```
@ -171,13 +172,13 @@ La commande vous exposant tous les dépôts connus est :
L'objectif de ce paragraphe est de créer une branche locale basée sur le master L'objectif de ce paragraphe est de créer une branche locale basée sur le master
du dépôt officiel et bien sur de lui donner un nom. du dépôt officiel et bien sur de lui donner un nom.
pour cela (attention cela va écraser les éventuels fichiers modifiés) pour cela (attention cela va écraser les éventuels fichiers modifiés) :
```bash
git reset --hard officiel/master
git checkout -b ma_modif
``` ```
git reset --hard officiel/master À partir de là vous pouvez modifier, tester, développer, commit.
git checkout -b ma_modif
```
À partir de la vous pouvez modifier, tester, développer, commit.
#### Suivi #### Suivi
@ -194,16 +195,16 @@ modifications de la branche principale. Ceci peut se faire de deux façons.
le plus à jour de la branche principal (il en résulte un historique plus le plus à jour de la branche principal (il en résulte un historique plus
linéaire). linéaire).
Les commandes git correspondantes: Les commandes git correspondantes :
``` ```bash
git fetch officiel git fetch officiel
git merge officiel/master git merge officiel/master
``` ```
ou ou
``` ```bash
git fetch officiel git fetch officiel
git rebase officiel/merge git rebase officiel/merge
``` ```
#### La livraison #### La livraison
@ -214,9 +215,9 @@ la branche locale `ma_modif`).
##### Étape 1 : faire l'inventaire des fichiers impliqués ##### Étape 1 : faire l'inventaire des fichiers impliqués
``` ```bash
git fetch officiel/master git fetch officiel/master
git diff --name-only officiel/master git diff --name-only officiel/master
``` ```
##### Étape 2 : passer black sur les fichiers modifiés ##### Étape 2 : passer black sur les fichiers modifiés
@ -224,20 +225,20 @@ git diff --name-only officiel/master
Cette étape est automatique avec les bons réglages sous VSCode (pas trouvé Cette étape est automatique avec les bons réglages sous VSCode (pas trouvé
l'équivalent sous *pyCharm*). l'équivalent sous *pyCharm*).
À défaut les lignes suivantes réalisent le même travail: À défaut les lignes suivantes réalisent le même travail :
``` ```bash
for fn in $(git diff --name-only officiel/master) for fn in $(git diff --name-only officiel/master)
do do
python3 -m black $fn python3 -m black $fn
done done
``` ```
faire une première lecture rapide pour vérifier qu'il n'y ait pas de fichiers faire une première lecture rapide pour vérifier qu'il n'y ait pas de fichiers
modifiés accidentellement. modifiés accidentellement.
Pour obtenir la modification sur un fichier spécifique (`app/fichier.py` par exemple) Pour obtenir la modification sur un fichier spécifique (`app/fichier.py` par exemple)
``` ```bash
git diff officiel/master app/fichier.py git diff officiel/master app/fichier.py
``` ```
Utilisateurs Windows: Vérifiez bien que les réglages de fin de ligne suivant Utilisateurs Windows: Vérifiez bien que les réglages de fin de ligne suivant
@ -252,17 +253,17 @@ nécessaires à votre correctif.
Repérez le point de divergence de votre branche locale avec officiel/master Repérez le point de divergence de votre branche locale avec officiel/master
(normalement `git merge-base ma_branche officiel/master`) (normalement `git merge-base ma_branche officiel/master`)
Demander un `rebase` interactif depuis ce point: Demander un `rebase` interactif depuis ce point :
``` ```bash
git rebase -i $(git merge-base HEAD officiel/master) git rebase -i $(git merge-base HEAD officiel/master)
``` ```
Vous devez obtenir dans un éditeur de texte la liste des commits opéré depuis le Vous devez obtenir dans un éditeur de texte la liste des commits opéré depuis le
début du développement sous cette forme (c'est un exemple le nombre de lignes début du développement sous cette forme (c'est un exemple le nombre de lignes
peut varier): peut varier) :
``` ```bash
pick eb8cbec modif 1 pick eb8cbec modif 1
pick 83eb79e modif 2 pick 83eb79e modif 2
@ -303,7 +304,7 @@ toutes les lignes avec la première en remplaçant le 'pick' à partir de la lig
(commande `reword` sur la première ligne). (commande `reword` sur la première ligne).
Vous construirez par exemple: Vous construirez par exemple:
``` ```bash
reword eb8cbec Correctif: Api - gestion des formation reword eb8cbec Correctif: Api - gestion des formation
fixup 83eb79e modif 2 fixup 83eb79e modif 2
... ...
@ -311,7 +312,7 @@ fixup 83eb79e modif 2
Quand vous sortez de l'éditeur, git effectue toutes les opérations demandées. Quand vous sortez de l'éditeur, git effectue toutes les opérations demandées.
À ce niveau là de la procédure: À ce niveau là de la procédure :
* vous avez un seul commit pour l'ensemble du correctif proposé; * vous avez un seul commit pour l'ensemble du correctif proposé;
@ -322,8 +323,8 @@ Quand vous sortez de l'éditeur, git effectue toutes les opérations demandées.
Vous pouvez maintenant pousser votre branche locale sur votre dépôt personnel Vous pouvez maintenant pousser votre branche locale sur votre dépôt personnel
(vers une branche de même nom): (vers une branche de même nom):
``` ```bash
git push --set-upstream perso ma_branche git push --set-upstream perso ma_branche
``` ```
Si vous avez déjà fait cette opération auparavant il est possible que le push Si vous avez déjà fait cette opération auparavant il est possible que le push