制作补丁#

您在Matplotlib中发现了一个错误或其他您想要更改的内容.. — 太棒了!

您已经找到了修复它的方法——甚至更好!

你想告诉我们——最重要的是!

最简单的方法是制作一个补丁或一组补丁。在这里我们解释一下如何。制作补丁是最简单和最快的,但如果您要做的不仅仅是简单快速的事情,请考虑遵循 Git 开发模型。

制作补丁#

概述#

# 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

然后,将生成的补丁文件发送到Matplotlib 邮件列表——我们将在此衷心感谢您。

详细#

  1. 告诉 git 你是谁,这样它就可以标记你所做的提交:

    git config --global user.email [email protected]
    git config --global user.name "Your Name Comes Here"
    
  2. 如果您还没有,请克隆 Matplotlib存储库的副本:

    git clone https://github.com/matplotlib/matplotlib.git
    cd matplotlib
    
  3. 创建一个“功能分支”。这将是您进行错误修复的地方。它既好又安全,让您可以访问主分支中未修改的代码副本:

    git branch the-fix-im-thinking-of
    git checkout the-fix-im-thinking-of
    
  4. 进行一些编辑,并随时提交:

    # 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'
    

    注意 的-am选项commit。该m标志只是表示您将在命令行上键入一条消息。旗帜a——你可以相信——或者看看为什么是 -a 旗帜?.

  5. 完成后,检查您是否已提交所有更改:

    git status
    
  6. 最后,将你的提交变成补丁。自从您从main分支分支以来,您想要所有提交:

    git format-patch -M -C main
    

    您现在将有几个以提交命名的文件:

    0001-BF-added-tests-for-Funny-bug.patch
    0002-BF-added-fix-for-Funny-bug.patch
    

    将这些文件发送到Matplotlib 邮件列表

完成后,要切换回代码的主副本,只需返回main分支:

git checkout main

从打补丁到开发#

如果你发现你已经做了一些补丁,并且你有一个或多个特性分支,你可能想要切换到开发模式。您可以使用您拥有的存储库来执行此操作。

在 github 上fork Matplotlib存储库 —制作您自己的 Matplotlib 副本(fork)。然后:

# 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

然后,如果需要,您可以遵循 开发工作流程