Git 2.37 כבר שוחרר ואלה החדשות שלו

ההשקה של הגרסה החדשה של Git 2.37, שהוא אחד מה מערכות בקרת הגרסאות הפופולריות ביותר, תוכנה אמינה ובעלת ביצועים גבוהים המספקת כלי פיתוח לא ליניאריים גמישים המבוססים על מזלגות ומיזוגים של מזלגות.

כדי להבטיח את שלמות ההיסטוריה והתנגדות לשינויים, נעשה שימוש ב-hash ה"אחורה" המרומז של כל ההיסטוריה הקודמת בכל commit, אפשר גם לאמת את החתימות הדיגיטליות של מפתחי תג ו-commit בודדים.

Git 2.37 תכונות חדשות עיקריות

בהשוואה לגרסה הקודמת, 395 שינויים התקבלו בגרסה החדשה, הוכן בהשתתפות 75 מפתחים, מתוכם 20 השתתפו בפיתוח לראשונה.

בגרסה החדשה הזו מודגש כי מנגנון המדדים החלקיים (אינדקס דליל), המכסה רק חלק מהמאגר, ס'e הוכן לשימוש נרחב. אינדקסים חלקיים יכולים לשפר ביצועים ולחסוך מקום במאגרים המבצעים פעולות שיבוט חלקיות (צ'ק אאוט דליל) או פועלים על עותק לא שלם של המאגר.

הגרסה החדשה משלימה את העבודה של שילוב של אינדקסים חלקיים בפקודות "git show", "git sparse-checkout" ו-"git stash". רווח הביצועים הבולט ביותר משימוש באינדקסים חלקיים הוא בפקודה "git stash", שהיא מהירה עד 80% במצבים מסוימים.

שינוי נוסף הבולט הוא זה יושם מנגנון חדש של "חבילות קרופט". לארוז אובייקטים בלתי ניתנים להשגה שאינם מוזכרים במאגר (שאינם מוזכרים על ידי ענפים או תגים). אספן האשפה מוחק אובייקטים שאי אפשר להגיע אליהם, אבל הם נשארים במאגר לזמן מסוים לפני שהם מוחקים אותם כדי להימנע מתנאי מירוץ. כדי לעקוב אחר התקופה של אובייקטים בלתי ניתנים להשגה, נדרשת כריכה, הם מתויגים עם זמן השינוי של אובייקטים דומים, מה שלא מאפשר לאחסן אותם בקובץ חבילה, שבו לכל האובייקטים יש זמן שינוי משותף.

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

עבור Windows ו-macOS, יש מנגנון מובנה כדי לעקוב אחר שינויים במערכת הקבצים, אשר מבטל את הצורך לרשום את כל ספריית העבודה בעת ביצוע פעולות כמו "סטטוס git". בעבר, כדי לעקוב אחר שינויים באמצעות הוקס, ניתן היה לחבר כלי עזר חיצוניים למעקב אחר שינויים במערכת הקבצים, כגון Watchman, אך הדבר דרש התקנה של תוכניות ותצורות נוספות. פונקציונליות זו מובנית כעת וניתן להפעיל אותה באמצעות "git config core.fsmonitor true".

הפקודה "git sparse-checkout" הפסיק את התמיכה בחלופה למצב "--cone". הגדרת תבנית עבור שיבוט חלקי, המאפשרת, בעת הגדרת החלק של המאגר הכפוף לפעולת השיבוט, לרשום קבצים בודדים באמצעות תחביר ".gitignore", שאינו מאפשר שימוש לאופטימיזציה של אינדקסים חלקיים.

משאר השינויים הבולטים:

  • גמישות משופרת בהגדרת הקריאה fsync() לניקוי שינויים בדיסק.
  • נוספה תמיכה באסטרטגיית הסנכרון "אצווה" לפרמטר "core.fsyncMethod", מה שמאיץ את העבודה בעת כתיבת מספר רב של קבצים נפרדים על ידי צבירת שינויים במטמון השכתוב שנשטף בקריאה אחת ל-fsync().
  • לפקודות מעבר כמו "git log" ו-"git rev-list" יש כעת את האפשרות "–since-as-filter=X" לסנן מידע על commits ישן יותר מ-"X".
  • בפקודה "git remote", ציון הדגל "-v" מספק מידע על שיבוטים חלקיים של המאגר.
  • נוספה הגדרת "transfer.credentialsInUrl", שיכולה לקבל את הערכים "אזהרה", "למות" ו"אפשר". אם הפרמטר "מרוחק. .url" מציין אישורים בטקסט רגיל, ניסיון לבצע פעולות "get" או "push" ייכשל אם ההגדרה "transfer.credentialsInUrl" מוגדרת ל-"die", או אזהרה אם מוגדרת ל-"warn" .
  • כברירת מחדל, נעשה שימוש ביישום המצב האינטראקטיבי החדש של הפקודה "git add -i", שנכתבה מחדש מ-Perl ל-C.

בסופו של דבר אם אתה מעוניין לדעת יותר על כך, אתה יכול לבדוק את הפרטים בקישור הבא.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.