'remote: GitLab: Push operation timed out

I'm trying to fix my repository with BFG Repo-Cleaner, by removing some large files that were added to it, using this guide: https://rtyley.github.io/bfg-repo-cleaner/. When I'm trying to push (a very large push), I'm getting: "remote: GitLab: Push operation timed out".

The output I receive when pushing consists of the following:

numerating objects: 12176, done.
Writing objects: 100% (12176/12176), 4.15 MiB | 3.89 MiB/s, done.
Total 12176 (delta 0), reused 0 (delta 0), pack-reused 12176
remote: Resolving deltas: 100% (8566/8566), done.
remote: GitLab: Push operation timed out
remote:
remote: Timing information for debugging purposes:

remote: Running checks for ref: feature/XXXXXX1
remote: Running checks for ref: hotfix/XXXXXXX2
remote: Running checks for ref: hotfix/XXXXXXX3
remote: Running checks for ref: hotfix/XXXXXXX4
remote: Running checks for ref: main
remote: Running checks for ref: sandbox/XXXXXXX5
remote: Running checks for ref:
remote: Running checks for ref:
remote: Running checks for ref:
remote: Running checks for ref:
remote: Running checks for ref:

Followed by:

[remote rejected]   refs/merge-requests/115/head -> refs/merge-requests/115/head (deny updating a hidden ref)
 ! [remote rejected]   refs/merge-requests/115/merge -> refs/merge-requests/115/merge (deny updating a hidden ref)
 ! [remote rejected]   refs/merge-requests/116/head -> refs/merge-requests/116/head (deny updating a hidden ref)
 ! [remote rejected]   refs/merge-requests/116/merge -> refs/merge-requests/116/merge (deny updating a hidden ref)
 ! [remote rejected]   refs/merge-requests/117/head -> refs/merge-requests/117/head (deny updating a hidden ref)
 ! [remote rejected]   refs/merge-requests/117/merge -> refs/merge-requests/117/merge (deny updating a hidden ref)

Is there any way to fix that?



Solution 1:[1]

GitLab no longer supports using BFG and now supports git filter-repo

In previous versions of GitLab, the repository cleanup supported using the BFG object map.

The current recommended procedure is

  • Export the project
  • From the bundle, bare mirror clone to a fresh repository
  • Run the cleanup, using git filter-repo
  • Force push the heads, tags, and replace refs
  • Wait 30 minutes
  • Run the Repository Cleanup using the commit-map in .git/filter-repo/

Then the cleanup process will remove all of the dereferenced files or commits.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 BenH