Thorfin OpenCode School

الدرس 14

مساحات العمل

شغّل مهامًا متوازية متعددة على المشروع نفسه دون تعارض في الملفات.

مساحات العمل ميزة متقدمة للعمل على مهام متعددة في المشروع نفسه في الوقت ذاته. إذا لم تكن تطوّر برمجيات على مستودع Git، يمكنك تخطي هذا الدرس — فمساحات العمل لن تنطبق على سير عملك.

المشكلة التي تحلها مساحات العمل

عندما تشغّل جلستين في OpenCode على المشروع نفسه في الوقت ذاته، فكلتاهما تعملان على الملفات نفسها. إذا كانت الجلسة A تعيد هيكلة جزء من قاعدة التعليمات البرمجية بينما تضيف الجلسة B ميزة في جزء آخر، فقد تكتبان فوق تغييرات بعضهما بالخطأ. في أفضل الأحوال، تفقد عملًا. وفي أسوأها، لا تلاحظ وينتهي بك الأمر بمشروع معطوب.

هذه المشكلة نفسها التي تحلها فروع Git للمطوّرين البشريين العاملين بالتوازي. مساحات العمل تحلها لجلسات OpenCode المتوازية.

ما هي مساحات العمل

مساحة العمل نسخة كاملة ومعزولة من ملفات مشروعك على فرع Git خاص بها. لكل مساحة عمل ملفاتها وجلساتها. التغييرات في مساحة عمل لا تؤثر على أي مساحة عمل أخرى.

المفهوم مشابه لتفريع Git — تعمل على نسخة معزولة من قاعدة التعليمات البرمجية — لكن بدل أن تتشارك كل الفروع مجلد عمل واحدًا، تحصل كل مساحة عمل على مجلد منفصل على القرص.

كيف تنشئ مساحة عمل

مساحات العمل ميزة خاصة بـ Desktop. يجب أن يكون مشروعك مستودع Git.

  1. انقر بالزر الأيمن على المشروع في الشريط الجانبي الأيسر في OpenCode Desktop
  2. اختر Enable Workspaces
  3. انقر New Workspace لإنشاء نسخة معزولة

تحصل كل مساحة عمل على اسم مولَّد تلقائيًا. يمكنك إنشاء العدد الذي تحتاجه — واحدة لكل مهمة، أو واحدة لكل تجربة، أو بأي طريقة تريد تنظيم عملك.

ما يحدث خلف الكواليس

عندما تنشئ مساحة عمل، يستخدم OpenCode Git worktrees لإنشاء فرع جديد باسم opencode/<name> ويعمل له checkout في مجلد منفصل على القرص. النتيجة نسخة مستقلة بالكامل من مشروعك عند الحالة الحالية لفرعك الرئيسي.

عندما تنتهي من مساحة عمل، ادمج فرعها مجددًا في فرعك الرئيسي عبر Git — بالطريقة نفسها التي تدمج بها أي فرع ميزة آخر.

متى تستخدم مساحات العمل

تكون مساحات العمل أكثر فائدة عندما تريد:

  • تشغيل جلستين طويلتين أو أكثر على المشروع نفسه في الوقت ذاته
  • تجربة تغيير محفوف بالمخاطر دون لمس مجلد عملك الرئيسي
  • العمل على مهام مستقلة بالتوازي ودمج النتائج عندما تكون كل منها جاهزة

للعمل بجلسة واحدة، أو للمشاريع التي ليست مستودعات Git، لست بحاجة إلى مساحات العمل.