Nikola Kotur 5 years ago
commit
b793c1f3d8
3 changed files with 102 additions and 0 deletions
  1. 7 0
      archetypes/default.md
  2. 29 0
      config.toml
  3. 66 0
      content/posts/fossil.md

+ 7 - 0
archetypes/default.md

@@ -0,0 +1,7 @@
+---
+title: "{{ replace .Name "-" " " | title }}"
+date: {{ .Date }}
+draft: true
+toc: false
+---
+

+ 29 - 0
config.toml

@@ -0,0 +1,29 @@
+baseURL = "http://blog.kotur.org/"
+languageCode = "en-us"
+title = "Kotnik blogs"
+copyright = "© Copyright 2018 Nikola Kotur"
+
+theme = "whiteplain"
+pygmentsCodefences = true
+pygmentsUseClasses = true
+pygmentsOptions = "linenos=table"
+[params]
+  showShareIcons = false
+[params.author]
+  name = "Nikola Kotur"
+
+[[menu.main]]
+  name = "Archives"
+  weight = 1
+  identifier = "archives"
+  url = "/archives/"
+[[menu.main]]
+  name = "Tags"
+  weight = 2
+  identifier = "tags"
+  url = "/tags/"
+[[menu.main]]
+  name = "About"
+  weight = 3
+  identifier = "about"
+  url = "/about/"

+ 66 - 0
content/posts/fossil.md

@@ -0,0 +1,66 @@
+---
+title: "Fossil keeps more than just your code"
+date: 2015-12-14T23:06:04+01:00
+draft: false
+aliases:
+    - "/posts/fossil-keeps-more-than-just-your-code"
+tags: [fossil,scm,git]
+toc: false
+---
+
+I know, you think that SCM war is over. The battle was fierce, features clashed - Git won. Everybody is using Git now, even the people who do not deal with the code: they keep their designs, texts, blogs in it. Yes, there are islands out there indeed. Hg is still among us, its users just love it. Hell, there are even some poor souls sticking to Subversion.
+
+But...
+
+I am asking you to try one more: [Fossil](http://fossil-scm.org) SCM.
+
+Why? I will assume you use and know Git, so let me begin.
+
+Git repository is made of a lot of files, blobs as you know them. Their names are SHA1s of their contents. The only SHA1 I know by heart is `da39a3`: a SHA1 of an empty string. On Fossil side, **repository is a single file**, and not just any file, but a relational SQLite database. One you can query, inspect, write scripts that are using it,... Comparing this with Git's plumbing is just not quite fair.
+
+Git does not care about history, you can rewrite it as you feel like (`git rebase`). On the other hand, Fossil is **immutable**. Audit is possible, every action leaves a trail, and you can not rewrite it.
+
+Git only takes care of your files. I like that, that sole decision enabled rich ecosystem of tools that take care of other needs developing requires: colaboration, synchronization and decision making among most important ones. But, what if you want to keep all that versioned in the same repository, for cross reference or immutability I mentioned previously? Fossil does not take care only of your files, but it tracks **tickets, wiki and technotes** (something like blog or announcement channel) too. Its all the part of the same timeline (or `git log`).
+
+There are other aspects I like about it, but I leave you with these ones I described since I feel they are its strongest ones. Its concepts are [not hard to grasp](http://fossil-scm.org/index.html/doc/trunk/www/concepts.wiki) if you can spare an hour, but I'll give you my quick'n'dirty quickstart.
+
+Here we go....
+
+*Install it*. Use your package manager. On Arch:
+
+```sh
+pacman -S fossil
+```
+
+You can *clone* repos out there, but lets say you want to *start your own*:
+
+```sh
+fossil init glasshouse
+```
+
+You can create files, commit them, change, do all the stuff you expect from a standard SCM, but here's something other ones do not provide: you can *run built-in webserver* to control every aspect of your repository. I like to create `systemd` units for all my repositories, so lets do that.
+
+Create file `$HOME/.config/systemd/user/fossil-glasshouse.service` with following contents:
+
+```ini
+[Unit]
+Description=Fossil Glasshouse
+
+[Service]
+ExecStart=/usr/bin/fossil server %h/glasshouse/glasshouse.fossil --port 8055
+Restart=always
+
+[Install]
+WantedBy=default.target
+```
+
+Start the unit and visit [http://localhost:8055](http://localhost:8055):
+
+```sh
+systemctl --user start fossil-glasshouse
+open http://localhost:8055
+```
+
+After you click around the user interface you will get enough ideas, there's no need for me to give you mine. If you have, or track, a lot of Fossil repos you can use its `fossil http` command to have UI for all of them. Actually, [Arch's Fossil package](https://www.archlinux.org/packages/community/x86_64/fossil/) comes with Systemd units already ready for this setup. But I gave you the simple one too.
+
+This is not all that can be written about Fossil, be sure to check [the website](http://fossil-scm.org), but more importantly take some time to try it out, you might like it too. Git is not the answer to all questions.