@amalgm/shell 0.1.164-main.40795482467 → 0.1.164-main.40799719727

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.
@@ -13,3 +13,8 @@ export type SpelledLookup = (path: string) => BigIntStats | null | "respelled";
13
13
  /** One attempt's lookups; a directory is listed at most once, and only for a
14
14
  * link found in it. */
15
15
  export declare function spelledLookup(): SpelledLookup;
16
+ /** The one spelling the filesystem holding `directory` stores a name under:
17
+ * letter case folded only where it folds case, normalization only where it
18
+ * folds normalization. The filesystem answers for itself, through one probe
19
+ * directory made in `directory` and looked up under its other spellings. */
20
+ export declare function storedSpelling(directory: string): (name: string) => string;
@@ -8,9 +8,10 @@
8
8
  * spelling is `respelled`, which a lookup cannot settle; only a walk that lists
9
9
  * the directory decides what stands there. Directories on the way are proved by
10
10
  * the rows naming them, and a respelled directory rings its own names. */
11
- import { readdirSync, realpathSync } from "node:fs";
12
- import { basename, dirname } from "node:path";
11
+ import { mkdtempSync, readdirSync, realpathSync, rmdirSync } from "node:fs";
12
+ import { basename, dirname, join } from "node:path";
13
13
  import { optionalLstat } from "../physical-path-witness.js";
14
+ import { physicalKey } from "../source-signature.js";
14
15
  const absent = (error) => ["ENOENT", "ENOTDIR"].includes(error.code ?? "");
15
16
  /** One attempt's lookups; a directory is listed at most once, and only for a
16
17
  * link found in it. */
@@ -56,4 +57,27 @@ export function spelledLookup() {
56
57
  return spelled === null ? null : spelled ? stats : "respelled";
57
58
  };
58
59
  }
60
+ /** The one spelling the filesystem holding `directory` stores a name under:
61
+ * letter case folded only where it folds case, normalization only where it
62
+ * folds normalization. The filesystem answers for itself, through one probe
63
+ * directory made in `directory` and looked up under its other spellings. */
64
+ export function storedSpelling(directory) {
65
+ const probe = mkdtempSync(join(directory, ".amalgm-É-"));
66
+ try {
67
+ const key = physicalKey(optionalLstat(probe));
68
+ const folds = (spelling) => {
69
+ const found = optionalLstat(join(directory, spelling));
70
+ return found !== null && physicalKey(found) === key;
71
+ };
72
+ const folded = basename(probe).toLowerCase(), decomposed = basename(probe).normalize("NFD");
73
+ const foldsCase = folds(folded), foldsNormalization = folds(decomposed);
74
+ return name => {
75
+ const normal = foldsNormalization ? name.normalize("NFC") : name;
76
+ return foldsCase ? normal.toLowerCase() : normal;
77
+ };
78
+ }
79
+ finally {
80
+ rmdirSync(probe);
81
+ }
82
+ }
59
83
  //# sourceMappingURL=spelled-lookup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spelled-lookup.js","sourceRoot":"","sources":["../../src/detection/spelled-lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;0EAS0E;AAC1E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAoB,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,MAAM,MAAM,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAE,KAA+B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAExH;uBACuB;AACvB,MAAM,UAAU,aAAa;IAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsC,CAAC;IAC/D,MAAM,MAAM,GAAG,CAAC,SAAiB,EAA8B,EAAE;QAC/D,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC;gBAAC,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAAC,KAAK,GAAG,IAAI,CAAC;YAAC,CAAC;YACjH,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF;kBACc;IACd,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,KAAkB,EAAkB,EAAE;QACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC;YAAC,OAAO,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IAC9H,CAAC,CAAC;IACF,OAAO,IAAI,CAAC,EAAE;QACZ,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;IACjE,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"spelled-lookup.js","sourceRoot":"","sources":["../../src/detection/spelled-lookup.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,11 @@ export interface HeldRepository {
5
5
  readonly absolutePath: string;
6
6
  readonly transportVersion: string | null;
7
7
  }
8
- export declare function groundGitOwners(database: Database.Database | null, observed?: () => readonly HeldRepository[]): GitOwners;
8
+ export interface WalkedRoot {
9
+ readonly root: string;
10
+ readonly repositories: () => readonly HeldRepository[];
11
+ }
12
+ /** The real path of where `path` stands or will stand: its nearest existing
13
+ * ancestor's real path, with the rest of its names; null when none stands. */
14
+ export declare function realPlace(path: string): Promise<string | null>;
15
+ export declare function groundGitOwners(database: Database.Database | null, walked?: WalkedRoot | null): GitOwners;
@@ -1,13 +1,32 @@
1
1
  /** The repositories this machine's ground holds (home.ts), from its observed
2
- * rows: each one's checkout and the transport version of its last state. A
3
- * Detect pass names the repositories it has observed but not yet stored,
4
- * which come first; a cold one has no database yet. */
2
+ * rows: each one's checkout and the transport version of its last state, and
3
+ * the roots of the ground they stand in. A Detect pass walking a root names
4
+ * it and the repositories it has observed but not yet stored, which come
5
+ * first; a cold one has no database yet. */
5
6
  import { realpath } from "node:fs/promises";
