سال هاست که تیم های نیمه حرفه ای از سورس کنترل ها برای نگه داری کد هاشون استفاده می کنند
خوب جایی که در حال حاضر توی اون مشغول هستم هم از این قاعده مستثنی نیست،
از وقتی که توی این شرکت مشغول شدم یه سوال اساسی داشتم و اون این که :
چرا با وجود ابزار های خوبی مثل گیت هنوز از TFS نسخه 2008 استفاده می کنن
و البته عمق فاجعه رو زمانی میشه درک کرد که تویه تیم دو نفر به طور همزمان نمی تونن روی یه فایل کار کنن
این یه محرک برای مهاجرت بود و صد البته چالش هایی هم پیش رو داشتم
مثل یه دیتابیس سنگین که شامل حدودا 14000 changeset بود و حدودا 50 برنچ مختلف از کد :)
به طبع history، Work Items , ... سورس کنترل اهمیت زیادی دارند.
خوب از این مقدمه طولانی که بگذریم باید وارد مرحله عملی کار بشیم:
مواد مورد نیاز:
یه سرور که قبلا روش TFS نصب بوده
به سرور جدید
Microsoft SQL Server (در زمان نگارش این مطل نسخه 2012 آپدیت 1 )
Microsoft Team Foundation Server (در زمان نگارش این مطلب نسخه 2015)

1 - در مرحله اول یه بکاپ از کل دیتابیس ها مربوط به TFS فعلی میگیریم و یه جای امن نگه میدایم 
TFS DB
2 - دیتابیس هایی که بکاپ گرفتیم رو به سرور جدید منقل می کنیم و روی SQL 2012 ریستور می کنیم.

3 - از اونجایی که آپگرید کردن از نسخه 2008 به 2015 به صورت مستقیم ممکن نیست
ما مجبوریم 2008 رو به 2012 آپگرید کنیم و بعد 2012 رو به 2015 آپگرید کنیم.
پس 2012 Team Foundation رو نصب می کنیم
و از منو گزینه آپگرید رو انتخاب می کنیم
TFS Upgrade

4- خوب تو مرحله بعد یه صفحه خوش آمد گویی ظاهر میشه که خوندن توضیحاتش خالی از لطف نیس و میریم مرحله بعدی
5 - در مرحله بعد مشخصات سرور SQL و دیتایس های که ریستور کردیم رو باید بدیم
در قسمت SQL Server Instance اسم سروو / آی پی رو وارد می کنیم
روی گزینه  List Available Databases رو کلیک می کنیم تا دیتابیس TFS رو توی لیست پایین نشون بده
روی اسم دیتابیس کلیک می کنیم
و گزینه پایین صفحه رو تیک میزنیم (تیک زدن این گزینه به معنی داشتن بکاپ از دیتابیس قبلی می باشد)

 
6 - در مرحله بعد تنظیمات مربوط به Reporting Service رو انجام میدیم


6 - تو این مرحله دیتابیس TFS رو باید انتخاب کنیم
در قسمت SQL Server Instance اسم سروو / آی پی رو وارد می کنیم
روی گزینه  List Available Databases رو کلیک می کنیم تا دیتابیس TFS رو توی لیست پایین نشون بده
اسم دیتابیس رو انتخاب می کنیم و روی Next کلیک می کنیم

7 - در مرحله  Analysis Services نیاز به تغییر گزینه ها نداریم برای اطمینان کافیه روی تست کلیک کنیم و بعد بریم مرحله بعدی
8 - در مرحله بعدی باید مشخصات اکانتی که بتونه Report ها رو بسازه رو باید وارد کنید که می تونه بسته به نوع نصب SQL Server گزینه Network Service یا معادلش رو انتخاب کنید.
9 - در قسمت مربوط به SharePoint در صورتی که قبلا از SharePoint به صورت یکپارچه شده (Integrated) با TFS استفاده میکردید تیک استفاده رو بزنید
در غیر این صورت از این مرحله رد میشیم
(تو یه فرصت دیگه Integrate کردن TFS با ابزار های دیگه مثل شیرپوینت و ابزار های مدیریت پروژه توضیحات بیشتری میدم)

10 - خوب تو Review بد نیست یه نگاهی به همه کارایی که تا این مرحله انجام دادیم بندازیم
و اگه چیزی نیاز به تغییر داره اصلاحش کنیم.

ضد حال: تو این مرحله ممکنه به شما هشدار داده بشه که سرور رو ریستارت کنید! و مجبور بشین همه مراحل رو از اول طی کنید.
11- اگه تصویر زیر رو میبینید باید خوشحال باشید جون بیشتر راه رو رفتین در غیر این صورت باید پیغام ها رو بخونید و مشکلات رو برطرف کنید.






با کلیک روی Configure باید منتظر باشیم
این کار ممکنه تا 1 ساعت یا بیشتر طول بکشه (بسته به حجم دیتابیس)
و خیلی خوشحال کننده است که بعد از انتظار با تصویر زیر رو برو بشین
خوب تا اینجا شما تونستید TFS رو با موفقیت تنظیم کنید و همه چیز مثل قبل کار کنه
ما با انجام این مراحل تونستیم TFS 2008  رو 2012 ارتقا بدیم
ولی از اونجایی که هدف ما TFS 2015 هست باید مراحل بالا رو با TFS 2015 تکرار کنید و از 2012 به 2015 مهاجرت کنید

نکته: سورس کنترل در ویژوال استودیو نسخه 2013 به بعد می تونه یکی از این دو گزینه باشه
  1. Team Foundation Server
  2. Git
و خیلی راحت می تونید سورس کنترلتون رو از TFS به Git تغییر بدین که نیاز به نصب نرم افزار گیت روی سرور هم داره
و تو این مقاله جا نداره
بعد از انجام همه این مراحل کافیه به سرور جدید وصل بشین و کد رو Get کنید



پ.ن: برخی از مشخصات به دلیل حفط حریم خصوصی شرکتتی که این کار رو انجام دادم تار شده و در برخی موارد مجبور شدم از عکس تزئینی استفاده کنم.

امیدوارم این مطلب تونسته باشه راهنمای کوچیکی براتون باشه
هر گونه ایراد تو نگارش رو بزارین به حساب این که تازه دارم کارامو مینویسم
هر سوال یا مشکلی بود در خدمتتون هستم