mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
mononoke: remove Changeset trait
Summary: There was only one struct that implemented this trait - HgBlobChangeset. And any time we wanted to access any method from this trait we had to import it. Given that this trait is not helping and makes using HgBlobChangeset harder, let's just remove it instead Reviewed By: aslpavel Differential Revision: D19024494 fbshipit-source-id: 98eb960d348e8d77e61198bcc82a71d7938a35e7
This commit is contained in:
parent
28e4ecae38
commit
e8e1424593
@ -28,7 +28,7 @@ use blobrepo::BlobRepo;
|
||||
use context::CoreContext;
|
||||
use futures::prelude::*;
|
||||
use futures_ext::{try_boxfuture, BoxFuture, FutureExt};
|
||||
use mercurial_types::{blobs::HgBlobChangeset, Changeset as HgChangeset, HgEntry, HgEntryId, Type};
|
||||
use mercurial_types::{blobs::HgBlobChangeset, HgEntry, HgEntryId, Type};
|
||||
use mononoke_types::RepositoryId;
|
||||
|
||||
use crate::cache::CacheManager;
|
||||
|
@ -20,7 +20,7 @@ use context::CoreContext;
|
||||
use manifest::{bonsai_diff, BonsaiDiffFileChange};
|
||||
use mercurial_types::{
|
||||
blobs::{HgBlobChangeset, HgBlobEnvelope},
|
||||
Changeset, HgFileEnvelope, HgFileNodeId, HgManifestId, MPath, RepoPath,
|
||||
HgFileEnvelope, HgFileNodeId, HgManifestId, MPath, RepoPath,
|
||||
};
|
||||
use mononoke_types::{
|
||||
BlobstoreValue, BonsaiChangeset, BonsaiChangesetMut, ChangesetId, FileChange, MononokeId,
|
||||
|
@ -46,8 +46,8 @@ use mercurial_types::{
|
||||
UploadHgFileEntry, UploadHgNodeHash,
|
||||
},
|
||||
manifest::Content,
|
||||
Changeset, FileBytes, Globalrev, HgChangesetId, HgEntry, HgEntryId, HgFileEnvelope,
|
||||
HgFileNodeId, HgManifest, HgManifestId, HgNodeHash, HgParents, RepoPath, Type,
|
||||
FileBytes, Globalrev, HgChangesetId, HgEntry, HgEntryId, HgFileEnvelope, HgFileNodeId,
|
||||
HgManifest, HgManifestId, HgNodeHash, HgParents, RepoPath, Type,
|
||||
};
|
||||
use mononoke_types::{
|
||||
hash::Sha256, Blob, BlobstoreBytes, BlobstoreValue, BonsaiChangeset, ChangesetId, ContentId,
|
||||
|
@ -31,8 +31,7 @@ use mercurial_types::{
|
||||
blobs::{ChangesetMetadata, HgBlobChangeset, HgBlobEntry, HgBlobEnvelope, HgChangesetContent},
|
||||
manifest,
|
||||
nodehash::{HgFileNodeId, HgManifestId},
|
||||
Changeset, HgChangesetId, HgEntry, HgNodeHash, HgNodeKey, HgParents, MPath, RepoPath,
|
||||
NULL_HASH,
|
||||
HgChangesetId, HgEntry, HgNodeHash, HgNodeKey, HgParents, MPath, RepoPath, NULL_HASH,
|
||||
};
|
||||
use mononoke_types::{self, BonsaiChangeset, ChangesetId, FileType, RepositoryId};
|
||||
use stats::define_stats;
|
||||
|
@ -25,8 +25,8 @@ use maplit::btreemap;
|
||||
use memblob::LazyMemblob;
|
||||
use mercurial_types::{
|
||||
blobs::{ContentBlobMeta, File, UploadHgFileContents, UploadHgFileEntry, UploadHgNodeHash},
|
||||
manifest, Changeset, FileType, HgChangesetId, HgEntry, HgFileNodeId, HgManifestId, HgParents,
|
||||
MPath, MPathElement, RepoPath,
|
||||
manifest, FileType, HgChangesetId, HgEntry, HgFileNodeId, HgManifestId, HgParents, MPath,
|
||||
MPathElement, RepoPath,
|
||||
};
|
||||
use mercurial_types_mocks::nodehash::{ONES_CSID, ONES_FNID};
|
||||
use mononoke_types::bonsai_changeset::BonsaiChangesetMut;
|
||||
|
@ -21,7 +21,7 @@ use futures_ext::{BoxFuture, FutureExt, StreamExt};
|
||||
use manifest::{bonsai_diff, BonsaiDiffFileChange, Diff, Entry, ManifestOps};
|
||||
use mercurial_types::{
|
||||
blobs::{BlobManifest, HgBlobChangeset, HgBlobEntry},
|
||||
Changeset, HgChangesetId, HgEntry, HgFileNodeId, HgManifestId, HgNodeHash, Type,
|
||||
HgChangesetId, HgEntry, HgFileNodeId, HgManifestId, HgNodeHash, Type,
|
||||
};
|
||||
use mononoke_types::{DateTime, FileType};
|
||||
use slog::{debug, Logger};
|
||||
|
@ -14,7 +14,7 @@ use context::CoreContext;
|
||||
use futures::{future, Future, IntoFuture, Stream};
|
||||
use futures_ext::{spawn_future, FutureExt};
|
||||
use manifest::{Entry, ManifestOps};
|
||||
use mercurial_types::{Changeset, HgChangesetId, HgFileNodeId, RepoPath};
|
||||
use mercurial_types::{HgChangesetId, HgFileNodeId, RepoPath};
|
||||
use metaconfig_types::CacheWarmupParams;
|
||||
use revset::AncestorsNodeStream;
|
||||
use slog::{debug, info, Logger};
|
||||
|
@ -21,7 +21,7 @@ use blobrepo_factory::ReadOnlyStorage;
|
||||
use bookmarks::BookmarkName;
|
||||
use changesets::SqlConstructors;
|
||||
use context::CoreContext;
|
||||
use mercurial_types::{Changeset, HgChangesetId, HgManifestId};
|
||||
use mercurial_types::{HgChangesetId, HgManifestId};
|
||||
use metaconfig_types::MetadataDBConfig;
|
||||
use mononoke_types::ChangesetId;
|
||||
|
||||
|
@ -14,7 +14,7 @@ use cmdlib::helpers;
|
||||
use context::CoreContext;
|
||||
use futures::future::{self, Future};
|
||||
use futures_ext::FutureExt;
|
||||
use mercurial_types::{Changeset, HgChangesetId, HgFileNodeId, MPath};
|
||||
use mercurial_types::{HgChangesetId, HgFileNodeId, MPath};
|
||||
use mononoke_types::{BonsaiChangeset, DateTime, Timestamp};
|
||||
use serde_json::{json, to_string_pretty};
|
||||
use slog::{debug, Logger};
|
||||
|
@ -18,7 +18,7 @@ use futures::prelude::*;
|
||||
use futures::stream::iter_ok;
|
||||
use futures_ext::{try_boxfuture, BoxFuture, FutureExt};
|
||||
use mercurial_types::manifest::Content;
|
||||
use mercurial_types::{Changeset, HgManifest, MPath, MPathElement};
|
||||
use mercurial_types::{HgManifest, MPath, MPathElement};
|
||||
use slog::{debug, Logger};
|
||||
|
||||
use crate::error::SubcommandError;
|
||||
|
@ -28,7 +28,7 @@ use futures_util::{
|
||||
try_join, TryStreamExt,
|
||||
};
|
||||
use manifest::{Entry, ManifestOps};
|
||||
use mercurial_types::{Changeset, HgFileNodeId, HgManifestId};
|
||||
use mercurial_types::{HgFileNodeId, HgManifestId};
|
||||
use metaconfig_types::{CommitSyncConfig, RepoConfig};
|
||||
use mononoke_types::{ChangesetId, MPath};
|
||||
use movers::{get_large_to_small_mover, Mover};
|
||||
|
@ -16,7 +16,7 @@ use fbinit::FacebookInit;
|
||||
use futures::prelude::*;
|
||||
use futures_ext::{BoxFuture, FutureExt};
|
||||
use manifest::{bonsai_diff, BonsaiDiffFileChange};
|
||||
use mercurial_types::{Changeset, HgChangesetId, HgManifestId, MPath};
|
||||
use mercurial_types::{HgChangesetId, HgManifestId, MPath};
|
||||
use revset::RangeNodeStream;
|
||||
use serde_derive::Serialize;
|
||||
use slog::Logger;
|
||||
|
@ -23,7 +23,7 @@ use futures_ext::{
|
||||
bounded_traversal::bounded_traversal_stream, try_boxfuture, BoxFuture, FutureExt,
|
||||
};
|
||||
use itertools::{Either, Itertools};
|
||||
use mercurial_types::{blobs::HgBlobChangeset, Changeset, HgChangesetId, HgEntryId, MPath};
|
||||
use mercurial_types::{blobs::HgBlobChangeset, HgChangesetId, HgEntryId, MPath};
|
||||
use mononoke_types::{typed_hash::MononokeId, ContentId, Timestamp};
|
||||
use redactedblobstore::SqlRedactedContentStore;
|
||||
use slog::{info, Logger};
|
||||
|
@ -22,7 +22,7 @@ use fbinit::FacebookInit;
|
||||
use futures::{future::err, stream::futures_unordered, Future, IntoFuture, Stream};
|
||||
use futures_ext::{BoxFuture, FutureExt};
|
||||
use manifest::get_implicit_deletes;
|
||||
use mercurial_types::{changeset::Changeset, HgManifestId};
|
||||
use mercurial_types::HgManifestId;
|
||||
use mononoke_types::{ChangesetId, MPath};
|
||||
use revset::AncestorsNodeStream;
|
||||
use slog::{debug, Logger};
|
||||
|
@ -19,7 +19,7 @@ use fbinit::FacebookInit;
|
||||
use futures::{future, Future, IntoFuture, Stream};
|
||||
use futures_ext::{BoxFuture, FutureExt, StreamExt};
|
||||
use manifest::{Entry, ManifestOps, PathOrPrefix};
|
||||
use mercurial_types::Changeset;
|
||||
|
||||
use mononoke_types::{ChangesetId, MPath};
|
||||
use revset::AncestorsNodeStream;
|
||||
use slog::Logger;
|
||||
|
@ -24,7 +24,7 @@ use futures::{
|
||||
};
|
||||
use futures_ext::FutureExt;
|
||||
use lock_ext::LockExt;
|
||||
use mercurial_types::{Changeset, HgChangesetId};
|
||||
use mercurial_types::HgChangesetId;
|
||||
use revset::AncestorsNodeStream;
|
||||
use slog::{debug, error, info, warn, Logger};
|
||||
use std::{
|
||||
|
@ -25,7 +25,7 @@ use futures::stream::Stream;
|
||||
use futures_ext::FutureExt;
|
||||
use futures_ext::{BoxFuture, BoxStream};
|
||||
use manifest::{Diff, Entry, ManifestOps};
|
||||
use mercurial_types::{Changeset, FileBytes, HgChangesetId, HgFileNodeId, HgManifestId};
|
||||
use mercurial_types::{FileBytes, HgChangesetId, HgFileNodeId, HgManifestId};
|
||||
use mononoke_types::{FileType, RepositoryId};
|
||||
use scuba_ext::ScubaSampleBuilder;
|
||||
use slog::info;
|
||||
|
@ -28,7 +28,6 @@ use futures_preview::{
|
||||
};
|
||||
use manifest::get_implicit_deletes;
|
||||
use maplit::{hashmap, hashset};
|
||||
use mercurial_types::changeset::Changeset;
|
||||
use mercurial_types::HgManifestId;
|
||||
use metaconfig_types::{CommitSyncConfig, PushrebaseParams};
|
||||
use mononoke_types::{
|
||||
|
@ -150,7 +150,7 @@ mod test {
|
||||
merge_even, merge_uneven, unshared_merge_even, unshared_merge_uneven,
|
||||
};
|
||||
use manifest::Entry;
|
||||
use mercurial_types::{Changeset, HgChangesetId, HgManifestId};
|
||||
use mercurial_types::{HgChangesetId, HgManifestId};
|
||||
use revset::AncestorsNodeStream;
|
||||
use std::sync::Arc;
|
||||
use test_utils::iterate_all_entries;
|
||||
|
@ -302,7 +302,7 @@ mod tests {
|
||||
use fixtures::linear;
|
||||
use futures::Stream;
|
||||
use maplit::btreemap;
|
||||
use mercurial_types::{blobs::BlobManifest, Changeset, HgFileNodeId, HgManifestId};
|
||||
use mercurial_types::{blobs::BlobManifest, HgFileNodeId, HgManifestId};
|
||||
use mononoke_types::{
|
||||
BlobstoreValue, BonsaiChangeset, BonsaiChangesetMut, DateTime, FileChange, FileContents,
|
||||
RepoPath,
|
||||
|
@ -151,7 +151,7 @@ mod test {
|
||||
merge_even, merge_uneven, unshared_merge_even, unshared_merge_uneven,
|
||||
};
|
||||
use manifest::Entry;
|
||||
use mercurial_types::{Changeset, HgChangesetId, HgManifestId};
|
||||
use mercurial_types::{HgChangesetId, HgManifestId};
|
||||
use revset::AncestorsNodeStream;
|
||||
use std::sync::Arc;
|
||||
use test_utils::iterate_all_entries;
|
||||
|
@ -13,9 +13,7 @@ use context::CoreContext;
|
||||
use futures::{Future, Stream};
|
||||
use futures_ext::{BoxFuture, FutureExt, StreamExt};
|
||||
use manifest::{Diff, Entry, ManifestOps};
|
||||
use mercurial_types::{
|
||||
blobs::HgBlobChangeset, Changeset, FileBytes, HgChangesetId, HgFileNodeId, MPath,
|
||||
};
|
||||
use mercurial_types::{blobs::HgBlobChangeset, FileBytes, HgChangesetId, HgFileNodeId, MPath};
|
||||
use mononoke_types::FileType;
|
||||
|
||||
use crate::{ChangedFileType, ChangesetStore, FileContentStore};
|
||||
|
@ -34,7 +34,7 @@ use futures::{future, Future, IntoFuture};
|
||||
use futures_ext::{try_boxfuture, BoxFuture, FutureExt};
|
||||
use futures_stats::Timed;
|
||||
use hooks_content_stores::{ChangedFileType, ChangesetStore, FileContentStore};
|
||||
use mercurial_types::{Changeset, FileBytes, HgChangesetId, HgFileNodeId, HgParents, MPath};
|
||||
use mercurial_types::{FileBytes, HgChangesetId, HgFileNodeId, HgParents, MPath};
|
||||
use metaconfig_types::{BookmarkOrRegex, HookBypass, HookConfig, HookManagerParams};
|
||||
use mononoke_types::FileType;
|
||||
use regex::Regex;
|
||||
|
@ -9,8 +9,7 @@
|
||||
use super::revlog::{serialize_extras, Extra, RevlogChangeset};
|
||||
use crate::{
|
||||
nodehash::{HgChangesetId, HgManifestId, NULL_HASH},
|
||||
Changeset, HgBlobNode, HgChangesetEnvelope, HgChangesetEnvelopeMut, HgNodeHash, HgParents,
|
||||
MPath,
|
||||
HgBlobNode, HgChangesetEnvelope, HgChangesetEnvelopeMut, HgNodeHash, HgParents, MPath,
|
||||
};
|
||||
use anyhow::{bail, Error, Result};
|
||||
use blobstore::{Blobstore, Loadable, LoadableError};
|
||||
@ -230,6 +229,35 @@ impl HgBlobChangeset {
|
||||
pub fn p2(&self) -> Option<HgNodeHash> {
|
||||
self.content.p2()
|
||||
}
|
||||
|
||||
pub fn manifestid(&self) -> HgManifestId {
|
||||
self.content.manifestid
|
||||
}
|
||||
|
||||
pub fn user(&self) -> &[u8] {
|
||||
&self.content.user
|
||||
}
|
||||
|
||||
pub fn extra(&self) -> &BTreeMap<Vec<u8>, Vec<u8>> {
|
||||
self.content.extra.as_ref()
|
||||
}
|
||||
|
||||
pub fn comments(&self) -> &[u8] {
|
||||
&self.content.comments
|
||||
}
|
||||
|
||||
pub fn files(&self) -> &[MPath] {
|
||||
&self.content.files
|
||||
}
|
||||
|
||||
pub fn time(&self) -> &DateTime {
|
||||
&self.content.time
|
||||
}
|
||||
|
||||
pub fn parents(&self) -> HgParents {
|
||||
// XXX Change this to return p1 and p2 directly.
|
||||
HgParents::new(self.content.p1(), self.content.p2())
|
||||
}
|
||||
}
|
||||
|
||||
impl Loadable for HgChangesetId {
|
||||
@ -249,34 +277,3 @@ impl Loadable for HgChangesetId {
|
||||
.boxify()
|
||||
}
|
||||
}
|
||||
|
||||
impl Changeset for HgBlobChangeset {
|
||||
fn manifestid(&self) -> HgManifestId {
|
||||
self.content.manifestid
|
||||
}
|
||||
|
||||
fn user(&self) -> &[u8] {
|
||||
&self.content.user
|
||||
}
|
||||
|
||||
fn extra(&self) -> &BTreeMap<Vec<u8>, Vec<u8>> {
|
||||
self.content.extra.as_ref()
|
||||
}
|
||||
|
||||
fn comments(&self) -> &[u8] {
|
||||
&self.content.comments
|
||||
}
|
||||
|
||||
fn files(&self) -> &[MPath] {
|
||||
&self.content.files
|
||||
}
|
||||
|
||||
fn time(&self) -> &DateTime {
|
||||
&self.content.time
|
||||
}
|
||||
|
||||
fn parents(&self) -> HgParents {
|
||||
// XXX Change this to return p1 and p2 directly.
|
||||
HgParents::new(self.content.p1(), self.content.p2())
|
||||
}
|
||||
}
|
||||
|
@ -1,62 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This software may be used and distributed according to the terms of the
|
||||
* GNU General Public License found in the LICENSE file in the root
|
||||
* directory of this source tree.
|
||||
*/
|
||||
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
use mononoke_types::{DateTime, MPath};
|
||||
|
||||
use crate::blobnode::HgParents;
|
||||
use crate::nodehash::HgManifestId;
|
||||
|
||||
pub trait Changeset: Send + 'static {
|
||||
fn manifestid(&self) -> HgManifestId;
|
||||
fn user(&self) -> &[u8];
|
||||
fn extra(&self) -> &BTreeMap<Vec<u8>, Vec<u8>>;
|
||||
fn comments(&self) -> &[u8];
|
||||
fn files(&self) -> &[MPath];
|
||||
fn time(&self) -> &DateTime;
|
||||
// XXX Change this to return p1 and p2 directly.
|
||||
fn parents(&self) -> HgParents;
|
||||
|
||||
fn boxed(self) -> Box<dyn Changeset>
|
||||
where
|
||||
Self: Sized,
|
||||
{
|
||||
Box::new(self)
|
||||
}
|
||||
}
|
||||
|
||||
impl Changeset for Box<dyn Changeset> {
|
||||
fn manifestid(&self) -> HgManifestId {
|
||||
(**self).manifestid()
|
||||
}
|
||||
|
||||
fn user(&self) -> &[u8] {
|
||||
(**self).user()
|
||||
}
|
||||
|
||||
fn extra(&self) -> &BTreeMap<Vec<u8>, Vec<u8>> {
|
||||
(**self).extra()
|
||||
}
|
||||
|
||||
fn comments(&self) -> &[u8] {
|
||||
(**self).comments()
|
||||
}
|
||||
|
||||
fn files(&self) -> &[MPath] {
|
||||
(**self).files()
|
||||
}
|
||||
|
||||
fn time(&self) -> &DateTime {
|
||||
(**self).time()
|
||||
}
|
||||
|
||||
fn parents(&self) -> HgParents {
|
||||
(**self).parents()
|
||||
}
|
||||
}
|
@ -51,7 +51,6 @@ pub mod bdiff;
|
||||
pub mod blob;
|
||||
pub mod blobnode;
|
||||
pub mod blobs;
|
||||
pub mod changeset;
|
||||
pub mod delta;
|
||||
pub mod delta_apply;
|
||||
mod envelope;
|
||||
@ -73,7 +72,6 @@ pub use self::manifest::{HgEntry, HgManifest, Type};
|
||||
pub use blob::HgBlob;
|
||||
pub use blobnode::{calculate_hg_node_id, calculate_hg_node_id_stream, HgBlobNode, HgParents};
|
||||
pub use blobs::{fetch_manifest_envelope, fetch_raw_manifest_bytes, fetch_raw_revlog_metadata};
|
||||
pub use changeset::Changeset;
|
||||
pub use delta::Delta;
|
||||
pub use envelope::{
|
||||
HgChangesetEnvelope, HgChangesetEnvelopeMut, HgFileEnvelope, HgFileEnvelopeMut,
|
||||
|
@ -15,7 +15,7 @@ use blobrepo::BlobRepo;
|
||||
use cloned::cloned;
|
||||
use context::CoreContext;
|
||||
use mercurial_types::manifest::Content;
|
||||
use mercurial_types::{Changeset, HgChangesetId};
|
||||
use mercurial_types::HgChangesetId;
|
||||
use mononoke_types::MPath;
|
||||
|
||||
#[derive(Debug, Error)]
|
||||
|
@ -60,7 +60,7 @@ use futures_preview::{
|
||||
use futures_util::{future::FutureExt as NewFutureExt, try_future::TryFutureExt};
|
||||
use manifest::{bonsai_diff, BonsaiDiffFileChange, ManifestOps};
|
||||
use maplit::hashmap;
|
||||
use mercurial_types::{Changeset, HgChangesetId, HgFileNodeId, HgManifestId, MPath};
|
||||
use mercurial_types::{HgChangesetId, HgFileNodeId, HgManifestId, MPath};
|
||||
use metaconfig_types::PushrebaseParams;
|
||||
use mononoke_types::{
|
||||
check_case_conflicts, BonsaiChangeset, ChangesetId, DateTime, FileChange, RawBundle2Id,
|
||||
|
@ -16,7 +16,7 @@ use futures::{future, stream, Future, Stream};
|
||||
use futures_ext::FutureExt;
|
||||
use mercurial_bundles::{changegroup::CgVersion, part_encode::PartEncodeBuilder, parts};
|
||||
use mercurial_revlog::{self, RevlogChangeset};
|
||||
use mercurial_types::{Changeset, HgBlobNode, HgChangesetId, HgPhase, NULL_CSID};
|
||||
use mercurial_types::{HgBlobNode, HgChangesetId, HgPhase, NULL_CSID};
|
||||
use mononoke_types::ChangesetId;
|
||||
use phases::Phases;
|
||||
use reachabilityindex::LeastCommonAncestorsHint;
|
||||
|
@ -12,7 +12,7 @@ use fbinit::FacebookInit;
|
||||
use fixtures::many_files_dirs;
|
||||
use futures_preview::compat::Future01CompatExt;
|
||||
use maplit::hashset;
|
||||
use mercurial_types::Changeset;
|
||||
|
||||
use mononoke_types_mocks::changesetid::ONES_CSID;
|
||||
use std::collections::HashSet;
|
||||
use tokio_preview as tokio;
|
||||
|
@ -23,9 +23,7 @@ use futures_ext::{
|
||||
FutureExt, StreamExt,
|
||||
};
|
||||
use itertools::{Either, Itertools};
|
||||
use mercurial_types::{
|
||||
Changeset, HgChangesetId, HgEntryId, HgFileNodeId, HgManifest, HgManifestId, RepoPath,
|
||||
};
|
||||
use mercurial_types::{HgChangesetId, HgEntryId, HgFileNodeId, HgManifest, HgManifestId, RepoPath};
|
||||
use mononoke_types::{ChangesetId, ContentId, MPath};
|
||||
use std::{cmp, iter::IntoIterator, ops::Add};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user