Normale Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Ältere BeiträgeHaupt-Feeds

Git 2.40 bringt Features und Fixes

14. März 2023 um 08:58

Mit der Version 2.40 der freien Versionsverwaltung Git kommen neue Features und Bugfixes in das ursprünglich von Linus Torvalds programmierte Tool.

Die neue Option “–merge-base” für Zusammenführungen via “merge tree” zählt als eine der Neuerungen, die von den 88 Beitragenden zu dieser Version stammen. In Git 2.40 unterstützt das optionale Tool “git jump” nun zusätzlich zu Vim auch Emacs für eine Ausgabe von Git Kommandos wie “grep” in einen Editor, so dass sich “git jump” nun verwenden lässt, um eine entsprechende Liste in den Emacs-Client einzutragen.

Zu den Performance-Verbesserungen zählen Einstellungen in der CI-Infratsruktur, die unnötige Build vermeiden helfen sollen. Die Konfiguration erfolgt über “ci –config”. Bei den Bugfixes ist genannt, dass die Art und Weise, wie die Diff-Maschinerie das Options-Array für die parse_options-API vorbereitet,  überarbeitet wurde. Das soll Ressourcenlecks vermeiden.

Die Release Notes listen die Änderungen auf.

Der Beitrag Git 2.40 bringt Features und Fixes erschien zuerst auf Linux-Magazin.

Security Audit für Git abgeschlossen

25. Januar 2023 um 09:32

Der Open Source Technology Improvement Fund (OSTIF) hat die Ergebnisse einer Sicherheitsüberprüfung und eines Bedrohungsmodells für Git veröffentlicht.

Git sei das weltweit am weitesten verbreitete Versionskontrollsystem und bilde nicht nur die Grundlage für Open Source, sondern auch für die überwiegende Mehrheit der öffentlichen und privaten Softwareentwicklung, schreibt der OSTIF.

Der OSTIF bedankt sich für die Finanzierung und Unterstützung durch das Google Open Source Security Team (GOSST) und die Hilfe der OpenSSF.

Im Security Audit seien insgesamt 35 Probleme entdeckt worden, darunter zwei kritische und ein sehr schwerwiegender Befund, teilt der OSTIF mit. Darüber hinaus seien während der Untersuchung eine Reihe von potenziell katastrophalen Sicherheitsfehlern entdeckt und intern vom Git-Sicherheitsteam behoben worden. In der aktuellen Veröffentlichung von Git seien die kritischen Bugs behoben.

Zu den kritischen Fehlern zählten Out-of-Bounds Reads und Writes. Die Fehler beim Lesen und Schreiben in zugewiesene Speicherbereiche haben zweimal das Gefahrenpotenzial kritisch und einmal hoch zugewiesen bekommen.

Der komplette Bericht zum Git Security Assessment ist online als PDF abrufbar.

Der Beitrag Security Audit für Git abgeschlossen erschien zuerst auf Linux-Magazin.

Git 2.38.0 ist fertig

04. Oktober 2022 um 09:01

Die Entwickler der Versionsverwaltung Git haben Version 2.38.0 veröffentlicht. Enthalten sind 699 Non-Merge-Commits gegenüber der Vorversion. 92 Personen haben Beiträge geleistet, 24 davon seien neue Gesichter, heißt es in der Ankündigung.

Entsprechend lang ist die Liste der Änderungen, Neuerungen und Verbesserungen und auch der Bugfixes. Die Entwickler zählen unter anderem ein neues Hilfsmittel ein, um zu sehen, ob ein Zweig bereits bearbeitet wird. Das funktioniere viel besser als das bestehende find_shared_symref() und könne letzteres oft ersetzen. Außerdem habe man die Funktion “Diagnose” zur Erstellung eines Zip-Archivs für diagnostisches Material aus “scalar” herausgenommen und zu einer Funktion von “git bugreport” gemacht.

Zu den Bugfixes zählt, dass der Rewrite von “git add -i” in C, der seit Git 2.25 dabei ist, eine entfernte Datei nicht korrekt in den Index aufgenommen hat. Dieses Fehlverhalten sei nun behoben, lassen die Entwickler wissen. Git 2.38.0 steht auf den üblichen Kanälen bereit, heißt es in der Ankündigung.

