このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

「ヘッド」の代替語

「ブランチ」の凶悪で忌まわしき多義性は、もうGitは怖くない: 自信を持って使いたいあなたへ - 檜山正幸のキマイラ飼育記 で、まーなんとか説明した。

「ヘッド」が困る。HEADはラベルとして説明した。カーソル、ニードル、あるいはカレント・ポインターだ。「ブランチのヘッド」とか、ちゃんと考えたら意味不明な用語がまかり通っている。こりゃダメだ。

ツリーの用語を借用して、ルートとリーフとすれば辻褄が会うが、別な混乱が生まれそう。トップとボトムにするか。トップとボトムは、the top, the bottom の意味が強いが、tops, bottomsとして使う。ほんとは有向グラフの辺の向きに依存するが、ヘッドと呼んでいたモノをトップノードと呼ぶ。トップの双対概念がボトム。

gitのコミットグラフだと、辺の向きがどうであれ、子孫を上に書くようだから、トップは違和感がないような気もする。部分グラフに対してもトップとボトムを定義すれば、「ブランチのヘッド」は、「ブランチラベルが指すノードのAOS集合からの誘導グラフのトップ」となる。

「ラベルが指すノード」を省略して、「AOS集合からの誘導グラフ」をAOSグラフと呼べば、「ブランチのAOSグラフのトップ」となり、「ブランチ」と同義になる。これで、「ブランチのヘッド」が無意味な概念だと分かる。ココロとしては、「AOSグラフの(唯一の)トップ」と言いたいのだろうが。

[追記]マニュアルで、tipとrootという言葉が使われていた。tip=「先、先端、頂上、頂点」なので、top, apexと同じようなもんだろう。ブランチのtip(the tip of a branch)という言い方は盛んに使っている。rootコミット(root commit)という言葉も使っている。rootは始祖の意味だ。

ブランチのstart_pointは、コマンドの引数で使っている。説明の中でスタートポイントはあまり使われていない。[/追記]