1

しばらくの間、スライド履歴ウィンドウの問題の解決策を探していました。問題は次のとおりです。多くのコミットを含む DNS のリポジトリがありますが、ネーム サーバーには設定された数のコミットのみが存在するようにしたいと考えています。ライブ マシンでコミットの全履歴を保持する必要はありません。その場で深さ 5 の浅いクローン (ABCDE をコミット) を作成します。DNS を更新する必要があり、最初のクローン作成を感知するコミットがいくつかあります (FGH をコミットします)。更新プロセスが完了した後、以前の 5 つのコミット (DEFGH) のみにクローンを作成したいと考えています。フェッチ/マージまたはプルの後でも、クローンには追加のコミットをフェッチ/マージまたはプルする機能が必要です。

ブランチとリベースを使用すると、gitリポジトリを浅いものに変換するのと同じように、このようなことを達成できることを知っていますか? ただし、将来のマージのために、上流のリポジトリとの互換性を保つことができませんでした。私の理解では、「公開」バージョンとして使用されている実際のブランチとマージできない分岐ブランチが作成されるため、将来のコミットでは使用できません。指定された代替ソリューションも機能しません。プルーニング エラーが発生するためです。

この問題は、浅いクローン メンテナンス スクリプトの最後のコンポーネントです。スクリプトの基本的な機能は、ローカルの変更をバックアウトし、無視されていない追跡されていないファイルをクリーンアップし、(フェッチを介して) レポジトリに更新があったかどうかをテストします。アップストリーム リポジトリに更新があった場合は、それらを (プル経由で) 適用し、最初の例のようにコミット ウィンドウを前方に「移動」します。

欠けているのは何ですか?既存のクローンを削除して再クローンしなくても可能ですか?

4

0 に答える 0