hgext/progress.py
author Pierre-Yves David <pierre-yves.david@fb.com>
Sun, 07 Jun 2015 17:50:56 -0700
changeset 25499 0fa964d6fd48
parent 25498 7a5335ed7e1a
child 25520 c8fada8d9db9
permissions -rw-r--r--
progress: move all logic altering the ui object logic in mercurial.ui The ui object can take care of its progress object logic by itself. test-subrepo-recursion is modified because it is a bit sensitive to the "no progress bar" default. It will become unnecessary in the next step when progress will be on by default in core.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     1
# progress.py show progress bars for some actions
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     2
#
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     3
# Copyright (C) 2010 Augie Fackler <durin42@gmail.com>
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     4
#
15772
83a140752239 progress: Use the same GPL boilerplate as most hg files
Augie Fackler <durin42@gmail.com>
parents: 15662
diff changeset
     5
# This software may be used and distributed according to the terms of the
83a140752239 progress: Use the same GPL boilerplate as most hg files
Augie Fackler <durin42@gmail.com>
parents: 15662
diff changeset
     6
# GNU General Public License version 2 or any later version.
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     7
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     8
"""show progress bars for some actions
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     9
10450
b4fd900569b1 progress: fix description
timeless <timeless@mozdev.org>
parents: 10441
diff changeset
    10
This extension uses the progress information logged by hg commands
b4fd900569b1 progress: fix description
timeless <timeless@mozdev.org>
parents: 10441
diff changeset
    11
to draw progress bars that are as informative as possible. Some progress
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    12
bars only offer indeterminate information, while others have a definite
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    13
end point.
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    14
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    15
The following settings are available::
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    16
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    17
  [progress]
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    18
  delay = 3 # number of seconds (float) before showing the progress bar
14838
5d261fd00446 progress: add a changedelay to prevent parallel topics from flapping (issue2698)
Augie Fackler <durin42@gmail.com>
parents: 14837
diff changeset
    19
  changedelay = 1 # changedelay: minimum delay before showing a new topic.
5d261fd00446 progress: add a changedelay to prevent parallel topics from flapping (issue2698)
Augie Fackler <durin42@gmail.com>
parents: 14837
diff changeset
    20
                  # If set to less than 3 * refresh, that value will
5d261fd00446 progress: add a changedelay to prevent parallel topics from flapping (issue2698)
Augie Fackler <durin42@gmail.com>
parents: 14837
diff changeset
    21
                  # be used instead.
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    22
  refresh = 0.1 # time in seconds between refreshes of the progress bar
13148
ab5fcc473fd1 progress: include time estimate as part of the default progress format
Augie Fackler <durin42@gmail.com>
parents: 13147
diff changeset
    23
  format = topic bar number estimate # format of the progress bar
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    24
  width = <none> # if set, the maximum width of the progress information
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    25
                 # (that is, min(width, term width) will be used)
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    26
  clear-complete = True # clear the progress bar after it's done
10656
f6ee02933af9 progress: document progress.disable config option
Augie Fackler <durin42@gmail.com>
parents: 10594
diff changeset
    27
  disable = False # if true, don't show a progress bar
10788
ca6ba6cac6cd progress: use stderr instead of stdout; check stderr.isatty()
Augie Fackler <durin42@gmail.com>
parents: 10656
diff changeset
    28
  assume-tty = False # if true, ALWAYS show a progress bar, unless
ca6ba6cac6cd progress: use stderr instead of stdout; check stderr.isatty()
Augie Fackler <durin42@gmail.com>
parents: 10656
diff changeset
    29
                     # disable is given
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    30
13147
082f5be788d9 progress: only show time estimate when progress format contains 'estimate'
Augie Fackler <durin42@gmail.com>
parents: 13146
diff changeset
    31
Valid entries for the format field are topic, bar, number, unit,
14280
98e4d3914c2e progress: add speed format
Martin Geisler <mg@aragost.com>
parents: 14247
diff changeset
    32
estimate, speed, and item. item defaults to the last 20 characters of
98e4d3914c2e progress: add speed format
Martin Geisler <mg@aragost.com>
parents: 14247
diff changeset
    33
the item, but this can be changed by adding either ``-<num>`` which
98e4d3914c2e progress: add speed format
Martin Geisler <mg@aragost.com>
parents: 14247
diff changeset
    34
would take the last num characters, or ``+<num>`` for the first num
13147
082f5be788d9 progress: only show time estimate when progress format contains 'estimate'
Augie Fackler <durin42@gmail.com>
parents: 13146
diff changeset
    35
characters.
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    36
"""
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    37
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    38
def uisetup(ui):
25499
0fa964d6fd48 progress: move all logic altering the ui object logic in mercurial.ui
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25498
diff changeset
    39
    if ui.config('progress', 'disable', None) is None:
0fa964d6fd48 progress: move all logic altering the ui object logic in mercurial.ui
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25498
diff changeset
    40
        ui.setconfig('progress', 'disable', 'False', 'hgext-progress')
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    41
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    42
def reposetup(ui, repo):
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    43
    uisetup(repo.ui)