উইন্ডোতে মেল্ডের সাথে গিট মার্জারটুল


94

লিনাক্সে, আমার প্রিয় সংযুক্তির সরঞ্জামটি মাইল্ড এবং গিটের সাথে কাজ করার জন্য এটি ব্যবহার বা কনফিগার করতে আমার কোনও সমস্যা হয়নি। যাইহোক, উইন্ডোজ এটি একটি ভিন্ন গল্প হয়েছে।

প্রথমে, আমি এখানে পেয়েছি এমন একটি বান্ডিল থেকে ঝাঁকুনি ইনস্টল করেছি: https://code.google.com/p/meld-installer/

তারপরে, আমি মেল্টকে ডিফল্ট মার্জেটুল হিসাবে সমর্থন করার জন্য আমার .gitconfigটিকে এমনভাবে কনফিগার করেছি

[merge]                                                      
    tool = meld                                                                         

[mergetool "meld"]                                           
    path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
    keepBackup = false                                   
    trustExitCode = false

সুতরাং, যখন আমার কোনও বিরোধ হয়, আমি গিট ডিফ্টল করি এবং মেল্ড আসলে খোলা থাকে। যাইহোক, গিফ বিভিন্ন ডিভাইসে পাস করার জন্য যে ফাইলগুলি লেখেন সেগুলির পথগুলি ভুল। উদাহরণস্বরূপ, যদিও গিটটি সংগ্রহস্থল ডিরেক্টরিতে বেস (LOCAL) এবং REMOTE ফাইল উত্পন্ন করে (আমি যে অবস্থানটি থেকে git Mergetool বলেছি), মেল্ড এক্সিকিউটেবলের ডিরেক্টরিতে এই ফাইলগুলির প্রতিটি খোলার চেষ্টা করে।

C: \ repo \ roses.txt.LOCAL.2760.txt খোলার পরিবর্তে, মাইল্ড সি: \ প্রোগ্রাম ফাইল (x86) eld মাউন্ট \ মেল্ড \ গোলাপ.txt.LOCAL.2760.txt খোলার চেষ্টা করে।

এর আগে কেউ কি এর মধ্যে দৌড়েছে বা উইন্ডোজটিতে সঠিকভাবে কাজ করতে গিট / মেল্ডকে কীভাবে কনফিগার করতে হয় তা জানেন?


এটির চেষ্টা করার কোনও অর্থ আছে কিনা আমার কোনও ধারণা নেই তবে আমি কেডিফ 3 ব্যবহার করি, এবং আমার গিটকনফাইগে সেট করা পথটি হ'ল: পথ = সি: / প্রোগ্রাম ফাইল (x86) / কেডিফ 3 / কেডিফ3.এক্সি এবং সি নয়: \\ ইত্যাদি
Fumler

4
আপনি কি সমস্যার সমাধান করতে পারবেন?
রজার

4
আমি পারছি না। উত্তরগুলির মধ্যে একটি সম্ভবত সঠিক, তবে আমি মেল্ডকে যথাযথভাবে আচরণ করতে পারি না বলে কোনও কারণ হিসাবে আমি দ্বিধাগ্রস্থ: - /
নেলসন

