撤销Phabricator中的最后一个diff



我在Phabricator(使用Git)中有一个开放的修订,并且我用arc diff命令提交了一个diff。

问题是这个diff不好,所以我想撤销它,回到以前的diff。

你知道我该怎么做吗?

我经常犯错误,对错误的分支进行区分。

第一步是撤销diff,我们不能从修订历史中删除diff,但是我们可以恢复它。

$ arc patch --diff <diff_id> # last good diff, creates <arcpatch-branch>
$ arc diff --update <revision_id> <arcpatch-branch> # "reverts" the offending diffs to the current state

此时,您的修订已恢复到原始状态。如果您想再次执行diff,那么请按照您通常做的操作。签出分支,对diff进行修改,然后执行diff

$ git checkout <new_branch>
$ arc diff <source_branch> # new_branch has changes that is intended to be merged into source_branch

感谢altendky,他列出了这些步骤中的大部分。然而,他引用的revision标志不再存在,我还希望将步骤列出得更清楚一些。

免责声明:我的Git经验有限,目前我在SVN上使用Phabricator。

假设您没有其他本地更改,您可以恢复您的工作副本,然后arc patch --diff <diff_id>,其中diff ID显示在Revision Update History表的ID列中。然后像往常一样只更新arc diff --revision <rev_id>。我想从技术上讲,这不是删除,但这是伪修订控制。错误和更正将被跟踪。

目前不支持。您可以按照altendky推荐的过程或任何类似的过程(即,在工作副本处于正确状态时再次运行arc diff),用新的良好的diff替换坏的diff。

这是我们打算最终添加的功能。您可以在这里查看上游的进度:

https://secure.phabricator.com/T1081(关闭无法修复)

最新更新