mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 16:31:02 +03:00
add newtype for CommitSyncConfigVersion
Summary: This is to avoid passing `String` around. Will be useful in one of the next diffs, where I add querying `LiveCommitSyncConfig` by versions. Reviewed By: krallin Differential Revision: D22243254 fbshipit-source-id: c3fa92b62ae32e06d7557ec486d211900ff3964f
This commit is contained in:
parent
7ec13fe180
commit
ef87f564bc
@ -29,6 +29,7 @@ use futures_old::{future, stream::Stream as OldStream};
|
||||
use manifest::{Entry, ManifestOps};
|
||||
use maplit::btreemap;
|
||||
use mercurial_types::HgChangesetId;
|
||||
use metaconfig_types::CommitSyncConfigVersion;
|
||||
use mononoke_types::RepositoryId;
|
||||
use mononoke_types::{ChangesetId, MPath};
|
||||
use movers::Mover;
|
||||
@ -883,7 +884,7 @@ async fn init_repos(
|
||||
reverse_mover: mover_type.get_reverse_mover(),
|
||||
bookmark_renamer: bookmark_renamer_type.get_bookmark_renamer(),
|
||||
reverse_bookmark_renamer: bookmark_renamer_type.get_reverse_bookmark_renamer(),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
|
||||
let empty: BTreeMap<_, Option<&str>> = BTreeMap::new();
|
||||
@ -940,7 +941,7 @@ async fn init_repos(
|
||||
initial_bcs_id,
|
||||
target_repo.get_repoid(),
|
||||
rewritten_first_bcs_id,
|
||||
Some("TEST_VERSION_NAME".to_string()),
|
||||
Some(CommitSyncConfigVersion("TEST_VERSION_NAME".to_string())),
|
||||
);
|
||||
mapping.add(ctx.clone(), first_entry).compat().await?;
|
||||
|
||||
@ -1183,7 +1184,7 @@ async fn init_merged_repos(
|
||||
reverse_mover: mover_type.get_mover(),
|
||||
bookmark_renamer,
|
||||
reverse_bookmark_renamer,
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
|
||||
let commit_syncer = CommitSyncer::new(mapping.clone(), repos);
|
||||
@ -1283,7 +1284,7 @@ async fn init_merged_repos(
|
||||
first_after_merge_commit,
|
||||
small_repo.get_repoid(),
|
||||
small_repo_first_after_merge,
|
||||
Some("TEST_VERSION_NAME".to_string()),
|
||||
Some(CommitSyncConfigVersion("TEST_VERSION_NAME".to_string())),
|
||||
);
|
||||
mapping.add(ctx.clone(), entry).compat().await?;
|
||||
}
|
||||
@ -1419,7 +1420,7 @@ async fn preserve_premerge_commit(
|
||||
reverse_mover: Arc::new(identity_mover),
|
||||
bookmark_renamer: bookmark_renamer.clone(),
|
||||
reverse_bookmark_renamer: bookmark_renamer.clone(),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
|
||||
CommitSyncer::new(mapping.clone(), repos)
|
||||
|
@ -433,8 +433,8 @@ mod test {
|
||||
use futures_old::stream::Stream;
|
||||
use maplit::{hashmap, hashset};
|
||||
use metaconfig_types::{
|
||||
CommitSyncConfig, CommitSyncDirection, DefaultSmallToLargeCommitSyncPathAction,
|
||||
SmallRepoCommitSyncConfig,
|
||||
CommitSyncConfig, CommitSyncConfigVersion, CommitSyncDirection,
|
||||
DefaultSmallToLargeCommitSyncPathAction, SmallRepoCommitSyncConfig,
|
||||
};
|
||||
use mononoke_types::{MPath, RepositoryId};
|
||||
use revset::AncestorsNodeStream;
|
||||
@ -531,7 +531,7 @@ mod test {
|
||||
small_repos: hashmap! {
|
||||
small_repo.get_repoid() => small_repo_sync_config,
|
||||
},
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
update_large_repo_bookmarks(
|
||||
ctx.clone(),
|
||||
@ -623,7 +623,7 @@ mod test {
|
||||
reverse_mover: Arc::new(identity_mover),
|
||||
bookmark_renamer: Arc::new(noop_book_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(noop_book_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
},
|
||||
CommitSyncDirection::SmallToLarge => CommitSyncRepos::SmallToLarge {
|
||||
small_repo: small_repo.clone(),
|
||||
@ -632,7 +632,7 @@ mod test {
|
||||
reverse_mover: Arc::new(identity_mover),
|
||||
bookmark_renamer: Arc::new(noop_book_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(noop_book_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -118,7 +118,9 @@ mod test {
|
||||
use super::*;
|
||||
use maplit::hashmap;
|
||||
use mercurial_types::MPath;
|
||||
use metaconfig_types::{DefaultSmallToLargeCommitSyncPathAction, SmallRepoCommitSyncConfig};
|
||||
use metaconfig_types::{
|
||||
CommitSyncConfigVersion, DefaultSmallToLargeCommitSyncPathAction, SmallRepoCommitSyncConfig,
|
||||
};
|
||||
|
||||
fn mp(s: &'static str) -> MPath {
|
||||
MPath::new(s).unwrap()
|
||||
@ -153,7 +155,7 @@ mod test {
|
||||
RepositoryId::new(1) => get_small_repo_sync_config_1(),
|
||||
RepositoryId::new(2) => get_small_repo_sync_config_2(),
|
||||
},
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,9 @@ use futures_old::Stream as StreamOld;
|
||||
use manifest::get_implicit_deletes;
|
||||
use maplit::{hashmap, hashset};
|
||||
use mercurial_types::HgManifestId;
|
||||
use metaconfig_types::{CommitSyncConfig, CommitSyncDirection, PushrebaseFlags};
|
||||
use metaconfig_types::{
|
||||
CommitSyncConfig, CommitSyncConfigVersion, CommitSyncDirection, PushrebaseFlags,
|
||||
};
|
||||
use mononoke_types::{
|
||||
BonsaiChangeset, BonsaiChangesetMut, ChangesetId, FileChange, MPath, RepositoryId,
|
||||
};
|
||||
@ -408,7 +410,7 @@ pub enum CommitSyncRepos {
|
||||
reverse_mover: Mover,
|
||||
bookmark_renamer: BookmarkRenamer,
|
||||
reverse_bookmark_renamer: BookmarkRenamer,
|
||||
version_name: String,
|
||||
version_name: CommitSyncConfigVersion,
|
||||
},
|
||||
SmallToLarge {
|
||||
small_repo: BlobRepo,
|
||||
@ -417,7 +419,7 @@ pub enum CommitSyncRepos {
|
||||
reverse_mover: Mover,
|
||||
bookmark_renamer: BookmarkRenamer,
|
||||
reverse_bookmark_renamer: BookmarkRenamer,
|
||||
version_name: String,
|
||||
version_name: CommitSyncConfigVersion,
|
||||
},
|
||||
}
|
||||
|
||||
@ -576,7 +578,7 @@ where
|
||||
self.repos.get_bookmark_renamer()(bookmark)
|
||||
}
|
||||
|
||||
pub fn get_version_name(&self) -> &str {
|
||||
pub fn get_version_name(&self) -> &CommitSyncConfigVersion {
|
||||
&self.repos.get_version_name()
|
||||
}
|
||||
|
||||
@ -1381,7 +1383,7 @@ impl CommitSyncRepos {
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn get_version_name(&self) -> &str {
|
||||
pub(crate) fn get_version_name(&self) -> &CommitSyncConfigVersion {
|
||||
match self {
|
||||
CommitSyncRepos::LargeToSmall { version_name, .. } => version_name,
|
||||
CommitSyncRepos::SmallToLarge { version_name, .. } => version_name,
|
||||
@ -1479,13 +1481,13 @@ pub fn create_synced_commit_mapping_entry(
|
||||
|
||||
let source_repoid = source_repo.get_repoid();
|
||||
let target_repoid = target_repo.get_repoid();
|
||||
let version_name: Option<String> = if from == to {
|
||||
let version_name: Option<CommitSyncConfigVersion> = if from == to {
|
||||
// For preserved commits we explicitly avoid writing down
|
||||
// version_name, as it it makes no difference which commit
|
||||
// sync config is used, when the commit is preserved
|
||||
None
|
||||
} else {
|
||||
Some(version_name.to_owned())
|
||||
Some(version_name.clone())
|
||||
};
|
||||
|
||||
if source_is_large {
|
||||
|
@ -632,7 +632,7 @@ mod test {
|
||||
use fbinit::FacebookInit;
|
||||
use fixtures::linear;
|
||||
use futures_old::stream::Stream;
|
||||
use metaconfig_types::CommitSyncDirection;
|
||||
use metaconfig_types::{CommitSyncConfigVersion, CommitSyncDirection};
|
||||
use mononoke_types::{MPath, RepositoryId};
|
||||
use revset::AncestorsNodeStream;
|
||||
use sql_construct::SqlConstruct;
|
||||
@ -828,7 +828,7 @@ mod test {
|
||||
reverse_mover: Arc::new(identity_mover),
|
||||
bookmark_renamer,
|
||||
reverse_bookmark_renamer,
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
},
|
||||
CommitSyncDirection::SmallToLarge => CommitSyncRepos::SmallToLarge {
|
||||
small_repo: small_repo.clone(),
|
||||
@ -837,7 +837,7 @@ mod test {
|
||||
reverse_mover: Arc::new(identity_mover),
|
||||
bookmark_renamer,
|
||||
reverse_bookmark_renamer,
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -29,6 +29,7 @@ use cross_repo_sync_test_utils::rebase_root_on_master;
|
||||
use fixtures::{linear, many_files_dirs};
|
||||
use futures::compat::Future01CompatExt;
|
||||
use mercurial_types::HgChangesetId;
|
||||
use metaconfig_types::CommitSyncConfigVersion;
|
||||
use mononoke_types::{
|
||||
BlobstoreValue, BonsaiChangesetMut, ChangesetId, DateTime, FileChange, FileContents, FileType,
|
||||
MPath, RepositoryId,
|
||||
@ -235,7 +236,7 @@ async fn sync_parentage(fb: FacebookInit) {
|
||||
reverse_mover: reverse_prefix_mover("linear"),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
|
||||
let config = CommitSyncer::new(mapping, repos);
|
||||
@ -354,7 +355,7 @@ async fn sync_causes_conflict(fb: FacebookInit) {
|
||||
reverse_mover: reverse_prefix_mover("linear"),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
|
||||
let master_file_repos = CommitSyncRepos::SmallToLarge {
|
||||
@ -364,7 +365,7 @@ async fn sync_causes_conflict(fb: FacebookInit) {
|
||||
reverse_mover: reverse_prefix_mover("master_file"),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
|
||||
let mapping = SqlSyncedCommitMapping::with_sqlite_in_memory().unwrap();
|
||||
@ -439,7 +440,7 @@ async fn sync_empty_commit(fb: FacebookInit) {
|
||||
reverse_mover: prefix_mover("linear"),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
let stl_repos = CommitSyncRepos::SmallToLarge {
|
||||
small_repo: linear.clone(),
|
||||
@ -448,7 +449,7 @@ async fn sync_empty_commit(fb: FacebookInit) {
|
||||
reverse_mover: reverse_prefix_mover("linear"),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
|
||||
let lts_config = CommitSyncer::new(mapping.clone(), lts_repos);
|
||||
@ -564,7 +565,7 @@ async fn sync_copyinfo(fb: FacebookInit) {
|
||||
reverse_mover: prefix_mover("linear"),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
let stl_repos = CommitSyncRepos::SmallToLarge {
|
||||
small_repo: linear.clone(),
|
||||
@ -573,7 +574,7 @@ async fn sync_copyinfo(fb: FacebookInit) {
|
||||
reverse_mover: reverse_prefix_mover("linear"),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
|
||||
let stl_config = CommitSyncer::new(mapping.clone(), stl_repos);
|
||||
@ -657,7 +658,7 @@ async fn sync_remap_failure(fb: FacebookInit) {
|
||||
reverse_mover: Arc::new(move |_path: &MPath| bail!("This always fails")),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
let stl_repos = CommitSyncRepos::SmallToLarge {
|
||||
small_repo: linear.clone(),
|
||||
@ -666,7 +667,7 @@ async fn sync_remap_failure(fb: FacebookInit) {
|
||||
reverse_mover: reverse_prefix_mover("linear"),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
let linear_path_in_megarepo = mpath("linear");
|
||||
let copyfrom_fail_repos = CommitSyncRepos::LargeToSmall {
|
||||
@ -686,7 +687,7 @@ async fn sync_remap_failure(fb: FacebookInit) {
|
||||
),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
|
||||
let mapping = SqlSyncedCommitMapping::with_sqlite_in_memory().unwrap();
|
||||
@ -788,7 +789,7 @@ async fn sync_implicit_deletes(fb: FacebookInit) -> Result<(), Error> {
|
||||
reverse_mover,
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
|
||||
let commit_syncer = CommitSyncer::new(mapping.clone(), commit_sync_repos);
|
||||
@ -934,7 +935,7 @@ async fn sync_parent_search(fb: FacebookInit) {
|
||||
reverse_mover: reverse_prefix_mover("linear"),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
let reverse_repos = CommitSyncRepos::LargeToSmall {
|
||||
small_repo: linear.clone(),
|
||||
@ -943,7 +944,7 @@ async fn sync_parent_search(fb: FacebookInit) {
|
||||
reverse_mover: prefix_mover("linear"),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
let config = CommitSyncer::new(mapping.clone(), repos);
|
||||
let reverse_config = CommitSyncer::new(mapping, reverse_repos);
|
||||
|
@ -22,8 +22,8 @@ use futures::{compat::Future01CompatExt, FutureExt, TryFutureExt};
|
||||
use maplit::hashmap;
|
||||
use megarepolib::{common::ChangesetArgs, perform_move};
|
||||
use metaconfig_types::{
|
||||
CommitSyncConfig, CommitSyncDirection, DefaultSmallToLargeCommitSyncPathAction,
|
||||
SmallRepoCommitSyncConfig,
|
||||
CommitSyncConfig, CommitSyncConfigVersion, CommitSyncDirection,
|
||||
DefaultSmallToLargeCommitSyncPathAction, SmallRepoCommitSyncConfig,
|
||||
};
|
||||
use mononoke_types::RepositoryId;
|
||||
use mononoke_types::{ChangesetId, DateTime, MPath};
|
||||
@ -121,7 +121,7 @@ where
|
||||
target_bcs.get_changeset_id(),
|
||||
source_repo.get_repoid(),
|
||||
source_bcs_id,
|
||||
Some("TEST_VERSION_NAME".to_string()),
|
||||
Some(CommitSyncConfigVersion("TEST_VERSION_NAME".to_string())),
|
||||
);
|
||||
commit_syncer
|
||||
.get_mapping()
|
||||
@ -154,7 +154,7 @@ pub async fn init_small_large_repo(
|
||||
reverse_mover: Arc::new(reverse_prefix_mover),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
let small_to_large_commit_syncer = CommitSyncer::new(mapping.clone(), repos.clone());
|
||||
|
||||
@ -165,7 +165,7 @@ pub async fn init_small_large_repo(
|
||||
reverse_mover: Arc::new(prefix_mover),
|
||||
bookmark_renamer: Arc::new(identity_renamer),
|
||||
reverse_bookmark_renamer: Arc::new(identity_renamer),
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
let large_to_small_commit_syncer = CommitSyncer::new(mapping.clone(), repos.clone());
|
||||
|
||||
@ -264,7 +264,7 @@ pub async fn init_small_large_repo(
|
||||
small_repos: hashmap! {
|
||||
smallrepo.get_repoid() => small_repo_sync_config,
|
||||
},
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
};
|
||||
|
||||
Ok((
|
||||
|
@ -79,7 +79,7 @@ fn test_changing_commit_sync_config(fb: FacebookInit) {
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(
|
||||
csc_r1_v1.version_name,
|
||||
csc_r1_v1.version_name.0,
|
||||
"TEST_VERSION_NAME_LIVE_1".to_string()
|
||||
);
|
||||
assert_eq!(
|
||||
@ -106,7 +106,7 @@ fn test_changing_commit_sync_config(fb: FacebookInit) {
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(
|
||||
csc_r1_v2.version_name,
|
||||
csc_r1_v2.version_name.0,
|
||||
"TEST_VERSION_NAME_LIVE_2".to_string()
|
||||
);
|
||||
|
||||
|
@ -346,6 +346,7 @@ mod test {
|
||||
use super::*;
|
||||
use ascii::AsciiString;
|
||||
use maplit::hashmap;
|
||||
use metaconfig_types::CommitSyncConfigVersion;
|
||||
|
||||
fn mp(s: &'static str) -> MPath {
|
||||
MPath::new(s).unwrap()
|
||||
@ -495,7 +496,7 @@ mod test {
|
||||
RepositoryId::new(1) => get_small_repo_sync_config_1_non_ovelapping(),
|
||||
RepositoryId::new(2) => get_small_repo_sync_config_2_non_ovelapping(),
|
||||
},
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
}
|
||||
}
|
||||
|
||||
@ -654,7 +655,7 @@ mod test {
|
||||
direction: CommitSyncDirection::LargeToSmall,
|
||||
},
|
||||
},
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,7 @@ path = "test/main.rs"
|
||||
|
||||
[dependencies]
|
||||
context = { path = "../../server/context" }
|
||||
metaconfig_types = { path = "../../metaconfig/types" }
|
||||
mononoke_types = { path = "../../mononoke_types" }
|
||||
sql_construct = { path = "../../common/sql_construct" }
|
||||
sql_ext = { path = "../../common/rust/sql_ext" }
|
||||
|
@ -18,6 +18,7 @@ use cloned::cloned;
|
||||
use context::CoreContext;
|
||||
use futures_ext::{BoxFuture, FutureExt};
|
||||
use futures_old::{future, Future};
|
||||
use metaconfig_types::CommitSyncConfigVersion;
|
||||
use mononoke_types::{ChangesetId, RepositoryId};
|
||||
use sql::queries;
|
||||
use stats::prelude::*;
|
||||
@ -50,7 +51,7 @@ pub struct SyncedCommitMappingEntry {
|
||||
pub large_bcs_id: ChangesetId,
|
||||
pub small_repo_id: RepositoryId,
|
||||
pub small_bcs_id: ChangesetId,
|
||||
pub version_name: Option<String>,
|
||||
pub version_name: Option<CommitSyncConfigVersion>,
|
||||
}
|
||||
|
||||
impl SyncedCommitMappingEntry {
|
||||
@ -59,7 +60,7 @@ impl SyncedCommitMappingEntry {
|
||||
large_bcs_id: ChangesetId,
|
||||
small_repo_id: RepositoryId,
|
||||
small_bcs_id: ChangesetId,
|
||||
version_name: Option<String>,
|
||||
version_name: Option<CommitSyncConfigVersion>,
|
||||
) -> Self {
|
||||
Self {
|
||||
large_repo_id,
|
||||
@ -436,28 +437,51 @@ pub fn add_many_in_txn(
|
||||
) -> impl Future<Item = (Transaction, u64), Error = Error> {
|
||||
STATS::add_many_in_txn.add_value(1);
|
||||
|
||||
let insert_entries: Vec<_> = entries
|
||||
.iter()
|
||||
// `unwrapped_entries` is built only to turn `entry.version_name`
|
||||
// (of type `Option<CommitSyncConfigVersion>`) into `entry.version_name.0`
|
||||
// (of type `Option<String>`). We need to do this, so that below we can
|
||||
// get `&Option<String>` for `insert_entries` vec
|
||||
let unwrapped_entries: Vec<_> = entries
|
||||
.into_iter()
|
||||
.map(|entry| {
|
||||
(
|
||||
&entry.large_repo_id,
|
||||
&entry.large_bcs_id,
|
||||
&entry.small_repo_id,
|
||||
&entry.small_bcs_id,
|
||||
&entry.version_name,
|
||||
entry.large_repo_id,
|
||||
entry.large_bcs_id,
|
||||
entry.small_repo_id,
|
||||
entry.small_bcs_id,
|
||||
entry.version_name.map(|vn| vn.0),
|
||||
)
|
||||
})
|
||||
.collect();
|
||||
|
||||
let insert_entries: Vec<_> = unwrapped_entries
|
||||
.iter()
|
||||
.map(
|
||||
|(large_repo_id, large_bcs_id, small_repo_id, small_bcs_id, version_name)| {
|
||||
(
|
||||
large_repo_id,
|
||||
large_bcs_id,
|
||||
small_repo_id,
|
||||
small_bcs_id,
|
||||
version_name,
|
||||
)
|
||||
},
|
||||
)
|
||||
.collect();
|
||||
|
||||
InsertMapping::query_with_transaction(txn, &insert_entries).and_then(move |(txn, _result)| {
|
||||
let wces: Vec<_> = entries
|
||||
let wces: Vec<_> = unwrapped_entries
|
||||
.into_iter()
|
||||
.map(|e| EquivalentWorkingCopyEntry {
|
||||
large_repo_id: e.large_repo_id,
|
||||
large_bcs_id: e.large_bcs_id,
|
||||
small_repo_id: e.small_repo_id,
|
||||
small_bcs_id: Some(e.small_bcs_id),
|
||||
})
|
||||
.map(
|
||||
|(large_repo_id, large_bcs_id, small_repo_id, small_bcs_id, _)| {
|
||||
EquivalentWorkingCopyEntry {
|
||||
large_repo_id,
|
||||
large_bcs_id,
|
||||
small_repo_id,
|
||||
small_bcs_id: Some(small_bcs_id),
|
||||
}
|
||||
},
|
||||
)
|
||||
.collect();
|
||||
let wce_entries: Vec<_> = wces
|
||||
.iter()
|
||||
|
@ -13,6 +13,7 @@ use fbinit::FacebookInit;
|
||||
use futures::compat::Future01CompatExt;
|
||||
|
||||
use context::CoreContext;
|
||||
use metaconfig_types::CommitSyncConfigVersion;
|
||||
use mononoke_types_mocks::changesetid as bonsai;
|
||||
use mononoke_types_mocks::repo::{REPO_ONE, REPO_ZERO};
|
||||
use sql_construct::SqlConstruct;
|
||||
@ -28,7 +29,7 @@ async fn add_and_get<M: SyncedCommitMapping>(fb: FacebookInit, mapping: M) {
|
||||
bonsai::ONES_CSID,
|
||||
REPO_ONE,
|
||||
bonsai::TWOS_CSID,
|
||||
Some("TEST_VERSION_NAME".to_string()),
|
||||
Some(CommitSyncConfigVersion("TEST_VERSION_NAME".to_string())),
|
||||
);
|
||||
assert_eq!(
|
||||
true,
|
||||
@ -64,7 +65,7 @@ async fn add_and_get<M: SyncedCommitMapping>(fb: FacebookInit, mapping: M) {
|
||||
bonsai::THREES_CSID,
|
||||
REPO_ONE,
|
||||
bonsai::FOURS_CSID,
|
||||
Some("TEST_VERSION_NAME".to_string()),
|
||||
Some(CommitSyncConfigVersion("TEST_VERSION_NAME".to_string())),
|
||||
);
|
||||
assert_eq!(
|
||||
true,
|
||||
|
@ -400,13 +400,14 @@ mod test {
|
||||
use maplit::{btreemap, btreeset, hashmap};
|
||||
use metaconfig_types::{
|
||||
BlobConfig, BlobstoreId, BookmarkParams, Bundle2ReplayParams, CacheWarmupParams,
|
||||
CommitSyncDirection, DatabaseConfig, DefaultSmallToLargeCommitSyncPathAction,
|
||||
DerivedDataConfig, FilestoreParams, HookBypass, HookConfig, HookManagerParams, HookParams,
|
||||
InfinitepushNamespace, InfinitepushParams, LfsParams, LocalDatabaseConfig,
|
||||
MetadataDatabaseConfig, MultiplexId, PushParams, PushrebaseFlags, PushrebaseParams,
|
||||
RemoteDatabaseConfig, RemoteMetadataDatabaseConfig, ShardableRemoteDatabaseConfig,
|
||||
ShardedRemoteDatabaseConfig, SmallRepoCommitSyncConfig, SourceControlServiceMonitoring,
|
||||
SourceControlServiceParams, UnodeVersion, WireprotoLoggingConfig,
|
||||
CommitSyncConfigVersion, CommitSyncDirection, DatabaseConfig,
|
||||
DefaultSmallToLargeCommitSyncPathAction, DerivedDataConfig, FilestoreParams, HookBypass,
|
||||
HookConfig, HookManagerParams, HookParams, InfinitepushNamespace, InfinitepushParams,
|
||||
LfsParams, LocalDatabaseConfig, MetadataDatabaseConfig, MultiplexId, PushParams,
|
||||
PushrebaseFlags, PushrebaseParams, RemoteDatabaseConfig, RemoteMetadataDatabaseConfig,
|
||||
ShardableRemoteDatabaseConfig, ShardedRemoteDatabaseConfig, SmallRepoCommitSyncConfig,
|
||||
SourceControlServiceMonitoring, SourceControlServiceParams, UnodeVersion,
|
||||
WireprotoLoggingConfig,
|
||||
};
|
||||
use mononoke_types::MPath;
|
||||
use nonzero_ext::nonzero;
|
||||
@ -500,7 +501,7 @@ mod test {
|
||||
direction: CommitSyncDirection::SmallToLarge,
|
||||
}
|
||||
},
|
||||
version_name: "TEST_VERSION_NAME".to_string(),
|
||||
version_name: CommitSyncConfigVersion("TEST_VERSION_NAME".to_string()),
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -13,8 +13,8 @@ use ascii::AsciiString;
|
||||
use bookmarks_types::BookmarkName;
|
||||
use itertools::Itertools;
|
||||
use metaconfig_types::{
|
||||
CommitSyncConfig, CommitSyncDirection, DefaultSmallToLargeCommitSyncPathAction,
|
||||
SmallRepoCommitSyncConfig,
|
||||
CommitSyncConfig, CommitSyncConfigVersion, CommitSyncDirection,
|
||||
DefaultSmallToLargeCommitSyncPathAction, SmallRepoCommitSyncConfig,
|
||||
};
|
||||
use mononoke_types::{MPath, RepositoryId};
|
||||
use repos::{RawCommitSyncConfig, RawCommitSyncSmallRepoConfig};
|
||||
@ -186,7 +186,7 @@ impl Convert for RawCommitSyncConfig {
|
||||
|
||||
let large_repo_id = RepositoryId::new(large_repo_id);
|
||||
|
||||
let version_name = version_name.unwrap_or_default();
|
||||
let version_name = CommitSyncConfigVersion(version_name.unwrap_or_default());
|
||||
let commit_sync_config = CommitSyncConfig {
|
||||
large_repo_id,
|
||||
common_pushrebase_bookmarks,
|
||||
|
@ -978,6 +978,10 @@ pub enum CommitSyncDirection {
|
||||
SmallToLarge,
|
||||
}
|
||||
|
||||
/// CommitSyncConfig version name
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct CommitSyncConfigVersion(pub String);
|
||||
|
||||
/// Commit sync configuration for a large repo
|
||||
#[derive(Debug, Clone, Eq, PartialEq)]
|
||||
pub struct CommitSyncConfig {
|
||||
@ -988,7 +992,7 @@ pub struct CommitSyncConfig {
|
||||
/// Corresponding small repo configs
|
||||
pub small_repos: HashMap<RepositoryId, SmallRepoCommitSyncConfig>,
|
||||
/// Version name of the commit sync config
|
||||
pub version_name: String,
|
||||
pub version_name: CommitSyncConfigVersion,
|
||||
}
|
||||
|
||||
/// Configuration for logging wireproto commands and arguments
|
||||
|
Loading…
Reference in New Issue
Block a user