diff --git a/tools-requirements.txt b/tools-requirements.txt index b82f11a5..382a4a03 100644 --- a/tools-requirements.txt +++ b/tools-requirements.txt @@ -2,3 +2,4 @@ GitPython ruamel.yaml requests jinja2 +dirsync diff --git a/tools/sync_doc_repo.py b/tools/sync_doc_repo.py index abdfc79d..cf924f11 100644 --- a/tools/sync_doc_repo.py +++ b/tools/sync_doc_repo.py @@ -21,6 +21,7 @@ import pathlib import shutil import subprocess import warnings +from dirsync import sync from git import Repo from git import SymbolicReference @@ -111,12 +112,9 @@ def process_repositories(args, service): new_branch.set_tracking_branch(remote_ref) new_branch.checkout() - shutil.copytree( - pathlib.Path(copy_from, doc["rst_location"]), - pathlib.Path(copy_to, doc["rst_location"]), - ignore=lambda a, b: ["conf.py"], - dirs_exist_ok=True, - ) + source_path = pathlib.Path(copy_from, doc["rst_location"]) + target_path = pathlib.Path(copy_to, doc["rst_location"]) + sync(source_path, target_path, purge=True, create=True, exclude=['conf.py']) repo_to.index.add([doc["rst_location"]]) if len(repo_to.index.diff("HEAD")) == 0: # Nothing to commit