Fare una patch #
Hai scoperto un bug o qualcos'altro che vuoi modificare in Matplotlib .. — eccellente!
Hai trovato un modo per risolverlo, anche meglio!
Vuoi parlarcene, meglio di tutti!
Il modo più semplice è creare una patch o un insieme di patch. Qui spieghiamo come. Creare una patch è il modo più semplice e veloce, ma se hai intenzione di fare qualcosa di più di semplici cose rapide, considera invece di seguire il modello Git per lo sviluppo .
Fare patch #
Panoramica n.
# tell git who you are
git config --global user.email [email protected]
git config --global user.name "Your Name Comes Here"
# get the repository if you don't have it
git clone https://github.com/matplotlib/matplotlib.git
# make a branch for your patching
cd matplotlib
git branch the-fix-im-thinking-of
git checkout the-fix-im-thinking-of
# hack, hack, hack
# Tell git about any new files you've made
git add somewhere/tests/test_my_bug.py
# commit work in progress as you go
git commit -am 'BF - added tests for Funny bug'
# hack hack, hack
git commit -am 'BF - added fix for Funny bug'
# make the patch files
git format-patch -M -C main
Quindi, invia i file di patch generati alla mailing list di Matplotlib , dove ti ringrazieremo calorosamente.
Nel dettaglio #
Dì a git chi sei in modo che possa etichettare i commit che hai fatto:
git config --global user.email [email protected] git config --global user.name "Your Name Comes Here"
Se non ne hai già uno, clona una copia del repository Matplotlib :
git clone https://github.com/matplotlib/matplotlib.git cd matplotlib
Crea un "ramo di funzionalità". Qui sarà dove lavorerai sulla correzione del bug. È bello e sicuro e ti lascia l'accesso a una copia non modificata del codice nel ramo principale:
git branch the-fix-im-thinking-of git checkout the-fix-im-thinking-of
Apporta alcune modifiche e confermale man mano che procedi:
# hack, hack, hack # Tell git about any new files you've made git add somewhere/tests/test_my_bug.py # commit work in progress as you go git commit -am 'BF - added tests for Funny bug' # hack hack, hack git commit -am 'BF - added fix for Funny bug'
Nota le
-am
opzioni percommit
. Ilm
flag segnala solo che stai per digitare un messaggio sulla riga di comando. Laa
bandiera - puoi semplicemente crederci - o vedere perché la bandiera -a? .Al termine, verifica di aver eseguito il commit di tutte le modifiche:
git status
Infine, trasforma i tuoi commit in patch. Vuoi tutti i commit da quando sei ramificato dal
main
ramo:git format-patch -M -C main
Ora avrai diversi file nominati per i commit:
0001-BF-added-tests-for-Funny-bug.patch 0002-BF-added-fix-for-Funny-bug.patch
Invia questi file alla mailing list Matplotlib .
Al termine, per tornare alla copia principale del codice, basta tornare al main
ramo:
git checkout main
Passaggio dall'applicazione di patch allo sviluppo #
Se ti accorgi di aver eseguito alcune patch e di avere uno o più rami di funzionalità, probabilmente vorrai passare alla modalità di sviluppo. Puoi farlo con il repository che hai.
Fork il repository Matplotlib su github — Crea la tua copia (fork) di Matplotlib . Quindi:
# checkout and refresh main branch from main repo
git checkout main
git pull origin main
# rename pointer to main repository to 'upstream'
git remote rename origin upstream
# point your repo to default read / write to your fork on github
git remote add origin [email protected]:your-user-name/matplotlib.git
# push up any branches you've made and want to keep
git push origin the-fix-im-thinking-of
Quindi puoi, se lo desideri, seguire il flusso di lavoro di sviluppo .