FossilSetup

Fossil auf Client und Server einrichten.

Server-Einrichtung

Fossil als CGI auf Apache installieren

Quelle: https://www.fossil-scm.org/index.html/doc/trunk/www/server.wiki

Pfad für Repositories

Wohin gehören die Fossil Repositories auf dem Server?

Quelle / Diskussion: https://stackoverflow.com/questions/2480078/where-to-put-svn-repository-directory-in-linux

Am ehesten nach /srv/fossil
mkdir /srv/fossil
chown www-data:www-data /srv/fossil
mkdir /var/www/bitmuehle.de/cgi
cd /var/www/bitmuehle.de/cgi
chown www-data:www-data .
printf '#!/usr/bin/fossil\ndirectory: /srv/fossil\n' > fossil.cgi
chmod 755 fossil.cgi
chown www-data:www-data fossil.cgi

Apache-Konfiguration

Ggf. CGI-Module aktivieren

a2enmod cgi

Pfad konfigurieren

cd /etc/apache2/sites-available
cp -i bitmuehle.de-ssl.conf bitmuehle.de-ssl.conf-bak-2018-01-06
vi bitmuehle.de-ssl.conf
apache2ctl configtest
systemctl restart apache2
diff bitmuehle.de-ssl.conf bitmuehle.de-ssl.conf-bak-2018-01-06 
    25,26d24
    <       # Fossil CGI Server
    <       ScriptAlias "/fossil/" "/var/www/bitmuehle.de/cgi/fossil.cgi/"
rm bitmuehle.de-ssl.conf-bak-2018-01-06

Repository auf dem Server anlegen

Zunächst ein lokales Repository anlegen und dieses dann auf den Server kopieren. Fossil ist diesbezüglich vom Arbeitsablauf etwas anders als git.

Ausgangsbasis: Repository wurde auf den Server nach /home/christoph kopiert, aktiver Benutzer ist root (alternativ sudo verwenden):

cd /srv/fossil
mv -i /home/christoph/taskjuggler1.fossil .
chown www-data:www-data taskjuggler1.fossil

Client-Einrichtung

Mac OS X

  1. Fossil herunterladen von https://fossil-scm.org/index.html/uv/download.html
  2. Irgendwo speichern (/home/user/Download)
  3. Entpacken mit
    tar xf fossil-macosx-2.2.tar.gz
  4. Datei in ein Verzeichnis im PATH verschieben, z. B.
    sudo mv fossil /usr/local/bin

Debian Linux

  • apt-get install fossil

Referenz

Lokales Repository anlegen

fossil new taskjuggler1.fossil
fossil open taskjuggler1.fossil
fossil ui

Ggf. Root-Passwort (des Repositories) notieren Dann Benutzer anlegen und Passwort vergeben

Repository untersuchen

Infos zum Repository anzeigen:
fossil info

Infos und Dateiliste anzeigen:
fossil status

Verwaltete Dateien auflisten
fossil ls

Nicht verwaltete Dateien im aktuellen Verzeichnis(baum) auflisten. Das ist nützlich, um zu prüfen, ob evtl. Dateien lokal existieren, die noch in's Repository sollen, wenn man vergessen hat sie nach dem Anlegen in's Repository aufzunehmen.
fossil extras

Geänderte Dateien seit dem letzten checkout / commit auflisten:
fossil changes

Änderungen seit dem letzten checkout / commit auflisten:
fossil diff

Dateien zum Repository hinzufügen

Dateien inklusive versteckter Dateien zum Repository hinzufügen
fossil add --dotfiles <Dateinamen>

Standardmäßig (ohne die --dotfiles Option) ignoriert fossil versteckte Dateien:
fossil add <Dateinamen> [Verzeichnisnamen]

Commit ausführen:

fossil commit -m <Beschreibungstext>

Repository vom Server klonen

fossil clone https://HofNarr@bitmuehle.de/fossil/taskjuggler1 taskjuggler1.fossil
fossil open taskjuggler1.fossil

Passwort ggf. neu setzen, falls es überschrieben worden ist:
fossil ui

Workflow mit Release branch und tagging

Ziel / Zweck: Klare Versionsnummern bei Veröffentlichung.

Beispiel-Schema: Major.Feature.Bugfix Major-Versionen beinhalten gravierenden Design Änderungen, daher sind sie i.d.R. zueinander nicht kompatibel.

Einrichtung

fossil branch new release trunk
fossil update release

optional:

fossil rm private-file.txt
 fossil commit -m "Release version 0.4" --tag v0.4

Regelmäßige Nutzung

Voraussetzung: Es gibt zwei branches: trunk (für die Entwicklung) und release für die Veröffentlichungen.

Hier eine Checkliste, wie bei commits mit Veröffentlichung vorgegangen wird:

1. Im trunk-branch die neueste Änderung committen
fossil commit -m "Etwas geändert"

2. In den Release branch wechseln
fossil update release

3. Die Änderungen aus dem trunk branch holen
fossil merge trunk

4. Jetzt die Versionsnummer manuell anpassen, z. B.
vi version.h

5. Commit mit Versions-Tag durchführen

fossil commit -m "Release Version X.Y" --tag vX.Y

6. Zurück in den trunk branch wechseln
fossil update trunk
Topic-Revision: r11 - 28 Jan 2023, EinExperte
Diese Seite läuft auf FoswikiDas Urheberrecht © liegt bei den mitwirkenden Autoren. Alle Inhalte dieser Kollaborationsplattform sind Eigentum der Autoren.
Ideen, Anfragen oder Probleme bezüglich bitmuehle wiki? Feedback senden