Binärdateien effizienter in Git-Repositorys nutzen mit Git LFS

Dateitypen, die sich nicht effizient in Git-Repositories nutzen lassen, sind Binärdateien. Also genau die Dateien, die man nicht mit einem gängigen Texteditor öffnen kann. Mit Git LFS kann man Binärdateien effizienter verwalten, dabei ist Git LFS eine Erweiterung für den Git-Client, ein entsprechendes Gegenstück wird aber auch auf dem Server benötigt. Doch bevor man sich Git LFS anschaut, sollte man verstehen, wie Git Dateien intern abspeichert, um nachvollziehen zu können, warum man eine Lösung wie Git LFS braucht. ...

April 17, 2017 · 5 min · Sujeevan Vijayakumaran

Mit Git Worktree mehrere Arbeitsverzeichnisse managen

In der Regel klont man sich ein Git-Repository, in dem auch ein Arbeitsverzeichnis eines Branches ausgecheckt ist. Je nach Projektart kann es passieren, dass eine Arbeitskopie nicht reicht. Das ist etwa dann der Fall, wenn man ein Projekt kompilieren muss, was eine Zeit in Anspruch nimmt, in derselben Zeit aber auf einem anderen Branch weiterarbeiten möchte. Im Standard geht das so mit einem geklonten Repository nicht, da sich beim Wechsel des Branches das Arbeitsverzeichnis verändert und somit auch die Kompilierung nicht voll durchläuft bzw. es zu Fehlern kommt. ...

April 14, 2017 · 3 min · Sujeevan Vijayakumaran

Git-Repositorys Hosten mit Gitea

Um Git-Repositorys zu Hosten gibt es heutzutage sehr viele verschiedene Möglichkeiten. Die einfachste und wohl bekannteste Lösung für viele Open-Source-Projekte ist die Nutzung von GitHub. GitHub bietet auch das Hosten von privaten, nicht öffentlichen, Repositorys an, doch ist dies kostenpflichtig. GitHub ist zudem nicht Open Source und man kann es nicht selbst Hosten. Eine Alternative ist GitLab, welches sowohl als Service zum kostenfreien Nutzen verfügbar ist, als auch Open Source ist. Auf GitLab.com kann man im Gegensatz zu GitHub seinen Code in privaten Repositorys schieben, ohne bezahlen zu müssen. Da GitLab Open Source Software ist, lässt sich die Community Edition auch auf eigener Hardware selbst hosten. Allerdings ist GitLab vergleichsweise fett und braucht selbst mit wenigen Nutzern recht viel Arbeitsspeicher, hat dafür aber eine Vielzahl an Funktionen. Für Firmen und anderen Projekte dürfte GitLab wohl eine gute Wahl sein, doch ist es für das Hosten von privaten Repositorys für einzelne Personen eher fett, da man die meisten Features wohl eh nicht braucht. Eine weitere Alternative ist Gogs, bzw. dessen neuer Fork namens Gitea. Gitea ist ein recht neuer Fork von Gogs, was wiederum ein quasi-Klon von GitHub ist. Wobei sich der Ausdruck „Klon“ mehr auf das Aussehen und die grundlegenden Funktionen richtet und somit weniger auf den darunter liegenden Code. ...

April 8, 2017 · 5 min · Sujeevan Vijayakumaran

Höhenverstellbarer Schreibtisch nach zwei Jahren im Einsatz

Vor fast zwei Jahren schrieb ich ein Review über meinen Schreibtisch. Den elektrisch höhenverstellbaren Tisch besitze ich nun seit über zwei Jahren, der Blogpost ist auch schon fast zwei Jahre alt. Es wird Zeit ein kleines Fazit zu ziehen und eine Hinweise bzw. Tipps für diejenigen zu geben, die ebenfalls einen solchen Tisch anschaffen wollen. Eins vorweg: Ein höhenverstellbarer Tisch lohnt sich! Allerdings sollte man eine wesentliche Sache beachten, die ich auch kurz in meinem alten Blogpost angerissen habe: Die Füße tun am Anfang weh und wie ich später festgestellt habe, tun sie eine ganze Weile später weiterhin weh. Insbesondere wirkt sich das auf den Fersen aus. Nachdem ich die ersten Monate mit dem Tisch häufig stehend gearbeitet habe, wurde die Zeit pro Tag die ich am Schreibtisch stand über die Monate immer weniger, bis ich lange Zeit sehr selten den Tisch hochgefahren habe. Der hauptsächliche Grund war, dass eben die Fersen weh taten, da ich in der Regel barfuß am Tisch stehe. In dem Zuge kam es auch zu den Büro-Rückenbeschwerden, durch das ständige Sitzen. ...

