Manual housekeeping should allow to do a "git gc --aggressive"
### Summary
If you push an "unoptimized repo", for example created trough git-p4 or other import tools, running manual housekeeping (in project settings) doesn't reduce the repository size.
### Steps to reproduce
Please note that this example repo is small, but the issue will be the same with bigger ones.
- Create an account at https://swarm.workshop.perforce.com/login
- `export P4USER=xxxx`
- `export P4PORT=workshop.perforce.com:1666`
- `p4 login`
- `git p4 clone //guest/perforce_software/jam/src@all jam`
- Create a GitLab project
- `git remote add origin ...`
- `git push -u origin master`
- Check pack size by cloning the repo => 2.9MB (same as what was pushed)
- Run housekeeping in GitLab project settings
- Check pack size by cloning the repo => still 2.9MB
- `git gc --agressive` => pack is 412KB
### Example Project
https://gitlab.com/loic.yhuel/jam
### What is the current *bug* behavior?
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/services/projects/housekeeping_service.rb
It seems manual housekeeping still checks `pushes_since_gc` against the thresholds, so most of the time it only does an incremental repack (and even if a `git gc` is done, it doesn't seem to have the `--aggressive` parameter, so the effect could be limited).
### What is the expected *correct* behavior?
Manual housekeeping should always run the full `git gc`, and allow `git gc --agressive` as an option (perhaps with a warning about the server load on big repositories).
issue