git - 使用 meld 的“git mergetool”无法创建 '--output $MERGED' 文件

标签 git meld mergetool nixos

我正在使用 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 个观点: enter image description here

但是 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 文件丢失可能是由 merge 问题引起的。但是,我认为这个问题不是 NixOS 特定的。

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

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

最佳答案

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

关于git - 使用 meld 的“git mergetool”无法创建 '--output $MERGED' 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057578/

相关文章:

git - 更改后指定 Git Rename

Git Rebase 冲突 : Who is HEAD?

ubuntu - 无法在 ubuntu 16.04 上启动 meld,因为错误导入 meld.conf

GNU screen 中的 Git 推送失败

git - 可以从 github 中挑选所有 PR( pull 请求)吗?

git vimdiff mergetool 基本命令?

git - 适用于 Linux 的 Windows 子系统 git mergetool 融合了 UnicodeDecodeError

git - 如何使用 opendiff 作为默认 merge 工具

Git 日志缺少最新提交

svn - 压缩 xml 文件的 Subversion 差异