数千のチェンジセットを備えたMercurialリポジトリがあります。現在のチェンジセットでの状態が新しい「ゼロ」、ベースライン、初期コミットであると言う方法はありますか?
Rev00000 ...Rev90000..。 次のようになります: RepoState @Rev90000..。
数千のチェンジセットを備えたMercurialリポジトリがあります。現在のチェンジセットでの状態が新しい「ゼロ」、ベースライン、初期コミットであると言う方法はありますか?
Rev00000 ...Rev90000..。 次のようになります: RepoState @Rev90000..。
コメンターはあなたの答えを持っています。短い答えは「いいえ」です。最初のコミットが古いものからの最新のアーカイブ/スナップショットである新しいリポジトリを簡単に構築できますが、それは完全に新しいリポジトリになり、そこからプルする人は「無関係」になり、「--force」を使用した場合彼らは古いものをすべて持ち、新しいものをすべて持っています。同様に、「--force」でプッシュすると、古いもので再びいっぱいになります。
そのため、全員にすべてのクローンを削除して再クローン化 (基本的に新しいスナップショットで最初からやり直す) をさせたくない場合は、行き詰まります。
convert
拡張機能を使用して履歴を書き換えることができます。これを行うには、ローカル リビジョン 950 が新しいリポジトリの新しいローカル リビジョン 0 になると仮定しましょう。
mercurial.ini
ファイルに次を追加して、拡張機能を有効にします。
[extensions]
convert =
次に、変換の開始としてリビジョン 950 を使用して convert を実行します。
hg convert --config convert.hg.startrev=950 c:\repo c:\repo.new
その後、すべてのユーザーが新しいリポジトリを複製する必要がありますrepo.new
。