טרמינל שישי: תיקון ודיף

שני כלים חיוניים בפיתוח תוכנה הם Patch ו- Diff . איך הם עובדים זה לא תעלומה, אבל אני חושב שזה יהיה פוסט מעניין. 😉

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


הבדל

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


תיקון

זו הפקודה שבאמצעותה אנו ממש "טלאים" את הקובץ המקורי שלנו, מוסיפים ו / או מסירים שורות בהתאם להוראות הכלולות בקובץ ה- patch.


יש גם את vimdiff , כלי ויזואלי ליישום תיקונים ללא צורך בקובץ .patch, מכיוון שהוא משווה את הגרסאות "המקוריות" וה"חדשות", ומאפשר לך לערוך שורה אחר שורה או את כל המסמך באותו קובץ. אני לא אסביר את זה, אבל אני חושב שזה שווה אזכור.


לדוגמה

עכשיו הכיף הוא. דוגמא!

זה המקרה, יש לנו תסריט נהדר ששואל את שמך וגילך. אם אתה מעל גיל 18 זה אומר לך שאתה יכול להצביע, אחרת זה אומר לך שאתה לא יכול להצביע.

original.sh

#! / bin / bash echo "הזן את שמך:" קרא שם הד "הזן את גילך:" קרא גיל אם [[18 -lt $ age]] ואז הד "שלום $ name, אתה $ זקן ואתה יכול להצביע! " אחרת מהדהד "שלום $ שם, אתה $ זקן ואינך יכול להצביע ..." fi
תמונה של הקוד ב- Vim

תמונה של הקוד ב- Vim

בוצע, הנה התסריט הפועל:

נראה שהכל עובד בסדר

נראה שהכל עובד בסדר

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

שגיאת לוגיקה :(

שגיאה לוגית 

עכשיו אנחנו מתחילים לתקן את השגיאה הקטנה ולבצע כמה שינויים ...

new.sh

#! / bin / bash maxAge = 18 הד "הזן את שמך:"; קרא שם הד "כתוב את גילך:"; קרא גיל אם [[$ maxAge -le $ age]]; ואז מהדהד "שלום $ שם, אתה בן שנה ואתה יכול להצביע!" אחרת מהדהד "שלום $ שם, אתה בן שנה ואתה לא יכול להצביע ...", יציאה 0
קוד חדש שנכתב ב- Vim

קוד חדש שנכתב ב- Vim

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

$ diff -u original.sh new.sh> patch.patch

ועכשיו יש לנו את התיקון שלנו. הנה תצוגה ב- Vim :

כך נראות ההוראות לתיקון. בלבן הקווים שלא שונו, בכחול אלה שהוסרו, בכתום אלה שנוספו.

כך נראות ההוראות לתיקון. בלבן הקווים שלא שונו, בכחול אלה שהוסרו, בכתום אלה שנוספו.

כדי להחיל אותו, אנחנו פשוט משתמשים בקובץ .patch בסקריפט שאליו רוצים לתקן. כאן הוא נקרא originalAmigo.sh , שהוא עותק מדויק של הסקריפט original.sh .

תסריט חבר

תסריט חבר

$ תיקון originalFriend.sh <תיקון.תיקון

וזה משאיר את קובץ Amigo.sh המקורי שלנו כך:

תסריט חבר לאחר החלת התיקון

תסריט חבר לאחר החלת התיקון

כפי שאתה יכול לראות קל מאוד להשיג את ההבדלים ולהחיל את התיקונים. הכל ממני.

שלום אנשים, נקרא ביום שישי הבא.


הוסף כמקור מועדף בגוגל