diff --git a/setup_links.py b/setup_links.py index bb4b1119a..c403ca824 100755 --- a/setup_links.py +++ b/setup_links.py @@ -88,6 +88,7 @@ FILES = { 'third_party/BUILD.gn': None, } +ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) CHROMIUM_CHECKOUT = os.path.join('chromium', 'src') LINKS_DB = 'links' @@ -264,6 +265,14 @@ class WebRTCLinkSetup(): source_dir, None, check_fn=os.path.isdir, check_msg='directories') + if not on_bot and self._force: + # When making the manual switch from legacy SVN checkouts to the new + # Git-based Chromium DEPS, the .gclient_entries file that contains cached + # URLs for all DEPS entries must be removed to avoid future sync problems. + entries_file = os.path.join(os.path.dirname(ROOT_DIR), '.gclient_entries') + if os.path.exists(entries_file): + actions.append(Remove(entries_file, dangerous=True)) + actions.sort() if self._dry_run: diff --git a/sync_chromium.py b/sync_chromium.py index d02346c97..db6fb98ef 100755 --- a/sync_chromium.py +++ b/sync_chromium.py @@ -59,6 +59,12 @@ def main(): return 0 os.unlink(flag_file) + # To avoid gclient sync problems when DEPS entries have been removed we must + # wipe the .gclient_entries file that contains cached URLs for all DEPS. + entries_file = os.path.join(opts.chromium_dir, '.gclient_entries') + if os.path.exists(entries_file): + os.unlink(entries_file) + env = os.environ.copy() env['GYP_CHROMIUM_NO_ACTION'] = '1' gclient_cmd = 'gclient.bat' if sys.platform.startswith('win') else 'gclient'