Fossil

Update of "Fossil-NG"
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview

Artifact ID: cf3950966893baf86daa7e1f2452476aeba8a3458e015945217172eeb3c1a4d1
Page Name:Fossil-NG
Date: 2017-11-18 20:44:01
Original User: drh
Mimetype:text/x-markdown
Parent: 8b55a3bfa37e1bbd00264b1471392c311f0523dfe2d241ed7c12e3ab5cd6794a (diff)
Next a489846a77cb08b8f0e19e7104634dd09cec8973b0b15a70c1cfbab41fded153
Content

Overview

This is a discussion format and record of ideas for the "Fossil - Next Generation" or Fossil-NG. As this sentence is being written (2017-11-18) there is no code in place for Fossil-NG.

Goals

The first goal of Fossil-NG is to enhance and improve the Fossil user experience based on lessons learned from 11 years using and maintaining legacy Fossil. New capabilities include:

In the 11 years since Fossil was created, Git has become the dominate version control system. This is unfortunate, because of the various version control systems available today, Git is the least user-friendly. Nevertheless, there is no denying that any new version control system (VCS) will need to deal effectively with the Git legacy. For this reason, one important goal of Fossil-NG is to allow seamless integration with legacy Git repositories.

The primary and most important purpose of Fossil is to support the development of the SQLite project. Legacy Fossil has succeeded fabulously in that respect. Any changes implemented for Fossil-NG must respect that history. In particular, Fossil-NG must be able to import the complete SQLite history intact, without any changes to hash identifiers.

VCS as File Container

By "file container" we mean a archive or bundling format such as a tarball or ZIP Archive. One way to think about a VCS is as an enhanced file container. Existing file containers allow one to create a single snapshot of a project time. A VCS is the same except that it allows one to store multiple snapshots.

Fossil-NG should have facilities to help to work as a simple file container like tar and zip. One should be able to run commands like:

fossil new new-repo.fossil Makefile README.md src/

That command will create a file container named "new-repo.fossil" that contains the files "Makefile", "README.md", and all files under src/. This repository would be compact, and suitable for sending as an email attachment, just like one would do with a tarball or ZIP archive.