blob: 2932ba8ac80b2b1753b981ae601ff207aceba312 [file] [log] [blame]
#!/usr/bin/env python3
# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# pylint complains about module sh
# pylint: disable=import-error
"""Sets up the kernel-next repository
Necessary for automatic rebase (rebase.py)
"""
import os
import sys
import sh
import config
from githelpers import fetch, has_remote, add_remote
repo = 'kernel-next'
no_repo_msg = """No kernel-next repository!
Create a new repository in third_party/kernel/ (you can just copy an existing
one with a new name, like `next`) and then link it here. The link should be
a relative path, so that it also works in the SDK chroot.
E.g. `ln -s ../../../../third_party/kernel/next/ kernel-next`
This is necessary for emerge-${BOARD} to be able to build the branches
created with the help of rebase.py. This process is not automated,
because work must be done outside of the directory of this project
and it's preferable that minimal assumptions are made about the outside
environment.
When you're done, re-run rebase_setup.py."""
if not os.path.exists(repo):
print(no_repo_msg)
sys.exit(1)
if not has_remote(repo, 'cros'):
url = config.chromeos_repo
add_remote(repo, 'cros', url)
print('Added cros remote:', url)
else:
print('cros remote ok')
if not has_remote(repo, 'upstream'):
url = config.upstream_repo
add_remote(repo, 'upstream', url)
print('Added upstream remote: ', url)
else:
print('upstream remote ok')
print('Fetching cros...')
fetch(repo, 'cros')
print('Fetching upstream...')
fetch(repo, 'upstream')
print('setting git config...')
with sh.pushd(repo):
print('rerere.enabled = false')
sh.git('config', 'rerere.enabled', 'false')
print('rerere.autoupdate = false')
sh.git('config', 'rerere.autoupdate', 'false')
print('merge.renameLimit = 15345')
sh.git('config', 'merge.renameLimit', '15345')
print('diff.renameLimit = 15345')
sh.git('config', 'diff.renameLimit', '15345')
print('Rebase setup OK')