Nach drei Monaten Entwicklungszeit wurde die Version 2.40 des verteilten Systems zur Verwaltung von Quelltexten Git veröffentlicht. Git ist eines der beliebtesten, zuverlĂ€ssigsten und leistungsstĂ€rksten Versionskontrollsysteme, das flexible Mittel fĂŒr die nichtlineare Entwicklung bietet, die auf Verzweigungen und dem ZusammenfĂŒhren von Branches basieren. Um die IntegritĂ€t der Historie zu gewĂ€hrleisten und VerĂ€nderungen "nachtrĂ€glich" zu widerstehen, wird eine implizite Hashierung der gesamten vorherigen Historie in jedem Commit verwendet. Zudem ist es möglich, digitale Signaturen der Entwickler fĂŒr bestimmte Tags und Commits zu verifizieren.
Im Vergleich zur vorherigen Version wurden in die neue Version 472 Ănderungen ĂŒbernommen, die mit der Mitwirkung von 88 Entwicklern erstellt wurden, von denen 30 zum ersten Mal an der Entwicklung teilgenommen haben. Die wichtigsten Neuerungen sind:
- Im Skript git-jump wurde die UnterstĂŒtzung des Editors Emacs hinzugefĂŒgt, zusĂ€tzlich zum bereits unterstĂŒtzten Editor Vim. Git-jump wird verwendet, um dem Texteditor Informationen ĂŒber die Positionen in der Datei fĂŒr eine schnelle Navigation und den Wechsel zur Bearbeitung von Code an einem bestimmten Ort zu ĂŒbermitteln. Beispielsweise kann git-jump verwendet werden, um im Editor zwischen den Zeilen zu wechseln, die aus der Analyse von Merge-Konflikt lösungen, der Bewertung von Unterschieden und der DurchfĂŒhrung von Suchen stammen (man kann âgit jump grep fooâ ausfĂŒhren und dann schnell zwischen den Positionen, an denen das Muster âfooâ vorkommt, wechseln).
- In âgit cat-fileâ wurde die UnterstĂŒtzung fĂŒr die Verwendung der Optionen â-sâ und â--batch-checkâ zusammen mit â--use-mailmapâ hinzugefĂŒgt, um die GröĂe des Objekts korrekt zu bestimmen, wobei die Ersetzung der Identifikatoren anhand der in der mailmap-Datei angegebenen E-Mail-Zuordnungen berĂŒcksichtigt wird (frĂŒher hatte die Option â--use-mailmapâ nur Einfluss auf die Ausgabe des Inhalts, jedoch nicht darauf, dass alte und ersetzte Name/E-Mail-Paare unterschiedliche GröĂen haben können).
- Dem Befehl âgit check-attrâ wurde die Option ââsourceâ hinzugefĂŒgt, um den Baum mit der erforderlichen Datei â.gitattributesâ auszuwĂ€hlen, die zur Bestimmung der aktuellen Attribute verwendet wird, wenn im Repository mehrere Dateien â.gitattributesâ vorhanden sind.
- Die Implementierung des Befehls âgit bisectâ wurde in C neu geschrieben und in die HauptausfĂŒhrungsdatei von git integriert (frĂŒher wurde der Befehl als Shell-Skript realisiert).
- Die alte Implementierung des Befehls âgit add âinteractiveâ, die in Shell geschrieben wurde, wurde entfernt (in git 2.26 wurde eine eingebaute C-Variante vorgeschlagen, aber die alte Implementierung in Shell blieb verfĂŒgbar und konnte mit der Einstellung add.interactive.useBuiltin geregelt werden).
- Dem Befehl âgit merge-treeâ wurde die Option ââmerge-baseâ hinzugefĂŒgt.
- Dem Befehl âgit range-diffâ wurde die Option ââabbrev=â hinzugefĂŒgt.
- Die Möglichkeit, den Listeneditor fĂŒr den interaktiven Modus des Befehls rebase zu ĂŒberschreiben, wurde hinzugefĂŒgt, indem die Variable GIT_SEQUENCE_EDITOR ĂŒber den Befehl âgit varâ gesetzt wird, Ă€hnlich wie bei âgit var GIT_EDITORâ.
- Im Kontoverwaltungssystem wurde die UnterstĂŒtzung fĂŒr Passwörter mit begrenzter GĂŒltigkeitsdauer hinzugefĂŒgt.
- In den Auto-VervollstĂ€ndigungs-Skripten fĂŒr Bash wurde ein Modus ohne BerĂŒcksichtigung der GroĂ- und Kleinschreibung implementiert.
Quelle: opennet.ru
