mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
dangerous_override: add overrides for derived data manager
Summary: Add overrides for changesets, filenodes and bonsai_hg_mapping in the derived data manager. Reviewed By: yancouto Differential Revision: D31378456 fbshipit-source-id: b1faa543ca65fa041d2d0ddc908ea5fb950d023a
This commit is contained in:
parent
18742d1bdc
commit
9aa5c6a64a
@ -87,10 +87,15 @@ impl DangerousOverride<ArcChangesets> for BlobRepoInner {
|
||||
let changesets = modify(self.changesets.clone());
|
||||
let changeset_fetcher =
|
||||
Arc::new(SimpleChangesetFetcher::new(changesets.clone(), self.repoid));
|
||||
let repo_derived_data = Arc::new(
|
||||
self.repo_derived_data
|
||||
.with_replaced_changesets(changesets.clone()),
|
||||
);
|
||||
|
||||
Self {
|
||||
changesets,
|
||||
changeset_fetcher,
|
||||
repo_derived_data,
|
||||
..self.clone()
|
||||
}
|
||||
}
|
||||
@ -102,8 +107,13 @@ impl DangerousOverride<ArcFilenodes> for BlobRepoInner {
|
||||
F: FnOnce(ArcFilenodes) -> ArcFilenodes,
|
||||
{
|
||||
let filenodes = modify(self.filenodes.clone());
|
||||
let repo_derived_data = Arc::new(
|
||||
self.repo_derived_data
|
||||
.with_replaced_filenodes(filenodes.clone()),
|
||||
);
|
||||
Self {
|
||||
filenodes,
|
||||
repo_derived_data,
|
||||
..self.clone()
|
||||
}
|
||||
}
|
||||
@ -115,8 +125,13 @@ impl DangerousOverride<ArcBonsaiHgMapping> for BlobRepoInner {
|
||||
F: FnOnce(ArcBonsaiHgMapping) -> ArcBonsaiHgMapping,
|
||||
{
|
||||
let bonsai_hg_mapping = modify(self.bonsai_hg_mapping.clone());
|
||||
let repo_derived_data = Arc::new(
|
||||
self.repo_derived_data
|
||||
.with_replaced_bonsai_hg_mapping(bonsai_hg_mapping.clone()),
|
||||
);
|
||||
Self {
|
||||
bonsai_hg_mapping,
|
||||
repo_derived_data,
|
||||
..self.clone()
|
||||
}
|
||||
}
|
||||
|
@ -93,6 +93,39 @@ impl DerivedDataManager {
|
||||
}
|
||||
}
|
||||
|
||||
// For dangerous-override: allow replacement of changesets
|
||||
pub fn with_replaced_changesets(&self, changesets: Arc<dyn Changesets>) -> Self {
|
||||
Self {
|
||||
inner: Arc::new(DerivedDataManagerInner {
|
||||
changesets,
|
||||
..self.inner.as_ref().clone()
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
// For dangerous-override: allow replacement of bonsai-hg-mapping
|
||||
pub fn with_replaced_bonsai_hg_mapping(
|
||||
&self,
|
||||
bonsai_hg_mapping: Arc<dyn BonsaiHgMapping>,
|
||||
) -> Self {
|
||||
Self {
|
||||
inner: Arc::new(DerivedDataManagerInner {
|
||||
bonsai_hg_mapping,
|
||||
..self.inner.as_ref().clone()
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
// For dangerous-override: allow replacement of filenodes
|
||||
pub fn with_replaced_filenodes(&self, filenodes: Arc<dyn Filenodes>) -> Self {
|
||||
Self {
|
||||
inner: Arc::new(DerivedDataManagerInner {
|
||||
filenodes,
|
||||
..self.inner.as_ref().clone()
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn repo_id(&self) -> RepositoryId {
|
||||
self.inner.repo_id
|
||||
}
|
||||
|
@ -76,6 +76,35 @@ impl RepoDerivedData {
|
||||
}
|
||||
}
|
||||
|
||||
// For dangerous-override: allow replacement of changesets
|
||||
pub fn with_replaced_changesets(&self, changesets: Arc<dyn Changesets>) -> Self {
|
||||
Self {
|
||||
config: self.config.clone(),
|
||||
manager: self.manager.with_replaced_changesets(changesets),
|
||||
}
|
||||
}
|
||||
|
||||
// For dangerous-override: allow replacement of bonsai-hg-mapping
|
||||
pub fn with_replaced_bonsai_hg_mapping(
|
||||
&self,
|
||||
bonsai_hg_mapping: Arc<dyn BonsaiHgMapping>,
|
||||
) -> Self {
|
||||
Self {
|
||||
config: self.config.clone(),
|
||||
manager: self
|
||||
.manager
|
||||
.with_replaced_bonsai_hg_mapping(bonsai_hg_mapping),
|
||||
}
|
||||
}
|
||||
|
||||
// For dangerous-override: allow replacement of filenodes
|
||||
pub fn with_replaced_filenodes(&self, filenodes: Arc<dyn Filenodes>) -> Self {
|
||||
Self {
|
||||
config: self.config.clone(),
|
||||
manager: self.manager.with_replaced_filenodes(filenodes),
|
||||
}
|
||||
}
|
||||
|
||||
/// Current derived data configuration for this repo.
|
||||
pub fn config(&self) -> &DerivedDataConfig {
|
||||
&self.config
|
||||
|
Loading…
Reference in New Issue
Block a user