diff --git a/clearml/backend_interface/task/repo/scriptinfo.py b/clearml/backend_interface/task/repo/scriptinfo.py index 7607c72b..6b4f8b2c 100644 --- a/clearml/backend_interface/task/repo/scriptinfo.py +++ b/clearml/backend_interface/task/repo/scriptinfo.py @@ -13,7 +13,7 @@ from threading import Thread, Event from .util import get_command_output, remove_user_pass_from_url from ....backend_api import Session -from ....config import deferred_config +from ....config import deferred_config, VCS_WORK_DIR from ....debugging import get_logger from .detectors import GitEnvDetector, GitDetector, HgEnvDetector, HgDetector, Result as DetectionResult @@ -790,7 +790,10 @@ class ScriptInfo(object): working_dir = '.' entry_point = str(script_path.name) else: - working_dir = cls._get_working_dir(repo_root) + # allow to override the VCS working directory (notice relative to the git repo) + # because we can have a sync folder on remote pycharm sessions + # not syncing from the Git repo, but from a subfolder, so the pycharm plugin need to pass the override + working_dir = VCS_WORK_DIR.get() if VCS_WORK_DIR.get() else cls._get_working_dir(repo_root) entry_point = cls._get_entry_point(repo_root, script_path) if check_uncommitted: diff --git a/clearml/config/defs.py b/clearml/config/defs.py index 56e72a00..0b571def 100644 --- a/clearml/config/defs.py +++ b/clearml/config/defs.py @@ -32,5 +32,6 @@ VCS_REPOSITORY_URL = EnvEntry("CLEARML_VCS_REPO_URL", "TRAINS_VCS_REPO_URL") VCS_COMMIT_ID = EnvEntry("CLEARML_VCS_COMMIT_ID", "TRAINS_VCS_COMMIT_ID") VCS_BRANCH = EnvEntry("CLEARML_VCS_BRANCH", "TRAINS_VCS_BRANCH") VCS_ROOT = EnvEntry("CLEARML_VCS_ROOT", "TRAINS_VCS_ROOT") +VCS_WORK_DIR = EnvEntry("CLEARML_VCS_WORK_DIR") VCS_STATUS = EnvEntry("CLEARML_VCS_STATUS", "TRAINS_VCS_STATUS", converter=base64_to_text) VCS_DIFF = EnvEntry("CLEARML_VCS_DIFF", "TRAINS_VCS_DIFF", converter=base64_to_text)