יום שני, 22 בדצמבר 2008

SVN - לא עובדים לבד

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

נתחיל מההתחלה, למה?!
שוב אני מעלה את זה שאני עובד על פרוייקט כבר זמן רב (שנמרח המון, באמת צריך לעשות משהו בנידון), וההתנהלות שלו עד כה הייתה שאני עובד על המון קבצים, שולח לשותפים שלי, והם מעלים, אם יש קובץ שמתנגש מודיעים אחד לשני לפני, והעבודה עצמה מאוד בתורות, למרות שאנחנו עובדים על 2 כיוונים אחרים.
זה יכול היה להמשך דיי הרבה זמן, עד שעשיתי את הטעות שלי ומחקתי את המסד נתונים מה-MYSQL (יש לי כישרון לדברים כאלו), אבל הכל לטובה, ולשותפים שלי יש בטח שיחזור... אז זהו, שלא היה, כי זה היה היום של שליחת כל המידע, כאשר היו יותר מידי שינויים קיצוניים, וכאן הבנו, אין ברירה אלא לעבור לדרך שבה המידע ישמר בצורה יותר ריאלית, והעבודה תיהיה מהירה וישירה, כך שאם מישהו ימחוק קובץ כזה או אחר, עדין יהיה ניתן לגשת לקבצים.

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

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

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

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

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


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

תגובה 1:

הראל אמר/ה...
תגובה זו הוסרה על ידי המחבר.