Der Beitrag Git 2.38.0 ist fertig erschien zuerst auf Linux-Magazin.

Docker Desktop für Linux

09. Juni 2022 um 13:17

Docker Desktop ist eine grafische Benutzeroberfläche zu Docker, die manche administrative Aufgaben erleichtert. Ursprünglich stand das Programm nur für Windows und macOS zur Verfügung. Seit Mai 2022 gibt es den Docker Desktop auch für Linux. Für diesen Blog-Artikel habe ich das Programm unter Ubuntu 22.04 kurz ausprobiert. Soviel vorweg: Aufgrund diverser Nachteile gibt es wenig zwingende Gründe, die für den Einsatz sprechen.

Docker Desktop unter Linux

Installation

Ich habe meine Tests unter Ubuntu 22.04 durchgeführt. Auf dem Rechner waren bisher keine Docker-Pakete installiert. Beachten Sie, dass der Docker Desktop keine Erweiterung zu einer vorhandenen Docker-Installation ist. Vielmehr sollten Sie diese vollständig entfernen, bevor Sie mit der Installation beginnen!

Bevor Sie den Docker Desktop installieren können, müssen Sie die Docker-eigene Paketquelle einrichten (Quelle):

sudo apt update

sudo apt install ca-certificates curl gnupg lsb-release

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Absurderweise enthält diese Paketquelle zwar diverse Docker-Pakete, nicht aber den Docker Desktop. Den müssen Sie manuell als DEB-Paket von der folgenden Seite herunterladen. (Der Grund für diese umständliche Vorgehensweise sind vermutlich die abweichenden Lizenzen. Der Docker Desktop steht zwar Privatanwendern kostenlos zur Verfügung. Es handelt sich aber nicht um Open-Source-Code. Für den kommerziellen Einsatz sind je nach Unternehmensgröße Lizenzgebühren erforderlich.)

https://docs.docker.com/desktop/release-notes

Das lokal heruntergeladene Paket samt aller Abhängigkeiten installieren Sie nun so:

sudo apt update

sudo apt install Downloads/docker-desktop-4.9.0-amd64.deb

Zum Ende der Installation wird eine Warnung angezeigt, die Sie aber ignorieren können:

N: Der Download wird als root und nicht Sandbox-geschützt durchgeführt, 
da auf die Datei »/home/kofler/Downloads/docker-desktop-4.9.0-amd64.deb« 
durch den Benutzer »_apt« nicht zugegriffen werden kann. 
pkgAcquire::Run (13: Keine Berechtigung)

Betrieb

Im Startmenü bzw. unter Gnome mittels Aktivitäten führen Sie den Docker Desktop nun aus. Der Startvorgang dauert eine Weile. Anschließend können die Kommandos docker und docker compose wie üblich in einem Terminalfenster ausgeführt werden. Docker wurde so eingerichtet, dass das Kommando ohne sudo funktioniert. Den Containern wird standardmäßig eine Netzwerkverbindung in einem privaten Netzwerk in 172.*.*.* zugewiesen.

docker run -it --rm alpine

<alpine># ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
3: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN qlen 1000
    link/tunnel6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
16: eth0@if17: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

Nachdem die Hürden der Installation einmal überwunden waren, hat Docker ausgezeichnet funktioniert. Im Vergleich zur reinen Verwendung des Kommandos docker hilft der Docker Desktop beim Einstieg in die Container-Welt sowie bei der Verwaltung aller jemals ausgeführten Container, aller heruntergeladenen Images sowie der von den Container genutzten Volumes. Wirklich essentiell ist keine dieser Funktionen, aber natürlich erleichtern sie die ersten Schritte.

Interna

Hinter den Kulissen ist für die Ausführung der Docker-Container eine virtuelle Maschine zuständig, die vom Docker Desktop automatisch gestartet wird. Auf meinem Rechner mit 16 GByte RAM und einer CPU mit 4 Cores hat der Docker Desktop für sich knapp 4 GByte RAM und 2 Cores reserviert. Für das Disk Image der Maschine sind 64 GByte vorgesehen. (Anfänglich ist die Datei aber zum Glück wesentlich kleiner.) QEMU-Experten können sich in der Prozessliste die Optionen ansehen, die für die Ausführung der virtuellen Maschine verwendet werden.

