@mcadam/worktree 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -1,13 +1,17 @@
1
1
  #!/usr/bin/env node
2
+ import { readFileSync } from 'node:fs';
2
3
  import { program } from 'commander';
3
- import { getGitRoot, isGitRepo } from './config/detector.js';
4
- import { configManager } from './config/manager.js';
4
+ import { configCommand } from './commands/config.js';
5
5
  import { createCommand } from './commands/create.js';
6
- import { listCommand } from './commands/list.js';
7
6
  import { initCommand } from './commands/init.js';
8
- import { configCommand } from './commands/config.js';
9
- async function main() {
10
- // Check if we're in a git repository
7
+ import { listCommand } from './commands/list.js';
8
+ import { getGitRoot, isGitRepo } from './config/detector.js';
9
+ import { configManager } from './config/manager.js';
10
+ function getPackageVersion() {
11
+ const packageJson = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8'));
12
+ return packageJson.version;
13
+ }
14
+ async function getGitRootOrExit() {
11
15
  if (!(await isGitRepo())) {
12
16
  console.error('Error: Not in a git repository');
13
17
  process.exit(1);
@@ -17,16 +21,19 @@ async function main() {
17
21
  console.error('Error: Could not determine git root');
18
22
  process.exit(1);
19
23
  }
20
- // Load config
21
24
  await configManager.load();
25
+ return gitRoot;
26
+ }
27
+ async function main() {
22
28
  program
23
29
  .name('worktree')
24
30
  .description('CLI tool for managing Git worktrees across multiple repositories')
25
- .version('1.0.0');
31
+ .version(getPackageVersion());
26
32
  program
27
33
  .argument('[branch]', 'Branch name to create worktree for')
28
34
  .description('Create a new worktree or manage existing ones')
29
35
  .action(async (branch) => {
36
+ const gitRoot = await getGitRootOrExit();
30
37
  if (branch) {
31
38
  // Create worktree
32
39
  await createCommand(branch, gitRoot);
@@ -40,18 +47,21 @@ async function main() {
40
47
  .command('list')
41
48
  .description('List and manage worktrees across all configured repositories')
42
49
  .action(async () => {
50
+ const gitRoot = await getGitRootOrExit();
43
51
  await listCommand(gitRoot);
44
52
  });
45
53
  program
46
54
  .command('init')
47
55
  .description('Initialize configuration for current repository')
48
56
  .action(async () => {
57
+ const gitRoot = await getGitRootOrExit();
49
58
  await initCommand(gitRoot);
50
59
  });
51
60
  program
52
61
  .command('config')
53
62
  .description('Manage worktree configuration')
54
63
  .action(async () => {
64
+ const gitRoot = await getGitRootOrExit();
55
65
  await configCommand(gitRoot);
56
66
  });
57
67
  await program.parseAsync(process.argv);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,KAAK,UAAU,IAAI;IACjB,qCAAqC;IACrC,IAAI,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAA;IAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,cAAc;IACd,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;IAE1B,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,kEAAkE,CAAC;SAC/E,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnB,OAAO;SACJ,QAAQ,CAAC,UAAU,EAAE,oCAAoC,CAAC;SAC1D,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,MAAe,EAAE,EAAE;QAChC,IAAI,MAAM,EAAE,CAAC;YACX,kBAAkB;YAClB,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,kCAAkC;YAClC,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,aAAa,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEJ,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAuGA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmFlF"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAuGA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FlF"}
@@ -5,7 +5,7 @@ import { execa } from 'execa';
5
5
  import fs from 'fs-extra';
6
6
  import ora from 'ora';
7
7
  import { configManager } from '../config/manager.js';
8
- import { createWorktree } from '../utils/git.js';
8
+ import { createWorktree, setupSubmodulesForBranch } from '../utils/git.js';
9
9
  import { createWorktreeName } from '../utils/sanitize.js';
10
10
  import { initCommand } from './init.js';
11
11
  async function isWorktreeClean(gitRoot) {
@@ -106,6 +106,14 @@ export async function createCommand(branch, gitRoot) {
106
106
  spinner.start('Creating worktree...');
107
107
  await createWorktree(config.basePath, worktreeName, branch, gitRoot);
108
108
  spinner.succeed('Worktree created');
109
+ spinner.start('Setting up submodules...');
110
+ const submodulePaths = await setupSubmodulesForBranch(worktreePath, branch);
111
+ if (submodulePaths.length > 0) {
112
+ spinner.succeed(`Set up ${submodulePaths.length} submodule${submodulePaths.length === 1 ? '' : 's'}`);
113
+ }
114
+ else {
115
+ spinner.info('No submodules found');
116
+ }
109
117
  // Copy .env file if configured
110
118
  if (config.envPath) {
111
119
  spinner.start('Copying environment file...');
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.tsx"],"names":[],"mappings":"AA2EA,wBAAsB,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CvE"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.tsx"],"names":[],"mappings":"AAyFA,wBAAsB,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CvE"}
@@ -1,12 +1,12 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useState } from 'react';
3
- import { render, Box, Text } from 'ink';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
2
  import chalk from 'chalk';
3
+ import { Box, Text, render } from 'ink';
4
+ import { useState } from 'react';
5
+ import { WorktreeList } from '../components/WorktreeList.js';
5
6
  import { configManager } from '../config/manager.js';
7
+ import { enrichWorktreesWithPRInfo, isGhInstalled } from '../utils/gh.js';
6
8
  import { listWorktrees, removeWorktree } from '../utils/git.js';
7
- import { enrichWorktreesWithPRInfo } from '../utils/gh.js';
8
- import { WorktreeList } from '../components/WorktreeList.js';
9
- function ListApp({ repos }) {
9
+ function ListApp({ repos, prInfoUnavailable, }) {
10
10
  const [currentRepoIndex] = useState(0);
11
11
  const [isDeleting, setIsDeleting] = useState(false);
12
12
  const handleDelete = async (paths) => {
@@ -26,7 +26,7 @@ function ListApp({ repos }) {
26
26
  }
27
27
  if (successCount > 0) {
28
28
  console.log(chalk.cyan(`\n✅ Successfully deleted ${successCount} worktree${successCount > 1 ? 's' : ''}!`));
29
- console.log(chalk.gray(`💪 Workspace cleaned up and ready to go!`));
29
+ console.log(chalk.gray('💪 Workspace cleaned up and ready to go!'));
30
30
  }
31
31
  // Refresh the list after deletion
32
32
  setTimeout(() => process.exit(0), 1500);
@@ -37,16 +37,19 @@ function ListApp({ repos }) {
37
37
  if (isDeleting) {
38
38
  return (_jsx(Box, { children: _jsx(Text, { color: "cyan", children: "Deleting worktrees..." }) }));
39
39
  }
40
- return (_jsx(Box, { flexDirection: "column", children: repos.map((repo) => (_jsx(WorktreeList, { worktrees: repo.worktrees, repoName: repo.repoName, repoPath: repo.repoPath, onDelete: handleDelete }, repo.repoPath))) }));
40
+ return (_jsxs(Box, { flexDirection: "column", children: [prInfoUnavailable && (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "yellow", children: "Unable to load PR info, please install GitHub CLI" }) })), repos.map((repo) => (_jsx(WorktreeList, { worktrees: repo.worktrees, repoName: repo.repoName, repoPath: repo.repoPath, onDelete: handleDelete }, repo.repoPath)))] }));
41
41
  }
42
42
  export async function listCommand(currentGitRoot) {
43
43
  const allRepoConfigs = await configManager.getAllRepoConfigs();
44
44
  const repos = [];
45
+ const canLoadPRInfo = await isGhInstalled();
45
46
  // Add current repo first if configured
46
47
  const currentRepoConfig = allRepoConfigs[currentGitRoot];
47
48
  if (currentRepoConfig) {
48
49
  const worktrees = await listWorktrees(currentGitRoot);
49
- await enrichWorktreesWithPRInfo(worktrees, currentGitRoot);
50
+ if (canLoadPRInfo) {
51
+ await enrichWorktreesWithPRInfo(worktrees, currentGitRoot);
52
+ }
50
53
  repos.push({
51
54
  repoPath: currentGitRoot,
52
55
  repoName: currentRepoConfig.name,
@@ -59,14 +62,16 @@ export async function listCommand(currentGitRoot) {
59
62
  continue;
60
63
  try {
61
64
  const worktrees = await listWorktrees(repoPath);
62
- await enrichWorktreesWithPRInfo(worktrees, repoPath);
65
+ if (canLoadPRInfo) {
66
+ await enrichWorktreesWithPRInfo(worktrees, repoPath);
67
+ }
63
68
  repos.push({
64
69
  repoPath,
65
70
  repoName: config.name,
66
71
  worktrees,
67
72
  });
68
73
  }
69
- catch (error) {
74
+ catch {
70
75
  // Skip repos that might have been deleted or are inaccessible
71
76
  console.warn(chalk.yellow(`Warning: Could not access ${config.name} at ${repoPath}`));
72
77
  }
@@ -77,6 +82,6 @@ export async function listCommand(currentGitRoot) {
77
82
  console.log(chalk.gray(' Then create your first worktree with "worktree <branch>"!'));
78
83
  return;
79
84
  }
80
- render(_jsx(ListApp, { repos: repos }));
85
+ render(_jsx(ListApp, { repos: repos, prInfoUnavailable: !canLoadPRInfo }));
81
86
  }
82
87
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Worktree } from '../utils/git.js';
1
+ import type { Worktree } from '../utils/git.js';
2
2
  interface WorktreeListProps {
3
3
  worktrees: Worktree[];
4
4
  repoName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeList.d.ts","sourceRoot":"","sources":["../../src/components/WorktreeList.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,UAAU,iBAAiB;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CACpC;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CA4E1F"}
1
+ {"version":3,"file":"WorktreeList.d.ts","sourceRoot":"","sources":["../../src/components/WorktreeList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE/C,UAAU,iBAAiB;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CACpC;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CA0E1F"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text, useApp, useInput } from 'ink';
2
3
  import { useState } from 'react';
3
- import { Box, Text, useInput, useApp } from 'ink';
4
4
  export function WorktreeList({ worktrees, repoName, repoPath, onDelete }) {
5
5
  const [selectedIndex, setSelectedIndex] = useState(0);
6
6
  const [checkedItems, setCheckedItems] = useState(new Set());
@@ -36,6 +36,6 @@ export function WorktreeList({ worktrees, repoName, repoPath, onDelete }) {
36
36
  if (filteredWorktrees.length === 0) {
37
37
  return (_jsx(Box, { flexDirection: "column", marginY: 1, children: _jsxs(Text, { color: "yellow", children: ["No worktrees found for ", repoName] }) }));
38
38
  }
39
- return (_jsxs(Box, { flexDirection: "column", marginY: 1, children: [_jsx(Box, { borderStyle: "round", borderColor: "cyan", paddingX: 1, children: _jsxs(Text, { bold: true, color: "cyan", children: [repoName, " (", repoPath, ")"] }) }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: filteredWorktrees.map((worktree, index) => (_jsxs(Box, { children: [_jsx(Text, { color: index === selectedIndex ? 'cyan' : 'white', children: index === selectedIndex ? '❯' : ' ' }), _jsx(Text, { children: " " }), _jsx(Text, { children: checkedItems.has(worktree.path) ? '☑' : '☐' }), _jsx(Text, { children: " " }), _jsx(Text, { color: index === selectedIndex ? 'cyan' : 'white', children: worktree.branch || 'detached' }), worktree.isPushed && (_jsx(Text, { color: "green", children: " \u2713 remote" })), worktree.hasPR && (_jsxs(Text, { color: "magenta", children: [" \uD83D\uDD00 PR #", worktree.prNumber] })), !worktree.isPushed && (_jsx(Text, { color: "yellow", children: " \u26A0\uFE0F local only" }))] }, worktree.path))) }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { dimColor: true, children: ["[Space] Select [Enter] Delete Selected (", checkedItems.size, ") [Q] Quit"] }) })] }));
39
+ return (_jsxs(Box, { flexDirection: "column", marginY: 1, children: [_jsx(Box, { borderStyle: "round", borderColor: "cyan", paddingX: 1, children: _jsxs(Text, { bold: true, color: "cyan", children: [repoName, " (", repoPath, ")"] }) }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: filteredWorktrees.map((worktree, index) => (_jsxs(Box, { children: [_jsx(Text, { color: index === selectedIndex ? 'cyan' : 'white', children: index === selectedIndex ? '❯' : ' ' }), _jsx(Text, { children: " " }), _jsx(Text, { children: checkedItems.has(worktree.path) ? '☑' : '☐' }), _jsx(Text, { children: " " }), _jsx(Text, { color: index === selectedIndex ? 'cyan' : 'white', children: worktree.branch || 'detached' }), worktree.isPushed && _jsx(Text, { color: "green", children: " \u2713 remote" }), worktree.hasPR && (_jsxs(Text, { color: worktree.isPRMerged ? 'green' : 'magenta', children: [' ', "\uD83D\uDD00 PR #", worktree.prNumber, worktree.isPRMerged ? ' (Merged)' : ''] })), !worktree.isPushed && _jsx(Text, { color: "yellow", children: " \u26A0\uFE0F local only" })] }, worktree.path))) }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { dimColor: true, children: ["[Space] Select [Enter] Delete Selected (", checkedItems.size, ") [Q] Quit"] }) })] }));
40
40
  }
41
41
  //# sourceMappingURL=WorktreeList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeList.js","sourceRoot":"","sources":["../../src/components/WorktreeList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorktreeList.js","sourceRoot":"","sources":["../../src/components/WorktreeList.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,19 @@
1
+ import type { Worktree } from './git.js';
1
2
  interface PRInfo {
2
3
  number: number;
3
- headRefName: string;
4
4
  state: string;
5
+ headRefName?: string;
6
+ updatedAt?: string;
7
+ updated_at?: string;
8
+ mergedAt?: string | null;
9
+ merged_at?: string | null;
10
+ head?: {
11
+ ref?: string;
12
+ sha?: string;
13
+ };
5
14
  }
6
15
  export declare function isGhInstalled(): Promise<boolean>;
16
+ export declare function enrichWorktreesWithPRInfo(worktrees: Worktree[], gitRoot: string): Promise<void>;
7
17
  export declare function getPRInfo(gitRoot: string): Promise<Map<string, PRInfo>>;
8
- export declare function enrichWorktreesWithPRInfo(worktrees: Array<{
9
- branch?: string;
10
- [key: string]: any;
11
- }>, gitRoot: string): Promise<void>;
12
18
  export {};
13
19
  //# sourceMappingURL=gh.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gh.d.ts","sourceRoot":"","sources":["../../src/utils/gh.ts"],"names":[],"mappings":"AAEA,UAAU,MAAM;IACd,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAOtD;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAyB7E;AAED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,KAAK,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC,EACzD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAYf"}
1
+ {"version":3,"file":"gh.d.ts","sourceRoot":"","sources":["../../src/utils/gh.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,UAAU,MAAM;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAOtD;AAwED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,QAAQ,EAAE,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmC7E"}
package/dist/utils/gh.js CHANGED
@@ -8,34 +8,107 @@ export async function isGhInstalled() {
8
8
  return false;
9
9
  }
10
10
  }
11
+ function pickBestPR(prs) {
12
+ return prs.sort((a, b) => {
13
+ const aIsOpen = a.state.toUpperCase() === 'OPEN';
14
+ const bIsOpen = b.state.toUpperCase() === 'OPEN';
15
+ if (aIsOpen && !bIsOpen)
16
+ return -1;
17
+ if (!aIsOpen && bIsOpen)
18
+ return 1;
19
+ return getPRUpdatedAt(b).localeCompare(getPRUpdatedAt(a));
20
+ })[0];
21
+ }
22
+ function getPRUpdatedAt(pr) {
23
+ return pr.updatedAt ?? pr.updated_at ?? '';
24
+ }
25
+ function getPRState(pr) {
26
+ if (isPRMerged(pr))
27
+ return 'MERGED';
28
+ return pr.state.toUpperCase();
29
+ }
30
+ function isPRMerged(pr) {
31
+ return pr.state.toUpperCase() === 'MERGED' || Boolean(pr.mergedAt ?? pr.merged_at);
32
+ }
33
+ async function getPRForCommit(commit, gitRoot) {
34
+ try {
35
+ const { stdout } = await execa('gh', [
36
+ 'api',
37
+ `repos/:owner/:repo/commits/${commit}/pulls`,
38
+ '--header',
39
+ 'Accept: application/vnd.github+json',
40
+ ], { cwd: gitRoot });
41
+ const prs = JSON.parse(stdout);
42
+ return pickBestPR(prs);
43
+ }
44
+ catch {
45
+ return undefined;
46
+ }
47
+ }
48
+ async function getPRForBranch(branch, gitRoot) {
49
+ try {
50
+ const { stdout } = await execa('gh', [
51
+ 'pr',
52
+ 'list',
53
+ '--state',
54
+ 'all',
55
+ '--head',
56
+ branch,
57
+ '--json',
58
+ 'number,headRefName,state,updatedAt,mergedAt',
59
+ '--limit',
60
+ '100',
61
+ ], { cwd: gitRoot });
62
+ const prs = JSON.parse(stdout);
63
+ return pickBestPR(prs);
64
+ }
65
+ catch {
66
+ return undefined;
67
+ }
68
+ }
69
+ export async function enrichWorktreesWithPRInfo(worktrees, gitRoot) {
70
+ if (!(await isGhInstalled())) {
71
+ return;
72
+ }
73
+ await Promise.all(worktrees.map(async (worktree) => {
74
+ if (!worktree.branch || worktree.isMain)
75
+ return;
76
+ const pr = (worktree.commit ? await getPRForCommit(worktree.commit, gitRoot) : undefined) ??
77
+ (await getPRForBranch(worktree.branch, gitRoot));
78
+ if (pr) {
79
+ worktree.hasPR = true;
80
+ worktree.prNumber = pr.number;
81
+ worktree.prState = getPRState(pr);
82
+ worktree.isPRMerged = isPRMerged(pr);
83
+ }
84
+ }));
85
+ }
11
86
  export async function getPRInfo(gitRoot) {
12
87
  const prMap = new Map();
13
88
  if (!(await isGhInstalled())) {
14
89
  return prMap;
15
90
  }
16
91
  try {
17
- const { stdout } = await execa('gh', ['pr', 'list', '--json', 'number,headRefName,state', '--limit', '100'], { cwd: gitRoot });
92
+ const { stdout } = await execa('gh', [
93
+ 'pr',
94
+ 'list',
95
+ '--state',
96
+ 'all',
97
+ '--json',
98
+ 'number,headRefName,state,updatedAt,mergedAt',
99
+ '--limit',
100
+ '500',
101
+ ], { cwd: gitRoot });
18
102
  const prs = JSON.parse(stdout);
19
103
  for (const pr of prs) {
20
- prMap.set(pr.headRefName, pr);
104
+ if (pr.headRefName) {
105
+ prMap.set(pr.headRefName, pr);
106
+ }
21
107
  }
22
108
  }
23
- catch (error) {
24
- // gh might not be authenticated or repo might not have GitHub remote
25
- // Silently fail and return empty map
109
+ catch {
110
+ // gh might not be authenticated or repo might not have GitHub remote.
26
111
  }
27
112
  return prMap;
28
113
  }
29
- export async function enrichWorktreesWithPRInfo(worktrees, gitRoot) {
30
- const prInfo = await getPRInfo(gitRoot);
31
- for (const worktree of worktrees) {
32
- if (worktree.branch) {
33
- const pr = prInfo.get(worktree.branch);
34
- if (pr) {
35
- worktree.hasPR = true;
36
- worktree.prNumber = pr.number;
37
- }
38
- }
39
- }
40
- }
41
114
  //# sourceMappingURL=gh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gh.js","sourceRoot":"","sources":["../../src/utils/gh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAQ7B,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEvC,IAAI,CAAC,CAAC,MAAM,aAAa,EAAE,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAC5B,IAAI,EACJ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,0BAA0B,EAAE,SAAS,EAAE,KAAK,CAAC,EACtE,EAAE,GAAG,EAAE,OAAO,EAAE,CACjB,CAAA;QAED,MAAM,GAAG,GAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAExC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qEAAqE;QACrE,qCAAqC;IACvC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,SAAyD,EACzD,OAAe;IAEf,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;IAEvC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACtC,IAAI,EAAE,EAAE,CAAC;gBACP,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAA;gBACrB,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAA;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"gh.js","sourceRoot":"","sources":["../../src/utils/gh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAiB7B,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAa;IAC/B,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvB,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;QAChD,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;QAEhD,IAAI,OAAO,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,CAAA;QAClC,IAAI,CAAC,OAAO,IAAI,OAAO;YAAE,OAAO,CAAC,CAAA;QACjC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACP,CAAC;AAED,SAAS,cAAc,CAAC,EAAU;IAChC,OAAO,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAA;AAC5C,CAAC;AAED,SAAS,UAAU,CAAC,EAAU;IAC5B,IAAI,UAAU,CAAC,EAAE,CAAC;QAAE,OAAO,QAAQ,CAAA;IACnC,OAAO,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;AAC/B,CAAC;AAED,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,SAAS,CAAC,CAAA;AACpF,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,OAAe;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAC5B,IAAI,EACJ;YACE,KAAK;YACL,8BAA8B,MAAM,QAAQ;YAC5C,UAAU;YACV,qCAAqC;SACtC,EACD,EAAE,GAAG,EAAE,OAAO,EAAE,CACjB,CAAA;QAED,MAAM,GAAG,GAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,OAAe;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAC5B,IAAI,EACJ;YACE,IAAI;YACJ,MAAM;YACN,SAAS;YACT,KAAK;YACL,QAAQ;YACR,MAAM;YACN,QAAQ;YACR,6CAA6C;YAC7C,SAAS;YACT,KAAK;SACN,EACD,EAAE,GAAG,EAAE,OAAO,EAAE,CACjB,CAAA;QAED,MAAM,GAAG,GAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,SAAqB,EACrB,OAAe;IAEf,IAAI,CAAC,CAAC,MAAM,aAAa,EAAE,CAAC,EAAE,CAAC;QAC7B,OAAM;IACR,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CACf,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM;YAAE,OAAM;QAE/C,MAAM,EAAE,GACN,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,CAAC,MAAM,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QAElD,IAAI,EAAE,EAAE,CAAC;YACP,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAA;YACrB,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAA;YAC7B,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;YACjC,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;QACtC,CAAC;IACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEvC,IAAI,CAAC,CAAC,MAAM,aAAa,EAAE,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAC5B,IAAI,EACJ;YACE,IAAI;YACJ,MAAM;YACN,SAAS;YACT,KAAK;YACL,QAAQ;YACR,6CAA6C;YAC7C,SAAS;YACT,KAAK;SACN,EACD,EAAE,GAAG,EAAE,OAAO,EAAE,CACjB,CAAA;QAED,MAAM,GAAG,GAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAExC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACnB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;IACxE,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -6,8 +6,13 @@ export interface Worktree {
6
6
  isPushed?: boolean;
7
7
  hasPR?: boolean;
8
8
  prNumber?: number;
9
+ prState?: string;
10
+ isPRMerged?: boolean;
9
11
  }
10
12
  export declare function createWorktree(basePath: string, worktreeName: string, branchName: string, gitRoot: string): Promise<void>;
13
+ export declare function checkoutBranch(branchName: string, gitRoot: string): Promise<void>;
14
+ export declare function listSubmodulePaths(gitRoot: string): Promise<string[]>;
15
+ export declare function setupSubmodulesForBranch(gitRoot: string, branchName: string): Promise<string[]>;
11
16
  export declare function listWorktrees(gitRoot: string): Promise<Worktree[]>;
12
17
  export declare function removeWorktree(worktreePath: string, gitRoot: string): Promise<void>;
13
18
  export declare function getAllBranches(gitRoot: string): Promise<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAqDxE;AAED,wBAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOvE"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAiBD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BvF;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgB3E;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAwBnB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAqDxE;AAED,wBAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASvE"}
package/dist/utils/git.js CHANGED
@@ -1,16 +1,29 @@
1
+ import path from 'node:path';
1
2
  import { execa } from 'execa';
2
- import path from 'path';
3
- export async function createWorktree(basePath, worktreeName, branchName, gitRoot) {
4
- const worktreePath = path.join(basePath, worktreeName);
5
- // Check if branch exists
3
+ import fs from 'fs-extra';
4
+ async function fetchRemoteBranch(branchName, gitRoot) {
5
+ await execa('git', ['fetch', 'origin', `${branchName}:refs/remotes/origin/${branchName}`], {
6
+ cwd: gitRoot,
7
+ });
8
+ }
9
+ async function hasLocalBranch(branchName, gitRoot) {
6
10
  try {
7
- await execa('git', ['rev-parse', '--verify', branchName], { cwd: gitRoot });
11
+ await execa('git', ['rev-parse', '--verify', `refs/heads/${branchName}`], { cwd: gitRoot });
12
+ return true;
8
13
  }
9
14
  catch {
15
+ return false;
16
+ }
17
+ }
18
+ export async function createWorktree(basePath, worktreeName, branchName, gitRoot) {
19
+ const worktreePath = path.join(basePath, worktreeName);
20
+ if (!(await hasLocalBranch(branchName, gitRoot))) {
10
21
  // Branch doesn't exist locally, check remote
11
22
  try {
12
- await execa('git', ['fetch', 'origin', branchName], { cwd: gitRoot });
13
- await execa('git', ['worktree', 'add', worktreePath, `origin/${branchName}`], { cwd: gitRoot });
23
+ await fetchRemoteBranch(branchName, gitRoot);
24
+ await execa('git', ['worktree', 'add', '-b', branchName, worktreePath, `origin/${branchName}`], {
25
+ cwd: gitRoot,
26
+ });
14
27
  return;
15
28
  }
16
29
  catch {
@@ -22,6 +35,56 @@ export async function createWorktree(basePath, worktreeName, branchName, gitRoot
22
35
  // Branch exists locally
23
36
  await execa('git', ['worktree', 'add', worktreePath, branchName], { cwd: gitRoot });
24
37
  }
38
+ export async function checkoutBranch(branchName, gitRoot) {
39
+ let hasRemoteBranch = false;
40
+ try {
41
+ await fetchRemoteBranch(branchName, gitRoot);
42
+ hasRemoteBranch = true;
43
+ }
44
+ catch {
45
+ // The submodule may not have a same-named remote branch; fall back to local/current commit.
46
+ }
47
+ if (await hasLocalBranch(branchName, gitRoot)) {
48
+ await execa('git', ['checkout', branchName], { cwd: gitRoot });
49
+ if (hasRemoteBranch) {
50
+ await execa('git', ['pull', '--ff-only', 'origin', branchName], { cwd: gitRoot });
51
+ }
52
+ return;
53
+ }
54
+ if (hasRemoteBranch) {
55
+ await execa('git', ['checkout', '-b', branchName, `origin/${branchName}`], { cwd: gitRoot });
56
+ return;
57
+ }
58
+ // Create new branch from the currently checked-out commit
59
+ await execa('git', ['checkout', '-b', branchName], { cwd: gitRoot });
60
+ }
61
+ export async function listSubmodulePaths(gitRoot) {
62
+ const gitmodulesPath = path.join(gitRoot, '.gitmodules');
63
+ if (!(await fs.pathExists(gitmodulesPath))) {
64
+ return [];
65
+ }
66
+ const { stdout } = await execa('git', ['config', '--file', '.gitmodules', '--get-regexp', 'path'], { cwd: gitRoot });
67
+ return stdout
68
+ .split('\n')
69
+ .map((line) => line.trim().match(/^[^\s]+\s+(.+)$/)?.[1])
70
+ .filter((submodulePath) => Boolean(submodulePath));
71
+ }
72
+ export async function setupSubmodulesForBranch(gitRoot, branchName) {
73
+ const submodulePaths = await listSubmodulePaths(gitRoot);
74
+ if (submodulePaths.length === 0) {
75
+ return [];
76
+ }
77
+ await execa('git', ['submodule', 'update', '--init', '--recursive'], { cwd: gitRoot });
78
+ const checkedOutSubmodulePaths = [];
79
+ for (const submodulePath of submodulePaths) {
80
+ const absoluteSubmodulePath = path.resolve(gitRoot, submodulePath);
81
+ await checkoutBranch(branchName, absoluteSubmodulePath);
82
+ checkedOutSubmodulePaths.push(submodulePath);
83
+ const nestedSubmodulePaths = await setupSubmodulesForBranch(absoluteSubmodulePath, branchName);
84
+ checkedOutSubmodulePaths.push(...nestedSubmodulePaths.map((nestedSubmodulePath) => path.join(submodulePath, nestedSubmodulePath)));
85
+ }
86
+ return checkedOutSubmodulePaths;
87
+ }
25
88
  export async function listWorktrees(gitRoot) {
26
89
  try {
27
90
  const { stdout } = await execa('git', ['worktree', 'list', '--porcelain'], { cwd: gitRoot });
@@ -81,7 +144,9 @@ export async function removeWorktree(worktreePath, gitRoot) {
81
144
  }
82
145
  export async function getAllBranches(gitRoot) {
83
146
  try {
84
- const { stdout } = await execa('git', ['branch', '-a', '--format=%(refname:short)'], { cwd: gitRoot });
147
+ const { stdout } = await execa('git', ['branch', '-a', '--format=%(refname:short)'], {
148
+ cwd: gitRoot,
149
+ });
85
150
  return stdout.split('\n').filter(Boolean);
86
151
  }
87
152
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcadam/worktree",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "A CLI tool for managing Git worktrees across multiple repositories",
5
5
  "main": "dist/cli.js",
6
6
  "type": "module",
@@ -61,7 +61,7 @@
61
61
  "engines": {
62
62
  "node": ">=18.0.0"
63
63
  },
64
- "packageManager": "pnpm@8.12.0",
64
+ "packageManager": "pnpm@11.1.3",
65
65
  "files": [
66
66
  "dist",
67
67
  "bin"