D843: Backed out changeset a667f0ca1d5f

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Fri Sep 29 16:40:32 UTC 2017


martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Tests were failing on some combination of platform and library
  versions (at least on my Linux machine and some Solaris machine), and
  the proposed fix by Jun was instead failing on other platform/library
  (the gcc112 build farm Augie uses to run tests).

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D843

AFFECTED FILES
  mercurial/configitems.py
  mercurial/help/config.txt
  mercurial/progress.py
  tests/test-progress.t

CHANGE DETAILS

diff --git a/tests/test-progress.t b/tests/test-progress.t
--- a/tests/test-progress.t
+++ b/tests/test-progress.t
@@ -260,17 +260,17 @@
   loop [===========>                            ]  6/20 4m41s\r (no-eol) (esc)
   loop [=============>                          ]  7/20 4m21s\r (no-eol) (esc)
   loop [===============>                        ]  8/20 4m01s\r (no-eol) (esc)
-  loop [================>                      ]  9/20 25m40s\r (no-eol) (esc)
-  loop [===================>                    ] 10/20 1h06m\r (no-eol) (esc)
-  loop [=====================>                  ] 11/20 1h13m\r (no-eol) (esc)
-  loop [=======================>                ] 12/20 1h07m\r (no-eol) (esc)
-  loop [========================>              ] 13/20 58m19s\r (no-eol) (esc)
-  loop [===========================>            ] 14/20 7m09s\r (no-eol) (esc)
-  loop [=============================>          ] 15/20 3m38s\r (no-eol) (esc)
-  loop [===============================>        ] 16/20 2m15s\r (no-eol) (esc)
-  loop [=================================>      ] 17/20 1m27s\r (no-eol) (esc)
-  loop [====================================>     ] 18/20 52s\r (no-eol) (esc)
-  loop [======================================>   ] 19/20 25s\r (no-eol) (esc)
+  loop [================>                      ]  9/20 13m27s\r (no-eol) (esc)
+  loop [==================>                    ] 10/20 19m21s\r (no-eol) (esc)
+  loop [====================>                  ] 11/20 22m39s\r (no-eol) (esc)
+  loop [======================>                ] 12/20 24m01s\r (no-eol) (esc)
+  loop [========================>              ] 13/20 23m53s\r (no-eol) (esc)
+  loop [==========================>            ] 14/20 19m09s\r (no-eol) (esc)
+  loop [============================>          ] 15/20 15m01s\r (no-eol) (esc)
+  loop [==============================>        ] 16/20 11m21s\r (no-eol) (esc)
+  loop [=================================>      ] 17/20 8m04s\r (no-eol) (esc)
+  loop [===================================>    ] 18/20 5m07s\r (no-eol) (esc)
+  loop [=====================================>  ] 19/20 2m27s\r (no-eol) (esc)
                                                               \r (no-eol) (esc)
 
 Time estimates should not fail when there's no end point:
diff --git a/mercurial/progress.py b/mercurial/progress.py
--- a/mercurial/progress.py
+++ b/mercurial/progress.py
@@ -104,8 +104,6 @@
         self.order = self.ui.configlist(
             'progress', 'format',
             default=['topic', 'bar', 'number', 'estimate'])
-        self.estimateinterval = self.ui.configwith(
-            float, 'progress', 'estimateinterval')
 
     def show(self, now, topic, pos, item, unit, total):
         if not shouldprint(self.ui):
@@ -240,32 +238,6 @@
         else:
             return False
 
-    def _calibrateestimate(self, topic, now, pos):
-        '''Adjust starttimes and startvals for topic so ETA works better
-
-        If progress is non-linear (ex. get much slower in the last minute),
-        it's more friendly to only use a recent time span for ETA and speed
-        calculation.
-
-            [======================================>       ]
-                                             ^^^^^^^
-                           estimateinterval, only use this for estimation
-        '''
-        interval = self.estimateinterval
-        if interval <= 0:
-            return
-        elapsed = now - self.starttimes[topic]
-        if elapsed > interval:
-            delta = pos - self.startvals[topic]
-            newdelta = delta * interval / elapsed
-            # If a stall happens temporarily, ETA could change dramatically
-            # frequently. This is to avoid such dramatical change and make ETA
-            # smoother.
-            if newdelta < 0.1:
-                return
-            self.startvals[topic] = pos - newdelta
-            self.starttimes[topic] = now - interval
-
     def progress(self, topic, pos, item='', unit='', total=None):
         now = time.time()
         self._refreshlock.acquire()
@@ -296,7 +268,6 @@
                     self.topics.append(topic)
                 self.topicstates[topic] = pos, item, unit, total
                 self.curtopic = topic
-                self._calibrateestimate(topic, now, pos)
                 if now - self.lastprint >= self.refresh and self.topics:
                     if self._oktoprint(now):
                         self.lastprint = now
diff --git a/mercurial/help/config.txt b/mercurial/help/config.txt
--- a/mercurial/help/config.txt
+++ b/mercurial/help/config.txt
@@ -1613,10 +1613,6 @@
     Minimum delay before showing a new topic. When set to less than 3 * refresh,
     that value will be used instead. (default: 1)
 
-``estimateinterval``
-    Maximum sampling interval in seconds for speed and estimated time
-    calculation. (default: 60)
-
 ``refresh``
     Time in seconds between refreshes of the progress bar. (default: 0.1)
 
diff --git a/mercurial/configitems.py b/mercurial/configitems.py
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -359,9 +359,6 @@
 coreconfigitem('progress', 'disable',
     default=False,
 )
-coreconfigitem('progress', 'estimateinterval',
-    default=60.0,
-)
 coreconfigitem('progress', 'refresh',
     default=0.1,
 )



To: martinvonz, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list