Skip to content

Commit

Permalink
Remove usages of ChangesetId::is_empty
Browse files Browse the repository at this point in the history
Summary: This is being removed in favor of `Option<ChangesetId>` which achieves the same effect. This diff makes changes at the level of `gitimport`, `remote-gitimport` and `Mononoke Git Server`. Follow up diff in the stack would update the `GitUploader` interface to expect `Option<ChangesetId>` instead of `ChangesetId`.

Reviewed By: gustavoavena

Differential Revision: D68438640

fbshipit-source-id: 6416bcac7a14e47745ca158d0b4a5a140343bea9
  • Loading branch information
RajivTS authored and facebook-github-bot committed Jan 21, 2025
1 parent a180ebe commit c0c41f6
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 17 deletions.
6 changes: 3 additions & 3 deletions eden/mononoke/git/gitimport/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -473,7 +473,7 @@ async fn async_main(app: MononokeApp) -> Result<(), Error> {
&ref_name,
tag_id,
&existing_tags,
&ChangesetId::empty(),
None, // No changeset for content refs
reupload,
uploader.clone(),
reader.clone(),
Expand Down Expand Up @@ -526,7 +526,7 @@ async fn async_main(app: MononokeApp) -> Result<(), Error> {
&name,
tag_id,
&existing_tags,
changeset,
Some(*changeset),
reupload,
uploader.clone(),
reader.clone(),
Expand Down Expand Up @@ -603,7 +603,7 @@ async fn process_tags<Uploader: GitUploader, Reader: GitReader>(
name: &String,
tag_id: ObjectId,
existing_tags: &HashMap<String, GitSha1>,
changeset: &ChangesetId,
changeset: Option<ChangesetId>,
reupload: ReuploadCommits,
uploader: Arc<Uploader>,
reader: Arc<Reader>,
Expand Down
5 changes: 3 additions & 2 deletions eden/mononoke/git/import_tools/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -219,15 +219,16 @@ pub async fn create_changeset_for_annotated_tag<Uploader: GitUploader, Reader: G
reader: Arc<Reader>,
tag_id: &ObjectId,
maybe_tag_name: Option<String>,
original_changeset_id: &ChangesetId,
original_changeset_id: Option<ChangesetId>,
) -> Result<ChangesetId> {
// Get the parsed Git Tag
let tag_metadata = TagMetadata::new(ctx, *tag_id, maybe_tag_name, &reader)
.await
.with_context(|| format_err!("Failed to create TagMetadata from git tag {}", tag_id))?;
// Create the corresponding changeset for the Git Tag at Mononoke end
let original_changeset_id = original_changeset_id.unwrap_or_else(ChangesetId::empty);
let changeset_id = uploader
.generate_changeset_for_annotated_tag(ctx, *original_changeset_id, tag_metadata)
.generate_changeset_for_annotated_tag(ctx, original_changeset_id, tag_metadata)
.await
.with_context(|| format_err!("Failed to generate changeset for git tag {}", tag_id))?;
Ok(changeset_id)
Expand Down
16 changes: 8 additions & 8 deletions eden/mononoke/git_server/src/service/uploader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,12 @@ type ContentTags = HashMap<String, ObjectId>;
#[derive(Clone, Debug)]
struct TagMetadata {
name: Option<String>,
bonsai_target: ChangesetId,
bonsai_target: Option<ChangesetId>,
git_target: ObjectId,
}

impl TagMetadata {
fn new(name: Option<String>, bonsai_target: ChangesetId, git_target: ObjectId) -> Self {
fn new(name: Option<String>, bonsai_target: Option<ChangesetId>, git_target: ObjectId) -> Self {
Self {
name,
bonsai_target,
Expand Down Expand Up @@ -178,12 +178,12 @@ async fn tags(
if let Some(tag) = object.parsed.as_tag() {
let (target_id, kind) = peel_tag_target(tag, object_store).await?;
let bonsai_id = if let Some(bonsai_id) = ref_map.commit_bonsai_by_oid(&target_id) {
bonsai_id
Some(bonsai_id)
} else if kind != Kind::Commit {
// If the target is not a commit, we can't create a changeset for it
ChangesetId::empty()
None
} else {
git_to_bonsai(ctx, repo, &target_id).await?
Some(git_to_bonsai(ctx, repo, &target_id).await?)
};
result.insert(id.clone(), TagMetadata::new(None, bonsai_id, target_id));
}
Expand Down Expand Up @@ -225,8 +225,8 @@ async fn process_tags<Uploader: GitUploader>(
} = tag_metadata;
// Add a mapping from the tag object id to the commit changeset id where it points. This will later
// be used in bookmark movement
if !bonsai_target.is_empty() {
ref_map.insert_tag(&tag_id, bonsai_target);
if let Some(bonsai_target) = bonsai_target.as_ref() {
ref_map.insert_tag(&tag_id, *bonsai_target);
} else if let Some(name) = name.as_ref() {
content_tags.insert(format!("refs/{}", name), git_target);
}
Expand All @@ -239,7 +239,7 @@ async fn process_tags<Uploader: GitUploader>(
object_store.clone(),
&tag_id,
name,
&bonsai_target,
bonsai_target,
)
.await?;
}
Expand Down
4 changes: 0 additions & 4 deletions eden/mononoke/mononoke_types/src/typed_hash.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,6 @@ impl ChangesetId {
pub fn empty() -> Self {
Self(Blake2::from_byte_array([0; 32]))
}

pub fn is_empty(&self) -> bool {
self.0.into_inner() == [0; 32]
}
}

/// An identifier for a changeset hash prefix in Mononoke.
Expand Down

0 comments on commit c0c41f6

Please sign in to comment.