بعد از Git چی میاد؟ نگاه ERSC به آینده کنترل نسخه
خلاصهٔ کاملتر
توسعه نرمافزار با کمک ایجنتهای AI داره فشار زیادی رو سیستمهای کنترل نسخه میذاره: ریپوها بزرگتر میشن، تعداد برنچهای فعال بیشتر میشه و شلوغی سر مرج کردن کد زیاد میشه. چون ایجنتها با مونوریپو (یعنی یه ریپوی بزرگ که همه چیز توشه) بهتر کار میکنن و معمولاً تو محیطهای ابری و ایزوله اجرا میشن، نیاز به کلون سریع هم بیشتر شده. تیم ERSC میگه این مشکلات که قبلاً فقط گریبان شرکتهای خیلی بزرگ رو میگرفت، الان داره سراغ همه میاد.
راهحل ERSC اینه که کلاینت git معمولی رو دستنخورده نگه میداره و همچنان با پروتکل Git باهاش صحبت میکنی، ولی پشت صحنه، بهجای ذخیره کردن یه ریپوی واقعی گیت، از یه موتور ذخیرهسازی اختصاصی خودشون استفاده میکنن. این معماری باعث میشه سیستم بهصورت افقی مقیاسپذیر باشه؛ چون هر دیپلوی برای هر مشتری جداست، شلوغی و بار کاربرای دیگه روی سیستم تو تاثیری نمیذاره.
نویسنده صریح میگه که به نظرشون Git آینده کنترل نسخه نیست؛ چون برای محدودیتهای سال ۲۰۰۵ و برای یه پروژه اوپنسورس مثل کرنل لینوکس طراحی شده، در حالی که الان بعضی مونوریپوهای شرکتی میلیاردها خط کد دارن. با اینحال چون Git تو ابزارهای همهجا جا افتاده (حتی بهجای DevOps میگیم GitOps)، جایگزین کردنش سخته.
برای همین استراتژی ERSC اینه که همون پروتکلی که الان همه دارن رو حرف بزنه، ولی طوری طراحی بشه که بشه در آینده پروتکلهای دیگه رو هم اضافه کرد؛ الهامبخششون هم ابزار Jujutsu (یا jj) هست که همین الان میتونه هم با Git و هم با سیستم داخلی گوگل (Piper) کار کنه.
نویسنده تاکید میکنه پشتیبانی از یه پروتکل بومی برای jj هنوز وجود نداره و این فقط یه برنامه برای آیندهست، نه چیزی که همین حالا آماده باشه. ذخیرهسازی فقط اولین قطعه از کاره؛ ERSC قصد داره بعداً محصولات دیگهای مثل ریویو کد و CI رو هم اضافه کنه، اما بهشکل قطعات جدا از هم، نه یه فورج یکپارچه که مجبور باشی همهش رو یکجا بخری. فعلاً هنوز چیزی رسماً منتشر نشده، ولی نویسنده میگه بهزودی خبرهای بیشتری میاد.
نکات کلیدی:
- ERSC بیش از یک ساله داره رو این پروژه کار میکنه، بدون اعلام عمومی
- کلاینت و پروتکل Git دستنخورده میمونه؛ فقط موتور ذخیرهسازی سمت سرور عوض میشه
- کرنل لینوکس حدود ۴۳ میلیون خط کده، ولی بعضی مونوریپوهای شرکتی از سالها پیش میلیاردها خط دارن
- پشتیبانی از پروتکل بومی Jujutsu (jj) در نقشه راهه، نه چیزی که الان وجود داشته باشه
- استراتژی محصول: قطعات جدا (ذخیرهسازی، ریویو کد، CI) بهجای یه فورج یکپارچه




