Skip to content

Commit d4d3e6a

Browse files
committed
chore: break db.copy_to
db.copy_to has recursive call for update submodules inside it, now clone the submodule first before reset and keep the recursive update submodules call at the original place.
1 parent ea4eb86 commit d4d3e6a

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/cargo/sources/git/utils.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -475,14 +475,16 @@ impl<'a> GitCheckout<'a> {
475475
source.set_quiet(quiet);
476476

477477
let (db, actual_rev) = source.update_db(true)?;
478-
db.copy_to(actual_rev, &repo.path(), gctx, quiet)
478+
let (_, guard) = GitCheckout::clone_into(&repo.path(), &db, actual_rev, gctx)
479479
.with_context(|| {
480480
let name = child.name().unwrap_or("");
481481
format!("failed to fetch submodule `{name}` from {child_remote_url}",)
482482
})?;
483+
guard.mark_ok()?;
483484

484485
let obj = repo.find_object(head, None)?;
485-
reset(&repo, &obj, gctx)
486+
reset(&repo, &obj, gctx)?;
487+
update_submodules(&repo, gctx, quiet, &child_remote_url)
486488
}
487489
}
488490
}

0 commit comments

Comments
 (0)