diff options
Diffstat (limited to 'subcmds/sync.py')
-rw-r--r-- | subcmds/sync.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py index 49874c44..3dc74f1f 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py | |||
@@ -350,6 +350,8 @@ later is required to fix a server side protocol bug. | |||
350 | # value later on. | 350 | # value later on. |
351 | PARALLEL_JOBS = 0 | 351 | PARALLEL_JOBS = 0 |
352 | 352 | ||
353 | _JOBS_WARN_THRESHOLD = 100 | ||
354 | |||
353 | def _Options(self, p, show_smart=True): | 355 | def _Options(self, p, show_smart=True): |
354 | p.add_option( | 356 | p.add_option( |
355 | "--jobs-network", | 357 | "--jobs-network", |
@@ -1728,6 +1730,24 @@ later is required to fix a server side protocol bug. | |||
1728 | opt.jobs_network = min(opt.jobs_network, jobs_soft_limit) | 1730 | opt.jobs_network = min(opt.jobs_network, jobs_soft_limit) |
1729 | opt.jobs_checkout = min(opt.jobs_checkout, jobs_soft_limit) | 1731 | opt.jobs_checkout = min(opt.jobs_checkout, jobs_soft_limit) |
1730 | 1732 | ||
1733 | # Warn once if effective job counts seem excessively high. | ||
1734 | # Prioritize --jobs, then --jobs-network, then --jobs-checkout. | ||
1735 | job_options_to_check = ( | ||
1736 | ("--jobs", opt.jobs), | ||
1737 | ("--jobs-network", opt.jobs_network), | ||
1738 | ("--jobs-checkout", opt.jobs_checkout), | ||
1739 | ) | ||
1740 | for name, value in job_options_to_check: | ||
1741 | if value > self._JOBS_WARN_THRESHOLD: | ||
1742 | logger.warning( | ||
1743 | "High job count (%d > %d) specified for %s; this may " | ||
1744 | "lead to excessive resource usage or diminishing returns.", | ||
1745 | value, | ||
1746 | self._JOBS_WARN_THRESHOLD, | ||
1747 | name, | ||
1748 | ) | ||
1749 | break | ||
1750 | |||
1731 | def Execute(self, opt, args): | 1751 | def Execute(self, opt, args): |
1732 | errors = [] | 1752 | errors = [] |
1733 | try: | 1753 | try: |