Git1.6.3 থেকে আপনি গিট ডিফ্টল স্ক্রিপ্টটি ব্যবহার করতে পারেন : আমার উত্তর নীচে দেখুন ।
এই নিবন্ধটি আপনাকে সাহায্য করবে হতে পারে । এখানে সেরা অংশগুলি রয়েছে:
বাহ্যিক ডিফ সরঞ্জামটি নির্দিষ্ট করার জন্য দুটি ভিন্ন উপায় রয়েছে।
প্রথমটি হ'ল GIT_EXTERNAL_DIFF ভেরিয়েবল সেট করে আপনি যে পদ্ধতিটি ব্যবহার করেছেন। তবে ভেরিয়েবলটি এক্সিকিউটেবলের পুরো পথে নির্দেশ করার কথা point তদুপরি, GIT_EXTERNAL_DIFF দ্বারা নির্ধারিত এক্সিকিউটেবলকে 7 টি আর্গুমেন্টের একটি নির্দিষ্ট সেট সহ কল করা হবে:
path old-file old-hex old-mode new-file new-hex new-mode
যেহেতু বেশিরভাগ ডিফ সরঞ্জামগুলির জন্য আর্গুমেন্টগুলির একটি পৃথক ক্রম (এবং কেবলমাত্র কিছু) প্রয়োজন হবে, আপনাকে সম্ভবত এর পরিবর্তে একটি মোড়ক স্ক্রিপ্ট নির্দিষ্ট করতে হবে, যার ফলস্বরূপ আসল ডিফ সরঞ্জামটি কল করে।
দ্বিতীয় পদ্ধতিটি, যা আমি পছন্দ করি তা হ'ল "গিট কনফিগারেশন" এর মাধ্যমে বাহ্যিক ডিফ সরঞ্জামটি কনফিগার করা । আমি যা করেছি তা এখানে:
1) একটি র্যাপার স্ক্রিপ্ট "git-diff-wrapper.sh" তৈরি করুন যাতে এর মতো কিছু থাকে
-->8-(snip)--
#!/bin/sh
# diff is called by git with 7 parameters:
# path old-file old-hex old-mode new-file new-hex new-mode
"<path_to_diff_executable>" "$2" "$5" | cat
--8<-(snap)--
আপনি দেখতে পাচ্ছেন, কেবলমাত্র দ্বিতীয় ("পুরাতন-ফাইল") এবং পঞ্চম ("নতুন-ফাইল") যুক্তিগুলি ডিফ ডিভাইসে পাস করা হবে।
2) প্রকার
$ git config --global diff.external <path_to_wrapper_script>
কমান্ড প্রম্পটে, "git-diff-wrapper.sh" এর পথের পরিবর্তে, যাতে আপনার ~ / .gitconfig থাকে
-->8-(snip)--
[diff]
external = <path_to_wrapper_script>
--8<-(snap)--
মোড়ক স্ক্রিপ্ট এবং ডিফ সরঞ্জামের জন্য পাথ নির্দিষ্ট করার জন্য সঠিক বাক্য গঠনটি ব্যবহার করতে ভুলবেন না, যেমন ব্যাকস্ল্যাশের পরিবর্তে ফরোয়ার্ড স্ল্যাশ ব্যবহার করুন। আমার ক্ষেত্রে, আমি আছে
[diff]
external = \"c:/Documents and Settings/sschuber/git-diff-wrapper.sh\"
ইন .gitconfig এবং
"d:/Program Files/Beyond Compare 3/BCompare.exe" "$2" "$5" | cat
মোড়ক স্ক্রিপ্ট এ। "বিড়াল" এর পিছনে মন!
(আমি মনে করি '' | cat
'কেবলমাত্র এমন কিছু প্রোগ্রামের জন্য প্রয়োজন যা সঠিক বা সামঞ্জস্যপূর্ণ রিটার্নের স্থিতি ফিরিয়ে নাও দিতে পারে dif আপনার বিবিধ সরঞ্জামটিতে সুস্পষ্ট রিটার্নের স্থিতি থাকলে আপনি চলন্ত বিড়াল ছাড়া চেষ্টা করতে চাইতে পারেন)
( ডায়োমিডিস স্পিনেলিস মন্তব্যগুলিতে যোগ করেছেন :
cat
কমান্ড প্রয়োজন বোধ করা হয়, কারণ diff(1)
, একটি ত্রুটি কোডের মাধ্যমে ডিফল্ট প্রস্থানের দ্বারা যদি ফাইল পৃথক।
গিট আশা করে যে বাহ্যিক ডিফ প্রোগ্রামটি যদি ত্রুটি কোডের সাথে প্রস্থান করে তবেই যদি প্রকৃত ত্রুটি ঘটে থাকে, উদাহরণস্বরূপ যদি এটি মেমরির বাইরে চলে যায়।
আউটপুট বংশীধ্বনিতুল্য দ্বারা git
করা cat
নন-জিরো ত্রুটি কোড ছদ্মবেশী করা হয়।
আরও দক্ষতার সাথে, প্রোগ্রামটি exit
0 এবং যুক্তির সাথে কেবল চালানো যেতে পারে ))
এটি (উপরে বর্ণিত নিবন্ধটি) হ'ল কনফিগারেশন ফাইলের মাধ্যমে সংজ্ঞায়িত বাহ্যিক সরঞ্জামের জন্য তত্ত্ব (পরিবেশের ভেরিয়েবলের মাধ্যমে নয় ) is
অনুশীলনে (এখনও বাহ্যিক সরঞ্জামের কনফিগার ফাইল সংজ্ঞা জন্য), আপনি উল্লেখ করতে পারেন: