עבודה משותפת בEclipse בעזרת SVN

במדריך הקודם הסברתי כיצד מקימים סביבת עבודה בEclipse.
במדריך זה אפרט כיצד להקים סביבת שיתוף קוד בעזרת Eclipse, SVN ושרת Unfuddle.

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

אם עוד לא הקמתם סביבת עבודה בEclipse - כדאי שתתחילו ממדריך זה, אחרי שתרגישו בנוח בסביבת Eclipse, תוכלו להתחיל בשיתוף קוד.

אם עדיין לא ברור לכם בדיוק במה מדובר, מומלץ שתעיינו קצת בויקיפדיה בנושא Subversion (בקיצור SVN) - זהו ה"מנוע" לסנכרון הקוד בו תשתמשו במדריך זה.

ועכשיו - נתחיל בעבודה:

השלב הראשון הוא למצוא שרת שיארח את הקוד שלנו.
אני בחרתי בUnfuddle - שהוא שירות חינמי ופרטי.
גשו לעמוד הבית שלהם ובחרו בStart Unfuddling Now!

במסך שנפתח, בחרו ב"חשבון חינם":


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

במסך שנפתח, בחרו בRepositories, ושם בNew Repository

שם מלאו את פרטי התרגיל, ולחצו על Create Repository:
ודאו כי סוג המאגר הוא Subversion.


כעת תוצג כתובת המאגר שהקמתם - רשמו לכם אותה, תזדקקו לה בהמשך:
שימו לב שכתובת המאגר שלכם תהייה כמובן שונה מזו שבדוגמא כאן.


כעת, גשו לPeople ובחרו בInvite A Person. מלאו את פרטי השותף שלכם, והקפידו להעניק לו הרשאות מלאות כמפורט.
הכי חשוב שתחת Source יופיע Commit.
(לחצו להגדלה)

כעת סיימתם עם הקמת מאגר הקוד - השלב הבא הוא הגדרת Eclipse לעבוד עם SVN, וייבוא המאגר שלכם.

הפעילו את Eclipse, ותחת תפריט Help בחרו ב Install New Software
(לחץ להגדלה)

בחלון שהתקבל, לחצו על Add והזינו את הכתובת:
http://download.eclipse.org/releases/galileo
תחת Location, ייקח כמה דקות, ותקבלו רשימה של חבילות.
בחרנו ב Subversive SVN Team Provider תחת Collaboration


לחצו על Next ולאחר מכן Finish.

כעת תתבקשו להפעיל מחדש את Eclipse - עשו זאת!

עכשיו נותר לפתוח את הפרוייקט שלכם - בתפריט הראשי לחצו על File -> Import
כעת תבחינו באפשרות חדש - SVN
בחרו ב Project From SVN תחתיה:

כעת תתבקשו לבחור ב Connector, בחרו את  SVN Kit העדכני ביותר:
שימו לב שהגרסא העדכנית ביותר אינה תמיד בראש העמוד!

לחצו על Finish ולאחר מכן על Next במסכים הבאים, אשרו את הסכם הרישיון, ולחצו על Finish.

שימו לב!
בפינה הימנית התחתונה של חלון Eclipse הראשי יופיע כעת מד התקדמות התקנה:

במהלך ההתקנה, תוצג התראה כי מותקנת תוכנה ממקור לא חתום, יש לבחור בOK ע"מ שההתקנה תסתייים:
רק לאחר אישור הדיאלוג הזה, המונה יגיע ל100%, וניתן יהיה להמשיך הלאה.

אין לעבור לשלב הבא עד שהמונה מגיע ל100% ונעלם

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

לאחר הפעלה מחדש של Eclipse, בחרו שנית בFile -> Import
ותחת SVN בחרו בProject From SVN/

במסך שעלה, הזינו את כתובת המאגר שיצרתם קודם בUnfuddle, תנו לו שם שיופיע במסך הפרוייקטים, הזינו שם משתמש וסיסמא לRepository ובחרו בSave Password

לחצו על Next, במסך הבא אין צורך לעשות שינויים, רק ללחוץ על Finish.
עם סיום הטעינה, תתבקשו לבחור שם לפרוייקט, בחרו באופציה Check out as a project with the name specified.
שימו לב! בחירה בברירת המחדש בשלב זה תכניס אתכם ללולאה אינסופית! הקפידו לבחור באופציה המסומנת ולהזין שם.

לחצו על Next פעמיים, ואז על Finish - והפעם, באמת סיימתם.
במידה וכבר העליתם קבצים לפרוייקט, הם יופיעו ב Project Explorer תחתיו.

כעת אתם יכולים לייבא או ליצור קבצים בפרוייקט, כמו בכל פרוייקט eclipse רגיל. הקסם מתחיל, כאשר מסמנים קובץ, ובלחיצה ימנית ניגשים לתפריט Team:

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

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

זהו!
הגדרתם כעת סביבת שיתוף קוד בעזרת SVN - אני בטוח שלא היה פשוט להגיע עד הלום, אבל אני משוכנע שתמצאו שזה היה שווה את המאמץ.
בהצלחה בעבודות!
Comments