Einen Patch erstellen #
Sie haben einen Fehler entdeckt oder etwas anderes, das Sie in Matplotlib ändern möchten ... — ausgezeichnet!
Sie haben einen Weg gefunden, das Problem zu beheben – sogar noch besser!
Sie wollen uns davon erzählen – am besten!
Am einfachsten ist es, einen Patch oder eine Reihe von Patches zu erstellen. Hier erklären wir wie. Das Erstellen eines Patches ist am einfachsten und schnellsten, aber wenn Sie mehr als nur schnelle Dinge tun möchten, sollten Sie stattdessen das Git-Entwicklungsmodell befolgen.
Patches erstellen #
Übersicht #
# 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
Senden Sie dann die generierten Patch-Dateien an die Matplotlib-Mailingliste – wo wir Ihnen herzlich danken werden.
Im Detail #
Sagen Sie git, wer Sie sind, damit es die von Ihnen vorgenommenen Commits kennzeichnen kann:
git config --global user.email [email protected] git config --global user.name "Your Name Comes Here"
Wenn Sie noch keine haben, klonen Sie eine Kopie des Matplotlib- Repositorys:
git clone https://github.com/matplotlib/matplotlib.git cd matplotlib
Erstellen Sie einen "Feature-Zweig". Hier arbeiten Sie an Ihrem Bugfix. Es ist nett und sicher und lässt Ihnen Zugriff auf eine unveränderte Kopie des Codes im Hauptzweig:
git branch the-fix-im-thinking-of git checkout the-fix-im-thinking-of
Nehmen Sie einige Änderungen vor und übertragen Sie sie, während Sie fortfahren:
# 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'
Beachten Sie die
-am
Optionen biscommit
. Dasm
Flag signalisiert nur, dass Sie eine Nachricht in die Befehlszeile eingeben werden. Diea
Flagge – Sie können einfach glauben – oder sehen Sie, warum die -a-Flagge? .Wenn Sie fertig sind, überprüfen Sie, ob Sie alle Ihre Änderungen festgeschrieben haben:
git status
Machen Sie schließlich Ihre Commits zu Patches. Sie möchten alle Commits seit der Verzweigung von der
main
Verzweigung:git format-patch -M -C main
Sie haben jetzt mehrere Dateien, die nach den Commits benannt sind:
0001-BF-added-tests-for-Funny-bug.patch 0002-BF-added-fix-for-Funny-bug.patch
Senden Sie diese Dateien an die Matplotlib-Mailingliste .
Wenn Sie fertig sind, kehren Sie einfach zum Zweig zurück, um zur Hauptkopie des Codes zurückzukehren main
:
git checkout main
Vom Patchen zur Entwicklung wechseln #
Wenn Sie feststellen, dass Sie einige Patches durchgeführt haben und einen oder mehrere Funktionszweige haben, möchten Sie wahrscheinlich in den Entwicklungsmodus wechseln. Sie können dies mit dem Repository tun, das Sie haben.
Verzweigen Sie das Matplotlib -Repository auf GitHub – Erstellen Sie Ihre eigene Kopie (Verzweigung) von Matplotlib . Dann:
# 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
Dann können Sie, wenn Sie möchten, dem Entwicklungsworkflow folgen .