Skip to content

Implement local git operations for squashing #693

@Kobzol

Description

@Kobzol

Currently, @bors squash can take e.g. up to a minute, which is quite slow. The squashing operation is actually very fast; the problem is with pushing the resulting commit to a fork repository, because GitHub sadly doesn't provide API for it at the moment. So we have to do a fresh checkout of rust-lang/rust, fetch the squashed commit and push it to a fork, and that takes a lot of time.

We could add logic for keeping a local git repository on disk for each tracked repo. It would be lazily initiated on the first use. The main motivation is that if we have an up-to-date (or almost up-to-date) clone of rust-lang/rust locally, the push operation will be much faster, so the whole squash operation will be come much faster.

Note: this is a pretty complicated feature, if someone wants to tackle it, please reach out to me on Zulip first.

Metadata

Metadata

Assignees

No one assigned

    Labels

    E-hardDifficult issue that is not ideal for new contributors.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions