## Status:

  *  Fossil 2.0 is currently just an idea.  No code has been written.

## Core Principles:

  *  100% repository compatible. Reuse existing repos (perhaps with "rebuild")

  *  100% sync compatible.  Push, pull, and clone with version 1.x repos.

## Web Interface Enhancements:

  *  Refactor to a small, sensible, well-defined and well-document set of
     CSS classes that are easy to configure.

  *  OK to break existing skins.

  *  Push toward being closer to RESTful

  *  Strive for basic operation w/o javascript, though clearly javascript
     is allowed when necessary.  (Javascript draws the timeline graph for
     example.)  This principle does not change from 1.x.

## Command-line Interface:

  *  "fossil mv" and "fossil rm" actually rename and delete the underlying
     files.

## Implementation Strategy:

  *  Make changes in a long-running branch (named "fossil-2.0"?) until
     ready to cut-over, then merge into trunk.

  *  Keep two versions of Fossil (1.x and 2.0-alpha) both running on
     so that people can compare the changes
     to the web-interface easily.

  *  Provide a place to download pre-compiled binaries of 2.0-alpha.


------
*On 2015-02-06 02:10:35 UTC nobody (claiming to be sean) added:*

* Possibility of using a different hash, such as sha384 or sha512. Just because sha1 is fine doesn't mean it will always be fine.  <i>-- drh replies:
Unable. This would be an incompatible file format change.</i>
* online file editing
* alphabetization of lists
* some style of pastebin with syntax highlighting, similar to tech notes or wiki
* libressl support


------
*On 2015-02-06 02:31:59 UTC nobody (claiming to be isxek) added:*

* Allow markdown use when writing tickets & ticket comments <i>-- drh replies:
Doesn't this already work in Fossil 1.30?</i>
<br /><em>-- isxek replies: It does not. I'm using Fossil version [5260fbf632] 2015-02-05.</em>


------
*On 2015-02-24 22:12:00 UTC added:*

# Show cherrypick and backout merges in timeline and context.

Differentiate between normal, cherrypick, and backout merges by the shape of the arrowhead.

*  ▲: Normal merge (or ◀ or ▶ as appropriate)
*  ⭕: Cherrypick merge (resembles a cherry)
*  ❌: Backout merge (signifies removal)

The merge lines may also be shown in different colors, e.g. green for cherrypick and red for backout.

Suggest allowing this feature to be configurable via theme.  Also may be a user checkbox to show or hide cherrypick/backout merges.

------
*On 2015-03-05 20:06:30 UTC added:*

# Require directory name argument to open command.

One thing that repeatedly surprised me when learning Fossil was that the open command opens the repository into the current working directory.  This left me either confused at there being no apparent effect (except a hidden file called .fslckout, in the case of a new repository) or angry about Fossil making a big mess in my current directory (not easily undone because close doesn't delete).

I would have picked up on this behavior instantly had the open command required the directory name as an argument following the repository argument.  The directory would be created if it doesn't already exist.  For example:

    fossil new repo.fossil
    fossil open repo.fossil repo
    cd repo

Opening into the current directory could still be done by supplying "." as the directory name.

    fossil new repo.fossil
    cd repo
    fossil open ../repo.fossil .

This change would resemble the behavior of the fusefs command which requires a directory name argument.

This definitely hoses every script that calls open, but that's intentional since the goal is to force the (inexperienced) user to confirm that he really wants to open into the current directory.  For current Fossil, a compromise form could be implemented which defaults the directory to ".", but Fossil 2.0 would remove the default.