git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
CPClément Poulain <clement.poulain@ensimag.imag.fr>
Date
Aug 4, 2010, 23:46 UTC
Message-ID
<4C59FBD5.5090209@ensimag.imag.fr>
In-Reply-To
<20100804192525.GA13086@landau.phys.spbu.ru>
Le 04/08/2010 21:25, Kirill Smelkov a écrit :
Show 13 quoted lines
> 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
>    

I wonder if spaces can be the reason of this. Looks like Tcl is looking for an executable called "run-mailcap --action=cat", and doesn't distinguish path from options. I do not have much experience with Tcl, so I can't figure out how to solve that. Some help would be appreciate :-)

Show 33 quoted lines
>          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 {}"?
>    

Yep, "open |[list $textconv $path] r" is the way we call textconv on the work-tree copy of the concerned file.

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

This was discussed here: a1ace6b77167a2ad4b4995e8c4d09761@ensimag.fr , and your suggestion was considered ;-)

Previous: Kirill SmelkovNext: Matthieu Moy
Message 2 of 9 in “[BUG] git gui blame fails for multi-word textconv filter”
  1. Kirill SmelkovAug 4, 2010
  2. Clément PoulainAug 4, 2010
  3. Matthieu MoyAug 5, 2010
  4. git-gui: Use shell to launch textconv filter in "blame"Matthieu Moy, Aug 5, 2010
  5. Pat ThoytsAug 5, 2010
  6. Matthieu MoyAug 6, 2010
  7. Pat ThoytsAug 6, 2010
  8. Pat ThoytsAug 5, 2010
  9. Kirill SmelkovAug 19, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.