[RFC] revert commit progress output?

Aaron Bentley aaron.bentley at utoronto.ca
Fri Jun 29 14:21:55 BST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Robert Collins wrote:
> On Thu, 2007-06-28 at 10:53 -0400, Aaron Bentley wrote:
>> I know there were flaws in the old progress bars, but I don't think the
>> problem was the bar.  It was the other things the output said.
> 
> I think the bar had two major problems:
>  - it presumes that we can estimate 'progress' in a meaningful way. I
> don't think we can.

Even doing it in terms of phases is better than nothing.  People get
used to the rhythm of the phases on their branches.

>  - tree size is essentially unknown with the apis we are working
> towards. The fact its known today is arguably an unreasonable constraint
> on the underlying api.

Well, WorkingTree4._iter_changes still knows how big the tree is.  So it
seems possible that it can provide progress info.

> e.g. a split-inventory, however that is done,
> will only be able to say 'the top node contains X entries' - so as we
> walk we will see information (in the code, not UI I mean):
> processed X entries, know the existence of Y (>X) entries, have Z nodes
> which are unconstrained in size and may contain many times the currently
> known entries.

So if we have a tree like this

   A
  /|\
 B C D

If we've completed B, but not C or D, can't we say we're 33% complete?

It's unfortunate that we have no reason to expect that B has the same
number of grandchildren as C or D, but it's something, and it doesn't
involve going backwards.

> What about showing progress as an estimate of time? We do know that we
> have a number of different top level things - stages - during commit,
> but we don't know the relative time of these things. For instance, given
> two lightweight checkouts one may spend much more time inserting data
> into the repository than the other due to networking overhead. Detecting
> changes when there is a maybe-modified iso may be much slower than it
> usually is and you can get detection taking 10 seconds and insertion of
> data 0.1 seconds. So we can't pre-judge what ratio of time should be
> allocated to each stage. And that means a sliding bar is not going to
> reflect the actual fraction of the total time needed, *nor* the amount
> of total work needed because time and work are tightly coupled. 

Right.
1) we can estimate how long *this* stage takes for *this* tree pretty
accurately, once we've done it a few times
2) people will compensate, and expect certain stages to be faster than
others.
3) we can show divisions between stages on our progress bar

> I think your point about 'at a glance' is very good though, and I agree
> ian's changed UI loses that. So I'd welcome some way to get that back
> without losing the (to my mind) significantly increased clarity that the
> current output has. 

The current output goes by too fast for me to know what it says.  So for
me, it's by no means clear.

Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGhQdz0F+nu1YWqI0RAg2pAJ9AN7o2RIa54VmOjYbQ1FEzziL1BgCfVmzo
m4QEkOj8EUUy6K/5iUkg/hc=
=h1zJ
-----END PGP SIGNATURE-----



More information about the bazaar mailing list