首页 文章

Phabricator拉/合并请求

提问于
浏览
1

可以在Phabricator中以bitbucket风格进行拉取请求吗?

例如 . 分支一些现有分支然后创建拉(合并)请求以合并新分支?

我看到Phabricator差分工具只允许向某个分支提交一些手动输入的差异 . 这是唯一的方法吗?

2 回答

  • 2

    不,请参阅https://secure.phabricator.com/T5000以跟踪此功能请求 .

    差分的主要输入应该是Arcanist,即Phabricator命令行工具 . 它包装git并提供lint,unit和其他precommit检查,以帮助减少审查代码所花费的时间 . 例如,它可以在提交审核之前发出补丁并修改代码 .

    https://secure.phabricator.com/book/phabricator/article/arcanist/

  • 3

    您可以将 gitarc 混合在一起,但它确实违背了如何使用 arc diff .

    你可以改用 audit ,虽然我没有详细说明下面的内容(我还没有使用过审计) .

    下面,我试图解释我们的新工作流程,从 git-flow 到使用 gitarc diff 的改编版本 .

    背景

    在我们开始使用 Phabricator 之前,我们使用了 Gitlab 并创建了合并请求 . 这些将由另一位开发人员审核 . 我们使用 JIRA 并且我们的工作流程包含一个 review required 阶段,该阶段在进行测试之前有几个检查 .

    此时,我们已将分支推送到远程,请求审核并等待测试发生(我们混合了手动和自动测试) .

    一旦审核被接受并且测试已通过,则功能分支将合并到 origin/develop 中 .

    新工作流程

    我们的新工作流程无需在 Gitlab 内创建合并请求,尤其是在审核时 .

    我的团队仍然使用包含 git-flow 的工作流程,但是,我们已经引入了 arc diff 命令 . 这在Phabricator中创建了差异 . 开发人员将其分支推送到远程,但不会引发合并请求 .

    我们在创建diff时运行以下命令(合并到 origin/develop

    git checkout -b feature/foo
    git add <files>
    git commit -m "A useful commit message"
    git push origin feature/foo
    arc diff origin/develop # this creates the diff within diffusion
    

    一旦审查被接受,我们不合并(或 arc land )分支机构,我们等待所有测试进行 . 这允许我们在测试失败时更新差异,并且审阅的开发人员可以轻松查看哪些提交需要审阅 .

    一旦测试通过,我们可以简单地合并,使用 gitlab 合并请求或命令行 . 我们通常运行 arc close-revision <revision-id> 来关闭Phabricator本身的修订版 .

    补充说明

    我相信 arc diff 的理念是你不要推动你的本地分支 . 而是创建一个扩散显示的 diff . 这被归类为 pre-push 工作流程 .

    Phabricator还具有 post-push 工作流程,其中包含审计功能 . 您可以通过修改提交消息来标记准备好进行审核的提交 .

相关问题