module documentation

Git filter-branch implementation.

Class CommitData TypedDict for commit data fields.
Class CommitFilter Filter for rewriting commits during filter-branch operations.
Function filter_refs Filter commits reachable from the given refs.
def filter_refs(refs: RefsContainer, object_store: BaseObjectStore, ref_names: Sequence[bytes], commit_filter: CommitFilter, *, keep_original: bool = True, force: bool = False, tag_callback: Callable[[Ref, Ref], None] | None = None) -> dict[ObjectID, ObjectID]: ΒΆ

Filter commits reachable from the given refs.

Parameters
refs:RefsContainerRepository refs container
object_store:BaseObjectStoreObject store containing commits
ref_names:Sequence[bytes]List of ref names to filter
commit_filter:CommitFilterCommitFilter instance to use
keep_original:boolKeep original refs under refs/original/
force:boolForce operation even if refs have been filtered before
tag_callback:Callable[[Ref, Ref], None] | NoneOptional callback for processing tags
Returns
dict[ObjectID, ObjectID]Dictionary mapping old commit SHAs to new commit SHAs
Raises
ValueErrorIf refs have already been filtered and force is False