6
- export function groundGitOwners(database, observed = () => []) {
7
+ import { basename, dirname, join, resolve, sep } from "node:path";
8
+ /** The real path of where `path` stands or will stand: its nearest existing
9
+ * ancestor's real path, with the rest of its names; null when none stands. */
10
+ export async function realPlace(path) {
11
+ for (let at = resolve(path), rest = [];;) {
12
+ const real = await realpath(at).catch(() => null);
13
+ if (real !== null)
14
+ return join(real, ...rest);
15
+ if (dirname(at) === at)
16
+ return null;
17
+ rest = [basename(at), ...rest];
18
+ at = dirname(at);
19
+ }
20
+ }
21
+ export function groundGitOwners(database, walked = null) {
7
22
  const all = database?.prepare(`SELECT uuid, absolute_path AS absolutePath, transport_version AS transportVersion
8
23
  FROM entities WHERE type = 'repo.git' AND status = 'active'`);
9
24
  const byUuid = database?.prepare(`SELECT uuid, absolute_path AS absolutePath, transport_version AS transportVersion
10
25
  FROM entities WHERE uuid = ? AND type = 'repo.git' AND status = 'active' LIMIT 1`);
26
+ // Each root's own row is its binding.
27
+ const roots = database?.prepare(`SELECT e.absolute_path AS absolutePath FROM ground_roots g
28
+ CROSS JOIN entities e ON e.uuid = g.root_uuid AND e.root_uuid = g.root_uuid WHERE e.status = 'active'`);
29
+ const observed = () => walked?.repositories() ?? [];
11
30
  return {
12
31
  async uuidAt(checkout) {
13
32
  for (const held of [...observed(), ...all?.all() ?? []]) {
@@ -20,6 +39,19 @@ export function groundGitOwners(database, observed = () => []) {
20
39
  const held = observed().find(repository => repository.uuid === uuid) ?? byUuid?.get(uuid);
21
40
  return held ? { checkout: held.absolutePath, transportVersion: held.transportVersion } : null;
22
41
  },
42
+ async ground(path) {
43
+ const real = await realPlace(path);
44
+ if (real === null)
45
+ return null;
46
+ let found = null;
47
+ for (const root of [...walked ? [walked.root] : [], ...(roots?.all() ?? [])
48
+ .map(row => row.absolutePath)]) {
49
+ const at = await realpath(root).catch(() => null);
50
+ if (at !== null && (real === at || real.startsWith(`${at}${sep}`)) && at.length > (found?.length ?? -1))
51
+ found = at;
52
+ }
53
+ return found && found.split(sep).join("/");
54
+ },
23
55
  };
24
56
  }
25
57
  //# sourceMappingURL=ground-owners.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ground-owners.js","sourceRoot":"","sources":["../../src/git/ground-owners.ts"],"names":[],"mappings":"AAAA;;;uDAGuD;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAU5C,MAAM,UAAU,eAAe,CAAC,QAAkC,EAChE,WAA4C,GAAG,EAAE,CAAC,EAAE;IACpD,MAAM,GAAG,GAAG,QAAQ,EAAE,OAAO,CAAC;gEACgC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,CAAC;qFACkD,CAAC,CAAC;IACrF,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,QAAQ;YACnB,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,QAAQ,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAsB,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC5E,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC,IAAI,CAAC;YACzF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,EAAE,GAAG,CAAC,IAAI,CAA+B,CAAC;YACxH,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAChG,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ground-owners.js","sourceRoot":"","sources":["../../src/git/ground-owners.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,9 @@ export interface GitOwners {
11
11
  readonly checkout: string;
12
12
  readonly transportVersion: string | null;
13
13
  } | null>;
14
+ /** The real path, with `/` between its names, of the ground holding
15
+ * `path`, which stands here; null when no ground does. */
16
+ ground(path: string): Promise<string | null>;
14
17
  }
15
18
  export type GitPlace = {
16
19
  readonly home: GitHome | null;
@@ -1 +1 @@
1
- {"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/git/home.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/git/home.ts"],"names":[],"mappings":"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"}
@@ -31,9 +31,11 @@ export declare function namesPromisor(repository: GitRepository): Promise<boolea
31
31
  * Git, and each of its files goes to `kept`. Git seals them read-only, and
32
32
  * Windows flushes only through a handle that may write, so Git's own flush is
33
33
  * the only one they get. Otherwise, as `git fetch` does, a small pack is
34
- * stored loose. Returns the keep file that guards a kept pack until its refs
35
- * are written. */
36
- export declare function installPack(repository: GitRepository, pack: Uint8Array, promisor: boolean, kept: ((path: string) => void) | null): Promise<string | null>;
34
+ * stored loose, except one bringing objects the repository borrows now and
35
+ * is to keep itself (`whole`): loose, Git stores none it can already read.
36
+ * Returns the keep file that guards a kept pack until its refs are
37
+ * written. */
38
+ export declare function installPack(repository: GitRepository, pack: Uint8Array, promisor: boolean, kept: ((path: string) => void) | null, whole: boolean): Promise<string | null>;
37
39
  /** Fails unless every object the roots reach stands here. */
38
40
  export declare function checkConnected(repository: GitRepository, roots: readonly string[]): Promise<void>;
39
41
  /** Whether every object the roots reach stands here. Git answers a missing
@@ -9,6 +9,11 @@
9
9
  * stand. Each command names the repository's worktree (atStorage), since
10
10
  * objects are storage, wherever the configuration places the worktree.
11
11
  *
12
+ * Objects a repository borrows (`objects/info/alternates`) are its lender's,
13
+ * and travel with the lender: the pack holds only what the repository keeps
14
+ * itself (`--local`), and is thin against nothing it might borrow, so a
15
+ * receiver whose lender has yet to bring them waits for it (rail.ts).
16
+ *
12
17
  * A partial clone lacks the objects its promisor remote keeps, as `git clone
13
18
  * --filter` leaves them. Its pack carries what it holds
14
19
  * (`--missing=allow-promisor`), and a receiver whose configuration names a
@@ -53,10 +58,11 @@ export async function packRepository(repository, parentRoots, sharedRoots, named
53
58
  const excludes = born && held.includes(head) ? withTree(held) : held;
54
59
  const shared = born && !held.includes(head) && sharedHeld.includes(head) ? withTree(sharedHeld) : sharedHeld;
55
60
  const indexes = indexRead ? ["--indexed-objects"] : [];
61
+ const thin = existsSync(join(repository.commonDir, "objects", "info", "alternates")) ? [] : ["--thin"];
56
62
  const [indexed, pack] = await Promise.all([
57
63
  indexRead ? runGit(repository.worktree, ["rev-list", "--objects", "--no-object-names", "--indexed-objects",
58
64
  "--missing=allow-promisor", ...born ? [`^${tree}`] : []], transport) : Buffer.alloc(0),
59
- runGit(repository.worktree, ["pack-objects", "--revs", "--all", "--reflog", ...indexes, "--thin",
65
+ runGit(repository.worktree, ["pack-objects", "--revs", "--all", "--reflog", ...indexes, ...thin, "--local",
60
66
  "--missing=allow-promisor", "--stdout", "--delta-base-offset", "-q"], { ...transport, input: oidLines([...found, "--not", ...excludes, ...shared]) }),
61
67
  ]);
62
68
  return { roots: [...new Set([...lines(tips), ...lines(indexed), ...found])].sort(), excludes, shared, pack };
@@ -94,13 +100,15 @@ function flushingPacks() {
94
100
  * Git, and each of its files goes to `kept`. Git seals them read-only, and
95
101
  * Windows flushes only through a handle that may write, so Git's own flush is
96
102
  * the only one they get. Otherwise, as `git fetch` does, a small pack is
97
- * stored loose. Returns the keep file that guards a kept pack until its refs
98
- * are written. */
99
- export async function installPack(repository, pack, promisor, kept) {
103
+ * stored loose, except one bringing objects the repository borrows now and
104
+ * is to keep itself (`whole`): loose, Git stores none it can already read.
105
+ * Returns the keep file that guards a kept pack until its refs are
106
+ * written. */
107
+ export async function installPack(repository, pack, promisor, kept, whole) {
100
108
  const count = gitPackObjectCount(pack);
101
109
  if (count === 0)
102
110
  return null;
103
- if (!kept && count < UNPACK_LIMIT && !promisor) {
111
+ if (!kept && !whole && count < UNPACK_LIMIT && !promisor) {
104
112
  await runGit(repository.worktree, ["unpack-objects", "-q"], { purpose: "transport", profile: atStorage(repository), input: pack });
105
113
  return null;
106
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"objects.js","sourceRoot":"","sources":["../../src/git/objects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"objects.js","sourceRoot":"","sources":["../../src/git/objects.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,9 @@ export interface GitUpload {
44
44
  /** The artifact for a detected state, following `parent`. A linked
45
45
  * worktree's pack is also thin against its main checkout's last state,
46
46
  * `main`. A refused repository's carries no pack and reaches what its
47
- * parent's reached. */
47
+ * parent's reached. One that changes what it borrows from carries all it
48
+ * keeps itself: what its parent reached, a receiver may hold only through
49
+ * storage it no longer borrows. */
48
50
  export declare function uploadGit(worktree: string, change: GitChange, parent: GitNotebook | null, main?: GitNotebook | null): Promise<GitUpload>;
49
51
  /** Apply cannot act yet: the repository holds a state Git itself refuses, a
50
52
  * lock a running Git command holds, or another object format, each ended by
@@ -57,11 +59,13 @@ export declare class GitApplyWait extends Error {
57
59
  /** Bytes of the artifact a transport version names, from any store. */
58
60
  export type GitArtifactSource = (transportVersion: string) => Promise<Uint8Array>;
59
61
  /** How Add builds a repository, in private ground it reveals later: where a
60
- * path built there will stand once revealed, and the files of each pack Git
61
- * kept and flushed there (objects.ts installPack), which the reveal's one
62
- * barrier takes as flushed. */
62
+ * path built there will stand once revealed, where a path that will stand
63
+ * there is built, and the files of each pack Git kept and flushed there
64
+ * (objects.ts installPack), which the reveal's one barrier takes as
65
+ * flushed. */
63
66
  export interface GitClone {
64
67
  readonly placedAt: (path: string) => string;
68
+ readonly builtAt: (path: string) => string;
65
69
  readonly kept: (path: string) => void;
66
70
  }
67
71
  /** The notebook of a recorded or applied artifact: what Detect compares the
package/dist/git/rail.js CHANGED
@@ -17,12 +17,18 @@
17
17
  *
18
18
  * A linked worktree's or absorbed submodule's Git directory lives inside
19
19
  * another repository's (home.ts), so each step also asks `owners` which
20
- * repository that is and where it stands here. */
20
+ * repository that is and where it stands here.
21
+ *
22
+ * A repository that borrows objects (`objects/info/alternates`, as `git
23
+ * clone --shared` writes it) borrows them on every machine from the same
24
+ * repository, placed in each machine's ground (@amalgm/live
25
+ * git/alternates.ts). The lender's objects travel with the lender, so a
26
+ * borrower whose lender has yet to bring them waits for its Apply. */
21
27
  import { createHash } from "node:crypto";
22
- import { mkdir, open as openFile, rename, rm, rmdir, stat } from "node:fs/promises";
23
- import { dirname, join, relative } from "node:path";
28
+ import { mkdir, open as openFile, readFile, realpath, rename, rm, rmdir, stat } from "node:fs/promises";
29
+ import { dirname, isAbsolute, join, relative, resolve } from "node:path";
24
30
  import { LOCAL_DIR_NAME } from "@amalgm/core/identity";
25
- import { decodeGitArtifact, decodeGitArtifactHead, encodeGitArtifact, GIT_ARTIFACT_PREFIX, gitApplyPlan, gitArtifactHeadLength, gitBlobs, gitChainBlobs, gitChainPacks, gitNamedObjects, gitNewBlobs, gitSharesObjects, gitStateId, gitTransportVersion, isGitConfigurationPath, isGitNamingPath, } from "@amalgm/live";
31
+ import { decodeGitArtifact, decodeGitArtifactHead, encodeGitArtifact, GIT_ALTERNATES_PATH, GIT_ARTIFACT_PREFIX, gitApplyPlan, gitArtifactHeadLength, gitBlobs, gitChainBlobs, gitChainPacks, gitNamedObjects, gitNewBlobs, gitSharesObjects, gitStateId, gitTransportVersion, isGitConfigurationPath, isGitNamingPath, } from "@amalgm/live";
26
32
  import { claimWorktreeGitDir, gitHome, homeGitDir, linkSubmodule, linkWorktree } from "./home.js";
27
33
  import { checkConnected, holdsReach, installPack, namesPromisor, packRepository, releaseKeep } from "./objects.js";
28
34
  import { readGitState } from "./read-state.js";
@@ -56,7 +62,7 @@ async function meet(worktree, owners, last) {
56
62
  /** The repository's state where its Git directory lives. */
57
63
  async function readHere(worktree, owners, last) {
58
64
  const met = await meet(worktree, owners, last) ?? absent(worktree);
59
- return "unsupported" in met ? met : readGitState(met.repository, met.home);
65
+ return "unsupported" in met ? met : readGitState(met.repository, met.home, await owners.ground(worktree));
60
66
  }
61
67
  /** Keeps the bytes of every file the notebook's state lacks, which an upload
62
68
  * carries, and of every file naming objects, which an upload packs. */
@@ -65,7 +71,7 @@ export async function detectGit(worktree, notebook, owners) {
65
71
  if ("unsupported" in met)
66
72
  return { kind: "unsupported", reason: met.unsupported };
67
73
  const held = notebook ? gitBlobs(notebook.state) : new Set();
68
- const read = await readGitState(met.repository, met.home, (path, oid) => !held.has(oid) || isGitNamingPath(path));
74
+ const read = await readGitState(met.repository, met.home, await owners.ground(worktree), (path, oid) => !held.has(oid) || isGitNamingPath(path));
69
75
  if ("unsupported" in read)
70
76
  return { kind: "unsupported", reason: read.unsupported };
71
77
  const stateId = gitStateId(read.reading.state, sha256);
@@ -78,17 +84,22 @@ export async function gitStateIdOf(worktree, owners, last = async () => null) {
78
84
  const read = await readHere(worktree, owners, last);
79
85
  return "unsupported" in read ? read : { stateId: gitStateId(read.reading.state, sha256) };
80
86
  }
87
+ /** What a state borrows objects from: its alternates file's blob. */
88
+ const borrows = (state) => state.files.find(file => file.path === GIT_ALTERNATES_PATH)?.oid ?? null;
81
89
  /** The artifact for a detected state, following `parent`. A linked
82
90
  * worktree's pack is also thin against its main checkout's last state,
83
91
  * `main`. A refused repository's carries no pack and reaches what its
84
- * parent's reached. */
92
+ * parent's reached. One that changes what it borrows from carries all it
93
+ * keeps itself: what its parent reached, a receiver may hold only through
94
+ * storage it no longer borrows. */
85
95
  export async function uploadGit(worktree, change, parent, main = null) {
86
96
  const { state, bytes: held } = change.reading;
87
97
  const named = state.files.flatMap(file => file.oid !== null && isGitNamingPath(file.path)
88
98
  ? gitNamedObjects(state.format, held.get(file.oid)) : []);
99
+ const thinAgainst = parent && borrows(parent.state) === borrows(state) ? parent.roots : [];
89
100
  const { roots, excludes, shared, pack } = change.refused
90
101
  ? { roots: parent?.roots ?? [], excludes: parent?.roots ?? [], shared: [], pack: new Uint8Array() }
91
- : await packRepository(await open(worktree), parent?.roots ?? [], gitSharesObjects(state) ? main?.roots ?? [] : [], named, change.reading.indexRead);
102
+ : await packRepository(await open(worktree), thinAgainst, gitSharesObjects(state) ? main?.roots ?? [] : [], named, change.reading.indexRead);
92
103
  const blobs = new Map(gitNewBlobs(state, parent?.state ?? null).map(oid => {
93
104
  const found = held.get(oid);
94
105
  if (!found)
@@ -177,7 +188,8 @@ export async function applyGit(worktree, target, source, known, owners, clone =
177
188
  };
178
189
  const top = await artifact(target);
179
190
  const { home } = top.state;
180
- const install = (repository, objects, synced, kept = clone?.kept ?? null) => installState(repository, objects, target, top, artifact, synced, kept);
191
+ const here = { ground: await owners.ground(worktree), owners, builtAt: clone?.builtAt ?? (path => path) };
192
+ const install = (repository, objects, synced, kept = clone?.kept ?? null) => installState(repository, objects, target, top, artifact, synced, here, kept);
181
193
  const finish = async () => verify(worktree, target, top, owners);
182
194
  const standing = async (met) => {
183
195
  if ("unsupported" in met)
@@ -217,7 +229,7 @@ export async function applyGit(worktree, target, source, known, owners, clone =
217
229
  }
218
230
  await linkWorktree(worktree, placed.gitDir, placedAt);
219
231
  // Read where it was written: the links may name where it will stand.
220
- return verifyAt(repository, target, top, home);
232
+ return verifyAt(repository, target, top, home, here.ground);
221
233
  }
222
234
  if (placed && await exists(placed.gitDir)) {
223
235
  // The Git directory a deinit left where this submodule's goes is its.
@@ -257,14 +269,41 @@ const exists = (path) => stat(path).then(() => true, error => {
257
269
  return false;
258
270
  throw error;
259
271
  });
260
- /** Writes the configuration, then installs the packs the Git directory
272
+ /** What Git reads before it acts: the configuration the repository will
273
+ * hold, and the storage it will borrow objects from, as `git clone --shared`
274
+ * writes both before it fetches. Storage it stops borrowing from is let go
275
+ * with the other files, once its own packs hold what it borrowed. */
276
+ const readFirst = (step) => isGitConfigurationPath(step.path) || step.path === GIT_ALTERNATES_PATH && step.target !== null;
277
+ const LENT = "/.git/objects";
278
+ /** The storage the repository borrows from, written first: where Add builds
279
+ * each place it names meanwhile, and the checkouts of the repositories
280
+ * lending it. */
281
+ async function borrowedBy(repository, here) {
282
+ const named = (await readFile(join(repository.gitDir, GIT_ALTERNATES_PATH), "utf8").catch(() => "")).split("\n")
283
+ .filter(line => isAbsolute(line)).map(line => resolve(line));
284
+ return {
285
+ built: named.flatMap(place => here.builtAt(place) === place ? [] : [here.builtAt(place)]),
286
+ lenders: named.flatMap(place => place.endsWith(LENT) ? [here.builtAt(place.slice(0, -LENT.length))] : []),
287
+ };
288
+ }
289
+ /** The first repository held here whose checkout is one of `lenders`. */
290
+ async function heldLender(lenders, owners) {
291
+ for (const checkout of lenders) {
292
+ const uuid = await owners.uuidAt(await realpath(checkout).catch(() => checkout));
293
+ if (uuid)
294
+ return uuid;
295
+ }
296
+ return null;
297
+ }
298
+ /** Writes what Git reads first, then installs the packs the Git directory
261
299
  * lacks into `objects`, its storage, then writes the plan's other files, each
262
300
  * from bytes already here when it can. */
263
- async function installState(repository, objects, target, top, artifact, known, keptPack) {
301
+ async function installState(repository, storage, target, top, artifact, known, here, keptPack) {
264
302
  const goal = top.state;
265
303
  const goalFiles = new Map([...goal.files, ...goal.index?.files ?? []].map(file => [file.path, file]));
266
304
  const goalBlobs = gitBlobs(goal);
267
- const read = await readGitState(repository, goal.home, (path, oid) => goalBlobs.has(oid) && goalFiles.get(path)?.oid !== oid);
305
+ const { ground } = here;
306
+ const read = await readGitState(repository, goal.home, ground, (path, oid) => goalBlobs.has(oid) && goalFiles.get(path)?.oid !== oid);
268
307
  if ("unsupported" in read)
269
308
  throw new GitApplyWait(`${repository.worktree} holds ${read.unsupported}; Apply waits for it to change`);
270
309
  const { state: current, bytes: kept } = read.reading;
@@ -290,17 +329,23 @@ async function installState(repository, objects, target, top, artifact, known, k
290
329
  ...written.map(file => ({ path: file.path, basis: cleared.has(file.path) ? null : held.get(file.path) ?? null, target: file })),
291
330
  ...removals.map(file => ({ path: file.path, basis: file, target: null })),
292
331
  ];
293
- // Git acts under the configuration the repository will hold.
332
+ const write = (step) => writeGitStep(repository.gitDir, step, bytes, ground);
294
333
  for (const step of steps)
295
- if (isGitConfigurationPath(step.path))
296
- await writeGitStep(repository.gitDir, step, bytes);
334
+ if (readFirst(step))
335
+ await write(step);
336
+ // While Add builds a lender in private, Git borrows from it there.
337
+ const borrowed = await borrowedBy(repository, here);
338
+ const objects = borrowed.built.length > 0 ? { ...storage, borrowing: borrowed.built } : storage;
297
339
  if (await gitRefuses(objects)) {
298
340
  // No Git acts here, and the sender's, refusing alike, packed nothing.
299
341
  for (const step of steps)
300
- await writeGitStep(repository.gitDir, step, bytes);
342
+ await write(step);
301
343
  return;
302
344
  }
303
- const chain = await gitChainPacks(target, artifact, oids => holdsReach(objects, oids));
345
+ // What stands here borrowed counts only while the goal borrows it alike:
346
+ // otherwise the chain reaches a pack that carries all the goal keeps.
347
+ const lendsAlike = borrows(current) === borrows(goal);
348
+ const chain = await gitChainPacks(target, artifact, lendsAlike ? oids => holdsReach(objects, oids) : async () => false);
304
349
  if (!chain.ok)
305
350
  throw new Error(chain.error);
306
351
  if (chain.value.kind === "owner") {
@@ -310,17 +355,22 @@ async function installState(repository, objects, target, top, artifact, known, k
310
355
  const keeps = [];
311
356
  try {
312
357
  for (const pack of chain.value.packs) {
313
- const keep = await installPack(objects, pack, promisor, keptPack);
358
+ const keep = await installPack(objects, pack, promisor, keptPack, !lendsAlike);
314
359
  if (keep)
315
360
  keeps.push(keep);
316
361
  }
317
362
  // The shallow file bounds Git's walk, so it stands before the walk runs.
318
363
  for (const step of steps)
319
364
  if (step.path === "shallow")
320
- await writeGitStep(repository.gitDir, step, bytes);
365
+ await write(step);
366
+ if (borrowed.lenders.length > 0 && !await holdsReach(objects, top.roots)) {
367
+ const lender = await heldLender(borrowed.lenders, here.owners);
368
+ if (lender)
369
+ throw new GitApplyWait(`${repository.worktree} borrows objects repository ${lender} has yet to bring`, lender);
370
+ }
321
371
  await checkConnected(objects, top.roots);
322
372
  for (const step of steps)
323
- await writeGitStep(repository.gitDir, step, bytes);
373
+ await write(step);
324
374
  }
325
375
  finally {
326
376
  await Promise.all(keeps.map(releaseKeep));
@@ -329,7 +379,7 @@ async function installState(repository, objects, target, top, artifact, known, k
329
379
  /** Reads the repository where it stands; one Git refuses holds the format
330
380
  * and home of the state just written. */
331
381
  const verify = (worktree, transportVersion, artifact, owners) => proved(worktree, transportVersion, artifact, readHere(worktree, owners, async () => artifact.state));
332
- const verifyAt = (repository, transportVersion, artifact, home) => proved(repository.worktree, transportVersion, artifact, readGitState(repository, home));
382
+ const verifyAt = (repository, transportVersion, artifact, home, ground) => proved(repository.worktree, transportVersion, artifact, readGitState(repository, home, ground));
333
383
  async function proved(worktree, transportVersion, artifact, reading) {
334
384
  const read = await reading;
335
385
  const stateId = gitStateId(artifact.state, sha256);
@@ -1 +1 @@
1
- {"version":3,"file":"rail.js","sourceRoot":"","sources":["../../src/git/rail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rail.js","sourceRoot":"","sources":["../../src/git/rail.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,11 @@ export type GitReadResult = {
13
13
  } | {
14
14
  readonly unsupported: string;
15
15
  };
16
- /** Reads the state of a Git directory that lives at `home` (home.ts).
17
- * `keep` names the blobs whose bytes the caller needs, given each file's
18
- * path and blob. */
19
- export declare function readGitState(repository: GitRepository, home: GitHome | null, keep?: (path: string, oid: string) => boolean): Promise<GitReadResult>;
16
+ /** Reads the state of a Git directory that lives at `home` (home.ts), in
17
+ * the ground whose real path is `ground` (null for none). `keep` names the
18
+ * blobs whose bytes the caller needs, given each file's path and blob. */
19
+ export declare function readGitState(repository: GitRepository, home: GitHome | null, ground: string | null, keep?: (path: string, oid: string) => boolean): Promise<GitReadResult>;
20
+ /** A file's bytes as they travel, from those standing here. */
21
+ export declare const travelling: (path: string, ground: string | null) => (bytes: Buffer) => Buffer;
20
22
  /** Git's blob ID of these bytes, in SHA-256 whatever the repository's format. */
21
23
  export declare const blobId: (bytes: Buffer) => string;