Skip to content

[BUG] GIT format patches detection is incorrect #38

Open
@pavelgood

Description

@pavelgood

The regex, which is currently used in the project to detect GIT patches, doesn't cover all cases. It assumes having index shortcut length equal to 7, which is not always the case. Shortcut length of the index inserted in the patch seems to depend on the project size (git objects in the git cache) and may vary. E.g. for qt project it would be 10. Another unhandled case is git format-patch --full-index that produces full-sized index (40 characters).

Incorrectly determined type causes missing a/ or b/ prefix strip and patch-ng fails to apply a patch.

Proposal (PR #39):
Use b'(?:index \\w{7,40}..\\w{7,40} \\d{6}|new file mode \\d*)' instead of b'(?:index \\w{7}..\\w{7} \\d{6}|new file mode \\d*)' in the _detect_type() function.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions