Git 2.31 таратылған бастапқы басқару жүйесінің шығарылымы

Git 2.31 таратылған көзді басқару жүйесі енді қол жетімді. Git – ең танымал, сенімді және өнімділігі жоғары нұсқаларды басқару жүйелерінің бірі, тармақталу мен біріктіруге негізделген икемді сызықты емес әзірлеу құралдарын қамтамасыз етеді. Тарихтың тұтастығын және ретроактивті өзгерістерге қарсы тұруды қамтамасыз ету үшін әрбір міндеттемеде бүкіл алдыңғы тарихтың жасырын хэшингі қолданылады, сонымен қатар әзірлеушілердің цифрлық қолтаңбаларымен жеке тегтер мен міндеттемелерді куәландыруға болады.

Алдыңғы шығарылыммен салыстырғанда жаңа нұсқа 679 әзірлеушінің қатысуымен дайындалған 85 өзгертуді қамтыды, оның 23-і әзірлеуге алғаш рет қатысты. Негізгі инновациялар:

  • Cron қолдамайтын жүйелерде мерзімді жұмыстарды орындауға мүмкіндік беретін «git care» пәрмені қосылды. Мысалы, жаңа пәрменді пайдаланып, әртүрлі пәрмендерді орындау кезінде бума автоматты түрде орындалған кезде репозиторий құлыпталғанша күтудің қажеті болмас үшін репозитарийді орау процесін кезеңді түрде іске қосуды реттеуге болады. «git техникалық қызмет көрсету» пәрмені интерактивті сеансты бұғаттамай, фондық режимде репозиторийдің оңтайлы құрылымын қолдау үшін оңтайландырулар мен операцияларды орындауға мүмкіндік береді - сағатына бір рет қашықтағы репозиторийден жаңа нысандарды белсенді түрде жүктеп алу және жаңарту үшін жұмыс жүргізіледі. орындау графигі бар файлды жүктеңіз және репозиторийді орау процесі әр түнде басталады.
  • Бума файлдары үшін дискідегі кері индексті (revindex) қолдауға қосылды. Еске салайық, Git барлық деректерді жеке файлдарда орналасқан нысандар түрінде сақтайды. Репозиториймен жұмыс істеудің тиімділігін арттыру үшін нысандар пакеттік файлдарға қосымша орналастырылады, оларда ақпарат бір-бірінен кейінгі объектілер ағыны түрінде ұсынылады (ұқсас пішім нысандарды git fetch және git push көмегімен тасымалдау кезінде қолданылады. командалар). Әрбір бума файлы үшін нысан идентификаторы арқылы берілген нысан сақталатын бума файлындағы ығысуды өте жылдам анықтауға мүмкіндік беретін индекстік файл (.idx) жасалады. Git 2.31-де енгізілген кері индекс (.rev) бума файлында нысанды орналастыру туралы ақпараттан нысан идентификаторын анықтау процесін оңтайландыруға бағытталған.

    Бұрын мұндай түрлендіру пакеттік файлды талдау кезінде жылдам орындалды және тек жадта сақталды, бұл ұқсас индекстерді қайта пайдалануға мүмкіндік бермеді және индексті әр уақытта генерациялауға мәжбүр етті. Индекс құру операциясы нысан-позиция жұптарының массивін құруға және оны позиция бойынша сұрыптауға келеді, бұл үлкен бума файлдары үшін көп уақыт алуы мүмкін.

    Мысалы, тікелей индексті пайдаланатын нысандардың мазмұнын көрсету операциясы позициядан нысанға деректер индекстелмеген нысандардың өлшемін көрсету операциясынан 62 есе жылдамырақ болды. Кері индексті қолданғаннан кейін бұл операциялар шамамен бірдей уақытты ала бастады. Кері индекстер сонымен қатар дискіден дайын деректерді тікелей тасымалдау арқылы алу және түрту пәрмендерін орындау кезінде нысанды жіберу операцияларын жылдамдатуға мүмкіндік береді. Әдепкі бойынша кері индекстер жасалмайды; оларды жасау үшін «git config pack.writeReverseIndex true» параметрін қосып, содан кейін репозиторийді «git repack -Ad» пәрменімен буып алу керек.

  • Тапсырмалар туралы ақпаратқа қол жеткізуді оңтайландыру үшін пайдаланылатын, орындау графигі файл пішіміндегі көрініске негізделген өнімділікті оңтайландырулар, міндеттемелермен қосымша операцияларды жылдамдату үшін пайдаланылуы мүмкін тапсырманы құру нөмірі туралы жаңа деректер.
  • Жаңа репозитарийлерде (init.defaultBranch параметрі) әдепкі бойынша пайдаланылатын негізгі тармақтың атын қайта анықтау опциялары қосылды. Сыртқы репозиторийлерге қол жеткізген кезде, git HEAD көрсеткен филиалды тексеруге тырысады, яғни. егер сыртқы сервер әдепкі бойынша «негізгі» тармақты пайдаланса, онда «git clone» операциясы жергілікті түрде «негізгі» тармақты тексеруге әрекет жасайды. Git 2.31 енді бос репозиторийлерді тексерудің осы түрін қолдайды. Мысалы, бірінші патчтарды қоспас бұрын жаңа репозиторийді жергілікті түрде клондау кезінде жергілікті көшірмеде енді сыртқы серверде орнатылған әдепкі жоғары ағын атауы болады.
  • «git rev-list» пәрменіне --disk-usage опциясы нысандардың өлшемі туралы қысқаша мәлімет беру үшін қосылды.
  • Біріктіру серверіне алдағы өзгерістерді күту үшін атын өзгертуді анықтау айтарлықтай оңтайландырылды.
  • Бұрынғы PCRE1 қалыпты өрнек кітапханасына қолдау көрсету тоқтатылды.
  • Хэштеу алгоритміне қарамастан, қысқартылған сілтемелерді пайдалануға күштеп тыйым салуға болады. Тыйым салу core.abbrev параметріне «жоқ» мәнін тағайындау арқылы қосылады.
  • "git rev-parse" пәрменіне "--path-format=(absolute|relative)" опциясы салыстырмалы немесе абсолютті жолдардың шығарылуы керектігін нақты көрсету үшін қосылды.
  • Bash аяқтау сценарийлері өзіңіздің жеке «git» ішкі командаларыңыз үшін аяқтау ережелерін қосуды жеңілдетеді.
  • Стандартты енгізу ағынынан сілтемелерді оқу үшін "git bundle" пәрменіне --stdin опциясы қосылды.
  • "git log" пәрменіне жаңа опция қосылды: "--diff-merges=" "
  • Қайталанатын шығысты жою үшін "git ls-files" пәрменіне "--deduplicatecan" опциясы қосылды.
  • Бірқатар міндеттемелерді алып тастау үшін жаңа маскалар қосылды - « ^!» Және » ^- "
  • Салыстырылатын диапазонның бір жағын ғана көрсету үшін "git range-diff" пәрменіне "--left-only" және "--right-only" опциялары қосылды.
  • "git diff" және "git log" пәрмендеріне --skip-to= опциялары қосылды " және "— бұру-= » Бастапқы жолдарды өткізіп жіберу немесе соңына дейін жылжыту.
  • «git difftool» пәрменіне «--skip-to=" опциясы қосылды » үзілген сеансты кездейсоқ жолдан жалғастыру үшін.
  • Әзірлеушілер арасындағы жанжалды жағдайларды шешудің негізгі принциптерін анықтайтын Әдеп кодексі 2.0 нұсқасына жаңартылды (бұрын 1.4 нұсқасы қолданылған).

    Ақпарат көзі: opennet.ru

пікір қалдыру