web-dev-qa-db-ja.com

Phabricatorで最後の差分を元に戻す

Phabricator(Gitを使用)でオープンリビジョンがあり、arc diffコマンドを使用してこのリビジョンへの差分を送信しました。

問題は、この差分が悪いことです。それを元に戻して、前の差分に戻したいと思います。

どうすればいいのか分かりますか?

12
Arnaud

免責事項:Gitの経験が限られており、現在SVNでPhabricatorを使用しています。

他にローカルな変更がないと仮定すると、作業コピーを元に戻してarc patch --diff <diff_id>できます。ここで、差分IDはRevision Update HistoryテーブルのID列に表示されます。次に、通常どおりarc diff --revision <rev_id>を更新します。技術的には削除ではないと思いますが、疑似リビジョン管理を使用します。間違いと訂正が追跡されます。

5
altendky

私はよく間違ったブランチとの差分を間違えます。

最初のステップは、差分を元に戻すことです。リビジョン履歴から差分を削除することはできませんが、元に戻すことはできます。

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

この時点で、リビジョンは元の状態に戻ります。差分を再度実行する場合は、通常どおりに実行します。 ブランチをチェックアウト差分を対象とした変更を加えてから差分を実行

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

これらのステップのほとんどをリストしたaltendkyの功績です。ただし、彼が参照したrevisionフラグはもう存在しないため、手順をもう少し明確にリストする必要もありました。

3
seato

これは現在サポートされていません。 altendkyが推奨するプロセスまたは同様のプロセスに従うことで、不良diffを新しい良好なdiffに置き換えることができます(つまり、作業コピーを正しい状態にしてarc diffを再度実行するだけです)。

これは、最終的に追加する予定の機能です。ここで上流の進捗状況を確認できます。

https://secure.phabricator.com/T1081 (修正されないためクローズ)

3
Evan Priestley