-
Notifications
You must be signed in to change notification settings - Fork 0
[WILD] CodeReviewer APPEARS #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
KeyboardInterrupt is handled during NetworkHalf. This patch handles KeyboardInterrupt during LocalHalf. Bug: b/372069163 Change-Id: I26847f7ca3cdf1fe57b265b4f6b18cc8102d2921 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/447401 Tested-by: Josip Sokcevic <[email protected]> Reviewed-by: Gavin Mak <[email protected]>
Change-Id: Icef4f28fbdb9658892611def7589f5eba43c952c Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/447721 Reviewed-by: Scott Lee <[email protected]> Commit-Queue: Josip Sokcevic <[email protected]> Tested-by: Josip Sokcevic <[email protected]>
When a repository is partially cloned, no longer needed blobs are never removed. To reclaim some of disk space, allow user to pass --repack which affects only repositories with filter=blob:none and if projects are not shared. Change-Id: I0608172c9eff82fb8a6b6ef703eb109fedb7a6cc Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/447722 Commit-Queue: Josip Sokcevic <[email protected]> Tested-by: Josip Sokcevic <[email protected]> Reviewed-by: Scott Lee <[email protected]>
When repo is initializing a git repository, it calls `git read-tree`. During such operation, git is restoring workspace based on the current index. However, some things can go wrong: a user can run out of disk space, or, in case of partial clone, user may no longer reach the remote host. That will leave affected repository in a bad state with partially checked out workspace. The follow up repo sync won't try to fix such state. This change removes .git symlink, which will force the next `repo sync` to redo Git repository setup. Bug: b/363171216 Bug: b/390161127 Change-Id: I57db4b6cae0ef21826dc7cede4d3bf02cfc3d955 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/447801 Reviewed-by: Scott Lee <[email protected]> Tested-by: Josip Sokcevic <[email protected]> Commit-Queue: Josip Sokcevic <[email protected]>
Currently, repo ignores the XDG path for the git config file, and creates a new one in the user's home directory. This commit changes the behavior to prefer the XDG path if it exists, which matches git behavior and avoids littering the home directory. Bug: 40012443 Change-Id: Icd3ec6db6b0832f47417bbe98ff9461306b51297 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/448385 Tested-by: lmaor xenix <[email protected]> Reviewed-by: Mike Frysinger <[email protected]>
Change-Id: Iffe45d85a54dc380cdd37bbbbe64b058eacad0a9 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/449901 Reviewed-by: Josip Sokcevic <[email protected]> Tested-by: Mike Frysinger <[email protected]> Commit-Queue: Mike Frysinger <[email protected]>
The existing documentation on smart-sync behavior is a bit light on details, and out of date wrt what the code actually does. Start a dedicated document and fill it out more. Change-Id: I1a8a3ac6edf9291d72182ad55db865035d9b683e Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/450002 Commit-Queue: Mike Frysinger <[email protected]> Tested-by: Mike Frysinger <[email protected]> Reviewed-by: Josip Sokcevic <[email protected]>
This reverts commit 61224d0. Reason for revert: the manifest will be updated during in the post-upgrade process, and that can result in a missing object in LocalHalf, since NetworkHalf is not skipped. Bug: b/392979411 Change-Id: I8a46e5b54093ed78285c8b30f000bb08a8244179 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/450181 Tested-by: Josip Sokcevic <[email protected]> Commit-Queue: Josip Sokcevic <[email protected]> Reviewed-by: Scott Lee <[email protected]>
Change the bare checkout directory for submodules from 'subprojects' to 'modules'. Git expects bare submodule checkouts to be in the 'modules' directory. If old subproject directories are found, they will be migrated to the new modules directory. This change is the first step in ensuring Git can understand repo's submodules to some extent. Change-Id: I385029f1bb55d040616d970d6ffb4bb856692520 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/444881 Tested-by: Kaushik Lingarkar <[email protected]> Reviewed-by: Josip Sokcevic <[email protected]>
This change takes another step towards ensuring Git can understand repo's submodules to some extent. Replace the old '.git' symlink with gitfile[1] pointing to the bare checkout of the submodule. This is required for Git's 'recurse submodules' opts to work with repo's submodules as '.git' is expected to be writable by Git when recursing over submodules. [1] https://git-scm.com/docs/gitrepository-layout#_description Change-Id: I52d15451768ee7bd6db289f4d2b3be5907370d42 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/446181 Tested-by: Kaushik Lingarkar <[email protected]> Reviewed-by: Josip Sokcevic <[email protected]> Reviewed-by: Mike Frysinger <[email protected]> Reviewed-by: Nasser Grainawi <[email protected]>
This change moves further towards ensuring Git can understand repo's submodules. 'submodule init' is used to make the submodules active[1]. [1] https://git-scm.com/docs/gitsubmodules#_active_submodules Change-Id: I0c20ff1991101fc5be171e566d8fb644aab47200 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/446182 Tested-by: Kaushik Lingarkar <[email protected]> Reviewed-by: Nasser Grainawi <[email protected]> Reviewed-by: Josip Sokcevic <[email protected]> Reviewed-by: Mike Frysinger <[email protected]>
If tags are omitted from the remote pack list, they must be present in local pack. However, local packs don't have promisor objects, meaning that all blobs must be available locally, and therefore all missing blobs will be downloaded during rev-list phase. Git downloads those sequentially, by invokving fetch operation (rev-list/fetch). Instead of downloading tags' blobs, instruct Git to include all tags in remote rev-list operation. This change was tested with `git fsck --all`. [email protected] Bug: b/392732561 Change-Id: Id94a40aebbe4f084c952329583d559d296db1a11 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/451422 Reviewed-by: Yiwei Zhang <[email protected]> Tested-by: Josip Sokcevic <[email protected]> Commit-Queue: Josip Sokcevic <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some of these file-handling routines seem a little fragile to me, although it might be the compromises necessary for cross-platform support.
adlai
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've still got lots of reading around to do!
If the repo index is stale, reset --keep will refuse to reset workspace. An index can be stale if there are any modifications to file node, including mtime, atime, ownership changes, etc. Bug: b/375423099 Change-Id: Ibef03d9d8d2babbb107041707281687342ab7a77 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/460022 Commit-Queue: Josip Sokcevic <[email protected]> Tested-by: Josip Sokcevic <[email protected]> Reviewed-by: Scott Lee <[email protected]>
Git allows to clone submodules as shallow clone [1]. On the other hand, when repo synchronize a projcet with submodules inside, it ignores the shallow parameter. When a project contains submodules, project.py parses the .gitmodules file for URL and path. This parsing does not consider the shallow option. Consequently, this parameter is not propgated to newly created Project instance for that submodule. [1] https://git-scm.com/docs/gitmodules#Documentation/gitmodules.txt-submoduleltnamegtshallow Change-Id: I54fc9c69ae1b8e3cda2801202e3f0c7693b718d2 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/454261 Tested-by: Albert Akmukhametov <[email protected]> Commit-Queue: Albert Akmukhametov <[email protected]> Reviewed-by: Josip Sokcevic <[email protected]> Reviewed-by: Никита Сказкоподателев (Nask) <[email protected]>
Since we require Python 3.6 now in the launcher, swap out our custom RunResult class for the standard subprocess one. Change-Id: Idd8598df37c0a952d3ef828df6e250cab03c6589 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/462341 Reviewed-by: Gavin Mak <[email protected]> Tested-by: Mike Frysinger <[email protected]> Commit-Queue: Mike Frysinger <[email protected]>
Using a generator w/all() causes the code to exit on the first error. We really want to see all errors all the time, so use sum() instead. Change-Id: Ib1adb8de199db9fe727d4b49c890b4d5061e9e6b Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/462901 Tested-by: Mike Frysinger <[email protected]> Commit-Queue: Mike Frysinger <[email protected]> Reviewed-by: Scott Lee <[email protected]>
Our recipes have been disabling a bunch of tests. To increase visibility, and to make it easier to test changes, move that logic to this script. Change-Id: I3894f047715177c0f1d27a2fe4c3490972dab204 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/462881 Tested-by: Mike Frysinger <[email protected]> Reviewed-by: Gavin Mak <[email protected]>
Move the test disable logic even closer to the exact test that's disabled. This way people updating tests have a better chance of seeing they'll get reduced coverage in the CQ. Change-Id: I57c1a073a844019798b27e14d742fd32925d9ae8 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/462882 Tested-by: Mike Frysinger <[email protected]> Reviewed-by: Gavin Mak <[email protected]> Commit-Queue: Mike Frysinger <[email protected]>
Requires a little reformatting in the tree. Change-Id: Iaa40fe0dfca372c49c04cc26edccb5f7b0c2a8ad Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/462883 Commit-Queue: Mike Frysinger <[email protected]> Reviewed-by: Gavin Mak <[email protected]> Tested-by: Mike Frysinger <[email protected]>
We updated run_tests to use black-25, so update tox too. Change-Id: I7ee6471fbc78825bd2dbc8c1f8dab9dc10460852 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/463601 Tested-by: Mike Frysinger <[email protected]> Reviewed-by: Scott Lee <[email protected]> Commit-Queue: Mike Frysinger <[email protected]>
Since we require Python 3.6 now in the launcher, switch to NamedTuple so we get better documentation & typing information. Change-Id: Ic58fdc07db02fc49166eccbbc3e527f474973424 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/463721 Reviewed-by: Gavin Mak <[email protected]> Tested-by: Mike Frysinger <[email protected]> Commit-Queue: Mike Frysinger <[email protected]>
Since we require Python 3.6 now in the launcher, swap out our custom RunError class for the standard subprocess one. Change-Id: Id0ca17c40e22ece03e06366a263ad340963f979d Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/464401 Commit-Queue: Mike Frysinger <[email protected]> Reviewed-by: Scott Lee <[email protected]> Tested-by: Mike Frysinger <[email protected]>
We use global when we need to write to a variable, not read it. This function only reads, so drop the keyword. Change-Id: Iee91998fba67fd3e8ebaf2f4a79f95032f70b1c0 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/464501 Reviewed-by: Scott Lee <[email protected]> Tested-by: Mike Frysinger <[email protected]> Commit-Queue: Mike Frysinger <[email protected]>
repo attempts to create /etc/.repo_gitconfig.json file, and fails if root file system is mounted read-only. Removing non-existing file on read-only filesystem results in EROFS instead of ENOENT. Bug: 401018409 Change-Id: I64edc0567fb88649f3fd8cacb65a8780744640d4 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/458821 Reviewed-by: Mike Frysinger <[email protected]> Tested-by: Egor Duda <[email protected]> Commit-Queue: Egor Duda <[email protected]>
Change-Id: I507da20d3b7234e9f2a22d7654a6405b362eebaf Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/464541 Reviewed-by: Gavin Mak <[email protected]> Tested-by: Mike Frysinger <[email protected]> Commit-Queue: Mike Frysinger <[email protected]>
If you try running this from a subdir, then most of the tests fail because they assume they're running from the top of the source tree. Change all the tests to actually run there. For example: cd docs && ../run_tests Change-Id: I92e17476393a108e56b58e049193b9fd72c5b7ba Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/464841 Reviewed-by: Gavin Mak <[email protected]> Tested-by: Mike Frysinger <[email protected]> Commit-Queue: Mike Frysinger <[email protected]>
Warn users if the effective job count specified via `-j`, `--jobs-network`, or `--jobs-checkout` exceeds a threshold (currently 100). This encourages users to use more reasonable values. Bug: 406868778 Bug: 254914814 Change-Id: I116e2bbaf3dc824c04d1b2fbe52cf9ca5be77b9a Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/466801 Reviewed-by: Mike Frysinger <[email protected]> Commit-Queue: Gavin Mak <[email protected]> Tested-by: Gavin Mak <[email protected]>
Minor fix, but just in case, provides properly quoted commands for people to copy & paste. Change-Id: Ia9fce5c0df9f51cbed9d49861adcf6821251e46f Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/466821 Tested-by: Mike Frysinger <[email protected]> Commit-Queue: Mike Frysinger <[email protected]> Reviewed-by: Gavin Mak <[email protected]>
This fixes the double "done" text on successful interleaved sync. Bug: 421935613 Change-Id: I4f01418cb0340129a8f0a2a5835f7e3fa6a6b119 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/487081 Reviewed-by: Scott Lee <[email protected]> Tested-by: Gavin Mak <[email protected]> Commit-Queue: Gavin Mak <[email protected]>
Don't directly manipulate `.git/HEAD` since it bypasses Git's internal state management. Bug: 432200791 Change-Id: I1c9264bcf107d34574a82b60a22ea2c83792951b Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/491841 Commit-Queue: Gavin Mak <[email protected]> Reviewed-by: Scott Lee <[email protected]> Tested-by: Gavin Mak <[email protected]>
This fixes two issues: 1. the progress bar could show a count greater than the total if new projects were discovered mid-sync. Update the progress bar total dynamically 2. Make "Stall detected" error message more actionable Bug: 432206932 Change-Id: Ie2a4ada5b1770cae0302fb06590641c522cbb7e7 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/491941 Tested-by: Gavin Mak <[email protected]> Reviewed-by: Scott Lee <[email protected]> Commit-Queue: Gavin Mak <[email protected]>
Don't directly read `.git/HEAD`, git already has a command for this. Bug: 432200791 Change-Id: Iba030650224143eb07c44da1fa56341d9deb4288 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/492941 Reviewed-by: Scott Lee <[email protected]> Commit-Queue: Gavin Mak <[email protected]> Tested-by: Gavin Mak <[email protected]>
The previous default, "phased" sync (separate network and checkout phases), can now be selected with `--no-interleaved`. Bug: 421935613 Bug: 432082000 Change-Id: Ia8624daa609a28ea2f87f8ea4b42138d8b3e9269 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/489681 Reviewed-by: Scott Lee <[email protected]> Tested-by: Gavin Mak <[email protected]> Commit-Queue: Gavin Mak <[email protected]>
Interleaved sync should not try checkout out a project if it's a mirror. Change-Id: I2549faab197a3202d79a10e44b449b68d53e3fe7 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/492942 Commit-Queue: Gavin Mak <[email protected]> Reviewed-by: Scott Lee <[email protected]> Tested-by: Gavin Mak <[email protected]>
The switch to git rev-parse caused GetHead() to return the literal string 'HEAD' when in a detached state. This broke repo prune, which expects a commit SHA. Bug: 434077990 Change-Id: I80b7d5965749096b59e854f61e913aa74c857b99 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/494401 Reviewed-by: Scott Lee <[email protected]> Commit-Queue: Gavin Mak <[email protected]> Tested-by: Gavin Mak <[email protected]>
Bug: 377538810 Test: on macos, repo sync -j64 Change-Id: I6af4d4e6669dc882f165cbb9142ad4db9b346b73 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/494241 Reviewed-by: Gavin Mak <[email protected]> Commit-Queue: Kuang-che Wu <[email protected]> Tested-by: Kuang-che Wu <[email protected]>
Skip hook if its project is not present on disk. Bug: 434232630 Change-Id: I09a8b412d078af7a068d533f7be320d5b02327be Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/494441 Reviewed-by: Scott Lee <[email protected]> Tested-by: Gavin Mak <[email protected]> Commit-Queue: Gavin Mak <[email protected]>
git rev-parse fails on invalid HEAD, e.g. after incomplete sync, causing NoManifestException. Fall back to v2.56's direct file reading when rev-parse fails. Bug: 435045466 Change-Id: Ia14560335110c00d80408b2a93595a84446f8a57 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/495181 Commit-Queue: Gavin Mak <[email protected]> Reviewed-by: Scott Lee <[email protected]> Tested-by: Gavin Mak <[email protected]>
The _CheckForImmutableRevision method was modified in commit 0e776a5 to include upstream branch validation for superproject scenarios. However, this change inadvertently broke shallow clones when both clone-depth and upstream attributes are specified in regular (non-superproject) manifests. Issue: When upstream is present, _CheckForImmutableRevision performs two additional checks: 1. git rev-list on the upstream reference 2. git merge-base --is-ancestor between revision and upstream In shallow clones, the upstream branch history may not be available locally, causing these checks to fail. This triggers the retry mechanism that removes depth limitations, effectively converting shallow clones to full clones, resulting in excessive disk usage. Fix: Make upstream validation conditional on superproject usage. This preserves the original superproject fix while restoring the method's original behavior for regular scenarios - checking only if the immutable revision (SHA1/tag) exists locally. Note: The SetRevisionId method from the same commit 0e776a5 is left unchanged as it only stores upstream information (no git operations), which is beneficial for preserving branch context for commands like 'repo start' without causing fetch-related issues. The fix ensures that manifests with both clone-depth and upstream work correctly in non-superproject scenarios, maintaining shallow clone efficiency and reducing disk usage. Bug: b/427093249 Change-Id: I00acd4c61b179cd2abf796c2fecb7a2f38016a18 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/493883 Tested-by: Krzysztof Wesolowski <[email protected]> Commit-Queue: Krzysztof Wesolowski <[email protected]> Reviewed-by: Mike Frysinger <[email protected]> Reviewed-by: Kamaljeet Maini <[email protected]> Reviewed-by: Xin Li <[email protected]>
_ProcessSyncInterleavedResults currently only shows stderr_text if verbose. Show it if a sync worker fails, regardless of verbosity. Bug: 438178765 Change-Id: If24dcb10fb5d6857386782d371e3f9c6844dece9 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/498061 Reviewed-by: Scott Lee <[email protected]> Tested-by: Gavin Mak <[email protected]>
Keep track of finished projects, not just successful ones, when deciding which projects still need to be synced. Also project errors are already reported by sync workers so stall detection doesn't need to add failed projects to the error list. Bug: 438178765 Change-Id: Ibf15aad009ba7295e70c8df2ff158215085e9732 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/498062 Reviewed-by: Scott Lee <[email protected]> Tested-by: Gavin Mak <[email protected]>
A race condition occurs when sync redirects sys.stderr to capture worker output, while a background progress thread simultaneously calls fileno() on it. This causes an io.UnsupportedOperation error. Fix by caching the original sys.stderr for all progress bar IO. Change-Id: Idb1f45d707596d31238a19fd373cac3bf669c405 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/498121 Tested-by: Gavin Mak <[email protected]> Reviewed-by: Scott Lee <[email protected]>
Failures in deferred sync actions were not recorded because `_Later.Run` discarded the `GitError` exception. Record the specific error using `syncbuf.fail()` and propagate it for proper error aggregation and reporting. Bug: 438178765 Change-Id: Iad59e389f9677bd6b8d873ee1ea2aa6ce44c86fa Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/498141 Tested-by: Gavin Mak <[email protected]> Reviewed-by: Scott Lee <[email protected]>
When checkout errors occurred in interleaved sync, they were wrapped in a SyncError with no message, causing blank lines in the final summary. Refactor _SyncResult to hold a list of exceptions, ensuring the original error messages are propagated correctly. Bug: 438178765 Change-Id: Ic25e515068959829cb6290cfd9e4c2d3963bbbea Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/498342 Reviewed-by: Scott Lee <[email protected]> Tested-by: Gavin Mak <[email protected]> Commit-Queue: Gavin Mak <[email protected]>
Ensure _git_event_log is initialized before use in _LogMessage. This avoids crashes when _git_event_log is accessed before it's set, such as during repo info. Bug: 435317391 Change-Id: I3adc32d6a9377558e852bbb43f9cf82041fcf1bc Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/498521 Commit-Queue: Gavin Mak <[email protected]> Tested-by: Gavin Mak <[email protected]> Reviewed-by: Scott Lee <[email protected]>
This reverts commit d9cc0a1. Reason for revert: AttributeError: 'Project' object has no attribute 'use_superproject' Bug: b/427093249 Change-Id: I57b285ab21f58b040e68ec14b85425f43f0abcca Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/498641 Reviewed-by: Mike Frysinger <[email protected]> Tested-by: Gavin Mak <[email protected]> Commit-Queue: Gavin Mak <[email protected]>
Google OSS policies say to name this "CONTRIBUTING.md". Change-Id: I037f52a443caacc89868b7c14af91dd3d1b681a9 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/499761 Reviewed-by: Gavin Mak <[email protected]> Tested-by: Mike Frysinger <[email protected]> Commit-Queue: Mike Frysinger <[email protected]>
We've been slightly inconsistent in the license header in files. Standardize them so we can automate checking. Change-Id: I3cdf85c9485d33cac2bb05c8080dfada3e5a5e8d Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/500102 Reviewed-by: Gavin Mak <[email protected]> Tested-by: Mike Frysinger <[email protected]> Commit-Queue: Mike Frysinger <[email protected]>
Change-Id: I20937c365b3f0be76e278d17c05b76a0d5e59deb Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/500101 Tested-by: Mike Frysinger <[email protected]> Reviewed-by: Gavin Mak <[email protected]> Commit-Queue: Mike Frysinger <[email protected]>
Change-Id: Ic0bfa3b03e2ba46d565a5bc2c1b7a7463b7dca2c Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/500103 Commit-Queue: Mike Frysinger <[email protected]> Tested-by: Mike Frysinger <[email protected]> Reviewed-by: Scott Lee <[email protected]>
When callback= is used, optparse does not automatically initialize The destination when a dest= is not specified. Refine the test to allow dest= options when callback= is used even when it seems like it is otherwise redundant. Bug: b/436611422 Change-Id: I5185f95cb857ca6d37357cac77fb117a83db9c0c Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/509861 Tested-by: Mike Frysinger <[email protected]> Commit-Queue: Mike Frysinger <[email protected]> Reviewed-by: Gavin Mak <[email protected]>
This reverts commit 38d2fe1. Reason for revert: The issue described in I00acd4c61 remains unresolved. The previous fix incorrectly accessed use_superproject from the Project class, though it was only defined in ManifestProject. This change uses it from the manifest attr available in the Project class. Bug: b/427093249 Change-Id: Ife6d46cd85840f2989f60c2ca4d5a7dcf5d7477a Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/508821 Reviewed-by: Xin Li <[email protected]> Reviewed-by: Krzysztof Wesolowski <[email protected]> Commit-Queue: Kaushik Lingarkar <[email protected]> Reviewed-by: Gavin Mak <[email protected]> Tested-by: Kaushik Lingarkar <[email protected]>
With the introduction of interleaved sync mode, the submodule activation logic broke because the 'has_submodules' attribute was no longer being populated when needed. With this change, each submodule is initialized when it enters the Sync_LocalHalf stage, whereas previously all submodules were initialized at once when the parent repository entered the Sync_LocalHalf stage. The init is now retried if it fails, as submodules may concurrently modify the parent’s git config, potentially causing contention when attempting to obtain a lock on it. This change makes the submodule activation logic more robust and less prone to breakage. Bug: 444366154 Change-Id: I25eca4ea2a6868219045cfa088988eb01ded47d2 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/509041 Reviewed-by: Gavin Mak <[email protected]> Tested-by: Kaushik Lingarkar <[email protected]> Reviewed-by: Nasser Grainawi <[email protected]> Commit-Queue: Kaushik Lingarkar <[email protected]> Reviewed-by: Scott Lee <[email protected]>
'repo sync --rebase' should do a rebase if it encounters local commits during a 'repo sync'. This was broken by https://gerrit-review.git.corp.google.com/c/git-repo/+/437421, which caused this to execute the '_doff' hook (which stands for 'do fast forward'), which is implemented using 'git merge --no-stat'. This caused *multiple* actual editor windows to pop up (*) during 'repo sync --rebase', asking the user to enter a commit message for the merge. In this CL I explicitly make that code path do a 'git rebase'. (*) and if you use a terminal editor like 'vim', this means you have 2+ concurrent vim windows rendered in the same terminal, while 'repo sync' keeps on printing other output lines, again in the same terminal. The result is .... not pretty to say the least :( Bug: b:434565811 Test: Used it myself for over a week. Change-Id: I0bf3ff181f15b9d5b2e3f85f7f84e302139fdab7 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/518602 Reviewed-by: Mike Frysinger <[email protected]> Tested-by: Jeroen Dhollander <[email protected]> Commit-Queue: Jeroen Dhollander <[email protected]>
This should make it clear to devs what commands are run and which fail in the CI. Change-Id: Ie863540cba6de7da933b4f32947ad09edee4aa45 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/519361 Tested-by: Mike Frysinger <[email protected]> Reviewed-by: Gavin Mak <[email protected]>
Interleaved sync didn't save _fetch_times and _local_sync_state to disk. Phased sync saved them, but incorrectly applied moving average smoothing repeatedly when fetching submodules, and discarded historical data during partial syncs. Move .Save() calls to the end of main sync loops to ensure they run once. Update _FetchTimes.Save() to merge new data with existing history, preventing data loss. Change-Id: I174f98a62ac86859f1eeea1daba65eb35c227852 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/519821 Commit-Queue: Gavin Mak <[email protected]> Reviewed-by: Scott Lee <[email protected]> Tested-by: Gavin Mak <[email protected]>
This allows an existing project to be extended by these elements. Change-Id: I6826e518f39ca86485301491639101943b7e2ae0 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/519781 Reviewed-by: Mike Frysinger <[email protected]> Tested-by: Peter Kjellerstedt <[email protected]> Reviewed-by: Gavin Mak <[email protected]>
Change-Id: I0e7ef5d4189eaaf6878be709b437ecfb57570e3f Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/524921 Commit-Queue: Peter Kjellerstedt <[email protected]> Reviewed-by: Mike Frysinger <[email protected]> Reviewed-by: Gavin Mak <[email protected]> Tested-by: Peter Kjellerstedt <[email protected]>
CodeReviewer uses WILDERNESS
IT IS SUPER EFFECTIVE