t73f.de

Check-in [cae8c94464]
Login

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

Overview
Comment:Typos in post about Fossil
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:cae8c944648e223c13d2cfc26f3e671ce07ed24f
User & Date: dkreuz 2016-04-27 17:52:46
Context
2016-04-28
16:12
Improve load time by load font in HTML document and not in CSS document check-in: 693e3696f0 user: dkreuz tags: trunk
2016-04-27
17:52
Typos in post about Fossil check-in: cae8c94464 user: dkreuz tags: trunk
17:14
Fix: atom logo placed via div check-in: e98d709dfa user: dkreuz tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to content/blog/20151005_163544_fossil/contents.lr.

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
..
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
..
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
..
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109

110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132

133
134
135
136
137
138
139
...
161
162
163
164
165
166
167
168
169
170
171
categories: produktivitaet
---
tags: fossil, scm, intro
---
body:

Wer etwas ernsthafter programmiert, der weiß eine Art von Software besonders zu
schätzen: Versionsverwaltung, auch Versionskontrollsystem genannt.  Mit solche
einer Software wird verhindert, dass Programmcode aus Versehen überschrieben
oder gelöscht wird. Dazu speichert ein solches System, wer wann welche Änderung
vorgenommen hat. Als Nebeneffekt bietet eine Versionsverwaltung die Möglichkeit
von Zeitreisen an, leider nur in die Vergangenheit. Die gesamte Vergangenheit
eines Programmcodes kann damit nachvollzogen und wiederhergestellt werden.

