Eldono de fontkontrolo Git 2.35

Post du monatoj da evoluo, la distribuita fontkontrola sistemo Git 2.35 estis liberigita. Git estas unu el la plej popularaj, fidindaj kaj alt-efikecaj versikontrolaj sistemoj, provizante flekseblajn ne-liniajn evoluilojn bazitajn sur disbranĉigo kaj kunfandado. Por certigi la integrecon de la historio kaj reziston al retroaktivaj ŝanĝoj, implicita hashing de la tuta antaŭa historio estas uzata en ĉiu komit; ankaŭ eblas atesti individuajn etikedojn kaj transdonojn per ciferecaj subskriboj de la programistoj.

Kompare kun la antaŭa eldono, la nova versio inkludis 494 ŝanĝojn, preparitajn kun la partopreno de 93 programistoj, el kiuj 35 partoprenis en evoluo por la unua fojo. Ĉefaj novigoj:

  • La eblecoj uzi SSH-ŝlosilojn por ciferece subskribi Git-objektojn estis pligrandigitaj. Por limigi la validecperiodon de pluraj ŝlosiloj, subteno por la direktivoj de OpenSSH "valid-before" kaj "valid-after" estis aldonita, per kiuj vi povas certigi ĝustan laboron kun subskriboj post kiam la ŝlosilo estis turnita de unu el la programistoj. Antaŭ tio, estis problemo kun la apartigo de subskriboj per la malnova kaj nova ŝlosilo - se vi forigas la malnovan ŝlosilon, estos neeble kontroli la subskribojn faritajn per ĝi, kaj se vi forlasos ĝin, tiam restos eble kreu novajn subskribojn per la malnova ŝlosilo, kiu jam estis anstataŭigita per alia ŝlosilo. Uzante valid-antaŭe kaj valid-post vi povas apartigi la amplekson de la ŝlosiloj surbaze de la tempo kiam la subskribo estis kreita.
  • En la agordo merge.conflictStyle, kiu ebligas al vi elekti la reĝimon por montri informojn pri konfliktoj dum kunfandado, aperis subteno por la reĝimo "zdiff3", kiu movas ĉiujn normajn liniojn specifitajn ĉe la komenco aŭ fino de la konflikto ekster la konflikto. areo, kiu permesas pli kompaktan prezenton de informoj.
  • La reĝimo "--staged" estis aldonita al la komando "git stash", kiu ebligas al vi kaŝi nur ŝanĝojn aldonitajn al la indekso, ekzemple en situacio kiam vi bezonas provizore prokrasti iujn el la kompleksaj ŝanĝoj por unue. aldonu tion, kio jam estas preta kaj traktu la ceterajn post iom da tempo. La reĝimo similas al la komando "git commit", skribante nur la ŝanĝojn metitajn en la indekso, sed anstataŭ krei novan kommit en "git stash —staged", la rezulto estas konservita en la stash provizora areo. Post kiam la ŝanĝoj estas bezonataj, ili povas esti revenitaj per la komando "git stash pop".
  • Nova formatspecifilo estis aldonita al la komando "git log", "--format=%(describe)", kiu permesas vin kombini la eligon de "git log" kun la eligo de la komando "git describe". La parametroj por "git describe" estas specifitaj rekte ene de la specifilo ("-format=%(describe:match= , ekskludi= )"), en kiu vi povas ankaŭ inkluzivi mallongigitajn etikedojn ("—format=%(describe:tags= )") kaj agordu la nombron da deksesuma signoj por identigi objektojn ("—format=%(describe:abbrev= )")). Ekzemple, por listigi la lastajn 8 kommits kies etikedoj ne havas eldon-kandidatetikedon, kaj specifi 8-karakterajn identigilojn, vi povas uzi la komandon: $ git log -8 —format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-g2edb95c94 v056-2.34.1-g642f56f95 v8-7-g2.34.1edb203c9 2980902-gb2.34.1bd 640bbc3f41 v212-2.34.1-gffb639f36d v65715-4132- gdfXNUMXcXNUMXadebXNUMX vXNUMX-XNUMX-gXNUMXbXNUMXaXNUMX
  • La agordo user.signingKey nun subtenas novajn specojn de ŝlosiloj kiuj ne estas limigitaj al la "ssh-" tipo kaj specifanta la plenan dosiervojon al la ŝlosilo. Alternativaj tipoj estas specifitaj uzante la "key::" prefikson, ekzemple "key::ecdsa-sha2-nistp256" por ECDSA-ŝlosiloj.
  • La rapideco por generi liston de ŝanĝoj en la reĝimo "—histogramo", same kiel kiam oni uzas la opcion "—color-moved-ws", kiu kontrolas la reliefigon de spacoj en kolordiferenco, estis rimarkeble pliigita.
  • La komando "git jump", uzata por provizi al Vim informojn pri la preciza salto al la dezirata pozicio en dosiero dum analizado de kunfandaj konfliktoj, vidado de diferencoj aŭ plenumado de serĉoperacio, disponigas la kapablon malvastigi la kunfandikonfliktojn kovritajn. Ekzemple, por limigi operaciojn nur al la dosierujo "foo", vi povas specifi "git jump merge - foo", kaj ekskludi la dosierujon "Dokumentation" de prilaborado - "git jump merge - ':^Documentation'"
  • Oni laboris por normigi la uzon de la tipo "size_t" anstataŭ "sensigna longa" por valoroj reprezentantaj la grandecon de objektoj, kio ebligis uzi "purajn" kaj "makulajn" filtrilojn kun dosieroj pli grandaj ol 4 GB. sur ĉiuj platformoj, inkluzive de platformoj kun la LLP64-datummodelo , la tipo "unsigned long" en kiu estas limigita al 4 bajtoj.
  • La opcio "-empty=(stop|drop|keep)" estis aldonita al la komando "git am", kiu ebligas al vi elekti la konduton por malplenaj mesaĝoj, kiuj ne enhavas flikojn dum analizado de flikoj el la leterkesto. La valoro "halti" finos la tutan flikan operacion, "drop" preterlasos malplenan peceton, kaj "konservi" kreos malplenan transdonon.
  • Aldonita subteno por partaj indeksoj (maldensa indekso) al la komandoj "git reset", "git diff", "git blame", "git fetch", "git pull" kaj "git ls-files" por plibonigi rendimenton kaj ŝpari spacon en deponejoj , en kiuj partaj klonaj operacioj (sparse-checkout) estas faritaj.
  • La komando "git sparse-checkout init" estas malrekomendita kaj devus esti anstataŭigita per "git sparse-checkout set".
  • Aldonita komenca efektivigo de nova "reftable" backend por stoki referencojn kiel ekzemple branĉoj kaj etikedoj en la deponejo. La nova backend uzas blokan stokadon uzatan de la projekto JGit kaj estas optimumigita por stoki tre grandajn nombrojn da referencoj. La backend ankoraŭ ne estas integrita kun la refs-sistemo kaj ne estas preta por praktika uzo.
  • La kolorpaletro de la komando "git grep" estis ĝustigita por kongrui kun la GNU grep ilo.

fonto: opennet.ru

Aldoni komenton