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:
Kostia Balytskyi 2020-06-26 02:43:19 -07:00 committed by Facebook GitHub Bot
parent 7ec13fe180
commit ef87f564bc
15 changed files with 113 additions and 75 deletions

View File

@ -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)

View File

@ -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()),
},
};

View File

@ -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()),
}
}

View File

@ -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 {

View File

@ -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()),
},
};

View File

@ -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);

View File

@ -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((

View File

@ -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()
);

View File

@ -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()),
}
}

View File

@ -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" }

View File

@ -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()

View File

@ -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,

View File

@ -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()),
}
};

View File

@ -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,

View File

@ -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