🖐
public zennリポジトリをprivate zennリポジトリのupstreamにするのは不便
zenn.dev の GitHub連携機能は、リポジトリを2件扱える。
使い方のひとつに、public
とprivate
それぞれのリポジトリを連携する、というものがある。
この扱い方で、private
リポジトリのリモートに upstream
として public
リポジトリを追加してみたのだが、あまり体験が良くなかった。
なぜか
-
fetch
が手間 - それぞれのリポジトリで
npm update
を実行してコンフリクトが起きる
ではどうするか
- 単一のリポジトリだけ扱う
- privateで扱いたいものがあるなら、リポジトリまるごとprivateで運用する
- public を取り込まず、それぞれ独立したリポジトリとして扱う
良さそうだと思っていたこと
public の内容をfetchできる
- 相対パスが成立する
- 記事で相対パスのリンクを使う場面がない
- ファイルシステムによって、slugが一意になるよう助けてもらえる
- 衝突を気にするぐらい記事を書いてから考えればいい
実際のところ不便なところ
fetch
が手間
実際のところ、publicの内容に追随しなければならない場面というのは無かった。
それぞれのリポジトリで共有する要素でコンフリクトが起きる
パッケージが古くなっていると促され、privateでうっかり npm update
してしまった。
publicでもパッケージを更新していた場合、privateへ取り込んだ場合にコンフリクトが起きる。
"privateでうっかり" の取り扱いがキワドイ
上述のように、うっかり public でやればいいことを private でやらかした場合に、何らかの対応が必要である。
だいたいはコミットを取り消したりすれば済むことであるが、誤ちにつながる操作がそばにある。
git push
である。
コマンドを実行しなければ起きない問題ではあるが、「このコミットをupstreamに投げれば解決できるのでは?」などとupstream
にpushしてしまえば、privateの意味はもうない。
睡眠不足だとか、自分の信頼できない場面は多い。
public と private は関連しないリポジトリとして扱うことにした
結果、privateリポジトリから upstream
を取り除くことにした。
Discussion