Message ID | 20191024062825.13097-1-anand.jain@oracle.com (mailing list archive) |
---|---|
Headers | show |
Series | btrfs-progs: make quiet to overrule verbose | expand |
On Thu, Oct 24, 2019 at 02:28:22PM +0800, Anand Jain wrote: > When both the options (--quiet and --verbose) in btrfs send and receive > is specified, we need at least one of it to overrule the other, irrespective > of the chronological order of options. I think the common behaviour is to respect the order of appearance on the commandline. So 'command -vvv -q' will be the same as 'command -q', while 'command -q -vvv' will be 'command -vvv'. Eg. ssh behaves like that, OTOH rsync does not and -q beats -vvv. I don't know about other commands that accept multiple -v and -q to get more samples. The usage pattern where order on command line matters is following the idea where there's a long line and adding -vvv to the end will make it verbose.
On 24/10/19 11:41 PM, David Sterba wrote: > On Thu, Oct 24, 2019 at 02:28:22PM +0800, Anand Jain wrote: >> When both the options (--quiet and --verbose) in btrfs send and receive >> is specified, we need at least one of it to overrule the other, irrespective >> of the chronological order of options. > > I think the common behaviour is to respect the order of appearance on > the commandline. I am fine with this. Will fix it as this. (IMO generally command -q is used in scripts so it makes sense to keep it absolutely quiet when used. Where as -v is used for understanding.). > So 'command -vvv -q' will be the same as 'command -q', > while 'command -q -vvv' will be 'command -vvv'. We need to fix this. As of now command -q -vvv is command -vv. Thanks, Anand > Eg. ssh behaves like that, OTOH rsync does not and -q beats -vvv. I > don't know about other commands that accept multiple -v and -q to get > more samples. The usage pattern where order on command line matters is > following the idea where there's a long line and adding -vvv to the end > will make it verbose. >
On 25/10/19 7:51 AM, Anand Jain wrote: > > > On 24/10/19 11:41 PM, David Sterba wrote: >> On Thu, Oct 24, 2019 at 02:28:22PM +0800, Anand Jain wrote: >>> When both the options (--quiet and --verbose) in btrfs send and receive >>> is specified, we need at least one of it to overrule the other, >>> irrespective >>> of the chronological order of options. >> >> I think the common behaviour is to respect the order of appearance on >> the commandline. > > I am fine with this. Will fix it as this. Question: command -v -q -v should be equal to command -v, right? Thanks, Anand > (IMO generally command -q is used in scripts so it makes sense to keep > it absolutely quiet when used. Where as -v is used for > understanding.). > >> So 'command -vvv -q' will be the same as 'command -q', > >> while 'command -q -vvv' will be 'command -vvv'. > > We need to fix this. As of now command -q -vvv is command -vv. > > Thanks, Anand > >> Eg. ssh behaves like that, OTOH rsync does not and -q beats -vvv. I >> don't know about other commands that accept multiple -v and -q to get >> more samples. The usage pattern where order on command line matters is >> following the idea where there's a long line and adding -vvv to the end >> will make it verbose. >> > >
On Fri, Oct 25, 2019 at 09:56:14AM +0800, Anand Jain wrote: > On 25/10/19 7:51 AM, Anand Jain wrote: > > > > > > On 24/10/19 11:41 PM, David Sterba wrote: > >> On Thu, Oct 24, 2019 at 02:28:22PM +0800, Anand Jain wrote: > >>> When both the options (--quiet and --verbose) in btrfs send and receive > >>> is specified, we need at least one of it to overrule the other, > >>> irrespective > >>> of the chronological order of options. > >> > >> I think the common behaviour is to respect the order of appearance on > >> the commandline. > > > > I am fine with this. Will fix it as this. > > Question: command -v -q -v should be equal to command -v, right? No, that would be equivalent to the default level: verbose starts with 1 () verbose++ (-v) verbose = 0 (-q) verbose++ is now 1, which is not -v ()
On 26/10/19 12:35 AM, David Sterba wrote: > On Fri, Oct 25, 2019 at 09:56:14AM +0800, Anand Jain wrote: >> On 25/10/19 7:51 AM, Anand Jain wrote: >>> >>> >>> On 24/10/19 11:41 PM, David Sterba wrote: >>>> On Thu, Oct 24, 2019 at 02:28:22PM +0800, Anand Jain wrote: >>>>> When both the options (--quiet and --verbose) in btrfs send and receive >>>>> is specified, we need at least one of it to overrule the other, >>>>> irrespective >>>>> of the chronological order of options. >>>> >>>> I think the common behaviour is to respect the order of appearance on >>>> the commandline. >>> >>> I am fine with this. Will fix it as this. >> >> Question: command -v -q -v should be equal to command -v, right? > > No, that would be equivalent to the default level: > > verbose starts with 1 () > verbose++ (-v) > verbose = 0 (-q) > verbose++ is now 1, which is not -v () > Oh I was thinking its a bug, and no need to carry forward to the global verbose. Will make it look like this.
On 26/10/19 9:01 AM, Anand Jain wrote: > On 26/10/19 12:35 AM, David Sterba wrote: >> On Fri, Oct 25, 2019 at 09:56:14AM +0800, Anand Jain wrote: >>> On 25/10/19 7:51 AM, Anand Jain wrote: >>>> >>>> >>>> On 24/10/19 11:41 PM, David Sterba wrote: >>>>> On Thu, Oct 24, 2019 at 02:28:22PM +0800, Anand Jain wrote: >>>>>> When both the options (--quiet and --verbose) in btrfs send and >>>>>> receive >>>>>> is specified, we need at least one of it to overrule the other, >>>>>> irrespective >>>>>> of the chronological order of options. >>>>> >>>>> I think the common behaviour is to respect the order of appearance on >>>>> the commandline. >>>> >>>> I am fine with this. Will fix it as this. >>> >>> Question: command -v -q -v should be equal to command -v, right? >> >> No, that would be equivalent to the default level: >> >> verbose starts with 1 () >> verbose++ (-v) >> verbose = 0 (-q) >> verbose++ is now 1, which is not -v () >> > > Oh I was thinking its a bug, and no need to carry forward to the global > verbose. Will make it look like this. > What do you think should be the final %verbose value when both local and global verbose and or quiet options are specified? For example: btrfs -v -q sub-command -v btrfs -q sub-command -v btrfs -vv sub-command -q etc.. Thanks, Anand
On Wed, Oct 30, 2019 at 03:42:56AM +0800, Anand Jain wrote: > >>> Question: command -v -q -v should be equal to command -v, right? > >> > >> No, that would be equivalent to the default level: > >> > >> verbose starts with 1 () > >> verbose++ (-v) > >> verbose = 0 (-q) > >> verbose++ is now 1, which is not -v () > >> > > > > Oh I was thinking its a bug, and no need to carry forward to the global > > verbose. Will make it look like this. > > What do you think should be the final %verbose value when both > local and global verbose and or quiet options are specified? > > For example: > btrfs -v -q sub-command -v > btrfs -q sub-command -v > btrfs -vv sub-command -q > etc.. Ah that's the conflicting part. I'd say treat all -v and -q equal, so modify the bconf.verbose variable, and it's straightforward to document. Some time in the future we should also issue a warning for 'sub-command -v'. The order makes it unintuitive so btrfs -q command -v is going to be the default verbosity. We can't ignore the sub-command part, and making it conditionally work in case there's no global verbosity setting is kind of complicating it. So let's take the simple approach, maybe we'll have second thought on that before release.
On 11/1/19 11:18 PM, David Sterba wrote: > On Wed, Oct 30, 2019 at 03:42:56AM +0800, Anand Jain wrote: >>>>> Question: command -v -q -v should be equal to command -v, right? >>>> >>>> No, that would be equivalent to the default level: >>>> >>>> verbose starts with 1 () >>>> verbose++ (-v) >>>> verbose = 0 (-q) >>>> verbose++ is now 1, which is not -v () >>>> >>> >>> Oh I was thinking its a bug, and no need to carry forward to the global >>> verbose. Will make it look like this. >> >> What do you think should be the final %verbose value when both >> local and global verbose and or quiet options are specified? >> >> For example: >> btrfs -v -q sub-command -v >> btrfs -q sub-command -v >> btrfs -vv sub-command -q >> etc.. > > Ah that's the conflicting part. > I'd say treat all -v and -q equal, Umm I don't understand what is treating equal here. The sub-command already treats differently under sub-command options. As shown below. case 'v': bconf.verbose++; break; case 'q': bconf.verbose = 0; break; > so > modify the bconf.verbose variable, and it's straightforward to document. > Some time in the future we should also issue a warning for 'sub-command > -v'. I am guessing you mean:- Warning option is deprecated ? > The order makes it unintuitive so > > btrfs -q command -v > > is going to be the default verbosity. default verbosity is 0? 1 ? As of now in send/receive default verbosity is 1. And rest of the sub-commands its 0. And as the -v is last to appear the command will be equivalent to 'btrfs sub-command -q -v' which is verbosity level 1. I hope this is reasonable. > We can't ignore the sub-command > part, and making it conditionally work in case there's no global > verbosity setting is kind of complicating it. Umm. As of now in v1.1, the sub-command continues to operate on the global bconf.verbose values, which works very well. Please see v1.1 in the ML. > So let's take the simple approach, maybe we'll have second thought on > that before release. > Sure. To simplify the discussion, in v1.1 cover-letter I have included verbosity implementation code sample, hope this helps. verbosity code sample as in v1.1 Thanks, Anand