@@ -63,14 +63,34 @@ pub(crate) mod function {
63
63
let ref_specs = remote. refspecs ( gix:: remote:: Direction :: Fetch ) ;
64
64
match res. status {
65
65
Status :: NoPackReceived { update_refs } => {
66
- print_updates ( & repo, update_refs, ref_specs, res. ref_map , & mut out, err)
66
+ print_updates ( & repo, 1 , update_refs, ref_specs, res. ref_map , & mut out, err)
67
67
}
68
- Status :: DryRun { update_refs } => print_updates ( & repo, update_refs, ref_specs, res. ref_map , & mut out, err) ,
68
+ Status :: DryRun {
69
+ update_refs,
70
+ negotiation_rounds,
71
+ } => print_updates (
72
+ & repo,
73
+ negotiation_rounds,
74
+ update_refs,
75
+ ref_specs,
76
+ res. ref_map ,
77
+ & mut out,
78
+ err,
79
+ ) ,
69
80
Status :: Change {
70
81
update_refs,
71
82
write_pack_bundle,
83
+ negotiation_rounds,
72
84
} => {
73
- print_updates ( & repo, update_refs, ref_specs, res. ref_map , & mut out, err) ?;
85
+ print_updates (
86
+ & repo,
87
+ negotiation_rounds,
88
+ update_refs,
89
+ ref_specs,
90
+ res. ref_map ,
91
+ & mut out,
92
+ err,
93
+ ) ?;
74
94
if let Some ( data_path) = write_pack_bundle. data_path {
75
95
writeln ! ( out, "pack file: \" {}\" " , data_path. display( ) ) . ok ( ) ;
76
96
}
@@ -88,6 +108,7 @@ pub(crate) mod function {
88
108
89
109
pub ( crate ) fn print_updates (
90
110
repo : & gix:: Repository ,
111
+ negotiation_rounds : usize ,
91
112
update_refs : gix:: remote:: fetch:: refs:: update:: Outcome ,
92
113
refspecs : & [ gix:: refspec:: RefSpec ] ,
93
114
mut map : gix:: remote:: fetch:: RefMap ,
@@ -191,6 +212,9 @@ pub(crate) mod function {
191
212
refspecs. len( )
192
213
) ?;
193
214
}
215
+ if negotiation_rounds != 1 {
216
+ writeln ! ( err, "needed {negotiation_rounds} rounds of pack-negotiation" ) ?;
217
+ }
194
218
Ok ( ( ) )
195
219
}
196
220
}
0 commit comments