mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
warm_bookmarks_cache: switch to BonsaiDerived::derive03
Reviewed By: krallin Differential Revision: D24900121 fbshipit-source-id: abce207db0ef51797b278cd448fb41b5e54875cb
This commit is contained in:
parent
26aaa544b0
commit
875754fda4
@ -694,7 +694,6 @@ mod tests {
|
||||
use fixtures::linear;
|
||||
use futures::future::TryFutureExt;
|
||||
use futures_ext::FutureExt;
|
||||
use futures_old::Future as OldFuture;
|
||||
use maplit::hashmap;
|
||||
use mutable_counters::SqlMutableCounters;
|
||||
use sql_construct::SqlConstruct;
|
||||
@ -717,9 +716,7 @@ mod tests {
|
||||
assert_eq!(bookmarks, HashMap::new());
|
||||
|
||||
let master_cs_id = resolve_cs_id(&ctx, &repo, "master").await?;
|
||||
RootUnodeManifestId::derive(ctx.clone(), repo.clone(), master_cs_id)
|
||||
.compat()
|
||||
.await?;
|
||||
RootUnodeManifestId::derive03(&ctx, &repo, master_cs_id).await?;
|
||||
|
||||
let bookmarks = init_bookmarks(&ctx, &repo, &warmers).await?;
|
||||
assert_eq!(
|
||||
@ -753,9 +750,7 @@ mod tests {
|
||||
bookmark(&ctx, &repo, "master").set_to(new_master).await?;
|
||||
master = new_master;
|
||||
}
|
||||
RootUnodeManifestId::derive(ctx.clone(), repo.clone(), master)
|
||||
.compat()
|
||||
.await?;
|
||||
RootUnodeManifestId::derive03(&ctx, &repo, master).await?;
|
||||
let derived_master = master;
|
||||
|
||||
info!(ctx.logger(), "creating 5 more underived commits");
|
||||
@ -773,9 +768,7 @@ mod tests {
|
||||
hashmap! {BookmarkName::new("master")? => (derived_master, BookmarkKind::PullDefaultPublishing)}
|
||||
);
|
||||
|
||||
RootUnodeManifestId::derive(ctx.clone(), repo.clone(), master)
|
||||
.compat()
|
||||
.await?;
|
||||
RootUnodeManifestId::derive03(&ctx, &repo, master).await?;
|
||||
let bookmarks = init_bookmarks(&ctx, &repo, &warmers).await?;
|
||||
assert_eq!(
|
||||
bookmarks,
|
||||
@ -795,9 +788,7 @@ mod tests {
|
||||
let warmers = Arc::new(warmers);
|
||||
|
||||
let derived_master = resolve_cs_id(&ctx, &repo, "master").await?;
|
||||
RootUnodeManifestId::derive(ctx.clone(), repo.clone(), derived_master)
|
||||
.compat()
|
||||
.await?;
|
||||
RootUnodeManifestId::derive03(&ctx, &repo, derived_master).await?;
|
||||
|
||||
for i in 1..50 {
|
||||
let new_master = CreateCommitContext::new(&ctx, &repo, vec!["master"])
|
||||
@ -830,9 +821,7 @@ mod tests {
|
||||
.add_file("somefile", "content")
|
||||
.commit()
|
||||
.await?;
|
||||
RootUnodeManifestId::derive(ctx.clone(), repo.clone(), derived_master)
|
||||
.compat()
|
||||
.await?;
|
||||
RootUnodeManifestId::derive03(&ctx, &repo, derived_master).await?;
|
||||
bookmark(&ctx, &repo, "master")
|
||||
.set_to(derived_master)
|
||||
.await?;
|
||||
@ -1036,10 +1025,13 @@ mod tests {
|
||||
if cs_id == failing_cs_id {
|
||||
futures_old::future::err(anyhow!("failed")).boxify()
|
||||
} else {
|
||||
RootUnodeManifestId::derive(ctx, repo, cs_id)
|
||||
.map(|_| ())
|
||||
.from_err()
|
||||
.boxify()
|
||||
async move {
|
||||
RootUnodeManifestId::derive03(&ctx, &repo, cs_id).await?;
|
||||
Ok(())
|
||||
}
|
||||
.boxed()
|
||||
.compat()
|
||||
.boxify()
|
||||
}
|
||||
}
|
||||
}),
|
||||
@ -1115,15 +1107,14 @@ mod tests {
|
||||
let repo = linear::getrepo(fb).await;
|
||||
let ctx = CoreContext::test_mock(fb);
|
||||
|
||||
RootUnodeManifestId::derive(
|
||||
ctx.clone(),
|
||||
repo.clone(),
|
||||
RootUnodeManifestId::derive03(
|
||||
&ctx,
|
||||
&repo,
|
||||
repo.get_bonsai_bookmark(ctx.clone(), &BookmarkName::new("master")?)
|
||||
.compat()
|
||||
.await?
|
||||
.unwrap(),
|
||||
)
|
||||
.compat()
|
||||
.await?;
|
||||
|
||||
let derive_sleep_time_ms = 100;
|
||||
@ -1135,15 +1126,14 @@ mod tests {
|
||||
how_many_derived.with_write(|map| {
|
||||
*map.entry(cs_id).or_insert(0) += 1;
|
||||
});
|
||||
tokio::time::delay_for(Duration::from_millis(derive_sleep_time_ms))
|
||||
.map(|_| {
|
||||
let res: Result<_, Error> = Ok(());
|
||||
res
|
||||
})
|
||||
.compat()
|
||||
.and_then(move |_| RootUnodeManifestId::derive(ctx, repo, cs_id).from_err())
|
||||
.map(|_| ())
|
||||
.boxify()
|
||||
async move {
|
||||
tokio::time::delay_for(Duration::from_millis(derive_sleep_time_ms)).await;
|
||||
RootUnodeManifestId::derive03(&ctx, &repo, cs_id).await?;
|
||||
Ok(())
|
||||
}
|
||||
.boxed()
|
||||
.compat()
|
||||
.boxify()
|
||||
}
|
||||
}),
|
||||
is_warm: Box::new(|ctx, repo, cs_id| {
|
||||
|
@ -16,7 +16,6 @@ use futures::{
|
||||
future::{FutureExt, TryFutureExt},
|
||||
};
|
||||
use futures_ext::FutureExt as OldFutureExt;
|
||||
use futures_old::Future as OldFuture;
|
||||
use mononoke_types::{ChangesetId, Generation};
|
||||
use mutable_counters::MutableCounters;
|
||||
use slog::info;
|
||||
@ -109,10 +108,13 @@ async fn check_if_present_in_hg(
|
||||
pub fn create_derived_data_warmer<D: BonsaiDerived>(ctx: &CoreContext) -> Warmer {
|
||||
info!(ctx.logger(), "Warming {}", D::NAME);
|
||||
let warmer: Box<WarmerFn> = Box::new(|ctx: CoreContext, repo: BlobRepo, cs_id: ChangesetId| {
|
||||
D::derive(ctx, repo, cs_id)
|
||||
.map(|_| ())
|
||||
.map_err(Error::from)
|
||||
.boxify()
|
||||
async move {
|
||||
D::derive03(&ctx, &repo, cs_id).await?;
|
||||
Ok(())
|
||||
}
|
||||
.boxed()
|
||||
.compat()
|
||||
.boxify()
|
||||
});
|
||||
|
||||
let is_warm: Box<IsWarmFn> =
|
||||
|
Loading…
Reference in New Issue
Block a user