במאמר הקודם דיברנו על עבודה עם לוג של SVN ולמדנו כמה מונחים חשובים כמו מספר גרסה, revert ו-diff. ראינו איך אפשר להשתמש ב-diff כדי להשוות בין גרסאות שונות של אותו קובץ שנשמרו ב-SVN. מה הבעיה? למרות שהראיתי שהתצוגה של diff לא מפחידה כמו שהיא נראית בהתחלה, היא עדיין לא נעימה גרפית.
בדיוק בשביל זה יש לנו כלים גרפיים לניהול diff. הכלים הגרפיים מאפשרים לנו לראות יותר בקלות את ההבדלים וליישב קונפליקטים שונים. במאמר הזה אני אסביר על שני כלים חשובים, איך הם נראים ואיך עובדים איתם. כמובן שיש עוד שפע של כלים ושיטות, אבל המאמר הזה לא רק נועד להראות את שני הכלים האלו אלא לפתוח את העיניים לאפשרויות נוספות לניהול גרסאות באופן גרפי.
meld
meld היא תוכנה שקיימת גם בחלונות וגם בלינוקס ועובדת יפה עם SVN (גם עם git, אגב). meld פשוטה ביותר להתקנה. בלינוקס ההתקנה היא:
sudo apt-get install meld
בחלונות צריכים להיכנס לדף של meld ולהוריד את התוכנה, להפעיל אותה ובזמן שזה מוריד ומתקין אתם מחכים לתהות למה בדיוק אתם עובדים עם התפלצת המיקרוסופטית הארורה על שלל הסרוויסים חסרי התוחלת שלה וה-clippy הארור.
מצטער, אני סוטה מהנושא.
אחרי שהתוכנה מותקנת. ההפעלה שלה מאוד פשוטה. כותבים בקונסולה (או ב-cmd, אם יש לכם חלונות) את הפקודה meld ואז את שם הקובץ. meld מזהה באופן אוטומטי אם אתם נמצאים במערכת ניהול גרסאות כלשהי ואז מציגה את השינוי בין הגרסה המקומית לגרסה השמורה ב-SVN. הנה דוגמה:
אפשר לראות שמאוד קל לתפעל את התוכנה. מצד שמאל יש את הגרסה השמורה ב-SVN ומצד ימין את הגרסה המקומית. במקרה הזה יש שינוי מעפן אחד, אבל אם יש עשרות שינויים – מאוד קל לתפעל את השינוי שאנו רוצים בסופו של דבר עם meld.
אם אנו רוצים לשלב את meld ככלי האינהרנטי של svn לפתרון קונפליקטים, אז זה טיפה יותר מסובך. ישנם מספר סקריפטים ופתרונות שיפעילו את meld ככלי ה-diff העיקרי. בגדול זה אפשרי בלינוקס בלבד.
אינטגרציה עם IDE
ברוב ה-IDE כמו intellij על שלל סוגיו (PHPStotm, webstorm וכו' וכו') יש כלים אינהרנטיים שמציגים מייד ובאופן נוח גם את הלוג וגם את השינויים. בדיוק כמו meld, גם רוב הכלים המובנים ב-IDE יודעים לזהות מיד אם הפרויקט נתון תחת ניהול גרסאות.
ב-PHPStorm שכאמור הוא branch של Intellij, יש לשונית של subversion בתפרריט (תחת SVN) ושם אפשר לראות את הלוג של כל השינויים ולעשות diff בין הגרסה המקומית לגרסאות על השרת או בין שתי גרסאות שונות. אפשר גם לעשות שינויים בקובץ ואז לעשות קומיט ישירות מה-IDE בלי צורך לצאת משורת הפקודה. אם יש קונפליקט, ה-IDE יזהה אותו ויפתח כלי מאוד דומה ל-meld שמאפשר באופן גרפי לבחון את השורות שיש בהן קונפליקט ולתקן אותן.
בגדול זהו. אם קראתם את כל המאמרים במדריך על SVN רכשתם את הידע המספק על מנת לעבוד עם SVN. אם לא הכרתם מערכת לניהול גרסאות – למדתם כמה מונחים חשובים ביותר: גרסה מקומית מול גרסה שנמצאת במנהל הגרסאות, קומיט שנעשה מהסביבה המקומית אל מנהל הגרסאות. לוג – רשימת הקומיטים – קונפליקטים ו-diff שנעשים כאשר מתכנת אחר הכניס שינוי בקוד וכמובן ענפים ומיזוגים.
הסדרה הזו היא לא סידרה מעמיקה במיוחד. יש עוד לא מעט פונקציונליות, אבל בגדול זה מספיק בשביל לעבוד על SVN. מערכת ניהול הגרסאות SVN נחשבת מיושנת, אבל כן כדאי להכיר אותה לפני שצוללים למערכת ניהול הגרסאות המבוזרת git.
2 תגובות
אובונטו זה מערכת הרבה יותר מסובכת מווינדוס.
בסוף במבחן 'איזה מערכת הפעלה ניתן לסבתא' – ווינדוס מנצח.
סליחה, סטיתי מהנושא.
אחלה מאמר, תודה! כיף לקרוא. 🙂
תודה! 🙂