Di Linux, alat penggabung favorit saya adalah Meld, dan saya tidak memiliki masalah dalam menggunakan atau mengkonfigurasinya untuk bekerja dengan Git. Namun, di Windows, ceritanya berbeda.
Pertama, saya menginstal Meld dari bundel yang saya temukan di sini: https://code.google.com/p/meld-installer/
Kemudian, saya mengkonfigurasi .gitconfig saya seperti itu untuk mendukung Meld sebagai mergetool default
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
keepBackup = false
trustExitCode = false
Jadi, ketika saya mengalami konflik, saya melakukan git difftool dan Meld sebenarnya terbuka. Namun, jalur ke berkas yang ditulis Git untuk diteruskan ke alat diff salah. Misalnya, meskipun Git menghasilkan file BASE, LOCAL, dan REMOTE di direktori repositori (lokasi yang saya sebut git mergetool dari), Meld mencoba membuka setiap file tersebut di direktori yang dapat dieksekusi.
Alih-alih membuka C: \ repo \ roses.txt.LOCAL.2760.txt, Meld mencoba membuka C: \ Program Files (x86) \ Meld \ meld \ roses.txt.LOCAL.2760.txt.
Adakah yang pernah mengalami ini sebelumnya atau tahu cara mengkonfigurasi Git / Meld agar berfungsi dengan benar di Windows?
Jawaban:
Mengapa Anda tidak menggunakan git bash untuk Windows?
Setelah menginstal berbaur cukup:
Itu saja!
sumber
git config --global mergetool.meld.cmd '"C:\Program Files (x86)\Meld\Meld.exe" $BASE $LOCAL $REMOTE -o $MERGED'
Cannot import: GTK+
danDLL load failed
.Schuess, berhati-hatilah dengan karakter spasi di direktori!
sumber
cmd
tanpapath
dan menggunakan tanda kutip balik, bukan tanda kutip tunggal, bukan tanda kutip ganda.Program_Files_x86 -> 'Program Files (x86)/'
dan menggunakan[mergetool "meld"] path = /mnt/c/Program_Files_x86/Meld/Meld.exe
Saya memiliki masalah yang persis sama dan menemukan saya harus secara kasar memaksakan cara saya untuk membuatnya bekerja. Inilah yang saya masukkan ke file .gitconfig saya. (Catatan saya dapat dieksekusi gabungan di lokasi yang berbeda)
sumber
meld
file dibin
direktori (saya benar-benar mengganti nama filemeld.py
) dan berfungsi tanpa masalah.Windows:
Anda dapat menggunakan dua perintah ini ( seperti yang dikatakan Arugin ) - menggunakan jalur yang tepat ke Meld.exe:
ATAU Anda bisa mengedit
C:\Users\YOUR_USER_NAME\.gitconfig
file Anda secara langsung dan menambahkan yang berikut ini di akhir:Sekarang panggil
git difftool
Git Bash untuk Windows dan Meld akan terbuka sebagai penampil difftool default Anda.Linux:
UPDATE 20 Sept 2019:
- Saya mungkin juga meletakkan versi Linux di sini juga untuk referensi saya sendiri di satu tempat jika tidak ada yang lain:
Untuk Linux juga sangat mudah:
Kemudian tambahkan ke bagian bawah file .gitconfig:
Itu dia!
git difftool
sekarang bekerja di Linux Ubuntu!Terkait:
sumber
Saya menemukan solusi dalam laporan bug pada penginstal gabungan, di halaman ini:
https://code.google.com/p/meld-installer/issues/detail?id=11
Sejauh yang saya mengerti, masalahnya adalah bahwa program meld.exe (yang menjalankan gabungan melalui interpreter python) tidak perlu mengatur direktori kerja perintah ke meld.exe. Hal ini menyebabkan jalur relatif diinterpretasikan dengan tidak benar ketika diteruskan sebagai argumen baris perintah.
Solusinya adalah mengganti meld.exe yang disediakan dengan yang dihasilkan dengan mengkompilasi file meld.ahk, menggunakan AHK2EXe (script AutoHotKey -> exe). Cukup unduh skrip yang paling jauh di bawah halaman, karena ada beberapa versi yang diposting di sana.
sumber
Saya juga menghadapi masalah serupa. Sistem operasi yang digunakan adalah Windows 10 dan perubahan berikut berhasil untuk saya. Sepertinya masalah jalur
sumber
Untuk beberapa alasan, di Windows 10 variabel lingkungan PATH tidak dapat diatur dengan benar selama penginstalan, sehingga muncul pengecualian aneh yang mengatakan bahwa ia tidak dapat menemukan beberapa .dll yang ada di bawah "C: \ Program Files (x86) / Direktori Meld / bin ".
Solusi bagi saya adalah, jalankan di git bash:
Atau tambahkan ke windows PATH
sumber
Tidak ada jawaban yang berhasil untuk saya. Saya berakhir dengan ini di file .gitconfig:
Setelah
git merge mybranch
diakhiri dengan konflik, Anda cukup mengetikgit mergetool
dan membuka gabungan. Setelah menyimpan, Anda harus komit di git dan konflik diselesaikan.Untuk beberapa alasan, ini hanya bekerja dengan Meld 3.18.x, Meld 3.20.x memberi saya kesalahan.
sumber
Setelah mencoba semua hal di atas, pengaturan Meld untuk dijalankan sebagai administrator berfungsi untuk saya.
Run this program as an administrator
kotak centangKesalahan yang saya terima seperti file temporer yang dirujuk
c:\windows\temp\meld-*
, yang tidak sedang dibuat. Izin Elevating Meld tampaknya berhasil karena sekarang berfungsi dengan keduanyagit difftool
dan berjalan secara manual dalam Meld.sumber