File tree 4 files changed +10
-5
lines changed
4 files changed +10
-5
lines changed Original file line number Diff line number Diff line change @@ -100,17 +100,19 @@ Please see _'Development Status'_ for a listing of all crates and their capabili
100
100
* [ ] API documentation with examples
101
101
102
102
### git-protocol
103
+ * _ abstract over protocol versions to allow delegates to deal only with a single way of doing things_
103
104
* [x] ** credentials**
104
105
* [x] via git-credentials
105
106
* [ ] via pure Rust implementation if no git is installed
106
107
* [ ] fetch & clone
107
108
* [x] control credentials provider to fill, approve and reject
108
- * [x] ls-ref
109
+ * [x] command: ls-ref
109
110
* [x] parse V1 refs as provided during handshake
110
111
* [x] parse V2 refs
111
112
* [x] initialize and validate command arguments and features sanely
113
+ * [x] abort early for ls-remote capabilities
114
+ * [ ] packfile negotiation
112
115
* [ ] push
113
- * [ ] shallow clones
114
116
* [ ] API documentation with examples
115
117
116
118
### git-packetline
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ pub enum Action {
13
13
14
14
pub trait Delegate {
15
15
/// Called before invoking ls-refs to allow providing it with additional `arguments` and to enable `features`.
16
- /// Note that some arguments are preset based on typical usage .
16
+ /// Note that some arguments are preset based on typical use, and `features` are preset to maximize options .
17
17
/// The `server` capabilities can be used to see which additional capabilities the server supports as per the handshake.
18
18
/// Note that this is called only if we are using protocol version 2.
19
19
fn prepare_ls_refs (
@@ -24,7 +24,8 @@ pub trait Delegate {
24
24
) {
25
25
}
26
26
27
- /// Called before invoking the 'fetch' interaction, with `arguments` and `features` pre-filled for typical use.
27
+ /// Called before invoking the 'fetch' interaction, with `features` pre-filled for typical use
28
+ /// and to maximize capabilities.
28
29
/// `refs` is a list of known references on the remote, based on the handshake or a prior call to ls_refs.
29
30
/// As there will be another call allowing to post arguments conveniently in the correct format, i.e. `want hex-oid`,
30
31
/// there is no way to set arguments at this time.
Original file line number Diff line number Diff line change @@ -129,6 +129,8 @@ pub fn fetch<F: FnMut(credentials::Action) -> credentials::Result>(
129
129
transport. close ( ) ?;
130
130
return Ok ( ( ) ) ;
131
131
}
132
+ let mut _fetch_arguments = Command :: Fetch . initial_arguments ( & fetch_features) ;
133
+ // TODO: negotiation rounds till pack file is received or someone aborts.
132
134
133
135
transport. close ( ) ?;
134
136
unimplemented ! ( "rest of fetch or clone" )
Original file line number Diff line number Diff line change @@ -29,7 +29,7 @@ quick_error! {
29
29
}
30
30
}
31
31
32
- #[ derive( Clone ) ]
32
+ #[ derive( Debug , Clone ) ]
33
33
pub struct Capabilities {
34
34
data : BString ,
35
35
value_sep : u8 ,
You can’t perform that action at this time.
0 commit comments