الزئبق: الاندماج بين الفروع ... للخلف؟
-
28-09-2019 - |
سؤال
الوضع: أنا جديد على الزئبق. لقد قمت مؤخرًا بإعداد وبدأت في استخدام مستودع في نموذج أوصى لي (انظر مخطط رودي أدناه). كانت الأمور تسير على ما يرام لكنني واجهت مشكلة التطبيق العملية الأولى. يبدو أن الزئبق موجه نحو الاندماج الأمامي/المخلوط وأود أن أتراجع. أرغب في تنظيف فرعنا الافتراضي والمستقر من خلال البدء بفرع البائع ، وإعادة تغيير تغييراتنا والتحقق من ذلك على أنه افتراضي. ثم دمج ذلك في مستقر.
V1----V2-------------V3---------V4 Vendor
\ \ \ \
D1----D2---D3--D4-D5-D6-D7-D8---D9 default
\ \ \
S1----------S2---S3 stable
السؤال: كيف أبدأ بفرع البائع كأول ، دمج التغييرات الافتراضية والالتزام بالفرع الافتراضي؟
اعتقدت أن ما يلي سيفعل ذلك ، لكن التحديث يغير دليل العمل.
hg update -C vendor
hg update default
hg merge
المحلول
هناك طريقتان للذهاب هذا. واحد صحيح والواحد. سأفعل الحق أولاً:
hg update default
hg --config ui.merge=internal:other merge vendor
يقوم ذلك بتحديث والديك إلى الافتراضي ودليل العمل إلى الافتراضي ثم يندمج في محتويات البائع ، ولكنه يقوم بذلك باستخدام أداة دمج داخلية دائماً يختار الخيار الآخر عندما يكون هناك أي اختلاف ، لذلك سيكون لديك افتراضي يشبه البائع بعد هذا الدمج (والالتزام).
الطريقة المتستر هي:
hg update -C vendor
hg debugsetparent default
hg commit
أين debugsetparent
هو powertool يقوم بجزء "تغيير الوالدين" من التحديث دون تحديث الملفات بالفعل في دليل العمل.
نصائح أخرى
على الرغم من أنه يفتقر إلى السياق الذي يقدمه هذا السؤال وإجاباته ، فقد وجدت إجابة رسمية على ويكي Mercurial.