ps axu | grep qemu

kofler     40338  3.5 26.0 6470936 4223024 ?     Sl   13:13   0:54 qemu-system-x86_64 -accel kvm -cpu host -machine q35 -m 3962 -smp 2 -kernel /opt/docker-desktop/linuxkit/kernel -append page_poison=1 vsyscall=emulate panic=1 nospec_store_bypass_disable noibrs noibpb no_stf_barrier mitigations=off linuxkit.unified_cgroup_hierarchy=1 vpnkit.connect=tcp+bootstrap+client://gateway.docker.internal:42021/974498b84e0cf777fec14624fda4ca7bb07343ae3bbed05f397d28bbf707b784 vpnkit.disable=osxfs-data console=ttyS0 -initrd /opt/docker-desktop/linuxkit/initrd.img -serial pipe:/tmp/qemu-console1100778794/fifo -drive if=none,file=/home/kofler/.docker/desktop/vms/0/data/Docker.raw,format=raw,id=hd0 -device virtio-blk-pci,drive=hd0,serial=dummyserial -netdev user,id=net0,ipv6=off,net=192.168.65.0/24,dhcpstart=192.168.65.9 -device virtio-net-pci,netdev=net0 -vga none -nographic -monitor none -object memory-backend-memfd,id=mem,size=3962M,share=on -numa node,memdev=mem -chardev socket,id=char0,path=/home/kofler/.docker/desktop/virtiofs.sock0 -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=virtiofs0

Der Docker Desktop samt seiner virtuellen Maschine läuft ohne root-Rechte als Prozess des lokalen Benutzers.

systemctl --user status docker-desktop

  docker-desktop.service - Docker Desktop
     Loaded: loaded (/usr/lib/systemd/user/docker-desktop.service; disabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-06-09 13:13:50 CEST; 9min ago
   Main PID: 40088 (com.docker.back)
      Tasks: 157 (limit: 18937)
     Memory: 5.8G


docker version

Client: Docker Engine - Community
 Cloud integration: v1.0.25
 Version:           20.10.17
 API version:       1.41
 ...
 Context:           desktop-linux
 Experimental:      true

Server: Docker Desktop 4.9.0 (80466)
 Engine:
  Version:          20.10.16
  API version:      1.41 (minimum version 1.12)
  ...
 containerd:
  Version:          1.6.4
  GitCommit:        212e8b6fa2f44b9c21b2798135fc6fb7c53efc16
 runc:
  Version:          1.1.1
  GitCommit:        v1.1.1-0-g52de29d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Die Eckdaten der virtuellen Maschine können in der Oberfläche des Docker Desktops verändert werden.

Einstellungen für die virtuelle Maschine, in der die Docker-Container ausgeführt werden

Zukunftsvisionen: »Development Environments« versus »Development Containers«

Spannend ist eine neue Funktion, die aktuell aber erst im Preview-Stadium vorliegt: Development Environments (Link zur Dokumentation) sollen es im Zusammenspiel mit git noch einfacher machen, Testversionen bzw. Entwicklungszweige (git-Branches) im Team auszuprobieren — und das, ohne jedesmal alle möglichen Voraussetzungen manuell einzurichten. Möglicherweise führt das die Idee von gewöhnlichen Containern noch einen Schritt weiter.

Das VSCode-Plugin Remote Containers verfolgt mit Development Containern eine ganz ähnliche Idee (Link). Ob sich eines dieser Konzepte durchsetzen kann, ist aktuell noch nicht absehbar.

Fazit

Die grafische Oberfläche des Docker Desktops bietet Linux-Anwendern den gleichen Komfort wie Entwicklern, die Docker unter macOS oder Windows ausführen. Das ist an sich sehr erfreulich.

Der Docker Desktop enthält allerdings keine wirklich relevanten Funktionen, die nicht schon bisher auf Kommandoebene zur Verfügung standen. Gegen den Einsatz von Docker Desktop sprechen diverse Gründe:

  • Die Installation ist verblüffend umständlich. (Die Docker-Installation war schon immer relativ umständlich, weil nur wenige Distributionen aktuelle Docker-Pakete zur Verfügung stellen. Aber dass Docker Desktop die Sache noch komplizierter macht, ist absurd.)

  • Docker Desktop ist ein Komplettpaket inklusive aller Docker-Tools. Es ersetzt die bisherigen Pakete. Eine Installation des Docker Desktop parallel zu einem schon vorhandenen Docker-Setup ist nicht möglich.

  • Der Docker Desktop verwendet eine virtuelle Maschine zur Ausführung von Containern. Dadurch ergibt sich eine bessere Trennung zwischen dem Host-Rechner und den Docker-Container. Allerdings geht ein wesentlicher Vorteil von Docker unter Linux verloren, nämlich die nahtlose Integration von Docker-Containern in die Prozess- und Speicherverwaltung des Hosts. Der für die virtuelle Maschine reservierte Speicher wird zur Gänze Docker zugeteilt, ganz egal, wie viele oder wenige Container gerade ausgeführt werden. Auf Entwicklungsrechnern mag dieser Ansatz eine gewisse Berechtigung haben. Für das Deployment am Server ist der Docker Desktop definitiv ungeeignet (und auch gar nicht vorgesehen).

  • Weil der Docker Desktop eine virtuelle Maschine benötigt, kann der Docker Desktop nur bei nativen Linux-Installationen genutzt werden — nicht aber, wenn Linux selbst in einer virtuellen Maschine läuft. Vermutlich ist das ein Grund, warum bisher so wenig Testberichte zum Docker Desktop erschienen sind …

  • Der Docker Desktop steht Privatanwendern zwar kostenlos zur Verfügung, es handelt sich aber nicht um ein ein Open-Source-Programm. Der kommerziellen Einsatz ist in großen Unternehmen (>250 Mitarbeiter oder >10 Millionen $ Jahresumsatz) kostenpflichtig.

Quellen/Links

Feature-Release: Git 2.36.0 ist da

19. April 2022 um 08:21

Git v2.36.0 ist verfügbar.  Die freie Software zur Versionsverwaltung bestehe aus 717 Nicht-Merge-Commits seit der vorangegangenen Ausgabe, heißt es in der Ankündigung.

Junio C Hamano kann in seiner Mitteilung an die Git-Mailingliste noch ergänzen, dass Beiträge von 96 Personen in diese Version geflossen seien. 26 dieser Beitragenden seien neue Gesichter.

Als eine der wichtigen Neuerungen zählen erneute Verbesserungen zur Lösung von Merge-Konflikten. Mit Merge ort bringe Git bereitzs eine komplett neu geschriebenen rekursive Merge-Engine mit. In Version 2.36.0 bringe die nun ein weiteres Feature mit, dass bei Merge-Konflikten hilfreich sei: –remerge-diff. Die –remerge-diff-Option zeige statt den Unterschieden zwischen der Merge-Resolution und jeder übergeordneten Datei den Unterschied zwischen der Datei mit Merge-Konflikten und deren Auflösung an.

Das Git inzwischen Repositories, die anderen Benutzern gehören, nicht beachtet, um zu vermeiden, dass deren Konfigurationsdateien und Hooks beeinflusst werden, lässt sich nun umgehen. Pfade zu sicheren/vertrauenswürdigen Repositories, die möglicherweise anderen gehören, lassen sich nun in einer Konfigurationsvariablen safe.directory auflisten, um dieses Verhalten außer Kraft zu setzen. Mit  * verwendet erklärt man, dass man allem vertraut.

Die Ankündigung listet die umfangreichen Neuerungen auf.

Der Beitrag Feature-Release: Git 2.36.0 ist da erschien zuerst auf Linux-Magazin.

Updates für Git beheben Sicherheitsproblem

13. April 2022 um 09:43

Mit Git v2.35.2 beheben die Entwickler ein Sicherheitsproblem, dass auf Multiuser-Maschinen auftreten kann.

Die neue Version 2.35.2 von Git ist zusammen mit den Releases für ältere Wartungsversionen v2.30.3, v2.31.2, v2.32.1, v2.33.2 und v2.34.2 an den üblichen Stellen verfügbar, schreibt Git-Maintainer Junio C Hamano an die Mailingliste.

Die Lücke könnte ein böswilliger Angreifer ausnutzen um ein .git-Verzeichnis an einem freigegebenen Speicherort oberhalb des aktuellen Arbeitsverzeichnisses eines Opfers zu erstellen, heißt es in einem Blogbeitrag zum Problem. Unter Windows könnte ein Angreifer dann etwa das Verzeichnis C:\.git\config erstellen, was dazu führen würde, dass alle Git-Aufrufe, die außerhalb eines Repositorys erfolgen, dessen konfigurierte Werte lesen, schreibt Github-Entwickler Taylor Blau in seinem Post und fügt hinzu, dass Github von der Lücke nicht betroffen sei.

Gelingt es, die Lücke auszunutzen, könne man, da einige Konfigurationsvariablen (wie core.fsmonitor) Git dazu veranlassen, beliebige Befehle auszuführen, bei der Arbeit auf einem gemeinsam genutzten Rechner Befehle ausführen.

Die Ankündigung von Git-Maintainer Junio C Hamano nennt die Download-Möglichkeiten.

Der Beitrag Updates für Git beheben Sicherheitsproblem erschien zuerst auf Linux-Magazin.

Exa - Bessere Listen unter Linux mit dem ls Ersatz

06. März 2022 um 17:52

Es gibt unter Linux ein paar wenige Kommandos, welche ständig zum Einsatz kommen, dazu zählt sicherlich das Kommando ls. Nun ist dieser Befehl schon etwas in die Jahre gekommen, bietet aber eigentlich noch immer alles, was im Alltag benötigt wird.

Mit Exa gibt es einen ls Ersatz, der das staubige Image etwas aufpeppen möchte.

Bevor hier ein paar Worte zu Exa fallen noch ein kleiner Hinweis, wie ihr eure Top-Befehle auf der Konsole anzeigen könnt, damit ihr seht wie oft ihr ls eigentlich verwendet.

history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr

Exa - ein moderner ls Ersatz für Ubuntu/Debian

Die Installation von Exa ist denkbar einfach und kann unter neueren Systemen via apt erledigt werden.

sudo apt install exa

Auf älteren Systemen muss das passende Paket manuell heruntergeladen werden.

wget https://github.com/ogham/exa/releases/download/v0.10.0/exa-linux-x86_64-v0.10.0.zip

sudo install bin/exa /usr/local/bin/

Um das Tool zu verwenden, reicht ein einfaches exa aus. Allerdings wird beispielsweise ein Ubuntu Nutzer schnell feststellen, dass es im Vergleich zu ls fast keine Unterschiede gibt, denn diese Distribution unterstützt bereits eine farbige Ausgabe.

Exa entfaltet seine Kraft also erst in der Tiefe. Hier ein paar Beispiele.

exa-lsEin schlichtes

exa -lF

wird sich bereits stark von ls -l unterscheiden, einerseits farblich, andererseits werden durch den Operator -F für file type zusätzliche Informationen angezeigt.

Praktischerweise bringt exa noch weitere Funktionen mit. So wird Git unterstützt und zeigt mit N für neue Dateien (staged) und M für geänderte Dateien (unstaged) weitere relevante Informationen an.

exa -l --git

Auch eine Baumansicht ist dabei und ermöglicht eine strukturierte Ansicht, ähnlich wie tree.

exa --tree --level=3

Daneben ist es ebenfalls möglich einen relativ mächtigen Filter anzuwenden oder Logos einzubinden. Bei letzterem muss allerdings erst die passende Schriftart installiert werden.

Eine ausführliche Dokumentation ist bei exa direkt zu finden.

exa-logos

Überaus praktisch empfinde ich die Möglichkeit, sich Listen nach gewünschten Werten wie Größe, Alter, usw. sortieren zu lassen.

exa -l --sort=size
exa -l --sort=age

Fazit

Nutzer, die ls im Alltag etwas aufmotzen möchten, sind bei exa gut aufgehoben. Dank der Paket-Installation in neueren Distributionen ist die Hemmschwelle, einen kurzen Blick zu wagen, relativ gering. Probiert es einfach mal aus, vielleicht sagt es euch ja zu.

Git 2.35 bringt viel Neues

25. Januar 2022 um 10:19

Mit der Veröffentlichung der freien Versionsverwaltung Git in Ausgabe 2.35 können die Entwickler 494 Commits von 93 Entwicklern seit der  Git 2.34 ankündigen. Dass 35 neue Beitragende dabei waren, freut die Community um Git.

Zu den Neuerungen zählen die Macher in der Ankündigung etwa den –staged Modus im Sub-Befehl git stash. Der mache es einfacher, Änderungen in einem Staging-Bereich zu speichern. Verbesserungen hat es in der user.signingKey-Konfiguration gegeben. Es lassen sich nun etwa SSH-Schlüssel mit Schlüsseltypen angeben, die nicht mit “ssh-” beginnen, dazu zählen die Entwickler etwa ECDSA-Schlüssel.

Das Vervollständigungsskript in contrib/ könne nun über die “–date” von Befehlen aus der “git log”-Familie die Werte “human” und “auto” als gültige Werte annehmen, heißt es weiter. Außerdem habe man die Befehlszeilenvervollständigung für die Optionen von “git send-email” überarbeitet, damit sie leichter mit dem Befehl selbst synchronisiert werden könne. Die Ankündigung zählt alle Neuerungen auf. Es gibt zudem eine ganze Reihe von Bugfixes. Anmerkungen zur Installation und zum Bau aus den Quellen sind ebenfalls enthalten.

Der Beitrag Git 2.35 bringt viel Neues erschien zuerst auf Linux-Magazin.

Git 2.34 bringt neue Merge-Strategie

16. November 2021 um 09:50

Mit der neuen Version 2.34 der Versionsverwaltung Git kommt die neue Merge-Strategie ort ins Spiel. Sie ersetzt recursive als Default-Einstellung.

Git 2.34 bringt Sie 834 Commits seit 2.33.0 mit, die von 109 Personen stammen. Von denen wiederum seien 29 neue Gesichter, teilt Junio C Hamano an die Git-Mailingliste mit.

Die neue Ort-Strategie steht für “ostensibly recursive’s twin” und ist ein kompletter Rewrite der Merge-Strategie, der die gleichen Konzepte wie bei “recursive” emuliert und gleichzeitig deren Leistungs- und Korrektheitsprobleme vermeiden soll. Bei Merges, die viele Umbenennungen enthalten, soll “ort” die Recursive-Strategie um das 500-fache übertreffen.

Zu den vielen enthaltenen Neuerungen, Verbesserungen und Bugfixes zählt unter anderem, dass der Git-MaintenanceScheduler gelernt hat, den Systemd-Timer als mögliches Backend zu nutzen. Zudem wurden verschiedene Fehler in “git rebase -r” wurden behoben.

Die Ankündigung nennt weitere Details und verlinkt den Download.

Der Beitrag Git 2.34 bringt neue Merge-Strategie erschien zuerst auf Linux-Magazin.

Git 2.33.0 ist fertig

19. August 2021 um 08:38

Die Entwickler der freien Versionsverwaltungssoftware Git, die auch bei der Linux-Kernel-Entwiclung zum Einsatz kommt, haben Version 2.33.0 veröffentlicht.

Git 2.33.0 besteht unter anderem aus 449 Commits seit v2.32.0, für die 74 Personen verantwortlich zeichnen, schreibt Junio C Hamano an die Kernel-Mailingliste. Dass von den Beitragenden zur neuen Version 19 neue Gesichter seie, hebt er ebenfalls hervor.

Das neue Git bringe nicht viele für den Endbenutzer sichtbare Änderungen und neue Funktionen mit, schreibt Hamano. Es seien aber eine Menge Bugfixes und interne Verbesserungen dabei. Außerdem würden die Vorbereitungen für eine neue Merge-Strategie in den letzten Zügen liegen. Schon in der nächsten Version könnte diese Strategie zum Standard werden, schreibt er weiter. Mit “git merge -sort” lasse sich die Merge-Startegie verwenden.

Dass “git send-email”die Kommandozeilenoption “–sendmail-cmd” und die Konfigurationsvariable “sendemail.sendmailCmd” gelernt hat, nennt der Entwickler unter den Neuerungen. Das sei ein sinnvollerer Ansatz als die derzeitige Umwidmung des “smtp-server”, das den Server benennen soll, um stattdessen den Befehl zur Kommunikation mit dem Server zu benennen. In seiner Mail sind die Neuerungen und Fixes aufgelistet. Auch die Server für den Download sind verlinkt.

Der Beitrag Git 2.33.0 ist fertig erschien zuerst auf Linux-Magazin.

Magit 3.0: Finally, a release!

27. Mai 2021 um 09:07

Mit dem Release des textbasierten Git-Userface Magit in Version 3.0 endet eine längere Wartezeit auf eine neue Ausgabe.

Magit-Maintainer Jonas Bernoulli entschuldigt sich für den spontanen Entschluss, nun doch eine Version 3.0 zu veröffentlichen. Es sei eigentlich geplant gewesen, vor der Veröffentlichung von v3 die Cheat-Sheets und Poster von der Spendenaktion auf Kickstarter zu verschicken, aber auch das sei bisher leider nicht passiert. In Magit 3.0 stecken 1264 Commits von 87 Beitragenden, die in den vergangenen zweieinhalb Jahren eingeflossen seien..

Als große Änderung beschreibt Bernoulli die komplett überarbeiteten Menüs, die zur Auswahl von Argumenten und zum Aufrufen von Suffix-Befehlen verwendet werden. Magit verwendet das Transient-Paket, um diese Menüs zu implementieren. Transient habe er vor zwei Jahren veröffentlicht und Magit verwendet es seither, es sollte also den meisten Nutzern bekannt sein, so Bernoulli. Die Release Notes sind auf Github zu finden.

Der Beitrag Magit 3.0: Finally, a release! erschien zuerst auf Linux-Magazin.

PHP-Repository-Server mutmaßlich kurzzeitig kompromittiert

29. März 2021 um 09:31

Auf den Git-Server des PHP-Projekts wurden gestern zwei verdächtige Commits (1, 2) hochgeladen. Das lässt vermuten, dass ein Teil der Infrastruktur rund um den Git-Dienst des Projekts angegriffen wurde.

Das Team ermittelt noch den genauen Hergang, hat allerdings als Konsequenz festgelegt, GitHub anstatt der eigenen Infrastruktur zu nutzen. Das umfasst auch den Einsatz der dort angesiedelten Organisation anstatt des eigenen Autorisierungssystems karma.

In diesem Zusammenhang ist es spannend und erschreckend, wie es live aussieht, wenn bösartiger Code eingeschleust wird. Der erste Commit schleust eine Remote Code Execution-Lücke ein, die über einen zusätzlichen Header HTTP_USER_AGENTT (sic) angesprochen werden kann. Auch beim zweiten Commit wird besagter Header in Verbindung mit der eval-Funktion angesprochen. Besonderes Augenmerk ist hierbei auf die Commit-Header zu legen, die die Änderungen tarnen sollen. So ist dies auch noch einmal ein Appell, Code Reviews einzusetzen – und auch bei Standard-Commit-Messages genau hinzuschauen.

Diese Lücken wurden zeitnah entfernt. Es betrifft "nur" den Entwicklungszweig, sollte allerdings keinen Weg in einen Release gefunden haben.

Schnelleres Navigieren auf Github mit Octotree

06. März 2020 um 08:40

Octotree ist eine Erweiterung, welche den fehlenden Dateibrowser auf Github nachliefert. Mithilfe einer in die Webseite eingeblendete Sidebar lässt es sich einfach via Baumansicht durch das Repository navigieren. Ich nutze die Grundversion, da ich die in der Proversion (70 €) … Weiterlesen

Der Beitrag Schnelleres Navigieren auf Github mit Octotree erschien zuerst auf Got tty.

❌
❌