يوفر Revup أدوات لخط الأوامر التي تسمح للمطورين بالتكرار بشكل أسرع على التغييرات المتوازية وتقليل النفقات العامة لإنشاء مراجعات التعليمات البرمجية والحفاظ عليها.
revup amend
وإعادة revup restack
التوفير الوقت عن طريق استبدال Rebases البطيئةتتطلب Revup Python 3.8 أو أعلى و Git 2.43 أو أعلى. تعمل Revup مع Linux و OSX و Windows (اختبار محدود).
اتبع الإرشادات هنا للحصول على أحدث إصدار من GIT لنظام التشغيل الخاص بك. يستخدم Revup الأعلام موجودة فقط في إصدارات GIT الأحدث.
تثبيت مع pip
أو مدير الحزمة المفضل لديك.
python3.8 -m pip install revup
تحقق من أن التثبيت كان ناجحًا من خلال عرض صفحة المساعدة.
revup -h
يمكنك أيضًا البناء من المصدر للحصول على آخر التحديثات.
git clone https://github.com/Skydio/revup.git && cd revup
make deps && make package && make install
سوف يرشدك هذا البرنامج التعليمي من خلال استخدام ميزات المراجعة الأساسية.
استنساخ ريبو رمل عن طريق رفع المراجعة ، أو إنشاء ريبو جديد ، أو استخدام بعض الريبو الأخرى التي تملكها. يمكن أن يكون إنشاء اختبار PRS مرسلاً ، لذا لا تفعل البرنامج التعليمي على إعادة تدوين الآخرين.
git clone https://github.com/ < your-name > /revup.git && cd revup
في التشغيل الأول ، ستحتاج إلى تكوين بيانات اعتماد GitHub. قم بإنشاء رمز وصول شخصي هنا وتحديد مربع "أذونات إعادة التكرار الكاملة". تحتاج المراجعة إلى هذا من أجل إنشاء وتعديل طلبات السحب. ثم ركض
revup config github_oauth
ونسخ ولصق OAuth في المطالبة.
اجعل أول اثنين من الالتزامات التي ستصبح طلبين منفصلين للسحب. لاحظ "الموضوع:" علامة في رسالة الالتزام - وهذا هو ما يسبب الانتعاش للتعرف على الالتزام والتصرف. سيصبح كل موضوع مسمى بشكل منفصل طلب سحب جديد.
echo meh > foo ; git add foo
git commit -m " My first revup foo " -m " Topic: foo "
echo peh > bar ; git add bar
git commit -m " My first revup bar " -m " Topic: bar "
revup upload
لقد قمت بتحميل التغييرات الأولى في المراجعة! لاحظ كيف في جيثب ، كلا الفرعين يستهدف "الرئيسي". هذا يسمح لهم بدمج بشكل مستقل.
تحت الغطاء ، تقوم Revup بإنشاء هذه الفروع ودفعها من أجلك ، وتتبع وإدارة التبعيات حسب الحاجة.
الآن سنقوم بإجراء مراجعة جديدة نسبة إلى "فو". ستضمن علامة "النسبية" المراجعة الجديدة إلى الفرع الصحيح.
echo deh >> foo ; git add foo
git commit -m " My second revup foo " -m " Topic: foo2 " -m " Relative: foo "
revup upload
مع هذا النموذج البسيط ولكنه القوي ، يمكنك تحميل التغييرات المستقلة والمعتمدة في وقت واحد.
الآن دعنا نقوم بتحديث طلب سحب.
echo heh >> bar ; git add bar
# Either
revup amend HEAD~ --no-edit # Specify a commit to amend
# or
revup amend bar --no-edit # Specify a topic name to amend
revup upload
revup amend
يجعل من السهل تعديل الارتباط في تاريخك. لديك أيضًا خيارات أخرى لتعديل المراجعات:
git rebase --interactive
إلى جانب git commit --amend
استخدم git pull --rebase
لسحب التغييرات. لا تستخدم git merge
أو git pull
بدون Rebase لأن هذا يخلق التزامًا دمجًا.
بشكل افتراضي ، لن يتم تحميل المراجعة إذا قمت بسحبها ولكن لم تقم بإجراء تغييرات على التزام. لتجاوز هذا وتحميل دائمًا ، قم بتشغيل revup upload --rebase
.
[pull]
rebase = true
[rebase]
autoStash = true
نوصي بإضافة ما ورد أعلاه إلى .gitconfig
لجعل السحب وإعادة الصياغة أسهل.
هذا هو مقدمة غير شاملة لبعض ميزات الانتعاش المفيدة.
للحصول على وصف كامل للميزات ، راجع المستندات أو تشغيل revup -h
أو revup upload -h
لعرض المستندات بتنسيق man
.
للمساهمة في المشاريع التي قد لا يكون لديك إمكانية الوصول إليها ، يمكن تكوين Revup للدفع إلى شوكة أثناء إنشاء طلب سحب في المشروع الرئيسي.
أضف أجهزة التحكم عن بعد GIT لكل من الأصلي والشوكة.
$ git remote -v
origin https://github.com/ORIGINAL_OWNER/REPO_NAME.git (fetch)
origin https://github.com/ORIGINAL_OWNER/REPO_NAME.git (push)
myfork https://github.com/YOUR_USERNAME/REPO_NAME.git (fetch)
myfork https://github.com/YOUR_USERNAME/REPO_NAME.git (push)
عند التحميل ، مرر جهاز التحكم عن بُعد لإنشاء طلب السحب في --remote-name
و Remote Remote As --fork-name
.
revup --remote-name origin --fork-name myfork upload
يمكن للمراجعة أيضًا إضافة المراجعين والمراجعين والعلامات لسحب الطلبات. أضف العلامات المناسبة إلى أي التزام في موضوع ما.
Reviewers: alice, bob
Assignees: eve
Labels: bug, feature, draft
يمكن اختصار أسماء المستخدمين github وستتطابق مع أقصر اسم مع البادئة المحددة.
يجب أن تتطابق التسميات بالضبط. draft
الملصقات خاصة وستقوم بطلب سحب مسودة إذا كانت موجودة واضطراب المسودة إذا تمت إزالتها.
تقوم Revup عادةً بإنشاء تكوين تلقائي لفرعك الأساسي المحلي ويستخدم ذلك في القائمة والمراجعات المستهدفة. يمكنك اختيار استهداف أي موضوع معين إلى فرع آخر أو حتى فروع متعددة ، وفي هذه الحالة ستستخدم المراجعة تلك كفرع أساسي بدلاً من ذلك (وإنشاء طلبات سحب متعددة في الحالة الأخيرة).
A fix for multiple branches
Topic: fix
Branches: main, rel1.1
يمكنك تحديد الفرع الأساسي على سطر الأوامر أيضًا ، على الرغم من أن هذا ليس ضروريًا عادةً ما لم تكن تعمل على فرع لا يعرفه Countector (انظر تكوين الريبو أدناه).
revup upload --base-branch custom-branch-name
ستضيف Revup تعليقين في كل طلب سحب لتوفير ميزات مفيدة للمستخدمين والمراجعين. يتم تمكينها بشكل افتراضي وتحديثها تلقائيًا مع تغير طلب السحب.
يوفر الرسم البياني للمراجعة روابط وعناوين لجميع طلبات السحب المحلية التي لها علاقة نسبية مع طلب السحب الحالي ، بما في ذلك أي يعتمد عليه ، أو يعتمد عليه. يتيح لك هذا التصفح بسرعة بين طلبات السحب في سلسلة.
يوفر جدول التصحيحات تاريخًا من التحميلات لطلب سحب معين بالإضافة إلى روابط وملخصات الفرق بين كل تحميل. والجدير بالذكر أن Revup تتعامل بشكل خاص مع الحالة التي يمكنك فيها إعادة التحميل وستظهر لك فرقًا مع الملفات المنبع المستبعدة.
Revup قابلة للتكوين بشكل كبير باستخدام تنسيق ملف التكوين القياسي. كل علامة هي أيضًا خيار تكوين ، بحيث يمكن للمستخدمين الحصول على السلوك الدقيق الذي يحتاجونه.
الأسبقية المحددة في سطر الأوامر لها الأسبقية ، تليها التكوين في ~/.revupconfig
، تليها .revupconfig
في الريبو الحالي.
تتمثل المعرفة الأساسية في ملف التكوين الداخلي في إعداد تسمية الفرع الرئيسي وإصدار فروع الإصدار.
على سبيل المثال ، إذا كان فرعك الرئيسي هو master
ويتم تسمية فروع الإصدار مثل rel1.1
، ارتكب ما يلي إلى .revupconfig
في جذر الريبو.
[revup]
main_branch = master
base_branch_globs =
rel[1-9].[0-9]
rel[1-9].[0-9][0-9]
يتكوين المستخدم في ~/.revupconfig
يحفظ الوقت عن طريق التخلف عن العلامات الأكثر استخدامًا.
على سبيل المثال ، بعد التعود على سير العمل ، قد لا يحتاج المستخدم إلى فحص التأكيد. ستكون إضافة الأسطر التالية هي نفسها الجري مع-- --skip-confirm
.
[upload]
skip_confirm = True
(AKA "Diffs" ، "التصحيح القائم" ، إلخ)
إذا كنت قد استخدمت أدوات مثل Gerrit أو Phabricator أو GIT Perizing Lists ، فقد تكون على دراية بهذا النمط من التطوير. إذا كنت ترغب في قراءة المزيد ، فإليك بعض المناقشات المكتوبة جيدًا حول هذا الموضوع.
يتم إلهام Revup جزئيًا من هذه القائمة غير الشاملة لمشاريع المصادر المفتوحة التي تدعم أيضًا سير العمل القائم على التصحيح:
revup upload
ولكن لا يدفع أو إنشاء مراجعات.revup amend
والخلفية لما سبق مع نظام دمج يتولى الصراعات شكرا للمساهمة في المراجعة! يمكنك البدء في فكرتك الخاصة ، أو رؤية صفحة المشكلات للأفكار التي يثيرها الآخرون.
عند الإبلاغ عن القضايا:
revup -v
لتوفير سجلات مطول. يتم نشر Revup بواسطة Skydio ولكنه ليس منتج Skydio مدعومًا رسميًا.