@ নেলসন চিন্তা করবেন না, আমিও পারি না :(

অনুগ্রহ করে মন্তব্য করুন এবং আপস্ট্রিম ইস্যুতে ভোট দিন যাতে ভবিষ্যতের ব্যবহারকারীর এমনকি এটি সম্পর্কে চিন্তা করার প্রয়োজন হবে না।
ফ্র্যাংকলিন ইউ

উত্তর:


152

আপনি উইন্ডোজের জন্য গিট ব্যাশ ব্যবহার করবেন না কেন?

সহজভাবে ইনস্টল করার পরে:

git config --global merge.tool meld
git config --global mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe" <- path to meld here

এখানেই শেষ!


4
এই সমাধানটি আমার পক্ষে কাজ করেছে আমি প্রতিবারই এই সরঞ্জামটি গিট কনফিগারেশন খুললে আমাকে প্রম্পট না করার জন্য নীচের কমান্ডটি দিয়েছিলাম
glbal

4
এই সমাধানটি আমার জন্য মেল্ড 3.16.2 এর সাথে কাজ করেছে, গিটি কনফিগারেশন - গ্লোবাল মার্জটুল.কিপব্যাকআপকে এই সমস্যাযুক্ত ব্যাকআপগুলি সরিয়ে ফেলার জন্য মিথ্যা।
জে

4
কোনও কারণে, এই সমাধানটি প্রয়োগ করার পরে সবকিছু লাল (পরিবর্তিত) হিসাবে উপস্থিত হয়েছিল এবং আমাকে এটি করতে হয়েছিল:git config --global mergetool.meld.cmd '"C:\Program Files (x86)\Meld\Meld.exe" $BASE $LOCAL $REMOTE -o $MERGED'

7
এই সমাধান সঙ্গে, আমি পেতে Cannot import: GTK+এবং DLL load failed
জুয়ারজেন

4
@ জুগারজেন এর উত্তর হ'ল এখানে একটি পথের অমিল চলছে। আপনি যদি libgirepository-1.0-1.dll অনুলিপি করতে চান যা আপনার লাইব ডিরেক্টরিতে রয়েছে একটি ডিরেক্টরি আপ (যা মেল্ড.এক্সির মতো একই ডিরেক্টরি) এবং আপনি কাজ করতে পারেন,
ডেমোঙ্গোলেম

26

Schuess, ডিরেক্টরিতে স্থানের অক্ষরের জন্য সাবধান!

[merge]
    tool = meld
[mergetool "meld"]
    prompt = false
    keepBackup = false
    keepTemporaries = false
    path = C:/Program Files (x86)/Meld/Meld.exe
    cmd = \"/C/Program Files (x86)/Meld/Meld.exe\" \"$PWD/$LOCAL\" \"$PWD/$BASE\" \"$PWD/$REMOTE\" \"--output=$PWD/$MERGED\"

4
সম্পাদনাগুলি আমার কাছে মনে হয় সমাধানটি ভেঙে গেছে। আসল রিভিশনটি আমার পক্ষে কাজ করে, সুতরাং +1। আমি দেখেছি এটি লাইনের লাইন ছাড়াই কাজ করছে।
vossad01

এটি আমার জন্য কাজ করেন যখন আমি ব্যবহার cmdছাড়া pathএবং ব্যবহৃত একক উদ্ধৃতি পরিবর্তে ব্যাকটিক, স্ল্যাশ-উদ্ধৃতি চিহ্ন পরিবর্তে একক উদ্ধৃতি।
sq33G 11

উইন 10 1903 এবং ডাব্লুএসএল দিয়ে, আমি এই কনফিগার পদ্ধতির একটি গোছা চেষ্টা করেছি এবং গিট মেল্ডকে ডাকতে পারে না। আমি সিমিলিংকিং শেষ করেছি Program_Files_x86 -> 'Program Files (x86)/'এবং ব্যবহার করেছি[mergetool "meld"] path = /mnt/c/Program_Files_x86/Meld/Meld.exe
বিল হোয়াগ

10

আমার ঠিক একই সমস্যা ছিল এবং আমি দেখতে পেলাম যে এটির কাজ করার জন্য আমাকে আমার পথে চাপ দিতে হয়েছিল। আমি আমার .gitconfig ফাইলটিতে যা রেখেছি তা এখানে। (নোট করুন আমার মেল্ড এক্সিকিউটেবলটি অন্য কোনও স্থানে রয়েছে)

[merge]
    tool = meld
[mergetool "meld"]
        cmd = "/c/Meld/meld/meld.exe $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE --output=$PWD/$MERGED"

হুবহু এটি আমার পক্ষে দুর্দান্ত কাজ করেছে, আমি যেভাবে পছন্দ করে নিই সেই কাস্টম ইনস্টলের পথে। এটি লক্ষণীয় যে "পথ" এর মধ্যে পার্থক্য রয়েছে, যা বেশিরভাগ গাইড ব্যবহার করে এবং "সিমিডি" যা এখানে নির্দিষ্ট করা আছে।
ফক্সফক্স

আমি আপনার এবং মার্টিনের সমাধান উভয়ই চেষ্টা করেছি এবং কোনটিই কাজ করে নি। আমার মনে হয় আরও কিছু চলছে। একটি উইন্ডো খোলে এবং ততক্ষণে বন্ধ হয়ে যায় এবং তারপরে মেল্ডটি রেপোর পরিবর্তে মেল্ডের ইনস্টলেশন ডিরেক্টরিতে নির্দেশিত পথগুলির সাথে খোলে। মাইল্ডে পাস হওয়া কোনও আরগটি কি এটির মৃত্যুর কারণ হতে পারে এবং তারপরে এটি সমস্যাটি সনাক্ত করে ডিফল্ট পাথের সাথে পুনরায় চালু করতে পারে? আমি এখানে
নেলসন

আপনি নিশ্চিত যে আপনি meld.exe ব্যবহার করছেন এবং কোনও বিন ফোল্ডারে থাকা meld ফাইলটি নয় (আমার মনে হয়)। আমার মনে আছে একটি সমস্যা আছে যেখানে আমি কেবল মেল্ড ফাইলটি ব্যবহার করেছি এবং গিটে অস্থায়ী ফোল্ডারে ফাইলগুলি রাখার সুযোগ পাওয়ার আগে এটি অ্যাপ্লিকেশনটি চালু করে।
শুক্র

আমি আপনার সমাধানটি ব্যবহার করেছি, তবে ডিরেক্টরিটিতে meldফাইলটি ব্যবহার করে bin(আমি আসলে ফাইলটির নামকরণ করেছি meld.py) এবং এটি কোনও সমস্যা ছাড়াই কাজ করেছে।
জ্যারেট

7

উইন্ডোজ:

আপনি এই দুটি কমান্ড ব্যবহার করতে পারেন ( যেমন অরগিন বলেছেন ) - মেল্ড.এক্সির সঠিক পথ ব্যবহার করে:

git config --global merge.tool meld
git config --global mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"

অথবা আপনি কেবল নিজের C:\Users\YOUR_USER_NAME\.gitconfigফাইলটি সরাসরি সম্পাদনা করতে এবং এর শেষে নিম্নলিখিতটি যুক্ত করতে পারেন:

[merge]
  tool = meld
[mergetool "meld"]
  path = C:\\Program Files (x86)\\Meld\\Meld.exe

git difftoolউইন্ডোজ এবং মেল্ডের জন্য এখন গিট ব্যাশে কল করুন আপনার ডিফল্ট ডিফ্টল ভিউয়ার হিসাবে খুলবে।


লিনাক্স:

আপডেট 20 সেপ্টেম্বর 2019:
- আমি আমার নিজস্ব রেফারেন্সের জন্য লিনাক্স সংস্করণটি এখানে খুব ভালভাবে এক জায়গায় রেখে দিতে পারি:

লিনাক্সের জন্য এটি অত্যন্ত সহজ:

sudo apt update
sudo apt install meld
gedit ~/.gitconfig  # edit your ~/.gitconfig file (gedit GUI editor will open)

তারপরে .gitconfig ফাইলের নীচে যুক্ত করুন:

[diff]
    tool = meld

এটাই! git difftoolএখন লিনাক্স উবুন্টুতে কাজ করে!

সম্পর্কিত:

  1. এখান থেকে মেলডটি ডাউনলোড এবং ইনস্টল করুন: https://meldrc.org/
  2. আমি কীভাবে গিটকে আমার পছন্দসই সম্পাদককে কমিটের জন্য ব্যবহার করতে পারি?
  3. https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles

4

আমি এই পৃষ্ঠায় মেল্ড ইনস্টলারটির উপর একটি বাগ রিপোর্টে একটি সমাধান পেয়েছি:

https://code.google.com/p/meld-installer/issues/detail?id=11

যতদূর আমি বুঝতে পারি, সমস্যাটি হ'ল meld.exe প্রোগ্রামটি (যা পাইথন ইন্টারপ্রেটারের মাধ্যমে মেল্ড চালায়) অযথা কমান্ডের ওয়ার্কিং ডিরেক্টরিটি meld.exe এর সাথে সেট করে। এটি কমান্ড লাইন আর্গুমেন্ট হিসাবে পাস করার সময় আপেক্ষিক পাথগুলিকে ভুল ব্যাখ্যা করতে পারে।

সমাধানটি হ'ল এএইচকে 2 এক্স (অটোহটকি স্ক্রিপ্ট -> এক্সপি) ব্যবহার করে meld.ahk ফাইলটি সংকলন করে উত্পন্ন meld.exe প্রতিস্থাপন করা হয়। পৃষ্ঠার আরও নিচে স্ক্রিপ্টটি ডাউনলোড করুন, কারণ সেখানে কয়েকটি সংস্করণ পোস্ট করা হয়েছে।


4
ইস্যু ট্র্যাকারটি স্বয়ংক্রিয়ভাবে আমার কাছে বিষয়টি বরাদ্দ করার জন্য সেটআপ করা হয়নি তাই আমি মন্তব্যটি মিস করেছি বলে মন্তব্য করেছি। গুগল যারা পরে এটি খুঁজে পায় তাদের জন্য; এই সমস্যা স্থির করা হয়েছে।
কেগান

4

আমিও একই ধরণের সমস্যার মুখোমুখি হয়েছি used

git config --global mergetool.meld.path "/c/Program Files (x86)/Meld/Meld.exe" <- path to meld here

3

কোনও কারণে, উইন্ডোজ 10-এ PATH পরিবেশগত পরিবর্তনশীল ইনস্টলেশনের সময় সঠিকভাবে সেট করা যায়নি, সুতরাং একটি আশ্চর্য ব্যতিক্রম উত্থাপন করে বলা হয়েছে যে এটি "সি: \ প্রোগ্রাম ফাইলগুলি (x86) / এর অধীনে থাকা কিছু .dll সন্ধান করতে সক্ষম নয় / মাউন্ট / বিন "ডিরেক্টরি।

আমার জন্য একটি কাজ ছিল, গিট ব্যাশে মৃত্যুদন্ড কার্যকর:

export PATH=$PATH:"/C/Program Files (x86)/Meld/lib" 

অথবা উইন্ডোজ PATH এ যুক্ত করুন

C:\Program Files (x86)/Meld/bin

2

উত্তরগুলির কোনওটিই আমার পক্ষে কার্যকর হয়নি। আমি এটি দিয়ে .gitconfig-file এ শেষ করেছি:

[merge]
  tool = meld
[mergetool "meld"]
  cmd = 'C:/Program Files (x86)/Meld/Meld.exe' $LOCAL $BASE $REMOTE --output=$MERGED
[mergetool]
  prompt = false

git merge mybranchদ্বন্দ্বের অবসান হওয়ার পরে , আপনি কেবল টাইপ করুন git mergetoolএবং মেল্ডটি খোলে। সংরক্ষণের পরে, আপনাকে গিটে প্রতিশ্রুতিবদ্ধ হতে হবে এবং বিবাদগুলি সমাধান করা হবে।

কোনও কারণে, এটি কেবল মেল্ড 3.18.x এর সাথে কাজ করেছে, মেল্ড 3.20.x আমাকে একটি ত্রুটি দেয়।


0

উপরের সবগুলি চেষ্টা করার পরে, প্রশাসক হিসাবে চালানোর জন্য মেল্ডকে সেট করা আমার পক্ষে কাজ করেছিল।

  1. Meld.exe রাইট ক্লিক করুন
  2. প্রোপার্টি > সামঞ্জস্যতাতে যান এবং Run this program as an administratorচেকবক্সটি নির্বাচন করুন

আমি যে ত্রুটিগুলি রেফারেন্সড টেম্প ফাইলগুলি পেয়েছি সেগুলি c:\windows\temp\meld-*তৈরি করা হচ্ছে না। মেল্ডের অনুমতিগুলি উন্নত করা কৌশলটি মনে হচ্ছে কারণ এটি এখন উভয়ের সাথে কাজ করে git difftoolএবং মেল্ডের মধ্যে ম্যানুয়ালি চলমান।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.