سؤال

أحاول الجمع بين التعليمات البرمجية على فرعين مع أمر "GIT MERGE"، لكن GIT تعطل أثناء هذه العملية. أحتاج إلى إيجاد طريقة بديلة لدمج هذه الفروع.

لزيادة دمج الإخراج إلى مستوى التصحيح، ركض:

 Export $ git_merge_vergovity = 5

أنا حاليا في فرع الوجهة. وضع GIT - يظهر كل شيء نظيف وواضح. عندما أقوم بدمج الفروع، هذا هو ما أراه (لقد استبدلت تعليقات تسجيل الدخول باستخدام أسماء الأسماك ٪٪٪٪٪٪ و FileN مع ####### حيث قد تكون حساسة للأعمال التجارية).

$ git merge origin/PH-RELEASE-146.0
Merging HEAD with origin/PH-RELEASE-146.0
Merging:
8399d82 %%%%%%
4f9dcfe %%%%%%
found 2 common ancestor(s):
e0a5fa1 %%%%%%
ce62bf1 %%%%%%
  Merging:
  e0a5fa1 %%%%%%
  ce62bf1 %%%%%%
  found 1 common ancestor(s):
  af34a07 %%%%%%
  Skipped ######## (merged same as existing)
  Removed ########
  Removed ########
  ...
  Removed ########
  Auto-merged build
  CONFLICT (submodule): Merge conflict in build - needs b3efae4855bc5eb83aa3167ce6c309a4503c3286
  There are unmerged index entries:
  1 build
  2 build
  3 build
Merge with strategy recursive failed.

اتضح أنه في هذه المرحلة، تحطمت GIT-Merge. كيف لى أن أعرف ذلك؟ - عند تشغيل GIT تحت Cygwin:

$ git merge origin/PH-RELEASE-146.0

     11 [main] git 4352 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack)

Segmentation fault (core dumped)
  • عند تشغيل GIT تحت Linux، مع "Ulimit -C غير محدود":
 ulimit -c غير محدود؛ LS -L الأساسية؛ جيت دمج الأصل / الإصدار PH-146.0؛ LS -L Core LS: لا يمكن الوصول إلى الأساس: لا يوجد مثل هذا الملف أو الدليل دمج الرأس مع الأصل / PC-RESCREASE-146.0 ... ... دمج مع استراتيجية متكررة فشلت. -RW ------- 1 مجموعة مستخدم 1589248 يوليو 29 12:48 الأساسية
  • في كلتا الحالتين، يبقى .git / index.lock ويجب حذفه يدويا قبل أن يعمل أي أمر GIT مرة أخرى:

    حالة GIT $ قاتلة: غير قادر على إنشاء ".git / index.lock":

لقد سارت يدويا من خلال الدمج أعلاه بمقارنة معرفات الالتزام مع تلك الموجودة في شجرة Gitk. يبدو واضحا لي أن GIT يبحث عن أسلاف مشتركين وكسر الاندماج في قطع، والتعامل مع كل سلف متكرر. ولكن ما أعتقد أنه قد تسبب في المشكلة هو أن "GIT-LINK" إلى وحدة فرعية تسمى "Build" قد تغيرت بين Crmits E0A5FA1 و CE62BF1:

  • في E0A5FA1، يهدف بناء الأساس إلى 8DC84B6
  • في CE62BF1 إن بناء المنطق المنخفض يعني أن يكون b3efae4

من الواضح أن هناك صراع. لكنه صراع خلال الدمج "الجزئي" أو ما يسمى، وليس النهائي. و plit لا يبدو أن التعامل مع هذا جيدا على الإطلاق.

حسنا، لذلك ربما يكون هناك خطأ - كيف أذهب حول تقديم تقرير خطأ؟

لكن ما أنا قلق حقا هنا هو حقيقة أنني لا أستطيع دمج هذين الفرعين. هل يعرف أي شخص وسيلة بديلة لإحضار هذه الفروع معا دون استخدام أمر "دمج"؟ هل يمكنني الحصول على "دمج git-merge" بطريقة أو بأخرى تتجاهل هذه المنقطات تماما خلال عملية الدمج بأكملها؟

Linux Git الإصدار 1.6.0.4

Cygwin Git الإصدار 1.6.1.2

هل كانت مفيدة؟

المحلول

حاول ترقية git على لينكس، 1.6.3.3 هو الأحدث، إذا كان هذا لا يساعد في تجربة فكرة وليام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top