FFmpeg - 修改提交流程
2018-07-02 本文已影响4人
团不慌
1 搭建自己的修改环境
修改本身是不可以直接push进FFmpeg的原始仓库里的,所以首先应该Fork一个自己的仓库并建立专用的提交分支。
- 一定不要仅在本地反复修改,保留多版本提交信息
- 及时同步原仓库的master,始终保持最新状态提交
- 更新等操作教程:Git - 分支间更新、同步与提交小技巧
2 开始进行修改
2.1 准备工作
- 确保
base
最新!!! - 修改前先编译运行,成功后再进行修改
- 及时
clean
,不建议保留无关文件 - 阅读官方引导文档:FFmpeg Developer
2.2 进行修改
- 修改时尽量与官方格式保持一致
- 不允许添加任何行尾空白字符(主要是空格)
- 除
Makefile
外不允许使用TAB
-
API
更改需要写入所属模块的log
和doc
- 更改需要在相关的
version.h
中进行迭代 - 遵从官方的其他格式指引:Coding Rules
迭代分级:
VERSION_MAJOR - 巨大更改,本次修改后失去向前兼容性
VERSION_MINOR - 正常更改,本次修改影响版本API
VERSION_MICRO - 微小更改,本修修改无其他影响
高版本修改时需要重置低位,如 MINOR++ => MICRO =back-to=> 100
- 更改尽可能小,不需要划分成原子更改但必须保真每一次更改为当前最简更改
- 更改不能破坏原功能,完成后应该可以重新编译运行并通过FATE测试:
make fate
2.3 进行提交
- 注册
ffmpeg-devel
邮箱列表:ffmpeg-devel info page - 使用
git commit -s -m "[change part] : [change message]"
签名后提交 - 使用
git format-patch -v[x] -[n]
生成补丁,x是版本,n是打包commit的数量 - 使用自带工具
tool/pacheck
检查patch
规范,按提示进行修改 - 按照官方
check list
进行检查:Patch submission checklist - 使用
git send-email --compose --no-chain-reply-to --suppress-from --to ffmpeg-devel@ffmpeg.org 0001-xxx.patch
示例:
$ git commit -s -m "lavc, doc: add avs2 codec"
... # other changes
$ git commit -s -m "lavc,doc,configure: add libdavs2 video decoder"
$ git format-patch -v3 -2
$ git send-email --compose --no-chain-reply-to --suppress-from --to ffmpeg-devel@ffmpeg.org v3-0001-lavc-doc-add-avs2-codec.patch v3-0002-lavc-doc-configure-add-libdavs2-video-decoder.patch
... # other steps
- 必须确保通过了
FATE
测试 - 确保
send-email
返回正确信息
2.4 后续内容
- 提交成功后应该可以在FFmpeg Patch Work中查找到自己的提交信息,没有查到或不全不要急着重复提交,延时很大
- 时刻关注注册mail-list的邮箱账户,找到与自己有关的,修改/回复Reviewer的问题,可以直接用邮箱客户端引用来信,并在其基础上添加留言
- 最终确认接受后不需要自己提交