diff --git a/conans/client/conf/config_installer.py b/conans/client/conf/config_installer.py index 7c0f4e48d5d..a2aae34fdb4 100644 --- a/conans/client/conf/config_installer.py +++ b/conans/client/conf/config_installer.py @@ -130,8 +130,6 @@ def _process_folder(config, folder, cache, output): folder = os.path.join(folder, config.source_folder) for root, dirs, files in walk(folder): dirs[:] = [d for d in dirs if d != ".git"] - if ".git" in root: - continue for f in files: _process_file(root, f, config, cache, output, folder) diff --git a/conans/test/functional/command/config_install_test.py b/conans/test/functional/command/config_install_test.py index 920067c99b6..7c31ac81b69 100644 --- a/conans/test/functional/command/config_install_test.py +++ b/conans/test/functional/command/config_install_test.py @@ -752,3 +752,23 @@ def test_config_install_remove_config_repo(self): self.assertNotIn("Repo cloned!", self.client.out) # ... and updates the next schedule self.assertGreater(os.path.getmtime(self.client.cache.config_install_file), last_change) + + def test_config_fails_git_folder(self): + # https://github.com/conan-io/conan/issues/8594 + folder = os.path.join(temp_folder(), ".gitlab-conan", ".conan") + client = TestClient(cache_folder=folder) + with client.chdir(self.folder): + client.run_command('git init .') + client.run_command('git add .') + client.run_command('git config user.name myname') + client.run_command('git config user.email myname@mycompany.com') + client.run_command('git commit -m "mymsg"') + assert ".gitlab-conan" in client.cache_folder + assert os.path.basename(client.cache_folder) == ".conan" + conf = load(client.cache.conan_conf_path) + assert "config_install_interval = 5m" not in conf + client.run('config install "%s/.git" --type git' % self.folder) + conf = load(client.cache.conan_conf_path) + assert "config_install_interval = 5m" in conf + dirs = os.listdir(client.cache.cache_folder) + assert ".git" not in dirs