🖐

public zennリポジトリをprivate zennリポジトリのupstreamにするのは不便

2021/09/26に公開

zenn.dev の GitHub連携機能は、リポジトリを2件扱える。
使い方のひとつに、publicprivateそれぞれのリポジトリを連携する、というものがある。

この扱い方で、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 を取り除くことにした。

GitHubで編集を提案

Discussion