贡献¶
首先阅读¶
通过 GitHub 提交的拉取请求将被忽略。
错误应该在 Launchpad 上提交,而不是 GitHub
基于上游仓库构建更改:¶
这涵盖了您希望在 storlet 仓库的最新版本上添加/更改代码的情况,如果您尚未这样做,请阅读初始 Gerrit 设置部分。
git clone https://opendev.org/openstack/storlets.git
这将克隆上游仓库。
cd ~/storlets
假设您将 storlets 拉取到您的主目录。
git checkout -b <分支 名称>
这将为您创建一个分支 <分支名称> 以进行更改,Gerrit 使用分支名称作为审查页面中的主题字段,因此使其具有意义。
... 进行 代码 更改 ...git add <更改 或 新 文件 / 目录>
请注意,您可以通过 GIT 在此处进行任何有效更改(例如,删除文件)。当您完成所有更改并准备将它们推送到 storlets 仓库进行审查时
git commit
此时,您需要添加一条注释来解释更改,OpenStack 的标准是在此处使用一个简短的句子,后跟一个空行,然后根据需要进行更详细的解释。
git review
此命令不需要任何交互,会将更改推送到 Gerrit 进行审查。
初始 Gerrit 设置:¶
本节涵盖了设置 Gerrit 所需的一次性步骤
安装 Gerrit(这取决于操作系统而异,例如 ‘apt-get install git-review’)。通过 Gerrit 设置 SSH 密钥(即 https://review.opendev.org/#/settings/ssh-keys),您需要从计划用于更改的系统上传您的公钥。
git review -s
这将验证 Gerrit 是否可以使用 ssh 访问服务器。
git config --global gitreview.username 您的gerrit用户名
如果 Gerrit 与您系统上的当前用户不匹配,Gerrit 通常会提示您输入 Gerrit 用户名,或者您可以使用上述方法对其进行硬编码(这更清晰)。
对现有补丁集的更改:¶
本节涵盖了如何将更改推送到现有的补丁集(例如,您进行了一项更改,并且有人提供了您想要解决的审查意见)。只需像往常一样进行所有更改,通常是用于第一个补丁集的初始分支,在将所有文件添加到本地暂存区并准备好提交后
git commit --amend
这将附加到之前的提交,Gerrit 使用一个 change-id,它会自动添加到提交消息中,以将服务器上的补丁集关联起来。如果您在编辑提交消息时附加更改,请确保不要更改 change-id 值,否则 Gerrit 将不会将补丁集与原始补丁集关联,并创建一个全新的补丁集。
git review
请注意,即使在附加更改时,此命令也是相同的。
变基:¶
本节涵盖了将现有的本地仓库变基到 storlets 的最新版本所需的各种步骤。如果您尚未进行任何更改(或进行了不冲突的微小更改),则可以随时运行
git remote updategit checkout mastergit pull --ff-only origin master
这本质上会将您的本地仓库的 HEAD 移动到 master 的 HEAD,但这只有在不需要合并的情况下才能完成,即快速向前选项(例如,您没有更改任何文件,或者您没有更改自上次变基以来在 master 上更改的任何文件)。
接下来,切换到您尝试变基的分支并运行
git checkout <您 尝试 变基的 分支>git rebase master
这将尝试通过自动合并进行变基,但可能会遇到需要手动解决的冲突。将列出这些文件,您需要编辑它们。如果您 git diff 该文件,它将类似于
<<<<<<< HEAD
... some change ...
=======
... some other change ...
>>>>>>> Title of change that introduced the above.
此时,您需要解决冲突(通过选择其中一个版本或组合版本),并在此过程中删除添加的“<<<<<<<”、“=======”和“>>>>>>>”文本。完成手动合并文件后,发出
git rebase --continue
以任何方式变基后,您可能需要通过 Ansible 脚本重新安装 storlets 并构建各种文件。如果使用 TOX,您可能需要使用 ‘tox -r …’ 命令重新创建 TOX 环境。
每周会议:¶
IRC 频道:¶
#openstack-storlets at irc.oftc.net
IRC 日志:¶
http://eavesdrop.openstack.org/irclogs/%23openstack-storlets/
资源:¶
https://docs.openstack.org/infra/manual/developers.html https://docs.openstack.org/swift/2025.2/first_contribution_swift.html https://docs.openstack.org/infra/manual/developers.html#development-workflow https://docs.openstack.org/infra/manual/developers.html#development-workflow