17

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

问题是这个差异很糟糕,所以我想撤消它并回到以前的差异。

你知道我该怎么做吗?

4

3 回答 3

11

我经常犯 diff'ing 对错误分支的错误。

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

$ 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

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

感谢列出大部分这些步骤的 altendky。但是,revision他引用的标志不再存在,我还希望更清楚地列出这些步骤。

于 2017-06-08T18:50:11.903 回答
6

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

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

于 2014-08-05T12:32:27.213 回答
4

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

这是我们打算最终添加的功能。您可以在此处关注上游的进度:

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

于 2014-08-23T19:35:33.510 回答