Loading
Improve support for git clean
What does this MR do?
Adds support for GIT_CLEAN_FLAGS to allow customize the behavior of git clean.
This makes GIT_CLEAN_FLAGS:
- when not defined to use
-ffdx, - when
noneto disablegit clean.
This is configurable via following statements in .gitlab-ci.yml:
variables:
missing GIT_CLEAN_FLAGS # use default, the `-ffdx`
GIT_CLEAN_FLAGS: "" # use default, the `-ffdx`
GIT_CLEAN_FLAGS: -ffdx -e cache/
GIT_CLEAN_FLAGS: none # disable git cleanThis MR also improves performance of checkout in very big (a lot of files) repositories:
- We do not use
git reset --hardas this is not needed, because we already dogit checkout -f, - Moves
git cleanaftergit checkout -fas this is desired behavior, - We remove one I/O intensive operation (
git reset --hard), reducing I/O by 33%:git checkout -fandgit cleanonly which has the same I/O footprint.
Closes #4109 (closed)
Why was this MR needed?
Make git clean behavior flexible and performant.
Does this MR meet the acceptance criteria?
- Documentation created/updated
- Added tests for this feature/bug
- In case of conflicts with
master- branch was rebased
What are the relevant issue numbers?
Related to https://forum.gitlab.com/t/disable-git-clean-between-jobs/7494
Edited by Kamil Trzciński