mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 08:18:15 +03:00
mononoke/blobimport: make it OSS buildable
Reviewed By: krallin Differential Revision: D22455491 fbshipit-source-id: 919ba0e4fc759ef25546eacf30200ff19cd89466
This commit is contained in:
parent
8daaacbd77
commit
6b9637bbac
@ -4,7 +4,7 @@ edition = "2018"
|
||||
version = "0.1.0"
|
||||
authors = ['Facebook']
|
||||
license = "GPLv2+"
|
||||
include = ["cmds/admin/**/*.rs", "cmds/aliasverify.rs", "cmds/backfill_derived_data/**/*.rs", "cmds/backfill_git_mapping.rs", "cmds/benchmark_filestore.rs", "cmds/benchmark_storage_config/**/*.rs", "cmds/bonsai_verify/**/*.rs", "cmds/configlint.rs", "cmds/dumprev.rs", "cmds/idxdump.rs", "cmds/lfs_import.rs", "cmds/manual_scrub/**/*.rs", "cmds/rechunker.rs", "cmds/revlogrepo.rs", "cmds/statistics_collector.rs", "cmds/upload_globalrevs.rs"]
|
||||
include = ["cmds/admin/**/*.rs", "cmds/aliasverify.rs", "cmds/backfill_derived_data/**/*.rs", "cmds/backfill_git_mapping.rs", "cmds/benchmark_filestore.rs", "cmds/benchmark_storage_config/**/*.rs", "cmds/blobimport.rs", "cmds/bonsai_verify/**/*.rs", "cmds/configlint.rs", "cmds/dumprev.rs", "cmds/idxdump.rs", "cmds/lfs_import.rs", "cmds/manual_scrub/**/*.rs", "cmds/rechunker.rs", "cmds/revlogrepo.rs", "cmds/statistics_collector.rs", "cmds/upload_globalrevs.rs"]
|
||||
|
||||
[[bin]]
|
||||
name = "admin"
|
||||
@ -30,6 +30,10 @@ path = "cmds/benchmark_filestore.rs"
|
||||
name = "benchmark_storage_config"
|
||||
path = "cmds/benchmark_storage_config/main.rs"
|
||||
|
||||
[[bin]]
|
||||
name = "blobimport"
|
||||
path = "cmds/blobimport.rs"
|
||||
|
||||
[[bin]]
|
||||
name = "bonsai_verify"
|
||||
path = "cmds/bonsai_verify/main.rs"
|
||||
@ -72,6 +76,7 @@ path = "cmds/upload_globalrevs.rs"
|
||||
|
||||
[dependencies]
|
||||
blame = { path = "derived_data/blame" }
|
||||
blobimport_lib = { path = "blobimport_lib" }
|
||||
blobrepo = { path = "blobrepo" }
|
||||
blobrepo_factory = { path = "blobrepo/factory" }
|
||||
blobrepo_hg = { path = "blobrepo/blobrepo_hg" }
|
||||
@ -92,6 +97,7 @@ cross_repo_sync = { path = "commit_rewriting/cross_repo_sync" }
|
||||
dbbookmarks = { path = "bookmarks/dbbookmarks" }
|
||||
deleted_files_manifest = { path = "derived_data/deleted_files_manifest" }
|
||||
derived_data = { path = "derived_data" }
|
||||
derived_data_filenodes = { path = "derived_data/filenodes" }
|
||||
derived_data_utils = { path = "derived_data/utils" }
|
||||
fastlog = { path = "derived_data/fastlog" }
|
||||
filenodes = { path = "filenodes" }
|
||||
|
@ -11,7 +11,6 @@ use anyhow::{bail, format_err, Context, Error, Result};
|
||||
use ascii::AsciiString;
|
||||
use blobimport_lib;
|
||||
use bonsai_globalrev_mapping::SqlBonsaiGlobalrevMapping;
|
||||
use bytes::Bytes;
|
||||
use clap::{App, Arg, ArgMatches};
|
||||
use cmdlib::{
|
||||
args,
|
||||
@ -27,8 +26,7 @@ use futures::{
|
||||
compat::Future01CompatExt,
|
||||
future::{try_join3, FutureExt, TryFutureExt},
|
||||
};
|
||||
use manifold::{ObjectMeta, PayloadDesc, StoredObject};
|
||||
use manifold_thrift::thrift::{self, manifold_thrift_new, RequestContext};
|
||||
#[cfg(fbcode_build)]
|
||||
use mercurial_revlog::revlog::RevIdx;
|
||||
use mercurial_types::{HgChangesetId, HgNodeHash};
|
||||
use slog::{error, info, warn, Logger};
|
||||
@ -148,12 +146,17 @@ fn parse_fixed_parent_order<P: AsRef<Path>>(
|
||||
Ok(res)
|
||||
}
|
||||
|
||||
#[cfg(fbcode_build)]
|
||||
async fn update_manifold_key(
|
||||
fb: FacebookInit,
|
||||
latest_imported_rev: RevIdx,
|
||||
manifold_key: String,
|
||||
manifold_bucket: String,
|
||||
) -> Result<(), Error> {
|
||||
) -> Result<()> {
|
||||
use bytes::Bytes;
|
||||
use manifold::{ObjectMeta, PayloadDesc, StoredObject};
|
||||
use manifold_thrift::thrift::{self, manifold_thrift_new, RequestContext};
|
||||
|
||||
let next_revision_to_import = latest_imported_rev.as_u32() + 1;
|
||||
let context = RequestContext {
|
||||
bucketName: manifold_bucket,
|
||||
@ -179,7 +182,7 @@ async fn run_blobimport<'a>(
|
||||
ctx: &CoreContext,
|
||||
logger: &Logger,
|
||||
matches: &'a ArgMatches<'a>,
|
||||
) -> Result<(), Error> {
|
||||
) -> Result<()> {
|
||||
let revlogrepo_path = matches
|
||||
.value_of("INPUT")
|
||||
.expect("input is not specified")
|
||||
@ -310,27 +313,29 @@ async fn run_blobimport<'a>(
|
||||
.import()
|
||||
.await?;
|
||||
|
||||
async move {
|
||||
match maybe_latest_imported_rev {
|
||||
Some(latest_imported_rev) => {
|
||||
info!(
|
||||
ctx.logger(),
|
||||
"latest imported revision {}",
|
||||
latest_imported_rev.as_u32()
|
||||
);
|
||||
match maybe_latest_imported_rev {
|
||||
Some(latest_imported_rev) => {
|
||||
info!(
|
||||
ctx.logger(),
|
||||
"latest imported revision {}",
|
||||
latest_imported_rev.as_u32()
|
||||
);
|
||||
#[cfg(fbcode_build)]
|
||||
{
|
||||
if let Some((manifold_key, bucket)) = manifold_key_bucket {
|
||||
update_manifold_key(fb, latest_imported_rev, manifold_key, bucket).await
|
||||
} else {
|
||||
Ok(())
|
||||
update_manifold_key(fb, latest_imported_rev, manifold_key, bucket).await?
|
||||
}
|
||||
}
|
||||
None => {
|
||||
info!(ctx.logger(), "didn't import any commits");
|
||||
Ok(())
|
||||
#[cfg(not(fbcode_build))]
|
||||
{
|
||||
assert!(
|
||||
manifold_key_bucket.is_none(),
|
||||
"Using Manifold is not supported in non fbcode builds"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
.await?;
|
||||
None => info!(ctx.logger(), "didn't import any commits"),
|
||||
};
|
||||
upload_and_show_trace(ctx.clone())
|
||||
.compat()
|
||||
.map(|_| ())
|
||||
|
Loading…
Reference in New Issue
Block a user