jj v0.42.0 veröffentlicht – Git-kompatibles Versionsverwaltungssystem
(github.com/jj-vcs)- Wechsel zum mimalloc-Speicher-Allocator zur Verbesserung der Multithreading-Performance
- Entfernung der veralteten Befehlsoptionen
jj commit --reset-author/--author,jj describe --no-edit/--edit/--reset-author/--authorusw. - Entfernung der Optionen
jj git push --allow-newundjj metaedit --update-committer-timestamp - Entfernung der veralteten Konfigurationsoptionen wie
git.auto-local-bookmarkundgit.push-new-bookmarks jj evologunterstützt keine Legacy-Commit-Predecessors mehr, die vorjj0.30 aufgezeichnet wurden- Die Shell-Autovervollständigung zeigt Beschreibungen für benutzerdefinierte alias, revset-alias, template-alias und fileset-alias an und extrahiert Beschreibungen aus dem Feld
.doctabellarischer alias-Definitionen jj showakzeptiert mehrere Revisionen und zeigt jede Revision der Reihe nach an, näher angit showjj git fetcherzeugt eine auf Change-ID basierende evolution history und rebased lokale Descendant-Revisionen auf neu geschriebene Eltern, wenn das Remote Change-IDs beibehält- Der Befehl
jj util backend namegibt den Namen des Commit-Backends aus, das im aktuellen Repository verwendet wird - Hinzugefügte Einstellung
edit-invocation-modefür den Diff-Editor: Wenn"file-by-file"angegeben ist, wird der Editor einmal pro geänderter Datei ausgeführt, sodass dateibasierte Tools wievimdiffgenutzt werden können jj git remote addmeldet nun bei leeren Remote-Namen oder Remote-Namen mit Leerzeichen einen Fehler statt eines Panic- Bei deaktivierter Farbausgabe zeigt der color-words-Diff before/after in getrennten Zeilen an, was die Lesbarkeit von gepipten oder umgeleiteten Diffs verbessert
1 Kommentare
Lobste.rs-Kommentare
Ich frage mich, ob
jj git fetch, wenn es jetzt eine Change-ID-basierte Entwicklungshistorie erzeugt, bedeutet, dass man nicht mehr jedes Mal direkt nachjj git fetchjj new mainausführen muss, sofern das Remote die Change-ID beibehältDas wäre dann eine ziemlich gute Verbesserung der Lebensqualität
mainja weiterhin andere Changes als zuvor, daher dürfte das dabei nicht helfenIch weiß nur nicht, wie das bei von GitHub erzeugten Merge-Commits ohne Change-ID aussieht
Mich interessiert eher der Teil, dass durch den Wechsel auf den Speicher-Allocator
mimallocdie Multithread-Performance verbessert wurdeBei lang laufenden Prozessen habe ich schon Dinge wie
jemallocausprobiert, um Fragmentierung zu verringern, aberjjfühlt sich eher so an, als starte es in 1 ms und sei in unter 10 ms wieder fertig, daher überrascht es mich, dass ein Allocator-Wechsel spürbar sein sollIch habe noch etwas weiter gesucht und nur gefunden, dass der PR https://github.com/jj-vcs/jj/pull/9484 ist und ungefähr https://github.com/jj-vcs/jj/issues/2490#issuecomment-2595323515; das wirkt nicht wie ein großer Geschwindigkeitssprung. Wenn es aber trotzdem schneller ist und die Änderung nur ein paar Zeilen umfasst, ist das schon okay
Da stand „wenn das Remote die Change-ID beibehält“, aber ich weiß nicht, ob Remotes das normalerweise tun
Ich weiß, dass
jj gerrit uploadeinen Change-ID-Footer hinzufügt, aber ein normalesjj git pushtut das nichtVorgänge, die Commits umschreiben, wie Squash Merge oder Rebase-Merge bei GitHub, erhalten sie allerdings nicht. Wenn es mit Standard-Tools auf
libgit2-Basis verarbeitet wird, bleiben Custom-Header nicht erhalten, und manche Tools wie die Rust-Bibliothek, die GitButler nutzt, unterstützen das Beibehalten von Custom-Headern, aber ich bezweifle, dass Forge-Plattformen so etwas verwendenIch weiß auch nicht, wie man überprüfen soll, ob sie wirklich korrekt erhalten bleibt
In der Dokumentation gibt es mehr Details
GitHub behält sie ebenfalls bei; das kann man an den pushcx-Commits im lobsters-Codebestand oder an meinen Commits sehen
Ich frage mich, ob es empfehlenswerte Texte oder Videos dazu gibt, warum man jj statt Standard-Git verwenden sollte
Ich weiß, dass jj auf Git aufsetzen kann, und habe es auch schon in Hobbyprojekten ausprobiert, aber ich habe bisher noch nicht den entscheidenden Reiz gefunden, warum es besser oder einfacher sein soll