MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / write_empty_commit

Method write_empty_commit

atomic-cli/src/commands/git/parallel.rs:3208–3241  ·  view source on GitHub ↗

Write an empty commit (no file changes).

(
        &self,
        repo: &mut Repository,
        parsed: &ParsedCommit,
        header: ChangeHeader,
    )

Source from the content-addressed store, hash-verified

3206
3207 /// Write an empty commit (no file changes).
3208 fn write_empty_commit(
3209 &self,
3210 repo: &mut Repository,
3211 parsed: &ParsedCommit,
3212 header: ChangeHeader,
3213 ) -> CliResult<ImportedCommitInfo> {
3214 let commit_start = Instant::now();
3215 let metadata = self.build_git_metadata(parsed, true, false);
3216 let write_outcome = repo
3217 .write_import_recorded(header, &[], metadata, &[], Default::default())
3218 .map_err(|e| CliError::Internal(e.into()))?;
3219 // Index git SHA → Atomic change in GIT_SHA_INDEX
3220 let _ = repo.index_git_sha(&parsed.git_sha, &write_outcome.hash);
3221
3222 trace_git_import(format!(
3223 "write {} files=0 recorded=0 add_batch=0ms record=0ms assemble={}ms save={}ms apply={}ms direct_graph={}ms direct_crdt={}ms commit={}ms cleanup=0ms total={}ms empty_commit=true",
3224 parsed.short_sha,
3225 write_outcome.timings.assemble_ms,
3226 write_outcome.timings.save_ms,
3227 write_outcome.timings.apply_ms,
3228 write_outcome.timings.direct_graph_ms,
3229 write_outcome.timings.direct_crdt_ms,
3230 write_outcome.timings.commit_ms,
3231 commit_start.elapsed().as_millis()
3232 ));
3233
3234 Ok(ImportedCommitInfo {
3235 git_sha: parsed.git_sha.clone(),
3236 short_sha: parsed.short_sha.clone(),
3237 atomic_hash: write_outcome.hash,
3238 is_merge: parsed.is_merge,
3239 message: parsed.metadata.message.clone(),
3240 })
3241 }
3242
3243 /// Build git metadata for the change's unhashed field.
3244 fn build_git_metadata(

Callers 1

write_commitMethod · 0.80

Calls 5

trace_git_importFunction · 0.85
build_git_metadataMethod · 0.80
write_import_recordedMethod · 0.80
index_git_shaMethod · 0.80
cloneMethod · 0.45

Tested by

no test coverage detected