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

Re: Git Gui: Branch->create currently fails...

From
Pratyush Yadav <me@yadavpratyush.com>
Date
Oct 8, 2019, 00:00 UTC
Message-ID
<20191008000003.qlulu5ie36eij4uq@yadavpratyush.com>
In-Reply-To
<bfe78474-0eb9-fc5e-1371-3b055308169a@iee.email>
On 07/10/19 11:02PM, Philip Oakley wrote:
> I'd never used the Branch:Create before (this is via mouse) and it threw an
> error, which appears to be repeatable, so I'm reporting it at the moment so

I'm afraid I can't reproduce it. I tested by creating a worktree of git.git by running:

  git worktree add ../git-2

Then I opened git-gui in the worktree and clicked the "Create" option under the "Branch" menu.

The dialog opened just fine, which I assume is what your error is. But just to be sure, I created a branch too, and that also works pretty well.

Same behaviour with a "normal" branch, which is not inside a worktree.
So is there anything else in your setup that would cause this problem?
Show 23 quoted lines
> I don't forget ...
> (I'm chasing down other issue at the moment ;-)
> 
> This is with the version 0.21.GI git version 2.23.0.windows.1 Tcl/Tck 8.6.9
> 
> 
> missing "
> missing "
>     while executing
> "list "refs/heads/redo-v0" [list ""
>     ("eval" body line 1)
>     invoked from within
> "eval $line"
>     (procedure "_new" line 87)
>     invoked from within
> "_new $path 0 $title"
>     (procedure "::choose_rev::new" line 2)
>     invoked from within
> "::choose_rev::new $w.rev [mc "Starting Revision"]"
>     (procedure "branch_create::dialog" line 35)
>     invoked from within
> "branch_create::dialog"
>     (menu invoke)
Looking at the log, the culprit seems to be the line:
  set line [eval $line]

over at lib/choose_rev.tcl:159. The $line comes from reading the output of a call to `git for-each-ref` with '--tcl' passed in. Looking at the man page for 'for-each-ref', the description of the option is:

  --shell, --perl, --python, --tcl
    If given, strings that substitute %(fieldname) placeholders are 
    quoted as string literals suitable for the specified host language. 
    This is meant to produce a scriptlet that
    can directly be `eval`ed.
So this might possibly me an upstream bug.

If I had to guess a fix, I'd suggest trying to wrap the $line in lib/choose_rev.tcl:159 in quotes like so:

  set line [eval "$line"] 

If this doesn't fix it, see if you can find out which $line is causing problem by printing the variable before 'eval'ing it by adding a:

  puts "$line"
before the call to eval.
-- 
Regards,
Pratyush Yadav
Previous: Philip OakleyNext: Philip Oakley
Message 3 of 10 in “Git Gui: Branch->create currently fails...”
  1. Philip OakleyOct 7, 2019
  2. Philip OakleyOct 7, 2019
  3. Pratyush YadavOct 8, 2019
  4. Philip OakleyOct 12, 2019
  5. Pratyush YadavOct 13, 2019
  6. Philip OakleyOct 14, 2019
  7. Pratyush YadavOct 14, 2019
  8. Philip OakleyOct 14, 2019
  9. Pratyush YadavOct 16, 2019
  10. Philip OakleyOct 18, 2019

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.