Eine Versionsverwaltung ist nicht nur für das Programmieren unabdingbar, es
................................................................................
leistungsfähiges Werkzeug, dass in die Hände erfahrener Menschen gehört. So wie
bei einem Rasiermesser kann man damit viel erreichen, sich aber auch einfach
die Kehle durchschneiden. Git ist (auch) deshalb so populär, weil es mit
[GitHub](https://github.com/) einen Dienst gibt, der als soziale Plattform für
Entwickler genutzt wird. GitHub ist das Facebook für Entwickler. Andere Dienste
werden bei weitem nicht so genutzt.

Git, Mercurial, Subversion & Co besitzen einen gravierenden Nachteil: sie
verwalten lediglich Dateien. Für eine strukturierte Softwareentwicklung sind
aber noch weitere Werkzeuge notwendig. Um gefundene Fehler, neue Ideen oder
Aufgaben zu verwalten, ist ein sog. Ticketsystem notwendig. Entwicklungsnahe
Dokumentation wird in einem Wiki abgelegt, damit diese Texte unabhängig vom
Programmcode bleiben und besser zugreifbar sind. Ein externes oder internes
Blog zur Kommunikation ist ebenfalls hilfreich. Übrigens, diese Werkzeuge sind
nicht nur zur Entwicklung von Software hilfreich.
................................................................................

Subversion als zentralistisches System kann dazu gut mit einer ergänzenden
Software betrieben werden. Ich selbst habe dazu schon
[Trac](http://trac.edgewall.org/)
[verwendet](../../2011/personal_trac_installation/). Git und Mercurial sind
Beispiele für verteilte Systeme. Das erleichtert das entkoppelte Arbeiten und
erhöht (im Prinzip) die Ausfallsicherheit. Trotzdem bieten Dienste wie GitHub
keinen verteilten Zugriff auf Ticketsystem, Wiki & Co. Fällt GitHub (oder ein
vergleichbarer Dienst) aus, stagniert die Entwicklung. Das macht die technische
und organisatorische Umsetzung eines verlässlichen Vorgehens nicht einfach.
Ein Ausfall von GitHub ist ähnlich relevant wie ein Ausfall von Facebook oder
Twitter.

Nun kommt Fossil ins Spiel. [Fossil](http://fossil-scm.org/) ist ebenfalls eine
Software zur Versionsverwaltung. Fossil bietet aber auch ein Ticketsystem, ein
Wiki, ein Blog. Jeder Nutzer kann wählen, Fossil eher zentralistisch oder eher
verteilt einzusetzen. Leider gibt es so gut wie keinen zentralen
Hosting-Dienst, wie es GitHub oder andere sind. Dafür kann man es einfach als
CGI-Programm auf einem Web-Server zum Laufen bringen. Der Web-Hoster muss
................................................................................

Ich nutze inzwischen Fossil aus vielen Gründen.

Fossil ist sehr einfach in Betrieb zu nehmen. Im einfachsten Fall muss dazu
eine Datei, die Software selbst, kopiert werden und mittels einigen wenigen
Befehlen auf der Kommandozeile/Eingabeaufforderung funktioniert alles.  Damit
habe ich eine Versionsverwaltung, ein Ticketsystem, ein Wiki und mehr
installiert. Bei Git, Mercurial, Subversion & Co benötige ich dazu wesentlich
mehr, sofern ich ein privates Projekt verwalten möchte. Bei öffentlichen
Projekte, zum Beispiel Open Source, muss ich wenigstens die Software mitsamt
notwendiger Zusatzsoftware aufwendig installieren. Aber das macht man ja nur
einmal pro Rechner.

Die Projektverwaltung ist mit Fossil sehr einfach. Zum einen besteht ein
Projekt (bei Versionsverwaltungen heißt es genauer: Repository) bei Fossil aus
einer einzigen Datei. Die kann ich einfach sichern und wiederherstellen. Bei
Git, Mercurial, Subversion & Co sind das mindestens so viele Dateien, wie ich
Dateien versionieren möchte. Zum anderen kann ich einfach von einem anderen
Rechner benötigte Dateien holen. Das geht bei Mercurial ähnlich einfach. Bei
Git und Subversion muss ich geeignete Infrastruktur bereitstellen.

Fossil ist ein System, das revisionssicher Daten speichert. Bei Git ist es
recht einfach, die Historie eines Projektes zu verändern. Bei Mercurial ist es
etwas schwerer, ebenso bei Subversion. Mit Fossil muss ich mir keine Sorgen
machen, dass ich nicht aus Versehen etwas lösche. Alles bleibt verlässlich
erhalten. Mit Fossil habe ich in 6 Jahren keine einzige Information verloren.
Bei den anderen Systemen möchte ich nicht zählen, wie häufig da etwas passiert
ist. Erst letzte Woche erreichte mich eine Mail von Studierenden, die in einer
Projektstudie Probleme haben, weil die Historie versehentlich geändert wurde.


Sowohl auf der Kommandozeile, als auch über die projektspezifischen Web-Seiten
kann ich meine Projekte gut verwalten. Die Kommandozeile bietet (fast) alle
Möglichkeiten von Git & Co, und das auf eine benutzerfreundliche Weise. Die
Web-Seiten sind ausreichend, vollständig konfigurierbar.

Fossil wird hauptsächlich vom gleichen Entwickler als Open-Source-Porjekt
vorangetrieben, der auch für [SQLite](http://sqlite.org/) verantwortlich ist.
SQLite ist die verbreitetste Datenbanksoftware. Sie findet sich unter Android,
iOS, OSX, Firefox und viel mehr. Fossil basiert intern auf SQLite, umgekehrt
wird Fossil für die Entwicklung von SQLite verwendet. Eat your own dog food.

Seit, einen Moment, 2004 Tagen betreibe ich ein internes Repository, in dem ich
alle relevanten Informationen für mein digitales und mein Arbeitsleben ablege.
(Ich musste nur kurz die entspreche Web-Seite mit den Statistiken des
Repositorys aufrufen.) Dazu betreibe ich einen kleinen Server, damit eine
Version des Repositorys immer online ist. Der Server hat mehrfach gewechselt,
das Repository nicht. Gesichert wird das Repository jede Nacht, verschlüsselt
auf einen weit entfernten Server. Sobald ich einen neuen Rechner in Betrieb
nehme (in den 2004 Tagen sind es mehr als 10 gewesen, aktuell sind 4 aktiv),
muss ich Fossil auf den Rechner bringen, das Repository vom kleinen Server
kopieren und es aktivieren. Fertig. Sollte der kleine Server ausfallen habe ich
aktuell 3 weitere, gleichberechtigte Kopien, zuzüglich der Sicherungskopie.


Was verwalte ich in diesem Repository? Alle relevanten Dateien, zum Beispiel
Vorlesungsunterlagen, dieses Blog, einige selbstgebaute interne Werkzeuge,
Informationen über meine diversen Accounts, sowie meine Aufgabenliste. Diese
habe ich über konfigurierbare Reports als eine Art Kanban-Prozess organisiert.
Alles war nicht tagesaktuell erledigt werden muss, verwalte ich hier. Habe ich
eine Information, eine Aufgabe hinzugefügt oder aktualisiert, muss ich als
................................................................................
betreiben, lässt sich einfach vernetzen, erlaubt zentrales und verteiltes
Arbeiten und ist sehr robust und verlässlich.

Einfach mal ausprobieren.

**Update 12.10.15:** kleines Fundstück, das zeigt, was Git, Mercurial,
Subversion für Sicherheitsprobleme haben. Fossil ist kaum anfällig:
[Die Git-Stolperfalle: Viele Webseiten geben sensible Daten
preis](http://www.heise.de/newsticker/meldung/Die-Git-Stolperfalle-Viele-Webseiten-geben-sensible-Daten-preis-2764756.html).
---
twitter: https://twitter.com/dkreuz/status/651099621956186112







|







 







|







 







|
|
|
|
|







 







|
|
|
|
|




|
|







|
|
|
|
>



|
|

|





|
|
|
|



|
|
|
|
>







 







<
|


5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
..
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
..
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
..
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
...
163
164
165
166
167
168
169

170
171
172
categories: produktivitaet
---
tags: fossil, scm, intro
---
body:

Wer etwas ernsthafter programmiert, der weiß eine Art von Software besonders zu
schätzen: Versionsverwaltung, auch Versionskontrollsystem genannt.  Mit solch
einer Software wird verhindert, dass Programmcode aus Versehen überschrieben
oder gelöscht wird. Dazu speichert ein solches System, wer wann welche Änderung
vorgenommen hat. Als Nebeneffekt bietet eine Versionsverwaltung die Möglichkeit
von Zeitreisen an, leider nur in die Vergangenheit. Die gesamte Vergangenheit
eines Programmcodes kann damit nachvollzogen und wiederhergestellt werden.

Eine Versionsverwaltung ist nicht nur für das Programmieren unabdingbar, es
................................................................................
leistungsfähiges Werkzeug, dass in die Hände erfahrener Menschen gehört. So wie
bei einem Rasiermesser kann man damit viel erreichen, sich aber auch einfach
die Kehle durchschneiden. Git ist (auch) deshalb so populär, weil es mit
[GitHub](https://github.com/) einen Dienst gibt, der als soziale Plattform für
Entwickler genutzt wird. GitHub ist das Facebook für Entwickler. Andere Dienste
werden bei weitem nicht so genutzt.

Git, Mercurial, Subversion&nbsp;& Co besitzen einen gravierenden Nachteil: sie
verwalten lediglich Dateien. Für eine strukturierte Softwareentwicklung sind
aber noch weitere Werkzeuge notwendig. Um gefundene Fehler, neue Ideen oder
Aufgaben zu verwalten, ist ein sog. Ticketsystem notwendig. Entwicklungsnahe
Dokumentation wird in einem Wiki abgelegt, damit diese Texte unabhängig vom
Programmcode bleiben und besser zugreifbar sind. Ein externes oder internes
Blog zur Kommunikation ist ebenfalls hilfreich. Übrigens, diese Werkzeuge sind
nicht nur zur Entwicklung von Software hilfreich.
................................................................................

Subversion als zentralistisches System kann dazu gut mit einer ergänzenden
Software betrieben werden. Ich selbst habe dazu schon
[Trac](http://trac.edgewall.org/)
[verwendet](../../2011/personal_trac_installation/). Git und Mercurial sind
Beispiele für verteilte Systeme. Das erleichtert das entkoppelte Arbeiten und
erhöht (im Prinzip) die Ausfallsicherheit. Trotzdem bieten Dienste wie GitHub
keinen verteilten Zugriff auf Ticketsystem, Wiki&nbsp;& Co. Fällt GitHub (oder
ein vergleichbarer Dienst) aus, stagniert die Entwicklung. Das macht die
technische und organisatorische Umsetzung eines verlässlichen Vorgehens nicht
einfach.  Ein Ausfall von GitHub ist ähnlich relevant wie ein Ausfall von
Facebook oder Twitter.

Nun kommt Fossil ins Spiel. [Fossil](http://fossil-scm.org/) ist ebenfalls eine
Software zur Versionsverwaltung. Fossil bietet aber auch ein Ticketsystem, ein
Wiki, ein Blog. Jeder Nutzer kann wählen, Fossil eher zentralistisch oder eher
verteilt einzusetzen. Leider gibt es so gut wie keinen zentralen
Hosting-Dienst, wie es GitHub oder andere sind. Dafür kann man es einfach als
CGI-Programm auf einem Web-Server zum Laufen bringen. Der Web-Hoster muss
................................................................................

Ich nutze inzwischen Fossil aus vielen Gründen.

Fossil ist sehr einfach in Betrieb zu nehmen. Im einfachsten Fall muss dazu
eine Datei, die Software selbst, kopiert werden und mittels einigen wenigen
Befehlen auf der Kommandozeile/Eingabeaufforderung funktioniert alles.  Damit
habe ich eine Versionsverwaltung, ein Ticketsystem, ein Wiki und mehr
installiert. Bei Git, Mercurial, Subversion&nbsp;& Co benötige ich dazu
wesentlich mehr, sofern ich ein privates Projekt verwalten möchte. Bei
öffentlichen Projekte, zum Beispiel Open Source, muss ich wenigstens die
Software mitsamt notwendiger Zusatzsoftware aufwendig installieren. Aber das
macht man ja nur einmal pro Rechner.

Die Projektverwaltung ist mit Fossil sehr einfach. Zum einen besteht ein
Projekt (bei Versionsverwaltungen heißt es genauer: Repository) bei Fossil aus
einer einzigen Datei. Die kann ich einfach sichern und wiederherstellen. Bei
Git, Mercurial, Subversion&nbsp;& Co sind das mindestens so viele Dateien, wie
ich Dateien versionieren möchte. Zum anderen kann ich einfach von einem anderen
Rechner benötigte Dateien holen. Das geht bei Mercurial ähnlich einfach. Bei
Git und Subversion muss ich geeignete Infrastruktur bereitstellen.

Fossil ist ein System, das revisionssicher Daten speichert. Bei Git ist es
recht einfach, die Historie eines Projektes zu verändern. Bei Mercurial ist es
etwas schwerer, ebenso bei Subversion. Mit Fossil muss ich mir keine Sorgen
machen, dass ich nicht aus Versehen etwas lösche. Alles bleibt verlässlich
erhalten. Mit Fossil habe ich in 6&nbsp;Jahren keine einzige Information
verloren.  Bei den anderen Systemen möchte ich nicht zählen, wie häufig da
etwas passiert ist. Erst letzte Woche erreichte mich eine Mail von
Studierenden, die in einer Projektstudie Probleme haben, weil die Historie
versehentlich geändert wurde.

Sowohl auf der Kommandozeile, als auch über die projektspezifischen Web-Seiten
kann ich meine Projekte gut verwalten. Die Kommandozeile bietet (fast) alle
Möglichkeiten von Git&nbsp;& Co, und das auf eine benutzerfreundliche Weise.
Die Web-Seiten sind ausreichend, vollständig konfigurierbar.

Fossil wird hauptsächlich von dem Entwickler als Open-Source-Projekt
vorangetrieben, der auch für [SQLite](http://sqlite.org/) verantwortlich ist.
SQLite ist die verbreitetste Datenbanksoftware. Sie findet sich unter Android,
iOS, OSX, Firefox und viel mehr. Fossil basiert intern auf SQLite, umgekehrt
wird Fossil für die Entwicklung von SQLite verwendet. Eat your own dog food.

Seit, einen Moment, 2004&nbsp;Tagen betreibe ich ein internes Repository, in
dem ich alle relevanten Informationen für mein digitales und mein Arbeitsleben
ablege (ich musste nur kurz die entspreche Web-Seite mit den Statistiken des
Repositorys aufrufen). Dazu betreibe ich einen kleinen Server, damit eine
Version des Repositorys immer online ist. Der Server hat mehrfach gewechselt,
das Repository nicht. Gesichert wird das Repository jede Nacht, verschlüsselt
auf einen weit entfernten Server. Sobald ich einen neuen Rechner in Betrieb
nehme (in den 2004&nbsp;Tagen sind es mehr als 10 gewesen, aktuell sind
4 aktiv), muss ich Fossil auf den Rechner bringen, das Repository vom kleinen
Server kopieren und es aktivieren. Fertig. Sollte der kleine Server ausfallen
habe ich aktuell 3&nbsp;weitere, gleichberechtigte Kopien, zuzüglich der
Sicherungskopie.

Was verwalte ich in diesem Repository? Alle relevanten Dateien, zum Beispiel
Vorlesungsunterlagen, dieses Blog, einige selbstgebaute interne Werkzeuge,
Informationen über meine diversen Accounts, sowie meine Aufgabenliste. Diese
habe ich über konfigurierbare Reports als eine Art Kanban-Prozess organisiert.
Alles war nicht tagesaktuell erledigt werden muss, verwalte ich hier. Habe ich
eine Information, eine Aufgabe hinzugefügt oder aktualisiert, muss ich als
................................................................................
betreiben, lässt sich einfach vernetzen, erlaubt zentrales und verteiltes
Arbeiten und ist sehr robust und verlässlich.

Einfach mal ausprobieren.

**Update 12.10.15:** kleines Fundstück, das zeigt, was Git, Mercurial,
Subversion für Sicherheitsprobleme haben. Fossil ist kaum anfällig:

[Die Git-Stolperfalle: Viele Webseiten geben sensible Daten preis](http://www.heise.de/newsticker/meldung/Die-Git-Stolperfalle-Viele-Webseiten-geben-sensible-Daten-preis-2764756.html).
---
twitter: https://twitter.com/dkreuz/status/651099621956186112