'git mergetool' 使用 meld 创建“--output $MERGED”文件失败

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

我正在使用 meld 工具和 'git mergetool' 中描述的 Git merging using Meld 条。

~/.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

我的问题

如文章所述,我有 3 个观点:

但是 meld 永远不会创建文件 $MERGED,因此我想用 meld 更改的文件看起来像这样:

    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

合并错误信息

'git mergetool' 也打印此错误:

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] 

问题

丢失的$MERGED 文件可能是由合并问题引起的。但是,我认为这个问题不是 NixOS 特有的。

http://forums.gentoo.org/viewtopic-t-973234-view-previous.html?sid=1b42d7d0d9e268b592dc476c8c38bc89 也讨论了 meld 问题,但我不明白这是否是我的问题的原因。

请给我一些提示,我接下来可以尝试什么。

已修复!问题确实是 meld-1.8.6 根本没有将文件保存到 --output 但 meld-3.12.3 正在保存文件。因此这个问题现在通过使用新版本解决了(还没有在 nixpkgs 中!)