commit: 7b855cb2bb50c59d5310f9e0326e8c49e4f29111 Author: Florian Schmaus <flow <AT> gentoo <DOT> org> AuthorDate: Mon Oct 2 10:21:10 2023 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Oct 2 12:22:24 2023 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=7b855cb2
depgraph: show backtrack information after dep resolution To improve user's awareness of the backtracking performed by portage and the related limit, show briefly how much backtracking was done. Signed-off-by: Florian Schmaus <flow <AT> gentoo.org> Closes: https://github.com/gentoo/portage/pull/1107 Signed-off-by: Sam James <sam <AT> gentoo.org> NEWS | 2 ++ lib/_emerge/depgraph.py | 21 +++++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index bfa6261bb9..75680fce18 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,8 @@ Features: * emerge: Use appropriate colors if binpkgs are used in e.g. pkg_pretend messages as well as elog's mod_echo module (bug #914159). +* Show backtrack information after dependency resolution. + Bug fixes: * Prevent gpg from removing /dev/null when unlocking signing key (bug #912808). diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py index ef7dd54052..a0d69ff305 100644 --- a/lib/_emerge/depgraph.py +++ b/lib/_emerge/depgraph.py @@ -11401,7 +11401,7 @@ def _spinner_start(spinner, myopts): spinner.start_time = time.time() -def _spinner_stop(spinner): +def _spinner_stop(spinner, backtracked: int = -1, max_retries: int = -1): if spinner is None or spinner.update == spinner.update_quiet: return @@ -11414,7 +11414,14 @@ def _spinner_stop(spinner): stop_time = time.time() time_fmt = f"{stop_time - spinner.start_time:.2f}" - portage.writemsg_stdout(f"Dependency resolution took {darkgreen(time_fmt)} s.\n\n") + + backtrack_info = "" + if backtracked >= 0: + backtrack_info = f" (backtrack: {backtracked}/{max_retries})" + + portage.writemsg_stdout( + f"Dependency resolution took {darkgreen(time_fmt)} s{backtrack_info}.\n\n" + ) def backtrack_depgraph( @@ -11430,13 +11437,15 @@ def backtrack_depgraph( Raises PackageSetNotFound if myfiles contains a missing package set. """ + backtracked, max_retries = -1, -1 _spinner_start(spinner, myopts) try: - return _backtrack_depgraph( + success, mydepgraph, favorites, backtracked, max_retries = _backtrack_depgraph( settings, trees, myopts, myparams, myaction, myfiles, spinner ) + return (success, mydepgraph, favorites) finally: - _spinner_stop(spinner) + _spinner_stop(spinner, backtracked, max_retries) def _backtrack_depgraph( @@ -11447,7 +11456,7 @@ def _backtrack_depgraph( myaction: Optional[str], myfiles: list[str], spinner: "_emerge.stdout_spinner.stdout_spinner", -) -> tuple[Any, depgraph, list[str]]: +) -> tuple[Any, depgraph, list[str], int, int]: debug = "--debug" in myopts mydepgraph = None max_retries = myopts.get("--backtrack", 10) @@ -11540,7 +11549,7 @@ def _backtrack_depgraph( ) success, favorites = mydepgraph.select_files(myfiles) - return (success, mydepgraph, favorites) + return (success, mydepgraph, favorites, backtracked, max_retries) def resume_depgraph(
