* In local build environments, we may want roomservice to
not mess with the repos and local_manifests
Change-Id: I83014fdedbfdcd9f731463954a8779cf6d1f4cbf
Jobs such as check for already picked changes only need to be done once
for each git repository, but it was lunched every time picking a commit.
Change-Id: I87b3fea101dbcedb38502015fe9a9af5f25b397c
* Use the builtin approach to decode text output
* Drop unnecessary system shell usage
* Use subprocess.run when we don't need its stdout
Change-Id: Ibb2aeae442b5e97828fe4e0eb783e6512288d245
* Recursively extend the fallback branches mechanism to any
layer of dependencies.
* Instead of forcing a dependency to use the fallback branch,
check for each repository if the current one is available.
* Always write the revision in the manifest entry
Change-Id: I37a4aa094de51e9f58e72851f3bc9dc4767dd79b
* For every commit, repopick checks the last commits for the presence of
the commits to be picked
* In every project a change should go in, it calls "git rev-list --count"
to find the maximum amount of commits to be searched, but it only cares
if there are less (or equal) commits at all than to be checked
* Therefore, we can limit the counting to one more than we want to check
* This is relevant for example for fw/b, where there is a huge amount of
changes and therefore a lot of time used to count
* Example: fw/b
git rev-list --count HEAD: 46.693s
git rev-list --count --max-count=1000 : 0.019s
* Real-life example:
repopick -t qs-lightmode
Old: 2m33.375s
New: 0m6.657s
Change-Id: If0500574fb282e332996b606dd9926841f8e0e88
breakfast may get stuck if the first breakfast for a target is
interrupted before cloning but after adding repositories to local
manifest. Re-doing breakfast skips syncing the repositories if
they're added to the manifest even if not cloned.
Change-Id: Ifefd08fa6da8785c1d5de0b27ac1a08a782f21d6
* Move $PATCHELF exporting from oat2dex to setup_vendor
* Since it requires $HOST to be set, let's make it global, so oat2dex can also use it
Change-Id: I4556a3c19cd01c9b3a68d358d19a361217d9c3c1
* This is indeed a nice feature, but it's absolutely a bad idea to
hardcode dependencies of prebuilt modules in proprietary-files.txt.
Change-Id: I8c2d75ff62c0c7862f40e777bcbad4d9cebc074c
This is to allow repopick to determine a branch even on a
revision locked manifest. If upstream is not set, it falls
back to revision.
Per the repo manifest documentation:
Attribute upstream: Name of the Git ref in which a sha1 can be
found. Used when syncing a revision locked manifest in -c mode to
avoid having to sync the entire ref space. Project elements not
setting their own upstream will inherit this value.
Change-Id: I12876f7e3b440f9eab6d1b96eba9b18a13cff2e0
When a manifest project path and project name is identical, the
repo manifest parser returns None for the project path. Since
both name and path are required, fall back to using name for path
when path is None.
Change-Id: I2fb3cc0cc643808a3049171804742f249d737679
* zip stores timestamp for all included files. The timestamps of dex
files are different across different runs, result in inconsistent
checksum of output apk/jar.
* Workaround the issue by using fixed timestamp for dex files.
Change-Id: I21f3a7e32cdfdb07c5f5c140df2e797efd4a8005