Udgivelse af det distribuerede kildekodehÄndteringssystem Git 2.26

TilgÊngelig udgivelse af et distribueret system til administration af kildekoder Git 2.26.0. Git er et af de mest populÊre, pÄlidelige og hÞjtydende versionsstyringssystemer, der tilbyder fleksible vÊrktÞjer til ikke-lineÊr udvikling baseret pÄ forgrening og sammenlÊgning af grene. For at sikre integriteten af historikken og modstandsdygtighed mod 'tilbageskuende' Êndringer anvendes implicit hashing af hele den tidligere historie i hver commit; det er ogsÄ muligt at verificere med digitale signaturer fra udviklerne af individuelle tags og commits.

Sammenlignet med den tidligere version er der i den nye version foretaget 504 ĂŠndringer med deltagelse af 64 udviklere, hvoraf 12 deltager for fĂžrste gang i udviklingen. Vigtige nyheder:

  • Overgangen til den anden version af kommunikationsprotokollen Git, som anvendes ved fjernforbindelse af klienten til Git-serveren, er gennemfĂžrt som standard. Den anden version af protokollen er bemĂŠrkelsesvĂŠrdig ved at muliggĂžre filtrering af grene og tags pĂ„ serversiden, hvilket giver klienten en forkortet liste over links. Tidligere blev hele listen over links i hele repository sendt til klienten ved udfĂžrelse af enhver hentningskommando, selv nĂ„r klienten kun opdaterede en enkelt gren eller kontrollerede, om deres kopi af repository var opdateret. En anden bemĂŠrkelsesvĂŠrdig nyhed er muligheden for at tilfĂžje nye funktioner til protokollen, efterhĂ„nden som ny funktionalitet bliver tilgĂŠngelig i vĂŠrktĂžjet. Klientkoden forbliver kompatibel med den gamle protokol og kan fortsĂŠtte med at arbejde med bĂ„de nye og gamle servere, idet den automatisk falder tilbage til den fĂžrste version, hvis serveren ikke understĂžtter den anden.
  • Kommandoen „git config“ har fĂ„et tilfĂžjet muligheden „—show-scope“, der gĂžr det lettere at identificere, hvor visse indstillinger er defineret. Git tillader indstillinger at blive defineret pĂ„ forskellige steder: i repository (.git/info/config), i brugerkataloget (~/.gitconfig), i den globale konfigurationsfil (/etc/gitconfig), samt via kommandolinjeindstillinger og miljĂžvariabler. NĂ„r man udfĂžrer „git config“, er det ret vanskeligt at forstĂ„, hvor den Ăžnskede indstilling faktisk er defineret. For at lĂžse dette problem var muligheden „—show-origin“ tilgĂŠngelig, men den viser kun stien til den fil, hvor indstillingen er defineret, hvilket er nyttigt, nĂ„r man Ăžnsker at redigere filen, men ikke hjĂŠlper, hvis man Ăžnsker at ĂŠndre vĂŠrdien via „git config“ med indstillingerne „—system“, „—global“ eller „—local“. Den nye mulighed „—show-scope“ viser konteksten for definitioner af variable og kan anvendes sammen med —show-origin:

    $ git —list —show-scope —show-origin
    global file:/home/user/.gitconfig diff.interhunkcontext=1
    global file:/home/user/.gitconfig push.default=current
    [
]
    local file:.git/config branch.master.remote=origin
    local file:.git/config branch.master.merge=refs/heads/master

    $ git config —show-scope —get-regexp ‘diff.*’
    global diff.statgraphwidth 35
    local diff.colormoved plain

    $ git config —global —unset diff.statgraphwidth

  • I bindingsindstillingerne for legitimationsoplysninger Brug af masker i URL er tilladt. Enhver HTTP-indstilling og legitimationsoplysninger i Git kan indstilles bĂ„de for alle forbindelser (http.extraHeader, credential.helper) og for forbindelser knyttet til URL (credential.https://example.com.helper, credential.https://example.com.helper). Indtil nu har brug af masker som *.example.com kun vĂŠret tilladt for HTTP-indstillinger, men ikke understĂžttet for binding af legitimationsoplysninger. I Git 2.26 er disse forskelle blevet fjernet, og for eksempel kan brugernavnet nu knyttes til alle underdomĂŠner ved at angive:

    [credential «https://*.example.com»]

    brugernavn = ttaylorr

  • Eksperimentel stĂžtte til delvis kloning (partial clones) er blevet udvidet, hvilket gĂžr det muligt kun at overfĂžre en del af dataene og arbejde med en ufuldstĂŠndig kopi af et repository. Den nye version har tilfĂžjet en ny kommando «git sparse-checkout add», som giver mulighed for at tilfĂžje individuelle mapper til anvendelse af «checkout»-operationen kun til en del af arbejdsomrĂ„det, i stedet for at opregne alle sĂ„danne mapper pĂ„ Ă©n gang via kommandoen «git sparse-checkout set» (man kan tilfĂžje Ă©n mappe ad gangen uden at skulle angive hele listen hver gang).
    For eksempel, for at klone repository git/git uden at overfÞre blobs, begrÊnse kontrol til kun rodmappen i arbejdsbogen, og sÊrskilt markere udtrÊk af mapperne «t» og «Documentation», kan man angive:

    $ git clone —filter=blob:none —sparse git@github.com:git/git.git

    $ cd git
    $ git sparse-checkout init —cone

    $ git sparse-checkout add t
    
.
    $ git sparse-checkout add Documentation
    
.
    $ git sparse-checkout list
    Documentation
    t

  • Ydelsen af kommandoen «git grep», der anvendes til at sĂžge i bĂ„de aktuelt indhold af repository og historiske revisioner, er betydeligt forbedret. For at fremskynde sĂžgningen var det muligt at scanne indholdet af arbejdsomrĂ„det med flere trĂ„de («git grep —threads»), men sĂžgning i historiske revisioner var en-trĂ„det. Nu er denne begrĂŠnsning fjernet ved implementeringen af muligheden for at parallelisere lĂŠseoperationer fra objektlageret. Som standard sĂŠttes antallet af trĂ„de til antallet af CPU-kerner, hvilket i de fleste tilfĂŠlde nu ikke krĂŠver en eksplicit angivelse af «—threads».
  • UnderstĂžttelse af automatisk udfyldning af indtastning af underkommandoer, stier, links og andre argumenter for kommandoen «git worktree», der gĂžr det muligt at arbejde med flere arbejdsbegreber af et repository, er blevet tilfĂžjet.
  • Der er tilfĂžjet stĂžtte til klare farver, som har ANSI escape-sekvenser. For eksempel kan i indstillingerne for farvefremhĂŠvning "git config —color" eller "git diff —color-moved" via indstillingen "—format" for lyseblĂ„ angives "%C(brightblue)".
  • En ny version af scriptet er blevet tilfĂžjet. fsmonitor-watchman, der muliggĂžr integration med mekanismen Facebook Watchman for at fremskynde overvĂ„gning af ĂŠndringer i filer og oprettelsen af nye filer. Efter opdateringen krĂŠves det, at git udskiftes hook i depotet.
  • Optimeringer er blevet tilfĂžjet for at fremskynde operationer med delvise kloner (partial clones), relateret til brugen af bitmaps
    (bitmap machinery) for at undgĂ„ fuld gennemgang af alle objekter under filtrering af output. Kontrollen af blobs (—filter=blob:none og —filter=blob:limit=n) ved delvise kloner foregĂ„r nu
    markant hurtigere. GitHub har annonceret anvendelsen af patches med disse optimeringer og eksperimentel stĂžtte til delvise kloner.
  • Commandot ‘git rebase’ er blevet overfĂžrt til en anden backend, der som standard bruger 'merge'-mekanismen (tidligere anvendt til ‘rebase -i’) i stedet for ‘patch+apply’. I nogle detaljer adskiller backends sig; for eksempel efter fortsĂŠttelse af operationen efter lĂžsning af konflikt (git rebase —continue) tilbyder den nye backend at redigere commit-beskeden, mens den gamle blot anvendte den tidligere besked. For at genoprette den gamle adfĂŠrd kan du bruge indstillingen ‘—apply’ eller indstille konfigurationsvariablen ‘rebase.backend’ til ‘apply’.
  • Et eksempel pĂ„ en autentificeringsparameterbehandler defineret gennem .netrc er blevet omformet til en form, der er klar til brug.
  • Indstillingen gpg.minTrustLevel er blevet tilfĂžjet for at angive det minimale tillidsniveau for forskellige elementer, der udfĂžrer kontrol af digitale signaturer.
  • I ‘git rm’ og ‘git stash’ er der tilfĂžjet en mulighed for ‘—pathspec-from-file’.
  • Der er fortsat forbedringer af testsĂŠt i forbindelse med overgangen til hash-algoritmen SHA-2 i stedet for SHA-1.

Kilde: opennet.ru

KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster