'প্যাচটি অপ্রত্যাশিতভাবে লাইনের মাঝখানে শেষ হয়' এর অর্থ কী?


14

এটি আমার প্যাচ কমান্ডের আউটপুট:

Hunk #11 merged at 4184,4190.
Hunk #12 merged at 4444.
Hunk #13 merged at 4944.
Hunk #14 NOT MERGED at 5106-5116.
Hunk #15 merged at 5290.
Hunk #16 merged at 5448.
patch unexpectedly ends in middle of line
Hunk #17 merged at 5608,5611.

আদেশ ছিল

patch -d ~/SOME_DIR -p1 --merge --verbose -u

প্যাচটি গিট ব্যবহার করে তৈরি করা হয়েছিল:

git --git-dir ~/SOME_DIR/.git diff -U8 bb1ee538982957b421a4c0e78f30428e73c9a072 HEAD -- malloc.c

এর patch unexpectedly ends in middle of lineঅর্থ কী, এবং এটি কী সমস্যা? এটি কি 16 বা 17 হুঙ্কারের কথা উল্লেখ করছে? এর ফলে কী ঘটছে তা নির্ধারণ করার জন্য আমি প্যাচ ফাইলে কী সন্ধান করতে পারি?

উত্তর:


11

বার্তাটি Hunk 16 বোঝায়।

এই গিটহাব আলোচনাটি সম্ভবত আপনার সমস্যার সাথে সম্পর্কিত।

এটি প্যাচটি অপ্রত্যাশিতভাবে লাইন বার্তাগুলির মাঝখানে শেষ হয় কারণ সিআরএলএফ (ক্যারেজ-রিটার্ন, লাইনফিড) ইস্যুগুলি যখন গিট জেনারেটেড ডিফগুলি প্যাচের সাথে ব্যবহার করা হয়।

উপসংহারটি উদ্ধৃত করতে:

[..] গিটটি লাইন শেষের বিষয়ে খুব পিক হতে পারে। আপনি উইন্ডোতে আছেন বা না? যে কোনও হারে, আপনার সম্ভবত গিট কনফিগারেশনে অটোক্রোল্ফ সেট করা উচিত। আপনি যদি উইন্ডোতে থাকেন তবে আপনি "সত্য" চান, আপনি যদি ম্যাক বা লিনাক্সে থাকেন তবে আপনার "ইনপুট" ব্যবহার করা উচিত [..]

নিবন্ধে লাইন এন্ডিংগুলি সহ গিলহাবের উপরের বিবৃতিটি বিশদ বিবরণ করুন।


1
এটি লক্ষ করা উচিত, প্রশ্নকারী এটি জিজ্ঞাসা করেছিল এটি খারাপ - একটি লাইনের মাঝখানে শেষ হওয়া কোনও সমস্যা নয় - কেবল একটি সতর্কতা।
রস

3

আপনি যদি ব্যবহার করছেন না git(@ ম্যাক্সলেপজিগের মন্তব্য প্রসঙ্গে প্যাচ ব্যবহারের বিষয়ে ছিল git), আপনার ফাইলের শেষে ক্যারেজ রিটার্ন যুক্ত করার চেষ্টা করুন। আমি তা করেছি এবং patchআমার প্যাচ গ্রহণ করেছি।


2

এই অতি পুরনো আলোচনায় যোগ করতে:

ওপিতে উল্লিখিত সতর্কতার দিকে পরিচালিত সমস্যাটি সাধারণত লাইন শেষের সমস্যার কারণে ঘটে caused

patch ফাইলের শেষ নির্ধারণ করার জন্য একটি ট্রেলিং লাইন ফিড (এলএফ) চায় (এবং দুর্ঘটনাক্রমে সংক্ষিপ্তভাবে কাটা হয়েছে এমন একটি ইউনিফাইড পার্থক্য সম্পর্কে সতর্ক করে)

  1. সম্পাদনা করার জন্য ফাইলটি না খোলায় যথাযথ লাইনফিড যুক্ত করুন (যা আপনার সম্পাদকের সেটিংসের উপর নির্ভর করে আপনার লাইন সমাপ্তি বা ট্র্যাপিং লাইন / স্পেসগুলি পরিবর্তন করতে পারে) আপনি কিছু সহজ করতে পারেন যেমন:

    echo -e "\n" >> YOURPATCHFILE

    এটি অন্য কোনও পরিবর্তন না করে ফাইলের শেষে একটি লাইনফিড অক্ষর যুক্ত করে।

  2. যদি আপনার প্যাচ ফাইলটি ইতিমধ্যে অদ্ভুত হয় বা আপনি একবারে কয়েকটি সম্ভাব্য সংশোধন করতে চান, আপনি লাইন শেষ (সিআর বা সিআরএলএফ থেকে এলএফ) সহ এনকোডিং (ascii) সহ অনেকগুলি সমস্যা সংশোধন করতে পারেন:

    dos2unix -k YOURPATCHFILE

    আপনার ওএসের প্যাকেজ ম্যানেজার থেকে আপনাকে ডস 2 ইউনিক্স বাইনারি ইনস্টল করতে হতে পারে; অর্থাত

    • ডেবিয়ান / উবুন্টু ভিত্তিক: sudo apt install dos2unix
    • ফেডোরা / rhel / সেন্টওএস: sudo yum install dos2unix
    • ম্যাকোস (ক্রু সহ): brew install dos2unix
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.