diff --git a/src/cargo/ops/cargo_package/mod.rs b/src/cargo/ops/cargo_package/mod.rs
index 6c920eec4e3..161316f7bf6 100644
--- a/src/cargo/ops/cargo_package/mod.rs
+++ b/src/cargo/ops/cargo_package/mod.rs
@@ -387,7 +387,7 @@ fn prepare_archive(
let src_files = src.list_files(pkg)?;
// Check (git) repository state, getting the current commit hash.
- let vcs_info = vcs::check_repo_state(pkg, &src_files, gctx, &opts)?;
+ let vcs_info = vcs::check_repo_state(pkg, &src_files, ws, &opts)?;
build_ar_list(ws, pkg, src_files, vcs_info)
}
diff --git a/src/cargo/ops/cargo_package/vcs.rs b/src/cargo/ops/cargo_package/vcs.rs
index 04d7a9d5afd..4aa84fa0667 100644
--- a/src/cargo/ops/cargo_package/vcs.rs
+++ b/src/cargo/ops/cargo_package/vcs.rs
@@ -6,10 +6,13 @@ use std::path::PathBuf;
use anyhow::Context as _;
use cargo_util::paths;
+use cargo_util_schemas::manifest::TomlManifest;
use serde::Serialize;
use tracing::debug;
use crate::core::Package;
+use crate::core::Workspace;
+use crate::core::WorkspaceRootConfig;
use crate::sources::PathEntry;
use crate::CargoResult;
use crate::GlobalContext;
@@ -44,9 +47,10 @@ pub struct GitVcsInfo {
pub fn check_repo_state(
p: &Package,
src_files: &[PathEntry],
- gctx: &GlobalContext,
+ ws: &Workspace<'_>,
opts: &PackageOpts<'_>,
) -> CargoResult