TLDR:親Xを持つHGバンドルがありますが、リビジョンXがリポジトリに存在しません。ただし、リビジョンYのファイルはリビジョンXと同じであると確信しています。バンドルを適用するにはどうすればよいですか?
バックグラウンド:
hgsubversion
私はSVNリポジトリと対話するために使用します。
コミットしたくない変更がいくつかありました。hgsubversion
部分的なプッシュはサポートしていません。
以前は、一時的なエクスポート/パッチファイルを手動で作成するか、.origファイル(の結果hg revert
)を手動で復元することで回避策を実行していました。
この場合、プッシュしたくない変更をコミットしてから使用hg strip
し、次にプッシュしてから使用しようとしましたhg unbundle .hg/strip-backup/file
。
問題:hgsubversion
元のチェンジセットを、コミット後にSVNからインポートした新しいチェンジセットに置き換えます。結果:チェンジセットIDが変更されます。hg unbundle
親のチェンジセットがそこにあることに依存しているため、これは機能しなくなったため、これは問題です(ただし、削除されています)。
皮肉なことに、hgsubversion
それ自体がstrip
バックアップファイルを使用しているため、新しいリビジョンを削除し、削除された古いリビジョンを追加し、バンドルをリビジョンとともに適用し、パッチをエクスポートし、両方を削除し、SVNリビジョンを復元するために使用できます。しかし、これは聞こえます...非常に苦痛で愚かです。私にできることは他にありませんか?
(hg transplant
リポジトリに親がいない場合もバンドルが気に入らないようです)