Use diff.ignoreSubmodules=dirty.

With this, modified files from submodules won't be reported,
but new ones will and this makes things much faster than not
having diff.ignoreSubmodules set at all.

Bug: 1470194
Change-Id: I041b6fb3151c0b06cff3cc77d6735ad2ebe27f21
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4793910
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Auto-Submit: Joanna Wang <jojwang@chromium.org>
changes/10/4793910/4
Joanna Wang 2 years ago committed by LUCI CQ
parent 3869a16107
commit d9ea072747

@ -583,9 +583,9 @@ class GitWrapper(SCMWrapper):
config = subprocess2.capture(
['git', 'config', '-l'],
cwd=args[0].checkout_path).decode('utf-8').strip().splitlines()
if 'diff.ignoresubmodules=all' in config:
if 'diff.ignoresubmodules=dirty' not in config:
subprocess2.capture(
['git', 'config', '--unset', 'diff.ignoreSubmodules'],
['git', 'config', 'diff.ignoreSubmodules', 'dirty'],
cwd=args[0].checkout_path)
if 'fetch.recursesubmodules=off' not in config:
subprocess2.capture(

@ -407,31 +407,17 @@ 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')
with self.assertRaises(Exception):
scm._Capture(['config', '--get', 'diff.ignoreSubmodules'])
self.assertEqual(scm._Capture(['config', '--get', 'diff.ignoreSubmodules']),
'dirty')
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

Loading…
Cancel
Save