1

現在の darcs リポジトリ (作業ディレクトリ) でタグ付けされた古い状態をチェックアウトしたいと思います。

別のディレクトリにクローンしたくありません (現在のディレクトリに cabal サンドボックスをセットアップしているため)。

私はすでにすべての新しい変更をリモート リポジトリにプッシュしているので、変更がローカルで完全に失われるかどうかはあまり気にしません。(しかし、まだ: パッチを保存したままにしておくことはできませんが、古い状態をチェックアウトすることはできますか?)

これを行う方法?

試み

私は試した

darcs obliterate --from-tag=TAG

しかし、それは私が望んでいた結果ではありませんでした。これでタグも消えました!

そのため、TAG を元に戻すにdarcs pullは、行の最初のパッチ (TAG) を選択し、 を押しdて他のすべてのパッチをスキップする必要がありました。

darcs obliterate --from-tag=TAGを消去するかをインタラクティブに尋ねたので、理論的には TAG を離れることができましたが、最新のパッチから質問を開始したため、darcsTAG を離れるという決定を通知する前に、多くの最近のパッチを実行する必要がありました。

4

1 に答える 1

1

--reverseオプションを使用して、obliterate最初にタグについて尋ね、nそれaを言ってから、残りをすべてアンプルすることができます。

実際obliterate --from-tagには、その動作はパッチの特定の順序に依存し、タグは現在リポジトリにあるため、タグでカバーされていないすべてのものを必ずしも選択するとは限りません。

したがって、最初の全滅の後、--from-tagと なしで別のものを実行し--reverseます。今回は、タグが最初に提供されます (それ以降のものはすべてなくなります)。nそれに対して、それからa他のすべてに対して言うことができます。タグが拒否された後、タグでカバーされていないパッチのみが提供されます。

別のタグを含む多くのパッチがこれによってキャッチされるという比較的まれなイベントでは、それ以上のパッチの提供が停止されるまでこれを繰り返す必要がある場合があります。

古い状態に戻す際にパッチを保持する方法については、削除されたパッチをディスクに保存できるオプション-o-Oオプションを参照してください。obliterateその後、「darcs apply」を使用して後で復元できます。ただし、保存したパッチが適用できなくなる可能性があるため、ローカル リポジトリに残っているパッチを修正したり、他のパッチを保持せずに削除したりしないように注意する必要があります。

于 2015-03-26T21:44:53.540 に答える