git_dag.git_repository.GitRepository

class git_dag.git_repository.GitRepository(repository_path: str | Path = '.', parse_trees: bool = False)[source]

Bases: object

Git repository.

Note

All git objects are processed (optionally tree objects can be skipped). This seems fine even for large repositories, e.g., it takes less than 20 sec. to process the repository of git itself which has 75K commits (without reading the tree object files).

Methods

filter_objects

Filter objects.

get_all_reachable_objects

Return all reachable objects (from all refs and reflog).

get_objects_reachable_from

Return SHA of all objects that are reachable from init_refs.

post_process_inspector_data

Post-process inspector data (see GitInspector.get_raw_objects()).

show

Show dag.

filter_objects(object_type: Type[T]) dict[str, T][source]

Filter objects.

get_all_reachable_objects() set[str][source]

Return all reachable objects (from all refs and reflog).

get_objects_reachable_from(init_refs: list[str] | None, max_numb_commits: int | None = None) set[str][source]

Return SHA of all objects that are reachable from init_refs.

post_process_inspector_data() None[source]

Post-process inspector data (see GitInspector.get_raw_objects()).

show(params: Params | None = None) Any[source]

Show dag.