Fossil SCM

Wish List

13 years, 2 months ago by veedeehjay

Command line user interface (CLI) quirks (and wish list for improvements)

Note: the following text is generated from an AsciiDoc source file. Intentionally, no attempt at wiki formatting is made. The text currently only presents my personal opinions regarding desirable changes in order to improve the CLI.

1. Currenlty, checkin with empty commit message is possible after explicit confirmation that this is intended.

   Wish list

   I would say an empty commit message never makes sense. Therefore,
   leaving the editor without providing a commit message (or not
   providing it on the command line) should be interpreted as intentional
   abort of the checkin (and a “commit aborted” message should be
   issued).

2. Short options enforce a blank between option letter and argument.

   Wish list

   Don’t enforce a blank, i.e. allow usage such as fossil diff -r1234.

3. There are short options (one-dash, one-character) and long options (two-dashes, multiple-character) but there are also at least two one-dash/multiple-character options, namely -showfiles (for timeline) and -help (as an option to command instead of using the help command itself).

   Wish list

      * Abolish one-dash/multiple-character options in order to adhere to
        more standard usage (like GNU readline).

      * Changes dashes in argument names to underscores (e.g.
        date-override) in order to make intervening blanks between short
        options and arguments unambiguous possible.

4. Command options are handled not consistently across different commands.

      * Many commands only have long options (e.g. diff --to).

      * Some have short options as alias of a long option (e.g. diff
        (-r|--from)

      * some short options do not correspond to a long option (e.g.
        fossil diff -i)

      * Where there are equivalent short and long options the help pages
        usually list them in the form --long | -l but sometimes the other
        way round (e.g. for ui: -P|--port) which is inconsistent.

      * There are a few one-dash/multicharacter options (e.g. fossil
        timeline -showfiles)

        Wish list

           * Provide short options as aliases for long options as far as
             possible.

           * Replace one-dash/multi-character options by standard short
             and long options.

           * Always list short options first in help pages.

5. Some mistyped commands fail silently, e.g. fossil time -showfile

   Wish list

   Provide error messages.

6. fossil mv/rm don’t act on the checkout as well.

   Wish list

   Make these commands act on the files in the checkout as well by
   default.

7. There seems no easy way to display the full timeline.

   Wish list

   Provide a way to display whole timeline without guessing a
   sufficiently high value for the -n option argument, i.e. something
   like fossil timeline --all

Augmented wish list

1. Customization via a command alias mechanism, such as

 alias not ' "extras --dotfiles --ignore "" '

2. Add a fossil help --showall option concatenating in alphabetical order all help pages in order to make them globally searchable for the user (by piping them through more, for example)

3. add (only locally unambiguous) chronological revision numbers to the timeline and make these revision numbers usable as a substitute for the SHA1 hashes of the checkins in commands like fossil cat -r rev somefile.txt. E.g., Mercurial does this by prepending the enumeration colon separated to the hash, changeset: 46:b2008223fa4a. Although the enumeration is meaningless across connected repositories (at least if run with autosync off), it is very helpful locally when specifying a revision to some command (diff, tag, etc).

4. add an “ASCII art” version of the DAG to timeline output when using the CLI

5. add a syntax fossil diff -r rev1:rev2 to better comply with expected behavior (svn, hg, …)


Last updated 2013-01-13 13:30:01 CET

Z f422fa0195dade00f2a5a6c9843245be

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button