După trei luni de dezvoltare, a fost publicată versiunea 2.40 a sistemului distribuit de gestionare a codului sursă Git. Git este unul dintre cele mai populare, fiabile și performante sisteme de control al versiunilor, oferind instrumente flexibile pentru dezvoltarea non-liniară, bazate pe ramificare și fuziune. Pentru a asigura integritatea istoricului și rezistența la modificările retroactive, se utilizează o hashing implicit al întregului istoric anterior în fiecare commit, iar semnătura digitală a dezvoltatorilor poate fi folosită pentru a valida etichetele și commit-urile individuale.
Comparativ cu versiunea anterioară, noua versiune include 472 de modificări, pregătite cu participarea a 88 de dezvoltatori, dintre care 30 au participat pentru prima dată la dezvoltare. Principalele noutăți sunt:
- În scriptul git-jump a fost adăugată suportul pentru editorul Emacs, pe lângă editorul Vim, care era anterior suportat. Git-jump este utilizat pentru a transmite editorului de text informații despre pozițiile din fișier pentru navigarea rapidă și trecerea la editarea codului într-un anumit loc. De exemplu, git-jump poate fi folosit pentru a comuta între linii în editor rezultate din rezolvarea conflictelor de fuziune, evaluarea diferențelor și efectuarea unei căutări (se poate executa „git jump grep foo” și apoi să se comute rapid între pozițiile în care apare masca „foo”).
- În „git cat-file” a fost adăugată suportul pentru aplicarea opțiunilor „-s” și „—batch-check” împreună cu „—use-mailmap” pentru a determina corect dimensiunea obiectului ținând cont de înlocuirea identificatorului, realizată pe baza asocierilor de email definite în fișierul mailmap (anterior, opțiunea „—use-mailmap” afecta doar ieșirea conținutului, fără a lua în calcul faptul că vechile și înlocuitele perechi nume/email pot avea dimensiuni diferite).
- În comanda „git check-attr” a fost adăugată opțiunea „—source” pentru a selecta arborele cu fișierul „.gitattributes” necesar, care va fi folosit pentru a determina atributele actuale în condițiile în care în repo există mai multe fișiere „.gitattributes”.
- Implementarea comenzii „git bisect” a fost rescrisă în limbajul C și încorporată în fișierul executabil principal git (anterior, comanda era implementată sub formă de script Shell).
- A fost eliminată vechea implementare a comenzii „git add —interactive”, scrisă în Shell (în git 2.26 a fost propusă o variantă încorporată în C, dar vechea implementare în Shell a rămas disponibilă și era reglementată prin setarea add.interactive.useBuiltin).
- Comenzii „git merge-tree” i s-a adăugat opțiunea ‘—merge-base’.
- Comenzii „git range-diff” i s-a adăugat opțiunea „—abbrev=”.
- A fost adăugată posibilitatea de a redefini editorul listelor pentru modul interactiv al comenzii rebase prin setarea variabilei GIT_SEQUENCE_EDITOR prin comanda „git var”, similar cu „git var GIT_EDITOR”.
- În subsistemul de conturi a fost adă suport pentru parole cu termen limitat.
- În scripturile de completare automată pentru Bash a fost implementat un mod de funcționare fără a ține cont de majuscule.
Sursa: opennet.ro
