UYGSVBN7QR3YK6LTBMYIHDDVZPG25MBKPN2JLFDVCY3NEEPCQBAQC
36IPNPISP2QHGNUC73DWTSC2HH6PKKMD7KBRWC2GABY5D5IZ5BLAC
5LKTNB6ODFPX45VJBT5H34WZFJBVWWYSCS2HRMKKJPPO3M2M75NAC
UH3YXOLFMHJD6GJOW6P5BSHAM5XVV623ZBEYNKSF5YFFSGC7UWPAC
4AZS4L6BP7TTCR5RUB36TG5PTEEIMSTGKB5IVB5QNHJVMRF7LMZQC
WYULWETJ4VKT2UOTKJWJTBO7W2TDXUWMLCN7WT5543H7VQ57FGRQC
ARAFRHKULUG66WDRPKJB4GL5WCMP4LD2TRTYO3RA2T3XZDRLXEUQC
NYFLNSVVETUQ6ODIEMFKWUXPLWM2XQNSKLO5J7ZHCHP6L5JQLSEQC
---
# Veracity
* Distributed version control
* Issue tracking and wiki, also distributed
<!-- FINAL: add Veracity logo -->
<http://www.veracity-scm.com> <!-- .element: class="attribution" -->
---
## But
#### Veracity is not going to be 'the Git killer'
* Development status: web site appears unmaintained; latest release March 25, 2013
* Hosting platform onveracity.com hasn't been online since February 4, 2015
note:
FIXME - why was this one even in the abstract and why that's the only reason I have included it.
---
# Veracity
<!-- TODO: twee slides over Veracity, en waarom het niet wat gaat worden. -->
note:
TODO: opnemen:
* Development status: web site appears unmaintained; latest release March 25, 2013
* http://veracity-scm.com/compare/
* onveracity.com (offline :()
* TODO
* **feature** elaboration
* **distributed** version control
* **integrated bug tracking**, wiki, forum and technotes
* built-in **web interface**
* **autosync** mode
* show **descendants** of a checkin
* supports operations on multiple repositories (`fossil all`)
<https://www.fossil-scm.org> <!-- element: class="attribution" -->
note:
FIXME: uitbreiden
* **autosync mode** - push automatically after each check-in
* TODO
* Written in C and SQL
* Is the VCS of choice for the SQLite project
* 'Github in a box'
* Free code hosting at:
* Chisel - <http://chiselapp.com/>
* SourceForge - <http://fossilrepos.sourceforge.net>
note:
Though the SourceForge implementation is a bit unorthodox.
Because Fossil needs just an SQLite database to generate static HTML.
So any hosting space provider would do the job.
---
## Uses a relational database
note:
FIXME:
The difference is that Git stores its objects as individual files in the ".git" folder or compressed into bespoke "pack-files", whereas Fossil stores its objects in a relational (SQLite) database file. To put it another way, Git uses an ad-hoc pile-of-files key/value database whereas Fossil uses a proven, general-purpose SQL database. This difference is more than an implementation detail. It has important consequences.
With Git, one can easily locate the ancestors of a particular check-in by following the pointers embedded in the check-in object, but it is difficult to go the other direction and locate the descendants of a check-in. It is so difficult, in fact, that neither native Git nor GitHub provide this capability. With Git, if you are looking at some historical check-in then you cannot ask "what came next" or "what are the children of this check-in".
<!-- TODO: one or two slides on an interesting feature -->
note:
FIXME:
Fossil and Git promote different development styles. Git promotes a "bazaar" development style in which numerous anonymous developers make small and sometimes haphazard contributions. Fossil promotes a "cathedral" development model in which the project is closely supervised by an highly engaged architect and implemented by a clique of developers.
Nota Bene: This is not to say that Git cannot be used for cathedral-style development or that Fossil cannot be used for bazaar-style development. They can be. But those modes are not their design intent nor their low-friction path.
Git encourages a style in which individual developers work in relative isolation, maintaining their own branches and occasionally rebasing and pushing selected changes up to the main repository. Developers using Git often have their own private branches that nobody else ever sees. Work becomes siloed. This is exactly what one wants when doing bazaar-style development.
Fossil, in contrast, strives to keep all changes from all contributors mirrored in the main repository (in separate branches) at all times. Work in progress from one developer is readily visible to all other developers and to the project leader, well before the code is ready to integrate. Fossil places a lot of emphasis on reporting the state of the project, and the changes underway by all developers, so that all developers and especially the project leader can maintain a better mental picture of what is happening, and better situational awareness.
<!-- TODO: werking uitleggen -->
* A patch is an intuitive atomic unit of work.
* It focuses on *changes*, instead of *differences between snapshots* (i.e. Git commits).
* Applying or unapplying a patch *doesn't change* its identity.
* The end result of applying several patches is always the same, regardless of the order in which they were applied.
note:
FIXME: toelichting schrijven