我在 Phabricator 中有一个开放的修订版(使用 Git),我使用arc diff
命令提交了这个修订版的差异。
问题是这个差异很糟糕,所以我想撤消它并回到以前的差异。
你知道我该怎么做吗?
我在 Phabricator 中有一个开放的修订版(使用 Git),我使用arc diff
命令提交了这个修订版的差异。
问题是这个差异很糟糕,所以我想撤消它并回到以前的差异。
你知道我该怎么做吗?
我经常犯 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
他引用的标志不再存在,我还希望更清楚地列出这些步骤。
免责声明:我的 Git 经验有限,目前正在使用 Phabricator 和 SVN。
假设您没有其他本地更改,您可以还原您的工作副本,然后arc patch --diff <diff_id>
差异 ID 显示在Revision Update History
表的 ID 列中。然后arc diff --revision <rev_id>
像往常一样更新。我想这在技术上不是删除,但它与伪修订控制一起使用。错误和更正将被跟踪。
目前不支持此功能。arc diff
您可以按照 altendky 推荐的过程或任何类似的过程(即,在工作副本处于正确状态时再次运行)来用新的、好的 diff 替换坏的 diff 。
这是我们打算最终添加的功能。您可以在此处关注上游的进度:
https://secure.phabricator.com/T1081(因无法修复而关闭)