You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
newOption("--schema","Print JSON Schema for this command's --json output and exit").conflicts([
183
+
"json",
184
+
"quiet",
185
+
"verbose",
186
+
]),
187
+
)
182
188
.summary("Show the workspace branch (default)")
183
189
.description(
184
190
"Examples:\n\n arb branch show Show branch, base, and share\n arb branch show -v Per-repo tracking detail\n arb branch show -q Just the branch name\n\nShow the workspace branch, base branch, share (remote tracking) branch, and any per-repo deviations. Use --verbose to show a per-repo table with branch and remote tracking info (fetches by default; use -N to skip). Press Ctrl+C during the fetch to cancel and use stale data. Use --quiet to output just the branch name (useful for scripting). Use --json for machine-readable output.\n\nSee 'arb help scripting' for output modes and piping.",
185
191
)
186
192
.action(async(options,command)=>{
187
193
if(options.schema){
188
-
if(options.json||options.quiet||options.verbose){
189
-
error("Cannot combine --schema with --json, --quiet, or --verbose.");
190
-
thrownewArbError("Cannot combine --schema with --json, --quiet, or --verbose.");
.option("-v, --verbose","Show commit bodies and changed files")
59
-
.option("--json","Output structured JSON to stdout")
60
-
.option("--schema","Print JSON Schema for this command's --json output and exit")
59
+
.addOption(newOption("--json","Output structured JSON to stdout").conflicts("schema"))
60
+
.addOption(newOption("--schema","Print JSON Schema for this command's --json output and exit").conflicts("json"))
61
61
.summary("Show feature branch commits across repos")
62
62
.description(
63
63
"Examples:\n\n arb log Show feature commits across repos\n arb log api --verbose Include commit bodies and files\n arb log -n 5 --where dirty Limit commits, filter repos\n\nShow commits on the feature branch since diverging from the base branch across all repos in the workspace. Answers 'what have I done in this workspace?' by showing only the commits that belong to the current feature.\n\nShows commits in the range base..HEAD for each repo. Use --fetch to fetch before showing log (default is no fetch). Use -n to limit how many commits are shown per repo. Use -v/--verbose to also show commit bodies and changed files. Use --json for machine-readable output.\n\nRepos are positional arguments — name specific repos to filter, or omit to show all. Reads repo names from stdin when piped (one per line). Use --where to filter by status flags. See 'arb help filtering' for filter syntax. Skipped repos (detached HEAD, wrong branch) are explained in the output, never silently omitted.\n\nSee 'arb help scripting' for output modes and piping.",
newOption("--schema","Print JSON Schema for this command's --json output and exit").conflicts([
165
+
"json",
166
+
"quiet",
167
+
"verbose",
168
+
]),
169
+
)
164
170
.summary("List cloned repos (default)")
165
171
.description(
166
172
"Examples:\n\n arb repo list List repos with remote roles\n arb repo list -v Include remote URLs\n arb repo list -q One name per line\n\nList all repositories that have been cloned into .arb/repos/. Shows resolved SHARE and BASE remote names for each repo. Use --verbose to include remote URLs alongside names. Use --quiet for plain enumeration (one name per line). Use --json for machine-readable output.",
167
173
)
168
174
.action(async(options,command)=>{
169
175
if(options.schema){
170
-
if(options.json||options.quiet||options.verbose){
171
-
error("Cannot combine --schema with --json, --quiet, or --verbose.");
172
-
thrownewArbError("Cannot combine --schema with --json, --quiet, or --verbose.");
173
-
}
174
176
printSchema(z.array(RepoListJsonEntrySchema));
175
177
return;
176
178
}
177
179
awaitarbAction(async(ctx,options)=>{
178
-
if(options.quiet&&options.json){
179
-
error("Cannot combine --quiet with --json.");
180
-
thrownewArbError("Cannot combine --quiet with --json.");
181
-
}
182
-
if(options.quiet&&options.verbose){
183
-
error("Cannot combine --quiet with --verbose.");
184
-
thrownewArbError("Cannot combine --quiet with --verbose.");
185
-
}
186
-
if(options.verbose&&options.json){
187
-
error("Cannot combine --verbose with --json.");
188
-
thrownewArbError("Cannot combine --verbose with --json.");
@@ -55,20 +54,26 @@ export function registerStatusCommand(program: Command): void {
55
54
.option("-w, --where <filter>","Filter repos by status flags (comma = OR, + = AND, ^ = negate)")
56
55
.option("--fetch","Fetch from all remotes before showing status (default)")
57
56
.option("-N, --no-fetch","Skip fetching")
58
-
.option("-v, --verbose","Show file-level detail for each repo")
59
-
.option("-q, --quiet","Output one repo name per line")
60
-
.option("--json","Output structured JSON (combine with --verbose for commit and file detail)")
61
-
.option("--schema","Print JSON Schema for this command's --json output and exit")
57
+
.addOption(newOption("-v, --verbose","Show file-level detail for each repo").conflicts("quiet"))
58
+
.addOption(newOption("-q, --quiet","Output one repo name per line").conflicts(["json","verbose"]))
59
+
.addOption(
60
+
newOption("--json","Output structured JSON (combine with --verbose for commit and file detail)").conflicts(
61
+
"quiet",
62
+
),
63
+
)
64
+
.addOption(
65
+
newOption("--schema","Print JSON Schema for this command's --json output and exit").conflicts([
66
+
"json",
67
+
"quiet",
68
+
"verbose",
69
+
]),
70
+
)
62
71
.summary("Show repo branches, sync status, and local changes")
63
72
.description(
64
73
"Examples:\n\n arb status Show all repos\n arb status --dirty Only repos with local changes\n arb status api web --verbose File-level detail for specific repos\n\nShow each repo's position relative to the base branch, push status against the share remote, and local changes (staged, modified, untracked). The summary includes the workspace's last commit date (most recent author date across all repos).\n\nRepos are positional arguments — name specific repos to filter, or omit to show all. Reads repo names from stdin when piped (one per line), enabling composition like: arb status -q --where dirty | arb log.\n\nUse --dirty to only show repos with uncommitted changes. Use --where <filter> to filter by status flags. See 'arb help filtering' for filter syntax. Fetches from all remotes by default for fresh data (skip with -N/--no-fetch). Press Ctrl+C during the fetch to cancel and use stale data. Quiet mode (-q) skips fetching by default for scripting speed. Use --verbose for file-level detail. Use --json for machine-readable output. Combine --json --verbose to include commit lists and file-level detail in JSON output.\n\nFor a live dashboard with sync commands, use 'arb watch'.\n\nMerged branches show the detected PR number when available (e.g. 'merged (#123), gone'), extracted from merge or squash commit subjects. JSON output includes detectedPr fields.\n\nSee 'arb help stacked' for stacked workspace status flags. See 'arb help scripting' for output modes and piping.",
0 commit comments