gitリポジトリは、部分的に順序付けられたリビジョンのセットと考えることができます(以前のリビジョンの直接または間接の後継である場合、1つのリビジョンは順序が他のリビジョンよりも前になります)。gitリポジトリから取得する半順序は、幅(相互に独立したリビジョンの最大セットのサイズ)が小さい傾向があります。これは、幅がアクティブな開発者の数と個々の開発者が作業している異なるフォークの数に直接関係するためですに。
この背景に基づいて、ディルワースの定理を提案します。これは、半順序の幅がすべてのバージョンをカバーするために必要なチェーン(完全に順序付けられたサブセット)の最小数に等しいことを示します。また、このボードでトピックにするために、幅を計算し、多項式時間で最小数のチェーンでカバーを見つけるためのアルゴリズムに基づいたグラフマッチングに言及することもできます。
これがGitでの実際の使用に関連する1つの方法は、システムのバージョン履歴を視覚化するシステムです。これまで見たほとんどのGit視覚化システムは、垂直軸に時間を描画し、視覚化を少数の独立した垂直トラックに整理する方法を提供します。
あるいは、もっと野心的で高度なものが必要な場合は、Demaine et al。の非難ツリーデータ構造を試してください。これは、Gitのようなバージョン管理システムでの競合解決によって直接動機付けられています。