
Fossil – Simple, high-reliability, distributed software configuration management - typedweb
http://fossil-scm.org/index.html/doc/tip/www/index.wiki
======
jccooper
I use fossil; like it a lot.

If you use/would like to use fossil, you might also want to take a look at
[http://chiselapp.com](http://chiselapp.com)

It's a bit github-ish; online repository hosting, private or public, and free.
(I'd happily pay, but they don't provide even a donation page. So: thanks!)

~~~
jrapdx3
Thanks for the link. I use Fossil for a few projects. While it's not too
complicated to set up Fossil repositories on the web, the Chiselapp "hub"
would make it even easier and probably a lot more reliable.

One of the things to like about Fossil is its concept of record immutability,
that is, data is retained intact in the database even when superseded by a
newer version. Fossil asserts a highly ethical position, that revising
historical facts is not an acceptable practice.

Using Fossil over the last couple of years, its performance and stability have
been rock solid, and I haven't experienced any data loss or other problems
with it.

~~~
gioele
> One of the things to like about Fossil is its concept of record
> immutability, that is, data is retained intact in the database even when
> superseded by a newer version. Fossil asserts a highly ethical position,
> that revising historical facts is not an acceptable practice.

There is big drawback in making it very hard to edit "history": you are bound
to carry in your project all sorts of things that you do not want to. And this
becomes an even worse problem when you combine source code, tickets and a wiki
as Fossil does.

Somebody posts spam as tickets? Now you are bound to have traces of that spam
forever in your published repository.

I switched away from bzr to git, just like many others, also because bzr made
it impossible to fix small stupid mistakes. OK, I pressed Enter while reaching
out for the shift key and made a commit with the wrong commit message. Why do
I have to keep that? What does the project gains from this?

I think the problem here is with the word "history". We attach a lot of
meaning to that word and nobody wants to be a "history rewriter" or a
"revisionist". I prefer more neutral terms like "patch queue" or "version
chains". "I polished the chain" sounds much better than "I rewrote history".

~~~
jrapdx3
In Fossil it's _not_ impossible to remove offensive content, though deletion
is discouraged. Fossil's policies and content removal procedures are discussed
here: [http://fossil-
scm.org/index.html/doc/tip/www/shunning.wiki](http://fossil-
scm.org/index.html/doc/tip/www/shunning.wiki)

It's also possible to access everything in the repository using the command:

    
    
        fossil sqlite3
    

which opens a command line accepting sql queries. If one knows how to modify
the database, then tickets, etc. can be edited. Probably, using the "official"
methods to remove content is a lot safer.

~~~
sgbeal
FWIW: simply removing records from your repo db (in particular the blob table)
_will_ corrupt it. Fossil stores deltas and other metadata which span blobs,
and it's not trivial (and in many cases not possible) to separate them post
facto. Hypothetically it would be possible to "pop" the top-most change from a
repo, then repeat that, going all the way back to the start of the repo, but
it's not possible to remove something from in the middle without the
equivalent of a 4-way heart bypass surgery.

------
zachrose
What do we mean by SCM?

It seems to be that "software configuration management" should be about
configuring a program, whereas "source code management" should be about
managing source code.

Which is Fossil?

~~~
skrebbel
It's old school enterprise speak. When software-being-built consisted of a
number of "Configuration Items" (CIs), such as .doc files, .xls files and of
course heaps of .c files. There would be a dedicated "Configuration Manager"
who's job it was to make sure that people wouldn't Visual SourceSafe their
files over other people's files. He'd also write the batch files for the build
server, assuming they had a build server.

They really do mean source control. Just that it doesn't _have_ to be source
code. It can be any "configuration item". Just like with git or svn or
mercurial or zipping-directories-and-uploading-them-to-a-network-share.

Personally, I like "version control" for that reason. It just removes the
subject of the operation from the name entirely.

------
feld
Sqlite uses this for their SCM. It makes sense as this is a good test of
sqlite itself.

~~~
grayclhn
It makes even more sense since it's the same developer.

~~~
feld
Indeed, I had forgotten about that :-)

------
beagle3
A bit of history:

DR Hipp, who created SQLite, created a wonderful bug tracking system and wiki
for it, called CVSTrac, with the moto "low ceremony defect tracking" that was
tied to CVS. It was wonderful - I had used it in my CVS days. It was written
in C, based on SQLite, was fast and just worked.

