日本語 ▾ トピック ▾ 最新バージョン ▾ scalar は 2.47.0 で最終更新

名前

scalar - 大規模なGitリポジトリを管理するためのツール

概要

scalar clone [--single-branch] [--branch <main-branch>] [--full-clone]
	[--[no-]src] <url> [<enlistment>]
scalar list
scalar register [<enlistment>]
scalar unregister [<enlistment>]
scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) [<enlistment>]
scalar reconfigure [ --all | <enlistment> ]
scalar diagnose [<enlistment>]
scalar delete <enlistment>

説明

Scalarは、大規模なGitリポジトリでの使用を最適化するリポジトリ管理ツールです。Scalarは、高度なGit設定を構成し、リポジトリをバックグラウンドで保守し、ネットワーク経由で送信されるデータを削減するのに役立つことで、パフォーマンスを向上させます。

Scalarの重要な概念は「enlistment(エンリストメント)」です。これはプロジェクトのトップレベルディレクトリです。通常、Gitワークツリーであるsrc/サブディレクトリを含みます。これにより、追跡対象ファイル(src/内)と、ビルド成果物などの追跡対象外ファイル(src/外)との分離が促進されます。既存のGitワークツリーをScalarに登録し、その名前がsrcでない場合、enlistmentはワークツリーと同一になります。

scalarコマンドは、様々なサブコマンドと、サブコマンドに応じた異なるオプションを実装しています。clonelistreconfigure --allを除き、すべてのサブコマンドはenlistment内で実行されることを想定しています。

以下のオプションはサブコマンドの前に指定できます

-C <directory>

サブコマンドを実行する前に、作業ディレクトリを変更します。このオプションは、git[1]の同名オプションを模倣しています。

-c <key>=<value>

指定されたサブコマンドの実行中、この設定を構成します。このオプションは、git[1]の同名オプションを模倣しています。

コマンド

クローン

clone [<options>] <url> [<enlistment>]

指定されたリポジトリをgit-clone[1]と同様にクローンします。デフォルトでは、コミットオブジェクトとツリーオブジェクトのみがクローンされます。完了すると、ワークツリーは<enlistment>/srcに配置されます。

sparse-checkout機能が有効になっています(--full-cloneで実行された場合を除く)。存在するファイルはトップレベルディレクトリ内のものだけです。表示したいディレクトリのセットを拡張するにはgit sparse-checkout setを使用するか、すべてのファイルに拡張するにはgit sparse-checkout disableを使用します(詳細についてはgit-sparse-checkout[1]を参照)。sparse-checkoutの外部にあるサブディレクトリは、git ls-tree HEAD[:<directory>]を使用して探索できます。

-b <name>
--branch <name>

クローンされたリポジトリのHEADが指すブランチをチェックアウトする代わりに、<name>ブランチをチェックアウトします。

--[no-]single-branch

--branchオプションで指定された単一のブランチの先端までの履歴のみをクローンするか、プライマリブランチリモートのHEADが指すブランチの先端までの履歴のみをクローンします。

結果のリポジトリへのそれ以降のフェッチでは、このオプションが初期クローンに使用されたブランチのリモート追跡ブランチのみが更新されます。--single-branchクローンが作成されたときにリモートのHEADがどのブランチも指していなかった場合、リモート追跡ブランチは作成されません。

--[no-]src

デフォルトでは、scalar cloneはクローンされたリポジトリを<entlistment>/srcディレクトリ内に配置します。--no-srcを使用すると、クローンされたリポジトリを直接<enlistment>ディレクトリに配置します。

--[no-]tags

デフォルトでは、scalar cloneはリモートによってアドバタイズされたタグオブジェクトをフェッチし、将来のgit fetchコマンドも同様に行います。--no-tagsを使用すると、scalar cloneでのタグのフェッチを回避し、将来的にタグをフェッチしないようにリポジトリを構成します。--no-tagsでクローンした後でタグをフェッチするには、git fetch --tagsを実行します。

--[no-]full-clone

sparse-checkoutはデフォルトで初期化されます。この動作は--full-cloneで無効にできます。

リスト

list

現在Scalarに登録されているenlistmentをリスト表示します。このサブコマンドはenlistment内で実行する必要はありません。

登録

register [<enlistment>]

enlistmentのリポジトリを登録済みリポジトリのリストに追加し、バックグラウンドメンテナンスを開始します。<enlistment>が指定されていない場合、現在の作業ディレクトリに関連付けられたenlistmentが登録されます。

注意: このサブコマンドがsrc/という名前のワークツリー内で呼び出された場合、その親ディレクトリがScalar enlistmentとみなされます。ワークツリーがsrc/呼ばれていない場合、ワークツリー自体がScalar enlistmentとみなされます。

登録解除

unregister [<enlistment>]

指定されたリポジトリをScalarに登録されているリポジトリのリストから削除し、スケジュールされたバックグラウンドメンテナンスを停止します。

実行

scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) [<enlistment>]

指定されたメンテナンスタスク(allが指定された場合はすべてのタスク)を実行します。allconfigを除き、このサブコマンドは単純にgit-maintenance[1]に処理を渡します(fetchprefetchに、pack-filesincremental-repackにマッピングします)。

これらのタスクは、リポジトリがScalarに登録されるとすぐに、スケジュールされたメンテナンスの一部として自動的に実行されます。したがって、このサブコマンドを手動で実行する必要はありません。

configタスクはScalarに固有のものであり、Gitを大規模なリポジトリでより効率的に動作させるための、独自のデフォルト設定をすべて構成します。このタスクはscalar cloneの一部として自動的に実行されるため、このタスクを明示的に呼び出す必要はめったにありません。

再設定

Scalarのアップグレード後、またはScalar enlistmentの設定が何らかの形で破損したり誤って変更されたりした場合、このサブコマンドでenlistmentを再設定できます。

--allオプションを使用すると、現在Scalarに登録されているすべてのenlistmentが再設定されます。Scalarをアップグレードするたびにこのオプションを使用してください。

診断

diagnose [<enlistment>]

Scalarに関する問題を報告する際、ログや現在のenlistmentのデータ形状を記述する特定の統計情報など、このコマンドで収集された情報を提供すると役立つことがよくあります。

このコマンドの出力は、srcディレクトリ内のワークツリーに隣接するディレクトリに書き込まれる.zipファイルです。

削除

delete <enlistment>

このサブコマンドを使用すると、既存のScalar enlistmentをローカルファイルシステムから削除し、リポジトリの登録を解除できます。

関連項目

Git

git[1] スイートの一部

scroll-to-top