diff --git a/jenkins_jobs/modules/scm.py b/jenkins_jobs/modules/scm.py index 9733fffe3..4438635b0 100644 --- a/jenkins_jobs/modules/scm.py +++ b/jenkins_jobs/modules/scm.py @@ -579,6 +579,9 @@ def repo(parser, xml_parent, data): recent commit (default 0) :arg bool current-branch: Fetch only the current branch from the server (default true) + :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 quiet: Make repo more quiet (default true) :arg bool force-sync: Continue sync even if a project fails to sync @@ -611,6 +614,7 @@ def repo(parser, xml_parent, data): ("jobs", 'jobs', 0), ("depth", 'depth', 0), ("current-branch", 'currentBranch', True), + ("reset-first", 'resetFirst', False), ("quiet", 'quiet', True), ("force-sync", 'forceSync', False), ("local-manifest", 'localManifest', ''), diff --git a/tests/macros/fixtures/scm/multi-scms002.xml b/tests/macros/fixtures/scm/multi-scms002.xml index ed9a70300..731abc517 100644 --- a/tests/macros/fixtures/scm/multi-scms002.xml +++ b/tests/macros/fixtures/scm/multi-scms002.xml @@ -21,6 +21,7 @@ 3 2 false + false false false diff --git a/tests/scm/fixtures/repo001.xml b/tests/scm/fixtures/repo001.xml index 81bbf0dac..9cbd14d97 100644 --- a/tests/scm/fixtures/repo001.xml +++ b/tests/scm/fixtures/repo001.xml @@ -11,6 +11,7 @@ 3 0 false + true false true <?xml version="1.0" encoding="UTF-8"?> diff --git a/tests/scm/fixtures/repo001.yaml b/tests/scm/fixtures/repo001.yaml index d26687954..a34573457 100644 --- a/tests/scm/fixtures/repo001.yaml +++ b/tests/scm/fixtures/repo001.yaml @@ -9,6 +9,7 @@ scm: mirror-dir: ~/git/project/ jobs: 3 current-branch: false + reset-first: true quiet: false force-sync: true local-manifest: |