Subject: [BUG] git gui blame fails for multi-word textconv filter

From: Kirill Smelkov <[email-masked]>
Date: Wed, 4 Aug 2010 23:25:25 +0400

Hello,

I use

    [diff "astextplain"]
        textconv = run-mailcap --action=cat

in my ~/.gitconfig, and this works for git `git blame` because of 41a457
in git.git (textconv: use shell to run helper), but fails with git gui:

    $ git gui blame 21980.2--ИМС-МР231.doc
    Error in startup script: couldn't execute "run-mailcap --action=cat": no such file or directory
        while executing
    "open |[list $textconv $path] r"
        (procedure "_load" line 56)
        invoked from within
    "_load $this $i_jump"
        (procedure "blame::new" line 185)
        invoked from within
    "blame::new $head $path $jump_spec"
        ("blame" arm line 6)
        invoked from within
    "switch -- $subcommand {
            browser {
                    if {$jump_spec ne {}} usage
                    if {$head eq {}} {
                            if {$path ne {} && [file isdirectory $path]} {
                                    set head $..."
        ("blame" arm line 57)
        invoked from within
    "switch -- $subcommand {
    browser -
    blame {
            if {$subcommand eq "blame"} {
                    set subcommand_args {[--line=<num>] rev? path}
            } else {
                    set subcommand_a..."
        (file "/home/kirr/local/git/libexec/git-core/git-gui" line 2868)

Thats is maybe because we use `git cat-file --textconv` only for in .git
entries, but since cat-file lacks support for work-tree git-gui calls
textconv filter itself manually on initial "$commit eq {}"?

If so, I'd better teach cat-file about worktree, instead of teaching
git-gui about running textconv filter through shell. Just a wish...

Thanks,
Kirill

P.S. And thanks for finally collecting all those git-gui patches.