כלים גרפיים לניהול SVN

מערכות לניהול קונפליקטים באופן גרפי וקל לניהול.
subversion logo

במאמר הקודם דיברנו על עבודה עם לוג של SVN ולמדנו כמה מונחים חשובים כמו מספר גרסה, revert ו-diff. ראינו איך אפשר להשתמש ב-diff כדי להשוות בין גרסאות שונות של אותו קובץ שנשמרו ב-SVN. מה הבעיה? למרות שהראיתי שהתצוגה של diff לא מפחידה כמו שהיא נראית בהתחלה, היא עדיין לא נעימה גרפית.

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

meld

meld היא תוכנה שקיימת גם בחלונות וגם בלינוקס ועובדת יפה עם SVN (גם עם git, אגב). meld פשוטה ביותר להתקנה. בלינוקס ההתקנה היא:

sudo apt-get install meld

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

מצטער, אני סוטה מהנושא.

אחרי שהתוכנה מותקנת. ההפעלה שלה מאוד פשוטה. כותבים בקונסולה (או ב-cmd, אם יש לכם חלונות) את הפקודה meld ואז את שם הקובץ. meld מזהה באופן אוטומטי אם אתם נמצאים במערכת ניהול גרסאות כלשהי ואז מציגה את השינוי בין הגרסה המקומית לגרסה השמורה ב-SVN. הנה דוגמה:

דוגמה של הממשק הגרפי של תוכנת meld
דוגמה של הממשק הגרפי של תוכנת meld

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

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

אינטגרציה עם IDE

ברוב ה-IDE כמו intellij על שלל סוגיו (PHPStotm, webstorm וכו' וכו') יש כלים אינהרנטיים שמציגים מייד ובאופן נוח גם את הלוג וגם את השינויים. בדיוק כמו meld, גם רוב הכלים המובנים ב-IDE יודעים לזהות מיד אם הפרויקט נתון תחת ניהול גרסאות.

ב-PHPStorm שכאמור הוא branch של Intellij, יש לשונית של subversion בתפרריט (תחת SVN) ושם אפשר לראות את הלוג של כל השינויים ולעשות diff בין הגרסה המקומית לגרסאות על השרת או בין שתי גרסאות שונות. אפשר גם לעשות שינויים בקובץ ואז לעשות קומיט ישירות מה-IDE בלי צורך לצאת משורת הפקודה. אם יש קונפליקט, ה-IDE יזהה אותו ויפתח כלי מאוד דומה ל-meld שמאפשר באופן גרפי לבחון את השורות שיש בהן קונפליקט ולתקן אותן.

דוגמה של הממשק הגרפי של אינטגרציה בין ה-IDE ל-SVN
דוגמה של הממשק הגרפי של אינטגרציה בין ה-IDE ל-SVN

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

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

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

גלילה לראש העמוד