worktree-add 2.0.1 → 2.0.3
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/README.md +2 -1
- package/dist/git/create-worktree.d.ts.map +1 -1
- package/dist/git/create-worktree.js +2 -1
- package/dist/git/create-worktree.js.map +1 -1
- package/dist/worktree/untracked-file-copy.d.ts.map +1 -1
- package/dist/worktree/untracked-file-copy.js +18 -0
- package/dist/worktree/untracked-file-copy.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,7 +20,8 @@ Running `worktree-add <branch>` from inside a repo:
|
|
|
20
20
|
- or creates a tracking branch from `origin/<branch>`
|
|
21
21
|
- or creates a new branch from the current `HEAD` (only when the branch does not exist on `origin/`, or when you pass `--offline` and `origin/` can’t be reached)
|
|
22
22
|
7. Copies untracked / ignored files into the new worktree, skipping heavy stuff
|
|
23
|
-
(`node_modules`, `dist`, `.next`, caches, virtualenvs, etc.)
|
|
23
|
+
(`node_modules`, `dist`, `.next`, caches, virtualenvs, etc.) and sockets and
|
|
24
|
+
FIFOs, which can't be copied.
|
|
24
25
|
8. Detects your package manager and installs dependencies with lockfile‑safe flags
|
|
25
26
|
(`npm ci`, `pnpm install --frozen-lockfile`, `yarn install --immutable`, etc.).
|
|
26
27
|
9. If the project uses Next.js and supports it, runs `next typegen`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-worktree.d.ts","sourceRoot":"","sources":["../../src/git/create-worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAUtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,iBAAiB,EAAE,YAAY,CAAC;CAC1C;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wFAAwF;IACxF,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;CACnD;
|
|
1
|
+
{"version":3,"file":"create-worktree.d.ts","sourceRoot":"","sources":["../../src/git/create-worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAUtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,iBAAiB,EAAE,YAAY,CAAC;CAC1C;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wFAAwF;IACxF,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;CACnD;AAwDD,2DAA2D;AAC3D,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE;IACR,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GACA,eAAe,GAAG,SAAS,CA+B7B"}
|
|
@@ -3,8 +3,9 @@ import { git, localBranchExists, normalizeBranchName, readBranchConfig, remoteBr
|
|
|
3
3
|
import { extractDiagnosticLine } from "./extract-diagnostic-line.js";
|
|
4
4
|
function selectWorktreeAddCommand(normalized, destinationDirectory, remoteBranchExistsHint) {
|
|
5
5
|
if (localBranchExists(normalized)) {
|
|
6
|
+
// The bare name checks the branch out; a full `refs/heads/` ref would detach HEAD.
|
|
6
7
|
return {
|
|
7
|
-
args: ["worktree", "add", "--", destinationDirectory,
|
|
8
|
+
args: ["worktree", "add", "--", destinationDirectory, normalized],
|
|
8
9
|
newBranchStartPoint: undefined,
|
|
9
10
|
};
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-worktree.js","sourceRoot":"","sources":["../../src/git/create-worktree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,GAAG,EACH,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAsBrE,SAAS,wBAAwB,CAC/B,UAAkB,EAClB,oBAA4B,EAC5B,sBAA2C;IAE3C,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"create-worktree.js","sourceRoot":"","sources":["../../src/git/create-worktree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,GAAG,EACH,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAsBrE,SAAS,wBAAwB,CAC/B,UAAkB,EAClB,oBAA4B,EAC5B,sBAA2C;IAE3C,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,mFAAmF;QACnF,OAAO;YACL,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,CAAC;YACjE,mBAAmB,EAAE,SAAS;SAC/B,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB,GAAG,sBAAsB,CAAC;IAClD,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,oBAAoB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,4CAA4C,UAAU,aAAa,UAAU,EAAE,EAC/E,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE;gBACJ,UAAU;gBACV,KAAK;gBACL,SAAS;gBACT,IAAI;gBACJ,UAAU;gBACV,IAAI;gBACJ,oBAAoB;gBACpB,UAAU,UAAU,EAAE;aACvB;YACD,mBAAmB,EAAE,uBAAuB,UAAU,EAAE;SACzD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,CAAC;QACvE,mBAAmB,EAAE,MAAM;KAC5B,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,oBAA4B,EAC5B,OAIC;IAED,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,oBAAoB,CAAC;IACvD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC;IACxC,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,wBAAwB,CACtC,UAAU,EACV,oBAAoB,EACpB,OAAO,EAAE,kBAAkB,CAC5B,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1E,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,0FAA0F;IAC1F,MAAM,WAAW,GACf,OAAO,CAAC,mBAAmB,KAAK,SAAS;QACvC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACjD,MAAM,iBAAiB,GACrB,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,EAA6B,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAClG,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErB,MAAM,GAAG,GAAG,cAAc,UAAU,EAAE,CAAC;IACvC,OAAO;QACL,SAAS,EAAE,oBAAoB;QAC/B,aAAa,EACX,WAAW,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,WAAW;YAC7D,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACnE,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"untracked-file-copy.d.ts","sourceRoot":"","sources":["../../src/worktree/untracked-file-copy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"untracked-file-copy.d.ts","sourceRoot":"","sources":["../../src/worktree/untracked-file-copy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAkBtE,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAAE,GACpD,OAAO,CAAC,IAAI,CAAC,CA6Ff"}
|
|
@@ -5,6 +5,16 @@ import { git } from "../git/git.js";
|
|
|
5
5
|
import { fallbackStatusLogger } from "../output/create-status-logger.js";
|
|
6
6
|
import { isGeneratedPath } from "./is-generated-path.js";
|
|
7
7
|
const hasErrorCode = (error, ...codes) => error instanceof Error && "code" in error && codes.includes(String(error.code));
|
|
8
|
+
// Nested clones are copied whole, and fs.cp throws on their sockets (Git's fsmonitor) and FIFOs.
|
|
9
|
+
function describeUncopyableFile(stats) {
|
|
10
|
+
if (stats.isSocket()) {
|
|
11
|
+
return "socket";
|
|
12
|
+
}
|
|
13
|
+
if (stats.isFIFO()) {
|
|
14
|
+
return "FIFO";
|
|
15
|
+
}
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
8
18
|
export async function copyUntrackedFiles(repoRoot, destinationDirectory, options) {
|
|
9
19
|
const logger = options?.logger ?? fallbackStatusLogger;
|
|
10
20
|
const dryRun = options?.dryRun ?? false;
|
|
@@ -64,6 +74,14 @@ export async function copyUntrackedFiles(repoRoot, destinationDirectory, options
|
|
|
64
74
|
force: false,
|
|
65
75
|
mode: constants.COPYFILE_EXCL,
|
|
66
76
|
verbatimSymlinks: true,
|
|
77
|
+
filter: async (source) => {
|
|
78
|
+
const uncopyableFile = describeUncopyableFile(await fs.lstat(source));
|
|
79
|
+
if (uncopyableFile === undefined) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
logger.detail(`Skipped ${path.relative(repoRoot, source)} (${uncopyableFile}).`);
|
|
83
|
+
return false;
|
|
84
|
+
},
|
|
67
85
|
});
|
|
68
86
|
}
|
|
69
87
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"untracked-file-copy.js","sourceRoot":"","sources":["../../src/worktree/untracked-file-copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"untracked-file-copy.js","sourceRoot":"","sources":["../../src/worktree/untracked-file-copy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED