بررسی سورس کنترل Git در TFS 2018

قبلا یک مقاله درباره مقایسه دو ورژن کنترل TFVC و Git نوشته بودم، در اون موقاله در نهایت به این نتیجه رسیدم که Git می تونه انتخاب بهتری باشه. الان از اون زمان شاید یک سال و چند ماهی گذشته، میشه گفت امکانات جدیدی که به Git اضافه شدن تقریبا استفاده کردن از TFVC رو غیر منطقی کرده. بارها بوده بعد از اتمام جلسات آموزشی شرکت کننده ها از اینکه چقدر فرآیندها میتونه بهتر بشه خوشحال و متعجب بودن. منم از اونها خوشحال تر چون میدیدم اونها خوشحالن.

در این مقاله میخوام یک مرور داشته باشم به اینکه چه مواردی به ورژن کنترل Git در TFS اضافه شده و سیاست مایکروسافت در این زمینه چیه.

درباره سیاست کلی شرکت مایکروسافت باید بگم که در راستای تغییراتی که بعد از حضور آقای نادلا در مایکروسافت در حال انجامه، مایکروسافت و سایت github ارتباط و همکاری خودشون درباره توسعه git رو خیلی افزایش دادن و روی امکاناتی مثل GVFS یا Git virtual file system که توسط مایکروسافت توسعه داده شد کارمی کنن.

GFVS و داستان ایجادش و اعداد و ارقامی که اعلام شده در نوع خودش جالبه.

تا حالا براتون این سوال پیش اومده که حجم سورس کد ویندوز و یا لینوکس چقدره؟ خب جواب سوالتون در تصویر زیره.

حجم سورس کد لینوکس ۶۰۰ مگابایت  البته چه نسخه ایش رو نگفتن. VSTS 3 GB و حجم ویندوز برابر ۲۷۰ گیگابایت هست. حداقل در مورد ویندوز توضیح دادن که منظور از ستون آبی رنگ تمام سورس کدهای متعلق به پروژه ویندوزه.

نکته ایی که وجود داره اینه که در منطق Git تمام فایلها باید روی سیستم شما کپی بشن در واقع Clone بشن بعلاوه تمام تاریخچه و غیره، الان شما فرض کنید یک repo دارید که حجمش مثل ریپو ویندوز زیاده ۵۰ گیگه یا همین ۲۷۰ گیت، کافیه یک فرمان Clone اجرا کنید تا حالا حالاها سیستم شما مشغول کپی کردن باشه. آمار و ارقام اولیه سورس کد ویندوز جالبه.

Clone کردن این پروژه روی شبکه فوق سریع مایکروسافت ۱۲ ساعت زمان میبرده!، check out کردن برنچ ۳ ساعت زمان میبرده، اضافه کردن یک فایل جدید و commit اون ۳۰ دقیقه و یک git status گرفتن ۸ دقیقه، می بینیم که رسما کار نمی کردن سنگین تر بودن. مایکروسافت پروژه GVFS رو شروع کرد تا جلوی این حجم از کپی روی سیستم های client رو بگیره.

اعداد سبز رنگ بعد از استفاده از GVFS هستن. بعد از ایجاد GVFS این پروژه به صورت اوپن سورس منتشر شد و با همکاری github در حال توسعه های بعدی هست.

خب حالا نوبت به امکانات جدید میرسه.  به بعضی از این موارد در مقالات آموزش کامل امکانات جدید TFS 2017 update 2 و بررسی Team Foundation Server 2017 Update 3 و بررسی و آموزش جزئیات Team Foundation Server 2018 final release  اشاره شده و من هم در زیر به صورت کلی به موارد جدیدی که اضافه شدن اشاره می کنم ولی قبل از اون می خوام یکم درباره مهم ترین تغییری که به وجود اومده صحبت کنم.

مهم ترین تغییر به وجود اومده از نظر من ایجاد یک فرآیند کامل از زمان نوشتن کد تا تحویل در محیط واقعی یا Production هست. خب این یعنی چی. چرا ما نیاز به تست و پابلیش نرم افزار داریم؟ چون کدهای جدیدی نوشته شده یا باگ هایی بر طرف شدن. چرا ما کدهای جدیدی نوشتیم یا دیتابیس رو تغییر دادیم یا گرافیک های جدیدی خلق کردیم؟ چون نیازمندی پروژه بوده و Task های مشخصی برای پیاده سازی feature ها تعیین شده.

می بینیم که تمام فرآیند یک حالت یکپارچه داره، در تعریف ALM این موضوع تحت عنوان Visibility مطرح میشه یعنی تمام فرآیند تولید نرم افزار از اعلام نیاز تا مانیتور شدن خروجی در محیط عملیاتی رو شامل میشه. دقیقا زیبایی TFS در پیاده سازی Git همین یکپارچگی اون با تمام زیر سیستم های دیگه است. بعد از شروع اسپرینت میشه با انتخاب PBI مورد نظر و باز شدن صفحه جزئیات PBI یک برنچ مرتبط با PBI ایجاد  کرد.

وقتی کار ما آماده تحویل شد باز از طریق پنل تحت وب و صفحه مشاهده جزئیات PBI می تونیم یک Pull Request ایجاد کنیم تا فرآیند تحویل PBI شروع بشه.

 اطلاعات مرتبط با Test و Build و Release هم به صورت مجتمع چه برای PBI و چه برای هر Commit نمایش داده میشه. واقعا فکر نمی کنم بشه از این کامل تر Visibility رو ارائه داد. ویژگی های جدید اضافه شده به Git در TFS به قرار زیر هستند.

  • Visualize your git repository
  • View git tags on commits
  • Add tags to commits
  • Improved commit filtering
  • Import repositories from TFVC to Git
  • Git LFS file locking
  • Git commit comments use the new discussion control
  • New tree view control
  • support for Git forks.
  • You can manage massive Git repositories with GVFS.
  • You can view, filter, delete, and set the security of Git tags.
  • added file minimap, bracket matching, and toggle white space to web code editing.
  • made many improvements to pull requests.
  • Avoid overwrites and protect performance using repository settings(Case enforcement, Limit file sizes)
  • Enhanced filter capability for commits with more than 1000 files changed
  • Find lost commits due to a Force Push
  • Blame now has history
  • Toggle word wrap and white space in diff views
  • Track code pushes to a Git repo to builds and releases
  • Control who can contribute to pull requests
  • Pull request comment notifications include the thread context
  • Pull request status extensibility
  • Pull request service hooks merge events
  • Improved error messages for work items completing with a pull request
  • Mention a pull request
  • Help reviewers using pull request labels
  • Pull request comments follow renamed files
  • View pull request merge commit
  • Recently used reviewers
  • View remaining policy criteria for pull request auto-complete
  • Discuss math in pull requests
  • Pull request suggestions for forks
  • Path filters for pull request policies

خلاصه اینکه اگر دغدغه ساختن یک فرآیند کامل Continuous Integration و Continuous Deployment رو دارید در پلتفرم مایکروسافت تنها راه استفاده از Git موجود در TFS هست.

 

 

 

 

 

Add a Comment

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *