Skip to content

perf: _find_all_targets() has quadratic complexity because of Git.is_tracked() #3000

@Suor

Description

@Suor

Git.is_tracked() recreates a list of tracked files for each call and is called for each file walk_files() will find. Both lists are proportional to repo size, which makes _find_all_targets() ~ O(repo_size ** 2).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementEnhances DVCp2-mediumMedium priority, should be done, but less importantperformanceimprovement over resource / time consuming tasks

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions