כיועץ ומפתח שכמעט ולא נמצא במשרד אלא מסתובב בין לקוחות, העבודה מול TFS Source Control הפכה להיות הרבה יותר נוחה באמצעות קונספט ה- Local Workspaces שהוצג ב- VS 11. במאמר זה נספר כיצד.
אחת הבעיות הגדולות של המשתמשים ב- Visual Studio 2010 ובעיקר המתחילים שבהם, היא הבנת נושא ה- Workspace וצורת העבודה עם Workspace. אז לפני שנסביר מהו Local Workspace, בואו ניישר קו ונבין את מושג ה- Workspace.
Workspace הוא סט שמכיל את כל המיפויים בין הנתיב של קובץ/ספריה בשרת לבין קובץ/ספריה בדיסק המקומי. כל Workspace משוייך למשתמש TFS מסויים והוא יכול להכיל מספר רב של מיפויים.
Workspace זה צריך להיות מנוהל בצורה כלשהי ולזהות ולדעת אילו גירסאות של קבצים קיימות במחשב המקומי ואילו שינויים בוצעו לוקאלית וטרם הוכנסו לשרת.
עוד מימיו הראשונים של מוצר ה-TFS ב- 2005, התקבלה החלטה לנהל בצורה מרכזית את ה- Workspaces על שרת ה- TFS ולא על המחשבים המקומיים, בין היתר מטעמי איטיות הרשתות ועוד. מי שמתעניין בהיסטוריה יכול להרחיב ידיעות בפוסט המצוין של Brian Harry בנושא.
כלומר, השרת יודע מה המיפויים הקיימים בכל Workspace ואלו קבצים נמצאים ב- Workspace ובאיזו גירסה. הבעיה היתה, שבמקרים מסויימים במיוחד כאשר למשתמשים היה חסר ידע בנושא ניהול ה- Workspaces והצורה שבה הקונספט עובד, ניהול ה- Workspace בשרת הוביל להתנהגויות לא רצויות.
כעת נקח גרסה עדכנית מהשרת (Get Latest). שימו לב להודעה – כל הקבצים מעודכנים..
שימו לב, אם נחזור למערכת הקבצים לתיקייה שמחקנו את תוכנה נגלה ש..
התיקיה ריקה!.. אותה תיקייה שה- TFS אמר לפני רגע שהיא מעודכנת.
כיצד זה ייתכן? הסיבה להתנהגות זו היא ניהול ה- Workspace בשרת, מה שגורם לשרת להיות לא מודע לשינויים שחלו במערכת הקבצים המקומית מלבד לאלו שבוצעו דרך סביבת העבודה של Visual Studio.
אז מה חדש ב- VS 11 בנושא Workspace?
ב- Visual Studio 11 נוספה האפשרות להגדיר כ-Workspace כמנוהלת לוקאלית או בקיצור Local Workspace. בצורה זאת, ניהול ה- Workspace עובר למחשב הלוקאלי ומאפשר למערכת ניהול הקוד לנטר את השינויים שנעשים בתיקיות הרלוונטיות, גם אם הם נעשו ישירות במערכת הקבצים.
נשים לב, שמעתה יש לנו פונקציונליות נוספת אשר מאפשרת לנו לזהות שנעשו שינויים מקומיים דרך מערכת הקבצים, שינויים שאנו יכולים כעת לבחור אם להכניס אותם למערכת ניהול הקוד בשרת ה- TFS או לא.
נדאג שחלון Pending Changes לא יכיל כל שינוי המחכה ל- Check In.
אחד מהיתרונות הגדולים במעבר ל- Local Workspaces הוא היכולת המשופרת של עבודה במצב לא מקוון,Offline. אמנם ב- Visual Studio 2010 הייתה תמיכה בעבודה במצב לא מקוון, אולם תמיכה זאת לא היתה אופטימלית.
שלא לדבר על ההודעות המרגיזות בכל פעם שניסית לבצע Check Out ללא חיבור לשרת..
VS יעבור אוטומטית למצב אופליין ומנקודה זאת תוכלו לעבוד כרגיל ולבצע Check Out ללא הפרעה.
כל שינוי שנבצע הן בסביבת Visual Studio או בכל עורך שהוא ישירות ממערכת הקבצים, ייקלט וייכנס אוטמטית לרשימת ה- Pending Changes.
כאשר נחזור למקום בעל חיבור לרשת, Refresh קטן וניתן לבצע Check In כרגיל.
אז מי אמר שאי אפשר לקחת עבודה לחופש/ים כי אין רשת?..
הפוסט נכתב ע"י ברוך פריי, ארכיטקט ALM בכיר בקבוצת סלע המייעץ לחברות רבות בתעשייה ובתעשייה הביטחונית בפרויקטי הטמעה של שרת TFS בתחומי הפיתוח והבדיקות. בין יתר ההתמחויות ברוך מתמחה בתכנון ופיתוח כלי מעטפת על בסיס פלטפורמת ALM של מייקרוסופט, וכן בפתרונות Automated Build מתקדמים למערכות מבוזרות הכוללים פריסה ובדיקות. אם יש לכם שאלות נוספות בנושא ALM, אתם מוזמנים לבקר אותנו בפורום ALM.