سير عمل التحكم بالمصدر

يتطلب العمل باستخدام كود Android استخدام Git (نظام تحكم في إصدار مفتوح المصدر) و Repo (أداة لإدارة المستودعات مبنية من Google وتعمل على قمة Git). راجع أدوات التحكم في المصدر للحصول على شرح للعلاقة بين Repo و Git وروابط للوثائق الداعمة لكل أداة.

تدفق

يتضمن تطوير Android سير العمل الأساسي التالي:

  1. بدء فرع موضوع جديد باستخدام repo start .
  2. قم بتحرير الملفات.
  3. تغييرات المرحلة باستخدام git add .
  4. تنفيذ التغييرات باستخدام git commit .
  5. تحميل التغييرات إلى خادم المراجعة باستخدام repo upload .

مهام

يتضمن العمل مع Git و Repo في مستودعات أكواد Android تنفيذ المهام الشائعة التالية.

يأمر وصف
repo init يقوم بتهيئة عميل جديد.
repo sync يقوم بمزامنة العميل مع المستودعات.
repo start يبدأ فرع جديد.
repo status يظهر حالة الفرع الحالي.
repo upload تحميل التغييرات على خادم المراجعة.
git add مراحل الملفات.
git commit يلتزم الملفات المرحلية.
git branch يظهر الفروع الحالية.
git branch [branch] يقوم بإنشاء فرع موضوع جديد.
git checkout [branch] يحول HEAD إلى الفرع المحدد.
git merge [branch] يدمج [branch] في الفرع الحالي.
git diff يظهر فرق من التغييرات غير المدرجة.
git diff --cached يظهر فرق التغييرات المرحلية.
git log يظهر تاريخ الفرع الحالي.
git log m/[codeline].. يظهر الالتزامات التي لم يتم دفعها.

للحصول على معلومات حول استخدام Repo لتنزيل المصدر ، راجع تنزيل المصدر ومرجع أوامر Repo .

مزامنة العملاء

لمزامنة الملفات لجميع المشاريع المتاحة:

repo sync

لمزامنة الملفات للمشاريع المحددة:

repo sync PROJECT0 PROJECT1 ... PROJECTN

إنشاء فروع للموضوعات

ابدأ فرعًا للموضوع في بيئة عملك المحلية متى بدأت تغييرًا ، مثل عندما تبدأ العمل على خطأ أو ميزة جديدة. فرع الموضوع ليس نسخة من الملفات الأصلية ؛ إنه مؤشر إلى التزام معين ، مما يجعل إنشاء الفروع المحلية والتبديل بينها عملية خفيفة. باستخدام الفروع ، يمكنك عزل جانب واحد من عملك عن الجوانب الأخرى. للحصول على مقالة شيقة حول استخدام فروع الموضوعات ، ارجع إلى فصل فروع الموضوعات .

لبدء فرع موضوع باستخدام Repo ، انتقل إلى المشروع وقم بتشغيل:

repo start BRANCH_NAME .

الفترة اللاحقة ( . ) تمثل المشروع في دليل العمل الحالي.

للتحقق من إنشاء الفرع الجديد:

repo status .

استخدام فروع الموضوع

لتخصيص الفرع لمشروع معين:

repo start BRANCH_NAME PROJECT_NAME

للحصول على قائمة بجميع المشاريع ، ارجع إلى android.googlesource.com . إذا كنت قد انتقلت بالفعل إلى دليل المشروع ، فما عليك سوى استخدام فترة لتمثيل المشروع الحالي.

للتبديل إلى فرع آخر في بيئة عملك المحلية:

git checkout BRANCH_NAME

لعرض قائمة الفروع الموجودة:

git branch

أو

repo branches

يُرجع كلا الأمرين قائمة الفروع الموجودة مع اسم الفرع الحالي مسبوقًا بعلامة النجمة (*).

ملفات التدريج

بشكل افتراضي ، يلاحظ Git التغييرات التي تجريها في المشروع ولكن لا يتتبعها. لإخبار Git بالحفاظ على تغييراتك ، يجب عليك وضع علامة على هذه التغييرات أو تنظيمها لتضمينها في التزام.

لإجراء التغييرات:

git add

يقبل هذا الأمر الوسائط الخاصة بالملفات أو الدلائل داخل دليل المشروع. على الرغم من الاسم ، فإن git add لا تضيف فقط ملفات إلى مستودع Git ؛ يمكن استخدامه أيضًا لإجراء تعديلات على الملفات وحذفها.

عرض حالة العميل

لسرد حالة الملفات:

repo status

لعرض التعديلات غير الملتزم بها (التعديلات المحلية التي لم يتم وضع علامة عليها للالتزام):

repo diff

لعرض التعديلات التي تم الالتزام بها (تم تحديد عمليات التحرير التي تم وضع علامة عليها للالتزام) ، تأكد من أنك في دليل المشروع ثم قم بتشغيل الأمر git diff باستخدام الوسيطة cached :

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

تنفيذ التغييرات

الالتزام هو الوحدة الأساسية للتحكم في المراجعة في Git ويتكون من لقطة من بنية الدليل ومحتويات الملف للمشروع بأكمله. استخدم هذا الأمر لإنشاء التزام في Git:

git commit

عندما يُطلب منك رسالة الالتزام ، قدم رسالة قصيرة (لكنها مفيدة) للتغييرات المرسلة إلى AOSP. إذا لم تقم بإضافة رسالة تنفيذ ، يفشل الالتزام.

تحميل التغييرات على جيريت

قم بالتحديث لآخر نسخة ، ثم قم بتحميل التغيير:

repo sync
repo upload

تعيد هذه الأوامر قائمة بالتغييرات التي أجريتها وتطالبك بتحديد الفروع التي تريد تحميلها إلى خادم المراجعة. إذا كان هناك فرع واحد فقط ، فسترى موجه y/n بسيط.

حل تعارضات المزامنة

إذا قام الأمر repo sync بإرجاع تعارضات المزامنة:

  1. اعرض الملفات غير المدمجة (كود الحالة = U).
  2. قم بتحرير مناطق الصراع حسب الضرورة.
  3. قم بالتغيير إلى دليل المشروع ذي الصلة. أضف الملفات المتأثرة وقم بتثبيتها ، ثم أعد تعيين التغييرات:
    git add .
    git commit
    git rebase --continue
    
  4. بعد اكتمال تغيير العنوان الأساسي ، ابدأ عملية المزامنة بالكامل مرة أخرى:
    repo sync PROJECT0 PROJECT1 ... PROJECTN
    

تنظيف العملاء

بعد دمج التغييرات في Gerrit ، قم بتحديث دليل العمل المحلي الخاص بك ، ثم استخدم repo prune لإزالة فروع الموضوعات القديمة بأمان:

repo sync
repo prune

حذف العملاء

نظرًا لأنه يتم تخزين جميع معلومات الحالة في عميلك ، فأنت تحتاج فقط إلى حذف الدليل من نظام الملفات الخاص بك:

rm -rf WORKING_DIRECTORY

يؤدي حذف العميل نهائيًا إلى حذف أي تغييرات لم تقم بتحميلها للمراجعة.