fn copy_dense_config()

in focus/operations/src/clone.rs [844:872]


fn copy_dense_config(dense_repo: &Repository, sparse_repo: &Repository) -> Result<()> {
    let dense_cfg = dense_repo
        .config()
        .context("failed to get dense repo config")?
        .open_level(git2::ConfigLevel::Local)
        .context("failed to open level Local in dense repo config")?;

    let mut sparse_cfg = sparse_repo
        .config()
        .context("failed to get sparse repo config")?
        .open_level(git2::ConfigLevel::Local)
        .context("failed to open level Local in sparse repo config")?;

    for k in ["ci.alt.remote", "ci.alt.enabled"] {
        if let Ok(v) = dense_cfg.get_string(k) {
            if v.is_empty() {
                break;
            }
            sparse_cfg.set_str(k, &v).with_context(|| {
                format!(
                    "failed to set key {:#?} value {:#?} from dense repo in sparse repo",
                    k, &v
                )
            })?;
        }
    }

    Ok(())
}