Git: 大規模更新と大規模ハックの交錯
今回は単純にGitの話で、初めての人もいるので改めて説明いたしますと、
私が2年ほど前にいぢり始めたのがBatocera32から。
これがあまりに魔改造が過ぎまして、mergeとかもはや無理。
(33~35あたり部分的に適用はしてたですが)
で、古いパッケージが消滅しててビルド不能とかいった事情もありまして
この度は現行のBatocera38まで無茶mergeを敢行せざるを得ない事態。
(試しにブランチを比較してみたあなた、膨大な外部パッケージもあるわけで
こんなもんじゃ済まないっすよ)
さて、どうしてくれようか
大きな問題に直面したとき、いっぺんに対応せず
細分化ししてひとつひとつ…ってカーネギーも云うてはる。
というわけで、まずハック部分をテーマ別に細分化してみましょうか。
なお、ここでは特に激しいハックを施しているRetroArchを例に。
![](https://assets.st-note.com/img/1699464613406-K66k11p5Wv.jpg?width=800)
まだ分け足りないかもしれないが、ひとまずこれで。
因みに、ローカルブランチないところは既に適用済。
ひとつっつ地道に
重要且つ汎用性の高いところから。
まずcheckout
![](https://assets.st-note.com/img/1699587214818-DZ5y3nObXo.jpg)
移行先へrebase
![](https://assets.st-note.com/img/1699587471641-tu1jSDRbXb.jpg)
![](https://assets.st-note.com/img/1699587476819-kldgZpuu0U.jpg)
![](https://assets.st-note.com/img/1699587599974-lCvfK5Dkrr.jpg?width=800)
他全てSkipにするのがポイント
![](https://assets.st-note.com/img/1699587910855-3gcn5L24qq.jpg?width=800)
移行先での追加作業用branch
![](https://assets.st-note.com/img/1699588161078-bfKxeAODcs.jpg)
追加の書き換えもあり得るので
確認できたところでpush
![](https://assets.st-note.com/img/1699588804621-0tEjIdcQti.jpg)
当たりどころの悪いmerge解決
conflict解決がこれでいいのか迷ったら、できればpush前に。
一旦移行元に戻す
![](https://assets.st-note.com/img/1699596156324-u5TKI0cOL1.jpg)
![](https://assets.st-note.com/img/1699596160900-1JkbouqtpO.jpg)
rebase再挑戦
![](https://assets.st-note.com/img/1699596409451-CFcmZdJLnV.jpg?width=800)
![](https://assets.st-note.com/img/1699596605535-Z8TEE2YhAj.jpg?width=800)
追加作業
![](https://assets.st-note.com/img/1699597229775-1JOgiBo3Hu.jpg?width=800)
で変更前から未commit状態になる
![](https://assets.st-note.com/img/1699597569005-2VYRaVfjDl.jpg)
怪しいところは再検証
![](https://assets.st-note.com/img/1699606612375-wgvu0manxx.jpg)
後で再検討するため別branchで除けとく
merge先が移動してたりするやつ
![](https://assets.st-note.com/img/1699634795613-B2SDUS7ZEH.jpg?width=800)
公式の移動先を探して自前で要対応
![](https://assets.st-note.com/img/1699634975890-JfkYHhg2I1.jpg?width=800)
常に公式順が正しいものとして
mergeで変質した部分は戻す必要あり
そしてついに。
![](https://assets.st-note.com/img/1699635089328-cSm9gGGegT.jpg?width=800)
現行バージョンに主要ハックが載った
改めて念入りな動作確認要るし、
それぞれのコアも別途対応要るところだけど
山場は突破できたということで。
(対応ブランチ)
この記事が気に入ったらサポートをしてみませんか?