Mercurial でデータベースから古い変更セットを削除する方法はありますか? 60 GB のリポジトリがあり、クローンを作成するのがかなり大変です。特定の日付までにすべてを削除し、巨大なデータベースをほこりをかぶせるようにしたいと思っています。
ベストアンサー1
既存のリポジトリに対してこれを直接実行する簡単で推奨される方法はありません。
ただし、mercurialリポジトリを新しいmercurialリポジトリに「変換」し、convert.hg.startrevオプションを使用して、履歴を含めるリビジョンを選択できます。
hg convert --config convert.hg.startrev=1234 <source-repository> <new-repository-name>
新しいリポジトリには、開始リビジョンより前の履歴を除いた元のリポジトリのすべてが含まれます。
警告:新しいリポジトリには完全に新しい変更セット ID が付与されます。つまり、元のリポジトリとはまったく関係がありません。新しいリポジトリを作成した後、すべての開発者は新しいリポジトリをクローンし、元のリポジトリからクローンを削除する必要があります。
私はこれを社内で使用されている古いリポジトリをクリーンアップするために使用しました。--filemap オプションと組み合わせて、不要なファイルも削除しました。