matomomomemo

Remote Repositories を使うとGithub上のコードの参照が捗る

最近、OSSのコードを読むときに、手軽に読む術ないかと探していたところ、Remote Repositoriesという拡張機能があることを知った。Remote Repositoryは、GithubとAzule DevOpsのリポジトリを検索して、手元のVSCode上で開くことができるようにするVSCodeの拡張機能。2年ほど前にはすでにリリースされていたらしい。もともとはGithub Repositoriesという拡張機能の実装の一部だったと拡張機能のdescriptionに記載されている。私が使いたかったのはGithubのみだったので、Github Repositoriesとどっちをインストールしたらいいものかと思いつつ、Remote Repositoryをインストールしたところ、Github RepositoriesとAzure Repositoriesも一緒にインストールされた。

ちょっと触ってみて、以下のケースで有用そうだなと思った。

  • 普段利用しているライブラリの実装をさっと見たいとき
  • レビュー時にPull requestを参照したいとき

また、vscode.dev で同じ機能を利用することができるようだが、手元のVSCodeで全て完結できる点に、大きなメリットがあると感じた。

導入方法は、Remote Repositoriesをインストールして終わり。あとはサイドバーの リモートエクスプローラー > リモートリポジトリ から開いたり閉じたり。私が触った限り、CLIは使えないため、ブランチの切り替えやコミットはVSCodeのGUI上で行う。(Windows11 + WSL2で実行)

その他の注意点としては、下記の通り。

  • 参照するリポジトリは、コミット前の変更差分がない限りは、自動的に最新状態に更新される
  • 仮想ワークスペース上で変更をコミットすると、自動的にリモートリポジトリにプッシュされる(権限がない場合は、さすがにプッシュできないと思うが、基本参照目的で使っている + なんとなく怖いので試せていない)
  • あくまで仮想ワークスペースで動いているため、利用したい拡張機能はそのままでは利用できず、有効にするための設定を明示的に入れる必要がある
    • [公式のブログ https://code.visualstudio.com/blogs/2021/06/10/remote-repositories] によると、setting.jsonに以下の設定を入れる必要があるそう
"extensions.supportVirtualWorkspaces": { "<extensionID>": true }

とはいえ、仮想ワークスペースということで正常に動作しない拡張機能もあるらしい。

Keep in mind that an extension might not be implemented to handle a virtual workspace without access to the local file system, and so the extension might not work as expected.