From 4e6c1071bd30c1f3b51f0541b59685cb2384d8ad Mon Sep 17 00:00:00 2001 From: Joanna Wang Date: Thu, 17 Aug 2023 18:46:24 +0000 Subject: [PATCH] Unset diff.ignoreSubmodules=all when running gclient sync. Bug: 1470195 Change-Id: I1317e5f12d6cc7fae44b2a463ddf6d0f85629759 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4767516 Reviewed-by: Josip Sokcevic Commit-Queue: Joanna Wang --- gclient_scm.py | 9 +++++---- tests/gclient_scm_test.py | 19 +++++++++++++++++-- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/gclient_scm.py b/gclient_scm.py index 8743f7149..60958b5cc 100644 --- a/gclient_scm.py +++ b/gclient_scm.py @@ -583,13 +583,14 @@ class GitWrapper(SCMWrapper): config = subprocess2.capture( ['git', 'config', '-l'], cwd=args[0].checkout_path).decode('utf-8').strip().splitlines() - if 'diff.ignoresubmodules=all' not in config: - subprocess2.capture(['git', 'config', 'diff.ignoreSubmodules', 'all'], - cwd=args[0].checkout_path).strip() + if 'diff.ignoresubmodules=all' in config: + subprocess2.capture( + ['git', 'config', '--unset', 'diff.ignoreSubmodules'], + cwd=args[0].checkout_path) if 'fetch.recursesubmodules=off' not in config: subprocess2.capture( ['git', 'config', 'fetch.recurseSubmodules', 'off'], - cwd=args[0].checkout_path).strip() + cwd=args[0].checkout_path) return return_val return wrapper diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py index 8a8f91135..dc6dfc0ae 100755 --- a/tests/gclient_scm_test.py +++ b/tests/gclient_scm_test.py @@ -407,16 +407,31 @@ class ManagedGitWrapperTestCase(BaseGitWrapperTestCase): scm = gclient_scm.GitWrapper(self.url, self.root_dir, self.relpath) file_list = [] + scm._Capture(['config', 'diff.ignoreSubmodules', 'all']) + scm.update(options, (), file_list) self.assertEqual(file_list, expected_file_list) self.assertEqual(scm.revinfo(options, (), None), 'a7142dc9f0009350b96a11f372b6ea658592aa95') - self.assertEqual(scm._Capture(['config', '--get', 'diff.ignoreSubmodules']), - 'all') + with self.assertRaises(Exception): + scm._Capture(['config', '--get', 'diff.ignoreSubmodules']) self.assertEqual( scm._Capture(['config', '--get', 'fetch.recurseSubmodules']), 'off') sys.stdout.close() + def testUpdateUpdate_only_unset_ignoresubmodules_all(self): + if not self.enabled: + return + options = self.Options() + scm = gclient_scm.GitWrapper(self.url, self.root_dir, self.relpath) + file_list = [] + scm._Capture(['config', 'diff.ignoreSubmodules', 'none']) + + scm.update(options, (), file_list) + self.assertEqual(scm._Capture(['config', '--get', 'diff.ignoreSubmodules']), + 'none') + sys.stdout.close() + def testUpdateMerge(self): if not self.enabled: return