فهرست منبع

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 <sokcevic@chromium.org>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
Joanna Wang 2 سال پیش
والد
کامیت
4e6c1071bd
2فایلهای تغییر یافته به همراه22 افزوده شده و 6 حذف شده
  1. 5 4
      gclient_scm.py
  2. 17 2
      tests/gclient_scm_test.py

+ 5 - 4
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

+ 17 - 2
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