Search code examples
gitmeldmergetoolnixos

'git mergetool' with meld fails creating a '--output $MERGED' file


i'm using the meld tool with 'git mergetool' described in the Git merging using Meld article.

~/.gitconfig

[merge]
        tool = mymeld
        conflictstyle = diff3
[mergetool "mymeld"]
        keepBackup=false
        cmd = /home/joachim/.nix-profile/bin/meld --diff $BASE $LOCAL --diff $BASE $REMOTE --diff $LOCAL $BASE $REMOTE --output $MERGED

my problem

as described in the article i have 3 views: enter image description here

but meld never creates the file $MERGED and thus the files, i wanted to be altered with meld, will kind of look like this:

    systray.cpp
    accountmigrator.cpp
<<<<<<< HEAD
    quotainfo.cpp
    accountstate.cpp
||||||| merged common ancestors
=======
    addcertificatedialog.cpp
>>>>>>> adds 'SSL client certificate' support from n.octeau with qknight changes as:
    wizard/abstractcredswizardpage.cpp
    wizard/owncloudadvancedsetuppage.cpp

meld error message

'git mergetool' also prints this error:

Normal merge conflict for 'src/libsync/account.cpp':
  {local}: modified file
  {remote}: modified file

** (process:30916): WARNING **: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags'

** (process:30916): WARNING **: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags'

** (process:30916): WARNING **: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags'
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property HistoryCombo::history-id after class was initialised
  type_register(cls, namespace.get('__gtype_name__'))
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property HistoryEntry::history-id after class was initialised
  type_register(cls, namespace.get('__gtype_name__'))
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property HistoryFileEntry::directory-entry after class was initialised
  type_register(cls, namespace.get('__gtype_name__'))
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property HistoryFileEntry::filename after class was initialised
  type_register(cls, namespace.get('__gtype_name__'))
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property HistoryFileEntry::default-path after class was initialised
  type_register(cls, namespace.get('__gtype_name__'))
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property HistoryFileEntry::modal after class was initialised
  type_register(cls, namespace.get('__gtype_name__'))
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property HistoryFileEntry::dialog-title after class was initialised
  type_register(cls, namespace.get('__gtype_name__'))
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property HistoryFileEntry::history-id after class was initialised
  type_register(cls, namespace.get('__gtype_name__'))
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: attempting to add an interface (GtkEditable) to class (HistoryFileEntry) after class_init
  type_register(cls, namespace.get('__gtype_name__'))
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property meld+ui+emblemcellrenderer+EmblemCellRenderer::icon-tint after class was initialised
  type_register(cls, namespace.get('__gtype_name__'))
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property meld+ui+emblemcellrenderer+EmblemCellRenderer::icon-name after class was initialised
  type_register(cls, namespace.get('__gtype_name__'))
/nix/store/wsxxxn51aajzmx0zcq0dxfajky4rid7k-pygobject-2.28.6/lib/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property meld+ui+emblemcellrenderer+EmblemCellRenderer::emblem-name after class was initialised
  type_register(cls, namespace.get('__gtype_name__'))
Fontconfig error: "/nix/store/y6sibqy2c9skmivxs4sz4p4zrjgpflbv-fontconfig-ultimate-20141123/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 70: non-double matrix element
Fontconfig error: "/nix/store/y6sibqy2c9skmivxs4sz4p4zrjgpflbv-fontconfig-ultimate-20141123/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 70: non-double matrix element
Fontconfig warning: "/nix/store/y6sibqy2c9skmivxs4sz4p4zrjgpflbv-fontconfig-ultimate-20141123/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 78: saw unknown, expected number
Traceback (most recent call last):
  File "/nix/store/1yw4haf25x43pxnlgcbhx6v6ra9gfnk6-meld-1.8.6/lib/meld/meld/ui/historyentry.py", line 365, in <lambda>
    entry.connect("changed", lambda *args: self.emit("changed"))
TypeError: <HistoryFileEntry object at 0x7f86966ac910 (HistoryFileEntry at 0x18615b0)>: unknown signal name: changed
Traceback (most recent call last):
  File "/nix/store/1yw4haf25x43pxnlgcbhx6v6ra9gfnk6-meld-1.8.6/lib/meld/meld/ui/historyentry.py", line 365, in <lambda>
    entry.connect("changed", lambda *args: self.emit("changed"))
