עבודה עם Local Workspace ב- Visual Studio 11

23 באפריל 2012

תגובה אחת

כיועץ ומפתח שכמעט ולא נמצא במשרד אלא מסתובב בין לקוחות, העבודה מול TFS Source Control הפכה להיות הרבה יותר נוחה באמצעות קונספט ה- Local Workspaces שהוצג ב- VS 11. במאמר זה נספר כיצד.

הורידו והתנסו ללא תשלום בגרסה החדשה של Visual Studio 11 Beta

אחת הבעיות הגדולות של המשתמשים ב- Visual Studio 2010 ובעיקר המתחילים שבהם, היא הבנת נושא ה- Workspace וצורת העבודה עם Workspace. אז לפני שנסביר מהו Local Workspace, בואו ניישר קו ונבין את מושג ה- Workspace.

מה זה Workspace

Workspace הוא סט שמכיל את כל המיפויים בין הנתיב של קובץ/ספריה בשרת לבין קובץ/ספריה בדיסק המקומי. כל Workspace משוייך למשתמש TFS מסויים והוא יכול להכיל מספר רב של מיפויים.
בצילום המסך הבא אנו רואים שישנן 3 מיפויים שונים של נתיבים מהשרת למחשב המקומי:

Workspace 2010

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

עוד מימיו הראשונים של מוצר ה-TFS ב- 2005,  התקבלה החלטה לנהל בצורה מרכזית את ה- Workspaces  על שרת ה- TFS ולא על המחשבים המקומיים, בין היתר מטעמי איטיות הרשתות ועוד. מי שמתעניין בהיסטוריה יכול להרחיב ידיעות בפוסט המצוין של Brian Harry בנושא.

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

לדוגמא, התרחיש הבא:

על המכונה המקומית יש לי קבצים המקושרים ל-  TFS Source Control:

Source Control Explorer 2010

 

ניגש למערכת הקבצים ונמחק את הקבצים:

Delete from file system

 

כעת נקח גרסה עדכנית מהשרת (Get Latest). שימו לב להודעה – כל הקבצים מעודכנים..

local files are up to date

 

שימו לב, אם נחזור למערכת הקבצים לתיקייה שמחקנו את תוכנה נגלה ש..image

התיקיה ריקה!.. אותה תיקייה שה- TFS אמר לפני רגע שהיא מעודכנת.

כיצד זה ייתכן? הסיבה להתנהגות זו היא ניהול ה- Workspace בשרת, מה שגורם לשרת להיות לא מודע לשינויים שחלו במערכת הקבצים המקומית מלבד לאלו שבוצעו דרך סביבת העבודה של Visual Studio.

 

אז מה חדש ב- VS 11 בנושא Workspace?

ב- Visual Studio 11 נוספה האפשרות להגדיר כ-Workspace כמנוהלת לוקאלית או בקיצור Local Workspace. בצורה זאת, ניהול ה- Workspace עובר למחשב הלוקאלי ומאפשר למערכת ניהול הקוד לנטר את השינויים שנעשים בתיקיות הרלוונטיות, גם אם הם נעשו ישירות במערכת הקבצים.

ההגדרה מתבצעת דרך ממשק הניהול הרגיל של Worksapce:

Local worspaces vs 2011

באותו מסך ניתן גם להגדיר מה יהיה ה- timestamp של הקבצים: Current – Get Time או Check In Time

vs  11 file timestamp

 

איך משפיע השינוי על העבודה היומיומית

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

כיצד זה נראה בפועל?

נדאג שחלון Pending Changes לא יכיל כל שינוי המחכה ל- Check In.
כעת נפתח את התיקיה המקומית ונוסיף קובץ שלא דרך Visual Studio, אלא דרך ה- Windows Explorer:

add file

 

שימו לב כי נמצא שינוי  בחלון הPending Changes, אולם תחת קטגוריה של Excluded Changes. כלומר, השינוי המקומי זוהה. עם זאת, לא כל שינוי מקומי באמת צריך להכנס ל- Source Control. אם נרצה להוסיף את השינוי לשרת,  ניתן ללחוץ על הקישור Detected Changes:

detected changes

 

כעת ניתן ללחוץ Promote ולהעביר את השינוי ל- Included Changes

promote

כאשר מדובר בשינוי בקובץ שכבר קיים ב- Source Control, גם אם נערוך אותו לדוגמא בNotepad

edit in notepad

השינוי יזוהה ויכלל אוטומטית ב- Included Changes:

vs 11 auton promotion

 

עבודה בOffline

אחד מהיתרונות הגדולים במעבר ל- Local Workspaces הוא היכולת המשופרת של עבודה במצב לא מקוון,Offline. אמנם ב- Visual Studio 2010 הייתה תמיכה בעבודה במצב לא מקוון,  אולם תמיכה זאת לא היתה אופטימלית.

vs 2010 go onlineמי לא זוכר את הIcon הקטן והמתחבא (כאן הוא מופיע בהגדלה Smile)

שלא לדבר על ההודעות המרגיזות בכל פעם שניסית לבצע Check Out ללא חיבור לשרת..

 

 

 

ב- Visual Studio 11 נקבל פעם אחת את ההודעה המוכרת הזאת על מנת ליידע אותנו שאנו עובדים במצב אופליין: 

tfs offline error

VS יעבור אוטומטית למצב אופליין ומנקודה זאת תוכלו לעבוד כרגיל ולבצע Check Out ללא הפרעה.
כל שינוי שנבצע הן בסביבת Visual Studio או בכל עורך שהוא ישירות ממערכת הקבצים, ייקלט וייכנס אוטמטית לרשימת ה- Pending Changes.

הדבר היחיד שלא נוכל לבצע הוא פעולות המחייבות ישירות שרת כגון Check In:

כאשר נחזור למקום בעל חיבור לרשת, Refresh קטן וניתן לבצע Check In כרגיל.

אז מי אמר שאי אפשר לקחת עבודה לחופש/ים כי אין רשת?..

הורידו והתנסו ללא תשלום בגרסה החדשה של Visual Studio 11 Beta

 

BaruchFrei

הפוסט נכתב ע"י ברוך פריי, ארכיטקט ALM בכיר בקבוצת סלע המייעץ לחברות רבות בתעשייה ובתעשייה הביטחונית בפרויקטי הטמעה של שרת TFS בתחומי הפיתוח והבדיקות. בין יתר ההתמחויות ברוך מתמחה בתכנון ופיתוח כלי מעטפת על בסיס פלטפורמת ALM של מייקרוסופט, וכן בפתרונות Automated Build מתקדמים למערכות מבוזרות הכוללים פריסה ובדיקות. אם יש לכם שאלות נוספות בנושא ALM, אתם מוזמנים לבקר אותנו בפורום ALM.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

תגובה אחת

  1. Elvira29 בינואר 2013 ב 23:27

    I'm out of laeuge here. Too much brain power on display!

    הגב