@@ -51,15 +51,24 @@ default = ["max-performance-safe", "comfort", "basic", "extras"]
51
51
basic = [" blob-diff" , " revision" ]
52
52
53
53
# # Various additional features and capabilities that are not necessarily part of what most users would need.
54
- extras = [" worktree-stream" , " worktree-archive" , " revparse-regex" , " mailmap" ]
54
+ extras = [" worktree-stream" , " worktree-archive" , " revparse-regex" , " mailmap" , " excludes " , " attributes " , " worktree-mutation " ]
55
55
56
56
# # Various progress-related features that improve the look of progress message units.
57
57
comfort = [" gix-features/progress-unit-bytes" , " gix-features/progress-unit-human-numbers" ]
58
58
59
59
# ! #### Components
60
60
# !
61
61
# ! A component is a distinct feature which may be comprised of one or more methods around a particular topic.
62
- # ! Providers of libraries should only activate
62
+ # ! Providers of libraries should only activate the components they need.
63
+
64
+ # # Various ways to alter the worktree makeup by checkout and reset.
65
+ worktree-mutation = [" attributes" , " dep:gix-worktree-state" ]
66
+
67
+ # # Retrieve a worktree stack for querying exclude information
68
+ excludes = [" dep:gix-ignore" , " dep:gix-worktree" ]
69
+
70
+ # # Query attributes and excludes. Enables access to pathspecs, worktree checkouts, filter-pipelines and submodules.
71
+ attributes = [" excludes" , " dep:gix-filter" , " dep:gix-pathspec" , " dep:gix-attributes" , " dep:gix-submodule" , " gix-worktree?/attributes" ]
63
72
64
73
# # Add support for mailmaps, as way of determining the final name of commmiters and authors.
65
74
mailmap = [" dep:gix-mailmap" ]
@@ -76,13 +85,13 @@ revparse-regex = ["regex", "revision"]
76
85
blob-diff = [" gix-diff/blob" ]
77
86
78
87
# # Make it possible to turn a tree into a stream of bytes, which can be decoded to entries and turned into various other formats.
79
- worktree-stream = [" gix-worktree-stream" ]
88
+ worktree-stream = [" gix-worktree-stream" , " attributes " ]
80
89
81
90
# # Create archives from a tree in the repository, similar to what `git archive` does.
82
91
# #
83
92
# # Note that we disable all default features which strips it off all container support, like `tar` and `zip`.
84
93
# # Your application should add it as dependency and re-activate the desired features.
85
- worktree-archive = [" gix-archive" , " worktree-stream" ]
94
+ worktree-archive = [" gix-archive" , " worktree-stream" , " attributes " ]
86
95
87
96
# ! #### Mutually Exclusive Network Client
88
97
# !
@@ -91,11 +100,11 @@ worktree-archive = ["gix-archive", "worktree-stream"]
91
100
# ! Making a choice here also affects which crypto-library ends up being used.
92
101
93
102
# # Make `gix-protocol` available along with an async client.
94
- async-network-client = [" gix-protocol/async-client" , " gix-pack/streaming-input" ]
103
+ async-network-client = [" gix-protocol/async-client" , " gix-pack/streaming-input" , " attributes " ]
95
104
# # Use this if your crate uses `async-std` as runtime, and enable basic runtime integration when connecting to remote servers via the `git://` protocol.
96
105
async-network-client-async-std = [" async-std" , " async-network-client" , " gix-transport/async-std" ]
97
106
# # Make `gix-protocol` available along with a blocking client, providing access to the `file://`, git://` and `ssh://` transports.
98
- blocking-network-client = [" gix-protocol/blocking-client" , " gix-pack/streaming-input" ]
107
+ blocking-network-client = [" gix-protocol/blocking-client" , " gix-pack/streaming-input" , " attributes " ]
99
108
# # Stacks with `blocking-network-client` to provide support for HTTP/S using **curl**, and implies blocking networking as a whole, making the `https://` transport avaialble.
100
109
blocking-http-transport-curl = [" blocking-network-client" , " gix-transport/http-client-curl" ]
101
110
# # Stacks with `blocking-network-client` to provide support for HTTP/S using **reqwest**, and implies blocking networking as a whole, making the `https://` transport avaialble.
@@ -155,10 +164,10 @@ serde = [ "dep:serde",
155
164
" gix-index/serde" ,
156
165
" gix-mailmap?/serde" ,
157
166
" gix-url/serde" ,
158
- " gix-attributes/serde" ,
159
- " gix-ignore/serde" ,
167
+ " gix-attributes? /serde" ,
168
+ " gix-ignore? /serde" ,
160
169
" gix-revision/serde" ,
161
- " gix-worktree/serde" ,
170
+ " gix-worktree? /serde" ,
162
171
" gix-commitgraph/serde" ,
163
172
" gix-credentials/serde" ]
164
173
@@ -182,7 +191,7 @@ gix-validate = { version = "^0.8.0", path = "../gix-validate" }
182
191
gix-sec = { version = " ^0.9.0" , path = " ../gix-sec" }
183
192
gix-date = { version = " ^0.7.4" , path = " ../gix-date" }
184
193
gix-refspec = { version = " ^0.16.0" , path = " ../gix-refspec" }
185
- gix-filter = { version = " ^0.3.0" , path = " ../gix-filter" }
194
+ gix-filter = { version = " ^0.3.0" , path = " ../gix-filter" , optional = true }
186
195
187
196
gix-config = { version = " ^0.28.0" , path = " ../gix-config" }
188
197
gix-odb = { version = " ^0.51.0" , path = " ../gix-odb" }
@@ -202,18 +211,18 @@ gix-mailmap = { version = "^0.17.0", path = "../gix-mailmap", optional = true }
202
211
gix-features = { version = " ^0.33.0" , path = " ../gix-features" , features = [" progress" , " once_cell" ] }
203
212
gix-trace = { version = " ^0.1.3" , path = " ../gix-trace" }
204
213
205
- gix-attributes = { version = " ^0.17.0" , path = " ../gix-attributes" }
206
- gix-ignore = { version = " ^0.6.0" , path = " ../gix-ignore" }
207
214
gix-glob = { version = " ^0.11.0" , path = " ../gix-glob" }
208
215
gix-credentials = { version = " ^0.18.0" , path = " ../gix-credentials" }
209
216
gix-prompt = { version = " ^0.6.0" , path = " ../gix-prompt" }
210
217
gix-index = { version = " ^0.23.1" , path = " ../gix-index" }
211
- gix-worktree = { version = " ^0.25.0" , path = " ../gix-worktree" }
212
- gix-worktree-state = { version = " ^0.2.0" , path = " ../gix-worktree-state" }
218
+ gix-attributes = { version = " ^0.17.0" , path = " ../gix-attributes" , optional = true }
219
+ gix-ignore = { version = " ^0.6.0" , path = " ../gix-ignore" , optional = true }
220
+ gix-worktree = { version = " ^0.25.0" , path = " ../gix-worktree" , optional = true , default-features = false }
221
+ gix-worktree-state = { version = " ^0.2.0" , path = " ../gix-worktree-state" , optional = true }
213
222
gix-hashtable = { version = " ^0.3.0" , path = " ../gix-hashtable" }
214
223
gix-commitgraph = { version = " ^0.19.0" , path = " ../gix-commitgraph" }
215
- gix-pathspec = { version = " ^0.1.0" , path = " ../gix-pathspec" }
216
- gix-submodule = { version = " ^0.2.0" , path = " ../gix-submodule" }
224
+ gix-pathspec = { version = " ^0.1.0" , path = " ../gix-pathspec" , optional = true }
225
+ gix-submodule = { version = " ^0.2.0" , path = " ../gix-submodule" , optional = true }
217
226
218
227
gix-worktree-stream = { version = " ^0.3.0" , path = " ../gix-worktree-stream" , optional = true }
219
228
gix-archive = { version = " ^0.3.0" , path = " ../gix-archive" , default-features = false , optional = true }
0 commit comments