TypeError: <HistoryFileEntry object at 0x7f86966ac7d0 (HistoryFileEntry at 0x1861400)>: unknown signal name: changed
Traceback (most recent call last):
  File "/nix/store/1yw4haf25x43pxnlgcbhx6v6ra9gfnk6-meld-1.8.6/lib/meld/meld/ui/historyentry.py", line 365, in <lambda>
    entry.connect("changed", lambda *args: self.emit("changed"))
TypeError: <HistoryFileEntry object at 0x7f869630cc30 (HistoryFileEntry at 0x192da90)>: unknown signal name: changed
Traceback (most recent call last):
  File "/nix/store/1yw4haf25x43pxnlgcbhx6v6ra9gfnk6-meld-1.8.6/lib/meld/meld/ui/historyentry.py", line 365, in <lambda>
    entry.connect("changed", lambda *args: self.emit("changed"))
TypeError: <HistoryFileEntry object at 0x7f869630ca50 (HistoryFileEntry at 0x192d8e0)>: unknown signal name: changed
/nix/store/1yw4haf25x43pxnlgcbhx6v6ra9gfnk6-meld-1.8.6/lib/meld/meld/filediff.py:1084: Warning: g_object_set_qdata: assertion 'G_IS_OBJECT (object)' failed
  self.textview[len(files) >= 2].grab_focus()
Traceback (most recent call last):
  File "/nix/store/1yw4haf25x43pxnlgcbhx6v6ra9gfnk6-meld-1.8.6/lib/meld/meld/ui/historyentry.py", line 365, in <lambda>
    entry.connect("changed", lambda *args: self.emit("changed"))
TypeError: <HistoryFileEntry object at 0x7f869447a230 (HistoryFileEntry at 0x19495d0)>: unknown signal name: changed
Traceback (most recent call last):
  File "/nix/store/1yw4haf25x43pxnlgcbhx6v6ra9gfnk6-meld-1.8.6/lib/meld/meld/ui/historyentry.py", line 365, in <lambda>
    entry.connect("changed", lambda *args: self.emit("changed"))
TypeError: <HistoryFileEntry object at 0x7f8694472f50 (HistoryFileEntry at 0x1949420)>: unknown signal name: changed
Traceback (most recent call last):
  File "/nix/store/1yw4haf25x43pxnlgcbhx6v6ra9gfnk6-meld-1.8.6/lib/meld/meld/ui/historyentry.py", line 365, in <lambda>
    entry.connect("changed", lambda *args: self.emit("changed"))
TypeError: <HistoryFileEntry object at 0x7f8694472e10 (HistoryFileEntry at 0x1949270)>: unknown signal name: changed
/nix/store/1yw4haf25x43pxnlgcbhx6v6ra9gfnk6-meld-1.8.6/lib/meld/meld/meldwindow.py:463: Warning: g_object_set_qdata: assertion 'G_IS_OBJECT (object)' failed
  self.notebook.set_current_page(self.notebook.page_num(page.widget))
/nix/store/1yw4haf25x43pxnlgcbhx6v6ra9gfnk6-meld-1.8.6/lib/meld/meld/meldwindow.py:641: Warning: g_object_set_qdata: assertion 'G_IS_OBJECT (object)' failed
  self.notebook.remove_page(page_num)
src/libsync/account.cpp seems unchanged.
Was the merge successful? [y/n] 

question

the missing $MERGED file is probably caused by the meld issue. however, i think that this problem is not NixOS specific.

the meld problem is also discussed at http://forums.gentoo.org/viewtopic-t-973234-view-previous.html?sid=1b42d7d0d9e268b592dc476c8c38bc89 but i don't understand if it is the cause of my problem here.

please give me some hints what i could try next.


Solution

  • FIXED! the problem was indeed that meld-1.8.6 was not saving the file to --output at all but meld-3.12.3 is saving the file. therefore this issue is now solved by using the new version (not yet in nixpkgs!)