Trac was inspired by CVSTrac, but is written in Python, is not tied to CVS, is
slower but much more capable and much more flexible (although still "low
ceremony" compared to e.g. Bugzilla).

Fossil is DR Hipp's version control system, which integrates content version
tracking, wiki and issue tracking (low ceremony CVSTrac-alike adapted for
fossil)

I haven't had a chance to use it - last time I looked at it, it was missing
crypto parts that are essential in some of the projects I work on. But if
Fossil gets crypto done right, or if I stop needing it done right, I will
definitely give fossil a try.

------
stephenr
I'm all-for supporting alternative solutions, particularly in the VCS space.
SVN is not great for some tasks, but for some its still superior. Git is very
popular but still not ideal for some workflows/project types. Mercurial is
oftentimes a more approachable alternative to Git, but has less mindshare.

Personally I think variety should be embraced. Let each project use the VCS
that works for it's specific needs/developers.

With this mindset, while I would have no issue supporting and making use of
something like Fossil (assuming it's reliable), I would absolutely discourage
the use of it's wiki and ticket systems, in favour of independent solutions
that are not tied to the repo and repo software itself.

~~~
chriswarbo
> I would absolutely discourage the use of it's wiki and ticket systems, in
> favour of independent solutions that are not tied to the repo and repo
> software itself.

I'm interested what you think about BugsEverywhere (
[http://bugseverywhere.org](http://bugseverywhere.org) ), which keeps bug info
in a hidden directory in the repo and integrates well with git. I've not used
it before, but am considering it for a research project I've inherited which
has no infrastructure (just source code in a zip file). I'd like to avoid
proprietary hosting (eg. github) or hosting my own web server (eg. gitlab), so
I'm thinking that BE would be a good fit, with hosting on gitorious.org

~~~
stephenr
It looks interesting, and the multi-vcs support is quite good, and I guess in
theory in a multi-repo project, you could just have a repo called "bugs" or
"issues" if you wanted to keep that stuff separate.

The demo of the Web UI gave a 502 so I couldn't access it and I don't have
time to try it out locally right now..

------
chipsy
I like using Fossil for my personal projects. I don't always use every
feature, but it's all very small and self-contained and I can just copy the
executable into the project root without having to worry about the system
environment.

------
reitanqild
Since so many smart people interested in DVCS are looking anyway: anyone knows
whats happening to veracity scm? QA has been offline for months.

It was really promising but now seems more or less abandoned.

~~~
isxek
I can't find it anymore, but Eric Sink (SourceGear) wrote sometime previously
on his blog that they've decided to focus more on the mobile market with a
product called Zumero ([http://zumero.com/](http://zumero.com/)). IIRC Zumero
came from all their work on Veracity.

FWIW, I had also hoped Veracity would be developed further.

------
pm
I used Fossil for a while, and I liked it a lot. But after using it with my
team, and having to host it internally (something I didn't have the time to do
properly being a startup), and programmers complaining about the conflict
resolution process, we moved our projects over to git/GitHub. Honestly, I
haven't looked back, even though I much preferred Fossil's simplicity.

~~~
networked
Can you elaborate on the problems you had with conflict resolution? I used
Fossil for a couple of personal projects and made a mental note to try it out
instead of Git next time I had to host a code repository on a local server.

------
avodonosov
I had this idea for years - to integrate wiki and tickets with source control.
Probably I will like Fossil.

~~~
chriswarbo
You might also like Trac (
[http://trac.edgewall.org/](http://trac.edgewall.org/) ), which I've seen far
more projects using than Fossil.

~~~
MrUnderhill
Trac is very different from Fossil though: Fossil is version control software
with "embedded" wiki and issue tracker, while Trac is a wiki and issue tracker
which can, optionally, interface with one or more external vcs systems. Fossil
stores the wiki and issue data in the repository itself (SQLite), while Trac
stores it in an external database (PostgreSQL, MySQL etc.. SQLite would
probably work too!).

------
Perceptes
Zed Shaw uses Fossil in his Peepcode Play by Play episode. If you have a
subscription to Peepcode (now Pluralsight[1]) you can listen to him talk about
it and why he likes it.

[1] [http://www.pluralsight.com/](http://www.pluralsight.com/)

~~~
crazydoggers
And also why he stopped using it when it hosed his repo:

[http://www.mail-archive.com/fossil-users@lists.fossil-
scm.or...](http://www.mail-archive.com/fossil-users@lists.fossil-
scm.org/msg04671.html)

~~~
Leszek
I can understand the frustration of losing a couple of days of work, but wow,
that thread does not show Zed Shaw in a good light. This approach of "there
was a bug so now I'm throwing all my toys out of the pram" isn't particularly
constructive or mature.

~~~
xorcist
Also the "if it wasn't for me you'd still be four guys on a toy project"
quote.

Doesn't seem to be connected to reality. I've heard of Fossil and sqlite, but
never of Shaw, who apparently wasn't even a commiter.

~~~
dalke
There's more to a project than being a commiter. Shaw promoted Fossil, and
people (a lot of people have heard of Shaw) looked into Fossil and started
using it because of him. In that same thread you'll see someone else on the
list spoke up as being one of those people.

That quote you gave is a reaction to the dismissive attitude that non-
commiters are somehow second-class citizens; which you've just expressed. It's
a bad way of thinking about people.

------
hendry
Looks crazy compared to checking /etc into git.

~~~
untothebreach
Fossil is a general-purpose SCM tool, just like git, just with more features
(integrated bug tracker, etc), so in theory you _could_ check /etc/ in to
fossil as well.

~~~
sgbeal
Fossil is not the right job for that - there's a dozen entries in the ML
archives explaining why. Short version: it doesn't do file permissions and
system users, and many files in /etc require specific perms and owners.

~~~
untothebreach
Thanks for the correction, my knowledge of fossil is very shallow

------
mrmondo
The first thing I notice is how ugly the website is - if this reflects at all
upon how ugly the scm is (and it may well not), the it's not going to gain
traction.

~~~
hollerith
Ugliness is subjective: I really liked it, or more precisely, nothing about it
annoyed me, and many of the design decisions on the web these years annoy me.
You got me curious what exactly about it struck you as ugly. (You could reply
to my email, which is in my profile, if you are worried about getting
downvoted.)

~~~
sgbeal
i suspect he's talking about the general aesthetics of the UI. None of the
developers (and i'm allowed to say this, being one of them ;) has demonstrated
a particular gift for making apps look really pretty.

