diff options
| author | Jason Chang <jasonnc@google.com> | 2023-09-27 11:34:43 -0700 |
|---|---|---|
| committer | LUCI <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-09-27 19:05:16 +0000 |
| commit | 87058c6ca5ec2c66d0850f1015de01ec6c0dd758 (patch) | |
| tree | fdd8233c570dadb44dac658137f5a441a87b670e /project.py | |
| parent | b5644160b74e70e223caa62ad0ca2ce8310cfb87 (diff) | |
| download | git-repo-87058c6ca5ec2c66d0850f1015de01ec6c0dd758.tar.gz | |
Track expected git errors in logs
Sometimes it is expected that a GitCommand executed in repo fails. In
such cases indicate in trace logs that the error was expected.
Bug: b/293344017
Change-Id: If137fae9ef9769258246f5b4494e070345db4a71
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/387714
Commit-Queue: Jason Chang <jasonnc@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Tested-by: Jason Chang <jasonnc@google.com>
Diffstat (limited to 'project.py')
| -rw-r--r-- | project.py | 31 |
1 files changed, 24 insertions, 7 deletions
| @@ -205,7 +205,9 @@ class ReviewableBranch(object): | |||
| 205 | "--", | 205 | "--", |
| 206 | ) | 206 | ) |
| 207 | try: | 207 | try: |
| 208 | self._commit_cache = self.project.bare_git.rev_list(*args) | 208 | self._commit_cache = self.project.bare_git.rev_list( |
| 209 | *args, log_as_error=self.base_exists | ||
| 210 | ) | ||
| 209 | except GitError: | 211 | except GitError: |
| 210 | # We weren't able to probe the commits for this branch. Was it | 212 | # We weren't able to probe the commits for this branch. Was it |
| 211 | # tracking a branch that no longer exists? If so, return no | 213 | # tracking a branch that no longer exists? If so, return no |
| @@ -1593,7 +1595,9 @@ class Project(object): | |||
| 1593 | # See if we can perform a fast forward merge. This can happen if our | 1595 | # See if we can perform a fast forward merge. This can happen if our |
| 1594 | # branch isn't in the exact same state as we last published. | 1596 | # branch isn't in the exact same state as we last published. |
| 1595 | try: | 1597 | try: |
| 1596 | self.work_git.merge_base("--is-ancestor", HEAD, revid) | 1598 | self.work_git.merge_base( |
| 1599 | "--is-ancestor", HEAD, revid, log_as_error=False | ||
| 1600 | ) | ||
| 1597 | # Skip the published logic. | 1601 | # Skip the published logic. |
| 1598 | pub = False | 1602 | pub = False |
| 1599 | except GitError: | 1603 | except GitError: |
| @@ -2304,15 +2308,26 @@ class Project(object): | |||
| 2304 | # if revision (sha or tag) is not present then following function | 2308 | # if revision (sha or tag) is not present then following function |
| 2305 | # throws an error. | 2309 | # throws an error. |
| 2306 | self.bare_git.rev_list( | 2310 | self.bare_git.rev_list( |
| 2307 | "-1", "--missing=allow-any", "%s^0" % self.revisionExpr, "--" | 2311 | "-1", |
| 2312 | "--missing=allow-any", | ||
| 2313 | "%s^0" % self.revisionExpr, | ||
| 2314 | "--", | ||
| 2315 | log_as_error=False, | ||
| 2308 | ) | 2316 | ) |
| 2309 | if self.upstream: | 2317 | if self.upstream: |
| 2310 | rev = self.GetRemote().ToLocal(self.upstream) | 2318 | rev = self.GetRemote().ToLocal(self.upstream) |
| 2311 | self.bare_git.rev_list( | 2319 | self.bare_git.rev_list( |
| 2312 | "-1", "--missing=allow-any", "%s^0" % rev, "--" | 2320 | "-1", |
| 2321 | "--missing=allow-any", | ||
| 2322 | "%s^0" % rev, | ||
| 2323 | "--", | ||
| 2324 | log_as_error=False, | ||
| 2313 | ) | 2325 | ) |
| 2314 | self.bare_git.merge_base( | 2326 | self.bare_git.merge_base( |
| 2315 | "--is-ancestor", self.revisionExpr, rev | 2327 | "--is-ancestor", |
| 2328 | self.revisionExpr, | ||
| 2329 | rev, | ||
| 2330 | log_as_error=False, | ||
| 2316 | ) | 2331 | ) |
| 2317 | return True | 2332 | return True |
| 2318 | except GitError: | 2333 | except GitError: |
| @@ -3612,7 +3627,7 @@ class Project(object): | |||
| 3612 | self.update_ref("-d", name, old) | 3627 | self.update_ref("-d", name, old) |
| 3613 | self._project.bare_ref.deleted(name) | 3628 | self._project.bare_ref.deleted(name) |
| 3614 | 3629 | ||
| 3615 | def rev_list(self, *args, **kw): | 3630 | def rev_list(self, *args, log_as_error=True, **kw): |
| 3616 | if "format" in kw: | 3631 | if "format" in kw: |
| 3617 | cmdv = ["log", "--pretty=format:%s" % kw["format"]] | 3632 | cmdv = ["log", "--pretty=format:%s" % kw["format"]] |
| 3618 | else: | 3633 | else: |
| @@ -3626,6 +3641,7 @@ class Project(object): | |||
| 3626 | capture_stdout=True, | 3641 | capture_stdout=True, |
| 3627 | capture_stderr=True, | 3642 | capture_stderr=True, |
| 3628 | verify_command=True, | 3643 | verify_command=True, |
| 3644 | log_as_error=log_as_error, | ||
| 3629 | ) | 3645 | ) |
| 3630 | p.Wait() | 3646 | p.Wait() |
| 3631 | return p.stdout.splitlines() | 3647 | return p.stdout.splitlines() |
| @@ -3653,7 +3669,7 @@ class Project(object): | |||
| 3653 | """ | 3669 | """ |
| 3654 | name = name.replace("_", "-") | 3670 | name = name.replace("_", "-") |
| 3655 | 3671 | ||
| 3656 | def runner(*args, **kwargs): | 3672 | def runner(*args, log_as_error=True, **kwargs): |
| 3657 | cmdv = [] | 3673 | cmdv = [] |
| 3658 | config = kwargs.pop("config", None) | 3674 | config = kwargs.pop("config", None) |
| 3659 | for k in kwargs: | 3675 | for k in kwargs: |
| @@ -3674,6 +3690,7 @@ class Project(object): | |||
| 3674 | capture_stdout=True, | 3690 | capture_stdout=True, |
| 3675 | capture_stderr=True, | 3691 | capture_stderr=True, |
| 3676 | verify_command=True, | 3692 | verify_command=True, |
| 3693 | log_as_error=log_as_error, | ||
| 3677 | ) | 3694 | ) |
| 3678 | p.Wait() | 3695 | p.Wait() |
| 3679 | r = p.stdout | 3696 | r = p.stdout |
