我对git相当陌生,甚至对Phabricator更新,我试图在我的项目早期建立一个干净的工作流程。据我了解,与git做适当的事情是为每个功能创建一个新的分支,在分支中实现它,然后将分支合并到主。很好,没问题。如何设置Arcanist工作流与审阅者滞后时间?
输入Phabricator和预推代码评论。我创建了一个分支,让我们称之为“B”,实现一些东西,运行“arc diff”将其纳入Phabricator的差异审查系统,等待审批,最后运行“arc land”以推送到主存储库。到现在为止还挺好。但是,我不想在等待审稿人回复我的过程中暂停进一步的开发。
所以,我有我的提交审查,并且我想开始工作在一个改进或依赖功能。我创建了一个子分支,我们称它为“SB”,然后开始工作。我得到SB准备发送审查,并且B尚未批准。 “arc diff”看起来像将现有的提交和我不想要的新更改结合在一起 - 这是一个新的更改,而不是旧的更新。我尝试使用“arc diff B”,并且它工作正常,我在Differential中得到一个新的修订版本,其中只包含新的更改。 B获得批准,并且我运行B上的“arc land”以提交它。这工作。
SB获得批准,我运行SB上的“弧形土地”提交它。我得到一个用法例外 - Arcanist将这两个修订都视为在SB中,而不是在master中。我尝试切换到master并运行更新,然后再次尝试。同样的错误。我尝试用--revision标志着陆两个变化(即使其中一个已经真正登陆了)。我遇到合并冲突。我解决并提交合并冲突并重试。我再次得到完全相同的合并冲突。
我最终得到了尝试在SB上进行rebase的想法,最终得到了“arc land”正常工作。所以,我有一个技术上可行的解决方案,但这对我来说似乎很笨拙和尴尬。有没有更好的方式来做到这一点,以避免需要手动rebasing只是为了让奥术师认识到,不,我已经降落的修订不是我现在登陆的部分内容?
这个问题似乎是从我的脑海里拿出来放在这里。我只是处于相同的情况。你终于找到了一个更好的工作流程? – Apperside 2016-10-30 18:43:52
@Apperside不幸的是没有。我只是习惯于在每次着陆之前将SB重新贴在主人身上。 – Douglas 2016-10-30 20:35:02
我们可以去火星,我们不能这样做,多么可耻!无论如何感谢您的回答 – Apperside 2016-10-31 08:56:14