שחרור מערכת בקרת מקור מבוזרת Git 2.25

זמין שחרור מערכת בקרת המקור המבוזרת גיט 2.25.0. Git היא אחת ממערכות בקרת הגרסאות הפופולריות, האמינות ובעלי הביצועים הגבוהים ביותר המספקת כלי פיתוח גמישים לא לינאריים המבוססים על הסתעפות ומיזוג ענפים. כדי להבטיח את שלמות ההיסטוריה והתנגדות לשינויים "בחזרה", נעשה שימוש ב-hashing מרומז של כל ההיסטוריה הקודמת בכל commit, ניתן גם לאמת תגיות ו-commits בודדות עם חתימות דיגיטליות של המפתחים.

בהשוואה למהדורה הקודמת, הגרסה החדשה כללה 583 שינויים, שהוכנו בהשתתפות 84 מפתחים, מתוכם 32 לקחו חלק בפיתוח לראשונה. העיקרי חידושים:

  • האפשרות של שיבוט חלקי מתקרבת לייצוב ומוכנות מלאה, ומאפשרת להעביר רק חלק מהנתונים ולעבוד עם עותק לא שלם של המאגר. שיבוט טיפוסי מעתיק את כל הנתונים מהמאגר, כולל כל גרסה של כל קובץ בהיסטוריית השינויים. עבור מאגרים גדולים מאוד, העתקת נתונים גורמת לגידול משמעותי בתעבורה ובשטח הדיסק, גם אם המפתח מעוניין רק בתת-קבוצה של הקבצים. כדי להקל על אחזור רק חלק מעץ המקור העובד, המהדורה החדשה מציגה פקודת "sparse-checkout" ניסיונית ואפשרות "--sparse" חדשה עבור הפקודה "clone".

    בעבר, תהליך השיבוט הסלקטיבי בוצע באמצעות המשימה מסננים לסנן תוכן מיותר ואפשרות "-ללא תשלום" כדי לבטל את מילוי הקבצים החסרים. לאחר מכן, לפני ביצוע פעולת התשלום, היה צורך להפעיל את הגדרת core.sparseCheckout ולהגדיר רשימה של דפוסי נתיב שלא נכללו בקובץ .git/info/sparse-checkout. לדוגמה, כדי לשכפל ללא כתמים ולמנוע חילוץ של קבצים מתיקיות משנה בעומק 2 או יותר, תוכל להריץ:

    git clone --filter=blob:none --no-checkout /your/repository/here repo
    ריפו של $ CD
    $ cat >.git/info/sparse-checkout
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git checkout.

    הפקודה החדשה "git sparse-checkout" מפשטת מאוד את העבודה ומצמצמת את תהליך ארגון העבודה עם מאגר לא שלם לפקודות הבאות:

    git clone --filter=blob:none --דלילות /מאגר/מאגר/כאן מאגר
    git sparse-checkout set /path/to/check/out

    הפקודה sparse-checkout מאפשרת לך להגדיר רשימה של נתיבים לקופה (סט) מבלי להגדיר ידנית את .git/info/sparse-checkout, כמו גם להציג את רשימת הנתיבים הנוכחית (רשימה) ולהפעיל או להשבית את התשלום החלקי (הפעל /disable).

    כדי לייעל את העבודה עם מאגרים גדולים מאוד ורשימות של תבניות, "git config core.sparseCheckoutCone", שמגביל תבניות מותרות (במקום דפוסי .gitignore שרירותיים, אתה יכול לציין אם יש להוציא את כל הנתיבים וכל הקבצים בתיקיית משנה נתונה). לדוגמה, אם למאגר גדול יש ספרייה "A/B/C" וכל העבודה מרוכזת בתיקיית המשנה "C", אז כאשר אתה מפעיל את מצב sparseCheckoutCone, הפקודה "git sparse-checkout set A/B/ C יחלץ את כל התוכן של "C", אבל מ-"A" ו-"B" הוא יחלץ רק את החלקים הדרושים לעבודה עם "C".

  • מהתיעוד ("git rebase -h"), כל ההפניות לאפשרות "--preserve-merges" הוסרו, אשר הוצאה משימוש ויש להשתמש במקום זאת כדי להעביר קבוצה של commits.git rebase --rebase-מיזוג".
  • כדי לשפר את הקריאות של הודעות עם תיקונים שנשלחו לרשימות תפוצה, נוספה האפשרות "git format-patch —cover-from-description subject", כשצוין, הפסקה הראשונה מטקסט תיאור הסניף משמשת כנושא של מכתב כיסוי לסט של טלאים.
  • תמיכה מיושמת בשימוש המשולב בפקודה "git apply -3way" והגדרת "merge.conflictStyle" ("git apply" לוקחת כעת בחשבון את סגנון תיאור ההתנגשות מ-merge.conflictStyle כאשר יש צורך לפתור את ההתנגשות לאחר ניסיון כדי להחיל קובץ תיקון על המאגר).
  • קוד הגדרת הפונקציה המשמש בפעולות כגון "git diff/grep --show-function/-function-context" הורחב כדי לתמוך בהגדרת גבולות פונקציות בתוכניות שפה סם חיים.
  • נוספה אפשרות חדשה ל-"git add", "git commit", "git reset" ופקודות נוספות - "-pathspec-from-file", המאפשרת לטעון רשימה של נתיבים מקובץ או זרם קלט , במקום לרשום אותם בשורת הפקודה.
  • הבעיה עם זיהוי שמות מחדש ברמת הספרייה בעת כתיבת commit נפתרה. ההגדרה לא עבדה אם התוכן של ספריית משנה הועבר לשורש המאגר.
  • הוצע יישום ראשוני של הפקודה "git add -i" המעוצבת מחדש, המאפשר לך להוסיף תוכן שונה באופן אינטראקטיבי, שנכתב מחדש מ-Perl ל-C. עיבוד דומה של הפקודה "git add -p" מתבצעת.
  • הפקודה "git log –graph" עברה מחדש, ויצרה תמונת ASCII של גרף עם היסטוריית השינויים במאגר. העיבוד המחודש אפשר לשפר ולפשט באופן משמעותי את הפלט מבלי לעוות את מבנה הסיפור, מה שלמשל פתר את הבעיה שהתמונה מתרחבת מעבר לרוחב קו הטרמינל.
  • האפשרות "git log --format=.." מאפשרת לך לשנות את פורמט הפלט,
    מורחבת עם תמיכה בדגלי "l/L" כדי להציג רק את החלק של כתובת הדוא"ל המצוין לפני הסמל "@" (לדוגמה, שימושי כאשר לכל המפתחים יש את כל האימיילים באותו תחום).
  • נוספה תת-פקודה "set-url" לפקודה "git submodule".
  • ערכות הבדיקה עודכנו לקראת המעבר ל
    אלגוריתם הגיבוב SHA-2 במקום SHA-1.

מקור: OpenNet.ru

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster