diff --git a/jenkins_jobs/modules/scm.py b/jenkins_jobs/modules/scm.py index cfed93315..a50145449 100644 --- a/jenkins_jobs/modules/scm.py +++ b/jenkins_jobs/modules/scm.py @@ -942,6 +942,9 @@ def repo(registry, xml_parent, data): :arg bool reset-first: Remove any commits that are not on the repositories by running the following command before anything else (default false): ``repo forall -c "git reset --hard"`` + :arg bool clean-first: Remove any files that are not tracked in the repositories + by running the following command before anything else (default false): + ``repo forall -c "git clean -fdx"`` :arg bool quiet: Make repo more quiet (default true) :arg bool force-sync: Continue sync even if a project fails to sync @@ -968,6 +971,7 @@ def repo(registry, xml_parent, data): ("depth", "depth", 0), ("current-branch", "currentBranch", True), ("reset-first", "resetFirst", False), + ("clean-first", "cleanFirst", False), ("quiet", "quiet", True), ("force-sync", "forceSync", False), ("no-tags", "noTags", False), diff --git a/tests/macros/fixtures/scm/multi-scms002.xml b/tests/macros/fixtures/scm/multi-scms002.xml index ba788f916..174014ca6 100644 --- a/tests/macros/fixtures/scm/multi-scms002.xml +++ b/tests/macros/fixtures/scm/multi-scms002.xml @@ -16,6 +16,7 @@ 2 false false + false false false false diff --git a/tests/scm/fixtures/repo001.xml b/tests/scm/fixtures/repo001.xml index 93204fb3d..275375902 100644 --- a/tests/scm/fixtures/repo001.xml +++ b/tests/scm/fixtures/repo001.xml @@ -6,6 +6,7 @@ 0 false true + true false true true diff --git a/tests/scm/fixtures/repo001.yaml b/tests/scm/fixtures/repo001.yaml index cc503c7b3..165082b66 100644 --- a/tests/scm/fixtures/repo001.yaml +++ b/tests/scm/fixtures/repo001.yaml @@ -13,6 +13,7 @@ scm: jobs: 3 current-branch: false reset-first: true + clean-first: true quiet: false force-sync: true no-tags: true