lëshimi i sistemit të shpërndarë të menaxhimit të kodit burimor . Git është një nga sistemet më të njohura, të besueshme dhe me performancë të lartë për menaxhimin e versioneve, duke ofruar mjete fleksibile për zhvillim jo-linear, të bazuara në degëzimin dhe bashkimin e degëve. Për të siguruar integritetin e historisë dhe qëndrueshmërinë ndaj ndryshimeve 'për pas', përdoret hash-i i implicit i gjithë historisë së mëparshme në çdo commit, siç është e mundur edhe verifikimi me firma digjitale të zhvilluesve të etiketimeve dhe commit-eve të veçanta.
Në krahasim me edicionin e kaluar, versioni i ri përmban 583 ndryshime, të përgatitura me pjesëmarrjen e 84 zhvilluesve, nga të cilët 32 morën pjesë për herë të parë në zhvillim. :
- Po afron stabilizimi dhe gatishmĂ«ria e plotĂ« pĂ«r mundĂ«sinĂ« e klonimit tĂ« pjesshĂ«m (partial clones), e cila lejon bartjen vetĂ«m tĂ« njĂ« pjese tĂ« tĂ« dhĂ«nave dhe punimin me njĂ« kopje tĂ« paplotĂ« tĂ« depozitĂ«s. NĂ« klonimin e zakonshĂ«m, tĂ« dhĂ«nat e plota kopjohen nga depozita, duke pĂ«rfshirĂ« secilĂ«n version tĂ« çdo skedari nga historia e ndryshimeve. PĂ«r depozita shumĂ« tĂ« mĂ«dha, kopjimi i tĂ« dhĂ«nave çon nĂ« rritje tĂ« konsiderueshme tĂ« trafikut dhe hapĂ«sirĂ«s nĂ« disk, edhe nĂ«se zhvilluesi Ă«shtĂ« i interesuar vetĂ«m pĂ«r njĂ« nĂ«ngrup skedarĂ«sh. PĂ«r tĂ« lehtĂ«suar marrjen vetĂ«m tĂ« njĂ« pjese tĂ« pemĂ«s sĂ« punĂ«s sĂ« burimeve tĂ« teksteve, nĂ« versionin e ri ofrohet njĂ« komandĂ« eksperimentale "sparse-checkout" dhe njĂ« opsion i ri "âsparse" pĂ«r komandĂ«n "clone".
MĂ« parĂ«, procesi i klonimit selektiv kryhej pĂ«rmes specifikimit pĂ«r tĂ« pĂ«rjashtuar pĂ«rmbajtjen e tepĂ«rt dhe opsionit "âno-checkout" pĂ«r tĂ« çaktivizuar plotĂ«simin e skedarĂ«ve tĂ« mungesĂ«s. Pas kĂ«saj, para se tĂ« kryhej operacioni checkout, kĂ«rkohej aktivizimi i konfigurimit core.sparseCheckout dhe pĂ«rcaktimi nĂ« skedarin .git/info/sparse-checkout tĂ« listĂ«s sĂ« shablloneve tĂ« rrugĂ«ve qĂ« pĂ«rjashtohen. PĂ«r shembull, pĂ«r tĂ« klonuar pa blobet dhe pĂ«r tĂ« ndaluar nxjerrjen e skedarĂ«ve nga katalogĂ«t e thellĂ«sive 2 dhe mĂ« shumĂ«, mund tĂ« ekzekutohej:
git clone âfilter=blob:none âno-checkout /your/repository/here repo
$ cd repo
$ cat >.git/info/sparse-checkout <EOF
/*
!/*
EOF
$ git config core.sparseCheckout 1
$ git checkout .Komanda e re "git sparse-checkout" e lehtëson ndjeshëm punën dhe e redukton procesin e organizimit të punës me një depo të paplotë në komandat:
git clone âfilter=blob:none âsparse /your/repository/here repo
git sparse-checkout set /path/to/check/outKomanda sparse-checkout lejon vendosjen e listës së rrugëve për checkout (set) pa konfiguruar manualisht .git/info/sparse-checkout, si dhe të nxjerrë listën aktuale të rrugëve (list) dhe të aktivizojë ose çaktivizojë checkout-ët e pjesshëm (enable/disable).
Për optimizimin e punës me depo shumë të mëdha dhe lista shabllonesh ofrohet konfigurimi "«, e cila kufizon shabllonet e lejuara (në vend të shablloneve të rastit .gitignore, mund të caktohen të gjitha rrugët dhe të gjitha skedarët në një nënkatalog të caktuar që duhet të nxirren). Për shembull, nëse në një depo të madhe ekziston një katalog «A/B/C» dhe të gjitha punët përqendrohen në nënkatalogun «C», atëherë duke aktivizuar modin sparseCheckoutCone, komanda «git sparse-checkout set A/B/C» do të nxjerrë përmbajtjen e «C» plotësisht, por nga «A» dhe «B» do të nxjerrë vetëm pjesët e nevojshme për të punuar me «C».
- Nga dokumentacioni («git rebase -h») janĂ« hequr tĂ« gjitha pĂ«rmendjet e opsionit «âpreserve-merges», i cili Ă«shtĂ« shpallur i vjetruar dhe nĂ« vend tĂ« tij, pĂ«r tĂ« transferuar njĂ« grup commit-esh duhet tĂ« pĂ«rdoret ««.
- PĂ«r tĂ« pĂ«rmirĂ«suar lexueshmĂ«rinĂ« e mesazheve tĂ« patch-Ă«ve, tĂ« dĂ«rguara nĂ« listat e shpĂ«rndarjes, Ă«shtĂ« shtuar opsioni «git format-patch âcover-from-description subject», duke treguar se tema e letrĂ«s shoqĂ«ruese pĂ«r grupin e patch-eve pĂ«rdor paragrafi e parĂ« nga pĂ«rshkrimi i degĂ«s.
- ĂshtĂ« implementuar mbĂ«shtetje pĂ«r pĂ«rdorimin e komandĂ«s «git apply â3way» dhe cilĂ«simit «merge.conflictStyle» («git apply» tani merr parasysh stilin e pĂ«rshkrimit tĂ« konfliktit nga merge.conflictStyle nĂ« rast se Ă«shtĂ« e nevojshme tĂ« zgjidhet njĂ« konflikt pas pĂ«rpjekjes pĂ«r tĂ« aplikuar njĂ« skedar patch nĂ« depo).
- Kodi pĂ«r pĂ«rcaktimin e funksioneve, i pĂ«rdorur nĂ« operacione si «git diff/grep âshow-function/âfunction-context», Ă«shtĂ« zgjeruar me mbĂ«shtetje pĂ«r pĂ«rcaktimin e kufijve tĂ« funksioneve nĂ« programet nĂ« gjuhĂ«n .
- NĂ« «git add», «git commit», «git reset» dhe komandat e tjera Ă«shtĂ« shtuar njĂ« opsion i ri «âpathspec-from-file», qĂ« lejon ngarkimin e njĂ« liste rrugĂ«sh nga njĂ« skedar ose njĂ« kanal hyrĂ«s, nĂ« vend tĂ« renditjes sĂ« tyre nĂ« vijĂ«n e komandĂ«s.
- ĂshtĂ« zgjidhur problemi me pĂ«rcaktimin e rinovimeve nĂ« nivelin e katalogĂ«ve kur shkruhen commit-et. PĂ«rcaktimi nuk funksiononte nĂ« rastin e zhvendosjes sĂ« pĂ«rmbajtjes sĂ« nĂ«nkatalogut nĂ« rrĂ«njĂ«n e depozitĂ«s.
- Një implementim fillestar i komandës së ripërshtatur «git add -i» është propozuar, i cili lejon shtimin e përmbajtjes së ndryshuar në mënyrë interaktive, i ripërpunuar nga Perl në C. Një ripërshtatje e ngjashme është duke u bërë për komandën «git add -p».
- ĂshtĂ« bĂ«rĂ« njĂ« ristrukturim i komandĂ«s «git log âgraph», e cila formon njĂ« imazh ASCII tĂ« grafit me historinĂ« e ndryshimeve nĂ« depo. RipĂ«rshtatja ka lejuar pĂ«rmirĂ«simin dhe thjeshtĂ«simin e daljes pa deformimin e strukturĂ«s sĂ« historisĂ«, e cila, pĂ«r shembull, ka zgjidhur problemin e daljes sĂ« vizatimit jashtĂ« gjerĂ«sisĂ« sĂ« rreshtit nĂ« terminal.
- Opsioni «git log âformat=..», qĂ« lejon tĂ« ndryshoni formatin e daljes,
është zgjeruar me mbështetje për flagjet «l/L» për të printuar vetëm pjesën e adresës email, që tregohet para simbolit «@» (p.sh., e dobishme kur të gjithë zhvilluesit kanë të gjithë email në një domen). - Në komandën «git submodule» është shtuar një nënkomandë «set-url».
- Grupet e testit janë azhurnuar në kuadër të përgatitjes për kalimin në
algoritmin e hash-it SHA-2 në vend të SHA-1.
Burimi: opennet.ru
