3 ms·
> 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
by gioele 12y ago
> 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".
- Toenex 12y agoI agree that there is a difference between the actual history of a project and the writing of that history in a repository. We all make mistakes and rebase can be used to correct them. Fossil just takes the other view that we all make mistakes and we must live with them. I guess the choice of which to use very much depends on the circumstance. I use svn, hg and fossil choosing fossil more recently for my personal work for the simplicity of having code and wiki in a blob I can easily move. On a side note I'd probably refrain from using the phrase "polished the chain" due to the euphemistic nature of 'verb the noun' statements and my natural British tendency to avoid talking about sex explicitly and thus think everyone is talking about sex implicitly.
- jrapdx3 12y agoIn 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 12y agoFWIW: 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.