summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* tox: Make all tests timeout after 5minDaniel Kutik2022-11-261-1/+6
| | | | | | | | | | | Use pytest-timeout to make sure tests don't get stuck for more than 5 minutes. In future individual tests can exceed this timeout by being decorated with @pytest.mark.timeout(600). Signed-off-by: Daniel Kutik <daniel.kutik@lavawerk.com> Change-Id: I8f5b61a20230c22a86fd5636297c78f41369449a Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/353124 Reviewed-by: Mike Frysinger <vapier@google.com>
* Update GH Action test-ci.yml dependenciesDaniel Kutik2022-11-261-3/+3
| | | | | | | | | | | Updating version of checkout and setup-python actions. Also making sure we install tox, tox-gh-actions into our venv. Changes based on tox-gh-actions README. Signed-off-by: Daniel Kutik <daniel.kutik@lavawerk.com> Change-Id: I18946a8b41d5a3c350deee3ddbde77b4c0b3bdfe Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/353123 Reviewed-by: Mike Frysinger <vapier@google.com>
* tox: enable python 3.10 testingDaniel Kutik2022-11-252-2/+3
| | | | | | | | | | | | Note that in YAML, Python version 3.10 would be parsed as 3.1, hence I put all the Python versions in quotes. More on this: https://github.com/actions/setup-python/issues/160 Signed-off-by: Daniel Kutik <daniel.kutik@lavawerk.com> Change-Id: Iba380a6a6a6de8486486c8981e712c7bf4dfe759 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/353019 Reviewed-by: Mike Frysinger <vapier@google.com>
* Resolved DeprecationWarning for currentThread()Daniel Kutik2022-11-251-1/+1
| | | | | | | | | | | | | In Python 3.10 onwards we see a DeprecationWarning: currentThread() is deprecated, use current_thread() instead. Same goes for getName(), replaced by name attribute. Test: tox (python 3.6 - 3.10) Signed-off-by: Daniel Kutik <daniel.kutik@lavawerk.com> Change-Id: I80ec819752a5276cff3b2dadba0ec10cc92d09a4 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/353018 Reviewed-by: Mike Frysinger <vapier@google.com>
* Set repo version to 2.30 (current)Josip Sokcevic2022-11-231-1/+1
| | | | | | | Change-Id: Ie01ea8475b978f950471b0a52fc576e59060c6c5 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/352694 Reviewed-by: Jonathan Nieder <jrn@google.com> Tested-by: Josip Sokcevic <sokcevic@google.com>
* Extract env building into a testable helper.v2.30Sam Saccone2022-11-162-29/+89
| | | | | | | | | | | | | Previously env dict building was untested and mixed with other mutative actions. Extract the dict building into a dedicated function and author tests to ensure the functionality is working as expected. BUG: b/255376186 BUG: https://crbug.com/gerrit/16247 Change-Id: I0c88e53eb285c5c3fb27f8e6b3a903aedb8e02a8 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/351874 Reviewed-by: LaMont Jones <lamontjones@google.com> Tested-by: Sam Saccone <samccone@google.com>
* Do not set ALT object dirs when said path resolves to the same dir.Sam Saccone2022-11-161-2/+4
| | | | | | | | | | | Due to symlink resolution git was treating this as two different directories even if the paths were the same. This mitigates the git core bug inside of repo (while the git core fix is being worked on). Bug: b/255376186 Bug: https://crbug.com/gerrit/16247 Change-Id: I12458ee04c307be916851dddd36231997bc8839e Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/351836 Tested-by: Sam Saccone <samccone@google.com> Reviewed-by: LaMont Jones <lamontjones@google.com>
* tests: Fix update-manpages test.LaMont Jones2022-11-161-1/+1
| | | | | | | Change-Id: I58d85e06edeb9208a782957acc982e996c026ed2 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/351854 Reviewed-by: Sam Saccone <samccone@google.com> Tested-by: LaMont Jones <lamontjones@google.com>
* subcmds: display correct path multitree messagesLaMont Jones2022-11-153-17/+21
| | | | | | | | | Correct usage of project.relpath for multi manifest workspaces. Change-Id: Idc32873552fcdae6eec7b03dde2b2f31134b72fd Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/347534 Reviewed-by: Xin Li <delphij@google.com> Tested-by: LaMont Jones <lamontjones@google.com>
* update-manpages: explicitly strip color codesLaMont Jones2022-11-143-7/+49
| | | | | | | | | | | | On some systems, help2man produces color codes in the output. Remove them to avoid manpage churn. Also begin adding unit tests. Change-Id: I3f0204b19d9cae524d3cb5fcfb61ee309b0931fc Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/349655 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
* repo_trace: drop notification of trace file name.LaMont Jones2022-11-141-6/+15
| | | | | | | | | | The trace file is local to the workspace. We shouldn't tell the user that on every command that they run. Change-Id: I8674ab485bd5142814a043a225bf8aaca7795752 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/351234 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
* repo_trace: adjust formatting, update man page.LaMont Jones2022-11-142-36/+36
| | | | | | | | | No behavior change in this CL. Change-Id: Iab1eb01864ea8a5aec3a683200764d20786b42de Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/351474 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
* upload: track projects by path, rather than nameLaMont Jones2022-11-141-5/+7
| | | | | | | | | | | | Since the same project can be checked out in multiple paths, we need to track the "to be uploaded" projects by path, rather than project name. Bug: crbug.com/gerrit/16260 Test: manual Change-Id: Ic3dc81bb8acb34886baa6299e90a49c7ba372957 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/351054 Reviewed-by: Xin Li <delphij@google.com> Tested-by: LaMont Jones <lamontjones@google.com>
* trace: restore Progress indicator.v2.29.9LaMont Jones2022-11-102-11/+6
| | | | | | | | | | | If we are not tracing to stderr, then we should still have progress indication. Change-Id: Ifc9678e1fccbd92251e972fcf25aad6369d60e15 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/351195 Reviewed-by: Sam Saccone <samccone@google.com> Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
* sync: REPO_AUTO_GC=1 to restore old behavior.LaMont Jones2022-11-101-2/+10
| | | | | | | | | | Add an environment variable to restore previous behavior, since the older version of repo does not support `--auto-gc`. Change-Id: I874dfb8fc3533a97b8adfd52125eb3d1d75e2f3c Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/351194 Reviewed-by: Sam Saccone <samccone@google.com> Tested-by: LaMont Jones <lamontjones@google.com>
* Fix TRACE_FILE renaming.v2.29.8Joanna Wang2022-11-093-13/+14
| | | | | | | | | Bug: b/258073923 Change-Id: I997961056388e1550711f73a6310788b5c7ad4d4 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/350934 Tested-by: Joanna Wang <jojwang@google.com> Reviewed-by: LaMont Jones <lamontjones@google.com>
* sync: no garbage collection by defaultLaMont Jones2022-11-084-4/+43
| | | | | | | | | | | Adds --auto-gc and --no-auto-gc (default) options to control sync's behavior around calling `git gc`. Bug: b/184882274 Change-Id: I4d6ca3b233d79566f27e876ab2d79f238ebc12a9 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/344535 Reviewed-by: Xin Li <delphij@google.com> Tested-by: LaMont Jones <lamontjones@google.com>
* Improve always-on-traceLaMont Jones2022-11-082-10/+17
| | | | | | | | | | | | Notes to the user need to go to stderr, and tracing should not be on for fast exiting invocations (such as --help). This makes it so that release/update-manpages works. Change-Id: Ib183193c868a78c295a184c01c4532cd53d512eb Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/350794 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
* Merge branch stable into main (--strategy=ours).LaMont Jones2022-11-080-0/+0
|\ | | | | | | | | | | | | | | | | This will allow the next repo release to be a fast-forward on stable. * origin/stable: v2.29.7: Revert back to v2.29.5 Change-Id: I3e52f76766807c58f56d3e246fa142ed55ede59b
| * v2.29.7: Revert back to v2.29.5v2.29.7LaMont Jones2022-11-0815-379/+149
|/ | | | | | | This change reverts stable to v2.29.5, to fix clients that received v2.29.6, and keep future updates simpler. Change-Id: I2f5c52c466b7321665c9699ccdbf98f928483fee
* GitcInit: fix gitc-init failurev2.29.6Woody Lin2022-11-041-1/+2
| | | | | | | | | | | | Aligns argument usage of refactored GitcManifest (8c1e9cbef "manifest_xml: refactor manifest parsing from client management") to fix the `repo gitc-init` error: `fatal: manifest_file must be abspath`. Change-Id: I1728032cce3f39ed1077bbb7ef714410c2c49e1a Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/350374 Tested-by: Woody Lin <woodylin@google.com> Reviewed-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
* sync: clear preciousObjects when set in error.LaMont Jones2022-11-034-31/+126
| | | | | | | | | | | | | | If this is a project that is not using object sharing (there is only one copy of the remote project) then clear preciousObjects. To override this for a project, run: git config --replace-all repo.preservePreciousObjects true Change-Id: If3ea061c631c5ecd44ead84f68576012e2c7405c Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/350235 Reviewed-by: Jonathan Nieder <jrn@google.com> Tested-by: LaMont Jones <lamontjones@google.com>
* Set tracing to always on and save to .repo/TRACE_FILE.Joanna Wang2022-11-0313-110/+244
| | | | | | | | | | | | - add `--trace_to_stderr` option so stderr will include trace outputs and any other errors that get sent to stderr - while TRACE_FILE will only include trace outputs piggy-backing on: https://gerrit-review.googlesource.com/c/git-repo/+/349154 Change-Id: I3895a84de4b2784f17fac4325521cd5e72e645e2 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/350114 Reviewed-by: LaMont Jones <lamontjones@google.com> Tested-by: Joanna Wang <jojwang@google.com>
* tests: Make the tests pass for Python < 3.8Peter Kjellerstedt2022-10-281-7/+7
| | | | | | | | | | | | | | | | Before Python 3.8, xml.dom.minidom sorted the attributes of an element when writing it to a file, while later versions output the attributes in the order they were created. Avoid these differences by sorting the attributes for each element before comparing the generated manifests with the expected ones. This corresponds to commit 5d58c18, but for new tests introduced since it was integrated. Change-Id: I5c360656a0968e6e8d57eb068c8e87da7dfa61c1 Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/349917 Reviewed-by: LaMont Jones <lamontjones@google.com>
* init: add --manifest-depth for shallow manifest clonev2.29.5LaMont Jones2022-10-275-4/+28
| | | | | | | | | | | | | | | | | | | People rarely care about the history of the manifest repo. Add a parameter to specify depth for the manifest. For now, make the default behavior the same as the current behavior. At a future date, the default will be changed to 1. People who need the full history should begin passing --manifest-depth=0 to preserve the behavior when the default changes. We can't reuse the existing --depth option because that applies to all projects we clone, not just the manifest repo. Bug: https://crbug.com/gerrit/16193, https://crbug.com/gerrit/16358 Change-Id: I9130fed3eaed656435c778a85cfe9d04e3a4a6a0 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/349814 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
* Revert "init: change --depth default to 1 for manifest repo"LaMont Jones2022-10-274-15/+0
| | | | | | | | | | | | This reverts commit 076d54652e0025e1360f66e483926477b910b02e. Reason for revert: crbug.com/gerrit/16358 Change-Id: I2970eb50677cca69786f71edffe4aa5271cf139f Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/349834 Reviewed-by: Sam Saccone <samccone@google.com> Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
* sync: uninitialized variable on mirror sync failureLaMont Jones2022-10-261-0/+1
| | | | | | | | | | | | When repo sync fails, if the workspace is a mirror, an uninitialized variable is referenced. Bug: crbug.com/gerrit/16356 Change-Id: I1dba9f92319b9cbfd18460327560a395c88a089f Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/349654 Reviewed-by: Sam Saccone <samccone@google.com> Reviewed-by: Xin Li <delphij@google.com> Tested-by: LaMont Jones <lamontjones@google.com>
* sync: do not require python 3.9v2.29.4LaMont Jones2022-10-251-5/+5
| | | | | | | | | | | | Use pre-3.9 syntax for NamedTuple, so that users do not need to have python 3.9 or later installed. Bug: b/255632143, crbug.com/gerrit/16355 Test: manually verified with python 3.8 Change-Id: I488d2d5267ed98d5c55c233cc789e629f1911c9d Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/349395 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Jonathan Nieder <jrn@google.com>
* sync: only use --cruft when git supports it.v2.29.3LaMont Jones2022-09-221-3/+9
| | | | | | | | | | | git gc --cruft was added in 2.37.0. Bug: https://crbug.com/gerrit/16270 Change-Id: I71e46741e33472a92f16d6f11c51a23e1e55d869 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/346577 Reviewed-by: Emily Shaffer <emilyshaffer@google.com> Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Mike Frysinger <vapier@google.com>
* project: Add a missing call to _CopyAndLinkFilesPeter Kjellerstedt2022-09-201-0/+2
| | | | | | | | | | | | | If a file that is copied using a <copyfile> tag is modified and not committed or if it is committed to a detached head, then running `repo sync` would update the target file as expected. However, if the modified file is committed to a local branch, then running `repo sync' would not update the target file as expected. Change-Id: Ic98e37d1c2e51fd1bf15abf149c7d06190cfd6d2 Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/344475 Reviewed-by: Mike Frysinger <vapier@google.com>
* manifest: allow extend-project to override dest-branch and upstreamErik Elmeke2022-09-203-0/+38
| | | | | | | | Bug: https://crbug.com/gerrit/16238 Change-Id: Id6eff34791525b3df690e160c911c0286331984b Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/345144 Tested-by: Erik Elmeke <erik@haleytek.corp-partner.google.com> Reviewed-by: Mike Frysinger <vapier@google.com>
* sync: use namedtuples for internal return valuesLaMont Jones2022-09-193-21/+103
| | | | | | | | | | | | | Replace tuple returns with namedtuples, to simplify adding new fields. Extend the Sync_NetworkHalf return value to: - success: True if successful (the former return value) - remote_fetched: True if we called `git fetch` Change-Id: If63c24c2f849523f77fa19c05bbf23a5e9a20ba9 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/344534 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: LaMont Jones <lamontjones@google.com>
* sync: incorporate review feedback.LaMont Jones2022-09-191-31/+32
| | | | | | | | | | This incorporates feedback from https://gerrit-review.googlesource.com/c/git-repo/+/345114 Change-Id: I04433d6435b967858f1ffb355217d90bc48c1e5d Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/345894 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Mike Frysinger <vapier@google.com>
* diffmanifests: Handle Missing Projects in Repo WorkspaceShashank Devaraj2022-09-152-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default there are 4 categories in the diffmanifests api puts the diffs in to - added, removed, changed and unreachable Example of command - repo diffmanifests 1.xml 2.xml added - list down the projects present in second manifest but not in first removed - list down the projects present in first but not in second changed - list down the changes and the differences for each project unreachable - when it encounters revision value in a project is incorrect But, when there are projects present in both manifests and could not find in local workspace where we have cloned the repo(because of different/subset manifest xml) - this will create unhandled exception Now we have added a 5th category called 'missing' - where in such cases it will handle the scenario and print the log for user Example: added projects : project_2 at revision e6c8a59832c05dc4b6a68cee6bc0feb832181725 removed projects : project_1 at revision e6c8a59832c05dc4b6a68cee6bc0feb832181725 changed projects : project_3 changed from 3bb890e1286f04e84d505e5db48e0ada89892331 to e434b3736f11537c67590fefadfe4495895e9785 missing projects : project_4 Change-Id: I244e8389bff7e95664c29d3dcb61e22308e3a573 Signed-off-by: Shashank Devaraj <shashankkarthik@gmail.com> Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/344774 Reviewed-by: Mike Frysinger <vapier@google.com>
* update-manpages: force use of active interpMike Frysinger2022-09-121-3/+11
| | | | | | | | | | Since the repo wrapper uses #!/usr/bin/python, use the python3 that this wrapper is actively using. Change-Id: I03d1e54418d18a504eec628e549b4cc233621c45 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/345294 Reviewed-by: LaMont Jones <lamontjones@google.com> Tested-by: Mike Frysinger <vapier@google.com>
* sync: save any cruft after calling git gc.v2.29.2LaMont Jones2022-09-091-4/+44
| | | | | | | | | | | | | | | | | | | This is ENABLED BY DEFAULT due to data corruption potential. To disable it, set REPO_BACKUP_OBJECTS=0 in the environment. While the workspace will grow over time, this provides a recovery path for an issue where objects are erroneously deleted from the workspace, resulting in lost work. Once the root cause is determined, we will be able to stop saving backups again. Backups are kept in .git/objects/.repo/pack.bak Bug: https://crbug.com/gerrit/16247 Change-Id: Ib8b5c9b4bf0dfa9e29606e0f5c881d65996b2a40 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/345114 Reviewed-by: Jonathan Tan <jonathantanmy@google.com> Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
* Revert "project: initialize new manifests in temp dirs"LaMont Jones2022-09-081-37/+5
| | | | | | | | | | | This reverts commit 07d21e6bde9bd7efdfb8f25f2ed23f023daa5c1f. Reason for revert: crbug.com/gerrit/16230, b/244467766 - breaks aosp-master-with-phones case Change-Id: Id967d92f8622c2c13356b09e46ece9f20040aabc Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/344314 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
* sync: Correctly sync multi manifest workspacesv2.29.1LaMont Jones2022-08-241-6/+5
| | | | | | | | | | | When actually fetching the manifests, start at the correct (sub) manifest. Bug: https://crbug.com/gerrit/16198 Change-Id: I39fdd726f1917ef4277a0b7c83663c8f49167466 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343914 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Mike Frysinger <vapier@google.com>
* manifest_xml: improve topdir accuracy.v2.29LaMont Jones2022-08-221-1/+4
| | | | | | | | | | Do not include a trailing path separator when submanifest_path is empty. Bug: https://crbug.com/gerrit/16104 Change-Id: Ia65e355de25bdb1067fe50ab1d47db6e798d5a71 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343674 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Mike Frysinger <vapier@google.com>
* init: hide identify spam when reinitializingMike Frysinger2022-08-221-3/+3
| | | | | | | | | | We don't want to keep showing the user config notice when reinitializing existing checkouts, so hide it. Change-Id: Id40610bd683396cbff7e1aefc092c8b77c397783 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343536 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: LaMont Jones <lamontjones@google.com>
* init: show a notice when reinitializingMike Frysinger2022-08-221-0/+7
| | | | | | | | | | | Make it clear to users when we're reinitializing an existing checkout in case they weren't expecting it. Bug: https://crbug.com/gerrit/12396 Change-Id: I22e89ae041a8e7b147c9d06a82f1302dd5807ae0 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343535 Reviewed-by: LaMont Jones <lamontjones@google.com> Tested-by: Mike Frysinger <vapier@google.com>
* stage: add missing flush before project promptMike Frysinger2022-08-221-0/+1
| | | | | | | | Bug: https://crbug.com/gerrit/13223 Change-Id: Ib279d86a52e1035e02d6f7d8f053c3a43e721032 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343555 Reviewed-by: LaMont Jones <lamontjones@google.com> Tested-by: Mike Frysinger <vapier@google.com>
* upload: respect --yes with large upload confirmationMike Frysinger2022-08-221-9/+10
| | | | | | | | | | If the user passes in --yes, don't prompt them to confirm large uploads. Bug: https://crbug.com/gerrit/14085 Change-Id: Ic801b21be80ba181801531acd4af5057ec10c11c Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343554 Reviewed-by: LaMont Jones <lamontjones@google.com> Tested-by: Mike Frysinger <vapier@google.com>
* launcher: make missing .repo/repo/repo an errorMike Frysinger2022-08-221-2/+3
| | | | | | | | | | | | | If the specified repo dir doesn't actually have a `repo` program, we only show a warning before continuing on, and then we fail in weird ways. Since we really need the repo dir to contain repo, have this be fatal and delete the results. Bug: https://crbug.com/gerrit/13526 Change-Id: Icee4cba96136d470cbb459a81918c40205078f98 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343538 Reviewed-by: LaMont Jones <lamontjones@google.com> Tested-by: Mike Frysinger <vapier@google.com>
* launcher: initialize repo in a temp dirMike Frysinger2022-08-221-1/+6
| | | | | | | | | | | | In case something goes wrong in the initial setup of the repo dir, clone it into a temporary .repo/repo.tmp/ directory first, and then rename it only when things have finished fully. Bug: https://crbug.com/gerrit/13526 Change-Id: Ib0f5a975e4d436b0fb616fac70f5789c4e02a61a Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343537 Reviewed-by: LaMont Jones <lamontjones@google.com> Tested-by: Mike Frysinger <vapier@google.com>
* cherry-pick: tighten up outputMike Frysinger2022-08-221-2/+4
| | | | | | | | | | If stdout or stderr are empty, don't print empty lines. Also trim any trailing lines so we don't show excess ones. Change-Id: I65fcea191e1f725be03c064cb510578632466013 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343516 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: LaMont Jones <lamontjones@google.com>
* git_command: fix input passingMike Frysinger2022-08-221-6/+1
| | | | | | | | | | | | | | | | After reworking this function to use subprocess for output capturing in commit c87c1863b1df392042c8859b81475a65315c8a9d ("git_command: switch process capturing over to subprocess"), passing input via stdin write no longer works. We have to pass it via communicate(), and we have to pass it a string instead of bytes (since we always use encoding='utf-8' now). This is fine since the only user of the input= setting today is already passing in a string. Bug: https://crbug.com/gerrit/16151 Change-Id: Ic58db1e568b8f8aa840a6d62c5a157c14aa6d9bc Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343515 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: LaMont Jones <lamontjones@google.com>
* project: initialize new manifests in temp dirsMike Frysinger2022-08-221-5/+37
| | | | | | | | | | | | | | | | | | | | | | If initializing the manifest fails for any reason, don't leave it in a half complete state. This can cause problems if/when the user tries to reinit because different codepaths will be taken. For example, if we initialize manifests.git and don't finish probing the remote to see what default branch it uses, we end up always using "master" even if that isn't what the remote uses. To avoid all of this, use .tmp dirs when initializing, and rename to the final path only after we complete all the right steps. We should roll this out to all projects we clone, but start with the manifest project for now. Bug: https://crbug.com/gerrit/13526 Bug: https://crbug.com/gerrit/15805 Change-Id: I0214338de69ee11e090285c6b0b211052804af06 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343539 Reviewed-by: LaMont Jones <lamontjones@google.com> Tested-by: Mike Frysinger <vapier@google.com>
* init: change --depth default to 1 for manifest repoMike Frysinger2022-08-184-0/+15
| | | | | | | | | | | | | | | People rarely care about the history of the manifest repo. Change the default to 1 to speed up initial setup. If people really want the full history, they can pass --manifest-depth=0. We can't reuse the existing --depth option because that applies to all projects we clone, not just the manifest repo. Bug: https://crbug.com/gerrit/16193 Change-Id: Ideab1712e9ffc743b9bae97903e074d7d429b134 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343435 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: LaMont Jones <lamontjones@google.com>
* add a few more docs to existing funcsMike Frysinger2022-08-182-0/+13
| | | | | | | Change-Id: I27317a59aba67c05ca1fd333e8f064c0edccb209 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343185 Reviewed-by: LaMont Jones <lamontjones@google.com> Tested-by: Mike Frysinger <vapier@google.com>