File tree Expand file tree Collapse file tree 2 files changed +26
-7
lines changed Expand file tree Collapse file tree 2 files changed +26
-7
lines changed Original file line number Diff line number Diff line change @@ -866,13 +866,16 @@ static int get_pack(struct fetch_pack_args *args,
866
866
* have this responsibility.
867
867
*/
868
868
args -> check_self_contained_and_connected = 0 ;
869
- /*
870
- * If we're obtaining the filename of a lockfile, we'll use
871
- * that filename to write a .promisor file with more
872
- * information below. If not, we need index-pack to do it for
873
- * us.
874
- */
875
- if (!(do_keep && pack_lockfiles ) && args -> from_promisor )
869
+
870
+ if (args -> from_promisor )
871
+ /*
872
+ * write_promisor_file() may be called afterwards but
873
+ * we still need index-pack to know that this is a
874
+ * promisor pack. For example, if transfer.fsckobjects
875
+ * is true, index-pack needs to know that .gitmodules
876
+ * is a promisor object (so that it won't complain if
877
+ * it is missing).
878
+ */
876
879
strvec_push (& cmd .args , "--promisor" );
877
880
}
878
881
else {
Original file line number Diff line number Diff line change @@ -163,6 +163,22 @@ test_expect_success 'manual prefetch of missing objects' '
163
163
test_line_count = 0 observed.oids
164
164
'
165
165
166
+ test_expect_success ' partial clone with transfer.fsckobjects=1 works with submodules' '
167
+ test_create_repo submodule &&
168
+ test_commit -C submodule mycommit &&
169
+
170
+ test_create_repo src_with_sub &&
171
+ test_config -C src_with_sub uploadpack.allowfilter 1 &&
172
+ test_config -C src_with_sub uploadpack.allowanysha1inwant 1 &&
173
+
174
+ git -C src_with_sub submodule add "file://$(pwd)/submodule" mysub &&
175
+ git -C src_with_sub commit -m "commit with submodule" &&
176
+
177
+ git -c transfer.fsckobjects=1 \
178
+ clone --filter="blob:none" "file://$(pwd)/src_with_sub" dst &&
179
+ test_when_finished rm -rf dst
180
+ '
181
+
166
182
test_expect_success ' partial clone with transfer.fsckobjects=1 uses index-pack --fsck-objects' '
167
183
git init src &&
168
184
test_commit -C src x &&
You can’t perform that action at this time.
0 commit comments