Projection: 公開ファイルと非公開ファイルを分割するJJワークフロー
本記事では、JJ(Jujutsu)バージョン管理システムにおいて、公開ファイルと非公開ファイルを効果的に分割するワークフロー「Projection」を紹介する。プロジェクト内で機密情報や個人設定を含むファイルを安全に管理しながら、公開可能な部分だけをリモートリポジトリにプッシュする方法を解説する。
背景メモ
- これは「JJ」というノート管理ツール向けのワークフロー記事。JJはJames「JJ」Williamsが開発したCLIベースの個人用ノート・TODO・プロジェクト管理ツールで、Gitと親和性が高く、Markdownファイルを直接管理する点が特徴。
- 著者は、JJのノートをGitHubなどに公開する際に、パスワードやAPIキー、個人的な日記など、公開したくないファイル(private)と公開可能なファイル(public)を同じリポジトリ内でどう分離するかという実践的な問題に取り組んでいる。
- 提案されている「Projection(プロジェクション)」ワークフローは、JJの「projection」機能(あるクエリの結果を仮想的なディレクトリとして扱う仕組み)を利用し、publicタグの有無でファイルを振り分ける方法。シンボリックリンクやサブモジュールを使わず、JJの機能だけで完結する点がポイント。
- JJ自体は、比較的新しくニッチなツールだが、ORGMODEやObsidianに代わる軽量なGitベースの情報管理手法を求める開発者層の間で注目を集めている。