Gitを置き換えるバージョン管理システム「Jujutsu」

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

S 20240206 110846

今やバージョン管理ツールとして圧倒的な人気を集める「Git」ですが、Linuxカーネル開発のために作られたという経緯もあり、使いこなすにはかりの経験値が必要となります。

この問題を解決するために、Googleのソフトウェアエンジニアによって、新しいバージョン管理システム「Jujutsu」の開発が進められています。

Jujutsuの素晴らしさを紹介する記事「jj init 」によると、Jujutsuは過去のバージョン管理システムの問題点やメリットを分析して作られていて、Googleの既存のバージョン管理システムを置き換える勢いがあるとのこと。

JujutsuはmacOSでは、brew install jjを実行するだけで使用することができ、バックエンドとしてGitを使用しているため、採用にコストがかからないというメリットもあるそうです。

公式サイトでは、Jujutsuの特徴がリストアップされています。

  • コミットとしての作業コピー: ファイルへの変更は通常のコミットとして自動的に記録され、その後の変更のたびに修正される。この「スナップショット」デザインは、ユーザー向けのデータモデルを単純化し、内部アルゴリズムを単純化し、Gitの隠し場所やインデックス/ステージング領域のような機能を完全に包含する。
  • 操作ログとアンドゥ: Jujutsuは、コミット、プル、プッシュに至るまで、リポジトリ上で実行されたすべての操作を記録する。
  • 自動リベースと競合の解決: コミットを変更すると、すべての子孫は変更されたばかりのコミットの上に自動的にリベースされる。これにより、「パッチベース」のワークフローが簡単になる。
  • 安全な同時レプリケーション: Jujutsuは同時実行シナリオの下で安全であるように設計されている。rsyncやDropboxで保存されたリポジトリを使用しても、リポジトリが破損した状態になることはない。最悪の場合、ローカルとリモートのコンフリクトが発生し、それを解決する必要がある。

コマンド名は、打ちやすく、置き換えやすい「jj」になっていて、プロジェクトは"jj"にマッチするので"Jujutsu"と呼ばれているそうです。

Git compat

Jujutsuは、基盤となるデータとストレージモデルを抽象化していて、Gitリポジトリをストレージとして利用できるほか、ネイティブストレージのバックエンドも存在します。

Rustで作られたオープンソースツールで、最新版をGitHubからダウンロードすることができます。

バージョン管理ツールといえばGitがデファクトスタンダードとなっていますが、Jujutsuがこれを置き換えることができるのか注目したいと思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次