6
1

More than 5 years have passed since last update.

Fuchsiaで使われているリポジトリ管理ツールJiriを少しだけ触ってみる

Last updated at Posted at 2018-04-11

まえおき

複数のGitリポジトリをまとめて管理するツールとして、Androidでは repo が使われていたけど、Fuchsiaでは Jiriという別のものが使われているらしい。

2018年4月現時点では「もしかしてjira?」って言われるくらいマイナーなツールなんだけども、ちょっとだけ味見してみよう。
(※ あえて「味見」って書いてるのは、この記事ではソースのビルドとかGerrit連携とかは想定してなくて、ただ単にgitリポジトリをまとめて取得することだけを試してみよう!という意図で書いていることをあらかじめご承知おきください...)

インストール

公式のDocには myrootみたいなのを用意しろって書いてるんだけど、とりあえず味見程度に触りたいだけなら

curl -s https://raw.githubusercontent.com/fuchsia-mirror/jiri/master/scripts/bootstrap_jiri | bash -s /usr/local/jiri
ln -s /usr/local/jiri/.jiri_root/bin/jiri /usr/local/bin/jiri

rootで↑を実行すれば jiri コマンドが使えるようになる。

repoユーザのためのjiriの基本手順

repoだと

  1. マニフェストファイルをどこかのGitリポジトリに置く
  2. repo init -u マニフェストのURL.repo/ が作られて
  3. repo sync -j4 でソース同期

これがjiriだと、

  1. 自前で .jiri_manifest ファイルを用意する(jiri importとかでインポートすることも可能)
  2. jiri init.jiri_root/ が作られて
  3. jiri update でソース同期

いざ味見

importとか、hookとかかなり多機能っぽいんだけど、とりあえずソースをまとめて取ってきたいという用途だけで使う。

ソースを取ってきたい場所に移動する。

$ cd path/to/workspace/

manifestを書く

.jiri_manifest
<manifest>
  <projects>
    <project name="sdk"
      remote="https://github.com/dart-lang/sdk"
      path="dart-sdk" />
    <project name="flutter"
      remote="https://github.com/flutter/flutter"
      path="flutter" />
    <project name="flutter-engine"
      remote="https://github.com/flutter/engine"
      path="flutter-engine" />
    <project name="flutter-plugins"
      remote="https://github.com/flutter/plugins"
      path="flutter-plugins" />
  </projects>
</manifest>

https://fuchsia.googlesource.com/topaz/+/master/manifest/minimal とか色々参考にしつつも、
ソースを取ってくるだけなら、とりあえずこんな感じで書いておけば良さそう。

jiri init, jiri update

$ jiri init
$ jiri update
WARN: Please opt in or out of analytics collection. You will receive this warning until an option is selected.
To check what data we collect run 'jiri init -show-analytics-data'
To opt-in run 'jiri init -analytics-opt=true "/home/ubuntu/workspace"'
To opt-out run 'jiri init -analytics-opt=false "/home/ubuntu/workspace"'

Updating all projects
PROGRESS: Creating project "flutter-engine"
PROGRESS: Creating project "flutter"
PROGRESS: Creating project "sdk"

しばらく待っていると、

$ ls
dart-sdk/  flutter/  flutter-engine/  flutter-plugins/

こんな感じでダウンロード完了。
実にシンプルだ。

まとめ

repoと違って、 Jiri.jiri_manifest をローカルに用意するだけで始められるので、ローカルのリポジトリ管理でも結構便利な感じがします。
まずは皆さん味見してみましょう。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1