Fryboyter

Aktiven Fork bei Github finden

Ab und an nutze ich sshfs ganz gerne um ein Verzeichnis über SSH lokal zu mounten. Die Entwicklung des Projekts wurde allerdings vor ein paar Monaten eingestellt. Heute wollte ich nachschauen, ob es einen aktiv weiterentwickelten Fork von sshfs gibt.

Was leider, zumindest direkt über github.com, nicht so einfach ist. Über https://github.com/libfuse/sshfs/network/members kann man sich zwar die Forks ansehen aber diese sind alphabetisch sortiert. Da es von sshfs derzeit 403 Forks bei Github gibt, könnte es etwas dauern bis man den aktuellsten Fork findet. Oder man nutzt https://techgaun.github.io/active-forks/index.html. Dort braucht man nur die Adresse des Projekts eingeben (z. B. https://github.com/libfuse/sshfs) und erhält eine Liste der Forks, die nach der Aktivität sortiert ist. Über die Schaltfläche “Add Condition” kann man die Suchabfrage noch nach seinen Wünschen anpassen.

Besser wäre es natürlich, wenn man die Liste direkt bei Github sortieren könnte. Allerdings ist in der Hinsicht Codeberg.org, was auf Gitea basiert, auch nicht besser und bietet ebenfalls nur die alphabetisch sortiere Liste an.

OSBN

Alle Repositories eines Nutzers bei Github klonen

Manchmal möchte man alle Repositories eines Nutzers bei Github auf den eigenen Rechner klonen. Je nach Anzahl der Repositories kann dies etwas aufwändig sein, jedes manuell mit “git clone” herunterzuladen. Um dies zu automatiesieren kann man folgendes Script nutzen. Nennen wir das Script beispielsweise gitdownload.sh.

#!/bin/bash

