hgsubversion 拡張機能を使用して、subversion ベースのプロジェクトを mercurial に変換中です。Subversion リポジトリには、別のプロジェクトの 2 つのファイルを参照する svn:externals プロパティを持つディレクトリがあります。Hgsubversion は、ディレクトリ外部をサブリポジトリに変換できますが、ファイル参照外部を明らかに変換できません。とにかく外部/サブリポジトリから離れたいので、svnsync の一部としてそれらをフラット化できると考えました。
これは 1 回限りの変換であり、Subversion の履歴を微調整しても構わないので、同期プロセスの一部としてファイルを「参照解除」または外部化解除できると考えていました。結果のミラーには、ファイルを含むディレクトリのプロパティ 'svn:external' なしで外部ファイルを含める必要があります。
これはコミットフックとして実行できると思います。しかし、進行中のコミットを変更する方法がわかりません。それを中止する方法だけです。この質問:外部を変更するための SVN post-commit フックはちょっとそこに到達しますが、答えは主に外部から離れるようにというアドバイスです (私はすでに確信しています)。
もちろん、svn から hg に移行する最善の方法についてあまりにも多くの仮定を置いている場合は、遠慮なく別の提案をしてください。