שני כלים חיוניים בפיתוח תוכנה הם Patch ו- Diff . איך הם עובדים זה לא תעלומה, אבל אני חושב שזה יהיה פוסט מעניין. 😉
שניהם חזקים מאוד, וזה ממש כמו לגעת במשטח, יש להם יותר שירותים ופונקציות אחרות. בעיקרון בעזרת שני הכלים הללו אנו יכולים ליצור בקרת גרסאות,
הבדל
אנו מתייחסים להשוואה, הוא משווה קובץ "מקורי" לקובץ "חדש" ומודיע לנו על ההבדלים ביניהם. כלי זה מאפשר לנו גם ליצור קבצי Patch המשמשים אותנו ליצירת תיקונים עבור התוכניות שלנו.
תיקון
זו הפקודה שבאמצעותה אנו ממש "טלאים" את הקובץ המקורי שלנו, מוסיפים ו / או מסירים שורות בהתאם להוראות הכלולות בקובץ ה- patch.
יש גם את vimdiff , כלי ויזואלי ליישום תיקונים ללא צורך בקובץ .patch, מכיוון שהוא משווה את הגרסאות "המקוריות" וה"חדשות", ומאפשר לך לערוך שורה אחר שורה או את כל המסמך באותו קובץ. אני לא אסביר את זה, אבל אני חושב שזה שווה אזכור.
לדוגמה
עכשיו הכיף הוא. דוגמא!
זה המקרה, יש לנו תסריט נהדר ששואל את שמך וגילך. אם אתה מעל גיל 18 זה אומר לך שאתה יכול להצביע, אחרת זה אומר לך שאתה לא יכול להצביע.
original.sh
#! / bin / bash echo "הזן את שמך:" קרא שם הד "הזן את גילך:" קרא גיל אם [[18 -lt $ age]] ואז הד "שלום $ name, אתה $ זקן ואתה יכול להצביע! " אחרת מהדהד "שלום $ שם, אתה $ זקן ואינך יכול להצביע ..." fi
תמונה של הקוד ב- Vim
בוצע, הנה התסריט הפועל:
נראה שהכל עובד בסדר
לכן, כמשתמשים טובים אנו, אנו חולקים את התסריט שלנו עם חבר :), אך אנו מקבלים הודעה האומרת שיש לו פגם, שכאשר הוא בן 18 הוא אומר שהוא לא יכול להצביע מתי שהוא צריך.
שגיאה לוגית
עכשיו אנחנו מתחילים לתקן את השגיאה הקטנה ולבצע כמה שינויים ...
new.sh
#! / bin / bash maxAge = 18 הד "הזן את שמך:"; קרא שם הד "כתוב את גילך:"; קרא גיל אם [[$ maxAge -le $ age]]; ואז מהדהד "שלום $ שם, אתה בן שנה ואתה יכול להצביע!" אחרת מהדהד "שלום $ שם, אתה בן שנה ואתה לא יכול להצביע ...", יציאה 0
קוד חדש שנכתב ב- Vim
נניח שהתסריט כבד מאוד. לכן, כדי להימנע משליחת הסקריפט כולו שוב, אנו יוצרים תיקון
$ diff -u original.sh new.sh> patch.patch
ועכשיו יש לנו את התיקון שלנו. הנה תצוגה ב- Vim :
כך נראות ההוראות לתיקון. בלבן הקווים שלא שונו, בכחול אלה שהוסרו, בכתום אלה שנוספו.
כדי להחיל אותו, אנחנו פשוט משתמשים בקובץ .patch בסקריפט שאליו רוצים לתקן. כאן הוא נקרא originalAmigo.sh , שהוא עותק מדויק של הסקריפט original.sh .
תסריט חבר
$ תיקון originalFriend.sh <תיקון.תיקון
וזה משאיר את קובץ Amigo.sh המקורי שלנו כך:
תסריט חבר לאחר החלת התיקון
כפי שאתה יכול לראות קל מאוד להשיג את ההבדלים ולהחיל את התיקונים. הכל ממני.
שלום אנשים, נקרא ביום שישי הבא.