if [ $# -eq 0 ]
  then
    echo "Usage: $0 <user_name> "
    exit;
fi

USER=$1

for repo in $(curl -s https://api.github.com/users/"$USER"/repos?per_page=1000 |grep git_url |awk '{print $2}'| sed 's/"\(.*\)",/\1/');do
git clone "$repo";
done;

Um damit die betreffenden Repositories herunterzuladen führt man einfach ./gitdownload.sh $benutzername aus. Anstelle von $benutzername trägt man den jeweiligen Namen des Nutzers bei Github ein.

Allgemein | OSBN

Github mit Mercurial nutzen

Vor ein oder zwei Wochen habe ich mir eines meiner Git-Repository zerlegt. Da mich die Lösung viel Zeit, zu viele Nerven und zwei Commits gekostet hat, bin ich nun wieder bei Mercurial gelandet. Dieses Werkzeug mag zwar nicht so mächtig wie Git sein, die Fehlermeldungen sowie die Dokumentation sind meiner Meinung nach viel besser verständlich.

Allerdings will ich auch weiterhin Github aufgrund dessen weiter Verbreitung nutzen. Sei es nun um dort selbst etwas zu veröffentlichen oder um mich an Projekten Dritter zu beteiligen. Mercurial bietet hierfür ein Plugin, dass sich Hg-Git nennt. Damit kann man ein Git-Repository herunterladen und es wird lokal automatisch in ein Mercurial-Repository umgewandelt. Nimmt man nun Änderungen vor, werden diese dann vor dem Hochladen in ein Git-Repository so geändert, dass sie mit Git kompatibel sind. Die Einrichtung von Hg-Git ist zudem ziemlich einfach.

Ich gehe bei folgender Anleitung davon aus, dass sowohl Mercurial als auch python-dulwich auf dem Rechner installiert ist und das im Home-Verzeichnis das Verzeichnis Projekte existiert. Dem Verzeichnis kann man natürlich einen anderen Namen geben.

Zuerst wechselt man im Terminal Emulator seiner Wahl in das Verzeichnis Projekte und lädt dort die Dateien von Hg-Git herunter.

cd ~/Projekte
hg clone https://foss.heptapod.net/mercurial/hg-git hg-git

Alternativ kann man Hg-Git auch über die Paketverwaltung seiner Distribution installieren.

Als nächstes erweitert man die Datei .hgrc im Home-Verzeichnis um folgenden Inhalt. Falls die Datei noch nicht vorhanden ist, einfach anlegen und die drei Zeilen eintragen.

[extensions]
hgext.bookmarks =
hggit = ~/Projekte/hg-git/hggit

Zeile zwei aktiviert das Plugin Bookmarks das in diesem Fall Branches simuliert. Zeile drei aktiviert das eben heruntergeladene Plugin Hg-Git.

Im Verzeichnis Projekte laden wir nun mit folgendem Befehl ein Git-Repository herunter (die Github-Adresse sowie das Zielverzeichnis fryboyter.git bitte entsprechend an die eigenen Gegebenheiten anpassen).

hg clone git@github.com:Fryboyter/Hugo.git fryboyter.hg

Da hierbei von Git zu Merurial umgewandelt wird, kann dies je nach Größe des Repository etwas dauern.

Als Nächstes wechselt man in das Verzeichnis in dem das nun erstellete Mercurial-Respository liegt. In diesem Beispiel also fryboyter.hg. Dort führt man abschließend noch den Befehl hg bookmark -f main aus. Anstelle von main muss man die Bezeichnung des Haupt-Branch angeben. Ansonsten erkennt Mercurial bei einem Push keine Änderungen.

Nun sollte alles funktionieren. Bei meinen Tests konnte ich zumindest problemlos von Github pullen und zu Github pushen. Mehr brauche ich in meinem Fall eigentlich auch nicht. Was mir bei der ganzen Aktion aufgefallen ist, dass das lokale Mercurial-Repository weniger als 30 MB groß ist. Das lokale Git-Repository hingegen belegt etwas mehr als 60 MB. Davon geht die Welt jetzt nicht unter aber es ist trotzdem ein interessantes Detail.

OSBN | Allgemein

I'll be back

Bestimmt kennen die meisten den Spruch “i’ll be back” den Arnold Schwarzenegger im Film Terminator zum Besten gibt. Und er hatte recht.

Jahrelang hatte ich den Terminal Emulator Terminator genutzt, da ich zum Beispiel dessen Tiling-Funktion geschätzt habe. Leider ist die Entwicklung im Jahre 2017 eingeschlafen. Zudem basiert die letzte veröffentlichte Version auf Python 2, was seit diesem Jahr offiziell “end of life” erreicht hat. Daher bin ich schon vor Längerem zu Tilix gewechselt. Dieses Projekt hat allerdings das gleiche Schicksal ereilt, so das es aktuell keine Weiterentwicklung gibt.

Aber manchmal kommen sie wieder. Anfang April haben einige Entwickler beschlossen das Projekt “Terminator” weiterzuführen. Das Projekt auf Launchpad konnte laut deren Aussage nicht übernommen werden, sodass es bei Github eine neue Heimat gefunden hat. Worüber ich sehr froh bin, da ich die grafische Oberfläche von Launchpad einfach nur schrecklich finde.

Mitte April wurde dann die Version 1.92 veröffentlicht. Die wohl wichtigste Änderung ist, dass Terminator nun Python 3 nutzt. Daher bin ich heute von Tilix wieder zu Terminator gewechselt und hoffe, dass ein weiterer Wechsel des Terminal Emulators nun in weiter Ferne liegt.

Bestimmt werden sich jetzt einige Fragen, warum nicht st? Oder warum nicht urxvt? Oder kitty? Die Antwort lautet wie so oft Geschmackssache. Und mir schmeckt eben Terminator.

OSBN | Linux

Dritte können nun Änderungen an meinen Artikeln vornehmen

info
Die Möglichkeit, die Artikel anzupassen, wurde zwischenzeitlich wieder entfernt.

Manchen Leuten ist scheinbar ab und zu sehr langweilig. Dieses Wochenende habe ich doch tatsächlich eine E-Mail mit Hinweisen auf den einen oder anderen Fehler in meinen Artikeln erhalten. Im Grunde waren es nur Rechtschreibfehler.

In der E-Mail wurde ich auch gefragt, ob ich für solche Sachen nicht ein öffentlich zugängliches Repository anbieten kann. Kann ich. Es ist unter https://github.com/Fryboyter/Hugo erreichbar.

Aber würde ich selbst einen Artikel lesen und dann das Repository aufrufen und die Datei suchen, wenn ich einen Fehler finden würde? Eher nicht. Daher habe ich nun einen Link unterhalb der jeweiligen Artikelüberschrift eingebaut, der direkt auf die betreffende Datei bei Github verweist.

Als Erstes habe ich hierfür in der Konfigurationsdatei von Hugo (config.toml) den Bereich [params] um einen Verweis auf das Repository eingetragen.

[params]
ghrepo = "https://github.com/Fryboyter/Hugo/"

Als Nächstes habe ich das verwendete Theme (single.html und list.html) von fryboter.de wie folgt erweitert.

| <a href="{{.Site.Params.ghrepo}}edit/master/content/{{.File.Path}}" >Bei Github bearbeiten</a>

Hiermit wird das in der Datei conifg.toml hinterlegte Verweis auf das Respository genutzt. Dieser wird dann einfach um edit/master/content/ erweitert, da sich dieser Teil nicht ändert. Ganz am Schluss wird mit {{.File.Path}} auf die betreffende Datei verlinkt.

Im Grunde ist das mal wieder ziemlich simpel. Hugo gefällt mir immer mehr.

OSBN | Allgemein