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
- Fossil herunterladen von https://fossil-scm.org/index.html/uv/download.html
- Irgendwo speichern (/home/user/Download)
- Entpacken mit
tar xf fossil-macosx-2.2.tar.gz
- Datei in ein Verzeichnis im PATH verschieben, z. B.
sudo mv fossil /usr/local/bin
Debian Linux
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