gent-cli 14.0.0 → 20.0.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/README.md +1 -1
- package/package.json +7 -4
- package/src/commands/canonical.js +242 -0
- package/src/commands/clone.js +2 -13
- package/src/commands/pet.js +122 -98
- package/src/commands/pull.js +3 -4
- package/src/commands/push.js +4 -5
- package/src/commands/share.js +40 -15
- package/src/commands/web.js +30 -15
- package/src/index.js +70 -40
- package/src/utils/api-client.js +6 -9
- package/src/utils/attributes.js +280 -0
- package/src/utils/canonical-journal.js +122 -0
- package/src/utils/feature-support.js +92 -0
- package/src/utils/feature-support.json +210 -0
- package/src/utils/gent-ops.js +836 -0
- package/src/utils/git-config.js +606 -0
- package/src/utils/git-index.js +581 -0
- package/src/utils/git-objects.js +537 -0
- package/src/utils/ignore.js +365 -0
- package/src/utils/lockfile.js +219 -0
- package/src/utils/merge-ops.js +282 -0
- package/src/utils/migrate.js +257 -0
- package/src/utils/object-store.js +332 -36
- package/src/utils/packfile.js +812 -0
- package/src/utils/refs.js +595 -0
- package/src/utils/repository.js +533 -0
- package/src/utils/smart-http.js +195 -0
- package/src/utils/stash-ops.js +355 -0
- package/src/utils/user-config.js +10 -0
- package/src/utils/web-urls.js +125 -0
- package/src/utils/worktree.js +676 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifestVersion": 1,
|
|
3
|
+
"formatMarker": "gent-format-13",
|
|
4
|
+
"objectFormat": "sha256",
|
|
5
|
+
"repositoryFormatVersion": 1,
|
|
6
|
+
"notes": "Canonical engine capability declarations, not a claim that every tool/version is verified. CLI consumes this file; server integration is future work. See docs/git-compat/review-fixes.md for tested scope.",
|
|
7
|
+
"features": [
|
|
8
|
+
{
|
|
9
|
+
"id": "object-format.sha256",
|
|
10
|
+
"status": "supported",
|
|
11
|
+
"title": "SHA-256 object format",
|
|
12
|
+
"detail": "extensions.objectFormat=sha256, 32-byte object ids."
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "object-format.sha1",
|
|
16
|
+
"status": "unsupported",
|
|
17
|
+
"title": "SHA-1 repositories",
|
|
18
|
+
"detail": "Gent stores only SHA-256 objects.",
|
|
19
|
+
"remedy": "Convert the repository with a SHA-256 capable Git, or create a new Gent repository and re-import."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "layout.gitfile",
|
|
23
|
+
"status": "supported",
|
|
24
|
+
"title": ".git file pointing at .gent",
|
|
25
|
+
"detail": "Gent-created repositories carry a .git gitfile; discovery follows it."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "layout.gitdir",
|
|
29
|
+
"status": "supported",
|
|
30
|
+
"title": "Conventional .git directory",
|
|
31
|
+
"detail": "Repositories created by ordinary Git clone are opened directly."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "layout.bare",
|
|
35
|
+
"status": "supported",
|
|
36
|
+
"title": "Bare repositories",
|
|
37
|
+
"detail": "core.bare=true; worktree operations refuse."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "layout.worktree-linked",
|
|
41
|
+
"status": "supported",
|
|
42
|
+
"title": "Linked worktrees",
|
|
43
|
+
"detail": "commondir, gitdir and per-worktree HEAD/index are honoured."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "refs.files",
|
|
47
|
+
"status": "supported",
|
|
48
|
+
"title": "files-based refs",
|
|
49
|
+
"detail": "Loose refs plus packed-refs with peeled tags."
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "refs.reftable",
|
|
53
|
+
"status": "unsupported",
|
|
54
|
+
"title": "reftable ref backend",
|
|
55
|
+
"detail": "extensions.refStorage=reftable is not implemented.",
|
|
56
|
+
"remedy": "Set the repository's ref backend to 'files'."
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "objects.loose",
|
|
60
|
+
"status": "supported",
|
|
61
|
+
"title": "Loose objects",
|
|
62
|
+
"detail": "zlib-compressed canonical framing."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "objects.packed",
|
|
66
|
+
"status": "supported",
|
|
67
|
+
"title": "Packfiles (read v2/v3, write v2 full objects)",
|
|
68
|
+
"detail": "OFS_DELTA and REF_DELTA are decoded; Gent emits undeltified packs."
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "objects.alternates",
|
|
72
|
+
"status": "unsupported",
|
|
73
|
+
"title": "objects/info/alternates",
|
|
74
|
+
"detail": "Borrowed object stores are not searched.",
|
|
75
|
+
"remedy": "Run 'git repack -a' in the borrowing repository first."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "index.v2",
|
|
79
|
+
"status": "supported",
|
|
80
|
+
"title": "Index version 2",
|
|
81
|
+
"detail": "Read and write."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "index.v3",
|
|
85
|
+
"status": "supported",
|
|
86
|
+
"title": "Index version 3",
|
|
87
|
+
"detail": "Read only; rewritten as v2 when no v3-only flag is set."
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "index.v4",
|
|
91
|
+
"status": "supported",
|
|
92
|
+
"title": "Index version 4",
|
|
93
|
+
"detail": "Read only (path prefix compression); rewritten as v2."
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "index.split",
|
|
97
|
+
"status": "unsupported",
|
|
98
|
+
"title": "Split index",
|
|
99
|
+
"detail": "The 'link' extension is required and unimplemented.",
|
|
100
|
+
"remedy": "Run 'git update-index --no-split-index'."
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "index.sparse",
|
|
104
|
+
"status": "unsupported",
|
|
105
|
+
"title": "Sparse index / sparse checkout",
|
|
106
|
+
"detail": "'sdir' entries and cone-mode sparsity are unimplemented.",
|
|
107
|
+
"remedy": "Run 'git sparse-checkout disable'."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "index.stages",
|
|
111
|
+
"status": "supported",
|
|
112
|
+
"title": "Conflict stages 1/2/3",
|
|
113
|
+
"detail": "Read and written for merge conflicts."
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"id": "worktree.symlink",
|
|
117
|
+
"status": "supported",
|
|
118
|
+
"title": "Symlinks",
|
|
119
|
+
"detail": "Mode 120000; link target bytes are the blob. On filesystems without symlink support the operation refuses."
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "worktree.executable",
|
|
123
|
+
"status": "supported",
|
|
124
|
+
"title": "Executable bit",
|
|
125
|
+
"detail": "Mode 100755, honouring core.fileMode."
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"id": "worktree.binary",
|
|
129
|
+
"status": "supported",
|
|
130
|
+
"title": "Arbitrary binary content",
|
|
131
|
+
"detail": "No text decoding on any storage path."
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"id": "worktree.gitlink",
|
|
135
|
+
"status": "partial",
|
|
136
|
+
"title": "Submodule gitlinks",
|
|
137
|
+
"detail": "Gitlinks can be parsed and transported as object entries. Worktree mutation involving submodules refuses.",
|
|
138
|
+
"remedy": "Use an external Git for recursive submodule work."
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "attributes.eol",
|
|
142
|
+
"status": "supported",
|
|
143
|
+
"title": "text/eol/crlf attributes",
|
|
144
|
+
"detail": "text, -text, eol=lf, eol=crlf, core.autocrlf and core.eol."
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "attributes.filter",
|
|
148
|
+
"status": "unsupported",
|
|
149
|
+
"title": "clean/smudge filters and Git LFS",
|
|
150
|
+
"detail": "Any path matching a filter= attribute refuses before writing.",
|
|
151
|
+
"remedy": "Check the path out with Git, or unset the filter attribute."
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"id": "ignore",
|
|
155
|
+
"status": "supported",
|
|
156
|
+
"title": ".gitignore / info/exclude / core.excludesFile",
|
|
157
|
+
"detail": "Full pattern syntax including negation, directory-only and ** patterns."
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"id": "tags.lightweight",
|
|
161
|
+
"status": "supported",
|
|
162
|
+
"title": "Lightweight tags",
|
|
163
|
+
"detail": "refs/tags/* pointing at any object."
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"id": "tags.annotated",
|
|
167
|
+
"status": "supported",
|
|
168
|
+
"title": "Annotated tags",
|
|
169
|
+
"detail": "Tag objects, peeled in packed-refs."
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"id": "objects.signed",
|
|
173
|
+
"status": "partial",
|
|
174
|
+
"title": "Signed commits and tags",
|
|
175
|
+
"detail": "gpgsig and other extension headers are byte-preserved. Signatures are not verified and Gent does not create them."
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "transport.smart-http-v0",
|
|
179
|
+
"status": "unsupported",
|
|
180
|
+
"title": "Smart HTTP protocol v0",
|
|
181
|
+
"detail": "Not implemented yet. Canonical remote commands refuse until the server and transport phases are complete."
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"id": "transport.smart-http-v2",
|
|
185
|
+
"status": "unsupported",
|
|
186
|
+
"title": "Smart HTTP protocol v2",
|
|
187
|
+
"detail": "Not implemented. No fallback advertisement is currently served."
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"id": "transport.ssh",
|
|
191
|
+
"status": "unsupported",
|
|
192
|
+
"title": "SSH transport",
|
|
193
|
+
"detail": "Only HTTPS is served.",
|
|
194
|
+
"remedy": "Use the https:// remote URL."
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"id": "transport.shallow",
|
|
198
|
+
"status": "unsupported",
|
|
199
|
+
"title": "Shallow and partial clone",
|
|
200
|
+
"detail": "deepen, deepen-since, deepen-not and filter are not advertised or accepted."
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": "sequencer.external",
|
|
204
|
+
"status": "unsupported",
|
|
205
|
+
"title": "Operating during an external rebase/cherry-pick",
|
|
206
|
+
"detail": "rebase-merge/, rebase-apply/, CHERRY_PICK_HEAD, REVERT_HEAD or BISECT_LOG present.",
|
|
207
|
+
"remedy": "Finish or abort the in-progress Git operation first."
|
|
208
|
+
}
|
|
209
|
+
]
|
|
210
|
+
}
|