April 8, 2017 · 2 min · Sujeevan Vijayakumaran

Statischer Pelican Blog mit statischen Kommentaren

Seit nun mehr drei Jahren läuft mein Blog mit dem statischen Webseiten-Generator Pelican. Einen Artikel zu Pelican hatte ich damals auch geschrieben, in dem ich die grundsätzlichen Features und Funktionen aufgelistet habe. Kurz zusammengefasst kann man unter anderem in Markdown Blogposts schreiben, die von Pelican als HTML-Datei(en) herausgeschrieben werden. Den „output“ Ordner kann man dann auf beliebigen Webspace schieben. So war bislang der Umzug des Blogs sehr einfach, da ich nur die generierten Dateien irgendwo hinschieben musste. ...

March 22, 2017 · 2 min · Sujeevan Vijayakumaran

Kurztipp: Latexmk und 16:9 LaTeX Beamer Slides

Manchmal sind es die kleinen Dinge, die das Arbeiten mit LaTex und in meinem speziellen Fall LaTeX Beamer vereinfachen. Ein hilfreiches Tool ist etwa Latexmk. Wer häufiger an LaTeX-Dokumenten arbeitet, kennt wohl das Problem, dass man den Code mehrfach kompilieren muss, damit alle Cross-Referenzen aktualisiert werden. Etwa dann, wenn neue Kapitel hinzugefügt werden, die dann im Inhaltsverzeichnis gelistet werden sollen. Latexmk macht das ganze etwas schlauer und kompiliert das Dokument gleich genau so oft durch, wie es nötig ist. ...

March 18, 2017 · 2 min · Sujeevan Vijayakumaran

Git-Historie neu-schreiben (nicht nur) mit Filter-Branch

Nach längerer Pause zum Thema Versionsverwaltung mit Git geht es an dieser Stelle ein wenig weiter. Git-Repositorys beinhalten bekanntlich ihre vollständige Historie, so dass alle Änderungen immer in der Historie verbleiben. Problematisch wird das aber, wenn Zugangsdaten im Repository gelandet sind. Ein bloßes Entfernen funktioniert da leider nicht, da die Historie ja vollständig da ist. Ein einfaches Beispiel sieht man etwa, wenn man bei GitHub nach „delete id_rsa“ sucht, was ein privater SSH-Key ist, der nicht eigentlich in ein Git-Repository landen sollte. Genauso findet man auf GitHub Commit-Messages mit dem Inhalt „remove password“. ...

March 16, 2017 · 4 min · Sujeevan Vijayakumaran

Suchen und Finden mit ag, statt ack (statt grep)

Vor fast drei Jahren bloggte ich über „Suchen und Finden mit Ack, statt grep“. Heute lautet der Titel allerdings „Suchen und Finden mit ag, statt ack“. Ag und Ack sind vom Prinzip her gleich: Mit beiden findet man Strings in Dateien, ähnlich wie es grep auch kann. Im Gegensatz zu grep arbeitet ack und ag schneller und ist mehr für Programmierer und Sysadmins ausgerichtet, da es diverse unnötige Verzeichnisse (wie .git) nicht durchsucht. Auch die Ausgabe ist gleich. Ag ist hingegen ein Klon von Ack, was in C statt in Perl geschrieben wurde. Der Fokus bei ag liegt besonders auf die Geschwindigkeit. Wer dachte, dass ack schon schnell ist, der findet mit ag ein noch schnelleres Tool. Laut Angaben des Projektes ist es dabei 5-10x schneller als ack. ...

March 8, 2017 · 2 min · Sujeevan Vijayakumaran