سیستم version control جدید Anthropic: فرق Scion با Git چیه؟
حدود ۵ دقیقه مطالعه
سیستم کنترل نسخه Scion ابزاری ساخت خود Anthropic است که شرکت میگوید کل monorepo داخلیاش را از Git به آن منتقل کرده. اگر دربارهی تفاوتش با Git کنجکاوی، باید یک نکته را از همین ابتدا بدانی: این یک محصول عمومی نیست. Anthropic صریحاً میگوید جایگزین عمومی Git نیست، چون استفاده از آن یعنی بازسازی کل چرخهی توسعه.
همهی اطلاعات این مقاله از پست مهندسی خود Anthropic و خلاصههایی از آن آمده و مستقل تأیید نشده است.
چرا Anthropic سراغ چیزی غیر از Git رفت؟
مشکل مقیاس بود، آن هم مقیاسی که agentهای هوش مصنوعی ساختند. تعداد merge ها در monorepo از حدود ۲٬۵۰۰ تغییر در روز (مه ۲۰۲۶) به بیش از ۳۰٬۰۰۰ در روز تا سپتامبر رسید.
تاریخچهی شاخهی اصلی نزدیک ۱۰۰ گیگابایت است و روزانه حدود ۲۵ میلیون checkout برای CI انجام میشود. Git برای دنیایی طراحی شده که هر clone یک نسخهی کامل و مستقل است و میتواند آفلاین کار کند.
اینجا اما بیشتر کلاینتها agent و jobهای CI هستند که همیشه آنلایناند. Anthropic میگوید برای تحمل این بار، در اوج چند صد mirror از Git نگه میداشته است.
فرق اصلی: کار روی سرور، نه روی کلاینت
فرض اصلی Git این است که هر clone باید خودش بهتنهایی کار کند، حتی بدون اینترنت. این سیستم جدید برعکس فرض میکند کلاینتها همیشه به سرور وصلاند.
تاریخچه، blame، commit، merge و rebase همه سمت سرور انجام میشوند و کلاینت فقط یک cache محدود و فایلهای working copy را نگه میدارد. در Git، merge و rebase روی کلاینت انجام میشود و بعد push میکنی؛ اینجا چیزی برای push کردن وجود ندارد.
مهمترین مزیتش برای agentها این است که خیلی از jobها اصلاً به working copy نیاز ندارند، چون همهچیز از طریق API در دسترس است.
واحد تغییر و ذخیرهسازی
در Git هر commit به یک snapshot کامل از درخت فایلها اشاره میکند. اینجا واحد کار یک changeset است که در یک write-ahead log ثبت میشود و فقط فایلهای تغییرکرده نسبت به والد اولش را، با اشاره به blobهای content-addressed، نگه میدارد.
بهروزرسانی ref ها (مثل شاخهها) با یک عملیات compare-and-swap روی یک ردیف Spanner انجام میشود و از ساخت changeset جداست. شاخهها هم تقریباً فقط برای main و release پیشنهاد میشوند، نه یک چیز ارزان که همهجا بسازی.
برای blame و تاریخچه، بهجای گشتن در history روی کلاینت، دادههای derived روی سرور و بهصورت بازگشتی از مقدار والدها محاسبه میشوند. لایهی کش هم سهسطحی است: یک daemon روی هر نود، سرورهای cache منطقهای و سرورهای اصلی که از Spanner یا cloud storage میخوانند. packfile و نگهداری ریپازیتوری وجود ندارد.
نتایج گزارششده
طبق گفتهی Anthropic، نرخ cache hit در هر لایه بالای ۹۹ درصد است و زیرساخت از نظر CPU و حافظه حدود ۲۰۰ برابر کوچکتر از سیستم قبلی شده. checkoutها از چند دقیقه به چند ثانیه رسیدهاند و CI حدود ۲۵ درصد ظرفیت CPU اضافه گرفته است.
سایت GIGAZINE سرعتهایی مثل ۲۵ برابر سریعتر شدن «pull latest» و ۲۰۷ برابر برای status را هم از همین پست نقل کرده، اما من در خلاصهی پست رسمی پیدایشان نکردم، پس به آنها تکیه نمیکنم.
یک تیم هفتنفره این سیستم، ابزار code review به اسم Antique و حدود نیمدوجین سیستم مرتبط را ساخته و مهاجرت پنج ماه طول کشیده، در حالی که حجم merge ده برابر شد. Anthropic میگوید Claude خط لولهی ingestion دستساز اولیه را بازنویسی کرده و مصرف حافظهی آن ۲۰ برابر کمتر و سرعتش ۴ برابر بیشتر شده است.
چه چیزی را از دست میدهی؟
این یک معامله است. کار آفلاین را از دست میدهی، چون همهچیز به سرور وابسته است. استقلال ریپازیتوری هم از بین میرود، چون clone کامل و قابلحمل وجود ندارد.
اکوسیستم Git، یعنی ابزارها، GitHub، GitLab و عادتهای تیم، هم کنارت نیست، چون این سیستم با Git سازگار نیست. به Spanner و cloud storage هم وابسته است، پس بدون آن زیرساخت معنی ندارد.
در این مقیاس یک قفل سراسری برای merge queue هم عملی نبوده و Anthropic به تستهای بعد از merge و قبل از deploy تکیه میکند.
آیا باید به آن مهاجرت کرد؟
نه، و اصلاً چیزی برای مهاجرت وجود ندارد. این سیستم داخلی است و برای monorepoهای خیلی بزرگ با تعداد زیادی مهندس و agent ساخته شده. برای تقریباً همهی پروژههای دیگر Git هنوز انتخاب درستی است، بهخصوص وقتی توسعهدهندهی انسانی، کار آفلاین یا همکاری open source در کار است.
شرکت Anthropic انتظار دارد گلوگاههای Git ظرف ۶ تا ۱۲ ماه آینده برای بقیه هم رایج شود. شرکت میخواهد ایدههایی مثل RPCهای سمت سرور و قابلیتهای sparse و shallow قابلترکیب را با جامعهی Git، GitHub و GitLab به اشتراک بگذارد.
در بحثهای Hacker News خیلیها شکاک بودند. میپرسیدند حجم زیاد merge واقعاً نشانهی بهرهوری است یا نه، چقدر از کد تولیدشده توسط AI واقعاً review میشود و آیا این رویکرد برای شرکتهایی بدون منابع Anthropic قابلتعمیم است.
Sources:
