شرح طريقة استخدام diff3 لدمج الملفات في Linux بسهولة

هل تواجه صعوبة في دمج التغييرات بين الملفات المختلفة على نظام Linux؟ يقدم لك الأمر diff3 الحل الأمثل لإدارة ودمج التغييرات بطريقة سهلة وسلسة. باستخدام هذا الأمر، يمكنك مقارنة ثلاثة ملفات في وقت واحد، وتحديد الاختلافات بينها، ودمج التعديلات بكفاءة دون تعقيد. إذا كنت تعمل على مشروع تعاوني أو تتعامل مع إصدارات متعددة من نفس الملف، سيساعدك diff3 على الحفاظ على تنظيم ملفاتك وتجميع التعديلات بشكل دقيق. سنستعرض في هذا المقال كيفية استخدام الأمر diff3 لدمج الملفات بخطوات بسيطة تناسب الجميع.

شرح طريقة استخدام diff3 لدمج الملفات في Linux بسهولة - %categories

أهم النقاط المستفادة

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

يكتشف الأمر diff3 في Linux الاختلافات بين ثلاثة ملفات نصية. يساعدك هذا في تحديد الإصدارات وفهم الاختلافات بينها ودمج التغييرات. يعد الأمر diff3 رائعًا لأكواد المصدر أو البرامج النصية أو أي ملف نصي عادي.

ما هو الأمر diff؟

الأمر diff هو نتيجة تشغيل أداة التمييز على مجموعة من الملفات. يحتوي الناتج الناتج على قائمة بالاختلافات داخل كل ملف. يتم تحديد الاختلافات من خلال رقم السطر والملف الذي يوجد فيه الاختلاف. وكما تتوقع على الأرجح، ينشئ الأمر diff3 اختلافات من ثلاثة ملفات.

تقوم حزم التحكم في إصدار البرنامج (SVC) مثل Git بإجراء الاختلافات كجزء لا يتجزأ مما هي عليه، وهي تقوم بذلك بشكل استثنائي جيد. إذا كنت تستخدم Git أو SVC آخر لتمييز الملفات، فيجب عليك الاستمرار في القيام بذلك.

ليس المطورون فقط هم من يمكنهم الاستفادة من الاختلافات. إذا كان لديك أي مادة نصية بها مسودات مختلفة مخزنة في ملفات مختلفة، فمن المحتمل أن تجد أن الاختلافات مفيدة.

يجعل أمر diff3 المشكلة الصعبة المتمثلة في تمييز ثلاثة ملفات قابلة للإدارة.

كيف يختلف diff3

يأخذ diff3 ثلاثة أسماء ملفات كمعلمات. وفقًا للاتفاقية، يشار إليها باسم mine وolder وyours، ولكن يمكن تسميتها بأي شيء. يفترض نموذج mine وolder وyours وجود ملف سلف أقدم ومشتقين معدلين.

اقرأ أيضا:  طريقة زيادة حجم واجهة Terminal في نظام Linux بكل سهولة

إليك مثال بسيط.

هذا هو my-file.txt.

first line
second line
edited third line

هذا هو old-file.txt.

first line
second line
third line

هذا هو ملفك.txt.

first line
second line
changed third line

يمكننا إجراء عملية فرق ثلاثية الاتجاهات عن طريق إدراج الملفات بالترتيب على سطر الأوامر.

diff3 my-file.txt old-file.txt your-file.txt

شرح طريقة استخدام diff3 لدمج الملفات في Linux بسهولة - %categories

يذكر diff3 أن كل ملف يحتوي على سطر ثالث مختلف.

تنسيق إخراج diff3

يتم عرض الاختلافات في أجزاء. تبدأ الأجزاء بـ “===” ورقم اختياري، يشير إلى الملف الذي تختلف فيه. الرقم هو موضع الملف على سطر الأوامر. عدم وجود رقم يعني أن الملفات الثلاثة مختلفة.

إليك مثال. يحتوي الملفان older.txt وyours.txt على هذه السطور.

Line 1
Line 2
Line 3

يحتوي الملف mine.txt على سطر أول معدّل.

My file Line 1
Line 2
Line 3

هذا هو الأمر diff3.

diff3 mine.txt older.txt yours.txt

شرح طريقة استخدام diff3 لدمج الملفات في Linux بسهولة - %categories

يشير الفاصل “====1” إلى الملف 1 أو mine.txt.

ويشير الفاصل “1:” إلى الملف الأول. ويشير الفاصل “1c” إلى ضرورة تغيير السطر الأول إذا كان من المفترض أن يتطابق مع نفس السطر في الملف الأقدم. يتم عرض السطر.

يتم عرض الأسطر المقابلة من الملفين الثاني والثالث. نظرًا لأنها تحتوي على نفس النص مع بعضها البعض، يتم إدراجها مرة واحدة، ولكن يتم تحديدها مرتين. يشير الفاصلان “2:1c” و”3:1c” المكدسان إلى ظهور السطر في كلا الملفين، مع عرض السطر أسفلهما.

دعنا نجعل ملفي mine.txt وyours.txt متماثلين، باستخدام هذا النص.

Line 1
Line 2
Line 3

الملف الأقدم.txt يحتوي على سطر ثاني معدّل.

Line 1
Older file Line 2
Line 3

لم نقم بتغيير أسماء الملفات، لذا يمكننا تشغيل نفس الأمر مرة أخرى.

diff3 mine.txt older.txt yours.txt

شرح طريقة استخدام diff3 لدمج الملفات في Linux بسهولة - %categories

يشير الرقم “2” في نهاية الفاصل “====2” إلى أن الاختلاف في هذه القطعة موجود في الملف الثاني. يتم عرض السطر المقابل من الملف الأول والثالث، ويتم عرض السطر الذي يحتوي على الاختلافات من الملف الثاني.

دعنا نعدل الملف الثاني مرة أخرى، ونضيف سطرًا غير موجود في الملفات الأخرى.

Line 1
Older file Line 2
Line 3
Line 4

يمكننا استخدام نفس الأمر.

diff3 mine.txt older.txt yours.txt

شرح طريقة استخدام diff3 لدمج الملفات في Linux بسهولة - %categories

هذه المرة، لدينا قطعتان. يشير كلا الفاصلين إلى الاختلافات في الملف الثاني.

اقرأ أيضا:  كيفية استخدام AUR في Arch Linux

القطعة الأولى تعني أنه يجب تغيير السطر الثاني في الملفين الأول والثالث ليتوافق مع نفس السطر في الملف الثاني. أو، يجب تغيير السطر الثاني في الملف الثاني ليتوافق مع الملفين الآخرين.

القطعة الثانية تقدم معلومة جديدة. يحتوي ملف old.txt على سطر رابع. يخبرنا “1:3a” و”3:3a” أنه في الملفين الأول والثالث، يجب إضافة سطر جديد بعد السطر الثالث، ليتوافق مع الملف الثاني. يظهر السطر أسفلهما.

الشيء الآخر الذي يمكن أن يعرضه diff3 هو تسلسلات الأسطر التي تحتوي على اختلافات.

دعنا نجعل ملف mine.txt وold.txt متماثلين، بهذا المحتوى.

Line 1
Line 2
Line 3

سوف نقوم بتغيير سطرين في ملفك.txt

Line 1
Yours Line 2
Yours Line 3

سوف نقوم بتشغيل نفس الأمر.

diff3 mine.txt older.txt yours.txt

شرح طريقة استخدام diff3 لدمج الملفات في Linux بسهولة - %categories

هذه المرة، لا تستخدم مؤشرات الخطوط رقم سطر واحد. بل تحتوي على رقمين للخطوط مفصولين بفاصلة , لتمثيل مجموعة من الخطوط. على سبيل المثال، يخبرنا “1:2,3c” أنه في الملف 1، يوجد اختلافات بين الخطوط من الثاني إلى الثالث.

الدمج باستخدام diff3

بدلاً من جعل diff3 يسرد الاختلافات، يمكننا أن نطلب من diff3 دمج المحتويات والاختلافات من الملفات في ملف واحد. ما يفعله في الواقع هو دمج الاختلافات بين الملف الثالث والملف الثاني في الملف رقم واحد.

إذا كنت محظوظًا، فسوف يتم دمج ملفاتك دون أي تعارضات. في بعض الأحيان تحدث تغييرات في نفس المكان في الملفات، مما يتسبب في حدوث تعارضات. يتم تسليط الضوء على التعارضات حتى تتمكن من اختيار مجموعات الخطوط التي ترغب في الاحتفاظ بها.

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

وإليك حالة بسيطة. إليك محتويات ملف mine.txt.

We're going to
run diff3
against these files.
Yipee!

هذا ما يوجد في older.txt.

We're going to
run diff3
against these files.

يحتوي ملف yours.txt على هذا.

We're going to
run the diff3 command
against these files.

سنستخدم الأمر المألوف لدينا لإجراء عملية diff، ثم سنشغله مرة أخرى باستخدام خيار -m (دمج) لإجراء عملية الدمج.

diff3 mine.txt older.txt yours.txt
diff3 -m mine.txt older.txt yours.txt

شرح طريقة استخدام diff3 لدمج الملفات في Linux بسهولة - %categories

يؤدي هذا إلى دمج الاختلافات بين ملف older.txt وملف yours.txt في ملف mine.txt، مما يؤدي إلى إنشاء إصدار رابع جديد. لالتقاط هذا الناتج، أضف إعادة توجيه إلى الأمر.

diff3 -m mine.txt older.txt yours.txt > fourth.txt

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

اقرأ أيضا:  7 طرق لأجل تسريع Ubuntu

إليك ملف mine.txt الجديد الخاص بنا

chaffinch
swallow
pigeon
sparrow
nuthatch

هذا هو ملفنا الجديد older.txt

chaffinch
swallow
pigeon
dove
nuthatch

وأخيرًا، ملفنا الجديد yours.txt.

chaffinch
cuckoo
rook
dove
nuthatch
woodpecker
goldfinch

هذه هي نتائج الاختلاف.

diff3 mine.txt older.txt yours.txt

شرح طريقة استخدام diff3 لدمج الملفات في Linux بسهولة - %categories

هناك تغييرات في الملفات الثلاثة، وسطور إضافية في ملف واحد. سنقوم بدمج وإعادة توجيه الناتج إلى ملف جديد.

diff3 -m mine.txt older.txt yours.txt > new-file.txt

شرح طريقة استخدام diff3 لدمج الملفات في Linux بسهولة - %categories

باستخدام محرر النصوص المفضل لديك، افتح الملف.

gedit new-file.txt

شرح طريقة استخدام diff3 لدمج الملفات في Linux بسهولة - %categories

القسم بين الفاصلين “<<<<<<<<” و”>>>>>>>” هو تعارض.

يتم عرض الأسطر المتعارضة من كل ملف على التوالي. الأسطر من الملف الأول تقع بين “<<<<<<<” و”|||||||”، الأسطر من الملف الثاني تقع بين “|||||||” و”=======”، والأسطر من الملف الثالث تقع بين “=======” و”>>>>>>”.

في ملف حقيقي، من المحتمل أن يكون لديك العديد من مناطق التعارض التي يجب مراجعتها وتحريرها، لجعلها تحتوي على النص من القسم الذي تريد الاحتفاظ به.

الاختلافات والتعارضات

من السهل أن تنسى التغييرات التي أجريتها على إصدارات مختلفة من ملف. يسهل الأمر diff3 العثور على هذه الاختلافات. هناك تفاعل بشري أكثر مطلوب للدمج من التباين، ولكن على الأقل يجعل الأمر diff3 من الصعب تفويت التعارض.

يعد استخدام diff3 أداة قوية ومفيدة للغاية، خاصة عند التعامل مع الملفات في Linux. بمجرد إتقان استخدام هذا الأمر، ستتمكن من إدارة ودمج التعديلات بكفاءة عالية، مما سيوفر لك الكثير من الوقت والجهد. تأكد من استكشاف الخيارات المختلفة لـ diff3 لتحقيق أقصى استفادة منه في مشاريعك اليومية.

قد يعجبك ايضا