On Sat, Feb 04, 2012 at 02:06:28PM +0100, Goffredo Baroncelli wrote:
> Hi Ilya,
> 
> On Friday, 03 February, 2012 22:49:09 Ilya Dryomov wrote:
> > Hello,
> > 
> > This is the userspace part of restriper, rebased onto the new progs
> > infrastructure.  Restriper commands are located under 'balance' prefix,
> > which is now the top level command group.  However to not confuse
> > existing users 'balance' prefix is also available under 'filesystem':
> > 
> > btrfs [filesystem] balance start
> > btrfs [filesystem] balance pause
> > btrfs [filesystem] balance cancel
> > btrfs [filesystem] balance resume
> > btrfs [filesystem] balance status
> > 
> > Backwards compatibility is fully preserved thanks to the new command
> > parser: the old 'btrfs filesystem balance <path>' works as expected.
> 
> I prefer to avoid prefix which may confuse the user. If I have a subvolume 
> called "s", what means:
> 
>       btrfs filesystem balance s
> 
> Is it a missing argument (the path required for btrfs filesystem balance) or 
> is it a synonymus of
> 
>       btrfs filesystem balance start ./s
> 
> (or btrfs filesystem balance stop ./s)
> 
> ?

It's a path.  It's unambiguous because every subcommand requires an argument.
If you omit the path argument you get the following:

btrfs-progs-new$ ./btrfs fi balance
usage: btrfs [filesystem] balance [<command>] [options] <path>

    btrfs [filesystem] balance start [options] <path>
        Balance chunks across the devices
    btrfs [filesystem] balance pause <path>
        Pause running balance
    btrfs [filesystem] balance cancel <path>
        Cancel running or paused balance
    btrfs [filesystem] balance resume <path>
        Resume interrupted balance
    btrfs [filesystem] balance status [-v] <path>
        Show status of running or paused balance

'btrfs filesystem balance' command is deprecated, please use
'btrfs balance start' command instead.

which clearly indicates that <command> is optional.  Finally, if you type

        btrfs fi balance s /mnt

(which is ambiguous because 's' could mean 'start' or 'status') you get
the following:

btrfs-progs-new$ ./btrfs fi balance s /mnt
btrfs filesystem balance: ambiguous token 's'

Did you mean one of these ?
        start
        status

Pretty clear to me.

> 
> To me I prefer to add another family of command called
> 
>       btrfs balance *
> 
> and to leave
> 
>       btrfs filesystem balance 
> 
> as synonymus of
> 
>       btrfs balance start

I discussed this with Chris and we agreed that it will be confusing if
'btrfs filesystem balance' is different from 'btrfs balance'.

> 
> 
> This was discussed several years ago. Allowing the user to abbreviate the 
> commands fights with the ability to have different length of commands , when 
> an option could beconfused with a command (s vs start/stop....).

It generally does, but in this particular case (where every subcommand
in the group requires at least one argument) it does not.

Thanks,

                Ilya
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to