عن المشروع
Simgit هي أداة سطر أوامر مصممة لإنشاء وإدارة أشجار عمل Git بكفاءة تخزين محسّنة وعزل تام، وتُستخدم بشكل أساسي في السيناريوهات التي تتضمن عدة وكلاء ذكاء اصطناعي أو جهود تطوير متوازية على مستودع واحد. يتحقق ذلك عبر استخدام آليات النسخ عند الطلب (CoW)، ما يضمن مشاركة الملفات غير المعدَّلة عبر أشجار العمل المتعددة لنفس المساحة الفعلية على القرص دون تكرار.
تدعم الأداة أنظمة التشغيل وأنظمة الملفات التالية:
* **macOS (APFS)**: تعتمد على `clonefile` الأصلي بدون أي تبعيات.
* **Linux (btrfs, xfs)**: تستخدم قدرات refllink الأصلية بدون أي تبعيات.
* **Linux (ext4، وغيرها)**: تعود إلى `fuse-overlayfs` لتوفير وظيفة النسخ عند الطلب دون الحاجة إلى صلاحيات الجذر أو وحدات نواة.
* **Windows**: لا تدعمها بشكل مباشر، لكن يمكن استخدامها داخل WSL مع نظام ملفات Linux مدعوم.
يعمل Simgit بدون خدمة خلفية أو خادم، معتمدًا على Git للإشارات وعلى نظام الملفات لإدارة البيانات. تعمل كل شجرة عمل كإخراج مرتبط قياسي لـ Git، وتوفر عزلًا كاملاً للفروع وفهارس ومجموعات العمل. هذا يسمح للوكلاء بالعمل بالتوازي على فروعهم الخاصة ودمج التغييرات عبر عمليات دمج Git الاعتيادية.
القيمة الأساسية تكمن في التكلفة الهامشية لكل شجرة عمل إضافية، وهي أقل بكثير من نسخة `git worktree` الكاملة. أظهرت القياسات أن التكاليف تتناسب مع عدد المسارات المُتتبَّعة (حوالي 0.4 كي بايت لكل مسار مُتَّبَع زائد 60 كي بايت تجاوز ثابت على APFS) وليس مع حجم المحتوى. هذا يجعله فعّالاً بشكل خاص للمستودعات ذات الملفات الكبيرة.
يقدّم Simgit أوامر لإضافة وفهرسة وحذف وتشغيل تنظيف البيانات المهجورة لأشجار العمل. توفّر命令 sg run إمكانية إطلاق الوكلاء ضمن أشجار العمل المعزولة، ما يسمح لهم بالتفاعل مع المستودع كما لو كان إخراجًا عاديًا. يدعم الفحص المتفرع لتقليل استخدام القرص أكثر للوكلاء المركزين على أشجار فرعية محددة. يمكن تعيين أشجار العمل على أنها عابرة (للتنظيف التلقائي) أو دائمة (للاستخدام طويل الأمد). كما توفّر الأداة مخرجات JSON لأغراض التنسيق البرمجي.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.