⇧ 日々の生活に影響が無いかだけが気になりますな...
Gitリポジトリの構成の種類とOxidizedと
前回、前々回と、
⇧「Oxidized」というライブラリの内部で「Rugged」というライブラリが利用されており、「Rugged」は「Git」のリポジトリを「bare repository」として扱ってしまうという話が出てきました。
「Git」のリポジトリで「bare repository」はというと、
⇧ 上図の構成から「Workig Dir」の部分を除いた部分と考えれば良い模様。
「Git」のリポジトリの構成の種類の全量が分からんのだが、公式のドキュメントだと、
⇧ このあたりを読むしか無い感じなんかな。
「git clone」のオプションの検証結果を試しておられる方がいて、
⇧ 上記サイト様によりますと、「Git」のリポジトリについては、少なくとも4種類の構成が存在することになるようで、
- bare
- non-bare
- normal
- no-checkout
- mirror
⇧ という区別ができそうですと。
Oxidizedのconfigのoutputをgitにした際のデフォルトのリポジトリがbareでbranchがmasterな問題
で、昨今、
⇧「Git」のリポジトリのデフォルトの「branch」が「master」では無く、「main」になっていますと。
つまり、「main」ブランチで処理されて欲しい。
が、「Oxidized」のドキュメントを見た限りでは、
⇧ ブランチの指定ができるようにはなっておらず、
特に問題ではないのですが、Oxidizedのこちらのリポ機能はGithub用に作られているみたいで、デフォのリポ名がMasterになっています。
GitlabはデフォがMainになりますので、事前にGitlab側ですり替えておくか、Oxidizedの設定で変更する必要があります。(今回の例ではGitlab側で変更してます。)
⇧ドキュメント通りに実行すると「master」ブランチで処理されてしまうようですと。
何と言うか、「config」で「branch」指定できるようにしておかなかったのが何故なのか全くもってよく分からんのだけど...
そもそも、「master」ブランチに限定したユースケースしか想定していないのは謎過ぎるんよね...
Oxidizedのconfigのoutputをgitにした際のデフォルトのリポジトリがbareでbranchがmasterな問題に対応するには?
どうしたものか思案していたところ、
「Oxidized」の「config」の設定項目「output」で「git」にした場合のissueが上がっており「open」の状態だったので、追加質問してみたところ、
⇧ というような回答をいただきましたと。
つまり、「Oxidized」が実行されるより前に、予め「Git」の「bare repository」を生成しておき、「branch」が「main」のブランチを作成し、「branch」の参照を「main」ブランチにしておくという対応。
「Git」の公式のドキュメントによると、
⇧ とありますと。
「Oxidized」内部での「Rugged」の実装・処理の振る舞いが理解できていないので、「Oxidized」内部での「Rugged」の実装が、事前に用意しておいた「Git」のリポジトリの「main」ブランチで処理してくれるのかが分からないのだけど、他に対応できそうな方法が無さそう。
何と言うか、「Oxidized」の公式のドキュメントに対応方法を記載しておいて欲しいんだが...
まともに動作させるまでの条件などを端折り過ぎなんよね...
とりあえず、動作確認してみるしかないってことですな...
2024年10月22日(火)追記:↓ ここから
何やら、
⇧ 2024年10月15日に、ドキュメントの変更があった模様。
Oxidizedが動く前に、
git config --global init.defaultBranch <Name>
⇧ を設定しておけば良いってことなんかね?
謎なのは、
⇧ 何故、outputの方のドキュメントに記載しないのか...
何か、
⇧ Oxidizedのメンテナーの人から連携いただいたのですが、厳しいかもしれないとのこと。そして、git pushをプロキシ経由でするのは、Oxidizedの想定していない利用のされ方ということらしい。
2024年10月22日(火)追記:↑ ここまで
毎度モヤモヤ感が半端ない…
今回はこのへんで。